soelim(1)
๐ soelim โ the manual, but make it make sense ๐
okay bestie, buckle up, because we're talking about soelim, a General Commands Manual icon from the groff 1.24.2 era (dated 2026-10-04, for the record ๐
). she recursively interpolates source requests in roff or other text files. yes. that's the whole vibe. let's go โจ
๐ธ 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) document formatting system, no cap. What she does is eliminate source requests in roff(7) and other text files โ like, she takes every line shaped like .so included-file inside each text input-file and swaps it out for the actual contents of included-file, recursively, flattening a whole tree of documents into one gorgeous flat situation. ๐ณโก๏ธ๐ธ
By default she also writes roff lf requests 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 back to the original input. bestie that's just good bookkeeping. ๐ Options let you suppress that info (-r) or supply it in TeX comments instead (-t). And if you hand her zero input-file arguments? She reads the standard input stream. She always writes to the standard output stream. periodt. ๐โโ๏ธ
soelim reads the included-file argument the same way GNU troff does. She ignores spaces immediately after โsoโ; if you want to embed a sequence of one or more leading spaces in the argument, prefix that sequence with a neutral double quote ("). Non-leading spaces are interpreted literally, fr fr. A backslash followed by a space (\ ) also encodes a space, for compatibility with earlier versions of GNU soelim (she's sentimental like that ๐ฅบ). If the included file name requires a backslash, use \\ or \e to embed it. Any other escape sequence in included-file, including \[rs], prevents soelim from replacing the source request. and listen โ AT&T and descendant versions of soelim have no means of embedding spaces in file names; they replace the first space encountered with a newline and stop interpreting the request. different era, different rules. ๐
The dot must be at the beginning of a line and must be followed bysowithout intervening spaces or tabs forsoelimto handle it. This convention lets source requests be โprotectedโ from processing bysoelim, for instance as part of macro definitions orifrequests. ๐
There must also be at least one space between so and its included-file argument. The -C option overrides this requirement. (we love a loophole โจ)
And now the honest part: the foregoing is the limit of soelim's understanding of the roff language. She does not, for example, replace the input line
.if 1 .so otherfile
with the contents of otherfile. nope. not happening. With its -r option, therefore, soelim can be used to process text files in general. ๐ซถ
soelim was designed to handle situations where the target of a roff source request requires a preprocessor such as eqn(1), pic(1), refer(1), or tbl(1). The usual processing sequence of groff(1) is as follows.
input sourced
file file
โช โช
โ โ
preprocessor โฏโ troff โฏโ postprocessor
โช
โ
output
file
so like โ files sourced with so are normally read only by the formatter, troff(1). soelim is not required for troff to source files. she's a helper, not a bodyguard. ๐
But if a file to be sourced should also be preprocessed, it must already be read before the input passes through the preprocessor. soelim, normally invoked via groff's -s option, handles exactly this. iconic behavior honestly.
input
file
โช
โ
soelim โฏโ preprocessor โฏโ troff โฏโ postprocessor
โ โช
โช โ
sourced output
file file
๐ OPTIONS ๐
--helpโ displays a usage message. meanwhile-vand--versionshow version information. all of them exit afterward, so it's a little farewell tour. ๐-Cโ Recognize an input line starting with.soeven if a character other than a space or newline follows. she's being flexible, let her cook ๐ฅ-Idir โ Search the directory dir for input- and included-files. If specified more than once, each dir is searched in the given order. To search the current working directory before others, add-I .at the desired place; it is otherwise searched last. order matters, bestie, she's not guessing ๐ง-rโ Write files โrawโ; do not addlfrequests. minimal. clean. no receipts.-tโ Emit TeX comment lines starting with%indicating the current file and line number, rather thanlfrequests for the same purpose. aesthetic choice ๐
If both-rand-tare given, the last one specified controls. so say what you mean, and say it last. ๐ญ
โญ EXIT STATUS โญ
soelimexits with status0on successful operation ๐- status
2if the program cannot interpret its command-line arguments ๐ - status
1if it encounters an error during operation ๐
๐ SEE ALSO ๐
and that's the whole page, babe ๐ this was groff 1.24.2, dated 2026-10-04, and honestly? she ate. now go flatten some documents, you absolute main character ๐โจ๐ธ
๐ฆ where this page comes from
- arch rolling: groff 1.24.2-1 ยท GPL-3.0-or-later
- Copyright (C) 1989-2024 Free Software Foundation, Inc
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms