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"