Como fazer uma instalação normal de látex compilar a seguinte sintaxe de array não padrão?

Como fazer uma instalação normal de látex compilar a seguinte sintaxe de array não padrão?

Certa vez, parece que trabalhei em um sistema onde, por algum motivo, código látex contendo

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

parece ter funcionado. (Observe que, em particular, as opções de "alinhamento" do tipo {rccrr}, padrão na construção usual \begin{align} \end{align}, estão faltando aqui. Agora preciso compilar isso no que é mais ou menos instalação padrão do latex, e ele não compila como está. Claro, uma opção seria editar tudo no padrão \begin{align} \end{align}.

Pergunta: você pode recomendar uma alternativa, para poder compilar esse código com o mínimo de sobrecarga de edição possível? Algum pacote ou opção no preâmbulo?

Responder1

Se você não quiser alterar a sintaxe, basta [re]define \array, mas eu não faria isso, pois arrayé um início amplamente utilizado para o arrayambiente do LaTeX. Eu o renomearia como \myarray, que pode ser definido como um TABstack alinhado.

\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}

insira a descrição da imagem aqui

Responder2

Como @egreg já apontou em um comentário, você pode estar pensando no \matrixcomando. Com certeza, o código a seguir, que configura uma macro chamada \myarray, compila corretamente.

insira a descrição da imagem aqui

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

informação relacionada