%</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*\\
\toprule
\bf family&\bf series&\texttt{sourcehan}&\texttt{sourcehan-jp}\\
\midrule
+ &light&\AD{Serif}{Light}\\
+%<en>\textit{mincho}%
+%<ja>\textgt{明朝}%
&medium&\AD{Serif}{Regular}\\
-%<en>\smash{\raisebox{1.5ex}{\textit{mincho}}}%
-%<ja>\smash{\raisebox{1.5ex}{\gt 明朝}}%
&bold&\AD{Serif}{Bold}\\
\midrule
&&\AD{Sans}{Regular*}\\
\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}\\
-%<en>\smash{\raisebox{1.5ex}{\textit{mincho}}}%
-%<ja>\smash{\raisebox{1.5ex}{\gt 明朝}}%
&bold&\AD{Serif}{Bold}\\
\midrule
&&\AD{Sans}{Regular*}\\
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 と同じ挙動となった.
\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
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>
この文字の後ろに入るグルー等の処理については未定義である
\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>
\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>