"circleplus" is the AGLFN name, but it was called "uni2259" in
Bedstead 002.000 and 002.001, so the old name should stay for
compatibility, for instance with existing PostScript files.
The consequence of this is to narrow the diagonal strokes. They go
from being 6% wider than horizontal and vertical strokes to being 0.4%
wider. I like the consistency, but it also has a practical advantage:
at round pixel sizes the daigonal edges no longer pass through pixel
centres. This means that we're no longer at the mercy of rasterizer
tie-breaking rules so (for instance) Ghostscripts rasterizations are
symmetric now.
Since the shape of diagonal lines on a real SAA5050 is determined by
both edges of a clock whose duty cycle is only specified as being
between 0.4 and 0.6, I claim this is still within the tolerances of
the original.
I thought repeat marks might be useful, and ended up doing a few others.
The repeat marks and clefs are based on the assumption that a five-line
stave fills the character cell and that you're using the clefs in their
most common position.
The OpenType spec isn't entirely confident here, but it seems to think
that name ID 16 is unnecessary if it's identical to 1, and it makes
sense to me that 16/17 should go together as a pair just like 1/2 do.
Without then, the feature doesn't work, and more surprisingly
FontForge puts the description of the feature into string ID 0, which
is meant to be the copyright notice.
On browsers that support Web fonts, it seems silly to still be using
images for displaying font samples. So I've tried to translate the
samples into HTML. The result is a bit of a mess, but it roughly works.
The images are still there, and the stylesheet tries to arrange that
they get used where appropriate, and that speech synthesizers don't try
to read the samples.
Emitting a separate "AlternateSubs2" line for each target doesn't work
properly, so we make a second pass over the alternates for the current
glyph, constructing a single "AlternateSubs2" line afer doing all the
"Substitution2"s.
The "separated graphics" flag is now in the "flags" field, rather than
in the character data, and the bits specifying which cells are painted
are now contiguous. Also the MOS flag is now called MOS6, to go with
MOS4. This makes the specification of the ZVBI code points more
complex, but cleans up the Unicode ones, which I think is appropriate.
On the way, I found that 'palt' was being applied to 4-cell mosaic
graphics and fixed that.
The shapes of the 4-cell mosaic graphics are based on an alternative
history in which Teletext adopted 4-cell graphics. It's obviously
reasonable that such a world would still have separated graphics, so
let's have them.
This makes me thing that the method I've used for flagging separated
graphics is silly, but that's a story for another commit.
While Unicode 13 added code points for 6-cell mosaic graphics, it
didn't specify any way to select separated vs contiguous graphics.
This differs fron ZVBI, which used differect code points for separated
and contiguous glyphs. This means that separated graphics must be a
matter of style, which is consistent with the way that they're
selected by a control character in Teletext.
In OpenType, implement this as a stylistic set, 'ss16', that replaces
the contiguous glyphs with their separated counterparts. I'm
reserving 'ss14' for the 4-cell equivalent.
There are Unicode code points for most Latin small capital letters, so
we may as well make our existing designs for them available under those
code points. The glyphs generated by the 'smcp' and 'c2sc' lookups are
now aliases for the canonical Unicode versions.