X-Git-Url: http://git.osdn.jp/view?a=blobdiff_plain;f=src%2Fluatexja-core.sty;h=ba13695352b1da54cc9a4bf5a691c94d04d5bec5;hb=f078ac2f7998a102c7ec765e725f2269eed9f872;hp=a0bc9243704796af1b423d06ef19afc930e8ce2e;hpb=80e37ef928e8209f28545b964442725cc017b75d;p=luatex-ja%2Fluatexja.git diff --git a/src/luatexja-core.sty b/src/luatexja-core.sty index a0bc924..ba13695 100644 --- a/src/luatexja-core.sty +++ b/src/luatexja-core.sty @@ -65,7 +65,7 @@ \expandafter\let\csname ifltj@in@latex\expandafter\endcsname \csname iftrue\endcsname \NeedsTeXFormat{LaTeX2e} - \ProvidesPackage{luatexja-core}[2016/05/15 Core of LuaTeX-ja] + \ProvidesPackage{luatexja-core}[2017/11/12 Core of LuaTeX-ja] \fi % %% Load prerequisite packages. @@ -79,6 +79,8 @@ \RequirePackage{pdftexcmds} [2011/11/29] % v0.20 \RequirePackage{xkeyval} [2012/10/14] % v2.6b \RequirePackage{atbegshi} + \RequirePackage{etoolbox} + \AtBeginShipoutInit \IfFileExists{everyhook.sty}{\RequirePackage{everyhook}\ltj@everyhook@availtrue}{} \else %<*!LaTeX> \input luatexbase.sty @@ -99,10 +101,10 @@ \expandafter\endinput\fi\relax %% Check LuaTeX version. -\ifnum\luatexversion<85 +\ifnum\luatexversion<100 \@PackageError{luatexja-core} {This LuaTeX engine is too old for this package;\MessageBreak - at least beta-0.85.0 is needed} + at least 1.0.0 is needed} {Package loading is aborted now.\MessageBreak} \expandafter\endinput\fi\relax @@ -135,7 +137,6 @@ \newattribute\ltj@icflag % attribute for italic correction \newattribute\ltj@curjfnt % index for ``current horizontal Japanese font'' \newattribute\ltj@curtfnt % index for ``current vertical Japanese font'' -\newattribute\ltj@origchar % \newattribute\ltj@charclass % \newattribute\ltj@charcode % \newattribute\ltj@autospc % attribute for autospacing @@ -145,12 +146,12 @@ \newattribute\ltj@tablshift % attribute for talbaselineshift \newattribute\ltj@tkblshift % attribute for tjabaselineshift \newattribute\jfam % index for current jfam +\newattribute\ltj@vert@ori % <=0: UAX#50, >0: always upright \newattribute\ltj@dir \newlanguage\ltj@@japanese \ltj@dir\z@ \ltj@icflag\z@ -\ltj@origchar\z@ \ltj@charclass\z@ \ltj@curjfnt\m@ne \ltj@curtfnt\m@ne @@ -189,7 +190,7 @@ %%%%%%%% Load all sub-packages. \ifltj@in@latex %<*LaTeX> - \RequirePackage{ltj-base} [2016/05/15] + \RequirePackage{ltj-base} \else %<*!LaTeX> \input ltj-base.sty % \fi % @@ -420,10 +421,10 @@ \define@key[ltj]{japaram}{jacharrange}{\expandafter\ltj@@scrange#1,,} \def\ltj@@scrange#1,{% \edef\ltj@temp{#1}% - \ifx\ltj@temp\empty\let\next=\relax\else\let\next=\ltj@@scrange + \ifx\ltj@temp\empty\let\ltj@@next=\relax\else\let\ltj@@next=\ltj@@scrange \directlua{luatexja.charrange.toggle_char_range(% luatexja.is_global,\ltj@safe@num@or{nil}{#1})}% - \fi\next + \fi\ltj@@next } \protected\def\ltj@setpar@global{% @@ -475,14 +476,20 @@ %%%%%%%% \ltjalchar, \ltjjachar \let\ltj@@origchar=\char -\protected\def\ltj@alljachar{\relax - \csname ltj@kcat0\endcsname\z@ - \csname ltj@kcat1\endcsname\z@ - \csname ltj@kcat2\endcsname\z@ - \csname ltj@kcat3\endcsname\z@ - \csname ltj@kcat4\endcsname\z@ - \csname ltj@kcat5\endcsname\z@ - \csname ltj@kcat6\endcsname\z@} +\newluafunction\ltj@alljachar@inner +\directlua{ + local t, set_attr = lua.get_functions_table(), tex.setattribute + local get_attr, floor = tex.getattribute, math.floor + local attr_curjfnt = luatexbase.attributes['ltj@curjfnt'] + local lang_ja = luatexja.lang_ja + t[\the\ltj@alljachar@inner] = function() + font.current(get_attr(attr_curjfnt)); tex.language=lang_ja; + for i=0,6 do + set_attr(luatexbase.attributes['ltj@kcat' .. floor(i)],0) + end + end +} +\protected\def\ltj@alljachar{\luafunction\ltj@alljachar@inner} \protected\def\ltj@allalchar{\relax \csname ltj@kcat0\endcsname="7FFFFFFF %" \csname ltj@kcat1\endcsname="7FFFFFFF %" @@ -572,7 +579,7 @@ \let\orig@insert=\insert \protected\def\insert{\begingroup\afterassignment\ltj@@insert@A\ltj@tempcnta} \protected\def\ltj@@insert@A{\orig@insert\ltj@tempcnta\bgroup - \aftergroup\ltj@@insert@B\let\next} + \aftergroup\ltj@@insert@B\let\ltj@@next} \protected\def\ltj@@insert@B{\directlua{luatexja.direction.populate_insertion_dir_whatsit()}\endgroup} %%%% vadjust @@ -580,7 +587,7 @@ \protected\def\vadjust{% \ltj@@orig@vadjust\bgroup \directlua{luatexja.direction.set_list_direction_hook('adj')}% - \aftergroup\ltj@@vadjust@check@dir\let\next} + \aftergroup\ltj@@vadjust@check@dir\let\ltj@@next} \protected\def\ltj@@vadjust@check@dir{% \directlua{luatexja.direction.check_adjust_direction()}% } @@ -714,7 +721,7 @@ %%------------------ Load module for the format \ifltj@in@latex %<*LaTeX> - \RequirePackage{ltj-latex}[2016/05/15] + \RequirePackage{ltj-latex} \else\ifltj@in@plain %<*plain> \input ltj-plain.sty % \fi\fi %