Vit Zyka wrote:
Martin Kolařík wrote:
Hi Hans,
I've analyzed the situation using different combinations of regimes and encodings, including switching off handling (\donothandleactivecharacter) and it seems to me, that every text with chars > 127, which is fully expanded (as in 8bit.tex), must cause difficulties, because TOC entry read back from TUO is scanned independently and thus spaces are gobbled.
Hi Martin,
we have discussed this problem a year ago. In that time I solve it just writing '{}' in each title where was needed, like
\chapter{Dobré{} ráno}
Now I have cooked an automatic solution. It is not optimal (effective) but working. The only needs is to redefine
\def\numcharacter#1{\char#1{}} \let\dochar\numcharacter
and to load appropriate encoding file once more. Since it is banned a new macro \reuseencoding was introduce:
For Hans: It would be nice if this feature was enabled in a standard distro. Perhaps you will find some more optimal solution...
------------------------------------------------------- \unprotected \def\doreuseencoding#1% {\letvalue{\c!file\f!encodingprefix#1}\empty \makeshortfilename[\f!encodingprefix#1]% \startreadingfile \readsysfile\shortfilename {\showmessage\m!encodings2{#1}} {\showmessage\m!encodings3{#1}}% \stopreadingfile} \def\reuseencoding[#1]% {\processcommalist[#1]\doreuseencoding}
\def\numcharacter#1{\char#1{}} \let\dochar\numcharacter
\reuseencoding[ec]
\enableregime[latin2]
\starttext \writetolist[chapter]{1}{Dobré ráno} \expanded{\writetolist[chapter]{2}{Dobré odpoledne}}
\placecontent \stoptext
the {} may break liguature building (and maybe kerning) ... taco knows ... I got a brainwave ... \enableregime[latin2] \starttext \def\numcharacter#1{\rawcharacter{#1}}% \let\dochar\numcharacter \writetolist[chapter]{1}{Dobré ráno} \expanded{\writetolist[chapter]{2}{Dobré odpoledne}} \placelist[chapter][criterium=text] test \typefile{test.tuo} \stoptext this can be sped up (a bit) with % \dostepwiserecurse{0}{255}{1} % {\setevalue{rchr:\recurselevel}{\rawcharacter\recurselevel}} % \def\rawcharacter#1{\getvalue{rchr:#1}} this means that all chars are round tripped to themselves in output files! raw characters are not active and they are therefore equivalent to \char it's enough then to put \def\numcharacter#1{\rawcharacter{#1}}% \let\dochar\numcharacter into cont-new.tex (i will discuss this in more detail with taco later) Hans ----------------------------------------------------------------- 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 -----------------------------------------------------------------