在标题、作者、日期和正文或大小修饰符之间切换时,LaTeX 是否会自动更改字体?

在标题、作者、日期和正文或大小修饰符之间切换时,LaTeX 是否会自动更改字体?

我对系统的内部工作原理有疑问。假设我正在使用该类article

我忍不住注意到,标题似乎有一个不同的看起来比正文好看——字母的曲率。(我可能错了,但似乎在 Microsoft Word 中简单地切换大小并不能使标题看起来像在 LaTeX 中一样好看)

我知道当我下载 Computer Modern Unicode 时,有很多*.otf文件:

cmunbbx.otf
cmunbi.otf
cmunbl.otf
cmunbmo.otf
cmunbmr.otf
cmunbso.otf
cmunbsr.otf
cmunbtl.otf
cmunbto.otf
cmunbx.otf
cmunbxo.otf
cmunci.otf
cmunit.otf
cmunobi.otf
cmunobx.otf
cmunorm.otf
cmunoti.otf
cmunrb.otf
cmunrm.otf
cmunsi.otf
cmunsl.otf
cmunso.otf
cmunss.otf
cmunssdc.otf
cmunst.otf
cmunsx.otf
cmuntb.otf
cmunti.otf
cmuntt.otf
cmuntx.otf
cmunui.otf
cmunvi.otf
cmunvt.otf

所以我的问题是,LaTeX 是否会otf根据大小或标题、作者、日期和章节选择不同的文件。

\title{}
\date{}
\author{}

\small{}
\large{}
\Large{}
etc.

后续问题

答案1

这被称为“视觉尺寸”或“等级”。字体设计师可以选择绘制字体的多个版本,每个版本都针对特定尺寸的打印进行了优化。例如,针对脚注尺寸(例如,8pt)打印进行优化的等级通常会具有更粗的细线、更少的笔画对比度、可能略微宽松的间距、可能减小的上升部与 x 高度的比率、可能更少的整体细节——而针对显示使用进行优化的等级(例如,24pt 大小)将更加有趣,垂直和水平笔画之间的对比度更高等。当不同等级缩放到相同的绝对尺寸时,差异变得最明显。

点击放大

如今,许多字体都有 ›Text‹ 和 ›Display‹ 版本。有些字体还有额外的 ›Footnote‹ 等级(或 ›Caption‹ 或 ›Micro‹;没有命名标准)。但超过三个等级的情况非常罕见。Donald Knuth 为 Computer Modern Roman Regular 画了八个等级,为 CM Sans 画了五个等级,为 CM Typewriter 画了四个等级,为 CMR Smallcaps 只画了一个等级ETC。[但是,请参见下文,这并未在 Unicode 版本中采用]。

在活版印刷时代,这种做法是常态,而不是例外。正如(在活版印刷时代之前)19 世纪末) 无论如何,每种字体都必须从头开始切割以达到特定的尺寸,打孔切割师不仅会将他们的 8pt 打孔切割得比 24pt 打孔更小,而且还包括其他差异,例如上面的差异。

所有这些的总体目标是(其中包括):(1)提高小尺寸字体的可读性,(2)防止小尺寸字体的细笔画消失(或甚至部分金属冲头断裂),(3)添加变化、装饰、细节等。在大尺寸字体(注意,例如 FF Clifford 的斜体Q或中的循环w),(4)在不同尺寸字体之间创建更统一的›颜色‹,因为在脚注中使用常规文本等级会产生太浅的颜色,而对于显示来说,则会太暗。

除非您使用的是 Computer Modern Roman,否则 TeX 只会在以下情况下为不同的大小选择不同的字体:(1) 您告诉它这样做,并且 (2) 您实际上拥有不同等级的字体。

还可以为不同的尺寸指定完全不同的字体。我经常使用 Playfair Display 作为 Miller Text 的配套产品(作为 Miller Display 的廉价替代品)。使用 Xe/LuaTeX,fontspec可以使用 的光学尺寸功能来实现此目的:

\documentclass[12pt,DIV=7]{scrartcl}
\usepackage{fontspec,blindtext}
\setmainfont%
  [SizeFeatures={%
    {Size=-14,Font={Miller Text}},%
    {Size=14-,Font={Playfair Display}}}]{Miller Text}

\begin{document}
{\Large Lorem Ipsum \&c.}\par
\blindtext
\end{document}

在此处输入图片描述

PS:也就是说,Unicode 版本的 Computer Modern才不是似乎有不同的等级,因为传统拉丁现代罗马字体。您发布的文件列表之所以那么长,是因为 CM Unicode 项目包含许多完全不同的字体。Knuth 的 sans、typewriter、typewriter 比例、直立 (!) 斜体等,它们都包含在内。

答案2

与大多数文字处理器不同,LaTeX 通常不会简单地将字体缩放到所需的大小,而是使用为特定大小设计的字体。

这是在 fd 文件中指定的。

如果你查看pslatexTimes Roman 的 times 包 fd 文件,你会看到:

\DeclareFontShape{T1}{ptm}{m}{n}{
   <-> ptmr8t
}{}

这意味着在 Times Roman ( ptm) 的 T1 编码中,所有字体大小均使用相同的字体,只是进行了简单的缩放。

然而如果你看一下原始的 Computer Modern 字体,你会看到一个更为复杂的图像:

\DeclareFontShape{OT1}{cmr}{m}{n}%
     {<5><6><7><8><9><10><12>gen*cmr%
      <10.95>cmr10%
      <14.4>cmr12%
      <17.28><20.74><24.88>cmr17}{}

有单独的字体 cmr5、cmr6、cmr7、cmr8、cmr9、cmr10、cmr12、cmr17,每种尺寸都选择合适的字体。

根据加载的包,LaTeX 会强制将请求的大小设置为上述大小之一(如此处所示),或者将最接近的字体缩放到请求的大小(type1cm1fix-cm包)。

答案3

答案假设您正在使用 XeLaTeX 或 LuaLaTeX。

\@maketitle类中的定义article

\def\@maketitle{%
  \newpage
  \null
  \vskip 2em%
  \begin{center}%
  \let \footnote \thanks
    {\LARGE \@title \par}%
    \vskip 1.5em%
    {\large
      \lineskip .5em%
      \begin{tabular}[t]{c}%
        \@author
      \end{tabular}\par}%
    \vskip 1em%
    {\large \@date}%
  \end{center}%
  \par
  \vskip 1.5em}
\fi

此命令负责标题数据的实际排版。它使用\LARGEsize 作为标题、\large作者和日期字段的字体。

如果你说

\documentclass{article}
\usepackage{fontspec}
\setmainfont[Ligatures=TeX]{CMU Serif}
\setsansfont[Ligatures=TeX]{CMU Sans Serif}

字体将简单地缩放,因为它们没有不同的光学尺寸。如果你使用拉丁现代字体,情况就不同了,因为它们有不同的光学尺寸。

其他 OpenType 字体包括 Adob​​e Minion、Garamond Pro 等。好消息是,fontspec如果可用,它可以加载不同的光学尺寸。

根据上述的规范,在发布、等或它们的对应项、 、fontspec时将自动选择字体文件。在大多数情况下,无需用户干预。它\bfseries\itshape\textbf\textit可以有些字体可能会出现无法通过 捕获对应关系的情况fontspec,请参阅手册以了解解决方法。但这不是常见情况。

相关内容