Предотвращение texttt LaTeX tag от пропускания его содержимого через поле [закрыто]

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

пример:

This is my class name: texttt{baseAdminConfiguration}.

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

Как я должен обрабатывать такой кейс?

Ура.

2 ответов


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

\hyphenation{base-Admin-Configuration}

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

кроме того, если это не трюк, вы можете ввести подсказки ручной гипенации в тексте:

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

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

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

для предотвращения переполнения линий латекса в принципе, весь абзац может быть завернут в sloppypar окружающая среда (спасибо Уиллу за указание на это в комментариях):

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

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


решение довольно простое: используйте пакет url и замените команду texttt командой path.

Я узнал, что здесь https://tex.stackexchange.com/questions/299/how-to-get-long-texttt-sections-to-break на посту Уилла Робертсона.

Ура