Errata for PostScript Language Reference, third edition and for PostScript 3 version 3010 and 3011 Product Supplement ----------------- Copyright (c) 2000 Adobe Systems Incorporated. All rights reserved. Last modified: 8 December 2000 General ------- The former Tech Note 5085 contained errata that applied to PostScript Language Reference, second edition. All of those errata were incorporated into the third edition and do not appear here. Some of the Red Book errata given here also appear in Appendix E of the 3010 and 3011 Supplement. ======== Red Book ======== Chapter 2 --------- Chapter 3 --------- Page 135, Table 3.18, there should be an additional row, immediately preceding the last row that emits EOD. The input sequence is 66, the output code is 66, and no code is added to the table (since there is no next input character). Page 136, near top, the encoded result should be: 80 0B 60 50 22 0C 0C 85 01 In the next paragraph, "9-bit codes" should be "(UnitLength+1)-bit codes". Page 137, near top, the first encoded result should be: 80 0B 60 50 22 0C 0C 85 01 The second encoded result should be: 00 5B 08 14 18 64 20 04 68 Chapter 4 --------- * Page 212, figure 4.5: There is an extraneous horizontal line between CIEBasedDEFG and DeviceRGB. * Page 250, last full paragraph, following "...to fill an area." insert: "The order in which the tiles are painted is unspecified and unpredictable." * Pages 284-7: The following rather extensive corrections are needed in the specification of tensor-product patches. [The corrected material also appears in PDF Reference, second edition, pages 239-242.] The table above Figure 4.20 should be: P03 P13 P23 P33 P02 P12 P22 P32 P01 P11 P21 P31 P00 P10 P20 P30 Figure 4.20 should be altered accordingly to relabel all the control points according to the above table. At the top of page 285, "row i and column j" should be changed to "column i and row j". In the paragraph below the equations on page 285, all of the pij should have their i and j subscripts interchanged. All instances of "bottom" should be changed to "top" and vice versa. The four equations near the top of page 286 should be: P11 = S(1/3, 1/3) P12 = S(1/3, 2/3) P21 = S(2/3, 1/3) P22 = S(2/3, 2/3) The table on page 286 that gives the order of specifying the control points should be: 4 5 6 7 3 14 15 8 2 13 16 9 1 12 11 10 Finally, all of the xij, yij, and cij in Table 4.19 should have their i and j subscripts interchanged. Thus, the first sequence (f = 0) should be: x00 y00 x01 y01 x02 y02 x03 y03 x13 y13 x23 y23 x33 y33 x32 y32 x31 y31 x30 y30 x20 y20 x10 y10 x11 y11 x12 y12 x22 y22 x21 y21 c00 c03 c33 c30 * Page 303, end of first bullet: Append the following: "(The actual interpretation of Decode for masks is that polarity is true if the first element of Decode is greater than the second; it is false otherwise.)" * Page 305, table 4.22, InterleaveType: Append the following to the description of code 3: The data source for the mask samples must be independent of the data source(s) for the image samples; they are read at unpredictable times with respect to each other. This is the case even if the width and height of the mask and image are the same. (However, if the image has MultipleDataSources true and all data sources are procedures, the image procedures will be called in a predictable way with respect to each other, as described in Section 4.10.2, and all the image procedures will be called in order without a call of the mask procedure intervening.) * Page 307, MaskColor: The color component values must lie within the range 0 to 2^BitsPerComponent - 1. Chapter 5 --------- * Page 344, example 5.7: Change "%%DocumentNeedResources" to "%%DocumentNeededResources". * Page 349, last paragraph, first sentence: Change "two or more other characters" to "two other characters". Chapter 6 --------- Page 427, following first paragraph after table, append: "Note: The page device's default Install procedure establishes the default device-dependent graphics state parameters that are appropriate for the device. If a PostScript program replaces the Install procedure, the replacement procedure should call the original procedure as part of its execution. Otherwise, some parameters may not be initialized properly." Pages 447-9, Table 6.13, add the following trapping parameter, which was omitted inadvertently: HalftoneName name or null (Optional) Name of a Halftone resource with which to mark traps. It is recommended that the resource be defined in global VM. The Halftone resource may be used at unpredictable times, including at a lower save level than the current save level. If the entry is null or undefined, the halftone in effect just before the traps are marked will be used, which may create unexpected results. Chapter 7 --------- Chapter 8 --------- Page 542, clip: Change "the order of its segments" to "the direction and order of its segments". Page 552, cshow: Add stringwidth and charpath to the See Also list. (This is to indicate that the special glyph selection process applies to those operators as well as the ones having "show" in their names.) Page 553, currentcmykcolor: Change the last bullet to: "For any other color space, currentcmykcolor returns the color value 0 0 0 1." Page 557, currentfont: Append the following: The current font may be a descendant base font or CIDFont of a composite font that has been transformed by makefont, scalefont, or selectfont. As discussed in section 5.10.3 on p. 364, those operators do not transform the descendant base fonts or CIDFonts. In that situation, currentfont returns a copy of the original base font or CIDFont whose FontMatrix has been transformed appropriately to reflect the transformation previously performed on the parent composite font. Page 620, languagelevel: change "returns an integer" to "is an integer". Page 625, makepattern: This description needs to be revised to apply to shading patterns (PaintType 2) in addition to tiling patterns (PaintType 1). Essentially, the semantics are the same except for the actions having specifically to do with pattern cells and tiling. Page 700, stroke, following the second paragraph, insert: "Note that the above rule applies only to zero-length subpaths of the path being stroked, and not to zero-length dashes in a dash pattern. In the latter case, the line caps are always painted, since their orientation is determined by the direction of the underlying path." Page 716, version: change "returns a string" to "is a read-only string object". Appendix A ---------- Page 735, second bullet: "the source dictionary's attribute" should be "the source dictionary's access attribute". Appendix B ---------- Appendix C ---------- Appendix D ---------- Appendix E ---------- Appendix F ---------- Appendix G ---------- Bibliography ------------ Page 811, the correct URL for the Adobe Developer Relations web site is now: Index ----- Page 871, second column (and probably elsewhere): Entries for pathbox and setbox should be pathbbox and setbbox. ========== Supplement ========== Chapter 5 --------- Page 77, bottom: Should also cite Tech Note 5176, Compact Font Format Specification. Note that this kind of CIDFont dictionary (like Type 2 and 14 fonts) is generated automatically from a CFF font set; there is no way for a PostScript program to define such a font directly. Certain entries that would normally be present in a Type 0 CIDFont, such as GDBytes, FDBytes, and CIDMapOffset, are not relevant to a CFF CIDFont and are not present; other (undocumented) entries may be present. Page 80: Note that the two-byte metrics obtained from the glyph description have their high-order byte first and are interpreted as unsigned integer values in glyph space. Pages 80-81: This description incorrectly states the precedence of the various sources of glyph metric information. In fact, the Metrics, Metrics2, or CDevProc entries, if present, will override the metrics obtained from the font itself, regardless of whether those metrics came from the "vmtx" table or from the bytes at the beginning of a glyph description.