在等式中堆叠事物的好方法是什么?

在等式中堆叠事物的好方法是什么?

我有一串不等式,中间某处有两个相等的东西。为了将其完美地放在一行中,我想将相等的东西堆叠起来。所以我想做这样的事情(使用 stackrel 包):

\[ A \leq \stackrel[B]{C}{\parallel} \leq D \]

但是这会使 B 和 C 变小。我可以用更笨拙的 hack 来解决这个问题:

\[ A \leq \stackrel[\text{\normalsize $B$}]{\text{\normalsize $C$}}{\parallel} \leq D \]

我的问题是:做这样的事情的正确方法是什么?

编辑:如果可能的话,我想要一些没有开始和结束的东西。

答案1

我将避免讨论这样做是否是个好主意,而是回答您的具体问题。您的问题是\stackrel隐式地从 displaystyle 中取出BC。要解决这个问题,您只需明确告诉它在 displaystyle 中排版它们:

\[ A \leq \stackrel[\displaystyle B]{\displaystyle C}{\parallel} \leq D \]

答案2

  • \stackrel是用来放置上标的,所以它不是正确的,

  • \substack也用于下标或上标,所以它不是最好的选择,

  • \genfrac是一个选项:\[A \leq \genfrac{}{}{0pt}{0}{B}{C} \leq D.\],但字母之间的间距可能比你希望的要大,

  • 环境aligned是可能的,

  • 环境array看起来很自然:\[A \leq \begin{array}{c} B \\ C \end{array}\leq D.\]

  • 如果你使用数组,你可以在本地修改 \arraystretch 以使其更加拥挤,另一种快速方法是使用 \ 的可选参数,就像\[A \leq \begin{array}{c} B \\[-3pt] C \end{array}\leq D\]

最好使用\[ ...\]而不是$$ ... $$

答案3

看过各种可能性的输出后,我不禁觉得这个问题应该带有“不要这样做”的标签!我发现自己想知道究竟是什么情况导致你想这样做。我猜整个表达式很长,有很多术语,所以逐行列出它们只会大。因此,目标是使整个表达式紧凑。鉴于它(大概)不相当一行就可以写完,使用等式作为压缩点确实有一定意义。但是,如果使用稍微多一点的空间让它更清晰一点呢?

考虑到这一点,以下是我的提议(使用 amsmath 包):

\begin{align*}
A \le B \le C &\le D \\
&\phantom{{}\le{}}\parallel \\
&\phantom{{}\le{}}E \le F \le G \le H
\end{align*}

注意\phantoms。放置对齐标签第一行的\le导致\le和 之间的间距不好D,所以我们必须将垂直等号和 稍微移动E一下,以便它们正确地位于 下方D。如果没有额外的括号, 两边的空间\le会被修剪,使其\phantom太短。

答案4

对于你的特殊情况,我会写

A \leq B = C \leq D

但一般来说,如果你想堆叠东西,我想可以用 AMS 矩阵环境来完成,

A \leq \begin{matrix}B \\ \parallel \\ C\end{matrix} \leq D

尽管可能有些东西非常适合这项任务。

(顺便说一句,我不太喜欢用它\parallel来得到旋转的等号,但如果你不愿意只使用常规的未旋转的等号,我不知道正确的方法。)

相关内容