{
    "mode": "man",
    "parameter": "soelim",
    "section": "1",
    "url": "https://www.chedong.com/phpMan.php/man/soelim/1/json",
    "generated": "2026-10-09T08:27:51Z",
    "sections": {
        "Name": {
            "content": "soelim - recursively interpolate source requests in roff or other text files\n",
            "subsections": []
        },
        "Synopsis": {
            "content": "soelim [-Crt] [-I dir] [input-file ...]\n",
            "subsections": [
                {
                    "name": "soelim --help",
                    "content": ""
                },
                {
                    "name": "soelim -v",
                    "content": ""
                },
                {
                    "name": "soelim --version",
                    "content": ""
                }
            ]
        },
        "Description": {
            "content": "GNU  soelim is a preprocessor for the groff(7) document formatting system.  soelim works as a\nfilter to eliminate source requests in roff(7) input files; that is, it replaces lines of the\nform “.so included-file” within each text input-file with the contents of included-file,  re‐\ncursively.   By  default, it writes lf requests as well to record the name and line number of\neach input-file and included-file, so that any diagnostics produced by later  processing  can\nbe  accurately traced to the original input.  Options allow this information to be suppressed\n(-r) or supplied in TeX comments instead (-t).   In  the  absence  of  input-file  arguments,\nsoelim reads the standard input stream.  Output is written to the standard output stream.\n\nIf  the  name  of  a  macro-file  contains a backslash, use \\\\ or \\e to embed it.  To embed a\nspace, write “\\ ” (backslash followed by a space).  Any other escape sequence in  macro-file,\nincluding “\\[rs]”, prevents soelim from replacing the source request.\n\nThe  dot  must be at the beginning of a line and must be followed by “so” without intervening\nspaces or tabs for soelim to handle it.  This convention allows source requests to  be  “pro‐\ntected”  from  processing  by  soelim,  for instance as part of macro definitions or “if” re‐\nquests.\n\nThere must also be at least one space between “so” and its macro-file argument.  The  -C  op‐\ntion overrides this requirement.\n\nThe  foregoing  is the limit of soelim's understanding of the roff language; it does not, for\nexample, replace the input line\n.if 1 .so otherfile\nwith the contents of otherfile.  With its -r option, therefore, soelim can be used to process\ntext files in general, to flatten a tree of input documents.\n\nsoelim was designed to handle situations where the target of a roff source request requires a\npreprocessor such as eqn(1), pic(1), refer(1), or tbl(1).  The usual processing  sequence  of\ngroff(1) is as follows.\n\ninput        sourced\nfile          file\n⎪             ⎪\n↓             ↓\npreprocessor ⎯→ troff ⎯→ postprocessor\n⎪\n↓\noutput\nfile\n\nThat  is,  files sourced with “so” are normally read only by the formatter, troff.  soelim is\nnot required for troff to source files.\n\nIf a file to be sourced should also be preprocessed, it must already be read before the input\nfile passes through the preprocessor.  soelim, normally invoked via groff's -s  option,  han‐\ndles this.\n\ninput\nfile\n⎪\n↓\nsoelim ⎯→ preprocessor ⎯→ troff ⎯→ postprocessor\n↑                                     ⎪\n⎪                                     ↓\nsourced                               output\nfile                                  file\n",
            "subsections": []
        },
        "Options": {
            "content": "--help  displays  a  usage message, while -v and --version show version information; all exit\nafterward.\n",
            "subsections": [
                {
                    "name": "-C",
                    "content": "newline follows.\n",
                    "flag": "-C"
                },
                {
                    "name": "-I _ -I",
                    "content": "than once; each dir is searched in the given order.  To search the current working di‐\nrectory before others, add “-I .” at the desired place; it is otherwise searched last.\n",
                    "flag": "-I"
                },
                {
                    "name": "-r",
                    "content": "",
                    "flag": "-r"
                },
                {
                    "name": "-t",
                    "content": "rather than lf requests for the same purpose.\n\nIf both -r and -t are given, the last one specified controls.\n\nSee also\ngroff(1)\n\ngroff 1.23.0                                31 March 2024                                  soelim(1)",
                    "flag": "-t"
                }
            ]
        }
    },
    "flags": [],
    "examples": [],
    "see_also": [],
    "tldr": {
        "source": "not_found",
        "examples": []
    }
}