diff options
author | Norbert Preining <preining@logic.at> | 2012-12-11 02:16:31 +0000 |
---|---|---|
committer | Norbert Preining <preining@logic.at> | 2012-12-11 02:16:31 +0000 |
commit | f4759ec3810e030fae93268f1359351c1fe3a3f4 (patch) | |
tree | d947dce23e822c879bc272a94726278fc807ba53 /Master/texmf-dist/tex/platex/pxrubrica | |
parent | 427f60468268e043c941e28ab3196807ef1f9724 (diff) |
new platex package pxrubrica (11Dec)
git-svn-id: svn://tug.org/texlive/trunk@28494 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/platex/pxrubrica')
-rw-r--r-- | Master/texmf-dist/tex/platex/pxrubrica/pxrubrica.sty | 1861 |
1 files changed, 1861 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/platex/pxrubrica/pxrubrica.sty b/Master/texmf-dist/tex/platex/pxrubrica/pxrubrica.sty new file mode 100644 index 00000000000..f40c6a9c692 --- /dev/null +++ b/Master/texmf-dist/tex/platex/pxrubrica/pxrubrica.sty @@ -0,0 +1,1861 @@ +%% +%% This is file `pxrubrica.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% pxrubrica.dtx +%% +%% IMPORTANT NOTICE: +%% +%% For the copyright see the source file. +%% +%% Any modified versions of this file must be renamed +%% with new filenames distinct from pxrubrica.sty. +%% +%% For distribution of the original source see the terms +%% for copying and modification in the file pxrubrica.dtx. +%% +%% This generated file may be distributed as long as the +%% original source files, as listed above, are part of the +%% same distribution. (The sources need not necessarily be +%% in the same archive or directory.) +%% \CharacterTable +%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +%% Digits \0\1\2\3\4\5\6\7\8\9 +%% Exclamation \! Double quote \" Hash (number) \# +%% Dollar \$ Percent \% Ampersand \& +%% Acute accent \' Left paren \( Right paren \) +%% Asterisk \* Plus \+ Comma \, +%% Minus \- Point \. Solidus \/ +%% Colon \: Semicolon \; Less than \< +%% Equals \= Greater than \> Question mark \? +%% Commercial at \@ Left bracket \[ Backslash \\ +%% Right bracket \] Circumflex \^ Underscore \_ +%% Grave accent \` Left brace \{ Vertical bar \| +%% Right brace \} Tilde \~} +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{pxrubrica} + [2012/04/30 v1.0 PX Japanese-style ruby] +\RequirePackage{keyval} +\def\pxrr@pkgname{pxrubrica} +\def\pxrr@error{% + \PackageError\pxrr@pkgname +} +\def\pxrr@warn{% + \PackageWarning\pxrr@pkgname +} +\newif\ifpxrr@fatal@error +\def\pxrr@fatal@error{% + \pxrr@fatal@errortrue + \pxrr@error +} +\def\pxrr@eh@fatal{% + The whole ruby input was ignored.\MessageBreak + \@ehc +} +\def\pxrr@fatal@not@supported#1{% + \pxrr@fatal@error{Not yet supported: #1}% + \pxrr@eh@fatal +} +\def\pxrr@err@inv@value#1{% + \pxrr@error{Invalud value (#1)}% + \@ehc +} +\def\pxrr@fatal@unx@letter#1{% + \pxrr@fatal@error{Unexpected letter '#1' found}% + \pxrr@eh@fatal +} +\def\pxrr@warn@bad@athead{% + \pxrr@warn{Position 'h' not allowed here}% +} +\def\pxrr@warn@must@group{% + \pxrr@warn{Only group ruby is allowed here}% +} +\def\pxrr@fatal@bad@intr{% + \pxrr@fatal@error{% + Intrusion disallowed when ghost is enabled% + }\pxrr@eh@fatal +} +\def\pxrr@fatal@bad@no@protr{% + \pxrr@fatal@error{% + Protrusion must be allowed for either end% + }\pxrr@eh@fatal +} +\def\pxrr@fatal@bad@length#1#2{% + \pxrr@fatal@error{% + Group count mismatch between the ruby and\MessageBreak + the body (#1 <> #2)% + }\pxrr@eh@fatal +} +\def\pxrr@fatal@bad@mono{% + \pxrr@fatal@error{% + Mono-ruby must have a single group% + }\pxrr@eh@fatal +} +\def\pxrr@fatal@bad@movable{% + \pxrr@fatal@error{% + Novable group ruby is not allowed here% + }\pxrr@eh@fatal +} +\def\pxrr@fatal@na@movable{% + \pxrr@fatal@error{% + Feature of movable group ruby is disabled% + }\pxrr@eh@fatal +} +\def\pxrr@interror#1{% + \pxrr@fatal@error{INTERNAL ERROR (#1)}% + \pxrr@eh@fatal +} +\newif\ifpxrrDebug +\let\pxrr@ruby@font\@empty +\def\pxrr@big@intr{1} +\def\pxrr@small@intr{0.5} + +\def\pxrr@size@ratio{0.5} +\def\pxrr@sprop@x{1} +\def\pxrr@sprop@y{2} +\def\pxrr@sprop@z{1} +\def\pxrr@sprop@hy{1} +\def\pxrr@sprop@hz{1} +\def\pxrr@sprop@ex{1} +\def\pxrr@sprop@ey{1} +\def\pxrr@maxmargin{0.75} +\def\pxrr@yhtratio{0.88} +\def\pxrr@thtratio{0.5} +\chardef\pxrr@extra=0 +\newif\ifpxrr@jghost \pxrr@jghostfalse +\newif\ifpxrr@aghost \pxrr@aghostfalse +\def\pxrr@inter@gap{0} +\newif\ifpxrr@edge@adjust \pxrr@edge@adjustfalse +\newif\ifpxrr@break@jukugo \pxrr@edge@adjustfalse +\newif\ifpxrr@d@bprotr \pxrr@d@bprotrtrue +\newif\ifpxrr@d@aprotr \pxrr@d@aprotrtrue +\def\pxrr@d@bintr{} +\def\pxrr@d@aintr{} +\chardef\pxrr@d@athead=0 +\let\pxrr@d@mode=j +\chardef\pxrr@d@side=0 +\chardef\pxrr@d@evensp=1 +\chardef\pxrr@d@fullsize=0 +\newif\ifpxrr@bprotr \pxrr@bprotrfalse +\newif\ifpxrr@aprotr \pxrr@aprotrfalse +\def\pxrr@bintr{} +\def\pxrr@aintr{} +\let\pxrr@bscomp\relax +\let\pxrr@ascomp\relax +\newif\ifpxrr@bnobr \pxrr@bnobrfalse +\newif\ifpxrr@anobr \pxrr@anobrfalse +\newif\ifpxrr@bfintr \pxrr@bfintrfalse +\newif\ifpxrr@afintr \pxrr@afintrfalse +\chardef\pxrr@athead=0 +\let\pxrr@mode=\@undefined +\newif\ifpxrr@abody +\chardef\pxrr@side=0 +\chardef\pxrr@evensp=1 +\chardef\pxrr@fullsize=1 +\newif\ifpxrr@ok +\newcount\pxrr@cnta +\newcount\pxrr@cntr +\newdimen\pxrr@dima +\newbox\pxrr@boxa +\newbox\pxrr@boxb +\newbox\pxrr@boxr +\chardef\pxrr@zero=0 +\def\pxrr@zeropt{0pt} +\def\pxrr@hfilx#1{% + \hskip\z@\@plus #1fil\relax +} +\let\pxrr@res\@empty +\def\pxrr@ifx#1{% + \ifx#1\expandafter\@firstoftwo + \else\expandafter\@secondoftwo + \fi +} +\def\pxrr@ifnum#1{% + \ifnum#1\expandafter\@firstoftwo + \else\expandafter\@secondoftwo + \fi +} +\def\pxrr@cslet#1{% + \expandafter\let\csname#1\endcsname +} +\def\pxrr@letcs#1#2{% + \expandafter\let\expandafter#1\csname#2\endcsname +} +\def\pxrr@csletcs#1#2{% + \expandafter\let\csname#1\expandafter\endcsname + \csname#2\endcsname +} +\def\pxrr@setok#1{% + #1{\pxrr@oktrue}{\pxrr@okfalse}% +} +\def\pxrr@appto#1#2{% + \expandafter\def\expandafter#1\expandafter{#1#2}% +} +\def\pxrr@nil{\noexpand\pxrr@nil} +\def\pxrr@end{\noexpand\pxrr@end} +\def\pxrr@without@macro@trace#1{% + \chardef\pxrr@tracingmacros=\tracingmacros + \tracingmacros\z@ + #1% + \tracingmacros\pxrr@tracingmacros +} +\def\pxrr@hbox#1{% + \hbox{% + \color@begingroup + #1% + \color@endgroup + }% +} +\def\pxrr@hbox@to#1#{% + \pxrr@hbox@to@a{#1}% +} +\def\pxrr@hbox@to@a#1#2{% + \hbox to#1{% + \color@begingroup + #2% + \color@endgroup + }% +} +\AtBeginDocument{% + \ifx\color@begingroup\relax + \ifx\color@endgroup\relax + \let\pxrr@hbox\hbox + \let\pxrr@hbox@to\hb@xt@ + \let\pxrr@takeout@any@protr\pxrr@takeout@any@protr@nocolor + \fi + \fi +} +\mathchardef\pxrr@invscale@ca=259 +\def\pxrr@invscale#1#2{% + \begingroup + \@tempdima=#1\relax + \@tempdimb#2\p@\relax + \@tempcnta\@tempdima + \multiply\@tempcnta\@cclvi + \divide\@tempcnta\@tempdimb + \multiply\@tempcnta\@cclvi + \@tempcntb\p@ + \divide\@tempcntb\@tempdimb + \advance\@tempcnta-\@tempcntb + \advance\@tempcnta-\tw@ + \@tempdimb\@tempcnta\@ne + \advance\@tempcnta\@tempcntb + \advance\@tempcnta\@tempcntb + \advance\@tempcnta\pxrr@invscale@ca + \@tempdimc\@tempcnta\@ne + \@whiledim\@tempdimb<\@tempdimc\do{% + \@tempcntb\@tempdimb + \advance\@tempcntb\@tempdimc + \advance\@tempcntb\@ne + \divide\@tempcntb\tw@ + \ifdim #2\@tempcntb>\@tempdima + \advance\@tempcntb\m@ne + \@tempdimc=\@tempcntb\@ne + \else + \@tempdimb=\@tempcntb\@ne + \fi}% + \xdef\pxrr@gtmpa{\the\@tempdimb}% + \endgroup + #1=\pxrr@gtmpa\relax +} +\def\pxrr@interpolate#1#2#3#4#5{% + \edef\pxrr@tempa{#1}% + \edef\pxrr@tempb{#2}% + \def\pxrr@tempd{#3}% + \setlength{\@tempdima}{#4}% + \edef\pxrr@tempc{(0,0)#5(*,*)}% + \expandafter\pxrr@interpolate@a\pxrr@tempc\@nil +} +\def\pxrr@interpolate@a(#1,#2)(#3,#4)(#5,#6){% + \if*#5% + \def\pxrr@tempc{\pxrr@interpolate@b{#1}{#2}{#3}{#4}}% + \else\ifdim\@tempdima<#3\pxrr@tempa + \def\pxrr@tempc{\pxrr@interpolate@b{#1}{#2}{#3}{#4}}% + \else + \def\pxrr@tempc{\pxrr@interpolate@a(#3,#4)(#5,#6)}% + \fi\fi + \pxrr@tempc +} +\def\pxrr@interpolate@b#1#2#3#4#5\@nil{% + \@tempdimb=-#1\pxrr@tempa + \advance\@tempdima\@tempdimb + \advance\@tempdimb#3\pxrr@tempa + \edef\pxrr@tempc{\strip@pt\@tempdimb}% + \pxrr@invscale\@tempdima\pxrr@tempc + \edef\pxrr@tempc{\strip@pt\@tempdima}% + \@tempdima=#4\pxrr@tempb + \@tempdimb=#2\pxrr@tempb + \advance\@tempdima-\@tempdimb + \@tempdima=\pxrr@tempc\@tempdima + \advance\@tempdima\@tempdimb + \pxrr@tempd=\@tempdima +} +\def\pxrr@decompose#1{% + \let\pxrr@res\@empty + \pxrr@cntr=\z@ + \pxrr@decompose@loopa#1\pxrr@end +} +\def\pxrr@decompose@loopa{% + \futurelet\pxrr@tempa\pxrr@decompose@loopb +} +\def\pxrr@decompose@loopb{% + \pxrr@ifx{\pxrr@tempa\pxrr@end}{% + \pxrr@appto\pxrr@res{\pxrr@post}% + }{% + \pxrr@setok{\pxrr@ifx{\pxrr@tempa\bgroup}}% + \pxrr@decompose@loopc + }% +} +\def\pxrr@decompose@loopc#1{% + \ifx\pxrr@res\@empty + \def\pxrr@res{\pxrr@pre}% + \else + \pxrr@appto\pxrr@res{\pxrr@inter}% + \fi + \ifpxrr@ok + \pxrr@appto\pxrr@res{{{#1}}}% + \else + \pxrr@appto\pxrr@res{{#1}}% + \fi + \advance\pxrr@cntr\@ne + \pxrr@decompose@loopa +} +\def\pxrr@decompbar#1{% + \let\pxrr@res\@empty + \pxrr@cntr=\z@ + \pxrr@decompbar@loopa\pxrr@nil#1|\pxrr@end|% +} +\def\pxrr@decompbar@loopa#1|{% + \expandafter\pxrr@decompbar@loopb\expandafter{\@gobble#1}% +} +\def\pxrr@decompbar@loopb#1{% + \pxrr@decompbar@loopc#1\relax\pxrr@nil{#1}% +} +\def\pxrr@decompbar@loopc#1#2\pxrr@nil#3{% + \pxrr@ifx{#1\pxrr@end}{% + \pxrr@appto\pxrr@res{\pxrr@post}% + }{% + \ifx\pxrr@res\@empty + \def\pxrr@res{\pxrr@pre}% + \else + \pxrr@appto\pxrr@res{\pxrr@inter}% + \fi + \pxrr@appto\pxrr@res{{#3}}% + \advance\pxrr@cntr\@ne + \pxrr@decompbar@loopa\pxrr@nil + }% +} +\def\pxrr@zip@list#1#2{% + \let\pxrr@res\@empty + \let\pxrr@post\relax + \let\pxrr@tempa#1\pxrr@appto\pxrr@tempa{{}}% + \let\pxrr@tempb#2\pxrr@appto\pxrr@tempb{{}}% + \pxrr@zip@list@loopa +} +\def\pxrr@zip@list@loopa{% + \expandafter\pxrr@zip@list@loopb\pxrr@tempa\pxrr@end +} +\def\pxrr@zip@list@loopb#1#2#3\pxrr@end{% + \pxrr@ifx{#1\relax}{% + \pxrr@zip@list@exit + }{% + \pxrr@appto\pxrr@res{#1{#2}}% + \def\pxrr@tempa{#3}% + \expandafter\pxrr@zip@list@loopc\pxrr@tempb\pxrr@end + }% +} +\def\pxrr@zip@list@loopc#1#2#3\pxrr@end{% + \pxrr@ifx{#1\relax}{% + \pxrr@interror{zip}% + \pxrr@appto\pxrr@res{{}}% + \pxrr@zip@list@exit + }{% + \pxrr@appto\pxrr@res{{#2}}% + \def\pxrr@tempb{#3}% + \pxrr@zip@list@loopa + }% +} +\def\pxrr@zip@list@exit{% + \pxrr@appto\pxrr@res{\pxrr@post}% +} +\def\pxrr@concat@list#1{% + \let\pxrr@res\@empty + \def\pxrr@pre##1{% + \pxrr@appto\pxrr@res{##1}% + }% + \let\pxrr@inter\pxrr@pre + \let\pxrr@post\relax + #1% +} +\def\pxrr@zip@single#1#2{% + \expandafter\pxrr@zip@single@a\expandafter#1#2\pxrr@end +} +\def\pxrr@zip@single@a#1{% + \expandafter\pxrr@zip@single@b#1\pxrr@end +} +\def\pxrr@zip@single@b#1\pxrr@end#2\pxrr@end{% + \def\pxrr@res{\pxrr@pre{#1}{#2}\pxrr@post}% +} +\def\pxrr@tzip@single#1#2#3{% + \expandafter\pxrr@tzip@single@a\expandafter#1\expandafter#2#3\pxrr@end +} +\def\pxrr@tzip@single@a#1#2{% + \expandafter\pxrr@tzip@single@b\expandafter#1#2\pxrr@end +} +\def\pxrr@tzip@single@b#1{% + \expandafter\pxrr@tzip@single@c#1\pxrr@end +} +\def\pxrr@tzip@single@c#1\pxrr@end#2\pxrr@end#3\pxrr@end{% + \def\pxrr@res{\pxrr@pre{#1}{#2}{#3}\pxrr@post}% +} +\let\pxrr@x@gtempa\@empty +\newif\ifpxrr@x@swa +\def\pxrr@ifprimitive#1{% + \edef\pxrr@x@tempa{\string#1}% + \edef\pxrr@x@tempb{\meaning#1}% + \ifx\pxrr@x@tempa\pxrr@x@tempb \expandafter\@firstoftwo + \else \expandafter\@secondoftwo + \fi +} +\pxrr@ifprimitive\kansuji{% + \pxrr@csletcs{ifpxrr@in@ptex}{iftrue}% +}{% + \pxrr@csletcs{ifpxrr@in@ptex}{iffalse}% +} +\pxrr@ifprimitive\enablecjktoken{% + \pxrr@csletcs{ifpxrr@in@uptex}{iftrue}% +}{% + \pxrr@csletcs{ifpxrr@in@uptex}{iffalse}% +} +\pxrr@ifprimitive\XeTeXrevision{% + \pxrr@csletcs{ifpxrr@in@xetex}{iftrue}% +}{% + \pxrr@csletcs{ifpxrr@in@xetex}{iffalse}% +} +\ifpxrr@in@xetex + \pxrr@csletcs{ifpxrr@in@unicode}{iftrue}% +\else\ifpxrr@in@uptex + \pxrr@csletcs{ifpxrr@in@unicode}{iftrue}% +\else + \pxrr@csletcs{ifpxrr@in@unicode}{iffalse}% +\fi\fi +\def\pxrr@jc#1{% + \pxrr@jc@a#1\pxrr@nil +} +\ifpxrr@in@unicode + \def\pxrr@jc@a#1:#2\pxrr@nil{% + "#2\space + } +\else\ifpxrr@in@ptex + \def\pxrr@jc@a#1:#2\pxrr@nil{% + \jis"#1\space\space + } +\else + \def\pxrr@jc@a#1:#2\pxrr@nil{% + `?\space + } +\fi\fi +\ifpxrr@in@uptex + \let\pxrr@jchardef\kchardef +\else + \let\pxrr@jchardef\chardef +\fi +\ifpxrr@in@ptex + \pxrr@csletcs{ifpxrr@in@tate}{iftdir} +\else + \pxrr@csletcs{ifpxrr@in@tate}{iffalse} +\fi +\def\pxrr@get@jchar@token#1#2{% + \begingroup + \kansujichar\@ne=#2\relax + \xdef\pxrr@x@gtempa{\kansuji\@ne}% + \endgroup + \let#1\pxrr@x@gtempa +} +\ifpxrr@in@unicode\else + \ifpxrr@in@ptex\else + \def\pxrr@get@jchar@token#1#2{% + \def#1{?}% + } + \fi +\fi +\pxrr@jchardef\pxrr@x@K=\pxrr@jc{306C:4E00} +\ifpxrr@in@ptex + \def\pxrr@get@iiskip#1{% + \pxrr@x@swafalse + \begingroup + \inhibitxspcode\pxrr@x@K\thr@@ + \kanjiskip\p@ + \setbox\z@\hbox{\noautospacing\pxrr@x@K\pxrr@x@K}% + \setbox\tw@\hbox{\pxrr@x@K\pxrr@x@K}% + \ifdim\wd\tw@>\wd\z@ + \aftergroup\pxrr@x@swatrue + \fi + \endgroup + \edef#1{% + \ifpxrr@x@swa \the\kanjiskip + \else \pxrr@zeropt + \fi + }% + } +\else + \def\pxrr@get@iiskip#1{% + \let#1\pxrr@zeropt + } +\fi +\ifpxrr@in@ptex + \def\pxrr@get@iaiskip#1{% + \pxrr@x@swafalse + \begingroup + \inhibitxspcode\pxrr@x@K\thr@@ \xspcode`X=\thr@@ + \xkanjiskip\p@ + \setbox\z@\hbox{\noautoxspacing\pxrr@x@K X}% + \setbox\tw@\hbox{\pxrr@x@K X}% + \ifdim\wd\tw@>\wd\z@ + \aftergroup\pxrr@x@swatrue + \fi + \endgroup + \edef#1{% + \ifpxrr@x@swa \the\xkanjiskip + \else \pxrr@zeropt + \fi + }% + } +\else + \def\pxrr@get@iaiskip#1{% + \let#1\pxrr@zeropt + } +\fi +\ifpxrr@in@ptex + \def\pxrr@get@zwidth#1{% + \@tempdima=1zw\relax + \edef#1{\the\@tempdima}% + } +\else + \def\pxrr@get@zwidth#1{% + \@tempdima=1em\relax + \edef#1{\the\@tempdima}% + } +\fi +\newif\ifpxrr@in@setup \pxrr@in@setupfalse +\newcommand*\rubysetup[1]{% + \pxrr@in@setuptrue + \pxrr@fatal@errorfalse + \pxrr@parse@option{#1}% + \ifpxrr@fatal@error\else + \pxrr@csletcs{ifpxrr@d@bprotr}{ifpxrr@bprotr}% + \pxrr@csletcs{ifpxrr@d@aprotr}{ifpxrr@aprotr}% + \let\pxrr@d@bintr\pxrr@bintr@ + \let\pxrr@d@aintr\pxrr@aintr@ + \let\pxrr@d@athead\pxrr@athead + \let\pxrr@d@mode\pxrr@mode + \let\pxrr@d@side\pxrr@side + \let\pxrr@d@evensp\pxrr@evensp + \let\pxrr@d@fullsize\pxrr@fullsize + \fi + \pxrr@in@setupfalse +} +\newcommand*\rubyfontsetup{} +\def\rubyfontsetup#{% + \def\pxrr@ruby@font +} +\newcommand*\rubybigintrusion[1]{% + \edef\pxrr@big@intr{#1}% +} +\newcommand*\rubysmallintrusion[1]{% + \edef\pxrr@small@intr{#1}% +} +\newcommand*\rubymaxmargin[1]{% + \edef\pxrr@maxmargin{#1}% +} +\newcommand*\rubyintergap[1]{% + \edef\pxrr@inter@gap{#1}% +} +\newcommand*\rubysizeratio[1]{% + \edef\pxrr@size@ratio{#1}% +} +\newcommand*\rubyusejghost{% + \pxrr@jghosttrue +} +\newcommand*\rubynousejghost{% + \pxrr@jghostfalse +} +\newcommand*\rubyuseaghost{% + \pxrr@aghosttrue +} +\newcommand*\rubynouseaghost{% + \pxrr@aghostfalse +} +\newcommand*\rubyadjustatlineedge{% + \pxrr@edge@adjusttrue +} +\newcommand*\rubynoadjustatlineedge{% + \pxrr@edge@adjustfalse +} +\newcommand*\rubybreakjukugo{% + \pxrr@break@jukugotrue +} +\newcommand*\rubynobreakjukugo{% + \pxrr@break@jukugofalse +} +\newcommand*\rubystretchprop[3]{% + \edef\pxrr@sprop@x{#1}% + \edef\pxrr@sprop@y{#2}% + \edef\pxrr@sprop@z{#3}% +} +\newcommand*\rubystretchprophead[2]{% + \edef\pxrr@sprop@hy{#1}% + \edef\pxrr@sprop@hz{#2}% +} +\newcommand*\rubystretchpropend[2]{% + \edef\pxrr@sprop@ex{#1}% + \edef\pxrr@sprop@ey{#2}% +} +\newcommand*\rubyuseextra[1]{% + \pxrr@cnta=#1\relax + \ifnum\pxrr@cnta=\z@ + \chardef\pxrr@extra\pxrr@cnta + \else + \pxrr@err@inv@value{\the\pxrr@cnta}% + \fi +} +\let\pxrr@bintr@\@empty +\let\pxrr@aintr@\@empty +\def\pxrr@doublebar{||} +\def\pxrr@parse@option#1{% + \edef\pxrr@tempa{#1}% + \ifx\pxrr@tempa\pxrr@doublebar + \def\pxrr@tempa{|-|}% + \fi + \pxrr@csletcs{ifpxrr@bprotr}{ifpxrr@d@bprotr}% + \pxrr@csletcs{ifpxrr@aprotr}{ifpxrr@d@aprotr}% + \let\pxrr@bintr@\pxrr@d@bintr + \let\pxrr@aintr@\pxrr@d@aintr + \let\pxrr@athead@\pxrr@d@athead + \let\pxrr@mode\pxrr@d@mode + \let\pxrr@side\pxrr@d@side + \let\pxrr@evensp\pxrr@d@evensp + \let\pxrr@fullsize\pxrr@d@fullsize + \let\pxrr@bscomp\relax + \let\pxrr@ascomp\relax + \pxrr@bnobrfalse + \pxrr@anobrfalse + \pxrr@bfintrfalse + \pxrr@afintrfalse + \def\pxrr@po@FS{bi}% + \expandafter\pxrr@parse@option@loop\pxrr@tempa @\pxrr@end +} +\def\pxrr@parse@option@loop#1{% +\ifpxrrDebug +\typeout{\pxrr@po@FS/#1[\@nameuse{pxrr@po@C@#1}]}% +\fi + \csname pxrr@po@PR@#1\endcsname + \expandafter\ifx\csname pxrr@po@C@#1\endcsname\relax + \let\pxrr@po@FS\relax + \else + \pxrr@letcs\pxrr@po@FS + {pxrr@po@TR@\pxrr@po@FS @\@nameuse{pxrr@po@C@#1}}% + \fi +\ifpxrrDebug +\typeout{->\pxrr@po@FS}% +\fi + \pxrr@ifx{\pxrr@po@FS\relax}{% + \pxrr@fatal@unx@letter{#1}% + \pxrr@parse@option@exit + }{% + \pxrr@parse@option@loop + }% +} +\def\pxrr@parse@option@exit#1\pxrr@end{% + \ifpxrr@in@setup\else + \ifpxrr@truby + \chardef\pxrr@side\tw@ + \fi + \pxrr@check@option + \@tempdima=\pxrr@ruby@zw\relax + \@tempdimb=\pxrr@or@zero\pxrr@bintr@\@tempdima + \edef\pxrr@bintr{\the\@tempdimb}% + \@tempdimb=\pxrr@or@zero\pxrr@aintr@\@tempdima + \edef\pxrr@aintr{\the\@tempdimb}% + \fi +} +\def\pxrr@or@zero#1{% + \ifx#1\@empty \pxrr@zero + \else #1% + \fi +} +\def\pxrr@po@C@@{F} +\@namedef{pxrr@po@C@|}{V} +\@namedef{pxrr@po@C@:}{S} +\@namedef{pxrr@po@C@.}{S} +\@namedef{pxrr@po@C@*}{S} +\@namedef{pxrr@po@C@!}{S} +\@namedef{pxrr@po@C@<}{B} +\@namedef{pxrr@po@C@(}{B} +\@namedef{pxrr@po@C@>}{A} +\@namedef{pxrr@po@C@)}{A} +\@namedef{pxrr@po@C@-}{M} +\def\pxrr@po@C@c{M} +\def\pxrr@po@C@h{M} +\def\pxrr@po@C@H{M} +\def\pxrr@po@C@m{M} +\def\pxrr@po@C@g{M} +\def\pxrr@po@C@j{M} +\def\pxrr@po@C@P{M} +\def\pxrr@po@C@S{M} +\def\pxrr@po@C@e{M} +\def\pxrr@po@C@E{M} +\def\pxrr@po@C@f{M} +\def\pxrr@po@C@F{M} +\def\pxrr@po@PR@@{% + \pxrr@parse@option@exit +} +\@namedef{pxrr@po@PR@|}{% + \csname pxrr@po@PRbar@\pxrr@po@FS\endcsname +} +\def\pxrr@po@PRbar@bi{% + \def\pxrr@bintr@{}\pxrr@bprotrtrue +} +\def\pxrr@po@PRbar@bb{% + \pxrr@bprotrfalse +} +\def\pxrr@po@PRbar@bs{% + \def\pxrr@aintr@{}\pxrr@aprotrtrue +} +\let\pxrr@po@PRbar@mi\pxrr@po@PRbar@bs +\let\pxrr@po@PRbar@as\pxrr@po@PRbar@bs +\let\pxrr@po@PRbar@ai\pxrr@po@PRbar@bs +\def\pxrr@po@PRbar@ab{% + \pxrr@aprotrfalse +} +\@namedef{pxrr@po@PR@:}{% + \csname pxrr@po@PRcolon@\pxrr@po@FS\endcsname +} +\def\pxrr@po@PRcolon@bi{% + \let\pxrr@bscomp=:\relax +} +\let\pxrr@po@PRcolon@bb\pxrr@po@PRcolon@bi +\let\pxrr@po@PRcolon@bs\pxrr@po@PRcolon@bi +\def\pxrr@po@PRcolon@mi{% + \let\pxrr@ascomp=:\relax +} +\let\pxrr@po@PRcolon@as\pxrr@po@PRcolon@mi +\@namedef{pxrr@po@PR@.}{% + \csname pxrr@po@PRdot@\pxrr@po@FS\endcsname +} +\def\pxrr@po@PRdot@bi{% + \let\pxrr@bscomp=.\relax +} +\let\pxrr@po@PRdot@bb\pxrr@po@PRdot@bi +\let\pxrr@po@PRdot@bs\pxrr@po@PRdot@bi +\def\pxrr@po@PRdot@mi{% + \let\pxrr@ascomp=.\relax +} +\let\pxrr@po@PRdot@as\pxrr@po@PRdot@mi +\@namedef{pxrr@po@PR@*}{% + \csname pxrr@po@PRstar@\pxrr@po@FS\endcsname +} +\def\pxrr@po@PRstar@bi{% + \pxrr@bnobrtrue +} +\let\pxrr@po@PRstar@bb\pxrr@po@PRstar@bi +\let\pxrr@po@PRstar@bs\pxrr@po@PRstar@bi +\def\pxrr@po@PRstar@mi{% + \pxrr@anobrtrue +} +\let\pxrr@po@PRstar@as\pxrr@po@PRstar@mi +\@namedef{pxrr@po@PR@!}{% + \csname pxrr@po@PRbang@\pxrr@po@FS\endcsname +} +\def\pxrr@po@PRbang@bi{% + \pxrr@bfintrtrue +} +\let\pxrr@po@PRbang@bb\pxrr@po@PRbang@bi +\let\pxrr@po@PRbang@bs\pxrr@po@PRbang@bi +\def\pxrr@po@PRbang@mi{% + \pxrr@afintrtrue +} +\let\pxrr@po@PRbang@as\pxrr@po@PRbang@mi +\@namedef{pxrr@po@PR@<}{% + \def\pxrr@bintr@{\pxrr@big@intr}\pxrr@bprotrtrue +} +\@namedef{pxrr@po@PR@(}{% + \def\pxrr@bintr@{\pxrr@small@intr}\pxrr@bprotrtrue +} +\@namedef{pxrr@po@PR@>}{% + \def\pxrr@aintr@{\pxrr@big@intr}\pxrr@aprotrtrue +} +\@namedef{pxrr@po@PR@)}{% + \def\pxrr@aintr@{\pxrr@small@intr}\pxrr@aprotrtrue +} +\def\pxrr@po@PR@c{% + \chardef\pxrr@athead\z@ +} +\def\pxrr@po@PR@h{% + \chardef\pxrr@athead\@ne +} +\def\pxrr@po@PR@H{% + \chardef\pxrr@athead\tw@ +} +\def\pxrr@po@PR@m{% + \let\pxrr@mode=m% +} +\def\pxrr@po@PR@g{% + \let\pxrr@mode=g% +} +\def\pxrr@po@PR@j{% + \let\pxrr@mode=j% +} +\def\pxrr@po@PR@P{% + \chardef\pxrr@side\z@ +} +\def\pxrr@po@PR@S{% + \chardef\pxrr@side\@ne +} +\def\pxrr@po@PR@E{% + \chardef\pxrr@evensp\z@ +} +\def\pxrr@po@PR@e{% + \chardef\pxrr@evensp\@ne +} +\def\pxrr@po@PR@F{% + \chardef\pxrr@fullsize\z@ +} +\def\pxrr@po@PR@f{% + \chardef\pxrr@fullsize\@ne +} +\def\pxrr@po@TR@bi@F{fi} +\def\pxrr@po@TR@bb@F{fi} +\def\pxrr@po@TR@bs@F{fi} +\def\pxrr@po@TR@mi@F{fi} +\def\pxrr@po@TR@as@F{fi} +\def\pxrr@po@TR@ai@F{fi} +\def\pxrr@po@TR@ab@F{fi} +\def\pxrr@po@TR@fi@F{fi} +\def\pxrr@po@TR@bi@V{bb} +\def\pxrr@po@TR@bb@V{bs} +\def\pxrr@po@TR@bs@V{ab} +\def\pxrr@po@TR@mi@V{ab} +\def\pxrr@po@TR@as@V{ab} +\def\pxrr@po@TR@ai@V{ab} +\def\pxrr@po@TR@ab@V{fi} +\def\pxrr@po@TR@bi@S{bs} +\def\pxrr@po@TR@bb@S{bs} +\def\pxrr@po@TR@bs@S{bs} +\def\pxrr@po@TR@mi@S{as} +\def\pxrr@po@TR@as@S{as} +\def\pxrr@po@TR@bi@B{bs} +\def\pxrr@po@TR@bi@M{mi} +\def\pxrr@po@TR@bb@M{mi} +\def\pxrr@po@TR@bs@M{mi} +\def\pxrr@po@TR@mi@M{mi} +\def\pxrr@po@TR@bi@A{fi} +\def\pxrr@po@TR@bb@A{fi} +\def\pxrr@po@TR@bs@A{fi} +\def\pxrr@po@TR@mi@A{fi} +\def\pxrr@po@TR@as@A{fi} +\def\pxrr@po@TR@ai@A{fi} +\def\pxrr@check@option{% + \ifpxrr@bprotr\else + \ifpxrr@aprotr\else + \pxrr@fatal@bad@no@protr + \fi + \fi + \pxrr@oktrue + \ifx\pxrr@bintr@\@empty\else + \pxrr@okfalse + \fi + \ifx\pxrr@aintr@\@empty\else + \pxrr@okfalse + \fi + \ifpxrr@ghost\else + \pxrr@oktrue + \fi + \ifpxrr@ok\else + \pxrr@fatal@bad@intr + \fi + \if g\pxrr@mode\else + \ifpxrr@abody + \let\pxrr@mode=g\relax + \fi + \ifnum\pxrr@side=\tw@ + \let\pxrr@mode=g\relax + \fi + \if g\pxrr@mode + \if g\pxrr@d@mode + \pxrr@warn@must@group + \fi + \fi + \fi + \ifnum\pxrr@athead>\z@ + \ifpxrr@in@tate\else + \pxrr@athead\z@ + \fi + \if g\pxrr@mode + \pxrr@athead\z@ + \fi + \ifnum\pxrr@athead=\z@ + \ifnum\pxrr@d@athead>\z@ + \pxrr@warn@bad@athead + \fi + \fi + \fi + \ifpxrr@abody + \chardef\pxrr@evensp\z@ + \fi + \if g\pxrr@mode\else + \chardef\pxrr@evensp\@ne + \fi +} +\let\pxrr@ruby@fsize\pxrr@zeropt +\let\pxrr@body@zw\pxrr@zeropt +\let\pxrr@ruby@zw\pxrr@zeropt +\let\pxrr@ruby@raise\pxrr@zeropt +\let\pxrr@ruby@lower\pxrr@zeropt +\def\pxrr@htratio{0} +\let\pxrr@iiskip\pxrr@zeropt +\let\pxrr@iaiskip\pxrr@zeropt +\def\pxrr@assign@fsize{% + \@tempdima=\f@size\p@ + \@tempdima\pxrr@size@ratio\@tempdima + \edef\pxrr@ruby@fsize{\the\@tempdima}% + \pxrr@get@zwidth\pxrr@body@zw + \begingroup + \pxrr@use@ruby@font + \pxrr@get@zwidth\pxrr@gtempa + \global\let\pxrr@gtempa\pxrr@gtempa + \endgroup + \let\pxrr@ruby@zw\pxrr@gtempa + \pxrr@get@iiskip\pxrr@iiskip + \pxrr@get@iaiskip\pxrr@iaiskip + \ifpxrr@in@tate + \let\pxrr@htratio\pxrr@thtratio + \else + \let\pxrr@htratio\pxrr@yhtratio + \fi + \@tempdima\pxrr@body@zw\relax + \@tempdima\pxrr@htratio\@tempdima + \@tempdimb\pxrr@ruby@zw\relax + \advance\@tempdimb-\pxrr@htratio\@tempdimb + \advance\@tempdima\@tempdimb + \@tempdimb\pxrr@body@zw\relax + \advance\@tempdima\pxrr@inter@gap\@tempdimb + \edef\pxrr@ruby@raise{\the\@tempdima}% + \@tempdima\pxrr@body@zw\relax + \advance\@tempdima-\pxrr@htratio\@tempdima + \@tempdimb\pxrr@ruby@zw\relax + \@tempdimb\pxrr@htratio\@tempdimb + \advance\@tempdima\@tempdimb + \@tempdimb\pxrr@body@zw\relax + \advance\@tempdima\pxrr@inter@gap\@tempdimb + \edef\pxrr@ruby@lower{\the\@tempdima}% +} +\def\pxrr@use@ruby@font{% + \pxrr@without@macro@trace{% + \let\rubyfontsize\pxrr@ruby@fsize + \fontsize{\pxrr@ruby@fsize}{\z@}\selectfont + \pxrr@ruby@font + }% +} +\chardef\pxrr@locate@inner=1 +\chardef\pxrr@locate@head=0 +\chardef\pxrr@locate@end=2 +\def\pxrr@evenspace#1#2#3#4#5{% + \setbox#2\pxrr@hbox{#5}\@tempdima\wd#2% + \edef\pxrr@natwd{\the\@tempdima}% + \pxrr@decompose{#5}% + \pxrr@evenspace@int{#1}{#2}{#3}{#4}% +} +\def\pxrr@evenspace@int#1#2#3#4{% + \pxrr@save@listproc + \ifcase#1% + \pxrr@evenspace@param\pxrr@zero\pxrr@sprop@hy\pxrr@sprop@hz + \or + \pxrr@evenspace@param\pxrr@sprop@x\pxrr@sprop@y\pxrr@sprop@z + \or + \pxrr@evenspace@param\pxrr@sprop@ex\pxrr@sprop@ey\pxrr@zero + \fi + \pxrr@dima=\pxrr@cntr\p@ + \advance\pxrr@dima-\p@ + \pxrr@dima=\pxrr@sprop@y@\pxrr@dima + \advance\pxrr@dima\pxrr@sprop@x@\p@ + \advance\pxrr@dima\pxrr@sprop@z@\p@ + \ifdim\pxrr@dima>\z@\else + \ifnum#1>\z@ + \let\pxrr@sprop@x@\@ne + \advance\pxrr@dima\p@ + \fi + \ifnum#1<\tw@ + \let\pxrr@sprop@z@\@ne + \advance\pxrr@dima\p@ + \fi + \fi + \edef\pxrr@tempa{\strip@pt\pxrr@dima}% +\ifpxrrDebug +\typeout{\number\pxrr@sprop@x@:\number\pxrr@sprop@z@:\pxrr@tempa}% +\fi + \def\pxrr@pre##1{\pxrr@hfilx\pxrr@sprop@x@ ##1}% + \def\pxrr@inter##1{\pxrr@hfilx\pxrr@sprop@y@ ##1}% + \def\pxrr@post{\pxrr@hfilx\pxrr@sprop@z@}% + \def\pxrr@makebox@res{% + \setbox#2=\pxrr@hbox@to#4{#3\pxrr@res}% + }% + \pxrr@makebox@res + \pxrr@dima\wd#2% + \advance\pxrr@dima-\pxrr@natwd\relax + \pxrr@invscale\pxrr@dima\pxrr@tempa + \@tempdima\pxrr@sprop@x@\pxrr@dima + \edef\pxrr@bspace{\the\@tempdima}% + \@tempdima\pxrr@sprop@z@\pxrr@dima + \edef\pxrr@aspace{\the\@tempdima}% + \pxrr@restore@listproc +\ifpxrrDebug +\typeout{\pxrr@bspace:\pxrr@aspace}% +\fi +} +\def\pxrr@evenspace@param#1#2#3{% + \let\pxrr@sprop@x@#1% + \let\pxrr@sprop@y@#2% + \let\pxrr@sprop@z@#3% +} +\def\pxrr@adjust@margin{% + \pxrr@save@listproc + \@tempdima\pxrr@body@zw\relax + \@tempdima\pxrr@maxmargin\@tempdima + \@tempswafalse + \def\pxrr@pre##1{\pxrr@hfilx\pxrr@sprop@x@ ##1}% + \def\pxrr@inter##1{\pxrr@hfilx\pxrr@sprop@y@ ##1}% + \def\pxrr@post{\pxrr@hfilx\pxrr@sprop@z@}% + \ifnum\pxrr@cntr>\@ne + \ifdim\pxrr@bspace>\@tempdima + \edef\pxrr@bspace{\the\@tempdima}% + \def\pxrr@pre##1{\hskip\pxrr@bspace\relax ##1}% + \@tempswatrue + \fi + \ifdim\pxrr@aspace>\@tempdima + \edef\pxrr@aspace{\the\@tempdima}% + \def\pxrr@post{\hskip\pxrr@aspace\relax}% + \@tempswatrue + \fi + \fi + \if@tempswa + \pxrr@makebox@res + \fi + \pxrr@restore@listproc +\ifpxrrDebug +\typeout{\pxrr@bspace:\pxrr@aspace}% +\fi +} +\def\pxrr@save@listproc{% + \let\pxrr@pre@save\pxrr@pre + \let\pxrr@inter@save\pxrr@inter + \let\pxrr@post@save\pxrr@post +} +\def\pxrr@restore@listproc{% + \let\pxrr@pre\pxrr@pre@save + \let\pxrr@inter\pxrr@inter@save + \let\pxrr@post\pxrr@post@save +} +\let\pxrr@trans@res\@empty +\def\pxrr@transform@kana#1{% + \let\pxrr@trans@res\@empty + \def\pxrr@transform@kana@end\pxrr@end{% + \let#1\pxrr@trans@res + }% + \expandafter\pxrr@transform@kana@loop@a#1\pxrr@end +} +\def\pxrr@transform@kana@loop@a{% + \futurelet\pxrr@tempa\pxrr@transform@kana@loop@b +} +\def\pxrr@transform@kana@loop@b{% + \ifx\pxrr@tempa\pxrr@end + \let\pxrr@tempb\pxrr@transform@kana@end + \else\ifx\pxrr@tempa\bgroup + \let\pxrr@tempb\pxrr@transform@kana@loop@c + \else\ifx\pxrr@tempa\@sptoken + \let\pxrr@tempb\pxrr@transform@kana@loop@d + \else + \let\pxrr@tempb\pxrr@transform@kana@loop@e + \fi\fi\fi + \pxrr@tempb +} +\def\pxrr@transform@kana@loop@c#1{% + \pxrr@appto\pxrr@trans@res{{#1}}% + \pxrr@transform@kana@loop@a +} +\expandafter\def\expandafter\pxrr@transform@kana@loop@d\space{% + \pxrr@appto\pxrr@trans@res{ }% + \pxrr@transform@kana@loop@a +} +\def\pxrr@transform@kana@loop@e#1{% + \expandafter\pxrr@transform@kana@loop@f\string#1\pxrr@nil#1% +} +\def\pxrr@transform@kana@loop@f#1#2\pxrr@nil#3{% + \@tempswafalse + \ifnum`#1>\@cclv + \begingroup\expandafter\expandafter\expandafter\endgroup + \expandafter\ifx\csname pxrr@nonsmall/#3\endcsname\relax\else + \@tempswatrue + \fi + \fi + \if@tempswa + \edef\pxrr@tempa{% + \noexpand\pxrr@appto\noexpand\pxrr@trans@res + {\csname pxrr@nonsmall/#3\endcsname}% + }% + \pxrr@tempa + \else + \pxrr@appto\pxrr@trans@res{#3}% + \fi + \pxrr@transform@kana@loop@a +} +\def\pxrr@assign@nonsmall#1/#2\pxrr@nil{% + \pxrr@get@jchar@token\pxrr@tempa{\pxrr@jc{#1}}% + \pxrr@get@jchar@token\pxrr@tempb{\pxrr@jc{#2}}% + \expandafter\edef\csname pxrr@nonsmall/\pxrr@tempa\endcsname + {\pxrr@tempb}% +} +\@tfor\pxrr@tempc:=% + {2421:3041/2422:3042}{2423:3043/2424:3044}% + {2425:3045/2426:3046}{2427:3047/2428:3048}% + {2429:3049/242A:304A}{2443:3063/2444:3064}% + {2463:3083/2464:3084}{2465:3085/2466:3086}% + {2467:3087/2468:3088}{246E:308E/246F:308F}% + {2521:30A1/2522:30A2}{2523:30A3/2524:30A4}% + {2525:30A5/2526:30A6}{2527:30A7/2528:30A8}% + {2529:30A9/252A:30AA}{2543:30C3/2544:30C4}% + {2563:30E3/2564:30E4}{2565:30E5/2566:30E6}% + {2567:30E7/2568:30E8}{256E:30EE/256F:30EF}% + \do{% + \expandafter\pxrr@assign@nonsmall\pxrr@tempc\pxrr@nil +} +\newif\ifpxrr@protr +\newif\ifpxrr@any@protr +\def\pxrr@epsilon{0.01pt} +\def\pxrr@compose@block{% + \let\pxrr@compose@block@do\pxrr@compose@oneside@block@do + \pxrr@compose@block@pre +} +\def\pxrr@compose@oneside@block@do#1#2#3{% + \setbox\pxrr@boxa\pxrr@hbox{#2}% + \setbox\pxrr@boxr\pxrr@hbox{% + \pxrr@use@ruby@font + #3% + }% + \@tempdima\wd\pxrr@boxr + \advance\@tempdima-\wd\pxrr@boxa + \ifdim\pxrr@epsilon<\@tempdima + \pxrr@protrtrue + \let\pxrr@locate@temp#1% + \ifnum\pxrr@athead>\@ne + \ifnum\pxrr@locate@temp=\pxrr@locate@inner + \let\pxrr@locate@temp\pxrr@locate@head + \fi + \fi + \pxrr@decompose{#2}% + \edef\pxrr@natwd{\the\wd\pxrr@boxa}% + \pxrr@evenspace@int\pxrr@locate@temp\pxrr@boxa\relax + {\wd\pxrr@boxr}% + \else\ifdim-\pxrr@epsilon>\@tempdima + \pxrr@protrfalse + \ifnum\pxrr@athead=\z@ + \pxrr@decompose{#3}% + \edef\pxrr@natwd{\the\wd\pxrr@boxr}% + \pxrr@evenspace@int{#1}\pxrr@boxr + \pxrr@use@ruby@font{\wd\pxrr@boxa}% + \pxrr@adjust@margin + \fi + \let\pxrr@bspace\pxrr@zeropt + \let\pxrr@aspace\pxrr@zeropt + \else + \pxrr@protrfalse + \let\pxrr@bspace\pxrr@zeropt + \let\pxrr@aspace\pxrr@zeropt + \fi\fi + \setbox\z@\hbox{% + \ifnum\pxrr@side=\z@ + \raise\pxrr@ruby@raise\box\pxrr@boxr + \else + \lower\pxrr@ruby@lower\box\pxrr@boxr + \fi + }% + \ht\z@\z@ \dp\z@\z@ + \@tempdima\wd\z@ + \setbox\pxrr@boxr\hbox{% + \box\z@ + \kern-\@tempdima + \box\pxrr@boxa + }% + \ifpxrr@protr + \pxrr@any@protrtrue + \fi +} +\def\pxrr@compose@twoside@block{% + \let\pxrr@compose@block@do\pxrr@compose@twoside@block@do + \pxrr@compose@block@pre +} +\def\pxrr@compose@twoside@block@do#1#2#3#4{% + \setbox\pxrr@boxa\pxrr@hbox{#2}% + \setbox\pxrr@boxr\pxrr@hbox{% + \pxrr@use@ruby@font + #3% + }% + \setbox\pxrr@boxb\pxrr@hbox{% + \pxrr@use@ruby@font + #4% + }% + \@tempdima\wd\pxrr@boxa + \ifdim\@tempdima<\wd\pxrr@boxr + \@tempdima\wd\pxrr@boxr + \fi + \ifdim\@tempdima<\wd\pxrr@boxb + \@tempdima\wd\pxrr@boxb + \fi + \edef\pxrr@maxwd{\the\@tempdima}% + \advance\@tempdima-\pxrr@epsilon\relax + \edef\pxrr@maxwdx{\the\@tempdima}% + \ifdim\pxrr@maxwdx>\wd\pxrr@boxr + \pxrr@decompose{#3}% + \edef\pxrr@natwd{\the\wd\pxrr@boxr}% + \pxrr@evenspace@int{#1}\pxrr@boxr + \pxrr@use@ruby@font{\pxrr@maxwd}% + \pxrr@adjust@margin + \fi + \ifdim\pxrr@maxwdx>\wd\pxrr@boxb + \pxrr@decompose{#4}% + \edef\pxrr@natwd{\the\wd\pxrr@boxb}% + \pxrr@evenspace@int{#1}\pxrr@boxb + \pxrr@use@ruby@font{\pxrr@maxwd}% + \pxrr@adjust@margin + \fi + \ifdim\pxrr@maxwdx>\wd\pxrr@boxa + \pxrr@decompose{#2}% + \edef\pxrr@natwd{\the\wd\pxrr@boxa}% + \pxrr@evenspace@int{#1}\pxrr@boxa\relax{\pxrr@maxwd}% + \else + \let\pxrr@bspace\pxrr@zeropt + \let\pxrr@aspace\pxrr@zeropt + \fi + \setbox\z@\hbox{% + \@tempdima\wd\pxrr@boxr + \raise\pxrr@ruby@raise\box\pxrr@boxr + \kern-\@tempdima + \lower\pxrr@ruby@lower\box\pxrr@boxb + }% + \ht\z@\z@ \dp\z@\z@ + \@tempdima\wd\z@ + \setbox\pxrr@boxr\hbox{% + \box\z@ + \kern-\@tempdima + \box\pxrr@boxa + }% +} +\def\pxrr@compose@block@pre{% + \pxrr@ifnum{\pxrr@fullsize>\z@}{% + \pxrr@compose@block@pre@a + }{% + \pxrr@compose@block@pre@c + }% +} +\def\pxrr@compose@block@pre@a#1#2#3{% + \def\pxrr@compose@block@tempa{#3}% + \pxrr@transform@kana\pxrr@compose@block@tempa + \expandafter\pxrr@compose@block@pre@b + \expandafter{\pxrr@compose@block@tempa}{#1}{#2}% +} +\def\pxrr@compose@block@pre@b#1#2#3{% + \pxrr@compose@block@pre@c{#2}{#3}{#1}% +} +\def\pxrr@compose@block@pre@c{% + \pxrr@ifnum{\pxrr@evensp=\z@}{% + \pxrr@compose@block@pre@d + }{% + \pxrr@compose@block@do + }% +} +\def\pxrr@compose@block@pre@d#1#2{% + \pxrr@compose@block@do{#1}{{#2}}% +} +\def\pxrr@add@protect#1{% + \expandafter\pxrr@add@protect@a + \csname\expandafter\@gobble\string#1\space\endcsname#1% +} +\def\pxrr@add@protect@a#1#2{% + \let#1=#2% + \def#2{\pxrr@check@protect\protect#1}% +} +\def\pxrr@check@protect{% + \ifx\protect\@typeset@protect + \expandafter\@gobble + \fi +} +\let\pxrr@body@input\@empty +\def\pxrr@prepare@fallback#1{% + \pxrr@fatal@errorfalse + \def\pxrr@body@input{#1}% +} +\def\pxrr@fallback{% + \pxrr@body@input +} +\def\pxrr@if@alive{% + \ifpxrr@fatal@error \expandafter\@gobble + \else \expandafter\@firstofone + \fi +} +\def\pxrr@end@kinsoku{0} +\def\pxrr@ruby@scan#1#2{% + \def\pxrr@tempc{% + \edef\pxrr@end@kinsoku{\the\pxrr@cntr}% + \pxrr@do@proc{#1}{#2}% + }% + \pxrr@check@kinsoku\pxrr@tempc +} +\def\pxrr@truby@scan#1#2#3{% + \def\pxrr@tempc{% + \edef\pxrr@end@kinsoku{\the\pxrr@cntr}% + \pxrr@do@proc{#1}{#2}{#3}% + }% + \pxrr@check@kinsoku\pxrr@tempc +} +\def\pxrr@check@kinsoku#1{% + \let\pxrr@tempb#1% + \futurelet\pxrr@tempa\pxrr@check@kinsoku@a +} +\def\pxrr@check@kinsoku@a{% + \pxrr@check@char\pxrr@tempa + \ifpxrr@abody\else + \ifnum\pxrr@cntr=\@ne + \pxrr@cntr\tw@ + \fi + \fi + \ifcase\pxrr@cntr + \pxrr@cntr\z@ + \expandafter\pxrr@tempb + \or + \pxrr@cntr\@MM + \expandafter\pxrr@tempb + \else + \expandafter\pxrr@check@kinsoku@b + \fi +} +\def\pxrr@check@kinsoku@b#1{% + \pxrr@check@kinsoku@c#1#1% +} +\def\pxrr@check@kinsoku@c#1{% + \pxrr@cntr\prebreakpenalty`#1\relax + \pxrr@tempb +} +\def\pxrr@tempa#1#2\pxrr@nil{% + \def\pxrr@check@char##1{% + \ifcat\noexpand##1\relax + \pxrr@cntr\z@ + \else\ifcat\noexpand##1\noexpand~% + \pxrr@cntr\z@ + \else\ifcat\noexpand##1A% + \pxrr@cntr\@ne + \else\ifcat\noexpand##10% + \pxrr@cntr\@ne + \else + \pxrr@cntr\z@ + \expandafter\pxrr@check@char@a\meaning##1#2\pxrr@nil + \fi\fi\fi\fi + }% + \def\pxrr@check@char@a##1#2##2\pxrr@nil{% + \ifcat @##1@% + \pxrr@cntr\tw@ + \fi + }% +} +\expandafter\pxrr@tempa\string\kanji\pxrr@nil +\let\pxrr@auto@penalty\z@ +\let\pxrr@auto@icspace\pxrr@zeropt +\let\pxrr@intr@amount\pxrr@zeropt +\def\pxrr@intrude@setauto@j{% + \ifpxrr@bnobr + \let\pxrr@auto@penalty\@MM + \let\pxrr@auto@icspace\pxrr@zeropt + \else + \let\pxrr@auto@penalty\z@ + \if :\pxrr@bscomp + \let\pxrr@auto@icspace\pxrr@iaiskip + \else\if .\pxrr@bscomp + \let\pxrr@auto@icspace\pxrr@zeropt + \else + \let\pxrr@auto@icspace\pxrr@iiskip + \fi\fi + \fi +} +\def\pxrr@intrude@setauto@a{% + \if :\pxrr@bscomp\else + \pxrr@bnobrtrue + \fi + \ifpxrr@bnobr + \let\pxrr@auto@penalty\@MM + \let\pxrr@auto@icspace\pxrr@zeropt + \else + \let\pxrr@auto@penalty\z@ + \let\pxrr@auto@icspace\pxrr@iaiskip + \fi +} +\def\pxrr@intrude@head{% + \ifpxrr@ghost\else + \let\pxrr@intr@amount\pxrr@bspace + \ifdim\pxrr@bintr<\pxrr@intr@amount\relax + \let\pxrr@intr@amount\pxrr@bintr + \fi + \ifpxrr@abody + \pxrr@intrude@setauto@a + \else + \pxrr@intrude@setauto@j + \fi + \ifpxrr@par@head + \ifpxrr@bfintr + \hskip-\pxrr@intr@amount\relax + \fi + \else + \penalty\pxrr@auto@penalty\relax + \hskip-\pxrr@intr@amount\relax + \hskip\pxrr@auto@icspace\relax + \fi + \fi +} +\def\pxrr@intrude@end{% + \ifpxrr@ghost\else + \let\pxrr@intr@amount\pxrr@aspace + \ifdim\pxrr@aintr<\pxrr@intr@amount\relax + \let\pxrr@intr@amount\pxrr@aintr + \fi + \ifpxrr@abody + \pxrr@intrude@setauto@a + \else + \pxrr@intrude@setauto@j + \fi + \ifnum\pxrr@auto@penalty=\z@ + \let\pxrr@auto@penalty\pxrr@end@kinsoku + \fi + \ifpxrr@afintr + \ifnum\pxrr@auto@penalty=\z@\else + \penalty\pxrr@auto@penalty\relax + \fi + \kern-\pxrr@intr@amount\relax + \hskip\pxrr@auto@icspace\relax + \ifnum\pxrr@auto@penalty=\z@\else + \penalty\@MM + \fi + \else + \@tempskipa-\pxrr@intr@amount\relax + \advance\@tempskipa\pxrr@auto@icspace\relax + \ifnum\pxrr@auto@penalty=\z@\else + \penalty\pxrr@auto@penalty\relax + \fi + \hskip\@tempskipa + \ifnum\pxrr@auto@penalty=\z@\else + \penalty\@MM + \fi + \fi + \fi +} +\AtBeginDocument{% + \providecommand*{\ruby}{\jruby}% +} +\newcommand*{\jruby}{% + \pxrr@jprologue + \pxrr@trubyfalse + \pxrr@ruby +} +\pxrr@add@protect\jruby +\newcommand*{\aruby}{% + \pxrr@aprologue + \pxrr@trubyfalse + \pxrr@ruby +} +\pxrr@add@protect\aruby +\newcommand*{\truby}{% + \pxrr@jprologue + \pxrr@trubytrue + \pxrr@ruby +} +\pxrr@add@protect\truby +\newcommand*{\atruby}{% + \pxrr@aprologue + \pxrr@trubytrue + \pxrr@ruby +} +\pxrr@add@protect\atruby +\newif\ifpxrr@truby +\let\pxrr@option\@empty +\let\pxrr@exoption\@empty +\let\pxrr@do@proc\@empty +\let\pxrr@do@scan\@empty +\def\pxrr@ruby{% + \@testopt\pxrr@ruby@a{}% +} +\def\pxrr@ruby@a[#1]{% + \def\pxrr@option{#1}% + \@testopt\pxrr@ruby@b{}% +} +\def\pxrr@ruby@b[#1]{% + \def\pxrr@exoption{#1}% + \ifpxrr@truby + \let\pxrr@do@proc\pxrr@truby@proc + \let\pxrr@do@scan\pxrr@truby@scan + \else + \let\pxrr@do@proc\pxrr@ruby@proc + \let\pxrr@do@scan\pxrr@ruby@scan + \fi + \pxrr@ruby@c +} +\def\pxrr@ruby@c{% + \ifpxrr@ghost + \expandafter\pxrr@do@proc + \else + \expandafter\pxrr@do@scan + \fi +} +\def\pxrr@ruby@proc#1#2{% + \pxrr@prepare@fallback{#1}% + \pxrr@assign@fsize + \pxrr@parse@option\pxrr@option + \pxrr@decompbar{#2}% + \let\pxrr@ruby@list\pxrr@res + \edef\pxrr@ruby@count{\the\pxrr@cntr}% + \pxrr@decompbar{#1}% + \let\pxrr@body@list\pxrr@res + \edef\pxrr@body@count{\the\pxrr@cntr}% +\ifpxrrDebug + \pxrr@debug@show@input +\fi + \pxrr@if@alive{% + \if g\pxrr@mode + \pxrr@ruby@check@g + \pxrr@if@alive{% + \ifnum\pxrr@body@count>\@ne + \pxrr@ruby@main@mg + \else + \pxrr@ruby@main@g + \fi + }% + \else + \pxrr@ruby@check@m + \pxrr@if@alive{\pxrr@ruby@main@m}% + \fi + }% + \pxrr@ruby@exit +} +\def\pxrr@truby@proc#1#2#3{% + \pxrr@prepare@fallback{#1}% + \pxrr@assign@fsize + \pxrr@parse@option\pxrr@option + \def\pxrr@all@input{{#1}{#2}{#3}}% +\ifpxrrDebug + \pxrr@debug@show@input +\fi + \pxrr@if@alive{% + \pxrr@ruby@check@tg + \pxrr@if@alive{\pxrr@ruby@main@tg}% + }% + \pxrr@ruby@exit +} +\def\pxrr@ruby@check@g{% + \ifnum\pxrr@body@count=\pxrr@ruby@count\relax + \ifnum\pxrr@body@count=\@ne\else + \ifpxrr@abody + \pxrr@fatal@bad@movable + \else\ifnum\pxrr@extra=\z@ + \pxrr@fatal@na@movable + \fi\fi + \fi + \else + \pxrr@fatal@bad@length\pxrr@body@count\pxrr@ruby@count + \fi +} +\def\pxrr@ruby@check@m{% + \ifnum\pxrr@body@count=\@ne + \let\pxrr@pre\pxrr@decompose + \let\pxrr@post\relax + \pxrr@body@list + \let\pxrr@body@list\pxrr@res + \edef\pxrr@body@count{\the\pxrr@cntr}% + \ifnum\pxrr@body@count=\pxrr@ruby@count\relax\else + \pxrr@fatal@bad@length\pxrr@body@count\pxrr@ruby@count + \fi + \else + \pxrr@fatal@bad@mono + \fi +} +\def\pxrr@ruby@check@tg{% +} +\newif\ifpxrr@par@head +\def\pxrr@check@par@head{% + \ifvmode + \pxrr@par@headtrue + \else + \pxrr@par@headfalse + \fi +} +\def\pxrr@if@last#1#2#3{% + \ifx#3\pxrr@post #1% + \else #2% + \fi + #3% +} +\def\pxrr@inter@mono{% + \hskip\pxrr@iiskip\relax +} +\def\pxrr@takeout@any@protr@nocolor{% + \ifpxrr@any@protr + \aftergroup\pxrr@any@protrtrue + \fi +} +\def\pxrr@takeout@any@protr{% + \ifpxrr@any@protr + \aftergroup\pxrr@takeout@any@protr@a + \fi +} +\def\pxrr@takeout@any@protr@a{% + \aftergroup\pxrr@any@protrtrue +} +\def\pxrr@ruby@main@m{% + \pxrr@zip@list\pxrr@body@list\pxrr@ruby@list + \let\pxrr@whole@list\pxrr@res + \pxrr@check@par@head + \pxrr@any@protrfalse +\ifpxrrDebug +\pxrr@debug@show@recomp +\fi + \let\pxrr@locate@head@\pxrr@locate@inner + \let\pxrr@locate@end@\pxrr@locate@inner + \let\pxrr@locate@sing@\pxrr@locate@inner + \ifpxrr@aprotr\else + \let\pxrr@locate@end@\pxrr@locate@end + \let\pxrr@locate@sing@\pxrr@locate@end + \fi + \ifpxrr@bprotr\else + \let\pxrr@locate@head@\pxrr@locate@head + \let\pxrr@locate@sing@\pxrr@locate@head + \fi + \def\pxrr@pre##1##2{% + \pxrr@if@last{% + \pxrr@compose@block\pxrr@locate@sing@{##1}{##2}% + \pxrr@intrude@head + \unhbox\pxrr@boxr + \pxrr@intrude@end + \pxrr@takeout@any@protr + }{% + \pxrr@compose@block\pxrr@locate@head@{##1}{##2}% + \pxrr@intrude@head + \unhbox\pxrr@boxr + }% + }% + \def\pxrr@inter##1##2{% + \pxrr@if@last{% + \pxrr@compose@block\pxrr@locate@end@{##1}{##2}% + \pxrr@inter@mono + \unhbox\pxrr@boxr + \pxrr@intrude@end + \pxrr@takeout@any@protr + }{% + \pxrr@compose@block\pxrr@locate@inner{##1}{##2}% + \pxrr@inter@mono + \unhbox\pxrr@boxr + }% + }% + \let\pxrr@post\@empty + \setbox\pxrr@boxr\pxrr@hbox{\pxrr@whole@list}% + \if j\pxrr@mode + \ifpxrr@any@protr + \pxrr@ruby@redo@j + \fi + \fi + \unhbox\pxrr@boxr +} +\def\pxrr@ruby@redo@j{% + \pxrr@concat@list\pxrr@body@list + \let\pxrr@body@list\pxrr@res + \pxrr@concat@list\pxrr@ruby@list + \let\pxrr@ruby@list\pxrr@res + \pxrr@zip@single\pxrr@body@list\pxrr@ruby@list + \let\pxrr@whole@list\pxrr@res +\ifpxrrDebug +\pxrr@debug@show@concat +\fi + \let\pxrr@locate@sing@\pxrr@locate@inner + \ifpxrr@aprotr\else + \let\pxrr@locate@sing@\pxrr@locate@end + \fi + \ifpxrr@bprotr\else + \let\pxrr@locate@sing@\pxrr@locate@head + \fi + \def\pxrr@pre##1##2{% + \pxrr@compose@block\pxrr@locate@sing@{##1}{##2}% + \pxrr@intrude@head + \unhbox\pxrr@boxr + \pxrr@intrude@end + }% + \let\pxrr@inter\@undefined + \let\pxrr@post\@empty + \setbox\pxrr@boxr\pxrr@hbox{\pxrr@whole@list}% +} +\def\pxrr@ruby@main@g{% + \pxrr@zip@list\pxrr@body@list\pxrr@ruby@list + \let\pxrr@whole@list\pxrr@res + \pxrr@check@par@head +\ifpxrrDebug +\pxrr@debug@show@recomp +\fi + \let\pxrr@locate@sing@\pxrr@locate@inner + \ifpxrr@aprotr\else + \let\pxrr@locate@sing@\pxrr@locate@end + \fi + \ifpxrr@bprotr\else + \let\pxrr@locate@sing@\pxrr@locate@head + \fi + \def\pxrr@pre##1##2{% + \pxrr@compose@block\pxrr@locate@sing@{##1}{##2}% + \pxrr@intrude@head + \unhbox\pxrr@boxr + \pxrr@intrude@end + }% + \let\pxrr@inter\@undefined + \let\pxrr@post\@empty + \pxrr@whole@list +} +\def\pxrr@ruby@main@tg{% + \pxrr@check@par@head + \let\pxrr@locate@sing@\pxrr@locate@inner + \ifpxrr@aprotr\else + \let\pxrr@locate@sing@\pxrr@locate@end + \fi + \ifpxrr@bprotr\else + \let\pxrr@locate@sing@\pxrr@locate@head + \fi + \expandafter\pxrr@compose@twoside@block\expandafter\pxrr@locate@sing@ + \pxrr@all@input + \pxrr@intrude@head + \unhbox\pxrr@boxr + \pxrr@intrude@end +} +\newif\ifpxrr@ghost +\pxrr@jchardef\pxrr@zspace=\pxrr@jc{2121:3000} +\def\pxrr@jprologue{% + \ifpxrr@jghost + \pxrr@zspace + \fi + \begingroup + \pxrr@abodyfalse + \pxrr@csletcs{ifpxrr@ghost}{ifpxrr@jghost}% + \ifpxrr@jghost + \setbox\pxrr@boxa\hbox{\pxrr@zspace}% + \kern-\wd\pxrr@boxa + \fi +} +\ifpxrr@aghost + \IfFileExists{t1lmr.fd}{% + \begingroup + \fontsize{2.5}{0}\usefont{T1}{lmr}{m}{n} + \endgroup + \pxrr@letcs\pxrr@aghostfont{T1/lmr/m/n/2.5}% + \chardef\pxrr@aghostchar=23 % compwordmark + \def\pxrr@aghost{{\pxrr@aghostfont\pxrr@aghostchar}}% + \xspcode\pxrr@aghostchar=3 % + }{%else + \oxrr@warn{Ghost embedding for \string\aruby\space + is disabled,\MessageBreak + since package lmodern is missing}% + \pxrr@aghostfalse + \let\pxrr@aghosttrue\relax + }% +\fi +\def\pxrr@aprologue{% + \ifpxrr@aghost + \pxrr@aghost + \fi + \begingroup + \pxrr@abodytrue + \pxrr@csletcs{ifpxrr@ghost}{ifpxrr@aghost}% +} +\def\pxrr@ruby@exit{% + \ifpxrr@fatal@error + \pxrr@fallback + \fi + \ifpxrr@abody + \expandafter\pxrr@aepilogue + \else + \expandafter\pxrr@jepilogue + \fi +} +\def\pxrr@jepilogue{% + \ifpxrr@jghost + \setbox\pxrr@boxa\hbox{\pxrr@zspace}% + \kern-\wd\pxrr@boxa + \fi + \endgroup + \ifpxrr@jghost + \pxrr@zspace + \fi +} +\def\pxrr@aepilogue{% + \endgroup + \ifpxrr@aghost + \pxrr@aghost + \fi +} +\def\pxrr@debug@show@input{% + \typeout{----\pxrr@pkgname\space input:^^J% + ifpxrr@abody = \meaning\ifpxrr@abody^^J% + ifpxrr@truby = \meaning\ifpxrr@truby^^J% + pxrr@ruby@fsize = \pxrr@ruby@fsize^^J% + pxrr@body@zw = \pxrr@body@zw^^J% + pxrr@ruby@zw = \pxrr@ruby@zw^^J% + pxrr@iiskip = \pxrr@iiskip^^J% + pxrr@iaiskip = \pxrr@iaiskip^^J% + pxrr@htratio = \pxrr@htratio^^J% + pxrr@ruby@raise = \pxrr@ruby@raise^^J% + pxrr@ruby@lower = \pxrr@ruby@lower^^J% + ifpxrr@bprotr = \meaning\ifpxrr@bprotr^^J% + ifpxrr@aprotr = \meaning\ifpxrr@aprotr^^J% + pxrr@side = \the\pxrr@side^^J% + pxrr@evensp = \the\pxrr@evensp^^J% + pxrr@fullsize = \the\pxrr@fullsize^^J% + pxrr@bscomp = \meaning\pxrr@bscomp^^J% + pxrr@ascomp = \meaning\pxrr@ascomp^^J% + ifpxrr@bnobr = \meaning\ifpxrr@bnobr^^J% + ifpxrr@anobr = \meaning\ifpxrr@anobr^^J% + ifpxrr@bfintr = \meaning\ifpxrr@bfintr^^J% + ifpxrr@afintr = \meaning\ifpxrr@afintr^^J% + pxrr@bintr = \pxrr@bintr^^J% + pxrr@aintr = \pxrr@aintr^^J% + pxrr@athead = \the\pxrr@athead^^J% + pxrr@mode = \meaning\pxrr@mode^^J% + pxrr@body@list = \meaning\pxrr@body@list^^J% + pxrr@body@count = \@nameuse{pxrr@body@count}^^J% + pxrr@ruby@list = \meaning\pxrr@ruby@list^^J% + pxrr@ruby@count = \@nameuse{pxrr@ruby@count}^^J% + pxrr@end@kinsoku = \pxrr@end@kinsoku^^J% + ---- + }% +} +\def\pxrr@debug@show@recomp{% + \typeout{----\pxrr@pkgname\space recomp:^^J% + pxrr@body@list = \meaning\pxrr@body@list^^J% + pxrr@body@count = \pxrr@body@count^^J% + pxrr@ruby@list = \meaning\pxrr@ruby@list^^J% + pxrr@ruby@count = \pxrr@ruby@count^^J% + pxrr@res = \meaning\pxrr@res^^J% + ---- + }% +} +\def\pxrr@debug@show@concat{% + \typeout{----\pxrr@pkgname\space concat:^^J% + pxrr@body@list = \meaning\pxrr@body@list^^J% + pxrr@ruby@list = \meaning\pxrr@ruby@list^^J% + pxrr@whole@list = \meaning\pxrr@whole@list^^J% + ---- + }% +} +\endinput +%% +%% End of file `pxrubrica.sty'. |