summaryrefslogtreecommitdiff
path: root/fonts/poetica/doc/poetica.tex
blob: e028fd7102eb0cfec833a8615da0f4c86c99824f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
%&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}