我正在使用 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% 可靠。不过我会再看看这个:我会记录一些问题。