diff options
Diffstat (limited to 'Master/texmf-dist/tex/context/base/syst-con.tex')
-rw-r--r-- | Master/texmf-dist/tex/context/base/syst-con.tex | 156 |
1 files changed, 20 insertions, 136 deletions
diff --git a/Master/texmf-dist/tex/context/base/syst-con.tex b/Master/texmf-dist/tex/context/base/syst-con.tex index cbef0dedc26..653d689284c 100644 --- a/Master/texmf-dist/tex/context/base/syst-con.tex +++ b/Master/texmf-dist/tex/context/base/syst-con.tex @@ -20,7 +20,7 @@ %D defining these in \type {font-ini}, we now have a dedicated %D module. -\catcode127=12 % \@@letter +\catcode127=12 % other, just to be sure %D \macros %D {lchexnumber,uchexnumber,lchexnumbers,uchexnumbers} @@ -48,108 +48,17 @@ %D [\expandafter\uchexnumber\expandafter{\the\zerocount}] %D \stoptyping -\def\lchexnumber#1% - {\@EA\dolchexnumber\number#1\relax} - -\def\dolchexnumber#1\relax % \def\lchexnumber#1% - {\ifcase#1 0\or 1\or 2\or 3\or 4\or 5\or 6\or 7\or - 8\or 9\or a\or b\or c\or d\or e\or f\else 0\fi} - -\def\uchexnumber#1% - {\@EA\douchexnumber\number#1\relax} - -\def\douchexnumber#1\relax % \def\uchexnumber#1% - {\ifcase#1 0\or 1\or 2\or 3\or 4\or 5\or 6\or 7\or - 8\or 9\or A\or B\or C\or D\or E\or F\else 0\fi} - -\let\hexnumber=\uchexnumber - -\def\lchexnumbers#1% - {\@EA\dolchexnumbers\number#1\relax} - -\def\dolchexnumbers#1\relax % \def\lchexnumbers#1% - {\ifcase#1 - 00\or 01\or 02\or 03\or 04\or 05\or 06\or 07\or 08\or 09\or 0a\or 0b\or 0c\or 0d\or 0e\or 0f\or - 10\or 11\or 12\or 13\or 14\or 15\or 16\or 17\or 18\or 19\or 1a\or 1b\or 1c\or 1d\or 1e\or 1f\or - 20\or 21\or 22\or 23\or 24\or 25\or 26\or 27\or 28\or 29\or 2a\or 2b\or 2c\or 2d\or 2e\or 2f\or - 30\or 31\or 32\or 33\or 34\or 35\or 36\or 37\or 38\or 39\or 3a\or 3b\or 3c\or 3d\or 3e\or 3f\or - 40\or 41\or 42\or 43\or 44\or 45\or 46\or 47\or 48\or 49\or 4a\or 4b\or 4c\or 4d\or 4e\or 4f\or - 50\or 51\or 52\or 53\or 54\or 55\or 56\or 57\or 58\or 59\or 5a\or 5b\or 5c\or 5d\or 5e\or 5f\or - 60\or 61\or 62\or 63\or 64\or 65\or 66\or 67\or 68\or 69\or 6a\or 6b\or 6c\or 6d\or 6e\or 6f\or - 70\or 71\or 72\or 73\or 74\or 75\or 76\or 77\or 78\or 79\or 7a\or 7b\or 7c\or 7d\or 7e\or 7f\or - 80\or 81\or 82\or 83\or 84\or 85\or 86\or 87\or 88\or 89\or 8a\or 8b\or 8c\or 8d\or 8e\or 8f\or - 90\or 91\or 92\or 93\or 94\or 95\or 96\or 97\or 98\or 99\or 9a\or 9b\or 9c\or 9d\or 9e\or 9f\or - a0\or a1\or a2\or a3\or a4\or a5\or a6\or a7\or a8\or a9\or aa\or ab\or ac\or ad\or ae\or af\or - b0\or b1\or b2\or b3\or b4\or b5\or b6\or b7\or b8\or b9\or ba\or bb\or bc\or bd\or be\or bf\or - c0\or c1\or c2\or c3\or c4\or c5\or c6\or c7\or c8\or c9\or ca\or cb\or cc\or cd\or ce\or cf\or - d0\or d1\or d2\or d3\or d4\or d5\or d6\or d7\or d8\or d9\or da\or db\or dc\or dd\or de\or df\or - e0\or e1\or e2\or e3\or e4\or e5\or e6\or e7\or e8\or e9\or ea\or eb\or ec\or ed\or ee\or ef\or - f0\or f1\or f2\or f3\or f4\or f5\or f6\or f7\or f8\or f9\or fa\or fb\or fc\or fd\or fe\or ff\fi} - -\def\uchexnumbers#1% - {\@EA\douchexnumbers\number#1\relax} - -\def\douchexnumbers#1\relax % \def\uchexnumbers#1% - {\ifcase#1 - 00\or 01\or 02\or 03\or 04\or 05\or 06\or 07\or 08\or 09\or 0A\or 0B\or 0C\or 0D\or 0E\or 0F\or - 10\or 11\or 12\or 13\or 14\or 15\or 16\or 17\or 18\or 19\or 1A\or 1B\or 1C\or 1D\or 1E\or 1F\or - 20\or 21\or 22\or 23\or 24\or 25\or 26\or 27\or 28\or 29\or 2A\or 2B\or 2C\or 2D\or 2E\or 2F\or - 30\or 31\or 32\or 33\or 34\or 35\or 36\or 37\or 38\or 39\or 3A\or 3B\or 3C\or 3D\or 3E\or 3F\or - 40\or 41\or 42\or 43\or 44\or 45\or 46\or 47\or 48\or 49\or 4A\or 4B\or 4C\or 4D\or 4E\or 4F\or - 50\or 51\or 52\or 53\or 54\or 55\or 56\or 57\or 58\or 59\or 5A\or 5B\or 5C\or 5D\or 5E\or 5F\or - 60\or 61\or 62\or 63\or 64\or 65\or 66\or 67\or 68\or 69\or 6A\or 6B\or 6C\or 6D\or 6E\or 6F\or - 70\or 71\or 72\or 73\or 74\or 75\or 76\or 77\or 78\or 79\or 7A\or 7B\or 7C\or 7D\or 7E\or 7F\or - 80\or 81\or 82\or 83\or 84\or 85\or 86\or 87\or 88\or 89\or 8A\or 8B\or 8C\or 8D\or 8E\or 8F\or - 90\or 91\or 92\or 93\or 94\or 95\or 96\or 97\or 98\or 99\or 9A\or 9B\or 9C\or 9D\or 9E\or 9F\or - A0\or A1\or A2\or A3\or A4\or A5\or A6\or A7\or A8\or A9\or AA\or AB\or AC\or AD\or AE\or AF\or - B0\or B1\or B2\or B3\or B4\or B5\or B6\or B7\or B8\or B9\or BA\or BB\or BC\or BD\or BE\or BF\or - C0\or C1\or C2\or C3\or C4\or C5\or C6\or C7\or C8\or C9\or CA\or CB\or CC\or CD\or CE\or CF\or - D0\or D1\or D2\or D3\or D4\or D5\or D6\or D7\or D8\or D9\or DA\or DB\or DC\or DD\or DE\or DF\or - E0\or E1\or E2\or E3\or E4\or E5\or E6\or E7\or E8\or E9\or EA\or EB\or EC\or ED\or EE\or EF\or - F0\or F1\or F2\or F3\or F4\or F5\or F6\or F7\or F8\or F9\or FA\or FB\or FC\or FD\or FE\or FF\fi} +\let\lchexnumber \gobbleoneargument +\let\uchexnumber \gobbleoneargument +\let\lchexnumbers\gobbleoneargument +\let\uchexnumbers\gobbleoneargument %D \macros %D {octnumber} %D %D For unicode remapping purposes, we need octal numbers. -\def\octnumber#1% - {\@EA\dooctnumber\number#1\relax} - -\def\dooctnumber#1\relax % \def\octnumber#1% - {\ifcase#1 - 000\or 001\or 002\or 003\or 004\or 005\or 006\or 007\or - 010\or 011\or 012\or 013\or 014\or 015\or 016\or 017\or - 020\or 021\or 022\or 023\or 024\or 025\or 026\or 027\or - 030\or 031\or 032\or 033\or 034\or 035\or 036\or 037\or - 040\or 041\or 042\or 043\or 044\or 045\or 046\or 047\or - 050\or 051\or 052\or 053\or 054\or 055\or 056\or 057\or - 060\or 061\or 062\or 063\or 064\or 065\or 066\or 067\or - 070\or 071\or 072\or 073\or 074\or 075\or 076\or 077\or - 100\or 101\or 102\or 103\or 104\or 105\or 106\or 107\or - 110\or 111\or 112\or 113\or 114\or 115\or 116\or 117\or - 120\or 121\or 122\or 123\or 124\or 125\or 126\or 127\or - 130\or 131\or 132\or 133\or 134\or 135\or 136\or 137\or - 140\or 141\or 142\or 143\or 144\or 145\or 146\or 147\or - 150\or 151\or 152\or 153\or 154\or 155\or 156\or 157\or - 160\or 161\or 162\or 163\or 164\or 165\or 166\or 167\or - 170\or 171\or 172\or 173\or 174\or 175\or 176\or 177\or - 200\or 201\or 202\or 203\or 204\or 205\or 206\or 207\or - 210\or 211\or 212\or 213\or 214\or 215\or 216\or 217\or - 220\or 221\or 222\or 223\or 224\or 225\or 226\or 227\or - 230\or 231\or 232\or 233\or 234\or 235\or 236\or 237\or - 240\or 241\or 242\or 243\or 244\or 245\or 246\or 247\or - 250\or 251\or 252\or 253\or 254\or 255\or 256\or 257\or - 260\or 261\or 262\or 263\or 264\or 265\or 266\or 267\or - 270\or 271\or 272\or 273\or 274\or 275\or 276\or 277\or - 300\or 301\or 302\or 303\or 304\or 305\or 306\or 307\or - 310\or 311\or 312\or 313\or 314\or 315\or 316\or 317\or - 320\or 321\or 322\or 323\or 324\or 325\or 326\or 327\or - 330\or 331\or 332\or 333\or 334\or 335\or 336\or 337\or - 340\or 341\or 342\or 343\or 344\or 345\or 346\or 347\or - 350\or 351\or 352\or 353\or 354\or 355\or 356\or 357\or - 360\or 361\or 362\or 363\or 364\or 365\or 366\or 367\or - 370\or 371\or 372\or 373\or 374\or 375\or 376\or 377\fi} +\let\octnumber\gobbleoneargument %D \macros %D {hexstringtonumber} @@ -158,54 +67,23 @@ %D a decimal number, thereby taking care of lowercase characters %D as well. -\dostepwiserecurse{0}{9}{1}{\setevalue{@@uc@@\recurselevel}{\recurselevel}} - -\setvalue{@@uc@@a}{A} \setvalue{@@uc@@A}{A} -\setvalue{@@uc@@b}{B} \setvalue{@@uc@@B}{B} -\setvalue{@@uc@@c}{C} \setvalue{@@uc@@C}{C} -\setvalue{@@uc@@d}{D} \setvalue{@@uc@@D}{D} -\setvalue{@@uc@@e}{E} \setvalue{@@uc@@E}{E} -\setvalue{@@uc@@f}{F} \setvalue{@@uc@@F}{F} - -\def\hexstringtonumber#1% {FF} - {\dohexstringtonumber#1} - -\def\dohexstringtonumber#1#2% FF - {"\csname @@uc@@#1\endcsname\csname @@uc@@#2\endcsname} +\let\hexstringtonumber\gobbleoneargument %D \macros %D {rawcharacter} %D -%D This conversion macro produces raw characters. We have to -%D construct the macro in a special way to avoid problems with -%D characters with special meanings. So, we revert to the -%D lowercase conversion trick to bypass \TEX's input parser. - -\bgroup - -\catcode`\^^@=12 % ascii null == ignored in plain -\catcode`\^^?=12 % ascii delete == invalid in plain - -\let\or\relax - -\xdef\rawcharacter{ ^^00\or} +%D This macro can be used to produce proper 8 bit characters +%D that we sometimes need in backends and round||trips. -\dorecurse{255} - {\lccode`a=\recurselevel - \lowercase{\xdef\rawcharacter{\rawcharacter \string a\or}}} % string is needed for XeTeX - -\@EA\gdef\@EA\rawcharacter\@EA#\@EA1\@EA - {\@EA\ifcase\@EA#\@EA1\rawcharacter\fi} - -\egroup +\let\rawcharacter\gobbleoneargument %D \macros -%D {threedigits} +%D {twodigits, threedigits} %D -%D This one provides three digits always. +%D These macros provides two or three digits always: -\def\threedigits#1% - {\ifnum#1<10 00\else\ifnum#1<100 0\fi\fi\number#1} +\def\twodigits #1{\ifnum #1<10 0\fi\number#1} +\def\threedigits#1{\ifnum#1<100 \ifnum#1<10 0\fi0\fi\number#1} %D \macros{modulonumber} %D @@ -257,4 +135,10 @@ \endTEX +%D Plugins + +\loadmarkfile{syst-con} + +\let\hexnumber\uchexnumber + \protect \endinput |