Работа в системе LaTeX



Более тонкая настройка - часть 2


Отношение "требуемого растяжения" к "пределу растяжимости" строки определяет, насколько разреженной получится строка. Традиционно это отношение обозначается буквой
r
. Практически в качестве меры разреженности используется не само число
r
, а число
100r^3
--- это и есть badness. Если даже окажется, что
100r^3>10000
, badness все равно будет считаться равной
10000
: строки, для которых отношение
r
больше или равно
4.7
(примерно при этом значении получается
10000
), рассматриваются TeX'ом как одинаково плохие.

В том счастливом случае, когда требуемая длина строки совпадает с естественной, мера разреженности равна нулю; если мера разреженности не превосходит

100
, то растяжение строки не превосходило предела; на самом деле даже строки, мера разреженности которых не превосходит
200
, выглядят всё еще хорошо, хотя они уже и рассматриваются TeX'ом как слегка разреженные: TeX старается, чтобы такая "слегка разреженная" строка не попалась в абзаце рядом со строкой, в которой промежутки между словами сжимались. Сообщения об underfull'е появляются, когда badness превосходит 1000.

Теперь мы можем объяснить точный смысл параметра \emergencystretch. Если при верстке абзаца не удалось избежать переполнения, то — при условии, что значение \emergencystretch отлично от нуля, — TeX делает еще одну попытку, при которой в процессе перебора вариантов разбиения абзаца на строки (и вычислений соответствующих значений badness) к "пределу растяжимости" каждой из строк прибавляется значение \emergencystretch.

Параметр\tolerance. Теперь в нашем распоряжении есть все необходимые понятия, чтобы объяснить, как TeX выбирает между разреженной строкой и переполнением.

При разбиении абзаца на строки TeX никогда не создает строки, мера разреженности (badness) которых больше, чем значение TeX'овского параметра, называемого \tolerance. При невозможности удовлетворить этому условию создаются строки, выходящие за край: возникает overfull. С другой стороны, если мера разреженности строки не превосходит значения \tolerance, то будет создана именно столь разреженная строка, но не overfull.




Содержание  Назад  Вперед