unicode-math 和 renewcommand 的问题

unicode-math 和 renewcommand 的问题

尊敬的 Stackexchange 用户,

我想用 lualatex 写我的论文,因为我正在使用 lualatex,所以我想使用它来构建包。但我偶然发现了一个奇怪的效果:我想将部分运算符重新定义为正直的。所以我写了一个更新命令行。但是如果我尝试编译以下文档

\documentclass{article}

\usepackage{fontspec}
\usepackage{unicode-math}
\AtBeginDocument{\setmathfont{Latin Modern Math}}
\usepackage{polyglossia}
\setdefaultlanguage{english}

\AtBeginDocument{\renewcommand{\partial}{\symup{\partial}}}

\begin{document}

$\partial \symup{\partial}$

\end{document}

我收到以下错误

! TeX capacity exceeded, sorry [input stack size=5000].

并且没有生成输出 pdf。有人知道为什么会发生这种情况吗?

问候雅各布

PS:\AtBeginDocument 必须位于 renew 命令前面,否则 renew 命令不会产生任何效果。此行为的解释是(请参阅解释

unicode-math waits until \begin{document} to setup the default font and the default definitions.

答案1

无需重新命令。unicode-math 有一个更改符号的选项:

\documentclass{article}

\usepackage{unicode-math}
\usepackage[english]{babel}
\unimathsetup {partial=upright}

\begin{document}

$\partial \symup{\partial}$

\end{document}

在此处输入图片描述

相关内容