
我正在嘗試定義一個\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}