为什么在另一行添加长文本时,小数部分(沿表格中的点垂直对齐)会左对齐?

为什么在另一行添加长文本时,小数部分(沿表格中的点垂直对齐)会左对齐?

我希望在表格环境中小数部分沿其点垂直对齐。为此,我使用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}

表格1表 2

请阅读手册如果您想微调结果。

相关内容