OSDN Git Service

fig a bug in lltjext + array
[luatex-ja/luatexja.git] / doc / luatexja.dtx
index 40b69f6..82a7ec2 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{metalogo,amsmath,array,tikz,pict2e,multienum,float}
 \usepackage{booktabs,multicol,luatexja-ruby}
 \usepackage[all]{xy}
 \usepackage{lltjext,alltt}
 
+%%%%%%%% 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()}
-\expandafter\let\csname xetex_suppressfontnotfounderror:D\endcsname\suppressfontnotfounderror
-\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>
@@ -42,7 +58,7 @@
 \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
 %<*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}
 
 \def\_{\leavevmode \kern .06em\vbox {\hrule \@width .333em}}
 \def\cs#1{\texttt{\upshape
-  \texorpdfstring{\textbackslash\ltjsetparameter{autoxspacing=false}#1}{\textbackslash#1}}}
-
+  \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}{\underline{\smash{\textsf{#1}}}}} % parameter name
-\protected\def\DParam#1{\hypertarget{fld:#1}{\underline{\smash{\textsf{#1}}}}} % parameter name (definition)
+\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{
@@ -307,7 +336,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 で追加された次のようなプリミティブ
@@ -452,13 +481,14 @@ Japanese characters in discretionary break (\cs{discretionary}) is not supported
 %<*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, 
+      To change this behavior,
       put \verb!\ltjsetparameter{jacharrange={-2,-3}}! in the preamble.
       For the detailed description, see Subsection~\ref{ssec-setrange}.
 
-From this version, characters which belongs both ISO~8859-1 and JIS~X~0208,
-      such as \P~and~\S, are now typeset in alphabetic fonts. This means that
-      without the \cs{fontspec} (and~\Pkg{luatexja-fontspec}) package, these characters are not typeset correctly.
+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の記号}
@@ -473,10 +503,13 @@ From this version, characters which belongs both ISO~8859-1 and JIS~X~0208,
       詳しい説明は\ref{ssec-setrange}節を参照してほしい.
 
 また,\P,~\S といったISO~8859-1の上位領域とJIS~X~0208の共通部分の文字は
-      本バージョンから標準で欧文扱いとなり,\emph{ソース中に直接記述しても
-      \Pkg{fontspec}パッケージ(および\Pkg{luatexja-fontspec}パッケージ)非読み込みの状態では出力されなくなった}.
-      和文扱いで出力するには \verb+\ltjjachar`§+ のように \cs{ltjjachar} 命令
-      を使えばよい.
+      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}
@@ -601,17 +634,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>
@@ -779,14 +813,25 @@ 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 the 1\,GB~(or~2\,GB) memory limitation. So typesetting a large source by LuaJIT\TeX\ 
+    may cause an ``out of memory'' error.
+  }.
 %</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")}でガベージコレクタを実行」すると
+    状況が多少改善されるかもしれない.
+  }.
 %</ja>
 
 \item%
@@ -815,7 +860,7 @@ 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 a test file which loads \LuaTeX-ja in this directory, 
+run a test file which loads \LuaTeX-ja in this directory,
 and finally delete the temporary directory.
 %</en>
 %<*ja>
@@ -847,7 +892,7 @@ 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}\\
@@ -864,7 +909,7 @@ 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}\\
@@ -1004,6 +1049,28 @@ Note that the bold series in both family are same as the medium series of \emph{
 
 %<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 \emph{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
@@ -1032,9 +1099,15 @@ 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} use different method%
+\footnote{Similar to \texttt{magstyle=xreal} in the \Pkg{BXjscls} classes (by Takayuki Yato).}
+to set the main document font size.
 %</en>
 %<*ja>
 しかしながら,上記の設定は日本語の文書にとって十分とは言えない.
@@ -1047,23 +1120,53 @@ Okumura), namely, \Pkg{ltjclasses}\footnote{%
   縦組用は \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{ltjsclasses}ではフォントサイズを指定するのに\cs{mag}プリミティブが使われていたが,
+\LuaTeX~beta-0.87.0以降ではPDF出力時の\cs{mag}のサポートが廃止された.
+そのため,\Pkg{ltjsclasses}では別の方法
+\footnote{八登崇之氏による\Pkg{BXjscls}クラスにおける\texttt{magstyle=xreal}指定時と類似している.}で
+フォントサイズを指定することにしている.
 %</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>
 %%% ↑は英訳しない
 
@@ -1190,7 +1293,7 @@ auto select&\cs{fontencoding}&\cs{fontfamily}&---&---&\cs{usefont}\\
 %<*en>
 \item For defining a Japanese font family, use
       \cs{DeclareKanjiFamily} instead of
-      \cs{DeclareFontFamily}. (In previous version of \LuaTeX-ja, 
+      \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}:
@@ -1277,7 +1380,7 @@ this chapter. For the method, please see Subsection~\ref{ssec-math}.
 %<ja>\subsection{\Pkg{luatexja-fontspec}パッケージ}
 \label{ssec-fontspec}
 %<*en>
-To use the functionality of the \Pkg{fontspec} package to Japanese fonts, 
+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\}
@@ -1436,7 +1539,7 @@ JIS~X~0208:1990→辻
 
 %<*en>
 One can load the \Pkg{luatexja-preset}
-package to use several ``presets'' of Japanese fonts. 
+package to use several ``presets'' of Japanese fonts.
 This package provides functions in a part of
 \Pkg{japanese-otf} package and a part of \Pkg{PXchfon} package by Takayuki Yato.
 
@@ -1467,13 +1570,14 @@ For example, the line~5 in below example is eqivalent to lines 1--3.
 %<en>\paragraph{General options}
 %<ja>\paragraph{一般的なオプション}
 \begin{cslist}[before*=]
-
-\item[fontspec]
+\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.
-\emph{This option is enabled by default.}
 
 If you need to pass some options to \Pkg{fontspec}, you can load \Pkg{fontspec} manually
 before \Pkg{luatexja-preset}:
@@ -1481,7 +1585,6 @@ before \Pkg{luatexja-preset}:
 %<*ja>
 \Pkg{luatexja-fontspec}パッケージの機能を用いて和文フォントを選択する.
 これは,\Pkg{fontspec}パッケージが自動で読み込まれることを意味する.
-\emph{このオプションは標準で有効になっている.}
 
 もし\Pkg{fontspec}パッケージに何らかのオプションを渡す必要がある
 \footnote{例えば,数式フォントまで置換されてしまい,\cs{mathit}によってギリシャ文字の
@@ -1501,7 +1604,7 @@ With this option, selecting Japanese fonts won't be performed using the function
 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, 
+\emph{not} loaded by default. Nevertheless,
 the package\Pkg{fontspec} can coexist with the option, as the following:
 \begin{lstlisting}
 \usepackage{fontspec}
@@ -1528,19 +1631,39 @@ In this case, one can use \cs{setmainfont} etc.\ to select \emph{alphabetic} fon
             いる場合は \texttt{nfssonly} オプションは無視される.
 %</ja>
 
-\item[nodeluxe]
+\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.
-\emph{This option is enabled by default.}
 %</en>
 %<*ja>
+\texttt{deluxe}オプションの否定.
 \LaTeXe 環境下の標準設定のように,明朝体・ゴシック体を各1ウェイトで使用する.
 より具体的に言うと,この設定の下では
 \ \verb+\mcfamily\bfseries+, \verb+\gtfamily\bfseries+,
 \verb+\gtfamily\mdseries+はみな同じフォントとなる.
-\emph{このオプションは標準で有効になっている.}
 %</ja>
 \item[deluxe]
 %<*en>
@@ -1577,23 +1700,44 @@ characters designed for ruby.
 }.
 %</ja>
 \item[bold]
-%<en>Substitute bold series of \textit{gothic} for  bold series of \textit{mincho}.
-%<ja>「明朝の太字」をゴシック体の太字によって代替する.
+%<*en>
+Substitute bold series of \textit{gothic} for  bold series of \textit{mincho}.
+If \texttt{nodeluxe} option is enabled, medium series of \textit{gothic} is also changed,
+since we use same font for both series of \textit{gothic}.
+%</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[jis]
+\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-jis.lua}, instead of \texttt{jfm-ujis.lua}, which is the default JFM of
-\LuaTeX-ja.
+Use the JFM \texttt{jfm-<jfm>.lua} for vertical direction, instead of \texttt{jfm-ujisv.lua}~(default JFM).
 %</en>
 %<*ja>
\94¨ã\81\84ã\82\8bJFMã\82\92ï¼\88JISã\83\95ã\82©ã\83³ã\83\88ã\83¡ã\83\88ã\83ªã\83\83ã\82¯é¡\9eä¼¼ã\81®ï¼\89\texttt{jfm-jis.lua}にする.このオプションがない時は
-\LuaTeX-ja標準の\texttt{jfm-ujis.lua}が用いられる.
¸¦ç\94¨å\92\8cæ\96\87ã\83\95ã\82©ã\83³ã\83\88ã\81§ç\94¨ã\81\84ã\82\8bJFMã\82\92\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 \textit{mincho},
@@ -1602,8 +1746,8 @@ We didn't taken account of  when both \texttt{90jis} and \texttt{jis2004} are sp
 %</en>
 %<*ja>
 \texttt{90jis}と\texttt{jis2004}については本パッケージで定義された
-明朝体・ゴシック体(・丸ゴシック体)にのみ有効である.両オプションが
-同時に指定された場合の動作については全く考慮していない.
+明朝体・ゴシック体(・丸ゴシック体)にのみ有効である.
+両オプションが同時に指定された場合の動作については全く考慮していない.
 %</ja>
 
 %<en>\paragraph{Presets for multi weight}
@@ -1638,7 +1782,7 @@ There is not rounded gothic family in Kozuka fonts.
 \begin{center}\small
 \begin{tabular}{cllll}
 \toprule
-\bf family&\bf series&\tt kozuka-pro&\tt kozuka-pr6&\tt kozuka-pr6n\\
+\bfseries family&\bfseries series&\ttfamily kozuka-pro&\ttfamily kozuka-pr6&\ttfamily kozuka-pr6n\\
 \midrule
  &medium&KozMinPro-Regular&KozMinProVI-Regular&KozMinPr6N-Regular\\
 %<en>\smash{\raisebox{1.5ex}{\textit{mincho}}}%
@@ -1702,12 +1846,9 @@ Std/StdNフォントであり,その他はAdobe-Japan1-5対応である.
 \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
@@ -1732,40 +1873,43 @@ Std/StdNフォントであり,その他はAdobe-Japan1-5対応である.
 \end{tabular}
 \end{center}
 
+\newpage
  \item[yu-win]  Yu fonts bundled with Windows~8.1.
 %<en>    \\*[-\dimexpr\medskipamount+\baselineskip\relax]
+ \item[yu-win10]  Yu fonts bundled with Windows~10.
+%<en>    \\*[-\dimexpr\medskipamount+\baselineskip\relax]
  \item[yu-osx]  Yu fonts bundled with OSX~Mavericks.
-
 \begin{center}\small
-\begin{tabular}{clll}
+\begin{tabular}{cllll}
 \toprule
-\bf family&\bf series&\tt yu-win&\tt yu-osx\\
+\bf family&\bf series&\texttt{yu-win}&\texttt{yu-win10}&\texttt{yu-osx}\\
 \midrule
- &medium&YuMincho-Regular&YuMincho~Medium\\
+ &medium&YuMincho-Regular&YuMincho-Regular&YuMincho~Medium\\
 %<en>\smash{\raisebox{1.5ex}{\textit{mincho}}}%
 %<ja>\smash{\raisebox{1.5ex}{\gt 明朝}}%
- &bold&YuMincho-Demibold&YuMincho~Demibold\\
+ &bold&YuMincho-Demibold&YuMincho-Demibold&YuMincho~Demibold\\
 \midrule
- &&YuGothic-Regular*&YuGothic~Medium*\\
- &\smash{\raisebox{1.5ex}{medium}}
&YuGothic-Bold&YuGothic~Bold\\
-\cmidrule(l){2-4}
+ &&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\\
- &heavy&YuGothic-Bold&YuGothic~Bold\\
+ &bold&YuGothic-Bold&YuGothic-Bold&YuGothic~Bold\\
+ &heavy&YuGothic-Bold&YuGothic-Bold&YuGothic~Bold\\
 \midrule
 %<en>\textit{rounded gothic}
 %<ja>\gt 丸ゴシック
-&&YuGothic-Bold&YuGothic~Bold\\
+&&YuGothic-Bold&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/}.
+\item[moga-mobo]  MogaMincho, MogaGothic, and MoboGothic.
+%<en>    \\*[-\dimexpr\medskipamount+\baselineskip\relax]
+\item[moga-mobo-ex]  MogaExMincho, MogaExGothic, and MoboExGothic.
+%<en>\par These fonts can be downloaded from \url{http://yozvox.web.fc2.com/}.
 %<ja>これらのフォントは \url{http://yozvox.web.fc2.com/} からダウンロードできる.
-
 \begin{center}\small
 \begin{tabular}{clll}
 \toprule
@@ -1776,10 +1920,7 @@ Std/StdNフォントであり,その他はAdobe-Japan1-5対応である.
 %<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}
+ &medium&Moga90Gothic&MogaGothic\\
 %<en>\textit{gothic}%
 %<ja>\gt ゴシック
  &bold&Moga90Gothic Bold&MogaGothic Bold\\
@@ -1791,6 +1932,99 @@ Std/StdNフォントであり,その他はAdobe-Japan1-5対応である.
 \bottomrule
 \end{tabular}
 \end{center}
+%<en>When \texttt{moga-mobo-ex} is specified, the font ``MogaEx90Mincho'' etc.\ are used.
+%<ja>\texttt{moga-mobo-ex}オプション指定時にはMogaEx90MinchoなどのExが名前についたフォントが使われる.
+
+\item[ume]  Ume Mincho and Ume Gothic.
+%<en>\par These fonts can be downloaded from\\\hfill \url{https://ja.osdn.net/projects/ume-font/wiki/FrontPage}.
+%<ja>これらのフォントは \url{https://ja.osdn.net/projects/ume-font/wiki/FrontPage} からダウンロードできる.
+\begin{center}\small
+\begin{tabular}{cll}
+\toprule
+\bf family&\bf series&\bf default\\
+\midrule
+ &medium&Ume Mincho\\
+%<en>\smash{\raisebox{1.5ex}{\textit{mincho}}}%
+%<ja>\smash{\raisebox{1.5ex}{\gt 明朝}}%
+ &bold&Ume Mincho\\
+\midrule
+ &&Ume Gothic*\\
+ &\smash{\raisebox{1.5ex}{medium}}&Ume Gothic O5\\
+\cmidrule(l){2-3}
+%<en>\textit{gothic}%
+%<ja>\gt ゴシック
+ &bold&Ume Gothic O5\\
+ &heavy&Ume Gothic O5\\
+\midrule
+%<en>\textit{rounded gothic}
+%<ja>\gt 丸ゴシック
+&&Ume Gothic O5\\
+\bottomrule
+\end{tabular}
+\end{center}
+
+%<ja>\newpage
+ \item[sourcehan]  Source Han Serif and Source Han Sans fonts (Language-specific OTF \textit{or} OTC)
+%<en>    \\*[-\dimexpr\medskipamount+\baselineskip\relax]
+ \item[sourcehan-jp]  Source Han Serif JP and Source Han Sans JP fonts (Region-specific Subset OTF)
+\begin{center}\small
+\def\AD#1#2{Source Han #1 #2&Source Han #1 JP #2}%
+\begin{tabular}{cllll}
+\toprule
+\bf family&\bf series&\texttt{sourcehan}&\texttt{sourcehan-jp}\\
+\midrule
+ &medium&\AD{Serif}{Regular}\\
+%<en>\smash{\raisebox{1.5ex}{\textit{mincho}}}%
+%<ja>\smash{\raisebox{1.5ex}{\gt 明朝}}%
+ &bold&\AD{Serif}{Bold}\\
+\midrule
+ &&\AD{Sans}{Regular*}\\
+ &\smash{\raisebox{1.5ex}{medium}}
+ &\AD{Sans}{Medium}\\
+\cmidrule(l){2-4}
+%<en>\smash{\raisebox{2ex}{\textit{gothic}}}%
+%<ja>\smash{\raisebox{2ex}{\gt ゴシック}}%
+ &bold&\AD{Sans}{Bold}\\
+ &heavy&\AD{Sans}{Heavy}\\
+\midrule
+%<en>\textit{rounded gothic}
+%<ja>\gt 丸ゴシック
+&&\AD{Sans}{Heavy}\\
+\bottomrule
+\end{tabular}
+\end{center}
+
+
+ \item[noto-otc]  Noto Serif CJK and Noto Sans CJK fonts (OTC)
+%<en>    \\*[-\dimexpr\medskipamount+\baselineskip\relax]
+ \item[noto-otf]  Noto Serif CJK and Noto Sans CJK fonts (Language-specific OTF)
+\begin{center}\small
+\def\AD#1#2{Noto #1 CJK #2&Noto #1 CJK JP #2}%
+\begin{tabular}{cllll}
+\toprule
+\bf family&\bf series&\texttt{noto-otc}&\texttt{noto-otf}\\
+\midrule
+ &medium&\AD{Serif}{Regular}\\
+%<en>\smash{\raisebox{1.5ex}{\textit{mincho}}}%
+%<ja>\smash{\raisebox{1.5ex}{\gt 明朝}}%
+ &bold&\AD{Serif}{Bold}\\
+\midrule
+ &&\AD{Sans}{Regular*}\\
+ &\smash{\raisebox{1.5ex}{medium}}
+ &\AD{Sans}{Medium}\\
+\cmidrule(l){2-4}
+%<en>\smash{\raisebox{2ex}{\textit{gothic}}}%
+%<ja>\smash{\raisebox{2ex}{\gt ゴシック}}%
+ &bold&\AD{Sans}{Bold}\\
+ &heavy&\AD{Sans}{Black}\\
+\midrule
+%<en>\textit{rounded gothic}
+%<ja>\gt 丸ゴシック
+&&\AD{Sans}{Black}\\
+\bottomrule
+\end{tabular}
+\end{center}
+
 
 
 \end{cslist}
@@ -2173,7 +2407,7 @@ This range consists of the following Unicode ranges, \emph{except characters in
 \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\ 
+%<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\
@@ -2197,16 +2431,16 @@ This range consists of the following Unicode ranges, \emph{except characters in
 \end{multicols}
 %<*en>
 \item[Range~3${}^{\text{\kern.1emJ}}$] Punctuations and Miscellaneous symbols. The block list is
-          indicated in Table~\ref{table-rng3}.
+          indicated in \autoref{tab:rng3}.
 %</en>
 %<*ja>
-\item[範囲3${}^{\text{\kern.1emJ}}$] 句読点と記号類.ブロックのリストは表\ref{table-rng3}%
+\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{table-rng3}
+\label{tab:rng3}
 \catcode`\"=13\def"#1#2#3#4{\texttt{U+#1#2#3#4}}%"
 \centering\small
 \begin{tabular}{llll}
@@ -2250,12 +2484,12 @@ This range consists of the following Unicode ranges, \emph{except characters in
 \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}に示す.
+%<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{table-rng6}
+\label{tab:rng6}
 \catcode`\"=13\def"#1#2#3#4{\texttt{U+#1#2#3#4}}%"
 \centering\small
 \begin{tabular}{llll}
@@ -2280,17 +2514,17 @@ This range consists of the following Unicode ranges, \emph{except characters in
 \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}.
+The block list is indicated in \autoref{tab:rng7}.
 %</en>
 %<*ja>
 \item[範囲7${}^{\text{\kern.1emJ}}$] CJK言語で用いられる文字のうち,Adobe-Japan1-6に
                             含まれていないもの.
-                            ブロックのリストは表\ref{table-rng7}に示す.
+                            ブロックのリストは\autoref{tab:rng7}に示す.
 %</ja>
 \begin{table}[!tb]
 %<en>\caption{Unicode blocks in predefined character range~7.}\medskip
 %<ja>\caption{文字範囲7に指定されているUnicodeブロック.}
-\label{table-rng7}
+\label{tab:rng7}
 \catcode`\"=13\def"#1#2#3#4{\texttt{U+#1#2#3#4}}%"
 \centering\small
 \begin{tabular}{llll}
@@ -2312,17 +2546,13 @@ The block list is indicated in Table~\ref{table-rng7}.
 
 %<*en>
 \paragraph{Notes on \texttt{U+0080}--\texttt{U+00FF}}
-You should treat characters in \\texttt{U+0080}--\texttt{U+00FF} as \textbf{ALchar}, 
-when you use traditional 8-bit fonts, such as the \Pkg{textcomp} package or the
-\Pkg{marvosym} package.
+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, the codepoint \cs{textparagraph} which is provided by the \Pkg{textcomp}
-package is 182. This codepoint corresponds \P\ (\text{U+00B6}) in Unicode.
-Similarly, \cs{Frowny} which is provided by the \Pkg{marvosym} package has
+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{textparagraph} produces ``ltjjachar`¶'' (in a Japanese font), 
-and  \cs{Frowny} produces ``\ltjjachar`§'' (in a Japanese font).
+\text{JAchar}s, then \cs{Frowny} produces ``\ltjjachar`§'' (in a Japanese font).
 
 To avoid such situations, the default setting of \LuaTeX-ja is changed in this release
 so that all characters \texttt{U+0080}--\texttt{U+00FF} are treated as \textbf{ALchar}.
@@ -2337,22 +2567,16 @@ setting, you can use \cs{ltjalchar} and \cs{ltjjachar} respectively, as the foll
 %</en>
 %<*ja>
 \paragraph{\texttt{U+0080}--\texttt{U+00FF}についての注意}
-\LuaTeX-jaで,\Pkg{textcomp}パッケージや\Pkg{marvosym}パッケージ等,Unicodeフォントでなく
+\LuaTeX-jaで,\Pkg{marvosym}パッケージ等,Unicodeフォントでなく
 伝統的な8ビットフォントを用いる場合には注意が必要である.
 
-例えば,\Pkg{textcomp}パッケージの提供する \cs{textparagraph} は,
-符号位置が182,つまり \texttt{0xB6} であり,Unicodeではこの符号位置では\P\ (\text{U+00B6}) に対応する.
-また,\Pkg{marvosym}パッケージの提供する \cs{Frowny} も,符号位置は167,つまりUnicodeにおける
+例えば,\Pkg{marvosym}パッケージの提供する \cs{Frowny} も,符号位置は167,つまりUnicodeにおける
 \S\ (\text{U+00A7}) と同じ符号位置にある.
 即ち,以前のバージョンのように,「前節の文字範囲8内の文字は\textbf{JAchar}」という設定で
-あったとすると,上記の \cs{textparagraph} は和文フォントで「\ltjjachar`¶」を出力し,
-また \cs{Frowny} は和文フォントで「\ltjjachar`§」を出力することになる.
+あったとすると,上記の \cs{Frowny} は和文フォントで「\ltjjachar`§」を出力することになる.
 
 このような事態を避けるために,本バージョンからは \texttt{U+0080}--\texttt{U+00FF} の範囲の
 文字は全て\textbf{ALchar}となるように初期設定を変更している.
-特に影響を受けるのが,JIS~X~0208の一部分である文字範囲8内の文字であり,
-\emph{\Pkg{fontspec}パッケージを読み込んだりして欧文記号としてこれらの文字の出力環境を整え
-ないと,ソース中に直接記述しても出力されない}ことになる.
 
 なお,文字範囲の設定に関わらず1つの文字を\textbf{ALchar}, \textbf{JAchar}で出力したい場合には,
 以下の例のようにそれぞれ \cs{ltjalchar},~\cs{ltjjachar} に該当文字の文字コードを渡せばよい.
@@ -2363,6 +2587,7 @@ setting, you can use \cs{ltjalchar} and \cs{ltjjachar} respectively, as the foll
 \end{LTXexample}
 %</ja>
 
+
 %<en>\subsection{\Param{kanjiskip} and \Param{xkanjiskip}}
 %<ja>\subsection{\Param{kanjiskip}と\Param{xkanjiskip}}
 \label{subs-kskip}
@@ -2625,20 +2850,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}$)}
@@ -2654,12 +2888,16 @@ $\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$,
@@ -2687,6 +2925,7 @@ However, the penalty inserted after it is 10 which is the \Param{postbreakpenalt
 ``ア'', not 20.
 %</en>
 %<*ja>
+\newpage
 \subsection{禁則処理関連パラメータとOpenTypeのfont feature}
 禁則処理や \Param{kanjiskip}, \Param{xkanjiskip} の挿入に関連したパラメータのうち
 \begin{quote}
@@ -2726,7 +2965,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}
@@ -2734,13 +2973,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
@@ -2750,13 +2989,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
@@ -2771,7 +3010,7 @@ For the detail, see Table~\ref{table-kcat}.
 \medskip
 
 %<*ja>
-文字ウィドウ処理\hbox{}$^*$: 「漢字が一文字だけ次の行に行くのを防ぐ」\
+文字ウィドウ処理:「漢字が一文字だけ次の行に行くのを防ぐ」
 \cs{jcharwidowpenalty} が,
 その文字の直前に挿入されうるか否か,を示す.
 %</ja>
@@ -2843,17 +3082,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>
@@ -2866,7 +3110,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}
@@ -2874,16 +3117,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 における初期設定と同じになるようにしている.}
@@ -2894,7 +3141,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})} %"
@@ -2955,7 +3202,7 @@ for \LuaTeX, \emph{to match the \cs{catcode} setting with that of \XeTeX.}
 \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.
 
@@ -2968,7 +3215,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 より多くの文字が
 制御綴に使用可能になっている.
 
@@ -3072,7 +3319,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.
@@ -3085,7 +3332,7 @@ only when the current list is null. Also, the direction of a math formula is cha
 %</en>
 
 %<*ja>
-\LuaTeX-jaがサポートする組方向は表\ref{tab-dir}に示す4つである.
+\LuaTeX-jaがサポートする組方向は\autoref{tab-dir}に示す4つである.
 4列目の \cs{dtou} は聞き慣れない命令だと思うが,
 実は\pTeX に同名の命令が(ドキュメントには書かれていないが)存在する.
 Down-TO-Upの意味なのだろう.\cs{dtou} を使用する機会はないだろうが,
@@ -3113,7 +3360,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>
@@ -3134,7 +3381,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]
@@ -3447,7 +3694,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}+ を挙げておく.
 
@@ -3721,10 +3968,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>
 
@@ -3754,11 +4001,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 と似た状況で組版されることになる.
@@ -3791,7 +4038,7 @@ JFMもサイズも同じなので,普通に「)【」と入力した時と
 Some fonts have information for inter-glyph spacing.
 This version of \LuaTeX-ja 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,
@@ -3802,7 +4049,7 @@ because of the compatibility with previous versions of \LuaTeX-ja.
 このカーニング情報は以前の\LuaTeX-ja とはあまり相性が良くなかったが,
 本バージョンではカーニングによる空白はイタリック補正と同様に扱うことになっている.
 つまり,カーニング由来の空白とJFM由来のグルー・カーンは同時に入りうる.
-図\ref{fig:kern-jfm}を参照.
+\autoref{fig:kern-jfm}を参照.
 \begin{itemize}
  \item \emph{\cs{jfont} や,
 NFSS2用の命令(\ref{ssec-chgfnt}節,\ref{ssec-nfsspat}節)における指定では
@@ -3857,7 +4104,7 @@ letter-spacing and the width of italic correction are not correct:
 \paragraph{\texttt{ltjksp} 指定}
 \label{pg:ltjksp}
 \LuaTeX-ja標準では,
-JFM中における \texttt{kanjiskip\_natural}, \texttt{kanjiskip\_stretch},\ 
+JFM中における \texttt{kanjiskip\_natural}, \texttt{kanjiskip\_stretch},\
 \texttt{kanjiskip\_shrink}キー(\pageref{pg:ksp_nat}ページ)の使用によって,
 「JFM由来のグルーの他に,\Param{kanjiskip}の自然長/伸び量/縮み量の一部が
 同じ場所に挿入される」という状況が起こりうる.
@@ -3887,21 +4134,20 @@ JFM中における \texttt{kanjiskip\_natural}, \texttt{kanjiskip\_stretch},\
 %<ja>\subsection{\cs{tfont} 命令}
 
 
+{\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
@@ -3930,6 +4176,7 @@ JFM中における \texttt{kanjiskip\_natural}, \texttt{kanjiskip\_stretch},\
 \end{minipage}
 \ltjsetparameter{jacharrange={-3}}
 \end{table}
+}
 
 %<*en>
 ...
@@ -3950,7 +4197,7 @@ JFM中における \texttt{kanjiskip\_natural}, \texttt{kanjiskip\_stretch},\
 \end{lstlisting}
  \item \ref{ssec-math}節で述べる,数式中の和文フォントには縦組用和文フォントは指定できない.
  \item \texttt{jfm=<name>}\ の部分には縦組用JFMを指定する.
-以下の縦組用JFMが\LuaTeX-jaには同梱されており,違いを表\ref{tab-difjfm-tate}に示した.
+以下の縦組用JFMが\LuaTeX-jaには同梱されており,違いを\autoref{tab-difjfm-tate}に示した.
 \begin{description}
 \item[\tt jfm-ujisv.lua] \LuaTeX-jaの標準縦組用JFMである.このJFMは\upTeX で
   用いられるUTF/OTFパッケージ用の和文用TFMである \verb+upnmlminr-v.tfm+ を
@@ -4091,6 +4338,17 @@ floating-point numbers in design-size unit.
 
 \begin{cslist}[style=standard]
 
+\item[version=$1\mathrel{\textrm{or}}2$]
+%<en>(optional, default value is~1)
+%<ja>(任意,既定値は1)
+
+%<*en>
+The version JFM. Currently 1~and~2 are supported
+%</en>
+%<*ja>
+JFMのバージョン.1または2がサポートされる.
+%</ja>
+  
 \item[dir=<direction>]
 %<en>(required)
 %<ja>(必須)
@@ -4212,20 +4470,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>
 
@@ -4239,7 +4525,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>
 これらのフィールドは実際のグリフの位置を調整するためにある.
@@ -4247,8 +4533,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>
@@ -4365,7 +4651,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}%
@@ -4446,7 +4732,7 @@ 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=<ratio>]\}, ...\}}]
@@ -4488,12 +4774,16 @@ we specify <ratio> to $0.25/(0.5+0.25)=1/3$.
 次のキーを指定できる,
 \begin{cslist}[style=standard]
 \item[priority=<priority>]
-             \Pkg{luatexja-adjust} による優先順位付き
-            行長調整(\ref{ssec-adj}節)の際に使われる値であり,
-行調整処理におけるこのglueの優先
-             度を$-2$から$+2$の間の整数で指定する.大きい値ほど「伸びやすく,縮みやすい」
-             ことを意味する.省略時の値
-             は0であり,範囲外の値が指定されたときの動作は未定義である.
+             \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}
@@ -4530,15 +4820,17 @@ 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 $[-2,2]$ (treated as 0 if omitted), and this is
+An integer in $[-4,3]$ (treated as 0 if omitted), or
+a pair of these integers \texttt{\{<stretch>, <shrink>\}} (version~2 only).
+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.
+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 
+(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
@@ -4549,7 +4841,7 @@ a glue whose natural part and shrink part are both half-width, while its stretch
        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. 
+       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).
@@ -4568,12 +4860,37 @@ Hence we have the following result:
 
 \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}
 
@@ -4781,7 +5098,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.
@@ -4791,7 +5108,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} で定義された
@@ -4917,16 +5234,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>
@@ -4959,23 +5269,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{%
+\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{%
 本バージョンではノードのアクセス手法に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>
 
@@ -5052,7 +5373,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}
@@ -5091,7 +5412,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.
@@ -5152,11 +5473,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.
@@ -5717,7 +6038,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}.
@@ -5814,6 +6135,65 @@ 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}
 %<*en>
@@ -5903,7 +6283,6 @@ are typeset by \cs{piyo}.
 \end{LTXexample}
 %</ja>
 
-
 %<en>\section{Commands for \LaTeXe}
 %<ja>\section{\LaTeXe 用の命令}
 
@@ -6071,8 +6450,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」と「あ」の中心線を一致させるために,
@@ -6086,8 +6467,12 @@ 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>\}]
@@ -6145,7 +6530,7 @@ 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
@@ -6225,11 +6610,11 @@ We use an auxiliary list~$N_{\mathrm{J}}$.
 \item If the \Pkg{luatexja-fontspec} package is loaded, we stop here, and <family> is not
       recognized as a Japanese font family.
 
-      If the \Pkg{luatexja-fontspec} package is \emph{not} loaded, 
+      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 
+      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>
@@ -6249,7 +6634,7 @@ now \LuaTeX-ja looks whether there exists a Japanese font encoding~<enc> such th
 %<*en>
 \paragraph{Recognition as alphabetic font family}
 Next, whether alphabetic font family will be changed is determined in following order.
-We use auxiliary lists $F_{\mathrm{A}}$~and~$N_{\mathrm{A}}$, 
+We use auxiliary lists $F_{\mathrm{A}}$~and~$N_{\mathrm{A}}$,
 %</en>
 %<*ja>
 \paragraph{欧文フォントファミリとしての認識}
@@ -6260,7 +6645,7 @@ We use auxiliary lists $F_{\mathrm{A}}$~and~$N_{\mathrm{A}}$,
 
 \begin{enumerate}
 %<*en>
-\item If the family~<family> has been listed in a list~$F_{\mathrm{A}}$, 
+\item If the family~<family> has been listed in a list~$F_{\mathrm{A}}$,
       <family> is recognized as an alphabetic font family.
 %</en>
 %<*ja>
@@ -6288,7 +6673,7 @@ We use auxiliary lists $F_{\mathrm{A}}$~and~$N_{\mathrm{A}}$,
 \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). 
+      <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>
@@ -6313,7 +6698,7 @@ the second argument (family) is appended to the list~$F_{\mathrm{A}}$.
 
 %<*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, 
+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>
@@ -6340,6 +6725,64 @@ to use the default family for font substitution.
 和文・欧文の両方のフォントファミリを<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}
@@ -6430,7 +6873,7 @@ will not be embedded in the output PDF file. See Subsection~\ref{ssec-psft}.
 %<*ja>
 \pageref{pg:ltjksp}ページで説明した \verb+\jfont+ 中での \texttt{ltjksp} 指定と
 同一の効力を持ち,
-JFM中における \texttt{kanjiskip\_natural}, \texttt{kanjiskip\_stretch},\ 
+JFM中における \texttt{kanjiskip\_natural}, \texttt{kanjiskip\_stretch},\
 \texttt{kanjiskip\_shrink}キー(\pageref{pg:ksp_nat}ページ)の有効/無効を切り替える.
 標準値は \texttt{true} である.
 %</ja>
@@ -6441,22 +6884,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>
 縦組において使用されるフォントや,縦組においてのみ適用されるフォント機能達を
-指定する.使用例は図\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>
 同様に,横組においてのみ適用されるフォント機能達を
-指定する.使用例は図\ref{fig:yokotate-fontspec}参照.
+指定する.使用例は\autoref{fig:yokotate-fontspec}参照.
 %</ja>
 
 
@@ -6505,11 +6948,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}
 
@@ -6546,7 +6989,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>
@@ -6578,7 +7021,7 @@ 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}\ による
 OpenType機能指定は
@@ -6590,24 +7033,31 @@ OpenType機能指定は
 \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>\}]
@@ -6686,82 +7136,6 @@ 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による字形指定は,OpenType機能によるそれに優先されることとした.
-下の例において,\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{\Pkg{luatexja-adjust}}
 \label{ssec-adj}
 \begin{figure}[t]
@@ -6799,8 +7173,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}
 
 
@@ -6808,38 +7182,106 @@ 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{\Pkg{luatexja-ruby}}
@@ -7306,6 +7748,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>
@@ -7665,7 +8119,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},
@@ -7692,7 +8146,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}パッケージの提供する命令である.
 
@@ -7805,7 +8259,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>
 
@@ -7824,7 +8278,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 の入力処理部と同
 じものになる.
@@ -7906,12 +8360,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
@@ -7926,14 +8381,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})
@@ -7961,7 +8418,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}.
@@ -7986,13 +8443,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})
@@ -8022,7 +8481,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}で終わることになり,
@@ -8125,11 +8584,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>
@@ -8537,7 +8996,7 @@ 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グルー挿入処理は次のようにして行われる.
@@ -8727,7 +9186,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}
@@ -8795,7 +9254,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).
@@ -8803,7 +9262,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>
@@ -8822,45 +9281,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}
@@ -9106,7 +9565,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}については,以下の順序に従って文字種を決める:
@@ -9143,93 +9602,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までの優先度がついている.}%
+  各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}
 
+各$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}$全角の大きさだけ引いておく.
 
-\subsection{行末文字の位置調整}
-行末が文字クラス$n$の\textbf{JAchar}であった場合,
-それを動かすことによって,\textit{total}のうち
-\textbf{JAglue}が負担する分を少なくしようとする.
-この行末文字の左右の移動可能量は,
-JFM中にある文字クラス$n$の定義の
-\texttt{end\_stretch},~\texttt{end\_shrink}フィールドに
-全角単位の値として記述されている.
+\subsection{行末文字の位置調整(行分割での考慮)}
+\texttt{lineend=extended}が指定されている場合,\TeX による行分割が行われる前に
+各\textbf{JAchar}の直後に,その文字が行末に来たときの位置補正用のノードを挿入していく.
 
-例えば,行末文字が句点「。」であり,そこで用いられている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}
-となる.
-
-行末文字を移動した場合,その分だけ\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$となれば,
@@ -9246,7 +9760,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
@@ -9257,17 +9771,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}
 
@@ -9378,7 +9892,7 @@ CMapが必要である.
 
 \pageref{para-cid}ページで述べたように,\texttt{cid}キーを使って
 非埋め込みの中国語・韓国語フォントを定義する場合,同様のキャッシュが生成される.
-キャッシュの名称,必要となるCMapについては表\ref{tab:cid-cache}を参照して欲しい.
+キャッシュの名称,必要となるCMapについては\autoref{tab:cid-cache}を参照して欲しい.
 
 \item[extra\_***.lua]
 フォント``\texttt{***}''における異体字セレクタの情報,縦組用字形への変換テーブル,そして
@@ -9396,7 +9910,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}.
@@ -9441,12 +9955,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>