OSDN Git Service

added \ltjset[x]kanjiskip; executing \ltjsetparameter is slow.
authorHironori Kitagawa <h_kitagawa2001@yahoo.co.jp>
Wed, 14 May 2014 06:45:45 +0000 (15:45 +0900)
committerHironori Kitagawa <h_kitagawa2001@yahoo.co.jp>
Thu, 19 Jun 2014 10:49:39 +0000 (19:49 +0900)
src/ltj-jfmglue.lua
src/ltjsarticle.cls
src/ltjsbook.cls
src/ltjsclasses.dtx
src/ltjskiyou.cls
src/ltjspf.cls
src/luatexja-core.sty
src/patches/lltjfont.sty

index eb01747..9486c32 100644 (file)
@@ -9,6 +9,7 @@ luatexbase.provides_module({
 module('luatexja.jfmglue', package.seeall)
 local err, warn, info, log = luatexbase .errwarinf(_NAME)
 
+luatexja.load_module('base');      local ltjb = luatexja.base
 luatexja.load_module('stack');     local ltjs = luatexja.stack
 luatexja.load_module('jfont');     local ltjf = luatexja.jfont
 local pairs = pairs
@@ -100,11 +101,16 @@ local function fast_find_char_class(c,m)
 end
 
 -- 文字クラスの決定
-local function slow_find_char_class(c, m, oc)
-   local xc = c or oc
-   local cls = ltjf_find_char_class(oc, m)
-   if xc ~= oc and  cls==0 then cls = ltjf_find_char_class(-xc, m) end
-   return cls, xc
+local slow_find_char_class
+do
+   slow_find_char_class = function (c, m, oc)
+      local cls = ltjf_find_char_class(oc, m)
+      if not c and  cls==0 then 
+        return ltjf_find_char_class(-c, m), oc
+      else
+        return cls, oc
+      end
+   end
 end
 
 local zero_glue = node_new(id_glue)
index 62ddad7..3d31a05 100644 (file)
@@ -38,7 +38,7 @@
 %%   Right brace   \}     Tilde         \~}
 \NeedsTeXFormat{LaTeX2e}
 \ProvidesClass{ltjsarticle}
-  [2014/03/28 ]
+  [2014/05/14 ]
 \RequirePackage{luatexja}
 \newif\if@restonecol
 \newif\if@titlepage
       \parindent=1\zw
     \fi
   \fi
-  \ltjsetparameter{kanjiskip={0\zw plus .1\zw minus .01\zw}}
-  \if@slide \ltjsetparameter{xkanjiskip={0.1em}} \else
-    \ltjsetparameter{xkanjiskip={0.25em plus 0.15em minus 0.06em}}
+  \ltj@setpar@global
+  \ltjsetkanjiskip{0pt plus .1\zw minus .01\zw}
+  \if@slide
+    \ltjsetxkanjiskip{0.1em}
+  \else
+    \ltjsetxkanjiskip{0.25em plus 0.15em minus 0.06em}
   \fi}
 \emergencystretch 3\zw
 \newif\ifnarrowbaselines
   \renewcommand\kanjifamilydefault{\gtdefault}
   \renewcommand\familydefault{\sfdefault}
   \raggedright
-  \ltjsetparameter{xkanjiskip={0.1em}}\relax
+  \ltj@setpar@global
+  \ltjsetxkanjiskip{0.1em}\relax
 \fi
 \endinput
 %%
index 813909f..4e3e12b 100644 (file)
@@ -38,7 +38,7 @@
 %%   Right brace   \}     Tilde         \~}
 \NeedsTeXFormat{LaTeX2e}
 \ProvidesClass{ltjsbook}
-  [2014/03/28 ]
+  [2014/05/14 ]
 \RequirePackage{luatexja}
 \newif\if@restonecol
 \newif\if@titlepage
       \parindent=1\zw
     \fi
   \fi
-  \ltjsetparameter{kanjiskip={0\zw plus .1\zw minus .01\zw}}
-  \if@slide \ltjsetparameter{xkanjiskip={0.1em}} \else
-    \ltjsetparameter{xkanjiskip={0.25em plus 0.15em minus 0.06em}}
+  \ltj@setpar@global
+  \ltjsetkanjiskip{0pt plus .1\zw minus .01\zw}
+  \if@slide
+    \ltjsetxkanjiskip{0.1em}
+  \else
+    \ltjsetxkanjiskip{0.25em plus 0.15em minus 0.06em}
   \fi}
 \emergencystretch 3\zw
 \newif\ifnarrowbaselines
   \renewcommand\kanjifamilydefault{\gtdefault}
   \renewcommand\familydefault{\sfdefault}
   \raggedright
-  \ltjsetparameter{xkanjiskip={0.1em}}\relax
+  \ltj@setpar@global
+  \ltjsetxkanjiskip{0.1em}\relax
 \fi
 \endinput
 %%
index 80b488c..6bff584 100644 (file)
@@ -22,7 +22,7 @@
 %  -----------------------------------------
 %
 % \fi
-% \CheckSum{5202}
+% \CheckSum{5203}
 %% \CharacterTable
 %%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
 %%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
@@ -50,7 +50,7 @@
 %<*driver>
 \ProvidesFile{ltjsclasses.dtx}
 %</driver>
-  [2014/03/28 ]
+  [2014/05/14 ]
 %<*driver>
 \documentclass{ltjsarticle}
 \usepackage{doc}
 %
 % [2008-02-18] |english| オプションで |\parindent| を 1em にしました。
 %
+% [2014-05-14 LTJ] |\ltjsetparameter|の実行は時間がかかるので,
+% |\ltjsetkanjiskip| と |\ltjsetxkanjiskip|(両者とも,
+% 実行前には |\ltj@setpar@global| の実行が必要)にしました.
+%
 %    \begin{macrocode}
 \def\@setfontsize#1#2#3{%
 % \@nomath#1%
       \parindent=1\zw
     \fi
   \fi
-  \ltjsetparameter{kanjiskip={0\zw plus .1\zw minus .01\zw}}
-  \if@slide \ltjsetparameter{xkanjiskip={0.1em}} \else
-    \ltjsetparameter{xkanjiskip={0.25em plus 0.15em minus 0.06em}}
+  \ltj@setpar@global
+  \ltjsetkanjiskip{0pt plus .1\zw minus .01\zw}
+  \if@slide 
+    \ltjsetxkanjiskip{0.1em} 
+  \else
+    \ltjsetxkanjiskip{0.25em plus 0.15em minus 0.06em}
   \fi}
 %    \end{macrocode}
 % \end{macro}
   \renewcommand\kanjifamilydefault{\gtdefault}
   \renewcommand\familydefault{\sfdefault}
   \raggedright
-  \ltjsetparameter{xkanjiskip={0.1em}}\relax
+  \ltj@setpar@global
+  \ltjsetxkanjiskip{0.1em}\relax
 \fi
 %    \end{macrocode}
 %
index 145d94b..1311dec 100644 (file)
@@ -38,7 +38,7 @@
 %%   Right brace   \}     Tilde         \~}
 \NeedsTeXFormat{LaTeX2e}
 \ProvidesClass{ltjskiyou}
-  [2014/03/28 ]
+  [2014/05/14 ]
 \RequirePackage{luatexja}
 \newif\if@restonecol
 \newif\if@titlepage
       \parindent=1\zw
     \fi
   \fi
-  \ltjsetparameter{kanjiskip={0\zw plus .1\zw minus .01\zw}}
-  \if@slide \ltjsetparameter{xkanjiskip={0.1em}} \else
-    \ltjsetparameter{xkanjiskip={0.25em plus 0.15em minus 0.06em}}
+  \ltj@setpar@global
+  \ltjsetkanjiskip{0pt plus .1\zw minus .01\zw}
+  \if@slide
+    \ltjsetxkanjiskip{0.1em}
+  \else
+    \ltjsetxkanjiskip{0.25em plus 0.15em minus 0.06em}
   \fi}
 \emergencystretch 3\zw
 \newif\ifnarrowbaselines
   \renewcommand\kanjifamilydefault{\gtdefault}
   \renewcommand\familydefault{\sfdefault}
   \raggedright
-  \ltjsetparameter{xkanjiskip={0.1em}}\relax
+  \ltj@setpar@global
+  \ltjsetxkanjiskip{0.1em}\relax
 \fi
 \endinput
 %%
index b56a234..fab8f0c 100644 (file)
@@ -38,7 +38,7 @@
 %%   Right brace   \}     Tilde         \~}
 \NeedsTeXFormat{LaTeX2e}
 \ProvidesClass{ltjspf}
-  [2014/03/28 ]
+  [2014/05/14 ]
 \RequirePackage{luatexja}
 \newif\if@restonecol
 \newif\if@titlepage
       \parindent=1\zw
     \fi
   \fi
-  \ltjsetparameter{kanjiskip={0\zw plus .1\zw minus .01\zw}}
-  \if@slide \ltjsetparameter{xkanjiskip={0.1em}} \else
-    \ltjsetparameter{xkanjiskip={0.25em plus 0.15em minus 0.06em}}
+  \ltj@setpar@global
+  \ltjsetkanjiskip{0pt plus .1\zw minus .01\zw}
+  \if@slide
+    \ltjsetxkanjiskip{0.1em}
+  \else
+    \ltjsetxkanjiskip{0.25em plus 0.15em minus 0.06em}
   \fi}
 \emergencystretch 3\zw
 \newif\ifnarrowbaselines
   \renewcommand\kanjifamilydefault{\gtdefault}
   \renewcommand\familydefault{\sfdefault}
   \raggedright
-  \ltjsetparameter{xkanjiskip={0.1em}}\relax
+  \ltj@setpar@global
+  \ltjsetxkanjiskip{0.1em}\relax
 \fi
 \endinput
 %%
index d0a4a47..9982ef8 100644 (file)
   \fi}
 
 % [x]]kanjiskip = <dimen>
-\define@key[ltj]{japaram}{kanjiskip}{%              % SKIP
+\define@key[ltj]{japaram}{kanjiskip}{\ltjsetkanjiskip{#1}}
+\define@key[ltj]{japaram}{xkanjiskip}{\ltjsetxkanjiskip{#1}}
+\protected\def\ltjsetkanjiskip#1{%                  % SKIP
   \directlua{%
     local d = \ltj@safe@glue{#1}
     luatexja.stack.set_stack_skip(luatexja.stack_table_index.KSK, d); node.free(d)
 }}
-\define@key[ltj]{japaram}{xkanjiskip}{%             % SKIP
+\protected\def\ltjsetxkanjiskip#1{%                  % SKIP
   \directlua{%
     local d = \ltj@safe@glue{#1}
     luatexja.stack.set_stack_skip(luatexja.stack_table_index.XSK, d); node.free(d)
 }}
 
+
 % jcharwidowpenalty = <count>
 \define@key[ltj]{japaram}{jcharwidowpenalty}{%      %COUNT
   \ltj@@set@stack0,#1:{JWP}{-10000}{10000}}
     \else\directlua{luatexja.isglobal=''}\fi
 }
 \protected\def\ltjsetparameter#1{%
-  \ltj@setpar@global\setkeys[ltj]{japaram}{#1}\ignorespaces}
+  \ltj@setpar@global\setkeys[ltj]{japaram}{#1}%
+  \ignorespaces}
 \protected\def\ltjglobalsetparameter#1{%
   \relax\ifnum\globaldefs<0\directlua{luatexja.isglobal=''}%
     \else\directlua{luatexja.isglobal='global'}\fi%
-  \setkeys[ltj]{japaram}{#1}\ignorespaces}
+  \setkeys[ltj]{japaram}{#1}%
+  \ignorespaces}
 
 %%%%%%%% \ltjgetparameter
 \def\ltj@@decl@array@param#1{%
   {\ltj@@getparam@one{#1}}%
 }
 \def\ltj@@getparam@one#1{%
-  \directlua{luatexja.ext_get_parameter_unary('#1')}}%
+  \directlua{luatexja.ext_get_parameter_unary('#1')}%
+}%
 \def\ltj@@getparam@two#1#2{%
   \directlua{luatexja.ext_get_parameter_binary('#1', \ltj@safe@num@or{nil}{#2})}%
 }
index 17a690e..2a87153 100644 (file)
 \newbox\adjust@box
 \newdimen\adjust@dimen
 \def\adjustbaseline{%
-    \setbox\adjust@box\hbox{\ltjsetparameter{yjabaselineshift=\z@}あ}%
+    \setbox\adjust@box\hbox{\ltj@ykblshift=0あ}%
     \cht\ht\adjust@box
     \cdp\dp\adjust@box
     \cwd\wd\adjust@box