我正在使用带有 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}