roffpp(1) replace .so requests within *roff sources


roffpp [ option... ][ infile [ outfile ]]
roffpp -Help
roffpp -VERSion


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

.so filename
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/
.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.

All options may be abbreviated; the abbreviation is documented as the upper case letters, all lower case letters and underscores (_) are optional. You must use consecutive sequences of optional letters.

All options are case insensitive, you may type them in upper case or lower case or a combination of both, case is not important.

For example: the arguments "-help", "-HEL" and "-h" are all interpreted to mean the -Help option. The argument "-hlp" will not be understood, because consecutive optional characters were not supplied.

Options and other command line arguments may be mixed arbitrarily on the command line.

The GNU long option names are understood. Since all option names for roffpp are long, this means ignoring the extra leading '-'. The "--option=value" convention is also understood.


The roffpp command will exit with a status of 1 on any error. The roffpp command will only exit with a status of 0 if there are no errors.


roffpp version 2.33
Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter Miller

The roffpp program comes with ABSOLUTELY NO WARRANTY; for details use the 'roffpp -VERSion License' command. This is free software and you are welcome to redistribute it under certain conditions; for details use the 'roffpp -VERSion License' command.


Peter MillerE-Mail:[email protected]