连字模式是如何书写的?

连字模式是如何书写的?

在我的 miktex 文件夹中,我检查了hyph-en-us.tex文件并发现字母模式如下:

\patterns{    
.ach4    
.ad4der    
.af1t    
...
}

这些点和数字代表什么意思?

答案1

完整解释可以在 TeXbook 的附录 H 中找到。当 TeX 考虑将一个单词连字符连接时,它会将其拆分为“子单词”。TeXbook 中的示例使用了“连字符连接”。在两端添加标记,用 表示.,并考虑子单词:

. h y p h e n a t i o n .
.h hy yp ph he en na at ti io on n.
.hy hyp yph phe hen ena nat ati tio ion on.
.hyp [...] ion.

等等,长度任意。每个子词与当前语言的连字模式进行比较。模式由以下形式的序列组成

<digit><letter><digit>...<letter><digit>

如果为 0,则省略<digit>;因此英语列表中的第一个模式相当于

0.0a0c0h4

当然,比较不会考虑数字。不匹配任何模式的子词将被丢弃;仅在示例中

0h0y3p0h0 0h0e2n0 0h0e0n0a4 0h0e0n5a0t0 1n0a0 0n2a0t0 1t0i0o0 2i0o0 0o2n0

幸存下来。在原单词的每个字母之间,最大限度上面列表中的值保持不变(默认为 0),因此下一步的结果是

.0h0y3p0h0e2n5a4t2i0o2n0.

可行的连字点是奇怪的在这种情况下,出现数字

hy-phen-ation

因此,第一个模式基本上禁止在 h 之后对以“ach”开头的单词进行连字符连接,第二个模式避免在以“adder”开头的两个 d 单词之间进行断字,因为偶数值较大;相反,下一个模式表示可以在以“aft”开头的单词 f 之后进行断字,除非发现在 f 和 t 之间具有偶数值的其他模式。该模式.anti5s表示以“antis”开头的单词可以在 i 之后进行断字(中没有出现高于 5 的值hyphen.tex)。可以在较长的模式中使用偶数值来抵消较短模式中的奇数值,依此类推。

距离边界小于\lefthyphenmin\righthyphenmin(分别为左边界和右边界)的断点将被丢弃。由于对于英语,我们有\lefthyphenmin=2\righthyphenmin=3,因此保留找到的两个点。现在 TeX 添加了可自由选择的项目,并考虑将它们用于将段落分成行。

什么是“单词”?基本上(但这不是全部真相)它是空格后面的相同字体的字母序列。请参阅 TeXbook 或 TeX by Topic 了解更多信息。

如何准备模式?视情况而定。对于英语,patgen使用程序:它加载带连字符的单词列表并输出模式列表。对于意大利语,使用语法规则,偶数值或奇数值较低(因此我们会找到s2cs2p等等,或b1bc1c等等);手动添加其他模式以避免错误断字,例如,.di2s3cine为“discinesia”提供正确的连字符。

相关内容