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..

Це може гарантувати, що у вас немає лінії, що починається з цифри (без частини Рис.) Або з верхнього регістру А.


12
Зауважимо лише, що ~це нерозривний символ простору , тобто він також вставляє пробіл (іноді, можливо, захочеться запобігти злому без вставлення пробілу).
sdaau

24

Використовуйте \ nolinebreak

\ nolinebreak [кількість]

Команда \ nolinebreak заважає LaTeX зламати поточний рядок у точці команди. За допомогою необов'язкового аргументу, номер, ви можете перетворити команду \ nolinebreak з попиту в запит. Число повинно бути числом від 0 до 4. Чим більше число, тим наполегливіший запит.

Джерело: http://www.personal.ceu.hu/tex/breaking.htm#nolinebreak


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.
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.