按表格列中的小数点对齐数字

按表格列中的小数点对齐数字

首先我要声明,我确实在谷歌上搜索了答案(我很快就会引用它们)。然而,我找到的每一个资源都讨论了一种特定的方法,我对这些方法的比较很感兴趣。

到目前为止,我发现了三种解决这个问题的方法:

  • 将数字分成两列(整数部分和小数部分),如文档所述这里或者这里。LaTeX 代码很简单,但是当需要从外部来源复制和粘贴表格时,这种方法就很麻烦。

  • 使用dcolumn手动

  • 使用 Mike Zhang 的自动转换器描述)我还没有测试过。

大多数人使用什么dcolumn? 还有其他选择吗?

答案1

最新的选项是S使用siunitx包裹。

\documentclass{article}

\usepackage{siunitx}

\begin{document}
\begin{tabular}{S[table-format=3.2]}% syntax for siunitx v2; for v1 use "tabformat"
555 \\
7.77 \\
99.9
\end{tabular}

\end{document}

例子

答案2

尽管这篇文章已经提到过,但还是值得讨论一下包中详细介绍了这一点。该包提供了一种称为的列类型,D用于对小数点进行对齐。该D列类型有三个输入:输入小数点(通常为.,)、输出小数点(同样,通常为.,)以及小数点前后的位数。如果输入和输出小数点始终相同(例如,始终相同.),则设置如下简写形式很有用:

\newcolumntype{d}[1]{D{.}{.}{#1}}

以下是基于 @lockstep 代码的完整 MWE——事实上,在这个简单的例子中,S[table-format=3.2]和的输出D{.}{.}{3.2}完全相同的

在此处输入图片描述

\documentclass{article}
\usepackage{dcolumn}
\newcolumntype{d}[1]{D{.}{.}{#1}}
\begin{document}
\begin{tabular}{d{3.2}}
555 \\
7.77 \\
99.9
\end{tabular}
\end{document}

相关内容