# Accessing Private Use Area Character by fontspec in XeTeX

I am using XeTeX to encode Opentype fonts. One of the feature of opentype font is availability of Private Use Area.

Generally, Private Use Area in most cases contains different variants of same characters and different ligatures. It also contains characters that has not been defined by Unicode. This Private Use Area comes in great application when encoding many Indic Texts(Sanskrit and others), which have many variants of same text and many more text left to be encoded by Unicode. So, font provider supply those characters in Private Use Area.

Question: How do I access Private Use Area by using fontspec in XeTeX ? Yes! I check the manual of fontspec but didn't seem to find this ?

Any help would be appreciated.

-
add comment

## 2 Answers

If you want to write "different variants of same characters and different ligatures" as your quotation says, then you should not use the PUA but select glyph variants. Unicode encodes characters, not glyphs, and fonts using the PUA is usually only due to technical reasons; PUA characters are non-portable and shoudn't be entered directly. See section 10.9 in the fontspec manual on how to select glyph variants manually. If that isn't sufficient, describe your actual goal.

-
Ya! I just check glyph variant with Zapfino font and it worked. But Zapfino contains different .otf files for different variants. So I am quite confused with this glyph variant. –  Ujjwol Sep 16 '10 at 12:19
Portability is of no issue for me, if I can at least compile and get pdf with using that character. My actual goal is to encode a PUA character with features of the a specific unicode character, by this I mean positioning of characters for Indic scripts where they need to be changed than the default position. –  Ujjwol Sep 16 '10 at 12:23
If you are confused with my goal, I will expand it. –  Ujjwol Sep 16 '10 at 12:24
add comment

You can either insert the character itself into the source, since XeTeX expects unicode-encoded source (provided your editor is compliant), or you can use \char"#### where #### is the unicode hex number.

\documentclass{article}
\usepackage{fontspec}
\setmainfont{Linux Libertine O}

\begin{document}
 %Here I have the character itself, which may or may not show up on your end
\char"E000 % here is the unicode reference number
\end{document}


produces:

There are probably other ways too, but these work for me.

-
Inserting he literal character for a glyph that by definition gives you different shapes in different fonts is probably going to be a bit confusing; I'd recommend the second approach (usually with a macro to make it obvious what you're trying to insert) –  Will Robertson Sep 15 '10 at 22:42
How do I find specific number for that character of PUA ? I am using Linux. –  Ujjwol Sep 16 '10 at 12:01
Even after I will have figured out this method, it will work only for Non-Indic scripts, Indic Scripts needs repositioning of characters, which I think is not possible for PUA. –  Ujjwol Sep 16 '10 at 13:03
add comment