Go to main content

man pages section 1: User Commands

Exit Print View

Updated: July 2017



checknr - check nroff and troff input files; report possible errors


checknr [-fs] [-a . x1 . y1 . x2 . y2 ... .xn .yn] 
     [-c . x1 . x2 . x3 ... .xn] [filename]...


checknr checks a list of nroff(1) or troff(1) input files for certain kinds of errors involving mismatched opening and closing delimiters and unknown commands. If no files are specified, checknr checks the standard input. Delimiters checked are:

  • Font changes using \fx . . . \fP.

  • Size changes using \sx . . . \s0.

  • Macros that come in open . . . close forms, for example, the .TS and .TE macros which must always come in pairs.

checknr knows about the ms(5) and me(5) macro packages.

checknr is intended to be used on documents that are prepared with checknr in mind. It expects a certain document writing style for \f and \s commands, in that each \fx must be terminated with \fP and each \s x must be terminated with \s0. While it will work to directly go into the next font or explicitly specify the original font or point size, and many existing documents actually do this, such a practice will produce complaints from checknr. Since it is probably better to use the \fP and \s0 forms anyway, you should think of this as a contribution to your document preparation style.



Ignore \f font changes.


Ignore \s size changes.

–a.x1 .y1. . .

Add pairs of macros to the list. The pairs of macros are assumed to be those (such as .DS and .DE) that should be checked for balance. The –a option must be followed by groups of six characters, each group defining a pair of macros. The six characters are a period, the first macro name, another period, and the second macro name. For example, to define a pair .BS and .ES, use `–a.BS.ES'

–c.x1 . . .

Define commands which checknr would otherwise complain about as undefined.


See attributes(5) for descriptions of the following attributes:


See Also

eqn(1), nroff(1), troff(1), attributes(5), me(5), ms(5)


There is no way to define a one-character macro name using the –a option.