我正在尝试使用 pdfLatex 和自定义字体包在 Overleaf 中使用自定义字体(我已阅读 Overleaf 文档这里)。我已将以下文件放在我的 Overleaf 目录中:GillAltOneMt.otf、GillAltOneMt-Italic、GillAltOneMt-Bold、GillAltOneMt-BoldItalic。
使用 LuaLatex 进行编译时,它可以工作。但是,使用 pdfLatex (Tex Live 2020) 时则不行 - 它会产生包错误。我的问题:
- 是不是因为我没有 fd 文件 (t1mgs.fd) 才引发错误?如果是这样,这个 fd 文件应该是什么样子才能指向 otf 文件?
- 有没有其他方法可以改变此代码,以检查根目录中的字体文件?
字体包(.sty 文件)中的相关部分:
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{uufonts}[...]
\RequirePackage{ifluatex}
\newif\ifuufonts@systemfonts
\uufonts@systemfontsfalse
\ifluatex
% Then assume we have the fonts and yield error later otherwise.
% (Checking if font exists takes time.)
\uufonts@systemfontstrue
\else
\RequirePackage[T1]{fontenc}
\RequirePackage{textcomp}
\fi
[...]
\newif\ifuufonts@sans
\uufonts@sanstrue
\DeclareOption{no-sans}{\uufonts@sansfalse}
[...]
% === Gill Sans ===
\ifuufonts@sans
\IfFileExists{./GillAltOneMT.otf}{
\setsansfont{GillAltOneMT.otf}[
BoldFont = GillAltOneMT-Bold.otf ,
ItalicFont = GillAltOneMT-Italic.otf ,
BoldItalicFont = GillAltOneMT-BoldItalic.otf]
}{
\setsansfont{Gill Alt One MT}
}
\fi
[...]
\ifuufonts@sans
\IfFileExists{t1mgs.fd}{
\renewcommand*{\sfdefault}{mgs}
}{
\AtEndOfPackage{
\PackageError{uufonts}
{The Gill Sans font is not installed for (pdf)TeX. Maybe try lualatex instead}
{If you continue, that font is simply not used}}
\relax}
\fi % sans