如果 TeX / LaTeX 修改了单个字母之间的间距

如果 TeX / LaTeX 修改了单个字母之间的间距

想知道 TeX / LaTeX 中是否有字母间距的压缩/扩展。在查看字体规格,我注意到它们只有 2 个水平属性:前进宽度左侧轴承

当前点到字形最左边点的水平距离为左侧边距。字形绘制完成后,当前点移动到下一个字形位置的水平距离为前进宽度。

还会发生一些字距调整,但忽略这一点,字体基本上只定义了每个字母周围的预定义间距(在字母开始之前和字母结束之后)。我想知道 TeX / LaTeX 是否会以某种方式使用或覆盖此行为。也就是说,如果在断线程序或相关,它也可能决定某些字母需要以某种方式压缩或扩展。也许它以单个字母为基础、以单词为基础或以整行为基础(例如,在每一行上,每个字母都有一组间距扩展/压缩)。我从链接的论文中知道他们有可以拉伸和收缩的胶水,即单词之间的空间,但我不确定他们是否会干扰字体测量以进行字母间间距调整。

如果是这样,我感兴趣的是知道在哪里可以找到更多关于字母间距的具体信息。

我知道您可以手动更改每个字母的字母间距,但我想知道是否有任何自动发生的事情。

答案1

据我理解,“字母间距”是指故意且明显地增加某些字母之间的间距,例如小型大写字母或全大写字母。

microtype确实支持这种意义上的字母间距,其他各种软件包也是如此。

但这和换行没有任何关系。

如果使用某些引擎,可以进行调整以协助换行算法并改善视觉对齐等。这是一个非常不同的功能,根据设计,它不应该被读者注意到或看到。当然,从某种意义上说,它是可见microtype的,但除非读者正在寻找它并检查排版的属性,而不是检查排版的内容,否则它不应该被察觉到。

任何特定文档是否使用微排版,如果是,那么它在哪些设置下使用哪些功能取决于一系列因素。

  • 使用的格式。据我所知,这几乎仅限于 LaTeX。

  • 包加载了吗microtype?这对于微排版来说是必需的(尽管对于字母间距来说不一定是必需的)。

  • 使用哪个引擎以及该引擎的哪个版本?当前 pdfTeX 完全受支持。当前 LuaTeX 得到良好支持。当前 XeTeX 的支持极其有限。TeX 完全不受支持。

  • 使用哪种字体?某些功能需要可缩放字体。

  • 使用哪种字体?某些字体有特定于字体的配置。否则,microtype将使用更保守的“通用”设置。当然,人们可以覆盖这些。

  • 哪些字体激活了哪些功能?有默认设置,但显然可以覆盖这些设置。

  • 文档类和/或加载的包是否会干扰特定上下文中功能的实现?例如,默认情况下,大多数(所有?)类的节标题的光学对齐都会失败。(此外,我无法让它适用于某些类和包,即使它可以为标准类和 Memoir 修复。)

如果配置满足所有需要,microtype可以使用字体扩展来辅助换行。基本上,它会将字体缩放很小的倍数,以帮助避免水平间距不佳。这样做的效果不是字体大小的明显变化,而是一种非常微妙的变化,实际上只是帮助换行。

此外,如果勾选了必要的框,该软件包还可以执行诸如启用悬挂标点和其他视觉对齐方面的操作。此功能最适合字体特定的配置,但它与大多数其他字体的通用设置配合使用效果也相当好。

可用的微印刷特征的完整列表(来自手册中的表 1)是:

  • 突出
  • 扩展(自动或非自动)

LuaTeX 和 pdfTeX 支持这两项功能。XeTeX 仅支持凸起。

  • 字距调整
  • 间距

仅支持 pdfTeX 并且默认禁用。

以下是两张前后对比图,仅供参考。线条表示页面布局,因此您可以轻松看到文本块的边缘。

无突出

这显示了没有 的结果microtype。事物实际上是对齐的,但不是视觉上的。

有突出部分

这显示了 的结果microtype。事物在视觉上是对齐的,因为标点符号可以稍微突出到边缘。

无扩展的坏断

这显示了 TeX 在将段落拆分成行时遇到的一个问题。结果就是本文档中出现了几个“坏框”之一。(请注意,我必须将字体大小增加到 12pt,并将纸张尺寸减小到 A6 才能得到坏框。)

与扩张的良好突破

这显示了扩展功能的改进microtype。加载包消除了本文档中的所有坏框。

相关的非微印刷特征(来自同一张表):

  • 追踪

这就是人们在这个网站上通常所说的“字母间距”。它支持 pdfTeX 和 LuaTeX。虽然不支持 XeTeX,但该软件包为该引擎fontspec提供了此功能。LetterSpace

以下是标准小型大写字母的比较:

无追踪

相同示例,但启用了microtype's tracking,默认情况下适用于小型大写字母:

带有追踪功能

此外,还microtype提供了选择性禁用连字等功能。

扩展演示代码:

\documentclass[british,a6paper,12pt]{article} 
\usepackage[showframe]{geometry}
\usepackage{babel}
\usepackage{cfr-lm} 
\usepackage[utf8]{inputenc} 
\usepackage{microtype}
\usepackage{kantlipsum}


\begin{document}
\kant[1-20]

\end{document}

所有示例均用 pdfTeX 编译。

相关内容