OSDN Git Service

manual (en): added description of \ltj@setpar@global etc.
[luatex-ja/luatexja.git] / doc / luatexja.dtx
index 0d4b361..829e5b2 100644 (file)
 \usepackage{metalogo,amsmath,array,tikz,pict2e,multienum,float}
 \usepackage{booktabs,multicol,luatexja-ruby}
 \usepackage[all]{xy}
-\usepackage{lltjext,alltt}
+\usepackage{lltjext,alltt,comment}
+
+%%%%%%%% Lua GC
 \patchcmd\@outputpage{\stepcounter{page}}{%
   \directlua{%
-    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
+       if jit then
+      local k = collectgarbage("count")
+      if k>900000 then 
+        collectgarbage("collect")
+        texio.write_nl("term and log", "GC: ", math.floor(k), math.floor(collectgarbage("count")))
+      end
+       end
   }%
   \stepcounter{page}%
 }{}{}
 
 %%%%%%%% fonts
 \usepackage{luatexja-otf}
-\directlua{luatexja.otf.enable_ivs()}
 \usepackage[no-math]{fontspec}
 \setmainfont[Ligatures=TeX]{Linux Libertine O}
 \setmonofont[Scale=MatchLowercase, ItalicFont=lmmono10-italic.otf,
@@ -54,7 +57,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
@@ -320,7 +335,7 @@ For more detailed information, see Part~\ref{part-imp} or other sections of this
 
 %<*en>
 \paragraph{Command names} \pTeX\ addes several primitives, such as \cs{kanjiskip},
-\cs{prebreakpenalty},~and,~\cs{ifydir}. They can be used as follows:
+\cs{prebreakpenalty},~and \cs{ifydir}. They can be used as follows:
 %</en>
 %<*ja>
 \paragraph{命令の名称} 例えば\pTeX で追加された次のようなプリミティブ
@@ -444,7 +459,7 @@ on the content of the register \emph{only}. This is major difference with \pTeX.
 %</en>
 %<*ja>
 \paragraph{組方向}
-20150420.0版からは,不安定ながらも\LuaTeX-ja における縦組みをサポートしている.
+バージョン20150420.0からは,不安定ながらも\LuaTeX-ja における縦組みをサポートしている.
 なお,\LuaTeX 本体も$\Omega$流の組方向をサポートしているが,それとは全くの別物であること
 に注意してほしい.
 特に,異なった組方向のボックスを扱う場合には
@@ -467,11 +482,12 @@ Japanese characters in discretionary break (\cs{discretionary}) is not supported
 By default, \LuaTeX-ja uses Japanese fonts to typeset Greek and Cyrillic letters,
       To change this behavior,
       put \verb!\ltjsetparameter{jacharrange={-2,-3}}! in the preamble.
-      For the detailed description, see Subsection~\ref{ssec-setrange}.
+      For the detailed description, see Subsection~\ref{ssec:setrange}.
 
 From version~20150906.0, characters which belongs both ISO~8859-1 and JIS~X~0208,
-      such as \P~and~\S, are now typeset in alphabetic fonts. This means that
-      without the \cs{fontspec} (and~\Pkg{luatexja-fontspec}) package, these characters are not typeset correctly.
+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の記号}
@@ -483,13 +499,16 @@ From version~20150906.0, characters which belongs both ISO~8859-1 and JIS~X~0208
 \end{lstlisting}
       を入れると
       上記種類の文字は欧文フォントを用いて組まれるようになる.
-      詳しい説明は\ref{ssec-setrange}節を参照してほしい.
+      詳しい説明は\ref{ssec:setrange}節を参照してほしい.
 
 また,\P,~\S といったISO~8859-1の上位領域とJIS~X~0208の共通部分の文字は
-      20150906.0版から標準で欧文扱いとなり,\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}
@@ -505,11 +524,11 @@ In this document, the following terms and notations are used:
 %<*en>
 \item Characters are classified into following two types.
       Note that the classification can be customized by a user
-      (see Subsection~\ref{ssec-setrange}).
+      (see Subsection~\ref{ssec:setrange}).
 %</en>
 %<*ja>
 \item 文字は次の2種類に分けられる.この類別は固定されているものではなく,ユーザが後から変更可能である
-      (\ref{ssec-setrange}節を参照).
+      (\ref{ssec:setrange}節を参照).
 %</ja>
 \begin{itemize}
 %<*en>
@@ -553,10 +572,10 @@ and \emph{Japanese fonts} for fonts used in \textbf{JAchar}.
 %</ja>
 %<*en>
 \item In this document, natural numbers start from~zero.
-  $\omega$ denotes the set of all natural numbers.
+  $\omega$ denotes the set of all natural numbers which can be used in \TeX.
 %</en>
 %<*ja>
-\item 本ドキュメントでは,自然数は0から始まる.自然数全体の集合は$\omega$と表記する.
+\item 本ドキュメントでは,自然数は0から始まる.(\TeX で扱える)自然数全体の集合は$\omega$と表記する.
 %</ja>
 \end{itemize}
 
@@ -617,15 +636,15 @@ and \emph{Japanese fonts} for fonts used in \textbf{JAchar}.
 \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{ltxcmds}, \Pkg{pdftexcmds}, \Pkg{atbegshi}
-\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, \LuaTeX-ja version 20160404.0 (or~later) no longer supports \TeX~Live~2015.
 %<*ja>
-要約すると,20160404.0版以降の\LuaTeX-jaは\TeX~Live~2015以前では動作しない\footnote{%
+要約すると,バージョン20160404.0以降の\LuaTeX-jaは\TeX~Live~2015以前では動作しない\footnote{%
   もっとも,自分で\LuaTeX のバイナリをSubversionリポジトリからビルドしていれば話は別である.
 }.
 %</ja>
@@ -793,14 +812,28 @@ For changes from \pTeX, see Subsection~\ref{ssec:chgptex}.
 %</ja>
 %<*en>
 \item \LuaTeX-ja is very slower than \pTeX.
-Generally speaking, LuaJIT\TeX\ processes \LuaTeX-ja
-about 30\% faster than \LuaTeX, but not always.
+  Generally speaking, LuaJIT\TeX\ processes \LuaTeX-ja
+  about 30\% faster than \LuaTeX, but not always%
+  \footnote{%
+    LuaJIT has several limitations such as 1\,GB~(or~2\,GB) memory limitation.
+       So typesetting a large source by LuaJIT\TeX may cause an ``out of memory'' error,
+       or failure of loading/saving font cache of \Pkg{luaotfload}.
+  }.
 %</en>
 %<*ja>
 \item \LuaTeX-jaは動作が\pTeX に比べて非常に遅い.
 コードを調整して徐々に速くしているが,まだ満足できる速度ではない.
 LuaJIT\TeX を用いると\LuaTeX のだいたい1.3倍の速度で動くようであるが,
-IPA mj明朝などの大きいフォントを用いた場合には\LuaTeX よりも遅くなることもある.
+IPA mj明朝などの大きいフォントを用いた場合には\LuaTeX よりも遅くなることもある
+  \footnote{%
+    LuaJITは1\,GB(あるいは2\,GB)のメモリ制限など,いくつかの制限事項があることが知られている.そのため,
+    大きいソースファイルをLuaJIT\TeX でタイプセットするとLuaの側で``out of memory''エラーが発生してしまう.
+    本ドキュメントのように,「各ページごとにLuaで使っているメモリ容量をチェックし,
+    必要なら\texttt{collectgarbage("collect")}でガベージコレクタを実行」すると
+    状況が多少改善されるかもしれない.
+       また,LuaJIT\TeX でIPA mj明朝などの「大きい」フォントを利用した場合はフォントキャッシュの保存に失敗し,
+       毎回フォントを読み込まなければならず結果的に時間がかかることがある.
+  }.
 %</ja>
 
 \item%
@@ -844,7 +877,7 @@ and finally delete the temporary directory.
 
 %<en>\subsection{Using in plain \TeX}
 %<ja>\subsection{plain \TeX で使う}
-\label{ssec-plain}
+\label{ssec:plain}
 
 %<en>To use \LuaTeX-ja in plain \TeX, simply put the following at the beginning of the document:
 %<ja>\LuaTeX-jaを plain \TeX で使うためには,単に次の行をソースファイルの冒頭に追加すればよい:
@@ -893,11 +926,11 @@ and finally delete the temporary directory.
 \begin{itemize}
 %<*en>
 \item With \texttt{luatexja.cfg}, one can use other fonts
-as ``default'' Japanese fonts (Subsection~\ref{ssec-cfg}).
+as ``default'' Japanese fonts (Subsection~\ref{ssec:cfg}).
 %</en>
 %<*ja>
 \item \texttt{luatexja.cfg} を用いることによって,標準和文フォントを
-IPAexフォントから別のフォントに置き換えることができる.\ref{ssec-cfg}節を参照.
+IPAexフォントから別のフォントに置き換えることができる.\ref{ssec:cfg}節を参照.
 %</ja>
 
 %<*en>
@@ -930,7 +963,7 @@ IPAexフォントから別のフォントに置き換えることができる.
 
 %<en>\subsection{Using in \LaTeX}
 %<ja>\subsection{\LaTeX で使う}
-\label{ssec-ltx}
+\label{ssec:ltx}
 
 %<*en>
 Using in \LaTeXe\ is basically same. To set up the minimal environment
@@ -954,7 +987,7 @@ plfonts.dtx} and \texttt{pldefs.ltx}):
 
 \begin{itemize}
 %<*en>
-\item Font encodings for Japanese fonts is \texttt{JY3}~(for horizontal direction) and
+\item Font encodings for Japanese fonts are \texttt{JY3}~(for horizontal direction) and
 \texttt{JT3}~(for vertical direction).
 %</en>
 %<*ja>
@@ -963,20 +996,20 @@ plfonts.dtx} and \texttt{pldefs.ltx}):
 %</ja>
 
 %<*en>
-\item Traditionally, Japanese documents use two typeface categories: \emph{mincho}~(明朝体) and
+\item Traditionally, Japanese documents use only two families: \emph{mincho}~(明朝体) and
  \emph{gothic}~(\textgt{ゴシック体}). \emph{mincho} is used in the main text, while \emph{gothic}
       is used in the headings or for emphasis.
 \begin{center}\small
 \begin{tabular}{lllc}
 \toprule
-\textbf{classification}&&&\textbf{family name}\\\midrule
+\textbf{classification}&&&\textbf{commands}\\\midrule
 \emph{mincho} (明朝体)&\verb+\textmc{...}+&\verb+{\mcfamily ...}+&\cs{mcdefault}\\
 \emph{gothic} (\textgt{ゴシック体})&\verb+\textgt{...}+&\verb+{\gtfamily ...}+&\cs{gtdefault}\\
 \bottomrule
 \end{tabular}
 \end{center}
 \item
-By default, the following fonts are used for \emph{mincho} and \emph{gothic}:
+By default, the following fonts are used for these two families.
 \begin{center}\small
 \begin{tabular}{ccccc}
 \toprule
@@ -986,7 +1019,7 @@ By default, the following fonts are used for \emph{mincho} and \emph{gothic}:
 \bottomrule
 \end{tabular}
 \end{center}
-Note that the bold series in both family are same as the medium series of \emph{gothic}
+Note that the bold series in both family are same as the medium series of gothic
      family. There is no italic nor slanted shape for
       these \texttt{mc}~and~\texttt{gt}.
 %</en>
@@ -1001,7 +1034,7 @@ Note that the bold series in both family are same as the medium series of \emph{
 \bottomrule
 \end{tabular}
 \end{center}
-\item æ¨\99æº\96ã\81§ã\81¯ï¼\8c次ã\81®ã\83\95ã\82©ã\83³ã\83\88ã\83\95ã\82¡ã\83\9fã\83ªã\81\8cç\94¨ã\81\84ã\82\89ã\82\8cã\82\8bï¼\9a
+\item 標準では,次のフォントが用いられる:
 \begin{center}\small
 \begin{tabular}{ccccc}
 \toprule
@@ -1011,8 +1044,8 @@ Note that the bold series in both family are same as the medium series of \emph{
 \bottomrule
 \end{tabular}
 \end{center}
-どちらのファミリにおいても,そのboldシリーズで使われるフォントは
-ゴシック体のmediumシリーズで使われるフォントと同じであることに注意.
+どちらのファミリにおいても,太字(\cs{bfseries})のフォントは
+ゴシック体中字(\cs{gtfamily}\cs{mdseries})で使われるフォントと同じであることに注意.
 また,どちらのファミリでもイタリック体・スラント体は定義されない.
 %</ja>
 
@@ -1027,7 +1060,7 @@ Note that the bold series in both family are same as the medium series of \emph{
        These classes and packages also redefine \cs{jttdefault} to
        \cs{gtdefault} (\emph{gothic}~family).
   } specifies the Japanese font family in \cs{verb}~or~\texttt{verbatim} environment.
-  The default value of \cs{jttdefault} is \cs{mcdefault}, so \emph{mincho} family is used.
+  The default value of \cs{jttdefault} is \cs{mcdefault}, so the mincho family is used.
 %</en>
 %<*ja>
  \item \cs{verb} や \texttt{verbatim} 環境中の和文文字に使われる和文フォントファミリは
@@ -1044,8 +1077,8 @@ Note that the bold series in both family are same as the medium series of \emph{
 %<*en>
 \item If you use the \Pkg{beamer} class with the default font theme (which uses sans serif
       fonts) and with \LuaTeX-ja, you might want to change default Japanese fonts to
-      \emph{gothic} family. The following line  changes  the default Japanese font family
-      to \emph{gothic}:
+      the gothic family. The following line  changes  the default Japanese font family
+      to it:
 %</en>
 %<*ja>
 \item \Pkg{beamer}クラスを既定のフォント設定で使う場合,既定欧文フォントがサンセリフなの
@@ -1056,6 +1089,15 @@ Note that the bold series in both family are same as the medium series of \emph{
  \renewcommand{\kanjifamilydefault}{\gtdefault}
 \end{lstlisting}
 
+%<*ja>
+\item \pLaTeX と同様に,\texttt{mc},~\texttt{gt}両ファミリには「従属欧文」書体が定義されている.
+  これらは\cs{userelfont}を\cs{selectfont}(や,その他の「実際に」
+  フォントを変更する命令)の前で実行することにより使うことができる.
+
+  \pLaTeX では標準の欧文フォントはOT1エンコーディングのComputer Modern Roman (\texttt{cmr})%
+  であったが,2017年以降の\LuaLaTeX ではTUエンコーディングのlatin Modern Roman (\texttt{lmr})%
+  に変更されている.そのため,前段落で述べた「従属欧文」も,Latin Modern Romanに設定している.
+%</ja>
 
 \end{itemize}
 
@@ -1068,15 +1110,17 @@ 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.
+so \Pkg{ltjsclasses} uses the \texttt{nomag*} option\footnote{Same effect as 
+  the \Pkg{BXjscls} classes (by Takayuki Yato) and \Pkg{jsclasses}.
+  However, these classes uses only \TeX\ code, but \Pkg{ltjsclasses} uses Lua code.}
+ by default to set the main font size. If this causes some unexpected behavior, specify
+\texttt{nomag} option in \cs{documentclass}.
 %</en>
 %<*ja>
 しかしながら,上記の設定は日本語の文書にとって十分とは言えない.
@@ -1089,29 +1133,57 @@ to set the main document font size.
   縦組用は \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}プリミティブが使われていたが,
+元々の\Pkg{jsclasses}では本文のフォントサイズを設定するのに\cs{mag}プリミティブが使われていたが,
 \LuaTeX~beta-0.87.0以降ではPDF出力時の\cs{mag}のサポートが廃止された.
-そのため,\Pkg{ltjsclasses}では別の方法
-\footnote{八登崇之氏による\Pkg{BXjscls}クラスにおける\texttt{magstyle=xreal}指定時と類似している.}で
-フォントサイズを指定することにしている.
+そのため,\Pkg{ltjsclasses}では\texttt{nomag*}オプション
+\footnote{\Pkg{jsclasses}や,八登崇之氏による\Pkg{BXjscls}クラスにおける同名のオプションと
+  同じ.上記クラスは\TeX コードのみで実装しているが,\Pkg{ltjsclasses}ではLuaコードも用いている.}が標準で
+有効になっており,これを使って本文フォントサイズの設定を行っている.
+しかし,この\texttt{nomag*}オプションでは(20180121.0版より前の版において\Pkg{unicode-math}パッケージ使用時に
+起きたように)予想外の意図しない現象に遭遇する危険がある.そのような場合は
+\cs{documentclass}において\texttt{nomag}オプションを指定してほしい.
 %</ja>
 
 %<*ja>
 \paragraph{脚注とボトムフロートの出力順序}
-オリジナルの\LaTeX では脚注がボトムフロートの上に来るようになっており,
-\pLaTeX では脚注がボトムフロートの下に来るように変更されている.
+オリジナルの\LaTeX では脚注はボトムフロートの上に出力され,また\cs{raggedbottom}命令でページの高さが不揃いであることを許した場合には
+脚注の下端の垂直位置もページに応じて変わるようになっている.
+一方,日本語の組版では脚注はボトムフロートの下に来るのが一般的であるので,
+\pLaTeX ではそのように変更されており,
+さらに\cs{raggedbottom}命令を実行した後でも脚注は常にページの下端に固定されるようになっている.
 
 \LuaTeX-jaでは「欧文クラスの中にちょっとだけ日本語を入れる」という利用も考慮し,
-脚注とボトムフロートの順序は\LaTeX 通りとした.もし\pLaTeX の出力順序が好みならば,
-\Pkg{stfloats}パッケージを利用して
-\begin{lstlisting}
- \usepackage{stfloats}\fnbelowfloat
-\end{lstlisting}
-のようにすればよい.\Pkg{footmisc}パッケージを \texttt{bottom}\ オプションを指定して
-読み込むという方法もあるが,それだとボトムフロートと脚注の間が開いてしまう.
+脚注とボトムフロートの順序,及び\cs{raggedbottom}時の脚注の垂直位置は\LaTeX 通りとした.
+これらを制御するには以下の手段がある:
+\begin{itemize}
+ \item \pLaTeX のように,脚注をボトムフロートの下に組む場合には
+  \Pkg{stfloats}パッケージを利用して
+  \begin{lstlisting}
+    \usepackage{stfloats}\fnbelowfloat
+  \end{lstlisting}
+  とする.この状況から「脚注をボトムフロートの上に組む」という\LaTeX の標準の挙動に戻したければ,
+  \Pkg{stfloats}パッケージの\cs{fnunderfloat}命令を使用する.
+  \item \cs{raggedbottom}時の脚注の垂直位置は,\cs{iffnfixbottom}という真偽値で制御する.
+  \begin{description}
+    \item[偽(\cs{fnfixbottomfalse})の場合] \LaTeX 標準と同じく,本文と脚注の間の空白は\cs{skip}\cs{footins}のみ.
+    従って脚注の垂直位置はページにより変動する.
+    \item[真(\cs{fnfixbottomtrue})の場合] \pLaTeX や\Pkg{footmisc}パッケージを\texttt{bottom}オプションで
+    読み込んだ場合のように,脚注は常にページの下端に固定される.
+  \end{description}
+\item ただし,\LuaTeX-jaが提供する「互換クラス」(\Pkg{ltjclasses}, \Pkg{ltjsclasses})では,
+  \pLaTeX と合わせるために以下のようにしている:
+  \begin{itemize}
+    \item \cs{fnfixbottomtrue}が自動的に実行される
+    \item \Pkg{stfloats}パッケージが\LuaTeX から参照できる場所にあった場合は
+    自動的に読み込み,\cs{fnbelowfloat}を実行する.
+  \end{itemize}
+\end{itemize}
+なお,\Pkg{stfloats}パッケージを使う代わりに,
+\Pkg{footmisc}パッケージを \texttt{bottom}オプションを指定して読み込む
+という「解決法」もある.
 %</ja>
 %%% ↑は英訳しない
 
@@ -1150,17 +1222,17 @@ This patch \Pkg{lltjp-geometry} also can be used in \pLaTeX; for the detail, ple
 %<ja>\section{フォントの変更}
 
 \subsection{plain \TeX~and~\LaTeXe}
-\label{ssec-chgfnt}
+\label{ssec:chgfnt}
 
 \paragraph{plain \TeX}
 %<*en>
 To change Japanese fonts in plain \TeX, you must use the command
-\cs{jfont}~and~\cs{tfont}. So please see Subsection~\ref{ssec-jfont}.
+\cs{jfont}~and~\cs{tfont}. So please see Subsection~\ref{ssec:jfont}.
 %</en>
 %<*ja>
 plain \TeX で和文フォントを変更するためには,
 \pTeX のように \cs{jfont} 命令や \cs{tfont} 命令を直接用いる.
-\ref{ssec-jfont}節を参照.
+\ref{ssec:jfont}節を参照.
 %</ja>
 
 \paragraph{\LaTeXe\ (NFSS2)}
@@ -1223,7 +1295,7 @@ auto select&\cs{fontencoding}&\cs{fontfamily}&---&---&\cs{usefont}\\
       alphabetic fonts to \texttt{T1}.
       \cs{fontfamily} also changes the current Japanese font family,
       the current alphabetic font family, \emph{or both}.
-      For the detail, see Subsection~\ref{ssec-nfsspat}.
+      For the detail, see Subsection~\ref{ssec:nfsspat}.
 %</en>
 %<*ja>
       ここで,\verb+\fontencoding{+<encoding>\verb+}+ は,引数により和文側か欧文
@@ -1232,7 +1304,7 @@ auto select&\cs{fontencoding}&\cs{fontfamily}&---&---&\cs{usefont}\\
       \texttt{JY3}に変更し,\verb+\fontencoding{T1}+ は欧文フォント側を
       \texttt{T1}へと変更する.\cs{fontfamily} も引数により和文側,欧文
       側,\emph{あるいは両方}のフォントファミリを変更する.詳細は
-      \ref{ssec-nfsspat}節を参照すること.
+      \ref{ssec:nfsspat}節を参照すること.
 %</ja>
 
 %<*en>
@@ -1256,8 +1328,8 @@ auto select&\cs{fontencoding}&\cs{fontfamily}&---&---&\cs{usefont}\\
 \end{lstlisting}
 %<*ja>
 仮名書体を使う場合など,複数の和文フォントを組み合わせて使いたい場合は
-\ref{ssec-altfont}節の \cs{ltjdeclarealtfont} と,その\LaTeX 版の\
-\cs{DeclareAlternateKanjiFont}(\ref{ssec-nfsspat}節)を参照せよ.
+\ref{ssec:altfont}節の \cs{ltjdeclarealtfont} と,その\LaTeX 版の\
+\cs{DeclareAlternateKanjiFont}(\ref{ssec:nfsspat}節)を参照せよ.
 %</ja>
 
 \end{itemize}
@@ -1313,17 +1385,17 @@ $5\in 素:=\{\,p\in\mathbb N:\text{$p$ is a prime}\,\}$.
 %<*en>
 We also believe that using Japanese characters as identifiers is rare,
 hence we don't describe how to change Japanese fonts in math mode in
-this chapter. For the method, please see Subsection~\ref{ssec-math}.
+this chapter. For the method, please see Subsection~\ref{ssec:math}.
 %</en>
 %<*ja>
 また\LuaTeX-jaプロジェクトでは,和文文字が識別子として用いられることはほとんどない
 と考えており,したがってこの節では数式モード中の和文フォントを変更する方法については
-記述しない.この方法については\ref{ssec-math}節を参照のこと.
+記述しない.この方法については\ref{ssec:math}節を参照のこと.
 %</ja>
 
 %<en>\subsection{\Pkg{luatexja-fontspec} package}
 %<ja>\subsection{\Pkg{luatexja-fontspec}パッケージ}
-\label{ssec-fontspec}
+\label{ssec:fontspec}
 %<*en>
 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:
@@ -1378,22 +1450,19 @@ alphabetic fonts
 %</en>
 %<*ja>
 \begin{center}\small
-\begin{tabular}{cccc}
+\begin{tabular}{ccccc}
 \toprule
 和文
-&\cs{jfontspec}&\cs{setmainjfont}&\cs{setsansjfont}\\
-欧文
-&\cs{fontspec}&\cs{setmainfont}&\cs{setsansfont}\\
-\midrule
-和文
-&\cs{newjfontfamily}&\cs{newjfontface}&\cs{defaultjfontfeatures}\\
+&\cs{jfontspec}&\cs{setmainjfont}&\cs{setsansjfont}&\cs{setmonojfont}$^*$\\
 欧文
-&\cs{newfontfamily}&\cs{newfontface}&\cs{defaultfontfeatures}\\
+&\cs{fontspec}&\cs{setmainfont}&\cs{setsansfont}&\cs{setmonofont}\\
 \midrule
 和文
-&\cs{addjfontfeatures}\\
+&\cs{newjfontfamily}&\cs{newjfontface}
+&\cs{defaultjfontfeatures}&\cs{addjfontfeatures}\\
 欧文
-&\cs{addfontfeatures}\\
+&\cs{newfontfamily}&\cs{newfontface}
+&\cs{defaultfontfeatures}&\cs{addfontfeatures}\\
 \bottomrule
 \end{tabular}
 \end{center}
@@ -1427,13 +1496,23 @@ if and only if this \texttt{\textup{match}} option is specified}.
 \item[scale=<float>]
 %<*en>
 Override the ratio of the font size of Japanese fonts to that of alphabetic fonts.
-The default value is calculated automatically (for~example, about~0.924865 when
-            the \Pkg{ltjsarticle} class is used).
+The default value is determined as follows:
+  \begin{itemize}
+    \item The value of \cs{Cjascale} is used, if this control sequence is already defined.
+    \item It is calculated automatically from the current Japanese font at the loading of the
+    package, if \cs{Cjascale} is not defined.
+  \end{itemize}
+\cs{Cjascale} is defined in \Pkg{ltjclasses} and \Pkg{ltjsclasses}.
 %</en>
 %<*ja>
-欧文に対する和文の比率は,標準では \Pkg{luatexja-fontspec}読み込み時の和欧文比率から
-自動計算される(例えば,\Pkg{ltjsarticle}クラス使用時には和文は欧文の約0.924865倍となる)が,
-それを手動で上書きするときに使用する.
+欧文に対する和文の比率を手動で上書きするときに使用する.
+標準では
+\begin{itemize}
+  \item \cs{Cjascale}が定義されている場合
+  \footnote{\LuaTeX-ja が用意しているクラスファイル(\Pkg{ltjclasses},~\Pkg{ltjsclasses})を
+  使う場合はこちらに当てはまる.}は,それを用いる.
+  \item \cs{Cjascale}が未定義の場合は,\Pkg{luatexja-fontspec}読み込み時の和文フォントから自動計算される.
+\end{itemize}
 %</ja>
 \end{cslist}
 
@@ -1480,1248 +1559,773 @@ JIS~X~0208:1990→辻
 
 %<en>\subsection{Presets of Japanese fonts}
 %<ja>\subsection{和文フォントのプリセット設定}
-\label{ssec-preset}
+\label{ssec:preset-abst}
 
 %<*en>
-One can load the \Pkg{luatexja-preset}
-package to use several ``presets'' of Japanese fonts.
-This package provides functions in a part of
-\Pkg{japanese-otf} package and a part of \Pkg{PXchfon} package by Takayuki Yato.
-
-One can specified other options other than listed in this subsection.
-These are simply passed to the \Pkg{luatexja-fontspec}\footnote{if \texttt{nfssonly} option is
-\emph{not} specified; in this case these options are simply ignored.}.
-For example, the line~5 in below example is eqivalent to lines 1--3.
+With \Pkg{luatexja-preset} package, 
+one use one of ``preset'' to simplify Japanese font setting.
+For details of package options, and those of each presets, please see Subsecion~\ref{ssec:preset}.
+The following presets are defined:
 %</en>
 %<*ja>
 よく使われている和文フォント設定を一行で指定できるようにしたのが
-\Pkg{luatexja-preset}パッケージである.このパッケージは,
-\Pkg{otf}パッケージの一部機能と八登崇之氏による\Pkg{PXchfon}パッケージの一部機能とを
-合わせたような格好をしている.
-
-オプションとして,本節にないものも指定することができるが,それらは
-\Pkg{luatexja-fontspec}パッケージに渡される\footnote{\texttt{nfssonly} オプションが
-指定されていた場合は,\Pkg{luatexja-fontspec}パッケージは読み込まれないので単純に無視され
-る.}.例えば,下の1--3行目は5行目のように一行にまとめることができる.
+\Pkg{luatexja-preset}パッケージである.オプションや各プリセットの詳細については
+\ref{ssec:preset}節を参照して欲しい.
+現時点では以下のプリセットが定義されている:
 %</ja>
+\begin{quote}
+  \ttfamily
+  \hyphenchar\font=-1 \exhyphenchar=-1
+  hiragino-pro, hiragino-pron, ipa, ipa-hg, ipaex, ipaex-hg,
+  kozuka-pr6, kozuka-pr6n, kozuka-pro, moga-mobo, moga-mobo-ex,
+  morisawa-pr6n, morisawa-pro, ms, ms-hg, noembed, noto-otc, noto-otf,
+  sourcehan, sourcehan-jp, ume, yu-osx, yu-win, yu-win10
+\end{quote}
+
+%<ja> 例えば,本ドキュメントでは\Pkg{luatexja-preset}パッケージを
+%<en> For example, this document loads \Pkg{luatexja-preset} package by
 \begin{lstlisting}
-\usepackage[no-math]{fontspec}
-\usepackage[match]{luatexja-fontspec}
 \usepackage[kozuka-pr6n]{luatexja-preset}
-%%--------
-\usepackage[no-math,match,kozuka-pr6n]{luatexja-preset}
 \end{lstlisting}
+%<ja>として読み込み,小塚書体(Pr6N)を使うことを指定している.
+%<en> which means that Kozuka~Pr6N fonts will be used in this document.
 
-%<en>\paragraph{General options}
-%<ja>\paragraph{一般的なオプション}
-\begin{cslist}[before*=]
-\item[fontspec%
-%<en>\textrm{~(enabled by default)}
-%<ja>\emph{\gtfamily (既定)}
-]
-%<*en>
-With this option, Japanese fonts are selected using functionality of
-the \Pkg{luatexja-fontspec} package. This means that the \Pkg{fontspec} package is
-            automatically loaded by this package.
 
-If you need to pass some options to \Pkg{fontspec}, you can load \Pkg{fontspec} manually
-before \Pkg{luatexja-preset}:
+%<*en>
+\subsection{\cs{CID}, \cs{UTF}, and macros in \Pkg{japanese-otf} package}
+Under \pLaTeX, \Pkg{japanese-otf} package (developed by Shuzaburo Saito) is
+used for typesetting characters which is in Adobe-Japan1-6 CID but not
+in JIS~X~0208. Since this package is widely used, \LuaTeX-ja
+supports some of functions in the \Pkg{japanese-otf} package,
+as an external package \Pkg{luatexja-otf}.
 %</en>
 %<*ja>
-\Pkg{luatexja-fontspec}パッケージの機能を用いて和文フォントを選択する.
-これは,\Pkg{fontspec}パッケージが自動で読み込まれることを意味する.
+\subsection{\cs{CID}, \cs{UTF}と\Pkg{otf}パッケージのマクロ}
+\pLaTeX では,JIS~X~0208にないAdobe-Japan1-6の文字を出力するために,
+齋藤修三郎氏による\Pkg{otf}パッケージが用いられていた.このパッケージは
+広く用いられているため,\LuaTeX-jaにおいても\Pkg{otf}パッケージの機能の
+一部を(\Pkg{luatexja-otf}という別のパッケージとして)実装した.
+%</ja>
 
-もし\Pkg{fontspec}パッケージに何らかのオプションを渡す必要がある
-\footnote{例えば,数式フォントまで置換されてしまい,\cs{mathit}によってギリシャ文字の
-斜体大文字が出なくなる,など.}場合は,
-次のように\Pkg{luatexja-preset}の前に\Pkg{fontspec}を手動で読みこめば良い:
+\begin{LTXexample}
+\jfontspec{KozMinPr6N-Regular.otf}
+森\UTF{9DD7}外と内田百\UTF{9592}とが\UTF{9AD9}島屋に行く。
+
+\CID{7652}飾区の\CID{13706}野家,
+\CID{1481}城市,葛西駅,
+高崎と\CID{8705}\UTF{FA11}
+
+\aj半角{はんかくカタカナ}
+\end{LTXexample}
+
+%<*ja>
+\Pkg{otf}パッケージでは,それぞれ次のようなオプションが存在した:
+\begin{cslist}
+\item[deluxe] 明朝体・ゴシック体各3ウェイトと,丸ゴシック体を扱えるようになる.
+\item[expert] 仮名が横組・縦組専用のものに切り替わり,ルビ用仮名も
+\ \cs{rubyfamily}\ によって扱えるようになる.
+\item[bold] ゴシック体を標準で太いウェイトのものに設定する.
+\end{cslist}
+しかしこれらのオプションは\Pkg{luatexja-otf}パッケージには存在しない.
+\Pkg{otf}パッケージが文書中で使用する和文用TFMを自前の物に置き換えていたのに対し,
+\Pkg{luatexja-otf}パッケージでは,そのようなことは行わないからである.
+
+これら3オプションについては,
+\Pkg{luatexja-preset} パッケージにプリセットを使う時に一緒に指定するか,
+あるいは対応する内容を\ref{ssec:chgfnt}節,\ref{ssec:nfsspat}節 (NFSS2) や
+\ref{ssec:fontspec}節 (\Pkg{fontspec}) の方法で手動で指定する必要がある.
 %</ja>
-\begin{lstlisting}
-\usepackage[no-math]{fontspec}
-\usepackage[...]{luatexja-preset}
-\end{lstlisting}
 
-\item[nfssonly]
+%<en>\subsection{Changing default Japanese fonts}
+%<ja>\subsection{標準和文フォントの変更}
+\label{ssec:cfg}
 %<*en>
-With this option, selecting Japanese fonts won't be performed using the functionality of
-            the \Pkg{fontspec} package, but only standard NFSS2 (hence without
-            \cs{addjfontfeatures} etc.).
-This option is ignored when \Pkg{luatexja-fontspec} package is loaded.
+If \texttt{luatexja.cfg} can be seen from \LuaTeX, \LuaTeX-ja automatically reads it.
+The main use of \texttt{luatexja.cfg} is for changing default Japanese fonts,
+when IPAex fonts cannot be installed in \TeX~system.
+One should not overuse this \texttt{luatexja.cfg}; fonts which will be used in
+a document should be specified in its source.
 
-When this option is specified, \Pkg{fontspec}~and~\Pkg{luatexja-fontspec} are
-\emph{not} loaded by default. Nevertheless,
-the package\Pkg{fontspec} can coexist with the option, as the following:
+For example,
 \begin{lstlisting}
-\usepackage{fontspec}
-\usepackage[hiragino-pron,nfssonly]{luatexja-preset}
+\def\ltj@stdmcfont{IPAMincho}
+\def\ltj@stdgtfont{IPAGothic}
+\end{lstlisting}
+makes that IPA~Mincho and IPA~Gothic will be used as default Japanese fonts, instead of
+IPAex~Mincho and IPAex~Gothic.
+
+For another example, the following two lines makes that
+non-embedded fonts Ryumin-Light~and~GothicBBB-Medium as default Japanese fonts
+(as the earlier version of \LuaTeX-ja):
+\begin{lstlisting}
+\def\ltj@stdmcfont{psft:Ryumin-Light}
+\def\ltj@stdgtfont{psft:GothicBBB-Medium}
 \end{lstlisting}
-In this case, one can use \cs{setmainfont} etc.\ to select \emph{alphabetic} fonts.
 %</en>
 %<*ja>
-\LaTeX 標準のフォント選択機構(NFSS2)を用いて
-\texttt{ltjpm}(明朝),\texttt{ltjpg}(ゴシック),それに後に述べる \texttt{deluxe} オプ
-            ションが指定された場合には \texttt{ltjpmg}(丸ゴシック)という
-3つの和文フォントファミリを定義し,これらを用いる.
+\LuaTeX から見える位置に \texttt{luatexja.cfg} があれば,\LuaTeX-jaはそれを読み込む.
+このファイルを用いるとplain~\TeX, \LaTeXe における標準和文フォントを
+IPAex明朝・IPAexゴシックから変更することができる.
+しかし,基本的には\emph{文章中で用いるフォントは(例えば \Pkg{luatexja-preset} などで)
+文書ソース内で指定するべき}であり,この \texttt{luatexja.cfg} は,
+「IPAexフォントがインストールできない」など,IPAexフォントが使用できない場合にのみ
+応急処置的に用いるべきである.
 
-本オプション指定時には\Pkg{fontspec}・\Pkg{luatexja-fontspec}パッケージは
-自動では読み込まれない,しかし,
+例えば
 \begin{lstlisting}
-\usepackage{fontspec}
-\usepackage[hiragino-pron,nfssonly]{luatexja-preset}
+\def\ltj@stdmcfont{IPAMincho}
+\def\ltj@stdgtfont{IPAGothic}
 \end{lstlisting}
-のようにすれば,このオプションを指定すれば
-欧文フォントを\Pkg{fontspec}パッケージの機能を使って指定することができる.
-一方,
-パッケージ読み込み時に既に\Pkg{luatexja-fontspec}パッケージが読み込まれて
-            いる場合は \texttt{nfssonly} オプションは無視される.
-%</ja>
+と記述しておけば,標準和文フォントがIPA明朝・IPAゴシックへと変
+更される.
 
-\item[match]
-%<*en>
-If this option is specified, usual family-changing commands such as
-\cs{rmfamily},~\cs{textrm}, \cs{sffamily},~\dots\ also change Japanese font family.
-This option is passed to \Pkg{luatexja-fontspec}, if \texttt{fontspec}
-option is specifed.
-%</en>
 
-%<*ja>
-このオプションが指定されると,「\pLaTeXe 新ドキュメントクラス」のように\
-\cs{rmfamily}, \verb+\textrm{...}+, \cs{sffamily} 等が
-欧文フォントだけでなく和文フォントも変更するようになる.
-\ \texttt{fontspec}\
-オプションが有効になっている場合は,このオプションは \Pkg{luatexja-fontspec} パッケージへと渡される.
+なお,20140906.0以前のバージョンのように,
+Ryumin-Light, GothicBBB-Mediumという名前の非埋込フォントを用いる場合は
+\begin{lstlisting}
+\def\ltj@stdmcfont{psft:Ryumin-Light}
+\def\ltj@stdgtfont{psft:GothicBBB-Medium}
+\end{lstlisting}
+と記述すればよい.
 %</ja>
 
 
-\item[nodeluxe%
-%<en>\textrm{~(enabled by default)}
-%<ja>\emph{\gtfamily (既定)}
-]
+%<en>\section{Changing Internal Parameters}
+%<ja>\section{パラメータの変更}
+
 %<*en>
-The nagation of \texttt{deluxe} option.
-Use one-weighted \textit{mincho} and \textit{gothic} font families.
-This means that \verb+\mcfamily\bfseries+, \verb+\gtfamily\bfseries+ and
-\verb+\gtfamily\mdseries+ use the same font.
+There are many internal parameters in \LuaTeX-ja. And due to the behavior of \LuaTeX,
+most of them are not stored as internal register of \TeX, but as an
+original storage system in \LuaTeX-ja. Hence, to assign or acquire those
+parameters, you have to use commands \cs{ltjsetparameter} and
+\cs{ltjgetparameter}.
 %</en>
 %<*ja>
-\texttt{deluxe}オプションの否定.
-\LaTeXe 環境下の標準設定のように,明朝体・ゴシック体を各1ウェイトで使用する.
-より具体的に言うと,この設定の下では
-\ \verb+\mcfamily\bfseries+, \verb+\gtfamily\bfseries+,
-\verb+\gtfamily\mdseries+はみな同じフォントとなる.
+\LuaTeX-jaには多くのパラメータが存在する.そして\LuaTeX の仕様のために,
+その多くは\TeX のレジスタにではなく,\LuaTeX-ja独自の方法で保持されている.
+これらのパラメータを設定・取得するためには \cs{ltjsetparameter} と \cs{ltjgetparameter} を
+用いる.
 %</ja>
-\item[deluxe]
+
+%<en>\subsection{Range of \textbf{JAchar}s}
+%<ja>\subsection{\textbf{JAchar}の範囲}
+\label{ssec:setrange}
+
 %<*en>
-Use \textit{mincho} with two weights (medium~and~bold),
-\textit{gothic} with three weights (medium, bold~and~heavy), and \textit{rounded gothic}%
-\footnote{Provided by \cs{mgfamily} and \cs{textmg},
-because \textit{rounded gothic} is called \textit{maru gothic} (丸ゴシック) in Japanese.}.
-The heavy weight of \textit{gothic} can be used by ``changing the family'' \cs{gtebfamily},
-or \verb+\textgteb{...}+.
-This is because the \Pkg{fontspec} package can handle only medium (\cs{mdseries}) and
-bold (\cs{bfseries}).
+\LuaTeX-ja divides the Unicode codespace \texttt{U+0080}--\texttt{U+10FFFF}
+into \emph{character ranges},
+numbered 1 to 217. The grouping can be (globally) customized by \cs{ltjdefcharrange}.
+The next line adds whole characters in Supplementary Ideographic Plane
+and the character ``漢'' to the character range~100.
 %</en>
 %<*ja>
-明朝体2ウェイト・ゴシック体3ウェイトと,
-丸ゴシック体 (\cs{mgfamily}, \verb+\textmg{...}+) を使用可能とする.
-ゴシック体は中字・太字・極太の3ウェイトがあるが,
-極太ゴシック体を使う場合,
-\begin{itemize}
- \item \cs{gtebfamily}, \verb+\textgteb{...}+
- \item \cs{ebseries} (周囲がゴシック体のとき,\texttt{nfssonly} オプション指定時のみ)
-\end{itemize}
-のいずれかを用いる.標準で \cs{ebseries} が準備されていないのは,バージョンが古い
-\Pkg{fontspec}では中字(\cs{mdseries})と太字(\cs{bfseries})しか扱えなかった名残である.
+\LuaTeX-jaは,Unicodeの \texttt{U+0080}--\texttt{U+10FFFF} の空間を
+1番から217番までの\emph{文字範囲}に分割している.
+区分けは \cs{ltjdefcharrange} を用いることで(グローバルに)変更することができ,
+例えば,次は追加漢字面(SIP)にある全ての文字と「漢」を「100番の文字範囲」に追加する.
 %</ja>
-\item[expert]
+\begin{lstlisting}
+\ltjdefcharrange{100}{"20000-"2FFFF,`漢}
+\end{lstlisting}
+
 %<*en>
-Use horizontal/vertical kana alternates, and define a command \cs{rubyfamily} to use kana
-characters designed for ruby.
+A character can belong to only one character range.
+For example, whole SIP belong to the range~4 in the default setting of \LuaTeX-ja,
+and if one executes the above line, then SIP will belong to the range~100 and be
+removed from the range~4.
 %</en>
 %<*ja>
-横組・縦組専用仮名を用いる.また,\cs{rubyfamily} でルビ用仮名が使用可能となる\footnote{%
-  \cs{rubyfamily}とはいいつつ,実際にはフォントファミリを切り替えるのではない(通常では
-  font featureの追加,\texttt{nfssonly} 指定時にはシェイプを \texttt{rb} に切り替え).
-}.
+各文字はただ一つの文字範囲に所属することができる.
+例えば,SIP内の文字は全て\LuaTeX-jaのデフォルトでは4番の文字範囲に
+属しているが,上記の指定を行えばSIP内の文字は100番に属すようになり,4番からは除かれる.
 %</ja>
-\item[bold]
+
 %<*en>
-Substitute bold series of \textit{gothic} for  bold series of \textit{mincho}.
-If \texttt{nodeluxe} option is enabled, medium series of \textit{gothic} is also changed,
-since we use same font for both series of \textit{gothic}.
+The distinction between \textbf{ALchar} and \textbf{JAchar} is performed by character ranges.
+This can be edited by setting the \textsf{jacharrange} parameter.
+For example, the code below is just the default setting of \LuaTeX-ja, and
+it sets
+\begin{itemize}
+ \item a character which belongs character ranges 1,~4, 5, and~8 is \textbf{ALchar},
+ \item a character which belongs character ranges 2,~3, 6, and~7 is \textbf{JAchar}.
+\end{itemize}
 %</en>
 %<*ja>
-「明朝の太字」をゴシック体の太字によって代替する.
-もし\texttt{nodeluxe}オプションが指定されている場合は,ゴシック体は1ウェイトしか使用されな
-          いため,
-「ゴシック体の中字」も同時に変更されることになる.
+\textbf{ALchar}と\textbf{JAchar}の区別は文字範囲ごとに行われる.
+これは\textsf{jacharrange}パラメータによって編集できる.
+例えば,以下は\LuaTeX-jaの初期設定であり,次の内容を設定している:
+\begin{itemize}
+ \item 1番,4番,5番,8番の文字範囲に属する文字は\textbf{ALchar}.
+ \item 2番,3番,6番,7番の文字範囲に属する文字は\textbf{JAchar}.
+\end{itemize}
 %</ja>
-\item[90jis]
-%<en>Use 90JIS glyph variants if possible.
-%<ja>出来る限り90JISの字形を使う.
-\item[jis2004]
-%<en>Use JIS2004 glyph variants if possible.
-%<ja>出来る限りJIS2004の字形を使う.
-\item[jis]
+\begin{lstlisting}
+\ltjsetparameter{jacharrange={-1, +2, +3, -4, -5, +6, +7, -8}}
+\end{lstlisting}
 %<*en>
-Use the JFM \texttt{jfm-jis.lua}, instead of \texttt{jfm-ujis.lua}, which is the default JFM of
-\LuaTeX-ja.
+The argument to \textsf{jacharrange} parameter is a list of non-zero integer.
+Negative integer $-n$ in the list means that ``each character in the range~$n$ is an
+\textbf{ALchar}'',
+and positive integer $+n$ means that ``\dots\ is a \textbf{JAchar}''.
 %</en>
 %<*ja>
-用いるJFMを(JISフォントメトリック類似の)\texttt{jfm-jis.lua}にする.このオプションがない時は
-\LuaTeX-ja標準の\texttt{jfm-ujis.lua}が用いられる.
+\textsf{jacharrange}パラメータの引数は非零の整数のリストである.
+リスト中の負の整数$-n$は「文字範囲$n$に属する文字は\textbf{ALchar}として
+扱う」ことを意味し,正の整数$+n$は「\textbf{JAchar}として扱う」ことを意味する.
 %</ja>
 
-\end{cslist}
 %<*en>
-Note that \texttt{90jis} and \texttt{jis2004} only affect with \textit{mincho},
-\textit{gothic} (and possibly \textit{rounded gothic}) defined by this package.
-We didn't taken account of  when both \texttt{90jis} and \texttt{jis2004} are specified.
+Note that characters \texttt{U+0000}--\texttt{U+007F} are always treated as an
+\textbf{ALchar} (this cannot be customized).
 %</en>
 %<*ja>
-\texttt{90jis}と\texttt{jis2004}については本パッケージで定義された
-明朝体・ゴシック体(・丸ゴシック体)にのみ有効である.
-両オプションが同時に指定された場合の動作については全く考慮していない.
+なお,\texttt{U+0000}--\texttt{U+007F} は常に\textbf{ALchar}として扱われる(利用者が変更す
+ることは出来ない).
 %</ja>
 
-%<en>\paragraph{Presets for multi weight}
-%<ja>\paragraph{多ウェイト用プリセットの一覧}
 %<*en>
-Besides \texttt{morisawa-pro}~and~\texttt{morisawa-pr6n} presets,
-fonts are specified by font name, not by file name.
-In following tables, starred fonts (e.g.~KozGo\dots-Regular) are used for medium series of \textit{gothic},
-\emph{if and only if \texttt{deluxe} option is specified}.
+\paragraph{Default character ranges}
+\LuaTeX-ja predefines eight character ranges for convenience. They are
+determined from the following data:
 %</en>
 %<*ja>
-\texttt{morisawa-pro}, \texttt{morisawa-pr6n}以外はフォントの指定は
-(ファイル名でなく)フォント名で行われる.
-以下の表において,*\,つきのフォント(e,g,~KozGo\dots-Regular)は,\emph{\texttt{deluxe}オプション指定時に}
-ゴシック体中字として用いられるものを示している.
+\paragraph{文字範囲の初期値}
+\LuaTeX-jaでは8つの文字範囲を予め定義しており,
+これらは以下のデータに基づいて決定している.
 %</ja>
-\begin{cslist}[style=standard]
- \item[kozuka-pro] Kozuka Pro (Adobe-Japan1-4) fonts.
-%<en>    \\*[-\dimexpr\medskipamount+\baselineskip\relax]
- \item[kozuka-pr6] Kozuka Pr6 (Adobe-Japan1-6)  fonts.
-%<en>    \\*[-\dimexpr\medskipamount+\baselineskip\relax]
- \item[kozuka-pr6n] Kozuka Pr6N (Adobe-Japan1-6, JIS04-savvy) fonts.
+\begin{itemize}
+%<en>\item Blocks in Unicode~6.0.
+%<ja>\item Unicode~6.0のブロック.
+%<en>\item The \texttt{Adobe-Japan1-UCS2} mapping between a CID Adobe-Japan1-6 and Unicode.
+%<ja>\item Adobe-Japan1-6のCIDとUnicodeの間の対応表\texttt{Adobe-Japan1-UCS2}.
+%<en>\item The \Pkg{PXbase} bundle for \upTeX\ by Takayuki Yato.
+%<ja>\item 八登崇之氏による\upTeX 用の\Pkg{PXbase}バンドル.
+\end{itemize}
 
 %<*en>
-Kozuka Pro/Pr6N fonts are bundled with Adobe's software, such as Adobe~InDesign.
-There is not rounded gothic family in Kozuka fonts.
+Now we describe these eight ranges. The superscript ``J'' or ``A'' after the
+number shows whether each character in the range is treated as
+\textbf{JAchar}s or not by default. These settings are similar to the
+\texttt{prefercjk} settings defined in \texttt{PXbase} bundle.
+Any characters equal to or above \texttt{U+0080} which does not belong to
+these eight ranges belongs to the character range~217.
 %</en>
 %<*ja>
-小塚Pro書体・Pr6N書体はAdobe InDesign等のAdobe製品にバンドルされている.
-「小塚丸ゴシック」は存在しないので,便宜的に小塚ゴシックHによって代用している.
+以下ではこれら8つの文字範囲について記述する.添字のアルファベット「J」「A」
+は,その文字範囲内の文字が\textbf{JAchar}か\textbf{ALchar}かを表している.これらの初期設定は
+\texttt{PXbase}バンドルで定義されている\texttt{prefercjk}と類似のものであるが,
+8ビットフォント使用時のトラブルを防ぐために \texttt{U+0080}--\texttt{U+00FF} の文字は全部
+\textbf{ALchar}としている.
+なお,\texttt{U+0080} 以降でこれら8つの文字範囲に属さない文字は,217番の文字範囲に属することになっている.
 %</ja>
-\begin{center}\small
-\begin{tabular}{cllll}
-\toprule
-\bfseries family&\bfseries series&\ttfamily kozuka-pro&\ttfamily kozuka-pr6&\ttfamily kozuka-pr6n\\
-\midrule
- &medium&KozMinPro-Regular&KozMinProVI-Regular&KozMinPr6N-Regular\\
-%<en>\smash{\raisebox{1.5ex}{\textit{mincho}}}%
-%<ja>\smash{\raisebox{1.5ex}{\gt 明朝}}%
- &bold&KozMinPro-Bold&KozMinProVI-Bold&KozMinPr6N-Bold\\
-\midrule
- &&KozGoPro-Regular*&KozGoProVI-Regular*&KozGoPr6N-Regular*\\
- &\smash{\raisebox{1.5ex}{medium}}
- &KozGoPro-Medium&KozGoProVI-Medium&KozGoPr6N-Medium\\
-\cmidrule(l){2-5}
-%<en>\smash{\raisebox{2ex}{\textit{gothic}}}%
-%<ja>\smash{\raisebox{2ex}{\gt ゴシック}}%
- &bold&KozGoPro-Bold&KozGoProVI-Bold&KozGoPr6N-Bold\\
- &heavy&KozGoPro-Heavy&KozGoProVI-Heavy&KozGoPr6N-Heavy\\
-\midrule
-%<en>\textit{rounded gothic}
-%<ja>\gt 丸ゴシック
-&&KozGoPro-Heavy&KozGoProVI-Heavy&KozGoPr6N-Heavy\\
-\bottomrule
-\end{tabular}
-\end{center}
-
- \item[hiragino-pro]  Hiragino Pro (Adobe-Japan1-5) fonts.
-%<en>    \\*[-\dimexpr\medskipamount+\baselineskip\relax]
- \item[hiragino-pron] Hiragino ProN (Adobe-Japan1-5, JIS04-savvy) fonts.
-
+\begin{description}
 %<*en>
-Hiragino fonts are bundled with Mac OS~X 10.5 or later.
-Some editions of a Japanese word-processor ``一太郎2012'' includes Hiragino ProN fonts.
-Note that the heavy weight of \textit{gothic} family only supports
-Adobe-Japan1-3 character collection (Std/StdN).
+
+\item[Range~8${}^{\text{A}}$] The intersection of the upper half of ISO~8859-1
+        (Latin-1 Supplement) and JIS~X~0208 (a basic character set for Japanese). This character range
+        consists of the following characters:
 %</en>
 %<*ja>
-ヒラギノフォントは,Mac OS~X以外にも,一太郎2012の上位エディションにもバンドルされている.
-極太ゴシックとして用いるヒラギノ角ゴW8は,Adobe-Japan1-3の範囲しかカバーしていない
-Std/StdNフォントであり,その他はAdobe-Japan1-5対応である.
+\item[範囲8${}^{\text{A}}$] ISO~8859-1の上位領域(ラテン1補助)と
+                             JIS~X~0208の共通部分.この文字範囲は
+                             以下の文字で構成される:
 %</ja>
-\begin{center}\small
-\begin{tabular}{clll}
-\toprule
-\bf family&\bf series&\tt hiragino-pro&\tt hiragino-pron\\
-\midrule
- &medium&Hiragino~Mincho~Pro~W3&Hiragino~Mincho~ProN~W3\\
-%<en>\smash{\raisebox{1.5ex}{\textit{mincho}}}%
-%<ja>\smash{\raisebox{1.5ex}{\gt 明朝}}%
- &bold&Hiragino~Mincho~Pro~W6&Hiragino~Mincho~ProN~W6\\
-\midrule
- &&Hiragino~Kaku~Gothic~Pro~W3*&Hiragino~Kaku~Gothic~ProN~W3*\\
- &\smash{\raisebox{1.5ex}{medium}}
- &Hiragino~Kaku~Gothic~Pro~W6&Hiragino~Kaku~Gothic~ProN~W6\\
-\cmidrule(l){2-4}
-%<en>\smash{\raisebox{2ex}{\textit{gothic}}}%
-%<ja>\smash{\raisebox{2ex}{\gt ゴシック}}%
- &bold&Hiragino~Kaku~Gothic~Pro~W6&Hiragino~Kaku~Gothic~ProN~W6\\
- &heavy&Hiragino~Kaku~Gothic~Std~W8&Hiragino~Kaku~Gothic~StdN~W8\\
-\midrule
-%<en>\textit{rounded gothic}
-%<ja>\gt 丸ゴシック
-&&Hiragino~Maru~Gothic~Pro~W4&Hiragino~Maru~Gothic~ProN~W4\\
-\bottomrule
-\end{tabular}
-\end{center}
-
-%<ja>\newpage
-
- \item[morisawa-pro]  Morisawa Pro (Adobe-Japan1-4) fonts.
-%<en>    \\*[-\dimexpr\medskipamount+\baselineskip\relax]
- \item[morisawa-pr6n]  Morisawa Pr6N (Adobe-Japan1-6, JIS04-savvy) fonts.
-
-\begin{center}\small
-\begin{tabular}{cl>{\tt}l>{\tt}l}
-\toprule
-\bf family&\bf series&morisawa-pro&morisawa-pr6n\\
-\midrule
- &medium&A-OTF-RyuminPro-Light.otf&A-OTF-RyuminPr6N-Light.otf\\
-%<en>\smash{\raisebox{1.5ex}{\textit{mincho}}}%
-%<ja>\smash{\raisebox{1.5ex}{\gt 明朝}}%
- &bold&A-OTF-FutoMinA101Pro-Bold.otf&A-OTF-FutoMinA101Pr6N-Bold.otf\\
-\midrule
- &medium
- &A-OTF-GothicBBBPro-Medium.otf&A-OTF-GothicBBBPr6N-Medium.otf\\
-%<en>\textit{gothic}%
-%<ja>\gt ゴシック
- &bold&A-OTF-FutoGoB101Pro-Bold.otf&A-OTF-FutoGoB101Pr6N-Bold.otf\\
- &heavy&A-OTF-MidashiGoPro-MB31.otf&A-OTF-MidashiGoPr6N-MB31.otf\\
-\midrule
-%<en>\textit{rounded gothic}
-%<ja>\gt 丸ゴシック
-&&A-OTF-Jun101Pro-Light.otf&A-OTF-ShinMGoPr6N-Light.otf\\
-\bottomrule
-\end{tabular}
-\end{center}
-
- \item[yu-win]  Yu fonts bundled with Windows~8.1.
-%<en>    \\*[-\dimexpr\medskipamount+\baselineskip\relax]
- \item[yu-osx]  Yu fonts bundled with OSX~Mavericks.
-
-\begin{center}\small
-\begin{tabular}{clll}
-\toprule
-\bf family&\bf series&\tt yu-win&\tt yu-osx\\
-\midrule
- &medium&YuMincho-Regular&YuMincho~Medium\\
-%<en>\smash{\raisebox{1.5ex}{\textit{mincho}}}%
-%<ja>\smash{\raisebox{1.5ex}{\gt 明朝}}%
- &bold&YuMincho-Demibold&YuMincho~Demibold\\
-\midrule
- &&YuGothic-Regular*&YuGothic~Medium*\\
- &\smash{\raisebox{1.5ex}{medium}}
- &YuGothic-Bold&YuGothic~Bold\\
-\cmidrule(l){2-4}
-%<en>\textit{gothic}%
-%<ja>\gt ゴシック
- &bold&YuGothic-Bold&YuGothic~Bold\\
- &heavy&YuGothic-Bold&YuGothic~Bold\\
-\midrule
-%<en>\textit{rounded gothic}
-%<ja>\gt 丸ゴシック
-&&YuGothic-Bold&YuGothic~Bold\\
-\bottomrule
-\end{tabular}
-\end{center}
-
-%<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/} からダウンロードできる.
-
-\begin{center}\small
-\begin{tabular}{clll}
-\toprule
-\bf family&\bf series&\bf default, \texttt{90jis}~option&\bf \texttt{jis2004} option\\
-\midrule
- &medium&Moga90Mincho&MogaMincho\\
-%<en>\smash{\raisebox{1.5ex}{\textit{mincho}}}%
-%<ja>\smash{\raisebox{1.5ex}{\gt 明朝}}%
- &bold&Moga90Mincho Bold&MogaMincho Bold\\
-\midrule
- &&Moga90Gothic*&MogaGothic*\\
- &\smash{\raisebox{1.5ex}{medium}}
- &Moga90Gothic Bold&MogaGothic Bold\\
-\cmidrule(l){2-4}
-%<en>\textit{gothic}%
-%<ja>\gt ゴシック
- &bold&Moga90Gothic Bold&MogaGothic Bold\\
- &heavy&Moga90Gothic Bold&MogaGothic Bold\\
-\midrule
-%<en>\textit{rounded gothic}
-%<ja>\gt 丸ゴシック
-&&Mobo90Gothic&MoboGothic\\
-\bottomrule
-\end{tabular}
-\end{center}
-
+\begin{multicols}{2}
+\begin{itemize}
+\def\ch#1#2{\item \char"#1\ (\texttt{U+00#1}, #2)}%"
+\ch{A7}{Section Sign}
+\ch{A8}{Diaeresis}
+\ch{B0}{Degree sign}
+\ch{B1}{Plus-minus sign}
+\ch{B4}{Spacing acute}
+\ch{B6}{Paragraph sign}
+\ch{D7}{Multiplication sign}
+\ch{F7}{Division Sign}
+\end{itemize}
+\end{multicols}
 
-\end{cslist}
-%<en>\paragraph{Presets for single weight}
-%<ja>\paragraph{単ウェイト用プリセット一覧}
 %<*en>
-Next, we describe settings for using only single weight.
+\item[Range~1${}^{\text{A}}$] Latin characters that some of them are included in Adobe-Japan1-6.
+This range consists of the following Unicode ranges, \emph{except characters in the range~8 above}:
 %</en>
 %<*ja>
-次に,単ウェイト用の設定を述べる.この4設定では
-明朝体太字・丸ゴシック体はゴシック体と同じフォントが用いられる.
+\item[範囲1${}^{\text{A}}$] ラテン文字のうち,Adobe-Japan1-6との共通部分があるもの.
+                             この範囲は以下のUnicodeのブロックのうち
+                             \emph{範囲8を除いた}部分で構成されている:
 %</ja>
-\par\nobreak\medskip
-{\centering\small
-\begin{tabular}{lllll}
-\toprule
-&\tt noembed&\tt ipa&\tt ipaex&\tt ms\\
-\midrule
+\begin{multicols}{2}
+\begin{itemize}
+\item \texttt{U+0080}--\texttt{U+00FF}: Latin-1 Supplement
+\item \texttt{U+0100}--\texttt{U+017F}: Latin Extended-A
+\item \texttt{U+0180}--\texttt{U+024F}: Latin Extended-B
+\item \texttt{U+0250}--\texttt{U+02AF}: IPA Extensions
+\item \texttt{U+02B0}--\texttt{U+02FF}: Spacing Modifier Letters
+%<en>\par\
+\item \texttt{U+0300}--\texttt{U+036F}: \\*\null\hfill Combining Diacritical Marks
+\item \texttt{U+1E00}--\texttt{U+1EFF}: \\*\null\hfill Latin Extended Additional
+%<ja>\par\
+\end{itemize}
+\end{multicols}
 %<*en>
-\it mincho&Ryumin-Light (non-embedded)
-&IPA Mincho&IPAex Mincho&MS Mincho\\
-\it gothic&GothicBBB-Medium (non-embedded)
-&IPA Gothic&IPAex Gothic&MS Gothic\\
+\item[Range~2${}^{\text{\kern.1emJ}}$] Greek and Cyrillic letters. JIS~X~0208 (hence most of Japanese
+          fonts) has some of these characters.
 %</en>
 %<*ja>
-\gtfamily 明朝体&Ryumin-Light(非埋込)
-&IPA明朝&IPAex明朝&MS明朝\\
-\gtfamily ゴシック体&GothicBBB-Medium(非埋込)
-&IPAゴシック&IPAexゴシック&MSゴシック\\
+\item[範囲2${}^{\text{\kern.1emJ}}$] ギリシャ文字とキリル文字.JIS~X~0208(したがってほとんどの
+                             和文フォント)には,これらの文字の一部が含まれている.
 %</ja>
-\bottomrule
-\end{tabular}\par\medskip}
-
-%<en>\paragraph{Using HG fonts}
-%<ja>\paragraph{HGフォントの利用}
+\begin{multicols}{2}
+\begin{itemize}
+\item \texttt{U+0370}--\texttt{U+03FF}: Greek and Coptic
+\item \texttt{U+0400}--\texttt{U+04FF}: Cyrillic
+\item \texttt{U+1F00}--\texttt{U+1FFF}: Greek Extended
+\\\
+\end{itemize}
+\end{multicols}
 %<*en>
-We can use HG~fonts bundled with Microsoft~Office for realizing multiple weights.
+\item[Range~3${}^{\text{\kern.1emJ}}$] Punctuations and Miscellaneous symbols. The block list is
+          indicated in \autoref{tab:rng3}.
 %</en>
 %<*ja>
-すぐ前に書いた単ウェイト用設定を,Microsoft Office等に付属するHGフォントを使って
-多ウェイト化した設定もある.
+\item[範囲3${}^{\text{\kern.1emJ}}$] 句読点と記号類.ブロックのリストは\autoref{tab:rng3}%
+                             に示してある.
 %</ja>
-\par\nobreak\medskip
-{\centering\small
+\begin{table}[!tb]
+%<en>\caption{Unicode blocks in predefined character range~3.}\medskip
+%<ja>\caption{文字範囲3に指定されているUnicodeブロック.}
+\label{tab:rng3}
+\catcode`\"=13\def"#1#2#3#4{\texttt{U+#1#2#3#4}}%"
+\centering\small
 \begin{tabular}{llll}
-\toprule
-&\tt ipa-hg&\tt ipaex-hg&\tt ms-hg\\
-\midrule
-%<*en>
-\bf mincho medium
-&IPA Mincho&IPAex Mincho&MS Mincho\\\midrule
-\bf mincho bold&
-\multicolumn{3}{c}{HG Mincho E}\\\midrule
-\bf Gothic medium\\
-~~without \texttt{deluxe}
-&IPA Gothic&IPAex Gothic&MS Gothic\\
-~~with {\tt jis2004}
-&IPA Gothic&IPAex Gothic&MS Gothic\\
-\cmidrule(lr){1-4}
-~~otherwise&
-\multicolumn{3}{c}{HG Gothic M}\\\midrule
-\bf gothic bold&
-\multicolumn{3}{c}{HG Gothic E}\\\midrule
-\bf gothic heavy&
-\multicolumn{3}{c}{HG Soei Kaku Gothic UB}\\\midrule
-\bf rounded gothic&
-\multicolumn{3}{c}{HG Maru Gothic PRO}\\
-%</en>
-%<*ja>
-\gtfamily 明朝体中字
-&IPA明朝&IPAex明朝&MS明朝\\\midrule
-\gtfamily 明朝体太字&
-\multicolumn{3}{c}{HG明朝E}\\\midrule
-\gtfamily ゴシック体中字\\
- 単ウェイト時
-&IPAゴシック&IPAexゴシック&MSゴシック\\
- {\tt jis2004}指定時
-&IPAゴシック&IPAexゴシック&MSゴシック\\
-\cmidrule(lr){1-4}
- それ以外の時&
-\multicolumn{3}{c}{HGゴシックM}\\\midrule
-\gtfamily ゴシック体太字&
-\multicolumn{3}{c}{HGゴシックE}\\\midrule
-\gtfamily ゴシック体極太&
-\multicolumn{3}{c}{HG創英角ゴシックUB}\\\midrule
-\gtfamily 丸ゴシック体&
-\multicolumn{3}{c}{HG丸ゴシック体PRO}\\
-%</ja>
-\bottomrule
-\end{tabular}\par\medskip}
-
+"2000--"206F&General Punctuation&
+"2070--"209F&Superscripts and Subscripts\\
+"20A0--"20CF&Currency Symbols&
+"20D0--"20FF&Comb.\ Diacritical Marks for Symbols\\
+"2100--"214F&Letterlike Symbols&
+"2150--"218F&Number Forms\\
+"2190--"21FF&Arrows&
+"2200--"22FF&Mathematical Operators\\
+"2300--"23FF&Miscellaneous Technical&
+"2400--"243F&Control Pictures\\
+"2500--"257F&Box Drawing&
+"2580--"259F&Block Elements\\
+"25A0--"25FF&Geometric Shapes&
+"2600--"26FF&Miscellaneous Symbols\\
+"2700--"27BF&Dingbats&
+"2900--"297F&Supplemental Arrows-B\\
+"2980--"29FF&Misc.\ Mathematical Symbols-B&
+"2B00--"2BFF&Miscellaneous Symbols and Arrows
+\end{tabular}
+\end{table}
 %<*en>
-Note that HG~Mincho~E, HG~Gothic~E, HG Soei Kaku Gothic UB, and HG Maru Gothic PRO
-are internally specified by:
-\begin{description}
-\item[default] by font name (\texttt{HGMinchoE}, etc.).
-\item[{\tt 90jis}] by file name (\texttt{hgrme.ttc}, \texttt{hgrge.ttc}, \texttt{hgrsgu.ttc}, \texttt{hgrsmp.ttf}).
-\item[{\tt jis2004}] by file name (\texttt{hgrme04.ttc}, \texttt{hgrge04.ttc}, \texttt{hgrsgu04.ttc}, \texttt{hgrsmp04.ttf}).
-\end{description}
+\item[Range~4${}^{\text{A}}$] Characters usually not in Japanese fonts. This range consists
+          of almost all Unicode blocks which are not in other
+          predefined ranges. Hence, instead of showing the block list,
+          we put the definition of this range itself:
 %</en>
 %<*ja>
-なお,HG明朝E・HGゴシックE・HG創英角ゴシックUB・HG丸ゴシック体PROの4つについては,内部で
-\begin{description}
-\item[標準] フォント名(\texttt{HGMinchoE} など)
-\item[{\tt 90jis}指定時] ファイル名 (%
-\texttt{hgrme.ttc}, \texttt{hgrge.ttc}, \texttt{hgrsgu.ttc}, \texttt{hgrsmp.ttf})
-\item[{\tt jis2004}指定時] ファイル名 (%
-\texttt{hgrme04.ttc}, \texttt{hgrge04.ttc}, \texttt{hgrsgu04.ttc}, \texttt{hgrsmp04.ttf})
-\end{description}
-として指定を行っているので注意すること.
+\item[範囲4${}^{\text{A}}$] 通常和文フォントには含まれていない文字.
+                             この範囲は他の範囲にないほとんど全てのUnicodeブロック
+                             で構成されている.したがって,ブロックのリストを示す
+                             代わりに,範囲の定義そのものを示す:
 %</ja>
-
-
+\begin{lstlisting}
+\ltjdefcharrange{4}{%
+   "500-"10FF, "1200-"1DFF, "2440-"245F, "27C0-"28FF, "2A00-"2AFF,
+  "2C00-"2E7F, "4DC0-"4DFF, "A4D0-"A82F, "A840-"ABFF, "FB00-"FE0F,
+  "FE20-"FE2F, "FE70-"FEFF, "10000-"1FFFF, "E000-"F8FF} % non-Japanese
+\end{lstlisting}
+%<en>\item[Range~5${}^{\text{A}}$] Surrogates and Supplementary Private Use Areas.
+%<ja>\item[範囲5${}^{\text{A}}$] 代用符号と補助私用領域.
+%<en>\item[Range~6${}^{\text{\kern.1emJ}}$] Characters used in Japanese. The block list is indicated in \autoref{tab:rng6}.
+%<ja>\item[範囲6${}^{\text{\kern.1emJ}}$] 日本語で用いられる文字.ブロックのリストは\autoref{tab:rng6}に示す.
+\begin{table}[!tb]
+%<en>\caption{Unicode blocks in predefined character range~6.}\medskip
+%<ja>\caption{文字範囲6に指定されているUnicodeブロック.}
+\label{tab:rng6}
+\catcode`\"=13\def"#1#2#3#4{\texttt{U+#1#2#3#4}}%"
+\centering\small
+\begin{tabular}{llll}
+"2460--"24FF&Enclosed Alphanumerics&
+"2E80--"2EFF&CJK Radicals Supplement\\
+"3000--"303F&CJK Symbols and Punctuation&
+"3040--"309F&Hiragana\\
+"30A0--"30FF&Katakana&
+"3190--"319F&Kanbun\\
+"31F0--"31FF&Katakana Phonetic Extensions&
+"3200--"32FF&Enclosed CJK Letters and Months\\
+"3300--"33FF&CJK Compatibility&
+"3400--"4DBF&CJK Unified Ideographs Extension A\\
+"4E00--"9FFF&CJK Unified Ideographs&
+"F900--"FAFF&CJK Compatibility Ideographs\\
+"FE10--"FE1F&Vertical Forms&
+"FE30--"FE4F&CJK Compatibility Forms\\
+"FE50--"FE6F&Small Form Variants&
+"{20}000--"{2F}FFF&(Supplementary Ideographic Plane)\\
+"{E0}100--"{E0}1EF&Variation Selectors Supplement
+\end{tabular}
+\end{table}
 %<*en>
-\subsection{\cs{CID}, \cs{UTF}, and macros in \Pkg{japanese-otf} package}
-Under \pLaTeX, \Pkg{japanese-otf} package (developed by Shuzaburo Saito) is
-used for typesetting characters which is in Adobe-Japan1-6 CID but not
-in JIS~X~0208. Since this package is widely used, \LuaTeX-ja
-supports some of functions in the \Pkg{japanese-otf} package,
-as an external package \Pkg{luatexja-otf}.
+\item[Range~7${}^{\text{\kern.1emJ}}$] Characters used in CJK languages, but not included in  Adobe-Japan1-6.
+The block list is indicated in \autoref{tab:rng7}.
 %</en>
 %<*ja>
-\subsection{\cs{CID}, \cs{UTF}と\Pkg{otf}パッケージのマクロ}
-\pLaTeX では,JIS~X~0208にないAdobe-Japan1-6の文字を出力するために,
-齋藤修三郎氏による\Pkg{otf}パッケージが用いられていた.このパッケージは
-広く用いられているため,\LuaTeX-jaにおいても\Pkg{otf}パッケージの機能の
-一部を(\Pkg{luatexja-otf}という別のパッケージとして)実装した.
-%</ja>
-
-\begin{LTXexample}
-\jfontspec{KozMinPr6N-Regular.otf}
-森\UTF{9DD7}外と内田百\UTF{9592}とが\UTF{9AD9}島屋に行く。
-
-\CID{7652}飾区の\CID{13706}野家,
-\CID{1481}城市,葛西駅,
-高崎と\CID{8705}\UTF{FA11}
-
-\aj半角{はんかくカタカナ}
-\end{LTXexample}
-
-%<*ja>
-\Pkg{otf}パッケージでは,それぞれ次のようなオプションが存在した:
-\begin{cslist}
-\item[deluxe] 明朝体・ゴシック体各3ウェイトと,丸ゴシック体を扱えるようになる.
-\item[expert] 仮名が横組・縦組専用のものに切り替わり,ルビ用仮名も
-\ \cs{rubyfamily}\ によって扱えるようになる.
-\item[bold] ゴシック体を標準で太いウェイトのものに設定する.
-\end{cslist}
-しかしこれらのオプションは\Pkg{luatexja-otf}パッケージには存在しない.
-\Pkg{otf}パッケージが文書中で使用する和文用TFMを自前の物に置き換えていたのに対し,
-\Pkg{luatexja-otf}パッケージでは,そのようなことは行わないからである.
-
-これら3オプションについては,
-\Pkg{luatexja-preset} パッケージにプリセットを使う時に一緒に指定するか,
-あるいは対応する内容を\ref{ssec-chgfnt}節,\ref{ssec-nfsspat}節 (NFSS2) や
-\ref{ssec-fontspec}節 (\Pkg{fontspec}) の方法で手動で指定する必要がある.
+\item[範囲7${}^{\text{\kern.1emJ}}$] CJK言語で用いられる文字のうち,Adobe-Japan1-6に
+                            含まれていないもの.
+                            ブロックのリストは\autoref{tab:rng7}に示す.
 %</ja>
+\begin{table}[!tb]
+%<en>\caption{Unicode blocks in predefined character range~7.}\medskip
+%<ja>\caption{文字範囲7に指定されているUnicodeブロック.}
+\label{tab:rng7}
+\catcode`\"=13\def"#1#2#3#4{\texttt{U+#1#2#3#4}}%"
+\centering\small
+\begin{tabular}{llll}
+"1100--"11FF&Hangul Jamo&
+"2F00--"2FDF&Kangxi Radicals\\
+"2FF0--"2FFF&Ideographic Description Characters&
+"3100--"312F&Bopomofo\\
+"3130--"318F&Hangul Compatibility Jamo&
+"31A0--"31BF&Bopomofo Extended\\
+"31C0--"31EF&CJK Strokes&
+"A000--"A48F&Yi Syllables\\
+"A490--"A4CF&Yi Radicals&
+"A830--"A83F&Common Indic Number Forms\\
+"AC00--"D7AF&Hangul Syllables&
+"D7B0--"D7FF&Hangul Jamo Extended-B
+\end{tabular}
+\end{table}
+\end{description}
 
-%<en>\subsection{Changing default Japanese fonts}
-%<ja>\subsection{標準和文フォントの変更}
-\label{ssec-cfg}
 %<*en>
-If \texttt{luatexja.cfg} can be seen from \LuaTeX, \LuaTeX-ja automatically reads it.
-The main use of \texttt{luatexja.cfg} is for changing default Japanese fonts,
-when IPAex fonts cannot be installed in \TeX~system.
-One should not overuse this \texttt{luatexja.cfg}; fonts which will be used in
-a document should be specified in its source.
+\paragraph{Notes on \texttt{U+0080}--\texttt{U+00FF}}
+You should treat characters in \\texttt{U+0080}--\texttt{U+00FF} as \textbf{ALchar},
+when you use traditional 8-bit fonts, such as the \Pkg{marvosym} package.
 
-For example,
-\begin{lstlisting}
-\def\ltj@stdmcfont{IPAMincho}
-\def\ltj@stdgtfont{IPAGothic}
-\end{lstlisting}
-makes that IPA~Mincho and IPA~Gothic will be used as default Japanese fonts, instead of
-IPAex~Mincho and IPAex~Gothic.
+For example, \cs{Frowny} which is provided by the \Pkg{marvosym} package has
+the same codepoint as \S\ (\text{U+00A7}).
+Hence, as previous versions of \LuaTeX-ja, if these characters are treated as
+\text{JAchar}s, then \cs{Frowny} produces ``\ltjjachar`§'' (in a Japanese font).
 
-For another example, the following two lines makes that
-non-embedded fonts Ryumin-Light~and~GothicBBB-Medium as default Japanese fonts
-(as the earlier version of \LuaTeX-ja):
-\begin{lstlisting}
-\def\ltj@stdmcfont{psft:Ryumin-Light}
-\def\ltj@stdgtfont{psft:GothicBBB-Medium}
-\end{lstlisting}
+To avoid such situations, the default setting of \LuaTeX-ja is changed in version~20150906.0
+so that all characters \texttt{U+0080}--\texttt{U+00FF} are treated as \textbf{ALchar}.
+
+If you want to output a character as \textbf{ALchar} and \textbf{JAchar} regardless the range
+setting, you can use \cs{ltjalchar} and \cs{ltjjachar} respectively, as the following example.
+\begin{LTXexample}[width=0.3\textwidth]
+\gtfamily\large % default, ALchar, JAchar
+¶, \ltjalchar`¶, \ltjjachar`¶\\   % default: ALchar
+α, \ltjalchar`α, \ltjjachar`α  % default: JAchar
+\end{LTXexample}
 %</en>
 %<*ja>
-\LuaTeX から見える位置に \texttt{luatexja.cfg} があれば,\LuaTeX-jaはそれを読み込む.
-このファイルを用いるとplain~\TeX, \LaTeXe における標準和文フォントを
-IPAex明朝・IPAexゴシックから変更することができる.
-しかし,基本的には\emph{文章中で用いるフォントは(例えば \Pkg{luatexja-preset} などで)
-文書ソース内で指定するべき}であり,この \texttt{luatexja.cfg} は,
-「IPAexフォントがインストールできない」など,IPAexフォントが使用できない場合にのみ
-応急処置的に用いるべきである.
+\paragraph{\texttt{U+0080}--\texttt{U+00FF}についての注意}
+\LuaTeX-jaで,\Pkg{marvosym}パッケージ等,Unicodeフォントでなく
+伝統的な8ビットフォントを用いる場合には注意が必要である.
 
-例えば
-\begin{lstlisting}
-\def\ltj@stdmcfont{IPAMincho}
-\def\ltj@stdgtfont{IPAGothic}
-\end{lstlisting}
-と記述しておけば,標準和文フォントがIPA明朝・IPAゴシックへと変
-更される.
+例えば,\Pkg{marvosym}パッケージの提供する \cs{Frowny} も,符号位置は167,つまりUnicodeにおける
+\S\ (\text{U+00A7}) と同じ符号位置にある.
+即ち,以前のバージョンのように,「前節の文字範囲8内の文字は\textbf{JAchar}」という設定で
+あったとすると,上記の \cs{Frowny} は和文フォントで「\ltjjachar`§」を出力することになる.
 
+このような事態を避けるために,バージョン20150906.0からは \texttt{U+0080}--\texttt{U+00FF} の範囲の
+文字は全て\textbf{ALchar}となるように初期設定を変更している.
 
-なお,20140906.0以前のバージョンのように
-Ryumin-Light, GothicBBB-Mediumという名前の非埋込フォントを用いる場合は
-\begin{lstlisting}
-\def\ltj@stdmcfont{psft:Ryumin-Light}
-\def\ltj@stdgtfont{psft:GothicBBB-Medium}
-\end{lstlisting}
-と記述すればよい.
+なお,文字範囲の設定に関わらず1つの文字を\textbf{ALchar}, \textbf{JAchar}で出力したい場合には
+以下の例のようにそれぞれ \cs{ltjalchar},~\cs{ltjjachar} に該当文字の文字コードを渡せばよい.
+\begin{LTXexample}[width=0.3\textwidth]
+\gtfamily\large % default, ALchar, JAchar
+¶, \ltjalchar`¶, \ltjjachar`¶\\   % default: ALchar
+α, \ltjalchar`α, \ltjjachar`α  % default: JAchar
+\end{LTXexample}
 %</ja>
 
 
-%<en>\section{Changing Internal Parameters}
-%<ja>\section{パラメータの変更}
+%<en>\subsection{\Param{kanjiskip} and \Param{xkanjiskip}}
+%<ja>\subsection{\Param{kanjiskip}と\Param{xkanjiskip}}
+\label{subs-kskip}
 
-%<*en>
-There are many internal parameters in \LuaTeX-ja. And due to the behavior of \LuaTeX,
-most of them are not stored as internal register of \TeX, but as an
-original storage system in \LuaTeX-ja. Hence, to assign or acquire those
-parameters, you have to use commands \cs{ltjsetparameter} and
-\cs{ltjgetparameter}.
+%<en>\textbf{JAglue} is divided into the following three categories:
+%<ja>\textbf{JAglue}は以下の3つのカテゴリに分類される:
+\begin{itemize}
+%<*en>
+\item Glues/kerns specified in JFM. If \cs{inhibitglue} is issued
+      around a \textbf{JAchar}, this glue will not be inserted at the
+      place.
 %</en>
 %<*ja>
-\LuaTeX-jaには多くのパラメータが存在する.そして\LuaTeX の仕様のために,
-その多くは\TeX のレジスタにではなく,\LuaTeX-ja独自の方法で保持されている.
-これらのパラメータを設定・取得するためには \cs{ltjsetparameter} と \cs{ltjgetparameter} を
-用いる.
+\item JFMで指定されたグルー/カーン.もし \cs{inhibitglue} が\textbf{JAchar}の周りで
+      発行されていれば,このグルーは挿入されない.
 %</ja>
-
-%<en>\subsection{Range of \textbf{JAchar}s}
-%<ja>\subsection{\textbf{JAchar}の範囲}
-\label{ssec-setrange}
-
 %<*en>
-\LuaTeX-ja divides the Unicode codespace \texttt{U+0080}--\texttt{U+10FFFF}
-into \emph{character ranges},
-numbered 1 to 217. The grouping can be (globally) customized by \cs{ltjdefcharrange}.
-The next line adds whole characters in Supplementary Ideographic Plane
-and the character ``漢'' to the character range~100.
+\item The default glue which inserted between two \textbf{JAchar}s (\Param{%
+      kanjiskip}).
 %</en>
 %<*ja>
-\LuaTeX-jaは,Unicodeの \texttt{U+0080}--\texttt{U+10FFFF} の空間を
-1番から217番までの\emph{文字範囲}に分割している.
-区分けは \cs{ltjdefcharrange} を用いることで(グローバルに)変更することができ,
-例えば,次は追加漢字面(SIP)にある全ての文字と「漢」を「100番の文字範囲」に追加する.
+\item デフォルトで2つの\textbf{JAchar}の間に挿入されるグルー(\Param{kanjiskip}).
 %</ja>
-\begin{lstlisting}
-\ltjdefcharrange{100}{"20000-"2FFFF,`漢}
-\end{lstlisting}
-
 %<*en>
-A character can belong to only one character range.
-For example, whole SIP belong to the range~4 in the default setting of \LuaTeX-ja,
-and if you execute the above line, then SIP will belong to the range~100 and be
-removed from the range~4.
+\item The default glue which inserted between a \textbf{JAchar} and an
+      \textbf{ALchar} (\Param{xkanjiskip}).
 %</en>
 %<*ja>
-各文字はただ一つの文字範囲に所属することができる.
-例えば,SIP内の文字は全て\LuaTeX-jaのデフォルトでは4番の文字範囲に
-属しているが,上記の指定を行えばSIP内の文字は100番に属すようになり,4番からは除かれる.
+\item デフォルトで\textbf{JAchar}と\textbf{ALchar}の間に挿入されるグルー(\Param{xkanjiskip}).
 %</ja>
-
-%<*en>
-The distinction between \textbf{ALchar} and \textbf{JAchar} is performed by character ranges.
-This can be edited by setting the \textsf{jacharrange} parameter.
-For example, the code below is just the default setting of \LuaTeX-ja, and
-it sets
-\begin{itemize}
- \item a character which belongs character ranges 1,~4, 5, and~8 is \textbf{ALchar},
- \item a character which belongs character ranges 2,~3, 6, and~7 is \textbf{JAchar}.
 \end{itemize}
+%<*en>
+The value (a skip) of \Param{kanjiskip} or
+\Param{xkanjiskip} can be changed as the following.
+Note that only their values \emph{at the end of a paragraph or a hbox are
+adopted in the whole paragraph or the whole hbox.
+}
 %</en>
 %<*ja>
-\textbf{ALchar}と\textbf{JAchar}の区別は文字範囲ごとに行われる.
-これは\textsf{jacharrange}パラメータによって編集できる.
-例えば,以下は\LuaTeX-jaの初期設定であり,次の内容を設定している:
-\begin{itemize}
- \item 1番,4番,5番,8番の文字範囲に属する文字は\textbf{ALchar}.
- \item 2番,3番,6番,7番の文字範囲に属する文字は\textbf{JAchar}.
-\end{itemize}
+\Param{kanjiskip}や\Param{xkanjiskip}の値
+は以下のようにして変更可能である.
 %</ja>
 \begin{lstlisting}
-\ltjsetparameter{jacharrange={-1, +2, +3, -4, -5, +6, +7, -8}}
+\ltjsetparameter{kanjiskip={0pt plus 0.4pt minus 0.4pt},
+                 xkanjiskip={0.25\zw plus 1pt minus 1pt}}
 \end{lstlisting}
 %<*en>
-The argument to \textsf{jacharrange} parameter is a list of non-zero integer.
-Negative integer $-n$ in the list means that ``each character in the range~$n$ is an
-\textbf{ALchar}'',
-and positive integer $+n$ means that ``\dots\ is a \textbf{JAchar}''.
-%</en>
-%<*ja>
-\textsf{jacharrange}パラメータの引数は非零の整数のリストである.
-リスト中の負の整数$-n$は「文字範囲$n$に属する文字は\textbf{ALchar}として
-扱う」ことを意味し,正の整数$+n$は「\textbf{JAchar}として扱う」ことを意味する.
-%</ja>
+Here \cs{zw} is a internal dimension
+which stores fullwidth of the current Japanese font.
+This \cs{zw} can be used as the unit \texttt{zw} in \pTeX.
 
-%<*en>
-Note that characters \texttt{U+0000}--\texttt{U+007F} are always treated as an
-\textbf{ALchar} (this cannot be customized).
+The value of these parameter can be get by \cs{ltjgetparameter}.
+Note that the result by \cs{ltjgetparameter} is \emph{not} the internal quantities,
+but \emph{a string} (hence \cs{the} cannot be prefixed).
 %</en>
 %<*ja>
-なお,\texttt{U+0000}--\texttt{U+007F} は常に\textbf{ALchar}として扱われる(利用者が変更す
-ることは出来ない).
+ここで,\cs{zw} は現在の和文フォントの全角幅を表す長さであり,
+\pTeX における長さ単位 \texttt{zw} と同じように使用できる.
+
+これらのパラメータの値は以下のように取得できる.
+戻り値は内部値ではなく\emph{文字列}である(\cs{the} は前置できない)ことに注意してほしい:
 %</ja>
+\begin{LTXexample}
+kanjiskip: \ltjgetparameter{kanjiskip},\\
+xkanjiskip: \ltjgetparameter{xkanjiskip}
+\end{LTXexample}
 
 %<*en>
-\paragraph{Default character ranges}
-\LuaTeX-ja predefines eight character ranges for convenience. They are
-determined from the following data:
+It may occur that JFM contains the data of ``ideal width of
+\Param{kanjiskip}''
+and/or ``ideal width of \Param{xkanjiskip}''.
+To use these data from JFM, set the value of \Param{kanjiskip} or
+\Param{xkanjiskip} to \cs{maxdimen}
+(these ``ideal width'' cannot be retrived by \cs{ltjgetparameter}).
 %</en>
 %<*ja>
-\paragraph{文字範囲の初期値}
-\LuaTeX-jaでは8つの文字範囲を予め定義しており,
-これらは以下のデータに基づいて決定している.
+JFMは「望ましい\Param{kanjiskip}の値」や
+「望ましい\Param{xkanjiskip}の値」を持っていることがある.
+これらのデータを使うためには,\Param{kanjiskip}や%
+\Param{xkanjiskip}の値を \cs{maxdimen} の値に設定すればよいが,
+\cs{ltjgetparameter} によって取得することはできないので注意が必要である.
 %</ja>
-\begin{itemize}
-%<en>\item Blocks in Unicode~6.0.
-%<ja>\item Unicode~6.0のブロック.
-%<en>\item The \texttt{Adobe-Japan1-UCS2} mapping between a CID Adobe-Japan1-6 and Unicode.
-%<ja>\item Adobe-Japan1-6のCIDとUnicodeの間の対応表\texttt{Adobe-Japan1-UCS2}.
-%<en>\item The \Pkg{PXbase} bundle for \upTeX\ by Takayuki Yato.
-%<ja>\item 八登崇之氏による\upTeX 用の\Pkg{PXbase}バンドル.
-\end{itemize}
+
+%<en>\subsection{Insertion setting of \Param{xkanjiskip}}
+%<ja>\subsection{\Param{xkanjiskip} の挿入設定}
 
 %<*en>
-Now we describe these eight ranges. The superscript ``J'' or ``A'' after the
-number shows whether each character in the range is treated as
-\textbf{JAchar}s or not by default. These settings are similar to the
-\texttt{prefercjk} settings defined in \texttt{PXbase} bundle.
-Any characters equal to or above \texttt{U+0080} which does not belong to
-these eight ranges belongs to the character range~217.
+It is not desirable that \Param{xkanjiskip} is inserted into every
+boundary between \textbf{JAchar}s and \textbf{ALchar}s. For example,
+\Param{xkanjiskip} should not be inserted after opening parenthesis
+(\textit{e.g.}, compare ``(あ'' and ``(\hskip\ltjgetparameter{xkanjiskip}あ'').
+\LuaTeX-ja can control whether \Param{xkanjiskip} can be inserted
+before/after a character, by changing \Param{jaxspmode} for \textbf{JAchar}s and
+\Param{alxspmode} parameters \textbf{ALchar}s respectively.
 %</en>
 %<*ja>
-以下ではこれら8つの文字範囲について記述する.添字のアルファベット「J」「A」
-は,その文字範囲内の文字が\textbf{JAchar}か\textbf{ALchar}かを表している.これらの初期設定は
-\texttt{PXbase}バンドルで定義されている\texttt{prefercjk}と類似のものであるが,
-8ビットフォント使用時のトラブルを防ぐために \texttt{U+0080}--\texttt{U+00FF} の文字は全部
-\textbf{ALchar}としている.
-なお,\texttt{U+0080} 以降でこれら8つの文字範囲に属さない文字は,217番の文字範囲に属することになっている.
+\Param{xkanjiskip}がすべての\textbf{JAchar}と\textbf{ALchar}の境界に
+挿入されるのは望ましいことではない.例えば,\Param{xkanjiskip}は開き括弧の
+後には挿入されるべきではない(「(あ」と「(\hskip\ltjgetparameter{xkanjiskip}あ」を
+比べてみよ).
+\LuaTeX-jaでは\Param{xkanjiskip}をある文字の前/後に挿入するかどうかを,
+\textbf{JAchar}に対しては\Param{jaxspmode}を,\textbf{ALchar}に対しては
+\Param{alxspmode}をそれぞれ変えることで制御することができる.
 %</ja>
-\begin{description}
-%<*en>
+\begin{LTXexample}
+\ltjsetparameter{jaxspmode={`あ,preonly}, alxspmode={`\!,postonly}}
+pあq い!う
+\end{LTXexample}
 
-\item[Range~8${}^{\text{A}}$] The intersection of the upper half of ISO~8859-1
-        (Latin-1 Supplement) and JIS~X~0208 (a basic character set for Japanese). This character range
-        consists of the following characters:
+%<*en>
+The second argument \texttt{preonly} means that the insertion of
+\Param{xkanjiskip} is allowed before this character, but not after.
+the other possible values are \texttt{postonly}, \texttt{allow}, and \texttt{inhibit}.
 %</en>
 %<*ja>
-\item[範囲8${}^{\text{A}}$] ISO~8859-1の上位領域(ラテン1補助)と
-                             JIS~X~0208の共通部分.この文字範囲
-                             以下の文字で構成される:
+2つ目の引数の \texttt{preonly}は「\Param{xkanjiskip}の挿入はこの文字の
+前でのみ許され,後では許さない」ことを意味する.他に指定可能な値
+\texttt{postonly}, \texttt{allow}, \texttt{inhibit}である.
 %</ja>
-\begin{multicols}{2}
-\begin{itemize}
-\def\ch#1#2{\item \char"#1\ (\texttt{U+00#1}, #2)}%"
-\ch{A7}{Section Sign}
-\ch{A8}{Diaeresis}
-\ch{B0}{Degree sign}
-\ch{B1}{Plus-minus sign}
-\ch{B4}{Spacing acute}
-\ch{B6}{Paragraph sign}
-\ch{D7}{Multiplication sign}
-\ch{F7}{Division Sign}
-\end{itemize}
-\end{multicols}
 
 %<*en>
-\item[Range~1${}^{\text{A}}$] Latin characters that some of them are included in Adobe-Japan1-6.
-This range consists of the following Unicode ranges, \emph{except characters in the range~8 above}:
+\Param{jaxspmode} and \Param{alxspmode} use a same table to store the parameters
+on the current version. Therefore, line~1 in the code above can be rewritten
+as follows:
 %</en>
 %<*ja>
-\item[範囲1${}^{\text{A}}$] ラテン文字のうち,Adobe-Japan1-6との共通部分があるもの.
-                             この範囲は以下のUnicodeのブロックのうち
-                             \emph{範囲8を除いた}部分で構成されている:
+なお,現行の
+仕様では,\Param{jaxspmode}, \Param{alxspmode}はテーブルを共有しており,
+上のコードの1行目を次のように変えても同じことになる:
 %</ja>
-\begin{multicols}{2}
-\begin{itemize}
-\item \texttt{U+0080}--\texttt{U+00FF}: Latin-1 Supplement
-\item \texttt{U+0100}--\texttt{U+017F}: Latin Extended-A
-\item \texttt{U+0180}--\texttt{U+024F}: Latin Extended-B
-\item \texttt{U+0250}--\texttt{U+02AF}: IPA Extensions
-\item \texttt{U+02B0}--\texttt{U+02FF}: Spacing Modifier Letters
-%<en>\par\
-\item \texttt{U+0300}--\texttt{U+036F}: \\*\null\hfill Combining Diacritical Marks
-\item \texttt{U+1E00}--\texttt{U+1EFF}: \\*\null\hfill Latin Extended Additional
-%<ja>\par\
-\end{itemize}
-\end{multicols}
+\begin{lstlisting}
+\ltjsetparameter{alxspmode={`あ,preonly}, jaxspmode={`\!,postonly}}
+\end{lstlisting}
 %<*en>
-\item[Range~2${}^{\text{\kern.1emJ}}$] Greek and Cyrillic letters. JIS~X~0208 (hence most of Japanese
-          fonts) has some of these characters.
+One can use also numbers to specify these two parameters (see Subsection~\ref{ssec:param}).
 %</en>
 %<*ja>
-\item[範囲2${}^{\text{\kern.1emJ}}$] ギリシャ文字とキリル文字.JIS~X~0208(したがってほとんどの
-                             和文フォント)には,これらの文字の一部が含まれている.
+また,これら2パラメータには数値で値を指定することもできる(\ref{ssec:param}節を参照).
 %</ja>
-\begin{multicols}{2}
-\begin{itemize}
-\item \texttt{U+0370}--\texttt{U+03FF}: Greek and Coptic
-\item \texttt{U+0400}--\texttt{U+04FF}: Cyrillic
-\item \texttt{U+1F00}--\texttt{U+1FFF}: Greek Extended
-\\\
-\end{itemize}
-\end{multicols}
+
 %<*en>
-\item[Range~3${}^{\text{\kern.1emJ}}$] Punctuations and Miscellaneous symbols. The block list is
-          indicated in Table~\ref{table-rng3}.
+If you want to enable/disable all insertions of \Param{kanjiskip} and
+\Param{xkanjiskip}, set \Param{autospacing} and \Param{autoxspacing}
+parameters to \texttt{true}/\texttt{false}, respectively.
 %</en>
 %<*ja>
-\item[範囲3${}^{\text{\kern.1emJ}}$] 句読点と記号類.ブロックのリストは表\ref{table-rng3}%
-                             に示してある.
+もし全ての\Param{kanjiskip}と\Param{xkanjiskip}の挿入を有効化/無効化
+したければ,それぞれ\Param{autospacing}と\Param{autoxspacing}を
+\texttt{true}/\texttt{false}に設定すればよい.
 %</ja>
-\begin{table}[!tb]
-%<en>\caption{Unicode blocks in predefined character range~3.}\medskip
-%<ja>\caption{文字範囲3に指定されているUnicodeブロック.}
-\label{table-rng3}
-\catcode`\"=13\def"#1#2#3#4{\texttt{U+#1#2#3#4}}%"
-\centering\small
-\begin{tabular}{llll}
-"2000--"206F&General Punctuation&
-"2070--"209F&Superscripts and Subscripts\\
-"20A0--"20CF&Currency Symbols&
-"20D0--"20FF&Comb.\ Diacritical Marks for Symbols\\
-"2100--"214F&Letterlike Symbols&
-"2150--"218F&Number Forms\\
-"2190--"21FF&Arrows&
-"2200--"22FF&Mathematical Operators\\
-"2300--"23FF&Miscellaneous Technical&
-"2400--"243F&Control Pictures\\
-"2500--"257F&Box Drawing&
-"2580--"259F&Block Elements\\
-"25A0--"25FF&Geometric Shapes&
-"2600--"26FF&Miscellaneous Symbols\\
-"2700--"27BF&Dingbats&
-"2900--"297F&Supplemental Arrows-B\\
-"2980--"29FF&Misc.\ Mathematical Symbols-B&
-"2B00--"2BFF&Miscellaneous Symbols and Arrows
-\end{tabular}
-\end{table}
+
+%<en>\subsection{Shifting the baseline}
+%<ja>\subsection{ベースラインの移動}
 %<*en>
-\item[Range~4${}^{\text{A}}$] Characters usually not in Japanese fonts. This range consists
-          of almost all Unicode blocks which are not in other
-          predefined ranges. Hence, instead of showing the block list,
-          we put the definition of this range itself:
-%</en>
-%<*ja>
-\item[範囲4${}^{\text{A}}$] 通常和文フォントには含まれていない文字.
-                             この範囲は他の範囲にないほとんど全てのUnicodeブロック
-                             で構成されている.したがって,ブロックのリストを示す
-                             代わりに,範囲の定義そのものを示す:
-%</ja>
-\begin{lstlisting}
-\ltjdefcharrange{4}{%
-   "500-"10FF, "1200-"1DFF, "2440-"245F, "27C0-"28FF, "2A00-"2AFF,
-  "2C00-"2E7F, "4DC0-"4DFF, "A4D0-"A82F, "A840-"ABFF, "FB00-"FE0F,
-  "FE20-"FE2F, "FE70-"FEFF, "10000-"1FFFF, "E000-"F8FF} % non-Japanese
-\end{lstlisting}
-%<en>\item[Range~5${}^{\text{A}}$] Surrogates and Supplementary Private Use Areas.
-%<ja>\item[範囲5${}^{\text{A}}$] 代用符号と補助私用領域.
-%<en>\item[Range~6${}^{\text{\kern.1emJ}}$] Characters used in Japanese. The block list is indicated in Table~\ref{table-rng6}.
-%<ja>\item[範囲6${}^{\text{\kern.1emJ}}$] 日本語で用いられる文字.ブロックのリストは表\ref{table-rng6}に示す.
-\begin{table}[!tb]
-%<en>\caption{Unicode blocks in predefined character range~6.}\medskip
-%<ja>\caption{文字範囲6に指定されているUnicodeブロック.}
-\label{table-rng6}
-\catcode`\"=13\def"#1#2#3#4{\texttt{U+#1#2#3#4}}%"
-\centering\small
-\begin{tabular}{llll}
-"2460--"24FF&Enclosed Alphanumerics&
-"2E80--"2EFF&CJK Radicals Supplement\\
-"3000--"303F&CJK Symbols and Punctuation&
-"3040--"309F&Hiragana\\
-"30A0--"30FF&Katakana&
-"3190--"319F&Kanbun\\
-"31F0--"31FF&Katakana Phonetic Extensions&
-"3200--"32FF&Enclosed CJK Letters and Months\\
-"3300--"33FF&CJK Compatibility&
-"3400--"4DBF&CJK Unified Ideographs Extension A\\
-"4E00--"9FFF&CJK Unified Ideographs&
-"F900--"FAFF&CJK Compatibility Ideographs\\
-"FE10--"FE1F&Vertical Forms&
-"FE30--"FE4F&CJK Compatibility Forms\\
-"FE50--"FE6F&Small Form Variants&
-"{20}000--"{2F}FFF&(Supplementary Ideographic Plane)\\
-"{E0}100--"{E0}1EF&Variation Selectors Supplement
+To make a match between a Japanese font and an alphabetic font, sometimes
+shifting of the baseline of one of the pair is needed. In \pTeX, this is achieved
+by setting \cs{ybaselineshift} (or \cs{tbaselineshift}) to a non-zero length (the
+baseline of \textbf{ALchar} is shifted below). However, for documents
+whose main language is not Japanese, it is good to shift the baseline of
+Japanese fonts, but not that of alphabetic fonts.
+Because of this, \LuaTeX-ja can independently set the shifting amount
+of the baseline of alphabetic fonts and that of Japanese fonts.
+\begin{center}
+ \small
+\begin{tabular}{>{\bfseries}lcc}
+\toprule
+&\bfseries Horizontal writing (\emph{yoko} direction) etc.
+&\bfseries Vertical writing(\emph{tate} direction)\\
+\midrule
+Alphabetic fonts&\Param{yalbaselineshift}
+     parameter&\Param{talbaselineshift} parameter\\
+Japanese fonts&\Param{yjabaselineshift}
+     parameter&\Param{tjabaselineshift} parameter\\
+\bottomrule
 \end{tabular}
-\end{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}.
+\end{center}
 %</en>
 %<*ja>
-\item[範囲7${}^{\text{\kern.1emJ}}$] CJK言語で用いられる文字のうち,Adobe-Japan1-6に
-                            含まれていないもの.
-                            ブロックのリストは表\ref{table-rng7}に示す.
-%</ja>
-\begin{table}[!tb]
-%<en>\caption{Unicode blocks in predefined character range~7.}\medskip
-%<ja>\caption{文字範囲7に指定されているUnicodeブロック.}
-\label{table-rng7}
-\catcode`\"=13\def"#1#2#3#4{\texttt{U+#1#2#3#4}}%"
-\centering\small
-\begin{tabular}{llll}
-"1100--"11FF&Hangul Jamo&
-"2F00--"2FDF&Kangxi Radicals\\
-"2FF0--"2FFF&Ideographic Description Characters&
-"3100--"312F&Bopomofo\\
-"3130--"318F&Hangul Compatibility Jamo&
-"31A0--"31BF&Bopomofo Extended\\
-"31C0--"31EF&CJK Strokes&
-"A000--"A48F&Yi Syllables\\
-"A490--"A4CF&Yi Radicals&
-"A830--"A83F&Common Indic Number Forms\\
-"AC00--"D7AF&Hangul Syllables&
-"D7B0--"D7FF&Hangul Jamo Extended-B
+和文フォントと欧文フォントを合わせるためには,時々どちらかのベースラインの移動が
+必要になる.\pTeX ではこれは \cs{ybaselineshift}(または\cs{tbaselineshift})を設定することで
+なされていた(\textbf{ALchar}のベースラインがその分だけ下がる).しかし,日本語が主ではない
+文書に対しては,欧文フォントではなく和文フォントのベースラインを移動した方がよい.
+このため,\LuaTeX-jaでは欧文フォントのベースラインのシフト量
+と和文フォントのベースラインのシフト量を独立に設定できるようになっている.
+\begin{center}
+ \small
+\begin{tabular}{>{\bfseries}lcc}
+\toprule
+&\bfseries 横組など&\bfseries 縦組\\
+\midrule
+欧文フォントのシフト量&\Param{yalbaselineshift}
+     parameter&\Param{talbaselineshift} parameter\\
+和文フォントのシフト量&\Param{yjabaselineshift}
+     parameter&\Param{tjabaselineshift} parameter\\
+\bottomrule
 \end{tabular}
-\end{table}
-\end{description}
-
-%<*en>
-\paragraph{Notes on \texttt{U+0080}--\texttt{U+00FF}}
-You should treat characters in \\texttt{U+0080}--\texttt{U+00FF} as \textbf{ALchar},
-when you use traditional 8-bit fonts, such as the \Pkg{textcomp} package or 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
-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).
-
-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}.
-
-If you want to output a character as \textbf{ALchar} and \textbf{JAchar} regardless the range
-setting, you can use \cs{ltjalchar} and \cs{ltjjachar} respectively, as the following example.
-\begin{LTXexample}[width=0.3\textwidth]
-\gtfamily\large % default, ALchar, JAchar
-¶, \ltjalchar`¶, \ltjjachar`¶\\   % default: ALchar
-α, \ltjalchar`α, \ltjjachar`α  % default: JAchar
-\end{LTXexample}
-%</en>
-%<*ja>
-\paragraph{\texttt{U+0080}--\texttt{U+00FF}についての注意}
-\LuaTeX-jaで,\Pkg{textcomp}パッケージや\Pkg{marvosym}パッケージ等,Unicodeフォントでなく
-伝統的な8ビットフォントを用いる場合には注意が必要である.
-
-例えば,\Pkg{textcomp}パッケージの提供する \cs{textparagraph} は,
-符号位置が182,つまり \texttt{0xB6} であり,Unicodeではこの符号位置では\P\ (\text{U+00B6}) に対応する.
-また,\Pkg{marvosym}パッケージの提供する \cs{Frowny} も,符号位置は167,つまりUnicodeにおける
-\S\ (\text{U+00A7}) と同じ符号位置にある.
-即ち,以前のバージョンのように,「前節の文字範囲8内の文字は\textbf{JAchar}」という設定で
-あったとすると,上記の \cs{textparagraph} は和文フォントで「\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} に該当文字の文字コードを渡せばよい.
-\begin{LTXexample}[width=0.3\textwidth]
-\gtfamily\large % default, ALchar, JAchar
-¶, \ltjalchar`¶, \ltjjachar`¶\\   % default: ALchar
-α, \ltjalchar`α, \ltjjachar`α  % default: JAchar
-\end{LTXexample}
+\end{center}
 %</ja>
 
-%<en>\subsection{\Param{kanjiskip} and \Param{xkanjiskip}}
-%<ja>\subsection{\Param{kanjiskip}と\Param{xkanjiskip}}
-\label{subs-kskip}
-
-%<en>\textbf{JAglue} is divided into the following three categories:
-%<ja>\textbf{JAglue}は以下の3つのカテゴリに分類される:
-\begin{itemize}
 %<*en>
-\item Glues/kerns specified in JFM. If \cs{inhibitglue} is issued
-      around a \textbf{JAchar}, this glue will not be inserted at the
-      place.
+Here the horizontal line in the below example is the baseline of a line.
 %</en>
 %<*ja>
-\item JFMで指定されたグルー/カーン.もし \cs{inhibitglue} が\textbf{JAchar}の周りで
-      発行されていれば,このグルーは挿入されない.
+下の例において引かれている水平線がベースラインである.
 %</ja>
+\begin{LTXexample}
+\vrule width 150pt height 0.2pt depth 0.2pt \hskip-120pt
+\ltjsetparameter{yjabaselineshift=0pt, yalbaselineshift=0pt}abcあいう
+\ltjsetparameter{yjabaselineshift=5pt, yalbaselineshift=2pt}abcあいう
+\end{LTXexample}
+
 %<*en>
-\item The default glue which inserted between two \textbf{JAchar}s (\Param{%
-      kanjiskip}).
+There is an interesting side-effect: characters in different size can be
+vertically aligned center in a line, by setting two parameters appropriately.
+The following is an example (beware the value is not well tuned):
 %</en>
 %<*ja>
-\item デフォルトで2つの\textbf{JAchar}の間に挿入されるグルー(\Param{kanjiskip}).
+この機能には面白い使い方がある:2つのパラメータを適切に設定することで,サイズの
+異なる文字を中心線に揃えることができる.
+以下は一つの例である(値はあまり調整されていないことに注意):
 %</ja>
+\begin{LTXexample}[width=0.4\textwidth]
+\vrule width 150pt height4.417pt depth-4.217pt%
+\kern-150pt
+\large xyz漢字
+{\scriptsize
+  \ltjsetparameter{yjabaselineshift=-1.757pt,
+    yalbaselineshift=-1.757pt}
+  漢字xyzあいう
+}あいうabc
+\end{LTXexample}
+
 %<*en>
-\item The default glue which inserted between a \textbf{JAchar} and an
-      \textbf{ALchar} (\Param{xkanjiskip}).
-%</en>
-%<*ja>
-\item デフォルトで\textbf{JAchar}と\textbf{ALchar}の間に挿入されるグルー(\Param{xkanjiskip}).
-%</ja>
+Note that setting positive \Param{yalbaselineshift}~or~\Param{talbaselineshift}
+parameters does not increase the depth of one-letter \emph{syllable} $p$ of \textbf{Alchar}, if
+its left-protrusion~(\cs{lpcode}) and right-protrusion~(\cs{rpcode}) are both non-zero.
+This is because
+\begin{itemize}
+\item These two parameters are implemented by setting \texttt{yoffset} field of a
+glyph node, and this does not increase the depth of the glyph.
+\item To cope with the above situation, \LuaTeX-ja automatically supplies
+a rule in every syllable.
+\item However, we cannot use this ``supplying a rule'' method if a syllable comprises just
+      one letter whose \cs{lpcode}~and~\cs{rpcode} are both non-zero.
 \end{itemize}
-%<*en>
-The value (a skip) of \Param{kanjiskip} or
-\Param{xkanjiskip} can be changed as the following.
-Note that only their values \emph{at the end of a paragraph or a hbox are
-adopted in the whole paragraph or the whole hbox.
-}
+
+This problem does not apply for \Param{yjabaselineshift}~nor~\Param{tjabaselineshift},
+becuse a \emph{JAchar} is encapsulated by a horizontal box if needed.
 %</en>
 %<*ja>
-\Param{kanjiskip}や\Param{xkanjiskip}の値
-は以下のようにして変更可能である.
+なお,以下の場合には1文字の\textbf{ALchar}からなる「音節」の深さは増加しないことに注意.
+\begin{itemize}
+ \item \Param{yalbaselineshift},~\Param{talbaselineshift}パラメータが正になっている.
+ \item 「音節」を構成する唯一の文字$p$の
+左余白への突出量(\cs{lpcode}),右余白への突出量(\cs{rpcode})がどちらも非零である.
+\end{itemize}
+\emph{JAchar}は必要に応じて1文字ずつボックスにカプセル化されるため,
+\Param{yjabaselineshift},~\Param{tjabaselineshift}パラメータについてはこのような問題は起こらない.
 %</ja>
-\begin{lstlisting}
-\ltjsetparameter{kanjiskip={0pt plus 0.4pt minus 0.4pt},
-                 xkanjiskip={0.25\zw plus 1pt minus 1pt}}
-\end{lstlisting}
-%<*en>
-Here \cs{zw} is a internal dimension
-which stores fullwidth of the current Japanese font.
-This \cs{zw} can be used as the unit \texttt{zw} in \pTeX.
 
-The value of these parameter can be get by \cs{ltjgetparameter}.
-Note that the result by \cs{ltjgetparameter} is \emph{not} the internal quantities,
-but \emph{a string} (hence \cs{the} cannot be prefixed).
-%</en>
 %<*ja>
-ここで,\cs{zw} は現在の和文フォントの全角幅を表す長さであり,
-\pTeX における長さ単位 \texttt{zw} と同じように使用できる.
-
-これらのパラメータの値は以下のように取得できる.
-戻り値は内部値ではなく\emph{文字列}である(\cs{the} は前置できない)ことに注意してほしい:
-%</ja>
-\begin{LTXexample}
-kanjiskip: \ltjgetparameter{kanjiskip},\\
-xkanjiskip: \ltjgetparameter{xkanjiskip}
-\end{LTXexample}
-
-%<*en>
-It may occur that JFM contains the data of ``ideal width of
-\Param{kanjiskip}''
-and/or ``ideal width of \Param{xkanjiskip}''.
-To use these data from JFM, set the value of \Param{kanjiskip} or
-\Param{xkanjiskip} to \cs{maxdimen}
-(these ``ideal width'' cannot be retrived by \cs{ltjgetparameter}).
-%</en>
-%<*ja>
-JFMは「望ましい\Param{kanjiskip}の値」や
-「望ましい\Param{xkanjiskip}の値」を持っていることがある.
-これらのデータを使うためには,\Param{kanjiskip}や%
-\Param{xkanjiskip}の値を \cs{maxdimen} の値に設定すればよいが,
-\cs{ltjgetparameter} によって取得することはできないので注意が必要である.
-%</ja>
-
-%<en>\subsection{Insertion setting of \Param{xkanjiskip}}
-%<ja>\subsection{\Param{xkanjiskip} の挿入設定}
-
-%<*en>
-It is not desirable that \Param{xkanjiskip} is inserted into every
-boundary between \textbf{JAchar}s and \textbf{ALchar}s. For example,
-\Param{xkanjiskip} should not be inserted after opening parenthesis
-(\textit{e.g.}, compare ``(あ'' and ``(\hskip\ltjgetparameter{xkanjiskip}あ'').
-\LuaTeX-ja can control whether \Param{xkanjiskip} can be inserted
-before/after a character, by changing \Param{jaxspmode} for \textbf{JAchar}s and
-\Param{alxspmode} parameters \textbf{ALchar}s respectively.
-%</en>
-%<*ja>
-\Param{xkanjiskip}がすべての\textbf{JAchar}と\textbf{ALchar}の境界に
-挿入されるのは望ましいことではない.例えば,\Param{xkanjiskip}は開き括弧の
-後には挿入されるべきではない(「(あ」と「(\hskip\ltjgetparameter{xkanjiskip}あ」を
-比べてみよ).
-\LuaTeX-jaでは\Param{xkanjiskip}をある文字の前/後に挿入するかどうかを,
-\textbf{JAchar}に対しては\Param{jaxspmode}を,\textbf{ALchar}に対しては
-\Param{alxspmode}をそれぞれ変えることで制御することができる.
-%</ja>
-\begin{LTXexample}
-\ltjsetparameter{jaxspmode={`あ,preonly}, alxspmode={`\!,postonly}}
-pあq い!う
-\end{LTXexample}
-
-%<*en>
-The second argument \texttt{preonly} means that the insertion of
-\Param{xkanjiskip} is allowed before this character, but not after.
-the other possible values are \texttt{postonly}, \texttt{allow}, and \texttt{inhibit}.
-%</en>
-%<*ja>
-2つ目の引数の \texttt{preonly}は「\Param{xkanjiskip}の挿入はこの文字の
-前でのみ許され,後では許さない」ことを意味する.他に指定可能な値は
-\texttt{postonly}, \texttt{allow}, \texttt{inhibit}である.
-%</ja>
-
-%<*en>
-\Param{jaxspmode} and \Param{alxspmode} use a same table to store the parameters
-on the current version. Therefore, line~1 in the code above can be rewritten
-as follows:
-%</en>
-%<*ja>
-なお,現行の
-仕様では,\Param{jaxspmode}, \Param{alxspmode}はテーブルを共有しており,
-上のコードの1行目を次のように変えても同じことになる:
-%</ja>
-\begin{lstlisting}
-\ltjsetparameter{alxspmode={`あ,preonly}, jaxspmode={`\!,postonly}}
-\end{lstlisting}
-%<*en>
-One can use also numbers to specify these two parameters (see Subsection~\ref{ssec-param}).
-%</en>
-%<*ja>
-また,これら2パラメータには数値で値を指定することもできる(\ref{ssec-param}節を参照).
-%</ja>
-
-%<*en>
-If you want to enable/disable all insertions of \Param{kanjiskip} and
-\Param{xkanjiskip}, set \Param{autospacing} and \Param{autoxspacing}
-parameters to \texttt{true}/\texttt{false}, respectively.
-%</en>
-%<*ja>
-もし全ての\Param{kanjiskip}と\Param{xkanjiskip}の挿入を有効化/無効化
-したければ,それぞれ\Param{autospacing}と\Param{autoxspacing}を
-\texttt{true}/\texttt{false}に設定すればよい.
-%</ja>
-
-%<en>\subsection{Shifting the baseline}
-%<ja>\subsection{ベースラインの移動}
-%<*en>
-To make a match between a Japanese font and an alphabetic font, sometimes
-shifting of the baseline of one of the pair is needed. In \pTeX, this is achieved
-by setting \cs{ybaselineshift} (or \cs{tbaselineshift}) to a non-zero length (the
-baseline of \textbf{ALchar} is shifted below). However, for documents
-whose main language is not Japanese, it is good to shift the baseline of
-Japanese fonts, but not that of alphabetic fonts.
-Because of this, \LuaTeX-ja can independently set the shifting amount
-of the baseline of alphabetic fonts and that of Japanese fonts.
-\begin{center}
- \small
-\begin{tabular}{>{\bfseries}lcc}
-\toprule
-&\bfseries Horizontal writing (\emph{yoko} direction) etc.
-&\bfseries Vertical writing(\emph{tate} direction)\\
-\midrule
-Alphabetic fonts&\Param{yalbaselineshift}
-     parameter&\Param{talbaselineshift} parameter\\
-Japanese fonts&\Param{yjabaselineshift}
-     parameter&\Param{tjabaselineshift} parameter\\
-\bottomrule
-\end{tabular}
-\end{center}
-%</en>
-%<*ja>
-和文フォントと欧文フォントを合わせるためには,時々どちらかのベースラインの移動が
-必要になる.\pTeX ではこれは \cs{ybaselineshift}(または\cs{tbaselineshift})を設定することで
-なされていた(\textbf{ALchar}のベースラインがその分だけ下がる).しかし,日本語が主ではない
-文書に対しては,欧文フォントではなく和文フォントのベースラインを移動した方がよい.
-このため,\LuaTeX-jaでは欧文フォントのベースラインのシフト量
-と和文フォントのベースラインのシフト量を独立に設定できるようになっている.
-\begin{center}
- \small
-\begin{tabular}{>{\bfseries}lcc}
-\toprule
-&\bfseries 横組など&\bfseries 縦組\\
-\midrule
-欧文フォントのシフト量&\Param{yalbaselineshift}
-     parameter&\Param{talbaselineshift} parameter\\
-和文フォントのシフト量&\Param{yjabaselineshift}
-     parameter&\Param{tjabaselineshift} parameter\\
-\bottomrule
-\end{tabular}
-\end{center}
-%</ja>
-
-%<*en>
-Here the horizontal line in the below example is the baseline of a line.
-%</en>
-%<*ja>
-下の例において引かれている水平線がベースラインである.
-%</ja>
-\begin{LTXexample}
-\vrule width 150pt height 0.2pt depth 0.2pt \hskip-120pt
-\ltjsetparameter{yjabaselineshift=0pt, yalbaselineshift=0pt}abcあいう
-\ltjsetparameter{yjabaselineshift=5pt, yalbaselineshift=2pt}abcあいう
-\end{LTXexample}
-
-%<*en>
-There is an interesting side-effect: characters in different size can be
-vertically aligned center in a line, by setting two parameters appropriately.
-The following is an example (beware the value is not well tuned):
-%</en>
-%<*ja>
-この機能には面白い使い方がある:2つのパラメータを適切に設定することで,サイズの
-異なる文字を中心線に揃えることができる.
-以下は一つの例である(値はあまり調整されていないことに注意):
-%</ja>
-\begin{LTXexample}[width=0.4\textwidth]
-\vrule width 150pt height4.417pt depth-4.217pt%
-\kern-150pt
-\large xyz漢字
-{\scriptsize
-  \ltjsetparameter{yjabaselineshift=-1.757pt,
-    yalbaselineshift=-1.757pt}
-  漢字xyzあいう
-}あいうabc
-\end{LTXexample}
-
-%<*en>
-Note that setting positive \Param{yalbaselineshift}~or~\Param{talbaselineshift}
-parameters does not increase the depth of one-letter \emph{syllable} $p$ of \textbf{Alchar}, if
-its left-protrusion~(\cs{lpcode}) and right-protrusion~(\cs{rpcode}) are both non-zero.
-This is because
-\begin{itemize}
-\item These two parameters are implemented by setting \texttt{yoffset} field of a
-glyph node, and this does not increase the depth of the glyph.
-\item To cope with the above situation, \LuaTeX-ja automatically supplies
-a rule in every syllable.
-\item However, we cannot use this ``supplying a rule'' method if a syllable comprises just
-      one letter whose \cs{lpcode}~and~\cs{rpcode} are both non-zero.
-\end{itemize}
-
-This problem does not apply for \Param{yjabaselineshift}~nor~\Param{tjabaselineshift},
-becuse a \emph{JAchar} is encapsulated by a horizontal box if needed.
-%</en>
-%<*ja>
-なお,以下の場合には1文字の\textbf{ALchar}からなる「音節」の深さは増加しないことに注意.
-\begin{itemize}
- \item \Param{yalbaselineshift},~\Param{talbaselineshift}パラメータが正になっている.
- \item 「音節」を構成する唯一の文字$p$の
-左余白への突出量(\cs{lpcode}),右余白への突出量(\cs{rpcode})がどちらも非零である.
-\end{itemize}
-\emph{JAchar}は必要に応じて1文字ずつボックスにカプセル化されるため,
-\Param{yjabaselineshift},~\Param{tjabaselineshift}パラメータについてはこのような問題は起こらない.
-%</ja>
-
-%<*ja>
-\paragraph{数式における挙動:\pTeX との違い}
-\textbf{ALchar}のベースラインを補正する \Param{yalbaselineshift} パラメータは
-ほぼ\pTeX における \cs{ybaselineshift} に対応しているものであるが,
-数式中の挙動は異なっているので注意が必要である.
-例えば,表\ref{tab:math_bsa}のように,数式中に明示的に現れた \cs{hbox} は,
-\begin{itemize}
- \item 2015年以前の\pTeX では,ボックス全体が \cs{ybaselineshift} だとシフトされるので,
- 表\ref{tab:math_bsa}中の``い''のように,ボックス中の和文文字は
- \ \cs{ybaselineshift} だけシフトされ,一方,``for all''のように,
- ボックス内の欧文文字は2重にシフトされることになる.
- \item 一方,\LuaTeX-jaではそのようなことはおこらず,
- 数式中に明示的に現れた \cs{hbox} はシフトしない.そのため,
- 表\ref{tab:math_bsa}中の``い''も``for all''も,それぞれ本文中に
- 書かれたときと同じ上下位置に組まれる.
+\paragraph{数式における挙動:\pTeX との違い}
+\textbf{ALchar}のベースラインを補正する\Param{yalbaselineshift}, \Param{talbaselineshift}パラメータは
+ほぼ\pTeX における \cs{ybaselineshift}, \cs{tbaselineshift} に対応しているものであるが,
+数式中の挙動は異なっているので注意が必要である.
+例えば,\autoref{tab:math_bsa}のように,数式中に明示的に現れた \cs{hbox},~\cs{vbox} は,横組において
+\begin{itemize}
+ \item 2015年以前の\pTeX では,ボックス全体が \cs{ybaselineshift} だとシフトされるので,
+ \autoref{tab:math_bsa}中の``い''のように,ボックス中の和文文字は
+ \ \cs{ybaselineshift} だけシフトされ,一方,``for all''のように,
+ ボックス内の欧文文字は2重にシフトされることになる.
+ \item 一方,\LuaTeX-jaではそのようなことはおこらず,
+ 数式中に明示的に現れた \cs{hbox},~\cs{vbox} はシフトしない.そのため,
+ \autoref{tab:math_bsa}中の``い''も``for all''も,それぞれ本文中に
+ 書かれたときと同じ上下位置に組まれる.
 
  なお,\TeX~Live~2016以降の\pTeX では改修がなされ,\LuaTeX-jaと
  近い挙動になるようにしているが,数式中に直に書かれた``あ''のベースラインについては
  まだ違いが見られる.
 \end{itemize}
+
+なお,バージョン20170401.0以降の\LuaTeX-jaでは,\cs{vcenter} によるボックスには
+全体が\Param{yalbaselineshift}, \Param{talbaselineshift} パラメータが反映されるようにしている.
+その方が結果が自然であることによる変更なのだが,結果的に\cs{vcenter} については\pTeX と同じ挙動となった.
+
 \begin{table}
 \small\centering
 \caption{数式関係のベースライン補正($\Param{yalbaselineshift}=10\,\textrm{pt}$)}
@@ -2782,7 +2386,7 @@ However, the penalty inserted after it is 10 which is the \Param{postbreakpenalt
 \end{quote}
 は,文字コードごとに設定する量である.
 
-\Pkg{fontspec}パッケージを使う(\ref{ssec-fontspec}節)場合など,
+\Pkg{fontspec}パッケージを使う(\ref{ssec:fontspec}節)場合など,
 各種のOpenType featureを適用することもあると思うが,前段落に述べたパラメータ類は,
 \emph{OpenType featureの適用前の文字コードによって適用される.}
 例えば,以下の例において10行目の「ア」は,\verb+hwid+ featureの適用により半角カタカナの「ア」
@@ -2813,7 +2417,7 @@ However, the penalty inserted after it is 10 which is the \Param{postbreakpenalt
 \subsection{予備知識:\pTeX と\upTeX における \cs{kcatcode}}
 \pTeX,\upTeX においては,和文文字が制御綴内で利用できるかどうか
 は \cs{kcatcode} の値によって決定されるのであった.
-詳細は表\ref{table-kcat}を参照されたい.
+詳細は\autoref{tab:kcat}を参照されたい.
 %</ja>
 %<*en>
 \section{\cs{catcode} in \LuaTeX-ja}
@@ -2821,13 +2425,13 @@ However, the penalty inserted after it is 10 which is the \Param{postbreakpenalt
 \subsection{Preliminaries: \cs{kcatcode} in \pTeX\ and \upTeX}
 In \pTeX~and~\upTeX, the value of \cs{kcatcode} determines
 whether a Japanese character can be used in a control word.
-For the detail, see Table~\ref{table-kcat}.
+For the detail, see \autoref{tab:kcat}.
 %</en>
 
 \begin{table}[t]
 \small
 \caption{\cs{kcatcode} in \upTeX}
-\label{table-kcat}
+\label{tab:kcat}
 %<en>\medskip
 
 \noindent\hfill
@@ -2891,7 +2495,7 @@ and \LuaTeX-ja can control these four kinds separately:
 \begin{itemize}
  \item
 \emph{Distinction between \textbf{JAchar} or \textbf{ALchar}}
-is controlled by the character range, see Subsection~\ref{ssec-setrange}.
+is controlled by the character range, see Subsection~\ref{ssec:setrange}.
  \item
 \emph{Whether the character can be used in a control word}
 is controlled by setting \cs{catcode} to 11~(enabled) or 12~(disabled), as usual.
@@ -2908,7 +2512,7 @@ is controlled by the lowermost bit of the \Param{kcatcode} parameter.
 分割している:
 \begin{description}
  \item[欧文/和文の区別 (\upTeX)]
-\cs{ltjdefcharrange} と\textsf{jacharrange}パラメータ(\ref{ssec-setrange}節)
+\cs{ltjdefcharrange} と\textsf{jacharrange}パラメータ(\ref{ssec:setrange}節)
  \item[制御綴中に使用可か]
 \LuaTeX 自身の \cs{catcode} でよい
  \item[\Param{jcharwidowpenalty}が挿入可か]
@@ -2989,7 +2593,7 @@ for \LuaTeX, \emph{to match the \cs{catcode} setting with that of \XeTeX.}
 %<en>\caption{Difference of the set of non-kanji JIS~X~0208 characters which can be used in a control word}
 %<ja>\caption{制御綴中に使用出来るJIS~X~0208非漢字の違い}
 %<en>\medskip
-\label{table-kcat-diff}
+\label{tab:kcat-diff}
 \def\D#1#2#3#4{%
   {\fboxsep0pt\fcolorbox{cyan}{white}%
   {\large\char"#1#2#3#4}}\ (\texttt{U+#1#2#3#4})} %"
@@ -3050,7 +2654,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.
 
@@ -3063,7 +2667,7 @@ For the detail, see \url{https://github.com/h-kitagawa/kct}.
 
 エンジンが異なるので,\pTeX, \upTeX, \LuaTeX-ja
 において制御綴中に使用可能なJIS~X~0208の文字は異なる.
-異なっているところだけを載せると,表\ref{table-kcat-diff}のようになる.
+異なっているところだけを載せると,\autoref{tab:kcat-diff}のようになる.
 「・」「゛」「゜」「゠」を除けば,\LuaTeX-jaでは\upTeX より多くの文字が
 制御綴に使用可能になっている.
 
@@ -3167,7 +2771,7 @@ Example&\obox{\yoko}&\obox{\tate}&\obox{\dtou}&\obox{\utod}\\
 \end{table}
 
 %<*en>
-\LuaTeX-ja supports four directions, as shown in Table~\ref{tab-dir}.
+\LuaTeX-ja supports four directions, as shown in \autoref{tab-dir}.
 The second column (\emph{yoko} direction) is just horizontal writing,
 and the third column (\emph{tate} direction) is vertical writing.
 The fourth column (\emph{dtou} direction) is actually a hidden feature of \pTeX.
@@ -3175,12 +2779,14 @@ We implemented this for debugging purpose.
 The fifth column (\emph{utod} direction) corresponds the ``\texttt{tate (math) direction}'' of \pTeX.
 
 Directions can be changed by \cs{yoko},~\cs{tate}, \cs{dtou},~\cs{utod},
-only when the current list is null. Also, the direction of a math formula is changed to
+only when the current list is null.
+These commands cannot be executed in unrestricted horizontal modes, nor math modes.
+The direction of a math formula is changed to
 \emph{utod}, when the direction outside the math formula is \emph{tate} (vertical writing).
 %</en>
 
 %<*ja>
-\LuaTeX-jaがサポートする組方向は表\ref{tab-dir}に示す4つである.
+\LuaTeX-jaがサポートする組方向は\autoref{tab-dir}に示す4つである.
 4列目の \cs{dtou} は聞き慣れない命令だと思うが,
 実は\pTeX に同名の命令が(ドキュメントには書かれていないが)存在する.
 Down-TO-Upの意味なのだろう.\cs{dtou} を使用する機会はないだろうが,
@@ -3189,6 +2795,8 @@ Down-TO-Upの意味なのだろう.\cs{dtou} を使用する機会はないだ
 
 組方向は,\cs{yoko},~\cs{tate}, \cs{dtou},~\cs{utod} をそれぞれ使用することで,
 現在作成中のリストやボックスが空の時にのみ変更可能である.
+ただし,現在のモードが非制限水平モードや(文中,別行立て問わず)数式モードであるときには
+組方向を変更することは出来ない.
 また,縦組中の数式内のボックスは\pTeX と同じように組方向が \cs{utod} となる.
 %</ja>
 
@@ -3208,7 +2816,7 @@ The below is an example.
 また横組に戻る% yoko
 \end{LTXexample}
 
-Table~\ref{tab-diffdir} shows how a box is arranged when
+\autoref{tab-diffdir} shows how a box is arranged when
 the direction  inside the box and that outside the box differ.
 %</en>
 %<*ja>
@@ -3229,7 +2837,7 @@ the direction  inside the box and that outside the box differ.
 \end{LTXexample}
 
 異なる組方向のボックスを配置した場合にどう組まれるかの仕様も,\pTeX を
-踏襲している.表\ref{tab-diffdir}に示す.
+踏襲している.\autoref{tab-diffdir}に示す.
 %</ja>
 
 \begin{table}[t]
@@ -3542,7 +3150,7 @@ These commands set the dimension of \cs{box<num>}. One does not need
 \ltjsetwd42 20pt,  \ltjsetwd42=20pt,  \ltjsetwd=42 20pt,  \ltjsetwd=42=20pt
 \end{lstlisting}
 
-設定値は「横組」「縦組及び \cs{utod} 方向」「\cs{dtou} 方向」
+設定値は「横組」「縦組及びutod方向」「dtou方向」
 の3種ごとに独立して記録される.参考として,Gitリポジトリ内の
              \verb+test/test55-boxdim_diffdir.{tex,pdf}+ を挙げておく.
 
@@ -3663,7 +3271,7 @@ overridden by \LuaTeX-ja, using~\verb+\protected\def+.
 %<ja>\section{フォントメトリックと和文フォント}
 %<en>\subsection{\cs{jfont}}
 %<ja>\subsection{\cs{jfont} 命令}
-\label{ssec-jfont}
+\label{ssec:jfont}
 
 %<*en>
 To load a font as a Japanese font (for horizontal direction), you must use the
@@ -3773,7 +3381,7 @@ Specify the name of (horizontal) JFM.
 If specified JFM has not been loaded, \LuaTeX-ja search and load
 a file named \texttt{jfm-<name>.lua}.
 
-The following JFMs are shipped with \LuaTeX-ja:
+The following horizontal JFMs are shipped with \LuaTeX-ja:
 %</en>
 %<*ja>
 用いる(横組用)JFMの名前を指定する.もし以前に指定されたJFMが読み込まれていなければ,
@@ -3781,7 +3389,7 @@ The following JFMs are shipped with \LuaTeX-ja:
 %</ja>
 \begin{description}
 %<*en>
-\item[\tt jfm-ujis.lua] A standard JFM in \LuaTeX-ja. This JFM is
+\item[\tt jfm-ujis.lua] A standard horizontal JFM in \LuaTeX-ja. This JFM is
   based on \verb+upnmlminr-h.tfm+, a metric for UTF/OTF package that
   is used in \upTeX. When you use the \Pkg{luatexja-otf} package, you should use this JFM.
 %</en>
@@ -3816,10 +3424,10 @@ The following JFMs are shipped with \LuaTeX-ja:
 %</ja>
 \end{description}
 %<*en>
-The difference among these three~JFMs is  shown in Table~\ref{tab-difjfm}.
+The difference among these three~JFMs is  shown in \autoref{tab-difjfm}.
 %</en>
 %<*ja>
-これら3つのJFMの違いは表\ref{tab-difjfm}に示した.表中の文例の一部には,
+これら3つのJFMの違いは\autoref{tab-difjfm}に示した.表中の文例の一部には,
 \cite{min10}の図3,~4のものを用いた.
 %</ja>
 
@@ -3849,11 +3457,11 @@ Sometimes there is a need that \ldots.
 \item[jfmvar=<string>]
 標準では,JFMとサイズが同じで,
   実フォントだけが異なる2つの和文フォントは「区別されない」.例えば
-図\ref{fig:jfmvar}において,最初の「)」と「【」の実フォントは異なるが,
+\autoref{fig:jfmvar}において,最初の「)」と「【」の実フォントは異なるが,
 JFMもサイズも同じなので,普通に「)【」と入力した時と同じように半角空きとなる.
 
 しかし,JFMとサイズが同じであっても,\texttt{jfmvar} キーの異なる
-2つの和文フォント,例えば図\ref{fig:jfmvar}で言う \cs{F} と \cs{H},
+2つの和文フォント,例えば\autoref{fig:jfmvar}で言う \cs{F} と \cs{H},
 は「区別される」.異なる和文フォントに異なる \texttt{jfmvar} キーを割り当て,
 かつ\Param{differentjfm}パラメータを \texttt{both} に設定すれば,
 \pTeX と似た状況で組版されることになる.
@@ -3884,9 +3492,9 @@ JFMもサイズも同じなので,普通に「)【」と入力した時と
 \label{para-kern}
 %<*en>
 Some fonts have information for inter-glyph spacing.
-This version of \LuaTeX-ja treats kerning spaces like an italic correction;
+\LuaTeX-ja 20140324.0 or later treats kerning spaces like an italic correction;
 any glue and/or kern from the JFM and a kerning space can coexist.
-See Figure~\ref{fig:kern-jfm} for detail.
+See \autoref{fig:kern-jfm} for detail.
 
 Note that in \cs{setmainjfont} etc.\ which are provided by \Pkg{luatexja-fontspec}
 package, kerning option is set \emph{off} (\texttt{Kerning=Off}) by default,
@@ -3895,12 +3503,12 @@ because of the compatibility with previous versions of \LuaTeX-ja.
 %<*ja>
 いくつかのフォントはグリフ間のスペースについての情報を持っている.
 このカーニング情報は以前の\LuaTeX-ja とはあまり相性が良くなかったが,
-本バージョンではカーニングによる空白はイタリック補正と同様に扱うことになっている.
+バージョン20140324.0以降ではカーニングによる空白はイタリック補正と同様に扱うことになっている.
 つまり,カーニング由来の空白とJFM由来のグルー・カーンは同時に入りうる.
-図\ref{fig:kern-jfm}を参照.
+\autoref{fig:kern-jfm}を参照.
 \begin{itemize}
  \item \emph{\cs{jfont} や,
-NFSS2用の命令(\ref{ssec-chgfnt}節,\ref{ssec-nfsspat}節)における指定では
+NFSS2用の命令(\ref{ssec:chgfnt}節,\ref{ssec:nfsspat}節)における指定では
 カーニング情報は標準で使用する}ことになっているようである.
 言い換えれば,カーニング情報を使用しない設定にするには,面倒でも
 \begin{lstlisting}
@@ -3956,7 +3564,7 @@ JFM中における \texttt{kanjiskip\_natural}, \texttt{kanjiskip\_stretch},\
 \texttt{kanjiskip\_shrink}キー(\pageref{pg:ksp_nat}ページ)の使用によって,
 「JFM由来のグルーの他に,\Param{kanjiskip}の自然長/伸び量/縮み量の一部が
 同じ場所に挿入される」という状況が起こりうる.
-この機能を無効化し,20150922.0版以前と同じような組版を得るためには
+この機能を無効化し,バージョン20150922.0以前と同じような組版を得るためには
 他のOpenType機能と同じように\ \texttt{-ltjksp}\ 指定を行えば良い.
 \begin{LTXexample}[width=16\zw]
 \leavevmode
@@ -3982,12 +3590,13 @@ JFM中における \texttt{kanjiskip\_natural}, \texttt{kanjiskip\_stretch},\
 %<ja>\subsection{\cs{tfont} 命令}
 
 
+\begin{comment}
+  {\catcode`\<=12\catcode`\>=12
 \begin{table}[t]
 %<en>\caption{Differences between vertical JFMs shipped with \LuaTeX-ja}
 %<ja>\caption{\LuaTeX-ja に同梱されている縦組用 JFM の違い}
 %<en>\medskip
 \label{tab-difjfm-tate}
-\catcode`\<=12\catcode`\>=12
 \ltjsetparameter{jacharrange={+3}}
 \small
 \def\r#1#2{%
@@ -4024,9 +3633,45 @@ JFM中における \texttt{kanjiskip\_natural}, \texttt{kanjiskip\_stretch},\
 \end{minipage}
 \ltjsetparameter{jacharrange={-3}}
 \end{table}
+}
+\end{comment}
 
 %<*en>
-...
+\cs{tfont} loads a font as a Japanese font for vertical direction.
+This command admits the same syntax used in \cs{font}~and~\cs{jfont}.
+A font defined by~\cs{tfont} differs the following points from that by~\cs{jfont}:
+\begin{itemize}
+ \item OpenType Feature~\texttt{vrt2}%
+  \footnote{If the font does not define \texttt{vrt2} feature,
+       use \texttt{vert} instead.} is automatically activated,
+  unless \texttt{vert}~and//or~\texttt{vrt2} are explicitly activated
+  or deactivated (as the second line in the example below).
+\begin{lstlisting}
+\tfont\S=file:KozMinPr6N-Regular.otf:jfm=ujisv % vrt2 is automatically activated
+\tfont\T=file:KozMinPr6N-Regular.otf:jfm=ujisv;-vert % vert and vrt2 are not activated
+\tfont\U=file:ipaexm.ttf:jfm=ujisv
+    % vert is automatically activated, since this font does not have vrt2
+\end{lstlisting}
+ \item Sometimes \texttt{vert} and/or \texttt{vrt2} are not activated
+ while one specified activation of these feature.
+ This is because the font does not define these features in current combination of
+ script~tag and language~system~identifier.
+
+ In this situation, \LuaTeX-ja performs all replacements which is defined in~\texttt{vert}
+ feature for \emph{some} scripts for \emph{some} languages.
+ \item Furthermore, a glyph is automatically rotated 90~degrees,
+  if it is not replaced by \texttt{vert} feature for \emph{any} script
+  for \emph{any} language, and if it is marked as `r''~or~``Tr'' in UAX~\#50.
+ \item One have to specify the name of vertical JFM in  \texttt{jfm=<name>}.
+\LuaTeX-ja ships following vertical JFMs:
+\begin{description}
+\item[\tt jfm-ujisv.lua] A standard vertical JFM in \LuaTeX-ja. This JFM is
+  based on \verb+upnmlminr-v.tfm+, a metric for UTF/OTF package that
+  is used in \upTeX.
+\item[\tt jfm-tmin.lua] A counterpart for \verb+tmin10.tfm+, which is one
+  of the default Japanese font metric shipped with \pTeX.
+\end{description}
+\end{itemize}
 %</en>
 %<*ja>
 \cs{tfont} はフォントを縦組用の和文フォントとして読み込む命令であり,
@@ -4034,17 +3679,35 @@ JFM中における \texttt{kanjiskip\_natural}, \texttt{kanjiskip\_stretch},\
 \cs{tfont} で定義された縦組用和文フォントは,
 以下の点が \cs{jfont} による横組用和文フォントとは異なる:
 \begin{itemize}
- \item 自動的に \texttt{vert}, \texttt{vrt2} の両OpenType featureが有効化される.
-但し,以下の例の3行目に示すように,明示的に \texttt{vert}, \texttt{vrt2}(のいずれか)の
-有効・無効を指定した場合は別である.
+ \item 明示的に \texttt{vert}, \texttt{vrt2}(のいずれか)の
+  有効・無効を指定した場合を除き,自動的に OpenType feature~\texttt{vrt2} の有効化が
+  指定されたものとみなされる
+ \footnote{もしフォントが\texttt{vrt2}を定義していなかった場合,代わりに
+ \texttt{vert}を用いる.}.
 \begin{lstlisting}
-\tfont\S=file:KozMinPr6N-Regular.otf:jfm=ujisv
-    % vert and vrt2 are automatically activated
+\tfont\S=file:KozMinPr6N-Regular.otf:jfm=ujisv % vrt2 is automatically activated
 \tfont\T=file:KozMinPr6N-Regular.otf:jfm=ujisv;-vert % vert and vrt2 are not activated
+\tfont\U=file:ipaexm.ttf:jfm=ujisv
+    % vert is automatically activated, since this font does not have vrt2
 \end{lstlisting}
- \item \ref{ssec-math}節で述べる,数式中の和文フォントには縦組用和文フォントは指定できない.
+ \item \texttt{vert}, \texttt{vrt2} の少なくとも一つの有効を指定した場合にも関わらず,
+  script tagとlanguage system identifierの値の組み合わせによって
+  実際には有効にならなかった場合,\LuaTeX-jaは
+ \begin{quote}
+   どれかのscript,~languageで定義されている\texttt{vert}による
+   (単一グリフから単一グリフへの)置換を全部適用する
+ \end{quote}
+  という挙動を取る\footnote{%
+  例えば,Windows~7に付属しているSimHeiでは,\texttt{vert}はScriptが\texttt{hani},
+  Languageが\texttt{CHN}という状況でのみ定義されている.しかし,\Pkg{luaotfload}では
+  このscript,~languageの組み合わせを指定することはできないので,
+  \Pkg{luaotfload}そのままでは\texttt{vert}を適用させることはできない.
+ }.
+ \item さらに,「いかなるscript,~languageでも\texttt{vert}により置換されない」グリフ
+  のうち,UAX~\#50で``r''もしくは``Tr''と指定されているものは90度自動回転させる.
+ \item \ref{ssec:math}節で述べる,数式中の和文フォントには縦組用和文フォントは指定できない.
  \item \texttt{jfm=<name>}\ の部分には縦組用JFMを指定する.
-以ä¸\8bã\81®ç¸¦çµ\84ç\94¨JFMã\81\8c\LuaTeX-jaã\81«ã\81¯å\90\8c梱ã\81\95ã\82\8cã\81¦ã\81\8aã\82\8aï¼\8cé\81\95ã\81\84ã\82\92表\ref{tab-difjfm-tate}に示した.
+以ä¸\8bã\81®ç¸¦çµ\84ç\94¨JFMã\81\8c\LuaTeX-jaã\81«ã\81¯å\90\8c梱ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bï¼\8e\81\8aã\82\8aï¼\8cé\81\95ã\81\84ã\82\92\autoref{tab-difjfm-tate}に示した.
 \begin{description}
 \item[\tt jfm-ujisv.lua] \LuaTeX-jaの標準縦組用JFMである.このJFMは\upTeX で
   用いられるUTF/OTFパッケージ用の和文用TFMである \verb+upnmlminr-v.tfm+ を
@@ -4061,7 +3724,7 @@ JFM中における \texttt{kanjiskip\_natural}, \texttt{kanjiskip\_stretch},\
 
 %<en>\subsection{Prefix \texttt{psft}}
 %<ja>\subsection{\texttt{psft}プリフィックス}
-\label{ssec-psft}
+\label{ssec:psft}
 %<*en>
 Besides ``\texttt{file:}''\ and ``\texttt{name:}''\ prefixes which
 are introduced in the \Pkg{luaotfload} package,
@@ -4164,7 +3827,7 @@ Please contact the LuaTeX-ja project team.
 
 %<en>\subsection{Structure of a JFM file}
 %<ja>\subsection{JFMファイルの構造}
-\label{ssec-jfm-str}
+\label{ssec:jfm-str}
 %<en>A JFM file is a Lua script which has only one function call:
 %<ja>JFMファイルはただ一つの関数呼び出しを含むLuaスクリプトである:
 \begin{lstlisting}
@@ -4185,15 +3848,15 @@ floating-point numbers in design-size unit.
 
 \begin{cslist}[style=standard]
 
-\item[version=$1\mathrel{\textrm{or}}2$]
+\item[version=<version>]
 %<en>(optional, default value is~1)
 %<ja>(任意,既定値は1)
 
 %<*en>
-The version JFM. Currently 1~and~2 are supported
+The version JFM. Currently 1,~2,~and,~3 are supported
 %</en>
 %<*ja>
-JFMのバージョン.1または2がサポートされる.
+JFMのバージョン.1,~2,~3がサポートされる.
 %</ja>
   
 \item[dir=<direction>]
@@ -4335,7 +3998,7 @@ Direction of JFM&\textbf{\texttt{'yoko'} (horizontal)}&\multicolumn{1}{l}{\textb
 \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. The default values are shown in Table~\ref{tab-wid}.
+as values of these fields. The default values are shown in \autoref{tab-wid}.
 %</en>
 %<*ja>
 \begin{table}[t]
@@ -4372,7 +4035,7 @@ These fields are for adjusting the position of the ``real'' glyph. Legal
             treated as~0, and \texttt{align} field is treated as
             \texttt{'left'}.
 The effects of these 3~fields are indicated in
-Figures \ref{fig-pos}~and~\ref{fig-pos-tate}.
+\autoref{fig:pos}~and~\autoref{fig:pos-tate}.
 %</en>
 %<*ja>
 これらのフィールドは実際のグリフの位置を調整するためにある.
@@ -4380,8 +4043,8 @@ Figures \ref{fig-pos}~and~\ref{fig-pos-tate}.
 \texttt{'right'} のいずれかである.もしこれら3つのフィールドのうちの1つが省かれた
 場合,\texttt{left} と \texttt{down} は0,\texttt{align} フィールドは
 \ \texttt{'left'} であるものとして扱われる.
-これら3つのフィールドの意味については図\ref{fig-pos}(横組用和文フォント),
-図\ref{fig-pos-tate}(縦組用和文フォント)で説明する.
+これら3つのフィールドの意味については\autoref{fig:pos}(横組用和文フォント),
+\autoref{fig:pos-tate}(縦組用和文フォント)で説明する.
 %</ja>
 
 %<*en>
@@ -4498,7 +4161,7 @@ Furthermore, the glyph is shifted according to values of fields
 %<en>The position of the real glyph (horizontal Japanese fonts)
 %<ja>横組和文フォントにおける「実際の」グリフの位置
 }
-\label{fig-pos}
+\label{fig:pos}
 \end{figure}
 \begin{figure}[!tb]
 \begin{minipage}{0.4\textwidth}%
@@ -4579,7 +4242,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>]\}, ...\}}]
@@ -4622,10 +4285,10 @@ 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}節)において,このグルーの優先度を指定する.許される値は以下の通り:
+            行長調整(\ref{ssec:adj}節)において,このグルーの優先度を指定する.許される値は以下の通り:
   \begin{description}
-    \item[バージョン1のとき] $-4$から$+3$の間の整数
-    \item[バージョン2ã\81®ã\81¨ã\81\8d] $-4$ã\81\8bã\82\89$+3$ã\81®é\96\93ã\81®æ\95´æ\95°ã\81®2ã\81¤çµ\84\texttt{\{<stretch>, <shrink>\}}ã\81\8bï¼\8c
+    \item[バージョン1] $-4$から$+3$の間の整数
+    \item[バージョン2以é\99\8d] $-4$ã\81\8bã\82\89$+3$ã\81®é\96\93ã\81®æ\95´æ\95°ã\81®2ã\81¤çµ\84\texttt{\{<stretch>, <shrink>\}}ã\81\8bï¼\8c
     または$-4$から$+3$の間の整数.<stretch>, <shrink>はそれぞれこのグルーが伸びるときの優先度,縮むときの
     優先度であり,単に整数$i$が指定された場合は\texttt{\{$i$, $i$\}}であると解釈される.
   \end{description}
@@ -4668,10 +4331,10 @@ In case of glue, one can specify following additional keys in each \texttt{[$j$]
 \begin{cslist}[style=standard]
 \item[priority=<priority>]
 An integer in $[-4,3]$ (treated as 0 if omitted), or
-a pair of these integers \texttt{\{<stretch>, <shrink>\}} (version~2 only).
+a pair of these integers \texttt{\{<stretch>, <shrink>\}} (version 2~or~later).
 This is
 used only in line adjustment with priority by \Pkg{luatexja-adjust}
-(see Subsection~\ref{ssec-adj}). Higher value means the glue is easy to stretch,
+(see Subsection~\ref{ssec:adj}). Higher value means the glue is easy to stretch,
 and is also easy to shrink. 
 \item[kanjiskip\_natural=<num>\textrm{, }%
   kanjiskip\_stretch=<num>\textrm{, }kanjiskip\_shrink=<num>]\leavevmode
@@ -4723,7 +4386,7 @@ Hence we have the following result:
 
 優先順位付き行長調整が有効であり,かつ現在の文字クラスの文字が
   行末に来た時に,この文字と行末の間には指定された値のいずれかの大きさのカーンが
-  挿入される(\autoref{ssec-adj}参照).
+  挿入される(\autoref{ssec:adj}参照).
 
 バージョン1における
 \begin{lstlisting}[escapechar=\$]
@@ -4857,8 +4520,31 @@ The following is the list of imaginary characters:
 %<ja>通常の(\cs{noindent} で開始されていない)段落の先頭.
 
 \item['jcharbdd']
-%<en>A boundary between \textbf{JAchar} and anything else (such as \textbf{ALchar}, kern, glue,\,\ldots).
-%<ja>\textbf{JAchar}と「その他のもの」(欧文文字,glue,kern等)との境界.
+%<en>A boundary between \textbf{JAchar} and anything else.
+%<*ja>
+\textbf{JAchar}と「その他のもの」との境界.
+
+バージョン2以前では\textbf{ALchar},箱,罫線(rule),glue,~kernなどいろいろなものと\textbf{JAchar}の境界に対して
+本特殊文字が用いられていたが,
+バージョン3以降では\ \texttt{'jcharbdd'}, \texttt{'alchar'}, \texttt{'nox\_alchar'},
+\texttt{'glue'} と細分化され,
+\texttt{'jcharbdd'} は主に\textbf{JAchar}とボックスや罫線(rule)との境界に使われるようになった.
+%</ja>
+  
+\item['alchar', 'nox\_alchar']
+%<*en>
+(version 3~or~later) A boundary between \textbf{JAchar} and \textbf{ALchar}.
+%</en>
+%<*ja>
+(バージョン3以降)\textbf{JAchar}と\textbf{ALchar}との境界.
+\textbf{JAchar}と\textbf{ALchar}の間に\Param{xkanjiskip}が入ることが可能な場合は
+\ \texttt{'alchar'}\ が,そうでない場合は\ \texttt{'nox\_alchar'}\ が用いられる
+(この区別は\textbf{ALchar}側の\Param{alxspmode}の値によってのみ行われる).
+%</ja>
+
+\item['glue']
+%<en>(version 3~or~later) A boundary between \textbf{JAchar}, and, a glue or kern.
+%<ja>(バージョン3以降))\textbf{JAchar}とglue,kernとの境界.
 
 \item[$-1$]
 %<en>The left/right boundary of an inline math formula.
@@ -4926,7 +4612,7 @@ JFM側で一部の対処ができることにより,\Pkg{jsclasses}のよう
 
 %<en>\subsection{Math font family}
 %<ja>\subsection{数式フォントファミリ}
-\label{ssec-math}
+\label{ssec:math}
 
 %<*en>
 \TeX\ handles fonts in math formulas by 16~font families\footnote{Omega,
@@ -4945,7 +4631,7 @@ an external package is needed to support this in plain \TeX\ and
 
 %<*en>
 \LuaTeX-ja's handling of Japanese fonts in math formulas is similar;
-Table~\ref{tab-math} shows counterparts to \TeX's primitives for math
+\autoref{tab-math} shows counterparts to \TeX's primitives for math
 font families. There is no relation between the value of
 \cs{fam} and that of \cs{jfam}; with appropriate settings,
 you can set both \cs{fam} and \cs{jfam} to the same value.
@@ -4955,7 +4641,7 @@ a \emph{horizontal} Japanese font.
 %</en>
 %<*ja>
 \LuaTeX-jaの数式中での和文フォントの扱いも同様である.
-表\ref{tab-math}は数式フォントファミリに対する \TeX のプリミティブと対応する
+\autoref{tab-math}は数式フォントファミリに対する \TeX のプリミティブと対応する
 ものを示している.\cs{fam} と \cs{jfam} の値の間には関係はなく,
 適切な設定の下では \cs{fam} と \cs{jfam} の両方に同じ値を設定することができる.
 \Param{jatextfont} 他の第2引数<jfont\_cs>は,\cs{jfont} で定義された
@@ -5081,16 +4767,9 @@ For $i\in\omega$, \texttt{char\_type[$i$]} is information of characters whose cl
   0&\text{\texttt{'left'} (default)}\\0.5&\text{\tt 'middle'}\\1&\text{\tt 'right'}
  \end{cases}
 \]
-\item For $j\in \omega$, \texttt{[$j$]} stores a kern or a glue which will be inserted
-between character class~$i$ and class~$j$.
-
-If a kern will be inserted, the value of this field is \texttt{[$j$]=\{false, <kern\_node>, <ratio>\}},
-where <kern\_node> is a node\footnote{%
- This version of \LuaTeX-ja uses ``direct access
-      model'' for accessing nodes, if possible. }.
-If a glue will be inserted, we have \texttt{[$j$]=\{false, <spec\_node>, <ratio>, <icflag>\}},
-where <spec\_node> is also a node, and $\text{<icflag>}=\textit{from\_jfm}+\text{<priority>}$.
 \end{itemize}
+For $i$,~$j\in \omega$, \texttt{char\_type[$i$][$j$]} stores a kern or a glue which will be inserted
+between character class~$i$ and class~$j$.
 \end{description}
 %</en>
 %<*ja>
@@ -5123,23 +4802,34 @@ JFMで指定されているそれぞれの値をスケーリングしたもの
  \end{cases}
 \]
 のいずれかの値をとる.
-\item $j\in \omega$に対して,\texttt{[$j$]} は文字クラス$i$の文字と$j$の文字の間に挿入されるkern
-      やglueを格納している.
-間に入るものがkernであれば,このフィールドの値は\
-\texttt{[$j$]=\{false, <kern\_node>, <ratio>\}} である.
-<kern\_node>はkernを表すノードそのものである\footnote{%
-本バージョンではノードのアクセス手法にdirect access
+\end{itemize}
+$i$,~$j\in \omega$に対して,\texttt{char\_type[$i$][$j$]} は
+文字クラス$i$の文字と$j$の文字の間に挿入されるグルーやカーンを格納している.
+\begin{itemize}
+  \item 間に入るものがカーンであれば,この値は\
+\texttt{[$j$]=\{[1]=<kern\_node>, ratio=<ratio>\}} であり,
+<kern\_node>はカーンを表すノードそのものである\footnote{%
+バージョン20150420.0以降ではノードのアクセス手法にdirect access
       modelを用いている.そのため,例えば\LuaTeX\ beta-0.78.2では,単なる自然数のようにし
       か見えないことに注意.
 }.
-glueであれば,\texttt{[$j$]=\{false, <spec\_node>, <ratio>, <icflag>\}} である.
-<spec\_node>はglueの長さを表すノードそのものであり,
-      $\text{<icflag>}=\textit{from\_jfm}+\text{<priority>}$である.
+  \item グルーであれば,この値は以下のキーを持つテーブルである.
+  \begin{description}
+    \item[\texttt{width}, \texttt{stretch}, \texttt{shrink}]
+    グルーのそれぞれ自然長,伸び量,縮み量をsp単位で表したもの.
+    \item[\texttt{priority}] バ(ージョン2以降の)JFMでの指定 \texttt{\{<stretch>,<shrink>\}} を
+    \[
+      (\text{<stretch>}+4)\cdot 8+\text{<shrink>}+4
+    \]
+    として0--63の整数にパックしたもの.
+    \item[\texttt{ratio}, \texttt{kanjiskip\_natural}, \texttt{kanjiskip\_stretch}, \texttt{kanjiskip\_shrink}]
+    JFM中の同名のフィールドの値がそのまま使われている.
+  \end{description}
 \end{itemize}
 \item[ascent\textrm{, }descent]
 ……
 \item[chars\_cbcache]
-……
+文字クラス決定の処理で.キャッシュとして使われる.
 \end{cslist}
 %</ja>
 
@@ -5267,7 +4957,7 @@ Then, the position of glyphs is shifted up by
 %<en>\section{Parameters}
 %<ja>\section{パラメータ}
 \subsection{\cs{ltjsetparameter}}
-\label{ssec-param}
+\label{ssec:param}
 
 %<*en>
 As described before, \cs{ltjsetparameter} and \cs{ltjgetparameter} are
@@ -5348,13 +5038,13 @@ Penalty value for suppressing orphans. This penalty is inserted just
 
 %<*en>
 An additional attributes which each character whose character code is <chr\_code> has.
-At the present version, the lowermost bit of <natural number> indicates
+At version~20120506.0 or later, the lowermost bit of <natural number> indicates
             whether the character is considered as a punctuation mark
             (see the description of \Param{jcharwidowpenalty} above).
 %</en>
 %<*ja>
 文字コードが<chr\_code>の文字が持つ付加的な属性値.
-現在のバージョンでは,<natural number>の最下位ビットが,その文字が句読点と
+バージョン20120506.0以降では,<natural number>の最下位ビットが,その文字が句読点と
 みなされるかどうかを表している(上の\Param{jcharwidowpenalty}の記述を参照).
 %</ja>
 
@@ -5497,7 +5187,7 @@ The default glue which inserted between two \textbf{JAchar}s.
 Changing current Japanese font does not alter this parameter, as \pTeX.
 
 If the natural width of this parameter is \cs{maxdimen}, \LuaTeX-ja uses
-the value which is specified in the JFM for current Japanese font (See Subsection~\ref{ssec-jfm-str}).
+the value which is specified in the JFM for current Japanese font (See Subsection~\ref{ssec:jfm-str}).
 %</en>
 
 \item[\DParam{xkanjiskip}\,=<skip>$^\ast$] [\cs{xkanjiskip}]\
@@ -5513,7 +5203,7 @@ The default glue which inserted between a \textbf{JAchar} and an
 Changing current font does not alter this parameter, as \pTeX.
 
 As \Param{kanjiskip}, if the natural width of this parameter is \cs{maxdimen}, \LuaTeX-ja uses
-the value which is specified in the JFM for current Japanese font (See Subsection~\ref{ssec-jfm-str}).
+the value which is specified in the JFM for current Japanese font (See Subsection~\ref{ssec:jfm-str}).
 %</en>
 
 
@@ -5542,7 +5232,7 @@ The default value is \texttt{paverage}. \dots
 %</en>
 %<*ja>
 デフォルト値は \texttt{paverage} である.
-各々の値による差異の詳細は\ref{ssec-cluster-wa}節の「『右空白』の算出」を参照してほしい.
+各々の値による差異の詳細は\ref{ssec:cluster-wa}節の「『右空白』の算出」を参照してほしい.
 %</ja>
 
 \item[\DParam{jacharrange}\,=<ranges>]
@@ -5568,7 +5258,7 @@ the behavior of this assignment is undefined.
 
 
 \subsection{\cs{ltjgetparameter}}
-\label{ssec-getpar}
+\label{ssec:getpar}
 %<*en>
 \cs{ltjgetparameter} is a control sequence for acquiring parameters. It
 always takes a parameter name as first argument.
@@ -5767,29 +5457,20 @@ The correct way is using a temporary register.
 
 \end{itemize}
 
-%<*ja>
-\subsection{\cs{ltjsetparameter} の代替}
-原則として各種内部パラメータの設定には \cs{ltjsetparameter} もしくは
-\ \cs{ltjglobalsetparameter}\ を用いることになるが,
-\cs{ltjsetparameter} の実行には時間がかかるという難点があり,
-\LuaTeX-ja の内部ではより高速に実行できる別の形式を用いている.
-\emph{本節は一般利用者むけの内容ではない.}
 
-\paragraph{\Param{kanjiskip}, \Param{xkanjiskip} の設定}
-\pLaTeXe 新ドキュメントクラスでは,
-\begin{lstlisting}
-\def\@setfontsize#1#2#3{%
-  ...
-  \kanjiskip=0zw plus .1zw minus .01zw
-  \ifdim\xkanjiskip>\z@
-    \if@slide \xkanjiskip=0.1em \else
-      \xkanjiskip=0.25em plus 0.15em minus 0.06em
-    \fi
-  \fi}
-\end{lstlisting}
-と,フォントサイズを変更するごとに \cs{kanjiskip}, \cs{xkanjiskip} を変更している.
-この \cs{@setfontsize} は文書の中で多数回実行されるので.
-\LuaTeX-ja 用に素直に書き換えた
+%<*en>
+\subsection{Alternative Commands to \cs{ltjsetparameter}}
+The basic method to set parameters of \LuaTeX-ja is to use
+\cs{ltjsetparameter}~or~\cs{ltjglobalsetparameter}.
+However, these commands are slow, because they parse a key-value list,
+so several alternative commands are used in \LuaTeX-ja.
+\emph{This subsection is not for general \LuaTeX-ja users.}
+
+\paragraph{Setting \Param{kanjiskip}~or~\Param{xkanjiskip}}
+In \Pkg{ltjsclasses}, every size-changing command such as \cs{Large}
+changes \cs{kanjiskip}~and~\cs{xkanjiskip}.
+But a simple implementation, as the code below, is slow since
+two key-value lists are parsed by \cs{ltjsetparameter}:
 \begin{lstlisting}
   \ltjsetparameter{kanjiskip=0\zw plus .1\zw minus .01\zw}
   \@tempskipa=\ltjgetparameter{xkanjiskip}
@@ -5801,7 +5482,66 @@ The correct way is using a temporary register.
     \fi
   \fi
 \end{lstlisting}
-としたのではタイプセットが遅くなってしまう.
+
+Hence, \LuaTeX-ja defines more primitive commands, namely \cs{ltj@setpar@global},
+\cs{ltjsetkanjiskip}, and~\cs{ltjsetxkanjiskip}. Here
+\begin{quote}
+  \lstinline+\ltj@setpar@global\ltjsetkanjiskip 10pt+
+\end{quote}
+and \lstinline+\ltjsetparameter{kanjiskip=10pt}+ has the same effect.
+The actual code of \Pkg{ltjsclasses} is shown below:
+\begin{lstlisting}
+  \ltj@setpar@global
+  \ltjsetkanjiskip{\z@ plus .1\zw minus .01\zw}
+  \@tempskipa=\ltjgetparameter{xkanjiskip}
+  \ifdim\@tempskipa>\z@
+    \if@slide
+      \ltjsetxkanjiskip.1em
+    \else
+      \ltjsetxkanjiskip.25em plus .15em minus .06em
+    \fi
+  \fi
+\end{lstlisting}
+
+Note that using \cs{ltjsetkanjiskip}~or~\cs{ltjsetxkanjiskip} alone,
+that is, without executing \cs{ltj@setpar@global} in advance, is \emph{not} supported.
+%</en>
+
+%<*ja>
+\subsection{\cs{ltjsetparameter} の代替}
+原則として各種内部パラメータの設定には \cs{ltjsetparameter} もしくは
+\ \cs{ltjglobalsetparameter}\ を用いることになるが,
+\cs{ltjsetparameter} の実行には時間がかかるという難点があり,
+\LuaTeX-ja の内部ではより高速に実行できる別の形式を用いている.
+\emph{本節は一般利用者むけの内容ではない.}
+
+\paragraph{\Param{kanjiskip}, \Param{xkanjiskip}の設定}
+\pLaTeXe 新ドキュメントクラスでは,
+\begin{lstlisting}
+\def\@setfontsize#1#2#3{%
+  ...
+  \kanjiskip=0zw plus .1zw minus .01zw
+  \ifdim\xkanjiskip>\z@
+    \if@slide \xkanjiskip=0.1em \else
+      \xkanjiskip=0.25em plus 0.15em minus 0.06em
+    \fi
+  \fi}
+\end{lstlisting}
+と,フォントサイズを変更するごとに \cs{kanjiskip}, \cs{xkanjiskip} を変更している.
+この \cs{@setfontsize} は文書の中で多数回実行されるので.
+\LuaTeX-ja 用に素直に書き換えた
+\begin{lstlisting}
+  \ltjsetparameter{kanjiskip=0\zw plus .1\zw minus .01\zw}
+  \@tempskipa=\ltjgetparameter{xkanjiskip}
+  \ifdim\@tempskipa>\z@
+    \if@slide
+      \ltjsetparameter{xkanjiskip=0.1em}
+    \else
+      \ltjsetparameter{xkanjiskip=0.25em plus 0.15em minus 0.06em}
+    \fi
+  \fi
+\end{lstlisting}
+としたのではタイプセットが遅くなってしまう.
 そこで,\cs{ltjsetparameter} の中で
 \begin{itemize}
 \item \cs{globaldefs} の値を読み取る \cs{ltj@setpar@global}
@@ -5978,8 +5718,67 @@ With the help of this example, we remark the specification of \cs{inhibitglue}:
 \end{itemize}
 
 
+\subsection{\cs{ltjfakeboxbdd}, \cs{ltjfakeparbegin}}
+%<*en>
+Sometimes \texttt{'parbdd'}~and~\texttt{'boxbdd'} specifications~look like ``fail'',
+especially in paragraphs inside list environments.
+This is because \cs{everypar} inserts some nodes such as boxes and kerns, so
+the ``first letter'' in a paragraph is in fact not the first letter.
+%</en>
+%<*ja>
+リスト環境内での\cs{item}で始まる各項目などでは,
+「段落最初の鍵括弧が余計に半角字下げされる」など,
+JFMにある\texttt{'parbdd'}, \texttt{'boxbdd'}の指定が見かけ上破綻していることがある.
+
+これは\TeX が\cs{everypar}を用いて段落開始時に記号類や空白などを挿入してしまっているため,
+段落最初の鍵括弧が実際には段落最初のノードではないことに起因する.以下に例を示した.
+%</ja>
+\begin{LTXexample}[width=0.3\textwidth]
+\parindent1\zw
+\noindent ああああああああ\par % for comparison
+「ああああああ \par            % normal paragraph
+
+\everypar{\null}
+「ああああああ \par            % ???
+\end{LTXexample}
+%<*en>
+\cs{ltjfakeboxbdd}~and~\cs{ltjfakeparbegin} primitives resolve this situation.
+\begin{itemize}
+  \item \cs{ltjfakeparbegin} creates a node which indicates
+  ``beginning of an indented paragraph'' to the insertion process of \textbf{JAglue}.
+ \item \cs{ltjfakeboxbdd} creates a node which indicates
+  ``beginning/ending of a box'' to the insertion process of \textbf{JAglue}.
+\end{itemize}
+As an example, the example above can be improved as follows:
+%</en>
+%<*ja>
+\cs{ltjfakeboxbdd}, \cs{ltjfakeparbegin}はこの状況を改善する命令である.
+実際には\cs{everypar}の末尾にこれらを追加するという使い方がほとんどになるだろう.
+\begin{itemize}
+  \item \cs{ltjfakeparbegin}は,実行された箇所が「インデントあり段落の開始」であると\LuaTeX-jaの
+  和文処理グルー挿入処理に認識させる.この命令の直前に\textbf{JAchar}があった場合,
+  この文字の後ろに入るグルー等の処理については未定義である
+  \footnote{%
+    この命令と同等の内容は,\cs{dirrctlua}の形で\Pkg{ltjsclasses}内で以前から使われていた.
+    一般ユーザでも利用しやすくするため,バージョン20170505.0で新たに命令として定義した.
+  }.
+  \item \cs{ltjfakeboxbdd}は,実行された箇所が「ボックスの先頭と末尾」であると\LuaTeX-jaの
+  和文処理グルー挿入処理に認識させる.
+\end{itemize}
+例えば,先ほどの例に対して適用すると,次のようになる.
+%</ja>
+\begin{LTXexample}[width=0.3\textwidth]
+\parindent1\zw
+\noindent ああああああああ\par % for comparison
+「ああああああ \par            % normal paragraph
+
+\everypar{\null\ltjfakeparbegin}
+「ああああああ \par
+\end{LTXexample}
+
+
 \subsection{\cs{ltjdeclarealtfont}}
-\label{ssec-altfont}
+\label{ssec:altfont}
 %<*en>
 Using \cs{ltjdeclarealtfont}, one can ``compose'' more than one Japanese fonts.
 This \cs{ltjdeclarealtfont} uses in the following form:
@@ -6048,7 +5847,7 @@ are typeset by \cs{piyo}.
 \subsection{\cs{ltjalchar} と \cs{ltjjachar}}
 文字コードが$\text{<chr\_code>}~(\geq 128=\mathtt{0x80})$の文字を
 \ \cs{char} プリミティブを使い \cs{char}<chr\_code> として出力させると,
-その文字の属する文字範囲(\ref{ssec-setrange}節参照)によって
+その文字の属する文字範囲(\ref{ssec:setrange}節参照)によって
 \textbf{ALchar}か\textbf{JAchar}か,つまり欧文フォントで出力されるか和文フォントで出力され
 るかが決まる.
 
@@ -6059,7 +5858,7 @@ are typeset by \cs{piyo}.
 <chr\_code>が127以下の場合は,\cs{ltjjachar} であっても\textbf{ALchar}として出力されること
 に注意.
 
-以下は\ref{ssec-setrange}節に載せた例に,\cs{char} の動作を追加したものである.
+以下は\ref{ssec:setrange}節に載せた例に,\cs{char} の動作を追加したものである.
 \begin{LTXexample}[width=0.25\textwidth]
 \gtfamily\large % default, ALchar, JAchar
 ¶, \char`¶, \ltjalchar`¶, \ltjjachar`¶\\    % default: ALchar
@@ -6067,25 +5866,24 @@ are typeset by \cs{piyo}.
 \end{LTXexample}
 %</ja>
 
-
 %<en>\section{Commands for \LaTeXe}
 %<ja>\section{\LaTeXe 用の命令}
 
 %<en>\subsection{Patch for NFSS2}
 %<ja>\subsection{NFSS2へのパッチ}
-\label{ssec-nfsspat}
+\label{ssec:nfsspat}
 
 %<*en>
 Japanese patch for NFSS2 in \LuaTeX-ja
 is based on \texttt{plfonts.dtx} which plays the same role in \pLaTeXe.
 We will describe
-commands which are not described in Subsection~\ref{ssec-chgfnt}.
+commands which are not described in Subsection~\ref{ssec:chgfnt}.
 %</en>
 %<*ja>
 \LuaTeX-jaのNFSS2への日本語パッチは
 \pLaTeXe で同様の役割を果たす \texttt{plfonts.dtx} をベースに,
 和文エンコーディングの管理等をLuaで書きなおしたものである.
-ここでは\ref{ssec-chgfnt}節で述べていなかった命令について
+ここでは\ref{ssec:chgfnt}節で述べていなかった命令について
 記述しておく.
 %</ja>
 
@@ -6212,17 +6010,16 @@ assignment, where \cs{DeclareRelationFont} does a global assignment.
 
 \item[\cs{userelfont}]
 %<*en>
-Change current alphabetic font encoding/family/\dots\ to the `accompanied' alphabetic
-            font family with respect to current Japanese font family,
-            which was set by
-            \cs{DeclareRelationFont} or \cs{SetRelationFont}.
-Like \cs{fontfamily}, \cs{selectfont} is required to take an effect.
+(Only)~at the next call of \cs{selectfont},
+  change current alphabetic font encoding/family/\dots\ to the `accompanied' alphabetic
+  font family with respect to current Japanese font family,
+  which was set by
+  \cs{DeclareRelationFont} or \cs{SetRelationFont}.
 %</en>
 %<*ja>
-現在の欧文フォントのエンコーディング/ファミリ/…… を,
+次回(のみ)の\cs{selectfont}の実行時に,現在の欧文フォントのエンコーディング/ファミリ/…… を,
 \cs{DeclareRelationFont} か \cs{SetRelationFont} で指定された
 現在の和文フォントに対応する「従属欧文」フォントに変更する.
-\cs{fontfamily} のように,有効にするためには \cs{selectfont} が必要である.
 %</ja>
 
 \item[\cs{adjustbaseline}]
@@ -6256,18 +6053,18 @@ character whose character class is zero,  instead of `あ'.
 「漢」の寸法を元に(本節の最初に述べた,小文字で始まる)\cs{cht}, \cs{cwd}
 といった長さ変数を設定する.
 
-なお,\LaTeX が2015/10/01 版以降の場合は,「あ」「漢」の代わりに
+なお,\LaTeX が2015/10/01版以降の場合は,「あ」「漢」の代わりに
 「文字クラス0の和文文字」を用いる.
 %</ja>
 
 \item[\cs{fontfamily}\{<family>\}]
 %<*en>
 As in \LaTeXe, this command changes current font family (alphabetic, Japanese,~\emph{or both})
-to <family>. See Subsection~\ref{ssec-fontfamilycmd} for detail.
+to <family>. See Subsection~\ref{ssec:fontfamilycmd} for detail.
 %</en>
 %<*ja>
 元々の\LaTeXe におけるものと同様に,このコマンドは現在のフォントファミリ(欧文,
-和文,\emph{もしくは両方})を<family>に変更する.詳細は\ref{ssec-fontfamilycmd}節を参照すること.
+和文,\emph{もしくは両方})を<family>に変更する.詳細は\ref{ssec:fontfamilycmd}節を参照すること.
 %</ja>
 
 
@@ -6290,7 +6087,7 @@ to <family>. See Subsection~\ref{ssec-fontfamilycmd} for detail.
 \item[\cs{DeclareAlternateKanjiFont}\{<base-encoding>\}\{<base-family>\}\{<base-series>\}\{<base-shape>\}\\
   \null\hfill\{<alt-encoding>\}\{<alt-family>\}\{<alt-series>\}\{<alt-shape>\}\{<range>\}]
 %<*ja>
-\ref{ssec-altfont}節の\
+\ref{ssec:altfont}節の\
 \cs{ltjdeclarealtfont} と同様に,前半の4引数の
 和文フォント(基底フォント)のうち<range>中の文字を
 第5から第8引数の和文フォントを使って組むように指示する.
@@ -6310,12 +6107,12 @@ to <family>. See Subsection~\ref{ssec-fontfamilycmd} for detail.
 \end{itemize}%
 %</ja>
 %<*en>
-As \cs{ltjdeclarealtfont}~(Subsection~\ref{ssec-altfont}),
+As \cs{ltjdeclarealtfont}~(Subsection~\ref{ssec:altfont}),
 characters in <range> of the Japanese font (we say the \emph{base font})
 which specified by first 4 arguments are typeset
 by the Japanese font which specified by fifth to eighth arguments
 (we say the \emph{alternate font}).
-An example is shown in Figure~\ref{fig:altkanji}.
+An example is shown in \autoref{fig:altkanji}.
 
 \begin{itemize}
  \item
@@ -6347,7 +6144,7 @@ Avant Garde (OT1/pag/m/n) に変わっていることがわかる.
 
 %<en>\subsection{Detail of \cs{fontfamily} command}
 %<ja>\subsection{\cs{fontfamily}コマンドの詳細}
-\label{ssec-fontfamilycmd}
+\label{ssec:fontfamilycmd}
 %<*en>
 In this subsection, we describe when \cs{fontfamily}<family> changes current
 Japanese/alphabetic font family. Basically, current Japanese fotn family is changed to
@@ -6510,6 +6307,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}
@@ -6526,9 +6381,9 @@ by \cs{input}.
 \cs{input} で読み込み可能である.
 %</ja>
 \subsection{\Pkg{luatexja-fontspec}}
-\label{ssec-fontspec2}
+\label{ssec:fontspec2}
 %<*en>
-As described in Subsection~\ref{ssec-fontspec}, this optional package
+As described in Subsection~\ref{ssec:fontspec}, this optional package
 provides the counterparts for several commands defined in the
 \Pkg{fontspec} package (requires \Pkg{fontspec}~v2.4).
 In addition to OpenType font features in the original \Pkg{fontspec},
@@ -6536,7 +6391,7 @@ the following ``font features'' specifications are allowed for
 the commands of Japanese version:
 %</en>
 %<*ja>
-\ref{ssec-fontspec}節で述べたように,この追加パッケージは\Pkg{fontspec}%
+\ref{ssec:fontspec}節で述べたように,この追加パッケージは\Pkg{fontspec}%
 パッケージで定義されているコマンドに対応する和文フォント用のコマンドを提供する.
 
 \Pkg{fontspec}パッケージで指定可能な各種OpenType機能に加えて,和文版のコマンドには
@@ -6550,7 +6405,7 @@ the commands of Japanese version:
 %<*en>
 These 3 keys correspond to \texttt{cid}, \texttt{jfm} and
 \texttt{jfmvar} keys for \cs{jfont}~and~\cs{tfont} respectively.
-See Subsections~\ref{ssec-jfont} and \ref{ssec-psft} for details
+See Subsections~\ref{ssec:jfont} and \ref{ssec:psft} for details
  of \texttt{cid}, \texttt{jfm} and
 \texttt{jfmvar} keys.
 
@@ -6562,8 +6417,8 @@ will be actually used in \texttt{YokoFeatures}~and~\texttt{TateFeatures} keys.
 %<*ja>
 これら3つのキーはそれぞれ \cs{jfont},~\cs{tfont}に対する
 \texttt{cid}, \texttt{jfm}, \texttt{jfmvar}キーとそれぞれ対応する.
-\texttt{cid}, \texttt{jfm}, \texttt{jfmvar}キーの詳細は\ref{ssec-jfont}節
-            と\ref{ssec-psft}節を参照.
+\texttt{cid}, \texttt{jfm}, \texttt{jfmvar}キーの詳細は\ref{ssec:jfont}節
+            と\ref{ssec:psft}節を参照.
 
 \texttt{CID} キーは下の \texttt{NoEmbed} と合わせて用いられたときのみ有効である.
 また,横組用JFMと縦組用JFMは共用できないため,実際に \texttt{JFM} キーを用いる際は
@@ -6574,11 +6429,11 @@ will be actually used in \texttt{YokoFeatures}~and~\texttt{TateFeatures} keys.
 \item[NoEmbed]
 %<*en>
 By specifying this key, one can use ``name-only'' Japanese font which
-will not be embedded in the output PDF file. See Subsection~\ref{ssec-psft}.
+will not be embedded in the output PDF file. See Subsection~\ref{ssec:psft}.
 %</en>
 %<*ja>
 これを指定することで,PDFに埋め込まれない「名前だけ」のフォントを指定することが
-できる.\ref{ssec-psft}節を参照.
+できる.\ref{ssec:psft}節を参照.
 %</ja>
 
 \begin{figure}[!tb]
@@ -6611,22 +6466,22 @@ The \texttt{TateFeatures} key specifies font features which are only turned~on i
 vertical writing, such as \texttt{Style=VerticalKana}~(\texttt{vkna} feature).
 Similarly, the \texttt{TateFont} key specifies the Japanese font which will be used only
             in vertical writing.
-A demonstrarion is shown in Figure~\ref{fig:yokotate-fontspec}.
+A demonstrarion is shown in \autoref{fig:yokotate-fontspec}.
 %</en>
 %<*ja>
 縦組において使用されるフォントや,縦組においてのみ適用されるフォント機能達を
-指定する.使用例は図\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>
 
 
@@ -6650,16 +6505,16 @@ A demonstrarion is shown in Figure~\ref{fig:yokotate-fontspec}.
 \item[AltFont]
 
 %<*en>
-As \cs{ltjdeclarealtfont}~(Subsection~\ref{ssec-altfont}) and
-\cs{DeclareAlternateKanjiFont}~(Subsection~\ref{ssec-nfsspat}),
+As \cs{ltjdeclarealtfont}~(Subsection~\ref{ssec:altfont}) and
+\cs{DeclareAlternateKanjiFont}~(Subsection~\ref{ssec:nfsspat}),
 with this key, one can typeset some Japanese characters
 by a different font and/or using different features.
 The \texttt{AltFont} feature takes a comma-separated list of comma-separated lists,
 as the following:
 %</en>
 %<*ja>
-\ref{ssec-altfont}節の \cs{ltjdeclarealtfont} や,
-\ref{ssec-nfsspat}節の \cs{DeclareAlternateKanjiFont} と同様に,
+\ref{ssec:altfont}節の \cs{ltjdeclarealtfont} や,
+\ref{ssec:nfsspat}節の \cs{DeclareAlternateKanjiFont} と同様に,
 このキーを用いると一部の文字を異なったフォントや機能たちを使って組むことができる.
 \texttt{AltFont} キーに指定する値は,次のように二重のコンマ区切りリストである:
 %</ja>
@@ -6675,11 +6530,11 @@ AltFont = {
 %<*en>
 Each sublist should have the \texttt{Range} key
 (sublist which does not contain \texttt{Range} key is simply ignored).
-A demonstrarion is shown in Figure~\ref{fig:altkanji-fontspec}.
+A demonstrarion is shown in \autoref{fig:altkanji-fontspec}.
 %</en>
 %<*ja>
 各部分リストには \texttt{Range} キーが必須である(含まれない部分リストは
-単純に無視される).指定例は図\ref{fig:altkanji-fontspec}に示した.
+単純に無視される).指定例は\autoref{fig:altkanji-fontspec}に示した.
 %</ja>
 \end{cslist}
 
@@ -6691,6 +6546,7 @@ A demonstrarion is shown in Figure~\ref{fig:altkanji-fontspec}.
 
 %<*en>
 \paragraph{Remark on \texttt{AltFont}, \texttt{YokoFeatures}, \texttt{TateFeatures} keys}
+\leavevmode\par
 In \texttt{AltFont},~\texttt{YokoFeatures},~\texttt{TateFeatures} keys,
 one cannot specify per-shape settings such as \texttt{BoldFeatures}.
 For example,
@@ -6716,7 +6572,7 @@ one can specify \texttt{AltFont} inside \texttt{YokoFeatures},~\texttt{TateFeatu
 
 Note that features which are specified in \texttt{YokoFeatures}~and~\texttt{TateFeatures}
 are always interpreted \emph{after} other ``direction-independent'' features.
-This explains why \cs{addjfontfeatures} at~line~6 in~Figure~\ref{fig:yokotate-fontspec}
+This explains why \cs{addjfontfeatures} at~line~6 in~\autoref{fig:yokotate-fontspec}
 has no effect, because a color specification is already done in
 \texttt{YokoFeatures}~and~\texttt{TateFeatures} keys.
 %</en>
@@ -6748,7 +6604,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機能指定は
@@ -6758,26 +6614,33 @@ OpenType機能指定は
 
 
 \subsection{\Pkg{luatexja-otf}}
-\label{ssec-ltjotf}
+\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>\}]
@@ -6856,36 +6719,8 @@ JFMの\texttt{chars}テーブルのエントリとして \verb+'AJ1-xxx'+ の形
 正しく半角幅で組むために利用されている.
 %</ja>
 
-%<*en>
-\paragraph{IVS support}
-Recent fonts support Ideographic Variation Selector (IVS).
-\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サポート}
-最近のOpenTypeフォントやTrueTypeフォントには,
-\texttt{U+E0100}--\texttt{U+E01EF}の範囲の「文字」
-(漢字用異体字セレクタ)を後置することによって
-字形を指定する仕組み(IVS)が含まれている.
-執筆時点の2013年12月では,\Pkg{luaotfload}や\Pkg{fontspec}パッケージ類は
-IVSに対応してはいないようであったため,
-\Pkg{luatexja-otf}パッケージ内に試験的なIVS対応を実装した.これは以下の命令の実行で有効になる:
-\begin{lstlisting}
-\directlua{luatexja.otf.enable_ivs()}
-\end{lstlisting}
-しかし,現在の\Pkg{luaotfload}や\Pkg{fontspec}パッケージは
-IVSに対応しているようであるので,もはや上の命令を実行する必要はない.
-%</ja>
-
 \subsection{\Pkg{luatexja-adjust}}
-\label{ssec-adj}
+\label{ssec:adj}
 \begin{figure}[t]
 \def\sq{%
   \hbox to 1\zw{\hss\fboxsep=-.5\fboxrule\fbox{%
@@ -6921,8 +6756,8 @@ with priority&%
 Note: the value of
 \Param{kanjiskip} is 0\,pt${}^{+1/5\,\mathrm{em}}_{-1/5\,\mathrm{em}}$ in this figure,
 for making the difference obvious.
-%<ja>\caption{行長調整}\label{fig-adj}
-%<en>\caption{Line adjustment}\label{fig-adj}
+%<ja>\caption{行長調整}\label{fig:adj}
+%<en>\caption{Line adjustment}\label{fig:adj}
 \end{figure}
 
 
@@ -6955,11 +6790,11 @@ for making the difference obvious.
   
 \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}下段)ことになっている.
+文字はベタ組で組まれる(\autoref{fig:adj}下段)ことになっている.
 \Pkg{luatexja-adjust}パッケージの提供する第2の機能は,
 \cite{jlreq}や\cite{x4051}における規定のような,優先順位付き
 の行長調整である.
@@ -7044,232 +6879,1050 @@ There is no detailed manual of \Pkg{luatexja-ruby.sty} in English.
 前後の文字種に応じた前後への自動進入や,
 行頭形・行中形・行末形の自動的な使い分けが特徴である.
 
-ルビ組版に設定可能な項目や注意事項が多いため,本追加パッケージの詳細な説明は
-使用例と共に \url{luatexja-ruby.pdf}\ という別ファイルに載せている.
-この節では簡単な使用方法のみ述べる.
-%</ja>
+ルビ組版に設定可能な項目や注意事項が多いため,本追加パッケージの詳細な説明は
+使用例と共に \url{luatexja-ruby.pdf}\ という別ファイルに載せている.
+この節では簡単な使用方法のみ述べる.
+%</ja>
+
+\begin{description}
+%<*en>
+ \item[Group-ruby]
+By default, ruby characters (the second argument of \cs{ruby})
+are attached to base characters (the first argument), as one object.
+This type of ruby is called \emph{group-ruby}.
+%</en>
+%<*ja>
+ \item[グループルビ] 標準ではグループルビの形で組まれる.第1引数に親文字,
+第2引数にルビを記述する.
+%</ja>
+\begin{LTXexample}[width=0.3\textwidth]
+東西線\ruby{妙典}{みようでん}駅は……\\
+東西線の\ruby{妙典}{みようでん}駅は……\\
+東西線の\ruby{妙典}{みようでん}という駅……\\
+東西線\ruby{葛西}{かさい}駅は……
+\end{LTXexample}
+%<*en>
+As the above example, ruby hangover is allowed on the Hiragana before/after
+its base characters.
+%</en>
+%<ja> この例のように,標準では前後の平仮名にルビ全角までかかるようになっている.
+
+%<*en>
+\item[Mono-ruby]
+To attach ruby characters to each base characters (\emph{mono-ruby}),
+one should use \cs{ruby} multiple times:
+%</en>
+%<*ja>
+ \item[モノルビ] 親文字を1文字にするとモノルビとなる.
+2文字以上の熟語をモノルビの形で組みたい場合は,面倒でも
+その数だけ \cs{ruby} を書く必要がある.
+%</ja>
+\begin{LTXexample}[width=0.3\textwidth]
+東西線の\ruby{妙}{みよう}\ruby{典}{でん}駅は……
+\end{LTXexample}
+
+%<*en>
+ \item[Jukugo-ruby]
+Vertical bar~\verb+|+ denotes a boundary of \emph{groups}.
+%</en>
+%<*ja>
+ \item[熟語ルビ] 引数内の縦棒 \verb+|+ はグループの区切りを表し,
+複数グループのルビは熟語ルビとして組まれる.
+\cite{x4051}にあるように,
+どのグループでも「親文字」が対応するルビ以上の長さの場合は
+各グループごとに,そうでないときは全体をまとめて1つのグループルビとして組まれる.
+\cite{jlreq}で規定されている組み方とは異なるので注意.
+%</ja>
+\begin{LTXexample}
+\ruby{妙|典}{みよう|でん}\
+\ruby{葛|西}{か|さい}\
+\ruby{神楽|坂}{かぐら|ざか}
+\end{LTXexample}
+%<*en>
+If there are multiple groups in one \cs{ruby} call,
+A linebreak between two groups is allowed.
+%</en>
+%<ja> 複数ルビではグループとグループの間で改行が可能である.
+\begin{LTXexample}[width=0.3\textwidth]
+\vbox{\hsize=6\zw\noindent
+  \hbox to 2.5\zw{}\ruby{京|急|蒲|田}{けい|きゆう|かま|た}
+  \hbox to 2.5\zw{}\ruby{京|急|蒲|田}{けい|きゆう|かま|た}
+  \hbox to   3\zw{}\ruby{京|急|蒲|田}{けい|きゆう|かま|た}
+}
+\end{LTXexample}
+\end{description}
+
+%<*en>
+If the width of ruby characters are longer than that of base characters,
+\cs{ruby} automatically selects the appropriate form
+among the line-head form, the line-middle form, and the line-end form.
+%</en>
+%<*ja>
+また,ルビ文字のほうが親文字よりも長い場合は,自動的に
+行頭形・行中形・行末形のいずれか適切なものを選択する.
+%</ja>
+\begin{LTXexample}[width=0.3\textwidth]
+\vbox{\hsize=8\zw\noindent
+\null\kern3\zw ……を\ruby{承}{うけたまわ}る
+     \kern1\zw ……を\ruby{承}{うけたまわ}る\\
+\null\kern5\zw ……を\ruby{承}{うけたまわ}る
+}
+\end{LTXexample}
+
+
+%<*ja>
+\subsection{\Pkg{lltjext}}
+\pLaTeX では縦組用の拡張として \Pkg{plext} パッケージが用意されていたが,
+それを\LuaTeX-ja用に書きなおしたものが本追加パッケージ \Pkg{lltjext} である.
+
+従来の \Pkg{plext} パッケージとの違いは,
+{\catcode`\<=12
+\begin{itemize}
+ \item 組方向オプション \texttt{<y>}(横組),\texttt{<t>}(縦組),
+\texttt{<z>}\ の他に\ \texttt{<d>}(dtou方向),\texttt{<u>}(utod方向)を追加した.
+\texttt{<z>} と \texttt{<u>} の違いは,\texttt{<z>} が(\Pkg{plext} パッケージと同様に)
+周囲の組方向が縦組のときにしか意味を持たない
+  \footnote{%
+    周囲の組方向が縦組以外のときは,\texttt{<z>} を指定しても中身の組方向は周囲の組方向と変わらない.
+  }%
+のに対し,\texttt{<u>} にはそのような制限がないことである.
+ \item 連数字用命令 \cs{rensuji} における位置合わせオプション \texttt{[l]}, \texttt{[c]},
+       \texttt{[r]} の挙動を若干変更した.
+\end{itemize}
+}
+
+%</ja>
+%<*en>
+\subsection{\texttt{lltjext.sty}}
+\pLaTeX\ supplies additional macros for vertical writing in the \Pkg{plext} package.
+The \Pkg{lltjext} package which we want to describe here is the \LuaTeX-ja
+counterpart of the \Pkg{plext} package.
+%</en>
+
+%<*ja>
+念の為,本 \Pkg{lltjext} パッケージで追加・変更している命令の一覧を載せておく.
+\begin{cslist}
+\item[tabular\textrm{, }array\textrm{, }minipage環境]
+これらの環境は,
+\begin{lstlisting}
+\begin{tabular}<dir>[pos]{table spec} ... \end{tabular}
+\begin{array}<dir>[pos]{table spec}   ... \end{array}
+\begin{minipage}<dir>[pos]{width}     ... \end{minipage}
+\end{lstlisting}
+のように,組方向オプション \texttt{\<dir\>} が拡張されている.
+既に述べたように,組方向オプションに指定できる値は以下の5つであり,
+それ以外を指定した時や無指定時は周囲の組方向と同じ組方向になる.
+\begin{description}
+ \item[y] 横組(\cs{yoko})
+ \item[t] 縦組(\cs{tate})
+ \item[z] 周囲が縦組の時はutod方向,それ以外はそのまま
+ \item[d] dtou方向
+ \item[u] utod方向
+\end{description}
+\item[\cs{parbox}\<<dir>\>{[<pos>]}\{<width>\}\{<contents>\}]
+\cs{parbox} 命令も同様に,組方向の指定ができるように拡張されている.
+
+\item[\cs{pbox}\<<dir>\>{[<width>][<pos>]}\{<contents>\}]
+組方向<dir>で<contents>の中身をLRモードで組む命令である.
+<width>が正の値であるときは,ボックス全体の幅がその値となる.
+その際,中身は<pos>の値に従い,左寄せ(\texttt{l}),右揃え(\texttt{r}),
+中央揃え(それ以外)される.
+\item[picture環境]
+図表作成に用いる\texttt{picture}環境も,
+\begin{lstlisting}
+\begin{picture}<dir>(x_size, y_size)(x_offset,y_offset)
+  ...
+\end{picture}
+\end{lstlisting}
+と組方向が指定できるように拡張されている.
+$x$成分の増加方向は字送り方向,$y$成分の増加方向は行送り方向の\emph{反対方向}となる.
+\Pkg{plext} パッケージと同様に
+内部ではベースライン補正(\Param{yalbaselineshift}パラメータなど)の影響を受けないように,
+\cs{put},~\cs{line}, \cs{vector}, \cs{dashbox}, \cs{oval},~\cs{circle}も
+ベースライン補正を受けないように再定義されている.
+
+\item[\cs{rensuji}{[<pos>]}\{<contents>\}\textrm{, }\cs{rensujiskip}]
+
+\item[\cs{Kanji}\{<counter\_name>\}]
+
+\item[\cs{kasen}\{<contents>\}\textrm{, }\cs{bou}\{<contents>\}\textrm{,
+                    }\cs{boutenchar}]
+
+\item[参照番号]
+\end{cslist}
+%</ja>
+%<*en>
+\begin{cslist}
+\item[tabular\textrm{, }array\textrm{, }minipage\textrm{ environments}]
+These environments are extended by \texttt{\<dir\>}, which specifies the direction,
+as follows:
+\begin{lstlisting}
+\begin{tabular}<dir>[pos]{table spec} ... \end{tabular}
+\begin{array}<dir>[pos]{table spec}   ... \end{array}
+\begin{minipage}<dir>[pos]{width}     ... \end{minipage}
+\end{lstlisting}
+This option permits one of the following five values. If none of them is specified,
+the direction inside the environment is same as that outside the enviromnent.
+\begin{description}
+ \item[y] \emph{yoko} direction (horizontal writing)
+ \item[t] \emph{tate} direction (vertical writing)
+ \item[z] \emph{utod} direction if direction outside the env.\ is \emph{tate}.
+ \item[d] \emph{dtou} direction
+ \item[u] \emph{utod} direction
+\end{description}
+\item[\cs{parbox}\<<dir>\>{[<pos>]}\{<width>\}\{<contents>\}]
+\cs{parbox} command is also extended by \texttt{\<<dir>\>}.
+
+\item[\cs{pbox}\<<dir>\>{[<width>][<pos>]}\{<contents>\}]
+This commands typeset <contents> in LR-mode, in <dir> direction.
+If <width> is positive, the width of the box becomes this <width>.
+In this case, <contents> will be aligned to left (when <pos> is \texttt{l}),
+center (\texttt{c}), or~right (\texttt{r}).
+  
+\item[picture\textrm{\ environment}]
+\texttt{picture} environment also extended by \texttt{\<<dir>\>}, as follows:
+\begin{lstlisting}
+\begin{picture}<dir>(x_size, y_size)(x_offset,y_offset)
+  ...
+\end{picture}
+\end{lstlisting}
+
+\item[\cs{rensuji}{[<pos>]}\{<contents>\}\textrm{, }\cs{rensujiskip}]
+
+\item[\cs{Kanji}\{<counter\_name>\}]
+
+\item[\cs{kasen}\{<contents>\}\textrm{, }\cs{bou}\{<contents>\}\textrm{,
+                    }\cs{boutenchar}]
+
+\item[参照番号]
+\end{cslist}
+%</en>
+
+%<*ja>
+\paragraph{表組他の揃え位置}
+表組(\texttt{array}, \texttt{tabular}環境),\cs{parbox}命令,\cs{minipage}環境の
+揃え位置については\autoref{tab:lltjext_dir}を参照.\pLaTeX~2017-07-29と
+できるだけ同じ挙動になるようにしている.\autoref{tab:lltjext_dir}中のA--Dの意味は次の通り.
+
+\begin{table}
+  \caption{\Pkg{lltjext}パッケージにおける表組・\cs{parbox}命令他の揃え位置}
+  \label{tab:lltjext_dir}
+  {\centering
+    \begin{tabular}{lcccc}
+      \toprule
+      ↓中身\周囲→&\cs{yoko}&\cs{tate}&\cs{utod}&\cs{dtou}\\
+      \midrule
+      \cs{yoko}&A&B&B&B\\
+      \cs{tate}&B&A&D&C\\
+      \cs{utod}&B&D&A&C\\
+      \cs{dtou}&B&C&C&A\\
+      \bottomrule
+    \end{tabular}\par}
+\end{table}
+
+\begin{description}
+ \item[A] 周囲の組方向と中身の組方向が同じ場合.
+  \begin{itemize}
+   \item \texttt{[t]}指定のとき:
+    中身の先頭行のベースラインが周囲のベースラインと一致する.
+    表組で先頭行の上に罫線があった場合は,それがベースラインの位置
+    \footnote{\LuaTeX-jaでは和文側のベースラインの位置も上下移動できることに注意.
+      そのため「和文ベースライン」の位置に来るとは限らない.}となる.
+   \item \texttt{[c]}指定のとき:
+    中身の上下の中心が周囲の数式の軸を通る.
+   \item \texttt{[b]}指定のとき:
+    中身の最終行のベースラインが周囲のベースラインと一致する.
+    表組で最終行の下に罫線があった場合は,それがベースラインの位置となる.
+  \end{itemize}
+ \item[B] 周囲の組方向と中身の組方向が90度ずれている場合.
+  \begin{itemize}
+   \item \texttt{[t]}指定のとき:
+    表組においては,上端が周囲のベースラインと一致する.
+    \cs{parbox}や\cs{minipage}環境においては,上端が周囲の和文文字の上端と一致する.
+   \item \texttt{[c]}指定のとき:
+    中身の上下の中心が周囲の数式の軸を通る.
+   \item \texttt{[b]}指定のとき:
+    表組においては,下端が周囲のベースラインと一致する.
+    \cs{parbox}や\cs{minipage}環境においては,下端が周囲の和文文字の下端と一致する.
+  \end{itemize}
+ \item[C] 周囲の組方向と中身の組方向が180度ずれている場合.
+  \cs{parbox}や\cs{minipage}環境においては,上のBの場合と同じ挙動である.表組においては,
+  Aで\texttt{[t]}と\texttt{[b]}を入れ替えた
+  \begin{itemize}
+   \item \texttt{[t]}指定のとき:
+    中身の最終行のベースラインが周囲のベースラインと一致する.
+    最終行の下に罫線があった場合は,それがベースラインの位置となる.
+   \item \texttt{[c]}指定のとき:
+    中身の上下の中心が周囲の数式の軸を通る.
+   \item \texttt{[b]}指定のとき:
+    中身の先頭行のベースラインが周囲のベースラインと一致する.
+    表組で先頭行の上に罫線があった場合は,それがベースラインの位置となる.
+  \end{itemize}
+ \item[D] 通常の縦組(\cs{tate})と「縦数式ディレクション」に相当する\cs{utod}方向が絡んだ場合.
+  \cs{parbox}や\cs{minipage}環境においては,上のBの場合と同じ挙動である.表組においては,
+  \begin{itemize}
+   \item \texttt{[t]}指定のとき:
+    中身の先頭行の欧文ベースラインが周囲の欧文ベースラインと一致する.
+   \item \texttt{[c]}指定のとき:
+    中身の上下の中心が周囲の数式の軸を通る.
+   \item \texttt{[b]}指定のとき:
+    中身の最終行の欧文ベースラインが周囲の欧文ベースラインと一致する.
+  \end{itemize}
+\end{description}
+%</ja>
+
+\subsection{\Pkg{luatexja-preset}}
+\label{ssec:preset}
+
+%<*en>
+As described in Subsection~\ref{ssec:preset-abst},
+One can load the \Pkg{luatexja-preset}
+package to use several ``presets'' of Japanese fonts.
+This package provides functions in a part of \Pkg{japanese-otf} package (changing fonts)
+and a part of \Pkg{PXchfon} package (presets) by Takayuki Yato.
+
+Options which are given in \cs{usepackage} but not described in this~subsection
+are simply passed to the \Pkg{luatexja-fontspec}\footnote{if \texttt{nfssonly} option is
+\emph{not} specified; in this case these options are simply ignored.}.
+For example, the line~5 in below example is equivalent to lines 1--3.
+%</en>
+%<*ja>
+\ref{ssec:preset-abst}節で述べたように,よく使われている和文フォント設定を一行で指定できるようにしたのが
+\Pkg{luatexja-preset}パッケージである.このパッケージは,
+\Pkg{otf}パッケージの一部(多書体化)と八登崇之氏による\Pkg{PXchfon}パッケージの一部(プリセット指定)
+とを合わせたような格好をしている.
+
+パッケージ読み込み時に渡されたオプションのうち,
+本節にないものを指定した場合,それらはそのまま
+\Pkg{luatexja-fontspec}パッケージに渡される\footnote{\texttt{nfssonly} オプションが
+指定されていた場合は,\Pkg{luatexja-fontspec}パッケージは読み込まれないので単純に無視され
+る.}.例えば,下の1--3行目は5行目のように一行にまとめることができる.
+%</ja>
+\begin{lstlisting}
+\usepackage[no-math]{fontspec}
+\usepackage[match]{luatexja-fontspec}
+\usepackage[kozuka-pr6n]{luatexja-preset}
+%%--------
+\usepackage[no-math,match,kozuka-pr6n]{luatexja-preset}
+\end{lstlisting}
+
+%<en>\subsubsection{General Options}
+%<ja>\subsubsection{一般的なオプション}
+\label{sssec:ltjpreset-general}
+
+\begin{cslist}[before*=]
+\item[fontspec%
+%<en>\textrm{~(enabled by default)}
+%<ja>\emph{\gtfamily (既定)}
+]
+%<*en>
+With this option, Japanese fonts are selected using functionality of
+the \Pkg{luatexja-fontspec} package. This means that the \Pkg{fontspec} package is
+            automatically loaded by this package.
+
+If you need to pass some options to \Pkg{fontspec}, you can load \Pkg{fontspec} manually
+before \Pkg{luatexja-preset}:
+%</en>
+%<*ja>
+\Pkg{luatexja-fontspec}パッケージの機能を用いて和文フォントを選択する.
+これは,\Pkg{fontspec}パッケージが自動で読み込まれることを意味する.
+
+もし\Pkg{fontspec}パッケージに何らかのオプションを渡す必要がある
+\footnote{例えば,数式フォントまで置換されてしまい,\cs{mathit}によってギリシャ文字の
+斜体大文字が出なくなる,など.}場合は,
+次のように\Pkg{luatexja-preset}の前に\Pkg{fontspec}を手動で読みこめば良い:
+%</ja>
+\begin{lstlisting}
+\usepackage[no-math]{fontspec}
+\usepackage[...]{luatexja-preset}
+\end{lstlisting}
+
+\item[nfssonly]
+%<*en>
+With this option, selecting Japanese fonts won't be performed using the functionality of
+            the \Pkg{fontspec} package, but only standard NFSS2 (hence without
+            \cs{addjfontfeatures} etc.).
+This option is ignored when \Pkg{luatexja-fontspec} package is loaded.
+
+When this option is specified, \Pkg{fontspec}~and~\Pkg{luatexja-fontspec} are
+\emph{not} loaded by default. Nevertheless,
+the package\Pkg{fontspec} can coexist with the option, as the following:
+\begin{lstlisting}
+\usepackage{fontspec}
+\usepackage[hiragino-pron,nfssonly]{luatexja-preset}
+\end{lstlisting}
+In this case, one can use \cs{setmainfont} etc.\ to select \emph{alphabetic} fonts.
+%</en>
+%<*ja>
+\LaTeX 標準のフォント選択機構(NFSS2)を用いて
+\texttt{ltjpm}(明朝),\texttt{ltjpg}(ゴシック),それに後に述べる \texttt{deluxe} オプ
+            ションが指定された場合には \texttt{ltjpmg}(丸ゴシック)という
+3つの和文フォントファミリを定義し,これらを用いる.
+
+本オプション指定時には\Pkg{fontspec}・\Pkg{luatexja-fontspec}パッケージは
+自動では読み込まれない,しかし,
+\begin{lstlisting}
+\usepackage{fontspec}
+\usepackage[hiragino-pron,nfssonly]{luatexja-preset}
+\end{lstlisting}
+のようにすれば,このオプションを指定すれば
+欧文フォントを\Pkg{fontspec}パッケージの機能を使って指定することができる.
+一方,
+パッケージ読み込み時に既に\Pkg{luatexja-fontspec}パッケージが読み込まれて
+            いる場合は \texttt{nfssonly} オプションは無視される.
+%</ja>
+
+\item[match]
+%<*en>
+If this option is specified, usual family-changing commands such as
+\cs{rmfamily},~\cs{textrm}, \cs{sffamily},~\dots\ also change Japanese font family.
+This option is passed to \Pkg{luatexja-fontspec}, if \texttt{fontspec}
+option is specifed.
+%</en>
+
+%<*ja>
+このオプションが指定されると,「\pLaTeXe 新ドキュメントクラス」のように\
+\cs{rmfamily}, \verb+\textrm{...}+, \cs{sffamily} 等が
+欧文フォントだけでなく和文フォントも変更するようになる.
+\ \texttt{fontspec}\
+オプションが有効になっている場合は,このオプションは \Pkg{luatexja-fontspec} パッケージへと渡される.
+%</ja>
+
+
+\item[nodeluxe%
+%<en>\textrm{~(enabled by default)}
+%<ja>\emph{\gtfamily (既定)}
+]
+%<*en>
+The nagation of \texttt{deluxe} option.
+Use one-weighted \textit{mincho} and \textit{gothic} font families.
+This means that \verb+\mcfamily\bfseries+, \verb+\gtfamily\bfseries+ and
+\verb+\gtfamily\mdseries+ use the same font.
+%</en>
+%<*ja>
+\texttt{deluxe}オプションの否定.
+\LaTeXe 環境下の標準設定のように,明朝体・ゴシック体を各1ウェイトで使用する.
+より具体的に言うと,この設定の下では
+\ \verb+\mcfamily\bfseries+, \verb+\gtfamily\bfseries+,
+\verb+\gtfamily\mdseries+はみな同じフォントとなる.
+%</ja>
+\item[deluxe]
+%<*en>
+Use the mincho family with three weights (light, medium, and~bold),
+the gothic family with three weights (medium, bold, and extra~bold), and \textit{rounded gothic}%
+\footnote{Provided by \cs{mgfamily} and \cs{textmg},
+because ``rounded gothic'' is called \textit{maru gothic} (丸ゴシック) in Japanese.}.
+Mincho light and gothic extra~bold can be by
+\cs{mcfamily}\cs{ltseries}~and~\cs{gtfamily}\cs{ebseries}, respectively.
+
+\begin{itemize}
+ \item Some presets do not have the light weight of mincho.
+  In this case, we substitute the medium weight for the light weight.
+ \item \Pkg{luatexja-preset} does not produce an error (only produces a warning), even if
+  (one of) fonts for \cs{mcfamily}\cs{ltseries}, \cs{gtfamily}\cs{ebseries}, \cs{mgfamily}
+  do not exist.
+\end{itemize}
+%</en>
+%<*ja>
+明朝体・ゴシック体各3ウェイトと,
+丸ゴシック体 (\cs{mgfamily}, \verb+\textmg{...}+) を利用可能にする.
+明朝体は細字・中字・太字の3ウェイトがあり,
+明朝体の細字は \cs{mcfamily}\cs{ltseries} で利用できる.
+また,ゴシック体は中字・太字・極太の3ウェイトがあり,
+ゴシック体の極太は \cs{gtfamily}\cs{ebseries} で利用できる%
+\footnote{過去との互換性のため,\cs{gtebfamily}, \cs{textgteb\{...\}} も
+ 依然として利用可能である.}.
+
+\begin{itemize}
+  \item プリセット設定によっては明朝体細字が用意されていないものもある.その場合は
+  明朝体中字が代用される.
+  \item 明朝体細字,ゴシック体極太,丸ゴシック体の3フォントについては
+  実際にフォントをロードする前に存在するかチェックを行う.
+  存在しなかったものについては警告を発し,
+  それぞれ明朝体中字.ゴシック体太字,ゴシック体太字で代用する.
+\end{itemize}
+%</ja>
+\item[expert]
+%<*en>
+Use horizontal/vertical kana alternates, and define a command \cs{rubyfamily} to use kana
+characters designed for ruby.
+%</en>
+%<*ja>
+横組・縦組専用仮名を用いる.また,\cs{rubyfamily} でルビ用仮名が使用可能となる\footnote{%
+  \cs{rubyfamily}とはいいつつ,実際にはフォントファミリを切り替えるのではない(通常では
+  font featureの追加,\texttt{nfssonly} 指定時にはシェイプを \texttt{rb} に切り替え).
+}.
+%</ja>
+\item[bold]
+%<*en>
+Substitute bold series of gothic for  bold series of mincho.
+If \texttt{nodeluxe} option is enabled, medium series of gothic is also changed,
+since we use same font for both series of gothic.
+%</en>
+%<*ja>
+「明朝の太字」をゴシック体の太字によって代替する.
+もし\texttt{nodeluxe}オプションが指定されている場合は,ゴシック体は1ウェイトしか使用されな
+          いため,
+「ゴシック体の中字」も同時に変更されることになる.
+%</ja>
+\item[90jis]
+%<en>Use 90JIS glyph variants if possible.
+%<ja>出来る限り90JISの字形を使う.
+\item[jis2004]
+%<en>Use JIS2004 glyph variants if possible.
+%<ja>出来る限りJIS2004の字形を使う.
+\item[jfm\_yoko=<jfm>]
+%<*en>
+Use the JFM \texttt{jfm-<jfm>.lua} for horizontal direction, instead of \texttt{jfm-ujis.lua}~(default JFM).
+%</en>
+%<*ja>
+横組用和文フォントで用いるJFMを\texttt{jfm-<jfm>.lua}にする.このオプションがない時は
+\LuaTeX\nobreakdash -ja標準の\texttt{jfm-ujis.lua}が用いられる.
+%</ja>
+\item[jfm\_tate=<jfm>]
+%<*en>
+Use the JFM \texttt{jfm-<jfm>.lua} for vertical direction, instead of \texttt{jfm-ujisv.lua}~(default JFM).
+%</en>
+%<*ja>
+縦用和文フォントで用いるJFMを\texttt{jfm-<jfm>.lua}にする.このオプションがない時は
+\LuaTeX-ja標準の\texttt{jfm-ujisv.lua}が用いられる.
+%</ja>
+
+\item[jis]
+%<en>Same as \texttt{jfm\_yoko=jis}.
+%<ja>\texttt{jfm\_yoko=jis}と同じ.ここで用いるJFM\texttt{jfm-jis.lua}はJISフォントメトリックを元にしたものである.
+
+\end{cslist}
+%<*en>
+Note that \texttt{90jis} and \texttt{jis2004} only affect with mincho,
+gothic (and, possibly rounded gothic) families defined by this package.
+We didn't taken account of  when both \texttt{90jis} and \texttt{jis2004} are specified.
+%</en>
+%<*ja>
+\texttt{90jis}と\texttt{jis2004}については本パッケージで定義された
+明朝体・ゴシック体(・丸ゴシック体)にのみ有効である.
+両オプションが同時に指定された場合の動作については全く考慮していない.
+%</ja>
+
+%<en>\subsubsection{Presets which support multi weights}
+%<ja>\subsubsection{多ウェイト用プリセットの一覧}
+\label{sssec:ltjpreset-multi}
+
+%<*en>
+Besides \texttt{morisawa-pro}~and~\texttt{morisawa-pr6n} presets,
+fonts are specified by font name, not by file name.
+In following tables, starred fonts (e.g.~KozGo\dots-Regular) are used for medium series of \textit{gothic},
+\emph{if and only if \texttt{deluxe} option is specified}.
+%</en>
+%<*ja>
+\texttt{morisawa-pro}, \texttt{morisawa-pr6n}以外はフォントの指定は
+(ファイル名でなく)フォント名で行われる.
+以下の表において,*\,つきのフォント(e.g.,~KozGo\dots-Regular)は,\emph{\texttt{deluxe}オプション指定時に}
+ゴシック体中字として用いられるものを示している.
+%</ja>
+\begin{cslist}[style=standard]
+ \item[kozuka-pro] Kozuka Pro (Adobe-Japan1-4) fonts.
+%<en>    \\*[-\dimexpr\medskipamount+\baselineskip\relax]
+ \item[kozuka-pr6] Kozuka Pr6 (Adobe-Japan1-6)  fonts.
+%<en>    \\*[-\dimexpr\medskipamount+\baselineskip\relax]
+ \item[kozuka-pr6n] Kozuka Pr6N (Adobe-Japan1-6, JIS04-savvy) fonts.
+
+%<*en>
+Kozuka Pro/Pr6N fonts are bundled with Adobe's software, such as Adobe~InDesign.
+There is not rounded gothic family in Kozuka fonts.
+%</en>
+%<*ja>
+小塚Pro書体・Pr6N書体はAdobe InDesign等のAdobe製品にバンドルされている.
+「小塚丸ゴシック」は存在しないので,便宜的に小塚ゴシックHによって代用している.
+%</ja>
+\begin{center}\small
+\begin{tabular}{lllll}
+\toprule
+\bfseries family&\bfseries series&\ttfamily kozuka-pro&\ttfamily kozuka-pr6&\ttfamily kozuka-pr6n\\
+\midrule
+ &light&KozMinPro-Light&KozMinProVI-Light&KozMinPr6N-Light\\
+%<en>\textit{mincho}%
+%<ja>\textgt{明朝}%
+ &medium&KozMinPro-Regular&KozMinProVI-Regular&KozMinPr6N-Regular\\
+ &bold&KozMinPro-Bold&KozMinProVI-Bold&KozMinPr6N-Bold\\
+\midrule
+ &&KozGoPro-Regular*&KozGoProVI-Regular*&KozGoPr6N-Regular*\\
+ &\smash{\raisebox{1.5ex}{medium}}
+ &KozGoPro-Medium&KozGoProVI-Medium&KozGoPr6N-Medium\\
+\cmidrule(l){2-5}
+%<en>\smash{\raisebox{2ex}{\textit{gothic}}}%
+%<ja>\smash{\raisebox{2ex}{\gt ゴシック}}%
+ &bold&KozGoPro-Bold&KozGoProVI-Bold&KozGoPr6N-Bold\\
+ &extra bold&KozGoPro-Heavy&KozGoProVI-Heavy&KozGoPr6N-Heavy\\
+\midrule
+%<en>\textit{rounded gothic}
+%<ja>\gt 丸ゴシック
+&&KozGoPro-Heavy&KozGoProVI-Heavy&KozGoPr6N-Heavy\\
+\bottomrule
+\end{tabular}
+\end{center}
+
+%<en>\newpage
+ \item[hiragino-pro]  Hiragino Pro (Adobe-Japan1-5) fonts.
+%<en>    \\*[-\dimexpr\medskipamount+\baselineskip\relax]
+ \item[hiragino-pron] Hiragino ProN (Adobe-Japan1-5, JIS04-savvy) fonts.
+
+%<*en>
+Hiragino fonts (except Hiragino~Mincho~W2) are bundled with Mac OS~X 10.5 or later.
+Some editions of a Japanese word-processor ``一太郎2012'' includes Hiragino ProN fonts.
+Note that fonts for gothic extra~bold (HiraKakuStd[N]-W8) only contains characters in
+Adobe-Japan1-3 character collection, while others contains those in
+Adobe-Japan1-5 character collection.
+%</en>
+%<*ja>
+ヒラギノフォントは,Mac OS~X以外にも,一太郎2012の上位エディションにもバンドルされている.
+極太ゴシック体として用いるヒラギノ角ゴW8は,Adobe-Japan1-3の範囲しかカバーしていない
+Std/StdNフォントであり,その他はAdobe-Japan1-5対応である.
+
+なお,明朝体細字として用いるヒラギノ明朝体W2はOS~Xや一太郎にはバンドルされておらず,
+別途購入する必要がある.
+%</ja>
+\begin{center}\small
+\begin{tabular}{llll}
+\toprule
+\bf family&\bf series&\tt hiragino-pro&\tt hiragino-pron\\
+\midrule
+ &light&Hiragino~Mincho~Pro~W2&Hiragino~Mincho~ProN~W2\\
+%<en>\textit{mincho}%
+%<ja>\textgt{明朝}%
+ &medium&Hiragino~Mincho~Pro~W3&Hiragino~Mincho~ProN~W3\\
+ &bold&Hiragino~Mincho~Pro~W6&Hiragino~Mincho~ProN~W6\\
+\midrule
+ &&Hiragino~Kaku~Gothic~Pro~W3*&Hiragino~Kaku~Gothic~ProN~W3*\\
+ &\smash{\raisebox{1.5ex}{medium}}
+ &Hiragino~Kaku~Gothic~Pro~W6&Hiragino~Kaku~Gothic~ProN~W6\\
+\cmidrule(l){2-4}
+%<en>\smash{\raisebox{2ex}{\textit{gothic}}}%
+%<ja>\smash{\raisebox{2ex}{\gt ゴシック}}%
+ &bold&Hiragino~Kaku~Gothic~Pro~W6&Hiragino~Kaku~Gothic~ProN~W6\\
+ &extra bold&Hiragino~Kaku~Gothic~Std~W8&Hiragino~Kaku~Gothic~StdN~W8\\
+\midrule
+%<en>\textit{rounded gothic}
+%<ja>\gt 丸ゴシック
+&&Hiragino~Maru~Gothic~Pro~W4&Hiragino~Maru~Gothic~ProN~W4\\
+\bottomrule
+\end{tabular}
+\end{center}
+
+ \item[morisawa-pro]  Morisawa Pro (Adobe-Japan1-4) fonts.
+%<en>    \\*[-\dimexpr\medskipamount+\baselineskip\relax]
+ \item[morisawa-pr6n]  Morisawa Pr6N (Adobe-Japan1-6, JIS04-savvy) fonts.
+\begin{center}\footnotesize
+\begin{tabular}{ll>{\tt}l>{\tt}l}
+\toprule
+\bf family&\bf series&morisawa-pro&morisawa-pr6n\\
+\midrule
+ &medium&A-OTF-RyuminPro-Light.otf&A-OTF-RyuminPr6N-Light.otf\\
+%<en>\smash{\raisebox{1.5ex}{\textit{mincho}}}%
+%<ja>\smash{\raisebox{1.5ex}{\gt 明朝}}%
+ &bold&A-OTF-FutoMinA101Pro-Bold.otf&A-OTF-FutoMinA101Pr6N-Bold.otf\\
+\midrule
+ &medium
+ &A-OTF-GothicBBBPro-Medium.otf&A-OTF-GothicBBBPr6N-Medium.otf\\
+%<en>\textit{gothic}%
+%<ja>\gt ゴシック
+ &bold&A-OTF-FutoGoB101Pro-Bold.otf&A-OTF-FutoGoB101Pr6N-Bold.otf\\
+ &extra bold&A-OTF-MidashiGoPro-MB31.otf&A-OTF-MidashiGoPr6N-MB31.otf\\
+\midrule
+%<en>\textit{rounded gothic}
+%<ja>\gt 丸ゴシック
+&&A-OTF-Jun101Pro-Light.otf&A-OTF-ShinMGoPr6N-Light.otf\\
+\bottomrule
+\end{tabular}
+\end{center}
+
+
+ \item[yu-win]  Yu fonts bundled with Windows~8.1.
+%<en>    \\*[-\dimexpr\medskipamount+\baselineskip\relax]
+ \item[yu-win10]  Yu fonts bundled with Windows~10.
+%<en>    \\*[-\dimexpr\medskipamount+\baselineskip\relax]
+ \item[yu-osx]  Yu fonts bundled with OSX~Mavericks.
+\begin{center}\small
+\begin{tabular}{lllll}
+\toprule
+\bf family&\bf series&\texttt{yu-win}&\texttt{yu-win10}&\texttt{yu-osx}\\
+\midrule
+ &light&YuMincho-Light&YuMincho-Light&(YuMincho~Medium)\\
+%<en>\textit{mincho}%
+%<ja>\textgt{明朝}%
+ &medium&YuMincho-Regular&YuMincho-Regular&YuMincho~Medium\\
+ &bold&YuMincho-Demibold&YuMincho-Demibold&YuMincho~Demibold\\
+\midrule
+ &&YuGothic-Regular*&YuGothic-Regular*&YuGothic~Medium*\\
+ &\smash{\raisebox{1.5ex}{medium}}%
+        &YuGothic-Regular&YuGothic-Medium&YuGothic~Medium\\
+\cmidrule(l){2-5}
+%<en>\textit{gothic}%
+%<ja>\gt ゴシック
+ &bold&YuGothic-Bold&YuGothic-Bold&YuGothic~Bold\\
+ &extra bold&YuGothic-Bold&YuGothic-Bold&YuGothic~Bold\\
+\midrule
+%<en>\textit{rounded gothic}
+%<ja>\gt 丸ゴシック
+&&YuGothic-Bold&YuGothic-Bold&YuGothic~Bold\\
+\bottomrule
+\end{tabular}
+\end{center}
+
+\item[moga-mobo]  MogaMincho, MogaGothic, and MoboGothic.
+%<en>    \\*[-\dimexpr\medskipamount+\baselineskip\relax]
+\item[moga-mobo-ex]  MogaExMincho, MogaExGothic, and MoboExGothic.
+%<en>\par These fonts can be downloaded from \url{http://yozvox.web.fc2.com/}.
+%<ja>これらのフォントは \url{http://yozvox.web.fc2.com/} からダウンロードできる.
+\begin{center}\small
+\begin{tabular}{llll}
+\toprule
+\bf family&\bf series&\bf default, \texttt{90jis}~option&\bf \texttt{jis2004} option\\
+\midrule
+ &medium&Moga90Mincho&MogaMincho\\
+%<en>\smash{\raisebox{1.5ex}{\textit{mincho}}}%
+%<ja>\smash{\raisebox{1.5ex}{\gt 明朝}}%
+ &bold&Moga90Mincho Bold&MogaMincho Bold\\
+\midrule
+ &medium&Moga90Gothic&MogaGothic\\
+%<en>\textit{gothic}%
+%<ja>\gt ゴシック
+ &bold&Moga90Gothic Bold&MogaGothic Bold\\
+ &extra bold&Moga90Gothic Bold&MogaGothic Bold\\
+\midrule
+%<en>\textit{rounded gothic}
+%<ja>\gt 丸ゴシック
+&&Mobo90Gothic&MoboGothic\\
+\bottomrule
+\end{tabular}
+\end{center}
+%<en>When \texttt{moga-mobo-ex} is specified, the font ``MogaEx90Mincho'' etc.\ are used.
+%<ja>\texttt{moga-mobo-ex}オプション指定時にはMogaEx90MinchoなどのExが名前についたフォントが使われる.
+
+\item[ume]  Ume Mincho and Ume Gothic.
+%<en>\par These fonts can be downloaded from\\\hfill \url{https://ja.osdn.net/projects/ume-font/wiki/FrontPage}.
+%<ja>これらのフォントは \url{https://ja.osdn.net/projects/ume-font/wiki/FrontPage} からダウンロードできる.
+\begin{center}\small
+\begin{tabular}{lll}
+\toprule
+\bf family&\bf series&\bf default\\
+\midrule
+ &medium&Ume Mincho\\
+%<en>\smash{\raisebox{1.5ex}{\textit{mincho}}}%
+%<ja>\smash{\raisebox{1.5ex}{\gt 明朝}}%
+ &bold&Ume Mincho\\
+\midrule
+ &&Ume Gothic*\\
+ &\smash{\raisebox{1.5ex}{medium}}&Ume Gothic O5\\
+\cmidrule(l){2-3}
+%<en>\textit{gothic}%
+%<ja>\gt ゴシック
+ &bold&Ume Gothic O5\\
+ &extra bold&Ume Gothic O5\\
+\midrule
+%<en>\textit{rounded gothic}
+%<ja>\gt 丸ゴシック
+&&Ume Gothic O5\\
+\bottomrule
+\end{tabular}
+\end{center}
+
+ \item[sourcehan]  Source Han Serif and Source Han Sans fonts (Language-specific OTF \textit{or} OTC)
+%<en>    \\*[-\dimexpr\medskipamount+\baselineskip\relax]
+ \item[sourcehan-jp]  Source Han Serif JP and Source Han Sans JP fonts (Region-specific Subset OTF)
+\begin{center}\small
+\def\AD#1#2{Source Han #1 #2&Source Han #1 JP #2}%
+\begin{tabular}{lllll}
+\toprule
+\bf family&\bf series&\texttt{sourcehan}&\texttt{sourcehan-jp}\\
+\midrule
+ &light&\AD{Serif}{Light}\\
+%<en>\textit{mincho}%
+%<ja>\textgt{明朝}%
+ &medium&\AD{Serif}{Regular}\\
+ &bold&\AD{Serif}{Bold}\\
+\midrule
+ &&\AD{Sans}{Regular*}\\
+ &\smash{\raisebox{1.5ex}{medium}}
+ &\AD{Sans}{Medium}\\
+\cmidrule(l){2-4}
+%<en>\smash{\raisebox{2ex}{\textit{gothic}}}%
+%<ja>\smash{\raisebox{2ex}{\gt ゴシック}}%
+ &bold&\AD{Sans}{Bold}\\
+ &extra bold&\AD{Sans}{Heavy}\\
+\midrule
+%<en>\textit{rounded gothic}
+%<ja>\gt 丸ゴシック
+&&\AD{Sans}{Heavy}\\
+\bottomrule
+\end{tabular}
+\end{center}
+
+
+ \item[noto-otc]  Noto Serif CJK and Noto Sans CJK fonts (OTC)
+%<en>    \\*[-\dimexpr\medskipamount+\baselineskip\relax]
+ \item[noto-otf]  Noto Serif CJK and Noto Sans CJK fonts (Language-specific OTF)
+\begin{center}\small
+\def\AD#1#2{Noto #1 CJK #2&Noto #1 CJK JP #2}%
+\begin{tabular}{lllll}
+\toprule
+\bf family&\bf series&\texttt{noto-otc}&\texttt{noto-otf}\\
+\midrule
+ &light&\AD{Serif}{Light}\\
+%<en>\textit{mincho}%
+%<ja>\textgt{明朝}%
+ &medium&\AD{Serif}{Regular}\\
+ &bold&\AD{Serif}{Bold}\\
+\midrule
+ &&\AD{Sans}{Regular*}\\
+ &\smash{\raisebox{1.5ex}{medium}}
+ &\AD{Sans}{Medium}\\
+\cmidrule(l){2-4}
+%<en>\smash{\raisebox{2ex}{\textit{gothic}}}%
+%<ja>\smash{\raisebox{2ex}{\gt ゴシック}}%
+ &bold&\AD{Sans}{Bold}\\
+ &extra bold&\AD{Sans}{Black}\\
+\midrule
+%<en>\textit{rounded gothic}
+%<ja>\gt 丸ゴシック
+&&\AD{Sans}{Black}\\
+\bottomrule
+\end{tabular}
+\end{center}
+
+\end{cslist}
+%<en>\subsubsection{Presets which do not support multi weights}
+%<ja>\subsubsection{単ウェイト用プリセット一覧}
+\label{sssec:ltjpreset-single}
 
-\begin{description}
 %<*en>
- \item[Group-ruby]
-By default, ruby characters (the second argument of \cs{ruby})
-are attached to base characters (the first argument), as one object.
-This type of ruby is called \emph{group-ruby}.
+Next, we describe settings for using only single weight.
 %</en>
 %<*ja>
- \item[グループルビ] 標準ではグループルビの形で組まれる.第1引数に親文字,
-第2引数にルビを記述する.
+次に,単ウェイト用の設定を述べる.この4設定では
+明朝体太字・丸ゴシック体はゴシック体と同じフォントが用いられる.
 %</ja>
-\begin{LTXexample}[width=0.3\textwidth]
-東西線\ruby{妙典}{みようでん}駅は……\\
-東西線の\ruby{妙典}{みようでん}駅は……\\
-東西線の\ruby{妙典}{みようでん}という駅……\\
-東西線\ruby{葛西}{かさい}駅は……
-\end{LTXexample}
-%<*en>
-As the above example, ruby hangover is allowed on the Hiragana before/after
-its base characters.
-%</en>
-%<ja> この例のように,標準では前後の平仮名にルビ全角までかかるようになっている.
-
+\par\nobreak\medskip
+{\centering\small
+\begin{tabular}{lllll}
+\toprule
+&\tt noembed&\tt ipa&\tt ipaex&\tt ms\\
+\midrule
 %<*en>
-\item[Mono-ruby]
-To attach ruby characters to each base characters (\emph{mono-ruby}),
-one should use \cs{ruby} multiple times:
+\it mincho&Ryumin-Light (non-embedded)
+&IPA Mincho&IPAex Mincho&MS Mincho\\
+\it gothic&GothicBBB-Medium (non-embedded)
+&IPA Gothic&IPAex Gothic&MS Gothic\\
 %</en>
 %<*ja>
- \item[モノルビ] 親文字を1文字にするとモノルビとなる.
-2文字以上の熟語をモノルビの形で組みたい場合は,面倒でも
-その数だけ \cs{ruby} を書く必要がある.
+\gtfamily 明朝&Ryumin-Light(非埋込)
+&IPA明朝&IPAex明朝&MS明朝\\
+\gtfamily ゴシック&GothicBBB-Medium(非埋込)
+&IPAゴシック&IPAexゴシック&MSゴシック\\
 %</ja>
-\begin{LTXexample}[width=0.3\textwidth]
-東西線の\ruby{妙}{みよう}\ruby{典}{でん}駅は……
-\end{LTXexample}
+\bottomrule
+\end{tabular}\par\medskip}
 
+%<en>\subsubsection{Presets which use HG fonts}
+%<ja>\subsubsection{HGフォントを使うプリセット}
+\label{sssec:ltjpreset-hg}
 %<*en>
- \item[Jukugo-ruby]
-Vertical bar~\verb+|+ denotes a boundary of \emph{groups}.
+We can use HG~fonts bundled with Microsoft~Office for realizing multiple weights.
+In the table below, starred fonts (e.g., IPA~Gothic*) are used
+only if \texttt{jis2004} or \texttt{nodeluxe} option is spefified.
 %</en>
 %<*ja>
- \item[熟語ルビ] 引数内の縦棒 \verb+|+ はグループの区切りを表し,
-複数グループのルビは熟語ルビとして組まれる.
-\cite{x4051}にあるように,
-どのグループでも「親文字」が対応するルビ以上の長さの場合は
-各グループごとに,そうでないときは全体をまとめて1つのグループルビとして組まれる.
-\cite{jlreq}で規定されている組み方とは異なるので注意.
+すぐ前に書いた単ウェイト用設定を,Microsoft Office等に付属するHGフォントを使って
+多ウェイト化した設定もある.以下の表では,*~付きのフォント(例:IPAゴシック*)は
+\texttt{jis2004}と\texttt{nodeluxe}のいずれかのオプションが有効になっているときに使われる.
 %</ja>
-\begin{LTXexample}
-\ruby{妙|典}{みよう|でん}\
-\ruby{葛|西}{か|さい}\
-\ruby{神楽|坂}{かぐら|ざか}
-\end{LTXexample}
+\par\nobreak\medskip
+{\centering\small
+\begin{tabular}{lllll}
+\toprule
+\textbf{family}&\textbf{series}&\tt ipa-hg&\tt ipaex-hg&\tt ms-hg\\
+\midrule
 %<*en>
-If there are multiple groups in one \cs{ruby} call,
-A linebreak between two groups is allowed.
-%</en>
-%<ja> 複数ルビではグループとグループの間で改行が可能である.
-\begin{LTXexample}[width=0.3\textwidth]
-\vbox{\hsize=6\zw\noindent
-  \hbox to 2.5\zw{}\ruby{京|急|蒲|田}{けい|きゆう|かま|た}
-  \hbox to 2.5\zw{}\ruby{京|急|蒲|田}{けい|きゆう|かま|た}
-  \hbox to   3\zw{}\ruby{京|急|蒲|田}{けい|きゆう|かま|た}
-}
-\end{LTXexample}
-\end{description}
+&medium&IPA Mincho&IPAex Mincho&MS Mincho\\
+\smash{\raisebox{1.5ex}{\textit{mincho}}}%
+&bold&HG Mincho E&HG Mincho E&HG Mincho E\\\midrule
+&&IPA Gothic*&IPAex Gothic*&MS Gothic*\\
+&\smash{\raisebox{1.5ex}{medium}}%
+&HG Gothic M&HG Gothic M&HG Gothic M\\\cmidrule{2-5}
+\textit{gothic}&bold&HG Gothic E&HG Gothic E&HG Gothic E\\\cmidrule{2-5}
+&extra bold&HG Soei Kaku Gothic UB&HG Soei Kaku Gothic UB&HG Soei Kaku Gothic UB\\\midrule
+\textit{rounded gothic}&&
+HG MaruGothic M PRO&HG MaruGothic M PRO&HG MaruGothic M PRO\\
+%</en>
+%<*ja>
+&medium&IPA明朝&IPAex明朝&MS明朝\\
+\smash{\raisebox{1.5ex}{\textgt{明朝}}}%
+&bold&HG明朝E&HG明朝E&HG明朝E\\\midrule
+&&IPAゴシック*&IPAexゴシック*&MSゴシック*\\
+&\smash{\raisebox{1.5ex}{medium}}%
+&HGゴシックM&HGゴシックM&HGゴシックM\\\cmidrule{2-5}
+\textgt{ゴシック}&bold&HGゴシックE&HGゴシックE&HGゴシックE\\\cmidrule{2-5}
+&extra bold&HG創英角ゴシックUB&HG創英角ゴシックUB&HG創英角ゴシックUB\\\midrule
+\textgt{丸ゴシック}&&
+HG丸ゴシックM-PRO&HG丸ゴシックM-PRO&HG丸ゴシックM-PRO\\
+%</ja>
+\bottomrule
+\end{tabular}\par\medskip}
 
 %<*en>
-If the width of ruby characters are longer than that of base characters,
-\cs{ruby} automatically selects the appropriate form
-among the line-head form, the line-middle form, and the line-end form.
+Note that HG~Mincho~E, HG~Gothic~E, HG Soei Kaku Gothic UB, and HG Maru Gothic PRO
+are internally specified by:
+\begin{description}
+\item[default] by font name (\texttt{HGMinchoE}, etc.).
+\item[{\tt 90jis}] by file name (\texttt{hgrme.ttc}, \texttt{hgrge.ttc}, \texttt{hgrsgu.ttc}, \texttt{hgrsmp.ttf}).
+\item[{\tt jis2004}] by file name (\texttt{hgrme04.ttc}, \texttt{hgrge04.ttc}, \texttt{hgrsgu04.ttc}, \texttt{hgrsmp04.ttf}).
+\end{description}
 %</en>
 %<*ja>
-また,ルビ文字のほうが親文字よりも長い場合は,自動的に
-行頭形・行中形・行末形のいずれか適切なものを選択する.
+なお,HG明朝E・HGゴシックE・HG創英角ゴシックUB・HG丸ゴシック体PROの4つについては,内部で
+\begin{description}
+\item[標準] フォント名(\texttt{HGMinchoE} など)
+\item[{\tt 90jis}指定時] ファイル名 (%
+\texttt{hgrme.ttc}, \texttt{hgrge.ttc}, \texttt{hgrsgu.ttc}, \texttt{hgrsmp.ttf})
+\item[{\tt jis2004}指定時] ファイル名 (%
+\texttt{hgrme04.ttc}, \texttt{hgrge04.ttc}, \texttt{hgrsgu04.ttc}, \texttt{hgrsmp04.ttf})
+\end{description}
+として指定を行っているので注意すること.
 %</ja>
-\begin{LTXexample}[width=0.3\textwidth]
-\vbox{\hsize=8\zw\noindent
-\null\kern3\zw ……を\ruby{承}{うけたまわ}る
-     \kern1\zw ……を\ruby{承}{うけたまわ}る\\
-\null\kern5\zw ……を\ruby{承}{うけたまわ}る
-}
-\end{LTXexample}
 
+%<en>\subsubsection{Define/Use Custom Presets}
+%<ja>\subsubsection{新たなプリセットの定義}
 
 %<*ja>
-\subsection{\Pkg{lltjext}}
-\pLaTeX では縦組用の拡張として \Pkg{plext} パッケージが用意されていたが,
-それを\LuaTeX-ja用に書きなおしたものが本追加パッケージ \Pkg{lltjext} である.
-
-従来の \Pkg{plext} パッケージとの違いは,
-{\catcode`\<=12
-\begin{itemize}
- \item 組方向オプション \texttt{<y>}(横組),\texttt{<t>}(縦組),
-\texttt{<z>}\ の他に\ \texttt{<d>}(dtou方向),\texttt{<u>}(utod方向)を追加した.
-\texttt{<z>} と \texttt{<u>} の違いは,\texttt{<z>} が(\Pkg{plext} パッケージと同様に)
-周囲の組方向が縦組のときにしか意味を持たない
-       のに対し,\texttt{<u>} にはそのような制限がないことである.
-
- \item \Pkg{plext} パッケージでは,表組(\texttt{tabular} 環境,\texttt{align} 環境等)や
-\texttt{minipage} 環境,\cs{parbox} 命令において,
-垂直位置指定 \texttt{[t]},~\texttt{[b]} の挙動が非読み込み時と微妙に変わることがあった.
-
-\Pkg{lltjext} パッケージでは,垂直位置指定が\LaTeXe と同様の挙動(以下に示す)に
-なるように修正した.
-\begin{itemize}
- \item \texttt{[t]} オプション指定時は,ボックスのベースラインが中身の1行目のベースライン
-       (1行目の上に罫線などが来た時は,ボックスの上端)に一致するように配置する.
- \item \texttt{[b]} オプション指定時は,ボックスのベースラインが中身の最終行のベースライン
-       (中身の最後が罫線などの時は,ボックスの下端)に一致するように配置する.
- \item それ以外のときは,ボックスの中央が「数式の軸」に一致するように配置する.
-\end{itemize}
-
- \item 連数字用命令 \cs{rensuji} における位置合わせオプション \texttt{[l]}, \texttt{[c]},
-       \texttt{[r]} の挙動を若干変更した.
-
-\end{itemize}
-}
+バージョン********.0以降では,自分で新たなプリセットを定義することが出来るようになった.
+以下に説明する2命令はプリアンブルでしか実行できない.
 %</ja>
 %<*en>
-\subsection{\texttt{lltjext.sty}}
-\pLaTeX\ supplies additional macros for vertical writing in the \Pkg{plext} package.
-The \Pkg{lltjext} package which we want to describe here is the \LuaTeX-ja
-counterpart of the \Pkg{plext} package.
+From version~********.0, one can define new presets using \cs{ltjnewpreset},
+and use them by \cs{ltjapplypreset}. These two commands can only be used in the preamble.
 %</en>
+\begin{cslist}
+ \item[\cs{ltjnewpreset}\{<name>\}\{<specification>\}]
+%<*ja>
+  新たに<name>という名称のプリセットを定義する.この名称は,
+  すでに定義されているプリセット名や,
+  \ref{sssec:ltjpreset-general}で定義されているオプション,さらに
+  次の9つと重複してはならない.
+  \begin{quote}
+       \ttfamily
+       mc mc-l mc-m mc-bx gt gt-m gt-bx gt-eb mg-m
+  \end{quote}
+
+  <specification>は,プリセット名や以下のキー達のコンマ区切りリストを指定する:
+  \begin{description}
+   \item[\ttfamily mc-l=<font>] 明朝体細字(\cs{mcfamily}\cs{ltseries})
+   \item[\ttfamily mc-m=<font>] 明朝体中字(\cs{mcfamily}\cs{mdseries})
+   \item[\ttfamily mc-bx=<font>] 明朝体太字(\cs{mcfamily}\cs{bfseries})
+   \item[\ttfamily gt-m=<font>] ゴシック体中字(\cs{gtfamily}\cs{mdseries})
+   \item[\ttfamily gt-bx=<font>] ゴシック体太字(\cs{gtfamily}\cs{bfseries})
+   \item[\ttfamily gt-eb=<font>] ゴシック体太字(\cs{gtfamily}\cs{ebseries})
+   \item[\ttfamily mg-m=<font>] 丸ゴシック体(\cs{mgfamily})
+   \item[\ttfamily mc=<font>] 明朝体の細字・中字・太字全部を設定.
+       以下を指定したことと同じである:
+       \begin{quote}
+         \ttfamily mc-l=<font>, mc-m=<font>, mc-bx=<font>
+       \end{quote}
+   \item[\ttfamily gt=<font>] ゴシック体の中字・太字・極太全部を設定.
+       以下を指定したことと同じである:
+       \begin{quote}
+         \ttfamily gt-m=<font>, gt-bx=<font>, gt-eb=<font>
+       \end{quote}
+  \end{description}
+  なお,パッケージ読み込み時に \texttt{deluxe} が有効でない場合は,
+  上記9キーのうち\texttt{mc}, \texttt{gt}しか実質的に意味を持たない.  
+%</ja>
+%<*en>
+  Define new preset~<name>. This <name> cannot be same as other presets,
+  options described in Subsubsection~\ref{sssec:ltjpreset-general}, nor
+  following nine strings:
+  \begin{quote}
+       \ttfamily
+       mc mc-l mc-m mc-bx gt gt-m gt-bx gt-eb mg-m
+  \end{quote}
 
+  <specification> is a comma-separated list which consists of
+  other presets and/or the following keys:
+  \begin{description}
+   \item[\ttfamily mc-l=<font>] mincho light
+   \item[\ttfamily mc-m=<font>] mincho medium
+   \item[\ttfamily mc-bx=<font>] mincho bold
+   \item[\ttfamily gt-m=<font>] gothic medium
+   \item[\ttfamily gt-bx=<font>] gothic bold
+   \item[\ttfamily gt-eb=<font>] gothic extra~bold
+   \item[\ttfamily mg-m=<font>] rounded gothic
+   \item[\ttfamily mc=<font>] Same as
+       \begin{quote}
+         \ttfamily mc-l=<font>, mc-m=<font>, mc-bx=<font>
+       \end{quote}
+   \item[\ttfamily gt=<font>] Same as
+       \begin{quote}
+         \ttfamily gt-m=<font>, gt-bx=<font>, gt-eb=<font>
+       \end{quote}
+  \end{description}
+  If \texttt{deluxe} is not specified at loading the package,
+  only \texttt{mc}~and~\texttt{gt} keys (among above 9~keys) have a meaning.
+%</en>
+ \item[\cs{ltjnewpreset}*\{<name>\}\{<specification>\}]
 %<*ja>
-念の為,本 \Pkg{lltjext} パッケージで追加・変更している命令の一覧を載せておく.
-\begin{cslist}
-\item[tabular\textrm{, }array\textrm{, }minipage環境]
-これらの環境は,
-\begin{lstlisting}
-\begin{tabular}<dir>[pos]{table spec} ... \end{tabular}
-\begin{array}<dir>[pos]{table spec}   ... \end{array}
-\begin{minipage}<dir>[pos]{width}     ... \end{minipage}
-\end{lstlisting}
-のように,組方向オプション \texttt{\<dir\>} が拡張されている.
-既に述べたように,組方向オプションに指定できる値は以下の5つであり,
-それ以外を指定した時や無指定時は周囲の組方向と同じ組方向になる.
-\begin{description}
- \item[y] 横組(\cs{yoko})
- \item[t] 縦組(\cs{tate})
- \item[z] 周囲が縦組の時はutod方向,それ以外はそのまま
- \item[d] dtou方向
- \item[u] utod方向
-\end{description}
-\item[\cs{parbox}\<<dir>\>{[<pos>]}\{<width>\}\{<contents>\}]
-\cs{parbox} 命令も同様に,組方向の指定ができるように拡張されている.
+  \cs{ltjnewpreset}とほぼ同じであるが,こちらはすでに定義されているプリセット名
+  を<name>に指定した場合にはエラーを出さずに定義を置き換える.
+%</ja>
+%<*en>
+  Almost same as \cs{ltjnewpreset}. However, if <name> matches a preset which already defined,
+  this command simply overwrite it.
+%</en>
+ \item[\cs{ltjapplypreset}\{<name>\}]
+%<ja> <name>で指定されたプリセットを使って和文フォントを設定する.
+%<en> Set Japanese font families using preset~<name>.
+\end{cslist}
 
-\item[\cs{pbox}\<<dir>\>{[<width>][<pos>]}\{<contents>\}]
-組方向<dir>で<contents>の中身をLRモードで組む命令である.
-<width>が正の値であるときは,ボックス全体の幅がその値となる.
-その際,中身は<pos>の値に従い,左寄せ(\texttt{l}),右揃え(\texttt{r}),
-中央揃え(それ以外)される.
-\item[picture環境]
-図表作成に用いる \texttt{picture} 環境も,
+%<*ja>
+なお,\cs{ltjnewpreset}の第二引数<specification>に含まれる
+プリセット名は\cs{ltjnewpreset}の時点で定義されている必要はなく,
+\cs{ltjapplypreset}で実際に使うときに定義されていれば良い.
+そのため,次のような記述も可能である:
 \begin{lstlisting}
-\begin{picture}<dir>(x_size, y_size)(x_offset,y_offset)
-  ...
-\end{picture}
+  \ltjnewpreset{hoge}{piyo,mc-bx=HiraMinProN-W6}
+  \ltjnewpreset{piyo}{mg-m=HiraMaruProN-W4}
+  \ltjapplypreset{hoge}
 \end{lstlisting}
-と組方向が指定できるように拡張されている.
-$x$成分の増加方向は字送り方向,$y$成分の増加方向は行送り方向の\emph{反対方向}となる.
-\Pkg{plext} パッケージと同様に
-内部ではベースライン補正(\Param{yalbaselineshift}パラメータなど)の影響を受けないように,
-\cs{put},~\cs{line}, \cs{vector}, \cs{dashbox}, \cs{oval},~\cs{circle}も
-ベースライン補正を受けないように再定義されている.
-
-\item[\cs{rensuji}{[<pos>]}\{<contents>\}\textrm{, }\cs{rensujiskip}]
-
-\item[\cs{Kanji}\{<counter\_name>\}]
-
-\item[\cs{kasen}\{<contents>\}\textrm{, }\cs{bou}\{<contents>\}\textrm{,
-                    }\cs{boutenchar}]
 
-\item[参照番号]
-\end{cslist}
+\paragraph{注意}
+\cs{ltjnewpreset}で定義したプリセットには以下の制限がある.
+\begin{itemize}
+  \item 非埋め込みのフォントを指定することはできない.
+  \item \texttt{ipa-hg}などのいくつかのプリセットでは
+  「\texttt{90jis}, \texttt{jis2004}が指定されているか否かでフォントの指定を変える」処理が
+  行われていたが,\cs{ltjnewpreset}で定義したプリセットではこの処理は働かない.
+  HGフォントやモガ明朝などを使うプリセットを定義する場合には注意すること.
+\end{itemize}
 %</ja>
 %<*en>
-\begin{cslist}
-\item[tabular\textrm{, }array\textrm{, }minipage\textrm{ environments}]
-These environments are extended by \texttt{\<dir\>}, which specifies the direction,
-as follows:
+Note that \cs{ltjnewpreset} does not ``expand'' the definition to define a preset.
+This means that one can write as the following:
 \begin{lstlisting}
-\begin{tabular}<dir>[pos]{table spec} ... \end{tabular}
-\begin{array}<dir>[pos]{table spec}   ... \end{array}
-\begin{minipage}<dir>[pos]{width}     ... \end{minipage}
+  \ltjnewpreset{hoge}{piyo,mc-bx=HiraMinProN-W6}
+  \ltjnewpreset{piyo}{mg-m=HiraMaruProN-W4}
+  \ltjapplypreset{hoge}
 \end{lstlisting}
-This option permits one of the following five values. If none of them is specified,
-the direction inside the environment is same as that outside the enviromnent.
-\begin{description}
- \item[y] \emph{yoko} direction (horizontal writing)
- \item[t] \emph{tate} direction (vertical writing)
- \item[z] \emph{utod} direction if direction outside the env.\ is \emph{tate}.
- \item[d] \emph{dtou} direction
- \item[u] \emph{utod} direction
-\end{description}
-\item[\cs{parbox}\<<dir>\>{[<pos>]}\{<width>\}\{<contents>\}]
-\cs{parbox} command is also extended by \texttt{\<dir\>}.
-
-\item[\cs{pbox}\<<dir>\>{[<width>][<pos>]}\{<contents>\}]
-This commands typeset <contents> in LR-mode, in <dir> direction.
-If <width> is positive, the width of the box becomes this <width>.
-In this case, <contents> will be aligned \dots
-
-\item[picture\textrm{\ environment}]
-
-\item[\cs{rensuji}{[<pos>]}\{<contents>\}\textrm{, }\cs{rensujiskip}]
-
-\item[\cs{Kanji}\{<counter\_name>\}]
-
-\item[\cs{kasen}\{<contents>\}\textrm{, }\cs{bou}\{<contents>\}\textrm{,
-                    }\cs{boutenchar}]
 
-\item[参照番号]
-\end{cslist}
+\paragraph{Restrictions}
+Presets which are defined by \cs{ltjnewpreset} have following restrictions:
+\begin{itemize}
+  \item One cannot specify non-embedded fonts (such as Ryumin-Light).
+  \item Some presets, such as \texttt{ipa-hg}, have a feature that
+  fonts are changed according to whether \texttt{90jis}~or~\texttt{jis2004} is speified.
+  This feature is not usable in presets which are defined by \cs{ltjnewpreset}.
+\end{itemize}
 %</en>
 
 
-
+\clearpage
 %<en>\part{Implementations}
 %<ja>\part{実装}
 \label{part-imp}
@@ -7585,7 +8238,7 @@ for its label before the actual contents. So \dots
 %</en>
 %<*ja>
 「段落の開始」を意味するノード.
-list環境,itemize環境などにおいて,\cs{item} で始まる各項目は……
+\texttt{list}環境,\texttt{itemize}環境などにおいて,\cs{item} で始まる各項目は……
 %</ja>
 
 \item[\textit{direction}]
@@ -7601,7 +8254,7 @@ These whatsits will be removed during the process of inserting \textbf{JAglue}s.
 
 %<en>\subsection{Stack system of \LuaTeX-ja}
 %<ja>\subsection{\LuaTeX-jaのスタックシステム}
-\label{ssec-stack}
+\label{ssec:stack}
 
 %<en>\paragraph{Background}
 %<ja>\paragraph{背景}
@@ -7625,7 +8278,7 @@ source:
 \end{LTXexample}
 
 %<*en>
-As described in Subsection~\ref{ssec-param}, the only effective value of
+As described in Subsection~\ref{ssec:param}, the only effective value of
 \Param{kanjiskip} in an hbox is the latest value, so the value of
 \Param{kanjiskip} which applied in the entire hbox should be 5\,pt.
 However, by the implementation method of \LuaTeX, this ``5\,pt'' cannot be
@@ -7633,7 +8286,7 @@ known from any callbacks.  In the \texttt{tex/packaging.w}, which is a
 file in the source of \LuaTeX, there are the following codes:
 %</en>
 %<*ja>
-\ref{ssec-param}節で述べたように,あるhboxの中で効力を持つ
+\ref{ssec:param}節で述べたように,あるhboxの中で効力を持つ
 \Param{kanjiskip}の値は最後に現れた値のみであり,したがってボックス全体に適用される
 \Param{kanjiskip}は5\,ptであるべきである.しかし,\LuaTeX の実
 装を観察すると,この5\,ptという長さはどのコールバックからも知ることはできないことがわかる.
@@ -7867,7 +8520,7 @@ as in \Pkg{luatexja-adjust}.
 
 %<*en>
 \paragraph{Setting parameters}
-Figure~\ref{fig:setpar-def} shows the \emph{most outer} definition of
+\autoref{fig:setpar-def} shows the \emph{most outer} definition of
 two commands,
 \cs{ltjsetparameter} and \cs{ltjglobalsetparameter}.
 Most important part is the last \cs{setkeys},
@@ -7894,7 +8547,7 @@ but also by the value of \cs{globaldefs}.
 %</en>
 %<*ja>
 \paragraph{パラメータの設定}
-\cs{ltjsetparameter} と,\cs{ltjglobalsetparameter} の定義は図\ref{fig:setpar-def}の
+\cs{ltjsetparameter} と,\cs{ltjglobalsetparameter} の定義は\autoref{fig:setpar-def}の
 のようになっている.
 本質的なのは最後の \cs{setkeys} で,これは\Pkg{xkeyval}パッケージの提供する命令である.
 
@@ -7930,7 +8583,7 @@ function luatexja.unary_pars.hoge (t)
 end
 \end{lstlisting}
 Here the argument of \verb+luatexja.unary_pars.hoge+ is
-the stack level of \LuaTeX-ja's stack system (see Subsection~\ref{ssec-stack}).
+the stack level of \LuaTeX-ja's stack system (see Subsection~\ref{ssec:stack}).
 
 On the other hand, for parameters that need an additional argument
 (this must be an integer), one have to define a function in
@@ -7961,7 +8614,7 @@ function luatexja.unary_pars.hoge (t)
 end
 \end{lstlisting}
 を実行すると,\verb+\ltjgetparameter{hoge}+ は \texttt{42} という\emph{文字列}を返す.
-関数 \verb+luatexja.unary_pars.hoge+ の引数$t$は,\ref{ssec-stack}節で述べた
+関数 \verb+luatexja.unary_pars.hoge+ の引数$t$は,\ref{ssec:stack}節で述べた
 \LuaTeX-jaのスタックシステムにおけるスタックレベルである.
 戻り値はいかなる値であっても,最終的には文字列として出力されることに注意.
 
@@ -8007,7 +8660,7 @@ internal states are as follows:
 The first three states---$N$,~$S$, and~$M$---are as same as \TeX's input
 processor.  State~$K$ is similar to state~$M$, and is entered after
 Japanese characters.  The diagram of state transitions are indicated in
-Figure~\ref{fig-ptexipro}.  Note that \pTeX\ doesn't leave state~$K$
+\autoref{fig:ptexipro}.  Note that \pTeX\ doesn't leave state~$K$
 after ``beginning/ending of a group'' characters.
 %</en>
 
@@ -8026,7 +8679,7 @@ after ``beginning/ending of a group'' characters.
 \item State~$M$: 行中.
 \item State~$K$: 行中(和文文字の後).
 \end{itemize}
-また,状態遷移は,図\ref{fig-ptexipro}のようになっており,図中の数字は
+また,状態遷移は,\autoref{fig:ptexipro}のようになっており,図中の数字は
 カテゴリーコードを表している.最初の3状態は\TeX の入力処理部と同じであり,
 図中から状態$K$と「$j$」と書かれた矢印を取り除けば,\TeX の入力処理部と同
 じものになる.
@@ -8108,7 +8761,7 @@ 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}
 
 
@@ -8273,6 +8926,8 @@ u
 
 \def\OA{$\text{\sf O}_{\text{\sf A}}$}
 \def\OB{$\text{\sf O}_{\text{\sf B}}$}
+\def\NA{$\text{\sf N}_{\text{\sf A}}$}
+\def\NB{$\text{\sf N}_{\text{\sf B}}$}
 \begin{defn}
 %<*en>
 A \emph{cluster} is consecutive nodes in one of the following forms,
@@ -8467,7 +9122,7 @@ JFMグルーの挿入が行われない(\Param{xkanjiskip},~\Param{kanjiskip}
 \item[欧文] リスト中に直接/hboxの中身として出現している「\textbf{JAchar}以外の文字」.次の3つの場合が該当:
 \begin{itemize}
 \item \textit{id}が\textit{id\_glyph}である.
-\item \textit{id}が\textit{id\_math}である.
+\item \textit{id}ã\81\8c\textit{id\_math}ã\81§ã\81\82ã\82\8bï¼\88ã\81¤ã\81¾ã\82\8aã\81\93ã\81®ã\82¯ã\83©ã\82¹ã\82¿ã\81¯1ã\81¤ã\81®æ\96\87中æ\95°å¼\8fã\82\92ã\81ªã\81\99ï¼\89ï¼\8e
 \item \textit{id}が\textit{id\_pbox}か\textit{id\_hlist}か\textit{id\_disc}であって,$\mathit{Np}.\mathit{head}$が\textbf{ALchar}.
 \end{itemize}
 \item[箱] box,またはそれに類似するもの.次の2つが該当:
@@ -8523,7 +9178,7 @@ $g$は「文字コード \texttt{'boxbdd'} の文字」と\textit{Np}の間に
 \Param{kcatcode}の最下位ビットはこの\Param{jcharwidowpenalty}用にのみ利用される.}.
 
 \subsection{概観と典型例:2つの「和文A」の場合}
-\label{ssec-cluster-wa}
+\label{ssec:cluster-wa}
 先に述べたように,2つの隣り合ったクラスタ,\textit{Nq}と\textit{Np}の間には,
 ペナルティ,\cs{vadjust},whatsitなど,行組版には関係しないものがある.模式的に表すと,
 \[
@@ -8689,7 +9344,7 @@ $a$は禁則処理用に\textit{Nq}と\textit{Np}の間に加えられるべき
 \sf 和文A&
 \gkf{E}{M→K}{PN}&
 \gkf{---}{\OA →K}{PN}&
-\gkf{---}{\OA →X}{PN}&
+\gkf{---}{\NA →X}{PN}&
 \gkf{---}{\OA}{PA}&
 \gkf{---}{\OA}{PN}&
 \gkf{---}{\OA}{PS}\\
@@ -8698,7 +9353,7 @@ $a$は禁則処理用に\textit{Nq}と\textit{Np}の間に加えられるべき
 \gkf{---}{K}{PS}&
 \gkf{---}{X}{PS}\\
 \sf 欧文&
-\gkf{E}{\OB →X}{PA}&
+\gkf{E}{\NB →X}{PA}&
 \gkf{---}{X}{PS}\cr
 \sf 箱&\gkf{E}{\OB}{PA}\\
 \sf glue&\gkf{E}{\OB}{PN}\\
@@ -8744,26 +9399,34 @@ If this attempt fails, \LuaTeX-ja use the method ``\textsf{\Param{kanjiskip}~[K]
 \end{table}
 
 \subsection{その他の場合}
-本節の内容は表\ref{tab-jfmglue}にまとめてある.
+本節の内容は\autoref{tab-jfmglue}にまとめてある.
 
 \paragraph{和文Aと欧文の間}
 \textit{Nq}が\textsf{和文A}で,\textit{Np}が\textsf{欧文}の場合,JFMグルー挿入処理は次のようにして行われる.
 \begin{itemize}
-\item 「右空白」については,まず以下に述べる\textsf{Boundary-B~[\OB]}により空白を決定しようと試みる.
+\item 「右空白」については,まず以下に述べる\textsf{欧文境界B~[\NB]}により空白を決定しようと試みる.
 それが失敗した場合は,\textsf{\Param{xkanjiskip}~[X]}によって定める.
 %\item 「左空白」については,既に述べた\textsf{line-end~[E]}をそのまま採用する.それに伴う「右空白」の補正も%同じ.
 \item 禁則用ペナルティも,以前述べた\textsf{P-normal~[PN]}と同じである.
 \end{itemize}
 \begin{description}
-\item[Boundary-B~{[\OB]}] \textbf{JAchar}と「\textbf{JAchar}でないもの」との間に入る空白を以下によって求め,
-未定義でなければそれを「右空白」として採用する.
-\textsf{JFM-origin~[M]}の変種と考えて良い.
-これによって定まる空白の典型例は,和文の閉じ括弧と欧文文字の間に入る半角アキである.
+\item[欧文境界B~{[\NB]}] 以下で求めた量を「右空白」として採用する.
+この処理は\textsf{JFM-origin~[M]}の変種と考えて良く,
+典型例は「和文の閉じ括弧と欧文文字の間に入る半角アキ」である.
 \begin{enumerate}
 \item もし両クラスタの間で \cs{inhibitglue} が実行されていた場合%
-(証としてwhatsitノードが自動挿入される),「右空白」は未定義.
+(証としてwhatsitノードが自動挿入される),未定義.
 \item そうでなければ,
-\textit{Nq}と「文字コードが {\tt'jcharbdd'} の文字」との間に入るグルー/カーンとして定まる.
+\textit{Nq}と「文字コードが$x$の文字」との間に入るグルー/カーンとする.
+この$x$は次の場合分けによる:
+  \begin{itemize}
+    \item $\mathit{Np}.\mathit{id}$が\textit{id\_math}のとき(つまりクラスタ\textit{Np}が文中数式を表す)
+    ときは,$x=-1$.
+    \item \textit{Np}の中身の中身の文字コードについて,「直前への\Param{xkanjiskip}の挿入」が禁止されている
+(つまり,\Param{jaxspmode}~(or \Param{alxspmode})パラメタが偶数)ときは,
+    $x=\text{\texttt{'nox\_alchar'}}$.
+    \item 以上のいずれでもないときは,$x=\text{\texttt{'alchar'}}$.
+  \end{itemize}
 \end{enumerate}
 \item[\Param{xkanjiskip}~{[X]}]
 この段階では,\textsf{\Param{kanjiskip}~[K]}のときと同じように,
@@ -8787,22 +9450,29 @@ If this attempt fails, \LuaTeX-ja use the method ``\textsf{\Param{kanjiskip}~[K]
 
 \paragraph{欧文と和文Aの間}
 \textit{Nq}が\textsf{欧文}で,\textit{Np}が\textsf{和文A}の場合,JFMグルー挿入処理は上の場合とほぼ同じである.
-\textsf{和文A}のクラスタが逆になるので,\textsf{Boundary-A~[\OA]}の部分が変わるだけ
+\textsf{和文A}のクラスタが逆になるので,\textsf{欧文境界B~[\NB]}の部分が変わるだけである
 \begin{itemize}
-\item 「右空白」については,まず以下に述べる\textsf{Boundary-A~[\OA]}により空白を決定しようと試みる.
+\item 「右空白」については,まず以下に述べる\textsf{欧文境界A~[\OA]}により空白を決定しようと試みる.
 それが失敗した場合は,\textsf{\Param{xkanjiskip}~[X]}によって定める.
 %\item \textit{Nq}が和文でないので,「左空白」は算出されない.
 \item 禁則用ペナルティは,以前述べた\textsf{P-normal~[PN]}と同じである.
 \end{itemize}
 \begin{description}
-\item[Boundary-A~{[\OA]}] 「\textbf{JAchar}でないもの」と\textbf{JAchar}との間に入る空白を以下によって求め,
-未定義でなければそれを「右空白」として採用する.
-\textsf{JFM-origin~[M]}の変種と考えて良い.
-これによって定まる空白の典型例は,欧文文字と和文の開き括弧との間に入る半角アキである.
+\item[欧文境界A~{[\NA]}] これは\textsf{欧文境界B~[\NB]}で\textit{Np}と\textit{Nq}の役割が
+  交換されたものと思えば良い.
+  この処理で定まる空白の典型例は,欧文文字と和文の開き括弧との間に入る半角アキである.
 \begin{enumerate}
-\item もし両クラスタの間で \cs{inhibitglue} が実行されていた場合(証としてwhatsitノードが自動挿入される),次へ.
+\item もし両クラスタの間で \cs{inhibitglue} が実行されていた場合(証としてwhatsitノードが自動挿入される),
+  未定義.
 \item そうでなければ,
-「文字コードが {\tt'jcharbdd'} の文字」と\textit{Np}との間に入るグルー/カーンとして定まる.
+「文字コードが$x$の文字」と\textit{Np}との間に入るグルー/カーンと定める.
+$x$は\textit{Nq}から\textsf{欧文境界B~[\NB]}におけるそれと同じ方法で定めるが,
+\texttt{'nox\_alchar'}か\texttt{'alchar'}は
+\begin{quote}
+  \textit{Nq}の中身の文字コードについて,「直後への\Param{xkanjiskip}の挿入」が禁止されている
+(つまり,\Param{jaxspmode}~(or \Param{alxspmode})パラメタが2以上).
+\end{quote}
+  か否かで判断する.
 \end{enumerate}
 \end{description}
 
@@ -8810,9 +9480,8 @@ If this attempt fails, \LuaTeX-ja use the method ``\textsf{\Param{kanjiskip}~[K]
 \textit{Nq}が\textsf{和文A}で,\textit{Np}が\textsf{箱}・グルー・カーンのいずれかであった場合,
 両者の間に挿入されるJFMグルーについては同じ処理である.しかし,そこでの行分割に対する仕様が異なるので,
 ペナルティの挿入処理は若干異なったものとなっている.
-
 \begin{itemize}
-\item 「右空白」については,既に述べた\textsf{Boundary-B~[\OB]}により空白を決定しようと試みる.
+\item 「右空白」については,以下に述べる\textsf{Boundary-B~[\OB]}により空白を決定しようと試みる.
 それが失敗した場合は,「右空白」は挿入されない.
 %\item 「左空白」については,既に述べた\textsf{line-end~[E]}の算出方法をそのまま採用する.それに伴う「右空白」の補正も同じ.
 \item 禁則用ペナルティの処理は,後ろのクラスタ\textit{Np}の種類によって異なる.
@@ -8835,6 +9504,12 @@ If this attempt fails, \LuaTeX-ja use the method ``\textsf{\Param{kanjiskip}~[K]
 \end{itemize}
 
 \begin{description}
+\item[Boundary-B~{[\OB]}] この処理は\textsf{欧文境界B~[\NB]}と同様であり,
+  $x$が次によって決まることのみが異なる:
+  \begin{itemize}
+    \item \textit{Np}がグルーやカーンのときは,$x=\text{\texttt{'glue'}}$.
+    \item そうでない(\textit{Np}が\textsf{箱})ときは,$x=\text{\texttt{'jcharbdd'}}$.
+  \end{itemize}
 \item[P-allow~{[PA]}]
 \textit{Nq}と\textit{Np}の間の(a)部分にペナルティがあれば,\textsf{P-normal~[PN]}と同様に,
 それらの各ノードにおいてペナルティ値を$a$だけ増加させる.
@@ -8863,7 +9538,7 @@ If this attempt fails, \LuaTeX-ja use the method ``\textsf{\Param{kanjiskip}~[K]
 すぐ上の(\textit{Nq}と\textit{Np}の順序が逆になっている)場合と同じである.
 %が,「左空白」がなくなることにのみ注意.
 \begin{itemize}
-\item 「右空白」については,既に述べた\textsf{Boundary-A~[\OA]}により空白を決定しようと試みる.
+\item 「右空白」については,以下に述べる\textsf{Boundary-A~[\OA]}により空白を決定しようと試みる.
 それが失敗した場合は,「右空白」は挿入されない.
 %\item \textit{Nq}が和文でないので,「左空白」は算出されない.
 \item 禁則用ペナルティの処理は,\textit{Nq}の種類によって異なる.
@@ -8878,12 +9553,21 @@ $\mathit{Nq}.\mathit{tail}$は無意味なので,
 \end{description}
 \end{itemize}
 
+\begin{description}
+\item[Boundary-A~{[\OA]}] この処理は\textsf{欧文境界A~[\NA]}と同様であり,
+  $x$が次によって決まることのみが異なる:
+  \begin{itemize}
+    \item \textit{Nq}がグルーやカーンのときは,$x=\text{\texttt{'glue'}}$.
+    \item そうでない(\textit{Nq}が\textsf{箱})ときは,$x=\text{\texttt{'jcharbdd'}}$.
+  \end{itemize}
+\end{description}
+
 \paragraph{和文Aと和文Bの違い}
 先に述べたように,\textsf{和文B}はhboxの中身の先頭(or 末尾)として出現している
 \textbf{JAchar}である.リスト内に直接ノードとして現れている\textbf{JAchar}(\textsf{和文A})との違いは,
 \begin{itemize}
 \item \textsf{和文B}に対しては,JFMの文字クラス指定から定まる空白
-\textsf{JFM-origin~[M]},\textsf{Boundary-A~[\OA]},\textsf{Boundary-B~[\OB]})の挿入は行われない.
+(\textsf{JFM由来[M]},\textsf{Boundary-A~[\OA]}など)の挿入は行われない.
 %「左空白」の算出も行われない.
 例えば,
 \begin{itemize}
@@ -8906,12 +9590,12 @@ $\mathit{Nq}.\mathit{tail}$は無意味なので,
 あ.A
 \end{LTXexample}
 \begin{itemize}
-\item 1行目の\cs{inhibitglue}は\textsf{Boundary-B~[\OB]}の処理のみを抑止するので,ピリオドと「A」の間には
+\item 1行目の\cs{inhibitglue}は\textsf{欧文境界B~[\NB]}の処理のみを抑止するので,ピリオドと「A」の間には
 \Param{xkanjiskip}(四分アキ)が入ることに注意.
 \item 2行目のピリオドと「A」の間においては,前者が\textsf{和文B}となる(hboxの中身の末尾として登場しているから)ので,
-そもそも\textsf{Boundary-B~[\OB]}の処理は行われない.よって,\Param{xkanjiskip}が入ることとなる.
+そもそも\textsf{欧文境界B~[\NB]}の処理は行われない.よって,\Param{xkanjiskip}が入ることとなる.
 \item 3行目では,ピリオドの属するクラスタは\textsf{和文A}である.これによって,
-ピリオドと「A」の間には\textsf{Boundary-B~[\OB]}由来の半角アキが入ることになる.
+ピリオドと「A」の間には\textsf{欧文境界B~[\NB]}由来の半角アキが入ることになる.
 \end{itemize}
 %</ja>
 
@@ -8934,7 +9618,7 @@ $d = \max(\texttt{depth} - \texttt{yoffset}, 0)$,
 $h = \max(\texttt{height} + \texttt{yoffset}, 0)$, $d=\texttt{depth}$.
 \end{description}
 という仕様になっている.つまり,\texttt{yoffset} が負(グリフを下ける)の場合に深さは増加しな
-い(表\ref{tab:yoffset_and_im}参照).
+い(\autoref{tab:yoffset_and_im}参照).
 
 \begin{table}[t]
 \caption{\texttt{yoffset} and imaginary body}
@@ -9093,7 +9777,7 @@ variation selectors are ``combined'' with the previous character.
 \texttt{vsraw}は,ブール値の値をとるキーであり,標準ではfalseである.
 \begin{itemize}
  \item trueの場合は,異体字セレクタは「直前の文字に続けて」出力される.
-もしもIVSサポート(\ref{ssec-ltjotf}節)が有効になっていた場合は,
+もしもIVSサポート(\ref{ssec:ltjotf}節)が有効になっていた場合は,
 以下の例(左側は入力,右側はその出力)のようになる.
 %</ja>
 \begin{LTXexample}
@@ -9378,7 +10062,7 @@ the \texttt{lstlisting} environment or other environments/commands.
 \begin{itemize}
 \item \textbf{JAglue}ではないグルー
 \item JFMグルー(優先度\footnote{%
-  \ref{ssec-jfm-str}節にあるように,
+  \ref{ssec:jfm-str}節にあるように,
   各JFMグルーには$-4$から3までの優先度がついている.場合によっては
   伸びと縮みで異なる優先度が付いているかもしれない.}%
 別にまとめられる)
@@ -9640,7 +10324,7 @@ CMapが必要である.
 
 \pageref{para-cid}ページで述べたように,\texttt{cid}キーを使って
 非埋め込みの中国語・韓国語フォントを定義する場合,同様のキャッシュが生成される.
-キャッシュの名称,必要となるCMapについては表\ref{tab:cid-cache}を参照して欲しい.
+キャッシュの名称,必要となるCMapについては\autoref{tab:cid-cache}を参照して欲しい.
 
 \item[extra\_***.lua]
 フォント``\texttt{***}''における異体字セレクタの情報,縦組用字形への変換テーブル,そして
@@ -9658,7 +10342,7 @@ It is created from three CMaps, \texttt{UniJIS2004-UTF32-\{H,V\}} and
             \texttt{Adobe-Japan1-UCS2},
 and this is why these two CMaps are needed in the first run of \LuaTeX-ja.
 
-Similar caches are created as Table~\ref{tab:cid-cache},
+Similar caches are created as \autoref{tab:cid-cache},
 if you specified \texttt{cid} key in \cs{jfont}
 to use other CID-keyed non-embedded fonts for Chinese or Korean,
 as in Page~\pageref{para-cid}.