我正在尝试制作(我认为)一个非常简单的表格。就像下面 txt 中的表格一样
================================================
Header1 Header2 Header3 Header4
--------- --------- --------- ---------
asd asd asdas asad asdas
asasdass aasd asda sad sad das dsa
================================================
这些限制是:
- 表格必须位于页面中央;
- 表格内容必须居中;
- 顶部和底部规则比中心规则更宽
- 每列中的每个中心规则之间都有一个小的间距
- 必须使用双色模式对行进行着色,以便于阅读。
- 能够缩小整个表格的字体大小。
- 自定义行之间的垂直空间(稍微宽一些以容纳一些空气;-)
使用不同的包,如 tabularx、tabular、booktabs 或普通表格,我可以实现一些项目,但永远无法实现所有项目。例如,我可以使用常规表格进行着色,但这在 tabularx 中不起作用。我这里有很多不同的表格代码,但没有一个能够实现所有项目。下面的示例(我无法调整字体大小,使用\small
这里的环境不起作用)。
\begin{table}[h!]
\def\arraystretch{1.2}
\begin{center}
\rowcolors{2}{black!5}{black!2}
\begin{tabular}{c c c c c}
\toprule
\scshape{Header1} && \scshape{Header2} && \scshape{Header3} \\
\cmidrule{1-1}\cmidrule{3-3}\cmidrule{5-5}
Asd Asd && asda && Something \\
AAA AAA && Else && asdasd asd \\
\bottomrule
\end{tabular}
\end{center}
\end{table}
答案1
tabularx
以下屏幕截图和相关代码表明,在使用环境并切换到\small
相对字体大小的同时,实现所有目标并不困难。
\documentclass{book}
\usepackage{booktabs}
\usepackage{tabularx,ragged2e}
\newcolumntype{C}{>{\Centering}X} % for "after" table
\usepackage[table]{xcolor}
\begin{document}
\textcolor{red}{before} % the OP's own code
\begin{table}[h!]
\def\arraystretch{1.2}
\begin{center}
\rowcolors{2}{black!5}{black!2}
\begin{tabular}{c c c c c}
\toprule
\scshape{Header1} && \scshape{Header2} && \scshape{Header3} \\
\cmidrule{1-1}\cmidrule{3-3}\cmidrule{5-5}
Asd Asd && asda && Something \\
AAA AAA && Else && asdasd asd \\
\bottomrule
\end{tabular}
\end{center}
\end{table}
\textcolor{red}{after}
\begin{table}[h]
\small % obj. #6
\renewcommand\arraystretch{1.1} % obj. #7
\setlength\tabcolsep{10pt} % obj. #4 (default: 6pt}
\centering % obj. #1
\rowcolors{2}{black!7}{white} % obj. #5
\begin{tabularx}{0.6\textwidth}{ CCC } % obj. #2
\toprule % obj. #3
\rowcolor{white} % obj. #5
\textsc{Header1} & \textsc{Header2} & \textsc{Header3} \\
\cmidrule(lr){1-1}\cmidrule(lr){2-2}\cmidrule(lr){3-3} % obj. #4
Asd Asd & asda & Something \\
AAA AAA & Else & asdasd asd \\
\bottomrule
\end{tabularx}
\end{table}
\end{document}