\newunicodechar 仅适用于 PRIME

\newunicodechar 仅适用于 PRIME

我正在使用带有 XeTeX 后端的 Beamer,最初我收到许多以下形式的警告:

[警告] 缺少字符:字体中没有[lmmono10-regular]:

所以我去\newunicodechar为每个命令添加了命令,例如

\newunicodechar{∙}{\makebox[\fontcharwd\font`a]{$\bullet$}}

它们都有效,我得到了近 30 行类似的代码,用于各种 Unicode 字符。但是,对于 unicode PRIME 字符,此方法失败。一旦我添加以下行:

\newunicodechar{′}{\makebox[\fontcharwd\font`a]{$\prime$}}

我开始收到以下错误:

Error producing PDF.
! TeX capacity exceeded, sorry [input stack size=5000].
\__um_scanprime_collect:N ...canprime_collect:N #1
                                                  }{\peek_meaning_remove:NTF...
l.277 ...erTok{→} \DataTypeTok{Set} \OtherTok{_}

如果有必要的话,我正在通过 Pandoc 使用 Beamer。

答案1

根据您使用的错误消息来判断unicode-math

问题是,这个包在开始文档时为“活动”分配了一个值,从而覆盖了你\newunicodechar所做的。

解决方法:推迟\newunicodechar

\documentclass{article}
\usepackage{unicode-math}
\usepackage{newunicodechar}

\AtBeginDocument{\newunicodechar{′}{\makebox[\fontcharwd\font`a]{$\prime$}}}

\begin{document}

a′

\end{document}

相关内容