强制数学模式位于同一行

强制数学模式位于同一行

我希望数学模式中的美元符号表达式始终保持在同一行,而这正是非数学模式中没有空格的字符序列的情况。有没有办法避免每次都手动添加换行符(这种风格很糟糕,如果必须返回并更改内容,更改后面的所有内容,就会变得非常混乱)?

答案1

文档序言中的以下两行应该会有所帮助:

\binoppenalty=10000
\relpenalty=10000

最好\begin{sloppy}...\end{sloppy}在出现数学的段落中添加一些内容,这样可以让行距更加灵活。您可以通过将其放入\sloppy序言中来全局允许这种灵活。

但是,这将完全禁止内联数学中的隐式换行。我认为这不是一个好主意。更好的想法是将 pelanties 设置为某个值,以阻止换行,但如果确实有必要,则允许换行:

\binoppenalty=3000
\relpenalty=3000

答案2

排版函数的常用方法是

$f\colon A \to B$

\to是相同的\rightarrow,但输入起来更短)。您将看到不同的间距:冒号前没有空格,冒号后有空格。这也会阻止冒号后的换行。如果您真的不想在箭头后换行,那么

$f\colon A \to\nolinebreak B$

就可以了。当然,你可以为此定义一个宏:

\newcommand{\function}[3]{#1\colon #2 \to\nolinebreak #3}

被称为

$\function{f}{A}{B}$

但我认为这是不必要的。只需在最后修改时检查该行,并\nolinebreak在真正需要的地方添加即可。

相关内容