# Dealing with many tables on small space

I’m trying create a small and handy summary of rules for a pen and paper RPG (a game master screen). So I have to deal with lots of small paragraphs and tables. My goal is to get much information on a few sheets of paper – as clearly arranged as possible.

I prefer scrartcl as documentclass (using DIV=15 for smaller margins). At the moment most of my tables (code below).

I’d like to arrange all of the slim tables in two columns (using e.g. multicol) on the paper to get as many tables as possible on each sheet (but there are also wider ones). This is a screenshot of a comparable word document

which shows roughly what I’d expect of my TeX output.

Any ideas how I can arrange the tables in a nice-looking and space-saving manner? I think floating tables are not useful here. And there is a limit of floating tables per page, iirc.

Which table environment(s) suit best to my needs and/or is there a "clever" way to handle those tables by creating an own environment? Sorry for being unspecific, but maybe someone else tried to create a "cheat sheet" like this with latex.

tl;dr: I need lots of tables and \paragraphs to fit well-arranged on less paper. Think of a cheat sheet for school, but nice looking and clear.

Here you’ve got an cleaned up TeX-file to get an idea of what my document looks like:

\documentclass[a4paper,10pt,DIV=15]{scrartcl}
\usepackage[T1]{fontenc}
\usepackage{booktabs, longtable, multicol}

\title{Game Master Screen }
\begin{document}

\maketitle

\section{Fighting}

\begin{multicols}{2}

\subsection{Melee}
\paragraph{important rule} short explanation, just one to three sentences.
\paragraph{useful rule} short explanation, just one to three sentences.
\paragraph{not useful rule} short explanation, just one to three sentences. Short explanation, just one to three sentences.

\subsection{Special Maneuvers}
\paragraph{disarming} short explanation, just one to three sentences.
\paragraph{another one} is eplained in tab.\,\ref{tab:extab}.
\paragraph{yet another one} is eplained somewhere else in very short sentences.

\end{multicols}

\begin{table}
\caption{Example Table\label{tab:extab}}
\begin{longtable}{lllp{6cm}}
\toprule
Talent & AU & WV & Anmerkungen \\
\midrule
Raufen  &  1W & 2/0 &
keine besonderen Kampfmanöver;
gute AT: echte SP oder W6\,KR kampfunfähig \\

Boxen   &  1W & 2/0  &
KK-14; bei 6 +1W, wieder 6: für 1W20\,KR
kampfunfähig\\

Ringen  &  1W & 2/0 &
AT gelungen: Wurf, 1W6 SP, 1\,KR kampfunfähig
\emph{oder}
Würgegriff (kein Schaden), dann AT-2 und PA+2
(gelungen: 1W SP), anschließend +/-3 usw.;
Kein RS! \\

Hruruzat & 2W & 3/1 &
KK-15; bei Pasch +2W SP  \\

gegen Bewaffnete      & \ldots & \ldots &
nur Ausweichen, AT erst möglich, wenn Gegners AT
misslingt; wenn Gegner Pariert, dann SP durch dessen
Waffe \\
\bottomrule
\end{longtable}
\end{table}

\section{Magic}

More text and tables go here.

\end{document}

-
Welcome to TeX.sx! –  lockstep Dec 9 '12 at 16:48
perhaps related (?) automatically insert data in a complex table –  cmhughes Dec 9 '12 at 18:24

I take a somewhat different approach from you, but here's some initial code. I'll update this as I get something that looks closer to what you posted.

I've not filled the page with tables, but that is certainly possible. Once you've made all your tables, it's just a matter of finding the right order to list them to fill the page.

\documentclass[a4paper,10pt,twocolumn,landscape]{scrartcl}
%% make the margins small, but this will leave very little room
%% for printing a title.
\usepackage[margin=1cm]{geometry}
%% You want to economize on space.  Let's not waste it on indenting
%% paragraphs particularly since, visually, you don't really have any.
\setlength{\parindent}{0pt}
%% your fonts and other packages
\usepackage[T1]{fontenc}
%% setting up to use alternate shading of rows of your tables
\usepackage[table]{xcolor}
\colorlet{altrowcolor}{gray!20}
%% Allows your tables to fit to the width of the line they're contained in
%% use column type "X" to indicate the column that will expand to help fit
%% to line.  "X" is automatically converted to column type "p" once the
%% best fit has been found.
\usepackage{tabularx}
%% packages for this demonstration purpose only
\pagestyle{empty}
\usepackage{lipsum}
\begin{document}
\rowcolors{0}{altrowcolor}{white}
\begin{tabularx}{\linewidth}{|Xcccp{5cm}c|}\hline
Some texts     & 3 & 4 & 599 & NA, MP, OK, RP, ST, NA & $10+$ \\
Longer Content & 3 & 4 & 599 & NA, MP, OK,            & $10+$ \\
Some texts     & 3 & 4 & 599 & NA, MP, OK,            & $10+$ \\
Some texts     & 3 & 4 & 599 & NA, MP, OK,            & $10+$ \\
Some texts     & 3 & 4 & 599 & NA, MP, OK,            & $10+$ \\
Some texts     & 3 & 4 & 599 & NA, MP, OK,            & $10+$ \\\hline
\end{tabularx}

\vspace{1ex}

\rowcolors{0}{altrowcolor}{white}
\begin{tabularx}{\linewidth}{|lX|}\hline
some category     & much longer content that may need to be wrapped around and continue on a second line. \\
another category  & but we can have short lines too \\
a third category  & random content that doesn't have to fill the line or wrap \\
a fourth category & random content that doesn't have to fill the line or wrap \\
a fifth category  & random content that doesn't have to fill the line or wrap \\\hline
\end{tabularx}
\vspace{1ex}

\begin{tabularx}{0.5\linewidth-1em}[t]{|X|c|c|c|}\hline
initial content & col 1 & col 2 & col 3 \\\hline
initial content & col 1 & col 2 & col 3 \\\hline
initial content & col 1 & col 2 & col 3 \\\hline
initial content & col 1 & col 2 & col 3 \\\hline
initial content & col 1 & col 2 & col 3 \\\hline
\end{tabularx}\hspace*{1em}%
{\begin{minipage}[t]{0.5\linewidth}\raggedright{}
\textbf{Here is some text set next to a table} Lorem ipsum dolor sit
amet, consectetuer adipiscing elit. Ut purus elit, vestibulum ut, placerat
ac, adipiscing vitae, felis. Curabitur dictum gravida mauris. Nam arcu
libero, nonummy eget, consectetuer id, vulputate a, magna. Donec vehicula
augue eu neque. Pel- lentesque habitant morbi tristique senectus
\end{minipage}}

\vspace{\fill}

\pagebreak

\rowcolors{0}{altrowcolor}{white}
\begin{tabularx}{\linewidth}{|X|}\hline
\\
{\let\par\relax\lipsum[1]} \\
{\let\par\relax\lipsum[2]} \\\hline
\end{tabularx}

\vspace{1ex}

Create a table with shaded in cells.  There is probably a much better way to make this table
than what I've done.  In particular, the \verb=\cNam= command is only just a hack to make the columns look nicer.

\vspace{1ex}

\newcommand{\mtcc}{\cellcolor{gray!20}}%%empty-cell-content
\newcommand{\cNam}[1]{\hspace*{0.65em}#1\hspace*{0.65em}}%%             column name
\rowcolors{0}{white}{white}
\begin{tabularx}{\linewidth}{|X|c|c|c|c|c|c|c|c|c|}\hline
Col Titles      & \cNam{A} & \cNam{B} & C\cNam{C} & \cNam{D} & \cNam{E} & \cNam{F} & \cNam{G} & \cNam{H} & \cNam{I}   \\\hline
id for this row & 23       & 43       & 54        & 340      & 23       & 43       & 54       & 340      & 23  \\\hline
id for this row & \mtcc    & 43       & 54        & 340      & 23       & 43       & 54       & 340      & 23  \\\hline
id for this row & \mtcc    & \mtcc    & 54        & 340      & 23       & 43       & 54       & 340      & 23  \\\hline
id for this row & \mtcc    & \mtcc    & \mtcc     & 340      & 23       & 43       & 54       & 340      & 23  \\\hline
id for this row & \mtcc    & \mtcc    & \mtcc     & \mtcc    & 23       & 43       & 54       & 340      & 23  \\\hline
id for this row & \mtcc    & \mtcc    & \mtcc     & \mtcc    & \mtcc    & 43       & 54       & 340      & 23  \\\hline
id for this row & \mtcc    & \mtcc    & \mtcc     & \mtcc    & \mtcc    & \mtcc    & 54       & 340      & 23  \\\hline
id for this row & \mtcc    & \mtcc    & \mtcc     & \mtcc    & \mtcc    & \mtcc    & \mtcc    & 340      & 23  \\\hline
id for this row & \mtcc    & \mtcc    & \mtcc     & \mtcc    & \mtcc    & \mtcc    & \mtcc    & \mtcc    & 23  \\\hline
\end{tabularx}

\end{document}


-
In order to make easier the final tweaking to fit as many tables as possible, I would recommend make each table (and other paragraphs) into a macro, such as \MeleeTable, \ManeouversTable, and so on. Then, your document will reduce to a sequence like: \begin{document}\MeleeTable\ManeouversTable etc...\end{document} (I mean one macro per line, but I cannot write that in a comment). This way you can easly reorder the tables to find the best fit. –  JLDiaz Dec 9 '12 at 17:54
@JLDiaz. I completely agree except I would save the content to boxes and call later with \usebox. –  A.Ellett Dec 9 '12 at 17:58
@A.Ellett I don't think that boxes are necessary or useful at this place. They are less flexible than macros. And TeX's memory capacity is less limited than 20 years ago so one don't have to really worry about having many macros. –  tohecz Dec 9 '12 at 21:58