这俩Booktabs 文档和制作漂亮桌子的小指南提供一些制作专业表格的经验规则(例如,没有双重规则、没有垂直规则等)
问:交替行着色的“规则”是什么?
前者讨论了交替行着色的功能。后者提供了一些示例表经济学家显示了一些行着色。但都没有说明什么时候这样做是好主意,什么时候这样做不是好主意。
就我个人而言,我认为交替行着色很好。这样更容易找到东西(尤其是当表格很宽时)。但如果这被认为是不好的做法,我宁愿不这样做。
我创建了下面的表格,我认为它看起来相当不错(没有奇怪的数学垂直对齐,这是我的问题的主题带有数学公式的表格中的垂直间距)但我愿意接受批评。
答案1
斑马条纹(正如它们的名字)有时可能比没有好,但它仍然是糟糕的桌子设计。看看这个Edward Tufte 的网络论坛上的讨论,其中引用了他书中的一章展望信息(实际上没有关于表格中的斑马条纹的任何讨论,但仍然是一本很棒的书)。
斑马条纹试图解决的问题是相邻列的单元格内容相距太远,导致难以跟踪行内的内容。以下是我提出的改进表格的建议列表,其中思考你需要斑马条纹,大致按顺序。
- 缩短列标题。通常内容单元格包含的信息很少,例如两位数,但较宽的列标题单元格会使列太宽。
- 如果无法缩写列标题,请将其分成两行(或更多行)。
- 稍微旋转列标题,大概 20 度,这样它们就不会占用太多水平空间。如何在 LaTeX 中做到这一点是一个单独的问题。:)
- 有时您实际上可以删除整个标题行,因为每列的含义是显而易见的。
- 在行之间添加额外的空间,这样行实际上看起来就像是单独的行。通常不需要太多额外的空间。
- 在单元格之间或单元格内部添加小的、垂直居中的水平引导点。如果某些单元格是空的,这尤其有用。如何在 LaTeX 中最好地做到这一点当然也是一个单独的问题。
- 以上部分或全部的组合。
如果,且仅当上述方法没有帮助时,即您需要较长的列标题,内容单元格较窄或为空,列间空间较大,并且需要节省垂直空间,则您可能考虑使用斑马条纹,但要知道这仍然是糟糕的表格设计。幸运的是,实际上有一些技巧可以用来减少伤害:
- 使用跨度行与行的颜色相同,这样看起来比简单地交替使用斑马条纹要好得多。例如,将 1-3 行涂成浅蓝色,将 4-6 行涂成白色,将 6-9 行涂成浅蓝色,将 10-12 行涂成白色等。这大大减少了行闪烁的问题。使用三行时,很容易识别每个“组”中的第一行、中间行和最后一行,而且比使用简单的交替行颜色时更难“迷失”(即在列之间移动时读错行)。五行一组的效果也很好。
- 请注意,这里最重要的是将行分组为三行或五行。实际上,您不需要为此添加颜色!只需用一些垂直空白或非常淡或虚的浅色水平线将各组分开即可。
- 使两种背景颜色非常浅或相似。在我看来,您示例中使用的蓝色太暗了。但在淡化颜色时,请务必打印文档以确保浅蓝色仍然明显不同于白色,因为许多打印机不太擅长打印非常浅的颜色。
上述分组最大的问题是,你在视觉上暗示了一个逻辑根本不存在的分组。这是避免使用斑马条纹的一个很好的理由。而且,正如我之前在回答中提到的,它们甚至不是必需的,所以如果你欣赏好的表格设计,就避免使用它们。
答案2
我同意行颜色是表格的一大补充,因为它比水平线要微妙得多。我说的微妙指的是使用不太大胆的颜色——最好使用黑色或灰色,因为它在彩色(屏幕上)和黑白环境(打印)中都有双重用途。
当交替为表格的行着色并使用标题颜色(可能更深)时,开始为表格主体的第二行着色,而不是第一行:
也许,扮演一个反面角色,下面是一个行颜色可能引起问题的例子。关注的是一致性和美观性:
例如,您是否只为第 2-4 列的行着色?或者您是否为每个“方法”组着色(在这种情况下,它默认只为表格主体中的第 3-4 行着色)?或者您是否用相同的行颜色为第一列着色并保持行颜色不变?
\documentclass{article}
\usepackage{booktabs}% http://ctan.org/pkg/booktabs
\usepackage{colortbl}% http://ctan.org/pkg/colortbl
\usepackage{amsmath}% http://ctan.org/pkg/amsmath
\usepackage{xcolor}% http://ctan.org/pkg/xcolor
\usepackage{graphicx}% http://ctan.org/pkg/graphicx
\colorlet{tableheadcolor}{gray!25} % Table header colour = 25% gray
\newcommand{\headcol}{\rowcolor{tableheadcolor}} %
\colorlet{tablerowcolor}{gray!10} % Table row separator colour = 10% gray
\newcommand{\rowcol}{\rowcolor{tablerowcolor}} %
% Command \topline consists of a (slightly modified) \toprule followed by a \heavyrule rule of colour tableheadcolor (hence, 2 separate rules)
\newcommand{\topline}{\arrayrulecolor{black}\specialrule{0.1em}{\abovetopsep}{0pt}%
\arrayrulecolor{tableheadcolor}\specialrule{\belowrulesep}{0pt}{0pt}%
\arrayrulecolor{black}}
% Command \midline consists of 3 rules (top colour tableheadcolor, middle colour black, bottom colour white)
\newcommand{\midline}{\arrayrulecolor{tableheadcolor}\specialrule{\aboverulesep}{0pt}{0pt}%
\arrayrulecolor{black}\specialrule{\lightrulewidth}{0pt}{0pt}%
\arrayrulecolor{white}\specialrule{\belowrulesep}{0pt}{0pt}%
\arrayrulecolor{black}}
% Command \rowmidlinecw consists of 3 rules (top colour tablerowcolor, middle colour black, bottom colour white)
\newcommand{\rowmidlinecw}{\arrayrulecolor{tablerowcolor}\specialrule{\aboverulesep}{0pt}{0pt}%
\arrayrulecolor{black}\specialrule{\lightrulewidth}{0pt}{0pt}%
\arrayrulecolor{white}\specialrule{\belowrulesep}{0pt}{0pt}%
\arrayrulecolor{black}}
% Command \rowmidlinewc consists of 3 rules (top colour white, middle colour black, bottom colour tablerowcolor)
\newcommand{\rowmidlinewc}{\arrayrulecolor{white}\specialrule{\aboverulesep}{0pt}{0pt}%
\arrayrulecolor{black}\specialrule{\lightrulewidth}{0pt}{0pt}%
\arrayrulecolor{tablerowcolor}\specialrule{\belowrulesep}{0pt}{0pt}%
\arrayrulecolor{black}}
% Command \rowmidlinew consists of 1 white rule
\newcommand{\rowmidlinew}{\arrayrulecolor{white}\specialrule{\aboverulesep}{0pt}{0pt}%
\arrayrulecolor{black}}
% Command \rowmidlinec consists of 1 tablerowcolor rule
\newcommand{\rowmidlinec}{\arrayrulecolor{tablerowcolor}\specialrule{\aboverulesep}{0pt}{0pt}%
\arrayrulecolor{black}}
% Command \bottomline consists of 2 rules (top colour
\newcommand{\bottomline}{\arrayrulecolor{white}\specialrule{\aboverulesep}{0pt}{0pt}%
\arrayrulecolor{black}\specialrule{\heavyrulewidth}{0pt}{\belowbottomsep}}%
\newcommand{\bottomlinec}{\arrayrulecolor{tablerowcolor}\specialrule{\aboverulesep}{0pt}{0pt}%
\arrayrulecolor{black}\specialrule{\heavyrulewidth}{0pt}{\belowbottomsep}}%
\begin{document}
\renewcommand{\arraystretch}{1.5}
\begin{tabular}{llll}
\topline
\headcol Approach & Estimator & ME & MAE \\
\midline
& $\widehat{JV}_{\text{na\"ive}}$ & 4.37e-07 & 4.37e-07 \\
\rowcol \smash{\raisebox{1em}{Na\"ive}} & $\widetilde{JV}_{\text{na\"ive}}$ & 3.88e-07 & 3.88e-07 \\
& $\widehat{JV}$ & 1.33e-06 & 1.33e-06 \\
\rowcol \smash{\raisebox{1em}{Regular}} & $\widetilde{JV}$ & 1.20e-06 & 1.20e-06 \\
\bottomlinec
\end{tabular}
\end{document}
上述代码包含许多基于\specialrule
from 的附加行定义booktabs
。它允许为表头(tableheadcolor
)和表体行(tablerowcolor
)指定颜色,具体取决于您的行是否有颜色和/或是否以彩色行结束/开始。
答案3
我认为,如果在表格中添加交替颜色,可读性会大大提高。当然,颜色的选择很重要,您可能会选择柔和的色调,这样文本可读性强,并且与文档的一般“配色方案”完美融合。
我想在这里引用TikZ/PGF
手册中的内容(该引用实际上是从其他地方引用的:)):
排版中唯一的错误是由于无知而造成的。
答案4
文章斑马条纹:更多案件数据从 2008 年起,条纹表略胜一筹:
[…] 对于八个问题中的三个,条纹版比纯色和线条版的答案更准确。第四个问题非常接近统计显著性。对于其余四个问题,这三种样式之间的准确度差异非常小,以至于无法在统计上将其与随机噪声区分开来。在这些情况下,斑马条纹的表现与纯色或线条版一样好,当然也不会更差。”
在另一项调查中,他们发现条纹桌子只是更流行,这也是需要考虑的事情:
典型的斑马条纹方法(单色、单行)是最受欢迎的:31% 的参与者将其评为帮助最大的表格,只有 4% 的参与者将其评为帮助最差的表格。
当然,链接文章中有更多详细信息。