Подтвердить что ты не робот

Предотвращение тега \texttt LaTeX из-за того, что его содержимое проходит через границу

В моем отчете я пишу некоторые имена классов или имена переменных внутри абзаца, и я хочу, чтобы эти имена отображались в моноширинном шрифте.

Пример:

This is my class name: \texttt{baseAdminConfiguration}.

Иногда, когда одно слово внутри тега \texttt отображается в конце строки, слово не переходит к следующей строке, и в нем нет разрыва: конец слова проходит через маржа.

Как мне обращаться с таким случаем?

Приветствия.

4b9b3361

Ответ 1

Это не имеет особого отношения к \texttt. Слово просто слишком длинное, и LaTeX не знает, как его переносить. Вы можете сказать, как это сделать вручную, объявив правила переноса:

\hyphenation{base-Admin-Configuration}

Команда \hyphenation может принимать произвольно много слов, разделенных пробелами.

В качестве альтернативы, если это не трюк, вы можете ввести подсказки для руководства в тексте:

This is a long text that uses the word \texttt{base\-Admin\-Configuration) …

Отображается только фактическая переносов - неиспользуемые так называемые дискреционные дефисы (\-) не будут отображаться, поэтому при необходимости вы можете свободно посыпать их текстом.

[Подробнее о переносе в LaTeX]

Чтобы преградить LaTeX от переполненных строк в принципе, весь абзац можно обернуть в среду sloppypar (спасибо Will за это, указав это в комментариях):

\begin{sloppypar}
  Some text …
\end{sloppypar}

Это манипулирует параметрами алгоритма разрыва строки (в частности, \tolerance). Недостаток: это может привести к очень уродливому интервалу. Альтернативно, \tolerance и другие внутренние параметры можно манипулировать напрямую - TeX FAQ показывает, как.