[XeTeX] supplying missing glyphs?

Michiel Kamermans pomax at nihongoresources.com
Mon Dec 6 12:35:01 CET 2010


Adam,

On 12/2/2010 4:20 PM, Adam McCollum wrote:
> Dear list members,
> I like the Hoefler Text font very much, but I see that it apparently 
> doesn't have glyphs for a number of letters with diacritics, which I 
> sometimes need for transliteration; please see the example text below. 
> I've tried both unicode entry and the TeX way for entering these. Is 
> there any way at all to "fake" these glyphs or otherwise supply them?

My thought would be to simply use a different font for those characters, 
by making use of the interchartok functionality of XeTeX. I do this for 
Chinese transliteration when I'm using Palatino Linotype as base font. 
It has virtually no extended Latin characters, so I rely on FreeSerif 
for the additional characters (and Caslon Pro for quotation, because 
Palatino's quotation symbols are dreadfully ugly).

The snippet of preamble relevant to this:

\XeTeXinterchartokenstate = 1

% set up the fonts
\newfontfamily{\mainlatinfont}{Palatino Linotype}
\newfontfamily{\extlatinfont}{FreeSerif}
\newfontfamily{\quotefont}{Adobe Caslon Pro}

% character classes (xetex  has 5 predefined classes: latin=0, 
cjk=1,2,3, boundary=255)
\newcommand{\extlatinclass}{\newcharclass}
\newcommand{\quoteclass}{\newcharclass}

% extended latin characters not found in Palatino
\XeTeXcharclass `\ǒ \extlatinclass
...
% quotation looks dreadful in Palatino
\XeTeXcharclass `\’ \quoteclass
\XeTeXcharclass `\‚ \quoteclass
\XeTeXcharclass `\“ \quoteclass
\XeTeXcharclass `\” \quoteclass

% transition to latin (including boundary)
\XeTeXinterchartoks \extlatinclass 0 = {\mainlatinfont}
\XeTeXinterchartoks \quoteclass 0 = {\mainlatinfont}
\XeTeXinterchartoks \quoteclass 255 = {\mainlatinfont}

% transitions to extended latin
\XeTeXinterchartoks 0 \extlatinclass = {\extlatinfont}
\XeTeXinterchartoks \quoteclass \extlatinclass = {\extlatinfont}

% transitions to quotation
\XeTeXinterchartoks 0 \quoteclass = {\quotefont}
\XeTeXinterchartoks \extlatinclass \quoteclass = {\quotefont}

- Mike "Pomax" Kamermans
nihongoresources.com



More information about the XeTeX mailing list