\begin{document} quebra a redefinição de \Re

\begin{document} quebra a redefinição de \Re

Para substituir o operador de parte real do tipo gótico por um 'Re' simples, o seguinte funciona para mim:

\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}}

No entanto, se eu trocar as duas últimas linhas, minha redefinição \Reserá ineficaz. O que está acontecendo? Como posso \begin{document}substituir uma redefinição de macro?

Responder1

Vários comandos unicode-mathestão contidos em, \AtBeginDocumentportanto, são executados primeiro em torno do ponto em que o processamento chega ao \begin{document}comando. Você pode usar o mesmo truque para substituir uma definição:

Exemplo de saída

\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}

Comandos semelhantes, como \AtEndOfPackagetambém são definidos no núcleo do LaTeX. Comandos adicionais, inclusive, \AtBeginEnvironmentestão no etoolboxpacote.

informação relacionada