尝试理解 TeX 的决策(拉伸、容忍度)

尝试理解 TeX 的决策(拉伸、容忍度)

例如,如果我不设置拉伸参数(容忍度、不良度、紧急拉伸、草率等),我会得到一些过满的框(最后是完整的 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}

相关内容