[Tex/LaTex] the recommended font to use for a statistical table in an academic journal

fontsfontsizetables

I am brand new to LaTex, and I am trying to create a report displaying statistical data, for an academic publication.

The table is quite a large one, consisting of several nested columns, and is 23 cells wide in the data region (away from the titles etc). The publication is in A4 format, so the table has to fit into an A4 page (portrait format).

I remember reading somewhere that Serif fonts should NOT be used for tabular data, so at least I know that I have to use a san serif font. However, this is my first foray into using LaTeX, and would appreciate some advice from the more seasoned pros in here.

I would be very grateful if someone could recommend (best practise) font and font size to use for the column headers and cell data for such a table.

I have attached the table I am trying to create, hopefully, that helps.

Statistical Table

Best Answer

None of the following is to contradict tohecz's comment above, especially regarding serif versus sans-serif fonts. But if you can't find a better table design, or can't do a landscape table, then you'll have to do more than just set a font size for the table. You'll probably have to:

  1. Set a smaller font size for the table
  2. Set a smaller column separation inside the tabular environment
  3. Use smaller margins than the LaTeX default

You'll also want to read the documentation on the booktabs package for some advice on table layout, particularly on avoiding excess rules (and probably all vertical ones). And the siunitx package is good for aligning columns of measurements.

One result using booktabs and siunitx, with dummy body text for size comparison:

enter image description here

Annotated code, broken up for legibility and inline comments (but compiles fine in this form):

\documentclass[a4paper]{article}
\usepackage[margin=3cm]{geometry} % reduce margins to 3cm on all sides
\usepackage{booktabs}
\usepackage{siunitx}
\usepackage{lipsum}
\setlength{\tabcolsep}{2pt} % reduce column separation from default of 6pt
\begin{document}

\lipsum[1]

\begin{table}
\caption{Some caption}
\centering
\scriptsize
% default tabular column formatting:
%  left-aligned label (date),
%  5 measured values with 2 figures before decimal and 1 after,
%  5 measured values with 3 figures before decimal and none after,
%  centered label (power),
%  5 measured values with 2 figures before decimal and 1 after,
%  5 measured values with 3 figures before decimal and none after,
\begin{tabular}{
l
*{5}{S[table-format=2.1]}
*{5}{S[table-format=3.0]}
c
*{5}{S[table-format=2.1]}
*{5}{S[table-format=3.0]}}
% Place a top-of-table rule across all columns
\toprule
% Leave a blank column, span centered label over 10 columns,
% leave a blank column, span another centered label over 10 columns
& \multicolumn{10}{c}{Male} & & \multicolumn{10}{c}{Female} \\
% Place a mid-table rule over columns 2-11 and 13-22
\cmidrule{2-11} \cmidrule{13-22}
% Leave a blank column, span centered label over 5 columns,
% span centered label over 5 columns, span centered label over 5 columns,
% span centered label over 5 columns
& \multicolumn{5}{c}{Weight} & \multicolumn{5}{c}{Height} &
& \multicolumn{5}{c}{Weight} & \multicolumn{5}{c}{Height} \\
% Place mid-table rules over columns 2-6, 7-11, 13-17, and 18-22
% (trimmed on both left and right ends)
\cmidrule(lr){2-6} \cmidrule(lr){7-11} \cmidrule(lr){13-17} \cmidrule(lr){18-22}
% Enclose all repeated headers in braces to keep siunitx from trying to interpret them
Birthday & {Min} & {Q1} & {Med} & {Q3} & {Max} & {Min} & {Q1} & {Med} & {Q3} & {Max} &
   Power & {Min} & {Q1} & {Med} & {Q3} & {Max} & {Min} & {Q1} & {Med} & {Q3} & {Max} \\
% Place a mid-table rule across all columns
\midrule
Jan 2012
& 50.0 & 60.0 & 70.0 & 80.0 & 90.0 & 140 & 150 & 160 & 170 & 180 &
  100 & 50.0 & 60.0 & 70.0 & 80.0 & 90.0 & 140 & 150 & 160 & 170 & 180 \\
& 50.0 & 60.0 & 70.0 & 80.0 & 90.0 & 140 & 150 & 160 & 170 & 180 &
  120 & 50.0 & 60.0 & 70.0 & 80.0 & 90.0 & 140 & 150 & 160 & 170 & 180 \\
& 50.0 & 60.0 & 70.0 & 80.0 & 90.0 & 140 & 150 & 160 & 170 & 180 &
  340 & 50.0 & 60.0 & 70.0 & 80.0 & 90.0 & 140 & 150 & 160 & 170 & 180 \\
% Place a mid-table rule across all columns
\midrule
Feb 2012
& 50.0 & 60.0 & 70.0 & 80.0 & 90.0 & 140 & 150 & 160 & 170 & 180 &
  100 & 50.0 & 60.0 & 70.0 & 80.0 & 90.0 & 140 & 150 & 160 & 170 & 180 \\
& 50.0 & 60.0 & 70.0 & 80.0 & 90.0 & 140 & 150 & 160 & 170 & 180 &
  120 & 50.0 & 60.0 & 70.0 & 80.0 & 90.0 & 140 & 150 & 160 & 170 & 180 \\
& 50.0 & 60.0 & 70.0 & 80.0 & 90.0 & 140 & 150 & 160 & 170 & 180 &
  340 & 50.0 & 60.0 & 70.0 & 80.0 & 90.0 & 140 & 150 & 160 & 170 & 180 \\
% Place a bottom-of-table rule across all columns
\bottomrule
\end{tabular}
\end{table}

\end{document}

The resulting table is legible, but just barely fits in the margins provided. If you had more data or bigger margins, this table would rapidly approach what some people refer to as an "eye chart" table. At that point, you'd definitely have to change the requirements or move away from one giant table entirely. Maybe go to one table for males, one for females. Maybe just put a figure in with confidence interval bars or similar.