siunitx 中的 sfrac 不再起作用

siunitx 中的 sfrac 不再起作用

我已经使用\sfracinsidesiunitx很长时间了。最近它不起作用,并且出现很多错误。你能建议我该怎么做吗?

梅威瑟:

\documentclass{minimal}
\usepackage{tikz,xfrac}

\usepackage{siunitx}
\DeclareSIPostPower\rooted{\sfrac{1}{2}}

\begin{document}

\si[per-mode=fraction]{\W\s\rooted\per\m\squared\per\K}

\end{document}

答案1

此问题是由于 的一些内部处理而引起的\text。作为解决方法,您可以使用

\DeclareSIPostPower\rooted{\text{\sfrac{1}{2}}}

这应该能使你的文档正常工作。


问题本身很复杂。在 v2 中,siunitx重置每个数字/单位的所有文本和数学模式字体设置。当大多数时候只需要数学或文本时,这非常“昂贵”。所以对于 v3,我只在数学模式下设置数学模式字体。这样就需要处理数学\text模式中的嵌套。为了解决这个问题,siunitx如果\text在数学模式中发现,我会应用字体设置。但是,在每个框周围\sfrac内部使用\text,这导致了这里的问题。我已经为这种情况处理了它fraction-command = \sfrac,但对于任意嵌套在数学模式中的如何做到这一点不太清楚\sfrac

相关内容