2 # Generate a neatroff output device
4 # ghostscript font directory; also $FP/afm/, $FP/ttf/, $FP/otf/
5 FP
="/mnt/file/gs/fonts"
6 # output device directory
7 TP
="/root/queue/devutf"
10 # pattern of ligatures to ignore
11 LIGIGN
="\(ct\|st\|sp\|Rp\)"
12 # minimum amount of kerning to include
17 echo "fonts 10 R I B BI CW H HI HB S1 S" >$TP/DESC
18 echo "res $RES" >>$TP/DESC
19 echo "hor 1" >>$TP/DESC
20 echo "ver 1" >>$TP/DESC
21 echo "unitwidth 10" >>$TP/DESC
23 # afmconv troff_name postscript_name font_filename
27 cat $3 | .
/mkfn
$4 -a -b -r$RES -t $1 -p $2 | \
28 sed "/^ligatures /s/ $LIGIGN//g" >$TP/$1
31 # ttfconv troff_name postscript_name font_filename
35 cat $3 | .
/mkfn
-b -o -r$RES -t $1 -p $2 -k$MINKERN | \
36 sed "/^ligatures /s/ $LIGIGN//g" >$TP/$1
39 # otfconv troff_name postscript_name font_filename
42 TTF
="/tmp/.neatmkfn.ttf"
43 # convert the OTF file to TTF using fontforge
44 echo -e "Open(\"$3\")\nGenerate(\"$TTF\")" | fontforge
>/dev
/null
2>&1
50 afmconv R Times-Roman
$FP/n021003l.afm
51 afmconv I Times-Italic
$FP/n021023l.afm
52 afmconv B Times-Bold
$FP/n021004l.afm
53 afmconv BI Times-BoldItalic
$FP/n021024l.afm
54 afmconv S Symbol
$FP/s050000l.afm
-s
55 afmconv S1 Times-Roman
$FP/n021003l.afm
-s
56 afmconv AR AvantGarde-Book
$FP/a010013l.afm
57 afmconv AI AvantGarde-BookOblique
$FP/a010033l.afm
58 afmconv AB AvantGarde-Demi
$FP/a010015l.afm
59 afmconv AX AvantGarde-DemiOblique
$FP/a010035l.afm
60 afmconv H Helvetica
$FP/n019003l.afm
61 afmconv HI Helvetica-Oblique
$FP/n019023l.afm
62 afmconv HB Helvetica-Bold
$FP/n019004l.afm
63 afmconv HX Helvetica-BoldOblique
$FP/n019024l.afm
64 afmconv Hr Helvetica-Narrow
$FP/n019043l.afm
65 afmconv Hi Helvetica-Narrow-Oblique
$FP/n019063l.afm
66 afmconv Hb Helvetica-Narrow-Bold
$FP/n019044l.afm
67 afmconv Hx Helvetica-Narrow-BoldOblique
$FP/n019064l.afm
68 afmconv KR Bookman-Light
$FP/b018012l.afm
69 afmconv KI Bookman-LightItalic
$FP/b018032l.afm
70 afmconv KB Bookman-Demi
$FP/b018015l.afm
71 afmconv KX Bookman-DemiItalic
$FP/b018035l.afm
72 afmconv NR NewCenturySchlbk-Roman
$FP/c059013l.afm
73 afmconv NI NewCenturySchlbk-Italic
$FP/c059033l.afm
74 afmconv NB NewCenturySchlbk-Bold
$FP/c059016l.afm
75 afmconv NX NewCenturySchlbk-BoldItalic
$FP/c059036l.afm
76 afmconv PA Palatino-Roman
$FP/p052003l.afm
77 afmconv PR Palatino-Roman
$FP/p052003l.afm
78 afmconv PI Palatino-Italic
$FP/p052023l.afm
79 afmconv PB Palatino-Bold
$FP/p052004l.afm
80 afmconv PX Palatino-BoldItalic
$FP/p052024l.afm
81 afmconv C Courier
$FP/n022003l.afm
82 afmconv CO Courier
$FP/n022003l.afm
83 afmconv CW Courier
$FP/n022003l.afm
84 afmconv CI Courier-Oblique
$FP/n022023l.afm
85 afmconv CB Courier-Bold
$FP/n022004l.afm
86 afmconv CX Courier-BoldOblique
$FP/n022024l.afm
87 afmconv ZI ZapfChancery-MediumItalic
$FP/z003034l.afm
88 afmconv ZD ZapfDingbats
$FP/d050000l.afm
90 # For afm, ttf and otf files, we assume the postscript name of
91 # the font can be obtained by dropping its extension. Otherwise,
92 # remove the -p argument of mkfn in *conv function.
94 find $FP/afm
/ -name '*.afm' |
while read FN
96 afmconv
`basename $FN .afm` `basename $FN .afm` $FN
99 find $FP/ttf
/ -name '*.ttf' |
while read FN
101 ttfconv
`basename $FN .ttf` `basename $FN .ttf` $FN
104 find $FP/otf
/ -name '*.otf' |
while read FN
106 otfconv
`basename $FN .otf` `basename $FN .otf` $FN