次のケースでは、
% !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
実は、の 3 番目の引数に の後に何かが続くと\discretionary
、その後の文字は消えてしまいますが、パッケージ を使用しない場合はfontspec
何も問題はありません。これはバグでしょうか?
答え1
これは XeTeX のバグのようです。「nobreak」引数に文字ではないものがあり\discretionary
、break が取られると、任意の文字に続く単語部分が消えます。
最小限の例:
\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
期待通りの結果が得られます: