Re: collected groff man pages and performance (was: Syntax errors in makeindex.1)
kollar <[email protected]> Mon, 4 May 2026 23:02:23 -0400
| Newsgroups | gmane.comp.printing.groff.general |
|---|---|
| Message-ID | <[email protected]> |
> G. Branden Robinson <[email protected]> wrote: > > […] I've thought so for a while, and also wished that any > project could collect their man pages into a single document, rendered > as a PDF, with working hyperlinks. > > So, modulus the brief introduction, and delegating the task of listing > to a PDF viewers outline pane, I'm pleased to offer you exactly that. > > https://www.gnu.org/software/groff/manual/groff-man-pages.pdf Wow. 400+ pages of groff documentation just in the manpages? Impressive. Then my shoulder angel(?) started going, “You know, this could be structured. Break it into chapters. Put groff, the macros, and the preprocessors in the first chapter…” And it just kept yapping from there, as I scrolled and discovered pages I’d either forgotten about or never knew of. Something about table of contents, a permuted index, and on and on. I finally told it, “You’re welcome to do all that,” and it shut up. Then I suggested it revive the idea for a hanging punctuation “mid-processor” [1], and it disappeared. > [much amazing behind the scenes work to get this far snipped] > > https://lists.gnu.org/archive/html/groff/2026-04/msg00045.html — Larry [1] The idea is to use groff -Z -etc to get the intermediate output to stdout, pipe it to the vaporware “hangpunc” script to adjust inter-word spacing to push favored punctuation glyphs into the right margin, then pipe that to the desired post-processor. So the pipeline might look something like: groff -step -Z -ms -Tpdf mybook.ms | hangpunc | gropdf > mybook.pdf My early exploration into this idea reminded me that groff has a 1/1000 pt resolution, while DWB-derived *roffs have 1/10 pt… and I had to account for that. Given that some retail printers have 2400dpi resolution, more than 3x what the DWB-based *roffs support, that might be a bit tight nowadays.