如何使用 siunitx 取消等式中的指数?

如何使用 siunitx 取消等式中的指数?

下面的最小工作示例说明了这个问题。我有许多像下面第一个一样格式的方程式,其中分子为平方米,分母为米。我想取消指数,但现在我必须说“m m”并取消第一个“m”,这看起来有点愚蠢。

\documentclass{article}
\usepackage{siunitx}
\usepackage{cancel}
\begin{document}
    How can I cancel out the exponent in the numerator of the following equation?
    \begin{equation}
        W = \frac{\SI{32}{\square\meter}}{\SI{4}{\meter}} = \SI{8}{\meter}
    \end{equation}
    If instead of using \si{\square\meter} I use \si{\meter\meter}, it's easy:
    \begin{equation}
        W = \frac{\SI{32}{\cancel\meter\meter}}{\SI{4}{\cancel\meter}} = \SI{8}{\meter}
    \end{equation}
\end{document}

显然,如果是米立方除以米,我会想取消 3,然后加上 2,但我还没有遇到过这个问题。提前谢谢您!

答案1

正如 Mico 所说,直接跳过所有步骤并手动设置可能更简单siunitx。如果您确实想继续使用siunitx,可以尝试使用一些字距调整将 放在\cancel正确的位置。例如,您可以使用宏对1来删除最终的单位中的下标。

\usepackage{calc}

\newdimen{\KernAmount}

\newcommand{\cancelsup}[2]{%
  \setlength{\KernAmount}{\widthof{{\scriptsize \cancel{#1}}}*\real{-1}}%
  #2\kern\KernAmount\vphantom{}^{\cancel{\phantom{#1}}}}

\newcommand{\canceltosup}[3]{%
  \setlength{\KernAmount}{\widthof{{\scriptsize \cancel{#1}}}*\real{-1}}%
  #3\kern\KernAmount\vphantom{}^{\cancel{\phantom{#1}}}\vphantom{}^{^{#2}}}

第一个只是划掉指数,而第二个还会将替代幂以小文本显示在取消上方。例如:

\[
    W = \frac{\cancelsup{2}{\SI{32}{\square\meter}}}{\SI{4}{\cancel\meter}} = \SI{8}{\meter}
\] \[
    W = \frac{\canceltosup{3}{2}{\SI{32}{\cubic\meter}}}{\SI{4}{\cancel\meter}} = \SI{8}{\square\meter}
\]

上述代码的输出截图

请注意,两者都需要您为要取消的数字提供一个占位符。这是为了确保正确的取消形状和位置出现。


1对于每个代码片段,这仅经过轻微测试,并且可能会以不可预测的方式中断。

相关内容