在 mydir/subdir 中,我有
\usepackage{../../latex/lecture/mylecture}
调用下面的mylecture.sty:
\usepackage{fontspec}
\usefonttheme{professionalfonts} % using non standard fonts for beamer
\usefonttheme{serif}
\definecolor{paleyellow}{RGB}{255,255,221}
\definecolor{myblue}{RGB}{0,0,144}
\setbeamercolor{frametitle}{fg=myblue}
\setbeamercolor{itemize item}{fg=myblue}
\setbeamercolor{title}{fg=myblue}
\setmainfont[
Path = ./ ,
Extension = .ttf ,
UprightFont = *-Regular ,
BoldFont = *-Bold ,
ItalicFont = *-Italic ,
BoldItalicFont = *-BoldItalic
]{Alegreya}
XeLaTeX 说
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!
! fontspec error: "font-not-found"
!
! The font "Alegreya-Regular" cannot be found.
在 lesson/mylecture 中,有各种 Alegreya ttf 文件,当我将 mylecture.sty 和 ttf 文件复制到当前目录时,这些文件就可以工作。
XeLaTeX 是否会在 mydir/subdir 中查找 ttf 文件,并读取 \setmainfont 中的 ./ 路径规范,而不是我期望的 lesson/mylecture?
我只是不想将 mylecture.sty 和 ttf 文件复制到我想要编写新讲座幻灯片系列的每个目录中。
我怎样才能将 mylecture.sty 和 ttf 文件放在一个目录中,并从我的 git 存储库中的任何位置引用它?
答案1
我发现了关于这个话题的各种描述,尤其是
它写道:
自动将字体与类或包一起分发是没有意义的。
我确实理解 LaTeX 在本地机器上安装字体的原始理念,但我的设置,拥有一个 git 存储库并在各种机器上使用它,是另一种工作方式。我想在不同的目录中编写讲座幻灯片,而不复制样式和字体文件,只需引用存储库树中的公共 latex 目录。
我使用 Google Web 字体。此处认为与主题无关:
但人们确实使用这种字体。
我的解决方案是,通过 \usepackage 命令调用我的样式文件后,将 \setmainfont 命令包含到我的 LaTeX 文件中:
\usepackage{../../latex/mylecture/mylecture}
\setmainfont[
Path = ../../latex/mylecture/ ,
Extension = .ttf ,
UprightFont = *-Regular ,
BoldFont = *-Bold ,
ItalicFont = *-Italic ,
BoldItalicFont = *-BoldItalic
]{Alegreya}
因此我只需要将此 \setmainfont 命令复制到我的 LaTeX 文件中即可使其工作。