我有时会收到这些字体形状代码的错误消息,但我不知道它们是什么意思,也没有找到任何相关信息。
显然,b
代表bold
和。但是开头的和或it
代表什么?代码的结构如何?似乎字体名称排在第二位,其次是字体功能。italic
m
n
TU
另外,我对如何在选择字体时指定字体功能感兴趣fontspec
(内置和按.TTF
文件)。但这可能是另一个主题。
如果有解释这一点的资料来源,我将不胜感激。不幸的是,我自己找不到。
由于我问的是基本理解,所以我没有发布 MWE 或任何错误消息。我首先尝试自己弄清楚字体的一般工作原理。
答案1
字体有五种属性:
- 编码
- 字体系列
- 字体系列
- 字体形状
- 字体大小
这些属性被编码在内部字体名称本身中,这是一个非常聪明的想法,当 NFSS(新字体选择方案)在 90 年代中期集成到 LaTeX 内核中时,字体管理变得有效(感谢 Frank Mittelbach 和 Rainer Schöpf)。
编码属性告诉 LaTeX 如何解释某些命令,例如\'
或\texttrademark
。例如,使用 OT1 编码,\'
(基本上)解释为“在下一个字符上方添加一个尖音符”;在 T1 中,它变成“查找下一个字符,如果是带有尖音符的预复合字符,则使用它,否则在其上放置一个尖音符”。使用 TU 时,它类似于 T1,但不是放置尖音符,而是告诉 TeX(在 Unicode 感知引擎中)在字符后放置一个组合尖音符(如果不存在预组合)。
诸如此类的命令的\texttrademark
处理方式略有不同:在 OT1 或 T1 中,LaTeX 被指示从相应的 TS1 编码字体中选择字符(保留其他属性,如果具有这些属性的字体不可用,则可能进行一些替换);在 TU 中,它只是指向相应的 Unicode 插槽。
下一个属性是字体系列,它基本上是一个任意字符串,LaTeX 使用它与编码一起定义字体系列,可以在文档中“手动”设置,也可以通过读取字体描述文件。
使用时fontspec
,字体系列会动态设置,并使用字体名称和数字构建系列名称,除非明确设置了字体系列名称。
\documentclass{article}
\usepackage{fontspec}
\setmainfont{Libertinus Serif}
\newfontfamily{\oldstandard}{Old Standard}
\newfontfamily{\futura}{Futura}[NFSSFamily=fut]
\begin{document}
\expandafter\string\the\font
\oldstandard
\expandafter\string\the\font
\futura
\expandafter\string\the\font
\end{document}
我们\the\font
获取当前的内部字体名称并将\string
其打印出来。
一些警告或信息性消息会忽略大小,而大小在发出时是无关紧要的。例如,在某些情况下会进行替换,如果替换未定义为“静默”,则会显示一条信息性消息。例如,
{\fontshape{y}\selectfont x}
你会得到
LaTeX Font Warning: Font shape `TU/LibertinusSerif(0)/m/y' undefined
(Font) using `TU/LibertinusSerif(0)/m/n' instead on input line 14.
因为没有y
定义形状。您会看到,size 属性被省略了,因为不相关。
系列和形状属性用某种任意的字符串进行编码,但有一些标准名称:
- 系列
m
表示“中等”,标准系列 - 系列
b
表示“粗体”(在某些情况下你会看到bx
)
字体描述文件可能定义其他几个。例如,T1 编码的 Source Sans Pro 字体定义
regular
bold
black
semibold
extralight
light
并定义别名
m
b
eb
sb
el
l
其他字体描述文件可能使用k
黑色。里程可能会有很大差异。
形状属性类似。标准形状是
n
it
sl
sc
但字体描述文件可能会添加它们,可能scit
是scsl
斜体/倾斜小写字母。字符串n
代表“正常”,通常是直立;it
是“斜体”,sl
是“倾斜”,sc
是“小写字母”。
您提到的那些指的是fontspec
已定义的字体,因为tahoma(0)
;因为TU/pag/m/n
我不确定您是如何获得它的,因为没有相应的字体描述文件。但是,该字符串pag
遵循 Karl Berry 的字体命名约定:在过去,文件名必须限制为最多八个字符,以符合一个愚蠢的文件系统,我相信您知道这个名字。字母“p”代表“Adobe”(提供字体的数字铸造厂),“ag”代表 Avant Garde。texdoc fontname
有关该主题的更多信息,请参阅。