As letras após o discricionário desaparecem (parece um problema do pacote fontspec)?

As letras após o discricionário desaparecem (parece um problema do pacote fontspec)?

Para o seguinte caso,

% !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}

Eu recebo,

insira a descrição da imagem aqui

Na verdade, se houver kernalgo seguido no terceiro argumento de \discretionary, as letras depois dele desaparecem, mas quando não uso o pacote fontspec, nada dá errado. Isso é um inseto?

Responder1

Isso parece um bug no XeTeX. Se houver algo que não seja uma letra no argumento “nobreak” \discretionarye um intervalo for feito, a palavra parte após o discricionário desaparece.

Exemplo mínimo:

\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

Compile com xetexe o resultado é

insira a descrição da imagem aqui

Se compilado com pdftexobtemos o resultado esperado:

insira a descrição da imagem aqui

informação relacionada