OSDN Git Service

Updated tests.
[luatex-ja/luatexja.git] / test / test51-vtest.tex
1 %#!luajittex
2
3 \directlua{luatexja_debug = 1}
4 \input luatexja.sty
5 %\input lua-visual-debug.sty
6
7
8 \catcode`\@=11
9 \newdimen\@tempdima
10 \newbox\@tempboxa
11 \newdimen\fboxrule
12 \newdimen\fboxsep
13 \fboxrule=0.4pt\fboxsep=0pt
14 \long\def\fbox#1{%
15   \leavevmode
16   \setbox\@tempboxa\hbox{\kern\fboxsep{#1}\kern\fboxsep}%
17   \@frameb@x\relax}
18 \def\@frameb@x#1{%
19   \@tempdima\fboxrule
20   \advance\@tempdima\fboxsep
21   \advance\@tempdima\dp\@tempboxa
22   \hbox{%
23     \lower\@tempdima\hbox{%
24       \vbox{%
25         \hrule height\fboxrule
26         \hbox{%
27           \vrule width\fboxrule
28           #1%
29           \vbox{%
30             \vskip\fboxsep
31             \box\@tempboxa
32             \vskip\fboxsep}%
33           #1%
34           \vrule width\fboxrule}%
35         \hrule height\fboxrule}%
36                           }%
37         }%
38 }
39 \protected\def\LaTeX{L\kern-.36em%
40         {\setbox\z@\hbox{T}
41          \vbox to\ht\z@{\hbox{\sevenrm A}%
42                         \vss}%
43         }%
44         \kern-.15em%
45         \TeX}
46
47 \tentgt\hfuzz10000pt\relax\vfuzz10000pt
48
49 \def\H{\vrule width 2pt height 10pt depth 0pt%
50 \vrule width 4pt height 0pt depth 4pt}
51
52 \message{^^JTATE, DTOU IN YOKO (HMODE))^^J}
53 \yoko
54 \hbox{\yoko
55   横水平\H\vrule\hbox{\yoko 横水平\H }\vrule かき◆
56   \vrule\hbox{\tate 縦水平\H }\message{HOGE}◆おおおお\vrule
57   \vbox{\yoko\hsize=30mm 横垂直\H ああああああああああ\hfill\H}かき◆%
58   \vrule
59   \vbox{\tate\hsize=30mm 縦垂直\H ああああああああああ\hfill\H}%
60   \vrule ◆ああああ
61 }
62 \hbox{\yoko\vrule
63   横水平\H\vrule\hbox{\dtou 下水平\H }\vrule ◆おおおお
64   \H\vrule
65   \vbox{\dtou\hsize=30mm 下垂直\H ああああああああああ\hfill\H}%
66   \vrule かき◆
67 }
68 \hbox{\yoko
69   ああ\setbox0=\vtop{\yoko\hsize=30mm \ifhmode\message{H}\else\message{V}\fi 横垂直\H ああああああああああ\hfill\H}%
70   {\tracingonline1\showboxdepth2\showboxbreadth100\showbox0}%
71   かき◆\copy0 ◆
72 }
73
74 \vfill\eject
75
76 \message{^^JYOKO, DTOU IN TATE (HMODE)^^J}
77 \leavevmode
78 \hbox{\tate
79 縦水平\H\vrule \hbox{\yoko 横水平\H }\vrule かき◆\vrule
80 \hbox{\tate 縦水平\H }\vrule◆おおおお\H\vrule
81 \vbox{\yoko\hsize=30mm 横垂直\H ああああああああああ\hfill\H}\vrule
82 かき◆\H\vrule
83 \vbox{\tate\hsize=30mm 縦垂直\H ああああああああああ\hfill\H}\vrule
84 ◆ああああ}
85 \hbox{\tate
86 縦水平\H\vrule\hbox{\dtou 下水平\H }\vrule ◆おおおお\H\vrule
87 \vbox{\dtou\hsize=30mm 下垂直\H ああああああああああ\hfill\H}%
88 \vrule\H ◆ああああ}
89
90 \vfill\eject
91
92 \message{^^JYOKO, TATE IN DTOU (HMODE)^^J}
93 \leavevmode
94 \hbox{\dtou
95 下水平\H\vrule\hbox{\yoko 横水平\H }\vrule かき◆\H\vrule
96 \hbox{\tate 縦水平\H }\vrule ◆おおおお\H\vrule
97 \vbox{\yoko\hsize=30mm 横垂直\H ああああああああああ\hfill\H}%
98 \vrule かき◆あおう\H\vrule
99 \vbox{\tate\hsize=30mm 縦垂直\H ああああああああああ\hfill\H}%
100 \vrule ◆ああああ
101 }
102 \hbox{\dtou
103 下水平\H\vrule\hbox{\dtou 下水平\H }\vrule◆おおおお\vrule
104 \vbox{\dtou\hsize=30mm 下垂直\H ああああああああああ\hfill\H}%
105 \vrule ◆ああああ}
106
107
108 \vfill\eject
109
110
111 \message{^^JTATE, DTOU IN YOKO (VMODE)^^J}
112 \setbox0=\vbox{\yoko\hsize=100mm
113 横垂直\H\vrule \hbox{\yoko 横水平\H }\vrule\H かき◆
114 これは,意味のないサンプルテキストです.
115 \vrule\hbox{\tate 縦水平\H }\vrule\H おおおお
116 これは,意味のないサンプルテキストです.\vrule
117 \vbox{\yoko\hsize=50mm 横垂直\H ああああああああああ%
118   あああああああああ\hfill\H}%
119 \vrule\H かき◆
120 これは,意味のないサンプルテキストです.\vrule
121 \vbox{\tate\hsize=50mm 縦垂直\H ああああああああああ%
122   あああああああああ\hfill\H}%
123 \vrule\H ◆ああああ
124 これは,意味のないサンプルテキストです.\vrule
125 \hbox{\dtou 下水平\H }\vrule\H おおおお
126 これは,意味のないサンプルテキストです.
127 \vrule\vbox{\dtou\hsize=50mm 下垂直\H ああああああああああ%
128   あああああああああ\hfill\H}%
129 \vrule\H これは,意味のないサンプルテキストです.
130 }
131 \copy0
132 \vfill\eject
133
134 \message{^^JYOKO, DTOU IN TATE (VMODE)^^J}
135 \vbox{\tate\hsize=100mm
136 縦垂直\H\vrule\hbox{\yoko 横水平\H }\vrule\H かき◆
137 これは,意味のないサンプルテキストです.
138 \vrule\hbox{\tate 縦水平\H }\vrule\H おおおお
139 これは,意味のないサンプルテキストです.\vrule
140 \vbox{\yoko\hsize=50mm 横垂直\H ああああああああああ%
141   あああああああああ\hfill\H}%
142 \vrule\H かき◆
143 これは,意味のないサンプルテキストです.\vrule
144 \vbox{\tate\hsize=50mm 縦垂直\H ああああああああああ%
145   あああああああああ\hfill\H}%
146 \vrule\H ◆ああああ
147 これは,意味のないサンプルテキストです.\vrule
148 \hbox{\dtou 下水平\H }\vrule\H おおおお
149 これは,意味のないサンプルテキストです.
150 \vrule\vbox{\dtou\hsize=50mm 下垂直\H ああああああああああ%
151   あああああああああ\hfill\H}%
152 \vrule\H これは,意味のないサンプルテキストです.
153 }
154 \vfill\eject
155
156 \message{^^JYOKO, TATE IN DTOU (VMODE)^^J}
157 \vbox{\dtou\hsize=100mm
158 下垂直\H\vrule\hbox{\yoko 横水平\H }\vrule\H かき◆
159 これは,意味のないサンプルテキストです.
160 \vrule\hbox{\tate 縦水平\H }\vrule\H おおおお
161 これは,意味のないサンプルテキストです.\vrule
162 \vbox{\yoko\hsize=50mm 横垂直\H ああああああああああ%
163   あああああああああ\hfill\H}%
164 \vrule\H かき◆
165 これは,意味のないサンプルテキストです.\vrule
166 \vbox{\tate\hsize=50mm 縦垂直\H ああああああああああ%
167   あああああああああ\hfill\H}%
168 \vrule\H ◆ああああ
169 これは,意味のないサンプルテキストです.\vrule
170 \hbox{\dtou 下水平\H }\vrule\H おおおお
171 これは,意味のないサンプルテキストです.
172 \vrule\vbox{\dtou\hsize=50mm 下垂直\H ああああああああああ%
173   あああああああああ\hfill\H}%
174 \vrule\H これは,意味のないサンプルテキストです.
175 }
176
177 \vfill\eject
178
179 \vbox{\tate\hsize100mm
180 \tfont\f=KozMinPr6N-Regular.otf:+vert;jfm=ujisv \f
181
182 \ltjsetparameter{yalbaselineshift=.25em}\baselineskip15pt\parindent\zw
183 \LaTeX の特徴として、テキストファイルであるソースコードを入力として処理することでDVIや
184 PDFなどの表示形式を出力として得ることが挙げられる。
185
186 \LaTeX の最大の長所は、\TeX に由来する高品質で自由度の高い組版処理能力である。組版処理能力
187 は一般向けの出版物の作成にも充分に耐えられるものであり、実際の出版例もある。
188 中でも数式組版の品質が高い。さらに、数式専用の命令文(コマンド)が用意されているので、
189 単純なソースコードで高品質な数式表示を得られる。そのため、数式を多く含む自然科学系や工学系
190 の出版物などでは、\LaTeX 形式での投稿が標準的なフォーマットとされていることも多い。
191
192 くわえて、ソースコードに詳細な設定を記述することで、文書のスタイル(表示形式、見栄え、たと
193 えばレイアウトやフォントなど)を自在に調節できる。また、ソースコード上で文書内容・文書構造
194 (章・節・段落や強調箇所など)と文書スタイルの設定との分離が可能である。そのため、同一文書
195 内で終始一貫したスタイをル保つことができる。また、同じ文書内容でレイアウトやフォントだけを
196 変えることができるなど、文書内容データの再利用性が高い。一度スタイル設定を決めてしまえば、
197 あとは文書内容の記述に専念することができるという利点もある。論文などの投稿では、学術雑
198 誌のスタイルを記述したファイル(パッケージファイル)を Web からダウンロードして利用するこ
199 とで、統一されたスタイルで論文を投稿することができ、論文の投稿者と雑誌の編集者とのやり取り
200 を簡略化できる。Kile、TeXShop、TeXworks、EasyTeX、WinShell などの \TeX 用エ
201 ディタや、野鳥(やてふ、YaTeX)、TeXlipse、KaTeX(花鳥、かてふ)、祝鳥
202 (のりてふ)、M's TeX Helper 2など の\TeX 用テキストエディタマクロを兼用することに
203 よって、より効率的な文章作成が可能ともなる。またMapleやMathematicaなどでドキュメントを
204 作成し、\TeX 形式で出力することも可能である。
205
206 }
207
208 \message{^^Jget/set box dimension^^J}
209
210 \def\\{\hfill\break}
211 \setbox12288=\hbox{%
212   \tate\ltjsetparameter{talbaselineshift=0pt}Htp}
213 縦ボックス\hbox{\vrule\copy12288\vrule}寸法\quad
214 \vbox{\hsize=80pt\yoko\noindent
215   WD: \the\ltjgetwd{12288}, \\HT: \the\ltjgetht{12288}, \\DP: \the\ltjgetdp{12288}%
216 }
217 \vbox{\hsize=80pt\tate\noindent
218   WD: \the\ltjgetwd{12288}, \\HT: \the\ltjgetht{12288}, \\DP: \the\ltjgetdp{12288}%
219 }
220 \ltjsetwd12288=100pt
221 \setbox0=\hbox{\tate\ltjsetht12288=10pt}
222 \vbox{\hsize=80pt\yoko\noindent
223   WD: \the\ltjgetwd{12288}, \\HT: \the\ltjgetht{12288}, \\DP: \the\ltjgetdp{12288}%
224 }
225 \vbox{\hsize=80pt\tate\noindent
226   WD: \the\ltjgetwd{12288}, \\HT: \the\ltjgetht{12288}, \\DP: \the\ltjgetdp{12288}%
227 }
228
229
230
231 \setbox12288=\hbox{%
232   \yoko\ltjsetparameter{yalbaselineshift=0pt}Htp}
233 横ボックス\hbox{\vrule\copy12288\vrule}寸法\quad
234 \vbox{\hsize=80pt\yoko\noindent
235   WD: \the\ltjgetwd{12288}, \\HT: \the\ltjgetht{12288}, \\DP: \the\ltjgetdp{12288}%
236 }
237 \vbox{\hsize=80pt\tate\noindent
238   WD: \the\ltjgetwd{12288}, \\HT: \the\ltjgetht{12288}, \\DP: \the\ltjgetdp{12288}%
239 }
240 \ltjsetwd12288=100pt
241 \setbox0=\hbox{\tate\ltjsetht12288=10pt}
242 \vbox{\hsize=80pt\yoko\noindent
243   WD: \the\ltjgetwd{12288}, \\HT: \the\ltjgetht{12288}, \\DP: \the\ltjgetdp{12288}%
244 }
245 \vbox{\hsize=80pt\tate\noindent
246   WD: \the\ltjgetwd{12288}, \\HT: \the\ltjgetht{12288}, \\DP: \the\ltjgetdp{12288}%
247 }
248
249 dimexpr でも使えるかな?\the \dimexpr2\ltjgetwd{` }+\ltjgetwd{200}+1pt\relax
250
251 \vfill\eject
252
253 \message{^^Jalign^^J}
254
255 \parindent0pt
256 \hrule width 40mm
257
258 \hbox{\yoko\hsize40mm\baselineskip20pt 横水平
259 \valign{A#\hfil&B#\hfil&C#\hfill\vrule\cr
260 あいうえお&ABC&XYZ\cr
261 abc&かきくけこ&xyz\cr}横水平}
262 \moveright40mm\hbox{\vrule width 40mm height.4pt}
263
264 \hbox{\tate\hsize40mm\baselineskip20pt 縦水平
265 \valign{甲#\hfil&乙#\hfil&丙#\hfill\vrule\cr
266 あいうえお&ABC&XYZ\cr
267 abc&かきくけこ&xyz\cr}}%
268 %\tracingonline\showboxdepth2\showboxbreadth1000\showlists}
269 \moveright40mm\hbox{\vrule width 40mm height.4pt}
270
271 \vfill\eject
272
273 \vbox{\yoko\hsize40mm\baselineskip20pt  横垂直
274 \halign{A#\hfil&B#\hfil&C#\hfill\vrule\cr
275 あいうえお&ABC&XYZ\cr
276 abc&かきくけこ&xyz\cr}}%
277 \moveright40mm\hbox{\vrule width 40mm height.4pt}
278
279 \vbox{\tate\baselineskip20pt  縦垂直
280 \halign{甲#\hfil&乙#\hfil&丙#\hfill\vrule\cr
281 あいうえお&ABC&XYZ\cr
282 abc&かきくけこ&xyz\cr}}%
283 \moveright40mm\hbox{\vrule width 40mm height.4pt}
284
285 \vfill\eject
286
287 \message{^^Jdir node^^J}
288 \font\seventt=cmtt10 at 7pt
289
290 \setbox0=\hbox{\yoko pF}
291 \setbox1=\hbox{\tate\box0}
292 \fbox{\copy1}
293 \unhcopy1\setbox1=\lastbox
294 {\obeylines\seventt\baselineskip=10pt
295 \directlua{luatexja.ext_show_node_list(tex.box[1], 'lastbox>   ', tex.print)}\par}
296 \setbox0=\hbox{\yoko \ltjsetwd1=50pt}
297 {\obeylines\seventt\baselineskip=10pt
298 \directlua{luatexja.ext_show_node_list(tex.box[1], 'dir node1> ', tex.print)}\par}
299 \setbox0=\hbox{\dtou \ltjsetwd1=2pt}
300 {\obeylines\seventt\baselineskip=10pt
301 \directlua{luatexja.ext_show_node_list(tex.box[1], 'dir node2> ', tex.print)}\par}
302
303 \setbox0=\hbox{\yoko \ltjsetht1=30pt}
304 {\obeylines\seventt\baselineskip=10pt
305 \directlua{luatexja.ext_show_node_list(tex.box[1], 'alter Yht> ', tex.print)}\par}
306
307 \message{HOGE}
308 \setbox0=\hbox{\tate \ltjsetwd1=50pt\immediate\message{PIYO}}
309
310 {\obeylines\seventt\baselineskip=10pt\message{HOGE}\hbox{a}\message{HOGE}
311 \directlua{luatexja.ext_show_node_list(tex.box[1], 'alter Twd> ', tex.print)}\par}
312
313 \setbox0=\hbox{\yoko \ltjsetht1=70pt}
314 {\obeylines\seventt\baselineskip=10pt
315 \directlua{luatexja.ext_show_node_list(tex.box[1], 'alter Yht> ', tex.print)}\par}
316
317 %% unwrap
318 \setbox2=\hbox{\yoko \copy1}
319 \setbox2=\hbox{\yoko \unhbox2\global\setbox1=\lastbox}
320 {\obeylines\seventt
321 \directlua{luatexja.ext_show_node_list(tex.box[1], 'unwrapped> ', tex.print)}}
322
323
324
325 \setbox0\hbox{\yoko a あ }\setbox1=\hbox{\tate\ltjsetht0=2pt}
326
327 \fbox{\copy0}
328 \vbox{\yoko\hsize=60pt\noindent\the\ltjgetwd0,\\\the\ltjgetht0,\\\the\ltjgetdp0}
329 \vbox{\tate\hsize=60pt\noindent\the\ltjgetwd0,\\\the\ltjgetht0,\\\the\ltjgetdp0}
330 \vbox{\dtou\hsize=60pt\noindent\the\ltjgetwd0,\\\the\ltjgetht0,\\\the\ltjgetdp0}
331 %
332 \ltjsetwd0=40pt
333 \vbox{\yoko\hsize=60pt\noindent\the\ltjgetwd0,\\\the\ltjgetht0,\\\the\ltjgetdp0}
334 \vbox{\tate\hsize=60pt\noindent\the\ltjgetwd0,\\\the\ltjgetht0,\\\the\ltjgetdp0}
335 \vbox{\dtou\hsize=60pt\noindent\the\ltjgetwd0,\\\the\ltjgetht0,\\\the\ltjgetdp0}
336
337 p\kern-.15em\TeX\ bug (2011-02-24)
338 \setbox0=\hbox{\tate a}\fbox{\copy0}%
339 \hbox{\yoko\ltjsetht0=30pt
340 \hbox{\dtou\dimen0=\ltjgetht0}
341 \the\ltjgetht0}% OK. 30pt
342
343 \def\R{012345678901234567890123456789}
344 \vbox{\tate\hsize=4\zw\R\R\R\R}
345 ABCDE
346
347 %\tracingall
348 \def\showdir{\ifcase\ltjgetparameter{direction} ?\or D\or ?\or T\or Y\fi}
349 \showdir
350 \hbox{\tate {\dtou 感じ\showdir}\showdir}
351 \showdir
352 \end