LaTeX:防止文本范围内换行

问题描述 投票:0回答:5

如何防止 LaTeX 在我的

\texttt{...}
\url{...}
文本区域中插入换行符?里面没有空格我可以用
~
替换,它只是破坏了符号。

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

latex
5个回答
204
投票

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

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

使用

\sloppy
\begin{sloppypar}...\end{sloppypar}
至少稍微调整一下此行为。另一种可能性是
\raggedright
(或
\begin{raggedright}...\end{raggedright}
)。


103
投票

\mbox{}

包围它

40
投票

此外,如果常规文本中有两个连续的单词,并且您想避免它们之间出现换行符,则可以使用 ~ 字符。

例如:

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

这可以确保您没有以图形编号(没有 Fig. 部分)或大写 A 开头的行。


31
投票

使用 断线

在线中断[数量]

的 olinebreak 命令阻止 LaTeX 在命令处断开当前行。随着 可选参数,数字,您可以转换 断线命令 从要求到请求。该数字必须是 0 到 4 之间的数字。 数字越大,请求越坚决。

来源:https://web.archive.org/web/20180424131455/http://www.personal.ceu.hu/tex/breaking.htm#nolinebreak


18
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.