This should get you started to getting the Computer Modern typeface
to work with troff(1).
First, apply the (trivial) patches using ed(1). The target files are:
/sys/lib/troff/font/devutf/shell.lib
/sys/src/cmd/postscript/buildtables/buildtables.sh
/sys/src/cmd/postscript/trofftable/trofftable.sh
Run “mk all” to get the troff width files. Once the file produced by
that step (the ones that do not end in .ps) are in
/sys/lib/troff/font/devutf, troff is satisfied. To get aux/tr2post —
used by lp(1) — happy, you must make more files that live in
/sys/lib/postscript/troff. Unfortunately, these cannot be
automagically generated for you and your author does not what would
optimally be in them, mk just steals a pre-existing one and makes a
change to it that will hopefully work. That still leaves you with the
LucidaSans dependency, though.
But you are not done yet! You have to figure out what fonts to
actually use. You see, Knuth made lots of different variations. As
he is Knuth, he also made variations on those variations. The first
set of variation is what kind of font the font is (e.g., bold, italic,
and even more exotic beasts). The second variation is based on size.
But you thought Type 1 fonts were scalable? Well, they are! Knuth
just decided to make the different variations look different at
different sizes.
To help you in your choosing from the first variation, a partial list
forcibly extracted from something apparently written by Knuth:
cmr – Roman
cms – Slanted
cmdunh – Cmr but taller
cmbx – Bold
cmb – Cmbx but not extended
cmbxsl – Cmbx slanted
cmtt – Typewriter (fixed width)
cmvtt – Typewriter (proportional)
cmss – Sans serif
cmsy – Math symbols
cmex – “Math extension font”
cmtex – “Extended ASCII font”
cmcsc – “Caps-and-small-caps font”
cmtcsc – “Caps-and-small-caps font” (fixed width)
To figure out the second variation, ls(1) is your friend. To find the
size optimisations avaliable for $variation:
ls /sys/lib/postscript/font/cm/cm$variation*.pfa
An adventurous person may wish to make a post-processor for troff to
figure out the second variation. If you do not feel like doing that,
you can always just use the font optimised for any particular size —
but then you would not be doing the Right Thing.
Proof(1) is happy enough to be useful, I suspect it does not really
care at all.
After immersing yourself in so much Knuth-ness, go read “Program
Design in the UNIX Environment” by Rob Pike and Brian Kernighan.
|