# XeLaTeX replaces characters present in font with missing character placeholders

I'm using XeLaTeX in order to have access to certain opentype Unicode fonts, including Calluna. However, XeLaTeX refuses to display certain characters which exist in the font. I know they exist in the font because I can see them in charactermap, and Windows can display them just fine in other applications. The characters also display just fine when entered into TeXworks.

Unfortunately, when processed by XeLaTeX (with TeXworks) the characters are replaced with the "no character" placeholder from that font.

Screenshot below, showing the raw XeLaTeX, pdf generated (it displays the same in adobe acrobat), and charactermap:

And here's the demo code:

\documentclass[10pt,letterpaper]{article}
\usepackage{fontspec}
\setmainfont[Numbers=Lining]{Calluna}
\setsansfont[Numbers=Lining]{Museo Sans 300}
\begin{document}
◆●■▲◄►▼◎∴∑→㎏€\\
\textsf{◆●■▲◄►▼◎∴∑→㎏€}
\end{document}


TeXworks is set to its default encoding, which is UTF-8.

The log file reveals that XeTeX believes the characters are missing; however they clearly are not, based on charactermap:

Missing character: There is no ◆ in font Calluna/ICU:script=latn;language=DFL
T;+lnum;!
Missing character: There is no ● in font Calluna/ICU:script=latn;language=DFL
T;+lnum;!
Missing character: There is no ■ in font Calluna/ICU:script=latn;language=DFL
T;+lnum;!
Missing character: There is no ◎ in font Calluna/ICU:script=latn;language=DFL
T;+lnum;!
Missing character: There is no ∴ in font Calluna/ICU:script=latn;language=DFL
T;+lnum;!
Missing character: There is no ㎏ in font Calluna/ICU:script=latn;language=DFL
T;+lnum;!


Is there any way to fix this?

• Their existence != their sffamily (for \textsf{}) exists in that font. – Ch'en Meng Oct 17 '13 at 7:27
• @Ch'enMeng I'm not concerned about the sf text for now. It's more there for comparison. You'll note that the screenshot shows the charactermap display for calluna, which is the main font and the text editor font. – Marcin Oct 17 '13 at 7:28
• Catch your problem now, but have no idea about it. :( – Ch'en Meng Oct 17 '13 at 7:36
• The character map is not a proof: It can pull chars from other fonts to fill the blanks - I ran into the same problem with another font just some days ago. You should inspect the font e.g. with fontforge or fontlab to see the actual glyphs. You can also try this code to see the glyph map and so check if perhaps only the encoding is wrong: tex.stackexchange.com/a/37418/2388 – Ulrike Fischer Oct 17 '13 at 7:58
• If XeTeX thinks the font does not have a given character, then it is almost certain that the font does indeed lack that character, and as Urlike said; character map is not a proof. – Khaled Hosny Oct 17 '13 at 10:04