我想将下表中的列标题(仅限列标题)居中。为什么它对第一列有效,而对第二列无效(我认为这\multicolumn
是解决此问题的正确方法)。
\documentclass{article}
\usepackage[american]{babel}
\usepackage{tabularx}
\usepackage{booktabs}
\begin{document}
\begin{tabular}{rr}
\toprule
\multicolumn{1}{c}{$\alpha$} & \multicolumn{1}{c}{$\alpha=0.99999$} \\
\midrule
10 & 69.681 \\
& 901.741 \\
1000 & 893.630 \\
& 82.806 \\
\bottomrule
\end{tabular}
\end{document}
答案1
这只是一个小例子,说明如何对输入进行小幅修改以获得所需的输出:
\documentclass{article}
\usepackage{tabularx}% http://ctan.org/pkg/tabularx
\usepackage{booktabs}% http://ctan.org/pkg/booktabs
\begin{document}
\begin{tabular}{rc}
\toprule
\multicolumn{1}{c}{$\alpha$} & $\alpha=0.99999$ \\
\midrule
10 & \phantom{0}69.681 \\
& 901.741 \\
1000 & 893.630 \\
& \phantom{0}82.806 \\
\bottomrule
\end{tabular}
\end{document}
\phantom
在小于 100 的数字前添加一个0,使得所有数字的宽度相同,因此c
输入起来很容易。
答案2
它居中正确。问题在于该列中右对齐的数字的长度(宽度)。我的意思是说α = 0.99999
比该列中的任何数字都长。为了证明这一点,让我们放一个稍大一点的数字。
\documentclass{article}
\usepackage[american]{babel}
\usepackage{tabularx}
\usepackage{booktabs}
\begin{document}
\begin{tabular}{rr}
\toprule
\multicolumn{1}{c}{$\alpha$} & \multicolumn{1}{c}{$\alpha=0.99999$} \\
\midrule
10 & 69.681 \\
& 901.741 \\
1000 & 893.630 \\
& 82.80600000000000000000 \\
\bottomrule
\end{tabular}
\end{document}
答案3
使用dcolumn
包中你可以自动获得所需的对齐:
\documentclass{article}
\usepackage{booktabs}
\usepackage{dcolumn}
\newcolumntype{M}{D{.}{.}{3.3}}
\begin{document}
\begin{tabular}{rM}
\toprule
\multicolumn{1}{c}{$\alpha$} & \multicolumn{1}{c}{$\alpha=0.99999$} \\
\midrule
10 & 69.681 \\
& 901.741 \\
1000 & 893.630 \\
& 82.806 \\
\bottomrule
\end{tabular}
\end{document}
答案4
这是一个使用的解决方案siunitx
列格式
\documentclass{article}
\usepackage{booktabs}
\usepackage{siunitx}
\begin{document}
\begin{tabular}{
r
S[
table-format = 3.3,
input-symbols=.,
]
}
\toprule
\multicolumn{1}{c}{$\alpha$} & \multicolumn{1}{c}{$\alpha=0.99999$} \\
\midrule
10 & 69.681 \\
& 901.741 \\
1000 & 893.630 \\
& 82.806 \\
\bottomrule
\end{tabular}
\end{document}