何时使用命令“\renewcommand\familydefault\xxdefault”

何时使用命令“\renewcommand\familydefault\xxdefault”

这是我上一个问题的后续问题如何全局设置字体类型

要全局使用 helvet,我必须使用命令\renewcommand\familydefault\sfdefault。因此,当我使用以下代码时:

\usepackage[T1]{fontenc}
\usepackage{helvet}
\renewcommand\familydefault\sfdefault

字体成功更改为Helvet。

据我了解,目前默认字体系列是\rmfamily,而 helvet 属于\sffamily。因此,我需要将默认字体系列声明为 Sans Serif (即\sffamily)。

然而,根据无衬线字体,还有其他字体也属于 Sans Serif。例如,Arev。当我尝试全局使用字体 Arev 时,我需要做的就是使用以下代码:

\usepackage[T1]{fontenc}
\usepackage{arev}

字体全局已成功更改为Arev。

我的问题是,Arev 属于 Sans Serif。为什么我不需要将默认字体系列声明为 Sans Serif(即不需要使用\renewcommand\familydefault\sfdefault)?什么时候使用该命令才合适\renewcommand\familydefault\xxdefault\xxdefault可以是\sfdefault\rmdefault\ttdefault)?

然而,

答案1

每个软件包处理事情的方式都不同。有些字体软件包只为 serif 系列或 sans 系列设置字体,而其他的字体arev软件包,line 系列则为两个系列设置字体。

例如,helvet包(作为包的一部分psfonts,因此可以在中找到以下内容psfonts.sty)本质上仅执行以下任务:

\renewcommand{\sfdefault}{phv}

也就是说,它将sf字体系列设置为字体phv(即 Helvetica),仅此而已。它不会将rm字体系列设置为任何内容,因此它保持默认状态。

arev另一方面,在包的代码中,你会发现以下几行(在arevtext.sty):

\renewcommand{\rmdefault}{fav}
\renewcommand{\sfdefault}{fav}
\renewcommand{\ttdefault}{fvm}

这意味着该包既favrm系列设置字体,也为系列设置字体。这就是为什么加载此包后sf不需要再设置的原因。\renewcommand\familydefault\sfdefault

因此,您的问题的答案是:这取决于软件包是否已经为您设置了此字体。要了解这一点,您应该查看软件包的文档(或者您可以通过加载它来尝试它的功能)。某些软件包甚至提供了一个选项来设置它们会更改哪些字体系列。

相关内容