[CC += Ingo]

Hi Branden,

On Fri, Aug 15, 2025 at 05:43:03PM +0200, Alejandro Colomar wrote:
> Hi Branden,
> 
> On Fri, Aug 15, 2025 at 09:30:30AM -0500, G. Branden Robinson wrote:
> > >   $ grep -m1 -B3 -A8 ^$ man/man7/inode.7
> > >   .TS
> > >   lB l l.
> > >   S_IFMT  0170000 bit mask for the file type bit field
> > > 
> > >   S_IFSOCK        0140000 socket
> > >   S_IFLNK 0120000 symbolic link
> > >   S_IFREG 0100000 regular file
> > >   S_IFBLK 0060000 block device
> > >   S_IFDIR 0040000 directory
> > >   S_IFCHR 0020000 character device
> > >   S_IFIFO 0010000 FIFO
> > >   .TE
> > > 
> > > Is there a way to avoid these blanks in tbl code?
> > 
> > Certainly.  You can use the *roff dummy character `\&` to make the table
> > row non-blank according to the formatter.
> > 
> > This makes no difference even on typesetters, because the (default)
> > meaning of a blank input line is a 1v space on the output.  A text line
> > with only a dummy character on it behaves the same way.  Thus, I
> > wouldn't call these false positives, but true ones.*
> 
> Ahh, I was thinking tbl(1) would need a real blank line.  Then it's all
> good.  Thanks!

Hmmm, I get now a conflicting diagnostic:

mandoc: .tmp/man/man7/man-pages.7:852:1: ERROR: ignoring data in spanned tbl 
cell: \&

What do you think of this diagnostic?


Have a lovely day!
Alex

> > $ printf 'foo\n.TS\nL.\n\n.TE\nbar\n' | groff -tZ > /tmp/blank
> > $ printf 'foo\n.TS\nL.\n\\&\n.TE\nbar\n' | groff -tZ > /tmp/dummy
> > $ diff -u /tmp/blank /tmp/dummy && echo SAME
> > SAME
> 
> GNU diff(1) has this:
> 
>       $ man diff | sed -n '/identical/,/^$/p'
>            -s, --report-identical-files
>                   report when two files are the same
> 
> Which works like this:
> 
>       $ printf 'foo\n.TS\nL.\n\n.TE\nbar\n' | groff -tZ > /tmp/blank
>       $ printf 'foo\n.TS\nL.\n\\&\n.TE\nbar\n' | groff -tZ > /tmp/dummy
>       $ diff -s -u /tmp/blank /tmp/dummy
>       Files /tmp/blank and /tmp/dummy are identical
> 
> (Although you may prefer the more portable &&)
> 
> 
> Cheers,
> Alex
> 
> > In principle, we could change GNU tbl to _transform_ blank lines (inside
> > tbl regions only) to consist of only a dummy character and newline--that
> > should have zero impact on any document's formatting anywhere.
> > 
> > On the other hand, I think it might make more sense to leave things as
> > they are, and encourage a discipline of explicit `\&` usage.  The odds
> > of someone accidentally typing that digraph are vanishingly small,** and
> > in a tbl context (or any *roff scenario where filling is disabled) it is
> > easy to interpret as "I want a blank line here; I know what I'm doing".
> > 
> > Regards,
> > Branden
> > 
> > *   Recall that on typesetters, in man(7) and other full-service macro
> >     packages generally, the inter-paragraph space amount is _not_ 1v,
> >     but somewhat less.  If you want a break in your table, it's wise to
> >     be explicit about how big you want that break to be.  Sometimes you
> >     can use a package's paragraphing macros inside a tbl region, but no
> >     one guarantees this.  What you _can_ do is insert `sp` requests, and
> >     this seems to be a countenanced practice judging from documents I've
> >     seen prepared by seasoned practitioners.  On the third hand, that
> >     trick won't work in general in ".TS H/.TH" tables because they are
> >     formatted in diversions, where the rules about vertical spacing are
> >     different.***  And on the fourth hand, that doesn't matter for
> >     man(7) because it doesn't support ".TS H/.TH" tables anyway.  If
> >     it's ever going to, we'll need a synonym for tbl's ".TH" because
> >     that token collides with existing man(7) usage like the McLennan
> >     County locomotive crash of 1896.
> > 
> > **  contrast with the odds of accidentally--or, more likely,
> >     thoughtlessly--whacking the Enter key
> > 
> > *** 
> > https://www.gnu.org/software/groff/manual/groff.html.node/Manipulating-Spacing.html
> 
> 
> 
> -- 
> <https://www.alejandro-colomar.es/>



-- 
<https://www.alejandro-colomar.es/>

Attachment: signature.asc
Description: PGP signature

Reply via email to