Re: [NTG-context] Converting counters?
On Tue, Apr 1, 2008 at 11:04 AM, Wolfgang Schuster [EMAIL PROTECTED] wrote: On Tue, Apr 1, 2008 at 10:49 AM, Wolfgang Schuster [EMAIL PROTECTED] wrote: On Tue, Apr 1, 2008 at 9:56 AM, Zhichu Chen [EMAIL PROTECTED] wrote: Yes, only I don't need that complex. I mean \chinesenumber{123} will give one hundred and twenty-three but all I want is one two three. Besides, I don't like to copy such long codes since I really don't want to load font-chi.tex which gives weird spacing problems while typesetting Chinese along with English. Anyway, I'd love to learn something rather than to use something. Thanks. Another solution using \afterassignment. The number is now removed from the input but you have to use a if test, number tests did not work. \def\zhnumber#1% {\expandafter\dozhnumber#1\endzhnumber} \def\endzhnumber{\endzhnumber} \def\dozhnumber {\afterassignment\dodozhnumber\let\next= } \def\dodozhnumber {\ifx\next\endzhnumber\let\next\relax \else \if\next 0a\else \if\next 1b\else \if\next 2c\else \if\next 3d\else \if\next 4e\else \if\next 5f\else \if\next 6g\else \if\next 7h\else \if\next 8i\else \if\next 9j\relax \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi \let\next\dozhnumber \fi\next} \starttext \zhnumber{01234} \zhnumber{\number\pageno} \stoptext Wolfgang ___ If your question is of interest to others as well, please add an entry to the Wiki! maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context webpage : http://www.pragma-ade.nl / http://tex.aanhet.net archive : https://foundry.supelec.fr/projects/contextrev/ wiki : http://contextgarden.net ___
[NTG-context] Converting counters?
Hi, I'm trying to convert the counter to Chinese character one on one, like 0-a, 1-b, etc., so 10 will be ba (I use a, b, c, . . . to denote the Chinese glyphs which makes more sense for you). I used some codes like: == \def\ChineseZero {o} \def\ChineseOne {a} \def\ChineseTwo {b} \def\ChineseThree{c} \def\ChineseFour {d} \def\ChineseFive {e} \def\ChineseSix {f} \def\ChineseSeven{g} \def\ChineseEight{h} \def\ChineseNine {i} \unexpanded\def\zhnumber {\bgroup \catcode`\0=\active \uccode`\~=`\0 \uppercase{\let~\ChineseZero}% \catcode`\1=\active \uccode`\~=`\1 \uppercase{\let~\ChineseOne}% \catcode`\2=\active \uccode`\~=`\2 \uppercase{\let~\ChineseTwo}% \catcode`\3=\active \uccode`\~=`\3 \uppercase{\let~\ChineseThree}% \catcode`\4=\active \uccode`\~=`\4 \uppercase{\let~\ChineseFour}% \catcode`\5=\active \uccode`\~=`\5 \uppercase{\let~\ChineseFive}% \catcode`\6=\active \uccode`\~=`\6 \uppercase{\let~\ChineseSix}% \catcode`\7=\active \uccode`\~=`\7 \uppercase{\let~\ChineseSeven}% \catcode`\8=\active \uccode`\~=`\8 \uppercase{\let~\ChineseEight}% \catcode`\9=\active \uccode`\~=`\9 \uppercase{\let~\ChineseNine}% \loggingall \dozhnumber } \def\stripunwantedspaces{} \def\dozhnumber#1% {\expandafter\scantokens\expandafter {\detokenize{#1\stripunwantedspaces}}\egroup} == It works fine with \zhnumber{15}, it gives ae which is exactly what I want. But it won't work in the following situation: ++ \newcount\tcpageno \advance\tcpageno15 \zhnumber{\number\tcpageno} ++ I know it's not weird, I just don't know how to expand the counter to number. Thank you in advance. -- Best Regards Chen Zhi-chu Chen | Shanghai Synchrotron Radiation Facility No. 2019 | Jialuo Rd. | Jiading | Shanghai | P.R. China tel: 086 21 5955 3405 | zhichu.chen.googlepages.com | www.sinap.ac.cn ___ If your question is of interest to others as well, please add an entry to the Wiki! maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context webpage : http://www.pragma-ade.nl / http://tex.aanhet.net archive : https://foundry.supelec.fr/projects/contextrev/ wiki : http://contextgarden.net ___
Re: [NTG-context] Converting counters?
Hi Chen, You could use \chinesenumber from font-chi.tex Wolfgang On Tue, Apr 1, 2008 at 9:18 AM, Zhichu Chen [EMAIL PROTECTED] wrote: Hi, I'm trying to convert the counter to Chinese character one on one, like 0-a, 1-b, etc., so 10 will be ba (I use a, b, c, . . . to denote the Chinese glyphs which makes more sense for you). I used some codes like: == \def\ChineseZero {o} \def\ChineseOne {a} \def\ChineseTwo {b} \def\ChineseThree{c} \def\ChineseFour {d} \def\ChineseFive {e} \def\ChineseSix {f} \def\ChineseSeven{g} \def\ChineseEight{h} \def\ChineseNine {i} \unexpanded\def\zhnumber {\bgroup \catcode`\0=\active \uccode`\~=`\0 \uppercase{\let~\ChineseZero}% \catcode`\1=\active \uccode`\~=`\1 \uppercase{\let~\ChineseOne}% \catcode`\2=\active \uccode`\~=`\2 \uppercase{\let~\ChineseTwo}% \catcode`\3=\active \uccode`\~=`\3 \uppercase{\let~\ChineseThree}% \catcode`\4=\active \uccode`\~=`\4 \uppercase{\let~\ChineseFour}% \catcode`\5=\active \uccode`\~=`\5 \uppercase{\let~\ChineseFive}% \catcode`\6=\active \uccode`\~=`\6 \uppercase{\let~\ChineseSix}% \catcode`\7=\active \uccode`\~=`\7 \uppercase{\let~\ChineseSeven}% \catcode`\8=\active \uccode`\~=`\8 \uppercase{\let~\ChineseEight}% \catcode`\9=\active \uccode`\~=`\9 \uppercase{\let~\ChineseNine}% \loggingall \dozhnumber } \def\stripunwantedspaces{} \def\dozhnumber#1% {\expandafter\scantokens\expandafter {\detokenize{#1\stripunwantedspaces}}\egroup} == It works fine with \zhnumber{15}, it gives ae which is exactly what I want. But it won't work in the following situation: ++ \newcount\tcpageno \advance\tcpageno15 \zhnumber{\number\tcpageno} ++ I know it's not weird, I just don't know how to expand the counter to number. Thank you in advance. -- Best Regards Chen ___ If your question is of interest to others as well, please add an entry to the Wiki! maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context webpage : http://www.pragma-ade.nl / http://tex.aanhet.net archive : https://foundry.supelec.fr/projects/contextrev/ wiki : http://contextgarden.net ___
Re: [NTG-context] Converting counters?
Yes, only I don't need that complex. I mean \chinesenumber{123} will give one hundred and twenty-three but all I want is one two three. Besides, I don't like to copy such long codes since I really don't want to load font-chi.tex which gives weird spacing problems while typesetting Chinese along with English. Anyway, I'd love to learn something rather than to use something. Thanks. On Tue, Apr 1, 2008 at 3:41 PM, Wolfgang Schuster [EMAIL PROTECTED] wrote: Hi Chen, You could use \chinesenumber from font-chi.tex Wolfgang On Tue, Apr 1, 2008 at 9:18 AM, Zhichu Chen [EMAIL PROTECTED] wrote: Hi, I'm trying to convert the counter to Chinese character one on one, like 0-a, 1-b, etc., so 10 will be ba (I use a, b, c, . . . to denote the Chinese glyphs which makes more sense for you). I used some codes like: == \def\ChineseZero {o} \def\ChineseOne {a} \def\ChineseTwo {b} \def\ChineseThree{c} \def\ChineseFour {d} \def\ChineseFive {e} \def\ChineseSix {f} \def\ChineseSeven{g} \def\ChineseEight{h} \def\ChineseNine {i} \unexpanded\def\zhnumber {\bgroup \catcode`\0=\active \uccode`\~=`\0 \uppercase{\let~\ChineseZero}% \catcode`\1=\active \uccode`\~=`\1 \uppercase{\let~\ChineseOne}% \catcode`\2=\active \uccode`\~=`\2 \uppercase{\let~\ChineseTwo}% \catcode`\3=\active \uccode`\~=`\3 \uppercase{\let~\ChineseThree}% \catcode`\4=\active \uccode`\~=`\4 \uppercase{\let~\ChineseFour}% \catcode`\5=\active \uccode`\~=`\5 \uppercase{\let~\ChineseFive}% \catcode`\6=\active \uccode`\~=`\6 \uppercase{\let~\ChineseSix}% \catcode`\7=\active \uccode`\~=`\7 \uppercase{\let~\ChineseSeven}% \catcode`\8=\active \uccode`\~=`\8 \uppercase{\let~\ChineseEight}% \catcode`\9=\active \uccode`\~=`\9 \uppercase{\let~\ChineseNine}% \loggingall \dozhnumber } \def\stripunwantedspaces{} \def\dozhnumber#1% {\expandafter\scantokens\expandafter {\detokenize{#1\stripunwantedspaces}}\egroup} == It works fine with \zhnumber{15}, it gives ae which is exactly what I want. But it won't work in the following situation: ++ \newcount\tcpageno \advance\tcpageno15 \zhnumber{\number\tcpageno} ++ I know it's not weird, I just don't know how to expand the counter to number. Thank you in advance. -- Best Regards Chen ___ If your question is of interest to others as well, please add an entry to the Wiki! maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context webpage : http://www.pragma-ade.nl / http://tex.aanhet.net archive : https://foundry.supelec.fr/projects/contextrev/ wiki : http://contextgarden.net ___ -- Best Regards Chen Zhi-chu Chen | Shanghai Synchrotron Radiation Facility No. 2019 | Jialuo Rd. | Jiading | Shanghai | P.R. China tel: 086 21 5955 3405 | zhichu.chen.googlepages.com | www.sinap.ac.cn ___ If your question is of interest to others as well, please add an entry to the Wiki! maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context webpage : http://www.pragma-ade.nl / http://tex.aanhet.net archive : https://foundry.supelec.fr/projects/contextrev/ wiki : http://contextgarden.net ___
Re: [NTG-context] Converting counters?
On Tue, Apr 1, 2008 at 9:56 AM, Zhichu Chen [EMAIL PROTECTED] wrote: Yes, only I don't need that complex. I mean \chinesenumber{123} will give one hundred and twenty-three but all I want is one two three. Besides, I don't like to copy such long codes since I really don't want to load font-chi.tex which gives weird spacing problems while typesetting Chinese along with English. Anyway, I'd love to learn something rather than to use something. Thanks. \def\dododozhnumber#1% {\ifcase#1 a\or b\or c\or d\or e\or f\or g\or i\or h\or i\fi \dozhnumber} \def\zhnumber#1% {\dozhnumber#1\endzhnumber} \def\endzhnumber{\endzhnumber} \def\dozhnumber {\futurelet\next\dodozhnumber} \def\dodozhnumber {\ifx\next\endzhnumber \expandafter\gobbleoneargument \else \expandafter\dododozhnumber \fi} \starttext \zhnumber{123} \stoptext Wolfgang ___ If your question is of interest to others as well, please add an entry to the Wiki! maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context webpage : http://www.pragma-ade.nl / http://tex.aanhet.net archive : https://foundry.supelec.fr/projects/contextrev/ wiki : http://contextgarden.net ___
Re: [NTG-context] Converting counters?
On Tue, Apr 1, 2008 at 10:49 AM, Wolfgang Schuster [EMAIL PROTECTED] wrote: On Tue, Apr 1, 2008 at 9:56 AM, Zhichu Chen [EMAIL PROTECTED] wrote: Yes, only I don't need that complex. I mean \chinesenumber{123} will give one hundred and twenty-three but all I want is one two three. Besides, I don't like to copy such long codes since I really don't want to load font-chi.tex which gives weird spacing problems while typesetting Chinese along with English. Anyway, I'd love to learn something rather than to use something. Thanks. A slightly modified version. You could now also use counter values. \def\dododozhnumber#1% {\ifcase#1 a\or b\or c\or d\or e\or f\or g\or i\or h\or i\fi} \def\zhnumber#1% {\expandafter\dozhnumber#1\endzhnumber} \def\endzhnumber{\endzhnumber} \def\dozhnumber {\futurelet\next\dodozhnumber} \def\dodozhnumber {\ifx\next\endzhnumber \let\next\gobbleoneargument \else \def\next##1{\dododozhnumber{##1}\dozhnumber}% \fi\next} \starttext \zhnumber{01234} \zhnumber{\number\pageno} \stoptext Wolfgang ___ If your question is of interest to others as well, please add an entry to the Wiki! maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context webpage : http://www.pragma-ade.nl / http://tex.aanhet.net archive : https://foundry.supelec.fr/projects/contextrev/ wiki : http://contextgarden.net ___
Re: [NTG-context] Converting counters?
Thanks Wolfgang, it's perfect. On Tue, Apr 1, 2008 at 5:04 PM, Wolfgang Schuster [EMAIL PROTECTED] wrote: On Tue, Apr 1, 2008 at 10:49 AM, Wolfgang Schuster [EMAIL PROTECTED] wrote: On Tue, Apr 1, 2008 at 9:56 AM, Zhichu Chen [EMAIL PROTECTED] wrote: Yes, only I don't need that complex. I mean \chinesenumber{123} will give one hundred and twenty-three but all I want is one two three. Besides, I don't like to copy such long codes since I really don't want to load font-chi.tex which gives weird spacing problems while typesetting Chinese along with English. Anyway, I'd love to learn something rather than to use something. Thanks. A slightly modified version. You could now also use counter values. \def\dododozhnumber#1% {\ifcase#1 a\or b\or c\or d\or e\or f\or g\or i\or h\or i\fi} \def\zhnumber#1% {\expandafter\dozhnumber#1\endzhnumber} \def\endzhnumber{\endzhnumber} \def\dozhnumber {\futurelet\next\dodozhnumber} \def\dodozhnumber {\ifx\next\endzhnumber \let\next\gobbleoneargument \else \def\next##1{\dododozhnumber{##1}\dozhnumber}% \fi\next} \starttext \zhnumber{01234} \zhnumber{\number\pageno} \stoptext Wolfgang ___ If your question is of interest to others as well, please add an entry to the Wiki! maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context webpage : http://www.pragma-ade.nl / http://tex.aanhet.net archive : https://foundry.supelec.fr/projects/contextrev/ wiki : http://contextgarden.net ___ -- Best Regards Chen Zhi-chu Chen | Shanghai Synchrotron Radiation Facility No. 2019 | Jialuo Rd. | Jiading | Shanghai | P.R. China tel: 086 21 5955 3405 | zhichu.chen.googlepages.com | www.sinap.ac.cn ___ If your question is of interest to others as well, please add an entry to the Wiki! maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context webpage : http://www.pragma-ade.nl / http://tex.aanhet.net archive : https://foundry.supelec.fr/projects/contextrev/ wiki : http://contextgarden.net ___