Times 中设置 xdvipdfmx 错误,\slash 后跟零宽度空格

Times 中设置 xdvipdfmx 错误,\slash 后跟零宽度空格

我正在尝试编写此文档—

\documentclass{minimal}
\usepackage[no-math]{fontspec} % no-math can be omitted
\setmainfont{Times}
\begin{document}
\slash\char"200B
\end{document}

—使用 XeTeX (3.14159265-2.6-0.99991 (TeX Live 2014))。这是\slash,在 latex.ltx 的第 467 行定义为—

\def\slash{/\penalty\exhyphenpenalty} % a `/' that acts like a `-'

— 后面跟着一个零宽度空格 (U+200B),全部在 Times 中设置。我之所以包括这些,no-math是因为产生的错误与此相同xdvipdfmx 错误,但包含(或省略)no-math并不能解决错误。由于这是 XeTeX,我可以直接插入零宽度空格,但是\char为了清晰起见,我还是使用了。

如果我运行xetex -fmt xelatex document.tex,我会收到以下错误消息:

xdvipdfmx:fatal: CID count > 65535

Output file removed.
 )
Error 256 (driver return code) generating output;
file document.pdf may not be valid

这是将 HTML 文档转换为 TeX 时产生的。实际的 HTML 包含类似 的内容more/​bacon,其中重要的部分是斜杠后跟​,这是零宽度空格的十进制数字字符引用。我将 HTML 中的普通斜杠转换为\slash{}TeX 中的斜杠,结果得到了\slash后跟零宽度空格。

这个问题是怎么产生的?我该如何解决?不管怎样,我可以从我生成的 TeX 中完全删除零宽度空格。

(为了完整起见,如果我使用/\char"200B而不是\slash\char"200B,则会按预期生成 PDF 文件。使用 Times 以外的字体似乎也能解决错误,但在我的特定情况下我无法更改字体。运行luatex --fmt lualatex document.tex也可以,但如果可能的话,我想避免切换 TeX 引擎。)

相关内容