[NTG-context] accessing glyphs in the private area

Ulrike Fischer news3 at nililand.de
Tue Oct 2 09:29:51 CEST 2018


Am Tue, 2 Oct 2018 06:55:02 +0200 schrieb luigi scarso:

>> For what do you reserve the space in the PUA?

>  http://www.pragma-ade.nl/general/manuals/fonts-mkiv.pdf
> page 32 of the document :
 
> As we already mentioned in a previous chapter, in ConTeXt we use
> Unicode internally. This also means that fonts are organized this
> way. By default the glyph representation of a Unicode character
> sits in the same slot in the glyph table. All additional glyphs,
> like ligatures or alternates are pushed in the private unicode
> space. This is why in the lists shown in the figures the
> ligatures have a private Unicode number.

Hm. To clarify. In xetex there is clear distinction between the slot
and unicode. \XeTeXglyph (slot) and \char (unicode) give different
output and \char actively uses the tounicode mapping of the font.  

\font\test="[lmroman10-regular.otf]"
\test
\XeTeXglyph"7A  
\char"7A
\bye


In luatex \char and \Uchar don't really care about unicode, even if
the font has tounicode=1 and tounicode entries, they access the char
by the hashed integer number. 

So to get "unicode" the font loader has to sort the glyphs, index
unicode glyphs by their unicode code point, and assign "non-unicode"
glyphs numbers that don't interfere. 

Did I got right?

Then I do understand that you need some free numbers to push
glyphes. But I do not understand why to achieve this you remove
glyphs from their unicode points. The PUA is not some non-unicode
wilderness. The code points there are as valid as in the other code
blocks. You wouldn't move away the greek block to get the place, so
why do you think it is okay to throw out of the PUA block what SIL
and other font designers encoded there?  Can't you check for a free
range instead?

-- 
Ulrike Fischer 
http://www.troubleshooting-tex.de/



More information about the ntg-context mailing list