LaTeX: 防止文本跨度中的换行

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

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

292736 次浏览

\mbox{}包围它

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

例如:

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

这可以确保您没有以图形数字开头的线条(没有图1)。部分)或大写字母 A。

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

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

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

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


使用 nolinebreak

非线性中断[数字]

Nolinebreak 命令防止 LaTeX 中断命令点的当前行 可选参数 number,可以转换 nolinebreak 命令 从一个需求到一个请求。数字必须是一个从0到4的数字。 数字越高,请求就越坚持。

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