在我的 LaTeX 文档中,我有一些包含下划线的特殊术语,例如 AAA_BBB_CCC。在一种情况下,这样的标记被放置在行尾,并且由于某种原因,它延伸到了边缘。
我喜欢这样的事实,即标记不被分成子标记,但理想情况下,如果它不适合这一行,我希望整个术语转到下一行,或者在任何情况下保持右边距完好无损。
我目前正在源代码中写下这些术语,如下所示:
bla bla bla My\_underscored\_term bla bla bla
有没有其他办法可以保持利润不变?
答案1
我认为这与下划线关系不大,而是因为在行尾附近有一个较长的单词,而没有明确的连字符指示。 (La)TeX 之所以这么做,是因为它认为没有很好的断行点:将单词保留在行中会使它进入边距,将单词移动到下一行则需要在单词之间留出相当大的空间才能填满行。
这可能不是您所希望的答案,但最明智的解决方案是尝试稍微改写一下您的段落(在这里或那里添加或删除几个单词),以便这些较长的非连字符单词不会出现在行尾附近。
你也可以强制 LaTeX 选择其他次优替代方案(即将整个单词移动到下一行并用长空格填充当前行),方法是明确添加\linebreak
,例如
... bla bla bla\linebreak My\_underscored\_term bla bla bla
另一种选择是刘指出的是,重新定义\_
以便允许在下划线处断开长单词。这可能会或可能不会被您接受。
答案2
您可以重新定义\_
:
\renewcommand\_{\textunderscore\linebreak[1]}
或者
\renewcommand\_{\textunderscore\allowbreak}
答案3
您只需在代码中包含以下行即可:-
\usepackage{underscore}
我认为它将解决问题。