%#!luajittex

\directlua{luatexja_debug = 1}
\input luatexja.sty
%\input lua-visual-debug.sty


\catcode`\@=11
\newdimen\@tempdima
\newbox\@tempboxa
\newdimen\fboxrule
\newdimen\fboxsep
\fboxrule=0.4pt\fboxsep=0pt
\long\def\fbox#1{%
  \leavevmode
  \setbox\@tempboxa\hbox{\kern\fboxsep{#1}\kern\fboxsep}%
  \@frameb@x\relax}
\def\@frameb@x#1{%
  \@tempdima\fboxrule
  \advance\@tempdima\fboxsep
  \advance\@tempdima\dp\@tempboxa
  \hbox{%
    \lower\@tempdima\hbox{%
      \vbox{%
        \hrule height\fboxrule
        \hbox{%
          \vrule width\fboxrule
          #1%
          \vbox{%
            \vskip\fboxsep
            \box\@tempboxa
            \vskip\fboxsep}%
          #1%
          \vrule width\fboxrule}%
        \hrule height\fboxrule}%
                          }%
        }%
}
\protected\def\LaTeX{L\kern-.36em%
        {\setbox\z@\hbox{T}
         \vbox to\ht\z@{\hbox{\sevenrm A}%
                        \vss}%
        }%
        \kern-.15em%
        \TeX}

\tentgt\hfuzz10000pt\relax\vfuzz10000pt

\def\H{\vrule width 2pt height 10pt depth 0pt%
\vrule width 4pt height 0pt depth 4pt}

\message{^^JTATE, DTOU IN YOKO (HMODE))^^J}
\yoko
\hbox{\yoko
  横水平\H\vrule\hbox{\yoko 横水平\H }\vrule かき◆
  \vrule\hbox{\tate 縦水平\H }\message{HOGE}◆おおおお\vrule
  \vbox{\yoko\hsize=30mm 横垂直\H ああああああああああ\hfill\H}かき◆%
  \vrule
  \vbox{\tate\hsize=30mm 縦垂直\H ああああああああああ\hfill\H}%
  \vrule ◆ああああ
}
\hbox{\yoko\vrule
  横水平\H\vrule\hbox{\dtou 下水平\H }\vrule ◆おおおお
  \H\vrule
  \vbox{\dtou\hsize=30mm 下垂直\H ああああああああああ\hfill\H}%
  \vrule かき◆
}
\hbox{\yoko
  ああ\setbox0=\vtop{\yoko\hsize=30mm \ifhmode\message{H}\else\message{V}\fi 横垂直\H ああああああああああ\hfill\H}%
  {\tracingonline1\showboxdepth2\showboxbreadth100\showbox0}%
  かき◆\copy0 ◆
}

\vfill\eject

\message{^^JYOKO, DTOU IN TATE (HMODE)^^J}
\leavevmode
\hbox{\tate
縦水平\H\vrule \hbox{\yoko 横水平\H }\vrule かき◆\vrule
\hbox{\tate 縦水平\H }\vrule◆おおおお\H\vrule
\vbox{\yoko\hsize=30mm 横垂直\H ああああああああああ\hfill\H}\vrule
かき◆\H\vrule
\vbox{\tate\hsize=30mm 縦垂直\H ああああああああああ\hfill\H}\vrule
◆ああああ}
\hbox{\tate
縦水平\H\vrule\hbox{\dtou 下水平\H }\vrule ◆おおおお\H\vrule
\vbox{\dtou\hsize=30mm 下垂直\H ああああああああああ\hfill\H}%
\vrule\H ◆ああああ}

\vfill\eject

\message{^^JYOKO, TATE IN DTOU (HMODE)^^J}
\leavevmode
\hbox{\dtou
下水平\H\vrule\hbox{\yoko 横水平\H }\vrule かき◆\H\vrule
\hbox{\tate 縦水平\H }\vrule ◆おおおお\H\vrule
\vbox{\yoko\hsize=30mm 横垂直\H ああああああああああ\hfill\H}%
\vrule かき◆あおう\H\vrule
\vbox{\tate\hsize=30mm 縦垂直\H ああああああああああ\hfill\H}%
\vrule ◆ああああ
}
\hbox{\dtou
下水平\H\vrule\hbox{\dtou 下水平\H }\vrule◆おおおお\vrule
\vbox{\dtou\hsize=30mm 下垂直\H ああああああああああ\hfill\H}%
\vrule ◆ああああ}


\vfill\eject


\message{^^JTATE, DTOU IN YOKO (VMODE)^^J}
\setbox0=\vbox{\yoko\hsize=100mm
横垂直\H\vrule \hbox{\yoko 横水平\H }\vrule\H かき◆
これは，意味のないサンプルテキストです．
\vrule\hbox{\tate 縦水平\H }\vrule\H おおおお
これは，意味のないサンプルテキストです．\vrule
\vbox{\yoko\hsize=50mm 横垂直\H ああああああああああ%
  あああああああああ\hfill\H}%
\vrule\H かき◆
これは，意味のないサンプルテキストです．\vrule
\vbox{\tate\hsize=50mm 縦垂直\H ああああああああああ%
  あああああああああ\hfill\H}%
\vrule\H ◆ああああ
これは，意味のないサンプルテキストです．\vrule
\hbox{\dtou 下水平\H }\vrule\H おおおお
これは，意味のないサンプルテキストです．
\vrule\vbox{\dtou\hsize=50mm 下垂直\H ああああああああああ%
  あああああああああ\hfill\H}%
\vrule\H これは，意味のないサンプルテキストです．
}
\copy0
\vfill\eject

\message{^^JYOKO, DTOU IN TATE (VMODE)^^J}
\vbox{\tate\hsize=100mm
縦垂直\H\vrule\hbox{\yoko 横水平\H }\vrule\H かき◆
これは，意味のないサンプルテキストです．
\vrule\hbox{\tate 縦水平\H }\vrule\H おおおお
これは，意味のないサンプルテキストです．\vrule
\vbox{\yoko\hsize=50mm 横垂直\H ああああああああああ%
  あああああああああ\hfill\H}%
\vrule\H かき◆
これは，意味のないサンプルテキストです．\vrule
\vbox{\tate\hsize=50mm 縦垂直\H ああああああああああ%
  あああああああああ\hfill\H}%
\vrule\H ◆ああああ
これは，意味のないサンプルテキストです．\vrule
\hbox{\dtou 下水平\H }\vrule\H おおおお
これは，意味のないサンプルテキストです．
\vrule\vbox{\dtou\hsize=50mm 下垂直\H ああああああああああ%
  あああああああああ\hfill\H}%
\vrule\H これは，意味のないサンプルテキストです．
}
\vfill\eject

\message{^^JYOKO, TATE IN DTOU (VMODE)^^J}
\vbox{\dtou\hsize=100mm
下垂直\H\vrule\hbox{\yoko 横水平\H }\vrule\H かき◆
これは，意味のないサンプルテキストです．
\vrule\hbox{\tate 縦水平\H }\vrule\H おおおお
これは，意味のないサンプルテキストです．\vrule
\vbox{\yoko\hsize=50mm 横垂直\H ああああああああああ%
  あああああああああ\hfill\H}%
\vrule\H かき◆
これは，意味のないサンプルテキストです．\vrule
\vbox{\tate\hsize=50mm 縦垂直\H ああああああああああ%
  あああああああああ\hfill\H}%
\vrule\H ◆ああああ
これは，意味のないサンプルテキストです．\vrule
\hbox{\dtou 下水平\H }\vrule\H おおおお
これは，意味のないサンプルテキストです．
\vrule\vbox{\dtou\hsize=50mm 下垂直\H ああああああああああ%
  あああああああああ\hfill\H}%
\vrule\H これは，意味のないサンプルテキストです．
}

\vfill\eject

\vbox{\tate\hsize100mm
\tfont\f=KozMinPr6N-Regular.otf:+vert;jfm=ujisv \f

\ltjsetparameter{yalbaselineshift=.25em}\baselineskip15pt\parindent\zw
\LaTeX の特徴として、テキストファイルであるソースコードを入力として処理することでDVIや
PDFなどの表示形式を出力として得ることが挙げられる。

\LaTeX の最大の長所は、\TeX に由来する高品質で自由度の高い組版処理能力である。組版処理能力
は一般向けの出版物の作成にも充分に耐えられるものであり、実際の出版例もある。
中でも数式組版の品質が高い。さらに、数式専用の命令文（コマンド）が用意されているので、
単純なソースコードで高品質な数式表示を得られる。そのため、数式を多く含む自然科学系や工学系
の出版物などでは、\LaTeX 形式での投稿が標準的なフォーマットとされていることも多い。

くわえて、ソースコードに詳細な設定を記述することで、文書のスタイル（表示形式、見栄え、たと
えばレイアウトやフォントなど）を自在に調節できる。また、ソースコード上で文書内容・文書構造
（章・節・段落や強調箇所など）と文書スタイルの設定との分離が可能である。そのため、同一文書
内で終始一貫したスタイをル保つことができる。また、同じ文書内容でレイアウトやフォントだけを
変えることができるなど、文書内容データの再利用性が高い。一度スタイル設定を決めてしまえば、
あとは文書内容の記述に専念することができるという利点もある。論文などの投稿では、学術雑
誌のスタイルを記述したファイル（パッケージファイル）を Web からダウンロードして利用するこ
とで、統一されたスタイルで論文を投稿することができ、論文の投稿者と雑誌の編集者とのやり取り
を簡略化できる。Kile、TeXShop、TeXworks、EasyTeX、WinShell などの \TeX 用エ
ディタや、野鳥（やてふ、YaTeX）、TeXlipse、KaTeX（花鳥、かてふ）、祝鳥
（のりてふ）、M's TeX Helper 2など の\TeX 用テキストエディタマクロを兼用することに
よって、より効率的な文章作成が可能ともなる。またMapleやMathematicaなどでドキュメントを
作成し、\TeX 形式で出力することも可能である。

}

\message{^^Jget/set box dimension^^J}

\def\\{\hfill\break}
\setbox12288=\hbox{%
  \tate\ltjsetparameter{talbaselineshift=0pt}Htp}
縦ボックス\hbox{\vrule\copy12288\vrule}寸法\quad
\vbox{\hsize=80pt\yoko\noindent
  WD: \the\ltjgetwd{12288}, \\HT: \the\ltjgetht{12288}, \\DP: \the\ltjgetdp{12288}%
}
\vbox{\hsize=80pt\tate\noindent
  WD: \the\ltjgetwd{12288}, \\HT: \the\ltjgetht{12288}, \\DP: \the\ltjgetdp{12288}%
}
\ltjsetwd12288=100pt
\setbox0=\hbox{\tate\ltjsetht12288=10pt}
\vbox{\hsize=80pt\yoko\noindent
  WD: \the\ltjgetwd{12288}, \\HT: \the\ltjgetht{12288}, \\DP: \the\ltjgetdp{12288}%
}
\vbox{\hsize=80pt\tate\noindent
  WD: \the\ltjgetwd{12288}, \\HT: \the\ltjgetht{12288}, \\DP: \the\ltjgetdp{12288}%
}



\setbox12288=\hbox{%
  \yoko\ltjsetparameter{yalbaselineshift=0pt}Htp}
横ボックス\hbox{\vrule\copy12288\vrule}寸法\quad
\vbox{\hsize=80pt\yoko\noindent
  WD: \the\ltjgetwd{12288}, \\HT: \the\ltjgetht{12288}, \\DP: \the\ltjgetdp{12288}%
}
\vbox{\hsize=80pt\tate\noindent
  WD: \the\ltjgetwd{12288}, \\HT: \the\ltjgetht{12288}, \\DP: \the\ltjgetdp{12288}%
}
\ltjsetwd12288=100pt
\setbox0=\hbox{\tate\ltjsetht12288=10pt}
\vbox{\hsize=80pt\yoko\noindent
  WD: \the\ltjgetwd{12288}, \\HT: \the\ltjgetht{12288}, \\DP: \the\ltjgetdp{12288}%
}
\vbox{\hsize=80pt\tate\noindent
  WD: \the\ltjgetwd{12288}, \\HT: \the\ltjgetht{12288}, \\DP: \the\ltjgetdp{12288}%
}

dimexpr でも使えるかな？\the \dimexpr2\ltjgetwd{`　}+\ltjgetwd{200}+1pt\relax

\vfill\eject

\message{^^Jalign^^J}

\parindent0pt
\hrule width 40mm

\hbox{\yoko\hsize40mm\baselineskip20pt 横水平
\valign{A#\hfil&B#\hfil&C#\hfill\vrule\cr
あいうえお&ABC&XYZ\cr
abc&かきくけこ&xyz\cr}横水平}
\moveright40mm\hbox{\vrule width 40mm height.4pt}

\hbox{\tate\hsize40mm\baselineskip20pt 縦水平
\valign{甲#\hfil&乙#\hfil&丙#\hfill\vrule\cr
あいうえお&ABC&XYZ\cr
abc&かきくけこ&xyz\cr}}%
%\tracingonline\showboxdepth2\showboxbreadth1000\showlists}
\moveright40mm\hbox{\vrule width 40mm height.4pt}

\vfill\eject

\vbox{\yoko\hsize40mm\baselineskip20pt  横垂直
\halign{A#\hfil&B#\hfil&C#\hfill\vrule\cr
あいうえお&ABC&XYZ\cr
abc&かきくけこ&xyz\cr}}%
\moveright40mm\hbox{\vrule width 40mm height.4pt}

\vbox{\tate\baselineskip20pt  縦垂直
\halign{甲#\hfil&乙#\hfil&丙#\hfill\vrule\cr
あいうえお&ABC&XYZ\cr
abc&かきくけこ&xyz\cr}}%
\moveright40mm\hbox{\vrule width 40mm height.4pt}

\vfill\eject

\message{^^Jdir node^^J}
\font\seventt=cmtt10 at 7pt

\setbox0=\hbox{\yoko pF}
\setbox1=\hbox{\tate\box0}
\fbox{\copy1}
\unhcopy1\setbox1=\lastbox
{\obeylines\seventt\baselineskip=10pt
\directlua{luatexja.ext_show_node_list(tex.box[1], 'lastbox>   ', tex.print)}\par}
\setbox0=\hbox{\yoko \ltjsetwd1=50pt}
{\obeylines\seventt\baselineskip=10pt
\directlua{luatexja.ext_show_node_list(tex.box[1], 'dir node1> ', tex.print)}\par}
\setbox0=\hbox{\dtou \ltjsetwd1=2pt}
{\obeylines\seventt\baselineskip=10pt
\directlua{luatexja.ext_show_node_list(tex.box[1], 'dir node2> ', tex.print)}\par}

\setbox0=\hbox{\yoko \ltjsetht1=30pt}
{\obeylines\seventt\baselineskip=10pt
\directlua{luatexja.ext_show_node_list(tex.box[1], 'alter Yht> ', tex.print)}\par}

\message{HOGE}
\setbox0=\hbox{\tate \ltjsetwd1=50pt\immediate\message{PIYO}}

{\obeylines\seventt\baselineskip=10pt\message{HOGE}\hbox{a}\message{HOGE}
\directlua{luatexja.ext_show_node_list(tex.box[1], 'alter Twd> ', tex.print)}\par}

\setbox0=\hbox{\yoko \ltjsetht1=70pt}
{\obeylines\seventt\baselineskip=10pt
\directlua{luatexja.ext_show_node_list(tex.box[1], 'alter Yht> ', tex.print)}\par}

%% unwrap
\setbox2=\hbox{\yoko \copy1}
\setbox2=\hbox{\yoko \unhbox2\global\setbox1=\lastbox}
{\obeylines\seventt
\directlua{luatexja.ext_show_node_list(tex.box[1], 'unwrapped> ', tex.print)}}



\setbox0\hbox{\yoko a あ }\setbox1=\hbox{\tate\ltjsetht0=2pt}

\fbox{\copy0}
\vbox{\yoko\hsize=60pt\noindent\the\ltjgetwd0,\\\the\ltjgetht0,\\\the\ltjgetdp0}
\vbox{\tate\hsize=60pt\noindent\the\ltjgetwd0,\\\the\ltjgetht0,\\\the\ltjgetdp0}
\vbox{\dtou\hsize=60pt\noindent\the\ltjgetwd0,\\\the\ltjgetht0,\\\the\ltjgetdp0}
%
\ltjsetwd0=40pt
\vbox{\yoko\hsize=60pt\noindent\the\ltjgetwd0,\\\the\ltjgetht0,\\\the\ltjgetdp0}
\vbox{\tate\hsize=60pt\noindent\the\ltjgetwd0,\\\the\ltjgetht0,\\\the\ltjgetdp0}
\vbox{\dtou\hsize=60pt\noindent\the\ltjgetwd0,\\\the\ltjgetht0,\\\the\ltjgetdp0}

p\kern-.15em\TeX\ bug (2011-02-24)
\setbox0=\hbox{\tate a}\fbox{\copy0}%
\hbox{\yoko\ltjsetht0=30pt
\hbox{\dtou\dimen0=\ltjgetht0}
\the\ltjgetht0}% OK. 30pt

\def\R{０１２３４５６７８９０１２３４５６７８９０１２３４５６７８９}
\vbox{\tate\hsize=4\zw\R\R\R\R}
ABCDE

%\tracingall
\hbox{\tate {\dtou 感じ\ifddir D\fi\iftdir T\fi}\ifddir D\fi\iftdir T\fi}

\end

