packages icon
Newsgroups: comp.sources.postscript
From: (Alastair Adamson)
Subject: v03i037: psfmt - General purpose PostScript text formatter, Part01/07
Message-ID: <>
Date: Wed, 15 Jun 1994 20:42:58 GMT
Approved: (Jonathan Monsarrat)

Submitted-by: (Alastair Adamson)
Posting-number: Volume 03, Issue 37
Archive-name: psfmt/part01-07
Environment: PostScript
Keywords: text formatting, converts ASCII to PostScript

		PSFMT version 2.4

Psfmt is a text formatter which generates PostScript code directly.
It was originally written to format text for memos and faxes, i.e.
on "preprinted" paper. To simplify life for the users, the syntax
is very similar to that of [nt]roff; in this way, the need to learn
a new syntax was obviated.

Some of the formatting features:
	+ font and point-size changes
	+ line filling and adjusting (also no-fill mode)
	+ line centering and three-part titles
	+ user-defined registers, strings and macros
	+ nested lists
	+ displays
	+ multi-column output
	+ conditional input
	+ PostScript code inclusion

The functionality of the program has grown with time (creeping
featurism?) and the program is now quite powerful. The psfmt program
itself does no formatting; it only generates PostScript code. It is
thus the printer which does all the "heavy" work.

This approach has several advantages and disadvantages.
	- The psfmt program is very fast.
	- There is no need for font description files. Disks seem to
	  fill up quickly with font information for troff, tex, X11,
	  FrameMaker etc, etc. Psfmt does not add to this problem.
	- There is no restriction on font-usage. Since only the printer
	  has to know about fonts, no font tables are needed.
	- Psfmt is free. Several others packages aren't.
	- Some formatting capabilities are not possible (yet!), such
	  as footnote handling and text-block control ("real" displays).
	- There is no provision for real tables or equation setting.

psfmt is distributed free of charge; you can redistribute it and/or
modify it under the terms of the GNU General Public License, a copy
of which is provided in the file COPYING.

To install this package, see the INSTALL file. The program should
compile on any system with a C compiler with little or no problems,
including DOS systems and Macintoshes, although only DOS has been
tested (since I don't have access to others). It has been compiled
and run on System V and BSD systems with *no* changes made.

The HISTORY file gives some information about why the program was
written in the first place, and the way in which is has evolved as
well as plans for the future.

Finally, the file PREPRINT gives some details on how to use this as
it was originally intended, i.e. to format text within a "preprinted"

The formatting uses only level 1 PostScript, but will probably be
adapted to take advantage of features of level 2 printers sometime in
the future. The generated code is *not* DSC compliant and can *not*
be turned into EPSF. This is simply because it is the printer who does
the formatting and so page breaks cannot be known in advance. The
output of psfmt can be previewed successfully with GhostScript 2.5
or later (perhaps even 2.4, but not earlier).

If you're interested and have any ideas, comments, bug reports or
whatever, please mail me at the following address: