chiark / gitweb /
Comprehensive rework of widths. Now there are six.
authorBen Harris <bjh21@bjh21.me.uk>
Sat, 15 Jul 2017 22:22:14 +0000 (23:22 +0100)
committerBen Harris <bjh21@bjh21.me.uk>
Sat, 15 Jul 2017 22:22:14 +0000 (23:22 +0100)
The names of the widths now track those in the OpenType 'OS/2' table, so
the former condensed and semicondensed are now ultra-condensed and
extra-condensed, and there are new condensed and semi-condensed widths
to fill the gaps.  Also, the fonts are named more consistently with
Adobe's practice: "Bedstead Semi Condensed" and so forth.

The new Bedstead Condensed makes a pretty decent terminal font, which is
a nice side-effect.

Makefile
bedstead.c
bedstead.css
extended.ps
index.xhtml

index 3bb5fd8f4a25635ac90ab93e70f089297d9d39c9..f89376d0ecedab59d626db9d7e204bd292fc40c4 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,18 +1,40 @@
-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 \
@@ -21,10 +43,9 @@ bedstead-sem.sfd: bedstead
 %.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 $<
@@ -33,14 +54,6 @@ bedstead-%-df.png: df.ps 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
index bb5e709d7ffaefaa9cc0dbb553df6c783dc037ad..d0b866d702de19b4229a74bcb15366b8236cd476 100644 (file)
@@ -141,23 +141,35 @@ struct param const params[] = {
                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 = &params[0];
index 35a6569d1aae397138a6b13a3f9f12347d0954f7..edc8ab03c77235b299c0b9af1aebd54dcdc75ffa 100644 (file)
@@ -15,7 +15,7 @@ kbd, code, tt, pre {
 
 h2 {
     font-size: 2em;
-    font-stretch: condensed;
+    font-stretch: ultra-condensed;
     font-weight: inherit;
     margin-top: 0.5em;
     margin-bottom: 0.5em;
@@ -27,11 +27,36 @@ h1, h2 {
 
 @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");
 }
index 93bf1cad616c84c5918da975c832e08b44fa6ba4..91852e07f2a72ce66d6b119c378ab718ec72e23f 100644 (file)
@@ -1,10 +1,10 @@
-<< /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
index df084c76215e5e1380888cb1b3c21d751e284958..9f50464970f4f4ea4ce0cbc061aceb55d5867bf5 100644 (file)
 
     <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>
        &ndash; Full source and binary distribution containing everything
-       below.</li>
+       below and more.</li>
       <li><a href="bedstead.c"><code>bedstead.c</code></a> &ndash; The C
        program that generates the font.</li>
-      <li><a href="bedstead.sfd"><code>bedstead.sfd</code></a> &ndash;
-       The Spline Font Database file for use with FontForge.</li>
-      <li><a href="bedstead.otf"><code>bedstead.otf</code></a> &ndash;
-       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> &ndash;
-       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> &ndash;
-       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> &ndash;
-       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> &ndash;
+           Bedstead</li>
+         <li><a href="bedstead-extended.otf"><code>bedstead-extended.otf</code></a>
+           &ndash; Bedstead Extended</li>
+         <li><a href="bedstead-semicondensed.otf"><code>bedstead-semicondensed.otf</code></a>
+           &ndash; Bedstead Semi Condensed</li>
+         <li><a href="bedstead-condensed.otf"><code>bedstead-condensed.otf</code></a>
+           &ndash; Bedstead Condensed</li>
+         <li><a href="bedstead-extracondensed.otf"><code>bedstead-extracondensed.otf</code></a>
+           &ndash; Bedstead Extra Condensed</li>
+         <li><a href="bedstead-ultracondensed.otf"><code>bedstead-ultracondensed.otf</code></a>
+           &ndash; 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> &ndash;
        Bitmap versions at 10 and 20 pixels high.</li>