对于下面的 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)。修复该问题后,我会更新此答案。