LOUT(1)

πŸ“¦ version 3.43.4, in arch rolling, fedora 43, fedora 44, opensuse-leap 16.0

✨ NAME ✨

lout β€” get your Lout document ready for printing, bestie πŸ’…


πŸŽ€ SYNOPSIS πŸŽ€

lout [ options ] file...

🌸 DESCRIPTION 🌸

Okay so here's the tea, bestie: you run the Basser Lout interpreter over all those named files smushed together (concatenation, iykyk), and it spits out a PostScript file on standard output that's literally ready to go to a PostScript printer via lpr(1). Chef's kiss. πŸ–¨οΈβœ¨

If you don't name any files at all? No worries, it just reads from stdin instead. And the special file name - also means "yep, standard input, that's the one." 🫢

Also super chill detail: white space between flags and their associated option values is optional. So you can breathe, it's not gonna be mad at you. 😌

Oh and also β€” an optional .lt suffix may be used for Lout source and include files. And when you're invoking files that end in that suffix, you can just... omit the suffix. Slay, no cap. πŸ¦‹


πŸ’– OPTIONS πŸ’–

🌈 Output

  • -o filename β€” send the output to filename instead of to stdout. Obsessed with a little redirect, honestly.
  • -e filename β€” send those error messages to filename instead of to stderr. Keep your mess contained, queen. πŸ’…
  • -a β€” use the "filename:linenum:colnum:message" alternative error message format. So useful with Emacs compilation mode and other tools. It's giving "I know exactly where the problem is." πŸ”₯

🌈 Output format

  • -EPS β€” produce output as an EPS (Encapsulated PostScript) file, which is suitable for inclusion in another document. Perfect for stand-alone illustrations. Iconic behavior. ✨
  • -p β€” produce plain text output instead of PostScript. Simple. Clean. Lowkey underrated. πŸ“
  • -P β€” like -p, but with a form-feed character between pages. Page breaks, but make it text. 😌
  • -Z β€” produce Adobe Portable Document Format (PDF) output. This includes links, but heads up β€” the more advanced graphics packages of Lout are not supported. F in the chat for the fancy graphics. 😭
  • -PDF β€” a synonym for -Z. Same energy, different name. πŸ¦‹
  • -t β€” ignore texture-changing options; everything that would otherwise have been printed using a texture will be printed in solid colour instead. Flattened. Grounded. Periodt.

🌈 Cross-reference database

  • -s β€” suppress all reading and writing of the cross reference database; other databases are not affected. Super useful when many simple documents that don't do any cross referencing are stored in one directory. No cross-refs, no drama. πŸ’€
  • -l β€” use ASCII order when sorting index entries etc.; the default depends on the COLLATE compilation option (use the -V option to find out your default value). Go find out your truth, bestie. πŸ”
  • -L β€” use your locale's order when sorting index entries etc.; the default depends on the COLLATE compilation option (use the -V option to find out your default value). Same vibe check, different sort. 🌍

🌈 Execution of filters

  • -S β€” Safe execution: disable all calls to system(3), instead echoing the commands that would have been executed. Although this makes the Lout run certainly safe, the PostScript output file may not be. Bestie, read that twice. 😭
  • -U β€” Unsafe execution: allow calls to system(3). This is usually the default behavior, but it is possible to make safe execution the default during installation (use the -V option to find out whether this was done or not), hence the need for this flag. Mystery flag, solved. πŸ•΅οΈ

🌈 Changing document setup options

  • --option{value} β€” set setup file option option to value, overriding any value assigned to option in the setup file. For example, --@PageType{Letter} will set the @PageType setup file option to Letter. The value may be a sequence of words but not an arbitrary Lout object. If there are spaces you must ensure that it is passed to Lout as a single option; the usual way to do this is to enclose it in quotes. Quotes are your bestie here, fr fr. 🫢

🌈 Searching for files

  • -i filename β€” search the directories of the include file path (see below) for filename or filename.lt and include it. There may be multiple -i options. Stack 'em up. πŸ“š
  • -I dirname β€” add dirname to the list of directories searched for @Include files and -i option files. There may be multiple -I options. @Include first searches the current directory, then searches the -I directories in the order given, and finally searches the default include file directory (see below). @SysInclude and the -i option omit the search of the current directory. Order matters, bestie. πŸŽ€
  • -C dirname β€” add dirname to the list of directories searched for Lout character mapping (.LCM) files. There may be multiple -C options; the directories are searched in the order given, and finally the default character mappings directory is searched (see below). πŸ’œ
  • -F dirname β€” add dirname to the list of directories searched for font metrics (formerly .AFM) files. There may be multiple -F options; the directories are searched in the order given, and finally the default font metrics directory is searched (see below). Fonts, but make it a quest. πŸ”€
  • -H dirname β€” add dirname to the list of directories searched for hyphenation patterns files, both unpacked (.lh) and packed (.lp). There may be multiple -H options; the directories are searched in the order given, and finally the default hyphenation directory is searched (see below). πŸ¦‹
  • -D dirname β€” add dirname to the list of directories searched for Lout database files. There may be multiple -D options. @Database searches the current directory, then the -D directories in the order given, and finally searches the default databases directory (see below). @SysDatabase omits the search of the current directory. πŸ—‚οΈ

🌈 Miscellaneous options

  • -r num β€” run Lout num times, producing output only on the last run. Useful for bringing cross references up to date quickly. Run it back, run it back. πŸ”
  • -x β€” initializing run, not for ordinary use: read and check all font files mentioned in font definitions, read and check all hyphenation files mentioned in language definitions and build compressed versions, read and check all database files mentioned in database clauses and build index files. This is the setup grind. 😀
  • -u β€” print usage information on stderr and exit. A little "here's how you use me" moment. πŸ’…
  • -V β€” print version information on stderr and exit. Who am I? Find out. ✨
  • -M β€” use less memory and run more slowly (the cross reference database index will be kept in a file rather than in memory). Trade-offs, bestie, trade-offs. 🐌
  • -w β€” show the total number of non-empty words printed in the output file. This includes words and numbers in page headers and footers; section numbers and other numbers; every punctuation character in a font different from its adjacent word; and every little fragment of every equation; so it will always somewhat overestimate the true number. It's an estimate, it said what it said. πŸ’€

🧚 FILES AND ENVIRONMENT VARIABLE 🧚

  • Default include file directory: LOUTLIB/include
  • Default databases directory: LOUTLIB/data
  • Default font metrics directory: LOUTLIB/font
  • Default hyphenation directory: LOUTLIB/hyph
  • Default character mappings dir.: LOUTLIB/maps
  • Default locales directory: LOUTLIB/locale

The default library directory, usually /usr/local/lib/lout, can be changed by setting environment variable LOUTLIB to an alternative directory name. Glow up your library path whenever you want. 🌈


πŸ‘‘ SEE ALSO πŸ‘‘

prg2lout(1), lpr(1), ghostview(1)


πŸ“– REFERENCES πŸ“–

Jeffrey H. Kingston, β€œA User's Guide to the Lout Document Formatting System”, and β€œAn Expert's Guide to the Lout Document Formatting System”.


πŸ’œ AUTHOR πŸ’œ

Jeffrey H. Kingston


And that's a wrap on the LOUT(1) page, bestie β€” it lives in the General Commands Manual, and the very last line of the original just says LOUT(1) again like a lil signature. No version, no date, just the manual name serving looks one more time. πŸ’…πŸŽ€βœ¨