具有自定义垂直间距、列分隔、居中、行颜色和字体大小的表格

具有自定义垂直间距、列分隔、居中、行颜色和字体大小的表格

我正在尝试制作(我认为)一个非常简单的表格。就像下面 txt 中的表格一样

   ================================================
     Header1     Header2      Header3     Header4
    ---------   ---------    ---------   ---------
     asd asd      asdas        asad        asdas
    asasdass    aasd asda     sad sad     das dsa
   ================================================

这些限制是:

  1. 表格必须位于页面中央;
  2. 表格内容必须居中;
  3. 顶部和底部规则比中心规则更宽
  4. 每列中的每个中心规则之间都有一个小的间距
  5. 必须使用双色模式对行进行着色,以便于阅读。
  6. 能够缩小整个表格的字体大小。
  7. 自定义行之间的垂直空间(稍微宽一些以容纳一些空气;-)

使用不同的包,如 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}

相关内容