LaTeX: empêche les sauts de ligne dans une plage de texte

148

Comment puis-je empêcher LaTeX d'insérer des sauts de ligne dans mes régions de texte \texttt{...}ou \url{...}? Il n'y a pas d'espace à l'intérieur que je puisse remplacer par~ , c'est juste une rupture sur les symboles.

Mise à jour : Je ne veux pas provoquer de débordements de ligne, je préfère simplement LaTeX insérer des sauts de ligne avant ces régions plutôt qu'à l'intérieur.

rampion
la source

Réponses:

157

\mboxest la réponse la plus simple. Concernant la mise à jour:

TeX préfère les lignes trop longues plutôt que d'ajouter trop d'espace entre les mots sur une ligne; Je pense que l'idée est que vous remarquerez les lignes qui s'étendent dans la marge (et les boîtes noires qu'elle insère après ces lignes), et que vous aurez une chance de réviser le contenu, alors que s'il y avait trop d'espace, vous pourriez ne pas remarquer il.

Utilisez \sloppyou \begin{sloppypar}...\end{sloppypar}pour ajuster ce comportement, au moins un peu. Une autre possibilité est \raggedright(ou \begin{raggedright}...\end{raggedright}).

Jouni K. Seppänen
la source
64

Entourez-le d'un \mbox{}

Michiel Buddingh
la source
4
Cela encouragera-t-il LaTeX à insérer un saut de ligne avant la région s'il débordait la ligne?
rampion
1
Non. La \nohyphens{}commande, trouvée dans le hypenatpaquet, pourrait bien.
Michiel Buddingh
1
Merci pour la suggestion. J'ai juste essayé \ nohyphens {\ url {...}}, et il permet toujours les sauts de ligne.
rampion
31

De plus, si vous avez deux mots suivants dans le texte normal et que vous souhaitez éviter un saut de ligne entre eux, vous pouvez utiliser le caractère ~.

Par exemple:

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

Cela peut garantir que vous n'avez pas de ligne commençant par un numéro de figure (sans la partie Fig.) Ou avec une majuscule A.

Uri
la source
12
Juste pour noter qu'il ~s'agit d'un caractère d' espace insécable , c'est-à-dire qu'il insère également un espace (parfois on peut vouloir empêcher la rupture sans insérer un espace).
sdaau
24

Utilisez \ nolinebreak

\ nolinebreak [nombre]

La commande \ nolinebreak empêche LaTeX de couper la ligne courante au point de la commande. Avec l'argument facultatif, nombre, vous pouvez convertir la commande \ nolinebreak d'une demande en une demande. Le nombre doit être un nombre compris entre 0 et 4. Plus le nombre est élevé, plus la demande est insistante.

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

Tomasz
la source
14

Définissez la commande 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
la source