it-swarm.dev

LaTeX: Zapobiega łamaniu linii w zakresie tekstu

Jak mogę uniemożliwić LaTeXowi wstawianie łamania linii w moim \texttt{...} lub \url{...} regiony tekstowe? W środku nie ma spacji, które mogę zastąpić ~, to tylko łamanie symboli.

Aktualizacja: Nie chcę powodować przepełnienia linii, wolałbym raczej wstawiać podziały wiersza LaTeXa przed tymi regionami niż wewnątrz nich.

131
rampion

\mbox to najprostsza odpowiedź. W odniesieniu do aktualizacji:

TeX woli dłuższe linie niż dodawanie zbyt dużej przestrzeni między słowami w linii; Myślę, że chodzi o to, że zauważysz linie rozciągające się na margines (i czarne pola, które wstawia po takich liniach) i będziesz mieć szansę na poprawienie zawartości, a jeśli będzie za dużo miejsca, możesz nie zauważyć to.

Posługiwać się \sloppy lub \begin{sloppypar}...\end{sloppypar}, aby skorygować to zachowanie, przynajmniej trochę. Inną możliwością jest \raggedright (lub \begin{raggedright}...\end{raggedright}).

135

Otocz go \mbox{}

57
Michiel Buddingh

Ponadto, jeśli masz dwa kolejne słowa w tekście zwykłym i chcesz uniknąć podziału linii między nimi, możesz użyć znaku ~.

Na przykład:

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

Może to zapewnić, że nie masz linii rozpoczynającej się cyfrą (bez części rys.) Lub wielką literą A.

25
Uri

Użyj\nolinebreak

\ nolinebreak [liczba]

Polecenie\nolinebreak uniemożliwia LaTeXowi zerwanie bieżącej linii w punkcie polecenia. Opcjonalnym argumentem liczba można przekonwertować polecenie\nolinebreak z żądania na żądanie. Liczba musi być liczbą od 0 do 4. Im wyższa liczba, tym bardziej natarczywe jest żądanie.

Źródło: http://www.personal.ceu.hu/tex/breaking.htm#nolinebreak

18
Tomasz

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

14
Alexey Malistov