siunitx 格式的表格中后缀间距不一致

siunitx 格式的表格中后缀间距不一致

我想制作一个包含两个价格的表格,使用 siunitx 实现数字的美观且一致的显示。为了避免在数据行中重复货币符号,我将其作为后缀插入到相关列中。每行一个价格标签时效果很好;但是,如果是第二个价格标签,siunitx 似乎会增加每行每次出现后缀时为后缀保留的空间。这是一个非常简单的示例:

\documentclass{scrartcl}
\usepackage{polyglossia}
\usepackage{siunitx}
\sisetup{table-number-alignment=right}
\newcolumntype{E}[0]{S[
           table-figures-decimal=0,
           table-align-text-post=true,
           table-space-text-post={€}]<{€}}
\begin{document}
\begin{tabular}{EE}
63 & 126 \\
49 & 49 \\
\end{tabular}
\end{document}

如果第一列的格式正确,第二列的空白就会太多。如果第二列格式正确,货币符号就会移到第一列的数字中。

(如果有的话:我正在使用 Debian texlive 软件包中的 lualatex,版本 2015.20160117-1。)

有什么建议可以让这个工作正常进行吗?

答案1

在此处输入图片描述

% arara: lualatex

\documentclass{scrartcl}
\usepackage{polyglossia}
\usepackage{siunitx}
\newcolumntype{E}[1]{S[%
    ,table-format=#1
    ,table-space-text-post={\,€}]<{\,€}
    }

\begin{document}
% Quote taken from the manual page 71
When processing tables, \verb|siunitx| will expand anything stored
inside a macro, unless it is long or protected. \LaTeXe{} robust
commands are also detected and are not expanded. 
Values which would otherwise be expanded
can be protected by wrapping them in a set of braces. As \TeX{} itself
will expand the first token in a table cell before \verb|siunitx|
can act on it, using the $\varepsilon$-\TeX{} protected mechanism is the
recommended course of action to prevent expansion of macros in
table cells. (As is shown in the table, \TeX's expansion of
\LaTeXe{} robust commands can lead to unexpected results.)
\bigskip

\begin{tabular}{E{2.0}E{3.0}}
    63 & 126 \cr
    49 &  49 \cr
\end{tabular}
\end{document}

相关内容