I haven't looked at the patch, just at this description here. A questionarises: How would that schem cope with 'unknown' \a 12unless you know whether \a is defined as \def\a#1#2{#1+#2} or \def\a {x}?
Well, my assumption is that every argument is a brace, like in \newcommand{\foo}[n]{...}. Not thought about the \def case. Will think about this, hope it can be handled in the same way.
I.e. how do ou determine wheter the '1' is an argument to themacro or some completely unrelated stuff that happens to come after somezero-arg macro?
The key idea is that this information is only needed during draw/ metric. Only at that point arguments are shifted around between the macro and its vicinity. It doesn't matter where an argument is during load, save and export because in any case the same output should be created. The reason to shift arguments at all is to make a macro with arguments behave like one inset (e.g. it can be selected as one atom).
Schimmi
PGP.sig
Description: Signierter Teil der Nachricht