“包 siunitx 错误:重复 \per”和 \DeclareSIUnit

“包 siunitx 错误:重复 \per”和 \DeclareSIUnit

以下导致我出现此错误

软件包 siunitx 错误:重复 \per

期望的输出是N.m/(rad.s-1)

\documentclass{article}
\usepackage{siunitx}
\sisetup{
    load-configurations = abbreviations,
    inter-unit-product = \ensuremath{{\hspace{-0.5ex}}\cdot{\hspace{-0.5ex}}},
    sticky-per,
    per-mode = symbol,
    bracket-unit-denominator,
}
\DeclareSIUnit[per-mode = reciprocal-positive-first]{\radpers}{\radian\per\s}
\begin{document}
    \si{\N\m\per\radpers}
\end{document}

答案1

您已设置sticky-per,这意味着\per会自动应用于第一个单元之后的每个单元。您已 \per在 中\N\m\per\radpers,因为这会变成(实际上)\N\m\per\radian\per\s。如果您直接使用该输入,您将看到完全相同的错误。您需要关闭sticky-per

(我个人不喜欢sticky-per:它仅包含在包中,因为一些用户认为这更“合乎逻辑”。)

答案2

相关答案建议使用\raiseto{-1}\tothe{-1}代替\per\\DeclareSIUnit

但是,我不知道该错误是由于语法错误还是错误造成的。

在此处输入图片描述

\documentclass{article}
\usepackage{siunitx}
\sisetup{
    load-configurations = abbreviations,
    inter-unit-product = \ensuremath{{\hspace{-0.5ex}}\cdot{\hspace{-0.5ex}}},
    sticky-per,
    per-mode = symbol,
    bracket-unit-denominator,
}
\DeclareSIUnit{\radpers}{\radian\s\tothe{-1}}
\begin{document}
    \si{\N\m\per\radpers}
\end{document}

相关内容