\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}
部分,但我认为这并没有什么坏处,而且在这里很方便。