LaTeX:防止在一段文本中换行

如何防止LaTeX在\texttt{...}\url{...}文本区域中插入换行符? 里面没有空格,我可以用~代替,这只是打破了符号。

更新 :我不想导致行溢出,我只是想让LaTeX在这些区域之前插入换行符,而不是在它们之间。

\mbox是最简单的答案。 关于更新:

TeX更喜欢在一条线上的文字之间添加太多空间, 我认为这个想法是,你会注意到延伸到边界的行(以及它插入的黑色框之后),并且将有机会修改内容,而如果空间太多,你可能不会注意到它。

使用\sloppy\begin{sloppypar}...\end{sloppypar}来调整这个行为,至less有一点。 另一种可能性是“ \raggedright (或者“ \begin{raggedright}...\end{raggedright} )。

\mbox{}环绕它

而且,如果您在正常文本中有两个后续单词,并且您希望避免它们之间的换行符,则可以使用〜字符。

例如:

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

这可以确保你没有一个以图号(没有graphics部分)或大写字母A开始的行。

使用\ nolinebreak

\ nolinebreak [数字]

\ nolinebreak命令可以防止LaTeX在命令点破坏当前行。 使用可选参数number,您可以将\ nolinebreak命令从需求转换为请求。 数字必须是从0到4的数字。数字越大,请求越坚持。

资料来源: http : //www.personal.ceu.hu/tex/breaking.htm#nolinebreak

定义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.