\begin{document} нарушает переопределение \Re

\begin{document} нарушает переопределение \Re

Чтобы заменить оператор действительной части типа Gothic на простой «Re», мне подойдет следующее:

\documentclass[a4paper,11pt,twoside,fleqn]{report}
[...]
\usepackage{amsmath}
\usepackage{mathtools}
\usepackage[bold-style=ISO]{unicode-math} % must come after ams and symbols
[...]
\begin{document}
\def\Re{\operatorname{Re}}

Однако, если я поменяю местами последние две строки, мое переопределение \Reбудет неэффективным. Что происходит? Как можно \begin{document}перезаписать переопределение макроса?

решение1

Ряд команд в unicode-mathсодержатся в \AtBeginDocumentso сначала запускаются вокруг точки, когда обработка доходит до \begin{document}команды. Вы можете использовать тот же трюк самостоятельно, чтобы переопределить определение:

Пример вывода

\documentclass[a4paper,11pt,twoside,fleqn]{report}

\usepackage{mathtools}
\usepackage[bold-style=ISO]{unicode-math}

\AtBeginDocument{\renewcommand{\Re}{\operatorname{Re}}}
\begin{document}

\( \Re z \)
\end{document}

Похожие команды, такие как \AtEndOfPackageтакже определены в ядре LaTeX. Дополнительные команды, включая \AtBeginEnvironmentнаходятся в etoolboxпакете.

Связанный контент