OSDN Git Service

updated documents
[luatex-ja/luatexja.git] / doc / luatexja.dtx
index 1994d0a..6ee3177 100644 (file)
@@ -8,6 +8,7 @@
 
 %%%%% section ==> 章
 %%%%% subsection => 節
+\IfFileExists{luatex85.sty}{\RequirePackage{luatex85}}{}
 
 %<en>\documentclass[a4paper,titlepage]{article}
 %<ja>\documentclass[a4paper,titlepage]{ltjsarticle}
@@ -15,6 +16,7 @@
 %%%%%%%%
 \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}
 %%%%%%%% fonts
 \usepackage{luatexja-otf}
 \directlua{luatexja.otf.enable_ivs()}
-\usepackage[match]{luatexja-fontspec}
-\usepackage[kozuka-pr6n]{luatexja-preset}
-\usepackage{unicode-math}
+\usepackage[no-math]{fontspec}
 \setmainfont[Ligatures=TeX]{Linux Libertine O}
 \setmonofont[Scale=MatchLowercase, ItalicFont=lmmono10-italic.otf,
   BoldFont=lmmonolt10-bold.otf, BoldItalicFont=lmmonolt10-boldoblique.otf
 ]{lmmono10-regular.otf}
+\setsansfont[Scale=MatchLowercase,Ligatures=TeX]{Linux Biolinum O}
+\usepackage[match]{luatexja-fontspec}
+\usepackage[kozuka-pr6n]{luatexja-preset}
+\usepackage{unicode-math}
 \setmonojfont{KozGoPr6N-Regular.otf}
 \setmathfont[Scale=MatchLowercase]{xits-math.otf}
-\setsansfont[Scale=MatchLowercase,Ligatures=TeX]{Linux Biolinum O}
 
 \setLaTeXa{\scshape a}
 %<*ja>
@@ -451,7 +454,7 @@ 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}.
 
@@ -600,17 +603,17 @@ 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
 %<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, this version of \LuaTeX-ja no longer supports \TeX~Live~2015 (or older version).
 %<*ja>
-要約すると,本バージョンの\LuaTeX-jaは\TeX~Live~2014以前では動作しない\footnote{%
+要約すると,本バージョンの\LuaTeX-jaは\TeX~Live~2015以前では動作しない\footnote{%
   もっとも,自分で\LuaTeX のバイナリをSubversionリポジトリからビルドしていれば話は別である.
 }.
 %</ja>
@@ -814,7 +817,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>
@@ -1003,6 +1006,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
@@ -1034,6 +1059,12 @@ Okumura), namely, \Pkg{ltjclasses}\footnote{%
   The latter \texttt{ltjt*.cls} are for vertically writtened Japanese documents.
 } and \Pkg{ltjsclasses}\footnote{%
   \texttt{ltjsarticle.cls},~\texttt{ltjsbook.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>
 しかしながら,上記の設定は日本語の文書にとって十分とは言えない.
@@ -1048,6 +1079,12 @@ Okumura), namely, \Pkg{ltjclasses}\footnote{%
 \Pkg{ltjsclasses}\footnote{%
   \texttt{ltjsarticle.cls},~\texttt{ltjsbook.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>
@@ -1189,7 +1226,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}:
@@ -1276,7 +1313,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\}
@@ -1435,7 +1472,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.
 
@@ -1466,13 +1503,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}:
@@ -1480,7 +1518,6 @@ before \Pkg{luatexja-preset}:
 %<*ja>
 \Pkg{luatexja-fontspec}パッケージの機能を用いて和文フォントを選択する.
 これは,\Pkg{fontspec}パッケージが自動で読み込まれることを意味する.
-\emph{このオプションは標準で有効になっている.}
 
 もし\Pkg{fontspec}パッケージに何らかのオプションを渡す必要がある
 \footnote{例えば,数式フォントまで置換されてしまい,\cs{mathit}によってギリシャ文字の
@@ -1500,7 +1537,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}
@@ -1527,19 +1564,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>
@@ -1576,8 +1633,17 @@ 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の字形を使う.
@@ -1593,6 +1659,7 @@ Use the JFM \texttt{jfm-jis.lua}, instead of \texttt{jfm-ujis.lua}, which is the
 用いるJFMを(JISフォントメトリック類似の)\texttt{jfm-jis.lua}にする.このオプションがない時は
 \LuaTeX-ja標準の\texttt{jfm-ujis.lua}が用いられる.
 %</ja>
+
 \end{cslist}
 %<*en>
 Note that \texttt{90jis} and \texttt{jis2004} only affect with \textit{mincho},
@@ -1601,8 +1668,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}
@@ -1701,7 +1768,7 @@ Std/StdNフォントであり,その他はAdobe-Japan1-5対応である.
 \end{tabular}
 \end{center}
 
-%<ja>\medskip
+%<ja>\newpage
 
  \item[morisawa-pro]  Morisawa Pro (Adobe-Japan1-4) fonts.
 %<en>    \\*[-\dimexpr\medskipamount+\baselineskip\relax]
@@ -1761,7 +1828,8 @@ Std/StdNフォントであり,その他はAdobe-Japan1-5対応である.
 \end{tabular}
 \end{center}
 
- \item[moga-mobo]  MogaMincho, MogaGothic, and MoboGothic.
+%<en>\newpage
+\item[moga-mobo]  MogaMincho, MogaGothic, and MoboGothic.
 %<en>These fonts can be downloaded from\\\hfill \url{http://yozvox.web.fc2.com/}.
 %<ja>これらのフォントは \url{http://yozvox.web.fc2.com/} からダウンロードできる.
 
@@ -1775,9 +1843,9 @@ Std/StdNフォントであり,その他はAdobe-Japan1-5対応である.
 %<ja>\smash{\raisebox{1.5ex}{\gt 明朝}}%
  &bold&Moga90Mincho Bold&MogaMincho Bold\\
 \midrule
- &&Moga90Gothic&MogaGothic\\
+ &&Moga90Gothic*&MogaGothic*\\
  &\smash{\raisebox{1.5ex}{medium}}
- &Moga90Gothic&MogaGothic\\
+ &Moga90Gothic Bold&MogaGothic Bold\\
 \cmidrule(l){2-4}
 %<en>\textit{gothic}%
 %<ja>\gt ゴシック
@@ -2172,7 +2240,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\
@@ -2311,7 +2379,7 @@ 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}, 
+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.
 
@@ -2320,7 +2388,7 @@ package is 182. This codepoint corresponds \P\ (\text{U+00B6}) in Unicode.
 Similarly, \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), 
+\text{JAchar}s, then \cs{textparagraph} produces ``ltjjachar`¶'' (in a Japanese font),
 and  \cs{Frowny} produces ``\ltjjachar`§'' (in a Japanese font).
 
 To avoid such situations, the default setting of \LuaTeX-ja is changed in this release
@@ -2629,7 +2697,7 @@ becuse a \emph{JAchar} is encapsulated by a horizontal box if needed.
 数式中の挙動は異なっているので注意が必要である.
 例えば,表\ref{tab:math_bsa}のように,数式中に明示的に現れた \cs{hbox} は,
 \begin{itemize}
- \item \pTeX では,ボックス全体が \cs{ybaselineshift} だとシフトされるので,
+ \item 2015年以前の\pTeX では,ボックス全体が \cs{ybaselineshift} だとシフトされるので,
  表\ref{tab:math_bsa}中の``い''のように,ボックス中の和文文字は
  \ \cs{ybaselineshift} だけシフトされ,一方,``for all''のように,
  ボックス内の欧文文字は2重にシフトされることになる.
@@ -2637,6 +2705,10 @@ becuse a \emph{JAchar} is encapsulated by a horizontal box if needed.
  数式中に明示的に現れた \cs{hbox} はシフトしない.そのため,
  表\ref{tab:math_bsa}中の``い''も``for all''も,それぞれ本文中に
  書かれたときと同じ上下位置に組まれる.
+
+ なお,\TeX~Live~2016以降の\pTeX では改修がなされ,\LuaTeX-jaと
+ 近い挙動になるようにしているが,数式中に直に書かれた``あ''のベースラインについては
+ まだ違いが見られる.
 \end{itemize}
 \begin{table}
 \small\centering
@@ -2653,12 +2725,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$,
@@ -2749,13 +2825,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
@@ -2770,7 +2846,7 @@ For the detail, see Table~\ref{table-kcat}.
 \medskip
 
 %<*ja>
-文字ウィドウ処理\hbox{}$^*$: 「漢字が一文字だけ次の行に行くのを防ぐ」\
+文字ウィドウ処理:「漢字が一文字だけ次の行に行くのを防ぐ」
 \cs{jcharwidowpenalty} が,
 その文字の直前に挿入されうるか否か,を示す.
 %</ja>
@@ -2842,17 +2918,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>
@@ -2865,7 +2946,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}
@@ -2873,16 +2953,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 における初期設定と同じになるようにしている.}
@@ -3856,7 +3940,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}の自然長/伸び量/縮み量の一部が
 同じ場所に挿入される」という状況が起こりうる.
@@ -3894,13 +3978,12 @@ JFM中における \texttt{kanjiskip\_natural}, \texttt{kanjiskip\_stretch},\
 \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
@@ -4090,6 +4173,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>(必須)
@@ -4211,20 +4305,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&the width of the ``real'' glyph&1.0~(full-width)\\
+\texttt{height} field&the height of the ``real'' glyph&0.5~(half-width)\\
+\texttt{depth} field&the depth of the ``real'' glyph&0.5~(half-width)\\
+\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 Table~\ref{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}&「実際のグリフ」の幅&1.0(全角)\\
+\texttt{height}&「実際のグリフ」の高さ&0.5(二分)\\
+\texttt{depth}&「実際のグリフ」の深さ&0.5(二分)\\
+\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>
 
@@ -4537,7 +4659,7 @@ and is also easy to shrink.
   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
@@ -4548,7 +4670,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).
@@ -4567,12 +4689,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}
 
@@ -5051,7 +5198,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}
@@ -5090,7 +5237,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.
@@ -5151,11 +5298,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.
@@ -5716,7 +5863,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}.
@@ -6070,8 +6217,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」と「あ」の中心線を一致させるために,
@@ -6085,8 +6234,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>\}]
@@ -6224,11 +6377,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>
@@ -6248,7 +6401,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{欧文フォントファミリとしての認識}
@@ -6259,7 +6412,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>
@@ -6287,7 +6440,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>
@@ -6312,7 +6465,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>
@@ -6429,7 +6582,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>
@@ -6688,10 +6841,14 @@ JFMの\texttt{chars}テーブルのエントリとして \verb+'AJ1-xxx'+ の形
 %<*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:}
+\Pkg{luaotfload} and \Pkg{fontspec} packages used to be not supported IVS,
+so we implemented experimental IVS support in \Pkg{luatexja-otf},
+which is activated by
+\begin{lstlisting}
+\directlua{luatexja.otf.enable_ivs()}
+\end{lstlisting}
+However, recent \Pkg{luaotfload} and \Pkg{fontspec} packages seem to support IVS,
+so we don't execute above command anymore.
 %</en>
 %<*ja>
 \paragraph{IVSサポート}
@@ -6700,67 +6857,15 @@ IVS, so we implemented IVS support in \Pkg{luatexja-otf}.
 (漢字用異体字セレクタ)を後置することによって
 字形を指定する仕組み(IVS)が含まれている.
 執筆時点の2013年12月では,\Pkg{luaotfload}や\Pkg{fontspec}パッケージ類は
-IVSに対応してはいないようである.これらのパッケージで対応してくれるのが理想的だが,
-それまでのつなぎとして,\Pkg{luatexja-otf}パッケージ内にIVS対応を仕込んでおいた.
-
-\medskip
-
-\emph{IVS対応は試験的なものである.
-有効にするには,\Pkg{luatexja-otf}パッケージを読み込んだ上で以下の命令を実行する%
-\footnote{この命令を2回以上実行しても意味がない.}:}
-%</ja>
+IVSに対応してはいないようであったため,
+\Pkg{luatexja-otf}パッケージ内に試験的なIVS対応を実装した.これは以下の命令の実行で有効になる:
 \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 コードが参考になるだろう.
+しかし,現在の\Pkg{luaotfload}や\Pkg{fontspec}パッケージは
+IVSに対応しているようであるので,もはや上の命令を実行する必要はない.
 %</ja>
 
-
 \subsection{\Pkg{luatexja-adjust}}
 \label{ssec-adj}
 \begin{figure}[t]
@@ -6826,7 +6931,7 @@ for making the difference obvious.
 \end{itemize}
 
 
-\Pkg{luatexja-adjust} は,以下の命令を提供する.これらはすべてグローバルに効力を発揮する.
+\Pkg{luatexja-adjust}は,以下の命令を提供する.これらはすべてグローバルに効力を発揮する.
 
 \begin{cslist}
 \item[\cs{ltjdisableadjust}]
@@ -7305,6 +7410,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>
@@ -7911,6 +8028,7 @@ to State~$M$ (middle of line) sometimes.
 
 %<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
@@ -7925,14 +8043,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})
@@ -7960,7 +8080,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}.
@@ -7985,13 +8105,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})
@@ -8021,7 +8143,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}で終わることになり,
@@ -8794,7 +8916,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).
@@ -8802,7 +8924,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>
@@ -8821,45 +8943,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}
@@ -9105,7 +9227,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}については,以下の順序に従って文字種を決める:
@@ -9142,7 +9264,7 @@ the \texttt{lstlisting} environment or other environments/commands.
 %<*ja>
 \section{和文の行長補正方法}
 \label{sec-adjspec}
-\Pkg{luatexja-adjust} で提供される優先順位付きの行長調整の詳細を述
+\Pkg{luatexja-adjust}で提供される優先順位付きの行長調整の詳細を述
 べる.大まかに述べると,次のようになる.
 \begin{itemize}
 \item 通常の\TeX の行分割方法に従って,段落を行分割する.この段階では,行
@@ -9163,13 +9285,9 @@ the \texttt{lstlisting} environment or other environments/commands.
 \paragraph{準備:合計伸縮量の計算}
 グルーの伸縮度(\texttt{plus} や \texttt{minus} で指定されている値)には,
 有限値の他に,\texttt{fi},\texttt{fil},\texttt{fill},\texttt{filll}と
-いう4つの無限大レベル(後ろの方ほど大きい)があり,行の調整に
-\texttt{fi} などの\emph{無限大レベルの伸縮度が用いられている場合は,そ
-の行に対しての処理を中止}する.
-
-よって,以降,問題にしている行の行長調整は伸縮度が有限長のグルーを用いて
-行われているとして良い.さらに,簡単のため,この行はグルーが広げられている
-(自然長で組むと望ましい行長よりの短い)場合しか扱わない.
+いう4つの無限大レベル(後ろの方ほど大きい)がある.行の調整に
+\texttt{fi} などの\emph{無限大レベルの伸縮度が用いられている行では,
+「行末文字の位置調整」のみ行い,「グルーの調整」は行わない.}
 
 まず,段落中の行中のグルーを
 \begin{itemize}
@@ -9181,42 +9299,53 @@ the \texttt{lstlisting} environment or other environments/commands.
 \item 和欧文間空白(\Param{xkanjiskip})
 \item 和文間空白(\Param{kanjiskip})
 \end{itemize}
-の$1+1+5+1=8$つに類別し,それぞれの種別ごとに
-許容されている伸び量(\texttt{stretch}の値)の合計を計算する.
-また,行長と自然長との差を\textit{total}とおく.
-
+の$1+1+5+1=8$つに類別する.
+そして許容されている伸び量(\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{行末文字の位置調整}
 行末が文字クラス$n$の\textbf{JAchar}であった場合,
-それを動かすことによって,\textit{total}のうち
-\textbf{JAglue}が負担する分を少なくしようとする.
-この行末文字の左右の移動可能量は,
-JFM中にある文字クラス$n$の定義の
-\texttt{end\_stretch},~\texttt{end\_shrink}フィールドに
-全角単位の値として記述されている.
-
-例えば,行末文字が句点「。」であり,そこで用いられている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}
-となる.
+\texttt{end\_adjust} の値のいずれかだけこの文字の位置を移動させる.
 
-行末文字を移動した場合,その分だけ\textit{total}の値を引いておく.
+\begin{quote}
+  \texttt{end\_adjust = \{$a_{1}$, $a_{2}$, ..., $a_{n}$\}}
+\end{quote}
+であったとする.各$1\leq i\leq n$に対して,
+「行末に$a_{i}$全角だけのカーンを追加した時の,\textit{glue\_set}の値」を
+$b_{i}$とおく.式で書くと,
+\[
+\catcode`\<=12
+b_{i} = \begin{cases}
+  |\textit{total}-a_{i}\cdot \text{\cs{zw}}|/T^{+}
+         &(\textit{total}-a_{i}\text{\cs{zw}}\geq 0)\\
+  |\textit{total}-a_{i}\cdot \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{グルーの調整}
-\textit{total}の分だけが,行中のグルーの伸び量に応じて負担されることになる.
+$|\textit{total}|$の分だけが,行中のグルーの伸び量に応じて負担されることになる.
+以下,$\textit{total}\geq 0$であると仮定して話を進めるが,負のときも同様である.
 負担するグルーの優先度は以下の順であり,
 できるだけ\Param{kanjiskip}を自然長のままにすることを
 試みている.
@@ -9440,12 +9569,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>