OSDN Git Service

Fix \inhibitglue, \zw, \zh, \ltj[un]setmathletter.
[luatex-ja/luatexja.git] / src / luatexja-core.sty
index 18936df..92ec56d 100644 (file)
 
 \directlua{%
   luatexja = {}
-  function luatexja.error(s,t)
-    tex.error('LuaTeX-ja error: ' .. s ,t) 
-  end
-  function luatexja.load_module(name)
-     local fn = 'ltj-' .. name .. '.lua'
-     local found = kpse.find_file(fn, 'tex')
-     if not found then
-        luatexja.error("File `" .. fn .. "' not found", 
-             {'This file ' .. fn .. ' is required for LuaTeX-ja.', 'Please check your installation.'})
-     else 
-        texio.write('(' .. found .. ')')
-        require(found)
-     end
-  end
-  local path = assert(kpse.find_file('luatexja.lua', 'tex'),
-      "File `luatexja.lua' not found")
-  dofile(path)
+  dofile(assert(kpse.find_file('luatexja.lua', 'tex'),
+      "File `luatexja.lua' not found"))
 }
 
+%% \RequireLuaTeXjaSubmodule{name}[date]
+% A TeX version of luatexja.load_module(name)
+% The second optional argument [date] is simply ignored.
+\def\RequireLuaTeXjaSubmodule#1{%
+  \@ifnextchar[{\ltj@requirelua@submod{#1}}{\ltj@requirelua@submod{#1}[]}}
+\def\ltj@requirelua@submod#1[#2]{%
+  \directlua{luatexja.load_module(
+    "\luatexluaescapestring{#1}")}}
+
+
 %%%%%%%% Load all sub-packages.
 \ifltj@in@latex                 %<*LaTeX>
-  \RequirePackage{luatexja-cctbreg}[2011/04/01]
-  \RequirePackage{luatexja-base}[2011/04/20]
+  \RequirePackage{ltj-cctbreg}[2012/04/21]
+  \RequirePackage{ltj-base}[2012/04/21]
 \else                           %<*!LaTeX>
-  \input luatexja-cctbreg.sty %
-  \input luatexja-base.sty %
+  \input ltj-cctbreg.sty %
+  \input ltj-base.sty %
 \fi                             %</LaTeX>
 
 
 \def\ltj@@jfont{\directlua{luatexja.jfont.jfontdefY()}}
 
 %%%%%%%% \zw, \zh
-\def\zw{\directlua{luatexja.jfont.load_zw()}\ltj@zw}
-\def\zh{\directlua{luatexja.jfont.load_zh()}\ltj@zh}
+\protected\def\zw{\directlua{luatexja.jfont.load_zw()}\ltj@zw}
+\protected\def\zh{\directlua{luatexja.jfont.load_zh()}\ltj@zh}
 
 
 %%%%%%%% \inhibitglue
 \protected\def\inhibitglue{\relax%
   \ifvmode
     \ltj@reset@globaldefs
-    \xdef\@@tempa{\the\everypar}%
-    \xdef\@@tempb{\everypar={\@@tempa}\@@tempa\noexpand\ltj@@ihb}%
-    \everypar\expandafter{\@@tempb}%
+    \edef\ltj@@tmp{%
+      \everypar={\the\everypar}\the\everypar\noexpand\ltj@@ihb}%
+    \everypar\expandafter{\ltj@@tmp}%
     \ltj@restore@globaldefs
   \else\ifhmode\ltj@@ihb\fi\fi}
 \def\ltj@@ihb{\directlua{luatexja.jfmglue.create_inhibitglue_node()}}
 \ltj@@decl@array@param{kcatcode}
 \ltj@@decl@array@param{jacharrange}
 \ltj@@decl@array@param{chartorange}
-\def\ltjgetparameter#1{%
+\protected\def\ltjgetparameter#1{%
   \ifcsname ltj@@array@param/#1\endcsname
     \expandafter\ltx@firstoftwo
   \else
 \def\ltj@@alchar{{\directlua{tex.globaldefs = 0}\ltj@allalchar\ltj@@origchar\ltj@tempcnta}}
 
 %%%%%%%% \ltjsetmathletter<number>, \ltjunsetmathletter<number>
-\def\ltjsetmathletter#1{\directlua{luatexja.math.is_math_letters[#1]=true}}
-\def\ltjunsetmathletter#1{\directlua{luatexja.math.is_math_letters[#1]=false}}
+\protected\def\ltjsetmathletter#1{\directlua{luatexja.math.is_math_letters[#1]=true}}
+\protected\def\ltjunsetmathletter#1{\directlua{luatexja.math.is_math_letters[#1]=false}}
 
 %%------------------ Load module for the format
 
 \ifltj@in@latex                 %<*LaTeX>
-  \RequirePackage{luatexja-latex}[2011/04/01]
+  \RequirePackage{ltj-latex}[2012/04/21]
 \else\ifltj@in@plain            %<*plain>
-  \input luatexja-plain.sty %
+  \input ltj-plain.sty %
 \fi\fi                          %</LaTeX|plain>
 
 %%------------------ all done