siunitx/tabularray:\sisetup{mode = match} 返回错误

siunitx/tabularray:\sisetup{mode = match} 返回错误

对于下面的 MWE,仅当或与单位一起使用时\sisetup{mode = match}才会引发以下错误:\square\squared

缺少插入 $。

那么,为什么会发生这种情况呢?

\documentclass{article}
\usepackage[paperheight=68mm]{geometry}
%\usepackage{unicode-math}
\usepackage{xcolor,tabularx}
\usepackage{tabularray, siunitx}

\sisetup{mode = match} % results in an error only if \square or \squared is used

\UseTblrLibrary{booktabs,siunitx}
\NewColumnType{s}[1][]{Q[l, cmd=\sisetup{#1}\unit]}

\begin{document}
    
    \begin{longtblr}[
        caption = {The Caption},
        ]{
            width = 0.7\linewidth, 
            colspec = {
                Q[1.6,l]
                Q[0.4,c]
                S[
                table-format = 4.3e-1,
                parse-numbers = true,
                table-alignment-mode = none,
                table-number-alignment = right,
                exponent-mode = input,
                exponent-product = \times,
                round-mode = none,
                round-precision = 3,
                tight-spacing = true,
                ]
                s[%
                per-mode = symbol,
                bracket-unit-denominator,
                sticky-per%
                ]
            }, % <<<<<<<<<
            rowhead = 1,
            row{even} = {gray9},
            cell{1}{3} = {c=2}{c}, % multicolumn
        }

        Parameter & Symbol & {{{Value}}} &     \\
        two       & a      & 1.6         & \m\squared \\
    \end{longtblr}
    
\end{document}

答案1

2021-09-15 更新:此错误已修复。您可以从以下位置下载最新的软件包文件 https://github.com/lvjr/tabularray/raw/main/tabularray.sty 或者等待 2021-10-01 计划发布的 2021P 版本。

在此处输入图片描述


这是软件包的一个错误tabularray。以下是显示此错误的一个最小示例:

(顺便说一下,从版本开始,该s列已经在siunitx库中预定义了2021M。您不需要也不允许s再次定义列。)

\documentclass{article}

\usepackage{tabularray}
\UseTblrLibrary{siunitx}

\sisetup{mode = match}

\begin{tblr}{s}
  \m\squared
\end{tblr}

\end{document}

此问题与选项的当前限制有关cmd(请参阅#57)。修复该问题后,我会更新此答案。

相关内容