1. 11
  1.  

  2. 11

    from the linked pdf: http://www.schemamania.org/troff/for-the-love-of-troff.pdf

    I challenge the reader of the present document, for example, to find a paragraph that would be better rendered by the paragraph-at-once algorithm instead of the line-at-a-time one that was used.

    Just look at that pdf file. The paragraphs. The interword spacings. Leaving a dangling half line at the top of a page? Hyphenating a word so it can put four letters at the beginning of a line to end the paragraph?

    1. 1

      The author shouldn’t have stated that. On the other hand, another version of Troff (less known than Groff but actually much better), namely Heirloom Troff https://n-t-roff.github.io/heirloom/doctools.html does implement Knuth’s algorithm; it also implement features that Knuth discarded (like using inter-letter invisible spaces in order to decreases visible extra spaces - you can even achieve constant inter-word spacing!). I use it on a daily basis, and as long as you don’t need equations, it is much more powerful than Troff in regards to micro-typography.

      Of course, OTF fonts are supported (with their “features”), kerning is easy to adjust (including cross-fonts kerning), etc.

      1. 2

        I want to love troff, but I can’t see any added benefit from troff compared to LaTeX. I put \usepackage{microtype} in every document.

    2. 2

      Looks right up my lane, too bad I can’t come. I love troff so much that I’ve written my own troff-like preprocessor for writing HTML documents (mht). And my own troff reference system (rf). I think it’s really the best example of UNIX philosophy: a simple syntax that makes it extremely easy to extend and write tools for.

      By the way, a tip for anyone turned off by the terse syntax. Put this at the top of your document:

      .de noop
      ..
      .blm noop
      

      That defines a no-op macro and makes troff run it whenever it encounters an empty line. This replaces the default action of adding a line break to the output. This makes it possible to separate requests and text with whitespace, leading to a much less terse source text.

      1. 2

        Looks right up my lane, too bad I can’t come.

        It’s online meeting via Zoom I think

        1. 1

          I saw that, but it’s just that it’s in the middle of the night where I live…

          1. 1

            Ah, got it

        2. 2

          I think when you say ‘terse’, you mean ‘verbose’.

          1. 1

            I mean terse, sort of synonymous with cramped, in the same way that APL looks terse in comparison to Python.

            1. 2

              Terse means short, not cramped. APL is called terser than python because it (tends to) produce shorter code than the latter, not more cramped code.

              1. 1

                Hm, I thought that terse had a (not always present, but optional) sense of ‘difficult to parse’. Or at least that the word is often used when something is too terse.

        3. 2

          Brian Kernighan implemented his PhD in a hand made troff clone in the 60s and formatted his latest book using it.