我正在尝试定义一个\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}