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