可自由选择的字母消失了(似乎是 fontspec 包的问题)?

可自由选择的字母消失了(似乎是 fontspec 包的问题)?

对于以下情况,

% !TeX program = xelatex
\documentclass[12pt]{article}
\usepackage{fontspec}

\begin{document}
  \hsize =2in
  shelf{}ful shelf{}ful shelf\-ful di\discretionary{f-}{fi}{f\kern0ptfi}cult
\end{document}

我明白了,

在此处输入图片描述

实际上,如果kern的第三个参数中有一个\discretionary,后面的字母就会消失,但是当我不使用 包时fontspec,什么都不会出错。这是一个错误吗?

答案1

这似乎是 XeTeX 的一个错误。如果“nobreak”参数中有一个不是字母的东西,并且\discretionary进行了中断,则自由裁量符后面的单词部分就会消失。

最小示例:

\input ifxetex.sty

\ifxetex
  \font\test="Latin Modern Roman:mapping=tex-text" at 12pt
\else
  \font\test=ec-lmr12
\fi
\test

\hsize =2in \advance\hsize by 11pt

shelf{}ful shelf{}ful shelf\-ful di\discretionary{f-}{fi}{f\kern0ptfi}cult task

shelf{}ful shelf{}ful shelf\-ful di\discretionary{f-}{fi}{f\/fi}cult task

shelf{}ful shelf{}ful shelf\-ful di\discretionary{f-}{fi}{f{}fi}cult task

shelf{}ful shelf{}ful shelf\-ful di\discretionary{f-}{fi}{ffi}cult task

di\discretionary{f-}{fi}{ffi}cult task

\bye

编译xetex结果如下

在此处输入图片描述

如果编译的话pdftex我们会得到预期的结果:

在此处输入图片描述

相关内容