siunitx 中有错误吗?

siunitx 中有错误吗?

我正在使用 1/2 英寸的功率siunitx

\documentclass{standalone}

\usepackage[per-mode = symbol-or-fraction]{siunitx}
\usepackage{xfrac}

\begin{document}

\unit{\second\tothe{\text{\sfrac12}}}

\unit{\meter\per\second\tothe{\text{\sfrac12}}}

\end{document}

\per不使用时,它工作正常。但是,\per我收到奇怪的错误:

<argument> \???  
                 ! LaTeX Error: Erroneous variable \protect used!
l.XX ...{\meter\per\second\tothe{\text{\sfrac12}}}

似乎有一些错误siunitx。有人知道如何解决这个问题吗?

答案1

通过使用,\tothe{\sfrac{1}{2}}您依赖于siunitx打印功率而无需数学干预:单位在“解析”模式下处理,因为所有内容“看起来”都是可解析的(没有彻头彻尾的文字)。但是,一旦您添加\per,解析模式下siunitx就需要对指数进行数学运算。由于\sfrac{1}{2}不是数字,因此会失败。

您在这里应该做的是帮助siunitx使用parse-units = false:强制文字打印,并且不尝试对分数进行反转。


我会考虑一下是否应该总是会出错。我过去曾尝试过将分数转换为指数,但代码量很大,而且不是 100% 可靠。不过我会再看看这个:我会记录一些问题。

相关内容