Recently I have chosen to change the typical way of writing in math mode for one in which before certain operators or symbols there is a space in between (think about arrows, =, :, etc.).
Consider this 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}
Another example:
\[\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}\]
Note that it produces an extra alignment message but the point is that I don't want to manually set space to not make that mistake again.
I use matrix environment because:
- it's easy to program;
- automatic centering when the
\\command is used; - requires a single package to work.
Anyway, when there are certain types of equations keeping them centered it becomes a bit visually annoying. In addition, I use a personalized space for each environment (not a general number):
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}\]
Note that I typed manually the convenient array strecth to match the other spaces as best as possible. I do it for every equation in the document...
Also in a matrix environment there could be more substructures, such as cases,array, etc.
I would like to know if there is any environment that does this work or how it could be automated as best as possible to keep the horizontal spaces vertical (maybe using a personalized command, maybe a package, etc.).
Any kind of contribution is appreciated.
Thanks!



\mathrel,\mathbinetc) and the corresponding vertical lengths – Bordaigorl Aug 16 '18 at 08:57tabstackenginepackage allows things to be set with a uniform vertical gap (see "short stacks" instackenginepackage documentation), and with math tabbing with customized horizontal spacing. What it won't allow is the numbering of individual equations. See http://mirrors.ibiblio.org/CTAN/macros/latex/contrib/stackengine/stackengine.pdf, http://ctan.mirrors.hoobly.com/macros/latex/contrib/tabstackengine/tabstackengine.pdf. – Steven B. Segletes Aug 16 '18 at 09:50