%&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}