LaTeX:防止文本范围内的换行


148

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

更新:我不想引起行溢出,我宁愿LaTeX在这些区域之前而不是在它们内部插入换行符。

Answers:


157

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

TeX更喜欢超长的行,而不是在行中的单词之间增加太多的空间;我的想法是,您会注意到延伸到页边距的行(以及在行之后插入的黑匣子),并且有机会修改内容,而如果空间太大,您可能不会注意到它。

使用\sloppy\begin{sloppypar}...\end{sloppypar}至少调整一点这种行为。另一种可能性是\raggedright(或\begin{raggedright}...\end{raggedright})。



31

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

例如:

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

这可以确保您没有以数字编号(无图部分)或大写字母A开头的行。


12
只是要注意,这~是一个不间断的空格字符,也就是说,它还会插入一个空格(有时可能希望在不插入空格的情况下防止中断)。
sdaau 2014年

24

使用\ nolinebreak

\ nolinebreak [数字]

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

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


14

定义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.
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.