我使用 Unicode-math 包,以 Latin Modern Math 作为我的数学字体。因此
\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}
在输出(由 XeTeX 生成)中,存在\RightArrow
,但缺少\mapsto
和\Longrightarrow
。我收到一条警告消息,内容为:
** WARNING ** Invalid CMap mapping entry. (ignored)
日志文件中还有以下内容:
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;!
据称缺失的字符肯定是包含在拉丁现代数学中。例如,我可以在 Windows 字符映射和 FontForge 中看到它们。
有人知道发生了什么问题吗?
答案1
来自.log
文件:
C:/Windows/Fonts/LMMATH-v0903.otf
因此,您似乎正在使用拉丁现代数学的一个非常非常旧的版本 (0.903)。当前版本是 1.958。使用后一个版本,我可以使用 luaTeX 和 XeTeX 获得 MWE 的所有数学字符。
如果 TeX 安装已过期,请更新它。此外,您可能希望从 Windows 字体系统目录中删除旧版本,以防止 XeTeX 查找和使用过期版本。如果您需要 TeX 世界之外的字体,请在那里安装更新的字体。