OK, so since I asked the debugging question, I ventured out and tried to debug!
Using just \show didn't work, producing the following in the log file:
> \dots=macro:
->\protect \dots .
l.7 \show\dots
so I googled for the show command and found this page and so I did the following
\def\pshow#1{{\let\protect\show #1}}
\begin{equation*}
a \pshow{\dots} b=0;
\end{equation*}
which resulted in:
> \dots =\long macro:
->\ifmmode \@xp \mdots@ \else \@xp \textellipsis \fi .
\dots ->\protect \dots
Looking deeper to examine \mdots@ is possible (using \makeatletter and \makeatother) but is quite horrific:
> \mdots@=macro:
->\FN@ \mdots@@ .
l.11 \show\mdots@
where
> \FN@=macro:
->\futurelet \@let@token .
and
> \mdots@@=macro:
->\gdef \thedots@ {\dotso@ }\ifx \@let@token \boldsymbol \gdef \thedots@ \boldsymbol {\boldsymboldots@ }\else \ifx ,\@let@token \gdef \thedots@ {\dotsc }\else \ifx \not \@let@token \gdef \thedots@ {\dotsb@ }\else \keybin@ \ifgtest@ \gdef \thedots@ {\dotsb@ }\else \xdef \meaning@ {\meaning \@let@token ..........}\xdef \meaning@@ {\meaning@ }\@xp \math@ \meaning@ \math@ \ifgtest@ \@xp \mathch@ \meaning@ \mathch@ \ifgtest@ \@xp \getmathch@ \meaning@ \getmathch@ \fi \else \@xp \macro@ \meaning@@ \macro@ \ifgtest@ \@xp \not@ \meaning@ \not@ \ifgtest@ \gdef \thedots@ {\dotsb@ }\else \@xp \DOTS@ \meaning@ \DOTS@ \ifgtest@ \ifcase number \DOTSCASE@ \gdef \thedots@ {\dotsb@ }\or \gdef \thedots@ {\dotsi }\else \fi \else \@xp \math@ \meaning@ \math@ \ifgtest@ \@xp \mathbin@ \meaning@ \mathbin@ \ifgtest@ \gdef \thedots@ {\dotsb@ }\else \@xp \mathrel@ \meaning@ \mathrel@ \ifgtest@ \gdef \thedots@ {\dotsb@ }\fi \fi \fi \fi \fi \fi \fi \fi \fi \fi \fi \thedots@ .
At this point, I give up....anyone care to continue this dissection?
\newcommand{\myto}{\DOTSB\to}then\mytowill produce the correct alignment! Thanks, tomorrow I'll try and check what the other options do. – Juan A. Navarro Jul 30 '10 at 22:31