前段时间,我使用tabularx
和编写了一个文档siunitx
。它在 TL2016 中编译正常,但现在在 TL2017(预测试)中,它给出了一个错误
(c:/texlive/2017/texmf-dist/tex/latex/siunitx/siunitx-abbreviations.cfg)
! Missing } inserted.
<inserted text>
}
l.14 \end{tabularx}
?
MWE(注意:您必须取消注释一行才能看到错误):
\documentclass{scrreprt}
\usepackage{array}
\usepackage{tabularx}
\usepackage[locale=DE]{siunitx}
\begin{document}
\begin{table}[h]
\caption{Vergleichende Darstellung der Pro-Kopf-Kosten in €}
% uncomment the following line to see the error
% \renewcommand{\tabularxcolumn}[1]{S[table-column-width=#1,table-figures-decimal=2]}
\begin{tabularx}{\linewidth}{@{}lXXXX@{}}
\textbf{Position} & \multicolumn{2}{c}{\textbf{Criterion 1}} & \multicolumn{2}{c}{\textbf{Criterion 2}}\\
1 & 220,00 & 0,00 & 0,00 & 220,00\\
2 & 0,00 & 1,80 & 0,00 & 1,80
\end{tabularx}
\renewcommand{\tabularxcolumn}[1]{p{#1}}
\end{table}
\end{document}
我的问题主要是:什么变化导致了这个问题,以及如何针对 TL17 解决它。
顺便说一句:我确实知道如何将 siunitx 和 tabularx 一起使用?并且该解决方案目前确实有效,但我的问题具体是现在是什么导致了这种冲突。
更新:文件列表
*File List*
scrreprt.cls 2017/04/13 v3.23 KOMA-Script document class (report)
scrkbase.sty 2017/04/13 v3.23 KOMA-Script package (KOMA-Script-dependent basi
cs and keyval usage)
scrbase.sty 2017/04/13 v3.23 KOMA-Script package (KOMA-Script-independent ba
sics and keyval usage)
keyval.sty 2014/10/28 v1.15 key=value parser (DPC)
scrlfile.sty 2017/04/13 v3.23 KOMA-Script package (loading files)
tocbasic.sty 2017/04/13 v3.23 KOMA-Script package (handling toc-files)
scrsize11pt.clo 2017/04/13 v3.23 KOMA-Script font size class option (11pt)
typearea.sty 2017/04/13 v3.23 KOMA-Script package (type area)
array.sty 2016/10/06 v2.4d Tabular extension package (FMi)
tabularx.sty 2016/02/03 v2.11 `tabularx' package (DPC)
siunitx.sty 2017/03/23 v2.7f A comprehensive (SI) units package
expl3.sty 2017/05/13 L3 programming layer (loader)
expl3-code.tex 2017/05/13 L3 programming layer
l3pdfmode.def 2017/03/18 v L3 Experimental driver: PDF mode
xparse.sty 2017/05/13 L3 Experimental document command parser
amstext.sty 2000/06/29 v2.01 AMS text
amsgen.sty 1999/11/30 v2.0 generic functions
l3keys2e.sty 2017/05/13 LaTeX2e option processing using LaTeX3 keys
translator.sty 2010/06/12 ver 1.10
translator-language-mappings.tex
translator-basic-dictionary-English.dict
siunitx-abbreviations.cfg 2017/03/23 v2.7f siunitx: Abbreviated units
***********
答案1
这是由于expl3
与 中的一些低级代码交互发生了变化siunitx
:后者是由于 中有用函数的覆盖范围存在轻微的“差距” expl3
。目前,添加
\ExplSyntaxOn
\cs_set_protected:Npn \hbox_set:Nw #1
{ \tex_setbox:D #1 \tex_hbox:D \c_group_begin_token }
\cs_set_eq:NN \hbox_set_end: \c_group_end_token
\ExplSyntaxOff
将修复此问题。我今天将更新其中一个或两个,expl3
以siunitx
长期解决此问题。(以上是针对当前问题的临时解决方案,但从长远来看并非最佳整体解决方案。)