Hi all,

I'm cleaning up my ucharclasses package, and wanted to move from ifthen/forloop to plain TeX. The Original code was:

\newcounter{iclass}
% general transition rule
\newcomman...@transition}[3]{\xetexinterchartoks #1 #2=#3}
% Use: \setUTransitions{when entering this block}{when leaving this block}
\newcommand{\setTransitionsFor}[3]{
\forloop{iclass}{\t...@classstart}{\value{iclass} < \...@nameuse{#1class}}{
        \...@transition{\the\value{iclass}}{\@nameuse{#1Class}}{{#2}}
        \...@transition{\@nameuse{#1Class}}{\the\value{iclass}}{{#3}}}
    \addtocounter{iclass}{2}
    \forloop{iclass}{\value{iclass}}{\value{iclass} < \t...@classend}{
        \...@transition{\the\value{iclass}}{\@nameuse{#1Class}}{{#2}}
        \...@transition{\@nameuse{#1Class}}{\the\value{iclass}}{{#3}}}
    % and a binding for the transitions to and from boundary characters
    \...@transition{255}{\@nameuse{#1Class}}{{#2}}
    \...@transition{\@nameuse{#1Class}}{255}{{#3}}}

This works quite well, but relies on the forloop package. I replaced the \forloop commands with \loop<init>\if<cond><success>\repeat:

\newcommand{\setTransitionsFor}[3]{
    \loop\setcounter{iclass}{\t...@classstart}
    \if\value{iclass}<\...@nameuse{#1class}
        \...@transition{\the\value{iclass}}{\@nameuse{#1Class}}{{#2}}
        \...@transition{\@nameuse{#1Class}}{\the\value{iclass}}{{#3}}
        \addtocounter{iclass}{1}
    \repeat
    \addtocounter{iclass}{2}
    \loop\setcounter{iclass}{\value{iclass}}
    \if\value{iclass}<\t...@classend
        \...@transition{\the\value{iclass}}{\@nameuse{#1Class}}{{#2}}
        \...@transition{\@nameuse{#1Class}}{\the\value{iclass}}{{#3}}
        \addtocounter{iclass}{1}
    \repeat
    % and a binding for the transitions to and from boundary characters
    \...@transition{255}{\@nameuse{#1Class}}{{#2}}
    \...@transition{\@nameuse{#1Class}}{255}{{#3}}}

However, running this through xelatex tells me:

! Missing number, treated as zero.
<to be read again>
                   \#1
l.263 ...\value{iclass}...@nameuse{#1}class}{{#2}}

?

What obvious protecting/immediate expansion/delayed expansion am I forgetting?

- Mike "Pomax" Kamermans
nihongoresources.com


--------------------------------------------------
Subscriptions, Archive, and List information, etc.:
 http://tug.org/mailman/listinfo/xetex

Reply via email to