나는 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 패키지 버전 2015.20160117-1의 lualatex를 사용하고 있습니다.)
이 작업을 어떻게 수행할 수 있는지 제안해 주시겠습니까?
답변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}