roffpp man page
roffpp — replace .so requests within *roff sources
roffpp [ option... ][ infile [ outfile ]]
The roffpp command may be used to copies the input file to the output file, including files named using .so directives along the way, and removing the .so directives.
This is useful when processing large multi-file documents with filters such as tbl(1) or eqn(1) which do not understand the .so directive. The .nx directive is not understood. The roffpp program is not a general *roff interpreter, so many constructs will be beyond it, fortunately, most of them have nothing to do with include files. Include files which cannot be found, probably from uninterpreted *roff constructs, if the files really does exist, will simply be passed through unchanged, for *roff to interpret at a later time.
The roffpp program also allows the user to specify an include search path. This allows, for example, common files to be kept in a central location.
Only directives of the form
are processed. If the directive is introduced using the single quote form, or the dot is not the first character of the line, the directive will be ignored.
Any extra arguments on the line are ignored, and quoting is not understood. All characters are interpreted literally.
Examples of directives which will be ignored include
'so /usr/lib/tmac/tmac.an .if n .so yuck
This list is not exhaustive.
The special file name `-' on the command line means the standard input or standard output, as appropriate. Files which are omitted are also assumed to be the standard input or standard output, as appropriate.
The output attempts to keep file names and line numbers in sync by using the .lf directive. The .lf directive is also understood as input. This is compatible with groff(1) and the other GNU text utilities included in the groff package.
The following options are understood.
Specify include path, a la cc(1). Include paths are searched in the order specified. The include search path defaults to the current directory if and only if the user does not specify any include search paths.
Give information on how to use roffpp.
Tell what version of roffpp is being run.
Any other option will generate a diagnostic error.