Hi Piotr you can copy this code in cont-new; when i can be sure that polish/czech users have switched to latin modern, we may be able to simplify some of teh nasty parts of the xml handler (having to deal with { } $ etc not being in their normal slot leads to much low level hacks and this is related) % In 2005 we will abandon support for font encodings that don't have % the ascii characters { } $ etc in their normal slot, i.e. latin modern % instead of computer modern. Then we can also clean up some of the ugly % xml internals that are a result from the need to deal with funny % encodings. % a solution: % % \defineXMLargument[ctx:c]{\getXMLcharacter} % \defineXMLargument[ctx:e]{\getXMLentity } % \defineXMLargument[ctx:u]{\unicodechar } % % \bgroup \catcode`\<=\active \catcode`\&=\active % % \gdef\dontexpandutf % {\def\getXMLcharacter##1{ctx:c##1}% % \def\getXMLentity ##1{ctx:e##1}% % \def\unicodechar ##1{ctx:u##1}} % % \egroup % % more generic: \def\defineactivecharacter #1 #2% {\scratchcounter\the\uccode\activehackcode \uccode\activehackcode\expandafter\doifnumberelse \expandafter{\string#1}\empty`#1% \catcode\uccode\activehackcode\@@active \uppercase{\def\next{~}}% \uccode\activehackcode\scratchcounter % unexpanded goes wrong in pdfdoc \@EA\@EA\@EA\def\@EA\next\@EA{\@EA\dohandleactivecharacter\next{#2}}} \let\dohandleactivecharacter\secondoftwoarguments \def\donthandleactivecharacter#1#2{\noexpand#1} \def\XMLexpanded#1% {\bgroup \honorunexpanded % \dontexpandencoding % \dontexpandutf \let\dohandleactivecharacter\donthandleactivecharacter \xdef\@@globalexpanded{#1}% \egroup \@@globalexpanded} \def\setXMLexpandedmark#1#2% {\XMLexpanded{\scratchtoks{\enableXML#2}}% \expanded{\normalsetnormalmark{#1}{\the\scratchtoks}}} ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | fax: 038 477 53 74 | www.pragma-ade.com | www.pragma-pod.nl -----------------------------------------------------------------