OSDN Git Service

manual: vertical alignment
[luatex-ja/luatexja.git] / doc / luatexja.dtx
index 7db7268..c77b78c 100644 (file)
@@ -21,7 +21,7 @@
 \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}}{%
@@ -39,7 +39,6 @@
 
 %%%%%%%% 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,
@@ -460,7 +459,7 @@ on the content of the register \emph{only}. This is major difference with \pTeX.
 %</en>
 %<*ja>
 \paragraph{組方向}
-20150420.0版からは,不安定ながらも\LuaTeX-ja における縦組みをサポートしている.
+バージョン20150420.0からは,不安定ながらも\LuaTeX-ja における縦組みをサポートしている.
 なお,\LuaTeX 本体も$\Omega$流の組方向をサポートしているが,それとは全くの別物であること
 に注意してほしい.
 特に,異なった組方向のボックスを扱う場合には
@@ -503,7 +502,7 @@ without the \cs{fontspec} (and~\Pkg{luatexja-fontspec}) package.
       詳しい説明は\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より前では,ソース中に直接記述しても
@@ -645,7 +644,7 @@ and \emph{Japanese fonts} for fonts used in \textbf{JAchar}.
 \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>
@@ -2576,7 +2575,7 @@ the same codepoint as \S\ (\text{U+00A7}).
 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
@@ -2597,7 +2596,7 @@ setting, you can use \cs{ltjalchar} and \cs{ltjjachar} respectively, as the foll
 即ち,以前のバージョンのように,「前節の文字範囲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}で出力したい場合には,
@@ -2891,7 +2890,7 @@ becuse a \emph{JAchar} is encapsulated by a horizontal box if needed.
  まだ違いが見られる.
 \end{itemize}
 
-なお,20170401.0版以降の\LuaTeX-jaでは,\cs{vcenter} によるボックスには
+なお,バージョン20170401.0以降の\LuaTeX-jaでは,\cs{vcenter} によるボックスには
 全体が\Param{yalbaselineshift}, \Param{talbaselineshift} パラメータが反映されるようにしている.
 その方が結果が自然であることによる変更なのだが,結果的に\cs{vcenter} については\pTeX と同じ挙動となった.
 
@@ -3947,7 +3946,7 @@ Specify the name of (horizontal) JFM.
 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が読み込まれていなければ,
@@ -3955,7 +3954,7 @@ The following JFMs are shipped with \LuaTeX-ja:
 %</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>
@@ -4058,7 +4057,7 @@ JFMもサイズも同じなので,普通に「)【」と入力した時と
 \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.
 
@@ -4069,7 +4068,7 @@ because of the compatibility with previous versions of \LuaTeX-ja.
 %<*ja>
 いくつかのフォントはグリフ間のスペースについての情報を持っている.
 このカーニング情報は以前の\LuaTeX-ja とはあまり相性が良くなかったが,
-本バージョンではカーニングによる空白はイタリック補正と同様に扱うことになっている.
+バージョン20140324.0以降ではカーニングによる空白はイタリック補正と同様に扱うことになっている.
 つまり,カーニング由来の空白とJFM由来のグルー・カーンは同時に入りうる.
 \autoref{fig:kern-jfm}を参照.
 \begin{itemize}
@@ -4130,7 +4129,7 @@ JFM中における \texttt{kanjiskip\_natural}, \texttt{kanjiskip\_stretch},\
 \texttt{kanjiskip\_shrink}キー(\pageref{pg:ksp_nat}ページ)の使用によって,
 「JFM由来のグルーの他に,\Param{kanjiskip}の自然長/伸び量/縮み量の一部が
 同じ場所に挿入される」という状況が起こりうる.
-この機能を無効化し,20150922.0版以前と同じような組版を得るためには
+この機能を無効化し,バージョン20150922.0以前と同じような組版を得るためには
 他のOpenType機能と同じように\ \texttt{-ltjksp}\ 指定を行えば良い.
 \begin{LTXexample}[width=16\zw]
 \leavevmode
@@ -4156,7 +4155,8 @@ JFM中における \texttt{kanjiskip\_natural}, \texttt{kanjiskip\_stretch},\
 %<ja>\subsection{\cs{tfont} 命令}
 
 
-{\catcode`\<=12\catcode`\>=12
+\begin{comment}
+  {\catcode`\<=12\catcode`\>=12
 \begin{table}[t]
 %<en>\caption{Differences between vertical JFMs shipped with \LuaTeX-ja}
 %<ja>\caption{\LuaTeX-ja に同梱されている縦組用 JFM の違い}
@@ -4199,9 +4199,31 @@ JFM中における \texttt{kanjiskip\_natural}, \texttt{kanjiskip\_stretch},\
 \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} はフォントを縦組用の和文フォントとして読み込む命令であり,
@@ -4219,7 +4241,7 @@ JFM中における \texttt{kanjiskip\_natural}, \texttt{kanjiskip\_stretch},\
 \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+ を
@@ -4360,15 +4382,15 @@ floating-point numbers in design-size unit.
 
 \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>]
@@ -4799,8 +4821,8 @@ we specify <ratio> to $0.25/(0.5+0.25)=1/3$.
              \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}
@@ -4843,7 +4865,7 @@ In case of glue, one can specify following additional keys in each \texttt{[$j$]
 \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,
@@ -5032,8 +5054,31 @@ The following is the list of imaginary characters:
 %<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.
@@ -5298,7 +5343,7 @@ $i$,~$j\in \omega$に対して,\texttt{char\_type[$i$][$j$]} は
   \item 間に入るものがカーンであれば,この値は\
 \texttt{[$j$]=\{[1]=<kern\_node>, ratio=<ratio>\}} であり,
 <kern\_node>はカーンを表すノードそのものである\footnote{%
-本バージョンではノードのアクセス手法にdirect access
+バージョン20150420.0以降ではノードのアクセス手法にdirect access
       modelを用いている.そのため,例えば\LuaTeX\ beta-0.78.2では,単なる自然数のようにし
       か見えないことに注意.
 }.
@@ -5306,7 +5351,7 @@ $i$,~$j\in \omega$に対して,\texttt{char\_type[$i$][$j$]} は
   \begin{description}
     \item[\texttt{width}, \texttt{stretch}, \texttt{shrink}]
     グルーのそれぞれ自然長,伸び量,縮み量をsp単位で表したもの.
-    \item[\texttt{priority}] (バージョン2以降の)JFMでの指定 \texttt{\{<stretch>,<shrink>\}} を
+    \item[\texttt{priority}] バ(ージョン2以降の)JFMでの指定 \texttt{\{<stretch>,<shrink>\}} を
     \[
       (\text{<stretch>}+4)\cdot 8+\text{<shrink>}+4
     \]
@@ -5527,13 +5572,13 @@ Penalty value for suppressing orphans. This penalty is inserted just
 
 %<*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>
 
@@ -6199,7 +6244,7 @@ As an example, the example above can be improved as follows:
   この文字の後ろに入るグルー等の処理については未定義である
   \footnote{%
     この命令と同等の内容は,\cs{dirrctlua}の形で\Pkg{ltjsclasses}内で以前から使われていた.
-    一般ユーザでも利用しやすくするため,20170505.0版では新たに命令として定義した.
+    一般ユーザでも利用しやすくするため,バージョン20170505.0で新たに命令として定義した.
   }.
   \item \cs{ltjfakeboxbdd}は,実行された箇所が「ボックスの先頭と末尾」であると\LuaTeX-jaの
   和文処理グルー挿入処理に認識させる.
@@ -6493,7 +6538,7 @@ character whose character class is zero,  instead of `あ'.
 「漢」の寸法を元に(本節の最初に述べた,小文字で始まる)\cs{cht}, \cs{cwd}
 といった長さ変数を設定する.
 
-なお,\LaTeX が2015/10/01 版以降の場合は,「あ」「漢」の代わりに
+なお,\LaTeX が2015/10/01版以降の場合は,「あ」「漢」の代わりに
 「文字クラス0の和文文字」を用いる.
 %</ja>
 
@@ -7421,27 +7466,15 @@ among the line-head form, the line-middle form, and the line-end form.
 \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}}
@@ -7479,7 +7512,7 @@ counterpart of the \Pkg{plext} package.
 その際,中身は<pos>の値に従い,左寄せ(\texttt{l}),右揃え(\texttt{r}),
 中央揃え(それ以外)される.
 \item[picture環境]
-図表作成に用いる \texttt{picture} 環境も,
+図表作成に用いる\texttt{picture}環境も,
 \begin{lstlisting}
 \begin{picture}<dir>(x_size, y_size)(x_offset,y_offset)
   ...
@@ -7522,14 +7555,21 @@ the direction inside the environment is same as that outside the enviromnent.
  \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}]
 
@@ -7542,8 +7582,80 @@ In this case, <contents> will be aligned \dots
 \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}
@@ -7859,7 +7971,7 @@ for its label before the actual contents. So \dots
 %</en>
 %<*ja>
 「段落の開始」を意味するノード.
-list環境,itemize環境などにおいて,\cs{item} で始まる各項目は……
+\texttt{list}環境,\texttt{itemize}環境などにおいて,\cs{item} で始まる各項目は……
 %</ja>
 
 \item[\textit{direction}]
@@ -8547,6 +8659,8 @@ u
 
 \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,
@@ -8741,7 +8855,7 @@ JFMグルーの挿入が行われない(\Param{xkanjiskip},~\Param{kanjiskip}
 \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つが該当:
@@ -8963,7 +9077,7 @@ $a$は禁則処理用に\textit{Nq}と\textit{Np}の間に加えられるべき
 \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}\\
@@ -8972,7 +9086,7 @@ $a$は禁則処理用に\textit{Nq}と\textit{Np}の間に加えられるべき
 \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}\\
@@ -9023,21 +9137,29 @@ If this attempt fails, \LuaTeX-ja use the method ``\textsf{\Param{kanjiskip}~[K]
 \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]}のときと同じように,
@@ -9061,22 +9183,29 @@ If this attempt fails, \LuaTeX-ja use the method ``\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}
 
@@ -9084,9 +9213,8 @@ If this attempt fails, \LuaTeX-ja use the method ``\textsf{\Param{kanjiskip}~[K]
 \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}の種類によって異なる.
@@ -9109,6 +9237,12 @@ If this attempt fails, \LuaTeX-ja use the method ``\textsf{\Param{kanjiskip}~[K]
 \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$だけ増加させる.
@@ -9137,7 +9271,7 @@ If this attempt fails, \LuaTeX-ja use the method ``\textsf{\Param{kanjiskip}~[K]
 すぐ上の(\textit{Nq}と\textit{Np}の順序が逆になっている)場合と同じである.
 %が,「左空白」がなくなることにのみ注意.
 \begin{itemize}
-\item 「右空白」については,既に述べた\textsf{Boundary-A~[\OA]}により空白を決定しようと試みる.
+\item 「右空白」については,以下に述べる\textsf{Boundary-A~[\OA]}により空白を決定しようと試みる.
 それが失敗した場合は,「右空白」は挿入されない.
 %\item \textit{Nq}が和文でないので,「左空白」は算出されない.
 \item 禁則用ペナルティの処理は,\textit{Nq}の種類によって異なる.
@@ -9152,12 +9286,21 @@ $\mathit{Nq}.\mathit{tail}$は無意味なので,
 \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}
@@ -9180,12 +9323,12 @@ $\mathit{Nq}.\mathit{tail}$は無意味なので,
 あ.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>