---
name: "prg2lout"
section: "1"
platform: "linux"
package: "lout"
version: "3.43.4-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/prg2lout"
---

# prg2lout(1)

convert computer program text into Lout

## NAME

prg2lout - convert computer program text into Lout

## SYNOPSIS

**prg2lout** -l *language* \[ *options* \] *files*...

## DESCRIPTION

Reformat computer program text for input to the Lout document formatting system, taking care of comments, character strings, tab characters, etc.

**prg2lout** reads the named program source files and produces output suitable for input to **lout -s**. Thus,

**prg2lout -l C foo.c \| lout -s \| lpr**

will print the C program **foo.c** on a PostScript printer.  Each file will start on a new page, preceded by its name in bold.

## OPTIONS

- **-llanguage**

  (Compulsory.)  Files are written in this programmming language.  Run *prg2lout -u* to see the list of languages available.

- **-pfixed**

  Use a fixed width font (the default for C).

- **-pvarying**

  Use a varying-width italic font with non-italic bold keywords (the default for Eiffel).

- **-psymbol**

  Use a varying-width italic font with mathematical symbols and non-italic bold keywords.

- **-n**

  Do not print the file name before each source file.

- **-f** *font*

  Select a font family. The default is  **-fCourier** for **-pfixed**, and **-fTimes** for **-pvarying** and **-psymbol**.

- **-s** *size*

  Select a Lout font size.  The default is **-s9p** (meaning 9 points) for **-pfixed**, and **-s10p** for **-pvarying** and **-psymbol**. These work well with 80-character-wide programs.

- **-v** *vsize*

  Select a Lout vertical inter-line gap.  The default is **-v1.1fx** meaning 1.1 times the font size measured from baseline to baseline.

- **-b** *num*

  Select a blank line scale factor.  The default is **-b1.0** meaning no scaling.  A good alternative is 0.6.

- **-t** *num*

  Set the tab interval to *num* characters (default is **-t8**).

- **-T** *width*

  Without this option, **prg2lout** simulates tabs with spaces.  With this option, **prg2lout** simulates tabs with Lout tabulation operators; *width* is the width of one tab interval in the final print, measured in Lout units.  This guarantees alignment of characters following tabs even with varying-width fonts, provided *width* is sufficiently large.  For example, **-T0.5i** produces half-inch tab intervals.

- **-L** *number*

  Attach line numbers to the program text, beginning with *number* or 1 if number is not given.  You may need to give the 1 anyway to prevent .I prg2lout from taking a following file name as a number.

- **-N**

  Do not print line numbers on blank lines.

- **-M**

  Like -N but do not assign line numbers to blank lines.

- **-S** *filename*

  Use *filename* as the setup file instead of the system default setup file.  The setup file determines the value of all formatting options not given to *prg2lout* as command line arguments.

- **-u**

  Print usage information on stderr, including available languages, and exit.

- **-V**

  Print version information on stderr and exit.

### Raw Mode

There is a “raw mode” usage of **prg2lout** invoked by a **-r** flag (must be the first argument).  This converts one program file into Lout-readable source without any heading or trailing information. Synopsis:

**prg2lout** **-r** **-i** *infile* **-o** *out* **-e** *err* **-t** *num* **-T** *width*

Users should never need this mode; it is invoked automatically from within Lout by symbols supplied with the standard configuration (see reference).

## SEE ALSO

[**lout**(1)](/lout/1.md), [**lpr**(1)](/lpr/1.md), **ghostview**(1).

## REFERENCES

Jeffrey H. Kingston,  *“A User's Guide to the Lout Document Formatting System”* , Chapter 11.

## AUTHOR

Jeffrey H. Kingston
