Lacking Natural Simplicity (Posts about knuth-plass line-breaking algorithm)https://tkurtbond.github.io/categories/knuth-plass-line-breaking-algorithm.atom2024-01-23T18:49:39ZT. Kurt BondNikolaParagraph Justification in groff and TeXhttps://tkurtbond.github.io/posts/2020/07/31/paragraph-justification-in-groff-and-tex/2020-07-31T22:42:15-04:002020-07-31T22:42:15-04:00T. Kurt Bond<p>An interesting message thread developed on the groff <a class="reference external" href="https://lists.gnu.org/archive/html/groff/">mailing list</a>
about various features of <span class="app">Groff</span> and <span class="app">Heirloom Troff</span>, with
a mention of <span class="app">neatroff</span>. In particular, Steve Izma's post (<a class="reference external" href="https://lists.gnu.org/archive/html/groff/2020-07/msg00092.html">P1</a>)
discussed how he found <span class="app">TeX</span>'s paragraph-at-a-time justification
required as much tweaking as groff's simpler paragraph justification.
That lead to Peter Schaffter's post (<a class="reference external" href="https://lists.gnu.org/archive/html/groff/2020-07/msg00101.html">P2</a>) linking to an earlier post
(<a class="reference external" href="https://lists.gnu.org/archive/html/groff/2014-03/msg00322.html">P3</a>) where he proposed a simpler algorithm to improve <span class="app">Groff</span>'s
line-breaking and justification than the full Knuth-Plass
Line-Breaking Algorithm (<a class="reference external" href="http://www.eprg.org/G53DOC/pdfs/knuth-plass-breaking.pdf">KP1</a>, <a class="reference external" href="http://litherum.blogspot.com/2015/07/knuth-plass-line-breaking-algorithm.html">D1</a>) that <span class="app">TeX</span> uses. While
writing this post I ran across another paper, “Global multiple
objective line breaking” by Alex Holkner (<a class="reference external" href="https://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.585.8487">GMOLB1</a>, <a class="reference external" href="http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.585.8487&rep=rep1&type=pdf">GMOLB2</a>) that explores
another line breaking algorithm and references some of the other
papers on the subject.</p>