如何防止 LaTeX 在我的
\texttt{...}
或 \url{...}
文本区域中插入换行符?里面没有空格我可以用 ~
替换,它只是破坏了符号。
更新:我不想导致行溢出,我只是宁愿 LaTeX 在这些区域之前而不是在它们内部插入换行符。
\mbox
是最简单的答案。关于更新:
TeX 更喜欢过长的行,而不是在行上的单词之间添加太多的空间;我认为这个想法是,您会注意到延伸到边距的线条(以及在这些线条之后插入的黑框),并且将有机会修改内容,而如果空间太多,您可能不会注意到它。
\sloppy
或 \begin{sloppypar}...\end{sloppypar}
至少稍微调整一下此行为。另一种可能性是 \raggedright
(或 \begin{raggedright}...\end{raggedright}
)。
用
\mbox{}
包围它
此外,如果常规文本中有两个连续的单词,并且您想避免它们之间出现换行符,则可以使用 ~ 字符。
例如:
As we can see in Fig.~\ref{BlaBla}, there is nothing interesting to see. A~better place..
这可以确保您没有以图形编号(没有 Fig. 部分)或大写 A 开头的行。
使用 断线
在线中断[数量]
的 olinebreak 命令阻止 LaTeX 在命令处断开当前行。随着 可选参数,数字,您可以转换 断线命令 从要求到请求。该数字必须是 0 到 4 之间的数字。 数字越大,请求越坚决。
来源:https://web.archive.org/web/20180424131455/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.