使用 xelatex 编译 beamer 文档时,我遇到了宏的问题\C
。基本上,我想使用它来表示复数集,所以我想将其重新定义为\mathbb{C}
,但xelatex
抱怨它已经定义。使用\show
,我可以看到它被定义为:
> \C=macro:
->\PU-cmd \C \PU\C .
但 texmf 范围内的 grep 并没有向我展示任何关于这实际上意味着什么的合理信息!所以我不知道是否可以安全地破坏它。
这是最小测试用例。请注意,该问题仅出现在 上xelatex
,而不出现在pdflatex
或 上lualatex
。
\documentclass{beamer}
\begin{document}
\show\C
\end{document}
感觉就像是字体一样,因为如果我删除\show
(即,实际上尝试使用命令),然后我收到错误:
! LaTeX Error: Command \C unavailable in encoding OT1.
答案1
\C 在 hyperref 的 puenc.def 中定义,例如,如果您使用“unicode”选项,则会加载该选项,如果您运行 xelatex,beamer 可能会这样做。它编码 U+030F“COMBINING DOUBLE GRAVE ACCENT”。相同的 unicode 字符在 puenc.def 中由 \textdoublegrave 和 \G 编码。\textdoublegrave 也在 T3 编码 (tipa) 中定义。我不知道 \C 和 \G 是否在其他包中定义。您可能可以安全地重新定义它,但我个人避免定义单字符命令,因为它们通常用于重音命令。