OSDN Git Service

Merge branch 'master' into vert_vrt2
[luatex-ja/luatexja.git] / doc / luatexja.dtx
index 7ef5c4b..313d56f 100644 (file)
@@ -459,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$流の組方向をサポートしているが,それとは全くの別物であること
 に注意してほしい.
 特に,異なった組方向のボックスを扱う場合には
@@ -502,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より前では,ソース中に直接記述しても
@@ -572,10 +572,10 @@ and \emph{Japanese fonts} for fonts used in \textbf{JAchar}.
 %</ja>
 %<*en>
 \item In this document, natural numbers start from~zero.
-  $\omega$ denotes the set of all natural numbers.
+  $\omega$ denotes the set of all natural numbers which can be used in \TeX.
 %</en>
 %<*ja>
-\item 本ドキュメントでは,自然数は0から始まる.自然数全体の集合は$\omega$と表記する.
+\item 本ドキュメントでは,自然数は0から始まる.(\TeX で扱える)自然数全体の集合は$\omega$と表記する.
 %</ja>
 \end{itemize}
 
@@ -644,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>
@@ -984,7 +984,7 @@ plfonts.dtx} and \texttt{pldefs.ltx}):
 
 \begin{itemize}
 %<*en>
-\item Font encodings for Japanese fonts is \texttt{JY3}~(for horizontal direction) and
+\item Font encodings for Japanese fonts are \texttt{JY3}~(for horizontal direction) and
 \texttt{JT3}~(for vertical direction).
 %</en>
 %<*ja>
@@ -993,20 +993,20 @@ plfonts.dtx} and \texttt{pldefs.ltx}):
 %</ja>
 
 %<*en>
-\item Traditionally, Japanese documents use two typeface categories: \emph{mincho}~(明朝体) and
+\item Traditionally, Japanese documents use only two families: \emph{mincho}~(明朝体) and
  \emph{gothic}~(\textgt{ゴシック体}). \emph{mincho} is used in the main text, while \emph{gothic}
       is used in the headings or for emphasis.
 \begin{center}\small
 \begin{tabular}{lllc}
 \toprule
-\textbf{classification}&&&\textbf{family name}\\\midrule
+\textbf{classification}&&&\textbf{commands}\\\midrule
 \emph{mincho} (明朝体)&\verb+\textmc{...}+&\verb+{\mcfamily ...}+&\cs{mcdefault}\\
 \emph{gothic} (\textgt{ゴシック体})&\verb+\textgt{...}+&\verb+{\gtfamily ...}+&\cs{gtdefault}\\
 \bottomrule
 \end{tabular}
 \end{center}
 \item
-By default, the following fonts are used for \emph{mincho} and \emph{gothic}:
+By default, the following fonts are used for these two families.
 \begin{center}\small
 \begin{tabular}{ccccc}
 \toprule
@@ -1016,7 +1016,7 @@ By default, the following fonts are used for \emph{mincho} and \emph{gothic}:
 \bottomrule
 \end{tabular}
 \end{center}
-Note that the bold series in both family are same as the medium series of \emph{gothic}
+Note that the bold series in both family are same as the medium series of gothic
      family. There is no italic nor slanted shape for
       these \texttt{mc}~and~\texttt{gt}.
 %</en>
@@ -1031,7 +1031,7 @@ Note that the bold series in both family are same as the medium series of \emph{
 \bottomrule
 \end{tabular}
 \end{center}
-\item æ¨\99æº\96ã\81§ã\81¯ï¼\8c次ã\81®ã\83\95ã\82©ã\83³ã\83\88ã\83\95ã\82¡ã\83\9fã\83ªã\81\8cç\94¨ã\81\84ã\82\89ã\82\8cã\82\8bï¼\9a
+\item 標準では,次のフォントが用いられる:
 \begin{center}\small
 \begin{tabular}{ccccc}
 \toprule
@@ -1041,8 +1041,8 @@ Note that the bold series in both family are same as the medium series of \emph{
 \bottomrule
 \end{tabular}
 \end{center}
-どちらのファミリにおいても,そのboldシリーズで使われるフォントは
-ゴシック体のmediumシリーズで使われるフォントと同じであることに注意.
+どちらのファミリにおいても,太字(\cs{bfseries})のフォントは
+ゴシック体中字(\cs{gtfamily}\cs{mdseries})で使われるフォントと同じであることに注意.
 また,どちらのファミリでもイタリック体・スラント体は定義されない.
 %</ja>
 
@@ -1057,7 +1057,7 @@ Note that the bold series in both family are same as the medium series of \emph{
        These classes and packages also redefine \cs{jttdefault} to
        \cs{gtdefault} (\emph{gothic}~family).
   } specifies the Japanese font family in \cs{verb}~or~\texttt{verbatim} environment.
-  The default value of \cs{jttdefault} is \cs{mcdefault}, so \emph{mincho} family is used.
+  The default value of \cs{jttdefault} is \cs{mcdefault}, so the mincho family is used.
 %</en>
 %<*ja>
  \item \cs{verb} や \texttt{verbatim} 環境中の和文文字に使われる和文フォントファミリは
@@ -1074,8 +1074,8 @@ Note that the bold series in both family are same as the medium series of \emph{
 %<*en>
 \item If you use the \Pkg{beamer} class with the default font theme (which uses sans serif
       fonts) and with \LuaTeX-ja, you might want to change default Japanese fonts to
-      \emph{gothic} family. The following line  changes  the default Japanese font family
-      to \emph{gothic}:
+      the gothic family. The following line  changes  the default Japanese font family
+      to it:
 %</en>
 %<*ja>
 \item \Pkg{beamer}クラスを既定のフォント設定で使う場合,既定欧文フォントがサンセリフなの
@@ -1432,22 +1432,19 @@ alphabetic fonts
 %</en>
 %<*ja>
 \begin{center}\small
-\begin{tabular}{cccc}
+\begin{tabular}{ccccc}
 \toprule
 和文
-&\cs{jfontspec}&\cs{setmainjfont}&\cs{setsansjfont}\\
-欧文
-&\cs{fontspec}&\cs{setmainfont}&\cs{setsansfont}\\
-\midrule
-和文
-&\cs{newjfontfamily}&\cs{newjfontface}&\cs{defaultjfontfeatures}\\
+&\cs{jfontspec}&\cs{setmainjfont}&\cs{setsansjfont}&\cs{setmonojfont}$^*$\\
 欧文
-&\cs{newfontfamily}&\cs{newfontface}&\cs{defaultfontfeatures}\\
+&\cs{fontspec}&\cs{setmainfont}&\cs{setsansfont}&\cs{setmonofont}\\
 \midrule
 和文
-&\cs{addjfontfeatures}\\
+&\cs{newjfontfamily}&\cs{newjfontface}
+&\cs{defaultjfontfeatures}&\cs{addjfontfeatures}\\
 欧文
-&\cs{addfontfeatures}\\
+&\cs{newfontfamily}&\cs{newfontface}
+&\cs{defaultfontfeatures}&\cs{addfontfeatures}\\
 \bottomrule
 \end{tabular}
 \end{center}
@@ -1534,1853 +1531,1332 @@ JIS~X~0208:1990→辻
 
 %<en>\subsection{Presets of Japanese fonts}
 %<ja>\subsection{和文フォントのプリセット設定}
-\label{ssec-preset}
+\label{ssec:preset-abst}
 
 %<*en>
-One can load the \Pkg{luatexja-preset}
-package to use several ``presets'' of Japanese fonts.
-This package provides functions in a part of
-\Pkg{japanese-otf} package and a part of \Pkg{PXchfon} package by Takayuki Yato.
-
-One can specified other options other than listed in this subsection.
-These are simply passed to the \Pkg{luatexja-fontspec}\footnote{if \texttt{nfssonly} option is
-\emph{not} specified; in this case these options are simply ignored.}.
-For example, the line~5 in below example is eqivalent to lines 1--3.
+With \Pkg{luatexja-preset} package, 
+one use one of ``preset'' to simplify Japanese font setting.
+For details of package options, and those of each presets, please see Subsecion~\ref{ssec:preset}.
+The following presets are defined:
 %</en>
 %<*ja>
 よく使われている和文フォント設定を一行で指定できるようにしたのが
-\Pkg{luatexja-preset}パッケージである.このパッケージは,
-\Pkg{otf}パッケージの一部機能と八登崇之氏による\Pkg{PXchfon}パッケージの一部機能とを
-合わせたような格好をしている.
-
-オプションとして,本節にないものも指定することができるが,それらは
-\Pkg{luatexja-fontspec}パッケージに渡される\footnote{\texttt{nfssonly} オプションが
-指定されていた場合は,\Pkg{luatexja-fontspec}パッケージは読み込まれないので単純に無視され
-る.}.例えば,下の1--3行目は5行目のように一行にまとめることができる.
+\Pkg{luatexja-preset}パッケージである.オプションや各プリセットの詳細については
+\ref{ssec:preset}節を参照して欲しい.
+現時点では以下のプリセットが定義されている:
 %</ja>
+\begin{quote}
+  \ttfamily
+  \hyphenchar\font=-1 \exhyphenchar=-1
+  hiragino-pro, hiragino-pron, ipa, ipa-hg, ipaex, ipaex-hg,
+  kozuka-pr6, kozuka-pr6n, kozuka-pro, moga-mobo, moga-mobo-ex,
+  morisawa-pr6n, morisawa-pro, ms, ms-hg, noembed, noto-otc, noto-otf,
+  sourcehan, sourcehan-jp, ume, yu-osx, yu-win, yu-win10
+\end{quote}
+
+%<ja> 例えば,本ドキュメントでは\Pkg{luatexja-preset}パッケージを
+%<en> For example, this document loads \Pkg{luatexja-preset} package by
 \begin{lstlisting}
-\usepackage[no-math]{fontspec}
-\usepackage[match]{luatexja-fontspec}
 \usepackage[kozuka-pr6n]{luatexja-preset}
-%%--------
-\usepackage[no-math,match,kozuka-pr6n]{luatexja-preset}
 \end{lstlisting}
+%<ja>として読み込み,小塚書体(Pr6N)を使うことを指定している.
+%<en> which means that Kozuka~Pr6N fonts will be used in this document.
 
-%<en>\paragraph{General options}
-%<ja>\paragraph{一般的なオプション}
-\begin{cslist}[before*=]
-\item[fontspec%
-%<en>\textrm{~(enabled by default)}
-%<ja>\emph{\gtfamily (既定)}
-]
+%<*ja>
+上記のプリセット以外の和文フォント設定を使いたい場合,本来は
+\Pkg{luatexja-fontspec}パッケージの提供する
+\cs{setmainjfont}, \cs{setsansjfont}を使って自分で指定するべきである.
+\texttt{custom}オプションを使うことで,\Pkg{luatexja-preset}パッケージの内部に直接アクセスして
+\begin{lstlisting}
+\usepackage[kozuka-pr6n,          % kozuka-pr6n プリセットを基礎にして,
+  custom={
+    mc=SourceHanSerif-Regular,    % 明朝体(全ウェイト)
+    mc-l=SourceHanSerif-Bold,     % 明朝体細字
+    mc-m=KozMinPr6N-Regular,      % 明朝体中字
+  % mc-bx=KozMinPr6N-Bold,        % 明朝体太字
+  % gt=HirakakuProN-W3,           % ゴシック体(全ウェイト)
+  % gt-m=SourceHanSans-Regular,   % ゴシック体中字(deluxe オプション指定時)
+  % gt-bx=HiraKakuProN-W6,ular,   % ゴシック体太字
+  % gt-eb=HiraKakuProN-W6,ular,   % ゴシック体極太
+    mg-m=HG Maru Gothic PRO,      % 丸ゴシック体
+  },
+  deluxe,expert,jis2004,match,nfssonly
+]{luatexja-preset}
+\end{lstlisting}
+のようにすることもできるが,\texttt{custom}オプションの書式は予告なく変更されることがある
+上,\texttt{90jis}や\texttt{JIS2004}オプションとの相性があまり良くないので推奨はしない.
+%</ja>
 %<*en>
-With this option, Japanese fonts are selected using functionality of
-the \Pkg{luatexja-fontspec} package. This means that the \Pkg{fontspec} package is
-            automatically loaded by this package.
+To use a Japanese font setting which does not match with any presets,
+the legitimate method is to use \cs{setmainjfont}~and~\cs{setsansjfont}
+which are provided by the \Pkg{luatexja-fontspec} package.
 
-If you need to pass some options to \Pkg{fontspec}, you can load \Pkg{fontspec} manually
-before \Pkg{luatexja-preset}:
+One can use the \texttt{custom} option, such as
+\begin{lstlisting}
+\usepackage[kozuka-pr6n,          % based on the kozuka-pr6n preset (Kozuka Pr6N),
+  custom={
+    mc=SourceHanSerif-Regular,    % mincho family (all weights)
+    mc-l=SourceHanSerif-Bold,     % mincho light
+    mc-m=KozMinPr6N-Regular,      % mincho medium
+  % mc-bx=KozMinPr6N-Bold,        % mincho bold
+  % gt=HirakakuProN-W3,           % gothic family (all weights)
+  % gt-m=SourceHanSans-Regular,   % gothic medium (with deluxe option)
+  % gt-bx=HiraKakuProN-W6,ular,   % gothic bold
+  % gt-eb=HiraKakuProN-W6,ular,   % gothic extra bold
+    mg-m=HGMaruGothicMPRO,        % rounded gothic
+  },
+  deluxe,expert,jis2004,match,nfssonly
+]{luatexja-preset}
+\end{lstlisting}
+However, we do not recommend this \cs{custom} option;
+the format might change, and this \cs{custom} option is not well-compatible with
+\texttt{90jis}~nor~\cs{jis2004} options.
+%</en>
+
+%<*en>
+\subsection{\cs{CID}, \cs{UTF}, and macros in \Pkg{japanese-otf} package}
+Under \pLaTeX, \Pkg{japanese-otf} package (developed by Shuzaburo Saito) is
+used for typesetting characters which is in Adobe-Japan1-6 CID but not
+in JIS~X~0208. Since this package is widely used, \LuaTeX-ja
+supports some of functions in the \Pkg{japanese-otf} package,
+as an external package \Pkg{luatexja-otf}.
 %</en>
 %<*ja>
-\Pkg{luatexja-fontspec}パッケージの機能を用いて和文フォントを選択する.
-これは,\Pkg{fontspec}パッケージが自動で読み込まれることを意味する.
+\subsection{\cs{CID}, \cs{UTF}と\Pkg{otf}パッケージのマクロ}
+\pLaTeX では,JIS~X~0208にないAdobe-Japan1-6の文字を出力するために,
+齋藤修三郎氏による\Pkg{otf}パッケージが用いられていた.このパッケージは
+広く用いられているため,\LuaTeX-jaにおいても\Pkg{otf}パッケージの機能の
+一部を(\Pkg{luatexja-otf}という別のパッケージとして)実装した.
+%</ja>
 
-もし\Pkg{fontspec}パッケージに何らかのオプションを渡す必要がある
-\footnote{例えば,数式フォントまで置換されてしまい,\cs{mathit}によってギリシャ文字の
-斜体大文字が出なくなる,など.}場合は,
-次のように\Pkg{luatexja-preset}の前に\Pkg{fontspec}を手動で読みこめば良い:
+\begin{LTXexample}
+\jfontspec{KozMinPr6N-Regular.otf}
+森\UTF{9DD7}外と内田百\UTF{9592}とが\UTF{9AD9}島屋に行く。
+
+\CID{7652}飾区の\CID{13706}野家,
+\CID{1481}城市,葛西駅,
+高崎と\CID{8705}\UTF{FA11}
+
+\aj半角{はんかくカタカナ}
+\end{LTXexample}
+
+%<*ja>
+\Pkg{otf}パッケージでは,それぞれ次のようなオプションが存在した:
+\begin{cslist}
+\item[deluxe] 明朝体・ゴシック体各3ウェイトと,丸ゴシック体を扱えるようになる.
+\item[expert] 仮名が横組・縦組専用のものに切り替わり,ルビ用仮名も
+\ \cs{rubyfamily}\ によって扱えるようになる.
+\item[bold] ゴシック体を標準で太いウェイトのものに設定する.
+\end{cslist}
+しかしこれらのオプションは\Pkg{luatexja-otf}パッケージには存在しない.
+\Pkg{otf}パッケージが文書中で使用する和文用TFMを自前の物に置き換えていたのに対し,
+\Pkg{luatexja-otf}パッケージでは,そのようなことは行わないからである.
+
+これら3オプションについては,
+\Pkg{luatexja-preset} パッケージにプリセットを使う時に一緒に指定するか,
+あるいは対応する内容を\ref{ssec-chgfnt}節,\ref{ssec-nfsspat}節 (NFSS2) や
+\ref{ssec-fontspec}節 (\Pkg{fontspec}) の方法で手動で指定する必要がある.
 %</ja>
-\begin{lstlisting}
-\usepackage[no-math]{fontspec}
-\usepackage[...]{luatexja-preset}
-\end{lstlisting}
 
-\item[nfssonly]
+%<en>\subsection{Changing default Japanese fonts}
+%<ja>\subsection{標準和文フォントの変更}
+\label{ssec-cfg}
 %<*en>
-With this option, selecting Japanese fonts won't be performed using the functionality of
-            the \Pkg{fontspec} package, but only standard NFSS2 (hence without
-            \cs{addjfontfeatures} etc.).
-This option is ignored when \Pkg{luatexja-fontspec} package is loaded.
+If \texttt{luatexja.cfg} can be seen from \LuaTeX, \LuaTeX-ja automatically reads it.
+The main use of \texttt{luatexja.cfg} is for changing default Japanese fonts,
+when IPAex fonts cannot be installed in \TeX~system.
+One should not overuse this \texttt{luatexja.cfg}; fonts which will be used in
+a document should be specified in its source.
 
-When this option is specified, \Pkg{fontspec}~and~\Pkg{luatexja-fontspec} are
-\emph{not} loaded by default. Nevertheless,
-the package\Pkg{fontspec} can coexist with the option, as the following:
+For example,
 \begin{lstlisting}
-\usepackage{fontspec}
-\usepackage[hiragino-pron,nfssonly]{luatexja-preset}
+\def\ltj@stdmcfont{IPAMincho}
+\def\ltj@stdgtfont{IPAGothic}
+\end{lstlisting}
+makes that IPA~Mincho and IPA~Gothic will be used as default Japanese fonts, instead of
+IPAex~Mincho and IPAex~Gothic.
+
+For another example, the following two lines makes that
+non-embedded fonts Ryumin-Light~and~GothicBBB-Medium as default Japanese fonts
+(as the earlier version of \LuaTeX-ja):
+\begin{lstlisting}
+\def\ltj@stdmcfont{psft:Ryumin-Light}
+\def\ltj@stdgtfont{psft:GothicBBB-Medium}
 \end{lstlisting}
-In this case, one can use \cs{setmainfont} etc.\ to select \emph{alphabetic} fonts.
 %</en>
 %<*ja>
-\LaTeX 標準のフォント選択機構(NFSS2)を用いて
-\texttt{ltjpm}(明朝),\texttt{ltjpg}(ゴシック),それに後に述べる \texttt{deluxe} オプ
-            ションが指定された場合には \texttt{ltjpmg}(丸ゴシック)という
-3つの和文フォントファミリを定義し,これらを用いる.
+\LuaTeX から見える位置に \texttt{luatexja.cfg} があれば,\LuaTeX-jaはそれを読み込む.
+このファイルを用いるとplain~\TeX, \LaTeXe における標準和文フォントを
+IPAex明朝・IPAexゴシックから変更することができる.
+しかし,基本的には\emph{文章中で用いるフォントは(例えば \Pkg{luatexja-preset} などで)
+文書ソース内で指定するべき}であり,この \texttt{luatexja.cfg} は,
+「IPAexフォントがインストールできない」など,IPAexフォントが使用できない場合にのみ
+応急処置的に用いるべきである.
 
-本オプション指定時には\Pkg{fontspec}・\Pkg{luatexja-fontspec}パッケージは
-自動では読み込まれない,しかし,
+例えば
 \begin{lstlisting}
-\usepackage{fontspec}
-\usepackage[hiragino-pron,nfssonly]{luatexja-preset}
+\def\ltj@stdmcfont{IPAMincho}
+\def\ltj@stdgtfont{IPAGothic}
 \end{lstlisting}
-のようにすれば,このオプションを指定すれば
-欧文フォントを\Pkg{fontspec}パッケージの機能を使って指定することができる.
-一方,
-パッケージ読み込み時に既に\Pkg{luatexja-fontspec}パッケージが読み込まれて
-            いる場合は \texttt{nfssonly} オプションは無視される.
-%</ja>
+と記述しておけば,標準和文フォントがIPA明朝・IPAゴシックへと変
+更される.
 
-\item[match]
-%<*en>
-If this option is specified, usual family-changing commands such as
-\cs{rmfamily},~\cs{textrm}, \cs{sffamily},~\dots\ also change Japanese font family.
-This option is passed to \Pkg{luatexja-fontspec}, if \texttt{fontspec}
-option is specifed.
-%</en>
 
-%<*ja>
-このオプションが指定されると,「\pLaTeXe 新ドキュメントクラス」のように\
-\cs{rmfamily}, \verb+\textrm{...}+, \cs{sffamily} 等が
-欧文フォントだけでなく和文フォントも変更するようになる.
-\ \texttt{fontspec}\
-オプションが有効になっている場合は,このオプションは \Pkg{luatexja-fontspec} パッケージへと渡される.
+なお,20140906.0以前のバージョンのように,
+Ryumin-Light, GothicBBB-Mediumという名前の非埋込フォントを用いる場合は
+\begin{lstlisting}
+\def\ltj@stdmcfont{psft:Ryumin-Light}
+\def\ltj@stdgtfont{psft:GothicBBB-Medium}
+\end{lstlisting}
+と記述すればよい.
 %</ja>
 
 
-\item[nodeluxe%
-%<en>\textrm{~(enabled by default)}
-%<ja>\emph{\gtfamily (既定)}
-]
+%<en>\section{Changing Internal Parameters}
+%<ja>\section{パラメータの変更}
+
 %<*en>
-The nagation of \texttt{deluxe} option.
-Use one-weighted \textit{mincho} and \textit{gothic} font families.
-This means that \verb+\mcfamily\bfseries+, \verb+\gtfamily\bfseries+ and
-\verb+\gtfamily\mdseries+ use the same font.
+There are many internal parameters in \LuaTeX-ja. And due to the behavior of \LuaTeX,
+most of them are not stored as internal register of \TeX, but as an
+original storage system in \LuaTeX-ja. Hence, to assign or acquire those
+parameters, you have to use commands \cs{ltjsetparameter} and
+\cs{ltjgetparameter}.
 %</en>
 %<*ja>
-\texttt{deluxe}オプションの否定.
-\LaTeXe 環境下の標準設定のように,明朝体・ゴシック体を各1ウェイトで使用する.
-より具体的に言うと,この設定の下では
-\ \verb+\mcfamily\bfseries+, \verb+\gtfamily\bfseries+,
-\verb+\gtfamily\mdseries+はみな同じフォントとなる.
+\LuaTeX-jaには多くのパラメータが存在する.そして\LuaTeX の仕様のために,
+その多くは\TeX のレジスタにではなく,\LuaTeX-ja独自の方法で保持されている.
+これらのパラメータを設定・取得するためには \cs{ltjsetparameter} と \cs{ltjgetparameter} を
+用いる.
 %</ja>
-\item[deluxe]
+
+%<en>\subsection{Range of \textbf{JAchar}s}
+%<ja>\subsection{\textbf{JAchar}の範囲}
+\label{ssec-setrange}
+
 %<*en>
-Use \textit{mincho} with two weights (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}).
+\LuaTeX-ja divides the Unicode codespace \texttt{U+0080}--\texttt{U+10FFFF}
+into \emph{character ranges},
+numbered 1 to 217. The grouping can be (globally) customized by \cs{ltjdefcharrange}.
+The next line adds whole characters in Supplementary Ideographic Plane
+and the character ``漢'' to the character range~100.
 %</en>
 %<*ja>
-明朝体2ウェイト・ゴシック体3ウェイトと,
-丸ゴシック体 (\cs{mgfamily}, \verb+\textmg{...}+) を使用可能とする.
-ゴシック体は中字・太字・極太の3ウェイトがあるが,
-極太ゴシック体を使う場合,
-\begin{itemize}
- \item \cs{gtebfamily}, \verb+\textgteb{...}+
- \item \cs{ebseries} (周囲がゴシック体のとき,\texttt{nfssonly} オプション指定時のみ)
-\end{itemize}
-のいずれかを用いる.標準で \cs{ebseries} が準備されていないのは,バージョンが古い
-\Pkg{fontspec}では中字(\cs{mdseries})と太字(\cs{bfseries})しか扱えなかった名残である.
+\LuaTeX-jaは,Unicodeの \texttt{U+0080}--\texttt{U+10FFFF} の空間を
+1番から217番までの\emph{文字範囲}に分割している.
+区分けは \cs{ltjdefcharrange} を用いることで(グローバルに)変更することができ,
+例えば,次は追加漢字面(SIP)にある全ての文字と「漢」を「100番の文字範囲」に追加する.
 %</ja>
-\item[expert]
+\begin{lstlisting}
+\ltjdefcharrange{100}{"20000-"2FFFF,`漢}
+\end{lstlisting}
+
 %<*en>
-Use horizontal/vertical kana alternates, and define a command \cs{rubyfamily} to use kana
-characters designed for ruby.
+A character can belong to only one character range.
+For example, whole SIP belong to the range~4 in the default setting of \LuaTeX-ja,
+and if one executes the above line, then SIP will belong to the range~100 and be
+removed from the range~4.
 %</en>
 %<*ja>
-横組・縦組専用仮名を用いる.また,\cs{rubyfamily} でルビ用仮名が使用可能となる\footnote{%
-  \cs{rubyfamily}とはいいつつ,実際にはフォントファミリを切り替えるのではない(通常では
-  font featureの追加,\texttt{nfssonly} 指定時にはシェイプを \texttt{rb} に切り替え).
-}.
+各文字はただ一つの文字範囲に所属することができる.
+例えば,SIP内の文字は全て\LuaTeX-jaのデフォルトでは4番の文字範囲に
+属しているが,上記の指定を行えばSIP内の文字は100番に属すようになり,4番からは除かれる.
 %</ja>
-\item[bold]
+
 %<*en>
-Substitute bold series of \textit{gothic} for  bold series of \textit{mincho}.
-If \texttt{nodeluxe} option is enabled, medium series of \textit{gothic} is also changed,
-since we use same font for both series of \textit{gothic}.
+The distinction between \textbf{ALchar} and \textbf{JAchar} is performed by character ranges.
+This can be edited by setting the \textsf{jacharrange} parameter.
+For example, the code below is just the default setting of \LuaTeX-ja, and
+it sets
+\begin{itemize}
+ \item a character which belongs character ranges 1,~4, 5, and~8 is \textbf{ALchar},
+ \item a character which belongs character ranges 2,~3, 6, and~7 is \textbf{JAchar}.
+\end{itemize}
 %</en>
 %<*ja>
-「明朝の太字」をゴシック体の太字によって代替する.
-もし\texttt{nodeluxe}オプションが指定されている場合は,ゴシック体は1ウェイトしか使用されな
-          いため,
-「ゴシック体の中字」も同時に変更されることになる.
+\textbf{ALchar}と\textbf{JAchar}の区別は文字範囲ごとに行われる.
+これは\textsf{jacharrange}パラメータによって編集できる.
+例えば,以下は\LuaTeX-jaの初期設定であり,次の内容を設定している:
+\begin{itemize}
+ \item 1番,4番,5番,8番の文字範囲に属する文字は\textbf{ALchar}.
+ \item 2番,3番,6番,7番の文字範囲に属する文字は\textbf{JAchar}.
+\end{itemize}
 %</ja>
-\item[90jis]
-%<en>Use 90JIS glyph variants if possible.
-%<ja>出来る限り90JISの字形を使う.
-\item[jis2004]
-%<en>Use JIS2004 glyph variants if possible.
-%<ja>出来る限りJIS2004の字形を使う.
-\item[jfm\_yoko=<jfm>]
+\begin{lstlisting}
+\ltjsetparameter{jacharrange={-1, +2, +3, -4, -5, +6, +7, -8}}
+\end{lstlisting}
 %<*en>
-Use the JFM \texttt{jfm-<jfm>.lua} for horizontal direction, instead of \texttt{jfm-ujis.lua}~(default JFM).
+The argument to \textsf{jacharrange} parameter is a list of non-zero integer.
+Negative integer $-n$ in the list means that ``each character in the range~$n$ is an
+\textbf{ALchar}'',
+and positive integer $+n$ means that ``\dots\ is a \textbf{JAchar}''.
 %</en>
 %<*ja>
-横組用和文フォントで用いるJFMを\texttt{jfm-<jfm>.lua}にする.このオプションがない時は
-\LuaTeX\nobreakdash -ja標準の\texttt{jfm-ujis.lua}が用いられる.
+\textsf{jacharrange}パラメータの引数は非零の整数のリストである.
+リスト中の負の整数$-n$は「文字範囲$n$に属する文字は\textbf{ALchar}として
+扱う」ことを意味し,正の整数$+n$は「\textbf{JAchar}として扱う」ことを意味する.
 %</ja>
-\item[jfm\_tate=<jfm>]
+
 %<*en>
-Use the JFM \texttt{jfm-<jfm>.lua} for vertical direction, instead of \texttt{jfm-ujisv.lua}~(default JFM).
+Note that characters \texttt{U+0000}--\texttt{U+007F} are always treated as an
+\textbf{ALchar} (this cannot be customized).
 %</en>
 %<*ja>
-縦用和文フォントで用いるJFMを\texttt{jfm-<jfm>.lua}にする.このオプションがない時は
-\LuaTeX-ja標準の\texttt{jfm-ujisv.lua}が用いられる
+なお,\texttt{U+0000}--\texttt{U+007F} は常に\textbf{ALchar}として扱われる(利用者が変更す
+ることは出来ない)
 %</ja>
 
-\item[jis]
-%<en>Same as \texttt{jfm\_yoko=jis}.
-%<ja>\texttt{jfm\_yoko=jis}と同じ.ここで用いるJFM\texttt{jfm-jis.lua}はJISフォントメトリックを元にしたものである.
-
-\end{cslist}
 %<*en>
-Note that \texttt{90jis} and \texttt{jis2004} only affect with \textit{mincho},
-\textit{gothic} (and possibly \textit{rounded gothic}) defined by this package.
-We didn't taken account of  when both \texttt{90jis} and \texttt{jis2004} are specified.
+\paragraph{Default character ranges}
+\LuaTeX-ja predefines eight character ranges for convenience. They are
+determined from the following data:
 %</en>
 %<*ja>
-\texttt{90jis}と\texttt{jis2004}については本パッケージで定義された
-明朝体・ゴシック体(・丸ゴシック体)にのみ有効である.
-両オプションが同時に指定された場合の動作については全く考慮していない
+\paragraph{文字範囲の初期値}
+\LuaTeX-jaでは8つの文字範囲を予め定義しており,
+これらは以下のデータに基づいて決定している
 %</ja>
+\begin{itemize}
+%<en>\item Blocks in Unicode~6.0.
+%<ja>\item Unicode~6.0のブロック.
+%<en>\item The \texttt{Adobe-Japan1-UCS2} mapping between a CID Adobe-Japan1-6 and Unicode.
+%<ja>\item Adobe-Japan1-6のCIDとUnicodeの間の対応表\texttt{Adobe-Japan1-UCS2}.
+%<en>\item The \Pkg{PXbase} bundle for \upTeX\ by Takayuki Yato.
+%<ja>\item 八登崇之氏による\upTeX 用の\Pkg{PXbase}バンドル.
+\end{itemize}
 
-%<en>\paragraph{Presets for multi weight}
-%<ja>\paragraph{多ウェイト用プリセットの一覧}
 %<*en>
-Besides \texttt{morisawa-pro}~and~\texttt{morisawa-pr6n} presets,
-fonts are specified by font name, not by file name.
-In following tables, starred fonts (e.g.~KozGo\dots-Regular) are used for medium series of \textit{gothic},
-\emph{if and only if \texttt{deluxe} option is specified}.
+Now we describe these eight ranges. The superscript ``J'' or ``A'' after the
+number shows whether each character in the range is treated as
+\textbf{JAchar}s or not by default. These settings are similar to the
+\texttt{prefercjk} settings defined in \texttt{PXbase} bundle.
+Any characters equal to or above \texttt{U+0080} which does not belong to
+these eight ranges belongs to the character range~217.
 %</en>
 %<*ja>
-\texttt{morisawa-pro}, \texttt{morisawa-pr6n}以外はフォントの指定は
-(ファイル名でなく)フォント名で行われる.
-以下の表において,*\,つきのフォント(e,g,~KozGo\dots-Regular)は,\emph{\texttt{deluxe}オプション指定時に}
-ゴシック体中字として用いられるものを示している.
+以下ではこれら8つの文字範囲について記述する.添字のアルファベット「J」「A」
+は,その文字範囲内の文字が\textbf{JAchar}か\textbf{ALchar}かを表している.これらの初期設定は
+\texttt{PXbase}バンドルで定義されている\texttt{prefercjk}と類似のものであるが,
+8ビットフォント使用時のトラブルを防ぐために \texttt{U+0080}--\texttt{U+00FF} の文字は全部
+\textbf{ALchar}としている.
+なお,\texttt{U+0080} 以降でこれら8つの文字範囲に属さない文字は,217番の文字範囲に属することになっている.
 %</ja>
-\begin{cslist}[style=standard]
- \item[kozuka-pro] Kozuka Pro (Adobe-Japan1-4) fonts.
-%<en>    \\*[-\dimexpr\medskipamount+\baselineskip\relax]
- \item[kozuka-pr6] Kozuka Pr6 (Adobe-Japan1-6)  fonts.
-%<en>    \\*[-\dimexpr\medskipamount+\baselineskip\relax]
- \item[kozuka-pr6n] Kozuka Pr6N (Adobe-Japan1-6, JIS04-savvy) fonts.
-
+\begin{description}
 %<*en>
-Kozuka Pro/Pr6N fonts are bundled with Adobe's software, such as Adobe~InDesign.
-There is not rounded gothic family in Kozuka fonts.
+
+\item[Range~8${}^{\text{A}}$] The intersection of the upper half of ISO~8859-1
+        (Latin-1 Supplement) and JIS~X~0208 (a basic character set for Japanese). This character range
+        consists of the following characters:
 %</en>
 %<*ja>
-小塚Pro書体・Pr6N書体はAdobe InDesign等のAdobe製品にバンドルされている.
-「小塚丸ゴシック」は存在しないので,便宜的に小塚ゴシックHによって代用している.
+\item[範囲8${}^{\text{A}}$] ISO~8859-1の上位領域(ラテン1補助)と
+                             JIS~X~0208の共通部分.この文字範囲は
+                             以下の文字で構成される:
 %</ja>
-\begin{center}\small
-\begin{tabular}{cllll}
-\toprule
-\bfseries family&\bfseries series&\ttfamily kozuka-pro&\ttfamily kozuka-pr6&\ttfamily kozuka-pr6n\\
-\midrule
- &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*\\
- &\smash{\raisebox{1.5ex}{medium}}
- &KozGoPro-Medium&KozGoProVI-Medium&KozGoPr6N-Medium\\
-\cmidrule(l){2-5}
-%<en>\smash{\raisebox{2ex}{\textit{gothic}}}%
-%<ja>\smash{\raisebox{2ex}{\gt ゴシック}}%
- &bold&KozGoPro-Bold&KozGoProVI-Bold&KozGoPr6N-Bold\\
- &heavy&KozGoPro-Heavy&KozGoProVI-Heavy&KozGoPr6N-Heavy\\
-\midrule
-%<en>\textit{rounded gothic}
-%<ja>\gt 丸ゴシック
-&&KozGoPro-Heavy&KozGoProVI-Heavy&KozGoPr6N-Heavy\\
-\bottomrule
-\end{tabular}
-\end{center}
-
- \item[hiragino-pro]  Hiragino Pro (Adobe-Japan1-5) fonts.
-%<en>    \\*[-\dimexpr\medskipamount+\baselineskip\relax]
- \item[hiragino-pron] Hiragino ProN (Adobe-Japan1-5, JIS04-savvy) fonts.
+\begin{multicols}{2}
+\begin{itemize}
+\def\ch#1#2{\item \char"#1\ (\texttt{U+00#1}, #2)}%"
+\ch{A7}{Section Sign}
+\ch{A8}{Diaeresis}
+\ch{B0}{Degree sign}
+\ch{B1}{Plus-minus sign}
+\ch{B4}{Spacing acute}
+\ch{B6}{Paragraph sign}
+\ch{D7}{Multiplication sign}
+\ch{F7}{Division Sign}
+\end{itemize}
+\end{multicols}
 
 %<*en>
-Hiragino fonts 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).
+\item[Range~1${}^{\text{A}}$] Latin characters that some of them are included in Adobe-Japan1-6.
+This range consists of the following Unicode ranges, \emph{except characters in the range~8 above}:
 %</en>
 %<*ja>
-ヒラギノフォントは,Mac OS~X以外にも,一太郎2012の上位エディションにもバンドルされている
-極太ゴシックとして用いるヒラギノ角ゴW8は,Adobe-Japan1-3の範囲しかカバーしていない
-Std/StdNフォントであり,その他はAdobe-Japan1-5対応である.
+\item[範囲1${}^{\text{A}}$] ラテン文字のうち,Adobe-Japan1-6との共通部分があるもの
+                             この範囲は以下のUnicodeのブロックのうち
+                             \emph{範囲8を除いた}部分で構成されている:
 %</ja>
-\begin{center}\small
-\begin{tabular}{clll}
-\toprule
-\bf family&\bf series&\tt hiragino-pro&\tt hiragino-pron\\
-\midrule
- &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*\\
- &\smash{\raisebox{1.5ex}{medium}}
- &Hiragino~Kaku~Gothic~Pro~W6&Hiragino~Kaku~Gothic~ProN~W6\\
-\cmidrule(l){2-4}
-%<en>\smash{\raisebox{2ex}{\textit{gothic}}}%
-%<ja>\smash{\raisebox{2ex}{\gt ゴシック}}%
- &bold&Hiragino~Kaku~Gothic~Pro~W6&Hiragino~Kaku~Gothic~ProN~W6\\
- &heavy&Hiragino~Kaku~Gothic~Std~W8&Hiragino~Kaku~Gothic~StdN~W8\\
-\midrule
-%<en>\textit{rounded gothic}
-%<ja>\gt 丸ゴシック
-&&Hiragino~Maru~Gothic~Pro~W4&Hiragino~Maru~Gothic~ProN~W4\\
-\bottomrule
-\end{tabular}
-\end{center}
-
- \item[morisawa-pro]  Morisawa Pro (Adobe-Japan1-4) fonts.
-%<en>    \\*[-\dimexpr\medskipamount+\baselineskip\relax]
- \item[morisawa-pr6n]  Morisawa Pr6N (Adobe-Japan1-6, JIS04-savvy) fonts.
-\begin{center}\small
-\begin{tabular}{cl>{\tt}l>{\tt}l}
-\toprule
-\bf family&\bf series&morisawa-pro&morisawa-pr6n\\
-\midrule
- &medium&A-OTF-RyuminPro-Light.otf&A-OTF-RyuminPr6N-Light.otf\\
-%<en>\smash{\raisebox{1.5ex}{\textit{mincho}}}%
-%<ja>\smash{\raisebox{1.5ex}{\gt 明朝}}%
- &bold&A-OTF-FutoMinA101Pro-Bold.otf&A-OTF-FutoMinA101Pr6N-Bold.otf\\
-\midrule
- &medium
- &A-OTF-GothicBBBPro-Medium.otf&A-OTF-GothicBBBPr6N-Medium.otf\\
-%<en>\textit{gothic}%
-%<ja>\gt ゴシック
- &bold&A-OTF-FutoGoB101Pro-Bold.otf&A-OTF-FutoGoB101Pr6N-Bold.otf\\
- &heavy&A-OTF-MidashiGoPro-MB31.otf&A-OTF-MidashiGoPr6N-MB31.otf\\
-\midrule
-%<en>\textit{rounded gothic}
-%<ja>\gt 丸ゴシック
-&&A-OTF-Jun101Pro-Light.otf&A-OTF-ShinMGoPr6N-Light.otf\\
-\bottomrule
+\begin{multicols}{2}
+\begin{itemize}
+\item \texttt{U+0080}--\texttt{U+00FF}: Latin-1 Supplement
+\item \texttt{U+0100}--\texttt{U+017F}: Latin Extended-A
+\item \texttt{U+0180}--\texttt{U+024F}: Latin Extended-B
+\item \texttt{U+0250}--\texttt{U+02AF}: IPA Extensions
+\item \texttt{U+02B0}--\texttt{U+02FF}: Spacing Modifier Letters
+%<en>\par\
+\item \texttt{U+0300}--\texttt{U+036F}: \\*\null\hfill Combining Diacritical Marks
+\item \texttt{U+1E00}--\texttt{U+1EFF}: \\*\null\hfill Latin Extended Additional
+%<ja>\par\
+\end{itemize}
+\end{multicols}
+%<*en>
+\item[Range~2${}^{\text{\kern.1emJ}}$] Greek and Cyrillic letters. JIS~X~0208 (hence most of Japanese
+          fonts) has some of these characters.
+%</en>
+%<*ja>
+\item[範囲2${}^{\text{\kern.1emJ}}$] ギリシャ文字とキリル文字.JIS~X~0208(したがってほとんどの
+                             和文フォント)には,これらの文字の一部が含まれている.
+%</ja>
+\begin{multicols}{2}
+\begin{itemize}
+\item \texttt{U+0370}--\texttt{U+03FF}: Greek and Coptic
+\item \texttt{U+0400}--\texttt{U+04FF}: Cyrillic
+\item \texttt{U+1F00}--\texttt{U+1FFF}: Greek Extended
+\\\
+\end{itemize}
+\end{multicols}
+%<*en>
+\item[Range~3${}^{\text{\kern.1emJ}}$] Punctuations and Miscellaneous symbols. The block list is
+          indicated in \autoref{tab:rng3}.
+%</en>
+%<*ja>
+\item[範囲3${}^{\text{\kern.1emJ}}$] 句読点と記号類.ブロックのリストは\autoref{tab:rng3}%
+                             に示してある.
+%</ja>
+\begin{table}[!tb]
+%<en>\caption{Unicode blocks in predefined character range~3.}\medskip
+%<ja>\caption{文字範囲3に指定されているUnicodeブロック.}
+\label{tab:rng3}
+\catcode`\"=13\def"#1#2#3#4{\texttt{U+#1#2#3#4}}%"
+\centering\small
+\begin{tabular}{llll}
+"2000--"206F&General Punctuation&
+"2070--"209F&Superscripts and Subscripts\\
+"20A0--"20CF&Currency Symbols&
+"20D0--"20FF&Comb.\ Diacritical Marks for Symbols\\
+"2100--"214F&Letterlike Symbols&
+"2150--"218F&Number Forms\\
+"2190--"21FF&Arrows&
+"2200--"22FF&Mathematical Operators\\
+"2300--"23FF&Miscellaneous Technical&
+"2400--"243F&Control Pictures\\
+"2500--"257F&Box Drawing&
+"2580--"259F&Block Elements\\
+"25A0--"25FF&Geometric Shapes&
+"2600--"26FF&Miscellaneous Symbols\\
+"2700--"27BF&Dingbats&
+"2900--"297F&Supplemental Arrows-B\\
+"2980--"29FF&Misc.\ Mathematical Symbols-B&
+"2B00--"2BFF&Miscellaneous Symbols and Arrows
 \end{tabular}
-\end{center}
-
-\newpage
- \item[yu-win]  Yu fonts bundled with Windows~8.1.
-%<en>    \\*[-\dimexpr\medskipamount+\baselineskip\relax]
- \item[yu-win10]  Yu fonts bundled with Windows~10.
-%<en>    \\*[-\dimexpr\medskipamount+\baselineskip\relax]
- \item[yu-osx]  Yu fonts bundled with OSX~Mavericks.
-\begin{center}\small
-\begin{tabular}{cllll}
-\toprule
-\bf family&\bf series&\texttt{yu-win}&\texttt{yu-win10}&\texttt{yu-osx}\\
-\midrule
- &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*\\
- &\smash{\raisebox{1.5ex}{medium}}%
-        &YuGothic-Regular&YuGothic-Medium&YuGothic~Medium\\
-\cmidrule(l){2-5}
-%<en>\textit{gothic}%
-%<ja>\gt ゴシック
- &bold&YuGothic-Bold&YuGothic-Bold&YuGothic~Bold\\
- &heavy&YuGothic-Bold&YuGothic-Bold&YuGothic~Bold\\
-\midrule
-%<en>\textit{rounded gothic}
-%<ja>\gt 丸ゴシック
-&&YuGothic-Bold&YuGothic-Bold&YuGothic~Bold\\
-\bottomrule
-\end{tabular}
-\end{center}
-
-\item[moga-mobo]  MogaMincho, MogaGothic, and MoboGothic.
-%<en>    \\*[-\dimexpr\medskipamount+\baselineskip\relax]
-\item[moga-mobo-ex]  MogaExMincho, MogaExGothic, and MoboExGothic.
-%<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}
-\toprule
-\bf family&\bf series&\bf default, \texttt{90jis}~option&\bf \texttt{jis2004} option\\
-\midrule
- &medium&Moga90Mincho&MogaMincho\\
-%<en>\smash{\raisebox{1.5ex}{\textit{mincho}}}%
-%<ja>\smash{\raisebox{1.5ex}{\gt 明朝}}%
- &bold&Moga90Mincho Bold&MogaMincho Bold\\
-\midrule
- &medium&Moga90Gothic&MogaGothic\\
-%<en>\textit{gothic}%
-%<ja>\gt ゴシック
- &bold&Moga90Gothic Bold&MogaGothic Bold\\
- &heavy&Moga90Gothic Bold&MogaGothic Bold\\
-\midrule
-%<en>\textit{rounded gothic}
-%<ja>\gt 丸ゴシック
-&&Mobo90Gothic&MoboGothic\\
-\bottomrule
-\end{tabular}
-\end{center}
-%<en>When \texttt{moga-mobo-ex} is specified, the font ``MogaEx90Mincho'' etc.\ are used.
-%<ja>\texttt{moga-mobo-ex}オプション指定時にはMogaEx90MinchoなどのExが名前についたフォントが使われる.
-
-\item[ume]  Ume Mincho and Ume Gothic.
-%<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}
-\toprule
-\bf family&\bf series&\bf default\\
-\midrule
- &medium&Ume Mincho\\
-%<en>\smash{\raisebox{1.5ex}{\textit{mincho}}}%
-%<ja>\smash{\raisebox{1.5ex}{\gt 明朝}}%
- &bold&Ume Mincho\\
-\midrule
- &&Ume Gothic*\\
- &\smash{\raisebox{1.5ex}{medium}}&Ume Gothic O5\\
-\cmidrule(l){2-3}
-%<en>\textit{gothic}%
-%<ja>\gt ゴシック
- &bold&Ume Gothic O5\\
- &heavy&Ume Gothic O5\\
-\midrule
-%<en>\textit{rounded gothic}
-%<ja>\gt 丸ゴシック
-&&Ume Gothic O5\\
-\bottomrule
-\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
- &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*}\\
- &\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
- &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*}\\
- &\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{単ウェイト用プリセット一覧}
+\end{table}
 %<*en>
-Next, we describe settings for using only single weight.
+\item[Range~4${}^{\text{A}}$] Characters usually not in Japanese fonts. This range consists
+          of almost all Unicode blocks which are not in other
+          predefined ranges. Hence, instead of showing the block list,
+          we put the definition of this range itself:
 %</en>
 %<*ja>
-次に,単ウェイト用の設定を述べる.この4設定では
-明朝体太字・丸ゴシック体はゴシック体と同じフォントが用いられる.
+\item[範囲4${}^{\text{A}}$] 通常和文フォントには含まれていない文字.
+                             この範囲は他の範囲にないほとんど全てのUnicodeブロック
+                             で構成されている.したがって,ブロックのリストを示す
+                             代わりに,範囲の定義そのものを示す:
 %</ja>
-\par\nobreak\medskip
-{\centering\small
-\begin{tabular}{lllll}
-\toprule
-&\tt noembed&\tt ipa&\tt ipaex&\tt ms\\
-\midrule
+\begin{lstlisting}
+\ltjdefcharrange{4}{%
+   "500-"10FF, "1200-"1DFF, "2440-"245F, "27C0-"28FF, "2A00-"2AFF,
+  "2C00-"2E7F, "4DC0-"4DFF, "A4D0-"A82F, "A840-"ABFF, "FB00-"FE0F,
+  "FE20-"FE2F, "FE70-"FEFF, "10000-"1FFFF, "E000-"F8FF} % non-Japanese
+\end{lstlisting}
+%<en>\item[Range~5${}^{\text{A}}$] Surrogates and Supplementary Private Use Areas.
+%<ja>\item[範囲5${}^{\text{A}}$] 代用符号と補助私用領域.
+%<en>\item[Range~6${}^{\text{\kern.1emJ}}$] Characters used in Japanese. The block list is indicated in \autoref{tab:rng6}.
+%<ja>\item[範囲6${}^{\text{\kern.1emJ}}$] 日本語で用いられる文字.ブロックのリストは\autoref{tab:rng6}に示す.
+\begin{table}[!tb]
+%<en>\caption{Unicode blocks in predefined character range~6.}\medskip
+%<ja>\caption{文字範囲6に指定されているUnicodeブロック.}
+\label{tab:rng6}
+\catcode`\"=13\def"#1#2#3#4{\texttt{U+#1#2#3#4}}%"
+\centering\small
+\begin{tabular}{llll}
+"2460--"24FF&Enclosed Alphanumerics&
+"2E80--"2EFF&CJK Radicals Supplement\\
+"3000--"303F&CJK Symbols and Punctuation&
+"3040--"309F&Hiragana\\
+"30A0--"30FF&Katakana&
+"3190--"319F&Kanbun\\
+"31F0--"31FF&Katakana Phonetic Extensions&
+"3200--"32FF&Enclosed CJK Letters and Months\\
+"3300--"33FF&CJK Compatibility&
+"3400--"4DBF&CJK Unified Ideographs Extension A\\
+"4E00--"9FFF&CJK Unified Ideographs&
+"F900--"FAFF&CJK Compatibility Ideographs\\
+"FE10--"FE1F&Vertical Forms&
+"FE30--"FE4F&CJK Compatibility Forms\\
+"FE50--"FE6F&Small Form Variants&
+"{20}000--"{2F}FFF&(Supplementary Ideographic Plane)\\
+"{E0}100--"{E0}1EF&Variation Selectors Supplement
+\end{tabular}
+\end{table}
 %<*en>
-\it mincho&Ryumin-Light (non-embedded)
-&IPA Mincho&IPAex Mincho&MS Mincho\\
-\it gothic&GothicBBB-Medium (non-embedded)
-&IPA Gothic&IPAex Gothic&MS Gothic\\
+\item[Range~7${}^{\text{\kern.1emJ}}$] Characters used in CJK languages, but not included in  Adobe-Japan1-6.
+The block list is indicated in \autoref{tab:rng7}.
 %</en>
 %<*ja>
-\gtfamily 明朝体&Ryumin-Light(非埋込)
-&IPA明朝&IPAex明朝&MS明朝\\
-\gtfamily ゴシック体&GothicBBB-Medium(非埋込)
-&IPAゴシック&IPAexゴシック&MSゴシック\\
+\item[範囲7${}^{\text{\kern.1emJ}}$] CJK言語で用いられる文字のうち,Adobe-Japan1-6に
+                            含まれていないもの.
+                            ブロックのリストは\autoref{tab:rng7}に示す.
 %</ja>
-\bottomrule
-\end{tabular}\par\medskip}
+\begin{table}[!tb]
+%<en>\caption{Unicode blocks in predefined character range~7.}\medskip
+%<ja>\caption{文字範囲7に指定されているUnicodeブロック.}
+\label{tab:rng7}
+\catcode`\"=13\def"#1#2#3#4{\texttt{U+#1#2#3#4}}%"
+\centering\small
+\begin{tabular}{llll}
+"1100--"11FF&Hangul Jamo&
+"2F00--"2FDF&Kangxi Radicals\\
+"2FF0--"2FFF&Ideographic Description Characters&
+"3100--"312F&Bopomofo\\
+"3130--"318F&Hangul Compatibility Jamo&
+"31A0--"31BF&Bopomofo Extended\\
+"31C0--"31EF&CJK Strokes&
+"A000--"A48F&Yi Syllables\\
+"A490--"A4CF&Yi Radicals&
+"A830--"A83F&Common Indic Number Forms\\
+"AC00--"D7AF&Hangul Syllables&
+"D7B0--"D7FF&Hangul Jamo Extended-B
+\end{tabular}
+\end{table}
+\end{description}
 
-%<en>\paragraph{Using HG fonts}
-%<ja>\paragraph{HGフォントの利用}
 %<*en>
-We can use HG~fonts bundled with Microsoft~Office for realizing multiple weights.
+\paragraph{Notes on \texttt{U+0080}--\texttt{U+00FF}}
+You should treat characters in \\texttt{U+0080}--\texttt{U+00FF} as \textbf{ALchar},
+when you use traditional 8-bit fonts, such as the \Pkg{marvosym} package.
+
+For example, \cs{Frowny} which is provided by the \Pkg{marvosym} package has
+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 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
+setting, you can use \cs{ltjalchar} and \cs{ltjjachar} respectively, as the following example.
+\begin{LTXexample}[width=0.3\textwidth]
+\gtfamily\large % default, ALchar, JAchar
+¶, \ltjalchar`¶, \ltjjachar`¶\\   % default: ALchar
+α, \ltjalchar`α, \ltjjachar`α  % default: JAchar
+\end{LTXexample}
 %</en>
 %<*ja>
-すぐ前に書いた単ウェイト用設定を,Microsoft Office等に付属するHGフォントを使って
-多ウェイト化した設定もある.
-%</ja>
-\par\nobreak\medskip
-{\centering\small
-\begin{tabular}{llll}
-\toprule
-&\tt ipa-hg&\tt ipaex-hg&\tt ms-hg\\
-\midrule
-%<*en>
-\bf mincho medium
-&IPA Mincho&IPAex Mincho&MS Mincho\\\midrule
-\bf mincho bold&
-\multicolumn{3}{c}{HG Mincho E}\\\midrule
-\bf Gothic medium\\
-~~without \texttt{deluxe}
-&IPA Gothic&IPAex Gothic&MS Gothic\\
-~~with {\tt jis2004}
-&IPA Gothic&IPAex Gothic&MS Gothic\\
-\cmidrule(lr){1-4}
-~~otherwise&
-\multicolumn{3}{c}{HG Gothic M}\\\midrule
-\bf gothic bold&
-\multicolumn{3}{c}{HG Gothic E}\\\midrule
-\bf gothic heavy&
-\multicolumn{3}{c}{HG Soei Kaku Gothic UB}\\\midrule
-\bf rounded gothic&
-\multicolumn{3}{c}{HG Maru Gothic PRO}\\
-%</en>
-%<*ja>
-\gtfamily 明朝体中字
-&IPA明朝&IPAex明朝&MS明朝\\\midrule
-\gtfamily 明朝体太字&
-\multicolumn{3}{c}{HG明朝E}\\\midrule
-\gtfamily ゴシック体中字\\
- 単ウェイト時
-&IPAゴシック&IPAexゴシック&MSゴシック\\
- {\tt jis2004}指定時
-&IPAゴシック&IPAexゴシック&MSゴシック\\
-\cmidrule(lr){1-4}
- それ以外の時&
-\multicolumn{3}{c}{HGゴシックM}\\\midrule
-\gtfamily ゴシック体太字&
-\multicolumn{3}{c}{HGゴシックE}\\\midrule
-\gtfamily ゴシック体極太&
-\multicolumn{3}{c}{HG創英角ゴシックUB}\\\midrule
-\gtfamily 丸ゴシック体&
-\multicolumn{3}{c}{HG丸ゴシック体PRO}\\
+\paragraph{\texttt{U+0080}--\texttt{U+00FF}についての注意}
+\LuaTeX-jaで,\Pkg{marvosym}パッケージ等,Unicodeフォントでなく
+伝統的な8ビットフォントを用いる場合には注意が必要である.
+
+例えば,\Pkg{marvosym}パッケージの提供する \cs{Frowny} も,符号位置は167,つまりUnicodeにおける
+\S\ (\text{U+00A7}) と同じ符号位置にある.
+即ち,以前のバージョンのように,「前節の文字範囲8内の文字は\textbf{JAchar}」という設定で
+あったとすると,上記の \cs{Frowny} は和文フォントで「\ltjjachar`§」を出力することになる.
+
+このような事態を避けるために,バージョン20150906.0からは \texttt{U+0080}--\texttt{U+00FF} の範囲の
+文字は全て\textbf{ALchar}となるように初期設定を変更している.
+
+なお,文字範囲の設定に関わらず1つの文字を\textbf{ALchar}, \textbf{JAchar}で出力したい場合には,
+以下の例のようにそれぞれ \cs{ltjalchar},~\cs{ltjjachar} に該当文字の文字コードを渡せばよい.
+\begin{LTXexample}[width=0.3\textwidth]
+\gtfamily\large % default, ALchar, JAchar
+¶, \ltjalchar`¶, \ltjjachar`¶\\   % default: ALchar
+α, \ltjalchar`α, \ltjjachar`α  % default: JAchar
+\end{LTXexample}
 %</ja>
-\bottomrule
-\end{tabular}\par\medskip}
 
+
+%<en>\subsection{\Param{kanjiskip} and \Param{xkanjiskip}}
+%<ja>\subsection{\Param{kanjiskip}と\Param{xkanjiskip}}
+\label{subs-kskip}
+
+%<en>\textbf{JAglue} is divided into the following three categories:
+%<ja>\textbf{JAglue}は以下の3つのカテゴリに分類される:
+\begin{itemize}
 %<*en>
-Note that HG~Mincho~E, HG~Gothic~E, HG Soei Kaku Gothic UB, and HG Maru Gothic PRO
-are internally specified by:
-\begin{description}
-\item[default] by font name (\texttt{HGMinchoE}, etc.).
-\item[{\tt 90jis}] by file name (\texttt{hgrme.ttc}, \texttt{hgrge.ttc}, \texttt{hgrsgu.ttc}, \texttt{hgrsmp.ttf}).
-\item[{\tt jis2004}] by file name (\texttt{hgrme04.ttc}, \texttt{hgrge04.ttc}, \texttt{hgrsgu04.ttc}, \texttt{hgrsmp04.ttf}).
-\end{description}
+\item Glues/kerns specified in JFM. If \cs{inhibitglue} is issued
+      around a \textbf{JAchar}, this glue will not be inserted at the
+      place.
 %</en>
 %<*ja>
-なお,HG明朝E・HGゴシックE・HG創英角ゴシックUB・HG丸ゴシック体PROの4つについては,内部で
-\begin{description}
-\item[標準] フォント名(\texttt{HGMinchoE} など)
-\item[{\tt 90jis}指定時] ファイル名 (%
-\texttt{hgrme.ttc}, \texttt{hgrge.ttc}, \texttt{hgrsgu.ttc}, \texttt{hgrsmp.ttf})
-\item[{\tt jis2004}指定時] ファイル名 (%
-\texttt{hgrme04.ttc}, \texttt{hgrge04.ttc}, \texttt{hgrsgu04.ttc}, \texttt{hgrsmp04.ttf})
-\end{description}
-として指定を行っているので注意すること.
+\item JFMで指定されたグルー/カーン.もし \cs{inhibitglue} が\textbf{JAchar}の周りで
+      発行されていれば,このグルーは挿入されない.
 %</ja>
-
-
 %<*en>
-\subsection{\cs{CID}, \cs{UTF}, and macros in \Pkg{japanese-otf} package}
-Under \pLaTeX, \Pkg{japanese-otf} package (developed by Shuzaburo Saito) is
-used for typesetting characters which is in Adobe-Japan1-6 CID but not
-in JIS~X~0208. Since this package is widely used, \LuaTeX-ja
-supports some of functions in the \Pkg{japanese-otf} package,
-as an external package \Pkg{luatexja-otf}.
+\item The default glue which inserted between two \textbf{JAchar}s (\Param{%
+      kanjiskip}).
 %</en>
 %<*ja>
-\subsection{\cs{CID}, \cs{UTF}と\Pkg{otf}パッケージのマクロ}
-\pLaTeX では,JIS~X~0208にないAdobe-Japan1-6の文字を出力するために,
-齋藤修三郎氏による\Pkg{otf}パッケージが用いられていた.このパッケージは
-広く用いられているため,\LuaTeX-jaにおいても\Pkg{otf}パッケージの機能の
-一部を(\Pkg{luatexja-otf}という別のパッケージとして)実装した.
+\item デフォルトで2つの\textbf{JAchar}の間に挿入されるグルー(\Param{kanjiskip}).
 %</ja>
-
-\begin{LTXexample}
-\jfontspec{KozMinPr6N-Regular.otf}
-森\UTF{9DD7}外と内田百\UTF{9592}とが\UTF{9AD9}島屋に行く。
-
-\CID{7652}飾区の\CID{13706}野家,
-\CID{1481}城市,葛西駅,
-高崎と\CID{8705}\UTF{FA11}
-
-\aj半角{はんかくカタカナ}
-\end{LTXexample}
-
+%<*en>
+\item The default glue which inserted between a \textbf{JAchar} and an
+      \textbf{ALchar} (\Param{xkanjiskip}).
+%</en>
 %<*ja>
-\Pkg{otf}パッケージでは,それぞれ次のようなオプションが存在した:
-\begin{cslist}
-\item[deluxe] 明朝体・ゴシック体各3ウェイトと,丸ゴシック体を扱えるようになる.
-\item[expert] 仮名が横組・縦組専用のものに切り替わり,ルビ用仮名も
-\ \cs{rubyfamily}\ によって扱えるようになる.
-\item[bold] ゴシック体を標準で太いウェイトのものに設定する.
-\end{cslist}
-しかしこれらのオプションは\Pkg{luatexja-otf}パッケージには存在しない.
-\Pkg{otf}パッケージが文書中で使用する和文用TFMを自前の物に置き換えていたのに対し,
-\Pkg{luatexja-otf}パッケージでは,そのようなことは行わないからである.
-
-これら3オプションについては,
-\Pkg{luatexja-preset} パッケージにプリセットを使う時に一緒に指定するか,
-あるいは対応する内容を\ref{ssec-chgfnt}節,\ref{ssec-nfsspat}節 (NFSS2) や
-\ref{ssec-fontspec}節 (\Pkg{fontspec}) の方法で手動で指定する必要がある.
+\item デフォルトで\textbf{JAchar}と\textbf{ALchar}の間に挿入されるグルー(\Param{xkanjiskip}).
 %</ja>
-
-%<en>\subsection{Changing default Japanese fonts}
-%<ja>\subsection{標準和文フォントの変更}
-\label{ssec-cfg}
+\end{itemize}
 %<*en>
-If \texttt{luatexja.cfg} can be seen from \LuaTeX, \LuaTeX-ja automatically reads it.
-The main use of \texttt{luatexja.cfg} is for changing default Japanese fonts,
-when IPAex fonts cannot be installed in \TeX~system.
-One should not overuse this \texttt{luatexja.cfg}; fonts which will be used in
-a document should be specified in its source.
-
-For example,
-\begin{lstlisting}
-\def\ltj@stdmcfont{IPAMincho}
-\def\ltj@stdgtfont{IPAGothic}
-\end{lstlisting}
-makes that IPA~Mincho and IPA~Gothic will be used as default Japanese fonts, instead of
-IPAex~Mincho and IPAex~Gothic.
-
-For another example, the following two lines makes that
-non-embedded fonts Ryumin-Light~and~GothicBBB-Medium as default Japanese fonts
-(as the earlier version of \LuaTeX-ja):
-\begin{lstlisting}
-\def\ltj@stdmcfont{psft:Ryumin-Light}
-\def\ltj@stdgtfont{psft:GothicBBB-Medium}
-\end{lstlisting}
+The value (a skip) of \Param{kanjiskip} or
+\Param{xkanjiskip} can be changed as the following.
+Note that only their values \emph{at the end of a paragraph or a hbox are
+adopted in the whole paragraph or the whole hbox.
+}
 %</en>
 %<*ja>
-\LuaTeX から見える位置に \texttt{luatexja.cfg} があれば,\LuaTeX-jaはそれを読み込む.
-このファイルを用いるとplain~\TeX, \LaTeXe における標準和文フォントを
-IPAex明朝・IPAexゴシックから変更することができる.
-しかし,基本的には\emph{文章中で用いるフォントは(例えば \Pkg{luatexja-preset} などで)
-文書ソース内で指定するべき}であり,この \texttt{luatexja.cfg} は,
-「IPAexフォントがインストールできない」など,IPAexフォントが使用できない場合にのみ
-応急処置的に用いるべきである.
-
-例えば
+\Param{kanjiskip}や\Param{xkanjiskip}の値
+は以下のようにして変更可能である.
+%</ja>
 \begin{lstlisting}
-\def\ltj@stdmcfont{IPAMincho}
-\def\ltj@stdgtfont{IPAGothic}
+\ltjsetparameter{kanjiskip={0pt plus 0.4pt minus 0.4pt},
+                 xkanjiskip={0.25\zw plus 1pt minus 1pt}}
 \end{lstlisting}
-と記述しておけば,標準和文フォントがIPA明朝・IPAゴシックへと変
-更される.
+%<*en>
+Here \cs{zw} is a internal dimension
+which stores fullwidth of the current Japanese font.
+This \cs{zw} can be used as the unit \texttt{zw} in \pTeX.
 
+The value of these parameter can be get by \cs{ltjgetparameter}.
+Note that the result by \cs{ltjgetparameter} is \emph{not} the internal quantities,
+but \emph{a string} (hence \cs{the} cannot be prefixed).
+%</en>
+%<*ja>
+ここで,\cs{zw} は現在の和文フォントの全角幅を表す長さであり,
+\pTeX における長さ単位 \texttt{zw} と同じように使用できる.
 
-なお,20140906.0以前のバージョンのように,
-Ryumin-Light, GothicBBB-Mediumという名前の非埋込フォントを用いる場合は
-\begin{lstlisting}
-\def\ltj@stdmcfont{psft:Ryumin-Light}
-\def\ltj@stdgtfont{psft:GothicBBB-Medium}
-\end{lstlisting}
-と記述すればよい.
+これらのパラメータの値は以下のように取得できる.
+戻り値は内部値ではなく\emph{文字列}である(\cs{the} は前置できない)ことに注意してほしい:
 %</ja>
-
-
-%<en>\section{Changing Internal Parameters}
-%<ja>\section{パラメータの変更}
+\begin{LTXexample}
+kanjiskip: \ltjgetparameter{kanjiskip},\\
+xkanjiskip: \ltjgetparameter{xkanjiskip}
+\end{LTXexample}
 
 %<*en>
-There are many internal parameters in \LuaTeX-ja. And due to the behavior of \LuaTeX,
-most of them are not stored as internal register of \TeX, but as an
-original storage system in \LuaTeX-ja. Hence, to assign or acquire those
-parameters, you have to use commands \cs{ltjsetparameter} and
-\cs{ltjgetparameter}.
+It may occur that JFM contains the data of ``ideal width of
+\Param{kanjiskip}''
+and/or ``ideal width of \Param{xkanjiskip}''.
+To use these data from JFM, set the value of \Param{kanjiskip} or
+\Param{xkanjiskip} to \cs{maxdimen}
+(these ``ideal width'' cannot be retrived by \cs{ltjgetparameter}).
 %</en>
 %<*ja>
-\LuaTeX-jaには多くのパラメータが存在する.そして\LuaTeX の仕様のために,
-その多くは\TeX のレジスタにではなく,\LuaTeX-ja独自の方法で保持されている.
-これらのパラメータを設定・取得するためには \cs{ltjsetparameter} と \cs{ltjgetparameter} を
-用いる.
+JFMは「望ましい\Param{kanjiskip}の値」や
+「望ましい\Param{xkanjiskip}の値」を持っていることがある.
+これらのデータを使うためには,\Param{kanjiskip}や%
+\Param{xkanjiskip}の値を \cs{maxdimen} の値に設定すればよいが,
+\cs{ltjgetparameter} によって取得することはできないので注意が必要である.
 %</ja>
 
-%<en>\subsection{Range of \textbf{JAchar}s}
-%<ja>\subsection{\textbf{JAchar}の範囲}
-\label{ssec-setrange}
+%<en>\subsection{Insertion setting of \Param{xkanjiskip}}
+%<ja>\subsection{\Param{xkanjiskip} の挿入設定}
 
 %<*en>
-\LuaTeX-ja divides the Unicode codespace \texttt{U+0080}--\texttt{U+10FFFF}
-into \emph{character ranges},
-numbered 1 to 217. The grouping can be (globally) customized by \cs{ltjdefcharrange}.
-The next line adds whole characters in Supplementary Ideographic Plane
-and the character ``漢'' to the character range~100.
+It is not desirable that \Param{xkanjiskip} is inserted into every
+boundary between \textbf{JAchar}s and \textbf{ALchar}s. For example,
+\Param{xkanjiskip} should not be inserted after opening parenthesis
+(\textit{e.g.}, compare ``(あ'' and ``(\hskip\ltjgetparameter{xkanjiskip}あ'').
+\LuaTeX-ja can control whether \Param{xkanjiskip} can be inserted
+before/after a character, by changing \Param{jaxspmode} for \textbf{JAchar}s and
+\Param{alxspmode} parameters \textbf{ALchar}s respectively.
 %</en>
 %<*ja>
-\LuaTeX-jaは,Unicodeの \texttt{U+0080}--\texttt{U+10FFFF} の空間を
-1番から217番までの\emph{文字範囲}に分割している.
-区分けは \cs{ltjdefcharrange} を用いることで(グローバルに)変更することができ,
-例えば,次は追加漢字面(SIP)にある全ての文字と「漢」を「100番の文字範囲」に追加する.
+\Param{xkanjiskip}がすべての\textbf{JAchar}と\textbf{ALchar}の境界に
+挿入されるのは望ましいことではない.例えば,\Param{xkanjiskip}は開き括弧の
+後には挿入されるべきではない(「(あ」と「(\hskip\ltjgetparameter{xkanjiskip}あ」を
+比べてみよ).
+\LuaTeX-jaでは\Param{xkanjiskip}をある文字の前/後に挿入するかどうかを,
+\textbf{JAchar}に対しては\Param{jaxspmode}を,\textbf{ALchar}に対しては
+\Param{alxspmode}をそれぞれ変えることで制御することができる.
 %</ja>
-\begin{lstlisting}
-\ltjdefcharrange{100}{"20000-"2FFFF,`漢}
-\end{lstlisting}
+\begin{LTXexample}
+\ltjsetparameter{jaxspmode={`あ,preonly}, alxspmode={`\!,postonly}}
+pあq い!う
+\end{LTXexample}
 
 %<*en>
-A character can belong to only one character range.
-For example, whole SIP belong to the range~4 in the default setting of \LuaTeX-ja,
-and if you execute the above line, then SIP will belong to the range~100 and be
-removed from the range~4.
+The second argument \texttt{preonly} means that the insertion of
+\Param{xkanjiskip} is allowed before this character, but not after.
+the other possible values are \texttt{postonly}, \texttt{allow}, and \texttt{inhibit}.
 %</en>
 %<*ja>
-各文字はただ一つの文字範囲に所属することができる.
-例えば,SIP内の文字は全て\LuaTeX-jaのデフォルトでは4番の文字範囲に
-属しているが,上記の指定を行えばSIP内の文字は100番に属すようになり,4番からは除かれる.
+2つ目の引数の \texttt{preonly}は「\Param{xkanjiskip}の挿入はこの文字の
+前でのみ許され,後では許さない」ことを意味する.他に指定可能な値は
+\texttt{postonly}, \texttt{allow}, \texttt{inhibit}である.
 %</ja>
 
 %<*en>
-The distinction between \textbf{ALchar} and \textbf{JAchar} is performed by character ranges.
-This can be edited by setting the \textsf{jacharrange} parameter.
-For example, the code below is just the default setting of \LuaTeX-ja, and
-it sets
-\begin{itemize}
- \item a character which belongs character ranges 1,~4, 5, and~8 is \textbf{ALchar},
- \item a character which belongs character ranges 2,~3, 6, and~7 is \textbf{JAchar}.
-\end{itemize}
+\Param{jaxspmode} and \Param{alxspmode} use a same table to store the parameters
+on the current version. Therefore, line~1 in the code above can be rewritten
+as follows:
 %</en>
 %<*ja>
-\textbf{ALchar}と\textbf{JAchar}の区別は文字範囲ごとに行われる.
-これは\textsf{jacharrange}パラメータによって編集できる.
-例えば,以下は\LuaTeX-jaの初期設定であり,次の内容を設定している:
-\begin{itemize}
- \item 1番,4番,5番,8番の文字範囲に属する文字は\textbf{ALchar}.
- \item 2番,3番,6番,7番の文字範囲に属する文字は\textbf{JAchar}.
-\end{itemize}
+なお,現行の
+仕様では,\Param{jaxspmode}, \Param{alxspmode}はテーブルを共有しており,
+上のコードの1行目を次のように変えても同じことになる:
 %</ja>
 \begin{lstlisting}
-\ltjsetparameter{jacharrange={-1, +2, +3, -4, -5, +6, +7, -8}}
+\ltjsetparameter{alxspmode={`あ,preonly}, jaxspmode={`\!,postonly}}
 \end{lstlisting}
 %<*en>
-The argument to \textsf{jacharrange} parameter is a list of non-zero integer.
-Negative integer $-n$ in the list means that ``each character in the range~$n$ is an
-\textbf{ALchar}'',
-and positive integer $+n$ means that ``\dots\ is a \textbf{JAchar}''.
+One can use also numbers to specify these two parameters (see Subsection~\ref{ssec-param}).
 %</en>
 %<*ja>
-\textsf{jacharrange}パラメータの引数は非零の整数のリストである.
-リスト中の負の整数$-n$は「文字範囲$n$に属する文字は\textbf{ALchar}として
-扱う」ことを意味し,正の整数$+n$は「\textbf{JAchar}として扱う」ことを意味する.
+また,これら2パラメータには数値で値を指定することもできる(\ref{ssec-param}節を参照).
 %</ja>
 
 %<*en>
-Note that characters \texttt{U+0000}--\texttt{U+007F} are always treated as an
-\textbf{ALchar} (this cannot be customized).
+If you want to enable/disable all insertions of \Param{kanjiskip} and
+\Param{xkanjiskip}, set \Param{autospacing} and \Param{autoxspacing}
+parameters to \texttt{true}/\texttt{false}, respectively.
 %</en>
 %<*ja>
-なお,\texttt{U+0000}--\texttt{U+007F} は常に\textbf{ALchar}として扱われる(利用者が変更す
-ることは出来ない).
+もし全ての\Param{kanjiskip}と\Param{xkanjiskip}の挿入を有効化/無効化
+したければ,それぞれ\Param{autospacing}と\Param{autoxspacing}を
+\texttt{true}/\texttt{false}に設定すればよい.
 %</ja>
 
+%<en>\subsection{Shifting the baseline}
+%<ja>\subsection{ベースラインの移動}
 %<*en>
-\paragraph{Default character ranges}
-\LuaTeX-ja predefines eight character ranges for convenience. They are
-determined from the following data:
+To make a match between a Japanese font and an alphabetic font, sometimes
+shifting of the baseline of one of the pair is needed. In \pTeX, this is achieved
+by setting \cs{ybaselineshift} (or \cs{tbaselineshift}) to a non-zero length (the
+baseline of \textbf{ALchar} is shifted below). However, for documents
+whose main language is not Japanese, it is good to shift the baseline of
+Japanese fonts, but not that of alphabetic fonts.
+Because of this, \LuaTeX-ja can independently set the shifting amount
+of the baseline of alphabetic fonts and that of Japanese fonts.
+\begin{center}
+ \small
+\begin{tabular}{>{\bfseries}lcc}
+\toprule
+&\bfseries Horizontal writing (\emph{yoko} direction) etc.
+&\bfseries Vertical writing(\emph{tate} direction)\\
+\midrule
+Alphabetic fonts&\Param{yalbaselineshift}
+     parameter&\Param{talbaselineshift} parameter\\
+Japanese fonts&\Param{yjabaselineshift}
+     parameter&\Param{tjabaselineshift} parameter\\
+\bottomrule
+\end{tabular}
+\end{center}
 %</en>
 %<*ja>
-\paragraph{文字範囲の初期値}
-\LuaTeX-jaでは8つの文字範囲を予め定義しており,
-これらは以下のデータに基づいて決定している.
+和文フォントと欧文フォントを合わせるためには,時々どちらかのベースラインの移動が
+必要になる.\pTeX ではこれは \cs{ybaselineshift}(または\cs{tbaselineshift})を設定することで
+なされていた(\textbf{ALchar}のベースラインがその分だけ下がる).しかし,日本語が主ではない
+文書に対しては,欧文フォントではなく和文フォントのベースラインを移動した方がよい.
+このため,\LuaTeX-jaでは欧文フォントのベースラインのシフト量
+と和文フォントのベースラインのシフト量を独立に設定できるようになっている.
+\begin{center}
+ \small
+\begin{tabular}{>{\bfseries}lcc}
+\toprule
+&\bfseries 横組など&\bfseries 縦組\\
+\midrule
+欧文フォントのシフト量&\Param{yalbaselineshift}
+     parameter&\Param{talbaselineshift} parameter\\
+和文フォントのシフト量&\Param{yjabaselineshift}
+     parameter&\Param{tjabaselineshift} parameter\\
+\bottomrule
+\end{tabular}
+\end{center}
 %</ja>
-\begin{itemize}
-%<en>\item Blocks in Unicode~6.0.
-%<ja>\item Unicode~6.0のブロック.
-%<en>\item The \texttt{Adobe-Japan1-UCS2} mapping between a CID Adobe-Japan1-6 and Unicode.
-%<ja>\item Adobe-Japan1-6のCIDとUnicodeの間の対応表\texttt{Adobe-Japan1-UCS2}.
-%<en>\item The \Pkg{PXbase} bundle for \upTeX\ by Takayuki Yato.
-%<ja>\item 八登崇之氏による\upTeX 用の\Pkg{PXbase}バンドル.
-\end{itemize}
 
 %<*en>
-Now we describe these eight ranges. The superscript ``J'' or ``A'' after the
-number shows whether each character in the range is treated as
-\textbf{JAchar}s or not by default. These settings are similar to the
-\texttt{prefercjk} settings defined in \texttt{PXbase} bundle.
-Any characters equal to or above \texttt{U+0080} which does not belong to
-these eight ranges belongs to the character range~217.
+Here the horizontal line in the below example is the baseline of a line.
 %</en>
 %<*ja>
-以下ではこれら8つの文字範囲について記述する.添字のアルファベット「J」「A」
-は,その文字範囲内の文字が\textbf{JAchar}か\textbf{ALchar}かを表している.これらの初期設定は
-\texttt{PXbase}バンドルで定義されている\texttt{prefercjk}と類似のものであるが,
-8ビットフォント使用時のトラブルを防ぐために \texttt{U+0080}--\texttt{U+00FF} の文字は全部
-\textbf{ALchar}としている.
-なお,\texttt{U+0080} 以降でこれら8つの文字範囲に属さない文字は,217番の文字範囲に属することになっている.
+下の例において引かれている水平線がベースラインである.
 %</ja>
-\begin{description}
-%<*en>
+\begin{LTXexample}
+\vrule width 150pt height 0.2pt depth 0.2pt \hskip-120pt
+\ltjsetparameter{yjabaselineshift=0pt, yalbaselineshift=0pt}abcあいう
+\ltjsetparameter{yjabaselineshift=5pt, yalbaselineshift=2pt}abcあいう
+\end{LTXexample}
 
-\item[Range~8${}^{\text{A}}$] The intersection of the upper half of ISO~8859-1
-        (Latin-1 Supplement) and JIS~X~0208 (a basic character set for Japanese). This character range
-        consists of the following characters:
+%<*en>
+There is an interesting side-effect: characters in different size can be
+vertically aligned center in a line, by setting two parameters appropriately.
+The following is an example (beware the value is not well tuned):
 %</en>
 %<*ja>
-\item[範囲8${}^{\text{A}}$] ISO~8859-1の上位領域(ラテン1補助)と
-                             JIS~X~0208の共通部分.この文字範囲は
-                             以下の文字で構成される
+この機能には面白い使い方がある:2つのパラメータを適切に設定することで,サイズの
+異なる文字を中心線に揃えることができる.
+以下は一つの例である(値はあまり調整されていないことに注意)
 %</ja>
-\begin{multicols}{2}
-\begin{itemize}
-\def\ch#1#2{\item \char"#1\ (\texttt{U+00#1}, #2)}%"
-\ch{A7}{Section Sign}
-\ch{A8}{Diaeresis}
-\ch{B0}{Degree sign}
-\ch{B1}{Plus-minus sign}
-\ch{B4}{Spacing acute}
-\ch{B6}{Paragraph sign}
-\ch{D7}{Multiplication sign}
-\ch{F7}{Division Sign}
-\end{itemize}
-\end{multicols}
+\begin{LTXexample}[width=0.4\textwidth]
+\vrule width 150pt height4.417pt depth-4.217pt%
+\kern-150pt
+\large xyz漢字
+{\scriptsize
+  \ltjsetparameter{yjabaselineshift=-1.757pt,
+    yalbaselineshift=-1.757pt}
+  漢字xyzあいう
+}あいうabc
+\end{LTXexample}
 
 %<*en>
-\item[Range~1${}^{\text{A}}$] Latin characters that some of them are included in Adobe-Japan1-6.
-This range consists of the following Unicode ranges, \emph{except characters in the range~8 above}:
-%</en>
-%<*ja>
-\item[範囲1${}^{\text{A}}$] ラテン文字のうち,Adobe-Japan1-6との共通部分があるもの.
-                             この範囲は以下のUnicodeのブロックのうち
-                             \emph{範囲8を除いた}部分で構成されている:
-%</ja>
-\begin{multicols}{2}
+Note that setting positive \Param{yalbaselineshift}~or~\Param{talbaselineshift}
+parameters does not increase the depth of one-letter \emph{syllable} $p$ of \textbf{Alchar}, if
+its left-protrusion~(\cs{lpcode}) and right-protrusion~(\cs{rpcode}) are both non-zero.
+This is because
 \begin{itemize}
-\item \texttt{U+0080}--\texttt{U+00FF}: Latin-1 Supplement
-\item \texttt{U+0100}--\texttt{U+017F}: Latin Extended-A
-\item \texttt{U+0180}--\texttt{U+024F}: Latin Extended-B
-\item \texttt{U+0250}--\texttt{U+02AF}: IPA Extensions
-\item \texttt{U+02B0}--\texttt{U+02FF}: Spacing Modifier Letters
-%<en>\par\
-\item \texttt{U+0300}--\texttt{U+036F}: \\*\null\hfill Combining Diacritical Marks
-\item \texttt{U+1E00}--\texttt{U+1EFF}: \\*\null\hfill Latin Extended Additional
-%<ja>\par\
+\item These two parameters are implemented by setting \texttt{yoffset} field of a
+glyph node, and this does not increase the depth of the glyph.
+\item To cope with the above situation, \LuaTeX-ja automatically supplies
+a rule in every syllable.
+\item However, we cannot use this ``supplying a rule'' method if a syllable comprises just
+      one letter whose \cs{lpcode}~and~\cs{rpcode} are both non-zero.
 \end{itemize}
-\end{multicols}
-%<*en>
-\item[Range~2${}^{\text{\kern.1emJ}}$] Greek and Cyrillic letters. JIS~X~0208 (hence most of Japanese
-          fonts) has some of these characters.
+
+This problem does not apply for \Param{yjabaselineshift}~nor~\Param{tjabaselineshift},
+becuse a \emph{JAchar} is encapsulated by a horizontal box if needed.
 %</en>
 %<*ja>
-\item[範囲2${}^{\text{\kern.1emJ}}$] ギリシャ文字とキリル文字.JIS~X~0208(したがってほとんどの
-                             和文フォント)には,これらの文字の一部が含まれている.
-%</ja>
-\begin{multicols}{2}
+なお,以下の場合には1文字の\textbf{ALchar}からなる「音節」の深さは増加しないことに注意.
 \begin{itemize}
-\item \texttt{U+0370}--\texttt{U+03FF}: Greek and Coptic
-\item \texttt{U+0400}--\texttt{U+04FF}: Cyrillic
-\item \texttt{U+1F00}--\texttt{U+1FFF}: Greek Extended
-\\\
+ \item \Param{yalbaselineshift},~\Param{talbaselineshift}パラメータが正になっている.
+ \item 「音節」を構成する唯一の文字$p$の
+左余白への突出量(\cs{lpcode}),右余白への突出量(\cs{rpcode})がどちらも非零である.
 \end{itemize}
-\end{multicols}
-%<*en>
-\item[Range~3${}^{\text{\kern.1emJ}}$] Punctuations and Miscellaneous symbols. The block list is
-          indicated in \autoref{tab:rng3}.
-%</en>
-%<*ja>
-\item[範囲3${}^{\text{\kern.1emJ}}$] 句読点と記号類.ブロックのリストは\autoref{tab:rng3}%
-                             に示してある.
+\emph{JAchar}は必要に応じて1文字ずつボックスにカプセル化されるため,
+\Param{yjabaselineshift},~\Param{tjabaselineshift}パラメータについてはこのような問題は起こらない.
 %</ja>
-\begin{table}[!tb]
-%<en>\caption{Unicode blocks in predefined character range~3.}\medskip
-%<ja>\caption{文字範囲3に指定されているUnicodeブロック.}
-\label{tab:rng3}
-\catcode`\"=13\def"#1#2#3#4{\texttt{U+#1#2#3#4}}%"
-\centering\small
-\begin{tabular}{llll}
-"2000--"206F&General Punctuation&
-"2070--"209F&Superscripts and Subscripts\\
-"20A0--"20CF&Currency Symbols&
-"20D0--"20FF&Comb.\ Diacritical Marks for Symbols\\
-"2100--"214F&Letterlike Symbols&
-"2150--"218F&Number Forms\\
-"2190--"21FF&Arrows&
-"2200--"22FF&Mathematical Operators\\
-"2300--"23FF&Miscellaneous Technical&
-"2400--"243F&Control Pictures\\
-"2500--"257F&Box Drawing&
-"2580--"259F&Block Elements\\
-"25A0--"25FF&Geometric Shapes&
-"2600--"26FF&Miscellaneous Symbols\\
-"2700--"27BF&Dingbats&
-"2900--"297F&Supplemental Arrows-B\\
-"2980--"29FF&Misc.\ Mathematical Symbols-B&
-"2B00--"2BFF&Miscellaneous Symbols and Arrows
-\end{tabular}
-\end{table}
-%<*en>
-\item[Range~4${}^{\text{A}}$] Characters usually not in Japanese fonts. This range consists
-          of almost all Unicode blocks which are not in other
-          predefined ranges. Hence, instead of showing the block list,
-          we put the definition of this range itself:
-%</en>
+
 %<*ja>
-\item[範囲4${}^{\text{A}}$] 通常和文フォントには含まれていない文字.
-                             この範囲は他の範囲にないほとんど全てのUnicodeブロック
-                             で構成されている.したがって,ブロックのリストを示す
-                             代わりに,範囲の定義そのものを示す:
-%</ja>
-\begin{lstlisting}
-\ltjdefcharrange{4}{%
-   "500-"10FF, "1200-"1DFF, "2440-"245F, "27C0-"28FF, "2A00-"2AFF,
-  "2C00-"2E7F, "4DC0-"4DFF, "A4D0-"A82F, "A840-"ABFF, "FB00-"FE0F,
-  "FE20-"FE2F, "FE70-"FEFF, "10000-"1FFFF, "E000-"F8FF} % non-Japanese
-\end{lstlisting}
-%<en>\item[Range~5${}^{\text{A}}$] Surrogates and Supplementary Private Use Areas.
-%<ja>\item[範囲5${}^{\text{A}}$] 代用符号と補助私用領域.
-%<en>\item[Range~6${}^{\text{\kern.1emJ}}$] Characters used in Japanese. The block list is indicated in \autoref{tab:rng6}.
-%<ja>\item[範囲6${}^{\text{\kern.1emJ}}$] 日本語で用いられる文字.ブロックのリストは\autoref{tab:rng6}に示す.
-\begin{table}[!tb]
-%<en>\caption{Unicode blocks in predefined character range~6.}\medskip
-%<ja>\caption{文字範囲6に指定されているUnicodeブロック.}
-\label{tab:rng6}
-\catcode`\"=13\def"#1#2#3#4{\texttt{U+#1#2#3#4}}%"
-\centering\small
-\begin{tabular}{llll}
-"2460--"24FF&Enclosed Alphanumerics&
-"2E80--"2EFF&CJK Radicals Supplement\\
-"3000--"303F&CJK Symbols and Punctuation&
-"3040--"309F&Hiragana\\
-"30A0--"30FF&Katakana&
-"3190--"319F&Kanbun\\
-"31F0--"31FF&Katakana Phonetic Extensions&
-"3200--"32FF&Enclosed CJK Letters and Months\\
-"3300--"33FF&CJK Compatibility&
-"3400--"4DBF&CJK Unified Ideographs Extension A\\
-"4E00--"9FFF&CJK Unified Ideographs&
-"F900--"FAFF&CJK Compatibility Ideographs\\
-"FE10--"FE1F&Vertical Forms&
-"FE30--"FE4F&CJK Compatibility Forms\\
-"FE50--"FE6F&Small Form Variants&
-"{20}000--"{2F}FFF&(Supplementary Ideographic Plane)\\
-"{E0}100--"{E0}1EF&Variation Selectors Supplement
+\paragraph{数式における挙動:\pTeX との違い}
+\textbf{ALchar}のベースラインを補正する\Param{yalbaselineshift}, \Param{talbaselineshift}パラメータは
+ほぼ\pTeX における \cs{ybaselineshift}, \cs{tbaselineshift} に対応しているものであるが,
+数式中の挙動は異なっているので注意が必要である.
+例えば,\autoref{tab:math_bsa}のように,数式中に明示的に現れた \cs{hbox},~\cs{vbox} は,横組において
+\begin{itemize}
+ \item 2015年以前の\pTeX では,ボックス全体が \cs{ybaselineshift} だとシフトされるので,
+ \autoref{tab:math_bsa}中の``い''のように,ボックス中の和文文字は
+ \ \cs{ybaselineshift} だけシフトされ,一方,``for all''のように,
+ ボックス内の欧文文字は2重にシフトされることになる.
+ \item 一方,\LuaTeX-jaではそのようなことはおこらず,
+ 数式中に明示的に現れた \cs{hbox},~\cs{vbox} はシフトしない.そのため,
+ \autoref{tab:math_bsa}中の``い''も``for all''も,それぞれ本文中に
+ 書かれたときと同じ上下位置に組まれる.
+
+ なお,\TeX~Live~2016以降の\pTeX では改修がなされ,\LuaTeX-jaと
+ 近い挙動になるようにしているが,数式中に直に書かれた``あ''のベースラインについては
+ まだ違いが見られる.
+\end{itemize}
+
+なお,バージョン20170401.0以降の\LuaTeX-jaでは,\cs{vcenter} によるボックスには
+全体が\Param{yalbaselineshift}, \Param{talbaselineshift} パラメータが反映されるようにしている.
+その方が結果が自然であることによる変更なのだが,結果的に\cs{vcenter} については\pTeX と同じ挙動となった.
+
+\begin{table}
+\small\centering
+\caption{数式関係のベースライン補正($\Param{yalbaselineshift}=10\,\textrm{pt}$)}
+\label{tab:math_bsa}
+\newdimen\origbaselineskip
+\origbaselineskip=\baselineskip
+\begin{tabular}{lp{30\zw}}
+\toprule
+\emph{入力}&\vspace*{\dimexpr-\origbaselineskip-\smallskipamount}
+\begin{lstlisting}
+数式abc: $あa\hbox{い}$, $\int_0^x t\,dt=x^2/2$,
+$\Phi\vdash F(x)\ \hbox{for all}\ x\in A$
+\end{lstlisting}\\
+\noalign{\vskip-\origbaselineskip}
+\midrule
+\emph{\pTeX~(--2015)}&
+{\ltjsetparameter{yalbaselineshift=10pt}%
+数式abc: $\lower10pt\hbox{あ}a\lower10pt\hbox{い}$, $\int_0^x t\,dt=x^2/2$,
+$\Phi\vdash F(x)\ \lower10pt\hbox{for all}\ x\in A$
+\par}\\\noalign{\vskip-\origbaselineskip}\midrule
+\emph{\pTeX~(2016--)}&
+{\ltjsetparameter{yalbaselineshift=10pt}%
+数式abc: $\lower10pt\hbox{あ}a\hbox{い}$, $\int_0^x t\,dt=x^2/2$,
+$\Phi\vdash F(x)\ \hbox{for all}\ x\in A$
+\par}\\\noalign{\vskip-\origbaselineskip}\midrule
+\emph{\LuaTeX-ja}&
+{\ltjsetparameter{yalbaselineshift=10pt}%
+数式abc: $あa\hbox{い}$, $\int_0^x t\,dt=x^2/2$,
+$\Phi\vdash F(x)\ \hbox{for all}\ x\in A$
+\par}\\
+\noalign{\vskip-\origbaselineskip}
+\bottomrule
 \end{tabular}
 \end{table}
-%<*en>
-\item[Range~7${}^{\text{\kern.1emJ}}$] Characters used in CJK languages, but not included in  Adobe-Japan1-6.
-The block list is indicated in \autoref{tab:rng7}.
-%</en>
-%<*ja>
-\item[範囲7${}^{\text{\kern.1emJ}}$] CJK言語で用いられる文字のうち,Adobe-Japan1-6に
-                            含まれていないもの.
-                            ブロックのリストは\autoref{tab:rng7}に示す.
 %</ja>
-\begin{table}[!tb]
-%<en>\caption{Unicode blocks in predefined character range~7.}\medskip
-%<ja>\caption{文字範囲7に指定されているUnicodeブロック.}
-\label{tab:rng7}
-\catcode`\"=13\def"#1#2#3#4{\texttt{U+#1#2#3#4}}%"
-\centering\small
-\begin{tabular}{llll}
-"1100--"11FF&Hangul Jamo&
-"2F00--"2FDF&Kangxi Radicals\\
-"2FF0--"2FFF&Ideographic Description Characters&
-"3100--"312F&Bopomofo\\
-"3130--"318F&Hangul Compatibility Jamo&
-"31A0--"31BF&Bopomofo Extended\\
-"31C0--"31EF&CJK Strokes&
-"A000--"A48F&Yi Syllables\\
-"A490--"A4CF&Yi Radicals&
-"A830--"A83F&Common Indic Number Forms\\
-"AC00--"D7AF&Hangul Syllables&
-"D7B0--"D7FF&Hangul Jamo Extended-B
-\end{tabular}
-\end{table}
-\end{description}
 
 %<*en>
-\paragraph{Notes on \texttt{U+0080}--\texttt{U+00FF}}
-You should treat characters in \\texttt{U+0080}--\texttt{U+00FF} as \textbf{ALchar},
-when you use traditional 8-bit fonts, such as the \Pkg{marvosym} package.
-
-For example, \cs{Frowny} which is provided by the \Pkg{marvosym} package has
-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
-so that all characters \texttt{U+0080}--\texttt{U+00FF} are treated as \textbf{ALchar}.
+\subsection{\emph{kinsoku} parameters and OpenType features}
+Among parameters which related to Japanese word-wrapping process (\emph{kinsoku shori}),
+\begin{quote}
+ \Param{jaxspmode},~\Param{alxspmode}, \Param{prebreakpenalty},
+ \Param{postbreakpenalty}~and~\Param{kcatcode}
+\end{quote}
+are stored by each character codes.
 
-If you want to output a character as \textbf{ALchar} and \textbf{JAchar} regardless the range
-setting, you can use \cs{ltjalchar} and \cs{ltjjachar} respectively, as the following example.
-\begin{LTXexample}[width=0.3\textwidth]
-\gtfamily\large % default, ALchar, JAchar
-¶, \ltjalchar`¶, \ltjjachar`¶\\   % default: ALchar
-α, \ltjalchar`α, \ltjjachar`α  % default: JAchar
-\end{LTXexample}
+OpenType font features are ignored in these parameters.
+For example, a fullwidth katakana ``ア'' on line~10 in the below input is replaced to
+its halfwidth variant ``ア'', by \verb+hwid+ feature.
+However, the penalty inserted after it is 10 which is the \Param{postbreakpenalty} of
+``ア'', not 20.
 %</en>
 %<*ja>
-\paragraph{\texttt{U+0080}--\texttt{U+00FF}についての注意}
-\LuaTeX-jaで,\Pkg{marvosym}パッケージ等,Unicodeフォントでなく
-伝統的な8ビットフォントを用いる場合には注意が必要である.
+\newpage
+\subsection{禁則処理関連パラメータとOpenTypeのfont feature}
+禁則処理や \Param{kanjiskip}, \Param{xkanjiskip} の挿入に関連したパラメータのうち
+\begin{quote}
+ \Param{jaxspmode},~\Param{alxspmode}, \Param{prebreakpenalty},
+ \Param{postbreakpenalty}, \Param{kcatcode}
+\end{quote}
+は,文字コードごとに設定する量である.
 
-例えば,\Pkg{marvosym}パッケージの提供する \cs{Frowny} も,符号位置は167,つまりUnicodeにおける
-\S\ (\text{U+00A7}) と同じ符号位置にある.
-即ち,以前のバージョンのように,「前節の文字範囲8内の文字は\textbf{JAchar}」という設定で
-あったとすると,上記の \cs{Frowny} は和文フォントで「\ltjjachar`§」を出力することになる.
+\Pkg{fontspec}パッケージを使う(\ref{ssec-fontspec}節)場合など,
+各種のOpenType featureを適用することもあると思うが,前段落に述べたパラメータ類は,
+\emph{OpenType featureの適用前の文字コードによって適用される.}
+例えば,以下の例において10行目の「ア」は,\verb+hwid+ featureの適用により半角カタカナの「ア」
+に置き換わる.しかし,その直後に挿入される \Param{postbreakpenalty}は,置換前の「ア」に対する値10である.
+%</ja>
 
-このような事態を避けるために,本バージョンからは \texttt{U+0080}--\texttt{U+00FF} の範囲の
-文字は全て\textbf{ALchar}となるように初期設定を変更している.
+\begin{LTXexample}[width=0.2\textwidth]
+\ltjsetparameter{postbreakpenalty={`ア, 10}}
+\ltjsetparameter{postbreakpenalty={`ア, 20}}
 
-なお,文字範囲の設定に関わらず1つの文字を\textbf{ALchar}, \textbf{JAchar}で出力したい場合には,
-以下の例のようにそれぞれ \cs{ltjalchar},~\cs{ltjjachar} に該当文字の文字コードを渡せばよい.
-\begin{LTXexample}[width=0.3\textwidth]
-\gtfamily\large % default, ALchar, JAchar
-¶, \ltjalchar`¶, \ltjjachar`¶\\   % default: ALchar
-α, \ltjalchar`α, \ltjjachar`α  % default: JAchar
+\newcommand\showpostpena[1]{%
+  \leavevmode\setbox0=\hbox{#1\hbox{}}%
+  \unhbox0\setbox0=\lastbox\the\lastpenalty}
+
+\showpostpena{ア},
+\showpostpena{ア},
+{\addjfontfeatures{CharacterWidth=Half}\showpostpena{ア}}
 \end{LTXexample}
-%</ja>
 
+\clearpage
+%<en>\part{Reference}
+%<ja>\part{リファレンス}
+\label{part-ref}
+\suppressfloats[t]
+%<*ja>
+\section{\LuaTeX-jaにおける \cs{catcode}}
+\label{sec-catcode}
+\subsection{予備知識:\pTeX と\upTeX における \cs{kcatcode}}
+\pTeX,\upTeX においては,和文文字が制御綴内で利用できるかどうか
+は \cs{kcatcode} の値によって決定されるのであった.
+詳細は\autoref{tab:kcat}を参照されたい.
+%</ja>
+%<*en>
+\section{\cs{catcode} in \LuaTeX-ja}
+\label{sec-catcode}
+\subsection{Preliminaries: \cs{kcatcode} in \pTeX\ and \upTeX}
+In \pTeX~and~\upTeX, the value of \cs{kcatcode} determines
+whether a Japanese character can be used in a control word.
+For the detail, see \autoref{tab:kcat}.
+%</en>
 
-%<en>\subsection{\Param{kanjiskip} and \Param{xkanjiskip}}
-%<ja>\subsection{\Param{kanjiskip}と\Param{xkanjiskip}}
-\label{subs-kskip}
+\begin{table}[t]
+\small
+\caption{\cs{kcatcode} in \upTeX}
+\label{tab:kcat}
+%<en>\medskip
 
-%<en>\textbf{JAglue} is divided into the following three categories:
-%<ja>\textbf{JAglue}は以下の3つのカテゴリに分類される:
-\begin{itemize}
+\noindent\hfill
+\begin{tabular}{ccccc}
+\toprule
+\bfseries \cs{kcatcode}&
 %<*en>
-\item Glues/kerns specified in JFM. If \cs{inhibitglue} is issued
-      around a \textbf{JAchar}, this glue will not be inserted at the
-      place.
+\bfseries meaning&
+\bfseries control word&
+\bfseries widow penalty&
+\bfseries linebreak\\
 %</en>
 %<*ja>
-\item JFMで指定されたグルー/カーン.もし \cs{inhibitglue} が\textbf{JAchar}の周りで
-      発行されていれば,このグルーは挿入されない.
+\bfseries 意図&
+\bfseries 制御綴中に使用&
+\bfseries 文字ウィドウ処理&
+\bfseries 直後での改行\\
 %</ja>
-%<*en>
-\item The default glue which inserted between two \textbf{JAchar}s (\Param{%
-      kanjiskip}).
-%</en>
+\midrule
+15&non-cjk&\multicolumn{3}{c}{(treated as usual \LaTeX)}\\
+16&kanji&Y&Y&ignored\\
+17&kana&Y&Y&ignored\\
+18&other&N&N&ignored\\
+19&hangul&Y&Y&space\\
+\bottomrule
+\end{tabular}\hfill\null
+
+\medskip
+
 %<*ja>
-\item デフォルトで2つの\textbf{JAchar}の間に挿入されるグルー(\Param{kanjiskip}).
+文字ウィドウ処理:「漢字が一文字だけ次の行に行くのを防ぐ」
+\cs{jcharwidowpenalty} が,
+その文字の直前に挿入されうるか否か,を示す.
 %</ja>
+\end{table}
+
 %<*en>
-\item The default glue which inserted between a \textbf{JAchar} and an
-      \textbf{ALchar} (\Param{xkanjiskip}).
+\cs{kcatcode} can be set by a row of JIS~X~0208 in \pTeX,
+and generally by a Unicode block\footnote{%
+  \upTeX\ divides \texttt{U+FF00}--\texttt{U+FFEF} (Halfwidth and Fullwidth Forms)
+  into three subblocks, and \cs{kcatcode} can be set by a subblock.
+}
+in \upTeX. So characters which can be used in a control word
+slightly differ between \pTeX~and~\upTeX.
 %</en>
 %<*ja>
-\item デフォルトで\textbf{JAchar}と\textbf{ALchar}の間に挿入されるグルー(\Param{xkanjiskip}).
+\pTeX では \cs{kcatcode} はJIS~X~0208の区単位,
+\upTeX では概ねUnicodeブロック単位\footnote{%
+  \texttt{U+FF00}--\texttt{U+FFEF} (Halfwidth and Fullwidth Forms)は
+  「全角英数字」「半角カナ」「その他」と3つに分割されており,
+  それぞれ別々に \cs{kcatcode} が指定できるようになっている.
+}で設定可能になっている.そのため,\pTeX と\upTeX の初期状態では
+制御綴内で使用可能な文字が微妙に異なっている.
 %</ja>
-\end{itemize}
+
 %<*en>
-The value (a skip) of \Param{kanjiskip} or
-\Param{xkanjiskip} can be changed as the following.
-Note that only their values \emph{at the end of a paragraph or a hbox are
-adopted in the whole paragraph or the whole hbox.
-}
+\subsection{Case of \LuaTeX-ja}
+The role of \cs{kcatcode} in \pTeX~and~\upTeX\ can be
+divided into the following four kinds,
+and \LuaTeX-ja can control these four kinds separately:
+\begin{itemize}
+ \item
+\emph{Distinction between \textbf{JAchar} or \textbf{ALchar}}
+is controlled by the character range, see Subsection~\ref{ssec-setrange}.
+ \item
+\emph{Whether the character can be used in a control word}
+is controlled by setting \cs{catcode} to 11~(enabled) or 12~(disabled), as usual.
+ \item
+\emph{Whether \Param{jcharwidowpenalty} can be inserted before the character}
+is controlled by the lowermost bit of the \Param{kcatcode} parameter.
+ \item
+\emph{Linebreak after a \textbf{JAchar}} does not produce a space.
+\end{itemize}
 %</en>
 %<*ja>
-\Param{kanjiskip}や\Param{xkanjiskip}の値
-は以下のようにして変更可能である.
+\subsection{\LuaTeX-jaの場合}
+\LuaTeX-jaでは,従来の\pTeX・\upTeX における \cs{kcatcode} の役割を
+分割している:
+\begin{description}
+ \item[欧文/和文の区別 (\upTeX)]
+\cs{ltjdefcharrange} と\textsf{jacharrange}パラメータ(\ref{ssec-setrange}節)
+ \item[制御綴中に使用可か]
+\LuaTeX 自身の \cs{catcode} でよい
+ \item[\Param{jcharwidowpenalty}が挿入可か]
+\Param{kcatcode}パラメータの最下位ビット
+ \item[直後の改行]
+日本語しか想定していないので,\textbf{JAchar}直後の改行で半角スペースが挿入されることはない.
+\end{description}
 %</ja>
-\begin{lstlisting}
-\ltjsetparameter{kanjiskip={0pt plus 0.4pt minus 0.4pt},
-                 xkanjiskip={0.25\zw plus 1pt minus 1pt}}
-\end{lstlisting}
+
 %<*en>
-Here \cs{zw} is a internal dimension
-which stores fullwidth of the current Japanese font.
-This \cs{zw} can be used as the unit \texttt{zw} in \pTeX.
+Default setting of \cs{catcode} of Unicode characters are located in
+\begin{description}
+ \item[plain \LuaTeX] \texttt{luatex-unicode-letters.tex}, which is based on \texttt{unicode-letters.tex}
+(for \XeTeX).
+ \item[\LuaLaTeX] now included in \LaTeX\ kernel  as~\texttt{unicode-letters.def}.
+\end{description}
+However, the default setting of \cs{catcode} differs
+between \XeTeX\ and \LuaTeX, by the following reasons:
+\begin{itemize}
+ \item (plain format) \texttt{luatex-unicode-letters.tex} is based on old \texttt{unicode-letters.tex}.
+ \item The latter half of \texttt{unicode-letters.tex}~and~\texttt{unicode-letters.def}
+sets\cs{catcode} of several characters to 11, via setting \cs{XeTeXcharclass}.
+However, this latter half does not exist (plain case), or not executed (\LaTeX~case) in \LuaTeX.
+\end{itemize}
+In other words,
+\begin{description}
+\item[plain \LuaTeX]
+Kanji nor kana characters cannot be used in
+a control word, in the default setting of plain \LuaTeX.
+\item[\LuaLaTeX]
+In recent (2015-10-01 or later) \LuaLaTeX, Kanji and kana characters in a control word is supported (these catcode are 11),
+but not fullwidth alphanumerics and several other characters.
+\end{description}
 
-The value of these parameter can be get by \cs{ltjgetparameter}.
-Note that the result by \cs{ltjgetparameter} is \emph{not} the internal quantities,
-but \emph{a string} (hence \cs{the} cannot be prefixed).
+This would be inconvenient for \pTeX~users to shifting to \LuaTeX-ja,
+since several control words containing Kanji or other fullwidth characters, such as
+\verb+\西暦+~or~\verb+\1年目西暦+ are used in \pTeX.
+Hence, \LuaTeX-ja have a counterpart of \texttt{unicode-letters.tex}
+for \LuaTeX, \emph{to match the \cs{catcode} setting with that of \XeTeX.}
 %</en>
 %<*ja>
-ここで,\cs{zw} は現在の和文フォントの全角幅を表す長さであり,
-\pTeX における長さ単位 \texttt{zw} と同じように使用できる.
+ネイティブにUnicode全部の文字を扱える\XeTeX や\LuaTeX では,
+文字が制御綴内で使用できるかは通常の欧文文字と同じく \cs{catcode}
+で指定することとなる.plain \XeTeX における \cs{catcode} の初期設定は\
+\texttt{unicode-letters.tex} 中に記述されており,plain \LuaTeX ではそれを
+元にした \texttt{luatex-unicode-letters.tex} を用いている.
+\LaTeX では \cs{catcode} の設定はカーネルに \texttt{unicode-letters.def} として統合され.
+このファイルを\XeLaTeX, \LuaLaTeX の両方が用いている.
 
-これらのパラメータの値は以下のように取得できる.
-戻り値は内部値ではなく\emph{文字列}である(\cs{the} は前置できない)ことに注意してほしい:
+だが,\XeTeX における \cs{catcode} の初期設定と
+\LuaTeX におけるそれは一致していない:
+\begin{itemize}
+ \item \texttt{luatex-unicode-letters.tex} の元になった\
+\texttt{unicode-letters.tex} が古い
+ \item \texttt{unicode-letters.tex} 後半部や \texttt{unicode-letters.def} 後半部では
+\cs{XeTeXcharclass} の設定を行なっており,
+それによって漢字や仮名,および全角英数字の \cs{catcode} が11に設定されている.
+しかし,\texttt{luatex-unicode-letters.tex} ではこの「後半部」が
+まるごと省略されており,また\LuaLaTeX でも \texttt{unicode-letters.def} 後半部は実行されな
+       い.
+\end{itemize}
+言い換えると,
+\begin{description}
+ \item[plain \LuaTeX]  漢字や仮名を制御綴内に
+使用することはできない.
+ \item[\LuaLaTeX] 最近の(2015-10-01以降の)
+\LuaLaTeX では漢字や仮名を制御綴内に
+使用することが可能になったが,全角英数字は相変わらず使用できない,
+\end{description}
+これでは \pTeX で使用できた \verb+\1年目西暦+\footnote{科研費\LaTeX で使用されているそうです.}などが使えないこととなり,
+\LuaTeX-jaへの移行で手間が生じる.そのため,\LuaTeX-jaでは
+\texttt{unicode-letters.tex} の後半部にあたる内容を自前でパッチし,
+結果として\textbf{\XeTeX における初期設定と同じになるようにしている.}
 %</ja>
-\begin{LTXexample}
-kanjiskip: \ltjgetparameter{kanjiskip},\\
-xkanjiskip: \ltjgetparameter{xkanjiskip}
-\end{LTXexample}
+
+\begin{table}
+ \centering\small
+%<en>\caption{Difference of the set of non-kanji JIS~X~0208 characters which can be used in a control word}
+%<ja>\caption{制御綴中に使用出来るJIS~X~0208非漢字の違い}
+%<en>\medskip
+\label{tab:kcat-diff}
+\def\D#1#2#3#4{%
+  {\fboxsep0pt\fcolorbox{cyan}{white}%
+  {\large\char"#1#2#3#4}}\ (\texttt{U+#1#2#3#4})} %"
+\leavevmode\hbox to 0pt{\hss\begin{tabular}{cccccc}
+\toprule
+%<en>&\bf row&\bf col.&\bf \pTeX&\bf \upTeX&\bf\LuaTeX-ja\\
+%<ja>&\bf 区&\bf 点&\bf \pTeX&\bf \upTeX&\fontseries{b}\selectfont\LuaTeX-ja\\
+\midrule
+%\D 3000&1&1&N&N&Y\\
+\D 30FB&1&6&N&Y&N\\
+\D 309B&1&11&N&Y&N\\
+\D 309C&1&12&N&Y&N\\
+\D FF40&1&14&N&N&Y\\
+\D FF3E&1&16&N&N&Y\\
+\D FFE3&1&17&N&N&Y\\
+\D FF3F&1&18&N&N&Y\\
+%\D 30FD&1&19&N&Y&Y\\
+%\D 30FE&1&20&N&Y&Y\\
+%\D 309D&1&21&N&Y&Y\\
+%\D 309E&1&22&N&Y&Y\\
+\D 3003&1&23&N&N&Y\\
+\D 4EDD&1&24&N&Y&Y\\
+\D 3005&1&25&N&N&Y\\
+\D 3006&1&26&N&N&Y\\
+\D 3007&1&27&N&N&Y\\
+\D 30FC&1&28&N&Y&Y\\
+\D FF0F&1&31&N&N&Y\\
+\D FF3C&1&32&N&N&Y\\
+\bottomrule
+\end{tabular}\qquad
+\begin{tabular}{cccccc}
+\toprule
+%<en>&\bf row&\bf col.&\bf \pTeX&\bf \upTeX&\bf\LuaTeX-ja\\
+%<ja>&\bf 区&\bf 点&\bf \pTeX&\bf \upTeX&\fontseries{b}\selectfont\LuaTeX-ja\\
+\midrule
+\D FF5C&1&35&N&N&Y\\
+\D FF0B&1&60&N&N&Y\\
+\D FF1D&1&65&N&N&Y\\
+\D FF1C&1&67&N&N&Y\\
+\D FF1E&1&68&N&N&Y\\
+\D FF03&1&84&N&N&Y\\
+\D FF06&1&85&N&N&Y\\
+\D FF0A&1&86&N&N&Y\\
+\D FF20&1&87&N&N&Y\\
+\D 3012&2&9&N&N&Y\\
+\D 3013&2&14&N&N&Y\\
+\D FFE2&2&44&N&N&Y\\
+\D 212B&2&82&N&N&Y\\
+%<en>\multicolumn{3}{c}{$\vphantom{\D 3000}$\hbox{}Greek letters (row 6)}&Y&N&Y\\
+%<en>\multicolumn{3}{c}{$\vphantom{\D 3000}$\hbox{}Cyrillic letters (row 7)}&N&N&Y\\
+%<ja>\multicolumn{3}{c}{$\vphantom{\D 3000}$\hbox{}ギリシャ文字(6区)}&Y&N&Y\\
+%<ja>\multicolumn{3}{c}{$\vphantom{\D 3000}$\hbox{}キリル文字(7区)}&N&N&Y\\
+\bottomrule
+\end{tabular}\hss}\par
+\end{table}
 
 %<*en>
-It may occur that JFM contains the data of ``ideal width of
-\Param{kanjiskip}''
-and/or ``ideal width of \Param{xkanjiskip}''.
-To use these data from JFM, set the value of \Param{kanjiskip} or
-\Param{xkanjiskip} to \cs{maxdimen}
-(these ``ideal width'' cannot be retrived by \cs{ltjgetparameter}).
+\subsection{Non-kanji characters in a control word}
+Because the engine differ, so non-kanji JIS~X~0208 characters
+which can be used in a control word differ in \pTeX, in \upTeX,~and~in \LuaTeX-ja.
+\autoref{tab:kcat-diff} shows the difference.
+Except for four characters ``・'',~``゛'', ``゜'',~``゠'',
+\LuaTeX-ja admits more characters in a control word than \upTeX.
+
+Difference becomes larger, if we consider
+non-kanji JIS~X~0213 characters.
+For the detail, see \url{https://github.com/h-kitagawa/kct}.
 %</en>
 %<*ja>
-JFMは「望ましい\Param{kanjiskip}の値」や
-「望ましい\Param{xkanjiskip}の値」を持っていることがある.
-これらのデータを使うためには,\Param{kanjiskip}や%
-\Param{xkanjiskip}の値を \cs{maxdimen} の値に設定すればよいが,
-\cs{ltjgetparameter} によって取得することはできないので注意が必要である.
+\subsection{制御綴中に使用出来るJIS非漢字の違い}
+
+エンジンが異なるので,\pTeX, \upTeX, \LuaTeX-ja
+において制御綴中に使用可能なJIS~X~0208の文字は異なる.
+異なっているところだけを載せると,\autoref{tab:kcat-diff}のようになる.
+「・」「゛」「゜」「゠」を除けば,\LuaTeX-jaでは\upTeX より多くの文字が
+制御綴に使用可能になっている.
+
+JIS~X~0213の範囲に広げると,差異はさらに大きくなる.
+詳細については例えば \url{https://github.com/h-kitagawa/kct} 中の\
+\texttt{kct-out.pdf} などを参照すること.
 %</ja>
 
-%<en>\subsection{Insertion setting of \Param{xkanjiskip}}
-%<ja>\subsection{\Param{xkanjiskip} の挿入設定}
 
 %<*en>
-It is not desirable that \Param{xkanjiskip} is inserted into every
-boundary between \textbf{JAchar}s and \textbf{ALchar}s. For example,
-\Param{xkanjiskip} should not be inserted after opening parenthesis
-(\textit{e.g.}, compare ``(あ'' and ``(\hskip\ltjgetparameter{xkanjiskip}あ'').
-\LuaTeX-ja can control whether \Param{xkanjiskip} can be inserted
-before/after a character, by changing \Param{jaxspmode} for \textbf{JAchar}s and
-\Param{alxspmode} parameters \textbf{ALchar}s respectively.
+\section{Directions}
+\LuaTeX\ supports four $\Omega$-style directions: \texttt{TLT},~\texttt{TRT}, \texttt{RTT}
+and \texttt{LTL}.
+However, neither directions are not well-suited for typesetting Japanese vertically, hence we
+implemented vertical writing by rotating \texttt{TLT}-box by 90~degrees.
 %</en>
 %<*ja>
-\Param{xkanjiskip}がすべての\textbf{JAchar}と\textbf{ALchar}の境界に
-挿入されるのは望ましいことではない.例えば,\Param{xkanjiskip}は開き括弧の
-後には挿入されるべきではない(「(あ」と「(\hskip\ltjgetparameter{xkanjiskip}あ」を
-比べてみよ).
-\LuaTeX-jaでは\Param{xkanjiskip}をある文字の前/後に挿入するかどうかを,
-\textbf{JAchar}に対しては\Param{jaxspmode}を,\textbf{ALchar}に対しては
-\Param{alxspmode}をそれぞれ変えることで制御することができる.
+\section{縦組}
+\label{sec-direction}
+\LuaTeX 本体でも,$\Omega$・$\aleph$由来の機能として,複数の組方向をサポートしている.
+しかし,\LuaTeX がサポートするのは \texttt{TLT},~\texttt{TRT}, \texttt{RTT},~\texttt{LTL}\
+のみであり,日本語の縦組に使うのは望ましくない\footnote{%
+和文文字だけならば \texttt{RTT} を使えばなんとかなると思うが,
+欧文文字が入ってきた場合はうまくいかず,\texttt{RTR} という組方向が必要になる.
+}.そのため,\LuaTeX-jaでは横組(\texttt{TLT})で組んだボックスを回転させる方式で
+縦組を実装した.
 %</ja>
-\begin{LTXexample}
-\ltjsetparameter{jaxspmode={`あ,preonly}, alxspmode={`\!,postonly}}
-pあq い!う
-\end{LTXexample}
 
-%<*en>
-The second argument \texttt{preonly} means that the insertion of
-\Param{xkanjiskip} is allowed before this character, but not after.
-the other possible values are \texttt{postonly}, \texttt{allow}, and \texttt{inhibit}.
-%</en>
-%<*ja>
-2つ目の引数の \texttt{preonly}は「\Param{xkanjiskip}の挿入はこの文字の
-前でのみ許され,後では許さない」ことを意味する.他に指定可能な値は
-\texttt{postonly}, \texttt{allow}, \texttt{inhibit}である.
-%</ja>
-
-%<*en>
-\Param{jaxspmode} and \Param{alxspmode} use a same table to store the parameters
-on the current version. Therefore, line~1 in the code above can be rewritten
-as follows:
-%</en>
-%<*ja>
-なお,現行の
-仕様では,\Param{jaxspmode}, \Param{alxspmode}はテーブルを共有しており,
-上のコードの1行目を次のように変えても同じことになる:
-%</ja>
-\begin{lstlisting}
-\ltjsetparameter{alxspmode={`あ,preonly}, jaxspmode={`\!,postonly}}
-\end{lstlisting}
-%<*en>
-One can use also numbers to specify these two parameters (see Subsection~\ref{ssec-param}).
-%</en>
+%<ja>\subsection{サポートする組方向}
+\begin{table}[t]
+%<ja>\caption{\LuaTeX-ja のサポートする組方向}
+%<en>\caption{Directions supported by \LuaTeX-ja}
+%<en>\medskip
+\label{tab-dir}
+\centering\small
+\def\obox#1{%
+  \setbox0=\hbox{\yoko\hbox{#1%
+  \large\ltjsetparameter{talbaselineshift=0pt}%
+  \vrule height 25pt width 0.4pt depth 15pt\kern-.2pt%
+  \raise25pt\hbox to 0pt{\hss\composite{*r^@{>>}}\hss}%
+  \raise-15pt\hbox to 0pt{\hss\composite{*l^@{>|}}\hss}\kern.2pt%
+  \vrule height.2pt depth.2pt width 60pt\hbox to 0pt{\hss\composite{*d^@{>}}\hss}\kern-60pt
+  \hbox to 60pt{\,銀は、Ag\hss}}}%
+  \raise\dimexpr 0.5\ltjgetdp0-0.5\ltjgetht0\box0%
+}
 %<*ja>
-また,これら2パラメータには数値で値を指定することもできる(\ref{ssec-param}節を参照).
-%</ja>
+\begin{tabular}{>{\bfseries}lcccc}
+\toprule
+&横組&縦組 &「dtou方向」&「utod方向」\\
+\midrule
+命令&\cs{yoko}&\cs{tate}&\cs{dtou}&\cs{utod}\\
+字送り方向&水平右向き(→)&垂直下向き(↓)&垂直上向き(↑)&垂直下向き(↓)\\
+行送り方向&垂直下向き(↓)&水平左向き(←)&水平右向き(→)&水平左向き(←)\\
+使用する和文フォント&横組用(\cs{jfont})&縦組用(\cs{tfont})&
+\multicolumn{2}{c}{%
+  横組用(\cs{jfont})の$90^\circ$回転}\\[\smallskipamount]
+組版例\null $^*$ &\obox{\yoko}&\obox{\tate}&\obox{\dtou}&\obox{\utod}\\
+\noalign{\medskip}
+\bottomrule
+\end{tabular}
 
-%<*en>
-If you want to enable/disable all insertions of \Param{kanjiskip} and
-\Param{xkanjiskip}, set \Param{autospacing} and \Param{autoxspacing}
-parameters to \texttt{true}/\texttt{false}, respectively.
-%</en>
-%<*ja>
-もし全ての\Param{kanjiskip}と\Param{xkanjiskip}の挿入を有効化/無効化
-したければ,それぞれ\Param{autospacing}と\Param{autoxspacing}を
-\texttt{true}/\texttt{false}に設定すればよい.
+\medskip\raggedright
+\def\R#1{%
+  \raise0.38\zw\hbox{%
+    \vrule height.2pt  depth.2pt width2\zw%
+    \hbox to 0pt{\hss\composite{*d^@{#1}}\hss}%
+  }%
+}
+$^*$\ 幅(width),高さ(height),深さ(depth)の増加方向を,
+それぞれ「\R{>}」,「\R{>>}」,「\R{>|}」で表している.
+\raggedright
 %</ja>
 
-%<en>\subsection{Shifting the baseline}
-%<ja>\subsection{ベースラインの移動}
 %<*en>
-To make a match between a Japanese font and an alphabetic font, sometimes
-shifting of the baseline of one of the pair is needed. In \pTeX, this is achieved
-by setting \cs{ybaselineshift} (or \cs{tbaselineshift}) to a non-zero length (the
-baseline of \textbf{ALchar} is shifted below). However, for documents
-whose main language is not Japanese, it is good to shift the baseline of
-Japanese fonts, but not that of alphabetic fonts.
-Because of this, \LuaTeX-ja can independently set the shifting amount
-of the baseline of alphabetic fonts and that of Japanese fonts.
-\begin{center}
- \small
-\begin{tabular}{>{\bfseries}lcc}
+\begin{tabular}{>{\bfseries}lcccc}
 \toprule
-&\bfseries Horizontal writing (\emph{yoko} direction) etc.
-&\bfseries Vertical writing(\emph{tate} direction)\\
+&horizontal (\emph{yoko}~direction)&vertical (\emph{tate}~direction)&%
+  \emph{dtou} direction&\emph{utod} direction\\
 \midrule
-Alphabetic fonts&\Param{yalbaselineshift}
-     parameter&\Param{talbaselineshift} parameter\\
-Japanese fonts&\Param{yjabaselineshift}
-     parameter&\Param{tjabaselineshift} parameter\\
+Commands&\cs{yoko}&\cs{tate}&\cs{dtou}&\cs{utod}\\
+Beginning of the page&Top&Right&Left&Right\\
+Beginning of the line&Left&Top&Bottom&Top\\
+Used Japanese font&horizontal (\cs{jfont})&vertical (\cs{tfont})&
+\multicolumn{2}{c}{%
+  horizontal ($90^\circ$ rotated)}\\[\smallskipamount]
+Example&\obox{\yoko}&\obox{\tate}&\obox{\dtou}&\obox{\utod}\\
+\noalign{\medskip}
+(Notation used in $\Omega$)&TLT&RTR, RTT&LBL&RTR\\
 \bottomrule
 \end{tabular}
-\end{center}
+
+\medskip\raggedright
+\def\R#1{%
+  \raise0.38\zw\hbox{%
+    \vrule height.2pt  depth.2pt width2\zw%
+    \hbox to 0pt{\hss\composite{*d^@{#1}}\hss}%
+  }%
+}
+\raggedright
 %</en>
-%<*ja>
-和文フォントと欧文フォントを合わせるためには,時々どちらかのベースラインの移動が
-必要になる.\pTeX ではこれは \cs{ybaselineshift}(または\cs{tbaselineshift})を設定することで
-なされていた(\textbf{ALchar}のベースラインがその分だけ下がる).しかし,日本語が主ではない
-文書に対しては,欧文フォントではなく和文フォントのベースラインを移動した方がよい.
-このため,\LuaTeX-jaでは欧文フォントのベースラインのシフト量
-と和文フォントのベースラインのシフト量を独立に設定できるようになっている.
-\begin{center}
- \small
-\begin{tabular}{>{\bfseries}lcc}
-\toprule
-&\bfseries 横組など&\bfseries 縦組\\
-\midrule
-欧文フォントのシフト量&\Param{yalbaselineshift}
-     parameter&\Param{talbaselineshift} parameter\\
-和文フォントのシフト量&\Param{yjabaselineshift}
-     parameter&\Param{tjabaselineshift} parameter\\
-\bottomrule
-\end{tabular}
-\end{center}
-%</ja>
+\end{table}
 
 %<*en>
-Here the horizontal line in the below example is the baseline of a line.
+\LuaTeX-ja supports four directions, as shown in \autoref{tab-dir}.
+The second column (\emph{yoko} direction) is just horizontal writing,
+and the third column (\emph{tate} direction) is vertical writing.
+The fourth column (\emph{dtou} direction) is actually a hidden feature of \pTeX.
+We implemented this for debugging purpose.
+The fifth column (\emph{utod} direction) corresponds the ``\texttt{tate (math) direction}'' of \pTeX.
+
+Directions can be changed by \cs{yoko},~\cs{tate}, \cs{dtou},~\cs{utod},
+only when the current list is null. Also, the direction of a math formula is changed to
+\emph{utod}, when the direction outside the math formula is \emph{tate} (vertical writing).
 %</en>
+
 %<*ja>
-下の例において引かれている水平線がベースラインである.
+\LuaTeX-jaがサポートする組方向は\autoref{tab-dir}に示す4つである.
+4列目の \cs{dtou} は聞き慣れない命令だと思うが,
+実は\pTeX に同名の命令が(ドキュメントには書かれていないが)存在する.
+Down-TO-Upの意味なのだろう.\cs{dtou} を使用する機会はないだろうが,
+\LuaTeX-jaではデバッグ用に実装している.
+5列目の \cs{utod} は,\pTeX で言う「縦数式ディレクション」に相当するものである.
+
+組方向は,\cs{yoko},~\cs{tate}, \cs{dtou},~\cs{utod} をそれぞれ使用することで,
+現在作成中のリストやボックスが空の時にのみ変更可能である.
+また,縦組中の数式内のボックスは\pTeX と同じように組方向が \cs{utod} となる.
 %</ja>
+
+%<*en>
+\subsection{Boxes in different direction}
+
+As in \pTeX, one can use boxes of different direction in one document.
+The below is an example.
 \begin{LTXexample}
-\vrule width 150pt height 0.2pt depth 0.2pt \hskip-120pt
-\ltjsetparameter{yjabaselineshift=0pt, yalbaselineshift=0pt}abcあいう
-\ltjsetparameter{yjabaselineshift=5pt, yalbaselineshift=2pt}abcあいう
+ここは横組%     yoko
+\hbox{\tate %   tate
+  \hbox{縦組}%  tate
+  の中に
+  \hbox{\yoko 横組の内容}% yoko
+  を挿入する
+}
+また横組に戻る% yoko
 \end{LTXexample}
 
-%<*en>
-There is an interesting side-effect: characters in different size can be
-vertically aligned center in a line, by setting two parameters appropriately.
-The following is an example (beware the value is not well tuned):
+\autoref{tab-diffdir} shows how a box is arranged when
+the direction  inside the box and that outside the box differ.
 %</en>
 %<*ja>
-この機能には面白い使い方がある:2つのパラメータを適切に設定することで,サイズの
-異なる文字を中心線に揃えることができる.
-以下は一つの例である(値はあまり調整されていないことに注意):
-%</ja>
-\begin{LTXexample}[width=0.4\textwidth]
-\vrule width 150pt height4.417pt depth-4.217pt%
-\kern-150pt
-\large xyz漢字
-{\scriptsize
-  \ltjsetparameter{yjabaselineshift=-1.757pt,
-    yalbaselineshift=-1.757pt}
-  漢字xyzあいう
-}あいうabc
-\end{LTXexample}
+\subsection{異方向のボックス}
 
-%<*en>
-Note that setting positive \Param{yalbaselineshift}~or~\Param{talbaselineshift}
-parameters does not increase the depth of one-letter \emph{syllable} $p$ of \textbf{Alchar}, if
-its left-protrusion~(\cs{lpcode}) and right-protrusion~(\cs{rpcode}) are both non-zero.
-This is because
-\begin{itemize}
-\item These two parameters are implemented by setting \texttt{yoffset} field of a
-glyph node, and this does not increase the depth of the glyph.
-\item To cope with the above situation, \LuaTeX-ja automatically supplies
-a rule in every syllable.
-\item However, we cannot use this ``supplying a rule'' method if a syllable comprises just
-      one letter whose \cs{lpcode}~and~\cs{rpcode} are both non-zero.
-\end{itemize}
+縦組の中に「42」などの2桁以上の算用数字を横組で組むなど,
+異なる組方向を混在させることがしばしば行われる.
+組方向の混在も\pTeX と同じようにできる:
+\begin{LTXexample}
+ここは横組%     yoko
+\hbox{\tate %   tate
+  \hbox{縦組}%  tate
+  の中に
+  \hbox{\yoko 横組の内容}% yoko
+  を挿入する
+}
+また横組に戻る% yoko
+\end{LTXexample}
 
-This problem does not apply for \Param{yjabaselineshift}~nor~\Param{tjabaselineshift},
-becuse a \emph{JAchar} is encapsulated by a horizontal box if needed.
-%</en>
-%<*ja>
-なお,以下の場合には1文字の\textbf{ALchar}からなる「音節」の深さは増加しないことに注意.
-\begin{itemize}
- \item \Param{yalbaselineshift},~\Param{talbaselineshift}パラメータが正になっている.
- \item 「音節」を構成する唯一の文字$p$の
-左余白への突出量(\cs{lpcode}),右余白への突出量(\cs{rpcode})がどちらも非零である.
-\end{itemize}
-\emph{JAchar}は必要に応じて1文字ずつボックスにカプセル化されるため,
-\Param{yjabaselineshift},~\Param{tjabaselineshift}パラメータについてはこのような問題は起こらない.
-%</ja>
-
-%<*ja>
-\paragraph{数式における挙動:\pTeX との違い}
-\textbf{ALchar}のベースラインを補正する\Param{yalbaselineshift}, \Param{talbaselineshift}パラメータは
-ほぼ\pTeX における \cs{ybaselineshift}, \cs{tbaselineshift} に対応しているものであるが,
-数式中の挙動は異なっているので注意が必要である.
-例えば,\autoref{tab:math_bsa}のように,数式中に明示的に現れた \cs{hbox},~\cs{vbox} は,横組において
-\begin{itemize}
- \item 2015年以前の\pTeX では,ボックス全体が \cs{ybaselineshift} だとシフトされるので,
- \autoref{tab:math_bsa}中の``い''のように,ボックス中の和文文字は
- \ \cs{ybaselineshift} だけシフトされ,一方,``for all''のように,
- ボックス内の欧文文字は2重にシフトされることになる.
- \item 一方,\LuaTeX-jaではそのようなことはおこらず,
- 数式中に明示的に現れた \cs{hbox},~\cs{vbox} はシフトしない.そのため,
- \autoref{tab:math_bsa}中の``い''も``for all''も,それぞれ本文中に
- 書かれたときと同じ上下位置に組まれる.
-
- なお,\TeX~Live~2016以降の\pTeX では改修がなされ,\LuaTeX-jaと
- 近い挙動になるようにしているが,数式中に直に書かれた``あ''のベースラインについては
- まだ違いが見られる.
-\end{itemize}
-
-なお,20170401.0版以降の\LuaTeX-jaでは,\cs{vcenter} によるボックスには
-全体が\Param{yalbaselineshift}, \Param{talbaselineshift} パラメータが反映されるようにしている.
-その方が結果が自然であることによる変更なのだが,結果的に\cs{vcenter} については\pTeX と同じ挙動となった.
-
-\begin{table}
-\small\centering
-\caption{数式関係のベースライン補正($\Param{yalbaselineshift}=10\,\textrm{pt}$)}
-\label{tab:math_bsa}
-\newdimen\origbaselineskip
-\origbaselineskip=\baselineskip
-\begin{tabular}{lp{30\zw}}
-\toprule
-\emph{入力}&\vspace*{\dimexpr-\origbaselineskip-\smallskipamount}
-\begin{lstlisting}
-数式abc: $あa\hbox{い}$, $\int_0^x t\,dt=x^2/2$,
-$\Phi\vdash F(x)\ \hbox{for all}\ x\in A$
-\end{lstlisting}\\
-\noalign{\vskip-\origbaselineskip}
-\midrule
-\emph{\pTeX~(--2015)}&
-{\ltjsetparameter{yalbaselineshift=10pt}%
-数式abc: $\lower10pt\hbox{あ}a\lower10pt\hbox{い}$, $\int_0^x t\,dt=x^2/2$,
-$\Phi\vdash F(x)\ \lower10pt\hbox{for all}\ x\in A$
-\par}\\\noalign{\vskip-\origbaselineskip}\midrule
-\emph{\pTeX~(2016--)}&
-{\ltjsetparameter{yalbaselineshift=10pt}%
-数式abc: $\lower10pt\hbox{あ}a\hbox{い}$, $\int_0^x t\,dt=x^2/2$,
-$\Phi\vdash F(x)\ \hbox{for all}\ x\in A$
-\par}\\\noalign{\vskip-\origbaselineskip}\midrule
-\emph{\LuaTeX-ja}&
-{\ltjsetparameter{yalbaselineshift=10pt}%
-数式abc: $あa\hbox{い}$, $\int_0^x t\,dt=x^2/2$,
-$\Phi\vdash F(x)\ \hbox{for all}\ x\in A$
-\par}\\
-\noalign{\vskip-\origbaselineskip}
-\bottomrule
-\end{tabular}
-\end{table}
-%</ja>
-
-%<*en>
-\subsection{\emph{kinsoku} parameters and OpenType features}
-Among parameters which related to Japanese word-wrapping process (\emph{kinsoku shori}),
-\begin{quote}
- \Param{jaxspmode},~\Param{alxspmode}, \Param{prebreakpenalty},
- \Param{postbreakpenalty}~and~\Param{kcatcode}
-\end{quote}
-are stored by each character codes.
-
-OpenType font features are ignored in these parameters.
-For example, a fullwidth katakana ``ア'' on line~10 in the below input is replaced to
-its halfwidth variant ``ア'', by \verb+hwid+ feature.
-However, the penalty inserted after it is 10 which is the \Param{postbreakpenalty} of
-``ア'', not 20.
-%</en>
-%<*ja>
-\newpage
-\subsection{禁則処理関連パラメータとOpenTypeのfont feature}
-禁則処理や \Param{kanjiskip}, \Param{xkanjiskip} の挿入に関連したパラメータのうち
-\begin{quote}
- \Param{jaxspmode},~\Param{alxspmode}, \Param{prebreakpenalty},
- \Param{postbreakpenalty}, \Param{kcatcode}
-\end{quote}
-は,文字コードごとに設定する量である.
-
-\Pkg{fontspec}パッケージを使う(\ref{ssec-fontspec}節)場合など,
-各種のOpenType featureを適用することもあると思うが,前段落に述べたパラメータ類は,
-\emph{OpenType featureの適用前の文字コードによって適用される.}
-例えば,以下の例において10行目の「ア」は,\verb+hwid+ featureの適用により半角カタカナの「ア」
-に置き換わる.しかし,その直後に挿入される \Param{postbreakpenalty}は,置換前の「ア」に対する値10である.
-%</ja>
-
-\begin{LTXexample}[width=0.2\textwidth]
-\ltjsetparameter{postbreakpenalty={`ア, 10}}
-\ltjsetparameter{postbreakpenalty={`ア, 20}}
-
-\newcommand\showpostpena[1]{%
-  \leavevmode\setbox0=\hbox{#1\hbox{}}%
-  \unhbox0\setbox0=\lastbox\the\lastpenalty}
-
-\showpostpena{ア},
-\showpostpena{ア},
-{\addjfontfeatures{CharacterWidth=Half}\showpostpena{ア}}
-\end{LTXexample}
-
-\clearpage
-%<en>\part{Reference}
-%<ja>\part{リファレンス}
-\label{part-ref}
-\suppressfloats[t]
-%<*ja>
-\section{\LuaTeX-jaにおける \cs{catcode}}
-\label{sec-catcode}
-\subsection{予備知識:\pTeX と\upTeX における \cs{kcatcode}}
-\pTeX,\upTeX においては,和文文字が制御綴内で利用できるかどうか
-は \cs{kcatcode} の値によって決定されるのであった.
-詳細は\autoref{tab:kcat}を参照されたい.
-%</ja>
-%<*en>
-\section{\cs{catcode} in \LuaTeX-ja}
-\label{sec-catcode}
-\subsection{Preliminaries: \cs{kcatcode} in \pTeX\ and \upTeX}
-In \pTeX~and~\upTeX, the value of \cs{kcatcode} determines
-whether a Japanese character can be used in a control word.
-For the detail, see \autoref{tab:kcat}.
-%</en>
-
-\begin{table}[t]
-\small
-\caption{\cs{kcatcode} in \upTeX}
-\label{tab:kcat}
-%<en>\medskip
-
-\noindent\hfill
-\begin{tabular}{ccccc}
-\toprule
-\bfseries \cs{kcatcode}&
-%<*en>
-\bfseries meaning&
-\bfseries control word&
-\bfseries widow penalty&
-\bfseries linebreak\\
-%</en>
-%<*ja>
-\bfseries 意図&
-\bfseries 制御綴中に使用&
-\bfseries 文字ウィドウ処理&
-\bfseries 直後での改行\\
-%</ja>
-\midrule
-15&non-cjk&\multicolumn{3}{c}{(treated as usual \LaTeX)}\\
-16&kanji&Y&Y&ignored\\
-17&kana&Y&Y&ignored\\
-18&other&N&N&ignored\\
-19&hangul&Y&Y&space\\
-\bottomrule
-\end{tabular}\hfill\null
-
-\medskip
-
-%<*ja>
-文字ウィドウ処理:「漢字が一文字だけ次の行に行くのを防ぐ」
-\cs{jcharwidowpenalty} が,
-その文字の直前に挿入されうるか否か,を示す.
-%</ja>
-\end{table}
-
-%<*en>
-\cs{kcatcode} can be set by a row of JIS~X~0208 in \pTeX,
-and generally by a Unicode block\footnote{%
-  \upTeX\ divides \texttt{U+FF00}--\texttt{U+FFEF} (Halfwidth and Fullwidth Forms)
-  into three subblocks, and \cs{kcatcode} can be set by a subblock.
-}
-in \upTeX. So characters which can be used in a control word
-slightly differ between \pTeX~and~\upTeX.
-%</en>
-%<*ja>
-\pTeX では \cs{kcatcode} はJIS~X~0208の区単位,
-\upTeX では概ねUnicodeブロック単位\footnote{%
-  \texttt{U+FF00}--\texttt{U+FFEF} (Halfwidth and Fullwidth Forms)は
-  「全角英数字」「半角カナ」「その他」と3つに分割されており,
-  それぞれ別々に \cs{kcatcode} が指定できるようになっている.
-}で設定可能になっている.そのため,\pTeX と\upTeX の初期状態では
-制御綴内で使用可能な文字が微妙に異なっている.
-%</ja>
-
-%<*en>
-\subsection{Case of \LuaTeX-ja}
-The role of \cs{kcatcode} in \pTeX~and~\upTeX\ can be
-divided into the following four kinds,
-and \LuaTeX-ja can control these four kinds separately:
-\begin{itemize}
- \item
-\emph{Distinction between \textbf{JAchar} or \textbf{ALchar}}
-is controlled by the character range, see Subsection~\ref{ssec-setrange}.
- \item
-\emph{Whether the character can be used in a control word}
-is controlled by setting \cs{catcode} to 11~(enabled) or 12~(disabled), as usual.
- \item
-\emph{Whether \Param{jcharwidowpenalty} can be inserted before the character}
-is controlled by the lowermost bit of the \Param{kcatcode} parameter.
- \item
-\emph{Linebreak after a \textbf{JAchar}} does not produce a space.
-\end{itemize}
-%</en>
-%<*ja>
-\subsection{\LuaTeX-jaの場合}
-\LuaTeX-jaでは,従来の\pTeX・\upTeX における \cs{kcatcode} の役割を
-分割している:
-\begin{description}
- \item[欧文/和文の区別 (\upTeX)]
-\cs{ltjdefcharrange} と\textsf{jacharrange}パラメータ(\ref{ssec-setrange}節)
- \item[制御綴中に使用可か]
-\LuaTeX 自身の \cs{catcode} でよい
- \item[\Param{jcharwidowpenalty}が挿入可か]
-\Param{kcatcode}パラメータの最下位ビット
- \item[直後の改行]
-日本語しか想定していないので,\textbf{JAchar}直後の改行で半角スペースが挿入されることはない.
-\end{description}
-%</ja>
-
-%<*en>
-Default setting of \cs{catcode} of Unicode characters are located in
-\begin{description}
- \item[plain \LuaTeX] \texttt{luatex-unicode-letters.tex}, which is based on \texttt{unicode-letters.tex}
-(for \XeTeX).
- \item[\LuaLaTeX] now included in \LaTeX\ kernel  as~\texttt{unicode-letters.def}.
-\end{description}
-However, the default setting of \cs{catcode} differs
-between \XeTeX\ and \LuaTeX, by the following reasons:
-\begin{itemize}
- \item (plain format) \texttt{luatex-unicode-letters.tex} is based on old \texttt{unicode-letters.tex}.
- \item The latter half of \texttt{unicode-letters.tex}~and~\texttt{unicode-letters.def}
-sets\cs{catcode} of several characters to 11, via setting \cs{XeTeXcharclass}.
-However, this latter half does not exist (plain case), or not executed (\LaTeX~case) in \LuaTeX.
-\end{itemize}
-In other words,
-\begin{description}
-\item[plain \LuaTeX]
-Kanji nor kana characters cannot be used in
-a control word, in the default setting of plain \LuaTeX.
-\item[\LuaLaTeX]
-In recent (2015-10-01 or later) \LuaLaTeX, Kanji and kana characters in a control word is supported (these catcode are 11),
-but not fullwidth alphanumerics and several other characters.
-\end{description}
-
-This would be inconvenient for \pTeX~users to shifting to \LuaTeX-ja,
-since several control words containing Kanji or other fullwidth characters, such as
-\verb+\西暦+~or~\verb+\1年目西暦+ are used in \pTeX.
-Hence, \LuaTeX-ja have a counterpart of \texttt{unicode-letters.tex}
-for \LuaTeX, \emph{to match the \cs{catcode} setting with that of \XeTeX.}
-%</en>
-%<*ja>
-ネイティブにUnicode全部の文字を扱える\XeTeX や\LuaTeX では,
-文字が制御綴内で使用できるかは通常の欧文文字と同じく \cs{catcode}
-で指定することとなる.plain \XeTeX における \cs{catcode} の初期設定は\
-\texttt{unicode-letters.tex} 中に記述されており,plain \LuaTeX ではそれを
-元にした \texttt{luatex-unicode-letters.tex} を用いている.
-\LaTeX では \cs{catcode} の設定はカーネルに \texttt{unicode-letters.def} として統合され.
-このファイルを\XeLaTeX, \LuaLaTeX の両方が用いている.
-
-だが,\XeTeX における \cs{catcode} の初期設定と
-\LuaTeX におけるそれは一致していない:
-\begin{itemize}
- \item \texttt{luatex-unicode-letters.tex} の元になった\
-\texttt{unicode-letters.tex} が古い
- \item \texttt{unicode-letters.tex} 後半部や \texttt{unicode-letters.def} 後半部では
-\cs{XeTeXcharclass} の設定を行なっており,
-それによって漢字や仮名,および全角英数字の \cs{catcode} が11に設定されている.
-しかし,\texttt{luatex-unicode-letters.tex} ではこの「後半部」が
-まるごと省略されており,また\LuaLaTeX でも \texttt{unicode-letters.def} 後半部は実行されな
-       い.
-\end{itemize}
-言い換えると,
-\begin{description}
- \item[plain \LuaTeX]  漢字や仮名を制御綴内に
-使用することはできない.
- \item[\LuaLaTeX] 最近の(2015-10-01以降の)
-\LuaLaTeX では漢字や仮名を制御綴内に
-使用することが可能になったが,全角英数字は相変わらず使用できない,
-\end{description}
-これでは \pTeX で使用できた \verb+\1年目西暦+\footnote{科研費\LaTeX で使用されているそうです.}などが使えないこととなり,
-\LuaTeX-jaへの移行で手間が生じる.そのため,\LuaTeX-jaでは
-\texttt{unicode-letters.tex} の後半部にあたる内容を自前でパッチし,
-結果として\textbf{\XeTeX における初期設定と同じになるようにしている.}
-%</ja>
-
-\begin{table}
- \centering\small
-%<en>\caption{Difference of the set of non-kanji JIS~X~0208 characters which can be used in a control word}
-%<ja>\caption{制御綴中に使用出来るJIS~X~0208非漢字の違い}
-%<en>\medskip
-\label{tab:kcat-diff}
-\def\D#1#2#3#4{%
-  {\fboxsep0pt\fcolorbox{cyan}{white}%
-  {\large\char"#1#2#3#4}}\ (\texttt{U+#1#2#3#4})} %"
-\leavevmode\hbox to 0pt{\hss\begin{tabular}{cccccc}
-\toprule
-%<en>&\bf row&\bf col.&\bf \pTeX&\bf \upTeX&\bf\LuaTeX-ja\\
-%<ja>&\bf 区&\bf 点&\bf \pTeX&\bf \upTeX&\fontseries{b}\selectfont\LuaTeX-ja\\
-\midrule
-%\D 3000&1&1&N&N&Y\\
-\D 30FB&1&6&N&Y&N\\
-\D 309B&1&11&N&Y&N\\
-\D 309C&1&12&N&Y&N\\
-\D FF40&1&14&N&N&Y\\
-\D FF3E&1&16&N&N&Y\\
-\D FFE3&1&17&N&N&Y\\
-\D FF3F&1&18&N&N&Y\\
-%\D 30FD&1&19&N&Y&Y\\
-%\D 30FE&1&20&N&Y&Y\\
-%\D 309D&1&21&N&Y&Y\\
-%\D 309E&1&22&N&Y&Y\\
-\D 3003&1&23&N&N&Y\\
-\D 4EDD&1&24&N&Y&Y\\
-\D 3005&1&25&N&N&Y\\
-\D 3006&1&26&N&N&Y\\
-\D 3007&1&27&N&N&Y\\
-\D 30FC&1&28&N&Y&Y\\
-\D FF0F&1&31&N&N&Y\\
-\D FF3C&1&32&N&N&Y\\
-\bottomrule
-\end{tabular}\qquad
-\begin{tabular}{cccccc}
-\toprule
-%<en>&\bf row&\bf col.&\bf \pTeX&\bf \upTeX&\bf\LuaTeX-ja\\
-%<ja>&\bf 区&\bf 点&\bf \pTeX&\bf \upTeX&\fontseries{b}\selectfont\LuaTeX-ja\\
-\midrule
-\D FF5C&1&35&N&N&Y\\
-\D FF0B&1&60&N&N&Y\\
-\D FF1D&1&65&N&N&Y\\
-\D FF1C&1&67&N&N&Y\\
-\D FF1E&1&68&N&N&Y\\
-\D FF03&1&84&N&N&Y\\
-\D FF06&1&85&N&N&Y\\
-\D FF0A&1&86&N&N&Y\\
-\D FF20&1&87&N&N&Y\\
-\D 3012&2&9&N&N&Y\\
-\D 3013&2&14&N&N&Y\\
-\D FFE2&2&44&N&N&Y\\
-\D 212B&2&82&N&N&Y\\
-%<en>\multicolumn{3}{c}{$\vphantom{\D 3000}$\hbox{}Greek letters (row 6)}&Y&N&Y\\
-%<en>\multicolumn{3}{c}{$\vphantom{\D 3000}$\hbox{}Cyrillic letters (row 7)}&N&N&Y\\
-%<ja>\multicolumn{3}{c}{$\vphantom{\D 3000}$\hbox{}ギリシャ文字(6区)}&Y&N&Y\\
-%<ja>\multicolumn{3}{c}{$\vphantom{\D 3000}$\hbox{}キリル文字(7区)}&N&N&Y\\
-\bottomrule
-\end{tabular}\hss}\par
-\end{table}
-
-%<*en>
-\subsection{Non-kanji characters in a control word}
-Because the engine differ, so non-kanji JIS~X~0208 characters
-which can be used in a control word differ in \pTeX, in \upTeX,~and~in \LuaTeX-ja.
-\autoref{tab:kcat-diff} shows the difference.
-Except for four characters ``・'',~``゛'', ``゜'',~``゠'',
-\LuaTeX-ja admits more characters in a control word than \upTeX.
-
-Difference becomes larger, if we consider
-non-kanji JIS~X~0213 characters.
-For the detail, see \url{https://github.com/h-kitagawa/kct}.
-%</en>
-%<*ja>
-\subsection{制御綴中に使用出来るJIS非漢字の違い}
-
-エンジンが異なるので,\pTeX, \upTeX, \LuaTeX-ja
-において制御綴中に使用可能なJIS~X~0208の文字は異なる.
-異なっているところだけを載せると,\autoref{tab:kcat-diff}のようになる.
-「・」「゛」「゜」「゠」を除けば,\LuaTeX-jaでは\upTeX より多くの文字が
-制御綴に使用可能になっている.
-
-JIS~X~0213の範囲に広げると,差異はさらに大きくなる.
-詳細については例えば \url{https://github.com/h-kitagawa/kct} 中の\
-\texttt{kct-out.pdf} などを参照すること.
-%</ja>
-
-
-%<*en>
-\section{Directions}
-\LuaTeX\ supports four $\Omega$-style directions: \texttt{TLT},~\texttt{TRT}, \texttt{RTT}
-and \texttt{LTL}.
-However, neither directions are not well-suited for typesetting Japanese vertically, hence we
-implemented vertical writing by rotating \texttt{TLT}-box by 90~degrees.
-%</en>
-%<*ja>
-\section{縦組}
-\label{sec-direction}
-\LuaTeX 本体でも,$\Omega$・$\aleph$由来の機能として,複数の組方向をサポートしている.
-しかし,\LuaTeX がサポートするのは \texttt{TLT},~\texttt{TRT}, \texttt{RTT},~\texttt{LTL}\
-のみであり,日本語の縦組に使うのは望ましくない\footnote{%
-和文文字だけならば \texttt{RTT} を使えばなんとかなると思うが,
-欧文文字が入ってきた場合はうまくいかず,\texttt{RTR} という組方向が必要になる.
-}.そのため,\LuaTeX-jaでは横組(\texttt{TLT})で組んだボックスを回転させる方式で
-縦組を実装した.
-%</ja>
-
-%<ja>\subsection{サポートする組方向}
-\begin{table}[t]
-%<ja>\caption{\LuaTeX-ja のサポートする組方向}
-%<en>\caption{Directions supported by \LuaTeX-ja}
-%<en>\medskip
-\label{tab-dir}
-\centering\small
-\def\obox#1{%
-  \setbox0=\hbox{\yoko\hbox{#1%
-  \large\ltjsetparameter{talbaselineshift=0pt}%
-  \vrule height 25pt width 0.4pt depth 15pt\kern-.2pt%
-  \raise25pt\hbox to 0pt{\hss\composite{*r^@{>>}}\hss}%
-  \raise-15pt\hbox to 0pt{\hss\composite{*l^@{>|}}\hss}\kern.2pt%
-  \vrule height.2pt depth.2pt width 60pt\hbox to 0pt{\hss\composite{*d^@{>}}\hss}\kern-60pt
-  \hbox to 60pt{\,銀は、Ag\hss}}}%
-  \raise\dimexpr 0.5\ltjgetdp0-0.5\ltjgetht0\box0%
-}
-%<*ja>
-\begin{tabular}{>{\bfseries}lcccc}
-\toprule
-&横組&縦組 &「dtou方向」&「utod方向」\\
-\midrule
-命令&\cs{yoko}&\cs{tate}&\cs{dtou}&\cs{utod}\\
-字送り方向&水平右向き(→)&垂直下向き(↓)&垂直上向き(↑)&垂直下向き(↓)\\
-行送り方向&垂直下向き(↓)&水平左向き(←)&水平右向き(→)&水平左向き(←)\\
-使用する和文フォント&横組用(\cs{jfont})&縦組用(\cs{tfont})&
-\multicolumn{2}{c}{%
-  横組用(\cs{jfont})の$90^\circ$回転}\\[\smallskipamount]
-組版例\null $^*$ &\obox{\yoko}&\obox{\tate}&\obox{\dtou}&\obox{\utod}\\
-\noalign{\medskip}
-\bottomrule
-\end{tabular}
-
-\medskip\raggedright
-\def\R#1{%
-  \raise0.38\zw\hbox{%
-    \vrule height.2pt  depth.2pt width2\zw%
-    \hbox to 0pt{\hss\composite{*d^@{#1}}\hss}%
-  }%
-}
-$^*$\ 幅(width),高さ(height),深さ(depth)の増加方向を,
-それぞれ「\R{>}」,「\R{>>}」,「\R{>|}」で表している.
-\raggedright
-%</ja>
-
-%<*en>
-\begin{tabular}{>{\bfseries}lcccc}
-\toprule
-&horizontal (\emph{yoko}~direction)&vertical (\emph{tate}~direction)&%
-  \emph{dtou} direction&\emph{utod} direction\\
-\midrule
-Commands&\cs{yoko}&\cs{tate}&\cs{dtou}&\cs{utod}\\
-Beginning of the page&Top&Right&Left&Right\\
-Beginning of the line&Left&Top&Bottom&Top\\
-Used Japanese font&horizontal (\cs{jfont})&vertical (\cs{tfont})&
-\multicolumn{2}{c}{%
-  horizontal ($90^\circ$ rotated)}\\[\smallskipamount]
-Example&\obox{\yoko}&\obox{\tate}&\obox{\dtou}&\obox{\utod}\\
-\noalign{\medskip}
-(Notation used in $\Omega$)&TLT&RTR, RTT&LBL&RTR\\
-\bottomrule
-\end{tabular}
-
-\medskip\raggedright
-\def\R#1{%
-  \raise0.38\zw\hbox{%
-    \vrule height.2pt  depth.2pt width2\zw%
-    \hbox to 0pt{\hss\composite{*d^@{#1}}\hss}%
-  }%
-}
-\raggedright
-%</en>
-\end{table}
-
-%<*en>
-\LuaTeX-ja supports four directions, as shown in \autoref{tab-dir}.
-The second column (\emph{yoko} direction) is just horizontal writing,
-and the third column (\emph{tate} direction) is vertical writing.
-The fourth column (\emph{dtou} direction) is actually a hidden feature of \pTeX.
-We implemented this for debugging purpose.
-The fifth column (\emph{utod} direction) corresponds the ``\texttt{tate (math) direction}'' of \pTeX.
-
-Directions can be changed by \cs{yoko},~\cs{tate}, \cs{dtou},~\cs{utod},
-only when the current list is null. Also, the direction of a math formula is changed to
-\emph{utod}, when the direction outside the math formula is \emph{tate} (vertical writing).
-%</en>
-
-%<*ja>
-\LuaTeX-jaがサポートする組方向は\autoref{tab-dir}に示す4つである.
-4列目の \cs{dtou} は聞き慣れない命令だと思うが,
-実は\pTeX に同名の命令が(ドキュメントには書かれていないが)存在する.
-Down-TO-Upの意味なのだろう.\cs{dtou} を使用する機会はないだろうが,
-\LuaTeX-jaではデバッグ用に実装している.
-5列目の \cs{utod} は,\pTeX で言う「縦数式ディレクション」に相当するものである.
-
-組方向は,\cs{yoko},~\cs{tate}, \cs{dtou},~\cs{utod} をそれぞれ使用することで,
-現在作成中のリストやボックスが空の時にのみ変更可能である.
-また,縦組中の数式内のボックスは\pTeX と同じように組方向が \cs{utod} となる.
-%</ja>
-
-%<*en>
-\subsection{Boxes in different direction}
-
-As in \pTeX, one can use boxes of different direction in one document.
-The below is an example.
-\begin{LTXexample}
-ここは横組%     yoko
-\hbox{\tate %   tate
-  \hbox{縦組}%  tate
-  の中に
-  \hbox{\yoko 横組の内容}% yoko
-  を挿入する
-}
-また横組に戻る% yoko
-\end{LTXexample}
-
-\autoref{tab-diffdir} shows how a box is arranged when
-the direction  inside the box and that outside the box differ.
-%</en>
-%<*ja>
-\subsection{異方向のボックス}
-
-縦組の中に「42」などの2桁以上の算用数字を横組で組むなど,
-異なる組方向を混在させることがしばしば行われる.
-組方向の混在も\pTeX と同じようにできる:
-\begin{LTXexample}
-ここは横組%     yoko
-\hbox{\tate %   tate
-  \hbox{縦組}%  tate
-  の中に
-  \hbox{\yoko 横組の内容}% yoko
-  を挿入する
-}
-また横組に戻る% yoko
-\end{LTXexample}
-
-異なる組方向のボックスを配置した場合にどう組まれるかの仕様も,\pTeX を
-踏襲している.\autoref{tab-diffdir}に示す.
+異なる組方向のボックスを配置した場合にどう組まれるかの仕様も,\pTeX を
+踏襲している.\autoref{tab-diffdir}に示す.
 %</ja>
 
 \begin{table}[t]
@@ -4035,7 +3511,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.
 
@@ -4046,7 +3522,7 @@ because of the compatibility with previous versions of \LuaTeX-ja.
 %<*ja>
 いくつかのフォントはグリフ間のスペースについての情報を持っている.
 このカーニング情報は以前の\LuaTeX-ja とはあまり相性が良くなかったが,
-本バージョンではカーニングによる空白はイタリック補正と同様に扱うことになっている.
+バージョン20140324.0以降ではカーニングによる空白はイタリック補正と同様に扱うことになっている.
 つまり,カーニング由来の空白とJFM由来のグルー・カーンは同時に入りうる.
 \autoref{fig:kern-jfm}を参照.
 \begin{itemize}
@@ -4107,7 +3583,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
@@ -5321,7 +4797,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では,単なる自然数のようにし
       か見えないことに注意.
 }.
@@ -5329,7 +4805,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
     \]
@@ -5550,13 +5026,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>
 
@@ -5629,1944 +5105,2623 @@ to prevent a line ends with this character.
 \item[\DParam{jaxspmode}\,=\{<chr\_code>,<mode>\}$^\ast$]\
 
 %<*en>
-Set whether inserting \Param{xkanjiskip} is allowed before/after a \textbf{JAchar} whose character code is <chr\_code>.
-The followings are allowed for <mode>:
+Set whether inserting \Param{xkanjiskip} is allowed before/after a \textbf{JAchar} whose character code is <chr\_code>.
+The followings are allowed for <mode>:
+%</en>
+%<*ja>
+文字コードが<chr\_code>の\textbf{JAchar}の前/後ろに\Param{xkanjiskip}の
+挿入を許すかどうかの設定.
+以下の<mode>が許される:
+%</ja>
+\begin{description}
+%<en>\item[0, \texttt{inhibit}] Insertion of \Param{xkanjiskip} is inhibited before the character, nor after the character.
+%<ja>\item[0, \texttt{inhibit}] \Param{xkanjiskip}の挿入は文字の前/後ろのいずれでも禁止される.
+%<en>\item[1, \texttt{preonly}] Insertion of \Param{xkanjiskip} is allowed before the character, but not after.
+%<ja>\item[1, \texttt{preonly}] \Param{xkanjiskip}の挿入は文字の前では許されるが,後ろでは許されない.
+%<en>\item[2, \texttt{postonly}] Insertion of \Param{xkanjiskip} is allowed after the character, but not before.
+%<ja>\item[2, \texttt{postonly}] \Param{xkanjiskip}の挿入は文字の後ろでは許されるが,前では許されない.
+%<en>\item[3, \texttt{allow}] Insertion of \Param{xkanjiskip} is allowed both before the character and after the character. This is the default value.
+%<ja>\item[3, \texttt{allow}] \Param{xkanjiskip}の挿入は文字の前/後ろのいずれでも許される.これがデフォルトの値である.
+\end{description}
+%<*en>
+This parameter is similar to the \cs{inhibitxspcode} primitive of \pTeX, but not compatible with \cs{inhibitxspcode}.
+%</en>
+%<*ja>
+このパラメータは\pTeX の \cs{inhibitxspcode} プリミティブと似ているが,
+互換性はない.
+%</ja>
+\item[\DParam{alxspmode}\,=\{<chr\_code>,<mode>\}$^\ast$] [\cs{xspcode}]\
+
+%<*en>
+Set whether inserting \Param{xkanjiskip} is allowed before/after a
+            \textbf{ALchar} whose character code is <chr\_code>.
+             The followings are allowed for <mode>:
+%</en>
+%<*ja>
+文字コードが<chr\_code>の\textbf{ALchar}の前/後ろに\Param{xkanjiskip}の
+挿入を許すかどうかの設定.
+以下の<mode>が許される:
+%</ja>
+\begin{description}
+%<en>\item[0, \texttt{inhibit}] Insertion of \Param{xkanjiskip} is inhibited before the character, nor after the character.
+%<ja>\item[0, \texttt{inhibit}] \Param{xkanjiskip}の挿入は文字の前/後ろのいずれでも禁止される.
+%<en>\item[1, \texttt{preonly}] Insertion of \Param{xkanjiskip} is allowed before the character, but not after.
+%<ja>\item[1, \texttt{preonly}] \Param{xkanjiskip}の挿入は文字の前では許されるが,後ろでは許されない.
+%<en>\item[2, \texttt{postonly}] Insertion of \Param{xkanjiskip} is allowed after the character, but not before.
+%<ja>\item[2, \texttt{postonly}] \Param{xkanjiskip}の挿入は文字の後ろでは許されるが,前では許されない.
+%<en>\item[3, \texttt{allow}] Insertion of \Param{xkanjiskip} is allowed before the character and after the character. This is the default value.
+%<ja>\item[3, \texttt{allow}] \Param{xkanjiskip}の挿入は文字の前/後ろのいずれでも許される.これがデフォルトの値である.
+\end{description}
+%<*en>
+Note that parameters \Param{jaxspmode} and \Param{alxspmode} share a common table, hence these two parameters are synonyms of each other.
+%</en>
+%<*ja>
+\Param{jaxspmode}と\Param{alxspmode}は共通のテーブルを用いているため,
+これら2つのパラメータは互いの別名となっていることに注意する.
+%</ja>
+
+\item[\DParam{autospacing}\,=<bool>] [\cs{autospacing}]
+\item[\DParam{autoxspacing}\,=<bool>] [\cs{autoxspacing}]
+\item[\DParam{kanjiskip}\,=<skip>$^\ast$] [\cs{kanjiskip}]\
+
+%<*ja>
+デフォルトで2つの\textbf{JAchar}の間に挿入されるグルーである.
+通常では,\pTeX と同じようにフォントサイズに比例して変わることはない.
+しかし,自然長が \cs{maxdimen} の場合は,例外的に和文フォントのJFM側で指定されている
+値を採用(こちらはフォントサイズに比例)することになっている.
+%</ja>
+%<*en>
+The default glue which inserted between two \textbf{JAchar}s.
+Changing current Japanese font does not alter this parameter, as \pTeX.
+
+If the natural width of this parameter is \cs{maxdimen}, \LuaTeX-ja uses
+the value which is specified in the JFM for current Japanese font (See Subsection~\ref{ssec-jfm-str}).
+%</en>
+
+\item[\DParam{xkanjiskip}\,=<skip>$^\ast$] [\cs{xkanjiskip}]\
+
+%<*ja>
+デフォルトで\textbf{JAchar}と\textbf{ALchar}の間に挿入されるグルーである.
+\Param{kanjiskip}と同じように,通常ではフォントサイズに比例して変わることはないが,
+自然長が \cs{maxdimen} の場合が例外である.
+%</ja>
+%<*en>
+The default glue which inserted between a \textbf{JAchar} and an
+      \textbf{ALchar}.
+Changing current font does not alter this parameter, as \pTeX.
+
+As \Param{kanjiskip}, if the natural width of this parameter is \cs{maxdimen}, \LuaTeX-ja uses
+the value which is specified in the JFM for current Japanese font (See Subsection~\ref{ssec-jfm-str}).
+%</en>
+
+
+\item[\DParam{differentjfm}\,=<mode>$^\dagger$]\
+
+%<*en>
+Specify how glues/kerns between two \textbf{JAchar}s whose JFM (or size) are different.
+The allowed arguments are the followings:
+%</en>
+%<*ja>
+JFM(もしくはサイズ)が異なる2つの\textbf{JAchar}の間にグルー/カーンをどのように
+入れるかを指定する.
+許される値は以下の通り:
+%</ja>
+\begin{quote}
+\texttt{average},
+\texttt{both},
+\texttt{large},
+\texttt{small},
+\texttt{pleft},
+\texttt{pright},
+\texttt{paverage}
+\end{quote}
+%<*en>
+The default value is \texttt{paverage}. \dots
+%</en>
+%<*ja>
+デフォルト値は \texttt{paverage} である.
+各々の値による差異の詳細は\ref{ssec-cluster-wa}節の「『右空白』の算出」を参照してほしい.
+%</ja>
+
+\item[\DParam{jacharrange}\,=<ranges>]
+\item[\DParam{kansujichar}\,=\{<digit>, <chr\_code>\}$^\ast$] [\cs{kansujichar}]
+
+\item[\DParam{direction}\,=<dir>\ \hbox{\rm (always local)}]\
+
+%<*en>
+Assigning to this parameter has the same effect as
+\cs{yoko}~(if $\hbox{<dir>}=4$), \cs{tate}~(if $\hbox{<dir>}=3$),
+\cs{dtou}~(if $\hbox{<dir>}=1$) or \cs{utod}~(if $\hbox{<dir>}=11$).
+If the argument <dir> is not one of 4,~3, 1~nor~11,
+the behavior of this assignment is undefined.
+%</en>
+%<*ja>
+組方向を変更する \cs{yoko}~(if $\hbox{<dir>}=4$), \cs{tate}~(if $\hbox{<dir>}=3$),
+\cs{dtou}~(if $\hbox{<dir>}=1$), \cs{utod}~(if $\hbox{<dir>}=11$) と同じ役割を持つ.
+利用可能な状況もこれら4命令と同一である.引数<dir>が4,~3, 1,~11のいずれでも無いときの
+動作は未定義である.
+%</ja>
+
+\end{cslist}
+
+
+\subsection{\cs{ltjgetparameter}}
+\label{ssec-getpar}
+%<*en>
+\cs{ltjgetparameter} is a control sequence for acquiring parameters. It
+always takes a parameter name as first argument.
+%</en>
+%<*ja>
+\cs{ltjgetparameter} はパラメータの値を取得するための命令であり,
+常にパラメータの名前を第一引数にとる.
+%</ja>
+\begin{LTXexample}
+\ltjgetparameter{differentjfm},
+\ltjgetparameter{autospacing},
+\ltjgetparameter{kanjiskip},
+\ltjgetparameter{prebreakpenalty}{`)}.
+\end{LTXexample}
+
+%<*en>
+\emph{The return value of\/ \cs{ltjgetparameter} is
+always a string}, which is outputted by \texttt{tex.write()}.
+Hence any character other than space~``\texttt{\char32}''~(\texttt{U+0020}) has the category code
+12~(other), while the space has 10~(space).
+%</en>
+%<*ja>
+\emph{\cs{ltjgetparameter} の戻り値は常に文字列である.}
+これは\texttt{tex.write()}によって出力しているためで,空白「\texttt{\char32}」
+(\texttt{U+0020})を除いた文字のカテゴリーコードは全て12~(other)となる.
+一方,空白のカテゴリーコードは10~(space)である.
+%</ja>
+
+\begin{itemize}
+\item
+%<*en>
+If first argument is one of the
+following, no  additional argument is needed.
+%</en>
+%<*ja>
+第1引数が次のいずれかの場合には,追加の引数は必要ない.
+%</ja>
+\begin{quote}
+\sffamily
+jcharwidowpenalty, yjabaselineshift, yalbaselineshift, autospacing, autoxspacing,\\
+kanjiskip, xkanjiskip, differentjfm, direction
+\end{quote}
+%<*en>
+Note that \verb+\ltjgetparameter{autospacing}+~and~\verb+\ltjgetparameter{autoxspacing}+
+returns 1 or 0, not
+\texttt{true}~nor~\texttt{false}.
+%</en>
+%<*ja>
+\verb+\ltjgetparameter{autospacing}+ と \verb+\ltjgetparameter{autoxspacing}+ は,
+\texttt{true}や\texttt{false}を返すの\emph{ではなく},
+1か0のいずれかを返すことに注意,
+%</ja>
+
+\item
+%<*en>
+If first argument is one of the
+following, an additional argument---a character code, for example---is needed.
+%</en>
+%<*ja>
+第1引数が次のいずれかの場合には,さらに文字コードを第2引数としてとる.
+%</ja>
+\begin{quote}
+\sffamily
+kcatcode, prebreakpenalty, postbreakpenalty, jaxspmode, alxspmode
+\end{quote}
+%<*en>
+\verb+\ltjgetparameter{jaxspmode}{...}+~and~\verb+\ltjgetparameter{alxspmode}{...}+
+returns 0,~1, 2,~or~3, instead of \texttt{preonly} etc.
+%</en>
+%<*ja>
+\verb+\ltjgetparameter{jaxspmode}{...}+ や \verb+\ltjgetparameter{alxspmode}{...}+\
+は,\texttt{preonly} などといった文字列ではなく,0から3までの値を返す.
+%</ja>
+
+\item
+%<*en>
+\verb+\ltjgetparameter{jacharrange}{+<range>\verb+}+ returns \texttt{0}
+if ``characters which belong to the character range~<range> are \textbf{JAchar}'',
+\texttt{1} if ``\dots~are \textbf{ALchar}''.
+Although there is no character range~$-1$, specifying $-1$ to <range> does not cause an
+      error (returns 1).
+%</en>
+%<*ja>
+\verb+\ltjgetparameter{jacharrange}{+<range>\verb+}+ は,<range>が\textbf{JAchar}達の
+範囲ならば0を,そうでなければ1を返す.「$-1$番の文字範囲」は存在しないが,<range>に$-1$を
+指定してもエラーは発生しない(1を返す).
+%</ja>
+
+\item
+%<*en>
+For an integer~<digit> between 0~and~9,
+     \verb+\ltjgetparameter{kansujichar}{+<digit>\verb+}+ returns the character code
+of the result of \cs{kansuji}<digit>.
+%</en>
+%<*ja>
+0--9の数<digit>に対して,
+\verb+\ltjgetparameter{kansujichar}{+<digit>\verb+}+ は,\cs{kansuji}<digit>で出力され
+     る文字の文字コードを返す.
+%</ja>
+
+\item
+%<*en>
+\verb+\ltjgetparameter{adjustdir}+ returns a integer which represents
+the direction of the surrounding vertical list.
+As \Param{direction}, the return value 1 means \emph{down-to-up} direction,
+3 means \emph{tate} direction (vertical typesetting),
+and 4 means \emph{yoko} direction (horizontal typesetting).
 %</en>
 %<*ja>
-文字コードが<chr\_code>の\textbf{JAchar}の前/後ろに\Param{xkanjiskip}の
-挿入を許すかどうかの設定.
-以下の<mode>が許される:
+\verb+\ltjgetparameter{adjustdir}+ は,周囲のvboxの組方向(言い換えれば,
+\cs{vadjust} で用いられる組方向)を表す数値を返す.
+\Param{direction}と同様に,1は \cs{dtou} 方向を,
+3は縦組みを,4は横組みを表す.
 %</ja>
-\begin{description}
-%<en>\item[0, \texttt{inhibit}] Insertion of \Param{xkanjiskip} is inhibited before the character, nor after the character.
-%<ja>\item[0, \texttt{inhibit}] \Param{xkanjiskip}の挿入は文字の前/後ろのいずれでも禁止される.
-%<en>\item[1, \texttt{preonly}] Insertion of \Param{xkanjiskip} is allowed before the character, but not after.
-%<ja>\item[1, \texttt{preonly}] \Param{xkanjiskip}の挿入は文字の前では許されるが,後ろでは許されない.
-%<en>\item[2, \texttt{postonly}] Insertion of \Param{xkanjiskip} is allowed after the character, but not before.
-%<ja>\item[2, \texttt{postonly}] \Param{xkanjiskip}の挿入は文字の後ろでは許されるが,前では許されない.
-%<en>\item[3, \texttt{allow}] Insertion of \Param{xkanjiskip} is allowed both before the character and after the character. This is the default value.
-%<ja>\item[3, \texttt{allow}] \Param{xkanjiskip}の挿入は文字の前/後ろのいずれでも許される.これがデフォルトの値である.
-\end{description}
+
+\item
 %<*en>
-This parameter is similar to the \cs{inhibitxspcode} primitive of \pTeX, but not compatible with \cs{inhibitxspcode}.
+For an integer~<reg\_num> between 0~and~65535,
+\verb+\ltjgetparameter{boxdim}{+<reg\_num>\verb+}+ returns the direction of
+\cs{box}<reg\_num>. If this box register is void, the returned value is zero.
 %</en>
 %<*ja>
-このパラメータは\pTeX の \cs{inhibitxspcode} プリミティブと似ているが,
-互換性はない.
+0--65535の数<reg\_num>に対して,
+\verb+\ltjgetparameter{boxdim}{+<reg\_num>\verb+}+ は,\cs{box}<reg\_num>に
+格納されているボックスの組方向を表す.もしこのレジスタが空の場合は,0が返される.
 %</ja>
-\item[\DParam{alxspmode}\,=\{<chr\_code>,<mode>\}$^\ast$] [\cs{xspcode}]\
 
+\item
 %<*en>
-Set whether inserting \Param{xkanjiskip} is allowed before/after a
-            \textbf{ALchar} whose character code is <chr\_code>.
-             The followings are allowed for <mode>:
+The following parameter names \emph{cannot be specified} in \cs{ltjgetparameter}.
 %</en>
 %<*ja>
-文字コードが<chr\_code>の\textbf{ALchar}の前/後ろに\Param{xkanjiskip}の
-挿入を許すかどうかの設定.
-以下の<mode>が許される:
+次のパラメータ名を \cs{ltjgetparameter} に指定することはできない.
 %</ja>
-\begin{description}
-%<en>\item[0, \texttt{inhibit}] Insertion of \Param{xkanjiskip} is inhibited before the character, nor after the character.
-%<ja>\item[0, \texttt{inhibit}] \Param{xkanjiskip}の挿入は文字の前/後ろのいずれでも禁止される.
-%<en>\item[1, \texttt{preonly}] Insertion of \Param{xkanjiskip} is allowed before the character, but not after.
-%<ja>\item[1, \texttt{preonly}] \Param{xkanjiskip}の挿入は文字の前では許されるが,後ろでは許されない.
-%<en>\item[2, \texttt{postonly}] Insertion of \Param{xkanjiskip} is allowed after the character, but not before.
-%<ja>\item[2, \texttt{postonly}] \Param{xkanjiskip}の挿入は文字の後ろでは許されるが,前では許されない.
-%<en>\item[3, \texttt{allow}] Insertion of \Param{xkanjiskip} is allowed before the character and after the character. This is the default value.
-%<ja>\item[3, \texttt{allow}] \Param{xkanjiskip}の挿入は文字の前/後ろのいずれでも許される.これがデフォルトの値である.
-\end{description}
+\begin{quote}
+\sffamily
+jatextfont, jascriptfont, jascriptscriptfont, jacharrange
+\end{quote}
+
+\item
 %<*en>
-Note that parameters \Param{jaxspmode} and \Param{alxspmode} share a common table, hence these two parameters are synonyms of each other.
+\verb+\ltjgetparameter{chartorange}{+<chr\_code>\verb+}+ returns
+the range number which <chr\_code> belongs to
+(although there is no parameter named ``chartorange'').
+
+If <chr\_code> is between 0 and 127, this <chr\_code> does not belong to
+any character range. In this case,
+      \verb+\ltjgetparameter{chartorange}{+<chr\_code>\verb+}+
+returns $-1$.
+
+Hence, one can know whether <chr\_code> is \textbf{JAchar} or not
+by the following:
 %</en>
 %<*ja>
-\Param{jaxspmode}と\Param{alxspmode}は共通のテーブルを用いているため,
-これら2つのパラメータは互いの別名となっていることに注意する.
-%</ja>
+\verb+\ltjgetparameter{chartorange}{+<chr\_code>\verb+}+ によって
+<chr\_code>の属する文字範囲の番号を知ることができる.
 
-\item[\DParam{autospacing}\,=<bool>] [\cs{autospacing}]
-\item[\DParam{autoxspacing}\,=<bool>] [\cs{autoxspacing}]
-\item[\DParam{kanjiskip}\,=<skip>$^\ast$] [\cs{kanjiskip}]\
+<chr\_code>に0--127の値を指定した場合(このとき,<chr\_code>が属する
+文字範囲は存在しない)は$-1$が返る.
 
-%<*ja>
-デフォルトで2つの\textbf{JAchar}の間に挿入されるグルーである.
-通常では,\pTeX と同じようにフォントサイズに比例して変わることはない.
-しかし,自然長が \cs{maxdimen} の場合は,例外的に和文フォントのJFM側で指定されている
-値を採用(こちらはフォントサイズに比例)することになっている.
+そのため,<chr\_code>が\textbf{JAchar}か\textbf{ALchar}かは
+次で知ることができる:
 %</ja>
-%<*en>
-The default glue which inserted between two \textbf{JAchar}s.
-Changing current Japanese font does not alter this parameter, as \pTeX.
+\begin{quote}
+\ttfamily \verb+\ltjgetparameter{jacharrange}{\ltjgetparameter{chartorange}{+%
+  <chr\_code>\verb+}}+\\\null\hfill\verb+% 0 if JAchar, 1 if ALchar+
+\end{quote}
 
-If the natural width of this parameter is \cs{maxdimen}, \LuaTeX-ja uses
-the value which is specified in the JFM for current Japanese font (See Subsection~\ref{ssec-jfm-str}).
+%<*en>
+\item Because the returned value is string, the following conditionals do not work
+if \Param{kanjiskip} (or~\Param{xkanjiskip}) has the stretch part or the shrink part.
+\begin{lstlisting}
+\ifdim\ltjgetparameter{kanjiskip}>\z@ ... \fi
+\ifdim\ltjgetparameter{xkanjiskip}>\z@ ... \fi
+\end{lstlisting}
+The correct way is using a temporary register.
+\begin{lstlisting}
+\@tempskipa=\ltjgetparameter{kanjiskip} \ifdim\@tempskipa>\z@ ... \fi
+\@tempskipa=\ltjgetparameter{xkanjiskip}\ifdim\@tempskipa>\z@ ... \fi
+\end{lstlisting}
 %</en>
+%<*ja>
+\item 返り値が文字列であることから,\Param{kanjiskip}や\Param{xkanjiskip}を直接
+\ \cs{ifdim} を使って比較することは望ましくない.伸び量や縮み量を持っている時には,
+次はエラーを発生させる:
+\begin{lstlisting}
+\ifdim\ltjgetparameter{kanjiskip}>\z@ ... \fi
+\ifdim\ltjgetparameter{xkanjiskip}>\z@ ... \fi
+\end{lstlisting}
+レジスタに一旦代入するのが良い:
+\begin{lstlisting}
+\@tempskipa=\ltjgetparameter{kanjiskip} \ifdim\@tempskipa>\z@ ... \fi
+\@tempskipa=\ltjgetparameter{xkanjiskip}\ifdim\@tempskipa>\z@ ... \fi
+\end{lstlisting}
+%</ja>
 
-\item[\DParam{xkanjiskip}\,=<skip>$^\ast$] [\cs{xkanjiskip}]\
+\end{itemize}
 
 %<*ja>
-デフォルトで\textbf{JAchar}と\textbf{ALchar}の間に挿入されるグルーである.
-\Param{kanjiskip}と同じように,通常ではフォントサイズに比例して変わることはないが,
-自然長が \cs{maxdimen} の場合が例外である.
-%</ja>
-%<*en>
-The default glue which inserted between a \textbf{JAchar} and an
-      \textbf{ALchar}.
-Changing current font does not alter this parameter, as \pTeX.
+\subsection{\cs{ltjsetparameter} の代替}
+原則として各種内部パラメータの設定には \cs{ltjsetparameter} もしくは
+\ \cs{ltjglobalsetparameter}\ を用いることになるが,
+\cs{ltjsetparameter} の実行には時間がかかるという難点があり,
+\LuaTeX-ja の内部ではより高速に実行できる別の形式を用いている.
+\emph{本節は一般利用者むけの内容ではない.}
 
-As \Param{kanjiskip}, if the natural width of this parameter is \cs{maxdimen}, \LuaTeX-ja uses
-the value which is specified in the JFM for current Japanese font (See Subsection~\ref{ssec-jfm-str}).
-%</en>
+\paragraph{\Param{kanjiskip}, \Param{xkanjiskip} の設定}
+\pLaTeXe 新ドキュメントクラスでは,
+\begin{lstlisting}
+\def\@setfontsize#1#2#3{%
+  ...
+  \kanjiskip=0zw plus .1zw minus .01zw
+  \ifdim\xkanjiskip>\z@
+    \if@slide \xkanjiskip=0.1em \else
+      \xkanjiskip=0.25em plus 0.15em minus 0.06em
+    \fi
+  \fi}
+\end{lstlisting}
+と,フォントサイズを変更するごとに \cs{kanjiskip}, \cs{xkanjiskip} を変更している.
+この \cs{@setfontsize} は文書の中で多数回実行されるので.
+\LuaTeX-ja 用に素直に書き換えた
+\begin{lstlisting}
+  \ltjsetparameter{kanjiskip=0\zw plus .1\zw minus .01\zw}
+  \@tempskipa=\ltjgetparameter{xkanjiskip}
+  \ifdim\@tempskipa>\z@
+    \if@slide
+      \ltjsetparameter{xkanjiskip=0.1em}
+    \else
+      \ltjsetparameter{xkanjiskip=0.25em plus 0.15em minus 0.06em}
+    \fi
+  \fi
+\end{lstlisting}
+としたのではタイプセットが遅くなってしまう.
+そこで,\cs{ltjsetparameter} の中で
+\begin{itemize}
+\item \cs{globaldefs} の値を読み取る \cs{ltj@setpar@global}
+\item \Param{kanjiskip} の設定を行う \cs{ltjsetkanjiskip}
+\item \Param{xkanjiskip} の設定を行う \cs{ltjsetxkanjiskip}
+\end{itemize}
+を独立させ,\Pkg{ltjsclasses}では,
+\begin{lstlisting}
+  \ltj@setpar@global
+  \ltjsetkanjiskip{\z@ plus .1\zw minus .01\zw}
+  \@tempskipa=\ltjgetparameter{xkanjiskip}
+  \ifdim\@tempskipa>\z@
+    \if@slide
+      \ltjsetxkanjiskip.1em
+    \else
+      \ltjsetxkanjiskip.25em plus .15em minus .06em
+    \fi
+  \fi
+\end{lstlisting}
+としている.
+\cs{ltj@setpar@global}を直前に実行せず,単独で
+\cs{ltjsetkanjiskip}, \cs{ltjsetxkanjiskip}を実行することは想定されていないので注意.
 
 
-\item[\DParam{differentjfm}\,=<mode>$^\dagger$]\
 
-%<*en>
-Specify how glues/kerns between two \textbf{JAchar}s whose JFM (or size) are different.
-The allowed arguments are the followings:
-%</en>
-%<*ja>
-JFM(もしくはサイズ)が異なる2つの\textbf{JAchar}の間にグルー/カーンをどのように
-入れるかを指定する.
-許される値は以下の通り:
+\paragraph{ベースライン補正量の設定}
+\pLaTeX の\Pkg{ascmac}パッケージでは,縦組の欧文ベースライン補正量の一時待避・復帰処理に
+\ \cs{@saveybaselineshift}\ という寸法レジスタを用い
+\begin{lstlisting}
+\@savetbaselineshift\tbaselineshift\tbaselineshift\z@
+...
+\tbaselineshift\@savetbaselineshift
+\end{lstlisting}
+という処理を行っている.
+
+これを\LuaTeX-ja 用に \cs{ltjsetparameter} を使って書き直すと,
+\begin{lstlisting}
+\@savetbaselineshift\ltjgetparameter{talbaselineshift}
+\ltjsetparameter{talbaselineshift=\z@}
+...
+\ltjsetparameter{talbaselineshift=\@savetbaselineshift}
+\end{lstlisting}
+となる.
+
+さて,縦組の欧文ベースライン補正量\Param{talbaselineshift}は,
+実際には \cs{ltj@tablshift} という属性レジスタに格納されている
+(\ref{sec-para}\nobreak 節参照).属性レジスタは長さではなく整数値を格納する\footnote{%
+  従って,\texttt{\textbackslash @savetbaselineshift=\textbackslash ltj@tablshift}\
+  のように記述することはできない.属性レジスタを \cs{tbaselineshift} という名称にしなかっ
+  たのはそのためである.
+}ものであり,\cs{ltj@tablshift} は補正量を sp 単位で保持することから,
+上記のコードと同じ内容をより速い以下のコードで実現することができる.
+\begin{lstlisting}
+\@savetbaselineshift\ltj@tablshift sp%
+\ltj@tablshift\z@
+...
+\ltj@tablshift\@savetbaselineshift
+\end{lstlisting}
+この手法は \Pkg{ascmac} パッケージの\LuaTeX-ja対応パッチ \Pkg{lltjp-tascmac.sty} で
+実際に用いられている.\Pkg{lltjp-tascmac.sty} は自動的に読み込まれるので,
+ユーザは何も気にせず普通に \Pkg{ascmac} パッケージを \cs{usepackage} で読みこめば良い.
 %</ja>
-\begin{quote}
-\texttt{average},
-\texttt{both},
-\texttt{large},
-\texttt{small},
-\texttt{pleft},
-\texttt{pright},
-\texttt{paverage}
-\end{quote}
+
+
+%<en>\section{Other Commands for plain \TeX\ and \LaTeXe}
+%<ja>\section{plainでも\LaTeX でも利用可能なその他の命令}
+%<en>\subsection{Commands for compatibility with \pTeX}
+%<ja>\subsection{\pTeX 互換用命令}
+
 %<*en>
-The default value is \texttt{paverage}. \dots
+The following commands are implemented for compatibility with \pTeX.
+Note that the former five commands don't support JIS~X~0213, but only JIS~X~0208.
+The last \cs{kansuji} converts an integer into its Chinese numerals.
 %</en>
 %<*ja>
-デフォルト値は \texttt{paverage} である.
-各々の値による差異の詳細は\ref{ssec-cluster-wa}節の「『右空白』の算出」を参照してほしい.
+以下の命令は\pTeX との互換性のために実装されている.そのため,JIS~X~0213には対応せず,
+\pTeX と同じようにJIS~X~0208の範囲しかサポートしていない.
 %</ja>
-
-\item[\DParam{jacharrange}\,=<ranges>]
-\item[\DParam{kansujichar}\,=\{<digit>, <chr\_code>\}$^\ast$] [\cs{kansujichar}]
-
-\item[\DParam{direction}\,=<dir>\ \hbox{\rm (always local)}]\
-
+\begin{center}
+\cs{kuten}, \cs{jis}, \cs{euc}, \cs{sjis}, \cs{ucs}, \cs{kansuji}
+\end{center}
 %<*en>
-Assigning to this parameter has the same effect as
-\cs{yoko}~(if $\hbox{<dir>}=4$), \cs{tate}~(if $\hbox{<dir>}=3$),
-\cs{dtou}~(if $\hbox{<dir>}=1$) or \cs{utod}~(if $\hbox{<dir>}=11$).
-If the argument <dir> is not one of 4,~3, 1~nor~11,
-the behavior of this assignment is undefined.
+These six commands takes an internal integer, and returns a \emph{string}.
 %</en>
 %<*ja>
-組方向を変更する \cs{yoko}~(if $\hbox{<dir>}=4$), \cs{tate}~(if $\hbox{<dir>}=3$),
-\cs{dtou}~(if $\hbox{<dir>}=1$), \cs{utod}~(if $\hbox{<dir>}=11$) と同じ役割を持つ.
-利用可能な状況もこれら4命令と同一である.引数<dir>が4,~3, 1,~11のいずれでも無いときの
-動作は未定義である.
+これら6命令は内部整数を引数とするが,実行結果は\textbf{文字列}であることに注意.
 %</ja>
+\begin{LTXexample}
+\newcount\hoge
+\hoge="2423 %"
+\the\hoge, \kansuji\hoge\\
+\jis\hoge, \char\jis\hoge\\
+\kansuji1701
+\end{LTXexample}
 
-\end{cslist}
+%<*en>
+To change characters of Chinese numerals for each digit, set \Param{kansujichar} parameter:
+\begin{LTXexample}
+\ltjsetparameter{kansujichar={1,`壹}}
+\ltjsetparameter{kansujichar={7,`漆}}
+\ltjsetparameter{kansujichar={0,`零}}
+\kansuji1701
+\end{LTXexample}
+%</en>
 
 
-\subsection{\cs{ltjgetparameter}}
-\label{ssec-getpar}
+\subsection{\cs{inhibitglue}}
 %<*en>
-\cs{ltjgetparameter} is a control sequence for acquiring parameters. It
-always takes a parameter name as first argument.
+\cs{inhibitglue} suppresses the insertion of \textbf{JAglue}.
+The following is an example, using a special JFM that there will be a glue between
+the beginning of a box and ``あ'', and also between ``あ''~and~``ウ''.
 %</en>
 %<*ja>
-\cs{ltjgetparameter} はパラメータの値を取得するための命令であり,
-常にパラメータの名前を第一引数にとる.
+\cs{inhibitglue} は\textbf{JAglue}の挿入を抑制する.
+以下は,ボックスの始めと「あ」の間,「あ」「ウ」の間にグルーが入る特別なJFMを用いた例で
+ある.
 %</ja>
-\begin{LTXexample}
-\ltjgetparameter{differentjfm},
-\ltjgetparameter{autospacing},
-\ltjgetparameter{kanjiskip},
-\ltjgetparameter{prebreakpenalty}{`)}.
+
+\begin{LTXexample}[width=0.4\textwidth]
+\jfont\g=file:KozMinPr6N-Regular.otf:jfm=test \g
+\fbox{\hbox{あウあ\inhibitglue ウ}}
+\inhibitglue\par\noindent あ1
+\par\inhibitglue\noindent あ2
+\par\noindent\inhibitglue あ3
+\par\hrule\noindent あoff\inhibitglue ice
 \end{LTXexample}
 
 %<*en>
-\emph{The return value of\/ \cs{ltjgetparameter} is
-always a string}, which is outputted by \texttt{tex.write()}.
-Hence any character other than space~``\texttt{\char32}''~(\texttt{U+0020}) has the category code
-12~(other), while the space has 10~(space).
+With the help of this example, we remark the specification of \cs{inhibitglue}:
 %</en>
 %<*ja>
-\emph{\cs{ltjgetparameter} の戻り値は常に文字列である.}
-これは\texttt{tex.write()}によって出力しているためで,空白「\texttt{\char32}」
-(\texttt{U+0020})を除いた文字のカテゴリーコードは全て12~(other)となる.
-一方,空白のカテゴリーコードは10~(space)である.
+この例を援用して,\cs{inhibitglue} の仕様について述べる.
 %</ja>
-
 \begin{itemize}
-\item
 %<*en>
-If first argument is one of the
-following, no  additional argument is needed.
+\item The call of \cs{inhibitglue} in the (internal) vertical mode is
+      simply ignored.
 %</en>
 %<*ja>
-第1引数が次のいずれかの場合には,追加の引数は必要ない.
+\item \emph{\cs{inhibitglue} の垂直モード中での呼び出しは意味を持たない}\footnote{%
+  この点は\TeX~Live~2014での\pTeX における \cs{inhibitglue} の仕様変更と同じである.
+}.
+4行目の入力で有効にならないのは,\cs{inhibitglue} の時点では垂直モードであり,
+\cs{noindent} の時点で水平モードになるからである.
 %</ja>
-\begin{quote}
-\sffamily
-jcharwidowpenalty, yjabaselineshift, yalbaselineshift, autospacing, autoxspacing,\\
-kanjiskip, xkanjiskip, differentjfm, direction
-\end{quote}
+
 %<*en>
-Note that \verb+\ltjgetparameter{autospacing}+~and~\verb+\ltjgetparameter{autoxspacing}+
-returns 1 or 0, not
-\texttt{true}~nor~\texttt{false}.
+\item The call of \cs{inhibitglue} in the (restricted) horizontal
+      mode is only effective on the spot; does not get over boundary of
+      paragraphs. Moreover, \cs{inhibitglue} cancels ligatures and
+      kernings, as shown in the last line of above example.
 %</en>
 %<*ja>
-\verb+\ltjgetparameter{autospacing}+ と \verb+\ltjgetparameter{autoxspacing}+ は,
-\texttt{true}や\texttt{false}を返すの\emph{ではなく},
-1か0のいずれかを返すことに注意,
+\item \cs{inhibitglue} の(制限された)水平モード中での呼び出しはその場でのみ
+  有効であり,段落の境界を乗り越えない.
+  さらに,\cs{inhibitglue} は上の例の最終行のように(欧文における)リガチャとカーニングを
+  打ち消す.これは,\cs{inhibitglue} が内部的には「現在のリスト中にwhatsitノードを
+  追加する」ことを行なっているからである.
 %</ja>
 
-\item
 %<*en>
-If first argument is one of the
-following, an additional argument---a character code, for example---is needed.
+\item The call of \cs{inhibitglue} in math mode is just ignored.
 %</en>
 %<*ja>
-第1引数が次のいずれかの場合には,さらに文字コードを第2引数としてとる.
+\item \cs{inhibitglue} を数式モード中で呼び出した場合はただ無視される.
 %</ja>
-\begin{quote}
-\sffamily
-kcatcode, prebreakpenalty, postbreakpenalty, jaxspmode, alxspmode
-\end{quote}
+
+%<*ja>
+\item \LaTeX で\LuaTeX-ja を使用する場合は,
+\cs{inhibitglue} の代わりとして \verb+\<+ を使うことができる.
+既に \verb+\<+ が定義されていた場合は,\LuaTeX-ja の読み込みで強制的に上書きされるので
+注意すること.
+%</ja>
+\end{itemize}
+
+
+\subsection{\cs{ltjfakeboxbdd}, \cs{ltjfakeparbegin}}
 %<*en>
-\verb+\ltjgetparameter{jaxspmode}{...}+~and~\verb+\ltjgetparameter{alxspmode}{...}+
-returns 0,~1, 2,~or~3, instead of \texttt{preonly} etc.
+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>
-\verb+\ltjgetparameter{jaxspmode}{...}+ や \verb+\ltjgetparameter{alxspmode}{...}+\
-は,\texttt{preonly} などといった文字列ではなく,0から3までの値を返す.
+リスト環境内での\cs{item}で始まる各項目などでは,
+「段落最初の鍵括弧が余計に半角字下げされる」など,
+JFMにある\texttt{'parbdd'}, \texttt{'boxbdd'}の指定が見かけ上破綻していることがある.
+
+これは\TeX が\cs{everypar}を用いて段落開始時に記号類や空白などを挿入してしまっているため,
+段落最初の鍵括弧が実際には段落最初のノードではないことに起因する.以下に例を示した.
 %</ja>
+\begin{LTXexample}[width=0.3\textwidth]
+\parindent1\zw
+\noindent ああああああああ\par % for comparison
+「ああああああ \par            % normal paragraph
 
-\item
+\everypar{\null}
+「ああああああ \par            % ???
+\end{LTXexample}
 %<*en>
-\verb+\ltjgetparameter{jacharrange}{+<range>\verb+}+ returns \texttt{0}
-if ``characters which belong to the character range~<range> are \textbf{JAchar}'',
-\texttt{1} if ``\dots~are \textbf{ALchar}''.
-Although there is no character range~$-1$, specifying $-1$ to <range> does not cause an
-      error (returns 1).
+\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>
-\verb+\ltjgetparameter{jacharrange}{+<range>\verb+}+ は,<range>が\textbf{JAchar}達の
-範囲ならば0を,そうでなければ1を返す.「$-1$番の文字範囲」は存在しないが,<range>に$-1$を
-指定してもエラーは発生しない(1を返す).
+\cs{ltjfakeboxbdd}, \cs{ltjfakeparbegin}はこの状況を改善する命令である.
+実際には\cs{everypar}の末尾にこれらを追加するという使い方がほとんどになるだろう.
+\begin{itemize}
+  \item \cs{ltjfakeparbegin}は,実行された箇所が「インデントあり段落の開始」であると\LuaTeX-jaの
+  和文処理グルー挿入処理に認識させる.この命令の直前に\textbf{JAchar}があった場合,
+  この文字の後ろに入るグルー等の処理については未定義である
+  \footnote{%
+    この命令と同等の内容は,\cs{dirrctlua}の形で\Pkg{ltjsclasses}内で以前から使われていた.
+    一般ユーザでも利用しやすくするため,バージョン20170505.0で新たに命令として定義した.
+  }.
+  \item \cs{ltjfakeboxbdd}は,実行された箇所が「ボックスの先頭と末尾」であると\LuaTeX-jaの
+  和文処理グルー挿入処理に認識させる.
+\end{itemize}
+例えば,先ほどの例に対して適用すると,次のようになる.
 %</ja>
+\begin{LTXexample}[width=0.3\textwidth]
+\parindent1\zw
+\noindent ああああああああ\par % for comparison
+「ああああああ \par            % normal paragraph
 
-\item
+\everypar{\null\ltjfakeparbegin}
+「ああああああ \par
+\end{LTXexample}
+
+
+\subsection{\cs{ltjdeclarealtfont}}
+\label{ssec-altfont}
 %<*en>
-For an integer~<digit> between 0~and~9,
-     \verb+\ltjgetparameter{kansujichar}{+<digit>\verb+}+ returns the character code
-of the result of \cs{kansuji}<digit>.
+Using \cs{ltjdeclarealtfont}, one can ``compose'' more than one Japanese fonts.
+This \cs{ltjdeclarealtfont} uses in the following form:
+\begin{quote}
+\ttfamily \textbackslash ltjdeclarealtfont<base\_font\_cs><alt\_font\_cs>\{<range>\}
+\end{quote}
+where  <base\_font\_cs>~and~<alt\_font\_cs> are defined by \cs{jfont}.
+Its meaning is
+\begin{quote}
+If the current Japanese font is <base\_font\_cs>, characters which belong to <range>
+is typeset by another Japanese font <alt\_font\_cs>, instead of <base\_font\_cs>.
+\end{quote}
+Here <range> is a comma-separated list of character codes, but also accepts negative integers:
+$-n$~($n≥1$) means that all characters of character classes~$n$, with respect to JFM used
+by <base\_font\_cs>. Note that characters which do not exist in <alt\_font\_cs> are
+ignored.
+
+For example, if \cs{hoge} uses \texttt{jfm-ujis.lua}, the standard JFM of \LuaTeX-ja,
+then
+\begin{lstlisting}
+\ltjdeclarealtfont\hoge\piyo{"3000-"30FF, {-1}-{-1}}
+\end{lstlisting}
+does
+\begin{quote}
+If the current Japanese font is \cs{hoge}, \texttt{U+3000}--\texttt{U+30FF}
+and characters in class~1 (ideographic opening brackets)
+are typeset by \cs{piyo}.
+\end{quote}
 %</en>
 %<*ja>
-0--9の数<digit>に対して,
-\verb+\ltjgetparameter{kansujichar}{+<digit>\verb+}+ は,\cs{kansuji}<digit>で出力され
-     る文字の文字コードを返す.
+\cs{jfont} の書式を見ればわかるように,基本的には\LuaTeX-jaにおける1つの和文フォントに
+使用出来る「実際のフォント」は1つである.
+しかし,\cs{ltjdeclarealtfont} を用いると,この原則から外れることができる.
+
+\cs{ltjdeclarealtfont} は以下の書式で使用する:
+\begin{quote}
+\ttfamily \textbackslash ltjdeclarealtfont<base\_font\_cs><alt\_font\_cs>\{<range>\}
+\end{quote}
+これは「現在の和文フォント」が<base\_font\_cs>であるとき,
+<range>に属する文字は<alt\_font\_cs>を用いて組版される,という意味である.
+\begin{itemize}
+ \item <base\_font\_cs>, <alt\_font\_cs>は
+\cs{jfont} によって定義された和文フォントである.
+ \item <range>は文字コードの範囲を表すコンマ区切りのリストであるが,
+   例外として負数$-n$は「<base\_font\_cs>のJFMの文字クラス$n$に属する全ての文字」
+   を意味する.
+
+<range>中に<alt\_font\_cs>中に実際には存在しない文字が指定された場合は,
+その文字に対する設定は無視される.
+\end{itemize}
+
+例えば,\cs{hoge} のJFMが\LuaTeX-ja標準の
+\ \texttt{jfm-ujis.lua} であった場合,
+\begin{lstlisting}
+\ltjdeclarealtfont\hoge\piyo{"3000-"30FF, {-1}-{-1}}
+\end{lstlisting}
+は「\cs{hoge} を利用しているとき,
+\texttt{U+3000}--\texttt{U+30FF}と
+文字クラス1(開き括弧類)中の文字だけは \cs{piyo} を用いる」
+ことを設定する.\verb+{-1}-{-1}+ という変わった指定の仕方をしているのは,
+普通に \texttt{-1} と指定したのでは正しく$-1$と読み取られないという
+マクロの都合による.
 %</ja>
 
-\item
-%<*en>
-\verb+\ltjgetparameter{adjustdir}+ returns a integer which represents
-the direction of the surrounding vertical list.
-As \Param{direction}, the return value 1 means \emph{down-to-up} direction,
-3 means \emph{tate} direction (vertical typesetting),
-and 4 means \emph{yoko} direction (horizontal typesetting).
-%</en>
 %<*ja>
-\verb+\ltjgetparameter{adjustdir}+ は,周囲のvboxの組方向(言い換えれば,
-\cs{vadjust} で用いられる組方向)を表す数値を返す.
-\Param{direction}と同様に,1は \cs{dtou} 方向を,
-3は縦組みを,4は横組みを表す.
+\subsection{\cs{ltjalchar} と \cs{ltjjachar}}
+文字コードが$\text{<chr\_code>}~(\geq 128=\mathtt{0x80})$の文字を
+\ \cs{char} プリミティブを使い \cs{char}<chr\_code> として出力させると,
+その文字の属する文字範囲(\ref{ssec-setrange}節参照)によって
+\textbf{ALchar}か\textbf{JAchar}か,つまり欧文フォントで出力されるか和文フォントで出力され
+るかが決まる.
+
+文字範囲の設定を無視し,文字コードが$\text{<chr\_code>}~(\geq 128=\mathtt{0x80})$の文字を強制的に
+\textbf{ALchar}, \textbf{JAchar}で出力する命令がそれぞれ
+\ \cs{ltjalchar},~\cs{ltjjachar} である.使用方法は \cs{char} と同じく
+\ \cs{ltjalchar}<chr\_code>, \cs{ltjjachar}<chr\_code>とすればよい.
+<chr\_code>が127以下の場合は,\cs{ltjjachar} であっても\textbf{ALchar}として出力されること
+に注意.
+
+以下は\ref{ssec-setrange}節に載せた例に,\cs{char} の動作を追加したものである.
+\begin{LTXexample}[width=0.25\textwidth]
+\gtfamily\large % default, ALchar, JAchar
+¶, \char`¶, \ltjalchar`¶, \ltjjachar`¶\\    % default: ALchar
+α, \char`α, \ltjalchar`α, \ltjjachar`α  % default: JAchar
+\end{LTXexample}
 %</ja>
 
-\item
+%<en>\section{Commands for \LaTeXe}
+%<ja>\section{\LaTeXe 用の命令}
+
+%<en>\subsection{Patch for NFSS2}
+%<ja>\subsection{NFSS2へのパッチ}
+\label{ssec-nfsspat}
+
 %<*en>
-For an integer~<reg\_num> between 0~and~65535,
-\verb+\ltjgetparameter{boxdim}{+<reg\_num>\verb+}+ returns the direction of
-\cs{box}<reg\_num>. If this box register is void, the returned value is zero.
+Japanese patch for NFSS2 in \LuaTeX-ja
+is based on \texttt{plfonts.dtx} which plays the same role in \pLaTeXe.
+We will describe
+commands which are not described in Subsection~\ref{ssec-chgfnt}.
 %</en>
 %<*ja>
-0--65535の数<reg\_num>に対して,
-\verb+\ltjgetparameter{boxdim}{+<reg\_num>\verb+}+ は,\cs{box}<reg\_num>に
-格納されているボックスの組方向を表す.もしこのレジスタが空の場合は,0が返される.
+\LuaTeX-jaのNFSS2への日本語パッチは
+\pLaTeXe で同様の役割を果たす \texttt{plfonts.dtx} をベースに,
+和文エンコーディングの管理等をLuaで書きなおしたものである.
+ここでは\ref{ssec-chgfnt}節で述べていなかった命令について
+記述しておく.
 %</ja>
 
-\item
+\begin{cslist}%
+\item[\normalfont\bfseries %
+%<ja>追加の長さ変数達
+%<en>additonal dimensions
+]
 %<*en>
-The following parameter names \emph{cannot be specified} in \cs{ltjgetparameter}.
+Like \pLaTeXe, \LuaTeX-ja defines the following dimensions
+for information of current Japanese font:
 %</en>
 %<*ja>
-次のパラメータ名を \cs{ltjgetparameter} に指定することはできない.
+\pLaTeXe と同様に,\LuaTeX-jaは「現在の和文フォントの情報」を格納する長さ変数
 %</ja>
 \begin{quote}
-\sffamily
-jatextfont, jascriptfont, jascriptscriptfont, jacharrange
+ \cs{cht}~(height), \cs{cdp}~(depth), \cs{cHT}~(sum of former two),\\
+ \cs{cwd}~(width), \cs{cvs}~(lineskip), \cs{chs}~(equals to \cs{cwd})
 \end{quote}
-
-\item
+%<en>and its \cs{normalsize} version:
+%<ja>と,その \cs{normalsize} 版である
+\begin{quote}
+ \cs{Cht}~(height), \cs{Cdp}~(depth),
+ \cs{Cwd}~(width), \\\cs{Cvs}~(equals to \cs{baselineskip}),
+ \cs{Chs}~(equals to \cs{cwd})%
+%<en>.
+\end{quote}
+%<*ja>
+を定義している.なお,\cs{cwd} と \cs{zw},また
+\cs{cHT} と \cs{zh} は一致しない可能性がある.なぜなら,
+\cs{cwd},~\cs{cHT} は「あ」の寸法から決定されるのに対し,
+\cs{zw} と \cs{zh} はJFMに指定された値に過ぎないからである.
+%</ja>
 %<*en>
-\verb+\ltjgetparameter{chartorange}{+<chr\_code>\verb+}+ returns
-the range number which <chr\_code> belongs to
-(although there is no parameter named ``chartorange'').
-
-If <chr\_code> is between 0 and 127, this <chr\_code> does not belong to
-any character range. In this case,
-      \verb+\ltjgetparameter{chartorange}{+<chr\_code>\verb+}+
-returns $-1$.
-
-Hence, one can know whether <chr\_code> is \textbf{JAchar} or not
-by the following:
+Note that \cs{cwd}~and~\cs{cHT} may  differ from \cs{zw}~and~\cs{zh}
+respectively.
+On the one hand the former dimensions are determined from the character ``あ'',
+but on the other hand \cs{zw}~and~\cs{zh} are specified by JFM.
 %</en>
-%<*ja>
-\verb+\ltjgetparameter{chartorange}{+<chr\_code>\verb+}+ によって
-<chr\_code>の属する文字範囲の番号を知ることができる.
 
-<chr\_code>に0--127の値を指定した場合(このとき,<chr\_code>が属する
-文字範囲は存在しない)は$-1$が返る.
 
-そのため,<chr\_code>が\textbf{JAchar}か\textbf{ALchar}かは
-次で知ることができる:
-%</ja>
-\begin{quote}
-\ttfamily \verb+\ltjgetparameter{jacharrange}{\ltjgetparameter{chartorange}{+%
-  <chr\_code>\verb+}}+\\\null\hfill\verb+% 0 if JAchar, 1 if ALchar+
-\end{quote}
+\item[\cs{DeclareYokoKanjiEncoding}\{<encoding>\}\{<text-settings>\}\{<math-settings>\}]
+%<en>\ \\[\dimexpr-\medskipamount-2\baselineskip\relax]
+%<ja>\ \\[\dimexpr-2\baselineskip\relax]
+\item[\cs{DeclareTateKanjiEncoding}\{<encoding>\}\{<text-settings>\}\{<math-settings>\}]
 
 %<*en>
-\item Because the returned value is string, the following conditionals do not work
-if \Param{kanjiskip} (or~\Param{xkanjiskip}) has the stretch part or the shrink part.
-\begin{lstlisting}
-\ifdim\ltjgetparameter{kanjiskip}>\z@ ... \fi
-\ifdim\ltjgetparameter{xkanjiskip}>\z@ ... \fi
-\end{lstlisting}
-The correct way is using a temporary register.
-\begin{lstlisting}
-\@tempskipa=\ltjgetparameter{kanjiskip} \ifdim\@tempskipa>\z@ ... \fi
-\@tempskipa=\ltjgetparameter{xkanjiskip}\ifdim\@tempskipa>\z@ ... \fi
-\end{lstlisting}
+In NFSS2 under \LuaTeX-ja, distinction between alphabetic fonts
+            and Japanese fonts are only made by their
+            encodings. For example, encodings OT1 and T1 are encodings for
+            alphabetic fonts, and Japanese fonts cannot
+            have these encodings. These command define a new encoding
+            scheme for Japanese font families.
 %</en>
 %<*ja>
-\item 返り値が文字列であることから,\Param{kanjiskip}や\Param{xkanjiskip}を直接
-\ \cs{ifdim} を使って比較することは望ましくない.伸び量や縮み量を持っている時には,
-次はエラーを発生させる:
-\begin{lstlisting}
-\ifdim\ltjgetparameter{kanjiskip}>\z@ ... \fi
-\ifdim\ltjgetparameter{xkanjiskip}>\z@ ... \fi
-\end{lstlisting}
-レジスタに一旦代入するのが良い:
-\begin{lstlisting}
-\@tempskipa=\ltjgetparameter{kanjiskip} \ifdim\@tempskipa>\z@ ... \fi
-\@tempskipa=\ltjgetparameter{xkanjiskip}\ifdim\@tempskipa>\z@ ... \fi
-\end{lstlisting}
-%</ja>
-
-\end{itemize}
-
-%<*ja>
-\subsection{\cs{ltjsetparameter} の代替}
-原則として各種内部パラメータの設定には \cs{ltjsetparameter} もしくは
-\ \cs{ltjglobalsetparameter}\ を用いることになるが,
-\cs{ltjsetparameter} の実行には時間がかかるという難点があり,
-\LuaTeX-ja の内部ではより高速に実行できる別の形式を用いている.
-\emph{本節は一般利用者むけの内容ではない.}
-
-\paragraph{\Param{kanjiskip}, \Param{xkanjiskip} の設定}
-\pLaTeXe 新ドキュメントクラスでは,
-\begin{lstlisting}
-\def\@setfontsize#1#2#3{%
-  ...
-  \kanjiskip=0zw plus .1zw minus .01zw
-  \ifdim\xkanjiskip>\z@
-    \if@slide \xkanjiskip=0.1em \else
-      \xkanjiskip=0.25em plus 0.15em minus 0.06em
-    \fi
-  \fi}
-\end{lstlisting}
-と,フォントサイズを変更するごとに \cs{kanjiskip}, \cs{xkanjiskip} を変更している.
-この \cs{@setfontsize} は文書の中で多数回実行されるので.
-\LuaTeX-ja 用に素直に書き換えた
-\begin{lstlisting}
-  \ltjsetparameter{kanjiskip=0\zw plus .1\zw minus .01\zw}
-  \@tempskipa=\ltjgetparameter{xkanjiskip}
-  \ifdim\@tempskipa>\z@
-    \if@slide
-      \ltjsetparameter{xkanjiskip=0.1em}
-    \else
-      \ltjsetparameter{xkanjiskip=0.25em plus 0.15em minus 0.06em}
-    \fi
-  \fi
-\end{lstlisting}
-としたのではタイプセットが遅くなってしまう.
-そこで,\cs{ltjsetparameter} の中で
-\begin{itemize}
-\item \cs{globaldefs} の値を読み取る \cs{ltj@setpar@global}
-\item \Param{kanjiskip} の設定を行う \cs{ltjsetkanjiskip}
-\item \Param{xkanjiskip} の設定を行う \cs{ltjsetxkanjiskip}
-\end{itemize}
-を独立させ,\Pkg{ltjsclasses}では,
-\begin{lstlisting}
-  \ltj@setpar@global
-  \ltjsetkanjiskip{\z@ plus .1\zw minus .01\zw}
-  \@tempskipa=\ltjgetparameter{xkanjiskip}
-  \ifdim\@tempskipa>\z@
-    \if@slide
-      \ltjsetxkanjiskip.1em
-    \else
-      \ltjsetxkanjiskip.25em plus .15em minus .06em
-    \fi
-  \fi
-\end{lstlisting}
-としている.
-\cs{ltj@setpar@global}を直前に実行せず,単独で
-\cs{ltjsetkanjiskip}, \cs{ltjsetxkanjiskip}を実行することは想定されていないので注意.
-
-
-
-\paragraph{ベースライン補正量の設定}
-\pLaTeX の\Pkg{ascmac}パッケージでは,縦組の欧文ベースライン補正量の一時待避・復帰処理に
-\ \cs{@saveybaselineshift}\ という寸法レジスタを用い
-\begin{lstlisting}
-\@savetbaselineshift\tbaselineshift\tbaselineshift\z@
-...
-\tbaselineshift\@savetbaselineshift
-\end{lstlisting}
-という処理を行っている.
-
-これを\LuaTeX-ja 用に \cs{ltjsetparameter} を使って書き直すと,
-\begin{lstlisting}
-\@savetbaselineshift\ltjgetparameter{talbaselineshift}
-\ltjsetparameter{talbaselineshift=\z@}
-...
-\ltjsetparameter{talbaselineshift=\@savetbaselineshift}
-\end{lstlisting}
-となる.
-
-さて,縦組の欧文ベースライン補正量\Param{talbaselineshift}は,
-実際には \cs{ltj@tablshift} という属性レジスタに格納されている
-(\ref{sec-para}\nobreak 節参照).属性レジスタは長さではなく整数値を格納する\footnote{%
-  従って,\texttt{\textbackslash @savetbaselineshift=\textbackslash ltj@tablshift}\
-  のように記述することはできない.属性レジスタを \cs{tbaselineshift} という名称にしなかっ
-  たのはそのためである.
-}ものであり,\cs{ltj@tablshift} は補正量を sp 単位で保持することから,
-上記のコードと同じ内容をより速い以下のコードで実現することができる.
-\begin{lstlisting}
-\@savetbaselineshift\ltj@tablshift sp%
-\ltj@tablshift\z@
-...
-\ltj@tablshift\@savetbaselineshift
-\end{lstlisting}
-この手法は \Pkg{ascmac} パッケージの\LuaTeX-ja対応パッチ \Pkg{lltjp-tascmac.sty} で
-実際に用いられている.\Pkg{lltjp-tascmac.sty} は自動的に読み込まれるので,
-ユーザは何も気にせず普通に \Pkg{ascmac} パッケージを \cs{usepackage} で読みこめば良い.
+\LuaTeX-jaのNFSS2においては,欧文フォントと和文フォントは
+そのエンコーディングによってのみ区別される.
+例えば,OT1とT1のエンコーディングは欧文フォントのエンコーディングであり,
+和文フォントはこれらのエンコーディングを持つことはできない.
+これらコマンドは横組用・縦組用和文フォントのための新しいエンコーディングを
+それぞれ定義する.
 %</ja>
 
-
-%<en>\section{Other Commands for plain \TeX\ and \LaTeXe}
-%<ja>\section{plainでも\LaTeX でも利用可能なその他の命令}
-%<en>\subsection{Commands for compatibility with \pTeX}
-%<ja>\subsection{\pTeX 互換用命令}
+\item[\cs{DeclareKanjiEncodingDefaults}\{<text-settings>\}\{<math-settings>\}]
+%<en>\ \\[\dimexpr-\medskipamount-2\baselineskip\relax]
+%<ja>\ \\[\dimexpr-2\baselineskip\relax]
+\item[\cs{DeclareKanjiSubstitution}\{<encoding>\}\{<family>\}\{<series>\}\{<shape>\}]
+%<en>\ \\[\dimexpr-\medskipamount-2\baselineskip\relax]
+%<ja>\ \\[\dimexpr-2\baselineskip\relax]
+\item[\cs{DeclareErrorKanjiFont}\{<encoding>\}\{<family>\}\{<series>\}\{<shape>\}\{<size>\}]
 
 %<*en>
-The following commands are implemented for compatibility with \pTeX.
-Note that the former five commands don't support JIS~X~0213, but only JIS~X~0208.
-The last \cs{kansuji} converts an integer into its Chinese numerals.
+The above 3~commands are just the counterparts for \cs{DeclareFontEncodingDefaults} and~others.
 %</en>
 %<*ja>
-以下の命令は\pTeX との互換性のために実装されている.そのため,JIS~X~0213には対応せず,
-\pTeX と同じようにJIS~X~0208の範囲しかサポートしていない.
+上記3つのコマンドはちょうどNFSS2 の \cs{DeclareFontEncodingDefaults} などに対応するものである.
 %</ja>
-\begin{center}
-\cs{kuten}, \cs{jis}, \cs{euc}, \cs{sjis}, \cs{ucs}, \cs{kansuji}
+
+\item[\cs{reDeclareMathAlphabet}\{<unified-cmd>\}\{<al-cmd>\}\{<ja-cmd>\}]
+
+% ToDo: en
+%<*ja>
+和文・欧文の数式用フォントファミリを一度に変更する命令を作成する.
+具体的には,欧文数式用フォントファミリ変更の命令<al-cmd>(\cs{mathrm} 等)と,和文数式用フォ
+            ントファミリ変更の命令<ja-cmd>(\cs{mathmc} 等)の2つを同時に行う命令として
+            <unified-cmd>を(再)定義する.実際の使用では<unified-cmd>と
+            <al-cmd>に同じものを指定する,すなわち,<al-cmd>で和文側も変
+            更させるようにするのが一般的と思われる.
+
+本命令は
+\begin{center}\tt
+<unified-cmd>\{<arg>\}\quad$\longrightarrow$\quad
+(<al-cmd>の1段展開結果)\{<ja-cmd>の1段展開結果)\{<arg>\}\}
 \end{center}
+と定義を行うので,使用には注意が必要である:
+%<en>\vspace{-\medskipamount}
+\begin{itemize}
+\item <al-cmd>,~<ja-cmd>は既に定義されていなければならない.
+      \cs{reDeclareMathAlphabet}\\の後に
+両命令の内容を再定義しても,<unified-cmd>の内容にそれは反映されない.
+\item <al-cmd>,~<ja-cmd>に\verb+\@mathrm+などと \texttt{@} をつけた命令を指定した時の動作は保証できない.
+\end{itemize}
+%</ja>
+
+\item[\cs{DeclareRelationFont}\{<ja-encoding>\}\{<ja-family>\}\{<ja-series>\}\{<ja-shape>\}\\*
+  \null\hfill\{<al-encoding>\}\{<al-family>\}\{<al-series>\}\{<al-shape>\}]
 %<*en>
-These six commands takes an internal integer, and returns a \emph{string}.
+This command sets the ``accompanied'' alphabetic font (given by the latter 4~arguments)
+with respect to a Japanese font given by the former 4~arguments.
 %</en>
 %<*ja>
-これら6命令は内部整数を引数とするが,実行結果は\textbf{文字列}であることに注意.
+いわゆる「従属欧文」を設定するための命令である.前半の4引数で表される和文フォントに対して,
+そのフォントに対応する「従属欧文」のフォントを後半の4引数により与える.
 %</ja>
-\begin{LTXexample}
-\newcount\hoge
-\hoge="2423 %"
-\the\hoge, \kansuji\hoge\\
-\jis\hoge, \char\jis\hoge\\
-\kansuji1701
-\end{LTXexample}
-
+\item[\cs{SetRelationFont}]
 %<*en>
-To change characters of Chinese numerals for each digit, set \Param{kansujichar} parameter:
-\begin{LTXexample}
-\ltjsetparameter{kansujichar={1,`壹}}
-\ltjsetparameter{kansujichar={7,`漆}}
-\ltjsetparameter{kansujichar={0,`零}}
-\kansuji1701
-\end{LTXexample}
+This command is almost same as \cs{DeclareRelationFont}, except that this command does a local
+assignment, where \cs{DeclareRelationFont} does a global assignment.
 %</en>
+%<*ja>
+このコマンドは \cs{DeclareRelationFont} とローカルな指定であることを除いて
+ほとんど同じである(\cs{DeclareRelationFont} はグローバル).
+%</ja>
 
-
-\subsection{\cs{inhibitglue}}
+\item[\cs{userelfont}]
 %<*en>
-\cs{inhibitglue} suppresses the insertion of \textbf{JAglue}.
-The following is an example, using a special JFM that there will be a glue between
-the beginning of a box and ``あ'', and also between ``あ''~and~``ウ''.
+Change current alphabetic font encoding/family/\dots\ to the `accompanied' alphabetic
+            font family with respect to current Japanese font family,
+            which was set by
+            \cs{DeclareRelationFont} or \cs{SetRelationFont}.
+Like \cs{fontfamily}, \cs{selectfont} is required to take an effect.
 %</en>
 %<*ja>
-\cs{inhibitglue} は\textbf{JAglue}の挿入を抑制する.
-以下は,ボックスの始めと「あ」の間,「あ」「ウ」の間にグルーが入る特別なJFMを用いた例で
-ある.
+現在の欧文フォントのエンコーディング/ファミリ/…… を,
+\cs{DeclareRelationFont} か \cs{SetRelationFont} で指定された
+現在の和文フォントに対応する「従属欧文」フォントに変更する.
+\cs{fontfamily} のように,有効にするためには \cs{selectfont} が必要である.
 %</ja>
 
-\begin{LTXexample}[width=0.4\textwidth]
-\jfont\g=file:KozMinPr6N-Regular.otf:jfm=test \g
-\fbox{\hbox{あウあ\inhibitglue ウ}}
-\inhibitglue\par\noindent あ1
-\par\inhibitglue\noindent あ2
-\par\noindent\inhibitglue あ3
-\par\hrule\noindent あoff\inhibitglue ice
-\end{LTXexample}
-
+\item[\cs{adjustbaseline}]
 %<*en>
-With the help of this example, we remark the specification of \cs{inhibitglue}:
+In \pLaTeXe, \cs{adjustbaseline} sets \cs{tbaselineshift}
+to match the vertical center of ``M'' and that of ``あ''  in vertical typesetting:
+\[
+\text{\cs{tbaselineshift}} \leftarrow
+\frac{(h_{\text{M}}+d_{\text{M}}) - (h_{\text{あ}}+d_{\text{あ}})}2
+  + d_{\text{あ}} - d_{\text{M}},
+\]
+where $h_{a}$~and~$d_{a}$ denote the height of ``$a$'' and the depth, respectively.
+In \LuaTeX-ja, this \cs{adjustbaseline} does similar task, namely setting the
+            \Param{talbaselineshift} parameter.
+If the \LaTeX\ is 2015/10/01 release or later, \LuaTeX-ja use a Japanese
+character whose character class is zero,  instead of `あ'.
 %</en>
 %<*ja>
-この例を援用して,\cs{inhibitglue} の仕様について述べる.
+\pLaTeXe では,\cs{adjustbaseline} は縦組時に「M」と「あ」の中心線を一致させるために,
+\cs{tbaselineshift} を設定する役割を持っていた:
+\[
+\text{\cs{tbaselineshift}} \leftarrow
+\frac{(h_{\text{M}}+d_{\text{M}}) - (h_{\text{あ}}+d_{\text{あ}})}2
+  + d_{\text{あ}} - d_{\text{M}},
+\]
+ここで,$h_{a}$,~$d_{a}$はそれぞれ「$a$」の高さ・深さを表す.
+\LuaTeX-jaにおいても\cs{adjustbaseline} は同様に\Param{talbaselineshift}パラメータの調整処
+            理を行っている.
+
+同時に,これも\pLaTeXe の \cs{adjustbaseline} で同様の処理が行われていたが,
+「漢」の寸法を元に(本節の最初に述べた,小文字で始まる)\cs{cht}, \cs{cwd}
+といった長さ変数を設定する.
+
+なお,\LaTeX が2015/10/01版以降の場合は,「あ」「漢」の代わりに
+「文字クラス0の和文文字」を用いる.
 %</ja>
-\begin{itemize}
+
+\item[\cs{fontfamily}\{<family>\}]
 %<*en>
-\item The call of \cs{inhibitglue} in the (internal) vertical mode is
-      simply ignored.
+As in \LaTeXe, this command changes current font family (alphabetic, Japanese,~\emph{or both})
+to <family>. See Subsection~\ref{ssec-fontfamilycmd} for detail.
 %</en>
 %<*ja>
-\item \emph{\cs{inhibitglue} の垂直モード中での呼び出しは意味を持たない}\footnote{%
-  この点は\TeX~Live~2014での\pTeX における \cs{inhibitglue} の仕様変更と同じである.
-}.
-4行目の入力で有効にならないのは,\cs{inhibitglue} の時点では垂直モードであり,
-\cs{noindent} の時点で水平モードになるからである.
+元々の\LaTeXe におけるものと同様に,このコマンドは現在のフォントファミリ(欧文,
+和文,\emph{もしくは両方})を<family>に変更する.詳細は\ref{ssec-fontfamilycmd}節を参照すること.
 %</ja>
 
-%<*en>
-\item The call of \cs{inhibitglue} in the (restricted) horizontal
-      mode is only effective on the spot; does not get over boundary of
-      paragraphs. Moreover, \cs{inhibitglue} cancels ligatures and
-      kernings, as shown in the last line of above example.
-%</en>
+
+\begin{figure}[!tb]
+\begin{LTXexample}[pos=b]
+\DeclareKanjiFamily{JY3}{edm}{}
+\DeclareFontShape{JY3}{edm}{m}{n}    {<-> s*KozMinPr6N-Regular:jfm=ujis;}{}
+\DeclareFontShape{JY3}{edm}{m}{green}{<-> s*KozMinPr6N-Regular:jfm=ujis;color=007F00}{}
+\DeclareFontShape{JY3}{edm}{m}{blue} {<-> s*KozMinPr6N-Regular:jfm=ujis;color=0000FF}{}
+\DeclareAlternateKanjiFont{JY3}{edm}{m}{n}{JY3}{edm}{m}{green}{"4E00-"67FF,{-2}-{-2}}
+\DeclareAlternateKanjiFont{JY3}{edm}{m}{n}{JY3}{edm}{m}{blue}{ "6800-"9FFF}
+{\kanjifamily{edm}\selectfont
+日本国民は、正当に選挙された国会における代表者を通じて行動し、……}
+\end{LTXexample}
+%<ja>\caption{\cs{DeclareAlternateKanjiFont} の使用例}
+%<en>\caption{An example of \cs{DeclareAlternateKanjiFont}}
+\label{fig:altkanji}
+\end{figure}
+
+\item[\cs{DeclareAlternateKanjiFont}\{<base-encoding>\}\{<base-family>\}\{<base-series>\}\{<base-shape>\}\\
+  \null\hfill\{<alt-encoding>\}\{<alt-family>\}\{<alt-series>\}\{<alt-shape>\}\{<range>\}]
 %<*ja>
-\item \cs{inhibitglue} の(制限された)水平モード中での呼び出しはその場でのみ
-  有効であり,段落の境界を乗り越えない.
-  さらに,\cs{inhibitglue} は上の例の最終行のように(欧文における)リガチャとカーニングを
-  打ち消す.これは,\cs{inhibitglue} が内部的には「現在のリスト中にwhatsitノードを
-  追加する」ことを行なっているからである.
+\ref{ssec-altfont}節の\
+\cs{ltjdeclarealtfont} と同様に,前半の4引数の
+和文フォント(基底フォント)のうち<range>中の文字を
+第5から第8引数の和文フォントを使って組むように指示する.
+使用例を図\nobreak\ref{fig:altkanji}に載せた.
+
+\begin{itemize}
+ \item
+\cs{ltjdeclarealtfont} では基底フォント・置き換え先和文フォントはあらかじめ定義されてい
+            ないといけない(その代わり即時発効)であったが,
+\cs{DeclareAlternateKanjiFont} の設定が
+実際に効力が発揮するのは,書体変更やサイズ変更を行った時,
+あるいは(これらを含むが)\cs{selectfont} が実行された時である.
+ \item
+段落やhboxの最後での設定値が段落/hbox全体にわたって通用する点や,
+<range>に負数$-n$を指定した場合,それが「基底フォントの文字クラス$n$に属する文字全体」
+と解釈されるのは \cs{ltjdeclarealtfont} と同じである.
+\end{itemize}%
 %</ja>
+%<*en>
+As \cs{ltjdeclarealtfont}~(Subsection~\ref{ssec-altfont}),
+characters in <range> of the Japanese font (we say the \emph{base font})
+which specified by first 4 arguments are typeset
+by the Japanese font which specified by fifth to eighth arguments
+(we say the \emph{alternate font}).
+An example is shown in \autoref{fig:altkanji}.
+
+\begin{itemize}
+ \item
+In \cs{ltjdeclarealtfont}, the base font and the alternate font must be already defined.
+But this \cs{DeclareAlternateKanjiFont} is not so.
+In other words, \cs{DeclareAlternateKanjiFont} is effective only after
+current Japanese font is changed, or only after \cs{selectfont} is executed.
+ \item \dots
+\end{itemize}%
+\vspace{-\medskipamount}
+%</en>
+\end{cslist}
 
 %<*en>
-\item The call of \cs{inhibitglue} in math mode is just ignored.
+As closing this subsection, we shall introduce an example of
+\cs{SetRelationFont} and \cs{userelfont}:
 %</en>
 %<*ja>
-\item \cs{inhibitglue} を数式モード中で呼び出した場合はただ無視される.
+この節の終わりに,\cs{SetRelationFont} と \cs{userelfont} の例を
+紹介しておこう.\cs{userelfont} の使用によって,「abc」の部分のフォントが
+Avant Garde (OT1/pag/m/n) に変わっていることがわかる.
 %</ja>
+\begin{LTXexample}[width=0.3\textwidth]
+\makeatletter
+\SetRelationFont{JY3}{\k@family}{m}{n}{OT1}{pag}{m}{n}
+  % \k@family: current Japanese font family
+\userelfont\selectfont あいうabc
+\end{LTXexample}
 
-%<*ja>
-\item \LaTeX で\LuaTeX-ja を使用する場合は,
-\cs{inhibitglue} の代わりとして \verb+\<+ を使うことができる.
-既に \verb+\<+ が定義されていた場合は,\LuaTeX-ja の読み込みで強制的に上書きされるので
-注意すること.
-%</ja>
-\end{itemize}
+%<en>\subsection{Detail of \cs{fontfamily} command}
+%<ja>\subsection{\cs{fontfamily}コマンドの詳細}
+\label{ssec-fontfamilycmd}
+%<*en>
+In this subsection, we describe when \cs{fontfamily}<family> changes current
+Japanese/alphabetic font family. Basically, current Japanese fotn family is changed to
+<family> if it is recognized as a Japanese font family, and similar with alphabetic font
+family. There is a case that current Japanese/alphabetic font family are both changed to
+<family>, and another case that <family> isn't recognized as a Japanese/alphabetic font
+family either.
 
+\paragraph{Recognition as Japanese font family}
+First, Whether Japanese font family will be changed is determined in following order.
+This order is very similar to \cs{fontfamily} in \pLaTeXe, but we re-implemented in Lua.
+We use an auxiliary list~$N_{\mathrm{J}}$.
+%</en>
+%<*ja>
+本節では,\cs{fontfamily}<family> がいつ和文/欧文フォントファミリを変更するかについて解説
+する.基本的には,<family>が和文フォントファミリだと認識されれば和文側が,欧文フォントファ
+ミリだと認識されれば欧文側が変更される.どちらとも認識されれば和文・欧文の両方が変わるこ
+とになるし,当然どちらとも認識されないこともある.
 
-\subsection{\cs{ltjfakeboxbdd}, \cs{ltjfakeparbegin}}
+\paragraph{和文フォントファミリとしての認識}
+まず,<family>が和文フォントファミリとして認識されるかは以下の順序で決定される.
+これは\pLaTeXe の \cs{fontfamily} にとても似ているが,ここではLuaによって実装している.
+補助的に「和文フォントファミリではないと認識された」ファミリを格納したリスト$N_{\mathrm{J}}$を用いる.
+%</ja>
+\begin{enumerate}
 %<*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.
+\item If the family~<family> has been defined already by \cs{DeclareKanjiFamily},
+      <family> is recognized as a  Japanese font family.
+      Note that <family> need not be defined under \emph{current} Japanese font encoding.
 %</en>
 %<*ja>
-リスト環境内での\cs{item}で始まる各項目などでは,
-「段落最初の鍵括弧が余計に半角字下げされる」など,
-JFMにある\texttt{'parbdd'}, \texttt{'boxbdd'}の指定が見かけ上破綻していることがある.
-
-これは\TeX が\cs{everypar}を用いて段落開始時に記号類や空白などを挿入してしまっているため,
-段落最初の鍵括弧が実際には段落最初のノードではないことに起因する.以下に例を示した.
+\item ファミリ<family>が既に \cs{DeclareKanjiFamily} によって定義されている場合,
+      <family>は和文フォントファミリであると認識される.
+      ここで,<family>は現在の和文フォントエンコーディングで定義されていなくてもよい.
 %</ja>
-\begin{LTXexample}[width=0.3\textwidth]
-\parindent1\zw
-\noindent ああああああああ\par % for comparison
-「ああああああ \par            % normal paragraph
-
-\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:
+\item If the family~<family> has been listed in a list~$N_{\mathrm{J}}$, this means
+      that <family> is not a Japanese font family.
 %</en>
 %<*ja>
-\cs{ltjfakeboxbdd}, \cs{ltjfakeparbegin}はこの状況を改善する命令である.
-実際には\cs{everypar}の末尾にこれらを追加するという使い方がほとんどになるだろう.
-\begin{itemize}
-  \item \cs{ltjfakeparbegin}は,実行された箇所が「インデントあり段落の開始」であると\LuaTeX-jaの
-  和文処理グルー挿入処理に認識させる.この命令の直前に\textbf{JAchar}があった場合,
-  この文字の後ろに入るグルー等の処理については未定義である
-  \footnote{%
-    この命令と同等の内容は,\cs{dirrctlua}の形で\Pkg{ltjsclasses}内で以前から使われていた.
-    一般ユーザでも利用しやすくするため,20170505.0版では新たに命令として定義した.
-  }.
-  \item \cs{ltjfakeboxbdd}は,実行された箇所が「ボックスの先頭と末尾」であると\LuaTeX-jaの
-  和文処理グルー挿入処理に認識させる.
-\end{itemize}
-例えば,先ほどの例に対して適用すると,次のようになる.
+\item ファミリ<family>がリスト$N_{\mathrm{J}}$に既に含まれていれば,それは
+      <family>が和文フォントファミリではないことを意味する.
 %</ja>
-\begin{LTXexample}[width=0.3\textwidth]
-\parindent1\zw
-\noindent ああああああああ\par % for comparison
-「ああああああ \par            % normal paragraph
-
-\everypar{\null\ltjfakeparbegin}
-「ああああああ \par
-\end{LTXexample}
-
-
-\subsection{\cs{ltjdeclarealtfont}}
-\label{ssec-altfont}
 %<*en>
-Using \cs{ltjdeclarealtfont}, one can ``compose'' more than one Japanese fonts.
-This \cs{ltjdeclarealtfont} uses in the following form:
-\begin{quote}
-\ttfamily \textbackslash ltjdeclarealtfont<base\_font\_cs><alt\_font\_cs>\{<range>\}
-\end{quote}
-where  <base\_font\_cs>~and~<alt\_font\_cs> are defined by \cs{jfont}.
-Its meaning is
-\begin{quote}
-If the current Japanese font is <base\_font\_cs>, characters which belong to <range>
-is typeset by another Japanese font <alt\_font\_cs>, instead of <base\_font\_cs>.
-\end{quote}
-Here <range> is a comma-separated list of character codes, but also accepts negative integers:
-$-n$~($n≥1$) means that all characters of character classes~$n$, with respect to JFM used
-by <base\_font\_cs>. Note that characters which do not exist in <alt\_font\_cs> are
-ignored.
+\item If the \Pkg{luatexja-fontspec} package is loaded, we stop here, and <family> is not
+      recognized as a Japanese font family.
 
-For example, if \cs{hoge} uses \texttt{jfm-ujis.lua}, the standard JFM of \LuaTeX-ja,
-then
-\begin{lstlisting}
-\ltjdeclarealtfont\hoge\piyo{"3000-"30FF, {-1}-{-1}}
-\end{lstlisting}
-does
-\begin{quote}
-If the current Japanese font is \cs{hoge}, \texttt{U+3000}--\texttt{U+30FF}
-and characters in class~1 (ideographic opening brackets)
-are typeset by \cs{piyo}.
-\end{quote}
+      If the \Pkg{luatexja-fontspec} package is \emph{not} loaded,
+now \LuaTeX-ja looks whether there exists a Japanese font encoding~<enc> such that
+      a font definition named \texttt{<enc><family>.fd} (the file name is
+      all lowercase) exists. If so, <family> is recognized as a  Japanese font family (the font definition file won't be loaded here).
+      If not, <family> is not a Japanese font family, and
+      <family> is appended to the list~$N_{\mathrm{J}}$.
 %</en>
 %<*ja>
-\cs{jfont} の書式を見ればわかるように,基本的には\LuaTeX-jaにおける1つの和文フォントに
-使用出来る「実際のフォント」は1つである.
-しかし,\cs{ltjdeclarealtfont} を用いると,この原則から外れることができる.
-
-\cs{ltjdeclarealtfont} は以下の書式で使用する:
-\begin{quote}
-\ttfamily \textbackslash ltjdeclarealtfont<base\_font\_cs><alt\_font\_cs>\{<range>\}
-\end{quote}
-これは「現在の和文フォント」が<base\_font\_cs>であるとき,
-<range>に属する文字は<alt\_font\_cs>を用いて組版される,という意味である.
-\begin{itemize}
- \item <base\_font\_cs>, <alt\_font\_cs>は
-\cs{jfont} によって定義された和文フォントである.
- \item <range>は文字コードの範囲を表すコンマ区切りのリストであるが,
-   例外として負数$-n$は「<base\_font\_cs>のJFMの文字クラス$n$に属する全ての文字」
-   を意味する.
+\item もし\Pkg{luatexja-fontspec}パッケージが読み込まれていれば,ここで終了であり,
+<family>は和文フォントファミリとして認識されないことになる.
 
-<range>中に<alt\_font\_cs>中に実際には存在しない文字が指定された場合は,
-その文字に対する設定は無視される.
-\end{itemize}
+もし\Pkg{luatexja-fontspec}パッケージが読み込まれていなければ,和文エンコーディング<enc>で
+フォント定義ファイル\texttt{<enc><family>.fd}(ファイル名は全て小文字)が存在するようなも
+      のがあるかどうかを調べる.
+存在すれば,<family>は和文フォントファミリと認識される(フォント定義ファイルは読み込まれな
+      い).
+存在しなければ,<family>は和文フォントファミリでないと認識され,リスト$N_{\mathrm{J}}$に<family>を追加することでそれを記憶する.
 
-例えば,\cs{hoge} のJFMが\LuaTeX-ja標準の
-\ \texttt{jfm-ujis.lua} であった場合,
-\begin{lstlisting}
-\ltjdeclarealtfont\hoge\piyo{"3000-"30FF, {-1}-{-1}}
-\end{lstlisting}
-は「\cs{hoge} を利用しているとき,
-\texttt{U+3000}--\texttt{U+30FF}と
-文字クラス1(開き括弧類)中の文字だけは \cs{piyo} を用いる」
-ことを設定する.\verb+{-1}-{-1}+ という変わった指定の仕方をしているのは,
-普通に \texttt{-1} と指定したのでは正しく$-1$と読み取られないという
-マクロの都合による.
 %</ja>
+\end{enumerate}
 
+%<*en>
+\paragraph{Recognition as alphabetic font family}
+Next, whether alphabetic font family will be changed is determined in following order.
+We use auxiliary lists $F_{\mathrm{A}}$~and~$N_{\mathrm{A}}$,
+%</en>
 %<*ja>
-\subsection{\cs{ltjalchar} と \cs{ltjjachar}}
-文字コードが$\text{<chr\_code>}~(\geq 128=\mathtt{0x80})$の文字を
-\ \cs{char} プリミティブを使い \cs{char}<chr\_code> として出力させると,
-その文字の属する文字範囲(\ref{ssec-setrange}節参照)によって
-\textbf{ALchar}か\textbf{JAchar}か,つまり欧文フォントで出力されるか和文フォントで出力され
-るかが決まる.
-
-文字範囲の設定を無視し,文字コードが$\text{<chr\_code>}~(\geq 128=\mathtt{0x80})$の文字を強制的に
-\textbf{ALchar}, \textbf{JAchar}で出力する命令がそれぞれ
-\ \cs{ltjalchar},~\cs{ltjjachar} である.使用方法は \cs{char} と同じく
-\ \cs{ltjalchar}<chr\_code>, \cs{ltjjachar}<chr\_code>とすればよい.
-<chr\_code>が127以下の場合は,\cs{ltjjachar} であっても\textbf{ALchar}として出力されること
-に注意.
-
-以下は\ref{ssec-setrange}節に載せた例に,\cs{char} の動作を追加したものである.
-\begin{LTXexample}[width=0.25\textwidth]
-\gtfamily\large % default, ALchar, JAchar
-¶, \char`¶, \ltjalchar`¶, \ltjjachar`¶\\    % default: ALchar
-α, \char`α, \ltjalchar`α, \ltjjachar`α  % default: JAchar
-\end{LTXexample}
+\paragraph{欧文フォントファミリとしての認識}
+同様に,<family>が和文フォントファミリとして認識されるかは以下の順序で決定される.
+補助的に「欧文フォントファミリと既に認識された」ファミリのリスト$F_{\textrm{A}}$と,
+「欧文フォントファミリではないと認識された」ファミリを格納したリスト$N_{\mathrm{A}}$を用いる.
 %</ja>
 
-%<en>\section{Commands for \LaTeXe}
-%<ja>\section{\LaTeXe 用の命令}
-
-%<en>\subsection{Patch for NFSS2}
-%<ja>\subsection{NFSS2へのパッチ}
-\label{ssec-nfsspat}
-
+\begin{enumerate}
 %<*en>
-Japanese patch for NFSS2 in \LuaTeX-ja
-is based on \texttt{plfonts.dtx} which plays the same role in \pLaTeXe.
-We will describe
-commands which are not described in Subsection~\ref{ssec-chgfnt}.
+\item If the family~<family> has been listed in a list~$F_{\mathrm{A}}$,
+      <family> is recognized as an alphabetic font family.
 %</en>
 %<*ja>
-\LuaTeX-jaのNFSS2への日本語パッチは
-\pLaTeXe で同様の役割を果たす \texttt{plfonts.dtx} をベースに,
-和文エンコーディングの管理等をLuaで書きなおしたものである.
-ここでは\ref{ssec-chgfnt}節で述べていなかった命令について
-記述しておく.
+\item ファミリ<family>がリスト$F_{\mathrm{A}}$に既に含まれていれば,
+      <family>は欧文フォントファミリと認識される.
 %</ja>
-
-\begin{cslist}%
-\item[\normalfont\bfseries %
-%<ja>追加の長さ変数達
-%<en>additonal dimensions
-]
 %<*en>
-Like \pLaTeXe, \LuaTeX-ja defines the following dimensions
-for information of current Japanese font:
+\item If the family~<family> has been listed in a list~$N_{\mathrm{A}}$, this means
+      that <family> is not  an alphabetic font family.
 %</en>
 %<*ja>
-\pLaTeXe と同様に,\LuaTeX-jaは「現在の和文フォントの情報」を格納する長さ変数
+\item ファミリ<family>がリスト$N_{\mathrm{A}}$に既に含まれていれば,それは
+      <family>が欧文フォントファミリではないことを意味する.
 %</ja>
-\begin{quote}
- \cs{cht}~(height), \cs{cdp}~(depth), \cs{cHT}~(sum of former two),\\
- \cs{cwd}~(width), \cs{cvs}~(lineskip), \cs{chs}~(equals to \cs{cwd})
-\end{quote}
-%<en>and its \cs{normalsize} version:
-%<ja>と,その \cs{normalsize} 版である
-\begin{quote}
- \cs{Cht}~(height), \cs{Cdp}~(depth),
- \cs{Cwd}~(width), \\\cs{Cvs}~(equals to \cs{baselineskip}),
- \cs{Chs}~(equals to \cs{cwd})%
-%<en>.
-\end{quote}
+%<*en>
+\item If there exists an alphabetic font encoding such that the family~<family> has been
+      defined under it, <family> is recognized as an alphabetic font family, and
+      to memorize this, <family> is appended to the list~$F_{\mathrm{A}}$.
+%</en>
 %<*ja>
-を定義している.なお,\cs{cwd} と \cs{zw},また
-\cs{cHT} と \cs{zh} は一致しない可能性がある.なぜなら,
-\cs{cwd},~\cs{cHT} は「あ」の寸法から決定されるのに対し,
-\cs{zw} と \cs{zh} はJFMに指定された値に過ぎないからである.
+\item ある欧文フォントエンコーディング下でファミリ<family>が定義されていれば,
+      <family>は欧文フォントファミリと認識され,リスト$F_{\mathrm{A}}$に<family>を追加することでこのことを記憶する.
 %</ja>
 %<*en>
-Note that \cs{cwd}~and~\cs{cHT} may  differ from \cs{zw}~and~\cs{zh}
-respectively.
-On the one hand the former dimensions are determined from the character ``あ'',
-but on the other hand \cs{zw}~and~\cs{zh} are specified by JFM.
+\item Now \LuaTeX-ja looks whether there exists an alphabetic font encoding~<enc> such that
+      a font definition named \texttt{<enc><family>.fd} (the file name is
+      all lowercase) exists. If so, current alphabetic font family will be changed to
+      <family>~(the font definition file won't be loaded here).
+      If not, current alphabetic font family won't be changed, and
+      <family> is appended to the list~$N_{\mathrm{A}}$.
 %</en>
+%<*ja>
+\item 最終段階では,欧文エンコーディング<enc>で
+フォント定義ファイル\texttt{<enc><family>.fd}(ファイル名は全て小文字)が存在するようなも
+      のがあるかどうかを調べる.
+存在すれば,<family>は欧文フォントファミリと認識される(フォント定義ファイルは読み込まれない).
+存在しなければ,<family>は欧文フォントファミリと認識されないので,リスト$N_{\mathrm{A}}$に
+      <family>を追加してそのことを記憶する.
+%</ja>
+\end{enumerate}
 
-
-\item[\cs{DeclareYokoKanjiEncoding}\{<encoding>\}\{<text-settings>\}\{<math-settings>\}]
-%<en>\ \\[\dimexpr-\medskipamount-2\baselineskip\relax]
-%<ja>\ \\[\dimexpr-2\baselineskip\relax]
-\item[\cs{DeclareTateKanjiEncoding}\{<encoding>\}\{<text-settings>\}\{<math-settings>\}]
+%<*en>
+Also, each call of \cs{DeclareFontFamily} \emph{after} loading of \LuaTeX-ja makes
+the second argument (family) is appended to the list~$F_{\mathrm{A}}$.
+%</en>
+%<*ja>
+また,\cs{DeclareFontFamily}が\LuaTeX-jaの読み込み後に実行された場合は,
+第2引数(ファミリ名)が自動的に$F_{\mathrm{A}}$に追加される.
+%</ja>
 
 %<*en>
-In NFSS2 under \LuaTeX-ja, distinction between alphabetic fonts
-            and Japanese fonts are only made by their
-            encodings. For example, encodings OT1 and T1 are encodings for
-            alphabetic fonts, and Japanese fonts cannot
-            have these encodings. These command define a new encoding
-            scheme for Japanese font families.
+The above order is very similar to \cs{fontfamily} in \pLaTeXe, but more complicated (clause~3.).
+This is because  \pLaTeXe\ is a \emph{format} however \LuaTeX-ja is not,
+hence \LuaTeX-ja does not know calls of \cs{DeclareFontFamily} \emph{before} itself is
+loaded.
 %</en>
 %<*ja>
-\LuaTeX-jaのNFSS2においては,欧文フォントと和文フォントは
-そのエンコーディングによってのみ区別される.
-例えば,OT1とT1のエンコーディングは欧文フォントのエンコーディングであり,
-和文フォントはこれらのエンコーディングを持つことはできない.
-これらコマンドは横組用・縦組用和文フォントのための新しいエンコーディングを
-それぞれ定義する.
+以上の方針は\pLaTeXe における \cs{fontfamily} にやはり類似しているが,3.が加わり若干複雑になっている.
+それは\pLaTeXe がフォーマットであるのに対し\LuaTeX-jaはそうでないため,
+\LuaTeX-jaは自身が読み込まれる前にどういう\cs{DeclareFontFamily}の呼び出しがあったか
+把握できないからである.
 %</ja>
 
-\item[\cs{DeclareKanjiEncodingDefaults}\{<text-settings>\}\{<math-settings>\}]
-%<en>\ \\[\dimexpr-\medskipamount-2\baselineskip\relax]
-%<ja>\ \\[\dimexpr-2\baselineskip\relax]
-\item[\cs{DeclareKanjiSubstitution}\{<encoding>\}\{<family>\}\{<series>\}\{<shape>\}]
-%<en>\ \\[\dimexpr-\medskipamount-2\baselineskip\relax]
-%<ja>\ \\[\dimexpr-2\baselineskip\relax]
-\item[\cs{DeclareErrorKanjiFont}\{<encoding>\}\{<family>\}\{<series>\}\{<shape>\}\{<size>\}]
-
+%<en>\paragraph{Remarks}
+%<ja>\paragraph{注意}
 %<*en>
-The above 3~commands are just the counterparts for \cs{DeclareFontEncodingDefaults} and~others.
+Of course, there is a case that <family> is not recognized as a Japanese font family,  nor
+an alphabetic font family.
+In this case, \LuaTeX-ja treats ``the argument <family> is wrong'', so
+set both current alphabetic and Japanese font family to <family>,
+to use the default family for font substitution.
 %</en>
 %<*ja>
-上記3つのコマンドはちょうどNFSS2 の \cs{DeclareFontEncodingDefaults} などに対応するものである.
+さて,引数によっては,「和文フォントファミリとも欧文フォントファミリも認識されなかった」
+という事態もあり得る.
+  この場合,引数<family>は不正だった,ということになるので,
+和文・欧文の両方のフォントファミリを<family>に設定し,代用フォントが使われるに任せることにする.
 %</ja>
 
-\item[\cs{reDeclareMathAlphabet}\{<unified-cmd>\}\{<al-cmd>\}\{<ja-cmd>\}]
+%<*en>
+\subsection{Notes on \cs{DeclareTextSymbol}}
+From \LaTeX~2017/01/01, the standard encoding of \LuaLaTeX\ is changed to the \texttt{TU}
+encoding. This menas that symbols defined by \texttt{T1}~and~\texttt{TS1} encodings can be used
+without loading any package. To produces these symbols in alphabetic fonts in \LuaTeX-ja,
+\LuaTeX-ja patches \cs{DeclareTextSymbol}, and reloads \texttt{tuenc.def}.
 
-% ToDo: en
+Under original definition of \cs{DeclareTextSymbol},
+internal commands which is defined by \cs{DeclareTextSymbol} (such as \cs{T1\cs{textquotedblleft}})
+are \textit{chardef} tokens. However, this no longer holds in \LuaTeX-ja;
+for example, the meaning of \cs{TU\cs{textquotedblleft}} is \cs{ltjalchar8220\ltjalchar"2423 }.
+%</en>
 %<*ja>
-和文・欧文の数式用フォントファミリを一度に変更する命令を作成する.
-具体的には,欧文数式用フォントファミリ変更の命令<al-cmd>(\cs{mathrm} 等)と,和文数式用フォ
-            ントファミリ変更の命令<ja-cmd>(\cs{mathmc} 等)の2つを同時に行う命令として
-            <unified-cmd>を(再)定義する.実際の使用では<unified-cmd>と
-            <al-cmd>に同じものを指定する,すなわち,<al-cmd>で和文側も変
-            更させるようにするのが一般的と思われる.
+\subsection{\cs{DeclareTextSymbol}使用時の注意}
+\LaTeX~(2017/01/01)以降では,\texttt{TU}エンコーディングが標準となり,特に何もしなくても
+\texttt{T1},~\texttt{TS1}エンコーディングで定義されていた記号類が
+使えるようになった.\LuaTeX-jaではこれらの命令によって記号が欧文フォントで出力されるようにするため,
+\cs{DeclareTextSymbol}命令を改変し,そして\texttt{TU}エンコーディングの定義である
+\texttt{tuenc.def}を再読込している.
 
-本命令は
-\begin{center}\tt
-<unified-cmd>\{<arg>\}\quad$\longrightarrow$\quad
-(<al-cmd>の1段展開結果)\{<ja-cmd>の1段展開結果)\{<arg>\}\}
-\end{center}
-と定義を行うので,使用には注意が必要である:
-%<en>\vspace{-\medskipamount}
-\begin{itemize}
-\item <al-cmd>,~<ja-cmd>は既に定義されていなければならない.
-      \cs{reDeclareMathAlphabet}\\の後に
-両命令の内容を再定義しても,<unified-cmd>の内容にそれは反映されない.
-\item <al-cmd>,~<ja-cmd>に\verb+\@mathrm+などと \texttt{@} をつけた命令を指定した時の動作は保証できない.
-\end{itemize}
+従来は \cs{DeclareTextSymbol} で内部的に定義された\cs{T1\cs{textquotedblleft}}といった命令は
+\textit{chardef}トークンであった.しかし前段落で述べた改変によりもはやそうではなくなっており,例えば
+\cs{TU\cs{textquotedblleft}}は \cs{ltjalchar8220\ltjalchar"2423 } という定義になっている.%"
 %</ja>
 
-\item[\cs{DeclareRelationFont}\{<ja-encoding>\}\{<ja-family>\}\{<ja-series>\}\{<ja-shape>\}\\*
-  \null\hfill\{<al-encoding>\}\{<al-family>\}\{<al-series>\}\{<al-shape>\}]
+\begin{table}[t]
+  \centering\small
+  \caption{strut}\label{tab:strutbox}
+  \begin{tabular}{llcccl}
+    \toprule
+    \textbf{box}&\textbf{direction}&\textbf{width}&\textbf{height}&\textbf{depth}
+    &\textbf{user command}\\
+    \midrule
+  \cs{ystrutbox}&yoko&0&0.7\cs{baselineskip}&0.3\cs{baselineskip}&\cs{ystrut}\\\midrule
+  \cs{tstrutbox}&tate, utod&0&0.5\cs{baselineskip}&0.5\cs{baselineskip}&\cs{tstrut}\\\midrule
+  \cs{dstrutbox}&dtou&0&0.7\cs{baselineskip}&0.3\cs{baselineskip}&\cs{dstrut}\\\midrule
+  \cs{zstrutbox}&---&0&0.7\cs{baselineskip}&0.3\cs{baselineskip}&\cs{zstrut}\\\bottomrule
+  \end{tabular}
+\end{table}
 %<*en>
-This command sets the ``accompanied'' alphabetic font (given by the latter 4~arguments)
-with respect to a Japanese font given by the former 4~arguments.
+\subsection{\cs{strutbox}}
+As \pLaTeX~(2017/04/08 or later), \cs{strutbox} is \emph{a macro} which is expanded to one of
+\cs{ystrutbox},~\cs{tstrutbox},~and~\cs{dstrutbox}
+(all of them are shown in \autoref{tab:strutbox}), according to the current direction.
+Similarly, \cs{strut} now uses one of these boxes.
 %</en>
 %<*ja>
-いわゆる「従属欧文」を設定するための命令である.前半の4引数で表される和文フォントに対して,
-そのフォントに対応する「従属欧文」のフォントを後半の4引数により与える.
+\subsection{\cs{strutbox}}
+\pLaTeX~2017/04/08以降と同じように,
+\cs{strutbox}は現在の組方向によって\cs{ystrutbox}, \cs{tstrutbox}, \cs{dstrutbox}の
+いずれかに展開される\emph{マクロ}となっている(これらについては\autoref{tab:strutbox}参照).
+同様に\cs{strut}もこの3\nobreak ボックスのいずれかを組方向によって使い分けるようになっている.
+
+\cs{zstrutbox}はutod方向(\pTeX でいう縦数式ディレクション)で使われる支柱ボックスであるが,
+実際に使われるのは\cs{zstrut}が明示的に発行された時,そして
+\Pkg{lltjext}パッケージで追加される組方向指定で \texttt{<u>} を指定した時,および
+周囲が縦組の状況で \texttt{<z>} を指定した時に限られている.
 %</ja>
-\item[\cs{SetRelationFont}]
+
 %<*en>
-This command is almost same as \cs{DeclareRelationFont}, except that this command does a local
-assignment, where \cs{DeclareRelationFont} does a global assignment.
+\section{Addon packages}
+\LuaTeX-ja has several addon packages.
+These addons are written as \LaTeX\ packages, but
+\Pkg{luatexja-otf} and~\Pkg{luatexja-adjust} can be loaded in plain \LuaTeX\
+by \cs{input}.
 %</en>
 %<*ja>
-このコマンドは \cs{DeclareRelationFont} とローカルな指定であることを除いて
-ほとんど同じである(\cs{DeclareRelationFont} はグローバル).
+\section{拡張パッケージ}
+\LuaTeX-jaには(動作には必須ではないが)自由に読み込める拡張が付属している.
+これらは\LaTeX のパッケージとして制作しているが,
+\Pkg{luatexja-otf}と\Pkg{luatexja-adjust}についてはplain \LuaTeX でも\
+\cs{input} で読み込み可能である.
+%</ja>
+\subsection{\Pkg{luatexja-fontspec}}
+\label{ssec-fontspec2}
+%<*en>
+As described in Subsection~\ref{ssec-fontspec}, this optional package
+provides the counterparts for several commands defined in the
+\Pkg{fontspec} package (requires \Pkg{fontspec}~v2.4).
+In addition to OpenType font features in the original \Pkg{fontspec},
+the following ``font features'' specifications are allowed for
+the commands of Japanese version:
+%</en>
+%<*ja>
+\ref{ssec-fontspec}節で述べたように,この追加パッケージは\Pkg{fontspec}%
+パッケージで定義されているコマンドに対応する和文フォント用のコマンドを提供する.
+
+\Pkg{fontspec}パッケージで指定可能な各種OpenType機能に加えて,和文版のコマンドには
+以下の「フォント機能」を指定することができる:
 %</ja>
 
-\item[\cs{userelfont}]
+
+\begin{cslist}
+\item[CID=<name>\textrm{, }JFM=<name>\textrm{, }JFM-var=<name>]
+
 %<*en>
-Change current alphabetic font encoding/family/\dots\ to the `accompanied' alphabetic
-            font family with respect to current Japanese font family,
-            which was set by
-            \cs{DeclareRelationFont} or \cs{SetRelationFont}.
-Like \cs{fontfamily}, \cs{selectfont} is required to take an effect.
+These 3 keys correspond to \texttt{cid}, \texttt{jfm} and
+\texttt{jfmvar} keys for \cs{jfont}~and~\cs{tfont} respectively.
+See Subsections~\ref{ssec-jfont} and \ref{ssec-psft} for details
+ of \texttt{cid}, \texttt{jfm} and
+\texttt{jfmvar} keys.
+
+The \texttt{CID} key is effective only when with \texttt{NoEmbed}
+described below. The same JFM cannot be used in both horizontal Japanese fonts and
+            vertical Japanese fonts, hence the \texttt{JFM} key
+will be actually used in \texttt{YokoFeatures}~and~\texttt{TateFeatures} keys.
 %</en>
 %<*ja>
-現在の欧文フォントのエンコーディング/ファミリ/…… を,
-\cs{DeclareRelationFont} か \cs{SetRelationFont} で指定された
-現在の和文フォントに対応する「従属欧文」フォントに変更する.
-\cs{fontfamily} のように,有効にするためには \cs{selectfont} が必要である.
+これら3つのキーはそれぞれ \cs{jfont},~\cs{tfont}に対する
+\texttt{cid}, \texttt{jfm}, \texttt{jfmvar}キーとそれぞれ対応する.
+\texttt{cid}, \texttt{jfm}, \texttt{jfmvar}キーの詳細は\ref{ssec-jfont}節
+            と\ref{ssec-psft}節を参照.
+
+\texttt{CID} キーは下の \texttt{NoEmbed} と合わせて用いられたときのみ有効である.
+また,横組用JFMと縦組用JFMは共用できないため,実際に \texttt{JFM} キーを用いる際は
+後に述べる\ \texttt{YokoFeatures} キーや \texttt{TateFeatures}\ の中で用いる
+ことになる.
 %</ja>
 
-\item[\cs{adjustbaseline}]
+\item[NoEmbed]
 %<*en>
-In \pLaTeXe, \cs{adjustbaseline} sets \cs{tbaselineshift}
-to match the vertical center of ``M'' and that of ``あ''  in vertical typesetting:
-\[
-\text{\cs{tbaselineshift}} \leftarrow
-\frac{(h_{\text{M}}+d_{\text{M}}) - (h_{\text{あ}}+d_{\text{あ}})}2
-  + d_{\text{あ}} - d_{\text{M}},
-\]
-where $h_{a}$~and~$d_{a}$ denote the height of ``$a$'' and the depth, respectively.
-In \LuaTeX-ja, this \cs{adjustbaseline} does similar task, namely setting the
-            \Param{talbaselineshift} parameter.
-If the \LaTeX\ is 2015/10/01 release or later, \LuaTeX-ja use a Japanese
-character whose character class is zero,  instead of `あ'.
+By specifying this key, one can use ``name-only'' Japanese font which
+will not be embedded in the output PDF file. See Subsection~\ref{ssec-psft}.
 %</en>
 %<*ja>
-\pLaTeXe では,\cs{adjustbaseline} は縦組時に「M」と「あ」の中心線を一致させるために,
-\cs{tbaselineshift} を設定する役割を持っていた:
-\[
-\text{\cs{tbaselineshift}} \leftarrow
-\frac{(h_{\text{M}}+d_{\text{M}}) - (h_{\text{あ}}+d_{\text{あ}})}2
-  + d_{\text{あ}} - d_{\text{M}},
-\]
-ここで,$h_{a}$,~$d_{a}$はそれぞれ「$a$」の高さ・深さを表す.
-\LuaTeX-jaにおいても\cs{adjustbaseline} は同様に\Param{talbaselineshift}パラメータの調整処
-            理を行っている.
+これを指定することで,PDFに埋め込まれない「名前だけ」のフォントを指定することが
+できる.\ref{ssec-psft}節を参照.
+%</ja>
 
-同時に,これも\pLaTeXe の \cs{adjustbaseline} で同様の処理が行われていたが,
-「漢」の寸法を元に(本節の最初に述べた,小文字で始まる)\cs{cht}, \cs{cwd}
-といった長さ変数を設定する.
+\begin{figure}[!tb]
+\begin{LTXexample}[width=0.25\textwidth]
+\jfontspec[
+  YokoFeatures={Color=007F00}, TateFeatures={Color=00007F},
+  TateFont=KozGoPr6N-Regular
+]{KozMinPr6N-Regular}
+\hbox{\yoko 横組のテスト}\hbox{\tate 縦組のテスト}
+\addjfontfeatures{Color=FF0000}
+\hbox{\yoko 横組}\hbox{\tate 縦組}
+\end{LTXexample}
+%<ja>\caption{\texttt{TateFeatures} 等の使用例}
+%<en>\caption{An example of \texttt{TateFeatures} etc.}
+\label{fig:yokotate-fontspec}
+\end{figure}
 
-なお,\LaTeX が2015/10/01 版以降の場合は,「あ」「漢」の代わりに
-「文字クラス0の和文文字」を用いる.
+\item[Kanjiskip=<bool>]
+%<*ja>
+\pageref{pg:ltjksp}ページで説明した \verb+\jfont+ 中での \texttt{ltjksp} 指定と
+同一の効力を持ち,
+JFM中における \texttt{kanjiskip\_natural}, \texttt{kanjiskip\_stretch},\
+\texttt{kanjiskip\_shrink}キー(\pageref{pg:ksp_nat}ページ)の有効/無効を切り替える.
+標準値は \texttt{true} である.
+%</ja>
+
+\item[TateFeatures=\{<features>\}\textrm{, }TateFont=<font>]
+%<*en>
+The \texttt{TateFeatures} key specifies font features which are only turned~on in
+vertical writing, such as \texttt{Style=VerticalKana}~(\texttt{vkna} feature).
+Similarly, the \texttt{TateFont} key specifies the Japanese font which will be used only
+            in vertical writing.
+A demonstrarion is shown in \autoref{fig:yokotate-fontspec}.
+%</en>
+%<*ja>
+縦組において使用されるフォントや,縦組においてのみ適用されるフォント機能達を
+指定する.使用例は\autoref{fig:yokotate-fontspec}参照.
 %</ja>
 
-\item[\cs{fontfamily}\{<family>\}]
+\item[YokoFeatures=\{<features>\}]
 %<*en>
-As in \LaTeXe, this command changes current font family (alphabetic, Japanese,~\emph{or both})
-to <family>. See Subsection~\ref{ssec-fontfamilycmd} for detail.
+The \texttt{YokoFeatures} key specifies font features which are only turned~on in
+horizontal writing,.
+A demonstrarion is shown in \autoref{fig:yokotate-fontspec}.
 %</en>
 %<*ja>
\85\83ã\80\85ã\81®\LaTeXe ã\81«ã\81\8aã\81\91ã\82\8bã\82\82ã\81®ã\81¨å\90\8cæ§\98ã\81«ï¼\8cã\81\93ã\81®ã\82³ã\83\9eã\83³ã\83\89ã\81¯ç\8f¾å\9c¨ã\81®ã\83\95ã\82©ã\83³ã\83\88ã\83\95ã\82¡ã\83\9fã\83ªï¼\88欧æ\96\87ï¼\8c
-和文,\emph{もしくは両方})を<family>に変更する.詳細は\ref{ssec-fontfamilycmd}節を参照すること
\90\8cæ§\98ã\81«ï¼\8c横çµ\84ã\81«ã\81\8aã\81\84ã\81¦ã\81®ã\81¿é\81©ç\94¨ã\81\95ã\82\8cã\82\8bã\83\95ã\82©ã\83³ã\83\88æ©\9fè\83½é\81\94ã\82\92
+指定する.使用例は\autoref{fig:yokotate-fontspec}参照
 %</ja>
 
 
 \begin{figure}[!tb]
 \begin{LTXexample}[pos=b]
-\DeclareKanjiFamily{JY3}{edm}{}
-\DeclareFontShape{JY3}{edm}{m}{n}    {<-> s*KozMinPr6N-Regular:jfm=ujis;}{}
-\DeclareFontShape{JY3}{edm}{m}{green}{<-> s*KozMinPr6N-Regular:jfm=ujis;color=007F00}{}
-\DeclareFontShape{JY3}{edm}{m}{blue} {<-> s*KozMinPr6N-Regular:jfm=ujis;color=0000FF}{}
-\DeclareAlternateKanjiFont{JY3}{edm}{m}{n}{JY3}{edm}{m}{green}{"4E00-"67FF,{-2}-{-2}}
-\DeclareAlternateKanjiFont{JY3}{edm}{m}{n}{JY3}{edm}{m}{blue}{ "6800-"9FFF}
-{\kanjifamily{edm}\selectfont
-日本国民は、正当に選挙された国会における代表者を通じて行動し、……}
+\jfontspec[
+  AltFont={
+    {Range="4E00-"67FF, Color=007F00},
+    {Range="6800-"9EFF, Color=0000FF},
+    {Range="3040-"306F, Font=KozGoPr6N-Regular},
+  }
+]{KozMinPr6N-Regular}
+日本国民は、正当に選挙された国会における代表者を通じて行動し、われらとわれらの子孫のために、
+諸国民との協和による成果と、わが国全土にわたつて自由のもたらす恵沢を確保し、……
 \end{LTXexample}
-%<ja>\caption{\cs{DeclareAlternateKanjiFont} の使用例}
-%<en>\caption{An example of \cs{DeclareAlternateKanjiFont}}
-\label{fig:altkanji}
+%<ja>\caption{\texttt{AltFont} の使用例}
+%<en>\caption{An example of \texttt{AltFont}}
+\label{fig:altkanji-fontspec}
 \end{figure}
 
-\item[\cs{DeclareAlternateKanjiFont}\{<base-encoding>\}\{<base-family>\}\{<base-series>\}\{<base-shape>\}\\
-  \null\hfill\{<alt-encoding>\}\{<alt-family>\}\{<alt-series>\}\{<alt-shape>\}\{<range>\}]
-%<*ja>
-\ref{ssec-altfont}節の\
-\cs{ltjdeclarealtfont} と同様に,前半の4引数の
-和文フォント(基底フォント)のうち<range>中の文字を
-第5から第8引数の和文フォントを使って組むように指示する.
-使用例を図\nobreak\ref{fig:altkanji}に載せた.
+\item[AltFont]
 
-\begin{itemize}
- \item
-\cs{ltjdeclarealtfont} では基底フォント・置き換え先和文フォントはあらかじめ定義されてい
-            ないといけない(その代わり即時発効)であったが,
-\cs{DeclareAlternateKanjiFont} の設定が
-実際に効力が発揮するのは,書体変更やサイズ変更を行った時,
-あるいは(これらを含むが)\cs{selectfont} が実行された時である.
- \item
-段落やhboxの最後での設定値が段落/hbox全体にわたって通用する点や,
-<range>に負数$-n$を指定した場合,それが「基底フォントの文字クラス$n$に属する文字全体」
-と解釈されるのは \cs{ltjdeclarealtfont} と同じである.
-\end{itemize}%
+%<*en>
+As \cs{ltjdeclarealtfont}~(Subsection~\ref{ssec-altfont}) and
+\cs{DeclareAlternateKanjiFont}~(Subsection~\ref{ssec-nfsspat}),
+with this key, one can typeset some Japanese characters
+by a different font and/or using different features.
+The \texttt{AltFont} feature takes a comma-separated list of comma-separated lists,
+as the following:
+%</en>
+%<*ja>
+\ref{ssec-altfont}節の \cs{ltjdeclarealtfont} や,
+\ref{ssec-nfsspat}節の \cs{DeclareAlternateKanjiFont} と同様に,
+このキーを用いると一部の文字を異なったフォントや機能たちを使って組むことができる.
+\texttt{AltFont} キーに指定する値は,次のように二重のコンマ区切りリストである:
 %</ja>
+\begin{lstlisting}[escapechar=\#]
+AltFont = {
+  ...
+  { Range=#\LARG range>#, #\LARG features>#},
+  { Range=#\LARG range>#, Font=#\LARG font~name>#, #\LARG features># },
+  { Range=#\LARG range>#, Font=#\LARG font~name># },
+  ...
+}
+\end{lstlisting}
 %<*en>
-As \cs{ltjdeclarealtfont}~(Subsection~\ref{ssec-altfont}),
-characters in <range> of the Japanese font (we say the \emph{base font})
-which specified by first 4 arguments are typeset
-by the Japanese font which specified by fifth to eighth arguments
-(we say the \emph{alternate font}).
-An example is shown in \autoref{fig:altkanji}.
-
-\begin{itemize}
- \item
-In \cs{ltjdeclarealtfont}, the base font and the alternate font must be already defined.
-But this \cs{DeclareAlternateKanjiFont} is not so.
-In other words, \cs{DeclareAlternateKanjiFont} is effective only after
-current Japanese font is changed, or only after \cs{selectfont} is executed.
- \item \dots
-\end{itemize}%
-\vspace{-\medskipamount}
+Each sublist should have the \texttt{Range} key
+(sublist which does not contain \texttt{Range} key is simply ignored).
+A demonstrarion is shown in \autoref{fig:altkanji-fontspec}.
 %</en>
+%<*ja>
+各部分リストには \texttt{Range} キーが必須である(含まれない部分リストは
+単純に無視される).指定例は\autoref{fig:altkanji-fontspec}に示した.
+%</ja>
 \end{cslist}
 
-%<*en>
-As closing this subsection, we shall introduce an example of
-\cs{SetRelationFont} and \cs{userelfont}:
-%</en>
 %<*ja>
-この節の終わりに,\cs{SetRelationFont} と \cs{userelfont} の例を
-紹介しておこう.\cs{userelfont} の使用によって,「abc」の部分のフォントが
-Avant Garde (OT1/pag/m/n) に変わっていることがわかる.
+なお,\Pkg{luatexja-fontspec} 読み込み時には和文フォント定義ファイル%
+\texttt{<ja-enc><family>.fd}は全く参照されなくなる.
 %</ja>
-\begin{LTXexample}[width=0.3\textwidth]
-\makeatletter
-\SetRelationFont{JY3}{\k@family}{m}{n}{OT1}{pag}{m}{n}
-  % \k@family: current Japanese font family
-\userelfont\selectfont あいうabc
-\end{LTXexample}
 
-%<en>\subsection{Detail of \cs{fontfamily} command}
-%<ja>\subsection{\cs{fontfamily}コマンドの詳細}
-\label{ssec-fontfamilycmd}
+
 %<*en>
-In this subsection, we describe when \cs{fontfamily}<family> changes current
-Japanese/alphabetic font family. Basically, current Japanese fotn family is changed to
-<family> if it is recognized as a Japanese font family, and similar with alphabetic font
-family. There is a case that current Japanese/alphabetic font family are both changed to
-<family>, and another case that <family> isn't recognized as a Japanese/alphabetic font
-family either.
+\paragraph{Remark on \texttt{AltFont}, \texttt{YokoFeatures}, \texttt{TateFeatures} keys}
+\leavevmode\par
+In \texttt{AltFont},~\texttt{YokoFeatures},~\texttt{TateFeatures} keys,
+one cannot specify per-shape settings such as \texttt{BoldFeatures}.
+For example,
+\begin{lstlisting}
+AltFont = {
+  { Font=HogeraMin-Light, BoldFont=HogeraMin-Bold,
+    Range="3000-"30FF, BoldFeatures={Color=007F00} }
+}
+\end{lstlisting}
+does \emph{not} work. Instead, one have to write
+\begin{lstlisting}
+UprightFeatures = {
+  AltFont = { { Font=HogeraMin-Light, Range="3000-"30FF, } },
+},
+BoldFeatures = {
+  AltFont =  { { Font=HogeraMin-Bold, Range="3000-"30FF, Color=007F00 } },
+}
+\end{lstlisting}
 
-\paragraph{Recognition as Japanese font family}
-First, Whether Japanese font family will be changed is determined in following order.
-This order is very similar to \cs{fontfamily} in \pLaTeXe, but we re-implemented in Lua.
-We use an auxiliary list~$N_{\mathrm{J}}$.
+On the other hand, \texttt{YokoFeatures}, \texttt{TateFeatures} and  \texttt{TateFont}
+keys can be specified in each list in the \texttt{AltFont} key. Also,
+one can specify \texttt{AltFont} inside \texttt{YokoFeatures},~\texttt{TateFeatures}.
+
+Note that features which are specified in \texttt{YokoFeatures}~and~\texttt{TateFeatures}
+are always interpreted \emph{after} other ``direction-independent'' features.
+This explains why \cs{addjfontfeatures} at~line~6 in~\autoref{fig:yokotate-fontspec}
+has no effect, because a color specification is already done in
+\texttt{YokoFeatures}~and~\texttt{TateFeatures} keys.
 %</en>
 %<*ja>
-本節では,\cs{fontfamily}<family> がいつ和文/欧文フォントファミリを変更するかについて解説
-する.基本的には,<family>が和文フォントファミリだと認識されれば和文側が,欧文フォントファ
-ミリだと認識されれば欧文側が変更される.どちらとも認識されれば和文・欧文の両方が変わるこ
-とになるし,当然どちらとも認識されないこともある.
+\paragraph{\texttt{AltFont}, \texttt{YokoFeatures}, \texttt{TateFeatures} 等の制限}
+\texttt{AltFont},~\texttt{YokoFeatures},~\texttt{TateFeatures}の各キーは
+シェイプ別に指定されるべきものであり,
+内部では \texttt{BoldFeatures} などのシェイプ別の指定は行うことが出来ない.
+例えば.
+\begin{lstlisting}
+AltFont = {
+  { Font=HogeraMin-Light, BoldFont=HogeraMin-Bold,
+    Range="3000-"30FF, BoldFeatures={Color=007F00} }
+}
+\end{lstlisting}
+のように指定することは出来ず,
+\begin{lstlisting}
+UprightFeatures = {
+  AltFont = { { Font=HogeraMin-Light, Range="3000-"30FF, } },
+},
+BoldFeatures = {
+  AltFont =  { { Font=HogeraMin-Bold, Range="3000-"30FF, Color=007F00 } },
+}
+\end{lstlisting}
+のように指定しなければならない.
+
+一方,\texttt{AltFont} キー内の各リストでは
+\ \texttt{YokoFeatures},~\texttt{TateFeatures} 及び \texttt{TateFont} キーを
+指定することは可能であり.また\ \texttt{YokoFeatures},~\texttt{TateFeatures} キーの
+中身に \texttt{AltFont} を指定することができる.
+
+また,\autoref{fig:yokotate-fontspec}後半部では6行目の色の指定が効かず,
+2行目で指定した\ \texttt{YokoFeatures},~\texttt{TateFeatures}\ による色の指定が有効になっ
+たままである.これは\emph{\ \texttt{YokoFeatures},~\texttt{TateFeatures}\ による
+OpenType機能指定は
+組方向に依存しないOpenType機能の指定より後に解釈される}からである.
 
-\paragraph{和文フォントファミリとしての認識}
-まず,<family>が和文フォントファミリとして認識されるかは以下の順序で決定される.
-これは\pLaTeXe の \cs{fontfamily} にとても似ているが,ここではLuaによって実装している.
-補助的に「和文フォントファミリではないと認識された」ファミリを格納したリスト$N_{\mathrm{J}}$を用いる.
 %</ja>
-\begin{enumerate}
+
+
+\subsection{\Pkg{luatexja-otf}}
+\label{ssec-ltjotf}
 %<*en>
-\item If the family~<family> has been defined already by \cs{DeclareKanjiFamily},
-      <family> is recognized as a  Japanese font family.
-      Note that <family> need not be defined under \emph{current} Japanese font encoding.
+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>
-\item ファミリ<family>が既に \cs{DeclareKanjiFamily} によって定義されている場合,
-      <family>は和文フォントファミリであると認識される.
-      ここで,<family>は現在の和文フォントエンコーディングで定義されていなくてもよい.
+この追加パッケージはCID番号による文字の出力をサポートする.
+\Pkg{luatexja-otf}は以下の2つの低レベルコマンドを提供する:
+%</ja>
+\begin{cslist}
+\item[\cs{CID}\{<number>\}]
+%<*en>
+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>\}]
+%<*en>
+Typeset a character whose character code is <hex\_number> (in hexadecimal).
+This command is similar to \verb+\char"+<hex\_number>,\ %"
+but please remind remarks below.
+%</en>
+%<*ja>
+文字コードが(16進で)<hex\_number>の文字を出力する.
+このコマンドは \verb+\char"+<hex\_number>と似ているが,下の注意を参照すること.%"
+%</ja>
+\end{cslist}
+
+%<*ja>
+このパッケージは,マクロ集 \texttt{luatexja-ajmacros.sty}\footnote{\Pkg{otf}パッケージ付属の井上浩一氏によるマクロ集
+\texttt{ajmacros.sty} に対して
+漢字コードをUTF-8にしたり,plain \LuaTeX でも利用可能にするという
+修正を加えたものである.}\ も自動的に読み込む.
+\texttt{luatexja-ajmacros.sty} は,
+そのため,\Pkg{luatexja-otf} を読みこめば \texttt{ajmacros.sty} マクロ集にある \cs{aj半角} などのマクロもそのまま使うことができる.
 %</ja>
 %<*en>
-\item If the family~<family> has been listed in a list~$N_{\mathrm{J}}$, this means
-      that <family> is not a Japanese font family.
+This package automatically loads \texttt{luatexja-ajmacros.sty}, which is slightly
+modified version of \texttt{ajmacros.sty}\footnote{Useful macros by iNOUE Koich!, for the
+\Pkg{japanese-otf} package.}.
+Hence one can use macros which sre defined in \texttt{ajmacros.sty}, such as~\cs{aj半角}.
+%</en>
+
+%<en>\paragraph{Remarks}
+%<ja>\paragraph{注意}
+%<*en>
+Characters by \cs{CID} and \cs{UTF} commands are different from
+ordinary characters in the following points:
 %</en>
 %<*ja>
-\item ファミリ<family>がリスト$N_{\mathrm{J}}$に既に含まれていれば,それ
-      <family>が和文フォントファミリではないことを意味する.
+\cs{CID} と \cs{UTF} コマンドによって出力される文字
+以下の点で通常の文字と異なる:
 %</ja>
+\begin{itemize}
 %<*en>
-\item If the \Pkg{luatexja-fontspec} package is loaded, we stop here, and <family> is not
-      recognized as a Japanese font family.
-
-      If the \Pkg{luatexja-fontspec} package is \emph{not} loaded,
-now \LuaTeX-ja looks whether there exists a Japanese font encoding~<enc> such that
-      a font definition named \texttt{<enc><family>.fd} (the file name is
-      all lowercase) exists. If so, <family> is recognized as a  Japanese font family (the font definition file won't be loaded here).
-      If not, <family> is not a Japanese font family, and
-      <family> is appended to the list~$N_{\mathrm{J}}$.
+\item Always treated as \textbf{JAchar}s.
 %</en>
 %<*ja>
-\item もし\Pkg{luatexja-fontspec}パッケージが読み込まれていれば,ここで終了であり,
-<family>は和文フォントファミリとして認識されないことになる.
-
-もし\Pkg{luatexja-fontspec}パッケージが読み込まれていなければ,和文エンコーディング<enc>で
-フォント定義ファイル\texttt{<enc><family>.fd}(ファイル名は全て小文字)が存在するようなも
-      のがあるかどうかを調べる.
-存在すれば,<family>は和文フォントファミリと認識される(フォント定義ファイルは読み込まれな
-      い).
-存在しなければ,<family>は和文フォントファミリでないと認識され,リスト$N_{\mathrm{J}}$に<family>を追加することでそれを記憶する.
-
+\item 常に\textbf{JAchar}として扱われる.
 %</ja>
-\end{enumerate}
-
 %<*en>
-\paragraph{Recognition as alphabetic font family}
-Next, whether alphabetic font family will be changed is determined in following order.
-We use auxiliary lists $F_{\mathrm{A}}$~and~$N_{\mathrm{A}}$,
+\item Processing codes for supporting OpenType features (\textit{e.g.},
+      glyph replacement and kerning) by the \Pkg{luaotfload} package
+      is not performed to these characters.
 %</en>
 %<*ja>
-\paragraph{欧文フォントファミリとしての認識}
-同様に,<family>が和文フォントファミリとして認識されるかは以下の順序で決定される.
-補助的に「欧文フォントファミリと既に認識された」ファミリのリスト$F_{\textrm{A}}$と,
-「欧文フォントファミリではないと認識された」ファミリを格納したリスト$N_{\mathrm{A}}$を用いる.
+\item OpenType機能(例えばグリフ置換やカーニング)をサポートするための
+  \Pkg{luaotfload}パッケージのコードはこれらの文字には働かない.
 %</ja>
+\end{itemize}
+
+%<en>\paragraph{Additional syntax of JFM}
+%<ja>\paragraph{JFMへの記法の追加}
 
-\begin{enumerate}
 %<*en>
-\item If the family~<family> has been listed in a list~$F_{\mathrm{A}}$,
-      <family> is recognized as an alphabetic font family.
+The package \Pkg{luatexja-otf} extends the syntax of JFM; the entries of \texttt{
+chars} table in JFM now allows a string in the form
+\verb+'AJ1-xxx'+, which stands for the character
+whose CID number in Adobe-Japan1 is \verb+xxx+.
+
+This extended notation is used in the standard JFM \texttt{jfm-ujis.lua}
+to typeset halfwidth Hiragana glyphs (CID~516--598) in halfwidth.
 %</en>
 %<*ja>
-\item ファミリ<family>がリスト$F_{\mathrm{A}}$に既に含まれていれば,
-      <family>は欧文フォントファミリと認識される.
+\Pkg{luatexja-otf}パッケージを読み込むと,
+JFMの\texttt{chars}テーブルのエントリとして \verb+'AJ1-xxx'+ の形の文字列が
+使えるようになる.これはAdobe-Japan1におけるCID番号が \verb+xxx+ の文字を表す.
+
+この拡張記法は,標準JFM~\texttt{jfm-ujis.lua}で,半角ひらがなのグリフ(CID~516--598)を
+正しく半角幅で組むために利用されている.
 %</ja>
+
+\subsection{\Pkg{luatexja-adjust}}
+\label{ssec-adj}
+\begin{figure}[t]
+\def\sq{%
+  \hbox to 1\zw{\hss\fboxsep=-.5\fboxrule\fbox{%
+   \hskip\dimexpr-.5\zw-.2pt\vrule width.4pt height.08\zw depth.12\zw%
+  \hskip\dimexpr.5\zw-.2pt\relax}\hss}}
+\def\sb{\hbox to 1\zw{\hss\fboxsep=-.5\fboxrule\fbox{%
+  ■\hskip\dimexpr-.5\zw-.2pt\vrule width.4pt height.08\zw depth.12\zw%
+  \hskip\dimexpr.5\zw-.2pt\relax}\hss}}
+\newbox\gridbox
+\def\outbox#1{{\Large%
+  \ltjsetparameter{kanjiskip=0pt plus .2\zw minus .2\zw}%
+  \setbox\gridbox=\hbox to 20\zw{\sq\sq\sq\sq\sb\sq\sq\sq\sq\sb\sq\sq\sq\sq\sb\sq\sq\sq\sq\sb}%
+  \hbox{\textcolor{cyan}{\copy\gridbox}\hskip-20\zw%
+  \vbox{\hsize=20\zw\noindent\leftskip0pt\rightskip0pt\parfillskip0pt#1}\vrule}%
+}}
+
+{\centering
+\begin{tabular}{lc}
+\toprule
+no adjustment&\outbox{以上の原理は,「包除原理」とよく呼ばれるが\hskip-.5\zw\null}\\
+without priority&%
+\ltjdisableadjust
+\outbox{以上の原理は,「包除原理」とよく呼ばれるが}%
+\ltjenableadjust\\
+with priority&%
+\outbox{以上の原理は,「包除原理」とよく呼ばれるが}
+%<en>\ltjdisableadjust
+\\
+\bottomrule
+\end{tabular}\par}
+\smallskip
+
+Note: the value of
+\Param{kanjiskip} is 0\,pt${}^{+1/5\,\mathrm{em}}_{-1/5\,\mathrm{em}}$ in this figure,
+for making the difference obvious.
+%<ja>\caption{行長調整}\label{fig:adj}
+%<en>\caption{Line adjustment}\label{fig:adj}
+\end{figure}
+
+
 %<*en>
-\item If the family~<family> has been listed in a list~$N_{\mathrm{A}}$, this means
-      that <family> is not  an alphabetic font family.
+(see Japanese version of this manual)
 %</en>
 %<*ja>
-\item ファミリ<family>がリスト$N_{\mathrm{A}}$に既に含まれていれば,それは
-      <family>が欧文フォントファミリではないことを意味する.
+この追加パッケージは以下の機能を提供する.詳細な仕様については\ref{sec-adjspec}章を参照してほしい.
+\begin{description}
+\item[行末文字の位置調整]
+  \pTeX では,(是非はともかく)「行末の読点はぶら下げか二分取りか全角取りのいずれかに」のように
+  行末文字と実際の行末の位置関係を2通り以上にすることは面倒であった.
+  和文フォントメトリックだけでは「常に行末の読点はぶら下げ」といったことしかできず,
+  前の文に書いたことを実現するには
+\begin{lstlisting}
+\def\。{%
+  \penalty10000 % 禁則ペナルティ
+  \hbox to0pt{。\hss}\penalty0 % ぶら下げの場合
+  \kern.5\zw\penalty0 % 二分取りの場合
+  \kern.5\zw\penalty0 % 全角取りの場合
+}
+\end{lstlisting}
+  のような命令を定義し,文中の全ての句点を \lstinline+\。+ で書くことが必要だった.
+
+\Pkg{luatexja-adjust}パッケージは,上で述べた行末文字と実際の行末との位置関係を
+2通り以上から自動的に選択する機能を提供する.
+\pdfTeX と同じように,「\TeX による行分割の後で行末文字の位置を補正する」方法と
+  「行分割の過程で行末文字の位置を考慮に入れる」方法を選べるようにした(
+\Pkg{luatexja-adjust}パッケージの既定では前者).
+  
+\item[優先順位付きの行長調整]
+\pTeX では,行長調整において優先度の概念が存在しなかったため,図
+\ref{fig:adj}上段における半角分の半端は,\autoref{fig:adj}中段のように,鍵
+括弧周辺の空白と和文間空白(\Param{kanjiskip})の両方によって負担される.し
+かし,「日本語組版処理の要件」\cite{jlreq}やJIS~X~4051~\cite{x4051}におい
+ては,このような状況では半端は鍵括弧周辺の空白のみで負担し,その他の和文
+文字はベタ組で組まれる(\autoref{fig:adj}下段)ことになっている.
+\Pkg{luatexja-adjust}パッケージの提供する第2の機能は,
+\cite{jlreq}や\cite{x4051}における規定のような,優先順位付き
+の行長調整である.
+\begin{itemize}
+ \item 優先度付き行長調整は,段落を行分割した後に個々の行について行われるものである.
+そのため,行分割の位置は変化することはない.
+
+\verb+\hbox{...}+ といった「途中で改行できない水平ボックス」では(たとえ幅が指定されていても)無効である.
+ \item 優先度付き行長調整を行うと,和文処理グルーの自然長は変化しないが,伸び量や縮み量は
+一般に変化する.そのため,既に組まれた段落を \cs{unhbox} などを利用して組み直す処理を
+行う場合には注意が必要である.
+\end{itemize}
+\end{description}
+
+\Pkg{luatexja-adjust}パッケージは,上記で述べた2機能を有効化/無効化するための
+以下の命令を提供する.これらはすべてグローバルに効力を発揮する.
+
+\begin{cslist}
+\item[\cs{ltjenableadjust[...]}]
+\verb+...+ に指定したkey-valueリストに従い,「行末文字の位置調整」「優先順位付きの行長調整」を有効化/無効化する.
+指定できるキーは以下の通り.
+\begin{description}
+  \item[\texttt{lineend=[false,true,extended]}]
+  行末文字の位置調整の機能を無効化(\texttt{false}),「行分割後に調整」の形で有効化(\texttt{true}),
+  「行分割の仮定で考慮」(\texttt{extended})する.
+  \item[\texttt{priority=[false,true]}]
+  優先順位付きの行長調整を無効化(\texttt{false}),または有効化(\texttt{true})する.
+\end{description}
+両キーともキー名のみを指定した場合は値として\texttt{true}が指定されたものと扱われる.
+
+互換性の為,オプション無しでただ\cs{ltjenableadjust}が呼び出された場合は,
+\begin{lstlisting}
+\ltjenableadjust[lineend=true,priority=true]
+\end{lstlisting}
+と扱われる.
+  
+\item[\cs{ltjdisableadjust}]
+\Pkg{luatexja-adjust}パッケージの機能を無効化する.
+\begin{lstlisting}
+\ltjenableadjust[lineend=false,priority=false]
+\end{lstlisting}
+と同義.
+\end{cslist}
+
+また,優先順位付きの行長調整のために,次の2パラメータが\cs{ltjsetparameter}内で
+追加される.両パラメータともグローバルに効力を発揮する.
+\begin{cslist}[style=standard]
+\item[\DParam{stretch\_priority}\,=\{<list>\}]
+\Param{kanjiskip}, \Param{xkanjiskip},および「\textbf{JAglue}以外のグルー」を,
+「行を自然長より伸ばす」場合の調整に用いる優先度を指定する.
+
+指定方法は,<list>の中にkey-value listの形で
+\begin{lstlisting}
+stretch_priority={kanjiskip=-35,xkanjiskip=-25,others=50}
+\end{lstlisting}
+のようにして行う.キー名\texttt{kanjiskip},~\texttt{xkanjiskip}については
+そのままの意味であり,
+\texttt{others}キーが「\textbf{JAglue}以外のグルー」を表す.
+各キーの値は,JFMグルーにおける「優先度$i$」を$10i$に対応させた整数値であり,
+  大きい方が先に伸ばされることを意味している.
+
+\item[\DParam{shrink\_priority}\,=\{<list>\}]
+同様に,「行を自然長より縮める」場合の調整に用いる優先度を指定する.
+それ以外は\Param{stretch\_priority}と指定の形式は変わらない.
+\end{cslist}
+初期値は\Param{stretch\_priority}, \Param{shrink\_priority}とも
+\begin{lstlisting}
+{kanjiskip=-35,xkanjiskip=-25,others=50}
+\end{lstlisting}
+であり,「優先度$-4$」と指定されているJFMグルーが最も伸び(縮み)にくいようになっている.
 %</ja>
+
+\subsection{\Pkg{luatexja-ruby}}
 %<*en>
-\item If there exists an alphabetic font encoding such that the family~<family> has been
-      defined under it, <family> is recognized as an alphabetic font family, and
-      to memorize this, <family> is appended to the list~$F_{\mathrm{A}}$.
+This addon package provides functionality of ``ruby'' (\emph{furigana}) annotations
+using callbacks of \LuaTeX-ja.
+There is no detailed manual of \Pkg{luatexja-ruby.sty} in English.
+(Japanese manual is another PDF file, \url{luatexja-ruby.pdf}.)
 %</en>
 %<*ja>
-\item ある欧文フォントエンコーディング下でファミリ<family>が定義されていれば,
-      <family>は欧文フォントファミリと認識され,リスト$F_{\mathrm{A}}$に<family>を追加することでこのことを記憶する.
+この追加パッケージは,\LuaTeX-jaの機能を利用したルビ(振り仮名)の組版機能を提供する.
+前後の文字種に応じた前後への自動進入や,
+行頭形・行中形・行末形の自動的な使い分けが特徴である.
+
+ルビ組版に設定可能な項目や注意事項が多いため,本追加パッケージの詳細な説明は
+使用例と共に \url{luatexja-ruby.pdf}\ という別ファイルに載せている.
+この節では簡単な使用方法のみ述べる.
 %</ja>
+
+\begin{description}
 %<*en>
-\item Now \LuaTeX-ja looks whether there exists an alphabetic font encoding~<enc> such that
-      a font definition named \texttt{<enc><family>.fd} (the file name is
-      all lowercase) exists. If so, current alphabetic font family will be changed to
-      <family>~(the font definition file won't be loaded here).
-      If not, current alphabetic font family won't be changed, and
-      <family> is appended to the list~$N_{\mathrm{A}}$.
+ \item[Group-ruby]
+By default, ruby characters (the second argument of \cs{ruby})
+are attached to base characters (the first argument), as one object.
+This type of ruby is called \emph{group-ruby}.
 %</en>
 %<*ja>
-\item 最終段階では,欧文エンコーディング<enc>で
-フォント定義ファイル\texttt{<enc><family>.fd}(ファイル名は全て小文字)が存在するようなも
-      のがあるかどうかを調べる.
-存在すれば,<family>は欧文フォントファミリと認識される(フォント定義ファイルは読み込まれない).
-存在しなければ,<family>は欧文フォントファミリと認識されないので,リスト$N_{\mathrm{A}}$に
-      <family>を追加してそのことを記憶する.
+ \item[グループルビ] 標準ではグループルビの形で組まれる.第1引数に親文字,
+第2引数にルビを記述する.
 %</ja>
-\end{enumerate}
+\begin{LTXexample}[width=0.3\textwidth]
+東西線\ruby{妙典}{みようでん}駅は……\\
+東西線の\ruby{妙典}{みようでん}駅は……\\
+東西線の\ruby{妙典}{みようでん}という駅……\\
+東西線\ruby{葛西}{かさい}駅は……
+\end{LTXexample}
+%<*en>
+As the above example, ruby hangover is allowed on the Hiragana before/after
+its base characters.
+%</en>
+%<ja> この例のように,標準では前後の平仮名にルビ全角までかかるようになっている.
 
 %<*en>
-Also, each call of \cs{DeclareFontFamily} \emph{after} loading of \LuaTeX-ja makes
-the second argument (family) is appended to the list~$F_{\mathrm{A}}$.
+\item[Mono-ruby]
+To attach ruby characters to each base characters (\emph{mono-ruby}),
+one should use \cs{ruby} multiple times:
 %</en>
 %<*ja>
-また,\cs{DeclareFontFamily}が\LuaTeX-jaの読み込み後に実行された場合は,
-第2引数(ファミリ名)が自動的に$F_{\mathrm{A}}$に追加される.
+ \item[モノルビ] 親文字を1文字にするとモノルビとなる.
+2文字以上の熟語をモノルビの形で組みたい場合は,面倒でも
+その数だけ \cs{ruby} を書く必要がある.
 %</ja>
+\begin{LTXexample}[width=0.3\textwidth]
+東西線の\ruby{妙}{みよう}\ruby{典}{でん}駅は……
+\end{LTXexample}
 
 %<*en>
-The above order is very similar to \cs{fontfamily} in \pLaTeXe, but more complicated (clause~3.).
-This is because  \pLaTeXe\ is a \emph{format} however \LuaTeX-ja is not,
-hence \LuaTeX-ja does not know calls of \cs{DeclareFontFamily} \emph{before} itself is
-loaded.
+ \item[Jukugo-ruby]
+Vertical bar~\verb+|+ denotes a boundary of \emph{groups}.
 %</en>
 %<*ja>
-以上の方針は\pLaTeXe における \cs{fontfamily} にやはり類似しているが,3.が加わり若干複雑になっている.
-それは\pLaTeXe がフォーマットであるのに対し\LuaTeX-jaはそうでないため,
-\LuaTeX-jaは自身が読み込まれる前にどういう\cs{DeclareFontFamily}の呼び出しがあったか
-把握できないからである.
+ \item[熟語ルビ] 引数内の縦棒 \verb+|+ はグループの区切りを表し,
+複数グループのルビは熟語ルビとして組まれる.
+\cite{x4051}にあるように,
+どのグループでも「親文字」が対応するルビ以上の長さの場合は
+各グループごとに,そうでないときは全体をまとめて1つのグループルビとして組まれる.
+\cite{jlreq}で規定されている組み方とは異なるので注意.
 %</ja>
+\begin{LTXexample}
+\ruby{妙|典}{みよう|でん}\
+\ruby{葛|西}{か|さい}\
+\ruby{神楽|坂}{かぐら|ざか}
+\end{LTXexample}
+%<*en>
+If there are multiple groups in one \cs{ruby} call,
+A linebreak between two groups is allowed.
+%</en>
+%<ja> 複数ルビではグループとグループの間で改行が可能である.
+\begin{LTXexample}[width=0.3\textwidth]
+\vbox{\hsize=6\zw\noindent
+  \hbox to 2.5\zw{}\ruby{京|急|蒲|田}{けい|きゆう|かま|た}
+  \hbox to 2.5\zw{}\ruby{京|急|蒲|田}{けい|きゆう|かま|た}
+  \hbox to   3\zw{}\ruby{京|急|蒲|田}{けい|きゆう|かま|た}
+}
+\end{LTXexample}
+\end{description}
 
-%<en>\paragraph{Remarks}
-%<ja>\paragraph{注意}
 %<*en>
-Of course, there is a case that <family> is not recognized as a Japanese font family,  nor
-an alphabetic font family.
-In this case, \LuaTeX-ja treats ``the argument <family> is wrong'', so
-set both current alphabetic and Japanese font family to <family>,
-to use the default family for font substitution.
+If the width of ruby characters are longer than that of base characters,
+\cs{ruby} automatically selects the appropriate form
+among the line-head form, the line-middle form, and the line-end form.
 %</en>
 %<*ja>
-さて,引数によっては,「和文フォントファミリとも欧文フォントファミリも認識されなかった」
-という事態もあり得る.
-  この場合,引数<family>は不正だった,ということになるので,
-和文・欧文の両方のフォントファミリを<family>に設定し,代用フォントが使われるに任せることにする.
+また,ルビ文字のほうが親文字よりも長い場合は,自動的に
+行頭形・行中形・行末形のいずれか適切なものを選択する.
 %</ja>
+\begin{LTXexample}[width=0.3\textwidth]
+\vbox{\hsize=8\zw\noindent
+\null\kern3\zw ……を\ruby{承}{うけたまわ}る
+     \kern1\zw ……を\ruby{承}{うけたまわ}る\\
+\null\kern5\zw ……を\ruby{承}{うけたまわ}る
+}
+\end{LTXexample}
 
-%<*en>
-\subsection{Notes on \cs{DeclareTextSymbol}}
-From \LaTeX~2017/01/01, the standard encoding of \LuaLaTeX\ is changed to the \texttt{TU}
-encoding. This menas that symbols defined by \texttt{T1}~and~\texttt{TS1} encodings can be used
-without loading any package. To produces these symbols in alphabetic fonts in \LuaTeX-ja,
-\LuaTeX-ja patches \cs{DeclareTextSymbol}, and reloads \texttt{tuenc.def}.
 
-Under original definition of \cs{DeclareTextSymbol},
-internal commands which is defined by \cs{DeclareTextSymbol} (such as \cs{T1\cs{textquotedblleft}})
-are \textit{chardef} tokens. However, this no longer holds in \LuaTeX-ja;
-for example, the meaning of \cs{TU\cs{textquotedblleft}} is \cs{ltjalchar8220\ltjalchar"2423 }.
-%</en>
 %<*ja>
-\subsection{\cs{DeclareTextSymbol}使用時の注意}
-\LaTeX~(2017/01/01)以降では,\texttt{TU}エンコーディングが標準となり,特に何もしなくても
-\texttt{T1},~\texttt{TS1}エンコーディングで定義されていた記号類が
-使えるようになった.\LuaTeX-jaではこれらの命令によって記号が欧文フォントで出力されるようにするため,
-\cs{DeclareTextSymbol}命令を改変し,そして\texttt{TU}エンコーディングの定義である
-\texttt{tuenc.def}を再読込している.
+\subsection{\Pkg{lltjext}}
+\pLaTeX では縦組用の拡張として \Pkg{plext} パッケージが用意されていたが,
+それを\LuaTeX-ja用に書きなおしたものが本追加パッケージ \Pkg{lltjext} である.
 
-従来は \cs{DeclareTextSymbol} で内部的に定義された\cs{T1\cs{textquotedblleft}}といった命令は
-\textit{chardef}トークンであった.しかし前段落で述べた改変によりもはやそうではなくなっており,例えば
-\cs{TU\cs{textquotedblleft}}は \cs{ltjalchar8220\ltjalchar"2423 } という定義になっている.%"
-%</ja>
+従来の \Pkg{plext} パッケージとの違いは,
+{\catcode`\<=12
+\begin{itemize}
+ \item 組方向オプション \texttt{<y>}(横組),\texttt{<t>}(縦組),
+\texttt{<z>}\ の他に\ \texttt{<d>}(dtou方向),\texttt{<u>}(utod方向)を追加した.
+\texttt{<z>} と \texttt{<u>} の違いは,\texttt{<z>} が(\Pkg{plext} パッケージと同様に)
+周囲の組方向が縦組のときにしか意味を持たない
+  \footnote{%
+    周囲の組方向が縦組以外のときは,\texttt{<z>} を指定しても中身の組方向は周囲の組方向と変わらない.
+  }%
+のに対し,\texttt{<u>} にはそのような制限がないことである.
+ \item 連数字用命令 \cs{rensuji} における位置合わせオプション \texttt{[l]}, \texttt{[c]},
+       \texttt{[r]} の挙動を若干変更した.
+\end{itemize}
+}
 
-\begin{table}[t]
-  \centering\small
-  \caption{strut}\label{tab:strutbox}
-  \begin{tabular}{llcccl}
-    \toprule
-    \textbf{box}&\textbf{direction}&\textbf{width}&\textbf{height}&\textbf{depth}
-    &\textbf{user command}\\
-    \midrule
-  \cs{ystrutbox}&yoko&0&0.7\cs{baselineskip}&0.3\cs{baselineskip}&\cs{ystrut}\\\midrule
-  \cs{tstrutbox}&tate, utod&0&0.5\cs{baselineskip}&0.5\cs{baselineskip}&\cs{tstrut}\\\midrule
-  \cs{dstrutbox}&dtou&0&0.7\cs{baselineskip}&0.3\cs{baselineskip}&\cs{dstrut}\\\midrule
-  \cs{zstrutbox}&---&0&0.7\cs{baselineskip}&0.3\cs{baselineskip}&\cs{zstrut}\\\bottomrule
-  \end{tabular}
-\end{table}
+%</ja>
 %<*en>
-\subsection{\cs{strutbox}}
-As \pLaTeX~(2017/04/08 or later), \cs{strutbox} is \emph{a macro} which is expanded to one of
-\cs{ystrutbox},~\cs{tstrutbox},~and~\cs{dstrutbox}
-(all of them are shown in \autoref{tab:strutbox}), according to the current direction.
-Similarly, \cs{strut} now uses one of these boxes.
+\subsection{\texttt{lltjext.sty}}
+\pLaTeX\ supplies additional macros for vertical writing in the \Pkg{plext} package.
+The \Pkg{lltjext} package which we want to describe here is the \LuaTeX-ja
+counterpart of the \Pkg{plext} package.
 %</en>
+
 %<*ja>
-\subsection{\cs{strutbox}}
-\pLaTeX~2017/04/08以降と同じように,
-\cs{strutbox}は現在の組方向によって\cs{ystrutbox}, \cs{tstrutbox}, \cs{dstrutbox}の
-いずれかに展開される\emph{マクロ}となっている(これらについては\autoref{tab:strutbox}参照).
-同様に\cs{strut}もこの3\nobreak ボックスのいずれかを組方向によって使い分けるようになっている.
+念の為,本 \Pkg{lltjext} パッケージで追加・変更している命令の一覧を載せておく.
+\begin{cslist}
+\item[tabular\textrm{, }array\textrm{, }minipage環境]
+これらの環境は,
+\begin{lstlisting}
+\begin{tabular}<dir>[pos]{table spec} ... \end{tabular}
+\begin{array}<dir>[pos]{table spec}   ... \end{array}
+\begin{minipage}<dir>[pos]{width}     ... \end{minipage}
+\end{lstlisting}
+のように,組方向オプション \texttt{\<dir\>} が拡張されている.
+既に述べたように,組方向オプションに指定できる値は以下の5つであり,
+それ以外を指定した時や無指定時は周囲の組方向と同じ組方向になる.
+\begin{description}
+ \item[y] 横組(\cs{yoko})
+ \item[t] 縦組(\cs{tate})
+ \item[z] 周囲が縦組の時はutod方向,それ以外はそのまま
+ \item[d] dtou方向
+ \item[u] utod方向
+\end{description}
+\item[\cs{parbox}\<<dir>\>{[<pos>]}\{<width>\}\{<contents>\}]
+\cs{parbox} 命令も同様に,組方向の指定ができるように拡張されている.
 
-\cs{zstrutbox}はutod方向(\pTeX でいう縦数式ディレクション)で使われる支柱ボックスであるが,
-実際に使われるのは\cs{zstrut}が明示的に発行された時,そして
-\Pkg{lltjext}パッケージで追加される組方向指定で \texttt{<u>} を指定した時,および
-周囲が縦組の状況で \texttt{<z>} を指定した時に限られている.
-%</ja>
+\item[\cs{pbox}\<<dir>\>{[<width>][<pos>]}\{<contents>\}]
+組方向<dir>で<contents>の中身をLRモードで組む命令である.
+<width>が正の値であるときは,ボックス全体の幅がその値となる.
+その際,中身は<pos>の値に従い,左寄せ(\texttt{l}),右揃え(\texttt{r}),
+中央揃え(それ以外)される.
+\item[picture環境]
+図表作成に用いる\texttt{picture}環境も,
+\begin{lstlisting}
+\begin{picture}<dir>(x_size, y_size)(x_offset,y_offset)
+  ...
+\end{picture}
+\end{lstlisting}
+と組方向が指定できるように拡張されている.
+$x$成分の増加方向は字送り方向,$y$成分の増加方向は行送り方向の\emph{反対方向}となる.
+\Pkg{plext} パッケージと同様に
+内部ではベースライン補正(\Param{yalbaselineshift}パラメータなど)の影響を受けないように,
+\cs{put},~\cs{line}, \cs{vector}, \cs{dashbox}, \cs{oval},~\cs{circle}も
+ベースライン補正を受けないように再定義されている.
 
-%<*en>
-\section{Addon packages}
-\LuaTeX-ja has several addon packages.
-These addons are written as \LaTeX\ packages, but
-\Pkg{luatexja-otf} and~\Pkg{luatexja-adjust} can be loaded in plain \LuaTeX\
-by \cs{input}.
-%</en>
-%<*ja>
-\section{拡張パッケージ}
-\LuaTeX-jaには(動作には必須ではないが)自由に読み込める拡張が付属している.
-これらは\LaTeX のパッケージとして制作しているが,
-\Pkg{luatexja-otf}と\Pkg{luatexja-adjust}についてはplain \LuaTeX でも\
-\cs{input} で読み込み可能である.
+\item[\cs{rensuji}{[<pos>]}\{<contents>\}\textrm{, }\cs{rensujiskip}]
+
+\item[\cs{Kanji}\{<counter\_name>\}]
+
+\item[\cs{kasen}\{<contents>\}\textrm{, }\cs{bou}\{<contents>\}\textrm{,
+                    }\cs{boutenchar}]
+
+\item[参照番号]
+\end{cslist}
 %</ja>
-\subsection{\Pkg{luatexja-fontspec}}
-\label{ssec-fontspec2}
 %<*en>
-As described in Subsection~\ref{ssec-fontspec}, this optional package
-provides the counterparts for several commands defined in the
-\Pkg{fontspec} package (requires \Pkg{fontspec}~v2.4).
-In addition to OpenType font features in the original \Pkg{fontspec},
-the following ``font features'' specifications are allowed for
-the commands of Japanese version:
-%</en>
-%<*ja>
-\ref{ssec-fontspec}節で述べたように,この追加パッケージは\Pkg{fontspec}%
-パッケージで定義されているコマンドに対応する和文フォント用のコマンドを提供する.
+\begin{cslist}
+\item[tabular\textrm{, }array\textrm{, }minipage\textrm{ environments}]
+These environments are extended by \texttt{\<dir\>}, which specifies the direction,
+as follows:
+\begin{lstlisting}
+\begin{tabular}<dir>[pos]{table spec} ... \end{tabular}
+\begin{array}<dir>[pos]{table spec}   ... \end{array}
+\begin{minipage}<dir>[pos]{width}     ... \end{minipage}
+\end{lstlisting}
+This option permits one of the following five values. If none of them is specified,
+the direction inside the environment is same as that outside the enviromnent.
+\begin{description}
+ \item[y] \emph{yoko} direction (horizontal writing)
+ \item[t] \emph{tate} direction (vertical writing)
+ \item[z] \emph{utod} direction if direction outside the env.\ is \emph{tate}.
+ \item[d] \emph{dtou} direction
+ \item[u] \emph{utod} direction
+\end{description}
+\item[\cs{parbox}\<<dir>\>{[<pos>]}\{<width>\}\{<contents>\}]
+\cs{parbox} command is also extended by \texttt{\<<dir>\>}.
 
-\Pkg{fontspec}パッケージで指定可能な各種OpenType機能に加えて,和文版のコマンドには
-以下の「フォント機能」を指定することができる:
-%</ja>
+\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 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}]
 
-\begin{cslist}
-\item[CID=<name>\textrm{, }JFM=<name>\textrm{, }JFM-var=<name>]
+\item[\cs{Kanji}\{<counter\_name>\}]
 
-%<*en>
-These 3 keys correspond to \texttt{cid}, \texttt{jfm} and
-\texttt{jfmvar} keys for \cs{jfont}~and~\cs{tfont} respectively.
-See Subsections~\ref{ssec-jfont} and \ref{ssec-psft} for details
- of \texttt{cid}, \texttt{jfm} and
-\texttt{jfmvar} keys.
+\item[\cs{kasen}\{<contents>\}\textrm{, }\cs{bou}\{<contents>\}\textrm{,
+                    }\cs{boutenchar}]
 
-The \texttt{CID} key is effective only when with \texttt{NoEmbed}
-described below. The same JFM cannot be used in both horizontal Japanese fonts and
-            vertical Japanese fonts, hence the \texttt{JFM} key
-will be actually used in \texttt{YokoFeatures}~and~\texttt{TateFeatures} keys.
+\item[参照番号]
+\end{cslist}
 %</en>
-%<*ja>
-これら3つのキーはそれぞれ \cs{jfont},~\cs{tfont}に対する
-\texttt{cid}, \texttt{jfm}, \texttt{jfmvar}キーとそれぞれ対応する.
-\texttt{cid}, \texttt{jfm}, \texttt{jfmvar}キーの詳細は\ref{ssec-jfont}節
-            と\ref{ssec-psft}節を参照.
-
-\texttt{CID} キーは下の \texttt{NoEmbed} と合わせて用いられたときのみ有効である.
-また,横組用JFMと縦組用JFMは共用できないため,実際に \texttt{JFM} キーを用いる際は
-後に述べる\ \texttt{YokoFeatures} キーや \texttt{TateFeatures}\ の中で用いる
-ことになる.
-%</ja>
 
-\item[NoEmbed]
-%<*en>
-By specifying this key, one can use ``name-only'' Japanese font which
-will not be embedded in the output PDF file. See Subsection~\ref{ssec-psft}.
-%</en>
 %<*ja>
-これを指定することで,PDFに埋め込まれない「名前だけ」のフォントを指定することが
-できる.\ref{ssec-psft}節を参照.
-%</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{figure}[!tb]
-\begin{LTXexample}[width=0.25\textwidth]
-\jfontspec[
-  YokoFeatures={Color=007F00}, TateFeatures={Color=00007F},
-  TateFont=KozGoPr6N-Regular
-]{KozMinPr6N-Regular}
-\hbox{\yoko 横組のテスト}\hbox{\tate 縦組のテスト}
-\addjfontfeatures{Color=FF0000}
-\hbox{\yoko 横組}\hbox{\tate 縦組}
-\end{LTXexample}
-%<ja>\caption{\texttt{TateFeatures} 等の使用例}
-%<en>\caption{An example of \texttt{TateFeatures} etc.}
-\label{fig:yokotate-fontspec}
-\end{figure}
+\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}
 
-\item[Kanjiskip=<bool>]
-%<*ja>
-\pageref{pg:ltjksp}ページで説明した \verb+\jfont+ 中での \texttt{ltjksp} 指定と
-同一の効力を持ち,
-JFM中における \texttt{kanjiskip\_natural}, \texttt{kanjiskip\_stretch},\
-\texttt{kanjiskip\_shrink}キー(\pageref{pg:ksp_nat}ページ)の有効/無効を切り替える.
-標準値は \texttt{true} である.
+\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>
 
-\item[TateFeatures=\{<features>\}\textrm{, }TateFont=<font>]
-%<*en>
-The \texttt{TateFeatures} key specifies font features which are only turned~on in
-vertical writing, such as \texttt{Style=VerticalKana}~(\texttt{vkna} feature).
-Similarly, the \texttt{TateFont} key specifies the Japanese font which will be used only
-            in vertical writing.
-A demonstrarion is shown in \autoref{fig:yokotate-fontspec}.
-%</en>
-%<*ja>
-縦組において使用されるフォントや,縦組においてのみ適用されるフォント機能達を
-指定する.使用例は\autoref{fig:yokotate-fontspec}参照.
-%</ja>
+\subsection{\Pkg{luatexja-preset}}
+\label{ssec:preset}
 
-\item[YokoFeatures=\{<features>\}]
 %<*en>
-The \texttt{YokoFeatures} key specifies font features which are only turned~on in
-horizontal writing,.
-A demonstrarion is shown in \autoref{fig:yokotate-fontspec}.
-%</en>
-%<*ja>
-同様に,横組においてのみ適用されるフォント機能達を
-指定する.使用例は\autoref{fig:yokotate-fontspec}参照.
-%</ja>
-
-
-\begin{figure}[!tb]
-\begin{LTXexample}[pos=b]
-\jfontspec[
-  AltFont={
-    {Range="4E00-"67FF, Color=007F00},
-    {Range="6800-"9EFF, Color=0000FF},
-    {Range="3040-"306F, Font=KozGoPr6N-Regular},
-  }
-]{KozMinPr6N-Regular}
-日本国民は、正当に選挙された国会における代表者を通じて行動し、われらとわれらの子孫のために、
-諸国民との協和による成果と、わが国全土にわたつて自由のもたらす恵沢を確保し、……
-\end{LTXexample}
-%<ja>\caption{\texttt{AltFont} の使用例}
-%<en>\caption{An example of \texttt{AltFont}}
-\label{fig:altkanji-fontspec}
-\end{figure}
-
-\item[AltFont]
+As described in Subsection~\ref{ssec:preset-abst},
+One can load the \Pkg{luatexja-preset}
+package to use several ``presets'' of Japanese fonts.
+This package provides functions in a part of \Pkg{japanese-otf} package (changing fonts)
+and a part of \Pkg{PXchfon} package (presets) by Takayuki Yato.
 
-%<*en>
-As \cs{ltjdeclarealtfont}~(Subsection~\ref{ssec-altfont}) and
-\cs{DeclareAlternateKanjiFont}~(Subsection~\ref{ssec-nfsspat}),
-with this key, one can typeset some Japanese characters
-by a different font and/or using different features.
-The \texttt{AltFont} feature takes a comma-separated list of comma-separated lists,
-as the following:
+One can specified other options other than listed below.
+These are simply passed to the \Pkg{luatexja-fontspec}\footnote{if \texttt{nfssonly} option is
+\emph{not} specified; in this case these options are simply ignored.}.
+For example, the line~5 in below example is equivalent to lines 1--3.
 %</en>
 %<*ja>
-\ref{ssec-altfont}節の \cs{ltjdeclarealtfont} や,
-\ref{ssec-nfsspat}節の \cs{DeclareAlternateKanjiFont} と同様に,
-このキーを用いると一部の文字を異なったフォントや機能たちを使って組むことができる.
-\texttt{AltFont} キーに指定する値は,次のように二重のコンマ区切りリストである:
+\ref{ssec:preset-abst}節で述べたように,よく使われている和文フォント設定を一行で指定できるようにしたのが
+\Pkg{luatexja-preset}パッケージである.このパッケージは,
+\Pkg{otf}パッケージの一部(多書体化)と八登崇之氏による\Pkg{PXchfon}パッケージの一部(プリセット指定)
+とを合わせたような格好をしている.
+
+オプションとして,以下のリストにないものも指定することができるが,それらは
+\Pkg{luatexja-fontspec}パッケージに渡される\footnote{\texttt{nfssonly} オプションが
+指定されていた場合は,\Pkg{luatexja-fontspec}パッケージは読み込まれないので単純に無視され
+る.}.例えば,下の1--3行目は5行目のように一行にまとめることができる.
 %</ja>
-\begin{lstlisting}[escapechar=\#]
-AltFont = {
-  ...
-  { Range=#\LARG range>#, #\LARG features>#},
-  { Range=#\LARG range>#, Font=#\LARG font~name>#, #\LARG features># },
-  { Range=#\LARG range>#, Font=#\LARG font~name># },
-  ...
-}
+\begin{lstlisting}
+\usepackage[no-math]{fontspec}
+\usepackage[match]{luatexja-fontspec}
+\usepackage[kozuka-pr6n]{luatexja-preset}
+%%--------
+\usepackage[no-math,match,kozuka-pr6n]{luatexja-preset}
 \end{lstlisting}
+
+\begin{cslist}[before*=]
+\item[fontspec%
+%<en>\textrm{~(enabled by default)}
+%<ja>\emph{\gtfamily (既定)}
+]
 %<*en>
-Each sublist should have the \texttt{Range} key
-(sublist which does not contain \texttt{Range} key is simply ignored).
-A demonstrarion is shown in \autoref{fig:altkanji-fontspec}.
+With this option, Japanese fonts are selected using functionality of
+the \Pkg{luatexja-fontspec} package. This means that the \Pkg{fontspec} package is
+            automatically loaded by this package.
+
+If you need to pass some options to \Pkg{fontspec}, you can load \Pkg{fontspec} manually
+before \Pkg{luatexja-preset}:
 %</en>
 %<*ja>
-各部分リストには \texttt{Range} キーが必須である(含まれない部分リストは
-単純に無視される).指定例は\autoref{fig:altkanji-fontspec}に示した.
-%</ja>
-\end{cslist}
+\Pkg{luatexja-fontspec}パッケージの機能を用いて和文フォントを選択する.
+これは,\Pkg{fontspec}パッケージが自動で読み込まれることを意味する.
 
-%<*ja>
-なお,\Pkg{luatexja-fontspec} 読み込み時には和文フォント定義ファイル%
-\texttt{<ja-enc><family>.fd}は全く参照されなくなる.
+もし\Pkg{fontspec}パッケージに何らかのオプションを渡す必要がある
+\footnote{例えば,数式フォントまで置換されてしまい,\cs{mathit}によってギリシャ文字の
+斜体大文字が出なくなる,など.}場合は,
+次のように\Pkg{luatexja-preset}の前に\Pkg{fontspec}を手動で読みこめば良い:
 %</ja>
-
-
-%<*en>
-\paragraph{Remark on \texttt{AltFont}, \texttt{YokoFeatures}, \texttt{TateFeatures} keys}
-In \texttt{AltFont},~\texttt{YokoFeatures},~\texttt{TateFeatures} keys,
-one cannot specify per-shape settings such as \texttt{BoldFeatures}.
-For example,
-\begin{lstlisting}
-AltFont = {
-  { Font=HogeraMin-Light, BoldFont=HogeraMin-Bold,
-    Range="3000-"30FF, BoldFeatures={Color=007F00} }
-}
-\end{lstlisting}
-does \emph{not} work. Instead, one have to write
 \begin{lstlisting}
-UprightFeatures = {
-  AltFont = { { Font=HogeraMin-Light, Range="3000-"30FF, } },
-},
-BoldFeatures = {
-  AltFont =  { { Font=HogeraMin-Bold, Range="3000-"30FF, Color=007F00 } },
-}
+\usepackage[no-math]{fontspec}
+\usepackage[...]{luatexja-preset}
 \end{lstlisting}
 
-On the other hand, \texttt{YokoFeatures}, \texttt{TateFeatures} and  \texttt{TateFont}
-keys can be specified in each list in the \texttt{AltFont} key. Also,
-one can specify \texttt{AltFont} inside \texttt{YokoFeatures},~\texttt{TateFeatures}.
+\item[nfssonly]
+%<*en>
+With this option, selecting Japanese fonts won't be performed using the functionality of
+            the \Pkg{fontspec} package, but only standard NFSS2 (hence without
+            \cs{addjfontfeatures} etc.).
+This option is ignored when \Pkg{luatexja-fontspec} package is loaded.
 
-Note that features which are specified in \texttt{YokoFeatures}~and~\texttt{TateFeatures}
-are always interpreted \emph{after} other ``direction-independent'' features.
-This explains why \cs{addjfontfeatures} at~line~6 in~\autoref{fig:yokotate-fontspec}
-has no effect, because a color specification is already done in
-\texttt{YokoFeatures}~and~\texttt{TateFeatures} keys.
-%</en>
-%<*ja>
-\paragraph{\texttt{AltFont}, \texttt{YokoFeatures}, \texttt{TateFeatures} 等の制限}
-\texttt{AltFont},~\texttt{YokoFeatures},~\texttt{TateFeatures}の各キーは
-シェイプ別に指定されるべきものであり,
-内部では \texttt{BoldFeatures} などのシェイプ別の指定は行うことが出来ない.
-例えば.
+When this option is specified, \Pkg{fontspec}~and~\Pkg{luatexja-fontspec} are
+\emph{not} loaded by default. Nevertheless,
+the package\Pkg{fontspec} can coexist with the option, as the following:
 \begin{lstlisting}
-AltFont = {
-  { Font=HogeraMin-Light, BoldFont=HogeraMin-Bold,
-    Range="3000-"30FF, BoldFeatures={Color=007F00} }
-}
+\usepackage{fontspec}
+\usepackage[hiragino-pron,nfssonly]{luatexja-preset}
 \end{lstlisting}
-のように指定することは出来ず,
+In this case, one can use \cs{setmainfont} etc.\ to select \emph{alphabetic} fonts.
+%</en>
+%<*ja>
+\LaTeX 標準のフォント選択機構(NFSS2)を用いて
+\texttt{ltjpm}(明朝),\texttt{ltjpg}(ゴシック),それに後に述べる \texttt{deluxe} オプ
+            ションが指定された場合には \texttt{ltjpmg}(丸ゴシック)という
+3つの和文フォントファミリを定義し,これらを用いる.
+
+本オプション指定時には\Pkg{fontspec}・\Pkg{luatexja-fontspec}パッケージは
+自動では読み込まれない,しかし,
 \begin{lstlisting}
-UprightFeatures = {
-  AltFont = { { Font=HogeraMin-Light, Range="3000-"30FF, } },
-},
-BoldFeatures = {
-  AltFont =  { { Font=HogeraMin-Bold, Range="3000-"30FF, Color=007F00 } },
-}
+\usepackage{fontspec}
+\usepackage[hiragino-pron,nfssonly]{luatexja-preset}
 \end{lstlisting}
-のように指定しなければならない.
-
-一方,\texttt{AltFont} キー内の各リストでは
-\ \texttt{YokoFeatures},~\texttt{TateFeatures} 及び \texttt{TateFont} キーを
-指定することは可能であり.また\ \texttt{YokoFeatures},~\texttt{TateFeatures} キーの
-中身に \texttt{AltFont} を指定することができる.
+のようにすれば,このオプションを指定すれば
+欧文フォントを\Pkg{fontspec}パッケージの機能を使って指定することができる.
+一方,
+パッケージ読み込み時に既に\Pkg{luatexja-fontspec}パッケージが読み込まれて
+            いる場合は \texttt{nfssonly} オプションは無視される.
+%</ja>
 
-また,\autoref{fig:yokotate-fontspec}後半部では6行目の色の指定が効かず,
-2行目で指定した\ \texttt{YokoFeatures},~\texttt{TateFeatures}\ による色の指定が有効になっ
-たままである.これは\emph{\ \texttt{YokoFeatures},~\texttt{TateFeatures}\ による
-OpenType機能指定は
-組方向に依存しないOpenType機能の指定より後に解釈される}からである.
+\item[match]
+%<*en>
+If this option is specified, usual family-changing commands such as
+\cs{rmfamily},~\cs{textrm}, \cs{sffamily},~\dots\ also change Japanese font family.
+This option is passed to \Pkg{luatexja-fontspec}, if \texttt{fontspec}
+option is specifed.
+%</en>
 
+%<*ja>
+このオプションが指定されると,「\pLaTeXe 新ドキュメントクラス」のように\
+\cs{rmfamily}, \verb+\textrm{...}+, \cs{sffamily} 等が
+欧文フォントだけでなく和文フォントも変更するようになる.
+\ \texttt{fontspec}\
+オプションが有効になっている場合は,このオプションは \Pkg{luatexja-fontspec} パッケージへと渡される.
 %</ja>
 
 
-\subsection{\Pkg{luatexja-otf}}
-\label{ssec-ltjotf}
+\item[nodeluxe%
+%<en>\textrm{~(enabled by default)}
+%<ja>\emph{\gtfamily (既定)}
+]
 %<*en>
-This optional package supports typesetting glyphs
-by specifying a CID number.
-The package \Pkg{luatexja-otf} offers the following 2~low-level
-commands:
+The nagation of \texttt{deluxe} option.
+Use one-weighted \textit{mincho} and \textit{gothic} font families.
+This means that \verb+\mcfamily\bfseries+, \verb+\gtfamily\bfseries+ and
+\verb+\gtfamily\mdseries+ use the same font.
 %</en>
 %<*ja>
-この追加パッケージはCID番号による文字の出力をサポートする.
-\Pkg{luatexja-otf}は以下の2つの低レベルコマンドを提供する:
+\texttt{deluxe}オプションの否定.
+\LaTeXe 環境下の標準設定のように,明朝体・ゴシック体を各1ウェイトで使用する.
+より具体的に言うと,この設定の下では
+\ \verb+\mcfamily\bfseries+, \verb+\gtfamily\bfseries+,
+\verb+\gtfamily\mdseries+はみな同じフォントとなる.
 %</ja>
-\begin{cslist}
-\item[\cs{CID}\{<number>\}]
+\item[deluxe]
 %<*en>
-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''.
+Use the mincho family with three weights (light, medium, and~bold),
+the gothic family with three weights (medium, bold, and extra~bold), and \textit{rounded gothic}%
+\footnote{Provided by \cs{mgfamily} and \cs{textmg},
+because ``rounded gothic'' is called \textit{maru gothic} (丸ゴシック) in Japanese.}.
+Mincho light and gothic extra~bold can be 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>
-CID番号が<number>の文字を出力する.
-もし現在の和文フォントがAdobe-Japan1,~Adobe-GB1, Adobe-CNS1,~Adobe-Korea1の
-  いずれのCID-keyed fontでもない場合,<number>はAdobe-Japan1のCID番号であると解釈し
-  「適切なグリフ」\footnote{%
-  例えばフォントにIVDコレクションAdobe-Japan1が含まれていれば,その情報を用いて
-  グリフを選択する.
-}を出力する.
-%</ja>
+明朝体・ゴシック体各3ウェイトと,
+丸ゴシック体 (\cs{mgfamily}, \verb+\textmg{...}+) を利用可能にする.
+明朝体は細字・中字・太字の3ウェイトがあり,
+明朝体の細字は \cs{mcfamily}\cs{ltseries} で利用できる.
+また,ゴシック体は中字・太字・極太の3ウェイトがあり,
+ゴシック体の極太は \cs{gtfamily}\cs{ebseries} で利用できる%
+\footnote{過去との互換性のため,\cs{gtebfamily}, \cs{textgteb\{...\}} も
+ 依然として利用可能である.}.
 
-\item[\cs{UTF}\{<hex\_number>\}]
+\begin{itemize}
+  \item プリセット設定によっては明朝体細字が用意されていないものもある.その場合は
+  明朝体中字が代用される.
+  \item 明朝体細字,ゴシック体極太,丸ゴシック体の3フォントについては
+  実際にフォントをロードする前に存在するかチェックを行う.
+  存在しなかったものについては警告を発し,
+  それぞれ明朝体中字.ゴシック体太字,ゴシック体太字で代用する.
+\end{itemize}
+%</ja>
+\item[expert]
 %<*en>
-Typeset a character whose character code is <hex\_number> (in hexadecimal).
-This command is similar to \verb+\char"+<hex\_number>,\ %"
-but please remind remarks below.
+Use horizontal/vertical kana alternates, and define a command \cs{rubyfamily} to use kana
+characters designed for ruby.
 %</en>
 %<*ja>
-文字コードが(16進で)<hex\_number>の文字を出力する.
-このコマンドは \verb+\char"+<hex\_number>と似ているが,下の注意を参照すること.%"
+横組・縦組専用仮名を用いる.また,\cs{rubyfamily} でルビ用仮名が使用可能となる\footnote{%
+  \cs{rubyfamily}とはいいつつ,実際にはフォントファミリを切り替えるのではない(通常では
+  font featureの追加,\texttt{nfssonly} 指定時にはシェイプを \texttt{rb} に切り替え).
+}.
 %</ja>
-\end{cslist}
-
+\item[bold]
+%<*en>
+Substitute bold series of gothic for  bold series of mincho.
+If \texttt{nodeluxe} option is enabled, medium series of gothic is also changed,
+since we use same font for both series of gothic.
+%</en>
 %<*ja>
-このパッケージは,マクロ集 \texttt{luatexja-ajmacros.sty}\footnote{\Pkg{otf}パッケージ付属の井上浩一氏によるマクロ集
-\texttt{ajmacros.sty} に対して
-漢字コードをUTF-8にしたり,plain \LuaTeX でも利用可能にするという
-修正を加えたものである.}\ も自動的に読み込む.
-\texttt{luatexja-ajmacros.sty} は,
-そのため,\Pkg{luatexja-otf} を読みこめば \texttt{ajmacros.sty} マクロ集にある \cs{aj半角} などのマクロもそのまま使うことができる.
+「明朝の太字」をゴシック体の太字によって代替する.
+もし\texttt{nodeluxe}オプションが指定されている場合は,ゴシック体は1ウェイトしか使用されな
+          いため,
+「ゴシック体の中字」も同時に変更されることになる.
 %</ja>
+\item[90jis]
+%<en>Use 90JIS glyph variants if possible.
+%<ja>出来る限り90JISの字形を使う.
+\item[jis2004]
+%<en>Use JIS2004 glyph variants if possible.
+%<ja>出来る限りJIS2004の字形を使う.
+\item[jfm\_yoko=<jfm>]
 %<*en>
-This package automatically loads \texttt{luatexja-ajmacros.sty}, which is slightly
-modified version of \texttt{ajmacros.sty}\footnote{Useful macros by iNOUE Koich!, for the
-\Pkg{japanese-otf} package.}.
-Hence one can use macros which sre defined in \texttt{ajmacros.sty}, such as~\cs{aj半角}.
+Use the JFM \texttt{jfm-<jfm>.lua} for horizontal direction, instead of \texttt{jfm-ujis.lua}~(default JFM).
 %</en>
-
-%<en>\paragraph{Remarks}
-%<ja>\paragraph{注意}
+%<*ja>
+横組用和文フォントで用いるJFMを\texttt{jfm-<jfm>.lua}にする.このオプションがない時は
+\LuaTeX\nobreakdash -ja標準の\texttt{jfm-ujis.lua}が用いられる.
+%</ja>
+\item[jfm\_tate=<jfm>]
 %<*en>
-Characters by \cs{CID} and \cs{UTF} commands are different from
-ordinary characters in the following points:
+Use the JFM \texttt{jfm-<jfm>.lua} for vertical direction, instead of \texttt{jfm-ujisv.lua}~(default JFM).
 %</en>
 %<*ja>
-\cs{CID} と \cs{UTF} コマンドによって出力される文字
-以下の点で通常の文字と異なる:
+縦用和文フォントで用いるJFMを\texttt{jfm-<jfm>.lua}にする.このオプションがない時
+\LuaTeX-ja標準の\texttt{jfm-ujisv.lua}が用いられる.
 %</ja>
-\begin{itemize}
+
+\item[jis]
+%<en>Same as \texttt{jfm\_yoko=jis}.
+%<ja>\texttt{jfm\_yoko=jis}と同じ.ここで用いるJFM\texttt{jfm-jis.lua}はJISフォントメトリックを元にしたものである.
+
+\end{cslist}
 %<*en>
-\item Always treated as \textbf{JAchar}s.
+Note that \texttt{90jis} and \texttt{jis2004} only affect with mincho,
+gothic (and, possibly rounded gothic) families defined by this package.
+We didn't taken account of  when both \texttt{90jis} and \texttt{jis2004} are specified.
 %</en>
 %<*ja>
-\item 常に\textbf{JAchar}として扱われる.
+\texttt{90jis}と\texttt{jis2004}については本パッケージで定義された
+明朝体・ゴシック体(・丸ゴシック体)にのみ有効である.
+両オプションが同時に指定された場合の動作については全く考慮していない.
 %</ja>
+
+%<en>\paragraph{Presets for multi weight}
+%<ja>\paragraph{多ウェイト用プリセットの一覧}
 %<*en>
-\item Processing codes for supporting OpenType features (\textit{e.g.},
-      glyph replacement and kerning) by the \Pkg{luaotfload} package
-      is not performed to these characters.
+Besides \texttt{morisawa-pro}~and~\texttt{morisawa-pr6n} presets,
+fonts are specified by font name, not by file name.
+In following tables, starred fonts (e.g.~KozGo\dots-Regular) are used for medium series of \textit{gothic},
+\emph{if and only if \texttt{deluxe} option is specified}.
 %</en>
 %<*ja>
-\item OpenType機能(例えばグリフ置換やカーニング)をサポートするための
-  \Pkg{luaotfload}パッケージのコードはこれらの文字には働かない.
+\texttt{morisawa-pro}, \texttt{morisawa-pr6n}以外はフォントの指定は
+(ファイル名でなく)フォント名で行われる.
+以下の表において,*\,つきのフォント(e.g.,~KozGo\dots-Regular)は,\emph{\texttt{deluxe}オプション指定時に}
+ゴシック体中字として用いられるものを示している.
 %</ja>
-\end{itemize}
-
-%<en>\paragraph{Additional syntax of JFM}
-%<ja>\paragraph{JFMへの記法の追加}
+\begin{cslist}[style=standard]
+ \item[kozuka-pro] Kozuka Pro (Adobe-Japan1-4) fonts.
+%<en>    \\*[-\dimexpr\medskipamount+\baselineskip\relax]
+ \item[kozuka-pr6] Kozuka Pr6 (Adobe-Japan1-6)  fonts.
+%<en>    \\*[-\dimexpr\medskipamount+\baselineskip\relax]
+ \item[kozuka-pr6n] Kozuka Pr6N (Adobe-Japan1-6, JIS04-savvy) fonts.
 
 %<*en>
-The package \Pkg{luatexja-otf} extends the syntax of JFM; the entries of \texttt{
-chars} table in JFM now allows a string in the form
-\verb+'AJ1-xxx'+, which stands for the character
-whose CID number in Adobe-Japan1 is \verb+xxx+.
-
-This extended notation is used in the standard JFM \texttt{jfm-ujis.lua}
-to typeset halfwidth Hiragana glyphs (CID~516--598) in halfwidth.
+Kozuka Pro/Pr6N fonts are bundled with Adobe's software, such as Adobe~InDesign.
+There is not rounded gothic family in Kozuka fonts.
 %</en>
 %<*ja>
-\Pkg{luatexja-otf}パッケージを読み込むと,
-JFMの\texttt{chars}テーブルのエントリとして \verb+'AJ1-xxx'+ の形の文字列が
-使えるようになる.これはAdobe-Japan1におけるCID番号が \verb+xxx+ の文字を表す.
-
-この拡張記法は,標準JFM~\texttt{jfm-ujis.lua}で,半角ひらがなのグリフ(CID~516--598)を
-正しく半角幅で組むために利用されている.
+小塚Pro書体・Pr6N書体はAdobe InDesign等のAdobe製品にバンドルされている.
+「小塚丸ゴシック」は存在しないので,便宜的に小塚ゴシックHによって代用している.
 %</ja>
-
-\subsection{\Pkg{luatexja-adjust}}
-\label{ssec-adj}
-\begin{figure}[t]
-\def\sq{%
-  \hbox to 1\zw{\hss\fboxsep=-.5\fboxrule\fbox{%
-   \hskip\dimexpr-.5\zw-.2pt\vrule width.4pt height.08\zw depth.12\zw%
-  \hskip\dimexpr.5\zw-.2pt\relax}\hss}}
-\def\sb{\hbox to 1\zw{\hss\fboxsep=-.5\fboxrule\fbox{%
-  ■\hskip\dimexpr-.5\zw-.2pt\vrule width.4pt height.08\zw depth.12\zw%
-  \hskip\dimexpr.5\zw-.2pt\relax}\hss}}
-\newbox\gridbox
-\def\outbox#1{{\Large%
-  \ltjsetparameter{kanjiskip=0pt plus .2\zw minus .2\zw}%
-  \setbox\gridbox=\hbox to 20\zw{\sq\sq\sq\sq\sb\sq\sq\sq\sq\sb\sq\sq\sq\sq\sb\sq\sq\sq\sq\sb}%
-  \hbox{\textcolor{cyan}{\copy\gridbox}\hskip-20\zw%
-  \vbox{\hsize=20\zw\noindent\leftskip0pt\rightskip0pt\parfillskip0pt#1}\vrule}%
-}}
-
-{\centering
-\begin{tabular}{lc}
+\begin{center}\small
+\begin{tabular}{lllll}
 \toprule
-no adjustment&\outbox{以上の原理は,「包除原理」とよく呼ばれるが\hskip-.5\zw\null}\\
-without priority&%
-\ltjdisableadjust
-\outbox{以上の原理は,「包除原理」とよく呼ばれるが}%
-\ltjenableadjust\\
-with priority&%
-\outbox{以上の原理は,「包除原理」とよく呼ばれるが}
-%<en>\ltjdisableadjust
-\\
+\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\\
+ &bold&KozMinPro-Bold&KozMinProVI-Bold&KozMinPr6N-Bold\\
+\midrule
+ &&KozGoPro-Regular*&KozGoProVI-Regular*&KozGoPr6N-Regular*\\
+ &\smash{\raisebox{1.5ex}{medium}}
+ &KozGoPro-Medium&KozGoProVI-Medium&KozGoPr6N-Medium\\
+\cmidrule(l){2-5}
+%<en>\smash{\raisebox{2ex}{\textit{gothic}}}%
+%<ja>\smash{\raisebox{2ex}{\gt ゴシック}}%
+ &bold&KozGoPro-Bold&KozGoProVI-Bold&KozGoPr6N-Bold\\
+ &extra bold&KozGoPro-Heavy&KozGoProVI-Heavy&KozGoPr6N-Heavy\\
+\midrule
+%<en>\textit{rounded gothic}
+%<ja>\gt 丸ゴシック
+&&KozGoPro-Heavy&KozGoProVI-Heavy&KozGoPr6N-Heavy\\
 \bottomrule
-\end{tabular}\par}
-\smallskip
-
-Note: the value of
-\Param{kanjiskip} is 0\,pt${}^{+1/5\,\mathrm{em}}_{-1/5\,\mathrm{em}}$ in this figure,
-for making the difference obvious.
-%<ja>\caption{行長調整}\label{fig:adj}
-%<en>\caption{Line adjustment}\label{fig:adj}
-\end{figure}
-
+\end{tabular}
+\end{center}
 
-%<*en>
-(see Japanese version of this manual)
-%</en>
-%<*ja>
-この追加パッケージは以下の機能を提供する.詳細な仕様については\ref{sec-adjspec}章を参照してほしい.
-\begin{description}
-\item[行末文字の位置調整]
-  \pTeX では,(是非はともかく)「行末の読点はぶら下げか二分取りか全角取りのいずれかに」のように
-  行末文字と実際の行末の位置関係を2通り以上にすることは面倒であった.
-  和文フォントメトリックだけでは「常に行末の読点はぶら下げ」といったことしかできず,
-  前の文に書いたことを実現するには
-\begin{lstlisting}
-\def\。{%
-  \penalty10000 % 禁則ペナルティ
-  \hbox to0pt{。\hss}\penalty0 % ぶら下げの場合
-  \kern.5\zw\penalty0 % 二分取りの場合
-  \kern.5\zw\penalty0 % 全角取りの場合
-}
-\end{lstlisting}
-  のような命令を定義し,文中の全ての句点を \lstinline+\。+ で書くことが必要だった.
+%<en>\newpage
+ \item[hiragino-pro]  Hiragino Pro (Adobe-Japan1-5) fonts.
+%<en>    \\*[-\dimexpr\medskipamount+\baselineskip\relax]
+ \item[hiragino-pron] Hiragino ProN (Adobe-Japan1-5, JIS04-savvy) fonts.
 
-\Pkg{luatexja-adjust}パッケージは,上で述べた行末文字と実際の行末との位置関係を
-2通り以上から自動的に選択する機能を提供する.
-\pdfTeX と同じように,「\TeX による行分割の後で行末文字の位置を補正する」方法と
-  「行分割の過程で行末文字の位置を考慮に入れる」方法を選べるようにした(
-\Pkg{luatexja-adjust}パッケージの既定では前者).
-  
-\item[優先順位付きの行長調整]
-\pTeX では,行長調整において優先度の概念が存在しなかったため,図
-\ref{fig:adj}上段における半角分の半端は,\autoref{fig:adj}中段のように,鍵
-括弧周辺の空白と和文間空白(\Param{kanjiskip})の両方によって負担される.し
-かし,「日本語組版処理の要件」\cite{jlreq}やJIS~X~4051~\cite{x4051}におい
-ては,このような状況では半端は鍵括弧周辺の空白のみで負担し,その他の和文
-文字はベタ組で組まれる(\autoref{fig:adj}下段)ことになっている.
-\Pkg{luatexja-adjust}パッケージの提供する第2の機能は,
-\cite{jlreq}や\cite{x4051}における規定のような,優先順位付き
-の行長調整である.
-\begin{itemize}
- \item 優先度付き行長調整は,段落を行分割した後に個々の行について行われるものである.
-そのため,行分割の位置は変化することはない.
+%<*en>
+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 fonts for gothic extra~bold (HiraKakuStd[N]-W8) only contains characters in
+Adobe-Japan1-3 character collection, while others contains those in
+Adobe-Japan1-5 character collection.
+%</en>
+%<*ja>
+ヒラギノフォントは,Mac OS~X以外にも,一太郎2012の上位エディションにもバンドルされている.
+極太ゴシック体として用いるヒラギノ角ゴW8は,Adobe-Japan1-3の範囲しかカバーしていない
+Std/StdNフォントであり,その他はAdobe-Japan1-5対応である.
 
-\verb+\hbox{...}+ といった「途中で改行できない水平ボックス」では(たとえ幅が指定されていても)無効である.
- \item 優先度付き行長調整を行うと,和文処理グルーの自然長は変化しないが,伸び量や縮み量は
-一般に変化する.そのため,既に組まれた段落を \cs{unhbox} などを利用して組み直す処理を
-行う場合には注意が必要である.
-\end{itemize}
-\end{description}
+なお,明朝体細字として用いるヒラギノ明朝体W2はOS~Xや一太郎にはバンドルされておらず,
+別途購入する必要がある.
+%</ja>
+\begin{center}\small
+\begin{tabular}{llll}
+\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\\
+ &bold&Hiragino~Mincho~Pro~W6&Hiragino~Mincho~ProN~W6\\
+\midrule
+ &&Hiragino~Kaku~Gothic~Pro~W3*&Hiragino~Kaku~Gothic~ProN~W3*\\
+ &\smash{\raisebox{1.5ex}{medium}}
+ &Hiragino~Kaku~Gothic~Pro~W6&Hiragino~Kaku~Gothic~ProN~W6\\
+\cmidrule(l){2-4}
+%<en>\smash{\raisebox{2ex}{\textit{gothic}}}%
+%<ja>\smash{\raisebox{2ex}{\gt ゴシック}}%
+ &bold&Hiragino~Kaku~Gothic~Pro~W6&Hiragino~Kaku~Gothic~ProN~W6\\
+ &extra bold&Hiragino~Kaku~Gothic~Std~W8&Hiragino~Kaku~Gothic~StdN~W8\\
+\midrule
+%<en>\textit{rounded gothic}
+%<ja>\gt 丸ゴシック
+&&Hiragino~Maru~Gothic~Pro~W4&Hiragino~Maru~Gothic~ProN~W4\\
+\bottomrule
+\end{tabular}
+\end{center}
 
-\Pkg{luatexja-adjust}パッケージは,上記で述べた2機能を有効化/無効化するための
-以下の命令を提供する.これらはすべてグローバルに効力を発揮する.
+ \item[morisawa-pro]  Morisawa Pro (Adobe-Japan1-4) fonts.
+%<en>    \\*[-\dimexpr\medskipamount+\baselineskip\relax]
+ \item[morisawa-pr6n]  Morisawa Pr6N (Adobe-Japan1-6, JIS04-savvy) fonts.
+\begin{center}\small
+\begin{tabular}{ll>{\tt}l>{\tt}l}
+\toprule
+\bf family&\bf series&morisawa-pro&morisawa-pr6n\\
+\midrule
+ &medium&A-OTF-RyuminPro-Light.otf&A-OTF-RyuminPr6N-Light.otf\\
+%<en>\smash{\raisebox{1.5ex}{\textit{mincho}}}%
+%<ja>\smash{\raisebox{1.5ex}{\gt 明朝}}%
+ &bold&A-OTF-FutoMinA101Pro-Bold.otf&A-OTF-FutoMinA101Pr6N-Bold.otf\\
+\midrule
+ &medium
+ &A-OTF-GothicBBBPro-Medium.otf&A-OTF-GothicBBBPr6N-Medium.otf\\
+%<en>\textit{gothic}%
+%<ja>\gt ゴシック
+ &bold&A-OTF-FutoGoB101Pro-Bold.otf&A-OTF-FutoGoB101Pr6N-Bold.otf\\
+ &extra bold&A-OTF-MidashiGoPro-MB31.otf&A-OTF-MidashiGoPr6N-MB31.otf\\
+\midrule
+%<en>\textit{rounded gothic}
+%<ja>\gt 丸ゴシック
+&&A-OTF-Jun101Pro-Light.otf&A-OTF-ShinMGoPr6N-Light.otf\\
+\bottomrule
+\end{tabular}
+\end{center}
 
-\begin{cslist}
-\item[\cs{ltjenableadjust[...]}]
-\verb+...+ に指定したkey-valueリストに従い,「行末文字の位置調整」「優先順位付きの行長調整」を有効化/無効化する.
-指定できるキーは以下の通り.
-\begin{description}
-  \item[\texttt{lineend=[false,true,extended]}]
-  行末文字の位置調整の機能を無効化(\texttt{false}),「行分割後に調整」の形で有効化(\texttt{true}),
-  「行分割の仮定で考慮」(\texttt{extended})する.
-  \item[\texttt{priority=[false,true]}]
-  優先順位付きの行長調整を無効化(\texttt{false}),または有効化(\texttt{true})する.
-\end{description}
-両キーともキー名のみを指定した場合は値として\texttt{true}が指定されたものと扱われる.
 
-互換性の為,オプション無しでただ\cs{ltjenableadjust}が呼び出された場合は,
-\begin{lstlisting}
-\ltjenableadjust[lineend=true,priority=true]
-\end{lstlisting}
-と扱われる.
-  
-\item[\cs{ltjdisableadjust}]
-\Pkg{luatexja-adjust}パッケージの機能を無効化する.
-\begin{lstlisting}
-\ltjenableadjust[lineend=false,priority=false]
-\end{lstlisting}
-と同義.
-\end{cslist}
+ \item[yu-win]  Yu fonts bundled with Windows~8.1.
+%<en>    \\*[-\dimexpr\medskipamount+\baselineskip\relax]
+ \item[yu-win10]  Yu fonts bundled with Windows~10.
+%<en>    \\*[-\dimexpr\medskipamount+\baselineskip\relax]
+ \item[yu-osx]  Yu fonts bundled with OSX~Mavericks.
+\begin{center}\small
+\begin{tabular}{lllll}
+\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\\
+ &bold&YuMincho-Demibold&YuMincho-Demibold&YuMincho~Demibold\\
+\midrule
+ &&YuGothic-Regular*&YuGothic-Regular*&YuGothic~Medium*\\
+ &\smash{\raisebox{1.5ex}{medium}}%
+        &YuGothic-Regular&YuGothic-Medium&YuGothic~Medium\\
+\cmidrule(l){2-5}
+%<en>\textit{gothic}%
+%<ja>\gt ゴシック
+ &bold&YuGothic-Bold&YuGothic-Bold&YuGothic~Bold\\
+ &extra bold&YuGothic-Bold&YuGothic-Bold&YuGothic~Bold\\
+\midrule
+%<en>\textit{rounded gothic}
+%<ja>\gt 丸ゴシック
+&&YuGothic-Bold&YuGothic-Bold&YuGothic~Bold\\
+\bottomrule
+\end{tabular}
+\end{center}
 
-また,優先順位付きの行長調整のために,次の2パラメータが\cs{ltjsetparameter}内で
-追加される.両パラメータともグローバルに効力を発揮する.
-\begin{cslist}[style=standard]
-\item[\DParam{stretch\_priority}\,=\{<list>\}]
-\Param{kanjiskip}, \Param{xkanjiskip},および「\textbf{JAglue}以外のグルー」を,
-「行を自然長より伸ばす」場合の調整に用いる優先度を指定する.
+\item[moga-mobo]  MogaMincho, MogaGothic, and MoboGothic.
+%<en>    \\*[-\dimexpr\medskipamount+\baselineskip\relax]
+\item[moga-mobo-ex]  MogaExMincho, MogaExGothic, and MoboExGothic.
+%<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}{llll}
+\toprule
+\bf family&\bf series&\bf default, \texttt{90jis}~option&\bf \texttt{jis2004} option\\
+\midrule
+ &medium&Moga90Mincho&MogaMincho\\
+%<en>\smash{\raisebox{1.5ex}{\textit{mincho}}}%
+%<ja>\smash{\raisebox{1.5ex}{\gt 明朝}}%
+ &bold&Moga90Mincho Bold&MogaMincho Bold\\
+\midrule
+ &medium&Moga90Gothic&MogaGothic\\
+%<en>\textit{gothic}%
+%<ja>\gt ゴシック
+ &bold&Moga90Gothic Bold&MogaGothic Bold\\
+ &extra bold&Moga90Gothic Bold&MogaGothic Bold\\
+\midrule
+%<en>\textit{rounded gothic}
+%<ja>\gt 丸ゴシック
+&&Mobo90Gothic&MoboGothic\\
+\bottomrule
+\end{tabular}
+\end{center}
+%<en>When \texttt{moga-mobo-ex} is specified, the font ``MogaEx90Mincho'' etc.\ are used.
+%<ja>\texttt{moga-mobo-ex}オプション指定時にはMogaEx90MinchoなどのExが名前についたフォントが使われる.
 
-指定方法は,<list>の中にkey-value listの形で
-\begin{lstlisting}
-stretch_priority={kanjiskip=-35,xkanjiskip=-25,others=50}
-\end{lstlisting}
-のようにして行う.キー名\texttt{kanjiskip},~\texttt{xkanjiskip}については
-そのままの意味であり,
-\texttt{others}キーが「\textbf{JAglue}以外のグルー」を表す.
-各キーの値は,JFMグルーにおける「優先度$i$」を$10i$に対応させた整数値であり,
-  大きい方が先に伸ばされることを意味している.
+\item[ume]  Ume Mincho and Ume Gothic.
+%<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}{lll}
+\toprule
+\bf family&\bf series&\bf default\\
+\midrule
+ &medium&Ume Mincho\\
+%<en>\smash{\raisebox{1.5ex}{\textit{mincho}}}%
+%<ja>\smash{\raisebox{1.5ex}{\gt 明朝}}%
+ &bold&Ume Mincho\\
+\midrule
+ &&Ume Gothic*\\
+ &\smash{\raisebox{1.5ex}{medium}}&Ume Gothic O5\\
+\cmidrule(l){2-3}
+%<en>\textit{gothic}%
+%<ja>\gt ゴシック
+ &bold&Ume Gothic O5\\
+ &extra bold&Ume Gothic O5\\
+\midrule
+%<en>\textit{rounded gothic}
+%<ja>\gt 丸ゴシック
+&&Ume Gothic O5\\
+\bottomrule
+\end{tabular}
+\end{center}
 
-\item[\DParam{shrink\_priority}\,=\{<list>\}]
-同様に,「行を自然長より縮める」場合の調整に用いる優先度を指定する.
-それ以外は\Param{stretch\_priority}と指定の形式は変わらない.
-\end{cslist}
-初期値は\Param{stretch\_priority}, \Param{shrink\_priority}とも
-\begin{lstlisting}
-{kanjiskip=-35,xkanjiskip=-25,others=50}
-\end{lstlisting}
-であり,「優先度$-4$」と指定されているJFMグルーが最も伸び(縮み)にくいようになっている.
-%</ja>
+ \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}{lllll}
+\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}\\
+ &extra bold&\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}{lllll}
+\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}\\
+ &extra bold&\AD{Sans}{Black}\\
+\midrule
+%<en>\textit{rounded gothic}
+%<ja>\gt 丸ゴシック
+&&\AD{Sans}{Black}\\
+\bottomrule
+\end{tabular}
+\end{center}
 
-\subsection{\Pkg{luatexja-ruby}}
-%<*en>
-This addon package provides functionality of ``ruby'' (\emph{furigana}) annotations
-using callbacks of \LuaTeX-ja.
-There is no detailed manual of \Pkg{luatexja-ruby.sty} in English.
-(Japanese manual is another PDF file, \url{luatexja-ruby.pdf}.)
-%</en>
-%<*ja>
-この追加パッケージは,\LuaTeX-jaの機能を利用したルビ(振り仮名)の組版機能を提供する.
-前後の文字種に応じた前後への自動進入や,
-行頭形・行中形・行末形の自動的な使い分けが特徴である.
 
-ルビ組版に設定可能な項目や注意事項が多いため,本追加パッケージの詳細な説明は
-使用例と共に \url{luatexja-ruby.pdf}\ という別ファイルに載せている.
-この節では簡単な使用方法のみ述べる.
-%</ja>
 
-\begin{description}
+\end{cslist}
+%<en>\paragraph{Presets for single weight}
+%<ja>\paragraph{単ウェイト用プリセット一覧}
 %<*en>
- \item[Group-ruby]
-By default, ruby characters (the second argument of \cs{ruby})
-are attached to base characters (the first argument), as one object.
-This type of ruby is called \emph{group-ruby}.
+Next, we describe settings for using only single weight.
 %</en>
 %<*ja>
- \item[グループルビ] 標準ではグループルビの形で組まれる.第1引数に親文字,
-第2引数にルビを記述する.
+次に,単ウェイト用の設定を述べる.この4設定では
+明朝体太字・丸ゴシック体はゴシック体と同じフォントが用いられる.
 %</ja>
-\begin{LTXexample}[width=0.3\textwidth]
-東西線\ruby{妙典}{みようでん}駅は……\\
-東西線の\ruby{妙典}{みようでん}駅は……\\
-東西線の\ruby{妙典}{みようでん}という駅……\\
-東西線\ruby{葛西}{かさい}駅は……
-\end{LTXexample}
-%<*en>
-As the above example, ruby hangover is allowed on the Hiragana before/after
-its base characters.
-%</en>
-%<ja> この例のように,標準では前後の平仮名にルビ全角までかかるようになっている.
-
+\par\nobreak\medskip
+{\centering\small
+\begin{tabular}{lllll}
+\toprule
+&\tt noembed&\tt ipa&\tt ipaex&\tt ms\\
+\midrule
 %<*en>
-\item[Mono-ruby]
-To attach ruby characters to each base characters (\emph{mono-ruby}),
-one should use \cs{ruby} multiple times:
+\it mincho&Ryumin-Light (non-embedded)
+&IPA Mincho&IPAex Mincho&MS Mincho\\
+\it gothic&GothicBBB-Medium (non-embedded)
+&IPA Gothic&IPAex Gothic&MS Gothic\\
 %</en>
 %<*ja>
- \item[モノルビ] 親文字を1文字にするとモノルビとなる.
-2文字以上の熟語をモノルビの形で組みたい場合は,面倒でも
-その数だけ \cs{ruby} を書く必要がある.
+\gtfamily 明朝体&Ryumin-Light(非埋込)
+&IPA明朝&IPAex明朝&MS明朝\\
+\gtfamily ゴシック体&GothicBBB-Medium(非埋込)
+&IPAゴシック&IPAexゴシック&MSゴシック\\
 %</ja>
-\begin{LTXexample}[width=0.3\textwidth]
-東西線の\ruby{妙}{みよう}\ruby{典}{でん}駅は……
-\end{LTXexample}
+\bottomrule
+\end{tabular}\par\medskip}
 
+%<en>\paragraph{Using HG fonts}
+%<ja>\paragraph{HGフォントの利用}
 %<*en>
- \item[Jukugo-ruby]
-Vertical bar~\verb+|+ denotes a boundary of \emph{groups}.
+We can use HG~fonts bundled with Microsoft~Office for realizing multiple weights.
+In the table below, starred fonts (e.g., IPA~Gothic*) are used
+only if \texttt{jis2004} or \texttt{nodeluxe} option is spefified.
 %</en>
 %<*ja>
- \item[熟語ルビ] 引数内の縦棒 \verb+|+ はグループの区切りを表し,
-複数グループのルビは熟語ルビとして組まれる.
-\cite{x4051}にあるように,
-どのグループでも「親文字」が対応するルビ以上の長さの場合は
-各グループごとに,そうでないときは全体をまとめて1つのグループルビとして組まれる.
-\cite{jlreq}で規定されている組み方とは異なるので注意.
+すぐ前に書いた単ウェイト用設定を,Microsoft Office等に付属するHGフォントを使って
+多ウェイト化した設定もある.以下の表では,*~付きのフォント(例:IPAゴシック*)は
+\texttt{jis2004}と\texttt{nodeluxe}のいずれかのオプションが有効になっているときに使われる.
 %</ja>
-\begin{LTXexample}
-\ruby{妙|典}{みよう|でん}\
-\ruby{葛|西}{か|さい}\
-\ruby{神楽|坂}{かぐら|ざか}
-\end{LTXexample}
-%<*en>
-If there are multiple groups in one \cs{ruby} call,
-A linebreak between two groups is allowed.
-%</en>
-%<ja> 複数ルビではグループとグループの間で改行が可能である.
-\begin{LTXexample}[width=0.3\textwidth]
-\vbox{\hsize=6\zw\noindent
-  \hbox to 2.5\zw{}\ruby{京|急|蒲|田}{けい|きゆう|かま|た}
-  \hbox to 2.5\zw{}\ruby{京|急|蒲|田}{けい|きゆう|かま|た}
-  \hbox to   3\zw{}\ruby{京|急|蒲|田}{けい|きゆう|かま|た}
-}
-\end{LTXexample}
-\end{description}
-
+\par\nobreak\medskip
+{\centering\small
+\begin{tabular}{lllll}
+\toprule
+\textbf{family}&\textbf{series}&\tt ipa-hg&\tt ipaex-hg&\tt ms-hg\\
+\midrule
 %<*en>
-If the width of ruby characters are longer than that of base characters,
-\cs{ruby} automatically selects the appropriate form
-among the line-head form, the line-middle form, and the line-end form.
-%</en>
-%<*ja>
-また,ルビ文字のほうが親文字よりも長い場合は,自動的に
-行頭形・行中形・行末形のいずれか適切なものを選択する.
+&medium&IPA Mincho&IPAex Mincho&MS Mincho\\
+\smash{\raisebox{1.5ex}{\textit{mincho}}}%
+&bold&HG Mincho E&HG Mincho E&HG Mincho E\\\midrule
+&&IPA Gothic*&IPAex Gothic*&MS Gothic*\\
+&\smash{\raisebox{1.5ex}{medium}}%
+&HG Gothic M&HG Gothic M&HG Gothic M\\\cmidrule{2-5}
+\textit{gothic}&bold&HG Gothic E&HG Gothic E&HG Gothic E\\\cmidrule{2-5}
+&extra bold&HG Soei Kaku Gothic UB&HG Soei Kaku Gothic UB&HG Soei Kaku Gothic UB\\\midrule
+\textit{rounded gothic}&&
+HG MaruGothic M PRO&HG MaruGothic M PRO&HG MaruGothic M PRO\\
+%</en>
+%<*ja>
+&medium&IPA明朝&IPAex明朝&MS明朝\\
+\smash{\raisebox{1.5ex}{\textgt{明朝体}}}%
+&bold&HG明朝E&HG明朝E&HG明朝E\\\midrule
+&&IPAゴシック*&IPAexゴシック*&MSゴシック*\\
+&\smash{\raisebox{1.5ex}{medium}}%
+&HGゴシックM&HGゴシックM&HGゴシックM\\\cmidrule{2-5}
+\textgt{ゴシック体}&bold&HGゴシックE&HGゴシックE&HGゴシックE\\\cmidrule{2-5}
+&extra bold&HG創英角ゴシックUB&HG創英角ゴシックUB&HG創英角ゴシックUB\\\midrule
+\textgt{丸ゴシック体}&&
+HG丸ゴシックM-PRO&HG丸ゴシックM-PRO&HG丸ゴシックM-PRO\\
 %</ja>
-\begin{LTXexample}[width=0.3\textwidth]
-\vbox{\hsize=8\zw\noindent
-\null\kern3\zw ……を\ruby{承}{うけたまわ}る
-     \kern1\zw ……を\ruby{承}{うけたまわ}る\\
-\null\kern5\zw ……を\ruby{承}{うけたまわ}る
-}
-\end{LTXexample}
-
-
-%<*ja>
-\subsection{\Pkg{lltjext}}
-\pLaTeX では縦組用の拡張として \Pkg{plext} パッケージが用意されていたが,
-それを\LuaTeX-ja用に書きなおしたものが本追加パッケージ \Pkg{lltjext} である.
-
-従来の \Pkg{plext} パッケージとの違いは,
-{\catcode`\<=12
-\begin{itemize}
- \item 組方向オプション \texttt{<y>}(横組),\texttt{<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}
-
- \item 連数字用命令 \cs{rensuji} における位置合わせオプション \texttt{[l]}, \texttt{[c]},
-       \texttt{[r]} の挙動を若干変更した.
+\bottomrule
+\end{tabular}\par\medskip}
 
-\end{itemize}
-}
-%</ja>
 %<*en>
-\subsection{\texttt{lltjext.sty}}
-\pLaTeX\ supplies additional macros for vertical writing in the \Pkg{plext} package.
-The \Pkg{lltjext} package which we want to describe here is the \LuaTeX-ja
-counterpart of the \Pkg{plext} package.
+Note that HG~Mincho~E, HG~Gothic~E, HG Soei Kaku Gothic UB, and HG Maru Gothic PRO
+are internally specified by:
+\begin{description}
+\item[default] by font name (\texttt{HGMinchoE}, etc.).
+\item[{\tt 90jis}] by file name (\texttt{hgrme.ttc}, \texttt{hgrge.ttc}, \texttt{hgrsgu.ttc}, \texttt{hgrsmp.ttf}).
+\item[{\tt jis2004}] by file name (\texttt{hgrme04.ttc}, \texttt{hgrge04.ttc}, \texttt{hgrsgu04.ttc}, \texttt{hgrsmp04.ttf}).
+\end{description}
 %</en>
-
 %<*ja>
-念の為,本 \Pkg{lltjext} パッケージで追加・変更している命令の一覧を載せておく.
-\begin{cslist}
-\item[tabular\textrm{, }array\textrm{, }minipage環境]
-これらの環境は,
-\begin{lstlisting}
-\begin{tabular}<dir>[pos]{table spec} ... \end{tabular}
-\begin{array}<dir>[pos]{table spec}   ... \end{array}
-\begin{minipage}<dir>[pos]{width}     ... \end{minipage}
-\end{lstlisting}
-のように,組方向オプション \texttt{\<dir\>} が拡張されている.
-既に述べたように,組方向オプションに指定できる値は以下の5つであり,
-それ以外を指定した時や無指定時は周囲の組方向と同じ組方向になる.
+なお,HG明朝E・HGゴシックE・HG創英角ゴシックUB・HG丸ゴシック体PROの4つについては,内部で
 \begin{description}
- \item[y] 横組(\cs{yoko})
- \item[t] 縦組(\cs{tate})
- \item[z] 周囲が縦組の時はutod方向,それ以外はそのまま
- \item[d] dtou方向
- \item[u] utod方向
+\item[標準] フォント名(\texttt{HGMinchoE} など)
+\item[{\tt 90jis}指定時] ファイル名 (%
+\texttt{hgrme.ttc}, \texttt{hgrge.ttc}, \texttt{hgrsgu.ttc}, \texttt{hgrsmp.ttf})
+\item[{\tt jis2004}指定時] ファイル名 (%
+\texttt{hgrme04.ttc}, \texttt{hgrge04.ttc}, \texttt{hgrsgu04.ttc}, \texttt{hgrsmp04.ttf})
 \end{description}
-\item[\cs{parbox}\<<dir>\>{[<pos>]}\{<width>\}\{<contents>\}]
-\cs{parbox} 命令も同様に,組方向の指定ができるように拡張されている.
-
-\item[\cs{pbox}\<<dir>\>{[<width>][<pos>]}\{<contents>\}]
-組方向<dir>で<contents>の中身をLRモードで組む命令である.
-<width>が正の値であるときは,ボックス全体の幅がその値となる.
-その際,中身は<pos>の値に従い,左寄せ(\texttt{l}),右揃え(\texttt{r}),
-中央揃え(それ以外)される.
-\item[picture環境]
-図表作成に用いる \texttt{picture} 環境も,
-\begin{lstlisting}
-\begin{picture}<dir>(x_size, y_size)(x_offset,y_offset)
-  ...
-\end{picture}
-\end{lstlisting}
-と組方向が指定できるように拡張されている.
-$x$成分の増加方向は字送り方向,$y$成分の増加方向は行送り方向の\emph{反対方向}となる.
-\Pkg{plext} パッケージと同様に
-内部ではベースライン補正(\Param{yalbaselineshift}パラメータなど)の影響を受けないように,
-\cs{put},~\cs{line}, \cs{vector}, \cs{dashbox}, \cs{oval},~\cs{circle}も
-ベースライン補正を受けないように再定義されている.
-
-\item[\cs{rensuji}{[<pos>]}\{<contents>\}\textrm{, }\cs{rensujiskip}]
-
-\item[\cs{Kanji}\{<counter\_name>\}]
-
-\item[\cs{kasen}\{<contents>\}\textrm{, }\cs{bou}\{<contents>\}\textrm{,
-                    }\cs{boutenchar}]
-
-\item[参照番号]
-\end{cslist}
+として指定を行っているので注意すること.
 %</ja>
-%<*en>
-\begin{cslist}
-\item[tabular\textrm{, }array\textrm{, }minipage\textrm{ environments}]
-These environments are extended by \texttt{\<dir\>}, which specifies the direction,
-as follows:
-\begin{lstlisting}
-\begin{tabular}<dir>[pos]{table spec} ... \end{tabular}
-\begin{array}<dir>[pos]{table spec}   ... \end{array}
-\begin{minipage}<dir>[pos]{width}     ... \end{minipage}
-\end{lstlisting}
-This option permits one of the following five values. If none of them is specified,
-the direction inside the environment is same as that outside the enviromnent.
-\begin{description}
- \item[y] \emph{yoko} direction (horizontal writing)
- \item[t] \emph{tate} direction (vertical writing)
- \item[z] \emph{utod} direction if direction outside the env.\ is \emph{tate}.
- \item[d] \emph{dtou} direction
- \item[u] \emph{utod} direction
-\end{description}
-\item[\cs{parbox}\<<dir>\>{[<pos>]}\{<width>\}\{<contents>\}]
-\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
-
-\item[picture\textrm{\ environment}]
-
-\item[\cs{rensuji}{[<pos>]}\{<contents>\}\textrm{, }\cs{rensujiskip}]
-
-\item[\cs{Kanji}\{<counter\_name>\}]
-
-\item[\cs{kasen}\{<contents>\}\textrm{, }\cs{bou}\{<contents>\}\textrm{,
-                    }\cs{boutenchar}]
-
-\item[参照番号]
-\end{cslist}
-%</en>
-
-
 
+\clearpage
 %<en>\part{Implementations}
 %<ja>\part{実装}
 \label{part-imp}
@@ -7882,7 +8037,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}]
@@ -7898,7 +8053,7 @@ These whatsits will be removed during the process of inserting \textbf{JAglue}s.
 
 %<en>\subsection{Stack system of \LuaTeX-ja}
 %<ja>\subsection{\LuaTeX-jaのスタックシステム}
-\label{ssec-stack}
+\label{ssec:stack}
 
 %<en>\paragraph{Background}
 %<ja>\paragraph{背景}
@@ -7922,7 +8077,7 @@ source:
 \end{LTXexample}
 
 %<*en>
-As described in Subsection~\ref{ssec-param}, the only effective value of
+As described in Subsection~\ref{ssec:param}, the only effective value of
 \Param{kanjiskip} in an hbox is the latest value, so the value of
 \Param{kanjiskip} which applied in the entire hbox should be 5\,pt.
 However, by the implementation method of \LuaTeX, this ``5\,pt'' cannot be
@@ -7930,7 +8085,7 @@ known from any callbacks.  In the \texttt{tex/packaging.w}, which is a
 file in the source of \LuaTeX, there are the following codes:
 %</en>
 %<*ja>
-\ref{ssec-param}節で述べたように,あるhboxの中で効力を持つ
+\ref{ssec:param}節で述べたように,あるhboxの中で効力を持つ
 \Param{kanjiskip}の値は最後に現れた値のみであり,したがってボックス全体に適用される
 \Param{kanjiskip}は5\,ptであるべきである.しかし,\LuaTeX の実
 装を観察すると,この5\,ptという長さはどのコールバックからも知ることはできないことがわかる.
@@ -8227,7 +8382,7 @@ function luatexja.unary_pars.hoge (t)
 end
 \end{lstlisting}
 Here the argument of \verb+luatexja.unary_pars.hoge+ is
-the stack level of \LuaTeX-ja's stack system (see Subsection~\ref{ssec-stack}).
+the stack level of \LuaTeX-ja's stack system (see Subsection~\ref{ssec:stack}).
 
 On the other hand, for parameters that need an additional argument
 (this must be an integer), one have to define a function in
@@ -8258,7 +8413,7 @@ function luatexja.unary_pars.hoge (t)
 end
 \end{lstlisting}
 を実行すると,\verb+\ltjgetparameter{hoge}+ は \texttt{42} という\emph{文字列}を返す.
-関数 \verb+luatexja.unary_pars.hoge+ の引数$t$は,\ref{ssec-stack}節で述べた
+関数 \verb+luatexja.unary_pars.hoge+ の引数$t$は,\ref{ssec:stack}節で述べた
 \LuaTeX-jaのスタックシステムにおけるスタックレベルである.
 戻り値はいかなる値であっても,最終的には文字列として出力されることに注意.
 
@@ -8822,7 +8977,7 @@ $g$は「文字コード \texttt{'boxbdd'} の文字」と\textit{Np}の間に
 \Param{kcatcode}の最下位ビットはこの\Param{jcharwidowpenalty}用にのみ利用される.}.
 
 \subsection{概観と典型例:2つの「和文A」の場合}
-\label{ssec-cluster-wa}
+\label{ssec:cluster-wa}
 先に述べたように,2つの隣り合ったクラスタ,\textit{Nq}と\textit{Np}の間には,
 ペナルティ,\cs{vadjust},whatsitなど,行組版には関係しないものがある.模式的に表すと,
 \[
@@ -9421,7 +9576,7 @@ variation selectors are ``combined'' with the previous character.
 \texttt{vsraw}は,ブール値の値をとるキーであり,標準ではfalseである.
 \begin{itemize}
  \item trueの場合は,異体字セレクタは「直前の文字に続けて」出力される.
-もしもIVSサポート(\ref{ssec-ltjotf}節)が有効になっていた場合は,
+もしもIVSサポート(\ref{ssec:ltjotf}節)が有効になっていた場合は,
 以下の例(左側は入力,右側はその出力)のようになる.
 %</ja>
 \begin{LTXexample}
@@ -9706,7 +9861,7 @@ the \texttt{lstlisting} environment or other environments/commands.
 \begin{itemize}
 \item \textbf{JAglue}ではないグルー
 \item JFMグルー(優先度\footnote{%
-  \ref{ssec-jfm-str}節にあるように,
+  \ref{ssec:jfm-str}節にあるように,
   各JFMグルーには$-4$から3までの優先度がついている.場合によっては
   伸びと縮みで異なる優先度が付いているかもしれない.}%
 別にまとめられる)