在 xelatex 中使用 TeX Live 字体

在 xelatex 中使用 TeX Live 字体

如果你已经在 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)。

  1. TeX Live 已经自带了所需的配置文件。它位于

    <path to TL15>/texmf-var/fonts/conf/texlive-fontconfig.conf
    
  2. 将其复制到/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
    
  3. 现在通过以下方式更新字体缓存

    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因为当您更新系统时,您的发行版包管理器会更新一些字体包或其他内容。

请注意,对于某些应用程序,您还需要运行mkfontscalemkfontdir

相关内容