我已安装了一些自定义 Type 1 字体以供使用pdflatex
。如果我使用以下方式调用它们,字体将正常工作
\renewcommand{\<rmdefault/sfdefault/ttdefault/etc>}{<fontname>}
我遵循了 Karl Berry 的字体命名方案,但现在我开始对如此多的缩写感到困惑(很多三个字母的名称并不总是很明显)。所以,我想编写一些 .sty 文件,这样我就可以用更简单、更具描述性的方式调用我的字体\usepackage{<longfontname>}
。我恳请指导我编写一个用于调用字体定义的基本模板,如果可能/值得的话,解析简单的选项(例如缩放)。
答案1
最好的办法是查看与你的 TeX 发行版一起安装的类似字体的文件和/或按照字体安装指南中的说明进行操作,该指南还提供了示例。
这是.sty
我为romande
支持 RomandeADF 的软件包编写的文件。这不是最简单的情况,因为您询问了处理选项,但它只处理一个选项,因此相对简单。安装的字体都使用 Berry 命名方案。在这种情况下,供应商是y
,系列是rd
。a
是替代的,正如您可能知道的那样。
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{romande}[2010/06/27 v2.1 romande]
\RequirePackage{xkeyval}
\RequirePackage[T1]{fontenc}
\RequirePackage{textcomp}
\RequirePackage{nfssext-cfr}
%:boolkey for alternative encoding as default
\define@boolkey{romande.sty}[romande@]{alt}[true]{%
\relax}
%:defaults to ensure everything is defined to something
\ExecuteOptionsX{alt=false}
%:options override defaults
\ProcessOptionsX
%:make RomandeADF default roman font, implementing option for alternative encoding as applicable
\ifromande@alt
\renewcommand{\rmdefault}{yrda}%
\else
\renewcommand{\rmdefault}{yrd}%
\fi
\endinput
%% end romande.sty
如果您的字体是根据 Berry 方案命名的,并且您需要访问非标准形状、粗细、宽度等,那么nfssext-cfr
可能会有所帮助,因为它适用于 Romande。这是 的扩展nfssext
,作为字体安装指南的一部分提供。
请注意,缩放要求您配置.fd
文件以适应此选项。(就像alt
支持的选项romande
依赖于.fd
以某种方式配置的文件一样。)
编辑
关于选项支持....
您设置包选项来执行某些操作。例如,在本例中,romande.sty
提供两种不同的字体系列。
- 默认为非替代:
t1yrd.fd
并ts1yrd.fd
支持此选项。 - 替代系列在某些位置有略微不同的字形,并受
t1yrda.fd
和支持ts1yrda.fd
。
还可以使用 中的宏来访问替代字形nfssext-cfr
。
此外,还有一些其他.fd
文件不受软件包选项支持:t1yrdw.fd
、、、。这些ts1yrdw.fd
文件支持一些更奇特的字形作为“花饰”字符。(“花饰”可能具有误导性,但它们必须被归类为某种东西。)这些系列可通过 提供的宏访问。t1yrdaw.fd
ts1yrdaw.fd
nfssext-cfr
如果您安装了字体,您应该知道文件.fd
支持什么。然后,问题就变成了决定在包加载时选择不同的选项还是以其他方式选择。在某些情况下,两种选择都是合理的。对于像缩放这样的操作,只有作为包选项才真正有意义。也就是说,它应该对整个文档保持不变。
如果您已将字体设置为支持缩放,则文件应包含包中.fd
类似这样的行:t1phv.fd
psnfss
\DeclareFontShape{T1}{phv}{m}{n}{
<-> \Hv@@scale phvr8t
}{}
而不是像这样的行t1yrd.fd
:
\DeclareFontShape{T1}{yrd}{m}{n}{
<-> yrdr8t
}{}
这表明psnfss
对 Helvetica 的支持支持缩放字体,而romande
对 Romande 的支持则不支持。