使用 \DeclareSIUnit 定义单位会导致 siunitx 抛出错误

使用 \DeclareSIUnit 定义单位会导致 siunitx 抛出错误

我正在尝试定义一个自定义单位如下

\DeclareSIUnit{\cmHg}{\centi\meter.\mathrm{Hg}}

在 的以前版本中siunitx,它运行得很好。在最新版本中,它却不行了。甚至连圆点都看不见了。

我的MWE

\documentclass[aspectratio=169, xcolor={x11names}, t, handout]{beamer}

\usetheme{Dresden}
\usefonttheme{professionalfonts}

\usepackage{siunitx}
\DeclareSIUnit{\cmHg}{\centi\meter.\mathrm{Hg}}

\begin{document}

\begin{frame}
    
    $\si{\cmHg}$
    
    $\si{\centi\meter.\mathrm{Hg}}$
    
\end{frame}
    
\end{document}

答案1

混合使用“文字”和基于宏的单元总是有些风险。在 v3 中,更受控制的代码路径意味着您需要将它们干净地分开。作为cmHg一个单元,我只会使用

\DeclareSIUnit{\cmHg}{cmHg}

你也可以把这当作一个彻头彻尾的限定词

\DeclareSIUnit[qualifier-mode = space]{\cmHg}{\centi\metre\of{Hg}}

相关内容