Here are the Code examples of this chapter. You can compile them online right on this web page by pressing the Typeset / Compile button. You can also edit them for testing and compile them again.
The code pages here are partially based on the First Edition of the book and are currently being edited to match the code of the Second Edition with all the additional examples. It is not complete yet since the focus was on the book production until weeks ago; please visit again soon!
% Example of a bad table - too many lines reduce legibility \documentclass{article} \pagestyle{empty} \begin{document} \begin{tabular}{|c|c|c|c|} \hline $\ast$ & 1 & 2 & 3 \\\hline 1 & 1 & 2 & 3 \\\hline 2 & 2 & 4 & 6 \\\hline 3 & 3 & 6 & 9 \\\hline \end{tabular} \end{document}
\documentclass{article} \usepackage{booktabs} \usepackage{bbding} \pagestyle{empty} \begin{document} \begin{table} \centering \renewcommand{\arraystretch}{1.6} \begin{tabular}{lccccc} \toprule Class & Part page & Chapters & Abstract & Front-/Backmatter & Appendix name \\ \cmidrule(r){1-1}\cmidrule(lr){2-2}\cmidrule(lr){3-3} \cmidrule(lr){4-4}\cmidrule(lr){5-5}\cmidrule(l){6-6} article & & & \Checkmark & \\ book & \Checkmark & \Checkmark & & \Checkmark & \Checkmark \\ report & \Checkmark & \Checkmark & \Checkmark & & \Checkmark \\ \bottomrule \end{tabular} \caption{Structuring differences between standard \LaTeX\ classes} \label{comparison} \end{table} \end{document}
% Adding footnotes to a table \documentclass{article} \usepackage{booktabs} \usepackage{bbding} \usepackage{threeparttable} \begin{document} \begin{table} \centering \renewcommand{\arraystretch}{1.6} \begin{threeparttable} \begin{tabular}{lccccc} \toprule Class & Part page & Chapters & Abstract\tnote{1} & Front-/Backmatter\tnote{2} & Appendix name\tnote{3} \\ \cmidrule(r){1-1}\cmidrule(lr){2-2}\cmidrule(lr){3-3} \cmidrule(lr){4-4}\cmidrule(lr){5-5}\cmidrule(l){6-6} article & & & \Checkmark & \\ book & \Checkmark & \Checkmark & & \Checkmark & \Checkmark \\ report & \Checkmark & \Checkmark & \Checkmark & & \Checkmark \\ \bottomrule \end{tabular} \begin{tablenotes} \item[1] An environment: \verb|\begin{abstract}| \ldots \verb|\end{abstract}| \item[2] Commands: \verb|\frontmatter|, \verb|\mainmatter|, \verb|\backmatter| \item[3] The command \verb|\appendix| exists in article too, but there's no prefix ``Appendix''. \end{tablenotes} \end{threeparttable} \caption{Structuring differences between standard \LaTeX\ classes} \label{comparison} \end{table} \end{document}
% Aligning numeric data \documentclass{article} \usepackage{booktabs} \usepackage{siunitx} \usepackage{chemformula} %\sisetup{table-figures-decimal = 5, % table-figures-integer = 2, % table-number-alignment = right} %\sisetup{table-format = 2.5, % table-number-alignment = right} \begin{document} \begin{tabular}{lSS} \toprule & {atomic mass} & {total mass} \\ \midrule \ch{C} & 12.011 & 12.011 \\ \ch{H} & 1.00794 & 6.04764 \\ \ch{C2H6} & & 30.06964 \\ \bottomrule \end{tabular} \end{document}
% Coloring a table \documentclass{article} \usepackage[table]{xcolor} \rowcolors{2}{gray!15}{white} \newcommand{\head}[1]{% \textcolor{white}{\textbf{#1}}} \renewcommand{\arraystretch}{1.5} \pagestyle{empty} \begin{document} \begin{table}[ht] \centering \sffamily \begin{tabular}{rlr} \rowcolor{black!75} & \head{Distribution} & \head{Hits} \\ 1 & Mint & 2364 \\ 2 & Ubuntu & 1838 \\ 3 & Debian & 1582 \\ 4 & openSUSE & 1334 \\ 5 & Fedora & 1262 \\ 6 & Mageia & 1219 \\ 7 & CentOS & 1171 \\ 8 & Arch & 1040 \\ 9 & elementary & 899 \\ 10 & Zorin & 851 \\ \end{tabular} \end{table} \end{document}
% Merging cells \documentclass{article} \usepackage{array} \usepackage{booktabs} \usepackage{metalogo} \renewcommand{\arraystretch}{1.6} \begin{document} \begin{tabular}{@{}p{1.5cm}p{1.6cm}>{\raggedleft}p{1cm} >{\raggedright}p{1.6cm}r@{}} Compiler & \multicolumn{2}{c}{Input} & \multicolumn{2}{c}{Output} \\ \cmidrule(r){1-1}\cmidrule(lr){2-3}\cmidrule(l){4-5} & Encoding & Images & Fonts & Format \\ \cmidrule(lr){2-2}\cmidrule(lr){3-3} \cmidrule(lr){4-4}\cmidrule(l){5-5} \LaTeX & utf8, ascii, applemac, latin1, \ldots & EPS & Type 1, Type 3 & DVI \\ pdf\LaTeX & utf8, ascii, applemac, latin1, \ldots & PDF PNG JPG & Type 1, Type 3 & PDF \\ \XeLaTeX, \LuaLaTeX & utf8 & PDF PNG JPG & Type 1, Type 3, OpenType, Graphite, TrueType & PDF \\ \end{tabular} \end{document}
% Merging cells, merging rows \documentclass{article} \usepackage{booktabs} \usepackage{multirow} \begin{document} \begin{tabular}{cc} Bundle & Main classes \\ \cmidrule(lr){1-1}\cmidrule(lr){2-2} \addlinespace \multirow{4}{*}{\LaTeX\ base} & article \\ & book \\ & report \\ & letter \\ \addlinespace \multirow{4}{*}{KOMA-Script} & scrartcl \\ & scrbook \\ & scrreprt \\ & scrlttr2 \\ \end{tabular} \end{document}
% Splitting a cell diagonally \documentclass{article} \usepackage{slashbox} \begin{document} \renewcommand{\arraystretch}{1.8} \begin{tabular}{|l|c|c|c|c|c|} \hline \slashbox{Time}{Weekday} & Monday & Tuesday & Wednesday & Thursday & Friday \\ \hline 8--10 & & & & & \\ 10--12 & & & & & \\ 12--14 & & & & & \\ 14--16 & & & & & \\ \hline \end{tabular} \end{document}
% Adding shape, shading, and transparency \documentclass[table]{beamer} \setbeamertemplate{navigation symbols}{} \setbeamertemplate{background canvas}[vertical shading]% [top=blue!1,bottom=blue!40] \usepackage{booktabs} \usepackage{tikz} \usetikzlibrary{calc} \pgfdeclarelayer{background} \pgfsetlayers{background,main} \rowcolors{2}{gray!25}{white} \newcommand{\up}{\textcolor{green}{$\blacktriangle$}} \newcommand{\down}{\textcolor{red}{$\blacktriangledown$}} \newcommand{\same}{\textcolor{darkgray}{\textbf{--}}} \newcommand{\heading}[1]{{\Large\bfseries #1\par\medskip}} \arrayrulecolor{blue} \begin{document} \begin{frame} \centering \heading{Linux distribution ranking, December 14, 2014} \begin{tikzpicture} \node (table) { \begin{tabular}{rlrcc} & \textbf{Distribution} & \textbf{Hits} & \\ \addlinespace[2pt] 1 & Mint & 2364 & \down \\ \midrule 2 & Ubuntu & 1838 & \up \\ \midrule 3 & Debian & 1582 & \same \\ \midrule 4 & openSUSE & 1334 & \up \\ \midrule 5 & Fedora& 1262 & \up \\ \midrule 6 & Mageia & 1219 & \down \\ \midrule 7 & CentOS & 1171 & \same \\ \midrule 8 & Arch & 1040 & \same \\ \midrule 9 & elementary & 899 & \same \\ \midrule 10 & Zorin & 851 & \down \\[0.5ex] \end{tabular}}; \begin{pgfonlayer}{background} \draw[rounded corners, top color=blue!20, bottom color=blue!80!black, middle color=blue!80, opacity=0.5, draw=white] ($(table.north west)+(0.14,0)$) rectangle ($(table.north east)-(0.13,0.9)$); \draw[top color=blue!1,bottom color=blue!30,draw=white] ($(table.north east)-(0.13,0.6)$) rectangle ($(table.south west)+(0.13,0.2)$); \end{pgfonlayer} \end{tikzpicture} \small Data by DistroWatch.com, spanning over the last 6 months, hits per day. \end{frame} \end{document}
% Adding shape, shading, and transparency % With automatic row counting \documentclass{beamer} \setbeamertemplate{navigation symbols}{} \setbeamertemplate{background canvas}[vertical shading]% [top=blue!1,bottom=blue!40] \usepackage{booktabs} \usepackage{tikz} \usetikzlibrary{calc} \pgfdeclarelayer{background} \pgfsetlayers{background,main} \newcommand{\up}{\textcolor{green}{$\blacktriangle$}} \newcommand{\down}{\textcolor{red}{$\blacktriangledown$}} \newcommand{\same}{\textcolor{darkgray}{\textbf{--}}} \newcommand{\header}[1]{{\Large\bfseries #1\par\medskip}} \usepackage{array} \newcounter{rank} \setcounter{rank}{0} \newcommand{\steprank}{\stepcounter{rank}\makebox[2em]{\therank}\hspace{\tabcolsep}} \begin{document} \begin{frame} \centering \header{Linux distribution ranking, December 14, 2014} \begin{tikzpicture} \node (tbl) { \begin{tabular}{@{\steprank}lrcc} \multicolumn{1}{l}{\hspace{2em}\textbf{Distribution}} & \textbf{Hits} & \\ \addlinespace[2pt] Mint & 2364 & \down \\ \midrule Ubuntu & 1838 & \up \\ \midrule Debian & 1582 & \same \\ \midrule openSUSE & 1334 & \up \\ \midrule Fedora & 1262 & \up \\ \midrule Mageia & 1219 & \down \\ \midrule CentOS & 1171 & \same \\ \midrule Arch & 1040 & \same \\ \midrule elementary & 899 & \same \\ \midrule Zorin & 851 & \down \\[0.5ex] \end{tabular}}; \begin{pgfonlayer}{background} \draw[rounded corners, top color=blue!20, bottom color=blue!80!black, middle color=blue!80, opacity=0.5, draw=white] ($(tbl.north west)+(0.14,0)$) rectangle ($(tbl.north east)-(0.13,0.9)$); \draw[top color=blue!1,bottom color=blue!30,draw=white] ($(tbl.north east)-(0.13,0.6)$) rectangle ($(tbl.south west)+(0.13,0.2)$); \end{pgfonlayer} \end{tikzpicture} \small Data by DistroWatch.com, spanning over the last 6 months, hits per day. \end{frame} \end{document}
% Adding shape, shading, and transparency % Styling with TikZ matrix \documentclass{beamer} \usepackage{tikz} \usetikzlibrary{matrix} \setbeamertemplate{background canvas}[vertical shading]% [top=blue!1,bottom=blue!40] \setbeamertemplate{navigation symbols}{} \newcommand{\up}{\textcolor{green!75!black}{$\blacktriangle$}} \newcommand{\down}{\textcolor{red}{$\blacktriangledown$}} \newcommand{\same}{\textcolor{darkgray}{\textbf{--}}} \newcounter{rank} \setcounter{rank}{0} \newcommand{\steprank}{\stepcounter{rank}\therank} \newenvironment{matrixtable}[4]{% \begin{tikzpicture} \matrix (m) [matrix of nodes, nodes in empty cells, nodes={draw, top color=blue!10, bottom color=blue!35, inner sep=2pt, minimum height=3.5ex, anchor=center}, top color=blue!20, bottom color=blue!80, draw=white, column sep=1ex, row sep=0.6ex, inner sep=2ex, rounded corners, row 1/.style = {font=\bfseries}, column 1/.style = {minimum width=#1, font=\steprank}, column 2/.style = {minimum width=#2}, column 3/.style = {minimum width=#3}, column 4/.style = {minimum width=#4}]}% {;\end{tikzpicture}} \begin{document} \begin{frame}[fragile] \begin{center} \begin{matrixtable}{1.2cm}{2.4cm}{1.2cm}{0.6cm}{ Rank & Distribution & Hits & ? \\ & Mint & 2364 & \down \\ & Ubuntu & 1838 & \up \\ & Debian & 1582 & \same \\ & openSUSE & 1334 & \up \\ & Fedora & 1262 & \up \\ & Mageia & 1219 & \down \\ & CentOS & 1171 & \same \\ & Arch & 1040 & \same \\ & elementary & 899 & \same \\ & Zorin & 851 & \down \\} \end{matrixtable} \end{center} \end{frame} \end{document}
% Reading in data from files \documentclass{article} \usepackage{booktabs} \usepackage{datatool} \DTLloaddb{Linux}{linux.csv} \DTLsort[Distribution]{Hits=descending}{Linux} \pagestyle{empty} \begin{document} \begin{tabular}{rlr} & Distribution & Hits \\ \cmidrule(lr){2-2}\cmidrule(lr){3-3} \DTLforeach{Linux}{% \distribution=Distribution,\hits=Hits}{% \theDTLrowi & \distribution & \hits \\} \end{tabular} \end{document}
Go to next chapter.