强制乳胶在一行上写方程式

强制乳胶在一行上写方程式

我试图在 latex 中写下以下内容:“我们已经证明了 $\forall x \in \mathbb{R},f(x)<1$”,不幸的是,我在一行上得到了“f(x)”,在下一行上得到了“<1”。

是否有任何命令或方法可以强制乳胶在一行上写下方程式?

答案1

请看一下以下四个两行文本和数学的实例,其中我用f(x)<1绿色突出显示了实例:

在此处输入图片描述

  • 第一个实例复制了 OP 报告的内容,同时使用单个较长的内联数学模式实例,$\forall x \in \mathbb{R},f(x)<1$。(好吧,这只是几乎一个副本,因为我设法在之后生成了一个换行符,但在此之前<无论我多么努力,符号都是如此。)显然,1从排版的角度来看,将 悬空放在第二行并不是最佳选择。之所以在 之后换行,是因为 (a) TeX 会非常努力地避免创建过满的行,并且 (b)在内联数学模式下,在 类型的对象(例如)<之后允许换行。math-rel<

  • 第二个例子分解$\forall x \in \mathbb{R},f(x)<1$$\forall x \in \mathbb{R}$, $f(x)<1$。这是合法的,因为小品词\forall x \in \mathbb{R}f(x)<1构成了单独的子公式,而中间的,逗号从句法上讲属于句子结构,而不是任何一个子公式。虽然进行这种改变成功地使逗号后的空格成为常规的单词间空格,但它并没有不成功f(x)<1所有内容都放在一行上。哦,好吧。

  • 第三个实例被包裹f(x)<1\mbox包装器中,即$\forall x \in \mathbb{R}$, \mbox{$f(x)<1$}。不出所料,这种变化确实成功地将表达式保持f(x)<1在一行中。然而,这样做的代价是相当大的排版成本,使得单词之间的空间和周围的空白\in异常大,从而造成相当松散和混乱的外观。

  • 如果你不喜欢松散和凌乱,该怎么办?你可以考虑重写,特别是缩短,第 1 行内联公式之前的部分材料。例如,用“我们已经证明”(或者,如果你愿意,“我们已经证明”)替换“我们已经证明”——省略 7 个字母的单词“已经”是合理的,因为从过去时态转换为完成时态——成功地将两个子公式都放在一行上。

这个故事的寓意是:保持内联公式简短,不要犹豫重写句子以避免不必要的换行。哦,不要进行这样的润色练习,直到你确信你的论文快完成了,否则对文本和数学的进一步修改可能会使你的润色工作变得毫无意义。


最后,生成上面截图的 LaTeX 代码如下:

\documentclass{article}
\usepackage{amssymb} % for '\mathbb' macro
\begin{document}
\hspace{5mm}\dots to write the following in latex: we 
already proved that $\forall x \in \mathbb{R}, f(x)<1$, 
unfortunately \dots

\medskip
\hspace{5mm}\dots to write the following in latex: we 
already proved that $\forall x \in \mathbb{R}$, $f(x)<1$, 
unfortunately \dots

\medskip
\hspace{5mm}\dots to write the following in latex: we 
already proved that $\forall x \in \mathbb{R}$, \mbox{$f(x)<1$}, 
unfortunately \dots

\medskip
\hspace{5mm}\dots to write the following in latex: we 
have shown that $\forall x \in \mathbb{R}$, $f(x)<1$, 
unfortunately \dots

\end{document}

相关内容