Я хочу создать таблицу с двумя ценами в строке, используя 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}
Если я правильно отформатирую первую колонку, во второй слишком много пробелов. Если правильно отформатировать вторую, символ валюты переместится в цифры первой колонки.
(Если это имеет значение: я использую lualatex из пакетов Debian texlive, версия 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}