1 % furikana.sty by Shinsaku Fujita 2000/01/22 (v1.02)
2 % furikana.sty by Shinsaku Fujita 1998/08/21 (v1.01)
3 % furikana.sty by Shinsaku Fujita 1995/07/18 (v1.00)
4 % Copyright (C) 1995, 1998, 2000 by Shinsaku Fujita,
7 % 横組みのルビを自動的に組むためのマクロです.
10 % fujitas@chem.kit.ac.jp
12 % 藤田眞作著「\LaTeX本づくりの八衢」所載
17 % <原則> オプション0-4 (省略時は1)を指定
18 % 0 親文字とルビの長いほうにあわせて均等割
19 % 1 原則1 ルビが長いときに両端に前後の文を陥入(陥入度大)
20 % 2 原則2 ルビが長いときに両端に前後の文を陥入(陥入度小)
21 % 3 原則3 ルビが長いときに両端に前後の文を陥入なし
22 % 4 原則4 ルビが長いときの例外 ex. 轟津 (とどろきのつ)
26 % \Kana[原則]{親文字1,親文字2,...}{ルビ1,ルビ2,...}
28 % <原則> オプション0-4 (省略時は1)を指定
29 % 0 親文字とルビの長いほうにあわせて均等割
30 % 1 原則1 ルビが長いときに両端に前後の文を陥入(陥入度大)
31 % 2 原則2 ルビが長いときに両端に前後の文を陥入(陥入度小)
32 % 3 原則3 ルビが長いときに両端に前後の文を陥入なし
33 % 4 原則4 ルビが長いときの例外 ex. 轟津 (とどろきのつ)
34 % <親文字1,...> ベタで漢字を指定 (ルビと対応させて列挙
35 % <ルビ1,...> ベタでふりがなを指定
37 % \KANA{正味幅}{箱幅}{ルビ幅}{親文字}{ルビ}
38 % <正味幅> 出来上がったルビ付き文字の幅 (非陥入部分)
40 % <ルビ幅> ルビ幅(均等割に延ばすべき幅)
43 % 変更 2000/01/22 by Shinsaku Fujita
44 % \let\KANA=\KANAorig ルビ高さあり
45 % \let\KANA=\KANAtop ルビ高さなし
47 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
48 %\def\j@urnalname{furikana}
49 %\def\versi@ndate{July 18, 1995}
50 %\def\versi@nno{ver1.00}
51 %\def\copyrighth@lder{SF} % Shinsaku Fujita
52 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
54 % 全体を\hboxで包んで、\kanjiskipの設定が外に及ばないようにした
55 % by Shinsaku Fujita 1998/8/18
57 % by Shinsaku Fujita 1998/8/21
59 %\def\j@urnalname{furikana}
60 %\def\versi@ndate{January 21, 1998}
61 %\def\versi@nno{ver1.01}
62 %\def\copyrighth@lder{SF} % Shinsaku Fujita
63 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
64 \def\j@urnalname{furikana}
65 \def\versi@ndate{August 22, 2000}
66 \def\versi@nno{ver1.02}
67 \def\copyrighth@lder{S. Fujita} % Shinsaku Fujita
68 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
69 \typeout{Option Style `\j@urnalname' (\versi@nno) <\versi@ndate>\space
71 \typeout{藤田眞作「入門・縦横文書術」所載}
75 % ルビ活字は、本文活字の1/2のものを用いるのが原則です。
76 % 原則をはずれる場合もなんとか対処できるようにしてありますが、
80 \setbox1=\hbox{\tiny あ}
81 \dimen0=\wd0 \divide\dimen0 by2\relax
83 \advance\dimen0 by.01zw
84 \advance\dimen1 by-.01zw
85 \ifdim\wd1<\dimen1\relax
86 \typeout{ルビの活字が小さすぎます。}\fi
87 \ifdim\wd1>\dimen0\relax
88 \typeout{ルビの活字が大きすぎます。}\fi
95 % 標準は0pt。さらに開けたい場合は、プリアンブルで変更。
100 % \nakakintou{長さ}{文字列}
102 % 均等割 (ただし,1文字の場合は中央揃えにする)
104 \def\nakakintou#1#2{\hbox to#1{%
105 \hss\kanjiskip=0pt plus 1fill minus 1fill
106 \xkanjiskip=\kanjiskip #2\hss}}
108 % \KANA{正味幅}{箱幅}{ルビ幅}{親文字}{ルビ}
109 % \KANAorig{正味幅}{箱幅}{ルビ幅}{親文字}{ルビ}
112 % \KANAorig <--- \KANA 改名
113 % 2000/1/22 by Shinsaku Fujita
115 \def\KANAorig#1#2#3#4#5{%
116 \def\@rubykatuji{\rubykatuji}%
118 \hbox to#1{\hss\nakakintou{#3}{\hss\@rubykatuji #5\hss}\hss}%
121 \hbox to#1{\hss\nakakintou{#2}{#4}\hss}}}}
123 % \KANAtop{正味幅}{箱幅}{ルビ幅}{親文字}{ルビ}
126 % 2000/1/22 by Shinsaku Fujita
128 \def\KANAtop#1#2#3#4#5{%
129 \def\@rubykatuji{\rubykatuji}%
131 \setbox6=\hbox{\nakakintou{#3}{\hss\@rubykatuji #5\hss}}%
132 \setbox6=\hbox to#1{\hss\raise\dp6\hbox{\box6}\hss}%
133 \hbox{\ht6=0pt\dp6=0pt\box6}%
136 \hbox to#1{\hss\nakakintou{#2}{#4}\hss}}}}
140 \def\kanadashioff{\let\KANA=\KANAorig}
141 \def\kanadashion{\let\KANA=\KANAtop}
149 % <原則> オプション0-3 (省略時は1)を指定
150 % 0 親文字とルビの長いほうにあわせて均等割
151 % 1 原則1 ルビが長いときに両端に前後の文を陥入(陥入度大)
152 % 2 原則2 ルビが長いときに両端に前後の文を陥入(陥入度小)
153 % 3 原則3 ルビが長いときに両端に前後の文を陥入なし
154 % 4 原則4 ルビが長いときの例外 ex. 轟津 (とどろきのつ)
158 \def\kana{\@ifnextchar[{\k@n@}{\k@n@[1]}}
159 \def\k@n@[#1]#2#3{\leavevmode%
160 \ifhmode\edef\@x@sf{\the\spacefactor}\fi
164 \kanjiskip=0pt plus 1fill minus 1fill
167 \def\@rubykatuji{\rubykatuji}%
171 \setbox1=\hbox{\@rubykatuji #3}%
172 \ifcase#1 \ifdim\wd0>\wd1\relax
173 \KANA{\wd0}{\wd0}{\wd0}{#2}{#3}\else
174 \KANA{\wd1}{\wd1}{\wd1}{#2}{#3}\fi
175 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
176 \or%#1=1 (原則1--default)
178 \ihonji{\wd0}{\wd1}{#2}{#3}%親文字1字
181 \ihonjii{\wd0}{\wd1}{#2}{#3}%親文字2字
184 \ihonjiii{\wd0}{\wd1}{#2}{#3}%親文字3字
187 \ihonjiv{\wd0}{\wd1}{#2}{#3}%親文字4字
190 \ihonjv{\wd0}{\wd1}{#2}{#3}%親文字5字以上
192 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
193 \or%#1=2 (原則2--option)
195 \iihonji{\wd0}{\wd1}{#2}{#3}%親文字1字
198 \iihonjii{\wd0}{\wd1}{#2}{#3}%親文字2字
201 \iihonjiii{\wd0}{\wd1}{#2}{#3}%親文字3字
204 \iihonjiv{\wd0}{\wd1}{#2}{#3}%親文字4字
206 \iihonjv{\wd0}{\wd1}{#2}{#3}%親文字5字以上
208 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
209 \or%#1=3(原則3--option)
211 \iiihonji{\wd0}{\wd1}{#2}{#3}%親文字1字
214 \iiihonjii{\wd0}{\wd1}{#2}{#3}%親文字2字
217 \iiihonjiii{\wd0}{\wd1}{#2}{#3}%親文字3字
220 \iiihonjiv{\wd0}{\wd1}{#2}{#3}%親文字4字
222 \iiihonjv{\wd0}{\wd1}{#2}{#3}%親文字5字以上
224 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
225 \or%#1=4 (原則4--option)
227 \ivhonji{\wd0}{\wd1}{#2}{#3}%親文字1字
230 \ivhonjii{\wd0}{\wd1}{#2}{#3}%親文字2字
233 \ivhonjiii{\wd0}{\wd1}{#2}{#3}%親文字3字
236 \ivhonjiv{\wd0}{\wd1}{#2}{#3}%親文字4字
238 \ivhonjv{\wd0}{\wd1}{#2}{#3}%親文字5字以上
240 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
241 %\or%for further treatment
242 \fi\ifhmode\spacefactor\@x@sf\fi\fi\fi}%
252 % \ihonji{箱幅}{ルビ幅}{親文字}{ルビ}
254 \def\ihonji#1#2#3#4{%
258 \KANA{#1}{#1}{#1}{#3}{#4}%
261 \kanjinobashi{#1}{#2}{#3}{#4}%
264 % \kanjinobashi (1文字)
268 \def\kanjinobashi#1#2#3#4{%
269 \dimen0=#2\relax \advance\dimen0 by-#1\relax%親文字とルビの差で判断
270 \ifdim\dimen0<1.1zw%詰め組み (ルビ約4字まで)
271 \KANA{#1}{#1}{#2}{#3}{#4}%
273 % \ifdim\dimen0<2zw%本文前後二分アキ(ルビ約5字まで)
274 \ifdim\dimen0<1.95zw%本文前後二分アキ(ルビ約5字まで)
275 \dimen1=#1 \advance\dimen1 by.5zw%
276 \KANA{\dimen1}{#1}{#2}{#3}{#4}%
278 \dimen1=#2 \advance\dimen1 by-1zw%
279 \KANA{\dimen1}{#1}{#2}{#3}{#4}%
284 % \ihonjii{箱幅}{ルビ幅}{親文字}{ルビ}
286 \def\ihonjii#1#2#3#4{%
289 \kananobashii{#1}{#2}{#3}{#4}%
292 \kanjinobashii{#1}{#2}{#3}{#4}%
295 % \kananobashii (2文字)
298 \def\kananobashii#1#2#3#4{%
299 \dimen0=#1\relax \advance\dimen0 by-#2\relax
300 \ifdim\dimen0<.5zw%親文字2文字,ルビ3文字
301 \KANA{#1}{#1}{#1}{#3}{#4}%
303 \ifdim\dimen0<1zw%親文字2文字,ルビ2文字
304 \dimen1=#1 \advance\dimen1 by-.25zw
305 \KANA{#1}{#1}{\dimen1}{#3}{#4}%
307 \ifdim\dimen0<2zw%親文字2文字,ルビ1文字
308 \dimen1=#1 \advance\dimen1 by-.5zw
309 \KANA{#1}{#1}{\dimen1}{#3}{#4}%
311 \dimen1=#2 \advance\dimen1 by-.5zw
312 \KANA{#1}{#1}{\dimen1}{#3}{#4}%
315 % \kanjinobashii (2文字)
318 \def\kanjinobashii#1#2#3#4{%
319 \dimen0=#2\relax \advance\dimen0 by-#1\relax%親文字とルビの差で判断
320 % \ifdim\dimen0<1.5zw%詰め組み (ルビ約6字まで)
321 \ifdim\dimen0<1.45zw%詰め組み (ルビ約6字まで)
322 \KANA{#1}{#1}{#2}{#3}{#4}%
324 \dimen2=#2\relax \advance\dimen2 by-1zw%
325 \dimen1=\dimen2\relax \advance\dimen1 by-.5zw%
326 \KANA{\dimen2}{\dimen1}{#2}{#3}{#4}%
331 % \ihonjiii{箱幅}{ルビ幅}{親文字}{ルビ}
333 \def\ihonjiii#1#2#3#4{%
336 \kananobashiii{#1}{#2}{#3}{#4}%
339 \kanjinobashiii{#1}{#2}{#3}{#4}%
342 % \kananobashiii (3文字)
345 \def\kananobashiii#1#2#3#4{%
346 \dimen0=#1\relax \advance\dimen0 by-#2\relax
347 \ifdim\dimen0<.5zw%親文字3文字,ルビ5文字
348 \KANA{#1}{#1}{#1}{#3}{#4}%
350 \ifdim\dimen0<1zw%親文字3文字,ルビ4文字
351 \dimen1=#1\relax \advance\dimen1 by-.25zw
352 \KANA{#1}{#1}{\dimen1}{#3}{#4}%
354 \ifdim\dimen0<2zw%親文字3文字,ルビ3文字
355 \dimen1=#1\relax \advance\dimen1 by-.5zw
356 \KANA{#1}{#1}{\dimen1}{#3}{#4}%
357 \else %親文字3文字,ルビ2文字以下
358 \dimen1=#1\relax \advance\dimen1 by-1zw
359 \KANA{#1}{#1}{\dimen1}{#3}{#4}%
362 % \kanjinobashiii (3文字)
366 \def\kanjinobashiii#1#2#3#4{%
367 \dimen0=#2\relax \advance\dimen0 by-#1\relax%親文字とルビの差で判断
368 \ifdim\dimen0<1zw%詰め組み (ルビ約7字まで)
369 \KANA{#1}{#1}{#2}{#3}{#4}%
371 \ifdim\dimen0<2zw%本文前後二分アキ(ルビ約9字まで)
372 \dimen1=#2\relax \advance\dimen1 by-.5zw%
373 \dimen2=\dimen1\relax \advance\dimen2 by-.5zw%
374 \KANA{\dimen1}{\dimen2}{#2}{#3}{#4}%KKKK
376 \ifdim\dimen0<3zw%本文前後二分アキ(ルビ約11字まで)
377 \dimen1=#2\relax \advance\dimen1 by-1zw%
378 \dimen2=\dimen1\relax \advance\dimen2 by-.5zw%
379 \KANA{\dimen1}{\dimen2}{#2}{#3}{#4}%KKKK
381 \dimen1=#1\relax \advance\dimen1 by1zw%
382 \dimen2=#2\relax \advance\dimen2 by-1zw%
383 \KANA{\dimen2}{\dimen1}{#2}{#3}{#4}%
388 % \ihonjiv{箱幅}{ルビ幅}{親文字}{ルビ}
390 \def\ihonjiv#1#2#3#4{%
393 \kananobashiv{#1}{#2}{#3}{#4}%
396 \kanjinobashiv{#1}{#2}{#3}{#4}%
399 % \kananobashiv (4文字)
402 \def\kananobashiv#1#2#3#4{%
403 \dimen0=#1\relax \advance\dimen0 by-#2\relax
404 \ifdim\dimen0<1zw%親文字3文字,ルビ8, 7文字
405 \KANA{#1}{#1}{#1}{#3}{#4}%
407 \ifdim\dimen0<2zw%親文字3文字,ルビ6文字
408 \dimen1=#2\relax \advance\dimen1 by.5zw
409 \KANA{#1}{#1}{\dimen1}{#3}{#4}%
411 \ifdim\dimen0<3zw%親文字3文字,ルビ5, 4文字
412 \dimen1=#2\relax \advance\dimen1 by1zw
413 \KANA{#1}{#1}{\dimen1}{#3}{#4}%
414 \else %親文字3文字,ルビ3文字以下
415 \dimen1=#1\relax \advance\dimen1 by-1.5zw
416 \KANA{#1}{#1}{\dimen1}{#3}{#4}%
419 % \kanjinobashiv (4文字)
422 \def\kanjinobashiv#1#2#3#4{%
423 \dimen0=#2\relax \advance\dimen0 by-#1\relax%親文字とルビの差で判断
424 \ifdim\dimen0<1zw%詰め組み (ルビ約9字まで)
425 \KANA{#1}{#1}{#2}{#3}{#4}%
427 \ifdim\dimen0<1.5zw%本文前後四分アキ(ルビ約10字まで)
428 \dimen1=#1\relax \advance\dimen1 by.5zw
429 \dimen2=\dimen1\relax \advance\dimen2 by.5zw
430 \KANA{\dimen2}{\dimen1}{#2}{#3}{#4}%
432 \ifdim\dimen0<2zw%本文前後二分アキ(ルビ約11字まで)
433 \dimen1=#1\relax \advance\dimen1 by1zw%
434 \KANA{#2}{\dimen1}{#2}{#3}{#4}%
436 \ifdim\dimen0<3zw%本文前後二分半アキ(ルビ約12字まで)
437 \dimen1=#1\relax \advance\dimen1 by1.5zw%
438 \KANA{#2}{\dimen1}{#2}{#3}{#4}%
440 \dimen1=#1\relax \advance\dimen1 by1zw%
441 \dimen2=#2\relax \advance\dimen2 by-1zw%
442 \KANA{\dimen2}{\dimen1}{#2}{#3}{#4}%
447 % \ihonjv{箱幅}{ルビ幅}{親文字}{ルビ}
451 \def\ihonjv#1#2#3#4{%
454 \kananobashiv{#1}{#2}{#3}{#4}%
457 \kanjinobashiv{#1}{#2}{#3}{#4}%
466 % \iihonji{箱幅}{ルビ幅}{親文字}{ルビ}
468 \def\iihonji#1#2#3#4{%
472 \KANA{#1}{#1}{#1}{#3}{#4}%
475 \Kanjinobashi{#1}{#2}{#3}{#4}%
478 % \Kanjinobashi (1文字)
483 \def\Kanjinobashi#1#2#3#4{%
484 \dimen0=#2\relax \advance\dimen0 by-#1\relax%親文字とルビの差で判断
485 \ifdim\dimen0<.5zw%詰め組み (ルビ約2字まで)
486 \KANA{#1}{#1}{#2}{#3}{#4}%
488 % \ifdim\dimen0<1zw%本文前後八分アキ(ルビ約3字まで)
489 \ifdim\dimen0<.95zw%本文前後八分アキ(ルビ約3字まで)
490 \dimen1=#1 \advance\dimen1 by.25zw
491 \KANA{\dimen1}{#1}{#2}{#3}{#4}%
493 \dimen1=#2 \advance\dimen1 by-.5zw%
494 \KANA{\dimen1}{#1}{#2}{#3}{#4}%
499 % \iihonjii{箱幅}{ルビ幅}{親文字}{ルビ}
501 \def\iihonjii#1#2#3#4{%
504 \kananobashii{#1}{#2}{#3}{#4}%
507 \Kanjinobashii{#1}{#2}{#3}{#4}%
510 % \Kanjinobashii (2文字)
514 \def\Kanjinobashii#1#2#3#4{%
515 \dimen0=#2\relax \advance\dimen0 by-#1\relax%親文字とルビの差で判断
516 % \ifdim\dimen0<1zw%詰め組み (ルビ約5字まで)
517 \ifdim\dimen0<.95zw%詰め組み (ルビ約5字まで)
518 \KANA{#1}{#1}{#2}{#3}{#4}%
520 \dimen1=#2\relax \advance\dimen1 by-1zw%
521 \dimen2=#2\relax \advance\dimen2 by-.5zw%
522 \KANA{\dimen2}{\dimen1}{#2}{#3}{#4}%
528 % \iihonjiii{箱幅}{ルビ幅}{親文字}{ルビ}
530 \def\iihonjiii#1#2#3#4{%
533 \kananobashiii{#1}{#2}{#3}{#4}%
536 \Kanjinobashiii{#1}{#2}{#3}{#4}%
539 % \Kanjinobashiii (3文字)
543 \let\Kanjinobashiii=\Kanjinobashii
547 % \iihonjiv{箱幅}{ルビ幅}{親文字}{ルビ}
549 \def\iihonjiv#1#2#3#4{%
552 \kananobashiv{#1}{#2}{#3}{#4}%
555 \Kanjinobashiv{#1}{#2}{#3}{#4}%
558 % \Kanjinobashiv (4文字)
561 \let\Kanjinobashiv=\Kanjinobashii
565 % \iihonjv{箱幅}{ルビ幅}{親文字}{ルビ}
569 \def\iihonjv#1#2#3#4{%
572 \kananobashiv{#1}{#2}{#3}{#4}%
575 \Kanjinobashiv{#1}{#2}{#3}{#4}%
584 % \iiihonji{箱幅}{ルビ幅}{親文字}{ルビ}
586 \def\iiihonji#1#2#3#4{%
590 \KANA{#1}{#1}{#1}{#3}{#4}%
593 \KAnjinobashi{#1}{#2}{#3}{#4}%
596 % \KAnjinobashi (1文字)
601 \def\KAnjinobashi#1#2#3#4{%
602 \dimen0=#2\relax \advance\dimen0 by-#1\relax%親文字とルビの差で判断
603 % \ifdim\dimen0<.5zw%詰め組み (ルビ約2字まで)
604 \ifdim\dimen0<.45zw%詰め組み (ルビ約2字まで)
605 \KANA{#1}{#1}{#2}{#3}{#4}%
607 \KANA{#2}{#1}{#2}{#3}{#4}%
613 % \iiihonjii{箱幅}{ルビ幅}{親文字}{ルビ}
615 \def\iiihonjii#1#2#3#4{%
618 \kananobashii{#1}{#2}{#3}{#4}%
621 \KAnjinobashii{#1}{#2}{#3}{#4}%
624 % \KAnjinobashii (2文字)
628 \def\KAnjinobashii#1#2#3#4{%
629 \dimen0=#2\relax \advance\dimen0 by-#1\relax%親文字とルビの差で判断
630 % \ifdim\dimen0<.5zw%詰め組み (ルビ約4字まで)
631 \ifdim\dimen0<.45zw%詰め組み (ルビ約4字まで)
632 \KANA{#1}{#1}{#2}{#3}{#4}%
634 \ifdim\dimen0<1zw%詰め組み (ルビ約5字まで)
635 \dimen1=#2\relax \advance\dimen1 by-.5zw%
636 \KANA{#2}{\dimen1}{#2}{#3}{#4}%
638 \dimen1=#2\relax \advance\dimen1 by-1zw%
639 \KANA{#2}{\dimen1}{#2}{#3}{#4}%
644 % \iiihonjiii{箱幅}{ルビ幅}{親文字}{ルビ}
646 \def\iiihonjiii#1#2#3#4{%
649 \kananobashiii{#1}{#2}{#3}{#4}%
652 \KAnjinobashiii{#1}{#2}{#3}{#4}%
655 % \KAnjinobashiii (3文字)
659 \let\KAnjinobashiii=\KAnjinobashii
663 % \iiihonjiv{箱幅}{ルビ幅}{親文字}{ルビ}
665 \def\iiihonjiv#1#2#3#4{%
668 \kananobashiv{#1}{#2}{#3}{#4}%
671 \KAnjinobashiv{#1}{#2}{#3}{#4}%
674 % \KAnjinobashiv (4文字)
677 \let\KAnjinobashiv=\KAnjinobashii
681 % \iiihonjv{箱幅}{ルビ幅}{親文字}{ルビ}
685 \def\iiihonjv#1#2#3#4{%
688 \kananobashiv{#1}{#2}{#3}{#4}%
691 \KAnjinobashiv{#1}{#2}{#3}{#4}%
700 % \ivhonji{箱幅}{ルビ幅}{親文字}{ルビ}
702 \def\ivhonji#1#2#3#4{%
706 \KANA{#1}{#1}{#1}{#3}{#4}%
709 \KANjinobashi{#1}{#2}{#3}{#4}%
712 % \KANjinobashi (1文字)
717 \let\KANjinobashi=\Kanjinobashi
721 % \ivhonjii{箱幅}{ルビ幅}{親文字}{ルビ}
723 \def\ivhonjii#1#2#3#4{%
726 \kananobashii{#1}{#2}{#3}{#4}%
729 \KANjinobashii{#1}{#2}{#3}{#4}%
732 % \KANjinobashii (2文字)
737 \def\KANjinobashii#1#2#3#4{%
738 \dimen0=#2\relax \advance\dimen0 by-#1\relax%親文字とルビの差で判断
739 \ifdim\dimen0<0.9zw%詰め組み (ルビ約5字まで)
740 \KANA{#1}{#1}{#2}{#3}{#4}%
742 \ifdim\dimen0<1.5zw%本文前後四分アキ(ルビ約6字まで)
743 \dimen1=#1\relax \advance\dimen1 by.5zw
744 \KANA{#2}{\dimen1}{#2}{#3}{#4}%
746 \ifdim\dimen0<2zw%本文前後二分アキ(ルビ約7字まで)
747 \dimen1=#1\relax \advance\dimen1 by1zw%
748 \KANA{#2}{\dimen1}{#2}{#3}{#4}%
750 \ifdim\dimen0<3zw%本文前後二分アキ(ルビ約7字まで)
751 \dimen1=#1\relax \advance\dimen1 by1.5zw%
752 \KANA{#2}{\dimen1}{#2}{#3}{#4}%
754 \dimen1=#1\relax \advance\dimen1 by1zw%
755 \dimen2=#2\relax \advance\dimen2 by-1zw%
756 \KANA{\dimen2}{\dimen1}{#2}{#3}{#4}%
762 % \ivhonjiii{箱幅}{ルビ幅}{親文字}{ルビ}
764 \def\ivhonjiii#1#2#3#4{%
767 \kananobashiii{#1}{#2}{#3}{#4}%
770 \KANjinobashiii{#1}{#2}{#3}{#4}%
773 % \KANjinobashiii (3文字)
777 \let\KANjinobashiii=\Kanjinobashii
781 % \ivhonjiv{箱幅}{ルビ幅}{親文字}{ルビ}
783 \def\ivhonjiv#1#2#3#4{%
786 \kananobashiv{#1}{#2}{#3}{#4}%
789 \KANjinobashiv{#1}{#2}{#3}{#4}%
792 % \KANjinobashiv (4文字)
795 \let\KANjinobashiv=\Kanjinobashii
799 % \ivhonjv{箱幅}{ルビ幅}{親文字}{ルビ}
803 \def\ivhonjv#1#2#3#4{%
806 \kananobashiv{#1}{#2}{#3}{#4}%
809 \KANjinobashiv{#1}{#2}{#3}{#4}%
813 % \Kana[原則]{親文字1,親文字2,...}{ルビ1,ルビ2,...}
815 % <原則> オプション0-3 (省略時は1)を指定
816 % 0 親文字とルビの長いほうにあわせて均等割
817 % 1 原則1 ルビが長いときに両端に前後の文を陥入(陥入度大)
818 % 2 原則2 ルビが長いときに両端に前後の文を陥入(陥入度小)
819 % 3 原則3 ルビが長いときに両端に前後の文を陥入なし
820 % 4 原則4 ルビが長いときの例外 ex. 轟津 (とどろきのつ)
821 % <親文字1,...> ベタで漢字を指定 (ルビと対応させて列挙
822 % <ルビ1,...> ベタでふりがなを指定
826 \def\Kana{\@ifnextchar[{\@Kana}{\@Kana[1]}}
827 \def\@Kana[#1]#2#3{\leavevmode\TestCnt=\z@
828 \@for\member:=#2\do{\advance\TestCnt\@ne\TestCNT=\z@
829 \@for\Member:=#3\do{\advance\TestCNT\@ne
830 \ifnum\TestCnt=\TestCNT\relax%
831 \k@n@[#1]{\member}{\Member}\fi}}}
834 % 2000/02/11 by Shinsaku Fujita
836 \def\KANAmatubi#1#2#3#4#5{%
837 \def\@rubykatuji{\rubykatuji}%
839 \setbox6=\hbox{\nakakintou{#3}{\hss\@rubykatuji #5\hss}}%
840 \setbox6=\hbox to#1{\hss\raise\dp6\hbox{\box6}}%
841 \hbox{\ht6=0pt\dp6=0pt\box6}%ルビの高さなし
842 % \hbox{\box6}%ルビの高さのそのままにするとき
845 \hbox to#1{\hss\nakakintou{#2}{#4}}}}}
847 % 2000/02/11 by Shinsaku Fujita
849 \def\KANAorigmatubi#1#2#3#4#5{%
850 \def\@rubykatuji{\rubykatuji}%
852 \setbox6=\hbox{\nakakintou{#3}{\hss\@rubykatuji #5\hss}}%
853 \setbox6=\hbox to#1{\hss\raise\dp6\hbox{\box6}}%
854 % \hbox{\ht6=0pt\dp6=0pt\box6}%ルビの高さなし
855 \hbox{\box6}%ルビの高さのそのままにするとき
858 \hbox to#1{\hss\nakakintou{#2}{#4}}}}}