[NTG-context] Problem with encoding, XML and writetolist...
Hans Hagen
pragma at wxs.nl
Wed Apr 5 13:03:24 CEST 2006
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
-----------------------------------------------------------------
More information about the ntg-context
mailing list