X-Git-Url: http://git.osdn.jp/view?a=blobdiff_plain;f=src%2Fluatexja-core.sty;h=53aa6665c508037ae5fc37dffecd2c24b0fdc18c;hb=b5ae2980b79b069dd439c80b784c10e1b4f86d2f;hp=c4c7fba143623354766772db8f44b5abc4e6c404;hpb=e4b0555f396230db9655d56c35a4f6e710c77ac6;p=luatex-ja%2Fluatexja.git diff --git a/src/luatexja-core.sty b/src/luatexja-core.sty index c4c7fba..53aa666 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}[2014/09/24 Core of LuaTeX-ja] + \ProvidesPackage{luatexja-core}[2015/02/22 Core of LuaTeX-ja] \fi % %% Load prerequisite packages. @@ -73,7 +73,7 @@ \newif\ifltj@everyhook@avail\ltj@everyhook@availfalse %! 外部パッケージは普通の \endlinechar で読まないと危険. \ifltj@in@latex %<*LaTeX> - \RequirePackage{luaotfload} [2013/05/10] % v2.2 + \RequirePackage{luaotfload} [2013/12/31] % v2.3 \RequirePackage{ltxcmds} [2011/11/09] % v1.22 \RequirePackage{pdftexcmds} [2011/11/29] % v0.20 \RequirePackage{xkeyval} [2012/10/14] % v2.6b @@ -177,6 +177,16 @@ "File `luatexja.lua' not found")) } + +%%% true if we can use [new]token.scan_int and co. +\newif\ifltj@token@avail@scan +\directlua{% + local bs = string.char(92) + if luatexja.token then tex.sprint(bs .. 'ltj@token@avail@scantrue') end + print (luatexja.token) +} + + %% \RequireLuaTeXjaSubmodule{name}[date] % A TeX version of luatexja.load_module(name) % The second optional argument [date] is simply ignored. @@ -295,6 +305,22 @@ \ltj@restore@globaldefs } +\ifltj@token@avail@scan %%%%%%%%%%%%%%%%%%%%%%%% new tokenlib +% {y,t}{ja,al}baselineshift = +% yjabaselineshift = +\define@key[ltj]{japaram}{yalbaselineshift}{ + \directlua{tex.setattribute(luatexja.isglobal, + luatexbase.attributes['ltj@yablshift'], luatexja.token.scan_dimen())}#1} +\define@key[ltj]{japaram}{yjabaselineshift}{ + \directlua{tex.setattribute(luatexja.isglobal, + luatexbase.attributes['ltj@ykblshift'], luatexja.token.scan_dimen())}#1} +\define@key[ltj]{japaram}{talbaselineshift}{ + \directlua{tex.setattribute(luatexja.isglobal, + luatexbase.attributes['ltj@tablshift'], luatexja.token.scan_dimen())}#1} +\define@key[ltj]{japaram}{tjabaselineshift}{ + \directlua{tex.setattribute(luatexja.isglobal, + luatexbase.attributes['ltj@tkblshift'], luatexja.token.scan_dimen())}#1} +\else %%%%%%%%%%%%%%%%%%%%%%%% old tokenlib % yalbaselineshift = % yjabaselineshift = \define@key[ltj]{japaram}{yalbaselineshift}{% @@ -315,6 +341,7 @@ \directlua{tex.setattribute(luatexja.isglobal, luatexbase.attributes['ltj@tkblshift'], \ltj@safe@dimen@or\ltj@defdimen{#1})}} +\fi %%%%%%%%%%%%%%%%%%%%%%%% % jaxspmode = {, } % mode: inhibit, preonly, postonly, allow @@ -362,19 +389,35 @@ \directlua{luatexja.ext_print_global()}\ltj@autoxspc=0 \fi} -% [x]]kanjiskip = -\define@key[ltj]{japaram}{kanjiskip}{\ltjsetkanjiskip{#1}} -\define@key[ltj]{japaram}{xkanjiskip}{\ltjsetxkanjiskip{#1}} -\protected\def\ltjsetkanjiskip#1{% % SKIP - \directlua{% - local d = \ltj@safe@glue{#1} - luatexja.stack.set_stack_skip(luatexja.stack_table_index.KSK, d); node.free(d) -}\ignorespaces} -\protected\def\ltjsetxkanjiskip#1{% % SKIP - \directlua{% - local d = \ltj@safe@glue{#1} - luatexja.stack.set_stack_skip(luatexja.stack_table_index.XSK, d); node.free(d) -}\ignorespaces} +% [x]]kanjiskip = +\ifltj@token@avail@scan %%%%%%%%%%%%%%%%%%%%%%%% new tokenlib + \define@key[ltj]{japaram}{kanjiskip}{\message{<#1>}\ltjsetkanjiskip #1} + \define@key[ltj]{japaram}{xkanjiskip}{\ltjsetxkanjiskip #1} + \protected\def\ltjsetkanjiskip{% % SKIP + \directlua{% + local d = luatexja.token.scan_glue() + luatexja.stack.set_stack_skip(luatexja.stack_table_index.KSK, d); node.free(d) + }} + \protected\def\ltjsetxkanjiskip{% % SKIP + \directlua{% + local d = luatexja.token.scan_glue() + luatexja.stack.set_stack_skip(luatexja.stack_table_index.XSK, d); node.free(d) + }} +\else %%%%%%%%%%%%%%%%%%%%%%%% old tokenlib + \define@key[ltj]{japaram}{kanjiskip}{\ltjsetkanjiskip{#1}} + \define@key[ltj]{japaram}{xkanjiskip}{\ltjsetxkanjiskip{#1}} + \protected\def\ltjsetkanjiskip#1{% % SKIP + \directlua{% + local d = \ltj@safe@glue{#1} + luatexja.stack.set_stack_skip(luatexja.stack_table_index.KSK, d); node.free(d) + }\ignorespaces} + \protected\def\ltjsetxkanjiskip#1{% % SKIP + \directlua{% + local d = \ltj@safe@glue{#1} + luatexja.stack.set_stack_skip(luatexja.stack_table_index.XSK, d); node.free(d) + }\ignorespaces} +\else +\fi %%%%%%%%%%%%%%%%%%%%%%%% % jcharwidowpenalty = @@ -673,18 +716,21 @@ } %%%%%%%% \ltjgetwd etc. +\ifltj@token@avail@scan %%%%%%%%%%%%%%%%%%%%%%%% new tokenlib +\def\ltj@@getwd{% + \directlua{luatexja.direction.get_box_dim('width', luatexja.token.scan_int())}} +\def\ltj@@getht{% + \directlua{luatexja.direction.get_box_dim('height', luatexja.token.scan_int())}} +\def\ltj@@getdp{% + \directlua{luatexja.direction.get_box_dim('depth', luatexja.token.scan_int())}} +\else %%%%%%%%%%%%%%%%%%%%%%%% old tokenlib \def\ltj@@getwd#1{% - \directlua{luatexja.direction.get_box_dim('width', \the\numexpr#1\relax)}% - \ltj@tempdima% -} + \directlua{luatexja.direction.get_box_dim('width', \the\numexpr#1\relax)}} \def\ltj@@getht#1{% - \directlua{luatexja.direction.get_box_dim('height', \the\numexpr#1\relax)}% - \ltj@tempdima% -} + \directlua{luatexja.direction.get_box_dim('height', \the\numexpr#1\relax)}} \def\ltj@@getdp#1{% - \directlua{luatexja.direction.get_box_dim('depth', \the\numexpr#1\relax)}% - \ltj@tempdima% -} + \directlua{luatexja.direction.get_box_dim('depth', \the\numexpr#1\relax)}} +\fi %%%%%%%%%%%%%%%%%%%%%%%% \let\ltjgetwd=\ltj@@getwd\let\ltjgetht=\ltj@@getht\let\ltjgetdp=\ltj@@getdp %%%%%%%% \ltjsetwd= etc.