The following example uses \signed
macro from page 106 of TeXbook:
\tracingonline=1
\tracingparagraphs=1
\def\signed #1 (#2){{\unskip\nobreak\hfil\penalty50
\hskip2em\hbox{}\nobreak\hfil\sl#1\/ \rm(#2)
\parfillskip=0pt \finalhyphendemerits=0 \par}}
\hsize 3.0in \noindent
But sometimes an extra line must be added. \signed N. Bourbaki (Paris)
\bye
Tracing shows:
@firstpass
\tenrm But sometimes an extra line must be added.
@\penalty via @@0 b=0 p=50 d=2600
@@1: line 1.2 t=2600 -> @@0
[] \tensl N.
@ via @@0 b=96 p=0 d=11236
@ via @@1 b=0 p=0 d=100
@@2: line 2.2 t=2700 -> @@1
@@3: line 1.3 t=11236 -> @@0
Bourbaki
@\kern via @@1 b=0 p=0 d=100
@@4: line 2.2 t=2700 -> @@1
\tenrm (Paris)
@\par via @@1 b=0 p=-10000 d=100
@@5: line 2.2- t=2700 -> @@1
When empty hbox is removed, tracing shows
@firstpass
\tenrm But sometimes an extra line must be added.
@\penalty via @@0 b=0 p=50 d=2600
@@1: line 1.2 t=2600 -> @@0
\tensl N.
@ via @@0 b=96 p=0 d=11236
@@2: line 1.3 t=11236 -> @@0
and then first pass fails. Why?
\signed
with\hskip2em
.\signed
is defined as\def\signed{\unskip\nobreak\hfil\penalty50 \hskip2em\hbox{}\nobreak\hfil}
, first pass always succeeds\signed
replaced with\hskip2em
and with\hskip2em\hbox{}