web-dev-qa-db-ja.com

LaTeX:テキストのスパンで改行を防止します

LaTeXが\texttt{...}または\url{...}テキスト領域に改行を挿入しないようにするにはどうすればよいですか?内部に~で置き換えることができるスペースはありません。単に記号が壊れています。

更新:行のオーバーフローを引き起こしたくありません。LaTeXは、これらの領域内ではなく、これらの領域の前に改行を挿入するだけです。

131
rampion

\mboxが最も簡単な答えです。アップデートについて:

TeXは、行の単語間に余計なスペースを追加するよりも長い行を好む。私は、余白に伸びる行(およびそのような行の後に挿入する黒いボックス)に気づき、内容を修正する機会があると考えているのに対し、スペースが多すぎる場合は気付かないかもしれないと思うそれ。

\sloppy または\begin{sloppypar}...\end{sloppypar}を使用して、この動作を少なくとも少し調整します。別の可能性は、 \raggedright (または\begin{raggedright}...\end{raggedright})です。

135

\mbox{}で囲みます

57

また、通常のテキストに後続の2つの単語があり、それらの間の改行を避けたい場合は、〜文字を使用できます。

例えば:

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

これにより、図番号(図の部分なし)または大文字のAで始まる行がないことを確認できます。

25
Uri

\ nolinebreakを使用

\ nolinebreak [number]

\ nolinebreakコマンドは、LaTeXがコマンドのポイントで現在の行を分割しないようにします。オプションの引数numberを使用すると、\ nolinebreakコマンドをデマンドからリクエストに変換できます。数値は0〜4の数値である必要があります。数値が大きいほど、要求の一貫性が高まります。

ソース: http://www.personal.ceu.hu/tex/breaking.htm#nolinebreak

18
Tomasz

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