КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Более тонкая настройка
Режимы, задаваемые командами \sloppy и \fussy, представляют собой две крайности. Здесь мы расскажем вам о более аккуратных способах управления разбиением на строки. Параметр \hfuzz. Если вы получаете слишком много сообщений о переполнениях, можно попросить TeX вообще не считать слишком длинными те строки, которые выдаются за край не очень сильно. Для этих целей предусмотрен параметр \hfuzz. Например, команда \hfuzz=2.5pt указывает, что как overfull будут восприниматься лишь те строки, которые выступают за край более, чем на два с половиной пункта. В обычном режиме значение параметра \hfuzz равно одной десятой пункта. Если \hfuzz равен примерно Мера разреженности строки. Как вы помните, в сообщении TeX'а о разреженной строке фигурирует такая мера разреженности строки, как "badness". Посмотрите, как выглядят на печати разреженные строки с различными значениями этой меры:
У последней из наших строк значение badness равно 10000. Если растянуть пробелы в строке еще сильнее, то badness уже не увеличится, а останется равной 10000: с точки зрения TeX'а, такие разреженные строки настолько плохи, что нет смысла делать различие между ними. Для интересующихся объясним подробнее, как вычисляется badness. Как мы уже говорили в разд. "Промежутки между предложениями", промежутки между словами в тексте не фиксированы, а могут растягиваться или сжиматься. Каковы эти пробелы и насколько они могут растягиваться, зависит от шрифта (для примера: у основного шрифта кегля 10 обычный промежуток между словами равен примерно В том счастливом случае, когда требуемая длина строки совпадает с естественной, мера разреженности равна нулю; если мера разреженности не превосходит Теперь мы можем объяснить точный смысл параметра \emergencystretch. Если при верстке абзаца не удалось избежать переполнения, то — при условии, что значение \emergencystretch отлично от нуля, — TeX делает еще одну попытку, при которой в процессе перебора вариантов разбиения абзаца на строки (и вычислений соответствующих значений badness) к "пределу растяжимости" каждой из строк прибавляется значение \emergencystretch. Параметр \tolerance. Теперь в нашем распоряжении есть все необходимые понятия, чтобы объяснить, как TeX выбирает между разреженной строкой и переполнением. При разбиении абзаца на строки TeX никогда не создает строки, мера разреженности (badness) которых больше, чем значение TeX'овского параметра, называемого \tolerance. При невозможности удовлетворить этому условию создаются строки, выходящие за край: возникает overfull. С другой стороны, если мера разреженности строки не превосходит значения \tolerance, то будет создана именно столь разреженная строка, но не overfull. В отличие от некоторых других систем компьютерной верстки, TeX никогда не растягивает и не сжимает отдельное слово. В стандартном режиме значение параметра \tolerance равно В частности, именно так работает команда \sloppy: она устанавливает \tolerance=9999, а не 10000 (так что сколь угодно разреженные строки все-таки не допускаются) и при этом задает значение \emergencystretch, равное 3em (так что при необходимости растянуть строки TeX может равномерно распределить дополнительную растяжимость по всему абзацу). Увеличить значение \tolerance можно "глобально", во всем документе, дав в преамбуле команду наподобие \tolerance=400 или же "локально", дав аналогичную команду внутри группы, содержащей данный абзац. В последнем случае не забывайте, что закрывающая группу фигурная скобка должна идти после пустой строки, завершающей абзац (см. выше обсуждение команд \sloppy и \raggedright). Как менять длину абзаца. Иногда абзац не помещается на полосу из-за того, что он на строку-другую длиннее, чем нужно, и хочется его укоротить. Команда looseness=-1 побуждает TeX стараться, чтобы абзац занял на одну строку меньше, чем при оптимальной верстке. Если абзац короткий (скажем, занимает всего две строки), то из этого, конечно, ничего не получится. Если же абзац достаточно длинный, то у TeX'овского алгоритма обычно хватает гибкости, чтобы достигнуть этой цели. Можно присвоить параметру \looseness и значение По умолчанию значение параметра \looseness равно, естественно, нулю, и по окончании верстки каждого абзаца этот параметр также устанавливается в нуль. Тем самым нет нужды заботиться о том, чтобы значение \looseness менялось внутри группы, и бессмысленно присваивать этому параметру какое-то значение в преамбуле (оно забудется после первого же абзаца текста). Для каждого абзаца, для которого это вообще нужно, значение \looseness надо устанавливать заново.
Дата добавления: 2014-01-03; Просмотров: 583; Нарушение авторских прав?; Мы поможем в написании вашей работы! |