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?
\newcommanddo 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 – Apr 18 '13 at 14:42\bgroupand\egroup. A group alone (\begingroupand\endgbroup) will not work. Subscripts and superscripts do not expect macro arguments but math atoms. – Heiko Oberdiek Apr 18 '13 at 14:57