From: Peter Constable (petercon@microsoft.com)
Date: Mon Dec 08 2003 - 14:16:24 EST
> From: unicode-bounce@unicode.org [mailto:unicode-bounce@unicode.org]
On Behalf
> Of Mark E. Shoulson
> I also agree, but I point out that the sufficiently perverse could
come
> up with some pretty tough examples. Applying color is a pretty benign
> style, but what if I wanted a boldface circumflex on a normal letter?
Shaping of diacritics where such styling differences (face, size or
weight) occur is problematic to implement due to reasons related to
design and also reasons related purely to the technologies involved:
Diacritic positioning can be accomplished in a few different ways:
- substitution of alternate glyphs that have metrics that result in
different positioning of the outline, to correspond with different
metrics of a base glyph
- kerning rules (in this context adjust the glyph by x units
horizontally and y units vertically)
- attachment anchor points (adjust the glyph so that point i in the
outline aligns with point j in the outline of the base glyph)
Whichever approach is used in a font implementation, the implementation
will have assumed equal point sizes (remember, the outline has no point
size) and equal face and weight/style characteristics. If positioning by
attachment point is used, it may be possible to produce somewhat
tolerable results when the base and diacritic are different sizes, or
one is (say) bold while the other is italic; but even then ideal results
should not be expected, and might not even be clearly definable. (What's
the correct positioning of a non-italic circumflex over an italic o?)
Then there's the issue of the font technologies involved: whether we're
talking about OpenType, AAT, Graphite, Pango or whatever, and no matter
which approach to positioning described above is used, this kind of
positioning is accomplished by rules within a given font (not typeface,
but font) that describe how particular glyphs within that font should
behave in relation to one another. There is absolutely no way to say
that glyph x in font A should behave in a particular way when combined
with glyph y in some different font B. In principle, these rules can
still apply when there is a change in colour or point size, but as soon
as you change between different font files (change in face or weight),
no glyph processing is possible.
> Or even more obnoxious, a 10-point circumflex on a an 8-point letter?
> These could be tricky to compute.
[then in a subsequent message]
> (and now I contradict myself with a counterexample. In
> http://omega.enstb.org/yannis/pdf/biblical-hebrew94.pdf, Yannis
> Haralambous notes--correctly--that when typesetting the Hebrew Bible,
> letters that are written small hang from the top line and have
> normal-sized vowels below them (and the vowels are below the baseline
of
> the normal text))
It might be possible to develop technologies that allowed correct
positioning in particular cases where different sizes were involved, but
I think we still have some more basic problems to solve, like finishing
getting implementations that offer basic support for all of the scripts
in Unicode 4.0.
Peter
Peter Constable
Globalization Infrastructure and Font Technologies
Microsoft Windows Division
This archive was generated by hypermail 2.1.5 : Mon Dec 08 2003 - 15:02:09 EST