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