siunitx 表格对齐

siunitx 表格对齐

我想使用 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。)

相关内容