结果

结果

我想在我的 LaTeX 文档中使用 Cormorant 字体系列。

后来我了解到,这个家族的 Geramond 变体出现在 TeXLive 发行版中,但我当时并不知道,而且无论如何我相信这些家族并不相同,Geramond 缺少小型大写字母的定义。

我从发布下载页面(档案名称Cormorant_Install_v3.601.zip)放入包含我的文档的文件夹中,并将以下几行插入我的 LaTeX 文件中:

    \usepackage{fontspec}
    \setmainfont{Cormorant-Regular.ttf}[
      BoldFont = Cormorant-Bold.ttf ,
      ItalicFont = Cormorant-Italic.ttf ,
      BoldItalicFont = Cormorant-BoldItalic.ttf,
    ]

我创建了一些小型大写字母格式,在运行 XeLaTeX 后,这些格式看起来很合理,但据我所知,LaTeX 没有正确的小型大写字母来源,因此它一定是根据常规样式字体伪造了小型大写字母。我想从正确的来源获得这种字母外观的卓越外观,该来源在单独的字体文件中提供。

我将附加字段添加到可选参数列表中:

SmallCapsFont = CormorantSC-Regular.ttf

然而,我发现输出没有什么区别。

我尝试了多种方法来进一步添加列表,处理字体功能,基于我从文档中获益的失败尝试fontspec,但我发现没有产生具有不同效果的输出的变化。

我放大查看了结果,开始怀疑我看到的效果是否真的是正确的小写字母。然而,在尽可能仔细地检查了字体文件后,我了解到 TTF 格式的文件无法同时嵌入常规字母和小写字母。

因此,我现在得到的小写字母输出要么是假的,要么是在其他来源中发现的字体。但我没有证据证明这两种情况。

我可以证明该选项有一定效果,因为我可以\textsc使用以下形式让 LaTeX 从命令中生成斜体:

SmallCapsFont = Cormorant-Italics.ttf

我创建了一个总体测试用例,如下。

\documentclass{article}

\usepackage{fontspec}
\usepackage{geometry}
\geometry{landscape,a5paper}

\setmainfont{Cormorant-Regular.ttf}[
   BoldFont = Cormorant-Bold.ttf ,
    ItalicFont = Cormorant-Italic.ttf ,
    BoldItalicFont = Cormorant-BoldItalic.ttf,
]

\begin{document}

\Large

\noindent The Quick Brown Fox Jumped Over The Lazy Dog. \vspace{1em}

\noindent \textbf{The Quick Brown Fox Jumped Over The Lazy Dog.} \vspace{1em}

\noindent \textit{The Quick Brown Fox Jumped Over The Lazy Dog.} \vspace{1em}

\noindent \textsc{The Quick Brown Fox Jumped Over The Lazy Dog.} \vspace{1em}

\end{document}

将以下行添加到可选参数列表中\setmainfont应该会产生效果,但却没有任何效果。

SmallCapsFont = CormorantSC-Regular.ttf

结果

不使用小型大写字体文件

不使用小型大写字体文件

使用小型大写字体文件

使用小型大写字体文件

答案1

您不需要更改任何内容,因为Cormorant-Regular.ttf它包含使用真正小型大写字母smcp所需的功能:fontspec

$ otfinfo -f  Cormorant_Install_v3.601/1.\ TrueType\ Font\ Files/Cormorant-Regular.ttf | grep smcp
smcp    Small Capitals 

您在评论中提到的 fontforge 提供了另一种查看此内容的方法。使用它,Metrics -> New Metrics Window您不仅可以测试字体指标,还可以测试许多字体功能。输入一些文本即可获得:

在此处输入图片描述

激活smcp左侧栏的功能可获得以下效果:

在此处输入图片描述

虽然顶部输入的字符保持不变,但用于表示这些字符的字形已经发生变化:/h已被替换为/h.sc等。

如果没有该功能,fontspec则不会自行伪造小写字母。CormorantSC-Regular.ttf发行版中提供的字体旨在为那些必须使用无法理解 OpenType 功能的软件的人提供便利,例如smcp

关于您的(隐含的)问题,TrueType 字体如何同时包含常规和小型大写字母字形。这已经是可能的了。“Palatino Linotype”就是这种字体的一个例子。必须记住,OpenType 是 TrueType 加上将字形存储为三次样条的能力和附加字体功能,例如smcp。字形存储为二次样条但具有 OpenType 字体功能的 TrueType 字体仍然可以被不理解 OpenType 的应用程序视为普通的 TrueType 字体。

相关内容