加载 AMSfonts 后使用 MLModern 中的 \hbar

加载 AMSfonts 后使用 MLModern 中的 \hbar

正如标题所示,我尝试\hbarmlmodernamsfonts包一起使用。我需要使用\hbar提供的mlmodern,但amsfonts加载时,我得到的是原始的 CM/LM。

我尝试了以下操作,导致出现未定义的控制序列错误$\hbar$

\documentclass{article}

\usepackage{mlmodern}
\let\mlmhbar\hbar

\usepackage{amsfonts}
\let\amshbar\hbar

\begin{document}

\def\hbar{\mlmhbar}

$\hbar$

\end{document}

任何建议都值得感激。

答案1

您需要使用\NewCommandCopy,因为\hbar被定义为一个强命令。

\documentclass{article}

\usepackage{mlmodern}
\NewCommandCopy{\mlmhbar}{\hbar}

\usepackage{amsfonts}
\NewCommandCopy{\amshbar}{\hbar}% just for the comparison

\RenewCommandCopy{\hbar}{\mlmhbar}

\begin{document}

$h\hbar$ $h\amshbar$

\end{document}

在此处输入图片描述

但是,您可以看到带有 MLModern 的条形图碰到了“h”的衬线。

\documentclass{article}

\usepackage{mlmodern}

\usepackage{amsfonts}
\NewCommandCopy{\amshbar}{\hbar}% just for the comparison

\makeatletter
\RenewDocumentCommand{\hbar}{}{%
  {\mathpalette\hbar@bar\relax\mkern -9muh}%
}
\newcommand{\hbar@bar}[2]{\raisebox{-0.075\height}{$\m@th#1\mathchar'26$}}
\makeatother

\begin{document}

$h\hbar$ $h\amshbar$

$\scriptstyle h\hbar$

\end{document}

在此处输入图片描述

相关内容