“如何防止参数框过满”的最佳方法

“如何防止参数框过满”的最佳方法

我需要防止框过满,这样就不会出现大于的行\hsize。有没有办法只使用参数来实现这一点,而无需设置\emergencystretch为较大的值?

问题是:如果我设置\emergencystretch\hsize,线条将永远不会超出右边距。但如果较小的 值\emergencystretch就足够了,这会导致段落非常难看。

那么:有没有办法告诉 TeX a) 始终防止长行和 b) 生成的段落不应该完全丑陋。

参见示例。所有给定的值都\emergencystretch足以防止框过满。但只有第一个例子(第 1 页,下段)还算可以。在这种情况下,最后一页完全不可接受。但为了防止所有框过满的情况,我必须将其设置\emergencystretch为如此大的值,这样结果 #1 就不会出现在我的文档中。

我猜答案是“否”,但我希望得到一组参数作为“是”。

\documentclass[draft]{article}

\usepackage[french]{babel}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}

\begin{document}

\def\txt{Tous mes sens sont émus d'une volupté douce et pure, comme l'haleine du matin dans cette saison délicieuse. Seul, au milieu d'une contrée qui semble fait exprès pour un coeur tel que mien, j'y goûte à longs traits l'ivresse de la vie. Je suis si heureux, mon ami, si absorbé dans le sentiment de ma paisible existence, que mon art en souffre. Incapable de dessiner le mointre trait, la plus faible ébauche, jamais pourtant je ne fus si grand peintre. Quand mon vallon chéri se couvre autour de moi d'une légère vapeur; qu'au-dessus de ma tête le soleil de midi darde ses rayons embrasés sur la sombre voûte de mon bois, au fond duquel, comme d'un sanctuaire, il introduit à peine une tremblante lumière.}

\hsize 2in

\txt

{\emergencystretch 10pt \txt\par}

\vfill\eject

\hsize 2in

\txt

{\emergencystretch 100pt \txt\par}


\vfill\eject

\hsize 2in

\txt

{\emergencystretch 1000pt \txt\par}

\end{document}

相关内容