> Meanwhile, is this something that would break AT&T troff if > groff were to do it right?
The question is, what is "right"? I believe you're looking for a mapping of integers to booleans, and a "not" operator for booleans. [ntg]roff already has both (in a way): * positive numbers are "true", nonpositive numbers are "false" (in contrast to several other languages which use "zero" and "nonzero"). * if "n" is a number (integer) interpreted as a boolean, then "not n" is given by "(1-n)". Thus: .nr NC 0 .nr SI 0 .if \n(NC&(1-\n(SI) NC only. .if (1-\n(NC)&\n(SI SI only. .if \n(NC&\n(SI NC and SI. .if (1-\n(NC)&(1-\n(SI) neither. (tested with OSF1 nroff, which only has 1- and 2-character names).