[NTG-pdftex] why is TeX breaking the line? (updated)

Gerd Neugebauer gene at gerd-neugebauer.de
Wed Oct 18 21:48:14 CEST 2006

Heiko Oberdiek wrote:

> At least a smaller example (without different
> spacefactors -- \discretionary does not change the spacefactor):
> \tracingparagraphs=1
> \nopagenumbers
> \parindent=0pt
> \setbox0=\hbox{C}
> \hsize=\wd0
> C\par
> \discretionary{AA}{BB}{C}\par
> \bye


I have made a variant of the example:





TeX reports an overfull box of 7.7778pt for the AAs. If I advance the
hsize by something less than this then the effect remains. If I advance
the hsize by more (as included in comments above) the effect disappears
and C is typeset.

I concluded that in the handling of discretionaries the comparison is
made against a width containing the width of pre_break instead of the
replacement text. This seems to be a bug in TeX.

I have traced it down to section 869. There the sum of the width of the
nodes of pre_break is added to act_width. If I replace the first loop
with a construction similar to the second loop the problem seems to

I do not claim that I have completely understood what's going on. I just
wanted to share my insights.


More information about the ntg-pdftex mailing list