La plaza Halmos rompe con XCharter/ensuremath

La plaza Halmos rompe con XCharter/ensuremath

Estoy intentando definir un \QEDcomando que invoque \square(definido en amssymb. Considere el siguiente 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}

Esto se compila a lo siguiente:

ingrese la descripción de la imagen aquí

donde $\square$se muestra correctamente pero no \ensuremath{{\square}}. ¿Por qué?

Respuesta1

unicode-mathdefine \QEDcomo U+220E ∎ pero hace su definición, \AtBeginDocumentpor lo que sobrescribe su definición \QEDy la fuente elegida no tiene el carácter.

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

información relacionada