diff options
Diffstat (limited to 'tex/context/base/core-con.tex')
-rw-r--r-- | tex/context/base/core-con.tex | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/tex/context/base/core-con.tex b/tex/context/base/core-con.tex index ecb7d9ee8..97ff27801 100644 --- a/tex/context/base/core-con.tex +++ b/tex/context/base/core-con.tex @@ -136,6 +136,8 @@ %D \showsetup{\y!characters} %D \showsetup{\y!Characters} +\beginTEX + \def\doconvertcharacters#1#2% {\ifnum#2>26 \bgroup @@ -156,6 +158,24 @@ #1{#2}% pure expansion, used in references \fi} +\endTEX + +%D A fully expandable alternative: + +\beginETEX \numexpr + +\def\doconvertcharacters#1#2% + {\ifcase#2\else + \ifnum#2>26 + \expandafter\doconvertcharacters\expandafter#1\expandafter{\the\numexpr(#2+12)/26-1\relax}% + \expandafter#1\expandafter{\the\numexpr#2-((#2+12)/26-)*26\relax}% + \else + \expandafter#1\expandafter{\number#2}% + \fi + \fi} + +\endETEX + \def\characters{\doconvertcharacters\character} \def\Characters{\doconvertcharacters\Character} |