括号内为小数点

括号内为小数点

我有一个表格列,我使用小数点居中所有数字dcolumn,我发现如果数字在括号中并且没有小数点,那么它将在最后一个括号的右边缘对齐。没有括号,所有内容都正确对齐。有没有简单的方法可以正确对齐?我的表格的简化版本如下:

\documentclass{article}
\usepackage{dcolumn}

\begin{document}

\begin{tabular}{D{.}{.}{-1}}
    [0]\\\relax
    [1.23]\\\relax
    [12.34]
\end{tabular}

\end{document}

这是带括号和不带括号的样子。我希望右列与左列对齐。

表格对齐错误

任何帮助将不胜感激。

答案1

你可以这样做siunitx

\documentclass{article}
\usepackage{siunitx}

\begin{document}

\begin{tabular}{
  S[table-format=2.2]
  S[table-format=2.2,table-space-text-pre={[},table-space-text-post={]},
    table-align-text-pre=false,table-align-text-post=false]
}
 0    &   [0]     \\
 1.23 &   [1.23]  \\
12.34 &   [12.34]
\end{tabular}

\end{document}

在此处输入图片描述

答案2

您可以使其]动作类似.并强制对齐点,将其重新插入到正确的位置。

在此处输入图片描述

\documentclass{article}
\usepackage{dcolumn}
\makeatletter

\def\DC@centre#1#2#3{%
  \let\DC@end\DC@endcentre
  \uppercase{\def~}{$\egroup\setbox\tw@=\hbox\bgroup${#2}}%
  \uccode`\~=`\]%
  \uppercase{\def~}{$\egroup\setbox\tw@=\hbox\bgroup${]}}%
  \setbox\tw@=\hbox{${\phantom{{#2}}}$}%
  \setbox\z@=\hbox\bgroup$\mathcode`#1="8000 
  \mathcode`]="8000 }


\begin{document}

\begin{tabular}{D{.}{.}{-1}}
    [0]\\\relax
    [1.23]\\\relax
    [12.34]
\end{tabular}

\end{document}

相关内容