如何使数学模式下的文本自动在下一行开始,从而导致“过满的 \hbox”?

如何使数学模式下的文本自动在下一行开始,从而导致“过满的 \hbox”?

我在$s 内添加了文本,该文本位于正常文本之后,超出了行尾并产生了警告overfull \hbox

默认情况下,LaTeX 不会让数学模式中的内容超出行尾,但它会在代码中的某个位置创建一个换行符。我该如何让它默认在 s 中的文本$开始之前放置一个换行符?

\documentclass{article}
\begin{document}

Here is text which starts off the line.
We can write $A^n$ as $\bigcup_{a^{n-1} \in A^{n-1}} \{(a^{n-1}, a) \,:\, a \in A \}$.

More text, then I have something like the following
$(-3, 3)^{C} \textrm{ in } A = (-\infty, -3] \cup [3, \infty)$.

\end{document}

:我在第一句的之后得到了换行符,\cup在第二句的 之后也得到了换行符。

PS 另外,有没有更好的方法可以在数学模式下的集合中创建“这样”的符号,而不是\,:\,?理想情况下,一个|会很好,前面和后面都有空格......

答案1

\documentclass{article}
\begin{document}

Here is text which starts off the line.
We can write $A^n$ as 
\[
\bigcup_{a^{n-1} \in A^{n-1}} \{(a^{n-1}, a) : a \in A \}.
\]

More text, then I have something like the following
$(-3, 3)^{C}$ in $A = (-\infty, -3] \cup [3, \infty)$.

\end{document}

复杂的公式最好在显示模式下设置;不要在冒号周围添加空格,最好在之后\{和之前添加空格\}

第二种情况有一个很大的缺陷:单词“in”必须超出数学模式,因为它是文本。如果你想避免在 处中断\cup,请写

\cup\nobreak

但请等到文档完成时再做决定。

答案2

我的答案是不要这样写数学;每当我因为内联数学而出现“满溢的水平盒子”时,我就会意识到这些数学太复杂了,无法内联,并将其切换到显示。基本上,除了单个符号或我认为像这样的非常简单的语句之外的任何数学$x \in Y$都应该出于良好风格的原因而简单地显示。

挑剔一下代码本身:如果您要编写任何类型的严肃数学,您可能希望使用包amsmath,它提供了许多有用的功能,并对默认功能进行了一些改进。在本例中,它提供了\colon,它经过修改,具有您给出的那种良好的间距,以及,它是数学模式中\text的更好替代方案。\textrm

相关内容