![连字模式是如何书写的?](https://linux22.com/image/317551/%E8%BF%9E%E5%AD%97%E6%A8%A1%E5%BC%8F%E6%98%AF%E5%A6%82%E4%BD%95%E4%B9%A6%E5%86%99%E7%9A%84%EF%BC%9F.png)
在我的 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
使用程序:它加载带连字符的单词列表并输出模式列表。对于意大利语,使用语法规则,偶数值或奇数值较低(因此我们会找到s2c
,s2p
等等,或b1b
,c1c
等等);手动添加其他模式以避免错误断字,例如,.di2s3cine
为“discinesia”提供正确的连字符。