OSDN Git Service

luatexja-core.sty: Redefined \un{h,v}copy.
[luatex-ja/luatexja.git] / src / luatexja-core.sty
index f45b5ac..76b5fe5 100644 (file)
   \directlua{% This value depends on the version of LuaTeX.
     luatexja.stack.hmode = -tex.nest[tex.nest.ptr].mode
   }%
+  $\directlua{% This value depends on the version of LuaTeX.
+    luatexja.stack.mmode = -tex.nest[tex.nest.ptr].mode
+  }$% 
 }
 \setbox0\vbox{%
   \directlua{% This value depends on the version of LuaTeX.
 \def\ltj@@getjfontnumber#1{% result in \ltj@tempcntc 
   \ltj@reset@globaldefs
   \begingroup\ltj@curjfnt=-1 \ltj@curtfnt=-1\relax
-  #1\directlua{luatexja.__temp = -\the\ltj@curjfnt*\the\ltj@curtfnt}\endgroup
+  #1\directlua{luatexja.__temp = -(\the\ltj@curjfnt)*(\the\ltj@curtfnt)}\endgroup
   \ltj@tempcntc=\directlua{tex.sprint(luatexja.__temp)}\relax
   \ifnum\ltj@tempcntc=-1
     \@PackageError{luatexja-core}%
 \protected\def\dtou{%
   \directlua{luatexja.direction.set_list_direction(1, 'dtou')}%
 }
+\protected\def\utod{% 「縦数式ディレクション」
+  \directlua{luatexja.direction.set_list_direction(11, 'utod')}%
+}
 \define@key[ltj]{japaram}{direction}{%% always local
   \directlua{luatexja.direction.set_list_direction(1, 'ltjsetparameter')}%
 }
   \directlua{luatexja.direction.check_adjust_direction()}%
 }
 
-%%%% hbox, vbox, vtop
+%%%% \hbox, \vbox, \vtop
 \everyhbox{%
   \directlua{luatexja.direction.set_list_direction()}%
   \aftergroup\ltj@@reset@badness
   }%
 }
 
+%%%% \raise, \lower, \moveleft, \moveright
+\let\ltj@@orig@raise=\raise
+\let\ltj@@orig@lower=\lower
+\protected\def\raise{\ltj@reset@globaldefs\afterassignment\ltj@@raise\ltj@tempdima}
+\protected\def\lower{\ltj@reset@globaldefs\afterassignment\ltj@@raise\ltj@tempdima-}
+\protected\def\ltj@@raise{%
+  \ltj@restore@globaldefs
+  \edef\ltj@@raise@a{%
+    \noexpand\directlua{luatexja.direction.raise_box()}%
+    \ltj@@orig@raise\the\ltj@tempdima\noexpand\box\ltj@afbox
+  }\ltj@afterbox\ltj@@raise@a}
+\let\ltj@@orig@moveleft=\moveleft
+\let\ltj@@orig@moveright=\moveright
+\protected\def\moveleft{\ltj@reset@globaldefs\afterassignment\ltj@@moveleft\ltj@tempdima}
+\protected\def\moveright{\ltj@reset@globaldefs\afterassignment\ltj@@moveleft\ltj@tempdima-}
+\protected\def\ltj@@moveleft{%
+  \ltj@restore@globaldefs
+  \edef\ltj@@moveleft@a{%
+    \noexpand\directlua{luatexja.direction.raise_box()}%
+    \ltj@@orig@moveleft\the\ltj@tempdima\noexpand\box\ltj@afbox
+  }\ltj@afterbox\ltj@@moveleft@a}
+
+%%%% \vcenter
+\let\ltj@@orig@vcenter=\vcenter
+\protected\def\vcenter{\ltj@afterbox\ltj@@vcenter\vbox}
+\protected\def\ltj@@vcenter{%
+  \directlua{luatexja.direction.raise_box()}%
+  \ltj@@orig@vcenter{\box\ltj@afbox}%
+}
 
-%%%% unhbox and unvbox
+%%%% \unhbox and \unvbox
 \let\ltj@@orig@unhbox=\unhbox
 \let\ltj@@orig@unvbox=\unvbox
 \protected\def\unhbox{\ltj@reset@globaldefs\afterassignment\ltj@@unhbox\ltj@tempcnta}
 \protected\def\ltj@@unvbox{%
   \directlua{luatexja.direction.check_dir(\the\ltj@tempcnta)}%
   \ltj@@orig@unvbox\ltj@tempcnta}
+\let\ltj@@orig@unhcopy=\unhcopy
+\let\ltj@@orig@unvcopy=\unvcopy
+\protected\def\unhcopy{\ltj@reset@globaldefs\afterassignment\ltj@@unhcopy\ltj@tempcnta}
+\protected\def\unvcopy{\ltj@reset@globaldefs\afterassignment\ltj@@unvcopy\ltj@tempcnta}
+\protected\def\ltj@@unhcopy{%
+  \directlua{luatexja.direction.check_dir(\the\ltj@tempcnta)}%
+  \ltj@@orig@unhcopy\ltj@tempcnta}
+\protected\def\ltj@@unvcopy{%
+  \directlua{luatexja.direction.check_dir(\the\ltj@tempcnta)}%
+  \ltj@@orig@unvcopy\ltj@tempcnta}
 
 
 %%%% lastbox