\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