Mac下使用xelatex编译LaTeX文档报xdvipdfmx Invalid font错误求助
解决方案
- 补全fontspec字体变体配置
你日志里只显示fontspec注册了Fontin的常规和小型大写两种变体,没有注册斜体、粗体变体。当你的文档里用到\textit{}、\textbf{}这类斜体、粗体语法时,xelatex找不到对应字体就会抛出xdvipdfmx:fatal: Invalid font错误。
修改你的字体配置代码,显式指定所有变体:
% 如果你是把字体放在项目本地目录,保留Path参数,系统安装的字体可以删除Path行 \setmainfont{Fontin}[ Path = ./fonts/ , UprightFont = *-Regular.otf , ItalicFont = *-Italic.otf , BoldFont = *-Bold.otf , SmallCapsFont = *-SmallCaps.otf , Mapping = tex-text, Ligatures = TeX ]
检查Mac字体安装权限
如果你在字体册安装字体时选择了「仅为当前用户安装」,MacTeX的xelatex进程大概率无法读取用户目录下的字体文件。
操作步骤:打开字体册找到Fontin字族,右键选择「在访达中显示」,把4个.otf字体文件复制到/Library/Fonts系统级字体目录(需要输入用户密码授权),操作完成后重启终端再尝试编译。用最小测试文档排查问题
先跑极简测试文档,排除原文档其他配置干扰:
\documentclass{article} \usepackage{fontspec} \setmainfont{Fontin} \begin{document} 常规字体 \textit{斜体测试} \textbf{粗体测试} \textsc{小型大写测试} \end{document}
如果这个文档用xelatex可以正常编译,说明问题出在原文档的字体配置上;如果还是报错,说明字体安装或者字体文件本身有问题。
- 字体兼容问题处理
Fontin的.otf格式本身是跨平台兼容的,不需要转换为其他格式。如果上述步骤都无效,大概率是你手里的字体文件损坏,重新下载官方Fontin字族安装包重新安装即可。
内容的提问来源于stack exchange,提问作者Ryan Collingham
相关产品推荐
相关产品推荐

