%#! lualatex %%% a test of ruby. \documentclass[a4paper,10ptj]{ltjsarticle} \usepackage[cmyk]{xcolor} \usepackage{enumitem,mleftright,pict2e} \usepackage{luatexja-otf,amsmath,bxghost} \usepackage[no-math]{fontspec} \usepackage[match]{luatexja-fontspec} \usepackage[haranoaji]{luatexja-preset}\normalsize \setmonojfont{HaranoAjiGothic-Regular.otf} \usepackage{unicode-math} \setmathfont{Latin Modern Math} %\usepackage{lua-visual-debug} \def\emph#1{\textbf{\textgt{#1}}} \def\headfont{\normalfont\bfseries\gtfamily} \def\cs#1{\eghostguarded{\texttt{\textbackslash#1}}} \usepackage[textwidth=45\zw, lines=45, footskip=2\zh]{geometry} \advance\leftmargini-1\zw\advance\leftmarginii-1\zw \protected\def\Param#1{\texorpdfstring{\eghostguarded{\underline{\smash{\textsf{\mdseries #1}}}}}{#1}} \def\Pkg#1{\texorpdfstring{\textsf{#1}}{#1}} % packages/classes \usepackage{luatexja-ruby,showexpl,booktabs} \usepackage{luacolor,lua-ul} \definecolor{green}{cmyk}{.75,0,.65,0} \definecolor{blue}{cmyk}{1,.45,0,0} \definecolor{b_blue}{cmyk}{.3,0,0,0} \lstset{ preset=\normalsize, basicstyle=\small\ttfamily, basewidth=0.5em, explpreset={numberstyle=\tiny, numbers=left, numbersep=1em, columns=fixed}, morecomment=[l]{\%}, commentstyle=\color{green} } \newunderlinetype\beginActIntr{\color{blue}\leaders\vrule height -.16\zh depth .24\zh} \NewDocumentCommand\ActIntr{+m}{{\beginActIntr#1}} \makeatletter\let\SX@Info=\relax\makeatother \fboxsep=0mm \usepackage{hyperref,bookmark,xcolor} \hypersetup{% unicode, colorlinks, allbordercolors=1 1 1, allcolors=blue, pdftitle={luatexja-ruby.sty} } \makeatletter \def\Node{\@ifstar{\@Node[b_blue]}{\@Node[white]}} \def\@Node[#1]#2#3{\,\vcenter{\hbox{\fboxsep=1pt\fcolorbox{black}{#1}{% \vbox{\small\halign{\hfil##\hfil\cr #2\mathstrut\cr\noalign{\smallskip\hrule height.4pt\smallskip}\strut\<#3\cr}}}}}\,} \def\LuaTeX{Lua\TeX} % 三分ルビ用 \DeclareFontShape{JY3}{mc}{mc}{n}{<-> [0.92487] HaranoAjiMincho-Regular:extend=0.67;jfm=ujisc33}{} \makeatletter \let\origunderscore=\_ \def\_{\ifx\f@family\ttdefault\origunderscore\else \leavevmode \kern .06em\vbox {\hrule \@width .333em}\fi} \def\figureautorefname{図} \def\tableautorefname{表} \def\HyRef@autoref#1#2{% \begingroup \Hy@safe@activestrue \expandafter\HyRef@autosetref\csname r@#2\endcsname{#2}{#1}% \endgroup\eghostguarded{}%" 欧文ゴースト } \title{\Pkg{luatexja-ruby}パッケージ} \author{\LuaTeX-jaプロジェクトチーム} \date{\texttt{\csname ver@luatexja-ruby.sty\endcsname}(\today)} \makeatletter \def\mybox{\@ifnextchar({\mybox@@{2}{0}}{% \@ifnextchar){\mybox@@{0}{2}}{\@ifnextchar={\mybox@@{1}{1}}{\mybox@@{0}{0}.}}}} \def\mybox@@#1#2#3#4{\unskip\ {\Large \fboxrule=0.1mm\fboxsep=0mm% \ifnum#1>0\fcolorbox{blue}{b_blue}{\vrule width 0pt height .88\zh depth .12\zh\kern#1\dimexpr.25\zw}\kern-\fboxrule\fi% \fcolorbox{blue}{white}{\hbox{\<\ltjjachar#4\<}}% \ifnum#2>0\kern-\fboxrule\fcolorbox{blue}{b_blue}{\vrule width 0pt height .88\zh depth .12\zh\kern#2\dimexpr.25\zw}\fi% }\ } \def\RULER#1#2{% \noindent \rlap{\smash{\phantom{#1}\ \color{cyan}% \@tempcnta=0 \loop\ifnum\@tempcnta<20 \kern-.05mm\vrule height \dimexpr-\baselineskip+0.88\zh depth \dimexpr #2\baselineskip+0.12\zh width0.1mm\kern-.05mm% \kern\zw\advance\@tempcnta 1 \repeat }}\ignorespaces } \begin{document} \catcode`\<=13 \def<#1>{{\rmfamily\mdseries\itshape$\langle$#1\/$\rangle$}} %\fontsize{13.19873}{15}\selectfont% \maketitle \begin{abstract} \Pkg{luatexja-ruby}パッケージは,\LuaTeX-jaの機能を利用してルビの組版処理を行う追加パッケージである. \LuaTeX, \LuaTeX-jaの内部処理に割り込むことにより,熟語ルビ中の行分割や, 行頭形・行中形・行末形の自動検出,また進入許容量の自動設定などを可能とした. v0.3より前とは親文字の高さの扱いが変わっている(\texttt{baseheight}キーを参照せよ)ほか, \Param{rubypreintrusion}, \Param{rubypostintrusion}パラメータの初期値が変わっているので注意すること. \end{abstract} \tableofcontents \newpage \section[利用方法]{\ltjruby{利|用|方|法}{り|よう|ほう|ほう}} パッケージ読み込みは,\verb+\usepackage{luatexja-ruby}+ で良く, 必要ならば自動的に\LuaTeX-ja本体を読み込む. plain \LuaTeX でのロードはまだサポートしておらず, \LaTeXe のみサポートしている. \subsection[用語]{\ltjruby{用|語}{よう|ご}} 「進入(intrusion)」「突出(protrusion)」という用語は, \href{http://zrbabbler.sp.land.to/pxrubrica.html}{\Pkg{pxrubrica}パッケージ}% での用法に準ずる. \begin{quote} 進入あり:と\ltjruby{暁}{あかつき}の\\ 進入なし:と\ltjruby[mode=0]{暁}{あかつき}の\\ 突出あり:\ltjruby[stretch={1}{2}{1}]{聴衆}{ちようしゆう}\\ 突出なし:\ltjruby[stretch={0}{2}{0}]{聴衆}{ちようしゆう} \end{quote} なお,本パッケージでは親文字と直前・直後の文字の間に0でない和文処理グルー \footnote{JFMで指定されたグルーや,標準の和文間空白(\Param{kanjiskip}),標準の和欧文間空白(\Param{xkanjiskip}).}% がくることも考慮しているため,「\emph{前後の文字への}\ActIntr{進入(許容)量}」と「進入(許容)量」とは異なる可能性がある. この文書では次のように称する: \begin{description} \item[\ActIntr{文字進入量}] 前後の文字へルビ文字が実際にかかる長さ.常に下線を引くことにする. \item[進入量] 前後の文字,およびそれとルビの間の和文処理グルーにかかる長さ \end{description} 多くの場合,和文処理グルーは0以上の長さのため,進入量は\ActIntr{文字進入量}以上である. 例えば次の例では,直前の文字「来」への\ActIntr{前文字進入量}は0であるが, 前進入量は(和欧文間空白にかかる分まで含めるので)正である. \begin{quote} \Large 本来\ltjruby{foohoge}{\vrule ほげほげふがふが\vrule}においては……\\ 本来foohogeにおいては…… \end{quote} また,「親文字全角幅」「親文字全角高さ」という用語は,それぞれ親文字の和文フォントにおける \cs{zw},~\cs{zh}命令で取得できる値を表す.多くの場合は両者は同じ値であるが,いつでもそうであるという保証はない. 「ルビ全角幅」「ルビ全角高さ」についても同様である. \subsection[命令]{\ruby{命|令}{めい|れい}} \label{ssec:ltjruby} \paragraph{\cs{ltjruby}} ルビ出力用命令の本体.\cs{ruby}という別名を定義している. \begin{quote} \ttfamily \textbackslash ltjruby[