![将表格单元格与加号或减号对齐](https://linux22.com/image/371872/%E5%B0%86%E8%A1%A8%E6%A0%BC%E5%8D%95%E5%85%83%E6%A0%BC%E4%B8%8E%E5%8A%A0%E5%8F%B7%E6%88%96%E5%87%8F%E5%8F%B7%E5%AF%B9%E9%BD%90.png)
我有一个看起来或多或少像这样的表格:
\documentclass{article}
\usepackage{array,booktabs}
\begin{document}
\begin{table}
\begin{tabular}{lrlrlrll}
\toprule
Examples & \multicolumn{2}{l}{value1} & \multicolumn{2}{l}{value2} & \multicolumn{3}{l}{value3 (+smth)} \\
example1 & 1 & -1 & 12 & +? & 12 & +? & (+123) \\
example2 & 12 & +5 & 123 & +? & 123 & +? & (+12) \\
example3 & 123 & -10 & 1 & +? & 1 & +? & (+1234) \\
example4 & 23 & +123 & 234 & +? & 234 & +? & (+23) \\
example5 & 234 & +4 & 23 & +? & 23 & +? & (+234) \\
\bottomrule
\end{tabular}
\end{table}
\end{document}
它的渲染如下:
Examples value1 value2 value3 (+smth)
example1 1 -1 12 +? 12 +? (+123)
example2 12 +5 123 +? 123 +? (+12)
example3 123 -10 1 +? 1 +? (+1234)
example4 23 +123 234 +? 234 +? (+23)
example5 234 +4 23 +? 23 +? (+234)
这接近我想要的,但在+
和-
符号之前有多余的空格,这既令人困惑,又难以适应页面。此外,由于+
和-
的宽度不同(在显示的等宽输出中不可见),因此无法正确对齐。有没有办法去掉这些空格,让它看起来像下面这样?
Examples value1 value2 value3 (+smth)
example1 1-1 12+? 12+? (+123)
example2 12+5 123+? 123+? (+12)
example3 123-10 1+? 1+? (+1234)
example4 23+123 234+? 234+? (+23)
example5 234+4 23+? 23+? (+234)
我查看了对齐的示例@{}
,但由于有两个可能的对齐字符(+
和-
),我无法使其工作。还有列包,但我认为它也只适用于单个字符。
答案1
删除列间空格并使用数学模式
\documentclass{article}
\usepackage{array,booktabs}
\begin{document}
\begin{table}
\begin{tabular}{l*{3}{>{$}r<{$}@{}>{$}l<{$}}>{$}l<{$}}
\toprule
Examples & \multicolumn{2}{l}{value1} & \multicolumn{2}{l}{value2} & \multicolumn{3}{l}{value3 (+smth)} \\
example1 & 1 & -1 & 12 & +? & 12 & +? & (+123) \\
example2 & 12 & +5 & 123 & +? & 123 & +? & (+12) \\
example3 & 123 & -10 & 1 & +? & 1 & +? & (+1234) \\
example4 & 23 & +123 & 234 & +? & 234 & +? & (+23) \\
example5 & 234 & +4 & 23 & +? & 23 & +? & (+234) \\
\bottomrule
\end{tabular}
\end{table}
\end{document}
答案2
您有三个复合列,其模式如下:number
±
number
,可以将其设置为@{}>{${}}c<{{}$}@{}
。一种新的列类型对此很有用,请参见下文。我还将最后一列与前一列合并,使其与标题相似。
\documentclass{article}
\usepackage{array,booktabs}
\begin{document}
\begin{table}
\newcolumntype{C}{ @{}>{${}}c<{{}$}@{} }
\begin{tabular}{l *3{rCl} }
\toprule
Examples & \multicolumn{3}{c}{value1} & \multicolumn{3}{c}{value2} & \multicolumn{4}{c}{value3 (+smth)} \\
example1 & 1 & - & 1 & 12 & + & ? & 12 & + & ? (+123) \\
example2 & 12 & + & 5 & 123 & + & ? & 123 & + & ? (+12) \\
example3 & 123 & - & 10 & 1 & + & ? & 1 & + & ? (+1234) \\
example4 & 23 & + & 123 & 234 & + & ? & 234 & + & ? (+23) \\
example5 & 234 & + & 4 & 23 & + & ? & 23 & + & ? (+234) \\ \bottomrule
\end{tabular}
\end{table}
\end{document}