OSDN Git Service

manual (en): added description of \ltj@setpar@global etc.
[luatex-ja/luatexja.git] / doc / luatexja.dtx
index 5fb9f15..829e5b2 100644 (file)
@@ -8,6 +8,7 @@
 
 %%%%% section ==> 章
 %%%%% subsection => 節
+\IfFileExists{luatex85.sty}{\RequirePackage{luatex85}}{}
 
 %<en>\documentclass[a4paper,titlepage]{article}
 %<ja>\documentclass[a4paper,titlepage]{ltjsarticle}
 %%%%%%%%
 \makeatletter
 %%%%%%%%
+\def\pgfsysdriver{pgfsys-pdftex.def}
 \directlua{if jit then jit.on() end}
-
-\usepackage{amsmath,array,tikz,pict2e,multienum,float}
+\usepackage{metalogo,amsmath,array,tikz,pict2e,multienum,float}
 \usepackage{booktabs,multicol,luatexja-ruby}
 \usepackage[all]{xy}
-\usepackage{lltjext,alltt}
+\usepackage{lltjext,alltt,comment}
+
+%%%%%%%% Lua GC
+\patchcmd\@outputpage{\stepcounter{page}}{%
+  \directlua{%
+       if jit then
+      local k = collectgarbage("count")
+      if k>900000 then 
+        collectgarbage("collect")
+        texio.write_nl("term and log", "GC: ", math.floor(k), math.floor(collectgarbage("count")))
+      end
+       end
+  }%
+  \stepcounter{page}%
+}{}{}
 
 %%%%%%%% fonts
 \usepackage{luatexja-otf}
-\directlua{luatexja.otf.enable_ivs()}
-\usepackage[match]{luatexja-fontspec}
-\usepackage[kozuka-pr6n]{luatexja-preset}
-\usepackage{unicode-math}
+\usepackage[no-math]{fontspec}
 \setmainfont[Ligatures=TeX]{Linux Libertine O}
 \setmonofont[Scale=MatchLowercase, ItalicFont=lmmono10-italic.otf,
   BoldFont=lmmonolt10-bold.otf, BoldItalicFont=lmmonolt10-boldoblique.otf
 ]{lmmono10-regular.otf}
+\setsansfont[Scale=MatchLowercase,Ligatures=TeX]{Linux Biolinum O}
+\usepackage[match]{luatexja-fontspec}
+\usepackage[kozuka-pr6n]{luatexja-preset}
+\usepackage{unicode-math}
 \setmonojfont{KozGoPr6N-Regular.otf}
 \setmathfont[Scale=MatchLowercase]{xits-math.otf}
-\setsansfont[Scale=MatchLowercase,Ligatures=TeX]{Linux Biolinum O}
+
+\setLaTeXa{\scshape a}
 %<*ja>
 \def\emph#1{\textbf{\textgt{#1}}}
 \def\headfont{\normalfont\bfseries\gtfamily}\normalsize
 %</ja>
 %<*en>
-\frenchspacing
+\frenchspacing\sloppy
 \usepackage[margin=25mm,lmargin=30mm,rmargin=30mm,footskip=6mm]{geometry}
 \usepackage{luatexja-adjust}\ltjdisableadjust
 \parskip=\smallskipamount
+\makeatletter
 \renewcommand\paragraph{\@startsection{paragraph}{4}{\z@}%
     {3.25ex \@plus1ex \@minus.2ex}%
     {-1em}%
@@ -77,6 +95,7 @@
   explpreset={numberstyle=\tiny, numbers=left, numbersep=1em, columns=fixed}
 }
 % Suppress output from showexpl to stdout.
+\makeatletter
 \let\SX@Info\relax
 
 %%%%%%%% colors
 %<*en>
 \title{The \LuaTeX-ja package}
 \author{The \LuaTeX-ja project team}
+\date{\LuaTeXjaversion~(\today)}
 %</en>
 %<*ja>
 \title{\LuaTeX-jaパッケージ}
 \author{\LuaTeX-jaプロジェクトチーム}
+\date{\LuaTeXjaversion(\today)}
 %</ja>
 \hypersetup{%
        unicode,
        pdftitle={LuaTeX-jaパッケージ}
 %</ja>
 }
+%<*ja>
+\def\HyRef@autoref#1#2{%
+  \begingroup
+    \Hy@safe@activestrue
+    \expandafter\HyRef@autosetref\csname r@#2\endcsname{#2}{#1}%
+  \endgroup\ltjalchar"200C %" 欧文ゴースト
+}
+\def\figureautorefname{図}
+\def\tableautorefname{表}
+%</ja>
 
 %%%%%%%% definition env.
 \usepackage{amsthm}
 \DeclareRobustCommand\epTeX{\ensuremath{\varepsilon}-\pTeX}
 
 %%%%%%%% other macros
-\newlist{cslist}{description}{1}
+\newlist{cslist}{description}{2}
 \setlist[cslist]{%
     style=nextline,font=\mdseries\ttfamily,
     before*=\def\<{\char`\<}\def\>{\char`\>}\def\{{\char`\{}\def\}{\char`\}},
+    topsep=\medskipamount,
 %<ja> leftmargin=2\zw,
 %<en> leftmargin=2em,
 }
   \vskip\belowcaptionskip}
 
 \def\_{\leavevmode \kern .06em\vbox {\hrule \@width .333em}}
-\def\cs#1{\texttt{\upshape\textbackslash\ltjsetparameter{autoxspacing=false}#1}}
-
+\def\cs#1{\texttt{\upshape
+  \texorpdfstring{\textbackslash\hbox{\ltjsetparameter{autoxspacing=false}#1}}{\textbackslash#1}}}
+\ltjsetparameter{alxspmode={`\\,allow}}
 %%%%%%%%
 \makeatother
 %%%%%%%%
   width:\hfill\ #2\cr height:\hfill\ #3\cr depth:\hfill\ #4\cr
   }}}}}\,}
 
-\protected\def\Param#1{\hyperlink{fld:#1}{\textsf{#1}}} % parameter name
-\protected\def\DParam#1{\hypertarget{fld:#1}{\textsf{#1}}} % parameter name (definition)
-\protected\def\Pkg#1{\underline{\smash{\texttt{#1}}}} % packages/classes
-
+\def\myghost{\ifmmode\else\ltjalchar"200C \fi}
+\protected\def\Param#1{\myghost\hyperlink{fld:#1}{\underline{\smash{\textsf{#1}}}}\myghost} % parameter name
+\protected\def\DParam#1{\myghost\hypertarget{fld:#1}{\underline{\smash{\textsf{#1}}}}\myghost} % parameter name (definition)
+\protected\def\Pkg#1{\textsf{#1}} % packages/classes
+\ltjsetparameter{alxspmode={"200C,allow}}
 
 \begin{document}
 \lstset{
@@ -268,7 +302,7 @@ scripts for appropriate callbacks.
 が始まったパッケージである.
 %</ja>
 
-%<en>\subsection{Major Changes from \pTeX}
+%<en>\subsection{Major changes from \pTeX}
 %<ja>\subsection{\pTeX からの主な変更点}
 \label{ssec:chgptex}
 
@@ -301,7 +335,7 @@ For more detailed information, see Part~\ref{part-imp} or other sections of this
 
 %<*en>
 \paragraph{Command names} \pTeX\ addes several primitives, such as \cs{kanjiskip},
-\cs{prebreakpenalty},~and,~\cs{ifydir}. They can be used as follows:
+\cs{prebreakpenalty},~and \cs{ifydir}. They can be used as follows:
 %</en>
 %<*ja>
 \paragraph{命令の名称} 例えば\pTeX で追加された次のようなプリミティブ
@@ -328,8 +362,8 @@ Note that \pTeX\ adds new two useful units, namely \texttt{zw}~and~\texttt{zh}.
 As shown above, they are changed by \cs{zw}~and~\cs{zh} respectively, in \LuaTeX-ja.
 %</en>
 %<*ja>
\89¹ã\81«æ³¨æ\84\8fã\81\97ã\81¦ã\81»ã\81\97ã\81\84ã\81®ã\81¯ï¼\8c\pTeX ã\81§è¿½å\8a ã\81\95ã\82\8cã\81\9f \texttt{zw} ã\81¨ \texttt{zh} ã\81¨ã\81\84ã\81\86å\8d\98ä½\8dã\82\92
-\LuaTeX-ja で扱うには,\cs{zw}, \cs{zh} と制御綴の形にしないといけないという点である.
\89¹ã\81«æ³¨æ\84\8fã\81\97ã\81¦ã\81»ã\81\97ã\81\84ã\81®ã\81¯ï¼\8c\pTeX ã\81§è¿½å\8a ã\81\95ã\82\8cã\81\9f \texttt{zw} ã\81¨ \texttt{zh} ã\81¨ã\81\84ã\81\86å\8d\98ä½\8dã\81¯
+\LuaTeX-ja では使用できず,\cs{zw}, \cs{zh} と制御綴の形にしないといけないという点である.
 %</ja>
 
 %<*en>
@@ -349,7 +383,6 @@ In \pTeX, a line break after Japanese character is ignored (and
 %</ja>
 
 %<*en>
-
 \paragraph{Spaces related to Japanese characters}
 The insertion process of glues/kerns between two Japanese
       characters and between a Japanese character and other characters
@@ -418,17 +451,19 @@ The insertion process of glues/kerns between two Japanese
 
 %<*en>
 \paragraph{Directions}
-From this version, \LuaTeX-ja supports vertical writing;
-but this feature must \emph{not} be confused with $\Omega$-style direction support of \LuaTeX\
-itself. ...
+From version~20150420.0, \LuaTeX-ja supports vertical writing.
+We implement this feature by using callbacks of \LuaTeX; so it must \emph{not} be confused
+with $\Omega$-style direction support of \LuaTeX\ itself.
+Due to implementation, the dimension returned by \cs{wd},~\cs{ht}, or~\cs{dp} depends
+on the content of the register \emph{only}. This is major difference with \pTeX.
 %</en>
 %<*ja>
 \paragraph{組方向}
-本版からは,不安定ながらも\LuaTeX-ja における縦組みをサポートしている.
-なお,\LuaTeX 本体も$\Omega$流の組方向をサポートしているが,それとは全くの別物であること
+バージョン20150420.0からは,不安定ながらも\LuaTeX-ja における縦組みをサポートしている.
+なお,\LuaTeX 本体も$\Omega$流の組方向をサポートしているが,それとは全くの別物であること
 に注意してほしい.
-\LuaTeX のコールバックや実装により,特に異なった組方向のボックスを扱う場合には
-\cs{wd}, \cs{ht}, \cs{dp}等の仕様が異なるので注意.詳細は第\ref{sec-direction}章を参照.
+特に,異なった組方向のボックスを扱う場合には
+\cs{wd}, \cs{ht}, \cs{dp}等の仕様が\pTeX と異なるので注意.詳細は第\ref{sec-direction}章を参照.
 %</ja>
 
 %<*en>
@@ -442,7 +477,39 @@ Japanese characters in discretionary break (\cs{discretionary}) is not supported
       しても使いたい場合は \cs{hbox} で括ること.
 %</ja>
 
+%<*en>
+\paragraph{Greek and Cyrillic letters, and ISO~8859-1 symbols}
+By default, \LuaTeX-ja uses Japanese fonts to typeset Greek and Cyrillic letters,
+      To change this behavior,
+      put \verb!\ltjsetparameter{jacharrange={-2,-3}}! in the preamble.
+      For the detailed description, see Subsection~\ref{ssec:setrange}.
+
+From version~20150906.0, characters which belongs both ISO~8859-1 and JIS~X~0208,
+such as \P~and~\S, are now typeset in alphabetic fonts.
+If you are using \LaTeXe\ prior to 2017/01/01, these characters are not typeset correctly
+without the \cs{fontspec} (and~\Pkg{luatexja-fontspec}) package.
+%</en>
+%<*ja>
+\paragraph{ギリシャ文字・キリル文字とISO~8859-1の記号}
+標準では,\LuaTeX-jaはギリシャ文字やキリル文字を和文フォントを使っ
+      て組む.ギリシャ語などを本格的に組むなどこの状況が望ましくない場合,
+      プリアンブルに
+\begin{lstlisting}
+ \ltjsetparameter{jacharrange={-2,-3}}
+\end{lstlisting}
+      を入れると
+      上記種類の文字は欧文フォントを用いて組まれるようになる.
+      詳しい説明は\ref{ssec:setrange}節を参照してほしい.
 
+また,\P,~\S といったISO~8859-1の上位領域とJIS~X~0208の共通部分の文字は
+      バージョン20150906.0から標準で欧文扱いとなった.\LaTeXe\ 2017/01/01以降では
+標準でTUエンコーディングのLatin Modernフォントが使われるので,
+特に何もせずソース中にそのまま記述してもこれらの文字が出力される
+\footnote{\LaTeXe\ 2017/01/01より前では,ソース中に直接記述しても
+  \Pkg{fontspec}パッケージ(および\Pkg{luatexja-fontspec}パッケージ)非読み込みの状態では出力されない.}.
+和文扱いで出力するには \verb+\ltjjachar`§+ のように \cs{ltjjachar} 命令
+を使えばよい.
+%</ja>
 
 %<en>\subsection{Notations}
 %<ja>\subsection{用語と記法}
@@ -457,11 +524,11 @@ In this document, the following terms and notations are used:
 %<*en>
 \item Characters are classified into following two types.
       Note that the classification can be customized by a user
-      (see Subsection~\ref{ssec-setrange}).
+      (see Subsection~\ref{ssec:setrange}).
 %</en>
 %<*ja>
 \item 文字は次の2種類に分けられる.この類別は固定されているものではなく,ユーザが後から変更可能である
-      (\ref{ssec-setrange}節を参照).
+      (\ref{ssec:setrange}節を参照).
 %</ja>
 \begin{itemize}
 %<*en>
@@ -486,33 +553,33 @@ and \emph{Japanese fonts} for fonts used in \textbf{JAchar}.
 \textbf{JAchar}の出力に用いられるフォントを\emph{和文フォント}と呼ぶ.
 %</ja>
 %<*en>
-\item A word in a sans-serif font (like \Param{prebreakpenalty})
+\item A word in a sans-serif font with underline (like \Param{prebreakpenalty})
       means an internal parameter for Japanese typesetting, and it
       is used as a key in \cs{ltjsetparameter} command.
 %</en>
 %<*ja>
-\item サンセリフ体で書かれた語(例:\Param{prebreakpenalty})は日本語組版用の
+\item 下線つきローマン体で書かれた語(例:\Param{prebreakpenalty})は日本語組版用の
       パラメータを表し,これらは \cs{ltjsetparameter} 命令のキーとして
       用いられる.
 %</ja>
 %<*en>
-\item A word in typewriter font with underline (like \Pkg{fontspec})
+\item A word in a sens-serif font without underline (like \Pkg{fontspec})
       means a package or a class of \LaTeX.
 %</en>
 %<*ja>
-\item 下線付きタイプライタ体の語(例:\Pkg{fontspec})は\LaTeX の
+\item 下線なしサンセリフ体の語(例:\Pkg{fontspec})は\LaTeX の
       パッケージやクラスを表す.
 %</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}
 
-%<en>\subsection{About the Project}
+%<en>\subsection{About the project}
 %<ja>\subsection{プロジェクトについて}
 
 %<en>\paragraph{Project Wiki} Project Wiki is under construction.
@@ -566,17 +633,18 @@ and \emph{Japanese fonts} for fonts used in \textbf{JAchar}.
 %<en>The following packages are needed for the \LuaTeX-ja\ package.
 %<ja>\LuaTeX-jaパッケージの動作には次のパッケージ類が必要である.
 \begin{itemize}
-\item \LuaTeX\ beta-0.80.0 (or later)
-\item \Pkg{luaotfload} v2.5 (or later)
+\item \LuaTeX\ beta-0.85.0 (or later)
+\item \Pkg{luaotfload} v2.6 (or later)
 \item \Pkg{adobemapping} (Adobe cmap and pdfmapping files)
-\item \Pkg{everysel} (if you want to use \LuaTeX-ja with \LaTeXe)
-\item \Pkg{fontspec} v2.4
+\item \Pkg{etoolbox}, \Pkg{everysel} (if you want to use \LuaTeX-ja with \LaTeXe)
+\item \Pkg{ltxcmds}, \Pkg{pdftexcmds}, \Pkg{filehook}, \Pkg{atbegshi}
+\item \Pkg{fontspec} v2.4 (or later)
 %<en>\item \emph{IPAex fonts} (\url{http://ipafont.ipa.go.jp/})
 %<ja>\item \emph{IPAexフォント(\url{http://ipafont.ipa.go.jp/})}
 \end{itemize}
-%<en>In summary, this version of \LuaTeX-ja no longer supports \TeX~Live~2014 (or older version).
+%<en>In summary, \LuaTeX-ja version 20160404.0 (or~later) no longer supports \TeX~Live~2015.
 %<*ja>
-要約すると,本バージョンの\LuaTeX-jaは\TeX~Live~2014以前では動作しない\footnote{%
+要約すると,バージョン20160404.0以降の\LuaTeX-jaは\TeX~Live~2015以前では動作しない\footnote{%
   もっとも,自分で\LuaTeX のバイナリをSubversionリポジトリからビルドしていれば話は別である.
 }.
 %</ja>
@@ -650,13 +718,13 @@ the forefront of development is not the \texttt{master} branch.
 \begin{lstlisting}
 $ git clone git://git.osdn.jp/gitroot/luatex-ja/luatexja.git
 \end{lstlisting}
-\item \texttt{master}ブランチのスナップショット(\texttt{tar.gz}形式)をダウンロードする.
+\item \texttt{master} ブランチのスナップショット(\texttt{tar.gz} 形式)をダウンロードする.
 \begin{flushleft}
 \url{http://git.osdn.jp/view?p=luatex-ja/luatexja.git;a=snapshot;h=HEAD;sf=tgz}.
 \end{flushleft}
 \end{itemize}
-\texttt{master}ブランチ(従って,CTAN内のアーカイブも)はたまにしか更新されないことに注意.
-主な開発は\texttt{master}の外で行われ,比較的まとまってきたらそれを\texttt{master}
+\texttt{master} ブランチ(従って,CTAN内のアーカイブも)はたまにしか更新されないことに注意.
+主な開発は\texttt{master}の外で行われ,比較的まとまってきたらそれを \texttt{master} 
 反映させることにしている.
 %</ja>
 
@@ -666,8 +734,8 @@ But only the contents in \texttt{src/} are needed to work \LuaTeX-ja.
 %</en>
 %<*ja>
 \item 「Gitリポジトリをクローン」以外の方法でアーカイブを取得したならば,それを展開する.
-      \texttt{src/}をはじめとしたいくつかのディレクトリができるが,
-      動作には\texttt{src/}以下の内容だけで十分.
+      \texttt{src/} をはじめとしたいくつかのディレクトリができるが,
+      動作には \texttt{src/} 以下の内容だけで十分.
 %</ja>
 
 %<*en>
@@ -707,7 +775,7 @@ $ luatex   ltj-kinsoku_make.tex
       instead copying is also good.
 %</en>
 %<*ja>
-\item \texttt{src}の中身を自分の\texttt{TEXMF}ツリーにコピーする.
+\item \texttt{src} の中身を自分の \texttt{TEXMF} ツリーにコピーする.
       場所の例としては,例えば
 \begin{quote}
  \texttt{TEXMF/tex/luatex/luatexja/}
@@ -735,7 +803,7 @@ For changes from \pTeX, see Subsection~\ref{ssec:chgptex}.
 %</ja>
 \begin{itemize}
 %<*en>
-\item The encoding of your source file must be UTF-8. No other
+\item The encoding of your source file must be UTF-8. Other
       encodings, such as EUC-JP or Shift-JIS, are not supported.
 %</en>
 %<*ja>
@@ -744,18 +812,33 @@ For changes from \pTeX, see Subsection~\ref{ssec:chgptex}.
 %</ja>
 %<*en>
 \item \LuaTeX-ja is very slower than \pTeX.
-Generally speaking, LuaJIT\TeX\ processes \LuaTeX-ja
-about 30\% faster than \LuaTeX, but not always.
+  Generally speaking, LuaJIT\TeX\ processes \LuaTeX-ja
+  about 30\% faster than \LuaTeX, but not always%
+  \footnote{%
+    LuaJIT has several limitations such as 1\,GB~(or~2\,GB) memory limitation.
+       So typesetting a large source by LuaJIT\TeX may cause an ``out of memory'' error,
+       or failure of loading/saving font cache of \Pkg{luaotfload}.
+  }.
 %</en>
 %<*ja>
 \item \LuaTeX-jaは動作が\pTeX に比べて非常に遅い.
 コードを調整して徐々に速くしているが,まだ満足できる速度ではない.
 LuaJIT\TeX を用いると\LuaTeX のだいたい1.3倍の速度で動くようであるが,
-IPA mj明朝などの大きいフォントを用いた場合には\LuaTeX よりも遅くなることもある.
+IPA mj明朝などの大きいフォントを用いた場合には\LuaTeX よりも遅くなることもある
+  \footnote{%
+    LuaJITは1\,GB(あるいは2\,GB)のメモリ制限など,いくつかの制限事項があることが知られている.そのため,
+    大きいソースファイルをLuaJIT\TeX でタイプセットするとLuaの側で``out of memory''エラーが発生してしまう.
+    本ドキュメントのように,「各ページごとにLuaで使っているメモリ容量をチェックし,
+    必要なら\texttt{collectgarbage("collect")}でガベージコレクタを実行」すると
+    状況が多少改善されるかもしれない.
+       また,LuaJIT\TeX でIPA mj明朝などの「大きい」フォントを利用した場合はフォントキャッシュの保存に失敗し,
+       毎回フォントを読み込まなければならず結果的に時間がかかることがある.
+  }.
 %</ja>
+
 \item%
 %<*en>
-\textbf{Outdated note for MiK\TeX\ users}\quad
+\textbf{(Outdated) note for MiK\TeX\ users}\quad
 \LuaTeX-ja requires that several CMap files%
 \footnote{\texttt{UniJIS2004-UTF32-\{H,V\}} and \texttt{Adobe-Japan1-UCS2}.}
 must be found from \LuaTeX.
@@ -768,7 +851,7 @@ so you will encounter an error like the following:
 \LuaTeX-jaが動作するためには,\emph{導入・更新後の初回起動時に}
 \texttt{UniJIS2004-UTF32-\{H,V\}}, \texttt{Adobe-Japan1-UCS2}という3つのCMapが
 \LuaTeX によって見つけられることが必要である.
-しかしやや古いMiK\TeX ではそのようになっていないので,次のエラーが発生するだろう:
+しかし古いバージョンのMiK\TeX ではそのようになっていないので,次のエラーが発生するだろう:
 %</ja>
 \begin{lstlisting}
 ! LuaTeX error ...iles (x86)/MiKTeX 2.9/tex/luatex/luatexja/ltj-rmlgbm.lua
@@ -779,21 +862,22 @@ bad argument #1 to 'open' (string expected, got nil)
 If so, please execute a batch file which is written on
 \href{https://osdn.jp/projects/luatex-ja/wiki/FrontPage%28en%29}{ the Project Wiki (English)}.
 This batch file creates a temporary directory, copy CMaps in it,
-run \LuaTeX-ja in this directory, and finally delete the temporary directory.
+run a test file which loads \LuaTeX-ja in this directory,
+and finally delete the temporary directory.
 %</en>
 %<*ja>
 そのような場合には,
 \href{https://osdn.jp/projects/luatex-ja/wiki/FrontPage%28en%29}{%
   プロジェクトWiki英語版トップページ}中に書かれているバッチファイルを
 実行して欲しい.このバッチファイルは,作業用ディレクトリにCMap達を
-コピーし,その中で\LuaTeX-ja の初回起動を行い,作業用ディレクトリを消す作業をしている.
+コピーし,その中で\LuaTeX-jaの初回起動を行い,作業用ディレクトリを消す作業をしている.
 %</ja>
 
 \end{itemize}
 
 %<en>\subsection{Using in plain \TeX}
 %<ja>\subsection{plain \TeX で使う}
-\label{ssec-plain}
+\label{ssec:plain}
 
 %<en>To use \LuaTeX-ja in plain \TeX, simply put the following at the beginning of the document:
 %<ja>\LuaTeX-jaを plain \TeX で使うためには,単に次の行をソースファイルの冒頭に追加すればよい:
@@ -810,7 +894,7 @@ run \LuaTeX-ja in this directory, and finally delete the temporary directory.
 \begin{tabular}{cccccc}
 \toprule
 \textbf{direction}&
-\textbf{classification}&\textbf{font name}&\bf ``10\,pt''&\bf``7\,pt''&\bf``5\,pt''\\\midrule
+\textbf{classification}&\textbf{font name}&\bfseries ``10\,pt''&\bfseries ``7\,pt''&\bfseries ``5\,pt''\\\midrule
 \smash{\raisebox{-1ex}{\emph{yoko} (horizontal)}}&
 \emph{mincho}&IPAex Mincho&\cs{tenmin}&\cs{sevenmin}&\cs{fivemin}\\
 &\emph{gothic}&IPAex Gothic&\cs{tengt} &\cs{sevengt} &\cs{fivegt}\\
@@ -827,7 +911,7 @@ run \LuaTeX-ja in this directory, and finally delete the temporary directory.
 \begin{center}\small
 \begin{tabular}{cccccc}
 \toprule
-\emph{組方向}&\emph{字体}&\emph{フォント名}&\bf ``10\,pt''&\bf``7\,pt''&\bf``5\,pt''\\\midrule
+\emph{組方向}&\emph{字体}&\emph{フォント名}&\bfseries``10\,pt''&\bfseries``7\,pt''&\bfseries``5\,pt''\\\midrule
 \smash{\raisebox{-1ex}{横組}}&
 明朝体&IPAex明朝&\cs{tenmin}&\cs{sevenmin}&\cs{fivemin}\\
 &ゴシック体&IPAexゴシック&\cs{tengt} &\cs{sevengt} &\cs{fivegt}\\
@@ -842,11 +926,11 @@ run \LuaTeX-ja in this directory, and finally delete the temporary directory.
 \begin{itemize}
 %<*en>
 \item With \texttt{luatexja.cfg}, one can use other fonts
-as ``default'' Japanese fonts (Subsection~\ref{ssec-cfg}).
+as ``default'' Japanese fonts (Subsection~\ref{ssec:cfg}).
 %</en>
 %<*ja>
 \item \texttt{luatexja.cfg} を用いることによって,標準和文フォントを
-IPAexフォントから別のフォントに置き換えることができる.\ref{ssec-cfg}節を参照.
+IPAexフォントから別のフォントに置き換えることができる.\ref{ssec:cfg}節を参照.
 %</ja>
 
 %<*en>
@@ -879,7 +963,7 @@ IPAexフォントから別のフォントに置き換えることができる.
 
 %<en>\subsection{Using in \LaTeX}
 %<ja>\subsection{\LaTeX で使う}
-\label{ssec-ltx}
+\label{ssec:ltx}
 
 %<*en>
 Using in \LaTeXe\ is basically same. To set up the minimal environment
@@ -903,7 +987,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>
@@ -912,20 +996,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
@@ -935,7 +1019,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>
@@ -950,7 +1034,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
@@ -960,19 +1044,41 @@ 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>
 
 %<en>\item Japanese characters in math mode are typeset by the font family \texttt{mc}.
 %<ja>\item 数式モード中の和文文字は明朝体(\texttt{mc})で出力される.
+%<*en>
+ \item \cs{jttdefault}%
+  \footnote{%
+       When \Pkg{ltjsclasses} classes are used, or
+       \Pkg{luatexja-fontspec} (or \Pkg{luatexja-preset}) is loaded with \texttt{match} option,
+       \cs{ttfamily} changes the current Japanese font amily to \cs{jttdefault}.
+       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 the mincho family is used.
+%</en>
+%<*ja>
+ \item \cs{verb} や \texttt{verbatim} 環境中の和文文字に使われる和文フォントファミリは
+  \ \cs{jttdefault} で指定する%
+  \footnote{%
+       \Pkg{ltjsclasses}を使用したり,あるいは \texttt{match} オプションを指定して\Pkg{luatexja-fontspec}%
+       や\Pkg{luatexja-preset}パッケージを読み込んだときは,単なる \cs{ttfamily} によっても和文フォントが
+       \ \cs{jttdefault}\ に変更される.また,これらのクラスファイルやパッケージは
+       \ \cs{jttdefault}\ を \cs{gtdefault}(ゴシック体)に再定義する.
+  }.標準値は \cs{mcdefault},つまり明朝体として用いるのと
+  同じフォントファミリである.
+%</ja>
 
 %<*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}クラスを既定のフォント設定で使う場合,既定欧文フォントがサンセリフなの
@@ -983,6 +1089,15 @@ Note that the bold series in both family are same as the medium series of \emph{
  \renewcommand{\kanjifamilydefault}{\gtdefault}
 \end{lstlisting}
 
+%<*ja>
+\item \pLaTeX と同様に,\texttt{mc},~\texttt{gt}両ファミリには「従属欧文」書体が定義されている.
+  これらは\cs{userelfont}を\cs{selectfont}(や,その他の「実際に」
+  フォントを変更する命令)の前で実行することにより使うことができる.
+
+  \pLaTeX では標準の欧文フォントはOT1エンコーディングのComputer Modern Roman (\texttt{cmr})%
+  であったが,2017年以降の\LuaLaTeX ではTUエンコーディングのlatin Modern Roman (\texttt{lmr})%
+  に変更されている.そのため,前段落で述べた「従属欧文」も,Latin Modern Romanに設定している.
+%</ja>
 
 \end{itemize}
 
@@ -995,38 +1110,80 @@ classes in \pLaTeX) and \Pkg{jsclasses} (classes by Haruhiko
 Okumura), namely, \Pkg{ltjclasses}\footnote{%
   \texttt{ltjarticle.cls},~\texttt{ltjbook.cls}, \texttt{ltjreport.cls},
   \texttt{ltjtarticle.cls}, \texttt{ltjtbook.cls}, \texttt{ltjtreport.cls}.
-  The latter \texttt{ltjt*.cls} are for vertically writtened Japanese documents.
+  The latter \texttt{ltjt*.cls} are for vertically written Japanese documents.
 } and \Pkg{ltjsclasses}\footnote{%
-  \texttt{ltjsarticle.cls},~\texttt{ltjsbook.cls},~\texttt{ltjskiyou.cls}.}.
+  \texttt{ltjsarticle.cls},~\texttt{ltjsbook.cls}, \texttt{ltjsreport.cls},~\texttt{ltjskiyou.cls}.}.
+
+Original \Pkg{jsclasses} use \cs{mag}~primitive to set the main document font size.
+However, \LuaTeX\ beta-0.87.0~or~later does not support \cs{mag} in PDF~output,
+so \Pkg{ltjsclasses} uses the \texttt{nomag*} option\footnote{Same effect as 
+  the \Pkg{BXjscls} classes (by Takayuki Yato) and \Pkg{jsclasses}.
+  However, these classes uses only \TeX\ code, but \Pkg{ltjsclasses} uses Lua code.}
+ by default to set the main font size. If this causes some unexpected behavior, specify
+\texttt{nomag} option in \cs{documentclass}.
 %</en>
 %<*ja>
 しかしながら,上記の設定は日本語の文書にとって十分とは言えない.
 日本語文書を組版するためには,\texttt{article.cls}, \texttt{book.cls}といった
 欧文用のクラスファイルではなく,和文用のクラスファイルを用いた方がよい.
-現時点では,\Pkg{jclasses}(\pLaTeX の標準クラス)と\Pkg{jsclasses}
+現時点では,\Pkg{jclasses}(\pLaTeX の標準クラス)と\Pkg{jsclasses}%
 (奥村晴彦氏による「\pLaTeXe 新ドキュメントクラス」)に対応するものとして,
 \Pkg{ltjclasses}\footnote{%
   横組用は \texttt{ltjarticle.cls},~\texttt{ltjbook.cls}, \texttt{ltjreport.cls} であり,
   縦組用は \texttt{ltjtarticle.cls}, \texttt{ltjtbook.cls}, \texttt{ltjtreport.cls} である.
 },
 \Pkg{ltjsclasses}\footnote{%
-  \texttt{ltjsarticle.cls},~\texttt{ltjsbook.cls},~\texttt{ltjskiyou.cls}.}%
+  \texttt{ltjsarticle.cls},~\texttt{ltjsbook.cls}, \texttt{ltjsreport.cls},~\texttt{ltjskiyou.cls}.}%
 がそれぞれ用意されている.
+
+元々の\Pkg{jsclasses}では本文のフォントサイズを設定するのに\cs{mag}プリミティブが使われていたが,
+\LuaTeX~beta-0.87.0以降ではPDF出力時の\cs{mag}のサポートが廃止された.
+そのため,\Pkg{ltjsclasses}では\texttt{nomag*}オプション
+\footnote{\Pkg{jsclasses}や,八登崇之氏による\Pkg{BXjscls}クラスにおける同名のオプションと
+  同じ.上記クラスは\TeX コードのみで実装しているが,\Pkg{ltjsclasses}ではLuaコードも用いている.}が標準で
+有効になっており,これを使って本文フォントサイズの設定を行っている.
+しかし,この\texttt{nomag*}オプションでは(20180121.0版より前の版において\Pkg{unicode-math}パッケージ使用時に
+起きたように)予想外の意図しない現象に遭遇する危険がある.そのような場合は
+\cs{documentclass}において\texttt{nomag}オプションを指定してほしい.
 %</ja>
 
 %<*ja>
 \paragraph{脚注とボトムフロートの出力順序}
-オリジナルの\LaTeX では脚注がボトムフロートの上に来るようになっており,
-\pLaTeX では脚注がボトムフロートの下に来るように変更されている.
+オリジナルの\LaTeX では脚注はボトムフロートの上に出力され,また\cs{raggedbottom}命令でページの高さが不揃いであることを許した場合には
+脚注の下端の垂直位置もページに応じて変わるようになっている.
+一方,日本語の組版では脚注はボトムフロートの下に来るのが一般的であるので,
+\pLaTeX ではそのように変更されており,
+さらに\cs{raggedbottom}命令を実行した後でも脚注は常にページの下端に固定されるようになっている.
 
 \LuaTeX-jaでは「欧文クラスの中にちょっとだけ日本語を入れる」という利用も考慮し,
-脚注とボトムフロートの順序は\LaTeX 通りとした.もし\pLaTeX の出力順序が好みならば,
-\Pkg{stfloats}パッケージを利用して
-\begin{lstlisting}
- \usepackage{stfloats}\fnbelowfloat
-\end{lstlisting}
-のようにすればよい.\Pkg{footmisc}パッケージを \texttt{bottom}\ オプションを指定して
-読み込むという方法もあるが,それだとボトムフロートと脚注の間が開いてしまう.
+脚注とボトムフロートの順序,及び\cs{raggedbottom}時の脚注の垂直位置は\LaTeX 通りとした.
+これらを制御するには以下の手段がある:
+\begin{itemize}
+ \item \pLaTeX のように,脚注をボトムフロートの下に組む場合には
+  \Pkg{stfloats}パッケージを利用して
+  \begin{lstlisting}
+    \usepackage{stfloats}\fnbelowfloat
+  \end{lstlisting}
+  とする.この状況から「脚注をボトムフロートの上に組む」という\LaTeX の標準の挙動に戻したければ,
+  \Pkg{stfloats}パッケージの\cs{fnunderfloat}命令を使用する.
+  \item \cs{raggedbottom}時の脚注の垂直位置は,\cs{iffnfixbottom}という真偽値で制御する.
+  \begin{description}
+    \item[偽(\cs{fnfixbottomfalse})の場合] \LaTeX 標準と同じく,本文と脚注の間の空白は\cs{skip}\cs{footins}のみ.
+    従って脚注の垂直位置はページにより変動する.
+    \item[真(\cs{fnfixbottomtrue})の場合] \pLaTeX や\Pkg{footmisc}パッケージを\texttt{bottom}オプションで
+    読み込んだ場合のように,脚注は常にページの下端に固定される.
+  \end{description}
+\item ただし,\LuaTeX-jaが提供する「互換クラス」(\Pkg{ltjclasses}, \Pkg{ltjsclasses})では,
+  \pLaTeX と合わせるために以下のようにしている:
+  \begin{itemize}
+    \item \cs{fnfixbottomtrue}が自動的に実行される
+    \item \Pkg{stfloats}パッケージが\LuaTeX から参照できる場所にあった場合は
+    自動的に読み込み,\cs{fnbelowfloat}を実行する.
+  \end{itemize}
+\end{itemize}
+なお,\Pkg{stfloats}パッケージを使う代わりに,
+\Pkg{footmisc}パッケージを \texttt{bottom}オプションを指定して読み込む
+という「解決法」もある.
 %</ja>
 %%% ↑は英訳しない
 
@@ -1065,17 +1222,17 @@ This patch \Pkg{lltjp-geometry} also can be used in \pLaTeX; for the detail, ple
 %<ja>\section{フォントの変更}
 
 \subsection{plain \TeX~and~\LaTeXe}
-\label{ssec-chgfnt}
+\label{ssec:chgfnt}
 
 \paragraph{plain \TeX}
 %<*en>
 To change Japanese fonts in plain \TeX, you must use the command
-\cs{jfont}~and~\cs{tfont}. So please see Subsection~\ref{ssec-jfont}.
+\cs{jfont}~and~\cs{tfont}. So please see Subsection~\ref{ssec:jfont}.
 %</en>
 %<*ja>
 plain \TeX で和文フォントを変更するためには,
 \pTeX のように \cs{jfont} 命令や \cs{tfont} 命令を直接用いる.
-\ref{ssec-jfont}節を参照.
+\ref{ssec:jfont}節を参照.
 %</ja>
 
 \paragraph{\LaTeXe\ (NFSS2)}
@@ -1087,13 +1244,12 @@ For \LaTeXe, \LuaTeX-ja adopted most of the font selection system of \pLaTeXe\ (
 %</ja>
 \begin{itemize}
 %<*en>
-\item Commands \cs{fontfamily}, \cs{fontseries},
-      \cs{fontshape}, and \cs{selectfont} can be used to change
+\item Commands \cs{fontfamily}, \cs{fontseries}, and \cs{fontshape} can be used to change
       attributes of Japanese fonts.
 %</en>
 %<*ja>
-\item 和文フォントの属性を変更するには,\cs{fontfamily}, \cs{fontseries}, \cs{fontshape},
-      ã\81\9dã\81\97ã\81¦ã\81\9dã\82\8cã\82\89ã\82\92å\8f\8dæ\98 ã\81\95ã\81\9bã\82\8bã\81\9fã\82\81ã\81« \cs{selectfont} ã\82\92ç\94¨ã\81\84ã\82\8cã\81°ã\82\88ã\81\84
+\item 和文フォントの属性を変更するには,\cs{fontfamily}, \cs{fontseries}, \cs{fontshape} を使用する.
+      ã\82\82ã\81¡ã\82\8dã\82\93ï¼\8cã\81\9dã\82\8cã\82\89ã\82\92å®\9fé\9a\9bã\81«å\8f\8dæ\98 ã\81\95ã\81\9bã\82\8bã\81«ã\81¯æ\89\8bå\8b\95ã\81§ \cs{selectfont} ã\82\92å®\9fè¡\8cã\81\99ã\82\8bå¿\85è¦\81ã\81\8cã\81\82ã\82\8b
 %</ja>
 
 %<*en>
@@ -1139,7 +1295,7 @@ auto select&\cs{fontencoding}&\cs{fontfamily}&---&---&\cs{usefont}\\
       alphabetic fonts to \texttt{T1}.
       \cs{fontfamily} also changes the current Japanese font family,
       the current alphabetic font family, \emph{or both}.
-      For the detail, see Subsection~\ref{ssec-nfsspat}.
+      For the detail, see Subsection~\ref{ssec:nfsspat}.
 %</en>
 %<*ja>
       ここで,\verb+\fontencoding{+<encoding>\verb+}+ は,引数により和文側か欧文
@@ -1148,20 +1304,22 @@ auto select&\cs{fontencoding}&\cs{fontfamily}&---&---&\cs{usefont}\\
       \texttt{JY3}に変更し,\verb+\fontencoding{T1}+ は欧文フォント側を
       \texttt{T1}へと変更する.\cs{fontfamily} も引数により和文側,欧文
       側,\emph{あるいは両方}のフォントファミリを変更する.詳細は
-      \ref{ssec-nfsspat}節を参照すること.
+      \ref{ssec:nfsspat}節を参照すること.
 %</ja>
 
 %<*en>
 \item For defining a Japanese font family, use
       \cs{DeclareKanjiFamily} instead of
-      \cs{DeclareFontFamily}. However, in the present implementation,
-      using \cs{DeclareFontFamily} doesn't cause any problem.
+      \cs{DeclareFontFamily}. (In previous version of \LuaTeX-ja,
+      using \cs{DeclareFontFamily} didn't cause any problem. But this no longer applies
+      the current version.)
 \item Defining a Japanese font shape can be done by usual \cs{DeclareFontShape}:
 %</en>
 %<*ja>
 \item 和文フォントファミリの定義には \cs{DeclareFontFamily} の
-      代わりに \cs{DeclareKanjiFamily} を用いる.しかし,現在の
-      実装では \cs{DeclareFontFamily} を用いても問題は生じない.
+      代わりに \cs{DeclareKanjiFamily} を用いる.以前の
+      実装では \cs{DeclareFontFamily} を用いても問題は生じなかったが,現在の実装では
+      そうはいかない.
 \item 和文フォントのシェイプを定義するには,通常の \cs{DeclareFontShape} を使えば良い:
 %</ja>
 \begin{lstlisting}
@@ -1170,8 +1328,8 @@ auto select&\cs{fontencoding}&\cs{fontfamily}&---&---&\cs{usefont}\\
 \end{lstlisting}
 %<*ja>
 仮名書体を使う場合など,複数の和文フォントを組み合わせて使いたい場合は
-\ref{ssec-altfont}節の \cs{ltjdeclarealtfont} と,その\LaTeX 版の\
-\cs{DeclareAlternateKanjiFont}(\ref{ssec-nfsspat}節)を参照せよ.
+\ref{ssec:altfont}節の \cs{ltjdeclarealtfont} と,その\LaTeX 版の\
+\cs{DeclareAlternateKanjiFont}(\ref{ssec:nfsspat}節)を参照せよ.
 %</ja>
 
 \end{itemize}
@@ -1227,20 +1385,20 @@ $5\in 素:=\{\,p\in\mathbb N:\text{$p$ is a prime}\,\}$.
 %<*en>
 We also believe that using Japanese characters as identifiers is rare,
 hence we don't describe how to change Japanese fonts in math mode in
-this chapter. For the method, please see Subsection~\ref{ssec-math}.
+this chapter. For the method, please see Subsection~\ref{ssec:math}.
 %</en>
 %<*ja>
 また\LuaTeX-jaプロジェクトでは,和文文字が識別子として用いられることはほとんどない
 と考えており,したがってこの節では数式モード中の和文フォントを変更する方法については
-記述しない.この方法については\ref{ssec-math}節を参照のこと.
+記述しない.この方法については\ref{ssec:math}節を参照のこと.
 %</ja>
 
-
-\subsection{fontspec}
-\label{ssec-fontspec}
+%<en>\subsection{\Pkg{luatexja-fontspec} package}
+%<ja>\subsection{\Pkg{luatexja-fontspec}パッケージ}
+\label{ssec:fontspec}
 %<*en>
-To coexist with the \Pkg{fontspec} package, it is needed to load
-the \Pkg{luatexja-fontspec} package in the preamble, as follows:
+To use the functionality of the \Pkg{fontspec} package to Japanese fonts,
+it is needed to load the \Pkg{luatexja-fontspec} package in the preamble, as follows:
 \begin{quote}
 \ttfamily \textbackslash usepackage[<options>]\{luatexja-fontspec\}
 \end{quote}
@@ -1249,13 +1407,18 @@ automatically loads \Pkg{luatexja} and \Pkg{fontspec}
 packages, if needed.
 %</en>
 %<*ja>
-\Pkg{fontspec}パッケージと同様の機能を和文フォントに対しても用いる場合,
-\Pkg{luatexja-fontspec}パッケージを読み込めばよい.
+\Pkg{fontspec}パッケージは,\LuaTeX・\XeTeX において
+TrueType・OpenTypeフォントを容易に扱うためのパッケージであり,このパッケージを読み込んでお
+けばUnicodeによる各種記号の直接入力もできるようになる.
+\LuaTeX-jaでは和文と欧文を区別しているため,\Pkg{fontspec}パッケージの機能は欧文フォントに
+対してのみ有効なものとなっている.
+
+\LuaTeX-ja上において,\Pkg{fontspec}パッケージと同様の機能を和文フォントに対しても用いる場
+合は\Pkg{luatexja-fontspec}パッケージを読み込む:
 \begin{quote}
 \ttfamily \textbackslash usepackage[<options>]\{luatexja-fontspec\}
 \end{quote}
-このパッケージ
-は必要ならば自動で\Pkg{luatexja}パッケージと\Pkg{fontspec}パッケージを読み込む.
+このパッケージは自動で\Pkg{luatexja}パッケージと\Pkg{fontspec}パッケージを読み込む.
 %</ja>
 
 %<*en>
@@ -1287,39 +1450,87 @@ 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}
 %</ja>
-%<*en>
-The package option of \Pkg{luatexja-fontspec} are the followings:
+
+%<en> The package option of \Pkg{luatexja-fontspec} are the followings:
+%<ja> \Pkg{luatexja-fontspec} パッケージのオプションは以下の通りである:
 \begin{cslist}
  \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.
 
 Note that \emph{\cs{setmonojfont} is defined
 if and only if this \texttt{\textup{match}} option is specified}.
+%</en>
+
+%<*ja>
+このオプションが指定されると,「\pLaTeXe 新ドキュメントクラス」のように\
+\cs{rmfamily}, \verb+\textrm{...}+, \cs{sffamily} 等が
+欧文フォントだけでなく和文フォントも変更するようになる.
+
+\emph{なお,\cs{setmonojfont} はこの \texttt{match} オプションが
+指定された時のみ定義される.}この命令は標準の「タイプライタ体に対応する和文フォント」を指定する.
+%</ja>
 
  \item[pass=<opts>]
-Specify options <opts> which will be passed to the \Pkg{fontspec} package.
+%<en> \emph{(Obsoleted)}\ Specify options <opts> which will be passed to the \Pkg{fontspec} package.
+%<ja> \Pkg{fontspec} パッケージに渡すオプション <opts> を指定する.本オプションは時代遅れである.
+
+\item[scale=<float>]
+%<*en>
+Override the ratio of the font size of Japanese fonts to that of alphabetic fonts.
+The default value is determined as follows:
+  \begin{itemize}
+    \item The value of \cs{Cjascale} is used, if this control sequence is already defined.
+    \item It is calculated automatically from the current Japanese font at the loading of the
+    package, if \cs{Cjascale} is not defined.
+  \end{itemize}
+\cs{Cjascale} is defined in \Pkg{ltjclasses} and \Pkg{ltjsclasses}.
+%</en>
+%<*ja>
+欧文に対する和文の比率を手動で上書きするときに使用する.
+標準では
+\begin{itemize}
+  \item \cs{Cjascale}が定義されている場合
+  \footnote{\LuaTeX-ja が用意しているクラスファイル(\Pkg{ltjclasses},~\Pkg{ltjsclasses})を
+  使う場合はこちらに当てはまる.}は,それを用いる.
+  \item \cs{Cjascale}が未定義の場合は,\Pkg{luatexja-fontspec}読み込み時の和文フォントから自動計算される.
+\end{itemize}
+%</ja>
 \end{cslist}
+
+%<*en>
+All other options listed above are simply passed to the \Pkg{fontspec} package.
+This means that two lines below are equivalent, for example.
+%</en>
+%<*ja>
+上記にないオプションは全て \Pkg{fontspec} パッケージに渡される.
+例えば,下の2行は同じ意味になる:
+%</ja>
+\begin{lstlisting}
+\usepackage[no-math]{fontspec}\usepackage{luatexja-fontspec}
+\usepackage[no-math]{luatexja-fontspec}
+\end{lstlisting}
+
+
+%<*en>
 The reason that \cs{setmonojfont} is not defined by default is that
 it is popular for Japanese fonts that nearly all Japanese glyphs have same
 widths.  Also note that kerning information in a font is not used
@@ -1330,19 +1541,6 @@ This is because of the compatibility with previous versions of \LuaTeX-ja
 Below is an example of \cs{jfontspec}.
 %</en>
 %<*ja>
-\Pkg{luatexja-fontspec} パッケージのオプションは以下の通りである:
-\begin{cslist}
- \item[match]
-このオプションが指定されると,「\pLaTeXe 新ドキュメントクラス」のように\
-\cs{rmfamily}, \verb+\textrm{...}+, \cs{sffamily} 等が
-欧文フォントだけでなく和文フォントも変更するようになる.
-
-\emph{なお,\cs{setmonojfont} はこの \texttt{match} オプションが
-指定された時のみ定義される.}この命令は標準の「タイプライタ体に対応する和文フォント」を指定する.
-
- \item[pass=<opts>]
-\Pkg{fontspec} パッケージに渡すオプション <opts> を指定する.
-\end{cslist}
 標準で \cs{setmonojfont} コマンドが定義されないのは,
 和文フォントではほぼ全ての和文文字のグリフが等幅であるのが伝統的であったことによる.
 また,これらの和文用のコマンドではフォント内のペアカーニング情報は標準では使用されない,
@@ -1359,874 +1557,512 @@ JIS~X~0213:2004→辻\par
 JIS~X~0208:1990→辻
 \end{LTXexample}
 
-%<en>\subsection{Presets}
-%<ja>\subsection{プリセット設定}
-\label{ssec-preset}
+%<en>\subsection{Presets of Japanese fonts}
+%<ja>\subsection{和文フォントのプリセット設定}
+\label{ssec:preset-abst}
 
 %<*en>
-To use standard Japanese font settings easily, one can load the \Pkg{luatexja-preset}
-package with several options. This package provides functions in a part of
-\Pkg{japanese-otf} package and a part of \Pkg{PXchfon} package by Takayuki Yato.
+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}ã\83\91ã\83\83ã\82±ã\83¼ã\82¸ã\81§ã\81\82ã\82\8bï¼\8eã\81\93ã\81®ã\83\91ã\83\83ã\82±ã\83¼ã\82¸ã\81¯ï¼\8c
-\Pkg{otf}パッケージの一部機能と八登崇之氏による\Pkg{PXchfon}パッケージの一部機能とを
-合わせたような格好をしている.
+\Pkg{luatexja-preset}ã\83\91ã\83\83ã\82±ã\83¼ã\82¸ã\81§ã\81\82ã\82\8bï¼\8eã\82ªã\83\97ã\82·ã\83§ã\83³ã\82\84å\90\84ã\83\97ã\83ªã\82»ã\83\83ã\83\88ã\81®è©³ç´°ã\81«ã\81¤ã\81\84ã\81¦ã\81¯
+\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}
 
-%<en>\paragraph{General options}
-%<ja>\paragraph{一般的なオプション}
-\begin{cslist}[before*=]
+%<ja> 例えば,本ドキュメントでは\Pkg{luatexja-preset}パッケージを
+%<en> For example, this document loads \Pkg{luatexja-preset} package by
+\begin{lstlisting}
+\usepackage[kozuka-pr6n]{luatexja-preset}
+\end{lstlisting}
+%<ja>として読み込み,小塚書体(Pr6N)を使うことを指定している.
+%<en> which means that Kozuka~Pr6N fonts will be used in this document.
 
-\item[fontspec]
-%<*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.
-\emph{This option is enabled by default.}
 
-If you need to pass some options to \Pkg{fontspec}, load \Pkg{fontspec} manually
-before \Pkg{luatexja-preset}:
+%<*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}パッケージが自動で読み込まれることを意味する.
-\emph{このオプションは標準で有効になっている.}
+\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.
+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.
 
-This option will be disabled when \Pkg{luatexja-fontspec} package is loaded.
-Note that the \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}
-Note that the functionality of the \Pkg{luatexja-fontspec} package, such as
-            \cs{setmainjfont}, cannot be used in the example above.
 %</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}パッケージを読み込んでいる場合でも
+例えば
 \begin{lstlisting}
-\usepackage{fontspec}
-\usepackage[hiragino-pron,nfssonly]{luatexja-preset}
+\def\ltj@stdmcfont{IPAMincho}
+\def\ltj@stdgtfont{IPAGothic}
 \end{lstlisting}
-のようにこのオプションを指定することは可能である.一方,
-パッケージ読み込み時に既に\Pkg{luatexja-fontspec}パッケージが読み込まれて
-            いる場合は \texttt{nfssonly} オプションは無視される.
+と記述しておけば,標準和文フォントがIPA明朝・IPAゴシックへと変
+更される.
+
+
+なお,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>\section{Changing Internal Parameters}
+%<ja>\section{パラメータの変更}
+
 %<*en>
-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.
-\emph{This option is enabled by default.}
+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>
-\LaTeXe 環境下の標準設定のように,明朝体・ゴシック体を各1ウェイトで使用する.
-より具体的に言うと,この設定の下では
-\ \verb+\mcfamily\bfseries+, \verb+\gtfamily\bfseries+,
-\verb+\gtfamily\mdseries+はみな同じフォントとなる.
-\emph{このオプションは標準で有効になっている.}
+\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}.
-%<ja>「明朝の太字」をゴシック体の太字によって代替する.
-\item[90jis]
-%<en>Use 90JIS glyph variants if possible.
-%<ja>出来る限り90JISの字形を使う.
-\item[jis2004]
-%<en>Use JIS2004 glyph variants if possible.
-%<ja>出来る限りJIS2004の字形を使う.
-\item[jis]
+
 %<*en>
-Use the JFM \texttt{jfm-jis.lua}, instead of \texttt{jfm-ujis.lua}, which is the default JFM of
-\LuaTeX-ja.
+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>
-用いるJFMを(JISフォントメトリック類似の)\texttt{jfm-jis.lua}にする.このオプションがない時は
-\LuaTeX-ja標準の\texttt{jfm-ujis.lua}が用いられる.
+\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>
-\end{cslist}
+\begin{lstlisting}
+\ltjsetparameter{jacharrange={-1, +2, +3, -4, -5, +6, +7, -8}}
+\end{lstlisting}
 %<*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.
+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>
-\texttt{90jis}と\texttt{jis2004}については本パッケージで定義された
-明朝体・ゴシック体(・丸ゴシック体)にのみ有効である.両オプションが
-同時に指定された場合の動作については全く考慮していない
+\textsf{jacharrange}パラメータの引数は非零の整数のリストである.
+リスト中の負の整数$-n$は「文字範囲$n$に属する文字は\textbf{ALchar}として
+扱う」ことを意味し,正の整数$+n$は「\textbf{JAchar}として扱う」ことを意味する
 %</ja>
 
-%<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}.
+Note that characters \texttt{U+0000}--\texttt{U+007F} are always treated as an
+\textbf{ALchar} (this cannot be customized).
 %</en>
 %<*ja>
-\texttt{morisawa-pro}, \texttt{morisawa-pr6n}以外はフォントの指定は
-(ファイル名でなく)フォント名で行われる.
-以下の表において,*\,つきのフォント(e,g,~KozGo\dots-Regular)は,\emph{\texttt{deluxe}オプション指定時に}
-ゴシック体中字として用いられるものを示している.
+なお,\texttt{U+0000}--\texttt{U+007F} は常に\textbf{ALchar}として扱われる(利用者が変更す
+ることは出来ない).
 %</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.
 
 %<*en>
-Kozuka Pro/Pr6N fonts are bundled with Adobe's software, such as Adobe~InDesign.
-There is not rounded gothic family in Kozuka fonts.
+\paragraph{Default character ranges}
+\LuaTeX-ja predefines eight character ranges for convenience. They are
+determined from the following data:
 %</en>
 %<*ja>
-小塚Pro書体・Pr6N書体はAdobe InDesign等のAdobe製品にバンドルされている.
-「小塚丸ゴシック」は存在しないので,便宜的に小塚ゴシックHによって代用している.
+\paragraph{文字範囲の初期値}
+\LuaTeX-jaでは8つの文字範囲を予め定義しており,
+これらは以下のデータに基づいて決定している.
 %</ja>
-\begin{center}\small
-\begin{tabular}{cllll}
-\toprule
-\bf family&\bf series&\tt kozuka-pro&\tt kozuka-pr6&\tt 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}
-
-%<ja>\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.
+\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>
-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).
+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>
-ヒラギノフォントは,Mac OS~X以外にも,一太郎2012の上位エディションにもバンドルされている.
-極太ゴシックとして用いるヒラギノ角ゴW8は,Adobe-Japan1-3の範囲しかカバーしていない
-Std/StdNフォントであり,その他はAdobe-Japan1-5対応である.
+以下ではこれら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{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}
-
-%<ja>\medskip
-
- \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
-\end{tabular}
-\end{center}
-
- \item[yu-win]  Yu fonts bundled with Windows~8.1.
-%<en>    \\*[-\dimexpr\medskipamount+\baselineskip\relax]
- \item[yu-osx]  Yu fonts bundled with OSX~Mavericks.
-
-\begin{center}\small
-\begin{tabular}{clll}
-\toprule
-\bf family&\bf series&\tt yu-win&\tt yu-osx\\
-\midrule
- &medium&YuMincho-Regular&YuMincho~Medium\\
-%<en>\smash{\raisebox{1.5ex}{\textit{mincho}}}%
-%<ja>\smash{\raisebox{1.5ex}{\gt 明朝}}%
- &bold&YuMincho-Demibold&YuMincho~Demibold\\
-\midrule
- &&YuGothic-Regular*&YuGothic~Medium*\\
- &\smash{\raisebox{1.5ex}{medium}}
- &YuGothic-Bold&YuGothic~Bold\\
-\cmidrule(l){2-4}
-%<en>\textit{gothic}%
-%<ja>\gt ゴシック
- &bold&YuGothic-Bold&YuGothic~Bold\\
- &heavy&YuGothic-Bold&YuGothic~Bold\\
-\midrule
-%<en>\textit{rounded gothic}
-%<ja>\gt 丸ゴシック
-&&YuGothic-Bold&YuGothic~Bold\\
-\bottomrule
-\end{tabular}
-\end{center}
-
- \item[moga-mobo]  MogaMincho, MogaGothic, and MoboGothic.
-%<en>These fonts can be downloaded from\\\hfill \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
- &&Moga90Gothic&MogaGothic\\
- &\smash{\raisebox{1.5ex}{medium}}
- &Moga90Gothic&MogaGothic\\
-\cmidrule(l){2-4}
-%<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}
-
-
-\end{cslist}
-%<en>\paragraph{Presets for single weight}
-%<ja>\paragraph{単ウェイト用プリセット一覧}
+\begin{description}
 %<*en>
-Next, we describe settings for using only single weight.
+
+\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>
-次に,単ウェイト用の設定を述べる.この4設定では
-明朝体太字・丸ゴシック体はゴシック体と同じフォントが用いられる.
+\item[範囲8${}^{\text{A}}$] ISO~8859-1の上位領域(ラテン1補助)と
+                             JIS~X~0208の共通部分.この文字範囲は
+                             以下の文字で構成される:
 %</ja>
-\par\nobreak\medskip
-{\centering\small
-\begin{tabular}{lllll}
-\toprule
-&\tt noembed&\tt ipa&\tt ipaex&\tt ms\\
-\midrule
+\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>
-\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~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>
-\gtfamily 明朝体&Ryumin-Light(非埋込)
-&IPA明朝&IPAex明朝&MS明朝\\
-\gtfamily ゴシック体&GothicBBB-Medium(非埋込)
-&IPAゴシック&IPAexゴシック&MSゴシック\\
+\item[範囲1${}^{\text{A}}$] ラテン文字のうち,Adobe-Japan1-6との共通部分があるもの.
+                             この範囲は以下のUnicodeのブロックのうち
+                             \emph{範囲8を除いた}部分で構成されている:
 %</ja>
-\bottomrule
-\end{tabular}\par\medskip}
-
-%<en>\paragraph{Using HG fonts}
-%<ja>\paragraph{HGフォントの利用}
+\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>
-We can use HG~fonts bundled with Microsoft~Office for realizing multiple weights.
+\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>
-すぐ前に書いた単ウェイト用設定を,Microsoft Office等に付属するHGフォントを使って
-多ウェイト化した設定もある.
+\item[範囲2${}^{\text{\kern.1emJ}}$] ギリシャ文字とキリル文字.JIS~X~0208(したがってほとんどの
+                             和文フォント)には,これらの文字の一部が含まれている.
 %</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}\\
-%</ja>
-\bottomrule
-\end{tabular}\par\medskip}
-
+\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>
-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[Range~3${}^{\text{\kern.1emJ}}$] Punctuations and Miscellaneous symbols. The block list is
+          indicated in \autoref{tab:rng3}.
 %</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[範囲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{table}
 %<*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[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>
-\subsection{\cs{CID}, \cs{UTF}と\Pkg{otf}パッケージのマクロ}
-\pLaTeX では,JIS~X~0208にないAdobe-Japan1-6の文字を出力するために,
-齋藤修三郎氏による\Pkg{otf}パッケージが用いられていた.このパッケージは
-広く用いられているため,\LuaTeX-jaにおいても\Pkg{otf}パッケージの機能の
-一部を(\Pkg{luatexja-otf}という別のパッケージとして)実装した.
+\item[範囲4${}^{\text{A}}$] 通常和文フォントには含まれていない文字.
+                             この範囲は他の範囲にないほとんど全てのUnicodeブロック
+                             で構成されている.したがって,ブロックのリストを示す
+                             代わりに,範囲の定義そのものを示す:
 %</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}
-
+\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>
+\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>
-\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[範囲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>\subsection{Changing default Japanese fonts}
-%<ja>\subsection{標準和文フォントの変更}
-\label{ssec-cfg}
 %<*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.
+\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,
-\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 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).
 
-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}
+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>
-\LuaTeX から見える位置に \texttt{luatexja.cfg} があれば,\LuaTeX-jaはそれを読み込む.
-このファイルを用いるとplain~\TeX, \LaTeXe における標準和文フォントを
-IPAex明朝・IPAexゴシックから変更することができる.
-しかし,基本的には\emph{文章中で用いるフォントは(例えば \Pkg{luatexja-preset} などで)
-文書ソース内で指定するべき}であり,この \texttt{luatexja.cfg} は,
-「IPAexフォントがインストールできない」など,IPAexフォントが使用できない場合にのみ
-応急処置的に用いるべきである.
+\paragraph{\texttt{U+0080}--\texttt{U+00FF}についての注意}
+\LuaTeX-jaで,\Pkg{marvosym}パッケージ等,Unicodeフォントでなく
+伝統的な8ビットフォントを用いる場合には注意が必要である.
 
-例えば
-\begin{lstlisting}
-\def\ltj@stdmcfont{IPAMincho}
-\def\ltj@stdgtfont{IPAGothic}
-\end{lstlisting}
-と記述しておけば,標準和文フォントがIPA明朝・IPAゴシックへと変
-更される.
+例えば,\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}となるように初期設定を変更している.
 
-なお,20140906.0以前のバージョンのように
-Ryumin-Light, GothicBBB-Mediumという名前の非埋込フォントを用いる場合は
-\begin{lstlisting}
-\def\ltj@stdmcfont{psft:Ryumin-Light}
-\def\ltj@stdgtfont{psft:GothicBBB-Medium}
-\end{lstlisting}
-と記述すればよい.
+なお,文字範囲の設定に関わらず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>
 
 
-%<en>\section{Changing Internal Parameters}
-%<ja>\section{パラメータの変更}
+%<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>
-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}.
+\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>
-\LuaTeX-jaには多くのパラメータが存在する.そして\LuaTeX の仕様のために,
-その多くは\TeX のレジスタにではなく,\LuaTeX-ja独自の方法で保持されている.
-これらのパラメータを設定・取得するためには \cs{ltjsetparameter} と \cs{ltjgetparameter} を
-用いる.
+\item JFMで指定されたグルー/カーン.もし \cs{inhibitglue} が\textbf{JAchar}の周りで
+      発行されていれば,このグルーは挿入されない.
 %</ja>
-
-%<en>\subsection{Editing the Range of \textbf{JAchar}s}
-%<ja>\subsection{\textbf{JAchar}の範囲の設定}
-\label{ssec-setrange}
-
 %<*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.
+\item The default glue which inserted between two \textbf{JAchar}s (\Param{%
+      kanjiskip}).
 %</en>
 %<*ja>
-\LuaTeX-jaは,Unicodeの \texttt{U+0080}--\texttt{U+10FFFF} の空間を
-1番から217番までの\emph{文字範囲}に分割している.
-区分けは \cs{ltjdefcharrange} を用いることで(グローバルに)変更することができ,
-例えば,次は追加漢字面(SIP)にある全ての文字と「漢」を「100番の文字範囲」に追加する.
-%</ja>
-\begin{lstlisting}
-\ltjdefcharrange{100}{"20000-"2FFFF,`漢}
-\end{lstlisting}
-%<*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.
-%</en>
-%<*ja>
-各文字はただ一つの文字範囲に所属することができる.
-例えば,SIPは全て\LuaTeX-jaのデフォルトでは4番の文字範囲に
-属しているが,上記の指定を行えばSIPは100番に属すようになり,4番からは除かれる.
-%</ja>
-
-%<*en>
-The distinction between \textbf{ALchar} and \textbf{JAchar} is done for character ranges.
-This can be edited by setting the \textsf{jacharrange} parameter.
-For example, this is just the default setting of \LuaTeX-ja, and
-it sets
-\begin{itemize}
- \item a character which belongs character ranges 1,~4, and~5 is \textbf{ALchar},
- \item a character which belongs character ranges 2,~3, 6, 7, and~8 is \textbf{JAchar}.
-\end{itemize}
-%</en>
-%<*ja>
-\textbf{ALchar}と\textbf{JAchar}の区別は文字範囲ごとに行われる.
-これは\textsf{jacharrange}パラメータによって編集できる.
-例えば,以下は\LuaTeX-jaの初期設定であり,次の内容を設定している:
-\begin{itemize}
- \item 1番,4番,5番の文字範囲に属する文字は\textbf{ALchar}.
- \item 2番,3番,6番,7番,8番の文字範囲に属する文字は\textbf{JAchar}.
-\end{itemize}
-%</ja>
-\begin{lstlisting}
-\ltjsetparameter{jacharrange={-1, +2, +3, -4, -5, +6, +7, +8}}
-\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}''.
-%</en>
-%<*ja>
-\textsf{jacharrange}パラメータの引数は非零の整数のリストである.
-リスト中の負の整数$-n$は「文字範囲$n$に属する文字は\textbf{ALchar}として
-扱う」ことを意味し,正の整数$+n$は「\textbf{JAchar}として扱う」ことを意味する.
-%</ja>
-
-%<*en>
-\paragraph{Default setting}
-\LuaTeX-ja predefines eight character ranges for convenience. They are
-determined from the following data:
-%</en>
-%<*ja>
-\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>
-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 above \texttt{U+0080} which does not belong to
-these eight ranges belongs to the character range~217.
-%</en>
-%<*ja>
-以下ではこれら8つの文字範囲について記述する.添字のアルファベット「J」「A」
-は,その文字範囲内の文字が\textbf{JAchar}か\textbf{ALchar}かを表している.これらの設定は
-\texttt{PXbase}バンドルで定義されている\texttt{prefercjk}と類似のものである.
-なお,\texttt{U+0080} 以降でこれら8つの文字範囲に属さない文字は,217番の文字範囲に属することになっている.
-%</ja>
-\begin{description}
-%<*en>
-
-\item[Range~8${}^{\kern.1em\text{J}}$] 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>
-\item[範囲8${}^{\kern.1em\text{J}}$] ISO~8859-1の上位領域(ラテン1補助)と
-                             JIS~X~0208の共通部分.この文字範囲は
-                             以下の文字で構成される:
-%</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}
-
-%<*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}
-\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
-\item \texttt{U+0300}--\texttt{U+036F}: \\\null\hfill Combining Diacritical Marks
-\item \texttt{U+1E00}--\texttt{U+1EFF}: \\\null\hfill Latin Extended Additional
-\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 Table~\ref{table-rng3}.
-%</en>
-%<*ja>
-\item[範囲3${}^{\text{\kern.1emJ}}$] 句読点と記号類.ブロックのリストは表\ref{table-rng3}%
-                             に示してある.
-%</ja>
-\begin{table}[!tb]
-%<en>\caption{Unicode blocks in predefined character range~3.}\medskip
-%<ja>\caption{文字範囲3に指定されているUnicodeブロック.}
-\label{table-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 Table~\ref{table-rng6}.
-%<ja>\item[範囲6${}^{\text{\kern.1emJ}}$] 日本語で用いられる文字.ブロックのリストは表\ref{table-rng6}に示す.
-\begin{table}[!tb]
-%<en>\caption{Unicode blocks in predefined character range~6.}\medskip
-%<ja>\caption{文字範囲6に指定されているUnicodeブロック.}
-\label{table-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>
-\item[Range~7${}^{\text{\kern.1emJ}}$] Characters used in CJK languages, but not included in  Adobe-Japan1-6.
-The block list is indicated in Table~\ref{table-rng7}.
-%</en>
-%<*ja>
-\item[範囲7${}^{\text{\kern.1emJ}}$] CJK言語で用いられる文字のうち,Adobe-Japan1-6に
-                            含まれていないもの.
-                            ブロックのリストは表\ref{table-rng7}に示す.
-%</ja>
-\begin{table}[!tb]
-%<en>\caption{Unicode blocks in predefined character range~7.}\medskip
-%<ja>\caption{文字範囲7に指定されているUnicodeブロック.}
-\label{table-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>\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>
-\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>
-\item JFMで指定されたグルー/カーン.もし \cs{inhibitglue} が\textbf{JAchar}の周りで
-      発行されていれば,このグルーは挿入されない.
-%</ja>
-%<*en>
-\item The default glue which inserted between two \textbf{JAchar}s (\Param{%
-      kanjiskip}).
-%</en>
-%<*ja>
-\item デフォルトで2つの\textbf{JAchar}の間に挿入されるグルー(\Param{kanjiskip}).
+\item デフォルトで2つの\textbf{JAchar}の間に挿入されるグルー(\Param{kanjiskip}).
 %</ja>
 %<*en>
 \item The default glue which inserted between a \textbf{JAchar} and an
@@ -2288,7 +2124,7 @@ JFMは「望ましい\Param{kanjiskip}の値」や
 \cs{ltjgetparameter} によって取得することはできないので注意が必要である.
 %</ja>
 
-%<en>\subsection{Insertion Setting of \Param{xkanjiskip}}
+%<en>\subsection{Insertion setting of \Param{xkanjiskip}}
 %<ja>\subsection{\Param{xkanjiskip} の挿入設定}
 
 %<*en>
@@ -2339,10 +2175,10 @@ as follows:
 \ltjsetparameter{alxspmode={`あ,preonly}, jaxspmode={`\!,postonly}}
 \end{lstlisting}
 %<*en>
-One can use also numbers to specify these two parameters (see Subsection~\ref{ssec-param}).
+One can use also numbers to specify these two parameters (see Subsection~\ref{ssec:param}).
 %</en>
 %<*ja>
-また,これら2パラメータには数値で値を指定することもできる(\ref{ssec-param}節を参照).
+また,これら2パラメータには数値で値を指定することもできる(\ref{ssec:param}節を参照).
 %</ja>
 
 %<*en>
@@ -2411,7 +2247,7 @@ Here the horizontal line in the below example is the baseline of a line.
 下の例において引かれている水平線がベースラインである.
 %</ja>
 \begin{LTXexample}
-\vrule width 150pt height 0.4pt depth 0pt \hskip-120pt
+\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}
@@ -2426,13 +2262,15 @@ The following is an example (beware the value is not well tuned):
 異なる文字を中心線に揃えることができる.
 以下は一つの例である(値はあまり調整されていないことに注意):
 %</ja>
-\begin{LTXexample}
-xyz漢字
+\begin{LTXexample}[width=0.4\textwidth]
+\vrule width 150pt height4.417pt depth-4.217pt%
+\kern-150pt
+\large xyz漢字
 {\scriptsize
-  \ltjsetparameter{yjabaselineshift=-1pt,
-    yalbaselineshift=-1pt}
-  XYZひらがな
-}abcかな
+  \ltjsetparameter{yjabaselineshift=-1.757pt,
+    yalbaselineshift=-1.757pt}
+  漢字xyzあいう
+}あいうabc
 \end{LTXexample}
 
 %<*en>
@@ -2465,20 +2303,29 @@ becuse a \emph{JAchar} is encapsulated by a horizontal box if needed.
 
 %<*ja>
 \paragraph{数式における挙動:\pTeX との違い}
-\textbf{ALchar}のベースラインを補正する \Param{yalbaselineshift} パラメータは
-ほぼ\pTeX における \cs{ybaselineshift} に対応しているものであるが,
+\textbf{ALchar}のベースラインを補正する\Param{yalbaselineshift}, \Param{talbaselineshift}パラメータは
+ほぼ\pTeX における \cs{ybaselineshift}, \cs{tbaselineshift} に対応しているものであるが,
 数式中の挙動は異なっているので注意が必要である.
-例えば,表\ref{tab:math_bsa}のように,数式中に明示的に現れた \cs{hbox} は,
+例えば,\autoref{tab:math_bsa}のように,数式中に明示的に現れた \cs{hbox},~\cs{vbox} は,横組において
 \begin{itemize}
- \item \pTeX では,ボックス全体が \cs{ybaselineshift} だとシフトされるので,
表\ref{tab:math_bsa}中の``い''のように,ボックス中の和文文字は
+ \item 2015年以前の\pTeX では,ボックス全体が \cs{ybaselineshift} だとシフトされるので,
\autoref{tab:math_bsa}中の``い''のように,ボックス中の和文文字は
  \ \cs{ybaselineshift} だけシフトされ,一方,``for all''のように,
  ボックス内の欧文文字は2重にシフトされることになる.
  \item 一方,\LuaTeX-jaではそのようなことはおこらず,
- 数式中に明示的に現れた \cs{hbox} はシフトしない.そのため,
表\ref{tab:math_bsa}中の``い''も``for all''も,それぞれ本文中に
+ 数式中に明示的に現れた \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}$)}
@@ -2489,20 +2336,24 @@ becuse a \emph{JAchar} is encapsulated by a horizontal box if needed.
 \toprule
 \emph{入力}&\vspace*{\dimexpr-\origbaselineskip-\smallskipamount}
 \begin{lstlisting}
-数式abc: $あa\hbox{い}$, $\int_0^x t\,dt=x^2\!/2$,
+数式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}&
+\emph{\pTeX~(--2015)}&
 {\ltjsetparameter{yalbaselineshift=10pt}%
-数式abc: $あa\lower10pt\hbox{い}$, $\int_0^x t\,dt=x^2\!/2$,
+数式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}\\
-\midrule
+\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$,
+数式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}
@@ -2518,15 +2369,16 @@ Among parameters which related to Japanese word-wrapping process (\emph{kinsoku
  \Param{jaxspmode},~\Param{alxspmode}, \Param{prebreakpenalty},
  \Param{postbreakpenalty}~and~\Param{kcatcode}
 \end{quote}
-are stored by each character codes. ...
+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>
-\subsection{禁則処理関連パラメータとfont feature}
+\subsection{禁則処理関連パラメータとOpenTypeのfont feature}
 禁則処理や \Param{kanjiskip}, \Param{xkanjiskip} の挿入に関連したパラメータのうち
 \begin{quote}
  \Param{jaxspmode},~\Param{alxspmode}, \Param{prebreakpenalty},
@@ -2534,9 +2386,9 @@ However, the penalty inserted after it is 10 which is the \Param{postbreakpenalt
 \end{quote}
 は,文字コードごとに設定する量である.
 
-\Pkg{fontspec}パッケージを使う(\ref{ssec-fontspec}節)場合など,
+\Pkg{fontspec}パッケージを使う(\ref{ssec:fontspec}節)場合など,
 各種のOpenType featureを適用することもあると思うが,前段落に述べたパラメータ類は,
-\emph{OpenType featureの適用前の文字コードによって判定される.}
+\emph{OpenType featureの適用前の文字コードによって適用される.}
 例えば,以下の例において10行目の「ア」は,\verb+hwid+ featureの適用により半角カタカナの「ア」
 に置き換わる.しかし,その直後に挿入される \Param{postbreakpenalty}は,置換前の「ア」に対する値10である.
 %</ja>
@@ -2565,7 +2417,7 @@ However, the penalty inserted after it is 10 which is the \Param{postbreakpenalt
 \subsection{予備知識:\pTeX と\upTeX における \cs{kcatcode}}
 \pTeX,\upTeX においては,和文文字が制御綴内で利用できるかどうか
 は \cs{kcatcode} の値によって決定されるのであった.
-詳細は表\ref{table-kcat}を参照されたい.
+詳細は\autoref{tab:kcat}を参照されたい.
 %</ja>
 %<*en>
 \section{\cs{catcode} in \LuaTeX-ja}
@@ -2573,13 +2425,13 @@ However, the penalty inserted after it is 10 which is the \Param{postbreakpenalt
 \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 Table~\ref{table-kcat}.
+For the detail, see \autoref{tab:kcat}.
 %</en>
 
 \begin{table}[t]
 \small
 \caption{\cs{kcatcode} in \upTeX}
-\label{table-kcat}
+\label{tab:kcat}
 %<en>\medskip
 
 \noindent\hfill
@@ -2589,13 +2441,13 @@ For the detail, see Table~\ref{table-kcat}.
 %<*en>
 \bfseries meaning&
 \bfseries control word&
-\bfseries widow penalty\hbox{}$^*$&
+\bfseries widow penalty&
 \bfseries linebreak\\
 %</en>
 %<*ja>
 \bfseries 意図&
 \bfseries 制御綴中に使用&
-\bfseries 文字ウィドウ処理\hbox{}$^*$&
+\bfseries 文字ウィドウ処理&
 \bfseries 直後での改行\\
 %</ja>
 \midrule
@@ -2610,7 +2462,7 @@ For the detail, see Table~\ref{table-kcat}.
 \medskip
 
 %<*ja>
-文字ウィドウ処理\hbox{}$^*$: 「漢字が一文字だけ次の行に行くのを防ぐ」\
+文字ウィドウ処理:「漢字が一文字だけ次の行に行くのを防ぐ」
 \cs{jcharwidowpenalty} が,
 その文字の直前に挿入されうるか否か,を示す.
 %</ja>
@@ -2643,7 +2495,7 @@ 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}.
+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.
@@ -2660,7 +2512,7 @@ is controlled by the lowermost bit of the \Param{kcatcode} parameter.
 分割している:
 \begin{description}
  \item[欧文/和文の区別 (\upTeX)]
-\cs{ltjdefcharrange} と\textsf{jacharrange}パラメータ(\ref{ssec-setrange}節)
+\cs{ltjdefcharrange} と\textsf{jacharrange}パラメータ(\ref{ssec:setrange}節)
  \item[制御綴中に使用可か]
 \LuaTeX 自身の \cs{catcode} でよい
  \item[\Param{jcharwidowpenalty}が挿入可か]
@@ -2682,17 +2534,22 @@ 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 Kanji and kana characters to 11, via setting \cs{XeTeXcharclass}.
-
-However, this latter half does not exist (plain case), or not executed (\LaTeX~case) in \LuaTeX, hence
-\cs{catcode} of Kanji and kana characters remains 12 in \LuaTeX.
+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, Kanji nor kana characters cannot be used in
-a control word, in the default setting of \LuaTeX.
+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, such as \verb+\西暦+,
-are used in \pTeX.
+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>
@@ -2705,7 +2562,6 @@ for \LuaTeX, \emph{to match the \cs{catcode} setting with that of \XeTeX.}
 \LaTeX では \cs{catcode} の設定はカーネルに \texttt{unicode-letters.def} として統合され.
 このファイルを\XeLaTeX, \LuaLaTeX の両方が用いている.
 
-
 だが,\XeTeX における \cs{catcode} の初期設定と
 \LuaTeX におけるそれは一致していない:
 \begin{itemize}
@@ -2713,16 +2569,20 @@ for \LuaTeX, \emph{to match the \cs{catcode} setting with that of \XeTeX.}
 \texttt{unicode-letters.tex} が古い
  \item \texttt{unicode-letters.tex} 後半部や \texttt{unicode-letters.def} 後半部では
 \cs{XeTeXcharclass} の設定を行なっており,
-それによって漢字や仮名の \cs{catcode} が11に設定されている.
-
+それによって漢字や仮名,および全角英数字の \cs{catcode} が11に設定されている.
 しかし,\texttt{luatex-unicode-letters.tex} ではこの「後半部」が
 まるごと省略されており,また\LuaLaTeX でも \texttt{unicode-letters.def} 後半部は実行されな
-       い.従って漢字や仮名の \cs{catcode} は12のままになっている.
+       い.
 \end{itemize}
-言い換えると,\LuaTeX の初期状態では漢字や仮名を制御綴内に
+言い換えると,
+\begin{description}
+ \item[plain \LuaTeX]  漢字や仮名を制御綴内に
 使用することはできない.
-
-これでは \pTeX で使用できた \verb+\西暦+ などが使えないこととなり,
+ \item[\LuaLaTeX] 最近の(2015-10-01以降の)
+\LuaLaTeX では漢字や仮名を制御綴内に
+使用することが可能になったが,全角英数字は相変わらず使用できない,
+\end{description}
+これでは \pTeX で使用できた \verb+\1年目西暦+\footnote{科研費\LaTeX で使用されているそうです.}などが使えないこととなり,
 \LuaTeX-jaへの移行で手間が生じる.そのため,\LuaTeX-jaでは
 \texttt{unicode-letters.tex} の後半部にあたる内容を自前でパッチし,
 結果として\textbf{\XeTeX における初期設定と同じになるようにしている.}
@@ -2733,7 +2593,7 @@ for \LuaTeX, \emph{to match the \cs{catcode} setting with that of \XeTeX.}
 %<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{table-kcat-diff}
+\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})} %"
@@ -2791,10 +2651,10 @@ for \LuaTeX, \emph{to match the \cs{catcode} setting with that of \XeTeX.}
 \end{table}
 
 %<*en>
-\subsection{Non-kanji Characters in a Control Word}
+\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.
-Table~\ref{table-kcat-diff} shows the difference.
+\autoref{tab:kcat-diff} shows the difference.
 Except for four characters ``・'',~``゛'', ``゜'',~``゠'',
 \LuaTeX-ja admits more characters in a control word than \upTeX.
 
@@ -2807,7 +2667,7 @@ For the detail, see \url{https://github.com/h-kitagawa/kct}.
 
 エンジンが異なるので,\pTeX, \upTeX, \LuaTeX-ja
 において制御綴中に使用可能なJIS~X~0208の文字は異なる.
-異なっているところだけを載せると,表\ref{table-kcat-diff}のようになる.
+異なっているところだけを載せると,\autoref{tab:kcat-diff}のようになる.
 「・」「゛」「゜」「゠」を除けば,\LuaTeX-jaでは\upTeX より多くの文字が
 制御綴に使用可能になっている.
 
@@ -2911,7 +2771,7 @@ Example&\obox{\yoko}&\obox{\tate}&\obox{\dtou}&\obox{\utod}\\
 \end{table}
 
 %<*en>
-\LuaTeX-ja supports four directions, as shown in Table~\ref{tab-dir}.
+\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.
@@ -2919,12 +2779,14 @@ 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
+only when the current list is null.
+These commands cannot be executed in unrestricted horizontal modes, nor math modes.
+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がサポートする組方向は表\ref{tab-dir}に示す4つである.
+\LuaTeX-jaがサポートする組方向は\autoref{tab-dir}に示す4つである.
 4列目の \cs{dtou} は聞き慣れない命令だと思うが,
 実は\pTeX に同名の命令が(ドキュメントには書かれていないが)存在する.
 Down-TO-Upの意味なのだろう.\cs{dtou} を使用する機会はないだろうが,
@@ -2933,6 +2795,8 @@ Down-TO-Upの意味なのだろう.\cs{dtou} を使用する機会はないだ
 
 組方向は,\cs{yoko},~\cs{tate}, \cs{dtou},~\cs{utod} をそれぞれ使用することで,
 現在作成中のリストやボックスが空の時にのみ変更可能である.
+ただし,現在のモードが非制限水平モードや(文中,別行立て問わず)数式モードであるときには
+組方向を変更することは出来ない.
 また,縦組中の数式内のボックスは\pTeX と同じように組方向が \cs{utod} となる.
 %</ja>
 
@@ -2952,7 +2816,7 @@ The below is an example.
 また横組に戻る% yoko
 \end{LTXexample}
 
-Table~\ref{tab-diffdir} shows how a box is arranged when
+\autoref{tab-diffdir} shows how a box is arranged when
 the direction  inside the box and that outside the box differ.
 %</en>
 %<*ja>
@@ -2973,7 +2837,7 @@ the direction  inside the box and that outside the box differ.
 \end{LTXexample}
 
 異なる組方向のボックスを配置した場合にどう組まれるかの仕様も,\pTeX を
-踏襲している.表\ref{tab-diffdir}に示す.
+踏襲している.\autoref{tab-diffdir}に示す.
 %</ja>
 
 \begin{table}[t]
@@ -2991,7 +2855,7 @@ the direction  inside the box and that outside the box differ.
      \put(0,0){\vector(1,0){5}} \put(2.5,-0.2){\makebox(0,0)[t]{$h_{\mathrm{T}}$}}
      \put(0,0){\vector(-1,0){2}}\put(-1,-0.2){\makebox(0,0)[t]{$d_{\mathrm{T}}$}}
      \put(0,0){\vector(0,-1){7}}\put(0.2,-3.5){\makebox(0,0)[l]{$w_{\mathrm{T}}$}}
-   \end{picture}}}
+   \end{picture}}}%
  }
  \def\DTOUeg{%
    \hbox{\smash{\begin{picture}(0,0)(-5,0)
@@ -3002,7 +2866,7 @@ the direction  inside the box and that outside the box differ.
      \put(0,0){\vector(-1,0){5}} \put(-2.5,0.3){\makebox(0,0)[b]{$h_{\mathrm{D}}$}}
      \put(0,0){\vector(1,0){2}}\put(1,0.3){\makebox(0,0)[b]{$d_{\mathrm{D}}$}}
      \put(0,0){\vector(0,1){7}}\put(-0.2,3.5){\makebox(0,0)[r]{$w_{\mathrm{D}}$}}
-   \end{picture}}}
+   \end{picture}}}%
  }
  \def\YOKOeg{%
    \hbox{\smash{\begin{picture}(0,0)
@@ -3013,7 +2877,7 @@ the direction  inside the box and that outside the box differ.
      \put(0,0){\vector(0,1){5}} \put(0.3,2.5){\makebox(0,0)[l]{$h_{\mathrm{Y}}$}}
      \put(0,0){\vector(0,-1){2}}\put(0.3,-1){\makebox(0,0)[l]{$d_{\mathrm{Y}}$}}
      \put(0,0){\vector(1,0){7}}\put(3.5,0.2){\makebox(0,0)[b]{$w_{\mathrm{Y}}$}}
-   \end{picture}}}
+   \end{picture}}}%
  }
 \begin{tabular}{ccc}
 \toprule
@@ -3119,7 +2983,7 @@ the direction  inside the box and that outside the box differ.
    \begin{align*}
    W_{\mathrm{Y}} &= h_{\mathrm{D}}+d_{\mathrm{D}},\\
    H_{\mathrm{Y}} &= w_{\mathrm{D}},\\
-   D_{\mathrm{Y}} &= 0\,pt
+   D_{\mathrm{Y}} &= 0\,\mathrm{pt}
    \end{align*}%
  }&
  \parbox[c]{15\unitlength}{\begin{picture}(15,15)(0,-4)
@@ -3286,7 +3150,7 @@ These commands set the dimension of \cs{box<num>}. One does not need
 \ltjsetwd42 20pt,  \ltjsetwd42=20pt,  \ltjsetwd=42 20pt,  \ltjsetwd=42=20pt
 \end{lstlisting}
 
-設定値は「横組」「縦組及び \cs{utod} 方向」「\cs{dtou} 方向」
+設定値は「横組」「縦組及びutod方向」「dtou方向」
 の3種ごとに独立して記録される.参考として,Gitリポジトリ内の
              \verb+test/test55-boxdim_diffdir.{tex,pdf}+ を挙げておく.
 
@@ -3407,7 +3271,7 @@ overridden by \LuaTeX-ja, using~\verb+\protected\def+.
 %<ja>\section{フォントメトリックと和文フォント}
 %<en>\subsection{\cs{jfont}}
 %<ja>\subsection{\cs{jfont} 命令}
-\label{ssec-jfont}
+\label{ssec:jfont}
 
 %<*en>
 To load a font as a Japanese font (for horizontal direction), you must use the
@@ -3517,7 +3381,7 @@ Specify the name of (horizontal) JFM.
 If specified JFM has not been loaded, \LuaTeX-ja search and load
 a file named \texttt{jfm-<name>.lua}.
 
-The following JFMs are shipped with \LuaTeX-ja:
+The following horizontal JFMs are shipped with \LuaTeX-ja:
 %</en>
 %<*ja>
 用いる(横組用)JFMの名前を指定する.もし以前に指定されたJFMが読み込まれていなければ,
@@ -3525,7 +3389,7 @@ The following JFMs are shipped with \LuaTeX-ja:
 %</ja>
 \begin{description}
 %<*en>
-\item[\tt jfm-ujis.lua] A standard JFM in \LuaTeX-ja. This JFM is
+\item[\tt jfm-ujis.lua] A standard horizontal JFM in \LuaTeX-ja. This JFM is
   based on \verb+upnmlminr-h.tfm+, a metric for UTF/OTF package that
   is used in \upTeX. When you use the \Pkg{luatexja-otf} package, you should use this JFM.
 %</en>
@@ -3560,10 +3424,10 @@ The following JFMs are shipped with \LuaTeX-ja:
 %</ja>
 \end{description}
 %<*en>
-The difference among these three~JFMs is  shown in Table~\ref{tab-difjfm}.
+The difference among these three~JFMs is  shown in \autoref{tab-difjfm}.
 %</en>
 %<*ja>
-これら3つのJFMの違いは表\ref{tab-difjfm}に示した.表中の文例の一部には,
+これら3つのJFMの違いは\autoref{tab-difjfm}に示した.表中の文例の一部には,
 \cite{min10}の図3,~4のものを用いた.
 %</ja>
 
@@ -3593,11 +3457,11 @@ Sometimes there is a need that \ldots.
 \item[jfmvar=<string>]
 標準では,JFMとサイズが同じで,
   実フォントだけが異なる2つの和文フォントは「区別されない」.例えば
-図\ref{fig:jfmvar}において,最初の「)」と「【」の実フォントは異なるが,
+\autoref{fig:jfmvar}において,最初の「)」と「【」の実フォントは異なるが,
 JFMもサイズも同じなので,普通に「)【」と入力した時と同じように半角空きとなる.
 
 しかし,JFMとサイズが同じであっても,\texttt{jfmvar} キーの異なる
-2つの和文フォント,例えば図\ref{fig:jfmvar}で言う \cs{F} と \cs{H},
+2つの和文フォント,例えば\autoref{fig:jfmvar}で言う \cs{F} と \cs{H},
 は「区別される」.異なる和文フォントに異なる \texttt{jfmvar} キーを割り当て,
 かつ\Param{differentjfm}パラメータを \texttt{both} に設定すれば,
 \pTeX と似た状況で組版されることになる.
@@ -3628,9 +3492,9 @@ 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 Figure~\ref{fig:kern-jfm} for detail.
+See \autoref{fig:kern-jfm} for detail.
 
 Note that in \cs{setmainjfont} etc.\ which are provided by \Pkg{luatexja-fontspec}
 package, kerning option is set \emph{off} (\texttt{Kerning=Off}) by default,
@@ -3639,12 +3503,12 @@ because of the compatibility with previous versions of \LuaTeX-ja.
 %<*ja>
 いくつかのフォントはグリフ間のスペースについての情報を持っている.
 このカーニング情報は以前の\LuaTeX-ja とはあまり相性が良くなかったが,
-本バージョンではカーニングによる空白はイタリック補正と同様に扱うことになっている.
+バージョン20140324.0以降ではカーニングによる空白はイタリック補正と同様に扱うことになっている.
 つまり,カーニング由来の空白とJFM由来のグルー・カーンは同時に入りうる.
-図\ref{fig:kern-jfm}を参照.
+\autoref{fig:kern-jfm}を参照.
 \begin{itemize}
  \item \emph{\cs{jfont} や,
-NFSS2用の命令(\ref{ssec-chgfnt}節,\ref{ssec-nfsspat}節)における指定では
+NFSS2用の命令(\ref{ssec:chgfnt}節,\ref{ssec:nfsspat}節)における指定では
 カーニング情報は標準で使用する}ことになっているようである.
 言い換えれば,カーニング情報を使用しない設定にするには,面倒でも
 \begin{lstlisting}
@@ -3676,8 +3540,8 @@ OpenType font featureと見かけ上同じような形式で指定できるも
 \paragraph{\texttt{extend} and \texttt{slant}}
 The following setting can be specified as OpenType font features:
 \begin{cslist}[style=standard]
-\item[\cs{extend=}<extend>] expand the font horizontally by <extend>.
-\item[\cs{slant=}<slant>] slant the font.
+\item[\texttt{extend=}<extend>] expand the font horizontally by <extend>.
+\item[\texttt{slant=}<slant>] slant the font.
 \end{cslist}
 Note that \LuaTeX-ja doesn't adjust JFMs by these \texttt{extend} and \texttt{slant}
 settings; you have to write new JFMs on purpose.
@@ -3692,25 +3556,55 @@ letter-spacing and the width of italic correction are not correct:
 \S あいう\/ABC
 \end{LTXexample}
 
+%<*ja>
+\paragraph{\texttt{ltjksp} 指定}
+\label{pg:ltjksp}
+\LuaTeX-ja標準では,
+JFM中における \texttt{kanjiskip\_natural}, \texttt{kanjiskip\_stretch},\
+\texttt{kanjiskip\_shrink}キー(\pageref{pg:ksp_nat}ページ)の使用によって,
+「JFM由来のグルーの他に,\Param{kanjiskip}の自然長/伸び量/縮み量の一部が
+同じ場所に挿入される」という状況が起こりうる.
+この機能を無効化し,バージョン20150922.0以前と同じような組版を得るためには
+他のOpenType機能と同じように\ \texttt{-ltjksp}\ 指定を行えば良い.
+\begin{LTXexample}[width=16\zw]
+\leavevmode
+\ltjsetparameter{kanjiskip=0pt plus 3\zw}
+\vrule\hbox to 15\zw{あ「い」う,えお}\vrule
+
+\jfont\G=file:KozMinPr6N-Regular.otf%
+  :jfm=ujis;-ltjksp at 9.2487pt
+\G\leavevmode%
+\vrule\hbox to 15\zw{あ「い」う,えお}\vrule
+\end{LTXexample}
+なお,
+\begin{lstlisting}
+ \jfont\G=file:KozMinPr6N-Regular.otf:jfm=ujis;-ltjksp;+ltjksp at 9.2487pt
+\end{lstlisting}
+のように \texttt{+ltjksp} 指定を行った場合は,\texttt{kanjiskip\_natural} など
+3キーは再び有効化される.\texttt{-ltjksp}, \texttt{+ltjksp} を複数回指定した場合は,
+最後に指定したものが有効となる.
+%</ja>
+
+
 %<en>\subsection{\cs{tfont}}
 %<ja>\subsection{\cs{tfont} 命令}
 
 
+\begin{comment}
+  {\catcode`\<=12\catcode`\>=12
 \begin{table}[t]
 %<en>\caption{Differences between vertical JFMs shipped with \LuaTeX-ja}
 %<ja>\caption{\LuaTeX-ja に同梱されている縦組用 JFM の違い}
 %<en>\medskip
 \label{tab-difjfm-tate}
-\catcode`\<=12\catcode`\>=12
 \ltjsetparameter{jacharrange={+3}}
 \small
-
 \def\r#1#2{%
   \hbox{\tate\Large\vrule
   \parbox{7\zw}{%
     \addjfontfeatures{TateFeatures={Opacity=0.5, Color=#2, JFM=#1}}\noindent
     ◆◆◆◆◆◆◆
-    ã\81\82ã\82\8bæ\97¥ã\83¢ã\83¢ã\81¡ã\82\83ã\82\93ã\81\8cã\81\8a使ã\81\84ã\81§è¿·å­\90ã\81«ã\81ªã\81£ã\81¦æ³£ã\81\8dã\81¾ã\81\97ã\81\9fï¼\8e
+    ã\81\82ã\82\8bæ\97¥ã\83¢ã\83¢ã\81¡ã\82\83ã\82\93ã\81\8cã\80\8cã\81\8a使ã\81\84ã\80\8dã\81§è¿·å­\90ã\81«ã\81ªã\81£ã\81¦æ³£ã\81\8dã\81¾ã\81\97ã\81\9fã\80\82
   }\vrule}}
 \def\s#1#2{%
   \hbox{\tate\Large
@@ -3739,9 +3633,45 @@ letter-spacing and the width of italic correction are not correct:
 \end{minipage}
 \ltjsetparameter{jacharrange={-3}}
 \end{table}
+}
+\end{comment}
 
 %<*en>
-...
+\cs{tfont} loads a font as a Japanese font for vertical direction.
+This command admits the same syntax used in \cs{font}~and~\cs{jfont}.
+A font defined by~\cs{tfont} differs the following points from that by~\cs{jfont}:
+\begin{itemize}
+ \item OpenType Feature~\texttt{vrt2}%
+  \footnote{If the font does not define \texttt{vrt2} feature,
+       use \texttt{vert} instead.} is automatically activated,
+  unless \texttt{vert}~and//or~\texttt{vrt2} are explicitly activated
+  or deactivated (as the second line in the example below).
+\begin{lstlisting}
+\tfont\S=file:KozMinPr6N-Regular.otf:jfm=ujisv % vrt2 is automatically activated
+\tfont\T=file:KozMinPr6N-Regular.otf:jfm=ujisv;-vert % vert and vrt2 are not activated
+\tfont\U=file:ipaexm.ttf:jfm=ujisv
+    % vert is automatically activated, since this font does not have vrt2
+\end{lstlisting}
+ \item Sometimes \texttt{vert} and/or \texttt{vrt2} are not activated
+ while one specified activation of these feature.
+ This is because the font does not define these features in current combination of
+ script~tag and language~system~identifier.
+
+ In this situation, \LuaTeX-ja performs all replacements which is defined in~\texttt{vert}
+ feature for \emph{some} scripts for \emph{some} languages.
+ \item Furthermore, a glyph is automatically rotated 90~degrees,
+  if it is not replaced by \texttt{vert} feature for \emph{any} script
+  for \emph{any} language, and if it is marked as `r''~or~``Tr'' in UAX~\#50.
+ \item One have to specify the name of vertical JFM in  \texttt{jfm=<name>}.
+\LuaTeX-ja ships following vertical JFMs:
+\begin{description}
+\item[\tt jfm-ujisv.lua] A standard vertical JFM in \LuaTeX-ja. This JFM is
+  based on \verb+upnmlminr-v.tfm+, a metric for UTF/OTF package that
+  is used in \upTeX.
+\item[\tt jfm-tmin.lua] A counterpart for \verb+tmin10.tfm+, which is one
+  of the default Japanese font metric shipped with \pTeX.
+\end{description}
+\end{itemize}
 %</en>
 %<*ja>
 \cs{tfont} はフォントを縦組用の和文フォントとして読み込む命令であり,
@@ -3749,17 +3679,35 @@ letter-spacing and the width of italic correction are not correct:
 \cs{tfont} で定義された縦組用和文フォントは,
 以下の点が \cs{jfont} による横組用和文フォントとは異なる:
 \begin{itemize}
- \item 自動的に \texttt{vert}, \texttt{vrt2} の両OpenType featureが有効化される.
-但し,以下の例の3行目に示すように,明示的に \texttt{vert}, \texttt{vrt2}(のいずれか)の
-有効・無効を指定した場合は別である.
+ \item 明示的に \texttt{vert}, \texttt{vrt2}(のいずれか)の
+  有効・無効を指定した場合を除き,自動的に OpenType feature~\texttt{vrt2} の有効化が
+  指定されたものとみなされる
+ \footnote{もしフォントが\texttt{vrt2}を定義していなかった場合,代わりに
+ \texttt{vert}を用いる.}.
 \begin{lstlisting}
-\tfont\S=file:KozMinPr6N-Regular.otf:jfm=ujisv
-    % vert and vrt2 are automatically activated
+\tfont\S=file:KozMinPr6N-Regular.otf:jfm=ujisv % vrt2 is automatically activated
 \tfont\T=file:KozMinPr6N-Regular.otf:jfm=ujisv;-vert % vert and vrt2 are not activated
+\tfont\U=file:ipaexm.ttf:jfm=ujisv
+    % vert is automatically activated, since this font does not have vrt2
 \end{lstlisting}
- \item \ref{ssec-math}節で述べる,数式中の和文フォントには縦組用和文フォントは指定できない.
+ \item \texttt{vert}, \texttt{vrt2} の少なくとも一つの有効を指定した場合にも関わらず,
+  script tagとlanguage system identifierの値の組み合わせによって
+  実際には有効にならなかった場合,\LuaTeX-jaは
+ \begin{quote}
+   どれかのscript,~languageで定義されている\texttt{vert}による
+   (単一グリフから単一グリフへの)置換を全部適用する
+ \end{quote}
+  という挙動を取る\footnote{%
+  例えば,Windows~7に付属しているSimHeiでは,\texttt{vert}はScriptが\texttt{hani},
+  Languageが\texttt{CHN}という状況でのみ定義されている.しかし,\Pkg{luaotfload}では
+  このscript,~languageの組み合わせを指定することはできないので,
+  \Pkg{luaotfload}そのままでは\texttt{vert}を適用させることはできない.
+ }.
+ \item さらに,「いかなるscript,~languageでも\texttt{vert}により置換されない」グリフ
+  のうち,UAX~\#50で``r''もしくは``Tr''と指定されているものは90度自動回転させる.
+ \item \ref{ssec:math}節で述べる,数式中の和文フォントには縦組用和文フォントは指定できない.
  \item \texttt{jfm=<name>}\ の部分には縦組用JFMを指定する.
-以ä¸\8bã\81®ç¸¦çµ\84ç\94¨JFMã\81\8c\LuaTeX-jaã\81«ã\81¯å\90\8c梱ã\81\95ã\82\8cã\81¦ã\81\8aã\82\8aï¼\8cé\81\95ã\81\84ã\82\92表\ref{tab-difjfm-tate}に示した.
+以ä¸\8bã\81®ç¸¦çµ\84ç\94¨JFMã\81\8c\LuaTeX-jaã\81«ã\81¯å\90\8c梱ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bï¼\8e\81\8aã\82\8aï¼\8cé\81\95ã\81\84ã\82\92\autoref{tab-difjfm-tate}に示した.
 \begin{description}
 \item[\tt jfm-ujisv.lua] \LuaTeX-jaの標準縦組用JFMである.このJFMは\upTeX で
   用いられるUTF/OTFパッケージ用の和文用TFMである \verb+upnmlminr-v.tfm+ を
@@ -3776,7 +3724,7 @@ letter-spacing and the width of italic correction are not correct:
 
 %<en>\subsection{Prefix \texttt{psft}}
 %<ja>\subsection{\texttt{psft}プリフィックス}
-\label{ssec-psft}
+\label{ssec:psft}
 %<*en>
 Besides ``\texttt{file:}''\ and ``\texttt{name:}''\ prefixes which
 are introduced in the \Pkg{luaotfload} package,
@@ -3877,9 +3825,9 @@ Please contact the LuaTeX-ja project team.
 ?
 \end{lstlisting}
 
-%<en>\subsection{Structure of a JFM File}
+%<en>\subsection{Structure of a JFM file}
 %<ja>\subsection{JFMファイルの構造}
-\label{ssec-jfm-str}
+\label{ssec:jfm-str}
 %<en>A JFM file is a Lua script which has only one function call:
 %<ja>JFMファイルはただ一つの関数呼び出しを含むLuaスクリプトである:
 \begin{lstlisting}
@@ -3900,6 +3848,17 @@ floating-point numbers in design-size unit.
 
 \begin{cslist}[style=standard]
 
+\item[version=<version>]
+%<en>(optional, default value is~1)
+%<ja>(任意,既定値は1)
+
+%<*en>
+The version JFM. Currently 1,~2,~and,~3 are supported
+%</en>
+%<*ja>
+JFMのバージョン.1,~2,~3がサポートされる.
+%</ja>
+  
 \item[dir=<direction>]
 %<en>(required)
 %<ja>(必須)
@@ -4021,20 +3980,48 @@ This field is a list of characters which are in this character
 %<ja>(必須)
 
 %<*en>
+\begin{table}[t]
+ \centering
+\begin{tabular}{llr}
+\toprule
+Direction of JFM&\textbf{\texttt{'yoko'} (horizontal)}&\multicolumn{1}{l}{\textbf{\texttt{'tate'} (vertical)}}\\
+\midrule
+\texttt{width} field&\multicolumn{2}{c}{the width of the ``real'' glyph}\\
+\texttt{height} field&the height of the ``real'' glyph&0.0\\
+\texttt{depth} field&the depth of the ``real'' glyph&0.0\\
+\midrule
+\texttt{italic} field&\multicolumn{2}{c}{0.0}\\
+\bottomrule
+\end{tabular}
+\caption{Default values of \texttt{width} field and other fields}
+\label{tab-wid}
+\end{table}
 Specify the width of characters in character class~$i$, the height, the depth and
 the amount of italic correction. All characters in character class~$i$ are regarded that its width, height, and depth are
-as values of these fields.
-
-But there is one exception: \texttt{width} field can be \texttt{'prop'}.
-This means that width of a character becomes that of its ``real'' glyph.
+as values of these fields. The default values are shown in \autoref{tab-wid}.
 %</en>
 %<*ja>
+\begin{table}[t]
+ \centering
+\begin{tabular}{llr}
+\toprule
+JFM書字方向&\emph{\texttt{'yoko'}(横組)}&\multicolumn{1}{l}{\emph{\texttt{'tate'}(縦組)}}\\
+\midrule
+\texttt{width}&\multicolumn{2}{c}{「実際のグリフ」の幅}\\
+\texttt{height}&「実際のグリフ」の高さ&0.0\\
+\texttt{depth}&「実際のグリフ」の深さ&0.0\\
+\midrule
+\texttt{italic}&\multicolumn{2}{c}{0.0}\\
+\bottomrule
+\end{tabular}
+\caption{\texttt{width} フィールド等の標準値}
+\label{tab-wid}
+\end{table}
 文字クラス$i$に属する文字の幅,高さ,深さ,イタリック補正の量を指定する.
 文字クラス$i$に属する全ての文字は,その幅,高さ,深さがこのフィールドで指定した
-値であるものとして扱われる.
-
-例外として,\emph{\texttt{width} フィールドには数値以外に \texttt{'prop'} が指定可能である}.
-この場合,文字の幅はその「実際の」グリフの幅となる.OpenTypeの \texttt{prop} featureと併用
+値であるものとして扱われる.省略時や,数でない値を指定した時には表\nobreak\ref{tab-wid}に
+            示されている値を用いる.例えば,横組用JFMで \texttt{width} フィールドには数値以外の値を指
+            定した場合,文字の幅はその「実際の」グリフの幅となる.OpenTypeの \texttt{prop} featureと併用
             すれば,これによってプロポーショナル組を行うことができる.
 %</ja>
 
@@ -4048,7 +4035,7 @@ These fields are for adjusting the position of the ``real'' glyph. Legal
             treated as~0, and \texttt{align} field is treated as
             \texttt{'left'}.
 The effects of these 3~fields are indicated in
-Figures \ref{fig-pos}~and~\ref{fig-pos-tate}.
+\autoref{fig:pos}~and~\autoref{fig:pos-tate}.
 %</en>
 %<*ja>
 これらのフィールドは実際のグリフの位置を調整するためにある.
@@ -4056,8 +4043,8 @@ Figures \ref{fig-pos}~and~\ref{fig-pos-tate}.
 \texttt{'right'} のいずれかである.もしこれら3つのフィールドのうちの1つが省かれた
 場合,\texttt{left} と \texttt{down} は0,\texttt{align} フィールドは
 \ \texttt{'left'} であるものとして扱われる.
-これら3つのフィールドの意味については図\ref{fig-pos}(横組用和文フォント),
-図\ref{fig-pos-tate}(縦組用和文フォント)で説明する.
+これら3つのフィールドの意味については\autoref{fig:pos}(横組用和文フォント),
+\autoref{fig:pos-tate}(縦組用和文フォント)で説明する.
 %</ja>
 
 %<*en>
@@ -4174,7 +4161,7 @@ Furthermore, the glyph is shifted according to values of fields
 %<en>The position of the real glyph (horizontal Japanese fonts)
 %<ja>横組和文フォントにおける「実際の」グリフの位置
 }
-\label{fig-pos}
+\label{fig:pos}
 \end{figure}
 \begin{figure}[!tb]
 \begin{minipage}{0.4\textwidth}%
@@ -4255,74 +4242,165 @@ Furthermore, the glyph is shifted according to values of fields
 %<en>The position of the real glyph (vertical Japanese fonts)
 %<ja>縦組和文フォントにおける「実際の」グリフの位置
 }
-\label{fig-pos-tate}
+\label{fig:pos-tate}
 \end{figure}
 
-\item[kern={\{[$j$]=<kern>, [$j'$]=\{<kern>, [<ratio>]\}, ...\}}]
-
-\item[glue={\{[$j$]=\{<width>, <stretch>, <shrink>, [<priority>], [<ratio>]\}, ...\}}]\
+\item[kern={\{[$j$]=<kern>, [$j'$]=\{<kern>, [ratio=<ratio>]\}, ...\}}]
+\nopagebreak
+\item[glue={\{[$j$]=\{<width>, <stretch>, <shrink>, [ratio=<ratio>, ...]\}, ...\}}]\leavevmode
 %<*ja>
 
-文字クラス$i$の文字と$j$の文字の間に挿入されるkernやglueの量を指定する.
-
-             <priority>は \Pkg{luatexja-adjust} による優先順位付き
-            行長調整(\ref{ssec-adj}節)が有効なときのみ意味を持つ.
-このフィールドは省略可能であり,行調整処理におけるこのglueの優先
-             度を$-2$から$+2$の間の整数で指定する.大きい値ほど「伸びやすく,縮みやすい」
-             ことを意味する.省略時の値
-             は0であり,範囲外の値が指定されたときの動作は未定義である.
+文字クラス$i$の文字と$j$の文字の間に挿入されるカーンやグルーの量を指定する.
 
-<ratio>も省略可能フィールドであり,$-1$から$+1$の実数値をとる.省略時の値は0である.
-\begin{itemize}
-\item $-1$はこのグルーが「前の文字」由来であることを示す.
-\item $+1$はこのグルーが「後の文字」由来であることを示す.
-\item それ以外の値は,「前の文字」由来のグルーと「後の文字」由来の
-グルーが混合されていることを示す.
-\end{itemize}
-なお,このフィールドの値は\Param{differentjfm}の値が
+<ratio>は,グルーの自然長のうちどれだけの割合が「後の文字」由来かを示す量で,
+$0$から$+1$の実数値をとる.省略時の値は$0.5$である.
+このフィールドの値は\Param{differentjfm}の値が
 \texttt{pleft},~\texttt{pright},~\texttt{paverage}の値のときのみ実際に用いられる.
 
 例えば,\cite{x4051}では,句点と中点の間には,
 句点由来の二分空きと中点由来の四分空きが挿入されるが,この場合には
 \begin{itemize}
 \item <width>には$0.5+0.25=0.75$を指定する.
-\item <ratio>には次の値を指定する.
-\[
- -1\cdot \frac{0.5}{0.5+0.25} + 1 \cdot \frac{0.25}{0.5+0.25} = -\frac13
-\]
+\item <ratio>には$0.25/(0.5+0.25)=1/3$を指定する.
 \end{itemize}
 %</ja>
 %<*en>
 \
 
-Specifies the width of kern or glue which will be inserted
+Specifies the amount of kern or glue which will be inserted
 between characters in character class~$i$ and those in character class~$j$.
 
-<priority> is an integer in $[-2,2]$ (treated as 0 if omitted), and this is
-used only in line adjustment with priority by \Pkg{luatexja-adjust}
-(see Subsection~\ref{ssec-adj}). Higher value means the glue is easy to shretch,
-and is also easy to shrink.
-
-<ratio> is also an optional value between $-1$ and 1. For example,
+<ratio> specifies how much the glue is originated in the ``right'' character.
+It is a real number between 0 and 1, and treated as 0.5 if omitted. For example,
 The width of a glue between an ideographic full stop ``。''
 and a fullwidth middle dot ``・'' is three-fourth of fullwidth,
 namely halfwidth from the ideographic full stop, and
 quarter-width from the fullwidth middle dot.  In this case,
-we specify <ratio> to
-\[
-  -1\cdot \frac{0.5}{0.5+0.25} + 1 \cdot \frac{0.25}{0.5+0.25} = -\frac13.
-\]
+we specify <ratio> to $0.25/(0.5+0.25)=1/3$.
 %</en>
 
+%<*ja>
+グルーの指定においては,上記に加えて各 \texttt{[$j$]} の各サブテーブル内に
+次のキーを指定できる,
+\begin{cslist}[style=standard]
+\item[priority=<priority>]
+             \Pkg{luatexja-adjust}による優先順位付き
+            行長調整(\ref{ssec:adj}節)において,このグルーの優先度を指定する.許される値は以下の通り:
+  \begin{description}
+    \item[バージョン1] $-4$から$+3$の間の整数
+    \item[バージョン2以降] $-4$から$+3$の間の整数の2つ組\texttt{\{<stretch>, <shrink>\}}か,
+    または$-4$から$+3$の間の整数.<stretch>, <shrink>はそれぞれこのグルーが伸びるときの優先度,縮むときの
+    優先度であり,単に整数$i$が指定された場合は\texttt{\{$i$, $i$\}}であると解釈される.
+  \end{description}
+  ここで指定する値は,大きい値ほど「先に伸ばされる」「先に縮ませる」ことを意味しており,省略時の値
+             は0である.範囲外の値が指定されたときの動作は未定義である.
+\item[kanjiskip\_natural=<num>\textrm{, }%
+  kanjiskip\_stretch=<num>\textrm{, }kanjiskip\_shrink=<num>]\leavevmode
+  \label{pg:ksp_nat}
+
+JFMによって本来挿入されるグルーの他に
+\Param{kanjiskip}分の空白を自然長(\texttt{kanjiskip\_natural}),伸び量(\texttt{kanjiskip\_stretch}),
+縮み量(\texttt{kanjiskip\_shrink})ごとに挿入する\footnote{本来\Param{xkanjiskip}が挿入される場所においては
+            \Param{xkanjiskip}分の空白を自然長・伸び量・縮み量ごとに.追加できる.}%
+ための指定である.いずれも省略された場合のデフォルト値は0(追加しない)である.
+
+例えば,\LuaTeX-jaの横組標準JFMの \texttt{jfm-ujis.lua} では,
+\begin{itemize}
+ \item 通常の文字「あ」と開き括弧類の間に入るグルーは,自然長・縮み量半角,伸び量0のグルー
+となっているが,さらに\Param{kanjiskip}の伸び量に \texttt{kanjiskip\_stretch}(ここでは1)を掛け
+       た分だけ伸びることが許される.
+ \item 同様に,閉じ括弧類(全角コンマ「,」も含む)と通常の文字「う」「え」の間にも
+自然長・縮み量半角,伸び量0のグルー
+となっているが,さらに\Param{kanjiskip}の伸び量に \texttt{kanjiskip\_stretch}(ここでは1)を掛け
+       た分だけ伸びることが許される.
+\end{itemize}
+となっている.従って,以下のような組版結果を得る.
+
+\medskip
+\begin{LTXexample}[width=16\zw]
+\leavevmode
+\ltjsetparameter{kanjiskip=0pt plus 3\zw}
+\vrule\hbox to 15\zw{あ「い」う,えお}\vrule
+\end{LTXexample}
+
+\end{cslist}
+%</ja>
+%<*en>
+In case of glue, one can specify following additional keys in each \texttt{[$j$]}
+            subtable:
+\begin{cslist}[style=standard]
+\item[priority=<priority>]
+An integer in $[-4,3]$ (treated as 0 if omitted), or
+a pair of these integers \texttt{\{<stretch>, <shrink>\}} (version 2~or~later).
+This is
+used only in line adjustment with priority by \Pkg{luatexja-adjust}
+(see Subsection~\ref{ssec:adj}). Higher value means the glue is easy to stretch,
+and is also easy to shrink. 
+\item[kanjiskip\_natural=<num>\textrm{, }%
+  kanjiskip\_stretch=<num>\textrm{, }kanjiskip\_shrink=<num>]\leavevmode
+
+These keys specifies the amount of the natural width of \Param{kanjiskip}
+(the stretch/shrink part, respectively) which will be inserted
+in addition to the original JFM glue. Default values of them are all 0.
+
+As an example, in \texttt{jfm-ujis.lua}, the standard JFM in horizontal writing, we have
+\begin{itemize}
+ \item Between an ordinal letter ``あ'' and an ideographic opening bracket, we have
+a glue whose natural part and shrink part are both half-width, while its stretch part is
+       zero. However, this glue also can be stretched
+       as much as the stretch part of \Param{kanjiskip} times the value of
+       \texttt{kanjiskip\_stretch} key (1 in this case).
+ \item Between an ideographic closeing brackets (the ideographic comma ``,''
+       is included) and an ordinal letter, we have the same glue.
+       Again, this glue also can be stretched
+       as much as the stretch part of \Param{kanjiskip} times the value of
+       \texttt{kanjiskip\_stretch} key (1 in this case).
+\end{itemize}
+Hence we have the following result:
+
+\medskip
+\begin{LTXexample}[width=16\zw]
+\leavevmode
+\ltjsetparameter{kanjiskip=0pt plus 3\zw}
+\vrule\hbox to 15\zw{あ「い」う,えお}\vrule
+\end{LTXexample}
+
+\end{cslist}
+%</en>
 
 \item[end\_stretch=<kern>, end\_shrink=<kern>]
 %<*ja>
-(任意)
+ï¼\88ä»»æ\84\8fï¼\8cã\83\90ã\83¼ã\82¸ã\83§ã\83³1ã\81®ã\81¿ï¼\89
 
 優先順位付き行長調整が有効であり,かつ現在の文字クラスの文字が行
             末に来た時に,行長を詰める調整・伸ばす調整のた
              めにこの文字と行末の間に挿入可能なカーンの大きさを指定する.
 %</ja>
+%<*en>
+(optional, version~1 only)
+%</en>
+
+  \item[end\_adjust=\{<kern>, <kern>, ...\}]
+%<*ja>
+(任意,バージョン2のみ)
+
+優先順位付き行長調整が有効であり,かつ現在の文字クラスの文字が
+  行末に来た時に,この文字と行末の間には指定された値のいずれかの大きさのカーンが
+  挿入される(\autoref{ssec:adj}参照).
+
+バージョン1における
+\begin{lstlisting}[escapechar=\$]
+    end_stretch = $a$, end_shrink = $b$
+\end{lstlisting}
+という指定は,バージョン2では次の指定と同じになる.
+\begin{lstlisting}[escapechar=\$]
+    end_adjust = {$-b$, 0.0, $a$}
+\end{lstlisting}
+もし真ん中の \texttt{0.0} がない場合は,$a$か$-b$かいずれかのカーンが常に行末に追加される.
+%</ja>
+%<*en>
+(optional, version~2 only)
+%</en>
 
 \end{cslist}
 
@@ -4442,8 +4520,31 @@ The following is the list of imaginary characters:
 %<ja>通常の(\cs{noindent} で開始されていない)段落の先頭.
 
 \item['jcharbdd']
-%<en>A boundary between \textbf{JAchar} and anything else (such as \textbf{ALchar}, kern, glue,\,\ldots).
-%<ja>\textbf{JAchar}と「その他のもの」(欧文文字,glue,kern等)との境界.
+%<en>A boundary between \textbf{JAchar} and anything else.
+%<*ja>
+\textbf{JAchar}と「その他のもの」との境界.
+
+バージョン2以前では\textbf{ALchar},箱,罫線(rule),glue,~kernなどいろいろなものと\textbf{JAchar}の境界に対して
+本特殊文字が用いられていたが,
+バージョン3以降では\ \texttt{'jcharbdd'}, \texttt{'alchar'}, \texttt{'nox\_alchar'},
+\texttt{'glue'} と細分化され,
+\texttt{'jcharbdd'} は主に\textbf{JAchar}とボックスや罫線(rule)との境界に使われるようになった.
+%</ja>
+  
+\item['alchar', 'nox\_alchar']
+%<*en>
+(version 3~or~later) A boundary between \textbf{JAchar} and \textbf{ALchar}.
+%</en>
+%<*ja>
+(バージョン3以降)\textbf{JAchar}と\textbf{ALchar}との境界.
+\textbf{JAchar}と\textbf{ALchar}の間に\Param{xkanjiskip}が入ることが可能な場合は
+\ \texttt{'alchar'}\ が,そうでない場合は\ \texttt{'nox\_alchar'}\ が用いられる
+(この区別は\textbf{ALchar}側の\Param{alxspmode}の値によってのみ行われる).
+%</ja>
+
+\item['glue']
+%<en>(version 3~or~later) A boundary between \textbf{JAchar}, and, a glue or kern.
+%<ja>(バージョン3以降))\textbf{JAchar}とglue,kernとの境界.
 
 \item[$-1$]
 %<en>The left/right boundary of an inline math formula.
@@ -4509,9 +4610,9 @@ JFM側で一部の対処ができることにより,\Pkg{jsclasses}のよう
 %</ja>
 
 
-%<en>\subsection{Math Font Family}
+%<en>\subsection{Math font family}
 %<ja>\subsection{数式フォントファミリ}
-\label{ssec-math}
+\label{ssec:math}
 
 %<*en>
 \TeX\ handles fonts in math formulas by 16~font families\footnote{Omega,
@@ -4530,7 +4631,7 @@ an external package is needed to support this in plain \TeX\ and
 
 %<*en>
 \LuaTeX-ja's handling of Japanese fonts in math formulas is similar;
-Table~\ref{tab-math} shows counterparts to \TeX's primitives for math
+\autoref{tab-math} shows counterparts to \TeX's primitives for math
 font families. There is no relation between the value of
 \cs{fam} and that of \cs{jfam}; with appropriate settings,
 you can set both \cs{fam} and \cs{jfam} to the same value.
@@ -4540,7 +4641,7 @@ a \emph{horizontal} Japanese font.
 %</en>
 %<*ja>
 \LuaTeX-jaの数式中での和文フォントの扱いも同様である.
-表\ref{tab-math}は数式フォントファミリに対する \TeX のプリミティブと対応する
+\autoref{tab-math}は数式フォントファミリに対する \TeX のプリミティブと対応する
 ものを示している.\cs{fam} と \cs{jfam} の値の間には関係はなく,
 適切な設定の下では \cs{fam} と \cs{jfam} の両方に同じ値を設定することができる.
 \Param{jatextfont} 他の第2引数<jfont\_cs>は,\cs{jfont} で定義された
@@ -4666,16 +4767,9 @@ For $i\in\omega$, \texttt{char\_type[$i$]} is information of characters whose cl
   0&\text{\texttt{'left'} (default)}\\0.5&\text{\tt 'middle'}\\1&\text{\tt 'right'}
  \end{cases}
 \]
-\item For $j\in \omega$, \texttt{[$j$]} stores a kern or a glue which will be inserted
-between character class~$i$ and class~$j$.
-
-If a kern will be inserted, the value of this field is \texttt{[$j$]=\{false, <kern\_node>, <ratio>\}},
-where <kern\_node> is a node\footnote{%
- This version of \LuaTeX-ja uses ``direct access
-      model'' for accessing nodes, if possible. }.
-If a glue will be inserted, we have \texttt{[$j$]=\{false, <spec\_node>, <ratio>, <icflag>\}},
-where <spec\_node> is also a node, and $\text{<icflag>}=\textit{from\_jfm}+\text{<priority>}$.
 \end{itemize}
+For $i$,~$j\in \omega$, \texttt{char\_type[$i$][$j$]} stores a kern or a glue which will be inserted
+between character class~$i$ and class~$j$.
 \end{description}
 %</en>
 %<*ja>
@@ -4708,23 +4802,34 @@ JFMで指定されているそれぞれの値をスケーリングしたもの
  \end{cases}
 \]
 のいずれかの値をとる.
-\item $j\in \omega$に対して,\texttt{[$j$]} は文字クラス$i$の文字と$j$の文字の間に挿入されるkern
-      やglueを格納している.
-間に入るものがkernであれば,このフィールドの値は\
-\texttt{[$j$]=\{false, <kern\_node>, <ratio>\}} である.
-<kern\_node>はkernを表すノードそのものである\footnote{%
-本バージョンではノードのアクセス手法にdirect access
+\end{itemize}
+$i$,~$j\in \omega$に対して,\texttt{char\_type[$i$][$j$]} は
+文字クラス$i$の文字と$j$の文字の間に挿入されるグルーやカーンを格納している.
+\begin{itemize}
+  \item 間に入るものがカーンであれば,この値は\
+\texttt{[$j$]=\{[1]=<kern\_node>, ratio=<ratio>\}} であり,
+<kern\_node>はカーンを表すノードそのものである\footnote{%
+バージョン20150420.0以降ではノードのアクセス手法にdirect access
       modelを用いている.そのため,例えば\LuaTeX\ beta-0.78.2では,単なる自然数のようにし
       か見えないことに注意.
 }.
-glueであれば,\texttt{[$j$]=\{false, <spec\_node>, <ratio>, <icflag>\}} である.
-<spec\_node>はglueの長さを表すノードそのものであり,
-      $\text{<icflag>}=\textit{from\_jfm}+\text{<priority>}$である.
+  \item グルーであれば,この値は以下のキーを持つテーブルである.
+  \begin{description}
+    \item[\texttt{width}, \texttt{stretch}, \texttt{shrink}]
+    グルーのそれぞれ自然長,伸び量,縮み量をsp単位で表したもの.
+    \item[\texttt{priority}] バ(ージョン2以降の)JFMでの指定 \texttt{\{<stretch>,<shrink>\}} を
+    \[
+      (\text{<stretch>}+4)\cdot 8+\text{<shrink>}+4
+    \]
+    として0--63の整数にパックしたもの.
+    \item[\texttt{ratio}, \texttt{kanjiskip\_natural}, \texttt{kanjiskip\_stretch}, \texttt{kanjiskip\_shrink}]
+    JFM中の同名のフィールドの値がそのまま使われている.
+  \end{description}
 \end{itemize}
 \item[ascent\textrm{, }descent]
 ……
 \item[chars\_cbcache]
-……
+文字クラス決定の処理で.キャッシュとして使われる.
 \end{cslist}
 %</ja>
 
@@ -4801,7 +4906,7 @@ This callback is called when \LuaTeX-ja is trying to encapsule a
 その\textit{glyph\_node}をカプセル化しようとする際に呼び出される.
 %</ja>
 \begin{lstlisting}[numbers=left]
-function (<table> shift_info, <table> jfont_info, <number> char_class)
+function (<table> shift_info, <table> jfont_info, <table> char_type)
   return <table> new_shift_info
 end
 \end{lstlisting}
@@ -4840,7 +4945,7 @@ Then, the position of glyphs is shifted up by
 (和文OpenTypeフォントの標準値)
 \item 実フォント側の数値:$(\hbox{高さ})=28y$, $(\hbox{深さ})=5y$(和文TrueTypeフォントの標準値)
 \end{itemize}
\81¨ã\81ªã\81£ã\81¦ã\81\84ã\81\9fã\81¨ã\81\99ã\82\8bï¼\8eã\81\99ã\82\8bã\81¨ï¼\8cå®\9fé\9a\9bã\81®æ\96\87å­\97ã\81®å\87ºå\8a\9bä½\8dç½®ã\81¯ï¼\8c以ä¸\8bã\81®é\87\8fã\81 ã\81\91ä¸\8aã\81«ã\81\9cらされることとなる:
\81¨ã\81ªã\81£ã\81¦ã\81\84ã\81\9fã\81¨ã\81\99ã\82\8bï¼\8eã\81\99ã\82\8bã\81¨ï¼\8cå®\9fé\9a\9bã\81®æ\96\87å­\97ã\81®å\87ºå\8a\9bä½\8dç½®ã\81¯ï¼\8c以ä¸\8bã\81®é\87\8fã\81 ã\81\91ä¸\8aã\81«ã\81\9aらされることとなる:
 %</ja>
 \[
  \frac{88x}{88x+12x} (28y+5y) - 28y = \frac{26}{25}y= 1.04y.
@@ -4852,7 +4957,7 @@ Then, the position of glyphs is shifted up by
 %<en>\section{Parameters}
 %<ja>\section{パラメータ}
 \subsection{\cs{ltjsetparameter}}
-\label{ssec-param}
+\label{ssec:param}
 
 %<*en>
 As described before, \cs{ltjsetparameter} and \cs{ltjgetparameter} are
@@ -4901,11 +5006,11 @@ in \pTeX, and symbols beside each parameter has the following meaning:
 %</ja>
 \begin{itemize}
 %<*en>
-\item ``\ast'' : values at the end of a paragraph or a hbox are
+\item ``$\ast$'' : values at the end of a paragraph or a hbox are
 adopted in the whole paragraph or the whole hbox.
 %</en>
 %<*ja>
-\item ``\ast'':段落やhboxの終端での値がその段落/hbox全体で用いられる.
+\item ``$\ast$'':段落やhboxの終端での値がその段落/hbox全体で用いられる.
 %</ja>
 %<*en>
 \item ``\dagger'': assignments are always global.
@@ -4933,13 +5038,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>
 
@@ -5082,7 +5187,7 @@ 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}).
+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}]\
@@ -5098,7 +5203,7 @@ The default glue which inserted between a \textbf{JAchar} and an
 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}).
+the value which is specified in the JFM for current Japanese font (See Subsection~\ref{ssec:jfm-str}).
 %</en>
 
 
@@ -5127,7 +5232,7 @@ The default value is \texttt{paverage}. \dots
 %</en>
 %<*ja>
 デフォルト値は \texttt{paverage} である.
-各々の値による差異の詳細は\ref{ssec-cluster-wa}節の「『右空白』の算出」を参照してほしい.
+各々の値による差異の詳細は\ref{ssec:cluster-wa}節の「『右空白』の算出」を参照してほしい.
 %</ja>
 
 \item[\DParam{jacharrange}\,=<ranges>]
@@ -5153,7 +5258,7 @@ the behavior of this assignment is undefined.
 
 
 \subsection{\cs{ltjgetparameter}}
-\label{ssec-getpar}
+\label{ssec:getpar}
 %<*en>
 \cs{ltjgetparameter} is a control sequence for acquiring parameters. It
 always takes a parameter name as first argument.
@@ -5352,6 +5457,56 @@ The correct way is using a temporary register.
 
 \end{itemize}
 
+
+%<*en>
+\subsection{Alternative Commands to \cs{ltjsetparameter}}
+The basic method to set parameters of \LuaTeX-ja is to use
+\cs{ltjsetparameter}~or~\cs{ltjglobalsetparameter}.
+However, these commands are slow, because they parse a key-value list,
+so several alternative commands are used in \LuaTeX-ja.
+\emph{This subsection is not for general \LuaTeX-ja users.}
+
+\paragraph{Setting \Param{kanjiskip}~or~\Param{xkanjiskip}}
+In \Pkg{ltjsclasses}, every size-changing command such as \cs{Large}
+changes \cs{kanjiskip}~and~\cs{xkanjiskip}.
+But a simple implementation, as the code below, is slow since
+two key-value lists are parsed by \cs{ltjsetparameter}:
+\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}
+
+Hence, \LuaTeX-ja defines more primitive commands, namely \cs{ltj@setpar@global},
+\cs{ltjsetkanjiskip}, and~\cs{ltjsetxkanjiskip}. Here
+\begin{quote}
+  \lstinline+\ltj@setpar@global\ltjsetkanjiskip 10pt+
+\end{quote}
+and \lstinline+\ltjsetparameter{kanjiskip=10pt}+ has the same effect.
+The actual code of \Pkg{ltjsclasses} is shown below:
+\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}
+
+Note that using \cs{ltjsetkanjiskip}~or~\cs{ltjsetxkanjiskip} alone,
+that is, without executing \cs{ltj@setpar@global} in advance, is \emph{not} supported.
+%</en>
+
 %<*ja>
 \subsection{\cs{ltjsetparameter} の代替}
 原則として各種内部パラメータの設定には \cs{ltjsetparameter} もしくは
@@ -5360,7 +5515,7 @@ The correct way is using a temporary register.
 \LuaTeX-ja の内部ではより高速に実行できる別の形式を用いている.
 \emph{本節は一般利用者むけの内容ではない.}
 
-\paragraph{\Param{kanjiskip}, \Param{xkanjiskip} の設定}
+\paragraph{\Param{kanjiskip}, \Param{xkanjiskip}の設定}
 \pLaTeXe 新ドキュメントクラスでは,
 \begin{lstlisting}
 \def\@setfontsize#1#2#3{%
@@ -5453,7 +5608,7 @@ The correct way is using a temporary register.
 
 %<en>\section{Other Commands for plain \TeX\ and \LaTeXe}
 %<ja>\section{plainでも\LaTeX でも利用可能なその他の命令}
-%<en>\subsection{Commands for Compatibility with \pTeX}
+%<en>\subsection{Commands for compatibility with \pTeX}
 %<ja>\subsection{\pTeX 互換用命令}
 
 %<*en>
@@ -5466,7 +5621,7 @@ The last \cs{kansuji} converts an integer into its Chinese numerals.
 \pTeX と同じようにJIS~X~0208の範囲しかサポートしていない.
 %</ja>
 \begin{center}
-\cs{kuten}, \cs{jis}, \cs{euc}, \cs{sjis}, \cs{jis}, \cs{kansuji}
+\cs{kuten}, \cs{jis}, \cs{euc}, \cs{sjis}, \cs{ucs}, \cs{kansuji}
 \end{center}
 %<*en>
 These six commands takes an internal integer, and returns a \emph{string}.
@@ -5563,13 +5718,72 @@ With the help of this example, we remark the specification of \cs{inhibitglue}:
 \end{itemize}
 
 
+\subsection{\cs{ltjfakeboxbdd}, \cs{ltjfakeparbegin}}
+%<*en>
+Sometimes \texttt{'parbdd'}~and~\texttt{'boxbdd'} specifications~look like ``fail'',
+especially in paragraphs inside list environments.
+This is because \cs{everypar} inserts some nodes such as boxes and kerns, so
+the ``first letter'' in a paragraph is in fact not the first letter.
+%</en>
+%<*ja>
+リスト環境内での\cs{item}で始まる各項目などでは,
+「段落最初の鍵括弧が余計に半角字下げされる」など,
+JFMにある\texttt{'parbdd'}, \texttt{'boxbdd'}の指定が見かけ上破綻していることがある.
+
+これは\TeX が\cs{everypar}を用いて段落開始時に記号類や空白などを挿入してしまっているため,
+段落最初の鍵括弧が実際には段落最初のノードではないことに起因する.以下に例を示した.
+%</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:
+%</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}
+例えば,先ほどの例に対して適用すると,次のようになる.
+%</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}
+\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>}
+\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
@@ -5577,8 +5791,7 @@ Its meaning is
 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}
-
-<range> is a comma-separated list of character codes, but also accepts negative integers:
+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.
@@ -5602,7 +5815,7 @@ are typeset by \cs{piyo}.
 
 \cs{ltjdeclarealtfont} は以下の書式で使用する:
 \begin{quote}
-\ttfamily \textbackslash ltjdeclarealtfont<base\_font\_cs><alt\_font\_cs>{<range>}
+\ttfamily \textbackslash ltjdeclarealtfont<base\_font\_cs><alt\_font\_cs>\{<range>\}
 \end{quote}
 これは「現在の和文フォント」が<base\_font\_cs>であるとき,
 <range>に属する文字は<alt\_font\_cs>を用いて組版される,という意味である.
@@ -5630,26 +5843,47 @@ are typeset by \cs{piyo}.
 マクロの都合による.
 %</ja>
 
+%<*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}
+%</ja>
 
 %<en>\section{Commands for \LaTeXe}
 %<ja>\section{\LaTeXe 用の命令}
 
 %<en>\subsection{Patch for NFSS2}
 %<ja>\subsection{NFSS2へのパッチ}
-\label{ssec-nfsspat}
+\label{ssec:nfsspat}
 
 %<*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}.
+commands which are not described in Subsection~\ref{ssec:chgfnt}.
 %</en>
 %<*ja>
 \LuaTeX-jaのNFSS2への日本語パッチは
 \pLaTeXe で同様の役割を果たす \texttt{plfonts.dtx} をベースに,
 和文エンコーディングの管理等をLuaで書きなおしたものである.
-ここでは\ref{ssec-chgfnt}節で述べていなかった命令について
+ここでは\ref{ssec:chgfnt}節で述べていなかった命令について
 記述しておく.
 %</ja>
 
@@ -5776,17 +6010,16 @@ assignment, where \cs{DeclareRelationFont} does a global assignment.
 
 \item[\cs{userelfont}]
 %<*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.
+(Only)~at the next call of \cs{selectfont},
+  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}.
 %</en>
 %<*ja>
-現在の欧文フォントのエンコーディング/ファミリ/…… を,
+次回(のみ)の\cs{selectfont}の実行時に,現在の欧文フォントのエンコーディング/ファミリ/…… を,
 \cs{DeclareRelationFont} か \cs{SetRelationFont} で指定された
 現在の和文フォントに対応する「従属欧文」フォントに変更する.
-\cs{fontfamily} のように,有効にするためには \cs{selectfont} が必要である.
 %</ja>
 
 \item[\cs{adjustbaseline}]
@@ -5799,8 +6032,10 @@ to match the vertical center of ``M'' and that of ``あ''  in vertical typesetti
   + 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 same task, namely setting the
+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>
 \pLaTeXe では,\cs{adjustbaseline} は縦組時に「M」と「あ」の中心線を一致させるために,
@@ -5814,73 +6049,23 @@ In \LuaTeX-ja, this \cs{adjustbaseline} does same task, namely setting the
 \LuaTeX-jaにおいても\cs{adjustbaseline} は同様に\Param{talbaselineshift}パラメータの調整処
             理を行っている.
 
-同時に,これも\pLaTeXe の \cs{adjustbaseline} で行われていたが,
-「漢」の寸法を元に,(本節の最初に述べた,小文字で始まる)\cs{cht}, \cs{cwd} といった長さ変数を設定する.
+同時に,これも\pLaTeXe の \cs{adjustbaseline} で同様の処理が行われていたが,
+「漢」の寸法を元に(本節の最初に述べた,小文字で始まる)\cs{cht}, \cs{cwd}
+といった長さ変数を設定する.
+
+なお,\LaTeX が2015/10/01版以降の場合は,「あ」「漢」の代わりに
+「文字クラス0の和文文字」を用いる.
 %</ja>
 
 \item[\cs{fontfamily}\{<family>\}]
 %<*en>
 As in \LaTeXe, this command changes current font family (alphabetic, Japanese,~\emph{or both})
-to <family>. Which family will be changed is determined as follows:
+to <family>. See Subsection~\ref{ssec:fontfamilycmd} for detail.
 %</en>
 %<*ja>
 元々の\LaTeXe におけるものと同様に,このコマンドは現在のフォントファミリ(欧文,
-和文,\emph{もしくは両方})を<family>に変更する.
-どのファミリが変更されるかは以下のようにして決定される:
-%</ja>
-\begin{itemize}
-%<*en>
-\item Let current encoding scheme for Japanese fonts be
-      <ja-enc>. Current Japanese font family will be changed to
-      <family>, if one of the following two conditions is met:
-%</en>
-%<*ja>
-\item 現在の和文フォントに対するエンコーディングが<ja-enc>であるとしよう.
-  現在の和文フォントファミリは,以下の2つの条件のうちの1つが満たされているときに
-  <family>に変更される:
-%</ja>
-\begin{itemize}
-%<*en>
-\item The family <family> under the encoding <ja-enc> has been already defined by
-      \cs{DeclareKanijFamily}.
-%</en>
-%<*ja>
-\item エンコーディング<ja-enc>におけるファミリ<family>が
-既に \cs{DeclareKanjiFamily} によって定義されている.
-%</ja>
-%<*en>
-\item A font definition named \texttt{<ja-enc><family>.fd} (the file name is
-      all lowercase) exists.
-%</en>
-%<*ja>
-\item フォント定義ファイル\texttt{<ja-enc><family>.fd}(ファイル名は全て小文字)が存在する.
-%</ja>
-\end{itemize}
-%<*en>
-\item Let current encoding scheme for alphabetic fonts be
-      <al-enc>. For alphabetic font family, the criterion as above is used.
-%</en>
-%<*ja>
-\item 現在の欧文フォントに対するエンコーディングを<al-enc>とする.
-  欧文フォントファミリに対しても,上記の基準が用いられる.
-%</ja>
-%<*en>
-\item There is a case which none of the above applies, that is, the font
-      family named <family> doesn't seem to be defined neither under the
-      encoding <ja-enc>, nor under <al-enc>.
-In this case, the default family for font substitution is used for
-      alphabetic and Japanese fonts. Note that current encoding will not
-      be set to <family>, unlike the original implementation in \LaTeX.
-%</en>
-%<*ja>
-\item 上記のいずれもが適用されない,つまり<family>が<ja-enc>と<al-enc>の
-  どちらでも定義されないような場合がある.
-  この場合,代替フォントに用いられるデフォルトのフォントファミリが欧文フォントと
-  和文フォントに用いられる.\LaTeX のオリジナルの実装とは異なり,
-  現在のエンコーディングは<family>には設定されないことに注意する.
+和文,\emph{もしくは両方})を<family>に変更する.詳細は\ref{ssec:fontfamilycmd}節を参照すること.
 %</ja>
-\end{itemize}%
-%<en>\vspace{-\medskipamount}
 
 
 \begin{figure}[!tb]
@@ -5902,7 +6087,7 @@ In this case, the default family for font substitution is used for
 \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}節の\
+\ref{ssec:altfont}節の\
 \cs{ltjdeclarealtfont} と同様に,前半の4引数の
 和文フォント(基底フォント)のうち<range>中の文字を
 第5から第8引数の和文フォントを使って組むように指示する.
@@ -5922,12 +6107,12 @@ In this case, the default family for font substitution is used for
 \end{itemize}%
 %</ja>
 %<*en>
-As \cs{ltjdeclarealtfont}~(Subsection~\ref{ssec-altfont}),
+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 Figure~\ref{fig:altkanji}.
+An example is shown in \autoref{fig:altkanji}.
 
 \begin{itemize}
  \item
@@ -5957,91 +6142,323 @@ Avant Garde (OT1/pag/m/n) に変わっていることがわかる.
 \userelfont\selectfont あいうabc
 \end{LTXexample}
 
+%<en>\subsection{Detail of \cs{fontfamily} command}
+%<ja>\subsection{\cs{fontfamily}コマンドの詳細}
+\label{ssec:fontfamilycmd}
 %<*en>
-\section{Addons}
-\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}.
+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>
-\section{拡張}
-\LuaTeX-jaには(動作には必須ではないが)自由に読み込める拡張が付属している.
-これらは\LaTeX のパッケージとして制作しているが,
-\Pkg{luatexja-otf}と\Pkg{luatexja-adjust}についてはplain \LuaTeX でも\
-\cs{input} で読み込み可能である.
+本節では,\cs{fontfamily}<family> がいつ和文/欧文フォントファミリを変更するかについて解説
+する.基本的には,<family>が和文フォントファミリだと認識されれば和文側が,欧文フォントファ
+ミリだと認識されれば欧文側が変更される.どちらとも認識されれば和文・欧文の両方が変わるこ
+とになるし,当然どちらとも認識されないこともある.
+
+\paragraph{和文フォントファミリとしての認識}
+まず,<family>が和文フォントファミリとして認識されるかは以下の順序で決定される.
+これは\pLaTeXe の \cs{fontfamily} にとても似ているが,ここではLuaによって実装している.
+補助的に「和文フォントファミリではないと認識された」ファミリを格納したリスト$N_{\mathrm{J}}$を用いる.
 %</ja>
-\subsection{\texttt{luatexja-fontspec.sty}}
-\label{ssec-fontspec2}
+\begin{enumerate}
 %<*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:
+\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>
-\ref{ssec-fontspec}節で述べたように,この追加パッケージは\Pkg{fontspec}%
-パッケージで定義されているコマンドに対応する和文フォント用のコマンドを提供する.
-
-\Pkg{fontspec}パッケージで指定可能な各種font featureに加えて,和文版のコマンドには
-以下の``font feature''を指定することができる:
+\item ファミリ<family>が既に \cs{DeclareKanjiFamily} によって定義されている場合,
+      <family>は和文フォントファミリであると認識される.
+      ここで,<family>は現在の和文フォントエンコーディングで定義されていなくてもよい.
 %</ja>
-
-
-\begin{cslist}
-\item[CID=<name>\textrm{, }JFM=<name>\textrm{, }JFM-var=<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 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>
+\item ファミリ<family>がリスト$N_{\mathrm{J}}$に既に含まれていれば,それは
+      <family>が和文フォントファミリではないことを意味する.
+%</ja>
+%<*en>
+\item If the \Pkg{luatexja-fontspec} package is loaded, we stop here, and <family> is not
+      recognized as a Japanese font family.
 
-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.
+      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>
-これら3つのキーはそれぞれ \cs{jfont},~\cs{tfont}に対する
-\texttt{cid}, \texttt{jfm}, \texttt{jfmvar}キーとそれぞれ対応する.
-\texttt{cid}, \texttt{jfm}, \texttt{jfmvar}キーの詳細は\ref{ssec-jfont}節
-            と\ref{ssec-psft}節を参照.
+\item もし\Pkg{luatexja-fontspec}パッケージが読み込まれていれば,ここで終了であり,
+<family>は和文フォントファミリとして認識されないことになる.
+
+もし\Pkg{luatexja-fontspec}パッケージが読み込まれていなければ,和文エンコーディング<enc>で
+フォント定義ファイル\texttt{<enc><family>.fd}(ファイル名は全て小文字)が存在するようなも
+      のがあるかどうかを調べる.
+存在すれば,<family>は和文フォントファミリと認識される(フォント定義ファイルは読み込まれな
+      い).
+存在しなければ,<family>は和文フォントファミリでないと認識され,リスト$N_{\mathrm{J}}$に<family>を追加することでそれを記憶する.
 
-\texttt{CID} キーは下の \texttt{NoEmbed} と合わせて用いられたときのみ有効である.
-また,横組用JFMと縦組用JFMは共用できないため,実際に \texttt{JFM} キーを用いる際は
-後に述べる\ \texttt{YokoFeatures} キーや \texttt{TateFeatures}\ の中で用いる
-ことになる.
 %</ja>
+\end{enumerate}
 
-\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}.
+\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>
-これを指定することで,PDFに埋め込まれない「名前だけ」のフォントを指定することが
-できる.\ref{ssec-psft}節を参照.
+\paragraph{欧文フォントファミリとしての認識}
+同様に,<family>が和文フォントファミリとして認識されるかは以下の順序で決定される.
+補助的に「欧文フォントファミリと既に認識された」ファミリのリスト$F_{\textrm{A}}$と,
+「欧文フォントファミリではないと認識された」ファミリを格納したリスト$N_{\mathrm{A}}$を用いる.
 %</ja>
 
-\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{enumerate}
+%<*en>
+\item If the family~<family> has been listed in a list~$F_{\mathrm{A}}$,
+      <family> is recognized as an alphabetic font family.
+%</en>
+%<*ja>
+\item ファミリ<family>がリスト$F_{\mathrm{A}}$に既に含まれていれば,
+      <family>は欧文フォントファミリと認識される.
+%</ja>
+%<*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.
+%</en>
+%<*ja>
+\item ファミリ<family>がリスト$N_{\mathrm{A}}$に既に含まれていれば,それは
+      <family>が欧文フォントファミリではないことを意味する.
+%</ja>
+%<*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>
+\item ある欧文フォントエンコーディング下でファミリ<family>が定義されていれば,
+      <family>は欧文フォントファミリと認識され,リスト$F_{\mathrm{A}}$に<family>を追加することでこのことを記憶する.
+%</ja>
+%<*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}}$.
+%</en>
+%<*ja>
+\item 最終段階では,欧文エンコーディング<enc>で
+フォント定義ファイル\texttt{<enc><family>.fd}(ファイル名は全て小文字)が存在するようなも
+      のがあるかどうかを調べる.
+存在すれば,<family>は欧文フォントファミリと認識される(フォント定義ファイルは読み込まれない).
+存在しなければ,<family>は欧文フォントファミリと認識されないので,リスト$N_{\mathrm{A}}$に
+      <family>を追加してそのことを記憶する.
+%</ja>
+\end{enumerate}
+
+%<*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>
+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>
+以上の方針は\pLaTeXe における \cs{fontfamily} にやはり類似しているが,3.が加わり若干複雑になっている.
+それは\pLaTeXe がフォーマットであるのに対し\LuaTeX-jaはそうでないため,
+\LuaTeX-jaは自身が読み込まれる前にどういう\cs{DeclareFontFamily}の呼び出しがあったか
+把握できないからである.
+%</ja>
+
+%<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.
+%</en>
+%<*ja>
+さて,引数によっては,「和文フォントファミリとも欧文フォントファミリも認識されなかった」
+という事態もあり得る.
+  この場合,引数<family>は不正だった,ということになるので,
+和文・欧文の両方のフォントファミリを<family>に設定し,代用フォントが使われるに任せることにする.
+%</ja>
+
+%<*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}を再読込している.
+
+従来は \cs{DeclareTextSymbol} で内部的に定義された\cs{T1\cs{textquotedblleft}}といった命令は
+\textit{chardef}トークンであった.しかし前段落で述べた改変によりもはやそうではなくなっており,例えば
+\cs{TU\cs{textquotedblleft}}は \cs{ltjalchar8220\ltjalchar"2423 } という定義になっている.%"
+%</ja>
+
+\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>
+\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>
+\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>
+
+%<*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} で読み込み可能である.
+%</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>
+
+
+\begin{cslist}
+\item[CID=<name>\textrm{, }JFM=<name>\textrm{, }JFM-var=<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.
+
+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>
+これら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>
+
+\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}
+
+\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>
@@ -6049,22 +6466,22 @@ The \texttt{TateFeatures} key specifies font features which are only turned~on i
 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 Figure~\ref{fig:yokotate-fontspec}.
+A demonstrarion is shown in \autoref{fig:yokotate-fontspec}.
 %</en>
 %<*ja>
-縦組において使用されるフォントや,縦組においてのみ適用されるfeature達を
-指定する.使用例は図\ref{fig:yokotate-fontspec}参照.
+縦組において使用されるフォントや,縦組においてのみ適用されるフォント機能達を
+指定する.使用例は\autoref{fig:yokotate-fontspec}参照.
 %</ja>
 
 \item[YokoFeatures=\{<features>\}]
 %<*en>
 The \texttt{YokoFeatures} key specifies font features which are only turned~on in
 horizontal writing,.
-A demonstrarion is shown in Figure~\ref{fig:yokotate-fontspec}.
+A demonstrarion is shown in \autoref{fig:yokotate-fontspec}.
 %</en>
 %<*ja>
-同様に,横組においてのみ適用されるfeature達を
-指定する.使用例は図\ref{fig:yokotate-fontspec}参照.
+同様に,横組においてのみ適用されるフォント機能達を
+指定する.使用例は\autoref{fig:yokotate-fontspec}参照.
 %</ja>
 
 
@@ -6088,17 +6505,17 @@ A demonstrarion is shown in Figure~\ref{fig:yokotate-fontspec}.
 \item[AltFont]
 
 %<*en>
-As \cs{ltjdeclarealtfont}~(Subsection~\ref{ssec-altfont}) and
-\cs{DeclareAlternateKanjiFont}~(Subsection~\ref{ssec-nfsspat}),
+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} と同様に,
-このキーを用いると一部の文字を異なったフォントやfont featureを使って組むことができる.
+\ref{ssec:altfont}節の \cs{ltjdeclarealtfont} や,
+\ref{ssec:nfsspat}節の \cs{DeclareAlternateKanjiFont} と同様に,
+このキーを用いると一部の文字を異なったフォントや機能たちを使って組むことができる.
 \texttt{AltFont} キーに指定する値は,次のように二重のコンマ区切りリストである:
 %</ja>
 \begin{lstlisting}[escapechar=\#]
@@ -6113,11 +6530,11 @@ AltFont = {
 %<*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 Figure~\ref{fig:altkanji-fontspec}.
+A demonstrarion is shown in \autoref{fig:altkanji-fontspec}.
 %</en>
 %<*ja>
 各部分リストには \texttt{Range} キーが必須である(含まれない部分リストは
-単純に無視される).指定例は図\ref{fig:altkanji-fontspec}に示した.
+単純に無視される).指定例は\autoref{fig:altkanji-fontspec}に示した.
 %</ja>
 \end{cslist}
 
@@ -6129,6 +6546,7 @@ A demonstrarion is shown in Figure~\ref{fig:altkanji-fontspec}.
 
 %<*en>
 \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,
@@ -6154,7 +6572,7 @@ one can specify \texttt{AltFont} inside \texttt{YokoFeatures},~\texttt{TateFeatu
 
 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~Figure~\ref{fig:yokotate-fontspec}
+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>
@@ -6186,35 +6604,43 @@ BoldFeatures = {
 指定することは可能であり.また\ \texttt{YokoFeatures},~\texttt{TateFeatures} キーの
 中身に \texttt{AltFont} を指定することができる.
 
-また,図\ref{fig:yokotate-fontspec}後半部では6行目の色の指定が効かず,
+また,\autoref{fig:yokotate-fontspec}後半部では6行目の色の指定が効かず,
 2行目で指定した\ \texttt{YokoFeatures},~\texttt{TateFeatures}\ による色の指定が有効になっ
-たままである.これは\emph{\ \texttt{YokoFeatures},~\texttt{TateFeatures}\ によるfeature指定は
-組方向に依存しないfeature指定より後に解釈される}からである.
+たままである.これは\emph{\ \texttt{YokoFeatures},~\texttt{TateFeatures}\ による
+OpenType機能指定は
+組方向に依存しないOpenType機能の指定より後に解釈される}からである.
 
 %</ja>
 
 
-\subsection{\texttt{luatexja-otf.sty}}
-\label{ssec-ltjotf}
+\subsection{\Pkg{luatexja-otf}}
+\label{ssec:ltjotf}
 %<*en>
-This optional package supports typesetting characters in
-Adobe-Japan1 character collection
-(or other CID character collection, if the font is supported).
+This optional package supports typesetting glyphs
+by specifying a CID number.
 The package \Pkg{luatexja-otf} offers the following 2~low-level
 commands:
 %</en>
 %<*ja>
-この追加パッケージはAdobe-Japan1(フォント自身が持っていれば,
-別のCID文字セットでも可)の文字の出力をサポートする.
+この追加パッケージはCID番号による文字の出力をサポートする.
 \Pkg{luatexja-otf}は以下の2つの低レベルコマンドを提供する:
 %</ja>
 \begin{cslist}
 \item[\cs{CID}\{<number>\}]
 %<*en>
-Typeset a character whose CID number is <number>.
+Typeset a glyph whose CID number is <number>.
+If the Japanese font is neither Adobe-Japan1,~Adobe-GB1, Adobe-CNS1,~nor~Adobe-Korea1 CID-keyed font,
+\LuaTeX-ja treats that <number> is a CID number of Adobe-Japan1 character collection,
+and tries to typeset a ``most suitable glyph''.
 %</en>
 %<*ja>
 CID番号が<number>の文字を出力する.
+もし現在の和文フォントがAdobe-Japan1,~Adobe-GB1, Adobe-CNS1,~Adobe-Korea1の
+  いずれのCID-keyed fontでもない場合,<number>はAdobe-Japan1のCID番号であると解釈し
+  「適切なグリフ」\footnote{%
+  例えばフォントにIVDコレクションAdobe-Japan1が含まれていれば,その情報を用いて
+  グリフを選択する.
+}を出力する.
 %</ja>
 
 \item[\cs{UTF}\{<hex\_number>\}]
@@ -6267,7 +6693,7 @@ ordinary characters in the following points:
       is not performed to these characters.
 %</en>
 %<*ja>
-\item OpenType feature(例えばグリフ置換やカーニング)をサポートするための
+\item OpenType機能(例えばグリフ置換やカーニング)をサポートするための
   \Pkg{luaotfload}パッケージのコードはこれらの文字には働かない.
 %</ja>
 \end{itemize}
@@ -6293,84 +6719,8 @@ JFMの\texttt{chars}テーブルのエントリとして \verb+'AJ1-xxx'+ の形
 正しく半角幅で組むために利用されている.
 %</ja>
 
-%<*en>
-\paragraph{IVS support}
-Recent fonts support Ideographic Variation Selector (IVS).
-It seems that \Pkg{luaotfload} and \Pkg{fontspec} packages do not support
-IVS, so we implemented IVS support in \Pkg{luatexja-otf}.
-\emph{IVS support is experimental; if you want to enable this, load
-\Pkg{luatexja-otf} and execute the following:}
-%</en>
-%<*ja>
-\paragraph{IVSサポート}
-最近のOpenTypeフォントやTrueTypeフォントには,
-\texttt{U+E0100}--\texttt{U+E01EF}の範囲の「文字」
-(漢字用異体字セレクタ)を後置することによって
-字形を指定する仕組み(IVS)が含まれている.
-執筆時点の2013年12月では,\Pkg{luaotfload}や\Pkg{fontspec}パッケージ類は
-IVSに対応してはいないようである.これらのパッケージで対応してくれるのが理想的だが,
-それまでのつなぎとして,\Pkg{luatexja-otf}パッケージ内にIVS対応を仕込んでおいた.
-
-\medskip
-
-\emph{IVS対応は試験的なものである.
-有効にするには,\Pkg{luatexja-otf}パッケージを読み込んだ上で以下の命令を実行する%
-\footnote{この命令を2回以上実行しても意味がない.}:}
-%</ja>
-\begin{lstlisting}
-\directlua{luatexja.otf.enable_ivs()}
-\end{lstlisting}
-%<ja> すると,上の命令を実行した箇所以降では,以下のようにIVSによる字形指定が有効となる.
-%<en> After executing the command above, you can use IVS like the following:
-\begin{LTXexample}
-\Large
-\jfontspec{KozMinPr6N-Regular}
-奈良県葛󠄀城市と,東京都葛󠄁飾区.\\
-こんにちは,渡
-邉󠄀邉󠄁邉󠄂邉󠄃邉󠄄
-邉󠄅邉󠄆邉󠄇邉󠄈邉󠄉
-邉󠄊邉󠄋邉󠄌邉󠄍邉󠄎
-さん.
-\end{LTXexample}
-%<*ja>
-左上側の入力においては,漢字用異体字セレクタを明示するため,
-例えばVariation~Selector~18 (\texttt{U+E0101})を\IVSB{18}のように表記している.
-%</ja>
-\medskip
-
-%<*en>
-Specifying glyph variants by IVS precedes glyph replacement by font features.
-For example, only ``葛'' in ``葛西'' is changed by font features
-\texttt{jp78}~or~\texttt{jp90}, which does not followed by any variation selector.
-%</en>
-%<*ja>
-また,IVSによる字形指定は,font featureによるそれに優先されることとした.
-下の例において,\texttt{jp78}, \texttt{jp90} 指定で字形が変化した文字は
-異体字セレクタが続いていない「葛西」中の「葛」のみである.
-%</ja>
-\begin{LTXexample}
- \def\TEST#1{%
-   {\jfontspec[#1]{KozMinPr6N-Regular}%
-   葛󠄀城市,葛󠄁飾区,葛西}\\}
- 指定なし:\TEST{}
- \texttt{jp78}:\TEST{CJKShape=JIS1978}
- \texttt{jp90}:\TEST{CJKShape=JIS1990}
-\end{LTXexample}
-
-%<*ja>
-現状では,\TeX 側のインターフェースとなる \Pkg{luatexja-otf.sty} は一切変更していない
-ので,ZRさんによる\Pkg{PXipamjm}パッケージ%
-\footnote{\url{https://github.com/zr-tex8r/PXipamjm}. 説明は彼のブログ記事
-「pxipamjm パッケージの説明書のような何か(\url{http://d.hatena.ne.jp/zrbabbler/20131221})」
-にある.}
-にあるような気の利いた命令はまだない.
-異体字の一覧表示を行いたい場合は,gitリポジトリ内の \texttt{test/test19-ivs.tex} 中にある
-Lua・\TeX コードが参考になるだろう.
-%</ja>
-
-
-\subsection{\texttt{luatexja-adjust.sty}}
-\label{ssec-adj}
+\subsection{\Pkg{luatexja-adjust}}
+\label{ssec:adj}
 \begin{figure}[t]
 \def\sq{%
   \hbox to 1\zw{\hss\fboxsep=-.5\fboxrule\fbox{%
@@ -6406,8 +6756,8 @@ with priority&%
 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}
+%<ja>\caption{行長調整}\label{fig:adj}
+%<en>\caption{Line adjustment}\label{fig:adj}
 \end{figure}
 
 
@@ -6415,41 +6765,109 @@ for making the difference obvious.
 (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+\。+ で書くことが必要だった.
+
+\Pkg{luatexja-adjust}パッケージは,上で述べた行末文字と実際の行末との位置関係を
+2通り以上から自動的に選択する機能を提供する.
+\pdfTeX と同じように,「\TeX による行分割の後で行末文字の位置を補正する」方法と
+  「行分割の過程で行末文字の位置を考慮に入れる」方法を選べるようにした(
+\Pkg{luatexja-adjust}パッケージの既定では前者).
+  
+\item[優先順位付きの行長調整]
 \pTeX では,行長調整において優先度の概念が存在しなかったため,図
-\ref{fig-adj}上段における半角分の半端は,図\ref{fig-adj}中段のように,鍵
+\ref{fig:adj}上段における半角分の半端は,\autoref{fig:adj}中段のように,鍵
 括弧周辺の空白と和文間空白(\Param{kanjiskip})の両方によって負担される.し
 かし,「日本語組版処理の要件」\cite{jlreq}やJIS~X~4051~\cite{x4051}におい
 ては,このような状況では半端は鍵括弧周辺の空白のみで負担し,その他の和文
-文字はベタ組で組まれる(図\ref{fig-adj}下段)ことになっている.この追加
-パッケージは\cite{jlreq}や\cite{x4051}における規定のような,優先順位付き
-の行長調整を提供する.詳細な仕様については\ref{sec-adjspec}章を参照してほしい.
+文字はベタ組で組まれる(\autoref{fig:adj}下段)ことになっている.
+\Pkg{luatexja-adjust}パッケージの提供する第2の機能は,
+\cite{jlreq}や\cite{x4051}における規定のような,優先順位付き
+の行長調整である.
 \begin{itemize}
  \item 優先度付き行長調整は,段落を行分割した後に個々の行について行われるものである.
 そのため,行分割の位置は変化することはない.
 
-また,\verb+\hbox to ... {...}+ のような「幅が指定されたhbox」では無効である.
+\verb+\hbox{...}+ といった「途中で改行できない水平ボックス」では(たとえ幅が指定されていても)無効である.
  \item 優先度付き行長調整を行うと,和文処理グルーの自然長は変化しないが,伸び量や縮み量は
 一般に変化する.そのため,既に組まれた段落を \cs{unhbox} などを利用して組み直す処理を
 行う場合には注意が必要である.
 \end{itemize}
+\end{description}
 
-
-\Pkg{luatexja-adjust} は,以下の命令を提供する.これらはすべてグローバルに効力を発揮する.
+\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}
 
-\item[\cs{ltjenableadjust}]
-優先順位付きの行長調整を有効化する.
+また,優先順位付きの行長調整のために,次の2パラメータが\cs{ltjsetparameter}内で
+追加される.両パラメータともグローバルに効力を発揮する.
+\begin{cslist}[style=standard]
+\item[\DParam{stretch\_priority}\,=\{<list>\}]
+\Param{kanjiskip}, \Param{xkanjiskip},および「\textbf{JAglue}以外のグルー」を,
+「行を自然長より伸ばす」場合の調整に用いる優先度を指定する.
 
-\item[\textsf{adjust}\,=<bool>] \cs{ltjsetparameter} で指定可能な追加パラメータであり,
-<bool>が\textit{true}なら \cs{ltjenableadjust} を,
-そうでなければ \cs{ltjdisableadjust} を実行する.
+指定方法は,<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{\texttt{luatexja-ruby.sty}}
+\subsection{\Pkg{luatexja-ruby}}
 %<*en>
 This addon package provides functionality of ``ruby'' (\emph{furigana}) annotations
 using callbacks of \LuaTeX-ja.
@@ -6490,210 +6908,1028 @@ its base characters.
 %<ja> この例のように,標準では前後の平仮名にルビ全角までかかるようになっている.
 
 %<*en>
-\item[Mono-ruby]
-To attach ruby characters to each base characters (\emph{mono-ruby}),
-one should use \cs{ruby} multiple times:
+\item[Mono-ruby]
+To attach ruby characters to each base characters (\emph{mono-ruby}),
+one should use \cs{ruby} multiple times:
+%</en>
+%<*ja>
+ \item[モノルビ] 親文字を1文字にするとモノルビとなる.
+2文字以上の熟語をモノルビの形で組みたい場合は,面倒でも
+その数だけ \cs{ruby} を書く必要がある.
+%</ja>
+\begin{LTXexample}[width=0.3\textwidth]
+東西線の\ruby{妙}{みよう}\ruby{典}{でん}駅は……
+\end{LTXexample}
+
+%<*en>
+ \item[Jukugo-ruby]
+Vertical bar~\verb+|+ denotes a boundary of \emph{groups}.
+%</en>
+%<*ja>
+ \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>
+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>
+また,ルビ文字のほうが親文字よりも長い場合は,自動的に
+行頭形・行中形・行末形のいずれか適切なものを選択する.
+%</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} パッケージと同様に)
+周囲の組方向が縦組のときにしか意味を持たない
+  \footnote{%
+    周囲の組方向が縦組以外のときは,\texttt{<z>} を指定しても中身の組方向は周囲の組方向と変わらない.
+  }%
+のに対し,\texttt{<u>} にはそのような制限がないことである.
+ \item 連数字用命令 \cs{rensuji} における位置合わせオプション \texttt{[l]}, \texttt{[c]},
+       \texttt{[r]} の挙動を若干変更した.
+\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.
+%</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つであり,
+それ以外を指定した時や無指定時は周囲の組方向と同じ組方向になる.
+\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} 命令も同様に,組方向の指定ができるように拡張されている.
+
+\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 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}]
+
+\item[\cs{Kanji}\{<counter\_name>\}]
+
+\item[\cs{kasen}\{<contents>\}\textrm{, }\cs{bou}\{<contents>\}\textrm{,
+                    }\cs{boutenchar}]
+
+\item[参照番号]
+\end{cslist}
+%</en>
+
+%<*ja>
+\paragraph{表組他の揃え位置}
+表組(\texttt{array}, \texttt{tabular}環境),\cs{parbox}命令,\cs{minipage}環境の
+揃え位置については\autoref{tab:lltjext_dir}を参照.\pLaTeX~2017-07-29と
+できるだけ同じ挙動になるようにしている.\autoref{tab:lltjext_dir}中のA--Dの意味は次の通り.
+
+\begin{table}
+  \caption{\Pkg{lltjext}パッケージにおける表組・\cs{parbox}命令他の揃え位置}
+  \label{tab:lltjext_dir}
+  {\centering
+    \begin{tabular}{lcccc}
+      \toprule
+      ↓中身\周囲→&\cs{yoko}&\cs{tate}&\cs{utod}&\cs{dtou}\\
+      \midrule
+      \cs{yoko}&A&B&B&B\\
+      \cs{tate}&B&A&D&C\\
+      \cs{utod}&B&D&A&C\\
+      \cs{dtou}&B&C&C&A\\
+      \bottomrule
+    \end{tabular}\par}
+\end{table}
+
+\begin{description}
+ \item[A] 周囲の組方向と中身の組方向が同じ場合.
+  \begin{itemize}
+   \item \texttt{[t]}指定のとき:
+    中身の先頭行のベースラインが周囲のベースラインと一致する.
+    表組で先頭行の上に罫線があった場合は,それがベースラインの位置
+    \footnote{\LuaTeX-jaでは和文側のベースラインの位置も上下移動できることに注意.
+      そのため「和文ベースライン」の位置に来るとは限らない.}となる.
+   \item \texttt{[c]}指定のとき:
+    中身の上下の中心が周囲の数式の軸を通る.
+   \item \texttt{[b]}指定のとき:
+    中身の最終行のベースラインが周囲のベースラインと一致する.
+    表組で最終行の下に罫線があった場合は,それがベースラインの位置となる.
+  \end{itemize}
+ \item[B] 周囲の組方向と中身の組方向が90度ずれている場合.
+  \begin{itemize}
+   \item \texttt{[t]}指定のとき:
+    表組においては,上端が周囲のベースラインと一致する.
+    \cs{parbox}や\cs{minipage}環境においては,上端が周囲の和文文字の上端と一致する.
+   \item \texttt{[c]}指定のとき:
+    中身の上下の中心が周囲の数式の軸を通る.
+   \item \texttt{[b]}指定のとき:
+    表組においては,下端が周囲のベースラインと一致する.
+    \cs{parbox}や\cs{minipage}環境においては,下端が周囲の和文文字の下端と一致する.
+  \end{itemize}
+ \item[C] 周囲の組方向と中身の組方向が180度ずれている場合.
+  \cs{parbox}や\cs{minipage}環境においては,上のBの場合と同じ挙動である.表組においては,
+  Aで\texttt{[t]}と\texttt{[b]}を入れ替えた
+  \begin{itemize}
+   \item \texttt{[t]}指定のとき:
+    中身の最終行のベースラインが周囲のベースラインと一致する.
+    最終行の下に罫線があった場合は,それがベースラインの位置となる.
+   \item \texttt{[c]}指定のとき:
+    中身の上下の中心が周囲の数式の軸を通る.
+   \item \texttt{[b]}指定のとき:
+    中身の先頭行のベースラインが周囲のベースラインと一致する.
+    表組で先頭行の上に罫線があった場合は,それがベースラインの位置となる.
+  \end{itemize}
+ \item[D] 通常の縦組(\cs{tate})と「縦数式ディレクション」に相当する\cs{utod}方向が絡んだ場合.
+  \cs{parbox}や\cs{minipage}環境においては,上のBの場合と同じ挙動である.表組においては,
+  \begin{itemize}
+   \item \texttt{[t]}指定のとき:
+    中身の先頭行の欧文ベースラインが周囲の欧文ベースラインと一致する.
+   \item \texttt{[c]}指定のとき:
+    中身の上下の中心が周囲の数式の軸を通る.
+   \item \texttt{[b]}指定のとき:
+    中身の最終行の欧文ベースラインが周囲の欧文ベースラインと一致する.
+  \end{itemize}
+\end{description}
+%</ja>
+
+\subsection{\Pkg{luatexja-preset}}
+\label{ssec:preset}
+
+%<*en>
+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.
+
+Options which are given in \cs{usepackage} but not described in this~subsection
+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:preset-abst}節で述べたように,よく使われている和文フォント設定を一行で指定できるようにしたのが
+\Pkg{luatexja-preset}パッケージである.このパッケージは,
+\Pkg{otf}パッケージの一部(多書体化)と八登崇之氏による\Pkg{PXchfon}パッケージの一部(プリセット指定)
+とを合わせたような格好をしている.
+
+パッケージ読み込み時に渡されたオプションのうち,
+本節にないものを指定した場合,それらはそのまま
+\Pkg{luatexja-fontspec}パッケージに渡される\footnote{\texttt{nfssonly} オプションが
+指定されていた場合は,\Pkg{luatexja-fontspec}パッケージは読み込まれないので単純に無視され
+る.}.例えば,下の1--3行目は5行目のように一行にまとめることができる.
+%</ja>
+\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}
+
+%<en>\subsubsection{General Options}
+%<ja>\subsubsection{一般的なオプション}
+\label{sssec:ltjpreset-general}
+
+\begin{cslist}[before*=]
+\item[fontspec%
+%<en>\textrm{~(enabled by default)}
+%<ja>\emph{\gtfamily (既定)}
+]
+%<*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.
+
+If you need to pass some options to \Pkg{fontspec}, you can load \Pkg{fontspec} manually
+before \Pkg{luatexja-preset}:
+%</en>
+%<*ja>
+\Pkg{luatexja-fontspec}パッケージの機能を用いて和文フォントを選択する.
+これは,\Pkg{fontspec}パッケージが自動で読み込まれることを意味する.
+
+もし\Pkg{fontspec}パッケージに何らかのオプションを渡す必要がある
+\footnote{例えば,数式フォントまで置換されてしまい,\cs{mathit}によってギリシャ文字の
+斜体大文字が出なくなる,など.}場合は,
+次のように\Pkg{luatexja-preset}の前に\Pkg{fontspec}を手動で読みこめば良い:
+%</ja>
+\begin{lstlisting}
+\usepackage[no-math]{fontspec}
+\usepackage[...]{luatexja-preset}
+\end{lstlisting}
+
+\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.
+
+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}
+\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}
+\usepackage{fontspec}
+\usepackage[hiragino-pron,nfssonly]{luatexja-preset}
+\end{lstlisting}
+のようにすれば,このオプションを指定すれば
+欧文フォントを\Pkg{fontspec}パッケージの機能を使って指定することができる.
+一方,
+パッケージ読み込み時に既に\Pkg{luatexja-fontspec}パッケージが読み込まれて
+            いる場合は \texttt{nfssonly} オプションは無視される.
+%</ja>
+
+\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>
+
+
+\item[nodeluxe%
+%<en>\textrm{~(enabled by default)}
+%<ja>\emph{\gtfamily (既定)}
+]
+%<*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.
+%</en>
+%<*ja>
+\texttt{deluxe}オプションの否定.
+\LaTeXe 環境下の標準設定のように,明朝体・ゴシック体を各1ウェイトで使用する.
+より具体的に言うと,この設定の下では
+\ \verb+\mcfamily\bfseries+, \verb+\gtfamily\bfseries+,
+\verb+\gtfamily\mdseries+はみな同じフォントとなる.
+%</ja>
+\item[deluxe]
+%<*en>
+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>
+明朝体・ゴシック体各3ウェイトと,
+丸ゴシック体 (\cs{mgfamily}, \verb+\textmg{...}+) を利用可能にする.
+明朝体は細字・中字・太字の3ウェイトがあり,
+明朝体の細字は \cs{mcfamily}\cs{ltseries} で利用できる.
+また,ゴシック体は中字・太字・極太の3ウェイトがあり,
+ゴシック体の極太は \cs{gtfamily}\cs{ebseries} で利用できる%
+\footnote{過去との互換性のため,\cs{gtebfamily}, \cs{textgteb\{...\}} も
+ 依然として利用可能である.}.
+
+\begin{itemize}
+  \item プリセット設定によっては明朝体細字が用意されていないものもある.その場合は
+  明朝体中字が代用される.
+  \item 明朝体細字,ゴシック体極太,丸ゴシック体の3フォントについては
+  実際にフォントをロードする前に存在するかチェックを行う.
+  存在しなかったものについては警告を発し,
+  それぞれ明朝体中字.ゴシック体太字,ゴシック体太字で代用する.
+\end{itemize}
+%</ja>
+\item[expert]
+%<*en>
+Use horizontal/vertical kana alternates, and define a command \cs{rubyfamily} to use kana
+characters designed for ruby.
+%</en>
+%<*ja>
+横組・縦組専用仮名を用いる.また,\cs{rubyfamily} でルビ用仮名が使用可能となる\footnote{%
+  \cs{rubyfamily}とはいいつつ,実際にはフォントファミリを切り替えるのではない(通常では
+  font featureの追加,\texttt{nfssonly} 指定時にはシェイプを \texttt{rb} に切り替え).
+}.
+%</ja>
+\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{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>
+Use the JFM \texttt{jfm-<jfm>.lua} for horizontal direction, instead of \texttt{jfm-ujis.lua}~(default JFM).
+%</en>
+%<*ja>
+横組用和文フォントで用いるJFMを\texttt{jfm-<jfm>.lua}にする.このオプションがない時は
+\LuaTeX\nobreakdash -ja標準の\texttt{jfm-ujis.lua}が用いられる.
+%</ja>
+\item[jfm\_tate=<jfm>]
+%<*en>
+Use the JFM \texttt{jfm-<jfm>.lua} for vertical direction, instead of \texttt{jfm-ujisv.lua}~(default JFM).
+%</en>
+%<*ja>
+縦用和文フォントで用いるJFMを\texttt{jfm-<jfm>.lua}にする.このオプションがない時は
+\LuaTeX-ja標準の\texttt{jfm-ujisv.lua}が用いられる.
+%</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 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>
+\texttt{90jis}と\texttt{jis2004}については本パッケージで定義された
+明朝体・ゴシック体(・丸ゴシック体)にのみ有効である.
+両オプションが同時に指定された場合の動作については全く考慮していない.
+%</ja>
+
+%<en>\subsubsection{Presets which support multi weights}
+%<ja>\subsubsection{多ウェイト用プリセットの一覧}
+\label{sssec:ltjpreset-multi}
+
+%<*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}.
+%</en>
+%<*ja>
+\texttt{morisawa-pro}, \texttt{morisawa-pr6n}以外はフォントの指定は
+(ファイル名でなく)フォント名で行われる.
+以下の表において,*\,つきのフォント(e.g.,~KozGo\dots-Regular)は,\emph{\texttt{deluxe}オプション指定時に}
+ゴシック体中字として用いられるものを示している.
+%</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.
+
+%<*en>
+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>
+小塚Pro書体・Pr6N書体はAdobe InDesign等のAdobe製品にバンドルされている.
+「小塚丸ゴシック」は存在しないので,便宜的に小塚ゴシックHによって代用している.
+%</ja>
+\begin{center}\small
+\begin{tabular}{lllll}
+\toprule
+\bfseries family&\bfseries series&\ttfamily kozuka-pro&\ttfamily kozuka-pr6&\ttfamily kozuka-pr6n\\
+\midrule
+ &light&KozMinPro-Light&KozMinProVI-Light&KozMinPr6N-Light\\
+%<en>\textit{mincho}%
+%<ja>\textgt{明朝}%
+ &medium&KozMinPro-Regular&KozMinProVI-Regular&KozMinPr6N-Regular\\
+ &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}
+\end{center}
+
+%<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.
+
+%<*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対応である.
+
+なお,明朝体細字として用いるヒラギノ明朝体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}
+
+ \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}\footnotesize
+\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}
+
+
+ \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}
+
+\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が名前についたフォントが使われる.
+
+\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[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}
+
+\end{cslist}
+%<en>\subsubsection{Presets which do not support multi weights}
+%<ja>\subsubsection{単ウェイト用プリセット一覧}
+\label{sssec:ltjpreset-single}
+
+%<*en>
+Next, we describe settings for using only single weight.
+%</en>
+%<*ja>
+次に,単ウェイト用の設定を述べる.この4設定では
+明朝体太字・丸ゴシック体はゴシック体と同じフォントが用いられる.
+%</ja>
+\par\nobreak\medskip
+{\centering\small
+\begin{tabular}{lllll}
+\toprule
+&\tt noembed&\tt ipa&\tt ipaex&\tt ms\\
+\midrule
+%<*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\\
 %</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>\subsubsection{Presets which use HG fonts}
+%<ja>\subsubsection{HGフォントを使うプリセット}
+\label{sssec:ltjpreset-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}
+\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 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}
+&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>
+\bottomrule
+\end{tabular}\par\medskip}
 
 %<*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.
+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>
-また,ルビ文字のほうが親文字よりも長い場合は,自動的に
-行頭形・行中形・行末形のいずれか適切なものを選択する.
+なお,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}
+として指定を行っているので注意すること.
 %</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>\subsubsection{Define/Use Custom Presets}
+%<ja>\subsubsection{新たなプリセットの定義}
 
 %<*ja>
-\subsection{\texttt{lltjext.sty}}
-\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]} の挙動を若干変更した.
-
-\end{itemize}
-}
+バージョン********.0以降では,自分で新たなプリセットを定義することが出来るようになった.
+以下に説明する2命令はプリアンブルでしか実行できない.
 %</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.
+From version~********.0, one can define new presets using \cs{ltjnewpreset},
+and use them by \cs{ltjapplypreset}. These two commands can only be used in the preamble.
 %</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つであり,
-それ以外を指定した時や無指定時は周囲の組方向と同じ組方向になる.
-\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} 命令も同様に,組方向の指定ができるように拡張されている.
+ \item[\cs{ltjnewpreset}\{<name>\}\{<specification>\}]
+%<*ja>
+  新たに<name>という名称のプリセットを定義する.この名称は,
+  すでに定義されているプリセット名や,
+  \ref{sssec:ltjpreset-general}で定義されているオプション,さらに
+  次の9つと重複してはならない.
+  \begin{quote}
+       \ttfamily
+       mc mc-l mc-m mc-bx gt gt-m gt-bx gt-eb mg-m
+  \end{quote}
+
+  <specification>は,プリセット名や以下のキー達のコンマ区切りリストを指定する:
+  \begin{description}
+   \item[\ttfamily mc-l=<font>] 明朝体細字(\cs{mcfamily}\cs{ltseries})
+   \item[\ttfamily mc-m=<font>] 明朝体中字(\cs{mcfamily}\cs{mdseries})
+   \item[\ttfamily mc-bx=<font>] 明朝体太字(\cs{mcfamily}\cs{bfseries})
+   \item[\ttfamily gt-m=<font>] ゴシック体中字(\cs{gtfamily}\cs{mdseries})
+   \item[\ttfamily gt-bx=<font>] ゴシック体太字(\cs{gtfamily}\cs{bfseries})
+   \item[\ttfamily gt-eb=<font>] ゴシック体太字(\cs{gtfamily}\cs{ebseries})
+   \item[\ttfamily mg-m=<font>] 丸ゴシック体(\cs{mgfamily})
+   \item[\ttfamily mc=<font>] 明朝体の細字・中字・太字全部を設定.
+       以下を指定したことと同じである:
+       \begin{quote}
+         \ttfamily mc-l=<font>, mc-m=<font>, mc-bx=<font>
+       \end{quote}
+   \item[\ttfamily gt=<font>] ゴシック体の中字・太字・極太全部を設定.
+       以下を指定したことと同じである:
+       \begin{quote}
+         \ttfamily gt-m=<font>, gt-bx=<font>, gt-eb=<font>
+       \end{quote}
+  \end{description}
+  なお,パッケージ読み込み時に \texttt{deluxe} が有効でない場合は,
+  上記9キーのうち\texttt{mc}, \texttt{gt}しか実質的に意味を持たない.  
+%</ja>
+%<*en>
+  Define new preset~<name>. This <name> cannot be same as other presets,
+  options described in Subsubsection~\ref{sssec:ltjpreset-general}, nor
+  following nine strings:
+  \begin{quote}
+       \ttfamily
+       mc mc-l mc-m mc-bx gt gt-m gt-bx gt-eb mg-m
+  \end{quote}
+
+  <specification> is a comma-separated list which consists of
+  other presets and/or the following keys:
+  \begin{description}
+   \item[\ttfamily mc-l=<font>] mincho light
+   \item[\ttfamily mc-m=<font>] mincho medium
+   \item[\ttfamily mc-bx=<font>] mincho bold
+   \item[\ttfamily gt-m=<font>] gothic medium
+   \item[\ttfamily gt-bx=<font>] gothic bold
+   \item[\ttfamily gt-eb=<font>] gothic extra~bold
+   \item[\ttfamily mg-m=<font>] rounded gothic
+   \item[\ttfamily mc=<font>] Same as
+       \begin{quote}
+         \ttfamily mc-l=<font>, mc-m=<font>, mc-bx=<font>
+       \end{quote}
+   \item[\ttfamily gt=<font>] Same as
+       \begin{quote}
+         \ttfamily gt-m=<font>, gt-bx=<font>, gt-eb=<font>
+       \end{quote}
+  \end{description}
+  If \texttt{deluxe} is not specified at loading the package,
+  only \texttt{mc}~and~\texttt{gt} keys (among above 9~keys) have a meaning.
+%</en>
+ \item[\cs{ltjnewpreset}*\{<name>\}\{<specification>\}]
+%<*ja>
+  \cs{ltjnewpreset}とほぼ同じであるが,こちらはすでに定義されているプリセット名
+  を<name>に指定した場合にはエラーを出さずに定義を置き換える.
+%</ja>
+%<*en>
+  Almost same as \cs{ltjnewpreset}. However, if <name> matches a preset which already defined,
+  this command simply overwrite it.
+%</en>
+ \item[\cs{ltjapplypreset}\{<name>\}]
+%<ja> <name>で指定されたプリセットを使って和文フォントを設定する.
+%<en> Set Japanese font families using preset~<name>.
+\end{cslist}
 
-\item[\cs{pbox}\<<dir>\>{[<width>][<pos>]}\{<contents>\}]
-組方向<dir>で<contents>の中身をLRモードで組む命令である.
-<width>が正の値であるときは,ボックス全体の幅がその値となる.
-その際,中身は<pos>の値に従い,左寄せ(\texttt{l}),右揃え(\texttt{r}),
-中央揃え(それ以外)される.
-\item[picture環境]
-図表作成に用いる \texttt{picture} 環境も,
+%<*ja>
+なお,\cs{ltjnewpreset}の第二引数<specification>に含まれる
+プリセット名は\cs{ltjnewpreset}の時点で定義されている必要はなく,
+\cs{ltjapplypreset}で実際に使うときに定義されていれば良い.
+そのため,次のような記述も可能である:
 \begin{lstlisting}
-\begin{picture}<dir>(x_size, y_size)(x_offset,y_offset)
-  ...
-\end{picture}
+  \ltjnewpreset{hoge}{piyo,mc-bx=HiraMinProN-W6}
+  \ltjnewpreset{piyo}{mg-m=HiraMaruProN-W4}
+  \ltjapplypreset{hoge}
 \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}
+\paragraph{注意}
+\cs{ltjnewpreset}で定義したプリセットには以下の制限がある.
+\begin{itemize}
+  \item 非埋め込みのフォントを指定することはできない.
+  \item \texttt{ipa-hg}などのいくつかのプリセットでは
+  「\texttt{90jis}, \texttt{jis2004}が指定されているか否かでフォントの指定を変える」処理が
+  行われていたが,\cs{ltjnewpreset}で定義したプリセットではこの処理は働かない.
+  HGフォントやモガ明朝などを使うプリセットを定義する場合には注意すること.
+\end{itemize}
 %</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:
+Note that \cs{ltjnewpreset} does not ``expand'' the definition to define a preset.
+This means that one can write as the following:
 \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}
+  \ltjnewpreset{hoge}{piyo,mc-bx=HiraMinProN-W6}
+  \ltjnewpreset{piyo}{mg-m=HiraMaruProN-W4}
+  \ltjapplypreset{hoge}
 \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}
+\paragraph{Restrictions}
+Presets which are defined by \cs{ltjnewpreset} have following restrictions:
+\begin{itemize}
+  \item One cannot specify non-embedded fonts (such as Ryumin-Light).
+  \item Some presets, such as \texttt{ipa-hg}, have a feature that
+  fonts are changed according to whether \texttt{90jis}~or~\texttt{jis2004} is speified.
+  This feature is not usable in presets which are defined by \cs{ltjnewpreset}.
+\end{itemize}
 %</en>
 
 
-
+\clearpage
 %<en>\part{Implementations}
 %<ja>\part{実装}
 \label{part-imp}
 %<en>\section{Storing Parameters}
 %<ja>\section{パラメータの保持}
 \label{sec-para}
-%<en>\subsection{Used Dimensions, Attributes and Whatsit Nodes}
+%<en>\subsection{Used dimensions, attributes and whatsit nodes}
 %<ja>\subsection{\LuaTeX-jaで用いられるレジスタとwhatsitノード}
 
 %<*en>
@@ -6913,6 +8149,18 @@ $i$は7より小さい自然数.
 \end{description}
 %<ja> \TeX 側から見える値,つまり \verb+\the\ltj@dir+ の値は常に0である.
 
+\cnt{ltjlineendcomment}
+%<*ja>
+  \LuaTeX-jaは\textbf{JAchar}で入力行が終了した場合,その直後にコメント文字を
+  おくことで余計な空白が挿入されることを防いでいる.
+  \cs{ltjlineendcomment}はその際のコメント文字のUnicodeにおける符号位置を指定する
+  (詳細は\ref{ssec:lineend}節を参照).
+
+  \LuaTeX-jaにおける既定値は$\texttt{"FFFFF}=1048575$であり,
+  ユーザは内部動作を熟知していない限りこのカウンタの値を変更してはならない.
+  \cs{ltjlineendcomment}の値がUnicodeの範囲外(負や,$\texttt{"10FFFF}=1114111$を超えた場合)
+  にくることは想定されていない.
+%</ja>
 \end{list}
 
 %<*en>
@@ -6990,7 +8238,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}]
@@ -7004,9 +8252,9 @@ These whatsits will be removed during the process of inserting \textbf{JAglue}s.
 これらのwhatsitノードは\textbf{JAglue}の挿入処理の間に取り除かれる.
 %</ja>
 
-%<en>\subsection{Stack System of \LuaTeX-ja}
+%<en>\subsection{Stack system of \LuaTeX-ja}
 %<ja>\subsection{\LuaTeX-jaのスタックシステム}
-\label{ssec-stack}
+\label{ssec:stack}
 
 %<en>\paragraph{Background}
 %<ja>\paragraph{背景}
@@ -7030,7 +8278,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
@@ -7038,7 +8286,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という長さはどのコールバックからも知ることはできないことがわかる.
@@ -7184,7 +8432,7 @@ To solve this problem, we use another trick: the assignment
 %</ja>
 
 %<*en>
-\subsection{Lua Functions of the Stack System}
+\subsection{Lua functions of the stack system}
 In this subsection, we will see how a user use \LuaTeX-ja's stack system to
 store some data which obeys the grouping of \TeX.
 %</en>
@@ -7272,7 +8520,7 @@ as in \Pkg{luatexja-adjust}.
 
 %<*en>
 \paragraph{Setting parameters}
-Figure~\ref{fig:setpar-def} shows the \emph{most outer} definition of
+\autoref{fig:setpar-def} shows the \emph{most outer} definition of
 two commands,
 \cs{ltjsetparameter} and \cs{ltjglobalsetparameter}.
 Most important part is the last \cs{setkeys},
@@ -7299,7 +8547,7 @@ but also by the value of \cs{globaldefs}.
 %</en>
 %<*ja>
 \paragraph{パラメータの設定}
-\cs{ltjsetparameter} と,\cs{ltjglobalsetparameter} の定義は図\ref{fig:setpar-def}の
+\cs{ltjsetparameter} と,\cs{ltjglobalsetparameter} の定義は\autoref{fig:setpar-def}の
 のようになっている.
 本質的なのは最後の \cs{setkeys} で,これは\Pkg{xkeyval}パッケージの提供する命令である.
 
@@ -7335,7 +8583,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
@@ -7366,7 +8614,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のスタックシステムにおけるスタックレベルである.
 戻り値はいかなる値であっても,最終的には文字列として出力されることに注意.
 
@@ -7390,7 +8638,7 @@ end
 %<en>\section{Linebreak after a Japanese Character}
 %<ja>\section{和文文字直後の改行}
 \label{sec-lbreak}
-%<en>\subsection{Reference: Behavior in \pTeX}
+%<en>\subsection{Reference: behavior in \pTeX}
 %<ja>\subsection{参考:\pTeX の動作}
 %<*en>
 In~\pTeX, a line break after a Japanese character doesn't emit a space,
@@ -7412,7 +8660,7 @@ internal states are as follows:
 The first three states---$N$,~$S$, and~$M$---are as same as \TeX's input
 processor.  State~$K$ is similar to state~$M$, and is entered after
 Japanese characters.  The diagram of state transitions are indicated in
-Figure~\ref{fig-ptexipro}.  Note that \pTeX\ doesn't leave state~$K$
+\autoref{fig:ptexipro}.  Note that \pTeX\ doesn't leave state~$K$
 after ``beginning/ending of a group'' characters.
 %</en>
 
@@ -7431,7 +8679,7 @@ after ``beginning/ending of a group'' characters.
 \item State~$M$: 行中.
 \item State~$K$: 行中(和文文字の後).
 \end{itemize}
-また,状態遷移は,図\ref{fig-ptexipro}のようになっており,図中の数字は
+また,状態遷移は,\autoref{fig:ptexipro}のようになっており,図中の数字は
 カテゴリーコードを表している.最初の3状態は\TeX の入力処理部と同じであり,
 図中から状態$K$と「$j$」と書かれた矢印を取り除けば,\TeX の入力処理部と同
 じものになる.
@@ -7513,12 +8761,13 @@ to State~$M$ (middle of line) sometimes.
 \end{itemize}
 %<en>\caption{State transitions of \pTeX's input processor}
 %<ja>\caption{\pTeX の入力処理部の状態遷移}
-\label{fig-ptexipro}
+\label{fig:ptexipro}
 \end{figure}
 
 
 %<en>\subsection{Behavior in \LuaTeX-ja}
 %<ja>\subsection{\LuaTeX-jaの動作}
+  \label{ssec:lineend}
 %<*en>
 States in the input processor of \LuaTeX\ is the same as that of \TeX,
 and they can't be customized by any callbacks. Hence, we can only use
@@ -7533,14 +8782,16 @@ space must be done \emph{just before} an input line is read.
 
 Considering these situations, handling of an end-of-line in \LuaTeX-ja are as follows:
 \begin{quote}
-A character \texttt{U+FFFFF} (its category code is set to 14~(\textit{comment}) by
-\LuaTeX-ja) is appended to an input line, \emph{before \LuaTeX\ actually
+A character whose character code is \cs{ltjlineendcomment}%
+\footnote{Its default value is \texttt{"FFFFF}, so  \texttt{U+FFFFF} is used.
+The category code of \texttt{U+FFFFF} is set to 14~(\textit{comment}) by
+\LuaTeX-ja.} is appended to an input line, \emph{before \LuaTeX\ actually
 process it}, if and only if the following three conditions are satisfied:
 \begin{enumerate}
 \item The category code of \cs{endlinechar}%
 \footnote{Usually, it is $\langle$\textit{return}$\rangle$
       (whose character code is 13).} is 5~(\textit{end-of-line}).
-\item The category code of \texttt{U+FFFFF} itself is 14~(\textit{comment}).
+\item The category code of \cs{ltjlineendcomment} itself is 14~(\textit{comment}).
 \item The input line matches the following ``regular expression'':
 \[
   (\text{any char})^*(\textbf{JAchar})
@@ -7568,7 +8819,7 @@ there is a space before ``u''. This follows from following reasons:
 \item When line~3 is processed by \texttt{process\_input\_buffer} callback,
 ``あ'' is considered as an \textbf{JAchar}.
 Since  line~3 ends with an \textbf{JAchar},
-the comment character \texttt{U+FFFFF} is appended to this line,
+the comment character (whose character code is \cs{ltjlineendcomment}) is appended to this line,
 and hence the linebreak immediately after this line is ignored.
 \item When line~4 is processed by \texttt{process\_input\_buffer} callback,
 ``い'' is considered as an \textbf{ALchar}.
@@ -7593,13 +8844,15 @@ emits a space.
 
 \begin{quote}
 各入力行に対し,\emph{その入力行が読まれる前の内部状態で}
-以下の3条件が満たされている場合,\LuaTeX-jaは\texttt{U+FFFFF}の文字
-\footnote{この文字はコメント文字として扱われるように\LuaTeX-ja内部で設定をしている.}
+以下の3条件が満たされている場合,\LuaTeX-jaは\cs{ltjlineendcomment}番の文字
+\footnote{\cs{ltjlineendcomment}の既定値は\texttt{"FFFFF}であるので,
+  既定では\texttt{U+FFFFF}が使われることになる.この文字はコメント文字として扱われるように
+  \LuaTeX-ja内部で設定をしている.}%
 を末尾に追加する.よって,その場合に改行は空白とは見做されないこととなる.
 \begin{enumerate}
 \item \cs{endlinechar}の文字\footnote{普通は,改行文字(文字コード13番)である.}
 のカテゴリーコードが5~(\textit{end-of-line})である.
-\item \texttt{U+FFFFF}のカテゴリーコードが14~(\textit{comment})である.
+\item \cs{ltjlineendcomment}のカテゴリーコードが14~(\textit{comment})である.
 \item 入力行は次の「正規表現」にマッチしている:
 \[
   (\text{any char})^*(\textbf{JAchar})
@@ -7629,7 +8882,7 @@ u
 \begin{itemize}
 \item 3行目を \texttt{process\_input\_buffer} で処理する時点では,
       「あ」は\textbf{JAchar}(和文扱い)である.よって3行目は\textbf{JAchar}で終わることになり,
-      コメント文字 \texttt{U+FFFFF} が追加される.
+      \cs{ltjlineendcomment}番のコメント文字が追加される.
       よって,直後の改行文字は無視されることになり,空白は入らない.
 \item 4行目を \texttt{process\_input\_buffer} で処理する時点では,
       「い」は\textbf{ALchar}である.よって4行目は\textbf{ALchar}で終わることになり,
@@ -7673,6 +8926,8 @@ u
 
 \def\OA{$\text{\sf O}_{\text{\sf A}}$}
 \def\OB{$\text{\sf O}_{\text{\sf B}}$}
+\def\NA{$\text{\sf N}_{\text{\sf A}}$}
+\def\NB{$\text{\sf N}_{\text{\sf B}}$}
 \begin{defn}
 %<*en>
 A \emph{cluster} is consecutive nodes in one of the following forms,
@@ -7732,11 +8987,11 @@ with the \textit{id} of it:
 \Node{glyph}{accent}\\\noalign{\medskip}
 \Node{hbox}{accent (shifted vert.)}
 \end{array}\right\}\longrightarrow
-\Node{kern}{$\mathit{subtype}=2$}}^{\text{(a)}}
+\Node{kern}{$\mathit{subtype}=2$}}^{\text{(b)}}
 \longrightarrow
 \Node{glyph}{$p$}\longrightarrow
 \overbrace{%
-\Node{kern}{italic corr.}}^{\text{(b)}}
+\Node{kern}{italic corr.}}^{\text{(a)}}
 \]
 
 %<*en>
@@ -7867,7 +9122,7 @@ JFMグルーの挿入が行われない(\Param{xkanjiskip},~\Param{kanjiskip}
 \item[欧文] リスト中に直接/hboxの中身として出現している「\textbf{JAchar}以外の文字」.次の3つの場合が該当:
 \begin{itemize}
 \item \textit{id}が\textit{id\_glyph}である.
-\item \textit{id}が\textit{id\_math}である.
+\item \textit{id}ã\81\8c\textit{id\_math}ã\81§ã\81\82ã\82\8bï¼\88ã\81¤ã\81¾ã\82\8aã\81\93ã\81®ã\82¯ã\83©ã\82¹ã\82¿ã\81¯1ã\81¤ã\81®æ\96\87中æ\95°å¼\8fã\82\92ã\81ªã\81\99ï¼\89ï¼\8e
 \item \textit{id}が\textit{id\_pbox}か\textit{id\_hlist}か\textit{id\_disc}であって,$\mathit{Np}.\mathit{head}$が\textbf{ALchar}.
 \end{itemize}
 \item[箱] box,またはそれに類似するもの.次の2つが該当:
@@ -7923,7 +9178,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など,行組版には関係しないものがある.模式的に表すと,
 \[
@@ -8089,7 +9344,7 @@ $a$は禁則処理用に\textit{Nq}と\textit{Np}の間に加えられるべき
 \sf 和文A&
 \gkf{E}{M→K}{PN}&
 \gkf{---}{\OA →K}{PN}&
-\gkf{---}{\OA →X}{PN}&
+\gkf{---}{\NA →X}{PN}&
 \gkf{---}{\OA}{PA}&
 \gkf{---}{\OA}{PN}&
 \gkf{---}{\OA}{PS}\\
@@ -8098,7 +9353,7 @@ $a$は禁則処理用に\textit{Nq}と\textit{Np}の間に加えられるべき
 \gkf{---}{K}{PS}&
 \gkf{---}{X}{PS}\\
 \sf 欧文&
-\gkf{E}{\OB →X}{PA}&
+\gkf{E}{\NB →X}{PA}&
 \gkf{---}{X}{PS}\cr
 \sf 箱&\gkf{E}{\OB}{PA}\\
 \sf glue&\gkf{E}{\OB}{PN}\\
@@ -8144,26 +9399,34 @@ If this attempt fails, \LuaTeX-ja use the method ``\textsf{\Param{kanjiskip}~[K]
 \end{table}
 
 \subsection{その他の場合}
-本節の内容は表\ref{tab-jfmglue}にまとめてある.
+本節の内容は\autoref{tab-jfmglue}にまとめてある.
 
 \paragraph{和文Aと欧文の間}
 \textit{Nq}が\textsf{和文A}で,\textit{Np}が\textsf{欧文}の場合,JFMグルー挿入処理は次のようにして行われる.
 \begin{itemize}
-\item 「右空白」については,まず以下に述べる\textsf{Boundary-B~[\OB]}により空白を決定しようと試みる.
+\item 「右空白」については,まず以下に述べる\textsf{欧文境界B~[\NB]}により空白を決定しようと試みる.
 それが失敗した場合は,\textsf{\Param{xkanjiskip}~[X]}によって定める.
 %\item 「左空白」については,既に述べた\textsf{line-end~[E]}をそのまま採用する.それに伴う「右空白」の補正も%同じ.
 \item 禁則用ペナルティも,以前述べた\textsf{P-normal~[PN]}と同じである.
 \end{itemize}
 \begin{description}
-\item[Boundary-B~{[\OB]}] \textbf{JAchar}と「\textbf{JAchar}でないもの」との間に入る空白を以下によって求め,
-未定義でなければそれを「右空白」として採用する.
-\textsf{JFM-origin~[M]}の変種と考えて良い.
-これによって定まる空白の典型例は,和文の閉じ括弧と欧文文字の間に入る半角アキである.
+\item[欧文境界B~{[\NB]}] 以下で求めた量を「右空白」として採用する.
+この処理は\textsf{JFM-origin~[M]}の変種と考えて良く,
+典型例は「和文の閉じ括弧と欧文文字の間に入る半角アキ」である.
 \begin{enumerate}
 \item もし両クラスタの間で \cs{inhibitglue} が実行されていた場合%
-(証としてwhatsitノードが自動挿入される),「右空白」は未定義.
+(証としてwhatsitノードが自動挿入される),未定義.
 \item そうでなければ,
-\textit{Nq}と「文字コードが {\tt'jcharbdd'} の文字」との間に入るグルー/カーンとして定まる.
+\textit{Nq}と「文字コードが$x$の文字」との間に入るグルー/カーンとする.
+この$x$は次の場合分けによる:
+  \begin{itemize}
+    \item $\mathit{Np}.\mathit{id}$が\textit{id\_math}のとき(つまりクラスタ\textit{Np}が文中数式を表す)
+    ときは,$x=-1$.
+    \item \textit{Np}の中身の中身の文字コードについて,「直前への\Param{xkanjiskip}の挿入」が禁止されている
+(つまり,\Param{jaxspmode}~(or \Param{alxspmode})パラメタが偶数)ときは,
+    $x=\text{\texttt{'nox\_alchar'}}$.
+    \item 以上のいずれでもないときは,$x=\text{\texttt{'alchar'}}$.
+  \end{itemize}
 \end{enumerate}
 \item[\Param{xkanjiskip}~{[X]}]
 この段階では,\textsf{\Param{kanjiskip}~[K]}のときと同じように,
@@ -8187,22 +9450,29 @@ If this attempt fails, \LuaTeX-ja use the method ``\textsf{\Param{kanjiskip}~[K]
 
 \paragraph{欧文と和文Aの間}
 \textit{Nq}が\textsf{欧文}で,\textit{Np}が\textsf{和文A}の場合,JFMグルー挿入処理は上の場合とほぼ同じである.
-\textsf{和文A}のクラスタが逆になるので,\textsf{Boundary-A~[\OA]}の部分が変わるだけ
+\textsf{和文A}のクラスタが逆になるので,\textsf{欧文境界B~[\NB]}の部分が変わるだけである
 \begin{itemize}
-\item 「右空白」については,まず以下に述べる\textsf{Boundary-A~[\OA]}により空白を決定しようと試みる.
+\item 「右空白」については,まず以下に述べる\textsf{欧文境界A~[\OA]}により空白を決定しようと試みる.
 それが失敗した場合は,\textsf{\Param{xkanjiskip}~[X]}によって定める.
 %\item \textit{Nq}が和文でないので,「左空白」は算出されない.
 \item 禁則用ペナルティは,以前述べた\textsf{P-normal~[PN]}と同じである.
 \end{itemize}
 \begin{description}
-\item[Boundary-A~{[\OA]}] 「\textbf{JAchar}でないもの」と\textbf{JAchar}との間に入る空白を以下によって求め,
-未定義でなければそれを「右空白」として採用する.
-\textsf{JFM-origin~[M]}の変種と考えて良い.
-これによって定まる空白の典型例は,欧文文字と和文の開き括弧との間に入る半角アキである.
+\item[欧文境界A~{[\NA]}] これは\textsf{欧文境界B~[\NB]}で\textit{Np}と\textit{Nq}の役割が
+  交換されたものと思えば良い.
+  この処理で定まる空白の典型例は,欧文文字と和文の開き括弧との間に入る半角アキである.
 \begin{enumerate}
-\item もし両クラスタの間で \cs{inhibitglue} が実行されていた場合(証としてwhatsitノードが自動挿入される),次へ.
+\item もし両クラスタの間で \cs{inhibitglue} が実行されていた場合(証としてwhatsitノードが自動挿入される),
+  未定義.
 \item そうでなければ,
-「文字コードが {\tt'jcharbdd'} の文字」と\textit{Np}との間に入るグルー/カーンとして定まる.
+「文字コードが$x$の文字」と\textit{Np}との間に入るグルー/カーンと定める.
+$x$は\textit{Nq}から\textsf{欧文境界B~[\NB]}におけるそれと同じ方法で定めるが,
+\texttt{'nox\_alchar'}か\texttt{'alchar'}は
+\begin{quote}
+  \textit{Nq}の中身の文字コードについて,「直後への\Param{xkanjiskip}の挿入」が禁止されている
+(つまり,\Param{jaxspmode}~(or \Param{alxspmode})パラメタが2以上).
+\end{quote}
+  か否かで判断する.
 \end{enumerate}
 \end{description}
 
@@ -8210,9 +9480,8 @@ If this attempt fails, \LuaTeX-ja use the method ``\textsf{\Param{kanjiskip}~[K]
 \textit{Nq}が\textsf{和文A}で,\textit{Np}が\textsf{箱}・グルー・カーンのいずれかであった場合,
 両者の間に挿入されるJFMグルーについては同じ処理である.しかし,そこでの行分割に対する仕様が異なるので,
 ペナルティの挿入処理は若干異なったものとなっている.
-
 \begin{itemize}
-\item 「右空白」については,既に述べた\textsf{Boundary-B~[\OB]}により空白を決定しようと試みる.
+\item 「右空白」については,以下に述べる\textsf{Boundary-B~[\OB]}により空白を決定しようと試みる.
 それが失敗した場合は,「右空白」は挿入されない.
 %\item 「左空白」については,既に述べた\textsf{line-end~[E]}の算出方法をそのまま採用する.それに伴う「右空白」の補正も同じ.
 \item 禁則用ペナルティの処理は,後ろのクラスタ\textit{Np}の種類によって異なる.
@@ -8235,6 +9504,12 @@ If this attempt fails, \LuaTeX-ja use the method ``\textsf{\Param{kanjiskip}~[K]
 \end{itemize}
 
 \begin{description}
+\item[Boundary-B~{[\OB]}] この処理は\textsf{欧文境界B~[\NB]}と同様であり,
+  $x$が次によって決まることのみが異なる:
+  \begin{itemize}
+    \item \textit{Np}がグルーやカーンのときは,$x=\text{\texttt{'glue'}}$.
+    \item そうでない(\textit{Np}が\textsf{箱})ときは,$x=\text{\texttt{'jcharbdd'}}$.
+  \end{itemize}
 \item[P-allow~{[PA]}]
 \textit{Nq}と\textit{Np}の間の(a)部分にペナルティがあれば,\textsf{P-normal~[PN]}と同様に,
 それらの各ノードにおいてペナルティ値を$a$だけ増加させる.
@@ -8263,7 +9538,7 @@ If this attempt fails, \LuaTeX-ja use the method ``\textsf{\Param{kanjiskip}~[K]
 すぐ上の(\textit{Nq}と\textit{Np}の順序が逆になっている)場合と同じである.
 %が,「左空白」がなくなることにのみ注意.
 \begin{itemize}
-\item 「右空白」については,既に述べた\textsf{Boundary-A~[\OA]}により空白を決定しようと試みる.
+\item 「右空白」については,以下に述べる\textsf{Boundary-A~[\OA]}により空白を決定しようと試みる.
 それが失敗した場合は,「右空白」は挿入されない.
 %\item \textit{Nq}が和文でないので,「左空白」は算出されない.
 \item 禁則用ペナルティの処理は,\textit{Nq}の種類によって異なる.
@@ -8278,12 +9553,21 @@ $\mathit{Nq}.\mathit{tail}$は無意味なので,
 \end{description}
 \end{itemize}
 
+\begin{description}
+\item[Boundary-A~{[\OA]}] この処理は\textsf{欧文境界A~[\NA]}と同様であり,
+  $x$が次によって決まることのみが異なる:
+  \begin{itemize}
+    \item \textit{Nq}がグルーやカーンのときは,$x=\text{\texttt{'glue'}}$.
+    \item そうでない(\textit{Nq}が\textsf{箱})ときは,$x=\text{\texttt{'jcharbdd'}}$.
+  \end{itemize}
+\end{description}
+
 \paragraph{和文Aと和文Bの違い}
 先に述べたように,\textsf{和文B}はhboxの中身の先頭(or 末尾)として出現している
 \textbf{JAchar}である.リスト内に直接ノードとして現れている\textbf{JAchar}(\textsf{和文A})との違いは,
 \begin{itemize}
 \item \textsf{和文B}に対しては,JFMの文字クラス指定から定まる空白
-\textsf{JFM-origin~[M]},\textsf{Boundary-A~[\OA]},\textsf{Boundary-B~[\OB]})の挿入は行われない.
+(\textsf{JFM由来[M]},\textsf{Boundary-A~[\OA]}など)の挿入は行われない.
 %「左空白」の算出も行われない.
 例えば,
 \begin{itemize}
@@ -8306,12 +9590,12 @@ $\mathit{Nq}.\mathit{tail}$は無意味なので,
 あ.A
 \end{LTXexample}
 \begin{itemize}
-\item 1行目の\cs{inhibitglue}は\textsf{Boundary-B~[\OB]}の処理のみを抑止するので,ピリオドと「A」の間には
+\item 1行目の\cs{inhibitglue}は\textsf{欧文境界B~[\NB]}の処理のみを抑止するので,ピリオドと「A」の間には
 \Param{xkanjiskip}(四分アキ)が入ることに注意.
 \item 2行目のピリオドと「A」の間においては,前者が\textsf{和文B}となる(hboxの中身の末尾として登場しているから)ので,
-そもそも\textsf{Boundary-B~[\OB]}の処理は行われない.よって,\Param{xkanjiskip}が入ることとなる.
+そもそも\textsf{欧文境界B~[\NB]}の処理は行われない.よって,\Param{xkanjiskip}が入ることとなる.
 \item 3行目では,ピリオドの属するクラスタは\textsf{和文A}である.これによって,
-ピリオドと「A」の間には\textsf{Boundary-B~[\OB]}由来の半角アキが入ることになる.
+ピリオドと「A」の間には\textsf{欧文境界B~[\NB]}由来の半角アキが入ることになる.
 \end{itemize}
 %</ja>
 
@@ -8334,7 +9618,7 @@ $d = \max(\texttt{depth} - \texttt{yoffset}, 0)$,
 $h = \max(\texttt{height} + \texttt{yoffset}, 0)$, $d=\texttt{depth}$.
 \end{description}
 という仕様になっている.つまり,\texttt{yoffset} が負(グリフを下ける)の場合に深さは増加しな
-い(表\ref{tab:yoffset_and_im}参照).
+い(\autoref{tab:yoffset_and_im}参照).
 
 \begin{table}[t]
 \caption{\texttt{yoffset} and imaginary body}
@@ -8402,7 +9686,7 @@ a patch \Pkg{jlisting.sty}~(\cite{jlisting}) resolves the problem forcibly.
 
 %<*en>
 In \LuaTeX-ja, the problem is resolved by using the \verb+process_input_buffer+ callback.
-The callback function inserts the output command (active character \texttt{U+FFFFF})
+The callback function inserts the output command (active character \cs{ltjlineendcomment})
 before each letter above \texttt{U+0080}.
 This method can omits the process to make all Japanese characters active
 (most of the activated characters are not used in many cases).
@@ -8410,7 +9694,7 @@ This method can omits the process to make all Japanese characters active
 %<*ja>
 \LuaTeX-jaでは,\verb+process_input_buffer+ コールバックを利用することで,
 「各行に出現する\texttt{U+0080}以降の文字に対して,それらの出力命令を前置する」
-という方法をとっている.出力命令としては,アクティブ文字化した \texttt{U+FFFFF} を用いている.
+という方法をとっている.出力命令としては,アクティブ文字化した\cs{ltjlineendcomment}を用いている.
 これにより,(入力には使用されていないかもしれない)和文文字をもすべてアクティブ化する手間もなく,
 見通しが良い実装になっている.
 %</ja>
@@ -8429,45 +9713,45 @@ then the patch \Pkg{lltjp-listings} is loaded automatically at \verb+\begin{docu
 
 %<en>\subsection{Notes and additional keys}
 %<ja>\subsection{注意}
-%<*en>
-\paragraph{Escaping to \LaTeX}
-We used the \verb+process_input_buffer+ callback to output \textbf{JAchar}s.
-But it has a drawback; any commands whose name contains a \textbf{JAchar}
-cannot be used in any ``escape to \LaTeX''.
+% %<*en>
+\paragraph{Escaping to \LaTeX}
+We used the \verb+process_input_buffer+ callback to output \textbf{JAchar}s.
+But it has a drawback; any commands whose name contains a \textbf{JAchar}
+cannot be used in any ``escape to \LaTeX''.
 
-Consider the following input:
-%</en>
-%<*ja>
-\paragraph{\LaTeX へのエスケープ}
-日本語対応を行うために \verb+process_input_buffer+ を使用したことで,
-\texttt{texcl},~\texttt{escapeinside}といった\emph{「\LaTeX へのエスケープ」中では,
-\textbf{JAchar}を名称の一部に含む制御綴は使用不可能}である.
-例えば次のような入力を考えよう:
-%</ja>
-\begin{verbatim*}
-\begin{lstlisting}[escapechar=\#]
-#\ほげ xぴよ#
-\end{lstlisting}
-\end{verbatim*}
-%<en>The line~2 is transformed by the callback to
-%<ja>ここで,2行目は \verb+process_input_buffer+ の作用により,
-\begin{lstlisting}[showspaces, escapechar=\!]
-#\!\IVSA FFFFF!ほ!\IVSA FFFFF!げ x!\IVSA FFFFF!ぴ!\IVSA FFFFF!よ#
-\end{lstlisting}
-%<*en>
-before the line is actually processed.
-In the escape (between the character ``\verb+#+''),
-the category code of \texttt{U+FFFFF} is set to 9~(\emph{ignored}).
-Hence the control symbol ``\cs{}\IVSA FFFFF'' will be executed,
-instead of ``\verb+\ほげ+''.
-%</en>
-%<*ja>
-と変換されてから,実際の処理に回される.
-「\verb+#+」で挟まれた「\LaTeX へのエスケープ」中では\
-\texttt{U+FFFFF} のカテゴリーコードは9~(\textit{ignored})となるので,
-結局「\verb+\ほげ+」の代わりに
-「\cs{}\IVSA FFFFF」というcontrol symbolが実行されることになる.
-%</ja>
+Consider the following input:
+% %</en>
+% %<*ja>
+\paragraph{\LaTeX へのエスケープ}
+日本語対応を行うために \verb+process_input_buffer+ を使用したことで,
+\texttt{texcl},~\texttt{escapeinside}といった\emph{「\LaTeX へのエスケープ」中では,
+\textbf{JAchar}を名称の一部に含む制御綴は使用不可能}である.
+例えば次のような入力を考えよう:
+% %</ja>
+\begin{verbatim*}
+\begin{lstlisting}[escapechar=\#]
+#\ほげ xぴよ#
+\end{lstlisting}
+\end{verbatim*}
+% %<en>The line~2 is transformed by the callback to
+% %<ja>ここで,2行目は \verb+process_input_buffer+ の作用により,
+\begin{lstlisting}[showspaces, escapechar=\!]
+#\!\IVSA FFFFF!ほ!\IVSA FFFFF!げ x!\IVSA FFFFF!ぴ!\IVSA FFFFF!よ#
+\end{lstlisting}
+% %<*en>
+before the line is actually processed.
+In the escape (between the character ``\verb+#+''),
+the category code of \texttt{U+FFFFF} is set to 9~(\emph{ignored}).
+Hence the control symbol ``\cs{}\IVSA FFFFF'' will be executed,
+instead of ``\verb+\ほげ+''.
+% %</en>
+% %<*ja>
+と変換されてから,実際の処理に回される.
+「\verb+#+」で挟まれた「\LaTeX へのエスケープ」中では\
+\texttt{U+FFFFF} のカテゴリーコードは9~(\textit{ignored})となるので,
+結局「\verb+\ほげ+」の代わりに
+「\cs{}\IVSA FFFFF」というcontrol symbolが実行されることになる.
+% %</ja>
 
 %<*en>
 \paragraph{Variation selectors}
@@ -8493,7 +9777,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}
@@ -8583,7 +9867,7 @@ With this key, the above input now produces better output.
 \end{lstlisting}
 %</ja>
 
-%<en>\subsection{Class of Characters}
+%<en>\subsection{Class of characters}
 %<ja>\subsection{文字種}
 
 %<en>Roughly speaking, the \Pkg{listings} package processes input as follows:
@@ -8713,7 +9997,7 @@ Letter, Other, Kanji, Open, Closeのどれに属するかは次によって決
 %</ja>
 \begin{itemize}
 %<en>\item \textbf{ALchar}s above or equal to~\texttt{U+0080} are classified as Letter.
-%<ja>\item (\texttt{U+0080}以降の)\textbf{ALchar}は,すべてLetter扱いである.
+%<ja>\item \<(\texttt{U+0080}以降の)\textbf{ALchar}は,すべてLetter扱いである.
 
 %<en>\item \textbf{JAchar}s are classified in the order as follows:
 %<ja>\item \textbf{JAchar}については,以下の順序に従って文字種を決める:
@@ -8750,93 +10034,148 @@ the \texttt{lstlisting} environment or other environments/commands.
 %<*ja>
 \section{和文の行長補正方法}
 \label{sec-adjspec}
-\Pkg{luatexja-adjust} で提供される優先順位付きの行長調整の詳細を述
-べる.大まかに述べると,次のようになる.
+\Pkg{luatexja-adjust}で提供される優先順位付きの行長調整の詳細を大まかに述べると,次のようになる.
 \begin{itemize}
+\item (\texttt{lineend=extended}の場合)\textbf{JAglue}の挿入処理のところで,
+  ……
 \item 通常の\TeX の行分割方法に従って,段落を行分割する.この段階では,行
       長に半端が出た場合,その半端分は\textbf{JAglue}(\Param{xkanjiskip},
       \Param{kanjiskip},JFMグルー)と
       それ以外のグルーの全てで(優先順位なく)負担される.
 \item その後,\texttt{post\_linebreak\_filter} callbackを使い,\emph{段
-      落中の各行ごとに},行末文字の位置を調整したり,優先度付きの行長調整
+      落中の各行ごとに},行末文字の位置を調整(\texttt{lineend=true}の場合)したり,優先度付きの行長調整
       を実現するためにグルーの伸縮度を調整する.
       その処理においては,グルーの自然長と\textbf{JAglue}以外の
       グルーの伸び量・縮み量は変更せず,必要に応じて\textbf{JAglue}の伸び量・縮み量のみを
       変更する設計とした.
-
-\Pkg{luatexja-adjust} の作用は,この処理を行うcallbackを追加するだけであり,
-      この章の残りではcallbackでの処理について解説する.
 \end{itemize}
+この章の残りでは各処理について解説する.
 
 \paragraph{準備:合計伸縮量の計算}
 グルーの伸縮度(\texttt{plus} や \texttt{minus} で指定されている値)には,
 有限値の他に,\texttt{fi},\texttt{fil},\texttt{fill},\texttt{filll}と
-いう4つの無限大レベル(後ろの方ほど大きい)があり,行の調整に
-\texttt{fi} などの\emph{無限大レベルの伸縮度が用いられている場合は,そ
-の行に対しての処理を中止}する.
-
-よって,以降,問題にしている行の行長調整は伸縮度が有限長のグルーを用いて
-行われているとして良い.さらに,簡単のため,この行はグルーが広げられている
-(自然長で組むと望ましい行長よりの短い)場合しか扱わない.
+いう4つの無限大レベル(後ろの方ほど大きい)がある.行の調整に
+\texttt{fi} などの\emph{無限大レベルの伸縮度が用いられている行では,
+「行末文字の位置調整」のみ行い,「グルーの調整」は行わない.}
 
 まず,段落中の行中のグルーを
 \begin{itemize}
 \item \textbf{JAglue}ではないグルー
 \item JFMグルー(優先度\footnote{%
-  \ref{ssec-jfm-str}節にあるように,
-  各JFMグルーには$-2$から2までの優先度がついている.}%
+  \ref{ssec:jfm-str}節にあるように,
+  各JFMグルーには$-4$から3までの優先度がついている.場合によっては
+  伸びと縮みで異なる優先度が付いているかもしれない.}%
 別にまとめられる)
 \item 和欧文間空白(\Param{xkanjiskip})
 \item 和文間空白(\Param{kanjiskip})
 \end{itemize}
-の$1+1+5+1=8$つに類別し,それぞれの種別ごとに
-許容されている伸び量(\texttt{stretch}の値)の合計を計算する.
-また,行長と自然長との差を\textit{total}とおく.
-
+の$1+1+8+1=10$つに類別する.
+そして許容されている伸び量(\texttt{stretch}の値)の合計を
+無限のレベルごとに
+\begin{align*}
+ T^{+}_{l}&:= \sum_{\text{$\texttt{stretch\_order}(p) = l$}} \texttt{stretch}(p),&
+ l\in \{\text{(finite)}, \texttt{fi}, \texttt{fil}, \texttt{fill}, \texttt{filll}\}
+\end{align*}
+と計算する.さらに,
+\begin{align*}
+T^{+}&:=T^{+}_{L^+},&L^{+} = \max \{l\in
+ \{\text{(finite)}, \texttt{fi}, \texttt{fil}, \texttt{fill}, \texttt{filll}\}:
+ T^{+}_l\neq 0\}
+\end{align*}
+とおく.有限の伸び量については,上記の8種類の類別ごとにも合計を計算する.
+さらに縮み量(\texttt{shrink}の値)についても同様の処理を行い,$T^{-}$を計算する.
+
+また,行長から自然長を引いた値を\textit{total}とおく.
+
+\subsection{行末文字の位置調整(行分割後の場合)}
+行末が\textbf{JAchar}であり,この文字の属する文字クラスでは
+\begin{quote}
+  \texttt{end\_adjust = \{$a_{1}$, $a_{2}$, ..., $a_{n}$\}}
+\end{quote}
+であったとする.
+このとき,以下の条件を満たした場合,
+この文字クラスに対する\texttt{end\_adjust}の値のいずれかだけこの文字の位置を移動させる.
+\begin{description}
+  \item[最終行以外] 行長調整に無限大の伸縮度が用いられていない.
+  すなわち,$\textit{total}>0$ならば$L^{+}=(\text{finite})$であり,
+  $\textit{total}>0$ならば$L^{-}=(\text{finite})$である.
+  \item[最終行] 行長調整に無限大に伸び縮みするグルーが用いられたなら,それは\cs{parfillskip}のみであり,
+    かつ,次の不等式が成立する:
+  \[
+   \min\{0,a_{1}\}\text{\cs{zw}}\leq (\text{\cs{parfillskip}の実際の長さ}) \leq \max\{0,a_{n}\}\text{\cs{zw}}
+  \]
+\end{description}
 
-\subsection{行末文字の位置調整}
-行末が文字クラス$n$の\textbf{JAchar}であった場合,
-それを動かすことによって,\textit{total}のうち
-\textbf{JAglue}が負担する分を少なくしようとする.
-この行末文字の左右の移動可能量は,
-JFM中にある文字クラス$n$の定義の
-\texttt{end\_stretch},~\texttt{end\_shrink}フィールドに
-全角単位の値として記述されている.
+各$1\leq i\leq n$に対して,
+「行末に$a_{i}$全角だけのカーンを追加した時の,\textit{glue\_set}の値」を
+$b_{i}$とおく.式で書くと,
+\[
+\catcode`\<=12
+b_{i} = \begin{cases}
+  |\textit{total}-a_{i}\text{\cs{zw}}|/T^{+}
+         &(\textit{total}-a_{i}\text{\cs{zw}}\geq 0)\\
+  |\textit{total}-a_{i}\text{\cs{zw}}|/T^{-}
+         &(\textit{total}-a_{i}\text{\cs{zw}}<0)
+\end{cases}.
+\]
+$b_{i}$達の最小値を与えるような$i$を$j$としたとき\footnote{%
+  そのような$i$が2つ以上あるときは,$|\textit{total}-a_{i}\cdot \text{\cs{zw}}|$,
+  $|a_{i}|$, $a_i$の順で比較して一番小さくなるものが選ばれる.
+},
+行末に大きさ$a_{j}$のカーンを追加する.
+\textit{total}から$a_{j}$全角の大きさだけ引いておく.
 
-例えば,行末文字が句点「。」であり,そこで用いられているJFM中に
-\begin{lstlisting}
-  [2] = {
-    chars = { '。', ... }, width = 0.5, ...,
-    end_stretch = 0.5, end_shrink = 0.5,
-  },
-\end{lstlisting}
-という指定があった場合,この行末の句点は
-\begin{itemize}
-\item 通常の\TeX の行分割処理で「半角以上の詰め」が行われていた場合,
-この行中の\textbf{JAglue}の負担を軽減するため,
-行末の句点を半角だけ右に移動する(ぶら下げ組を行う).
-\item 通常の\TeX の行分割処理で「半角以上の空き」が行われていた場合,
-逆に行末句点を半角左に移動させる(見た目的に全角取りとなる).
-\item 以上のどちらでもない場合,行末句点の位置調整は行わない.
-\end{itemize}
-となる.
+\subsection{行末文字の位置調整(行分割での考慮)}
+\texttt{lineend=extended}が指定されている場合,\TeX による行分割が行われる前に
+各\textbf{JAchar}の直後に,その文字が行末に来たときの位置補正用のノードを挿入していく.
 
-行末文字を移動した場合,その分だけ\textit{total}の値を引いておく.
+\ref{sec-jfmglue}章の用語を使って述べる.
+前側のクラスタ\textit{Nq}が「和文A」「和文B」であり,
+JFMによって\texttt{end\_adjust}の値が
+\begin{quote}
+  \texttt{end\_adjust = \{$a_{1}$, $a_{2}$, ..., $a_{n}$\}}
+\end{quote}
+であったとする.このとき,次のクラスタ\textit{Np}の直前に以下のノード列を挿入する.
+\textbf{JAglue}の挿入過程で禁則処理のために「\textit{Nq}と\textit{Np}の間のペナルティ値を増やす」ことが
+行われることがあるが,以下で述べられている$(n+1)$個のペナルティはみなその処理対象になっている.
+\begin{align*}
+  \Node{kern}{$a_{1}\text{\cs{zw}}$}
+  &\longrightarrow \Node{penalty}{$0$} \longrightarrow\Node{kern}{$(a_{2}-a_{1})\text{\cs{zw}}$}
+  \longrightarrow \Node{penalty}{$0$} \longrightarrow\Node{kern}{$(a_{3}-a_{2})\text{\cs{zw}}$}\\
+  &\longrightarrow
+  \cdots \longrightarrow\Node{penalty}{$0$} \longrightarrow
+  \Node{kern}{$(a_{n}-a_{n-1})\text{\cs{zw}}$}
+  \longrightarrow \Node{penalty}{$0$} \longrightarrow
+  \Node{kern}{$-a_{n}\text{\cs{zw}}$} \longrightarrow \Node{penalty}{$10000$}
+\end{align*}
+$n$個あるペナルティの箇所が改行可能箇所である.いずれかで改行された場合は,
+その前にあるカーン($n$箇所のうちどこで改行しても,合計の長さは$a_{i}$の形)は行末に残るが,
+後ろのペナルティ・カーンは除去される.なお,$a_1=0$のときは最初の幅が$a_{1}\text{\cs{zw}}$のカーンは不要なので挿入されず,
+さらにかつ$n=1$であった場合は後ろのペナルティも挿入されない.
+
+なお,段落の末尾には\cs{penalty10000}と\cs{parfillskip}由来のグルーが自動的に入るが,
+これらとの兼ね合いのため\emph{最後のクラスタについては上記のノード挿入処理は行われない}.
+段落最終行の行末文字の位置調整は,すでに述べた「行分割後の場合」における最終行の処理をそのまま用いている.
 
 \subsection{グルーの調整}
-\textit{total}の分だけが,行中のグルーの伸び量に応じて負担されることになる.
-負担するグルーの優先度は以下の順であり,
-できるだけ\Param{kanjiskip}を自然長のままにすることを
-試みている.
+$|\textit{total}|$の分だけが,行中のグルーの伸び量,あるいは縮み量に応じて負担されることになる.
+以下,$\textit{total}\geq 0$であると仮定して話を進めるが,負のときも同様である.
+\Pkg{luatexja-adjust}の初期値では以下の順に伸び量を負担するようになっており,
+(優先度$-4$のJFMグルーは例外として)できるだけ\Param{kanjiskip}を自然長のままにすることを
+試みている.この順番は\Param{stretch\_priority}(縮み量については\Param{shrink\_priority})
+パラメータで変更可能である.
 \begin{enumerate}\def\labelenumi{(\Alph{enumi})}
  \item \textbf{JAglue}以外のグルー
+ \item 優先度3のJFMグルー
  \item 優先度2のJFMグルー
  \item 優先度1のJFMグルー
  \item 優先度0のJFMグルー
  \item 優先度$-1$のJFMグルー
  \item 優先度$-2$のJFMグルー
  \item \Param{xkanjiskip}
+ \item 優先度$-3$のJFMグルー
  \item \Param{kanjiskip}
+ \item 優先度$-4$のJFMグルー
 \end{enumerate}
 \begin{enumerate}
  \item 行末の\textbf{JAchar}を移動したことで$\textit{total}=0$となれば,
@@ -8853,7 +10192,7 @@ JFM中にある文字クラス$n$の定義の
 \texttt{glue\_set}, \texttt{glue\_sign}, \texttt{glue\_order}を再計算する.
 これによって,\textit{total}は\textbf{JAglue}以外のグルーによって負担される.
 \end{enumerate}
-\item \textit{total}が「(A)の伸び量の合計」以上ならば,(A)--(H)のどこまで負担すれば
+\item \textit{total}が「(A)の伸び量の合計」以上ならば,(A)--(K)のどこまで負担すれば
 \textit{total}以上になるかを計算する.
 例えば,
 \[\catcode`\<=12
@@ -8864,17 +10203,17 @@ JFM中にある文字クラス$n$の定義の
 \begin{itemize}
  \item (A),~(B)に属するグルーは各グルーで許された伸び量まで伸ばす.
  \item (C)に属するグルーはそれぞれ$p\times (\text{伸び量})$だけ伸びる.
- \item (D)--(H)に属するグルーは自然長のまま.
+ \item (D)--(K)に属するグルーは自然長のまま.
 \end{itemize}
 実際には,前に述べた「設計」に従い,次のように処理している:
 \begin{enumerate}
 \item (C)に属するグルーの伸び量を$p$倍する.
-\item (D)--(H)に属するグルーの伸び量を0とする.
+\item (D)--(K)に属するグルーの伸び量を0とする.
 \item 行が格納されているhboxの
 \texttt{glue\_set}, \texttt{glue\_sign}, \texttt{glue\_order}を再計算する.
 これによって,\textit{total}は\textbf{JAglue}以外のグルーによって負担される.
 \end{enumerate}
-\item \textit{total}が(A)--(H)の伸び量の合計よりも大きい場合,どうしようもないので
+\item \textit{total}が(A)--(K)の伸び量の合計よりも大きい場合,どうしようもないので
       \verb+^^;+何もしない.
 \end{enumerate}
 
@@ -8890,13 +10229,13 @@ JFM中にある文字クラス$n$の定義の
 が連続した場合に,$p$のフォントに対応したが持つ「異体字情報」に従って出力するグリフを変える.
 
 しかし,単に$p.\textit{char}$を変更するだけでは,後から
-font featureの適用(すぐ下)により置換される可能性がある.そのため,
+OpenType機能の適用(すぐ下)により置換される可能性がある.そのため,
 \cs{CID} や \cs{UTF} と同じように,\textit{glyph\_node}~$p$の代わりに
 \texttt{user\_id} が\textit{char\_by\_cid}であるようなuser-defined whatsitを用いている.
 \item[(\Pkg{luaotfload} によるfont featureの適用)]
 \item[\tt ltj.otf] \texttt{user\_id} が\textit{char\_by\_cid}であるようなuser-defined whatsitを
 きちんと\textit{glyph\_node}に変換する.この処理は,\cs{CID}, \cs{UTF}やIVSによる置換が,
-font featureの適用で上書きされてしまうのを防止するためである.
+OpenType機能の適用で上書きされてしまうのを防止するためである.
 \item[\tt ltj.main\_process] \textbf{JAglue}の挿入処理(\ref{sec-jfmglue}章)と,
 JFMの指定に従って各\textbf{JAchar}の「寸法を補正」することを行う.
 \end{description}
@@ -8985,14 +10324,14 @@ CMapが必要である.
 
 \pageref{para-cid}ページで述べたように,\texttt{cid}キーを使って
 非埋め込みの中国語・韓国語フォントを定義する場合,同様のキャッシュが生成される.
-キャッシュの名称,必要となるCMapについては表\ref{tab:cid-cache}を参照して欲しい.
+キャッシュの名称,必要となるCMapについては\autoref{tab:cid-cache}を参照して欲しい.
 
 \item[extra\_***.lua]
 フォント``\texttt{***}''における異体字セレクタの情報,縦組用字形への変換テーブル,そして
 縦組時における幅を格納している.構造は以下の通り:
 %</ja>
 %<*en>
-\subsection{Use of Cache}
+\subsection{Use of cache}
 
 \LuaTeX-ja uses the following cache:
 \begin{cslist}
@@ -9003,7 +10342,7 @@ It is created from three CMaps, \texttt{UniJIS2004-UTF32-\{H,V\}} and
             \texttt{Adobe-Japan1-UCS2},
 and this is why these two CMaps are needed in the first run of \LuaTeX-ja.
 
-Similar caches are created as Table~\ref{tab:cid-cache},
+Similar caches are created as \autoref{tab:cid-cache},
 if you specified \texttt{cid} key in \cs{jfont}
 to use other CID-keyed non-embedded fonts for Chinese or Korean,
 as in Page~\pageref{para-cid}.
@@ -9048,12 +10387,16 @@ return {
    [0]=37001,  --   <9089 E0100>
    991049,     --   <9089 E0101>
    ...
-   ["vert"]=995025, -- vertical variant
+   ["vform"]=995025, -- vertical variant
   },
   ...
+  ["unicodes"]={
+    ["aj102.pe.vert"]=984163, -- glyph name to unicode
+    ...
+  }
  },
  ["chksum"]="FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF", -- checksum of the fontfile
- ["version"]=2, -- version of the cache
+ ["version"]=11, -- version of the cache
 }
 \end{lstlisting}
 %<*ja>