即使更新配置后,fontconfig 仍未列出/找到 XITS 字体

即使更新配置后,fontconfig 仍未列出/找到 XITS 字体

我想在我的 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}

相关内容