Rather than doing this dirtily and on the fly (as implied by the quoted code, I'd like to use synonyms in a more cleaner fashion: separate calling and definition. I have come up with the following code, but have two problems: 1) '<abb key="key" opt="full"/>' just gives me '[key]' after defining '<abbreviation key="key"><short>shortkey</short><full>slightly longer key</full></abbreviation>'. 2) The '\XMLop{key}' should really be the result of that preceeded by a '\' to make the short version callable as a command. How to do that?
Thanks for any help, Joh % setup 'synonymes' list called 'abbreviations' \definesynonyms[abbreviation][abbreviations][\infull] % give all out in the list \setupsynonyms[abbreviation][criterium=all] % <abbreviations/> calls the completelist as a 'chapter' \defineXMLargument [abbreviations] {\completelistofabbreviations} % abbreviations are defined as follows \defineXMLenvironment [abbreviation] [key=] { \defineXMLsave[short] \defineXMLsave[full] } {\expanded{\abbreviation[\XMLop{key}]{\XMLflush{short}}{\XMLflush{full}}}} % abbreviations are recalled like this (short version is the default) \defineXMLargument [abb] [key=,opt=short] { \doifelse{\XMLop{opt}}{full} {\expanded{\infull{\XMLop{key}}}} {\XMLop{key}} } Johannes Graumann wrote: > \definesynonyms[abbreviation][abbreviations][\infull] > > \defineXMLargument > [abbrev] > [short=,full=] > {\expanded{\abbreviation{\XMLop{short}}{\XMLop{full}}}} > > \defineXMLargument [abbreviations] {\completelistofabbreviations} > > \starttext > \startXMLdata > <abbreviations/> > Blabla short<abbrev short="short" full="slightly longer short"/>. > \stopXMLdata > \stoptext _______________________________________________ ntg-context mailing list ntg-context@ntg.nl http://www.ntg.nl/mailman/listinfo/ntg-context