Hi Bjarni, On Tue Nov 25, 2025 at 12:05 AM CET, Bjarni Ingi Gislason wrote: > On Sun, Nov 23, 2025 at 08:12:32PM +0000, Bjarni Ingi Gislason wrote: > > On Fri, Nov 21, 2025 at 08:28:49PM +0100, onf wrote: [...] > > > Given the input, > > > .de x > > > . br > > > .. > > > .wh 2v x > > > Lorem > > > .br > > > .sv 1v > > > ipsum > > > .br > > > dolor > > > > > > groff gives the output > > > Lorem > > > ipsum > > > dolor > > > > > > whereas both Heirloom troff and Plan 9 troff give > > > Lorem > > > > > > ipsum > > > dolor [...] > > The bug in the 'sv' request is in the heirloom's and plan9's version. > > > > A text baseline lands exactly on the next baseline after a 1v long jump. > > > > See "Troff User's Manual" (https://troff.org/54.pdf). > > My explanation is wrong. > > The difference between "groff" and the heirloom's and plan9's versions is > the position of the trap. > > Groff sets the vertical position at 24000 > Heirloom sets it at 24001 > Plan9 sets it at 241 (lower resolution)
It's not, they just seem to be calculating that based on register nl, which is -1 at startup: $ 9 troff << 'EOF' >/dev/null .de x . br .. .wh 2v x .tm \n(nl \n(.t EOF -1 241 $ 9 troff << 'EOF' >/dev/null .de x . br .. .wh 2v x .br .tm \n(nl \n(.t EOF 0 240 Cheers, onf
