\def\LaTeX{L\raise.42ex\hbox{\sc\kern-.45em A}\kern-.15em\TeX} \let\latex=\LaTeX \def\fLaTeX{L\raise.42ex\hbox{\sc\kern-.39em A}\kern-.10em\TeX} \font\sc=cmr7 \def\it{\fam\itfam\font\sc=cmti7 \tenit} \def\bf{\fam\bffam\font\sc=cmbx7 at 7pt\tenbf} \def\bul{\leavevmode\llap{\vrule height.5em width.5em depth0pt\hskip.5em}} \def\Textures{{\it Textures}} \let\textures=\Textures \def\amstex{{\the\textfont2 A}\kern-.1667em\lower.5ex\hbox {\the\textfont2 M}\kern-.125em{\the\textfont2 S}-\TeX} \def\ams{{\the\textfont2 A}\kern-.1667em\lower.5ex\hbox {\the\textfont2 M}\kern-.125em{\the\textfont2 S}} \font\Bsym=cmbsy10 at 28pt \font\bbsym=cmbsy10 at 18pt \def\amstexb{{\bbsym A}\kern-.1667em\lower.5ex\hbox {\bbsym M}\kern-.125em{\bbsym S}-\TeX} \def\amsb{{\bbsym A}\kern-.1667em\lower.5ex\hbox {\bbsym M}\kern-.125em{\bbsym S}-\TeX} \def\amsB{{\Bsym A}\kern-.1667em\lower.5ex\hbox {\Bsym M}\kern-.125em{\Bsym S}} \font\bsym=cmbsy10 at 10.5pt \def\amstexbh{{\bsym A}\kern-.1667em\lower.5ex\hbox {\bsym M}\kern-.125em{\bsym S}-\TeX} \def\amsbh{{\bsym A}\kern-.1667em\lower.5ex\hbox {\bsym M}\kern-.125em{\bsym S}} \hoffset-.25in \voffset-.25in \newdimen\pagemargin \pagemargin=1cm \newdimen\pageheight \pageheight=285mm \advance\pageheight by -2\pagemargin \newdimen\pagewidth \pagewidth=190mm \advance\pagewidth by -2\pagemargin \newdimen\headcolumn \headcolumn=.3\pagewidth \newdimen\bodycolumn \bodycolumn=.7\pagewidth \vsize\pageheight % already includes top/bottom margin \raggedbottom \pretolerance=1000 \hyphenation{typeset typeset-ter typeset-ting Modern Post-Script Textures Classic Hyper-Card pro-gram-mable} \clubpenalty=10000 \widowpenalty=\clubpenalty \hyphenpenalty=100 \doublehyphendemerits=10000000 \hsize=\pagewidth \topskip 20pt \leftskip=\headcolumn \parskip=.5\baselineskip \rightskip0pt plus .1\hsize \emergencystretch .05\hsize %%%%% \font\chapterfont=HelveticaB at 18pt %frutiger bold \font\headfont=HelveticaB at 12pt %frutiger bold \font\subfont=Helvetica at 8pt %frutiger \font\pagefont=HelveticaB at 10.5pt %frutiger bold \font\bignumfont=HelveticaB at 20pt %frutiger bold \font\tt=timesb at 10.5pt \font\bodyfont=times at 10.5pt \font\tenit=timesi at 10.5pt \font\tenbf=timesb at 10.5pt \font\met=logo10 at 12pt \font\tmfont=cmr17 at 4.5pt \def\tm{\raise4pt\hbox{\tmfont TM}} \font\btmfont=cmbx12 at 6pt \def\btm{\raise4.5pt\hbox{\btmfont TM}} \font\mbsy=cmbsy10 \def\chaptertype{\chapterfont\font\sc=HelveticaB at 12pt \let\latex=\fLaTeX\baselineskip26pt\spaceskip0pt} \def\headtype{\headfont\font\sc=frutibol at 6.5pt \let\latex=\fLaTeX\baselineskip 13pt\spaceskip0pt} \def\subtype{\subfont\baselineskip 13pt} \def\bodytype{\bodyfont\baselineskip 13pt} \def\headpar{\rightskip30pt plus4em\parindent0pt} \let\subpar=\headpar \def\bodypar{\rightskip0pt plus4em\parindent0pt} \bodytype \parindent=0pt \def\chapter#1#2\par{{\vfill\eject\leftskip=0pt\hsize\pagewidth \null\vskip-15pt\chaptertype\noindent{#1}\hfill % \uppercase {\headfont Written #2}\par \baselineskip13pt\null\hrule height 1pt\null \null\vskip-2\baselineskip}} \def\head#1#2\par{% {\leftskip=0pt \setbox0=\vtop{\hsize\headcolumn\headtype\headpar\noindent#1\par} \dp0=0pt \null\null\hrule\null\nobreak \hbox{\box0\vtop{\hsize\bodycolumn\bodyfont\bodypar \noindent\ignorespaces#2\par}}\vskip4pt}} % the 4pt is a kludge - bs \def\itemhead#1{% {\leftskip=0pt \setbox0=\vtop{\hsize\headcolumn\headtype\headpar\noindent#1\par} \dp0=0pt \null\null\hrule\null\nobreak \hbox{\box0\vtop{\hsize\bodycolumn\bodyfont\bodypar }}\vskip-16pt}} % the 4pt is a kludge - bs \def\sub#1#2\par{% {\leftskip=0pt\setbox0=\vtop{\hsize\headcolumn\subtype\subpar\noindent#1\par} \dp0=0pt \vskip12pt\hrule height.2ptwidth\headcolumn\null\nobreak \hbox{\box0\vtop{\hsize\bodycolumn\bodyfont\bodypar \noindent\ignorespaces#2\par}}}} \def\itemsub#1{% {\leftskip=0pt\setbox0=\vtop{\hsize\headcolumn\subtype\subpar\noindent#1\par} \dp0=0pt \vskip12pt\hrule height.2ptwidth\headcolumn\null\nobreak \hbox{\box0\vtop{\hsize\bodycolumn\bodyfont\bodypar }}\vskip-\baselineskip}} \def\bignumbox#1{\vbox to 0pt{\vss \hrule\hbox to 1.5\baselineskip{\vrule\hss\vbox to 1.5\baselineskip{ \vss \bignumfont\hbox{#1} \vss }\hss\vrule}\hrule}} \def\bignum#1{\vskip3.5\baselineskip\goodbreak\vskip-3.5\baselineskip \leavevmode\hangindent=2.\baselineskip\hangafter=-2\smash{% \hbox to 0pt{\hss\lower\baselineskip\bignumbox{#1}\hskip.5\baselineskip }}\ignorespaces} %\let\item=\bignum \newbox\leftbox \def\makepage{\vtop{\hbox to\pagewidth{\the\headline}\box255}} \newif\ifleft \lefttrue \output{\shipout\makepage\advancepageno} \def\emptychapter{\null\vskip-\parskip\vskip-2\baselineskip} \def\emptyhead{\null\vskip2\baselineskip} \chapter{Textures and PostScript Printers} {March 29, 1993} \head{How PostScript printers use memory} PostScript printers are shipped with two types of memory: permanent, read-only memory (ROM) that cannot be erased or over-written; and temporary random-access memory (RAM) that holds everything from printer driver instructions and specialized definitions to font and page descriptions. Since RAM is used by your print job and then cleared, or restored to its original state, for the next print job, that is the memory we want to understand and possibly manipulate for improved printer performance. The RAM on a PostScript printer is partitioned by the manufacturer. Certain portions are reserved for special uses much as application memory is allocated on your Macintosh. By far the largest portion of RAM on most printers is allocated for the PostScript descriptions of the pages of your print job. A much smaller amount, frequently around fifteen percent of total RAM, is allocated for storage of downloadable PostScript fonts. The user has little flexibility to re-allocate RAM for other printing tasks. Although you may check the ``Larger Print Area (Fewer Downloadable Fonts)'' checkbox in the ``Page Setup'' dialog to use some of the downloadable PostScript font allocation for increased page description area, there is no corresponding way to allocate more memory for downloadable PostScript fonts at the expense of page description memory. \sub{Printing with PostScript fonts} When a Textures document using PostScript fonts needs to be printed, several things happen. First, Textures determines which fonts are needed for each page. Textures then signals the operating system to download to the printer the fonts needed for the first page. The operating system, through the printer driver, queries the printer to see if the printer already has the needed fonts. Those fonts may be stored on the printer in one of three ways: in permanent, read-only memory (ROM); in temporary memory (RAM); or on a hard drive attached directly to the printer. If the required fonts are already present in one of these three locations, the Macintosh immediately begins sending PostScript page description information to the printer. If one or more of the fonts is not present in printer memory, the operating system retrieves the PostScript font description from the Macintosh and sends that description to the printer. When a PostScript font is downloaded, the descriptions for all characters in that font are sent to the printer whether you use one character from the font or all of its characters. All fonts to be used on a page are downloaded to the printer before page imaging begins. After the first page is imaged by the printer, Textures signals the operating system to download the fonts used on the second page. Since some of the fonts used on the first page may also be used on the second and subsequent pages, those fonts will already be present in printer memory and don't need to be downloaded again. Since the downloading process itself can take considerable time (30 to 60 seconds per font), printing the first page frequently takes longer than printing subsequent pages. Printing proceeds in this manner until either the print job is completed or until the printer encounters a problem it can't handle. In the case of a problem the printer can't deal with, the job is terminated. You may or may not receive notification of the problem through the printer driver or print spooler. Fonts on your Macintosh that are not needed for the document being printed are {\tt not} downloaded to the printer. \sub{Printing with bitmap fonts} When Textures was introduced, the Computer Modern fonts were not available in PostScript form. Fonts for Textures were shipped in bitmap form in font suitcases. Bitmap fonts produce smaller demands on PostScript printer memory than PostScript fonts do because Textures is able to send descriptions to the printer for only those bitmap characters that are actually being used in your document. Using one character from each of twenty bitmap fonts requires a relatively small amount of printer memory because Textures only needs to send twenty character descriptions; using one character from each of twenty PostScript fonts requires all twenty fonts to be downloaded in their entirety. \sub{Why use PostScript fonts?} There are many reasons to choose the Computer Modern PostScript fonts over the same faces in bitmap form. Some of these are: {\parindent=1em \item{$\bullet$}Bitmap fonts require far more storage (disk) space on your Macintosh than equivalent PostScript fonts; \item{$\bullet$}Modern 600dpi (dot-per-inch) PostScript printers need PostScript fonts to provide optimum resolution and scaling flexibility; and \item{$\bullet$}Many Textures users need to be able to use the Computer Modern fonts in graphics created by other Macintosh applications so that type matches the text face. Our original bitmap fonts were unsuitable for this purpose since their character mapping matched Professor Knuth's font tables in {\it The~\TeX{}book} rather than standard Macintosh font mapping. } Although these are valid reasons for switching to PostScript fonts, Textures users who switch (often along with a Textures upgrade and after several years of successful use of Computer Modern bitmap fonts) sometimes encounter frustrating printer virtual memory problems at the time of the change. \head{Printer memory problems} Although your printer may have what seems to be an adequate amount of memory to handle your print job, most PostScript printers can be overcome by a sufficiently complex job. Symptoms include a failure to print all or part of your document or a warning to reduce the number of fonts in your document. These are frequently accompanied by a VM (Virtual Memory) error or a PostScript error. Typically, you are able to print some documents, but not others, and Textures is usually able to typeset the unprintable pages or documents without difficulty. \head{Possible solutions} There are a number of possible solutions to PostScript printer virtual memory problems. The solutions we currently recommend are listed below. \sub{Add RAM} If your printer's RAM can be upgraded, the simple (and inexpensive) solution is to add RAM. This is the same process you may have used to add memory to your Macintosh, although the size and type of memory chip used in the printer may be different. In addition to your printer's manufacturer, many companies sell computer and printer memory chips, which are sometimes referred to as SIMMs. The company you buy the memory chips from should be able to advise you on the exact type of memory your printer requires. They may also be able to give you exact instructions on how it is done. \sub{Restart your print job} If your printer's RAM cannot be upgraded or if your company or university chooses not to do so, you may be able to restart your print job on, for instance, page 5 and continue on to the end of the document (or until the printer again runs out of memory). Although the RAM used for storing downloadable PostScript fonts can't be written over while your job is in progress, it is once again made available as soon as your print job ends. If you are using Plain \TeX, the chances are quite good that no single page will exceed printer memory. \sub{Add a printer hard drive} If your printer has a SCSI port, you may be able to connect a small (perhaps 20MB) hard drive to your printer and manually download the fonts you expect to use in your documents to the hard disk. (You can do this with either Apple's LaserWriter Utility or Adobe's Font Downloader.) The feedback we have received from customers who have chosen this solution is that, in addition to eliminating the need for extra memory on the printer, it enhances printing speed. Very small hard drives are not much in demand, so you may be able to obtain one for less money than the cost of printer RAM. \sub{Rebuild your format so it uses fewer fonts} Another possible solution may help you if you use \LaTeX. You can rebuild the \LaTeX\ format using a modified font selection scheme that scales all fonts from a 10-point size rather than using a separate face for each size. An {\tt lfonts.tex} file that incorporates such a scheme is on {\it Classic Textures} Disk~\#4. (The original \LaTeX\ source code is on Disk~\#2.) Simply copy the {\tt LaTeX Sources} folder from Disk~\#2 to your hard drive, replace the {\tt lfonts.tex} file it contains with the modified file from Disk~\#4, and recompile \LaTeX\ according to the instructions in our installation guide. Any files typeset on this new format will use a significantly smaller number of fonts than the same document typeset on the original \LaTeX\ format supplied with your {\it Classic Textures} disks. \sub{Use Textures 1.6 with MathTime fonts instead of Computer Modern} \Textures\ 1.6 is available for purchase bundled with MathTime fonts that place smaller demands on PostScript printer memory than the set of Computer Modern fonts. Since the Times Roman, Bold, Italic and Bold Italic fonts are already present in printer ROM and don't need to be downloaded to the printer on a job-by-job basis, that further reduces the demands on printer RAM. \sub{Use bitmap fonts} If you feel none of the above solutions is appropriate for your situation, Blue Sky Research can send you (free of charge) bitmap fonts that can be used with Textures instead of the Computer Modern PostScript fonts that were included in the {\it Classic Textures} package. There are screen display problems that can be associated with those fonts, particularly when used on a Macintosh running System 7, and they take up more room on your Macintosh hard drive than the corresponding PostScript version of the fonts. You might, however, prefer to put up with those inconveniences rather than be unable to print your documents. \sub{Use the ``Unlimited Downloadable Fonts in a Document'' checkbox in the ``Page Setup'' dialog} Checking the {\tt Unlimited Downloadable Fonts in a Document} checkbox causes the operating system to download PostScript fonts to the printer as they are used on the page. More important, perhaps, is that it also causes the font currently in printer memory to be flushed from memory as soon as the document changes fonts. Printing with the {\tt Unlimited Downloadable Fonts in a Document} option checked can be substantially slower than the normal print process. However, using this option {\tt may} allow you to print a page that is unusually complex and that would otherwise be impossible for your printer to handle. \vskip5.5in \font\namefont=times at 10pt \baselineskip=14pt \parskip=0pt \def\own{\namefont Blue Sky Research, 534 SW Third Avenue, Portland, Oregon 97204 U.S.A.} \hskip0pt\hbox to \bodycolumn{\own} \hbox to \bodycolumn{\namefont800/622-8398 \hfill 503/222-9571 \hfill Fax: 503/222-1643} \bye