Halmos square 與 XCharter/ensuremath 決裂

Halmos square 與 XCharter/ensuremath 決裂

我正在嘗試定義一個\QED呼叫\square(在 中定義)的命令amssymb

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

相關內容