正确对齐表格中的数字和单位

正确对齐表格中的数字和单位

我需要排版一个表格,比较某些数据集的时间分辨率等。通常,我会将通用单位放入表头,并只在表体中列出值。但是,在这种情况下,一些数据集的分辨率为 5 分钟,其他数据集的分辨率为 1 天,这使得使用相同的单位很不方便(它们要么是 和5 min1440 min要么是0.00347222 d1 d)。

我想将这些值沿着值和单位之间的空间对齐,理想情况下,我希望将单位/值对保留为逻辑实体(即键入\SI{1}{\day}\SI{5}{\minute},就像我在其他上下文中所做的那样)。似乎S提供的列类型siuntix不会对齐使用\SI命令提供的单位/值对,而是将它们居中。

MWE(我希望条目沿着值和单位之间的空间对齐):

\documentclass{article}
\usepackage{siunitx}

\begin{document}
\begin{tabular}{S}
\SI{1}{\day}\\
\SI{30}{\minute}\\
\SI{5}{\minute}
\end{tabular}

\end{document}

答案1

siunitx可能有这个功能但是...

\documentclass{article}
\usepackage{siunitx}

\def\hmm{%
  \def\day{d}\def\minute{min}%
  \def\SI##1##2{$##1\,\makebox[3em][l]{##2}$}}

\begin{document}
\begin{tabular}{>{\hmm}r}
\SI{1}{\day}\\
\SI{30}{\minute}\\
\SI{5}{\minute}
\end{tabular}

\end{document}

似乎按照你的要求去做。

答案2

良好的排版标准不建议将值和单位放在同一列中:这会使表格变得混乱。我读过的书说最好有一个专门的单位列。Siunitx 有s这样的列:

\documentclass{article}
\usepackage{siunitx,booktabs}
\pagestyle{empty}
\begin{document}
\begin{tabular}{lsS}
\toprule
Entry & \multicolumn{1}{c}{Units} & \multicolumn{1}{c}{Value}\\
\midrule
A & \day & 1\\
B & \minute & 30\\
C & \minute & 5\\
\bottomrule
\end{tabular}

\end{document}

在此处输入图片描述

相关内容