OSDN Git Service

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