psposter - create simple one-page colored posters in PostScript

PSPOSTER 1 "25 April 1995" "Version 0.09"

Table of contents


psposter [ +author ] [ +bd color ] [ +bg color ] [ +bm dimension ] [ +bs factor ] [ +bw dimension ] [ +c nnn ] [ +copyright ] [ +d ] [ +fg color ] [ +fn fontname ] [ +h dimension ] [ +help ] [ +l ] [ +mw dimension ] [ +p dimension ] [ +paper form ] [ +r angle ] [ +s factor ] [ +table { 8/o | 8/h | 16/o | 16/h } ] [ +version ] [ +w dimension ] [ +x dimension ] [ +y dimension ] [ '?' ] [ ++ ] [ word(s) or <infile ] >PostScript-file


psposter creates an Encapsulated PostScript file containing a one-page poster. It may be included as a figure in any document processing system that supports inclusion of PostScript figures.

The poster text is typeset inside a colored box of specified width and height, with an empty surrounding margin, a colored border, and an inner border margin.

The text area has a width of (boxwidth - 2*marginwidth - 2*borderwidth - 2*bordermargin), and a height of (boxheight - 2*marginwidth - 2*borderwidth - 2*bordermargin).

When landscape orientation is chosen, poster text will be rotated 90 degrees counterclockwise, so that it runs from bottom to top. The width and height of the poster box are not affected by this.


Most options require values, which are supplied as the next command-line argument.

The current implementation (in awk) requires options to begin with a `+', rather than the conventional `-', so as to distinguish them from nawk(1) options.

Color values can be specified as any named X Window System color, or red/green/blue values in 0..1 separated by characters other than digits or period. E.g. 0/1/0 is green, and 0.5:0.5:0.5 is 50% gray. Letter case in color names is not significant.

Dimensions consist of a (possibly signed) number followed by a TeX dimension unit: bp (big points), cc (ciceros), cm (centimeters), dd (didot points), in (inches), mm (millimeters), pc (picas), pt (points), or sp (scaled points). E.g. 72bp, 2.54cm, 67.542dd, 1in, 25.4mm, 6.023pc, 72.27pt, and 4736286.72sp all specify a dimension of one inch. PostScript uses big points as its default units, and its documentation refers to them as points.

Poster text is given either as separate arguments on the command line, or as separate lines of a file supplied on standard input. Multiple-word arguments must be quoted or their spaces escaped to be properly recognized.

Display an author credit on standard output and quit. Sometimes an executable program is separated from its documentation and source code; this option provides a way to recover from that.
+bd color
Define border color. Default: 0.5:0.5:0.5 (50% gray).
+bg color
Define background color. Default: 0.9:0.9:0.9 (10% gray).
+bm dimension
Define border margin, which is additional space between the text frame and the colored border. Default: 0bp.
+bs factor
Set the baseline skip to factor times font pointsize. This value defines the interline spacing, or leading, as it is called in typography. Default: 1.2.
+bw dimension
Define border width. Default: 10bp.
+c nnn
Define number of copies to print. Default: 1.
Display copyright information on standard output and quit.
Display the font size on a second output page. This option is useful for making a series of posters with the same font size: specify +d for the poster with the longest text lines, then use the output font size in an explicit +p option for all of the other posters. This round-about way is required because automatic text sizing happens inside the PostScript output device, rather than in psposter.
+fg color
Define foreground color. Default: 0:0:0 (black).
+fn fontname
Select the PostScript font. The name can be either the long name of a Type 1 PostScript font, such as NewCenturySchlbk-BoldItalic, or the basename of a PostScript font in ASCII (.pfa), or binary (.pfb) format, such as NewCenBI. psposter will also handle compressed variants of these files from compress(1) and gzip(1) (.pfa.Z, .pfb.Z, .pfa.gz, and .pfb.gz), decompressing them on-the-fly. Default: Times-Bold.

Most PostScript printers contain a number of resident fonts, but only a small number of downloadable Type 1 PostScript fonts are available without a font license, notably Adobe Courier and Utopia, Bitstream Charter and Courier, and URW Antiqua, Grotesk, and Nimbus. These three vendors have generously made these fonts available for free distribution, but retain the copyrights. More than 2300 fonts are listed in the file (see the \s-2ENVIRONMENT VARIABLES\s+2 section below), but only a very small number are likely to be available at a given site.

On a UNIX system, you can list the downloadable fonts available at your site by grep /FontName /usr/local/lib/afm/*.pfa, assuming that /usr/local/lib/afm is where they reside.

For a list of printer resident fonts, consult your printer documentation, or print the small PostScript file,, that is distributed with psposter. For convenience, that file is reproduced here; you can adjust PointSize, ColumnWidth, and the default display font (Courier) if you wish:

% Send this file to a PostScript device to list
% the names of all of the resident fonts.
% [13-Dec-1994]
/inch { 72 mul } def
/PointSize 10 def
/ColumnWidth 3 inch def
/Courier findfont PointSize scalefont setfont
/n 0 def
    /x x ColumnWidth add def
    x y moveto
    8 inch x gt { showpage newpage } if
} def
    /x 1 inch def
    /y 10 inch def
    x y moveto
} def
/nstr 10 string def
/scratch 256 string def
    /n n 1 add def
        n nstr cvs show
        (: ) show
    0 PointSize -1.2 mul rmoveto
    currentpoint exch pop 1 inch lt
    } if
scratch /Font resourceforall
+h dimension
Define poster height. Default: paper height.
Display a help message on standard output and quit.
Use landscape (instead of portrait) orientation for text. Text is rotated 90 degrees counterclockwise, so that it runs from bottom to top. This is a shorthand for the rotation option +r 90 (see below). Only text, not the poster box, is affected by this option.
+mw dimension
Define margin width. Most PostScript hardcopy output devices are incapable of imaging closer than about 5mm to the edge of the display surface, so a non-zero margin width is usually desirable. Default: 1in (or 25mm for ISO paper sizes).
+p dimension
Set font pointsize. Normally, the size is chosen to make the poster text just fill the text frame, either horizontally or vertically. You can use this option to force a particular font size, e.g. to produce a series of posters with different text, all at the same size.

Any poster text outside the text frame is clipped, and not displayed. Default: automatically set.

+paper form
Set paper size. See lptops(1) for a list of supported sizes.

In addition to the standard sizes, any particular size can be requested by giving it in the form widthxheight, e.g. 8.5inx11in or 210mmx297mm.

Default: installation dependent: usually A (in the USA) and A4 (elsewhere).

+r angle
Set the text rotation angle, which must be a multiple of 90 degrees. It is measured counterclockwise from the horizontal axis. The +l landscape option is equivalent to +r 90. Default: 0.
+s factor
Define poster scale factor. This option can be used to resize a poster without having to change any other command-line options. Default: 1.
+table { 8/o | 8/h | 16/o | 16/h }
When this option is given, command-line poster words are ignored, and standard input is not read. Instead, psposter makes a table of all of the characters in the poster font. The option value defines the number of columns (8 or 16) and the label number base (octal or hexadecimal). The delimiter character `/' can be any punctuation character. With 16-column tables, you probably also want to specify the landscape option +l.

The table title includes the font size and name. The title, and the row/column labels, are always set in black Times-BoldItalic text.

Unless an explicit +p dimension option is provided, the font size is automatically adjusted to an integer value that maximizes table size.

Default: no font table.

Display the program version number on standard output and quit.
+w dimension
Define poster width. Default: paper width.
+x dimension
Define horizontal offset. A positive value moves the poster right on the output surface, and is unaffected by any poster scale factor, or by the choice of rotated text. Default: 0bp.
+y dimension
Define vertical offset. A positive value moves the poster up on the output surface, and is unaffected by any poster scale factor, or by the choice of rotated text. Default: 0bp.
Display a help message and quit.
No more options: remaining words are for poster text. This option is only needed if any of the poster words begin with a `+'.


Print a full-size poster with an announcement:
psposter Chemistry 101 Examination 1:00pm--3:00pm | lpr

Make a door sign in landscape mode:

psposter +l +w 10cm +h 25cm 'Prof. Jane Smith' >

Print the same sign, in color:

psposter +l +w 10cm +h 25cm +bd blue +bg skyblue \
         +fg navyblue 'Prof. Jane Smith' | lpr
If a PostScript printer is incapable of printing in color, it will simulate color by shades of gray.

Make a sale sign:

psposter +bg yellow <<END-OF-DATA >
Yard Sale
123 Elm St.

Make a seminar announcement:

psposter +bg orange <<EOF >
Biology Colloquium
Friday 23-Sep-1994
LSB 234

Dr. Judith Brown
Sex Life of Gnats

Make a Danish road sign (the octal escape sequences select the letters AE and o-slash; see Appendix E of the PostScript Language Reference Manual, Addison-Wesley, 1990, ISBN 0-201-18127-4):

psposter +bg yellow +fg black '\341resk\371bing' 5km >

Make another road sign in a downloaded font, supplying one leading and trailing blank on each line:

psposter +bg green +fg white +fn URWGroteskT-Bold +r -90 \
         ' Green River ' ' 106 miles ' >
(The stretch of highway I-70 in Utah from Salina to Green River is claimed to be the longest in the US Interstate Highway System without services.)

Make a poster showing the dingbat font layout:

psposter +fn ZapfDingbats +table 8/o >


Search path for PostScript font mapping file, (, and for downloadable fonts in PostScript ASCII (.pfa) and binary (.pfb) formats. The font mapping file connects long PostScript font names with (usually shorter) file names on the host computer.

On UNIX, the search path is a colon-separated list of directories. On other operating systems, the search path follows the conventions of those systems.

Search path for the X Window System color definition file, rgb.txt.

PostScript font mapping file. It is distributed, together with some freely-distributable Type 1 fonts in .pfa and .pfb formats, and numerous Adobe Font Metric (.afm) files, with lptops(1). psposter looks for this file, and downloadable fonts, in the AFMPATH search path.

Typical lines in look like this:

% This line is a comment.
% This font name is too long for some
% operating systems, so we store it under a
% shorter name.  The font files will be
% HelvNaBI.afm, containing the character
% metrics (assorted dimensions), and
% HelvNaBI.pfa (ASCII) or HelvNaBI.pfb
% (binary), containing encrypted PostScript
% definitions of the character shapes.
Helvetica-Narrow-BoldOblique = HelvNaBI
Color mapping file distributed with the X Window System. psposter looks for this file in the RGBPATH search path.

Typical lines in rgb.txt look like this:

000 000 000         black
000 000 255         blue
000 255 000         green
000 255 255         cyan
255 000 000         red
255 000 255         magenta
255 255 000         yellow
255 255 255         white
250 235 215         antique white
250 235 215         AntiqueWhite

There is no comment syntax.

The first three numbers define red, green, and blue intensities on a scale of 0..255, and the remaining text on each line is the color name, which, in the case of compound color names, appears in two forms, one in lower case with blank separators, and one without blanks, in mixed case.


compress(1), dxpsview(1), ghostview(1), gs(1), gzip(1), lptops(1), pageview(1), rgb(1), tex(1).


Nelson H. F. Beebe, Ph.D.
Center for Scientific Computing
Department of Mathematics
University of Utah
Salt Lake City, UT 84112
Tel: +1 801 581 5254
FAX: +1 801 581 4148
Email: <>


This program is in the public domain.


Internet source distribution of psposter is available through the World-Wide Web Uniform Resource Locator addresses