[Tex/LaTex] Alleged Missing Characters in Latin Modern Math

fontslatin-modernunicode-math

I'm using the Unicode-math package, with Latin Modern Math as my math font. Thus

\documentclass[]{article}

\usepackage{unicode-math}
\setmainfont{Latin Modern Roman}
\setmathfont{Latin Modern Math}

\begin{document}
The function $x \mapsto 2x$. But $A \Rightarrow B$, and $C \Longrightarrow D$.
\end{document}

In the output (produced by XeTeX), the \RightArrow is present, but the \mapsto and \Longrightarrow are missing. I get a warning message saying:

** WARNING ** Invalid CMap mapping entry. (ignored)

and also this in the log file:

Requested font "Latin Modern Math/OT:script=math;language=DFLT;+ssty=1;" at 4.99992pt
-> C:/Windows/Fonts/LMMATH-v0903.otf
Missing character: There is no ↦ in font LMMath-Regular/OT:script=math;language=DFLT;!
Missing character: There is no ? in font LMMath-Regular/OT:script=math;language=DFLT;!

The allegedly missing characters certainly are included in Latin Modern Math. I can see them in Windows Character Map and in FontForge, for example.

Anyone know what's going wrong??

Best Answer

From the .log file:

C:/Windows/Fonts/LMMATH-v0903.otf

Thus it seems that you are using a very very old version (0.903) of Latin Modern Math. The current version is 1.958. With the latter version I get all the math characters of the MWE both with luaTeX and XeTeX.

If the TeX installation is out of date, update it. Also you might want to remove the old version from the Windows font system directory to prevent XeTeX from finding and using the outdated version. If you need the font outside the TeX world, then install an updated font there.

Related Question