OSDN Git Service

lltjext.sty: \strutbox -> \ystrutbox
[luatex-ja/luatexja.git] / src / lltjext.sty
index b2d5f96..75ecb67 100644 (file)
@@ -3,7 +3,7 @@
 %
 
 \NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{lltjext}[2015/09/18 v1.2-ltj-4 Macros for vertical writing]
+\ProvidesPackage{lltjext}[2016/12/16 v1.2c-ltj-5 Macros for vertical writing]
 \RequirePackage{luatexja}
 
 {\catcode`\*=11
 \def\p@array<#1>[#2]#3{%
   \let\box@dir\relax
   \if #1z\relax
-    \ifnum\ltjgetparameter{direction}=3\relax
+    \ifnum\count@=3\relax
       \let\box@dir\utod\@tempcnta=\zstrutbox
     \fi
   \else
     \if #1y\relax
-       \let\box@dir\yoko\@tempcnta=\strutbox
+       \let\box@dir\yoko\@tempcnta=\ystrutbox
     \else\if #1t\relax
        \let\box@dir\tate\@tempcnta=\tstrutbox
     \else\if #1d\relax
@@ -54,7 +54,7 @@
     \ifcase\count@
        \or   \let\box@dir\dtou\@tempcnta=\dstrutbox% dtou
        \or\or\let\box@dir\tate\@tempcnta=\tstrutbox% tate
-       \or   \let\box@dir\yoko\@tempcnta=\strutbox% yoko
+       \or   \let\box@dir\yoko\@tempcnta=\ystrutbox% yoko
        \else \let\box@dir\utod\@tempcnta=\zstrutbox% utod
     \fi
   \fi
   \color@endgroup
   \egroup
   \expandafter\@iiiparbox\@mpargs{\unvbox\@tempboxa}\egroup}
-\def\parbox{\@ifnextchar<%>
+\DeclareRobustCommand\parbox{\@ifnextchar<%>
    {\X@parbox}{\X@parbox<Z>}}
 \def\X@parbox<#1>{\@ifnextchar[%]
    {\@iparbox<#1>}{\@iiiparbox<#1>{c}\relax[s]}}
 \def\@iiparbox<#1>#2[#3]{\@ifnextchar[%]%
    {\@iiiparbox<#1>{#2}{#3}}{\@iiiparbox<#1>{#2}{#3}[#2]}}
 \long\def\@iiiparbox<#1>#2#3[#4]#5#6{%
-  \leavevmode\bgroup
+  \leavevmode
   \setlength\@tempdima{#5}%
   \fork@parbox@option<#1>[#2]%
   \@begin@tempboxa\vbox{\box@dir
     \hsize\@tempdima\@parboxrestore\adjustbaseline#6\@@par}%
-    \ifx\relax#3\relax\else
+    \ifx\relax#3\else
       \setlength\@tempdimb{#3}%
       \edef\@parboxto{to\the\@tempdimb}%
     \fi
     \@begin@parbox\@parboxto{\box@dir\adjustbaseline
        \let\hss\vss\let\unhbox\unvbox
        \csname bm@#4\endcsname}\@end@parbox
-  \@end@tempboxa\egroup}
+  \@end@tempboxa}
 \def\fork@parbox@option<#1>[#2]{%
   \let\box@dir\relax
   \if #1z\relax
        \let\@begin@parbox\vbox
        \let\@end@parbox\relax
     \else
-      \def\@begin@parbox{$\vcenter}%
-      \def\@end@parbox{\m@th$}%
+      \ifmmode
+        \let\@begin@parbox\vcenter\let\@end@parbox\relax
+      \else
+        \def\@begin@parbox{\null$\vcenter}%
+        \def\@end@parbox{\m@th$\null}%
+      \fi
     \fi\fi
   \else
     \if #2t\relax
        \let\@begin@parbox\vbox
        \let\@end@parbox\relax
     \else
-      \def\@begin@parbox{$\vcenter}%
-      \def\@end@parbox{\m@th$}%
+      \ifmmode
+        \let\@begin@parbox\vcenter\let\@end@parbox\relax
+      \else
+        \def\@begin@parbox{\null$\vcenter}%
+        \def\@end@parbox{\m@th$\null}%
+      \fi
     \fi\fi
   \fi
 \else\ifnum\ltjgetparameter{direction}=1 % dtou
        \let\@begin@parbox\vbox
        \let\@end@parbox\relax
     \else
-      \def\@begin@parbox{$\vcenter}%
-      \def\@end@parbox{\m@th$}%
+      \ifmmode
+        \let\@begin@parbox\vcenter\let\@end@parbox\relax
+      \else
+        \def\@begin@parbox{\null$\vcenter}%
+        \def\@end@parbox{\m@th$\null}%
+      \fi
     \fi\fi
   \else\ifx\box@dir\dtou
     \if #2t\relax
        \let\@begin@parbox\vbox
        \let\@end@parbox\relax
     \else
-      \def\@begin@parbox{$\vcenter}%
-      \def\@end@parbox{\m@th$}%
+      \ifmmode
+        \let\@begin@parbox\vcenter\let\@end@parbox\relax
+      \else
+        \def\@begin@parbox{\null$\vcenter}%
+        \def\@end@parbox{\m@th$\null}%
+      \fi
     \fi\fi
   \else % 180 度回転→vtop, vbox を入れ替える
     \if #2t\relax
        \let\@begin@parbox\vtop %%% !!!
        \let\@end@parbox\relax
     \else
-      \def\@begin@parbox{$\vcenter}%
-      \def\@end@parbox{\m@th$}%
+      \ifmmode
+        \let\@begin@parbox\vcenter\let\@end@parbox\relax
+      \else
+        \def\@begin@parbox{\null$\vcenter}%
+        \def\@end@parbox{\m@th$\null}%
+      \fi
     \fi\fi
   \fi\fi
 \else % tate, utod
       \def\@begin@parbox{\vbox\bgroup\vbox}%
       \def\@end@parbox{\kern\z@\egroup}%
     \else
-      \def\@begin@parbox{$\vcenter}%
-      \def\@end@parbox{\m@th$}%
+      \ifmmode
+        \let\@begin@parbox\vcenter\let\@end@parbox\relax
+      \else
+        \def\@begin@parbox{\null$\vcenter}%
+        \def\@end@parbox{\m@th$\null}%
+      \fi
     \fi\fi
   \else\ifx\box@dir\dtou % 180 度回転→vtop, vbox を入れ替える
     \if #2t\relax
       \let\@begin@parbox\vtop %%% !!!
       \let\@end@parbox\relax
     \else
-      \def\@begin@parbox{$\vcenter}%
-      \def\@end@parbox{\m@th$}%
+      \ifmmode
+        \let\@begin@parbox\vcenter\let\@end@parbox\relax
+      \else
+        \def\@begin@parbox{\null$\vcenter}%
+        \def\@end@parbox{\m@th$\null}%
+      \fi
     \fi\fi
   \else
     \if #2t\relax
        \let\@begin@parbox\vbox
        \let\@end@parbox\relax
     \else
-      \def\@begin@parbox{$\vcenter}%
-      \def\@end@parbox{\m@th$}%
+      \ifmmode
+        \let\@begin@parbox\vcenter\let\@end@parbox\relax
+      \else
+        \def\@begin@parbox{\null$\vcenter}%
+        \def\@end@parbox{\m@th$\null}%
+      \fi
     \fi\fi
   \fi\fi
 \fi\fi%
 
 %%% kanji
 \def\Kanji#1{\expandafter\@Kanji\csname c@#1\endcsname}
-\def\@Kanji#1{\expandafter\kansuji\number #1}
+\def\@Kanji#1{\kansuji #1}
 \def\kanji{\ifnum\ltjgetparameter{direction}=3 \expandafter\kansuji\fi}
 
 %%% bou
 
 %%% references
 \def\@eqnnum{{\reset@font\rmfamily \normalcolor
-  \ifnum\ltjgetparameter{direction}=\raise.25\zh\hbox{\yoko(\theequation)}%
+  \ifnum\ltjgetparameter{direction}=11\raise.25\zh\hbox{\yoko(\theequation)}%
   \else (\theequation)\fi}}
 \def\@thecounter#1{\noexpand\rensuji{\noexpand\arabic{#1}}}
 \def\@thmcounter#1{\noexpand\rensuji{\noexpand\arabic{#1}}}
 %% Compatibility with array package
 
 \def\ltj@lltjext@patch@array{%
+  \patchcmd{\@tabular}{\hbox\bgroup}{%
+       \hbox\bgroup\count@=\ltjgetparameter{direction}}{}{}
   \def\@startpbox##1{\bgroup
    \box@dir\adjustbaseline%%% これを追加
    \hsize=##1\@arrayparboxrestore
   \def\p@array<##1>[##2]##3{%
     \let\box@dir\relax
     \if ##1z\relax
-      \ifnum\ltjgetparameter{direction}=3\relax
+      \ifnum\count@=3\relax
         \let\box@dir\utod\@tempcnta=\zstrutbox
       \fi
     \else
       \if ##1y\relax
-        \let\box@dir\yoko\@tempcnta=\strutbox
+        \let\box@dir\yoko\@tempcnta=\ystrutbox
       \else\if ##1t\relax
         \let\box@dir\tate\@tempcnta=\tstrutbox
       \else\if ##1d\relax
       \fi\fi\fi\fi
     \fi
     \ifx\box@dir\relax
-      \ifcase\ltjgetparameter{direction}
+      \ifcase\count@
          \or   \let\box@dir\dtou\@tempcnta=\tabskip \z@\tabskip \z@\dstrutbox% dtou
          \or\or\let\box@dir\tate\@tempcnta=\tstrutbox% tate
-         \or   \let\box@dir\yoko\@tempcnta=\strutbox% yoko
+         \or   \let\box@dir\yoko\@tempcnta=\ystrutbox% yoko
          \else \let\box@dir\utod\@tempcnta=\zstrutbox% utod
       \fi
     \fi
   \let\ltj@lltjext@orig@tabularS\relax
   \let\ltj@lltjext@orig@tabular\relax
   \let\ltj@lltjext@orig@array\relax
-  \RequirePackage{filehook}
+  \RequirePackage{filehook,etoolbox}
   \AtEndOfPackageFile{array}{\ltj@lltjext@patch@array}
 }