On 8/27/15, aparsloe <[log in to unmask]> wrote: > I hadn't thought of the \use_none:... functions. (There is much of expl3 > which is *not* at my fingertips.) Thank you, and I see that they can > absorb up to 9 tokens. up to 9 brace groups, yes. > Dare I continue the theme? For instance I have used rescanning of ( and > ) to "group begin" and "group end" to obtain the parenthesised arguments > of functions "at one gulp", e.g. > > \max(<variable number of terms>) > > or the parenthesised part (the inner sum) of > > \sum_{k=0}^{\infty}\frac{(-1)^{k}}{2^{k+1}}\left(\sum_{n=0}^{k}(-1)^{n}\binom{k}{n}\frac{1}{(k-n)!}\right) > > (= 1/e). That's much harder. Catcode changes are probably warranted in this case, since teaching TeX to nest parentheses in this way is tough. Maybe Joseph will have better ideas? Abusing xparse, perhaps? > Finally, in arguing against changing catcodes you are assuming a greater > knowledge of TeX than I possess. There must be a reason for this > deprecation. We're not deprecating catcode changes, just saying that many cases are better solved in a different way. Your case above might be one where using catcode changes makes sense. > The great joy of discovering expl3 was that it made TeX > programming available to someone familiar with basic (or even, dare I > say it, line-numbered BASIC) programming concepts but with only a meagre > knowledge of TeX. (So, for instance, I wonder why you use > \cs_new_protected:Npn above rather than \cs_new:Npn or > \cs_new_nopar:Npn. Interfaces3.pdf is thin on such matters.) We should describe better the difference between expandable and non-expandable commands. Bruno