2009-06-18 11 views
106

Come impedire a LaTeX di inserire interruzioni di riga nelle aree di testo \texttt{...} o \url{...}? Non ci sono spazi all'interno che posso sostituire con ~, si sta solo rompendo sui simboli.LaTeX: prevenzione dell'interruzione di riga in un intervallo di testo

Aggiornamento: Non voglio causare overflow di linea, preferisco semplicemente che LaTeX inserisca interruzioni prima di queste regioni anziché all'interno di esse.

risposta

100

\mbox è il risposta più semplice. Riguardo l'aggiornamento:

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

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

44

Surround con un \mbox{}

+2

Sarà questo incoraggerà LaTeX per inserire un'interruzione di linea prima che la regione se sarebbe traboccare la linea? – rampion

+0

No. Il comando '\ nohyphens {}', trovato nel pacchetto 'hypenat', potrebbe solo. –

+0

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

15

Inoltre, se si hanno due parole successive nel testo normale e si vuole evitare un'interruzione di linea tra di loro, è possibile utilizzare il carattere ~.

Ad esempio:

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

Questo può garantire che non si dispone di una linea che iniziano con un numero dato (. Senza la parte Fig) o con una maiuscola A.

+4

Solo per notare che '~' è un carattere _space_ non-breaking, cioè, inserisce anche uno spazio (a volte si potrebbe voler impedire l'interruzione senza inserire uno spazio). – sdaau

12

comando myurl Define:


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

13

Usa \ nolinebreak

\ nolinebreak [numero]

Il comando \ nolinebreak impedisce LaTeX dal rompere la linea corrente nel punto di comando. Con l'argomento opzionale , numero, è possibile convertire il comando \ nolinebreak da una richiesta a una richiesta. Il numero deve essere un numero compreso tra 0 e 4. Più alto è il numero, maggiore è la richiesta.

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

+1

Non funziona per me –

+0

Hai provato \ nolinebreak [4]? – Tomasz

+0

Sì, ma già risolto con un'altra logica. Grazie –

Problemi correlati