我想在unicode-math
包中使用数学字体。我写的代码是
\documentclass{article}
\usepackage{fontspec}
\usepackage{unicode-math}
\setmainfont{TeX Gyre Pagella}
\setmathfont{TeX Gyre Pagella Math}
\begin{document}
\begin{equation}
\vec{F} = m \vec{a}
\end{equation}
\end{document}
但这不能用 xelatex 编译。我得到了输出
This is XeTeX, Version 3.14159265-2.6-0.999991 (TeX Live 2019/Arch Linux) (preloaded format=xelatex)
restricted \write18 enabled.
entering extended mode
(./document.tex
LaTeX2e <2018-12-01>
(/usr/share/texmf-dist/tex/latex/base/article.cls
Document Class: article 2018/09/03 v1.4i Standard LaTeX document class
(/usr/share/texmf-dist/tex/latex/base/size10.clo))
(/usr/share/texmf-dist/tex/latex/fontspec/fontspec.sty
(/usr/share/texmf-dist/tex/latex/l3packages/xparse/xparse.sty
(/usr/share/texmf-dist/tex/latex/l3kernel/expl3.sty
(/usr/share/texmf-dist/tex/latex/l3kernel/expl3-code.tex)
(/usr/share/texmf-dist/tex/latex/l3kernel/l3xdvipdfmx.def)))
(/usr/share/texmf-dist/tex/latex/fontspec/fontspec-xetex.sty
(/usr/share/texmf-dist/tex/latex/base/fontenc.sty
(/usr/share/texmf-dist/tex/latex/base/tuenc.def))
(/usr/share/texmf-dist/tex/latex/fontspec/fontspec.cfg)))
(/usr/share/texmf-dist/tex/latex/unicode-math/unicode-math.sty
(/usr/share/texmf-dist/tex/latex/unicode-math/unicode-math-xetex.sty
(/usr/share/texmf-dist/tex/latex/l3packages/l3keys2e/l3keys2e.sty)
(/usr/share/texmf-dist/tex/latex/filehook/filehook.sty)
(/usr/share/texmf-dist/tex/latex/base/fix-cm.sty
(/usr/share/texmf-dist/tex/latex/base/ts1enc.def))
(/usr/share/texmf-dist/tex/latex/unicode-math/unicode-math-table.tex)))kpathsea:make_tex: Invalid filename `TeX Gyre Pagella Math/OT', contains ' '
! Package fontspec Error: The font "TeX Gyre Pagella Math" cannot be found.
For immediate help type H <return>.
...
l.8
? x
No pages of output.
Transcript written on document.log.
字体已成功安装,tllocalmgr install tex-gyre tex-gyre-math
因为
Initializing ...
tex-gyre is already installed with texlive-core
and it is uptodate
tex-gyre-math is already installed with texlive-core
and it is uptodate
我还可以看到使用字体管理器已成功安装字体。那么为什么找不到字体呢?代码在 Overleaf 上编译成功。
答案1
安装正确的软件包
如果你正在手动安装 TeX Live 2019,那么 TeX Live 包tex-gyre-math
应该包含该文件,并且fc-match
应该能够在那里找到它。重新运行tlmgr install tex-gyre-math
并tlmgr update --self --all
以拥有 TeX Live 安装的任何用户身份运行。运行sudo fc-cache -fsv
重建 XeTeX 的字体缓存也可能会有所帮助。
您可能还从发行版安装了 TeX Live。在这种情况下,请确保安装了正确的软件包。您的日志显示您正在 Arch Linux 上运行。我自己没有运行该发行版,但根据文件列表,该texlive-core
软件包安装了/usr/share/texmf-dist/fonts/opentype/public/tex-gyre-math/texgyrepagella-math.otf
,其余的 TeX Gyre 字体位于tex-gyre-fonts
、texlive-fontsextra
和otf-latin-modern
中otf-latinmodern-math
。由于您的日志表明您正在运行 Arch Linux 版本的 XeLaTeX,但您引用的是 CTAN 软件包而不是 Arch Linux 软件包,所以我怀疑您在某个地方配置有误。
如果这不起作用
您有一个不寻常的安装,但也许您不想摆脱它。
- 跑步
find /usr -name "texgyrepagella-math.otf" -print
- 查找文件安装在哪个目录中(并确保它没有被安装两次)
- 将该目录添加到
/etc/fonts/conf.avail/09-texlive-fonts.conf
- 跑步
sudo fc-cache -fsv
。
还要检查您是否没有在用户目录中创建任何覆盖全局安装更新的文件,如果您运行updmap
或tlmgr
处于用户模式,则可能会发生这种情况。如果您的主文件夹中的隐藏 TeX Live 目录中没有任何重要文件,请考虑删除它们。