summaryrefslogtreecommitdiff
path: root/fonts/utilities/mathkit/mathkit.tex
blob: 88e026222d8f596121e0d81749aa135009b70dd5 (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
%&latex

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%
%% This is the file mathkit.tex, part of the MathKit package
%% (version 0.7, January , 1998) for math font 
%% generation.  (Author: Alan Hoenig, ajhjj@cunyvm.cuny.edu)
%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%% THIS IS A STANDARD LATEX + NFSS DOCUMENT FILE.

\documentclass{article}

\newcommand{\MathKit}{\textit{MathKit}}\let\mk=\MathKit
\font\logofont=logo10
\newcommand{\mf}{{\logofont META}\-{\logofont FONT}}
\def\fil|#1|{\texttt{#1}}
\def\ext|#1|{\texttt{.#1}}
\def\angles#1{$\langle${\normalfont\textit{#1}}$\rangle$}

\title{Hundreds of New Math Fonts with MathKit (version 0.7)}
\author{Alan Hoenig}
\date{May 5, 1997}

\begin{document}

\maketitle

\mk{} is an attempt to deal with typesetting mathematics
using fonts {\em other\/} than Computer Modern.  Till now, authors
have had few alternatives:
\begin{itemize}
  \item They can use CM math together with a text font family like Times
  Roman, but the result is not professional.
  \item They can use proprietary math fonts, such as MathTime or Lucida
  New Math, but that requires spending money.
  \item They can use the Euler math fonts, but these letterforms are a
  bit too idiosyncratic for some, and it is not well-known how to
  properly implement them anyhow.
\end{itemize}

\mk{} aids in the creation of math fonts which are compatible with a
text font family---that is, \mk{} can help you typeset a Baskerville
math document where the equations really look Baskerville-ish.
Depending on your choice of parameters, you also get {\bf bold} math
fonts.  \mk{} consists of a Perl script and some auxiliary files to
help an author---even one ignorant of virtual fonts or of \mf---to
perform these tasks.  (In case you have MathTime, Lucida New Math,
Euler, or Mathematica math fonts, you might wish to check out the
author's {\it MathInst\/} tools for installing these fonts.  This
material is available from the {\tt fonts/utilities/mathinst} section
of {\sc ctan}.)

The current version fixes some bugs from the previous version.  I am
grateful to several excellent and vigilant bug-catchers, including
David Ness, Dave Rebnord, Petr Sojka, Jose Iovino, and Richard
Townsend.

\section{What it does}
\mk{} takes \mf{} parameters that are appropriate to an outline font
family and uses these to create new math fonts with \mf.  The symbols
and other special characters in these new fonts look pretty good---and
are compatible with your outline fonts---but the italics and numerals
look ghastly.  Fortunately, that's not a problem.  Using virtual
fonts, we manufacture math fonts that combine the new special symbols
(done by \mf{} that look pretty good) with letters and numerals from
the outline fonts while we throw away all the ghastly stuff.  \mk{}
does this work for you; it provides scripts for the remaining steps
(all this is described below). It also provides style files for plain
\TeX{} and for the NFSS of \LaTeX{} for you to use these fonts in your
documents.  {\em You don't need to know anything about \mf{} or
virtual fonts to use \mk{} and the resulting fonts.}

This version of \mk{} comes with three sets of font templates.  Since
Palatino and Times Roman are so common, I prepared templates for these
fonts.  For fun, I prepared a template for Monotype Baskerville.
Times comes in regular and bold series, and Baskerville in regular and
semibold; Palatino is regular only.

However, I have had excellent luck matching one of the templates with
a non-related text family.  The Baskerville-like template matches
Monotype Janson and Adobe Caslon very nicely, for example.
Consequently, it's possible to generate not three new math font
families, but {\it hundreds\/} of them, as the title to this document
proclaims. 

\section{What you get as final output}
\mk{} itself produces lots and lots of scripts and batch files.  Once
these are properly executed (see below for the exact procedure) you
get the following:
\begin{enumerate}
  \item Virtual fonts for math and text typesetting.  You will also
  get fonts for
  bold math if you have supplied a template containing bold parameters.
  \item Style files for plain \TeX{} and \LaTeX{} (NFSS).  
  These files support bold math if bold parameter
  templates were present.
\end{enumerate}

\section{What you'll need}
\subsection{\TeX{} and MetaFont}
You'll need current versions of \TeX{} and \mf, first off.  They must
be sufficiently recent to support virtual fonts.

\subsection{\texttt{fontinst}}
You'll need a version~1.5 of \texttt{fontinst}, available from any
{\sc ctan} archive or mirror.  To install this software, retrieve {\it all\/}
files from the 
\begin{verbatim}
fonts/utilities/fontinst/inputs
\end{verbatim}
area.  If you
have a traditional \TeX\ system, place these files with the other
files that \TeX\ reads in a directory like `{\tt tex/inputs}'.  In a
{\sc tds} system, place them in
\begin{verbatim}
texmf/tex/generic/fontinst
\end{verbatim}

\subsection{pdcfsel}
If you use plain \TeX, you'll need Damian Cudgley's \texttt{pdcfsel}
font selection macros.  These can be found in the 
\texttt{macros/plain/contrib/pdcmac} section of
\textsc{ctan}.  From this directory, fetch the files \fil|pdccode.tex|
and \fil|pdcfsel.dtx| and place both files in a \TeX{} work directory.
Then, issue a command like
\begin{verbatim}
tex pdcfsel.dtx
\end{verbatim}
In a moment, you'll get two new files---\fil|pdcfsel.dvi|, from which
you can typeset documentation for this package, and \fil|pdcfsel.tex|,
which you should 
place in a directory that 
\TeX{} can read from, a place like `{\tt tex/inputs}' in a
traditional \TeX\ system, or a place like 
\begin{verbatim}
texmf/tex/plain/pdcfsel
\end{verbatim}
in a {\sc tds} system.

\subsection{Perl5}
You'll need version~5 of Perl, a freely-available utility for all
computer platforms and easily obtained from many computer archives and
{\sc cd-rom} software collections.  Perl needs installation as well.
This is simply a matter of placing the Perl executable somewhere on
your computer's search path.

\subsection{\texttt{fontname}}
Your text fonts need to have been installed using Karl Berry's
fontnaming conventions.  Furthermore,
these fonts must have been installed following the original \TeX\
encoding, often denoted {\tt OT1} or {\tt ot1}.  Some ways to perform
this installation are {\tt psnfss} or {\tt VFinst} (see the 
\begin{verbatim}
fonts/utilities/vfinst/
\end{verbatim}
area of {\sc ctan}).

\subsection{Other utilities}
You'll need to insure you have working copies of the \TeX ware
utilities \texttt{tftopl} and \texttt{vptovf} which should already be part of
your \TeX{} installation.  Make sure both these executables are 
in some part
of your computer's search path.

\section{Installation}
Installation of \mk\ consists of three steps.
\begin{enumerate}
  \item Prepare a directory, called something like \texttt{mathkit}
  perhaps, to hold all the \mk{} files.  Place all the \mk{} files here. 
  \item Prepare a work directory below this.  Switch to this directory
  to do all your work.  (The \mk{} package consists of this file
  \fil|mathkit.tex|, a file \fil|readme|, the main Perl script
  \fil|mathkit|, some files \fil|greekoff.mtx| and
  \fil|alphoff.mtx| used by \texttt{fontinst}, some template files
  \fil|ztex.mk|, \fil|zsty.mk|, \fil|makevp.mk|, 
  \fil|tm.mkr|, \fil|tm.mkb|, \fil|pl.mk|,
  \fil|bv.mkr|, and \fil|bv.mks|, plus some miscellaneous other stuff.)

(These instructions assume that your implementation of \TeX{} knows to
search the parent directory to the current directory to look for files
it may need to read.  If this is not the case---and you'll know when
you execute the `{\tt tex}' step, as \TeX\ won't be able to find files
in the {\tt mathkit} directory---you'll need either to adjust \TeX's
search path or to place copies of all the \mk{} files in the work
directory.) 

\item Finally, there are a few parameters that need {\em careful\/}
adjustment at the beginning of the file \fil|mathkit.par|.  \mk{}
needs to know some system things---where are the \ext|tfm|'s kept for
this text font family, where are \mf{} input files kept, what is the
\mf{} mode you require (that is, what printer will you be preparing
fonts for?), and are you running under Unix or DOS?  This file is
self-documenting, so consult it for details.  Briefly, it needs seven
categories of information:
\begin{enumerate}
  \item Is this a {\sc tds} installation?  If so, what are the
  suppliers, typefaces, and installers for your fonts?
  \item Where are the \mf{} source files found?
  \item For {\it non}-{\sc tds} systems only, where are \TeX's special
  file types ({\tt.tfm}, {\tt.vf}, etc.) found?
  \item What's the name of of the \mf{} executable?  
  What is the \mf{} mode?  How are \mf{} output files named?
  Where do these files belong?  This requires additional
  discussion---see below.
  \item Is this Unix or {\sc dos}?  If you are using yet a different
  operating system, you'll need to create a subroutine named for this
  other system and modelled after the routines you'll find at about
  line~46 in the file \fil|mathkit|.
  \item Should \mk{} try to match \mf{} parameters to your text fonts?
  The answer should almost assuredly be `no'.
  See below for additional discussion.
  \item What is the sans serif font you'll be using with your fonts?  We
  will also need the directory names for its supplier and typeface, in
  case your system is a {\sc tds} system.
\end{enumerate}
\end{enumerate}

\subsection{Mode and other Metafont information}
Most of the time, the \mf{} executable is called `{\tt mf}'; in such
cases, set the variable \texttt{\$mf} in the file {\tt mathkit.par} 
to the value \texttt{"mf"}.  On some systems, it may have other names,
such as \texttt{virmf}.  Adjust the value of \texttt{\$mf}
accordingly. 

The \mf{} mode refers to a group of parameters especially adjusted to
match your computer's printer.  Modes are named with strings that
suggest their corresponding printer---for example, {\tt imagen}, {\tt
hplaser}, and so on.  If you don't know which \mf{} mode corresponds
to your printer, you'll have to inspect (with an editor) the file
\fil|local.mf| or some file like that that appears in your \mf{}
inputs directory.  Probably the most important of the mode parameters
is one called \verb+pixels_per_inch+ which ensures that \mf's bitmaps
match your printer's resolution.  At the very least, you'll need to
choose a mode whose value of \verb+pixels_per_inch+ matches your
printer's resolution. The name of the mode is the string following the
command \verb+mode_def+ which appears a few lines above.  

In case, no mode is useful, you'll have to create your own mode.
Duplicate one of the modes in \fil|local.mf|, and just change the name
of the mode and the value of \verb+pixels_per_inch+.  Then, you'll
have to re-install \mf{} using {\tt inimf}.  

You'll also need to supply your printer's resolution.  In \mk, this is
called {\tt\$dpi} in the file \fil|mathkit.par|.  It corresponds to
the \mf{} variable \verb+pixels_per_inch+.

\subsection{Matching (additional information)}
All but super-power-users should keep the parameter 
\begin{verbatim}
$I_should_try_to_match
\end{verbatim}
commented out at
all times.  Otherwise, it is easy to generate successively different
copies of \mf{} source files, all with the same name.  Consequently,
the most recent creation obliterates its predecessors and will make it
well-nigh impossible to regenerate early versions of your new pixel
fonts. 

For those with intestinal fortitude of the first rank, here's an
explanation.  Although only three font templates currently accompany
\mk, it is possible to use a template with another text font family.
I have had good results, for example, using the {\tt bv}
Baskerville-like template with both Monotype Janson and Adobe Caslon
fonts.  Of course, the $x$-height, cap-height, and so on of the Janson
or Caslon fonts won't math the corresponding parameters for the
Baskerville fonts.  However, if the parameter
\begin{verbatim}
$I_should_try_to_match
\end{verbatim}
is set to a non-zero, non-null value, then \mk{} will use all the
template parameters together with the $x$-height, etc.\ of the text
fonts.  This may ensure even closer compatibility between the math and
text fonts.  In case it doesn't, you can always re-generate the math fonts
with this parameter turned off.  Although it probably sounds like a
good idea to keep this parameter switched on, it leads to a
proliferation of \mf\ files that are slightly different but have the same
filenames (see above; any readers with suggestions for dealing with
impasse should please get in touch with me).

\subsection{Special fonts}
\mk{} also makes it possible to typeset with some special font types,
including blackboard bold, calligraphic, fraktur, typewriter
mono-spaced, and sans serif, and will provide typesetting commands for
these fonts provided they exist.  Except for sans serif, though, you
have relatively little choice in which kinds of fonts to install.
Here's what \mk{} expects:

\begin{itemize}
  \item \mk{} uses the calligraphic alphabet in the Computer Modern
  symbol fonts.
  \item The typewriter font must be installed under the name {\tt
  cmtt10}, and you will need an outline form of this font.  
  \item You'll need the {\tt eufm10} Euler Fraktur font in outline form
  for Fraktur typesetting.
  \item You'll need the \mf{} source for Alan Jeffrey's blackboard bold
  fonts for blackboard bold typesetting.
  \item You have much greater freedom for sans serif fonts, as discussed
  above. 
\end{itemize}
These fonts and font sources are all available on \textsc{ctan}. 

In non-\textsc{tds}, installation means placing the {\tt.afm} files in
a directory like {\tt/psfonts/afm} and the outline files in a place
like {\tt /psfonts}.  \mf{} sources belong somewhere named like {\tt
/mf/inputs}.  In a \textsc{tds} system, locations are more carefully
defined.  Computer Modern--math symbols and typewriter---belongs 
in a place like
$$\hbox{\tt\angles{texmf}/fonts/\angles{type1-or-afm}/public/cm}$$
The Euler Fraktur fonts belong in
$$\hbox{\tt\angles{texmf}/fonts/\angles{type1-or-afm}/ams/euler}$$
Finally, the blackboard bold source fonts belong in
$$\hbox{\tt\angles{texmf}/fonts/source/public/bbold}$$

\section{Executing the software}
The main \mk{} script requires three parameters at the command line.
These are:
\begin{enumerate}
  \item The name of the parameter template.  `{\tt tm}' refers to Times-like
  parameters, `{\tt pl}' to Palatino-like, and `{\tt bv}' to Baskerville-like.
  \item The name under which text fonts are installed.  This is apt to
  be something like \texttt{ptm} or \texttt{mnt} for Adobe Times or
  Monotype Times New Roman, \texttt{ppl} for Palatino, and \texttt{mbv}
  for Monotype Baskerville (which is {\em quite\/} different from 
  ITC New Baskerville).  As mentioned above, though, you are welcome
  to any properly installed text font family as well.  Simply specify
  its {\tt fontname} abbreviation at the command line.
  \item The encoding your fonts follow.  Only \texttt{OT1} (original
  \TeX{} encoding) or maybe \texttt{ot1} are currently allowed.  Use
  {\tt ot1} if your system doesn't allow uppercase file names.
\end{enumerate}
For example, I type
$$\hbox{\tt perl ../mathkit tm ptm OT1}$$
in my work directory 
to create Times-like fonts following the original \TeX{} encoding.
(If your system supports the \verb1#!1 syntax for specifying the name
of an interpreter, then adjust the proper path at the very top of
the \fil|mathkit| script, make sure the execute bit is set, and type the
simpler injunction \texttt{../mathkit tm ptm OT1} from the work
directory.)  To create my Janson/Baskerville fonts, I typed
\begin{verbatim}
../mathkit bv mjn OT1
\end{verbatim}
at the command line.

Currently, you get bold math fonts {\em except} if you choose the
Palatino-like {\tt pl} template.

\section{Making the fonts}
The following steps complete the font creation.  Perform them all
within the \mk{} work directory.
\begin{enumerate}
\item Execute the file \fil|makegf.bat| to have \mf{} 
create the pixel fonts for
your fonts.  This step will take some time.
\item You'll need to pack all the pixel files.  Inside Unix, you can
do this via a series of commands like
\begin{verbatim}
foreach X (*.600gf)
foreach? gftopk $X $X:r.600pk
foreach? end
\end{verbatim}
Not all operating systems are so accommodating, so there is a file
called \fil|makepk.bat| which may be helpful in this regard.  {\bf Caution:}
before executing this script, it will almost surely be necessary to edit it.
\item Execute the script \fil|makepl.bat| to create some property list
files needed by \TeX.
\item Run the file \fil|makevp.tex| through \TeX.  That is, execute
the command \texttt{tex makevp} or something appropriate for your
system.  This step will take lots of time.  Along with lots of
superfluous files, this creates many `virtual property list' files
with extension \ext|vpl|. 
\item Create the actual virtual files by running every \ext|vpl| file
through the program \texttt{vptovf}.  You can do this easily in Unix
with commands like
\begin{verbatim}
foreach X (*.vpl)
foreach? vptovf $X $X:r.vf $X:r.tfm
foreach? end
\end{verbatim}
Even easier---execute the file \fil|makevf.bat| that \mk{} creates for
you. 
\item Test your fonts by running the files \fil|testmath.tex|
(for \LaTeX\ users) or \fil|testmatp.tex| (plain \TeX) through \TeX\
and then printing it.  
If adjustments are necessary,
return to the `{\tt tex makevp}' step (step~4), and proceed from that point
onward.  Adjustments to your fonts will be discussed below.
\item Only when you are completely satisfied with your new fonts
should you execute the script {\tt putfonts.bat} to place font files
and style files to their proper places.
\end{enumerate}

That leaves behind still files with extensions \ext|log|, \ext|mtx|,
\ext|pl|, \ext|vpl|, \ext|bat|, \ext|300gf| (or something similar) and
several other miscellaneous other files.  You may safely
delete all these.  

\subsection{Fine tuning and character adjustment}
The only adjustment that should be necessary are spacing adjustments
to improve the appearance of over-the-character accents, subscripts, and
character placement.  The two test files that enable you test this are
\fil|testmath.tex| (for \LaTeX) and \fil|testmatp.tex| (plain).
Run one of these files through \TeX, and examine the printed output
carefully.  

\mk{} will have made two or more adjustment files for you 
that facilitate making changes to
character spacing.  These files are named following this mysterious
convention:
$$\hbox{\tt\angles{mock}\angles{text-fonts}\angles{weight}%
  \angles{r-or-i}\angles{w-or-x}.mtx}$$
Here, \angles{mock} should be replaced by the template type (currently
{\tt bv},
{\tt tm}, or {\tt pl}); \angles{text-fonts} should be replaced by the
three-character text font family designation; \angles{weight} will be
{\tt r} or {\tt b} (regular or bold weight); \angles{r-or-i}
will be {\tt r} or {\tt i} as the changes are to be applied to math
roman or math italic fonts; and \angles{w-or-x} makes changes to
(skew) over-character accents or to glyph widths and subscript
placement.  (In an earlier incarnation of this package, the metric
adjustment files contained these and other ha\texttt{x} (hacks);
hence the `x'.  The `w' should suggest the ske\texttt{w} adjustments
for accents.  It's necessary to put this material in two distinct
files so that the virtual font making mechanism reads the
adjustment information at different points in its cycle.)  
For example, for my Janson-compatible ({\tt mjn}) 
math fonts using the
{\tt bv} template, I use file
\begin{verbatim}
bvmjnriw.mtx
\end{verbatim}
to adjust the positioning of the skew-type overhead accents like the
vector arrow and tilde for the math italic font, while I use 
\begin{verbatim}
bvmjnbrx.mtx
\end{verbatim}
to make changes to glyph widths and to subscript placement for math
roman fonts used in the math bold series.  

Even if you re-install math fonts, \mk{} takes care not to overwrite
pre-existing adjustment files.  

Changes are mostly a trial-and-error affair.  The first time you
create a set of math fonts, \mk{} creates a set of adjustment files in
which all the change commands are commented out.  To make changes,
enter the appropriate file and read what each file has to say about
the \verb+\shiftglyph+ or \verb+\skewkern+ commands which are found
there.  

Once you've made all your changes, re-run the steps from `{\tt tex
makevp}' (step~4) to the point where you print a copy of the test file
(step~6), and
then make additional changes as needed.

Of course, it's always possible to settle for fine-tuning your
manuscripts, but it's better to spend the time tuning the fonts
instead.  It's nevertheless a good idea to get familiar with \TeX's
\verb+\skew+ command (see page~136 of {\it The \TeX book}) which is
helpful in this regard, as are the many math space commands.

Font mongers note: you may be able to fine tune the characters
themselves by adjusting
the parameter values in the {\it template\/} files to other than what I've
provided.  Feel free!  If you find a particularly fine bunch of values
different from what I've provided, I'd be grateful if you passed them
along to me.

\subsection{Names of the new fonts}
\mf{} will make many new fonts with names like the usual Computer
Modern fonts, except the first two letters will be replaced by the
abbreviation you specified in the \mk{} command.  Thus, when making
Times-like fonts, you'll be making new fonts {\tt tmr10}, {\tt
tmbx10}, and so on for other varieties and sizes.  There will be some
bold variants of these if you've provided a bold parameter template.
Palatino-like variants would be named {\tt plr10}, and so on, while
Baskerville-like variants are {\tt bvr10}, etc.  Some of these new
bitmaps will be raw fonts for new virtual fonts that \mk{} creates.  

There will be lots of new virtual fonts for Math roman and italic (and
perhaps in bold variants).  These fonts have names beginning with the
font family indicator (such as {\tt ptm} or {\tt mbv}), a weight
indicator ({\tt r} or {\tt b} for regular or
bold), a single letter referring to the bitmaps that have been
incorporated (this will be the first of the two letter abbreviation
for the bitmap family; that is, {\tt b}, {\tt t}, or {\tt p} for
Baskerville, Times, or Palatino), an encoding digit (7 for {\tt OT1} or {\tt
ot1} encoding), a further encoding symbol (either {\tt t} or {\tt m}
for text or math italic), and a character for the font size (no digit
for ten-point, a single digit for smaller design sizes, and a `c',
hexadecimal digit representing `12', for the 12-point size).  Thus, my
Janson/Baskerville math italic fonts have names {\tt mjnrb7mc}, {\tt
mjnrb7m}, {\tt mjnrb7m9}, {\tt mjnrb7m7}, and {\tt mjnrb7m5} for the
fonts at 12\thinspace pt, 10\thinspace pt, 9\thinspace pt, 7\thinspace
pt, and 5\thinspace pt.

All font
names are eight characters long or less.

\section{Using your new fonts}
\mk{} produces two style files, one for \LaTeX{} and one for plain.
Their file names are formed according the naming scheme
  $$\hbox{\tt z\angles{mock-family}\angles{font-family}}$$
Here, \angles{mock-family} is the two-character designation for
one of the font parameter templates (such as \texttt{tm}, \texttt{pl},
or \texttt{bv}); the word `mock' refers to the fact that these fonts
imitate but don't equal the actual fonts in this family. 
\angles{font-family} is the Berry family
desgnation.  Thus, if I create a Times-like set of fonts for use with
font family \texttt{ptm}, I would find files \fil|ztmptm.sty| (\LaTeX)
and \fil|ztmptm.tex| (plain).  In the same way, the style files for
mock-Palatino and mock-Baskerville fonts are named \texttt{zplppl} and
\texttt{zbvmbv} (with the appropriate extensions).  Style files for my
Baskerville/Janson math fonts have names beginning with {\tt zbvmjn}.  

\subsection{Plain \TeX{}}  
At the top of your file, include the statement
\begin{verbatim}
\input ztmmnt
\end{verbatim}
(or whatever the style file name is).  Then, standard font nicknames
like {\tt\string\it} and {\tt\string\bf} and math toggles {\tt\$} and
{\tt\$\$} will refer to these new fonts.

If bold fonts have been generated, a command \verb!\boldface! typesets
everything in its way in boldface---prose, mathematics, whatever.
Bold math may be appropriate for bold captions, sections heads, and
the like.  Like any other font changing command, this command should
be placed within grouping symbols.

\subsection{\protect\LaTeX{} and NFSS}
You simply need to include the style name as part of the list of
packages that you use in the document.  Thus, a typical document would
have a statement like
\begin{verbatim}
\usepackage{ztmptm,epsf,pstricks,...}
\end{verbatim}
at the outset.

If \mk{} has created bold math fonts for you, a \texttt{boldface}
environment will typeset everything in that environment as bold,
including all mathematics. 

Occasionally, you will need to find tune a file or two by hand.  If
your outline fonts have been installed using expert fonts, you may
need to alter the \verb+\rmdefault+ command.  It might be necessary,
say to type
\begin{verbatim}
\rmdefault{ptmx}
\end{verbatim}
instead of \verb!\rmdefault{ptm}!. 

In files named like \texttt{OT1\angles{whatever}.fd} it may be
necessary to replace the \texttt{bx} series designation by \texttt{b}.
Or it may be necessary to add entries at the bottom instructing NFSS
to substitute fonts in the \texttt{bx} series with fonts in a {\tt b}
or {\tt sb} (bold or semibold) series.

\section{Math support for other font families}
The parameters for the font families are contained in files with names
like \fil|tm.mkr|, \fil|tm.mks|, or 
\fil|tm.mkb|.  The extensions refer to `\mk{}
regular', `\mk{} semibold', or `\mk{} bold' sets of parameters.  The
current \mk{} assumes that you will be creating at most 
one of the set of bold or semibold fonts but not both.

It was surprisingly easy to prepare these parameter files.  I prepared
a test document in which individual characters are printed on a
baseline at a size of 750\thinspace pt.  It's (relatively) easy to
measure the dimensions of such large characters, and \mf\ can be asked
to divide by~75 to compute the proper dimension for ten point fonts.
It was particularly easy for me to make these measurements, as I use Tom
Rokicki's superior implementation of \TeX{} for NeXTStep.  This
package contains onscreen calipers which take all the work out of this
chore. 

If you plan to create your own parameter files for other font
families, please use the supplied files as models.  Make sure all
measurements are given in terms of sharped points 
`\texttt{pt\#}'; \mk{} looks for
this string.  And please
consider placing this information in {\sc ctan}.

\section{In conclusion...}
For additional information, please see the book {\it \TeX\ Unbound:
\LaTeX\ and \TeX\ Strategies for Fonts, Graphics, and More} (1998) by
Alan Hoenig, published by Oxford University Press.

This software is issued as is, subject to the usual Gnu copyleft
agreement. 

If you have any questions, comments, or bug reports, please send them
along to me.

\begin{flushright}
Alan Hoenig\\
Department of Mathematics,\\ John Jay College\\
445 West 59 St.\\
New York, NY 10019\\
(516) 385-0736 or (212) 237-8858; \texttt{ajhjj@cunyvm.cuny.edu}\\[9pt]
January 1998
\end{flushright}

\end{document}