<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">% \iffalse meta-comment
% This is file `outoruby.dtx'.
%% Copyright (c) 2025 kkotsi
%% This file is distributed under the GNU General Public Licence Version 3.
%%   https://www.gnu.org/licenses/gpl-3.0.html
%% Repository: https://codeberg.org/kkotsi/outoruby
%% CTAN: https://ctan.org/pkg/outoruby
%
% The outoruby package: Ruby with line break support for Japanese text.
%
% This package provides the \outoruby command, which supports line breaks when typesetting ruby anotations.
% It automatically switches between appropriate ruby form at the beginning and the end of lines according to JIS X 4051 and JLReq.
% This package depends on pxrubrica and supports any engine that is supported by that package.
%
% To generate outoruby.sty, run the following command:
%   tex outoruby.dtx
% To generate outoruby.pdf, run following commands (outoruby.sty needed):
%   uplatex outoruby.dtx
%   uplatex outoruby.dtx
%   uplatex outoruby.dtx
%   makeindex -s gind.ist outoruby.idx
%   makeindex -s gglo.ist outoruby.glo -o outoruby.gls
%   uplatex outoruby.dtx
%   uplatex outoruby.dtx
%   dvipdfmx outoruby
% \fi
% \makeatother
%%
%% \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     \&amp;
%%   Acute accent  \'     Left paren    \(     Right paren   \)
%%   Asterisk      \*     Plus          \+     Comma         \,
%%   Minus         \-     Point         \.     Solidus       \/
%%   Colon         \:     Semicolon     \;     Less than     \&lt;
%%   Equals        \=     Greater than  \&gt;     Question mark \?
%%   Commercial at \@     Left bracket  \[     Backslash     \\
%%   Right bracket \]     Circumflex    \^     Underscore    \_
%%   Grave accent  \`     Left brace    \{     Vertical bar  \|
%%   Right brace   \}     Tilde         \~}
%%
% \makeatletter
% \CheckSum{1407}
%
% \iffalse
%&lt;*ins&gt;
\ifx\documentclass\undefined
  \input docstrip
  \askforoverwritetrue
  \AddGenerationDate
\preamble
\endpreamble
  \generate{%
    \file{outoruby.sty}{\from{outoruby.dtx}{pkg}}%
  }
  \expandafter\endbatchfile
\fi
%&lt;/ins&gt;
%
%&lt;*driver&gt;
\NeedsTeXFormat{LaTeX2e}
\ProvidesFile{outoruby.dtx}
%&lt;/driver&gt;
% \fi
%
% \@nameuse{@@sourcepart}\iffalse
%
% æ®‹å¿µãªãŒã‚‰\LaTeX é™å®šã€‚
%    \begin{macrocode}
%&lt;pkg&gt;\NeedsTeXFormat{LaTeX2e}
%&lt;pkg&gt;\ProvidesPackage{outoruby}
%&lt;*pkg|driver&gt;
  [2025/03/14 v0.0.1 ]
%&lt;/pkg|driver&gt;
%    \end{macrocode}
%
% \@nameuse{@@sourcepart}\fi
% \@nameuse{@@sourcepartend}
%
% \iffalse
%&lt;*driver&gt;
\documentclass[dvipdfmx]{ujarticle}
\makeatletter
\usepackage[scale=0.924715,deluxe]{jlreq-deluxe}\normalfont\normalsize
\usepackage{ajmacros}
\newcommand\zw{zw}
\setlength\emergencystretch{3em}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\renewcommand*\rmdefault{lmr}
\usepackage[scale=0.86,medium]{FiraSans}
\renewcommand*{\ttdefault}{ntxtt}
\DeclareFontShape{JY2}{hmc}{b}{n}{&lt;-&gt;ssub*hmc/bx/n}{}
\DeclareFontShape{JT2}{hmc}{b}{n}{&lt;-&gt;ssub*hmc/bx/n}{}
\DeclareFontShape{JY2}{hgt}{b}{n}{&lt;-&gt;ssub*hgt/bx/n}{}
\DeclareFontShape{JT2}{hgt}{b}{n}{&lt;-&gt;ssub*hgt/bx/n}{}
% å¤ªå­—ã¯ã‚´ã‚·ãƒƒã‚¯
\DeclareFontShape{JY2}{hmc}{bx}{n}{&lt;-&gt;ssub*hgt/bx/n}{}
\DeclareFontShape{JT2}{hmc}{bx}{n}{&lt;-&gt;ssub*hgt/bx/n}{}
%
\setlength\topskip{1.5\zw}
\setlength\baselineskip{1.75\zw}
\setlength\columnsep{3\zw}
\usepackage[
  textwidth=47\zw,
  lines=46,
  left=12.2\zw,
]{geometry}
\usepackage{pxeverysel,plext}
\usepackage{multicol,color,graphicx,bm,amsfonts,array}
\usepackage{booktabs,float,bxtexlogo,tasks,accsupp,fancyvrb,manfnt,needspace}
\usepackage{etoolbox}
\usepackage[verb]{bxghost}
\usepackage{hypdoc}
\AlsoImplementation \CodelineIndex
\usepackage{footnotehyper,footnotebackref}
\usepackage{pxjahyper}
\usepackage{outoruby}
%\usepackage{bxjaprnind}
\catcode`\#=12 \@firstofone{\catcode`\#=6
\let\@@pxrr@compose@oneside@block@do\pxrr@compose@oneside@block@do
  \patchcmd\@@pxrr@compose@oneside@block@do{%
    \pxrr@evenspace@int{#1}\pxrr@boxr
  }{%
    \pxrr@evenspace@int{\pxrr@locate@inner}\pxrr@boxr
  }{%
    \newcommand\pxpatchon{%
      \let\pxrr@compose@oneside@block@do\@@pxrr@compose@oneside@block@do}
  }{%
    \let\@@pxrr@compose@block\pxrr@compose@block
    \patchcmd\@@pxrr@compose@block{%
      \pxrr@evenspace@int{#1}\pxrr@boxr
    }{%
      \pxrr@evenspace@int{\pxrr@locate@inner}\pxrr@boxr
    }{%
      \newcommand\pxpatchon{%
        \let\pxrr@compose@block\@@pxrr@compose@block}
    }{%
      Patch failed%
    }%
  }
}
\outorubyhyphenbreakable
\def\em@@last#1{%
  \global\@namedef{em@@last@#1}{}}
\begin{document}
\DocInput{outoruby.dtx}
\end{document}
%&lt;/driver&gt;
% \fi
%
% \RecordChanges
% \def\@@generalname:\ {}^^A å±é™º
% \def\generalname{\protect\@@generalname}
% \changes{v0.0.0}{2025/03/02}{åˆç‰ˆã€‚}
% \changes{v0.0.1}{2025/03/15}{è»½å¾®ãªä¿®æ­£ã€‚}
% \DoNotIndex{
%   \advance, \begingroup, \csname, \def, \edef, \else, \endgroup, \endcsname, \expandafter,
%   \fi, \if, \ifnum, \ifx, \let, \noexpand,
%   \relax, \the
% }
%
% \frenchspacing
% \setlength\emergencystretch{3em}
%
% \setlength\marginparwidth{12\zw}
% \newcommand\marginfig[1]{\marginpar{^^A
%   \hskip2.5\zw
%   \advance\marginparwidth-3\zw
%   \parbox[b]{\marginparwidth}{^^A
%     #1}\hskip0.5\zw}}
%
% \def\texlevel{\leavevmode\marginpar{\hfill\dbend}}
% \def\textexlevel{\leavevmode\marginpar{\hfill\dbend\dbend}}
%
% \DeclareRobustCommand\small{^^A
%   \@setfontsize\small\@ixpt{13.5}^^A
% }
% \DeclareRobustCommand\footnotesize{^^A
%   \@setfontsize\small\@viiipt{12}^^A
% }
% \setlength\footnotesep{8.6\p@}
% \DeclareRobustCommand*\emph[1]{^^A
%   \relax\ifmmode \bm{#1}^^A
%   \else \textbf{\textgt{#1}}\fi}
%
% \renewcommand\contentsname{ç›®æ¬¡}
% \renewcommand\abstractname{\outoruby{æ¦‚è¦}{ãŒã„|ã‚ˆã†}}
%
% \newcommand\jttdefault{\gtdefault}
% \EverySelectfont{^^A
%   \begingroup
%     \edef\x{\f@family}^^A
%     \edef\y{\ttdefault}^^A
%     \edef\z{\k@family}^^A
%     \edef\a{\jttdefault}^^A
%   \expandafter\expandafter\expandafter\endgroup\ifx\x\y\ifx\z\a\else
%     \kanjifamily\jttdefault\selectfont
%   \fi\fi\relax
%   \setlength\kanjiskip{0pt plus 0.02\zw minus 0.02\zw}^^A
%   \setlength\xkanjiskip{0.25\zw plus 0.05\zw minus 0.10\zw}^^A
% }\selectfont
%
% \renewcommand\quotation{^^A
%   \list{}{\listparindent1\zw\itemindent\listparindent
%     \rightmargin\leftmargin \parsep\z@
%     \item\relax}}
% \setlength\leftmargini{2\zw}
% \edef\@listi{\@listi
%   \itemsep\z@
%   \parsep\z@
% }
% \let\@listI\@listi
%
% \renewcommand\paragraph{\@startsection{paragraph}{4}{\z@}{^^A
%   0.5\Cvs}{1sp}{\normalfont\normalsize\bfseries\gtfamily \noindent â–&nbsp;}}
%
% \newcommand\@@fnmark{\textsf{\textdagger}}
% \renewcommand\@makefnmark{\null\hbox{\@textsuperscript{\normalfont\@@fnmark\@thefnmark}}\null}
% \renewcommand\@makefntext[1]{\parindent1\zw
%   \leftskip1.75\zw
%   \noindent\hb@xt@\z@{\hskip-1\zw\relax
%     \hyperref[\BackrefFootnoteTag]{\@@fnmark\@thefnmark}\hss}\hskip1\zw\relax#1}
% \renewcommand\footnoterule{^^A
%   \kern-3\p@
%   \hrule\@width.333\columnwidth\@height0.4\p@
%   \kern2.5\p@}
% \setlength{\skip\footins}{1.75\zw\@plus5\p@\@minus5\p@}
%
% \newenvironment{fullwidth}{^^A
%   \list{}{^^A
%   \leftmargin-\marginparwidth
%   \advance\leftmargin-\marginparsep
%   \advance\leftmargin3\zw
%   \listparindent1\zw
%   }\item\relax
% }{^^A
%   \endlist
% }
%
% \clubpenalty\z@
% \widowpenalty\z@
%
% \renewcommand\AltMacroFont{\MacroFont}
% \CodelineNumbered
% \setlength\MacroTopsep{2pt minus \z@}^^A macroç’°å¢ƒå‰å¾Œã®ã‚¢ã‚­
% \def\linenumberstyle#1{{^^A
%   \rmfamily\scriptsize\color[gray]{0.5}^^A
%   \BeginAccSupp{method=hex,ActualText=00}^^A
%   #1\EndAccSupp{}}}
% \def\theCodelineNo{\linenumberstyle{^^A
%     \arabic{CodelineNo}}}
% \def\theFancyVerbLine{\linenumberstyle{^^A
%     \arabic{FancyVerbLine}}}
% \fvset{fontsize=\small, frame=leftline, numbersep=2pt, numbers=left, framerule=0.4pt, framesep=4pt, rulecolor=\color[gray]{0.75}, gobble=4}
%
% \def\PrintDescribeMacro#1{^^A
%   \begingroup \MacroFont
%   \mparwidth{\string #1}^^A
%   \endgroup}
% \let\PrintMacroName\PrintDescribeMacro
% \newcommand*\mparwidth[1]{^^A ã‚¢ãƒ¬
%   \begingroup
%   \settowidth\@tempdima{#1}^^A
%   \@tempdimb\marginparwidth
%   \advance\@tempdimb-3\p@
%   \ifdim\@tempdima&gt;\@tempdimb
%     ^^A\fontfamily{lmtt}\fontseries{lc}\selectfont
%     \settowidth\@tempdima{#1}^^A
%     \ifdim\@tempdima&gt;\@tempdimb
%       \advance\@tempdima10\p@
%       \divide\@tempdima\p@
%       \divide\@tempdimb\@tempdima
%       \expandafter\scalebox\expandafter{\romannumeral-`0\strip@pt\@tempdimb}[1.0]{#1}^^A
%     \else
%       #1^^A
%     \fi
%   \else
%     #1^^A
%   \fi\endgroup}
%
% \newcount\em@@count
% \chardef\em@@unique=17
% \newif\ifem@@lastand \global\em@@lastandtrue
% \def\endmacro{^^A
%   \ifdim\lastskip=-\em@@unique sp\relax^^A ã‚¢ãƒ¬
%   \else
%     \immediate\write\@auxout{^^A
%       \noexpand\em@@last{\the\em@@count}}^^A
%   \fi
%   \global\advance\em@@count\@ne
%   \endtrivlist
%   \expandafter\expandafter\expandafter\gdef\expandafter\expandafter\expandafter\em@@savedname\expandafter\expandafter\expandafter{\expandafter\string\saved@macroname}^^A
%   \ifx\em@@list\@undefined
%     \global\expandafter\def\expandafter\em@@list\expandafter{\em@@savedname}^^A
%   \else
%     \ifem@@lastand
%       \expandafter\ltx@GlobalPrependToMacro\expandafter\em@@list\expandafter{\em@@savedname\em@@andlast}^^A
%     \else
%       \expandafter\ltx@GlobalPrependToMacro\expandafter\em@@list\expandafter{\em@@savedname\em@@and}^^A
%     \fi
%     \global\em@@lastandfalse
%   \fi
%   \expandafter\ifx\csname em@@last@\the\em@@count\endcsname\relax
%   \else
%     \em@@print
%     \global\let\em@@list\@undefined
%     \global\em@@lastandtrue
%   \fi
%   \vskip-\em@@unique sp\relax
% }
% \def\em@@and{{\normalfont\@@it\itshape \,, \,}}
% \def\em@@andlast{{\normalfont\@@it\itshape \,,\, and  \,}}
% \def\em@@print{{^^A
%   \par\noindent
%   \small\@@it\itshape (End of definition for {\MacroFont\itshape\em@@list}\,.)\par}}
% \AtEndDocument{^^A
%   \immediate\write\@auxout{^^A
%     \noexpand\em@@last{\the\em@@count}}}
%
% \definecolor{hred}{rgb}{0.5,0,0}
% \definecolor{hblue}{rgb}{0,0,0.45}
% \hypersetup{^^A
%   linkcolor=hred,
%   urlcolor=hblue,
%   pdfauthor=kkotsi,
% }
%
% \GetFileInfo{outoruby.dtx}
% \DeclareRobustCommand\file[1]{\textsf{#1}}
% \DeclareRobustCommand\pkg[1]{\file{#1}}
% \DeclareRobustCommand\cls[1]{\file{#1}}
%
% \newcommand\globstar{^^A
%   \eghostguarded{\texttt{\textit{\large\lower.5ex\hbox{*}}}}}
%
% \newcommand\jkrubypkg{^^A
%   ç”»æœŸçš„\ajSnowman ãªãƒ«ãƒ“ãƒ‘ãƒƒã‚±ãƒ¼ã‚¸}
% \newcommand\ltjrubypkg{^^A
%   \href{https://github.com/luatexja/luatexja}{\pkg{luatexja-ruby}}}
% \newcommand\pxrbpkg{^^A
%   \href{https://github.com/zr-tex8r/PXrubrica}{\pkg{pxrubrica}}}
%
% \newcommand\X{\(\mathbb{X}\)}
%
% \xspcode`\\=\thr@@
% \xspcode`\{=\@ne
% \xspcode`\}=\tw@
%
% \catcode`\&lt;=\active
% \newcommand\@@it{^^A
%   \fontfamily{ntxlf}\def\ntx@scaled{s*[1]}\selectfont}
% \protected\def&lt;#1&gt;{{\eghostguarded{^^A
%   \@@it
%   \(\langle\)\null\textit{\met@#1_{}\@nil}\null\(\rangle\)}}}
% \DeclareRobustCommand*\meta[1]{&lt;#1&gt;}
% \def\met@#1_#2#3\@nil{^^A
%   \ltx@ifempty{#3}{#1}{^^A
%     \c@@arg #1$_{#2}$\met@#3\@nil}}
% \let\@@outorb@opt@opt\outorb@opt@opt
% \def\outorb@opt@opt#1\outorb@nil{^^A
%   \begingroup
%     \edef&lt;{\string&lt;}^^A
%     \protected@edef\x{#1}^^A
%   \expandafter\endgroup\expandafter\@@outorb@opt@opt\x\outorb@nil}
%
% \DeclareRobustCommand*\cs{^^A
%   \ltx@ifnextchar\bgroup{\cs@@{}}{\cs@@@{}}}
% \def\cs@@#1#2{^^A
%   \eghostguarded{\texttt{\bslash #2}}#1}
% \def\cs@@@#1#2{\cs@@{#1}{\expandafter\@gobble\string#2}}
% \DeclareRobustCommand*\@cs{^^A
%   \ltx@ifnextchar\bgroup{\cs@@\c@@arg}{\cs@@@\c@@arg}}
%
% \DeclareRobustCommand\A{^^A
%   \ltx@ifnextchar[\oarg\marg}
% \newcommand*\marg[1]{\eghostguarded{^^A
%   \texttt\{\c@@arg #1\texttt\}}}
% \def\oarg[#1]{\eghostguarded{^^A
%   \texttt{[\c@@arg #1]}}}
% \def\CS{\cs{CS}}
% \def\CSa{\cs{CSa}}
% \def\CSb{\cs{CSb}}
% \def\pxrr@inter{\cs{pxrr@inter}\c@@arg}
% \def\pxrr@pre{\cs{pxrr@pre}\c@@arg}
% \def\pxrr@post{\cs{pxrr@post}\c@@arg}
% \def\c@@arg{^^A
%   \ltx@ifnextchar\bgroup{\c@@@rg}{^^A
%     \ltx@ifnextchar[{\c@@@@rg}{}}}
% \def\c@@@rg#1{^^A
%   \marg{#1}\c@@arg}
% \def\c@@@@rg[#1]{^^A
%   \oarg[#1]\c@@arg}
%
% \newcommand\ttindent{\mbox{\texttt{\space\space}}}
% \newcommand*\ttend[1]{\texttt\%\\^^A
%   \@@ttend{#1}}
% \def\@@ttend#1{^^A
%   \ifnum#1&gt;\z@
%     \ttindent
%     \begingroup \@tempcnta=#1\relax \advance\@tempcnta\m@ne
%     \expandafter\endgroup\expandafter\@@ttend\expandafter{\the\@tempcnta}^^A
%   \fi\c@@arg}
%
% \newcommand*\desccs[1]{\par
%   \needspace{6\baselineskip}^^A
%   \noindent
%   \if*\noexpand#1^^A
%     \expandafter\DescribeMacro
%   \else
%     \DescribeMacro{#1}^^A
%     \cs#1^^A
%     \expandafter\c@@arg
%   \fi}
%
% \newcommand*\@@argbrace[1]{^^A
%   \@ifnextchar\bgroup{^^A
%     \@@argbrace@b{#1}}{#1}}
% \def\@@argbrace@b#1#2{#1{{#2}}}
%
% \newcommand*\headitem[1]{^^A
%   \if@@movemarginpar \@@movemarginparfalse \fi
%   \par\noindent\hb@xt@\z@{\hss\mparwidth{#1}\hskip\labelsep}\ignorespaces}
% \newcommand*\inarg[1]{^^A
%   \headitem{\texttt{\##1}:}\c@@arg}
% \newcommand*\result{^^A
%   \@@argbrace\@@result}
% \def\@@result#1{^^A
%   \headitem{\texttt{\cs#1} \textrightarrow}\c@@arg}
% \newcommand*\intl{^^A
%   \@@argbrace\@@intl}
% \def\@@intl#1{^^A
%   \headitem{\texttt{\cs#1}:}\c@@arg}
%
% \newif\if@@movemarginpar
% \newcommand\movempar{\par\@@movemarginpartrue\vskip-\baselineskip\leavevmode}
%
% \newcommand*\argn[1]{^^A
%   \texttt{\##1}}
%
% \title{\pkg{outoruby}ãƒ‘ãƒƒã‚±ãƒ¼ã‚¸}
% \let\@@@@@makefntext\@makefntext
% \let\@@@@@makefnmark\@makefnmark
% \let\thanks\footnote
% \author{kkotsi^^A
%   \let\@makefntext\@@@@@makefntext
%   \def\@@fnmark{}^^A
%   \footnote{ãƒªãƒã‚¸ãƒˆãƒªã¯\url{https://codeberg.org/kkotsi/outoruby}ã€‚}}^^A
% \date{\filedate\ \fileversion}
% \begin{savenotes}
% \HyOrg@maketitle
% \end{savenotes}
% \begin{abstract}
%   \pxrbpkg ã‚’ãƒ©ãƒƒãƒ—ã—ã€
%   \outoruby{è‡ªå‹•}{ã˜|ã©ã†}ã§\outoruby[||-][-|]{è¡Œé&nbsp;­å½¢}{ãŽã‚‡ã†|ã¨ã†|ã‘ã„}ï¼
%   \outoruby{è¡Œä¸­å½¢}{ãŽã‚‡ã†|ã¡ã‚…ã†|ã‘ã„}ï¼\outoruby[-||][|-]{è¡Œæœ«å½¢}{ãŽã‚‡ã†|ã¾ã¤|ã‘ã„}
%   ã‚’\outoruby{åˆ‡}{ã}ã‚Š\outoruby{æ›¿}{ã‹}ãˆã‚‰ã‚Œã‚‹ã‚‹ãƒ«ãƒ“\outoruby[-:]{å‘½ä»¤}{ã‚ã„|ã‚Œã„}\cs{outoruby}ã‚’
%   \outoruby[&lt;&gt;]{æä¾›}{ã¦ã„|ãã‚‡ã†}ã™ã‚‹ã€‚
%   \outoruby{å®Ÿè£…}{ã˜ã£|ãã†}ã¯\cs{discretionary}ã«ã‚ˆã‚‹ã€‚
% \end{abstract}
%
% \renewcommand*{\l@subsection}{\@dottedtocline{2}{1\zw}{2\zw}}
% \renewcommand*{\l@subsubsection}{\@dottedtocline{3}{2\zw}{3\zw}}
% \section*{\contentsname\@mkboth{\contentsname}{\contentsname}}
% \begin{multicols}{2}
%   \@starttoc{toc}
% \end{multicols}
%
% \section{èƒŒæ™¯}
%
% å¾“æ¥ã€æ—¥æœ¬èªž\LaTeX ç’°å¢ƒã«ãŠã„ã¦ãƒ«ãƒ“ã‚’å®Ÿç¾ã™ã‚‹ãƒ‘ãƒƒã‚±ãƒ¼ã‚¸ã¨ã—ã¦ã¯
% \begin{savenotes}
% \begin{tasks}[
%   label=\arabic*.,
%   item-indent={2\zw},
%   column-sep={1\zw}, ^^A 3x+(3-1)y=47ã®è‡ªç„¶æ•°è§£ã®ã†ã¡æœ€å°ã®y \textwidth=47\zw
% ](3)
%   \task \href{https://github.com/texjporg/jsclasses}{\pkg{okumacro}}
%   \task \href{http://xymtex.com/fujitas2/texlatex/index.html\#tategumi}{\pkg{furikana}}^^A
%     \footnote{é•·ã‚‰ããƒ¡ãƒ³ãƒ†ãƒŠãƒ³ã‚¹ã•ã‚Œã¦ãŠã‚‰ãšã€æ”¹å¤‰å†é…å¸ƒç­‰ã‚‚èªã‚ã‚‰ã‚Œã¦ãªã„ã€‚\TeX\ LiveæœªåŽéŒ²ã€‚}
%   \task \href{http://xymtex.com/fujitas2/texlatex/index.html\#tategumi}{\pkg{furiknkt}}^^A
%     \footnote{ä¸Šã«åŒã˜ã€‚}
%   \task \href{https://www.nongnu.org/cjk/}{\pkg{ruby}ï¼ˆ\pkg{CJK}ãƒ‘ãƒƒã‚±ãƒ¼ã‚¸ï¼‰\&lt;}^^A
%     \footnote{æ—¥æœ¬èªžã®ãƒ«ãƒ“ã¨ã—ã¦ã¯ä½¿ã†ã¹ãã§ã¯ãªã„ã¨ã•ã‚Œã¦ã„ã‚‹ã€‚}
%   \task \pxrbpkg
%   \task \ltjrubypkg
% \end{tasks}
% ç­‰ãŒçŸ¥ã‚‰ã‚Œã¦ã„ãŸã€‚
% ã“ã‚Œã‚‰ã®ã†ã¡è¡Œåˆ†å‰²å¯èƒ½ãªãƒ«ãƒ“å‘½ä»¤ã‚’æä¾›ã™ã‚‹ã®ã¯\pxrbpkg ã¨\ltjrubypkg ã®ã¿ã§ã‚ã‚Šã€ãã‚Œãžã‚Œæ¬¡ã®åˆ¶ç´„ãŒã‚ã‚‹ï¼š
% \end{savenotes}
% \begin{description}
%   \item[\pxrbpkg] \mbox{}\\*
%     ãƒ¢ãƒŽãƒ«ãƒ“ã«å¸°ç€ã§ãã‚‹å&nbsp;´åˆã«ã—ã‹è¡Œåˆ†å‰²ã§ããªã„ã€‚
%     è¡Œé&nbsp;­å½¢ï¼è¡Œä¸­å½¢ï¼è¡Œæœ«å½¢ã‚’è‡ªå‹•ã§åˆ‡ã‚Šæ›¿ãˆã‚‰ã‚Œãªã„ã€‚
%   \item[\ltjrubypkg] \mbox{}\\*
%     \LuaLaTeX ã§ã—ã‹ä½¿ãˆãªã„ã€‚
% \end{description}
%
% ã—ãŸãŒã£ã¦ã€(u)\pLaTeX ã§ã¯è¡Œåˆ†å‰²ã«å¿œã˜ã¦è‡ªå‹•ã§å½¢ãŒå¤‰ã‚ã‚‹ãƒ«ãƒ“ã¯å®Ÿç¾ã§ããšã€
% ä¸€åº¦çµ„ç‰ˆã—ã¦ã¿ãŸä¸Šã§æ‰‹å‹•ã§èª¿æ•´ã—ãªã‘ã‚Œã°ãªã‚‰ãªã‹ã£ãŸã€‚
%
% \texlevel
% (u)\pLaTeX ã«ãŠã„ã¦è‡ªå‹•åˆ‡ã‚Šæ›¿ãˆãƒ«ãƒ“ã‚’å®Ÿç¾ã™ã‚‹ä»¥å‰ã®è©¦ã¿ã¨ã—ã¦ã¯ã€
% \pxrbpkg ã®ä½œè€…ã§ã‚ã‚‹å…«ç™»å´‡ä¹‹æ°ï¼ˆZRæ°ï¼‰ã«ã‚ˆã‚‹æ¤œè¨ŽãŒãƒžã‚¯ãƒ­ãƒ„ã‚¤ãƒ¼ã‚¿ãƒ¼
% ã€Œ\href{https://zrbabbler.hatenablog.com/entry/20110724/1311503096}{ãƒ«ãƒ“ã¯ã˜ã‚ã¾ã—ãŸï¼ˆPXrubrica ãƒ‘ãƒƒã‚±ãƒ¼ã‚¸ï¼‰(2)}ã€ã€
% ã¾ãŸãã“ã‹ã‚‰ãƒªãƒ³ã‚¯ãŒã‚ã‚‹
% \TeX\ Q \&amp; Aã€Œ\href{https://okumuralab.org/~okumura/texfaq/qa/55536.html}{Re: ãƒžã‚¯ãƒ­ã§ã®è¡Œé&nbsp;­ãƒ»è¡Œæœ«åˆ¤å®šæ–¹æ³•}ã€
% ã«è¦‹ã‚‰ã‚Œã‚‹ã€‚
% ã“ã‚Œã‚‰ã®ãƒšãƒ¼ã‚¸ã§ã¯\cs{discretionary}ãŠã‚ˆã³\pdfTeX ã®æ‹¡å¼µæ©Ÿèƒ½ï¼ˆ\epTeX ã«ã‚‚å®Ÿè£…æ¸ˆã¿ï¼‰ã§ã‚ã‚‹\cs{pdfsavepos}ã«ã¤ã„ã¦æ¤œè¨Žã—ãŸä¸Šã§ã€
% \cs{discretionary}ã¯æ—¥æœ¬èªžãƒ«ãƒ“ã®è¡Œåˆ†å‰²ã«ã¯åŠ›ä¸è¶³ï¼ˆï¼ï¼‰ã&nbsp;ã¨ã—ã¦ã„ã‚‹ã€‚
% æ‹¡å¼µæ©Ÿèƒ½ã«ã¤ã„ã¦ã¯\pxrbpkg ã«ã‚‚ã“ã‚Œã‚‰ã‚’ä½¿ã†ã“ã¨ã‚’è¦‹è¶Šã—ãŸ\cs{rubyuseextra}ãªã©ã®ã‚³ãƒ¼ãƒ‰ã®ç—•è·¡ãŒã‚ã‚‹ãŒã€\href{https://zrbabbler.hatenablog.com/entry/20120430/1335811160}{æ®‹å¿µãªãŒã‚‰å®Ÿè£…ã•ã‚Œã¦ã„ãªã„}ã€‚
%
% \emph{ã—ã‹ã—ãªãŒã‚‰\cs{discretionary}ã«ã‚ˆã£ã¦æ—¥æœ¬èªžãƒ«ãƒ“ã‚’è¡Œåˆ†å‰²ã•ã›ã‚‹ã“ã¨ã¯å¯èƒ½ã§ã‚ã‚Šã€æœ¬ãƒ‘ãƒƒã‚±ãƒ¼ã‚¸ã¯ãã‚Œã‚’è¨¼æ˜Žã™ã‚‹ãŸã‚ã«å®Ÿè£…ã•ã‚Œã¦ã„ã‚‹ã€‚}
%
% \section{ä½¿ã„æ–¹}
%
% å˜ã«èª­ã¿è¾¼ã‚€ã€‚ã‚ªãƒ—ã‚·ãƒ§ãƒ³ã¯ãªã„ã€‚
%
% \begin{Verbatim}
%   \usepackage{outoruby}
% \end{Verbatim}
%
% \pkg{outoruby}ã¯\pxrbpkg ãŒã‚µãƒãƒ¼ãƒˆã™ã‚‹ä»»æ„ã®ã‚¨ãƒ³ã‚¸ãƒ³ï¼ãƒ•ã‚©ãƒ¼ãƒžãƒƒãƒˆã‚’ã‚µãƒãƒ¼ãƒˆã™ã‚‹\footnote{^^A
%   \pxrbpkg ã¯ç¾åœ¨\LaTeX ã—ã‹ã‚µãƒãƒ¼ãƒˆã—ã¦ã„ãªã„ã€‚ã¾ãŸ\pkg{outoruby}ã¯ç›¸äº’å‚ç…§ã®ä»•çµ„ã¿ãŒä½¿ãˆã‚‹ã“ã¨ã‚’å‰æã¨ã—ã¦ã„ã‚‹ã€‚}ã€‚
%
% ã¾ãŸ\pxrbpkg ã«åŠ&nbsp;ãˆ\pkg{ltxcmds}ã€\pkg{infwarerr}ã«ä¾å­˜ã™ã‚‹ã€‚ã„ãšã‚Œã‚‚\TeX\ LiveåŽéŒ²æ¸ˆã¿ã€‚
%
% æœ¬æ–‡æ›¸ã®è¨˜è¿°ã¯\pxrbpkg\ v1.3e (2023/03/01) ã«åŸºã¥ãã€‚
%
% \bigskip
%
% ç°¡å˜ã«ã¯æ¬¡ã®ã‚ˆã†ã«ä½¿ã†ï¼š
%
% \begin{Verbatim}
%   ã‚ã‚Œã¯\outoruby[&lt;j|]{è¶…è¶…è¶…è¶…è¶…å¼©ç´š}{ã¡ã‚‡ã†|ã¡ã‚‡ã†|ã¡ã‚‡ã†|ã¡ã‚‡ã†|ã¡ã‚‡ã†|ã©|ãã‚…ã†}é›ªã&nbsp;ã‚‹ã¾ã€‚
% \end{Verbatim}
% \marginfig{^^A
%   ã‚ã‚Œã¯\outoruby[&lt;j|]{è¶…è¶…è¶…è¶…è¶…å¼©ç´š}{ã¡ã‚‡ã†|ã¡ã‚‡ã†|ã¡ã‚‡ã†|ã¡ã‚‡ã†|ã¡ã‚‡ã†|ã©|ãã‚…ã†}é›ªã&nbsp;ã‚‹ã¾ã€‚
% }
%
% \oarg[\string&lt;j|]ã®æ„å‘³ã¯\pxrbpkg ã®\cs{jruby}ã¨åŒã˜ã€‚
%
% \emph{æ­£ã—ã„å‡ºåŠ›ã‚’å¾—ã‚‹ã«ã¯è¤‡æ•°å›žã®å‡¦ç†ãŒå¿…è¦}ã§ã‚ã‚‹ã“ã¨ã«æ³¨æ„ã€‚
%
% \subsection{å‘½ä»¤}
%
% \desccs\outoruby[&lt;option_1&gt;][&lt;option_2&gt;][&lt;pre-space&gt;][&lt;post-space&gt;]{&lt;body&gt;}{&lt;ruby&gt;}
%
% &lt;option_1&gt;ã€&lt;option_2&gt;ã€&lt;body&gt;ã€&lt;ruby&gt;ã¯\pxrbpkg ã§ã®\@cs\jruby[&lt;option&gt;]{&lt;body&gt;}{&lt;ruby&gt;}ã«å¯¾å¿œã™ã‚‹ã€‚
% &lt;option&gt;ã«å¯¾å¿œã™ã‚‹ã‚‚ã®ãŒ2ã¤ã‚ã‚‹ãŒã€ã“ã‚Œã¯ãã‚Œãžã‚Œæ¬¡ã®ã‚ˆã†ã«ä½¿ã‚ã‚Œã‚‹ï¼š
%
% \begin{center}
% \begin{tabular}{lccc}
%   \toprule
%   ãƒ«ãƒ“å½¢ &amp; å‰é€²å…¥è¨­å®š &amp; å¾Œé€²å…¥è¨­å®š &amp; ä»–ã®è¨­å®š \\ \midrule
%   è¡Œä¸­å½¢ &amp; &lt;option_1&gt;ã®å‰é€²å…¥è¨­å®š &amp; &lt;option_1&gt;ã®å¾Œé€²å…¥è¨­å®š &amp; &lt;option_1&gt; \\
%   è¡Œé&nbsp;­å½¢ &amp; &lt;option_{\emph{2}}&gt;ã®å‰é€²å…¥è¨­å®š &amp; &lt;option_1&gt;ã®å¾Œé€²å…¥è¨­å®š &amp; &lt;option_1&gt; \\
%   è¡Œæœ«å½¢ &amp; &lt;option_1&gt;ã®å‰é€²å…¥è¨­å®š &amp; &lt;option_{\emph{2}}&gt;ã®å¾Œé€²å…¥è¨­å®š &amp; &lt;option_1&gt; \\
%   \bottomrule
% \end{tabular}
% \end{center}
%
% ã¤ã¾ã‚Šã€&lt;option_2&gt;ã®å‰é€²å…¥è¨­å®šã€å¾Œé€²å…¥è¨­å®šä»¥å¤–ã¯ç„¡è¦–ã•ã‚Œã‚‹ã€‚
%
% &lt;pre-space&gt;ã¯ãƒ«ãƒ“ã®å‰ã«ç½®ã‹ã‚Œã‚‹è¡Œåˆ†å‰²ã«ã‚ˆã£ã¦æ¶ˆãˆã‚‹ç©ºç™½ã€
% &lt;post-space&gt;ã¯ãƒ«ãƒ“ã®å¾Œã«ç½®ã‹ã‚Œã‚‹è¡Œåˆ†å‰²ã«ã‚ˆã£ã¦æ¶ˆãˆã‚‹ç©ºç™½ã§ã‚ã‚‹ã€‚
% è©³ã—ãã¯\ref{sec:prepost}ç¯€ã‚’å‚ç…§ã€‚
%
% åˆ¥åã¯å®šç¾©ã—ãªã„ã€‚å¿…è¦ã§ã‚ã‚Œã°è‡ªåˆ†ã§ãƒ—ãƒªã‚¢ãƒ³ãƒ–ãƒ«ã§
% \begin{Verbatim}
%   \newcommand\ruby{\outoruby}
% \end{Verbatim}
% ã®ã‚ˆã†ã«ã™ã‚‹ã“ã¨ã€‚
%
% \desccs*\outorb@outoruby
% \cs{outoruby}ã¨ç­‰ä¾¡ã€‚
%
% \medskip
%
% \desccs\outorubysetup{&lt;option_2&gt;}
%
% \cs{outoruby}ã®&lt;option_2&gt;ã®æ—¢å®šå€¤ã‚’è¨­å®šã™ã‚‹ã€‚
% ç¾åœ¨ã§ã¯ãƒ‘ãƒƒã‚±ãƒ¼ã‚¸èª­ã¿è¾¼ã¿æ™‚ã«\verb+||-||+ãŒæŒ‡å®šã•ã‚Œã‚‹ãŒã€\emph{ã“ã®åˆæœŸå€¤ã¯ä»Šå¾Œã®\pxrbpkg ã®æ›´æ–°ã«ã‚ˆã‚Šå¤‰æ›´ã™ã‚‹å¯èƒ½æ€§ãŒã‚ã‚‹}ã€‚
% åˆæœŸå€¤ã‚’å¤‰æ›´ã™ã‚‹å&nbsp;´åˆã§ã‚‚ã€åˆæœŸè¨­å®šã§è‡ªå‹•ã§å½¢ãŒåˆ‡ã‚Šæ›¿ã‚ã‚‹ç‚¹ã¯å¤‰æ›´ã—ãªã„äºˆå®šã§ã‚ã‚‹ã€‚
% \ref{sec:noprot}ç¯€ã®æ³¨æ„ã‚‚å‚ç…§ã€‚
%
% è‡ªå‹•ã§è¡Œé&nbsp;­å½¢ï¼è¡Œæœ«å½¢ã«ãªã‚‹ã®ã¯ã“ã®æ—¢å®šå€¤ã®ãŸã‚ã§ã‚ã‚Šã€ãŸã¨ãˆã°\verb+|-|+ã«å¤‰æ›´ã™ã‚‹ã¨ã€è¡Œåˆ†å‰²ã—ãŸã¨ã—ã¦ã‚‚è‡ªå‹•ã§å½¢ãŒåˆ‡ã‚Šæ›¿ã‚ã‚‰ãªããªã‚‹\footnote{^^A
%   ã¤ã¾ã‚Šå…ˆã®è¡¨ã§ã€Œè¡Œé&nbsp;­å½¢ã€ã¨ã—ã¦ã„ãŸã¨ã“ã‚ã¯æ­£ã—ãã¯ã€Œè¡Œåˆ†å‰²ãŒç™ºç”Ÿã—ãŸå&nbsp;´åˆã®ã€è¡Œåˆ†å‰²å¾Œã®è¡Œé&nbsp;­ã®ãƒ«ãƒ“ã®å½¢ã€ã¨ã„ã†æ„å‘³ã§ã‚ã‚‹ã€‚ã€Œè¡Œä¸­å½¢ã€ã€ã€Œè¡Œæœ«å½¢ã€ã«ã¤ã„ã¦ã‚‚åŒã˜ã€‚
% }ã€‚
%
% ã“ã®å‘½ä»¤ã«ã‚ˆã‚‹è¨­å®šã¯ç´¯ç©ã™ã‚‹ã€‚ã™ãªã‚ã¡ã€\verb+\outorubysetup{-}+ã¨ã—ã¦ã‚‚è¨­å®šã¯\verb+||-||+ã®ã¾ã¾ã§ã‚ã‚‹ã€‚
% å€¤ã‚’æ›´æ–°ã—ãŸã‘ã‚Œã°\verb+\outorubysetup{&lt;-&gt;}+ã®ã‚ˆã†ã«æ˜Žç¤ºçš„ã«å€¤ã‚’æŒ‡å®šã™ã‚‹å¿…è¦ãŒã‚ã‚‹ã€‚
% ãªãŠã€é€²å…¥ã‚’è¨±å¯ã™ã‚‹è¨­å®šã¯ãƒ«ãƒ“ãŒè¡Œåˆ†å‰²ä½ç½®ã§ç‰ˆé¢å¤–ã¸ã¯ã¿å‡ºã‚‹ã“ã¨ã‚’æ„å‘³ã™ã‚‹ã®ã§ã€\verb+||-||+ã¨\verb+|-|+ä»¥å¤–ã®è¨­å®šã‚’è¡Œã†æ©Ÿä¼šã¯ãªã„ã&nbsp;ã‚ã†ã€‚
%
% \LaTeX ã®ã‚°ãƒ«ãƒ¼ãƒ—å†…ã§ä½¿ã£ãŸå&nbsp;´åˆã€è¨­å®šã¯ã‚°ãƒ«ãƒ¼ãƒ—å¤–ã«ã¯åæ˜&nbsp;ã•ã‚Œãªã„ã€‚
%
% \desccs*\outorb@outorubysetup
% \cs{outorubysetup}ã¨ç­‰ä¾¡ã€‚
%
% \medskip
%
% \desccs\outorubyhyphenbreakable[&lt;i&gt;]
%
% \ref{sec:hyphpen}èª¬ã§å†åº¦èª¬æ˜Žã™ã‚‹ãŒã€\cs{outoruby}ã¯ãƒã‚¤ãƒ•ãƒãƒ¼ã‚·ãƒ§ãƒ³é–¢ä¿‚ã®è¨­å®šã®å½±éŸ¿ã‚’å—ã‘ã‚‹ã€‚
% ã‚‚ã—ã‚‚ãƒã‚¤ãƒ•ãƒãƒ¼ã‚·ãƒ§ãƒ³ãŒä¸€åˆ‡ç™ºç”Ÿã—ãªã„ã‚ˆã†è¨­å®šã—ãŸå&nbsp;´åˆã€\cs{outoruby}ã®ãƒ«ãƒ“ä¸­ã§ã®è¡Œåˆ†å‰²ã‚‚ç¦æ­¢ã•ã‚Œã‚‹å¯èƒ½æ€§ãŒã‚ã‚‹\footnote{^^A
%   \vadjust{^^A
%     \hb@xt@\z@{\hskip-2\zw\smash{\dbend}\hss}}^^A
%   è¨­å®šæ–¹æ³•ã«ã‚ˆã‚‹ã€‚\cs{hyphenpenalty}ãªã©ã®å½±éŸ¿ã¯å—ã‘ã‚‹ãŒ\cs{lefthyphenmin}ãªã©ã®å½±éŸ¿ã¯å—ã‘ãªã„ã€‚è¦ã¯\cs{discretionary}ãªã®ã§ã€‚}ã€‚
% \cs{outorubyhyphenbreakable}ã‚’å®Ÿè¡Œã™ã‚‹ã“ã¨ã§ã€ã“ã®è¨­å®šãŒæ”¹å–„ã§ãã‚‹ã‹ã‚‚ã—ã‚Œãªã„ã€‚
% &lt;i&gt;ã¯åˆ†å‰²ã®ã—ã‚„ã™ã•ã§ã€\cs{nolinebreak}ãªã©ã¨åŒã˜æŒ‡å®šã§ã‚ã‚‹ã€‚
% ã™ãªã‚ã¡ã€\texttt0ã‚„\texttt1ãªã©å°ã•ã‚ã®æ•°å­—ã‚’æŒ‡å®šã™ã‚‹ã¨\cs{outoruby}ä¸­ã§ã®è¡Œåˆ†å‰²ãŒèµ·ãã‚„ã™ããªã‚‹ã€‚ãŸã&nbsp;ã—ã€åŒæ™‚ã«ãƒã‚¤ãƒ•ãƒãƒ¼ã‚·ãƒ§ãƒ³ã‚‚ç™ºç”Ÿã—ã‚„ã™ããªã‚‹ã®ã§æ³¨æ„ã•ã‚ŒãŸã„ã€‚
% çœç•¥æ™‚ã¯\texttt0ãŒæŒ‡å®šã•ã‚ŒãŸæ‰±ã„ã«ãªã‚‹ã€‚
% \emph{å®Ÿè¡Œæ™‚ã®æŒ™å‹•ã®è©³ç´°ã¯ã¾ã£ãŸãå›ºã¾ã£ã¦ãªã„ã€‚}
%
% \desccs*\outorb@outorubyhyphenbreakable
% \cs{outorubyhyphenbreakable}ã¨ç­‰ä¾¡ã€‚
%
% \medskip
%
% \desccs\outorb@discretionary{\\\ttindent\texlevel
%   \A{&lt;pre-break_1&gt;}\A{&lt;post-break_1&gt;}\\\ttindent
%   \A{&lt;pre-break_2&gt;}\A{&lt;post-break_2&gt;}\\\ttindent
%   \texttt\vdots\\\ttindent
%   \A{&lt;pre-break_n&gt;}\A{&lt;post-break_n&gt;}\\
% }{&lt;no-break&gt;}
%
% \smallskip
%
% æ°—æŒã¡çš„ã«ã¯æ¬¡ã¨ç­‰ä¾¡ï¼š
%
% \noindent
% \@cs\discretionary{&lt;pre-break_1&gt;}{&lt;post-break_1&gt;}{\ttend1
%   \@cs\discretionary{&lt;pre-break_2&gt;}{&lt;post-break_2&gt;}{\ttend1
%   \texttt\vdots\\\@@ttend2
%     \@cs\discretionary{&lt;pre-break_n&gt;}{&lt;post-break_n&gt;}{&lt;no-break&gt;}\texttt\ldots}}
%
% \subsection{æ³¨æ„ç‚¹}
%
% \paragraph{ç›¸äº’å‚ç…§}
%
% \cs{outoruby}ã‚„\cs{outorb@discretionary}ã‚’ä½¿ã£ãŸå&nbsp;´åˆã§è¡Œåˆ†å‰²ãŒç™ºç”Ÿã—ãŸå&nbsp;´åˆã€æ­£ã—ã„å‡ºåŠ›ã‚’å¾—ã‚‹ã«ã¯
% è¤‡æ•°å›žã®\LaTeX ã®å‡¦ç†ãŒå¿…è¦ã«ãªã‚‹å&nbsp;´åˆãŒã‚ã‚‹ã€‚
% \marginfig{\def\outorb@aux@write#1{}\raggedleft\fboxsep5\p@\fbox{\parbox{2.5\zw}{\leavevmode
%   \outoruby{é‡è¤‡å—ç²¾}{ã¡ã‚‡ã†|ãµã|ã˜ã‚…|ã›ã„}}}}^^A
% \marginpar{\vskip3pt}^^A
% \marginfig{\@namedef{outorb@disc@break@\the\outorb@disc@count}{}^^A
%   \raggedleft\fboxsep5\p@\fbox{^^A
%   \outoruby{èµ¤æœ¨}{ã‚ã‹|ãŽ}ãƒ•ã‚¡ã‚¤ãƒ«}}^^A
% ååˆ†ãªå›žæ•°\LaTeX ã‚’èµ°ã‚‰ã›ã¦ãªã„å&nbsp;´åˆã¯å·¦ã®å›³ä¸Šã®ã‚ˆã†ã«æ–‡å­—ãŒé‡ãªã£ãŸã‚Šã€ã‚ã‚‹ã„ã¯å·¦ã®å›³ä¸‹ã®ã‚ˆã†ã«ãƒ«ãƒ“ãŠã‚ˆã³è¦ªæ–‡å­—ãŒè¡¨ç¤ºã•ã‚Œãªã‹ã£ãŸã‚Šã™ã‚‹ã€‚
% ã“ã®å&nbsp;´åˆ ``Label(s) may have changed.'' ã®è­¦å‘ŠãŒå‡ºã¦ã„ã‚‹ã¯ãšãªã®ã§ã€è­¦å‘ŠãŒå‡ºãªããªã‚‹ã¾ã§ã‚¿ã‚¤ãƒ—ã‚»ãƒƒãƒˆã‚’ç¹°ã‚Šè¿”ã›ã°
% æ­£å¸¸ãªå‡ºåŠ›ã‚’å¾—ã‚‰ã‚Œã‚‹ã€‚
%
% \pkg{outoruby}ä»¥å¤–ã®è¦ç´&nbsp;ã«ã‚ˆã‚‹å¤‰æ›´ãŒãªã„å&nbsp;´åˆã€\emph{\pkg{outoruby}ã®ç›¸äº’å‚ç…§ã¯å¿…ãš1å›žã§åŽæŸã™ã‚‹}ï¼ˆã—ãªã‘ã‚Œã°ãƒã‚°ã§ã‚ã‚‹ï¼‰ã€‚
% ã—ãŸãŒã£ã¦\pkg{outoruby}ä»¥å¤–ã«ç›¸äº’å‚ç…§ã‚’ç”¨ã„ã¦ãªã„å&nbsp;´åˆã€2å›žã®ã‚¿ã‚¤ãƒ—ã‚»ãƒƒãƒˆã§æœŸå¾…ã•ã‚Œã‚‹å‡ºåŠ›ã‚’å¾—ã‚‰ã‚Œã‚‹ã¯ãšã§ã‚ã‚‹ã€‚
%
% ã¾ãŸã€\cs{outoruby}ã®å¼•æ•°ã¯è¤‡æ•°å›žå®Ÿè¡Œã•ã‚Œã‚‹ã“ã¨ã«ã‚‚æ³¨æ„ã€‚
%
% \paragraph{å®Ÿè¡Œæ™‚é–“}
%
% \cs{outoruby}ã¯è¡Œåˆ†å‰²ã‚’å®Ÿç¾ã™ã‚‹ãŸã‚ã€ã€Œã™ã¹ã¦ã®å¯èƒ½ãªãƒ«ãƒ“ã®çµ„ã¾ã‚Œæ–¹ã€ã‚’ä¸€åº¦çµ„ç‰ˆã—ã¦ã„ã‚‹ã€‚
% ã—ãŸãŒã£ã¦ãã®å›žæ•°ã&nbsp;ã‘\cs{jruby}å‘½ä»¤ãŒå®Ÿè¡Œã•ã‚Œã‚‹ã“ã¨ã¨ãªã‚Šã€å‡¦ç†ã«æ™‚é–“ãŒã‹ã‹ã‚‹ã€‚
% ãŸã¨ãˆã°
% \begin{Verbatim}
%   \outoruby{è¦–è¦´}{ã—|ãŒã‚“}
% \end{Verbatim}
% ã§ã¯
% \begin{tasks}[
%   label=\arabic*.,
%   item-indent={2\zw},
%   column-sep={1\zw},
% ](2)
%   \task \@cs\jruby[-]{è¦–è¦´}{ã—|ãŒã‚“}
%   \task \@cs\jruby[-||]{è¦–è¦´}{ã—|ãŒã‚“}
%   \task \@cs\jruby[-||]{è¦–}{ã—}
%   \task \@cs\jruby[||-]{è¦´}{ãŒã‚“}
%   \task \@cs\jruby[||-]{è¦–è¦´}{ã—|ãŒã‚“}
% \end{tasks}
% ã®5å›žã®\cs{jruby}ãŒå®Ÿè¡Œã•ã‚Œã‚‹ã“ã¨ã«ãªã‚‹ã€‚
%
% \paragraph{çªå‡ºç¦æ­¢}\label{sec:noprot}
%
% \leavevmode\marginfig{\raggedleft\fboxsep5\p@\fbox{^^A
%   \jruby[||-]{å·¦}{ã•}ã¨\jruby[-||]{æ­»}{ã—}}}^^A
% \pxrbpkg ã®\cs{jruby}å‘½ä»¤ã¯
% ãƒ«ãƒ“ã®æ–¹ãŒè¦ªæ–‡å­—ã‚ˆã‚ŠçŸ­ã„ã®ã«çªå‡ºç¦æ­¢ãŒæŒ‡å®šã•ã‚ŒãŸå&nbsp;´åˆã€å·¦ã®ã‚ˆã†ã«ãªã‚‹ã€‚
% \begin{Verbatim}
%   \jruby[||-]{å·¦}{ã•}ã¨\jruby[-||]{æ­»}{ã—}
% \end{Verbatim}
%
% æœŸå¾…ã•ã‚Œã‚‹å‡ºåŠ›ã¯ãŠãã‚‰ãå³ã®ã‚ˆã†ãªã‚‚ã®ã&nbsp;ã‚ã†ï¼š{\hfill\fboxsep5\p@\raisebox{3\p@}[\z@]{\fbox{^^A
%   \pxpatchon
%   \jruby[||-]{å·¦}{ã•}ã¨\jruby[-||]{æ­»}{ã—}}}\hfill\hskip\z@}
%
% \cs{jruby}ã‚’ç›´æŽ¥ç”¨ã„ã‚‹å&nbsp;´åˆã«ã¯ã€ãƒ«ãƒ“ãŒè¦ªæ–‡å­—ã‚ˆã‚ŠçŸ­ã„å&nbsp;´åˆã«ã¯çªå‡ºç¦æ­¢ã‚’æŒ‡å®šã—ãªã„ã‚ˆã†æ³¨æ„ã™ã‚Œã°ã‚ˆã„ã&nbsp;ã‘ã&nbsp;ãŒã€
% \cs{outoruby}ã¯&lt;option_2&gt;ã®æŒ‡å®šã«åŸºã¥ã„ã¦ãƒ«ãƒ“ã¨è¦ªæ–‡å­—ã®é•·ã•ã®å·®ã‚’è€ƒæ…®ã›ãšã«ã€ä¸€å¾‹ã§ã™ã¹ã¦ã®è¡Œåˆ†å‰²ãŒç™ºç”Ÿã™ã‚‹ãƒ«ãƒ“ã«å¯¾ã—çªå‡ºç¦æ­¢ã‚’æŒ‡å®šã™ã‚‹ã€‚
% ãã®ãŸã‚ã€ã“ã®æŒ™å‹•ãŒå•é¡Œã«ãªã‚‹ã€‚
%
% ã“ã‚Œã«é–¢ã™ã‚‹\pxrbpkg ã®ä½œè€…ã«ã‚ˆã‚‹è¨€åŠãŒ\X ä¸Šã«ã‚ã‚‹ï¼š
%
% \begin{fullwidth}\begin{small}\begin{tasks}[
%   style=itemize,
%   item-indent={2\zw},
%   column-sep={1\zw},
% ](2)
%   \task \url{https://x.com/zr_tex8r/status/1310112648441131010}
%   \task \url{https://x.com/zr_tex8r/status/1310115177279361024}
%   \task \url{https://x.com/zr_tex8r/status/1518785815039545344}
%   \task \url{https://x.com/zr_tex8r/status/1518811402034577408}
%   \task \url{https://x.com/zr_tex8r/status/1518812096053473280}
%   \task \url{https://x.com/zr_tex8r/status/1518871129598795777}
%   \task \url{https://x.com/zr_tex8r/status/1518872316377059328}
% \end{tasks}\end{small}\end{fullwidth}
%
% ã¾ã¨ã‚ã‚‹ã¨
% \begin{itemize}
%   \item è‡ªå‹•ã§è¡Œé&nbsp;­ï¼è¡Œæœ«ã‚’åˆ¤å®šã§ããªã„ã®ã§ã€çªå‡ºç¦æ­¢ã¯å¿…è¦ãªå&nbsp;´åˆã«ã®ã¿æ‰‹å‹•ã§æŒ‡å®šã™ã‚‹ã¨ã„ã†æƒ³å®š
%   \item ãã®ãŸã‚ã€ãƒ«ãƒ“ãŒè¦ªæ–‡å­—ã‚ˆã‚ŠçŸ­ã„å&nbsp;´åˆã«çªå‡ºãŒç¦æ­¢ã•ã‚Œã‚‹ã®ã¯æƒ³å®šå¤–
%   \item çªå‡ºç¦æ­¢ãŒçªå‡ºã—ãªã„å&nbsp;´åˆã«å½±éŸ¿ã™ã‚‹ã®ã¯ãŠã‹ã—ã„ãŒã€ä¿®æ­£ã™ã‚‹ã¨å½±éŸ¿ãŒå¤§ããã†ã§å›°ã£ã¦ã„ã‚‹\footnote{^^A
%     \&lt;ã€ŒçœŸã«ã€çªå‡ºã‚’ç¦æ­¢ã™ã‚‹ã‚ªãƒ—ã‚·ãƒ§ãƒ³\eghostguarded{\texttt{|\string&lt;-}}ã¨\eghostguarded{\texttt{-&gt;|}}ã‚’è¿½åŠ&nbsp;ã™ã‚Œã°ã‚ˆã„ã‚“ã˜ã‚ƒãªã‹ã‚ã†ã‹ã€‚
%   }
% \end{itemize}
% ã¨ã„ã£ãŸã¨ã“ã‚ã§ã‚ã‚‹ã€‚
%
% \pkg{outoruby}ã¨ã—ã¦ã¯ã€ã“ã®æŒ™å‹•ã¯\pxrbpkg ã®å•é¡Œã§ã‚ã‚Šã€\pxrbpkg å´ã§å¯¾å¿œã•ã‚Œã‚‹ã¹ãã‚‚ã®ã§ã‚ã‚‹ã¨ã„ã†ç«‹å&nbsp;´ã§ã‚ã‚‹ã€‚
% ã—ãŸãŒã£ã¦\emph{\pkg{outoruby}ã§ç‰¹åˆ¥ãªå¯¾å¿œã‚’ã—ã¦ã“ã‚Œã«å¯¾å‡¦ã™ã‚‹ã“ã¨ã¯ã—ãªã„}ã€‚
%
% \texlevel
% ä¸€å¿œï¼ˆ\eTeX ãŒä½¿ãˆã‚Œã°ï¼‰ãƒ—ãƒªã‚¢ãƒ³ãƒ–ãƒ«ã§æ¬¡ã®ã‚ˆã†ã«ã™ã‚Œã°ãƒ«ãƒ“ã®æ–¹ãŒé•·ã„å&nbsp;´åˆã«ã®ã¿çªå‡ºç¦æ­¢ãŒæœ‰åŠ¹ã¨ãªã‚‹ï¼š
% \begin{Verbatim}
%   \usepackage{etoolbox}
%   \makeatletter
%   \patchcmd\pxrr@compose@oneside@block@do{%
%     \pxrr@evenspace@int{#1}\pxrr@boxr
%   }{%
%     \pxrr@evenspace@int{\pxrr@locate@inner}\pxrr@boxr
%   }{}{Patch failed}
%   \makeatother
% \end{Verbatim}
% çªå‡ºç¦æ­¢ã‚’æ‹¡å¼µè‚©ä»˜ãã®ä»£ã‚ã‚Šã«ä½¿ã£ã¦ã„ãŸå&nbsp;´åˆã«ã¯å›°ã‚‹ã‘ã©â€¦â€¦ã€‚
%
% \paragraph{é€£ç¶šã—ãŸ\cs{outoruby}}\label{sec:dblruby}
%
% \cs{outoruby}ã¯ãƒ«ãƒ“å‰å¾Œã§ã®è¡Œåˆ†å‰²ã®ç™ºç”Ÿã‚’æ¤œçŸ¥ã—ã¦ã„ã‚‹ã€‚
% ã“ã“ã§ã€\cs{outoruby}ãŒé€£ç¶šã—ã€ã‹ã¤æ”¹è¡ŒãŒã¡ã‚‡ã†ã©ãã®é–“ã§ç™ºç”Ÿã—ãŸå&nbsp;´åˆã€
% 2ã¤ã®\cs{outoruby}ã®ã†ã¡ã©ã¡ã‚‰ã‹ç‰‡æ–¹ã—ã‹ãã®æ”¹è¡Œã‚’æ¤œçŸ¥ã§ããªã„ã€‚
% ã—ãŸãŒã£ã¦ã‚‚ã†ç‰‡æ–¹ã®ãƒ«ãƒ“ã¯è¡Œä¸­å½¢ã«ãªã‚‹ã€‚
%
% å¯¾ç­–ã¯ä¸å¯èƒ½ã§ã¯ãªã„ã&nbsp;ã‚ã†ãŒå¤§å¤‰ãã†ãªã®ã§ã‚„ã‚‹æ°—ã¯ã—ãªã„ã€‚
%
% \paragraph{æ®µè½ã¯ã˜ã‚}
%
% \cs{outoruby}ã‚’æ®µè½æœ€åˆã§ç”¨ã„ãŸå&nbsp;´åˆã€ãƒ«ãƒ“ä¸­ã§è¡Œåˆ†å‰²ãŒç™ºç”Ÿã™ã‚‹ã“ã¨ã¯ãªã„ã¨ä»®å®šã—ã¦\cs{outoruby}ç‹¬è‡ªã®å‡¦ç†ã‚’å–ã‚Šã‚„ã‚ã€ã™ã¹ã¦ã®å‡¦ç†ã‚’\pxrbpkg ã®\cs{jruby}ã«ä»»ã›ã‚‹ã€‚
% ãã®ãŸã‚ã€ãƒ«ãƒ“ä¸­ã§è¡Œåˆ†å‰²ãŒç™ºç”Ÿã—ãªããªã‚‹ã‹ã€ã‚ã‚‹ã„ã¯åˆ†å‰²ã—ãŸã¨ã—ã¦ã‚‚è‡ªå‹•ã§å½¢ãŒåˆ‡ã‚Šæ›¿ã‚ã‚‰ãªã„ã€‚
%
% ã‚‚ã—ã‚‚ã™ã”ãé•·ã„ãƒ©ãƒ™ãƒ«ã‚’æŒã¤ç®‡æ¡æ›¸ãã‚’åˆ©ç”¨ã—ã¦ã„ã‚‹ãªã©ã®ç†ç”±ã§æ®µè½æœ€åˆã§ã‚ã£ã¦ã‚‚\cs{outoruby}ã®å‡¦ç†ã‚’ä½¿ã„ãŸã„å&nbsp;´åˆã€\cs{mbox}ãªã©ã§æ˜Žç¤ºçš„ã«æ®µè½ã‚’é–‹å§‹ã•ã›ã¦ã‹ã‚‰\cs{outoruby}ã‚’ç”¨ã„ã‚‹å¿…è¦ãŒã‚ã‚‹ã€‚
% ãã®å&nbsp;´åˆã€\cs{outoruby}ã¯æ®µè½ã¯ã˜ã‚ã§ã‚ã‚‹ã“ã¨ã‚’æ¤œçŸ¥ã§ããªã„ã®ã§ã€æ®µè½ã‚¤ãƒ³ãƒ‡ãƒ³ãƒˆã¸é€²å…¥ã•ã›ãŸããªã„ã®ã§ã‚ã‚Œã°ã€æ‰‹å‹•ã§å‰é€²å…¥ç¦æ­¢\verb+|-+ã‚’æŒ‡å®šã—ãªã‘ã‚Œã°ãªã‚‰ãªã„ã€‚
%
% \subsubsection{\cs{discretionary}ã«ã‚ˆã‚‹åˆ¶ç´„}
%
% æœ¬ãƒ‘ãƒƒã‚±ãƒ¼ã‚¸ã¯\cs{discretionary}ã‚’åˆ©ç”¨ã—ã¦ã„ã‚‹é–¢ä¿‚ä¸Šã€ã“ã‚Œã«ä¼´ã†åˆ¶ç´„ã‚’å—ã‘ã‚‹ã€‚
% \emph{ã“ã‚Œã‚‰ã®åˆ¶ç´„ã¯ä»•æ§˜ã§ã‚ã‚Šã€ä»Šå¾Œã®ã‚¢ãƒƒãƒ—ãƒ‡ãƒ¼ãƒˆã§æ”¹å–„ã•ã‚Œã‚‹è¦‹è¾¼ã¿ã¯ãªã„}ã€‚
% ã—ãŸãŒã£ã¦ã€ã“ã†ã„ã£ãŸåˆ¶ç´„ãªã—ã«è¡Œåˆ†å‰²å¯èƒ½ãªãƒ«ãƒ“ã‚’å®Ÿç¾ã™ã‚‹\jkrubypkg ã‚ã‚‹ã„ã¯\ltjrubypkg ï¼ˆ\LuaLaTeX ã‚’ç”¨ã„ã¦ã‚‹å&nbsp;´åˆï¼‰ã‚’åˆ©ç”¨ã—ãŸæ–¹ãŒã‚ˆã„ã&nbsp;ã‚ã†ã€‚
% åŒæ§˜ã«ã€ãƒ¢ãƒŽãƒ«ãƒ“ã«å¸°ç€ã§ãã‚‹å&nbsp;´åˆã¯\pxrbpkg ã®\cs{jruby}ã‚’ç›´æŽ¥åˆ©ç”¨ã—ãŸæ–¹ãŒã‚ˆã„
% \begin{footnote}\label{fn:pxrbghost}^^A
%   ã“ã®å&nbsp;´åˆãƒ«ãƒ“ã¯çªå‡ºã—ãªã„ã¯ãšãªã®ã§å’Œæ–‡ã‚´ãƒ¼ã‚¹ãƒˆã‚’ä½¿ã†ã“ã¨ãŒã§ãã‚‹ã€‚
%   å’Œæ–‡ã‚´ãƒ¼ã‚¹ãƒˆãŒæœ‰åŠ¹ã§ã‚ã‚‹å&nbsp;´åˆã€\cs{jruby}ãŒå®Ÿéš›ã«ã¯çªå‡ºã™ã‚‹ã“ã¨ãŒãªã„ã¨ã—ã¦ã‚‚ã€é€²å…¥ã‚ã‚Šã‚’è¨­å®šã™ã‚‹ã¨ã‚¨ãƒ©ãƒ¼ã«ãªã‚‹ã“ã¨ã«æ°—ã‚’ã¤ã‘ã‚‰ã‚ŒãŸã„ã€‚
%   ã•ã‚‰ã«ã¯æ®µè½ã¯ã˜ã‚ã®\cs{outoruby}ã¯è‡ªå‹•çš„ã«\cs{jruby}ã«åˆ‡ã‚Šæ›¿ã‚ã‚‹ã€‚
%   \cs{outoruby}ã®&lt;option_1&gt;ã®æ—¢å®šå€¤ã‚’åˆ¥ã«è¨­å®šã§ãã‚‹ã‚ˆã†ã«ã™ã¹ããªæ°—ã‚‚ã™ã‚‹ãŒã€ã¨ã‚Šã‚ãˆãšä»¥ä¸‹ã®ã‚ˆã†ã«ã™ã‚Œã°ã‚ˆã„ã&nbsp;ã‚ã†ï¼š
%   \begin{Verbatim}[vspace=0.25\baselineskip,gobble=6,xleftmargin=\leftskip,fontsize=\footnotesize]
%     \newcommand\ruby[3][]{{%
%       \rubysetup{|-|}\rubyusejghost
%       \jruby[#1]{#2}{#3}%
%     }}
%   \end{Verbatim}
%   ã“ã®å‘½ä»¤ã¯è„†å¼±ã«ãªã‚‹ã®ã§æ³¨æ„ã€‚
% \end{footnote}^^A
% ã€‚
%
% \paragraph{æ®µè½ãŠã‚ã‚Š}
%
% \cs{outoruby}ã¯\pxrbpkg ã®\cs{jruby}ã¨ç•°ãªã‚Šã€æ®µè½æœ«å°¾ã§ã®ä½¿ç”¨ã«å¯¾ã—ç‰¹åˆ¥ãªå¯¾å‡¦ã¯ã—ã¦ã„ãªã„ã€‚
% ã—ãŸãŒã£ã¦ã€æ®µè½æœ«å°¾ã§ã¯æ‰‹å‹•ã§å¾Œé€²å…¥ç¦æ­¢\verb+-|+ã‚’æŒ‡å®šã—ãªã‘ã‚Œã°è¦ªæ–‡å­—ãŒç‰ˆé¢ç«¯ã¾ã§ä½¿ã„åˆ‡ã£ãŸå&nbsp;´åˆã«ãƒ«ãƒ“ãŒç‰ˆé¢ã‹ã‚‰ã¯ã¿å‡ºã‚‹æã‚ŒãŒã‚ã‚‹ã€‚
%
% ãªãŠã€é€šå¸¸ã¯ãƒ«ãƒ“ã®å¾Œã«å¥ç‚¹ãŒç¶šãã¨è€ƒãˆã‚‰ã‚Œã‚‹ãŒã€ç®‡æ¡æ›¸ãã‚„ãƒ‡ã‚£ã‚¹ãƒ—ãƒ¬ã‚¤ãªã©ã§æ–‡æœ«ã«å¥ç‚¹ãŒãªã„å&nbsp;´åˆã«ãŠã„ã¦ã¯ååˆ†ç™ºç”Ÿã—å¾—ã‚‹ã¨æƒ³å®šã—ã¦ã„ã‚‹ã€‚
%
% \paragraph{ãƒ«ãƒ“ã®é•·ã•}
%
% \cs{outoruby}ãŠã‚ˆã³\cs{outorb@discretionary}ã¯ãƒ«ãƒ“ã®å‰å¾Œã‚‚å«ã‚è¤‡æ•°ç®‡æ‰€ã§è¡Œåˆ†å‰²ã™ã‚‹ã“ã¨ã‚’æƒ³å®šã—ã¦ã„ãªã„ã€‚
% ã—ãŸãŒã£ã¦ãƒ«ãƒ“å…¨ä½“ã®é•·ã•ã¯2ç®‡æ‰€ä»¥ä¸Šã§ã®è¡Œåˆ†å‰²ãŒä¸è¦ãªã»ã©ååˆ†çŸ­ããªã‘ã‚Œã°ãªã‚‰ãªã„ã€‚
%
% ã‚‚ã—ã‚‚1ã¤ã®ãƒ«ãƒ“ãŒè¤‡æ•°ç®‡æ‰€ã§åˆ†å‰²ã—ãŸå&nbsp;´åˆã«ã¯ã€æ­£ã—ã„å‡ºåŠ›ã«ãªã‚‰ãªã„ã®ã§ã‚¨ãƒ©ãƒ¼ãŒå‡ºã‚‹ã€‚
% åŠ&nbsp;ãˆã¦æ¬¡å›žã‚¿ã‚¤ãƒ—ã‚»ãƒƒãƒˆæ™‚ã«\verb+\begin{document}+ã®ã‚¿ã‚¤ãƒŸãƒ³ã‚°ã§è­¦å‘ŠãŒå‡ºã‚‹ã€‚
%
% \iffalse
%   \vbox{\hsize\z@\leavevmode
%     \outoruby{{$\sin$}{$\cos$}{$\cos$}{$\sin$}}{å¥½ã|å«Œã„|å«Œã„|å¥½ã}}
% \fi
%
% \paragraph{ã‚´ãƒ¼ã‚¹ãƒˆ}
%
% \cs{outoruby}ã¯å‰å¾Œã§ã®è¡Œåˆ†å‰²ã‚’æ¤œçŸ¥ã™ã‚‹ãŸã‚ã«ã‚´ãƒ¼ã‚¹ãƒˆå‡¦ç†ã¨å…±å­˜ã§ããªã„ã€‚
% è„šæ³¨\ref{fn:pxrbghost}ã§è¿°ã¹ãŸã¨ãŠã‚Šã€\pxrbpkg ã«ãŠã„ã¦ã‚´ãƒ¼ã‚¹ãƒˆå‡¦ç†ã‚’ç”¨ã„ã‚‹ã®ãŒæœ‰ç”¨ãªå&nbsp;´åˆãŒã‚ã‚‹ã®ã§\cs{outoruby}å®Ÿè¡Œæ™‚ã«å’Œæ–‡ã‚´ãƒ¼ã‚¹ãƒˆãŒæœ‰åŠ¹ã§ã‚ã£ã¦ã‚‚ã‚¨ãƒ©ãƒ¼ã¯å‡ºãªã„ã€‚
% ã—ã‹ã—ãªãŒã‚‰ã€ãã®å&nbsp;´åˆã§ã‚‚\cs{outoruby}ã¯ã‚´ãƒ¼ã‚¹ãƒˆå‡¦ç†ã•ã‚Œãšã€æ˜Žç¤ºçš„ãªè£œåŠ©è¨­å®šãŒå¿…è¦ã¨ãªã‚‹å&nbsp;´åˆãŒã‚ã‚‹ã“ã¨ã«æ³¨æ„ã•ã‚ŒãŸã„ã€‚
%
% \paragraph{ãƒã‚¤ãƒ•ãƒãƒ¼ã‚·ãƒ§ãƒ³ãƒšãƒŠãƒ«ãƒ†ã‚£}\label{sec:hyphpen}
%
% \texlevel
% \cs{outoruby}ã¯\cs{discretionary}ã«ã‚ˆã‚Šå®Ÿè£…ã•ã‚Œã¦ãŠã‚Šã€\cs{discretionary}ã¯ãƒã‚¤ãƒ•ãƒãƒ¼ã‚·ãƒ§ãƒ³é–¢é€£ã®ãƒ‘ãƒ©ãƒ¡ã‚¿ã®è¨­å®šã®å½±éŸ¿ã‚’å—ã‘ã‚‹ã€‚
% ãŸã¨ãˆã°
% \begin{Verbatim}
%   \hyphenpenalty=10000\relax
% \end{Verbatim}
% ã«ã‚ˆã‚Šãƒã‚¤ãƒ•ãƒãƒ¼ã‚·ãƒ§ãƒ³ã‚’ç¦æ­¢ã—ãŸå&nbsp;´åˆã€\cs{outoruby}ä¸­ãŠã‚ˆã³ãã®å‰å¾Œã§ã®è¡Œåˆ†å‰²ã‚‚ç¦æ­¢ã•ã‚Œã‚‹ã€‚
% åŒæ§˜ã«\cs{outoruby}ã«ã‚ˆã‚‹è¡Œåˆ†å‰²ãŒç™ºç”Ÿã—ã‚„ã™ãã™ã‚‹ãŸã‚ã«
% \begin{Verbatim}
%   \hyphenpenalty=0\relax
%   % ã¾ãŸã¯
%   \outorubyhyphenbreakable
% \end{Verbatim}
% ã®ã‚ˆã†ã«ã—ãŸå&nbsp;´åˆã€ãƒã‚¤ãƒ•ãƒãƒ¼ã‚·ãƒ§ãƒ³ã‚‚ãã‚Œã&nbsp;ã‘ç™ºç”Ÿã—ã‚„ã™ããªã‚‹ã€‚
%
% ãªãŠã€\cs{outoruby}ãŠã‚ˆã³\cs{outorb@discretionary}ã¯ãŸã¨ãˆ&lt;pre-break_n&gt;ã‚’ç©ºã«ã—ãŸã¨ã—ã¦ã‚‚ã€å¸¸ã«\cs{exhyphenpenalty}ã§ã¯ãªã\cs{hyphenpenalty}ã®å½±éŸ¿ã‚’å—ã‘ã‚‹ã€‚
%
% \texlevel
% ã‚‚ã—ã‚‚ãƒã‚¤ãƒ•ãƒãƒ¼ã‚·ãƒ§ãƒ³ã‚’å®Œå…¨ã«ç¦æ­¢ã—ãŸã„ã®ã§ã‚ã‚Œã°ã€\cs{discretionary}ã®å‡¦ç†ã«å½±éŸ¿ã‚’åŠã¼ã•ãªã„åˆ¥ã®æ–¹æ³•ï¼ˆ\cs{hyphenchar}ã‚„\cs{language}ï¼‰ã‚’ç”¨ã„ã‚Œã°\cs{outoruby}ã¨å…±å­˜ã§ãã‚‹ã€‚
%
% \paragraph{å‰å¾Œã®ç©ºç™½}\label{sec:prepost}
%
% ãƒ«ãƒ“ã®å‰å¾Œã§ã®è¡Œåˆ†å‰²ã‚’æ¤œçŸ¥ã™ã‚‹ãŸã‚ã€ã“ã®è¡Œåˆ†å‰²ã¯\cs{outoruby}ã®å†…éƒ¨ã§ç™ºç”Ÿã™ã‚‹å¿…è¦ãŒã‚ã‚‹ã€‚
% ãã®ãŸã‚ã€\cs{outoruby}ã®å¤–éƒ¨ã®å‰å¾Œã§ã¯è¡Œåˆ†å‰²ãŒç¦æ­¢ã•ã‚Œã‚‹ã€‚
% \begin{itemize}
%   \item \cs{outoruby}ã®å‰å´ã«ã‚ã‚‹ç©ºç™½ã‚„ãƒšãƒŠãƒ«ãƒ†ã‚£ã¯å‰Šé™¤ã•ã‚ŒãŸå¾Œã€\cs{outoruby}ã®å†…éƒ¨ã§è€ƒæ…®ã•ã‚Œã‚‹ã€‚
%   \item \cs{outoruby}ã®å¾Œã‚å´ã«ã‚ã‚‹ç©ºç™½ã¯ç„¡è¦–ã•ã‚Œã€æ¶ˆæ»…ã™ã‚‹ã€‚
% \end{itemize}
% ãªã‚‹ã¹ã\cs{outoruby}å´ã§å¯¾å‡¦ã™ã‚‹ã‚ˆã†ã«ã—ã¦ã„ã‚‹ãŒå®Œç’§ã§ã¯ãªã„ã®ã§ã€ãƒ¦ãƒ¼ã‚¶ãŒ\cs{outoruby}ã®å‰å¾Œã§\cs{allowbreak}ã‚„\cs{hspace}ç­‰ã‚’ä½¿ã†ã“ã¨ã¯æŽ¨å¥¨ã•ã‚Œãªã„ã€‚
%
% ã‚‚ã—ã‚‚ã“ã‚Œã«åã—ãŸå&nbsp;´åˆ
% \begin{itemize}
%   \item è¡Œé&nbsp;­å½¢ï¼è¡Œæœ«å½¢ã«æ­£ã—ãåˆ‡ã‚Šæ›¿ã‚ã‚‰ãªã„
%   \item è¡Œåˆ†å‰²ã—ãŸå&nbsp;´åˆã«ã€è¡Œåˆ†å‰²å‰ï¼å¾Œã«ä½™è¨ˆãªç©ºç™½ãŒæ®‹ã‚‹
% \end{itemize}
% ãªã©ãŒç™ºç”Ÿã™ã‚‹å¯èƒ½æ€§ãŒã‚ã‚‹ã€‚
%
% \begin{Verbatim}
%   æœ€å¾Œã®çš‡å¸ã§ã‚ã‚‰ã›ã‚‰ã‚Œã¾ã™\outoruby{æ„›æ–°è¦šç¾…}{ã‚ã„|ã—ã‚“|ã‹|ãã‚‰}\hspace{1\zw}æº¥å„€æ§˜
% \end{Verbatim}
%
% {\catcode`\&lt;=12 \marginfig{\raggedleft
%   \fboxsep2\p@
%   \hspace*{-1\zw}^^A
%   \mbox{\fbox{\parbox&lt;t&gt;{9\zw}{^^A
%     \baselineskip1.5\zw
%     æœ€å¾Œã®çš‡å¸ã§ã‚ã‚‰ã›ã‚‰ã‚Œã¾ã™æ„›æ–°è¦šç¾…\hspace{1\zw}æº¥å„€æ§˜
%   }}\hskip-\fboxrule
%   \fbox{\parbox&lt;t&gt;{9\zw}{^^A
%     \baselineskip1.5\zw
%     æœ€å¾Œã®çš‡å¸ã§ã‚ã‚‰ã›ã‚‰ã‚Œã¾ã™\outoruby{æ„›æ–°è¦šç¾…}{ã‚ã„|ã—ã‚“|ã‹|ãã‚‰}\hspace{1\zw}æº¥å„€æ§˜
%   }}}^^A
% }}\marginpar{\vskip7pt}
%
% ã‚‚ã—ã‚‚è¡Œåˆ†å‰²ã«ã‚ˆã£ã¦æ¶ˆæ»…ã™ã‚‹ç©ºç™½ãŒå‰å¾Œã«å¿…è¦ã§ã‚ã‚‹å&nbsp;´åˆã¯\cs{outoruby}ã®&lt;pre-space&gt;ã€&lt;post-space&gt;ã§\cs{hspace}ã‚’ç”¨ã„ã‚Œã°ã‚ˆã„\footnote{^^A
%   ãã®ç©ºç™½ãŒå’Œæ¬§æ–‡é–“ç©ºç™½ã§ã‚ã‚‹å&nbsp;´åˆã¯\pxrbpkg ã®è£œåŠ©è¨­å®š\eghostguarded{\texttt:}ãŒä½¿ãˆã‚‹ã€‚
% }ï¼š
% \begin{Verbatim}
%   æœ€å¾Œã®çš‡å¸ã§ã‚ã‚‰ã›ã‚‰ã‚Œã¾ã™\outoruby[][][][\hspace{1\zw}]{æ„›æ–°è¦šç¾…}{ã‚ã„|ã—ã‚“|ã‹|ãã‚‰}æº¥å„€æ§˜
% \end{Verbatim}
%
% {\catcode`\&lt;=12 \marginfig{\raggedleft
%   \fboxsep2\p@
%   \fbox{\parbox&lt;t&gt;{9\zw}{^^A
%     \baselineskip1.5\zw
%     æœ€å¾Œã®çš‡å¸ã§ã‚ã‚‰ã›ã‚‰ã‚Œã¾ã™\outoruby[][][][\hspace{1\zw}]{æ„›æ–°è¦šç¾…}{ã‚ã„|ã—ã‚“|ã‹|ãã‚‰}æº¥å„€æ§˜
% }}}}
%
% ãªãŠã€ã“ã®ä¾‹ã§ã€Œ\outoruby{æº¥å„€}{ãµ|ãŽ}ã€ã«ã¾ã§ãƒ«ãƒ“ã‚’ãµã‚‹ã¨ã€\cs{hspace}ã‚’&lt;post-space&gt;ã«ç§»å‹•ã—ãŸã“ã¨ã§é€£ç¶šã—ãŸãƒ«ãƒ“ã«ãªã£ã¦ã¾ãšã„ï¼ˆ\ref{sec:dblruby}ç¯€å‚ç…§ï¼‰ã€‚
%
% \paragraph{æŸ”è»Ÿã•}
%
% \cs{outoruby}ã®ä¸­ã§ã¯ã‚°ãƒ«ãƒ¼ãŒä¼¸ç¸®ã—ãªã„ã€‚
% ã‚ˆã£ã¦\pxrbpkg ã®è¨­å®šã«ã‚ˆã‚‹å’Œæ¬§æ–‡é–“ç©ºç™½ã‚„&lt;pre-space&gt;ã€&lt;post-space&gt;ã«å…¥ã‚Œã‚‰ã‚ŒãŸç©ºç™½ã¯ä¼¸ã³ç¸®ã¿ã—ãªããªã‚‹ã€‚
% åŠ&nbsp;ãˆã¦ã€ãƒ«ãƒ“ã®é–“ãŠã‚ˆã³å‰å¾Œã§ã®è¡Œåˆ†å‰²ã®èµ·ãã‚„ã™ã•ã¯åŒã˜æ®µè½ã®ã™ã¹ã¦ã®\cs{outoruby}ï¼ˆãŠã‚ˆã³ãƒã‚¤ãƒ•ãƒãƒ¼ã‚·ãƒ§ãƒ³ï¼‰ã§ä¸€å¾‹ã§ã‚ã‚Šã€
% å€‹åˆ¥ã«æŒ‡å®šã™ã‚‹ã“ã¨ã¯ã§ããªã„ã€‚
%
% \paragraph[This can't happen (disc&lt;n&gt;).]{\textexlevel This can't happen (disc&lt;n&gt;).}
%
% å¯¾ç­–ã—ãŸã‹ã‚‰å¤šåˆ†å¤§ä¸ˆå¤«â€¦â€¦ã€‚ï¼ˆ\href{https://okumuralab.org/tex/mod/forum/discuss.php?d=416}{é–¢é€£}ï¼‰
%
% \needspace{6\baselineskip}
% \section{ä¾‹}
%
% \begingroup \catcode`\&lt;=12
% \begin{VerbatimOut}[commandchars=/()]{\jobname.tmp}
%   \rubysetup{&lt;j&gt;}\outorubysetup{||-||}
%   \outoruby{ç¥‡åœ’ç²¾èˆŽ}{ãŽ|ãŠã‚“|ã—ã‚‡ã†|ã˜ã‚ƒ}ã®\jruby{é˜}{ã‹ã­}ã®\jruby{å£°}{ã“ãˆ}ã€
%   \outoruby{è«¸è¡Œç„¡å¸¸}{ã—ã‚‡|ãŽã‚‡ã†|ã‚€|ã˜ã‚‡ã†}ã®\outoruby[-|]{éŸ¿}{ã²ã³ã}
%   \jruby{æœ‰}{ã‚}ã‚Šã€‚\jruby{æ²™ç¾…åŒæ¨¹}{ã—ã‚ƒ|ã‚‰|ãã†|ã˜ã‚…}ã®\jruby{èŠ±}{ã¯ãª}ã®
%   \jruby{è‰²}{ã„ã‚}ã€\outoruby{ç››è€…å¿…è¡°}{ã˜ã‚‡ã†|ã—ã‚ƒ|ã²ã£|ã™ã„}ã®
%   \outoruby{ç†}{ã“ã¨ã‚ã‚Š}ã‚’\outoruby[|-]{é¡•}{ã‚ã‚‰ã‚}ã™ã€‚\jruby{å¥¢}{ãŠã”}ã‚Œã‚‹
%   \jruby{è€…}{ã‚‚ã®}ã‚‚\jruby{ä¹…}{ã²ã•}ã—ã‹ã‚‰ãšã€\jruby{å”¯}{ãŸã&nbsp;}\jruby{æ˜¥}{ã¯ã‚‹}ã®
%   \jruby{å¤œ}{ã‚ˆ}ã®\jruby{å¤¢}{ã‚†ã‚}ã®\jruby{å¦‚}{ã”ã¨}ã—ã€‚\jruby{çŒ›}{ãŸã‘}ã
%   \jruby{è€…}{ã‚‚ã®}ã‚‚\jruby{é‚}{ã¤ã„}ã«ã¯\jruby{æ»…}{ã»ã‚}ã³ã¬ã€
%   \outoruby{å}{ã²ã¨ãˆ}ã«\jruby{é¢¨}{ã‹ãœ}ã®\jruby{å‰}{ã¾ãˆ}ã®\jruby{å¡µ}{ã¡ã‚Š}ã«
%   \jruby{åŒ}{ãŠãª}ã˜ã€‚\jruby{é&nbsp;}{ã¨ãŠ}ã\outoruby{ç•°æœ}{ã„|ã¡ã‚‡ã†}ã‚’
%   \outoruby{è¨ª}{ã¨ã¶ã‚‰}ãˆã°ã€\jruby{ç§¦}{ã—ã‚“}ã®\outoruby{è¶™é«˜}{ã¡ã‚‡ã†|ã“ã†}ã€
%   \jruby{æ¼¢}{ã‹ã‚“}ã®\jruby{çŽ‹èŽ½}{ãŠã†|ã‚‚ã†}ã€\outoruby[-|]{æ¢}{ã‚Šã‚‡ã†}ã®
%   \outoruby{å‘¨ä¼Š}{ã—ã‚…ã†|ã„}ã€\jruby{å”}{ã¨ã†}ã®\jruby{ç¦„å±±}{ã‚ã|ã•ã‚“}ã€
%   \jruby{æ˜¯ç­‰}{ã“ã‚Œ|ã‚‰}ã¯\jruby{çš†}{ã¿ãª}
%   \outoruby[|-|]{æ—§ä¸»å…ˆçŽ‹}{ãã‚…ã†|ã—ã‚…|ã›ã‚“|ã“ã†}ã®\outoruby{æ”¿}{ã¾ã¤ã‚Šã”ã¨}ã«ã‚‚
%   \outoruby{å¾“}{ã—ãŸãŒ}ã‚ãšã€\jruby{æ¥½}{ãŸã®}ã—ã¿ã‚’\jruby{æ¥µ}{ãã‚}ã‚ã€
%   \outoruby{è««}{ã„ã•ã‚}ã‚’ã‚‚\jruby{æ€}{ãŠã‚‚}ã„\jruby{å…¥}{ã„}ã‚Œãšã€
%   \jruby{å¤©ä¸‹}{ã¦ã‚“|ã‹}ã®\jruby{ä¹±}{ã¿ã&nbsp;}ã‚Œã‚“\jruby{äº‹}{ã“ã¨}ã‚’ã‚‚\jruby{æ‚Ÿ}{ã•ã¨}
%   ã‚‰ãšã—ã¦ã€\jruby{æ°‘é–“}{ã¿ã‚“|ã‹ã‚“}ã®\jruby{æ„}{ã†ã‚Œ}ã†ã‚‹\outoruby{æ‰€}{ã¨ã“ã‚}ã‚’
%   \jruby{çŸ¥}{ã—}ã‚‰ã–ã‚Šã—ã‹ã°ã€\jruby{ä¹…}{ã²ã•}ã—ã‹ã‚‰ãšã—ã¦\jruby{äº¡}{ã¼ã†}ã˜ã—
%   \jruby{è€…}{ã‚‚ã®}ã©ã‚‚\jruby{ä¹Ÿ}{ãªã‚Š}ã€‚
% \end{VerbatimOut}
% \newbox\@@box
% \setbox\@@box=\vbox{^^A
%   \kanjiskip=\z@ plus 0.1\zw
%   \hsize11\zw
%   \vskip\topsep
%   \pxpatchon
%   {\catcode`\%=14 \input{\jobname.tmp}}^^A
%   \par
%   \hfill{\footnotesize ï¼ˆå¹³å®¶ç‰©èªžã‚ˆã‚Šï¼‰}}
% \setbox\z@=\vbox{^^A
%   \hsize32\zw
%   \advance\hsize\marginparwidth
%   \advance\hsize-3\zw
%   \VerbatimInput[gobble=\z@,vspace=\z@]{\jobname.tmp}}
% \loop
%   \@tempdima\pagegoal
%   \advance\@tempdima-\pagetotal
%   \ifdim\@tempdima&lt;\baselineskip
%     \newpage
%   \else\ifdim\pagegoal=\maxdimen
%     {\baselineskip1sp\null}^^A
%     \nobreak
%   \else
%     \vskip-0.75\zw
%     \setbox\tw@=\vsplit\z@ to\@tempdima
%     \setbox4=\vsplit\@@box to\@tempdima
%     \setbox\tw@=\vtop{\unvbox\tw@}^^A
%     \setbox4=\vtop{\unvbox4}^^A
%     \hb@xt@\textwidth{^^A
%       \hskip-\marginparwidth\hskip4\zw\textcolor[gray]{0.75}{\vrule}\box4\textcolor[gray]{0.75}{\vrule}\kern-0.4\p@\hss\box\tw@}^^A
%   \fi\fi
% \ifdim\dp\@@box&gt;\z@
% \repeat
% \unvbox\z@
% \endgroup
%
% \StopEventually
%
% \section[å®Ÿè£…]{\texlevel å®Ÿè£…}
%
% \catcode`\#=\active
% \let#\argn
%
% \subsection{åˆæœŸåŒ–}
% \subsubsection{å®£è¨€}
%
% \newcommand\@@sourcepart[1]{}
% \newcommand\@@sourcepartend{\endinput}
% \input{outoruby.dtx}
%    \begin{macrocode}
%&lt;*pkg&gt;
%    \end{macrocode}
%
% ã‚ªãƒ—ã‚·ãƒ§ãƒ³ã¯ãªã„ã€‚
%
% \begin{macro}{\outorb@pkgname}
% \begin{macro}{\outorb@err}
% \begin{macro}{\outorb@warn}
% \begin{macro}{\outorb@warn@noln}
%   ã‚¨ãƒ©ãƒ¼ã‚„è­¦å‘Šãªã©ã€‚
%    \begin{macrocode}
\def\outorb@pkgname{outoruby}
\def\outorb@err#1{%
  \@PackageError\outorb@pkgname{#1}\@ehc
}
\def\outorb@warn{%
  \@PackageWarning\outorb@pkgname
}
\def\outorb@warn@noln{%
  \@PackageWarningNoLine\outorb@pkgname
}
%    \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
%
% \subsubsection{ä¾å­˜}
%
% ãƒ«ãƒ“ã®å‡¦ç†ã¯\pkg{pxrubrica}ã«ä¸¸æŠ•ã’ã™ã‚‹ã€‚
%
%    \begin{macrocode}
\RequirePackage{pxrubrica}[2011/07/23]
%    \end{macrocode}
%
% \pxrbpkg ã®ä»¥ä¸‹ã®å†…éƒ¨å‘½ä»¤ã‚’åˆ©ç”¨ã™ã‚‹ï¼š
% \begin{tasks}[
%   style=itemize,
%   item-indent=1\zw,
%   label-width=1\zw,
%   column-sep=\z@,
%   label-offset=0\zw,
% ](4)
%   \task \cs{ifpxrr@safe@mode}
%   \task \cs\rubynousejghost
%   \task \cs{pxrr@po@TR@}\globstar
%   \task \cs{pxrr@po@C@}\globstar
% \end{tasks}
% \begin{tasks}[
%   style=itemize,
%   item-indent=1\zw,
%   label-width=1\zw,
%   column-sep=\z@,
%   label-offset=0\zw,
% ](4)
%   \task \cs\pxrr@cnta
%   \task \cs\pxrr@decompbar
%   \task \cs\pxrr@decompose
%   \task \cs\pxrr@if@last
%   \task \cs\pxrr@unite@group
%   \task \cs\pxrr@zip@list
%   \task \cs\pxrr@ifprimitive
%   \task \cs\pxrr@inhibitglue
%   \task \cs{ifpxrr@abody}
%   \task \cs\pxrr@check@kinsoku
% \end{tasks}
%
% \begin{macro}{\ifpxrr@safe@mode}
% \begin{macro}{\pxrr@unite@group}
% \begin{macro}{\pxrr@ifprimitive}
% \begin{macro}{\pxrr@inhibitglue}
% \pxrbpkg ã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã«ã‚ˆã£ã¦ã¯å®šç¾©ã•ã‚Œã¦ãªã„å¯èƒ½æ€§ãŒã‚ã‚‹å‘½ä»¤ã®ä»£æ›¿å®šç¾©ã€‚
%    \begin{macrocode}
\expandafter\ifx\csname ifpxrr@safe@mode\endcsname\relax
  \expandafter\let\csname ifpxrr@safe@mode\expandafter\endcsname\csname iffalse\endcsname
\fi
\expandafter\ifx\csname pxrr@unite@group\endcsname\relax
  \def\pxrr@unite@group#1{%
    \def\pxrr@inter##1{%
      \ltx@LocalAppendToMacro#1{##1}%
    }%
    \def\pxrr@pre{%
      \let#1\ltx@empty
      \pxrr@inter
    }%
    \def\pxrr@post{%
      \expandafter\def\expandafter#1\expandafter{%
        \expandafter\pxrr@pre\expandafter{#1}\pxrr@post
      }%
    }%
    #1%
  }
\fi
\expandafter\ifx\csname pxrr@ifprimitive\endcsname\relax
  \def\pxrr@ifprimitive#1#2#3{#3}
\fi
\expandafter\ifx\csname pxrr@inhibitglue\endcsname\relax
  \let\pxrr@inhibitglue\relax
\fi
%    \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
%
% \pkg{ltxcmds}ãŠã‚ˆã³\pkg{infwarerr}ï¼ˆãªãœï¼Ÿï¼‰ã‚’åˆ©ç”¨ã™ã‚‹ã€‚
%
%    \begin{macrocode}
\RequirePackage{ltxcmds}[2011/08/22]% \ltx@LocalPrependToMacro
\RequirePackage{infwarerr}
%    \end{macrocode}
%
% \subsubsection{ãƒ•ã‚©ãƒ¼ãƒžãƒƒãƒˆä¾å­˜å‘½ä»¤}
%
% \begin{macro}{\outorb@disc@count}
% \cs{outorb@discretionary}ã§\cs{outorb@discretionary}ã”ã¨ã®ãƒ¦ãƒ‹ãƒ¼ã‚¯ãªè­˜åˆ¥å­ã«ç”¨ã„ã‚‹ã€‚
% \begin{macro}{\outorb@disc@box}
% \cs{outorb@discretionary}ã§\meta{no-break}ã‚’ä¿æŒã™ã‚‹ãƒ¦ãƒ‹ãƒ¼ã‚¯ãªboxãƒ¬ã‚¸ã‚¹ã‚¿ã€‚
%    \begin{macrocode}
\newcount\outorb@disc@count
\newbox\outorb@disc@box
%    \end{macrocode}
% \end{macro}
% \end{macro}
% \begin{macro}{\outorb@thepage}
% \begin{macro}{\outorb@aux@write}
% \begin{macro}{\outorb@aux@write@immediate}
% \begin{macro}{\outorb@AtBeginDocument}
% \begin{macro}{\outorb@AtEndDocument}
% \begin{macro}{\outorb@labelchanged}
% \begin{macro}{\outorb@aux@write@providecommand}
% \begin{macro}{\outorb@errifdefined}
% \begin{macro}{\outorb@MM}
% \begin{macro}{\outorb@iM}
% \par \pxrbpkg ã€\pkg{ltxcmds}ã€\pkg{infwarerr}ã€\pkg{outoruby}ä»¥å¤–ã§å®šç¾©ã•ã‚Œã¦ã„ã‚‹å‘½ä»¤ã¯ã“ã“ã§ãƒ©ãƒƒãƒ—ã™ã‚‹ã€‚
%    \begin{macrocode}
\def\outorb@thepage{\thepage}
\def\outorb@aux@write#1{%
  \protected@write\@auxout{}{#1}%
}
\def\outorb@aux@write@immediate{%
  \immediate\write\@auxout
}
\def\outorb@AtBeginDocument{%
  \AtBeginDocument
}
\def\outorb@AtEndDocument{%
  \AtEndDocument
}
\def\outorb@labelchanged{%
  \@tempswatrue
}
\def\outorb@aux@write@providecommand#1{%
  \string\providecommand\string#1%
}
\def\outorb@errifdefined#1{%
  \newcommand#1{}%
}
\mathchardef\outorb@MM=20000
\mathchardef\outorb@iM=9999
%    \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \begin{macro}{\outorb@getpen}
% \movempar
% \inarg1 &lt;n&gt;
% \begin{flushleft}
%   \begin{tabular}{ll}
%     \multicolumn{2}{c}{\cs{@getpen}} \\
%     \toprule
%     &lt;n&gt; &amp; value \\ \midrule
%     0 &amp; \cs\z@ \\
%     1 &amp; \cs\@lowpenalty \\
%     2 &amp; \cs\@medpenalty \\
%     3 &amp; \cs\@highpenalty \\
%     else &amp; \cs\@M \\ \bottomrule
%   \end{tabular}
% \end{flushleft}
%    \begin{macrocode}
\def\outorb@getpen#1{%
  \ifnum#1&gt;3
    \outorb@iM
  \else
    \@getpen{#1}%
  \fi
}
%    \end{macrocode}
% \end{macro}
% \begin{macro}{\outorb@protected}
% \par \cs{protected}ãŒã‚ã‚‹å&nbsp;´åˆ\verb+\protected\def+ã€ãªã‘ã‚Œã°å®šç¾©å¾Œã«\cs{MakeRobust}ç›¸å½“ã®å‡¦ç†ã€‚
% \inarg1 \cs{def}
% \inarg2 \CS
%    \begin{macrocode}
\pxrr@ifprimitive\protected{% e-TeX
  \def\outorb@protected#1#2{%
    \protected#1#2%
  }%
}{% non e-TeX
  \def\outorb@protected#1#2{%
    \def\outorb@protected@tempa{#2}%
    \afterassignment\outorb@protected@makerobust
    #1#2%
  }%
%    \end{macrocode}
% \begin{macro}{\outorb@protected@makerobust}
% \par \cs{MakeRobust}ç›¸å½“ã®å‡¦ç†ã€‚
% \LaTeX ã§ã—ã‹æ­£å¸¸ã«å‹•ã‹ãªã„ã®ã§æ³¨æ„ã€‚
% Contorol symbolã®ã“ã¨ã¯è€ƒæ…®ã—ã¦ã„ãªã„ã€‚
%    \begin{macrocode}
  \def\outorb@protected@makerobust{%
    \begingroup
      \escapechar=\ltx@minusone
      \edef\outorb@tempa{%
        \def\noexpand\outorb@tempa{%
          \expandafter\string\outorb@protected@tempa
        }%
      }%
    \expandafter\endgroup\outorb@tempa
    \expandafter\let\csname
      \outorb@tempa\ltx@space\expandafter\endcsname
      \csname \outorb@tempa\endcsname
    \expandafter\edef\csname \outorb@tempa\expandafter\endcsname{%
      \noexpand\protect
      \expandafter\noexpand\csname \outorb@tempa\ltx@space\endcsname
    }%
  }%
}
%    \end{macrocode}
% \end{macro}
% \end{macro}
%
% \subsection{æ“¬ä¼¼å¤šé‡\cs{discretionary}}
%
% \begin{macro}{\outorb@discretionary}
% \@cs{outorb@discretionary}\c@@arg{\ttend1{&lt;pre-break_1&gt;}{&lt;post-break_1&gt;}{&lt;pre-break_2&gt;}{&lt;post-break_2&gt;}\ldots}{&lt;no-break&gt;}
%
% \begin{Verbatim}
%   \discretionary{}{å¥½ã\kern-2\zw}{}%
%   \discretionary{å«Œ}{ã„\kern-2\zw}{}%
%   \discretionary{å¥½ã}{}{æ™®é€š}%
% \end{Verbatim}
% ã¨ã„ã†discretionaryã®ä¸¦ã³ãŒã‚ã£ãŸã¨ãã€ã‚‚ã—ã‚‚ã€Œæ™®é€šã€ãŒå…¥ã‚‹ä½™è£•ãŒè¡Œå†…ã«ã‚ã‚‹ã®ã§ã‚ã‚Œã°ã™ã¹ã¦ã®discretionaryã§&lt;no-break&gt;ãŒé¸æŠžã•ã‚Œã‚‹ã€‚
%
% ã‚‚ã—ã‚‚ã€Œæ™®é€šã€ãŒå…¥ã‚Šåˆ‡ã‚‰ãªã„ã®ã§ã‚ã‚Œã°ã€ã©ã“ã‹ã®discretionaryã§åˆ†å‰²ãŒç™ºç”Ÿã™ã‚‹ã€‚ã“ã®ã¨ãæœ€å¾Œã®discretionaryã§ã¯&lt;no-break&gt;ãŒé¸æŠžã•ã‚ŒãŸã¨ã—ã¦ã‚‚ã€ãã®å‰ã®discretionaryã§&lt;post-break&gt;ã«ä»•è¾¼ã‚“ã&nbsp;è²&nbsp;ã®kernã«ã‚ˆã£ã¦ãã®å¹…ã¯æ‰“ã¡æ¶ˆã•ã‚Œã‚‹ã€‚
% ã—ãŸãŒã£ã¦&lt;post-break&gt;ãŒè¡Œé•·ã‚ˆã‚Šååˆ†ã«çŸ­ã‘ã‚Œã°æ”¹è¡Œã¯1ç®‡æ‰€ã§ã—ã‹ç™ºç”Ÿã—ãªã„ã€‚
%
%
%    \begin{macrocode}
\outorb@protected\def\outorb@discretionary#1#2{%
  \begingroup
%    \end{macrocode}
% \par &lt;no-break&gt;ã®å¹…ãŒå¿…è¦ãªã®ã§å–å¾—ã€‚
% #1ä¸­ã§ã‚¹ã‚¯ãƒ©ãƒƒãƒãƒ¬ã‚¸ã‚¹ã‚¿ã‚’ä½¿ã£ã¦ã‚‹ã‹ã‚‚ã—ã‚Œãªã„ã®ã§ãƒ¦ãƒ‹ãƒ¼ã‚¯ãªãƒ¬ã‚¸ã‚¹ã‚¿ã€‚
%    \begin{macrocode}
  \setbox\outorb@disc@box=\hbox{#2}%
  \ltx@ifblank{#1}{%
%    \end{macrocode}
% \inarg1 \&lt;ï¼ˆç©ºï¼‰
% \par \cs\discretionary ã«ã—ãªã„ã€‚
%    \begin{macrocode}
    \unhbox\outorb@disc@box
    \endgroup
  }{%
%    \end{macrocode}
% \inarg1{&lt;pre-break_1&gt;}{&lt;post-break_1&gt;}\ldots\c@@arg{&lt;pre-break_n&gt;}{&lt;post-break_n&gt;}
%    \begin{macrocode}
    \expandafter\expandafter\expandafter\pxrr@decompose\expandafter\expandafter\expandafter{%
      \ltx@zapspace{#1}%
    }%
%    \end{macrocode}
% \result\pxrr@res\pxrr@pre{{&lt;pre-break_1&gt;}}\pxrr@inter{{&lt;post-break_1&gt;}}\ldots\pxrr@inter{{&lt;post-break_n&gt;}}\pxrr@post
% \par æœ€å¤–ã«\verb+{}+ãŒå¢—ãˆã‚‹\cs{pxrr@decompose}ã®ä»•æ§˜ã¯ã¨ã‚Šã‚ãˆãšæ°—ã«ã—ãªã„ã€‚
% \par #2ã®ç©ºç™½ã¯\cs{ltx@zapspace}ã§ç„¡è¦–ã€‚
%    \begin{macrocode}
    \let\pxrr@inter\outorb@disc@inter
    \let\pxrr@pre\pxrr@inter
    \let\pxrr@post\outorb@disc@post
    \pxrr@res
  }%
}
%    \end{macrocode}
% \begin{macro}{\outorb@disc@post}
% \par \cs{outorb@discretionary}ã®çµ‚äº†å‡¦ç†ã€‚
%    \begin{macrocode}
\def\outorb@disc@post{%
  \global\advance\outorb@disc@count\ltx@one
  \endgroup
}
%    \end{macrocode}
% \end{macro}
% \begin{macro}{\outorb@disc@inter}
% \par\cs{discretionary}çµ„ã¿ç«‹ã¦ã€‚
% \inarg1&lt;pre-break_n&gt;
% \inarg2\pxrr@inter
% \inarg3&lt;post-break_n&gt;
%    \begin{macrocode}
\def\outorb@disc@inter#1#2#3{%
  \ifx\pxrr@inter#2\else
%    \end{macrocode}
% \inarg2\pxrr@post
%    \begin{macrocode}
    \outorb@err{%
      Extra pre-break, or forgotten post-break in \string\outorb@discretionary
    }%
  \fi
  \pxrr@if@last{%
    \discretionary{%
      \outorb@disc@break@pre
      #1%
    }{%
      #3%
    }{%
      \outorb@disc@nobreak
      \outorb@disc@ifbreakTF{\kern\wd\outorb@disc@box}{\unhbox\outorb@disc@box}}%
  }{%
    \discretionary{%
      \outorb@disc@break@pre
      #1%
    }{%
      #3\outorb@disc@break@post
    }{}%
  }%
}
%    \end{macrocode}
% \end{macro}
% \par Auxæ›¸ãå‡ºã—ã€‚
% Discretionaryã«whatsitã‚’å…¥ã‚Œã‚‹ã«ã¯hboxç­‰ã§åŒ…ã‚€å¿…è¦ã€‚
%
% \begin{macro}{\outorb@disc@break@post}
% \begin{macro}{\outorb@disc@break@record}
% &lt;post-break&gt;ã®å&nbsp;´åˆã€‚
%    \begin{macrocode}
\def\outorb@disc@break@post{%
  \hbox{\outorb@aux@write{%
%    \end{macrocode}
% \par åˆ†å‰²ã—ãŸã“ã¨ã‚’è¨˜éŒ²ã€‚æ¬¡å›ž&lt;no-break&gt;ã‚’å‡ºåŠ›ã—ãªã„ã€‚
%    \begin{macrocode}
    \string\outorb@disc@break@aux{\the\outorb@disc@count}{\outorb@thepage}{\the\inputlineno}%
      {\outorb@disccommand}%
%    \end{macrocode}
% \par \cs{csname}ãƒˆãƒªãƒƒã‚¯ã§åˆ†å‰²ã‚’è¨˜éŒ²ã—ã€è¤‡æ•°ç®‡æ‰€ã§ã®åˆ†å‰²ã‚’æ¤œå‡ºã€‚
% &lt;post-break_n&gt;ã¨&lt;pre-break_{n+1}&gt;ã¯è¤‡æ•°å›žè¡Œåˆ†å‰²ã—ã¦ã‚‚å¿…ãšåŒã˜è¡Œã€ã¤ã¾ã‚ŠåŒã˜\cs{shipout}ä¸­ã«ã‚ã‚‹ã€‚
% é‡è¤‡æ¤œå‡ºã¯&lt;pre-break&gt;ã§ã€‚
%    \begin{macrocode}
    \noexpand\outorb@disc@break@record{\the\outorb@disc@count}%
  }}%
%    \end{macrocode}
% \par &lt;no-break&gt;ã®è²&nbsp;ã®å¹…ã®ã‚«ãƒ¼ãƒ³ã€‚
%    \begin{macrocode}
  \kern-\wd\outorb@disc@box
}
\def\outorb@disc@break@record#1{%
  \expandafter\ltx@gobble\csname outorb@disc@break@check@#1\endcsname
}
%    \end{macrocode}
% \end{macro}
% \end{macro}
% \begin{macro}{\outorb@disc@break@pre}
% \begin{macro}{\outorb@disccommand}
% \begin{macro}{\outorb@disc@break@check}
% \par &lt;pre-break&gt;ã®å&nbsp;´åˆã€‚
% ã“ã‚ŒãŒã‚ã‚‹ã®ã§pre-breakã¯ç©ºã«ãªã‚‰ãš\cs{hyphenpenalty}ã€‚
% è¤‡æ•°ç®‡æ‰€ã§ã®åˆ†å‰²ã‚’æ¤œå‡ºã—ã‚¨ãƒ©ãƒ¼ã«ã™ã‚‹ã€‚
%    \begin{macrocode}
\def\outorb@disc@break@pre{%
  \hbox{\outorb@aux@write{%
    \noexpand\outorb@disc@break@check{\the\outorb@disc@count}{\the\inputlineno}%
      {\outorb@disccommand}%
      \expandafter\noexpand\csname outorb@disc@break@check@\the\outorb@disc@count\endcsname
  }}%
}
\def\outorb@disccommand{\noexpand\outorb@discretionary}
\def\outorb@disc@break@check#1#2#3#4{%
  \ifx#4\relax
    \expandafter\outorb@disc@break@check@error\expandafter{%
      \romannumeral-`0\outorb@thepage}{#1}{#2}{#3}%
  \fi
}
%    \end{macrocode}
% \begin{macro}{\outorb@disc@break@check@error}
% \par å®Œå…¨å±•é–‹å¯èƒ½ãªã‚¨ãƒ©ãƒ¼ã€‚expl3ã®\cs{msg\_expandable\_error:}\globstar ã‚ãŸã‚Šã®å®Ÿè£…ã‚’å‚è€ƒã«ã—ãŸã€‚
%    \begin{macrocode}
\def\outorb@tempa#1{%
  \def\outorb@disc@break@check@error##1##2##3##4{%
    \expandafter\expandafter\expandafter\ltx@carzero\ltx@firstofone{%
      #1##4at line ##3 break twice in p.##1. (##2)%
    }\@nil
  }%
}
\ltx@LocalExpandAfter\outorb@tempa\csname
  outoruby.sty Error:\endcsname
%    \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \begin{macro}{\outorb@disc@nobreak}
% \par &lt;no-break&gt;ã®å&nbsp;´åˆã€‚
% ç¢ºå®Ÿã«\cs{outorb@disc@break}ã‚ˆã‚Šå¾Œãªã®ã§
% Label(s) may have changed.æ¤œå‡ºï¼ˆåˆ†å‰²ã—ã¦ã„ãŸã®ãŒåˆ†å‰²ã—ãªããªã£ãŸå&nbsp;´åˆï¼‰ç”¨ã€‚
%    \begin{macrocode}
\def\outorb@disc@nobreak{%
  \hbox{\outorb@aux@write{%
    \string\outorb@disc@nobreak@aux{\the\outorb@disc@count}{\outorb@thepage}{\the\inputlineno}%
      {\outorb@disccommand}%
  }}%
}
%    \end{macrocode}
% \end{macro}
% \begin{macro}{\outorb@disc@ifbreakTF}
% \par å‰å›žå‡¦ç†æ™‚ã«å‡¦ç†ä¸­ã®\cs{outorb@discretionary}åˆ†å‰²ã—ãŸã‹ã€‚
% &lt;no-break&gt;ã‚’æç”»ã™ã‚‹ã‹ä»£ã‚ã‚Šã«åŒã˜å¹…ã®kernã«ã™ã‚‹ã‹ã€‚
%    \begin{macrocode}
\def\outorb@disc@ifbreakTF{%
  \expandafter\ifx\csname outorb@disc@break@\the\outorb@disc@count\endcsname\relax
    \expandafter\ltx@secondoftwo
  \else
    \expandafter\ltx@firstoftwo
  \fi
}
%    \end{macrocode}
% \end{macro}
% \begin{macro}{\outorb@disc@break@aux}
% \par Auxã«æ›¸ãè¾¼ã¾ã‚Œã‚‹å‘½ä»¤ã€‚
% \inarg1 Idï¼ˆ\cs{outorb@disc@count}ç”±æ¥ï¼‰
% \inarg2 \cs{outorb@discretionary}ãŒä½¿ã‚ã‚ŒãŸè¡Œç•ªå·
% \inarg3 \cs{outorb@discretionary}ãŒå®Ÿéš›ã«å‡ºåŠ›ã•ã‚ŒãŸãƒšãƒ¼ã‚¸ï¼ˆ\cs{outorb@thepage}ç”±æ¥ï¼‰
% \inarg4 è­¦å‘Šã«ä½¿ã†ã‚³ãƒžãƒ³ãƒ‰åï¼ˆ\cs{outorb@disccommand}ç”±æ¥ï¼‰
%    \begin{macrocode}
\def\outorb@disc@break@aux#1#2#3#4{%
  \expandafter\ifx\csname outorb@disc@break@#1\endcsname\relax
    \global\expandafter\def\csname outorb@disc@break@#1\endcsname{}%
  \else
%    \end{macrocode}
% \par ä»¥å‰ã®ã‚¿ã‚¤ãƒ—ã‚»ãƒƒãƒˆã§è¤‡æ•°ç®‡æ‰€ã§åˆ†å‰²ã—ãŸå&nbsp;´åˆè­¦å‘Šã€‚
% ä½•å›žã‚‚å‡ºã‚‹ã‹ã‚‚ã—ã‚Œãªã„ã‘ã©ã¾ã‚ã„ã„ã‚„ã€‚
%    \begin{macrocode}
    \begingroup
    \ltx@LocToksA{#4}%
    \outorb@warn@noln{%
      \the\ltx@LocToksA at page #2 line #3 broke twice at last typeset.\MessageBreak
      The result may be incorrect%
    }%
    \endgroup
  \fi
}
%    \end{macrocode}
% \begin{macro}{\outorb@disc@nobreak@aux}
% ã“ã‚Œã¯Label(s) may have changed.ç”¨ãªã®ã§\verb+\begin{document}+ã§ã¯å‡ºç•ªãªã—ã€‚
%    \begin{macrocode}
\def\outorb@disc@nobreak@aux#1#2#3#4{%
}
%    \end{macrocode}
% \par \pkg{outoruby}ã®èª­ã¿è¾¼ã¿ã‚’ã‚„ã‚ãŸå&nbsp;´åˆã«ã‚¨ãƒ©ãƒ¼ã‚’å‡ºã•ãªã„ã€‚
%    \begin{macrocode}
\outorb@AtBeginDocument{%
  \outorb@aux@write@immediate{%
    \outorb@aux@write@providecommand\outorb@disc@break@aux[4]{}%
    \outorb@aux@write@providecommand\outorb@disc@nobreak@aux[4]{}%
  }%
}
%    \end{macrocode}
% \par Label(s) may have changed.
%    \begin{macrocode}
\outorb@AtEndDocument{%
  \def\outorb@disc@break@aux#1#2#3#4{%
    \expandafter\ifx\csname outorb@disc@break@#1\endcsname\relax
%    \end{macrocode}
% \par åˆ†å‰²ã—ã¦ã„ãªã‹ã£ãŸã®ãŒåˆ†å‰²ã™ã‚‹ã‚ˆã†ã«ãªã£ãŸå&nbsp;´åˆã€‚
%    \begin{macrocode}
      \outorb@labelchanged
    \fi
    \expandafter\def\csname outorb@disc@break@enddoc@#1\endcsname{}%
  }%
  \def\outorb@disc@nobreak@aux#1#2#3#4{%
    \expandafter\ifx\csname outorb@disc@break@#1\endcsname\relax\else% break last time
      \expandafter\ifx\csname outorb@disc@break@enddoc@#1\endcsname\relax% no break current time
%    \end{macrocode}
% \par åˆ†å‰²ã—ã¦ã„ãŸã®ãŒã—ãªããªã£ãŸå&nbsp;´åˆã€‚
%    \begin{macrocode}
        \outorb@labelchanged
      \fi
    \fi
  }%
}
%    \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
%
% \subsection{ãƒªã‚¹ãƒˆå‡¦ç†}
%
% \pxrbpkg ã®\pxrr@pre ã€\pxrr@inter ã€\pxrr@post ã«ã‚ˆã‚‹ãƒªã‚¹ãƒˆã‚’åˆ©ç”¨ã€‚
% \pxrbpkg ã«ãªã‚‰ã„ã€ä¸€èˆ¬ã«ã‚°ãƒ«ãƒ¼ãƒ”ãƒ³ã‚°ã¯ã—ã¦ãŠã‚‰ãš\cs{pxrr@pre}ãªã©ã®å®šç¾©ã‚’ä¸Šæ›¸ãã™ã‚‹ã®ã§æ³¨æ„ã€‚
% \pxrbpkg ãŒã‚°ãƒ«ãƒ¼ãƒ”ãƒ³ã‚°ã—ã¦ãªã„ã®ã¯å¤šåˆ†å‡¦ç†åŠ¹çŽ‡ã®ãŸã‚ã€‚
%
% \begin{macro}{\outorb@pxrr@reverse}
% \movempar
% \inarg1 \pxrr@pre{&lt;X_1&gt;}\pxrr@inter{&lt;X_2&gt;}\ldots\pxrr@inter{&lt;X_n&gt;}\pxrr@post
% \result\outorb@res \pxrr@pre{&lt;X_n&gt;}\ldots\pxrr@inter{&lt;X_2&gt;}\pxrr@inter{&lt;X_1&gt;}\pxrr@post
%    \begin{macrocode}
\def\outorb@pxrr@reverse@list#1{%
  \let\outorb@res\ltx@empty
  \def\pxrr@pre##1{%
    \ltx@LocalPrependToMacro\outorb@res{%
      {##1}\pxrr@post
    }%
  }%
  \def\pxrr@inter##1{%
    \ltx@LocalPrependToMacro\outorb@res{%
      {##1}\pxrr@inter
    }%
  }%
  \def\pxrr@post{%
    \ltx@LocalPrependToMacro\outorb@res{%
      \pxrr@pre
    }%
  }%
  #1%
}
%    \end{macrocode}
% \end{macro}
% \begin{macro}{\outorb@pxrr@step@list}
% \movempar
% \inarg1 \pxrr@pre{&lt;X_1&gt;}\pxrr@inter{&lt;X_2&gt;}\ldots\pxrr@inter{&lt;X_n&gt;}\pxrr@post
% \result\outorb@res
% \pxrr@pre{\pxrr@post}\ttend1
% \pxrr@inter{\pxrr@pre{&lt;X_1&gt;}\pxrr@post}\ttend1
% \pxrr@inter{\pxrr@pre{&lt;X_1&gt;}\pxrr@inter{&lt;X_2&gt;}\pxrr@post}\ttend1
% \texttt\vdots\\\ttindent
% \pxrr@inter{\pxrr@pre{&lt;X_1&gt;}\pxrr@inter{&lt;X_2&gt;}\ldots\pxrr@inter{&lt;X_n&gt;}\pxrr@post}\ttend1
% \pxrr@post
%    \begin{macrocode}
\def\outorb@pxrr@step@list#1{%
  \def\outorb@res{\pxrr@pre{\pxrr@post}}%
  \def\pxrr@pre##1##2{%
    \ltx@LocalAppendToMacro\outorb@res{%
      \pxrr@inter{%
        \pxrr@pre{##1}\pxrr@post
      }%
    }%
    ##2{\pxrr@pre{##1}}%
  }%
  \def\pxrr@inter##1##2##3{%
    \ltx@LocalAppendToMacro\outorb@res{%
      \pxrr@inter{%
        ##1\pxrr@inter{##2}\pxrr@post
      }%
    }%
    ##3{##1\pxrr@inter{##2}}%
  }%
  \def\pxrr@post##1{%
    \ltx@LocalAppendToMacro\outorb@res{%
      \pxrr@post
    }%
  }%
  #1%
}
%    \end{macrocode}
% \end{macro}
% \begin{macro}{\outorb@pxrr@rstep@list}
% \movempar
% \inarg1 \pxrr@pre{&lt;X_1&gt;}\pxrr@inter{&lt;X_2&gt;}\ldots\pxrr@inter{&lt;X_n&gt;}\pxrr@post
% \result\outorb@res
% \pxrr@pre{\pxrr@post}\ttend1
% \pxrr@inter{\pxrr@pre{&lt;X_1&gt;}\pxrr@post}\ttend1
% \pxrr@inter{\pxrr@pre{&lt;X_2&gt;}\pxrr@inter{&lt;X_1&gt;}\pxrr@post}\ttend1
% \texttt\vdots\\\ttindent
% \pxrr@inter{\pxrr@pre{&lt;X_n&gt;}\ldots\pxrr@inter{&lt;X_2&gt;}\pxrr@inter{&lt;X_1&gt;}\pxrr@post}\ttend1
% \pxrr@post
%    \begin{macrocode}
\def\outorb@pxrr@rstep@list#1{%
  \def\outorb@res{\pxrr@pre{\pxrr@post}}%
  \def\pxrr@pre##1##2{%
    \ltx@LocalAppendToMacro\outorb@res{%
      \pxrr@inter{%
        \pxrr@pre{##1}\pxrr@post
      }%
    }%
    ##2{\pxrr@inter{##1}\pxrr@post}%
  }%
  \def\pxrr@inter##1##2##3{%
    \ltx@LocalAppendToMacro\outorb@res{%
      \pxrr@inter{%
        \pxrr@pre{##2}##1%
      }%
    }%
    ##3{\pxrr@inter{##2}##1}%
  }%
  \def\pxrr@post##1{%
    \ltx@LocalAppendToMacro\outorb@res{%
      \pxrr@post
    }%
  }%
  #1%
}
%    \end{macrocode}
% \end{macro}
% \begin{macro}{\outorb@pxrr@product@list}
% \movempar
% \inarg1 \pxrr@pre{&lt;X_1&gt;}\pxrr@inter{&lt;X_2&gt;}\ldots\pxrr@inter{&lt;X_n&gt;}\pxrr@post
% \result\outorb@res
% \pxrr@pre\\\@@ttend2
%   \A{\pxrr@post}\ttend2
%   \A{\pxrr@pre{&lt;X_1&gt;}\pxrr@inter{&lt;X_2&gt;}\ldots\pxrr@inter{&lt;X_n&gt;}\pxrr@post}\ttend1
% \pxrr@inter\\\@@ttend2
%   \A{\pxrr@pre{&lt;X_1&gt;}\pxrr@post}\ttend2
%   \A{\pxrr@pre{&lt;X_2&gt;}\ldots\pxrr@inter{&lt;X_n&gt;}\pxrr@post}\ttend1
% \vdots\\\ttindent
% \pxrr@inter\\\@@ttend2
%   \A{\pxrr@pre{&lt;X_1&gt;}\pxrr@inter{&lt;X_2&gt;}\ldots\pxrr@inter{&lt;X_n&gt;}\pxrr@post}\ttend2
%   \A{\pxrr@post}\ttend1
% \pxrr@post
%    \begin{macrocode}
\def\outorb@pxrr@product@list#1{%
  \outorb@pxrr@step@list{#1}%
  \let\outorb@pxrr@product@list@tempa\outorb@res
  \outorb@pxrr@reverse@list{#1}%
  \expandafter\outorb@pxrr@rstep@list\expandafter{\outorb@res}%
  \expandafter\outorb@pxrr@reverse@list\expandafter{\outorb@res}%
  \pxrr@zip@list\outorb@pxrr@product@list@tempa\outorb@res
  \let\outorb@res\pxrr@res
}
%    \end{macrocode}
% \end{macro}
% \begin{macro}{\outorb@pxrr@join@list}
% \movempar
% \inarg1 &lt;|&gt;
% \inarg2 \pxrr@pre{&lt;X_1&gt;}\pxrr@inter{&lt;X_2&gt;}\ldots\pxrr@inter{&lt;X_n&gt;}\pxrr@post
% \result\outorb@res
%   &lt;X_1&gt;&lt;|&gt;&lt;X_2&gt;&lt;|&gt;\ldots &lt;|&gt;&lt;X_n&gt;
%    \begin{macrocode}
\def\outorb@pxrr@join@list#1#2{%
  \let\outorb@res\ltx@empty
  \def\pxrr@inter##1{%
    \pxrr@if@last{%
      \ltx@LocalAppendToMacro\outorb@res{##1}%
    }{%
      \ltx@LocalAppendToMacro\outorb@res{##1#1}%
    }%
  }%
  \let\pxrr@pre\pxrr@inter
  \def\pxrr@post{\ltx@gobble\pxrr@post}%
  #2%
}
%    \end{macrocode}
% \end{macro}
% \begin{macro}{\outorb@pxrr@pair@list}
% \movempar
% \inarg1 \pxrr@pre{&lt;X_1&gt;}{&lt;Y_1&gt;}\pxrr@inter{&lt;X_2&gt;}{&lt;Y_2&gt;}\ldots\pxrr@inter{&lt;X_n&gt;}{&lt;Y_n&gt;}\pxrr@post
% \result\outorb@res
% \pxrr@pre{{&lt;X_1&gt;}{&lt;Y_1&gt;}}\pxrr@inter{{&lt;X_2&gt;}{&lt;Y_2&gt;}}\ldots\pxrr@inter{{&lt;X_n&gt;}{&lt;Y_n&gt;}}\pxrr@post
%    \begin{macrocode}
\def\outorb@pxrr@pair@list#1{%
  \let\outorb@res\ltx@empty
  \def\pxrr@pre##1##2{%
    \ltx@LocalAppendToMacro\outorb@res{%
      \pxrr@pre{{##1}{##2}}%
    }%
  }%
  \def\pxrr@inter##1##2{%
    \ltx@LocalAppendToMacro\outorb@res{%
      \pxrr@inter{{##1}{##2}}%
    }%
  }%
  \def\pxrr@post{%
    \ltx@LocalAppendToMacro\outorb@res{%
      \pxrr@post
    }%
  }%
  #1%
}
%    \end{macrocode}
% \end{macro}
% \begin{macro}{\outorb@pxrr@ifemptyTF}
% #1ãŒ\pxrr@post ã®ã¿ã‹ã‚‰ãªã‚‹ã‹ã€‚
%    \begin{macrocode}
\def\outorb@pxrr@ifemptyTF#1{%
  \begingroup
  \def\outorb@tempa{#1}%
  \def\outorb@tempb{\pxrr@post}%
  \expandafter\endgroup\ifx\outorb@tempa\outorb@tempb
    \expandafter\ltx@firstoftwo
  \else
    \expandafter\ltx@secondoftwo
  \fi
}
%    \end{macrocode}
% \end{macro}
%
% \subsection{ã‚ªãƒ—ã‚·ãƒ§ãƒ³è§£æž}
%
% \begin{macro}{\outorb@ifstreqTF}
% #1ã¨#2ãŒæ–‡å­—åˆ—ã¨ã—ã¦ç­‰ã—ã„ã‹ï¼ˆå®Œå…¨å±•é–‹ã—ã¦æ¯”è¼ƒï¼‰ã€‚
%    \begin{macrocode}
\def\outorb@ifstreqTF#1#2{%
  \begingroup
  \edef\outorb@tempa{#1}%
  \edef\outorb@tempb{#2}%
  \expandafter\endgroup\ifx\outorb@tempa\outorb@tempb
    \expandafter\ltx@firstoftwo
  \else
    \expandafter\ltx@secondoftwo
  \fi
}
%    \end{macrocode}
% \end{macro}
%
% \subsubsection{\pxrbpkg ã®ã‚ªãƒ—ã‚·ãƒ§ãƒ³ãƒ‘ãƒ¼ã‚¹}
%
% \begin{macro}{\outorb@opt@parse}
% ã‚ªãƒ—ã‚·ãƒ§ãƒ³ã‚’è§£æžã—ã¦åˆ†é¡žã€‚
% \inarg1 \cs{jruby}ã®&lt;option&gt;ã«ç›¸å½“ã™ã‚‹ã‚‚ã®ï¼ˆ\oarg[]ãªã—ï¼‰ã€‚
% \result\outorb@opt@parse@bintr å‰é€²å…¥è¨­å®š
% \result\outorb@opt@parse@bsub å‰è£œåŠ©è¨­å®š
% \result\outorb@opt@parse@mode ãƒ¢ãƒ¼ãƒ‰
% \result\outorb@opt@parse@asub å¾Œè£œåŠ©è¨­å®š
% \result\outorb@opt@parse@aintr å¾Œé€²å…¥è¨­å®š
% \par \pxrbpkg ã®æœ‰é™ã‚ªãƒ¼ãƒˆãƒžãƒˆãƒ³ã®ãƒ‘ãƒ©ãƒ¡ã‚¿ã‚’å‚ç…§ã€‚
% \begin{flushleft}
%   \begin{tabular}{ll}
%     \toprule
%     \cs\outorb@po@FS &amp; ç¾åœ¨ã®çŠ¶æ…‹ \\
%     \cs\pxrr@po@C@&lt;æ–‡å­—&gt; &amp; æ–‡å­—ã‚¯ãƒ©ã‚¹ \\
%     \cs\pxrr@po@TR@&lt;ç¾åœ¨ã®çŠ¶æ…‹&gt;@&lt;æ–‡å­—ã‚¯ãƒ©ã‚¹&gt; &amp; é·ç§»å…ˆã®çŠ¶æ…‹ \\
%     \bottomrule
%   \end{tabular}
% \end{flushleft}
%    \begin{macrocode}
\def\outorb@opt@parse#1{%
  \outorb@ifstreqTF{#1}{||}{%
    \def\outorb@opt@opt{|-|}%
  }{%
    \edef\outorb@opt@opt{#1}%
  }%
  \let\outorb@opt@parse@bintr\ltx@empty
  \let\outorb@opt@parse@bsub\ltx@empty
  \let\outorb@opt@parse@mode\ltx@empty
  \let\outorb@opt@parse@asub\ltx@empty
  \let\outorb@opt@parse@aintr\ltx@empty
  \def\outorb@po@FS{bi}%
  \expandafter\outorb@opt@parse@loop\outorb@opt@opt @\outorb@end
}
%    \end{macrocode}
% \begin{macro}{\outorb@opt@parse@loop}
% æœ‰é™ã‚ªãƒ¼ãƒˆãƒžãƒˆãƒ³ã€‚
%    \begin{macrocode}
\def\outorb@opt@parse@loop#1{%
  \if#1@%
    \expandafter\outorb@opt@parse@exit
  \fi
  \ltx@ifundefined{pxrr@po@C@#1}{%
    \outorb@err{%
      Unexpected letter `#1' found%
    }%
  }{%
    \expandafter\let\expandafter\outorb@po@FS\csname
      pxrr@po@TR@\outorb@po@FS @\csname pxrr@po@C@#1\endcsname\endcsname
    \ifx\outorb@po@FS\relax
      \outorb@err{%
        Unexpected letter `#1' found%
      }%
    \fi
%    \end{macrocode}
% \begin{center}
% \newcommand\otherwise{{\@@it\textit{otherwise}}}
% \begin{minipage}{0.5\textwidth}\centering
%   \begin{tabular}{c&gt;{\ttfamily}ll&lt;{?}}
%     \multicolumn{3}{c}{æ–‡å­—ã‚¯ãƒ©ã‚¹} \\
%     \toprule
%     F &amp; @ &amp; finish \\
%     V &amp; | &amp; vertical \\
%     S &amp; :.*! &amp; sub \\
%     B &amp; \string&lt;( &amp; befone inter \\
%     A &amp; &gt;) &amp; after inter \\
%     M &amp; -mgjMJchHPSeEfF &amp; mode \\
%     \bottomrule
%   \end{tabular}^^A
% \end{minipage}\nobreak
% \begin{minipage}{0.5\textwidth}\centering
%   \begin{tabular}{cl&lt;{?}l}
%     \multicolumn{3}{c}{çŠ¶æ…‹} \\
%     \toprule
%     bi &amp; before inter &amp; åˆæœŸå€¤ \\
%     bb &amp; before, bar \\
%     bs &amp; before, sub \\
%     mi &amp; mode \\
%     as &amp; after, sub \\
%     ai &amp; after, inter \\
%     ab &amp; after, bar \\
%     fi &amp; finish \\
%     \bottomrule
%   \end{tabular}\par\raggedright\medskip\footnotesize
%   æ¬¡ã®æŒ‡å®šã‚’ã©ã†è§£é‡ˆã™ã‚‹ã‹ã¨ã„ã†æ„å‘³ã§ã‚ã‚‹ã€‚
%   bsãªã‚‰æ¬¡ã«æ¥ã‚‹æŒ‡å®šã¯å‰è£œåŠ©ã‹ãã‚Œä»¥é™ã®ã‚‚ã®ã€‚
% \end{minipage}\\[\bigskipamount]
% \begin{minipage}{0.5\textwidth}\centering
%   \begin{tabular}{clll}
%     \toprule
%     æ–‡å­—ã‚¯ãƒ©ã‚¹ &amp; çŠ¶æ…‹ &amp; é·ç§»å…ˆ &amp; è¨­å®šã®ç¨®é¡ž \\\midrule
%     V &amp; bi, bb &amp; bb, bs &amp; å‰é€²å…¥ \\
%     &amp; \otherwise &amp; ab, fi &amp; å¾Œé€²å…¥ \\
%     S &amp; bi, bb, bs &amp; bs &amp; å‰è£œåŠ© \\
%     &amp; \otherwise &amp; as &amp; å¾Œè£œåŠ© \\
%     B &amp; bi, bb &amp; bs &amp; å‰é€²å…¥ \\
%     A &amp; &amp; fi &amp; å¾Œé€²å…¥ \\
%     M &amp; &amp; mi &amp; ãƒ¢ãƒ¼ãƒ‰ \\
%     \bottomrule
%   \end{tabular}^^A
% \end{minipage}\nobreak
% \begin{minipage}{0.5\textwidth}\centering
%   \begin{tabular}{cll}
%     \toprule
%     é·ç§»å…ˆ &amp; æ–‡å­—ã‚¯ãƒ©ã‚¹ &amp; è¨­å®šã®ç¨®é¡ž \\ \midrule
%     bi &amp; &amp; å‰é€²å…¥ï¼ˆå­˜åœ¨ã›ãšï¼‰ \\
%     bb &amp; &amp; å‰é€²å…¥ \\
%     bs &amp; S &amp; å‰è£œåŠ© \\
%     &amp; \otherwise &amp; å‰é€²å…¥ \\
%     mi &amp; &amp; ãƒ¢ãƒ¼ãƒ‰ \\
%     as &amp; &amp; å¾Œè£œåŠ© \\
%     ai &amp; &amp; å¾Œè£œåŠ©ï¼ˆç¾å­˜ã›ãšï¼‰ \\
%     ab &amp; &amp; å¾Œé€²å…¥ \\
%     fi &amp; &amp; å¾Œé€²å…¥ \\
%     \bottomrule
%   \end{tabular}^^A
% \end{minipage}%
% \end{center}
% \result\outorb@po@FS &lt;é·ç§»å…ˆ&gt;
% \par é·ç§»å…ˆã‹ã‚‰è¨­å®šã®ç¨®é¡žã‚’åˆ†é¡žã€‚
%    \begin{macrocode}
    \outorb@ifstreqTF{\outorb@po@FS}{bi}{%
      \ltx@LocalAppendToMacro\outorb@opt@parse@bintr{#1}%
    }{\outorb@ifstreqTF{\outorb@po@FS}{bb}{%
      \ltx@LocalAppendToMacro\outorb@opt@parse@bintr{#1}%
    }{\outorb@ifstreqTF{\outorb@po@FS}{bs}{%
      \outorb@ifstreqTF{\csname pxrr@po@C@#1\endcsname}{S}{%
        \ltx@LocalAppendToMacro\outorb@opt@parse@bsub{#1}%
      }{%
        \ltx@LocalAppendToMacro\outorb@opt@parse@bintr{#1}%
      }%
    }{\outorb@ifstreqTF{\outorb@po@FS}{mi}{%
      \ltx@LocalAppendToMacro\outorb@opt@parse@mode{#1}%
    }{\outorb@ifstreqTF{\outorb@po@FS}{as}{%
      \ltx@LocalAppendToMacro\outorb@opt@parse@asub{#1}%
    }{\outorb@ifstreqTF{\outorb@po@FS}{ai}{%
      \ltx@LocalAppendToMacro\outorb@opt@parse@asub{#1}%
    }{\outorb@ifstreqTF{\outorb@po@FS}{ab}{%
      \ltx@LocalAppendToMacro\outorb@opt@parse@aintr{#1}%
    }{\outorb@ifstreqTF{\outorb@po@FS}{fi}{%
      \ltx@LocalAppendToMacro\outorb@opt@parse@aintr{#1}%
    }{%
      \outorb@err{%
        This can happen, may be a bug.\MessageBreak
        (\outorb@po@FS)\MessageBreak
        pxrubrica: \csname ver@pxrubrica.sty\endcsname,\MessageBreak
        outoruby: \ltx@space\csname ver@outoruby.sty\endcsname
      }%
    }}}}}}}}%
  }%
  \outorb@opt@parse@loop
}
%    \end{macrocode}
% \begin{macro}{\outorb@opt@parse@exit}
%    \begin{macrocode}
\def\outorb@opt@parse@exit#1\outorb@end{%
}
%    \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
%
% \subsubsection{\cs{outorubysetup}}
%
% \begin{macro}{\outorb@setup@bintr}
% &lt;option_2&gt;ã®å‰é€²å…¥æŒ‡å®šã®æ—¢å®šå€¤ã€‚
% \begin{macro}{\outorb@setup@aintf}
% &lt;option_2&gt;ã®å¾Œé€²å…¥æŒ‡å®šã®æ—¢å®šå€¤ã€‚
% \begin{macro}{\outorubysetup}
% \begin{macro}{\outorb@outorubysetup}
% #1ã‚’\cs{outoruby}ã®&lt;option_2&gt;ã®æ—¢å®šå€¤ã«ã€‚
% å‰é€²å…¥ã€å¾Œé€²å…¥ä»¥å¤–ã¯ç„¡è¦–ã—ã€ãã‚Œãžã‚ŒæŽ’ä»–ã€‚
%    \begin{macrocode}
\let\outorb@setup@bintr\ltx@empty
\let\outorb@setup@aintr\ltx@empty
\outorb@errifdefined\outorubysetup
\outorb@protected\def\outorubysetup#1{%
  \begingroup
  \outorb@opt@parse{#1}%
  \edef\outorb@tempa{%
    \ifx\outorb@opt@parse@bintr\ltx@empty\else
      \def\noexpand\outorb@setup@bintr{%
        \outorb@opt@parse@bintr
      }%
    \fi
    \ifx\outorb@opt@parse@aintr\ltx@empty\else
      \def\noexpand\outorb@setup@aintr{%
        \outorb@opt@parse@aintr
      }%
    \fi
  }%
  \expandafter\endgroup\outorb@tempa
}
\let\outorb@outorubysetup\outorubysetup
\outorubysetup{||-||}
%    \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
%
% \subsubsection{\cs{outoruby}ã®ã‚ªãƒ—ã‚·ãƒ§ãƒ³å‡¦ç†}
%
% \begin{macro}{\outorb@opt@prebreak}
% è¡Œæœ«å½¢ã®\cs{jruby}ã«æ¸¡ã™ã‚ªãƒ—ã‚·ãƒ§ãƒ³ï¼ˆ\A[]ã‚ã‚Šï¼‰ã€‚
% \begin{macro}{\outorb@opt@postbreak}
% è¡Œé&nbsp;­å½¢ã®\cs{jruby}ã«æ¸¡ã™ã‚ªãƒ—ã‚·ãƒ§ãƒ³ï¼ˆ\A[]ã‚ã‚Šï¼‰ã€‚
% \begin{macro}{\outorb@opt@nobreak}
% è¡Œä¸­å½¢ã®\cs{jruby}ã«æ¸¡ã™ã‚ªãƒ—ã‚·ãƒ§ãƒ³ï¼ˆ\A[]ã‚ã‚Šï¼‰ã€‚
% \begin{macro}{\outorb@opt@pre}
% &lt;pre-space&gt;
% \begin{macro}{\outorb@opt@post}
% &lt;post-space&gt;
% \begin{macro}{\outorb@opt}
% \leavevmode\par
% \inarg1 \cs{outoruby}ã®ã‚ªãƒ—ã‚·ãƒ§ãƒ³å¼•æ•°ã‚’å…¨éƒ¨ã¾ã¨ã‚ãŸã‚‚ã®ï¼ˆ\A[]ã‚ã‚Šï¼‰ã€‚ç©ºã‚‚ã‚ã‚Šå¾—ã‚‹ã€‚
%    \begin{macrocode}
\def\outorb@opt#1{%
  \outorb@opt@opt#1[][][][]\outorb@nil
}
%    \end{macrocode}
% \begin{macro}{\outorb@err@mustempty}
% å®Ÿéš›ã«ã¯ä¸è¦ã€‚
%    \begin{macrocode}
\def\outorb@err@mustempty#1#2{%
  \ltx@ifblank{#1}{}{%
    \outorb@err{%
      Argument of \string#2 doesn't match its definition%
    }%
  }%
}%
%    \end{macrocode}
% \end{macro}
% \begin{macro}{\outorb@opt@opt}
% \movempar
% \inarg2 &lt;option_1&gt;
% \inarg4 &lt;option_2&gt;
% \inarg6 &lt;pre-space&gt;
% \inarg8 &lt;post-space&gt;
%    \begin{macrocode}
\def\outorb@opt@opt#1[#2]#3[#4]#5[#6]#7[#8]#9\outorb@nil{%
  \outorb@err@mustempty{#1}\outoruby
  \outorb@err@mustempty{#3}\outoruby
  \outorb@err@mustempty{#5}\outoruby
  \outorb@err@mustempty{#7}\outoruby
  \def\outorb@opt@pre{#6}%
  \def\outorb@opt@post{#8}%
%    \end{macrocode}
% \par ã‚ªãƒ—ã‚·ãƒ§ãƒ³ãƒ‘ãƒ¼ã‚¹ã€‚
%    \begin{macrocode}
  \outorb@opt@parse{#4}%
  \ifx\outorb@opt@parse@bintr\ltx@empty
    \let\outorb@opt@break@bintr\outorb@setup@bintr
  \else
    \let\outorb@opt@break@bintr\outorb@opt@parse@bintr
  \fi
  \ifx\outorb@opt@parse@aintr\ltx@empty
    \let\outorb@opt@break@aintr\outorb@setup@aintr
  \else
    \let\outorb@opt@break@aintr\outorb@opt@parse@aintr
  \fi
  \outorb@opt@parse{#2}%
  \ifx\outorb@opt@parse@mode\ltx@empty
%    \end{macrocode}
% \par \verb+||+ã¯\verb+|-|+ã¨æ‰±ã‚ã‚Œã¦ã—ã¾ã†ã€‚
%    \begin{macrocode}
    \def\outorb@opt@parse@mode{-}%
  \fi
  \edef\outorb@opt@nobreak{[#2]}%
  \edef\outorb@opt@prebreak{[%
    \outorb@opt@parse@bintr
    \outorb@opt@parse@bsub
    \outorb@opt@parse@mode
    \outorb@opt@break@aintr
  ]}%
  \edef\outorb@opt@postbreak{[%
    \outorb@opt@break@bintr
    \outorb@opt@parse@mode
    \outorb@opt@parse@asub
    \outorb@opt@parse@aintr
  ]}%
}
%    \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \begin{macro}{\outorb@opt@ifnobreakTF}
% è£œåŠ©è¨­å®šã‹ã‚‰è¡Œåˆ†å‰²ã®å¯å¦ã‚’æŠŠæ¡ã€‚
% \inarg1 è£œåŠ©è¨­å®šã€‚
%    \begin{macrocode}
\def\outorb@opt@ifnobreakTF#1{%
  \edef\outorb@tempa{#1}%
  \expandafter\outorb@opt@ifnobreak#1*\outorb@nil
}
\def\outorb@opt@ifnobreak#1*#2\outorb@nil{%
  \ltx@ifblank{#2}{%
    \ltx@secondoftwo
  }{%
    \ltx@firstoftwo
  }%
}
%    \end{macrocode}
% \end{macro}
%
% \subsection{æœ¬ä½“}
%
% \begin{macro}{\outoruby}
% \begin{macro}{\outorb@outoruby}
% \@cs{outoruby}[&lt;option_1&gt;][&lt;option_2&gt;][&lt;pre-space&gt;][&lt;post-space&gt;]{&lt;body&gt;}{&lt;ruby&gt;} \\
% &lt;body&gt;: &lt;body_1&gt;&lt;body_2&gt;\ldots &lt;body_n&gt; \\
% &lt;ruby&gt;: &lt;ruby_1&gt;\texttt|&lt;ruby_2&gt;\texttt|\ldots \texttt|&lt;ruby_n&gt;
%    \begin{macrocode}
\outorb@errifdefined\outoruby
\outorb@protected\def\outoruby{%
  \outorb@outorb@opt{}[]%
}
\let\outorb@outoruby\outoruby
%    \end{macrocode}
% \begin{macro}{\outorb@outorb@opt}
% ã‚ªãƒ—ã‚·ãƒ§ãƒ³ã‚’å…¨éƒ¨å–å¾—ã—ã¦\cs{outorb@outorb@checkv}ã¸ï¼ˆ\A[]ã¤ãï¼‰ã€‚
%    \begin{macrocode}
\def\outorb@outorb@opt#1[#2]{%
  \ltx@ifnextchar[{%
    \outorb@outorb@opt{#1[{#2}]}%
  }{%
    \expandafter\outorb@outorb@checkv\expandafter{\ltx@gobblethree #1[{#2}]}%
  }%
}
%    \end{macrocode}
% \end{macro}
% \begin{macro}{\outorb@outorb@checkv}
% æ®µè½ã¯ã˜ã‚ï¼ˆåž‚ç›´ãƒ¢ãƒ¼ãƒ‰ï¼‰ãªã‚‰é€”ä¸­ã§åˆ†å‰²ã—ãªã„ã¨ä¿¡ã˜ã‚‹ã€‚
% æ®µè½ã¯ã˜ã‚ã¨\pxrbpkg ã«çŸ¥ã‚‰ã›ã‚‹ãŸã‚ç‰¹ã«ä½•ã‚‚ã›ãšå‡¦ç†ä¸¸æŠ•ã’ã€‚
%    \begin{macrocode}
\def\outorb@outorb@checkv#1{%
  \ifvmode
    \begingroup
    \outorb@opt{#1}%
    \expandafter\outorb@outorb@vmode% \endgroup
  \else
    \outorb@prologue% \begingroup
    \outorb@opt{#1}%
    \expandafter\outorb@outorb% \endgroup (\outorb@epilogue)
  \fi
}
%    \end{macrocode}
% \end{macro}
% \begin{macro}{\outorb@outorb}
% \begin{macro}{\outorb@outorb@check@kinsoku}
% \pxrbpkg ã®ç¦å‰‡ç”¨ã®å…ˆèª­ã¿å‡¦ç†ã‚’discretionaryã«å…¥ã‚Œã‚‹å‰ã«ä»£ã‚ã‚Šã«ã‚„ã£ã¦ãŠãã€‚
%    \begin{macrocode}
\def\outorb@outorb#1#2{%
  \def\outorb@outorb@tempa{%
    \outorb@outorb@main{#1}{#2}%
  }%
  \ifpxrr@safe@mode
%    \end{macrocode}
% \par å®‰å…¨ãƒ¢ãƒ¼ãƒ‰ã€‚
%    \begin{macrocode}
    \expandafter\outorb@outorb@tempa
  \else
    \expandafter\outorb@outorb@check@kinsoku\expandafter\outorb@outorb@tempa
  \fi
}
\def\outorb@outorb@check@kinsoku#1{%
  \pxrr@abodyfalse
  \pxrr@check@kinsoku#1%
}
%    \end{macrocode}
% \end{macro}
% \end{macro}
%
% \subsubsection{ãƒ¡ã‚¤ãƒ³ã®å‡¦ç†}
%
% \begin{macro}{\outorb@outorb@main}
% \movempar
% \inarg1 &lt;body&gt;
% \inarg2 &lt;ruby&gt;
% \par ã‚ªãƒ—ã‚·ãƒ§ãƒ³ã¯\cs{outorb@opt}ã§å‡¦ç†æ¸ˆã¿ã€‚
%    \begin{macrocode}
\def\outorb@outorb@main#1#2{%
%    \end{macrocode}
% \par å¾Œç¦å‰‡ã€‚
%    \begin{macrocode}
  \edef\outorb@after@penalty{\the\pxrr@cntr}%
  \ifnum\outorb@after@penalty&gt;\outorb@iM
    \outorb@outorb@anobrtrue
  \else
%    \end{macrocode}
% \par ã‚ªãƒ—ã‚·ãƒ§ãƒ³ã®å¾Œè£œåŠ©æŒ‡å®šã«ã‚ˆã‚‹å¾Œæ”¹è¡Œç¦æ­¢ã€‚
%    \begin{macrocode}
    \outorb@opt@ifnobreakTF\outorb@opt@parse@asub{%
      \outorb@outorb@anobrtrue
    }{%
      \outorb@outorb@anobrfalse
    }%
  \fi
  \ifnum\outorb@before@penalty&gt;\outorb@iM
    \outorb@outorb@bnobrtrue
  \else
    \outorb@opt@ifnobreakTF\outorb@opt@parse@bsub{%
      \outorb@outorb@bnobrtrue
    }{%
      \outorb@outorb@bnobrfalse
    }%
  \fi
%    \end{macrocode}
% \par å‰å¾Œã«å…¥ã‚Œã‚‹ã‚°ãƒ«ãƒ¼ã€‚
% è£œåŠ©è¨­å®šã«ã‚ˆã‚‹ã‚‚ã®ã¯ã“ã“ã§ã¯ãªãdiscretionaryã®ä¸­èº«ã§å…¥ã‚Œã‚‰ã‚Œã‚‹ï¼ˆä¼¸ç¸®ã¯ã—ãªããªã‚‹ï¼‰ã€‚
%    \begin{macrocode}
  \ltx@LocalAppendToMacro\outorb@outorb@pre{%
    \hskip\outorb@before@glue\relax
  }%
  \expandafter\ltx@LocalAppendToMacro\expandafter\outorb@outorb@pre\expandafter{%
    \outorb@opt@pre
  }%
  \expandafter\ltx@LocalAppendToMacro\expandafter\outorb@outorb@post\expandafter{%
    \outorb@opt@post
  }%
%    \end{macrocode}
% \par å¼•æ•°å‡¦ç†ã€‚
%    \begin{macrocode}
  \pxrr@decompbar{#1}%
  \let\outorb@body@list\pxrr@res
  \edef\outorb@body@count{\the\pxrr@cntr}%
  \pxrr@decompbar{#2}%
  \let\outorb@ruby@list\pxrr@res
  \edef\outorb@ruby@count{\the\pxrr@cntr}%
  \ifpxrr@safe@mode
%    \end{macrocode}
% \par å®‰å…¨ãƒ¢ãƒ¼ãƒ‰ã€‚
%    \begin{macrocode}
    \pxrr@unite@group\outorb@body@list
    \def\outorb@body@count{1}%
    \pxrr@unite@group\outorb@ruby@list
    \def\outorb@ruby@count{1}%
  \fi
  \ifnum\outorb@body@count&gt;\ltx@one
%    \end{macrocode}
% \par å¯å‹•ã‚°ãƒ«ãƒ¼ãƒ—ãƒ«ãƒ“ã€‚
% \pxrbpkg æœªå®Ÿè£…ã&nbsp;ãŒã²ã¨ã¾ãšç†Ÿèªžãƒ«ãƒ“ã¨åŒã˜æ‰±ã„ã«ã™ã‚‹ã€‚
%    \begin{macrocode}
    \ifnum\outorb@body@count=\outorb@ruby@count\relax
      \outorb@outorb@mj{#1}{#2}%
    \else
      \outorb@err{%
        \string\outoruby\ltx@space group count mismatch (\outorb@body@count &lt;&gt; \outorb@ruby@count)%
      }%
    \fi
  \else
%    \end{macrocode}
% \par &lt;body&gt;ãŒ\verb+|+ã§åŒºåˆ‡ã‚‰ã‚Œã¦ã„ãªã„å&nbsp;´åˆã€‚
% ã‚°ãƒ«ãƒ¼ãƒ—å˜ä½ã«åˆ†å‰²ã€‚
%    \begin{macrocode}
    \ifpxrr@safe@mode\else
      \pxrr@decompose{#1}%
      \ifnum\outorb@ruby@count=\pxrr@cntr
%    \end{macrocode}
% \par çœŸã«ãªã‚‹ã®ã¯ãƒ¢ãƒŽãƒ«ãƒ“ã‹ç†Ÿèªžãƒ«ãƒ“ã€å½ã«ãªã‚‹ã®ã¯ã‚°ãƒ«ãƒ¼ãƒ—ãƒ«ãƒ“ã®å&nbsp;´åˆã€‚
%    \begin{macrocode}
        \let\outorb@body@list\pxrr@res
        \edef\outorb@body@count{\the\pxrr@cntr}%
      \fi
    \fi
    \ifnum\outorb@body@count=\ltx@one
%    \end{macrocode}
% \par ã‚°ãƒ«ãƒ¼ãƒ—ãƒ«ãƒ“ã¨ã¿ãªã›ã‚‹å&nbsp;´åˆã€‚1æ–‡å­—ã®ãƒ¢ãƒŽãƒ«ãƒ“ã€ç†Ÿèªžãƒ«ãƒ“ã‚’å«ã‚€ãŒå‡¦ç†ã¯åŒã˜ã€‚
% ã“ã®å&nbsp;´åˆ&lt;ruby&gt;ã‚‚å˜ä¸€ã‚°ãƒ«ãƒ¼ãƒ—ã‹ã‚‰ãªã£ã¦ã„ã‚‹ã®ã§ã€çµå±€ãƒ¢ãƒŽãƒ«ãƒ“ã¨åŒã˜å‡¦ç†ãŒä½¿ãˆã‚‹ã€‚
%    \begin{macrocode}
      \outorb@outorb@mj{#1}{#2}%
    \else\ifnum\outorb@body@count=\outorb@ruby@count\relax
%    \end{macrocode}
% \par ãƒ¢ãƒŽãƒ«ãƒ“ã€ç†Ÿèªžãƒ«ãƒ“ã€‚
%    \begin{macrocode}
      \outorb@outorb@mj{#1}{#2}%
    \else
      \outorb@err{%
        \string\outoruby\ltx@space group count mismatch (\outorb@body@count &lt;&gt; \outorb@ruby@count)%
      }%
    \fi\fi
  \fi
  \outorb@epilogue
}
%    \end{macrocode}
% \end{macro}
%
% \subsubsection{\cs{discretionary}çµ„ã¿ç«‹ã¦}
%
% \begin{macro}{\outorb@outorb@mj}
% \cs{outorb@discretionary}ã®å¼•æ•°ã‚’å®Ÿéš›ã«çµ„ã¿ç«‹ã¦ã‚‹ã€‚
% \intl\outorb@boyd@list \pxrr@pre{&lt;body_1&gt;}\pxrr@inter{&lt;body_2&gt;}\ldots\pxrr@inter{&lt;body_n&gt;}\pxrr@post
% \intl\outorb@boyd@list \pxrr@pre{&lt;ruby_1&gt;}\pxrr@inter{&lt;ruby_2&gt;}\ldots\pxrr@inter{&lt;ruby_n&gt;}\pxrr@post
% \par å¼•æ•°ã¯&lt;no-break&gt;ç”¨ã€‚\cs{pxrr@post}ã§ä½¿ã‚ã‚Œã‚‹ã€‚
% \inarg1 &lt;body&gt;
% \inarg2 &lt;ruby&gt;
%    \begin{macrocode}
\def\outorb@outorb@mj{%
  \expandafter\outorb@pxrr@product@list\expandafter{\outorb@body@list}%
  \expandafter\outorb@pxrr@pair@list\expandafter{\outorb@res}%
  \let\outorb@body@product@list\outorb@res
  \expandafter\outorb@pxrr@product@list\expandafter{\outorb@ruby@list}%
  \expandafter\outorb@pxrr@pair@list\expandafter{\outorb@res}%
  \let\outorb@ruby@product@list\outorb@res
  \pxrr@zip@list\outorb@body@product@list\outorb@ruby@product@list
%    \end{macrocode}
% \result\pxrr@res
% \pxrr@pre{\ttend2
%   {\pxrr@post}\ttend2
%   {\pxrr@pre{&lt;body_1&gt;}\pxrr@inter{&lt;body_2&gt;}\ldots\pxrr@inter{&lt;body_n&gt;}\pxrr@post}\ttend1
% }{\ttend2
%   {\pxrr@post}\ttend2
%   {\pxrr@pre{&lt;ruby_1&gt;}\pxrr@inter{&lt;ruby_2&gt;}\ldots\pxrr@inter{&lt;ruby_n&gt;}\pxrr@post}\ttend1
% }\pxrr@inter{\ttend2
%   {\pxrr@pre{&lt;body_1&gt;}\pxrr@post}\ttend2
%   {\pxrr@pre{&lt;body_2&gt;}\pxrr@inter{&lt;body_3&gt;}\ldots\pxrr@inter{&lt;body_n&gt;}\pxrr@post}\ttend1
% }{\ttend2
%   {\pxrr@pre{&lt;ruby_1&gt;}\pxrr@post}\ttend2
%   {\pxrr@pre{&lt;ruby_2&gt;}\pxrr@inter{&lt;ruby_3&gt;}\ldots\pxrr@inter{&lt;ruby_n&gt;}\pxrr@post}\ttend1
% }\ttend1
% \vdots\\\ttindent
% \pxrr@inter{\ttend2
%   {\pxrr@pre{&lt;body_1&gt;}\pxrr@inter{&lt;body_2&gt;}\ldots\pxrr@inter{&lt;body_n&gt;}\pxrr@post}\ttend2
%   {\pxrr@post}\ttend1
% }{\ttend2
%   {\pxrr@pre{&lt;ruby_1&gt;}\pxrr@inter{&lt;ruby_2&gt;}\ldots\pxrr@inter{&lt;ruby_n&gt;}\pxrr@post}\ttend2
%   {\pxrr@post}\ttend1
% }\pxrr@post
%    \begin{macrocode}
  \let\pxrr@pre\outorb@outorb@mj@pre
  \let\pxrr@inter\outorb@outorb@mj@inter
  \let\pxrr@post\outorb@outorb@mj@post
%    \end{macrocode}
% \result\outorb@outorb@disc@list
% \cs{outorb@discretionary}ã®ç¬¬ä¸€å¼•æ•°ã€‚
%    \begin{macrocode}
  \let\outorb@outorb@disc@list\ltx@empty
  \pxrr@res
}
%    \end{macrocode}
% \begin{macro}{\ifoutorb@outorb@bnobr}
% \begin{macro}{\ifouotrb@outorb@anobr}
% å‰å¾Œã§ã®åˆ†å‰²ç¦æ­¢ã®æœ‰ç„¡ã€‚
%    \begin{macrocode}
\ltx@newif\ifoutorb@outorb@bnobr% before no break
\ltx@newif\ifoutorb@outorb@anobr% after no break
%    \end{macrocode}
% \end{macro}
% \end{macro}
% \begin{macro}{\outorb@outorb@mj@pre}
%    \begin{macrocode}
\def\outorb@outorb@mj@pre#1#2{%
  \ifoutorb@outorb@bnobr
%    \end{macrocode}
% \par å‰åˆ†å‰²ç¦æ­¢ã€‚
% ã“ã“ã§åˆ†å‰²å¯èƒ½ãªãƒ‘ã‚¿ãƒ¼ãƒ³ã‚’å…¥ã‚Œãªã„ã€‚
%    \begin{macrocode}
  \else
    \outorb@outorb@mj@makeruby#1#2%
  \fi
}
%    \end{macrocode}
% \end{macro}
% \begin{macro}{\outorb@outorb@mj@inter}
%    \begin{macrocode}
\def\outorb@outorb@mj@inter#1#2{%
  \pxrr@if@last{%
    \ifoutorb@outorb@anobr
%    \end{macrocode}
% \par å¾Œåˆ†å‰²ç¦æ­¢ã€‚
%    \begin{macrocode}
    \else
      \outorb@outorb@mj@makeruby#1#2%
    \fi
  }{%
    \outorb@outorb@mj@makeruby#1#2%
  }%
}
%    \end{macrocode}
% \end{macro}
% \begin{macro}{\outorb@outorb@mj@makeruby}
% 1ã¤ã®&lt;pre-break_m&gt;ã¨&lt;post-break_m&gt;ã®ãƒ‘ã‚¿ãƒ¼ãƒ³ã‚’ä½œã‚‹ã€‚
% \cs{ifoutorb@bnobr}ã®å&nbsp;´åˆ$m=k$ã€ãã†ã§ãªã‘ã‚Œã°$m=k+1$ã€‚
% \inarg1 \pxrr@pre{&lt;body_1&gt;}\pxrr@inter{&lt;body_2&gt;}\ldots \pxrr@inter{&lt;body_k&gt;}\pxrr@post
% \inarg2 \pxrr@pre{&lt;body_{k+1}&gt;}\pxrr@inter{&lt;body_{k+2}&gt;}\ldots \pxrr@inter{&lt;body_n&gt;}\pxrr@post
% \inarg3 \pxrr@pre{&lt;ruby_1&gt;}\pxrr@inter{&lt;ruby_2&gt;}\ldots \pxrr@inter{&lt;ruby_k&gt;}\pxrr@post
% \inarg4 \pxrr@pre{&lt;ruby_{k+1}&gt;}\pxrr@inter{&lt;ruby_{k+2}&gt;}\ldots \pxrr@inter{&lt;ruby_n&gt;}\pxrr@post
% \par #1ã¨#3ã‹ã‚‰&lt;pre-break_m&gt;ã€#2ã¨#4ã‹ã‚‰&lt;post-break_m&gt;ã€‚
%    \begin{macrocode}
\def\outorb@outorb@mj@makeruby#1#2#3#4{%
%    \end{macrocode}
% \par \cs{pxrr@inter}ãƒªã‚¹ãƒˆã®å‡¦ç†ã§æ„å‘³å¤‰ãˆã‚‰ã‚Œã‚‹ã®ã§é€€é¿ã—ã¦ãŠã„ã¦å¾Œã§æˆ»ã™ã€‚
%    \begin{macrocode}
  \let\outorb@outorb@mj@makeruby@pre\pxrr@pre
  \let\outorb@outorb@mj@makeruby@inter\pxrr@inter
  \let\outorb@outorb@mj@makeruby@post\pxrr@post
%    \end{macrocode}
% \par ç©ºï¼ˆå˜ä¸€\pxrr@post ï¼‰ã®å&nbsp;´åˆã€\cs\jruby å®Ÿè¡Œã›ãš&lt;pre-break_m&gt;ã¾ãŸã¯&lt;post-break_m&gt;ã‚‚ç©ºã€‚
% ã¡ã‚‡ã†ã©ãƒ«ãƒ“å…¨ä½“ã®ã®å‰å¾Œã§æ”¹è¡Œã—ãŸå&nbsp;´åˆã€‚
% \result\outorb@outorb@mj@makeruby@pre@list &lt;pre-break_m&gt;
%    \begin{macrocode}
  \outorb@pxrr@ifemptyTF{#1}{%
    \def\outorb@outorb@mj@makeruby@pre@list{}%
  }{%
    \edef\outorb@outorb@mj@makeruby@pre@list{%
      \outorb@outorb@cmd@prebreak
    }%
    \outorb@pxrr@join@list{}{#1}%
    \expandafter\ltx@LocalAppendToMacro
      \expandafter\outorb@outorb@mj@makeruby@pre@list
      \expandafter{%
        \expandafter{\outorb@res}%
    }%
    \outorb@pxrr@join@list{|}{#3}%
    \expandafter\ltx@LocalAppendToMacro
      \expandafter\outorb@outorb@mj@makeruby@pre@list
      \expandafter{%
        \expandafter{\outorb@res}%
    }%
  }%
%    \end{macrocode}
% \result\outorb@outorb@mj@makeruby@post@list &lt;post-break_m&gt;
%    \begin{macrocode}
  \outorb@pxrr@ifemptyTF{#2}{%
    \def\outorb@outorb@mj@makeruby@post@list{}%
  }{%
    \edef\outorb@outorb@mj@makeruby@post@list{%
      \outorb@outorb@cmd@postbreak
    }%
    \outorb@pxrr@join@list{}{#2}%
    \expandafter\ltx@LocalAppendToMacro
      \expandafter\outorb@outorb@mj@makeruby@post@list
      \expandafter{%
        \expandafter{\outorb@res}%
    }%
    \outorb@pxrr@join@list{|}{#4}%
    \expandafter\ltx@LocalAppendToMacro
      \expandafter\outorb@outorb@mj@makeruby@post@list
      \expandafter{%
        \expandafter{\outorb@res}%
    }%
  }%
%    \end{macrocode}
% \par è¿½åŠ&nbsp;ã€‚
%    \begin{macrocode}
  \expandafter\ltx@LocalAppendToMacro\expandafter\outorb@outorb@disc@list\expandafter{%
    \expandafter{\outorb@outorb@mj@makeruby@pre@list}%
  }%
  \expandafter\ltx@LocalAppendToMacro\expandafter\outorb@outorb@disc@list\expandafter{%
    \expandafter{\outorb@outorb@mj@makeruby@post@list}%
  }%
%    \end{macrocode}
% \par é€€é¿ã—ã¦ã„ãŸã®ã‚’æˆ»ã™ã€‚
%    \begin{macrocode}
  \let\pxrr@pre\outorb@outorb@mj@makeruby@pre
  \let\pxrr@inter\outorb@outorb@mj@makeruby@inter
  \let\pxrr@post\outorb@outorb@mj@makeruby@post
}
%    \end{macrocode}
% \end{macro}
% \begin{macro}{\outorb@outorb@mj@post}
% &lt;no-break&gt;ã‚’ä½œã‚Šã€\cs{outorb@discretionary}å®Ÿè¡Œã€‚
% \inarg1 &lt;body&gt;
% \inarg2 &lt;ruby&gt;
%    \begin{macrocode}
\def\outorb@outorb@mj@post#1#2{%
  \def\outorb@res{%
    \outorb@discretionary
  }%
  \expandafter\ltx@LocalAppendToMacro\expandafter\outorb@res\expandafter{%
    \expandafter{\outorb@outorb@disc@list}%
  }%
  \edef\outorb@outorb@mj@makeruby@nobreak{%
    \outorb@outorb@cmd@nobreak
  }%
  \ltx@LocalAppendToMacro\outorb@outorb@mj@makeruby@nobreak{%
    {#1}{#2}%
  }%
  \expandafter\ltx@LocalAppendToMacro\expandafter\outorb@res\expandafter{%
    \expandafter{\outorb@outorb@mj@makeruby@nobreak}%
  }%
%    \end{macrocode}
% \par \cs{outorb@discretionary}å®Ÿè¡Œã€‚
%    \begin{macrocode}
  \def\outorb@disccommand{\noexpand\outoruby}%
  \outorb@res
}
%    \end{macrocode}
%
% \subsubsection{å®Ÿéš›ã«ãƒ«ãƒ“ã‚’çµ„ã¿ç«‹ã¦ã‚‹ã‚³ãƒžãƒ³ãƒ‰}
%
% \begin{macro}{\outorb@outorb@cmd}
% \begin{macro}{\outorb@outorb@cmd@prebreak}
% \begin{macro}{\outorb@outorb@cmd@postbreak}
% \begin{macro}{\outorb@outorb@cmd@nobreak}
% \cs{edef}ä¸­ã§å‘¼ã°ã‚Œã‚‹ã€‚
% \par\noindent\texttt{#1}: &lt;body&gt;ï¼ˆè¡Œåˆ†å‰²ä½ç½®ã«å¿œã˜ã¦èª¿æ•´æ¸ˆã¿ï¼‰
% \par\noindent\texttt{#2}: &lt;ruby&gt;ï¼ˆè¡Œåˆ†å‰²ä½ç½®ã«å¿œã˜ã¦èª¿æ•´æ¸ˆã¿ï¼‰
% \par ã“ã‚Œã‚’ä½¿ã£ã¦å®Ÿéš›ã«ãƒ«ãƒ“ã‚’çµ„ã‚€ã€‚
%    \begin{macrocode}
\def\outorb@outorb@cmd{\noexpand\outorb@outorb@cmd@jruby}
\def\outorb@outorb@cmd@prebreak{%
  \outorb@outorb@cmd
    \noexpand\outorb@outorb@pre
    {}%
    \outorb@opt@prebreak
}
\def\outorb@outorb@cmd@postbreak{%
  \outorb@outorb@cmd
    {}%
    \noexpand\outorb@outorb@post
    \outorb@opt@postbreak
}
\def\outorb@outorb@cmd@nobreak{%
  \outorb@outorb@cmd
    \noexpand\outorb@outorb@pre
    \noexpand\outorb@outorb@post
    \outorb@opt@nobreak
}
%    \end{macrocode}
% \begin{macro}{\outorb@outorb@cmd@jruby}
% This can't happenå¯¾ç­–ã§\cs{hbox}ã«å…¥ã‚Œã‚‹ã€‚
%    \begin{macrocode}
\def\outorb@outorb@cmd@jruby#1#2[#3]#4#5{%
  \hbox{%
    #1%
    \outorb@cmd@jruby[#3]{#4}{#5}%
    #2%
  }%
}
%    \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
%
% \subsubsection{åž‚ç›´ãƒ¢ãƒ¼ãƒ‰}
%
% \begin{macro}{\outorb@outorb@cmd@vmode}
% åž‚ç›´ãƒ¢ãƒ¼ãƒ‰ã&nbsp;ã£ãŸå&nbsp;´åˆã®å®Ÿéš›ã®ãƒ«ãƒ“ã®çµ„ã¿ç«‹ã¦ã€‚
%    \begin{macrocode}
\def\outorb@outorb@cmd@vmode{%
  \noexpand\outorb@cmd@jruby\outorb@opt@nobreak
}
%    \end{macrocode}
% \end{macro}
% \begin{macro}{\outorb@cmd@jruby}
% ãƒ«ãƒ“ã‚’çµ„ã‚€å‡¦ç†ã‚’æŠ•ã’ã‚‹å‘½ä»¤
%    \begin{macrocode}
\def\outorb@cmd@jruby{\jruby}
%    \end{macrocode}
% \end{macro}
% \begin{macro}{\outorb@outorb@vmode}
% åž‚ç›´ãƒ¢ãƒ¼ãƒ‰ã®å&nbsp;´åˆã€‚
%    \begin{macrocode}
\def\outorb@outorb@vmode{%
  \ltx@LocToksA\expandafter{\outorb@opt@pre}%
  \ltx@LocToksB\expandafter{\outorb@opt@post}%
  \edef\outorb@tempa##1##2{%
    \the\ltx@LocToksA
    \outorb@outorb@cmd@vmode{##1}{##2}%
    \the\ltx@LocToksB
  }%
  \expandafter\endgroup\outorb@tempa
}
%    \end{macrocode}
% \end{macro}
%
% \subsubsection{ãƒ—ãƒ­ãƒ­ãƒ¼ã‚°}
%
% \begin{macro}{\outorb@prologue}
% åž‚ç›´ãƒ¢ãƒ¼ãƒ‰ã§ãªã„å&nbsp;´åˆæœ€åˆã«å®Ÿè¡Œã•ã‚Œã‚‹ã€‚
% å‰å´ã®ç©ºç™½ã‚’é€€é¿ã—ã¦&lt;pre-space&gt;ã«æŒã£ã¦ã„ãã€‚
% ãƒšãƒŠãƒ«ãƒ†ã‚£ã‚‚é€€é¿ã—ã¦è¡Œåˆ†å‰²ã®å¯å¦ã‚’åˆ¤æ–­ã—ãŸä¸Šã€ã“ã“ã§ã®åˆ†å‰²ã‚’ç¦æ­¢ã™ã‚‹ã€‚
%    \begin{macrocode}
\def\outorb@prologue{%
  \begingroup
  \rubynousejghost
  \outorb@hyphen@check
%    \end{macrocode}
% \begin{macro}{\outorb@outorb@pre}
% \begin{macro}{\outorb@outorb@post}
% å‰å¾Œã®ã‚°ãƒ«ãƒ¼ï¼ˆä¼¸ç¸®ã¯ã—ãªã„ï¼‰ãªã©ã‚’å…¥ã‚Œã¦ãŠãç”¨ã€‚
%    \begin{macrocode}
  \let\outorb@outorb@pre\ltx@empty
  \let\outorb@outorb@post\ltx@empty
  \outorb@bgluepen
%    \end{macrocode}
% \par \cs\outorb@discretionary ã§æ”¹è¡Œã™ã‚‹ãŸã‚ã€ã“ã“ã§æ”¹è¡Œã—ã¦ã¯ã„ã‘ãªã„ã€‚
%    \begin{macrocode}
  \penalty\outorb@MM
%    \end{macrocode}
% \par This can't happenå¯¾ç­–ã€‚
%    \begin{macrocode}
  \hbox{}\penalty\outorb@MM
}
%    \end{macrocode}
% \begin{macro}{\outorb@bgluepen}
% ã‚°ãƒ«ãƒ¼ã¨ãƒšãƒŠãƒ«ãƒ†ã‚£ã‚’é€€é¿ã€‚
% \result\outorb@before@glue å‰å´ã®ã‚°ãƒ«ãƒ¼åˆè¨ˆã€‚
% \result\outorb@before@penalty å‰å´ã®ãƒšãƒŠãƒ«ãƒ†ã‚£åˆè¨ˆã€‚
%    \begin{macrocode}
\def\outorb@bgluepen{%
%    \end{macrocode}
% \result\ltx@LocSkipA ã‚°ãƒ«ãƒ¼ï¼ˆå‡¦ç†é€”ä¸­ï¼‰ã€‚
%    \begin{macrocode}
  \ltx@LocSkipA0pt\relax
%    \end{macrocode}
% \result\ltx@LocSkipA ãƒšãƒŠãƒ«ãƒ†ã‚£ï¼ˆå‡¦ç†é€”ä¸­ï¼‰ã€‚
%    \begin{macrocode}
  \pxrr@cnta=\ltx@zero
  \outorb@bgluepen@do
  \edef\outorb@before@glue{\the\ltx@LocSkipA}%
  \edef\outorb@before@penalty{\the\pxrr@cnta}%
}
%    \end{macrocode}
% ã‚°ãƒ«ãƒ¼ã¨ãƒšãƒŠãƒ«ãƒ†ã‚£ãŒã‚ã‚‹é–“ãã‚Œã‚’é€€é¿ã—ã¦å‰Šé™¤ã™ã‚‹ã€‚
%    \begin{macrocode}
\pxrr@ifprimitive\lastnodetype{% e-TeX
  \def\outorb@bgluepen@do{%
%    \end{macrocode}
% \begin{flushleft}
%   \begin{tabular}{lll}
%     \multicolumn{3}{c}{lastnodetype} \\
%     \toprule
%     11 &amp; glue \\
%     12 &amp; kern &amp; å¯¾å‡¦ã—ãªã„ \\
%     13 &amp; penalty \\
%     \bottomrule
%   \end{tabular}
% \end{flushleft}
%    \begin{macrocode}
    \ifnum\lastnodetype=11
      \advance\ltx@LocSkipA\lastskip
      \unskip
      \expandafter\outorb@bgluepen@do
    \else\ifnum\lastnodetype=13
      \advance\pxrr@cnta\lastpenalty
      \unpenalty
      \expandafter\expandafter\expandafter\outorb@bgluepen@do
    \fi\fi
  }%
}{% non e-TeX
  \def\outorb@bgluepen@do{%
    \outorb@bgluepen@remove
    \outorb@bgluepen@remove
    \outorb@bgluepen@remove
    \ifnum\lastskip=\ltx@zero\else
      \expandafter\outorb@bgluepen@do
    \else\ifnum\lastpenalty=\ltx@zero\else
      \expandafter\expandafter\expandafter\outorb@bgluepen@do
    \fi\fi
  }%
}
%    \end{macrocode}
% \par 0ã˜ã‚ƒãªã„å&nbsp;´åˆã&nbsp;ã‘è¿½åŠ&nbsp;ã€‚ã©ã£ã¡ã«ã—ã‚å‰Šé™¤ã™ã‚‹ã®ã§æ„å‘³ã¯ç‰¹ã«ãªã„ã‚ˆã†ãªã€‚
%    \begin{macrocode}
\def\outorb@bgluepen@remove{%
  \ifnum\lastskip=\ltx@zero\else
    \advance\ltx@LocSkipA\lastskip
  \fi
  \unskip
  \ifnum\lastpenalty=\ltx@zero\else
    \advance\pxrr@cnta\lastpenalty
  \fi
  \unpenalty
}
%    \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
%
% \subsubsection{ã‚¨ãƒ”ãƒ­ãƒ¼ã‚°}
%
% \begin{macro}{\outorb@epilogue}
% çµ‚äº†æ™‚ã®å‡¦ç†ã€‚
%    \begin{macrocode}
\def\outorb@epilogue{%
%    \end{macrocode}
% \par \cs\outorb@discretionary ã§æ”¹è¡Œã™ã‚‹ãŸã‚ã€ã“ã“ã§æ”¹è¡Œã—ã¦ã¯ã„ã‘ãªã„ã€‚
%    \begin{macrocode}
  \penalty\outorb@MM
%    \end{macrocode}
% \par This can't happenå¯¾ç­–ã€‚
%    \begin{macrocode}
  \hbox{}\penalty\outorb@MM
%    \end{macrocode}
% \par ã“ã®å¾Œã«ãƒ¦ãƒ¼ã‚¶ãŒãƒšãƒŠãƒ«ãƒ†ã‚£ã‚„ã‚°ãƒ«ãƒ¼ã‚’ç½®ã„ãŸå&nbsp;´åˆã€\cs\outorb@discretionary ã®ç›´å¾Œã§æ”¹è¡ŒãŒç™ºç”Ÿã—å¾—ã‚‹ã®ã§ã¾ãšã„ã“ã¨ã«ãªã‚‹ã€‚
% ãƒšãƒŠãƒ«ãƒ†ã‚£ã¯ç„¡ç†ã&nbsp;ã‘ã©ç©ºç™½ã¯ãªã‚‹ã¹ãç„¡è¦–ã™ã‚‹ã‚ˆã†ã«ã™ã‚‹ã€‚
%    \begin{macrocode}
  \endgroup
  \pxrr@inhibitglue
  \ignorespaces
}
%    \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
%
% \subsection{ãƒã‚¤ãƒ•ãƒãƒ¼ã‚·ãƒ§ãƒ³ãƒšãƒŠãƒ«ãƒ†ã‚£}
%
% \begin{macro}{\outorb@hyphen@check}
% å„\cs{outoruby}ã§ãƒã‚¤ãƒ•ãƒãƒ¼ã‚·ãƒ§ãƒ³ãƒšãƒŠãƒ«ãƒ†ã‚£ã‚’ãƒã‚§ãƒƒã‚¯ã™ã‚‹ã€‚
%    \begin{macrocode}
\def\outorb@hyphen@check{%
%    \end{macrocode}
% \par ã“ã®å€¤ã¯è¦æ¤œè¨Žã€‚
%    \begin{macrocode}
  \ifnum\hyphenpenalty&gt;\outorb@iM
    \outorb@hyphen@warn@nobreak
%    \end{macrocode}
% \par ã“ã®å€¤ã‚‚ã€‚
%    \begin{macrocode}
  \else\ifnum\hyphenpenalty&gt;100
    \outorb@hyphen@warn@maynotbreak
  \fi\fi
}
%    \end{macrocode}
% \begin{macro}{\outorb@hyphen@warn@nobreak}
% \begin{macro}{\outorb@warn@maynotbreak}
% ãƒã‚¤ãƒ•ãƒãƒ¼ã‚·ãƒ§ãƒ³ãƒšãƒŠãƒ«ãƒ†ã‚£ãŒå¤§ãã„å&nbsp;´åˆã«ä¸€åº¦ã&nbsp;ã‘è­¦å‘Šã‚’å‡ºã™ã€‚
%    \begin{macrocode}
\def\outorb@hyphen@warn@nobreak{%
  \global\let\outorb@hyphen@warn@nobreak\relax
  \outorb@warn{%
    The \string\hyphenpenalty\ltx@space value \the\hyphenpenalty\ltx@space too large.\MessageBreak
    \string\outoruby will not break.\MessageBreak
    Using \string\outorubyhyphenbreakable\ltx@space may help it improve%
  }%
}
\def\outorb@hyphen@warn@maynotbreak{%
  \global\let\outorb@hyphen@warn@maynotbreak\relax
  \outorb@warn{%
    The \string\hyphenpenalty\ltx@space value \the\hyphenpenalty\ltx@space too large.\MessageBreak
    \string\outoruby may not break.\MessageBreak
    Using \string\outorubyhyphenbreakable\ltx@space may help it improve%
  }%
}
%    \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
%
% \begin{macro}{\outorubyhyphenbreakable}
% \begin{macro}{\outorb@outorubyhyphenbreakable}
% \@cs\outorubyhyphenbreakable[&lt;n&gt;]
% \par &lt;n&gt;ã¯ãƒã‚¤ãƒ•ãƒãƒ¼ã‚·ãƒ§ãƒ³ã§ã®åˆ†å‰²ã®ã—ã«ãã•ã€‚
% 0ã&nbsp;ã¨ãƒšãƒŠãƒ«ãƒ†ã‚£0ã§ã€4ã&nbsp;ã¨æœ€å°é™ï¼ˆ9999ï¼‰ã€‚
% ãŸã&nbsp;ã—ã‚ˆã‚Šå¤§ãã„å€¤ã«ãƒšãƒŠãƒ«ãƒ†ã‚£ã‚’æ›´æ–°ã™ã‚‹ã“ã¨ã¯ãªã„ã€‚
% \par ã©ã‚“ãªå€¤ã«ã™ã¹ãã‹ã¯ã‚ˆãã‚ã‹ã‚‰ãªã„ã€‚
%    \begin{macrocode}
\outorb@errifdefined\outorubyhyphenbreakable
\outorb@protected\def\outorubyhyphenbreakable{
  \ltx@ifnextchar[{\outorb@hyphenbreakable}{\outorb@hyphenbreakable[0]}%
}
\let\outorb@outorubyhyphenbreakable\outorubyhyphenbreakable
%    \end{macrocode}
% \begin{flushleft}
%   \begin{minipage}{0.5\textwidth}\centering
%     \begin{tabular}{ll}
%       \multicolumn{2}{c}{kernel} \\
%       \toprule
%       \cs\hyphenpenalty &amp; 50 \\
%       \cs\doublehyphendemerits &amp; 10000 \\
%       \cs\finalhyphendemerits &amp; 5000 \\
%       \cs\linepenalty &amp; 10 \\
%       \bottomrule
%     \end{tabular}^^A
%   \end{minipage}\nobreak
%   \begin{minipage}{0.5\textwidth}\centering
%     \begin{tabular}{ll}
%       \multicolumn{2}{c}{\cls{classes}} \\
%       \toprule
%       \cs\@lowpenalty &amp; 51 \\
%       \cs\@medpenalty &amp; 151 \\
%       \cs\@highpenalty &amp; 301 \\
%       \bottomrule
%     \end{tabular}^^A
%   \end{minipage}\\[\bigskipamount]
%   \begin{minipage}{0.5\textwidth}\centering
%     \begin{tabular}{ll}
%       \multicolumn{2}{c}{\file{kinsoku.tex}} \\
%       \toprule
%       å°æ›¸ã®ã‹ãª &amp; 150 \\
%       \bottomrule
%     \end{tabular}^^A
%   \end{minipage}\nobreak
%   \begin{minipage}{0.5\textwidth}\centering
%     \begin{tabular}{ll}
%       \multicolumn{2}{c}{\pLaTeX\ kernel} \\
%       \toprule
%       \cs\jcharwidowpenalty &amp; 500 \\
%       \bottomrule
%     \end{tabular}^^A
%   \end{minipage}
% \end{flushleft}
%    \begin{macrocode}
\def\outorb@hyphenbreakable[#1]{%
  \outorb@hyphenpenalty@min\hyphenpenalty{\outorb@getpen{#1}}%
  \outorb@hyphenpenalty@min\doublehyphendemerits{\outorb@getpen{#1}}%
  \outorb@hyphenpenalty@min\finalhyphendemerits{\outorb@getpen{#1}}%
}
%    \end{macrocode}
% \par ã‚ˆã‚Šå°ã•ããªã‚‹å&nbsp;´åˆã&nbsp;ã‘ãƒšãƒŠãƒ«ãƒ†ã‚£ã‚’æ›´æ–°ã€‚
%    \begin{macrocode}
\def\outorb@hyphenpenalty@min#1#2{%
  \ifnum#1&gt;#2\relax
    #1=#2\relax
  \fi
}
%    \end{macrocode}
% \end{macro}
% \end{macro}
%
% \subsection{\pkg{hyperref}å¯¾ç­–}
%
% \begin{macro}{\outorb@exp@opt}
% å®Œå…¨å±•é–‹å¯èƒ½ã«ã‚ªãƒ—ã‚·ãƒ§ãƒ³éƒ¨åˆ†ã‚’å–å¾—ã™ã‚‹ã€‚
% \begin{Verbatim}
%   \outoruby[][][\hspace{0.25\zw}][{\hspace{0.25\zw}}]{é›ª}{ã‚¹ãƒŽãƒ¼}
% \end{Verbatim}
% ã®ã‚ˆã†ãªå¼•æ•°ã‚’è€ƒæ…®ã™ã‚‹å¿…è¦ã€‚
% \par å¿…é&nbsp;ˆå¼•æ•°ã«ã¯\A{}ã‚’ä½¿ç”¨ã—ã¦ã„ã‚‹ã“ã¨ã‚’å‰æã¨ã—ã¦ã„ã‚‹ã€‚
% ã¾ãŸ\verb+{+ä»¥å¤–ã®ã‚«ãƒ†ã‚´ãƒªã‚³ãƒ¼ãƒ‰1ã®æ–‡å­—ã¯æƒ³å®šã—ã¦ãŠã‚‰ãšã€ã‚°ãƒ«ãƒ¼ãƒ—ãŒå¤–ã‚Œã‚‹æã‚ŒãŒã‚ã‚‹ã€‚
% \inarg1 &lt;ç¶™ç¶š&gt;
% \par &lt;ç¶™ç¶š&gt;\A{&lt;ã‚ªãƒ—ã‚·ãƒ§ãƒ³éƒ¨åˆ†&gt;}ã®å½¢ã§æ¸¡ã•ã‚Œã‚‹ã€‚&lt;ã‚ªãƒ—ã‚·ãƒ§ãƒ³éƒ¨åˆ†&gt;ã«ã¯\A[]å«ã‚€ã€‚
%    \begin{macrocode}
\def\outorb@exp@opt#1#2#{%
  \outorb@exp@opt@loop{#1}{}#2[\outorb@nil}
\def\outorb@exp@opt@loop#1#2#3[#4\outorb@nil{%
%    \end{macrocode}
% \par \verb+#2#{+ã§å–å¾—ã—ãŸã®ã§ã€ã“ã®ãƒ‘ã‚¿ãƒ¼ãƒ³ãƒžãƒƒãƒã§æœ€å¤–\A{}ãŒå¤–ã‚Œã‚‹å¿ƒé…ã¯ãªã„ã€‚
%    \begin{macrocode}
  \ltx@ifempty{#4}{%
%    \end{macrocode}
% \par \verb+[+å«ã¾ã‚Œã¦ãªã„å&nbsp;´åˆã¯çµ‚äº†ã€‚
%    \begin{macrocode}
    #1{#2#3}%
  }{%
    \outorb@exp@opt@chop@open{#1}{#2#3[}#4\outorb@nil
  }%
}
\def\outorb@exp@opt@chop@open#1#2#3[\outorb@nil{%
  \outorb@exp@opt@bracket{#1}{#2}#3]\outorb@nil
}
%    \end{macrocode}
% \par \verb+[+ãŒã‚ã£ãŸã®ã§\verb+]+ãŒã‚ã‚‹ã‹èª¿ã¹ã‚‹ã€‚
%    \begin{macrocode}
\def\outorb@exp@opt@bracket#1#2#3]#4\outorb@nil{%
  \ltx@ifempty{#4}{%
%    \end{macrocode}
% \par \verb+]+è¶³ã‚Šãªã„ã€‚
% \A[]ä¸­ã«\A{}ãŒã‚ã£ãŸã¨ã„ã†ã“ã¨ãªã®ã§ãã‚Œã‚’è€ƒæ…®ã—ã¦\verb+]+ã¾ã§å–ã£ã¦ãã‚‹ã€‚
% ã“ã“ã&nbsp;ã‘æœ€å¤–\A{}ãŒå¤–ã‚Œãªã„ã‚ˆã†è€ƒæ…®ã™ã‚‹å¿…è¦ã‚ã‚Šã€‚
%    \begin{macrocode}
    \outorb@exp@opt@brace{#1}{#2#3}.%
  }{%
    \outorb@exp@opt@chop@close{#1}{#2#3]}#4\outorb@nil
  }%
}
\def\outorb@exp@opt@brace#1#2#3]{%
  \expandafter\outorb@exp@opt@brace@next\expandafter{\ltx@gobble #3]}{#1}{#2}%
}
\def\outorb@exp@opt@brace@next#1#2#3#4#{%
  \outorb@exp@opt@loop{#2}{#3#1}#4[\outorb@nil
}
\def\outorb@exp@opt@chop@close#1#2#3]\outorb@nil{%
  \outorb@exp@opt@loop{#1}{#2}#3[\outorb@nil
}
%    \end{macrocode}
% \end{macro}
% \par \pkg{hyperref}ä¸­ã§ä½¿ã‚ã‚ŒãŸå&nbsp;´åˆã¯è¦ªæ–‡å­—ã®ã¿å‡ºåŠ›ã€‚
% \par \cs{ltx@GlobalAppendToMacro}ç­‰ã¯ãƒžã‚¯ãƒ­ãŒæœªå®šç¾©ã®å&nbsp;´åˆç©ºã§åˆæœŸåŒ–ã™ã‚‹ã€‚
%    \begin{macrocode}
\ltx@GlobalAppendToMacro\pdfstringdefPreHook{%
  \def\outoruby{%
    \outorb@exp@opt\ltx@secondofthree
  }%
  \let\outorb@outoruby\outoruby
}
%    \end{macrocode}
%    \begin{macrocode}
%&lt;/pkg&gt;
%    \end{macrocode}
%
% \Finale
%
% \catcode`\#=6
% \setlength\marginparwidth{10\zw}
% \begin{fullwidth}
%
% \section{é–‹ç™º}
%
% ã“ã®ãƒ‘ãƒƒã‚±ãƒ¼ã‚¸ã¯\href{https://www.gnu.org/licenses/gpl-3.0.html}{GNU General Public License Version 3}ã§é…å¸ƒã•ã‚Œã‚‹ã€‚
%
% ãƒªãƒã‚¸ãƒˆãƒªã¯
% \begin{quote}
%   \url{https://codeberg.org/kkotsi/outoruby}
% \end{quote}
% ã§ã‚ã‚‹ã€‚ãƒã‚°å&nbsp;±å‘Šãªã©ã¯ã“ã¡ã‚‰ã«é€£çµ¡ã•ã‚ŒãŸã„ã€‚
%
% \raggedcolumns
% \renewcommand\indexname{ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹}
% \IndexPrologue{\section{\indexname}}
% \PrintIndex
% \setcounter{GlossaryColumns}{3}
% \renewcommand\glossaryname{æ›´æ–°å±¥æ­´}
% \GlossaryPrologue{\section{\glossaryname}}
% \PrintChanges
% \end{fullwidth}
%
</pre></body></html>