\texttt 水平盒子过满问题

\texttt 水平盒子过满问题

我之前问过一个关于\verbhbox 过满的问题: 内联 \verb——hbox 过满问题

关于那里的解决方案,我将我的许多\verbs改为\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。有几种方法可以解决此类问题:

  1. 为 pdfTeX 启用微类型 (建议):

    \usepackage{microtype}
    
  2. 启用 TT 文本的连字符:

    \usepackage[htt]{hyphenat}
    
  3. 使用一个草率的段落:

    \sloppy
    

    或者

    \begin{sloppypar}
    The entry point is...
    \end{sloppypar}
    

    这可能会导致间距不佳。

  4. 手动启用中断:

    \texttt{Work\allowbreak flow}
    

    这在这里没用,但可能对\texttt{TRCS.\allowbreak Main()}

答案2

您可以查看软件包urlpath。两者都有优点和缺点,具体取决于您想要什么。到目前为止,我使用过path它并且很满意。

请注意,即使没有加载路径包,该命令\path{}也存在。据我所见,它的行为大致相同,但您无法指定中断字符。

最后,除了\allowbreak已经提到的,您还可以使用\-来定义条件断行。但在这种情况下,LaTeX 会在行末添加一个破折号。

相关内容