<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
John Hobby escribi&oacute;:<br>
<br>
<pre wrap=""><pre wrap=""><blockquote type="cite"><pre wrap=""><pre
 wrap="">In the example that worked, the macro is already expanded when
TeX sees the "&amp;" that ends the template; in the example that
failed, it was trying to parse the arguments to a macro.</pre></pre></blockquote>
<pre wrap=""><pre wrap=""><pre wrap="">No in example 1. I wrote that example precisely to show that there is no problem in &amp; being the argument delimiter.</pre></pre></pre></pre></pre>
<br>
<blockquote
 cite="mid200703231543.l2NFhrPO361497@nslocum.cs.bell-labs.com"
 type="cite">
  <pre wrap=""><!---->The "weird feature" is that the end of an alignment template is
considered "outer".  On page 206 of The TEXbook (between exercises
20.7 and 20.8), there is a double-dangerous paragraph that explains
"outer".  It fails to mention that the end of an alignment template
is treated like end of file for this purpose.  (Perhaps that is
somewhere in the chapter on alignments, but I could not find it.
TeX: The Program makes it clear that the "outerness" is intensional.)
  </pre>
</blockquote>
I see. However, the problem is no the end of the template being \outer,
which I completely agree and had already guessed from some prior
examples using conditionals. The problem is taking the &amp; as the end
of the template. In <i>both</i> examples 1 (that works) and 2 (that
does not), TeX is parsing the argument, so in both of them it should
take the &amp; as the argument delimiter. You may ignore examples 3 and
4. If you look carefully at examples 1 and 2, you will see that the
only diference is that the control sequence \saveentry comes from the
template preamble in the first case, while in the second is in the
template entry itself.<br>
<br>
<br>
When I wrote <br>
<pre>But 
%instead of taking the &amp; as the end of the argument it expands it (why?), keeps reading ahead
%and gets to the end of the template, which cannot appear in a macro argument, hence raising
%the error.</pre>
I wasn't complaining about the error at the end of the alignment, but
at TeX taking the &amp; as the end of the template when it is parsing
an argument and is suposed to take the &amp; as the end of the argument.<br>
<br>
<pre wrap=""><pre wrap="">
</pre></pre>
</body>
</html>