[XeTeX] no small caps in GNU FreeSerif font?

mskala at ansuz.sooke.bc.ca mskala at ansuz.sooke.bc.ca
Sun Dec 11 22:39:47 CET 2011

On Mon, 12 Dec 2011, Daniel Greenhoe wrote:
> should be at U+1D00. But in Pagella-regular, U+1D00 is empty. Where
> are the small caps being hidden? Or are they algorithmically generated
> from the Latin capital letters?

I think the officially correct way for an OpenType font to support small
caps is for them to be unencoded glyphs, with no Unicode code points
specified; then the "smcp" or similar feature will substitute them in
where appropriate.  If you have a font where they're unencoded, you're not
going to be able to access them just by mapping code points to code points
as teckit does.

Adobe formerly used private-use code points in the range F761 to F77A for
small cap glyphs.  If you happen to have a font that encodes the small cap
glyphs that way, you could get to them by mapping to those code points.
The current versions of my own Tsukurimashou fonts use the Adobe code
points for small caps because some of the build tools don't yet support
unencoded glyphs, but I'm probably going to change that in the future.

I think looking for small caps to have different code points is really the
wrong way to do it - and that's why Adobe no longer uses those code
points.  U+1D00 is *not* "a" with a "small cap" style applied; it is a
letter of the International Phonetic Alphabet.  If you mean the letter "a"
that we use in ordinary English, you should be writing U+0061; and the
question of whether it looks Roman, Italic, small cap, or Comic Sans,
should be determined by the font.

Matthew Skala
mskala at ansuz.sooke.bc.ca                 People before principles.

More information about the XeTeX mailing list