我想使用 siunitx 的 S 列类型将数字和文本都左对齐。我试过:
\documentclass[ngerman]{scrreprt}
\usepackage{babel}
\usepackage[locale=DE]{siunitx}
\sisetup{separate-uncertainty}
\sisetup{multi-part-units=single}
\usepackage{booktabs}
\begin{document}
\selectlanguage{ngerman}
\begin{tabular}{l*{2}{S[table-figures-decimal=1,
table-text-alignment=left,
table-number-alignment=left,
table-figures-uncertainty=1]}}
\toprule
A & {Column1 symbol $\Delta$} & {Column2 symbol $\delta$} \\
& {Column1} & {Column2} \\
\midrule
B & -5.0 \pm 1.0 & -10.0 \pm 2.0 \\
C & 0.0 \pm 1.0 & 5.0 \pm 2.0 \\
D & -20.0 \pm 1.0 & -100.0 \pm 2.0 \\
\bottomrule
\end{tabular}
\end{document}
不幸的是,文本和数字中的减号不在一条线上。将两者向右对齐即可。
答案1
如果不预先解析所有列内容,就不可能提前知道为列内容留出多少空间。这就是siunitx
需要“预先”提供信息的原因:解析表格需要对底层结构进行大规模更改。因此,这尚未实现,siunitx
也没有计划这样做。(“纯”LaTeX3 表格模块可能有所不同,但即使如此,对于排版应用程序,您也应该提前知道宽度是多少,或者以某种可以预处理的形式保存数据,例如文件.csv
。)