任意後的字母消失(似乎是套件 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我們會得到預期的結果:

在此輸入影像描述

相關內容