如何将 longtable 中的列与逗号对齐?

如何将 longtable 中的列与逗号对齐?

首先,最小工作样本及其输出如下:

\documentclass{article}
\usepackage{longtable,multirow,booktabs}

\begin{document}

\begingroup
\setlength{\aboverulesep}{0pt}
\setlength{\belowrulesep}{0pt}
\begin{longtable}{ l | c | c }
\multirow{2}{*}{names}&\multicolumn{2}{c}{numbers} \\ \cmidrule{2-3}
&  number 1 & number 2 \\ \hline
Sir, 2008 & 10 & 9 \\ \hline
Madam, 1930 &  8 & 6
\end{longtable}
\endgroup

\end{document}

在此处输入图片描述

如您所见,第一列与左对齐。那么如何将第一列与逗号对齐?

答案1

(在 OP 提供了更多有关其实际格式化目标的信息后,我重写了这个答案。)

我建议您使用两列而不是一列作为文本材料,并将,(逗号)作为列间规范的一部分。

为了处理标题中不符合此格式目标的行,我建议您将相关单元格放在\multicolumn{2}{l}}{...}“包装器”中。例如,更改

\multirow{2}{*}{names}

\multicolumn{2}{l|}{\multirow{2}{*}{names}}

接下来,将第 2 行开头的空白单元格更改为

\multicolumn{2}{l|}{}

最后,不要忘记\cline{2-3}用替换\cline{3-4}

在此处输入图片描述

\documentclass{article}
\usepackage{longtable,multirow}

\begin{document}

\begin{longtable}{ l | c | c }
\multirow{2}{*}{names} &
\multicolumn{2}{c}{numbers} \\ \cline{2-3}
& number 1 & number 2 \\ \hline
Sir, 2008   & 10 & 9 \\ \hline
Madam, 1930 &  8 & 6
\end{longtable}

\begin{longtable}{ r @{,\space} l | c | c }
\multicolumn{2}{l|}{\multirow{2}{*}{names}} &
\multicolumn{2}{c}{numbers} \\ \cline{3-4}
\multicolumn{2}{l|}{} 
& number 1 & number 2 \\ \hline
Sir   & 2008 & 10 & 9 \\ \hline
Madam & 1930 &  8 & 6
\end{longtable}

\end{document}

此方法并非特定于longtable。它同样适用于tabulartabular*tabularx等。

相关内容