LaTeX: Impedir quebra de linha em um espaço de texto

148

Como posso impedir que o LaTeX insira quebras de linha nas minhas regiões \texttt{...}ou em \url{...}texto? Não há espaços dentro dos quais eu possa substituir~ , é apenas quebrar símbolos.

Atualização : eu não quero causar estouros de linha, eu prefiro que o LaTeX insira quebras de linha antes dessas regiões e não dentro delas.

rampion
fonte

Respostas:

157

\mboxé a resposta mais simples. Em relação à atualização:

O TeX prefere linhas longas a adicionar muito espaço entre as palavras em uma linha; Eu acho que a idéia é que você notará as linhas que se estendem até a margem (e as caixas pretas que são inseridas após essas linhas) e terá a chance de revisar o conteúdo, enquanto que, se houver muito espaço, você poderá não perceber isto.

Use \sloppyou \begin{sloppypar}...\end{sloppypar}para ajustar esse comportamento, pelo menos um pouco. Outra possibilidade é \raggedright(ou \begin{raggedright}...\end{raggedright}).

Jouni K. Seppänen
fonte
64

Coloque-o com um \mbox{}

Michiel Buddingh
fonte
4
Isso incentivará o LaTeX a inserir uma quebra de linha antes da região, caso ela transbordasse?
Rampion 18/06/2009
1
Não. O \nohyphens{}comando, encontrado no hypenatpacote, apenas pode.
12139 Michiel Buddingh
1
Obrigado pela sugestão. Eu apenas tentei \ nohyphens {\ url {...}} e ainda permite quebras de linha.
Rampion
31

Além disso, se você tiver duas palavras subsequentes no texto comum e quiser evitar uma quebra de linha entre elas, poderá usar o caractere ~.

Por exemplo:

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

Isso pode garantir que você não tenha uma linha que comece com um número de figura (sem a parte da Fig.) Ou com uma letra maiúscula A.

Uri
fonte
12
Apenas para observar que ~é um caractere de espaço sem quebra , ou seja, ele também insere um espaço (às vezes é possível impedir a quebra sem inserir um espaço).
Sdaau
24

Use \ nolinebreak

\ nolinebreak [número]

O comando \ nolinebreak impede o LaTeX de quebrar a linha atual no ponto do comando. Com o argumento opcional, number, você pode converter o comando \ nolinebreak de uma demanda em uma solicitação. O número deve ser um número de 0 a 4. Quanto maior o número, mais insistente é a solicitação.

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

Tomasz
fonte
14

Defina o 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.
Alexey Malistov
fonte