\documentclass[a4j]{utarticle}
\usepackage{ascmac}
\usepackage{kanruby}
\def\yen{\noautoxspacing\symbol{92}}%
\begin{document}
\section*{特別なルビを付す例}

kanrubyコマンドは、出力した一文字の直後に置き、
その漢字の上下左右の場所に特定の文字列を出力する命令を付加します。
その後、何事もなかったかのように、後続の文字に処理を移します。
\medskip

\small
\setbox0=\hbox{%
\begin{minipage}<y>[t]{65mm}
\begin{verbatim}
\kanrubyon%
\noindent
{\LARGE
麗\kanruby<1>[.2]<.6>{かな}
麗\kanruby<1>[.8]<.4>{カナ}
麗\kanruby<1>[1][-0.4]{\footnotesize 。}
麗\kanruby<3>[0]{\footnotesize 左注}
麗\kanruby<3>[1][-0.3]{上}
\let\kanrubysize=\footnotesize
麗\kanruby<1>[0]{□□}
\kankunoji\kanruby<1>[0]{}
\kangunoji\kanruby<1>[0]{}
麗}%
\end{verbatim}
\end{minipage}}
\normalsize%

\fbox{\box0}
\medskip

　まず、このように一つ一つ適用してみると……。
\medskip

\kanrubyon%
\hskip3zw%
{\LARGE
麗\kanruby<1>[.2]<.6>{かな}
麗\kanruby<1>[.8]<.4>{カナ}
麗\kanruby<1>[1][-0.4]{\footnotesize 。}
麗\kanruby<3>[0]{\footnotesize 左注}
麗\kanruby<3>[1][-0.3]{上}
\let\kanrubysize=\footnotesize
麗\kanruby<1>[0]{□□}
\kankunoji\kanruby<1>[0]{}
\kangunoji\kanruby<1>[0]{}
麗}%
\kanrubyoff
\medskip

となります。kanrubyコマンドの使用法は、

\begin{screen}
\small
\begin{minipage}<z>[t]{30zw}
\begin{verbatim}
\kanruby<制御>[字下げ][左右余白]<注の長さ>{注の本文}
\end{verbatim}
\end{minipage}
\end{screen}

となっています。この際、
「制御」は\rensuji{0}がデフォルトで右肩、
\rensuji{1}も右肩だが、字間に{\tt \yen{}kanjiskip}が必要なとき、となります。

　\rensuji{2}、\rensuji{3}はそれぞれ左肩の場合です。

　\rensuji{4}は中央で注本文の長さだけ縦方向に進む場合、
\rensuji{5}は中央で、字間に{\tt\yen kanjiskip}が必要なとき、となります。

　「字下げ」とは直前の漢字の頭から何字分下げて始めるかを指定するもので、
\rensuji{0}がディフォルトです。

　「左右余白」は直前の漢字の頭から何字分空けて始めるかを表し、
\rensuji{.1}がディフォルトです。

　「注の長さ」は直前の漢字のサイズ何字分とするかを表し、
組んだ結果によるのがディフォルトです。

\small
\setbox0=\hbox{%
\begin{minipage}<y>[t]{93mm}
\begin{verbatim}
\def\Kan#1#2#3#4{#1\kanruby<0>[0]{#2}\kanruby<0>[1]{#3}%
 \kanruby<3>[1][-0.4]{#4}}
\def\Sai#1#2{\hskip-\kanjiskip\kanruby<2>[0]{#1}%
 \kanruby<3>[1]{#2}}
\def\Kuto#1{\hskip-\kanjiskip%
 \kanruby<1>[1][-0.6]{\footnotesize #1}}
\def\Kagibegin{\hskip-\kanjiskip%
 \kanruby<1>[1.05][-0.6]{\footnotesize \kankagibegin}}
\def\Kagiend{\hskip-\kanjiskip%
 \kanruby<3>[1.1][-0.5]{\footnotesize \kankagiend}}
\def\KAGIbegin{\hskip-\kanjiskip%
 \kanruby<1>[1.05][-0.6]{\footnotesize \kanKAGIbegin}}
\def\KAGIend{\hskip-\kanjiskip%
 \kanruby<3>[1.1][-0.5]{\footnotesize \kanKAGIend}}
\noindent
{\Large
\kanrubyon%
\Kan{或}{あ}{ル}{上}
\Kan{或}{あ}{ル}{上}
\Kuto{、}
\Kan{麗}{\ がな}{カナ}{下}
\Sai{左注}{デ}
\Kuto{。}
\kanruby<0>[-.5][.35]<.6>{送り}
終}
\end{verbatim}
\end{minipage}}
\normalsize%

\fbox{\box0}
\medskip

　これに対し、右のように、Kan,Sai,Kuto,Kagibegin,Kagiend,KAGIbegin,KAGIendというマクロを定義し、
それを使って訓点等を出力するようにすると、煩雑さがかなり緩和されます
（kanruby.styではこれらおよびこれにs,n,l,L,LL,h,Hがついたもの --- Kansなどが定義されています）。
\medskip

\hskip2.5zw%
\noindent
{\Large
\kanrubyon%
\Kan{或}{あ}{ル}{上}
\Kan{或}{あ}{ル}{上}
\Kuto{、}
\Kan{麗}{\ がな}{カナ}{下}
\Sai{左注}{デ}
\Kuto{。}
\kanruby<0>[-.5][.35]<.6>{送り}
終}
\kanrubyoff
\medskip

但し、微妙な位置の調整は難しいので、
そんなときは直接kanrubyコマンドを使います。
上の「麗」の字の後ろについているものがそうです。
\bigskip
\kanrubyoff

\end{document}