I recently was convinced of the benefit of using align over eqnarray, but I am really not writing
\begin{align}
...
\end{align}
every time, so I just did what I always do:
\def\bea{\begin{align*}}
\def\eea{\end{align*}}
However, align do not seem to work with my defined commands. I even tried other ways of defining, with \let and \newcommand, but none seem to work. I always get the same error. To give an example, if I type:
\bea
E = mc^2
\eea
which is very simple, I still get:
Runaway argument? E &= mc^2 \eea
! Paragraph ended before \align* was complete.\par
However if I write the full commands, it does work. How can it be so and how do I solve it? I know LaTeX only expands \eea into \end{align*}, so there should be no way one can result in error and the error cannot.


alignand easy access to change it toalign*(which yours does not) or any other environment. – daleif May 05 '21 at 14:49\defto create new commands. That is dangerous as you won't get any warning if you overwrite an existing command. – Ulrike Fischer May 05 '21 at 15:04\defto define them. But beside this: I too think that it is a bad habit to invent such shorthands. I get sometimes the request to debug some problem in such a document and it is a pain to have to translate all sort of commands. Do it only if you are the only one handling the document. And if you ask a question here, translate your own commands first. – Ulrike Fischer May 05 '21 at 16:03\newcommand. – lucas belasque May 05 '21 at 16:11\begin{align} \end{align}with three or four keystrokes so fewer that\bea \eaaalso the editor (and forums such as this) will knowalignis math and give correct syntax highlighting but they will not know that\beastarts math mode. It is really much better to use the standard syntax here (and for environments in general) – David Carlisle May 05 '21 at 18:10