Halmos 与 XCharter/ensuremath 决裂

Halmos 与 XCharter/ensuremath 决裂

我正在尝试定义一个\QED调用的命令\square(在中定义amssymb。考虑以下 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}

编译结果如下:

在此处输入图片描述

其中$\square$显示正确,但 显示不正确\ensuremath{{\square}}。为什么?

答案1

unicode-math定义\QED为 U+220E ∎ 但是它的定义会\AtBeginDocument覆盖您的定义,\QED并且所选字体没有该字符。

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

相关内容