Quadrado de Halmos rompe com XCharter/ensuremath

Quadrado de Halmos rompe com XCharter/ensuremath

Estou tentando definir um \QEDcomando 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:

insira a descrição da imagem aqui

onde $\square$é exibido corretamente, mas não \ensuremath{{\square}}. Por que?

Responder1

unicode-mathdefine \QEDcomo U+220E ∎ mas faz sua definição, \AtBeginDocumententão sobrescreve sua definição \QEDe 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}

informação relacionada