我希望在表格环境中小数部分沿其点垂直对齐。为此,我使用r@{.}l
后面的命令\begin{tabular}{...}
(参见 MWE)。如果表格中只有小数部分和短文本(使用命令\multicolumn
),这种方法效果很好。但是,如果我在其他行中使用相同的技术添加较长的文本,小数部分就会突然左对齐。
如何让所有内容都居中显示?以下是 MWE:
\documentclass[12pt,a4paper]{article}
\usepackage{caption}
\begin{document}
\begin{table}
\begin{center}
\makebox[\textwidth]{
\begin{tabular}{lr@{.}l}
\hline
\hline
& \multicolumn{2}{c}{header} \\
\hline
row 1 & 0&1234 \\
row 2 & \multicolumn{2}{c}{text} \\
\hline
\hline
\end{tabular}
}
\caption{Correct display}
\end{center}
\end{table}
\begin{table}
\begin{center}
\makebox[\textwidth]{
\begin{tabular}{lr@{.}l}
\hline
\hline
& \multicolumn{2}{c}{header} \\
\hline
row 1 & 0&1234 \\
row 2 & \multicolumn{2}{c}{here's some longer text} \\
\hline
\hline
\end{tabular}
}
\caption{Wrong display}
\end{center}
\end{table}
\end{document}
所有输出应如下所示:
答案1
您可以使用S
包的 -columnssiunitx
。
\documentclass[12pt,a4paper]{article}
\usepackage{siunitx}
\begin{document}
\begin{table}
\centering % Don't use center in floats!
\begin{tabular}{lS}
\hline
\hline
& {header} \\
\hline
row 1 & 0.1234 \\
row 2 & {text} \\
\hline
\hline
\end{tabular}
\caption{Correct display}
\end{table}
\begin{table}
\centering
\begin{tabular}{lS}
\hline
\hline
& {header} \\
\hline
row 1 & 0.1234 \\
row 2 & {here's some longer text} \\
\hline
\hline
\end{tabular}
\caption{Wrong display}
\end{table}
\end{document}
请阅读手册如果您想微调结果。