LaTeX: Предотвратить разрыв строки в интервале текста

148

Как я могу запретить LaTeX вставлять разрывы строк в мои \texttt{...}или \url{...}текстовые регионы? Там нет пробелов внутри, которые я могу заменить ~, это просто разбитие на символы.

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

колокольчик-рапунцель
источник

Ответы:

157

\mboxэто самый простой ответ. По поводу обновления:

TeX предпочитает слишком длинные строки, чтобы добавить слишком много места между словами в строке; Я думаю, что идея заключается в том, что вы заметите линии, которые простираются в поле (и черные поля, которые он вставляет после таких строк), и у вас будет возможность пересмотреть содержимое, тогда как, если бы было слишком много места, вы могли бы не заметить Это.

Используйте \sloppyили, \begin{sloppypar}...\end{sloppypar}чтобы настроить это поведение, хотя бы немного. Другая возможность \raggedright(или \begin{raggedright}...\end{raggedright}).

Йоуни К. Сеппанен
источник
64

Окружить его \mbox{}

Мичиэль Буддинг
источник
4
Будет ли это стимулировать LaTeX вставлять разрыв строки перед регионом, если он переполнит строку?
Рапион
1
Нет. \nohyphens{}Команда, найденная в hypenatпакете, просто может.
Михил Буддингх
1
Спасибо за предложение. Я только что попробовал \ nohyphens {\ url {...}}, и он все еще допускает переносы строк.
Рапион
31

Кроме того, если у вас есть два последующих слова в обычном тексте и вы хотите избежать разрыва строки между ними, вы можете использовать символ ~.

Например:

As we can see in Fig.~\ref{BlaBla}, there is nothing interesting to see. A~better place..

Это может гарантировать, что у вас нет строки, начинающейся с номера фигуры (без части Fig.) Или с заглавной буквы A.

Uri
источник
12
Просто отметим, что ~это символ неразрывного пробела , то есть он также вставляет пробел (иногда можно предотвратить разрыв без вставки пробела).
sdaau
24

Используйте \ nolinebreak

\ Nolinebreak [номер]

Команда \ nolinebreak запрещает LaTeX прерывать текущую строку в точке команды. С необязательным аргументом number вы можете преобразовать команду \ nolinebreak из запроса в запрос. Число должно быть числом от 0 до 4. Чем больше число, тем настойчивее запрос.

Источник: http://www.personal.ceu.hu/tex/breaking.htm#nolinebreak

Tomasz
источник
14

Определите команду myurl:


\def\myurl{\hfil\penalty 100 \hfilneg \hbox}

I don't want to cause line overflows, 
I'd just rather LaTeX insert linebreaks before 
\myurl{\tt http://stackoverflow.com/questions/1012799/} 
regions rather than inside them.
Алексей Малистов
источник