plext で組方向を変えるとどう配置されるか
メモメモ。
組方向拡張される命令・環境
某 Qiita の記事によると、以下のものが挙げられている。
\begin{array}<組方向>[垂直位置]{列書式指定}〜\end{array}
\begin{tabular}<組方向>[垂直位置]{列書式指定}〜\end{tabular}
\begin{tabular*}<組方向>[幅][垂直位置]{列書式指定}〜\end{tabular*}
\begin{minipage}<組方向>[垂直位置][高さ][内部位置]{幅}〜\end{minipage}
\parbox<組方向>[垂直位置][高さ][内部位置]{幅}{テキスト}
\pbox<組方向>[幅][水平位置]{テキスト}
(\pbox
は「組方向拡張版\makebox
」に相当する。)
しかし実際には拡張される環境がもう一つある。picture である。*1
\begin{picture}<組方向>(幅,高さ)(変位横,縦)〜\end{picture}
これらの命令・環境について、組方向に <t> (横組の中の縦組)を指定した時に、内容(ボックス)と外側の行の垂直位置関係がどうなるかを調べた。一部の命令・環境では「垂直位置指定のオプション」(下線部)がありこの値(t、c、b)によって結果が異なるので全ての値を調べた。
※ただし tabular* や array は tabular と、minipage は \parbox
と同じになる(なった)ので、ここで示す結果からは省いた。
横組の中の縦組(<t>)
% upLaTeX 文書 \documentclass[uplatex,a4paper]{jsarticle} \usepackage{plext} \begin{document} \par\medskip {\TeX}は\pbox<t>{なんとか}アレ。 \par\medskip {\TeX}は\parbox<t>[t]{3zw}{なんとかかんとか}アレ。 \par\medskip {\TeX}は\parbox<t>[c]{3zw}{なんとかかんとか}アレ。 \par\medskip {\TeX}は\parbox<t>[b]{3zw}{なんとかかんとか}アレ。 \par\medskip {\TeX}は\begin{tabular}<t>[t]{l}ほげ\\なんとか\end{tabular}アレ。 \par\medskip {\TeX}は\begin{tabular}<t>[c]{l}ほげ\\なんとか\end{tabular}アレ。 \par\medskip {\TeX}は\begin{tabular}<t>[b]{l}ほげ\\なんとか\end{tabular}アレ。 \par\medskip {\TeX}は\begin{picture}<t>(40,30)\put(0,0){\line(2,3){20}}\put(20,30){\vector(2,-3){20}}\end{picture}アレ。 \end{document}
\pbox
の出力。
\parbox
の出力、上から順に [t]、[c]、[b] 指定。
tabular の出力、上から順に [t]、[c]、[b] 指定。
picture の出力。
まとめると、以下のようになっていることが判る。
- t: 外の「ベースライン」と内の「ボックス上端」を合わせる。
- c: 外の「数式軸(math axis)」と内の「ボックス中心」を合わせる。
- b: 外の「ベースライン」と内の「ボックス下端」を合わせる。
- 垂直位置指定のない
\pbox
や picture は b 指定と同じ動作。
これを見ると、c 指定については通常(組方向変換なし)の仕様に従っている。一方で t/b 指定は通常は「外のベースラインと内の『最上行/最下行のベースライン』を合わせる」という仕様であるが、内側と外側で「行の方向」が異なる時にはこの動作は実現できないので、「内側の最上/最下にあるのが“行”(水平ボックス)でない」場合の仕様に従っている。
縦組の中の横組(<y>)
縦組の中の横組(<y>)についても、同様の要領で調べてみた。
% upLaTeX 文書 \documentclass[a4paper,landscsape]{utarticle} %\usepackage{plext}% 縦組クラスでは自動的に読み込まれる \begin{document} \par\medskip {\TeX}は\pbox<y>{なんとか}アレ。 % 以下同様, 先のソースの<t>を<y>に変える
右から順に、\pbox
の出力、\parbox
の [t]、[c]、[b] 指定の出力。
右から順に、tabular の [t]、[c]、[b] 指定の出力、picture の出力。
むむむむむむ……、なんだか、ややこしい。
*1:なぜ picture を省いたのかは今となっては判らない。pict2e などの「picture を拡張する」パッケージは縦組と相性と悪く、「拡張無しの picture 環境なんて今時誰も使わない」ということかも知れない。