diff options
author | Karl Berry <karl@freefriends.org> | 2017-04-27 21:35:21 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2017-04-27 21:35:21 +0000 |
commit | 6165f44cf87ca75b6071efd3b3d171f9f7cf9f5f (patch) | |
tree | c4ac588e1ab0dd9ba8d00923fae646389c415ea0 | |
parent | 47a48398c30bb42ac7944d0f1481a436647d27b2 (diff) |
pxrubrica (27apr17)
git-svn-id: svn://tug.org/texlive/trunk@44082 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r-- | Master/texmf-dist/doc/platex/pxrubrica/README-ja.md | 8 | ||||
-rw-r--r-- | Master/texmf-dist/doc/platex/pxrubrica/README.md | 11 | ||||
-rw-r--r-- | Master/texmf-dist/doc/platex/pxrubrica/pxrubrica-en.pdf | bin | 52216 -> 52345 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/platex/pxrubrica/pxrubrica-en.tex | 4 | ||||
-rw-r--r-- | Master/texmf-dist/doc/platex/pxrubrica/pxrubrica.pdf | bin | 371210 -> 440838 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/platex/pxrubrica/sample/test-sample.pdf | bin | 0 -> 299469 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/platex/pxrubrica/sample/test-sample.tex | 136 | ||||
-rw-r--r-- | Master/texmf-dist/source/platex/pxrubrica/pxrubrica.dtx | 2096 | ||||
-rw-r--r-- | Master/texmf-dist/tex/platex/pxrubrica/pxrubrica.sty | 892 |
9 files changed, 3101 insertions, 46 deletions
diff --git a/Master/texmf-dist/doc/platex/pxrubrica/README-ja.md b/Master/texmf-dist/doc/platex/pxrubrica/README-ja.md index fb4d4a9657c..249c2581590 100644 --- a/Master/texmf-dist/doc/platex/pxrubrica/README-ja.md +++ b/Master/texmf-dist/doc/platex/pxrubrica/README-ja.md @@ -7,13 +7,15 @@ JIS 規格「JIS X 4051」および W3C 技術ノート「[日本語組版処理 で述べられているような、日本において一般的な様式に従ってルビを付ける 機能を提供する。 +1.3 版より、圏点出力機能が追加された。 + [日本語組版処理の要件]: <http://www.w3.org/TR/jlreq/ja/> ### 前提環境 * フォーマット: LaTeX * エンジン: pTeX/upTeX/LuaTeX/XeTeX - * DVI ウェア: pTeX 対応のもの + * DVI ウェア(DVI 出力時): pTeX 対応のもの ### 構成物 @@ -45,6 +47,10 @@ MITライセンスの下で配布される。 更新履歴 -------- + * Version 1.3 〈2017/04/27〉 + - 圏点出力機能(ルビ圏点同時付加を含む)。 + - 和文ゴースト処理の改良。 + - hyperref の PDF 文字列に対する対策。 * Version 1.2 〈2017/04/20〉 - 自動切換のモノルビ・熟語ルビ。 - 安全モード。 diff --git a/Master/texmf-dist/doc/platex/pxrubrica/README.md b/Master/texmf-dist/doc/platex/pxrubrica/README.md index f013d0ee34a..f826a14bcd0 100644 --- a/Master/texmf-dist/doc/platex/pxrubrica/README.md +++ b/Master/texmf-dist/doc/platex/pxrubrica/README.md @@ -8,13 +8,16 @@ follows the style conventional in Japanese typography, as described in the W3C technical note “Requirements for Japanese Text Layout” ([JLREQ]) and the JIS specification JIS X 4051. +Starting with version 1.3, this package also provides function to add +kenten (emphasis marks) to Japanese text. + [JLREQ]: <http://www.w3.org/TR/jlreq/> ### SYSTEM REQUIREMENTS * TeX format: LaTeX. - * TeX engine: pTeX and its derivatives. - * DVI driver: Anything that supports pTeX DVI. + * TeX engine: pTeX, upTeX, LuaTeX, XeTeX. + * DVI driver (in DVI output): Anything that supports pTeX DVI. ### CONTENT @@ -47,6 +50,10 @@ This package is distributed under the MIT License. Revision History ---------------- + * Version 1.3 〈2017/04/27〉 + - Kenten function. + - Improve Japanese-text ghost insertion. + - Support the use in PDF strings. * Version 1.2 〈2017/04/20〉 - Mono-ruby and jukugo-ruby with switching. - Safe mode. diff --git a/Master/texmf-dist/doc/platex/pxrubrica/pxrubrica-en.pdf b/Master/texmf-dist/doc/platex/pxrubrica/pxrubrica-en.pdf Binary files differindex 5c126debab3..5508115bfd2 100644 --- a/Master/texmf-dist/doc/platex/pxrubrica/pxrubrica-en.pdf +++ b/Master/texmf-dist/doc/platex/pxrubrica/pxrubrica-en.pdf diff --git a/Master/texmf-dist/doc/platex/pxrubrica/pxrubrica-en.tex b/Master/texmf-dist/doc/platex/pxrubrica/pxrubrica-en.tex index 53cb23a1686..3f4b244e1a5 100644 --- a/Master/texmf-dist/doc/platex/pxrubrica/pxrubrica-en.tex +++ b/Master/texmf-dist/doc/platex/pxrubrica/pxrubrica-en.tex @@ -8,8 +8,8 @@ \newcommand*{\Eg}{E.\,g.\mbox{}} \newcommand*{\eg}{e.\,g.\mbox{}} \newcommand*{\ie}{i.\,e.\mbox{}} -\newcommand*{\myfileversion}{1.2} -\newcommand*{\myfiledate}{2017/04/20} +\newcommand*{\myfileversion}{1.3} +\newcommand*{\myfiledate}{2017/04/27} \newsavebox{\myexample} \begin{document} diff --git a/Master/texmf-dist/doc/platex/pxrubrica/pxrubrica.pdf b/Master/texmf-dist/doc/platex/pxrubrica/pxrubrica.pdf Binary files differindex 10d6ea72fb1..ece8940db9b 100644 --- a/Master/texmf-dist/doc/platex/pxrubrica/pxrubrica.pdf +++ b/Master/texmf-dist/doc/platex/pxrubrica/pxrubrica.pdf diff --git a/Master/texmf-dist/doc/platex/pxrubrica/sample/test-sample.pdf b/Master/texmf-dist/doc/platex/pxrubrica/sample/test-sample.pdf Binary files differnew file mode 100644 index 00000000000..8c295a0915e --- /dev/null +++ b/Master/texmf-dist/doc/platex/pxrubrica/sample/test-sample.pdf diff --git a/Master/texmf-dist/doc/platex/pxrubrica/sample/test-sample.tex b/Master/texmf-dist/doc/platex/pxrubrica/sample/test-sample.tex new file mode 100644 index 00000000000..667848d4c76 --- /dev/null +++ b/Master/texmf-dist/doc/platex/pxrubrica/sample/test-sample.tex @@ -0,0 +1,136 @@ +\documentclass[autodetect-engine,dvi=dvipdfmx,ja=standard, + a4paper]{bxjsarticle} +\usepackage{setspace} +\usepackage{pxrubrica} +\newcommand*{\vb}{\symbol{`\|}} +\newcommand*{\Opt}[1]{\texttt{#1}} +\newcommand*{\PKN}[1]{\textsf{#1}} +\newsavebox{\myexample} +\rubysetup{f} +\begin{document} + +\title{\PKN{pxrubrica}パッケージサンプル} +\author{某ZR} +\date{コンパイル日付: \today} +\maketitle + +\section{サンプル} + +\subsection{基本的な用法} + +\begin{itemize} +\item モノルビ(\Opt{m}オプション):各漢字に一つのルビブロック\\ +例:\quad +\verb+\ruby[m]{鷹}{たか}+ → \ruby[m]{鷹}{たか}\quad +\verb+\ruby[m]{鶯}{うぐいす}+ → \ruby[m]{鶯}{うぐいす} +\item グループルビ(\Opt{m}オプション):漢字列全体に一つのルビブロック\\ +例:\quad +\verb+\ruby[g]{雲雀}{ひばり}+ → \ruby[g]{雲雀}{ひばり}\quad +\verb+\ruby[g]{不如帰}{ほととぎす}+ → \ruby[g]{不如帰}{ほととぎす} +\item 熟語ルビ(\Opt{j}オプション):各漢字にルビを対応させるが熟語として読む\\ +例:\quad +\verb+\ruby[j]{孔雀}{く|じゃく}+ → \ruby[j]{孔雀}{く|じゃく}\quad +\verb+\ruby[j]{七面鳥}{しち|めん|ちょう}+ → \ruby[j]{七面鳥}{しち|めん|ちょう} +\item ルビ文字列中の \verb+|+ は各漢字の読みの境界を示す。 +(孔=く、雀=じゃく)。 +グループルビでは不要である。 +\item 組版結果の比較: +\begin{quote}\begin{tabular}{ll@{\ }l@{\ }c*3{@{\quad}c}} +モノルビ & (\verb+\ruby[m]{小鳩}{こ|ばと}+) & → + & \ruby[m]{小鳩}{こ|ばと} + & \ruby[m]{鶺鴒}{せき|れい} + & \ruby[m]{雷鳥}{らい|ちょう} + & \ruby[m]{燕}{つばめ} +\\ +グループルビ & (\verb+\ruby[g]{小鳩}{こばと}+) & → + & \ruby[g]{小鳩}{こばと} + & \ruby[g]{鶺鴒}{せきれい} + & \ruby[g]{雷鳥}{らいちょう} + & \ruby[g]{燕}{つばめ} +\\ +熟語ルビ & (\verb+\ruby[j]{小鳩}{こ|ばと}+) & → + & \ruby[j]{小鳩}{こ|ばと} + & \ruby[j]{鶺鴒}{せき|れい} + & \ruby[j]{雷鳥}{らい|ちょう} + & \ruby[j]{燕}{つばめ} +\end{tabular}\end{quote} +熟語の各漢字とルビが対応する場合は、熟語ルビ(\Opt{j})を使い、 +そうでない(熟字訓の)場合はグループルビ(\Opt{g})を使うのが通例である。 +特に熟語の各漢字ごとの読みを明示したい場合は +モノルビ(\Opt{m})を使うとよい。 +なお、漢字一文字に対するルビの場合は、 +\Opt{m}、\Opt{g}、\Opt{j}の何れも同じ結果になる。 +\item オプションの既定値を \verb+\rubysetup+ 命令で設定できる。 +例えば、\verb+\rubysetup{g}\ruby{軍鶏}{しゃも}+ +は \verb+\ruby[g]{軍鶏}{しゃも}+ と等価になる。 +“既定値の既定値”は\Opt{|cjPeF|}である。 +\end{itemize} + +\subsection{進入・突出} + +\begin{itemize} +\item ルビの進入の制御: +\begin{center}\begin{tabular}{ll@{\ }l@{\ }c*2{@{\quad}c}} +進入無し & \verb+この\ruby[|-|]{鵲}{かささぎ}の+ & → + & この\ruby[|-|]{鵲}{かささぎ}の + & この\ruby[|-|]{鸛}{こうのとり}の + & この\ruby[|-|]{鵜}{う}の +\\ +進入量小 & \verb+この\ruby[(-)]{鵲}{かささぎ}の+ & → + & この\ruby[(-)]{鵲}{かささぎ}の + & この\ruby[(-)]{鸛}{こうのとり}の + & この\ruby[(-)]{鵜}{う}の +\\ +進入量大 & \verb+この\ruby[<->]{鵲}{かささぎ}の+ & → + & この\ruby[<->]{鵲}{かささぎ}の + & この\ruby[<->]{鸛}{こうのとり}の + & この\ruby[<->]{鵜}{う}の +\end{tabular}\end{center} +\item もし「ルビは仮名にはかけてよいが漢字はダメ」という場合は、 +“\verb+この\ruby[<-|]{鵲}{かささぎ}等+” +と書くと「この\ruby[<-|]{鵲}{かささぎ}等」の出力が得られる。 +\item 基本モード(\Opt{m}/\Opt{g}/\Opt{j})と進入を同時に指定したい場合は、 +オプション文字列を \Opt{|g|} や \Opt{|m>} のようにする。 +ここで、“\Opt{-}”は「基本モードは既定値を用いる」ことを意味する。 +\item 突出の制御: +オプション \Opt{||} で突出が抑止される。 +\begin{quote} +\begin{lrbox}{\myexample} +\small$\leftarrow$ \verb+\ruby[||->]{雀}{すずめ}+ +\end{lrbox} +\fbox{\parbox{.42\linewidth}{% +\ruby[||->]{雀}{すずめ}の… +\quad \usebox{\myexample}% +\rule{0pt}{12pt}\\ +インコの +}}\quad vs.\quad +\begin{lrbox}{\myexample} +\small$\leftarrow$ \verb+\ruby[|->]{雀}{すずめ}+ +\end{lrbox} +\fbox{\parbox{.42\linewidth}{% +\ruby[|->]{雀}{すずめ}の… +\quad \usebox{\myexample}% +\rule{0pt}{12pt}\\ +インコの +}} +\end{quote} +\end{itemize} + +\subsection{発展的な用法} + +\begin{itemize} +\item \verb+\aruby+:欧文に対してルビを付ける: +\par\noindent 例:\quad +\verb+\aruby{Get out}{ゲラウッ}!+ →\ + \aruby{Get out}{ゲラウッ}! +\item \verb+\rubyfontsetup+:ルビ出力のためのフォントを指定する。 +例えば、ゴシック体の漢字列に対して明朝体のルビを振りたい場合は、 +次のようにする: +\par\noindent +{\small +\verb+\rubyfontsetup{\mcfamily}この{\gtfamily \ruby[j]{明朝体}{みん|ちょう|たい}}+} +→\ +{\rubyfontsetup{\mcfamily}この{\gtfamily \ruby[j]{明朝体}{みん|ちょう|たい}}} +\end{itemize} + +\end{document} diff --git a/Master/texmf-dist/source/platex/pxrubrica/pxrubrica.dtx b/Master/texmf-dist/source/platex/pxrubrica/pxrubrica.dtx index 9a46020499d..33b036c5126 100644 --- a/Master/texmf-dist/source/platex/pxrubrica/pxrubrica.dtx +++ b/Master/texmf-dist/source/platex/pxrubrica/pxrubrica.dtx @@ -20,9 +20,9 @@ %<*driver> \ProvidesFile{pxrubrica.dtx} %</driver> - [2017/04/20 v1.2 PX Japanese-style ruby] + [2017/04/27 v1.3 PX Japanese-style ruby] %<*driver> -\documentclass{jsarticle} +\documentclass[uplatex]{jsarticle} \usepackage{doc} \addtolength{\textwidth}{-1in} \addtolength{\evensidemargin}{1in} @@ -68,6 +68,7 @@ % \setcounter{tocdepth}{3} % \tableofcontents % +%^^A------------------------------------ % \section{$B%Q%C%1!<%8FI9~(B} % % |\usepackage| $BL?Na$rMQ$$$FFI$_9~$`!#(B @@ -76,7 +77,8 @@ %\usepackage{pxrubrica} %\end{verbatim}\end{quote} % -% \section{$B4pK\5!G=(B} +%^^A------------------------------------ +% \section{$B%k%S5!G=(B} % % \subsection{$BMQ8l=8(B} % @@ -515,6 +517,252 @@ % % \end{itemize} % +%^^A------------------------------------ +% \section{$B7wE@5!G=(B} +% +% \subsection{$B7wE@MQL?Na(B} +% +% \begin{itemize} +% \item |\kenten[|\jmeta{$B%*%W%7%g%s(B}|]{|\jmeta{$B?FJ8;z(B}|}| +% +% $BOBJ8J8;zNs$N>eB&!J2#AH!K!?1&B&!J=DAH!K$K7wE@$rIU$9(B +% $B!J%*%W%7%g%s$G5UB&$K$b$G$-$k!K!#(B +% +% \jmeta{$B%*%W%7%g%s(B}$B$OJ#?t;XDj2DG=$G!"GSB>$J;XDj$,J;B8$7$?>l9g$O(B +% $B8e$N$b$N$,M-8z$K$J$k!#(B +% $B$^$?!">JN,$5$l$?;XDj$K$D$$$F$O(B |\kentensetup| $B$G;XDj$5$l$?(B +% $B4{DjCM$,MQ$$$i$l$k!#(B +% +% $B%*%W%7%g%s$K;XDj$G$-$kCM$O0J2<$NDL$j!#(B +% \begin{quote} +% \newcommand*\fro[1]{{\scriptsize($<$\,\textit{#1})}} +% \begin{tabular}[t]{l@{ }ll} +% \texttt{p} & \fro{primary} & $B<g%^!<%/(B\\ +% \texttt{s} & \fro{seconday} & $BI{%^!<%/(B\\ +% \texttt{f} & \fro{full} & $BA4J8;zIU2CM-8z(B\\ +% \texttt{F} & & $BA4J8;zIU2CL58z(B +% \end{tabular}\qquad +% \begin{tabular}[t]{l@{ }ll} +% \texttt{P} & \fro{primary} & $B>eB&G[CV(B\\ +% \texttt{S} & \fro{secondary} & $B2<B&G[CV(B +% \end{tabular} +% \end{quote} +% +% \begin{itemize} +% \item |p|$B!"(B|s| $B$OIU2C$9$k7wE@$N<oN`$rI=$9!#(B +% $B2#AH$G$O<g%^!<%/!J(B|p|$B!K$O9uCfE@!"I{%^!<%/!J(B|s|$B!K$O9u%4%^E@$,(B +% $BMQ$$$i$l!"=DAH$G$O5U$K<g%^!<%/$,9u%4%^E@!"I{%^!<%/$,9uCfE@$H$J$k!#(B +% $B$?$@$7@_DjL?Na$K$h$j7wE@$N<oN`$OJQ99$G$-$k!#(B +% \item |P| $B$O?FJ8;zNs$N>eB&!J2#AH!K!?1&B&!J=DAH!K!"(B +% |S| $B$O?FJ8;zNs$N2<B&!J2#AH!K!?:8B&!J=DAH!K$K7wE@$rIU$9;XDj!#(B +% \item |f| $B;XDj;~$O!"?FJ8;zNs$K4^$^$l$k!HDL>oJ8;z!I$NA4$F$K7wE@$rIU2C$9$k!#(B +% |F| $B;XDj;~$O!"LsJ*$G$"$k!HDL>oJ8;z!I$K$O7wE@$rIU2C$7$J$$!#(B +% \end{itemize} +% +% \end{itemize} +% +% \subsection{$B7wE@L?Na$N?FJ8;zNs(B} +% +% $B7wE@IU2C$N=hM}$G$O?FJ8;zNs$rJ8;zKh$KJ,2r$9$kI,MW$,$"$k!#(B +% $B$3$N$?$a!"7wE@L?Na$N?FJ8;zNs$O0lDj$N5,B'$K=>$C$F(B +% $B=q$+$l$kI,MW$,$"$k!#(B +% +% $B7wE@L?Na$N?FJ8;zNs$K$O0J2<$N$b$N$r4^$a$k$3$H$,$G$-$k!#(B +% +% \begin{itemize} +% \item $BDL>oJ8;z(B\Means {\LaTeX}$B$NL?Na$dFC<lJ8;z$d2$J86uGr$G$J$$!"(B +% $B2$J8$^$?$OOBJ8$NJ8;z$r;X$9!#(B +% $BDL>oJ8;z$K$O0l$D$N7wE@$,IU2C$5$l$k!#(B +% \begin{itemize} +% \item |F| $B%*%W%7%g%s$r;XDj$7$?>l9g!"LsJ*!J6gFIE@Ey!K$NJ8;z$K$O(B +% $B7wE@$,IU2C$5$l$J$$!#(B +% \item $B2$J8J8;z$K7wE@$rIU$1$?>l9g!"$=$NJ8;z$OAHHG>e(B +% $B!HOBJ8J8;z$N$h$&$K!I?6Iq$&!#(B +% \end{itemize} +% \item {\LaTeX}$B$NL?Na$*$h$S2$J86uGr(B\Means $B$3$l$i$K$O(B +% $B7wE@$,IU2C$5$l$J$$!#(B +% \begin{itemize} +% \item $B<g$K(B |\,| $B$d(B |\quad| $B$N$h$&$J6uGrMQ$NL?Na$N;HMQ$r(B +% $B0U?^$7$F$$$k!#(B +% \item |\hspace{1zw}| $B$N$h$&$J0z?t$r<h$kL?Na$r$=$N$^$^=q$/$3$H$O(B +% $B$G$-$J$$!#(B +% $B$3$N>l9g$O!"0J9_$K<($92?$l$+$N=q<0$rMxMQ$9$kI,MW$,$"$k!#(B +% \footnote{$BA43Q6uGr!J(B\verb|\hspace{1zw}|$B!K$dOB2$J84V6uGr(B +% $B!J(B\verb|\hspace{\kanjiskip}|$B!K$r=PNO$9$k@lMQ$N%^%/%m$rMQ0U$7$F(B +% $B$*$/$HJXMx$+$b$7$l$J$$!#(B} +% \end{itemize} +% \item $B%0%k!<%W(B\Means $B$9$J$o$A!"(B|{ }| $B$K0O$^$l$?G$0U$N%F%-%9%H!#(B +% $B%k%SL?Na$N%0%k!<%W$HF1MM$K!"0l$D$N!TJ8;z!U$H$7$F07$o$l!"(B +% $BA4BN$KBP$7$F0l$D$N7wE@$,IU2C$5$l$k!#(B +% \begin{itemize} +% \item \PKN{japanese-otf}$B%Q%C%1!<%8$N(B |\CID| $BL?Na$N$h$&$J!"(B +% $B!VFC<l$JOBJ8J8;z$r=PNO$9$kL?Na!W$N;HMQ$r0U?^$7$F$$$k!#(B +% \end{itemize} +% \item |\kspan{|\jmeta{$B%F%-%9%H(B}|}|\Means $B$3$l$O!"(B +% $B=PNO$5$l$k%F%-%9%H$NI}$K1~$8$?8D?t$N7wE@$,IU2C$5$l$k!#(B +% \begin{itemize} +% \item $BNc$($P!"!H$/$N;zE@!I$K7wE@$rIU$9>l9g$K;H$($k!#(B +% \item $B$"$k$$$O!"!J>/!9<jH4$-$G$"$k$,(B +% \footnote{$BK\Mh$O!"(B\verb|\textgt| $B$NCf$G2~$a$F(B \verb|\kenten| +% $B$r;H$&$Y$-$G$"$k!#(B}% +% $B!K(B|\kenten{$B$3$N(B\kspan{\textgt{$BJ8;z(B}}$B$@(B}| $B$_$?$$$J;H$$J}$b(B +% $B9M$($i$l$k!#(B +% \end{itemize} +% \item |\kspan*{|\jmeta{$B%F%-%9%H(B}|}|\Means $B$3$l$O(B +% $B7wE@$rIU$5$:$K%F%-%9%H$r$=$N$^$^=PNO$9$k!#(B +% \item $B%k%SL?Na!J(B|\ruby| $BEy!K(B\Means $BNc$($P(B +%\begin{quote}\begin{verbatim} +%\kenten{$B$3$l$,(B\ruby[|j|]{$B7wE@(B}{$B$1$s(B|$B$F$s(B}$B$G$9(B}$B!#(B +%\end{verbatim}\end{quote} +% $B$N$h$&$K!"%k%SL?Na$O$=$N$^$^=q$/$3$H$,$G$-$k!#(B +% \begin{itemize} +% \item |\kentenrubycombination| $B$N@_Dj$K$h$C$F$O!"%k%S$H7wE@$NN>J}$,(B +% $BIU2C$5$l$k!#(B +% \item $B<BAu>e$N@)8B(B +% \footnote{$B7wE@L?Na$O>o$K%4!<%9%H=hM}$rH<$&$?$a!"@h=R$N(B +% $B!V%4!<%9%H=hM}$H?JF~$O6&B8$7$J$$!W$H$$$&@)8B$K0z$C$+$+$k$N$G$"$k!#(B}% +% $B$N$?$a!"7wE@L?Na$N@hF,$K%k%SL?Na$,$"$k>l9g!"(B +% $B%k%S$NA0B&$N?JF~$,L58z$K$J$k!#(B +% $BF1MM$K!"7wE@L?Na$NKvHx$K%k%SL?Na$,$"$k>l9g!"(B +% $B%k%S$N8eB&$N?JF~$,L58z$K$J$k!#(B +% \item $B7wE@L?NaCf$N%k%S$N=hM}$ODL>o$N>l9g$HHf$Y$F!HJ#;(!I$G$"$k$?$a!"(B +% $B<+F0E*$J6XB'=hM}$,F/$+$J$$2DG=@-$,9b$$!#(B +% $B=>$C$F!"I,MW$K1~$8$FJd=u@_Dj$GJ,3d6X;_!J(B|*|$B!K$r;XDj$9$kI,MW$,$"$k!#(B +% \item $B5U$K%k%SL?Na$NF~NO$K7wE@L?Na$r$=$N$^$^=q$/$3$H$O$G$-$J$$!#(B +%\begin{quote}\begin{verbatim} +%\ruby[|j|]{\kenten{$B7wE@(B}}{$B$1$s(B|$B$F$s(B}% $BIT2D(B +%\end{verbatim}\end{quote} +% |{ }| $B$G0O$C$?!TJ8;z!U$NCf$G$O;H$($k$,!"$3$N>l9g$OF1;~IU2C$H$O(B +% $B8+$J$5$l$:!"FHN)$KF0:n$9$k$3$H$K$J$k!#(B +% \end{itemize} +% \end{itemize} +% +% \subsection{$B%4!<%9%H=hM}(B} +% +% $B7wE@=PNO$G$O%k%S$H0[$J$j?JF~$N=hM}$,ITMW$G$"$k!#(B +% $B$3$N$?$a!"8=>u$G$O!"7wE@L?Na$K$D$$$F$O(B +% \textgt{$B>o$K(B}$BOBJ8%4!<%9%H=hM}$rE,MQ$9$k!#(B +% +% \Note $BHsI8=`$NOBJ8%a%H%j%C%/!J(BJFM$B!K$,;H$o$l$F$$$kEy$NM}M3$G!"(B +% $BOBJ8%4!<%9%H=hM}$,@5>o$K5!G=$7$J$$>l9g$,B8:_$9$k!#(B +% $B$3$N$?$a!">-MhE*$K!"7wE@L?Na$K$D$$$F$bOBJ8%4!<%9%H=hM}$r(B +% $B9T$o$J$$!J%k%SL?Na$HF1MM$NJd=u@_Dj$rE,MQ$9$k!K@_Dj$r(B +% $BMQ0U$9$kM=Dj$G$"$k!#(B +% +% \subsection{$B%Q%i%a%?@_DjL?Na(B} +% +% \begin{itemize} +% +% \item |\kentensetup{|\jmeta{$B%*%W%7%g%s(B}|}| +% +% $B%*%W%7%g%s$N4{DjCM@_Dj!#(B +% $B!N4{Dj(B = \texttt{pPF}$B!O(B +% +% \item |\kentenmarkinyoko{|\jmeta{$BL>A0$^$?$O%F%-%9%H(B}|}| +% +% $B2#AH;~$N<g%^!<%/!J(B|p| $B;XDj;~!K$H$7$F;H$o$l$k7wE@$r;XDj$9$k!#(B +% $B!N4{Dj(B = |bullet*|$B!O(B +% +% $B%Q%C%1!<%8$GM=$aMQ0U$5$l$F$$$k7wE@<oJL$K$D$$$F$OL>A0$G;XDj$G$-$k!#(B +% \begin{quote} +% \newcommand*\Us[1]{\symbol{"#1}} +% \newcommand*\Ucomp{{\small \<$B!J9g@.!K(B\<}} +% \newcommand*\U[1]{\texttt{#1}} +% \begin{tabular}[t]{ll@{ }ll} +% \texttt{bullet*} & {$B!&(B} & \Ucomp & $B9uCfE@(B\\ +% \texttt{bullet} & {$B!&(B} & \U{2022*}& $B9uCfE@(B\\ +% \texttt{Bullet} & \Us{25E6} & \U{25E6*}& $BGrCfE@(B\\ +% \texttt{sesame*} & \Us{FE45} & \Ucomp & $B9u%4%^E@(B\\ +% \texttt{sesame} & \Us{FE45} & \U{FE45*}& $B9u%4%^E@(B\\ +% \texttt{Sesame} & \Us{FE46} & \U{FE46*}& $BGr%4%^E@(B +% \end{tabular}\qquad +% \begin{tabular}[t]{ll@{ }ll} +% \texttt{triangle} & \Us{25B2} & \U{25B2} & $B9u;03Q(B\\ +% \texttt{Triangle} & \Us{25B3} & \U{25B3} & $BGr;03Q(B\\ +% \texttt{circle} & \Us{25CF} & \U{25CF} & $B9u4](B\\ +% \texttt{Circle} & \Us{25CB} & \U{25CB} & $BGr4](B\\ +% \texttt{bullseye} & \Us{25CE} & \U{25CE} & $BFs=E4](B\\ +% \texttt{fisheye} & \Us{25C9} & \U{25C9*}& $B<X$NL\E@(B +% \end{tabular} +% \end{quote} +% \begin{itemize} +% \item $B$3$l$i$N7wE@<oJL$N$&$A!"(B +% |bullet*| $B$OCf9u!H(B{$B!&(B}$B!I!J(BU+30FB$B!K!"(B +% |sesame*| $B$OFIE@!H(B{$B!"(B}$B!I!J(BU+3001$B!K$N(B +% $B;z7A$r2C9)$7$?$b$N$rMxMQ$9$k!#(B +% $B$3$l$i$O$I$s$JF|K\8l%U%)%s%H$G$b%5%]!<%H$5$l$F$$$k$N$G!"(B +% $B3N<B$K;HMQ$G$-$k!#(B +% \item $B$=$l0J30$N7wE@<oJL$O!"5-:\$NJ8;z%3!<%I$r$b$D(B +% Unicode$BJ8;z$r=PNO$9$k!#(B +% $B;HMQ$9$k%U%)%s%H$K$h$C$F$O!";z7A$r;}$C$F$$$J$$$?$a2?$b=PNO$5$l$J$$!"(B +% $B$"$k$$$O;z7A$,A43QI}$G$J$$$?$a@5>o$K=PNO$5$l$J$$!"(B +% $B$H$$$&2DG=@-$,$"$k!#(B +% \item $BJ8;z%3!<%ICM$K(B |*| $B$rIU$1$?$b$N$O!"$=$NJ8;z$,(B +% JIS~X~0208$B$K$J$$$3$H$rI=$9!#(B +% {\pLaTeX}$B$G$3$l$i$N7wE@<oJL$rMxMQ$9$k$?$a$K$O(B +% \PKN{japanese-otf}$B%Q%C%1!<%8$rFI$_9~$`I,MW$,$"$k!#(B +% \end{itemize} +% +% $B$"$k$$$O!"L>A0$NBe$o$j$KG$0U$N(B{\LaTeX}$B$N%F%-%9%H$r=q$/$3$H$,$G$-$k!#(B +% \footnote{$B$?$@$7!"0z?t$N@hF,$NJ8;z$,(BASCII$B1Q;z$G$"$k>l9g$O(B +% $BL>A0$N;XDj$H8+$J$5$l$k$?$a!"%F%-%9%H$H$7$F07$$$?$$>l9g$O(B +% $BE,59(B \verb|{ }| $B$rJd$&Ey$NA<CV$,I,MW$G$"$k!#(B}% +%\begin{quote}\begin{verbatim} +%\kentenmarkinyoko{$B"((B} +%\end{verbatim}\end{quote} +% +% \item |\kentensubmarkinyoko{|\jmeta{$BL>A0$^$?$O%F%-%9%H(B}|}| +% +% $B2#AH;~$NI{%^!<%/!J(B|s| $B;XDj;~!K$H$7$F;H$o$l$k7wE@$r;XDj$9$k!#(B +% $B!N4{Dj(B = |sesame*|$B!O(B +% +% \item |\kentenmarkintate{|\jmeta{$BL>A0$^$?$O%F%-%9%H(B}|}| +% +% $B=DAH;~$N<g%^!<%/!J(B|p| $B;XDj;~!K$H$7$F;H$o$l$k7wE@$r;XDj$9$k!#(B +% $B!N4{Dj(B = |sesame*|$B!O(B +% +% \item |\kentensubmarkintate{|\jmeta{$BL>A0$^$?$O%F%-%9%H(B}|}| +% +% $B=DAH;~$NI{%^!<%/!J(B|s| $B;XDj;~!K$H$7$F;H$o$l$k7wE@$r;XDj$9$k!#(B +% $B!N4{Dj(B = |bullet*|$B!O(B +% +% \item |\kentenfontsetup{|\jmeta{$BL?Na(B}|}| +% +% $B7wE@MQ$N%U%)%s%H@ZBXL?Na$r@_Dj$9$k!#(B +% +% \item |\kentenintergap{|\jmeta{$B<B?t(B}|}| +% +% $B7wE@$H?FJ8;z$N4V$N6u$-!J?FJ8;zA43QC10L!K!#(B +% $B!N4{Dj(B = 0$B!O(B +% +% \item |\kentensizeratio{|\jmeta{$B<B?t(B}|}| +% +% $B7wE@%5%$%:$N?FJ8;z%5%$%:$KBP$9$k3d9g!#(B +% $B!N4{Dj(B = 0.5$B!O(B +% +% \end{itemize} +% +% $B7wE@$H%k%S$NF1;~IU2C$K4X$9$k@_Dj!#(B +% +% \begin{itemize} +% +% \item |\kentenrubycombination{|\jmeta{$BCM(B}|}| +% $B7wE@L?Na$N?FJ8;zCf$G%k%SL?Na$,;H$o$l$?;~$N5sF0$r;XDj$9$k!#(B +% $B!N4{Dj(B = |both|$B!O(B +% \begin{itemize} +% \item |ruby|$B!'(B $B%k%S$N$_$r=PNO$9$k!#(B +% \item |both|$B!'(B $B%k%S$N30B&$K7wE@$r=PNO$9$k!#(B +% \end{itemize} +% +% \item |\kentenrubyintergap{|\jmeta{$B<B?t(B}|}| +% +% $B7wE@$H%k%S$,F1$8B&$KIU$$$?;~$N4V$N6u$-!J?FJ8;zA43QC10L!K!#(B +% $B!N4{Dj(B = 0$B!O(B +% +% \end{itemize} +% +%^^A------------------------------------ +%\iffalse % \section{$B>-Mh$N3HD%5!G=(B\<$B!JL$<BAu!K(B} % % $B!J$3$N@a$G$O!"$^$@<BAu$5$l$F$$$J$$$,!"(B @@ -576,10 +824,15 @@ % $B!N4{Dj(B = $B5v$5$J$$!O(B % % \end{itemize} -% +%\fi +%^^A======================================================== +% \StopEventually +% \newpage % \setlength{\parindent}{0pt} +% \newcommand*{\cs}[1]{\texttt{\symbol{`\\}#1}} % -% \section{$B<BAu(B} +%^^A------------------------------------ +% \section{$B<BAu!J%k%S4XO"!K(B} % % \subsection{$BA0Ds%Q%C%1!<%8(B} % @@ -1046,7 +1299,11 @@ % \end{macrocode} % \end{macro} % -% \subsubsection{$B%k%S8F=P;~$N@_Dj(B} +% \subsubsection{$B8F=P;~%Q%i%a%?!&JQ?t(B} +% +% $B0lHLE*$K!"FCDj$N%k%S!&7wE@L?Na$N8F=P$K8GM-$G$"$k(B +% $B!J$D$^$j$=$NFbB&$K%M%9%H$5$l$?%k%S!&7wE@L?Na$K7Q>5$9$Y$-$G$J$$!K(B +% $B%Q%i%a%?$O!"8F=P;~$NCM$rJL$KJ];}$7$F$*$/$Y$-$G$"$k!#(B % % \begin{macro}{\ifpxrr@bprotr} % \begin{macro}{\ifpxrr@aprotr} @@ -1196,7 +1453,20 @@ % \end{macrocode} % \end{macro} % -% \subsection{$BJQ?t(B} +% \begin{macro}{\pxrr@c@ruby@font} +% \begin{macro}{\pxrr@c@size@ratio} +% \begin{macro}{\pxrr@c@inter@gap} +% $B0J2<$O!H%*%W%7%g%s$G;XDj$9$k!I0J30$N%Q%i%a%?$KBP1~$9$k$b$N!#(B +% \begin{macrocode} +\let\pxrr@c@ruby@font\@undefined +\let\pxrr@c@size@ratio\@undefined +\let\pxrr@c@inter@gap\@undefined +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \subsection{$B$=$NB>$NJQ?t(B} % % \begin{macro}{\pxrr@body@list} % $B?FJ8;zNs$N$?$a$K;H$&%j%9%H!#(B @@ -2121,6 +2391,9 @@ % \begin{macro}{\pxrr@get@jchar@token} % |\pxrr@get@jchar@token\CS{|\jmeta{$B@0?t(B}|}|\Means % $BFbItJ8;z%3!<%I$,(B\jmeta{$B@0?t(B}$B$G$"$kOBJ8J8;z$N%H!<%/%s$rF@$k!#(B +% \Note |.sty|$B%U%!%$%k$O40A4$K(BASCII$BJ8;z$@$1$K$9$kJ}?K$N$?$a!"(B +% $BOBJ8J8;z$,I,MW$J>l9g$O$3$NJd=u%^%/%m$d(B |\pxrr@jchardef| $B$r(B +% $BMxMQ$7$FJ#9g%3!<%ICM$+$i:n$j=P$9$3$H$K$J$k!#(B % % {\pTeX}$B7O$N>l9g!#(B|\kansuji| $B%H%j%C%/$rMxMQ$9$k!#(B % \begin{macrocode} @@ -2154,6 +2427,62 @@ % \end{macrocode} % \end{macro} % +% \begin{macro}{\pxrr@zspace} +% $BA43Q6uGrJ8;z!#(B +% $BJ8;z$=$N$b$N$r%U%!%$%k$K4^$^$;$?$/$J$$$N$G(Bchardef$B$K$9$k!#(B +% \begin{macrocode} +\pxrr@jchardef\pxrr@zspace=\pxrr@jc{2121:3000} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\pxrr@jghost@char} +% $BOBJ8%4!<%9%H=hM}$KMxMQ$9$kJ8;z!#(B +% $B;z7A$,6u$G$"$j!"$+$D0lHL$N4A;z$HF1$85sF0$r<($9I,MW$,$"$k!#(B +% $B<B:]$N%4!<%9%H=hM}$G$O;zI}$rAj;&$9$k=hM}$rF~$l$k0Y!"(B +% $B;zI}$,%<%m$G$"$kI,MW$O$J$$!#(B +% +% $B$[$H$s$I$N>l9g!"A43Q6uGrJ8;z$G9=$o$J$$$,!"A43Q6uGrJ8;z$,(B +% $BJ8;z%?%$%W(B0$B$G$J$$(BJFM$B$,;H$o$l$F$$$k>l9g$OLdBj$K$J$k!#(B +% +% {\upTeX}$B$N>l9g!"!H3HD%Id9f6u4V!I$NJ8;z%3!<%I$r;H$&!#(B +% $B$9$J$o$A!"J8;z%3!<%I(B |"113000| $B$NJ8;z$O(BDVI$B$G$OJ8;z%3!<%I(B |"3000| $B$H(B +% $B07$o$l$k$,!"!H(BBMP$B30!I$K$"$k$?$aI,$:J8;z%?%$%W(B0$B$K$J$k!#(B +% \begin{macrocode} +\ifpxrr@in@uptex + \kchardef\pxrr@jghost@char="113000 +% \end{macrocode} +% {\LuaTeX}-ja$B$N>l9g!#(B +% $BJ8=q@hF,$G!HA43Q6uGrJ8;z$,;H$($k$+!I$r8!::$7$F!"<:GT$7$?>l9g$O(B +% $B!VOBJ8$N(BU+00A0$B!W$rBe$o$j$KMxMQ$9$k$3$H$K$9$k!#(B +% \begin{macrocode} +\else\ifpxrr@in@luatexja + \let\pxrr@jghost@char\pxrr@zspace + \def\pxrr@jghost@check{% + \begingroup +% \ltjsetparameter{jaxspmode={\pxrr@zspace,3}}% +% \ltjsetparameter{xkanjiskip=\p@}% +% \ltjsetparameter{autoxspacing=false}% + \setbox\z@\hbox{\char"3001\char"3000}% +% \ltjsetparameter{autoxspacing=true}% + \setbox\tw@\hbox{\char"3001\inhibitglue\char"3000}% + \ifdim\wd\tw@=\wd\z@ + \global\chardef\pxrr@jghost@char@="00A0 + \gdef\pxrr@jghost@char{\ltjjachar\pxrr@jghost@char@}% + \fi + \endgroup + } + \AtBeginDocument{% + \pxrr@jghost@check + } +% \end{macrocode} +% $B$=$l0J30$N>l9g$O!J;EJ}$,L5$$$N$G!KA43Q6uGr$rMQ$$$k!#(B +% \begin{macrocode} +\else + \let\pxrr@jghost@char\pxrr@zspace +\fi\fi +% \end{macrocode} +% \end{macro} +% % \begin{macro}{\pxrr@x@K} % $BE,Ev$J4A;z!J<B:]$O!R0l!S!K$N%H!<%/%s!#(B % \begin{macrocode} @@ -2327,14 +2656,14 @@ % \end{macro} % % \begin{macro}{\pxrr@get@prebreakpenalty} -% |\pxrr@get@prebreakpenalty\CS{|\jmeta{$BJ8;z(B}|}|\Means -% $BJ8;z$NA06XB'%Z%J%k%F%#CM$r@0?t%l%8%9%?$KBeF~$9$k!#(B +% |\pxrr@get@prebreakpenalty\CS{|\jmeta{$BJ8;z%3!<%I(B}|}|\Means +% $BJ8;z$N8e6XB'%Z%J%k%F%#CM$r@0?t%l%8%9%?$KBeF~$9$k!#(B % % {\pTeX}$B$N>l9g!"(B|\prebreakpenalty| $B$r;H$&!#(B % \begin{macrocode} \ifpxrr@in@ptex \def\pxrr@get@prebreakpenalty#1#2{% - #1=\prebreakpenalty`#2\relax + #1=\prebreakpenalty#2\relax } % \end{macrocode} % @@ -2342,7 +2671,7 @@ % \begin{macrocode} \else\ifpxrr@in@luatexja \def\pxrr@get@prebreakpenalty#1#2{% - #1=\ltjgetparameter{prebreakpenalty}{`#2}\relax + #1=\ltjgetparameter{prebreakpenalty}{#2}\relax } % \end{macrocode} % @@ -2356,6 +2685,100 @@ % \end{macrocode} % \end{macro} % +% \begin{macro}{\pxrr@get@postbreakpenalty} +% |\pxrr@get@postbreakpenalty\CS{|\jmeta{$BJ8;z%3!<%I(B}|}|\Means +% $BJ8;z$NA06XB'%Z%J%k%F%#CM$r@0?t%l%8%9%?$KBeF~$9$k!#(B +% +% {\pTeX}$B$N>l9g!"(B|\postbreakpenalty| $B$r;H$&!#(B +% \begin{macrocode} +\ifpxrr@in@ptex + \def\pxrr@get@postbreakpenalty#1#2{% + #1=\postbreakpenalty#2\relax + } +% \end{macrocode} +% +% \PKN{LuaTeX-ja}$B;HMQ;~$O!"(Bpostbreakpenalty $B%W%m%Q%F%#$rFI$_=P$9!#(B +% \begin{macrocode} +\else\ifpxrr@in@luatexja + \def\pxrr@get@postbreakpenalty#1#2{% + #1=\ltjgetparameter{postbreakpenalty}{#2}\relax + } +% \end{macrocode} +% +% $B$=$l0J30$N>l9g$O%<%m$H$7$F07$&!#(B +% \begin{macrocode} +\else + \def\pxrr@get@postbreakpenalty#1#2{% + #1=\z@ + } +\fi\fi +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\pxrr@check@punct@char} +% |\pxrr@is@punct@char{|\jmeta{$BJ8;z%3!<%I(B}|}{|\jmeta{$BOBJ8%U%i%0(B}|}|\Means +% $B;XDj$NJ8;z%3!<%I$NJ8;z$,!HLsJ*$G$"$k$+!I$rD4$Y$F!"(B +% $B7k2L$r(B |\ifpxrr@ok| $B$KJV$9!#(B +% \jmeta{$BOBJ8%U%i%0(B}$B$O!HBP>]$,(B{\pTeX}$B$NOBJ8$G$"$k!I>l9g$K(B1$B!"(B +% $B$=$l0J30$O(B0$B!#(B +% +% {\pTeX}$B$N>l9g!"2$J8$J$i(B |\xspcode|$B!"OBJ8$J$i(B |\inhibitxspcode| $B$N(B +% $BCM$r8+$F!"$=$l$,(B3$B0J30$J$iLsJ*$H8+$J$9!#(B +% \begin{macrocode} +\ifpxrr@in@ptex + \def\pxrr@check@punct@char#1#2{% + \pxrr@okfalse + \ifcase#2\relax + \ifnum\xspcode#1=\thr@@\else + \pxrr@oktrue + \fi + \else + \ifnum\inhibitxspcode#1=\thr@@\else + \pxrr@oktrue + \fi + \fi + } +% \end{macrocode} +% +% \PKN{LuaTeX-ja}$B;HMQ;~$b4pK\E*$K(B{\pTeX}$B$HF1$8%m%8%C%/$r;H$&!#(B +% $B$?$@$7(B\PKN{LuaTeX-ja}$B$G$O!VJ8;z%H!<%/%s$NOBJ8$H2$J8$N6hJL!W$H$$$&(B +% $B35G0$,B8:_$7$J$$$?$a!"(B\jmeta{$BOBJ8%U%i%0(B}$B$OI,$:(B0$B$H$J$k!#(B +% $B$=$7$F!"(B|\xspcode|$B!?(B|\inhibitxspcode| $B$KAjEv$9$k%Q%i%a%?$H$7$F$O!"(B +% $B2$J8MQ$N(Balxspmode$B$HOBJ8MQ$N(Bjaxspmode$B$,0l1~$"$k$,!"(B +% $B<B:]$K$OOBJ8$H2$J8$N6hJL$O$J$/$3$NN><T$OF15A$K$J$C$F$$$k!#(B +% $B=>$C$F!"!V(Bjaxspmode$B$,(B3$B0J30$+!W$rD4$Y$k$3$H$K$9$k!#(B +% \begin{macrocode} +\else\ifpxrr@in@luatexja + \def\pxrr@check@punct@char#1#2{% + \ifnum\ltjgetparameter{jaxspmode}{#1}=\thr@@ + \pxrr@okfalse + \else + \pxrr@oktrue + \fi + } +% \end{macrocode} +% +% $B$=$l0J30$N>l9g$O%<%m$H$7$F07$&!#(B +% \begin{macrocode} +\else + \def\pxrr@check@punct@char#1#2{% + \pxrr@okfalse + } +\fi\fi +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\pxrr@inhibitglue} +% |\inhibitglue| $B$,Dj5A$5$l$F$$$k$J$i<B9T$9$k!#(B +% \begin{macrocode} +\ifx\inhibitglue\@undefined + \let\pxrr@inhibitglue\relax +\else + \let\pxrr@inhibitglue\inhibitglue +\fi +% \end{macrocode} +% \end{macro} +% % \subsection{$B%Q%i%a%?@_Dj8x3+L?Na(B} % % \begin{macro}{\ifpxrr@in@setup} @@ -3003,6 +3426,12 @@ \if g\pxrr@mode\else \chardef\pxrr@evensp\@ne \fi +% \end{macrocode} +% $B7wE@%k%SF1;~IU2C$N>l9g$ND4@0!#(B +% \begin{macrocode} + \ifpxrr@combo + \pxrr@ck@check@option + \fi } % \end{macrocode} % \end{macro} @@ -3071,7 +3500,7 @@ % \begin{macrocode} \def\pxrr@assign@fsize{% \@tempdima=\f@size\p@ - \@tempdima\pxrr@size@ratio\@tempdima + \@tempdima\pxrr@c@size@ratio\@tempdima \edef\pxrr@ruby@fsize{\the\@tempdima}% \pxrr@get@zwidth\pxrr@body@zw \begingroup @@ -3099,7 +3528,7 @@ \advance\@tempdimb-\pxrr@htratio\@tempdimb \advance\@tempdima\@tempdimb \@tempdimb\pxrr@body@zw\relax - \advance\@tempdima\pxrr@inter@gap\@tempdimb + \advance\@tempdima\pxrr@c@inter@gap\@tempdimb \edef\pxrr@ruby@raise{\the\@tempdima}% % \end{macrocode} % |\pxrr@ruby@lower| $B$NCM$r7W;;$9$k!#(B @@ -3110,8 +3539,14 @@ \@tempdimb\pxrr@htratio\@tempdimb \advance\@tempdima\@tempdimb \@tempdimb\pxrr@body@zw\relax - \advance\@tempdima\pxrr@inter@gap\@tempdimb + \advance\@tempdima\pxrr@c@inter@gap\@tempdimb \edef\pxrr@ruby@lower{\the\@tempdima}% +% \end{macrocode} +% $B7wE@%k%SF1;~IU2C$N@_Dj!#(B +% \begin{macrocode} + \ifpxrr@combo + \pxrr@ck@assign@fsize + \fi } % \end{macrocode} % \end{macro} @@ -3123,7 +3558,7 @@ \pxrr@without@macro@trace{% \let\rubyfontsize\pxrr@ruby@fsize \fontsize{\pxrr@ruby@fsize}{\z@}\selectfont - \pxrr@ruby@font + \pxrr@c@ruby@font }% } % \end{macrocode} @@ -3480,6 +3915,8 @@ % #4$B$O6u(B \def\pxrr@compose@oneside@block@do#1#2#3#4{% \setbox\pxrr@boxa\pxrr@hbox{#2}% + \edef\pxrr@ck@body@natwd{\the\wd\pxrr@boxa}% + \let\pxrr@ck@locate\pxrr@locate@inner \setbox\pxrr@boxr\pxrr@hbox{% \pxrr@use@ruby@font #3% @@ -3500,6 +3937,7 @@ \let\pxrr@locate@temp\pxrr@locate@head \fi \fi + \let\pxrr@ck@locate\pxrr@locate@temp \pxrr@decompose{#2}% \edef\pxrr@natwd{\the\wd\pxrr@boxa}% \pxrr@evenspace@int\pxrr@locate@temp\pxrr@boxa\relax @@ -3542,6 +3980,9 @@ \lower\pxrr@ruby@lower\box\pxrr@boxr \fi }% + \ifnum \ifpxrr@combo\pxrr@ck@ruby@combo\else\z@\fi >\z@ + \pxrr@ck@compose{#2}% + \fi \ht\z@\z@ \dp\z@\z@ \@tempdima\wd\z@ \setbox\pxrr@boxr\hbox{% @@ -3572,6 +4013,8 @@ % |\pxrr@boxb| $B$K2<B&%k%S$N=PNO$rJ];}$9$k!#(B % \begin{macrocode} \setbox\pxrr@boxa\pxrr@hbox{#2}% + \edef\pxrr@ck@body@natwd{\the\wd\pxrr@boxa}% + \let\pxrr@ck@locate\pxrr@locate@inner \setbox\pxrr@boxr\pxrr@hbox{% \pxrr@use@ruby@font #3% @@ -3607,6 +4050,7 @@ \let\pxrr@locate@temp\pxrr@locate@head \fi \fi + \let\pxrr@ck@locate\pxrr@locate@temp % \end{macrocode} % $B>eB&$H2<B&$N$I$A$i$N%k%S$,D9$$$+$K1~$8$F0z?t$rJQ$($F!"(B % |\pxrr@compose@twoside@block@sub| $B$r8F$S=P$9!#(B @@ -3663,6 +4107,9 @@ \kern-\@tempdima \lower\pxrr@ruby@lower\box\pxrr@boxb }% + \ifnum \ifpxrr@combo\pxrr@ck@ruby@combo\else\z@\fi >\z@ + \pxrr@ck@compose{#2}% + \fi \ht\z@\z@ \dp\z@\z@ \@tempdima\wd\z@ \setbox\pxrr@boxr\hbox{% @@ -3973,7 +4420,7 @@ \pxrr@check@kinsoku@c#1#1% } \def\pxrr@check@kinsoku@c#1{% - \pxrr@get@prebreakpenalty\pxrr@cntr{#1}% + \pxrr@get@prebreakpenalty\pxrr@cntr{`#1}% \pxrr@tempb } % \end{macrocode} @@ -4392,6 +4839,29 @@ % \end{macrocode} % \end{macro} % +% \begin{macro}{\pxrr@bind@param} +% $B!H8F=P;~JQ?t!I$X$N%3%T!<$r9T$&!#(B +% \begin{macrocode} +\def\pxrr@bind@param{% +% \end{macrocode} +% $B7wE@%k%SF1;~IU2C%U%i%0$N=hM}!#(B +% $B7wE@B&$,;XDj$7$?(B |apply@combo| $B$NCM$r!H8F=P;~%Q%i%a%?!I$N(B |pxrr@combo| $B$K(B +% $B0\F0$5$;$k!#(B +% \begin{macrocode} + \ifpxrr@apply@combo + \pxrr@apply@combofalse + \pxrr@combotrue + \pxrr@ck@bind@param + \else + \pxrr@combofalse + \fi + \let\pxrr@c@ruby@font\pxrr@ruby@font + \let\pxrr@c@size@ratio\pxrr@size@ratio + \let\pxrr@c@inter@gap\pxrr@inter@gap +} +% \end{macrocode} +% \end{macro} +% % \begin{macro}{\pxrr@ruby@proc} % |\pxrr@ruby@proc{|\jmeta{$B?FJ8;zNs(B}|}{|\jmeta{$B%k%SJ8;zNs(B}|}|\Means % $B$3$l$,<jB3$NK\BN$H$J$k!#(B @@ -4401,6 +4871,7 @@ % \end{macrocode} % $B%U%)%s%H%5%$%:$NJQ?t$r@_Dj$7$F!"(B % \begin{macrocode} + \pxrr@bind@param \pxrr@assign@fsize % \end{macrocode} % $B%*%W%7%g%s$r2r@O$9$k!#(B @@ -4471,6 +4942,7 @@ % \end{macrocode} % $B%U%)%s%H%5%$%:$NJQ?t$r@_Dj$7$F!"(B % \begin{macrocode} + \pxrr@bind@param \pxrr@assign@fsize % \end{macrocode} % $B%*%W%7%g%s$r2r@O$9$k!#(B @@ -5022,14 +5494,6 @@ % \end{macrocode} % \end{macro} % -% \begin{macro}{\pxrr@zspace} -% $BA43Q6uGrJ8;z!#(B -% $BJ8;z$=$N$b$N$r%U%!%$%k$K4^$^$;$?$/$J$$$N$G(Bchardef$B$K$9$k!#(B -% \begin{macrocode} -\pxrr@jchardef\pxrr@zspace=\pxrr@jc{2121:3000} -% \end{macrocode} -% \end{macro} -% % \begin{macro}{\pxrr@jprologue} % $BOBJ8%k%SMQ$N3+;O=hM}!#(B % \begin{macrocode} @@ -5039,7 +5503,8 @@ % $B%4!<%9%HJ8;z!JA43Q6uGr!K$G$"$k$3$H$,4NMW$G$"$k!#(B % \begin{macrocode} \ifpxrr@jghost - \pxrr@zspace + \pxrr@jghost@char + \pxrr@inhibitglue \fi % \end{macrocode} % $B%k%S$N=hM}$NK\BN$OA4$F$3$N%0%k!<%W$NCf$G9T$o$l$k!#(B @@ -5051,7 +5516,7 @@ % $B=PNO$7$?A43Q6uGr$NI}$@$1La$7$F$*$/!#(B % \begin{macrocode} \ifpxrr@jghost - \setbox\pxrr@boxa\hbox{\pxrr@zspace}% + \setbox\pxrr@boxa\hbox{\pxrr@jghost@char}% \kern-\wd\pxrr@boxa \fi } @@ -5135,7 +5600,7 @@ % \begin{macrocode} \def\pxrr@jepilogue{% \ifpxrr@jghost - \setbox\pxrr@boxa\hbox{\pxrr@zspace}% + \setbox\pxrr@boxa\hbox{\pxrr@jghost@char}% \kern-\wd\pxrr@boxa \fi % \end{macrocode} @@ -5143,7 +5608,8 @@ % \begin{macrocode} \endgroup \ifpxrr@jghost - \pxrr@zspace + \pxrr@inhibitglue + \pxrr@jghost@char \fi } % \end{macrocode} @@ -5226,6 +5692,1580 @@ } % \end{macrocode} % +%^^A------------------------------------ +% \section{$B<BAu!J7wE@4XO"!K(B} +% +% \subsection{$B%(%i!<%a%C%;!<%8(B} +% +% $B;XDj$NL>A0$N7wE@J8;z$,L$EPO?$N>l9g!#(B +% \begin{macrocode} +\def\pxrr@warn@na@kmark#1{% + \pxrr@warn{Unavailable kenten mark '#1'}% +} +% \end{macrocode} +% +% $B%Q%i%a%?@_DjL?Na$GL58z$JCM$,;XDj$5$l$?>l9g!#(B +% \begin{macrocode} +\def\pxrr@err@invalid@value#1{% + \pxrr@error{Invalid value '#1'}% + {\@eha}% +} +% \end{macrocode} +% +% \subsection{$B%Q%i%a%?(B} +% +% \subsubsection{$BA4HL@_Dj(B} +% +% \begin{macro}{\pxrr@k@ymark} +% $B2#AH$N<g$N7wE@%^!<%/$N%3!<%I!#(B +% \begin{macrocode} +\let\pxrr@k@ymark\@undefined +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\pxrr@k@ysmark} +% $B2#AH$NI{$N7wE@%^!<%/$N%3!<%I!#(B +% \begin{macrocode} +\let\pxrr@k@ysmark\@undefined +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\pxrr@k@tmark} +% $B=DAH$N<g$N7wE@%^!<%/$N%3!<%I!#(B +% \begin{macrocode} +\let\pxrr@k@tmark\@undefined +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\pxrr@k@tsmark} +% $B=DAH$NI~$N7wE@%^!<%/$N%3!<%I!#(B +% \begin{macrocode} +\let\pxrr@k@tsmark\@undefined +% \end{macrocode} +% \end{macro} +% +% $B7wE@%^!<%/$N=i4|CM$N@_Dj!#(B +% \begin{macrocode} +\AtEndOfPackage{% + \pxrr@k@get@mark\pxrr@k@ymark{bullet*}% + \pxrr@k@get@mark\pxrr@k@ysmark{sesame*}% + \pxrr@k@get@mark\pxrr@k@tmark{sesame*}% + \pxrr@k@get@mark\pxrr@k@tsmark{bullet*}% +} +% \end{macrocode} +% +% \begin{macro}{\pxrr@k@ruby@font} +% $B7wE@MQ%U%)%s%H@ZBXL?Na!#(B +% \begin{macrocode} +\let\pxrr@k@ruby@font\@empty +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\pxrr@k@size@ratio} +% $B7wE@J8;z%5%$%:!#(B +% $B!J(B|\kentensizeratio|$B!K!#(B +% $B<B?tCM%^%/%m!#(B +% \begin{macrocode} +\def\pxrr@k@size@ratio{0.5} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\ifpxrr@k@ghost} +% $B%4!<%9%H=hM}$r9T$&$+!#(B +% $B%9%$%C%A!#(B +% \Note $B7wE@$G$OOBJ8%4!<%9%H=hM}$rI,$:9T$&!#(B +% \begin{macrocode} +\newif\ifpxrr@k@ghost \pxrr@k@ghosttrue +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\pxrr@k@inter@gap} +% $B7wE@$H?FJ8;z$N4V$N6u$-(B +% $B!J(B|\kentenintergap|$B!K!#(B +% $B<B?tCM%^%/%m!#(B +% \begin{macrocode} +\def\pxrr@k@inter@gap{0} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\pxrr@k@ruby@inter@gap} +% $B7wE@$H%k%S$N4V$N6u$-(B +% $B!J(B|\kentenrubyintergap|$B!K!#(B +% $B<B?tCM%^%/%m!#(B +% \begin{macrocode} +\def\pxrr@k@ruby@inter@gap{0} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\pxrr@k@d@side} +% $B7wE@$r?FJ8;z$N>e2<$N$I$A$i$KIU$9$+!#(B +% 0 = $B>eB&!((B1 = $B2<B&!#(B +% |\kentensetup| $B$N(B |P|$B!?(B|S| $B$N@_Dj!#(B +% $B@0?tDj?t!#(B +% \begin{macrocode} +\chardef\pxrr@k@d@side=0 +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\pxrr@k@d@mark} +% $B7wE@%^!<%/$N<oN`!#(B +% 0 = $B<g!((B1 = $BI{!#(B +% |\kentensetup| $B$N(B |p|$B!?(B|s| $B$N@_Dj!#(B +% $B@0?tDj?t!#(B +% \begin{macrocode} +\chardef\pxrr@k@d@mark=0 +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\pxrr@k@ruby@combo} +% $B%k%S$H7wE@$,F1;~$KE,MQ$5$l$?>l9g$N5sF0!#(B +% 0 = $B%k%S$@$1=PNO!((B1 = $B%k%S$N>e$K7wE@!JF1;~IU2C!K!#(B +% |\kentenrubycombination| $B$N@_DjCM$KBP1~$9$k!#(B +% $B@0?tDj?t!#(B +% \begin{macrocode} +\chardef\pxrr@k@ruby@combo=1 +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\pxrr@k@d@full} +% $BLsJ*$K$b7wE@$rIU2C$9$k$+!#(B +% 0 = $BL58z!((B1 = $BM-8z!#(B +% |\kentensetup| $B$N(B |f|$B!?(B|F| $B$N@_Dj!#(B +% $B@0?tDj?t!#(B +% \begin{macrocode} +\chardef\pxrr@k@d@full=0 +% \end{macrocode} +% \end{macro} +% +% \subsubsection{$B8F=P;~$N@_Dj(B} +% +% |\kenten| $B$N(B |P|$B!?(B|S| $B$N@_Dj$O!"(B|\pxrr@side| $B$r%k%S$H6&MQ$9$k!#(B +% +% \begin{macro}{\pxrr@k@mark} +% $B7wE@%^!<%/$N<oN`!#(B +% 0 = $B<g!((B1 = $BI{!#(B +% |\kenten| $B$N(B |p|$B!?(B|s| $B$N@_Dj!#(B +% $B@0?tDj?t!#(B +% \begin{macrocode} +\chardef\pxrr@k@mark=0 +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\pxrr@k@full} +% $BLsJ*$K$b7wE@$rIU2C$9$k$+!#(B +% 0 = $BL58z!((B1 = $BM-8z!#(B +% |\kenten| $B$N(B |f|$B!?(B|F| $B$N@_Dj!#(B +% $B@0?tDj?t!#(B +% \begin{macrocode} +\chardef\pxrr@k@full=0 +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\pxrr@k@the@mark} +% $BE,MQ$5$l$k7wE@%^!<%/$NL?Na!#(B +% \begin{macrocode} +\let\pxrr@k@the@mark\relax +% \end{macrocode} +% \end{macro} +% +% \subsection{$BJd=u<jB3(B} +% +% \subsubsection{\cs{UTF}$BL?NaBP1~(B} +% +% \begin{macro}{\ifpxrr@avail@UTF} +% |\UTF| $BL?Na$,MxMQ$G$-$k$+!#(B +% $B%9%$%C%A!#(B +% \begin{macrocode} +\newif\ifpxrr@avail@UTF +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\pxrr@decide@avail@UTF} +% |\ifpxrr@avail@UTF| $B$NCM$r3NDj$5$;$k!#(B +% \begin{macrocode} +\def\pxrr@decide@avail@UTF{% + \global\let\pxrr@decide@avail@UTF\relax + \ifx\UTF\@undefined \global\pxrr@avail@UTFfalse + \else \global\pxrr@avail@UTFtrue + \fi +} +% \end{macrocode} +% \end{macro} +% +% \subsubsection{$B%j%9%HJ,2r(B} +% +% \begin{macro}{\pxrr@k@decompose} +% |\pxrr@k@decompose{|\jmeta{$B%F%-%9%H(B}|}|\Means +% $B%F%-%9%H!J7wE@L?Na$N0z?t!K$rJ,2r$7$?7k2L$N7wE@9`L\%j%9%H(B +% $B$r(B |\pxrr@res| $B$KJV$9!#(B +% \Note $B7wE@9`L\%j%9%H$N7A<0(B\Means\par +% |\pxrr@entry|[|@XXX|]|{|\jmeta{$B0z?t(B}|}|$B!D!D(B +% |\pxrr@entry|[|@XXX|]|{|\jmeta{$B0z?t(B}|}||\pxrr@post| +% \begin{macrocode} +\def\pxrr@k@decompose#1{% + \let\pxrr@res\@empty + \pxrr@cntr=\z@ + \pxrr@k@decompose@loopa#1\pxrr@end +} +\def\pxrr@k@decompose@loopa{% + \futurelet\pxrr@token\pxrr@k@decompose@loopb +} +\def\pxrr@k@decompose@loopb{% + \pxrr@cond\ifx\pxrr@token\pxrr@end\fi{% + \pxrr@appto\pxrr@res{\pxrr@post}% + }{\pxrr@if@kspan@cmd\pxrr@token{% + \pxrr@k@decompose@special\pxrr@k@decompose@kspan + }{\pxrr@if@ruby@cmd\pxrr@token{% + \pxrr@k@decompose@special\pxrr@k@decompose@ruby + }{\pxrr@if@truby@cmd\pxrr@token{% + \pxrr@k@decompose@special\pxrr@k@decompose@truby + }{\pxrr@if@kenten@cmd\pxrr@token{% + \pxrr@k@decompose@special\pxrr@k@decompose@kenten + }{\pxrr@cond\ifx\pxrr@token\@sptoken\fi{% + \pxrr@k@decompose@loope + }{% + \pxrr@setok{\pxrr@ifx{\pxrr@token\bgroup}}% + \pxrr@k@decompose@loopc + }}}}}}% +} +\def\pxrr@k@decompose@loopc#1{% + \pxrr@appto\pxrr@res{\pxrr@entry}% + \ifpxrr@ok + \pxrr@appto\pxrr@res{{{#1}}}% + \else + \pxrr@appto\pxrr@res{{#1}}% + \fi + \pxrr@k@decompose@loopd +} +\def\pxrr@k@decompose@loopd{% + \advance\pxrr@cntr\@ne + \pxrr@k@decompose@loopa +} +\expandafter\def\expandafter\pxrr@k@decompose@loope\space{% + \pxrr@okfalse + \pxrr@k@decompose@loopc{ }% +} +\def\pxrr@k@decompose@special#1#2#{% + #1{#2}% +} +\def\pxrr@k@decompose@kspan#1#2{% + \pxrr@appto\pxrr@res{\pxrr@entry@kspan{#1{#2}}}% + \pxrr@k@decompose@loopd +} +\def\pxrr@k@decompose@ruby#1#2#3{% + \pxrr@appto\pxrr@res{\pxrr@entry@ruby{#1{#2}{#3}}}% + \pxrr@k@decompose@loopd +} +\def\pxrr@k@decompose@truby#1#2#3#4{% + \pxrr@appto\pxrr@res{\pxrr@entry@ruby{#1{#2}{#3}{#4}}}% + \pxrr@k@decompose@loopd +} +\def\pxrr@k@decompose@kenten#1#2{% + \pxrr@appto\pxrr@res{\pxrr@entry@kenten{#1{#2}}}% + \pxrr@k@decompose@loopd +} +\def\pxrr@cmd@ruby{\jruby} +\def\pxrr@cmd@kenten{\jkenten} +\def\pxrr@if@ruby@cmd#1{% + \if \ifcat\noexpand#1\relax + \ifx#1\pxrr@cmd@ruby T% + \else\ifx#1\jruby T% + \else\ifx#1\aruby T% + \else F% + \fi\fi\fi + \else F% + \fi T\expandafter\@firstoftwo + \else \expandafter\@secondoftwo + \fi +} +\def\pxrr@if@truby@cmd#1{% + \if \ifcat\noexpand#1\relax + \ifx#1\truby T% + \else\ifx#1\atruby T% + \else F% + \fi\fi + \else F% + \fi T\expandafter\@firstoftwo + \else \expandafter\@secondoftwo + \fi +} +\def\pxrr@if@kspan@cmd#1{% + \pxrr@cond\ifx#1\kspan\fi +} +\def\pxrr@if@kenten@cmd#1{% + \if \ifcat\noexpand#1\relax + \ifx#1\pxrr@cmd@kenten T% + \else\ifx#1\jkenten T% + \else F% + \fi\fi + \else F% + \fi T\expandafter\@firstoftwo + \else \expandafter\@secondoftwo + \fi +} +% \end{macrocode} +% \end{macro} +% +% \subsection{$B%Q%i%a%?@_Dj8x3+L?Na(B} +% +% \begin{macro}{\kentensetup} +% |\pxrr@k@parse@option| $B$G2r@O$7$?8e!"@_DjCM$rA4HL@_Dj$K(B +% $B%3%T!<$9$k!#(B +% \begin{macrocode} +\newcommand*\kentensetup[1]{% + \pxrr@in@setuptrue + \pxrr@fatal@errorfalse + \pxrr@k@parse@option{#1}% + \ifpxrr@fatal@error\else + \let\pxrr@k@d@side\pxrr@side + \let\pxrr@k@d@mark\pxrr@k@mark + \let\pxrr@k@d@full\pxrr@k@full + \fi +% \end{macrocode} +% |\ifpxrr@in@setup| $B$r56$KLa$9!#(B +% $B$?$@$7(B |\ifpxrr@fatal@error| $B$O=q$-49$($i$l$?$^$^$G$"$k$3$H$KCm0U!#(B +% \begin{macrocode} + \pxrr@in@setupfalse +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\kentenfontsetup} +% $BBP1~$9$k%Q%i%a%?$r@_Dj$9$k!#(B +% \begin{macrocode} +\newcommand*\kentenfontsetup{} +\def\kentenfontsetup#{% + \def\pxrr@k@ruby@font +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\kentensizeratio} +% $BBP1~$9$k%Q%i%a%?$r@_Dj$9$k!#(B +% \begin{macrocode} +\newcommand*\kentensizeratio[1]{% + \edef\pxrr@k@size@ratio{#1}% +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\kentenintergap} +% $BBP1~$9$k%Q%i%a%?$r@_Dj$9$k!#(B +% \begin{macrocode} +\newcommand*\kentenintergap[1]{% + \edef\pxrr@k@inter@gap{#1}% +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\kentenrubyintergap} +% $BBP1~$9$k%Q%i%a%?$r@_Dj$9$k!#(B +% \begin{macrocode} +\newcommand*\kentenrubyintergap[1]{% + \edef\pxrr@k@ruby@inter@gap{#1}% +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\kentenmarkinyoko} +% \begin{macro}{\kentensubmarkinyoko} +% \begin{macro}{\kentenmarkintate} +% \begin{macro}{\kentensubmarkintate} +% $BBP1~$9$k%Q%i%a%?$r@_Dj$9$k!#(B +% \begin{macrocode} +\newcommand*\kentenmarkinyoko[1]{% + \pxrr@k@get@mark\pxrr@k@ymark{#1}% +} +\newcommand*\kentensubmarkinyoko[1]{% + \pxrr@k@get@mark\pxrr@k@ysmark{#1}% +} +\newcommand*\kentenmarkintate[1]{% + \pxrr@k@get@mark\pxrr@k@tmark{#1}% +} +\newcommand*\kentensubmarkintate[1]{% + \pxrr@k@get@mark\pxrr@k@tsmark{#1}% +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\kentenrubycombination} +% $BBP1~$9$k%Q%i%a%?$r@_Dj$9$k!#(B +% \begin{macrocode} +\chardef\pxrr@k@ruby@combo@ruby=0 +\chardef\pxrr@k@ruby@combo@both=1 +\newcommand*\kentenrubycombination[1]{% + \pxrr@letcs\pxrr@tempa{pxrr@k@ruby@combo@#1}% + \ifx\pxrr@tempa\relax + \pxrr@err@invalid@value{#1}% + \else + \let\pxrr@k@ruby@combo\pxrr@tempa + \fi +} +% \end{macrocode} +% \end{macro} +% +% \subsection{$B7wE@J8;z(B} +% +% \begin{macro}{\pxrr@k@declare@mark} +% |\pxrr@k@declare@mark{|\jmeta{$BL>A0(B}|}{|\jmeta{$BK\BN(B}|}|\Means +% $B7wE@%^!<%/L?Na$rDj5A$9$k!#(B +% \begin{macrocode} +\def\pxrr@k@declare@mark#1{% + \global\@namedef{pxrr@k@mark@@#1}% +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\pxrr@k@let@mark} +% |\pxrr@k@declare@mark{|\jmeta{$BL>A0(B}|}\CS|\Means +% $B7wE@%^!<%/L?Na$r(B |\let| $B$GDj5A$9$k!#(B +% \begin{macrocode} +\def\pxrr@k@let@mark#1{% + \global\pxrr@cslet{pxrr@k@mark@@#1}% +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\pxrr@k@get@mark} +% |\pxrr@k@get@mark\CS{|\jmeta{$BL>A0$^$?$ODj5AK\BN(B}|}|\Means +% $B;XDj$N7wE@%^!<%/L?Na$r(B |\CS| $B$KBeF~$9$k!#(B +% $BBh(B2$B0z?t$N@hF,%H!<%/%s$,(BASCII$B1Q;z$N>l9g$OL>A0$H8+$J$7!"(B +% $B$=$l0J30$ODj5AK\BN$N%3!<%I$H8+$J$9!#(B +% \begin{macrocode} +\def\pxrr@k@get@mark#1#2{% + \futurelet\pxrr@token\pxrr@k@get@mark@a#2\pxrr@nil#1% +} +\def\pxrr@k@get@mark@a{% + \pxrr@cond\ifcat A\noexpand\pxrr@token\fi{% + \pxrr@k@get@mark@c + }{%else + \pxrr@k@get@mark@b + }% +} +\def\pxrr@k@get@mark@b#1\pxrr@nil#2{% + \def#2{#1}% +} +\def\pxrr@k@get@mark@c#1#2\pxrr@nil#3{% + \ifnum`#1<128 + \pxrr@letcs\pxrr@tempa{pxrr@k@mark@@#1#2}% + \ifx\pxrr@tempa\relax + \pxrr@warn@na@kmark{#1#2}% + \else + \let#3\pxrr@tempa + \fi + \else + \pxrr@k@get@mark@b#1#2\pxrr@nil#3% + \fi +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\pxrr@k@declare@mark@char} +% |\pxrr@k@declare@mark@char\CS{|\jmeta{$BFs=E%3!<%I(B}|}|\Means +% $B;XDj$N%3!<%ICM$NJ8;z$N!JOBJ8!K(Bchardef$B$r(B |\CS| $B$KBeF~$9$k!#(B +% $B$?$@$7(B{\pTeX}$B$G(BJIS$B$KL5$$J8;z(B +% $B!JJX59E*$KOBJ86uGr$N(BJIS$B%3!<%ICM(B|2121|$B$GI=$9!K(B +% $B$N>l9g$OBe$o$j$K(B |\pxrr@k@char@UTF| $B$rMxMQ$9$k!#(B +% \begin{macrocode} +\def\pxrr@k@declare@mark@char#1#2{% + \pxrr@k@declare@mark@char@a{#1}#2\pxrr@end +} +\def\pxrr@k@declare@mark@char@a#1#2:#3\pxrr@end{% + \pxrr@jchardef\pxrr@tempa\pxrr@jc{#2:#3}% + \ifnum\pxrr@tempa=\pxrr@zspace +% \end{macrocode} +% $B%(%s%8%s$,(B{\pTeX}$B$G$+$D(BJIS$B$KL5$$J8;z$G$"$k>l9g!#(B +% \begin{macrocode} + \pxrr@k@declare@mark{#1}{\pxrr@k@char@UTF{#1}{#3}}% + \else + \pxrr@k@let@mark{#1}\pxrr@tempa + \fi +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\pxrr@k@char@UTF} +% |\pxrr@k@char@UTF{|\jmeta{$BL>A0(B}|}{|\jmeta{Unicode$BCM(B}|}|\Means +% |\UTF{|\jmeta{Unicode$BCM(B}|}| $B$r<B9T$9$k$,!"(B +% |\UTF| $B$,MxMQIT2D$N>l9g$O!"(B +% $B!J:G=i$N(B1$B2s$@$1!K7Y9p$7$?>e$G2?$b=PNO$7$J$$!#(B +% \begin{macrocode} +\def\pxrr@k@char@UTF#1#2{% + \pxrr@decide@avail@UTF + \ifpxrr@avail@UTF + \pxrr@k@declare@mark{#1}{\UTF{#2}}% + \UTF{#2}% + \else + \pxrr@k@let@mark{#1}\@empty + \pxrr@warn@na@kmark{#1}% + \fi +} +% \end{macrocode} +% \end{macro} +% +% $BI8=`%5%]!<%H$N7wE@%^!<%/$NDj5A!#(B +% \begin{macrocode} +\pxrr@k@declare@mark@char{bullet} {2121:2022} +\pxrr@k@declare@mark@char{triangle}{2225:25B2} +\pxrr@k@declare@mark@char{Triangle}{2224:25B3} +\pxrr@k@declare@mark@char{fisheye} {2121:25C9} +\pxrr@k@declare@mark@char{Circle} {217B:25CB} +\pxrr@k@declare@mark@char{bullseye}{217D:25CE} +\pxrr@k@declare@mark@char{circle} {217C:25CF} +\pxrr@k@declare@mark@char{Bullet} {2121:25E6} +\pxrr@k@declare@mark@char{sesame} {2121:FE45} +\pxrr@k@declare@mark@char{Sesame} {2121:FE46} +\pxrr@jchardef\pxrr@ja@dot=\pxrr@jc{2126:30FB} +\pxrr@jchardef\pxrr@ja@comma=\pxrr@jc{2122:3001} +\pxrr@k@declare@mark{bullet*}{% + \pxrr@dima=\pxrr@ruby@zw\relax + \hb@xt@\pxrr@dima{% + \kern-.5\pxrr@dima + \pxrr@if@in@tate{}{\lower.38\pxrr@dima}% + \hbox{% + \pxrr@dima=\f@size\p@ + \fontsize{2\pxrr@dima}{\z@}\selectfont + \pxrr@ja@dot + }% + \hss + }% +} +\pxrr@k@declare@mark{sesame*}{% + \pxrr@dima=\pxrr@ruby@zw\relax + \hb@xt@\pxrr@dima{% + \pxrr@if@in@tate{\kern.1\pxrr@dima}{\kern.05\pxrr@dima}% + \pxrr@if@in@tate{\lower.85\pxrr@dima}{\raise.3\pxrr@dima}% + \hbox{% + \pxrr@dima=\f@size\p@ + \fontsize{2.4\pxrr@dima}{\z@}\selectfont + \pxrr@ja@comma + }% + \hss + }% +} +% \end{macrocode} +% +% \subsection{$B7wE@%*%W%7%g%s2r@O(B} +% +% \begin{macro}{\pxrr@k@parse@option} +% |\pxrr@k@parse@option{|\jmeta{$B%*%W%7%g%s(B}|}|\Means +% \jmeta{$B%*%W%7%g%s(B}$B$r2r@O$7!"(B +% |\pxrr@side| $B$d(B |\pxrr@k@mark| $BEy$N%Q%i%a%?$r@_Dj$9$k!#(B +% \begin{macrocode} +\def\pxrr@k@parse@option#1{% + \edef\pxrr@tempa{#1}% + \let\pxrr@side\pxrr@k@d@side + \let\pxrr@k@mark\pxrr@k@d@mark + \let\pxrr@k@full\pxrr@k@d@full + \expandafter\pxrr@k@parse@option@loop\pxrr@tempa @\pxrr@end +} +\def\pxrr@k@parse@option@loop#1{% +% \end{macrocode} +% $B7wE@%*%W%7%g%s$N2r@O4o$O!HM-8B>uBV!I$r;}$?$J$$$N$G(B +% $BHs>o$KC1=c$G$"$k!#(B +% \begin{macrocode} + \pxrr@letcs\pxrr@tempa{pxrr@k@po@PR@#1}% + \pxrr@cond\ifx\pxrr@tempa\relax\fi{% + \pxrr@fatal@knx@letter{#1}% + \pxrr@k@parse@option@exit + }{% + \pxrr@tempa + \pxrr@k@parse@option@loop + }% +} +\def\pxrr@k@parse@option@exit#1\pxrr@end{% + \ifpxrr@in@setup\else + \pxrr@k@check@option +% \end{macrocode} +% $B$3$3$G(B |\pxrr@k@the@mark| $B$rE,@Z$KDj5A$9$k!#(B +% \begin{macrocode} + \pxrr@if@in@tate{% + \ifcase\pxrr@k@mark \let\pxrr@k@the@mark\pxrr@k@tmark + \or \let\pxrr@k@the@mark\pxrr@k@tsmark + \fi + }{% + \ifcase\pxrr@k@mark \let\pxrr@k@the@mark\pxrr@k@ymark + \or \let\pxrr@k@the@mark\pxrr@k@ysmark + \fi + }% + \fi +} +\def\pxrr@k@po@PR@@{% + \pxrr@k@parse@option@exit +} +\def\pxrr@k@po@PR@P{% + \chardef\pxrr@side\z@ +} +\def\pxrr@k@po@PR@S{% + \chardef\pxrr@side\@ne +} +\def\pxrr@k@po@PR@p{% + \chardef\pxrr@k@mark\z@ +} +\def\pxrr@k@po@PR@s{% + \chardef\pxrr@k@mark\@ne +} +\def\pxrr@k@po@PR@F{% + \chardef\pxrr@k@full\z@ +} +\def\pxrr@k@po@PR@f{% + \chardef\pxrr@k@full\@ne +} +% \end{macrocode} +% \end{macro} +% +% \subsection{$B%*%W%7%g%s@09g@-8!::(B} +% +% $B:#$N$H$3$m8!::$9$Y$-E@$,$J$$!#(B +% \begin{macrocode} +\def\pxrr@k@check@option{% +} +% \end{macrocode} +% +% \subsection{$B%V%m%C%/Kh$NAHHG(B} +% +% \begin{macro}{\pxrr@k@compose@block} +% |\pxrr@k@compose@block{|\jmeta{$B?FJ8;z%V%m%C%/(B}|}|^^A +% |{|\jmeta{$B7wE@$N8D?t(B}|}|\Means +% 1$B$D$N%V%m%C%/$NAHHG=hM}!#(B +% $B%\%C%/%9(B |\pxrr@boxb| $B$K7wE@(B1$B$D$rAHHG$7$?$b$N$,F~$C$F$$$k(B +% $BI,MW$,$"$k!#(B +% $B$J$*!"7wE@$O%<%mI}$KDY$7$?7A$G07$&A0Ds$N$?$a!"(B +% |\pxrr@boxb| $B$NI}$O%<%m$G$J$$$H$$$1$J$$!#(B +% +% $B4pK\E*$K!"%k%SMQ$N(B |\pxrr@compose@oneside@block| $B$rHs>o$K4JN,2=(B +% $B$7$?=hM}$K$J$C$F$$$k!#(B +% \begin{macrocode} +\def\pxrr@k@compose@block#1#2{% + \setbox\pxrr@boxa\pxrr@hbox{#1}% +% \end{macrocode} +% |\pxrr@evenspace@int| $B$r;H$&$?$a$KDTjm$r9g$o$;$k!#(B +% $B$9$J$o$A!"(B|\copy\pxrr@boxb| $B$r7wE@8D?tJ,$@$1H?I|$7$?(B +% $B%j%9%H$r(B |\pxrr@res| $B$KF~$l$F!"!H7wE@$N<+A3D9!I$K(B +% $BEv$?$k(B |\pxrr@natwd| $B$r%<%m$H$9$k!#(B +% \begin{macrocode} + \pxrr@k@make@rep@list{\copy\pxrr@boxb}{#2}% + \let\pxrr@natwd\pxrr@zeropt + \pxrr@evenspace@int\pxrr@locate@inner\pxrr@boxr + \relax{\wd\pxrr@boxa}% + \setbox\z@\hbox{% + \ifnum\pxrr@side=\z@ + \raise\pxrr@ruby@raise\box\pxrr@boxr + \else + \lower\pxrr@ruby@lower\box\pxrr@boxr + \fi + }% + \ht\z@\z@ \dp\z@\z@ + \@tempdima\wd\z@ + \setbox\pxrr@boxr\hbox{% + \box\z@ + \kern-\@tempdima + \box\pxrr@boxa + }% +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\pxrr@k@make@rep@list} +% |\pxrr@k@make@rep@list{|\jmeta{$BMWAG(B}|}{|\jmeta{$B2s?t(B}|}|\Means +% $BMWAG$r;XDj$N2s?t$@$1H?I|$7$?%j%9%H$r(B |\pxrr@res| $B$KBeF~$9$k!#(B +% \begin{macrocode} +\def\pxrr@k@make@rep@list#1#2{% + \def\pxrr@res{\pxrr@pre{#1}}% + \pxrr@cntr=#2\relax + \ifnum\pxrr@cntr>\@ne + \@tempcnta\pxrr@cntr \advance\@tempcnta\m@ne + \@whilenum{\@tempcnta>\z@}\do{% + \pxrr@appto\pxrr@res{\pxrr@inter{#1}}% + \advance\@tempcnta\m@ne + }% + \fi + \pxrr@appto\pxrr@res{\pxrr@post}% +} +% \end{macrocode} +% \end{macro} +% +% \subsection{$B7wE@9`L\(B} +% +% \begin{itemize} +% \item $B7wE@9`L\%j%9%H(B\Means +% $B%F%-%9%H$r(B |\pxrr@k@decompose| $B$GJ,2r$7$?7k2L$N%j%9%H!#(B +% \item $B7wE@9`L\(B\Means +% $B7wE@%j%9%H$K4^$^$l$k(B |\pxrr@entry|[|@XXX|]|{...}| $B$H$$$&7A<0$N$3$H!#(B +% $B7wE@9`L\$OD>@\$K<B9T$9$k!J=PNO$9$k!K$3$H$,$G$-$k!#(B +% \item $B7wE@%V%m%C%/(B\Means +% $B0l$D$N!TJ8;z!U$K7wE@$rIU2C$7$F=PNO$7$?$b$N!#(B +% \item $B;2>HJ8;z%3!<%I(B\Means +% $B7wE@9`L\$N=PNO$NA08e$N6XB'%Z%J%k%F%#$N07$$$K$*$$$F!"(B +% $B!V$"$kJ8;z$HF1Ey!W$H07$&>l9g$N!"$=$NJ8;z$NJ8;z%3!<%I!#(B +% \end{itemize} +% +% $B"(8=>u$G$O!"$^$:(B |\pxrr@kenten@entry@XXX| $B$H$$$&%^%/%m$rDj5A$7$F(B +% $B7wE@L?Na$N<B9T;~$K$=$l$r(B |\pxrr@entry@XXX| $B$K%3%T!<$9$k!"$H$$$&(B +% $B<jB3$-$r:N$C$F$$$k!#(B +% $B!J$?$@$=$&$9$k0UL#$,A4$/L5$$5$$,$9$k!#!K(B +% +% \begin{macro}{\ifpxrr@k@first@entry} +% $B@hF,$N9`L\$G$"$k$+!#(B +% \begin{macrocode} +\newif\ifpxrr@k@first@entry +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\ifpxrr@k@last@entry} +% $BKvHx$N9`L\$G$"$k$+!#(B +% \begin{macrocode} +\newif\ifpxrr@k@last@entry +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\ifpxrr@k@prev@is@block} +% $BD>A0$N9`L\$N7k2L$,7wE@%V%m%C%/$G$"$C$?$+!#(B +% \begin{macrocode} +\newif\ifpxrr@k@prev@is@block +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\pxrr@k@accum@res} +% $BN_@Q$ND>@\=PNO!#(B +% \begin{macrocode} +\let\pxrr@k@accum@res\relax +% \end{macrocode} +% \end{macro} +% +% $B0J2<$N(B3$B$D$NJQ?t$O!H9`L\$N2<@A$1%^%/%m!I$,CM$rJV$9$Y$-$b$N!#(B +% $B$3$l$i$K2C$($F!"(B|\pxrr@res| $B$H(B |\pxrr@boxr| $B$N0lJ}$K(B +% $B!JAHHG$N!K7k2L$rJV$9I,MW$,$"$k!#(B +% +% \begin{macro}{\pxrr@k@prebreakpenalty} +% $B7wE@9`L\$NA06XB'%Z%J%k%F%#!#(B +% \begin{macrocode} +\mathchardef\pxrr@k@prebreakpenalty\z@ +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\pxrr@k@postbreakpenalty} +% $B7wE@9`L\$N8e6XB'%Z%J%k%F%#!#(B +% \begin{macrocode} +\mathchardef\pxrr@k@postbreakpenalty\z@ +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\pxrr@k@entry@res@type} +% $B9`L\$N=PNO$N%?%$%W!#(B +% 0=$BD>@\=PNO!((B1=$B%\%C%/%9=PNO!((B2=$B7wE@%V%m%C%/!#(B +% 0$B$N>l9g!"=PNO$O(B |\pxrr@res| $B$K$"$j!"$=$l0J30$O!"(B +% $B=PNO$O(B |\pxrr@boxr| $B$K$"$k!#(B +% \begin{macrocode} +\chardef\pxrr@k@entry@res@type\z@ +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\pxrr@k@list@pre} +% $B7wE@9`L\%j%9%H$N=PNO$N3+;O;~$K9T$&=hM}!#(B +% \begin{macrocode} +\def\pxrr@k@list@pre{% + \pxrr@k@first@entrytrue + \pxrr@k@last@entryfalse + \pxrr@k@prev@is@blockfalse + \let\pxrr@k@accum@res\@empty + \chardef\pxrr@k@block@seq@state\z@ +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\pxrr@k@entry@with} +% $BJd=u%^%/%m!#(B +% $B3F<o7wE@9`L\$N6&DL$N=hM}$r9T$&!#(B +% \Note |#1| $B$O3F7wE@9`L\L?Na$N2<@A$1$N%^%/%m$G!"(B|#2| $B$O(B +% $B7wE@9`L\$N0z?t!#(B +% \begin{macrocode} +\def\pxrr@k@entry@with#1#2{% + \pxrr@if@last{% + \pxrr@k@last@entrytrue + \pxrr@k@entry@with@a#1{#2}% + }{% + \pxrr@k@entry@with@a#1{#2}% + }% +} +\def\pxrr@k@entry@with@a#1#2{% + \mathchardef\pxrr@k@prebreakpenalty\z@ + \mathchardef\pxrr@k@postbreakpenalty\z@ +% \end{macrocode} +% $B2<@A$1%^%/%m$r<B9T$7$F7k2L$rF@$k!#(B +% \begin{macrocode} + #1{#2}% +%\typeout{% +%first=\meaning\ifpxrr@k@first@entry^^J% +%last=\meaning\ifpxrr@k@last@entry^^J% +%prev=\meaning\ifpxrr@k@prev@is@block^^J% +%res=\meaning\pxrr@res^^J% +%type=\meaning\pxrr@k@entry@res@type^^J% +%prepen=\the\pxrr@k@prebreakpenalty^^J% +%postpen=\the\pxrr@k@postbreakpenalty}% +% \end{macrocode} +% $BN_@QD>@\=PNO$N=hM}!#(B +% \begin{macrocode} + \ifnum\pxrr@k@entry@res@type=\z@ + \expandafter\pxrr@appto\expandafter\pxrr@k@accum@res + \expandafter{\pxrr@res}% + \else + \pxrr@k@accum@res + \let\pxrr@k@accum@res\@empty + \fi +% \end{macrocode} +% $BA06XB'%Z%J%k%F%#$rF~$l$k!#(B +% \begin{macrocode} + \ifnum\pxrr@k@prebreakpenalty>\z@ + \@tempcntb\lastpenalty \unpenalty + \advance\@tempcntb\pxrr@k@prebreakpenalty + \penalty\@tempcntb + \fi +% \end{macrocode} +% $B7wE@%V%m%C%/$,O"B3$9$k>l9g$OOBJ84V6uGr$rF~$l$k!#(B +% \begin{macrocode} + \ifnum\pxrr@k@entry@res@type=\tw@ + \ifpxrr@k@prev@is@block + \pxrr@inter@mono + \fi + \pxrr@k@prev@is@blocktrue + \else + \pxrr@k@prev@is@blockfalse + \fi +% \end{macrocode} +% $B%\%C%/%9$N7k2L$r<B:]$K=PNO$9$k!#(B +% \begin{macrocode} + \ifnum\pxrr@k@entry@res@type>\z@ + \unhbox\pxrr@boxr + \fi +% \end{macrocode} +% $B8e6XB'%Z%J%k%F%#$rF~$l$k!#(B +% \begin{macrocode} + \ifnum\pxrr@k@postbreakpenalty>\z@ + \penalty\pxrr@k@postbreakpenalty + \fi +% \end{macrocode} +% $B<!$N9`L\$K?J$`!#(B +% \begin{macrocode} + \pxrr@k@first@entryfalse +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\pxrr@k@list@post} +% $B7wE@9`L\%j%9%H$N=PNO$N:G8e$K9T$&=hM}!#(B +% \begin{macrocode} +\def\pxrr@k@list@post{% + \pxrr@k@accum@res + \let\pxrr@k@accum@res\@empty +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\pxrr@kenten@entry} +% $B0lHL$N!TJ8;z!U$rI=$97wE@9`L\(B |\pxrr@entry{|\jmeta{$BJ8;z(B}|}| $B$N=hM}!#(B +% $B7wE@$r(B1$B$DIU$1$F=PNO$9$k!#(B +% \begin{macrocode} +\def\pxrr@kenten@entry{% + \pxrr@k@entry@with\pxrr@kenten@entry@ +} +\def\pxrr@kenten@entry@#1{% + \pxrr@k@check@char{#1}% + \ifpxrr@ok + \pxrr@k@compose@block{#1}\@ne + \chardef\pxrr@k@entry@res@type=\tw@ + \else + \def\pxrr@res{#1}% + \chardef\pxrr@k@entry@res@type=\z@ + \fi +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\pxrr@kenten@entry@kspan} +% |\kspan| $BL?Na$rI=$97wE@9`L\(B\ +% |\pxrr@entry@kspan{\kspan{|\jmeta{$B%F%-%9%H(B}|}}| $B$N=hM}!#(B +% $B%F%-%9%H$NI}$,!H$*$h$=(B$n$$BA43Q!I$G$"$k>l9g$K!"(B +% $n$$B8D$N7wE@$r%k%S6QEy3d$j$GG[CV$7$F=PNO$9$k!#(B +% \begin{macrocode} +\def\pxrr@kenten@entry@kspan{% + \pxrr@k@entry@with\pxrr@kenten@entry@kspan@ +} +\def\pxrr@kenten@entry@kspan@#1{% + \pxrr@kenten@entry@kspan@a#1% +} +\def\pxrr@kenten@entry@kspan@a#1{% +% \end{macrocode} +% |\kspan|$B!J(B=\,|#1|$B!K$,(B |*| $BIU$+$rD4$Y$k!#(B +% \begin{macrocode} + \@ifstar{% + \@testopt\pxrr@kenten@entry@kspan@c{}% + }{% + \@testopt\pxrr@kenten@entry@kspan@b{}% + }% +} +\def\pxrr@kenten@entry@kspan@b[#1]#2{% +% \end{macrocode} +% ($n-1/4$)zw$B0J>e(B($n+3/4$)zw$BL$K~$N;~$K!H$*$h$=(B$n$$BA43Q!I$H8+$J$9!#(B +% \begin{macrocode} + \setbox\z@\pxrr@hbox{#2}% + \@tempdima\pxrr@body@zw\relax + \@tempdimb\wd\z@ \advance\@tempdimb.25\@tempdima + \divide\@tempdimb\@tempdima + \edef\pxrr@kenten@entry@tempa{\number\@tempdimb}% + \pxrr@k@compose@block{#2}\pxrr@kenten@entry@tempa + \chardef\pxrr@k@entry@res@type=\tw@ +} +\def\pxrr@kenten@entry@kspan@c[#1]#2{% +% \end{macrocode} +% |\kspan*| $B$H$J$C$F$$$k>l9g!#(B +% $B$3$N;~$O7wE@$rIU2C$;$:D>@\=PNO$9$k!#(B +% \begin{macrocode} + \def\pxrr@res{#2}% + \chardef\pxrr@k@entry@res@type=\z@ +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\pxrr@kenten@entry@kenten} +% $B%M%9%H$7$?(B |\kenten| $BL?Na$N7wE@9`L\!#(B +% $BC1=c$K$=$N(B |\kenten| $B$r<B9T$7$?$b$N$r=PNO$H$9$k!#(B +% $B$9$J$o$A!"FbB&$N7wE@$N@_Dj$N$_$,@8$-$k!#(B +% \begin{macrocode} +\def\pxrr@kenten@entry@kenten{% + \pxrr@k@entry@with\pxrr@kenten@entry@kenten@ +} +\def\pxrr@kenten@entry@kenten@#1{% +% \end{macrocode} +% $B$3$N>l9g$O7wE@%V%m%C%/$H$O8+$J$5$J$$$3$H$KCm0U!#(B +% \begin{macrocode} + \setbox\pxrr@boxr\hbox{#1}% + \chardef\pxrr@k@entry@res@type=\@ne +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\pxrr@kenten@entry@ruby} +% $B%k%SL?Na$N7wE@9`L\!#(B +% \begin{macrocode} +\def\pxrr@kenten@entry@ruby{% + \pxrr@k@entry@with\pxrr@kenten@entry@ruby@ +} +\def\pxrr@kenten@entry@ruby@#1{% + \pxrr@apply@combotrue + \setbox\pxrr@boxr\hbox{#1}% + \chardef\pxrr@k@entry@res@type=\@ne +} +% \end{macrocode} +% \end{macro} +% +% \subsubsection{\cs{kspan}$BL?Na(B} +% +% \begin{macro}{\kspan} +% $B%F%-%9%H$NI}$KAj1~$7$?8D?t$N7wE@$rIU$1$kL?Na!#(B +% |\kenten| $B$N0z?t$N%F%-%9%H$NCf$G;H$&!#(B +% +% |\kenten| $B$N30$G;H$o$l$?>l9g$OC1=c$K0z?t$r=PNO$9$k$@$1!#(B +% +% \Note $B=hM}$NET9g>e!"%*%W%7%g%s0z?t$r;}$?$;$F$$$k$,!"(B +% $B<B:]$K$O!J8=:_$O!K$3$l$O;H$o$l$J$$!#(B +% \begin{macrocode} +\newcommand*\kspan{% + \@ifstar{% + \@testopt\pxrr@kspan@a{}% + }{% + \@testopt\pxrr@kspan@a{}% + }% +} +\pxrr@add@protect\kspan +\def\pxrr@kspan@a[#1]#2{% + \begingroup + #2% + \endgroup +} +% \end{macrocode} +% \end{macro} +% +% \subsection{$B<+F0M^;_$N8!::(B} +% +% \begin{macro}{\pxrr@k@check@char} +% $BDL>o9`L\!J(B|\pxrr@entry|$B!K$N0z?t$r8!::$7$F!"(B +% $B7wE@$rIU2C$9$Y$-$+H]$+$r%9%$%C%A(B |pxrr@ok| $B$KJV$9!#(B +% $B$^$?!"9`L\$NA06XB'!&8e6XB'%Z%J%k%F%#$r@_Dj$9$k!#(B +% +% $B0z?t$,!JC10l$N!KDL>oJ8;z$G$"$k;~$O$=$NJ8;z!"(B +% $B0z?t$,%0%k!<%W$N>l9g$OOBJ86uGr$NFbItJ8;z%3!<%I$r(B |\pxrr@cntr| $B$K(B +% $BJV$9!J6XB'%Z%J%k%F%#$r8e$G8+$i$l$k$h$&$K!K!#(B +% \begin{macrocode} +\def\pxrr@k@check@char#1{% + \futurelet\pxrr@token\pxrr@k@check@char@a#1\pxrr@end +} +\def\pxrr@k@check@char@a#1\pxrr@end{% + \pxrr@cond\ifx\pxrr@token\bgroup\fi{% +% \end{macrocode} +% $B%0%k!<%W$K$O7wE@$rIU$1$k!#(B +% \begin{macrocode} + \pxrr@oktrue + }{\pxrr@cond\ifx\pxrr@token\@sptoken\fi{% +% \end{macrocode} +% $B2$J86uGr$K$O7wE@$rIU$1$J$$!#(B +% \begin{macrocode} + \pxrr@okfalse + }{% + \pxrr@check@char\pxrr@token + \ifcase\pxrr@cntr +% \end{macrocode} +% $BDL>oJ8;z$G$J$$$N$G7wE@$rIU$1$J$$!#(B +% \begin{macrocode} + \pxrr@okfalse + \or +% \end{macrocode} +% $B2$J8$NDL>oJ8;z!#7wE@$rIU$1$k!#(B +% \begin{macrocode} + \pxrr@oktrue + \chardef\pxrr@check@char@temp\z@ + \or +% \end{macrocode} +% $BOBJ8$NDL>oJ8;z!#7wE@$rIU$1$k!#(B +% \begin{macrocode} + \pxrr@oktrue + \chardef\pxrr@check@char@temp\@ne + \fi +% \end{macrocode} +% $BLsJ*$N7wE@IU2C$,L58z$N>l9g$O!"0z?t$NJ8;z$,LsJ*$G$"$k$+8!::$7!"(B +% $B$=$&$G$"$k>l9g$O7wE@$rIU$1$J$$!#(B +% \begin{macrocode} + \ifnum\pxrr@k@full=\z@\ifpxrr@ok + \pxrr@check@punct@char{`#1}\pxrr@check@char@temp + \ifpxrr@ok \pxrr@okfalse + \else \pxrr@oktrue + \fi + \fi\fi + \ifpxrr@ok + \pxrr@get@prebreakpenalty\@tempcnta{`#1}% + \mathchardef\pxrr@k@prebreakpenalty\@tempcnta + \pxrr@get@postbreakpenalty\@tempcnta{`#1}% + \mathchardef\pxrr@k@postbreakpenalty\@tempcnta + \fi + }}% +} +% \end{macrocode} +% \end{macro} +% +% \subsection{$B%a%$%s$G$9(B} +% +% \subsubsection{$B%(%s%H%j!<%]%$%s%H(B} +% +% \begin{macro}{\kenten} +% \begin{macro}{\jkenten} +% $B7wE@$N8x3+L?Na!#(B +% |\jkenten| $B$r4h6/$JL?Na$H$7$FDj5A$7$?>e$G!"(B|\kenten| $B$O$=$l$K(B +% $BE83+$5$l$k%^%/%m$K!JL$Dj5A$J$i$P!KDj5A$9$k!#(B +% \begin{macrocode} +\AtBeginDocument{% + \providecommand*{\kenten}{\jkenten}% +} +\newcommand*{\jkenten}{% + \pxrr@k@prologue + \pxrr@kenten +} +\pxrr@add@protect\jkenten +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\pxrr@kenten} +% $B%*%W%7%g%s$N=hM}$r9T$&!#(B +% \begin{macrocode} +\def\pxrr@kenten{% + \@testopt\pxrr@kenten@a{}% +} +\def\pxrr@kenten@a[#1]{% + \def\pxrr@option{#1}% + \ifpxrr@safe@mode +% \end{macrocode} +% $B0BA4%b!<%I$G$O7wE@5!G=$OL58z$J$N$G!"%U%)!<%k%P%C%/$H$7$F(B +% $B0z?t$N%F%-%9%H$r$=$N$^$^=PNO$9$k!#(B +% \begin{macrocode} + \expandafter\@firstofone + \else + \expandafter\pxrr@kenten@proc + \fi +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\pxrr@k@bind@param} +% $B!H8F=P;~JQ?t!I$X$N%3%T!<$r9T$&!#(B +% \begin{macrocode} +\def\pxrr@k@bind@param{% + \let\pxrr@c@ruby@font\pxrr@k@ruby@font + \let\pxrr@c@size@ratio\pxrr@k@size@ratio + \let\pxrr@c@inter@gap\pxrr@k@inter@gap +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\pxrr@kenten@proc} +% |\pxrr@kenten@proc{|\jmeta{$B?FJ8;zNs(B}|}|\Means +% $B$3$l$,<jB3$NK\BN$H$J$k!#(B +% \begin{macrocode} +\def\pxrr@kenten@proc#1{% + \pxrr@prepare@fallback{#1}% + \pxrr@k@bind@param + \pxrr@assign@fsize + \pxrr@k@parse@option\pxrr@option + \pxrr@if@alive{% + \pxrr@k@decompose{#1}% + \let\pxrr@body@list\pxrr@res + \pxrr@kenten@main + }% + \pxrr@kenten@exit +} +% \end{macrocode} +% \end{macro} +% +% \subsubsection{$BAHHG=hM}(B} +% +% \begin{macro}{\pxrr@kenten@main} +% $B7wE@$NAHHG=hM}!#(B +% \begin{macrocode} +\def\pxrr@kenten@main{% + \setbox\pxrr@boxb\pxrr@hbox@to\z@{% + \pxrr@use@ruby@font + \hss\pxrr@k@the@mark\hss + }% + \let\pxrr@entry\pxrr@kenten@entry + \let\pxrr@entry@kspan\pxrr@kenten@entry@kspan + \let\pxrr@entry@ruby\pxrr@kenten@entry@ruby + \let\pxrr@entry@kenten\pxrr@kenten@entry@kenten + \let\pxrr@post\pxrr@k@list@post + \pxrr@k@list@pre + \pxrr@body@list +} +% \end{macrocode} +% \end{macro} +% +% \subsubsection{$BA0=hM}(B} +% +% \begin{macro}{\pxrr@jprologue} +% $B7wE@MQ$N3+;O=hM}!#(B +% \begin{macrocode} +\def\pxrr@k@prologue{% + \ifpxrr@k@ghost + \pxrr@jghost@char + \pxrr@inhibitglue + \fi + \begingroup + \ifpxrr@k@ghost + \setbox\pxrr@boxa\hbox{\pxrr@jghost@char}% + \kern-\wd\pxrr@boxa + \fi +} +% \end{macrocode} +% \end{macro} +% +% \subsubsection{$B8e=hM}(B} +% +% \begin{macro}{\pxrr@kenten@exit} +% $B=PNO$r=*$($F!":G8e$K8F$P$l$k%^%/%m!#(B +% \begin{macrocode} +\def\pxrr@kenten@exit{% + \ifpxrr@fatal@error + \pxrr@fallback + \fi + \pxrr@k@epilogue +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\pxrr@jepilogue} +% $B=*N;=hM}!#(B +% \begin{macrocode} +\def\pxrr@k@epilogue{% + \ifpxrr@k@ghost + \setbox\pxrr@boxa\hbox{\pxrr@jghost@char}% + \kern-\wd\pxrr@boxa + \fi + \endgroup + \ifpxrr@k@ghost + \pxrr@inhibitglue + \pxrr@jghost@char + \fi +} +% \end{macrocode} +% \end{macro} +% +% \subsection{$B%G%P%C%0MQ=PNO(B} +% +% \begin{macrocode} +\def\pxrr@debug@show@kenten@input{% + \typeout{% +pxrr@k@the@mark=\meaning\pxrr@k@the@mark^^J% +pxrr@side=\meaning\pxrr@side^^J% +pxrr@body@list=\meaning\pxrr@body@list^^J% + }% +} +% \end{macrocode} +% +%^^A------------------------------------ +% \section{$B<BAu!J7wE@%k%SF1;~IU2C!K(B} +% +% $B%3%s%\!*(B +% +% \subsection{$B8F=P;~%Q%i%a%?(B} +% +% \begin{macro}{\ifpxrr@apply@combo} +% $BD>8e$K<B9T$9$k%k%SL?Na$K$D$$$FF1;~IU2C$r9T$&$+!#(B +% $B%9%$%C%A!#(B +% \begin{macrocode} +\newif\ifpxrr@apply@combo +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\ifpxrr@combo} +% $B8=:_<B9TCf$N%k%SL?Na$K$D$$$FF1;~IU2C$r9T$&$+!#(B +% $B%9%$%C%A!#(B +% \begin{macrocode} +\newif\ifpxrr@combo +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\pxrr@ck@ruby@font} +% \begin{macro}{\pxrr@ck@size@ratio} +% \begin{macro}{\pxrr@ck@inter@gap} +% \begin{macro}{\pxrr@ck@ruby@inter@gap} +% \begin{macro}{\pxrr@ck@side} +% \begin{macro}{\pxrr@ck@the@mark} +% \begin{macro}{\pxrr@ck@ruby@combo} +% $BF1;~IU2C;~$N7wE@B&$N8F=P;~%Q%i%a%?$NCM!#(B +% \begin{macrocode} +\let\pxrr@ck@ruby@font\relax +\let\pxrr@ck@size@ratio\relax +\let\pxrr@ck@inter@gap\relax +\let\pxrr@ck@ruby@inter@gap\relax +\let\pxrr@ck@side\relax +\let\pxrr@ck@the@mark\relax +\let\pxrr@ck@ruby@combo\relax +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\ifpxrr@ck@kenten@head} +% $BEv3:$N%k%SL?Na$,!"7wE@L?Na$N0z?t$N@hF,$K$"$k$+!#(B +% \begin{macrocode} +\newif\ifpxrr@ck@kenten@head +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\ifpxrr@ck@kenten@end} +% $BEv3:$N%k%SL?Na$,!"7wE@L?Na$N0z?t$N@hF,$K$"$k$+!#(B +% \begin{macrocode} +\newif\ifpxrr@ck@kenten@end +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\pxrr@ck@bind@param} +% $B!H8F=P;~JQ?t!I$X$N%3%T!<$r9T$&!#(B +% \begin{macrocode} +\def\pxrr@ck@bind@param{% + \let\pxrr@ck@ruby@font\pxrr@c@ruby@font + \let\pxrr@ck@size@ratio\pxrr@c@size@ratio + \let\pxrr@ck@inter@gap\pxrr@c@inter@gap + \let\pxrr@ck@ruby@inter@gap\pxrr@k@ruby@inter@gap + \let\pxrr@ck@side\pxrr@side + \let\pxrr@ck@the@mark\pxrr@k@the@mark + \let\pxrr@ck@ruby@combo\pxrr@k@ruby@combo + \pxrr@csletcs{ifpxrr@ck@kenten@head}{ifpxrr@k@first@entry}% + \pxrr@csletcs{ifpxrr@ck@kenten@end}{ifpxrr@k@last@entry}% +} +% \end{macrocode} +% \end{macro} + +% \subsection{$B$=$NB>$NJQ?t(B} +% +% \begin{macro}{\pxrr@ck@zw} +% $B7wE@$NA43QI}!#(B +% \begin{macrocode} +\let\pxrr@ck@zw\relax +% \end{macrocode} +% \end{macro} +% \begin{macro}{\pxrr@ck@raise@P} +% $B%k%SB&$,(B |P| $B$G$"$k>l9g$N!"7wE@$N?bD>J}8~$N0\F0NL!#(B +% \Note $B7wE@B&$,(B |S| $B$G$"$k>l9g$OIiCM$K$J$k!#(B +% \begin{macrocode} +\let\pxrr@ck@raise@P\relax +% \end{macrocode} +% \end{macro} +% \begin{macro}{\pxrr@ck@raise@S} +% $B%k%SB&$,(B |S| $B$G$"$k>l9g$N!"7wE@$N?bD>J}8~$N0\F0NL!#(B +% \begin{macrocode} +\let\pxrr@ck@raise@S\relax +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\pxrr@ck@raise@t} +% $B%k%SB&$,N>B&%k%S$G$"$k>l9g$N!"7wE@$N?bD>J}8~$N0\F0NL!#(B +% \begin{macrocode} +\let\pxrr@ck@raise@t\relax +% \end{macrocode} +% \end{macro} +% +% \subsection{$B%*%W%7%g%s@09g@-8!::(B} +% +% \begin{macro}{\pxrr@ck@check@option} +% $BF1;~IU2C$N$?$a$N8F=P;~%Q%i%a%?$ND4@0!#(B +% \begin{macrocode} +\def\pxrr@ck@check@option{% + \ifpxrr@ck@kenten@head + \let\pxrr@bintr@\@empty + \let\pxrr@bscomp=.\relax + \pxrr@bnobrtrue + \fi + \ifpxrr@ck@kenten@end + \let\pxrr@aintr@\@empty + \let\pxrr@ascomp=.\relax + \pxrr@anobrtrue + \fi +} +% \end{macrocode} +% \end{macro} +% +% \subsection{$B%U%)%s%H%5%$%:(B} +% +% \begin{macro}{\pxrr@ck@assign@fsize} +% $B%U%)%s%H$K4XO"$9$k@_Dj!#(B +% \begin{macrocode} +\def\pxrr@ck@assign@fsize{% +% \end{macrocode} +% |\pxrr@ck@zw| $B$NCM$r5a$a$k!#(B +% \begin{macrocode} + \begingroup + \@tempdima=\f@size\p@ + \@tempdima\pxrr@ck@size@ratio\@tempdima + \edef\pxrr@ruby@fsize{\the\@tempdima}% + \let\pxrr@c@ruby@font\pxrr@ck@ruby@font + \pxrr@use@ruby@font + \pxrr@get@zwidth\pxrr@ck@zw + \global\let\pxrr@gtempa\pxrr@ck@zw + \endgroup + \let\pxrr@ck@zw\pxrr@gtempa +% \end{macrocode} +% |\pxrr@ck@raise@P|$B!"(B|\pxrr@ck@raise@S| $B$NCM$r7W;;$9$k!#(B +% \begin{macrocode} + \ifcase\pxrr@ck@side +% \end{macrocode} +% $B7wE@B&$,(B |P| $B$N>l9g!#(B +% \begin{macrocode} + \@tempdimc\pxrr@ck@zw + \advance\@tempdimc-\pxrr@htratio\@tempdimc + \@tempdima\pxrr@ruby@raise\relax + \@tempdimb\pxrr@ruby@zw\relax + \advance\@tempdima\pxrr@htratio\@tempdimb + \@tempdimb\pxrr@body@zw\relax + \advance\@tempdima\pxrr@ck@ruby@inter@gap\@tempdimb + \advance\@tempdima\@tempdimc + \edef\pxrr@ck@raise@P{\the\@tempdima}% + \@tempdima\pxrr@body@zw\relax + \@tempdima\pxrr@htratio\@tempdima + \@tempdimb\pxrr@body@zw\relax + \advance\@tempdima\pxrr@ck@inter@gap\@tempdimb + \advance\@tempdima\@tempdimc + \edef\pxrr@ck@raise@S{\the\@tempdima}% + \let\pxrr@ck@raise@t\pxrr@ck@raise@P + \or +% \end{macrocode} +% $B7wE@B&$,(B |S| $B$N>l9g!#(B +% \begin{macrocode} + \@tempdimc\pxrr@ck@zw + \@tempdimc\pxrr@htratio\@tempdimc + \@tempdima-\pxrr@ruby@lower\relax + \@tempdimb\pxrr@ruby@zw\relax + \advance\@tempdimb-\pxrr@htratio\@tempdimb + \advance\@tempdima-\@tempdimb + \@tempdimb\pxrr@body@zw\relax + \advance\@tempdima-\pxrr@ck@ruby@inter@gap\@tempdimb + \advance\@tempdima-\@tempdimc + \edef\pxrr@ck@raise@S{\the\@tempdima}% + \@tempdima-\pxrr@body@zw\relax + \advance\@tempdima-\pxrr@htratio\@tempdima + \@tempdimb\pxrr@body@zw\relax + \advance\@tempdima-\pxrr@ck@inter@gap\@tempdimb + \advance\@tempdima-\@tempdimc + \edef\pxrr@ck@raise@P{\the\@tempdima}% + \let\pxrr@ck@raise@t\pxrr@ck@raise@S + \fi +} +% \end{macrocode} +% \end{macro} +% +% \subsection{$B%V%m%C%/Kh$NAHHG(B} +% +% \begin{macro}{\pxrr@ck@body@natwd} +% $B?FJ8;zNs$N<+A3D9!#(B +% \begin{macrocode} +\let\pxrr@ck@body@natwd\relax +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\pxrr@ck@locate} +% $B7wE@Ns$N%Q%?!<%s;XDj!#(B +% \begin{macrocode} +\let\pxrr@ck@locate\relax +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\pxrr@ck@kenten@list} +% $B7wE@Ns$N%j%9%H!#(B +% \begin{macrocode} +\let\pxrr@ck@kenten@list\relax +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\pxrr@ck@compose} +% |#1| $B$K?FJ8;z%F%-%9%H!"(B|\pxrr@ck@body@natwd| $B$K?FJ8;z$N<+A3D9!"(B +% $B%\%C%/%9(B0$B$K%k%S=PNO!"(B|\pxrr@boxa| $B$K?FJ8;z=PNO!"(B +% |\pxrr@ck@locate| $B$K%Q%?!<%s$,F~$C$F$$$kA0Ds$G!"(B +% $B%\%C%/%9(B0$B$K7wE@$rDI2C$9$k!#(B +% +% \begin{macrocode} +\def\pxrr@ck@compose#1{% +% \end{macrocode} +% $B7wE@$rAH$s$@%\%C%/%9$r:n$k!#(B +% \begin{macrocode} + \setbox\tw@\pxrr@hbox@to\z@{% + \@tempdima=\f@size\p@ + \@tempdima\pxrr@ck@size@ratio\@tempdima + \edef\pxrr@ruby@fsize{\the\@tempdima}% + \let\pxrr@c@ruby@font\pxrr@ck@ruby@font + \pxrr@use@ruby@font + \hss\pxrr@ck@the@mark\hss + }% +% \end{macrocode} +% $B?FJ8;z%F%-%9%H$rJ,2r$7$?8e!"%j%9%H(B |\pxrr@res| $B$r(B +% $B7wE@$N%j%9%H$KCV$-49$($k!#(B +% \begin{macrocode} + \pxrr@save@listproc + \pxrr@decompose{#1}% + \def\pxrr@pre{% + \let\pxrr@res\@empty + \pxrr@ck@compose@entry\pxrr@pre + }% + \def\pxrr@inter{% + \pxrr@ck@compose@entry\pxrr@inter + }% + \def\pxrr@post{% + \pxrr@appto\pxrr@res{\pxrr@post}% + }% + \pxrr@res + \pxrr@restore@listproc + \let\pxrr@natwd\pxrr@ck@body@natwd +% \end{macrocode} +% $B7wE@%j%9%H$r6QEyG[CV$9$k!#(B +% \begin{macrocode} + \pxrr@evenspace@int\pxrr@ck@locate\pxrr@boxb\relax + {\wd\pxrr@boxa}% +% \end{macrocode} +% $B9g@.=hM}!#(B +% \begin{macrocode} + \setbox\z@\hbox{% + \unhcopy\z@ + \kern-\wd\z@ + \ifcase\pxrr@side + \raise\pxrr@ck@raise@P + \or + \raise\pxrr@ck@raise@S + \or + \raise\pxrr@ck@raise@t + \fi + \hb@xt@\wd\pxrr@boxa{\hss\copy\pxrr@boxb\hss}% + }% +} +\def\pxrr@ck@compose@entry#1#2{% + \setbox\pxrr@boxb\pxrr@hbox{#2}% + \edef\pxrr@tempa{% + \noexpand\pxrr@appto\noexpand\pxrr@res{\noexpand#1{% + \hb@xt@\the\wd\pxrr@boxb{\hss\copy\tw@\hss}}}% + }\pxrr@tempa +} +% \end{macrocode} +% \end{macro} +% +%^^A------------------------------------ +% \section{$B<BAu!'(Bhyperref$BBP:v(B} +% +% PDF$BJ8;zNsCf$G$O%k%SL?Na$d7wE@L?Na$,!HL5Fq$J=PNO!I$r$9$k$h$&$K$9$k!#(B +% $B8=>u$G$O!"%k%S!&7wE@$H$b$K?FJ8;z$N$_$r=PNO$9$k$3$H$K$9$k!#(B +% +% \begin{macro}{\pxrr@dumb@sub} +% $B%*%W%7%g%sItJ,$rFI$_Ht$P$9Jd=u%^%/%m!#(B +% \begin{macrocode} +\def\pxrr@dumb@sub#1#2#{#1} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\pxrr@dumb@ruby} +% $BL5Fq$J%k%SL?Na!#(B +% \begin{macrocode} +\def\pxrr@dumb@ruby{% + \pxrr@dumb@sub\pxrr@dumb@ruby@ +} +\def\pxrr@dumb@ruby@#1#2{#1} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\pxrr@dumb@truby} +% $BL5Fq$JN>B&%k%SL?Na!#(B +% \begin{macrocode} +\def\pxrr@dumb@truby{% + \pxrr@dumb@sub\pxrr@dumb@truby@ +} +\def\pxrr@dumb@truby@#1#2#3{#1} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\pxrr@dumb@tkenten} +% $BL5Fq$J7wE@L?Na!#(B +% \Note |\kspan| $B$b$3$NDj5A$rMxMQ$9$k!#(B +% \begin{macrocode} +\def\pxrr@dumb@kenten{% + \pxrr@dumb@sub\pxrr@dumb@kenten@ +} +\def\pxrr@dumb@kenten@#1{#1} +% \end{macrocode} +% \end{macro} +% +% \PKN{hyperref}$B$N(B |\pdfstringdef| $BMQ$N%U%C%/(B |\pdfstringdefPreHook| +% $B$K>e=q$-=hM}$rDI5-$9$k!#(B +% \begin{macrocode} +\providecommand*\pdfstringdefPreHook{} +\g@addto@macro\pdfstringdefPreHook{% +% \end{macrocode} +% |\ruby| $B$H(B |\kenten| $B$O!VK\%Q%C%1!<%8$NL?Na$G$"$k$+!W$N8!::$,I,MW!#(B +% \begin{macrocode} + \ifx\pxrr@cmd@ruby\ruby + \let\ruby\pxrr@dumb@ruby + \fi + \let\jruby\pxrr@dumb@ruby + \let\aruby\pxrr@dumb@ruby + \let\truby\pxrr@dumb@truby + \let\atruby\pxrr@dumb@truby + \ifx\pxrr@cmd@kenten\kenten + \let\kenten\pxrr@dumb@kenten + \fi + \let\kspan\pxrr@dumb@kenten +} +% \end{macrocode} +% +%^^A------------------------------------ % \Finale % \endinput diff --git a/Master/texmf-dist/tex/platex/pxrubrica/pxrubrica.sty b/Master/texmf-dist/tex/platex/pxrubrica/pxrubrica.sty index 7bc67f1b6a2..3efd8853ac3 100644 --- a/Master/texmf-dist/tex/platex/pxrubrica/pxrubrica.sty +++ b/Master/texmf-dist/tex/platex/pxrubrica/pxrubrica.sty @@ -22,7 +22,7 @@ %% in the same archive or directory.) \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{pxrubrica} - [2017/04/20 v1.2 PX Japanese-style ruby] + [2017/04/27 v1.3 PX Japanese-style ruby] \RequirePackage{keyval} \def\pxrr@pkgname{pxrubrica} \def\pxrr@error{% @@ -159,6 +159,9 @@ \chardef\pxrr@evensp=1 \chardef\pxrr@revensp=1 \chardef\pxrr@fullsize=1 +\let\pxrr@c@ruby@font\@undefined +\let\pxrr@c@size@ratio\@undefined +\let\pxrr@c@inter@gap\@undefined \let\pxrr@body@list\@undefined \let\pxrr@body@count\@undefined \let\pxrr@ruby@list\@undefined @@ -609,6 +612,27 @@ \def#1{?}% } \fi\fi +\pxrr@jchardef\pxrr@zspace=\pxrr@jc{2121:3000} +\ifpxrr@in@uptex + \kchardef\pxrr@jghost@char="113000 +\else\ifpxrr@in@luatexja + \let\pxrr@jghost@char\pxrr@zspace + \def\pxrr@jghost@check{% + \begingroup + \setbox\z@\hbox{\char"3001\char"3000}% + \setbox\tw@\hbox{\char"3001\inhibitglue\char"3000}% + \ifdim\wd\tw@=\wd\z@ + \global\chardef\pxrr@jghost@char@="00A0 + \gdef\pxrr@jghost@char{\ltjjachar\pxrr@jghost@char@}% + \fi + \endgroup + } + \AtBeginDocument{% + \pxrr@jghost@check + } +\else + \let\pxrr@jghost@char\pxrr@zspace +\fi\fi \pxrr@jchardef\pxrr@x@K=\pxrr@jc{306C:4E00} \ifpxrr@in@ptex \def\pxrr@get@iiskip#1{% @@ -711,17 +735,61 @@ \fi\fi\fi\fi \ifpxrr@in@ptex \def\pxrr@get@prebreakpenalty#1#2{% - #1=\prebreakpenalty`#2\relax + #1=\prebreakpenalty#2\relax } \else\ifpxrr@in@luatexja \def\pxrr@get@prebreakpenalty#1#2{% - #1=\ltjgetparameter{prebreakpenalty}{`#2}\relax + #1=\ltjgetparameter{prebreakpenalty}{#2}\relax } \else \def\pxrr@get@prebreakpenalty#1#2{% #1=\z@ } \fi\fi +\ifpxrr@in@ptex + \def\pxrr@get@postbreakpenalty#1#2{% + #1=\postbreakpenalty#2\relax + } +\else\ifpxrr@in@luatexja + \def\pxrr@get@postbreakpenalty#1#2{% + #1=\ltjgetparameter{postbreakpenalty}{#2}\relax + } +\else + \def\pxrr@get@postbreakpenalty#1#2{% + #1=\z@ + } +\fi\fi +\ifpxrr@in@ptex + \def\pxrr@check@punct@char#1#2{% + \pxrr@okfalse + \ifcase#2\relax + \ifnum\xspcode#1=\thr@@\else + \pxrr@oktrue + \fi + \else + \ifnum\inhibitxspcode#1=\thr@@\else + \pxrr@oktrue + \fi + \fi + } +\else\ifpxrr@in@luatexja + \def\pxrr@check@punct@char#1#2{% + \ifnum\ltjgetparameter{jaxspmode}{#1}=\thr@@ + \pxrr@okfalse + \else + \pxrr@oktrue + \fi + } +\else + \def\pxrr@check@punct@char#1#2{% + \pxrr@okfalse + } +\fi\fi +\ifx\inhibitglue\@undefined + \let\pxrr@inhibitglue\relax +\else + \let\pxrr@inhibitglue\inhibitglue +\fi \newif\ifpxrr@in@setup \pxrr@in@setupfalse \newcommand*\rubysetup[1]{% \pxrr@in@setuptrue @@ -1131,6 +1199,9 @@ \if g\pxrr@mode\else \chardef\pxrr@evensp\@ne \fi + \ifpxrr@combo + \pxrr@ck@check@option + \fi } \let\pxrr@ruby@fsize\pxrr@zeropt \let\pxrr@body@zw\pxrr@zeropt @@ -1142,7 +1213,7 @@ \let\pxrr@iaiskip\pxrr@zeropt \def\pxrr@assign@fsize{% \@tempdima=\f@size\p@ - \@tempdima\pxrr@size@ratio\@tempdima + \@tempdima\pxrr@c@size@ratio\@tempdima \edef\pxrr@ruby@fsize{\the\@tempdima}% \pxrr@get@zwidth\pxrr@body@zw \begingroup @@ -1164,7 +1235,7 @@ \advance\@tempdimb-\pxrr@htratio\@tempdimb \advance\@tempdima\@tempdimb \@tempdimb\pxrr@body@zw\relax - \advance\@tempdima\pxrr@inter@gap\@tempdimb + \advance\@tempdima\pxrr@c@inter@gap\@tempdimb \edef\pxrr@ruby@raise{\the\@tempdima}% \@tempdima\pxrr@body@zw\relax \advance\@tempdima-\pxrr@htratio\@tempdima @@ -1172,14 +1243,17 @@ \@tempdimb\pxrr@htratio\@tempdimb \advance\@tempdima\@tempdimb \@tempdimb\pxrr@body@zw\relax - \advance\@tempdima\pxrr@inter@gap\@tempdimb + \advance\@tempdima\pxrr@c@inter@gap\@tempdimb \edef\pxrr@ruby@lower{\the\@tempdima}% + \ifpxrr@combo + \pxrr@ck@assign@fsize + \fi } \def\pxrr@use@ruby@font{% \pxrr@without@macro@trace{% \let\rubyfontsize\pxrr@ruby@fsize \fontsize{\pxrr@ruby@fsize}{\z@}\selectfont - \pxrr@ruby@font + \pxrr@c@ruby@font }% } \chardef\pxrr@locate@inner=1 @@ -1368,6 +1442,8 @@ } \def\pxrr@compose@oneside@block@do#1#2#3#4{% \setbox\pxrr@boxa\pxrr@hbox{#2}% + \edef\pxrr@ck@body@natwd{\the\wd\pxrr@boxa}% + \let\pxrr@ck@locate\pxrr@locate@inner \setbox\pxrr@boxr\pxrr@hbox{% \pxrr@use@ruby@font #3% @@ -1382,6 +1458,7 @@ \let\pxrr@locate@temp\pxrr@locate@head \fi \fi + \let\pxrr@ck@locate\pxrr@locate@temp \pxrr@decompose{#2}% \edef\pxrr@natwd{\the\wd\pxrr@boxa}% \pxrr@evenspace@int\pxrr@locate@temp\pxrr@boxa\relax @@ -1409,6 +1486,9 @@ \lower\pxrr@ruby@lower\box\pxrr@boxr \fi }% + \ifnum \ifpxrr@combo\pxrr@ck@ruby@combo\else\z@\fi >\z@ + \pxrr@ck@compose{#2}% + \fi \ht\z@\z@ \dp\z@\z@ \@tempdima\wd\z@ \setbox\pxrr@boxr\hbox{% @@ -1426,6 +1506,8 @@ } \def\pxrr@compose@twoside@block@do#1#2#3#4{% \setbox\pxrr@boxa\pxrr@hbox{#2}% + \edef\pxrr@ck@body@natwd{\the\wd\pxrr@boxa}% + \let\pxrr@ck@locate\pxrr@locate@inner \setbox\pxrr@boxr\pxrr@hbox{% \pxrr@use@ruby@font #3% @@ -1449,6 +1531,7 @@ \let\pxrr@locate@temp\pxrr@locate@head \fi \fi + \let\pxrr@ck@locate\pxrr@locate@temp \ifdim\wd\pxrr@boxr<\wd\pxrr@boxb \pxrr@compose@twoside@block@sub{#2}{#3}% \pxrr@boxr\pxrr@boxb @@ -1487,6 +1570,9 @@ \kern-\@tempdima \lower\pxrr@ruby@lower\box\pxrr@boxb }% + \ifnum \ifpxrr@combo\pxrr@ck@ruby@combo\else\z@\fi >\z@ + \pxrr@ck@compose{#2}% + \fi \ht\z@\z@ \dp\z@\z@ \@tempdima\wd\z@ \setbox\pxrr@boxr\hbox{% @@ -1643,7 +1729,7 @@ \pxrr@check@kinsoku@c#1#1% } \def\pxrr@check@kinsoku@c#1{% - \pxrr@get@prebreakpenalty\pxrr@cntr{#1}% + \pxrr@get@prebreakpenalty\pxrr@cntr{`#1}% \pxrr@tempb } \def\pxrr@tempa#1#2\pxrr@nil{% @@ -1834,8 +1920,21 @@ \else F% \fi\fi T% } +\def\pxrr@bind@param{% + \ifpxrr@apply@combo + \pxrr@apply@combofalse + \pxrr@combotrue + \pxrr@ck@bind@param + \else + \pxrr@combofalse + \fi + \let\pxrr@c@ruby@font\pxrr@ruby@font + \let\pxrr@c@size@ratio\pxrr@size@ratio + \let\pxrr@c@inter@gap\pxrr@inter@gap +} \def\pxrr@ruby@proc#1#2{% \pxrr@prepare@fallback{#1}% + \pxrr@bind@param \pxrr@assign@fsize \pxrr@parse@option\pxrr@option \pxrr@decompbar{#2}% @@ -1873,6 +1972,7 @@ } \def\pxrr@truby@proc#1#2#3{% \pxrr@prepare@fallback{#1}% + \pxrr@bind@param \pxrr@assign@fsize \pxrr@parse@option\pxrr@option \def\pxrr@all@input{{#1}{#2}{#3}}% @@ -2213,16 +2313,16 @@ } \let\pxrr@ruby@main@mg\@undefined \newif\ifpxrr@ghost -\pxrr@jchardef\pxrr@zspace=\pxrr@jc{2121:3000} \def\pxrr@jprologue{% \ifpxrr@jghost - \pxrr@zspace + \pxrr@jghost@char + \pxrr@inhibitglue \fi \begingroup \pxrr@abodyfalse \pxrr@csletcs{ifpxrr@ghost}{ifpxrr@jghost}% \ifpxrr@jghost - \setbox\pxrr@boxa\hbox{\pxrr@zspace}% + \setbox\pxrr@boxa\hbox{\pxrr@jghost@char}% \kern-\wd\pxrr@boxa \fi } @@ -2266,12 +2366,13 @@ } \def\pxrr@jepilogue{% \ifpxrr@jghost - \setbox\pxrr@boxa\hbox{\pxrr@zspace}% + \setbox\pxrr@boxa\hbox{\pxrr@jghost@char}% \kern-\wd\pxrr@boxa \fi \endgroup \ifpxrr@jghost - \pxrr@zspace + \pxrr@inhibitglue + \pxrr@jghost@char \fi } \def\pxrr@aepilogue{% @@ -2339,6 +2440,771 @@ \typeout{----\pxrr@pkgname\space resolve-mode: \meaning\pxrr@mode}% } +\def\pxrr@warn@na@kmark#1{% + \pxrr@warn{Unavailable kenten mark '#1'}% +} +\def\pxrr@err@invalid@value#1{% + \pxrr@error{Invalid value '#1'}% + {\@eha}% +} +\let\pxrr@k@ymark\@undefined +\let\pxrr@k@ysmark\@undefined +\let\pxrr@k@tmark\@undefined +\let\pxrr@k@tsmark\@undefined +\AtEndOfPackage{% + \pxrr@k@get@mark\pxrr@k@ymark{bullet*}% + \pxrr@k@get@mark\pxrr@k@ysmark{sesame*}% + \pxrr@k@get@mark\pxrr@k@tmark{sesame*}% + \pxrr@k@get@mark\pxrr@k@tsmark{bullet*}% +} +\let\pxrr@k@ruby@font\@empty +\def\pxrr@k@size@ratio{0.5} +\newif\ifpxrr@k@ghost \pxrr@k@ghosttrue +\def\pxrr@k@inter@gap{0} +\def\pxrr@k@ruby@inter@gap{0} +\chardef\pxrr@k@d@side=0 +\chardef\pxrr@k@d@mark=0 +\chardef\pxrr@k@ruby@combo=1 +\chardef\pxrr@k@d@full=0 +\chardef\pxrr@k@mark=0 +\chardef\pxrr@k@full=0 +\let\pxrr@k@the@mark\relax +\newif\ifpxrr@avail@UTF +\def\pxrr@decide@avail@UTF{% + \global\let\pxrr@decide@avail@UTF\relax + \ifx\UTF\@undefined \global\pxrr@avail@UTFfalse + \else \global\pxrr@avail@UTFtrue + \fi +} +\def\pxrr@k@decompose#1{% + \let\pxrr@res\@empty + \pxrr@cntr=\z@ + \pxrr@k@decompose@loopa#1\pxrr@end +} +\def\pxrr@k@decompose@loopa{% + \futurelet\pxrr@token\pxrr@k@decompose@loopb +} +\def\pxrr@k@decompose@loopb{% + \pxrr@cond\ifx\pxrr@token\pxrr@end\fi{% + \pxrr@appto\pxrr@res{\pxrr@post}% + }{\pxrr@if@kspan@cmd\pxrr@token{% + \pxrr@k@decompose@special\pxrr@k@decompose@kspan + }{\pxrr@if@ruby@cmd\pxrr@token{% + \pxrr@k@decompose@special\pxrr@k@decompose@ruby + }{\pxrr@if@truby@cmd\pxrr@token{% + \pxrr@k@decompose@special\pxrr@k@decompose@truby + }{\pxrr@if@kenten@cmd\pxrr@token{% + \pxrr@k@decompose@special\pxrr@k@decompose@kenten + }{\pxrr@cond\ifx\pxrr@token\@sptoken\fi{% + \pxrr@k@decompose@loope + }{% + \pxrr@setok{\pxrr@ifx{\pxrr@token\bgroup}}% + \pxrr@k@decompose@loopc + }}}}}}% +} +\def\pxrr@k@decompose@loopc#1{% + \pxrr@appto\pxrr@res{\pxrr@entry}% + \ifpxrr@ok + \pxrr@appto\pxrr@res{{{#1}}}% + \else + \pxrr@appto\pxrr@res{{#1}}% + \fi + \pxrr@k@decompose@loopd +} +\def\pxrr@k@decompose@loopd{% + \advance\pxrr@cntr\@ne + \pxrr@k@decompose@loopa +} +\expandafter\def\expandafter\pxrr@k@decompose@loope\space{% + \pxrr@okfalse + \pxrr@k@decompose@loopc{ }% +} +\def\pxrr@k@decompose@special#1#2#{% + #1{#2}% +} +\def\pxrr@k@decompose@kspan#1#2{% + \pxrr@appto\pxrr@res{\pxrr@entry@kspan{#1{#2}}}% + \pxrr@k@decompose@loopd +} +\def\pxrr@k@decompose@ruby#1#2#3{% + \pxrr@appto\pxrr@res{\pxrr@entry@ruby{#1{#2}{#3}}}% + \pxrr@k@decompose@loopd +} +\def\pxrr@k@decompose@truby#1#2#3#4{% + \pxrr@appto\pxrr@res{\pxrr@entry@ruby{#1{#2}{#3}{#4}}}% + \pxrr@k@decompose@loopd +} +\def\pxrr@k@decompose@kenten#1#2{% + \pxrr@appto\pxrr@res{\pxrr@entry@kenten{#1{#2}}}% + \pxrr@k@decompose@loopd +} +\def\pxrr@cmd@ruby{\jruby} +\def\pxrr@cmd@kenten{\jkenten} +\def\pxrr@if@ruby@cmd#1{% + \if \ifcat\noexpand#1\relax + \ifx#1\pxrr@cmd@ruby T% + \else\ifx#1\jruby T% + \else\ifx#1\aruby T% + \else F% + \fi\fi\fi + \else F% + \fi T\expandafter\@firstoftwo + \else \expandafter\@secondoftwo + \fi +} +\def\pxrr@if@truby@cmd#1{% + \if \ifcat\noexpand#1\relax + \ifx#1\truby T% + \else\ifx#1\atruby T% + \else F% + \fi\fi + \else F% + \fi T\expandafter\@firstoftwo + \else \expandafter\@secondoftwo + \fi +} +\def\pxrr@if@kspan@cmd#1{% + \pxrr@cond\ifx#1\kspan\fi +} +\def\pxrr@if@kenten@cmd#1{% + \if \ifcat\noexpand#1\relax + \ifx#1\pxrr@cmd@kenten T% + \else\ifx#1\jkenten T% + \else F% + \fi\fi + \else F% + \fi T\expandafter\@firstoftwo + \else \expandafter\@secondoftwo + \fi +} +\newcommand*\kentensetup[1]{% + \pxrr@in@setuptrue + \pxrr@fatal@errorfalse + \pxrr@k@parse@option{#1}% + \ifpxrr@fatal@error\else + \let\pxrr@k@d@side\pxrr@side + \let\pxrr@k@d@mark\pxrr@k@mark + \let\pxrr@k@d@full\pxrr@k@full + \fi + \pxrr@in@setupfalse +} +\newcommand*\kentenfontsetup{} +\def\kentenfontsetup#{% + \def\pxrr@k@ruby@font +} +\newcommand*\kentensizeratio[1]{% + \edef\pxrr@k@size@ratio{#1}% +} +\newcommand*\kentenintergap[1]{% + \edef\pxrr@k@inter@gap{#1}% +} +\newcommand*\kentenrubyintergap[1]{% + \edef\pxrr@k@ruby@inter@gap{#1}% +} +\newcommand*\kentenmarkinyoko[1]{% + \pxrr@k@get@mark\pxrr@k@ymark{#1}% +} +\newcommand*\kentensubmarkinyoko[1]{% + \pxrr@k@get@mark\pxrr@k@ysmark{#1}% +} +\newcommand*\kentenmarkintate[1]{% + \pxrr@k@get@mark\pxrr@k@tmark{#1}% +} +\newcommand*\kentensubmarkintate[1]{% + \pxrr@k@get@mark\pxrr@k@tsmark{#1}% +} +\chardef\pxrr@k@ruby@combo@ruby=0 +\chardef\pxrr@k@ruby@combo@both=1 +\newcommand*\kentenrubycombination[1]{% + \pxrr@letcs\pxrr@tempa{pxrr@k@ruby@combo@#1}% + \ifx\pxrr@tempa\relax + \pxrr@err@invalid@value{#1}% + \else + \let\pxrr@k@ruby@combo\pxrr@tempa + \fi +} +\def\pxrr@k@declare@mark#1{% + \global\@namedef{pxrr@k@mark@@#1}% +} +\def\pxrr@k@let@mark#1{% + \global\pxrr@cslet{pxrr@k@mark@@#1}% +} +\def\pxrr@k@get@mark#1#2{% + \futurelet\pxrr@token\pxrr@k@get@mark@a#2\pxrr@nil#1% +} +\def\pxrr@k@get@mark@a{% + \pxrr@cond\ifcat A\noexpand\pxrr@token\fi{% + \pxrr@k@get@mark@c + }{%else + \pxrr@k@get@mark@b + }% +} +\def\pxrr@k@get@mark@b#1\pxrr@nil#2{% + \def#2{#1}% +} +\def\pxrr@k@get@mark@c#1#2\pxrr@nil#3{% + \ifnum`#1<128 + \pxrr@letcs\pxrr@tempa{pxrr@k@mark@@#1#2}% + \ifx\pxrr@tempa\relax + \pxrr@warn@na@kmark{#1#2}% + \else + \let#3\pxrr@tempa + \fi + \else + \pxrr@k@get@mark@b#1#2\pxrr@nil#3% + \fi +} +\def\pxrr@k@declare@mark@char#1#2{% + \pxrr@k@declare@mark@char@a{#1}#2\pxrr@end +} +\def\pxrr@k@declare@mark@char@a#1#2:#3\pxrr@end{% + \pxrr@jchardef\pxrr@tempa\pxrr@jc{#2:#3}% + \ifnum\pxrr@tempa=\pxrr@zspace + \pxrr@k@declare@mark{#1}{\pxrr@k@char@UTF{#1}{#3}}% + \else + \pxrr@k@let@mark{#1}\pxrr@tempa + \fi +} +\def\pxrr@k@char@UTF#1#2{% + \pxrr@decide@avail@UTF + \ifpxrr@avail@UTF + \pxrr@k@declare@mark{#1}{\UTF{#2}}% + \UTF{#2}% + \else + \pxrr@k@let@mark{#1}\@empty + \pxrr@warn@na@kmark{#1}% + \fi +} +\pxrr@k@declare@mark@char{bullet} {2121:2022} +\pxrr@k@declare@mark@char{triangle}{2225:25B2} +\pxrr@k@declare@mark@char{Triangle}{2224:25B3} +\pxrr@k@declare@mark@char{fisheye} {2121:25C9} +\pxrr@k@declare@mark@char{Circle} {217B:25CB} +\pxrr@k@declare@mark@char{bullseye}{217D:25CE} +\pxrr@k@declare@mark@char{circle} {217C:25CF} +\pxrr@k@declare@mark@char{Bullet} {2121:25E6} +\pxrr@k@declare@mark@char{sesame} {2121:FE45} +\pxrr@k@declare@mark@char{Sesame} {2121:FE46} +\pxrr@jchardef\pxrr@ja@dot=\pxrr@jc{2126:30FB} +\pxrr@jchardef\pxrr@ja@comma=\pxrr@jc{2122:3001} +\pxrr@k@declare@mark{bullet*}{% + \pxrr@dima=\pxrr@ruby@zw\relax + \hb@xt@\pxrr@dima{% + \kern-.5\pxrr@dima + \pxrr@if@in@tate{}{\lower.38\pxrr@dima}% + \hbox{% + \pxrr@dima=\f@size\p@ + \fontsize{2\pxrr@dima}{\z@}\selectfont + \pxrr@ja@dot + }% + \hss + }% +} +\pxrr@k@declare@mark{sesame*}{% + \pxrr@dima=\pxrr@ruby@zw\relax + \hb@xt@\pxrr@dima{% + \pxrr@if@in@tate{\kern.1\pxrr@dima}{\kern.05\pxrr@dima}% + \pxrr@if@in@tate{\lower.85\pxrr@dima}{\raise.3\pxrr@dima}% + \hbox{% + \pxrr@dima=\f@size\p@ + \fontsize{2.4\pxrr@dima}{\z@}\selectfont + \pxrr@ja@comma + }% + \hss + }% +} +\def\pxrr@k@parse@option#1{% + \edef\pxrr@tempa{#1}% + \let\pxrr@side\pxrr@k@d@side + \let\pxrr@k@mark\pxrr@k@d@mark + \let\pxrr@k@full\pxrr@k@d@full + \expandafter\pxrr@k@parse@option@loop\pxrr@tempa @\pxrr@end +} +\def\pxrr@k@parse@option@loop#1{% + \pxrr@letcs\pxrr@tempa{pxrr@k@po@PR@#1}% + \pxrr@cond\ifx\pxrr@tempa\relax\fi{% + \pxrr@fatal@knx@letter{#1}% + \pxrr@k@parse@option@exit + }{% + \pxrr@tempa + \pxrr@k@parse@option@loop + }% +} +\def\pxrr@k@parse@option@exit#1\pxrr@end{% + \ifpxrr@in@setup\else + \pxrr@k@check@option + \pxrr@if@in@tate{% + \ifcase\pxrr@k@mark \let\pxrr@k@the@mark\pxrr@k@tmark + \or \let\pxrr@k@the@mark\pxrr@k@tsmark + \fi + }{% + \ifcase\pxrr@k@mark \let\pxrr@k@the@mark\pxrr@k@ymark + \or \let\pxrr@k@the@mark\pxrr@k@ysmark + \fi + }% + \fi +} +\def\pxrr@k@po@PR@@{% + \pxrr@k@parse@option@exit +} +\def\pxrr@k@po@PR@P{% + \chardef\pxrr@side\z@ +} +\def\pxrr@k@po@PR@S{% + \chardef\pxrr@side\@ne +} +\def\pxrr@k@po@PR@p{% + \chardef\pxrr@k@mark\z@ +} +\def\pxrr@k@po@PR@s{% + \chardef\pxrr@k@mark\@ne +} +\def\pxrr@k@po@PR@F{% + \chardef\pxrr@k@full\z@ +} +\def\pxrr@k@po@PR@f{% + \chardef\pxrr@k@full\@ne +} +\def\pxrr@k@check@option{% +} +\def\pxrr@k@compose@block#1#2{% + \setbox\pxrr@boxa\pxrr@hbox{#1}% + \pxrr@k@make@rep@list{\copy\pxrr@boxb}{#2}% + \let\pxrr@natwd\pxrr@zeropt + \pxrr@evenspace@int\pxrr@locate@inner\pxrr@boxr + \relax{\wd\pxrr@boxa}% + \setbox\z@\hbox{% + \ifnum\pxrr@side=\z@ + \raise\pxrr@ruby@raise\box\pxrr@boxr + \else + \lower\pxrr@ruby@lower\box\pxrr@boxr + \fi + }% + \ht\z@\z@ \dp\z@\z@ + \@tempdima\wd\z@ + \setbox\pxrr@boxr\hbox{% + \box\z@ + \kern-\@tempdima + \box\pxrr@boxa + }% +} +\def\pxrr@k@make@rep@list#1#2{% + \def\pxrr@res{\pxrr@pre{#1}}% + \pxrr@cntr=#2\relax + \ifnum\pxrr@cntr>\@ne + \@tempcnta\pxrr@cntr \advance\@tempcnta\m@ne + \@whilenum{\@tempcnta>\z@}\do{% + \pxrr@appto\pxrr@res{\pxrr@inter{#1}}% + \advance\@tempcnta\m@ne + }% + \fi + \pxrr@appto\pxrr@res{\pxrr@post}% +} +\newif\ifpxrr@k@first@entry +\newif\ifpxrr@k@last@entry +\newif\ifpxrr@k@prev@is@block +\let\pxrr@k@accum@res\relax +\mathchardef\pxrr@k@prebreakpenalty\z@ +\mathchardef\pxrr@k@postbreakpenalty\z@ +\chardef\pxrr@k@entry@res@type\z@ +\def\pxrr@k@list@pre{% + \pxrr@k@first@entrytrue + \pxrr@k@last@entryfalse + \pxrr@k@prev@is@blockfalse + \let\pxrr@k@accum@res\@empty + \chardef\pxrr@k@block@seq@state\z@ +} +\def\pxrr@k@entry@with#1#2{% + \pxrr@if@last{% + \pxrr@k@last@entrytrue + \pxrr@k@entry@with@a#1{#2}% + }{% + \pxrr@k@entry@with@a#1{#2}% + }% +} +\def\pxrr@k@entry@with@a#1#2{% + \mathchardef\pxrr@k@prebreakpenalty\z@ + \mathchardef\pxrr@k@postbreakpenalty\z@ + #1{#2}% + \ifnum\pxrr@k@entry@res@type=\z@ + \expandafter\pxrr@appto\expandafter\pxrr@k@accum@res + \expandafter{\pxrr@res}% + \else + \pxrr@k@accum@res + \let\pxrr@k@accum@res\@empty + \fi + \ifnum\pxrr@k@prebreakpenalty>\z@ + \@tempcntb\lastpenalty \unpenalty + \advance\@tempcntb\pxrr@k@prebreakpenalty + \penalty\@tempcntb + \fi + \ifnum\pxrr@k@entry@res@type=\tw@ + \ifpxrr@k@prev@is@block + \pxrr@inter@mono + \fi + \pxrr@k@prev@is@blocktrue + \else + \pxrr@k@prev@is@blockfalse + \fi + \ifnum\pxrr@k@entry@res@type>\z@ + \unhbox\pxrr@boxr + \fi + \ifnum\pxrr@k@postbreakpenalty>\z@ + \penalty\pxrr@k@postbreakpenalty + \fi + \pxrr@k@first@entryfalse +} +\def\pxrr@k@list@post{% + \pxrr@k@accum@res + \let\pxrr@k@accum@res\@empty +} +\def\pxrr@kenten@entry{% + \pxrr@k@entry@with\pxrr@kenten@entry@ +} +\def\pxrr@kenten@entry@#1{% + \pxrr@k@check@char{#1}% + \ifpxrr@ok + \pxrr@k@compose@block{#1}\@ne + \chardef\pxrr@k@entry@res@type=\tw@ + \else + \def\pxrr@res{#1}% + \chardef\pxrr@k@entry@res@type=\z@ + \fi +} +\def\pxrr@kenten@entry@kspan{% + \pxrr@k@entry@with\pxrr@kenten@entry@kspan@ +} +\def\pxrr@kenten@entry@kspan@#1{% + \pxrr@kenten@entry@kspan@a#1% +} +\def\pxrr@kenten@entry@kspan@a#1{% + \@ifstar{% + \@testopt\pxrr@kenten@entry@kspan@c{}% + }{% + \@testopt\pxrr@kenten@entry@kspan@b{}% + }% +} +\def\pxrr@kenten@entry@kspan@b[#1]#2{% + \setbox\z@\pxrr@hbox{#2}% + \@tempdima\pxrr@body@zw\relax + \@tempdimb\wd\z@ \advance\@tempdimb.25\@tempdima + \divide\@tempdimb\@tempdima + \edef\pxrr@kenten@entry@tempa{\number\@tempdimb}% + \pxrr@k@compose@block{#2}\pxrr@kenten@entry@tempa + \chardef\pxrr@k@entry@res@type=\tw@ +} +\def\pxrr@kenten@entry@kspan@c[#1]#2{% + \def\pxrr@res{#2}% + \chardef\pxrr@k@entry@res@type=\z@ +} +\def\pxrr@kenten@entry@kenten{% + \pxrr@k@entry@with\pxrr@kenten@entry@kenten@ +} +\def\pxrr@kenten@entry@kenten@#1{% + \setbox\pxrr@boxr\hbox{#1}% + \chardef\pxrr@k@entry@res@type=\@ne +} +\def\pxrr@kenten@entry@ruby{% + \pxrr@k@entry@with\pxrr@kenten@entry@ruby@ +} +\def\pxrr@kenten@entry@ruby@#1{% + \pxrr@apply@combotrue + \setbox\pxrr@boxr\hbox{#1}% + \chardef\pxrr@k@entry@res@type=\@ne +} +\newcommand*\kspan{% + \@ifstar{% + \@testopt\pxrr@kspan@a{}% + }{% + \@testopt\pxrr@kspan@a{}% + }% +} +\pxrr@add@protect\kspan +\def\pxrr@kspan@a[#1]#2{% + \begingroup + #2% + \endgroup +} +\def\pxrr@k@check@char#1{% + \futurelet\pxrr@token\pxrr@k@check@char@a#1\pxrr@end +} +\def\pxrr@k@check@char@a#1\pxrr@end{% + \pxrr@cond\ifx\pxrr@token\bgroup\fi{% + \pxrr@oktrue + }{\pxrr@cond\ifx\pxrr@token\@sptoken\fi{% + \pxrr@okfalse + }{% + \pxrr@check@char\pxrr@token + \ifcase\pxrr@cntr + \pxrr@okfalse + \or + \pxrr@oktrue + \chardef\pxrr@check@char@temp\z@ + \or + \pxrr@oktrue + \chardef\pxrr@check@char@temp\@ne + \fi + \ifnum\pxrr@k@full=\z@\ifpxrr@ok + \pxrr@check@punct@char{`#1}\pxrr@check@char@temp + \ifpxrr@ok \pxrr@okfalse + \else \pxrr@oktrue + \fi + \fi\fi + \ifpxrr@ok + \pxrr@get@prebreakpenalty\@tempcnta{`#1}% + \mathchardef\pxrr@k@prebreakpenalty\@tempcnta + \pxrr@get@postbreakpenalty\@tempcnta{`#1}% + \mathchardef\pxrr@k@postbreakpenalty\@tempcnta + \fi + }}% +} +\AtBeginDocument{% + \providecommand*{\kenten}{\jkenten}% +} +\newcommand*{\jkenten}{% + \pxrr@k@prologue + \pxrr@kenten +} +\pxrr@add@protect\jkenten +\def\pxrr@kenten{% + \@testopt\pxrr@kenten@a{}% +} +\def\pxrr@kenten@a[#1]{% + \def\pxrr@option{#1}% + \ifpxrr@safe@mode + \expandafter\@firstofone + \else + \expandafter\pxrr@kenten@proc + \fi +} +\def\pxrr@k@bind@param{% + \let\pxrr@c@ruby@font\pxrr@k@ruby@font + \let\pxrr@c@size@ratio\pxrr@k@size@ratio + \let\pxrr@c@inter@gap\pxrr@k@inter@gap +} +\def\pxrr@kenten@proc#1{% + \pxrr@prepare@fallback{#1}% + \pxrr@k@bind@param + \pxrr@assign@fsize + \pxrr@k@parse@option\pxrr@option + \pxrr@if@alive{% + \pxrr@k@decompose{#1}% + \let\pxrr@body@list\pxrr@res + \pxrr@kenten@main + }% + \pxrr@kenten@exit +} +\def\pxrr@kenten@main{% + \setbox\pxrr@boxb\pxrr@hbox@to\z@{% + \pxrr@use@ruby@font + \hss\pxrr@k@the@mark\hss + }% + \let\pxrr@entry\pxrr@kenten@entry + \let\pxrr@entry@kspan\pxrr@kenten@entry@kspan + \let\pxrr@entry@ruby\pxrr@kenten@entry@ruby + \let\pxrr@entry@kenten\pxrr@kenten@entry@kenten + \let\pxrr@post\pxrr@k@list@post + \pxrr@k@list@pre + \pxrr@body@list +} +\def\pxrr@k@prologue{% + \ifpxrr@k@ghost + \pxrr@jghost@char + \pxrr@inhibitglue + \fi + \begingroup + \ifpxrr@k@ghost + \setbox\pxrr@boxa\hbox{\pxrr@jghost@char}% + \kern-\wd\pxrr@boxa + \fi +} +\def\pxrr@kenten@exit{% + \ifpxrr@fatal@error + \pxrr@fallback + \fi + \pxrr@k@epilogue +} +\def\pxrr@k@epilogue{% + \ifpxrr@k@ghost + \setbox\pxrr@boxa\hbox{\pxrr@jghost@char}% + \kern-\wd\pxrr@boxa + \fi + \endgroup + \ifpxrr@k@ghost + \pxrr@inhibitglue + \pxrr@jghost@char + \fi +} +\def\pxrr@debug@show@kenten@input{% + \typeout{% +pxrr@k@the@mark=\meaning\pxrr@k@the@mark^^J% +pxrr@side=\meaning\pxrr@side^^J% +pxrr@body@list=\meaning\pxrr@body@list^^J% + }% +} +\newif\ifpxrr@apply@combo +\newif\ifpxrr@combo +\let\pxrr@ck@ruby@font\relax +\let\pxrr@ck@size@ratio\relax +\let\pxrr@ck@inter@gap\relax +\let\pxrr@ck@ruby@inter@gap\relax +\let\pxrr@ck@side\relax +\let\pxrr@ck@the@mark\relax +\let\pxrr@ck@ruby@combo\relax +\newif\ifpxrr@ck@kenten@head +\newif\ifpxrr@ck@kenten@end +\def\pxrr@ck@bind@param{% + \let\pxrr@ck@ruby@font\pxrr@c@ruby@font + \let\pxrr@ck@size@ratio\pxrr@c@size@ratio + \let\pxrr@ck@inter@gap\pxrr@c@inter@gap + \let\pxrr@ck@ruby@inter@gap\pxrr@k@ruby@inter@gap + \let\pxrr@ck@side\pxrr@side + \let\pxrr@ck@the@mark\pxrr@k@the@mark + \let\pxrr@ck@ruby@combo\pxrr@k@ruby@combo + \pxrr@csletcs{ifpxrr@ck@kenten@head}{ifpxrr@k@first@entry}% + \pxrr@csletcs{ifpxrr@ck@kenten@end}{ifpxrr@k@last@entry}% +} + +\let\pxrr@ck@zw\relax +\let\pxrr@ck@raise@P\relax +\let\pxrr@ck@raise@S\relax +\let\pxrr@ck@raise@t\relax +\def\pxrr@ck@check@option{% + \ifpxrr@ck@kenten@head + \let\pxrr@bintr@\@empty + \let\pxrr@bscomp=.\relax + \pxrr@bnobrtrue + \fi + \ifpxrr@ck@kenten@end + \let\pxrr@aintr@\@empty + \let\pxrr@ascomp=.\relax + \pxrr@anobrtrue + \fi +} +\def\pxrr@ck@assign@fsize{% + \begingroup + \@tempdima=\f@size\p@ + \@tempdima\pxrr@ck@size@ratio\@tempdima + \edef\pxrr@ruby@fsize{\the\@tempdima}% + \let\pxrr@c@ruby@font\pxrr@ck@ruby@font + \pxrr@use@ruby@font + \pxrr@get@zwidth\pxrr@ck@zw + \global\let\pxrr@gtempa\pxrr@ck@zw + \endgroup + \let\pxrr@ck@zw\pxrr@gtempa + \ifcase\pxrr@ck@side + \@tempdimc\pxrr@ck@zw + \advance\@tempdimc-\pxrr@htratio\@tempdimc + \@tempdima\pxrr@ruby@raise\relax + \@tempdimb\pxrr@ruby@zw\relax + \advance\@tempdima\pxrr@htratio\@tempdimb + \@tempdimb\pxrr@body@zw\relax + \advance\@tempdima\pxrr@ck@ruby@inter@gap\@tempdimb + \advance\@tempdima\@tempdimc + \edef\pxrr@ck@raise@P{\the\@tempdima}% + \@tempdima\pxrr@body@zw\relax + \@tempdima\pxrr@htratio\@tempdima + \@tempdimb\pxrr@body@zw\relax + \advance\@tempdima\pxrr@ck@inter@gap\@tempdimb + \advance\@tempdima\@tempdimc + \edef\pxrr@ck@raise@S{\the\@tempdima}% + \let\pxrr@ck@raise@t\pxrr@ck@raise@P + \or + \@tempdimc\pxrr@ck@zw + \@tempdimc\pxrr@htratio\@tempdimc + \@tempdima-\pxrr@ruby@lower\relax + \@tempdimb\pxrr@ruby@zw\relax + \advance\@tempdimb-\pxrr@htratio\@tempdimb + \advance\@tempdima-\@tempdimb + \@tempdimb\pxrr@body@zw\relax + \advance\@tempdima-\pxrr@ck@ruby@inter@gap\@tempdimb + \advance\@tempdima-\@tempdimc + \edef\pxrr@ck@raise@S{\the\@tempdima}% + \@tempdima-\pxrr@body@zw\relax + \advance\@tempdima-\pxrr@htratio\@tempdima + \@tempdimb\pxrr@body@zw\relax + \advance\@tempdima-\pxrr@ck@inter@gap\@tempdimb + \advance\@tempdima-\@tempdimc + \edef\pxrr@ck@raise@P{\the\@tempdima}% + \let\pxrr@ck@raise@t\pxrr@ck@raise@S + \fi +} +\let\pxrr@ck@body@natwd\relax +\let\pxrr@ck@locate\relax +\let\pxrr@ck@kenten@list\relax +\def\pxrr@ck@compose#1{% + \setbox\tw@\pxrr@hbox@to\z@{% + \@tempdima=\f@size\p@ + \@tempdima\pxrr@ck@size@ratio\@tempdima + \edef\pxrr@ruby@fsize{\the\@tempdima}% + \let\pxrr@c@ruby@font\pxrr@ck@ruby@font + \pxrr@use@ruby@font + \hss\pxrr@ck@the@mark\hss + }% + \pxrr@save@listproc + \pxrr@decompose{#1}% + \def\pxrr@pre{% + \let\pxrr@res\@empty + \pxrr@ck@compose@entry\pxrr@pre + }% + \def\pxrr@inter{% + \pxrr@ck@compose@entry\pxrr@inter + }% + \def\pxrr@post{% + \pxrr@appto\pxrr@res{\pxrr@post}% + }% + \pxrr@res + \pxrr@restore@listproc + \let\pxrr@natwd\pxrr@ck@body@natwd + \pxrr@evenspace@int\pxrr@ck@locate\pxrr@boxb\relax + {\wd\pxrr@boxa}% + \setbox\z@\hbox{% + \unhcopy\z@ + \kern-\wd\z@ + \ifcase\pxrr@side + \raise\pxrr@ck@raise@P + \or + \raise\pxrr@ck@raise@S + \or + \raise\pxrr@ck@raise@t + \fi + \hb@xt@\wd\pxrr@boxa{\hss\copy\pxrr@boxb\hss}% + }% +} +\def\pxrr@ck@compose@entry#1#2{% + \setbox\pxrr@boxb\pxrr@hbox{#2}% + \edef\pxrr@tempa{% + \noexpand\pxrr@appto\noexpand\pxrr@res{\noexpand#1{% + \hb@xt@\the\wd\pxrr@boxb{\hss\copy\tw@\hss}}}% + }\pxrr@tempa +} +\def\pxrr@dumb@sub#1#2#{#1} +\def\pxrr@dumb@ruby{% + \pxrr@dumb@sub\pxrr@dumb@ruby@ +} +\def\pxrr@dumb@ruby@#1#2{#1} +\def\pxrr@dumb@truby{% + \pxrr@dumb@sub\pxrr@dumb@truby@ +} +\def\pxrr@dumb@truby@#1#2#3{#1} +\def\pxrr@dumb@kenten{% + \pxrr@dumb@sub\pxrr@dumb@kenten@ +} +\def\pxrr@dumb@kenten@#1{#1} +\providecommand*\pdfstringdefPreHook{} +\g@addto@macro\pdfstringdefPreHook{% + \ifx\pxrr@cmd@ruby\ruby + \let\ruby\pxrr@dumb@ruby + \fi + \let\jruby\pxrr@dumb@ruby + \let\aruby\pxrr@dumb@ruby + \let\truby\pxrr@dumb@truby + \let\atruby\pxrr@dumb@truby + \ifx\pxrr@cmd@kenten\kenten + \let\kenten\pxrr@dumb@kenten + \fi + \let\kspan\pxrr@dumb@kenten +} \endinput %% %% End of file `pxrubrica.sty'. |