Fontspec 未在 TEXINPUTS 中搜索

Fontspec 未在 TEXINPUTS 中搜索

我正在编写一个应用程序,我想在其中使用 xelatex 生成 pdf 文件。从 tex 文件生成 pdf 文件的过程发生在 tmp 文件中,但是字体和图像等数据文件存储在文件夹中。为了避免在 tex 文件中写入文件夹地址,我将此文件夹添加到我的 TEXINPUTS。现在 tex 可以找到此文件夹中的图像,但是当我使用此文件夹中的字体时,它无法找到它。我正在使用使用 fontspec 的 xepersian。我尝试直接使用 fontspec,但也失败了。这是我尝试编译用于​​测试的文档:

\documentclass{article}
\usepackage{fontspec}
\setmainfont{XB Zar2}
\begin{document}\end{document}

当前目录中名为 Zar 的文件夹中有一个名为 XB Zar2 的 ttf 文件。因此我使用了:

export TEXINPUTS=./Zar//:

有人能告诉我如何处理这个问题吗?谢谢。

答案1

使用和变量fontspec查找字体。中的设置为OPENTYPEFONTSTTFONTStexmf.cnf

% TrueType outline fonts.
TTFONTS = .;$TEXMF/fonts/{truetype,opentype}//;$OSFONTDIR//

% OpenType outline fonts.
OPENTYPEFONTS = .;$TEXMF/fonts/{opentype,truetype}//;$OSFONTDIR//

这两个变量之间的区别很明显。该变量OSFONTDIR不需要设置。

如果你有你的个人文件,比如

~/personalfilesandfonts/

那么你应该设置

export TEXINPUTS=~/personalfilesandfonts//:
export TTFONTS=~/personalfilesandfonts//:
export OPENTYPEFONTS=~/personalfilesandfonts//:

没有办法设置“捕获所有”变量,因为这三个变量的用途非常不同。

如果文件位于当前目录的子目录中(如示例中所示),请使用

export TEXINPUTS=./Zar//:
export TTFONTS=./Zar//:
export OPENTYPEFONTS=./Zar//:

相关内容