LaTeX: impedisce l'interruzione di riga in un arco di testo


148

Come posso impedire a LaTeX di inserire interruzioni di riga nelle mie aree di testo \texttt{...}o \url{...}? Non ci sono spazi all'interno che posso sostituire ~, si sta solo rompendo i simboli.

Aggiornamento : non voglio causare overflow delle linee, preferirei semplicemente LaTeX inserire interruzioni di riga prima di queste aree anziché all'interno.

Risposte:


157

\mboxè la risposta più semplice. Per quanto riguarda l'aggiornamento:

TeX preferisce linee troppo lunghe per aggiungere troppo spazio tra le parole su una linea; Penso che l'idea sia che noterai le linee che si estendono nel margine (e le scatole nere che inserisce dopo tali linee) e avrai la possibilità di rivedere il contenuto, mentre se ci fosse troppo spazio, potresti non notare esso.

Utilizzare \sloppyo \begin{sloppypar}...\end{sloppypar}per regolare questo comportamento, almeno un po '. Un'altra possibilità è \raggedright(o \begin{raggedright}...\end{raggedright}).


64

Circondalo con un \mbox{}


4
Questo incoraggerà LaTeX a inserire un'interruzione di linea prima della regione se dovesse traboccare la linea?
rampion

1
No. Il \nohyphens{}comando, trovato nel hypenatpacchetto, potrebbe.
Michiel Buddingh,

1
Grazie per il suggerimento Ho appena provato \ nohyphens {\ url {...}}, e consente comunque interruzioni di riga.
rampion

31

Inoltre, se nel testo normale sono presenti due parole successive e si desidera evitare un'interruzione di riga, è possibile utilizzare il carattere ~.

Per esempio:

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

Ciò può garantire che non si disponga di una riga che inizia con un numero di figura (senza la parte Fig.) O con una A maiuscola


12
Solo per notare che si ~tratta di un carattere di spazio non spezzante , ovvero inserisce anche uno spazio (a volte si potrebbe voler impedire la rottura senza inserire uno spazio).
sdaau,

24

Usa \ nolinebreak

\ Nolinebreak [numero]

Il comando \ nolinebreak impedisce a LaTeX di interrompere la riga corrente nel punto del comando. Con l'argomento facoltativo, numero, è possibile convertire il comando \ nolinebreak da una richiesta a una richiesta. Il numero deve essere un numero compreso tra 0 e 4. Maggiore è il numero, più insistente è la richiesta.

Fonte: http://www.personal.ceu.hu/tex/breaking.htm#nolinebreak


14

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

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.