<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css" style="display:none;"> P {margin-top:0;margin-bottom:0;} </style>
</head>
<body dir="ltr">
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
Dear TUG,</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
<span style="color: rgb(0, 0, 0); font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt;">I'm wri</span><span style="color: rgb(0, 0, 0); font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt;">ting to report a bug in The TeXbook
 (Computers & Typesetting, Volume A).</span><br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
<span style="color: rgb(0, 0, 0); font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt;"><br>
</span></div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
<span style="color: rgb(0, 0, 0); font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt;">This bug appears on page 315, line -3. It concerns the code </span><span style="color: rgb(0, 0, 0); font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt;">\hfil\vadjust{\vskip\parskip}\break\indent.</span><br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
I think there are two issues:</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
<ol>
<li>The \vskip\parskip part suggests that a parameter should be used, rather than, say, writing \vskip 0pt plus 1pt \relax. This accommodates a document-wide nonzero \parskip setting from the user. If so, then for the sake of consistency, \hfil would be inappropriate.
 Instead, one should write \hskip\parfillskip, so that a different \parfillskip value from "0pt plus 1fil" can be accommodated as well.</li><li>This code cannot be a replacement of \par, as suggested by the answer. A regular \par would perform \unskip, followed by \nobreak\hskip\parfillskip (and finally a \break). This code lacks the "\unskip\nobreak" part. In certain cases, lacking leads to extra
 empty lines, which are surely undesired.</li></ol>
<div>To demonstrate the above two issues, consider the following plain TeX example:</div>
<div><br>
</div>
</div>
<div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
\hsize=155pt
<div>\parindent=20pt</div>
<div><br>
</div>
<div>% \par alone, or simply leaving an empty line</div>
<div><br>
</div>
<div>\TeX\ is a typesetting software written by D.~Knuth in the late 70's.</div>
<div>\par</div>
<div>\TeX\ is a typesetting software written by D.~Knuth in the late 70's.</div>
<div><br>
</div>
<div>\TeX\ is a typesetting software written by D.~Knuth in the late 70's.</div>
<div><br>
</div>
<div>\bigskip</div>
<div><br>
</div>
<div>% \hfil\vadjust{\vskip\parskip}\break\indent</div>
<div>% does not accommodate unusual \parfillskip values</div>
<div>% also creates extra and undesired empty lines</div>
<div><br>
</div>
<div>\TeX\ is a typesetting software written by D.~Knuth in the late 70's.</div>
<div>\hfil\vadjust{\vskip\parskip}\break\indent</div>
<div>\TeX\ is a typesetting software written by D.~Knuth in the late 70's.</div>
<div>\hfil\vadjust{\vskip\parskip}\break\indent</div>
<div>\TeX\ is a typesetting software written by D.~Knuth in the late 70's.</div>
<div><br>
</div>
<div>\bigskip</div>
<div><br>
</div>
<div>% \unskip\nobreak\hskip\parfillskip\vadjust{\vskip\parskip}\break\indent</div>
<div><br>
</div>
<div>\TeX\ is a typesetting software written by D.~Knuth in the late 70's.</div>
<div>\unskip\nobreak\hskip\parfillskip\vadjust{\vskip\parskip}\break\indent</div>
<div>\TeX\ is a typesetting software written by D.~Knuth in the late 70's.</div>
<div>\unskip\nobreak\hskip\parfillskip\vadjust{\vskip\parskip}\break\indent</div>
\TeX\ is a typesetting software written by D.~Knuth in the late 70's.<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
\bye</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
That is all. Thank you for your consideration.</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
<br>
</div>
<div id="Signature">
<div>
<div id="divtagdefaultwrapper" style="font-size:12pt; color:#000000; background-color:#FFFFFF; font-family:Calibri,Arial,Helvetica,sans-serif">
<div style="margin-top:0px; margin-bottom:0px" class="elementToProof"><font face="Calibri,Arial,Helvetica,sans-serif">Ruixi Zhang</font></div>
</div>
</div>
</div>
</div>
</body>
</html>