CHECKNR(1) | General Commands Manual | CHECKNR(1)

# NAME

`checknr` — check nroff/troff files

# SYNOPSIS

`checknr` | [`-fs`] [`-a`.x1.y1.x2.y2. ... .xn.yn] [`-c`.x1.x2.x3 ... .xn] file

# DESCRIPTION

`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.

Recognized options are:

`-a`
  Add additional pairs of macros to the list of known macros. This 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`
  Define commands which would otherwise be complained about as undefined.
`-f`
  Request `checknr` to ignore ‘`\f`’ font changes.
`-s`
  Ignore ‘`\s`’ size changes.

Delimiters checked are:

1. Font changes using \fx ... \fP.
2. Size changes using \sx ... \s0.
3. Macros that come in open ... close forms, for example, the .TS and .TE macros which must always come in pairs.

`checknr` is intended for use on documents that are prepared with `checknr` in mind, much the same as lint(1). It expects a certain document writing style for ‘`\f`’ and ‘`\s`’ commands, in that each ‘`\fx`’ must be terminated with ‘`\fP`’ and each ‘`\sx`’ 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.

`checknr` knows about the ms(7) and me(7) macro packages, as well as the macros from mdoc(7).

# DIAGNOSTICS

Complaints about unmatched delimiters. Complaints about unrecognized commands. Various complaints about the syntax of commands.

# SEE ALSO

nroff(1), troff(1), mdoc(7), me(7), ms(7)

# HISTORY

The `checknr` command appeared in 4.0BSD. Basic mdoc(7) support appeared in NetBSD 1.6.

# BUGS

There is no way to define a 1 character macro name using `-a`.

Does not correctly recognize certain reasonable constructs, such as conditionals.

mdoc(7) macros that are not at the beginning of the line are not recognized. Among others, this results in too many ‘`Unmatched Zz`’ errors.

January 21, 2002 | NetBSD 10.99