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,
Na verdade, se houver kern
algo 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” \discretionary
e 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 xetex
e o resultado é
Se compilado com pdftex
obtemos o resultado esperado: