1

I'm very new to latex. I want to create cheat sheet for my training purpose using latex.

Below is the latex code -

\documentclass[10pt,english,landscape]{article}
\usepackage{multicol}
\usepackage{calc}
\usepackage[landscape]{geometry}
\usepackage{color,graphicx,overpic}

\usepackage[T1]{fontenc}
\usepackage[bitstream-charter]{mathdesign}
\usepackage[utf8]{inputenc}
\usepackage{url}
\usepackage{amsfonts}
\usepackage{array,booktabs}
\usepackage{textcomp}
\usepackage[usenames,dvipsnames,table]{xcolor}
\usepackage[most]{tcolorbox}
\usepackage{tabularx}
\usepackage{multirow}
\usepackage{colortbl}
\usepackage{tikz}
\usepackage{environ}

\usetikzlibrary{calc}
\pgfdeclarelayer{background}
\pgfdeclarelayer{foreground}
\pgfsetlayers{background,main,foreground}

\geometry{top=-0.5cm,left=1cm,right=1cm,bottom=1cm}

\pagestyle{empty} % Turn off header and footer

% \renewcommand\rmdefault{phv} % Arial
% \renewcommand\sfdefault{phv} % Arial

% Redefine section commands to use less space
\makeatletter
\renewcommand{\section}{\@startsection{section}{1}{0mm}%
    {-1ex plus -.5ex minus -.2ex}%
    {0.5ex plus .2ex}%x
    {\normalfont\large\bfseries}}
\renewcommand{\subsection}{\@startsection{subsection}{2}{0mm}%
    {-1explus -.5ex minus -.2ex}%
    {0.5ex plus .2ex}%
    {\normalfont\normalsize\bfseries}}
\renewcommand{\subsubsection}{\@startsection{subsubsection}{3}{0mm}%
    {-1ex plus -.5ex minus -.2ex}%
    {1ex plus .2ex}%
    {\normalfont\small\bfseries}}
\makeatother

\setcounter{secnumdepth}{0} % Don't print section numbers
\setlength{\parindent}{0pt}
\setlength{\parskip}{0pt plus 0.5ex}

\definecolor{TableHead}{rgb}{0.353, 0.329, 0.667}
\definecolor{TableRow}{rgb}{0.816, 0.812, 0.902}

\NewEnviron{keys}[2][2]{% <-- Modified by default, 2 columns
    % \begin{center}
    \smallskip
    \begin{tikzpicture}
    \rowcolors{1}{}{TableRow}
%    \centering
    \node (tbl) [inner sep=0pt] {
        \begin{tabularx}{\linewidth}{*{#1}{X}} % <-- Modified
        \rowcolor{TableHead}
        \multicolumn{#1}{l}{\normalsize\textbf{\color{white}{#2}}}\parbox{0pt}{\rule{0pt}{0.3ex+\baselineskip}}\\ % <-- Modified
        \BODY
        \arrayrulecolor{TableHead}\specialrule{.17em}{0em}{.2em}
        \end{tabularx}};
    \begin{pgfonlayer}{background}
    \draw[rounded corners=2pt,top color=TableHead,bottom color=TableHead, draw=white]
    ($(tbl.north west)-(0,-0.05)$) rectangle ($(tbl.north east)-(0.0,0.15)$);
    \draw[rounded corners=2pt,top color=TableHead,bottom color=TableHead, draw=white]
    ($(tbl.south west)-(0.0,-0.11)$) rectangle ($(tbl.south east)-(-0.0,-0.02)$);
    \end{pgfonlayer}
    \end{tikzpicture}
    % \end{center}
}

\begin{document}
    
    \raggedright\
    
    \begin{center}
        \Large{\underline{Emacs Cheatsheet}}
    \end{center}
    
    \footnotesize
    \begin{multicols}{2}
        
        \begin{keys}[3]{Glossary}
            Control (Ctrl) key  & \texttt{C} & \texttt{C key for your OS} \\
            Alt (Meta) key      & \texttt{M} & \texttt{M Key for your OS} \\
            Shift key           & \texttt{S} & \texttt{M Key for your OS} \\
            Command (Super) key & \texttt{CMD} & \texttt{M Key for your OS} \\
            Function (Fn) key   & \texttt{fn} & \texttt{M Key for your OS} \\
            Home/end            & \texttt{fn-left / fn-right}  & \texttt{M Key for your OS} \\
        \end{keys}
        
    \end{multicols}
    
\end{document}

This creates table as below -

enter image description here

As you can see in the above image the one column Glossary is working fine. I want to provide heading for other two columns like Glossary, Shortcut, Description.

I tried like this for table header -

\begin{keys}[3]{Glossary}{Shortcut}{Description}

But it gives compile error.

Any idea how can I fix this issue?

1 Answer 1

2

You just need to add additional parameters to the keys environment:

\NewEnviron{keys}[4][2]{...}

and then call it as desired

 \begin{keys}[3]{Glossary}{Shotcut}{Description}

This also eliminates the need to use \multicolumn.

enter image description here

Code:

\documentclass[10pt,english,landscape]{article}
\usepackage{multicol}
\usepackage{calc}
\usepackage[landscape]{geometry}
\usepackage{color,graphicx,overpic}

\usepackage[T1]{fontenc}
\usepackage[bitstream-charter]{mathdesign}
\usepackage[utf8]{inputenc}
\usepackage{url}
\usepackage{amsfonts}
\usepackage{array,booktabs}
\usepackage{textcomp}
\usepackage[usenames,dvipsnames,table]{xcolor}
\usepackage[most]{tcolorbox}
\usepackage{tabularx}
\usepackage{multirow}
\usepackage{colortbl}
\usepackage{tikz}
\usepackage{environ}

\usetikzlibrary{calc}
\pgfdeclarelayer{background}
\pgfdeclarelayer{foreground}
\pgfsetlayers{background,main,foreground}

\geometry{top=-0.5cm,left=1cm,right=1cm,bottom=1cm}

\pagestyle{empty} % Turn off header and footer

% \renewcommand\rmdefault{phv} % Arial
% \renewcommand\sfdefault{phv} % Arial

% Redefine section commands to use less space
\makeatletter
\renewcommand{\section}{\@startsection{section}{1}{0mm}%
    {-1ex plus -.5ex minus -.2ex}%
    {0.5ex plus .2ex}%x
    {\normalfont\large\bfseries}}
\renewcommand{\subsection}{\@startsection{subsection}{2}{0mm}%
    {-1explus -.5ex minus -.2ex}%
    {0.5ex plus .2ex}%
    {\normalfont\normalsize\bfseries}}
\renewcommand{\subsubsection}{\@startsection{subsubsection}{3}{0mm}%
    {-1ex plus -.5ex minus -.2ex}%
    {1ex plus .2ex}%
    {\normalfont\small\bfseries}}
\makeatother

\setcounter{secnumdepth}{0} % Don't print section numbers
\setlength{\parindent}{0pt}
\setlength{\parskip}{0pt plus 0.5ex}

\definecolor{TableHead}{rgb}{0.353, 0.329, 0.667}
\definecolor{TableRow}{rgb}{0.816, 0.812, 0.902}

\NewEnviron{keys}[4][2]{% <-- Modified by default, 2 columns
    % \begin{center}
    \smallskip
    \begin{tikzpicture}
    \rowcolors{1}{}{TableRow}
%    \centering
    \node (tbl) [inner sep=0pt] {
        \begin{tabularx}{\linewidth}{*{#1}{X}} % <-- Modified
        \rowcolor{TableHead}
        {\normalsize\textbf{\color{white}{#2}}}\parbox{0pt}{\rule{0pt}{0.3ex+\baselineskip}}
        & {\normalsize\textbf{\color{white}{#3}}}\parbox{0pt}{\rule{0pt}{0.3ex+\baselineskip}}
        & {\normalsize\textbf{\color{white}{#4}}}\parbox{0pt}{\rule{0pt}{0.3ex+\baselineskip}}
        \\
        \BODY
        \arrayrulecolor{TableHead}\specialrule{.17em}{0em}{.2em}
        \end{tabularx}};
    \begin{pgfonlayer}{background}
    \draw[rounded corners=2pt,top color=TableHead,bottom color=TableHead, draw=white]
    ($(tbl.north west)-(0,-0.05)$) rectangle ($(tbl.north east)-(0.0,0.15)$);
    \draw[rounded corners=2pt,top color=TableHead,bottom color=TableHead, draw=white]
    ($(tbl.south west)-(0.0,-0.11)$) rectangle ($(tbl.south east)-(-0.0,-0.02)$);
    \end{pgfonlayer}
    \end{tikzpicture}
    % \end{center}
}

\begin{document}
    
    \raggedright\
    
    \begin{center}
        \Large{\underline{Emacs Cheatsheet}}
    \end{center}
    
    \footnotesize
    \begin{multicols}{2}
        
        \begin{keys}[3]{Glossary}{Shotcut}{Description}
            Control (Ctrl) key  & \texttt{C} & \texttt{C key for your OS} \\
            Alt (Meta) key      & \texttt{M} & \texttt{M Key for your OS} \\
            Shift key           & \texttt{S} & \texttt{M Key for your OS} \\
            Command (Super) key & \texttt{CMD} & \texttt{M Key for your OS} \\
            Function (Fn) key   & \texttt{fn} & \texttt{M Key for your OS} \\
            Home/end            & \texttt{fn-left / fn-right}  & \texttt{M Key for your OS} \\
        \end{keys}
        
    \end{multicols}
    
\end{document}

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .