OSDN Git Service

ltj-plain.sty: hook \end to avoid unintended blank page.
[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 \vfill\eject
175
176 \vbox{\tate\hsize100mm
177 \tfont\f=KozMinPr6N-Regular.otf:+vert;jfm=ujisv \f
178
179 \ltjsetparameter{yalbaselineshift=.25em}\baselineskip15pt
180 \LaTeX の特徴として、テキストファイルであるソースコードを入力として処理することでDVIや
181 PDFなどの表示形式を出力として得ることが挙げられる。
182
183 \LaTeX の最大の長所は、\TeX に由来する高品質で自由度の高い組版処理能力である。組版処理能力
184 は一般向けの出版物の作成にも充分に耐えられるものであり、実際の出版例もある。
185 中でも数式組版の品質が高い。さらに、数式専用の命令文(コマンド)が用意されているので、
186 単純なソースコードで高品質な数式表示を得られる。そのため、数式を多く含む自然科学系や工学系
187 の出版物などでは、\LaTeX 形式での投稿が標準的なフォーマットとされていることも多い。
188
189 くわえて、ソースコードに詳細な設定を記述することで、文書のスタイル(表示形式、見栄え、たと
190 えばレイアウトやフォントなど)を自在に調節できる。また、ソースコード上で文書内容・文書構造
191 (章・節・段落や強調箇所など)と文書スタイルの設定との分離が可能である。そのため、同一文書
192 内で終始一貫したスタイをル保つことができる。また、同じ文書内容でレイアウトやフォントだけを
193 変えることができるなど、文書内容データの再利用性が高い。一度スタイル設定を決めてしまえば、
194 あとは文書内容の記述に専念することができるという利点もある。論文などの投稿では、学術雑
195 誌のスタイルを記述したファイル(パッケージファイル)を Web からダウンロードして利用するこ
196 とで、統一されたスタイルで論文xを投稿することができ、論文の投稿者と雑誌の編集者とのやり取り
197 を簡略化できる。Kile、TeXShop、TeXworks、EasyTeX、WinShell などの \TeX 用エ
198 ディタや、野鳥(やてふ、YaTeX)、TeXlipse、KaTeX(花鳥、かてふ)、祝鳥
199 (のりてふ)、M's TeX Helper 2など の\TeX 用テキストエディタマクロを兼用することに
200 よって、より効率的な文章作成が可能ともなる。またMapleやMathematicaなどでドキュメントを
201 作成し、\TeX 形式で出力することも可能である。
202
203 }
204
205 \message{^^Jget/set box dimension^^J}
206
207 \def\\{\hfill\break}
208 \setbox12288=\hbox{%
209   \tate\ltjsetparameter{talbaselineshift=0pt}Htp}
210 縦ボックス\hbox{\vrule\copy12288\vrule}寸法\quad
211 \vbox{\hsize=80pt\yoko\noindent
212   WD: \the\ltjgetwd{12288}, \\HT: \the\ltjgetht{12288}, \\DP: \the\ltjgetdp{12288}%
213 }
214 \vbox{\hsize=80pt\tate\noindent
215   WD: \the\ltjgetwd{12288}, \\HT: \the\ltjgetht{12288}, \\DP: \the\ltjgetdp{12288}%
216 }
217 \ltjsetwd12288=100pt
218 \setbox0=\hbox{\tate\ltjsetht12288=10pt}
219 \vbox{\hsize=80pt\yoko\noindent
220   WD: \the\ltjgetwd{12288}, \\HT: \the\ltjgetht{12288}, \\DP: \the\ltjgetdp{12288}%
221 }
222 \vbox{\hsize=80pt\tate\noindent
223   WD: \the\ltjgetwd{12288}, \\HT: \the\ltjgetht{12288}, \\DP: \the\ltjgetdp{12288}%
224 }
225
226
227
228 \setbox12288=\hbox{%
229   \yoko\ltjsetparameter{yalbaselineshift=0pt}Htp}
230 横ボックス\hbox{\vrule\copy12288\vrule}寸法\quad
231 \vbox{\hsize=80pt\yoko\noindent
232   WD: \the\ltjgetwd{12288}, \\HT: \the\ltjgetht{12288}, \\DP: \the\ltjgetdp{12288}%
233 }
234 \vbox{\hsize=80pt\tate\noindent
235   WD: \the\ltjgetwd{12288}, \\HT: \the\ltjgetht{12288}, \\DP: \the\ltjgetdp{12288}%
236 }
237 \ltjsetwd12288=100pt
238 \setbox0=\hbox{\tate\ltjsetht12288=10pt}
239 \vbox{\hsize=80pt\yoko\noindent
240   WD: \the\ltjgetwd{12288}, \\HT: \the\ltjgetht{12288}, \\DP: \the\ltjgetdp{12288}%
241 }
242 \vbox{\hsize=80pt\tate\noindent
243   WD: \the\ltjgetwd{12288}, \\HT: \the\ltjgetht{12288}, \\DP: \the\ltjgetdp{12288}%
244 }
245
246 dimexpr でも使えるかな?\the \dimexpr2\ltjgetwd{` }+\ltjgetwd{200}+1pt\relax
247
248 \vfill\eject
249
250 \message{^^Jalign^^J}
251
252 \parindent0pt
253 \hrule width 40mm
254
255 \hbox{\yoko\hsize40mm\baselineskip20pt 横水平
256 \valign{A#\hfil&B#\hfil&C#\hfill\vrule\cr
257 あいうえお&ABC&XYZ\cr
258 abc&かきくけこ&xyz\cr}横水平}
259 \moveright40mm\hbox{\vrule width 40mm height.4pt}
260
261 \hbox{\tate\hsize40mm\baselineskip20pt 縦水平
262 \valign{甲#\hfil&乙#\hfil&丙#\hfill\vrule\cr
263 あいうえお&ABC&XYZ\cr
264 abc&かきくけこ&xyz\cr}}%
265 %\tracingonline\showboxdepth2\showboxbreadth1000\showlists}
266 \moveright40mm\hbox{\vrule width 40mm height.4pt}
267
268 \vfill\eject
269
270 \vbox{\yoko\hsize40mm\baselineskip20pt  横垂直
271 \halign{A#\hfil&B#\hfil&C#\hfill\vrule\cr
272 あいうえお&ABC&XYZ\cr
273 abc&かきくけこ&xyz\cr}}%
274 \moveright40mm\hbox{\vrule width 40mm height.4pt}
275
276 \vbox{\tate\baselineskip20pt  縦垂直
277 \halign{甲#\hfil&乙#\hfil&丙#\hfill\vrule\cr
278 あいうえお&ABC&XYZ\cr
279 abc&かきくけこ&xyz\cr}}%
280 \moveright40mm\hbox{\vrule width 40mm height.4pt}
281
282 \vfill\eject
283
284 \message{^^Jdir node^^J}
285 \font\seventt=cmtt10 at 7pt
286
287 \setbox0=\hbox{\yoko pF}
288 \setbox1=\hbox{\tate\box0}
289 \fbox{\copy1}
290 \unhcopy1\setbox1=\lastbox %% box1: dir_node
291 \setbox0=\hbox{\yoko \ltjsetwd1=50pt}
292 \setbox0=\hbox{\dtou \ltjsetwd1=2pt}
293 {\obeylines\seventt\baselineskip=10pt
294 \directlua{luatexja.ext_show_node_list(tex.box[1], 'dir node>  ', tex.print)}\par}
295
296 \setbox0=\hbox{\yoko \ltjsetht1=30pt}
297 {\obeylines\seventt\baselineskip=10pt
298 \directlua{luatexja.ext_show_node_list(tex.box[1], 'alter Yht> ', tex.print)}\par}
299
300 \message{HOGE}
301 \setbox0=\hbox{\tate \ltjsetwd1=50pt\immediate\message{PIYO}}
302
303 {\obeylines\seventt\baselineskip=10pt\message{HOGE}\hbox{a}\message{HOGE}
304 \directlua{luatexja.ext_show_node_list(tex.box[1], 'alter Twd> ', tex.print)}\par}
305
306 \setbox0=\hbox{\yoko \ltjsetht1=70pt}
307 {\obeylines\seventt\baselineskip=10pt
308 \directlua{luatexja.ext_show_node_list(tex.box[1], 'alter Yht> ', tex.print)}\par}
309
310 %% unwrap
311 \setbox2=\hbox{\yoko \copy1}
312 \setbox2=\hbox{\yoko \unhbox2\global\setbox1=\lastbox}
313 {\obeylines\seventt
314 \directlua{luatexja.ext_show_node_list(tex.box[1], 'unwrapped> ', tex.print)}}
315
316
317
318 \setbox0\hbox{\yoko a あ }\setbox1=\hbox{\tate\ltjsetht0=2pt}
319
320 \fbox{\copy0}
321 \vbox{\yoko\hsize=60pt\noindent\the\ltjgetwd0,\\\the\ltjgetht0,\\\the\ltjgetdp0}
322 \vbox{\tate\hsize=60pt\noindent\the\ltjgetwd0,\\\the\ltjgetht0,\\\the\ltjgetdp0}
323 \vbox{\dtou\hsize=60pt\noindent\the\ltjgetwd0,\\\the\ltjgetht0,\\\the\ltjgetdp0}
324 %
325 \ltjsetwd0=40pt
326 \vbox{\yoko\hsize=60pt\noindent\the\ltjgetwd0,\\\the\ltjgetht0,\\\the\ltjgetdp0}
327 \vbox{\tate\hsize=60pt\noindent\the\ltjgetwd0,\\\the\ltjgetht0,\\\the\ltjgetdp0}
328 \vbox{\dtou\hsize=60pt\noindent\the\ltjgetwd0,\\\the\ltjgetht0,\\\the\ltjgetdp0}
329
330 p\kern-.15em\TeX\ bug (2011-02-24)
331 \setbox0=\hbox{\tate a}\fbox{\copy0}%
332 \hbox{\yoko\ltjsetht0=30pt
333 \hbox{\dtou\dimen0=\ltjgetht0}
334 \the\ltjgetht0}% OK. 30pt
335
336 \def\R{012345678901234567890123456789}
337 \vbox{\tate\hsize=4\zw\R\R\R\R}
338 ABCDE
339
340 \end
341