-all: bedstead.otf bedstead-ext.otf bedstead-con.otf bedstead-sem.otf \
+FONTBASES = bedstead bedstead-extended bedstead-semicondensed \
+ bedstead-condensed bedstead-extracondensed bedstead-ultracondensed
+
+SFDFILES = $(addsuffix .sfd, $(FONTBASES))
+OTFFILES = $(addsuffix .otf, $(FONTBASES))
+PFAFILES = $(addsuffix .pfa, $(FONTBASES))
+AFMFILES = $(addsuffix .afm, $(FONTBASES))
+
+FONTFILES = $(SFDFILES) $(OTFFILES) $(PFAFILES) $(AFMFILES)
+
+DISTFILES = bedstead.c Makefile COPYING \
+ $(FONTFILES) \
+ bedstead-10.bdf bedstead-20.bdf \
+ bedstead-10-df.png bedstead-20-df.png
+
+all: $(DISTFILES) \
sample.png title.png extended.png \
bedstead-10-df.png bedstead-20-df.png
bedstead.sfd: bedstead
./bedstead > bedstead.sfd
-bedstead-ext.sfd: bedstead
- ./bedstead --extended > bedstead-ext.sfd
+bedstead-extended.sfd: bedstead
+ ./bedstead --extended > bedstead-extended.sfd
-bedstead-con.sfd: bedstead
- ./bedstead --condensed > bedstead-con.sfd
+bedstead-semicondensed.sfd: bedstead
+ ./bedstead --semi-condensed > bedstead-semicondensed.sfd
+
+bedstead-condensed.sfd: bedstead
+ ./bedstead --condensed > bedstead-condensed.sfd
+
+bedstead-extracondensed.sfd: bedstead
+ ./bedstead --extra-condensed > bedstead-extracondensed.sfd
+
+bedstead-ultracondensed.sfd: bedstead
+ ./bedstead --ultra-condensed > bedstead-ultracondensed.sfd
-bedstead-sem.sfd: bedstead
- ./bedstead --semicondensed > bedstead-sem.sfd
%.otf %-10.bdf %-20.bdf: %.sfd
fontforge -lang=ff \
%.pfa %.afm: %.sfd
fontforge -lang=ff -c 'Open($$1); Generate($$2)' $< $@
-%.png: %.ps bedstead.pfa bedstead-ext.pfa bedstead-con.pfa bedstead-sem.pfa
+%.png: %.ps $(PFAFILES)
gs -q -dSAFER -sDEVICE=pnggray -dTextAlphaBits=4 -o $@ \
- bedstead.pfa bedstead-ext.pfa \
- bedstead-con.pfa bedstead-sem.pfa $<
+ $(PFAFILES) $<
bedstead-%-df.png: df.ps bedstead.pfa
gs -q -dSAFER -dsize=$* -sDEVICE=png16m -o $@ bedstead.pfa $<
clean:
rm -f bedstead *.sfd *.otf *.bdf *.pfa *.png
-DISTFILES = bedstead.c Makefile COPYING \
- bedstead.sfd bedstead.otf bedstead.pfa bedstead.afm \
- bedstead-ext.sfd bedstead-ext.otf bedstead-ext.pfa bedstead-ext.afm \
- bedstead-con.sfd bedstead-con.otf bedstead-con.pfa bedstead-con.afm \
- bedstead-sem.sfd bedstead-sem.otf bedstead-sem.pfa bedstead-sem.afm \
- bedstead-10.bdf bedstead-20.bdf \
- bedstead-10-df.png bedstead-20-df.png
-
.PHONY: dist
dist: $(DISTFILES) bedstead
5, /* ttfwidth */
},
{
- "--extended",
- "Bedstead-Extended", "Bedstead Extended",
- 124, /* xpix */
- 7, /* ttfwidth */
- },
- {
- "--condensed",
- "Bedstead-Condensed", "Bedstead Condensed",
+ "--ultra-condensed",
+ "Bedstead-UltraCondensed", "Bedstead Ultra Condensed",
50, /* xpix */
1, /* ttfwidth */
},
{
- "--semicondensed",
- "Bedstead-Semicondensed", "Bedstead Semicondensed",
+ "--extra-condensed",
+ "Bedstead-ExtraCondensed", "Bedstead Extra Condensed",
62, /* xpix */
2, /* ttfwidth */
},
+ {
+ "--condensed",
+ "Bedstead-Condensed", "Bedstead Condensed",
+ 76, /* xpix */
+ 3, /* ttfwidth */
+ },
+ {
+ "--semi-condensed",
+ "Bedstead-Semicondensed", "Bedstead Semi Condensed",
+ 88, /* xpix */
+ 4, /* ttfwidth */
+ },
+ {
+ "--extended",
+ "Bedstead-Extended", "Bedstead Extended",
+ 124, /* xpix */
+ 7, /* ttfwidth */
+ },
};
struct param const *param = ¶ms[0];
h2 {
font-size: 2em;
- font-stretch: condensed;
+ font-stretch: ultra-condensed;
font-weight: inherit;
margin-top: 0.5em;
margin-bottom: 0.5em;
@font-face {
font-family: Bedstead;
+ font-stretch: expanded;
+ src: url(bedstead-extended.otf) format("opentype");
+}
+
+@font-face {
+ font-family: Bedstead;
+ font-stretch: normal;
src: url(bedstead.otf) format("opentype");
}
+@font-face {
+ font-family: Bedstead;
+ font-stretch: semi-condensed;
+ src: url(bedstead-semicondensed.otf) format("opentype");
+}
+
@font-face {
font-family: Bedstead;
font-stretch: condensed;
- src: url(bedstead-con.otf) format("opentype");
+ src: url(bedstead-condensed.otf) format("opentype");
+}
+
+@font-face {
+ font-family: Bedstead;
+ font-stretch: extra-condensed;
+ src: url(bedstead-extracondensed.otf) format("opentype");
+}
+
+@font-face {
+ font-family: Bedstead;
+ font-stretch: ultra-condensed;
+ src: url(bedstead-ultracondensed.otf) format("opentype");
}
-<< /HWResolution [ 72 72 ] /PageSize [ 700 120 ] >> setpagedevice
+<< /HWResolution [ 72 72 ] /PageSize [ 860 120 ] >> setpagedevice
/Bedstead findfont 40 scalefont setfont
0 88 moveto (Bedstead) show
-/Bedstead-Condensed findfont 80 scalefont setfont
-0 8 moveto (Condensed) show
+/Bedstead-UltraCondensed findfont 80 scalefont setfont
+0 8 moveto (Ultra Condensed) show
/Bedstead-Extended findfont 40 scalefont setfont
-300 88 moveto (Extended) show
-/Bedstead-Semicondensed findfont 80 scalefont setfont
-300 8 moveto (Semicondensed) show
+400 88 moveto (Extended) show
+/Bedstead-ExtraCondensed findfont 80 scalefont setfont
+400 8 moveto (Extra Condensed) show
showpage
<p><img alt="[ A sample of Bedstead's characters ]" src="sample.png"/></p>
- <p>The standard version of Bedstead is based on a square pixel
- grid. This is good for displays with square pixels, but not
- entirely faithful to the SAA5050. There is a second version,
- Bedstead Extended, that more accurately reflects the character
- shapes generated by an SAA5050 driving a 576i display.</p>
+ <p>Bedstead is available in six widths. The standard version of
+ Bedstead is based on a square pixel grid. This is good for
+ displays with square pixels, but not entirely faithful to the
+ SAA5050. There is a second version, Bedstead Extended, that
+ more accurately reflects the character shapes generated by an
+ SAA5050 driving a 576i display.</p>
<p>To simulate teletext double-height mode, Bedstead and
Bedstead Extended each has a half-width version, Bedstead
- Condensed and Bedstead Semicondensed respectively.</p>
+ Ultra Condensed and Bedstead Extra Condensed respectively.
+ Bedstead Condensed and Bedstead Semi Condensed provide intermediate
+ widths.</p>
<p><img alt="[ Bedstead and Bedstead Extended ]" src="extended.png"/></p>
<a href="http://fontforge.github.io/">FontForge</a>, which
can convert it into most reasonable font formats.</p>
+ <h2>Mosaic Graphics</h2>
+ <p>Bedstead includes all of the teletext mosaic graphics
+ characters available from the SAA5050. Since these are not
+ encoded in Unicode, Bedstead makes them available in the Private
+ Use area between U+EE00 and U+EE7F, in the same arrangement as
+ is used by
+ <a href="http://zapping.sourceforge.net/ZVBI/">ZVBI</a>.</p>
+
+ <p><code></code></p>
+
<h2>Copyright</h2>
<p>The program that generates Bedstead and all of the
newly-designed glyphs have been released into the public domain.</p>
<ul>
<li><a href="bedstead-001.002.zip"><code>bedstead-001.002.zip</code></a>
– Full source and binary distribution containing everything
- below.</li>
+ below and more.</li>
<li><a href="bedstead.c"><code>bedstead.c</code></a> – The C
program that generates the font.</li>
- <li><a href="bedstead.sfd"><code>bedstead.sfd</code></a> –
- The Spline Font Database file for use with FontForge.</li>
- <li><a href="bedstead.otf"><code>bedstead.otf</code></a> –
- The finished font in OpenType format.</li>
- <li><a href="bedstead-ext.sfd"><code>bedstead-ext.sfd</code></a>,
- <a href="bedstead-ext.otf"><code>bedstead-ext.otf</code></a> –
- Spline Font Database and OpenType versions of the extended font.</li>
- <li><a href="bedstead-con.sfd"><code>bedstead-con.sfd</code></a>,
- <a href="bedstead-con.otf"><code>bedstead-con.otf</code></a> –
- Spline Font Database and OpenType versions of the condensed
- (double-height) font.</li>
- <li><a href="bedstead-sem.sfd"><code>bedstead-sem.sfd</code></a>,
- <a href="bedstead-sem.otf"><code>bedstead-sem.otf</code></a> –
- Spline Font Database and OpenType versions of the semicondensed
- (double-height extended) font.</li>
+ <li>Finished OpenType fonts:
+ <ul>
+ <li><a href="bedstead.otf"><code>bedstead.otf</code></a> –
+ Bedstead</li>
+ <li><a href="bedstead-extended.otf"><code>bedstead-extended.otf</code></a>
+ – Bedstead Extended</li>
+ <li><a href="bedstead-semicondensed.otf"><code>bedstead-semicondensed.otf</code></a>
+ – Bedstead Semi Condensed</li>
+ <li><a href="bedstead-condensed.otf"><code>bedstead-condensed.otf</code></a>
+ – Bedstead Condensed</li>
+ <li><a href="bedstead-extracondensed.otf"><code>bedstead-extracondensed.otf</code></a>
+ – Bedstead Extra Condensed</li>
+ <li><a href="bedstead-ultracondensed.otf"><code>bedstead-ultracondensed.otf</code></a>
+ – Bedstead Ultra Condensed</li>
+ </ul>
+ </li>
<li><a href="bedstead-10.bdf"><code>bedstead-10.bdf</code></a>,
<a href="bedstead-20.bdf"><code>bedstead-20.bdf</code></a> –
Bitmap versions at 10 and 20 pixels high.</li>