# soelim - recursively interpolate source requests in roff or oth... - man(1) - [phpMan]


*Source: tldr-pages*

---

[_soelim_(1)](https://www.chedong.com/phpMan.php/man/soelim/1/markdown)                              General Commands Manual                             [_soelim_(1)](https://www.chedong.com/phpMan.php/man/soelim/1/markdown)

## Name
       soelim - recursively interpolate source requests in _roff_ or other text files

## Synopsis
       **soelim **[**-Crt**] [**-I _**dir_] [_input-file_ ...]

### soelim --help

### soelim -v
### soelim --version

## Description
       GNU  _soelim_ is a preprocessor for the [_groff_(7)](https://www.chedong.com/phpMan.php/man/groff/7/markdown) document formatting system.  _soelim_ works as a
       filter to eliminate source requests in [_roff_(7)](https://www.chedong.com/phpMan.php/man/roff/7/markdown) input files; that is, it replaces lines of the
       form “**.so _**included-file_” within each text _input-file_ with the contents of _included-file_,  re‐
       cursively.   By  default, it writes **lf **requests as well to record the name and line number of
       each _input-file_ and _included-file_, so that any diagnostics produced by later  processing  can
       be  accurately traced to the original input.  Options allow this information to be suppressed
       (**-r**) or supplied in TeX comments instead (**-t**).   In  the  absence  of  _input-file_  arguments,
       _soelim_ reads the standard input stream.  Output is written to the standard output stream.

       If  the  name  of  a  _macro-file_  contains a backslash, use **\\ **or **\e **to embed it.  To embed a
       space, write “**\ **” (backslash followed by a space).  Any other escape sequence in  _macro-file_,
       including “**\[rs]**”, prevents _soelim_ from replacing the source request.

       The  dot  must be at the beginning of a line and must be followed by “**so**” without intervening
       spaces or tabs for _soelim_ to handle it.  This convention allows source requests to  be  “pro‐
       tected”  from  processing  by  _soelim_,  for instance as part of macro definitions or “**if**” re‐
       quests.

       There must also be at least one space between “**so**” and its _macro-file_ argument.  The  **-C  **op‐
       tion overrides this requirement.

       The  foregoing  is the limit of _soelim_'s understanding of the _roff_ language; it does not, for
       example, replace the input line
              .if 1 .so otherfile
       with the contents of _otherfile_.  With its **-r **option, therefore, _soelim_ can be used to process
       text files in general, to flatten a tree of input documents.

       _soelim_ was designed to handle situations where the target of a _roff_ source request requires a
       preprocessor such as [_eqn_(1)](https://www.chedong.com/phpMan.php/man/eqn/1/markdown), [_pic_(1)](https://www.chedong.com/phpMan.php/man/pic/1/markdown), [_refer_(1)](https://www.chedong.com/phpMan.php/man/refer/1/markdown), or [_tbl_(1)](https://www.chedong.com/phpMan.php/man/tbl/1/markdown).  The usual processing  sequence  of
       [_groff_(1)](https://www.chedong.com/phpMan.php/man/groff/1/markdown) is as follows.

                 input        sourced
                 file          file
                   ⎪             ⎪
                   ↓             ↓
               preprocessor ⎯→ troff ⎯→ postprocessor
                                             ⎪
                                             ↓
                                          output
                                           file

       That  is,  files sourced with “**so**” are normally read _only_ by the formatter, _troff_.  _soelim_ is
       _not_ required for _troff_ to source files.

       If a file to be sourced should also be preprocessed, it must already be read _before_ the input
       file passes through the preprocessor.  _soelim_, normally invoked via _groff_'s **-s  **option,  han‐
       dles this.

                 input
                 file
                   ⎪
                   ↓
                 soelim ⎯→ preprocessor ⎯→ troff ⎯→ postprocessor
                   ↑                                     ⎪
                   ⎪                                     ↓
                sourced                               output
                 file                                  file

## Options
       **--help  **displays  a  usage message, while **-v **and **--version **show version information; all exit
       afterward.

### -C     
              newline follows.

### -I _ -I 
              than once; each _dir_ is searched in the given order.  To search the current working di‐
              rectory before others, add “**-I .**” at the desired place; it is otherwise searched last.

### -r     

### -t     
              rather than **lf **requests for the same purpose.

       If both **-r **and **-t **are given, the last one specified controls.

**See also**
       [_groff_(1)](https://www.chedong.com/phpMan.php/man/groff/1/markdown)

groff 1.23.0                                31 March 2024                                  [_soelim_(1)](https://www.chedong.com/phpMan.php/man/soelim/1/markdown)
