chiark / gitweb /
Ben Harris [Sun, 26 Nov 2017 16:20:14 +0000 (16:20 +0000)]
Add prime and double-prime glyphs.
Not the prettiest, but they're visually distinct from apostrophes and
accents.
Ben Harris [Sun, 26 Nov 2017 15:48:33 +0000 (15:48 +0000)]
Add therefore and because symbols.
Ben Harris [Sun, 26 Nov 2017 15:28:53 +0000 (15:28 +0000)]
Add white left and right triangles.
Ben Harris [Sun, 26 Nov 2017 15:21:36 +0000 (15:21 +0000)]
Add mathematical diamond shapes.
Ben Harris [Sun, 26 Nov 2017 14:42:34 +0000 (14:42 +0000)]
Add gratuitous cube root and fourth root symbols.
Ben Harris [Sun, 26 Nov 2017 13:54:45 +0000 (13:54 +0000)]
Add assorted mathematical vertical lines.
Ben Harris [Sun, 26 Nov 2017 13:42:13 +0000 (13:42 +0000)]
Add mathematical ellipsis characters.
Ben Harris [Sun, 26 Nov 2017 12:20:11 +0000 (12:20 +0000)]
Two-level brace and summation characters.
The braces are a compromise, since each glyph has to be usable as both
the top and bottom half of a brace.
Ben Harris [Sun, 26 Nov 2017 12:02:59 +0000 (12:02 +0000)]
Be consistent in capitalisation of block heading comments.
I use sentence case for these where the Unicode standard uses title
case.
Ben Harris [Sun, 26 Nov 2017 12:00:51 +0000 (12:00 +0000)]
Add the various long bracket components.
All are derived simply by lengthening the vertical parts of the
standard glyphs.
Ben Harris [Sun, 26 Nov 2017 10:30:55 +0000 (10:30 +0000)]
Correct the name of ordfeminine in df.ps as well.
Ben Harris [Sun, 26 Nov 2017 10:28:55 +0000 (10:28 +0000)]
New, better invsmileface glyph.
Ben Harris [Sun, 26 Nov 2017 10:21:52 +0000 (10:21 +0000)]
Python 3 compatibility for the editor.
It still works in Python 2.7 as well.
Ben Harris [Sun, 26 Nov 2017 10:04:37 +0000 (10:04 +0000)]
New unhappy face glyph.
It was the only missing face in the BMP.
Ben Harris [Fri, 24 Nov 2017 22:20:25 +0000 (22:20 +0000)]
U+2126 OHM SIGN
Ben Harris [Fri, 24 Nov 2017 22:04:13 +0000 (22:04 +0000)]
Add U+2044, "fraction".
I think that completes StandardEncoding.
Ben Harris [Fri, 24 Nov 2017 22:00:40 +0000 (22:00 +0000)]
Assorted accents from StandardEncoding.
Ben Harris [Fri, 24 Nov 2017 21:38:42 +0000 (21:38 +0000)]
Add "fi" and "fl" ligatures.
Not actually enabled as ligatures, since that would be silly, but some
character sets want them as presentation forms.
Ben Harris [Tue, 21 Nov 2017 22:50:02 +0000 (22:50 +0000)]
Add capital schwa glyph.
I keep seeing it in Commons filenames written in Azerbaijani.
Ben Harris [Tue, 21 Nov 2017 22:17:37 +0000 (22:17 +0000)]
Add partialdiff glyph.
It's part of Mac Roman, and probably some other interesting encodings.
Ben Harris [Tue, 21 Nov 2017 11:43:30 +0000 (11:43 +0000)]
Add the tab-key glyph.
Because it's just about possible.
Ben Harris [Tue, 21 Nov 2017 11:28:15 +0000 (11:28 +0000)]
Subset and superset symbols.
The proper subset symbol is only slightly different from lower-case C,
but I think that's inevitable.
Ben Harris [Tue, 21 Nov 2017 11:21:35 +0000 (11:21 +0000)]
Large mathematical operators: summation, product, and integral.
All of these span the full height of the character cell, since that way
they'll work equally badly with subscripts and superscripts.
Ben Harris [Mon, 6 Nov 2017 00:50:16 +0000 (00:50 +0000)]
A tolerable perthousand sign.
I've made so many bad attempts at this character that this feels like
a win. Also, it's an annoyingly common character in character sets
I'd like to cover.
Ben Harris [Fri, 18 Aug 2017 21:46:41 +0000 (22:46 +0100)]
Improve nib shape for Bedstead Chiseltip.
It's now an integer approximation to the original 20° 100×50 rectangle
that I first used.
Ben Harris [Fri, 18 Aug 2017 21:46:18 +0000 (22:46 +0100)]
Set underline width for stroked fonts.
Ben Harris [Sat, 12 Aug 2017 09:11:28 +0000 (10:11 +0100)]
Set the "H" flag on all glyphs in SFD files.
This turns out to be all it takes to get FontForge to autohint fonts
on generation. FontForge's autohinter isn't perfect, but it's pretty
good and certainly better than anything else I've got.
Ben Harris [Sat, 12 Aug 2017 09:05:52 +0000 (10:05 +0100)]
strokefont: Better font name handling
This gets the PostScript names right. TTF names are more difficult.
Ben Harris [Sat, 12 Aug 2017 08:41:01 +0000 (09:41 +0100)]
strokefont: Set StdHW and StdVW appropriately to pen.
Ben Harris [Sat, 12 Aug 2017 08:36:43 +0000 (09:36 +0100)]
Makefile machinery for stroked fonts.
Ben Harris [Sat, 12 Aug 2017 08:25:56 +0000 (09:25 +0100)]
strokefont: More object-oriented approach.
Now we have one class for each broad class of stroked font. I think
this will be easier to manage.
Ben Harris [Fri, 11 Aug 2017 23:04:22 +0000 (00:04 +0100)]
Beginnings of a script to stroke fonts.
The plan is that bedstead.c will produce a single-path font and then
this script will stroke it in various ways, adapting the font metadata
appropriately.
Ben Harris [Wed, 9 Aug 2017 22:25:04 +0000 (23:25 +0100)]
A scattering of additional characters from Latin Extended-A.
Ben Harris [Wed, 9 Aug 2017 21:23:48 +0000 (22:23 +0100)]
Clip character names to boxes in glyph complement.
Ideally, I'd do something more elegant with over-long glyph names, but
at least keeping them in the boxes doesn't look terrible.
Ben Harris [Wed, 9 Aug 2017 21:03:56 +0000 (22:03 +0100)]
Add U+0149, "napostrophe".
That's the only character that Font Library says is missing for
supporting Afrikaans, so I may as well implement it even if Unicode
does say its use is strongly discouraged.
Ben Harris [Tue, 8 Aug 2017 22:23:55 +0000 (23:23 +0100)]
Emit open contours starting at the beginning.
Before this change, emit_path() would emit contours starting at
whichever point was earliest in the points array. That was fine for
closed contours, but it meant the open contours tended to be emitted
in multiple parts. Now it first searches for start points of open
contours and emits those, and then does what it used to do to emit the
remaining (closed) ones. This has no effect (other than to slow
things down a bit) for fully-closed paths like those in outline
versions of Bedstead, but it makes the stroked ones much cleaner. Now
a contour can only end at a tip or at a 3-way junction.
Ben Harris [Tue, 8 Aug 2017 21:26:58 +0000 (22:26 +0100)]
It's the future: C has a boolean type.
Ben Harris [Tue, 8 Aug 2017 21:25:05 +0000 (22:25 +0100)]
Extract code to emit a single contour from emit_path().
I want to make emit_path() more complex, so pulling out this obvious
unit seems wise.
Ben Harris [Tue, 8 Aug 2017 21:12:59 +0000 (22:12 +0100)]
Quick note on patent describing character rounding technique.
Ben Harris [Tue, 8 Aug 2017 00:33:16 +0000 (01:33 +0100)]
Additional characters for Polish.
Thanks to <http://www.twardoch.com/download/polishhowto/> for
guidance. All misinterpretations are my own. One character is
missing because I still don't have a good way to do an accented
capital S.
Ben Harris [Mon, 7 Aug 2017 23:55:54 +0000 (00:55 +0100)]
Remove explicit mention of Dwarf Fortress files from "all" target.
They're pulled in by $(DISTFILES) anyway.
Ben Harris [Mon, 7 Aug 2017 23:37:06 +0000 (00:37 +0100)]
Don't generate BDF for non-default fonts.
The other widths will generate terrible bitmaps, so just don't bother.
Ben Harris [Mon, 7 Aug 2017 23:29:47 +0000 (00:29 +0100)]
Don't generate PFA and AFM files by default, and don't ship them.
They were only built because I didn't know how to make Ghostscript
use OTF files directly. Now that I do, there's no need to keep
them, so dropping them for 002.000 makes sense.
Ben Harris [Mon, 7 Aug 2017 22:37:17 +0000 (23:37 +0100)]
Better TTF name generation.
Now more-correctly generate family/subfamily names, both the versions
for programs that can't handle much variety (IDs 1 and 2), and the
proper typographic ones (IDs 16 and 17). This should stop "Medium"
turning up in my font selector.
Ben Harris [Mon, 7 Aug 2017 00:50:47 +0000 (01:50 +0100)]
Quick notes on stroking with FontForge.
Ben Harris [Sun, 6 Aug 2017 22:12:09 +0000 (23:12 +0100)]
Fix FontForge Makefile rules to work properly.
When generating secondary targets, they still need to pass the name of
the primary target to FontForge.
Ben Harris [Sun, 6 Aug 2017 21:59:48 +0000 (22:59 +0100)]
Add *.afm to the list of things cleaned by "make clean".
Ben Harris [Sun, 6 Aug 2017 20:33:11 +0000 (21:33 +0100)]
Remove alternate arrows.
While pretty, they were inauthentic and awkward to use. This also
removes the 'salt' lookup, which was inappropriate anyway.
Ben Harris [Sun, 6 Aug 2017 20:28:26 +0000 (21:28 +0100)]
Add default suffices to ss* lookups.
They aren't used as yet, but maybe a bit of extra FontForge scripting
will enable me to avoid searching for glyphs myself.
Ben Harris [Sun, 6 Aug 2017 17:28:03 +0000 (18:28 +0100)]
Add explicit BlueValues, OtherBlues, and BlueFuzz.
BlueValues gains the upper edge of symbols and Hebrew letters.
OtherBlues gains the bottom edge of symbols. BlueFuzz is set to zero
because it's unnecessary (and this is recommended by the Type 1 spec).
Ben Harris [Sun, 6 Aug 2017 14:12:19 +0000 (15:12 +0100)]
Add an assortment of punctuation from the U+2000 block.
Ben Harris [Sun, 6 Aug 2017 12:20:26 +0000 (13:20 +0100)]
Glyph for U+2010 HYPHEN. Also non-breaking hyphen and NBSB.
All glyphs we had already, but under new names.
Ben Harris [Sun, 6 Aug 2017 12:06:12 +0000 (13:06 +0100)]
Daggers, being another embarrassing omission from StandardEncoding.
Ben Harris [Sun, 6 Aug 2017 11:57:19 +0000 (12:57 +0100)]
Glyphs for some of the pictorial control characters in ECMA-17.
Some were already present. Some are difficult.
Ben Harris [Sun, 6 Aug 2017 10:05:49 +0000 (11:05 +0100)]
Redesign alphanumeric control pictures.
They now fill the character cell, which makes them consistent with
fractions.
Ben Harris [Sat, 5 Aug 2017 23:44:18 +0000 (00:44 +0100)]
Fill in graphics for the rest of the C0 controls.
The two-character mnemonics were specified in ECMA-17 (November 1968).
Ben Harris [Sat, 5 Aug 2017 22:52:49 +0000 (23:52 +0100)]
Change design of Greek tonos over lower-case letters to a dot.
This matches ETS 300 706: May 1997, and also the photos of actual
Greek teletext at <https://www.cambus.net/teletext-in-greece/>.
Ben Harris [Sat, 5 Aug 2017 22:07:09 +0000 (23:07 +0100)]
Add "longs" (U+017F) glyph.
Based on "f" with the crossbar removed.
Ben Harris [Sat, 5 Aug 2017 16:10:03 +0000 (17:10 +0100)]
Visible space character.
It seems like the sort of thing a monospaced font should have.
Ben Harris [Sat, 5 Aug 2017 16:04:11 +0000 (17:04 +0100)]
Accented Greek lower-case.
Currently, the tonos used for these looks much like an acute accent.
ETS 300 706 shows a dot-shaped tonos instead, so maybe I should change
to that.
Ben Harris [Sat, 5 Aug 2017 14:47:58 +0000 (15:47 +0100)]
Accented Greek capitals.
Ones with tonos put the accent to the left of the letter rather than
above it, which makes for a rather squashed Omega. In real teletext,
the tonos is put in the character cell to the left, but I don't know
if that can be coded in Unicode properly. Maybe I need a silly
multiple substitution for a space followed by an capital with tonos.
Ben Harris [Tue, 1 Aug 2017 22:27:22 +0000 (23:27 +0100)]
Mechanisms to get metadata right for different weights of font.
bedstead.c can now generate Bedstead Book (and all other widths at
that weight).
Ben Harris [Tue, 1 Aug 2017 17:25:32 +0000 (18:25 +0100)]
Fix a stray global-scope variable.
Ben Harris [Tue, 1 Aug 2017 17:11:51 +0000 (18:11 +0100)]
Shuffle scaling around so we always work on 100×100 pixels.
Width variations are not catered for by scaling on output.
Ben Harris [Mon, 31 Jul 2017 22:48:00 +0000 (23:48 +0100)]
Add row and column headings to glyph complement.
Ben Harris [Mon, 31 Jul 2017 22:22:48 +0000 (23:22 +0100)]
Lay complement out more in keeping with Unicode values.
Now each column represents one column in the Unicode code charts, with
entirely empty columns suppressed. Unencoded characters are packed in
at the end.
Ben Harris [Mon, 31 Jul 2017 21:48:50 +0000 (22:48 +0100)]
Remove a spurious "0 0 moveto" from glyph complement PS.
Ben Harris [Mon, 31 Jul 2017 21:39:43 +0000 (22:39 +0100)]
Use pd2pdf in place of gs -sDEVICE=pdfwrite.
This is simpler and means that .setpdfwrite gets called automatically.
Ben Harris [Mon, 31 Jul 2017 21:26:40 +0000 (22:26 +0100)]
Turn off font subsetting when generating glyph complement.
After all, we do rather need the full font. Admittedly, we don't need
the 14 copies tht Ghostscript 9.18 puts in, but this still somehow
makes the file smaller.
Ben Harris [Mon, 31 Jul 2017 20:35:32 +0000 (21:35 +0100)]
Put minimal DSC comments into glyph complement PostScript.
Ben Harris [Mon, 31 Jul 2017 19:43:50 +0000 (20:43 +0100)]
Add single angle quotation marks.
Another easy bit of AdobeStandardEncoding that we're missing.
Ben Harris [Mon, 31 Jul 2017 19:30:07 +0000 (20:30 +0100)]
Correct name of ordfeminine.
Ben Harris [Mon, 31 Jul 2017 19:28:41 +0000 (20:28 +0100)]
Add a few missing accents from AdobeStandardEncoding.
Specifically, circumflex (U+02C6), caron (U+02C7), and tilde (U+0x2DC).
Ben Harris [Mon, 31 Jul 2017 18:27:14 +0000 (19:27 +0100)]
Feed OTF fonts to GhostScript via Fontmap rather than PFA on command-line.
This should make it practical to provide metadata in comments for (e.g.)
PDF generation.
Ben Harris [Mon, 31 Jul 2017 16:02:08 +0000 (17:02 +0100)]
Generate PostScript FontName programmatically from FullName.
This has th unfortunate effect of changing the FontName of Bedstead
Semi Condensed from Bedstead-Semicondensed to Bedstead-SemiCondensed.
The former name was an error.
Ben Harris [Mon, 31 Jul 2017 15:49:05 +0000 (16:49 +0100)]
Replace "param" in variable etc names with "width".
I think I'll want to vary different design parameters independently,
and I don't want to have to maintain the full cross product by hand.
Ben Harris [Mon, 31 Jul 2017 15:34:22 +0000 (16:34 +0100)]
Don't list "bedstead" as a prereq for "make dist".
The recipe doesn't use it.
Ben Harris [Mon, 31 Jul 2017 15:29:45 +0000 (16:29 +0100)]
Use the correct option to get a glyph complement.
It didn't matter before because bedstead.c would almost always produce
a glyph complement.
Ben Harris [Mon, 31 Jul 2017 15:21:57 +0000 (16:21 +0100)]
No more global-scoped functions or variables.
Apart from main(), of course. Everything else is now file-scoped at
most. This is more consistent, and might allow for more
optimisations (if I ever used -O).
Ben Harris [Mon, 31 Jul 2017 15:18:06 +0000 (16:18 +0100)]
Make nglyphs and nparams global.
nglyphs was used in two functions, and there seems no reason to
localise these.
Ben Harris [Mon, 31 Jul 2017 15:16:48 +0000 (16:16 +0100)]
Fix a stupid strcmp error in glyph-complement option processing.
Ben Harris [Tue, 25 Jul 2017 23:17:57 +0000 (00:17 +0100)]
Sort glyph complement by Unicode code point.
Ben Harris [Tue, 25 Jul 2017 22:36:10 +0000 (23:36 +0100)]
Add mechanisms (as yet unused) for varying Bedstead's weight.
There are rather tight limits to the weights it can achieve, though.
Ben Harris [Sat, 22 Jul 2017 23:24:38 +0000 (00:24 +0100)]
Further improvements to the glyph complement PDF.
Now has multiple pages and draws character cell.
Ben Harris [Sat, 22 Jul 2017 20:44:12 +0000 (21:44 +0100)]
Beginnings of mechanisms for generating a glyph complement PDF.
Ben Harris [Wed, 19 Jul 2017 21:14:49 +0000 (22:14 +0100)]
Make U+00A8 "dieresis" consistent with other diereses.
Ben Harris [Wed, 19 Jul 2017 20:46:47 +0000 (21:46 +0100)]
Gratuitous Cyrillic letters.
Now I think we have everything needed for Russian, Ukrainian,
Belarusian, and Bulgarian.
Ben Harris [Mon, 17 Jul 2017 23:14:20 +0000 (00:14 +0100)]
Further cleanup of skeleton paths.
The cleanup itself is good, but emit_paths() will need enhancement.
At the moment, it assumes that all paths are closed, so it doesn't
matter where on a path it starts emitting it. With an open path,
though, it's important to emit it starting at one end, so there will
have to be a mechanism for distinguishing open from closed paths and
behaving accordingly.
Ben Harris [Mon, 17 Jul 2017 22:23:44 +0000 (23:23 +0100)]
Another assertion.
Ben Harris [Mon, 17 Jul 2017 22:22:38 +0000 (23:22 +0100)]
Start path simplification for skeleton font.
This finds places where multiple segments can be replaced by a single
straight line and so replaces them.
Ben Harris [Mon, 17 Jul 2017 20:19:03 +0000 (21:19 +0100)]
Very rough code for a single-line skeleton font.
This uses a different dochar() function which currently emits a lot of
little path fragments in roughly the right places.
Ben Harris [Sun, 16 Jul 2017 21:11:31 +0000 (22:11 +0100)]
Version 001.003
Ben Harris [Sun, 16 Jul 2017 17:26:07 +0000 (18:26 +0100)]
New, less ugly, U+01AB.
Ben Harris [Sun, 16 Jul 2017 16:09:20 +0000 (17:09 +0100)]
New "oslash" glyph.
Prettier and doesn't include solid blocks of pixels that will work
badly in a single-line version of Bedstead.
Ben Harris [Sun, 16 Jul 2017 15:58:21 +0000 (16:58 +0100)]
Fix typo in U+025D.
Ben Harris [Sun, 16 Jul 2017 13:58:25 +0000 (14:58 +0100)]
Correct alt text for extended.png.
Ben Harris [Sun, 16 Jul 2017 13:57:39 +0000 (14:57 +0100)]
Remove sample of mosaic graphics.
I don't think I can depend on browser font support just yet.
Ben Harris [Sat, 15 Jul 2017 22:25:36 +0000 (23:25 +0100)]
Set list-style-type in CSS.
It was obviously wrong that the <ul> on the Bedstead Web page had
circular bullets. The current CSS Lists and Counters working draft,
<http://www.w3.org/TR/2014/WD-css-lists-3-
20140320/>, allows for setting
the bullet to a string, and Firefox 54 supports this, so use it in the
CSS for Bedstead's Web page.
Ben Harris [Sat, 15 Jul 2017 22:22:14 +0000 (23:22 +0100)]
Comprehensive rework of widths. Now there are six.
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.
Ben Harris [Tue, 11 Jul 2017 12:50:16 +0000 (13:50 +0100)]
Adjust U+02AC and U+02AD, bilabial and bidental percussive.
I've reduced the size of the bidental percussive in general since it
seems to be based on the dental diacritic. Having done that, it fits
in the x-height, which is sensible since IPA is generally lower-case,
and then it seems sensible to make the bilabial percussive fit in the
x-height too.