OSDN Git Service

Moved src/no_runtime/ => no_runtime/.
[luatex-ja/luatexja.git] / src / luatexja-core.sty
index 1a66f0c..18936df 100644 (file)
@@ -65,7 +65,7 @@
   \expandafter\let\csname ifltj@in@latex\expandafter\endcsname
     \csname iftrue\endcsname
   \NeedsTeXFormat{LaTeX2e}
-  \ProvidesPackage{luatexja-core}[2011/04/01 v0.1]
+  \ProvidesPackage{luatexja-core}[2012/04/20 v0.2]
 \fi                             %</LaTeX>
 
 %% Load prerequisite packages.
 \let\LuaTeXjaAvailable=t %
 
 %%------------------
-
-%% Load all sub-packages.
-\ifltj@in@latex                 %<*LaTeX>
-  \RequirePackage{luatexja-cctbreg}[2011/04/01]
-  \RequirePackage{luatexja-base}[2011/04/01]
-\else                           %<*!LaTeX>
-  \input luatexja-cctbreg.sty %
-  \input luatexja-base.sty %
-\fi                             %</LaTeX>
-
-%%------------------
 \endlinechar=13
 %! この中に master の luatexja-core.sty の内容を挿入する
 %! ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
 
 \def\ltj@loaded{hoge}
 
-\newcount\ltj@tempcnta
-\newcount\ltj@tempcntb
-\newcount\ltj@tempcntc
-\newdimen\ltj@tempdima
-\newskip\ltj@tempskipa
-\newtoks\ltj@temptoks
-
 \newdimen\ltj@zw
 \newdimen\ltj@zh
 \newdimen\jQ \jQ=0.25mm
 \def\ltj@defnum{0}
 \def\ltj@defdimen{0}
 
-
 %%%%%%%% Attributes for Japanese typesetting.
 \newluatexattribute\ltj@curjfnt   % index for ``current Japanese font''
 \newluatexattribute\jfam          % index for current jfam
 \newluatexattribute\ltj@autoxspc  % attribute for autoxspacing
 \newluatexattribute\ltj@icflag    % attribute for italic correction
 
-%%%%%%%% Loading lua files
+%%%%%%%% Loading luatexja.lua
+%% Quark tokens needed in ltj-base
+\protected\def\ltj@@q@escape{\ltj@@q@escape@}
+\protected\def\ltj@@q@escapenum{\ltj@@q@escapenum@}
+
 \directlua{%
-  utf = unicode.utf8
-  ltj = {}
-  function ltj.loadlua(file)
-    local path = assert(kpse.find_file(file, 'tex'),
-      "File '"..file.."' not found")
-    texio.write_nl("("..path..")")
-    dofile(path)
+  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
-  ltj.loadlua('luatexja-core.lua')
+  local path = assert(kpse.find_file('luatexja.lua', 'tex'),
+      "File `luatexja.lua' not found")
+  dofile(path)
 }
 
+%%%%%%%% Load all sub-packages.
+\ifltj@in@latex                 %<*LaTeX>
+  \RequirePackage{luatexja-cctbreg}[2011/04/01]
+  \RequirePackage{luatexja-base}[2011/04/20]
+\else                           %<*!LaTeX>
+  \input luatexja-cctbreg.sty %
+  \input luatexja-base.sty %
+\fi                             %</LaTeX>
+
 
 %%%%%%%% Attributes for character ranges
 \ltj@tempcnta=0
   \advance\ltj@tempcnta by1
 \repeat
 
-
 %%%%%%%% \asluastring
 \def\asluastring#1{'\luaescapestring{\detokenize{#1}}'}
 
 
 %%%%%%%% \inhibitglue
 \protected\def\ltj@reset@globaldefs{%
-  \directlua{ltj.global_temp = tex.globaldefs; tex.globaldefs = 0}}
-\protected\def\ltj@restore@globaldefs{\directlua{tex.globaldefs = ltj.global_temp}}
+  \directlua{luatexja.global_temp = tex.globaldefs; tex.globaldefs = 0}}
+\protected\def\ltj@restore@globaldefs{\directlua{tex.globaldefs = luatexja.global_temp}}
 \let\new@everypar=\everypar
 \protected\def\inhibitglue{\relax%
   \ifvmode
 \define@key[ltj]{japaram}{postbreakpenalty}{%
   \expandafter\ltj@@set@stack#1:{post}{-10000}{10000}}
 \def\ltj@@set@stack#1,#2:#3#4#5{%
-  \directlua{luatexja.stack.set_stack_table(ltj.isglobal, \asluastring{#3},
+  \directlua{luatexja.stack.set_stack_table(luatexja.isglobal, \asluastring{#3},
     \ltj@safe@num@or\ltj@defnum{#1},\ltj@safe@num@or\ltj@defnum{#2},#4,#5)}}
 
 % jatextfont = {<char_code>, <font_cs>}
     {\string#2 is not a control sequence that represents \MessageBreak
      a Japanese font}{}%
   \else
-    \directlua{luatexja.stack.set_stack_font(ltj.isglobal, \asluastring{#3},
+    \directlua{luatexja.stack.set_stack_font(luatexja.isglobal, \asluastring{#3},
     \ltj@safe@num@or\ltj@defnum{#1}, \the\ltj@curjfnt)}%
   \fi
   \ltj@curjfnt=\ltj@tempcnta
 % yalbaselineshift = <dimen>
 % yjabaselineshift = <dimen>
 \define@key[ltj]{japaram}{yalbaselineshift}{%
-  \directlua{tex.setattribute(ltj.isglobal, 
+  \directlua{tex.setattribute(luatexja.isglobal, 
     luatexbase.attributes['ltj@yablshift'],
     \ltj@safe@dimen@or\ltj@defdimen{#1})}}
 \define@key[ltj]{japaram}{yjabaselineshift}{%
-  \directlua{tex.setattribute(ltj.isglobal, 
+  \directlua{tex.setattribute(luatexja.isglobal, 
     luatexbase.attributes['ltj@ykblshift'],
     \ltj@safe@dimen@or\ltj@defdimen{#1})}}
 
   \def\ltj@tempa{preonly}\ifx\ltj@temp\ltj@tempa\def\ltj@temp{1}\fi
   \def\ltj@tempa{postonly}\ifx\ltj@temp\ltj@tempa\def\ltj@temp{2}\fi
   \def\ltj@tempa{allow}\ifx\ltj@temp\ltj@tempa\def\ltj@temp{3}\fi
-  \directlua{luatexja.stack.set_stack_table(ltj.isglobal, 'xsp', 
+  \directlua{luatexja.stack.set_stack_table(luatexja.isglobal, 'xsp', 
     \ltj@safe@num@or\ltj@defnum{#1},
     \ltj@safe@num@or\ltj@defnum{\ltj@temp},0,3)}}
 
   \def\ltj@tempa{preonly}\ifx\ltj@temp\ltj@tempa\def\ltj@temp{1}\fi
   \def\ltj@tempa{postonly}\ifx\ltj@temp\ltj@tempa\def\ltj@temp{2}\fi
   \def\ltj@tempa{allow}\ifx\ltj@temp\ltj@tempa\def\ltj@temp{3}\fi
-  \directlua{luatexja.stack.set_stack_table(ltj.isglobal, 'xsp', 
+  \directlua{luatexja.stack.set_stack_table(luatexja.isglobal, 'xsp', 
     \ltj@safe@num@or\ltj@defnum{#1},
     \ltj@safe@num@or\ltj@defnum{\ltj@temp},0,3)}}
 
 % autospacing = <bool> (default: true)
 \define@boolkey[ltj]{japaram}{autospacing}[true]{%
   \ifltj@japaram@autospacing
-    \directlua{ltj.ext_print_global()}\ltj@autospc=1
+    \directlua{luatexja.ext_print_global()}\ltj@autospc=1
   \else
-    \directlua{ltj.ext_print_global()}\ltj@autospc=0
+    \directlua{luatexja.ext_print_global()}\ltj@autospc=0
   \fi}
 
 % autoxspacing = <bool> (default: true)
 \define@boolkey[ltj]{japaram}{autoxspacing}[true]{%
   \ifltj@japaram@autoxspacing
-    \directlua{ltj.ext_print_global()}\ltj@autoxspc=1
+    \directlua{luatexja.ext_print_global()}\ltj@autoxspc=1
   \else
-    \directlua{ltj.ext_print_global()}\ltj@autoxspc=0
+    \directlua{luatexja.ext_print_global()}\ltj@autoxspc=0
   \fi}
 
 % [x]]kanjiskip = <dimen>
 \define@key[ltj]{japaram}{kanjiskip}{%              % SKIP
-  \directlua{luatexja.stack.set_stack_skip(ltj.isglobal, 'kanjiskip', \ltj@safe@glue{#1})}}
+  \directlua{luatexja.stack.set_stack_skip(luatexja.isglobal, 'kanjiskip', \ltj@safe@glue{#1})}}
 \define@key[ltj]{japaram}{xkanjiskip}{%             % SKIP
-  \directlua{luatexja.stack.set_stack_skip(ltj.isglobal, 'xkanjiskip', \ltj@safe@glue{#1})}}
+  \directlua{luatexja.stack.set_stack_skip(luatexja.isglobal, 'xkanjiskip', \ltj@safe@glue{#1})}}
 
 % jcharwidowpenalty = <count>
 \define@key[ltj]{japaram}{jcharwidowpenalty}{%      %COUNT
   \edef\ltj@temp{#1}%
   \ifx\ltj@temp\empty\let\next=\relax\else\let\next=\ltj@@scrange
     \directlua{luatexja.charrange.toggle_char_range(%
-      ltj.is_global,\ltj@safe@num@or\ltj@defnum{#1})}%
+      luatexja.is_global,\ltj@safe@num@or\ltj@defnum{#1})}%
   \fi\next
 }
 
 \protected\def\ltjsetparameter#1{%
-  \ifnum\globaldefs>0\directlua{ltj.isglobal='global'}\else\directlua{ltj.isglobal=''}\fi
+  \ifnum\globaldefs>0\directlua{luatexja.isglobal='global'}\else\directlua{luatexja.isglobal=''}\fi
   \setkeys[ltj]{japaram}{#1}\ignorespaces}
 \protected\def\ltjglobalsetparameter#1{%
-  \ifnum\globaldefs<0\directlua{ltj.isglobal=''}\else\directlua{ltj.isglobal='global'}\fi
+  \ifnum\globaldefs<0\directlua{luatexja.isglobal=''}\else\directlua{luatexja.isglobal='global'}\fi
   \setkeys[ltj]{japaram}{#1}\ignorespaces}
 
 %%%%%%%% \ltjgetparameter
   {\ltj@@getparam@one{#1}}%
 }
 \def\ltj@@getparam@one#1{%
-  \directlua{ltj.ext_get_parameter_unary('#1')}}%
+  \directlua{luatexja.ext_get_parameter_unary('#1')}}%
 \def\ltj@@getparam@two#1#2{%
-  \directlua{ltj.ext_get_parameter_binary('#1', \ltj@safe@num{#2})}%
+  \directlua{luatexja.ext_get_parameter_binary('#1', \ltj@safe@num{#2})}%
 }
 
 %%%%%%%% \ltjalchar<number>, \ltjjachar<number>