我想使用包\underrightarrow
中包含的命令amsmath.sty
。但是,发布者强制使用iopart.cls
与 不兼容的类amsmath.sty
。
还有其他可以使用的替代命令iopart.cls
吗?
答案1
由于非常神秘的原因,该类iopart
不希望其用户加载amsmath
,这听起来很奇怪。在我看来,该类应该要求包而不是试图重新发明轮子。
无论如何,这里有从中提取的代码amsmath.sty
(仅稍作改动),它定义了您需要的构造。
\documentclass[12pt]{iopart}
\makeatletter
\providecommand\underarrow@[3]{%
\vtop{\ialign{##\crcr$\m@th\hfil#2#3\hfil$\crcr
\noalign{\nointerlineskip\kern.12\baselineskip}#1#2\crcr}}}
\providecommand{\underrightarrow}{%
\mathpalette{\underarrow@\rightarrowfill@}}
\providecommand\rightarrowfill@{\arrowfill@\relbar\relbar\rightarrow}
\providecommand\arrowfill@[4]{%
$\m@th\thickmuskip0mu\medmuskip\thickmuskip\thinmuskip\thickmuskip
\relax#4#1\mkern-7mu%
\cleaders\hbox{$#4\mkern-2mu#2\mkern-2mu$}\hfill
\mkern-7mu#3$%
}
\makeatother
\begin{document}
$\underrightarrow{abc}$
\end{document}
答案2
在以下 MWE 中,我只是禁用了冲突的定义iopart
。可能还有其他问题……我不知道该 documentclass。也许你应该阅读一下文档,iopart
以了解它们的反amsmath
决策。
% arara: pdflatex
\documentclass{iopart}
\expandafter\let\csname equation*\endcsname\relax
\expandafter\let\csname endequation*\endcsname\relax
\usepackage{mathtools} % which loads amsmath as well.
\begin{document}
Here is an underrightarrow for you: $\underrightarrow{x}$
\end{document}