首先,最小工作样本及其输出如下:
\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
。它同样适用于tabular
、tabular*
、tabularx
等。