答案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
我们会得到预期的结果: