isomath 与 \operatorname 之间不兼容

isomath 与 \operatorname 之间不兼容

以下 MWE 导致一个明显的问题:

\documentclass{amsart}
\usepackage{isomath}
\newcommand{\foo}{\operatorname{\alpha}}
\begin{document}
$\foo$
\end{document}

我该如何避免这种冲突?

答案1

<rant>
由于 ISO 规范改变了数学中几个世纪以来使用的许多惯例并建立了一些愚蠢的规则,因此可以预料到isomath会出现一些奇怪的事情。
</rant>

这里有一个解决方法:将希腊字母设置为\mathnormal

\documentclass{amsart}
\usepackage{isomath}

\newcommand{\foo}{\operatorname{\mathnormal{\alpha}}}
\DeclareMathOperator{\baz}{\mathnormal{\alpha}}

\begin{document}

$\foo\baz$

\end{document}

可能需要它的情况如下:

\documentclass{amsart}
\usepackage{isomath}

\DeclareMathOperator*{\amax}{\mathnormal{\alpha}-max}

\begin{document}

\[
\amax_{x\in[0,1]} f(x)=\beta
\]

\end{document}

在此处输入图片描述

答案2

isomath(更准确地说是 fixmath)重新定义了希腊符号。假设您使用该包是因为您想要这种改变,那么您可能应该定义自己的希腊符号以在里面使用它们\operatorname

\documentclass{amsart}

\usepackage{isomath}

%found in fontmath.ltx
\DeclareMathSymbol{\opalpha}{\mathord}{letters}{"0B}
\DeclareMathSymbol{\opGamma}{\mathalpha}{operators}{"00}

\newcommand{\foo}{\operatorname{\opalpha\opGamma}}
\begin{document}
$\foo \neq \alpha\Gamma$
\end{document}

在此处输入图片描述

相关内容