OSDN Git Service

test: flatten the stack table
[luatex-ja/luatexja.git] / src / luatexja-compat.sty
1 %
2 % luatexja-compat.sty
3 %
4
5 %! 外から読まれるので仰々しくなってます
6 %% Avoid multiple loading.
7 \csname\if11luatexjacompatLoaded\fi\endcsname
8 \edef\x{%
9 \catcode32=\the\catcode32%
10 \catcode33=\the\catcode33%
11 \catcode35=\the\catcode35%
12 \catcode40=\the\catcode40%
13 \catcode41=\the\catcode41%
14 \catcode42=\the\catcode42%
15 \catcode43=\the\catcode43%
16 \catcode44=\the\catcode44%
17 \catcode45=\the\catcode45%
18 \catcode46=\the\catcode46%
19 \catcode58=\the\catcode58%
20 \catcode59=\the\catcode59%
21 \catcode60=\the\catcode60%
22 \catcode61=\the\catcode61%
23 \catcode62=\the\catcode62%
24 \catcode64=\the\catcode64%
25 \catcode91=\the\catcode91%
26 \catcode93=\the\catcode93%
27 \catcode94=\the\catcode94%
28 \catcode95=\the\catcode95%
29 \catcode126=\the\catcode126%
30 \endlinechar=\the\endlinechar
31 \relax}
32 \catcode32=10 %< >
33 \catcode33=12 %<">
34 \catcode35=6  %<#>
35 \catcode40=12 %<(>
36 \catcode41=12 %<)>
37 \catcode42=12 %<*>
38 \catcode43=12 %<+>
39 \catcode44=12 %<,>
40 \catcode45=12 %<->
41 \catcode46=12 %<.>
42 \catcode58=12 %<:>
43 \catcode59=12 %<;>
44 \catcode60=12 %<<>
45 \catcode61=12 %<=>
46 \catcode62=12 %<>>
47 \catcode64=11 %<@>
48 \catcode91=12 %<[>
49 \catcode93=12 %<]>
50 \catcode94=7  %<^>
51 \catcode95=8  %<_>
52 \catcode126=13 %<~>
53 \endlinechar=-1 %
54 %! なお, 上のcatcode設定はcoreとcompatで同一にしておく.
55 \edef\ltj@compat@AtEnd{\x
56   \noexpand\let\noexpand\ltj@compat@AtEnd\relax}
57 \def\luatexjacompatLoaded{\endinput}
58
59 %% Check if LaTeX is used.
60 \begingroup\expandafter\expandafter\expandafter\endgroup
61 \expandafter\ifx\csname RequirePackage\endcsname\relax %<*!LaTeX>
62   \expandafter\let\csname ifltj@in@latex\expandafter\endcsname
63     \csname iffalse\endcsname
64 \else                           %<*LaTeX>
65   \expandafter\let\csname ifltj@in@latex\expandafter\endcsname
66     \csname iftrue\endcsname
67   \NeedsTeXFormat{LaTeX2e}
68   \ProvidesPackage{luatexja-compat}[2011/04/01 v0.1]
69 \fi                             %</LaTeX>
70
71 %% If the engine is pTeX, then load the module for it and exit.
72 \edef\ltj@@tempa{\string\kansuji}
73 \edef\ltj@@tempb{\meaning\kansuji}
74 \ifx\ltj@@tempa\ltj@@tempb      %<*pTeX>
75   \let\ltj@@compat@pTeX=t
76   \ifltj@in@latex                 %<*LaTeX>
77     \RequirePackage{ltj-compat-ptex}[2012/04/21]
78   \else                           %<*!LaTeX>
79     \input ltj-compat-ptex.sty %
80   \fi                             %</LaTeX>
81   \ltj@compat@AtEnd
82 \expandafter\endinput\fi\relax  %</pTeX>
83
84 % Load core module if not yet.
85 \ifx\luatexjacoreLoaded\@undefined
86   \ifltj@in@latex                 %<*LaTeX>
87     \RequirePackage{luatexja-core}[2012/04/20]
88   \else                           %<*!LaTeX>
89     \input luatexja-core.sty %
90   \fi                             %</LaTeX>
91 \fi
92
93 %% When environment check fails, exit now.
94 \ifx\LuaTeXjaAvailable\@undefined
95   \ltj@compat@AtEnd
96 \expandafter\endinput\fi\relax
97
98 %% Load Lua modules.
99 %\RequireLuaModule{luatexja.infomute}
100 % not yet implemented.
101
102 %% Silence info messages of luatexbase-mcb
103 %\directlua{ luatexja.infomute.add_mute("luatexbase-mcb") }
104 % not yet implemented.
105
106 %%------------------
107 \RequireLuaTeXjaSubmodule{jisx0208}
108 \RequireLuaTeXjaSubmodule{compat}
109
110 \def\euc{\ltj@code@conv{euc}}
111 \def\kuten{\ltj@code@conv{kuten}}
112 \def\jis{\ltj@code@conv{jis}}
113 \def\sjis{\ltj@code@conv{sjis}}
114 \def\ucs{\ltj@code@conv{ucs}}
115
116 \def\ltj@code@conv#1{%
117   \directlua{luatexja._cc_next = luatexja.compat.from_#1 }%
118   \ltj@code@convA
119 }
120 \def\ltj@code@convA{%
121   \expandafter\expandafter\expandafter
122    \ltj@code@convB\ltj@grab@num
123 }
124 \def\ltj@code@convB#1{%
125   \directlua{luatexja._cc_next(\ltj@safe@num@or{nil}{#1}) }%
126 }
127
128 \def\kansuji{%
129   \expandafter\expandafter\expandafter
130    \ltj@kansujiA\ltj@grab@num
131 }
132 \def\ltj@kansujiA#1{%
133   \directlua{luatexja.compat.to_kansuji(\ltj@safe@num{#1}) }%
134 }
135 \define@key[ltj]{japaram}{kansujichar}{%
136   \expandafter\ltj@@set@stack#1:{KSJ}{0}{0x7FFFFFFF}}
137
138 \ltjsetparameter{kansujichar={0,`〇}}
139 \ltjsetparameter{kansujichar={1,`一}}
140 \ltjsetparameter{kansujichar={2,`二}}
141 \ltjsetparameter{kansujichar={3,`三}}
142 \ltjsetparameter{kansujichar={4,`四}}
143 \ltjsetparameter{kansujichar={5,`五}}
144 \ltjsetparameter{kansujichar={6,`六}}
145 \ltjsetparameter{kansujichar={7,`七}}
146 \ltjsetparameter{kansujichar={8,`八}}
147 \ltjsetparameter{kansujichar={9,`九}}
148
149 \ifltj@in@latex
150   \newcommand\printglossary{\@input@{\jobname.gls}}
151 \fi
152 \newcount\hour
153 \newcount\minute
154
155 %%------------------ all done
156 \ltj@compat@AtEnd
157 \endinput
158 %% EOF