在电子表格中将数字与 siunitx 对齐,包括计算出的数字

在电子表格中将数字与 siunitx 对齐,包括计算出的数字

我想要这样的桌子

\documentclass[12pt]{standalone}
\usepackage{spreadtab}
\usepackage{siunitx}
\usepackage{tabularx}
\usepackage{eurosym}
\usepackage{numprint}
\usepackage{booktabs}
\begin{document}
\begin{spreadtab}{{tabularx}{\linewidth}{XS[table-format=4.2]l}}
\toprule
@{Was}  & @{Betrag [\euro]} & @{Belegart} \\
\midrule
@Nice People Charity & 300 & Spendenbescheinigung @\\
\midrule
@Summe [\euro]  & \textbf{\numprint{:={sum(b2:[0,-1]) }}} & \\
\bottomrule    
\end{spreadtab}
\end{document}

但第二行和最后一行的金额没有对齐:

在此处输入图片描述

我觉得最后一行没有被包括在内siunitx。我该如何让它工作?修修补补table-format=4.2其实不算数,因为我在其他地方的表中也遇到了同样的问题(整个过程都在一个自定义命令中,但现在让我们先保持简单)。

如果有人能帮我解决这个问题

\usepackage{tabu}

而不是 tabularx。我想使用XS[...]X[c]{S[...]}或任何当前命令...通过 Stackexchange 准备就绪让我有点困惑...抱歉。

我尝试使用

\usepackage{dcolumn}

但它没有起作用,因为它不\euro支持

\usepackage{eurosym}

编辑:siunitx:在表格中按小数点对齐数字不适用于粗体或斜体数字siunitx:如何获得粗体、对齐的条目以及如何在单位长度不同时对齐? 我知道数字不对齐的原因是由于粗体和\numprint。但是,我无法让建议发挥作用——可能是因为我还使用了spreadtab

答案1

经过大量的推理和尝试后,我终于找到了解决方案。

我的问题的原因不是由粗体和字母间距引起的,而是因为在应该为单元格的地方放了数字以外的其他东西。在我的例子中,这个“其他东西”是\textbf{\numprint{:={ ... }。这似乎混淆了spreadtab-siunitx组合。\robustify来自siunitx:在表格中按小数点对齐数字不适用于粗体或斜体数字也无济于事。

解决方案是将整行变为粗体(在不同的地方给出命令 -tabu正在帮助解决这个问题),然后取消加粗那些不应该加粗的单元格:

\begin{spreadtab}{{tabu} to \linewidth{XS[table-format=4.2]l}}
\toprule
@{Was}  & @{Betrag [\euro]} & @{Belegart} \\
\midrule
@Nice People Charity & 300 & Spendenbescheinigung @\\
\midrule
\rowfont\bfseries
{\mdseries @Summe [\euro]}  & sum(b2:[0,-1]) & \\
\bottomrule
\end{spreadtab}

相关内容