5.0 KiB
@slide(layout=chapter-slide)
@title Tables
@slide(layout=content-only)
@title Basic structure 🗒️
@content
For typographically pleasing tables, we use the booktabs package.
\usepackage{booktabs}
\begin{table}[<position>]
\begin{tabular}{<column definition>}
% table content
\end{tabular}
\caption{<caption>}
\end{table}
Positioning works just like with graphics.
@slide(layout=content-and-preview)
@title Column definitions
@content
\begin{tabular}{lrcl}
% table content
\end{tabular}
| letter | meaning |
|---|---|
| l | left-justified column |
| c | centered column |
| r | right-justified column |
++Vertical separator lines and double horizontal lines are frowned upon by typographers and should be avoided.
@slide(layout=content-and-preview)
@title Table content
@content
\begin{tabular}{lll}
\toprule
Column 1 & Column 2 & Column 3 \\
\midrule
Content a & Content b & Content c \\
Content e & Content f & Content g \\
Content i & Content j & Content k \\
\bottomrule
\end{tabular}
- ++Lines are separated by ’
&’. - ++Rows are ended by ‘
\\’. - ++
\toprule,\midruleand\bottomrulestructure the table.
@slide(layout=wide-content)
@title The entire table
@todo Doppel-Plus in der Tabelle kaputt
@content
\begin{table}[h]
\begin{tabular}{lrcl} \toprule
Language & Author & Year & Version \\
\midrule C++ & Bjarne Stroustrup & 1985 & C++17 \\
Java & James Gosling & 1998 & 13 \\
Python & Guido van Rossum & 1991 & 3.8.0 \\
\bottomrule
\end{tabular}
\caption{Well-known programming languages}
\end{table}
`@{}` to the left and right of a column defnition removes the padding of the corresponding column.
`\begin{tabular}{@{}lrcl@{}}` limits the row separators to the width of the table content
@slide(layout=content-only)
@title Particularly long tables
@content
Tables that exceed one page are simply cut off by tabular. A solution is offered by the longtable package:
\usepackage{longtable}
\begin{longtable}{<column definition>}
% table content
\caption{<caption>}
\label{<label>}
\end{longtable}
@slide(layout=content-only)
@title
Notes on longtable
@content
\begin{longtable}{<column definition>}
% table content
\caption{<caption>}
\label{<label>}
\end{longtable}
- ++The
longtableenvironment merges thetabularandtableenviroments. - ++Caption and label can therefore be inserted directly under the table content.
- ++As long as the
booktabspackage is used, its features are also provided inlongtable.
@slide(layout=content-only)
@title Particularly wide tables
@todo Gegen sidewaystable aus rotating austauschen
@content If you need a table to be wider than a page, you can use a page in landscape orientation:
\usepackage{lscape}
\begin{landscape}
\begin{table}[<position>]
\begin{tabular}{<column def.>}
% table content
\end{tabular}
\end{table}
\end{landscape}
@slide(layout=content-and-preview)
@title An advanced example
@content
\begin{table}[h]
\begin{tabular}{llr}
\toprule
Structure & \multicolumn{2}{l}{Access time complexity} \\ \cmidrule(r){2-3}
& Average & Worst \\
\midrule
Stack & $\mathcal{O}(n)$ & $\mathcal{O}(n)$ \\
Binary tree & $\mathcal{O}(log(n))$ & $\mathcal{O}(log(n))$ \\
AVL tree & $\mathcal{O}(log(n))$ & $\mathcal{O}(log(n))$ \\
\bottomrule
\end{tabular}
\end{table}
@slide(layout=content-only)
@title More comfort
@content The Tables Generator is a wonderful tool to quickly create tables of different formats.
@slide(layout=task)
@task-number 11
@title Typesetting tables
@content
- Include the files
seitenaufbau.texandschriften.tex. - Table 6 in section 7 illustrates the predefined font sizes. Insert an additional right-justified column in which you number the number the sizes consecutively.
- ++Add a table header separated from the rest of the table by a
\midrule. The column headings may be something like “no.,” “command,” and “example.”
