X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=src%2Fltj-base.sty;h=717105e3a506ec91566d86114c4edb316b2d6e5f;hb=f1e6b8be4aac789e37d4390bf2cab1fcaaa910e6;hp=b8b7855476f113f7e37647456f84fec82f0dfe13;hpb=c070210761498be04e1929b25dd379de42f70c53;p=luatex-ja%2Fluatexja.git diff --git a/src/ltj-base.sty b/src/ltj-base.sty index b8b7855..717105e 100644 --- a/src/ltj-base.sty +++ b/src/ltj-base.sty @@ -13,7 +13,7 @@ \ifltj@in@latex %<*LaTeX> \NeedsTeXFormat{LaTeX2e} - \ProvidesPackage{ltj-base}[2013/05/14] + \ProvidesPackage{ltj-base}[2017/05/05] \fi % %%------------------ Tiny helpers @@ -85,12 +85,6 @@ #4 } -%% \ltj@burst-`>TEXT -%! トリックに使う \romannumeral をエイリアスしておく. -% Gets the head of TEXT expanded repeatedly until an unexpandable -% token is seen, and if the token is a space then it is gobbled. -\let\ltj@burst\romannumeral - %%------------------ LaTeX vs plain \ifltj@in@latex %<*LaTeX> @@ -140,50 +134,19 @@ %% \ltj@gobble@num %! 次に続く整数を(2 回展開で)読み捨てる. \def\ltj@gobble@num{ - \ltj@burst-`>\ltj@@gobble@num -} -\def\ltj@@gobble@num{ - \expandafter\ltj@@gobble@numA\the\parshapeindent -} -\begingroup - \lccode`8=`p\lccode`9=`t -\lowercase{\endgroup - \def\ltj@@gobble@numA#189{ } + \directlua{token.scan_int()} } %% \ltj@gobble@glue %! 次に続くグルー値を(2 回展開で)読み捨てる. -\def\ltj@gobble@glue{% - \ltj@burst-`>\ltj@@gobble@glue +\def\ltj@gobble@glue{ + \directlua{token.scan_glue()} } -\def\ltj@@gobble@glue{ - \expandafter\ltj@@gobble@glueA\the\glueshrinkorder -} -\def\ltj@@gobble@glueA#1{ } %% \ltj@gobble@dimen %! 次に続く寸法値を(2 回展開で)読み捨てる. -\def\ltj@gobble@dimen{% - \ltj@burst-`>\ltj@@gobble@dimen -} -\def\ltj@@gobble@dimen{ - \expandafter\ltj@@gobble@dimenA\the\glueshrinkorder - 0pt minus -} -\def\ltj@@gobble@dimenA#1{ } - -%% \ltj@@scan@brace -% This is to be followed by a macro with one argument; if the macro is -% followed by an open-group token (catcode 1), then it receives as the -% argument a token \bxnt@escape instead of the group initiated by the -% open-group, which is left untouched. -\def\ltj@@scan@brace{ - \directlua{luatexja.base.scan_brace()} -} - -%% \ltj@@scan@number -\def\ltj@@scan@number{ - \directlua{luatexja.base.scan_number()} +\def\ltj@gobble@dimen{ + \directlua{token.scan_dimen()} } %% \ltj@grab@num @@ -197,25 +160,7 @@ %! (command_name が "assign_int" であるトークン). %! (注意: まだ文字表記(`A)に対応していません.) \def\ltj@grab@num{ - \ltj@burst-`>\ltj@@grab@num -} -\def\ltj@@grab@num{ - \ltj@@scan@brace\ltj@@grab@numA -} -\def\ltj@@grab@numA#1{ - \ltj@ifx{#1\ltj@@q@escape}{}{%else - \ltj@@scan@number\ltj@@grab@numB#1 - } -} -\def\ltj@@grab@numB#1{ - \ltj@ifx{#1\ltj@@q@escape}{ - {0} - }{ - \ltj@@grab@numC - } -} -\def\ltj@@grab@numC#1\ltj@@q@escapenum{ - {#1} + \directlua{tex.sprint('{' .. token.scan_int() .. '}')} } %%------------------ Safe passing @@ -268,24 +213,6 @@ } } -%% \ltj@safe@glue{} -%! グルー値. -% For a glue. The result is a gluespec object. -\def\ltj@safe@glue{ - \ltj@safe@glue@or\ltj@safe@invalid -} -\def\ltj@safe@glue@or#1#2{ - \expandafter\expandafter\expandafter\ltj@@safe@glueA - \ltj@gobble@glue#2\ltj@@safe@end{#2}{#1} -} -\def\ltj@@safe@glueA#1\ltj@@safe@end#2#3{ - \ltj@if@blank{#1}{ - (luatexja.base.to_skip("\the\glueexpr#2\relax")) - }{ - #3 - } -} - %% \ltj@safe@real{} %! 実数. これは十進表記に限る. % For a real number given in decimal notation or a macro that @@ -520,16 +447,16 @@ luatexja.base._error_show(true)% and many spaces trail! \protected\def\ltj@afterbox#1{% \def\ltj@afb@xarg{#1}% \afterassignment\ltj@afb@x - \chardef\next`.} -\def\ltj@afb@x{\futurelet\next\ltj@afb@xtest} + \chardef\ltj@@next`.} +\def\ltj@afb@x{\futurelet\ltj@@next\ltj@afb@xtest} \def\ltj@afb@xtest{% - \ifcase\ifx\next\hbox\tw@\fi - \ifx\next\vbox\tw@\fi - \ifx\next\vtop\tw@\fi - \ifx\next\box\@ne\fi - \ifx\next\copy\@ne\fi - \ifx\next\vsplit\@ne\fi - \ifx\next\lastbox\@ne\fi + \ifcase\ifx\ltj@@next\hbox\tw@\fi + \ifx\ltj@@next\vbox\tw@\fi + \ifx\ltj@@next\vtop\tw@\fi + \ifx\ltj@@next\box\@ne\fi + \ifx\ltj@@next\copy\@ne\fi + \ifx\ltj@@next\vsplit\@ne\fi + \ifx\ltj@@next\lastbox\@ne\fi 0% ``A was ...'' error will be causes by \setbox later anyway. \or\afterassignment\ltj@afb@xarg \or\afterassignment\ltj@afb@xagarg