допуск в формате одного и двух столбцов

допуск в формате одного и двух столбцов

Я заметил, что tolerance = 200для одноколоночного макета в классе статьи это так, а tolerance = 9999для двухколоночного макета. Но в ltxgrid.cls, toleranceостается на уровне 200 для \onecolumngridили \twocolumngrid.

Больший допуск в классе статей с двумя столбцами решает ряд проблем в более узких строках двухстолбцового режима, но он может оставлять очень широкие пробелы.

Итак, у меня возникли вопросы: почему в классе article установлено такое высокое значение для двух столбцов и какое значение является желательным toleranceв типичном режиме с двумя столбцами?

решение1

articleделает

\if@twocolumn
  \twocolumn
  \sloppy
  \flushbottom
\else
  \onecolumn
\fi

поэтому допуск, который вы видите, обусловлен использованием \sloppy, вы можете использовать ту же команду в других узких контекстах столбцов или как обсуждалось в нескольких местах, например

Что означает \суетливый, \небрежный, \экстренно растянутый, \терпимость, \плохой?

Вы можете рассмотреть версию, \sloppyкоторая не \toleranceтак сильно увеличивается и больше полагается на \emergencystretch.

решение2

Как сказал Дэвид, здесь нет реального оптимального значения. Все зависит от фактического контента в узких настройках и вашей готовности вручную исправлять отдельные проблемы, переписывая текст, добавляя точки переноса, которые TeX не нашел и тому подобное.

Если вы установите высокий допуск, то TeX будет иметь больше возможных точек останова, которые он будет рассматривать, и, возможно, найдет ту, которая подойдет в проблемном случае. В результате вы получите одну или несколько довольно плохо разнесенных строк. Если вы установите низкий допуск, но используете более высокий emergencystretch, то Tex изначально найдет только «лучшие» разрывы строк, т. е. те, которые не так сильно разнесены, но если это не даст решения, то вместо того, чтобы иметь одну плохо разнесенную строку, вы получите больше (или даже все) строк «довольно плохо» разнесенных, поскольку этот emergencystretch затем добавляется ко всем строкам, делая в целом более удачными строки с неплотным интервалом. Что работает лучше — дело вкуса, но, на мой взгляд, ни один из них не является действительно хорошим.

Обычно я устанавливаю допуск на уровне около 2000–3000 с небольшим значением для дополнительного аварийного растяжения и готов вручную устранить любую оставшуюся проблему, но если вам нужно полностью автоматическое решение (или почти), то единственной возможностью будет что-то вроде \sloppy или очень высокое значение для аварийного растяжения (или подходящая комбинация высокого допуска + соответствующего аварийного растяжения, чтобы был найден примерно тот же набор разрывов).

Связанный контент