Overleaf 使用的是 SourceSerifPro v1.2,它不包含斜体字体。
v1.4 包含斜体,并作为包提供加拿大运输安全局
Overleaf 允许通过上传 .sty 文件来安装自定义包。(https://www.overleaf.com/learn/how-to/What_packages_do_you_support%3F)
我尝试将包从 CTAN 上传到 overleaf,但无法被识别。
有没有简单的方法可以使用 overleaf 上的 CTAN 的 v1.4 包,这样我就不需要构建字体并使用诸如fontspec
答案1
Overleaf 技术支持能够提供可行的解决方案。
解决方案类似于此处描述的解决方案但sourceserifpro
需要稍微不同的处理。
添加以下内容以latexmkrc
启用T1
编码字体。
$ENV{'TEXINPUTS'}='./sourceserifpro/tex/:' . $ENV{'TEXINPUTS'};
$ENV{'TFMFONTS'}='./sourceserifpro/fonts/:' . $ENV{'TFMFONTS'};
$ENV{'ENCFONTS'}='./sourceserifpro/fonts/:' . $ENV{'ENCFONTS'};
$ENV{'T1FONTS'}='./sourceserifpro/fonts/:' . $ENV{'T1FONTS'};
$ENV{'VFFONTS'}='./sourceserifpro/fonts/:' . $ENV{'VFFONTS'};
$ENV{'TEXFONTMAPS'}='./sourceserifpro/fonts/:' . $ENV{'TEXFONTMAPS'};
此$ENV{'VFFONTS'}
行未包含在先前的解决方案中。
同样,应将以下几行添加到序言中,根据需要更改选项。
\pdfmapfile{+SourceSerifPro.map}
\usepackage[default,semibold,osf]{sourceserifpro}
不幸的是,连字无法正常工作。有些连字被渲染成带有 x 的方框,而其他连字则完全渲染不正确。例如,字符ff
被替换为 ft 连字。
注意,以上所有内容均使用pdfLaTeX
最终的解决方案是切换到XeLaTex
编译器并使用 OpenType 版本sourceserifpro
。
为了启用 OpenType 版本,的内容latexmkrc
更改为
$ENV{'TEXINPUTS'}='./sourceserifpro/tex/:' . $ENV{'TEXINPUTS'};
$ENV{'TFMFONTS'}='./sourceserifpro/fonts/:' . $ENV{'TFMFONTS'};
$ENV{'ENCFONTS'}='./sourceserifpro/fonts/:' . $ENV{'ENCFONTS'};
$ENV{'T1FONTS'}='./sourceserifpro/fonts/:' . $ENV{'T1FONTS'};
$ENV{'VFFONTS'}='./sourceserifpro/fonts/:' . $ENV{'VFFONTS'};
$ENV{'TEXFONTMAPS'}='./sourceserifpro/fonts/:' . $ENV{'TEXFONTMAPS'};
$ENV{'OPENTYPEFONTS'}='./sourceserifpro/fonts/:' . $ENV{'OPENTYPEFONTS'};
将该行添加$ENV{'OPENTYPEFONTS'}
到解决方案中T1
。
解决方案中的前言行在T1
主.tex
文件中仍然是需要的。
切换到的缺点XeLaTeX
是许多功能microtype
不受支持。
我的项目似乎也适用于LuaLaTeX
。这意味着更多(但遗憾的是不是全部)功能都pdfLaTeX
microtype
可以使用。为了使它能够编译,LuaLaTeX
您必须删除上述行
\pdfmapfile{+SourceSerifPro.map}
因为不需要LuaLaTeX
。