我对了解一些好看的表格示例很感兴趣。颜色可以带来巨大的差异,只需为标题、背景或边框提供一些颜色就可以显著改变外观。您有什么值得骄傲的样本可以分享吗?
(顺便说一下,这是一个我喜欢的样本,但不幸的是,不是 TeX......)
答案1
人们似乎普遍认为booktabs
是可行的方法,如果您想要拥有一个排版精美的表格。结果确实很优雅,但对某些人来说,它可能显得有点...简朴。
以下是我从网上收集的一些示例:
- http://www.inf.ethz.ch/personal/markusp/teaching/guides/guide-tables.pdf(更像是一个指南,但很好地并排展示了平淡无奇和排版优雅的表格)
来自我们自己网站的一些贡献:
为了完整起见,还有tabu
包。我之所以列出它,只是因为我赞同“情人眼里出西施”的观点。但请记住,我既不喜欢文档中的结果(文档本身在我看来很碍眼),也不建议使用它——它已经有报告称存在错误。
(编辑:有点双关语:使用tabu
是禁忌。:)
)
最后,一个小例子(来自关于傅里叶级数和变换的作业):
代码
\documentclass{article}
\usepackage{amsfonts}
\usepackage{booktabs}
\usepackage{siunitx}
\begin{document}
\begin{tabular}{SSSSSSSS} \toprule
{$m$} & {$\Re\{\underline{\mathfrak{X}}(m)\}$} & {$-\Im\{\underline{\mathfrak{X}}(m)\}$} & {$\mathfrak{X}(m)$} & {$\frac{\mathfrak{X}(m)}{23}$} & {$A_m$} & {$\varphi(m)\ /\ ^{\circ}$} & {$\varphi_m\ /\ ^{\circ}$} \\ \midrule
1 & 16.128 & +8.872 & 16.128 & 1.402 & 1.373 & -146.6 & -137.6 \\
2 & 3.442 & -2.509 & 3.442 & 0.299 & 0.343 & 133.2 & 152.4 \\
3 & 1.826 & -0.363 & 1.826 & 0.159 & 0.119 & 168.5 & -161.1 \\
4 & 0.993 & -0.429 & 0.993 & 0.086 & 0.08 & 25.6 & 90 \\ \midrule
5 & 1.29 & +0.099 & 1.29 & 0.112 & 0.097 & -175.6 & -114.7 \\
6 & 0.483 & -0.183 & 0.483 & 0.042 & 0.063 & 22.3 & 122.5 \\
7 & 0.766 & -0.475 & 0.766 & 0.067 & 0.039 & 141.6 & -122 \\
8 & 0.624 & +0.365 & 0.624 & 0.054 & 0.04 & -35.7 & 90 \\ \midrule
9 & 0.641 & -0.466 & 0.641 & 0.056 & 0.045 & 133.3 & -106.3 \\
10 & 0.45 & +0.421 & 0.45 & 0.039 & 0.034 & -69.4 & 110.9 \\
11 & 0.598 & -0.597 & 0.598 & 0.052 & 0.025 & 92.3 & -109.3 \\ \bottomrule
\end{tabular}
\end{document}
输出
答案2
我认为值得一提的是tcolorbox
-这个组合tabularx
,它提供了一种绘制(可能非常)花哨表格的简单方法。
一些例子:
\documentclass{article}
\usepackage[usenames,dvipsnames]{xcolor}
\usepackage{tcolorbox}
\usepackage{tabularx}
\usepackage{array}
\usepackage{colortbl}
\tcbuselibrary{skins}
\newcolumntype{Y}{>{\raggedleft\arraybackslash}X}
\tcbset{tab1/.style={fonttitle=\bfseries\large,fontupper=\normalsize\sffamily,
colback=yellow!10!white,colframe=red!75!black,colbacktitle=Salmon!40!white,
coltitle=black,center title,freelance,frame code={
\foreach \n in {north east,north west,south east,south west}
{\path [fill=red!75!black] (interior.\n) circle (3mm); };},}}
\tcbset{tab2/.style={enhanced,fonttitle=\bfseries,fontupper=\normalsize\sffamily,
colback=yellow!10!white,colframe=red!50!black,colbacktitle=Salmon!40!white,
coltitle=black,center title}}
\begin{document}
\begin{tcolorbox}[tab2,tabularx={X||Y|Y|Y|Y||Y}]
Group & One & Two & Three & Four & Sum \\\hline\hline
Red & 1000.00 & 2000.00 & 3000.00 & 4000.00 & 10000.00 \\\hline
Green & 2000.00 & 3000.00 & 4000.00 & 5000.00 & 14000.00 \\\hline
Blue & 3000.00 & 4000.00 & 5000.00 & 6000.00 & 18000.00 \\\hline\hline
Sum & 6000.00 & 9000.00 & 12000.00 & 15000.00 & 42000.00
\end{tcolorbox}
\begin{tcolorbox}[tab2,tabularx={X||Y|Y|Y|Y||Y},title=My table,boxrule=0.5pt]
Group & One & Two & Three & Four & Sum \\\hline\hline
Red & 1000.00 & 2000.00 & 3000.00 & 4000.00 & 10000.00 \\
Green & 2000.00 & 3000.00 & 4000.00 & 5000.00 & 14000.00 \\
Blue & 3000.00 & 4000.00 & 5000.00 & 6000.00 & 18000.00 \\\hline\hline
Sum & 6000.00 & 9000.00 & 12000.00 & 15000.00 & 42000.00
\end{tcolorbox}
\begin{tcolorbox}[tab1,tabularx={X||YYYY||Y}]
Group & One & Two & Three & Four & Sum \\\hline\hline
Red & 1000.00 & 2000.00 & 3000.00 & 4000.00 & 10000.00 \\
Green & 2000.00 & 3000.00 & 4000.00 & 5000.00 & 14000.00 \\
Blue & 3000.00 & 4000.00 & 5000.00 & 6000.00 & 18000.00 \\\hline\hline
Sum & 6000.00 & 9000.00 & 12000.00 & 15000.00 & 42000.00
\end{tcolorbox}
\end{document}
定制的可能性几乎是无穷无尽的,一切都取决于编写适合您需求的自定义 tcb 样式。示例(经过一些修改)取自tcolorbox
手动的, 部分/tcb/tabularx
。
答案3
我也赞成 给出的指导booktabs
,并且通常更喜欢简单、朴素的表格。但是,您可能希望引起人们对给定行的最高值的注意 --- 例如,您的教学评估分数表。(也就是说,一份可能比您想放在书中的内容“更响亮”的文档。)在这种情况下,也许某种颜色适合电子表格,但您宁愿只使用粗体来表示打印版本。等等。
这是我以前做过的事情的简化版本(针对fontspec
依赖引擎):
\documentclass[12pt, oneside, landscape]{memoir}
\newif\ifblackandwhite
% \blackandwhitetrue
\usepackage{fontspec}%
\defaultfontfeatures{Ligatures=TeX}%
\setmainfont[%
Numbers = OldStyle ,
ItalicFont = LinLibertineOI ,
BoldItalicFont = LinLibertineOBI ,
BoldFont = LinLibertineOB ,
]{LinLibertineO}%
\usepackage[hmargin=2cm,vmargin=2.5cm]{geometry}
\usepackage{etoolbox}
\usepackage{longtable}%
\AtBeginEnvironment{longtable}{%
\addfontfeature{RawFeature=+tnum;-onum}% <--- requires LuaTeX
}
\usepackage{pdflscape}
\usepackage[svgnames]{xcolor}
\usepackage{colortbl}%
\newcommand{\myrowcolour}{\rowcolor[gray]{0.925}}
\usepackage{booktabs}
\ifblackandwhite
\newcommand{\cheading}[2]{\textbf{#1\hfill #2}}
\newcommand{\highest}[1]{\textbf{#1}}% == highest score for question
\else
\newcommand{\cheading}[2]{\textcolor{Maroon}{\textbf{#1\hfill #2}}}
\newcommand{\highest}[1]{\textcolor{Maroon}{\textbf{#1}}}%
\fi
\begin{document}
\thispagestyle{empty}
\parindent0pt
%
\cheading{Fake Course Evaluation Summary for \textsc{course
1234y}}{Sept.\ 2010 --- May 2011}
\begin{longtable}{@{}l rr rr rr rr rr rr}
% pairs: absolute number (percentage)
\toprule%
\centering%
& \multicolumn{2}{c}{{{\bfseries Excellent}}}
& \multicolumn{2}{c}{{{\bfseries Very Good}}}
& \multicolumn{2}{c}{{{\bfseries Good}}}
& \multicolumn{2}{c}{{{\bfseries Average}}}
& \multicolumn{2}{c}{{{\bfseries Poor}}}
& \multicolumn{2}{c}{{{\bfseries Very Poor}}} \\
\cmidrule[0.4pt](r{0.125em}){1-1}%
\cmidrule[0.4pt](lr{0.125em}){2-3}%
\cmidrule[0.4pt](lr{0.125em}){4-5}%
\cmidrule[0.4pt](lr{0.125em}){6-7}%
\cmidrule[0.4pt](lr{0.125em}){8-9}%
\cmidrule[0.4pt](lr{0.125em}){10-11}%
\cmidrule[0.4pt](l{0.25em}){12-13}%
% \midrule
\endhead
Some question about the Instructor or Course & 2 & (7.14) & 4 &
(14.29) & \highest{12} & \highest{(42.86)} & 4
& (14.29) & 6 & (21.43) & 0 & (0.00) \\
\myrowcolour%
Some question about the Instructor or Course & 3 & (10.71) &
\highest{15} & \highest{(53.57)} & 5 & (17.86) & 5 & (17.86) & 0 &
(0.00) & 0 & (0.00) \\
Some question about the Instructor or Course & 4 & (14.29) & 8 &
(28.57) & \highest{15}
& \highest{(53.57)} & 1 & (3.57) & 0 & (0.00) & 0 & (0.00) \\
\myrowcolour%
Some question about the Instructor or Course & 3 & (10.71) & 8 &
(28.57) & \highest{10} & \highest{(35.71)}
& 5 & (17.86) & 2 & (7.14) & 0 & (0.00) \\
Some question about the Instructor or Course & 6 & (21.43) &
\highest{9} & \highest{(32.14)}
& 4 & (14.29) & \highest{9} & \highest{(32.14)} & 0 & (0.00) & 0 & (0.00) \\
\myrowcolour%
Some question about the Instructor or Course & \highest{10} &
\highest{(35.71)} & \highest{10} & \highest{(35.71)}
& 3 & (10.71) & 5 & (17.86) & 0 & (0.00) & 0 & (0.00) \\
Some question about the Instructor or Course & \highest{12} &
\highest{(42.86)} & \highest{12} & \highest{(42.86)} & 3
& (10.71) & 1 & (3.57) & 0 & (0.00) & 0 & (0.00) \\
\myrowcolour%
Some question about the Instructor or Course & \highest{12} &
\highest{(42.86)} & 3 & (10.71) & 7
& (25.00) & 5 & (17.86) & 1 & (3.57) & 0 & (0.00) \\
Some question about the Instructor or Course & \highest{10} &
\highest{(35.71)} & 6 & (21.43) & 6 & (21.43) & 6 & (21.43)
& 1 & (3.57) & 0 & (0.00) \\
\myrowcolour%
Some question about the Instructor or Course & 5 & (17.86) & 5 &
(17.86) & \highest{12} & \highest{(42.86)} & 2 & (7.14)
& 3 & (10.71) & 1 & (3.57)\\
Some question about the Instructor or Course & 3 & (10.71) & 8 &
(28.57) & \highest{11} & \highest{(39.29)} & 3 & (10.71) & 3 & (10.71)
& 0 & (0.00) \\
\myrowcolour%
Some question about the Instructor or Course & \highest{18} &
\highest{(64.29)}
& 5 & (17.86) & 3 & (10.71) & 1 & (3.57) & 1 & (3.57) & 0 & (0.00) \\
Some question about the Instructor or Course & \highest{15} &
\highest{(53.57)}
& 7 & (25.00) & 2 & (7.14) & 2 & (7.14) & 2 & (7.14) & 0 & (0.00) \\
\myrowcolour%
Some question about the Instructor or Course & 3 & (10.71) &
\highest{13} & \highest{(46.43)} & 4 & (14.29) & 6 & (21.43) & 2
& (7.14) & 0 & (0.00) \\
\bottomrule
\end{longtable}
\end{document}
评论:\blackandwhitetrue
如果要禁用颜色, 请取消注释。并且\addfontfeature
命令\AtBeginEnvironment
需要fontspec
包。
答案4
一位经常被引用的印刷工,罗伯特·布林赫斯特在他的书中谈到表格印刷风格的要素,第 70-71 页:
编辑表格时要给予文本同样的关注,并将其设置为要阅读的文本。
...
- 所有文本都应水平放置,或者在极少数情况下倾斜放置。如果文本是日语或中文,则将列标题设置为垂直以节省空间是可行的,但如果文本是用拉丁字母书写的,则不切实际。
- 字体太小或太紧凑,阅读不舒适,这不是解决方案。
- 应该有最少量的家具(规则,框,点和其他用于穿越印刷空间的导轨)和最大量的信息。
- 规则、色块或其他指南和分隔符(如果有必要)应沿着主要的阅读方向运行:对于列表、索引和一些数字表,则垂直运行,否则水平运行。
- 位于表格边缘的线,将第一列或最后一列与相邻的空白区域分隔开,通常没有任何作用。
- 表格与其他多列文本一样,其内部必须包含足够量的空白。
关于第三点,爱德华·塔夫特创造了“数据墨水比”一词,其含义为(从量化信息的可视化展示,第 93 页):
之后,您通常可以用空格替换表格中使用的任何规则。同样,在表格中显示大量数据时,不要使用“斑马条纹”行,您可以在行组之间添加垂直空白(或背景颜色),例如 3 或 5 行(假设行是可以整除的),以便更容易跟踪信息。
这是我在 baselinegrid 中为游戏制作的备忘单的示例(它是纯 XeTeX 格式,因此可以使用 进行编译xetex
):
\def\mainfont{Myriad Pro}
\font\bodyfont="\mainfont:mapping=tex-text;+onum" at 8bp \let\tenrm\bodyfont
\font\boldfont="\mainfont/B" at 8bp \let\tenbf\boldfont
\bodyfont
\baselineskip=10bp
\smallskipamount=\baselineskip
\medskipamount=2\baselineskip
\setbox\strutbox=\hbox{%
\vrule height .7\baselineskip depth .3\baselineskip width 0pt}
\newcount\rowcount
\def\headersfor#1{
\noalign{\global\rowcount=0 \medbreak}
\bf #1& LVL& LDR& ATT& DEF& INI& SPD& HP& DMG\crcr
\noalign{\nobreak\smallskip}}
\def\cr{\crcr\noalign{\maybeskip}}
\def\maybeskip{\ifnum\rowcount=2 \global\rowcount=0 \smallbreak
\else \global\advance\rowcount by 1 \fi}
\halign{#\hfil\strut&& \quad\hfil#\crcr
\headersfor{Orc}
Goblin& 2& 35& 16& 10& 4& 2& 20& 2--4\cr
Furious Goblin& 2& 40& 14& 14& 6& 3& 38& 3--8\cr
Orc& 3& 60& 16& 17& 4& 2& 65& 7--10\cr
Catapult& 3& 120& 33& 15& 4& 2& 80& 5--9\cr
Veteran Orc& 4& 140& 25& 25& 6& 3& 110& 15--20\cr
Shaman& 4& 200& 24& 32& 5& 3& 160& 15--18\cr
\headersfor{Neutral}
Thorn-Hunter& 1& 8& 4& 1& 2& 3& 5& 1--2\cr
Thorn-Warrior& 1& 8& 4& 3& 4& 3& 8& 1--3\cr
Fire Dragonfly& 1& 9& 3& 1& 5& 3& 6& 1--3\cr
Lake Dragonfly& 1& 9& 3& 1& 6& 4& 6& 1--3\cr
Devilfish& 1& 12& 6& 4& 6& 3& 10& 1--3\cr
Venomous Spider&1& 12& 5& 1& 4& 3& 10& 2--3\cr
Cave Spider& 1& 14& 4& 4& 2& 3& 14& 2--4\cr
Hyena& 2& 20& 8& 8& 4& 3& 14& 3--4\cr
Pirate& 2& 25& 8& 4& 4& 3& 20& 3--5\cr
Swamp Snake& 2& 28& 12& 8& 4& 2& 25& 3--5\cr
Fire Spider& 2& 30& 12& 12& 6& 3& 27& 4--5\cr
Snake& 2& 30& 14& 8& 5& 2& 28& 3--6\cr
% ...
}
\bye