\setmainfont 破坏 \DeclareMathOperator

\setmainfont 破坏 \DeclareMathOperator

\DeclareMathOperator没有 也能正常工作\setmainfont

\documentclass[a4paper]{standalone}
\usepackage{amsmath}
\DeclareMathOperator{\grad}{\nabla}
\usepackage{unicode-math}
\begin{document}
$\nabla \grad f$
\end{document}

正确的输出

但是,一旦我包含该命令\setmainfont,它\DeclareMathOperator就会停止工作。

\documentclass[a4paper]{standalone}
\usepackage{amsmath}
\DeclareMathOperator{\grad}{\nabla}
\usepackage{unicode-math}
\setmainfont{texgyrebonum}
\begin{document}
$\nabla \grad f$
\end{document}

在此处输入图片描述

XeLaTeX 和 LuaLaTeX 都会发生这种情况。为什么会发生这种情况?如何解决?

答案1

不需要有这样的间距。

\newcommand*\grad[1]{\nabla\mathord{#1}} % and use like \grad{f}

如果你想确保一个小空间(比如在差速器之前),你可以添加\mathop{}\!

\newcommand*\grad[1]{\mathop{}\!\nabla\mathord{#1}}

当然,您可以删除该论点和\mathord{#1}部分,但我认为这并没有什么坏处,而且在这里很方便。

相关内容