Disclaimer: I know of Defining a newcommand with sub- or superscript and avoiding "double subscript" error but this only gives a work-around, but no explanation to my question.
Here's a summary of the problem. This code:
\documentclass{article}
\newcommand*{\one}{a_1} %no explicit brackets
\newcommand*{\two}{{a_1}} %explicit brackets
\begin{document}
$b_\one$ % error: Double subscript
$b_\two$ % no error
\end{document}
Gives me the error Double subscript
on b_\one
. Why? When do I need the "scope" brackets and when do I not need them? I always thought a command defined by \newcommand
is "automatically" a single "object" on its own that does not need to be put inside brackets.
The question is not why one needs brackets at all (this is clear), but the question is why one needs them in the defintion when using \newcommand
?
By the way, what is the correct "vocabulary" for the "scope" and "object" in LaTeX?
\newcommand
do not form a group. In your example, you need to explicitly group. – Gonzalo Medina Apr 18 '13 at 14:40$b_{\one}$
will work as your 2nd definition does – user2478 Apr 18 '13 at 14:42\bgroup
and\egroup
. A group alone (\begingroup
and\endgbroup
) will not work. Subscripts and superscripts do not expect macro arguments but math atoms. – Heiko Oberdiek Apr 18 '13 at 14:57