\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},
\directlua{ltj.ext_get_parameter_binary('#1', \ltj@safe@num{#2})}%
}
-%%%%%%%% \achar<number>, \kchar<number>
+%%%%%%%% \ltjalchar<number>, \ltjjachar<number>
\let\ltj@@origchar=\char
-\protected\def\kchar{\afterassignment\ltj@@kchar\ltj@tempcnta}
-\def\ltj@@kchar{{%
+\protected\def\ltj@alljachar{\relax
\csname ltj@kcat0\endcsname=0
\csname ltj@kcat1\endcsname=0
\csname ltj@kcat2\endcsname=0
\csname ltj@kcat3\endcsname=0
\csname ltj@kcat4\endcsname=0
\csname ltj@kcat5\endcsname=0
- \csname ltj@kcat6\endcsname=0
- \ltj@@origchar\ltj@tempcnta}}
-\protected\def\achar{\afterassignment\ltj@@achar\ltj@tempcnta}
-\def\ltj@@achar{{%
+ \csname ltj@kcat6\endcsname=0 }
+\protected\def\ltj@allalchar{\relax
\csname ltj@kcat0\endcsname="7FFFFFFF %"
\csname ltj@kcat1\endcsname="7FFFFFFF %"
\csname ltj@kcat2\endcsname="7FFFFFFF %"
\csname ltj@kcat3\endcsname="7FFFFFFF %"
\csname ltj@kcat4\endcsname="7FFFFFFF %"
\csname ltj@kcat5\endcsname="7FFFFFFF %"
- \csname ltj@kcat6\endcsname="7FFFFFFF %"
- \ltj@@origchar\ltj@tempcnta}}
-
+ \csname ltj@kcat6\endcsname="7FFFFFFF }%"
+\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