Skip to main content

40.2 Variables for PostScript Hardcopy

All the PostScript hardcopy commands use the variables ps-lpr-command and ps-lpr-switches to specify how to print the output. ps-lpr-command specifies the command name to run, ps-lpr-switches specifies command line options to use, and ps-printer-name specifies the printer. If you don’t set the first two variables yourself, they take their initial values from lpr-command and lpr-switches. If ps-printer-name is nil, printer-name is used.

The variable ps-print-header controls whether these commands add header lines to each page—set it to nil to turn headers off.

If your printer doesn’t support colors, you should turn off color processing by setting ps-print-color-p to nil. By default, if the display supports colors, Emacs produces hardcopy output with color information; on black-and-white printers, colors are emulated with shades of gray. This might produce barely-readable or even illegible output, even if your screen colors only use shades of gray.

Alternatively, you can set ps-print-color-p to black-white to have colors display better on black/white printers. This works by using information in ps-black-white-faces to express colors by customizable list of shades of gray, augmented by bold and italic face attributes.

By default, PostScript printing ignores the background colors of the faces, unless the variable ps-use-face-background is non-nil. This is to avoid unwanted interference with the zebra stripes and background image/text.

The variable ps-paper-type specifies which size of paper to format for; legitimate values include a4, a3, a4small, b4, b5, executive, ledger, legal, letter, letter-small, statement, tabloid. The default is letter. You can define additional paper sizes by changing the variable ps-page-dimensions-database.

The variable ps-landscape-mode specifies the orientation of printing on the page. The default is nil, which stands for portrait mode. Any non-nil value specifies landscape mode.

The variable ps-number-of-columns specifies the number of columns; it takes effect in both landscape and portrait mode. The default is 1.

The variable ps-font-family specifies which font family to use for printing ordinary text. Legitimate values include Courier, Helvetica, NewCenturySchlbk, Palatino and Times. The variable ps-font-size specifies the size of the font for ordinary text and defaults to 8.5 points. The value of ps-font-size can also be a cons of 2 floats: one for landscape mode, the other for portrait mode.

Emacs supports more scripts and characters than a typical PostScript printer. Thus, some of the characters in your buffer might not be printable using the fonts built into your printer. You can augment the fonts supplied with the printer with those from the GNU Intlfonts package, or you can instruct Emacs to use Intlfonts exclusively. The variable ps-multibyte-buffer controls this: the default value, nil, is appropriate for printing ASCII and Latin-1 characters; a value of non-latin-printer is for printers which have the fonts for ASCII, Latin-1, Japanese, and Korean characters built into them. A value of bdf-font arranges for the BDF fonts from the Intlfonts package to be used for all characters. Finally, a value of bdf-font-except-latin instructs the printer to use built-in fonts for ASCII and Latin-1 characters, and Intlfonts BDF fonts for the rest.

To be able to use the BDF fonts, Emacs needs to know where to find them. The variable bdf-directory-list holds the list of directories where Emacs should look for the fonts; the default value includes a single directory /usr/local/share/emacs/fonts/bdf.

Many other customization variables for these commands are defined and described in the Lisp files ps-print.el and ps-mule.el.