OSDN Git Service

cf7695366630c0266b856ace67bb90bb35493eb4
[luatex-ja/luatexja.git] / test / test14-ruby.tex
1 %#! luajitlatex
2 %%% a test of ruby.
3 \documentclass[b5paper,10pt]{ltjsarticle}
4 \usepackage{fontspec,luacode,luatexja-otf,amsmath}
5 \usepackage{unicode-math}
6 \setmathfont{XITS Math}
7 \setmainfont[Ligatures=TeX]{TeX Gyre Termes}
8 \setsansfont[Ligatures=TeX]{TeX Gyre Heros}
9 \setmonofont[Ligatures=TeX]{LMMono10-Regular}
10 \usepackage{luatexja-ruby,showexpl,booktabs}
11 \lstset{preset=\huge,basicstyle=\ttfamily}
12 \fboxsep=0mm
13 %\usepackage{lua-visual-debug}
14
15 \def\kata{\ltjsetruby{kata}} 
16 % 肩つきルビ用簡易設定.グループルビでは使用しないこと
17 \def\notalign{\setkeys[ltj]{ruby}{stretchhead = {1}{2}{1}, stretchend = {1}{2}{1}}}
18 % 行頭・行末で揃えない
19
20 \def\Node#1#2{\,\vcenter{\hbox{\fboxsep=1pt\fbox{\vbox{\small\halign{\hfil##\hfil\cr
21   #1\mathstrut\cr\noalign{\hrule height.4pt}\strut#2\cr}}}}\,}}
22 \def\LuaTeX{Lua\TeX}
23
24 % 三分ルビ用
25 \DeclareFontShape{JY3}{mc}{mc}{n}{<-> [0.92487] 
26   psft:Ryumin-Light:extend=0.67;jfm=ujisc33}{}
27
28 \title{ルビ実装のサンプル}
29 \begin{document}
30 %\fontsize{13.19873}{15}\selectfont%
31
32 \maketitle
33
34 \section{使い方}
35 \begin{itemize}
36 \item パッケージ読み込み:\verb+\usepackage{luatexja-ruby}+ のみ.\LaTeXe のみサポート.
37 \item 命令:
38 \begin{itemize}
39 \item \verb+\ltjruby[option]{親|文|字}{おや|も|じ}+
40 \item \verb|\ltjsetruby{option}|
41 \end{itemize}
42 \item \verb|\ltjsetparameter|に追加のキー
43 \begin{itemize}
44 \item \verb+rubypreintrusion={<char_code>, <pre_int>}+:ルビ全角単位.
45 \verb+<char_code>+ の文字に掛けられる前のルビ文字列の最大長.
46 \item \verb+rubypostintrusion={<char_code>, <post_int>}+:ルビ全角単位.
47 \end{itemize}
48 \item \verb|\ltjsetruby{option}| 他でサポートするオプション:後ろに指定したものが優先
49 \begin{itemize}
50 \item \verb+mode+:進入処理のモードを表すbit vector.意味はluatexja-ruby.sty参照.
51 \item \verb+intrusionpre=<real>+:前進入量指定.ルビ全角単位で指定.
52 負の長さは文字種に応じた自動指定を意味.
53 \item \verb+intrusionpost=<real>+:後進入量指定.
54 \item \verb+stretchhead={left}{middle}{right}+:行頭形でルビ文字の合計長が親文字の合計長より
55 長い時に,親文字間に入れる空白の割合.それぞれ0--7の自然数で指定.
56 \item \verb+stretchend={left}{middle}{right}+:行末形〜.
57 \item \verb+stretch={left}{middle}{right}+:行中形〜.
58 \item \verb+stretchruby={left}{middle}{right}+:ルビ文字の方が長い時の空白の割合.
59 \item \verb+maxmargin=<real>+:親文字の方がルビより長い時に,ルビの先頭と親文字の先頭に許される
60 最大の空白量.親文字全角単位.
61 \item \verb+rubysize=<real>+:ルビ文字の親文字に対する大きさ.
62 \end{itemize}
63 \end{itemize}
64 \section{TODO}
65 \begin{itemize}
66 \item 熟語ルビの配置が「モノルビの連続」「グループルビ」のどちらかしかない(行分割は可能).
67 「一字だけかけても良い」なんてどうやるんだろう.
68 \item ルビ文字のはみ出しが繋がらないようにする処理(図3.82)には注意.
69 例えば,
70 \begin{center}\Large
71 \ltjsetparameter{rubypreintrusion={`◆,1}, 
72   rubypostintrusion={`◆,1}}
73 \ruby{陵}{りよう}◆\ruby{陵}{みささぎ}
74 \end{center}
75 において,後者の「\ruby{陵}{みささぎ}」のルビが前の「◆」にかかる量は次のように決まる:
76 \begin{enumerate}
77 \item 1回目の実行では,行分割前に「\ruby{陵}{りよう}」の後側進入量は前もって知ることはでき
78       ない.なので,「\ruby{陵}{りよう}」は行中形で組まれるものとして
79 「\ruby{陵}{みささぎ}」前側進入許容量は
80 \[
81  \underbrace{0.5\,\mathrm{zw}}_{\text{元々の許容量}}
82 -\underbrace{0.25\,\mathrm{zw}}_{\text{前のルビの後側進入量}}=0.25\,\mathrm{zw}
83 \]
84 となる.なお,行分割後,「\ruby{陵}{りよう}」が実際に組まれた時に使われた後側進入量は
85 auxファイルに記述される.
86 \item 2回目以降の実行では,auxファイルに保存された「\ruby{陵}{りよう}」の後側進入量
87 を用いて,「\ruby{陵}{みささぎ}」前側進入許容量を計算する.
88 \end{enumerate}
89 なお,auxファイルに保存する際,各 \verb+\ruby+ 命令の呼び出しを識別するキーが必要になるが,
90 そのキーとしては単純に「何個目の \verb+\ruby+ 命令か」である.
91
92 \item 実装方法の都合上,ルビの直前・直後・途中で2箇所以上の改行が起きる場合
93 (以下のパーツの組み方が出てくる)に対応できない.
94 \begin{center}\small
95 \begin{tabular}{ll}
96 \toprule
97 \multicolumn{1}{c}{\sf 組み方}&\multicolumn{1}{c}{\sf サンプル}\\
98 \midrule
99 単独1&
100 \huge
101 \vrule{\color{blue}\gt\ruby[]{流}{りゆう}}\vrule\\
102 単独2&
103 \huge
104 \vrule{\color{blue}\gt\ruby[]{暢}{ちよう}}\vrule\\
105 単独$(1+2)$&
106 \huge
107 \vrule{\color{blue}\gt\ruby[stretch=010]{流|暢}{りゆう|ちよう}}\vrule\\
108 \bottomrule
109 \end{tabular}
110 \end{center}
111
112 \item 段落最終行の \verb+\parfillskip+ が(伸縮の結果)0\,pt以下であり,かつ
113 その直前がルビだった場合,該当のルビは行末形になる.
114 \end{itemize}
115
116 \section{実装の大まかな方法}
117 次の例で説明する.
118 \begin{LTXexample}
119 ……を\ruby{流|暢}{りゆう|ちよう}に……
120 \end{LTXexample}
121
122 \begin{enumerate}
123 \item \verb|\ruby|コマンド自体は,一旦次のnode listを値とするwhatsit~$W$を作って,
124 現在の水平リストへと挿入する(必要ならば\verb|\leavevmode|も実行):
125 \[
126  \Node{whatsit $w$}{value: 2}\longrightarrow 
127  \Node{hlist $s_1$}{「りゆう」}\longrightarrow
128  \Node{hlist $p_1$}{「流」}\longrightarrow
129  \Node{hlist $s_2$}{「ちよう」}\longrightarrow
130  \Node{hlist $p_2$}{「暢」}
131 \]
132 ここで,最初の$w$の値2は,ルビが2つのパーツ「\ruby{流}{りゆう}」「\ruby{暢}{ちよう}」からなっていることを
133 表している.この値を$\mathit{cmp}$とおこう.
134 $s_i$達の中の文字は既にルビの大きさである.
135 \item \LuaTeX-jaの和文処理グルー挿入処理において,
136 whatsit~$W$は,
137 「先頭が『流』,最後が『暢』であるようなhboxを\verb|\unhbox|で展開したもの」と扱われる.
138 言い換えれば,ルビ部分を無視した単なる「流暢」という和文文字の並びとして扱われる\footnote{「流」「暢」の間のグルーは既に入っている,と扱われる.}.
139 次のサンプルを参照
140 \begin{LTXexample}
141 \leavevmode\hbox{.}A\\
142 %↑xkanjiskip 
143 \ruby{.}{}A
144 %↑2分
145 \end{LTXexample}
146 \item 和文処理グルーの挿入が終わった後で,可動グループルビのためのノードの挿入に入る.
147 \begin{enumerate}
148 \item $W$の周辺は次のようなノード列になる.
149 \begin{align*}
150  (\text{other nodes})&\longrightarrow
151  \Node{glue $g_0$}{}\longrightarrow \Node{whatsit~$W$}{元からある}\longrightarrow \Node{rule $r_1$}{}
152 \\&\longrightarrow
153  \Node{glue $g_1$}{}\longrightarrow \Node{rule $r_2$}{}\longrightarrow 
154  \Node{glue $g_2$}{}\longrightarrow (\text{other nodes})
155 \end{align*}
156 $W$の前後に$2\mathit{cmp}+1=5$個のノードが挿入される.
157
158 \item このようにノードを挿入する目的は,\TeX の行分割処理自体に影響を加えずに可動グループルビ
159 を実現させることにある.
160 \begin{gather*}
161  (\text{other nodes})\longrightarrow
162  \Node{glue $g_0$}{}\longrightarrow \Node{whatsit~$W$}{元からある}\longrightarrow \Node{rule $r_1$}{}\\
163 \noalign{\hrulefill 行の境目\hrulefill}
164 \Node{rule $r_2$}{}\longrightarrow 
165  \Node{glue $g_2$}{}\longrightarrow (\text{other nodes})
166 \end{gather*}
167 のようになったとしたら,「\ruby{流}{りゆう}」「\ruby{暢}{ちよう}」の間で行分割が起きた,ということがわかり,
168 $g_i$,~$r_i$達のノードを適切に置き換えればよい(後で詳しく説明する).
169
170 \item なお,$r_i$達の高さ・深さは組み上がった後のそれである.
171 $g_i$,~$r_i$達の幅は,以下の対応に沿って算出する.
172
173 \begin{center}\small
174 \begin{tabular}{cllll}
175 \toprule
176 \multicolumn{1}{c}{\sf node名}&\multicolumn{1}{c}{\sf 組み方}&\multicolumn{1}{c}{\sf サンプル}%
177 &\multicolumn{1}{c}{\sf 対応するノード並び}\\
178 \midrule
179 $n_1$&行末1グループ&
180 \huge
181 \fbox{を}{\color{blue}\gt\ruby[intrusionpre=1,mode=5,stretch=110]{流}{りゆう}}\vrule
182 &
183 $g_0\rightarrow W\rightarrow r_1$\\
184 $n_2$&行末2グループ&
185 \huge
186 \fbox{を}{\color{blue}\gt\ruby[intrusionpre=1,mode=1,stretch=110]{流|暢}{りゆう|ちよう}}\vrule
187 &
188 $g_0\rightarrow W\rightarrow r_1\rightarrow g_2 \rightarrow r_2$\\
189 $n_3$&行頭1グループ&
190 \huge
191 \vrule{\color{blue}\gt\ruby[intrusionpost=1,mode=1,stretch=011]{暢}{ちよう}}\fbox{に}
192 &
193 $r_2\rightarrow g_2$\\
194 $n_4$&行頭2グループ&
195 \huge
196 \vrule{\color{blue}\gt\ruby[intrusionpost=1,mode=1,stretch=011]{流|暢}{りゆう|ちよう}}\fbox{に}
197 &
198 $W\rightarrow r_1\rightarrow g_2 \rightarrow r_2\rightarrow g_2$\\
199 $n_5$&行中&
200 \huge
201 \fbox{を}{\color{blue}\gt\ruby[intrusionpost=0.5,intrusionpre=0.5,mode=1]{流|暢}{りゆう|ちよう}}\fbox{に}
202 &
203 $g_0\rightarrow W\rightarrow r_1\rightarrow g_2 \rightarrow r_2\rightarrow g_2$\\
204
205 \bottomrule
206 \end{tabular}
207 \end{center}
208
209 \medskip
210
211 例えばこの場合,$n_5$に対して
212 \[
213  g_0+r_1+g_2+r_2+g_2 = 3\,\mathrm{zw}-(0.25\,\mathrm{zw}\times 2)=2.5\,\mathrm{zw}
214 \]
215 という方程式が立つ(zwは親文字全角の幅,進入量込).
216 $n_1$から$n_5$まで計5本の方程式が立つが,これらはGau\ss の消去法で解くことができて
217 $g_i$,~$r_i$達の幅が求まる.
218 \item また,ルビ処理を統括しているwhatsit~$W$の値も
219 \[
220  \Node{whatsit $w$}{value: 2}\longrightarrow 
221  \Node{vlist $n_1$}{末1}\longrightarrow
222  \Node{vlist $n_2$}{末2}\longrightarrow
223  \Node{vlist $n_3$}{頭1}\longrightarrow
224  \Node{vlist $n_4$}{頭2}\longrightarrow
225  \Node{vlist $n_5$}{中}
226 \]
227 に置き換えておく.
228 \end{enumerate}
229 \item \LuaTeX の行分割処理を普通に行う.
230 \item 行分割の結果に従って,$g_i$,~$r_i$達を適切に置換する.
231
232 例えば行分割の結果
233 \begin{gather*}
234  (\text{other nodes})\longrightarrow
235  \Node{glue $g_0$}{}\longrightarrow \Node{whatsit~$W$}{元からある}\longrightarrow \Node{rule $r_1$}{}
236   \tag{行A}\\
237 \noalign{\hrulefill 行の境目\hrulefill}
238 \Node{rule $r_2$}{}\longrightarrow 
239  \Node{glue $g_2$}{}\longrightarrow (\text{other nodes})\tag{行B}
240 \end{gather*}
241 のようになったとしよう.
242 \begin{enumerate}
243 \item 処理は段落の上の行から順番に行われる.行Aの処理がまわってきたとしよう.
244
245 \item 行Aの先頭から順番に眺めていく.すると「whatsit~$W$由来」のノード,$g_0$,~$W$,~$r_1$が見つかり,
246 行Aはここで終わっている.
247
248 まず,行Aのhboxの中身からwhatsit~$W$を消去(リストから取り除くだけで,$W$のメモリを解放するわけではない)する.
249 $g_0$,~($W$,)~$r_1$というノードの並びは,「行末1グループ」$n_1$に対応しているので,
250 $g_0$,~$r_1$を行Aから除去・メモリ解放し,代わりに$n_1$を行Aの中身に追加する.
251
252 \item 次に行Bの処理にうつる.行Aでルビの処理は完了していない(2パーツのルビなのにまだ1パーツ目しか使っていないからである)ので,
253 「whatsit~$W$由来」のノードがいくつか残っているはずである.
254
255 案の定,$r_2$,~$g_2$というノード列が見つかった.これは「行頭1グループ」$n_3$に対応しているので,
256 $r_2$,~$g_2$を行Bから除去・メモリ解放し,代わりに$n_3$を行Bの中身に挿入する.
257
258 \item これで2パーツとも使い切ったことになるので,
259 隔離しておいた$W$を,(使われなかった$n_2$,~$n_4$,~$n_5$などと共に)メモリ解放する.結果として
260 次のようになった:
261 \begin{gather*}
262  (\text{other nodes})\longrightarrow
263  \Node{vlist $n_1$}{末1}\tag{行A}\\
264 \noalign{\hrulefill 行の境目\hrulefill}
265 \Node{vlist $n_3$}{頭1}\longrightarrow (\text{other nodes})\tag{行B}
266 \end{gather*}
267 \end{enumerate}
268 \end{enumerate}
269
270
271 \paragraph{進入(intrusion)と突出(protrusion)}\ 
272
273 進入ありの例:\quad と\ruby{暁}{あかつき}の
274
275 進入なしの例:\quad {\setkeys[ltj]{ruby}{mode=0}と\ruby{暁}{あかつき}の}
276
277 突出ありの例:\quad {\setkeys[ltj]{ruby}{stretch={1}{2}{1}}\ruby{聴衆}{ちようしゆう}}
278
279 突出なしの例:\quad {\setkeys[ltj]{ruby}{stretch={0}{2}{0}}\ruby{聴衆}{ちようしゆう}}
280
281
282 \paragraph{mode}\ 
283
284 mode 00xx: {\setkeys[ltj]{ruby}{mode=1}は\ruby{美}{うつく}しい
285   \quad は\ruby{聴衆}{ちようしゆう}と}
286
287 mode 01xx: {\setkeys[ltj]{ruby}{mode=5}は\ruby{美}{うつく}しい
288   \quad は\ruby{聴衆}{ちようしゆう}と}
289
290 mode 10xx: {\setkeys[ltj]{ruby}{mode=9}は\ruby{美}{うつく}しい
291   \quad は\ruby{聴衆}{ちようしゆう}と}
292
293 mode 11xx: {\setkeys[ltj]{ruby}{mode=13}%
294 \ltjsetparameter{rubypreintrusion={`立,0.5}, 
295   rubypostintrusion={`立,0.5}}は\ruby{暁}{あかつき}立\quad
296 は\ruby{聴衆}{ちようしゆう}立\par}
297 ↑ここでは「立」には0.5字がけを許容
298
299 中付きでは00xx, 11xxを選択して下さい
300
301
302 \section{いくつかの例}
303 \def\rubytest{\ruby{黄金橋}{ゴールデンゲートブリッジ}\relax}
304
305 \setbox0=\vbox{\hsize=22\zw%
306 ああああ\rubytest いうえおかきくけこ
307 あ\rubytest いうえおかきくけこ
308 あ\rubytest いうえおかきくけこ
309 あ\rubytest いうえおかきくけこ
310 あ\rubytest いうえおかきくけこ
311 あ\rubytest いうえおかきくけこ}
312 %\directlua{ltj.ext_show_node_list(tex.box[0], '? ', print)}
313 \fbox{\box0}
314
315 \def\rubytest{\ruby{国府津}{こうづ}\relax}
316 % グループルビ
317
318 \setbox0=\vbox{\hsize=18\zw%
319 あ\rubytest いうえおかきくけこ
320 あ\rubytest いうえおかきくけこ
321 あ\rubytest いうえおかきくけこ
322 あ\rubytest いうえおかきくけこ
323 あ\rubytest いうえおかきくけこ
324 あ\rubytest いうえおかきくけこ}
325 %\directlua{ltj.ext_show_node_list(tex.box[0], '? ', print)}
326 \fbox{\box0}
327
328 \def\rubytest{\ruby{●●|◆}{◆◆◆◆◆◆|●●●}\relax}
329 \setbox0=\vbox{\hsize=19\zw%
330 あ\rubytest いうえおかきくけこ
331 あ\rubytest いうえおかきくけこ
332 あ\rubytest いうえおかきくけこ
333 あ\rubytest いうえおかきくけこイ
334 あ\rubytest いうえおかきくけこ
335 あ\rubytest いうえおかきくけこウ
336 あ\rubytest いうえおかきくけこエ
337 あ\rubytest いうえおかきくけこ
338 あ\rubytest いうえおかきくけこ
339 あ\rubytest いうえおかきくけこ}
340 %\directlua{ltj.ext_show_node_list(tex.box[0], '? ', print)}
341 \fbox{\box0}
342
343 \def\rubytest{\ruby{●●|□}{◆◆◆|●●●}\relax}
344 \setbox0=\vbox{\hsize=19\zw%
345 あ\rubytest いうえおかきくけこ
346 あ\rubytest いうえおかきくけこ
347 あ\rubytest いうえおかきくけこ
348 あ\rubytest いうえおかきくけこイ
349 あ\rubytest いうえおかきくけこ
350 あ\rubytest いうえおかきくけこウ
351 あ\rubytest いうえおかきくけこエ
352 あ\rubytest いうえおかきくけこ
353 あ\rubytest いうえおかきくけこ
354 あ\rubytest いうえおかきくけこ}
355 %\directlua{ltj.ext_show_node_list(tex.box[0], '? ', print)}
356 \fbox{\box0}
357
358 \def\rubytest{\ruby{異|様}{い|よう}\relax}
359 \setbox0=\vbox{\hsize=19\zw%
360 あ\rubytest いうえくけこ
361 あ\rubytest いうえくけこ
362 あ\rubytest いうえくけこ
363 あ\rubytest いうえくけこイ
364 あ\rubytest いうえおかきくけこ}
365 %\directlua{ltj.ext_show_node_list(tex.box[0], '? ', print)}
366 \fbox{\box0}
367
368 \def\rubytest{\ruby{□|■|□}{■■|□□□|■■}\relax}
369
370 \setbox0=\vbox{\hsize=23\zw%
371 あ\rubytest いうえおかきくけこうえおかきくけこ
372 あ\rubytest いうえおかきくけこうえおかきくけこ
373 あ\rubytest いう□おかきくけこうえおかきくけこ
374 あ\rubytest いう□おかきくけこうえおかきくけこ
375 あ\rubytest いう□おかきくけこうえおかきくけこ
376 あ\rubytest いうえおかきくけこ}
377 \fbox{\box0}
378
379 \begin{description}
380 \def\sample{又\ruby{承}{うけたまわ}る\quad \ruby{疎}{そ}\quad は\ruby{俄}{にわか}勉強
381   \quad 後\ruby{俄}{にわか}勉強}
382 \item[標準] \sample
383 \item[肩つき] {\kata\sample}
384 \item[拡張肩つき]{\ltjsetruby{ekata}\sample}
385 \end{description}
386
387
388 \newpage
389 \section{jlreq 20120403の例}
390
391 \obeylines\newcommand*{\噂}{\CID{7642}}
392 %================================== 横組
393 \paragraph{3.3.1節}\ \par
394 3.49 \ruby{君|子}{くん|し}は\ruby{和}{わ}して\ruby{同}{どう}ぜず
395 3.50 \ruby{人}{ひと}に\ruby{誨}{おし}えて\ruby{倦}{う}まず\par% 中付き
396 3.51 \ruby{鬼}{き}\ruby{門}{もん}の\ruby{方}{ほう}\ruby{角}{がく}を% モノ中付き
397 \ruby{凝}{ぎょう}\ruby{視}{し}する
398 3.52 \ruby{鬼|門}{き|もん}の\ruby{方|角}{ほう|がく}を% 熟語(グループ扱い)
399 \ruby{凝|視}{ぎよう|し}する
400 3.53 \ruby{茅場町}{かやばちよう}\quad\ruby{茅場}{かやば}\ruby{町}{ちよう}\par% 複合語
401 % 3.53右の説明はこれでいいのか?
402 3.54 \ruby{紫陽花}{あじさい}\quad\ruby{坩堝}{るつぼ}\quad\ruby{田舎}{いなか}\par% 熟字訓 
403 3.55 \ruby{模型}{モデル}\quad\ruby{顧客}{クライアント}\quad% カタカナルビ
404 \ruby{境界面}{インターフエース}\quad\ruby{避難所}{アジール}
405 3.56 \ruby{編集者}{editor}\quad \ruby{editor}{エディター}% 欧文
406
407 \paragraph{3.3.3節}\ \par
408 3.58 に\ruby{幟}{のぼり}を\quad{\kata に\ruby{幟}{のぼり}を}%
409   \quad \ruby{韋}{い}\ruby{編}{へん}\ruby{三}{さん}\ruby{絶}{ぜつ}
410 3.59 に\ruby{幟}{\kanjiseries{mc}\selectfont のぼり}を
411 3.60 \ruby{韋}{い}\ruby{編}{へん}\ruby{三}{さん}\ruby{絶}{ぜつ}\quad%
412 {\setkeys[ltj]{ruby}{rubysize=0.4}% 文字サイズ変更
413   \ruby{韋}{い}\ruby{編}{へん}\ruby{三}{さん}\ruby{絶}{ぜつ}}
414
415 \paragraph{3.3.4節}\ \par
416 3.61図(両側ルビ)はまだ未サポートにより省略
417
418 \paragraph{3.3.5節 モノルビ}\ \par
419 3.62 の\ruby{葯}{やく}に
420 3.63 版面の\ruby{地}{ち}に\quad{\kata 版面の\ruby{地}{ち}に}
421 3.64× {\kata 版面の\ruby{地}{ち}に}(まだ縦組み未サポート)\par% 横組み肩つき
422 3.65 の\ruby{砦}{とりで}に\quad{\kata の\ruby{砦}{とりで}に}
423 {\kata 3.66上 の\ruby{旬}{しゆん}に\quad 後\ruby{旬}{しゆん}に
424 3.66下 の\ruby{旬}{しゆん}又\quad 後\ruby{旬}{しゆん}又\par}
425
426
427 \paragraph{3.3.6節 グループルビ}\ \par
428 3.67 は\ruby{冊子体}{コーデツクス}と
429 3.68 \ruby{模型}{モデル}\quad \ruby{利用許諾}{ライセンス}
430 3.69 {\setkeys[ltj]{ruby}{stretchruby=010}% 両端を揃える流儀
431   \ruby{模型}{モデル}\quad \ruby{利用許諾}{ライセンス}}
432 3.70 \ruby{なげきの聖母像}{ピエタ}←自動調整
433 3.71 \ruby{顧客}{クライアント}\quad \ruby{境界面}{インターフエース}
434 3.72 {\setkeys[ltj]{ruby}{stretch=010, stretchhead = 010, stretchend = 010}% はみ出さない流儀
435   \ruby{顧客}{クライアント}\quad \ruby{境界面}{インターフエース}}
436
437
438 \paragraph{3.3.7節 熟語ルビ}\ \par
439 3.73左 \ruby{杞|憂}{き|ゆう}\quad \ruby{畏|怖}{い|ふ}
440 3.73右 {\kata\ruby{杞|憂}{き|ゆう}\quad \ruby{畏|怖}{い|ふ}}
441 3.74 の\ruby{流|儀}{りゆう|ぎ}を\quad の\ruby{無|常}{む|じよう}を\quad%
442 の\ruby{成|就}{じよう|じゆ}を\quad
443 3.74 の\ruby{紋|章}{もん|しよう}を\quad の\ruby{象|徴}{しよう|ちよう}を
444
445 3.75 {\kata の\ruby{流|儀}{りゆう|ぎ}を\quad の\ruby{無|常}{む|じよう}を\quad%
446 の\ruby{成|就}{じよう|じゆ}を\quad 
447 3.75 の\ruby{紋|章}{もん|しよう}を\quad の\ruby{象|徴}{しよう|ちよう}を}
448
449 3.76× の\ruby{流}{りゆう}\ruby{儀}{ぎ}を\quad の\ruby{無}{む}\ruby{常}{じよう}を\quad%
450
451 要調整 3.77\ {\notalign%この図では揃えない
452 \hbox{\vrule\vbox{\hsize=10\zw あああああああの%
453   \ruby{流|儀}{りゆう|ぎ}がある.}\vrule}\quad%
454 % ↑どうすれば改行されるのだろう
455 \hbox{\vrule\vbox{\hsize=5\zw ……の\ruby{無|常}{む|じよう}を}\vrule}}
456
457 \paragraph{3.3.8節 ルビはみ出し}\ \par
458 3.78 \ruby{人}{ひと}は\ruby{死}{し}して\ruby{名}{な}を\ruby{残}{のこ}す\par% ベタ
459 要調整3.79 漢字の部首には\ruby{偏}{へん}・\ruby{冠}{かんむり}・\ruby{脚}{きやく}・%
460 \ruby{旁}{つくり}がある
461 要調整3.79 漢字の部首には\ruby{偏}{へん},\ruby{冠}{かんむり},\ruby{脚}{きやく},%
462 \ruby{旁}{つくり}がある
463 3.79 この\ruby{\噂}{うわさ}の好きな人は%
464 \ruby{懐}{ふところ}ぐあいもよく、\ruby{檜}{ひのき}を
465 3.80 漢字の部首には「\ruby{偏}{へん}」「\ruby{冠}{かんむり}」「\ruby{脚}{きやく}」%
466 「\ruby{旁}{つくり}」がある
467 3.80 この\ruby{\噂}{うわさ}好きな人は\ruby{懐}{ふところ}具合もよく、\ruby{檜}{ひのき}材を
468 要調整3.81× に\ruby{暁}{あかつき}の\kern-1\zw の\ruby{趣}{おもむき}を
469 3.82 に\ruby{暁}{あかつき}の\ruby{趣}{おもむき}を
470 {%
471   \ltjsetparameter{rubypostintrusion={`好,0.5}}
472   \ltjsetparameter{rubypostintrusion={`具,0.5}}
473   \ltjsetparameter{rubypostintrusion={`材,0.5}}
474 3,83 この\ruby{\噂}{うわさ}の好きな人は\ruby{懐}{ふところ}ぐあいもよく、\ruby{檜}{ひのき}を
475 3.83 この\ruby{\噂}{うわさ}好きな人は\ruby{懐}{ふところ}具合もよく、\ruby{檜}{ひのき}材を
476 }
477 {%
478   \makeatletter\count@="3040\loop\relax\ifnum \count@<"30A0%
479   \ltjsetparameter{rubypreintrusion={\the\count@,0}, %
480     rubypostintrusion={\the\count@,0}}%
481   \advance\count@1 \repeat
482 3.84 この\ruby{\噂}{うわさ}の好きな人は\ruby{懐}{ふところ}ぐあいもよく、\ruby{檜}{ひのき}を
483 3.84 この\ruby{\噂}{うわさ}好きな人は\ruby{懐}{ふところ}具合もよく、\ruby{檜}{ひのき}材を
484 }
485 要調整3.85\ {\notalign%この図では揃えない
486 \hbox{\vrule\vbox{\hsize=15\zw% なぜ行末形にならない!
487 あああああああああああああの\ruby{徑}{こみち}\penalty-1000をあああああああ%
488 あああああああああああああああああいの\ruby{徑}{こみち}ああ}\vrule}}
489
490 3.86\ %
491 \hbox{\vrule\vbox{\hsize=15\zw
492 ああああああああああああの\ruby{徑}{こみち}をあああああああ%
493 あああああああ\ruby{徑}{こみち}を}\vrule}
494
495 3.87\ %
496 \hbox{\vrule\vbox{\hsize=15\zw%
497 ああああああああああああの\ruby{飾り}{アクセサリー}等あああああああ%
498 あああああああああああああああ共\ruby{飾り}{アクセサリー}}\vrule}
499
500
501 \newpage
502 {\Large 要調整}
503
504 \paragraph{F.1--2節}\ \par
505
506 F.01 {\kata\ruby{治|癒}{ち|ゆ}\quad\ruby{模|索}{も|さく}\quad%
507 \ruby{遷|移}{せん|い}\quad\ruby{混|沌}{こん|とん}}
508 F.01中 \ruby{治|癒}{ち|ゆ}\quad\ruby{模|索}{も|さく}\quad%
509 \ruby{遷|移}{せん|い}\quad\ruby{混|沌}{こん|とん}
510
511 F.02 \ruby{橋|頭|堡}{きよう|とう|ほ}
512
513 F.03 {\kata\ruby{凝|視}{ぎよう|し}\quad\ruby{調|理|師}{ちよう|り|し}\quad%
514 \ruby{思|春|期}{し|しゆん|き}\quad\ruby{管|状|花}{かん|じよう|か}\quad%
515 \ruby{蒸|気|船}{じよう|き|せん}}
516 F.03 \ruby{凝|視}{ぎよう|し}\quad\ruby{調|理|師}{ちよう|り|し}\quad%
517 \ruby{思|春|期}{し|しゆん|き}\quad\ruby{管|状|花}{かん|じよう|か}\quad%
518 \ruby{蒸|気|船}{じよう|き|せん}
519
520 F.04 {\kata\ruby{未|熟}{み|じゆく}\quad\ruby{法|華|経}{ほ|け|きよう}\quad%
521 \ruby{顕|微|鏡}{けん|び|きよう}\quad\ruby{課|徴|金}{か|ちよう|きん}\quad%
522 \ruby{古|戦|場}{こ|せん|じよう}}
523 F.04 \ruby{未|熟}{み|じゆく}\quad\ruby{法|華|経}{ほ|け|きよう}\quad%
524 \ruby{顕|微|鏡}{けん|び|きよう}\quad\ruby{課|徴|金}{か|ちよう|きん}\quad%
525 \ruby{古|戦|場}{こ|せん|じよう}
526
527 F.05 の\ruby{峻|別}{しゆん|べつ}は
528
529 F.06以降は未チェック
530
531 \end{document}