在带有首字母缩略词包的案例环境中,符号大小不匹配

在带有首字母缩略词包的案例环境中,符号大小不匹配

当我在 cases 环境中设置数学公式时,使用 acronym 包时遇到了麻烦。查看以下 MWE,您会注意到 arccot 内部的“gamma”和“p”小于可点击的“a”和“y”,而外部的 y 和 gamma 大小正确。我已经将问题追溯到 cases 环境,但不知道如何修复它。有什么想法吗?

\documentclass[12pt]{book}
\usepackage{amsmath}
\usepackage[printonlyused,withpage]{acronym}
\usepackage[hidelinks]{hyperref}
\begin{document}
\begin{equation}
    \begin{cases}
        \text{arccot}\left(\frac{\gamma{}^2-\acs{a}\cdot\acs{y}}{p}\right) & \acs{y}<=|\gamma{}|
    \end{cases}
\end{equation}
\begin{acronym}
    \acro{a}[\ensuremath{a}]{half width of the superconducting strip}
    \acro{y}[\ensuremath{y}]{cartesian coordinate}
\end{acronym}
\end{document}

渲染后的 MWE:平均能量损失

答案1

我从来不会用这个acronym包来表示数学符号,但是,正如大卫卡莱尔在聊天中经常说的那样,“顾客永远是对的”。

问题在于\acs使用了\mbox,这解释了问题。这里有一个补丁:

\documentclass[12pt]{book}
\usepackage{amsmath}
\usepackage[printonlyused,withpage]{acronym}

\usepackage{etoolbox}
\makeatletter
%% make \acs use \text instead of \mbox
\patchcmd{\AC@acs}{\mbox}{\text}{}{}
\makeatother

\DeclareMathOperator{\arccot}{arccot}

\usepackage[hidelinks]{hyperref}
\begin{document}
\begin{equation}
\begin{cases}
\arccot\left(\frac{\gamma^{2}-\acs{a}\cdot\acs{y}}{p}\right) & \acs{y}\le|\gamma|
\end{cases}
\end{equation}
\begin{acronym}
    \acro{a}[\ensuremath{a}]{half width of the superconducting strip}
    \acro{y}[\ensuremath{y}]{cartesian coordinate}
\end{acronym}
\end{document}

请注意,\DeclareMathOperator应该将 用作“arccot”。还请注意,这\gamma{}^2是错误的,应该省略。在数学模式下,空格没有问题(它们基本上被忽略了),因此不要使用普通文本中用于宏的技巧:比较和{}的结果以了解原因。还请注意,而不是,这不是正确的数学符号。$\Gamma{}_{2}$$\Gamma_{2}$\le<=

在此处输入图片描述

相关内容