with all the machinery to construct it as well.
-all: bedstead.otf
+all: bedstead.otf sample.png title.png
bedstead.sfd: bedstead
./bedstead > bedstead.sfd
-bedstead.otf: bedstead.sfd
- fontforge -lang=ff -c 'Open($$1); Generate($$2)' \
- bedstead.sfd bedstead.otf
+.SUFFIXES: .ps .png .sfd .otf .pfa
+
+.sfd.otf:
+ fontforge -lang=ff -c 'Open($$1); Generate($$2)' ${.IMPSRC} ${.TARGET}
+
+.sfd.pfa:
+ fontforge -lang=ff -c 'Open($$1); Generate($$2)' ${.IMPSRC} ${.TARGET}
+
+.ps.png: bedstead.pfa
+ gs -dSAFER -dBATCH -dNOPAUSE -sDEVICE=pnggray \
+ -sOutputFile=${.TARGET} bedstead.pfa ${.IMPSRC}
clean: .PHONY
- rm -f bedstead bedstead.sfd bedstead.otf
+ rm -f bedstead *.sfd *.otf *.pfa *.png
<title>Bedstead – MODE 7 for the 21st century</title>
</head>
<body>
- <h1>Bedstead – MODE 7 for the 21st century</h1>
+ <h1><img alt="Bedstead" src="title.png"/></h1>
<p>Bedstead is an outline font based on the characters produced by the
Mullard SAA5050 series of Teletext Character Generators. The
SAA5050 is familiar to those of a certain age as the one that
glyphs are drawn on the same 5 × 9 pixel grid, albeit with a
slight variation to let the Arabic characters join up.</p>
+ <p><img alt="[ A sample of Bedstead's characters ]" src="sample.png"/></p>
+
<p>The outline version of the font is generated by an ANSI C program
which emits a Spline Font Database file for use with
<a href="http://fontforge.sourceforge.net/">Fontforge</a>, which
--- /dev/null
+<< /HWResolution [ 72 72 ] /PageSize [ 772 284 ] >> setpagedevice
+/Bedstead findfont 40 scalefont setfont
+/row { %def
+ 0 0 moveto
+ { %forall
+ glyphshow
+ } forall
+ 0 -40 translate
+} def
+0 253 translate
+[ /A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/Y/V/W/Z/Y/Z ] row
+[ /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 ] row
+[ /uni0410/uni0411/uni0412/uni0413/uni0414/uni0415/uni0416/uni0417
+ /uni0418/uni0419/uni041A/uni041B/uni041C/uni041D/uni041E/uni041F
+ /uni0420/uni0421/uni0422/uni0423/uni0424/uni0425/uni0426/uni0427
+ /uni0428/uni0429/uni042A/uni042B/uni042C/uni042D/uni042E/uni042F ] row
+[ /uni0430/uni0431/uni0432/uni0433/uni0434/uni0435/uni0436/uni0437
+ /uni0438/uni0439/uni043A/uni043B/uni043C/uni043D/uni043E/uni043F
+ /uni0440/uni0441/uni0442/uni0443/uni0444/uni0445/uni0446/uni0447
+ /uni0448/uni0449/uni044A/uni044B/uni044C/uni044D/uni044E/uni044F ] row
+[ /uni05D0/uni05D1/uni05D2/uni05D3/uni05D4/uni05D5/uni05D6/uni05D7
+ /uni05D8/uni05D9/uni05DA/uni05DB/uni05DC/uni05DD/uni05DE/uni05DF
+ /uni05E0/uni05E1/uni05E2/uni05E3/uni05E4/uni05E5/uni05E6/uni05E7
+ /uni05E8/uni05E9/uni05EA ] row
+[ /zero/one/two/three/four/five/six/seven/eight/nine
+ /onequarter/onehalf/threequarters
+ /exclam/question/period/comma/colon/semicolon
+ /quotesingle/quotedbl/quoteleft/quoteright/quotedblleft/quotedblright
+ /parenleft/parenright/bracketleft/bracketright/braceleft/braceright ] row
+[ /hyphen/endash/plus/multiply/divide/less/equal/greater/slash/backslash/bar
+ /sterling/dollar/yen/cent/currency
+ /percent/ampersand/asterisk/numbersign/at/section/paragraph ] row
+showpage
--- /dev/null
+<< /HWResolution [ 72 72 ] /PageSize [ 378 72 ] >> setpagedevice
+/Bedstead findfont 80 scalefont setfont
+0 8 moveto
+/s { show } def
+/k { -8 0 rmoveto } def
+% Manually apply the 'palt' OTF feature to improve the spacing
+(Beds) s k (t) s k (ead) s
+showpage