1. 使用 OpenType 数学字体

1. 使用 OpenType 数学字体
\documentclass{article}
\usepackage{unicode-math}

\setmathfont{Latin Modern Sans}

\usepackage{mwe}
\blindmathtrue

\begin{document}
\Blinddocument
\end{document}

上述操作失败并出现错误

ERROR: Internal error: bad native font flag in `map_char_to_glyph'

--- TeX said ---
--- HELP ---
No help available

是什么原因导致了这个错误?我该如何选择字体以避免将来出现这种情况?

答案1

您有两种选择来解决这个问题。

1. 使用 OpenType 数学字体

为了unicode-math工作你使用提供数学表的 OpenType 字体,例如Latin Modern Math。不幸的是,这违背了 MWE 使用无衬线字体进行数学运算的隐含目的。

\documentclass{article}
\pagestyle{empty}
\usepackage{unicode-math}
\setmathfont{Latin Modern Math}
\begin{document}
Lorem ipsum
\[ \sum_{k=0}^\infty a_0q^k = \lim_{n\to\infty}\sum_{k=0}^n a_0q^k =
            \lim_{n\to\infty} a_0\frac{1-q^{n+1}}{1-q} = \frac{a_0}{1-q} \]
dolor sit amet
\end{document}

在此处输入图片描述

2. 使用 mathspec 包

允许mathspec使用任何 OpenType 字体进行数学模式(代价是间距不好)。

\documentclass{article}
\usepackage{mathspec}
\setmathfont(Latin,Digits,Greek){Latin Modern Sans}
\setmathrm{Latin Modern Sans}
\begin{document}
Lorem ipsum
\[ \sum_{k=0}^\infty a_0q^k = \lim_{n\to\infty}\sum_{k=0}^n a_0q^k =
            \lim_{n\to\infty} a_0\frac{1-q^{n+1}}{1-q} = \frac{a_0}{1-q} \]
dolor sit amet
\end{document}

在此处输入图片描述

相关内容