例如,如果我不设置拉伸参数(容忍度、不良度、紧急拉伸、草率等),我会得到一些过满的框(最后是完整的 LaTeX 代码帖子)。
请注意,尽管 TeX 完全知道如何使用连字符 (如最后一段所示),但它似乎不愿意使用连字符“dificultades”。如果我明确建议使用连字符 (第 5 段),它就会很好地工作。为什么?
调整拉伸参数(例如,使用)后情况会好一些\sloppy
,但仍然不愿意用连字符连接该词。
如果我尝试的话,\tolerance=10000
我会得到一些非常荒谬的东西:
我无法理解第一段的布局,也无法理解第三段中仅仅通过添加一个点就发生的剧烈变化。现在,这肯定不是连字符的问题。我知道,这 \tolerance=10000
一般是不可取的,但我明白它的基本意思是:“使用尽可能多的空白(粘连),即使看起来很糟糕,也不要填满太多”;但肯定有很多比这更合理的布局。
能否简单解释一下 TeX 为什么使用这种“策略”?
\documentclass[a4paper, 11pt]{book}
\usepackage[spanish]{babel}
\usepackage[paperwidth=140mm, paperheight=210mm, top=21mm, left=14mm, right=10mm,textheight=173mm]{geometry}
%\tolerance=10000
\begin{document}
\begin{quotation}
Hola, llego desde muy lejos ---con grandes dificultades--- y le ruego quiera escucharme.
Hola,... llego desde muy lejos ---con grandes dificultades--- y le ruego quiera escucharme.
Hola,...... llego desde muy lejos ---con grandes dificultades--- y le ruego quiera escucharme.
Hola,....... llego desde muy lejos ---con grandes dificultades--- y le ruego quiera escucharme.
Hola, llego desde muy lejos ---con grandes dificulta\-des--- y le ruego quiera escucharme.
dificultades dificultades dificultades dificultades
dificultades ... dificultades dificultades dificultades
dificultades dificultades .. dificultades dificultades
dificultades dificultades...... dificultades dificultades
dificultades dificultades dificultades dificultades
\end{quotation}
\end{document}
答案1
TeX 不会对包含明确连字符的单词进行连字符处理,并且---
在这种情况下,尾随的单词将被视为明确连字符。您可以使用\linebreak[0]---
或其他惩罚将单词与 分开-
。
TeX 将其不良程度计算截断为 10000:任何大于该值的不良程度本质上都是无限的,因此尽管有些情况比其他情况更糟糕,但根据其最低成本算法,它们都是无限糟糕的,所以你得到的就是你得到的。这正是 TeX3 引入的原因,它\emergencystretch
允许不良程度更均匀地分布在段落中。
\tolerance=10000
合理化使用和获得的结果的一种方法\emergencystretch=0pt
是注意到该段落的所有设置对 TeX 来说都同样糟糕(超过 10000),但使用的设置最大限度地减少了坏行的数量,因为所有多余的空间都集中在一个大量拉伸的空间中。\emergencystretch
允许所有空间拉伸超过其指定的拉伸组件,而不会将它们全部视为无限糟糕。
您\linebreak[0]---\linebreak[0]
将获得:
如果您想禁止在 处换行,---
但允许在两侧直接连接的单词上使用连字符,那么:
\documentclass[a4paper, 11pt]{book}
\usepackage[spanish]{babel}
\usepackage[paperwidth=140mm, paperheight=210mm, top=21mm, left=14mm, right=10mm,textheight=173mm]{geometry}
%\tolerance=10000
\begin{document}
\begin{quotation}
Hola, llego desde muy lejos ---\nolinebreak\hspace{0pt}con grandes dificultades\nolinebreak--- y le ruego quiera escucharme.
Hola,... llego desde muy lejos ---\nolinebreak\hspace{0pt}con grandes dificultades\nolinebreak--- y le ruego quiera escucharme.
Hola,...... llego desde muy lejos ---\nolinebreak\hspace{0pt}con grandes dificultades\nolinebreak--- y le ruego quiera escucharme.
Hola,....... llego desde muy lejos ---\nolinebreak\hspace{0pt}con grandes dificultades\nolinebreak--- y le ruego quiera escucharme.
Hola, llego desde muy lejos ---\nolinebreak\hspace{0pt}con grandes dificulta\-des\nolinebreak--- y le ruego quiera escucharme.
dificultades dificultades dificultades dificultades
dificultades ... dificultades dificultades dificultades
dificultades dificultades .. dificultades dificultades
dificultades dificultades...... dificultades dificultades
dificultades dificultades dificultades dificultades
\end{quotation}
\end{document}