summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNorbert Preining <preining@logic.at>2012-12-11 02:16:31 +0000
committerNorbert Preining <preining@logic.at>2012-12-11 02:16:31 +0000
commitf4759ec3810e030fae93268f1359351c1fe3a3f4 (patch)
treed947dce23e822c879bc272a94726278fc807ba53
parent427f60468268e043c941e28ab3196807ef1f9724 (diff)
new platex package pxrubrica (11Dec)
git-svn-id: svn://tug.org/texlive/trunk@28494 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r--Master/texmf-dist/doc/platex/pxrubrica/LICENSE24
-rw-r--r--Master/texmf-dist/doc/platex/pxrubrica/README83
-rw-r--r--Master/texmf-dist/doc/platex/pxrubrica/pxrubrica-en.pdfbin0 -> 31606 bytes
-rw-r--r--Master/texmf-dist/doc/platex/pxrubrica/pxrubrica-en.tex153
-rw-r--r--Master/texmf-dist/doc/platex/pxrubrica/pxrubrica.pdfbin0 -> 148789 bytes
-rw-r--r--Master/texmf-dist/doc/platex/pxrubrica/sample/test-jlreq.pdfbin0 -> 12473 bytes
-rw-r--r--Master/texmf-dist/doc/platex/pxrubrica/sample/test-jlreq.tex109
-rw-r--r--Master/texmf-dist/doc/platex/pxrubrica/sample/test-sf.pdfbin0 -> 4098 bytes
-rw-r--r--Master/texmf-dist/doc/platex/pxrubrica/sample/test-sf.tex116
-rw-r--r--Master/texmf-dist/doc/platex/pxrubrica/sample/test-toc.pdfbin0 -> 6565 bytes
-rw-r--r--Master/texmf-dist/doc/platex/pxrubrica/sample/test-toc.tex19
-rw-r--r--Master/texmf-dist/source/platex/pxrubrica/pxrubrica.dtx4257
-rw-r--r--Master/texmf-dist/source/platex/pxrubrica/pxrubrica.ins4
-rw-r--r--Master/texmf-dist/tex/platex/pxrubrica/pxrubrica.sty1861
-rw-r--r--Master/tlpkg/tlpsrc/collection-langcjk.tlpsrc1
-rw-r--r--Master/tlpkg/tlpsrc/pxrubrica.tlpsrc0
16 files changed, 6627 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/platex/pxrubrica/LICENSE b/Master/texmf-dist/doc/platex/pxrubrica/LICENSE
new file mode 100644
index 00000000000..e1ac82a8bb1
--- /dev/null
+++ b/Master/texmf-dist/doc/platex/pxrubrica/LICENSE
@@ -0,0 +1,24 @@
+本ソフトウェアは MIT ライセンスの下で配布されます。著作権は作者である
+「八登崇之(別名 ZR)」に属します。また本ソフトウェアは無保証です。
+
+The MIT License
+
+Copyright (c) 2009-2011 Takayuki YATO (a.k.a. "ZR")
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/Master/texmf-dist/doc/platex/pxrubrica/README b/Master/texmf-dist/doc/platex/pxrubrica/README
new file mode 100644
index 00000000000..14b8fb12725
--- /dev/null
+++ b/Master/texmf-dist/doc/platex/pxrubrica/README
@@ -0,0 +1,83 @@
+==================================================
+== PXrubrica バンドル v1.0 <2012/04/30> ==
+== 八登 崇之 Takayuki YATO; aka."ZR")==
+==================================================
+(This file is encoded in UTF-8.
+There is a brief documentation in English below.)
+
+JIS 規格「JIS X 4051」および W3C 技術ノート「日本語組版処理の要件」(*)
+(*2)で述べられているような、日本において一般的な様式に従ってルビを付ける
+機能を提供する。
+
+(*) http://www.w3.org/TR/jlreq/ja/ (日本語版)
+ http://www.w3.org/TR/jlreq/ (正式の英語版)
+
+■ 対応環境
+
+ ・TeX フォーマット: pLaTeX (派生エンジン含む)
+ ・DVI ウェア: pTeX 対応のもの
+
+■ 構成物
+
+ pxrubrica.sty: 本体パッケージ
+ pxrubrica.pdf: pxrubrica.sty の説明書
+ pxrubrica.dtx: DocStrip ソースファイル
+ pxrubrica.ins: DocStrip インストーラファイル
+ sample/*.tex: サンプル文書
+
+ パッケージの使用に必要なのは *.sty ファイルのみである。
+
+■ インストール
+
+ TDS 1.1 に従ったシステムでは、各ファイルを次の場所に移動する。
+ ・*.sty → $TEXMF/tex/platex/pxrubrica/
+
+ W32TeX を C:\usr\local にインストールした場合は以下の通り。
+ ・*.sty
+ → C:\usr\local\share\texmf\local\tex\platex\pxrubrica\
+ 残りのファイルは実行には不要である。
+
+ (参考) DocStrip ソースからの抽出
+ 説明書(pxrubrica.dvi)
+ platex pxrubrica.dtx
+ 本体(pxrubrica.sty)
+ ptex -kanji=jis pxrubrica.ins
+ 同梱されている *.pdf、*.sty ファイルは上記の操作で生成したもので
+ ある。(DVI → PDF 変換は dvipdfmx で行った)
+
+==================================================
+== PXrubrica Package Bundle v1.0 <2011/09/04> ==
+== Takayuki YATO (aka."ZR")==
+==================================================
+
+This package provides function to add ruby annotation (furigana) that
+follows the style conventional in Japanese typography, as described in
+the W3C technical note ``Requirements for Japanese Text Layout'' (*)
+and the JIS specification JIS X 4051.
+
+(*) http://www.w3.org/TR/jlreq/ (in English)
+
+* SYSTEM REQUIREMENTS
+
+ - TeX format: pLaTeX (including its derivative engines)
+ - DVI ware: all that support pTeX
+
+* CONTENT
+
+ pxrublica.sty: the main package
+ pxrubrica.pdf: the manual for pxrubrica.sty
+ pxrubrica.dtx: DocStrip source file
+ pxrubrica.ins: DocStrip installer file
+ sample/*.tex: sample documents
+
+ You need only *.sty files to make the package work.
+
+ # Currently the manual is provided only in Japanese....
+
+* INSTALLATION
+
+ In a system compliant to TDS 1.1, move the files as follows:
+ - *.sty --> $TEXMF/tex/platex/pxrubrica/
+
+ And rehash your TEXMF trees if necessary.
+
diff --git a/Master/texmf-dist/doc/platex/pxrubrica/pxrubrica-en.pdf b/Master/texmf-dist/doc/platex/pxrubrica/pxrubrica-en.pdf
new file mode 100644
index 00000000000..3d0d643d9e4
--- /dev/null
+++ b/Master/texmf-dist/doc/platex/pxrubrica/pxrubrica-en.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/platex/pxrubrica/pxrubrica-en.tex b/Master/texmf-dist/doc/platex/pxrubrica/pxrubrica-en.tex
new file mode 100644
index 00000000000..f2578d55095
--- /dev/null
+++ b/Master/texmf-dist/doc/platex/pxrubrica/pxrubrica-en.tex
@@ -0,0 +1,153 @@
+\documentclass[a4paper]{article}
+\usepackage[scale=0.8]{geometry}
+\usepackage{setspace}
+\usepackage{pxrubrica}
+\newcommand*{\vb}{\symbol{`\|}}
+\newcommand*{\Opt}[1]{\texttt{#1}}
+\newcommand*{\PKN}[1]{\textsf{#1}}
+\newcommand*{\Eg}{E.\,g.\mbox{}}
+\newcommand*{\eg}{e.\,g.\mbox{}}
+\newcommand*{\ie}{i.\,e.\mbox{}}
+\newcommand*{\myfileversion}{1.0}
+\newcommand*{\myfiledate}{2011/09/04}
+\newsavebox{\myexample}
+\begin{document}
+
+\title{The \PKN{pxrubrica} package}
+\author{Takayuki YATO\quad (aka ``ZR'')}
+\date{\myfileversion \quad[\myfiledate]}
+\maketitle
+
+\setstretch{1.5}
+
+\section{Package Loading}
+
+There is no options available.
+
+\begin{quote}\small\begin{verbatim}
+\usepackage{pxrubrica}
+\end{verbatim}\end{quote}
+
+\section{Basic Usage}
+
+\subsection{Very Basic}
+
+\begin{itemize}
+\item Mono ruby (\Opt{m} option): one ruby block per one kanji.\\
+\Eg\quad
+\verb+\ruby[m]{$BBk(B}{$B$?$+(B}+ $\rightarrow$ \ruby[m]{$BBk(B}{$B$?$+(B}\quad
+\verb+\ruby[m]{$Brt(B}{$B$&$0$$$9(B}+ $\rightarrow$ \ruby[m]{$Brt(B}{$B$&$0$$$9(B}
+\item Group ruby (\Opt{g} option): one ruby block per kanji sequence.\\
+\Eg\quad
+\verb+\ruby[g]{$B1@?}(B}{$B$R$P$j(B}+ $\rightarrow$ \ruby[g]{$B1@?}(B}{$B$R$P$j(B}\quad
+\verb+\ruby[g]{$BITG!5"(B}{$B$[$H$H$.$9(B}+ $\rightarrow$ \ruby[g]{$BITG!5"(B}{$B$[$H$H$.$9(B}
+\item Jukugo ruby (\Opt{j} option): one ruby block per kanji, but read as whole.\\
+\Eg\quad
+\verb+\ruby[j]{$B9&?}(B}{$B$/(B|$B$8$c$/(B}+ $\rightarrow$ \ruby[j]{$B9&?}(B}{$B$/(B|$B$8$c$/(B}\quad
+\verb+\ruby[j]{$B<7LLD;(B}{$B$7$A(B|$B$a$s(B|$B$A$g$&(B}+ $\rightarrow$ \ruby[j]{$B<7LLD;(B}{$B$7$A(B|$B$a$s(B|$B$A$g$&(B}
+\item A \verb+|+ symbol in a ruby string denotes the boundary of reading for each kanji
+(\ie\ $B9&(B = $B$/(B and $B?}(B = $B$8$c$/(B).
+It is not needed in group ruby.
+\item Comparison of typeset results:
+\begin{quote}\begin{tabular}{ll@{\ }l@{\ }c*3{@{\quad}c}}
+Mono & (\verb+\ruby[m]{$B>.H7(B}{$B$3(B|$B$P$H(B}+) & $\rightarrow$
+ & \ruby[m]{$B>.H7(B}{$B$3(B|$B$P$H(B}
+ & \ruby[m]{$Bs5ry(B}{$B$;$-(B|$B$l$$(B}
+ & \ruby[m]{$BMkD;(B}{$B$i$$(B|$B$A$g$&(B}
+ & \ruby[m]{$B1m(B}{$B$D$P$a(B}
+\\
+Group & (\verb+\ruby[g]{$B>.H7(B}{$B$3$P$H(B}+) & $\rightarrow$
+ & \ruby[g]{$B>.H7(B}{$B$3$P$H(B}
+ & \ruby[g]{$Bs5ry(B}{$B$;$-$l$$(B}
+ & \ruby[g]{$BMkD;(B}{$B$i$$$A$g$&(B}
+ & \ruby[g]{$B1m(B}{$B$D$P$a(B}
+\\
+Jukugo & (\verb+\ruby[j]{$B>.H7(B}{$B$3(B|$B$P$H(B}+) & $\rightarrow$
+ & \ruby[j]{$B>.H7(B}{$B$3(B|$B$P$H(B}
+ & \ruby[j]{$Bs5ry(B}{$B$;$-(B|$B$l$$(B}
+ & \ruby[j]{$BMkD;(B}{$B$i$$(B|$B$A$g$&(B}
+ & \ruby[j]{$B1m(B}{$B$D$P$a(B}
+\end{tabular}\end{quote}
+Usually When a jukugo has per-character reading then jukugo ruby
+(\Opt{j}) is preferred, otherwise (\Opt{g}) is.
+If you particularly intend to show the per-character reading
+for a jukugo, you might use the \Opt{m} option.
+Note that all of \Opt{m}, \Opt{g} and \Opt{j} lead to
+the same result for ruby to a single kanji.
+\item You can give a default value of option
+using the \verb+\rubysetup+ command;
+\verb+\rubysetup{g}\ruby{$B737\(B}{$B$7$c$b(B}+ is
+equivalent to \verb+\ruby[g]{$B737\(B}{$B$7$c$b(B}+.
+The ``default of default'' is \Opt{|cjPeF|}.
+\end{itemize}
+
+\subsection{Intrusion/Protrusion}
+
+\begin{itemize}
+\item Control of ruby intrusion:
+\begin{center}\begin{tabular}{ll@{\ }l@{\ }c*2{@{\quad}c}}
+No intrusion & \verb+$B$3$N(B\ruby[|-|]{$Bs'(B}{$B$+$5$5$.(B}$B$N(B+ & $\rightarrow$
+ & $B$3$N(B\ruby[|-|]{$Bs'(B}{$B$+$5$5$.(B}$B$N(B
+ & $B$3$N(B\ruby[|-|]{$BsA(B}{$B$3$&$N$H$j(B}$B$N(B
+ & $B$3$N(B\ruby[|-|]{$B1-(B}{$B$&(B}$B$N(B
+\\
+Small intrusion & \verb+$B$3$N(B\ruby[(-)]{$Bs'(B}{$B$+$5$5$.(B}$B$N(B+ & $\rightarrow$
+ & $B$3$N(B\ruby[(-)]{$Bs'(B}{$B$+$5$5$.(B}$B$N(B
+ & $B$3$N(B\ruby[(-)]{$BsA(B}{$B$3$&$N$H$j(B}$B$N(B
+ & $B$3$N(B\ruby[(-)]{$B1-(B}{$B$&(B}$B$N(B
+\\
+Big intrusion & \verb+$B$3$N(B\ruby[<->]{$Bs'(B}{$B$+$5$5$.(B}$B$N(B+ & $\rightarrow$
+ & $B$3$N(B\ruby[<->]{$Bs'(B}{$B$+$5$5$.(B}$B$N(B
+ & $B$3$N(B\ruby[<->]{$BsA(B}{$B$3$&$N$H$j(B}$B$N(B
+ & $B$3$N(B\ruby[<->]{$B1-(B}{$B$&(B}$B$N(B
+\end{tabular}\end{center}
+\item If you require ``ruby output may intrude to kana but not to kanji,''
+then you might want to do ``\verb+$B$3$N(B\ruby[<-|]{$Bs'(B}{$B$+$5$5$.(B}$BEy(B+''
+to get ``$B$3$N(B\ruby[<-|]{$Bs'(B}{$B$+$5$5$.(B}$BEy(B.''
+\item To specify a basic mode (\Opt{m}/\Opt{g}/\Opt{j})
+and intrusion at a time, you can use option strings
+such as \Opt{|g|} and \Opt{|m>}.
+In fact, the symbol \Opt{-} works as placeholder
+for basic mode and means the use of default value.
+\item Control of ruby protrusion:
+the string \Opt{||} supresses the protrusion.
+\begin{quote}
+\begin{lrbox}{\myexample}
+\small$\leftarrow$ \verb+\ruby[||->]{$B?}(B}{$B$9$:$a(B}+
+\end{lrbox}
+\fbox{\parbox{.42\linewidth}{%
+\ruby[||->]{$B?}(B}{$B$9$:$a(B}$B$N!D(B
+\quad \usebox{\myexample}%
+\rule{0pt}{12pt}\\
+$B%$%s%3$N(B
+}}\quad vs.\quad
+\begin{lrbox}{\myexample}
+\small$\leftarrow$ \verb+\ruby[|->]{$B?}(B}{$B$9$:$a(B}+
+\end{lrbox}
+\fbox{\parbox{.42\linewidth}{%
+\ruby[|->]{$B?}(B}{$B$9$:$a(B}$B$N!D(B
+\quad \usebox{\myexample}%
+\rule{0pt}{12pt}\\
+$B%$%s%3$N(B
+}}
+\end{quote}
+\end{itemize}
+
+\subsection{More Commands}
+
+\begin{itemize}
+\item \verb+\aruby+: attaches ruby to an alphabet (non-CJK) string.
+\par\noindent\Eg\quad
+\verb+\aruby{Get out}{$B%2%i%&%C(B}!+ $\rightarrow$
+ \aruby{Get out}{$B%2%i%&%C(B}!
+\item \verb+\rubyfontsetup+: specifies the font used for ruby output.
+For example, when you want to attach mincho-font ruby
+to gothic-font kanji string you can do as follows:
+\par\noindent
+{\small
+\verb+\rubyfontsetup{\mcfamily}$B$3$N(B{\gtfamily \ruby[j]{$BL@D+BN(B}{$B$_$s(B|$B$A$g$&(B|$B$?$$(B}}+}
+$\rightarrow$
+{\rubyfontsetup{\mcfamily}$B$3$N(B{\gtfamily \ruby[j]{$BL@D+BN(B}{$B$_$s(B|$B$A$g$&(B|$B$?$$(B}}}
+\end{itemize}
+
+\end{document}
diff --git a/Master/texmf-dist/doc/platex/pxrubrica/pxrubrica.pdf b/Master/texmf-dist/doc/platex/pxrubrica/pxrubrica.pdf
new file mode 100644
index 00000000000..bce647153a6
--- /dev/null
+++ b/Master/texmf-dist/doc/platex/pxrubrica/pxrubrica.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/platex/pxrubrica/sample/test-jlreq.pdf b/Master/texmf-dist/doc/platex/pxrubrica/sample/test-jlreq.pdf
new file mode 100644
index 00000000000..419f582dce6
--- /dev/null
+++ b/Master/texmf-dist/doc/platex/pxrubrica/sample/test-jlreq.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/platex/pxrubrica/sample/test-jlreq.tex b/Master/texmf-dist/doc/platex/pxrubrica/sample/test-jlreq.tex
new file mode 100644
index 00000000000..0bc02754187
--- /dev/null
+++ b/Master/texmf-dist/doc/platex/pxrubrica/sample/test-jlreq.tex
@@ -0,0 +1,109 @@
+\documentclass{jsarticle}
+\usepackage{otf}
+\usepackage{plext}
+\usepackage{pxrubrica}
+\rubysetup{<j>} % nꃋrŁAאڕɔp܂ł̂‚̂Ƃ
+ % \rubysetup ̂(pbP[W)l |cj| ł
+\rubyintergap{0.04} % rƐe̊Ԃ̋(l 0)
+\begin{document}
+
+\begin{center}
+%======================================= cg
+\begin{minipage}<t>{20zw}
+%--------------------------------------- 3.3.1
+\ruby{Nq}{|}\ruby{a}{}\ruby{}{ǂ}B\par
+%%%% mr(IvV=m)
+ % e \CID{7674} (qrّ̎)ꕶƈ { } Kv
+\ruby[m]{l}{Ђ}\ruby[m]{q}{}\ruby[m]{{\CID{7674}}}{}܂\par
+\ruby[m]{S}{|}\ruby[m]{p}{ق|}\ruby[m]{Î}{悤|}B\par
+%%%% nꃋr(IvV=j)
+\ruby[j]{S}{|}\ruby[j]{p}{ق|}\ruby[j]{Î}{悤|}B\par
+\ruby[j]{꒬}{||悤}\quad
+ % ׂ̕ɐiĂ͂ȂɁq|r
+\ruby[j|]{}{|}\ruby[|j]{}{悤}\par
+%%%% O[vr(IvV=g)
+\ruby[g]{z}{}\quad \ruby[g]{}{‚}\quad \ruby[g]{c}{Ȃ}\par
+\rubysetup{g} % lO[vrɕύX
+\ruby{E}{C^[tG[X}\quad \ruby{}{AW[}\quad
+\ruby{ڋq}{NCAg}\quad \ruby{͌^}{f}\par
+\ruby{ҏW}{{editor}}\quad \ruby{{editor}}{GfB^[}\par
+\rubysetup{j} % lnꃋrɖ߂
+%--------------------------------------- 3.3.3
+\ruby{}{̂ڂ}\quad \ruby{ҎO}{|ւ||}\par
+ % Or͖Ή
+\begin{quote} % 傫ȕTCYł̗
+ \LARGE\rubysizeratio{0.375} % kύX(0.5)
+ \ruby{ҎO}{|ւ||}
+\end{quote}
+%--------------------------------------- 3.3.4
+%%%% r(\truby ) (O[vr̂)
+\truby{}{ƂȂ}{‚}
+\par\medskip % r͖̍̂ł̂܂܂ƎsƏdȂ
+\rubysetup{m} %------------------------- 3.3.5
+\ruby{}{₭}\par
+%%%% t(IvV=c)͊
+Ŗʂ\ruby{n}{}\quad
+%%%% t(IvV=h)
+Ŗʂ\ruby[h]{n}{}\par
+\ruby{}{Ƃ}\par
+ % q||r̒[悤ɂȂG q|rƂ̈Ⴂɒ
+\ruby[||-]{{}{}\quad \ruby[-||]{{}{}\par
+\ruby[||-]{{}{}\quad \ruby[|-|]{{}{}\par
+\rubysetup{g} %------------------------- 3.3.6
+\ruby{q}{R[fcNX}\par
+\rubysetup{j} %------------------------- 3.3.7
+\ruby{XJ}{|䂤}\quad \ruby{ؕ|}{|}\par
+\ruby[h]{XJ}{|䂤}\quad \ruby[h]{ؕ|}{|}\par
+\ruby{V}{䂤|}\quad \ruby{}{|悤}\quad \ruby{A}{悤|}\par
+\ruby{}{|悤}\quad \ruby{ے}{悤|悤}\par
+% un̍\l@v͔Ή
+% nꃋrŝ́uvcc
+\end{minipage}
+\par %================================== g
+%--------------------------------------- 3.3.1
+\ruby{Nq}{|}\ruby{a}{}\ruby{}{ǂ}B\par
+\ruby[g]{ҏW}{{editor}}\quad \ruby[g]{{editor}}{GfB^[}\par
+\rubysetup{m} %------------------------- 3.3.5
+Ŗʂ\ruby{n}{}\par % gł [h] ͎gps
+\ruby{}{Ƃ}\par
+\rubysetup{g} %------------------------- 3.3.6
+\ruby{q}{R[fcNX}\par
+\ruby{͌^}{f}\quad \ruby{p}{CZX}\par
+{\rubystretchprop{0}{1}{0}% 擪E𑵂
+\ruby{͌^}{f}\quad \ruby{p}{CZX}}\par
+\ruby{Ȃ̐ꑜ}{rG^}\par % Iɒ
+\ruby{ڋq}{NCAg}\quad \ruby{E}{C^[tG[X}\par
+{\rubystretchprop{0}{1}{0}% 擪E𑵂
+\ruby{ڋq}{NCAg}\quad \ruby{E}{C^[tG[X}}\par
+\rubysetup{j} %------------------------- 3.3.7
+\ruby{XJ}{|䂤}\quad \ruby{ؕ|}{|}\par
+\end{center}
+%
+\pagebreak
+%
+\begin{center}
+%======================================= cg
+\begin{minipage}<t>{20zw}
+%--------------------------------------- 3.3.8
+\rubysetup{<->} % rSp܂ł̂̂lƂ
+\ruby{l}{Ђ}\ruby{}{}\ruby{}{}\ruby{c}{̂}\par
+̕ɂ\ruby{}{ւ}E\ruby{}{ނ}E\ruby{r}{₭}E\ruby{}{‚}\par
+̕ɂ\ruby{}{ւ}A\ruby{}{ނ}A\ruby{r}{₭}A\ruby{}{‚}\par
+\newcommand*{\\}{\CID{7642}} % \CID{...} }Nɂ { } svɂȂ
+\ruby{\\}{킳}̍DȐl\ruby{}{ӂƂ}悭A\ruby{w}{Ђ̂}\par
+̕ɂ́u\ruby{}{ւ}vu\ruby{}{ނ}vu\ruby{r}{₭}vu\ruby{}{‚}v\par
+\ruby[-|]{\\}{킳}DȐl\ruby[-|]{}{ӂƂ}悭A\ruby[-|]{w}{Ђ̂}ނ\par
+\rubysetup{(-)} % rp܂ł̂̂lƂ
+\ruby{\\}{킳}̍DȐl\ruby{}{ӂƂ}悭A\ruby{w}{Ђ̂}\par
+\ruby{\\}{킳}DȐl\ruby{}{ӂƂ}悭A\ruby{w}{Ђ̂}ނ\par
+\rubysetup{<->} % rSp܂łɖ߂
+\ruby{a}{݂}RSTUVWXOPQRSTUVWX
+PQRSTUiWBjPQRSTUVWX\ruby{a}{݂}PQRcc\par
+{\gtfamily $\downarrow$ ͏C`LĂ܂}\par
+ % ‚܂\ߍsEsɗ邱Ƃzē͂ςĂ
+\ruby[||g|]{}{ANZT[}TUVWXOPQRSTUVWXO
+PQRSTUVWXOPQRSTU\ruby[|g||]{}{ANZT[}PQRcc\par
+\end{minipage}
+\end{center}
+
+\end{document}
diff --git a/Master/texmf-dist/doc/platex/pxrubrica/sample/test-sf.pdf b/Master/texmf-dist/doc/platex/pxrubrica/sample/test-sf.pdf
new file mode 100644
index 00000000000..dd272273a7d
--- /dev/null
+++ b/Master/texmf-dist/doc/platex/pxrubrica/sample/test-sf.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/platex/pxrubrica/sample/test-sf.tex b/Master/texmf-dist/doc/platex/pxrubrica/sample/test-sf.tex
new file mode 100644
index 00000000000..697340b1403
--- /dev/null
+++ b/Master/texmf-dist/doc/platex/pxrubrica/sample/test-sf.tex
@@ -0,0 +1,116 @@
+\documentclass{jsarticle}
+\usepackage{otf}
+\usepackage{plext}
+\usepackage{pxrubrica}
+\rubysetup{<->} % i
+% \rubyintergap 0 ̂܂
+\begin{document}
+
+\begin{center}
+\begin{minipage}<t>{20zw}
+%--------------------------------------- 10.1
+%% tr
+\rubysetup{j}% nꃋrɂ
+ckA\ruby{R}{䂤|䂤}Ac\quad
+cA\ruby[|-|]{}{ق}\ruby[|-]{}{܂}ɁAc\par
+% 炭Oɂ͐io悢낤
+cA\ruby[-|]{}{ق}\ruby[|-]{}{܂}ɁAc\par
+% mr
+\ruby[m]{H}{ق|Ƃ}\quad \ruby[m]{}{Ƃ|҂}\quad \ruby[m]{}{Ђ|}\par
+%--------------------------------------- 10.2
+%% tr
+\rubysetup{hm}% tmrɂ
+% {pbP[Wł́Aut(h)v́ur̕Zvꍇɂ̂݉eB
+% urv̓ˏo̐́q||rōsB
+ckA\ruby[||-]{R}{䂤|䂤}Ac\quad
+cA\ruby[||-|]{}{ق}\ruby[|-]{}{܂}ɁAc\par
+% V݂ꂽugt(H)v[h𗘗p
+\rubysetup{H}% gt
+ckA\ruby{R}{䂤|䂤}Ac\quad
+cA\ruby[-|]{}{ق}\ruby{}{܂}ɁAc\par
+% nꃋr vs mr
+\rubysetup{cj}% tnꃋrɂ
+\ruby[||-]{R}{䂤|䂤}\quad
+\ruby[||m]{R}{䂤|䂤}\par
+%--------------------------------------- 10.3
+\ruby{b}{|₤||}\quad
+\ruby[m]{b}{|₤||}\par
+% {pbP[Wł̗͖͂NȂ
+\ruby[g]{b}{ƁS}\par
+% uFv̂悤ȏnꃋrzuɂ͔ΉȂ̂ŁA
+% Oˏo֎~KXpđΏ邵Ȃ
+\ruby[|m|]{R}{|}\ruby[||m>]{}{₤}\quad
+\ruby[|m|]{R}{|}\ruby[||m)]{}{₤}\par
+\ruby[|m|]{R}{|}\ruby[||m|]{}{₤}\quad
+\ruby[<->]{R}{||₤}\par
+% ̏ꍇAugtvłł
+\ruby[Hm>]{R}{||₤}\quad
+\ruby[Hm)]{R}{||₤}\par
+% eϓ}~(E)pΏ@
+\ruby[||gE>]{R}{܂₤}\quad
+\ruby[||gE)]{R}{܂₤}\par
+%--------------------------------------- 10.4
+\begin{flushleft} % jsarticle Ȃ̂ŘaXP[͖ 0.925
+\fontsize{20}{25}\selectfont % e 20pt
+\rubysizeratio{0.25}\ruby{R}{䂤|䂤}\quad % r 5pt
+\rubysizeratio{0.5}\ruby{R}{䂤|䂤}\quad % r 10pt
+\rubysizeratio{0.45}\ruby{R}{䂤|䂤}\par % r 9pt
+% r̃TCYOɂ wvxł́uOrvł͂Ȃ
+\rubysizeratio{0.333}\ruby{R}{䂤|䂤}\quad % r 6.66pt
+\end{flushleft}
+\end{minipage}
+\par
+\begin{minipage}<t>{20zw}
+%--------------------------------------- 11.1
+% {pbP[Wł͏Ƀr͍Ȃ̂Ƃ
+\frame{\parbox{19zw}{%
+\ruby{{}{|ڂ}\ruby{׉}{|}\ruby{O}{˂|Ԃ}
+\ruby{i}{Ԃ|}\ruby{}{}A\ruby{@}{ɂ|}%
+\ruby[|-]{l}{₤|ɂ}A͂߂ꂯB
+}}
+\par\medskip
+%--------------------------------------- 11.2
+\frame{\parbox{19zw}{%
+\rubysetup{h}%
+\ruby{}{}Ƃ\ruby{x}{||Ƃ}\ruby{H}{|}ƂA
+\ruby{l}{܂|т}\ruby{h}{}\ruby{}{|}
+\ruby{o}{}\ruby{}{}肯ƂȂB
+\ruby{}{}\ruby{}{܂}\ruby{}{}ɁAƂ\ruby{}{}䂭
+قǂɁA\ruby{}{ӂ}Ђ낰邪Ƃ\ruby{L}{|Ђ}ɂȂʁB
+}}
+\par\medskip
+%--------------------------------------- 11.3(s̒tr)
+\frame{\parbox{15zw}{%
+PQRSTUVWXOPQRST\par
+% i̒̏ꍇ
+\setlength{\parindent}{1zw} % iLɂ
+% ! w肷ƒiłiLɂȂ
+% ! ̂Ȃ <m |m ƓʂɂȂ
+\ruby[<!m]{}{͂܂||}̕ς͖́c\par
+\ruby[|m]{}{͂܂||}̕ς͖́c\par
+}}\par
+% s̒̏ꍇ
+% pIɂ͍sŔʂłKv邪͓̎
+\frame{\parbox{10zw}{%
+PQRSTUVWXO
+\ruby[<m>]{}{͂܂}͕ľÏӂXO %+ ̏ꍇAO
+\ruby[(m)]{}{͂܂}͕ľÏӂXO %+ <, (, | ̂ǂɂĂ
+\ruby[|m|]{}{͂܂}͕ľÏӂXO %+ iłȂ̂ ! ֌W
+\ruby[||m>]{}{͂܂}͕ľÏӂXO
+\ruby[||m)]{}{͂܂}͕ľÏӂXO
+\ruby[||m|]{}{͂܂}͕ľÏӂXO
+% s킹̒̂ߋ󂫗ʂROĂ邱Ƃɒ
+}}\par
+%--------------------------------------- 11.4(s̃r)
+\frame{\parbox{10zw}{%
+PQRSTUVWXO
+iPQRST\ruby[<m>]{}{͂܂}%
+PQRST\ruby[(m)]{}{͂܂}%
+PQRST\ruby[|m|]{}{͂܂}%
+PQRST\ruby[<m||]{}{͂܂}%
+PQRST\ruby[(m||]{}{͂܂}%
+PQRST\ruby[|m||]{}{͂܂}%
+}}\par
+\end{minipage}
+\end{center}
+\end{document}
diff --git a/Master/texmf-dist/doc/platex/pxrubrica/sample/test-toc.pdf b/Master/texmf-dist/doc/platex/pxrubrica/sample/test-toc.pdf
new file mode 100644
index 00000000000..f4963e3381e
--- /dev/null
+++ b/Master/texmf-dist/doc/platex/pxrubrica/sample/test-toc.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/platex/pxrubrica/sample/test-toc.tex b/Master/texmf-dist/doc/platex/pxrubrica/sample/test-toc.tex
new file mode 100644
index 00000000000..49e224f3ffe
--- /dev/null
+++ b/Master/texmf-dist/doc/platex/pxrubrica/sample/test-toc.tex
@@ -0,0 +1,19 @@
+\documentclass{jsarticle}
+\usepackage{pxrubrica}
+\rubysetup{<j>}
+\begin{document}
+
+\tableofcontents
+
+\section{\ruby[-|]{{}{|ق|}\ruby[|-|]{@}{|ۂ}\ruby[|-]{O}{|Ԃ}}
+ % óupvłȂ̂ŌォȂÂł ;-)
+
+\ruby[-|]{{}{|ق}\ruby[|-]{}{|݂}́A\ruby{}{|}\ruby{I}{|}ꂽ\ruby{}{|킢}ɂ\ruby{\}{|ւ|}\ruby{}{‚}\ruby{s}{|ǂ}AƂ\ruby{q}{|}̂߂ɁA\ruby{}{||݂}Ƃ\ruby{a}{|}ɂ\ruby{}{|}ƁA킪\ruby{}{}\ruby{Sy}{|}ɂ킽\ruby{R}{|}̂炷\ruby{b}{|}\ruby{m}{|}A\ruby{{}{|}\ruby{s}{|}ɂ\ruby{}{ӂ}\ruby{푈}{|}\ruby{S}{|}\ruby{N}{}邱Ƃ̂Ȃ₤ɂ邱Ƃ\ruby{}{|}A\ruby{匠}{|}\ruby{}{|݂}\ruby{}{}邱Ƃ\ruby{錾}{|}A\ruby{@}{|ς}\ruby{m}{|Ă}B\ruby{}{|}́A\ruby{}{|݂}\ruby{l}{|䂭}\ruby{M}{|}ɂ̂łāA\ruby{}{|}\ruby{}{|݂}\ruby{R}{|炢}A\ruby{}{|悭}\ruby{}{|݂}\ruby{\}{|ւ|}\ruby{sg}{|}A\ruby{}{ӂ|}\ruby{}{|݂}\ruby{}{₤|}B\ruby[-|]{l}{|邢}\ruby[|-]{}{|ւ}\ruby{}{|}łA\ruby{@}{|ς}́A\ruby{}{|}\ruby{}{Ƃ}̂łB́A\ruby{}{͂}\ruby{}{|}\ruby{@}{|ς}A\ruby[-|]{@}{͂|ꂢ}\ruby[|-]{y}{}\ruby{ْ}{|悭}\ruby{r}{͂|}B
+
+\ruby[-|]{{}{|ق}\ruby[|-]{}{|݂}́A\ruby{Pv}{|}\ruby{a}{ւ|}\ruby{O}{˂|}A\ruby[-|]{l}{ɂ|}\ruby[|-]{}{|}\ruby{֌W}{|}\ruby{xz}{|͂}\ruby{}{|}\ruby{z}{|}\ruby{[}{ӂ}\ruby{o}{|}̂łāA\ruby{a}{ւ|}\ruby{}{}\ruby{}{||݂}\ruby{}{|}\ruby{M`}{|}\ruby{M}{|炢}āA\ruby{S}{|}\ruby{}{|}\ruby{ێ}{|}悤\ruby{}{|}B́A\ruby{a}{ւ|}\ruby{ێ}{|}A\ruby{ꐧ}{|}\ruby{]}{ꂢ|䂤}A\ruby{}{|ς}\ruby{΋}{ւ|}\ruby{n}{|₤}\ruby{i}{|}\ruby{}{|}悤\ruby{w}{‚}߂Ă\ruby[-|]{}{|}\ruby[|-]{Љ}{|킢}ɂāA\ruby{_}{߂|}\ruby{n}{|}\ruby{}{}߂\ruby{v}{}ӁB́A\ruby{SE}{||}\ruby{}{|݂}AЂƂ\ruby{|}{悤|}\ruby{R}{|ڂ}\ruby{}{܂ʂ}A\ruby{a}{ւ|}̂\ruby{}{|}\ruby{}{|}\ruby{L}{}邱Ƃ\ruby{mF}{|ɂ}B
+
+́AÂ\ruby{}{|}A\ruby{}{|}̂Ƃ݂̂\ruby{O}{|˂}\ruby{}{|}\ruby{}{|}Ă͂ȂȂ̂łāA\ruby[-|]{}{|}\ruby[|-]{}{|Ƃ}\ruby{@}{͂|}́A\ruby{ՓI}{|ւ|Ă}Ȃ̂łA\ruby{@}{͂|}\ruby{]}{}ӂƂ́A\ruby{}{|}\ruby{匠}{|}\ruby{ێ}{|}A\ruby{}{|}\ruby[-|]{Γ}{|Ƃ}\ruby[|-]{֌W}{|}\ruby{}{}Ƃ\ruby{e}{|}\ruby{Ӗ}{|}ł\ruby{M}{}B
+
+\ruby[-|]{{}{|ق}\ruby[|-]{}{|݂}́A\ruby{}{|}\ruby{_}{߂|}ɂA\ruby{S}{|悭}Ă\ruby{}{|}\ruby{z}{|}\ruby{ړI}{|Ă}\ruby{B}{|}邱Ƃ\ruby{}{}ӁB
+
+\end{document}
diff --git a/Master/texmf-dist/source/platex/pxrubrica/pxrubrica.dtx b/Master/texmf-dist/source/platex/pxrubrica/pxrubrica.dtx
new file mode 100644
index 00000000000..691fb35f0a4
--- /dev/null
+++ b/Master/texmf-dist/source/platex/pxrubrica/pxrubrica.dtx
@@ -0,0 +1,4257 @@
+% ^^A -*- japanese-latex -*-
+% \iffalse meta-comment
+%
+% \fi
+% \CheckSum{0}
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%
+% \iffalse
+%
+% \begin{macrocode}
+%<!driver>\NeedsTeXFormat{LaTeX2e}
+%<!driver>\ProvidesPackage{pxrubrica}
+%<*driver>
+\ProvidesFile{pxrubrica.dtx}
+%</driver>
+ [2012/04/30 v1.0 PX Japanese-style ruby]
+%<*driver>
+\documentclass{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\ }
+\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
+%
+% \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}
+%
+% \section{$B4pK\5!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
+% \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
+% \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$O>o$K!JC1=c!K%0%k!<%W%k%S$H$J$k$N$G!"(B
+% \jmeta{$B%*%W%7%g%s(B}$B$NCf$N(B |m|$B!"(B|g|$B!"(B|j| $B$N;XDj$OL5;k$5$l$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!&%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
+% \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 |\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}
+%
+% \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}
+%
+% \setlength{\parindent}{0pt}
+%
+% \section{$B<BAu(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!"$"$k$$$ON>B&%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@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 must have a single group%
+ }\pxrr@eh@fatal
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\pxrr@fatal@bad@movable}
+% $B2$J8%k%S$^$?$ON>B&%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@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@edge@adjustfalse
+% \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}{\ifpxrr@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{$B%k%S8F=P;~$N@_Dj(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}{\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@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@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}
+%
+% \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@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@ifnum}
+% |\pxrr@ifnum{|\jmeta{$B0z?t(B}|}|\jmeta{$B??(B}|}{|\jmeta{$B56(B}|}|\Means
+% |\ifnum|\jmeta{$B0z?t(B} $B$r9T$&%F%9%H!#(B
+% \begin{macrocode}
+\def\pxrr@ifnum#1{%
+ \ifnum#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=\tracingmacros
+ \tracingmacros\z@
+ #1%
+ \tracingmacros\pxrr@tracingmacros
+}
+% \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@gtmpa{\the\@tempdimb}%
+ \endgroup
+ #1=\pxrr@gtmpa\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@tempa\pxrr@decompose@loopb
+}
+\def\pxrr@decompose@loopb{%
+ \pxrr@ifx{\pxrr@tempa\pxrr@end}{%
+ \pxrr@appto\pxrr@res{\pxrr@post}%
+ }{%
+ \pxrr@setok{\pxrr@ifx{\pxrr@tempa\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@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@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@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 {p\TeX} $B7O!J(B{up\TeX} $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 {up\TeX} $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@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@uptex
+ \pxrr@csletcs{ifpxrr@in@unicode}{iftrue}%
+\else
+ \pxrr@csletcs{ifpxrr@in@unicode}{iffalse}%
+\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}{\ifpxrr@in@tate}
+% $B=DAH$G$"$k$+!#(B
+% \Note {p\TeX} $B0J30$G$N=DAH$r%5%]!<%H$9$kM=Dj$O$J$$!#(B
+% \begin{macrocode}
+\ifpxrr@in@ptex
+ \pxrr@csletcs{ifpxrr@in@tate}{iftdir}
+\else
+ \pxrr@csletcs{ifpxrr@in@tate}{iffalse}
+\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
+% \begin{macrocode}
+\def\pxrr@get@jchar@token#1#2{%
+ \begingroup
+ \kansujichar\@ne=#2\relax
+ \xdef\pxrr@x@gtempa{\kansuji\@ne}%
+ \endgroup
+ \let#1\pxrr@x@gtempa
+}
+\ifpxrr@in@unicode\else
+ \ifpxrr@in@ptex\else
+ \def\pxrr@get@jchar@token#1#2{%
+ \def#1{?}%
+ }
+ \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
+% \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
+ }%
+ }
+\else
+ \def\pxrr@get@iiskip#1{%
+ \let#1\pxrr@zeropt
+ }
+\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
+% \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
+ }%
+ }
+\else
+ \def\pxrr@get@iaiskip#1{%
+ \let#1\pxrr@zeropt
+ }
+\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
+% \begin{macrocode}
+\ifpxrr@in@ptex
+ \def\pxrr@get@zwidth#1{%
+ \@tempdima=1zw\relax
+ \edef#1{\the\@tempdima}%
+ }
+\else
+ \def\pxrr@get@zwidth#1{%
+ \@tempdima=1em\relax
+ \edef#1{\the\@tempdima}%
+ }
+\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
+}
+\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}{\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}
+% $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@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@
+}
+\def\pxrr@po@PR@h{%
+ \chardef\pxrr@athead\@ne
+}
+\def\pxrr@po@PR@H{%
+ \chardef\pxrr@athead\tw@
+}
+\def\pxrr@po@PR@m{%
+ \let\pxrr@mode=m%
+}
+\def\pxrr@po@PR@g{%
+ \let\pxrr@mode=g%
+}
+\def\pxrr@po@PR@j{%
+ \let\pxrr@mode=j%
+}
+\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@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}
+% $B%b%N%k%S!J(B|m|$B!K!&=O8l%k%S!J(B|j|$B!K$K4X$9$k8!::!#(B
+% \begin{macrocode}
+ \if g\pxrr@mode\else
+% \end{macrocode}
+% $B2$J8%k%S$G$OIT2D$J$N$G%0%k!<%W%k%S$KJQ99$9$k!#(B
+% \begin{macrocode}
+ \ifpxrr@abody
+ \let\pxrr@mode=g\relax
+ \fi
+% \end{macrocode}
+% $BN>B&%k%S$G$OIT2D$J$N$G%0%k!<%W%k%S$KJQ99$9$k!#(B
+% \begin{macrocode}
+ \ifnum\pxrr@side=\tw@
+ \let\pxrr@mode=g\relax
+ \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}
+ \if g\pxrr@mode
+ \if g\pxrr@d@mode
+ \pxrr@warn@must@group
+ \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}
+ \ifpxrr@in@tate\else
+ \pxrr@athead\z@
+ \fi
+% \end{macrocode}
+% $B%0%k!<%W%k%S$G$OIT2D$J$N$GCfIU$-$KJQ99$9$k!#(B
+% \begin{macrocode}
+ \if g\pxrr@mode
+ \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@
+ \ifnum\pxrr@d@athead>\z@
+ \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}
+% \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@size@ratio\@tempdima
+ \edef\pxrr@ruby@fsize{\the\@tempdima}%
+ \pxrr@get@zwidth\pxrr@body@zw
+ \begingroup
+ \pxrr@use@ruby@font
+ \pxrr@get@zwidth\pxrr@gtempa
+ \global\let\pxrr@gtempa\pxrr@gtempa
+ \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}
+ \ifpxrr@in@tate
+ \let\pxrr@htratio\pxrr@thtratio
+ \else
+ \let\pxrr@htratio\pxrr@yhtratio
+ \fi
+% \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@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@inter@gap\@tempdimb
+ \edef\pxrr@ruby@lower{\the\@tempdima}%
+}
+% \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@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}
+% |\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%
+}
+% \end{macrocode}
+% \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
+}
+% \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@tempa\pxrr@transform@kana@loop@b
+}
+\def\pxrr@transform@kana@loop@b{%
+ \ifx\pxrr@tempa\pxrr@end
+ \let\pxrr@tempb\pxrr@transform@kana@end
+ \else\ifx\pxrr@tempa\bgroup
+ \let\pxrr@tempb\pxrr@transform@kana@loop@c
+ \else\ifx\pxrr@tempa\@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@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
+%r \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{%
+% \end{macrocode}
+% $BK\BN$NA0$K2C9)=hM}$r2pF~$5$;$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
+}
+% \end{macrocode}
+% $B$3$A$i$,K\BN!#(B
+% \begin{macrocode}
+\def\pxrr@compose@oneside@block@do#1#2#3{%
+ \setbox\pxrr@boxa\pxrr@hbox{#2}%
+ \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
+ \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
+ }%
+ \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{%
+ \setbox\pxrr@boxa\pxrr@hbox{#2}%
+ \setbox\pxrr@boxr\pxrr@hbox{%
+ \pxrr@use@ruby@font
+ #3%
+ }%
+ \setbox\pxrr@boxb\pxrr@hbox{%
+ \pxrr@use@ruby@font
+ #4%
+ }%
+% \end{macrocode}
+% 3$B$D$N%\%C%/%9$N:GBg$NI}$r5a$a$k!#(B
+% $B$3$l$,A4BN$NI}$H$J$k!#(B
+% \begin{macrocode}
+ \@tempdima\wd\pxrr@boxa
+ \ifdim\@tempdima<\wd\pxrr@boxr
+ \@tempdima\wd\pxrr@boxr
+ \fi
+ \ifdim\@tempdima<\wd\pxrr@boxb
+ \@tempdima\wd\pxrr@boxb
+ \fi
+ \edef\pxrr@maxwd{\the\@tempdima}%
+ \advance\@tempdima-\pxrr@epsilon\relax
+ \edef\pxrr@maxwdx{\the\@tempdima}%
+% \end{macrocode}
+% $BA4BN$NI}$h$jC;$$%\%C%/%9$r6QEy3d$j$GAH$_D>$9!#(B
+% \begin{macrocode}
+ \ifdim\pxrr@maxwdx>\wd\pxrr@boxr
+ \pxrr@decompose{#3}%
+ \edef\pxrr@natwd{\the\wd\pxrr@boxr}%
+ \pxrr@evenspace@int{#1}\pxrr@boxr
+ \pxrr@use@ruby@font{\pxrr@maxwd}%
+ \pxrr@adjust@margin
+ \fi
+ \ifdim\pxrr@maxwdx>\wd\pxrr@boxb
+ \pxrr@decompose{#4}%
+ \edef\pxrr@natwd{\the\wd\pxrr@boxb}%
+ \pxrr@evenspace@int{#1}\pxrr@boxb
+ \pxrr@use@ruby@font{\pxrr@maxwd}%
+ \pxrr@adjust@margin
+ \fi
+% \end{macrocode}
+% $B?FJ8;zNs$N%\%C%/%9$r:G8e$K=hM}$7$F!"$=$N(B |\pxrr@?space| $B$NCM$r(B
+% $B0J9_$N=hM}$GMQ$$$k!#(B
+% $B!J?FJ8;zNs$,C;$/$J$$>l9g$O(B |\pxrr@?space| $B$O%<%m!#!K(B
+% \begin{macrocode}
+ \ifdim\pxrr@maxwdx>\wd\pxrr@boxa
+ \pxrr@decompose{#2}%
+ \edef\pxrr@natwd{\the\wd\pxrr@boxa}%
+ \pxrr@evenspace@int{#1}\pxrr@boxa\relax{\pxrr@maxwd}%
+ \else
+ \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
+ }%
+ \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@compose@block@pre}
+% $B?FJ8;zNs$N2C9)$r9T$&!#(B
+% \begin{macrocode}
+\def\pxrr@compose@block@pre{%
+% \end{macrocode}
+% |f| $B;XDj;~$O>.=q$-2>L>$NJQ49$r;\$9!#(B
+% \begin{macrocode}
+ \pxrr@ifnum{\pxrr@fullsize>\z@}{%
+ \pxrr@compose@block@pre@a
+ }{%
+ \pxrr@compose@block@pre@c
+ }%
+}
+\def\pxrr@compose@block@pre@a#1#2#3{%
+ \def\pxrr@compose@block@tempa{#3}%
+ \pxrr@transform@kana\pxrr@compose@block@tempa
+ \expandafter\pxrr@compose@block@pre@b
+ \expandafter{\pxrr@compose@block@tempa}{#1}{#2}%
+}
+\def\pxrr@compose@block@pre@b#1#2#3{%
+ \pxrr@compose@block@pre@c{#2}{#3}{#1}%
+}
+\def\pxrr@compose@block@pre@c{%
+ \pxrr@ifnum{\pxrr@evensp=\z@}{%
+ \pxrr@compose@block@pre@d
+ }{%
+ \pxrr@compose@block@do
+ }%
+}
+\def\pxrr@compose@block@pre@d#1#2{%
+ \pxrr@compose@block@do{#1}{{#2}}%
+}
+% \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@tempa\pxrr@check@kinsoku@a
+}
+\def\pxrr@check@kinsoku@a{%
+ \pxrr@check@char\pxrr@tempa
+% \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@cntr\prebreakpenalty`#1\relax
+ \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!"%Z%J%k%F%#!";z4V6u$-$N%0%k!=!"?JF~MQ$N%0%k!=$r(B
+% $B=gHV$KF~$l$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}
+%
+% \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@bintr| $B$H(B |\pxrr@bspace| $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}
+ \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@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@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}%
+% \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}%
+\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@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&%k%S$N>l9g!"F~NOJ8;zNs$r%0%k!<%WJ,2r$;$:$K!"$=$N$^$^$N0z?tNs$N(B
+% $B7A$G%^%/%m$K5-21$9$k!#(B
+% \begin{macrocode}
+ \def\pxrr@all@input{{#1}{#2}{#3}}%
+\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{%
+ \pxrr@ruby@check@tg
+ \pxrr@if@alive{\pxrr@ruby@main@tg}%
+ }%
+% \end{macrocode}
+% $B8e=hM}$r9T$&!#(B
+% \begin{macrocode}
+ \pxrr@ruby@exit
+}
+% \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&%k%S$N>l9g!"$3$3$G8!::$9$kFbMF$O$J$$!#(B
+% $B!JN>B&%k%S$NF~NOJ8;zNs$O%0%k!<%WJ,3d$5$l$:!">o$KC10l%0%k!<%W$H(B
+% $B$7$F07$o$l$k!#!K(B
+% \begin{macrocode}
+\def\pxrr@ruby@check@tg{%
+}
+% \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@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
+\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@tg}
+% $BN>B&%k%S!JI,$:C1=c%0%k!<%W%k%S$G$"$k!K$N>l9g!#(B
+% \begin{macrocode}
+\def\pxrr@ruby@main@tg{%
+ \pxrr@check@par@head
+ \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}
+%
+% \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@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@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@zspace
+ \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@zspace}%
+ \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}
+\ifpxrr@aghost
+ \IfFileExists{t1lmr.fd}{%
+ \begingroup
+ \fontsize{2.5}{0}\usefont{T1}{lmr}{m}{n}
+ \endgroup
+ \pxrr@letcs\pxrr@aghostfont{T1/lmr/m/n/2.5}%
+ \chardef\pxrr@aghostchar=23 % compwordmark
+ \def\pxrr@aghost{{\pxrr@aghostfont\pxrr@aghostchar}}%
+ \xspcode\pxrr@aghostchar=3 %
+ }{%else
+ \oxrr@warn{Ghost embedding for \string\aruby\space
+ is disabled,\MessageBreak
+ since package lmodern is missing}%
+ \pxrr@aghostfalse
+ \let\pxrr@aghosttrue\relax
+ }%
+\fi
+% \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@zspace}%
+ \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@zspace
+ \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%
+ 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%
+ ----
+ }%
+}
+% \end{macrocode}
+%
+% \Finale
+%
+\endinput
diff --git a/Master/texmf-dist/source/platex/pxrubrica/pxrubrica.ins b/Master/texmf-dist/source/platex/pxrubrica/pxrubrica.ins
new file mode 100644
index 00000000000..2df9a87744c
--- /dev/null
+++ b/Master/texmf-dist/source/platex/pxrubrica/pxrubrica.ins
@@ -0,0 +1,4 @@
+\def\batchfile{pxrubrica.ins}
+\input docstrip.tex
+\keepsilent
+\generateFile{pxrubrica.sty}{f}{\from{pxrubrica.dtx}{}}
diff --git a/Master/texmf-dist/tex/platex/pxrubrica/pxrubrica.sty b/Master/texmf-dist/tex/platex/pxrubrica/pxrubrica.sty
new file mode 100644
index 00000000000..f40c6a9c692
--- /dev/null
+++ b/Master/texmf-dist/tex/platex/pxrubrica/pxrubrica.sty
@@ -0,0 +1,1861 @@
+%%
+%% This is file `pxrubrica.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% pxrubrica.dtx
+%%
+%% IMPORTANT NOTICE:
+%%
+%% For the copyright see the source file.
+%%
+%% Any modified versions of this file must be renamed
+%% with new filenames distinct from pxrubrica.sty.
+%%
+%% For distribution of the original source see the terms
+%% for copying and modification in the file pxrubrica.dtx.
+%%
+%% This generated file may be distributed as long as the
+%% original source files, as listed above, are part of the
+%% same distribution. (The sources need not necessarily be
+%% in the same archive or directory.)
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{pxrubrica}
+ [2012/04/30 v1.0 PX Japanese-style ruby]
+\RequirePackage{keyval}
+\def\pxrr@pkgname{pxrubrica}
+\def\pxrr@error{%
+ \PackageError\pxrr@pkgname
+}
+\def\pxrr@warn{%
+ \PackageWarning\pxrr@pkgname
+}
+\newif\ifpxrr@fatal@error
+\def\pxrr@fatal@error{%
+ \pxrr@fatal@errortrue
+ \pxrr@error
+}
+\def\pxrr@eh@fatal{%
+ The whole ruby input was ignored.\MessageBreak
+ \@ehc
+}
+\def\pxrr@fatal@not@supported#1{%
+ \pxrr@fatal@error{Not yet supported: #1}%
+ \pxrr@eh@fatal
+}
+\def\pxrr@err@inv@value#1{%
+ \pxrr@error{Invalud value (#1)}%
+ \@ehc
+}
+\def\pxrr@fatal@unx@letter#1{%
+ \pxrr@fatal@error{Unexpected letter '#1' found}%
+ \pxrr@eh@fatal
+}
+\def\pxrr@warn@bad@athead{%
+ \pxrr@warn{Position 'h' not allowed here}%
+}
+\def\pxrr@warn@must@group{%
+ \pxrr@warn{Only group ruby is allowed here}%
+}
+\def\pxrr@fatal@bad@intr{%
+ \pxrr@fatal@error{%
+ Intrusion disallowed when ghost is enabled%
+ }\pxrr@eh@fatal
+}
+\def\pxrr@fatal@bad@no@protr{%
+ \pxrr@fatal@error{%
+ Protrusion must be allowed for either end%
+ }\pxrr@eh@fatal
+}
+\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
+}
+\def\pxrr@fatal@bad@mono{%
+ \pxrr@fatal@error{%
+ Mono-ruby must have a single group%
+ }\pxrr@eh@fatal
+}
+\def\pxrr@fatal@bad@movable{%
+ \pxrr@fatal@error{%
+ Novable group ruby is not allowed here%
+ }\pxrr@eh@fatal
+}
+\def\pxrr@fatal@na@movable{%
+ \pxrr@fatal@error{%
+ Feature of movable group ruby is disabled%
+ }\pxrr@eh@fatal
+}
+\def\pxrr@interror#1{%
+ \pxrr@fatal@error{INTERNAL ERROR (#1)}%
+ \pxrr@eh@fatal
+}
+\newif\ifpxrrDebug
+\let\pxrr@ruby@font\@empty
+\def\pxrr@big@intr{1}
+\def\pxrr@small@intr{0.5}
+
+\def\pxrr@size@ratio{0.5}
+\def\pxrr@sprop@x{1}
+\def\pxrr@sprop@y{2}
+\def\pxrr@sprop@z{1}
+\def\pxrr@sprop@hy{1}
+\def\pxrr@sprop@hz{1}
+\def\pxrr@sprop@ex{1}
+\def\pxrr@sprop@ey{1}
+\def\pxrr@maxmargin{0.75}
+\def\pxrr@yhtratio{0.88}
+\def\pxrr@thtratio{0.5}
+\chardef\pxrr@extra=0
+\newif\ifpxrr@jghost \pxrr@jghostfalse
+\newif\ifpxrr@aghost \pxrr@aghostfalse
+\def\pxrr@inter@gap{0}
+\newif\ifpxrr@edge@adjust \pxrr@edge@adjustfalse
+\newif\ifpxrr@break@jukugo \pxrr@edge@adjustfalse
+\newif\ifpxrr@d@bprotr \pxrr@d@bprotrtrue
+\newif\ifpxrr@d@aprotr \pxrr@d@aprotrtrue
+\def\pxrr@d@bintr{}
+\def\pxrr@d@aintr{}
+\chardef\pxrr@d@athead=0
+\let\pxrr@d@mode=j
+\chardef\pxrr@d@side=0
+\chardef\pxrr@d@evensp=1
+\chardef\pxrr@d@fullsize=0
+\newif\ifpxrr@bprotr \pxrr@bprotrfalse
+\newif\ifpxrr@aprotr \pxrr@aprotrfalse
+\def\pxrr@bintr{}
+\def\pxrr@aintr{}
+\let\pxrr@bscomp\relax
+\let\pxrr@ascomp\relax
+\newif\ifpxrr@bnobr \pxrr@bnobrfalse
+\newif\ifpxrr@anobr \pxrr@anobrfalse
+\newif\ifpxrr@bfintr \pxrr@bfintrfalse
+\newif\ifpxrr@afintr \pxrr@afintrfalse
+\chardef\pxrr@athead=0
+\let\pxrr@mode=\@undefined
+\newif\ifpxrr@abody
+\chardef\pxrr@side=0
+\chardef\pxrr@evensp=1
+\chardef\pxrr@fullsize=1
+\newif\ifpxrr@ok
+\newcount\pxrr@cnta
+\newcount\pxrr@cntr
+\newdimen\pxrr@dima
+\newbox\pxrr@boxa
+\newbox\pxrr@boxb
+\newbox\pxrr@boxr
+\chardef\pxrr@zero=0
+\def\pxrr@zeropt{0pt}
+\def\pxrr@hfilx#1{%
+ \hskip\z@\@plus #1fil\relax
+}
+\let\pxrr@res\@empty
+\def\pxrr@ifx#1{%
+ \ifx#1\expandafter\@firstoftwo
+ \else\expandafter\@secondoftwo
+ \fi
+}
+\def\pxrr@ifnum#1{%
+ \ifnum#1\expandafter\@firstoftwo
+ \else\expandafter\@secondoftwo
+ \fi
+}
+\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
+}
+\def\pxrr@setok#1{%
+ #1{\pxrr@oktrue}{\pxrr@okfalse}%
+}
+\def\pxrr@appto#1#2{%
+ \expandafter\def\expandafter#1\expandafter{#1#2}%
+}
+\def\pxrr@nil{\noexpand\pxrr@nil}
+\def\pxrr@end{\noexpand\pxrr@end}
+\def\pxrr@without@macro@trace#1{%
+ \chardef\pxrr@tracingmacros=\tracingmacros
+ \tracingmacros\z@
+ #1%
+ \tracingmacros\pxrr@tracingmacros
+}
+\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
+ }%
+}
+\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
+}
+\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@gtmpa{\the\@tempdimb}%
+ \endgroup
+ #1=\pxrr@gtmpa\relax
+}
+\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
+}
+\def\pxrr@decompose#1{%
+ \let\pxrr@res\@empty
+ \pxrr@cntr=\z@
+ \pxrr@decompose@loopa#1\pxrr@end
+}
+\def\pxrr@decompose@loopa{%
+ \futurelet\pxrr@tempa\pxrr@decompose@loopb
+}
+\def\pxrr@decompose@loopb{%
+ \pxrr@ifx{\pxrr@tempa\pxrr@end}{%
+ \pxrr@appto\pxrr@res{\pxrr@post}%
+ }{%
+ \pxrr@setok{\pxrr@ifx{\pxrr@tempa\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
+}
+\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
+ }%
+}
+\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}%
+}
+\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%
+}
+\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}%
+}
+\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}%
+}
+\let\pxrr@x@gtempa\@empty
+\newif\ifpxrr@x@swa
+\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
+}
+\pxrr@ifprimitive\kansuji{%
+ \pxrr@csletcs{ifpxrr@in@ptex}{iftrue}%
+}{%
+ \pxrr@csletcs{ifpxrr@in@ptex}{iffalse}%
+}
+\pxrr@ifprimitive\enablecjktoken{%
+ \pxrr@csletcs{ifpxrr@in@uptex}{iftrue}%
+}{%
+ \pxrr@csletcs{ifpxrr@in@uptex}{iffalse}%
+}
+\pxrr@ifprimitive\XeTeXrevision{%
+ \pxrr@csletcs{ifpxrr@in@xetex}{iftrue}%
+}{%
+ \pxrr@csletcs{ifpxrr@in@xetex}{iffalse}%
+}
+\ifpxrr@in@xetex
+ \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
+\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
+\ifpxrr@in@uptex
+ \let\pxrr@jchardef\kchardef
+\else
+ \let\pxrr@jchardef\chardef
+\fi
+\ifpxrr@in@ptex
+ \pxrr@csletcs{ifpxrr@in@tate}{iftdir}
+\else
+ \pxrr@csletcs{ifpxrr@in@tate}{iffalse}
+\fi
+\def\pxrr@get@jchar@token#1#2{%
+ \begingroup
+ \kansujichar\@ne=#2\relax
+ \xdef\pxrr@x@gtempa{\kansuji\@ne}%
+ \endgroup
+ \let#1\pxrr@x@gtempa
+}
+\ifpxrr@in@unicode\else
+ \ifpxrr@in@ptex\else
+ \def\pxrr@get@jchar@token#1#2{%
+ \def#1{?}%
+ }
+ \fi
+\fi
+\pxrr@jchardef\pxrr@x@K=\pxrr@jc{306C:4E00}
+\ifpxrr@in@ptex
+ \def\pxrr@get@iiskip#1{%
+ \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
+ \edef#1{%
+ \ifpxrr@x@swa \the\kanjiskip
+ \else \pxrr@zeropt
+ \fi
+ }%
+ }
+\else
+ \def\pxrr@get@iiskip#1{%
+ \let#1\pxrr@zeropt
+ }
+\fi
+\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
+ }%
+ }
+\else
+ \def\pxrr@get@iaiskip#1{%
+ \let#1\pxrr@zeropt
+ }
+\fi
+\ifpxrr@in@ptex
+ \def\pxrr@get@zwidth#1{%
+ \@tempdima=1zw\relax
+ \edef#1{\the\@tempdima}%
+ }
+\else
+ \def\pxrr@get@zwidth#1{%
+ \@tempdima=1em\relax
+ \edef#1{\the\@tempdima}%
+ }
+\fi
+\newif\ifpxrr@in@setup \pxrr@in@setupfalse
+\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
+ \pxrr@in@setupfalse
+}
+\newcommand*\rubyfontsetup{}
+\def\rubyfontsetup#{%
+ \def\pxrr@ruby@font
+}
+\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}%
+}
+\newcommand*\rubyusejghost{%
+ \pxrr@jghosttrue
+}
+\newcommand*\rubynousejghost{%
+ \pxrr@jghostfalse
+}
+\newcommand*\rubyuseaghost{%
+ \pxrr@aghosttrue
+}
+\newcommand*\rubynouseaghost{%
+ \pxrr@aghostfalse
+}
+\newcommand*\rubyadjustatlineedge{%
+ \pxrr@edge@adjusttrue
+}
+\newcommand*\rubynoadjustatlineedge{%
+ \pxrr@edge@adjustfalse
+}
+\newcommand*\rubybreakjukugo{%
+ \pxrr@break@jukugotrue
+}
+\newcommand*\rubynobreakjukugo{%
+ \pxrr@break@jukugofalse
+}
+\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}%
+}
+\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
+}
+\let\pxrr@bintr@\@empty
+\let\pxrr@aintr@\@empty
+\def\pxrr@doublebar{||}
+\def\pxrr@parse@option#1{%
+ \edef\pxrr@tempa{#1}%
+ \ifx\pxrr@tempa\pxrr@doublebar
+ \def\pxrr@tempa{|-|}%
+ \fi
+ \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
+ \let\pxrr@bscomp\relax
+ \let\pxrr@ascomp\relax
+ \pxrr@bnobrfalse
+ \pxrr@anobrfalse
+ \pxrr@bfintrfalse
+ \pxrr@afintrfalse
+ \def\pxrr@po@FS{bi}%
+ \expandafter\pxrr@parse@option@loop\pxrr@tempa @\pxrr@end
+}
+\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
+ }%
+}
+\def\pxrr@parse@option@exit#1\pxrr@end{%
+ \ifpxrr@in@setup\else
+ \ifpxrr@truby
+ \chardef\pxrr@side\tw@
+ \fi
+ \pxrr@check@option
+ \@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
+}
+\def\pxrr@or@zero#1{%
+ \ifx#1\@empty \pxrr@zero
+ \else #1%
+ \fi
+}
+\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@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}
+\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@
+}
+\def\pxrr@po@PR@h{%
+ \chardef\pxrr@athead\@ne
+}
+\def\pxrr@po@PR@H{%
+ \chardef\pxrr@athead\tw@
+}
+\def\pxrr@po@PR@m{%
+ \let\pxrr@mode=m%
+}
+\def\pxrr@po@PR@g{%
+ \let\pxrr@mode=g%
+}
+\def\pxrr@po@PR@j{%
+ \let\pxrr@mode=j%
+}
+\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
+}
+\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}
+\def\pxrr@check@option{%
+ \ifpxrr@bprotr\else
+ \ifpxrr@aprotr\else
+ \pxrr@fatal@bad@no@protr
+ \fi
+ \fi
+ \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
+ \if g\pxrr@mode\else
+ \ifpxrr@abody
+ \let\pxrr@mode=g\relax
+ \fi
+ \ifnum\pxrr@side=\tw@
+ \let\pxrr@mode=g\relax
+ \fi
+ \if g\pxrr@mode
+ \if g\pxrr@d@mode
+ \pxrr@warn@must@group
+ \fi
+ \fi
+ \fi
+ \ifnum\pxrr@athead>\z@
+ \ifpxrr@in@tate\else
+ \pxrr@athead\z@
+ \fi
+ \if g\pxrr@mode
+ \pxrr@athead\z@
+ \fi
+ \ifnum\pxrr@athead=\z@
+ \ifnum\pxrr@d@athead>\z@
+ \pxrr@warn@bad@athead
+ \fi
+ \fi
+ \fi
+ \ifpxrr@abody
+ \chardef\pxrr@evensp\z@
+ \fi
+ \if g\pxrr@mode\else
+ \chardef\pxrr@evensp\@ne
+ \fi
+}
+\let\pxrr@ruby@fsize\pxrr@zeropt
+\let\pxrr@body@zw\pxrr@zeropt
+\let\pxrr@ruby@zw\pxrr@zeropt
+\let\pxrr@ruby@raise\pxrr@zeropt
+\let\pxrr@ruby@lower\pxrr@zeropt
+\def\pxrr@htratio{0}
+\let\pxrr@iiskip\pxrr@zeropt
+\let\pxrr@iaiskip\pxrr@zeropt
+\def\pxrr@assign@fsize{%
+ \@tempdima=\f@size\p@
+ \@tempdima\pxrr@size@ratio\@tempdima
+ \edef\pxrr@ruby@fsize{\the\@tempdima}%
+ \pxrr@get@zwidth\pxrr@body@zw
+ \begingroup
+ \pxrr@use@ruby@font
+ \pxrr@get@zwidth\pxrr@gtempa
+ \global\let\pxrr@gtempa\pxrr@gtempa
+ \endgroup
+ \let\pxrr@ruby@zw\pxrr@gtempa
+ \pxrr@get@iiskip\pxrr@iiskip
+ \pxrr@get@iaiskip\pxrr@iaiskip
+ \ifpxrr@in@tate
+ \let\pxrr@htratio\pxrr@thtratio
+ \else
+ \let\pxrr@htratio\pxrr@yhtratio
+ \fi
+ \@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@inter@gap\@tempdimb
+ \edef\pxrr@ruby@raise{\the\@tempdima}%
+ \@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@inter@gap\@tempdimb
+ \edef\pxrr@ruby@lower{\the\@tempdima}%
+}
+\def\pxrr@use@ruby@font{%
+ \pxrr@without@macro@trace{%
+ \let\rubyfontsize\pxrr@ruby@fsize
+ \fontsize{\pxrr@ruby@fsize}{\z@}\selectfont
+ \pxrr@ruby@font
+ }%
+}
+\chardef\pxrr@locate@inner=1
+\chardef\pxrr@locate@head=0
+\chardef\pxrr@locate@end=2
+\def\pxrr@evenspace#1#2#3#4#5{%
+ \setbox#2\pxrr@hbox{#5}\@tempdima\wd#2%
+ \edef\pxrr@natwd{\the\@tempdima}%
+ \pxrr@decompose{#5}%
+ \pxrr@evenspace@int{#1}{#2}{#3}{#4}%
+}
+\def\pxrr@evenspace@int#1#2#3#4{%
+ \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
+ \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
+ \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
+ \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%
+}
+\def\pxrr@adjust@margin{%
+ \pxrr@save@listproc
+ \@tempdima\pxrr@body@zw\relax
+ \@tempdima\pxrr@maxmargin\@tempdima
+ \@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
+ \if@tempswa
+ \pxrr@makebox@res
+ \fi
+ \pxrr@restore@listproc
+\ifpxrrDebug
+\typeout{\pxrr@bspace:\pxrr@aspace}%
+\fi
+}
+\def\pxrr@save@listproc{%
+ \let\pxrr@pre@save\pxrr@pre
+ \let\pxrr@inter@save\pxrr@inter
+ \let\pxrr@post@save\pxrr@post
+}
+\def\pxrr@restore@listproc{%
+ \let\pxrr@pre\pxrr@pre@save
+ \let\pxrr@inter\pxrr@inter@save
+ \let\pxrr@post\pxrr@post@save
+}
+\let\pxrr@trans@res\@empty
+\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@tempa\pxrr@transform@kana@loop@b
+}
+\def\pxrr@transform@kana@loop@b{%
+ \ifx\pxrr@tempa\pxrr@end
+ \let\pxrr@tempb\pxrr@transform@kana@end
+ \else\ifx\pxrr@tempa\bgroup
+ \let\pxrr@tempb\pxrr@transform@kana@loop@c
+ \else\ifx\pxrr@tempa\@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
+}
+\newif\ifpxrr@protr
+\newif\ifpxrr@any@protr
+\def\pxrr@epsilon{0.01pt}
+\def\pxrr@compose@block{%
+ \let\pxrr@compose@block@do\pxrr@compose@oneside@block@do
+ \pxrr@compose@block@pre
+}
+\def\pxrr@compose@oneside@block@do#1#2#3{%
+ \setbox\pxrr@boxa\pxrr@hbox{#2}%
+ \setbox\pxrr@boxr\pxrr@hbox{%
+ \pxrr@use@ruby@font
+ #3%
+ }%
+ \@tempdima\wd\pxrr@boxr
+ \advance\@tempdima-\wd\pxrr@boxa
+ \ifdim\pxrr@epsilon<\@tempdima
+ \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
+ \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
+ \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
+ \pxrr@protrfalse
+ \let\pxrr@bspace\pxrr@zeropt
+ \let\pxrr@aspace\pxrr@zeropt
+ \fi\fi
+ \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
+ }%
+ \ifpxrr@protr
+ \pxrr@any@protrtrue
+ \fi
+}
+\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{%
+ \setbox\pxrr@boxa\pxrr@hbox{#2}%
+ \setbox\pxrr@boxr\pxrr@hbox{%
+ \pxrr@use@ruby@font
+ #3%
+ }%
+ \setbox\pxrr@boxb\pxrr@hbox{%
+ \pxrr@use@ruby@font
+ #4%
+ }%
+ \@tempdima\wd\pxrr@boxa
+ \ifdim\@tempdima<\wd\pxrr@boxr
+ \@tempdima\wd\pxrr@boxr
+ \fi
+ \ifdim\@tempdima<\wd\pxrr@boxb
+ \@tempdima\wd\pxrr@boxb
+ \fi
+ \edef\pxrr@maxwd{\the\@tempdima}%
+ \advance\@tempdima-\pxrr@epsilon\relax
+ \edef\pxrr@maxwdx{\the\@tempdima}%
+ \ifdim\pxrr@maxwdx>\wd\pxrr@boxr
+ \pxrr@decompose{#3}%
+ \edef\pxrr@natwd{\the\wd\pxrr@boxr}%
+ \pxrr@evenspace@int{#1}\pxrr@boxr
+ \pxrr@use@ruby@font{\pxrr@maxwd}%
+ \pxrr@adjust@margin
+ \fi
+ \ifdim\pxrr@maxwdx>\wd\pxrr@boxb
+ \pxrr@decompose{#4}%
+ \edef\pxrr@natwd{\the\wd\pxrr@boxb}%
+ \pxrr@evenspace@int{#1}\pxrr@boxb
+ \pxrr@use@ruby@font{\pxrr@maxwd}%
+ \pxrr@adjust@margin
+ \fi
+ \ifdim\pxrr@maxwdx>\wd\pxrr@boxa
+ \pxrr@decompose{#2}%
+ \edef\pxrr@natwd{\the\wd\pxrr@boxa}%
+ \pxrr@evenspace@int{#1}\pxrr@boxa\relax{\pxrr@maxwd}%
+ \else
+ \let\pxrr@bspace\pxrr@zeropt
+ \let\pxrr@aspace\pxrr@zeropt
+ \fi
+ \setbox\z@\hbox{%
+ \@tempdima\wd\pxrr@boxr
+ \raise\pxrr@ruby@raise\box\pxrr@boxr
+ \kern-\@tempdima
+ \lower\pxrr@ruby@lower\box\pxrr@boxb
+ }%
+ \ht\z@\z@ \dp\z@\z@
+ \@tempdima\wd\z@
+ \setbox\pxrr@boxr\hbox{%
+ \box\z@
+ \kern-\@tempdima
+ \box\pxrr@boxa
+ }%
+}
+\def\pxrr@compose@block@pre{%
+ \pxrr@ifnum{\pxrr@fullsize>\z@}{%
+ \pxrr@compose@block@pre@a
+ }{%
+ \pxrr@compose@block@pre@c
+ }%
+}
+\def\pxrr@compose@block@pre@a#1#2#3{%
+ \def\pxrr@compose@block@tempa{#3}%
+ \pxrr@transform@kana\pxrr@compose@block@tempa
+ \expandafter\pxrr@compose@block@pre@b
+ \expandafter{\pxrr@compose@block@tempa}{#1}{#2}%
+}
+\def\pxrr@compose@block@pre@b#1#2#3{%
+ \pxrr@compose@block@pre@c{#2}{#3}{#1}%
+}
+\def\pxrr@compose@block@pre@c{%
+ \pxrr@ifnum{\pxrr@evensp=\z@}{%
+ \pxrr@compose@block@pre@d
+ }{%
+ \pxrr@compose@block@do
+ }%
+}
+\def\pxrr@compose@block@pre@d#1#2{%
+ \pxrr@compose@block@do{#1}{{#2}}%
+}
+\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
+}
+\let\pxrr@body@input\@empty
+\def\pxrr@prepare@fallback#1{%
+ \pxrr@fatal@errorfalse
+ \def\pxrr@body@input{#1}%
+}
+\def\pxrr@fallback{%
+ \pxrr@body@input
+}
+\def\pxrr@if@alive{%
+ \ifpxrr@fatal@error \expandafter\@gobble
+ \else \expandafter\@firstofone
+ \fi
+}
+\def\pxrr@end@kinsoku{0}
+\def\pxrr@ruby@scan#1#2{%
+ \def\pxrr@tempc{%
+ \edef\pxrr@end@kinsoku{\the\pxrr@cntr}%
+ \pxrr@do@proc{#1}{#2}%
+ }%
+ \pxrr@check@kinsoku\pxrr@tempc
+}
+\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
+}
+\def\pxrr@check@kinsoku#1{%
+ \let\pxrr@tempb#1%
+ \futurelet\pxrr@tempa\pxrr@check@kinsoku@a
+}
+\def\pxrr@check@kinsoku@a{%
+ \pxrr@check@char\pxrr@tempa
+ \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
+}
+\def\pxrr@check@kinsoku@b#1{%
+ \pxrr@check@kinsoku@c#1#1%
+}
+\def\pxrr@check@kinsoku@c#1{%
+ \pxrr@cntr\prebreakpenalty`#1\relax
+ \pxrr@tempb
+}
+\def\pxrr@tempa#1#2\pxrr@nil{%
+ \def\pxrr@check@char##1{%
+ \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
+ \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
+ }%
+}
+\expandafter\pxrr@tempa\string\kanji\pxrr@nil
+\let\pxrr@auto@penalty\z@
+\let\pxrr@auto@icspace\pxrr@zeropt
+\let\pxrr@intr@amount\pxrr@zeropt
+\def\pxrr@intrude@setauto@j{%
+ \ifpxrr@bnobr
+ \let\pxrr@auto@penalty\@MM
+ \let\pxrr@auto@icspace\pxrr@zeropt
+ \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
+}
+\def\pxrr@intrude@setauto@a{%
+ \if :\pxrr@bscomp\else
+ \pxrr@bnobrtrue
+ \fi
+ \ifpxrr@bnobr
+ \let\pxrr@auto@penalty\@MM
+ \let\pxrr@auto@icspace\pxrr@zeropt
+ \else
+ \let\pxrr@auto@penalty\z@
+ \let\pxrr@auto@icspace\pxrr@iaiskip
+ \fi
+}
+\def\pxrr@intrude@head{%
+ \ifpxrr@ghost\else
+ \let\pxrr@intr@amount\pxrr@bspace
+ \ifdim\pxrr@bintr<\pxrr@intr@amount\relax
+ \let\pxrr@intr@amount\pxrr@bintr
+ \fi
+ \ifpxrr@abody
+ \pxrr@intrude@setauto@a
+ \else
+ \pxrr@intrude@setauto@j
+ \fi
+ \ifpxrr@par@head
+ \ifpxrr@bfintr
+ \hskip-\pxrr@intr@amount\relax
+ \fi
+ \else
+ \penalty\pxrr@auto@penalty\relax
+ \hskip-\pxrr@intr@amount\relax
+ \hskip\pxrr@auto@icspace\relax
+ \fi
+ \fi
+}
+\def\pxrr@intrude@end{%
+ \ifpxrr@ghost\else
+ \let\pxrr@intr@amount\pxrr@aspace
+ \ifdim\pxrr@aintr<\pxrr@intr@amount\relax
+ \let\pxrr@intr@amount\pxrr@aintr
+ \fi
+ \ifpxrr@abody
+ \pxrr@intrude@setauto@a
+ \else
+ \pxrr@intrude@setauto@j
+ \fi
+ \ifnum\pxrr@auto@penalty=\z@
+ \let\pxrr@auto@penalty\pxrr@end@kinsoku
+ \fi
+ \ifpxrr@afintr
+ \ifnum\pxrr@auto@penalty=\z@\else
+ \penalty\pxrr@auto@penalty\relax
+ \fi
+ \kern-\pxrr@intr@amount\relax
+ \hskip\pxrr@auto@icspace\relax
+ \ifnum\pxrr@auto@penalty=\z@\else
+ \penalty\@MM
+ \fi
+ \else
+ \@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
+}
+\AtBeginDocument{%
+ \providecommand*{\ruby}{\jruby}%
+}
+\newcommand*{\jruby}{%
+ \pxrr@jprologue
+ \pxrr@trubyfalse
+ \pxrr@ruby
+}
+\pxrr@add@protect\jruby
+\newcommand*{\aruby}{%
+ \pxrr@aprologue
+ \pxrr@trubyfalse
+ \pxrr@ruby
+}
+\pxrr@add@protect\aruby
+\newcommand*{\truby}{%
+ \pxrr@jprologue
+ \pxrr@trubytrue
+ \pxrr@ruby
+}
+\pxrr@add@protect\truby
+\newcommand*{\atruby}{%
+ \pxrr@aprologue
+ \pxrr@trubytrue
+ \pxrr@ruby
+}
+\pxrr@add@protect\atruby
+\newif\ifpxrr@truby
+\let\pxrr@option\@empty
+\let\pxrr@exoption\@empty
+\let\pxrr@do@proc\@empty
+\let\pxrr@do@scan\@empty
+\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
+}
+\def\pxrr@ruby@proc#1#2{%
+ \pxrr@prepare@fallback{#1}%
+ \pxrr@assign@fsize
+ \pxrr@parse@option\pxrr@option
+ \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}%
+\ifpxrrDebug
+ \pxrr@debug@show@input
+\fi
+ \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
+ }%
+ \pxrr@ruby@exit
+}
+\def\pxrr@truby@proc#1#2#3{%
+ \pxrr@prepare@fallback{#1}%
+ \pxrr@assign@fsize
+ \pxrr@parse@option\pxrr@option
+ \def\pxrr@all@input{{#1}{#2}{#3}}%
+\ifpxrrDebug
+ \pxrr@debug@show@input
+\fi
+ \pxrr@if@alive{%
+ \pxrr@ruby@check@tg
+ \pxrr@if@alive{\pxrr@ruby@main@tg}%
+ }%
+ \pxrr@ruby@exit
+}
+\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
+}
+\def\pxrr@ruby@check@m{%
+ \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
+ \else
+ \pxrr@fatal@bad@mono
+ \fi
+}
+\def\pxrr@ruby@check@tg{%
+}
+\newif\ifpxrr@par@head
+\def\pxrr@check@par@head{%
+ \ifvmode
+ \pxrr@par@headtrue
+ \else
+ \pxrr@par@headfalse
+ \fi
+}
+\def\pxrr@if@last#1#2#3{%
+ \ifx#3\pxrr@post #1%
+ \else #2%
+ \fi
+ #3%
+}
+\def\pxrr@inter@mono{%
+ \hskip\pxrr@iiskip\relax
+}
+\def\pxrr@takeout@any@protr@nocolor{%
+ \ifpxrr@any@protr
+ \aftergroup\pxrr@any@protrtrue
+ \fi
+}
+\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
+}
+\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@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{%
+ \pxrr@if@last{%
+ \pxrr@compose@block\pxrr@locate@sing@{##1}{##2}%
+ \pxrr@intrude@head
+ \unhbox\pxrr@boxr
+ \pxrr@intrude@end
+ \pxrr@takeout@any@protr
+ }{%
+ \pxrr@compose@block\pxrr@locate@head@{##1}{##2}%
+ \pxrr@intrude@head
+ \unhbox\pxrr@boxr
+ }%
+ }%
+ \def\pxrr@inter##1##2{%
+ \pxrr@if@last{%
+ \pxrr@compose@block\pxrr@locate@end@{##1}{##2}%
+ \pxrr@inter@mono
+ \unhbox\pxrr@boxr
+ \pxrr@intrude@end
+ \pxrr@takeout@any@protr
+ }{%
+ \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}%
+ \if j\pxrr@mode
+ \ifpxrr@any@protr
+ \pxrr@ruby@redo@j
+ \fi
+ \fi
+ \unhbox\pxrr@boxr
+}
+\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}%
+}
+\def\pxrr@ruby@main@g{%
+ \pxrr@zip@list\pxrr@body@list\pxrr@ruby@list
+ \let\pxrr@whole@list\pxrr@res
+ \pxrr@check@par@head
+\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
+ \pxrr@whole@list
+}
+\def\pxrr@ruby@main@tg{%
+ \pxrr@check@par@head
+ \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
+}
+\newif\ifpxrr@ghost
+\pxrr@jchardef\pxrr@zspace=\pxrr@jc{2121:3000}
+\def\pxrr@jprologue{%
+ \ifpxrr@jghost
+ \pxrr@zspace
+ \fi
+ \begingroup
+ \pxrr@abodyfalse
+ \pxrr@csletcs{ifpxrr@ghost}{ifpxrr@jghost}%
+ \ifpxrr@jghost
+ \setbox\pxrr@boxa\hbox{\pxrr@zspace}%
+ \kern-\wd\pxrr@boxa
+ \fi
+}
+\ifpxrr@aghost
+ \IfFileExists{t1lmr.fd}{%
+ \begingroup
+ \fontsize{2.5}{0}\usefont{T1}{lmr}{m}{n}
+ \endgroup
+ \pxrr@letcs\pxrr@aghostfont{T1/lmr/m/n/2.5}%
+ \chardef\pxrr@aghostchar=23 % compwordmark
+ \def\pxrr@aghost{{\pxrr@aghostfont\pxrr@aghostchar}}%
+ \xspcode\pxrr@aghostchar=3 %
+ }{%else
+ \oxrr@warn{Ghost embedding for \string\aruby\space
+ is disabled,\MessageBreak
+ since package lmodern is missing}%
+ \pxrr@aghostfalse
+ \let\pxrr@aghosttrue\relax
+ }%
+\fi
+\def\pxrr@aprologue{%
+ \ifpxrr@aghost
+ \pxrr@aghost
+ \fi
+ \begingroup
+ \pxrr@abodytrue
+ \pxrr@csletcs{ifpxrr@ghost}{ifpxrr@aghost}%
+}
+\def\pxrr@ruby@exit{%
+ \ifpxrr@fatal@error
+ \pxrr@fallback
+ \fi
+ \ifpxrr@abody
+ \expandafter\pxrr@aepilogue
+ \else
+ \expandafter\pxrr@jepilogue
+ \fi
+}
+\def\pxrr@jepilogue{%
+ \ifpxrr@jghost
+ \setbox\pxrr@boxa\hbox{\pxrr@zspace}%
+ \kern-\wd\pxrr@boxa
+ \fi
+ \endgroup
+ \ifpxrr@jghost
+ \pxrr@zspace
+ \fi
+}
+\def\pxrr@aepilogue{%
+ \endgroup
+ \ifpxrr@aghost
+ \pxrr@aghost
+ \fi
+}
+\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%
+ 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%
+ ----
+ }%
+}
+\endinput
+%%
+%% End of file `pxrubrica.sty'.
diff --git a/Master/tlpkg/tlpsrc/collection-langcjk.tlpsrc b/Master/tlpkg/tlpsrc/collection-langcjk.tlpsrc
index d940ce92a82..9ceb52c922a 100644
--- a/Master/tlpkg/tlpsrc/collection-langcjk.tlpsrc
+++ b/Master/tlpkg/tlpsrc/collection-langcjk.tlpsrc
@@ -29,6 +29,7 @@ depend norasi-c90
depend ptex
depend pxcjkcat
depend pxbase
+depend pxrubrica
depend thailatex
depend uhc
depend uptex
diff --git a/Master/tlpkg/tlpsrc/pxrubrica.tlpsrc b/Master/tlpkg/tlpsrc/pxrubrica.tlpsrc
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/Master/tlpkg/tlpsrc/pxrubrica.tlpsrc