如果包含 unicode-math,则不显示 \blacktriangle

如果包含 unicode-math,则不显示 \blacktriangle

以下示例仅显示正方形和菱形(XeTeX,版本 3.14159265-2.6-0.99998),其他三个符号显示为空格,而如果删除 unicode-math,则符号会正确显示。有没有办法在使用 unicode-math 时正确显示符号?

\documentclass{article}

\usepackage{amssymb}
\usepackage{unicode-math}

\begin{document}
$$a\blacksquare \blacklozenge \blacktriangle \blacktriangledown \bigstar b$$
\end{document}

答案1

我不会跟 混amssymb在一起unicode-math

您可以从另一种数学字体提供缺失的字形。

\documentclass{article}

\usepackage{unicode-math}

\setmathfont{Latin Modern Math}
\setmathfont{STIX Two Math}[
  range={\mdlgblklozenge,\mdblksquare,\blacktriangle,\blacktriangledown,\bigstar}
]

\providecommand{\blacksquare}{\mdblksquare}
\providecommand{\blacklozenge}{\mdlgblklozenge}

\begin{document}

\[
a\blacksquare \blacklozenge \blacktriangle \blacktriangledown \bigstar b
\]

\end{document}

在此处输入图片描述

还有更小的变体;有必要先加载它们然后再决定最后的大小。

\documentclass{article}

\usepackage{unicode-math}

\setmathfont{Latin Modern Math}
\setmathfont{STIX Two Math}[
  range={
    \mdlgblklozenge,
    \smblklozenge,
    \mdblksquare,
    \smblksquare,
    \blacktriangle,
    \blacktriangledown,
    \bigstar,
  },
]

\providecommand{\blacksquare}{\smblksquare}
\providecommand{\blacklozenge}{\smblklozenge}

\begin{document}

\[
a\blacksquare \blacklozenge \blacktriangle \blacktriangledown \bigstar b
\]

\end{document}

在此处输入图片描述

您不必一定要使用数学字体来表示特定符号。例如,您可以使用标准字体来表示这些符号。

\documentclass{article}

\usepackage{amsmath}
\usepackage{unicode-math}

\newfontface{\altfont}{FreeSerif}

\AtBeginDocument{%
  \providecommand{\blacksquare}{\text{\altfont\symbol{"25A0}}}%
  \providecommand{\blacklozenge}{\text{\altfont\symbol{"29EB}}}%
  \renewcommand{\blacktriangle}{\text{\altfont\symbol{"25B2}}}%
  \renewcommand{\blacktriangledown}{\text{\altfont\symbol{"25BC}}}%
  \renewcommand{\bigstar}{\text{\altfont\symbol{"2605}}}%
}

\begin{document}

\[
a\blacksquare \blacklozenge \blacktriangle \blacktriangledown \bigstar b
\]

\end{document}

在此处输入图片描述

答案2

日志显示

Missing character: There is no ▴ in font [latinmodern-math.otf]/OT:script=math;
language=DFLT;!
Missing character: There is no ▾ in font [latinmodern-math.otf]/OT:script=math;
language=DFLT;!
Missing character: There is no ★ in font [latinmodern-math.otf]/OT:script=math;
language=DFLT;!

因此字体不包含这些字符。您可以尝试不同的主字体,或将这些字符定义为来自 ams 字体

例如我得到

在此处输入图片描述

如果我添加

\setmathfont{Stix Two Math}

相关内容