OSDN Git Service

Merge branch 'master' into kitagawa_test
authorHironori Kitagawa <h_kitagawa2001@yahoo.co.jp>
Sat, 3 Dec 2011 13:23:27 +0000 (22:23 +0900)
committerHironori Kitagawa <h_kitagawa2001@yahoo.co.jp>
Sat, 3 Dec 2011 13:23:27 +0000 (22:23 +0900)
1  2 
src/luatexja-core.sty
src/luatexja/jfmglue.lua

diff --combined src/luatexja-core.sty
  \def\zw{\directlua{luatexja.jfont.load_zw()}\ltj@zw}
  \def\zh{\directlua{luatexja.jfont.load_zh()}\ltj@zh}
  
 +
  %%%%%%%% \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}}
  \let\new@everypar=\everypar
  \protected\def\inhibitglue{\relax%
    \ifvmode
 -    \directlua{ltj.global_temp = tex.globaldefs; tex.globaldefs = 0}% trick
 +    \ltj@reset@globaldefs
      \xdef\@@tempa{\the\everypar}%
      \xdef\@@tempb{\everypar={\@@tempa}\@@tempa\noexpand\ltj@@ihb}%
      \everypar\expandafter{\@@tempb}%
 -    \directlua{tex.globaldefs = ltj.global_temp}% trick
 +    \ltj@restore@globaldefs
    \else\ifhmode\ltj@@ihb\fi\fi}
  \def\ltj@@ihb{\directlua{luatexja.jfmglue.create_inhibitglue_node()}}
  
  \define@key[ltj]{japaram}{jascriptscriptfont}{%
    \expandafter\ltj@@set@stackfont#1:{mjss}}
  \def\ltj@@set@stackfont#1,#2:#3{%
 -  \directlua{%
 -    ltj.global_temp = tex.globaldefs; 
 -    tex.globaldefs = 0}%
 +  \ltj@reset@globaldefs
    \ltj@tempcnta=\ltj@curjfnt\ltj@curjfnt=-1 #2%
    \ifnum\ltj@curjfnt=-1
      \@PackageError{luatexja-core}%
      \ltj@safe@num@or\ltj@defnum{#1}, \the\ltj@curjfnt)}%
    \fi
    \ltj@curjfnt=\ltj@tempcnta
 -  \directlua{tex.globaldefs = ltj.global_temp}%
 +  \ltj@restore@globaldefs
    }
  
  % yalbaselineshift = <dimen>
  
  % jaxspmode = {<char_code>, <mode>}
  % mode: inhibit, preonly, postonly, allow
- %    or       0        2         1      3
+ %    or       0        1         2      3
  \define@key[ltj]{japaram}{jaxspmode}{%        \inhibitxspcode
    \expandafter\ltj@set@jaxspmode#1:\relax}
  \def\ltj@set@jaxspmode#1,#2:{%
    \lowercase{\edef\ltj@temp{#2}}%
    \def\ltj@tempa{inhibit}\ifx\ltj@temp\ltj@tempa\def\ltj@temp{0}\fi
-   \def\ltj@tempa{preonly}\ifx\ltj@temp\ltj@tempa\def\ltj@temp{2}\fi
-   \def\ltj@tempa{postonly}\ifx\ltj@temp\ltj@tempa\def\ltj@temp{1}\fi
+   \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', 
      \ltj@safe@num@or\ltj@defnum{#1},
      \csname ltj@kcat4\endcsname="7FFFFFFF %"
      \csname ltj@kcat5\endcsname="7FFFFFFF %"
      \csname ltj@kcat6\endcsname="7FFFFFFF }%"
 -\protected\def\ltj@backup@kcat{\edef\ltj@restore@kcat{%
 -    \csname ltj@kcat0\endcsname=\expandafter\the\csname ltj@kcat0\endcsname\relax
 -    \csname ltj@kcat1\endcsname=\expandafter\the\csname ltj@kcat1\endcsname\relax
 -    \csname ltj@kcat2\endcsname=\expandafter\the\csname ltj@kcat2\endcsname\relax
 -    \csname ltj@kcat3\endcsname=\expandafter\the\csname ltj@kcat3\endcsname\relax
 -    \csname ltj@kcat4\endcsname=\expandafter\the\csname ltj@kcat4\endcsname\relax
 -    \csname ltj@kcat5\endcsname=\expandafter\the\csname ltj@kcat5\endcsname\relax
 -    \csname ltj@kcat6\endcsname=\expandafter\the\csname ltj@kcat6\endcsname\relax}}
 -\let\ltj@restore@kcat=\relax
 -
 -\protected\def\ltjjachar{\afterassignment\ltj@@kchar\ltj@tempcnta}
 -\def\ltj@@kchar{{\directlua{tex.globaldefs = 0}\ltj@alljachar\ltj@@origchar\ltj@tempcnta}}
 -\protected\def\ltjalchar{\afterassignment\ltj@@achar\ltj@tempcnta}
 -\def\ltj@@achar{{\directlua{tex.globaldefs = 0}\ltj@allalchar\ltj@@origchar\ltj@tempcnta}}
  
 +\protected\def\ltjjachar{\afterassignment\ltj@@jachar\ltj@tempcnta}
 +\def\ltj@@jachar{{\directlua{tex.globaldefs = 0}\ltj@alljachar\ltj@@origchar\ltj@tempcnta}}
 +\protected\def\ltjalchar{\afterassignment\ltj@@alchar\ltj@tempcnta}
 +\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}}
  
  %%------------------ Load module for the format
  
diff --combined src/luatexja/jfmglue.lua
@@@ -332,8 -332,8 +332,8 @@@ local function set_np_xspc_jachar(x
        Np.lend = 0 
     end
     y = ltjs_get_penalty_table('xsp', x.char, 3, box_stack_level)
-    Np.xspc_before = (y>=2)
-    Np.xspc_after  = (y%2==1)
+    Np.xspc_before = (y%2==1)
+    Np.xspc_after  = (y>=2)
     Np.auto_kspc = (has_attr(x, attr_autospc)==1)
     Np.auto_xspc = (has_attr(x, attr_autoxspc)==1)
  end
@@@ -455,7 -455,7 +455,7 @@@ local function handle_penalty_normal(po
         if a<-10000 then a = -10000 elseif a>10000 then a = 10000 end
         p.penalty = a
         head = node_insert_before(head, Np.first, p)
 -       Bp[1] = p; set_attr(p, attr_icflag, KINSOKU)
 +       table_insert(Bp, p); set_attr(p, attr_icflag, KINSOKU)
        end
     else for i, v in pairs(Bp) do add_penalty(v,a) end
     end
@@@ -469,7 -469,7 +469,7 @@@ local function handle_penalty_always(po
         if a<-10000 then a = -10000 elseif a>10000 then a = 10000 end
         p.penalty = a
         head = node_insert_before(head, Np.first, p)
 -       Bp[1] = p; set_attr(p, attr_icflag, KINSOKU)
 +       table_insert(Bp, p); set_attr(p, attr_icflag, KINSOKU)
        end
     else for i, v in pairs(Bp) do add_penalty(v,a) end
     end
@@@ -481,7 -481,7 +481,7 @@@ local function handle_penalty_suppress(
        if g and g.id==id_glue then
         local p = node_new(id_penalty)
         p.penalty = 10000; head = node_insert_before(head, Np.first, p)
 -       Bp[1] = p; set_attr(p, attr_icflag, KINSOKU)
 +       table_insert(Bp, p); set_attr(p, attr_icflag, KINSOKU)
        end
     else for i, v in pairs(Bp) do add_penalty(v,a) end
     end