Path: utzoo!attcan!uunet!husc6!bloom-beacon!mit-eddie!bu-cs!purdue!decwrl!adobe!ondine!greid From: greid@ondine.COM (Glenn Reid) Newsgroups: comp.lang.postscript Subject: Re: Document structuring conventions V2 Message-ID: <3934@adobe.COM> Date: 23 May 88 17:51:52 GMT References: <358@softway.oz> Sender: news@adobe.COM Reply-To: greid@ondine.UUCP (Glenn Reid) Organization: Adobe Systems Incorporated, Mountain View Lines: 39 This question was posed recently about the Adobe Document Structuring Conventions. The questions were good ones, and frequently asked. There is further discussion of document modularity and structure in the Green Book, as well ("PostScript Language Program Design", Addison-Wesley). >In relation to the DocumentNeededFonts and >DocumentSuppliedFonts comments, can "(atend)" be validly >specified? Yes. >In regard to the requirement that no executable code appear in >the prologue (ie between EndComments and EndProlog), just what >does "executable" mean? It is ok to use "def" to define >functions, and presumably variables. Is anything else >condidered "non-executable" code? Yes. Anything which does not affect the state of the interpreter is OK in the prologue. Changes to VM are not considered changes to the state. For example, it is okay to compute the value of some constant and store that value in a dictionary. It is not okay to set the current gray value or the current font, or to leave something on the dictionary or operand stacks. >Where does one put executable code that must appear at the >beginning of your document? Presumably after EndProlog, but >before the first Page comment, though nothing in any of the >documentation that I've seen explicitly says this. On page 9 of the structuring conventions document there are comments called %%BeginSetup and %%EndSetup which address this directly. This section should be between the %%EndProlog and the first %%Page comment, as you point out. There is also a %%BeginPageSetup and %%EndPageSetup pair of comments, for page-level setup code. I hope this helps. Glenn Reid Adobe Systems