OSDN Git Service

e440988e9887d399bbcc5e1db269ef792ded343f
[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, UTOD 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\vrule
69   横水平\H\vrule\hbox{\utod 上水平\H }\vrule ◆おおおお
70   \H\vrule
71   \vbox{\utod\hsize=30mm 上垂直\H ああああああああああ\hfill\H}%
72   \vrule かき◆
73 }
74 \hbox{\yoko
75   ああ\setbox0=\vtop{\yoko\hsize=30mm \ifhmode\message{H}\else\message{V}\fi 横垂直\H ああああああああああ\hfill\H}%
76 %  {\tracingonline1\showboxdepth2\showboxbreadth100\showbox0}%
77   かき◆\copy0 ◆
78 }
79
80 \vfill\eject
81
82 \message{^^JYOKO, DTOU, UTOD IN TATE (HMODE)^^J}
83 \leavevmode
84 \hbox{\tate
85 縦水平\H\vrule \hbox{\yoko 横水平\H }\vrule かき◆\vrule
86 \hbox{\tate 縦水平\H }\vrule◆おおおお\H\vrule
87 \vbox{\yoko\hsize=30mm 横垂直\H ああああああああああ\hfill\H}\vrule
88 かき◆\H\vrule
89 \vbox{\tate\hsize=30mm 縦垂直\H ああああああああああ\hfill\H}\vrule
90 ◆ああああ}
91 \hbox{\tate
92 縦水平\H\vrule\hbox{\dtou 下水平\H }\vrule ◆おおおお\H\vrule
93 \vbox{\dtou\hsize=30mm 下垂直\H ああああああああああ\hfill\H}%
94 \vrule\H ◆ああああ}
95 \hbox{\tate
96 縦水平\H\vrule\hbox{\utod 上水平\H }\vrule ◆おおおお\H\vrule
97 \vbox{\utod\hsize=30mm 上垂直\H ああああああああああ\hfill\H}%
98 \vrule\H ◆ああああ}
99
100 \vfill\eject
101 \message{^^JYOKO, TATE, DTOU,IN UTOD (HMODE)^^J}
102 \leavevmode
103 \hbox{\utod
104 上水平\H\vrule \hbox{\yoko 横水平\H }\vrule かき◆\vrule
105 \hbox{\tate 縦水平\H }\vrule◆おおおお\H\vrule
106 \vbox{\yoko\hsize=30mm 横垂直\H ああああああああああ\hfill\H}\vrule
107 かき◆\H\vrule
108 \vbox{\tate\hsize=30mm 縦垂直\H ああああああああああ\hfill\H}\vrule
109 ◆ああああ}
110 \hbox{\utod
111 上水平\H\vrule\hbox{\dtou 下水平\H }\vrule ◆おおおお\H\vrule
112 \vbox{\dtou\hsize=30mm 下垂直\H ああああああああああ\hfill\H}%
113 \vrule\H ◆ああああ}
114 \hbox{\utod
115 上水平\H\vrule\hbox{\utod 上水平\H }\vrule ◆おおおお\H\vrule
116 \vbox{\utod\hsize=30mm 上垂直\H ああああああああああ\hfill\H}%
117 \vrule\H ◆ああああ}
118
119 \vfill\eject
120
121
122 \message{^^JYOKO, TATE, UTOD IN DTOU (HMODE)^^J}
123 \leavevmode
124 \hbox{\dtou
125 下水平\H\vrule\hbox{\yoko 横水平\H }\vrule かき◆\H\vrule
126 \hbox{\tate 縦水平\H }\vrule ◆おおおお\H\vrule
127 \vbox{\yoko\hsize=30mm 横垂直\H ああああああああああ\hfill\H}%
128 \vrule かき◆あおう\H\vrule
129 \vbox{\tate\hsize=30mm 縦垂直\H ああああああああああ\hfill\H}%
130 \vrule ◆ああああ
131 }
132 \hbox{\dtou
133 下水平\H\vrule\hbox{\dtou 下水平\H }\vrule◆おおおお\vrule
134 \vbox{\dtou\hsize=30mm 下垂直\H ああああああああああ\hfill\H}%
135 \vrule ◆ああああ}
136 \hbox{\dtou
137 下水平\H\vrule\hbox{\utod 上水平\H }\vrule◆おおおお\vrule
138 \vbox{\utod\hsize=30mm 上垂直\H ああああああああああ\hfill\H}%
139 \vrule ◆ああああ}
140
141
142 \vfill\eject
143
144
145 \message{^^JTATE, DTOU IN YOKO (VMODE)^^J}
146 \setbox0=\vbox{\yoko\hsize=100mm
147 横垂直\H\vrule \hbox{\yoko 横水平\H }\vrule\H かき◆
148 これは,意味のないサンプルテキストです.
149 \vrule\hbox{\tate 縦水平\H }\vrule\H おおおお
150 これは,意味のないサンプルテキストです.\vrule
151 \vbox{\yoko\hsize=50mm 横垂直\H ああああああああああ%
152   あああああああああ\hfill\H}%
153 \vrule\H かき◆
154 これは,意味のないサンプルテキストです.\vrule
155 \vbox{\tate\hsize=50mm 縦垂直\H ああああああああああ%
156   あああああああああ\hfill\H}%
157 \vrule\H ◆ああああ
158 これは,意味のないサンプルテキストです.\vrule
159 \hbox{\dtou 下水平\H }\vrule\H おおおお
160 これは,意味のないサンプルテキストです.
161 \vrule\vbox{\dtou\hsize=50mm 下垂直\H ああああああああああ%
162   あああああああああ\hfill\H}%
163 \vrule\H これは,意味のないサンプルテキストです.
164 }
165 \copy0
166 \vfill\eject
167
168 \message{^^JYOKO, DTOU IN TATE (VMODE)^^J}
169 \vbox{\tate\hsize=100mm
170 縦垂直\H\vrule\hbox{\yoko 横水平\H }\vrule\H かき◆
171 これは,意味のないサンプルテキストです.
172 \vrule\hbox{\tate 縦水平\H }\vrule\H おおおお
173 これは,意味のないサンプルテキストです.\vrule
174 \vbox{\yoko\hsize=50mm 横垂直\H ああああああああああ%
175   あああああああああ\hfill\H}%
176 \vrule\H かき◆
177 これは,意味のないサンプルテキストです.\vrule
178 \vbox{\tate\hsize=50mm 縦垂直\H ああああああああああ%
179   あああああああああ\hfill\H}%
180 \vrule\H ◆ああああ
181 これは,意味のないサンプルテキストです.\vrule
182 \hbox{\dtou 下水平\H }\vrule\H おおおお
183 これは,意味のないサンプルテキストです.
184 \vrule\vbox{\dtou\hsize=50mm 下垂直\H ああああああああああ%
185   あああああああああ\hfill\H}%
186 \vrule\H これは,意味のないサンプルテキストです.
187 }
188 \vfill\eject
189
190 \message{^^JYOKO, TATE IN DTOU (VMODE)^^J}
191 \vbox{\dtou\hsize=100mm
192 下垂直\H\vrule\hbox{\yoko 横水平\H }\vrule\H かき◆
193 これは,意味のないサンプルテキストです.
194 \vrule\hbox{\tate 縦水平\H }\vrule\H おおおお
195 これは,意味のないサンプルテキストです.\vrule
196 \vbox{\yoko\hsize=50mm 横垂直\H ああああああああああ%
197   あああああああああ\hfill\H}%
198 \vrule\H かき◆
199 これは,意味のないサンプルテキストです.\vrule
200 \vbox{\tate\hsize=50mm 縦垂直\H ああああああああああ%
201   あああああああああ\hfill\H}%
202 \vrule\H ◆ああああ
203 これは,意味のないサンプルテキストです.\vrule
204 \hbox{\dtou 下水平\H }\vrule\H おおおお
205 これは,意味のないサンプルテキストです.
206 \vrule\vbox{\dtou\hsize=50mm 下垂直\H ああああああああああ%
207   あああああああああ\hfill\H}%
208 \vrule\H これは,意味のないサンプルテキストです.
209 }
210
211 \vfill\eject
212
213 \vbox{\tate\hsize100mm
214 \tfont\f=KozMinPr6N-Regular.otf:jfm=ujisv \f
215
216 \ltjsetparameter{yalbaselineshift=.25em}\baselineskip15pt\parindent\zw
217 \LaTeX の特徴として、テキストファイルであるソースコードを入力として処理することでDVIや
218 PDFなどの表示形式を出力として得ることが挙げられる。
219
220 \LaTeX の最大の長所は、\TeX に由来する高品質で自由度の高い組版処理能力である。組版処理能力
221 は一般向けの出版物の作成にも充分に耐えられるものであり、実際の出版例もある。
222 中でも数式組版の品質が高い。さらに、数式専用の命令文(コマンド)が用意されているので、
223 単純なソースコードで高品質な数式表示を得られる。そのため、数式を多く含む自然科学系や工学系
224 の出版物などでは、\LaTeX 形式での投稿が標準的なフォーマットとされていることも多い。
225
226 くわえて、ソースコードに詳細な設定を記述することで、文書のスタイル(表示形式、見栄え、たと
227 えばレイアウトやフォントなど)を自在に調節できる。また、ソースコード上で文書内容・文書構造
228 (章・節・段落や強調箇所など)と文書スタイルの設定との分離が可能である。そのため、同一文書
229 内で終始一貫したスタイをル保つことができる。また、同じ文書内容でレイアウトやフォントだけを
230 変えることができるなど、文書内容データの再利用性が高い。一度スタイル設定を決めてしまえば、
231 あとは文書内容の記述に専念することができるという利点もある。論文などの投稿では、学術雑
232 誌のスタイルを記述したファイル(パッケージファイル)を Web からダウンロードして利用するこ
233 とで、統一されたスタイルで論文を投稿することができ、論文の投稿者と雑誌の編集者とのやり取り
234 を簡略化できる。Kile、TeXShop、TeXworks、EasyTeX、WinShell などの \TeX 用エ
235 ディタや、野鳥(やてふ、YaTeX)、TeXlipse、KaTeX(花鳥、かてふ)、祝鳥
236 (のりてふ)、M's TeX Helper 2など の\TeX 用テキストエディタマクロを兼用することに
237 よって、より効率的な文章作成が可能ともなる。またMapleやMathematicaなどでドキュメントを
238 作成し、\TeX 形式で出力することも可能である。
239
240 \null\hfill
241 (Wikipediaの「\LaTeX」の記事より.8/13現在)
242 }
243
244 \message{^^Jget/set box dimension^^J}
245
246 \def\\{\hfill\break}
247 \setbox12288=\hbox{%
248   \tate\ltjsetparameter{talbaselineshift=0pt}Htp}
249 縦ボックス\hbox{\vrule\copy12288\vrule}寸法\quad
250 \vbox{\hsize=80pt\yoko\noindent
251   WD: \the\ltjgetwd12288, \\HT: \the\ltjgetht12288, \\DP: \the\ltjgetdp12288%
252 }
253 \vbox{\hsize=80pt\tate\noindent
254   WD: \the\ltjgetwd12288, \\HT: \the\ltjgetht12288, \\DP: \the\ltjgetdp12288%
255 }
256 \ltjsetwd12288=100pt
257 \setbox0=\hbox{\tate\ltjsetht12288=10pt}
258 \vbox{\hsize=80pt\yoko\noindent
259   WD: \the\ltjgetwd12288, \\HT: \the\ltjgetht12288, \\DP: \the\ltjgetdp12288%
260 }
261 \vbox{\hsize=80pt\tate\noindent
262   WD: \the\ltjgetwd12288, \\HT: \the\ltjgetht12288, \\DP: \the\ltjgetdp12288%
263 }
264
265
266
267 \setbox12288=\hbox{%
268   \yoko\ltjsetparameter{yalbaselineshift=0pt}Htp}
269 横ボックス\hbox{\vrule\copy12288\vrule}寸法\quad
270 \vbox{\hsize=80pt\yoko\noindent
271   WD: \the\ltjgetwd12288, \\HT: \the\ltjgetht12288, \\DP: \the\ltjgetdp12288%
272 }
273 \vbox{\hsize=80pt\tate\noindent
274   WD: \the\ltjgetwd12288, \\HT: \the\ltjgetht12288, \\DP: \the\ltjgetdp12288%
275 }
276 \ltjsetwd12288=100pt
277 \setbox0=\hbox{\tate\ltjsetht12288=10pt}
278 \vbox{\hsize=80pt\yoko\noindent
279   WD: \the\ltjgetwd12288, \\HT: \the\ltjgetht12288, \\DP: \the\ltjgetdp12288%
280 }
281 \vbox{\hsize=80pt\tate\noindent
282   WD: \the\ltjgetwd12288, \\HT: \the\ltjgetht12288, \\DP: \the\ltjgetdp12288%
283 }
284
285 dimexpr でも使えるかな?\the \dimexpr2\ltjgetwd` +\ltjgetwd200+1pt\relax
286
287 \vfill\eject
288
289 \message{^^Jalign^^J}
290
291 \parindent0pt
292 \hrule width 40mm
293
294 \hbox{\yoko\hsize40mm\baselineskip20pt 横水平
295 \valign{A#\hfil&B#\hfil&C#\hfill\vrule\cr
296 あいうえお&ABC&XYZ\cr
297 abc&かきくけこ&xyz\cr}横水平}
298 \moveright40mm\hbox{\vrule width 40mm height.4pt}
299
300 \hbox{\tate\hsize40mm\baselineskip20pt 縦水平
301 \valign{甲#\hfil&乙#\hfil&丙#\hfill\vrule\cr
302 あいうえお&ABC&XYZ\cr
303 abc&かきくけこ&xyz\cr}}%
304 %\tracingonline\showboxdepth2\showboxbreadth1000\showlists}
305 \moveright40mm\hbox{\vrule width 40mm height.4pt}
306
307 \vfill\eject
308
309 \vbox{\yoko\hsize40mm\baselineskip20pt  横垂直
310 \halign{A#\hfil&B#\hfil&C#\hfill\vrule\cr
311 あいうえお&ABC&XYZ\cr
312 abc&かきくけこ&xyz\cr}}%
313 \moveright40mm\hbox{\vrule width 40mm height.4pt}
314
315 \vbox{\tate\baselineskip20pt  縦垂直
316 \halign{甲#\hfil&乙#\hfil&丙#\hfill\vrule\cr
317 あいうえお&ABC&XYZ\cr
318 abc&かきくけこ&xyz\cr}}%
319 \moveright40mm\hbox{\vrule width 40mm height.4pt}
320
321 \vfill\eject
322
323 \message{^^Jdir node^^J}
324 \font\seventt=cmtt10 at 7pt
325 \font\fivett=cmtt10 at 5pt
326
327 \setbox0=\hbox{\yoko pF}
328 \setbox1=\hbox{\tate\copy0}
329 \fbox{\copy1}
330 \setbox1=\copy0
331 {\obeylines\seventt\baselineskip=10pt
332 \directlua{luatexja.ext_show_node_list(tex.box[1], 'lastbox>   ', tex.print)}\par}
333 \setbox0=\hbox{\yoko \ltjsetwd1=50pt}
334 {\obeylines\seventt\baselineskip=10pt
335 \directlua{luatexja.ext_show_node_list(tex.box[1], 'dir node1> ', tex.print)}\par}
336 \setbox0=\hbox{\dtou \ltjsetwd1=2pt}
337 {\obeylines\seventt\baselineskip=10pt
338 \directlua{luatexja.ext_show_node_list(tex.box[1], 'dir node2> ', tex.print)}\par}
339
340 \setbox0=\hbox{\yoko \ltjsetht1=30pt}
341 {\obeylines\seventt\baselineskip=10pt
342 \directlua{luatexja.ext_show_node_list(tex.box[1], 'alter Yht> ', tex.print)}\par}
343
344 \setbox0=\hbox{\tate \ltjsetwd1=50pt}
345 {\obeylines\seventt\baselineskip=10pt
346 \directlua{luatexja.ext_show_node_list(tex.box[1], 'alter Twd> ', tex.print)}\par}
347
348 \setbox0=\hbox{\utod \ltjsetht1=50pt}
349 {\obeylines\seventt\baselineskip=10pt
350 \directlua{luatexja.ext_show_node_list(tex.box[1], 'alter Uht> ', tex.print)}\par}
351
352 \setbox0=\hbox{\yoko \ltjsetht1=70pt}
353 {\obeylines\seventt\baselineskip=10pt
354 \directlua{luatexja.ext_show_node_list(tex.box[1], 'alter Yht> ', tex.print)}\par}
355
356 %% unwrap
357 \setbox2=\hbox{\yoko \copy1}
358 \setbox2=\hbox{\yoko \unhbox2\global\setbox1=\lastbox}
359 {\obeylines\seventt
360 \directlua{luatexja.ext_show_node_list(tex.box[1], 'unwrapped> ', tex.print)}}
361
362 \setbox0=\hbox{\utod \ltjsetht1=50pt}
363 {\obeylines\seventt\baselineskip=10pt
364 \directlua{luatexja.ext_show_node_list(tex.box[1], 'alter Uht> ', tex.print)}\par}
365
366
367
368 \setbox0\hbox{\yoko a あ }\setbox1=\hbox{\tate\ltjsetht0=2pt}
369
370 \fbox{\copy0}
371 \vbox{\yoko\hsize=60pt\noindent\the\ltjgetwd0,\\\the\ltjgetht0,\\\the\ltjgetdp0}
372 \vbox{\tate\hsize=60pt\noindent\the\ltjgetwd0,\\\the\ltjgetht0,\\\the\ltjgetdp0}
373 \vbox{\dtou\hsize=60pt\noindent\the\ltjgetwd0,\\\the\ltjgetht0,\\\the\ltjgetdp0}
374 \vbox{\utod\hsize=60pt\noindent\the\ltjgetwd0,\\\the\ltjgetht0,\\\the\ltjgetdp0}
375 %
376 \ltjsetwd0=40pt
377 \setbox9\hbox{\utod \ltjsetdp0=10pt}
378 \vbox{\yoko\hsize=60pt\noindent\the\ltjgetwd0,\\\the\ltjgetht0,\\\the\ltjgetdp0}
379 \vbox{\tate\hsize=60pt\noindent\the\ltjgetwd0,\\\the\ltjgetht0,\\\the\ltjgetdp0}
380 \vbox{\dtou\hsize=60pt\noindent\the\ltjgetwd0,\\\the\ltjgetht0,\\\the\ltjgetdp0}
381 \vbox{\utod\hsize=60pt\noindent\the\ltjgetwd0,\\\the\ltjgetht0,\\\the\ltjgetdp0}
382
383 \vfill\eject
384 \message{^^Jothers^^J}
385
386
387 p\kern-.15em\TeX\ bug (2011-02-24)
388 \setbox0=\hbox{\tate a}\fbox{\copy0}%
389 \hbox{\yoko\ltjsetht0=30pt
390 \hbox{\dtou\dimen0=\ltjgetht0}
391 \the\ltjgetht0}% OK. 30pt
392
393 \def\R{012345678901234567890123456789}
394 \vbox{\tate\hsize=4\zw\R\R\R\R}
395
396
397 %\tracingall
398 \def\showdir{\ifcase\ltjgetparameter{direction} %
399 ?\or D\or ?\or T\or Y\or ?\or ?\or?\or?\or?\or?\or U\fi}
400 \showdir
401 \hbox{\tate {\dtou 感じ\showdir}\showdir}
402 \showdir
403
404
405 \vbox{\tate\hsize=100mm
406 日本語中に数式を打ってみる%
407 $\ltjgetparameter{talbaselineshift}abc\hbox{にほんごABC\hbox{\tate たて\showdir}}\showdir$
408 $$
409  \ltjgetparameter{talbaselineshift}abc\hbox{にほんごABC\hbox{\tate たて\showdir}}\showdir
410 $$
411 あいうえお}
412
413 \vsize250mm
414 \def\F#1{%
415 \medskip
416 \setbox0=\hbox{\csname #1\endcsname
417    \hbox{\yoko Y}\hbox{\tate T}\hbox{\dtou D}\hbox{\utod U}}
418 {\obeylines\fivett\baselineskip=7pt
419 \directlua{luatexja.ext_show_node_list(tex.box[0], 'hbox #1> ', tex.print)}\par}}
420
421 \F{yoko}
422 \F{tate}
423 \F{dtou}
424 \F{utod}
425
426 \hbox{\inhibitglue\tate}
427 \hbox{\ltjsetparameter{kanjiskip=0pt}\tate}
428
429 \leavevmode\hbox{A}%
430 \setbox0\hbox{}%
431 \setbox1=\lastbox\the\wd1
432 \end