diff options
author | Karl Berry <karl@freefriends.org> | 2017-04-10 21:39:50 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2017-04-10 21:39:50 +0000 |
commit | 274530355cd8be6472559c87f6e1a2b34e54970e (patch) | |
tree | 10789d4a03679db47d70901d2e2d31ef77faddc3 /Master/texmf-dist | |
parent | 553fc76e143dd5a37bfc90a2035b9f5412143169 (diff) |
pxrubrica (10apr17)
git-svn-id: svn://tug.org/texlive/trunk@43733 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist')
-rw-r--r-- | Master/texmf-dist/doc/platex/pxrubrica/LICENSE | 5 | ||||
-rw-r--r-- | Master/texmf-dist/doc/platex/pxrubrica/README-ja.md (renamed from Master/texmf-dist/doc/platex/pxrubrica/README-ja) | 14 | ||||
-rw-r--r-- | Master/texmf-dist/doc/platex/pxrubrica/README.md (renamed from Master/texmf-dist/doc/platex/pxrubrica/README) | 8 | ||||
-rw-r--r-- | Master/texmf-dist/doc/platex/pxrubrica/pxrubrica-en.pdf | bin | 31606 -> 51988 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/platex/pxrubrica/pxrubrica-en.tex | 6 | ||||
-rw-r--r-- | Master/texmf-dist/doc/platex/pxrubrica/pxrubrica.pdf | bin | 338400 -> 349513 bytes | |||
-rw-r--r-- | Master/texmf-dist/source/platex/pxrubrica/pxrubrica.dtx | 504 | ||||
-rw-r--r-- | Master/texmf-dist/tex/platex/pxrubrica/pxrubrica.sty | 301 |
8 files changed, 675 insertions, 163 deletions
diff --git a/Master/texmf-dist/doc/platex/pxrubrica/LICENSE b/Master/texmf-dist/doc/platex/pxrubrica/LICENSE index e1ac82a8bb1..8ada757fbc8 100644 --- a/Master/texmf-dist/doc/platex/pxrubrica/LICENSE +++ b/Master/texmf-dist/doc/platex/pxrubrica/LICENSE @@ -1,9 +1,6 @@ -本ソフトウェアは MIT ライセンスの下で配布されます。著作権は作者である -「八登崇之(別名 ZR)」に属します。また本ソフトウェアは無保証です。 - The MIT License -Copyright (c) 2009-2011 Takayuki YATO (a.k.a. "ZR") +Copyright (c) 2017 Takayuki YATO (aka. "ZR") Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/Master/texmf-dist/doc/platex/pxrubrica/README-ja b/Master/texmf-dist/doc/platex/pxrubrica/README-ja.md index 78c50c75cc3..608f5f72201 100644 --- a/Master/texmf-dist/doc/platex/pxrubrica/README-ja +++ b/Master/texmf-dist/doc/platex/pxrubrica/README-ja.md @@ -12,7 +12,7 @@ JIS 規格「JIS X 4051」および W3C 技術ノート「[日本語組版処理 ### 前提環境 * フォーマット: LaTeX - * エンジン: pTeX (派生エンジン含む) + * エンジン: pTeX/upTeX/LuaTeX/XeTeX * DVI ウェア: pTeX 対応のもの ### 構成物 @@ -38,12 +38,20 @@ JIS 規格「JIS X 4051」および W3C 技術ノート「[日本語組版処理 - `*.dtx`/`*.ins` → $TEXMF/source/platex/pxrubrica/ - `*.pdf`/`*.tex` → $TEXMF/doc/platex/pxrubrica/ +### ライセンス + +MITライセンスの下で配布される。 + 更新履歴 -------- - * Version 1.0a <2014/12/23> + * Version 1.1 〈2017/04/10〉 + - XeTeX/LuaTeX のサポート。 + - 両側ルビの処理を改良。 + - バグ修正 + * Version 1.0a 〈2014/12/23〉 - バグ修正 - * Version 1.0 <2012/04/30> + * Version 1.0 〈2012/04/30〉 - 最初の公開版 -------------------- diff --git a/Master/texmf-dist/doc/platex/pxrubrica/README b/Master/texmf-dist/doc/platex/pxrubrica/README.md index 6ff8db331d1..26bbf82cdb5 100644 --- a/Master/texmf-dist/doc/platex/pxrubrica/README +++ b/Master/texmf-dist/doc/platex/pxrubrica/README.md @@ -40,9 +40,17 @@ Then move the files as follows (in a system compliant to TDS 1.1): And rehash your TEXMF trees if necessary. +### LICENSE + +This package is distributed under the MIT License. + Revision History ---------------- + * Version 1.1 〈2017/04/10〉 + - Support for XeTeX/LuaTeX. + - Improve the process of two-side ruby. + - Bug fix. * Version 1.0a <2014/12/23> - Bug hix. * Version 1.0 <2012/04/30> 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 3d0d643d9e4..4875cba8b71 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 f2578d55095..7fc0b4e725d 100644 --- a/Master/texmf-dist/doc/platex/pxrubrica/pxrubrica-en.tex +++ b/Master/texmf-dist/doc/platex/pxrubrica/pxrubrica-en.tex @@ -8,14 +8,14 @@ \newcommand*{\Eg}{E.\,g.\mbox{}} \newcommand*{\eg}{e.\,g.\mbox{}} \newcommand*{\ie}{i.\,e.\mbox{}} -\newcommand*{\myfileversion}{1.0} -\newcommand*{\myfiledate}{2011/09/04} +\newcommand*{\myfileversion}{1.1} +\newcommand*{\myfiledate}{2017/04/10} \newsavebox{\myexample} \begin{document} \title{The \PKN{pxrubrica} package} \author{Takayuki YATO\quad (aka ``ZR'')} -\date{\myfileversion \quad[\myfiledate]} +\date{v\myfileversion \quad[\myfiledate]} \maketitle \setstretch{1.5} diff --git a/Master/texmf-dist/doc/platex/pxrubrica/pxrubrica.pdf b/Master/texmf-dist/doc/platex/pxrubrica/pxrubrica.pdf Binary files differindex 2e361aa33c2..f945cbde71d 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/source/platex/pxrubrica/pxrubrica.dtx b/Master/texmf-dist/source/platex/pxrubrica/pxrubrica.dtx index e76781e85be..c2c286306e3 100644 --- a/Master/texmf-dist/source/platex/pxrubrica/pxrubrica.dtx +++ b/Master/texmf-dist/source/platex/pxrubrica/pxrubrica.dtx @@ -1,23 +1,16 @@ % ^^A -*- japanese-latex -*- % \iffalse meta-comment % +% This is file 'pxrubrica.dtx'. +% +% Copyright (c) 2017 Takayuki YATO (aka. "ZR") +% GitHub: https://github.com/zr-tex8r +% Twitter: @zr_tex8r +% +% This package is distributed under the MIT License. +% % \fi % \CheckSum{0} -%% \CharacterTable -%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z -%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z -%% Digits \0\1\2\3\4\5\6\7\8\9 -%% Exclamation \! Double quote \" Hash (number) \# -%% Dollar \$ Percent \% Ampersand \& -%% Acute accent \' Left paren \( Right paren \) -%% Asterisk \* Plus \+ Comma \, -%% Minus \- Point \. Solidus \/ -%% Colon \: Semicolon \; Less than \< -%% Equals \= Greater than \> Question mark \? -%% Commercial at \@ Left bracket \[ Backslash \\ -%% Right bracket \] Circumflex \^ Underscore \_ -%% Grave accent \` Left brace \{ Vertical bar \| -%% Right brace \} Tilde \~} % % \iffalse % @@ -27,7 +20,7 @@ %<*driver> \ProvidesFile{pxrubrica.dtx} %</driver> - [2014/12/23 v1.0a PX Japanese-style ruby] + [2017/04/10 v1.1 PX Japanese-style ruby] %<*driver> \documentclass{jsarticle} \usepackage{doc} @@ -51,6 +44,10 @@ \newcommand*{\pad}{\hspace{0pt plus 10pt}\linebreak[0]} \newcommand*{\Means}{$B!'(B\ } \newcommand*{\Note}{\par\noindent $B"((B\ } +\providecommand*{\pTeX}{p\TeX} +\providecommand*{\upTeX}{u\pTeX} +\providecommand*{\XeTeX}{XeTeX} +\providecommand*{\LuaTeX}{Lua\TeX} \inhibitxspcode`$B!?(B=0 \begin{document} \DocInput{pxrubrica.dtx} @@ -716,6 +713,19 @@ % \end{macrocode} % \end{macro} % +% \begin{macro}{\pxrr@warn@load@order} +% Unicode {\TeX}$BMQ$NF|K\8lAHHG%Q%C%1!<%8!J(BLua{\TeX}-ja$BEy!K$O(B +% $B$3$N%Q%C%1!<%8$h$jA0$KFI$_9~$`$Y$-$@$,!"8e$GFI$_9~$^$l$F$$$k(B +% $B$3$H$,H=L@$7$?>l9g!#(B +% \begin{macrocode} +\def\pxrr@warn@load@order#1{% + \pxrr@warn{% + This package should be loaded after '#1'% + }% +} +% \end{macrocode} +% \end{macro} +% % \begin{macro}{\pxrr@interror} % $BFbIt%(%i!<!#(B % $B$3$l$,=P$F$O$$$1$J$$!#(B{\small\texttt{:-)}} @@ -882,7 +892,16 @@ % $B!J(B|\ruby[no]breakjukugo|$B!K!#(B % $B%9%$%C%A!#(B % \begin{macrocode} -\newif\ifpxrr@break@jukugo \pxrr@edge@adjustfalse +\newif\ifpxrr@break@jukugo \pxrr@break@jukugofalse +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\ifpxrr@safe@mode} +% $B0BA4%b!<%I$G$"$k$+!#(B +% $B!J(B|\ruby[no]safemode|$B!K!#(B +% $B%9%$%C%A!#(B +% \begin{macrocode} +\newif\ifpxrr@safe@mode \pxrr@safe@modefalse % \end{macrocode} % \end{macro} % @@ -910,7 +929,7 @@ % \end{macro} % \end{macro} % -% \begin{macro}{\ifpxrr@d@athead} +% \begin{macro}{\pxrr@d@athead} % $B8*IU$-!?CfIU$-$N@_Dj!#(B % |\rubysetup| $B$N(B |c|$B!?(B|h|$B!?(B|H| $B$N@_Dj!#(B % 0 = $BCfIU$-!J(B|c|$B!K!((B @@ -1036,6 +1055,14 @@ % \end{macrocode} % \end{macro} % +% \begin{macro}{\ifpxrr@athead@iven} +% $B8*IU$-!?CfIU$-$N@_Dj$,L@<(E*$G$"$k$+!#(B +% $B%9%$%C%A!#(B +% \begin{macrocode} +\newif\ifpxrr@athead@given \pxrr@athead@givenfalse +% \end{macrocode} +% \end{macro} +% % \begin{macro}{\pxrr@mode} % $B%b%N%k%S!J(B|m|$B!K!&%0%k!<%W%k%S!J(B|g|$B!K!&=O8l%k%S!J(B|j|$B!K$N$$$:$l$+!#(B % |\ruby| $B$N%*%W%7%g%s$N@_DjCM!#(B @@ -1045,6 +1072,15 @@ % \end{macrocode} % \end{macro} % +% \begin{macro}{\ifpxrr@mode@given} +% $B4pK\%b!<%I$N@_Dj$,L@<(E*$G$"$k$+!#(B +% $B%9%$%C%A!#(B +% \begin{macrocode} +\newif\ifpxrr@mode@given \pxrr@mode@givenfalse +\newif\ifpxrr@afintr \pxrr@afintrfalse +% \end{macrocode} +% \end{macro} +% % \begin{macro}{\ifpxrr@abody} % $B%k%S$,(B |\aruby|$B!J2$J8?FJ8;zMQ!K$G$"$k$+!#(B % $B%9%$%C%A!#(B @@ -1074,6 +1110,16 @@ % \end{macrocode} % \end{macro} % +% \begin{macro}{\pxrr@revensp} +% $B%k%SJ8;zNs6QEy3d$j$N@_Dj!#(B +% 0 = $BL58z!((B1 = $BM-8z!#(B +% $B@0?tDj?t!#(B +% \Note $BDL>o$OM-8z$@$,!"0BA4%b!<%I$G$OL58z$K$J$k!#(B +% \begin{macrocode} +\chardef\pxrr@revensp=1 +% \end{macrocode} +% \end{macro} +% % \begin{macro}{\pxrr@fullsize} % $B>.=q$-J8;zJQ49$N@_Dj!#(B % 0 = $BL58z!((B1 = $BM-8z!#(B @@ -1638,7 +1684,7 @@ % \end{macro} % % \begin{macro}{\ifpxrr@in@ptex} -% $B%(%s%8%s$,(B {p\TeX} $B7O!J(B{up\TeX} $B7O$r4^$`!K$G$"$k$+!#(B +% $B%(%s%8%s$,(B{\pTeX}$B7O!J(B{\upTeX}$B7O$r4^$`!K$G$"$k$+!#(B % |\kansuji| $B$N%W%j%_%F%#%V%F%9%H$GH=Dj$9$k!#(B % \begin{macrocode} \pxrr@ifprimitive\kansuji{% @@ -1650,7 +1696,7 @@ % \end{macro} % % \begin{macro}{\ifpxrr@in@uptex} -% $B%(%s%8%s$,(B {up\TeX} $B7O$G$"$k$+!#(B +% $B%(%s%8%s$,(B{\upTeX}$B7O$G$"$k$+!#(B % |\enablecjktoken| $B$N%W%j%_%F%#%V%F%9%H$GH=Dj$9$k!#(B % \begin{macrocode} \pxrr@ifprimitive\enablecjktoken{% @@ -1662,7 +1708,7 @@ % \end{macro} % % \begin{macro}{\ifpxrr@in@xetex} -% $B%(%s%8%s$,(B {XeTeX} $B7O$G$"$k$+!#(B +% $B%(%s%8%s$,(B{\XeTeX}$B7O$G$"$k$+!#(B % |\XeTeXrevision| $B$N%W%j%_%F%#%V%F%9%H$GH=Dj$9$k!#(B % \begin{macrocode} \pxrr@ifprimitive\XeTeXrevision{% @@ -1673,16 +1719,82 @@ % \end{macrocode} % \end{macro} % +% \begin{macro}{\ifpxrr@in@xecjk} +% \PKN{xeCJK}$B%Q%C%1!<%8$,;HMQ$5$l$F$$$k$+!#(B +% \begin{macrocode} +\@ifpackageloaded{xeCJK}{% + \pxrr@csletcs{ifpxrr@in@xecjk}{iftrue}% +}{% + \pxrr@csletcs{ifpxrr@in@xecjk}{iffalse}% +% \end{macrocode} +% $B$3$3$GL$FI9~$G$+$D%W%j%"%s%V%kKvHx$GFI$_9~$^$l$F$$$k>l9g$O7Y9p$9$k!#(B +% \begin{macrocode} + \AtBeginDocument{% + \@ifpackageloaded{xeCJK}{% + \pxrr@warn@load@order{xeCJK}% + }{}% + }% +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\ifpxrr@in@luatex} +% $B%(%s%8%s$,(B{\LuaTeX}$B7O$G$"$k$+!#(B +% |\luatexrevision| $B$N%W%j%_%F%#%V%F%9%H$GH=Dj$9$k!#(B +% \begin{macrocode} +\pxrr@ifprimitive\luatexrevision{% + \pxrr@csletcs{ifpxrr@in@luatex}{iftrue}% +}{% + \pxrr@csletcs{ifpxrr@in@luatex}{iffalse}% +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\ifpxrr@in@luatexja} +% \PKN{LuaTeX-ja}$B%Q%C%1!<%8$,;HMQ$5$l$F$$$k$+!#(B +% \begin{macrocode} +\@ifpackageloaded{luatexja-core}{% + \pxrr@csletcs{ifpxrr@in@luatexja}{iftrue}% +}{% + \pxrr@csletcs{ifpxrr@in@luatexja}{iffalse}% + \AtBeginDocument{% + \@ifpackageloaded{luatexja-core}{% + \pxrr@warn@load@order{LuaTeX-ja}% + }{}% + }% +} +% \end{macrocode} +% \end{macro} +% +% \begin{macrocode} +\ifpxrr@in@xetex +\else\ifpxrr@in@luatex +\else\ifpxrr@in@ptex +\else + \pxrr@ifprimitive\pdftexrevision{% + \pxrr@warn{% + The engine in use seems to be pdfTeX,\MessageBreak + so safe mode is turned on% + }% + \AtEndOfPackage{% + \rubysafemode + }% + } +\fi\fi\fi +% \end{macrocode} +% % \begin{macro}{\ifpxrr@in@unicode} % $B!VOBJ8!WFbIt%3!<%I$,(BUnicode$B$G$"$k$+!#(B % \begin{macrocode} \ifpxrr@in@xetex \pxrr@csletcs{ifpxrr@in@unicode}{iftrue}% +\else\ifpxrr@in@luatex + \pxrr@csletcs{ifpxrr@in@unicode}{iftrue}% \else\ifpxrr@in@uptex \pxrr@csletcs{ifpxrr@in@unicode}{iftrue}% \else \pxrr@csletcs{ifpxrr@in@unicode}{iffalse}% -\fi\fi +\fi\fi\fi % \end{macrocode} % \end{macro} % @@ -1737,21 +1849,36 @@ % \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 +% +% {\pTeX}$B7O$N>l9g!#(B|\kansuji| $B%H%j%C%/$rMxMQ$9$k!#(B % \begin{macrocode} -\def\pxrr@get@jchar@token#1#2{% - \begingroup - \kansujichar\@ne=#2\relax - \xdef\pxrr@x@gtempa{\kansuji\@ne}% - \endgroup - \let#1\pxrr@x@gtempa -} -\ifpxrr@in@unicode\else - \ifpxrr@in@ptex\else - \def\pxrr@get@jchar@token#1#2{% - \def#1{?}% - } - \fi -\fi +\ifpxrr@in@ptex + \def\pxrr@get@jchar@token#1#2{% + \begingroup + \kansujichar\@ne=#2\relax + \xdef\pxrr@x@gtempa{\kansuji\@ne}% + \endgroup + \let#1\pxrr@x@gtempa + } +% \end{macrocode} +% Unicode$BBP1~(B{\TeX}$B$N>l9g!#(B|\lowercase| $B%H%j%C%/$rMxMQ$9$k!#(B +% \begin{macrocode} +\else\ifpxrr@in@unicode + \def\pxrr@get@jchar@token#1#2{% + \begingroup + \lccode`\?=#2\relax + \lowercase{\xdef\pxrr@x@gtempa{?}}% + \endgroup + \let#1\pxrr@x@gtempa + } +% \end{macrocode} +% $B$=$l0J30$G$O%@%_!<Dj5A!#(B +% \begin{macrocode} +\else + \def\pxrr@get@jchar@token#1#2{% + \def#1{?}% + } +\fi\fi % \end{macrocode} % \end{macro} % @@ -1765,6 +1892,8 @@ % \begin{macro}{\pxrr@get@iiskip} % |\pxrr@get@iiskip\CS|\Means % $B8=:_$N<B8z$NOBJ84V6uGr$NNL$r<hF@$9$k!#(B +% +% {\pTeX}$B7O$N>l9g!#(B % \begin{macrocode} \ifpxrr@in@ptex \def\pxrr@get@iiskip#1{% @@ -1791,17 +1920,36 @@ \fi }% } +% \end{macrocode} +% +% \PKN{LuaTeX-ja}$B;HMQ$N>l9g!#(B +% \begin{macrocode} +\else\ifpxrr@in@luatexja + \def\pxrr@get@iiskip#1{% + \edef#1{% + \ifnum\ltjgetparameter{autospacing}=\@ne + \ltjgetparameter{kanjiskip}% + \else \pxrr@zeropt + \fi + }% + } +% \end{macrocode} +% +% $B$=$l0J30$N>l9g$O%<%m$H$9$k!#(B +% \begin{macrocode} \else \def\pxrr@get@iiskip#1{% \let#1\pxrr@zeropt } -\fi +\fi\fi % \end{macrocode} % \end{macro} % % \begin{macro}{\pxrr@get@iaiskip} % |\pxrr@get@iaiskip\CS|\Means % $B8=:_$N<B8z$NOB2$J84V6uGr$NNL$r<hF@$9$k!#(B +% +% {\pTeX}$B7O$N>l9g!#(B % \begin{macrocode} \ifpxrr@in@ptex \def\pxrr@get@iaiskip#1{% @@ -1821,29 +1969,118 @@ \fi }% } -\else +% \end{macrocode} +% +% \PKN{LuaTeX-ja}$B;HMQ$N>l9g!#(B +% \begin{macrocode} +\else\ifpxrr@in@luatexja \def\pxrr@get@iaiskip#1{% - \let#1\pxrr@zeropt + \edef#1{% + \ifnum\ltjgetparameter{autoxspacing}=\@ne + \ltjgetparameter{xkanjiskip}% + \else \pxrr@zeropt + \fi + }% } -\fi +% \end{macrocode} +% +% $B$=$l0J30$N>l9g$O<B:]$NAHHG7k2L$+$iH=CG$9$k!#(B +% \begin{macrocode} +\else + \def\pxrr@get@iaiskip#1{% + \begingroup + \setbox\z@\hbox{M\pxrr@x@K}% + \setbox\tw@\hbox{M\vrule\@width\z@\relax\pxrr@x@K}% + \@tempdima\wd\z@ \advance\@tempdima-\wd\tw@ + \@tempdimb\@tempdima \divide\@tempdimb\thr@@ + \xdef\pxrr@x@gtempa{\the\@tempdima\space minus \the\@tempdimb}% + \endgroup + \let#1=\pxrr@x@gtempa + }% +\fi\fi % \end{macrocode} % \end{macro} % % \begin{macro}{\pxrr@get@zwidth} % |\pxrr@get@zwidth\CS|\Means % $B8=:_$NOBJ8%U%)%s%H$NA43QI}$r<hF@$9$k!#(B +% +% {\pTeX}$B$N>l9g!"(B|1zw| $B$G$h$$!#(B % \begin{macrocode} \ifpxrr@in@ptex \def\pxrr@get@zwidth#1{% \@tempdima=1zw\relax \edef#1{\the\@tempdima}% } +% \end{macrocode} +% +% |\zw| $B$,Dj5A$5$l$F$$$k>l9g$O(B |1\zw| $B$H$9$k!#(B +% \begin{macrocode} +\else\if\ifx\zw\@undefined T\else F\fi F% if defined + \def\pxrr@get@zwidth#1{% + \@tempdima=1\zw\relax + \edef#1{\the\@tempdima}% + } +% \end{macrocode} +% +% |\jsZw| $B$,Dj5A$5$l$F$$$k>l9g$O(B |1\jsZw| $B$H$9$k!#(B +% \begin{macrocode} +\else\if\ifx\jsZw\@undefined T\else F\fi F% if defined + \def\pxrr@get@zwidth#1{% + \@tempdima=1\jsZw\relax + \edef#1{\the\@tempdima}% + } +% \end{macrocode} +% +% $B$=$l0J30$G!"(B|\pxrr@x@K| $B$,M-8z$J>l9g$O<B:]$NAHHG7k2L$+$iH=CG$9$k!#(B +% \begin{macrocode} +\else\ifnum\pxrr@x@K>\@cclv + \def\pxrr@get@zwidth#1{% + \setbox\tw@\hbox{\pxrr@x@K}% + \@tempdima\wd\tw@ + \ifdim\@tempdima>\z@\else \@tempdima\f@size\p@ \fi + \edef#1{\the\@tempdima}% + } +% \end{macrocode} +% +% $B$=$l0J30$N>l9g$OMW5a%5%$%:$HEy$7$$$H$9$k!#(B +% \begin{macrocode} \else \def\pxrr@get@zwidth#1{% - \@tempdima=1em\relax + \@tempdima\f@size\p@\relax \edef#1{\the\@tempdima}% } -\fi +\fi\fi\fi\fi +% \end{macrocode} +% \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 +% +% {\pTeX}$B$N>l9g!"(B|\prebreakpenalty| $B$r;H$&!#(B +% \begin{macrocode} +\ifpxrr@in@ptex + \def\pxrr@get@prebreakpenalty#1#2{% + #1=\prebreakpenalty`#2\relax + } +% \end{macrocode} +% +% \PKN{LuaTeX-ja}$B;HMQ;~$O!"(Bprebreakpenalty $B%W%m%Q%F%#$rFI$_=P$9!#(B +% \begin{macrocode} +\else\ifpxrr@in@luatexja + \def\pxrr@get@prebreakpenalty#1#2{% + #1=\ltjgetparameter{prebreakpenalty}{`#2}\relax + } +% \end{macrocode} +% +% $B$=$l0J30$N>l9g$O%<%m$H$7$F07$&!#(B +% \begin{macrocode} +\else + \def\pxrr@get@prebreakpenalty#1#2{% + #1=\z@ + } +\fi\fi % \end{macrocode} % \end{macro} % @@ -1944,6 +2181,7 @@ % \begin{macrocode} \newcommand*\rubyuseaghost{% \pxrr@aghosttrue + \pxrr@setup@aghost } \newcommand*\rubynouseaghost{% \pxrr@aghostfalse @@ -1980,6 +2218,20 @@ % \end{macro} % \end{macro} % +% \begin{macro}{\rubysafemode} +% \begin{macro}{\rubynosafemode} +% $BBP1~$9$k%9%$%C%A$r@_Dj$9$k!#(B +% \begin{macrocode} +\newcommand*\rubysafemode{% + \pxrr@safe@modetrue +} +\newcommand*\rubynosafemode{% + \pxrr@safe@modefalse +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% % \begin{macro}{\rubystretchprop} % \begin{macro}{\rubystretchprophead} % \begin{macro}{\rubystretchpropend} @@ -2074,6 +2326,11 @@ \pxrr@bfintrfalse \pxrr@afintrfalse % \end{macrocode} +% $BL@<(%U%i%0$r56$K$9$k!#(B +% \begin{macrocode} + \pxrr@mode@givenfalse + \pxrr@athead@givenfalse +% \end{macrocode} % $BM-8B>uBV5!3#$r3+;O$5$;$k!#(B % $BF~NO$NKvHx$K(B |@| $B$r2C$($F$$$k!#(B % |\pxrr@end| $B$O%(%i!<;~$NC&=P$KMQ$$$k!#(B @@ -2263,21 +2520,27 @@ } \def\pxrr@po@PR@c{% \chardef\pxrr@athead\z@ + \pxrr@athead@giventrue } \def\pxrr@po@PR@h{% \chardef\pxrr@athead\@ne + \pxrr@athead@giventrue } \def\pxrr@po@PR@H{% \chardef\pxrr@athead\tw@ + \pxrr@athead@giventrue } \def\pxrr@po@PR@m{% \let\pxrr@mode=m% + \pxrr@mode@giventrue } \def\pxrr@po@PR@g{% \let\pxrr@mode=g% + \pxrr@mode@giventrue } \def\pxrr@po@PR@j{% \let\pxrr@mode=j% + \pxrr@mode@giventrue } \def\pxrr@po@PR@P{% \chardef\pxrr@side\z@ @@ -2368,26 +2631,27 @@ \pxrr@fatal@bad@intr \fi % \end{macrocode} -% $B%b%N%k%S!J(B|m|$B!K!&=O8l%k%S!J(B|j|$B!K$K4X$9$k8!::!#(B +% $B2$J8%k%S$G$O%b%N%k%S!J(B|m|$B!K!&=O8l%k%S!J(B|j|$B!K$O;XDjIT2D$J$N$G!"(B +% $B%0%k!<%W%k%S$KJQ99$9$k!#(B +% $B$3$N;~$KL@<(;XDj$G$"$k>l9g$O7Y9p$r=P$9!#(B % \begin{macrocode} \if g\pxrr@mode\else -% \end{macrocode} -% $B2$J8%k%S$G$OIT2D$J$N$G%0%k!<%W%k%S$KJQ99$9$k!#(B -% \begin{macrocode} \ifpxrr@abody \let\pxrr@mode=g\relax + \ifpxrr@mode@given + \pxrr@warn@must@group + \fi \fi + \fi % \end{macrocode} -% $BN>B&%k%S$G$OIT2D$J$N$G%0%k!<%W%k%S$KJQ99$9$k!#(B +% $BN>B&%k%S$G$O%b%N%k%S!J(B|m|$B!K!&=O8l%k%S!J(B|j|$B!K$O;XDjIT2D$J$N$G!"(B +% $B%0%k!<%W%k%S$KJQ99$9$k!#(B +% $B$3$N;~$KL@<(;XDj$G$"$k>l9g$O7Y9p$r=P$9!#(B % \begin{macrocode} + \if g\pxrr@mode\else \ifnum\pxrr@side=\tw@ \let\pxrr@mode=g\relax - \fi -% \end{macrocode} -% $B0J>e$N(B2$B$D$N>l9g$K$D$$$F!"L@<(;XDj$G$"$l$P7Y9p$r=P$9!#(B -% \begin{macrocode} - \if g\pxrr@mode - \if g\pxrr@d@mode + \ifpxrr@mode@given \pxrr@warn@must@group \fi \fi @@ -2400,19 +2664,19 @@ % $B2#AH$_$G$OIT2D$J$N$GCfIU$-$KJQ99$9$k!#(B % \begin{macrocode} \ifpxrr@in@tate\else - \pxrr@athead\z@ + \chardef\pxrr@athead\z@ \fi % \end{macrocode} % $B%0%k!<%W%k%S$G$OIT2D$J$N$GCfIU$-$KJQ99$9$k!#(B % \begin{macrocode} \if g\pxrr@mode - \pxrr@athead\z@ + \chardef\pxrr@athead\z@ \fi % \end{macrocode} % $B0J>e$N(B2$B$D$N>l9g$K$D$$$F!"L@<(;XDj$G$"$l$P7Y9p$r=P$9!#(B % \begin{macrocode} \ifnum\pxrr@athead=\z@ - \ifnum\pxrr@d@athead>\z@ + \ifpxrr@athead@given \pxrr@warn@bad@athead \fi \fi @@ -2875,24 +3139,26 @@ % % \begin{macro}{\pxrr@compose@block} % |\pxrr@compose@block{|\jmeta{$B%Q%?!<%s(B}|}{|^^A -%r \jmeta{$B?FJ8;z%V%m%C%/(B}|}{|\jmeta{$B%k%SJ8;z%V%m%C%/(B}|}|\Means +% \jmeta{$B?FJ8;z%V%m%C%/(B}|}{|\jmeta{$B%k%SJ8;z%V%m%C%/(B}|}|\Means % 1$B$D$N%V%m%C%/$NAHHG=hM}!#(B % \jmeta{$B%Q%?!<%s(B}$B$O(B |\pxrr@evenspace| $B$HF1$80UL#!#(B % $BFM=P$,$"$k$+$r(B |\ifpxrr@protr| $B$KJV$7!"A0$H8e$NFM=P$NNL$r(B % $B$=$l$>$l(B |\pxrr@bspace| $B$H(B |\pxrr@aspace| $B$KJV$9!#(B % \begin{macrocode} -\def\pxrr@compose@block{% +\def\pxrr@compose@block#1#2#3{% % \end{macrocode} % $BK\BN$NA0$K2C9)=hM}$r2pF~$5$;$k!#(B +% \Note |\pxrr@compose@block@pre| $B$O(B2$B$D$N%k%S0z?t$r<h$k!#(B % |\pxrr@compose@block@do| $B$KK\BN%^%/%m$r(B |\let| $B$9$k!#(B % \begin{macrocode} \let\pxrr@compose@block@do\pxrr@compose@oneside@block@do - \pxrr@compose@block@pre + \pxrr@compose@block@pre{#1}{#2}{#3}{}% } % \end{macrocode} % $B$3$A$i$,K\BN!#(B % \begin{macrocode} -\def\pxrr@compose@oneside@block@do#1#2#3{% +% #4$B$O6u(B +\def\pxrr@compose@oneside@block@do#1#2#3#4{% \setbox\pxrr@boxa\pxrr@hbox{#2}% \setbox\pxrr@boxr\pxrr@hbox{% \pxrr@use@ruby@font @@ -3055,7 +3321,10 @@ % \end{macro} % % \begin{macro}{\pxrr@compose@block@pre} -% $B?FJ8;zNs$N2C9)$r9T$&!#(B +% |\pxrr@compose@block@pre{|\jmeta{$B%Q%?!<%s(B}|}{|^^A +%r \jmeta{$B?FJ8;z(B}|}{|\jmeta{$B%k%S(B1}|}{|\jmeta{$B%k%S(B2}|}|\Means +% $B?FJ8;zNs!&%k%SJ8;zNs$N2C9)$r9T$&!#(B +% \Note $BN>B&%k%SBP1~$N$?$a!"%k%SMQ0z?t$,(B2$B$D$"$k!#(B % \begin{macrocode} \def\pxrr@compose@block@pre{% % \end{macrocode} @@ -3064,27 +3333,48 @@ \pxrr@ifnum{\pxrr@fullsize>\z@}{% \pxrr@compose@block@pre@a }{% - \pxrr@compose@block@pre@c + \pxrr@compose@block@pre@d }% } -\def\pxrr@compose@block@pre@a#1#2#3{% - \def\pxrr@compose@block@tempa{#3}% +% {$B%Q%?!<%s(B}{$B?FJ8;z(B}{$B%k%S(B1}{$B%k%S(B2} +\def\pxrr@compose@block@pre@a#1#2#3#4{% + \def\pxrr@compose@block@tempa{#4}% \pxrr@transform@kana\pxrr@compose@block@tempa \expandafter\pxrr@compose@block@pre@b - \expandafter{\pxrr@compose@block@tempa}{#1}{#2}% + \expandafter{\pxrr@compose@block@tempa}{#1}{#2}{#3}% +} +% {$B%k%S(B2}{$B%Q%?!<%s(B}{$B?FJ8;z(B}{$B%k%S(B1} +\def\pxrr@compose@block@pre@b#1#2#3#4{% + \def\pxrr@compose@block@tempa{#4}% + \pxrr@transform@kana\pxrr@compose@block@tempa + \expandafter\pxrr@compose@block@pre@c + \expandafter{\pxrr@compose@block@tempa}{#1}{#2}{#3}% } -\def\pxrr@compose@block@pre@b#1#2#3{% - \pxrr@compose@block@pre@c{#2}{#3}{#1}% +% {$B%k%S(B1}{$B%k%S(B2}{$B%Q%?!<%s(B}{$B?FJ8;z(B} +\def\pxrr@compose@block@pre@c#1#2#3#4{% + \pxrr@compose@block@pre@d{#3}{#4}{#1}{#2}% } -\def\pxrr@compose@block@pre@c{% +\def\pxrr@compose@block@pre@d{% \pxrr@ifnum{\pxrr@evensp=\z@}{% - \pxrr@compose@block@pre@d + \pxrr@compose@block@pre@e + }{% + \pxrr@compose@block@pre@f + }% +} +% {$B%Q%?!<%s(B}{$B?FJ8;z(B} +\def\pxrr@compose@block@pre@e#1#2{% + \pxrr@compose@block@pre@f{#1}{{#2}}% +} +\def\pxrr@compose@block@pre@f{% + \pxrr@ifnum{\pxrr@revensp=\z@}{% + \pxrr@compose@block@pre@g }{% \pxrr@compose@block@do }% } -\def\pxrr@compose@block@pre@d#1#2{% - \pxrr@compose@block@do{#1}{{#2}}% +% {$B%Q%?!<%s(B}{$B?FJ8;z(B}{$B%k%S(B1}{$B%k%S(B2} +\def\pxrr@compose@block@pre@g#1#2#3#4{% + \pxrr@compose@block@do{#1}{#2}{{#3}}{{#4}}% } % \end{macrocode} % \end{macro} @@ -3261,7 +3551,7 @@ \pxrr@check@kinsoku@c#1#1% } \def\pxrr@check@kinsoku@c#1{% - \pxrr@cntr\prebreakpenalty`#1\relax + \pxrr@get@prebreakpenalty\pxrr@cntr{#1}% \pxrr@tempb } % \end{macrocode} @@ -3435,11 +3725,12 @@ \hskip-\pxrr@intr@amount\relax \fi % \end{macrocode} -% $BCJMnKAF,$G$J$$>l9g!"%Z%J%k%F%#!";z4V6u$-$N%0%k!=!"?JF~MQ$N%0%k!=$r(B +% $BCJMnKAF,$G$J$$>l9g!";z4V6u$-$N%0%k!=!"?JF~MQ$N%0%k!=$r(B % $B=gHV$KF~$l$k!#(B +% \Note $B%Z%J%k%F%#$O(B |\pxrr@put@head@penalty| $B$G4{$KF~$l$F$$$k!#(B % \begin{macrocode} \else - \penalty\pxrr@auto@penalty\relax +% \penalty\pxrr@auto@penalty\relax \hskip-\pxrr@intr@amount\relax \hskip\pxrr@auto@icspace\relax \fi @@ -3448,6 +3739,27 @@ % \end{macrocode} % \end{macro} % +% \begin{macro}{\pxrr@put@head@penalty} +% $BA0B&$KJd=u;XDj$GDj$a$i$l$?CM$N%Z%J%k%F%#$rCV$/!#(B +% $B8=:_0LCV$K4{$K%Z%J%k%F%#$,$"$k>l9g$O9g;;$9$k!#(B +% \begin{macrocode} +\def\pxrr@put@head@penalty{% + \ifpxrr@ghost\else \ifpxrr@par@head\else + \ifpxrr@abody + \pxrr@intrude@setauto@a + \else + \pxrr@intrude@setauto@j + \fi + \ifnum\pxrr@auto@penalty=\z@\else + \pxrr@cnta\lastpenalty \unpenalty + \advance\pxrr@cnta\pxrr@auto@penalty\relax + \penalty\pxrr@cnta + \fi + \fi\fi +} +% \end{macrocode} +% \end{macro} +% % \subsubsection{$B8eB&?JF~=hM}(B} % % \begin{macro}{\pxrr@intrude@end} @@ -3673,6 +3985,9 @@ \ifpxrrDebug \pxrr@debug@show@input \fi + \ifpxrr@safe@mode + \pxrr@setup@safe@mode + \fi % \end{macrocode} % $BF~NO8!::$r9T$$!"%Q%9$7$?>l9g$OAHHG=hM}$K?J$`!#(B % \begin{macrocode} @@ -3722,6 +4037,9 @@ \ifpxrrDebug \pxrr@debug@show@input \fi + \ifpxrr@safe@mode + \pxrr@setup@safe@mode + \fi % \end{macrocode} % $BF~NO8!::$r9T$$!"%Q%9$7$?>l9g$OAHHG=hM}$K?J$`!#(B % \begin{macrocode} @@ -3737,6 +4055,18 @@ % \end{macrocode} % \end{macro} % +% \begin{macro}{\pxrr@setup@safe@mode} +% $B0BA4%b!<%IMQ$N@_Dj!#(B +% \begin{macrocode} +\def\pxrr@setup@safe@mode{% + \let\pxrr@mode=g% + \chardef\pxrr@evensp\z@ + \chardef\pxrr@revensp\z@ + \chardef\pxrr@fullsize\z@ +} +% \end{macrocode} +% \end{macro} +% % \subsubsection{$BF~NO8!::(B} % % $B%0%k!<%W!&J8;z$N8D?t$N8!::$r9T$&<jB3!#(B @@ -3884,6 +4214,7 @@ \pxrr@zip@list\pxrr@body@list\pxrr@ruby@list \let\pxrr@whole@list\pxrr@res \pxrr@check@par@head + \pxrr@put@head@penalty \pxrr@any@protrfalse \ifpxrrDebug \pxrr@debug@show@recomp @@ -4001,6 +4332,7 @@ \pxrr@zip@list\pxrr@body@list\pxrr@ruby@list \let\pxrr@whole@list\pxrr@res \pxrr@check@par@head + \pxrr@put@head@penalty \ifpxrrDebug \pxrr@debug@show@recomp \fi @@ -4032,6 +4364,7 @@ % \begin{macrocode} \def\pxrr@ruby@main@tg{% \pxrr@check@par@head + \pxrr@put@head@penalty \let\pxrr@locate@sing@\pxrr@locate@inner \ifpxrr@aprotr\else \let\pxrr@locate@sing@\pxrr@locate@end @@ -4107,23 +4440,24 @@ % $B!J%0%k!<%WFb$G(B |\usefont{T1}{lmr}{m}{n}| $B$r8F$s$G$*$/$H!"(B % $BBg0hE*$K(B |\T1/lmr/m/n/2.5| $B$,Dj5A$5$l$k!#!K(B % \begin{macrocode} -\ifpxrr@aghost +\def\pxrr@setup@aghost{% + \global\let\pxrr@setup@aghost\relax \IfFileExists{t1lmr.fd}{% \begingroup - \fontsize{2.5}{0}\usefont{T1}{lmr}{m}{n} + \fontsize{2.5}{0}\usefont{T1}{lmr}{m}{n}% \endgroup - \pxrr@letcs\pxrr@aghostfont{T1/lmr/m/n/2.5}% - \chardef\pxrr@aghostchar=23 % compwordmark - \def\pxrr@aghost{{\pxrr@aghostfont\pxrr@aghostchar}}% - \xspcode\pxrr@aghostchar=3 % + \global\pxrr@letcs\pxrr@aghostfont{T1/lmr/m/n/2.5}% + \global\chardef\pxrr@aghostchar=23 % compwordmark + \gdef\pxrr@aghost{{\pxrr@aghostfont\pxrr@aghostchar}}% + \global\xspcode\pxrr@aghostchar=3 % }{%else - \oxrr@warn{Ghost embedding for \string\aruby\space + \pxrr@warn{Ghost embedding for \string\aruby\space is disabled,\MessageBreak since package lmodern is missing}% - \pxrr@aghostfalse - \let\pxrr@aghosttrue\relax + \global\pxrr@aghostfalse + \global\let\pxrr@aghosttrue\relax }% -\fi +} % \end{macrocode} % \end{macro} % @@ -4226,6 +4560,8 @@ pxrr@aintr = \pxrr@aintr^^J% pxrr@athead = \the\pxrr@athead^^J% pxrr@mode = \meaning\pxrr@mode^^J% + ifpxrr@athead@given = \meaning\ifpxrr@athead@given^^J% + ifpxrr@mode@given = \meaning\ifpxrr@mode@given^^J% pxrr@body@list = \meaning\pxrr@body@list^^J% pxrr@body@count = \@nameuse{pxrr@body@count}^^J% pxrr@ruby@list = \meaning\pxrr@ruby@list^^J% diff --git a/Master/texmf-dist/tex/platex/pxrubrica/pxrubrica.sty b/Master/texmf-dist/tex/platex/pxrubrica/pxrubrica.sty index 5c6bd7beb7c..7e3b4156551 100644 --- a/Master/texmf-dist/tex/platex/pxrubrica/pxrubrica.sty +++ b/Master/texmf-dist/tex/platex/pxrubrica/pxrubrica.sty @@ -20,24 +20,9 @@ %% original source files, as listed above, are part of the %% same distribution. (The sources need not necessarily be %% in the same archive or directory.) -%% \CharacterTable -%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z -%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z -%% Digits \0\1\2\3\4\5\6\7\8\9 -%% Exclamation \! Double quote \" Hash (number) \# -%% Dollar \$ Percent \% Ampersand \& -%% Acute accent \' Left paren \( Right paren \) -%% Asterisk \* Plus \+ Comma \, -%% Minus \- Point \. Solidus \/ -%% Colon \: Semicolon \; Less than \< -%% Equals \= Greater than \> Question mark \? -%% Commercial at \@ Left bracket \[ Backslash \\ -%% Right bracket \] Circumflex \^ Underscore \_ -%% Grave accent \` Left brace \{ Vertical bar \| -%% Right brace \} Tilde \~} \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{pxrubrica} - [2014/12/23 v1.0a PX Japanese-style ruby] + [2017/04/10 v1.1 PX Japanese-style ruby] \RequirePackage{keyval} \def\pxrr@pkgname{pxrubrica} \def\pxrr@error{% @@ -104,6 +89,11 @@ Feature of movable group ruby is disabled% }\pxrr@eh@fatal } +\def\pxrr@warn@load@order#1{% + \pxrr@warn{% + This package should be loaded after '#1'% + }% +} \def\pxrr@interror#1{% \pxrr@fatal@error{INTERNAL ERROR (#1)}% \pxrr@eh@fatal @@ -129,7 +119,8 @@ \newif\ifpxrr@aghost \pxrr@aghostfalse \def\pxrr@inter@gap{0} \newif\ifpxrr@edge@adjust \pxrr@edge@adjustfalse -\newif\ifpxrr@break@jukugo \pxrr@edge@adjustfalse +\newif\ifpxrr@break@jukugo \pxrr@break@jukugofalse +\newif\ifpxrr@safe@mode \pxrr@safe@modefalse \newif\ifpxrr@d@bprotr \pxrr@d@bprotrtrue \newif\ifpxrr@d@aprotr \pxrr@d@aprotrtrue \def\pxrr@d@bintr{} @@ -150,10 +141,14 @@ \newif\ifpxrr@bfintr \pxrr@bfintrfalse \newif\ifpxrr@afintr \pxrr@afintrfalse \chardef\pxrr@athead=0 +\newif\ifpxrr@athead@given \pxrr@athead@givenfalse \let\pxrr@mode=\@undefined +\newif\ifpxrr@mode@given \pxrr@mode@givenfalse +\newif\ifpxrr@afintr \pxrr@afintrfalse \newif\ifpxrr@abody \chardef\pxrr@side=0 \chardef\pxrr@evensp=1 +\chardef\pxrr@revensp=1 \chardef\pxrr@fullsize=1 \newif\ifpxrr@ok \newcount\pxrr@cnta @@ -435,13 +430,54 @@ }{% \pxrr@csletcs{ifpxrr@in@xetex}{iffalse}% } +\@ifpackageloaded{xeCJK}{% + \pxrr@csletcs{ifpxrr@in@xecjk}{iftrue}% +}{% + \pxrr@csletcs{ifpxrr@in@xecjk}{iffalse}% + \AtBeginDocument{% + \@ifpackageloaded{xeCJK}{% + \pxrr@warn@load@order{xeCJK}% + }{}% + }% +} +\pxrr@ifprimitive\luatexrevision{% + \pxrr@csletcs{ifpxrr@in@luatex}{iftrue}% +}{% + \pxrr@csletcs{ifpxrr@in@luatex}{iffalse}% +} +\@ifpackageloaded{luatexja-core}{% + \pxrr@csletcs{ifpxrr@in@luatexja}{iftrue}% +}{% + \pxrr@csletcs{ifpxrr@in@luatexja}{iffalse}% + \AtBeginDocument{% + \@ifpackageloaded{luatexja-core}{% + \pxrr@warn@load@order{LuaTeX-ja}% + }{}% + }% +} +\ifpxrr@in@xetex +\else\ifpxrr@in@luatex +\else\ifpxrr@in@ptex +\else + \pxrr@ifprimitive\pdftexrevision{% + \pxrr@warn{% + The engine in use seems to be pdfTeX,\MessageBreak + so safe mode is turned on% + }% + \AtEndOfPackage{% + \rubysafemode + }% + } +\fi\fi\fi \ifpxrr@in@xetex \pxrr@csletcs{ifpxrr@in@unicode}{iftrue}% +\else\ifpxrr@in@luatex + \pxrr@csletcs{ifpxrr@in@unicode}{iftrue}% \else\ifpxrr@in@uptex \pxrr@csletcs{ifpxrr@in@unicode}{iftrue}% \else \pxrr@csletcs{ifpxrr@in@unicode}{iffalse}% -\fi\fi +\fi\fi\fi \def\pxrr@jc#1{% \pxrr@jc@a#1\pxrr@nil } @@ -468,20 +504,27 @@ \else \pxrr@csletcs{ifpxrr@in@tate}{iffalse} \fi -\def\pxrr@get@jchar@token#1#2{% - \begingroup - \kansujichar\@ne=#2\relax - \xdef\pxrr@x@gtempa{\kansuji\@ne}% - \endgroup - \let#1\pxrr@x@gtempa -} -\ifpxrr@in@unicode\else - \ifpxrr@in@ptex\else - \def\pxrr@get@jchar@token#1#2{% - \def#1{?}% - } - \fi -\fi +\ifpxrr@in@ptex + \def\pxrr@get@jchar@token#1#2{% + \begingroup + \kansujichar\@ne=#2\relax + \xdef\pxrr@x@gtempa{\kansuji\@ne}% + \endgroup + \let#1\pxrr@x@gtempa + } +\else\ifpxrr@in@unicode + \def\pxrr@get@jchar@token#1#2{% + \begingroup + \lccode`\?=#2\relax + \lowercase{\xdef\pxrr@x@gtempa{?}}% + \endgroup + \let#1\pxrr@x@gtempa + } +\else + \def\pxrr@get@jchar@token#1#2{% + \def#1{?}% + } +\fi\fi \pxrr@jchardef\pxrr@x@K=\pxrr@jc{306C:4E00} \ifpxrr@in@ptex \def\pxrr@get@iiskip#1{% @@ -501,11 +544,20 @@ \fi }% } +\else\ifpxrr@in@luatexja + \def\pxrr@get@iiskip#1{% + \edef#1{% + \ifnum\ltjgetparameter{autospacing}=\@ne + \ltjgetparameter{kanjiskip}% + \else \pxrr@zeropt + \fi + }% + } \else \def\pxrr@get@iiskip#1{% \let#1\pxrr@zeropt } -\fi +\fi\fi \ifpxrr@in@ptex \def\pxrr@get@iaiskip#1{% \pxrr@x@swafalse @@ -524,22 +576,68 @@ \fi }% } -\else +\else\ifpxrr@in@luatexja \def\pxrr@get@iaiskip#1{% - \let#1\pxrr@zeropt + \edef#1{% + \ifnum\ltjgetparameter{autoxspacing}=\@ne + \ltjgetparameter{xkanjiskip}% + \else \pxrr@zeropt + \fi + }% } -\fi +\else + \def\pxrr@get@iaiskip#1{% + \begingroup + \setbox\z@\hbox{M\pxrr@x@K}% + \setbox\tw@\hbox{M\vrule\@width\z@\relax\pxrr@x@K}% + \@tempdima\wd\z@ \advance\@tempdima-\wd\tw@ + \@tempdimb\@tempdima \divide\@tempdimb\thr@@ + \xdef\pxrr@x@gtempa{\the\@tempdima\space minus \the\@tempdimb}% + \endgroup + \let#1=\pxrr@x@gtempa + }% +\fi\fi \ifpxrr@in@ptex \def\pxrr@get@zwidth#1{% \@tempdima=1zw\relax \edef#1{\the\@tempdima}% } +\else\if\ifx\zw\@undefined T\else F\fi F% if defined + \def\pxrr@get@zwidth#1{% + \@tempdima=1\zw\relax + \edef#1{\the\@tempdima}% + } +\else\if\ifx\jsZw\@undefined T\else F\fi F% if defined + \def\pxrr@get@zwidth#1{% + \@tempdima=1\jsZw\relax + \edef#1{\the\@tempdima}% + } +\else\ifnum\pxrr@x@K>\@cclv + \def\pxrr@get@zwidth#1{% + \setbox\tw@\hbox{\pxrr@x@K}% + \@tempdima\wd\tw@ + \ifdim\@tempdima>\z@\else \@tempdima\f@size\p@ \fi + \edef#1{\the\@tempdima}% + } \else \def\pxrr@get@zwidth#1{% - \@tempdima=1em\relax + \@tempdima\f@size\p@\relax \edef#1{\the\@tempdima}% } -\fi +\fi\fi\fi\fi +\ifpxrr@in@ptex + \def\pxrr@get@prebreakpenalty#1#2{% + #1=\prebreakpenalty`#2\relax + } +\else\ifpxrr@in@luatexja + \def\pxrr@get@prebreakpenalty#1#2{% + #1=\ltjgetparameter{prebreakpenalty}{`#2}\relax + } +\else + \def\pxrr@get@prebreakpenalty#1#2{% + #1=\z@ + } +\fi\fi \newif\ifpxrr@in@setup \pxrr@in@setupfalse \newcommand*\rubysetup[1]{% \pxrr@in@setuptrue @@ -585,6 +683,7 @@ } \newcommand*\rubyuseaghost{% \pxrr@aghosttrue + \pxrr@setup@aghost } \newcommand*\rubynouseaghost{% \pxrr@aghostfalse @@ -601,6 +700,12 @@ \newcommand*\rubynobreakjukugo{% \pxrr@break@jukugofalse } +\newcommand*\rubysafemode{% + \pxrr@safe@modetrue +} +\newcommand*\rubynosafemode{% + \pxrr@safe@modefalse +} \newcommand*\rubystretchprop[3]{% \edef\pxrr@sprop@x{#1}% \edef\pxrr@sprop@y{#2}% @@ -645,6 +750,8 @@ \pxrr@anobrfalse \pxrr@bfintrfalse \pxrr@afintrfalse + \pxrr@mode@givenfalse + \pxrr@athead@givenfalse \def\pxrr@po@FS{bi}% \expandafter\pxrr@parse@option@loop\pxrr@tempa @\pxrr@end } @@ -793,21 +900,27 @@ } \def\pxrr@po@PR@c{% \chardef\pxrr@athead\z@ + \pxrr@athead@giventrue } \def\pxrr@po@PR@h{% \chardef\pxrr@athead\@ne + \pxrr@athead@giventrue } \def\pxrr@po@PR@H{% \chardef\pxrr@athead\tw@ + \pxrr@athead@giventrue } \def\pxrr@po@PR@m{% \let\pxrr@mode=m% + \pxrr@mode@giventrue } \def\pxrr@po@PR@g{% \let\pxrr@mode=g% + \pxrr@mode@giventrue } \def\pxrr@po@PR@j{% \let\pxrr@mode=j% + \pxrr@mode@giventrue } \def\pxrr@po@PR@P{% \chardef\pxrr@side\z@ @@ -880,25 +993,28 @@ \if g\pxrr@mode\else \ifpxrr@abody \let\pxrr@mode=g\relax + \ifpxrr@mode@given + \pxrr@warn@must@group + \fi \fi + \fi + \if g\pxrr@mode\else \ifnum\pxrr@side=\tw@ \let\pxrr@mode=g\relax - \fi - \if g\pxrr@mode - \if g\pxrr@d@mode + \ifpxrr@mode@given \pxrr@warn@must@group \fi \fi \fi \ifnum\pxrr@athead>\z@ \ifpxrr@in@tate\else - \pxrr@athead\z@ + \chardef\pxrr@athead\z@ \fi \if g\pxrr@mode - \pxrr@athead\z@ + \chardef\pxrr@athead\z@ \fi \ifnum\pxrr@athead=\z@ - \ifnum\pxrr@d@athead>\z@ + \ifpxrr@athead@given \pxrr@warn@bad@athead \fi \fi @@ -1135,11 +1251,11 @@ \newif\ifpxrr@protr \newif\ifpxrr@any@protr \def\pxrr@epsilon{0.01pt} -\def\pxrr@compose@block{% +\def\pxrr@compose@block#1#2#3{% \let\pxrr@compose@block@do\pxrr@compose@oneside@block@do - \pxrr@compose@block@pre + \pxrr@compose@block@pre{#1}{#2}{#3}{}% } -\def\pxrr@compose@oneside@block@do#1#2#3{% +\def\pxrr@compose@oneside@block@do#1#2#3#4{% \setbox\pxrr@boxa\pxrr@hbox{#2}% \setbox\pxrr@boxr\pxrr@hbox{% \pxrr@use@ruby@font @@ -1257,27 +1373,43 @@ \pxrr@ifnum{\pxrr@fullsize>\z@}{% \pxrr@compose@block@pre@a }{% - \pxrr@compose@block@pre@c + \pxrr@compose@block@pre@d }% } -\def\pxrr@compose@block@pre@a#1#2#3{% - \def\pxrr@compose@block@tempa{#3}% +\def\pxrr@compose@block@pre@a#1#2#3#4{% + \def\pxrr@compose@block@tempa{#4}% \pxrr@transform@kana\pxrr@compose@block@tempa \expandafter\pxrr@compose@block@pre@b - \expandafter{\pxrr@compose@block@tempa}{#1}{#2}% + \expandafter{\pxrr@compose@block@tempa}{#1}{#2}{#3}% } -\def\pxrr@compose@block@pre@b#1#2#3{% - \pxrr@compose@block@pre@c{#2}{#3}{#1}% +\def\pxrr@compose@block@pre@b#1#2#3#4{% + \def\pxrr@compose@block@tempa{#4}% + \pxrr@transform@kana\pxrr@compose@block@tempa + \expandafter\pxrr@compose@block@pre@c + \expandafter{\pxrr@compose@block@tempa}{#1}{#2}{#3}% } -\def\pxrr@compose@block@pre@c{% +\def\pxrr@compose@block@pre@c#1#2#3#4{% + \pxrr@compose@block@pre@d{#3}{#4}{#1}{#2}% +} +\def\pxrr@compose@block@pre@d{% \pxrr@ifnum{\pxrr@evensp=\z@}{% - \pxrr@compose@block@pre@d + \pxrr@compose@block@pre@e + }{% + \pxrr@compose@block@pre@f + }% +} +\def\pxrr@compose@block@pre@e#1#2{% + \pxrr@compose@block@pre@f{#1}{{#2}}% +} +\def\pxrr@compose@block@pre@f{% + \pxrr@ifnum{\pxrr@revensp=\z@}{% + \pxrr@compose@block@pre@g }{% \pxrr@compose@block@do }% } -\def\pxrr@compose@block@pre@d#1#2{% - \pxrr@compose@block@do{#1}{{#2}}% +\def\pxrr@compose@block@pre@g#1#2#3#4{% + \pxrr@compose@block@do{#1}{#2}{{#3}}{{#4}}% } \def\pxrr@add@protect#1{% \expandafter\pxrr@add@protect@a @@ -1345,7 +1477,7 @@ \pxrr@check@kinsoku@c#1#1% } \def\pxrr@check@kinsoku@c#1{% - \pxrr@cntr\prebreakpenalty`#1\relax + \pxrr@get@prebreakpenalty\pxrr@cntr{#1}% \pxrr@tempb } \def\pxrr@tempa#1#2\pxrr@nil{% @@ -1416,12 +1548,25 @@ \hskip-\pxrr@intr@amount\relax \fi \else - \penalty\pxrr@auto@penalty\relax \hskip-\pxrr@intr@amount\relax \hskip\pxrr@auto@icspace\relax \fi \fi } +\def\pxrr@put@head@penalty{% + \ifpxrr@ghost\else \ifpxrr@par@head\else + \ifpxrr@abody + \pxrr@intrude@setauto@a + \else + \pxrr@intrude@setauto@j + \fi + \ifnum\pxrr@auto@penalty=\z@\else + \pxrr@cnta\lastpenalty \unpenalty + \advance\pxrr@cnta\pxrr@auto@penalty\relax + \penalty\pxrr@cnta + \fi + \fi\fi +} \def\pxrr@intrude@end{% \ifpxrr@ghost\else \let\pxrr@intr@amount\pxrr@aspace @@ -1530,6 +1675,9 @@ \ifpxrrDebug \pxrr@debug@show@input \fi + \ifpxrr@safe@mode + \pxrr@setup@safe@mode + \fi \pxrr@if@alive{% \if g\pxrr@mode \pxrr@ruby@check@g @@ -1555,12 +1703,21 @@ \ifpxrrDebug \pxrr@debug@show@input \fi + \ifpxrr@safe@mode + \pxrr@setup@safe@mode + \fi \pxrr@if@alive{% \pxrr@ruby@check@tg \pxrr@if@alive{\pxrr@ruby@main@tg}% }% \pxrr@ruby@exit } +\def\pxrr@setup@safe@mode{% + \let\pxrr@mode=g% + \chardef\pxrr@evensp\z@ + \chardef\pxrr@revensp\z@ + \chardef\pxrr@fullsize\z@ +} \def\pxrr@ruby@check@g{% \ifnum\pxrr@body@count=\pxrr@ruby@count\relax \ifnum\pxrr@body@count=\@ne\else @@ -1624,6 +1781,7 @@ \pxrr@zip@list\pxrr@body@list\pxrr@ruby@list \let\pxrr@whole@list\pxrr@res \pxrr@check@par@head + \pxrr@put@head@penalty \pxrr@any@protrfalse \ifpxrrDebug \pxrr@debug@show@recomp @@ -1705,6 +1863,7 @@ \pxrr@zip@list\pxrr@body@list\pxrr@ruby@list \let\pxrr@whole@list\pxrr@res \pxrr@check@par@head + \pxrr@put@head@penalty \ifpxrrDebug \pxrr@debug@show@recomp \fi @@ -1727,6 +1886,7 @@ } \def\pxrr@ruby@main@tg{% \pxrr@check@par@head + \pxrr@put@head@penalty \let\pxrr@locate@sing@\pxrr@locate@inner \ifpxrr@aprotr\else \let\pxrr@locate@sing@\pxrr@locate@end @@ -1754,23 +1914,24 @@ \kern-\wd\pxrr@boxa \fi } -\ifpxrr@aghost +\def\pxrr@setup@aghost{% + \global\let\pxrr@setup@aghost\relax \IfFileExists{t1lmr.fd}{% \begingroup - \fontsize{2.5}{0}\usefont{T1}{lmr}{m}{n} + \fontsize{2.5}{0}\usefont{T1}{lmr}{m}{n}% \endgroup - \pxrr@letcs\pxrr@aghostfont{T1/lmr/m/n/2.5}% - \chardef\pxrr@aghostchar=23 % compwordmark - \def\pxrr@aghost{{\pxrr@aghostfont\pxrr@aghostchar}}% - \xspcode\pxrr@aghostchar=3 % + \global\pxrr@letcs\pxrr@aghostfont{T1/lmr/m/n/2.5}% + \global\chardef\pxrr@aghostchar=23 % compwordmark + \gdef\pxrr@aghost{{\pxrr@aghostfont\pxrr@aghostchar}}% + \global\xspcode\pxrr@aghostchar=3 % }{%else - \oxrr@warn{Ghost embedding for \string\aruby\space + \pxrr@warn{Ghost embedding for \string\aruby\space is disabled,\MessageBreak since package lmodern is missing}% - \pxrr@aghostfalse - \let\pxrr@aghosttrue\relax + \global\pxrr@aghostfalse + \global\let\pxrr@aghosttrue\relax }% -\fi +} \def\pxrr@aprologue{% \ifpxrr@aghost \pxrr@aghost @@ -1832,6 +1993,8 @@ pxrr@aintr = \pxrr@aintr^^J% pxrr@athead = \the\pxrr@athead^^J% pxrr@mode = \meaning\pxrr@mode^^J% + ifpxrr@athead@given = \meaning\ifpxrr@athead@given^^J% + ifpxrr@mode@given = \meaning\ifpxrr@mode@given^^J% pxrr@body@list = \meaning\pxrr@body@list^^J% pxrr@body@count = \@nameuse{pxrr@body@count}^^J% pxrr@ruby@list = \meaning\pxrr@ruby@list^^J% |