LaTeX разбивает слишком много слов

Я написал документ на LaTeX, используя двухколонный формат, 11pt, шрифт Times. Многие из моих слов отображаются через дефис, и для каждого элемента списка описания я получаю предупреждение о бадбоксе (хотя в выводе проблем не видно). Как я могу это исправить?

3 ответа

Решение

Вы должны установить штраф за перенос слов где-то в преамбуле:

\hyphenpenalty=750

Значение 750 соответствовало моим потребностям для макета в два столбца на бумаге для писем (8,5x11 дюймов) со шрифтом 12 пт. Отрегулируйте значение в соответствии с вашими потребностями. Чем выше число, тем меньше переносов. Вы также можете посмотреть на hyphenatпакет, он обеспечивает немного больше, чем просто штраф за перенос слов.

Хотя да, вы можете сделать TeX менее требовательным или даже использовать рваный вариант, это лучше всего исправить microtype пакет. Просто загрузка должна сделать свое дело:

\usepackage{microtype}

Он обеспечивает две функции для улучшения набора текста абзацев:

  • Кернинг полей: символы, особенно знаки препинания, будут немного выступать на полях. На практике это приводит к небольшому увеличению длины линии и (IMO) выглядит очень красиво.
  • Расширение шрифта: наряду с растяжением / сокращением пространства между словами для создания пустого абзаца, сами символы растягиваются / сжимаются на очень небольшие величины (менее одного процента). Это визуально незаметно на уровне персонажа, но, что удивительно, имеет огромное значение на уровне абзаца.

Я всегда просто использовал \raggedright для этого, но я никогда не делал этого для всей статьи. В этом FAQ (который является одним из моих ресурсов по LaTeX) рекомендуется ragged2e пакет.

Да, и примечание: я никогда не обращаю внимания на плохие ящики, если не вижу их в выводе. Это, вероятно, глупо, но LaTeX намного более придирчив, чем я.

Основываясь на ответах из другого сообщения, я обнаружил, что эти настройки идеально подходят для предотвращения переноса в целом, не будучи уродливыми:

\tolerance=9999
\emergencystretch=10pt
\hyphenpenalty=10000
\exhyphenpenalty=100

\tolerance=9999 позволяет как можно больше пробелов.

\emerencystretch=10pt допускает дополнительные пробелы в строке.

\hyphenpenalty=10000 полностью отключает дефисы.

\exhyphenpenalty=100 позволяет использовать дефисы, которые уже присутствовали.

Другие вопросы по тегам