当我在 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
<=