OSDN Git Service

\vadjust pre
[luatex-ja/luatexja.git] / src / luatexja-core.sty
index 4d21bcf..cc49fbd 100644 (file)
@@ -65,7 +65,7 @@
   \expandafter\let\csname ifltj@in@latex\expandafter\endcsname
     \csname iftrue\endcsname
   \NeedsTeXFormat{LaTeX2e}
-  \ProvidesPackage{luatexja-core}[2021-05-11 Core of LuaTeX-ja]
+  \ProvidesPackage{luatexja-core}[2022-01-12 Core of LuaTeX-ja]
 \fi                             %</LaTeX>
 
 %% Load prerequisite packages.
   end
 }
 \begingroup\catcode`\/=11
+\global\let\ltj@@orig@/=\/
 \protected\gdef\ltj@@/{\relax\luafunction\ltj@@italic@inner}
 \global\let\/\ltj@@/ %% PRIMITIVE
 \endgroup
 
 %%%% vadjust
 \let\ltj@@orig@vadjust\vadjust
-\protected\def\ltj@@vadjust{%
-  \ltj@@orig@vadjust\bgroup
-  \directlua{luatexja.direction.set_list_direction_hook('adj')}%
+\newluafunction\ltj@@vadjust@begin@inner
+\newluafunction\ltj@@vadjust@dirhook@inner
+\newluafunction\ltj@@vadjust@check@dir@inner
+\directlua{
+  local t = lua.get_functions_table()
+  t[\the\ltj@@vadjust@begin@inner] = luatexja.direction.adjust_begin
+  t[\the\ltj@@vadjust@dirhook@inner]
+    = function () luatexja.direction.set_list_direction_hook('adj') end
+  t[\the\ltj@@vadjust@check@dir@inner] = luatexja.direction.check_adjust_direction
+}
+\protected\luadef\ltj@@vadjust\ltj@@vadjust@begin@inner
+\luadef\ltj@@vadjust@dirhook\ltj@@vadjust@dirhook@inner
+\protected\luadef\ltj@@vadjust@check@dir\ltj@@vadjust@check@dir@inner
+\def\ltj@@vadjust@pre{\ltj@@orig@vadjust pre\bgroup\ltj@@vadjust@dirhook
+  \aftergroup\ltj@@vadjust@check@dir\let\ltj@@next}
+\def\ltj@@vadjust@post{\ltj@@orig@vadjust\bgroup\ltj@@vadjust@dirhook
   \aftergroup\ltj@@vadjust@check@dir\let\ltj@@next}
 \let\vadjust\ltj@@vadjust %% PRIMITIVE
-\protected\def\ltj@@vadjust@check@dir{%
-  \directlua{luatexja.direction.check_adjust_direction()}%
-}
 
 %%%% \hbox, \vbox, \vtop
 \setbox\z@\hbox{%