Page Numbers: Yes X: 530 Y: 10.5" First Page: 1 Not-on-first-page
Columns: 1 Edge Margin: .6" Between Columns: .4"
Margins: Top: 1.3" Bottom: 1"
Line Numbers: No Modulus: 5 Page-relative
Heading: Not-on-first-page
PrePress Manual
XEROX
PALO ALTO RESEARCH CENTER
Computer Sciences Laboratory
July 3, 1977

For Xerox Internal Use Only
To:File

From:Bob Sproull

Subject:
PrePress Manual (PrePress version 1.3)

Filed on:
<GR-DOCS>PrePress.Ears
PrePress is an Alto program for building and maintaining font directories of various sorts. It was written to satisfy the needs of the Slot/3100 project by way of providing font directories for printing Press documents. The primary input to the program is a set of "spline character definitions," usually created with the font editor Fred. Various kinds of output may be generated by the program: scan-converted characters of any variety, spline and character dictionaries, readable listings that describe the contents of a dictionary, a "widths" file that provides character width information to programs that wish to format a document according to Press conventions.
This documentation has two parts. First is a simple "how to do it" section that gives the normal usage when spline files created with Fred need to be converted into font files for various devices (EARS, Alto, etc.). The second section describes all the features of the program, and is somewhat obscure.
For a discussion of the various font formats manipulated by PrePress, as well as font naming conventions and normal locations of font files, see "Font Representations and Formats" (<GR-DOCS>FontFormats.Ears).
Operation
The program is saved on <ALTO>PrePress.Run. The command format for PrePress is "PrePress <com>/s <arg> <arg> <arg...>". The command name is specified as <com> which may have switches. Some arguments may require switches. All command input may be in upper or lower case. Command names may be abbreviated, as long as they remain unambiguous.

PrePress is not a gold coin. It is a program written for our private use in getting the Slot/3100 printer on the air. Bugs will be fixed, but not with alacrity.
Simple case: How to do it
There are three separate operations that need to be performed: (1) read the SF files produced by Fred into an internal format; (2) scan-convert characters given size and device specifications; and (3) write the characters into a file format suitable for the particular device.

Reading
SF Files: PrePress will read the SF files that describe characters edited with Fred. (These files are text files that look as if LISP generated them!) PrePress will read any number of SF files and create a compact representation of a font on the file SDtemp. The command is:

PrePress
READSF <file1> <file2> .... <filen>

The
n SF files are read, and written into one directory on SDtemp. After the READSF operation is complete, the SF files are no longer needed for PrePress operations. All the information needed for subsequent calculations with the characters has been saved on the SDtemp file.

Converting Characters: Armed with the
SDtemp file that describes the spline outlines for a font, PrePress will convert that font for use on a number of devices, at a number of sizes, etc. The convert operation converts every character in the SDtemp description, and records it in a "character" dictionary file, CDtemp The command is:

PrePress
CONVERT <rotation>/R <incline>/I <size>/P <device>/D

Rotation is specified in degrees; the default is 0. Incline is a percentage slope (for fake italics); default is 0. Size is specified in points (to specify it in micas, use the
/M switch instead). The device is the name of the device for which you are generating characters (devices are: EARS, ALTO, XGP, DOVER). If you wish to generate the font for a special resolution that does not correspond to one of the devices, say n/D, where n is 10 times the resolution of the device, measured in bits per inch. All numbers may be floating-point: 9.5/P will create a 9 1/2 point font. The command destroys any previous version of the CDtemp file; it leaves the SDtemp file intact.

Looking at characters: You may "look" at each of the characters in
CDtemp with the command:

PrePress
SHOW

After each character is displayed, ?? is typed. When carriage-return is typed, the next character is displayed.

Making
CU files: The CDtemp file may be converted into a standard CU file for conversion to the other PARC formats. The command:

PrePress
MAKECU Font.Cu

will make the file Font.Cu. This command leaves the
CDtemp file intact.

Example: Suppose you have generated a
METEOR font with Fred, and called the SF files METEORA.SF, METEORLA.SF, etc. You wish to make a 10 point and a 12 point font for Slot.

PrePress
READSF METEOR*.SF
PrePress
CONVERT 10/P EARS/D
PrePress
MAKECU METEOR10.CU
PrePress
CONVERT 12/P EARS/D
PrePress
MAKECU METEOR12.CU

This simple sequence will require some patience on the part of the user if the font is full!

Warning: Several mysterious files may appear on your disk. You should realize that these are the stepchildren of PrePress, and can be deleted whenever you want. They are: PrePress.Scratch,
SDtemp and CDtemp. SDtemp and CDtemp may be deleted, but the above discussion describes how they contain information you may wish to save.
Reference Manual
PrePress internally deals in three basic sorts of things: (1) spline encodings of characters, often called "splines," (2) bit-map representations of characters suitable for displaying or printing, and (3) tables containing width information. File names are used to connote the contents:

SD,SDtemp,*.SD -- spline encodings
CD,CDtemp -- bit-map encodings of characters
*.AC -- files formatted just like CD,CDtemp, but saved by
the user because they contain a permanent record of a font
WD,WDtemp -- width tables
FONTS.WIDTHS -- a file formatted like WD, but containing widths
for many, many fonts, and distributed for use by text
editors and formatters

In addition, several sorts of files are used externally by PrePress:

*.SF -- spline encodings produced by the font editor Fred
*.AL -- font files for the Alto
*.CU -- "Carnegie Mellon" format font files
*.STRIKE -- font files suitable for use with BitBlt


Following are descriptions of the functions of PrePress listed by command name.
READSF
The READSF command reads SF files created by Fred and creates a compact description of the spline outlines on the file SDtemp. Normally, the arguments to the command are the names of the files in SF format to be read.

Update Option: If there is already an
SDtemp file that contains an encoding of spline characters, and you wish only to update several characters, the /U switch may be used. Any character outlines contained in the SF files given will replace previous versions contained in the original SDtemp file. New characters in the SF files are handled in the normal way. Suppose you have an SDtemp file that contains the encodings for the Helvetica font. You edit a single character, producing a new SF file Helvetica101.sf. To update, say

PrePress
READSF/U Helvetica101.sf

Italic Option: As the splines are read from the
SF files, it is possible to add a "fake italic" cast to them by slanting each character to the right. This is called incline, and is specified as a percentage of the y coordinate to add to the x coordinate. For example,

PrePress
READSF 20/I Helvetica*.sf

will give a 20% incline to all the characters; that is more than enough! (Note: the <n>
/I argument may appear anywhere after the READSF command; the value applies to all SF files listed after the switch.)

Scale Option: As with the incline feature, characters may be artificially "condensed" or "expanded" as they are read in from
SF files. The x and y scale factors may be set with the /X and /Y switches; normally the scale factors are 1.0. Thus, to "condense" a font, you might say:

PrePress
READSF 0.75/X Helvetica*.sf

which has the effect of making each character only 3/4 as wide as specified in the
SF files. To "expand" a font, you might say 1.25/X. The /Y switch will accomplish similar wonders in the Y direction, but should be used with extreme care, as values other than 1.0 confuse PrePress’s understanding of the "point size" of a font. (Note: the /X and /Y arguments may appear anywhere after the READSF command; the value applies to all SF files listed after the switch.)

Errors: Several kinds of non-fatal errors can be generated by
READSF. Warnings are generated if characters with different family names or different face designations are read. A warning is also generated if a character is defined more than once (this warning can usually be ignored when using the /U switch).
CONVERT
The CONVERT command reads spline encodings from the file SDtemp, and writes scan-converted character encodings onto the file CDtemp. The mandatory parameters to the CONVERT command are the size of the character desired and the resolution of the device for which the character is intended.

Size parameter [mandatory]: The desired point size of the font is specified with the
/P switch. Fractional point sizes are permitted. If you prefer to specify sizes in micas (a mica is 10 microns), use the /M switch.

Device parameter [mandatory]: The resolution of the device for which the scan-converted character is intended may be specified in two ways: (1) by giving the name of a standard
PARC device, or (2) by giving the resolution of the device (the units to use are 10 times the resolution measured in bits-per-inch). In either case, the /D switch is used. Current devices, and their numeric resolution equivalents are:

EARS5000 (500 bits per inch)
ALTO720 (to get 8.5 by 11 inch page on screen)
XGP2000 (200 dots per inch)
DOVER3500(350 bits per inch)

The
/D switch sets resolutions in both directions. The /E switch will set the resolution in the "y" direction only. Thus the command PrePress CONVERT 12/P 3840/D 3000/E will convert for a horizontal resolution of 384 bits/inch and a vertical resolution of 300 bits/inch.
Rotation parameter [optional; default 0]: Characters may be rotated as they are scan-converted. The rotation is specified with the /R switch, and is given in degrees counter-clockwise about the origin of the character. Thus 90/R specifies a rotation to "landscape" text, running up the page.

Italic parameter [optional; default 0]: Characters may be slanted as they are converted, giving a "fake italic" look to them. The slant is specified as a percentage of the y coordinate that is to be added to the x coordinate, using the
/I switch. Thus

PrePress
CONVERT 12/P EARS/D 20/I

will slant all characters by 20%, which is ample!

Errors: There are no non-fatal errors in
CONVERT.

Caveat: No claim is made that converting spline fonts to any size on any device yields anything usable. Experience shows that fonts of 6 points or greater on devices with 500 bits per inch (Slot/7000) are acceptable. Another way to say this is: if the "point size" dimension will occupy 40 or more bits on the device,
CONVERT will generate useful characters. However, you may scan-convert characters for a greater resolution and then varefully "sample" them (see SAMPLE, below). Or you may manually retouch a scan-converted font (see EDIT, below).
SHOW
This command allows the user to cycle through the scan-converted character encodings stored on CDtemp and display them on the screen. Each character is displayed, its widths are typed, and the prompt ?? is given. Typing carriage-return will proceed to the next character in the font.

(Note: Because it is sometimes inconvenient to use the
CDtemp file as input, a variant of the SHOW command can be used: the /S switch is used to specify the input file name -- in CDtemp format. Thus:

PrePress
SHOW Helvetica10b.cd/S

will show Helvetica10b.cd.)
MAKECU
This command writes the scan-converted character encodings stored on CDtemp into a file in CU format. (This kind of file is the input to many other font-processing steps, most notably the Compress program that builds EARS fonts.) The single argument is the file name of the output file:

PrePress
MAKECU Helvetica10b.Cu

(Note: Because it is sometimes inconvenient to use the
CDtemp file as input, a variant of the MAKECU command can be used: the /S switch is used to specify the input file name -- in CDtemp format. Thus:

PrePress
MAKECU Helvetica10b.cd/S Helvetica10b.Cu

will read Helvetica10b.cd and write a
CU format file.)
MAKEAL
This command writes the scan-converted character encodings stored on CDtemp into a file in AL format, suitable for using on the Alto. The argument is the file name for output:

PrePress
MAKEAL Helvetica10b.al

(The
/S switch applies here as well; see the note above under MAKECU)
MAKESTRIKE
This command reads the CDtemp file and constructs a strike format file on the specified output file:

PrePress
MAKESTRIKE Helvetica10b.Strike

(The
/S switch applies here as well; see the note above under MAKECU)
READCU
This command can be used to read a CU-format file into PrePress; the character encodings will be stored in the file CDtemp. Users are warned that CU files do not contain as much information as ".AC" files. As a result, READCU may slightly alter baseline and width values.

The font is given the same name as the .
CU file. However, the size, rotation, and resolution settings are all defaulted to arbitrary values. The wary user will employ the PrePress LIST command to examine the CDtemp file and the PrePress RENAME commands to fix it if necessary.
WIDTH
This command is used to extract width information from the font stored on SDtemp or CDtemp, and write this information into a file WDtemp. The purpose of this command is simply to extract and format the information. The WIDTH command requires a single switch: /S to read SDtemp, /C to read CDtemp. If widths are extracted from SDtemp, the width table is formatted to permit widths to be scaled for characters of any size and rotation; it they are extracted from CDtemp, the width table pertains to one size and rotation only.
READWIDTHS
This command is used to read a text file that specifies some special widht information that you wish input to the PrePress world. It will create a width entry in the file WDtemp, which you can then use for whatever purpose. The command format is:

PrePress READWIDTHS special.widths

where special.widths is the name of the text file. The file format consists of a number of nouns followed by values:

NAME fontname
SIZE pointsize
FACE facecode (e.g. BIR)
XL xlvalue
YB ybvalue
XW xwvalue
XH xhvalue
SCALE number
WIDTHS (see below)

The
WIDTHS noun is followed by (character,width) pairs, terminated with the noun STOP. A character may either be the individual character or its octal code (a number with 2 or more digits). All the numbers given will be multiplied by the global SCALE factor (a floating-point number). For example:

A 104
72 230
STOP

If you wish all widths to be the same, the noun
ALL followed by the value will give the widths. Here is a sample file for the HyType printer:

Name HyType
Size 12
XL 0 YB -70 XW 254 YH 353
Widths
All 254
Stop
IMPOSEWIDTHS
This command is provided so that width information supplied viar READWIDTHS can be "imposed" on spline or character definitions. This facility was added so that width information suitable for phototypesetter equipment could be imposed on a font, so that proof copies could be printed using our standard printing facilities.
The command name takes a single switch to determine which file to modifiy (IMPOSEWIDTHS/S modifies SDtemp; IMPOSEWIDTHS/C modifies CDtemp). The widths are, of course, read from WDtemp.
RENAME
This command is provided so that various parameters of one of the temporary files (SDtemp, CDtemp or WDtemp) may be altered. RENAME/S modifies the SDtemp file; RENAME/C the CDtemp file; RENAME/W the WDtemp file. The modifications are specified with arguments and switches:

name/NChange the family name to "name."
face/FChange the face type to "face."
size/PChange the size to "size" points.*
micas/MChange the size to "size" micas.*
rot/RChange the rotation to "rot."*
dev/DChange the resolution according to "dev."*
dev/EChange the resolution according to "dev."*

* Applies only to
CDtemp or WDtemp file.
GROW and SHRINK
In order to cope with the vagaries of positive and negative xerography, coupled with a finite spot size on printing devices, these two commands have been added. They each read the CDtemp file, either grow or shrink all characters in the file, and rewrite it. An optional parameter tells how many bits to grow (specified with the /D switch; default=1). A typical use is as follows:

PrePress
READSF Helvetica*.SF
PrePress
CONVERT 12/P EARS/D
PrePress
GROW 2/D
PrePress
MAKECU Helvetica12.cu
Compress Helvetica12.cu

A 12-point font is created by scan-converting splines; then each character is grown by 2 bits (to compensate for positive xerography and spot size); finally, the
CU and EARS files are made.
ROTATE
The PrePress ROTATE command is used to rotate characters that have already been scan-converted by 90 degrees (counter-clockwise). The command reads all characters from CDtemp, rotates each one, and writes a new CDtemp file with the rotated font.
SCALE
The PrePress SCALE command is used to make enlarged or reduced fonts by sampling carefully. Each character in the CDtemp file is read, scaled, and replaced in a new CDtemp file. The resolution is multiplied by a constant factor supplied with the /X switch (or /Y for the vertical direction). For example, if you want a carefully-sampled 10 point font for a 300 bit/inch device, you might proceed as follows:

PrePress CONVERT 10/P 6000/D
PrePress SCALE 0.5/X

The resulting font will reside on
CDtemp. Normally, a bit in the new font will be made "black" if the sampling shows that its area is more that 50% occupied. If you wish to alter this parameter, use percent/D.
ORBITFORMAT
The PrePress ORBITFORMAT command modifies the font in CDtemp in a devious way to reformat it for use with Orbit. Warning: After this command is executed, CDtemp will no longer be a proper "character" file for PrePress purposes. However, it continues to have the same basic structure, and can be merged into dictionaries with the PrePress dictionary commands. Unfortunately, there is presently no way to distinguish Orbit-format CDtemp files from others.

The modifications made to
CDtemp are restricted to the rasterDefn structure (see <GR-DOCS>FontFormats.Ears). The structure is organized in the format expected by Orbit: First word is -height; second word is width-1; then comes the raster definition, packed into (height*width+15)/16 words; finally, there may be an extra word to make the entire entry an even number of words long.
EDIT
The PrePress EDIT command is designed to allow a user to edit interactively character sets that have already been scan-converted into a bit-map representation. The need to edit such characters arises because the automatic scan-conversion facilities of PrePress (i.e., the CONVERT command) are inadequate for generating small fonts on low-resolution devices. The EDIT command allows such characters to be retouched.

The main function of the
EDIT command is to read character descriptions from a file in the format of the CDtemp file, to permit changes to be made, and to write a new version of the character file. The EDIT command is designed expressly to work in conjunction with character sets that have been created from spline descriptions: while editing a font set, a "background" character can be displayed. The background character is usually created by scan-converting a font from splines at higher resolution than the "foreground" character. Thus, if I wish to create and edit a 12-point Helvetica font, I might proceed as follows:

PrePress
READSF Helvetica*.SF
PrePress
CONVERT 12/P ALTO/D
COPY Helvetica12.ac ← CDtemp
PrePress
CONVERT 48/P ALTO/D
PrePress
EDIT Helvetica12.ac/B

The first two commands simply create a
CDtemp file for a 12-point Helvetica by scan-converting from splines; without editing, this font is worthless. The third command copies the result to the file named Helvetica12.ac which will thereafter contain the description of the font we are editing (the extension .AC is the conventional one for such files). The fourth command will scan-convert the character set at four times the size we wish to edit (any multiple will do), and leave the results in CDtemp. Now the EDIT command in the fifth line causes the editing facilities to be invoked on the file named Helvetica12.ac. The characters in CDtemp will be used as background.

The
EDIT command causes a display to appear that consists of three parts: (1) a character matrix (with associated border areas); (2) a menu of available commands, and (3) an area where "sample" strings of text are displayed. Most commands are effected with the aid of the mouse and the menu list; the keyboard is used only seldom. In the description that follows, the term "to bug" means to move the cursor to the desired position, and to depress and then release any key on the mouse (the few instances where different mouse keys are used for different purposes are noted).

The character matrix area is used to display the current character (foreground and background). When the cursor lies in the area, individual bits of the character may be edited by depressing mouse keys: the first key turns bits on; the middle key complements bits; the last key turns bits off. With the first and last keys, it is possible to "draw" across the area to cause several bits to be turned on or off. This is the basic mechanism whereby characters are modified.

Displayed in the "borders" surrounding the character matrix is width information. The four tick marks together identify two locations of interest in the character matrix: the tick on the left, and the one on the bottom, if extended, will cross at the position in the character matrix of the "(0,0)" point, i.e. the baseline point where the character "begins." The tick on the top and the one on the right, if extended, will cross where the character "ends," i.e. at the spot where the character to the right of this one in a string will start (this is sometimes called the "width" spot). These tick marks may be moved by placing the cursor in the relevant border area and depressing any mouse key. The two tiny square dots represent the positions that the right and top ticks should take on if the widths given in the spline representation are to be preserved (they are only displayed if there is a background character).

The menu lists several operations, which can be activated by "bugging" the menu item. The command word will be displayed in a black box whenever it is active. We shall take up the commands in order:

New Character. This command is invoked in order to cease editing the character currently in the character matrix and to move to another character. The user is prompted for input (by keyboard) of either (1) the character, followed by <carriage return>, or (2) the octal number of the character, followed by <carriage return>. The character matrix display should change to reflect the newly selected character.

Cancel modifications. This command causes the current set of edits to the character in the matrix to be ignored. The character is redrawn to correspond to its state just after the last "new character" command was given.

Delete this char. This command causes the character currently being displayed to be deleted from the font altogether.

Shift background. Often, the background character and the character you are working on are not quite aligned. If you wish to shift the background character a little, choose this menu command. After the command is activated, you are expected to "bug" two locations: first, a spot on the background character, and second, the place where you want that spot to be after the shift. (The two bugged points simply specify a relative motion of the background.)

Sample. This command may be useful for generating a good approximation to the background character. When the command is invoked, it causes several "sampled versions" of the character to appear below the menu area (if the background is a factor of x larger size than the foreground, x**2 sampled versions will appear). The version thought to be "best" by the sampling process is underlined. If you bug one of the sampled versions, it will replace the character currently in the matrix; the background character will also be redrawn, in order to correspond to the conditions under which it was sampled. (Note: for Alto fonts of about 12 point size, this feature is almost useless.)

Area. This command computes the "area" of both foreground and background characters, measured in units of dots in the foreground. The results are typed out, and can be used to help determine whether the current foreground character is more or less black than the background reference character.

Grid. This command causes a grid to appear which shows where dots in the foreground character lie. This is useful for counting heights, etc. The grid is turned off by selecting the Grid menu item a second time.

Quit. This command makes a new copy of the file being edited, which will contain the updated characters. Until the Quit command is given, updated characters are stored on the file
CDedits. If the program should crash during an editing session, CDedits will nonetheless contain almost all the modifications that were made to characters. If the PrePress EDIT ... command is immediately given again (the same file name, please!) the program will notice the old CDedits file, and will merge in the recorded changes before beginning the editing session. (Note: if, for any reason, you wish to abort an editing session, you should delete the CDedits file created.)

Show
ABCD..., Show abcd..., Show !@#$, Show new words, Show words. These commands cause current versions of characters from the file being edited to be displayed immediately below the character matrix. This permits scrutiny of the characters under normal viewing conditions on the Alto. All five "show" commands will display a string of 5 copies of the current character. In addition, each one displays a "sample string." For Show ABCD, the sample string is the upper case alphabet; for Show abcd, it is the lower case alphabet; for Show !@#$, it is the remaining special characters. Show new words prompts the user for a string (terminated by <carriage return>) that will be displayed as the sample. Show words re-displays the sample string last given to Show new words.


If you don’t want a background character to be displayed, say PrePress
EDIT/N ....

The size of a "dot" in the foreground area is defaulted to be a square 20 Alto screen units on a side. To override this default, use the
/D switch: PrePress EDIT 24/D xxx/B will make a "dot" 24 Alto units on a side. The enlargement factor of the background characters (4 in the above example) must divide the dot size as specified in Alto units.

Errors. There are several kinds of errors that can be generated; almost all are delivered at the beginning of the session, and relate to validity of files, etc.
Making .AL fonts

When a font is complete, the results may be converted to
AL format as follows:

PrePress
MAKEAL Helvetica12.ac/S Helvetica12.al

In order to save the font, please save the Helvetica12.ac file (
NOT the .AL file, which has much less information in it than the file edited by PrePress EDIT). If you fail to save this file, you will be unable to make further modifications to the font.
COORDINATE
This command is provided for helping to "coordinate" a hand-made or retouched font set with the spline "masters." For some applications, it is essential that the actual font symbols used (on, say, the Alto) are no bigger than the scaled spline symbols would be. The Coordinate command helps to uncover the differences.

The command prompts you for two file names: (1) the name of a "spline file," similar in construction to
SDtemp; and (2) the name of a "character file," similar in construction to CDtemp (this file is usually the result of hand operations with the EDIT command). The size and resolution parameters of the character file are crucial to the calculations used to decide whether the font is coordinated; if you wish to override these, you may specify the size with /P and resolution (times 10, as usual), with /D. Thus

PrePress COORDINATE 10/P 720/D

will coordinate a spline and character representation, but will assume the characters are to be used as a 10 point font on a device with 72 bits per inch resolution.

The results of the Coordinate command are written on PrePress.Lst. For each character, the following are given:
1. The character width, followed by "s/b" and the spline width, converted into the resolution of the device. If the spline width is smaller than the character width, the warning [width] is printed as well. If the font is fully coordinated, all character widths will be < the spline widths.

2. The coordinates of the edges of the black portions of the character, referred to the (0,0) point. These have labels
L (left), R (right), B (bottom), T (top); each prints the corresponding dimension for the character and then for the spline (scaled into the resolution of the device). If the font is fully coordinated, the box surrounding the character black will lie inside the box surrounding the spline black.
DICTIONARIES
The remaining commands are used to build and manipulate dictionaries that contain spline encodings, scan-converted character encodings, width encodings, or combinations of these. For example, the WIDTH command can be used to (successively) build compact width tables for various fonts; these tables can then be welded into a "dictionary" of width information with the commands given below. The dictionaries have three uses: (1) simply to hold information in one place, permitting easy backup of fonts; (2) to allow access by a printing program to spline and character encodings required to actually print a document; and (3) to deliver to formatting programs to provide width information.

The dictionary commands generally operate by shuttling information between "temporary files" (
CDtemp, SDtemp or WDtemp) and a "big" dictionary file. By default, PrePress assumes that the dictionary file contains information of only one type ("SD" is the name of the spline encoding dictionary, "CD" that of the character encoding dictionary, and "WD" that of the width table dictionary). However, the name of the "big" file may be provided to any of these commands with the /B switch. Thus

PrePress
LIST DICT/B

will list the contents of the dictionary file
DICT.

Since dictionaries may contain various kinds of information, it is helpful to be able to tell the information apart. Spline encodings are always stored with size=0, to indicate that they may be scaled; character encodings always have non-zero size. (Internally, the different kinds of information are kept ruthlessly separate; this separation does not always surface at the command level.)
LIST
This command lists the contents of the dictionary file on the file PrePress.Lst. Different kinds of information is provided for the different kinds of file parts:

Spline encoding: width in x (fraction of point size); width in y; left edge of black information relative to (0,0) point; bottom edge; right edge; top edge. (Note: if a size and resolution are specified in the command line with
/P and /D, the dimensions will also be converted to device coordinates and listed.)

Character encoding: width in x (bits); width in y; offset from (0,0) point to the left-most black of the character; offset in y to the bottom of the character; width; height.

Widths: widths in micas. If size=0, scaling of widths is permitted, and the number given should be multiplied by the size (in micas) and divided by 1000 to get the width in micas.

LIST takes optional switches: /S to list SD; /C to list CD; /W to list WD. If the /F switch is used, the dictionary listing will go very fast--only the header for each portion of the dictionary will be printed; the details of each character will be omitted. Optionally, the name of the big dictionary may follow the LIST command, specified with the /B switch.
MERGE
This command is used to merge the font encoding stored in one of the temporary files (SDtemp, CDtemp or WDtemp) into a big dictionary. Any previous version in the big dictionary is deleted. The temporary file to merge is specified with a switch to MERGE: /S to merge SDtemp; /C to merge CDtemp; /W to merge WDtemp. The default names of the big dictionary depend on this switch: /S uses SD, /C uses CD, /W uses WD. This file name may be overriden with an argument with /B specified. (Note: if the temporary file is itself a dictionary, i.e. is composed of several segments, the right thing happens.)
SUPERCEDE
This command is identical to MERGE except in the processing of width information. If there is a width table in the temporary file that was generated from splines (size=0), it will supercede all width tables in the dictionary file. This command is typically used as follows: the MAXC program <PRESS>MAKEFW will make a dictionary file containing font widths for all EARS fonts on <FONTS>. SUPERCEDE, given a dictionary of spline widths, will create a new widths dictionary that contains spline width information wherever possible.
DELETE
This command is used to delete a font from a big dictionary. The specification of the part to delete is accomplished with additional arguments and switches:

name/NThe family name is "name."
face/FThe face type is "face."
size/PThe size is "size" points.*
micas/MThe size is "size" micas.*
rot/RThe rotation is "rot."*
dev/DThe resolution is "dev."**

* Applies only to fonts of scan-converted character encodings or width information extracted from such fonts. ** Applies only to fonts of scan-converted character encodings.

The dictionary to use may be specified by a switch to
DELETE (/S for SD, /C for CD, /W for WD) or by an argument with the /B switch.
EXTRACT
This command extracts a font segment from a big dictionary, and writes it on SDtemp, CDtemp or WDtemp, according to whether the /S, /C or /W switch is specifed. The specification of the part to extract is accomplished with additional arguments and switches as in DELETE, above. The switch used establishes the default name of the dictionary (/S uses SD, /C uses CD, and /W uses WD); this may be overriden with an argument with the /B switch.
Trident disks
PrePress has facilities for dealing with files on the Trident disk. If the /T switch is given immediately following "PrePress" in the command line, PrePress will look for all files first on the Trident disk; failing to find a file there, it will look on the normal Alto disk.

The normal use of the
/T switch is for merging individual fonts into large font dictionaries. In this case, the Trident will contain the dictionary itself and the file PrePress.Scratch (this file is used during the merge operation, and grows as large as the final dictionary). For example, we might:

TFU copy t:PrePress.Scratch ← s:PrePress.Scratch
PrePress ReadSF Logo.Sf
TFU copy t:Dict ← SDtemp//Begin a dictionary
PrePress Convert 12/p Ears/d
PrePress/T Merge/c dict/b//Merge characters into Trident dicitonary file


Dictionary example

Suppose that you wish to build a dictionary of font files for use by the Slot/3100 printer. You wish to include spline definitions for Helvetica, Times Roman and the Logo; you also wish to include scan-converted versions for quick reference: 10 point Helvetica, 10 and 12 point Times Roman, and 24 point Logo. The file you wish to create is called G.
Delete G
PrePress ReadSF
HELVETICA.*-SFRead Helvetica splines
PrePress Merge/S G/B
Merge SDtemp into G.
PrePress Convert 10/P 3840/D
Make 10-point font at 384 bpi.
PrePress Merge/C G/B
Merge CDtemp into G.
PrePress ReadSF
TIMESROMAN.*-SFRead Times Roman into SDtemp.
PrePress Merge/S G/B
Merge SDtemp into G.
PrePress Convert 10/P 3840/D
Make 10-point font at 384 bpi.
PrePress Merge/C G/B
Merge CDtemp into G.
PrePress Convert 12/P 3840/D
Make 12-point font at 384 bpi.
PrePress Merge/C G/B
Merge CDtemp into G.
PrePress ReadSF
LOGO.*SFRead Logo into SDtemp.
PrePress Merge/S G/B
Merge SDtemp into G.
PrePress Convert 24/P 3840/D
Make 24-point font at 384 bpi.
PrePress Merge/C G/B
Merge CDtemp into G.
PrePress List G/B
Get summary listing to verify G.
Gears/s PrePress.Lst
Print the summary listing.
Note that dictionaries may be merged into other dictionaries. Suppose, for example, that the dictionary G constructed above is to be merged into another one, H:

Copy
CDtemp ← G
PrePress Merge/C H/B

The initial copy is simply so that the merge operation will extract its input from the proper place.
Font Processing Procedures and Practice
1. Procedure for updating Fonts.Widths
The file Fonts.Widths contains width information extracted from a number of sources, and must be updated whenever width information changes. The current version of Fonts.Widths is always stored on the MAXC directory <FONTS>, and can be incrementally updated.
Because Fonts.Widths is a PrePress font file, there are many possible ways of updating the file, or of altering it to contain private font information. The procedures given below have been devised to mechanize the normal updating procedure.
Case 1: EARS fonts, not generated from spline representations, have changed.
The altered font (.EP and .EL files) should be placed on the <FONTS> directory. Then connect to your own directory (not <FONTS>), and run the program <PRESS>MAKEFW. This program will read all relevant EARS fonts on <FONTS>, and write (on your directory) a file named Fonts.Widths.
Now the "spline widths" and miscellaneous other things must be merged into the Fonts.Widths created by MAKEFW. To do this, use FTP to transfer to an Alto disk: <ALTO>PrePress.Run, the new Fonts.Widths, and <PRESSFONTS>SplineWidths. This last file contains spline widths for all standard splines. Then execute the commands:

Copy WDtemp ← SplineWidths;
PrePress Supercede/W Fonts.Widths/b;

After this finishes, you may use
FTP to transfer Fonts.Widths to <FONTS>, where it will be found by all users.
Case 2: A spline font has changed.
Assume that PrePress has left on the file SDtemp the compact spline representations for the new font. Use FTP to retrieve <PRESSFONTS>SplineWidths and <FONTS>Fonts.Widths. Then execute the Alto commands:

PrePress Width/s;
PrePress Merge/w SplineWidths/b;
Copy WDtemp ← SplineWidths;
PrePress Supercede/W Fonts.Widths/b;

Then use
FTP to put the updated SplineWidths back on <PRESSFONTS> and the updated Fonts.Widths on <FONTS>.
If you add new spline fonts to the Press world, you should update the command file <PRESSFONTS>MakeSplineWidths.Cm, which contains commands to remake SplineWidths from scratch.
Case 3: HyType widths have changed.
Edit the file <PRESSFONTS>HyType.Widths to contain the new information. If you are introducing widths for a new print wheel, you may need to make a new text file. The PrePress documentation contains information about how the file is formatted. Then follow the procedure given in case 2, but substitute the command "PrePress ReadWidths HyType.Widths" for "PrePress Width/s".
2. Spline defintions
The spline defintions for all of our fonts are saved on <PRESSFONTS>. The SF files are archived. If you modify a spline defintion and want to distribute it to the world, the following steps are necessary: (1) update Fonts.Widths as described above; (2) copy the SF files back to <PRESSFONTS> and archive them; (3) copy SDtemp for the new font to <PRESSFONTS> with a proper name (e.g., Gacha.SD for the regular font, GachaI.SD for italic, etc.); and (4) remake the font for the relevant devices.
3. EARS fonts
EARS fonts are stored on the MAXC directory <FONTS>. There is no standard procedure for making them; some were made long ago before controls were established.
If fonts are constructed from splines, you will probably find that the GROW command can be used to improve the appearance of the fonts. This is because the "positive xerography" used in EARS, together with a scanning spot size that may sometimes be larger than desirable combine to reduce the thickness of characters. GROW will make the character rasters thicker to begin with, so that EARS’ thinning is less objectionable.
A typical font-creation task might look like:

Ftp maxc ret/c <PRESSFONTS>Gacha.Sd
PrePress Convert 10/p Ears/d
PrePress MakeCu Gacha10.Cu
Compress Gacha10.Cu
Ftp maxc conn/c FONTS xxxx st/c Gacha10.Ep Gacah10.El
4. Slot/3100 fonts
Procedures for making Slot/3100 fonts for use with Press are described in the Slot/3100 operations manual (<GR-DOCS>PressOps.Ears). Alto command files for remaking the fonts from scratch are saved on <PRESSFONTS>FontCommands.Dm.

APPENDIX -- Switch Summary
Argument switches:

name/N Family name of font.
face/F Face designation (see below).
size/P Size in points.
size/M Size in micas (mica = 10 microns).
rotation/R Rotation in degrees counter-clockwise.
device/DDevice name (EARS, ALTO, XGP).
resolution/D Resolution (10 times number of bits/inch).
resolution/E Vertical resolution (10 times number of bits/inch).
incline/IIncline percentage (fake italics).
Xscale/XX scale factor (READSF, SCALE).
Yscale/YY scale factor (READSF, SCALE).
dictionary/B Dictionary file to use.

Argument Switches for
SHOW, MAKECU, MAKEAL, MAKESTRIKE only:

name/SSource file name. CDtemp assumed if none specified.
name/OOutput file name. If no switch is specified,
’name’ is assumed to be output file name.
Defaults:

name/N None.
face/F MRR.
size/P None.
rotation/R 0.
device/D None.
device/E /D setting.
incline/I 0.
Xscale/X 1.0.
Yscale/Y 1.0.
dictionary/B (Governed by command switch).
Command switches:

/FList -- fast option
/CTemporary file is CDtemp (WIDTH,RENAME,MERGE,EXTRACT)
Default dictionary is CD (LIST,MERGE,DELETE,EXTRACT)
/STemporary file is SDtemp (WIDTH,RENAME,MERGE,EXTRACT)
Default dictionary is SD (LIST,MERGE,DELETE,EXTRACT)
/UReadSF -- update option.
/WTemporary file is WDtemp (RENAME,MERGE,EXTRACT)
Default dictionary is WD (LIST,MERGE,DELETE,EXTRACT)
Face code summary

A face code consists of three characters. The first is the weight of the font (M for medium, L for light, B for bold). Second is the slope (R for regular, I for italic). Third is the expansion (R for regular, C for condensed, E for expanded). Default is MRR.

Face codes (the 8-bit numbers) are computed as follows: sum the codes for the three attributes:
Weight:medium(M)0
bold(B)2
light(L)4
Slope:
regular(R)0
italic(I)1
Expansion:
regular(R)0
condensed(C)6
expanded(E)12