我之前问过一个关于\verb
hbox 过满的问题:
内联 \verb——hbox 过满问题
关于那里的解决方案,我将我的许多\verb
s改为\texttt{}
s。我现在又遇到了一个新问题。例如:
\documentclass {article}
\begin{document}
\section {Introduction}
The entry point is in \texttt{TRCS.Main()} (\texttt{TRCS\char`\\TRCS.cs}).
The stateless (see \S 3.4.3) forms are started immediately, then another controller
is invoked, namely \texttt{Workflow}.
\end{document}
编译此示例将显示我的问题。 \texttt{Workflow}
导致溢出,而且相当严重。我应该怎么做才能缓解这个问题?提前感谢您的帮助!
答案1
通俗地说,TeX 在空格处(以及单词中的其他几个位置,称为“自由换行”)换行。打字机排版不允许自由换行。如果 中没有空格\texttt{}
,则不能换行。
\texttt
对于您的示例,使用而不是没有任何帮助\verb
。有几种方法可以解决此类问题:
为 pdfTeX 启用微类型 (建议):
\usepackage{microtype}
启用 TT 文本的连字符:
\usepackage[htt]{hyphenat}
使用一个草率的段落:
\sloppy
或者
\begin{sloppypar} The entry point is... \end{sloppypar}
这可能会导致间距不佳。
手动启用中断:
\texttt{Work\allowbreak flow}
这在这里没用,但可能对
\texttt{TRCS.\allowbreak Main()}
答案2
您可以查看软件包url
和path
。两者都有优点和缺点,具体取决于您想要什么。到目前为止,我使用过path
它并且很满意。
请注意,即使没有加载路径包,该命令\path{}
也存在。据我所见,它的行为大致相同,但您无法指定中断字符。
最后,除了\allowbreak
已经提到的,您还可以使用\-
来定义条件断行。但在这种情况下,LaTeX 会在行末添加一个破折号。