是否有任何siunitx
选项可以管理处于活动状态时的单位分组per-mode=symbol
?或者,是否有更好的方法来处理这个问题?
手动插入括号可以正常工作(第二行)。但是,当我定义
\DeclareSIUnit\BracrOpen{(}%
\DeclareSIUnit\BracrClose{)}%
并将(
and替换)
为\BracrOpen
and \BracrClose
,我得到了奇怪的结果(第三行)。似乎我可以通过添加一个括号组来解决这个问题(第四行),但如果可能的话,最好不需要这个额外的括号组。
我曾经\DeclareSIUnit
定义过许多其他单位,并没有看到过这个问题,所以想知道是什么导致了这种情况下这种奇怪的结果。
笔记:
- 我更喜欢使用宏,因为它允许对符号进行与其使用无关的其他处理。
代码:
\documentclass{article}
\usepackage{amsmath}
\usepackage{xcolor}
\usepackage{siunitx}
\sisetup{per-mode=symbol}%
\DeclareSIUnit\BracrOpen{\mathopen{(}}%
\DeclareSIUnit\BracrClose{\mathclose{)}}%
\begin{document}
\begin{align*}
g_0
&= \SI{9.81}{\meter\per\second\squared} \\
&= \SI{35.3}{(\kilo\meter\per\hour)\per\second} \\
&= \SI{35.3}{\BracrOpen\kilo\meter\per\hour\BracrClose\per\second}
\qquad\text{\textcolor{red}{Incorrect!}} \\
&= \SI{35.3}{\BracrOpen{\kilo\meter\per\hour}\BracrClose{\per\second}} \\
\end{align*}
\end{document}