我可以永久指示 WSL 中的 xelatex 使用 C:\Windows\Fonts 中的字体吗?如果可以,怎么做?

我可以永久指示 WSL 中的 xelatex 使用 C:\Windows\Fonts 中的字体吗?如果可以,怎么做?

我的设置包括 Windows 10 安装适用于 Linux 的 Windows 子系统 (WSL)。在 WSL 中,我使用 Debian 10。我没有在 Windows 上安装任何 LaTeX 发行版。相反,我使用 Debian 10 存储库中的 TeXlive 发行版。如果有任何相关性,我会使用Visual Studio 代码LaTeX 工作坊远程 - WSL扩展。

对于我的幻灯片,我使用大都市主题。该主题应该与 XeLaTeX 一起使用,因为它会在系统字体中搜索 Fira Sans 字体系列。我已经有了 Fira Sans 字体系列C:\Windows\Fonts,我知道我可以将ttf文件复制到/usr/local/share/fonts/WSL 中(这是我目前的做法,而且有效)。但是,这会重复文件并使所需的磁盘空间翻倍。

我可以吗永久在 WSL 中指示xelatex使用字体C:\Windows\Fonts?如果是,怎么做? 我知道我可以使用建议这个问题告诉每个文档在哪里寻找字体。相反,我会问自己是否可以永久更改 WSL 中的字体默认搜索路径xelatex,以便它在中搜索/mnt/c/Windows/Fonts

附带问题:从性能方面来看,我的问题的答案是否可取?根据设计,与在 WSL 中“本地”使用文件(即和) /mnt/c相比, WSL 在访问 中的文件时具有更差的 IO 性能。/usr~这里是该问题的一个帐户。因此,也许告诉/usr/bin/xelatex使用字体/mnt/c/Windows/Fonts是一个坏主意,因为它会对编译时间产生显著且明显的负面影响。

答案1

我会假设你没有真正的理由仅有的想要将路径添加到xelatex,因此最简单的方法可能是将 Windows 字体路径添加到 fontspec,以便所有 WSL 程序都能获取该字体:

在 WSL 下,创建一个名为 的新 fontconfig 配置文件~/.config/fontconfig/fonts.conf。在此文件中,写入

<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>
  <dir>/mnt/c/Windows/Fonts/</dir>
</fontconfig>

更改配置后,您应该执行fc-cache以从 fontconfig 更新字体缓存。在 windows 目录中安装新字体后,您可能需要fc-cache再次运行才能获取它。

这种缓存的优点是,如果缓存数据显示相关字体不在 Windows 目录中,那么大多数文档甚至不必访问 Windows 字体文件夹,因此糟糕的 IO 性能只会在您实际使用其中一种 Windows 字体时影响您。

相关内容