下面是一个 parbox 示例,它会产生欠满和过满警告:
\parbox{100pt}{A set of comparison triplets \(T = \{ (i,j,l) | z_i \;is\; more\; similar\; to\; z_j\; than\; z_l\}\) is given.}
当渲染为 pdf 时,它看起来像这样:
显然,公式的某些部分不能分成多行。我想让 Latex 断行大括号内的文本,并将其定位为 parbox 中的其他文本。这可能吗?
我搜索过类似的问题:
为什么当我使用没有换行符的内联数学运算时 \hbox 会溢出答案解释了
${...}$
和之间的区别$...$
。我已经在使用后者,所以我希望换行符对我有用。如何将方程式拆分为两行(或更多行)这似乎针对的是已经存在于一行中的方程式。我希望方程式嵌入到文本中。
打破内联数学公式可接受的答案基于 showframe 包对逗号符号进行了复杂的重新定义。但另一个答案指向 \allowbreak。
还有这个:如何在内联数学中括号前/后自动换行但说实话,我不明白所接受的答案在做什么(乳胶的某些部分对我来说仍然完全是神奇的)。
\allowbreak 对我来说也很好用。我可以定义方程式可能被分解的特定点。但是我如何才能避免在我的数学排版中到处散布 allowbreak?以下代码有效(它仍然会产生未满警告,但这是我的文本内容,与内联公式无关)但阅读和编辑起来很糟糕:
\parbox{100pt}{A set of comparison triplets \(T = \{ (i,j,l) | \allowbreak z_i \; \allowbreak is\; \allowbreak more\; \allowbreak similar\; \allowbreak to\; \allowbreak z_j\; \allowbreak than\; \allowbreak z_l\}\) is given.}
答案1
我给出的一般建议是避免使用长文本集构建器符号:读者在查看文本时会非常疲倦,并且很难分离出右括号。
A set $T$ consisting of comparison triplets $(i,j,l)$ such that $z_i$
is more similar to $z_j$ than $z_l$ is given.
但是,如果你使用集合构建器符号,则不是一套, 但集合:
The set $T$ consisting of all comparison triplets $(i,j,l)$ such that $z_i$
is more similar to $z_j$ than $z_l$ is given.
如果您坚持使用集合构建器符号,请来回进入和退出数学模式:
The set of comparison triplets $T=\{(i,j,l)\mid z_i$
is more similar to $z_j$ than $z_l\}$ is given.
我用来twocolumn
模拟你的问题。请注意\mid
,不是简单的|
周围有错误间距。
替代方法:定义一个符号。
\documentclass[twocolumn]{article}
\newcommand{\MST}{\mathrm{MST}}
\begin{document}
Define the ternary relation ``is more similar to than'' on the positive integers
by stipulating that $\MST(i,j,l)$ holds if and only if $z_i$ is more similar
to $z_j$ than $z_l$ and set
\[
T=\{(i,j,l)\mid \MST(i,j,l)\}
\]
\end{document}
答案2
答案3
我个人认为集合构建器符号是合适的,但从风格上讲,我会说这个(或者实际上这么长的任何东西)应该是一个显示的方程式,因为这样比内联方程式更容易阅读。
\parbox{100pt}{
A set of comparison triplets
\[
T = \{ (i,j,l) \mid \text{$z_i$ is more similar to $z_j$ than $z_l$}\}
\]
is given.
}
(请注意,我还将其更改为用于\text
等式的文本部分,这需要包含包amsmath
。此外,使用\mid
而不是|
在垂直线周围放置正确的间距。)
这本身并不能解决 hbox 过满/不足的问题,但是通过使用multline
提供的环境amsmath
,您可以自己添加换行符:
\documentclass{article}
\usepackage{amsmath}
\begin{document}
\parbox{100pt}{
A set of comparison triplets
\begin{multline*}
T = \{ (i,j,l) \mid \text{$z_i$ is} \\
\text{more similar to $z_j$} \\
\text{than $z_l$}\}
\end{multline*}
is given.
}
\end{document}
不可否认,这看起来仍然有点傻,但我希望 100pt 列只是为了举例子,而你实际上至少有比这多一点点的空间。
您可以使用\\
在环境中插入换行符multline
,但它们必须位于任何命令之外,这就是为什么我必须放置几个单独的\text
命令。
您可以删除*
frommultline*
以赋予其方程编号。(我建议始终对显示的方程进行编号。)另请注意,出于某种原因,它是带有一个“i”的“多行”,而不是您可能期望的“多行”。