为什么没有收到命令已定义的错误?

为什么没有收到命令已定义的错误?

如果我编译

\documentclass[border=5pt]{standalone}
\usepackage{unicode-math}
    \newcommand*\Nu{\mathit{Nu}}
%    \newcommand*\Nu{bla}
\begin{document}
    $\Nu$
\end{document}

(使用 LuaLaTeX)使用最新的 MiKTeX 可得到

图像显示了上述代码的结果,其中有一个直立的大写字母 N

而不是斜体的“Nu”。这似乎是因为unicode-math似乎定义了该命令,可以通过注释当前未注释的\newcommand行来验证。

但后来我猜/希望得到错误信息

! LaTeX Error: Command \Nu already defined.
Or name \end... illegal, see p.192 of the manual.

正如您取消注释当前注释的\newcommand行时所得到的结果一样。

有人知道为什么会这样吗?或者这是否是 中的错误unicode-math?或者有人知道如何保留原始命令并仍使新命令有效而不是重命名它吗?

答案1

unicode-math(不幸的是)几乎完成了所有定义,\AtBeginDocument因此命令此时尚未定义。(因此您可以在之后\begin{document}或之中进行重新定义\AtBeginDocument

相关内容