将 siunitx v3 S 列嵌入到 tabu X 中

将 siunitx v3 S 列嵌入到 tabu X 中

tabu的文档承诺它可以将一S列(来自siunitx)嵌入到另一X列中,语法如下:X[c]{S[...]}

siunitx需要v2.5e采取v2.5f解决方法时:https://tex.stackexchange.com/a/70323/82186

对于较新的siunitx版本(最新版本为v3.0.16),此解决方法不再有效。

是否有可能tabu与另一个黑客再次合作?

以下是采用过时解决方法的 MNWE:

\documentclass{article}
\usepackage{expl3}

\usepackage{tabu}
\usepackage{siunitx}

\ExplSyntaxOn
  \cs_new_eq:NN \siunitx_table_collect_begin:Nn \__siunitx_table_collect_begin:Nn
\ExplSyntaxOff

\begin{document}

\begin{tabu}{cX[c]{S[explicit-sign=+]}}
   a & 1 \\
   b & 2.2 \\
   c & 3.33 \\
\end{tabu}

\end{document}

以下是它产生的错误:

! Argument of \__siunitx_table_collect_begin:w has an extra }.
<inserted text>
                \par
l.13 \begin{tabu}{XX[c]{S[explicit-sign=+]}}

答案1

你可以tabu用新的 LaTeX3 包替换过时的包tabularraysiunitx。在软件包2021L 版本中添加了对软件包的支持tabularray。(已提交给 CTAN,需要一两天才能到达 TeX Live。)

\documentclass{article}

\usepackage{tabularray}
\UseTblrLibrary{siunitx}

\begin{document}

\begin{tblr}{cX[c,si={explicit-sign=+}]}
   a & 1    \\
   b & 2.2  \\
   c & 3.33 \\
\end{tblr}

\end{document}

相关内容