% ^^A -*- japanese-latex -*-
% \iffalse meta-comment
%
% This is file 'pxrubrica.dtx'.
% 
% Copyright (c) 2017 Takayuki YATO (aka. "ZR")
%   GitHub:   https://github.com/zr-tex8r
%   Twitter:  @zr_tex8r
%
% This package is distributed under the MIT License.
%
% \fi
% \CheckSum{0}
%
% \iffalse
%
%    \begin{macrocode}
%<!driver>\NeedsTeXFormat{LaTeX2e}
%<!driver>\ProvidesPackage{pxrubrica}
%<*driver>
\ProvidesFile{pxrubrica.dtx}
%</driver>
  [2017/04/27 v1.3 PX Japanese-style ruby]
%<*driver>
\documentclass[uplatex]{jsarticle}
\usepackage{doc}
\addtolength{\textwidth}{-1in}
\addtolength{\evensidemargin}{1in}
\addtolength{\oddsidemargin}{1in}
\addtolength{\marginparwidth}{1in}
\setlength\marginparpush{0pt}
% \OnlyDescription
\DisableCrossrefs
\setcounter{StandardModuleDepth}{1}
\GetFileInfo{pxrubrica.dtx}
\CodelineNumbered
\DeclareRobustCommand\jmeta[1]{%
  \ensuremath\langle\mbox{}%
  {\rmfamily#1}\mbox{}%
  \ensuremath\rangle
}
\newcommand*{\vb}{\symbol{`\|}}
\newcommand*{\PKN}[1]{\textsf{#1}}
\newcommand*{\pad}{\hspace{0pt plus 10pt}\linebreak[0]}
\newcommand*{\Means}{$B!'(B\ }
\newcommand*{\Note}{\par\noindent $B"((B\ }
\providecommand*{\pTeX}{p\TeX}
\providecommand*{\upTeX}{u\pTeX}
\providecommand*{\pdfTeX}{pdf\/\TeX}
\providecommand*{\XeTeX}{XeTeX}
\providecommand*{\LuaTeX}{Lua\TeX}
\inhibitxspcode`$B!?(B=0
\begin{document}
  \DocInput{pxrubrica.dtx}
\end{document}
%</driver>
%    \end{macrocode}
%
% \fi
%
% \title{\PKN{pxrubrica} $B%Q%C%1!<%8(B}
% \author{$BH,EP(B $B?rG7(B\quad(Takayuki YATO; aka ``ZR'')}
% \date{\fileversion \quad[\filedate]}
% \maketitle
%
% \MakeShortVerb{\|}
%
% \setcounter{tocdepth}{3}
% \tableofcontents
%
%^^A------------------------------------
% \section{$B%Q%C%1!<%8FI9~(B}
%
% |\usepackage| $BL?Na$rMQ$$$FFI$_9~$`!#(B
% $B%*%W%7%g%s$OB8:_$7$J$$!#(B
%\begin{quote}\begin{verbatim}
%\usepackage{pxrubrica}
%\end{verbatim}\end{quote}
%
%^^A------------------------------------
% \section{$B%k%S5!G=(B}
%
% \subsection{$BMQ8l=8(B}
% 
% $BK\%Q%C%1!<%8$GFH<+$N0UL#$r$b$DC18l$r5s$2$k!#(B
% \begin{itemize}
% \item $BFM=P!'(B $B%k%SJ8;z=PNO$NC<$,?FJ8;z$h$j$b30B&$K$J$k$3$H!#(B
% \item $B?JF~!'(B $B%k%SJ8;z=PNO$,?FJ8;z$KNY@\$9$kJ8;z$N!J?eJ?!KNN0h$K(B
%   $BG[CV$5$l$k$3$H!#(B
% \item $BOBJ8%k%S!'(B $B?FJ8;z$,OBJ8J8;z$G$"$k$3$H$rA[Dj$7$F=hM}$5$l$k%k%S!#(B
% \item $B2$J8%k%S!'(B $B?FJ8;z$,2$J8J8;z$G$"$k$3$H$rA[Dj$7$F=hM}$5$l$k%k%S!#(B
% \item $B%0%k!<%W!'(B $B%f!<%6$K$h$j;XDj$5$l$?!"?FJ8;zNs!&%k%SJ8;zNs$N=hM}C10L!#(B
% \item $B!TJ8;z!U!'(B $B6QEy3d$j$K$*$$$FIT2DJ,$H$J$kC10L$N$3$H!#(B
%   $BDL>o$O!"K\Mh$N0UL#$G$NJ8;z$H$J$k$,!"%f!<%6;XDj$GJQ99$G$-$k!#(B
% \item $B%V%m%C%/!'(B $BJ#?t$N?FJ8;z!&%k%SJ8;z$N=8$^$j$G!"Bg0hE*$JG[CV7hDj$N(B
%   $B=hM}$NCf$GFbIt$NAjBP0LCV$,8GDj$5$l$F$$$k$b$N!#(B
% \end{itemize}
%
% $B<!$NMQ8l$K$D$$$F$O!"!XF|K\8lAHHG$NMW7o!Y$K=>$&!#(B
% \begin{quote}
% $B%k%S!"?FJ8;z!"CfIU$-!"8*IU$-!"%b%N%k%S!"%0%k!<%W%k%S!"=O8l%k%S(B
% \end{quote}
%
% \subsection{$B%k%SMQL?Na(B}
%
% \begin{itemize}
% \item |\ruby[|\jmeta{$B%*%W%7%g%s(B}|]{|\jmeta{$B?FJ8;z(B}^^A
% |}{|\jmeta{$B%k%SJ8;z(B}|}|
% 
% $BOBJ8%k%S$NL?Na!#(B
% $B$9$J$o$A!"OBJ8J8;zNs$N>eB&!J2#AH!K!?1&B&!J=DAH!K$K%k%S$rIU$9(B
% $B!J%*%W%7%g%s$G5UB&$K$b$G$-$k!K!#(B
% 
% $B$3$3$G!"(B\jmeta{$B%*%W%7%g%s(B}$B$O0J2<$N7A<0$r$b$D!#(B
% \begin{quote}
% \jmeta{$BA0?JF~@_Dj(B}\jmeta{$BA0Jd=u@_Dj(B}^^A
% \jmeta{$B%b!<%I(B}\jmeta{$B8eJd=u@_Dj(B}\jmeta{$B8e?JF~@_Dj(B}
% \end{quote}
% \jmeta{$BA0Jd=u@_Dj(B}$B!&(B\jmeta{$B%b!<%I(B}$B!&(B\jmeta{$B8eJd=u@_Dj(B}$B$O(B
% $BJ#?t;XDj2DG=$G!"GSB>$J;XDj$,J;B8$7$?>l9g$O(B
% $B8e$N$b$N$,M-8z$K$J$k!#(B
% $B$^$?!"$I$NMWAG$b>JN,2DG=$G!"$=$N>l9g$O(B |\rubysetup| $B$G;XDj$5$l$?(B
% $B4{DjCM$,MQ$$$i$l$k!#(B
% $B$?$@$7!"9=J8>e[#Kf$J;XDj$r9T$C$?>l9g$N7k2L$OJ]>Z$5$l$J$$!#(B
% $BNc$($P!"!VA0?JF~L5$7!W$N$_;XDj$9$k>l9g$O(B \texttt{\vb} $B$G$O(B
% $B$J$/(B \texttt{\vb-} $B$H$9$kI,MW$,$"$k!#(B
%
% \jmeta{$BA0?JF~@_Dj(B}$B$O0J2<$NCM$N2?$l$+!#(B
% \begin{quote}
%   \begin{tabular}[t]{ll}
%     \texttt{\vb\vb} & $BA0FM=P6X;_(B\\
%     \texttt{\vb} & $BA0?JF~L5$7(B\\
%   \end{tabular}\qquad
%   \begin{tabular}[t]{ll}
%     \texttt{<} & $BA0?JF~Bg(B\\
%     \texttt{(} & $BA0?JF~>.(B
%   \end{tabular}
% \end{quote}
%
% \jmeta{$BA0Jd=u@_Dj(B}$B$O0J2<$NCM$N2?$l$+!#(B
% \begin{quote}
%   \begin{tabular}[t]{ll}
%     \texttt{:} & $BOB2$J84V6uGrA^F~(B \\
%     \texttt{.} & $B6uGrA^F~$J$7(B
%   \end{tabular}\qquad
%   \begin{tabular}[t]{ll}
%     \texttt{*} & $B9TJ,3d6X;_(B \\
%     \texttt{!} & $BCJMnF,$G?JF~5v2D(B
%   \end{tabular}
% \end{quote}
%
% \begin{itemize}
% \item $B6uGrA^F~NL$N4{DjCM$OOBJ84V6uGr$G$"$k!#(B
% \item |*| $BL5;XDj$N>l9g$N9TJ,3d$N2DH]$O(B {p\LaTeX} $B$NI8=`$N(B
%   $BF0:n$K=>$&!#(B
% \item |!| $BL5;XDj$N>l9g!"CJMnKAF,$G$O(B\jmeta{$BA0?JF~@_Dj(B}$B$N@_Dj$K(B
%   $B4X$o$i$:?JF~$,M^;_$5$l$k!#(B
% \item $B%4!<%9%H=hM}$,M-8z$N>l9g$O$3$3$N@_Dj$OL5;k$5$l$k!#(B
% \end{itemize}
%
% \jmeta{$B%b!<%I(B}$B$O0J2<$NCM$N2?$l$+!#(B
% \begin{quote}
%   \newcommand*\fro[1]{{\scriptsize($<$\,\textit{#1})}}
%   \begin{tabular}[t]{l@{ }ll}
%     \texttt{-} & &$B!JL5;XDj!K(B\\
%     \texttt{c} & \fro{center}    & $BCfIU$-(B\\
%     \texttt{h} & \fro{head}      & $B8*IU$-(B\\
%     \texttt{H} &                 & $B3HD%8*IU$-(B\\
%     \texttt{m} & \fro{mono}      & $B%b%N%k%S(B\\
%     \texttt{g} & \fro{group}     & $B%0%k!<%W%k%S(B\\
%     \texttt{j} & \fro{jukugo}    & $B=O8l%k%S(B\\
%     \texttt{M} &                 & $B<+F0@ZBX%b%N%k%S(B\\
%     \texttt{G} &                 & $B<+F0@ZBX%0%k!<%W%k%S(B
%   \end{tabular}\qquad
%   \begin{tabular}[t]{l@{ }ll}
%     \texttt{P} & \fro{primary}    & $B>eB&G[CV(B\\
%     \texttt{S} & \fro{secondary}  & $B2<B&G[CV(B\\
%     \texttt{e} & \fro{even-space} & $B?FJ8;z6QEy3d$jM-8z(B \\
%     \texttt{E} &                  & $B?FJ8;z6QEy3d$jL58z(B \\
%     \texttt{f} & \fro{full-size}  & $B>.=q$-J8;zJQ49M-8z(B \\
%     \texttt{F} &                  & $B>.=q$-J8;zJQ49L58z(B 
%   \end{tabular}
% \end{quote}
%
% \begin{itemize}
% \item $B8*IU$-!J(B|h|$B!K$N>l9g!"%k%S$,C;$$>l9g$K$N$_!"%k%SJ8;zNs$H?FJ8;zNs(B
%   $B$NF,$rB7$($FG[CV$5$l$k!#(B
%   $B3HD%8*IU$-!J(B|H|$B!K$N>l9g!">o$KF,$rB7$($FG[CV$5$l$k!#(B
% \item |P| $B$O?FJ8;zNs$N>eB&!J2#AH!K!?1&B&!J=DAH!K!"(B
%   |S| $B$O?FJ8;zNs$N2<B&!J2#AH!K!?:8B&!J=DAH!K$K%k%S$rIU$9;XDj!#(B
% \item |e| $B;XDj;~$O!"%k%S$,D9$$>l9g$K?FJ8;zNs$r%k%S$ND9$5$K9g$o$;$F(B
%   $B6QEy3d$j$GG[CV$9$k!#(B
%   |E| $B;XDj;~$O!"6u$-$rF~$l$:$KCf1{B7$($GG[CV$9$k!#(B
%   $B$J$*!"%k%S$,C;$$>l9g$N%k%SJ8;zNs$N6QEy3d$j$O>o$KM-8z$G$"$k!#(B
% \item |f| $B;XDj;~$O!"%k%SJ8;zNsCf$N!J(B|{ }| $B$N30$K$"$k!K>.=q$-2>L>(B
%   $B!J$!(B\,$B$#(B\,$B$%(B\,$B$'(B\,$B$)(B\,$B$C(B\,$B$c(B\,$B$e(B\,$B$g(B\,$B$n!"(B
%   $B$*$h$S$=$NJR2>L>!K$rBP1~$NHs>.=q$-2>L>(B
%   $B$KJQ49$9$k!#(B
%   |F| $B;XDj$O$3$N5!G=$rL58z$K$9$k!#(B
% \item |M| $B$*$h$S(B |J| $B$N;XDj$O(B
%   $B!V%0%k!<%W%k%S$H%b%N!&=O8l%k%S$N4V$G<+F0E*$K@Z$jBX$($k!W(B
%   $B@_Dj$G$"$k!#(B
%   $B6qBNE*$K$O!"%k%S$N%0%k!<%W$,(B1$B$D$7$+$J$$>l9g$O(B |m| $B$*$h$S(B |g|$B!"(B
%   $BJ#?t$"$k>l9g$O(B |g| $B$HEy2A$K$J$k!#(B
% \end{itemize}
%
% \jmeta{$B8eJd=u@_Dj(B}$B$O0J2<$NCM$N2?$l$+!#(B
% \begin{quote}
%   \begin{tabular}[t]{ll}
%     \texttt{:} & $BOB2$J84V6uGrA^F~(B \\
%     \texttt{.} & $B6uGrA^F~$J$7(B
%   \end{tabular}\qquad
%   \begin{tabular}[t]{ll}
%     \texttt{*} & $B9TJ,3d6X;_(B \\
%     \texttt{!} & $BCJMnKv$G?JF~5v2D(B
%   \end{tabular}
% \end{quote}
%
% \begin{itemize}
% \item $B6uGrA^F~NL$N4{DjCM$OOBJ84V6uGr$G$"$k!#(B
% \item |*| $BL5;XDj$N>l9g$N9TJ,3d$N2DH]$O(B {p\LaTeX} $B$N(B
%   $BI8=`$NF0:n$K=>$&$N$,86B'$@$,!"D>8e$K$"$k$b$N$,J8;z$G$J$$>l9g!"(B
%   $B@5$7$/F0:n$7$J$$!J6XB'$,GK$l$k!K2DG=@-$,$"$k!#(B
%   $B=>$C$F!"ITE,@Z$J9TJ,3d$,5/$3$j$&$k>l9g$OE,59(B |*| $B$r;XDj$9$k(B
%   $BI,MW$,$"$k!J$J$*!"CJMnKvHx$G(B |*| $B$r;XDj$7$F$O$J$i$J$$!K!#(B
% \item |!| $BL5;XDj$N>l9g!"CJMnKvHx$G$O?JF~$,M^;_$5$l$k!#(B
% \item $B%4!<%9%H=hM}$,M-8z$N>l9g$O$3$3$N@_Dj$OL5;k$5$l$k!#(B
% \end{itemize}
%
% \jmeta{$B8e?JF~@_Dj(B}$B$O0J2<$NCM!#(B
% \begin{quote}
%   \begin{tabular}[t]{ll}
%     \texttt{\vb\vb} & $B8eFM=P6X;_(B\\
%     \texttt{\vb} & $B8e?JF~L5$7(B\\
%   \end{tabular}\qquad
%   \begin{tabular}[t]{ll}
%     \texttt{>} & $B8e?JF~Bg(B\\
%     \texttt{)} & $B8e?JF~>.(B
%   \end{tabular}
% \end{quote}
%
% \item |\jruby[|\jmeta{$B%*%W%7%g%s(B}|]{|\jmeta{$B?FJ8;z(B}^^A
% |}{|\jmeta{$B%k%SJ8;z(B}|}|
%
% |\ruby| $BL?Na$NJLL>!#(B
% |\ruby| $B$H$$$&L?NaL>$OB>$N%Q%C%1!<%8$H$N>WFM$N2DG=@-$,(B
% $B9b$$$N$G!"(B{\LaTeX}$BJ8=q$NK\J83+;O;~!J(B|\begin{document}|$B!K$K(B
% $BL$Dj5A$G$"$k>l9g$K$N$_Dj5A$5$l$k!#(B
% $B$3$l$KBP$7$F(B |\jruby| $B$O>o$KDj5A$5$l$k!#(B
% $B$J$*!"(B|\ruby| $B0J30$NL?Na!J(B|\jruby| $B$r4^$`!K$,Dj5A:Q$G$"$C$?(B
% $B!JL?NaL>$N>WFM!K>l9g$K$O%(%i!<$H$J$k!#(B
% 
% \item |\aruby[|\jmeta{$B%*%W%7%g%s(B}|]{|\jmeta{$B?FJ8;z(B}^^A
% |}{|\jmeta{$B%k%SJ8;z(B}|}|
% 
% $B2$J8%k%S$NL?Na!#(B
% $B$9$J$o$A!"2$J8J8;zNs$N>eB&!J2#AH!K!?1&B&!J=DAH!K$K%k%S$rIU$9!#(B
%
% $B2$J8%k%S$OOBJ8%k%S$HHf$Y$F0J2<$NE@$,0[$J$k!#(B
% \begin{itemize}
% \item $B>o$K%0%k!<%W%k%S$H07$o$l$k!#(B
%   $B!J(B|m|$B!"(B|g|$B!"(B|j| $B$N;XDj$OL58z!#!K(B
% \item $B?FJ8;zNs$N6QEy3d$j$O>o$KL58z$G$"$k!#(B
%   $B!J(B|e| $B;XDj$OL58z!#!K(B
% \item $B%k%SIU$-J8;z$HA08e$NJ8;z$H$N4V$N6u$-D4@0$d9TJ,3d2DH]$O(B
%   $BN><T$,$H$b$K2$J8$G$"$k$H$$$&A[Dj$G9T$o$l$k!#(B
%   $B=>$C$F!"4{Dj$G$O6u$-D4@0NL$O%<%m!"9TJ,3d$O6X;_$H$J$k!#(B
% \item $B6u$-D4@0$rOB2$J84V6uGr!J(B|:|$B!K$K$7$?>l9g$O!"(B
%   |*| $B$,;XDj$5$l$k$"$k$$$O<+F0$N6XB'=hM}$,F/$/$N$G$J$$8B$j!"(B
%   $B9TJ,3d$,5v2D$5$l$k!#(B
% \end{itemize}
% 
% \item |\truby[|\jmeta{$B%*%W%7%g%s(B}|]{|\jmeta{$B?FJ8;z(B}^^A
% |}{|\jmeta{$B>eB&%k%SJ8;z(B}|}{|\jmeta{$B2<B&%k%SJ8;z(B}|}|
% 
% $BOBJ8N>B&%k%S$NL?Na!#(B
% $B2#AH$N>l9g!"?FJ8;zNs$N>eB&$H2<B&$K%k%S$rIU$9!#(B
% $B=DAH$N>l9g!"?FJ8;zNs$N1&B&$H:8B&$K%k%S$rIU$9!#(B
%
% $BN>B&%k%S$G=O8l%k%S$r;H$&$3$H$O$G$-$J$$!#(B
% $B$9$J$o$A!"(B\jmeta{$B%*%W%7%g%s(B}$BCf$G(B |j|$B!"(B|J| $B$O;XDj$G$-$J$$!#(B
%
% \Note 1.1$BHG0JA0$G$O>o$K%0%k!<%W%k%S$N07$$$G$"$C$?!#(B
% $B5lHG$H$N8_49$N$?$a!"N>B&%k%S$N>l9g$K$O<+F0@ZBX%b%N%k%S!J(B|M|$B!K$r(B
% $B4{DjCM$H$9$k!#(B
% \footnote{$B$D$^$j!"5lMh$N;HMQ$G$O%0%k!<%W%k%S$H07$o$l$k$?$a!"(B
%   $B%k%S$N%0%k!<%W$O(B1$B$D$K$7$F$$$k$O$:$G!"$3$l$O?7HG$G$b$=$N$^$^(B
%   $B%0%k!<%W%k%S$H07$o$l$k!#(B
%   $B0lJ}$G!"%b%N%k%S$r;H$$$?$$>l9g$O%0%k!<%W$rJ#?t$K$9$k$O$:$G!"(B
%   $B$3$N;~$O<+F0E*$K%b%N%k%S$K$J$k!#(B
%   $B$J$N$G7k6I!"4pDl%b!<%I!J(B\texttt{g}$B!"(B\texttt{m}$B!K$r;XDj$9$k(B
%   $BI,MW$OL5$$$3$H$K$J$k!#(B}
%
% \item |\atruby[|\jmeta{$B%*%W%7%g%s(B}|]{|\jmeta{$B?FJ8;z(B}^^A
% |}{|\jmeta{$B>eB&%k%SJ8;z(B}|}{|\jmeta{$B2<B&%k%SJ8;z(B}|}|
% 
% $B2$J8N>B&%k%S$NL?Na!#(B
% $B2$J8%k%S$G$"$k$3$H$r=|$-(B |\truby| $B$HF1$8!#(B
%
% \end{itemize}
%
% \subsection{$BF~NOJ8;zNs$N%0%k!<%W$N;XDj(B}
%
% $BF~NOJ8;zNs!J?FJ8;zNs(B
% \footnote{$B8e=R$NDL$j!"8=:_$NHG$G$O?FJ8;zNs$rJ#?t%0%k!<%W$K$9$k(B
%   $B;HMQK!$OB8:_$7$J$$$?$a!"?FJ8;zNsCf$G$O!V(B\texttt{\vb}$B!W$O;H$o$l$J$$!#(B}%
% $B!&%k%SJ8;zNs!K$NCf$G!V(B\texttt{\vb}$B!W$O(B
% $B%0%k!<%W$N6h@Z$j$H$_$J$5$l$k!J$?$@$7(B |{ }| $B$NCf$K$"$k$b$N$O(B
% $BJ8;z$H$_$J$5$l$k!K!#(B
%
% $BNc$($P!"%k%SJ8;zNs(B
%\begin{quote}\begin{verbatim}
%$B$8$f$/(B|$B$4(B
%\end{verbatim}\end{quote}
% $B$O(B2$B$D$N%0%k!<%W$+$i$J$j!":G=i$N$b$N$O(B3$BJ8;z!"8e$N$b$N$O(B
% 1$BJ8;z$+$i$J$k!#(B
%
% $BD9$5$r9g$o$;$k$?$a$K6QEy3d$j$r9T$&>l9g!"$=$NJ,3d$NC10L$O(B
% $BDL>o$OJ8;z$G$"$k$,!"(B|{ }| $B$G0O$C$?$b$N$O(B1$BJ8;z$H$_$J$5$l$k(B
% $B!JK\J8=q$G$O$3$NC10L$N$3$H$r!TJ8;z!U$H5-$9!K!#(B
% $BNc$($P(B
%\begin{quote}\begin{verbatim}
%$B%Y%/%?(B{\<$B!J!<!K(B\<}
%\end{verbatim}\end{quote}
% $B$O(B1$B$D$N%0%k!<%W$+$i$J$j!"$=$l$O(B4$B$D$N!TJ8;z!U$+$i$J$k!#(B
%
% $B%0%k!<%W$d!TJ8;z!U$N;XDj$O%k%S$NIU$-J}$K1F6A$9$k!#(B
% $B$=$N>\:Y$r@bL@$9$k!#(B
% $B$J$*!"Hs3HD%5!G=$G$O?FJ8;z$N%0%k!<%W$O>o$K(B1$B$D$K8B$i$l$k!#(B
% \begin{itemize}
% \item $B%b%N%k%S!&=O8l%k%S$G$O?FJ8;zNs$N(B1$B$D$N!TJ8;z!U$K%k%SJ8;zNs$N(B
%   1$B$D$N%0%k!<%W$,BP1~$9$k!#(B
%   $BNc$($P!"(B
%\begin{quote}\begin{verbatim}
%\ruby[m]{$B=O8l(B}{$B$8$f$/(B|$B$4(B}
%\end{verbatim}\end{quote}
%   $B$O!"!V=O(B+$B$8$f$/!W!V8l(B+$B$4!W$N(B2$B$D$N%V%m%C%/$+$i$J$k!#(B
% \item $B!JC1=c!K%0%k!<%W%k%S$G$O%k%SJ8;zNs$N%0%k!<%W$b(B1$B$D$K8B$i$l!"(B
%   $B?FJ8;z$H%k%SJ8;z$NM#0l$N%0%k!<%W$,BP1~$9$k!#(B
%   $BNc$($P!"(B
%\begin{quote}\begin{verbatim}
%\ruby[g]{$B8^7n1+(B}{$B$5$_$@$l(B}
%\end{verbatim}\end{quote}
%   $B$O!"!V8^7n1+(B+$B$5$_$@$l!W$N(B1$B$D$N%V%m%C%/$+$i$J$k!#(B
% \end{itemize}
% 
% $B3HD%5!G=$G$O!"?FJ8;zNs$,J#?t%0%k!<%W$r$b$D$h$&$J;HMQK!$,(B
% $BB8:_$9$kM=Dj$G$"$k!#(B
%
% \subsection{$B%4!<%9%H=hM}(B}
%
% $B!VOBJ8%4!<%9%H=hM}!W$H$O0J2<$N$h$&$J$b$N$G$"$k!'(B
% \begin{quote}
%   $BOBJ8%k%S$N?FJ8;zNs=PNO$NA08e$KA43Q6uGrJ8;z$rA^F~$9$k(B
%   $B!J$?$@$7$=$N6u$-$rBG$A>C$9$h$&$KIi$N6u$-$rF1;~$KF~$l$k!K(B
%   $B$3$H$G!"?FJ8;zNsA4BN$,!"$=$N30B&$+$i8+$?$H$-$K!"(B
%   $BA43Q6uGrJ8;z!JBgDq$N(BJFM$B$G$O$3$l$O4A;z$HF1$807$$$K$J$k!K(B
%   $B$HF1MM$K07$o$l$k$h$&$K$9$k!#(B
%   $BNc$($P!"A0$K2$J8J8;z$,$"$k>l9g$K$O<+F0E*$KOB2$J84V6uGr$,(B
%   $BA^F~$5$l$k!#(B
% \end{quote}
% 
% $B!V2$J8%4!<%9%H=hM}!W$bBP>]$,2$J8$G$"$k$3$H$H=|$$$FF1$8$G$"$k!#(B
% $B!J$3$A$i$O!"!VJ#9g8l5-9f!J(Bcompound word mark$B!K!W$H$$$&%<%mI}(B
% $BIT2D;k$N2$J8J8;z$rMQ$$$k!#(B
% $B%k%SIUJ8;zNsA4BN$,C10l2$J8J8;z$N$h$&$K07$o$l$k!#!K(B
% $B$J$*!"!V%4!<%9%H!J(Bghost$B!K!W$H$$$&$N$O(BOmega$B$NMQ8l$G!"(B
% $B!VIT2D;k$G$"$k$,!J2?$i$+$N@-<A$K$*$$$F!KFCDj$N2D;k$NJ8;z$H(B
% $BF1Ey$NLr3d$r$b$D%*%V%8%'%/%H!W$N$3$H$G$"$k!#(B
%
% $B%4!<%9%H=hM}$rM-8z$K$9$k$H<!$N$h$&$J%a%j%C%H$,$"$k!#(B
%
% \begin{itemize}
% \item $BOB2$J84V6uGr$,<+F0E*$KA^F~$5$l$k!#(B
% \item $B9TJ,3d6X;_!J6XB'=hM}!K$,>o$K@5$7$/5!G=$9$k!#(B
% \item $BFC<l$J>u67!JNc$($PCJMnKv!K$G$b0[>oF0:n$r5/$3$7$K$/$$!#(B
% \item $B!J<BAu$,C1=c2=$5$l!"%P%0:.F~$NM>CO$,>/$J$/$J$k!#!K(B
% \end{itemize}
%
% $B$?$@$7!"<!$N$h$&$J=EMW$J%G%a%j%C%H$,$"$k!#(B
%
% \begin{itemize}
% \item {p\TeX}$B%(%s%8%s$N;EMM>e$N@)Ls$K$h$j!"%k%S=PNO$N(B
%   $B?JF~$H6&B8$G$-$J$$!#(B
%   $B!J=>$C$F6&B8$9$k$h$&$J@_Dj$r;n$_$k$H%(%i!<$K$J$k!#!K(B
% \end{itemize}
%
% $B$3$N$?$a!"4{Dj$G$O%4!<%9%H=hM}$OL58z$K$J$C$F$$$k!#(B
% $BM-8z$K$9$k$K$O!"(B|\rubyusejghost|$B!JOBJ8!K(B
% $B!?(B|\rubyuseaghost|$B!J2$J8!K$r<B9T$9$k!#(B
%
% $B$J$*!"(B\jmeta{$BA0Jd=u@_Dj(B}$B!?(B\jmeta{$B8eJd=u@_Dj(B}$B$G;XDj$5$l$k5!G=$O!"(B
% $B%4!<%9%H=hM}$,M-8z$N>l9g$K$OL58z2=$5$l$k!#(B
% $B$3$l$i$N5!G=$NL\E*$,<+F0=hM}$,<:GT$9$k$N$rJa0o$9$k$?$a$@$+$i$G$"$k!#(B
%
% \subsection{$B%Q%i%a%?@_DjL?Na(B}
%
% $B4pK\E*@_Dj!#(B
%
% \begin{itemize}
%
% \item |\rubysetup{|\jmeta{$B%*%W%7%g%s(B}|}|
%
% $B%*%W%7%g%s$N4{DjCM@_Dj!#(B
% $B!N4{Dj(B = \texttt{\vb cjPeF\vb}$B!O(B
% \begin{itemize}
% \item $B$3$l<+BN$N4{DjCM$O(B
%   $B!VFM=P5v2D!"?JF~L5$7!"CfIU$-!"=O8l%k%S!">eB&G[CV!"(B
%   $B?FJ8;z6QEy3d$jM-8z!">.=q$-J8;zJQ49L58z!W$G$"$k!#(B
% \item \jmeta{$BA0Jd=u@_Dj(B}$B!?(B\jmeta{$B8eJd=u@_Dj(B}$B$N4{DjCM$OJQ99(B
%   $B$G$-$J$$!#(B
%   |\rubysetup| $B$G$3$l$i$N%*%W%7%g%sJ8;z$r;XDj$7$F$b(B
%   $BL5;k$5$l$k!#(B
% \item |\rubysetup| $B$G$N@_Dj$ON_@Q$9$k!#(B
%   $BNc$($P!"=i4|>uBV$+$i!"(B|\rubysetup{hmf}| $B$H(B |\rubysetup{<->}| $B$r(B
%   $B<B9T$7$?>l9g!"4{DjCM@_Dj$O(B |<hmPef>| $B$H$J$k!#(B
% \item $B$3$N@_Dj$K4X$o$i$:!"N>B&%k%S$G$O!V<+F0@ZBX%b%N%k%S!J(B|M|$B!K!W(B
%   $B$,4{Dj$H$7$F;XDj$5$l$k!#(B
% \end{itemize}
%
% \item |\rubyfontsetup{|\jmeta{$BL?Na(B}|}|
%
% $B%k%SMQ$N%U%)%s%H@ZBXL?Na$r@_Dj$9$k!#(B
% $BNc$($P!"%k%S$OI,$:L@D+BN$G=PNO$7$?$$$H$$$&>l9g$O!"(B
% $B0J2<$NL?Na$r<B9T$9$l$P$h$$!#(B
%\begin{quote}\begin{verbatim}
%\rubyfontsetup{\mcfamily}
%\end{verbatim}\end{quote}
%
% \item |\rubybigintrusion{|\jmeta{$B<B?t(B}|}|
%
% $B!VBg!W$N?JF~NL!J%k%SA43QC10L!K!#(B
% $B!N4{Dj(B = 1$B!O(B
%
% \item |\rubysmallintrusion{|\jmeta{$B<B?t(B}|}|
%
% $B!V>.!W$N?JF~NL!J%k%SA43QC10L!K!#(B
% $B!N4{Dj(B = 0.5$B!O(B
%
% \item |\rubymaxmargin{|\jmeta{$B<B?t(B}|}|
%
% $B%k%SJ8;zNs$NJ}$,C;$$>l9g$N!"%k%SJ8;zNs$NC<$N?FJ8;zNs$NC<(B
% $B$+$i$N5wN%$N>e8BCM!J?FJ8;zA43QC10L!K!#(B
% $B!N4{Dj(B = 0.75$B!O(B
%
% \item |\rubyintergap{|\jmeta{$B<B?t(B}|}|
%
% $B%k%S$H?FJ8;z$N4V$N6u$-!J?FJ8;zA43QC10L!K!#(B
% $B!N4{Dj(B = 0$B!O(B
%
% \item |\rubyusejghost|$B!?(B|\rubynousejghost|
%
% $BOBJ8%4!<%9%H=hM}$r9T$&!?9T$o$J$$!#(B
% $B!N4{Dj(B = $B9T$o$J$$!O(B
%
% \item |\rubyuseaghost|$B!?(B|\rubynouseaghost|
%
% $B2$J8%4!<%9%H=hM}$r9T$&!?9T$o$J$$!#(B
% $B!N4{Dj(B = $B9T$o$J$$!O(B
%
% \end{itemize}
%
% $B>\:Y@_Dj!#(B
% $BDL>o$O$3$l$i$N4{DjCM$rJQ$($kI,MW$O$J$$$@$m$&!#(B
%
% \begin{itemize}
% 
% \item |\rubysafemode|$B!?(B|\rubynosafemode|
%
% $B0BA4%b!<%I$rM-8z!?L58z$K$9$k!#(B
% $B!N4{Dj(B = $BL58z!O(B
% \begin{itemize}
% \item $BK\%Q%C%1!<%8$,%5%]!<%H$9$k%(%s%8%s$O(B
%   (u){\pTeX}$B!"(B{\XeTeX}$B!"(B{\LuaTeX}$B$G$"$k!#(B
%   $B!V0BA4%b!<%I!W$H$O!"$3$l$i$N%(%s%8%s$rI,MW$H$9$k0lIt$N5!G=(B
%   \footnote{$B0BA4%b!<%I$G$O!"6/@)E*$K%0%k!<%W%k%S$K@Z$jBX$o$k!#(B
%     $B$^$?!"?FJ8;z!&%k%S$NN>J}$N6QEy3d$jIU$1!"$*$h$S!"(B
%     $B>.=q$-J8;z<+F0JQ49$,L58z$K$J$k!#(B}%
%   $B$rL58z2=$7$?%b!<%I$G$"$k!#(B
%   $B$D$^$j!"0BA4%b!<%I$K@Z$jBX$($k$3$H$G!"!H%5%]!<%HBP>]!I$G$J$$(B
%   $B%(%s%8%s!J(B{\pdfTeX}$BEy!K$G$bK\%Q%C%1!<%8$N0lIt$N5!G=$,(B
%   $B;H$($k2DG=@-$,$"$k!#(B
% \item $B;HMQCf$N%(%s%8%s$,(B{\pdfTeX}$B$G$"$k>l9g!"4{Dj$G0BA4%b!<%I(B
%   $B$,M-8z$K$J$k!#(B
% \end{itemize}
%
% \item |\rubysizeratio{|\jmeta{$B<B?t(B}|}|
%
% $B%k%S%5%$%:$N?FJ8;z%5%$%:$KBP$9$k3d9g!#(B
% $B!N4{Dj(B = 0.5$B!O(B
%
% \item |\rubystretchprop{|\meta{X}|}{|\meta{Y}|}{|\meta{Z}|}|
%
% $B%k%SMQ6QEy3d$j$NHfN($N;XDj!#(B
% $B!N4{Dj(B = 1, 2, 1$B!O(B
%
% \item |\rubystretchprophead{|\meta{Y}|}{|\meta{Z}|}|
%
% $BA0FM=P6X;_;~$N6QEy3d$j$NHfN($N;XDj!#(B
% $B!N4{Dj(B = 1, 1$B!O(B
%
% \item |\rubystretchpropend{|\meta{X}|}{|\meta{Y}|}|
%
% $B8eFM=P6X;_;~$N6QEy3d$j$NHfN($N;XDj!#(B
% $B!N4{Dj(B = 1, 1$B!O(B
%
% \item |\rubyyheightratio{|\jmeta{$B<B?t(B}|}|
%
% $B2#AHOBJ8$N9b$5$N=DI}$KBP$9$k3d9g!#(B
% $B!N4{Dj(B = 0.88$B!O(B
%
% \item |\rubytheightratio{|\jmeta{$B<B?t(B}|}|
%
% $B=DAHOBJ8$N!V9b$5!W$N!V=DI}!W$KBP$9$k3d9g(B
% $B!J(B{p\TeX}$B$N=DAH$G$O!V=D!W$H!V2#!W$,<B:]$N5U$K$J$k!K!#(B
% $B!N4{Dj(B = 0.5$B!O(B
%
% \end{itemize}
%
%^^A------------------------------------
% \section{$B7wE@5!G=(B}
%
% \subsection{$B7wE@MQL?Na(B}
%
% \begin{itemize}
% \item |\kenten[|\jmeta{$B%*%W%7%g%s(B}|]{|\jmeta{$B?FJ8;z(B}|}|
%
% $BOBJ8J8;zNs$N>eB&!J2#AH!K!?1&B&!J=DAH!K$K7wE@$rIU$9(B
% $B!J%*%W%7%g%s$G5UB&$K$b$G$-$k!K!#(B
%
% \jmeta{$B%*%W%7%g%s(B}$B$OJ#?t;XDj2DG=$G!"GSB>$J;XDj$,J;B8$7$?>l9g$O(B
% $B8e$N$b$N$,M-8z$K$J$k!#(B
% $B$^$?!">JN,$5$l$?;XDj$K$D$$$F$O(B |\kentensetup| $B$G;XDj$5$l$?(B
% $B4{DjCM$,MQ$$$i$l$k!#(B
%
% $B%*%W%7%g%s$K;XDj$G$-$kCM$O0J2<$NDL$j!#(B
% \begin{quote}
%   \newcommand*\fro[1]{{\scriptsize($<$\,\textit{#1})}}
%   \begin{tabular}[t]{l@{ }ll}
%     \texttt{p} & \fro{primary}   & $B<g%^!<%/(B\\
%     \texttt{s} & \fro{seconday}  & $BI{%^!<%/(B\\
%     \texttt{f} & \fro{full}      & $BA4J8;zIU2CM-8z(B\\
%     \texttt{F} &                 & $BA4J8;zIU2CL58z(B
%   \end{tabular}\qquad
%   \begin{tabular}[t]{l@{ }ll}
%     \texttt{P} & \fro{primary}    & $B>eB&G[CV(B\\
%     \texttt{S} & \fro{secondary}  & $B2<B&G[CV(B
%   \end{tabular}
% \end{quote}
%
% \begin{itemize}
% \item |p|$B!"(B|s| $B$OIU2C$9$k7wE@$N<oN`$rI=$9!#(B
%   $B2#AH$G$O<g%^!<%/!J(B|p|$B!K$O9uCfE@!"I{%^!<%/!J(B|s|$B!K$O9u%4%^E@$,(B
%   $BMQ$$$i$l!"=DAH$G$O5U$K<g%^!<%/$,9u%4%^E@!"I{%^!<%/$,9uCfE@$H$J$k!#(B
%   $B$?$@$7@_DjL?Na$K$h$j7wE@$N<oN`$OJQ99$G$-$k!#(B
% \item |P| $B$O?FJ8;zNs$N>eB&!J2#AH!K!?1&B&!J=DAH!K!"(B
%   |S| $B$O?FJ8;zNs$N2<B&!J2#AH!K!?:8B&!J=DAH!K$K7wE@$rIU$9;XDj!#(B
% \item |f| $B;XDj;~$O!"?FJ8;zNs$K4^$^$l$k!HDL>oJ8;z!I$NA4$F$K7wE@$rIU2C$9$k!#(B
%   |F| $B;XDj;~$O!"LsJ*$G$"$k!HDL>oJ8;z!I$K$O7wE@$rIU2C$7$J$$!#(B
% \end{itemize}
%
% \end{itemize}
%
% \subsection{$B7wE@L?Na$N?FJ8;zNs(B}
%
% $B7wE@IU2C$N=hM}$G$O?FJ8;zNs$rJ8;zKh$KJ,2r$9$kI,MW$,$"$k!#(B
% $B$3$N$?$a!"7wE@L?Na$N?FJ8;zNs$O0lDj$N5,B'$K=>$C$F(B
% $B=q$+$l$kI,MW$,$"$k!#(B
%
% $B7wE@L?Na$N?FJ8;zNs$K$O0J2<$N$b$N$r4^$a$k$3$H$,$G$-$k!#(B
%
% \begin{itemize}
% \item $BDL>oJ8;z(B\Means {\LaTeX}$B$NL?Na$dFC<lJ8;z$d2$J86uGr$G$J$$!"(B
%   $B2$J8$^$?$OOBJ8$NJ8;z$r;X$9!#(B
%   $BDL>oJ8;z$K$O0l$D$N7wE@$,IU2C$5$l$k!#(B
%   \begin{itemize}
%   \item |F| $B%*%W%7%g%s$r;XDj$7$?>l9g!"LsJ*!J6gFIE@Ey!K$NJ8;z$K$O(B
%     $B7wE@$,IU2C$5$l$J$$!#(B
%   \item $B2$J8J8;z$K7wE@$rIU$1$?>l9g!"$=$NJ8;z$OAHHG>e(B
%     $B!HOBJ8J8;z$N$h$&$K!I?6Iq$&!#(B
%   \end{itemize}
% \item {\LaTeX}$B$NL?Na$*$h$S2$J86uGr(B\Means $B$3$l$i$K$O(B
%   $B7wE@$,IU2C$5$l$J$$!#(B
%   \begin{itemize}
%   \item $B<g$K(B |\,| $B$d(B |\quad| $B$N$h$&$J6uGrMQ$NL?Na$N;HMQ$r(B
%     $B0U?^$7$F$$$k!#(B
%   \item |\hspace{1zw}| $B$N$h$&$J0z?t$r<h$kL?Na$r$=$N$^$^=q$/$3$H$O(B
%     $B$G$-$J$$!#(B
%     $B$3$N>l9g$O!"0J9_$K<($92?$l$+$N=q<0$rMxMQ$9$kI,MW$,$"$k!#(B
%     \footnote{$BA43Q6uGr!J(B\verb|\hspace{1zw}|$B!K$dOB2$J84V6uGr(B
%       $B!J(B\verb|\hspace{\kanjiskip}|$B!K$r=PNO$9$k@lMQ$N%^%/%m$rMQ0U$7$F(B
%       $B$*$/$HJXMx$+$b$7$l$J$$!#(B}
%   \end{itemize}
% \item $B%0%k!<%W(B\Means $B$9$J$o$A!"(B|{ }| $B$K0O$^$l$?G$0U$N%F%-%9%H!#(B
%   $B%k%SL?Na$N%0%k!<%W$HF1MM$K!"0l$D$N!TJ8;z!U$H$7$F07$o$l!"(B
%   $BA4BN$KBP$7$F0l$D$N7wE@$,IU2C$5$l$k!#(B
%   \begin{itemize}
%   \item \PKN{japanese-otf}$B%Q%C%1!<%8$N(B |\CID| $BL?Na$N$h$&$J!"(B
%     $B!VFC<l$JOBJ8J8;z$r=PNO$9$kL?Na!W$N;HMQ$r0U?^$7$F$$$k!#(B
%   \end{itemize}
% \item |\kspan{|\jmeta{$B%F%-%9%H(B}|}|\Means $B$3$l$O!"(B
%   $B=PNO$5$l$k%F%-%9%H$NI}$K1~$8$?8D?t$N7wE@$,IU2C$5$l$k!#(B
%   \begin{itemize}
%   \item $BNc$($P!"!H$/$N;zE@!I$K7wE@$rIU$9>l9g$K;H$($k!#(B
%   \item $B$"$k$$$O!"!J>/!9<jH4$-$G$"$k$,(B
%     \footnote{$BK\Mh$O!"(B\verb|\textgt| $B$NCf$G2~$a$F(B \verb|\kenten|
%       $B$r;H$&$Y$-$G$"$k!#(B}%
%     $B!K(B|\kenten{$B$3$N(B\kspan{\textgt{$BJ8;z(B}}$B$@(B}| $B$_$?$$$J;H$$J}$b(B
%     $B9M$($i$l$k!#(B
%   \end{itemize}
% \item |\kspan*{|\jmeta{$B%F%-%9%H(B}|}|\Means $B$3$l$O(B
%   $B7wE@$rIU$5$:$K%F%-%9%H$r$=$N$^$^=PNO$9$k!#(B
% \item $B%k%SL?Na!J(B|\ruby| $BEy!K(B\Means $BNc$($P(B
%\begin{quote}\begin{verbatim}
%\kenten{$B$3$l$,(B\ruby[|j|]{$B7wE@(B}{$B$1$s(B|$B$F$s(B}$B$G$9(B}$B!#(B
%\end{verbatim}\end{quote}
%   $B$N$h$&$K!"%k%SL?Na$O$=$N$^$^=q$/$3$H$,$G$-$k!#(B
%   \begin{itemize}
%   \item |\kentenrubycombination| $B$N@_Dj$K$h$C$F$O!"%k%S$H7wE@$NN>J}$,(B
%     $BIU2C$5$l$k!#(B
%   \item $B<BAu>e$N@)8B(B
%     \footnote{$B7wE@L?Na$O>o$K%4!<%9%H=hM}$rH<$&$?$a!"@h=R$N(B
%     $B!V%4!<%9%H=hM}$H?JF~$O6&B8$7$J$$!W$H$$$&@)8B$K0z$C$+$+$k$N$G$"$k!#(B}%
%     $B$N$?$a!"7wE@L?Na$N@hF,$K%k%SL?Na$,$"$k>l9g!"(B
%     $B%k%S$NA0B&$N?JF~$,L58z$K$J$k!#(B
%     $BF1MM$K!"7wE@L?Na$NKvHx$K%k%SL?Na$,$"$k>l9g!"(B
%     $B%k%S$N8eB&$N?JF~$,L58z$K$J$k!#(B
%   \item $B7wE@L?NaCf$N%k%S$N=hM}$ODL>o$N>l9g$HHf$Y$F!HJ#;(!I$G$"$k$?$a!"(B
%     $B<+F0E*$J6XB'=hM}$,F/$+$J$$2DG=@-$,9b$$!#(B
%     $B=>$C$F!"I,MW$K1~$8$FJd=u@_Dj$GJ,3d6X;_!J(B|*|$B!K$r;XDj$9$kI,MW$,$"$k!#(B
%   \item $B5U$K%k%SL?Na$NF~NO$K7wE@L?Na$r$=$N$^$^=q$/$3$H$O$G$-$J$$!#(B
%\begin{quote}\begin{verbatim}
%\ruby[|j|]{\kenten{$B7wE@(B}}{$B$1$s(B|$B$F$s(B}% $BIT2D(B
%\end{verbatim}\end{quote}
%     |{ }| $B$G0O$C$?!TJ8;z!U$NCf$G$O;H$($k$,!"$3$N>l9g$OF1;~IU2C$H$O(B
%     $B8+$J$5$l$:!"FHN)$KF0:n$9$k$3$H$K$J$k!#(B
%   \end{itemize}
% \end{itemize}
%
% \subsection{$B%4!<%9%H=hM}(B}
%
% $B7wE@=PNO$G$O%k%S$H0[$J$j?JF~$N=hM}$,ITMW$G$"$k!#(B
% $B$3$N$?$a!"8=>u$G$O!"7wE@L?Na$K$D$$$F$O(B
% \textgt{$B>o$K(B}$BOBJ8%4!<%9%H=hM}$rE,MQ$9$k!#(B
%
% \Note $BHsI8=`$NOBJ8%a%H%j%C%/!J(BJFM$B!K$,;H$o$l$F$$$kEy$NM}M3$G!"(B
% $BOBJ8%4!<%9%H=hM}$,@5>o$K5!G=$7$J$$>l9g$,B8:_$9$k!#(B
% $B$3$N$?$a!">-MhE*$K!"7wE@L?Na$K$D$$$F$bOBJ8%4!<%9%H=hM}$r(B
% $B9T$o$J$$!J%k%SL?Na$HF1MM$NJd=u@_Dj$rE,MQ$9$k!K@_Dj$r(B
% $BMQ0U$9$kM=Dj$G$"$k!#(B
%
% \subsection{$B%Q%i%a%?@_DjL?Na(B}
%
% \begin{itemize}
%
% \item |\kentensetup{|\jmeta{$B%*%W%7%g%s(B}|}|
%
% $B%*%W%7%g%s$N4{DjCM@_Dj!#(B
% $B!N4{Dj(B = \texttt{pPF}$B!O(B
%
% \item |\kentenmarkinyoko{|\jmeta{$BL>A0$^$?$O%F%-%9%H(B}|}|
%
% $B2#AH;~$N<g%^!<%/!J(B|p| $B;XDj;~!K$H$7$F;H$o$l$k7wE@$r;XDj$9$k!#(B
% $B!N4{Dj(B = |bullet*|$B!O(B
%
% $B%Q%C%1!<%8$GM=$aMQ0U$5$l$F$$$k7wE@<oJL$K$D$$$F$OL>A0$G;XDj$G$-$k!#(B
% \begin{quote}
%   \newcommand*\Us[1]{\symbol{"#1}}
%   \newcommand*\Ucomp{{\small \<$B!J9g@.!K(B\<}}
%   \newcommand*\U[1]{\texttt{#1}}
%   \begin{tabular}[t]{ll@{ }ll}
%     \texttt{bullet*}   & {$B!&(B}      & \Ucomp   & $B9uCfE@(B\\
%     \texttt{bullet}    & {$B!&(B}      & \U{2022*}& $B9uCfE@(B\\
%     \texttt{Bullet}    & \Us{25E6} & \U{25E6*}& $BGrCfE@(B\\
%     \texttt{sesame*}   & \Us{FE45} & \Ucomp   & $B9u%4%^E@(B\\
%     \texttt{sesame}    & \Us{FE45} & \U{FE45*}& $B9u%4%^E@(B\\
%     \texttt{Sesame}    & \Us{FE46} & \U{FE46*}& $BGr%4%^E@(B
%   \end{tabular}\qquad
%   \begin{tabular}[t]{ll@{ }ll}
%     \texttt{triangle}  & \Us{25B2} & \U{25B2} & $B9u;03Q(B\\
%     \texttt{Triangle}  & \Us{25B3} & \U{25B3} & $BGr;03Q(B\\
%     \texttt{circle}    & \Us{25CF} & \U{25CF} & $B9u4](B\\
%     \texttt{Circle}    & \Us{25CB} & \U{25CB} & $BGr4](B\\
%     \texttt{bullseye}  & \Us{25CE} & \U{25CE} & $BFs=E4](B\\
%     \texttt{fisheye}   & \Us{25C9} & \U{25C9*}& $B<X$NL\E@(B
%   \end{tabular}
% \end{quote}
% \begin{itemize}
% \item $B$3$l$i$N7wE@<oJL$N$&$A!"(B
%   |bullet*| $B$OCf9u!H(B{$B!&(B}$B!I!J(BU+30FB$B!K!"(B
%   |sesame*| $B$OFIE@!H(B{$B!"(B}$B!I!J(BU+3001$B!K$N(B
%   $B;z7A$r2C9)$7$?$b$N$rMxMQ$9$k!#(B
%   $B$3$l$i$O$I$s$JF|K\8l%U%)%s%H$G$b%5%]!<%H$5$l$F$$$k$N$G!"(B
%   $B3N<B$K;HMQ$G$-$k!#(B
% \item $B$=$l0J30$N7wE@<oJL$O!"5-:\$NJ8;z%3!<%I$r$b$D(B
%   Unicode$BJ8;z$r=PNO$9$k!#(B
%   $B;HMQ$9$k%U%)%s%H$K$h$C$F$O!";z7A$r;}$C$F$$$J$$$?$a2?$b=PNO$5$l$J$$!"(B
%   $B$"$k$$$O;z7A$,A43QI}$G$J$$$?$a@5>o$K=PNO$5$l$J$$!"(B
%   $B$H$$$&2DG=@-$,$"$k!#(B
% \item $BJ8;z%3!<%ICM$K(B |*| $B$rIU$1$?$b$N$O!"$=$NJ8;z$,(B
%   JIS~X~0208$B$K$J$$$3$H$rI=$9!#(B
%   {\pLaTeX}$B$G$3$l$i$N7wE@<oJL$rMxMQ$9$k$?$a$K$O(B
%   \PKN{japanese-otf}$B%Q%C%1!<%8$rFI$_9~$`I,MW$,$"$k!#(B
% \end{itemize}
%
% $B$"$k$$$O!"L>A0$NBe$o$j$KG$0U$N(B{\LaTeX}$B$N%F%-%9%H$r=q$/$3$H$,$G$-$k!#(B
% \footnote{$B$?$@$7!"0z?t$N@hF,$NJ8;z$,(BASCII$B1Q;z$G$"$k>l9g$O(B
%   $BL>A0$N;XDj$H8+$J$5$l$k$?$a!"%F%-%9%H$H$7$F07$$$?$$>l9g$O(B
%   $BE,59(B \verb|{ }| $B$rJd$&Ey$NA<CV$,I,MW$G$"$k!#(B}%
%\begin{quote}\begin{verbatim}
%\kentenmarkinyoko{$B"((B}
%\end{verbatim}\end{quote}
%
% \item |\kentensubmarkinyoko{|\jmeta{$BL>A0$^$?$O%F%-%9%H(B}|}|
%
% $B2#AH;~$NI{%^!<%/!J(B|s| $B;XDj;~!K$H$7$F;H$o$l$k7wE@$r;XDj$9$k!#(B
% $B!N4{Dj(B = |sesame*|$B!O(B
%
% \item |\kentenmarkintate{|\jmeta{$BL>A0$^$?$O%F%-%9%H(B}|}|
%
% $B=DAH;~$N<g%^!<%/!J(B|p| $B;XDj;~!K$H$7$F;H$o$l$k7wE@$r;XDj$9$k!#(B
% $B!N4{Dj(B = |sesame*|$B!O(B
%
% \item |\kentensubmarkintate{|\jmeta{$BL>A0$^$?$O%F%-%9%H(B}|}|
%
% $B=DAH;~$NI{%^!<%/!J(B|s| $B;XDj;~!K$H$7$F;H$o$l$k7wE@$r;XDj$9$k!#(B
% $B!N4{Dj(B = |bullet*|$B!O(B
%
% \item |\kentenfontsetup{|\jmeta{$BL?Na(B}|}|
%
% $B7wE@MQ$N%U%)%s%H@ZBXL?Na$r@_Dj$9$k!#(B
%
% \item |\kentenintergap{|\jmeta{$B<B?t(B}|}|
%
% $B7wE@$H?FJ8;z$N4V$N6u$-!J?FJ8;zA43QC10L!K!#(B
% $B!N4{Dj(B = 0$B!O(B
%
% \item |\kentensizeratio{|\jmeta{$B<B?t(B}|}|
%
% $B7wE@%5%$%:$N?FJ8;z%5%$%:$KBP$9$k3d9g!#(B
% $B!N4{Dj(B = 0.5$B!O(B
%
% \end{itemize}
%
% $B7wE@$H%k%S$NF1;~IU2C$K4X$9$k@_Dj!#(B
%
% \begin{itemize}
%
% \item |\kentenrubycombination{|\jmeta{$BCM(B}|}|
% $B7wE@L?Na$N?FJ8;zCf$G%k%SL?Na$,;H$o$l$?;~$N5sF0$r;XDj$9$k!#(B
% $B!N4{Dj(B = |both|$B!O(B
% \begin{itemize}
% \item |ruby|$B!'(B $B%k%S$N$_$r=PNO$9$k!#(B
% \item |both|$B!'(B $B%k%S$N30B&$K7wE@$r=PNO$9$k!#(B
% \end{itemize}
%
% \item |\kentenrubyintergap{|\jmeta{$B<B?t(B}|}|
%
% $B7wE@$H%k%S$,F1$8B&$KIU$$$?;~$N4V$N6u$-!J?FJ8;zA43QC10L!K!#(B
% $B!N4{Dj(B = 0$B!O(B
%
% \end{itemize}
%
%^^A------------------------------------
%\iffalse
% \section{$B>-Mh$N3HD%5!G=(B\<$B!JL$<BAu!K(B}
%
% $B!J$3$N@a$G$O!"$^$@<BAu$5$l$F$$$J$$$,!"(B
% $B<B8=$G$-$l$P$h$$$H9M$($F$$$k5!G=$K$D$$$F=R$Y$k!#!K(B
%
% $B!V9TJ,3d$NM-L5$K$h$j?FJ8;z$H%k%SJ8;z$NAjBP0LCV$,JQ2=$9$k!W(B
% $B$h$&$J=hM}$O!"(B{\TeX}$B$G$N<B8=$OHs>o$KFq$7$$!#(B
% $B$3$l$r(B{$\varepsilon$-p\TeX}$B$N3HD%5!G=$rMQ$$$F2?$H$+(B
% $B<B8=$7$?$$!#(B
%
% \begin{itemize}
%
% \item $B2DF0%0%k!<%W%k%S5!G=(B\Means
%   $BNc$($P!"(B
%\begin{quote}\begin{verbatim}
%\ruby[g]{$B2f;W$&(B|$B8N$K(B|$B2fM-$j(B}{$B%3%.%H!&(B|$B%(%k%4!&(B|$B%9%`(B}
%\end{verbatim}\end{quote}
%   $B$N$h$&$K%0%k!<%W%k%S$GJ#?t%0%k!<%W$r;XDj$9$k$H!"(B
%   $BDL>o$O!V2f;W$&8N$K2fM-$j(B+$B%3%.%H!&%(%k%4!&%9%`!W$N(B1$B%V%m%C%/$K(B
%   $B$J$k$,!"%0%k!<%W$N6h@Z$j$G9TJ,3d2DG=$H$J$j!"Nc$($P:G=i$N%0%k!<%W(B
%   $B$N8e$G9TJ,3d$5$l$?>l9g$O!"<+F0E*$K(B
%   $B!V2f;W$&(B+$B%3%.%H!&!W$H!V8N$K2fM-$j(B+$B%(%k%4!&%9%`!W$N(B2$B%V%m%C%/$G$N(B
%   $BAHHG$KJQ2=$9$k!#(B
% \item $B9TF,!&9TKv$G$NFM=P$N<+F0Jd@5(B\Means
%   $B9TF,!J9TKv!K$KG[CV$5$l$?%k%SIU$-J8;zNs$G$O!"<+F0E*$K(B
%   $BA0!J8e!KFM=P$r6X;_$9$k!#(B
% \item $B=O8l%k%S$NESCf$G$N9TJ,3d$N5v2D(B\Means
%   $BNc$($P!"(B
%\begin{quote}\begin{verbatim}
%\ruby[j]{$B=O8l(B}{$B$8$f$/(B|$B$4(B}
%\end{verbatim}\end{quote}
%   $B$N>l9g!"7k2L$O%0%k!<%W%k%S=hM}$N!V=O8l(B+$B$8$f$/$4!W(B
%   $B$H$J$k$,!"ESCf$G$N9TJ,3d$,2DG=$G!"$=$N>l9g!"(B
%   $B!V=O(B+$B$8$f$/!W!V8l(B+$B$4!W$N(B2$B%V%m%C%/$G=PNO$5$l$k!#(B
%
% \end{itemize}
%
% \subsection{$B3HD%5!G=@_Dj$NL?Na(B}
%
% \begin{itemize}
%
% \item |\rubyuseextra{|\jmeta{$B@0?t(B}|}|
% 
% $B3HD%5!G=$N<BAuJ}K!!#(B
% $B!N4{Dj(B = 0$B!O(B
% \begin{itemize}
% \item 0$B!'(B $B3HD%5!G=$rL58z$K$9$k!#(B
% \item 1$B!'(B $B$^$@$h$/$o$+$i$J$$$J$K$+!JL$<BAu!K!#(B
% \end{itemize}
% 
% \item |\rubyadjustatlineedge|$B!?(B|\rubynoadjustatlineedge|
%
% $B9TF,!&9TKv$G$NFM=P$N<+F0Jd@5$r9T$&!?9T$o$J$$!#(B
% $B!N4{Dj(B = $B9T$o$J$$!O(B
% 
% \item |\rubybreakjukugo|$B!?(B|\rubynobreakjukugo|
%
% $B%b%N%k%S=hM}$K$J$i$J$$=O8l%k%S$GCf4V$N9TJ,3d$r5v$9!?5v$5$J$$!#(B
% $B!N4{Dj(B = $B5v$5$J$$!O(B
%
% \end{itemize}
%\fi
%^^A========================================================
% \StopEventually
% \newpage
% \setlength{\parindent}{0pt}
% \newcommand*{\cs}[1]{\texttt{\symbol{`\\}#1}}
%
%^^A------------------------------------
% \section{$B<BAu!J%k%S4XO"!K(B}
%
% \subsection{$BA0Ds%Q%C%1!<%8(B}
%
% \PKN{keyval}$B$r;H$&M=Dj!J$^$@;H$C$F$$$J$$!K!#(B
%    \begin{macrocode}
\RequirePackage{keyval}
%    \end{macrocode}
%
% \subsection{$B%(%i!<%a%C%;!<%8(B}
%
% \begin{macro}{\pxrr@error}
% \begin{macro}{\pxrr@warn}
% $B%(%i!<=PNOL?Na!#(B
%    \begin{macrocode}
\def\pxrr@pkgname{pxrubrica}
\def\pxrr@error{%
  \PackageError\pxrr@pkgname
}
\def\pxrr@warn{%
  \PackageWarning\pxrr@pkgname
}
%    \end{macrocode}
% \end{macro}
% \end{macro}
%
% \begin{macro}{\ifpxrr@fatal@error}
% $BCWL?E*%(%i!<$,H/@8$7$?$+!#(B
% $B%9%$%C%A!#(B
%    \begin{macrocode}
\newif\ifpxrr@fatal@error
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@fatal@error}
% $BCWL?E*%(%i!<$N%U%i%0$rN)$F$F!"%(%i!<$rI=<($9$k!#(B
%    \begin{macrocode}
\def\pxrr@fatal@error{%
  \pxrr@fatal@errortrue
  \pxrr@error
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@eh@fatal}
% $BCWL?E*%(%i!<$N%X%k%W!#(B
%    \begin{macrocode}
\def\pxrr@eh@fatal{%
  The whole ruby input was ignored.\MessageBreak
  \@ehc
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@fatal@not@supported}
% $BL$<BAu$N5!G=$r8F$S=P$7$?>l9g!#(B
%    \begin{macrocode}
\def\pxrr@fatal@not@supported#1{%
  \pxrr@fatal@error{Not yet supported: #1}%
  \pxrr@eh@fatal
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@err@inv@value}
% $B0z?t$KL58z$JCM$,;XDj$5$l$?>l9g!#(B
%    \begin{macrocode}
\def\pxrr@err@inv@value#1{%
  \pxrr@error{Invalud value (#1)}%
  \@ehc
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@fatal@unx@letter}
% $B%*%W%7%g%sCf$KITB,$NJ8;z$,8=$l$?>l9g!#(B
%    \begin{macrocode}
\def\pxrr@fatal@unx@letter#1{%
  \pxrr@fatal@error{Unexpected letter '#1' found}%
  \pxrr@eh@fatal
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@warn@bad@athead}
% $B%b%N%k%S0J30!"$"$k$$$O2#AH$_$G8*IU$-;XDj$,9T$o$l$?>l9g!#(B
% $B6/@)E*$KCfIU$-$KJQ99$5$l$k!#(B
%    \begin{macrocode}
\def\pxrr@warn@bad@athead{%
  \pxrr@warn{Position 'h' not allowed here}%
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@warn@must@group}
% $B2$J8%k%S$G%0%k!<%W%k%S0J30$N;XDj$,9T$o$l$?>l9g!#(B
% $B6/@)E*$K%0%k!<%W%k%S$KJQ99$5$l$k!#(B
%    \begin{macrocode}
\def\pxrr@warn@must@group{%
  \pxrr@warn{Only group ruby is allowed here}%
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@warn@bad@jukugo}
% $BN>B&%k%S$G=O8l%k%S$N;XDj$,9T$o$l$?>l9g!#(B
% $B6/@)E*$KA*BrE*%b%N%k%S!J(B|M|$B!K$KJQ99$5$l$k!#(B
%    \begin{macrocode}
\def\pxrr@warn@bad@jukugo{%
  \pxrr@warn{Jukugo ruby is not allowed here}%
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@fatal@bad@intr}
% $B%4!<%9%H=hM}$,M-8z$G?JF~M-$j$r@_Dj$7$?>l9g!#(B
% $B!JCWL?E*%(%i!<!K!#(B
%    \begin{macrocode}
\def\pxrr@fatal@bad@intr{%
  \pxrr@fatal@error{%
    Intrusion disallowed when ghost is enabled%
  }\pxrr@eh@fatal
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@fatal@bad@no@protr}
% $BA0$H8e$NN>J}$GFM=P6X;_$r@_Dj$7$?>l9g!#(B
% $B!JCWL?E*%(%i!<!K!#(B
%    \begin{macrocode}
\def\pxrr@fatal@bad@no@protr{%
  \pxrr@fatal@error{%
    Protrusion must be allowed for either end%
  }\pxrr@eh@fatal
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@fatal@bad@length}
% $B?FJ8;zNs$H%k%SJ8;zNs$G%0%k!<%W$N8D?t$,?)$$0c$&>l9g!#(B
% $B!J%b%N%k%S!&=O8l%k%S$N>l9g!"?FJ8;z$N%0%k!<%W?t$O<B:]$K$O(B
% $B!TJ8;z!U?t$N$3$H!#!K(B
%    \begin{macrocode}
\def\pxrr@fatal@bad@length#1#2{%
  \pxrr@fatal@error{%
    Group count mismatch between the ruby and\MessageBreak
    the body (#1 <> #2)%
  }\pxrr@eh@fatal
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@fatal@bad@mono}
% $B%b%N%k%S!&=O8l%k%S$N?FJ8;zNs$,(B2$B$D0J>e$N%0%k!<%W$r;}$D>l9g!#(B
%    \begin{macrocode}
\def\pxrr@fatal@bad@mono{%
  \pxrr@fatal@error{%
    Mono-ruby body must have a single group%
  }\pxrr@eh@fatal
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@fatal@bad@switching}
% $BA*BrE*%k%S$N?FJ8;zNs$,(B2$B$D0J>e$N%0%k!<%W$r;}$D>l9g!#(B
%    \begin{macrocode}
\def\pxrr@fatal@bad@switching{%
  \pxrr@fatal@error{%
    The body of Switching-ruby (M/J) must\MessageBreak
    have a single group%
  }\pxrr@eh@fatal
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@fatal@bad@movable}
% $B2$J8%k%S!JI,$:%0%k!<%W%k%S$H$J$k!K$G(B
% $B%k%SJ8;zNs$,(B2$B$D0J>e$N%0%k!<%W$r;}$D>l9g!#(B
%    \begin{macrocode}
\def\pxrr@fatal@bad@movable{%
  \pxrr@fatal@error{%
    Novable group ruby is not allowed here%
  }\pxrr@eh@fatal
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@fatal@na@movable}
% $B%0%k!<%W%k%S$G%k%SJ8;zNs$,(B2$B$D0J>e$N%0%k!<%W$r;}$D(B
% $B!J$D$^$j2DF0%0%k!<%W%k%S$G$"$k!K$,!"3HD%5!G=$,L58z$G$"$k$?$a(B
% $B<B8=$G$-$J$$>l9g!#(B
%    \begin{macrocode}
\def\pxrr@fatal@na@movable{%
  \pxrr@fatal@error{%
    Feature of movable group ruby is disabled%
  }\pxrr@eh@fatal
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@warn@load@order}
% Unicode {\TeX}$BMQ$NF|K\8lAHHG%Q%C%1!<%8!J(BLua{\TeX}-ja$BEy!K$O(B
% $B$3$N%Q%C%1!<%8$h$jA0$KFI$_9~$`$Y$-$@$,!"8e$GFI$_9~$^$l$F$$$k(B
% $B$3$H$,H=L@$7$?>l9g!#(B
%    \begin{macrocode}
\def\pxrr@warn@load@order#1{%
  \pxrr@warn{%
    This package should be loaded after '#1'%
  }%
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@interror}
% $BFbIt%(%i!<!#(B
% $B$3$l$,=P$F$O$$$1$J$$!#(B{\small\texttt{:-)}}
%    \begin{macrocode}
\def\pxrr@interror#1{%
  \pxrr@fatal@error{INTERNAL ERROR (#1)}%
  \pxrr@eh@fatal
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\ifpxrrDebug}
% $B%G%P%C%0%b!<%I;XDj!#(B
%    \begin{macrocode}
\newif\ifpxrrDebug
%    \end{macrocode}
% \end{macro}
%
% \subsection{$B%Q%i%a%?(B}
%
% \subsubsection{$BA4HL@_Dj(B}
%
% \begin{macro}{\pxrr@ruby@font}
% $B%k%SMQ%U%)%s%H@ZBXL?Na!#(B
%    \begin{macrocode}
\let\pxrr@ruby@font\@empty
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@big@intr}
% \begin{macro}{\pxrr@small@intr}
% $B!VBg!W$H!V>.!W$N?JF~NL(B
% $B!J(B|\rubybigintrusion|$B!?(B|\rubysmallintrusion|$B!K!#(B
% $B<B?tCM%^%/%m!J?t;zNs$KE83+$5$l$k!K!#(B
%    \begin{macrocode}
\def\pxrr@big@intr{1}
\def\pxrr@small@intr{0.5}
%    \end{macrocode}
% \end{macro}
% \end{macro}

% \begin{macro}{\pxrr@size@ratio}
% $B%k%SJ8;z%5%$%:(B
% $B!J(B|\rubysizeratio|$B!K!#(B
% $B<B?tCM%^%/%m!#(B
%    \begin{macrocode}
\def\pxrr@size@ratio{0.5}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@sprop@x}
% \begin{macro}{\pxrr@sprop@y}
% \begin{macro}{\pxrr@sprop@z}
% $B?-=LG[CVHfN((B
% $B!J(B|\rubystretchprop|$B!K!#(B
% $B<B?tCM%^%/%m!#(B
%    \begin{macrocode}
\def\pxrr@sprop@x{1}
\def\pxrr@sprop@y{2}
\def\pxrr@sprop@z{1}
%    \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
%
% \begin{macro}{\pxrr@sprop@hy}
% \begin{macro}{\pxrr@sprop@hz}
% $B?-=LG[CVHfN((B
% $B!J(B|\rubystretchprophead|$B!K!#(B
% $B<B?tCM%^%/%m!#(B
%    \begin{macrocode}
\def\pxrr@sprop@hy{1}
\def\pxrr@sprop@hz{1}
%    \end{macrocode}
% \end{macro}
% \end{macro}
%
% \begin{macro}{\pxrr@sprop@ex}
% \begin{macro}{\pxrr@sprop@ey}
% $B?-=LG[CVHfN((B
% $B!J(B|\rubystretchpropend|$B!K!#(B
% $B<B?tCM%^%/%m!#(B
%    \begin{macrocode}
\def\pxrr@sprop@ex{1}
\def\pxrr@sprop@ey{1}
%    \end{macrocode}
% \end{macro}
% \end{macro}
%
% \begin{macro}{\pxrr@maxmargin}
% $B%k%SJ8;zNs$N:GBg%^!<%8%s(B
% $B!J(B|\rubymaxmargin|$B!K!#(B
% $B<B?tCM%^%/%m!#(B
%    \begin{macrocode}
\def\pxrr@maxmargin{0.75}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@yhtratio}
% $B2#AHOBJ8$N9b$5$N=DI}$KBP$9$k3d9g(B
% $B!J(B|\rubyyheightratio|$B!K!#(B
% $B<B?tCM%^%/%m!#(B
%    \begin{macrocode}
\def\pxrr@yhtratio{0.88}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@thtratio}
% $B=DAHOBJ8$N9b$5$N=DI}$KBP$9$k3d9g(B
% $B!J(B|\rubytheightratio|$B!K!#(B
% $B<B?tCM%^%/%m!#(B
%    \begin{macrocode}
\def\pxrr@thtratio{0.5}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@extra}
% $B3HD%5!G=<BAuJ}K!(B
% $B!J(B|\rubyuseextra|$B!K!#(B
% $B@0?tDj?t!#(B
%    \begin{macrocode}
\chardef\pxrr@extra=0
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\ifpxrr@jghost}
% $BOBJ8%4!<%9%H=hM}$r9T$&$+(B
% $B!J(B|\ruby[no]usejghost|$B!K!#(B
% $B%9%$%C%A!#(B
%    \begin{macrocode}
\newif\ifpxrr@jghost \pxrr@jghostfalse
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\ifpxrr@aghost}
% $B2$J8%4!<%9%H=hM}$r9T$&$+(B
% $B!J(B|\ruby[no]useaghost|$B!K!#(B
% $B%9%$%C%A!#(B
%    \begin{macrocode}
\newif\ifpxrr@aghost \pxrr@aghostfalse
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@inter@gap}
% $B%k%S$H?FJ8;z$N4V$N6u$-(B
% $B!J(B|\rubyintergap|$B!K!#(B
% $B<B?tCM%^%/%m!#(B
%    \begin{macrocode}
\def\pxrr@inter@gap{0}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\ifpxrr@edge@adjust}
% $B9TF,!&9TKv$G$NFM=P$N<+F0Jd@5$r9T$&$+(B
% $B!J(B|\ruby[no]adjustatlineedge|$B!K!#(B
% $B%9%$%C%A!#(B
%    \begin{macrocode}
\newif\ifpxrr@edge@adjust \pxrr@edge@adjustfalse
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\ifpxrr@break@jukugo}
% $B=O8l%k%S$GCf4V$N9TJ,3d$r5v$9$+(B
% $B!J(B|\ruby[no]breakjukugo|$B!K!#(B
% $B%9%$%C%A!#(B
%    \begin{macrocode}
\newif\ifpxrr@break@jukugo \pxrr@break@jukugofalse
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\ifpxrr@safe@mode}
% $B0BA4%b!<%I$G$"$k$+!#(B
% $B!J(B|\ruby[no]safemode|$B!K!#(B
% $B%9%$%C%A!#(B
%    \begin{macrocode}
\newif\ifpxrr@safe@mode \pxrr@safe@modefalse
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\ifpxrr@d@bprotr}
% \begin{macro}{\ifpxrr@d@aprotr}
% $BFM=P$r5v$9$+H]$+!#(B
% |\rubysetup| $B$N(B\jmeta{$BA0@_Dj(B}$B!?(B\jmeta{$B8e@_Dj(B}$B$KM3Mh$9$k!#(B
% $B%9%$%C%A!#(B
%    \begin{macrocode}
\newif\ifpxrr@d@bprotr \pxrr@d@bprotrtrue
\newif\ifpxrr@d@aprotr \pxrr@d@aprotrtrue
%    \end{macrocode}
% \end{macro}
% \end{macro}
%
% \begin{macro}{\pxrr@d@bintr}
% \begin{macro}{\pxrr@d@aintr}
% $B?JF~NL!#(B
% |\rubysetup| $B$N(B\jmeta{$BA0@_Dj(B}$B!?(B\jmeta{$B8e@_Dj(B}$B$KM3Mh$9$k!#(B
% |\pxrr@XXX@intr| $B$^$?$O6u!J?JF~L5$7!K$KE83+$5$l$k%^%/%m!#(B
%    \begin{macrocode}
\def\pxrr@d@bintr{}
\def\pxrr@d@aintr{}
%    \end{macrocode}
% \end{macro}
% \end{macro}
%
% \begin{macro}{\pxrr@d@athead}
% $B8*IU$-!?CfIU$-$N@_Dj!#(B
% |\rubysetup| $B$N(B |c|$B!?(B|h|$B!?(B|H| $B$N@_Dj!#(B
% 0 = $BCfIU$-!J(B|c|$B!K!((B
% 1 = $B8*IU$-!J(B|h|$B!K!((B2 = $B3HD%8*IU$-!J(B|H|$B!K!#(B
% $B@0?tDj?t!#(B
%    \begin{macrocode}
\chardef\pxrr@d@athead=0
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@d@mode}
% $B%b%N%k%S!J(B|m|$B!K!&%0%k!<%W%k%S!J(B|g|$B!K!&=O8l%k%S!J(B|j|$B!K(B
% $B$N$$$:$l$+!#(B
% |\rubysetup| $B$N@_DjCM!#(B
% $B%*%W%7%g%sJ8;z$X$N0EL[$N!J(B|\let| $B$5$l$?!KJ8;z%H!<%/%s!#(B
%    \begin{macrocode}
\let\pxrr@d@mode=j
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@d@side}
% $B%k%S$r?FJ8;z$N>e2<$N$I$A$i$KIU$9$+!#(B
% 0 = $B>eB&!((B1 = $B2<B&!#(B
% |\rubysetup| $B$N(B |P|$B!?(B|S| $B$N@_Dj!#(B
% $B@0?tDj?t!#(B
%    \begin{macrocode}
\chardef\pxrr@d@side=0
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@d@evensp}
% $B?FJ8;zNs6QEy3d$j$N@_Dj!#(B
% 0 = $BL58z!((B1 = $BM-8z!#(B
% |\rubysetup| $B$N(B |e|$B!?(B|E| $B$N@_Dj!#(B
% $B@0?tDj?t!#(B
%    \begin{macrocode}
\chardef\pxrr@d@evensp=1
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@d@fullsize}
% $B>.=q$-J8;zJQ49$N@_Dj!#(B
% 0 = $BL58z!((B1 = $BM-8z!#(B
% |\rubysetup| $B$N(B |f|$B!?(B|F| $B$N@_Dj!#(B
% $B@0?tDj?t!#(B
%    \begin{macrocode}
\chardef\pxrr@d@fullsize=0
%    \end{macrocode}
% \end{macro}
%
% \subsubsection{$B8F=P;~%Q%i%a%?!&JQ?t(B}
%
% $B0lHLE*$K!"FCDj$N%k%S!&7wE@L?Na$N8F=P$K8GM-$G$"$k(B
% $B!J$D$^$j$=$NFbB&$K%M%9%H$5$l$?%k%S!&7wE@L?Na$K7Q>5$9$Y$-$G$J$$!K(B
% $B%Q%i%a%?$O!"8F=P;~$NCM$rJL$KJ];}$7$F$*$/$Y$-$G$"$k!#(B
%
% \begin{macro}{\ifpxrr@bprotr}
% \begin{macro}{\ifpxrr@aprotr}
% $BFM=P$r5v$9$+H]$+!#(B
% |\ruby| $B$N(B\jmeta{$BA0@_Dj(B}$B!?(B\jmeta{$B8e@_Dj(B}$B$KM3Mh$9$k!#(B
% $B%9%$%C%A!#(B
%    \begin{macrocode}
\newif\ifpxrr@bprotr \pxrr@bprotrfalse
\newif\ifpxrr@aprotr \pxrr@aprotrfalse
%    \end{macrocode}
% \end{macro}
% \end{macro}
%
% \begin{macro}{\pxrr@bintr}
% \begin{macro}{\pxrr@aintr}
% $B?JF~NL!#(B
% |\ruby| $B$N(B\jmeta{$BA0@_Dj(B}$B!?(B\jmeta{$B8e@_Dj(B}$B$KM3Mh$9$k!#(B
% $B@#K!CM$KE83+$5$l$k%^%/%m!#(B
%    \begin{macrocode}
\def\pxrr@bintr{}
\def\pxrr@aintr{}
%    \end{macrocode}
% \end{macro}
% \end{macro}
%
% \begin{macro}{\pxrr@bscomp}
% \begin{macro}{\pxrr@ascomp}
% $B6u$-Jd@5@_Dj!#(B
% |\ruby| $B$N(B |:| $B;XDj$KM3Mh$9$k!#(B
% $B0EL[$NJ8;z%H!<%/%s!JL5;XDj$O(B |\relax|$B!K!#(B
% \Note $B4{DjCM@_Dj!J(B|\rubysetup|$B!K$G$3$l$KBP1~$9$k$b$N$O$J$$!#(B
%    \begin{macrocode}
\let\pxrr@bscomp\relax
\let\pxrr@ascomp\relax
%    \end{macrocode}
% \end{macro}
% \end{macro}
%
% \begin{macro}{\ifpxrr@bnobr}
% \begin{macro}{\ifpxrr@anobr}
% $B%k%SIUJ8;z$ND>A0!?D>8e$G9TJ,3d$r5v$9$+!#(B
% |\ruby| $B$N(B |*| $B;XDj$KM3Mh$9$k!#(B
% $B%9%$%C%A!#(B
% \Note $B4{DjCM@_Dj!J(B|\rubysetup|$B!K$G$3$l$KBP1~$9$k$b$N$O$J$$!#(B
%    \begin{macrocode}
\newif\ifpxrr@bnobr \pxrr@bnobrfalse
\newif\ifpxrr@anobr \pxrr@anobrfalse
%    \end{macrocode}
% \end{macro}
% \end{macro}
%
% \begin{macro}{\ifpxrr@bfintr}
% \begin{macro}{\ifpxrr@afintr}
% $BCJMnKAF,!?KvHx$G?JF~$r5v2D$9$k$+!#(B
% |\ruby| $B$N(B |!| $B;XDj$KM3Mh$9$k!#(B
% $B%9%$%C%A!#(B
% \Note $B4{DjCM@_Dj!J(B|\rubysetup|$B!K$G$3$l$KBP1~$9$k$b$N$O$J$$!#(B
%    \begin{macrocode}
\newif\ifpxrr@bfintr \pxrr@bfintrfalse
\newif\ifpxrr@afintr \pxrr@afintrfalse
%    \end{macrocode}
% \end{macro}
% \end{macro}
%
% \begin{macro}{\pxrr@athead}
% $B8*IU$-!?CfIU$-$N@_Dj!#(B
% |\ruby| $B$N(B |c|$B!?(B|h|$B!?(B|H| $B$N@_Dj!#(B
% $BCM$N0UL#$O(B |\pxrr@d@athead| $B$HF1$8!#(B
% $B@0?tDj?t!#(B
%    \begin{macrocode}
\chardef\pxrr@athead=0
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\ifpxrr@athead@iven}
% $B8*IU$-!?CfIU$-$N@_Dj$,L@<(E*$G$"$k$+!#(B
% $B%9%$%C%A!#(B
%    \begin{macrocode}
\newif\ifpxrr@athead@given \pxrr@athead@givenfalse
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@mode}
% $B%b%N%k%S!J(B|m|$B!K!&%0%k!<%W%k%S!J(B|g|$B!K!&=O8l%k%S!J(B|j|$B!K$N$$$:$l$+!#(B
% |\ruby| $B$N%*%W%7%g%s$N@_DjCM!#(B
% $B%*%W%7%g%sJ8;z$X$N0EL[J8;z%H!<%/%s!#(B
%    \begin{macrocode}
\let\pxrr@mode=\@undefined
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\ifpxrr@mode@given}
% $B4pK\%b!<%I$N@_Dj$,L@<(E*$G$"$k$+!#(B
% $B%9%$%C%A!#(B
%    \begin{macrocode}
\newif\ifpxrr@mode@given \pxrr@mode@givenfalse
\newif\ifpxrr@afintr \pxrr@afintrfalse
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\ifpxrr@abody}
% $B%k%S$,(B |\aruby|$B!J2$J8?FJ8;zMQ!K$G$"$k$+!#(B
% $B%9%$%C%A!#(B
%    \begin{macrocode}
\newif\ifpxrr@abody
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@side}
% $B%k%S$r?FJ8;z$N>e2<$N$I$A$i$KIU$9$+!#(B
% 0 = $B>eB&!((B1 = $B2<B&!((B2 = $BN>B&!#(B
% |\ruby| $B$N(B |P|$B!?(B|S| $B$,(B 0$B!?(B1 $B$KBP1~$7!"(B
% |\truby| $B$G$O(B 2 $B$,;HMQ$5$l$k!#(B
% $B@0?tDj?t!#(B
%    \begin{macrocode}
\chardef\pxrr@side=0
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@evensp}
% $B?FJ8;zNs6QEy3d$j$N@_Dj!#(B
% 0 = $BL58z!((B1 = $BM-8z!#(B
% |\ruby| $B$N(B |e|$B!?(B|E| $B$N@_Dj!#(B
% $B@0?tDj?t!#(B
%    \begin{macrocode}
\chardef\pxrr@evensp=1
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@revensp}
% $B%k%SJ8;zNs6QEy3d$j$N@_Dj!#(B
% 0 = $BL58z!((B1 = $BM-8z!#(B
% $B@0?tDj?t!#(B
% \Note $BDL>o$OM-8z$@$,!"0BA4%b!<%I$G$OL58z$K$J$k!#(B
%    \begin{macrocode}
\chardef\pxrr@revensp=1
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@fullsize}
% $B>.=q$-J8;zJQ49$N@_Dj!#(B
% 0 = $BL58z!((B1 = $BM-8z!#(B
% |\ruby| $B$N(B |f|$B!?(B|F| $B$N@_Dj!#(B
% $B@0?tDj?t!#(B
%    \begin{macrocode}
\chardef\pxrr@fullsize=1
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@c@ruby@font}
% \begin{macro}{\pxrr@c@size@ratio}
% \begin{macro}{\pxrr@c@inter@gap}
% $B0J2<$O!H%*%W%7%g%s$G;XDj$9$k!I0J30$N%Q%i%a%?$KBP1~$9$k$b$N!#(B
%    \begin{macrocode}
\let\pxrr@c@ruby@font\@undefined
\let\pxrr@c@size@ratio\@undefined
\let\pxrr@c@inter@gap\@undefined
%    \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
%
% \subsection{$B$=$NB>$NJQ?t(B}
%
% \begin{macro}{\pxrr@body@list}
% $B?FJ8;zNs$N$?$a$K;H$&%j%9%H!#(B
%    \begin{macrocode}
\let\pxrr@body@list\@undefined
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@body@count}
% |\pxrr@body@list| $B$ND9$5!#(B
% $B@0?tCM%^%/%m!#(B
%    \begin{macrocode}
\let\pxrr@body@count\@undefined
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@ruby@list}
% $B%k%SJ8;zNs$N$?$a$K;H$&%j%9%H!#(B
%    \begin{macrocode}
\let\pxrr@ruby@list\@undefined
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@ruby@count}
% |\pxrr@ruby@list| $B$ND9$5!#(B
% $B@0?tCM%^%/%m!#(B
%    \begin{macrocode}
\let\pxrr@ruby@count\@undefined
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@sruby@list}
% 2$B$DL\$N%k%SJ8;zNs$N$?$a$K;H$&%j%9%H!#(B
%    \begin{macrocode}
\let\pxrr@sruby@list\@undefined
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@sruby@count}
% |\pxrr@sruby@list| $B$ND9$5!#(B
% $B@0?tCM%^%/%m!#(B
%    \begin{macrocode}
\let\pxrr@sruby@count\@undefined
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@whole@list}
% $B?FJ8;z$H%k%S$N%j%9%H$r(Bzip$B$7$?%j%9%H!#(B
%    \begin{macrocode}
\let\pxrr@whole@list\@undefined
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@bspace}
% $B%k%S$,?FJ8;z$+$iA0B&$K$O$_$@$9D9$5!#(B
% $B@#K!CM%^%/%m!#(B
%    \begin{macrocode}
\let\pxrr@bspace\@undefined
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@aspace}
% $B%k%S$,?FJ8;z$+$i8eB&$K$O$_$@$9D9$5!#(B
% $B@#K!CM%^%/%m!#(B
%    \begin{macrocode}
\let\pxrr@aspace\@undefined
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@natwd}
% |\pxrr@evenspace@int| $B$N%Q%i%a%?!#(B
% $B@#K!CM%^%/%m!#(B
%    \begin{macrocode}
\let\pxrr@natwd\@undefined
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@all@input}
% $BN>B&%k%S$N=hM}$G;H$o$l$k0l;~JQ?t!#(B
%    \begin{macrocode}
\let\pxrr@all@input\@undefined
%    \end{macrocode}
% \end{macro}
%
% \subsection{$BJd=u<jB3(B}
%
% \subsubsection{$B;(B?$JDj5A(B}
%
% \begin{macro}{\ifpxrr@ok}
% $BHFMQ%9%$%C%A!#(B
%    \begin{macrocode}
\newif\ifpxrr@ok
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@cnta}
% $BHFMQ$N@0?t%l%8%9%?!#(B
%    \begin{macrocode}
\newcount\pxrr@cnta
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@cntr}
% $B7k2L$r3JG<$9$k@0?t%l%8%9%?!#(B
%    \begin{macrocode}
\newcount\pxrr@cntr
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@dima}
% $BHFMQ$N@#K!%l%8%9%?!#(B
%    \begin{macrocode}
\newdimen\pxrr@dima
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@boxa}
% \begin{macro}{\pxrr@boxb}
% $BHFMQ$N%\%C%/%9%l%8%9%?!#(B
%    \begin{macrocode}
\newbox\pxrr@boxa
\newbox\pxrr@boxb
%    \end{macrocode}
% \end{macro}
% \end{macro}
%
% \begin{macro}{\pxrr@boxr}
% $B7k2L$r3JG<$9$k%\%C%/%9%l%8%9%?!#(B
%    \begin{macrocode}
\newbox\pxrr@boxr
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@token}
% |\futurelet| $BMQ$N0l;~JQ?t!#(B
% \Note if-$B%H!<%/%s$J$I$N!H4m81!I$J%H!<%/%s$K$J$j$&$k$N$G;H$$2s$5$J$$!#(B
%    \begin{macrocode}
\let\pxrr@token\relax
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@zero}
% $B@0?tDj?t$N%<%m!#(B
% |\z@| $B$H0[$J$j!"!VC10LIU@#K!!W$N78?t$H$7$F;HMQ2DG=!#(B
%    \begin{macrocode}
\chardef\pxrr@zero=0
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@zeropt}
% $B!V(B|0pt|$B!W$H$$$&J8;zNs!#(B
% $B@#K!CM%^%/%m$X$NBeF~$KMQ$$$k!#(B
%    \begin{macrocode}
\def\pxrr@zeropt{0pt}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@hfilx}
% |\pxrr@hfilx{|\jmeta{$B<B?t(B}|}|\Means
% $B!V(B\jmeta{$B<B?t(B}\texttt{fil}$B!W$N%0%k!=$rCV$/!#(B
%    \begin{macrocode}
\def\pxrr@hfilx#1{%
  \hskip\z@\@plus #1fil\relax
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@res}
% $B7k2L$r3JG<$9$k%^%/%m!#(B
%    \begin{macrocode}
\let\pxrr@res\@empty
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@ifx}
% |\pxrr@ifx{|\jmeta{$B0z?t(B}|}|\jmeta{$B??(B}|}{|\jmeta{$B56(B}|}|\Means
% |\ifx|\jmeta{$B0z?t(B} $B$r9T$&%F%9%H!#(B
%    \begin{macrocode}
\def\pxrr@ifx#1{%
  \ifx#1\expandafter\@firstoftwo
  \else\expandafter\@secondoftwo
  \fi
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@cond}
% |\pxrr@cond\ifXXX...\fi{|\jmeta{$B??(B}|}{|\jmeta{$B56(B}|}|\Means
% $B0lHL$N(B{\TeX}$B$N(Bif$BJ8(B |\ifXXX...| $B$r9T$&%F%9%H!#(B
% \Note |\fi| $B$rIU$1$F$$$k$N$O!"(Bif-$BIT6Q9U$rHr$1$k$?$a!#(B
%    \begin{macrocode}
\@gobbletwo\if\if \def\pxrr@cond#1\fi{%
  #1\expandafter\@firstoftwo
  \else\expandafter\@secondoftwo
  \fi
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@cslet}
% \begin{macro}{\pxrr@letcs}
% \begin{macro}{\pxrr@csletcs}
% |\pxrr@cslet{NAMEa}\CSb|\Means
% |\NAMEa| $B$K(B |\CSb| $B$r(B |\let| $B$9$k!#(B
% 
% |\pxrr@letcs\CSa{NAMEb}|\Means
% |\CSa| $B$K(B |\NAMEb| $B$r(B |\let| $B$9$k!#(B
% 
% |\pxrr@csletcs{NAMEa}{NAMEb}|\Means
% |\NAMEa| $B$K(B |\NAMEb| $B$r(B |\let| $B$9$k!#(B
%    \begin{macrocode}
\def\pxrr@cslet#1{%
  \expandafter\let\csname#1\endcsname
}
\def\pxrr@letcs#1#2{%
  \expandafter\let\expandafter#1\csname#2\endcsname
}
\def\pxrr@csletcs#1#2{%
  \expandafter\let\csname#1\expandafter\endcsname
   \csname#2\endcsname
}
%    \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
%
% \begin{macro}{\pxrr@setok}
% |\pxrr@setok{|\jmeta{$B%F%9%H(B}|}|\Means
% $B%F%9%H$N7k2L$r(B |\ifpxrr@ok| $B$KJV$9!#(B
%    \begin{macrocode}
\def\pxrr@setok#1{%
  #1{\pxrr@oktrue}{\pxrr@okfalse}%
}
%    \end{macrocode}
% \end{macro}
% \begin{macro}{\pxrr@appto}
% |\pxrr@appto\CS{|\jmeta{$B%F%-%9%H(B}|}|\Means
% $BL50z?t%^%/%m$NCV49%F%-%9%H$KDI2C$9$k!#(B
%    \begin{macrocode}
\def\pxrr@appto#1#2{%
  \expandafter\def\expandafter#1\expandafter{#1#2}%
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@nil}
% \begin{macro}{\pxrr@end}
% $B%f%K!<%/%H!<%/%s!#(B
%    \begin{macrocode}
\def\pxrr@nil{\noexpand\pxrr@nil}
\def\pxrr@end{\noexpand\pxrr@end}
%    \end{macrocode}
% \end{macro}
% \end{macro}
%
% \begin{macro}{\pxrr@without@macro@trace}
% |\pxrr@without@macro@trace{|\jmeta{$B%F%-%9%H(B}|}|\Means
% $B%^%/%mE83+$N%H%l!<%9$rL58z$K$7$?>uBV$G(B\jmeta{$B%F%-%9%H(B}$B$r<B9T$9$k!#(B
%    \begin{macrocode}
\def\pxrr@without@macro@trace#1{%
  \chardef\pxrr@tracingmacros@save=\tracingmacros
  \tracingmacros\z@
  #1%
  \tracingmacros\pxrr@tracingmacros@save
}
\chardef\pxrr@tracingmacros@save=0
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@hbox}
% \begin{macro}{\pxrr@hbox@to}
% color $B%Q%C%1!<%8BP1~$N(B |\hbox| $B$H(B |\hb@xt@|$B!J(B= |\hbox| |to|$B!K!#(B
%    \begin{macrocode}
\def\pxrr@hbox#1{%
  \hbox{%
    \color@begingroup
      #1%
    \color@endgroup
  }%
}
\def\pxrr@hbox@to#1#{%
  \pxrr@hbox@to@a{#1}%
}
\def\pxrr@hbox@to@a#1#2{%
  \hbox to#1{%
    \color@begingroup
      #2%
    \color@endgroup
  }%
}
%    \end{macrocode}
% color $B%Q%C%1!<%8IT;HMQ$N>l9g$O!"(B
% $BK\Mh$N(B |\hbox| $B$H(B |\hb@xt@| $B$KLa$7$F$*$/!#(B
% $B$3$l$HF14|$7$F(B |\pxrr@takeout@any@protr| $B$NF0:n$bJQ99$9$k!#(B
%    \begin{macrocode}
\AtBeginDocument{%
  \ifx\color@begingroup\relax
    \ifx\color@endgroup\relax
      \let\pxrr@hbox\hbox
      \let\pxrr@hbox@to\hb@xt@
      \let\pxrr@takeout@any@protr\pxrr@takeout@any@protr@nocolor
    \fi
  \fi
}
%    \end{macrocode}
% \end{macro}
% \end{macro}
%
% \subsubsection{$B?tCM7W;;(B}
%
% \begin{macro}{\pxrr@invscale}
% |\pxrr@invscale{|\jmeta{$B@#K!%l%8%9%?(B}|}{|\jmeta{$B<B?t(B}|}|\Means
% $B8=:_$N(B\jmeta{$B@#K!%l%8%9%?(B}$B$NCM$r(B\jmeta{$B<B?t(B}$B$G(B
% $B=|;;$7$?CM$K99?7$9$k!#(B
% $B$9$J$o$A!"(B\jmeta{$B@#K!%l%8%9%?(B}|=|\jmeta{$B<B?t(B}^^A
% \jmeta{$B@#K!%l%8%9%?(B}$B$N5U$N1i;;$r9T$&!#(B
%    \begin{macrocode}
\mathchardef\pxrr@invscale@ca=259
\def\pxrr@invscale#1#2{%
  \begingroup
    \@tempdima=#1\relax
    \@tempdimb#2\p@\relax
    \@tempcnta\@tempdima
    \multiply\@tempcnta\@cclvi
    \divide\@tempcnta\@tempdimb
    \multiply\@tempcnta\@cclvi
    \@tempcntb\p@
    \divide\@tempcntb\@tempdimb
    \advance\@tempcnta-\@tempcntb
    \advance\@tempcnta-\tw@
    \@tempdimb\@tempcnta\@ne
    \advance\@tempcnta\@tempcntb
    \advance\@tempcnta\@tempcntb
    \advance\@tempcnta\pxrr@invscale@ca
    \@tempdimc\@tempcnta\@ne
    \@whiledim\@tempdimb<\@tempdimc\do{%
      \@tempcntb\@tempdimb
      \advance\@tempcntb\@tempdimc
      \advance\@tempcntb\@ne
      \divide\@tempcntb\tw@
      \ifdim #2\@tempcntb>\@tempdima
        \advance\@tempcntb\m@ne
        \@tempdimc=\@tempcntb\@ne
      \else
        \@tempdimb=\@tempcntb\@ne
      \fi}%
    \xdef\pxrr@gtempa{\the\@tempdimb}%
  \endgroup
  #1=\pxrr@gtempa\relax
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@interpolate}
% |\pxrr@interpolate{|\jmeta{$BF~NOC10L(B}|}|\pad^^A
% |{|\jmeta{$B=PNOC10L(B}|}|\pad^^A
% |{|\jmeta{$B@#K!%l%8%9%?(B}|}|\pad^^A
% |{(|$\mathrm{X}_1$|,|$\mathrm{Y}_1$|)|\pad^^A
% |(|$\mathrm{X}_2$|,|$\mathrm{Y}_2$|)|$\cdots$\pad^^A
% |(|$\mathrm{X}_n$|,|$\mathrm{Y}_n$|)}|\Means
% $B@~7AJd4V$r9T$&!#(B
% $B$9$J$o$A!"L@<(CM(B
% \[
%   f(0\,\mathrm{pt}) = 0\,\mathrm{pt},\ 
%   f(\mathrm{X}_1\,\mathrm{iu})=\mathrm{Y}_1\,\mathrm{ou},\ 
%   \ldots,\ 
%   f(\mathrm{X}_n\,\mathrm{iu})=\mathrm{Y}_n\,\mathrm{ou}
% \]
% $B!J$?$@$7(B\ 
% $(0,\mathrm{pt}< \mathrm{X}_1\,\mathrm{iu} < \cdots
% < \mathrm{X}_n\,\mathrm{iu})$$B!((B
% $B$3$3$G(B $\mathrm{iu}$ $B$O(B\jmeta{$BF~NOC10L(B}$B!"(B
% $\mathrm{ou}$ $B$O(B\jmeta{$B=PNOC10L(B}$B$K;XDj$5$l$?$b$N!K(B
% $B$r@~7AJd4V$7$FDj5A$5$l$k4X?t(B $f(\cdot)$ $B$K$D$$$F!"(B
% $f(\mbox{\jmeta{$B@#K!(B}})$ $B$NCM$r(B\jmeta{$B@#K!%l%8%9%?(B}$B$K(B
% $BBeF~$9$k!#(B
% \Note $[0\,\mathrm{pt}, \mathrm{X}_n\,\mathrm{iu}]$ $B$NHO0O30$G$O(B
% $BN>C<$N(B2$BE@$K$h$k30A^$r9T$&!#(B
%    \begin{macrocode}
\def\pxrr@interpolate#1#2#3#4#5{%
  \edef\pxrr@tempa{#1}%
  \edef\pxrr@tempb{#2}%
  \def\pxrr@tempd{#3}%
  \setlength{\@tempdima}{#4}%
  \edef\pxrr@tempc{(0,0)#5(*,*)}%
  \expandafter\pxrr@interpolate@a\pxrr@tempc\@nil
}
\def\pxrr@interpolate@a(#1,#2)(#3,#4)(#5,#6){%
  \if*#5%
    \def\pxrr@tempc{\pxrr@interpolate@b{#1}{#2}{#3}{#4}}%
  \else\ifdim\@tempdima<#3\pxrr@tempa
    \def\pxrr@tempc{\pxrr@interpolate@b{#1}{#2}{#3}{#4}}%
  \else
    \def\pxrr@tempc{\pxrr@interpolate@a(#3,#4)(#5,#6)}%
  \fi\fi
  \pxrr@tempc
}
\def\pxrr@interpolate@b#1#2#3#4#5\@nil{%
  \@tempdimb=-#1\pxrr@tempa
  \advance\@tempdima\@tempdimb
  \advance\@tempdimb#3\pxrr@tempa
  \edef\pxrr@tempc{\strip@pt\@tempdimb}%
  \pxrr@invscale\@tempdima\pxrr@tempc
  \edef\pxrr@tempc{\strip@pt\@tempdima}%
  \@tempdima=#4\pxrr@tempb
  \@tempdimb=#2\pxrr@tempb
  \advance\@tempdima-\@tempdimb
  \@tempdima=\pxrr@tempc\@tempdima
  \advance\@tempdima\@tempdimb
  \pxrr@tempd=\@tempdima
}
%    \end{macrocode}
% \end{macro}
%
% \subsubsection{$B%j%9%HJ,2r(B}
%
% \begin{macro}{\pxrr@decompose}
% |\pxrr@decompose{|\jmeta{$BMWAG(B1}$\cdots$\jmeta{$BMWAG(Bn}|}|\Means
% $B$3$3$G3F(B\jmeta{$BMWAG(B}$B$OC10l%H!<%/%s$^$?$O%0%k!<%W(B
% $B!J(B|{...}| $B$G0O$^$l$?$b$N!K$H$9$k!#(B
% $B$3$N>l9g!"(B|\pxrr@res| $B$r0J2<$N%H!<%/%sNs$KDj5A$9$k!#(B
% \begin{quote}
% |\pxrr@pre{|\jmeta{$BMWAG(B1}|}\pxrr@inter{|\jmeta{$BMWAG(B2}|}|$\cdots$\\
% |\pxrr@inter{|\jmeta{$BMWAG(Bn}|}\pxrr@post|
% \end{quote}
% $B$=$7$F!"(B|\pxrr@cntr| $B$r(B n $B$K@_Dj$9$k!#(B
% \Note
% \jmeta{$BMWAG(B}$B$K4^$^$l$k%0%k!<%T%s%0$O40A4$KJ]B8$5$l$k(B
% $B!J:G30$N(B |{...}| $B$,30$l$?$j$7$J$$!K!#(B
%    \begin{macrocode}
\def\pxrr@decompose#1{%
  \let\pxrr@res\@empty
  \pxrr@cntr=\z@
  \pxrr@decompose@loopa#1\pxrr@end
}
\def\pxrr@decompose@loopa{%
  \futurelet\pxrr@token\pxrr@decompose@loopb
}
\def\pxrr@decompose@loopb{%
  \pxrr@ifx{\pxrr@token\pxrr@end}{%
    \pxrr@appto\pxrr@res{\pxrr@post}%
  }{%
    \pxrr@setok{\pxrr@ifx{\pxrr@token\bgroup}}%
    \pxrr@decompose@loopc
  }%
}
\def\pxrr@decompose@loopc#1{%
  \ifx\pxrr@res\@empty
    \def\pxrr@res{\pxrr@pre}%
  \else
    \pxrr@appto\pxrr@res{\pxrr@inter}%
  \fi
  \ifpxrr@ok
    \pxrr@appto\pxrr@res{{{#1}}}%
  \else
    \pxrr@appto\pxrr@res{{#1}}%
  \fi
  \advance\pxrr@cntr\@ne
  \pxrr@decompose@loopa
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@decompbar}
% |\pxrr@decompbar{|\jmeta{$BMWAG(B1}\texttt{\vb}$\cdots$^^A
% $\cdots$\texttt{\vb}\jmeta{$BMWAG(Bn}|}|\Means
% $B$?$@$7!"3F(B\jmeta{$BMWAG(B}$B$O%0%k!<%T%s%0$N30$N(B \texttt{\vb} $B$r(B
% $B4^$^$J$$$H$9$k!#(B
% $BF~NO$N7A<0$H(B\jmeta{$BMWAG(B}$B$N9=@.>r7o$,0[$J$k$3$H$r=|$$$F!"(B
% |\pxrr@decompose| $B$HF1$8F0:n$r$9$k!#(B
%    \begin{macrocode}
\def\pxrr@decompbar#1{%
  \let\pxrr@res\@empty
  \pxrr@cntr=\z@
  \pxrr@decompbar@loopa\pxrr@nil#1|\pxrr@end|%
}
\def\pxrr@decompbar@loopa#1|{%
  \expandafter\pxrr@decompbar@loopb\expandafter{\@gobble#1}%
}
\def\pxrr@decompbar@loopb#1{%
  \pxrr@decompbar@loopc#1\relax\pxrr@nil{#1}%
}
\def\pxrr@decompbar@loopc#1#2\pxrr@nil#3{%
  \pxrr@ifx{#1\pxrr@end}{%
    \pxrr@appto\pxrr@res{\pxrr@post}%
  }{%
    \ifx\pxrr@res\@empty
      \def\pxrr@res{\pxrr@pre}%
    \else
      \pxrr@appto\pxrr@res{\pxrr@inter}%
    \fi
    \pxrr@appto\pxrr@res{{#3}}%
    \advance\pxrr@cntr\@ne
    \pxrr@decompbar@loopa\pxrr@nil
  }%
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@zip@list}
% |\pxrr@zip@list\CSa\CSb|\Means
% |\CSa| $B$H(B |\CSb| $B$,0J2<$N$h$&$KE83+$5$l$k%^%/%m$H$9$k!'(B
% \begin{quote}\small
% |\CSa| = |\pxrr@pre{|\jmeta{X1}|}\pxrr@inter{|\jmeta{X2}|}|^^A
% $\cdots$|\pxrr@inter{|\jmeta{Xn}|}\pxrr@post|\\
% |\CSb| = |\pxrr@pre{|\jmeta{Y1}|}\pxrr@inter{|\jmeta{Y2}|}|^^A
% $\cdots$|\pxrr@inter{|\jmeta{Yn}|}\pxrr@post|
% \end{quote}
% $B$3$NL?Na$O(B |\pxrr@res| $B$r0J2<$NFbMF$KDj5A$9$k!#(B
% \begin{quote}\small
% |\pxrr@pre{|\jmeta{X1}|}{|\jmeta{Y1}|}|^^A
% |\pxrr@inter{|\jmeta{X2}|}{|\jmeta{Y2}|}|^^A
% $\cdots$\\
% |\pxrr@inter{|\jmeta{Xn}|}{|\jmeta{Yn}|}|^^A
% |\pxrr@post|
% \end{quote}
%    \begin{macrocode}
\def\pxrr@zip@list#1#2{%
  \let\pxrr@res\@empty
  \let\pxrr@post\relax
  \let\pxrr@tempa#1\pxrr@appto\pxrr@tempa{{}}%
  \let\pxrr@tempb#2\pxrr@appto\pxrr@tempb{{}}%
  \pxrr@zip@list@loopa
}
\def\pxrr@zip@list@loopa{%
  \expandafter\pxrr@zip@list@loopb\pxrr@tempa\pxrr@end
}
\def\pxrr@zip@list@loopb#1#2#3\pxrr@end{%
  \pxrr@ifx{#1\relax}{%
    \pxrr@zip@list@exit
  }{%
    \pxrr@appto\pxrr@res{#1{#2}}%
    \def\pxrr@tempa{#3}%
    \expandafter\pxrr@zip@list@loopc\pxrr@tempb\pxrr@end
  }%
}
\def\pxrr@zip@list@loopc#1#2#3\pxrr@end{%
  \pxrr@ifx{#1\relax}{%
    \pxrr@interror{zip}%
    \pxrr@appto\pxrr@res{{}}%
    \pxrr@zip@list@exit
  }{%
    \pxrr@appto\pxrr@res{{#2}}%
    \def\pxrr@tempb{#3}%
    \pxrr@zip@list@loopa
  }%
}
\def\pxrr@zip@list@exit{%
  \pxrr@appto\pxrr@res{\pxrr@post}%
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@tzip@list}
% |\pxrr@tzip@list\CSa\CSb\CSc|\Means
% |\CSa|$B!"(B|\CSb|$B!"(B|\CSc| $B$,0J2<$N$h$&$KE83+$5$l$k%^%/%m$H$9$k!'(B
% \begin{quote}\small
% |\CSa| = |\pxrr@pre{|\jmeta{X1}|}\pxrr@inter{|\jmeta{X2}|}|^^A
% $\cdots$|\pxrr@inter{|\jmeta{Xn}|}\pxrr@post|\\
% |\CSb| = |\pxrr@pre{|\jmeta{Y1}|}\pxrr@inter{|\jmeta{Y2}|}|^^A
% $\cdots$|\pxrr@inter{|\jmeta{Yn}|}\pxrr@post|\\
% |\CSc| = |\pxrr@pre{|\jmeta{Z1}|}\pxrr@inter{|\jmeta{Z2}|}|^^A
% $\cdots$|\pxrr@inter{|\jmeta{Zn}|}\pxrr@post|
% \end{quote}
% $B$3$NL?Na$O(B |\pxrr@res| $B$r0J2<$NFbMF$KDj5A$9$k!#(B
% \begin{quote}\small
% |\pxrr@pre{|\jmeta{X1}|}{|\jmeta{Y1}|}{|\jmeta{Z1}|}|^^A
% |\pxrr@inter{|\jmeta{X2}|}{|\jmeta{Y2}|}{|\jmeta{Z2}|}|^^A
% $\cdots$\\
% |\pxrr@inter{|\jmeta{Xn}|}{|\jmeta{Yn}|}{|\jmeta{Zn}|}|^^A
% |\pxrr@post|
% \end{quote}
%    \begin{macrocode}
\def\pxrr@tzip@list#1#2#3{%
  \let\pxrr@res\@empty
  \let\pxrr@post\relax
  \let\pxrr@tempa#1\pxrr@appto\pxrr@tempa{{}}%
  \let\pxrr@tempb#2\pxrr@appto\pxrr@tempb{{}}%
  \let\pxrr@tempc#3\pxrr@appto\pxrr@tempc{{}}%
  \pxrr@tzip@list@loopa
}
\def\pxrr@tzip@list@loopa{%
  \expandafter\pxrr@tzip@list@loopb\pxrr@tempa\pxrr@end
}
\def\pxrr@tzip@list@loopb#1#2#3\pxrr@end{%
  \pxrr@ifx{#1\relax}{%
    \pxrr@tzip@list@exit
  }{%
    \pxrr@appto\pxrr@res{#1{#2}}%
    \def\pxrr@tempa{#3}%
    \expandafter\pxrr@tzip@list@loopc\pxrr@tempb\pxrr@end
  }%
}
\def\pxrr@tzip@list@loopc#1#2#3\pxrr@end{%
  \pxrr@ifx{#1\relax}{%
    \pxrr@interror{tzip}%
    \pxrr@appto\pxrr@res{{}}%
    \pxrr@tzip@list@exit
  }{%
    \pxrr@appto\pxrr@res{{#2}}%
    \def\pxrr@tempb{#3}%
    \expandafter\pxrr@tzip@list@loopd\pxrr@tempc\pxrr@end
  }%
}
\def\pxrr@tzip@list@loopd#1#2#3\pxrr@end{%
  \pxrr@ifx{#1\relax}{%
    \pxrr@interror{tzip}%
    \pxrr@appto\pxrr@res{{}}%
    \pxrr@tzip@list@exit
  }{%
    \pxrr@appto\pxrr@res{{#2}}%
    \def\pxrr@tempc{#3}%
    \pxrr@tzip@list@loopa
  }%
}
\def\pxrr@tzip@list@exit{%
  \pxrr@appto\pxrr@res{\pxrr@post}%
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@concat@list}
% |\pxrr@concat@list\CS|\Means
% $B%j%9%H$NMWAG$rO"7k$9$k!#(B
% $B$9$J$o$A!"(B|\CS| $B$,(B
% \begin{quote}\small
% |\CSa| = |\pxrr@pre{|\jmeta{X1}|}\pxrr@inter{|\jmeta{X2}|}|^^A
% $\cdots$|\pxrr@inter{|\jmeta{Xn}|}\pxrr@post|
% \end{quote}
% $B$N;~$K!"(B|\pxrr@res| $B$r0J2<$NFbMF$KDj5A$9$k!#(B
% \begin{quote}\small
% \jmeta{X1}\jmeta{X2}$\cdots$\jmeta{Xn}
% \end{quote}
%    \begin{macrocode}
\def\pxrr@concat@list#1{%
  \let\pxrr@res\@empty
  \def\pxrr@pre##1{%
    \pxrr@appto\pxrr@res{##1}%
  }%
  \let\pxrr@inter\pxrr@pre
  \let\pxrr@post\relax
  #1%
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@unite@group}
% |\pxrr@unite@group\CS|\Means
% $B%j%9%H$NMWAG$rO"7k$7$F(B1$BMWAG$N%j%9%H$KAH$_D>$9!#(B
% $B$9$J$o$A!"(B|\CS| $B$,(B
% \begin{quote}\small
% |\CS| = |\pxrr@pre{|\jmeta{X1}|}\pxrr@inter{|\jmeta{X2}|}|^^A
% $\cdots$|\pxrr@inter{|\jmeta{Xn}|}\pxrr@post|
% \end{quote}
% $B$N;~$K!"(B|\CS| $B$r0J2<$NFbMF$GCV$-49$($k!#(B
% \begin{quote}\small
% |\pxrr@pre{|\jmeta{X1}\jmeta{X2}$\cdots$\jmeta{Xn}|}\pxrr@post|
% \end{quote}
%    \begin{macrocode}
\def\pxrr@unite@group#1{%
  \expandafter\pxrr@concat@list\expandafter{#1}%
  \expandafter\pxrr@unite@group@a\pxrr@res\pxrr@end#1%
}
\def\pxrr@unite@group@a#1\pxrr@end#2{%
  \def#2{\pxrr@pre{#1}\pxrr@post}%
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@zip@single}
% |\pxrr@zip@single\CSa\CSb|\Means
% \begin{quote}\small
% |\CSa| = \jmeta{X}; |\CSb| = \jmeta{Y}
% \end{quote}
% $B$N;~$K!"(B|\pxrr@res| $B$r0J2<$NFbMF$KDj5A$9$k!#(B
% \begin{quote}\small
% |\pxrr@pre{|\jmeta{X}|}{|\jmeta{Y}|}\pxrr@post|
% \end{quote}
%    \begin{macrocode}
\def\pxrr@zip@single#1#2{%
  \expandafter\pxrr@zip@single@a\expandafter#1#2\pxrr@end
}
\def\pxrr@zip@single@a#1{%
  \expandafter\pxrr@zip@single@b#1\pxrr@end
}
\def\pxrr@zip@single@b#1\pxrr@end#2\pxrr@end{%
  \def\pxrr@res{\pxrr@pre{#1}{#2}\pxrr@post}%
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@tzip@single}
% |\pxrr@tzip@single\CSa\CSb\CSc|\Means
% \begin{quote}\small
% |\CSa| = \jmeta{X}; |\CSb| = \jmeta{Y}; |\CSc| = \jmeta{Z}
% \end{quote}
% $B$N;~$K!"(B|\pxrr@res| $B$r0J2<$NFbMF$KDj5A$9$k!#(B
% \begin{quote}\small
% |\pxrr@pre{|\jmeta{X}|}{|\jmeta{Y}|}{|\jmeta{Z}|}\pxrr@post|
% \end{quote}
%    \begin{macrocode}
\def\pxrr@tzip@single#1#2#3{%
  \expandafter\pxrr@tzip@single@a\expandafter#1\expandafter#2#3\pxrr@end
}
\def\pxrr@tzip@single@a#1#2{%
  \expandafter\pxrr@tzip@single@b\expandafter#1#2\pxrr@end
}
\def\pxrr@tzip@single@b#1{%
  \expandafter\pxrr@tzip@single@c#1\pxrr@end
}
\def\pxrr@tzip@single@c#1\pxrr@end#2\pxrr@end#3\pxrr@end{%
  \def\pxrr@res{\pxrr@pre{#1}{#2}{#3}\pxrr@post}%
}
%    \end{macrocode}
% \end{macro}
%
% \subsection{$B%(%s%8%s0MB8=hM}(B}
%
% $B$3$N>.@a$N%^%/%mFb$G;H$o$l$kJQ?t!#(B
%    \begin{macrocode}
\let\pxrr@x@tempa\@empty
\let\pxrr@x@tempb\@empty
\let\pxrr@x@gtempa\@empty
\newif\ifpxrr@x@swa
%    \end{macrocode}
%
% \begin{macro}{\pxrr@ifprimitive}
% |\pxrr@ifprimitive\CS{|\jmeta{$B??(B}|}{|\jmeta{$B56(B}|}|\Means
% |\CS| $B$N8=:_$NDj5A$,F1L>$N%W%j%_%F%#%V$G$"$k$+$r%F%9%H$9$k!#(B
%    \begin{macrocode}
\def\pxrr@ifprimitive#1{%
  \edef\pxrr@x@tempa{\string#1}%
  \edef\pxrr@x@tempb{\meaning#1}%
  \ifx\pxrr@x@tempa\pxrr@x@tempb \expandafter\@firstoftwo
  \else \expandafter\@secondoftwo
  \fi
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\ifpxrr@in@ptex}
% $B%(%s%8%s$,(B{\pTeX}$B7O!J(B{\upTeX}$B7O$r4^$`!K$G$"$k$+!#(B
% |\kansuji| $B$N%W%j%_%F%#%V%F%9%H$GH=Dj$9$k!#(B
%    \begin{macrocode}
\pxrr@ifprimitive\kansuji{%
  \pxrr@csletcs{ifpxrr@in@ptex}{iftrue}%
}{%
  \pxrr@csletcs{ifpxrr@in@ptex}{iffalse}%
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\ifpxrr@in@uptex}
% $B%(%s%8%s$,(B{\upTeX}$B7O$G$"$k$+!#(B
% |\enablecjktoken| $B$N%W%j%_%F%#%V%F%9%H$GH=Dj$9$k!#(B
%    \begin{macrocode}
\pxrr@ifprimitive\enablecjktoken{%
  \pxrr@csletcs{ifpxrr@in@uptex}{iftrue}%
}{%
  \pxrr@csletcs{ifpxrr@in@uptex}{iffalse}%
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\ifpxrr@in@xetex}
% $B%(%s%8%s$,(B{\XeTeX}$B7O$G$"$k$+!#(B
% |\XeTeXrevision| $B$N%W%j%_%F%#%V%F%9%H$GH=Dj$9$k!#(B
%    \begin{macrocode}
\pxrr@ifprimitive\XeTeXrevision{%
  \pxrr@csletcs{ifpxrr@in@xetex}{iftrue}%
}{%
  \pxrr@csletcs{ifpxrr@in@xetex}{iffalse}%
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\ifpxrr@in@xecjk}
% \PKN{xeCJK}$B%Q%C%1!<%8$,;HMQ$5$l$F$$$k$+!#(B
%    \begin{macrocode}
\@ifpackageloaded{xeCJK}{%
  \pxrr@csletcs{ifpxrr@in@xecjk}{iftrue}%
}{%
  \pxrr@csletcs{ifpxrr@in@xecjk}{iffalse}%
%    \end{macrocode}
% $B$3$3$GL$FI9~$G$+$D%W%j%"%s%V%kKvHx$GFI$_9~$^$l$F$$$k>l9g$O7Y9p$9$k!#(B
%    \begin{macrocode}
  \AtBeginDocument{%
    \@ifpackageloaded{xeCJK}{%
      \pxrr@warn@load@order{xeCJK}%
    }{}%
  }%
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\ifpxrr@in@luatex}
% $B%(%s%8%s$,(B{\LuaTeX}$B7O$G$"$k$+!#(B
% |\luatexrevision| $B$N%W%j%_%F%#%V%F%9%H$GH=Dj$9$k!#(B
%    \begin{macrocode}
\pxrr@ifprimitive\luatexrevision{%
  \pxrr@csletcs{ifpxrr@in@luatex}{iftrue}%
}{%
  \pxrr@csletcs{ifpxrr@in@luatex}{iffalse}%
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\ifpxrr@in@luatexja}
% \PKN{LuaTeX-ja}$B%Q%C%1!<%8$,;HMQ$5$l$F$$$k$+!#(B
%    \begin{macrocode}
\@ifpackageloaded{luatexja-core}{%
  \pxrr@csletcs{ifpxrr@in@luatexja}{iftrue}%
}{%
  \pxrr@csletcs{ifpxrr@in@luatexja}{iffalse}%
  \AtBeginDocument{%
    \@ifpackageloaded{luatexja-core}{%
      \pxrr@warn@load@order{LuaTeX-ja}%
    }{}%
  }%
}
%    \end{macrocode}
% \end{macro}
%
%    \begin{macrocode}
\ifpxrr@in@xetex
\else\ifpxrr@in@luatex
\else\ifpxrr@in@ptex
\else
  \pxrr@ifprimitive\pdftexrevision{%
    \pxrr@warn{%
      The engine in use seems to be pdfTeX,\MessageBreak
      so safe mode is turned on%
    }%
    \AtEndOfPackage{%
      \rubysafemode
    }%
  }
\fi\fi\fi
%    \end{macrocode}
%
% \begin{macro}{\ifpxrr@in@unicode}
% $B!VOBJ8!WFbIt%3!<%I$,(BUnicode$B$G$"$k$+!#(B
%    \begin{macrocode}
\ifpxrr@in@xetex
  \pxrr@csletcs{ifpxrr@in@unicode}{iftrue}%
\else\ifpxrr@in@luatex
  \pxrr@csletcs{ifpxrr@in@unicode}{iftrue}%
\else\ifpxrr@in@uptex
  \pxrr@csletcs{ifpxrr@in@unicode}{iftrue}%
\else
  \pxrr@csletcs{ifpxrr@in@unicode}{iffalse}%
\fi\fi\fi
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@jc}
% $BOBJ8$N!VJ#9g%3!<%I!W$rFbIt%3!<%I$KJQ49$9$k!JE83+2DG=!K!#(B
% $B!VJ#9g%3!<%I!W$O(B
% $B!V(B\jmeta{JIS$B%3!<%I(B16$B?J(B4$B7e(B}|:|\jmeta{Unicode\,16$B?J(B4$B7e(B}$B!W(B
% $B$N7A<0!#(B
%    \begin{macrocode}
\def\pxrr@jc#1{%
  \pxrr@jc@a#1\pxrr@nil
}
\ifpxrr@in@unicode
  \def\pxrr@jc@a#1:#2\pxrr@nil{%
    "#2\space
  }
\else\ifpxrr@in@ptex
  \def\pxrr@jc@a#1:#2\pxrr@nil{%
    \jis"#1\space\space
  }
\else
  \def\pxrr@jc@a#1:#2\pxrr@nil{%
    `?\space
  }
\fi\fi
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@jchardef}
% $BOBJ8MQ$N(B |\chardef|$B!#(B
%    \begin{macrocode}
\ifpxrr@in@uptex
  \let\pxrr@jchardef\kchardef
\else
  \let\pxrr@jchardef\chardef
\fi
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@if@in@tate}
% |\pxrr@if@in@tate{|\jmeta{$B??(B}|}{|\jmeta{$B56(B}|}|\Means
% $B=DAH$G$"$k$+!#(B
%    \begin{macrocode}
\ifpxrr@in@ptex
%    \end{macrocode}
% {p\TeX}$B7O$N>l9g!"(B|\iftdir| $B%W%j%_%F%#%V$rMxMQ$9$k!#(B
% \Note |\iftdir| $B$,L$Dj5A$N$H$-$K(Bif$B$,IT6Q9U$K$J$k$N$rKI$0!#(B
%    \begin{macrocode}
  \begingroup \catcode`\|=0
    \gdef\pxrr@if@in@tate{%
      \pxrr@cond|iftdir|fi
    }
  \endgroup
\else\ifpxrr@in@luatexja
%    \end{macrocode}
% Lua\TeX-ja$BMxMQ$N>l9g!"(B|direction| $B%Q%i%a%?$rMxMQ$9$k!#(B
%    \begin{macrocode}
  \def\pxrr@if@in@tate{%
    \pxrr@cond\ifnum\ltjgetparameter{direction}=\thr@@\fi
  }
\else
%    \end{macrocode}
% $B$=$l0J30$O>o$K2#AH$H8+$J$9!#(B
%    \begin{macrocode}
  \let\pxrr@if@in@tate\@secondoftwo
\fi\fi
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@get@jchar@token}
% |\pxrr@get@jchar@token\CS{|\jmeta{$B@0?t(B}|}|\Means
% $BFbItJ8;z%3!<%I$,(B\jmeta{$B@0?t(B}$B$G$"$kOBJ8J8;z$N%H!<%/%s$rF@$k!#(B
% \Note |.sty|$B%U%!%$%k$O40A4$K(BASCII$BJ8;z$@$1$K$9$kJ}?K$N$?$a!"(B
% $BOBJ8J8;z$,I,MW$J>l9g$O$3$NJd=u%^%/%m$d(B |\pxrr@jchardef| $B$r(B
% $BMxMQ$7$FJ#9g%3!<%ICM$+$i:n$j=P$9$3$H$K$J$k!#(B
%
% {\pTeX}$B7O$N>l9g!#(B|\kansuji| $B%H%j%C%/$rMxMQ$9$k!#(B
%    \begin{macrocode}
\ifpxrr@in@ptex
  \def\pxrr@get@jchar@token#1#2{%
    \begingroup
      \kansujichar\@ne=#2\relax
      \xdef\pxrr@x@gtempa{\kansuji\@ne}%
    \endgroup
    \let#1\pxrr@x@gtempa
  }
%    \end{macrocode}
% Unicode$BBP1~(B{\TeX}$B$N>l9g!#(B|\lowercase| $B%H%j%C%/$rMxMQ$9$k!#(B
%    \begin{macrocode}
\else\ifpxrr@in@unicode
  \def\pxrr@get@jchar@token#1#2{%
    \begingroup
      \lccode`\?=#2\relax
      \lowercase{\xdef\pxrr@x@gtempa{?}}%
    \endgroup
    \let#1\pxrr@x@gtempa
  }
%    \end{macrocode}
% $B$=$l0J30$G$O%@%_!<Dj5A!#(B
%    \begin{macrocode}
\else
  \def\pxrr@get@jchar@token#1#2{%
    \def#1{?}%
  }
\fi\fi
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@zspace}
% $BA43Q6uGrJ8;z!#(B
% $BJ8;z$=$N$b$N$r%U%!%$%k$K4^$^$;$?$/$J$$$N$G(Bchardef$B$K$9$k!#(B
%    \begin{macrocode}
\pxrr@jchardef\pxrr@zspace=\pxrr@jc{2121:3000}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@jghost@char}
% $BOBJ8%4!<%9%H=hM}$KMxMQ$9$kJ8;z!#(B
% $B;z7A$,6u$G$"$j!"$+$D0lHL$N4A;z$HF1$85sF0$r<($9I,MW$,$"$k!#(B
% $B<B:]$N%4!<%9%H=hM}$G$O;zI}$rAj;&$9$k=hM}$rF~$l$k0Y!"(B
% $B;zI}$,%<%m$G$"$kI,MW$O$J$$!#(B
%
% $B$[$H$s$I$N>l9g!"A43Q6uGrJ8;z$G9=$o$J$$$,!"A43Q6uGrJ8;z$,(B
% $BJ8;z%?%$%W(B0$B$G$J$$(BJFM$B$,;H$o$l$F$$$k>l9g$OLdBj$K$J$k!#(B
%
% {\upTeX}$B$N>l9g!"!H3HD%Id9f6u4V!I$NJ8;z%3!<%I$r;H$&!#(B
% $B$9$J$o$A!"J8;z%3!<%I(B |"113000| $B$NJ8;z$O(BDVI$B$G$OJ8;z%3!<%I(B |"3000| $B$H(B
% $B07$o$l$k$,!"!H(BBMP$B30!I$K$"$k$?$aI,$:J8;z%?%$%W(B0$B$K$J$k!#(B
%    \begin{macrocode}
\ifpxrr@in@uptex
  \kchardef\pxrr@jghost@char="113000
%    \end{macrocode}
% {\LuaTeX}-ja$B$N>l9g!#(B
% $BJ8=q@hF,$G!HA43Q6uGrJ8;z$,;H$($k$+!I$r8!::$7$F!"<:GT$7$?>l9g$O(B
% $B!VOBJ8$N(BU+00A0$B!W$rBe$o$j$KMxMQ$9$k$3$H$K$9$k!#(B
%    \begin{macrocode}
\else\ifpxrr@in@luatexja
  \let\pxrr@jghost@char\pxrr@zspace
  \def\pxrr@jghost@check{%
    \begingroup
%      \ltjsetparameter{jaxspmode={\pxrr@zspace,3}}%
%      \ltjsetparameter{xkanjiskip=\p@}%
%      \ltjsetparameter{autoxspacing=false}%
      \setbox\z@\hbox{\char"3001\char"3000}%
%      \ltjsetparameter{autoxspacing=true}%
      \setbox\tw@\hbox{\char"3001\inhibitglue\char"3000}%
      \ifdim\wd\tw@=\wd\z@
        \global\chardef\pxrr@jghost@char@="00A0
        \gdef\pxrr@jghost@char{\ltjjachar\pxrr@jghost@char@}%
      \fi
    \endgroup
  }
  \AtBeginDocument{%
    \pxrr@jghost@check
  }
%    \end{macrocode}
% $B$=$l0J30$N>l9g$O!J;EJ}$,L5$$$N$G!KA43Q6uGr$rMQ$$$k!#(B
%    \begin{macrocode}
\else
  \let\pxrr@jghost@char\pxrr@zspace
\fi\fi
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@x@K}
% $BE,Ev$J4A;z!J<B:]$O!R0l!S!K$N%H!<%/%s!#(B
%    \begin{macrocode}
\pxrr@jchardef\pxrr@x@K=\pxrr@jc{306C:4E00}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@get@iiskip}
% |\pxrr@get@iiskip\CS|\Means
% $B8=:_$N<B8z$NOBJ84V6uGr$NNL$r<hF@$9$k!#(B
%
% {\pTeX}$B7O$N>l9g!#(B
%    \begin{macrocode}
\ifpxrr@in@ptex
  \def\pxrr@get@iiskip#1{%
%    \end{macrocode}
% $B0J2<$G$O(B |\kanjiskip| $BA^F~$,M-8z$G$"$k$+$r8!::$7$F$$$k!#(B
%    \begin{macrocode}
    \pxrr@x@swafalse
    \begingroup
      \inhibitxspcode\pxrr@x@K\thr@@
      \kanjiskip\p@
      \setbox\z@\hbox{\noautospacing\pxrr@x@K\pxrr@x@K}%
      \setbox\tw@\hbox{\pxrr@x@K\pxrr@x@K}%
      \ifdim\wd\tw@>\wd\z@
        \aftergroup\pxrr@x@swatrue
      \fi
    \endgroup
%    \end{macrocode}
% $B0J2<$G$O(B |\kanjiskip| $BA^F~$,M-8z$J$i$P(B |\kanjiskip| $B$NCM!"(B
% $BL58z$J$i$P%<%m$rJV$9!#(B
%    \begin{macrocode}
    \edef#1{%
      \ifpxrr@x@swa \the\kanjiskip
      \else \pxrr@zeropt
      \fi
    }%
  }
%    \end{macrocode}
%
% \PKN{LuaTeX-ja}$B;HMQ$N>l9g!#(B
%    \begin{macrocode}
\else\ifpxrr@in@luatexja
  \def\pxrr@get@iiskip#1{%
    \edef#1{%
      \ifnum\ltjgetparameter{autospacing}=\@ne
        \ltjgetparameter{kanjiskip}%
      \else \pxrr@zeropt
      \fi
    }%
  }
%    \end{macrocode}
%
% $B$=$l0J30$N>l9g$O%<%m$H$9$k!#(B
%    \begin{macrocode}
\else
  \def\pxrr@get@iiskip#1{%
    \let#1\pxrr@zeropt
  }
\fi\fi
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@get@iaiskip}
% |\pxrr@get@iaiskip\CS|\Means
% $B8=:_$N<B8z$NOB2$J84V6uGr$NNL$r<hF@$9$k!#(B
%
% {\pTeX}$B7O$N>l9g!#(B
%    \begin{macrocode}
\ifpxrr@in@ptex
  \def\pxrr@get@iaiskip#1{%
    \pxrr@x@swafalse
    \begingroup
      \inhibitxspcode\pxrr@x@K\thr@@ \xspcode`X=\thr@@
      \xkanjiskip\p@
      \setbox\z@\hbox{\noautoxspacing\pxrr@x@K X}%
      \setbox\tw@\hbox{\pxrr@x@K X}%
      \ifdim\wd\tw@>\wd\z@
        \aftergroup\pxrr@x@swatrue
      \fi
    \endgroup
    \edef#1{%
      \ifpxrr@x@swa \the\xkanjiskip
      \else \pxrr@zeropt
      \fi
    }%
  }
%    \end{macrocode}
%
% \PKN{LuaTeX-ja}$B;HMQ$N>l9g!#(B
%    \begin{macrocode}
\else\ifpxrr@in@luatexja
  \def\pxrr@get@iaiskip#1{%
    \edef#1{%
      \ifnum\ltjgetparameter{autoxspacing}=\@ne
        \ltjgetparameter{xkanjiskip}%
      \else \pxrr@zeropt
      \fi
    }%
  }
%    \end{macrocode}
%
% $B$=$l0J30$N>l9g$O<B:]$NAHHG7k2L$+$iH=CG$9$k!#(B
%    \begin{macrocode}
\else
  \def\pxrr@get@iaiskip#1{%
    \begingroup
      \setbox\z@\hbox{M\pxrr@x@K}%
      \setbox\tw@\hbox{M\vrule\@width\z@\relax\pxrr@x@K}%
      \@tempdima\wd\z@ \advance\@tempdima-\wd\tw@
      \@tempdimb\@tempdima \divide\@tempdimb\thr@@
      \xdef\pxrr@x@gtempa{\the\@tempdima\space minus \the\@tempdimb}%
    \endgroup
    \let#1=\pxrr@x@gtempa
  }%
\fi\fi
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@get@zwidth}
% |\pxrr@get@zwidth\CS|\Means
% $B8=:_$NOBJ8%U%)%s%H$NA43QI}$r<hF@$9$k!#(B
%
% {\pTeX}$B$N>l9g!"(B|1zw| $B$G$h$$!#(B
%    \begin{macrocode}
\ifpxrr@in@ptex
  \def\pxrr@get@zwidth#1{%
    \@tempdima=1zw\relax
    \edef#1{\the\@tempdima}%
  }
%    \end{macrocode}
%
% |\zw| $B$,Dj5A$5$l$F$$$k>l9g$O(B |1\zw| $B$H$9$k!#(B
%    \begin{macrocode}
\else\if\ifx\zw\@undefined T\else F\fi F% if defined
  \def\pxrr@get@zwidth#1{%
    \@tempdima=1\zw\relax
    \edef#1{\the\@tempdima}%
  }
%    \end{macrocode}
%
% |\jsZw| $B$,Dj5A$5$l$F$$$k>l9g$O(B |1\jsZw| $B$H$9$k!#(B
%    \begin{macrocode}
\else\if\ifx\jsZw\@undefined T\else F\fi F% if defined
  \def\pxrr@get@zwidth#1{%
    \@tempdima=1\jsZw\relax
    \edef#1{\the\@tempdima}%
  }
%    \end{macrocode}
%
% $B$=$l0J30$G!"(B|\pxrr@x@K| $B$,M-8z$J>l9g$O<B:]$NAHHG7k2L$+$iH=CG$9$k!#(B
%    \begin{macrocode}
\else\ifnum\pxrr@x@K>\@cclv
  \def\pxrr@get@zwidth#1{%
    \setbox\tw@\hbox{\pxrr@x@K}%
    \@tempdima\wd\tw@
    \ifdim\@tempdima>\z@\else \@tempdima\f@size\p@ \fi
    \edef#1{\the\@tempdima}%
  }
%    \end{macrocode}
%
% $B$=$l0J30$N>l9g$OMW5a%5%$%:$HEy$7$$$H$9$k!#(B
%    \begin{macrocode}
\else
  \def\pxrr@get@zwidth#1{%
    \@tempdima\f@size\p@\relax
    \edef#1{\the\@tempdima}%
  }
\fi\fi\fi\fi
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@get@prebreakpenalty}
% |\pxrr@get@prebreakpenalty\CS{|\jmeta{$BJ8;z%3!<%I(B}|}|\Means
% $BJ8;z$N8e6XB'%Z%J%k%F%#CM$r@0?t%l%8%9%?$KBeF~$9$k!#(B
%
% {\pTeX}$B$N>l9g!"(B|\prebreakpenalty| $B$r;H$&!#(B
%    \begin{macrocode}
\ifpxrr@in@ptex
  \def\pxrr@get@prebreakpenalty#1#2{%
    #1=\prebreakpenalty#2\relax
  }
%    \end{macrocode}
%
% \PKN{LuaTeX-ja}$B;HMQ;~$O!"(Bprebreakpenalty $B%W%m%Q%F%#$rFI$_=P$9!#(B
%    \begin{macrocode}
\else\ifpxrr@in@luatexja
  \def\pxrr@get@prebreakpenalty#1#2{%
    #1=\ltjgetparameter{prebreakpenalty}{#2}\relax
  }
%    \end{macrocode}
%
% $B$=$l0J30$N>l9g$O%<%m$H$7$F07$&!#(B
%    \begin{macrocode}
\else
  \def\pxrr@get@prebreakpenalty#1#2{%
    #1=\z@
  }
\fi\fi
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@get@postbreakpenalty}
% |\pxrr@get@postbreakpenalty\CS{|\jmeta{$BJ8;z%3!<%I(B}|}|\Means
% $BJ8;z$NA06XB'%Z%J%k%F%#CM$r@0?t%l%8%9%?$KBeF~$9$k!#(B
%
% {\pTeX}$B$N>l9g!"(B|\postbreakpenalty| $B$r;H$&!#(B
%    \begin{macrocode}
\ifpxrr@in@ptex
  \def\pxrr@get@postbreakpenalty#1#2{%
    #1=\postbreakpenalty#2\relax
  }
%    \end{macrocode}
%
% \PKN{LuaTeX-ja}$B;HMQ;~$O!"(Bpostbreakpenalty $B%W%m%Q%F%#$rFI$_=P$9!#(B
%    \begin{macrocode}
\else\ifpxrr@in@luatexja
  \def\pxrr@get@postbreakpenalty#1#2{%
    #1=\ltjgetparameter{postbreakpenalty}{#2}\relax
  }
%    \end{macrocode}
%
% $B$=$l0J30$N>l9g$O%<%m$H$7$F07$&!#(B
%    \begin{macrocode}
\else
  \def\pxrr@get@postbreakpenalty#1#2{%
    #1=\z@
  }
\fi\fi
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@check@punct@char}
% |\pxrr@is@punct@char{|\jmeta{$BJ8;z%3!<%I(B}|}{|\jmeta{$BOBJ8%U%i%0(B}|}|\Means
% $B;XDj$NJ8;z%3!<%I$NJ8;z$,!HLsJ*$G$"$k$+!I$rD4$Y$F!"(B
% $B7k2L$r(B |\ifpxrr@ok| $B$KJV$9!#(B
% \jmeta{$BOBJ8%U%i%0(B}$B$O!HBP>]$,(B{\pTeX}$B$NOBJ8$G$"$k!I>l9g$K(B1$B!"(B
% $B$=$l0J30$O(B0$B!#(B
%
% {\pTeX}$B$N>l9g!"2$J8$J$i(B |\xspcode|$B!"OBJ8$J$i(B |\inhibitxspcode| $B$N(B
% $BCM$r8+$F!"$=$l$,(B3$B0J30$J$iLsJ*$H8+$J$9!#(B
%    \begin{macrocode}
\ifpxrr@in@ptex
  \def\pxrr@check@punct@char#1#2{%
    \pxrr@okfalse
    \ifcase#2\relax
      \ifnum\xspcode#1=\thr@@\else
        \pxrr@oktrue
      \fi
    \else
      \ifnum\inhibitxspcode#1=\thr@@\else
        \pxrr@oktrue
      \fi
    \fi
  }
%    \end{macrocode}
%
% \PKN{LuaTeX-ja}$B;HMQ;~$b4pK\E*$K(B{\pTeX}$B$HF1$8%m%8%C%/$r;H$&!#(B
% $B$?$@$7(B\PKN{LuaTeX-ja}$B$G$O!VJ8;z%H!<%/%s$NOBJ8$H2$J8$N6hJL!W$H$$$&(B
% $B35G0$,B8:_$7$J$$$?$a!"(B\jmeta{$BOBJ8%U%i%0(B}$B$OI,$:(B0$B$H$J$k!#(B
% $B$=$7$F!"(B|\xspcode|$B!?(B|\inhibitxspcode| $B$KAjEv$9$k%Q%i%a%?$H$7$F$O!"(B
% $B2$J8MQ$N(Balxspmode$B$HOBJ8MQ$N(Bjaxspmode$B$,0l1~$"$k$,!"(B
% $B<B:]$K$OOBJ8$H2$J8$N6hJL$O$J$/$3$NN><T$OF15A$K$J$C$F$$$k!#(B
% $B=>$C$F!"!V(Bjaxspmode$B$,(B3$B0J30$+!W$rD4$Y$k$3$H$K$9$k!#(B
%    \begin{macrocode}
\else\ifpxrr@in@luatexja
  \def\pxrr@check@punct@char#1#2{%
    \ifnum\ltjgetparameter{jaxspmode}{#1}=\thr@@
      \pxrr@okfalse
    \else
      \pxrr@oktrue
    \fi
  }
%    \end{macrocode}
%
% $B$=$l0J30$N>l9g$O%<%m$H$7$F07$&!#(B
%    \begin{macrocode}
\else
  \def\pxrr@check@punct@char#1#2{%
    \pxrr@okfalse
  }
\fi\fi
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@inhibitglue}
% |\inhibitglue| $B$,Dj5A$5$l$F$$$k$J$i<B9T$9$k!#(B
%    \begin{macrocode}
\ifx\inhibitglue\@undefined
  \let\pxrr@inhibitglue\relax
\else
  \let\pxrr@inhibitglue\inhibitglue
\fi
%    \end{macrocode}
% \end{macro}
%
% \subsection{$B%Q%i%a%?@_Dj8x3+L?Na(B}
%
% \begin{macro}{\ifpxrr@in@setup}
% |\pxrr@parse@option| $B$,(B |\rubysetup| $B$NCf$G8F$P$l$?$+!#(B
% $B??$N>l9g$O7Y9p=hM}$r9T$o$J$$!#(B
%    \begin{macrocode}
\newif\ifpxrr@in@setup \pxrr@in@setupfalse
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\rubysetup}
% |\pxrr@parse@option| $B$G2r@O$7$?8e!"@_DjCM$rA4HL@_Dj$K(B
% $B%3%T!<$9$k!#(B
%    \begin{macrocode}
\newcommand*\rubysetup[1]{%
  \pxrr@in@setuptrue
  \pxrr@fatal@errorfalse
  \pxrr@parse@option{#1}%
  \ifpxrr@fatal@error\else
    \pxrr@csletcs{ifpxrr@d@bprotr}{ifpxrr@bprotr}%
    \pxrr@csletcs{ifpxrr@d@aprotr}{ifpxrr@aprotr}%
    \let\pxrr@d@bintr\pxrr@bintr@
    \let\pxrr@d@aintr\pxrr@aintr@
    \let\pxrr@d@athead\pxrr@athead
    \let\pxrr@d@mode\pxrr@mode
    \let\pxrr@d@side\pxrr@side
    \let\pxrr@d@evensp\pxrr@evensp
    \let\pxrr@d@fullsize\pxrr@fullsize
  \fi
%    \end{macrocode}
% |\ifpxrr@in@setup| $B$r56$KLa$9!#(B
% $B$?$@$7(B |\ifpxrr@fatal@error| $B$O=q$-49$($i$l$?$^$^$G$"$k$3$H$KCm0U!#(B
%    \begin{macrocode}
  \pxrr@in@setupfalse
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\rubyfontsetup}
% $BBP1~$9$k%Q%i%a%?$r@_Dj$9$k!#(B
%    \begin{macrocode}
\newcommand*\rubyfontsetup{}
\def\rubyfontsetup#{%
  \def\pxrr@ruby@font
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\rubybigintrusion}
% \begin{macro}{\rubysmallintrusion}
% \begin{macro}{\rubymaxmargin}
% \begin{macro}{\rubyintergap}
% \begin{macro}{\rubysizeratio}
% $BBP1~$9$k%Q%i%a%?$r@_Dj$9$k!#(B
%    \begin{macrocode}
\newcommand*\rubybigintrusion[1]{%
  \edef\pxrr@big@intr{#1}%
}
\newcommand*\rubysmallintrusion[1]{%
  \edef\pxrr@small@intr{#1}%
}
\newcommand*\rubymaxmargin[1]{%
  \edef\pxrr@maxmargin{#1}%
}
\newcommand*\rubyintergap[1]{%
  \edef\pxrr@inter@gap{#1}%
}
\newcommand*\rubysizeratio[1]{%
  \edef\pxrr@size@ratio{#1}%
}
%    \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
%
% \begin{macro}{\rubyusejghost}
% \begin{macro}{\rubynousejghost}
% $BBP1~$9$k%9%$%C%A$r@_Dj$9$k!#(B
%    \begin{macrocode}
\newcommand*\rubyusejghost{%
  \pxrr@jghosttrue
}
\newcommand*\rubynousejghost{%
  \pxrr@jghostfalse
}
%    \end{macrocode}
% \end{macro}
% \end{macro}
%
% \begin{macro}{\rubyuseaghost}
% \begin{macro}{\rubynouseaghost}
% $BBP1~$9$k%9%$%C%A$r@_Dj$9$k!#(B
%    \begin{macrocode}
\newcommand*\rubyuseaghost{%
  \pxrr@aghosttrue
  \pxrr@setup@aghost
}
\newcommand*\rubynouseaghost{%
  \pxrr@aghostfalse
}
%    \end{macrocode}
% \end{macro}
% \end{macro}
%
% \begin{macro}{\rubyadjustatlineedge}
% \begin{macro}{\rubynoadjustatlineedge}
% $BBP1~$9$k%9%$%C%A$r@_Dj$9$k!#(B
%    \begin{macrocode}
\newcommand*\rubyadjustatlineedge{%
  \pxrr@edge@adjusttrue
}
\newcommand*\rubynoadjustatlineedge{%
  \pxrr@edge@adjustfalse
}
%    \end{macrocode}
% \end{macro}
% \end{macro}
%
% \begin{macro}{\rubybreakjukugo}
% \begin{macro}{\rubynobreakjukugo}
% $BBP1~$9$k%9%$%C%A$r@_Dj$9$k!#(B
%    \begin{macrocode}
\newcommand*\rubybreakjukugo{%
  \pxrr@break@jukugotrue
}
\newcommand*\rubynobreakjukugo{%
  \pxrr@break@jukugofalse
}
%    \end{macrocode}
% \end{macro}
% \end{macro}
%
% \begin{macro}{\rubysafemode}
% \begin{macro}{\rubynosafemode}
% $BBP1~$9$k%9%$%C%A$r@_Dj$9$k!#(B
%    \begin{macrocode}
\newcommand*\rubysafemode{%
  \pxrr@safe@modetrue
}
\newcommand*\rubynosafemode{%
  \pxrr@safe@modefalse
}
%    \end{macrocode}
% \end{macro}
% \end{macro}
%
% \begin{macro}{\rubystretchprop}
% \begin{macro}{\rubystretchprophead}
% \begin{macro}{\rubystretchpropend}
% $BBP1~$9$k%Q%i%a%?$r@_Dj$9$k!#(B
%    \begin{macrocode}
\newcommand*\rubystretchprop[3]{%
  \edef\pxrr@sprop@x{#1}%
  \edef\pxrr@sprop@y{#2}%
  \edef\pxrr@sprop@z{#3}%
}
\newcommand*\rubystretchprophead[2]{%
  \edef\pxrr@sprop@hy{#1}%
  \edef\pxrr@sprop@hz{#2}%
}
\newcommand*\rubystretchpropend[2]{%
  \edef\pxrr@sprop@ex{#1}%
  \edef\pxrr@sprop@ey{#2}%
}
%    \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
%
% \begin{macro}{\rubyuseextra}
% $B;DG0$J$,$i:#$N$H$3$m$O;HMQIT2D!#(B
%    \begin{macrocode}
\newcommand*\rubyuseextra[1]{%
  \pxrr@cnta=#1\relax
  \ifnum\pxrr@cnta=\z@
    \chardef\pxrr@extra\pxrr@cnta
  \else
    \pxrr@err@inv@value{\the\pxrr@cnta}%
  \fi
}
%    \end{macrocode}
% \end{macro}
%
% \subsection{$B%k%S%*%W%7%g%s2r@O(B}
% 
% \begin{macro}{\pxrr@bintr@}
% \begin{macro}{\pxrr@aintr@}
% $B%*%W%7%g%s2r@OCf$K$N$_;H$o$l!"?JF~$NCM$r(B |\pxrr@d@?intr|
% $B$HF1$87A<0$GJ];}$9$k!#(B
% $B!J(B|\pxrr@?intr| $B$O7A<0$,0[$J$k$3$H$KCm0U!#!K(B
%    \begin{macrocode}
\let\pxrr@bintr@\@empty
\let\pxrr@aintr@\@empty
%    \end{macrocode}
% \end{macro}
% \end{macro}
%
% \begin{macro}{\pxrr@doublebar}
% |\pxrr@parse@option| $BCf$G;HMQ$5$l$k!#(B
%    \begin{macrocode}
\def\pxrr@doublebar{||}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@parse@option}
% |\pxrr@parse@option{|\jmeta{$B%*%W%7%g%s(B}|}|\Means
% \jmeta{$B%*%W%7%g%s(B}$B$r2r@O$7!"(B|\pxrr@athead| $B$d(B\ 
% |\pxrr@mode| $BEy$N%Q%i%a%?$r@_Dj$9$k!#(B
%    \begin{macrocode}
\def\pxrr@parse@option#1{%
%    \end{macrocode}
% $BF~NO$,!V(B\texttt{\vb\vb}$B!W$N>l9g$O!"!V(B\texttt{\vb-\vb}$B!W(B
% $B$KCV$-49$($k!#(B
%    \begin{macrocode}
  \edef\pxrr@tempa{#1}%
  \ifx\pxrr@tempa\pxrr@doublebar
    \def\pxrr@tempa{|-|}%
  \fi
%    \end{macrocode}
% $B3F%Q%i%a%?$NCM$rA4HL@_Dj$N$b$N$G=i4|2=$9$k!#(B
%    \begin{macrocode}
  \pxrr@csletcs{ifpxrr@bprotr}{ifpxrr@d@bprotr}%
  \pxrr@csletcs{ifpxrr@aprotr}{ifpxrr@d@aprotr}%
  \let\pxrr@bintr@\pxrr@d@bintr
  \let\pxrr@aintr@\pxrr@d@aintr
  \let\pxrr@athead\pxrr@d@athead
  \let\pxrr@mode\pxrr@d@mode
  \let\pxrr@side\pxrr@d@side
  \let\pxrr@evensp\pxrr@d@evensp
  \let\pxrr@fullsize\pxrr@d@fullsize
%    \end{macrocode}
% $B0J2<$N%Q%i%a%?$N4{DjCM$O8GDj$5$l$F$$$k!#(B
%    \begin{macrocode}
  \let\pxrr@bscomp\relax
  \let\pxrr@ascomp\relax
  \pxrr@bnobrfalse
  \pxrr@anobrfalse
  \pxrr@bfintrfalse
  \pxrr@afintrfalse
%    \end{macrocode}
% $BL@<(%U%i%0$r56$K$9$k!#(B
%    \begin{macrocode}
  \pxrr@mode@givenfalse
  \pxrr@athead@givenfalse
%    \end{macrocode}
% $BN>B&%k%S$N>l9g!"4pK\%b!<%I4{DjCM$,(B |M| $B$K8GDj$5$l$k!#(B
%    \begin{macrocode}
  \ifpxrr@truby
    \let\pxrr@mode=M%
  \fi
%    \end{macrocode}
% $BM-8B>uBV5!3#$r3+;O$5$;$k!#(B
% $BF~NO$NKvHx$K(B |@| $B$r2C$($F$$$k!#(B
% |\pxrr@end| $B$O%(%i!<;~$NC&=P$KMQ$$$k!#(B
%    \begin{macrocode}
  \def\pxrr@po@FS{bi}%
  \expandafter\pxrr@parse@option@loop\pxrr@tempa @\pxrr@end
}
%    \end{macrocode}
%
% $BM-8B>uBV5!3#$N%k!<%W!#(B
%    \begin{macrocode}
\def\pxrr@parse@option@loop#1{%
\ifpxrrDebug
\typeout{\pxrr@po@FS/#1[\@nameuse{pxrr@po@C@#1}]}%
\fi
  \csname pxrr@po@PR@#1\endcsname
  \expandafter\ifx\csname pxrr@po@C@#1\endcsname\relax
    \let\pxrr@po@FS\relax
  \else
    \pxrr@letcs\pxrr@po@FS
     {pxrr@po@TR@\pxrr@po@FS @\@nameuse{pxrr@po@C@#1}}%
  \fi
\ifpxrrDebug
\typeout{->\pxrr@po@FS}%
\fi
  \pxrr@ifx{\pxrr@po@FS\relax}{%
    \pxrr@fatal@unx@letter{#1}%
    \pxrr@parse@option@exit
  }{%
    \pxrr@parse@option@loop
  }%
}
%    \end{macrocode}
%
% $B8e=hM}!#(B
%    \begin{macrocode}
\def\pxrr@parse@option@exit#1\pxrr@end{%
%    \end{macrocode}
% $B4{DjCM@_Dj!J(B|\rubysetup|$B!K$G$"$k>l9g2?$b$7$J$$!#(B
%    \begin{macrocode}
  \ifpxrr@in@setup\else
%    \end{macrocode}
% $BN>B&%k%SL?Na$N>l9g$O!"(B|\pxrr@side| $B$NCM$rJQ99$9$k!#(B
%    \begin{macrocode}
    \ifpxrr@truby
      \chardef\pxrr@side\tw@
    \fi
%    \end{macrocode}
% $B@09g@-8!::$r9T$&!#(B
%    \begin{macrocode}
    \pxrr@check@option
%    \end{macrocode}
% |\pxrr@?intr| $B$NCM$r@_Dj$9$k!#(B
%    \begin{macrocode}
    \@tempdima=\pxrr@ruby@zw\relax
    \@tempdimb=\pxrr@or@zero\pxrr@bintr@\@tempdima
    \edef\pxrr@bintr{\the\@tempdimb}%
    \@tempdimb=\pxrr@or@zero\pxrr@aintr@\@tempdima
    \edef\pxrr@aintr{\the\@tempdimb}%
  \fi
}
%    \end{macrocode}
%
% \begin{macro}{\pxrr@or@zero}
% |\pxrr@or@zero\pxrr@?intr@| $B$H$9$k$H!"(B|\pxrr@?intr@| $B$,(B
% $B6u$N;~$KBe$o$j$K%<%m$H07$&!#(B
%    \begin{macrocode}
\def\pxrr@or@zero#1{%
  \ifx#1\@empty \pxrr@zero
  \else #1%
  \fi
}
%    \end{macrocode}
% \end{macro}
% 
% $B0J2<$O%*%W%7%g%s2r@O$NM-8B>uBV5!3#$NDj5A!#(B
%
% $B5-9f$N%/%i%9$N@_Dj!#(B
%    \begin{macrocode}
\def\pxrr@po@C@@{F}
\@namedef{pxrr@po@C@|}{V}
\@namedef{pxrr@po@C@:}{S}
\@namedef{pxrr@po@C@.}{S}
\@namedef{pxrr@po@C@*}{S}
\@namedef{pxrr@po@C@!}{S}
\@namedef{pxrr@po@C@<}{B}
\@namedef{pxrr@po@C@(}{B}
\@namedef{pxrr@po@C@>}{A}
\@namedef{pxrr@po@C@)}{A}
\@namedef{pxrr@po@C@-}{M}
\def\pxrr@po@C@c{M}
\def\pxrr@po@C@h{M}
\def\pxrr@po@C@H{M}
\def\pxrr@po@C@m{M}
\def\pxrr@po@C@g{M}
\def\pxrr@po@C@j{M}
\def\pxrr@po@C@M{M}
\def\pxrr@po@C@J{M}
\def\pxrr@po@C@P{M}
\def\pxrr@po@C@S{M}
\def\pxrr@po@C@e{M}
\def\pxrr@po@C@E{M}
\def\pxrr@po@C@f{M}
\def\pxrr@po@C@F{M}
%    \end{macrocode}
% 
% $B5!G=%W%m%;%9!#(B
%    \begin{macrocode}
\def\pxrr@po@PR@@{%
  \pxrr@parse@option@exit
}
\@namedef{pxrr@po@PR@|}{%
  \csname pxrr@po@PRbar@\pxrr@po@FS\endcsname
}
\def\pxrr@po@PRbar@bi{%
  \def\pxrr@bintr@{}\pxrr@bprotrtrue
}
\def\pxrr@po@PRbar@bb{%
  \pxrr@bprotrfalse
}
\def\pxrr@po@PRbar@bs{%
  \def\pxrr@aintr@{}\pxrr@aprotrtrue
}
\let\pxrr@po@PRbar@mi\pxrr@po@PRbar@bs
\let\pxrr@po@PRbar@as\pxrr@po@PRbar@bs
\let\pxrr@po@PRbar@ai\pxrr@po@PRbar@bs
\def\pxrr@po@PRbar@ab{%
  \pxrr@aprotrfalse
}
\@namedef{pxrr@po@PR@:}{%
  \csname pxrr@po@PRcolon@\pxrr@po@FS\endcsname
}
\def\pxrr@po@PRcolon@bi{%
  \let\pxrr@bscomp=:\relax
}
\let\pxrr@po@PRcolon@bb\pxrr@po@PRcolon@bi
\let\pxrr@po@PRcolon@bs\pxrr@po@PRcolon@bi
\def\pxrr@po@PRcolon@mi{%
  \let\pxrr@ascomp=:\relax
}
\let\pxrr@po@PRcolon@as\pxrr@po@PRcolon@mi
\@namedef{pxrr@po@PR@.}{%
  \csname pxrr@po@PRdot@\pxrr@po@FS\endcsname
}
\def\pxrr@po@PRdot@bi{%
  \let\pxrr@bscomp=.\relax
}
\let\pxrr@po@PRdot@bb\pxrr@po@PRdot@bi
\let\pxrr@po@PRdot@bs\pxrr@po@PRdot@bi
\def\pxrr@po@PRdot@mi{%
  \let\pxrr@ascomp=.\relax
}
\let\pxrr@po@PRdot@as\pxrr@po@PRdot@mi
\@namedef{pxrr@po@PR@*}{%
  \csname pxrr@po@PRstar@\pxrr@po@FS\endcsname
}
\def\pxrr@po@PRstar@bi{%
  \pxrr@bnobrtrue
}
\let\pxrr@po@PRstar@bb\pxrr@po@PRstar@bi
\let\pxrr@po@PRstar@bs\pxrr@po@PRstar@bi
\def\pxrr@po@PRstar@mi{%
  \pxrr@anobrtrue
}
\let\pxrr@po@PRstar@as\pxrr@po@PRstar@mi
\@namedef{pxrr@po@PR@!}{%
  \csname pxrr@po@PRbang@\pxrr@po@FS\endcsname
}
\def\pxrr@po@PRbang@bi{%
  \pxrr@bfintrtrue
}
\let\pxrr@po@PRbang@bb\pxrr@po@PRbang@bi
\let\pxrr@po@PRbang@bs\pxrr@po@PRbang@bi
\def\pxrr@po@PRbang@mi{%
  \pxrr@afintrtrue
}
\let\pxrr@po@PRbang@as\pxrr@po@PRbang@mi
\@namedef{pxrr@po@PR@<}{%
  \def\pxrr@bintr@{\pxrr@big@intr}\pxrr@bprotrtrue
}
\@namedef{pxrr@po@PR@(}{%
  \def\pxrr@bintr@{\pxrr@small@intr}\pxrr@bprotrtrue
}
\@namedef{pxrr@po@PR@>}{%
  \def\pxrr@aintr@{\pxrr@big@intr}\pxrr@aprotrtrue
}
\@namedef{pxrr@po@PR@)}{%
  \def\pxrr@aintr@{\pxrr@small@intr}\pxrr@aprotrtrue
}
\def\pxrr@po@PR@c{%
  \chardef\pxrr@athead\z@
  \pxrr@athead@giventrue
}
\def\pxrr@po@PR@h{%
  \chardef\pxrr@athead\@ne
  \pxrr@athead@giventrue
}
\def\pxrr@po@PR@H{%
  \chardef\pxrr@athead\tw@
  \pxrr@athead@giventrue
}
\def\pxrr@po@PR@m{%
  \let\pxrr@mode=m%
  \pxrr@mode@giventrue
}
\def\pxrr@po@PR@g{%
  \let\pxrr@mode=g%
  \pxrr@mode@giventrue
}
\def\pxrr@po@PR@j{%
  \let\pxrr@mode=j%
  \pxrr@mode@giventrue
}
\def\pxrr@po@PR@M{%
  \let\pxrr@mode=M%
  \pxrr@mode@giventrue
}
\def\pxrr@po@PR@J{%
  \let\pxrr@mode=J%
  \pxrr@mode@giventrue
}
\def\pxrr@po@PR@P{%
  \chardef\pxrr@side\z@
}
\def\pxrr@po@PR@S{%
  \chardef\pxrr@side\@ne
}
\def\pxrr@po@PR@E{%
  \chardef\pxrr@evensp\z@
}
\def\pxrr@po@PR@e{%
  \chardef\pxrr@evensp\@ne
}
\def\pxrr@po@PR@F{%
  \chardef\pxrr@fullsize\z@
}
\def\pxrr@po@PR@f{%
  \chardef\pxrr@fullsize\@ne
}
%    \end{macrocode}
% 
% $BA+0\I=!#(B
%    \begin{macrocode}
\def\pxrr@po@TR@bi@F{fi}
\def\pxrr@po@TR@bb@F{fi}
\def\pxrr@po@TR@bs@F{fi}
\def\pxrr@po@TR@mi@F{fi}
\def\pxrr@po@TR@as@F{fi}
\def\pxrr@po@TR@ai@F{fi}
\def\pxrr@po@TR@ab@F{fi}
\def\pxrr@po@TR@fi@F{fi}
\def\pxrr@po@TR@bi@V{bb}
\def\pxrr@po@TR@bb@V{bs}
\def\pxrr@po@TR@bs@V{ab}
\def\pxrr@po@TR@mi@V{ab}
\def\pxrr@po@TR@as@V{ab}
\def\pxrr@po@TR@ai@V{ab}
\def\pxrr@po@TR@ab@V{fi}
\def\pxrr@po@TR@bi@S{bs}
\def\pxrr@po@TR@bb@S{bs}
\def\pxrr@po@TR@bs@S{bs}
\def\pxrr@po@TR@mi@S{as}
\def\pxrr@po@TR@as@S{as}
\def\pxrr@po@TR@bi@B{bs}
\def\pxrr@po@TR@bi@M{mi}
\def\pxrr@po@TR@bb@M{mi}
\def\pxrr@po@TR@bs@M{mi}
\def\pxrr@po@TR@mi@M{mi}
\def\pxrr@po@TR@bi@A{fi}
\def\pxrr@po@TR@bb@A{fi}
\def\pxrr@po@TR@bs@A{fi}
\def\pxrr@po@TR@mi@A{fi}
\def\pxrr@po@TR@as@A{fi}
\def\pxrr@po@TR@ai@A{fi}
%    \end{macrocode}
% \end{macro}
%
% \subsection{$B%*%W%7%g%s@09g@-8!::(B}
%
% \begin{macro}{\pxrr@mode@grand}
% $B4pK\%b!<%I$N!HBgJ,N`!I!#(B
% $B%b%N!J(B|m|$B!K!&=O8l!J(B|j|$B!K!&%0%k!<%W!J(B|g|$B!K$N2?$l$+!#(B
% $B$D$^$j!HA*BrE*!I@_Dj$N(B |M|$B!&(B|J| $B$r(B |m|$B!&(B|j| $B$K4s$;$k!#(B
% \Note $B40A4E83+2DG=$G$"$k$,!"!H@hF,40A4E83+2DG=!I$G$J$$$3$H$KCm0U!#(B
%    \begin{macrocode}
\def\pxrr@mode@grand{%
  \if      m\pxrr@mode m%
  \else\if M\pxrr@mode m%
  \else\if j\pxrr@mode j%
  \else\if J\pxrr@mode j%
  \else\if g\pxrr@mode g%
  \else ?%
  \fi\fi\fi\fi\fi
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@check@option}
% |\pxrr@parse@option| $B$N7k2L$G$"$k%*%W%7%g%s@_DjCM$N@09g@-$r8!::$7!"(B
% $BI,MW$K1~$8$F!"CWL?E*%(%i!<$r=P$7$?$j!"7Y9p$r=P$7$FE,@Z$JCM$K(B
% $BJQ99$7$?$j$9$k!#(B
%    \begin{macrocode}
\def\pxrr@check@option{%
%    \end{macrocode}
% $BA0$H8e$NN>J}$GFM=P$,6X;_$5$l$?>l9g$OCWL?E*%(%i!<$H$9$k!#(B
%    \begin{macrocode}
  \ifpxrr@bprotr\else
    \ifpxrr@aprotr\else
      \pxrr@fatal@bad@no@protr
    \fi
  \fi
%    \end{macrocode}
% $B%4!<%9%H=hM}M-8z$G?JF~M-$j$N>l9g$OCWL?E*%(%i!<$H$9$k!#(B
%    \begin{macrocode}
  \pxrr@oktrue
  \ifx\pxrr@bintr@\@empty\else
    \pxrr@okfalse
  \fi
  \ifx\pxrr@aintr@\@empty\else
    \pxrr@okfalse
  \fi
  \ifpxrr@ghost\else
    \pxrr@oktrue
  \fi
  \ifpxrr@ok\else
    \pxrr@fatal@bad@intr
  \fi
%    \end{macrocode}
% $B2$J8%k%S$G$O%b%N%k%S!J(B|m|$B!K!&=O8l%k%S!J(B|j|$B!K$O;XDjIT2D$J$N$G!"(B
% $B%0%k!<%W%k%S$KJQ99$9$k!#(B
% $B$3$N;~$KL@<(;XDj$G$"$k>l9g$O7Y9p$r=P$9!#(B
%    \begin{macrocode}
  \if g\pxrr@mode\else
    \ifpxrr@abody
      \let\pxrr@mode=g\relax
      \ifpxrr@mode@given
        \pxrr@warn@must@group
      \fi
    \fi
  \fi
%    \end{macrocode}
% $BN>B&%k%S$G$O=O8l%k%S!J(B|j|$B!K$O;XDjIT2D$J$N$G!"(B
% $B%0%k!<%W%k%S$KJQ99$9$k!#(B
% $B$3$N;~$KL@<(;XDj$G$"$k>l9g$O7Y9p$r=P$9!#(B
%    \begin{macrocode}
  \if \pxrr@mode@grand j%
    \ifnum\pxrr@side=\tw@
      \let\pxrr@mode=g\relax
      \ifpxrr@mode@given
        \pxrr@warn@bad@jukugo
      \fi
    \fi
  \fi
%    \end{macrocode}
% $B8*IU$-;XDj!J(B|h|$B!K$K4X$9$k8!::!#(B
%    \begin{macrocode}
  \ifnum\pxrr@athead>\z@
%    \end{macrocode}
% $B2#AH$_$G$OIT2D$J$N$GCfIU$-$KJQ99$9$k!#(B
%    \begin{macrocode}
    \pxrr@if@in@tate{}{%else
      \chardef\pxrr@athead\z@
    }%
%    \end{macrocode}
% $B%0%k!<%W%k%S$G$OIT2D$J$N$GCfIU$-$KJQ99$9$k!#(B
%    \begin{macrocode}
    \if g\pxrr@mode
      \chardef\pxrr@athead\z@
    \fi
%    \end{macrocode}
% $B0J>e$N(B2$B$D$N>l9g$K$D$$$F!"L@<(;XDj$G$"$l$P7Y9p$r=P$9!#(B
%    \begin{macrocode}
    \ifnum\pxrr@athead=\z@
      \ifpxrr@athead@given
        \pxrr@warn@bad@athead
      \fi
    \fi
  \fi
%    \end{macrocode}
% $B?FJ8;zNs6QEy3d$jM^;_!J(B|E|$B!K$N:F@_Dj!J%(%i!<!&7Y9p$J$7!K!#(B
%
% $B2$J8%k%S$N>l9g$O!"6QEy3d$j$r>o$KL58z$K$9$k!#(B
%    \begin{macrocode}
  \ifpxrr@abody
    \chardef\pxrr@evensp\z@
  \fi
%    \end{macrocode}
% $B%0%k!<%W%k%S0J30$G$O!"6QEy3d$j$rM-8z$K$9$k!#(B
% $B!J$3$N>l9g!"?FJ8;zNs$O0lJ8;zKh$KJ,2r$5$l$k$N$G!"0UL#$O$b$?$J$$!#(B
% $B6QEy3d$jM^;_$NJ}$,FC<l$J=hM}$J$N$G!"DL>o$N=hM}$K9g$o$;$k!#!K(B
%    \begin{macrocode}
  \if g\pxrr@mode\else
    \chardef\pxrr@evensp\@ne
  \fi
%    \end{macrocode}
% $B7wE@%k%SF1;~IU2C$N>l9g$ND4@0!#(B
%    \begin{macrocode}
    \ifpxrr@combo
      \pxrr@ck@check@option
    \fi
}
%    \end{macrocode}
% \end{macro}
%
% \subsection{$B%U%)%s%H%5%$%:(B}
%
% \begin{macro}{\pxrr@ruby@fsize}
% $B%k%SJ8;z$N8x>N%5%$%:!#(B
% $B@#K!CM%^%/%m!#(B
% $B%k%SL?Na8F=P;~$K(B |\f@size|$B!J?FJ8;z$N8x>N%5%$%:!K(B
% $B$N(B |\pxrr@size@ratio| $BG\$K@_Dj$5$l$k!#(B
%    \begin{macrocode}
\let\pxrr@ruby@fsize\pxrr@zeropt
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@body@zw}
% \begin{macro}{\pxrr@ruby@zw}
% $B$=$l$>$l!"?FJ8;z$H%k%SJ8;z$NA43QI}!J<B:]$N(B1\,zw$B$N@#K!!K!#(B
% $B@#K!CM%^%/%m!#(B
% {p\TeX}$B$G$OOBJ8$H2$J8$N%P%i%s%9$r@0$($k$?$a$KOBJ8$r=L>.$9$k(B
% $B$3$H$,B?$/!"$=$N>l9g!VA43QI}!W$O!V8x>N%5%$%:!W$h$j>.$5$/$J$k!#(B
% $B$J$*!"$3$N%Q%C%1!<%8$G$O4A;z$NI}$,(B1\,zw$B$G$"$k$3$H$rA[Dj$9$k!#(B
% $B$3$l$i$b%k%SL?Na8F=P;~$K@5$7$$CM$K@_Dj$5$l$k!#(B
%    \begin{macrocode}
\let\pxrr@body@zw\pxrr@zeropt
\let\pxrr@ruby@zw\pxrr@zeropt
%    \end{macrocode}
% \end{macro}
% \end{macro}
%
% \begin{macro}{\pxrr@ruby@raise}
% $B%k%SJ8;z$KBP$9$k?bD>J}8~$N0\F0NL!#(B
%    \begin{macrocode}
\let\pxrr@ruby@raise\pxrr@zeropt
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@ruby@lower}
% $B%k%SJ8;z$KBP$9$k?bD>J}8~$N0\F0NL!J2<B&%k%S!K!#(B
%    \begin{macrocode}
\let\pxrr@ruby@lower\pxrr@zeropt
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@htratio}
% $B8=:_$NAHJ}8~$K$h$j!"(B|\pxrr@yhtratio| $B$H(B |\pxrr@thtratio| $B$N$$$:$l$+(B
% $B0lJ}$K@_Dj$5$l$k!#(B
%    \begin{macrocode}
\def\pxrr@htratio{0}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@iiskip}
% \begin{macro}{\pxrr@iaiskip}
% $BOBJ84V6uGr$*$h$SOB2$J84V6uGr$NNL!#(B
%    \begin{macrocode}
\let\pxrr@iiskip\pxrr@zeropt
\let\pxrr@iaiskip\pxrr@zeropt
%    \end{macrocode}
% \end{macro}
% \end{macro}
%
% \begin{macro}{\pxrr@assign@fsize}
% $B>e5-$NJQ?t!J%^%/%m!K$r@_Dj$9$k!#(B
%    \begin{macrocode}
\def\pxrr@assign@fsize{%
  \@tempdima=\f@size\p@
  \@tempdima\pxrr@c@size@ratio\@tempdima
  \edef\pxrr@ruby@fsize{\the\@tempdima}%
  \pxrr@get@zwidth\pxrr@body@zw
  \begingroup
    \pxrr@use@ruby@font
    \pxrr@get@zwidth\pxrr@ruby@zw
    \global\let\pxrr@gtempa\pxrr@ruby@zw
  \endgroup
  \let\pxrr@ruby@zw\pxrr@gtempa
  \pxrr@get@iiskip\pxrr@iiskip
  \pxrr@get@iaiskip\pxrr@iaiskip
%    \end{macrocode}
% |\pxrr@htratio| $B$NCM$r@_Dj$9$k!#(B
%    \begin{macrocode}
  \pxrr@if@in@tate{%
    \let\pxrr@htratio\pxrr@thtratio
  }{%
    \let\pxrr@htratio\pxrr@yhtratio
  }%
%    \end{macrocode}
% |\pxrr@ruby@raise| $B$NCM$r7W;;$9$k!#(B
%    \begin{macrocode}
  \@tempdima\pxrr@body@zw\relax
  \@tempdima\pxrr@htratio\@tempdima
  \@tempdimb\pxrr@ruby@zw\relax
  \advance\@tempdimb-\pxrr@htratio\@tempdimb
  \advance\@tempdima\@tempdimb
  \@tempdimb\pxrr@body@zw\relax
  \advance\@tempdima\pxrr@c@inter@gap\@tempdimb
  \edef\pxrr@ruby@raise{\the\@tempdima}%
%    \end{macrocode}
% |\pxrr@ruby@lower| $B$NCM$r7W;;$9$k!#(B
%    \begin{macrocode}
  \@tempdima\pxrr@body@zw\relax
  \advance\@tempdima-\pxrr@htratio\@tempdima
  \@tempdimb\pxrr@ruby@zw\relax
  \@tempdimb\pxrr@htratio\@tempdimb
  \advance\@tempdima\@tempdimb
  \@tempdimb\pxrr@body@zw\relax
  \advance\@tempdima\pxrr@c@inter@gap\@tempdimb
  \edef\pxrr@ruby@lower{\the\@tempdima}%
%    \end{macrocode}
% $B7wE@%k%SF1;~IU2C$N@_Dj!#(B
%    \begin{macrocode}
  \ifpxrr@combo
    \pxrr@ck@assign@fsize
  \fi
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@use@ruby@font}
% $B%k%SMQ$N%U%)%s%H$K@Z$jBX$($k!#(B
%    \begin{macrocode}
\def\pxrr@use@ruby@font{%
  \pxrr@without@macro@trace{%
    \let\rubyfontsize\pxrr@ruby@fsize
    \fontsize{\pxrr@ruby@fsize}{\z@}\selectfont
    \pxrr@c@ruby@font
  }%
}
%    \end{macrocode}
% \end{macro}
%
% \subsection{$B%k%SMQ6QEy3d$j(B}
%
% \begin{macro}{\pxrr@locate@inner}
% \begin{macro}{\pxrr@locate@head}
% \begin{macro}{\pxrr@locate@end}
% $B%k%SG[CV%Q%?!<%s!J9TF,!?9TCf!?9TKv!K$rI=$9Dj?t!#(B
%    \begin{macrocode}
\chardef\pxrr@locate@inner=1
\chardef\pxrr@locate@head=0
\chardef\pxrr@locate@end=2
%    \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
%
% \begin{macro}{\pxrr@evenspace}
% \begin{macro}{\pxrr@evenspace@int}
% \begin{macro}{\pxrr@makebox@res}
% |\pxrr@evenspace{|\jmeta{$B%Q%?!<%s(B}|}\CS{|\jmeta{$B%U%)%s%H(B}|}|^^A
% |{|\jmeta{$BI}(B}|}{|\jmeta{$B%F%-%9%H(B}|}|\Means
% \jmeta{$B%F%-%9%H(B}$B$r;XDj$N(B\jmeta{$BI}(B}$B$KBP$9$k(B
% \jmeta{$B%Q%?!<%s(B}$B!J9TF,!?9TCf!?9TKv!K$N(B
% $B!V9TCf%k%SMQ6QEy3d$j!W$GG[CV$7!"(B
% $B7k2L$r%\%C%/%9%l%8%9%?(B |\CS| $B$KBeF~$9$k!#(B
% $B6QEy3d$j$NMWAGJ,3d$O(B |\pxrr@decompose| $B$rMQ$$$F9T$o$l$k$N$G!"(B
% $BMWAG?t$,(B |\pxrr@cntr| $B$KJV$k!#(B
% $B$^$?!"@hF,$HKvHx$N6u$-$NNL$r$=$l$>$l(B\ 
% |\pxrr@bspace| $B$H(B |\pxrr@aspace| $B$KBeF~$9$k!#(B
%
% |\pxrr@evenspace@int{|\jmeta{$B%Q%?!<%s(B}|}\CS{|\jmeta{$B%U%)%s%H(B}|}|^^A
% |{|\jmeta{$BI}(B}|}|\Means
% |\pxrr@evenspace| $B$N<B9T$r!"(B
% \begin{quote}
% |\pxrr@res| $B$H(B |\pxrr@cntr| $B$K%F%-%9%H$N(B |\pxrr@decompose| $B$N7k2L$,(B
% $BF~$C$F$$$F!"%F%-%9%H$N<+A3D9$,%^%/%m(B |\pxrr@natwd| $B$K(B
% $BF~$C$F$$$k(B
% \end{quote}
% $B$H$$$&>uBV$G!"ESCf$+$i3+;O$9$k!#(B
%    \begin{macrocode}
\def\pxrr@evenspace#1#2#3#4#5{%
%    \end{macrocode}
% \jmeta{$B%F%-%9%H(B}$B$N<+A3D9$r7WB,$7!"(B|\pxrr@natwd| $B$K3JG<$9$k!#(B
%    \begin{macrocode}
  \setbox#2\pxrr@hbox{#5}\@tempdima\wd#2%
  \edef\pxrr@natwd{\the\@tempdima}%
%    \end{macrocode}
% \jmeta{$B%F%-%9%H(B}$B$r%j%9%H2r@O$9$k(B
% $B!J(B|\pxrr@cntr| $B$KMWAG?t$,F~$k!K!#(B
% |\pxrr@evenspace@int| $B$K0z$-7Q$0!#(B
%    \begin{macrocode}
  \pxrr@decompose{#5}%
  \pxrr@evenspace@int{#1}{#2}{#3}{#4}%
}
%    \end{macrocode}
% $B$3$3$+$i<B9T$r3+;O$9$k$3$H$b$"$k!#(B
%    \begin{macrocode}
\def\pxrr@evenspace@int#1#2#3#4{%
%    \end{macrocode}
% $BHfN(%Q%i%a%?$N@_Dj!#(B
%    \begin{macrocode}
  \pxrr@save@listproc
  \ifcase#1%
    \pxrr@evenspace@param\pxrr@zero\pxrr@sprop@hy\pxrr@sprop@hz
  \or
    \pxrr@evenspace@param\pxrr@sprop@x\pxrr@sprop@y\pxrr@sprop@z
  \or
    \pxrr@evenspace@param\pxrr@sprop@ex\pxrr@sprop@ey\pxrr@zero
  \fi
%    \end{macrocode}
% $BA^F~$5$l$k(B |fil| $B$N78?t$r5a$a!"$3$l$,%<%m$N>l9g(B
% $B!J$3$N;~(B $\mbox{X}=\mbox{Z}=0$ $B$G$"$k!K$O!"(B
% $B%"%s%@!<%U%kKI;_$N$?$a!"(B$\mbox{X}=\mbox{Z}=1$
% $B$KJQ99$9$k!#(B
%    \begin{macrocode}
  \pxrr@dima=\pxrr@cntr\p@
  \advance\pxrr@dima-\p@
  \pxrr@dima=\pxrr@sprop@y@\pxrr@dima
  \advance\pxrr@dima\pxrr@sprop@x@\p@
  \advance\pxrr@dima\pxrr@sprop@z@\p@
  \ifdim\pxrr@dima>\z@\else
    \ifnum#1>\z@
      \let\pxrr@sprop@x@\@ne
      \advance\pxrr@dima\p@
    \fi
    \ifnum#1<\tw@
      \let\pxrr@sprop@z@\@ne
      \advance\pxrr@dima\p@
    \fi
  \fi
  \edef\pxrr@tempa{\strip@pt\pxrr@dima}%
\ifpxrrDebug
\typeout{\number\pxrr@sprop@x@:\number\pxrr@sprop@z@:\pxrr@tempa}%
\fi
%    \end{macrocode}
% |\pxrr@pre/inter/post| $B$K%0%k!=$r@_Dj$7$F!"(B
% |\pxrr@res| $B$rAHHG$9$k!#(B
% $B$J$*!"(B|\setbox...| $B$r0lC6%^%/%m(B |\pxrr@makebox@res| $B$KDj5A(B
% $B$7$F$$$k$N$O!"8e$G(B |\pxrr@adjust@margin| $B$G:FEY8F$S=P$;$k$h$&$K(B
% $B$9$k$?$a!#(B
%    \begin{macrocode}
  \def\pxrr@pre##1{\pxrr@hfilx\pxrr@sprop@x@ ##1}%
  \def\pxrr@inter##1{\pxrr@hfilx\pxrr@sprop@y@ ##1}%
  \def\pxrr@post{\pxrr@hfilx\pxrr@sprop@z@}%
  \def\pxrr@makebox@res{%
    \setbox#2=\pxrr@hbox@to#4{#3\pxrr@res}%
  }%
  \pxrr@makebox@res
%    \end{macrocode}
% $BA08e$N6uGr$NNL$r5a$a$k!#(B
%    \begin{macrocode}
  \pxrr@dima\wd#2%
  \advance\pxrr@dima-\pxrr@natwd\relax
  \pxrr@invscale\pxrr@dima\pxrr@tempa
  \@tempdima\pxrr@sprop@x@\pxrr@dima
  \edef\pxrr@bspace{\the\@tempdima}%
  \@tempdima\pxrr@sprop@z@\pxrr@dima
  \edef\pxrr@aspace{\the\@tempdima}%
  \pxrr@restore@listproc
\ifpxrrDebug
\typeout{\pxrr@bspace:\pxrr@aspace}%
\fi
}
\def\pxrr@evenspace@param#1#2#3{%
  \let\pxrr@sprop@x@#1%
  \let\pxrr@sprop@y@#2%
  \let\pxrr@sprop@z@#3%
}
\let\pxrr@makebox@res\@undefined
%    \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
%
% \begin{macro}{\pxrr@adjust@margin}
% |\pxrr@adjust@margin|\Means
% |\pxrr@evenspace(@int)| $B$r8F$S=P$7$?D>8e$K8F$VI,MW$,$"$k!#(B
% $B@hF,$HKvHx$N3F!9$K$D$$$F!"6u$-$NNL$,(B |\pxrr@maxmargin|
% $B$K$h$j7h$^$k>e8BCM$rD6$($k>l9g$K!"6u$-$r>e8BCM$KM^$($k(B
% $B$h$&$K:FD4@0$9$k!#(B
%    \begin{macrocode}
\def\pxrr@adjust@margin{%
  \pxrr@save@listproc
  \@tempdima\pxrr@body@zw\relax
  \@tempdima\pxrr@maxmargin\@tempdima
%    \end{macrocode}
% $B:FD4@0$,I,MW$+$r(B |\if@tempswa| $B$K5-O?$9$k!#(B
% 1$BJ8;z$7$+$J$$>l9g$OD4@0ITG=$@$+$i8!::$rHt$P$9!#(B
%    \begin{macrocode}
  \@tempswafalse
  \def\pxrr@pre##1{\pxrr@hfilx\pxrr@sprop@x@ ##1}%
  \def\pxrr@inter##1{\pxrr@hfilx\pxrr@sprop@y@ ##1}%
  \def\pxrr@post{\pxrr@hfilx\pxrr@sprop@z@}%
  \ifnum\pxrr@cntr>\@ne
    \ifdim\pxrr@bspace>\@tempdima
      \edef\pxrr@bspace{\the\@tempdima}%
      \def\pxrr@pre##1{\hskip\pxrr@bspace\relax ##1}%
      \@tempswatrue
    \fi
    \ifdim\pxrr@aspace>\@tempdima
      \edef\pxrr@aspace{\the\@tempdima}%
      \def\pxrr@post{\hskip\pxrr@aspace\relax}%
      \@tempswatrue
    \fi
  \fi
%    \end{macrocode}
% $BI,MW$K1~$8$F:FD4@0$r9T$&!#(B
%    \begin{macrocode}
  \if@tempswa
    \pxrr@makebox@res
  \fi
  \pxrr@restore@listproc
\ifpxrrDebug
\typeout{\pxrr@bspace:\pxrr@aspace}%
\fi
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@save@listproc}
% |\pxrr@pre/inter/post| $B$NDj5A$rB`Hr$9$k!#(B
% \Note
% $BB`Hr$N%M%9%H$O$G$-$J$$!#(B
%    \begin{macrocode}
\def\pxrr@save@listproc{%
  \let\pxrr@pre@save\pxrr@pre
  \let\pxrr@inter@save\pxrr@inter
  \let\pxrr@post@save\pxrr@post
}
\let\pxrr@pre@save\@undefined
\let\pxrr@inter@save\@undefined
\let\pxrr@post@save\@undefined
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@restore@listproc}
% |\pxrr@pre/inter/post| $B$NDj5A$rI|5"$9$k!#(B
%    \begin{macrocode}
\def\pxrr@restore@listproc{%
  \let\pxrr@pre\pxrr@pre@save
  \let\pxrr@inter\pxrr@inter@save
  \let\pxrr@post\pxrr@post@save
}
%    \end{macrocode}
% \end{macro}
%
% \subsection{$B>.=q$-2>L>$NJQ49(B}
%
% \begin{macro}{\pxrr@trans@res}
% |\pxrr@transform@kana| $BFb$GJQ497k2L$rJ];}$9$k%^%/%m!#(B
%    \begin{macrocode}
\let\pxrr@trans@res\@empty
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@transform@kana}
% |\pxrr@transform@kana\CS|\Means
% $B%^%/%m(B |\CS| $B$NE83+%F%-%9%H$NCf$G%0%k!<%W$K4^$^$l$J$$>.=q$-2>L>$r(B
% $BBP1~$9$kHs>.=q$-2>L>$KJQ49$7!"(B|\CS| $B$r>e=q$-$9$k!#(B
%    \begin{macrocode}
\def\pxrr@transform@kana#1{%
  \let\pxrr@trans@res\@empty
  \def\pxrr@transform@kana@end\pxrr@end{%
    \let#1\pxrr@trans@res
  }%
  \expandafter\pxrr@transform@kana@loop@a#1\pxrr@end
}
\def\pxrr@transform@kana@loop@a{%
  \futurelet\pxrr@token\pxrr@transform@kana@loop@b
}
\def\pxrr@transform@kana@loop@b{%
  \ifx\pxrr@token\pxrr@end
    \let\pxrr@tempb\pxrr@transform@kana@end
  \else\ifx\pxrr@token\bgroup
    \let\pxrr@tempb\pxrr@transform@kana@loop@c
  \else\ifx\pxrr@token\@sptoken
    \let\pxrr@tempb\pxrr@transform@kana@loop@d
  \else
    \let\pxrr@tempb\pxrr@transform@kana@loop@e
  \fi\fi\fi
  \pxrr@tempb
}
\def\pxrr@transform@kana@loop@c#1{%
  \pxrr@appto\pxrr@trans@res{{#1}}%
  \pxrr@transform@kana@loop@a
}
\expandafter\def\expandafter\pxrr@transform@kana@loop@d\space{%
  \pxrr@appto\pxrr@trans@res{ }%
  \pxrr@transform@kana@loop@a
}
\def\pxrr@transform@kana@loop@e#1{%
  \expandafter\pxrr@transform@kana@loop@f\string#1\pxrr@nil#1%
}
\def\pxrr@transform@kana@loop@f#1#2\pxrr@nil#3{%
  \@tempswafalse
  \ifnum`#1>\@cclv
    \begingroup\expandafter\expandafter\expandafter\endgroup
    \expandafter\ifx\csname pxrr@nonsmall/#3\endcsname\relax\else
      \@tempswatrue
    \fi
  \fi
  \if@tempswa
    \edef\pxrr@tempa{%
      \noexpand\pxrr@appto\noexpand\pxrr@trans@res
       {\csname pxrr@nonsmall/#3\endcsname}%
    }%
    \pxrr@tempa
  \else
    \pxrr@appto\pxrr@trans@res{#3}%
  \fi
  \pxrr@transform@kana@loop@a
}
\def\pxrr@assign@nonsmall#1/#2\pxrr@nil{%
  \pxrr@get@jchar@token\pxrr@tempa{\pxrr@jc{#1}}%
  \pxrr@get@jchar@token\pxrr@tempb{\pxrr@jc{#2}}%
  \expandafter\edef\csname pxrr@nonsmall/\pxrr@tempa\endcsname
   {\pxrr@tempb}%
}
\@tfor\pxrr@tempc:=%
    {2421:3041/2422:3042}{2423:3043/2424:3044}%
    {2425:3045/2426:3046}{2427:3047/2428:3048}%
    {2429:3049/242A:304A}{2443:3063/2444:3064}%
    {2463:3083/2464:3084}{2465:3085/2466:3086}%
    {2467:3087/2468:3088}{246E:308E/246F:308F}%
    {2521:30A1/2522:30A2}{2523:30A3/2524:30A4}%
    {2525:30A5/2526:30A6}{2527:30A7/2528:30A8}%
    {2529:30A9/252A:30AA}{2543:30C3/2544:30C4}%
    {2563:30E3/2564:30E4}{2565:30E5/2566:30E6}%
    {2567:30E7/2568:30E8}{256E:30EE/256F:30EF}%
  \do{%
  \expandafter\pxrr@assign@nonsmall\pxrr@tempc\pxrr@nil
}
%    \end{macrocode}
% \end{macro}
%
% \subsection{$B%V%m%C%/Kh$NAHHG(B}
%
% \begin{macro}{\ifpxrr@protr}
% $B%k%SJ8;zNs$NFM=P$,$"$k$+!#(B
% $B%9%$%C%A!#(B
%    \begin{macrocode}
\newif\ifpxrr@protr
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\ifpxrr@any@protr}
% $BJ#?t%V%m%C%/$N=hM}$G!"$$$:$l$+$N%V%m%C%/$K%k%SJ8;zNs$NFM=P$,$"$k$+!#(B
% $B%9%$%C%A!#(B
%    \begin{macrocode}
\newif\ifpxrr@any@protr
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@locate@temp}
% |\pxrr@compose@*side@block@do| $B$G;H$o$l$k0l;~JQ?t!#(B
% $B@0?tDj?t!#(B
%    \begin{macrocode}
\let\pxrr@locate@temp\relax
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@epsilon}
% $B%k%SJ8;zNs$H?FJ8;zNs$N<+A3D9$N:9$,$3$NCM0J2<$N>l9g$O!"(B
% $B:9$O$J$$$b$N$H$_$J$9!J1i;;8m:9BP:v!K!#(B
%    \begin{macrocode}
\def\pxrr@epsilon{0.01pt}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@compose@block}
% |\pxrr@compose@block{|\jmeta{$B%Q%?!<%s(B}|}{|^^A
% \jmeta{$B?FJ8;z%V%m%C%/(B}|}{|\jmeta{$B%k%SJ8;z%V%m%C%/(B}|}|\Means
% 1$B$D$N%V%m%C%/$NAHHG=hM}!#(B
% \jmeta{$B%Q%?!<%s(B}$B$O(B |\pxrr@evenspace| $B$HF1$80UL#!#(B
% $BFM=P$,$"$k$+$r(B |\ifpxrr@protr| $B$KJV$7!"A0$H8e$NFM=P$NNL$r(B
% $B$=$l$>$l(B |\pxrr@bspace| $B$H(B |\pxrr@aspace| $B$KJV$9!#(B
%    \begin{macrocode}
\def\pxrr@compose@block#1#2#3{%
%    \end{macrocode}
% $BK\BN$NA0$K2C9)=hM}$r2pF~$5$;$k!#(B
% \Note |\pxrr@compose@block@pre| $B$O(B2$B$D$N%k%S0z?t$r<h$k!#(B
% |\pxrr@compose@block@do| $B$KK\BN%^%/%m$r(B |\let| $B$9$k!#(B
%    \begin{macrocode}
  \let\pxrr@compose@block@do\pxrr@compose@oneside@block@do
  \pxrr@compose@block@pre{#1}{#2}{#3}{}%
}
%    \end{macrocode}
% $B$3$A$i$,K\BN!#(B
%    \begin{macrocode}
% #4$B$O6u(B
\def\pxrr@compose@oneside@block@do#1#2#3#4{%
  \setbox\pxrr@boxa\pxrr@hbox{#2}%
  \edef\pxrr@ck@body@natwd{\the\wd\pxrr@boxa}%
  \let\pxrr@ck@locate\pxrr@locate@inner
  \setbox\pxrr@boxr\pxrr@hbox{%
    \pxrr@use@ruby@font
    #3%
  }%
  \@tempdima\wd\pxrr@boxr
  \advance\@tempdima-\wd\pxrr@boxa
  \ifdim\pxrr@epsilon<\@tempdima
%    \end{macrocode}
% $B%k%SJ8;zNs$NJ}$,D9$$>l9g!#(B
% $B?FJ8;zNs$r%k%SJ8;zNs$ND9$5$K9g$o$;$F6QEy3d$j$GAH$_D>$9!#(B
% |\pxrr@?space| $B$O(B |\pxrr@evenspace@int| $B$,JV$9CM$N$^$^$G$h$$!#(B
% $B!V3HD%8*IU$-!W;XDj$N>l9g!"A0B&$NFM=P$rM^;_$9$k!#(B
%    \begin{macrocode}
    \pxrr@protrtrue
    \let\pxrr@locate@temp#1%
    \ifnum\pxrr@athead>\@ne
      \ifnum\pxrr@locate@temp=\pxrr@locate@inner
        \let\pxrr@locate@temp\pxrr@locate@head
      \fi
    \fi
    \let\pxrr@ck@locate\pxrr@locate@temp
    \pxrr@decompose{#2}%
    \edef\pxrr@natwd{\the\wd\pxrr@boxa}%
    \pxrr@evenspace@int\pxrr@locate@temp\pxrr@boxa\relax
     {\wd\pxrr@boxr}%
  \else\ifdim-\pxrr@epsilon>\@tempdima
%    \end{macrocode}
% $B%k%SJ8;zNs$NJ}$,C;$$>l9g!#(B
% $B%k%SJ8;zNs$r?FJ8;zNs$ND9$5$K9g$o$;$F6QEy3d$j$GAH$_D>$9!#(B
% $B$3$N>l9g!"(B|\pxrr@maxmargin| $B$r9MN8$9$kI,MW$,$"$k!#(B
% $B$?$@$78*IU$-%k%S$N>l9g$OAH$_D>$7$r9T$o$J$$!#(B
% |\pxrr@?space| $B$O%<%m$K@_Dj$9$k!#(B
%    \begin{macrocode}
    \pxrr@protrfalse
    \ifnum\pxrr@athead=\z@
      \pxrr@decompose{#3}%
      \edef\pxrr@natwd{\the\wd\pxrr@boxr}%
      \pxrr@evenspace@int{#1}\pxrr@boxr
       \pxrr@use@ruby@font{\wd\pxrr@boxa}%
      \pxrr@adjust@margin
    \fi
    \let\pxrr@bspace\pxrr@zeropt
    \let\pxrr@aspace\pxrr@zeropt
  \else
%    \end{macrocode}
% $BN><T$ND9$5$,Ey$7$$!J$H$_$J$9!K>l9g!#(B
% $BFM=P%U%i%0$O>o$K56$K$9$k!J<B:]$K$O%k%S$NJ}$,6O$+$@$1D9$$$+$b(B
% $BCN$l$J$$$,!K!#(B
%    \begin{macrocode}
    \pxrr@protrfalse
    \let\pxrr@bspace\pxrr@zeropt
    \let\pxrr@aspace\pxrr@zeropt
  \fi\fi
%    \end{macrocode}
% $B<B:]$KAHHG$r9T$&!#(B
%    \begin{macrocode}
  \setbox\z@\hbox{%
    \ifnum\pxrr@side=\z@
      \raise\pxrr@ruby@raise\box\pxrr@boxr
    \else
      \lower\pxrr@ruby@lower\box\pxrr@boxr
    \fi
  }%
  \ifnum \ifpxrr@combo\pxrr@ck@ruby@combo\else\z@\fi >\z@
    \pxrr@ck@compose{#2}%
  \fi
  \ht\z@\z@ \dp\z@\z@
  \@tempdima\wd\z@
  \setbox\pxrr@boxr\hbox{%
    \box\z@
    \kern-\@tempdima
    \box\pxrr@boxa
  }%
%    \end{macrocode}
% |\ifpxrr@any@protr| $B$r@_Dj$9$k!#(B
%    \begin{macrocode}
  \ifpxrr@protr
    \pxrr@any@protrtrue
  \fi
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@compose@twoside@block}
% $BN>B&%k%SMQ$N%V%m%C%/9=@.!#(B
%    \begin{macrocode}
\def\pxrr@compose@twoside@block{%
  \let\pxrr@compose@block@do\pxrr@compose@twoside@block@do
  \pxrr@compose@block@pre
}
\def\pxrr@compose@twoside@block@do#1#2#3#4{%
%    \end{macrocode}
% |\pxrr@boxa| $B$K?FJ8;z!"(B|\pxrr@boxr| $B$K>eB&%k%S!"(B
% |\pxrr@boxb| $B$K2<B&%k%S$N=PNO$rJ];}$9$k!#(B
%    \begin{macrocode}
  \setbox\pxrr@boxa\pxrr@hbox{#2}%
  \edef\pxrr@ck@body@natwd{\the\wd\pxrr@boxa}%
  \let\pxrr@ck@locate\pxrr@locate@inner
  \setbox\pxrr@boxr\pxrr@hbox{%
    \pxrr@use@ruby@font
    #3%
  }%
  \setbox\pxrr@boxb\pxrr@hbox{%
    \pxrr@use@ruby@font
    #4%
  }%
%    \end{macrocode}
% $B!V2?$l$+$N%k%S$,?FJ8;zNs$h$jD9$$$+!W$r8!::$9$k!#(B
%    \begin{macrocode}
  \@tempswafalse
  \@tempdima\wd\pxrr@boxr
  \advance\@tempdima-\wd\pxrr@boxa
  \ifdim\pxrr@epsilon<\@tempdima \@tempswatrue \fi
  \@tempdima\wd\pxrr@boxb
  \advance\@tempdima-\wd\pxrr@boxa
  \ifdim\pxrr@epsilon<\@tempdima \@tempswatrue \fi
%    \end{macrocode}
% $B?FJ8;z$h$jD9$$%k%S$,B8:_$9$k>l9g!#(B
% $BD9$$J}$N%k%SJ8;zNs$ND9$5$K9g$o$;$F!"?FJ8;zNs$H(B
% $BB>J}$N%k%SJ8;zNs$rAH$_D>$9!#(B
% $B!J<B:]$N=hM}$O(B |\pxrr@compose@twoside@block@sub| $B$G9T$&!#!K(B
%    \begin{macrocode}
  \if@tempswa
    \pxrr@protrtrue
%    \end{macrocode}
% $B!V3HD%8*IU$-!W;XDj$N>l9g!"A0B&$NFM=P$rM^;_$9$k!#(B
%    \begin{macrocode}
    \let\pxrr@locate@temp#1%
    \ifnum\pxrr@athead>\@ne
      \ifnum\pxrr@locate@temp=\pxrr@locate@inner
        \let\pxrr@locate@temp\pxrr@locate@head
      \fi
    \fi
    \let\pxrr@ck@locate\pxrr@locate@temp
%    \end{macrocode}
% $B>eB&$H2<B&$N$I$A$i$N%k%S$,D9$$$+$K1~$8$F0z?t$rJQ$($F!"(B
% |\pxrr@compose@twoside@block@sub| $B$r8F$S=P$9!#(B
%    \begin{macrocode}
    \ifdim\wd\pxrr@boxr<\wd\pxrr@boxb
      \pxrr@compose@twoside@block@sub{#2}{#3}%
       \pxrr@boxr\pxrr@boxb
    \else
      \pxrr@compose@twoside@block@sub{#2}{#4}%
       \pxrr@boxb\pxrr@boxr
    \fi
%    \end{macrocode}
% $B?FJ8;z$NJ}$,D9$$>l9g!#(B
% $B?FJ8;zNs$ND9$5$K9g$o$;$F!"N>J}$N%k%S$r!JJRB&$N>l9g$HF1MM$N!K(B
% $B6QEy3d$j$GAH$_D>$9!#(B
%    \begin{macrocode}
  \else
    \pxrr@protrfalse
%    \end{macrocode}
% $B8*IU$-%k%S$N>l9g$OAH$_D>$7$r9T$o$J$$!#(B
%    \begin{macrocode}
    \ifnum\pxrr@athead=\z@
      \@tempdima\wd\pxrr@boxa
      \advance\@tempdima-\wd\pxrr@boxr
      \ifdim\pxrr@epsilon<\@tempdima
        \pxrr@decompose{#3}%
        \edef\pxrr@natwd{\the\wd\pxrr@boxr}%
        \pxrr@evenspace@int{#1}\pxrr@boxr
         \pxrr@use@ruby@font{\wd\pxrr@boxa}%
        \pxrr@adjust@margin
      \fi
      \@tempdima\wd\pxrr@boxa
      \advance\@tempdima-\wd\pxrr@boxb
      \ifdim\pxrr@epsilon<\@tempdima
        \pxrr@decompose{#4}%
        \edef\pxrr@natwd{\the\wd\pxrr@boxb}%
        \pxrr@evenspace@int{#1}\pxrr@boxb
         \pxrr@use@ruby@font{\wd\pxrr@boxa}%
        \pxrr@adjust@margin
      \fi
    \fi
%    \end{macrocode}
% |\pxrr@?space| $B$O%<%m$K@_Dj$9$k!#(B
%    \begin{macrocode}
    \let\pxrr@bspace\pxrr@zeropt
    \let\pxrr@aspace\pxrr@zeropt
  \fi
%    \end{macrocode}
% $B<B:]$KAHHG$r9T$&!#(B
%    \begin{macrocode}
  \setbox\z@\hbox{%
    \@tempdima\wd\pxrr@boxr
    \raise\pxrr@ruby@raise\box\pxrr@boxr
    \kern-\@tempdima
    \lower\pxrr@ruby@lower\box\pxrr@boxb
  }%
  \ifnum \ifpxrr@combo\pxrr@ck@ruby@combo\else\z@\fi >\z@
    \pxrr@ck@compose{#2}%
  \fi
  \ht\z@\z@ \dp\z@\z@
  \@tempdima\wd\z@
  \setbox\pxrr@boxr\hbox{%
    \box\z@
    \kern-\@tempdima
    \box\pxrr@boxa
  }%
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@body@wd}
% |\pxrr@compose@twoside@block@sub| $B$NFbIt$GMQ$$$i$l$kJQ?t$G!"(B
% $B!H?FJ8;zNs$N<B:]$ND9$5!I!J6QEy3d$j$GF~$C$?Cf4V$N6u$-$rF~$l$k$,(B
% $BN>C<$N6u$-$rF~$l$J$$!K$rI=$9!#(B
% $B@#K!CM%^%/%m!#(B
%    \begin{macrocode}
\let\pxrr@body@wd\relax
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@compose@twoside@block@sub}
% |\pxrr@compose@twoside@block@sub| $B$NFbIt$GMQ$$$i$l$k%^%/%m!#(B
%    \begin{macrocode}
\let\pxrr@restore@margin@values\relax
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@compose@twoside@block@sub}
% |\pxrr@compose@twoside@block@sub{|^^A
% \jmeta{$B?FJ8;z(B}|}{|\jmeta{$BC;$$J}$N%k%SJ8;z(B}|}\CSa\CSb|\Means
% $BN>B&%k%S$G?FJ8;zNs$h$jD9$$%k%SJ8;zNs$,B8:_$9$k>l9g$N(B
% $BAH$_D>$7$N=hM}$r9T$&!#(B
% $B$3$N%^%/%m$N8F=P;~!">eB&%k%S$N=PNO7k2L$,(B |\pxrr@boxr|$B!"(B
% $B2<B&%k%S$N=PNO7k2L$,(B |\pxrr@boxb| $B$KF~$C$F$$$k$,!"(B
% $B$3$N(B2$B$D$N%\%C%/%9$N$&$A!"C;$$%k%S$NJ}$,(B |\CSa|$B!"(B
% $BD9$$%k%S$NJ}$,(B |\CSb| $B$H$7$FEO$5$l$F$$$k!#(B
%    \begin{macrocode}
\def\pxrr@compose@twoside@block@sub#1#2#3#4{%
  \pxrr@decompose{#1}%
  \edef\pxrr@natwd{\the\wd\pxrr@boxa}%
  \pxrr@evenspace@int\pxrr@locate@temp\pxrr@boxa\relax{\wd#4}%
  \@tempdima\wd#4%
  \advance\@tempdima-\pxrr@bspace\relax
  \advance\@tempdima-\pxrr@aspace\relax
  \edef\pxrr@body@wd{\the\@tempdima}%
  \advance\@tempdima-\wd#3%
  \ifdim\pxrr@epsilon<\@tempdima
    \edef\pxrr@restore@margin@values{%
      \edef\noexpand\pxrr@bspace{\pxrr@bspace}%
      \edef\noexpand\pxrr@aspace{\pxrr@aspace}%
    }%
    \pxrr@decompose{#2}%
    \edef\pxrr@natwd{\the\wd#3}%
    \pxrr@evenspace@int\pxrr@locate@temp#3%
     \pxrr@use@ruby@font{\pxrr@body@wd}%
    \pxrr@adjust@margin
    \pxrr@restore@margin@values
    \setbox#3\hbox{%
      \kern\pxrr@bspace\relax
      \box#3%
    }%
  \else
    \ifnum\pxrr@locate@temp=\pxrr@locate@head
      \@tempdima\z@
    \else\ifnum\pxrr@locate@temp=\pxrr@locate@inner
      \@tempdima.5\@tempdima
    \fi\fi
    \advance\@tempdima\pxrr@bspace\relax
    \setbox#3\hbox{%
      \kern\@tempdima
      \box#3%
    }%
  \fi
}
%     \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@compose@block@pre}
% |\pxrr@compose@block@pre{|\jmeta{$B%Q%?!<%s(B}|}{|^^A
%r \jmeta{$B?FJ8;z(B}|}{|\jmeta{$B%k%S(B1}|}{|\jmeta{$B%k%S(B2}|}|\Means
% $B?FJ8;zNs!&%k%SJ8;zNs$N2C9)$r9T$&!#(B
% \Note $BN>B&%k%SBP1~$N$?$a!"%k%SMQ0z?t$,(B2$B$D$"$k!#(B
%    \begin{macrocode}
\def\pxrr@compose@block@pre{%
%    \end{macrocode}
% |f| $B;XDj;~$O>.=q$-2>L>$NJQ49$r;\$9!#(B
%    \begin{macrocode}
  \pxrr@cond\ifnum\pxrr@fullsize>\z@\fi{%
    \pxrr@compose@block@pre@a
  }{%
    \pxrr@compose@block@pre@d
  }%
}
% {$B%Q%?!<%s(B}{$B?FJ8;z(B}{$B%k%S(B1}{$B%k%S(B2}
\def\pxrr@compose@block@pre@a#1#2#3#4{%
  \def\pxrr@compose@block@tempa{#4}%
  \pxrr@transform@kana\pxrr@compose@block@tempa
  \expandafter\pxrr@compose@block@pre@b
   \expandafter{\pxrr@compose@block@tempa}{#1}{#2}{#3}%
}
% {$B%k%S(B2}{$B%Q%?!<%s(B}{$B?FJ8;z(B}{$B%k%S(B1}
\def\pxrr@compose@block@pre@b#1#2#3#4{%
  \def\pxrr@compose@block@tempa{#4}%
  \pxrr@transform@kana\pxrr@compose@block@tempa
  \expandafter\pxrr@compose@block@pre@c
   \expandafter{\pxrr@compose@block@tempa}{#1}{#2}{#3}%
}
% {$B%k%S(B1}{$B%k%S(B2}{$B%Q%?!<%s(B}{$B?FJ8;z(B}
\def\pxrr@compose@block@pre@c#1#2#3#4{%
  \pxrr@compose@block@pre@d{#3}{#4}{#1}{#2}%
}
\def\pxrr@compose@block@pre@d{%
  \pxrr@cond\ifnum\pxrr@evensp=\z@\fi{%
    \pxrr@compose@block@pre@e
  }{%
    \pxrr@compose@block@pre@f
  }%
}
% {$B%Q%?!<%s(B}{$B?FJ8;z(B}
\def\pxrr@compose@block@pre@e#1#2{%
  \pxrr@compose@block@pre@f{#1}{{#2}}%
}
\def\pxrr@compose@block@pre@f{%
  \pxrr@cond\ifnum\pxrr@revensp=\z@\fi{%
    \pxrr@compose@block@pre@g
  }{%
    \pxrr@compose@block@do
  }%
}
% {$B%Q%?!<%s(B}{$B?FJ8;z(B}{$B%k%S(B1}{$B%k%S(B2}
\def\pxrr@compose@block@pre@g#1#2#3#4{%
  \pxrr@compose@block@do{#1}{#2}{{#3}}{{#4}}%
}
\let\pxrr@compose@block@tempa\@undefined
%    \end{macrocode}
% \end{macro}
%
% \subsection{$BL?Na$N4h6/2=(B}
%
% \begin{macro}{\pxrr@add@protect}
% |\pxrr@add@protect\CS|\Means
% $BL?Na(B |\CS| $B$K(B |\protect| $B$r;\$7$F4h6/$J$b$N$KJQ$($k!#(B
% |\CS| $B$O:G=i$+$i(B |\DeclareRobustCommand| $B$GDj5A$5$l$?4h6/$JL?Na$H(B
% $B$[$\F1$8$h$&$K?6Iq$&(B
% $B!=!=Nc$($P!"(B|\CS| $B$NDj5A$NK\BN$O(B \verb*+\CS + $B$H$$$&@)8fDV$K(B
% $B0\$5$l$k!#(B
% $BM#0l$NAj0cE@$O!"!VAHHGCf!W(B
% $B!J$9$J$o$A(B |\protect|$\;=\;$|\@typeset@protect|$B!K$N>l9g$O!"(B
% |\CS| $B$O(B \verb*+\protect\CS + $B$G$O$J$/!"C1$J$k(B \verb*+\CS + $B$K(B
% $BE83+$5$l$k$3$H$G$"$k!#(B
% $BAHHGCf$O(B |\protect| $B$O7k6I(B |\relax| $B$G$"$k$N$G!"(B
% |\DeclareRobustCommand| $BDj5A$NL?Na$N>l9g!"(B|\relax| $B$,!V<B9T!W(B
% $B$5$l$k$3$H$K$J$k$,!"(B{p\TeX}$B$G$O$3$l$,%a%H%j%C%/%0%k!=$NA^F~$K(B
% $B43>D$9$k$N$G!"$3$N%Q%C%1!<%8$NL\E*$K1h$o$J$$$N$G$"$k!#(B
% \Note
% |\CS| $B$O!V@)8f8l!W!J@)8f5-9f$G$J$/!K$G$"$kI,MW$,$"$k!#(B
%    \begin{macrocode}
\def\pxrr@add@protect#1{%
  \expandafter\pxrr@add@protect@a
    \csname\expandafter\@gobble\string#1\space\endcsname#1%
}
\def\pxrr@add@protect@a#1#2{%
  \let#1=#2%
  \def#2{\pxrr@check@protect\protect#1}%
}
\def\pxrr@check@protect{%
  \ifx\protect\@typeset@protect
    \expandafter\@gobble
  \fi
}
%    \end{macrocode}
% \end{macro}
%
% \subsection{$BCWL?E*%(%i!<BP:v(B}
%
% $BCWL?E*%(%i!<$,5/$3$C$?>l9g$O!"%k%SF~NO$rJ|4~$7$F(B
% $BC1$K?FJ8;zNs$r=PNO$9$k$3$H$K$9$k!#(B
%
% \begin{macro}{\pxrr@body@input}
% $BF~NO$5$l$??FJ8;zNs!#(B
%    \begin{macrocode}
\let\pxrr@body@input\@empty
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@prepare@fallback}
% |\pxrr@prepare@fallback{|\jmeta{$B?FJ8;zNs(B}|}|\Means
%    \begin{macrocode}
\def\pxrr@prepare@fallback#1{%
  \pxrr@fatal@errorfalse
  \def\pxrr@body@input{#1}%
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@fallback}
% $BCWL?E*%(%i!<;~$K=PNO$H$J$k$b$N!#(B
% $BC1$K?FJ8;zNs$r=PNO$9$k$3$H$K$9$k!#(B
%    \begin{macrocode}
\def\pxrr@fallback{%
  \pxrr@body@input
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@if@alive}
% |\pxrr@if@alive{|\jmeta{$B%3!<%I(B}|}|\Means
% $BCWL?E*%(%i!<$,L$H/@8$N>l9g$K8B$j!"(B\jmeta{$B%3!<%I(B}$B$KE83+$9$k!#(B
%    \begin{macrocode}
\def\pxrr@if@alive{%
  \ifpxrr@fatal@error \expandafter\@gobble
  \else \expandafter\@firstofone
  \fi
}
%    \end{macrocode}
% \end{macro}
%
% \subsection{$B@hFI$_=hM}(B}
%
% $B%4!<%9%H=hM}$,L58z$N>l9g$K8e$mB&$N6XB'=hM}$r9T$&$?$a!"(B
% $B%k%SL?Na$ND>8e$KB3$/%H!<%/%s$r<hF@$7$F!"(B
% $B$=$NA06XB'%Z%J%k%F%#!J(B|\prebreakpenalty|$B!K$NCM$rJ]B8$9$k!#(B
% $B?.Mj@-$NDc$$J}K!$J$N$G!"%4!<%9%H=hM}$,2DG=$J>l9g$O$=$A$i$r(B
% $BMxMQ$9$k$Y$-$G$"$k!#(B
%
% \begin{macro}{\pxrr@end@kinsoku}
% $B%k%SL?NaD>8e$NJ8;z$NA06XB'%Z%J%k%F%#CM$H$_$J$9CM!#(B
%    \begin{macrocode}
\def\pxrr@end@kinsoku{0}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@ruby@scan}
% $BJRB&%k%SMQ$N@hFI$_=hM}!#(B
%    \begin{macrocode}
\def\pxrr@ruby@scan#1#2{%
%    \end{macrocode}
% |\pxrr@check@kinsoku| $B$NB3$-$N=hM}!#(B
% |\pxrr@cntr| $B$NCM$r(B |\pxrr@end@kinsoku| $B$KJ]B8$7$F!"(B
% $B%k%S=hM}K\BN$r8F$S=P$9!#(B
%    \begin{macrocode}
  \def\pxrr@tempc{%
    \edef\pxrr@end@kinsoku{\the\pxrr@cntr}%
    \pxrr@do@proc{#1}{#2}%
  }%
  \pxrr@check@kinsoku\pxrr@tempc
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@truby@scan}
% $BN>B&%k%SMQ$N@hFI$_=hM}!#(B
%    \begin{macrocode}
\def\pxrr@truby@scan#1#2#3{%
  \def\pxrr@tempc{%
    \edef\pxrr@end@kinsoku{\the\pxrr@cntr}%
    \pxrr@do@proc{#1}{#2}{#3}%
  }%
  \pxrr@check@kinsoku\pxrr@tempc
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@check@kinsoku}
% |\pxrr@check@kinsoku\CS|\Means
% |\CS| $B$ND>8e$KB3$/%H!<%/%s$K$D$$$F!"(B
% $B$=$l$,!VDL>oJ8;z!W(B
% $B!JOBJ8J8;z%H!<%/%s$^$?$O%+%F%4%j%3!<%I(B11$B!"(B12$B$N2$J8J8;z%H!<%/%s!K(B
% $B$G$"$k>l9g$K$O$=$NA06XB'%Z%J%k%F%#!J(B|\prebreakpenalty|$B!K$NCM$r!"(B
% $B$=$&$G$J$$>l9g$O%<%m$r(B |\pxrr@cntr| $B$KBeF~$9$k!#(B
% $B$=$N8e!"(B|\CS| $B$r<B9T!JE83+!K$9$k!#(B
% \Note $B$?$@$7!"2$J8%k%S$N>l9g!"2$J8J8;z$NA06XB'%Z%J%k%F%#$O(B 20000
% $B$H$7$F07$&!#(B
%    \begin{macrocode}
\def\pxrr@check@kinsoku#1{%
  \let\pxrr@tempb#1%
  \futurelet\pxrr@token\pxrr@check@kinsoku@a
}
\def\pxrr@check@kinsoku@a{%
  \pxrr@check@char\pxrr@token
%    \end{macrocode}
% $BOBJ8%k%S$N>l9g$O!"2$J8DL>oJ8;z$bOBJ8DL>oJ8;z$HF1$807$$$K$9$k!#(B
%    \begin{macrocode}
  \ifpxrr@abody\else
    \ifnum\pxrr@cntr=\@ne
      \pxrr@cntr\tw@
    \fi
  \fi
  \ifcase\pxrr@cntr
    \pxrr@cntr\z@
    \expandafter\pxrr@tempb
  \or
    \pxrr@cntr\@MM
    \expandafter\pxrr@tempb
  \else
    \expandafter\pxrr@check@kinsoku@b
  \fi
}
%    \end{macrocode}
% |\let| $B$5$l$?%H!<%/%s$N$^$^$G$OId9f0LCV$rF@$k$3$H$,$G$-$J$$(B
% $B$?$a!"2~$a$F%^%/%m$N0z?t$H$7$F<u$1<h$j!"J#@=$7$?>e$G(B
% $BJRJ}$r8e$N=hM}$K;H$&!#(B
% $B4{$K8eB3%H!<%/%s$O!VDL>oJ8;z!W$G$"$k(B
% $B!J$D$^$j6uGr$d(B |{| $B$G$O$J$$!K$3$H$,H=L@$7$F$$$k$3$H$KCm0U!#(B
%    \begin{macrocode}
\def\pxrr@check@kinsoku@b#1{%
  \pxrr@check@kinsoku@c#1#1%
}
\def\pxrr@check@kinsoku@c#1{%
  \pxrr@get@prebreakpenalty\pxrr@cntr{`#1}%
  \pxrr@tempb
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@check@char}
% |\pxrr@check@char\CS|\Means
% $B%H!<%/%s(B |\CS| $B$,!VDL>oJ8;z!W$G$"$k$+$rD4$Y!"0J2<$NCM$r(B |\pxrr@cntr|
% $B$KJV$9!'(B 0 = $BDL>oJ8;z$G$J$$!((B1 = $B2$J8DL>oJ8;z!((B2 = $BOBJ8DL>oJ8;z!#(B
%
% $BDj5AK\BN$NCf$G%+%F%4%j%3!<%I(B12$B$N(B |kanji| $B$H$$$&%H!<%/%sNs$,(B
% $BI,MW$J$N$G!">/!9FC<l$J=hCV$r$7$F$$$k!#(B
% $B$^$:(B |\pxrr@check@char| $B$rDj5A$9$k$?$a$N%^%/%m$rMQ0U$9$k!#(B
%    \begin{macrocode}
\def\pxrr@tempa#1#2\pxrr@nil{%
%    \end{macrocode}
% $B<B:]$K8F$S=P$5$l$k;~$K$O(B |#2| $B$O%+%F%4%j%3!<%I(B12$B$N(B |kanji| $B$K(B
% $BCV$-49$o$k!#(B
% $B!JITMW$J(B |\| $B$r(B |#1| $B$K<u$1<h$i$;$F$$$k!#!K(B
%    \begin{macrocode}
  \def\pxrr@check@char##1{%
%    \end{macrocode}
% $B$^$:@)8fDV$H%+%F%4%j%3!<%I(B11$B!"(B12$B!"(B13$B$r<jAa$/(B |\ifcat| $B$G(B
% $BH=Dj$9$k!#(B
%    \begin{macrocode}
    \ifcat\noexpand##1\relax
      \pxrr@cntr\z@
    \else\ifcat\noexpand##1\noexpand~%
      \pxrr@cntr\z@
    \else\ifcat\noexpand##1A%
      \pxrr@cntr\@ne
    \else\ifcat\noexpand##10%
      \pxrr@cntr\@ne
    \else
%    \end{macrocode}
% $B$=$l0J30$N>l9g!#(B
% $BOBJ8J8;z%H!<%/%s$G$"$k$+$r(B |\meaning| $B%F%9%H$GD4$Y$k!#(B
% $B!JOBJ8J8;z$N(B |\ifcat| $BH=Dj$O?'!9$HLLE]$JE@$,$"$k$N$GHr$1$k!#!K(B
%    \begin{macrocode}
      \pxrr@cntr\z@
      \expandafter\pxrr@check@char@a\meaning##1#2\pxrr@nil
    \fi\fi\fi\fi
  }%
  \def\pxrr@check@char@a##1#2##2\pxrr@nil{%
    \ifcat @##1@%
      \pxrr@cntr\tw@
    \fi
  }%
}
%    \end{macrocode}
% $B5,Dj$N0z?t$rMQ0U$7$F!VDj5A%^%/%m!W$r8F$V!#(B
%    \begin{macrocode}
\expandafter\pxrr@tempa\string\kanji\pxrr@nil
%    \end{macrocode}
% \end{macro}
%
% \subsection{$B?JF~=hM}(B}
%
% \begin{macro}{\pxrr@auto@penalty}
% $B<+F0A^F~$5$l$k%Z%J%k%F%#!#(B
% $B!J@0?tDj?t$X$N(B |\let|$B!#!K(B
%    \begin{macrocode}
\let\pxrr@auto@penalty\z@
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@auto@icspace}
% $BJ8;z4V$N6u$-!#(B
% $B@#K!CM%^%/%m!#(B
%    \begin{macrocode}
\let\pxrr@auto@icspace\pxrr@zeropt
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@intr@amount}
% $B?JF~$NI}!#(B
% $B@#K!CM%^%/%m!#(B
%    \begin{macrocode}
\let\pxrr@intr@amount\pxrr@zeropt
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@intrude@setauto@j}
% $BOBJ8$N>l9g$N(B |\pxrr@auto@*| $B$N@_Dj!#(B
%    \begin{macrocode}
\def\pxrr@intrude@setauto@j{%
%    \end{macrocode}
% $B9TJ,3d6X;_!J(B|*|$B!K$N>l9g!"(B
% $B%Z%J%k%F%#$r(B 20000 $B$H$7!";z4V6u$-$O%<%m$K$9$k!#(B
%    \begin{macrocode}
  \ifpxrr@bnobr
    \let\pxrr@auto@penalty\@MM
    \let\pxrr@auto@icspace\pxrr@zeropt
%    \end{macrocode}
% $B$=$l0J30$N>l9g$O!"%Z%J%k%F%#$O%<%m$G!"(B
% |\pxrr@bspace| $B$N@_Dj$r3h$+$9!#(B
%    \begin{macrocode}
  \else
    \let\pxrr@auto@penalty\z@
    \if :\pxrr@bscomp
      \let\pxrr@auto@icspace\pxrr@iaiskip
    \else\if .\pxrr@bscomp
      \let\pxrr@auto@icspace\pxrr@zeropt
    \else
      \let\pxrr@auto@icspace\pxrr@iiskip
    \fi\fi
  \fi
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@intrude@setauto@a}
% $B2$J8$N>l9g$N(B |\pxrr@auto@*| $B$N@_Dj!#(B
%    \begin{macrocode}
\def\pxrr@intrude@setauto@a{%
%    \end{macrocode}
% $B2$J8$N>l9g!"OB2$J84V6uGrA^F~;XDj!J(B|:|$B!K$G$J$$>l9g$O!"(B
% $B!J2$J8F1;N$H8+Pv$7$F!K9TJ,3d6X;_$K$9$k!#(B
%    \begin{macrocode}
  \if :\pxrr@bscomp\else
    \pxrr@bnobrtrue
  \fi
  \ifpxrr@bnobr
    \let\pxrr@auto@penalty\@MM
    \let\pxrr@auto@icspace\pxrr@zeropt
  \else
%    \end{macrocode}
% $B$3$NJ,4t$OOB2$J84V6uGrA^F~;XDj!J(B|:|$B!K$K8B$k!#(B
%    \begin{macrocode}
    \let\pxrr@auto@penalty\z@
    \let\pxrr@auto@icspace\pxrr@iaiskip
  \fi
}
%    \end{macrocode}
% \end{macro}
%
% \subsubsection{$BA0B&?JF~=hM}(B}
%
% \begin{macro}{\pxrr@intrude@head}
% $BA0B&$N?JF~=hM}!#(B
%    \begin{macrocode}
\def\pxrr@intrude@head{%
%    \end{macrocode}
% $B%4!<%9%H=hM}$,M-8z$J>l9g$O?JF~=hM}$r9T$o$J$$!#(B
% $B!J$@$+$i?JF~$,07$($J$$!#!K(B
%    \begin{macrocode}
  \ifpxrr@ghost\else
%    \end{macrocode}
% $B<B8z$N?JF~I}$O(B |\pxrr@bintr| $B$H(B |\pxrr@bspace| $B$N>.$5$$J}!#(B
%    \begin{macrocode}
    \let\pxrr@intr@amount\pxrr@bspace
    \ifdim\pxrr@bintr<\pxrr@intr@amount\relax
      \let\pxrr@intr@amount\pxrr@bintr
    \fi
%    \end{macrocode}
% |\pxrr@auto@*| $B$N@_DjK!$OOBJ8%k%S$H2$J8%k%S$G=hM}$,0[$J$k!#(B
%    \begin{macrocode}
    \ifpxrr@abody
      \pxrr@intrude@setauto@a
    \else
      \pxrr@intrude@setauto@j
    \fi
%    \end{macrocode}
% $B<B:]$K9`L\$N=PNO$r9T$&!#(B
%
% $BCJMnKAF,$N>l9g!"(B|!| $B;XDj!J(B|pxrr@bfintr| $B$,??!K$J$i$P?JF~$N$?$a$N(B
% $BIi$N%0%k!=$rF~$l$k!JB>$N9`L\$OF~$l$J$$!K!#(B
%    \begin{macrocode}
    \ifpxrr@par@head
      \ifpxrr@bfintr
        \hskip-\pxrr@intr@amount\relax
      \fi
%    \end{macrocode}
% $BCJMnKAF,$G$J$$>l9g!";z4V6u$-$N%0%k!=!"?JF~MQ$N%0%k!=$r(B
% $B=gHV$KF~$l$k!#(B
% \Note $B%Z%J%k%F%#$O(B |\pxrr@put@head@penalty| $B$G4{$KF~$l$F$$$k!#(B
%    \begin{macrocode}
    \else
%     \penalty\pxrr@auto@penalty\relax
      \hskip-\pxrr@intr@amount\relax
      \hskip\pxrr@auto@icspace\relax
    \fi
  \fi
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@put@head@penalty}
% $BA0B&$KJd=u;XDj$GDj$a$i$l$?CM$N%Z%J%k%F%#$rCV$/!#(B
% $B8=:_0LCV$K4{$K%Z%J%k%F%#$,$"$k>l9g$O9g;;$9$k!#(B
%    \begin{macrocode}
\def\pxrr@put@head@penalty{%
  \ifpxrr@ghost\else \ifpxrr@par@head\else
    \ifpxrr@abody
      \pxrr@intrude@setauto@a
    \else
      \pxrr@intrude@setauto@j
    \fi
    \ifnum\pxrr@auto@penalty=\z@\else
      \pxrr@cnta\lastpenalty \unpenalty
      \advance\pxrr@cnta\pxrr@auto@penalty\relax
      \penalty\pxrr@cnta
    \fi
  \fi\fi
}
%    \end{macrocode}
% \end{macro}
%
% \subsubsection{$B8eB&?JF~=hM}(B}
%
% \begin{macro}{\pxrr@intrude@end}
% $BKvHx$G$N?JF~=hM}!#(B
%    \begin{macrocode}
\def\pxrr@intrude@end{%
  \ifpxrr@ghost\else
%    \end{macrocode}
% $B<B8z$N?JF~I}$O(B |\pxrr@aintr| $B$H(B |\pxrr@aspace| $B$N>.$5$$J}!#(B
%    \begin{macrocode}
    \let\pxrr@intr@amount\pxrr@aspace
    \ifdim\pxrr@aintr<\pxrr@intr@amount\relax
      \let\pxrr@intr@amount\pxrr@aintr
    \fi
%    \end{macrocode}
% |\pxrr@auto@*| $B$N@_DjK!$OOBJ8%k%S$H2$J8%k%S$G=hM}$,0[$J$k!#(B
%    \begin{macrocode}
    \pxrr@csletcs{ifpxrr@bnobr}{ifpxrr@anobr}%
    \let\pxrr@bscomp\pxrr@ascomp
    \ifpxrr@abody
      \pxrr@intrude@setauto@a
    \else
      \pxrr@intrude@setauto@j
    \fi
%    \end{macrocode}
% $BD>8e$NJ8;z$NA06XB'%Z%J%k%F%#$,!"A^F~$5$l$k%0%k!<$NA0$K(B
% $BF~$k$h$&$K$9$k!#(B
%    \begin{macrocode}
    \ifnum\pxrr@auto@penalty=\z@
      \let\pxrr@auto@penalty\pxrr@end@kinsoku
    \fi
    \ifpxrr@afintr
%    \end{macrocode}
% $BCJMnKvHx$G$N?JF~$r5v$9>l9g!#(B
%    \begin{macrocode}
      \ifnum\pxrr@auto@penalty=\z@\else
        \penalty\pxrr@auto@penalty\relax
      \fi
      \kern-\pxrr@intr@amount\relax
%    \end{macrocode}
% $BCJMnKvHx$G$O<!$N%0%k!=$r>CLG$5$;$k!JA0$N%+!<%s$O;D$k!K!#(B
% $B$=$N$?$a!"6XB'%Z%J%k%F%#$,$"$k!JCJMnKvHx$G$O$"$jF@$J$$!K>l9g$K$N$_(B
% $B$=$N<!$N%Z%J%k%F%#(B20000$B$rCV$/!#(B
% $BK\J*$N6XB'%Z%J%k%F%#$O$3$l$K2C;;$5$l$k$,!"9g7WCM$O(B 10000 $B0J>e$K$J$k(B
% $B$N$G$3$N0LCV$G$N9TJ,3d$,6X;_$5$l$k!#(B
%    \begin{macrocode}
      \hskip\pxrr@auto@icspace\relax
      \ifnum\pxrr@auto@penalty=\z@\else
        \penalty\@MM
      \fi
    \else
%    \end{macrocode}
% $BCJMnKvHx$G$N?JF~$r5v$5$J$$>l9g!#(B
%    \begin{macrocode}
      \@tempskipa-\pxrr@intr@amount\relax
      \advance\@tempskipa\pxrr@auto@icspace\relax
      \ifnum\pxrr@auto@penalty=\z@\else
        \penalty\pxrr@auto@penalty\relax
      \fi
      \hskip\@tempskipa
      \ifnum\pxrr@auto@penalty=\z@\else
        \penalty\@MM
      \fi
    \fi
  \fi
}
%    \end{macrocode}
% \end{macro}
%
% \subsection{$B%a%$%s$G$9(B}
%
% \subsubsection{$B%(%s%H%j!<%]%$%s%H(B}
%
% \begin{macro}{\ruby}
% \begin{macro}{\jruby}
% $BOBJ8%k%S$N8x3+L?Na!#(B
% |\jruby| $B$r4h6/$JL?Na$H$7$FDj5A$7$?>e$G!"(B|\ruby| $B$O$=$l$K(B
% $BE83+$5$l$k%^%/%m$K!JL$Dj5A$J$i$P!KDj5A$9$k!#(B
%    \begin{macrocode}
\AtBeginDocument{%
  \providecommand*{\ruby}{\jruby}%
}
\newcommand*{\jruby}{%
  \pxrr@jprologue
  \pxrr@trubyfalse
  \pxrr@ruby
}
%    \end{macrocode}
% $B4h6/$K$9$k$?$a$K!"@h$KDj5A$7$?(B |\pxrr@add@protect| $B$rMQ$$$k!#(B
%    \begin{macrocode}
\pxrr@add@protect\jruby
%    \end{macrocode}
% \end{macro}
% \end{macro}
%
% \begin{macro}{\aruby}
% $B2$J8%k%S$N8x3+L?Na!#(B
% $B$3$A$i$b4h6/$JL?Na$K$9$k!#(B
%    \begin{macrocode}
\newcommand*{\aruby}{%
  \pxrr@aprologue
  \pxrr@trubyfalse
  \pxrr@ruby
}
\pxrr@add@protect\aruby
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\truby}
% $BOBJ8N>B&%k%S$N8x3+L?Na!#(B
%    \begin{macrocode}
\newcommand*{\truby}{%
  \pxrr@jprologue
  \pxrr@trubytrue
  \pxrr@ruby
}
\pxrr@add@protect\truby
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\atruby}
% $B2$J8N>B&%k%S$N8x3+L?Na!#(B
%    \begin{macrocode}
\newcommand*{\atruby}{%
  \pxrr@aprologue
  \pxrr@trubytrue
  \pxrr@ruby
}
\pxrr@add@protect\atruby
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\ifpxrr@truby}
% $BN>B&%k%S$G$"$k$+!#(B
% $B%9%$%C%A!#(B
% |\pxrr@parse@option| $B$G(B |\pxrr@side| $B$rE,@Z$K@_Dj$9$k(B
% $B$?$a$K;H$o$l$k!#(B
%    \begin{macrocode}
\newif\ifpxrr@truby
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@option}
% \begin{macro}{\pxrr@exoption}
% $B%*%W%7%g%s$*$h$SBh(B2$B%*%W%7%g%s$r3JG<$9$k%^%/%m!#(B
%    \begin{macrocode}
\let\pxrr@option\@empty
\let\pxrr@exoption\@empty
%    \end{macrocode}
% \end{macro}
% \end{macro}
%
% \begin{macro}{\pxrr@do@proc}
% \begin{macro}{\pxrr@do@scan}
% |\pxrr@ruby| $B$N=hM}Cf$K;H$o$l$k!#(B
%    \begin{macrocode}
\let\pxrr@do@proc\@empty
\let\pxrr@do@scan\@empty
%    \end{macrocode}
% \end{macro}
% \end{macro}
%
% \begin{macro}{\pxrr@ruby}
% |\ruby| $B$*$h$S(B |\aruby| $B$N6&DL$N2<@A$1!#(B
% $B%*%W%7%g%s$N=hM}$r9T$&!#(B
%
% $B%*%W%7%g%s$rFI$_%^%/%m$K3JG<$9$k!#(B
%    \begin{macrocode}
\def\pxrr@ruby{%
  \@testopt\pxrr@ruby@a{}%
}
\def\pxrr@ruby@a[#1]{%
  \def\pxrr@option{#1}%
  \@testopt\pxrr@ruby@b{}%
}
\def\pxrr@ruby@b[#1]{%
  \def\pxrr@exoption{#1}%
  \ifpxrr@truby
    \let\pxrr@do@proc\pxrr@truby@proc
    \let\pxrr@do@scan\pxrr@truby@scan
  \else
    \let\pxrr@do@proc\pxrr@ruby@proc
    \let\pxrr@do@scan\pxrr@ruby@scan
  \fi
  \pxrr@ruby@c
}
\def\pxrr@ruby@c{%
  \ifpxrr@ghost
    \expandafter\pxrr@do@proc
  \else
    \expandafter\pxrr@do@scan
  \fi
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@mode@is@switching}
% |\if\pxrr@mode@is@switching{|\jmeta{$B4pK\%b!<%I(B}|}| $B$N7A$N(B
% if$BJ8$H$7$F;H$&!#(B
% $B%b!<%I$,!HA*BrE*!I!J(B|M|$B!&(B|J|$B!K$G$"$k$+!#(B
%    \begin{macrocode}
\def\pxrr@mode@is@switching{%
  \if      M\pxrr@mode T%
  \else\if J\pxrr@mode T%
  \else F%
  \fi\fi T%
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@bind@param}
% $B!H8F=P;~JQ?t!I$X$N%3%T!<$r9T$&!#(B
%    \begin{macrocode}
\def\pxrr@bind@param{%
%    \end{macrocode}
% $B7wE@%k%SF1;~IU2C%U%i%0$N=hM}!#(B
% $B7wE@B&$,;XDj$7$?(B |apply@combo| $B$NCM$r!H8F=P;~%Q%i%a%?!I$N(B |pxrr@combo| $B$K(B
% $B0\F0$5$;$k!#(B
%    \begin{macrocode}
  \ifpxrr@apply@combo
    \pxrr@apply@combofalse
    \pxrr@combotrue
    \pxrr@ck@bind@param
  \else
    \pxrr@combofalse
  \fi
  \let\pxrr@c@ruby@font\pxrr@ruby@font
  \let\pxrr@c@size@ratio\pxrr@size@ratio
  \let\pxrr@c@inter@gap\pxrr@inter@gap
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@ruby@proc}
% |\pxrr@ruby@proc{|\jmeta{$B?FJ8;zNs(B}|}{|\jmeta{$B%k%SJ8;zNs(B}|}|\Means
% $B$3$l$,<jB3$NK\BN$H$J$k!#(B
%    \begin{macrocode}
\def\pxrr@ruby@proc#1#2{%
  \pxrr@prepare@fallback{#1}%
%    \end{macrocode}
% $B%U%)%s%H%5%$%:$NJQ?t$r@_Dj$7$F!"(B
%    \begin{macrocode}
  \pxrr@bind@param
  \pxrr@assign@fsize
%    \end{macrocode}
% $B%*%W%7%g%s$r2r@O$9$k!#(B
%    \begin{macrocode}
  \pxrr@parse@option\pxrr@option
%    \end{macrocode}
% $B%k%SJ8;zF~NO$r%0%k!<%WNs$KJ,2r$9$k!#(B
%    \begin{macrocode}
  \pxrr@decompbar{#2}%
  \let\pxrr@ruby@list\pxrr@res
  \edef\pxrr@ruby@count{\the\pxrr@cntr}%
  \let\pxrr@sruby@list\relax
%    \end{macrocode}
% $B?FJ8;zF~NO$r%0%k!<%WNs$KJ,2r$9$k!#(B
%    \begin{macrocode}
  \pxrr@decompbar{#1}%
  \let\pxrr@body@list\pxrr@res
  \edef\pxrr@body@count{\the\pxrr@cntr}%
%    \end{macrocode}
% $B0BA4%b!<%I$K4X$9$k=hM}$r9T$&!#(B
%    \begin{macrocode}
  \ifpxrr@safe@mode
    \pxrr@setup@safe@mode
  \fi
%    \end{macrocode}
% $B%b!<%I$,!HA*BrE*!I$G$"$k>l9g!"!HIaDL$N!I%b!<%I(B
% $B!J(B|m|$B!&(B|j|$B!&(B|g|$B!K$K5"Ce$5$;$k!#(B
%    \begin{macrocode}
  \if\pxrr@mode@is@switching
    \pxrr@resolve@mode
  \fi
\ifpxrrDebug
  \pxrr@debug@show@input
\fi
%    \end{macrocode}
% $BF~NO8!::$r9T$$!"%Q%9$7$?>l9g$OAHHG=hM}$K?J$`!#(B
%    \begin{macrocode}
  \pxrr@if@alive{%
    \if g\pxrr@mode
      \pxrr@ruby@check@g
      \pxrr@if@alive{%
        \ifnum\pxrr@body@count>\@ne
          \pxrr@ruby@main@mg
        \else
          \pxrr@ruby@main@g
        \fi
      }%
    \else
      \pxrr@ruby@check@m
      \pxrr@if@alive{\pxrr@ruby@main@m}%
    \fi
  }%
%    \end{macrocode}
% $B8e=hM}$r9T$&!#(B
%    \begin{macrocode}
  \pxrr@ruby@exit
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@truby@proc}
% |\pxrr@ruby@proc{|\jmeta{$B?FJ8;zNs(B}|}{|\jmeta{$B>eB&%k%SJ8;zNs(B}^^A
% |}{|\jmeta{$B2<B&%k%SJ8;zNs(B}|}|\Means
% $BN>B&%k%S$N>l9g$N<jB3$NK\BN!#(B
%    \begin{macrocode}
\def\pxrr@truby@proc#1#2#3{%
  \pxrr@prepare@fallback{#1}%
%    \end{macrocode}
% $B%U%)%s%H%5%$%:$NJQ?t$r@_Dj$7$F!"(B
%    \begin{macrocode}
  \pxrr@bind@param
  \pxrr@assign@fsize
%    \end{macrocode}
% $B%*%W%7%g%s$r2r@O$9$k!#(B
%    \begin{macrocode}
  \pxrr@parse@option\pxrr@option
%    \end{macrocode}
% $BN>B&$N%0%k!<%W%k%S$G$O(B |pxrr@all@input| $B$rMxMQ$9$k$N$G!"(B
% $BF~NOJ8;zNs$r@_Dj$9$k!#(B
%    \begin{macrocode}
  \def\pxrr@all@input{{#1}{#2}{#3}}%
%    \end{macrocode}
% $BF~NOJ8;zNs$N%0%k!<%WJ,2r$r9T$&!#(B
%    \begin{macrocode}
  \pxrr@decompbar{#3}%
  \let\pxrr@sruby@list\pxrr@res
  \edef\pxrr@sruby@count{\the\pxrr@cntr}%
  \pxrr@decompbar{#2}%
  \let\pxrr@ruby@list\pxrr@res
  \edef\pxrr@ruby@count{\the\pxrr@cntr}%
  \pxrr@decompbar{#1}%
  \let\pxrr@body@list\pxrr@res
  \edef\pxrr@body@count{\the\pxrr@cntr}%
%    \end{macrocode}
% $B0BA4%b!<%I$K4X$9$k=hM}$r9T$&!#(B
%    \begin{macrocode}
  \ifpxrr@safe@mode
    \pxrr@setup@safe@mode
  \fi
  \if\pxrr@mode@is@switching
    \pxrr@resolve@mode
  \fi
\ifpxrrDebug
  \pxrr@debug@show@input
\fi
%    \end{macrocode}
% $BF~NO8!::$r9T$$!"%Q%9$7$?>l9g$OAHHG=hM}$K?J$`!#(B
%    \begin{macrocode}
  \pxrr@if@alive{%
    \if g\pxrr@mode
      \pxrr@ruby@check@tg
      \pxrr@if@alive{\pxrr@ruby@main@tg}%
    \else
      \pxrr@ruby@check@tm
      \pxrr@if@alive{\pxrr@ruby@main@tm}%
    \fi
  }%
%    \end{macrocode}
% $B8e=hM}$r9T$&!#(B
%    \begin{macrocode}
  \pxrr@ruby@exit
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@setup@safe@mode}
% $B0BA4%b!<%IMQ$N@_Dj!#(B
%    \begin{macrocode}
\def\pxrr@setup@safe@mode{%
%    \end{macrocode}
% $BC1=c%0%k!<%W%k%S$K6/@)E*$KJQ99$9$k!#(B
% $B$3$l$K1~$8$F!"?FJ8;zNs$H%k%SJ8;zNs$N%0%k!<%W$r(B1$B$D$K=8@.$9$k!#(B
%    \begin{macrocode}
  \let\pxrr@mode=g\relax
  \pxrr@unite@group\pxrr@body@list
  \def\pxrr@body@count{1}%
  \pxrr@unite@group\pxrr@ruby@list
  \def\pxrr@ruby@count{1}%
  \ifx\pxrr@sruby@list\relax\else
    \pxrr@unite@group\pxrr@sruby@list
    \def\pxrr@sruby@count{1}%
  \fi
%    \end{macrocode}
% $B!HJ8;zC10L$N%9%-%c%s!I$,I,MW$J5!G=$rL58z$K$9$k!#(B
%    \begin{macrocode}
  \chardef\pxrr@evensp\z@
  \chardef\pxrr@revensp\z@
  \chardef\pxrr@fullsize\z@
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@resolve@mode}
% $B4pK\%b!<%I$,!HA*BrE*!I!J(B|M|$B!&(B|J|$B!K$G$"$k>l9g$K!">u67$K1~$8$F(B
% $BE,@Z$JDL>o$N%b!<%I$K@Z$jBX$($k!#(B
%    \begin{macrocode}
\def\pxrr@resolve@mode{%
  \ifnum\pxrr@body@count=\@ne
%    \end{macrocode}
% $B%k%S%0%k!<%W$,(B1$B$D$G?FJ8;z$,J#?t$"$k>l9g$K$O%0%k!<%W%k%S$rA*Br$7!"(B
%    \begin{macrocode}
    \ifnum\pxrr@ruby@count=\@ne
      \let\pxrr@pre\pxrr@decompose
      \let\pxrr@post\relax
      \pxrr@body@list
      \ifnum\pxrr@cntr=\@ne\else
        \let\pxrr@mode=g%
      \fi
    \fi
%    \end{macrocode}
% $B$=$l0J30$O%b%N%k%S!&=O8l%k%S$rA*Br$9$k!#(B
%    \begin{macrocode}
    \if M\pxrr@mode \let\pxrr@mode=m\fi
    \if J\pxrr@mode \let\pxrr@mode=j\fi
\ifpxrrDebug
  \pxrr@debug@show@resolve@mode
\fi
%    \end{macrocode}
% |\pxrr@check@option| $B$G9T$C$F$$$kD4@0$r$d$jD>$9!#(B
%    \begin{macrocode}
    \if g\pxrr@mode
      \chardef\pxrr@athead\z@
    \fi
    \if g\pxrr@mode\else
      \chardef\pxrr@evensp\@ne
    \fi
  \else
    \pxrr@fatal@bad@switching
  \fi
}
%    \end{macrocode}
% \end{macro}
%
% \subsubsection{$BF~NO8!::(B}
%
% $B%0%k!<%W!&J8;z$N8D?t$N8!::$r9T$&<jB3!#(B
%
% \begin{macro}{\pxrr@ruby@check@g}
% $B%0%k!<%W%k%S$N>l9g!"%k%SJ8;z%0%k!<%W$H?FJ8;z%0%k!<%W$N8D?t$,(B
% $B0lCW$9$kI,MW$,$"$k!#(B
% $B$5$i$K!"%0%k!<%W$,J#?t!J2DF0%0%k!<%W%k%S!K$K$G$-$k$N$O!"(B
% $BOBJ8%k%S$G$"$j!"(B
% $B$7$+$b3HD%5!G=$,M-8z$G$"$k>l9g$K8B$i$l$k!#(B
%    \begin{macrocode}
\def\pxrr@ruby@check@g{%
  \ifnum\pxrr@body@count=\pxrr@ruby@count\relax
    \ifnum\pxrr@body@count=\@ne\else
      \ifpxrr@abody
        \pxrr@fatal@bad@movable
      \else\ifnum\pxrr@extra=\z@
        \pxrr@fatal@na@movable
      \fi\fi
    \fi
  \else
    \pxrr@fatal@bad@length\pxrr@body@count\pxrr@ruby@count
  \fi
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@ruby@check@m}
% $B%b%N%k%S!&=O8l%k%S$N>l9g!"?FJ8;zNs$OC10l$N%0%k!<%W$+$i$J$k(B
% $BI,MW$,$"$k!#(B
% $B$5$i$K!"?FJ8;zNs$N!TJ8;z!U$N8D?t$H%k%SJ8;zNs$N%0%k!<%W$N8D?t$,(B
% $B0lCW$9$kI,MW$,$"$k!#(B
%    \begin{macrocode}
\def\pxrr@ruby@check@m{%
  \ifnum\pxrr@body@count=\@ne
%    \end{macrocode}
% $B$3$3$G(B |\pxrr@body@list|$B!?(B|count| $B$rJ8;z$4$H$NJ,2r$KCV$-49$($k!#(B
%    \begin{macrocode}
    \let\pxrr@pre\pxrr@decompose
    \let\pxrr@post\relax
    \pxrr@body@list
    \let\pxrr@body@list\pxrr@res
    \edef\pxrr@body@count{\the\pxrr@cntr}%
    \ifnum\pxrr@body@count=\pxrr@ruby@count\relax\else
      \pxrr@fatal@bad@length\pxrr@body@count\pxrr@ruby@count
    \fi
  \else
    \pxrr@fatal@bad@mono
  \fi
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@ruby@check@tg}
% $BN>B&$N%0%k!<%W%k%S$N>l9g!#(B
% $B%k%S$,(B2$B$D$"$k$3$H$r=|$-!"JRB&$N>l9g$HF1$8!#(B
%    \begin{macrocode}
\def\pxrr@ruby@check@tg{%
  \ifnum\pxrr@body@count=\pxrr@ruby@count\relax\else
    \pxrr@fatal@bad@length\pxrr@body@count\pxrr@ruby@count
  \fi
  \ifnum\pxrr@body@count=\pxrr@sruby@count\relax\else
    \pxrr@fatal@bad@length\pxrr@body@count\pxrr@sruby@count
  \fi
  \pxrr@if@alive{%
    \ifnum\pxrr@body@count=\@ne\else
      \ifpxrr@abody
        \pxrr@fatal@bad@movable
      \else\ifnum\pxrr@extra=\z@
        \pxrr@fatal@na@movable
      \fi\fi
    \fi
  }%
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@ruby@check@tm}
% $BN>B&$N%b%N%k%S$N>l9g!#(B
% $B%k%S$,(B2$B$D$"$k$3$H$r=|$-!"JRB&$N>l9g$HF1$8!#(B
%    \begin{macrocode}
\def\pxrr@ruby@check@tm{%
  \ifnum\pxrr@body@count=\@ne
    \let\pxrr@pre\pxrr@decompose
    \let\pxrr@post\relax
    \pxrr@body@list
    \let\pxrr@body@list\pxrr@res
    \edef\pxrr@body@count{\the\pxrr@cntr}%
    \ifnum\pxrr@body@count=\pxrr@ruby@count\relax\else
      \pxrr@fatal@bad@length\pxrr@body@count\pxrr@ruby@count
    \fi
    \ifnum\pxrr@body@count=\pxrr@sruby@count\relax\else
      \pxrr@fatal@bad@length\pxrr@body@count\pxrr@sruby@count
    \fi
  \else
    \pxrr@fatal@bad@mono
  \fi
}
%    \end{macrocode}
% \end{macro}
%
% \subsubsection{$B%k%SAHHG=hM}(B}
%
% \begin{macro}{\ifpxrr@par@head}
% $B%k%SIUJ8;zNs$N=PNO0LCV$,CJMn$N@hF,$G$"$k$+!#(B
%    \begin{macrocode}
\newif\ifpxrr@par@head
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@check@par@head}
% $B8=:_$N0LCV$K4p$E$$$F(B |\ifpxrr@par@head| $B$NCM$r@_Dj$9$k!#(B
% $BEvA3!"2?$i$+$N=PNO$r9T$&A0$K8F$VI,MW$,$"$k!#(B
%    \begin{macrocode}
\def\pxrr@check@par@head{%
  \ifvmode
    \pxrr@par@headtrue
  \else
    \pxrr@par@headfalse
  \fi
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@if@last}
% |\pxrr@if@last{|\jmeta{$B??(B}|}{|\jmeta{$B56(B}|}|\Means
% |\pxrr@pre/inter| $B$NK\BN$H$7$F;H$$!"$=$l$,:G8e$N(B |\pxrr@pre/inter|
% $B$G$"$k!J(B|\pxrr@post| $B$ND>A0$K$"$k!K>l9g$K(B\jmeta{$B??(B}$B!"$J$$>l9g$K(B
% \jmeta{$B56(B}$B$KE83+$5$l$k!#(B
% $B$3$N%^%/%m$N8F=P$O(B |\pxrr@preinterpre| $B$NK\BN$NKvHx$G$J$1$l$P$J$i$J$$!#(B
%    \begin{macrocode}
\def\pxrr@if@last#1#2#3{%
  \ifx#3\pxrr@post #1%
  \else #2%
  \fi
  #3%
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@inter@mono}
% $B%b%N%k%S$N%V%m%C%/4V$KA^F~$5$l$k6u$-!#(B
% $BOBJ84V6uGr$H$9$k!#(B
%    \begin{macrocode}
\def\pxrr@inter@mono{%
  \hskip\pxrr@iiskip\relax
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@takeout@any@protr}
% |\ifpxrr@any@protr| $B$NCM$r(B |\pxrr@hbox| $B$N30$K=P$9!#(B
% \Note
% color $BIT;HMQ;~$O(B |\hbox| $B$K$h$k(B 1 $BCJ$N%0%k!<%W$@$1=hM}$9$l$P(B
% $B$h$$$,!"(Bcolor $B;HMQ;~$O(B |\color@begingroup|$B!A(B|\color@endgroup|
% $B$K$h$k%0%k!<%W$,@8$8$k$N$G!"(B2 $BCJJ,$N=hM}$,I,MW!#(B
%
% color $BIT;HMQ;~$NDj5A!#(B
%    \begin{macrocode}
\def\pxrr@takeout@any@protr@nocolor{%
  \ifpxrr@any@protr
    \aftergroup\pxrr@any@protrtrue
  \fi
}
%    \end{macrocode}
% color $B;HMQ;~$NDj5A!#(B
%    \begin{macrocode}
\def\pxrr@takeout@any@protr{%
  \ifpxrr@any@protr
    \aftergroup\pxrr@takeout@any@protr@a
  \fi
}
\def\pxrr@takeout@any@protr@a{%
  \aftergroup\pxrr@any@protrtrue
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@ruby@main@m}
% $B%b%N%k%S!#(B
%    \begin{macrocode}
\def\pxrr@ruby@main@m{%
  \pxrr@zip@list\pxrr@body@list\pxrr@ruby@list
  \let\pxrr@whole@list\pxrr@res
  \pxrr@check@par@head
  \pxrr@put@head@penalty
  \pxrr@any@protrfalse
\ifpxrrDebug
\pxrr@debug@show@recomp
\fi
%    \end{macrocode}
% |\ifpxrr@?intr| $B$NCM$K1~$8$F(B |\pxrr@locate@*@| $B$NCM$r7hDj$9$k!#(B
% $B$J$*!"N>B&$GFM=P$r6X;_$9$k$N$OIT2D$G$"$k$3$H$KCm0U!#(B
%    \begin{macrocode}
  \let\pxrr@locate@head@\pxrr@locate@inner
  \let\pxrr@locate@end@\pxrr@locate@inner
  \let\pxrr@locate@sing@\pxrr@locate@inner
  \ifpxrr@aprotr\else
    \let\pxrr@locate@end@\pxrr@locate@end
    \let\pxrr@locate@sing@\pxrr@locate@end
  \fi
  \ifpxrr@bprotr\else
    \let\pxrr@locate@head@\pxrr@locate@head
    \let\pxrr@locate@sing@\pxrr@locate@head
  \fi
  \def\pxrr@pre##1##2{%
    \pxrr@if@last{%
%    \end{macrocode}
% $BC1FH%V%m%C%/$N>l9g!#(B
%    \begin{macrocode}
      \pxrr@compose@block\pxrr@locate@sing@{##1}{##2}%
      \pxrr@intrude@head
      \unhbox\pxrr@boxr
      \pxrr@intrude@end
      \pxrr@takeout@any@protr
    }{%
%    \end{macrocode}
% $B@hF,%V%m%C%/$N>l9g!#(B
%    \begin{macrocode}
      \pxrr@compose@block\pxrr@locate@head@{##1}{##2}%
      \pxrr@intrude@head
      \unhbox\pxrr@boxr
    }%
  }%
  \def\pxrr@inter##1##2{%
    \pxrr@if@last{%
%    \end{macrocode}
% $BKvHx%V%m%C%/$N>l9g!#(B
%    \begin{macrocode}
      \pxrr@compose@block\pxrr@locate@end@{##1}{##2}%
      \pxrr@inter@mono
      \unhbox\pxrr@boxr
      \pxrr@intrude@end
      \pxrr@takeout@any@protr
    }{%
%    \end{macrocode}
% $BCf4V%V%m%C%/$N>l9g!#(B
%    \begin{macrocode}
      \pxrr@compose@block\pxrr@locate@inner{##1}{##2}%
      \pxrr@inter@mono
      \unhbox\pxrr@boxr
    }%
  }%
  \let\pxrr@post\@empty
  \setbox\pxrr@boxr\pxrr@hbox{\pxrr@whole@list}%
%    \end{macrocode}
% $B=O8l%k%S;XDj$N>l9g!"(B|\ifpxrr@any@protr| $B$,??$G$"$k>l9g$O:FD4@0$9$k!#(B
%    \begin{macrocode}
  \if j\pxrr@mode
    \ifpxrr@any@protr
      \pxrr@ruby@redo@j
    \fi
  \fi
  \unhbox\pxrr@boxr
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@ruby@redo@j}
% $B%b%N%k%S=hM}$G$-$J$$!J%k%S$,D9$/$J$k%V%m%C%/$,$"$k!K=O8l%k%S$r(B
% $BE,@Z$KAH$_$J$*$9!#(B
% $B8=>u$G$O!"C1=c$K%0%k!<%W%k%S$NAH$_J}$K$9$k!#(B
%    \begin{macrocode}
\def\pxrr@ruby@redo@j{%
  \pxrr@concat@list\pxrr@body@list
  \let\pxrr@body@list\pxrr@res
  \pxrr@concat@list\pxrr@ruby@list
  \let\pxrr@ruby@list\pxrr@res
  \pxrr@zip@single\pxrr@body@list\pxrr@ruby@list
  \let\pxrr@whole@list\pxrr@res
\ifpxrrDebug
\pxrr@debug@show@concat
\fi
  \let\pxrr@locate@sing@\pxrr@locate@inner
  \ifpxrr@aprotr\else
    \let\pxrr@locate@sing@\pxrr@locate@end
  \fi
  \ifpxrr@bprotr\else
    \let\pxrr@locate@sing@\pxrr@locate@head
  \fi
  \def\pxrr@pre##1##2{%
    \pxrr@compose@block\pxrr@locate@sing@{##1}{##2}%
    \pxrr@intrude@head
    \unhbox\pxrr@boxr
    \pxrr@intrude@end
  }%
  \let\pxrr@inter\@undefined
  \let\pxrr@post\@empty
  \setbox\pxrr@boxr\pxrr@hbox{\pxrr@whole@list}%
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@ruby@main@g}
% $BC1=c%0%k!<%W%k%S$N>l9g!#(B
%
% $B%0%k!<%W$,(B1$B$D$7$+$J$$A0Ds$J$N$GB?>/>iD9$H$J$k$,!"(B
% $B4pK\E*$K(B |\pxrr@ruby@main@m| $B$N=hM}$rF'=1$9$k!#(B
%    \begin{macrocode}
\def\pxrr@ruby@main@g{%
  \pxrr@zip@list\pxrr@body@list\pxrr@ruby@list
  \let\pxrr@whole@list\pxrr@res
  \pxrr@check@par@head
  \pxrr@put@head@penalty
\ifpxrrDebug
\pxrr@debug@show@recomp
\fi
  \let\pxrr@locate@sing@\pxrr@locate@inner
  \ifpxrr@aprotr\else
    \let\pxrr@locate@sing@\pxrr@locate@end
  \fi
  \ifpxrr@bprotr\else
    \let\pxrr@locate@sing@\pxrr@locate@head
  \fi
  \def\pxrr@pre##1##2{%
    \pxrr@compose@block\pxrr@locate@sing@{##1}{##2}%
    \pxrr@intrude@head
    \unhbox\pxrr@boxr
    \pxrr@intrude@end
  }%
  \let\pxrr@inter\@undefined
  \let\pxrr@post\@empty
%    \end{macrocode}
% $B%0%k!<%W%k%S$O(B |\ifpxrr@any@protr| $B$NH=Dj$,ITMW$J$N$GD>@\=PNO$9$k!#(B
%    \begin{macrocode}
  \pxrr@whole@list
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@ruby@main@tm}
% $BN>B&$N%b%N%k%S$N>l9g!#(B
%    \begin{macrocode}
\def\pxrr@ruby@main@tm{%
  \pxrr@tzip@list\pxrr@body@list\pxrr@ruby@list\pxrr@sruby@list
  \let\pxrr@whole@list\pxrr@res
  \pxrr@check@par@head
  \pxrr@any@protrfalse
\ifpxrrDebug
\pxrr@debug@show@recomp
\fi
  \let\pxrr@locate@head@\pxrr@locate@inner
  \let\pxrr@locate@end@\pxrr@locate@inner
  \let\pxrr@locate@sing@\pxrr@locate@inner
  \ifpxrr@aprotr\else
    \let\pxrr@locate@end@\pxrr@locate@end
    \let\pxrr@locate@sing@\pxrr@locate@end
  \fi
  \ifpxrr@bprotr\else
    \let\pxrr@locate@head@\pxrr@locate@head
    \let\pxrr@locate@sing@\pxrr@locate@head
  \fi
  \def\pxrr@pre##1##2##3{%
    \pxrr@if@last{%
      \pxrr@compose@twoside@block\pxrr@locate@sing@
       {##1}{##2}{##3}%
      \pxrr@intrude@head
      \unhbox\pxrr@boxr
      \pxrr@intrude@end
      \pxrr@takeout@any@protr
    }{%
      \pxrr@compose@twoside@block\pxrr@locate@head@
       {##1}{##2}{##3}%
      \pxrr@intrude@head
      \unhbox\pxrr@boxr
    }%
  }%
  \def\pxrr@inter##1##2##3{%
    \pxrr@if@last{%
      \pxrr@compose@twoside@block\pxrr@locate@end@
       {##1}{##2}{##3}%
      \pxrr@inter@mono
      \unhbox\pxrr@boxr
      \pxrr@intrude@end
      \pxrr@takeout@any@protr
    }{%
      \pxrr@compose@twoside@block\pxrr@locate@inner
       {##1}{##2}{##3}%
      \pxrr@inter@mono
      \unhbox\pxrr@boxr
    }%
  }%
  \let\pxrr@post\@empty
  \setbox\pxrr@boxr\pxrr@hbox{\pxrr@whole@list}%
  \unhbox\pxrr@boxr
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@ruby@main@tg}
% $BN>B&$NC1=c%0%k!<%W%k%S$N>l9g!#(B
%    \begin{macrocode}
\def\pxrr@ruby@main@tg{%
  \pxrr@check@par@head
  \pxrr@put@head@penalty
  \let\pxrr@locate@sing@\pxrr@locate@inner
  \ifpxrr@aprotr\else
    \let\pxrr@locate@sing@\pxrr@locate@end
  \fi
  \ifpxrr@bprotr\else
    \let\pxrr@locate@sing@\pxrr@locate@head
  \fi
  \expandafter\pxrr@compose@twoside@block\expandafter\pxrr@locate@sing@
   \pxrr@all@input
  \pxrr@intrude@head
  \unhbox\pxrr@boxr
  \pxrr@intrude@end
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@ruby@main@mg}
% $BL$<BAu!J8F=P$b$J$$!K!#(B
%    \begin{macrocode}
\let\pxrr@ruby@main@mg\@undefined
%    \end{macrocode}
% \end{macro}
%
% \subsubsection{$BA0=hM}(B}
%
% $B%4!<%9%H=hM}$9$k!#$=$N$?$a!"E83+ITG=L?Na$,!D!#(B
%
% \begin{macro}{\ifpxrr@ghost}
% $B<B9TCf$N%k%SL?Na$G%4!<%9%H=hM}$,M-8z$+!#(B
%    \begin{macrocode}
\newif\ifpxrr@ghost
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@jprologue}
% $BOBJ8%k%SMQ$N3+;O=hM}!#(B
%    \begin{macrocode}
\def\pxrr@jprologue{%
%    \end{macrocode}
% $B%4!<%9%H=hM}$r9T$&>l9g!"0lHV:G=i$K8=$l$kE83+ITG=%H!<%/%s$,(B
% $B%4!<%9%HJ8;z!JA43Q6uGr!K$G$"$k$3$H$,4NMW$G$"$k!#(B
%    \begin{macrocode}
  \ifpxrr@jghost
    \pxrr@jghost@char
    \pxrr@inhibitglue
  \fi
%    \end{macrocode}
% $B%k%S$N=hM}$NK\BN$OA4$F$3$N%0%k!<%W$NCf$G9T$o$l$k!#(B
%    \begin{macrocode}
  \begingroup
    \pxrr@abodyfalse
    \pxrr@csletcs{ifpxrr@ghost}{ifpxrr@jghost}%
%    \end{macrocode}
% $B=PNO$7$?A43Q6uGr$NI}$@$1La$7$F$*$/!#(B
%    \begin{macrocode}
    \ifpxrr@jghost
      \setbox\pxrr@boxa\hbox{\pxrr@jghost@char}%
      \kern-\wd\pxrr@boxa
    \fi
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@aghost}
% $B2$J8MQ$N%4!<%9%HJ8;z$NDj5A!#(B
% $B9g@.8l5-9f$O(BT1$B%(%s%3!<%G%#%s%0$N0LCV(B23$B$K$"$k!#(B
% $B=>$C$F!"(BT1$B$N%U%)%s%H$,I,MW$K$J$k$,!"$3$3$G$O(B
% Latin Modern Roman$B$r(B2.5\,pt$B$N%5%$%:$GMQ$$$k!#(B
% $B6K>.$N%5%$%:$K$7$F$$$k$N$O!"9g@.8l5-9f$N9b$5$,1F6A$9$k2DG=@-$r(B
% $BHr$1$k$?$a$G$"$k!#(B
% LM$B%U%)%s%H$N(B{\TeX}$B%U%)%s%HL>$OHG$K$h$j0[$J$k$h$&$J$N$G!"(B
% NFSS$B$rDL$7$FL\E*$N%U%)%s%H$N(Bfontdef$B$rF@$F$$$k!#(B
% $B!J%0%k!<%WFb$G(B |\usefont{T1}{lmr}{m}{n}| $B$r8F$s$G$*$/$H!"(B
% $BBg0hE*$K(B |\T1/lmr/m/n/2.5| $B$,Dj5A$5$l$k!#!K(B
%    \begin{macrocode}
\chardef\pxrr@aghostchar=23 % compwordmark
\let\pxrr@aghost\relax
\let\pxrr@aghostfont\relax
\def\pxrr@setup@aghost{%
  \global\let\pxrr@setup@aghost\relax
  \IfFileExists{t1lmr.fd}{%
    \begingroup
      \fontsize{2.5}{0}\usefont{T1}{lmr}{m}{n}%
    \endgroup
    \global\pxrr@letcs\pxrr@aghostfont{T1/lmr/m/n/2.5}%
    \gdef\pxrr@aghost{{\pxrr@aghostfont\pxrr@aghostchar}}%
    \global\xspcode\pxrr@aghostchar=3 %
  }{%else
    \pxrr@warn{Ghost embedding for \string\aruby\space
      is disabled,\MessageBreak
      since package lmodern is missing}%
    \global\pxrr@aghostfalse
    \global\let\pxrr@aghosttrue\relax
  }%
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@aprologue}
% $B2$J8%k%SMQ$N3+;O=hM}!#(B
%    \begin{macrocode}
\def\pxrr@aprologue{%
  \ifpxrr@aghost
    \pxrr@aghost
  \fi
  \begingroup
    \pxrr@abodytrue
    \pxrr@csletcs{ifpxrr@ghost}{ifpxrr@aghost}%
}
%    \end{macrocode}
% \end{macro}
%
% \subsubsection{$B8e=hM}(B}
%
% $B%4!<%9%H=hM}$9$k!#(B
%
% \begin{macro}{\pxrr@ruby@exit}
% $B=PNO$r=*$($F!":G8e$K8F$P$l$k%^%/%m!#(B
% $BCWL?E*%(%i!<$,5/$3$C$?>l9g$O%U%)!<%k%P%C%/=hM}$r9T$&!#(B
% $B$=$N8e$O!"OBJ8%k%S$H2$J8%k%S$G=hM}$,0[$J$k!#(B
%    \begin{macrocode}
\def\pxrr@ruby@exit{%
  \ifpxrr@fatal@error
    \pxrr@fallback
  \fi
  \ifpxrr@abody
    \expandafter\pxrr@aepilogue
  \else
    \expandafter\pxrr@jepilogue
  \fi
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@jepilogue}
% $BOBJ8$N>l9g$N=*N;=hM}!#(B
% $B3+;O=hM}$HF1MM!"A43Q6uGr$r%4!<%9%HJ8;z$KMQ$$$k!#(B
%    \begin{macrocode}
\def\pxrr@jepilogue{%
    \ifpxrr@jghost
      \setbox\pxrr@boxa\hbox{\pxrr@jghost@char}%
      \kern-\wd\pxrr@boxa
    \fi
%    \end{macrocode}
% |\pxrr@?prologue| $B$NCf$N(B |\begingroup| $B$G;O$^$k%0%k!<%W$rJD$8$k!#(B
%    \begin{macrocode}
  \endgroup
  \ifpxrr@jghost
    \pxrr@inhibitglue
    \pxrr@jghost@char
  \fi
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@aepilogue}
% $B2$J8$N>l9g$N=*N;=hM}!#(B
% $B9g@.8l5-9f$r%4!<%9%HJ8;z$KMQ$$$k!#(B
%    \begin{macrocode}
\def\pxrr@aepilogue{%
  \endgroup
  \ifpxrr@aghost
    \pxrr@aghost
  \fi
}
%    \end{macrocode}
% \end{macro}
%
% \subsection{$B%G%P%C%0MQ=PNO(B}
%
%    \begin{macrocode}
\def\pxrr@debug@show@input{%
  \typeout{----\pxrr@pkgname\space input:^^J%
    ifpxrr@abody = \meaning\ifpxrr@abody^^J%
    ifpxrr@truby = \meaning\ifpxrr@truby^^J%
    pxrr@ruby@fsize = \pxrr@ruby@fsize^^J%
    pxrr@body@zw = \pxrr@body@zw^^J%
    pxrr@ruby@zw = \pxrr@ruby@zw^^J%
    pxrr@iiskip = \pxrr@iiskip^^J%
    pxrr@iaiskip = \pxrr@iaiskip^^J%
    pxrr@htratio = \pxrr@htratio^^J%
    pxrr@ruby@raise = \pxrr@ruby@raise^^J%
    pxrr@ruby@lower = \pxrr@ruby@lower^^J%
    ifpxrr@bprotr = \meaning\ifpxrr@bprotr^^J%
    ifpxrr@aprotr = \meaning\ifpxrr@aprotr^^J%
    pxrr@side = \the\pxrr@side^^J%
    pxrr@evensp = \the\pxrr@evensp^^J%
    pxrr@fullsize = \the\pxrr@fullsize^^J%
    pxrr@bscomp = \meaning\pxrr@bscomp^^J%
    pxrr@ascomp = \meaning\pxrr@ascomp^^J%
    ifpxrr@bnobr = \meaning\ifpxrr@bnobr^^J%
    ifpxrr@anobr = \meaning\ifpxrr@anobr^^J%
    ifpxrr@bfintr = \meaning\ifpxrr@bfintr^^J%
    ifpxrr@afintr = \meaning\ifpxrr@afintr^^J%
    pxrr@bintr = \pxrr@bintr^^J%
    pxrr@aintr = \pxrr@aintr^^J%
    pxrr@athead = \the\pxrr@athead^^J%
    pxrr@mode = \meaning\pxrr@mode^^J%
    ifpxrr@athead@given = \meaning\ifpxrr@athead@given^^J%
    ifpxrr@mode@given = \meaning\ifpxrr@mode@given^^J%
    pxrr@body@list = \meaning\pxrr@body@list^^J%
    pxrr@body@count = \@nameuse{pxrr@body@count}^^J%
    pxrr@ruby@list = \meaning\pxrr@ruby@list^^J%
    pxrr@ruby@count = \@nameuse{pxrr@ruby@count}^^J%
    pxrr@end@kinsoku = \pxrr@end@kinsoku^^J%
    ----
  }%
}
\def\pxrr@debug@show@recomp{%
  \typeout{----\pxrr@pkgname\space recomp:^^J%
    pxrr@body@list = \meaning\pxrr@body@list^^J%
    pxrr@body@count = \pxrr@body@count^^J%
    pxrr@ruby@list = \meaning\pxrr@ruby@list^^J%
    pxrr@ruby@count = \pxrr@ruby@count^^J%
    pxrr@res = \meaning\pxrr@res^^J%
    ----
  }%
}
\def\pxrr@debug@show@concat{%
  \typeout{----\pxrr@pkgname\space concat:^^J%
    pxrr@body@list = \meaning\pxrr@body@list^^J%
    pxrr@ruby@list = \meaning\pxrr@ruby@list^^J%
    pxrr@whole@list = \meaning\pxrr@whole@list^^J%
    ----
  }%
}
\def\pxrr@debug@show@resolve@mode{%
  \typeout{----\pxrr@pkgname\space resolve-mode:
    \meaning\pxrr@mode}%
}
%    \end{macrocode}
%
%^^A------------------------------------
% \section{$B<BAu!J7wE@4XO"!K(B}
%
% \subsection{$B%(%i!<%a%C%;!<%8(B}
%
% $B;XDj$NL>A0$N7wE@J8;z$,L$EPO?$N>l9g!#(B
%    \begin{macrocode}
\def\pxrr@warn@na@kmark#1{%
  \pxrr@warn{Unavailable kenten mark '#1'}%
}
%    \end{macrocode}
%
% $B%Q%i%a%?@_DjL?Na$GL58z$JCM$,;XDj$5$l$?>l9g!#(B
%    \begin{macrocode}
\def\pxrr@err@invalid@value#1{%
  \pxrr@error{Invalid value '#1'}%
      {\@eha}%
}
%    \end{macrocode}
%
% \subsection{$B%Q%i%a%?(B}
%
% \subsubsection{$BA4HL@_Dj(B}
%
% \begin{macro}{\pxrr@k@ymark}
% $B2#AH$N<g$N7wE@%^!<%/$N%3!<%I!#(B
%    \begin{macrocode}
\let\pxrr@k@ymark\@undefined
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@k@ysmark}
% $B2#AH$NI{$N7wE@%^!<%/$N%3!<%I!#(B
%    \begin{macrocode}
\let\pxrr@k@ysmark\@undefined
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@k@tmark}
% $B=DAH$N<g$N7wE@%^!<%/$N%3!<%I!#(B
%    \begin{macrocode}
\let\pxrr@k@tmark\@undefined
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@k@tsmark}
% $B=DAH$NI~$N7wE@%^!<%/$N%3!<%I!#(B
%    \begin{macrocode}
\let\pxrr@k@tsmark\@undefined
%    \end{macrocode}
% \end{macro}
%
% $B7wE@%^!<%/$N=i4|CM$N@_Dj!#(B
%    \begin{macrocode}
\AtEndOfPackage{%
  \pxrr@k@get@mark\pxrr@k@ymark{bullet*}%
  \pxrr@k@get@mark\pxrr@k@ysmark{sesame*}%
  \pxrr@k@get@mark\pxrr@k@tmark{sesame*}%
  \pxrr@k@get@mark\pxrr@k@tsmark{bullet*}%
}
%    \end{macrocode}
%
% \begin{macro}{\pxrr@k@ruby@font}
% $B7wE@MQ%U%)%s%H@ZBXL?Na!#(B
%    \begin{macrocode}
\let\pxrr@k@ruby@font\@empty
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@k@size@ratio}
% $B7wE@J8;z%5%$%:!#(B
% $B!J(B|\kentensizeratio|$B!K!#(B
% $B<B?tCM%^%/%m!#(B
%    \begin{macrocode}
\def\pxrr@k@size@ratio{0.5}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\ifpxrr@k@ghost}
% $B%4!<%9%H=hM}$r9T$&$+!#(B
% $B%9%$%C%A!#(B
% \Note $B7wE@$G$OOBJ8%4!<%9%H=hM}$rI,$:9T$&!#(B
%    \begin{macrocode}
\newif\ifpxrr@k@ghost \pxrr@k@ghosttrue
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@k@inter@gap}
% $B7wE@$H?FJ8;z$N4V$N6u$-(B
% $B!J(B|\kentenintergap|$B!K!#(B
% $B<B?tCM%^%/%m!#(B
%    \begin{macrocode}
\def\pxrr@k@inter@gap{0}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@k@ruby@inter@gap}
% $B7wE@$H%k%S$N4V$N6u$-(B
% $B!J(B|\kentenrubyintergap|$B!K!#(B
% $B<B?tCM%^%/%m!#(B
%    \begin{macrocode}
\def\pxrr@k@ruby@inter@gap{0}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@k@d@side}
% $B7wE@$r?FJ8;z$N>e2<$N$I$A$i$KIU$9$+!#(B
% 0 = $B>eB&!((B1 = $B2<B&!#(B
% |\kentensetup| $B$N(B |P|$B!?(B|S| $B$N@_Dj!#(B
% $B@0?tDj?t!#(B
%    \begin{macrocode}
\chardef\pxrr@k@d@side=0
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@k@d@mark}
% $B7wE@%^!<%/$N<oN`!#(B
% 0 = $B<g!((B1 = $BI{!#(B
% |\kentensetup| $B$N(B |p|$B!?(B|s| $B$N@_Dj!#(B
% $B@0?tDj?t!#(B
%    \begin{macrocode}
\chardef\pxrr@k@d@mark=0
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@k@ruby@combo}
% $B%k%S$H7wE@$,F1;~$KE,MQ$5$l$?>l9g$N5sF0!#(B
% 0 = $B%k%S$@$1=PNO!((B1 = $B%k%S$N>e$K7wE@!JF1;~IU2C!K!#(B
% |\kentenrubycombination| $B$N@_DjCM$KBP1~$9$k!#(B
% $B@0?tDj?t!#(B
%    \begin{macrocode}
\chardef\pxrr@k@ruby@combo=1
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@k@d@full}
% $BLsJ*$K$b7wE@$rIU2C$9$k$+!#(B
% 0 = $BL58z!((B1 = $BM-8z!#(B
% |\kentensetup| $B$N(B |f|$B!?(B|F| $B$N@_Dj!#(B
% $B@0?tDj?t!#(B
%    \begin{macrocode}
\chardef\pxrr@k@d@full=0
%    \end{macrocode}
% \end{macro}
%
% \subsubsection{$B8F=P;~$N@_Dj(B}
%
% |\kenten| $B$N(B |P|$B!?(B|S| $B$N@_Dj$O!"(B|\pxrr@side| $B$r%k%S$H6&MQ$9$k!#(B
%
% \begin{macro}{\pxrr@k@mark}
% $B7wE@%^!<%/$N<oN`!#(B
% 0 = $B<g!((B1 = $BI{!#(B
% |\kenten| $B$N(B |p|$B!?(B|s| $B$N@_Dj!#(B
% $B@0?tDj?t!#(B
%    \begin{macrocode}
\chardef\pxrr@k@mark=0
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@k@full}
% $BLsJ*$K$b7wE@$rIU2C$9$k$+!#(B
% 0 = $BL58z!((B1 = $BM-8z!#(B
% |\kenten| $B$N(B |f|$B!?(B|F| $B$N@_Dj!#(B
% $B@0?tDj?t!#(B
%    \begin{macrocode}
\chardef\pxrr@k@full=0
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@k@the@mark}
% $BE,MQ$5$l$k7wE@%^!<%/$NL?Na!#(B
%    \begin{macrocode}
\let\pxrr@k@the@mark\relax
%    \end{macrocode}
% \end{macro}
%
% \subsection{$BJd=u<jB3(B}
%
% \subsubsection{\cs{UTF}$BL?NaBP1~(B}
%
% \begin{macro}{\ifpxrr@avail@UTF}
% |\UTF| $BL?Na$,MxMQ$G$-$k$+!#(B
% $B%9%$%C%A!#(B
%    \begin{macrocode}
\newif\ifpxrr@avail@UTF
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@decide@avail@UTF}
% |\ifpxrr@avail@UTF| $B$NCM$r3NDj$5$;$k!#(B
%    \begin{macrocode}
\def\pxrr@decide@avail@UTF{%
  \global\let\pxrr@decide@avail@UTF\relax
  \ifx\UTF\@undefined \global\pxrr@avail@UTFfalse
  \else \global\pxrr@avail@UTFtrue
  \fi
}
%    \end{macrocode}
% \end{macro}
%
% \subsubsection{$B%j%9%HJ,2r(B}
%
% \begin{macro}{\pxrr@k@decompose}
% |\pxrr@k@decompose{|\jmeta{$B%F%-%9%H(B}|}|\Means
% $B%F%-%9%H!J7wE@L?Na$N0z?t!K$rJ,2r$7$?7k2L$N7wE@9`L\%j%9%H(B
% $B$r(B |\pxrr@res| $B$KJV$9!#(B
% \Note $B7wE@9`L\%j%9%H$N7A<0(B\Means\par
% |\pxrr@entry|[|@XXX|]|{|\jmeta{$B0z?t(B}|}|$B!D!D(B
% |\pxrr@entry|[|@XXX|]|{|\jmeta{$B0z?t(B}|}||\pxrr@post|
%    \begin{macrocode}
\def\pxrr@k@decompose#1{%
  \let\pxrr@res\@empty
  \pxrr@cntr=\z@
  \pxrr@k@decompose@loopa#1\pxrr@end
}
\def\pxrr@k@decompose@loopa{%
  \futurelet\pxrr@token\pxrr@k@decompose@loopb
}
\def\pxrr@k@decompose@loopb{%
  \pxrr@cond\ifx\pxrr@token\pxrr@end\fi{%
    \pxrr@appto\pxrr@res{\pxrr@post}%
  }{\pxrr@if@kspan@cmd\pxrr@token{%
    \pxrr@k@decompose@special\pxrr@k@decompose@kspan
  }{\pxrr@if@ruby@cmd\pxrr@token{%
    \pxrr@k@decompose@special\pxrr@k@decompose@ruby
  }{\pxrr@if@truby@cmd\pxrr@token{%
    \pxrr@k@decompose@special\pxrr@k@decompose@truby
  }{\pxrr@if@kenten@cmd\pxrr@token{%
    \pxrr@k@decompose@special\pxrr@k@decompose@kenten
  }{\pxrr@cond\ifx\pxrr@token\@sptoken\fi{%
    \pxrr@k@decompose@loope
  }{%
    \pxrr@setok{\pxrr@ifx{\pxrr@token\bgroup}}%
    \pxrr@k@decompose@loopc
  }}}}}}%
}
\def\pxrr@k@decompose@loopc#1{%
  \pxrr@appto\pxrr@res{\pxrr@entry}%
  \ifpxrr@ok
    \pxrr@appto\pxrr@res{{{#1}}}%
  \else
    \pxrr@appto\pxrr@res{{#1}}%
  \fi
  \pxrr@k@decompose@loopd
}
\def\pxrr@k@decompose@loopd{%
  \advance\pxrr@cntr\@ne
  \pxrr@k@decompose@loopa
}
\expandafter\def\expandafter\pxrr@k@decompose@loope\space{%
  \pxrr@okfalse
  \pxrr@k@decompose@loopc{ }%
}
\def\pxrr@k@decompose@special#1#2#{%
  #1{#2}%
}
\def\pxrr@k@decompose@kspan#1#2{%
  \pxrr@appto\pxrr@res{\pxrr@entry@kspan{#1{#2}}}%
  \pxrr@k@decompose@loopd
}
\def\pxrr@k@decompose@ruby#1#2#3{%
  \pxrr@appto\pxrr@res{\pxrr@entry@ruby{#1{#2}{#3}}}%
  \pxrr@k@decompose@loopd
}
\def\pxrr@k@decompose@truby#1#2#3#4{%
  \pxrr@appto\pxrr@res{\pxrr@entry@ruby{#1{#2}{#3}{#4}}}%
  \pxrr@k@decompose@loopd
}
\def\pxrr@k@decompose@kenten#1#2{%
  \pxrr@appto\pxrr@res{\pxrr@entry@kenten{#1{#2}}}%
  \pxrr@k@decompose@loopd
}
\def\pxrr@cmd@ruby{\jruby}
\def\pxrr@cmd@kenten{\jkenten}
\def\pxrr@if@ruby@cmd#1{%
  \if \ifcat\noexpand#1\relax
        \ifx#1\pxrr@cmd@ruby T%
        \else\ifx#1\jruby T%
        \else\ifx#1\aruby T%
        \else F%
        \fi\fi\fi
      \else F%
      \fi T\expandafter\@firstoftwo
  \else \expandafter\@secondoftwo
  \fi
}
\def\pxrr@if@truby@cmd#1{%
  \if \ifcat\noexpand#1\relax
        \ifx#1\truby T%
        \else\ifx#1\atruby T%
        \else F%
        \fi\fi
      \else F%
      \fi T\expandafter\@firstoftwo
  \else \expandafter\@secondoftwo
  \fi
}
\def\pxrr@if@kspan@cmd#1{%
  \pxrr@cond\ifx#1\kspan\fi
}
\def\pxrr@if@kenten@cmd#1{%
  \if \ifcat\noexpand#1\relax
        \ifx#1\pxrr@cmd@kenten T%
        \else\ifx#1\jkenten T%
        \else F%
        \fi\fi
      \else F%
      \fi T\expandafter\@firstoftwo
  \else \expandafter\@secondoftwo
  \fi
}
%    \end{macrocode}
% \end{macro}
%
% \subsection{$B%Q%i%a%?@_Dj8x3+L?Na(B}
%
% \begin{macro}{\kentensetup}
% |\pxrr@k@parse@option| $B$G2r@O$7$?8e!"@_DjCM$rA4HL@_Dj$K(B
% $B%3%T!<$9$k!#(B
%    \begin{macrocode}
\newcommand*\kentensetup[1]{%
  \pxrr@in@setuptrue
  \pxrr@fatal@errorfalse
  \pxrr@k@parse@option{#1}%
  \ifpxrr@fatal@error\else
    \let\pxrr@k@d@side\pxrr@side
    \let\pxrr@k@d@mark\pxrr@k@mark
    \let\pxrr@k@d@full\pxrr@k@full
  \fi
%    \end{macrocode}
% |\ifpxrr@in@setup| $B$r56$KLa$9!#(B
% $B$?$@$7(B |\ifpxrr@fatal@error| $B$O=q$-49$($i$l$?$^$^$G$"$k$3$H$KCm0U!#(B
%    \begin{macrocode}
  \pxrr@in@setupfalse
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\kentenfontsetup}
% $BBP1~$9$k%Q%i%a%?$r@_Dj$9$k!#(B
%    \begin{macrocode}
\newcommand*\kentenfontsetup{}
\def\kentenfontsetup#{%
  \def\pxrr@k@ruby@font
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\kentensizeratio}
% $BBP1~$9$k%Q%i%a%?$r@_Dj$9$k!#(B
%    \begin{macrocode}
\newcommand*\kentensizeratio[1]{%
  \edef\pxrr@k@size@ratio{#1}%
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\kentenintergap}
% $BBP1~$9$k%Q%i%a%?$r@_Dj$9$k!#(B
%    \begin{macrocode}
\newcommand*\kentenintergap[1]{%
  \edef\pxrr@k@inter@gap{#1}%
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\kentenrubyintergap}
% $BBP1~$9$k%Q%i%a%?$r@_Dj$9$k!#(B
%    \begin{macrocode}
\newcommand*\kentenrubyintergap[1]{%
  \edef\pxrr@k@ruby@inter@gap{#1}%
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\kentenmarkinyoko}
% \begin{macro}{\kentensubmarkinyoko}
% \begin{macro}{\kentenmarkintate}
% \begin{macro}{\kentensubmarkintate}
% $BBP1~$9$k%Q%i%a%?$r@_Dj$9$k!#(B
%    \begin{macrocode}
\newcommand*\kentenmarkinyoko[1]{%
  \pxrr@k@get@mark\pxrr@k@ymark{#1}%
}
\newcommand*\kentensubmarkinyoko[1]{%
  \pxrr@k@get@mark\pxrr@k@ysmark{#1}%
}
\newcommand*\kentenmarkintate[1]{%
  \pxrr@k@get@mark\pxrr@k@tmark{#1}%
}
\newcommand*\kentensubmarkintate[1]{%
  \pxrr@k@get@mark\pxrr@k@tsmark{#1}%
}
%    \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
%
% \begin{macro}{\kentenrubycombination}
% $BBP1~$9$k%Q%i%a%?$r@_Dj$9$k!#(B
%    \begin{macrocode}
\chardef\pxrr@k@ruby@combo@ruby=0
\chardef\pxrr@k@ruby@combo@both=1
\newcommand*\kentenrubycombination[1]{%
  \pxrr@letcs\pxrr@tempa{pxrr@k@ruby@combo@#1}%
  \ifx\pxrr@tempa\relax
    \pxrr@err@invalid@value{#1}%
  \else
    \let\pxrr@k@ruby@combo\pxrr@tempa
  \fi
}
%    \end{macrocode}
% \end{macro}
%
% \subsection{$B7wE@J8;z(B}
%
% \begin{macro}{\pxrr@k@declare@mark}
% |\pxrr@k@declare@mark{|\jmeta{$BL>A0(B}|}{|\jmeta{$BK\BN(B}|}|\Means
% $B7wE@%^!<%/L?Na$rDj5A$9$k!#(B
%    \begin{macrocode}
\def\pxrr@k@declare@mark#1{%
  \global\@namedef{pxrr@k@mark@@#1}%
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@k@let@mark}
% |\pxrr@k@declare@mark{|\jmeta{$BL>A0(B}|}\CS|\Means
% $B7wE@%^!<%/L?Na$r(B |\let| $B$GDj5A$9$k!#(B
%    \begin{macrocode}
\def\pxrr@k@let@mark#1{%
  \global\pxrr@cslet{pxrr@k@mark@@#1}%
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@k@get@mark}
% |\pxrr@k@get@mark\CS{|\jmeta{$BL>A0$^$?$ODj5AK\BN(B}|}|\Means
% $B;XDj$N7wE@%^!<%/L?Na$r(B |\CS| $B$KBeF~$9$k!#(B
% $BBh(B2$B0z?t$N@hF,%H!<%/%s$,(BASCII$B1Q;z$N>l9g$OL>A0$H8+$J$7!"(B
% $B$=$l0J30$ODj5AK\BN$N%3!<%I$H8+$J$9!#(B
%    \begin{macrocode}
\def\pxrr@k@get@mark#1#2{%
  \futurelet\pxrr@token\pxrr@k@get@mark@a#2\pxrr@nil#1%
}
\def\pxrr@k@get@mark@a{%
  \pxrr@cond\ifcat A\noexpand\pxrr@token\fi{%
    \pxrr@k@get@mark@c
  }{%else
    \pxrr@k@get@mark@b
  }%
}
\def\pxrr@k@get@mark@b#1\pxrr@nil#2{%
  \def#2{#1}%
}
\def\pxrr@k@get@mark@c#1#2\pxrr@nil#3{%
  \ifnum`#1<128
    \pxrr@letcs\pxrr@tempa{pxrr@k@mark@@#1#2}%
    \ifx\pxrr@tempa\relax
      \pxrr@warn@na@kmark{#1#2}%
    \else
      \let#3\pxrr@tempa
    \fi
  \else
    \pxrr@k@get@mark@b#1#2\pxrr@nil#3%
  \fi
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@k@declare@mark@char}
% |\pxrr@k@declare@mark@char\CS{|\jmeta{$BFs=E%3!<%I(B}|}|\Means
% $B;XDj$N%3!<%ICM$NJ8;z$N!JOBJ8!K(Bchardef$B$r(B |\CS| $B$KBeF~$9$k!#(B
% $B$?$@$7(B{\pTeX}$B$G(BJIS$B$KL5$$J8;z(B
% $B!JJX59E*$KOBJ86uGr$N(BJIS$B%3!<%ICM(B|2121|$B$GI=$9!K(B
% $B$N>l9g$OBe$o$j$K(B |\pxrr@k@char@UTF| $B$rMxMQ$9$k!#(B
%    \begin{macrocode}
\def\pxrr@k@declare@mark@char#1#2{%
  \pxrr@k@declare@mark@char@a{#1}#2\pxrr@end
}
\def\pxrr@k@declare@mark@char@a#1#2:#3\pxrr@end{%
  \pxrr@jchardef\pxrr@tempa\pxrr@jc{#2:#3}%
  \ifnum\pxrr@tempa=\pxrr@zspace
%    \end{macrocode}
% $B%(%s%8%s$,(B{\pTeX}$B$G$+$D(BJIS$B$KL5$$J8;z$G$"$k>l9g!#(B
%    \begin{macrocode}
    \pxrr@k@declare@mark{#1}{\pxrr@k@char@UTF{#1}{#3}}%
  \else
    \pxrr@k@let@mark{#1}\pxrr@tempa
  \fi
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@k@char@UTF}
% |\pxrr@k@char@UTF{|\jmeta{$BL>A0(B}|}{|\jmeta{Unicode$BCM(B}|}|\Means
% |\UTF{|\jmeta{Unicode$BCM(B}|}| $B$r<B9T$9$k$,!"(B
% |\UTF| $B$,MxMQIT2D$N>l9g$O!"(B
% $B!J:G=i$N(B1$B2s$@$1!K7Y9p$7$?>e$G2?$b=PNO$7$J$$!#(B
%    \begin{macrocode}
\def\pxrr@k@char@UTF#1#2{%
  \pxrr@decide@avail@UTF
  \ifpxrr@avail@UTF
    \pxrr@k@declare@mark{#1}{\UTF{#2}}%
    \UTF{#2}%
  \else
    \pxrr@k@let@mark{#1}\@empty
    \pxrr@warn@na@kmark{#1}%
  \fi
}
%    \end{macrocode}
% \end{macro}
%
% $BI8=`%5%]!<%H$N7wE@%^!<%/$NDj5A!#(B
%    \begin{macrocode}
\pxrr@k@declare@mark@char{bullet}  {2121:2022}
\pxrr@k@declare@mark@char{triangle}{2225:25B2}
\pxrr@k@declare@mark@char{Triangle}{2224:25B3}
\pxrr@k@declare@mark@char{fisheye} {2121:25C9}
\pxrr@k@declare@mark@char{Circle}  {217B:25CB}
\pxrr@k@declare@mark@char{bullseye}{217D:25CE}
\pxrr@k@declare@mark@char{circle}  {217C:25CF}
\pxrr@k@declare@mark@char{Bullet}  {2121:25E6}
\pxrr@k@declare@mark@char{sesame}  {2121:FE45}
\pxrr@k@declare@mark@char{Sesame}  {2121:FE46}
\pxrr@jchardef\pxrr@ja@dot=\pxrr@jc{2126:30FB}
\pxrr@jchardef\pxrr@ja@comma=\pxrr@jc{2122:3001}
\pxrr@k@declare@mark{bullet*}{%
  \pxrr@dima=\pxrr@ruby@zw\relax
  \hb@xt@\pxrr@dima{%
    \kern-.5\pxrr@dima
    \pxrr@if@in@tate{}{\lower.38\pxrr@dima}%
    \hbox{%
      \pxrr@dima=\f@size\p@
      \fontsize{2\pxrr@dima}{\z@}\selectfont
      \pxrr@ja@dot
    }%
    \hss
  }%
}
\pxrr@k@declare@mark{sesame*}{%
  \pxrr@dima=\pxrr@ruby@zw\relax
  \hb@xt@\pxrr@dima{%
    \pxrr@if@in@tate{\kern.1\pxrr@dima}{\kern.05\pxrr@dima}%
    \pxrr@if@in@tate{\lower.85\pxrr@dima}{\raise.3\pxrr@dima}%
    \hbox{%
      \pxrr@dima=\f@size\p@
      \fontsize{2.4\pxrr@dima}{\z@}\selectfont
      \pxrr@ja@comma
    }%
    \hss
  }%
}
%    \end{macrocode}
%
% \subsection{$B7wE@%*%W%7%g%s2r@O(B}
%
% \begin{macro}{\pxrr@k@parse@option}
% |\pxrr@k@parse@option{|\jmeta{$B%*%W%7%g%s(B}|}|\Means
% \jmeta{$B%*%W%7%g%s(B}$B$r2r@O$7!"(B
% |\pxrr@side| $B$d(B |\pxrr@k@mark| $BEy$N%Q%i%a%?$r@_Dj$9$k!#(B
%    \begin{macrocode}
\def\pxrr@k@parse@option#1{%
  \edef\pxrr@tempa{#1}%
  \let\pxrr@side\pxrr@k@d@side
  \let\pxrr@k@mark\pxrr@k@d@mark
  \let\pxrr@k@full\pxrr@k@d@full
  \expandafter\pxrr@k@parse@option@loop\pxrr@tempa @\pxrr@end
}
\def\pxrr@k@parse@option@loop#1{%
%    \end{macrocode}
% $B7wE@%*%W%7%g%s$N2r@O4o$O!HM-8B>uBV!I$r;}$?$J$$$N$G(B
% $BHs>o$KC1=c$G$"$k!#(B
%    \begin{macrocode}
  \pxrr@letcs\pxrr@tempa{pxrr@k@po@PR@#1}%
  \pxrr@cond\ifx\pxrr@tempa\relax\fi{%
    \pxrr@fatal@knx@letter{#1}%
    \pxrr@k@parse@option@exit
  }{%
    \pxrr@tempa
    \pxrr@k@parse@option@loop
  }%
}
\def\pxrr@k@parse@option@exit#1\pxrr@end{%
  \ifpxrr@in@setup\else
    \pxrr@k@check@option
%    \end{macrocode}
% $B$3$3$G(B |\pxrr@k@the@mark| $B$rE,@Z$KDj5A$9$k!#(B
%    \begin{macrocode}
    \pxrr@if@in@tate{%
      \ifcase\pxrr@k@mark \let\pxrr@k@the@mark\pxrr@k@tmark
      \or \let\pxrr@k@the@mark\pxrr@k@tsmark
      \fi
    }{%
      \ifcase\pxrr@k@mark \let\pxrr@k@the@mark\pxrr@k@ymark
      \or \let\pxrr@k@the@mark\pxrr@k@ysmark
      \fi
    }%
  \fi
}
\def\pxrr@k@po@PR@@{%
  \pxrr@k@parse@option@exit
}
\def\pxrr@k@po@PR@P{%
  \chardef\pxrr@side\z@
}
\def\pxrr@k@po@PR@S{%
  \chardef\pxrr@side\@ne
}
\def\pxrr@k@po@PR@p{%
  \chardef\pxrr@k@mark\z@
}
\def\pxrr@k@po@PR@s{%
  \chardef\pxrr@k@mark\@ne
}
\def\pxrr@k@po@PR@F{%
  \chardef\pxrr@k@full\z@
}
\def\pxrr@k@po@PR@f{%
  \chardef\pxrr@k@full\@ne
}
%    \end{macrocode}
% \end{macro}
%
% \subsection{$B%*%W%7%g%s@09g@-8!::(B}
%
% $B:#$N$H$3$m8!::$9$Y$-E@$,$J$$!#(B
%    \begin{macrocode}
\def\pxrr@k@check@option{%
}
%    \end{macrocode}
%
% \subsection{$B%V%m%C%/Kh$NAHHG(B}
%
% \begin{macro}{\pxrr@k@compose@block}
% |\pxrr@k@compose@block{|\jmeta{$B?FJ8;z%V%m%C%/(B}|}|^^A
% |{|\jmeta{$B7wE@$N8D?t(B}|}|\Means
% 1$B$D$N%V%m%C%/$NAHHG=hM}!#(B
% $B%\%C%/%9(B |\pxrr@boxb| $B$K7wE@(B1$B$D$rAHHG$7$?$b$N$,F~$C$F$$$k(B
% $BI,MW$,$"$k!#(B
% $B$J$*!"7wE@$O%<%mI}$KDY$7$?7A$G07$&A0Ds$N$?$a!"(B
% |\pxrr@boxb| $B$NI}$O%<%m$G$J$$$H$$$1$J$$!#(B
%
% $B4pK\E*$K!"%k%SMQ$N(B |\pxrr@compose@oneside@block| $B$rHs>o$K4JN,2=(B
% $B$7$?=hM}$K$J$C$F$$$k!#(B
%    \begin{macrocode}
\def\pxrr@k@compose@block#1#2{%
  \setbox\pxrr@boxa\pxrr@hbox{#1}%
%    \end{macrocode}
% |\pxrr@evenspace@int| $B$r;H$&$?$a$KDTjm$r9g$o$;$k!#(B
% $B$9$J$o$A!"(B|\copy\pxrr@boxb| $B$r7wE@8D?tJ,$@$1H?I|$7$?(B
% $B%j%9%H$r(B |\pxrr@res| $B$KF~$l$F!"!H7wE@$N<+A3D9!I$K(B
% $BEv$?$k(B |\pxrr@natwd| $B$r%<%m$H$9$k!#(B
%    \begin{macrocode}
  \pxrr@k@make@rep@list{\copy\pxrr@boxb}{#2}%
  \let\pxrr@natwd\pxrr@zeropt
  \pxrr@evenspace@int\pxrr@locate@inner\pxrr@boxr
       \relax{\wd\pxrr@boxa}%
  \setbox\z@\hbox{%
    \ifnum\pxrr@side=\z@
      \raise\pxrr@ruby@raise\box\pxrr@boxr
    \else
      \lower\pxrr@ruby@lower\box\pxrr@boxr
    \fi
  }%
  \ht\z@\z@ \dp\z@\z@
  \@tempdima\wd\z@
  \setbox\pxrr@boxr\hbox{%
    \box\z@
    \kern-\@tempdima
    \box\pxrr@boxa
  }%
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@k@make@rep@list}
% |\pxrr@k@make@rep@list{|\jmeta{$BMWAG(B}|}{|\jmeta{$B2s?t(B}|}|\Means
% $BMWAG$r;XDj$N2s?t$@$1H?I|$7$?%j%9%H$r(B |\pxrr@res| $B$KBeF~$9$k!#(B
%    \begin{macrocode}
\def\pxrr@k@make@rep@list#1#2{%
  \def\pxrr@res{\pxrr@pre{#1}}%
  \pxrr@cntr=#2\relax
  \ifnum\pxrr@cntr>\@ne
    \@tempcnta\pxrr@cntr \advance\@tempcnta\m@ne
    \@whilenum{\@tempcnta>\z@}\do{%
      \pxrr@appto\pxrr@res{\pxrr@inter{#1}}%
      \advance\@tempcnta\m@ne
    }%
  \fi
  \pxrr@appto\pxrr@res{\pxrr@post}%
}
%    \end{macrocode}
% \end{macro}
%
% \subsection{$B7wE@9`L\(B}
%
% \begin{itemize}
% \item $B7wE@9`L\%j%9%H(B\Means
%   $B%F%-%9%H$r(B |\pxrr@k@decompose| $B$GJ,2r$7$?7k2L$N%j%9%H!#(B
% \item $B7wE@9`L\(B\Means
%   $B7wE@%j%9%H$K4^$^$l$k(B |\pxrr@entry|[|@XXX|]|{...}| $B$H$$$&7A<0$N$3$H!#(B
%   $B7wE@9`L\$OD>@\$K<B9T$9$k!J=PNO$9$k!K$3$H$,$G$-$k!#(B
% \item $B7wE@%V%m%C%/(B\Means
%   $B0l$D$N!TJ8;z!U$K7wE@$rIU2C$7$F=PNO$7$?$b$N!#(B
% \item $B;2>HJ8;z%3!<%I(B\Means
%   $B7wE@9`L\$N=PNO$NA08e$N6XB'%Z%J%k%F%#$N07$$$K$*$$$F!"(B
%   $B!V$"$kJ8;z$HF1Ey!W$H07$&>l9g$N!"$=$NJ8;z$NJ8;z%3!<%I!#(B
% \end{itemize}
%
% $B"(8=>u$G$O!"$^$:(B |\pxrr@kenten@entry@XXX| $B$H$$$&%^%/%m$rDj5A$7$F(B
% $B7wE@L?Na$N<B9T;~$K$=$l$r(B |\pxrr@entry@XXX| $B$K%3%T!<$9$k!"$H$$$&(B
% $B<jB3$-$r:N$C$F$$$k!#(B
% $B!J$?$@$=$&$9$k0UL#$,A4$/L5$$5$$,$9$k!#!K(B
%
% \begin{macro}{\ifpxrr@k@first@entry}
% $B@hF,$N9`L\$G$"$k$+!#(B
%    \begin{macrocode}
\newif\ifpxrr@k@first@entry
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\ifpxrr@k@last@entry}
% $BKvHx$N9`L\$G$"$k$+!#(B
%    \begin{macrocode}
\newif\ifpxrr@k@last@entry
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\ifpxrr@k@prev@is@block}
% $BD>A0$N9`L\$N7k2L$,7wE@%V%m%C%/$G$"$C$?$+!#(B
%    \begin{macrocode}
\newif\ifpxrr@k@prev@is@block
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@k@accum@res}
% $BN_@Q$ND>@\=PNO!#(B
%    \begin{macrocode}
\let\pxrr@k@accum@res\relax
%    \end{macrocode}
% \end{macro}
%
% $B0J2<$N(B3$B$D$NJQ?t$O!H9`L\$N2<@A$1%^%/%m!I$,CM$rJV$9$Y$-$b$N!#(B
% $B$3$l$i$K2C$($F!"(B|\pxrr@res| $B$H(B |\pxrr@boxr| $B$N0lJ}$K(B
% $B!JAHHG$N!K7k2L$rJV$9I,MW$,$"$k!#(B
%
% \begin{macro}{\pxrr@k@prebreakpenalty}
% $B7wE@9`L\$NA06XB'%Z%J%k%F%#!#(B
%    \begin{macrocode}
\mathchardef\pxrr@k@prebreakpenalty\z@
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@k@postbreakpenalty}
% $B7wE@9`L\$N8e6XB'%Z%J%k%F%#!#(B
%    \begin{macrocode}
\mathchardef\pxrr@k@postbreakpenalty\z@
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@k@entry@res@type}
% $B9`L\$N=PNO$N%?%$%W!#(B
% 0=$BD>@\=PNO!((B1=$B%\%C%/%9=PNO!((B2=$B7wE@%V%m%C%/!#(B
% 0$B$N>l9g!"=PNO$O(B |\pxrr@res| $B$K$"$j!"$=$l0J30$O!"(B
% $B=PNO$O(B |\pxrr@boxr| $B$K$"$k!#(B
%    \begin{macrocode}
\chardef\pxrr@k@entry@res@type\z@
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@k@list@pre}
% $B7wE@9`L\%j%9%H$N=PNO$N3+;O;~$K9T$&=hM}!#(B
%    \begin{macrocode}
\def\pxrr@k@list@pre{%
  \pxrr@k@first@entrytrue
  \pxrr@k@last@entryfalse
  \pxrr@k@prev@is@blockfalse
  \let\pxrr@k@accum@res\@empty
  \chardef\pxrr@k@block@seq@state\z@
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@k@entry@with}
% $BJd=u%^%/%m!#(B
% $B3F<o7wE@9`L\$N6&DL$N=hM}$r9T$&!#(B
% \Note |#1| $B$O3F7wE@9`L\L?Na$N2<@A$1$N%^%/%m$G!"(B|#2| $B$O(B
% $B7wE@9`L\$N0z?t!#(B
%    \begin{macrocode}
\def\pxrr@k@entry@with#1#2{%
  \pxrr@if@last{%
    \pxrr@k@last@entrytrue
    \pxrr@k@entry@with@a#1{#2}%
  }{%
    \pxrr@k@entry@with@a#1{#2}%
  }%
}
\def\pxrr@k@entry@with@a#1#2{%
  \mathchardef\pxrr@k@prebreakpenalty\z@
  \mathchardef\pxrr@k@postbreakpenalty\z@
%    \end{macrocode}
% $B2<@A$1%^%/%m$r<B9T$7$F7k2L$rF@$k!#(B
%    \begin{macrocode}
  #1{#2}%
%\typeout{%
%first=\meaning\ifpxrr@k@first@entry^^J%
%last=\meaning\ifpxrr@k@last@entry^^J%
%prev=\meaning\ifpxrr@k@prev@is@block^^J%
%res=\meaning\pxrr@res^^J%
%type=\meaning\pxrr@k@entry@res@type^^J%
%prepen=\the\pxrr@k@prebreakpenalty^^J%
%postpen=\the\pxrr@k@postbreakpenalty}%
%    \end{macrocode}
% $BN_@QD>@\=PNO$N=hM}!#(B
%    \begin{macrocode}
  \ifnum\pxrr@k@entry@res@type=\z@
    \expandafter\pxrr@appto\expandafter\pxrr@k@accum@res
        \expandafter{\pxrr@res}%
  \else
    \pxrr@k@accum@res
    \let\pxrr@k@accum@res\@empty
  \fi
%    \end{macrocode}
% $BA06XB'%Z%J%k%F%#$rF~$l$k!#(B
%    \begin{macrocode}
  \ifnum\pxrr@k@prebreakpenalty>\z@
    \@tempcntb\lastpenalty \unpenalty
    \advance\@tempcntb\pxrr@k@prebreakpenalty
    \penalty\@tempcntb
  \fi
%    \end{macrocode}
% $B7wE@%V%m%C%/$,O"B3$9$k>l9g$OOBJ84V6uGr$rF~$l$k!#(B
%    \begin{macrocode}
  \ifnum\pxrr@k@entry@res@type=\tw@
    \ifpxrr@k@prev@is@block
      \pxrr@inter@mono
    \fi
    \pxrr@k@prev@is@blocktrue
  \else
    \pxrr@k@prev@is@blockfalse
  \fi
%    \end{macrocode}
% $B%\%C%/%9$N7k2L$r<B:]$K=PNO$9$k!#(B
%    \begin{macrocode}
  \ifnum\pxrr@k@entry@res@type>\z@
    \unhbox\pxrr@boxr
  \fi
%    \end{macrocode}
% $B8e6XB'%Z%J%k%F%#$rF~$l$k!#(B
%    \begin{macrocode}
  \ifnum\pxrr@k@postbreakpenalty>\z@
    \penalty\pxrr@k@postbreakpenalty
  \fi
%    \end{macrocode}
% $B<!$N9`L\$K?J$`!#(B
%    \begin{macrocode}
  \pxrr@k@first@entryfalse
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@k@list@post}
% $B7wE@9`L\%j%9%H$N=PNO$N:G8e$K9T$&=hM}!#(B
%    \begin{macrocode}
\def\pxrr@k@list@post{%
  \pxrr@k@accum@res
  \let\pxrr@k@accum@res\@empty
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@kenten@entry}
% $B0lHL$N!TJ8;z!U$rI=$97wE@9`L\(B |\pxrr@entry{|\jmeta{$BJ8;z(B}|}| $B$N=hM}!#(B
% $B7wE@$r(B1$B$DIU$1$F=PNO$9$k!#(B
%    \begin{macrocode}
\def\pxrr@kenten@entry{%
  \pxrr@k@entry@with\pxrr@kenten@entry@
}
\def\pxrr@kenten@entry@#1{%
  \pxrr@k@check@char{#1}%
  \ifpxrr@ok
    \pxrr@k@compose@block{#1}\@ne
    \chardef\pxrr@k@entry@res@type=\tw@
  \else
    \def\pxrr@res{#1}%
    \chardef\pxrr@k@entry@res@type=\z@
  \fi
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@kenten@entry@kspan}
% |\kspan| $BL?Na$rI=$97wE@9`L\(B\ 
% |\pxrr@entry@kspan{\kspan{|\jmeta{$B%F%-%9%H(B}|}}| $B$N=hM}!#(B
% $B%F%-%9%H$NI}$,!H$*$h$=(B$n$$BA43Q!I$G$"$k>l9g$K!"(B
% $n$$B8D$N7wE@$r%k%S6QEy3d$j$GG[CV$7$F=PNO$9$k!#(B
%    \begin{macrocode}
\def\pxrr@kenten@entry@kspan{%
  \pxrr@k@entry@with\pxrr@kenten@entry@kspan@
}
\def\pxrr@kenten@entry@kspan@#1{%
  \pxrr@kenten@entry@kspan@a#1%
}
\def\pxrr@kenten@entry@kspan@a#1{%
%    \end{macrocode}
% |\kspan|$B!J(B=\,|#1|$B!K$,(B |*| $BIU$+$rD4$Y$k!#(B
%    \begin{macrocode}
  \@ifstar{%
    \@testopt\pxrr@kenten@entry@kspan@c{}%
  }{%
    \@testopt\pxrr@kenten@entry@kspan@b{}%
  }%
}
\def\pxrr@kenten@entry@kspan@b[#1]#2{%
%    \end{macrocode}
% ($n-1/4$)zw$B0J>e(B($n+3/4$)zw$BL$K~$N;~$K!H$*$h$=(B$n$$BA43Q!I$H8+$J$9!#(B
%    \begin{macrocode}
  \setbox\z@\pxrr@hbox{#2}%
  \@tempdima\pxrr@body@zw\relax
  \@tempdimb\wd\z@ \advance\@tempdimb.25\@tempdima
  \divide\@tempdimb\@tempdima
  \edef\pxrr@kenten@entry@tempa{\number\@tempdimb}%
  \pxrr@k@compose@block{#2}\pxrr@kenten@entry@tempa
  \chardef\pxrr@k@entry@res@type=\tw@
}
\def\pxrr@kenten@entry@kspan@c[#1]#2{%
%    \end{macrocode}
% |\kspan*| $B$H$J$C$F$$$k>l9g!#(B
% $B$3$N;~$O7wE@$rIU2C$;$:D>@\=PNO$9$k!#(B
%    \begin{macrocode}
  \def\pxrr@res{#2}%
  \chardef\pxrr@k@entry@res@type=\z@
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@kenten@entry@kenten}
% $B%M%9%H$7$?(B |\kenten| $BL?Na$N7wE@9`L\!#(B
% $BC1=c$K$=$N(B |\kenten| $B$r<B9T$7$?$b$N$r=PNO$H$9$k!#(B
% $B$9$J$o$A!"FbB&$N7wE@$N@_Dj$N$_$,@8$-$k!#(B
%    \begin{macrocode}
\def\pxrr@kenten@entry@kenten{%
  \pxrr@k@entry@with\pxrr@kenten@entry@kenten@
}
\def\pxrr@kenten@entry@kenten@#1{%
%    \end{macrocode}
% $B$3$N>l9g$O7wE@%V%m%C%/$H$O8+$J$5$J$$$3$H$KCm0U!#(B
%    \begin{macrocode}
  \setbox\pxrr@boxr\hbox{#1}%
  \chardef\pxrr@k@entry@res@type=\@ne
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@kenten@entry@ruby}
% $B%k%SL?Na$N7wE@9`L\!#(B
%    \begin{macrocode}
\def\pxrr@kenten@entry@ruby{%
  \pxrr@k@entry@with\pxrr@kenten@entry@ruby@
}
\def\pxrr@kenten@entry@ruby@#1{%
  \pxrr@apply@combotrue
  \setbox\pxrr@boxr\hbox{#1}%
  \chardef\pxrr@k@entry@res@type=\@ne
}
%    \end{macrocode}
% \end{macro}
%
% \subsubsection{\cs{kspan}$BL?Na(B}
%
% \begin{macro}{\kspan}
% $B%F%-%9%H$NI}$KAj1~$7$?8D?t$N7wE@$rIU$1$kL?Na!#(B
% |\kenten| $B$N0z?t$N%F%-%9%H$NCf$G;H$&!#(B
%
% |\kenten| $B$N30$G;H$o$l$?>l9g$OC1=c$K0z?t$r=PNO$9$k$@$1!#(B
%
% \Note $B=hM}$NET9g>e!"%*%W%7%g%s0z?t$r;}$?$;$F$$$k$,!"(B
% $B<B:]$K$O!J8=:_$O!K$3$l$O;H$o$l$J$$!#(B
%    \begin{macrocode}
\newcommand*\kspan{%
  \@ifstar{%
    \@testopt\pxrr@kspan@a{}%
  }{%
    \@testopt\pxrr@kspan@a{}%
  }%
}
\pxrr@add@protect\kspan
\def\pxrr@kspan@a[#1]#2{%
  \begingroup
    #2%
  \endgroup
}
%    \end{macrocode}
% \end{macro}
%
% \subsection{$B<+F0M^;_$N8!::(B}
%
% \begin{macro}{\pxrr@k@check@char}
% $BDL>o9`L\!J(B|\pxrr@entry|$B!K$N0z?t$r8!::$7$F!"(B
% $B7wE@$rIU2C$9$Y$-$+H]$+$r%9%$%C%A(B |pxrr@ok| $B$KJV$9!#(B
% $B$^$?!"9`L\$NA06XB'!&8e6XB'%Z%J%k%F%#$r@_Dj$9$k!#(B
%
% $B0z?t$,!JC10l$N!KDL>oJ8;z$G$"$k;~$O$=$NJ8;z!"(B
% $B0z?t$,%0%k!<%W$N>l9g$OOBJ86uGr$NFbItJ8;z%3!<%I$r(B |\pxrr@cntr| $B$K(B
% $BJV$9!J6XB'%Z%J%k%F%#$r8e$G8+$i$l$k$h$&$K!K!#(B
%    \begin{macrocode}
\def\pxrr@k@check@char#1{%
  \futurelet\pxrr@token\pxrr@k@check@char@a#1\pxrr@end
}
\def\pxrr@k@check@char@a#1\pxrr@end{%
  \pxrr@cond\ifx\pxrr@token\bgroup\fi{%
%    \end{macrocode}
% $B%0%k!<%W$K$O7wE@$rIU$1$k!#(B
%    \begin{macrocode}
    \pxrr@oktrue
  }{\pxrr@cond\ifx\pxrr@token\@sptoken\fi{%
%    \end{macrocode}
% $B2$J86uGr$K$O7wE@$rIU$1$J$$!#(B
%    \begin{macrocode}
    \pxrr@okfalse
  }{%
    \pxrr@check@char\pxrr@token
    \ifcase\pxrr@cntr
%    \end{macrocode}
% $BDL>oJ8;z$G$J$$$N$G7wE@$rIU$1$J$$!#(B
%    \begin{macrocode}
      \pxrr@okfalse
    \or
%    \end{macrocode}
% $B2$J8$NDL>oJ8;z!#7wE@$rIU$1$k!#(B
%    \begin{macrocode}
      \pxrr@oktrue
      \chardef\pxrr@check@char@temp\z@
    \or
%    \end{macrocode}
% $BOBJ8$NDL>oJ8;z!#7wE@$rIU$1$k!#(B
%    \begin{macrocode}
      \pxrr@oktrue
      \chardef\pxrr@check@char@temp\@ne
    \fi
%    \end{macrocode}
% $BLsJ*$N7wE@IU2C$,L58z$N>l9g$O!"0z?t$NJ8;z$,LsJ*$G$"$k$+8!::$7!"(B
% $B$=$&$G$"$k>l9g$O7wE@$rIU$1$J$$!#(B
%    \begin{macrocode}
    \ifnum\pxrr@k@full=\z@\ifpxrr@ok
      \pxrr@check@punct@char{`#1}\pxrr@check@char@temp
      \ifpxrr@ok \pxrr@okfalse
      \else \pxrr@oktrue
      \fi
    \fi\fi
    \ifpxrr@ok
      \pxrr@get@prebreakpenalty\@tempcnta{`#1}%
      \mathchardef\pxrr@k@prebreakpenalty\@tempcnta
      \pxrr@get@postbreakpenalty\@tempcnta{`#1}%
      \mathchardef\pxrr@k@postbreakpenalty\@tempcnta
    \fi
  }}%
}
%    \end{macrocode}
% \end{macro}
%
% \subsection{$B%a%$%s$G$9(B}
%
% \subsubsection{$B%(%s%H%j!<%]%$%s%H(B}
%
% \begin{macro}{\kenten}
% \begin{macro}{\jkenten}
% $B7wE@$N8x3+L?Na!#(B
% |\jkenten| $B$r4h6/$JL?Na$H$7$FDj5A$7$?>e$G!"(B|\kenten| $B$O$=$l$K(B
% $BE83+$5$l$k%^%/%m$K!JL$Dj5A$J$i$P!KDj5A$9$k!#(B
%    \begin{macrocode}
\AtBeginDocument{%
  \providecommand*{\kenten}{\jkenten}%
}
\newcommand*{\jkenten}{%
  \pxrr@k@prologue
  \pxrr@kenten
}
\pxrr@add@protect\jkenten
%    \end{macrocode}
% \end{macro}
% \end{macro}
%
% \begin{macro}{\pxrr@kenten}
% $B%*%W%7%g%s$N=hM}$r9T$&!#(B
%    \begin{macrocode}
\def\pxrr@kenten{%
  \@testopt\pxrr@kenten@a{}%
}
\def\pxrr@kenten@a[#1]{%
  \def\pxrr@option{#1}%
  \ifpxrr@safe@mode
%    \end{macrocode}
% $B0BA4%b!<%I$G$O7wE@5!G=$OL58z$J$N$G!"%U%)!<%k%P%C%/$H$7$F(B
% $B0z?t$N%F%-%9%H$r$=$N$^$^=PNO$9$k!#(B
%    \begin{macrocode}
    \expandafter\@firstofone
  \else
    \expandafter\pxrr@kenten@proc
  \fi
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@k@bind@param}
% $B!H8F=P;~JQ?t!I$X$N%3%T!<$r9T$&!#(B
%    \begin{macrocode}
\def\pxrr@k@bind@param{%
  \let\pxrr@c@ruby@font\pxrr@k@ruby@font
  \let\pxrr@c@size@ratio\pxrr@k@size@ratio
  \let\pxrr@c@inter@gap\pxrr@k@inter@gap
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@kenten@proc}
% |\pxrr@kenten@proc{|\jmeta{$B?FJ8;zNs(B}|}|\Means
% $B$3$l$,<jB3$NK\BN$H$J$k!#(B
%    \begin{macrocode}
\def\pxrr@kenten@proc#1{%
  \pxrr@prepare@fallback{#1}%
  \pxrr@k@bind@param
  \pxrr@assign@fsize
  \pxrr@k@parse@option\pxrr@option
  \pxrr@if@alive{%
    \pxrr@k@decompose{#1}%
    \let\pxrr@body@list\pxrr@res
    \pxrr@kenten@main
  }%
  \pxrr@kenten@exit
}
%    \end{macrocode}
% \end{macro}
%
% \subsubsection{$BAHHG=hM}(B}
%
% \begin{macro}{\pxrr@kenten@main}
% $B7wE@$NAHHG=hM}!#(B
%    \begin{macrocode}
\def\pxrr@kenten@main{%
  \setbox\pxrr@boxb\pxrr@hbox@to\z@{%
    \pxrr@use@ruby@font
    \hss\pxrr@k@the@mark\hss
  }%
  \let\pxrr@entry\pxrr@kenten@entry
  \let\pxrr@entry@kspan\pxrr@kenten@entry@kspan
  \let\pxrr@entry@ruby\pxrr@kenten@entry@ruby
  \let\pxrr@entry@kenten\pxrr@kenten@entry@kenten
  \let\pxrr@post\pxrr@k@list@post
  \pxrr@k@list@pre
  \pxrr@body@list
}
%    \end{macrocode}
% \end{macro}
%
% \subsubsection{$BA0=hM}(B}
%
% \begin{macro}{\pxrr@jprologue}
% $B7wE@MQ$N3+;O=hM}!#(B
%    \begin{macrocode}
\def\pxrr@k@prologue{%
  \ifpxrr@k@ghost
    \pxrr@jghost@char
    \pxrr@inhibitglue
  \fi
  \begingroup
    \ifpxrr@k@ghost
      \setbox\pxrr@boxa\hbox{\pxrr@jghost@char}%
      \kern-\wd\pxrr@boxa
    \fi
}
%    \end{macrocode}
% \end{macro}
%
% \subsubsection{$B8e=hM}(B}
%
% \begin{macro}{\pxrr@kenten@exit}
% $B=PNO$r=*$($F!":G8e$K8F$P$l$k%^%/%m!#(B
%    \begin{macrocode}
\def\pxrr@kenten@exit{%
  \ifpxrr@fatal@error
    \pxrr@fallback
  \fi
  \pxrr@k@epilogue
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@jepilogue}
% $B=*N;=hM}!#(B
%    \begin{macrocode}
\def\pxrr@k@epilogue{%
    \ifpxrr@k@ghost
      \setbox\pxrr@boxa\hbox{\pxrr@jghost@char}%
      \kern-\wd\pxrr@boxa
    \fi
  \endgroup
  \ifpxrr@k@ghost
    \pxrr@inhibitglue
    \pxrr@jghost@char
  \fi
}
%    \end{macrocode}
% \end{macro}
%
% \subsection{$B%G%P%C%0MQ=PNO(B}
%
%    \begin{macrocode}
\def\pxrr@debug@show@kenten@input{%
  \typeout{%
pxrr@k@the@mark=\meaning\pxrr@k@the@mark^^J%
pxrr@side=\meaning\pxrr@side^^J%
pxrr@body@list=\meaning\pxrr@body@list^^J%
  }%
}
%    \end{macrocode}
%
%^^A------------------------------------
% \section{$B<BAu!J7wE@%k%SF1;~IU2C!K(B}
%
% $B%3%s%\!*(B
%
% \subsection{$B8F=P;~%Q%i%a%?(B}
%
% \begin{macro}{\ifpxrr@apply@combo}
% $BD>8e$K<B9T$9$k%k%SL?Na$K$D$$$FF1;~IU2C$r9T$&$+!#(B
% $B%9%$%C%A!#(B
%    \begin{macrocode}
\newif\ifpxrr@apply@combo
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\ifpxrr@combo}
% $B8=:_<B9TCf$N%k%SL?Na$K$D$$$FF1;~IU2C$r9T$&$+!#(B
% $B%9%$%C%A!#(B
%    \begin{macrocode}
\newif\ifpxrr@combo
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@ck@ruby@font}
% \begin{macro}{\pxrr@ck@size@ratio}
% \begin{macro}{\pxrr@ck@inter@gap}
% \begin{macro}{\pxrr@ck@ruby@inter@gap}
% \begin{macro}{\pxrr@ck@side}
% \begin{macro}{\pxrr@ck@the@mark}
% \begin{macro}{\pxrr@ck@ruby@combo}
% $BF1;~IU2C;~$N7wE@B&$N8F=P;~%Q%i%a%?$NCM!#(B
%    \begin{macrocode}
\let\pxrr@ck@ruby@font\relax
\let\pxrr@ck@size@ratio\relax
\let\pxrr@ck@inter@gap\relax
\let\pxrr@ck@ruby@inter@gap\relax
\let\pxrr@ck@side\relax
\let\pxrr@ck@the@mark\relax
\let\pxrr@ck@ruby@combo\relax
%    \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
%
% \begin{macro}{\ifpxrr@ck@kenten@head}
% $BEv3:$N%k%SL?Na$,!"7wE@L?Na$N0z?t$N@hF,$K$"$k$+!#(B
%    \begin{macrocode}
\newif\ifpxrr@ck@kenten@head
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\ifpxrr@ck@kenten@end}
% $BEv3:$N%k%SL?Na$,!"7wE@L?Na$N0z?t$N@hF,$K$"$k$+!#(B
%    \begin{macrocode}
\newif\ifpxrr@ck@kenten@end
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@ck@bind@param}
% $B!H8F=P;~JQ?t!I$X$N%3%T!<$r9T$&!#(B
%    \begin{macrocode}
\def\pxrr@ck@bind@param{%
  \let\pxrr@ck@ruby@font\pxrr@c@ruby@font
  \let\pxrr@ck@size@ratio\pxrr@c@size@ratio
  \let\pxrr@ck@inter@gap\pxrr@c@inter@gap
  \let\pxrr@ck@ruby@inter@gap\pxrr@k@ruby@inter@gap
  \let\pxrr@ck@side\pxrr@side
  \let\pxrr@ck@the@mark\pxrr@k@the@mark
  \let\pxrr@ck@ruby@combo\pxrr@k@ruby@combo
  \pxrr@csletcs{ifpxrr@ck@kenten@head}{ifpxrr@k@first@entry}%
  \pxrr@csletcs{ifpxrr@ck@kenten@end}{ifpxrr@k@last@entry}%
}
%    \end{macrocode}
% \end{macro}

% \subsection{$B$=$NB>$NJQ?t(B}
%
% \begin{macro}{\pxrr@ck@zw}
% $B7wE@$NA43QI}!#(B
%    \begin{macrocode}
\let\pxrr@ck@zw\relax
%    \end{macrocode}
% \end{macro}
% \begin{macro}{\pxrr@ck@raise@P}
% $B%k%SB&$,(B |P| $B$G$"$k>l9g$N!"7wE@$N?bD>J}8~$N0\F0NL!#(B
% \Note $B7wE@B&$,(B |S| $B$G$"$k>l9g$OIiCM$K$J$k!#(B
%    \begin{macrocode}
\let\pxrr@ck@raise@P\relax
%    \end{macrocode}
% \end{macro}
% \begin{macro}{\pxrr@ck@raise@S}
% $B%k%SB&$,(B |S| $B$G$"$k>l9g$N!"7wE@$N?bD>J}8~$N0\F0NL!#(B
%    \begin{macrocode}
\let\pxrr@ck@raise@S\relax
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@ck@raise@t}
% $B%k%SB&$,N>B&%k%S$G$"$k>l9g$N!"7wE@$N?bD>J}8~$N0\F0NL!#(B
%    \begin{macrocode}
\let\pxrr@ck@raise@t\relax
%    \end{macrocode}
% \end{macro}
%
% \subsection{$B%*%W%7%g%s@09g@-8!::(B}
%
% \begin{macro}{\pxrr@ck@check@option}
% $BF1;~IU2C$N$?$a$N8F=P;~%Q%i%a%?$ND4@0!#(B
%    \begin{macrocode}
\def\pxrr@ck@check@option{%
  \ifpxrr@ck@kenten@head
    \let\pxrr@bintr@\@empty
    \let\pxrr@bscomp=.\relax
    \pxrr@bnobrtrue
  \fi
  \ifpxrr@ck@kenten@end
    \let\pxrr@aintr@\@empty
    \let\pxrr@ascomp=.\relax
    \pxrr@anobrtrue
  \fi
}
%    \end{macrocode}
% \end{macro}
%
% \subsection{$B%U%)%s%H%5%$%:(B}
%
% \begin{macro}{\pxrr@ck@assign@fsize}
% $B%U%)%s%H$K4XO"$9$k@_Dj!#(B
%    \begin{macrocode}
\def\pxrr@ck@assign@fsize{%
%    \end{macrocode}
% |\pxrr@ck@zw| $B$NCM$r5a$a$k!#(B
%    \begin{macrocode}
  \begingroup
    \@tempdima=\f@size\p@
    \@tempdima\pxrr@ck@size@ratio\@tempdima
    \edef\pxrr@ruby@fsize{\the\@tempdima}%
    \let\pxrr@c@ruby@font\pxrr@ck@ruby@font
    \pxrr@use@ruby@font
    \pxrr@get@zwidth\pxrr@ck@zw
    \global\let\pxrr@gtempa\pxrr@ck@zw
  \endgroup
  \let\pxrr@ck@zw\pxrr@gtempa
%    \end{macrocode}
% |\pxrr@ck@raise@P|$B!"(B|\pxrr@ck@raise@S| $B$NCM$r7W;;$9$k!#(B
%    \begin{macrocode}
  \ifcase\pxrr@ck@side
%    \end{macrocode}
% $B7wE@B&$,(B |P| $B$N>l9g!#(B
%    \begin{macrocode}
    \@tempdimc\pxrr@ck@zw
    \advance\@tempdimc-\pxrr@htratio\@tempdimc
    \@tempdima\pxrr@ruby@raise\relax
    \@tempdimb\pxrr@ruby@zw\relax
    \advance\@tempdima\pxrr@htratio\@tempdimb
    \@tempdimb\pxrr@body@zw\relax
    \advance\@tempdima\pxrr@ck@ruby@inter@gap\@tempdimb
    \advance\@tempdima\@tempdimc
    \edef\pxrr@ck@raise@P{\the\@tempdima}%
    \@tempdima\pxrr@body@zw\relax
    \@tempdima\pxrr@htratio\@tempdima
    \@tempdimb\pxrr@body@zw\relax
    \advance\@tempdima\pxrr@ck@inter@gap\@tempdimb
    \advance\@tempdima\@tempdimc
    \edef\pxrr@ck@raise@S{\the\@tempdima}%
    \let\pxrr@ck@raise@t\pxrr@ck@raise@P
  \or
%    \end{macrocode}
% $B7wE@B&$,(B |S| $B$N>l9g!#(B
%    \begin{macrocode}
    \@tempdimc\pxrr@ck@zw
    \@tempdimc\pxrr@htratio\@tempdimc
    \@tempdima-\pxrr@ruby@lower\relax
    \@tempdimb\pxrr@ruby@zw\relax
    \advance\@tempdimb-\pxrr@htratio\@tempdimb
    \advance\@tempdima-\@tempdimb
    \@tempdimb\pxrr@body@zw\relax
    \advance\@tempdima-\pxrr@ck@ruby@inter@gap\@tempdimb
    \advance\@tempdima-\@tempdimc
    \edef\pxrr@ck@raise@S{\the\@tempdima}%
    \@tempdima-\pxrr@body@zw\relax
    \advance\@tempdima-\pxrr@htratio\@tempdima
    \@tempdimb\pxrr@body@zw\relax
    \advance\@tempdima-\pxrr@ck@inter@gap\@tempdimb
    \advance\@tempdima-\@tempdimc
    \edef\pxrr@ck@raise@P{\the\@tempdima}%
    \let\pxrr@ck@raise@t\pxrr@ck@raise@S
  \fi
}
%    \end{macrocode}
% \end{macro}
%
% \subsection{$B%V%m%C%/Kh$NAHHG(B}
%
% \begin{macro}{\pxrr@ck@body@natwd}
% $B?FJ8;zNs$N<+A3D9!#(B
%    \begin{macrocode}
\let\pxrr@ck@body@natwd\relax
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@ck@locate}
% $B7wE@Ns$N%Q%?!<%s;XDj!#(B
%    \begin{macrocode}
\let\pxrr@ck@locate\relax
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@ck@kenten@list}
% $B7wE@Ns$N%j%9%H!#(B
%    \begin{macrocode}
\let\pxrr@ck@kenten@list\relax
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@ck@compose}
% |#1| $B$K?FJ8;z%F%-%9%H!"(B|\pxrr@ck@body@natwd| $B$K?FJ8;z$N<+A3D9!"(B
% $B%\%C%/%9(B0$B$K%k%S=PNO!"(B|\pxrr@boxa| $B$K?FJ8;z=PNO!"(B
% |\pxrr@ck@locate| $B$K%Q%?!<%s$,F~$C$F$$$kA0Ds$G!"(B
% $B%\%C%/%9(B0$B$K7wE@$rDI2C$9$k!#(B
% 
%    \begin{macrocode}
\def\pxrr@ck@compose#1{%
%    \end{macrocode}
% $B7wE@$rAH$s$@%\%C%/%9$r:n$k!#(B
%    \begin{macrocode}
  \setbox\tw@\pxrr@hbox@to\z@{%
    \@tempdima=\f@size\p@
    \@tempdima\pxrr@ck@size@ratio\@tempdima
    \edef\pxrr@ruby@fsize{\the\@tempdima}%
    \let\pxrr@c@ruby@font\pxrr@ck@ruby@font
    \pxrr@use@ruby@font
    \hss\pxrr@ck@the@mark\hss
  }%
%    \end{macrocode}
% $B?FJ8;z%F%-%9%H$rJ,2r$7$?8e!"%j%9%H(B |\pxrr@res| $B$r(B
% $B7wE@$N%j%9%H$KCV$-49$($k!#(B
%    \begin{macrocode}
  \pxrr@save@listproc
  \pxrr@decompose{#1}%
  \def\pxrr@pre{%
    \let\pxrr@res\@empty
    \pxrr@ck@compose@entry\pxrr@pre
  }%
  \def\pxrr@inter{%
    \pxrr@ck@compose@entry\pxrr@inter
  }%
  \def\pxrr@post{%
    \pxrr@appto\pxrr@res{\pxrr@post}%
  }%
  \pxrr@res
  \pxrr@restore@listproc
  \let\pxrr@natwd\pxrr@ck@body@natwd
%    \end{macrocode}
% $B7wE@%j%9%H$r6QEyG[CV$9$k!#(B
%    \begin{macrocode}
  \pxrr@evenspace@int\pxrr@ck@locate\pxrr@boxb\relax
      {\wd\pxrr@boxa}%
%    \end{macrocode}
% $B9g@.=hM}!#(B
%    \begin{macrocode}
  \setbox\z@\hbox{%
    \unhcopy\z@
    \kern-\wd\z@
    \ifcase\pxrr@side
      \raise\pxrr@ck@raise@P
    \or
      \raise\pxrr@ck@raise@S
    \or
      \raise\pxrr@ck@raise@t
    \fi
    \hb@xt@\wd\pxrr@boxa{\hss\copy\pxrr@boxb\hss}%
  }%
}
\def\pxrr@ck@compose@entry#1#2{%
  \setbox\pxrr@boxb\pxrr@hbox{#2}%
  \edef\pxrr@tempa{%
    \noexpand\pxrr@appto\noexpand\pxrr@res{\noexpand#1{%
        \hb@xt@\the\wd\pxrr@boxb{\hss\copy\tw@\hss}}}%
  }\pxrr@tempa
}
%    \end{macrocode}
% \end{macro}
%
%^^A------------------------------------
% \section{$B<BAu!'(Bhyperref$BBP:v(B}
%
% PDF$BJ8;zNsCf$G$O%k%SL?Na$d7wE@L?Na$,!HL5Fq$J=PNO!I$r$9$k$h$&$K$9$k!#(B
% $B8=>u$G$O!"%k%S!&7wE@$H$b$K?FJ8;z$N$_$r=PNO$9$k$3$H$K$9$k!#(B
%
% \begin{macro}{\pxrr@dumb@sub}
% $B%*%W%7%g%sItJ,$rFI$_Ht$P$9Jd=u%^%/%m!#(B
%    \begin{macrocode}
\def\pxrr@dumb@sub#1#2#{#1}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@dumb@ruby}
% $BL5Fq$J%k%SL?Na!#(B
%    \begin{macrocode}
\def\pxrr@dumb@ruby{%
  \pxrr@dumb@sub\pxrr@dumb@ruby@
}
\def\pxrr@dumb@ruby@#1#2{#1}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@dumb@truby}
% $BL5Fq$JN>B&%k%SL?Na!#(B
%    \begin{macrocode}
\def\pxrr@dumb@truby{%
  \pxrr@dumb@sub\pxrr@dumb@truby@
}
\def\pxrr@dumb@truby@#1#2#3{#1}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pxrr@dumb@tkenten}
% $BL5Fq$J7wE@L?Na!#(B
% \Note |\kspan| $B$b$3$NDj5A$rMxMQ$9$k!#(B
%    \begin{macrocode}
\def\pxrr@dumb@kenten{%
  \pxrr@dumb@sub\pxrr@dumb@kenten@
}
\def\pxrr@dumb@kenten@#1{#1}
%    \end{macrocode}
% \end{macro}
%
% \PKN{hyperref}$B$N(B |\pdfstringdef| $BMQ$N%U%C%/(B |\pdfstringdefPreHook|
% $B$K>e=q$-=hM}$rDI5-$9$k!#(B
%    \begin{macrocode}
\providecommand*\pdfstringdefPreHook{}
\g@addto@macro\pdfstringdefPreHook{%
%    \end{macrocode}
% |\ruby| $B$H(B |\kenten| $B$O!VK\%Q%C%1!<%8$NL?Na$G$"$k$+!W$N8!::$,I,MW!#(B
%    \begin{macrocode}
  \ifx\pxrr@cmd@ruby\ruby
    \let\ruby\pxrr@dumb@ruby
  \fi
  \let\jruby\pxrr@dumb@ruby
  \let\aruby\pxrr@dumb@ruby
  \let\truby\pxrr@dumb@truby
  \let\atruby\pxrr@dumb@truby
  \ifx\pxrr@cmd@kenten\kenten
    \let\kenten\pxrr@dumb@kenten
  \fi
  \let\kspan\pxrr@dumb@kenten
}
%    \end{macrocode}
%
%^^A------------------------------------
% \Finale
%
\endinput
