Как заставить обычную установку Latex скомпилировать следующий нестандартный синтаксис массива?

Как заставить обычную установку Latex скомпилировать следующий нестандартный синтаксис массива?

Однажды я, кажется, работал над системой, где по какой-то причине латексный код, содержащий

     $\array{a & b \\ c & d }$

Кажется, это сработало. (Обратите внимание, что, в частности, опции «выравнивания» типа {rrccr}, стандартные в обычной конструкции \begin{align} \end{align}, здесь отсутствуют. Теперь мне нужно скомпилировать это на более или менее стандартной установке Latex, а она не компилируется как есть. Конечно, одним из вариантов было бы отредактировать все в стандартной конструкции \begin{align} \end{align}.

Вопрос: можете ли вы порекомендовать альтернативу, чтобы можно было скомпилировать такой код с минимальными затратами на редактирование? Какой-то пакет или опция в преамбуле?

решение1

Если вы вообще не хотите менять синтаксис, просто [пере]определите \array, но я бы этого не делал, так как arrayэто широко используемое начало среды arrayLaTeX. Я бы переименовал его в \myarray, что можно определить как выровненный TABstack.

\documentclass[12pt]{article}
\usepackage{tabstackengine}
\newcommand\myarray{\alignCenterstack}
\TABstackMath
\setstackgap{L}{1.2\normalbaselineskip}% inter-row baselineskip
\setstackaligngap{1em}% horizontal gap between align groups
\begin{document}
$\myarray{a =& b \\ c =& d }$\quad
$\myarray{y =& mx + b \\ E =& mc^2 }$ or this
$\myarray{a =& b & y =& mx + b\\ c =& d& E =& mc^2 }$
\end{document}

введите описание изображения здесь

решение2

Как уже отметил @egreg в комментарии, вы, возможно, думаете о \matrixкоманде. Конечно, следующий код, который устанавливает макрос с именем \myarray, компилируется правильно.

введите описание изображения здесь

\documentclass{article}
\usepackage{amsmath} % for 'matrix' environment
\newcommand\myarray[1]{\begin{matrix}#1\end{matrix}}
\begin{document}
$\myarray{a & b \\ c & d }$
\end{document}

Связанный контент