Waterloo SCRIPT and a PostScript Printer UIC ADN Computer Center Document #8327014 45 Pages Provided By: Department of Computing Services University of Waterloo Waterloo, Ontario Canada N2L 3G1 February 23, 1991 Waterloo SCRIPT and a PostScript Printer page ii ============================================================================== ABSTRACT for UIC Implementation At UIC, the Waterloo SCRIPT and GML word processing packages are available on UICVM CMS only. Please note that this document, like other Waterloo SCRIPT manuals, was written by the University of Waterloo, and has not been changed to reflect local modifications. For that reason, all of the information in this document does not necessarily apply at UIC. In particular, the UIC default for the SCRIPT CPI option is CPI 12, not the Waterloo SCRIPT default of CPI 10. Also another default which is specific to the POSTS output option and which is therefore discussed in Waterloo SCRIPT and a PostScript Printer, is XORigin, which moves the effective right side of the paper in from the physical right edge of the paper. It is from the XORigin, not the edge of the physical page, that SCRIPT measures its page margins. The Waterloo default XORigin given below is 36000 device units (one half inch). At UIC, this default has been changed; when using Waterloo SCRIPT on CMS at UIC, the page margin that you specify in your SCRIPT or GML input file will be the page margin which is actually used when your SCRIPT PostScript output is printed. Most of the Computer Center's printers are PostScript printers. Also note that the PostScript special characters are used in this document are displayed in the PostScript formatted LISTPS version of the document. In all other versions, the names of the characters appear, but not the characters themselves. Use the INFORM PRINT option (F9 on the INFORM menus) and select a PostScript capable printer to print a personal PostScript copy of this document. Abstract This document describes the current level of support in Waterloo SCRIPT for any printer with a PostScript interpretive programming language interface. The support has been developed from specifications documented in PostScript Language Manual from Adobe Systems Incorporated. It is expected that all information and function of this interface will apply to every PostScript printer, no matter what printing hardware is used in the implementation. It is assumed that the user is already familiar with SCRIPTing formatted documents to such devices as fixed pitch terminals and line printers. Such concepts as control words, macro calls with operands, text records and multiple SCRIPT input files are assumed. The effect of this old knowledge on a new device with different capabilities is described. New required information, the assumptions made and the generated output are covered in two areas: the first for the end user and the second for those who care about how the device is being driven. Waterloo SCRIPT and a PostScript Printer page iii ============================================================================== Acknowledgements The University of Waterloo has long had the need to produce formatted text on the printed page with the highest possible level of quality. The PostScript language interface was of immediate interest because it adapts so easily to the tradeoffs of different devices. Laser printers and typesetters with different qualities and speeds are becoming available from an increasing variety of vendors. All the devices can be driven from an identical data stream. The idea that PostScript should be supported by SCRIPT as an output device was initiated by Matthew Foley of Adobe Systems in the spring of 1985. At the time, PostScript was merely a word and the PostScript Language Manual was somewhat overwhelming. The first experiments in supporting this printer were done by Allan Hetzel of the Computing Center at the University of Kentucky. Allan adapted the Xerox 2700 device definition to PostScript with limited success, but his pioneering efforts demonstrated that much was possible. A prototype PostScript post-processor was written in REXX at the University of Kentucky which contributed greatly to our development efforts. Without it, none of the SCRIPT generated output could be printed. We also want to express our thanks to QMS (Quality Micro Systems) for providing a beta version of the QMS-PS 800 printer for evaluation. The experience proved to be totally uneventful because everything worked as documented. Waterloo SCRIPT and a PostScript Printer page iv ============================================================================== Contents ABSTRACT for UIC Implementation . . . . . . . . . . . . . . . . . . . . . . ii Abstract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ii Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . . . . . iii Part 1: User Interface for Adobe PostScript . . . . . . . . . . . . . . . 1 External Differences . . . . . . . . . . . . . . . . . . . . . . . . . . 1 Characters per Inch . . . . . . . . . . . . . . . . . . . . . . . . . 1 PostScript Printer Option . . . . . . . . . . . . . . . . . . . . . . 2 User Modifications . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 User Generated Comments . . . . . . . . . . . . . . . . . . . . . . . 2 User Modified Characters . . . . . . . . . . . . . . . . . . . . . . 3 Unimplemented SCRIPT PostScript Functions . . . . . . . . . . . . . . . 3 Part 2: PostScript Interface File . . . . . . . . . . . . . . . . . . . . 4 Supported PostScript Fonts . . . . . . . . . . . . . . . . . . . . . . . 4 Supported Font Names . . . . . . . . . . . . . . . . . . . . . . . . 4 Base Fonts . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 Plus Fonts . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 Down Loaded Fonts . . . . . . . . . . . . . . . . . . . . . . . . 4 Underscored Fonts . . . . . . . . . . . . . . . . . . . . . . . . . . 5 PostScript Device Interface . . . . . . . . . . . . . . . . . . . . . . 5 Logical Font Definitions . . . . . . . . . . . . . . . . . . . . . . 5 PostScript Font Definition . . . . . . . . . . . . . . . . . . . . . 5 PostScript Font Selection . . . . . . . . . . . . . . . . . . . . . . 6 PostScript Print Definition . . . . . . . . . . . . . . . . . . . . . 6 PostScript Physical Font Definitions . . . . . . . . . . . . . . . . . . 7 PostScript Logical Font Definitions . . . . . . . . . . . . . . . . . . 7 Input Character Definitions . . . . . . . . . . . . . . . . . . . . . 7 Generated Job Directory Comments . . . . . . . . . . . . . . . . . . . . 8 Part 3: PostScript Device Interface . . . . . . . . . . . . . . . . . . . 9 Device Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Device Output Appendage . . . . . . . . . . . . . . . . . . . . . . . . 10 Appendage Job Directory Comments . . . . . . . . . . . . . . . . . . 10 Appendage Text . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Appendage End of Page . . . . . . . . . . . . . . . . . . . . . . . . 11 Waterloo SCRIPT and a PostScript Printer page v ============================================================================== Part 4: PostScript Post-Processor . . . . . . . . . . . . . . . . . . . . 12 Purpose . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 POSTS Physical Font Definitions . . . . . . . . . . . . . . . . . . . . 12 Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 Invocation Options . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 Escape Sequences Used In POSTS Files . . . . . . . . . . . . . . . . . . 16 Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 Appendix A: Special Symbols with SYSCHAR . . . . . . . . . . . . . . . . . 18 Alphabetic Characters . . . . . . . . . . . . . . . . . . . . . . . . . 18 Latin 1 (ISOlat1) . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Latin 2 (ISOlat2) . . . . . . . . . . . . . . . . . . . . . . . . . . 19 Greek Letters (ISOgrk1) . . . . . . . . . . . . . . . . . . . . . . . 21 General Use Characters . . . . . . . . . . . . . . . . . . . . . . . . . 22 Numeric and Special Graphic (ISOnum) . . . . . . . . . . . . . . . . 22 Diacritical Marks (ISOdia) . . . . . . . . . . . . . . . . . . . . . 23 Publishing (ISOpub) . . . . . . . . . . . . . . . . . . . . . . . . . 24 Technical Use . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 General Technical (ISOtech) . . . . . . . . . . . . . . . . . . . . . 24 Greek Symbols (ISOgrk3) . . . . . . . . . . . . . . . . . . . . . . . 25 Alternative Greek Symbols (ISOgrk4) . . . . . . . . . . . . . . . . . 26 Additional Mathematical Symbols . . . . . . . . . . . . . . . . . . . . 27 Ordinary Math Symbols (ISOamso) . . . . . . . . . . . . . . . . . . . 27 Binary and Large Operators Math Symbols (ISOamsb) . . . . . . . . . . 28 Relations Math Symbols (ISOamsr) . . . . . . . . . . . . . . . . . . 28 Negated Relations Math Symbols (ISOamsn) . . . . . . . . . . . . . . 28 Arrow Relations Math Symbols (ISOamsa) . . . . . . . . . . . . . . . 28 Opening and Closing Delimiters Math Symbols (ISOamsc) . . . . . . . . 28 Appendix B: Supported Fonts . . . . . . . . . . . . . . . . . . . . . . . 29 Resident PostScript Fonts . . . . . . . . . . . . . . . . . . . . . . . 29 Down Loadable PostScript Fonts . . . . . . . . . . . . . . . . . . . . . 29 Appendix C: PSTYPE Post-Processor . . . . . . . . . . . . . . . . . . . . 36 Additional Features . . . . . . . . . . . . . . . . . . . . . . . . . . 36 Additional Invocation Options . . . . . . . . . . . . . . . . . . . . . 37 Appendix D: Error Messages . . . . . . . . . . . . . . . . . . . . . . . . 38 Waterloo SCRIPT and a PostScript Printer page 1 ============================================================================== Part 1 User Interface for Adobe PostScript This part describes the support in SCRIPT to produce formatted output that may be sent to an Adobe PostScript printer through a post-processor to generate the native "PostScript" input language of the printer controller. It is assumed that the end user knows something about the general concepts and capabilities of PostScript but not necessarily much about the instructions that make it work. External Differences When it was decided to add Adobe PostScript to the list of SCRIPT output devices, the primary rule was one of compatibility. The user should be able to create a SCRIPT input file with no concern about the device on which it will ultimately appear. The fact that a PostScript printer is the target output device and the Fonts to use, must be specified. Other differences might occur within the input file to take advantage of features peculiar to the device. Characters per Inch PostScript supports a wide variety of fixed pitch and proportional fonts in different sizes. A single output line may contain characters from different fonts. All characters in all fonts may be scaled to many different pointsizes. Since the relative widths of these characters are defined in terms of 1000 units per "em space" the internal resolution of SCRIPT is 72000 horizontal units per inch. A document might contain ".IN 5", meaning "Indent on the left five characters". To continue to support such a control word, a meaning for "5" must be found. Does it mean five 10 pitch, five 12 pitch or five proportional blanks? There is an invocation parameter "CPI nn" that specifies how wide each Indent Character is, regardless of the pitch of the font being used. A "CPI 10" (which is default) or a "CPI 12" would normally be the two possible values. The meaning of control words with numeric operands that affect the horizontal positioning of text would be interpreted with CPI. A Line Length of ".LL 60" at "CPI 10" would be a six inch Line Length, but the same ".LL 60" at "CPI 12" would be a five inch Line Length. A Line Length specified in absolute units such as ".LL 6.5i" is converted to enough "characters" to fill six and a half inches. Waterloo SCRIPT and a PostScript Printer page 2 ============================================================================== PostScript Printer Option To select PostScript as the SCRIPT output device, the "POSTS" option must be specified in the parameter list. The "POSTS" option causes a table of escape functions to be enabled within SCRIPT to direct special device dependent processing. All output is directed to "SYSPRINT" in variable length records with no carriage control character. The record boundaries are related to the start of a new output line in the final printed result. This file must be post-processed to convert the SCRIPT generated escape sequences and text into native PostScript that may be sent to a printer. Under MVS batch, the output file is written to the SYSPRINT ddname which would be allocated to a sequential data set. In a CMS environment, the "POSTS" option directs the output to "filename POSTS" on disk. The "filename" matches the name of the primary input file. The POSTS files contain variable length records with a maximum LRECL of 1024. User Modifications Some device-dependent customizing of the output may be done from within the SCRIPT input. If more devices than PostScript are to be supported by the same input file, the value of System Set Symbol "SYSPDEV" should be compared with "POSTS" in an If (.IF) control word. .if &SYSPDEV eq POSTS .th .do . enter PostScript method here .do end .el .do . enter non-PostScript method here .do end User Generated Comments The Output Comment (.OC) control word sends its operand line to the output file as if it were a comment. SCRIPT does not examine the comments produced to assess any effect it might have on the current SCRIPT formatting environment. User comments are prefixed by an escape character (X'27') and an asterisk (*) to indicate the entire record is to be treated as a comment. Waterloo SCRIPT and a PostScript Printer page 3 ============================================================================== User Modified Characters The printable character set generated in a Logical Font is defined in tables known as CODEPAGES. If a document has requirements for an existing character not defined in the "TN print train" based set, the Photo (.PH) control word may be used to alter a CODEPAGE definition. Any input character may be mapped into a character position within the physical fonts available on the printer. By default, each of the 256 EBCDIC characters is defined in each Codepage. Unknown characters are mapped into a suitable printable character so they will not cause errors when encountered in an input file and will be recognizable in the formatted output. The characters that cannot be made printable include: X'05': the Tab, X'16': the Backspace and X'27': the Escape character. For a description of how to define new characters or redefine old characters see "Font Definitions" in the next two parts of this document. Unimplemented SCRIPT PostScript Functions Complete and transparent support for PostScript has not been implemented. As the experiences accumulate, the desired goal of total transparency or satisfactory emulation will become more complete. Equivalent characters: Not all standard EBCDIC characters in the TN print train currently exist. This will require new fonts or new Codepages for existing fonts. Waterloo SCRIPT and a PostScript Printer page 4 ============================================================================== Part 2 PostScript Interface File Supported PostScript Fonts As distributed there is support for many text fonts with and without underscoring. All the available fonts are supported in pointsizes 1 to 500 in steps of one point. A complete list of the supported fonts and their short form names can be found in "Supported Fonts" on page 29. Supported Font Names Base Fonts: These 13 fonts are supported by all PostScript printers, regardless of age. Courier: A family of monospaced fonts available as Roman, Oblique, Bold and BoldOblique. Helvetica: A family of sans-serif proportional fonts that are available in Normal, Oblique, Bold and BoldOblique. Times: A set of serif proportional fonts that are available in Roman, Italic, Bold and BoldItalic. Symbol: A collection of greek letters and special symbols. Plus Fonts: These additional 22 fonts became part of the base standard with the announcement of the Apple LaserWriter Plus printer. Most PostScript printers now contain the 13 Base and 22 Plus fonts as resident. AvantGarde: A set of sans-serif proportional fonts that are available as AvantGarde-Book and as -BookOblique, -Demi and -DemiOblique. Bookman: A set of serif proportional fonts. They are defined as Bookman-Light, with -LightItalic, -Demi and -DemiItalic. Helvetica-Narrow: A family of sans-serif proportional fonts that are available in Normal, Oblique, Bold and BoldOblique. NewCenturySchoolbook: A set of serif proportional fonts that are available in Roman, Italic, Bold and BoldItalic. Palatino: A set of serif proportional fonts that are available in Roman, Italic, Bold and BoldItalic. ZapfChancery: A serif proportional font that is available in MediumItalic. ZapfDingbats: A collection of more special symbols. Down Loaded Fonts: There is an ever expanding list of fonts available from Adobe and other vendors that may be down loaded to a PostScript printer. The fonts are down loaded to the memory of most PostScript printers and must be refreshed each time the printer is restarted. Printers with hard disks allow the fonts to be stored on the disk and then they can be treated as if they were resident. Waterloo SCRIPT and a PostScript Printer page 5 ============================================================================== Today, SCRIPT supports an additional 213 fonts which can be downloaded to a PostScript printer. Underscored Fonts Each of these font names may be further qualified with "-U" which causes the font name specified to be underscored (e.g. Helvetica-Bold-U or AGW-U). PostScript Device Interface Logical Font Definitions SCRIPT supports four logical fonts at a time automatically: normal, italic, bold and bold italic. An interface file, named "POSTS" is provided to define up to four Logical Fonts of the PostScript printer into a single Font Name. A Logical Font is a set of characters chosen from the available Physical Fonts. PostScript Font Definition The "POSTS" interface file must be imbedded in a document before any text may be entered in the input file. If the document is not being formatted for a PostScript printer, the interface file may still be imbedded as the interface first checks that the "POSTS" option has been specified before defining the Font Names that may be used. When the "POSTS" interface is imbedded, up to four Physical Font Names may be provided as operands. .im POSTS FONT fontname name1 name2 name3 name4 where: fontname is an identifier of up to twelve characters of your choice. It is treated as if entered in uppercase and may be used in Begin Font (.BF) control words throughout the document. name1 is the Font Name to be used for Normal text in the document. The "-U" suffix should be avoided for "name1". The Font Name may be specified with the desired pointsize as an integer following the name and separated with a blank. name2 is the Font Name to use for Underscored (.US) text or any character overstruck with an underscore in the input. If this is omitted then "name2" defaults to the value of "name1". name3 is the Font Name to use for BOLD (.BD) text or any character overstruck with itself in the input. If this is omitted then Bold text will appear as "name2" text. Waterloo SCRIPT and a PostScript Printer page 6 ============================================================================== name4 is the Font Name to use for Bold Italic (.BI) text or any character both overstruck with itself and an underscore. If omitted then "name4" defaults to the value of "name3". The following example defines the Times-Roman font for normal text, Times-Italic for italic, Times-Bold for boldface and the same font but underscored for bold-italic. A "fontid" name of TEXT is assigned: .im POSTS FONT text Time TimeI TimeB TimeB-U This example defines a Font Name of MONO to be made up with members of the Courier family of monospaced fonts: .im POSTS FONT mono Cour Cour-U CourB CourB-U This example defines a Font Name of NORM to be made up with the Helvetica family in pointsize 8: .im POSTS FONT norm Helv 8 HelvO 8 HelvB 8 HelvBO 8 PostScript Font Selection The "fontname" specified in the first invocation of the "POSTS" interface file will be in effect for the start of the job. The Physical Font Name arguments are available for the normal, italic, bold and bold-italic text that follows. All defined "fontname"s can be manipulated throughout the document by using the Begin Font (.BF) and Previous Font (.PF) control words. The use of the Font Names Definitions may be nested up to a level of twenty, so each ".BF" should be paired with a corresponding ".PF" control word. The first Font Name Definition cannot be removed with the Previous Font control word. PostScript Print Definition A character string may be passed to the output file to document the purpose of the file. By default this will be set to a character string that identifies the version of SCRIPT used, and the time and date when the job was formatted. This may be defined to any desired string with the POSTS Interface File. .im POSTS PRINT arbitrary character string Such a PRINT definition must precede any logical font definition. Waterloo SCRIPT and a PostScript Printer page 7 ============================================================================== PostScript Physical Font Definitions When SCRIPT is creating output for the PostScript printer, a table containing all the available physical fonts and the width of every possible character in those fonts is loaded dynamically. This table is called "PDPOSTS". If new fonts are acquired for the printer, then the physical name of these fonts and the width of each character within the font must be added to the table of Physical Font Definitions. PostScript Logical Font Definitions The characters that any document requires always seem to exceed the characters available in a single Physical Font. This can be especially true of special symbols for special disciplines of foreign languages. A Logical Font Definition allows the input characters to be selected from one or more Physical Fonts that may be available, but all the input characters appear to belong to a single font. The Logical Fonts that SCRIPT will process are created by the POSTS Interface file. SCRIPT treats the PostScript device as an intelligent terminal with multiple font capabilities. Up to four PostScript fonts may be specified as operands. Each font is first validated as being a known PostScript Font. Note that a font and a font with underscoring count as a single font. The mapping of font to member name is defined in file "sysF$PS1" for the base 35 fonts and the file named "sysF$PS2" for all others. The interface file generates a Job Directory Comment that defines the reference number for the Physical Font Name to the post-processor. Input Character Definitions The input characters in a SCRIPT file are mapped to a character position through a table known as a "CODEPAGE". Any number of Codepages may be defined for special purpose mapping of input characters to character position in a Physical Font. An input character within a Codepage is defined as follows: .PH ichar font# ochar where: ichar is a character to be found in an input text line. It may be entered as a single character or a hexadecimal pair. font# is a relative font number to access the character. This may be a number in the range of 1 to 10. A Logical Font may thus be composed of characters from up to ten Physical Fonts. Waterloo SCRIPT and a PostScript Printer page 8 ============================================================================== ochar is the character to be entered in the formatted text file. It would normally be the same as the "ichar" but might be different to emulate the standard EBCDIC character mappings. It may be entered as a single character or a hexadecimal pair. Generated Job Directory Comments The following pattern Job Directory Comments are generated in the output file before any text. By inserting Output Comment (.OC) control words after imbedding POSTS, any or all of the generated Job Directory Comments can be changed but this is strongly discouraged. * A Job Comment always begins the list of Job Directory Comments. It may be defined with the ".im POSTS PRINT" command and will default to a string defining the version of SCRIPT, and the time and date. The entire record will be ignored by the post-processor. Fn,member,codepage,'Physical Font Name'. These Font Directory comments are generated between the Print command and the start of print data. One Font Directory command is generated for each unique Physical Font Name required to define the font requirements of the job. The value of "n" has been arbitrarily assigned for each possible font. Following the Font Number is the actual Physical Font Name represented by the number within the print data. Waterloo SCRIPT and a PostScript Printer page 9 ============================================================================== Part 3 PostScript Device Interface This part describes the support in SCRIPT to drive the Adobe PostScript as an output device. The characteristics of the PostScript that are used are described and the SCRIPT capabilities that make it possible are reviewed. Device Definition When a user includes the "POSTS" option in the invocation parameter list, a table of output device characteristics is selected. Some of the characteristics do exist in reality on the device but others are a convenient, high level characteristic that is emulated just before the output record is written to the output file. The following describes the functions that are thought to exist for the PostScript: Adjust: Global Adjust and Even/Odd Adjust are fully supported. An adjust value of zero is set at one half inch from the left edge of the paper. Font Select: PostScript does have a Font Select capability, directly. The font numbers are physical font numbers determined by the POSTS user interface file (.im POSTS FONT). Horizontal Spacing Units: The output file allows the PostScript printer to operate at 72000 horizontal units per inch. Justified Text: An output line that is to be justified to a left and right margin is controlled by SCRIPT. SCRIPT defines the left margin with Absolute Placement and inserts horizontal movement functions within the text to control placement of all characters in the line. Justify Left, Centre and Right: SCRIPT positions the start of these three line types with Absolute Placement to the start co-ordinates of the text. The text is presented and the device prints the data without modification. Move Carriage Right: Inter-word blanks on justified text lines are implemented with a Move Carriage Right command. A Right Relative function is generated for horizontal movement. Multiple Columns: Multiple Column output is fully supported. The start position of the current column is added to the absolute start position of any text which follows. Waterloo SCRIPT and a PostScript Printer page 10 ============================================================================== Pagination: PostScript does have an End of Page function. The start and end of each page in the SCRIPT output file is marked. Pointsize: Each font select is qualified with a pointsize. Each size of a particular font is scaled by the printer controller. Only a single character definition exists for all different sizes. Rules for Boxes: The vertical and horizontal rules created with the Box command are extracted from their generated output records. At the bottom of each page, the rules are sorted and joined together where possible to create the smallest number of rule draw commands to create the desired result. Set Leading: The initial Vertical Leading value or space between the baseline of one output line and the next is set to an initial value based on the LPI parameter. The initial default is six Lines Per Inch. It may be altered with the Set Leading (.SL) control word. Subscript and Superscript: PostScript can perform subscript and superscript operations on all printable characters in all fonts. Tabs: All forms of Tabs are supported, left, centre and right aligning, and character aligning, with or without fill strings. Such tabs process the text as the data before the tab, the tab fill (if any) and the text following the tab. Underscore: Underscoring of text, including blanks if required by Underscore Definition (.UD), is supported. The post-processor emulates this function with horizontal rules. Device Output Appendage All of SCRIPT treats the PostScript printer as if it were an online terminal. It is the purpose of a single output appendage within SCRIPT to take each terminal output line and translate it into text and command codes the post-processor will understand. The internal SCRIPT text contains high level functions described under "Device Definition" that may be acted upon. Appendage Job Directory Comments Job Directory Comments to passed to the post-processor are generated with the Output Comment (.OC) control word. Such comments are marked with an internal escape function and recognized by the appendage. No checking for valid Job Directory Comments or proper sequencing of these Job Directory Comments is performed. It is the function of the POSTS Device Interface to generate all of the Job Directory Comments that are required. The user should not require Output Comment (.OC) when using PostScript. Waterloo SCRIPT and a PostScript Printer page 11 ============================================================================== Appendage Text A record of text that is passed through the PostScript dependent appendage is processed for escape functions requiring emulation. The font escapes are translated into Escape codes. The fonts may be qualified by underscore attributes. Any unknown escape functions are passed through as is. If the input text to the appendage is entirely blank, the vertical position marker is updated and the line is not processed. Appendage End of Page The PostScript Device Definition includes an End of Page escape function. When this is recognized the box lines on the current page are processed and the page is terminated. Waterloo SCRIPT and a PostScript Printer page 12 ============================================================================== Part 4 PostScript Post-Processor This part contains a description of a SCRIPT post-processor that transforms the SCRIPT output into a PostScript data stream for the printer controller. The post-processor performs a second function in that it places a second step between the SCRIPTing of the file and the printing of it. Should errors occur while SCRIPTing, the output file will exist on temporary disk rather than on SPOOL space awaiting print. It also allows for a file to be SCRIPTed once and the file to be directed to the printer as required. Purpose The output file generated by SCRIPT when the "POSTS" option is specified contains comment information at the start of the file followed by print information. The first record of the file either contains the user text from ".im POSTS PRINT" or an internally generated PRINT record that identifies the version of SCRIPT, the time and date. This Job Directory Comment is always on a separate record in the SCRIPT output file. The records which follow immediately, will contain information about the fonts being used in the following print data. Each such record begins with F followed by a Physical Font Number which is followed by the name of the PostScript font definition member and Physical Font Name. These records are generated through the ".im POSTS FONT" device interface, one record for each unique font name. The font records must occur in the SCRIPT output file before any print data refers to the font. Note: It is strongly suggested that the definition of fonts to be used should all be placed at the beginning of the SCRIPT input file. It is simply good programming practice to define the fonts required once, at the start of the document. POSTS Physical Font Definitions The post-processor works in conjunction with a table containing all of the supported fonts for the device and the widths of the characters in those fonts. This table called "PDPOSTS" is maintained separate from the post-processor. If other fonts are to be supported by the post-processor they must be first added to "PDPOSTS". Waterloo SCRIPT and a PostScript Printer page 13 ============================================================================== Function The PostScript post-processor begins operation by opening three files, one for input and two for output. SYSIN This is the output file produced by SCRIPT with the "POSTS" option. It must be a file of variable length records with no carriage control, and a maximum record length of 1024 characters. SYSTERM This is the file where any error messages will be displayed. It is expected to be variable length, 121 byte with ASA carriage control. The file may be made fixed or variable with a record length up to 144. SYSOUT This is the output file that will ultimately be sent to the PostScript printer for processing. The default output is fixed length, eighty byte records. It is possible to change the record length of the output file by specifying a different LRECL on the FILEDEF for SYSOUT under CMS or on the DD card for SYSOUT under MVS. Under MVS, this output file may be allocated either to a dataset or directly to a SYSOUT printer interface. In a CMS environment, this output file would normally be allocated to a disk file with filetype "LISTPS" or to a PRINTER directed to a PostScript server machine. Operation of the program then proceeds as follows: 1. Perform initialization which includes: * Load the Physical Font Definitions, PDPOSTS, to make the post-processor aware of all the fonts and characters which are supported on the PostScript device. The post-processor requires character widths for certain functions. * Scan the parameters changing defaults if required. 2. Begin Pass One. 3. Check each input record of the SYSIN file for "*", where is the Escape Character (X'27'). This is an Output Comment and the rest of the record is to be ignored. 4. Check each input record for "F". For each of these records: * Scan the Font Number which follows, delimited on the right by a comma. * Scan the Font Definition Member Name, delimited on the right by a comma. * Scan the Codepage to be used with the font, delimited on the right by a comma. Waterloo SCRIPT and a PostScript Printer page 14 ============================================================================== * Scan the Physical Font Name. This is the name used to connect this font definition with the fonts in the Physical Font Definitions. * Scan for the first unquoted period, if not already encountered. * Build an internal table for the internal Font Number and mark all characters within it as unreferenced. 5. When a record is encountered that is not a font record then scan it for explicit font requests "f" followed by a Font Number and for Text characters. Mark each character found in the Font Number as referenced. 6. Scan the input for an "Q" sequence. When one is found, all input which follows until a "Q." is encountered is buffered and indexed according to the name as defined. These are equations which will be dumped in Pass Two when a corresponding "q" for the equation is found. 7. Index entries are build from any graphic definitions which are done with "G" escape sequences. 8. Complete Pass One with a Table of all the characters that are actually referenced in each Font. 9. Now generate the standard PostScript job definition comments, PostScript macro definitions required to print the text and a macro definition for each font that is actually used. 10. Begin Pass Two. 11. Re-open the input file at the start. 12. Ignore all comments ("*") and all Font Numbers ("F") records. 13. Convert all the SCRIPT escape functions into the PostScript language and PostScript macro calls. The entire output file produced is an EBCDIC character set file. 14. When an "q" is encountered, the buffered equation is processed and put out. 15. When an "G" is encountered, the graphic segment data will be buffered in memory until no longer needed. The data may be present in the input file following this definition if SCRIPT was able to locate and include it. If it is not following, the post-processor will read the segment data into memory unless the NOSEGLIB option was used. 16. When an "g" is encountered, the graphic segment data is dumped out and the memory allocated to this data is released if it is no longer needed. 17. Display final summary. 18. Close all input and output files and terminate. Waterloo SCRIPT and a PostScript Printer page 15 ============================================================================== Invocation Options The PostScript Post-Processor may be invoked with options to control which page numbers are to actually be processed. FRom This option specifies the absolute page number of the first page to be processed. The pages are numbered from '1'. Under CMS the number is specified as a separate token following FROM. Under MVS the number must be specified following an equal sign or within parentheses. TO This option specifies the last absolute page number to be processed. The default is page number '9999'. Under CMS the number is specified as a separate token following TO. Under MVS the number must be specified following an equal sign or within parentheses. XORigin This option allows the default left margin to be adjusted. By default the left margin is set to be 36000 which is one half inch. It is recommended that if this default is changed, it is not made smaller than 24000 since the printer is incapable of printing any closer that this to the left hand side of the page. At UIC, the ______ default value of XORigin is 0 rather than one half inch. To comply with the above warning, you must always specify a page margin of one third inch (24000 device units): .pm 0.3333i or specify an XORigin of your own. YORigin This option allows the default top margin to be adjusted. By default the top margin is set to zero. ORIENT(North|South|East|West) This option allows the orientation of the text on the page to be rotated in one of four directions. The direction is of the top of the printed page relative to the default for the printer. With most PostScript printers, the default is North. PAPERsize(LETTER|LEGAL|A4|B5|11X17|LEDGER) This option will tell PostScript what size paper to image for. SEGlib(ddname)/SEGlib(ftype fmode) This option indicates where the post-processor should look to find all graphic segments which are not inline. The operand "ddname" is for MVS only and indicates the DDNAME of the PDS which includes the graphic data. The default DDNAME is SYSGLIB. The operands "ftype" and "fmode" are for CMS only and indicate the Filetype and Filemode of the graphic data files. The default Filetype is EPSF and the default Filemode is *. MANUALfeed This option will enable the manual feed capability of the printer if it is supported. Waterloo SCRIPT and a PostScript Printer page 16 ============================================================================== NOSEGlib This option tells the post-processor to not include any graphic segment data for any segments which are not already inline. A comment directive is put in the output in place of the segment indicating the requirement of this graphic data file for print servers. CHARset(ALT)/CHARset(NOALT) Force the output data stream to be in ASCII. The default is in EBCDIC. Under MVS the option must be specified as a CHARSET value such as CHARSET(ALT) or CHARSET=ALT. Under CMS the option may be specified as under MVS or a blank may be used such as CHARSET ALT. Escape Sequences Used In POSTS Files Format 1. The escape character is a X'27' represented by "". 2. The function codes are a 1 character mnemonic. The case of the function code is important. 3. The operand sequence is variable in length, with suboperands delimited with a comma and always terminated with a period. 4. All numeric operands appear as printable digits. Functions a xxx, yyy.: Absolute Position, xxx: horizontal position on the page, yyy: vertical position. The "0,0" position on the page is at the upper left corner of the paper. The post-processor adjusts the Y-coordinate by the top margin. The X-coordinate is adjusted by the left margin, which defaults to 36000 (one-half inch). b <+|->nnn.: Set width of a blank and execute one, nnn is the width of a blank X'40'. Underscore remains in effect for the blank. +nnn or -nnn makes a relative adjustment but does not affect current width of a blank. A X'40' character found in following input generates a width nnn. e.: End of Page. F nn,member,codepage,'Physical Font Name'.: Define a font. The nn is a number which represents this font in f. member: down-loaded font member name. codepage: codepage name to be used with the font. Do not have any periods(.) in the 'Real Font Name'. f fontnum,ps.: Select Font, fontnum: font number, ps: pointsize. Waterloo SCRIPT and a PostScript Printer page 17 ============================================================================== G nnn,member,xdim,ydim,xoff,yoff,mag,rot.: Define a graphic include file. Where nnn is a unique number given to the graphic include. member: the name of the graphic segment which resides in the library (PDS) of graphics pointed to with SYSGLIB under MVS or in a file with a Filetype of EPSF and a Filemode of * under CMS. xdim: the x dimension of the graph. ydim: the y dimension of the graph. xoff: the x offset adjustment to be made to the origin of the graph. yoff: the y offset adjustment to be made to the origin of the graph. mag: the magnification to be applied to the graph. rot: the rotation in degrees to be applied to the graph. (The rot operand is not currently supported.) g nnn.: Select graphic include number nnn where nnn was defined with a "G" sequence. h nnn.: Move Horizontal. If nnn is -nnn then move to the left. i nnn.: Set Intensity for a pseudo bold. nnn: intensity level (can be -nnn). If nnn is zero or null then Intensity is cancelled. 'nnn' may be negative. p px,py.: Top of Page. px: page width, py: page height. Q EQnnnnnn,mhi,mlo,mrt.: Define an out of line formula. The nnnnnn is a number which represents a unique number for the formula input which follows. mhi: height of formula above baseline in device units. mlo: height of formula below baseline. mrt: total horizontal width of formula. The formula input is terminated with "Q.". q EQnnnnnn.: Select formula where EQnnnnnn is name of formula. u nnn,ooo.: Turn on Underscore, nnn: width of underline rule. If nnn is zero or null then Underscore is cancelled. ooo: offset of rule from baseline. v nnn.: Move Vertical. If nnn is -nnn then move up. x ll,rw.: Horizontal Rule, ll: length, rw: rule width. y hh,rw.: Vertical Rule, hh: height, rw: rule width. * text: Comment to end of record. Waterloo SCRIPT and a PostScript Printer page 18 ============================================================================== Appendix A Special Symbols with SYSCHAR The function of SYSCHAR is to provide access to many Special Symbols that are not available on the normal keyboard. The symbolic names chosen to represent the symbols are taken from ISO Standard 8879-1986(E), Standard Generalized Markup Language (SGML). The case in which the symbol name is entered is important and must be entered exactly as shown: the symbol "á" returns a lowercase letter with an accent while "Á" returns the uppercase. The support of SYSCHAR is compatible with both native SCRIPT and GML documents. It is enabled by entering ".im SYSCHAR" in the SCRIPT input file. The symbols are defined for use with all PostScript Text fonts. The Symbol font is used to extend the base character set. Alphabetic Characters The Alphabetic Character Symbols are named by combining the character, or a transliteration of it, with an abreviation for the accent. The symbol is in uppercase when the symbol represents the capital form. Latin 1 (ISOlat1): These symbols are those Latin alphabetic characters used in Western European languages. á small a, acute accent Á capital A, acute accent â small a, circumflex accent  capital A, circumflex accent à small a, grave accent À capital A, grave accent å small a, ring Å capital A, ring ã small a, tilde à capital A, tilde ä small a, dieresis or umlaut mark Ä capital A, dieresis or umlaut mark æ small ae diphthong (ligature) Æ capital AE diphthong (ligature) ç small c, cedilla Ç capital C, cedilla é small e, acute accent É capital E, acute accent ê small e, circumflex accent Ê capital E, circumflex accent è small e, grave accent È capital E, grave accent ë small e, dieresis or umlaut mark Ë capital E, dieresis or umlaut mark Waterloo SCRIPT and a PostScript Printer page 19 ============================================================================== í small i, acute accent Í capital I, acute accent î small i, circumflex accent Î capital I, circumflex accent ì small i, grave accent Ì capital I, grave accent ï small i, dieresis or umlaut accent Ï capital I, dieresis or umlaut accent ñ small n, tilde Ñ capital N, tilde ó small o, acute accent Ó capital O, acute accent ô small o, circumflex accent Ô capital O, circumflex accent ò small o, grave accent Ò capital O, grave accent ø small o, slash Ø capital O, slash õ small o, tilde Õ capital O, tilde ö small o, dieresis or umlaut mark Ö capital O, dieresis or umlaut mark ß small sharp s, German (sz ligature) ú small u, acute accent Ú capital U, acute accent û small u, circumflex accent Û capital U, circumflex accent ù small u, grave accent Ù capital U, grave accent ü small u, dieresis or umlaut mark Ü capital U, dieresis or umlaut mark ý small y, acute accent ÿ small y, dieresis or umlaut mark Latin 2 (ISOlat2): These symbols are additional Latin alphabetic characters. &abreve small a, breve &amacr small a, macron &aogon small a, ogonek &Aogon capital A, ogonek &cacute small c, acute accent &ccaron small c, caron &ccirc small c, circumflex accent &cdot small c, dot above &ecaron small e, caron &edot small e, dot above &emacr small e, macron &eogon small e, ogonek &Eogon capital E, ogonek &gacute small g, acute accent &gbreve small g, acute accent &Gcedil capital G, cedilla &gcirc small g, circumflex accent Waterloo SCRIPT and a PostScript Printer page 20 ============================================================================== &gdot small g, dot above &imacr small i, macron &inodot small i without dot &iogon small i, ogonek &Iogon capital I, ogonek &itilde small i, tilde &jcirc small j, circumflex accent &kcedil small k, cedilla &Kcedil capital K, cedilla &lcedil small l, cedilla &Lcedil capital L, cedilla &lstrok small l, stroke &Lstrok capital L, stroke &nacute small n, acute accent &napos small n, apostrophe &ncaron small n, caron &ncedil small n, cedilla &Ncedil capital N, cedilla &odblac small o, double acute accent &omacr small o, macron &oelig small oe ligature &OElig capital OE ligature &racute small r, acute accent &rcaron small r, caron &rcedil small r, cedilla &Rcedil capital R, cedilla &sacute small s, acute accent &scaron small s, caron &Scaron capital S, caron &scedil small s, cedilla &Scedil capital S, cedilla &scirc small s, circumflex accent &tcedil small t, cedilla &Tcedil capital T, cedilla &ubreve small u, breve &udblac small u, double acute accent &umacr small u, macron &uogon small u, ogonek &Uogon capital U, ogonek &uring small u, ring &utilde small u, tilde &wcirc small w, circumflex accent &ycirc small y, circumflex accent &Yuml capital Y, dieresis or umlaut mark &zacute small z, acute accent &zcaron small z, caron &Zcaron capital Z, caron &zdot small z, dot above Waterloo SCRIPT and a PostScript Printer page 21 ============================================================================== Greek Letters (ISOgrk1): These symbols represent the letters of the Greek alphabet. They are to be used as language characters and not as mathematical symbol names in formula. &agr small alpha, Greek &Agr capital Alpha, Greek &bgr small beta, Greek &Bgr capital Beta, Greek &ggr small gamma, Greek &Ggr capital Gamma, Greek &dgr small delta, Greek &Dgr capital Delta, Greek &egr small epsilon, Greek &Egr capital Epsilon, Greek &zgr small zeta, Greek &Zgr capital Zeta, Greek &eegr small eta, Greek &EEgr capital Eta, Greek &thgr small theta, Greek &THgr capital Theta, Greek &igr small iota, Greek &Igr capital Iota, Greek &kgr small kappa, Greek &Kgr capital Kappa, Greek &lgr small lambda, Greek &Lgr capital Lambda, Greek &mgr small mu, Greek &Mgr capital Mu, Greek &ngr small nu, Greek &Ngr capital Nu, Greek &xgr small xi, Greek &Xgr capital Xi, Greek &ogr small omicron, Greek &Ogr capital Omicron, Greek &pgr small pi, Greek &Pgr capital Pi, Greek &rgr small rho, Greek &Rgr capital Rho, Greek &sgr small sigma, Greek &Sgr capital Sigma, Greek &sfgr final small sigma, Greek &tgr small tau, Greek &Tgr capital Tau, Greek &ugr small upsilon, Greek &Ugr capital Upsilon, Greek &phgr small phi, Greek &PHgr capital Phi, Greek &khgr small chi, Greek &KHgr capital Chi, Greek &psgr small psi, Greek &PSgr capital Psi, Greek &ohgr small omega, Greek &OHgr capital Omega, Greek Waterloo SCRIPT and a PostScript Printer page 22 ============================================================================== General Use Characters Numeric and Special Graphic (ISOnum): These are the set of symbols representing Numeric and Special Graphic Characters. &half fraction one-half ½ fraction one-half ¼ fraction one-quarter ¾ fraction three-quarters &frac18 fraction one-eighth &frac38 fraction three-eighths &frac58 fraction five-eighths &frac78 fraction seven-eighths ¹ superscript one ² superscript two ³ superscript three &sup4 superscript four (EXT) &sup5 superscript five (EXT) &sup6 superscript six (EXT) &sup7 superscript seven (EXT) &sup8 superscript eight (EXT) &sup9 superscript nine (EXT) &sup0 superscript zero (EXT) &plus plus sign B: ± /pm B: plus-or-minus sign < less-than sign R: &equals equals sign R: > greater-than sign R: ÷ /div b: divide sign × /times B: multiply sign ¤ general currency sign £ pound sign &dollar dollar sign ¢ cent sign ¥ yen sign &num number sign &percnt percent sign & ampersand &ast /ast B: asterisk &commat commercial at &lsqb /lbrack O: left square bracket &bsol /backslash reverse solidus &rsqb /rbrack C: right square bracket &lcub /lbrace O: left curly bracket &horbar horizontal bar &verbar /vert vertical bar &rcub /rbrace C: right curly bracket µ micro sign &ohm ohm sign ° degree sign º ordinal indicator, masculine ª ordinal indicator, feminine § section sign Waterloo SCRIPT and a PostScript Printer page 23 ============================================================================== ¶ pilcrow (paragraph sign) · /centerdot B: middle dot &larr /leftarrow /gets A: leftward arrow &rarr /rightarrow /to A: rightward arrow &uarr /uparrow A: upward arrow &darr /downarrow A: downward arrow © copyright sign ® /circleR registered sign &trade trade mark sign ¬ /neg /lnot not sign &excl exclamation mark ¡ inverted exclamation mark " quotation mark &apos apostrophe &lpar O: left parenthesis &rpar C: right parenthesis &comma P: comma &lowbar low line &hyphen hyphen &period full stop, period &sol solidus &colon /colon P: &semi semicolon &quest question mark ¿ inverted question mark « angle quotation mark, left » angle quotation mark, right &lsquo single quotation mark, left &rsquo single quotation mark, right &ldquo double quotation mark, left &rdquo double quotation mark, right   no break (required) space Diacritical Marks (ISOdia): These symbols represent the diacritical accents as independent characters. ´ acute accent &breve breve &caron caron ¸ cedilla &circ circumflex accent &dblac double acute accent &die dieresis &dot dot above &grave grave accent ¯ macron &ogon ogonek &ring ring &tilde tilde ¨ umlaut mark Waterloo SCRIPT and a PostScript Printer page 24 ============================================================================== Publishing (ISOpub): These are the Special Publishing characters. &emsp em space &ensp en space (1/2-em) &numsp digit space (width of a number) &puncsp punctuation space (width of comma) &thinsp thin space (1/6-em) &mdash em dash &ndash en dash &dash hyphen (true graphic) &hellip ellipsis (horizontal) &frac13 fraction one-third &frac23 fraction two-thirds &frac15 fraction one-fifth &frac25 fraction two-fifths &frac35 fraction three-fifths &frac45 fraction four-fifths &frac16 fraction one-sixth &frac56 fraction five-sixths &incare in-care-of symbol &bull /bullet B: round bullet, filled &clubs /clubsuit club suit symbol &diams /diamondsuit diamond suit symbol &hearts /heartsuit heart suit symbol &spades /spadesuit spades suit symbol &dagger /dagger B: dagger &Dagger /ddagger B: double dagger &caret caret (insertion mark) &lsquor rising single quote, left (low) &ldquor rising dbl quote, left (low) &filig small fi ligature &fllig small fl ligature &rdquor rising dbl quote, right (high) &rsquor rising single quote, right (high) Technical Use Many technical symbols can be used in more than one context. The names for the symbols fits the shape of the symbol rather than its meaning in any application. General Technical (ISOtech): These are a general set of technical symbols. &aleph /aleph aleph, Hebrew &and /wedge /land B: logical and &ap /approx R: approximate &bottom /bot B: perpendicular &cap /cap B: intersection &cong /cong R: congruent with &cup /cup B: union or logical sum &equiv /equib R: identical with &exist /exists at least one exists &forall /forall for all Waterloo SCRIPT and a PostScript Printer page 25 ============================================================================== &fnof function of (italic small f) &ge /geq /ge R: greater-than-or-equal &iff /iff if and only if &infin /infty infinity &int /int L: integral operator &isin /in R: set membership &lang /langle O: left angle bracket &lArr /Leftarrow A: is implied by &le /leq /le R: less-than-or-equal &minus B: minus sign &nabla /nabla del, Hamilton operator &ne /ne /neq R: not equal &ni /ni /owns R: contains &or /vee /lor B: logical or &par /parallel R: parallel &part /partial partial differential &permil per thousand &perp /perp R: perpendicular &prime /prime prime or minute &Prime double prime or second &prop /propto R: is proportional to &radic /surd radical &rang /rangle C: right angle bracket &rArr /Rightarrow A: implies &sim /sim R: similar &sub /subset R: subset or is implied by &sube /subseteq R: subset, equals &sup /supset R: superset or implies &supe /supseteq R: superset, equals &there4 /therefore R: therefore &angst Angstrom capital A, ring &Dot dieresis or umlaut mark &lowast low asterisk ¬in N: negated set membership Greek Symbols (ISOgrk3): These are the symbols representing Greek character names when they are used in technical applications. &alpha small alpha, Greek &Alpha capital Alpha, Greek (EXT) &beta small beta, Greek &Beta capital Beta, Greek (EXT) &gamma small gamma, Greek &Gamma capital Gamma, Greek &gammad /digamma &delta small delta, Greek &Delta capital Delta, Greek &epsi small epsilon, Greek &Epsi capital Epsilon, Greek (EXT) &zeta small zeta, Greek &Zeta capital Zeta, Greek (EXT) &eta small eta, Greek &Eta capital Eta, Greek (EXT) Waterloo SCRIPT and a PostScript Printer page 26 ============================================================================== &theta small theta, Greek (EXT) &Theta capital Theta, Greek &thetav /vartheta - curly or open theta &iota small iota, Greek &Iota capital Iota, Greek (EXT) &kappa small kappa, Greek &Kappa capital Kappa, Greek (EXT) &lambda small lambda, Greek &Lambda capital Lambda, Greek &mu small mu, Greek &Mu capital Mu, Greek (EXT) &nu small nu, Greek &Nu capital Nu, Greek (EXT) &xi small xi, Greek &Xi capital Xi, Greek &omi small omicron, Greek (EXT) &Omi capital Omicron, Greek (EXT) &pi small pi, Greek &Pi capital Pi, Greek &rho small rho, Greek &Rho capital Rho, Greek (EXT) &sigma small sigma, Greek &Sigma capital Sigma, Greek &sigmav /varsigma &tau small tau, Greek &Tau capital Tau, Greek (EXT) &upsi small upsilon, Greek &Upsi capital Upsilon, Greek &phi small phi, Greek (EXT) &Phi capital Phi, Greek &phiv /varphi - curly or open phi &chi small chi, Greek &Chi capital Chi, Greek (EXT) &psi small psi, Greek &Psi capital Psi, Greek &omega small omega, Greek &Omega capital Omega, Greek Alternative Greek Symbols (ISOgrk4): These also represent Greek character names, when a separate symbol set is required. Normally these special symbols are displayed in a different font or in boldface. &b_alpha small alpha, Greek &b_Alpha capital Alpha, Greek (EXT) &b_beta small beta, Greek &b_Beta capital Beta, Greek (EXT) &b_gamma small gamma, Greek &b_Gamma capital Gamma, Greek &b_gammad /digamma &b_delta small delta, Greek &b_Delta capital Delta, Greek &b_epsi small epsilon, Greek &b_Epsi capital Epsilon, Greek (EXT) Waterloo SCRIPT and a PostScript Printer page 27 ============================================================================== &b_zeta small zeta, Greek &b_Zeta capital Zeta, Greek (EXT) &b_eta small eta, Greek &b_Eta capital Eta, Greek (EXT) &b_theta small theta, Greek (EXT) &b_Theta capital Theta, Greek &b_thetav /vartheta - curly or open theta &b_iota small iota, Greek &b_Iota capital Iota, Greek (EXT) &b_kappa small kappa, Greek &b_Kappa capital Kappa, Greek (EXT) &b_lambda small lambda, Greek &b_Lambda capital Lambda, Greek &b_mu small mu, Greek &b_Mu capital Mu, Greek (EXT) &b_nu small nu, Greek &b_Nu capital Nu, Greek (EXT) &b_xi small xi, Greek &b_Xi capital Xi, Greek &b_omi small omicron, Greek (EXT) &b_Omi capital Omicron, Greek (EXT) &b_pi small pi, Greek &b_Pi capital Pi, Greek &b_rho small rho, Greek &b_Rho capital Rho, Greek (EXT) &b_sigma small sigma, Greek &b_Sigma capital Sigma, Greek &b_sigmav /varsigma &b_tau small tau, Greek &b_Tau capital Tau, Greek (EXT) &b_upsi small upsilon, Greek &b_Upsi capital Upsilon, Greek &b_phi small phi, Greek (EXT) &b_Phi capital Phi, Greek &b_phiv /varphi - curly or open phi &b_chi small chi, Greek &b_Chi capital Chi, Greek (EXT) &b_psi small psi, Greek &b_Psi capital Psi, Greek &b_omega small omega, Greek &b_Omega capital Omega, Greek Additional Mathematical Symbols Ordinary Math Symbols (ISOamso): &ang /angle - angle &empty /emptyset /varnothing small o, slash &image /Im - imaginary &inodot /imath small i, no dot &nexist /nexists - negated exists &real /Re - real Waterloo SCRIPT and a PostScript Printer page 28 ============================================================================== &sbsol /sbs - short reverse solidus &weierp /wp - Weierstrass p Binary and Large Operators Math Symbols (ISOamsb): &diam /diamond B: open diamond &oplus /oplus B: plus sign in circle &osol /oslash B: solidus in circle &otimes /otimes B: multiply sign in circle &sdot /cdot B: small middle dot &setmn /setminus B: reverse solidus &prod /prod L: product operator &sum /sum L: summation operator Relations Math Symbols (ISOamsr): &bepsi /backepsilon R: such that &spar /shortparallel R: short parallel Negated Relations Math Symbols (ISOamsn): &nap /napprox N: not approximate &ncong /ncong N: not congruent with &nequiv /nequiv N: not identical with &nge /ngeq N: not greater-than-or-equal &ngt /ngtr N: not greater-than &nle /nleq N: not less-than-or-equal &nlt /nless N: not less-than &nsim /nsim N: not similar &nsub /nsubset N: not subset &nsube /nsubseteq N: not subset, equals &nsup /nsupset N: not superset &nsupe /nsupseteq N: not superset, equals Arrow Relations Math Symbols (ISOamsa): &dArr /Downarrow A: down dbl arrow &darr2 /downdownarrows A: two down arrows &hArr /Leftrightarrow A: l&r dbl arrow &harr /leftrightarrow A: l&r arrow &nlArr /nLeftarrow A: not implied by &nlarr /nleftarrow A: not left arrow &nhArr /nLeftrightarrow A: not l&r dbl arr &nharr /nleftrightarrow A: not l&r arrow &nrarr /nrightarrow A: not right arrow &nrArr /nRightarrow A: not implies &uArr /Uparrow A: up dbl arrow &uarr2 /upuparrows A: two up arrows Opening and Closing Delimiters Math Symbols (ISOamsc): &rceil /rceil C: right ceiling &rfloor /rfloor C: right floor &rpargt /rightparengtr C: right paren, gt &lceil /lceil O: left ceiling &lfloor /lfloor O: left floor &lpargt /leftparengtr O: left parenthesis, gt Waterloo SCRIPT and a PostScript Printer page 29 ============================================================================== Appendix B Supported Fonts The following is the list of Adobe fonts which are supported. They are indexed by their font package numbers as distributed by Adobe. Resident PostScript Fonts The following are the basic 13 fonts found in all PostScript printers, and are the only PostScript fonts available on the Computer Center's remote Xerox 4045/160 PostScript printers. Short Font Name Name CO Courier COo Courier-Oblique COb Courier-Bold CObo Courier-BoldOblique HV Helvetica HVo Helvetica-Oblique HVb Helvetica-Bold HVbo Helvetica-BoldOblique TIm Times-Roman TIi Times-Italic TIb Times-Bold TIbi Times-BoldItalic SY Symbol Down Loadable PostScript Fonts The sets listed up to and incuding number 5 became resident with the Apple LaserWriter Plus to make up the base 35 fonts. These are also resident in most PostScript output devices today. Font Short Font Package Name Name - HL Helvetica-Narrow HLo Helvetica-Narrow-Oblique HLb Helvetica-Narrow-Bold HLbo Helvetica-Narrow-BoldOblique Waterloo SCRIPT and a PostScript Printer page 30 ============================================================================== 1 POr Palatino-Roman POi Palatino-Italic POb Palatino-Bold PObi Palatino-BoldItalic 2 BKl Bookman-Light BKli Bookman-LightItalic BKd Bookman-Demi BKdi Bookman-DemiItalic 3 ZCmi ZapfChancery-MediumItalic ZD ZapfDingbats 4 AGw AvantGarde-Book AGwo AvantGarde-BookOblique AGd AvantGarde-Demi AGdo AvantGarde-DemiOblique 5 NCr NewCenturySchlbk-Roman NCi NewCenturySchlbk-Italic NCb NewCenturySchlbk-Bold NCbi NewCenturySchlbk-BoldItalic 6 OP Optima OPo Optima-Oblique OPb Optima-Bold OPbo Optima-BoldOblique 7 SUl Souvenir-Light SUli Souvenir-LightItalic SUd Souvenir-Demi SUdi Souvenir-DemiItalic 8 LUw LubalinGraph-Book LUwo LubalinGraph-BookOblique LUd LubalinGraph-Demi LUdo LubalinGraph-DemiOblique 9 GAl Garamond-Light GAli Garamond-LightItalic GAb Garamond-Bold GAbi Garamond-BoldItalic 10 ATm AmericanTypewriter-Medium ATb AmericanTypewriter-Bold MA Machine 11 BGw Benguiat-Book BGb Benguiat-Bold FQ FrizQuadrata FQb FrizQuadrata-Bold Waterloo SCRIPT and a PostScript Printer page 31 ============================================================================== 12 GYr Glypha GYo Glypha-Oblique GYb Glypha-Bold GYbo Glypha-BoldOblique 13 HVl Helvetica-Light HVlo Helvetica-LightOblique HVbl Helvetica-Black HVblo Helvetica-BlackOblique 14 HVcl Helvetica-Condensed-Light HVclo Helvetica-Condensed-LightObl HVc Helvetica-Condensed HVco Helvetica-Condensed-Oblique HVcb Helvetica-Condensed-Bold HVcbo Helvetica-Condensed-BoldObl HVcbl Helvetica-Condensed-Black HVcblo Helvetica-Condensed-BlackObl 15 TMr TrumpMediaeval-Roman TMi TrumpMediaeval-Italic TMb TrumpMediaeval-Bold TMbi TrumpMediaeval-BoldItalic 16 MEr Melior MEi Melior-Italic MEb Melior-Bold MEbi Melior-BoldItalic 17 GLr Galliard-Roman GLi Galliard-Italic GLb Galliard-Bold GLbi Galliard-BoldItalic 18 NBr NewBaskerville-Roman NBi NewBaskerville-Italic NBb NewBaskerville-Bold NBbi NewBaskerville-BoldItalic 19 KRrg Korinna-Regular KRkx Korinna-KursivRegular KRb Korinna-Bold KRkb Korinna-KursivBold 20 GO Goudy GOi Goudy-Italic GOb Goudy-Bold GObi Goudy-BoldItalic 21 SO Sonata Waterloo SCRIPT and a PostScript Printer page 32 ============================================================================== 22 CSrg CenturyOldStyle-Regular CSi CenturyOldStyle-Italic CSb CenturyOldStyle-Bold 23 FRw FranklinGothic-Book FRwo FranklinGothic-BookOblique FRd FranklinGothic-Demi FRdo FranklinGothic-DemiOblique FRh FranklinGothic-Heavy FRho FranklinGothic-HeavyOblique 24 CHw Cheltenham-Book CHwi Cheltenham-BookItalic CHb Cheltenham-Bold CHbi Cheltenham-BoldItalic 25 PA ParkAvenue 26 BDm Bodoni BDi Bodoni-Italic BDb Bodoni-Bold BDbi Bodoni-BoldItalic BDps Bodoni-Poster 27 LG LetterGothic LGsl LetterGothic-Slanted LGb LetterGothic-Bold LGbsl LetterGothic-BoldSlanted 28 PE PrestigeElite PEsl PrestigeElite-Slanted PEb PrestigeElite-Bold PEbsl PrestigeElite-BoldSlanted 29 OR Orator ORsl Orator-Slanted 30 NG NewsGothic NGo NewsGothic-Oblique NGb NewsGothic-Bold NGbo NewsGothic-BoldOblique 31 TFm Tiffany TFmi Tiffany-Italic TFd Tiffany-Demi TFdi Tiffany-DemiItalic TFh Tiffany-Heavy TFhi Tiffany-HeavyItalic 32 CB CooperBlack CBi CooperBlack-Italic Waterloo SCRIPT and a PostScript Printer page 33 ============================================================================== 33 ST Stencil HO Hobo BS BrushScript 34 ACb Aachen-Bold RE Revue UR UniversityRoman FS FreestyleScript 35 CR Carta 36 LCr Lucida LCi Lucida-Italic LCb Lucida-Bold LCbi Lucida-BoldItalic 37 UVl Univers-Light UVlo Univers-LightOblique UV Univers UVo Univers-Oblique UVb Univers-Bold UVbo Univers-BoldOblique UVbl Univers-Black UVblo Univers-BlackOblique 38 UVcl Univers-CondensedLight UVclo Univers-CondensedLightOblique UVc Univers-Condensed UVco Univers-CondensedOblique UVcb Univers-CondensedBold UVcbo Univers-CondensedBoldOblique 39 FUl Futura-Light FUlo Futura-LightOblique FUw Futura-Book FUwo Futura-BookOblique FUb Futura-Bold FUbo Futura-BoldOblique 40 SR StoneSerif SRi StoneSerif-Italic SRsb StoneSerif-Semibold SRsbi StoneSerif-SemiboldItalic SRb StoneSerif-Bold SRbi StoneSerif-BoldItalic 41 SS StoneSans SSi StoneSans-Italic SSsb StoneSans-Semibold SSsbi StoneSans-SemiboldItalic SSb StoneSans-Bold SSbi StoneSans-BoldItalic Waterloo SCRIPT and a PostScript Printer page 34 ============================================================================== 42 SI StoneInformal SIi StoneInformal-Italic SIsb StoneInformal-Semibold SIsbi StoneInformal-SemiboldItalic SIb StoneInformal-Bold SIbi StoneInformal-BoldItalic 43 CN Corona CNi Corona-Italic CNb Corona-Bold 44 EUm Eurostile EUo Eurostile-Oblique EUd Eurostile-Demi EUdo Eurostile-DemiOblique EUb Eurostile-Bold EUbo Eurostile-BoldOblique 45 EX Excelsior EXi Excelsior-Italic EXb Excelsior-Bold 46 FUm Futura FUo Futura-Oblique FUh Futura-Heavy FUho Futura-HeavyOblique FUeb Futura-ExtraBold FUebo Futura-ExtraBoldOblique 47 FUcl Futura-CondensedLight FUclo Futura-CondensedLightOblique FUc Futura-Condensed FUco Futura-CondensedOblique FUcb Futura-CondensedBold FUcbo Futura-CondensedBoldOblique FUceb Futura-CondensedExtraBold FUcebo Futura-CondExtraBoldObl 48 LSr LucidaSans LSi LucidaSans-Italic LSb LucidaSans-Bold LSbi LucidaSans-BoldItalic 49 MPl Memphis-Light MPli Memphis-LightItalic MPm Memphis-Medium MPmi Memphis-MediumItalic MPb Memphis-Bold MPbi Memphis-BoldItalic MPeb Memphis-ExtraBold Waterloo SCRIPT and a PostScript Printer page 35 ============================================================================== 50 HVk Helvetica-Compressed HVek Helvetica-ExtraCompressed HVuk Helvetica-UltraCompressed 59 HNul HelveticaNeue-UltraLight HNuli HelveticaNeue-UltraLightItal HNbl HelveticaNeue-Black HNbli HelveticaNeue-BlackItalic 60 HNt HelveticaNeue-Thin HNti HelveticaNeue-ThinItalic HNr HelveticaNeue-Roman HNi HelveticaNeue-Italic HNb HelveticaNeue-Bold HNbi HelveticaNeue-BoldItalic 61 HNl HelveticaNeue-Light HNli HelveticaNeue-LightItalic HNm HelveticaNeue-Medium HNmi HelveticaNeue-MediumItalic HNh HelveticaNeue-Heavy HNhi HelveticaNeue-HeavyItalic 78 UNn Universal-NewswithCommPi UNg Universal-GreekwithMathPi Waterloo SCRIPT and a PostScript Printer page 36 ============================================================================== Appendix C PSTYPE Post-Processor With the advent of a Linotronic 300 typesetter, there was a need for the addition of crop marks and increased output checking to avoid wasted typesetting. A second post-processor was created called PSTYPE to provide this increased function. The post-processor is basically the same as the POSTS post-processor. It generates a PostScript data stream which will print on any PostScript output device. The data stream does take advantage of some unique features if it finds itself being processed in the Linotronic environment. This does not hold true for other typesetters which support PostScript today. Additional Features * Crop marks are added to the output for easy of copying later. * There is PostScript code included which can direct a LINOTYPE typesetter to rotate the logical page on the output film to maximize speed and film use. This will only function with the typesetters whose PRODUCT name in PostScript is LINOTYPE. * The page size is dynamic and will be set to the size as defined by SCRIPT when the document was formatted plus the added crop mark size. The default is 657 by 835 points which is 8.5 by 11 inches with the crop marks added. * The post-processor will validate the page sizes to ensure they will fit in the typesetter's imageable area. PSTYPE assumes the typesetter is an L300 and is set to 1270 dpi resolution. This means it has an imageable region of 863 points wide by 1853 points long. The crop marks take 45 points away from each dimension so the maximum imageable area is 818 by 1808 points. If you are using your Linotronic at another resolution, these limits can be set using the MAXWidth and MAXLength parameters. These parameters are described later in this appendix. The maximum values for Linotype typesetters and resolutions are as follows: Waterloo SCRIPT and a PostScript Printer page 37 ============================================================================== Typesetter Resolution Width Length L100 1270dpi 842pts 1853pts L100 635dpi 842pts 3707pts L100 317dpi 842pts 7415pts L300 2540dpi 863pts 926pts L300 1270dpi 863pts 1853pts L300 635dpi 863pts 3707pts L500 1693dpi 1295pts 1390pts L500 846dpi 1295pts 2782pts L500 423dpi 1295pts 5565pts Note: These values are for PostScript version 47.1. They are different for the new version 49.3 roms. Additional Invocation Options The following options were added for the validation of page sizing. MAXWidth This option specifies the maximum page width in points supported by the typesetter at the set resolution. The operand used is in points. The default is 863 points which is for an L300 set at 1270 dpi. MAXLength This option specifies the maximum page length in points supported by the typesetter at the set resolution. The operand used is in points. The default is 1853 points which is for an L300 set at 1270 dpi. Waterloo SCRIPT and a PostScript Printer page 38 ============================================================================== Appendix D Error Messages The following is the list of possible error messages from the post-processor and their meanings. Where appropriate, the record number and column number of the record that contained the error will be indicated. POS-001T -- INVALID PARAMETER: 'xxx': The operand 'xxx' was passed as a parameter option to the PostScript post-processor. The 'xxx' parameter is not known. POS-002E -- UNDEFINED TEXT CHARACTER: An unknown character was passed as printable text in the POSTS file. There are up to 192 valid printables in each PostScript font plus the one pseudo-printable character X'40'. POS-003E -- UNDEFINED ESCAPE CODE 'x': The character 'x' was not recognized as a valid function code. POS-004E -- POINTSIZE TOO , nnn SUBSTITUTED: A pointsize was requested in the POSTS file that could not be honoured. The closest equivalent has been substituted. (For future versions of SCRIPT). POS-005E -- WIDTH EXCEEDS nn PICAS nn POINTS: The width of text output exceeds the paper width on the PostScript printer. POS-006E -- RULE SIZES TOO LARGE: The length or thickness of a rule is bigger than the device will support. POS-007T -- PREMATURE END OF FILE OCCURRED ON INPUT. PROCESSING TERMINATED: The POSTS file did not terminate with an End of Page escape function. Probable cause is data missing in the file. POS-008T -- ERROR READING . PROCESSING TERMINATED: An error has occurred while reading an input file. 'INPUT' indicates the input file is the POSTS file. 'FONT MEMBER xxxxx' indicates that the member 'xxxxx' was being read from the font library. POS-009E -- FONT NUMBER nn QUALIFIER nn NOT DEFINED: The POSTS file has asked for a Font with "f" that does not exist. POS-010T -- FONT MEMBER xxxxxxxx NOT FOUND IN LIBRARY: A font number to member name mapping has been defined in an "F" record in the Job Directory. The member name specified does not exist in the font image library. POS-011T -- NO CURRENT FONT IS DEFINED: Printable text has been encountered in the input file before any font number has been assigned. Waterloo SCRIPT and a PostScript Printer page 39 ============================================================================== POS-012T -- INVALID FONT DEFINITION. FONT: nnn NAME: mmm: The POSTS file has attempted to define a font which is not known to the post-processor. POS-013T -- TOO MANY CHARACTERS IN ONE JOB: The sum of all the characters in all fonts, both resident and down loaded exceeded allowable maximum. Fewer fonts must be used in the job. POS-014T -- TOO MANY BYTES IN FONTS: The sum of the number of bytes in down loaded fonts exceed the capacity of the device. POS-015T -- TOO MANY FONTS: The total number of fonts, both resident and down loaded exceeds the device limit. POS-016I -- FONT font-name nn CHARS nnn BYTES RES=>: The "font name" indicated is either resident or has been dumped to the PostScript printer, contains nn characters, and takes up nnn bytes of memory in the printer. POS-017W -- NO PAGES WERE PROCESSED: No pages of text were processed and printed. Probable cause is that the parameters of FROM and TO were specified and were beyond the scope of the document being processed. POS-018T -- ERROR LOADING FONT TABLES -- PDPOSTS --. PROCESSING TERMINATED: An error has occurred while attempting to load the character width tables required for processing. POS-019T -- REGION MANAGER ERROR. PROCESSSING TERMINATED: The post-processor had an error attempting to get working storage for processing. A larger working storage set is probably required. POS-020E -- EQUATION CALLED EQnnnnnn HAS NOT BEEN DEFINED: The POSTS file has asked for an equation with "q" that has not been defined with an "Q" escape sequence. POS-021E -- GRAPHIC SEGMENT NUMBER nnn HAS NOT BEEN DEFINED: The POSTS file has asked for graphic segment number nnn which has not been defined with an "G" escape sequence. POS-022W -- GRAPHIC SEGMENT name NOT FOUND: The post-processor was unable to find and include the specified graphic segment inline. Processing will continue as if the NOSEGLIB option had been used. POS-023T -- ERROR PROCESSING PARAMETER LIST: The post-processor had an error attempting to scan the parameters passed to it. POS-024T -- OPTIONS: opt1 opt2 opt3 ...: These are the parameters as the post-processor interpreted them. POS-025T -- * : A pointer to the position in the parameter list where the error was detected. Waterloo SCRIPT and a PostScript Printer page 40 ============================================================================== POS-026W -- RECORD nn OF GRAPHIC SEGMENT name WAS WRAPPED: Record nn of the SEGMENT 'name' was too long to fit in one output record. The record will be split at a blank if possible and continued on the next output record. PST-028T -- PAGE WIDTH OF n POINTS EXCEEDS ALLOWABLE MAXIMUM OF mm POINTS: The page width required is greater than the allowable maximum on a Linotronic 300. The size of the crop marks was considered when this check was made. The default maximum (mm) is 818 points which is 863 points less 45 points for crop marks and is the value for an L300 at 1270 dpi. This maximum is settable using the MAXWidth parameter of the PSTYPE post-processor. Note: This error message is only valid for the PSTYPE post-processor. PST-029T -- PAGE LENGTH OF n POINTS EXCEEDS ALLOWABLE MAXIMUM OF mm POINTS: The page length required is greater than the allowable maximum on a Linotronic 300. The size of the crop marks was considered when this check was made. The default maximum (mm) is 1808 points which is 1853 points less 45 points for crop marks and is the value for an L300 at 1270 dpi. This maximum is settable using the MAXLength parameter of the PSTYPE post-processor. Note: This error message is only valid for the PSTYPE post-processor.