OSDN Git Service

Set "last update date" of (almost) all packages to 2017/05/05.
[luatex-ja/luatexja.git] / src / lltjext.sty
index 563d6f7..cc8f8a4 100644 (file)
@@ -3,7 +3,7 @@
 %
 
 \NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{lltjext}[2017/04/06 v1.2f-ltj-5 Macros for vertical writing]
+\ProvidesPackage{lltjext}[2017/05/05 v1.2g-ltj-5 Macros for vertical writing]
 \RequirePackage{luatexja}
 
 {\catcode`\*=11
 % \begin{itemize}
 % \item 周囲の組方向が横組かつ組方向が|<y>|, |<z>|指定の場合
 % \begin{itemize}
-%   \item |[t]|指定のとき\\一行目のベースラインが周囲のそれと一致(罫線の場合は和文ベースラインの位置)
-%   \item |[c]|指定のとき\\表組の中心が周囲の数式軸を通る(欧文ベースラインシフトの影響下)
-%   \item |[b]|指定のとき\\最終行のベースラインが周囲のそれと一致(罫線の場合は和文ベースラインの位置)
+%   \item |[t]|指定のとき\\一行目のベースラインが周囲のそれと一致(罫線の場合は和文ベースラインの位置)
+%   \item |[c]|指定のとき\\表組の中心が周囲の数式軸を通る(欧文ベースラインシフトの影響下)
+%   \item |[b]|指定のとき\\最終行のベースラインが周囲のそれと一致(罫線の場合は和文ベースラインの位置)
 % \end{itemize}
 % \item 周囲の組方向が横組かつ組方向が|<t>|指定の場合
 % \begin{itemize}
-%   \item |[t]|指定のとき\\箱の上端が周囲の和文文字の高さと一致
-%   \item |[c]|指定のとき\\表組の中心が周囲の数式軸を通る(欧文ベースラインシフトの影響下)
-%   \item |[b]|指定のとき\\箱の下端が周囲の和文文字の深さと一致
+%   \item |[t]|指定のとき\\表組の上端が周囲の和文ベースラインと一致
+%   \item |[c]|指定のとき\\表組の中心が周囲の数式軸を通る(欧文ベースラインシフトの影響下)
+%   \item |[b]|指定のとき\\表組の下端が周囲の和文ベースラインと一致
 % \end{itemize}
 % \item 周囲の組方向が縦組かつ組方向が|<y>|指定の場合
 % \begin{itemize}
-%   \item |[t]|指定のとき\\箱の上端が周囲の和文文字の高さと一致
-%   \item |[c]|指定のとき\\表組の中心が周囲の数式軸を通る(欧文ベースラインシフトの影響下)
-%   \item |[b]|指定のとき\\箱の下端が周囲の和文文字の深さと一致
+%   \item |[t]|指定のとき\\表組の上端が周囲の和文ベースラインと一致
+%   \item |[c]|指定のとき\\表組の中心が周囲の数式軸を通る(欧文ベースラインシフトの影響下)
+%   \item |[b]|指定のとき\\表組の下端が周囲の和文ベースラインと一致
 % \end{itemize}
 % \item 周囲の組方向が縦組かつ組方向が|<t>|指定の場合
 % \begin{itemize}
-%   \item |[t]|指定のとき\\一行目のベースラインが周囲のそれと一致(罫線の場合は和文ベースラインの位置)
-%   \item |[c]|指定のとき\\表組の中心が周囲の数式軸を通る(欧文ベースラインシフトの影響下)
-%   \item |[b]|指定のとき\\最終行のベースラインが周囲のそれと一致(罫線の場合は和文ベースラインの位置)
+%   \item |[t]|指定のとき\\一行目のベースラインが周囲のそれと一致(罫線の場合は和文ベースラインの位置)
+%   \item |[c]|指定のとき\\表組の中心が周囲の数式軸を通る(欧文ベースラインシフトの影響下)
+%   \item |[b]|指定のとき\\最終行のベースラインが周囲のそれと一致(罫線の場合は和文ベースラインの位置)
 % \end{itemize}
 % \item 周囲の組方向が縦組かつ組方向が|<z>|指定の場合
 %  [TODO] 未定!
 %^^A \begin{itemize}
-%^^A   \item |[t]|指定のとき\\表組の上端が周囲の和文ベースラインと一致
-%^^A   \item |[c]|指定のとき\\表組の中心が周囲の数式軸を通る(欧文ベースラインシフトの影響下)
-%^^A   \item |[b]|指定のとき\\表組の下端が周囲の和文ベースラインと一致
+%^^A   \item |[t]|指定のとき\\表組の上端が周囲の和文ベースラインと一致
+%^^A   \item |[c]|指定のとき\\表組の中心が周囲の数式軸を通る(欧文ベースラインシフトの影響下)
+%^^A   \item |[b]|指定のとき\\表組の下端が周囲の和文ベースラインと一致
 %^^A \end{itemize}
-% \end{itemize}
 \def\fork@array@option<#1>[#2]{%
 \ifnum\ltjgetparameter{direction}=4 % yoko
   \ifx\box@dir\yoko
     \fi\fi
   \else
     \if #2t\relax
-       \def\@begin@alignbox{\raise\cht\vtop\bgroup\kern\z@\vbox}%
+       \def\@begin@alignbox{\vtop\bgroup\kern\z@\vbox}%
        \let\@end@alignbox\egroup
     \else\if #2b\relax
-       \def\@begin@alignbox{\lower\cdp\vbox\bgroup\vbox}%
+       \def\@begin@alignbox{\vbox\bgroup\vbox}%
        \def\@end@alignbox{\kern\z@\egroup}%
     \else
        \let\@begin@alignbox\vcenter
 \else\ifnum\ltjgetparameter{direction}=1 % dtou
   \ifx\box@dir\yoko
     \if #2t\relax
-       \def\@begin@alignbox{\raise\cht\vtop\bgroup\kern\z@\vbox}%
+       \def\@begin@alignbox{\vtop\bgroup\kern\z@\vbox}%
        \let\@end@alignbox\egroup
     \else\if #2b\relax
-       \def\@begin@alignbox{\lower\cdp\vbox\bgroup\vbox}%
+       \def\@begin@alignbox{\vbox\bgroup\vbox}%
        \def\@end@alignbox{\kern\z@\egroup}%
     \else
       \let\@begin@alignbox\vcenter
 \else % tate, utod
   \ifx\box@dir\yoko
     \if #2t\relax
-      \def\@begin@alignbox{\raise\cht\vtop\bgroup\kern\z@\vbox}%
+      \def\@begin@alignbox{\vtop\bgroup\kern\z@\vbox}%
       \let\@end@alignbox\egroup
     \else\if #2b\relax
-      \def\@begin@alignbox{\lower\cdp\vbox\bgroup\vbox}%
+      \def\@begin@alignbox{\vbox\bgroup\vbox}%
       \def\@end@alignbox{\kern\z@\egroup}%
     \else
       \let\@begin@alignbox\vcenter
        \let\hss\vss\let\unhbox\unvbox
        \csname bm@#4\endcsname}\@end@parbox
   \@end@tempboxa}
+% コミュニティ版では、アスキー版で不自然だった|\parbox|の箱と
+% 周囲の本文との揃え位置を修正し、以下のように設計しました。
+% \begin{itemize}
+% \item 周囲の組方向が横組かつ組方向が|<y>|, |<z>|指定の場合
+% \begin{itemize}
+%   \item |[t]|指定のとき\\一行目のベースラインが周囲のそれと一致
+%   \item |[c]|指定のとき\\箱の中心が周囲の数式軸を通る(欧文ベースラインシフトの影響下)
+%   \item |[b]|指定のとき\\最終行のベースラインが周囲のそれと一致
+% \end{itemize}
+% \item 周囲の組方向が横組かつ組方向が|<t>|指定の場合
+% \begin{itemize}
+%   \item |[t]|指定のとき\\箱の上端が周囲の和文文字の高さと一致
+%   \item |[c]|指定のとき\\箱の中心が周囲の数式軸を通る(欧文ベースラインシフトの影響下)
+%   \item |[b]|指定のとき\\箱の下端が周囲の和文文字の深さと一致
+% \end{itemize}
+% \item 周囲の組方向が縦組かつ組方向が|<y>|指定の場合
+% \begin{itemize}
+%   \item |[t]|指定のとき\\箱の上端が周囲の和文文字の高さと一致
+%   \item |[c]|指定のとき\\箱の中心が周囲の数式軸を通る(欧文ベースラインシフトの影響下)
+%   \item |[b]|指定のとき\\箱の下端が周囲の和文文字の深さと一致
+% \end{itemize}
+% \item 周囲の組方向が縦組かつ組方向が|<t>|指定の場合
+% \begin{itemize}
+%   \item |[t]|指定のとき\\一行目のベースラインが周囲のそれと一致
+%   \item |[c]|指定のとき\\箱の中心が周囲の数式軸を通る(欧文ベースラインシフトの影響下)
+%   \item |[b]|指定のとき\\最終行のベースラインが周囲のそれと一致
+% \end{itemize}
+% \item 周囲の組方向が縦組かつ組方向が|<z>|指定の場合
+%  [TODO] 未定!
+%^^A \begin{itemize}
+%^^A   \item |[t]|指定のとき\\箱の上端が周囲の和文ベースラインと一致
+%^^A   \item |[c]|指定のとき\\箱の中心が周囲の数式軸を通る(欧文ベースラインシフトの影響下)
+%^^A   \item |[b]|指定のとき\\箱の下端が周囲の和文ベースラインと一致
+%^^A \end{itemize}
+% \end{itemize}
 \def\fork@parbox@option<#1>[#2]{%
   \let\box@dir\relax
   \if #1z\relax
        \else \let\box@dir\utod
     \fi
   \fi
-%%% now almost same as \fork@array@option
 \ifnum\ltjgetparameter{direction}=4 % yoko
   \ifx\box@dir\yoko
     \if #2t\relax
 }
 
 %%% pbox
-\def\pbox{\leavevmode\@ifnextchar<{\X@makePbox}{\X@makePbox<Z>}}
+\DeclareRobustCommand\pbox{\leavevmode\@ifnextchar<{\X@makePbox}{\X@makePbox<Z>}}
 \def\X@makePbox<#1>{%
   \@ifnextchar[{\@imakePbox<#1>}{\@imakePbox<#1>[-5\p@]}}
 \def\@imakePbox<#1>[#2]{\@ifnextchar[%]
        \else \let\box@dir\utod
     \fi
   \fi
-    \ifdim #2 <\z@ \hbox{\box@dir#4}\else
-    \hbox to#2{\box@dir
+    \setlength{\@tempdima}{#2}%
+    \ifdim\@tempdima<\z@ \hbox{\box@dir#4}\else
+    \hb@xt@\@tempdima{\box@dir
                \if #3l\relax\else\hss\fi
                #4\relax
                \if #3r\relax\else\hss\fi}\fi\egroup}