正如标题所示,我尝试\hbar
与mlmodern
和amsfonts
包一起使用。我需要使用\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}