OSDN Git Service

Updated the manual.
[luatex-ja/luatexja.git] / tool / jisx0208table.tex
1 %#! euptex
2 % cat jisx0208table.log | tr -s '\n' > ../src/luatexja/jisx0208.lua
3 % の後,少々修正
4 \catcode`\!=1
5 \catcode`\?=2
6
7 \catcode`@11
8 \def\@firstoftwo#1#2{#1}
9 \def\@secondoftwo#1#2{#2}
10 \def\ifnumcomp#1#2#3{%
11         \ifnum\numexpr#1\relax#2\numexpr#3\relax
12                 \expandafter\@firstoftwo
13         \else
14                 \expandafter\@secondoftwo
15         \fi
16 }
17 \def\truncdiv#1#2{%
18         \ifnumcomp{#1}<{(#1)/(#2)*(#2)}{%
19                 \numexpr(#1)/(#2)-1%
20         }{%
21                 \numexpr(#1)/(#2)%
22         }%
23 }
24 \def\hex#1{%
25         \ifnumcomp{#1}<0{}{\hn@i{#1}{}}%
26 }
27 \def\hn@i#1#2{%
28         \ifnumcomp{#1}<{16}
29         {%
30                 \hn@digit{#1}#2%
31         }{%
32                 \expandafter\hn@ii\expandafter{%
33                         \the\numexpr\truncdiv{#1}{16}%
34                 }{#1}{#2}%
35         }%
36 }
37 \def\hn@ii#1#2#3{%
38         \expandafter\hn@i\expandafter{%
39                 \number\numexpr#1\expandafter\expandafter\expandafter
40                 \expandafter\expandafter\expandafter\expandafter}%
41                 \expandafter\expandafter\expandafter\expandafter
42                 \expandafter\expandafter\expandafter{%
43                         \hn@digit{(#2)-16*(#1)}#3}%
44 }
45 \begingroup
46 \catcode`012\catcode`112\catcode`212\catcode`312\catcode`412
47 \catcode`512\catcode`612\catcode`712\catcode`812\catcode`912
48 \catcode`A12\catcode`B12\catcode`C12\catcode`D12\catcode`E12
49 \catcode`F12
50 \gdef\hn@digit#1{%
51         \ifcase\numexpr#1\relax 0%
52         \or \expandafter 1%
53         \or \expandafter 2%
54         \or \expandafter 3%
55         \or \expandafter 4%
56         \or \expandafter 5%
57         \or \expandafter 6%
58         \or \expandafter 7%
59         \or \expandafter 8%
60         \or \expandafter 9%
61         \or \expandafter A%
62         \or \expandafter B%
63         \or \expandafter C%
64         \or \expandafter D%
65         \or \expandafter E%
66         \or \expandafter F%
67         \fi
68 }
69 \endgroup
70
71
72 \catcode`\{=12
73 \catcode`\}=12
74 \def\folio!?
75
76 \newcount\ku
77 \newcount\ten
78 \newcount\tmp
79 \newcount\tmpa
80 \newcount\tmpb
81 \font\tt=cmtt10 at 10pt\tt\baselineskip=12pt\parindent=0pt\parskip=0pt
82
83 \catcode`\_=12
84 \message!^^Jluatexbase.provides_module({?
85 \message!^^J  name = 'luatexja.jisx0208'})?
86 \message!^^Jmodule('luatexja.jisx0208', package.seeall)?
87 \message!^^Jtable_jisx0208_uptex = {?
88
89 \ku=1
90 \loop 
91   \tmp=\ku \multiply\tmp"100 \advance\tmp"2020 %"
92   ! \ten=1
93     \loop
94     \advance\tmp1 
95     \tmpa=\jis\tmp \tmpb=\tmp\advance\tmpb-"2020%"
96     \ifnum\tmpa=0\else
97       \ifnum\tmpa>256
98         \kansujichar1=\tmpa
99         \message!^^J  [0x\hex\tmpb] = 0x\hex\tmpa, --(\kansuji1)?
100       \else
101         \message!^^J  [0x\hex\tmpb] = 0x\hex\tmpa, ?
102       \fi
103     \fi
104     \advance\ten 1
105     \ifnum\ten<95\relax\repeat
106   ?
107   \advance\ku 1
108 \ifnum\ku<95\relax\repeat
109
110 \message!^^J}?
111
112 \end