OSDN Git Service

Bugfix? in lltjfont.sty.
[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{luatexja-compat-ptex}[2011/04/01]
78   \else                           %<*!LaTeX>
79     \input luatexja-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}[2011/04/01]
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 %! これ以降に LuaTeX 用の compat の内容を入れる.
108 \RequireLuaModule{luatexja.jisx0208} %% JIS X 0208 => unicode のテーブル
109 \RequireLuaModule{luatexja.compat}
110
111 \def\euc{\ltj@code@conv{euc}}
112 \def\kuten{\ltj@code@conv{kuten}}
113 \def\jis{\ltj@code@conv{jis}}
114 \def\sjis{\ltj@code@conv{sjis}}
115 \def\ucs{\ltj@code@conv{ucs}}
116
117 \def\ltj@code@conv#1{%
118   \directlua{ luatexja._cc_next = luatexja.compat.from_#1 }%
119   \ltj@code@convA
120 }
121 \def\ltj@code@convA{%
122   \expandafter\expandafter\expandafter
123    \ltj@code@convB\ltj@grab@num
124 }
125 \def\ltj@code@convB#1{%
126   \directlua{ luatexja._cc_next(\ltj@safe@num{#1}) }%
127 }
128
129 \def\kansuji{%
130   \expandafter\expandafter\expandafter
131    \ltj@kansujiA\ltj@grab@num
132 }
133 \def\ltj@kansujiA#1{%
134   \directlua{ luatexja.compat.to_kansuji(\ltj@safe@num{#1}) }%
135 }
136 \define@key[ltj]{japaram}{kansujichar}{%
137   \expandafter\ltj@@set@stack#1:{ksj}{0}{0x7FFFFFFF}}
138
139 \ltjsetparameter{kansujichar={0,`〇}}
140 \ltjsetparameter{kansujichar={1,`一}}
141 \ltjsetparameter{kansujichar={2,`二}}
142 \ltjsetparameter{kansujichar={3,`三}}
143 \ltjsetparameter{kansujichar={4,`四}}
144 \ltjsetparameter{kansujichar={5,`五}}
145 \ltjsetparameter{kansujichar={6,`六}}
146 \ltjsetparameter{kansujichar={7,`七}}
147 \ltjsetparameter{kansujichar={8,`八}}
148 \ltjsetparameter{kansujichar={9,`九}}
149
150 \ifltj@in@latex
151   \newcommand\printglossary{\@input@{\jobname.gls}}
152 \fi
153 \newcount\hour
154 \newcount\minute
155
156 %%------------------ all done
157 \ltj@compat@AtEnd
158 \endinput
159 %% EOF