考虑以下mystory.tex
:
\tolerance=10000 \hsize=.7in
\leavevmode\nobreak\hskip0pt Drofnats---or ``R. J.,''
\end
这是日志:
(mystory.tex
Overfull \hbox (17.41133pt too wide) in paragraph at lines 2--3
[] \tenrm Drofnats---|
[1] )
这是输出:
现在mystory.tex
通过在“Drofnats”和“---”之间添加空格来进行更改。
这是日志:
(mystory.tex
Underfull \hbox (badness 10000) in paragraph at lines 2--3
[] \tenrm Drof-
Underfull \hbox (badness 10000) in paragraph at lines 2--3
\tenrm nats ---or
[1] )
这是输出:
据我所知,排版规则规定我们必须使用破折号,如word1---word2
。排版规则是否也禁止使用 连字符word1
?如果不是,为什么不默认尝试使用连字符?
答案1
摘自 TeXbook 第 286 页,最后一条要点:
⟨letter⟩、⟨otherchar⟩、
\char
⟨8 位数⟩、⟨chardef token⟩,。\noboundary
最常用的命令是字符命令,它们告诉 TeX 使用当前字体将字符附加到当前水平列表。[...] 在不受限制的水平模式下,'\discretionary{}{}{}
' 项目将附加在其字体代码的字符之后\hyphenchar
,或附加在以该字符结尾的序列形成的连字符之后。
由于---
是一个以当前字体的 结尾的连字符\hyphenchar
(通常是连字符),因此\discretionary{}{}{}
会自动附加一个项目,并且 TeX 永远不会对包含该项目的单词进行连字符处理\discretionary
(参见第 454 页,倒数第二个双重危险弯曲的结尾)。