orthlieb@adobe.COM (Carl Orthlieb) (07/14/90)
I talked to our font guru about the apparent inconsistency. >jdf@lri.lri.fr (Daniel Fekete) writes: >In the description of the Flex feature, there seems to be a mistake. >The code provided at the end of the book does not seem to match the >description of page 77. > >"Add the final parameters and call to Subrs entry 0. The First >parameter declares the size [...]. The second and third numbers are >the final coordinate [...]" > >Whereas the Flex routine defined in Appendix 3 (page 92) line 32 >starts by binding the parameter /dmin, then /epX and /epY (standing >for "end point X" and "end point Y" I guess). > >Did I miss something or is there an error somewhere, and in that case, >who is right ? The question regarding the apparent inconsistency in the Type 1 Book between the text description (page 77) of the Flex Mechanishm and the PostScript code on Page 92, can be explained as follows: The arguments shown on page 77 get interpreted by the Type 1 BuildChar interpreter, and arguments are pushed on the Type 1 BuildChar Operand Stack. The subsequent call to othersubr 0 results in a call to the PostScript Interpreter (as opposed to the BuildChar interpreter) in order to interpret the PostScript routine used for the Flex mechanism. The description of the callothersubr operator, on page 55, explains that when the arguments are transferred from the BuildChar operand stack to the PostScript operand stack, that the argument order will be reversed. At that point, the size parameter will be on the top of the stack, followed by x and y coordinates, which is the order in which they are def'd in the procedure. Terry