\usepackage{metalogo,amsmath,array,tikz,pict2e,multienum,float}
\usepackage{booktabs,multicol,luatexja-ruby}
\usepackage[all]{xy}
-\usepackage{lltjext,alltt}
+\usepackage{lltjext,alltt,comment}
%%%%%%%% Lua GC
\patchcmd\@outputpage{\stepcounter{page}}{%
%%%%%%%% fonts
\usepackage{luatexja-otf}
-\directlua{luatexja.otf.enable_ivs()}
\usepackage[no-math]{fontspec}
\setmainfont[Ligatures=TeX]{Linux Libertine O}
\setmonofont[Scale=MatchLowercase, ItalicFont=lmmono10-italic.otf,
%<*en>
\title{The \LuaTeX-ja package}
\author{The \LuaTeX-ja project team}
+\date{\LuaTeXjaversion~(\today)}
%</en>
%<*ja>
\title{\LuaTeX-jaパッケージ}
\author{\LuaTeX-jaプロジェクトチーム}
+\date{\LuaTeXjaversion(\today)}
%</ja>
\hypersetup{%
unicode,
%</en>
%<*ja>
\paragraph{組方向}
-20150420.0版からは,不安定ながらも\LuaTeX-ja における縦組みをサポートしている.
+バージョン20150420.0からは,不安定ながらも\LuaTeX-ja における縦組みをサポートしている.
なお,\LuaTeX 本体も$\Omega$流の組方向をサポートしているが,それとは全くの別物であること
に注意してほしい.
特に,異なった組方向のボックスを扱う場合には
詳しい説明は\ref{ssec-setrange}節を参照してほしい.
また,\P,~\S といったISO~8859-1の上位領域とJIS~X~0208の共通部分の文字は
- 20150906.0版から標準で欧文扱いとなった.\LaTeXe\ 2017/01/01以降では
+ バージョン20150906.0から標準で欧文扱いとなった.\LaTeXe\ 2017/01/01以降では
標準でTUエンコーディングのLatin Modernフォントが使われるので,
特に何もせずソース中にそのまま記述してもこれらの文字が出力される
\footnote{\LaTeXe\ 2017/01/01より前では,ソース中に直接記述しても
\end{itemize}
%<en>In summary, \LuaTeX-ja version 20160404.0 (or~later) no longer supports \TeX~Live~2015.
%<*ja>
-要約すると,20160404.0版以降の\LuaTeX-jaは\TeX~Live~2015以前では動作しない\footnote{%
+要約すると,バージョン20160404.0以降の\LuaTeX-jaは\TeX~Live~2015以前では動作しない\footnote{%
もっとも,自分で\LuaTeX のバイナリをSubversionリポジトリからビルドしていれば話は別である.
}.
%</ja>
%</ja>
\item[deluxe]
%<*en>
-Use \textit{mincho} with two weights (medium~and~bold),
-\textit{gothic} with three weights (medium, bold~and~heavy), and \textit{rounded gothic}%
+Use \textit{mincho} with three weights (light, medium, and~bold),
+\textit{gothic} with three weights (medium, bold, and~heavy), and \textit{rounded gothic}%
\footnote{Provided by \cs{mgfamily} and \cs{textmg},
-because \textit{rounded gothic} is called \textit{maru gothic} (丸ゴシック) in Japanese.}.
-The heavy weight of \textit{gothic} can be used by ``changing the family'' \cs{gtebfamily},
-or \verb+\textgteb{...}+.
-This is because the \Pkg{fontspec} package can handle only medium (\cs{mdseries}) and
-bold (\cs{bfseries}).
+because ``rounded gothic'' is called \textit{maru gothic} (丸ゴシック) in Japanese.}.
+The light weight of mincho and the heavy weight of gothic can be used by
+\cs{mcfamily}\cs{ltseries}~and~\cs{gtfamily}\cs{ebseries}, respectively.
+
+\begin{itemize}
+ \item Some presets do not have the light weight of mincho.
+ In this case, we substitute the medium weight for the light weight.
+ \item \Pkg{luatexja-preset} does not produce an error (only produces a warning), even if
+ (one of) fonts for \cs{mcfamily}\cs{ltseries}, \cs{gtfamily}\cs{ebseries}, \cs{mgfamily}
+ do not exist.
+\end{itemize}
%</en>
%<*ja>
-明朝体2ウェイト・ゴシック体3ウェイトと,
-丸ゴシック体 (\cs{mgfamily}, \verb+\textmg{...}+) を使用可能とする.
-ゴシック体は中字・太字・極太の3ウェイトがあるが,
-極太ゴシック体を使う場合,
+明朝体3ウェイト・ゴシック体3ウェイトと,
+丸ゴシック体 (\cs{mgfamily}, \verb+\textmg{...}+) を利用可能にする.
+明朝体は細字・中字・太字の3ウェイトがあり,
+明朝体の細字は \cs{mcfamily}\cs{ltseries} で利用できる.
+また,ゴシック体は中字・太字・極太の3ウェイトがあり,
+ゴシック体の極太は \cs{gtfamily}\cs{ebseries} で利用できる%
+\footnote{過去との互換性のため,\cs{gtebfamily}, \cs{textgteb\{...\}} も
+ 依然として利用可能である.}.
+
\begin{itemize}
- \item \cs{gtebfamily}, \verb+\textgteb{...}+
- \item \cs{ebseries} (周囲がゴシック体のとき,\texttt{nfssonly} オプション指定時のみ)
+ \item プリセット設定によっては明朝体細字が用意されていないものもある.その場合は
+ 明朝体中字が代用される.
+ \item 明朝体細字,ゴシック体極太,丸ゴシック体の3フォントについては
+ 実際にフォントをロードする前に存在するかチェックを行う.
+ 存在しなかったものについては警告を発し,
+ それぞれ明朝体中字.ゴシック体太字,ゴシック体太字で代用する.
\end{itemize}
-のいずれかを用いる.標準で \cs{ebseries} が準備されていないのは,バージョンが古い
-\Pkg{fontspec}では中字(\cs{mdseries})と太字(\cs{bfseries})しか扱えなかった名残である.
%</ja>
\item[expert]
%<*en>
\toprule
\bfseries family&\bfseries series&\ttfamily kozuka-pro&\ttfamily kozuka-pr6&\ttfamily kozuka-pr6n\\
\midrule
+ &light&KozMinPro-Light&KozMinProVI-Light&KozMinPr6N-Light\\
+%<en>\textit{mincho}%
+%<ja>\textgt{明朝}%
&medium&KozMinPro-Regular&KozMinProVI-Regular&KozMinPr6N-Regular\\
-%<en>\smash{\raisebox{1.5ex}{\textit{mincho}}}%
-%<ja>\smash{\raisebox{1.5ex}{\gt 明朝}}%
&bold&KozMinPro-Bold&KozMinProVI-Bold&KozMinPr6N-Bold\\
\midrule
&&KozGoPro-Regular*&KozGoProVI-Regular*&KozGoPr6N-Regular*\\
\item[hiragino-pron] Hiragino ProN (Adobe-Japan1-5, JIS04-savvy) fonts.
%<*en>
-Hiragino fonts are bundled with Mac OS~X 10.5 or later.
+Hiragino fonts (except Hiragino~Mincho~W2) are bundled with Mac OS~X 10.5 or later.
Some editions of a Japanese word-processor ``一太郎2012'' includes Hiragino ProN fonts.
-Note that the heavy weight of \textit{gothic} family only supports
-Adobe-Japan1-3 character collection (Std/StdN).
+Note that the heavy weight of gothic family only supports
+Adobe-Japan1-3 character collection (Std/StdN), while others supports
+Adobe-Japan1-5 character collection.
%</en>
%<*ja>
ヒラギノフォントは,Mac OS~X以外にも,一太郎2012の上位エディションにもバンドルされている.
-極太ゴシックとして用いるヒラギノ角ゴW8は,Adobe-Japan1-3の範囲しかカバーしていない
+極太ゴシック体として用いるヒラギノ角ゴW8は,Adobe-Japan1-3の範囲しかカバーしていない
Std/StdNフォントであり,その他はAdobe-Japan1-5対応である.
+
+なお,明朝体細字として用いるヒラギノ明朝体W2はOS~Xや一太郎にはバンドルされておらず,
+別途購入する必要がある.
%</ja>
\begin{center}\small
\begin{tabular}{clll}
\toprule
\bf family&\bf series&\tt hiragino-pro&\tt hiragino-pron\\
\midrule
+ &light&Hiragino~Mincho~Pro~W2&Hiragino~Mincho~ProN~W2\\
+%<en>\textit{mincho}%
+%<ja>\textgt{明朝}%
&medium&Hiragino~Mincho~Pro~W3&Hiragino~Mincho~ProN~W3\\
-%<en>\smash{\raisebox{1.5ex}{\textit{mincho}}}%
-%<ja>\smash{\raisebox{1.5ex}{\gt 明朝}}%
&bold&Hiragino~Mincho~Pro~W6&Hiragino~Mincho~ProN~W6\\
\midrule
&&Hiragino~Kaku~Gothic~Pro~W3*&Hiragino~Kaku~Gothic~ProN~W3*\\
\toprule
\bf family&\bf series&\texttt{yu-win}&\texttt{yu-win10}&\texttt{yu-osx}\\
\midrule
+ &light&YuMincho-Light&YuMincho-Light&(YuMincho~Medium)\\
+%<en>\textit{mincho}%
+%<ja>\textgt{明朝}%
&medium&YuMincho-Regular&YuMincho-Regular&YuMincho~Medium\\
-%<en>\smash{\raisebox{1.5ex}{\textit{mincho}}}%
-%<ja>\smash{\raisebox{1.5ex}{\gt 明朝}}%
&bold&YuMincho-Demibold&YuMincho-Demibold&YuMincho~Demibold\\
\midrule
&&YuGothic-Regular*&YuGothic-Regular*&YuGothic~Medium*\\
\end{center}
\item[moga-mobo] MogaMincho, MogaGothic, and MoboGothic.
+%<en> \\*[-\dimexpr\medskipamount+\baselineskip\relax]
\item[moga-mobo-ex] MogaExMincho, MogaExGothic, and MoboExGothic.
-%<en>These fonts can be downloaded from\\\hfill \url{http://yozvox.web.fc2.com/}.
+%<en>\par These fonts can be downloaded from \url{http://yozvox.web.fc2.com/}.
%<ja>これらのフォントは \url{http://yozvox.web.fc2.com/} からダウンロードできる.
\begin{center}\small
\begin{tabular}{clll}
%<ja>\texttt{moga-mobo-ex}オプション指定時にはMogaEx90MinchoなどのExが名前についたフォントが使われる.
\item[ume] Ume Mincho and Ume Gothic.
-%<en>These fonts can be downloaded from\\\hfill \url{https://ja.osdn.net/projects/ume-font/wiki/FrontPage}.
+%<en>\par These fonts can be downloaded from\\\hfill \url{https://ja.osdn.net/projects/ume-font/wiki/FrontPage}.
%<ja>これらのフォントは \url{https://ja.osdn.net/projects/ume-font/wiki/FrontPage} からダウンロードできる.
\begin{center}\small
\begin{tabular}{cll}
\end{tabular}
\end{center}
+%<ja>\newpage
+ \item[sourcehan] Source Han Serif and Source Han Sans fonts (Language-specific OTF \textit{or} OTC)
+%<en> \\*[-\dimexpr\medskipamount+\baselineskip\relax]
+ \item[sourcehan-jp] Source Han Serif JP and Source Han Sans JP fonts (Region-specific Subset OTF)
+\begin{center}\small
+\def\AD#1#2{Source Han #1 #2&Source Han #1 JP #2}%
+\begin{tabular}{cllll}
+\toprule
+\bf family&\bf series&\texttt{sourcehan}&\texttt{sourcehan-jp}\\
+\midrule
+ &light&\AD{Serif}{Light}\\
+%<en>\textit{mincho}%
+%<ja>\textgt{明朝}%
+ &medium&\AD{Serif}{Regular}\\
+ &bold&\AD{Serif}{Bold}\\
+\midrule
+ &&\AD{Sans}{Regular*}\\
+ &\smash{\raisebox{1.5ex}{medium}}
+ &\AD{Sans}{Medium}\\
+\cmidrule(l){2-4}
+%<en>\smash{\raisebox{2ex}{\textit{gothic}}}%
+%<ja>\smash{\raisebox{2ex}{\gt ゴシック}}%
+ &bold&\AD{Sans}{Bold}\\
+ &heavy&\AD{Sans}{Heavy}\\
+\midrule
+%<en>\textit{rounded gothic}
+%<ja>\gt 丸ゴシック
+&&\AD{Sans}{Heavy}\\
+\bottomrule
+\end{tabular}
+\end{center}
+
+
+ \item[noto-otc] Noto Serif CJK and Noto Sans CJK fonts (OTC)
+%<en> \\*[-\dimexpr\medskipamount+\baselineskip\relax]
+ \item[noto-otf] Noto Serif CJK and Noto Sans CJK fonts (Language-specific OTF)
+\begin{center}\small
+\def\AD#1#2{Noto #1 CJK #2&Noto #1 CJK JP #2}%
+\begin{tabular}{cllll}
+\toprule
+\bf family&\bf series&\texttt{noto-otc}&\texttt{noto-otf}\\
+\midrule
+ &light&\AD{Serif}{Light}\\
+%<en>\textit{mincho}%
+%<ja>\textgt{明朝}%
+ &medium&\AD{Serif}{Regular}\\
+ &bold&\AD{Serif}{Bold}\\
+\midrule
+ &&\AD{Sans}{Regular*}\\
+ &\smash{\raisebox{1.5ex}{medium}}
+ &\AD{Sans}{Medium}\\
+\cmidrule(l){2-4}
+%<en>\smash{\raisebox{2ex}{\textit{gothic}}}%
+%<ja>\smash{\raisebox{2ex}{\gt ゴシック}}%
+ &bold&\AD{Sans}{Bold}\\
+ &heavy&\AD{Sans}{Black}\\
+\midrule
+%<en>\textit{rounded gothic}
+%<ja>\gt 丸ゴシック
+&&\AD{Sans}{Black}\\
+\bottomrule
+\end{tabular}
+\end{center}
+
+
+
\end{cslist}
%<en>\paragraph{Presets for single weight}
%<ja>\paragraph{単ウェイト用プリセット一覧}
Hence, as previous versions of \LuaTeX-ja, if these characters are treated as
\text{JAchar}s, then \cs{Frowny} produces ``\ltjjachar`§'' (in a Japanese font).
-To avoid such situations, the default setting of \LuaTeX-ja is changed in this release
+To avoid such situations, the default setting of \LuaTeX-ja is changed in version~20150906.0
so that all characters \texttt{U+0080}--\texttt{U+00FF} are treated as \textbf{ALchar}.
If you want to output a character as \textbf{ALchar} and \textbf{JAchar} regardless the range
即ち,以前のバージョンのように,「前節の文字範囲8内の文字は\textbf{JAchar}」という設定で
あったとすると,上記の \cs{Frowny} は和文フォントで「\ltjjachar`§」を出力することになる.
-このような事態を避けるために,本バージョンからは \texttt{U+0080}--\texttt{U+00FF} の範囲の
+このような事態を避けるために,バージョン20150906.0からは \texttt{U+0080}--\texttt{U+00FF} の範囲の
文字は全て\textbf{ALchar}となるように初期設定を変更している.
なお,文字範囲の設定に関わらず1つの文字を\textbf{ALchar}, \textbf{JAchar}で出力したい場合には,
まだ違いが見られる.
\end{itemize}
-なお,20170401.0版以降の\LuaTeX-jaでは,\cs{vcenter} によるボックスには
+なお,バージョン20170401.0以降の\LuaTeX-jaでは,\cs{vcenter} によるボックスには
全体が\Param{yalbaselineshift}, \Param{talbaselineshift} パラメータが反映されるようにしている.
その方が結果が自然であることによる変更なのだが,結果的に\cs{vcenter} については\pTeX と同じ挙動となった.
``ア'', not 20.
%</en>
%<*ja>
+\newpage
\subsection{禁則処理関連パラメータとOpenTypeのfont feature}
禁則処理や \Param{kanjiskip}, \Param{xkanjiskip} の挿入に関連したパラメータのうち
\begin{quote}
If specified JFM has not been loaded, \LuaTeX-ja search and load
a file named \texttt{jfm-<name>.lua}.
-The following JFMs are shipped with \LuaTeX-ja:
+The following horizontal JFMs are shipped with \LuaTeX-ja:
%</en>
%<*ja>
用いる(横組用)JFMの名前を指定する.もし以前に指定されたJFMが読み込まれていなければ,
%</ja>
\begin{description}
%<*en>
-\item[\tt jfm-ujis.lua] A standard JFM in \LuaTeX-ja. This JFM is
+\item[\tt jfm-ujis.lua] A standard horizontal JFM in \LuaTeX-ja. This JFM is
based on \verb+upnmlminr-h.tfm+, a metric for UTF/OTF package that
is used in \upTeX. When you use the \Pkg{luatexja-otf} package, you should use this JFM.
%</en>
\label{para-kern}
%<*en>
Some fonts have information for inter-glyph spacing.
-This version of \LuaTeX-ja treats kerning spaces like an italic correction;
+\LuaTeX-ja 20140324.0 or later treats kerning spaces like an italic correction;
any glue and/or kern from the JFM and a kerning space can coexist.
See \autoref{fig:kern-jfm} for detail.
%<*ja>
いくつかのフォントはグリフ間のスペースについての情報を持っている.
このカーニング情報は以前の\LuaTeX-ja とはあまり相性が良くなかったが,
-本バージョンではカーニングによる空白はイタリック補正と同様に扱うことになっている.
+バージョン20140324.0以降ではカーニングによる空白はイタリック補正と同様に扱うことになっている.
つまり,カーニング由来の空白とJFM由来のグルー・カーンは同時に入りうる.
\autoref{fig:kern-jfm}を参照.
\begin{itemize}
\texttt{kanjiskip\_shrink}キー(\pageref{pg:ksp_nat}ページ)の使用によって,
「JFM由来のグルーの他に,\Param{kanjiskip}の自然長/伸び量/縮み量の一部が
同じ場所に挿入される」という状況が起こりうる.
-この機能を無効化し,20150922.0版以前と同じような組版を得るためには
+この機能を無効化し,バージョン20150922.0以前と同じような組版を得るためには
他のOpenType機能と同じように\ \texttt{-ltjksp}\ 指定を行えば良い.
\begin{LTXexample}[width=16\zw]
\leavevmode
%<ja>\subsection{\cs{tfont} 命令}
+\begin{comment}
+ {\catcode`\<=12\catcode`\>=12
\begin{table}[t]
%<en>\caption{Differences between vertical JFMs shipped with \LuaTeX-ja}
%<ja>\caption{\LuaTeX-ja に同梱されている縦組用 JFM の違い}
%<en>\medskip
\label{tab-difjfm-tate}
-\catcode`\<=12\catcode`\>=12
\ltjsetparameter{jacharrange={+3}}
\small
\def\r#1#2{%
\end{minipage}
\ltjsetparameter{jacharrange={-3}}
\end{table}
+}
+\end{comment}
%<*en>
-...
+\cs{tfont} loads a font as a Japanese font for vertical direction.
+This command admits the same syntax used in \cs{font}~and~\cs{jfont}.
+A font defined by~\cs{tfont} differs the following points from that by~\cs{jfont}:
+\begin{itemize}
+ \item Both \texttt{vert}~and~\texttt{vrt2} Opentype features are activated,
+ unless they are explicitly activated or deactivated (as the third line in the example below).
+\begin{lstlisting}
+\tfont\S=file:KozMinPr6N-Regular.otf:jfm=ujisv
+ % vert and vrt2 are automatically activated
+\tfont\T=file:KozMinPr6N-Regular.otf:jfm=ujisv;-vert % vert and vrt2 are not activated
+\end{lstlisting}
+ \item ...
+ \item One have to specify the name of vertical JFM in \texttt{jfm=<name>}.
+\LuaTeX-ja ships following vertical JFMs:
+\begin{description}
+\item[\tt jfm-ujisv.lua] A standard vertical JFM in \LuaTeX-ja. This JFM is
+ based on \verb+upnmlminr-v.tfm+, a metric for UTF/OTF package that
+ is used in \upTeX.
+\item[\tt jfm-tmin.lua] A counterpart for \verb+tmin10.tfm+, which is one
+ of the default Japanese font metric shipped with \pTeX.
+\end{description}
+\end{itemize}
%</en>
%<*ja>
\cs{tfont} はフォントを縦組用の和文フォントとして読み込む命令であり,
\end{lstlisting}
\item \ref{ssec-math}節で述べる,数式中の和文フォントには縦組用和文フォントは指定できない.
\item \texttt{jfm=<name>}\ の部分には縦組用JFMを指定する.
-以下の縦組用JFMが\LuaTeX-jaには同梱されており,違いを\autoref{tab-difjfm-tate}に示した.
+以ä¸\8bã\81®ç¸¦çµ\84ç\94¨JFMã\81\8c\LuaTeX-jaã\81«ã\81¯å\90\8c梱ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bï¼\8e%ã\81\8aã\82\8aï¼\8cé\81\95ã\81\84ã\82\92\autoref{tab-difjfm-tate}ã\81«ç¤ºã\81\97ã\81\9fï¼\8e
\begin{description}
\item[\tt jfm-ujisv.lua] \LuaTeX-jaの標準縦組用JFMである.このJFMは\upTeX で
用いられるUTF/OTFパッケージ用の和文用TFMである \verb+upnmlminr-v.tfm+ を
\begin{cslist}[style=standard]
-\item[version=$1\mathrel{\textrm{or}}2$]
+\item[version=<version>]
%<en>(optional, default value is~1)
%<ja>(任意,既定値は1)
%<*en>
-The version JFM. Currently 1~and~2 are supported
+The version JFM. Currently 1,~2,~and,~3 are supported
%</en>
%<*ja>
-JFMのバージョン.1または2がサポートされる.
+JFMのバージョン.1,~2,~3がサポートされる.
%</ja>
\item[dir=<direction>]
\Pkg{luatexja-adjust}による優先順位付き
行長調整(\ref{ssec-adj}節)において,このグルーの優先度を指定する.許される値は以下の通り:
\begin{description}
- \item[バージョン1のとき] $-4$から$+3$の間の整数
- \item[バージョン2ã\81®ã\81¨ã\81\8d] $-4$ã\81\8bã\82\89$+3$ã\81®é\96\93ã\81®æ\95´æ\95°ã\81®2ã\81¤çµ\84\texttt{\{<stretch>, <shrink>\}}ã\81\8bï¼\8c
+ \item[バージョン1] $-4$から$+3$の間の整数
+ \item[バージョン2以é\99\8d] $-4$ã\81\8bã\82\89$+3$ã\81®é\96\93ã\81®æ\95´æ\95°ã\81®2ã\81¤çµ\84\texttt{\{<stretch>, <shrink>\}}ã\81\8bï¼\8c
または$-4$から$+3$の間の整数.<stretch>, <shrink>はそれぞれこのグルーが伸びるときの優先度,縮むときの
優先度であり,単に整数$i$が指定された場合は\texttt{\{$i$, $i$\}}であると解釈される.
\end{description}
\begin{cslist}[style=standard]
\item[priority=<priority>]
An integer in $[-4,3]$ (treated as 0 if omitted), or
-a pair of these integers \texttt{\{<stretch>, <shrink>\}} (version~2 only).
+a pair of these integers \texttt{\{<stretch>, <shrink>\}} (version 2~or~later).
This is
used only in line adjustment with priority by \Pkg{luatexja-adjust}
(see Subsection~\ref{ssec-adj}). Higher value means the glue is easy to stretch,
%<ja>通常の(\cs{noindent} で開始されていない)段落の先頭.
\item['jcharbdd']
-%<en>A boundary between \textbf{JAchar} and anything else (such as \textbf{ALchar}, kern, glue,\,\ldots).
-%<ja>\textbf{JAchar}と「その他のもの」(欧文文字,glue,kern等)との境界.
+%<en>A boundary between \textbf{JAchar} and anything else.
+%<*ja>
+\textbf{JAchar}と「その他のもの」との境界.
+
+バージョン2以前では\textbf{ALchar},箱,罫線(rule),glue,~kernなどいろいろなものと\textbf{JAchar}の境界に対して
+本特殊文字が用いられていたが,
+バージョン3以降では\ \texttt{'jcharbdd'}, \texttt{'alchar'}, \texttt{'nox\_alchar'},
+\texttt{'glue'} と細分化され,
+\texttt{'jcharbdd'} は主に\textbf{JAchar}とボックスや罫線(rule)との境界に使われるようになった.
+%</ja>
+
+\item['alchar', 'nox\_alchar']
+%<*en>
+(version 3~or~later) A boundary between \textbf{JAchar} and \textbf{ALchar}.
+%</en>
+%<*ja>
+(バージョン3以降)\textbf{JAchar}と\textbf{ALchar}との境界.
+\textbf{JAchar}と\textbf{ALchar}の間に\Param{xkanjiskip}が入ることが可能な場合は
+\ \texttt{'alchar'}\ が,そうでない場合は\ \texttt{'nox\_alchar'}\ が用いられる
+(この区別は\textbf{ALchar}側の\Param{alxspmode}の値によってのみ行われる).
+%</ja>
+
+\item['glue']
+%<en>(version 3~or~later) A boundary between \textbf{JAchar}, and, a glue or kern.
+%<ja>(バージョン3以降))\textbf{JAchar}とglue,kernとの境界.
\item[$-1$]
%<en>The left/right boundary of an inline math formula.
0&\text{\texttt{'left'} (default)}\\0.5&\text{\tt 'middle'}\\1&\text{\tt 'right'}
\end{cases}
\]
-\item For $j\in \omega$, \texttt{[$j$]} stores a kern or a glue which will be inserted
-between character class~$i$ and class~$j$.
-
-If a kern will be inserted, the value of this field is \texttt{[$j$]=\{false, <kern\_node>, <ratio>\}},
-where <kern\_node> is a node\footnote{%
- This version of \LuaTeX-ja uses ``direct access
- model'' for accessing nodes, if possible. }.
-If a glue will be inserted, we have \texttt{[$j$]=\{false, <spec\_node>, <ratio>, <icflag>\}},
-where <spec\_node> is also a node, and $\text{<icflag>}=\textit{from\_jfm}+\text{<priority>}$.
\end{itemize}
+For $i$,~$j\in \omega$, \texttt{char\_type[$i$][$j$]} stores a kern or a glue which will be inserted
+between character class~$i$ and class~$j$.
\end{description}
%</en>
%<*ja>
\end{cases}
\]
のいずれかの値をとる.
-\item $j\in \omega$に対して,\texttt{[$j$]} は文字クラス$i$の文字と$j$の文字の間に挿入されるkern
- やglueを格納している.
-間に入るものがkernであれば,このフィールドの値は\
-\texttt{[$j$]=\{false, <kern\_node>, <ratio>\}} である.
-<kern\_node>はkernを表すノードそのものである\footnote{%
-本バージョンではノードのアクセス手法にdirect access
+\end{itemize}
+$i$,~$j\in \omega$に対して,\texttt{char\_type[$i$][$j$]} は
+文字クラス$i$の文字と$j$の文字の間に挿入されるグルーやカーンを格納している.
+\begin{itemize}
+ \item 間に入るものがカーンであれば,この値は\
+\texttt{[$j$]=\{[1]=<kern\_node>, ratio=<ratio>\}} であり,
+<kern\_node>はカーンを表すノードそのものである\footnote{%
+バージョン20150420.0以降ではノードのアクセス手法にdirect access
modelを用いている.そのため,例えば\LuaTeX\ beta-0.78.2では,単なる自然数のようにし
か見えないことに注意.
}.
-glueであれば,\texttt{[$j$]=\{false, <spec\_node>, <ratio>, <icflag>\}} である.
-<spec\_node>はglueの長さを表すノードそのものであり,
- $\text{<icflag>}=\textit{from\_jfm}+\text{<priority>}$である.
+ \item グルーであれば,この値は以下のキーを持つテーブルである.
+ \begin{description}
+ \item[\texttt{width}, \texttt{stretch}, \texttt{shrink}]
+ グルーのそれぞれ自然長,伸び量,縮み量をsp単位で表したもの.
+ \item[\texttt{priority}] バ(ージョン2以降の)JFMでの指定 \texttt{\{<stretch>,<shrink>\}} を
+ \[
+ (\text{<stretch>}+4)\cdot 8+\text{<shrink>}+4
+ \]
+ として0--63の整数にパックしたもの.
+ \item[\texttt{ratio}, \texttt{kanjiskip\_natural}, \texttt{kanjiskip\_stretch}, \texttt{kanjiskip\_shrink}]
+ JFM中の同名のフィールドの値がそのまま使われている.
+ \end{description}
\end{itemize}
\item[ascent\textrm{, }descent]
……
\item[chars\_cbcache]
-……
+文字クラス決定の処理で.キャッシュとして使われる.
\end{cslist}
%</ja>
%<*en>
An additional attributes which each character whose character code is <chr\_code> has.
-At the present version, the lowermost bit of <natural number> indicates
+At version~20120506.0 or later, the lowermost bit of <natural number> indicates
whether the character is considered as a punctuation mark
(see the description of \Param{jcharwidowpenalty} above).
%</en>
%<*ja>
文字コードが<chr\_code>の文字が持つ付加的な属性値.
-現在のバージョンでは,<natural number>の最下位ビットが,その文字が句読点と
+バージョン20120506.0以降では,<natural number>の最下位ビットが,その文字が句読点と
みなされるかどうかを表している(上の\Param{jcharwidowpenalty}の記述を参照).
%</ja>
\subsection{\cs{ltjfakeboxbdd}, \cs{ltjfakeparbegin}}
+%<*en>
+Sometimes \texttt{'parbdd'}~and~\texttt{'boxbdd'} specifications~look like ``fail'',
+especially in paragraphs inside list environments.
+This is because \cs{everypar} inserts some nodes such as boxes and kerns, so
+the ``first letter'' in a paragraph is in fact not the first letter.
+%</en>
%<*ja>
リスト環境内での\cs{item}で始まる各項目などでは,
「段落最初の鍵括弧が余計に半角字下げされる」など,
\everypar{\null}
「ああああああ \par % ???
\end{LTXexample}
+%<*en>
+\cs{ltjfakeboxbdd}~and~\cs{ltjfakeparbegin} primitives resolve this situation.
+\begin{itemize}
+ \item \cs{ltjfakeparbegin} creates a node which indicates
+ ``beginning of an indented paragraph'' to the insertion process of \textbf{JAglue}.
+ \item \cs{ltjfakeboxbdd} creates a node which indicates
+ ``beginning/ending of a box'' to the insertion process of \textbf{JAglue}.
+\end{itemize}
+As an example, the example above can be improved as follows:
+%</en>
%<*ja>
\cs{ltjfakeboxbdd}, \cs{ltjfakeparbegin}はこの状況を改善する命令である.
実際には\cs{everypar}の末尾にこれらを追加するという使い方がほとんどになるだろう.
この文字の後ろに入るグルー等の処理については未定義である
\footnote{%
この命令と同等の内容は,\cs{dirrctlua}の形で\Pkg{ltjsclasses}内で以前から使われていた.
- 一般ユーザでも利用しやすくするため,20170505.0版では新たに命令として定義した.
+ 一般ユーザでも利用しやすくするため,バージョン20170505.0で新たに命令として定義した.
}.
\item \cs{ltjfakeboxbdd}は,実行された箇所が「ボックスの先頭と末尾」であると\LuaTeX-jaの
和文処理グルー挿入処理に認識させる.
「漢」の寸法を元に(本節の最初に述べた,小文字で始まる)\cs{cht}, \cs{cwd}
といった長さ変数を設定する.
-なお,\LaTeX が2015/10/01 版以降の場合は,「あ」「漢」の代わりに
+なお,\LaTeX が2015/10/01版以降の場合は,「あ」「漢」の代わりに
「文字クラス0の和文文字」を用いる.
%</ja>
\subsection{\Pkg{luatexja-otf}}
\label{ssec-ltjotf}
%<*en>
-This optional package supports typesetting characters in
-Adobe-Japan1 character collection
-(or other CID character collection, if the font is supported).
+This optional package supports typesetting glyphs
+by specifying a CID number.
The package \Pkg{luatexja-otf} offers the following 2~low-level
commands:
%</en>
%<*ja>
-この追加パッケージはAdobe-Japan1(フォント自身が持っていれば,
-別のCID文字セットでも可)の文字の出力をサポートする.
+この追加パッケージはCID番号による文字の出力をサポートする.
\Pkg{luatexja-otf}は以下の2つの低レベルコマンドを提供する:
%</ja>
\begin{cslist}
\item[\cs{CID}\{<number>\}]
%<*en>
-Typeset a character whose CID number is <number>.
+Typeset a glyph whose CID number is <number>.
+If the Japanese font is neither Adobe-Japan1,~Adobe-GB1, Adobe-CNS1,~nor~Adobe-Korea1 CID-keyed font,
+\LuaTeX-ja treats that <number> is a CID number of Adobe-Japan1 character collection,
+and tries to typeset a ``most suitable glyph''.
%</en>
%<*ja>
CID番号が<number>の文字を出力する.
+もし現在の和文フォントがAdobe-Japan1,~Adobe-GB1, Adobe-CNS1,~Adobe-Korea1の
+ いずれのCID-keyed fontでもない場合,<number>はAdobe-Japan1のCID番号であると解釈し
+ 「適切なグリフ」\footnote{%
+ 例えばフォントにIVDコレクションAdobe-Japan1が含まれていれば,その情報を用いて
+ グリフを選択する.
+}を出力する.
%</ja>
\item[\cs{UTF}\{<hex\_number>\}]
正しく半角幅で組むために利用されている.
%</ja>
-%<*en>
-\paragraph{IVS support}
-Recent fonts support Ideographic Variation Selector (IVS).
-\Pkg{luaotfload} and \Pkg{fontspec} packages used to be not supported IVS,
-so we implemented experimental IVS support in \Pkg{luatexja-otf},
-which is activated by
-\begin{lstlisting}
-\directlua{luatexja.otf.enable_ivs()}
-\end{lstlisting}
-However, recent \Pkg{luaotfload} and \Pkg{fontspec} packages seem to support IVS,
-so we don't execute above command anymore.
-%</en>
-%<*ja>
-\paragraph{IVSサポート}
-最近のOpenTypeフォントやTrueTypeフォントには,
-\texttt{U+E0100}--\texttt{U+E01EF}の範囲の「文字」
-(漢字用異体字セレクタ)を後置することによって
-字形を指定する仕組み(IVS)が含まれている.
-執筆時点の2013年12月では,\Pkg{luaotfload}や\Pkg{fontspec}パッケージ類は
-IVSに対応してはいないようであったため,
-\Pkg{luatexja-otf}パッケージ内に試験的なIVS対応を実装した.これは以下の命令の実行で有効になる:
-\begin{lstlisting}
-\directlua{luatexja.otf.enable_ivs()}
-\end{lstlisting}
-しかし,現在の\Pkg{luaotfload}や\Pkg{fontspec}パッケージは
-IVSに対応しているようであるので,もはや上の命令を実行する必要はない.
-%</ja>
-
\subsection{\Pkg{luatexja-adjust}}
\label{ssec-adj}
\begin{figure}[t]
\texttt{<z>}\ の他に\ \texttt{<d>}(dtou方向),\texttt{<u>}(utod方向)を追加した.
\texttt{<z>} と \texttt{<u>} の違いは,\texttt{<z>} が(\Pkg{plext} パッケージと同様に)
周囲の組方向が縦組のときにしか意味を持たない
- のに対し,\texttt{<u>} にはそのような制限がないことである.
-
- \item \Pkg{plext} パッケージでは,表組(\texttt{tabular} 環境,\texttt{align} 環境等)や
-\texttt{minipage} 環境,\cs{parbox} 命令において,
-垂直位置指定 \texttt{[t]},~\texttt{[b]} の挙動が非読み込み時と微妙に変わることがあった.
-
-\Pkg{lltjext} パッケージでは,垂直位置指定が\LaTeXe と同様の挙動(以下に示す)に
-なるように修正した.
-\begin{itemize}
- \item \texttt{[t]} オプション指定時は,ボックスのベースラインが中身の1行目のベースライン
- (1行目の上に罫線などが来た時は,ボックスの上端)に一致するように配置する.
- \item \texttt{[b]} オプション指定時は,ボックスのベースラインが中身の最終行のベースライン
- (中身の最後が罫線などの時は,ボックスの下端)に一致するように配置する.
- \item それ以外のときは,ボックスの中央が「数式の軸」に一致するように配置する.
-\end{itemize}
-
+ \footnote{%
+ 周囲の組方向が縦組以外のときは,\texttt{<z>} を指定しても中身の組方向は周囲の組方向と変わらない.
+ }%
+のに対し,\texttt{<u>} にはそのような制限がないことである.
\item 連数字用命令 \cs{rensuji} における位置合わせオプション \texttt{[l]}, \texttt{[c]},
\texttt{[r]} の挙動を若干変更した.
-
\end{itemize}
}
+
%</ja>
%<*en>
\subsection{\texttt{lltjext.sty}}
その際,中身は<pos>の値に従い,左寄せ(\texttt{l}),右揃え(\texttt{r}),
中央揃え(それ以外)される.
\item[picture環境]
-図表作成に用いる \texttt{picture} 環境も,
+図表作成に用いる\texttt{picture}環境も,
\begin{lstlisting}
\begin{picture}<dir>(x_size, y_size)(x_offset,y_offset)
...
\item[u] \emph{utod} direction
\end{description}
\item[\cs{parbox}\<<dir>\>{[<pos>]}\{<width>\}\{<contents>\}]
-\cs{parbox} command is also extended by \texttt{\<dir\>}.
+\cs{parbox} command is also extended by \texttt{\<<dir>\>}.
\item[\cs{pbox}\<<dir>\>{[<width>][<pos>]}\{<contents>\}]
This commands typeset <contents> in LR-mode, in <dir> direction.
If <width> is positive, the width of the box becomes this <width>.
-In this case, <contents> will be aligned \dots
-
+In this case, <contents> will be aligned to left (when <pos> is \texttt{l}),
+center (\texttt{c}), or~right (\texttt{r}).
+
\item[picture\textrm{\ environment}]
+\texttt{picture} environment also extended by \texttt{\<<dir>\>}, as follows:
+\begin{lstlisting}
+\begin{picture}<dir>(x_size, y_size)(x_offset,y_offset)
+ ...
+\end{picture}
+\end{lstlisting}
\item[\cs{rensuji}{[<pos>]}\{<contents>\}\textrm{, }\cs{rensujiskip}]
\end{cslist}
%</en>
+%<*ja>
+\paragraph{表組他の揃え位置}
+表組(\texttt{array}, \texttt{tabular}環境),\cs{parbox}命令,\cs{minipage}環境の
+揃え位置については\autoref{tab:lltjext_dir}を参照.\pLaTeX~2017-07-29と
+できるだけ同じ挙動になるようにしている.\autoref{tab:lltjext_dir}中のA--Dの意味は次の通り.
+\begin{table}
+ \caption{\Pkg{lltjext}パッケージにおける表組・\cs{parbox}命令他の揃え位置}
+ \label{tab:lltjext_dir}
+ {\centering
+ \begin{tabular}{lcccc}
+ \toprule
+ ↓中身\周囲→&\cs{yoko}&\cs{tate}&\cs{utod}&\cs{dtou}\\
+ \midrule
+ \cs{yoko}&A&B&B&B\\
+ \cs{tate}&B&A&D&C\\
+ \cs{utod}&B&D&A&C\\
+ \cs{dtou}&B&C&C&A\\
+ \bottomrule
+ \end{tabular}\par}
+\end{table}
+
+\begin{description}
+ \item[A] 周囲の組方向と中身の組方向が同じ場合.
+ \begin{itemize}
+ \item \texttt{[t]}指定のとき:
+ 中身の先頭行のベースラインが周囲のベースラインと一致する.
+ 表組で先頭行の上に罫線があった場合は,それがベースラインの位置
+ \footnote{\LuaTeX-jaでは和文側のベースラインの位置も上下移動できることに注意.
+ そのため「和文ベースライン」の位置に来るとは限らない.}となる.
+ \item \texttt{[c]}指定のとき:
+ 中身の上下の中心が周囲の数式の軸を通る.
+ \item \texttt{[b]}指定のとき:
+ 中身の最終行のベースラインが周囲のベースラインと一致する.
+ 表組で最終行の下に罫線があった場合は,それがベースラインの位置となる.
+ \end{itemize}
+ \item[B] 周囲の組方向と中身の組方向が90度ずれている場合.
+ \begin{itemize}
+ \item \texttt{[t]}指定のとき:
+ 表組においては,上端が周囲のベースラインと一致する.
+ \cs{parbox}や\cs{minipage}環境においては,上端が周囲の和文文字の上端と一致する.
+ \item \texttt{[c]}指定のとき:
+ 中身の上下の中心が周囲の数式の軸を通る.
+ \item \texttt{[b]}指定のとき:
+ 表組においては,下端が周囲のベースラインと一致する.
+ \cs{parbox}や\cs{minipage}環境においては,下端が周囲の和文文字の下端と一致する.
+ \end{itemize}
+ \item[C] 周囲の組方向と中身の組方向が180度ずれている場合.
+ \cs{parbox}や\cs{minipage}環境においては,上のBの場合と同じ挙動である.表組においては,
+ Aで\texttt{[t]}と\texttt{[b]}を入れ替えた
+ \begin{itemize}
+ \item \texttt{[t]}指定のとき:
+ 中身の最終行のベースラインが周囲のベースラインと一致する.
+ 最終行の下に罫線があった場合は,それがベースラインの位置となる.
+ \item \texttt{[c]}指定のとき:
+ 中身の上下の中心が周囲の数式の軸を通る.
+ \item \texttt{[b]}指定のとき:
+ 中身の先頭行のベースラインが周囲のベースラインと一致する.
+ 表組で先頭行の上に罫線があった場合は,それがベースラインの位置となる.
+ \end{itemize}
+ \item[D] 通常の縦組(\cs{tate})と「縦数式ディレクション」に相当する\cs{utod}方向が絡んだ場合.
+ \cs{parbox}や\cs{minipage}環境においては,上のBの場合と同じ挙動である.表組においては,
+ \begin{itemize}
+ \item \texttt{[t]}指定のとき:
+ 中身の先頭行の欧文ベースラインが周囲の欧文ベースラインと一致する.
+ \item \texttt{[c]}指定のとき:
+ 中身の上下の中心が周囲の数式の軸を通る.
+ \item \texttt{[b]}指定のとき:
+ 中身の最終行の欧文ベースラインが周囲の欧文ベースラインと一致する.
+ \end{itemize}
+\end{description}
+%</ja>
+\clearpage
%<en>\part{Implementations}
%<ja>\part{実装}
\label{part-imp}
%</en>
%<*ja>
「段落の開始」を意味するノード.
-list環境,itemize環境などにおいて,\cs{item} で始まる各項目は……
+\texttt{list}環境,\texttt{itemize}環境などにおいて,\cs{item} で始まる各項目は……
%</ja>
\item[\textit{direction}]
\def\OA{$\text{\sf O}_{\text{\sf A}}$}
\def\OB{$\text{\sf O}_{\text{\sf B}}$}
+\def\NA{$\text{\sf N}_{\text{\sf A}}$}
+\def\NB{$\text{\sf N}_{\text{\sf B}}$}
\begin{defn}
%<*en>
A \emph{cluster} is consecutive nodes in one of the following forms,
\item[欧文] リスト中に直接/hboxの中身として出現している「\textbf{JAchar}以外の文字」.次の3つの場合が該当:
\begin{itemize}
\item \textit{id}が\textit{id\_glyph}である.
-\item \textit{id}が\textit{id\_math}である.
+\item \textit{id}ã\81\8c\textit{id\_math}ã\81§ã\81\82ã\82\8bï¼\88ã\81¤ã\81¾ã\82\8aã\81\93ã\81®ã\82¯ã\83©ã\82¹ã\82¿ã\81¯1ã\81¤ã\81®æ\96\87ä¸æ\95°å¼\8fã\82\92ã\81ªã\81\99ï¼\89ï¼\8e
\item \textit{id}が\textit{id\_pbox}か\textit{id\_hlist}か\textit{id\_disc}であって,$\mathit{Np}.\mathit{head}$が\textbf{ALchar}.
\end{itemize}
\item[箱] box,またはそれに類似するもの.次の2つが該当:
\sf 和文A&
\gkf{E}{M→K}{PN}&
\gkf{---}{\OA →K}{PN}&
-\gkf{---}{\OA →X}{PN}&
+\gkf{---}{\NA →X}{PN}&
\gkf{---}{\OA}{PA}&
\gkf{---}{\OA}{PN}&
\gkf{---}{\OA}{PS}\\
\gkf{---}{K}{PS}&
\gkf{---}{X}{PS}\\
\sf 欧文&
-\gkf{E}{\OB →X}{PA}&
+\gkf{E}{\NB →X}{PA}&
\gkf{---}{X}{PS}\cr
\sf 箱&\gkf{E}{\OB}{PA}\\
\sf glue&\gkf{E}{\OB}{PN}\\
\paragraph{和文Aと欧文の間}
\textit{Nq}が\textsf{和文A}で,\textit{Np}が\textsf{欧文}の場合,JFMグルー挿入処理は次のようにして行われる.
\begin{itemize}
-\item 「右空白」については,まず以下に述べる\textsf{Boundary-B~[\OB]}により空白を決定しようと試みる.
+\item 「右空白」については,まず以下に述べる\textsf{欧文境界B~[\NB]}により空白を決定しようと試みる.
それが失敗した場合は,\textsf{\Param{xkanjiskip}~[X]}によって定める.
%\item 「左空白」については,既に述べた\textsf{line-end~[E]}をそのまま採用する.それに伴う「右空白」の補正も%同じ.
\item 禁則用ペナルティも,以前述べた\textsf{P-normal~[PN]}と同じである.
\end{itemize}
\begin{description}
-\item[Boundary-B~{[\OB]}] \textbf{JAchar}と「\textbf{JAchar}でないもの」との間に入る空白を以下によって求め,
-未定義でなければそれを「右空白」として採用する.
-\textsf{JFM-origin~[M]}の変種と考えて良い.
-これによって定まる空白の典型例は,和文の閉じ括弧と欧文文字の間に入る半角アキである.
+\item[欧文境界B~{[\NB]}] 以下で求めた量を「右空白」として採用する.
+この処理は\textsf{JFM-origin~[M]}の変種と考えて良く,
+典型例は「和文の閉じ括弧と欧文文字の間に入る半角アキ」である.
\begin{enumerate}
\item もし両クラスタの間で \cs{inhibitglue} が実行されていた場合%
-(証としてwhatsitノードが自動挿入される),「右空白」は未定義.
+(証としてwhatsitノードが自動挿入される),未定義.
\item そうでなければ,
-\textit{Nq}と「文字コードが {\tt'jcharbdd'} の文字」との間に入るグルー/カーンとして定まる.
+\textit{Nq}と「文字コードが$x$の文字」との間に入るグルー/カーンとする.
+この$x$は次の場合分けによる:
+ \begin{itemize}
+ \item $\mathit{Np}.\mathit{id}$が\textit{id\_math}のとき(つまりクラスタ\textit{Np}が文中数式を表す)
+ ときは,$x=-1$.
+ \item \textit{Np}の中身の中身の文字コードについて,「直前への\Param{xkanjiskip}の挿入」が禁止されている
+(つまり,\Param{jaxspmode}~(or \Param{alxspmode})パラメタが偶数)ときは,
+ $x=\text{\texttt{'nox\_alchar'}}$.
+ \item 以上のいずれでもないときは,$x=\text{\texttt{'alchar'}}$.
+ \end{itemize}
\end{enumerate}
\item[\Param{xkanjiskip}~{[X]}]
この段階では,\textsf{\Param{kanjiskip}~[K]}のときと同じように,
\paragraph{欧文と和文Aの間}
\textit{Nq}が\textsf{欧文}で,\textit{Np}が\textsf{和文A}の場合,JFMグルー挿入処理は上の場合とほぼ同じである.
-\textsf{和文A}のクラスタが逆になるので,\textsf{Boundary-A~[\OA]}の部分が変わるだけ.
+\textsf{和文A}のクラスタが逆になるので,\textsf{欧文境界B~[\NB]}の部分が変わるだけである.
\begin{itemize}
-\item 「右空白」については,まず以下に述べる\textsf{Boundary-A~[\OA]}により空白を決定しようと試みる.
+\item 「右空白」については,まず以下に述べる\textsf{欧文境界A~[\OA]}により空白を決定しようと試みる.
それが失敗した場合は,\textsf{\Param{xkanjiskip}~[X]}によって定める.
%\item \textit{Nq}が和文でないので,「左空白」は算出されない.
\item 禁則用ペナルティは,以前述べた\textsf{P-normal~[PN]}と同じである.
\end{itemize}
\begin{description}
-\item[Boundary-A~{[\OA]}] 「\textbf{JAchar}でないもの」と\textbf{JAchar}との間に入る空白を以下によって求め,
-未定義でなければそれを「右空白」として採用する.
-\textsf{JFM-origin~[M]}の変種と考えて良い.
-これによって定まる空白の典型例は,欧文文字と和文の開き括弧との間に入る半角アキである.
+\item[欧文境界A~{[\NA]}] これは\textsf{欧文境界B~[\NB]}で\textit{Np}と\textit{Nq}の役割が
+ 交換されたものと思えば良い.
+ この処理で定まる空白の典型例は,欧文文字と和文の開き括弧との間に入る半角アキである.
\begin{enumerate}
-\item もし両クラスタの間で \cs{inhibitglue} が実行されていた場合(証としてwhatsitノードが自動挿入される),次へ.
+\item もし両クラスタの間で \cs{inhibitglue} が実行されていた場合(証としてwhatsitノードが自動挿入される),
+ 未定義.
\item そうでなければ,
-「文字コードが {\tt'jcharbdd'} の文字」と\textit{Np}との間に入るグルー/カーンとして定まる.
+「文字コードが$x$の文字」と\textit{Np}との間に入るグルー/カーンと定める.
+$x$は\textit{Nq}から\textsf{欧文境界B~[\NB]}におけるそれと同じ方法で定めるが,
+\texttt{'nox\_alchar'}か\texttt{'alchar'}は
+\begin{quote}
+ \textit{Nq}の中身の文字コードについて,「直後への\Param{xkanjiskip}の挿入」が禁止されている
+(つまり,\Param{jaxspmode}~(or \Param{alxspmode})パラメタが2以上).
+\end{quote}
+ か否かで判断する.
\end{enumerate}
\end{description}
\textit{Nq}が\textsf{和文A}で,\textit{Np}が\textsf{箱}・グルー・カーンのいずれかであった場合,
両者の間に挿入されるJFMグルーについては同じ処理である.しかし,そこでの行分割に対する仕様が異なるので,
ペナルティの挿入処理は若干異なったものとなっている.
-
\begin{itemize}
-\item 「右空白」については,既に述べた\textsf{Boundary-B~[\OB]}により空白を決定しようと試みる.
+\item 「右空白」については,以下に述べる\textsf{Boundary-B~[\OB]}により空白を決定しようと試みる.
それが失敗した場合は,「右空白」は挿入されない.
%\item 「左空白」については,既に述べた\textsf{line-end~[E]}の算出方法をそのまま採用する.それに伴う「右空白」の補正も同じ.
\item 禁則用ペナルティの処理は,後ろのクラスタ\textit{Np}の種類によって異なる.
\end{itemize}
\begin{description}
+\item[Boundary-B~{[\OB]}] この処理は\textsf{欧文境界B~[\NB]}と同様であり,
+ $x$が次によって決まることのみが異なる:
+ \begin{itemize}
+ \item \textit{Np}がグルーやカーンのときは,$x=\text{\texttt{'glue'}}$.
+ \item そうでない(\textit{Np}が\textsf{箱})ときは,$x=\text{\texttt{'jcharbdd'}}$.
+ \end{itemize}
\item[P-allow~{[PA]}]
\textit{Nq}と\textit{Np}の間の(a)部分にペナルティがあれば,\textsf{P-normal~[PN]}と同様に,
それらの各ノードにおいてペナルティ値を$a$だけ増加させる.
すぐ上の(\textit{Nq}と\textit{Np}の順序が逆になっている)場合と同じである.
%が,「左空白」がなくなることにのみ注意.
\begin{itemize}
-\item 「右空白」については,既に述べた\textsf{Boundary-A~[\OA]}により空白を決定しようと試みる.
+\item 「右空白」については,以下に述べる\textsf{Boundary-A~[\OA]}により空白を決定しようと試みる.
それが失敗した場合は,「右空白」は挿入されない.
%\item \textit{Nq}が和文でないので,「左空白」は算出されない.
\item 禁則用ペナルティの処理は,\textit{Nq}の種類によって異なる.
\end{description}
\end{itemize}
+\begin{description}
+\item[Boundary-A~{[\OA]}] この処理は\textsf{欧文境界A~[\NA]}と同様であり,
+ $x$が次によって決まることのみが異なる:
+ \begin{itemize}
+ \item \textit{Nq}がグルーやカーンのときは,$x=\text{\texttt{'glue'}}$.
+ \item そうでない(\textit{Nq}が\textsf{箱})ときは,$x=\text{\texttt{'jcharbdd'}}$.
+ \end{itemize}
+\end{description}
+
\paragraph{和文Aと和文Bの違い}
先に述べたように,\textsf{和文B}はhboxの中身の先頭(or 末尾)として出現している
\textbf{JAchar}である.リスト内に直接ノードとして現れている\textbf{JAchar}(\textsf{和文A})との違いは,
\begin{itemize}
\item \textsf{和文B}に対しては,JFMの文字クラス指定から定まる空白
-\textsf{JFM-origin~[M]},\textsf{Boundary-A~[\OA]},\textsf{Boundary-B~[\OB]})の挿入は行われない.
+(\textsf{JFM由来[M]},\textsf{Boundary-A~[\OA]}など)の挿入は行われない.
%「左空白」の算出も行われない.
例えば,
\begin{itemize}
あ.A
\end{LTXexample}
\begin{itemize}
-\item 1行目の\cs{inhibitglue}は\textsf{Boundary-B~[\OB]}の処理のみを抑止するので,ピリオドと「A」の間には
+\item 1行目の\cs{inhibitglue}は\textsf{欧文境界B~[\NB]}の処理のみを抑止するので,ピリオドと「A」の間には
\Param{xkanjiskip}(四分アキ)が入ることに注意.
\item 2行目のピリオドと「A」の間においては,前者が\textsf{和文B}となる(hboxの中身の末尾として登場しているから)ので,
-そもそも\textsf{Boundary-B~[\OB]}の処理は行われない.よって,\Param{xkanjiskip}が入ることとなる.
+そもそも\textsf{欧文境界B~[\NB]}の処理は行われない.よって,\Param{xkanjiskip}が入ることとなる.
\item 3行目では,ピリオドの属するクラスタは\textsf{和文A}である.これによって,
-ピリオドと「A」の間には\textsf{Boundary-B~[\OB]}由来の半角アキが入ることになる.
+ピリオドと「A」の間には\textsf{欧文境界B~[\NB]}由来の半角アキが入ることになる.
\end{itemize}
%</ja>