\expandafter\let\csname ifltj@in@latex\expandafter\endcsname
\csname iftrue\endcsname
\NeedsTeXFormat{LaTeX2e}
- \ProvidesPackage{luatexja-core}[2015/10/12 Core of LuaTeX-ja]
+ \ProvidesPackage{luatexja-core}[2016/03/03 Core of LuaTeX-ja]
\fi %</LaTeX>
%% Load prerequisite packages.
\newif\ifltj@everyhook@avail\ltj@everyhook@availfalse
%! 外部パッケージは普通の \endlinechar で読まないと危険.
\ifltj@in@latex %<*LaTeX>
+ \RequirePackage{luatexbase}
\RequirePackage{luaotfload} [2013/12/31] % v2.3
\RequirePackage{ltxcmds} [2011/11/09] % v1.22
\RequirePackage{pdftexcmds} [2011/11/29] % v0.20
\RequirePackage{atbegshi}
\IfFileExists{everyhook.sty}{\RequirePackage{everyhook}\ltj@everyhook@availtrue}{}
\else %<*!LaTeX>
+ \input luatexbase.sty
\input luaotfload.sty
\input ltxcmds.sty
\input pdftexcmds.sty
%! ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
% LuaTeX-ja core TeX source
-\catcode"FFFFF=14 %"
+\newcount\ltjlineendcomment
+\ltjlineendcomment="FFFFF
+\catcode\ltjlineendcomment=14 %"
\def\ltj@loaded{hoge}
\def\ltj@defdimen{0}
%%%%%%%% Attributes for Japanese typesetting.
-\newluatexattribute\ltj@icflag % attribute for italic correction
-\newluatexattribute\ltj@curjfnt % index for ``current horizontal Japanese font''
-\newluatexattribute\ltj@curtfnt % index for ``current vertical Japanese font''
-\newluatexattribute\ltj@origchar %
-\newluatexattribute\ltj@charclass %
-\newluatexattribute\ltj@charcode %
-\newluatexattribute\ltj@autospc % attribute for autospacing
-\newluatexattribute\ltj@autoxspc % attribute for autoxspacing
-\newluatexattribute\ltj@yablshift % attribute for yalbaselineshift
-\newluatexattribute\ltj@ykblshift % attribute for yjabaselineshift
-\newluatexattribute\ltj@tablshift % attribute for talbaselineshift
-\newluatexattribute\ltj@tkblshift % attribute for tjabaselineshift
-\newluatexattribute\jfam % index for current jfam
-
-\newluatexattribute\ltj@dir
+\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
+\newattribute\ltj@autoxspc % attribute for autoxspacing
+\newattribute\ltj@yablshift % attribute for yalbaselineshift
+\newattribute\ltj@ykblshift % attribute for yjabaselineshift
+\newattribute\ltj@tablshift % attribute for talbaselineshift
+\newattribute\ltj@tkblshift % attribute for tjabaselineshift
+\newattribute\jfam % index for current jfam
+
+\newattribute\ltj@dir
\newlanguage\ltj@@japanese
\ltj@dir\z@
\ltj@icflag\z@
\newcount\ltj@tempcnta
\ltj@tempcnta\z@
\loop\ifnum\ltj@tempcnta<7
- \expandafter\newluatexattribute%
+ \expandafter\newattribute%
\csname ltj@kcat\the\ltj@tempcnta\endcsname
\csname ltj@kcat\the\ltj@tempcnta\endcsname=0
\advance\ltj@tempcnta\@ne
\def\RequireLuaTeXjaSubmodule#1{%
\@ifnextchar[{\ltj@requirelua@submod{#1}}{\ltj@requirelua@submod{#1}[]}}
\def\ltj@requirelua@submod#1[#2]{%
- \directlua{luatexja.load_module(
- "\luatexluaescapestring{#1}")}}
+ \directlua{luatexja.load_module("\luatexluaescapestring{#1}")}}
%%%%%%%% Load all sub-packages.
t[\the\ltj@zh@inner] = function() setdimen('ltj@zh', ltjf.get_zh()) end
}
\protected\def\zw{\luafunction\ltj@zw@inner\ltj@zw}
- \protected\def\zh{\luafuntcion\ltj@zh@inner\ltj@zh}
+ \protected\def\zh{\luafunction\ltj@zh@inner\ltj@zh}
\else
\protected\def\zw{\directlua{tex.setdimen('ltj@zw', luatexja.jfont.get_zw())}\ltj@zw}
\protected\def\zh{\directlua{tex.setdimen('ltj@zh', luatexja.jfont.get_zh())}\ltj@zh}
\fi}
% [x]]kanjiskip = <skip>
- \define@key[ltj]{japaram}{kanjiskip}{\ltjsetkanjiskip#1}
- \define@key[ltj]{japaram}{xkanjiskip}{\ltjsetxkanjiskip#1}
+\define@key[ltj]{japaram}{kanjiskip}{\ltjsetkanjiskip#1}
+\define@key[ltj]{japaram}{xkanjiskip}{\ltjsetxkanjiskip#1}
+\ifdefined\newluafunction
+ \newluafunction\ltjsetkanjiskip@inner
+ \newluafunction\ltjsetxkanjiskip@inner
+ \directlua{
+ local t, scan_glue = lua.get_functions_table(), luatexja.token.scan_glue
+ local sss, sti = luatexja.stack.set_stack_skip, luatexja.stack_table_index
+ t[\the\ltjsetkanjiskip@inner] = function()
+ local d = scan_glue(); sss(sti.KSK, d); node.free(d)
+ end
+ t[\the\ltjsetxkanjiskip@inner] = function()
+ local d = scan_glue(); sss(sti.XSK, d); node.free(d)
+ end
+ }
+ \protected\def\ltjsetkanjiskip{\luafunction\ltjsetkanjiskip@inner}
+ \protected\def\ltjsetxkanjiskip{\luafunction\ltjsetxkanjiskip@inner}
+\else
\protected\def\ltjsetkanjiskip{% % SKIP
\directlua{%
local d = luatexja.token.scan_glue()
local d = luatexja.token.scan_glue()
luatexja.stack.set_stack_skip(luatexja.stack_table_index.XSK, d); node.free(d)
}}
-
+\fi
% jcharwidowpenalty = <count>
\define@key[ltj]{japaram}{jcharwidowpenalty}{% %COUNT
\ltj@@set@stack{JWP}{-10000}{10000}\z@#1 }
%%%% \hbox, \vbox, \vtop
\setbox\z@\hbox{%
+ \primitive\everymath{}
$\directlua{% This value depends on the version of LuaTeX.
- luatexja.stack.mmode = -tex.nest[tex.nest.ptr].mode
+ luatexja.stack.mmode = -tex.nest[tex.nest.ptr].mode
}$%
}
\setbox\z@\box\voidb@x
\ifdefined\newluafunction
\newluafunction\ltj@@box@dirhook
\directlua{
- local t, ltjd = lua.get_functions_table()m luatexja.direction
+ local t, ltjd = lua.get_functions_table(), luatexja.direction
t[\the\ltj@@box@dirhook]
= function() ltjd.set_list_direction_hook() end
}
\input ltj-plain.sty %
\fi\fi %</LaTeX|plain>
-\newluatexcatcodetable\ltj@temp@cctb
+\newcatcodetable\ltj@temp@cctb
\def\ltj@overwrite@catcodetable#1{%
\setluatexcatcodetable\ltj@temp@cctb{\luatexcatcodetable#1}%
- \setluatexcatcodetable#1{\luatexcatcodetable\ltj@temp@cctb\catcode"FFFFF=14}%"
+ \setluatexcatcodetable#1{\luatexcatcodetable\ltj@temp@cctb\catcode\ltjlineendcomment=14}%"
}
\ltj@overwrite@catcodetable\CatcodeTableLaTeX
\ltj@overwrite@catcodetable\CatcodeTableLaTeXAtLetter