我正在编写一个应用程序,我想在其中使用 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
查找字体。中的设置为OPENTYPEFONTS
TTFONTS
texmf.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//: