summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/fonts/hfoldsty/src/generate.sh
blob: 55dac424b94143954c97e035b974e06ce88a11ba (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
#!/bin/sh
#
# hfoldsty v1.15: A package for using oldstyle numerals with the ec fonts with
#                 better kerning for quillemets
#
# For use with ec fonts (European Computer Modern fonts by J"org Knappen
# <knappen@vkpmzd.kph.uni-mainz.de>, CTAN:/fonts/ec)
#
# Much code is taken from the eco fonts by
# Sebastian Marius Kirsch <skirsch@t-online.de>
#
#Copyright (C) 2003--2005, 2012  Harald Harders <harald.harders@gmx.de>
#
#This program is free software; you can redistribute it and/or modify
#it under the terms of the GNU General Public License as published by
#the Free Software Foundation; either version 2 of the License, or
#(at your option) any later version.
#
#This program is distributed in the hope that it will be useful,
#but WITHOUT ANY WARRANTY; without even the implied warranty of
#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#GNU General Public License for more details.
#
#You should have received a copy of the GNU General Public License
#along with this program; if not, write to the Free Software
#Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#
#This Bourne shell script requires the following programs:
# - tftopl, vptovf
# - ed, sed
# - TeX, fontinst >= 1.926
# - a shell which supports here-documents (i.e. bash)
# - a TeX with kpathsea (i.e. teTeX) 
#
# See ChangeLog for package history.

VERSION=1.15
DATE=2012/01/01

size="0500 0600 0700 0800 0900 1000 1095 1200 1440 1728 2074 2488 2986 3583"
# Change v0.2: Use lining figures with small capitals.
# Change v0.4: Use old-style figures with small capitals again.
family="rm ti ui sl rb bx bl bi ss si sx so tt st it vt vi dh cc xc sc oc tc"
#family="rm ti ui sl rb bx bl bi ss si sx so tt st it vt vi dh"

kpsewhich=kpsewhich

logfile=./hfofonts.log

# Change v0.2: Use lining figures with small capitals.
# Change v0.4: Use old-style figures with small capitals again.
rofamily="rm ti ui sl rb bx bl bi cc xc sc oc"
#rofamily="rm ti ui sl rb bx bl bi"
#rfamily="m/sc bx/sc"

# Change v0.2: Use lining figures with small capitals.
# Change v0.4: Use old-style figures with small capitals again.
ttofamily="tt st it tc"
#ttofamily="tt st it"
#ttfamily="m/sc"

ssofamily="ss si sx so"

vtofamily="vt vi"

dhofamily="dh"


function getpl () {
curfam=$1

echo "# Converting .tfm to .pl" >> $logfile

for f in ${curfam}; do 
    for s in ${size}; do 
 	if [ -z `${kpsewhich} tfm ec${f}${s}.tfm` ] ; then 
 	   echo "Making ec${f}${s}.tfm" >> ${logfile}
	   echo -n "ec${f}${s}.tfm "
	   mktextfm ec${f}${s}
	fi
 	if [ `${kpsewhich} tfm ec${f}${s}.tfm` ] ; then 
 	   tftopl `${kpsewhich} tfm ec${f}${s}.tfm` ./ec${f}${s}.pl &>/dev/null;
 	   echo "ec${f}${s}.tfm -> ec${f}${s}.pl" >> ${logfile}
	   echo -n "ec${f}${s}.pl "
 	else
 	   echo "! tfm file ec${f}${s}.tfm not found." >> ${logfile} 
	   echo "! ec${f}${s}.tfm not found."
 	fi
 	if [ -z `${kpsewhich} tfm tc${f}${s}.tfm` ] ; then 
 	   echo "Making tc${f}${s}.tfm" >> ${logfile}
	   echo -n "tc${f}${s}.tfm "
	   mktextfm tc${f}${s}
	fi
 	if [ `${kpsewhich} tfm tc${f}${s}.tfm` ] ; then 
 	   tftopl `${kpsewhich} tfm tc${f}${s}.tfm` ./tc${f}${s}.pl &> /dev/null;
 	   echo "tc${f}${s}.tfm -> tc${f}${s}.pl" >> ${logfile}
	   echo -n "tc${f}${s}.pl "
 	else
 	   echo "! tfm file tc${f}${s}.tfm not found" >> ${logfile}
	   echo "! tc${f}${s}.tfm not found."
 	fi
    done
done

echo
}

function getvf () {
curfam=$1

echo "# Converting .vpl to .vf and .tfm" >> $logfile

for f in $curfam; do 
    for s in $size; do 
	if [ -f	hfo${f}${s}.vpl ]; then 
	   vptovf hfo${f}${s}.vpl hfo${f}${s}.vf hfo${f}${s}.tfm &> /dev/null; 
	   echo "hfo${f}${s}.vpl -> hfo${f}${s}.vf" >> ${logfile}
	   echo -n "hfo${f}${s}.vf "
	else
	   echo "vpl file hfo${f}${s}.vpl not found" >> ${logfile}
	   echo "! hfo${f}${s}.vpl not found."
	fi
    done
done

echo
}

function cleanup () {
curfam=$1

for f in $curfam; do 
    for s in $size; do 
	rm -f hfo${f}${s}.vpl ec${f}${s}.pl ec${f}${s}.mtx tc${f}${s}.pl tc${f}${s}.mtx
    done
done
}

function intro () {
cat << EOM
\input fontinst.sty

\declareencoding{TEX TEXT COMPANION SYMBOLS 1---TS1}{TS1}

\installfonts
EOM
}

function extro () {
cat << EOM
\endinstallfonts

\bye
EOM
}

function echomtx () {
f=$1

echo
for ec in ${size}; do
    if [ -f ec${f}${ec}.pl ]; then
	echo "\frompl{ec${f}${ec}}"
    fi
    if [ -f tc${f}${ec}.pl ]; then
	echo "\frompl{tc${f}${ec}}"
    fi
done;
}

# Inserts kerning information to the mtx file
function insertkerns ()
{
    f=$1
# Change v1.00: Scale Kerning by $FAK/1000
    FAK=$2

    for ec in ${size}
    do

	MULTI=`grep '\quad' ec${f}${ec}.mtx | sed s/'.*{\([0-9]*\)}'/'\1'/`
	echo ec${f}${ec}: multiplikator $MULTI

	GKERN="0110"
	GKERN=`echo "$GKERN $MULTI * 1000 / p" | dc`
	KKERN="0070"
	KKERN=`echo "$KKERN $MULTI * 1000 / p" | dc`

	LISTE="%"
	for CHAR in A B C D E F G H I J K L M N O P Q R S T U V W X Y Z \
	    Adieresis Odieresis Udieresis
	do
	    RKERN=$GKERN
	    LKERN=$GKERN
	    case $CHAR in
		A) LKERN=`echo "$LKERN 1200 * 1000 / $FAK * 1000 / p" | dc`; \
		   RKERN=`echo "$RKERN 1200 * 1000 / $FAK * 1000 / p" | dc`;;
		B) LKERN=`echo "$LKERN 300 * 1000 / $FAK * 1000 / p" | dc`;;
		C) LKERN=`echo "$LKERN 300 * 1000 / $FAK * 1000 / p" | dc`; \
		   RKERN=`echo "$RKERN 600 * 1000 / $FAK * 1000 / p" | dc`;;
		D) LKERN=`echo "$LKERN 300 * 1000 / $FAK * 1000 / p" | dc`;;
		E) LKERN=`echo "$LKERN 300 * 1000 / $FAK * 1000 / p" | dc`;;
		G) LKERN=`echo "$LKERN 300 * 1000 / $FAK * 1000 / p" | dc`; \
		   RKERN=`echo "$RKERN 600 * 1000 / $FAK * 1000 / p" | dc`;;
		K) LKERN=`echo "$LKERN 1400 * 1000 / $FAK * 1000 / p" | dc`;;
		L) LKERN=`echo "$LKERN 300 * 1000 / $FAK * 1000 / p" | dc`;;
		N) LKERN=`echo "$LKERN 1100 * 1000 / $FAK * 1000 / p" | dc`;;
		O) LKERN=`echo "$LKERN 600 * 1000 / $FAK * 1000 / p" | dc`; \
		   RKERN=`echo "$RKERN 600 * 1000 / $FAK * 1000 / p" | dc`;;
		P) LKERN=`echo "$LKERN 1100 * 1000 / $FAK * 1000 / p" | dc`;;
		Q) LKERN=`echo "$LKERN 600 * 1000 / $FAK * 1000 / p" | dc`; \
		   RKERN=`echo "$RKERN 600 * 1000 / $FAK * 1000 / p" | dc`;;
		R) LKERN=`echo "$LKERN 300 * 1000 / $FAK * 1000 / p" | dc`;;
		S) LKERN=`echo "$LKERN 300 * 1000 / $FAK * 1000 / p" | dc`; \
		   RKERN=`echo "$RKERN 300 * 1000 / $FAK * 1000 / p" | dc`;;
		T) LKERN=`echo "$LKERN 1200 * 1000 / $FAK * 1000 / p" | dc`; \
		   RKERN=`echo "$RKERN 1200 * 1000 / $FAK * 1000 / p" | dc`;;
		V) LKERN=`echo "$LKERN 1300 * 1000 / $FAK * 1000 / p" | dc`; \
		   RKERN=`echo "$RKERN 1300 * 1000 / $FAK * 1000 / p" | dc`;;
		W) LKERN=`echo "$LKERN 1300 * 1000 / $FAK * 1000 / p" | dc`; \
		   RKERN=`echo "$RKERN 1300 * 1000 / $FAK * 1000 / p" | dc`;;
		X) LKERN=`echo "$LKERN 1300 * 1000 / $FAK * 1000 / p" | dc`; \
		   RKERN=`echo "$RKERN 1300 * 1000 / $FAK * 1000 / p" | dc`;;
		Y) LKERN=`echo "$LKERN 1300 * 1000 / $FAK * 1000 / p" | dc`; \
		   RKERN=`echo "$RKERN 1300 * 1000 / $FAK * 1000 / p" | dc`;;
		Z) LKERN=`echo "$LKERN 300 * 1000 / $FAK * 1000 / p" | dc`;;
		Adieresis) LKERN=`echo "$LKERN 1200 * 1000 / $FAK * 1000 / p" | dc`; \
		   RKERN=`echo "$RKERN 1200 * 1000 / $FAK * 1000 / p" | dc`;;
		Odieresis) LKERN=`echo "$LKERN 600 * 1000 / $FAK * 1000 / p" | dc`; \
		   RKERN=`echo "$RKERN 600 * 1000 / $FAK * 1000 / p" | dc`;;
	    esac
	    LISTE="$LISTE\\
\\\\setkern{guillemotright}{$CHAR}{-$RKERN}\\
\\\\setkern{$CHAR}{guillemotleft}{-$LKERN}"
	done

	for CHAR in a b c d e f g h i j k l m n o p q r s t u v w x y z \
	    adieresis odieresis udieresis germandbls
	do
	    RKERN=$KKERN
	    LKERN=$KKERN
	    case $CHAR in
		b) LKERN=`echo "$LKERN 1000 * 1000 / $FAK * 1000 / p" | dc`; \
		   RKERN=`echo "$RKERN 1200 * 1000 / $FAK * 1000 / p" | dc`;;
	    esac
	    LISTE="$LISTE\\
\\\\setkern{guillemotright}{$CHAR}{-$RKERN}\\
\\\\setkern{$CHAR}{guillemotleft}{-$LKERN}"
	done

	sed "1,/\\\\setrawglyph/ { /\\\\setrawglyph/i \\
$LISTE
; }" ec${f}${ec}.mtx > ec${f}${ec}.mtx.tmp && \
	mv -f ec${f}${ec}.mtx.tmp ec${f}${ec}.mtx || \
	rm -f ec${f}${ec}.mtx.tmp
    done
}

function echoinstalls () {
enc=$1; f=$2; se=$3; sh=$4

echo
for ec in ${size}; do
    case ${ec} in
	0500) fs="5";;
        0600) fs="6";;
	0700) fs="7";;
	0800) fs="8";;
	0900) fs="9";;
	1000) fs="10";;
	1095) fs="10.95";;
	1200) fs="12";;
	1440) fs="14.4";;
	1728) fs="17.28";;
	2074) fs="20.74";;
	2488) fs="24.88";;
	2986) fs="29.86";;
	3583) fs="35.83";;
    esac
    if [ -f ec${f}${ec}.pl -a -f tc${f}${ec}.pl ]; then
	echo "\installfont{hfo${f}${ec}}{ec${f}${ec},tc${f}${ec},dostretch}{T19}{T1}{hfo${enc}}{${se}}{${sh}}{<${fs}>}"
# Change v0.2: Use lining figures with small capitals again.
#              Thus, no extra handling for these fonts necessary anymore.
# Change v0.4: Use old-style figures with small capitals again.
    else if [ ${f} == "cc" -o ${f} == "xc" -o ${f} == "sc" -o ${f} == "oc" -o ${f} == "tc" ]
    then
	[ ${f} == "cc" ] && tcf="rm"
	[ ${f} == "xc" ] && tcf="bx"
	[ ${f} == "sc" ] && tcf="sl"
	[ ${f} == "oc" ] && tcf="bl"
	[ ${f} == "tc" ] && tcf="tt"
	if [ -f ec${f}${ec}.pl -a -f tc${tcf}${ec}.pl ]; then
	    echo "\installfont{hfo${f}${ec}}{ec${f}${ec},tc${tcf}${ec},dostretch}{T19}{T1}{hfo${enc}}{${se}}{${sh}}{<${fs}>}"
#	    echo "\installfont{hfo${f}${ec}}{ec${f}${ec},dostretch}{T1}{T1}{hfo${enc}}{${se}}{${sh}}{<${fs}>}"
	fi
    fi
 fi
done;
}


function modfd () 
{
    fdfile=$1

    cat ${fdfile} | \
	grep -1 -e '<[-.0-9]*>' \
		-e 'DeclareFontShape' | \
	grep -v -e '<10\.95>' -e '<14\.4>' -e '<20\.74>' \
		-e '<24\.88>' -e '<29\.86>' -e '<35\.83>' | \
	sed -e 's/<5>/<-6>/g' -e 's/<6>/<6-7>/g' -e 's/<7>/<7-8>/g' \
	    -e 's/<8>/<8-9>/g' -e 's/<9>/<9-10>/g' -e 's/<10>/<10-12>/g' \
	    -e 's/<12>/<12-17>/g' -e 's/<17\.28>/<17->/g' > asdf.fd
    echo '\else' >> asdf.fd
    echo '\typeout{'${fdfile}': Using all design sizes}%' >> asdf.fd
    sed '/\\endinput/d' asdf.fd > tmp.fd && mv -f tmp.fd asdf.fd
    cat ${fdfile} | \
	sed -e '/DeclareFontFamily/i \
\\ifhfofixcm\
\\typeout{'${fdfile}': Using fewer design sizes (fix-cm)}% \
' \
	    -e '/\\endinput/i \
\\fi\
' \
	    -e '/\\DeclareFontFamily/r asdf.fd' > tmp.fd
    mv -f tmp.fd ${fdfile}
    rm -f asdf.fd
}


# function main () {

# Roman family
#

echo >> $logfile
echo "Roman Family" >> $logfile
echo "------------" >> $logfile
echo >> $logfile

getpl "$rofamily"

(
intro

echomtx rm
echomtx ti
echomtx sl
echomtx ui
echomtx cc
echomtx sc
echomtx rb
echomtx bx
echomtx bi
echomtx bl
echomtx xc
echomtx oc

extro
) > hformtx.tex

tex hformtx.tex

insertkerns rm 1000
insertkerns ti 1000
insertkerns sl 1000
insertkerns ui 1000
insertkerns cc 1000
insertkerns sc 1000
insertkerns rb 1000
insertkerns bx 1000
insertkerns bi 1000
insertkerns bl 1000
insertkerns xc 1000
insertkerns oc 1000

(
intro

echo; echo "\installfamily{T1}{hfor}{}"

echoinstalls r rm m n
echoinstalls r ti m it
echoinstalls r sl m sl
echoinstalls r ui m ui
echoinstalls r cc m sc
echoinstalls r sc m scsl
echoinstalls r rb b n
echoinstalls r bx bx n
echoinstalls r bi bx it
echoinstalls r bl bx sl
echoinstalls r xc bx sc
echoinstalls r oc bx scsl

extro
) > hfor.tex

tex hfor.tex

# Change v0.2: LaTeX is big enough not to split generation of Roman family.

getvf "$rofamily"

cleanup "$rofamily"

ed t1hfor.fd <<EOS
\$-1,\$d
w
q
EOS

(
# Change v0.2: Support slanted small capitals
# Change v0.90: Fix the wrong generation of this entry. It prevented LaTeX
#              from finding the correct small caps with old-style digits.
for f in m bx; do
    echo "\DeclareFontShape{T1}{hfor}{$f}{scit}{<->ssub * hfor/$f/scsl}{}"
done
echo
# Change v0.2: Use lining figures with small capitals again.
# Change v0.4: Use old-style figures with small capitals again.
for f in $rfamily; do
	se=`echo $f | cut -f 1 -d "/"`
	sh=`echo $f | cut -f 2 -d "/"`
	echo "\DeclareFontShape{T1}{hfor}{$se}{$sh}{<->ssub * cmr/$se/$sh}{}"
done
echo
echo '\endinput'
) >> t1hfor.fd

modfd t1hfor.fd

sed 's/Fontinst .*/ v'$VERSION'  European Computer Modern with oldstyle digits]/' \
    t1hfor.fd > asdf && mv -f asdf t1hfor.fd

# Sans Serif family

echo >> $logfile
echo "Sans Serif family" >> $logfile
echo "-----------------" >> $logfile
echo >> $logfile

getpl "$ssofamily"

(
intro

echomtx ss
echomtx si
echomtx sx
echomtx so

extro
) > hfossmtx.tex

tex hfossmtx.tex

# Change v1.00: Add kerning to sans-serif fonts, 70% of serif fonts.
insertkerns ss 0700
insertkerns si 0700
insertkerns sx 0700
insertkerns so 0700

(
intro

echo; echo "\installfamily{T1}{hfoss}{}"

echoinstalls ss ss m n
echoinstalls ss si m sl
echoinstalls ss sx bx n
echoinstalls ss so bx sl

extro
) > hfoss.tex

tex hfoss.tex

getvf "$ssofamily"

cleanup "$ssofamily"

ed t1hfoss.fd <<EOS
\$-1,\$d
w
q
EOS

for f in $ssfamily; do
	se=`echo $f | cut -f 1 -d "/"`
	sh=`echo $f | cut -f 2 -d "/"`
	echo "\DeclareFontShape{T1}{hfoss}{$se}{$sh}{<->ssub * cmss/$se/$sh}{}" >> t1hfoss.fd
done

for f in m bx; do
	echo "\DeclareFontShape{T1}{hfoss}{$f}{it}{<->ssub * hfoss/$f/sl}{}" >> t1hfoss.fd
	echo "\DeclareFontShape{T1}{hfoss}{$f}{scit}{<->ssub * hfoss/$f/sl}{}" >> t1hfoss.fd
	echo "\DeclareFontShape{T1}{hfoss}{$f}{scsl}{<->ssub * hfoss/$f/sl}{}" >> t1hfoss.fd
done
echo '' >> t1hfoss.fd
echo '\endinput' >> t1hfoss.fd

modfd t1hfoss.fd

sed 's/Fontinst .*/ v'$VERSION'  European Computer Modern with oldstyle digits]/' \
    t1hfoss.fd > asdf && mv -f asdf t1hfoss.fd


# Typewriter family

echo >> $logfile
echo "Typewriter family" >> $logfile
echo "-----------------" >> $logfile
echo >> $logfile

getpl "$ttofamily"

(
intro

echomtx tt
echomtx it
echomtx st
# Change v0.2: Use lining figures with small capitals.
# Change v0.4: Use old-style figures with small capitals again.
echomtx tc

extro
) > hfottmtx.tex

tex hfottmtx.tex

(
intro

echo; echo "\installfamily{T1}{hfott}{\hyphenchar\font=\m@ne }"

echoinstalls tt tt m n
echoinstalls tt it m it
echoinstalls tt st m sl
# Change v0.2: Use lining figures with small capitals.
# Change v0.4: Use old-style figures with small capitals again.
echoinstalls tt tc m sc

extro
) > hfott.tex

tex hfott.tex

getvf "$ttofamily"

cleanup "$ttofamily"

ed t1hfott.fd <<EOS
,s/\\\hyphenchar \\\font =\\\m @ne /\\\hyphenchar\\\font=\\\m@ne/
w
q
EOS

(
echo
# Change v0.2: Use lining figures with small capitals.
# Change v0.4: Use old-style figures with small capitals again.
for f in $ttfamily; do
	se=`echo $f | cut -f 1 -d "/"`
	sh=`echo $f | cut -f 2 -d "/"`
	echo "\DeclareFontShape{T1}{hfott}{$se}{$sh}{<->ssub * cmtt/$se/$sh}{}"
done
echo
echo '\endinput'
) >> t1hfott.fd

modfd t1hfott.fd

sed 's/Fontinst .*/ v'$VERSION'  European Computer Modern with oldstyle digits]/' \
    t1hfott.fd > asdf && mv -f asdf t1hfott.fd


# Dunhill family

echo >> $logfile
echo "Dunhill family" >> $logfile
echo "--------------" >> $logfile
echo >> $logfile

getpl "$dhofamily"

(
intro

echomtx dh

extro

) > hfodhmtx.tex

tex hfodhmtx.tex

(
intro

echo; echo "\installfamily{T1}{hfodh}{}"

echoinstalls dh dh m n

extro

) > hfodh.tex

tex hfodh.tex

getvf "$dhofamily"

cleanup "$dhofamily"

modfd t1hfodh.fd

sed 's/Fontinst .*/ v'$VERSION'  European Computer Modern with oldstyle digits]/' \
    t1hfodh.fd > asdf && mv -f asdf t1hfodh.fd


# Variable width Typewriter family

echo >> $logfile
echo "Variable width Typewriter family" >> $logfile
echo "--------------------------------" >> $logfile
echo >> $logfile

getpl "$vtofamily"

(
intro

echomtx vt
echomtx vi

extro
) > hfovtmtx.tex

tex hfovtmtx.tex

(
intro

echo; echo "\installfamily{T1}{hfovt}{\hyphenchar\font=\m@ne }"

echoinstalls vt vt m n
echoinstalls vt vi m it

extro
) > hfovt.tex

tex hfovt.tex

getvf "$vtofamily"

cleanup "$vtofamily"

ed t1hfovt.fd <<EOS
,s/\\\hyphenchar \\\font =\\\m @ne /\\\hyphenchar\\\font=\\\m@ne/
w
q
EOS

echo '\endinput' >> t1hfovt.fd

modfd t1hfovt.fd

sed 's/Fontinst .*/ v'$VERSION'  European Computer Modern with oldstyle digits]/' \
    t1hfovt.fd > asdf && mv -f asdf t1hfovt.fd


exit 0

# }