%&latex

\documentclass{ltugproc}

\usepackage{twocolumn,epsf,colordvi}
\newcommand{\tex}{\TeX}\newcommand{\latex}{\LaTeX}

\title{The Poetica Family: Fancy Fonts with \TeX\ and \LaTeX}
\author{Alan Hoenig}

\begin{document}
\def\fsize{14pt }

\maketitle

In the beginning of the `desktop publishing era', digital foundries
concentrated on making all old favorite fonts
available in digital form.  When that task was well along, they then
began to turn their attention to enhancements to these fonts, the
first group of which were expert fonts which contained things like small
capitals and all double-f\/ ligatures.  Now that an
impressive array of expert fonts has become available, a third wave
may be under way---the development of beautiful fonts which break out
of common font schemes altogether.  A prime example is the
Poetica family of fonts from Adobe.  (Another is the Mantinia faces
from the Carter and Cone foundry.)  The purpose of this presentation is to
suggest ways of typesetting with these beautiful fonts without walking
around with numerous font tables in hand.

\section{The Poetica Package}
As delivered from Adobe Systems, the Poetica fonts comprise 21~fonts in two
families.  The main font is plainly modeled after the Chancery scripts
of the Renaissance:
\begin{center}
%\leavevmode\epsffile{ehammer0.eps}
\end{center}
Why so many fonts?  There is a wide variety of plain and fancy
variants for many glyphs, odd ligatures, and special forms word
endings or beginnings.  One font contains ornaments, and another
contains nothing but different ampersands.  Using some of these fancy
characters, the above phrase might appear
\begin{center}
%\leavevmode\epsffile{ehammer.eps}
\end{center}
How can we use \TeX\ and \LaTeX\ to typeset with these fonts, using
convenient input conventions?  

Yannis Haralambous and John Plaice~\cite{omega}\ have already
demonstrated that the best way is to use a \tex\ that handles 16-bit
input.  In that way, all the raw Adobe fonts can become part of a
single, huge font associated with which would be a complex system of
ligature rules to automatically select various glyphs in appropriate
situations.  Their Omega system is one such 16-bit system, currently freely
available, which will handle such fonts, and which will handle a
Poetica super-font.  However, the fonts are so attractive that many
people will not want to wait to implement Omega, and so I present the following
discussion.  Alternatively, the clumsiness of the arrangements I
suggest may convince authors of the need to upgrade to Omega right
away!

\subsection{The Raw Package: A Closer Look}
The main package consists of four main chancery fonts.  Each has
similar lowercase alphabets, but the uppercase characters are
increasingly fancy.  An expert font contains some ligatures, superior
and inferior figures, and miscellaneous glyphs.  A small caps font and
an alternate {\sc sc} font contains upright capitals that match the
Chancery fonts.
\begin{center}
%\leavevmode\epsffile{etable.eps}
\end{center}

The second Poetica family is more interesting.  There are four swash
caps fonts, each of which contains two increasingly fancy uppercase
alphabets.
\begin{center}
% \begin{Poetica}
% \+{A B C D E *A *B *C *D *E}\\
% \++{A B C D E *A *B *C *D *E}\\
% \+++{A B C D E *A *B *C *D *E}\\
% ^-{A B C D E *A *B *C *D *E}
% \end{Poetica}
%\leavevmode\epsffile{eupper.eps}
\end{center}  
An initial swash font contains one very fancy uppercase
font, appropriate only for word beginnings.  
\begin{center}
% \begin{Poetica}
% ^{A \ B \ C \ D \ E \ F \ G \ H \ I \ J}
% \end{Poetica}
%\leavevmode\epsffile{einit.eps}
\end{center}
There are two lowercase
alternate fonts, and each of these contains several groups of
alternate forms for many lowercase characters.  
\begin{center}
% \begin{Poetica}
% 	  g k p y z\\
% \+{	g k p y z}\\
% \++{	g k p y z}\\
% \+++{	g k p y z}\\
% \++++{	g k p y z}
% \end{Poetica}  
%\leavevmode\epsffile{ealt.eps}
\end{center}
There are two each of
lowercase beginnings and endings fonts.  Each of these fonts contains
at least two forms (of certain letters only) appropriate for word boundaries.
\begin{center}
% \begin{Poetica}
% \+{	baa \ \ end \ \ hah \ \ ill \ \ ton}\\
% \++{	baa \ \ end \ \ hah \ \ ill \ \ ton}\\
% \+++{	baa \ \ end \ \ hah \ \ ill \ \ ton}\\
% \++++{	baa \ \ \ end \ \ \ hah \ \ \ ill \ \ \ ton}
%\leavevmode\epsffile{ebound.eps}
% \end{Poetica}
\end{center}  
A special ligature font contains fancy forms of the familiar
f-ligatures, as well as many more ligatures not normally used.
\begin{center}
% \begin{Poetica}
% \+{ff} \ \++{ff} \ \+++{ff} \ \++++{ff} \ 
%   \+{fi \ fl \ ffi \ ffl \ cl \ ct \ ft \ ll \ ^--{ll} \ ^{ll} \ sp \ st }
%  \  \++{st} \ \+++{st} \ ^{st}  
%   %^---{st} ^--{st} ^-{st}
% \end{Poetica}
%\leavevmode\epsffile{eligs.eps}  
\end{center}
Finally, separate fonts contain batches of ornaments and bunches of
ampersands. 
\begin{center}
% \begin{Poetica}
% \fontshape{orn}\selectfont A B C D E a b c d e\\
% \fontshape{amp}\selectfont A B C D E a b c d e
% \end{Poetica}
%\leavevmode\epsffile{eorns.eps}  
\end{center}

It's clear that there are many ways to represent a single character,
depending on its location in a word, whether it's upper- or lowercase,
and the degree of swash that an author desires.  The first example
also makes clear that a little swash goes a long way, and a convenient
font selection scheme would make it convenient to typeset in some
single `background' font from which it would be easy to ascend or
descend to fancier or plainer fonts for isolated characters.  We'd
also like to be able to do this without having to lug around sheaves
of font tables with us.

The next section details the font scheme that I propose for these
fonts.  I will then show how to use \TeX's virtual font mechanism to
create these fonts.

\section{Fonts, Fonts, Fonts}
Poetica contains a total of sixteen---16!---uppercase alphabets.
These include:

\begin{itemize}
\item four alphabets matching the four original chancery fonts;

\item eight increasingly fancy swash alphabets (these appear in four
fonts so that each font contains a pair of uppercase alphabets, one of
which is in the lowercase position);

\item a super-fancy swash alphabet suitable only for initial letters
(if then);

\item two small caps alphabets; and

\item a small caps alternate alphabet (although this is a sparse
set---only 15~letters are represented.
\end{itemize}

I felt able to organize these in twelve fonts:
\begin{itemize}
\item four Chancery fonts;

\item four swash fonts, each incorporating two uppercase alphabets;

\item one super-swash font;

\item two small caps fonts; and

\item two titling fonts.
\end{itemize}

This is still a formidable array of fonts, and I'll say more later on
about ways of dealing with them all.  But at this point, I'll indicate
that I shoehorned two swash uppercase alphabets into each font by
virtue of \TeX's ligature mechanism.  Most of the time, uppercase
glyphs appear only at the beginning of a word, so I created the fonts
so that \verb=*= followed by a capital letter generates the alternate
capital.  For example, if I type 
\[\hbox{\tt A B C D E}\]I might get
$$
%\hbox{\fontsize{18}{22}\fontfamily{poet}\Fontshape{f2}A B C D E}
%\epsffile{eabcde.eps}
$$
but if I type 
\[\hbox{\tt \char`\*A \char`\*B \char`\*C \char`\*D \char`\*E}\] 
in the same font, I get 
$$
%\hbox{\fontsize{18}{22}\fontfamily{poet}\Fontshape{f2}*A *B *C *D *E}
%\epsffile{east.eps}
$$
instead.

The uppercase alphabets dictate the nature of their fonts.  They 
quite clearly become increasingly fancy, so it makes sense to
apportion some of the other special characters to these fonts in order
of increasing fanciness.  It's straightforward via Alan Jeffrey's {\tt
fontinst} package to add these characters to the fonts.  

\subsection{Word Boundaries}
Many of the characters provided by Adobe belong specially to the
beginnings or endings of words, and the {\tt boundarychar} mechanism
of \tex3 makes this easy to implement, but not as easy as I expected
for the following interesting reason.

Human readers are quite specific in what constitutes a word boundary.
Most often it would be a space or punctuation, but \tex3 is more
restrictive: essentially any consecutive string of characters is a
word.  This means that \verb=te\it st= is two words from \tex's point of
view---that is, a font change in the middle of a word creates two word
boundaries.  Typesetting with fonts containing fancy word boundary
glyphs requires dealing with this fact.

Here is an example of automatic boundary glyph selection.  
Notice here how the forms of the `m' and `t'
change depending on their positions within a word.  With the proper
fonts selected, I simply typed {\tt mat tom-tom} to get
$$
%\hbox{\fontsize{18}{22}\fontfamily{poet}\Fontshape{F3}mat\ \ \ \
%tom-tom}
%\epsffile{etomtom.eps}
$$

\subsection{Supporting Macros}
These fonts are beautiful, but I needed some input conventions that
would allow me to increase or decrease the amount of fanciness in some
easy way.

I began by appropriating from mathematics 
the characters \verb=^=, \verb=_=, \verb=+=,
and \verb=-=; this is no loss, as I felt it unlikely that I'd be doing
math in conjunction with Poetica.  (However, some of the Chancery
capitals do
make a good candidate as a math calligraphic alphabet.  That is a
different and easier problem.)  

Typesetting is done within the Poetica environment:
\begin{verbatim}
\begin{Poetica}
 ...
\end{Poetica}
\end{verbatim}
(I am assuming the conventions of \LaTeX2e, so I have access to the
New Font Selection Scheme) which automatically switches to the
Poetica family.  All the fonts are in the medium series \verb=m=,
selected automatically, and the fonts themselves are divided into
three 
groups of shapes.  (Adobe provides no bold face fonts in this family.)
`Normal' fonts comprise four fonts, with font
shapes of \verb=n0=, \verb=n1=, \verb=n2=, and \verb=n3=.  Two groups
of five swash fonts apiece, with shape designations \verb=f0= through
\verb=f4= (\verb=f==fancy) and \verb=F0= through
\verb=F4= (\verb=f= or \verb=F==fancy) encompass the ornate fonts I
set up.  The F-shapes incorporate word
boundary glyphs, while f-shapes do not. 
The higher the number, the fancier the font.  There is
also a small caps font (shape \verb=c= and \verb=c1=) 
and two titling fonts (shapes
\verb=t= and \verb=t1=).  The default font has the shape
\verb=n3= at an eighteen-on-twenty-two point size: 
\begin{center}
% \begin{Poetica}
% Alpha-Betic Constants Demand Emphasis. 12345 67890\end{Poetica}
%\leavevmode\epsffile{ealpha.eps}
\end{center}

Although these fonts can be accessed by the usual NFSS commands, the
usual \verb=\fontshape= and \verb=\selectfont= commands are
discouraged in favor of a single \verb=\Fontshape= command which
combines \verb=\fontshape= and \verb=\selectfont= together with some
bookkeeping, the reason for which will shortly become clear.  It will
be necessary to do any font sizing with \verb=\fontsize= (in the usual
way) before calling \verb=\Fontshape=.

But even \verb=\Fontshape= is too verbose.  Most of the time, we are
content to typeset virtually everything in a piece of text in the same
font, except from time to time we may want to make one or two
characters more or less fancy than the default.  Although the usual
font changing could be invoked, it's a bit messy to do that for a
single character here and there.  I implemented a scheme which seemed
to me ideal from the point of view of making these spot changes, and
for that reason different meanings were assigned to \verb=^=,
\verb=_=, \verb+|+, \verb=\+=, and \verb=\-=. The control sequences
\verb=\+= and \verb=\-= take the next character (or group) and raise
the level of fanciness up or down by one font.  If that is not
sufficient, simply add additional \verb=+=s and \verb=-=s.  The
symbols \verb=^= and \verb=_= now mean go up to the fanciest and
plainest fonts respectively (that is, shapes \verb|n0| and \verb|f4|),

but the \verb=+= and \verb=-= convention
also holds here.  The vertical bar is now equivalent to the
\verb=\noboundary= command.  There are also two additional commands:
\verb|\wordbounds| and \verb|\nowordbounds|,
 which select the F-shape or f-shape
fonts respectively.

Thus, if we type
\begin{verbatim}
\begin{Poetica}
For every action there is a reaction
\end{Poetica}
\end{verbatim}
we get
\begin{center}
% \begin{Poetica}
% For every Action there is a Reaction
% \end{Poetica}
%\leavevmode\epsffile{eact1.eps}
\end{center}
But if we type
\begin{verbatim}
\begin{Poetica}
^For every \+A^{ct}{\i}on\ \ 
  ^there i^s a 
  ^--{*R}ea^--{ct}{\i}o^n
\end{Poetica}
\end{verbatim}
we get instead
\begin{center}
% \begin{Poetica}
% ^For every \+A^{ct}{\i}on\ \ ^there i^s a 
%   ^--{*R}ea^--{ct}{\i}o^n
% \end{Poetica}
%\leavevmode\epsffile{eact2.eps}
\end{center}
Actually, the markup here is almost as intrusive as normal \TeX\ markup
would be, but normal Poetica markup would not be this excessive.  I
had great fun generating this sample, adding and subtracting \verb=+=s
and \verb=-=s until there was sufficient demonstration of these
conventions as well as a demonstration of several different glyphs.
Note the several \verb=ct= ligatures, and other alternate letterforms.

Let's see why special treatment of word bounds is necessary.  If we
re-typeset this example with \verb|\wordbounds| in effect, we get
\begin{center}
% \begin{Poetica}\wordbounds
% ^For every \+A^{ct}{\i}on\ \ ^there i^s a 
%   ^--{*R}ea^--{ct}{\i}o^n
% \end{Poetica}
%\leavevmode\epsffile{eact3.eps}
\end{center}
Notice the unfortunate appearance of certain boundary glyphs in the
middle of real words due to the word boundaries formed every time
there is a font shift.

Incidentally, to get an idea
of the possibilities of swash I first typed
\begin{verbatim}
\begin{Poetica}
^{For every action 
  there is a Reaction}
\end{Poetica}
\end{verbatim}
to get
\begin{center}
% \begin{Poetica}
% ^{For every action there is a Reaction}
% \end{Poetica}
%\leavevmode\epsffile{eact4.eps}
\end{center}

Let me include two more examples.  If we type
\begin{verbatim}
\newsavebox{\mybox}
\newlength{\mywd}\newlength{\myht}
\newlength{\mydp}
\setlength{\fboxrule}{1.2pt}
\savebox{\mybox}
  {\fbox{\begin{minipage}{.5\textwidth}
  \begin{center}\begin{Poetica}
  \fontsize{26}{34}\selectfont
  ^--{*A}nd if \+{y}ou wi^{ll} con-\\
  sider a\++{ll} t\++h{\i}ngs, 
    {\wordbounds\++y}ou\\
  will find that ^{th}ose\\
  whi^{ch} are ^goo^--d an^d\\
  use\++ful a\++lways ^have\\
  ^{th}e grace of beaut^y\\
  in ^{th}em as we^--{ll}.\\
  {\renewcommand\.{\hspace{1.8pt}}%
  \fontshape{t1}\fontsize{16}{24}
  \selectfont 
    c\.a\.s\.t\.i\.g\.l\.i\.o\.n\.e}\\[1pc]
  \fontsize{30}{38}\orn{78}
  \end{Poetica}\end{center}
\end{minipage}}}
\settowidth{\mywd}{\usebox{\mybox}}
\settoheight{\myht}{\usebox{\mybox}}
\settodepth{\mydp}{\usebox{\mybox}}
\noindent\rlap{\vrule width1.1\mywd 
  height1.1\myht depth1.1\mydp}%
  \hskip.05\mywd%
  {\White{\usebox{\mybox}}}
\end{verbatim}
we get figure~\ref{castiglione}. 
Notice that the titling fonts have to be accessed explicitly (ditto
for the small caps fonts); they are not part of the bump up scheme
elsewhere in use.  We selected a special ornament via the \verb|\orn|
command; there is a corresponding \verb=\amp= command to select
ampersands for the special ampersand font.  I guess you will need to
have access to the ornament and ampersand font tables to know which
characters to choose.  Since I am using Tom Rokicki's {\tt dvips}
post-processor, I use the {\tt colordvi} package.  I get the fancy
effect here by setting a big, black rule box, and overprinting the
text in \verb|\White| ink.  Actually, only the indented material sets
type; the remaining lines set things up to print white on black.

\begin{figure*}
% \newsavebox{\mybox}
% \newlength{\mywd}\newlength{\myht}\newlength{\mydp}
% \setlength{\fboxrule}{1.2pt}
% \savebox{\mybox}{\fbox{\begin{minipage}{.5\textwidth}
% \begin{center}\begin{Poetica}\fontsize{26}{34}\selectfont
% ^--{*A}nd if \+{y}ou wi^{ll} con-\\
% sider a\++{ll} t\++h{\i}ngs, {\wordbounds\++y}ou\\
% will find that ^{th}ose\\
% whi^{ch} are ^goo^--d an^d\\
% use\++ful a\++lways ^have\\
% ^{th}e grace of beaut^y\\
% in ^{th}em as we^--{ll}.\\
% {\renewcommand\.{\hspace{1.8pt}}%
% \fontshape{t1}\fontsize{16}{24}\selectfont 
%   c\.a\.s\.t\.i\.g\.l\.i\.o\.n\.e}\\[1pc]
% \fontsize{30}{38}\orn{78}
% \end{Poetica}\end{center}
% \end{minipage}}}
% \settowidth{\mywd}{\usebox{\mybox}}
% \settoheight{\myht}{\usebox{\mybox}}
% \settodepth{\mydp}{\usebox{\mybox}}
\begin{center}
% \noindent\rlap{\vrule width1.1\mywd height1.1\myht depth1.1\mydp}%
%   \hskip.05\mywd%
%   {\White{\usebox{\mybox}}}
%\leavevmode\epsffile{ebeauty.eps}
\end{center}
\caption{\label{castiglione}One example.}
\end{figure*}

And a final example.  To get figure~\ref{shakes}, 
I typed
\begin{verbatim}
\newdimen\W
\newcommand{\dropcap}[1]{\setbox0=
  \hbox{\fontsize{44}{48}
  \selectfont#1\ }%
  \setbox0=\hbox to.5\wd0{\hss\box0}%
  \W=\wd0 \gdef\.{\noindent\hskip\W}
  \noindent\vbox to10pt{\box0 \vss}}
\begin{center}
\begin{Poetica}\fontsize{23}{31}
  \selectfont
  \fontsize{30}{32}\selectfont 
    _{A Sonne}{\wordbounds^--{|t}}
    \\[3pt]
  {\fontsize{14}{21}\fontshape{c}
    \selectfont 
    William Shakespeare}
\end{Poetica}\end{center}
\begin{verse}\begin{Poetica}
  \dropcap{^W}hen, in disgrace with 
    \+{*F}ortune and men's eye^{s},\\
  \.I a^--{ll} alone beweep my 
    outca\++{st} \ ^{st}ate,\\
  And trouble deaf heaven with my 
    bootle^--{ss} cries,\\
  \+And look upon myself, and 
    curse my fate,\\
  Wishing me like to one more 
    ri^{ch} in ^-{h}ope,\\
  Featured like him, like him 
    with ^{f}riends posse^--{st},\\
  Desiring this man's ar^---{t} 
    and that man's sco^---{p}e,\\
  \+With what I most enjoy 
    contented least;\\
  Yet in these thoughts myself 
    almost de^--{sp}{\i}sing---\\
  Haply I think on ^{th}ee: 
    and then my \+++{st}ate,\\
  Like to the \+Lark at break 
    of day arisin{\wordbounds^g}\\
  \+From su^-{ll}en earth, 
    sings hymns at \++Heaven's 
    gate;\\[6pt]
  \quad ^For ^{th}y sweet \ \ \ 
    {\wordbounds^--l}ove rememb'red 
    suc^-{h} weal^{th} brings\\
  \quad ^{Th}at t^-{h}en \++++{*I} 
    scorn to ^{ch}ange my ^-{st}ate 
    with ^-{*K}ings.\\
\end{Poetica}
\end{verse}
\end{verbatim}
The Poetica macro file, very short, appears in Appendix~A.

\subsection{Creating Poetica Virtual Fonts}

The tool of choice for creating virtual fonts is the {\tt fontinst}
package of Alan Jeffrey.  In the presence of Ascii files containing
font information, running the installation file through \TeX\ creates
the {\tt.vpl} files from which the actual {\tt.vf} virtual fonts are
rendered.  The font information should be in three types of files.
\begin{enumerate}
\item Metric files---files giving information about the sizes and
kernings of each glyph.  typically, these are files with extensions
{\tt.pl} (\TeX\ fonts) or {\tt.afm} (type~1 outline fonts).  The {\tt
fontinst} package reads these files and creates its own metric
{\tt.mtx} files.   Other metric information needs to be supplied in
additional {\tt.mtx} files using commands following the standard {\tt
fontinst} syntax.

\item Encoding files, which say how the glyphs should be arranged in
the font.  In addition to this {\em encoding\/} information, ligature
information is also found here.

\item Miscellaneous additional files, usually metric in nature.  
\end{enumerate}

The {\tt fontinst} installation file has the following structure.
\begin{verbatim}
\input fontinst.sty
\installfonts
  \installfamily{OT1}{poet}{}
     \installfont{pof3}{posl0,unposl3,
                        poslaii0,poslai0,
                        unlai1,
                        possciv0,unsc,
                        setfont1,
                        pociii0,latinpoe}
        {OT1swa}%
        {OT1}{poet}{m}{f3}{} 
     ...
     ...
\endinstallfonts
\bye
\end{verbatim}
The lines of ellipses represent (many) additional {\tt\string\installfont}
commands (not shown here).  These instructions provide for a font
family called {\tt poet} which uses {\tt OT1} (original \TeX)
encoding.  One font in that family is called {\tt pof3} and
corresponds to medium series {\tt m} and font shape {\tt f3} within
this family.  

The second and third parameters of the \verb=\installfont= command
present a list of metric and encoding files that {\tt fontinst} will
need to construct the virtual fonts.  The cryptic nature of these file
names is imposed, as is so often the case, by the $8+3$ file name
structure of MS-DOS.  Here's a brief description of these files.

\begin{itemize}
\item All file names {\tt po...} are {\tt.afm} files containing metric
information about one of the 21 Poetica raw fonts.  The names {\tt
posl0}, {\tt poslaii0}, {\tt poslai0}, {\tt poslbii0}, {\tt posleii0},
{\tt poslei0}, {\tt possciv0}, and {\tt pociii0} belong to the
ligature, the second lowercase alternates, the first lowercase
alternates, the second lowercase beginning letters, the second
lowercase endings, the first lowercase endings, the fourth
supplementary swash caps, and Chancery font number~3.

\item Because the order in which the information is read by {\tt
fontinst}, we need some mechanism for removing superfluous information
from {\tt fontinst}'s memory.  The {\tt un....mtx} files perform this
function.  See below for an extensive description of this process. 
Remember that the {\tt fontinst} macros have been crafted
so that information once read is not over-written by later information.
\end{itemize}

% \newdimen\W
% \newcommand{\dropcap}[1]{\setbox0=\hbox{\fontsize{44}{48}\selectfont#1\ }%
%   \setbox0=\hbox to.5\wd0{\hss\box0}%
%   \W=\wd0 \gdef\.{\noindent\hskip\W}\noindent\vbox to10pt{\box0 \vss}}
%     \begin{center}
%     \begin{Poetica}\fontsize{23}{31}\selectfont
%     \fontsize{30}{32}\selectfont _{A Sonne}{\wordbounds^--{|t}}\\[3pt]
%     {\fontsize{14}{21}\fontshape{c}\selectfont William Shakespeare}
%     \end{Poetica}\end{center}
%     \begin{verse}\begin{Poetica}
%     \dropcap{^W}hen, in disgrace with \+{*F}ortune and men's eye^{s},\\
%     \.I a^--{ll} alone beweep my outca\++{st} \ ^{st}ate,\\
%     And trouble deaf heaven with my bootle^--{ss} cries,\\
%     \+And look upon myself, and curse my fate,\\
%     Wishing me like to one more ri^{ch} in ^-{h}ope,\\
%     Featured like him, like him with ^{f}riends posse^--{st},\\
%     Desiring this man's ar^---{t} and that man's sco^---{p}e,\\
%     \+With what I most enjoy contented least;\\
%     Yet in these thoughts myself almost de^--{sp}{\i}sing---\\
%     Haply I think on ^{th}ee: and then my \+++{st}ate,\\
%     Like to the \+Lark at break of day arisin{\wordbounds^g}\\
%     \+From su^-{ll}en earth, sings hymns at \++Heaven's gate;\\[6pt]
%     \quad ^For ^{th}y sweet \ \ \ 
% 	{\wordbounds^--l}ove rememb'red suc^-{h} weal^{th} brings\\
%     \quad ^{Th}at t^-{h}en \++++{*I} scorn to ^{ch}ange my ^-{st}ate 
% 	with ^-{*K}ings.\\
%     \end{Poetica}\end{verse}
\begin{figure*}
\begin{center}
%\leavevmode\epsffile{esonnet.eps}
\end{center}
\caption{\label{shakes}A second example.}
\end{figure*}

\section{Crafting a Font}

Let's consider in greater detail the construction of the font we
called {\tt pof3}.  The first thing {\tt fontinst} does is read the glyph
information pertaining to the ligatures ({\tt posl0}), whose glyphs
have been named according to the standard Adobe encoding vector.  For
example, position~65---A---of the ligature raw font \verb=posl0= is
occupied by the ligature `Ch' and is called `A' in the {\tt.afm} file.

This is bad, and a violation of Adobe's own standards!  Such a glyph
should, by rights, be named `Ch' since that's what the letterform
looks like and not `A'.   
If something is not done, the real `A' (in {\tt possciv0}) will never
be typeset and every `A' in the source document will appear as `Ch' in
the typeset output.  (Do you see why?  {\tt fontinst} pays attention
only to the first definition of a letterform.  Since the default
nomenclature creates an `A' out of a C-h ligature, this becomes the
definition of `A' and a proper definition of A later on will be ignored.)
Therefore, we must read a file {\tt
unposl3.mtx} which saves the ligature information under a more
meaningful name and frees up the `A' slot for the real glyph.  Two lines of
this file might read
\begin{verbatim}
\resetligglyph Ch A
\unsetglyph A
\end{verbatim}
where we have previously entered the definition
\begin{verbatim}
  \setcommand\resetligglyph#1#2#3{
    \setleftkerning{#1#2}{#1}{1000}
    \setrightkerning{#1#2}{#2}{1000}
    \resetglyph{#1#2} 
      \glyph{#3}{1000}
    \endresetglyph
  }
\end{verbatim}
In this case, a new glyph called `Ch' is defined to be equivalent to
`A'.  This new glyph is also given some appropriate kerning
information.  Once that definition has been fixed, the `A' glyph has been made
free for later use.

This is the philosophy behind the next several files.  Special
alternate forms, beginning forms, and ending forms are carefully
ingested, and various {\tt un...} files save glyphs under more
appropriate names and free up poorly named slots.  Finally, the
uppercase letters are taken from a swash font, some of the alternate
characters are declared to be equivalent to letter glyphs (in file
{\tt setfont1.mtx}), the remaining lowercase
and other characters are taken from the Chancery~3 font {\tt pociii0},
and {\tt latinpoe.mtx} lists the characters in the font.  This
concludes the metric portion.

Anything not involving measurement is by definition the province
of an encoding file.  The file lays out the order of glyphs in a
font---the encoding vector---and arranges for ligature formation.  For
example, 
\begin{verbatim}
\setslot{c}
   \Ligature{h}{ch}
   \Ligature{k}{ck}
   \Ligature{l}{cl}
   \Ligature{t}{ct}
   \atendofword{cend}
\endsetslot
\end{verbatim}
arranges things with \TeX\ so that `c' followed by `h' are replaced by
the special `ch' ligature if the `ch' glyph exists.  
If a `c' appears at the end of a word, it
is replaced by a special final c glyph, here called `cend'.  Special
forms for the beginning of a word are set up by 
\begin{verbatim}
\setslot{boundarychar}
   \atstartofword{b}{bbeg}
   \atstartofword{e}{ebeg}
    ...
   \atstartofword{w}{wbeg}
   \atstartofword{y}{ybeg}
\endsetslot
\end{verbatim}
We use the {\tt fontinst} definitions
\begin{verbatim}
\setcommand\Ligature#1#2{% cond'l lig
 \ifisglyph{#2}\then
  \ligature{LIG}{#1}{#2}\fi}
\setcommand\atendofword#1{
  \Ligature{boundarychar}{#1}}
\setcommand\atstartofword#1#2{
  \Ligature{#1}{#2}}
\end{verbatim}
to control these special ligatures.

The {\tt fontinst} files will have been 
posted on the CTAN archive network for anonymous file transfer.

\appendix
\section{The Poetica Macros}

\begin{verbatim}
%%% Package File poetica.sty
\newcount\poetic \newcount\poetbound 
  \poetbound=4
\newcount\poetceiling \poetceiling=8
\newcount\poetfloor   \poetfloor=0

\def\wordbounds{\def\fancyshape{F}}
\def\nowordbounds{\def\fancyshape{f}}
  \nowordbounds % default

\def\parsefontshape#1#2{\poetic=-1
  \if f#1\poetic=\poetbound 
    \advance\poetic by#2 \fi
  \if n#1\poetic=\poetfloor 
    \advance\poetic by#2 \fi
}
\def\setshape{% input is \poetic
  \ifnum\poetic<0 \else 
    \ifnum\poetic<\poetbound 
       \edef\fshape{n\the\poetic}%
      \else\advance\poetic by-\poetbound 
       \edef\fshape{\fancyshape\the\poetic}%
    \fi
  \fi
}
\newcommand{\Fontshape}[1]{
  \parsefontshape#1%
  \fontshape{#1}\selectfont}
\newenvironment{Poetica}{%
  \begingroup\fontencoding{OT1}
  \fontfamily{poet}\fontsize{18}{22}
  \fontseries{m}\Fontshape{n3}
  \poetic=3 \setshape}{\endgroup}
\let\dhyph=\- \let\mytabs=\+ 
\let\oldhat=^ \let\oldsub=_ 
  \let\oldvert=|
\catcode`\^\active \catcode`\_\active 
\catcode`\|\active \def\|{\oldvert}
  \let|=\noboundary
\newcount\INC \INC 1 
\def^{\bgroup \let\compare=-
  \let\bump=\bumpdown \INC-1 
  \poetic=\poetceiling 
  \afterassignment\getnextchar 
  \global\let\nexttok= }
\def_{\bgroup \let\compare=+
  \let\bump=\bumpup \INC 1 
  \poetic=\poetfloor 
  \afterassignment\getnextchar 
  \global\let\nexttok= }
\def\-{\bgroup \let\compare=-
  \let\bump=\bumpdown \INC-1 \bump
  \afterassignment\getnextchar 
  \global\let\nexttok= }
\def\+{\bgroup \let\compare=+
  \let\bump=\bumpup \INC 1 \bump
  \afterassignment\getnextchar 
  \global\let\nexttok= }

\def\getnextchar{%
  \if\compare\nexttok 
    \bump \let\nextact\grabchar
  \else
    \edef\nextact{
      \noexpand\typeset
      \noexpand\nexttok}% 
  \fi \nextact
}
\def\grabchar{\afterassignment
  \getnextchar \let\nexttok}
\def\bumpdown{\advance\poetic \INC 
  \ifnum\poetic<\poetfloor 
  \poetic\poetfloor \fi}
\def\bumpup{\advance\poetic \INC 
  \ifnum\poetic>\poetceiling 
    \poetic\poetceiling \fi}
\def\typeset#1{\setshape\fontshape{\fshape}
  \selectfont #1\egroup}

%% ornaments and ampersands

\newcommand{\orn}[1]{
  {\fontshape{orn}\selectfont\symbol{#1}}}
\newcommand{\amp}[1]{
  {\fontshape{amp}\selectfont\symbol{#1}}}

\endinput
\end{verbatim}

\begin{thebibliography}{9}

\bibitem{omega}Y. Haralmbous and J. Plaice.  {\em First applications
of $\Omega$.}  {\it TUGboat} {\bf 15} (1994), 3, 344-352.

\end{thebibliography}

\end{document}

