
Estou tentando definir um \QED
comando que invoca \square
(definido em amssymb
. Considere o seguinte MWE:
\documentclass{article}
\RequirePackage{amsmath}
\RequirePackage{amssymb}
\RequirePackage[scaled=0.96, sups, scosf, osf]{XCharter}
\RequirePackage[warnings-off={mathtools-colon,mathtools-overbracket}]{unicode-math}
\setmathfont{XCharter-Math.otf}
\def\QED{\ensuremath{{\square}}}
\begin{document}
\QED
$\square$
\end{document}
Isso é compilado da seguinte forma:
onde $\square$
é exibido corretamente, mas não \ensuremath{{\square}}
. Por que?
Responder1
unicode-math
define \QED
como U+220E ∎ mas faz sua definição, \AtBeginDocument
então sobrescreve sua definição \QED
e a fonte escolhida não possui o caractere.
\documentclass{article}
\RequirePackage{amsmath}
\RequirePackage{amssymb}
\RequirePackage[scaled=0.96, sups, scosf, osf]{XCharter}
\RequirePackage[warnings-off={mathtools-colon,mathtools-overbracket}]{unicode-math}
\setmathfont{XCharter-Math.otf}
\AtBeginDocument{\def\QED{\ensuremath{{\square}}}}
\begin{document}
X
\QED
$\square$
\end{document}