This one is better: % add to cont-new.tex \unprotect \definesystemvariable{sx} \def\definestylecollection {\dosingleargument\dodefinestylecollection} \def\dodefinestylecollection[#1]% {\iffirstargument \unexpanded\setvalue{#1}{\styleinstance[#1]}% \def\docommand##1{\letbeundefined{\??sx##1:\commalistelement}}% \processcommacommand[\stylelist,\s!default]\docommand \fi} \def\definestyleinstance {\dotripleargument\dodefinestyleinstance} \def\dodefinestyleinstance[#1][#2][#3]% {\ifsecondargument \doifundefined{#1}{\definestylecollection[#1]}% \setvalue{\??sx#1:#2}{#3}% \fi} \unexpanded\def\styleinstance[#1]% {\executeifdefined{\??sx#1:\fontalternative}{\getvalue{\??sx#1:\s!default}}} \protect % so far \definestylecollection[mine] \definestyleinstance[mine][default][sorry] \definestyleinstance[mine][bf][\sl] \definestyleinstance[mine][sl][\tt] {\bf test \mine test \sl test \mine test \bs oeps \mine oeps} (of course you now have to write a MyWay to explain it) Hans ------------------------------------------------------------------------- Hans Hagen | PRAGMA ADE/POD/CTS Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: +31 (0)38 477 53 69 | fax: +31 (0)38 477 53 74 | www.pragma-ade.com ------------------------------------------------------------------------- information: http://www.pragma-ade.com/roadmap.pdf documentation: http://www.pragma-ade.com/showcase.pdf -------------------------------------------------------------------------