给方程式分配空间的最佳方法是什么?

给方程式分配空间的最佳方法是什么?

最近,我选择改变数学模式中的典型书写方式,在某些运算符或符号之间有一个空格(想想arrows,,,=等等:)。

考虑一下这个MWE:

\documentclass{article}
\usepackage[spanish]{babel}
\selectlanguage{spanish}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{amsmath}

\begin{document}
Normal writing: \[x+2=0\Rightarrow x=-2.\]

Own writing: \[\begin{matrix}x+2 & = & 0 && \Rightarrow && x & = & -2.\end{matrix}\]
\end{document}

写作示例

另一个例子:

\[\begin{matrix}
\begin{cases}y\quad=&xk_1,\; k_1\in\mathbb Z\\z\quad=&xk_2,\; k_2\in\mathbb Z\end{cases}
&\Rightarrow&
y+z&=&xk_1+xk_2
&\Rightarrow&
y+z=x\underbrace{(k_1+k_2)}_{k_3\in\mathbb Z}&\Rightarrow&
y+z=xk_3
&\Rightarrow&
x\mid y+z.
\end{matrix}\]

请注意,它会产生一条额外的对齐消息,但重点是我不想手动设置空间以避免再次犯同样的错误。

我使用matrix环境是因为:

  • 编程很容易;
  • \\使用该命令时自动居中;
  • 需要一个单独的包才能工作。

无论如何,当某些类型的方程式保持居中时,视觉上会有点烦人。此外,我为每个环境使用个性化空间(而不是一般数字):

Example 1: \[\begin{matrix}x+2+1+52&=&2\\y&=&2\\z&=&1\end{matrix}\]

Example 2 (same as Example 1 but with vertical space): \[\def\arraystretch{1.5}\begin{matrix}x+2+1+52&=&2\\y&=&2\\z&=&1\end{matrix}\]

Example 3 (with more vertical space): \[\def\arraystretch{3.0}\begin{matrix}\displaystyle\int_2^2{x\;\text dx}&=&2+\dfrac x2\\\displaystyle\int_2^2{x\;\text dx}&=&2+\dfrac x2\end{matrix}\]

间距示例

请注意,我手动输入了方便的数组 strecth,以尽可能匹配其他空间。我对文档中的每个方程都这样做...

此外,在matrix环境中可能存在更多子结构,例如casesarray等等。

我想知道是否有任何环境可以完成这项工作,或者如何尽可能地实现自动化以保持水平空间垂直(可能使用个性化命令,也许是包等)。

任何形式的贡献都将受到赞赏。

谢谢!

答案1

tabstackengine软件包允许使用统一的垂直间距设置内容(请参阅stackengine软件包文档中的“短堆栈”),并使用自定义水平间距的数学制表符。但它不允许对单个方程式进行编号。

我创造的\CtabbedShortstack意思是居中 \tabbedShortstack,作为包\Centerstack\Vectorstack\Matrixstack使用具有恒定基线跳跃而不是恒定间隙的“长堆栈”。

在下面的 MWE 中,方程之间有 12pt 的间隙,并且额外的在标签周围的水平间距上添加了 7pt 的水平间隙。因为 OP 的示例似乎显示了这一点,所以我保留了列的居中对齐,而不是类似于align(在本例中是rcl对齐)的对齐。

\documentclass{article}
\usepackage{tabstackengine}
\TABstackMath
\TABstackMathstyle{\displaystyle}
\setstackgap{S}{12pt}
\setstacktabbedgap{7pt}
\TABbinary
\newcommand\CtabbedShortstack[2][c]{%
  \setbox0=\hbox{\tabbedShortstack[#1]{#2}}%
  \vcenter{\box0}%
}
\begin{document}
\noindent Example 2:
\[
  \tabbedShortstack{
  x + 2 + 1 + 52 &=& 2\\
  y &=& 2\\
  z &=& 1
  }
\]
Example 3:
\[
  \tabbedShortstack{
  \int_2^2 x \,dx &=& 2 + \frac{x}{2}\\
  \int_2^2 x \,dx &=& 2 + \frac{x}{2}
  }
\]
First in stack numbered
\begin{equation}
  \tabbedShortunderstack{
  x + 2 + 1 + 52 &=& 2\\
  \int_2^2 x \,dx &=& 2 + \frac{x}{2}
  }
\end{equation}
Last in stack numbered
\begin{equation}
  \tabbedShortstack{
  \int_2^2 x \,dx &=& 2 + \frac{x}{2}\\
  x + 2 + 1 + 52 &=& 2
  }
\end{equation}
Middle of stack numbered
\begin{equation}
  \CtabbedShortstack{
  \int_2^2 x \,dx &=& 2 + \frac{x}{2}\\
  \int_2^2 x \,dx &=& 2 + \frac{x}{2}
  }
\end{equation}
\end{document}

在此处输入图片描述

相关内容