At 17.04 +0100 2001-02-19, David Carlisle wrote: >so where you have > > Current name: \describecsfamily{TP@<\meta{type}>} > New name: \describecsfamily{TP@T{\meta{type}}} > >ie a name of the form > >\csname TP@T{xxx}\endcsname > >you could have names > >\csname TP@T}xxx}\endcsname I think it's best not to deliberately mismatch the braces as a user seeing the above control sequence in an error message may easily mistake it for \TP@T }xxx} (i.e., two end-of-groups) and thus get the wrong idea about where a group he started actually ends. As for using names of the form TP@Iccc{ttt}iii (four braces less than I suggested), it doesn't completely prevent namespace overlap. The D instance in collection A{B} of type C is still stored in the same place as the {C}D instance in collection A of type B (although this overlap is much less likely). I think another advantage with the names I suggested is that they are more easily interpreted by a user who sees them in a TeX error message. The logical structure of \TP@I{frontmatter}{heading}{section} is easier to understand than that of \TP@Ifrontmatter{heading}section Compare with the case for the NFSS fontdef tokens. I understood the meaning of e.g. \T1/pad/m/n/12 (when TeX was showling an hlist) the first time I looked at it, but it took several months before I realised how tricky it really was. Lars Hellström