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