At 2024-07-15T01:06:55+0200, Tadziu Hoffmann wrote: > [Spoilers ahead.] > > > A Question: is the `vs` request (which sets the vertical spacing) > > honored in nroff mode? > > Yes.
Agreed! > > B. In nroff (or nroff mode in groff), what _units_ is the argument > > to the `vs` request reckoned in? > > I remember .vs always being given in points, with a default value of > 12 pt, resulting in 6 lines per inch, or 66 lines per 11-inch sheet. Also agreed. > (I know this because I have set my terminal windows to a height of > 67 lines, in order to display manual entries paginated for 11-inch > fan-fold line printer paper one page at a time, with an additional > line for the "less" prompt.) Convenient! > Empirical tests with groff support this. However, groff appears to > round different values for .vs immediately to a multiple of 12 pt, > and then consistently use that rounded number. E.g., > > echo -e '.sp 12p\n.nf\n.vs 6\na\nb\nc\nd' | nroff | less > > only shows "d", i.e., 6 gets rounded down to zero. > > [This is in contrast to a conceivable different model, in which > groff might internally keep a higher-resolution line tally, and > output a linefeed only when this surpasses the next grid position.] Yes. It's also in contrast to Version 7, DWB, and Heirloom nroff. Seems likely true of Solaris 10 and Plan 9 too, though I didn't check. $ cat EXPERIMENTS/nroff-vs.troff .tm \n(.v .vs -2 .tm \n(.v .vs -6 .tm \n(.v .vs 40u .vs -12 .tm \n(.v On the AT&T nroffs, the foregoing produces: $ nroff nroff-vs.troff 40 40 20 20 GNU troff in nroff mode produces: $ ~/groff-1.22.3/bin/nroff EXPERIMENTS/nroff-vs.troff 40 40 40 0 ...at least as far back as shown, and my guess is "forever". > > C. A point is less than a vee, right? > > Usually, but the vee can also be set to zero for special > formatting purposes. Agreed. > > D. What does nroff do if you request to alter the vertical > > spacing in points? > > Not sure what is meant here. I think it is always in points. > Or do you mean, if different values than the default are > requested? Then, see above. At that point I was a little confused; I thought the `vs` request was interpreting a dimensionless argument in different units for nroff only. But that's not the case; instead, what's happening is that AT&T nroff sets a vertical spacing floor of half a line--20 basic units. GNU troff will let you take the vertical spacing to zero on any device. > However: I remember Unix nroff also supporting terminals with > half-line capability, which groff doesn't. Maybe someone here > has an old system they can use to test nroff's behavior when > formatting for one of these terminals? That would be cool, but I find the self-reporting of the `.v` register value pretty convincing. :) Thank you for rising to the trivia challenge! Regards, Branden
signature.asc
Description: PGP signature