Quero produzir uma tabela com dois preços seguidos, usando siunitx para conseguir uma exibição agradável e consistente dos números. Tentando não repetir o símbolo da moeda nas linhas de dados, insiro-o como sufixo nas colunas relevantes. Isso funciona bem com uma etiqueta de preço por linha; com um segundo, entretanto, siunitx parece aumentar o espaço reservado para o sufixo a cada ocorrência por linha. Aqui está um exemplo mínimo:
\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}
Se eu acertar o formato da primeira coluna, haverá muitos espaços em branco na segunda. Acertando a segunda, move o símbolo da moeda para os algarismos da primeira coluna.
(Caso seja importante: estou usando lualatex dos pacotes Debian texlive, versão 2015.20160117-1.)
Alguma sugestão de como posso fazer isso funcionar?
Responder1
% 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}