如果你已经在 Ubuntu 上安装了 Vanialla TeX Live 2015(即手动安装而不是通过软件包)。像这样的 MWE 无法编译xelatex
\documentclass{article}
\usepackage{fontspec}
\setmainfont[Ligatures=TeX]{TeX Gyre Pagella}
\begin{document}
Hello, World!
\end{document}
尽管 TeX Gyre Pagella opentype 是 TL15 的一部分。
XeLaTeX 将在字体缓存中查找要使用的字体fontspec
。因此,即使在 TL 中找到字体,字体缓存也可能找不到它。
在 Linux 上,至少 TL 字体可能不会自动包含在字体缓存中。
我们该如何解决这个问题?
答案1
以下是我解决问题的方法。
基础知识:Ubuntu Linux。手动安装 TeX Live 2015(来自http://tug.org/texlive)。
TeX Live 已经自带了所需的配置文件。它位于
<path to TL15>/texmf-var/fonts/conf/texlive-fontconfig.conf
将其复制到
/etc/fonts/conf.d/09-texlive-fonts.conf
:sudo cp <path to TL15>/texmf-var/fonts/conf/texlive-fontconfig.conf /etc/fonts/conf.d/09-texlive-fonts.conf
现在通过以下方式更新字体缓存
sudo fc-cache -fsv
现在这个 MWE 对我来说运行得很好(使用编译xelatex
)
\documentclass{article}
\usepackage{fontspec}
\setmainfont[Ligatures=TeX]{TeX Gyre Pagella}
\begin{document}
Hello, World!
\end{document}
(请随意补充这个答案)
答案2
如果您创建一些符号链接,则可以避免在安装新版本的 TeX Live 时更新配置文件。
作为管理 TeX 安装的用户(可能意味着 root 或sudo
):
cd /usr/local/texlive
ln -s 2015 current.2015
ln -s current.2015 current
配置文件09-texlive-fonts.conf
应在 中创建,/etc/fonts/conf.avail
并使用来自 的符号链接/etc/fonts/conf.d
。因此,以 root 身份或使用sudo
,创建/etc/fonts/conf.avail/09-texlive-fonts.conf
以下内容:
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<dir>/usr/local/texlive/current/texmf-dist/fonts/opentype</dir>
<dir>/usr/local/texlive/current/texmf-dist/fonts/truetype</dir>
<dir>/usr/local/texlive/current/texmf-dist/fonts/type1</dir>
</fontconfig>
如果您还想使用 TEXMFLOCAL 提供的字体:
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<dir>/usr/local/texlive/current/texmf-dist/fonts/opentype</dir>
<dir>/usr/local/texlive/current/texmf-dist/fonts/truetype</dir>
<dir>/usr/local/texlive/current/texmf-dist/fonts/type1</dir>
<dir>/usr/local/texlive/texmf-local/fonts/opentype</dir>
<dir>/usr/local/texlive/texmf-local/fonts/truetype</dir>
<dir>/usr/local/texlive/texmf-local/fonts/type1</dir>
</fontconfig>
然后以 root 身份或者使用sudo
:
cd /etc/fonts/conf.d
ln -s ../conf.avail/09-texlive-fonts.conf
fc-cache -s
如果您更新 TeX Live 或安装新版本,您只需调整符号链接并运行即可fc-cache -fs
。事实上,在很多情况下,即使您不运行,缓存也会相对较快地更新,fc-cache
因为当您更新系统时,您的发行版包管理器会更新一些字体包或其他内容。
请注意,对于某些应用程序,您还需要运行mkfontscale
和mkfontdir
。