Just Enough PostScript to use the Cosmic Encounter Headers
	version 1.1 (June, 1991)
Copyright (C) 1991, Ken Cox, kcc@wucs1.wustl.edu
Distributed as freeware


This file is intended to give you enough information about PostScript
that you can use the provided routines to generate Cosmic Encounter
materials.  If you need more information, see the "PostScript Language
Reference Manual" (the Red Book) from Adobe Systems Incorporated
(Addison-Wesley).

------------------------------------------------------------

FILE FORMAT

Each of the PostScript files should begin with the line

%!

Make sure the files begin with this line.  If they don't, depending
on your printing software you will either get nothing or a complete
listing of the PostScript file.

------------------------------------------------------------

PRINTING

To print the files you need a PostScript printer and a way to transmit
the file to the printer without filtering.

On many UNIX (tm) systems, the transmission is done by "lpr"; when the
printer daemon sees the initial "%!" line, it transmits the file to the
printer without doing any filtering.

You can also use SendPS from a Macintosh.

You might have to use some other technique, but I can't help you.

------------------------------------------------------------

BASIC POSTSCRIPT SYNTAX

Comments begin with a percent % and continue to the end of the line.


Names (literals) begin with a "/"; for example, /OriginalCards is a
name.  This is of use mostly with the print options; each print option
is given a value by the construct "name value def", for example
	/OriginalCards true def
If you want to change the value assigned to this print option, you edit
the file and replace the existing value with the new one (here, you would
change true to false); do NOT change the name or the word "def".


Numbers are integers or reals, entered in the usual way: 0, -3, 2.71828.


The two boolean constants are true and false.


Strings are delimited by parentheses: (Hello, world!) ( ) (a string).
The comment character % is ignored inside a string.

You can break strings across lines by using a \ (backslash) at the end
of the line; the newline is NOT part of the string: (this string has \
29 characters).

To use parentheses or backslash within a string, prefix with a backslash:
(string \\ of \) \( 29 characters).

You can also use a backslash followed by three octal digits to get special
characters, as listed in the table at the end of this file.


Arrays are delimited by square brackets: [ 0 1 ] [ (array) (of) (strings) ].
The contents of arrays are arbitrary; the main use in the code is for an
array of strings as used in a title, for example, [ (MOBIUS) (TUBES) ].


Routines (executables) are delimited by curly brackets: { 3 4 add }.  The
only reason you need routines is for artwork in the Edicts, Flares, and
Power cards.  In all these instances, you can use an empty routine { }.

------------------------------------------------------------

USING THE ROUTINES

PostScript is a postfix language, so to use the routines I have defined
you first give all the arguments and then give the routine's name.

For example, the routine Attack in cards.ps has two arguments: the number
of cards to be printed and the value to be put on each card. So to print
5 Attack 8's you would use 

	5 8 Attack

The arguments to each routine are documented separately.

In addition, several of the files (cards.ps, moons.ps, and powers.ps)
need some extra code before the first use of any routine and after the
last use.  For all three files, this is simply a matter of starting
with the line

	Setup

then using the routines to generate whatever you want, and finishing with

	Finished

------------------------------------------------------------

TYPESETTING OF PARAGRAPHS

In many places, the routines do crude "typesetting".  This permits entire
paragraphs to be entered as a single PostScript string, without the need
to hand-break the paragraph into lines.  The following information about
the behavior of these routines may be useful:

1) The ASCII characters from space (octal 040) through tilde (octal
   176) are all printable.  Certain other characters are also printable;
   the table below lists all of them.  If you somehow use an illegal
   character, it prints as a space.

2) Lines may be broken at spaces, and are always broken at carriage
   returns (octal 015, \r).  No other characters, even whitespace such
   as tabs and newlines, can cause a line break.  (I said it was crude.)

3) Newlines (octal 012, \n) are converted into spaces before the strings
   are sent to the typesetting routines. This is useful if, like me, you
   sometimes forget to include the extra space and \ when you break
   PostScript strings across lines.

4) Tab (octal 011, \t) prints as a triple-width space.  This is not
   suitable for use as tab stops, but if all you want to do is indent a
   line slightly it is appropriate.

5) When a line is broken, any spaces that start the next line are
   stripped off before the line is printed.  The effect of this is
   that you can safely double-space after periods, etc. without
    worrying that the break will cause the line to look something
   like the previous one.

So for example, the PostScript string

(This is just\r\tan example of what\r\rcan
be done.  Note that this very very    very long sentence     is broken \
across several lines by the routine, that the spaces after "very" are \
retained, but\rthe spaces after "sentence" are trimmed off since they
start a line.)

might (depending on the line length) be set as

This is just
   an example of what

can be done.  Note that this very very    very long sentence
is broken across two lines by the routine, that the spaces
after "very" are retained, but
the spaces after "sentence" are trimmed off since they start
a line.

------------------------------------------------------------

OCTAL ESCAPES

The following octal sequences may be used in strings:

OCTAL	REPRESENTS			OCTAL	REPRESENTS
241	upside-down exclamation		277	upside-down question mark
242	cent				301	grave accent
243	pounds sterling			302	acute accent
244	fraction (/)			303	circumflex
245	yen				304	tilde (for Spanish n~, etc.
246	florin				305	macron (over-bar)
247	section				306	breve accent
250	currency mark			307	dot accent
251	single quote (prime mark)	310	dieresis
252	double left quote (``)		312	degree sign
253	left guillemot (<<)		313	cedilla
254	left single guillemot (<)	315	hungarian umlaut
255	right single guillemot (>)	316	ogonek
256	fi ligature			317	caron
257	fl ligature			320	em dash
261	en dash				341	AE ligature
262	dagger				343	feminine (raised "a")
263	double dagger			350	slashed L
264	raised period			351	slashed O
266	paragraph			352	OE ligature
267	bullet				353	masculine (raised "o")
270	single base quote		361	ae ligature
271	double base quote		365	dotless "i"
272	double right quote ('')		370	slashed l
273	right guillemot	(>>)		371	slashed o
274	ellipsis			372	oe ligature
275	perthousand			373	german double "s"

