X-Git-Url: http://git.osdn.jp/view?a=blobdiff_plain;f=src%2Fluatexja-core.sty;h=fdbb74f094fd37859ec4e7739c1458c65c2a8ae1;hb=2a89ff80358ba323dd8d07585322e346d320cbbf;hp=f24ffe2bcd692cdcdca9987706b0f0aa46857b1e;hpb=1d0c8f37131709f8c0741bcd974a18ea8545a689;p=luatex-ja%2Fluatexja.git diff --git a/src/luatexja-core.sty b/src/luatexja-core.sty index f24ffe2..fdbb74f 100644 --- a/src/luatexja-core.sty +++ b/src/luatexja-core.sty @@ -138,11 +138,12 @@ \newcount\ltj@tempcntc \newdimen\ltj@tempdima \newskip\ltj@tempskipa +\newtoks\ltj@temptoks \newdimen\ltj@zw \newdimen\ltj@zh \newdimen\jQ \jQ=0.25mm -\newdimen\jH \jH=0.25mm +\let\jH=\jQ %%%%%%%% error message \def\ltj@defnum{0} @@ -183,12 +184,12 @@ \advance\ltj@tempcnta by1 \repeat + %%%%%%%% \asluastring \def\asluastring#1{'\luaescapestring{\detokenize{#1}}'} %%%%%%%% Redefine \/ -%\let\ltj@ic=\/ \protected\def\/{{\ltj@icflag=1\ltj@ic}} -\protected\def\/{\directlua{luatexja.jfont.append_italic()}} +\protected\def\/{\relax\directlua{luatexja.jfont.append_italic()}} %%%%%%%% \jfont\CS={...:...;jfm=metric;...}, \globaljfont \protected\def\jfont{\afterassignment\ltj@@jfont\directlua{luatexja.jfont.jfontdefX(false)}} @@ -196,19 +197,29 @@ \afterassignment\ltj@@jfont\directlua{luatexja.jfont.jfontdefX(true)}} \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} %%%%%%%% \inhibitglue -\protected\def\inhibitglue{\directlua{luatexja.jfmglue.create_inhibitglue_node()}} +\let\new@everypar=\everypar +\protected\def\inhibitglue{\relax% + \ifvmode + \directlua{ltj.global_temp = tex.globaldefs; tex.globaldefs = 0}% trick + \xdef\@@tempa{\the\everypar}% + \xdef\@@tempb{\everypar={\@@tempa}\@@tempa\noexpand\ltj@@ihb}% + \everypar\expandafter{\@@tempb}% + \directlua{tex.globaldefs = ltj.global_temp}% trick + \else\ifhmode\ltj@@ihb\fi\fi} +\def\ltj@@ihb{\directlua{luatexja.jfmglue.create_inhibitglue_node()}} %%%%%%%% \yoko, \tate, \ifydir, \iftdir %% At this moment, tategaki mode is not implemented; %% there is only yokogaki mode now. \let\yoko\relax \let\tate\relax -\let\ifydir\iftrue -\let\iftdir\iffalse +\newif\ifydir\ydirtrue +\newif\iftdir\tdirfalse %%%%%%%% \ltjdefcharrange{100-200,3000-,5000,...} \protected\def\ltjdefcharrange#1#2{% @@ -253,16 +264,21 @@ \define@key[ltj]{japaram}{jascriptscriptfont}{% \expandafter\ltj@@set@stackfont#1:{mjss}} \def\ltj@@set@stackfont#1,#2:#3{% - {\directlua{tex.globaldefs=0}\ltj@curjfnt=-1 #2% - \global\ltj@tempcnta=\ltj@curjfnt}% - \ifnum\ltj@tempcnta=-1 + \directlua{% + ltj.global_temp = tex.globaldefs; + tex.globaldefs = 0}% + \ltj@tempcnta=\ltj@curjfnt\ltj@curjfnt=-1 #2% + \ifnum\ltj@curjfnt=-1 \@PackageError{luatexja-core}% {\string#2 is not a control sequence that represents \MessageBreak a Japanese font}{}% \else \directlua{luatexja.stack.set_stack_font(ltj.isglobal, \asluastring{#3}, - \ltj@safe@num@or\ltj@defnum{#1}, \the\ltj@tempcnta)}% - \fi} + \ltj@safe@num@or\ltj@defnum{#1}, \the\ltj@curjfnt)}% + \fi + \ltj@curjfnt=\ltj@tempcnta + \directlua{tex.globaldefs = ltj.global_temp}% + } % yalbaselineshift = % yjabaselineshift = @@ -277,14 +293,14 @@ % jaxspmode = {, } % 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}, @@ -363,7 +379,7 @@ \ifnum\globaldefs<0\directlua{ltj.isglobal=''}\else\directlua{ltj.isglobal='global'}\fi \setkeys[ltj]{japaram}{#1}\ignorespaces} -%%%%%%%% +%%%%%%%% \ltjgetparameter \def\ltj@@decl@array@param#1{% \expandafter\let\csname ltj@@array@param/#1\endcsname=t% } @@ -389,16 +405,40 @@ \directlua{ltj.ext_get_parameter_binary('#1', \ltj@safe@num{#2})}% } +%%%%%%%% \ltjalchar, \ltjjachar +\let\ltj@@origchar=\char +\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 } +\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 }%" +\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}} -%\def\ltj@temp{plain} -%\ifx\fmtname\ltj@temp -% \message{plain format: loading luatexja-plain.tex} -%\fi -%\input luatexja-plain.tex -%\catcode`\@=12 -%\endinput -%! ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑ %%------------------ Load module for the format