我想在我的 LaTeX 项目中使用 XITS/XITS Math(使用 XeTeX)。按照以下答案这个问题,我创建了一个文件/etc/fonts/conf.avail/76-texlive-fonts.conf
,内容如下:
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<dir>/usr/share/texlive/texmf-dist/fonts/opentype</dir>
<dir>/usr/share/texlive/texmf-dist/fonts/truetype</dir>
</fontconfig>
我之前已经检查过上述路径以确保它们是正确的:
$ ls -l /usr/share/texlive/texmf-dist/fonts/opentype/public/xits
-rw-r--r-- 1 root root 111280 Nov 25 2016 xits-bolditalic.otf
-rw-r--r-- 1 root root 151692 Nov 25 2016 xits-bold.otf
-rw-r--r-- 1 root root 115536 Nov 25 2016 xits-italic.otf
-rw-r--r-- 1 root root 248956 Nov 25 2016 xits-mathbold.otf
-rw-r--r-- 1 root root 530128 Nov 25 2016 xits-math.otf
-rw-r--r-- 1 root root 249372 Nov 25 2016 xits-regular.otf
之后,我添加了一个符号链接/etc/fonts/conf.d/
:
$ ls -l /etc/fonts/conf.d/76-texlive-fonts.conf
lrwxrwxrwx 1 root root 35 Jan 10 13:15 /etc/fonts/conf.d/76-texlive-fonts.conf -> ../conf.avail/76-texlive-fonts.conf
…然后运行$ fc-cache -fv
。其输出包括:
/usr/share/texlive/texmf-dist/fonts/opentype/public/xits: caching, new cache contents: 6 fonts, 0 dirs
尽管如此,当我现在运行时fc-list | grep -i xits
,没有输出,并且编译下面的 MWE 会出现以下错误,正如预期的那样:
…
main.tex:11: !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! [\setmainfont{XITS}]
main.tex:11: Font TU/XITS(0)/m/n/12=XITS at 12.0pt not loadable: Metric (TFM) file or installed font not found. [\setmainfont{XITS}]
…
main.tex:12: !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! [\setmathfont{XITS Math}]
main.tex:12: Font TU/XITSMath(0)/m/n/12="XITS Math/OT" at 12.0pt not loadable: Metric (TFM) file or installed font not found.
…
以下是 MWE:
\documentclass[12pt,a4paper]{article}
\usepackage{fontspec}
\usepackage{unicode-math}
\setmainfont{XITS}
\setmathfont{XITS Math}
\begin{document}
Hello! Some math: $y = f(x)$
\end{document}
我将非常感激任何关于如何修复或至少调试这个问题的指示!
[更新]:事实证明没有任何中的字体/usr/share/texlive/texmf-dist/fonts/
显示在fc-list
: 的输出$ fc-list | grep /usr/share/texlive/texmf-dist/fonts
完全是空的。然而,运行时却识别出几十种字体sudo fc-cache -fv | grep /usr/share/texlive/texmf-dist/fonts
。这是怎么回事?
答案1
我当时太傻了:我fc-cache
以 root 和fc-list
普通用户的身份运行,却没有意识到缓存是为 root 用户而不是普通用户构建的。以普通用户身份运行这两个命令解决了这个问题。
答案2
使用xetex
文件名而不是符号名:
\setmainfont{xits-regular.otf}
\setmathfont{xits-math.otf}
\setmathfont[version=bold]{xits-mathbold.otf}