OSDN Git Service

update documentation (WIP)
[luatex-ja/luatexja.git] / doc / luatexja.dtx
index 8f786c7..bd0ce24 100644 (file)
@@ -1,10 +1,6 @@
 %<*!showexpl>
 %#! lualatex -shell-escape
-
-% To typeset this manual, you need following two fonts:
-%  - KozMinPr6N-Regular.otf
-%  - KozGoPr6N-Medium.otf
-%  - KozGoPr6N-Regular.otf
+%% KozMinPr6N-Regular.otf is needed to typeset this document.
 
 %%%%% section ==> 章
 %%%%% subsection => 節
 ]{iosevka-slab-regular}
 \setsansfont[Scale=MatchLowercase,Ligatures=TeX,RawFeature=-notdef]{Linux Biolinum O}
 \usepackage[match]{luatexja-fontspec}
-\usepackage[kozuka-pr6n]{luatexja-preset}
+\usepackage[haranoaji]{luatexja-preset}
 \usepackage{unicode-math}
-\setmonojfont{KozGoPr6N-Regular.otf}
+\setmonojfont{HaranoAjiGothic-Regular.otf}
 \setmathfont[Scale=MatchLowercase]{XITSMath}
+\newjfontface\KOZM{KozMinPr6N-Regular.otf}
 
 \setLaTeXa{\scshape a}
 %<*ja>
@@ -94,7 +91,7 @@
   basicstyle=\ttfamily\small, pos=r, breaklines=true,
   numbers=none, rframe={}, basewidth=0.5em, numberstyle=\tiny, numbersep=0.5em,
   explpreset={numberstyle=\tiny, numbers=left, numbersep=1em, columns=fixed},
-  morecomment=[l]{\%}, commentstyle=\color{green},
+  morecomment=[l]{\%}, commentstyle=\color{green}
 }
 % Suppress output from showexpl to stdout.
 \makeatletter
 \theoremstyle{definition}
 %<en>\newtheorem{defn}{Definition}
 %<ja>\newtheorem{defn}{定義}
+\DeclareMathOperator\nint{nint}
 
 %%%%%%%% logo
 \usepackage{metalogo}
@@ -505,8 +503,6 @@ By default, \LuaTeX-ja uses Japanese fonts to typeset Greek and Cyrillic letters
 
 From version~20150906.0, characters which belongs both ISO~8859-1 and JIS~X~0208,
 such as \P~and~\S, are now typeset in alphabetic fonts.
-If you are using \LaTeXe\ prior to 2017/01/01, these characters are not typeset correctly
-without the \cs{fontspec} (and~\Pkg{luatexja-fontspec}) package.
 %</en>
 %<*ja>
 \paragraph{ギリシャ文字・キリル文字とISO~8859-1の記号}
@@ -523,9 +519,7 @@ without the \cs{fontspec} (and~\Pkg{luatexja-fontspec}) package.
 また,\P,~\S といったISO~8859-1の上位領域とJIS~X~0208の共通部分の文字は
       バージョン20150906.0から標準で欧文扱いとなった.\LaTeXe\ 2017/01/01以降では
 標準でTUエンコーディングのLatin Modernフォントが使われるので,
-特に何もせずソース中にそのまま記述してもこれらの文字が出力される
-\footnote{\LaTeXe\ 2017/01/01より前では,ソース中に直接記述しても
-  \Pkg{fontspec}パッケージ(および\Pkg{luatexja-fontspec}パッケージ)非読み込みの状態では出力されない.}.
+特に何もせずソース中にそのまま記述してもこれらの文字が出力される.
 和文扱いで出力するには \verb+\ltjjachar`§+ のように \cs{ltjjachar} 命令
 を使えばよい.
 %</ja>
@@ -652,17 +646,30 @@ and \emph{Japanese fonts} for fonts used in \textbf{JAchar}.
 %<en>The following packages are needed for the \LuaTeX-ja\ package.
 %<ja>\LuaTeX-jaパッケージの動作には次のパッケージ類が必要である.
 \begin{itemize}
-\item \href{http://www.luatex.org/}{\LuaTeX}\ 1.07.0 (or later)
+\item \href{http://www.luatex.org/}{\LuaTeX}\ 1.10.0 (or later)
 \item recent \href{https://github.com/latex3/luaotfload}{\Pkg{luaotfload}} (v3.1 or later recommended)
 \item \Pkg{adobemapping} (Adobe cmap and pdfmapping files)
+\item \LaTeX\ 2020-02-02 patch level 5 or later
+%<en>  (if you want to use \LuaTeX-ja with \LaTeXe)
+%<ja>  (\LaTeXe 下で\LuaTeX-jaを使う場合)
 \item \href{https://github.com/josephwright/etoolbox/}{\Pkg{etoolbox}},
-  \Pkg{everysel} (if you want to use \LuaTeX-ja with \LaTeXe)
-\item \Pkg{ltxcmds}, \Pkg{pdftexcmds}, \Pkg{filehook}, \Pkg{atbegshi}
+  \Pkg{everysel}
+%<en>  (if you want to use \LuaTeX-ja with \LaTeXe)
+%<ja>  (\LaTeXe 下で\LuaTeX-jaを使う場合)
+\item \Pkg{ltxcmds}, \Pkg{pdftexcmds}
+\item \Pkg{filehook}, \Pkg{atbegshi}
+%<en>  (not needed if you want to use \LuaTeX-ja with \LaTeXe~2020-10-01 or later)
+%<ja>  (\LaTeXe 2020-10-01以降で\LuaTeX-jaを使う場合はどちらも不要)
 \item \href{https://github.com/wspr/fontspec/}{\Pkg{fontspec}} v2.7c (or later)
-%%% %<en>\item \emph{IPAex fonts} (\url{http://ipafont.ipa.go.jp/})
-%%% %<ja>\item \emph{IPAexフォント(\url{http://ipafont.ipa.go.jp/})}
-%<en>\item \emph{Haranoaji fonts} (\url{https://github.com/trueroad/HaranoAjiFonts})
-%<ja>\item \emph{原ノ味フォント(\url{https://github.com/trueroad/HaranoAjiFonts})}
+%<*en>
+\item \emph{Harano Aji fonts} (\url{https://github.com/trueroad/HaranoAjiFonts})\\
+  More specifically, HaranoAjiMincho-Regular~and~HaranoAjiGothic-Medium.
+%</en>
+%<*ja>
+\item \emph{原ノ味フォント(\url{https://github.com/trueroad/HaranoAjiFonts})}\\
+\LuaTeX-jaの最低限の動作には原ノ味明朝Regular~(HaranoAjiMincho-Regular)と
+原ノ味角ゴシックMedium~(HaranoAjiGothic-Medium)があれば十分である.
+%</ja>
 \end{itemize}
 
 %<*en>
@@ -670,25 +677,27 @@ Now \LuaTeX-ja is available from
 CTAN (in the \texttt{macros/luatex/generic/luatexja} directory), and
 the following distributions:
   \begin{itemize}
-  \item \href{https://www.tug.org/texlive/}{\TeXLive} (in \texttt{texmf-dist/tex/luatex/luatexja})
+  \item \href{https://www.tug.org/texlive/}{\TeX~Live} (in \texttt{texmf-dist/tex/luatex/luatexja})
   \item \href{http://w32tex.org/}{W32\TeX}\ (in \texttt{luatexja.tar.xz})
-  \item MiK\TeX\ (in \texttt{luatexja.tar.lzma}); see the next subsection
+  \item MiK\TeX\ (in \texttt{luatexja.tar.xz})
   \end{itemize}
-Haranoaji fonts are available in \TeX~Live and MiK\TeX.
+Harano Aji fonts are also available in these distributions
+(\texttt{haranoaji} in \TeX~Live and MiK\TeX, and \texttt{luatexja.tar.xz} in W32\TeX).
 %</en>
 %<*ja>
 現在,\LuaTeX-jaはCTAN (\texttt{macros/luatex/generic/luatexja})に収録されている他,
 以下のディストリビューションにも収録されている:
   \begin{itemize}
   \item MiK\TeX\ (\texttt{luatexja.tar.lzma})
-  \item \TeXLive (\texttt{texmf-dist/tex/luatex/luatexja})
+  \item \TeX~Live (\texttt{texmf-dist/tex/luatex/luatexja})
   \item W32\TeX\ (\texttt{luatexja.tar.xz})
   \end{itemize}
-\TeX Live, MiK\TeX は原ノ味フォントも収録している.
+これらのディストリビューションは原ノ味フォントも収録している
+(\TeX~Live, MiK\TeX では\texttt{haranoaji},W32\TeX では\texttt{luatexja.tar.xz}).
 %</ja>
 
 %<*en>
-\paragraph{Using \LuaTeX-ja with LuaHB\TeX}
+\paragraph{HarfBuzz~and~\LuaTeX-ja}
 Using \LuaTeX-ja with LuaHB\TeX (\LuaTeX\ integrated with
 \href{https://github.com/harfbuzz/harfbuzz}{HarfBuzz}) is not well tested.
 Maybe documents can typeset without an error,
@@ -699,13 +708,12 @@ Especially,
 by specifying \texttt{Renderer=Harfbuzz}~etc.\ (\Pkg{fontspec}) or~{mode=harf} (otherwise).
 %</en>
 %<*ja>
-\paragraph{LuaHB\TeX 下での\LuaTeX-jaの使用}
-現時点では,LuaHB\TeX 下での\LuaTeX-jaの使用は十分にテストされていない.
+\paragraph{HarfBuzzと\LuaTeX-ja}
+現時点では,HarfBuzzの機能を用いたときの\LuaTeX-jaの使用は十分にテストされていない.
 エラーが発生せずにタイプセットできるかもしれないが,特に縦組時や
 \cs{CID}などで意図しない結果となりうる可能性が大きい.
-
-特に,\texttt{Renderer=Harfbuzz}等(\Pkg{fontspec})や\texttt{mode=harf}指定(それ以外)を用いて
-\emph{和文フォントに対してHarfBuzzを用いることは推奨しない}.
+特に,\emph{\texttt{Renderer=Harfbuzz}等(\Pkg{fontspec})や\texttt{mode=harf}指定(それ以外)を通じて
+  和文フォントに対してHarfBuzzを用いることは推奨しない}.
 %</ja>
 
 %<en>\paragraph{Manual installation}
@@ -761,13 +769,10 @@ But only the contents in \texttt{src/} are needed to work \LuaTeX-ja.
 
 %<*en>
 \item If you downloaded this package from CTAN, you have to run following commands
-    to generate classes
-    and \texttt{ltj-kinsoku.lua} (the file which stores default ``\textit{kinsoku}'' parameters):
+    to generate classes:
 %</en>
 %<*ja>
-\item もしCTANから本パッケージを取得したのであれば,日本語用クラスファイルや
-標準の禁則処理用パラメータを
-格納した \texttt{ltj-kinsoku.lua} を生成するために,
+\item もしCTANから本パッケージを取得したのであれば,日本語用クラスファイルを生成するために,
 以下を実行する必要がある:
 %</ja>
 \begin{lstlisting}
@@ -775,19 +780,7 @@ $ cd src
 $ lualatex ltjclasses.ins
 $ lualatex ltjsclasses.ins
 $ lualatex ltjltxdoc.ins
-$ luatex   ltj-kinsoku_make.tex
 \end{lstlisting}
-%<*en>
-\emph{Do not forget processing \texttt{ltj-kinsoku\_make.tex}}.
-\texttt{*.\{dtx,ins\}} and \texttt{ltj-kinsoku\_make.tex} used here are not needed in regular use.
-%</en>
-%<*ja>
-\emph{最後の \texttt{ltj-kinsoku\_make.tex} の実行を忘れないように注意}.
-ここで使用した \texttt{*.\{dtx,ins\}} と \texttt{ltj-kinsoku\_make.tex} は
-通常の使用にあたっては必要ない.
-%</ja>
-
-
 
 %<*en>
 \item Copy all the contents of \texttt{src/} into one of your \texttt{TEXMF} tree.
@@ -879,24 +872,20 @@ and finally delete the temporary directory.
 
 \item
 %<*en>
-Note that when \LuaTeX-ja is loaded in plain \LuaTeX~nor \LaTeX~2019-10-01,
+Note that when \LuaTeX-ja is loaded in plain \LuaTeX,
 we cannot use color specification on font loading, such as
 \begin{lstlisting}
   \font\hoge=lmroman10-regular.otf:color=FF0000 % \font primitive
-  \DeclareFontShape{TU}{...}{...}{...}{<-> lmsans10-boldoblique:color=005599}{} % NFSS
-  \setmainfont{texgyretermes}[Color=220022]     % fontspec
 \end{lstlisting}
 This is because codes for shifting baseline in math mode (\LuaTeX-ja) collide with and prevents loading
 codes for font color (\Pkg{luaotfload}) in these environments.
-\emph{We recommend to use \LaTeX\ 2020-02-02}, since we can avoid this collision in \LaTeX\ 2020-02-02.
+\emph{We recommend to use \LaTeX\ 2020-02-02 (or later)}, since we can avoid this collision in there.
 %</en>
 %<*ja>
\81ªã\81\8aï¼\8c\LuaTeX-jaã\82\92plain~\LuaTeX ã\82\84\LaTeX\ 2019-10-01以å\89\8dã\81®ç\92°å¢\83ä¸\8bã\81§ç\94¨ã\81\84ã\82\8bå ´å\90\88ï¼\8c
+なお,\LuaTeX-jaをplain~\LuaTeX で用いる場合,
 以下のような\emph{フォント読み込み時の色指定}(\cs{textcolor}命令ではなく!)\emph{は利用できない}.
 \begin{lstlisting}
   \font\hoge=lmroman10-regular.otf:color=FF0000 % \font primitive
-  \DeclareFontShape{TU}{...}{...}{...}{<-> lmsans10-boldoblique:color=005599}{} % NFSS
-  \setmainfont{texgyretermes}[Color=220022]     % fontspec
 \end{lstlisting}
 これは,\LuaTeX-jaによる数式内のベースライン補正(\ref{ssec:baseline}節)のコードが
 \Pkg{luaotfload}パッケージのフォント色処理のコードと衝突するためである.
@@ -943,11 +932,11 @@ codes for font color (\Pkg{luaotfload}) in these environments.
 \emph{組方向}&\emph{字体}&\emph{フォント名}&\bfseries``10\,pt''&\bfseries``7\,pt''&\bfseries``5\,pt''\\\midrule
 \smash{\raisebox{-0.7\zh}{横組}}&
 明朝体&原ノ味明朝Regular&\cs{tenmin}&\cs{sevenmin}&\cs{fivemin}\\
-&\textgt{ゴシック体}&原ノ味ゴシックMedium&\cs{tengt} &\cs{sevengt} &\cs{fivegt}\\
+&\textgt{ゴシック体}&原ノ味ゴシックMedium&\cs{tengt} &\cs{sevengt} &\cs{fivegt}\\
 \midrule
 \smash{\raisebox{-0.7\zh}{縦組}}&
 明朝体&原ノ味明朝Regular&\cs{tentmin}&\cs{seventmin}&\cs{fivetmin}\\
-&\textgt{ゴシック体}&原ノ味ゴシックMedium&\cs{tentgt} &\cs{seventgt} &\cs{fivetgt}\\
+&\textgt{ゴシック体}&原ノ味ゴシックMedium&\cs{tentgt} &\cs{seventgt} &\cs{fivetgt}\\
 \bottomrule
 \end{tabular}
 \end{center}
@@ -1092,8 +1081,8 @@ By default, the following fonts are used for these two families.
 \begin{tabular}{lllll}
 \toprule
 \emph{字体}&\emph{ファミリ}&\textbf{\cs{mdseries}}&\textbf{\cs{bfseries}}&\emph{スケール}\\\midrule
-明朝体&\texttt{mc}&原ノ味明朝Regular&原ノ味ゴシックMedium&0.962216\\
-\textgt{ゴシック体}&\texttt{gt}&原ノ味ゴシックMedium&原ノ味ゴシックMedium&0.962216\\
+明朝体&\texttt{mc}&原ノ味明朝Regular&原ノ味ゴシックMedium&0.962216\\
+\textgt{ゴシック体}&\texttt{gt}&原ノ味角ゴシックMedium&原ノ味角ゴシックMedium&0.962216\\
 \bottomrule
 \end{tabular}
 \end{center}
@@ -1148,7 +1137,7 @@ By default, the following fonts are used for these two families.
   フォントを変更する命令)の前で実行することにより使うことができる.
 
   \pLaTeX では標準の欧文フォントはOT1エンコーディングのComputer Modern Roman (\texttt{cmr})%
-  であったが,2017年以降の\LuaLaTeX ではTUエンコーディングのlatin Modern Roman (\texttt{lmr})%
+  であったが,2017年以降の\LuaLaTeX ではTUエンコーディングのLatin Modern Roman (\texttt{lmr})%
   に変更されている.そのため,前段落で述べた「従属欧文」も,Latin Modern Romanに設定している.
 %</ja>
 
@@ -1294,15 +1283,6 @@ For \LaTeXe, \LuaTeX-ja adopted most of the font selection system of \pLaTeXe\ (
 %<*ja>
 \LaTeX で用いる際には,\pLaTeXe\ (\texttt{plfonts.dtx})用のフォント選択機構の大部分を流用している.
 %</ja>
-\begin{itemize}
-%<*en>
-\item Commands \cs{fontfamily}, \cs{fontseries}, and \cs{fontshape} can be used to change
-      attributes of Japanese fonts.
-%</en>
-%<*ja>
-\item 和文フォントの属性を変更するには,\cs{fontfamily}, \cs{fontseries}, \cs{fontshape} を使用する.
-      もちろん,それらを実際に反映させるには手動で \cs{selectfont} を実行する必要がある.
-%</ja>
 
 %<*en>
 \begin{center}\small
@@ -1315,7 +1295,7 @@ Alphabetic fonts
 Japanese fonts
 &\cs{kanjiencoding}&\cs{kanjifamily}&\cs{kanjiseries}&\cs{kanjishape}
 &\cs{usekanji}\\
-both&---&--&\cs{fontseries}&\cs{fontshape}&---\\
+both&---&--&\cs{fontseries}&\cs{fontshape}$^*$&---\\
 auto select&\cs{fontencoding}&\cs{fontfamily}&---&---&\cs{usefont}\\
 \bottomrule
 \end{tabular}
@@ -1325,22 +1305,42 @@ auto select&\cs{fontencoding}&\cs{fontfamily}&---&---&\cs{usefont}\\
 \begin{center}\small
 \begin{tabular}{llllll}
 \toprule
-&\emph{ã\82¨ã\83³ã\82³ã\83¼ã\83\87ã\82£ã\83³ã\82°}&\emph{ã\83\95ã\82¡ã\83\9fã\83ª}&\emph{ã\82·ã\83ªã\83¼ã\82º}&\emph{ã\82·ã\82§ã\83¼プ}&\emph{選択}\\\midrule
+&\emph{ã\82¨ã\83³ã\82³ã\83¼ã\83\87ã\82£ã\83³ã\82°}&\emph{ã\83\95ã\82¡ã\83\9fã\83ª}&\emph{ã\82·ã\83ªã\83¼ã\82º}&\emph{ã\82·ã\82§ã\82¤プ}&\emph{選択}\\\midrule
 \emph{欧文}
 &\cs{romanencoding}&\cs{romanfamily}&\cs{romanseries}&\cs{romanshape}
 &\cs{useroman}\\
 \emph{和文}
 &\cs{kanjiencoding}&\cs{kanjifamily}&\cs{kanjiseries}&\cs{kanjishape}
 &\cs{usekanji}\\
-\emph{両方}&---&--&\cs{fontseries}&\cs{fontshape}&---\\
+\emph{両方}&---&--&\cs{fontseries}&\cs{fontshape}$^*$&---\\
 \emph{自動選択}&\cs{fontencoding}&\cs{fontfamily}&---&---&\cs{usefont}\\
 \bottomrule
 \end{tabular}
 \end{center}
 %</ja>
 
+\begin{itemize}
 %<*en>
-      \verb+\fontencoding{+<encoding>\verb+}+ changes the encoding of alphabetic fonts
+\item \cs{fontfamily}, \cs{fontseries}, and~\cs{fontshape} try to change
+      attributes of Japanese fonts, as well as those of alphabetic fonts.
+      Of course, \cs{selectfont} is needed to select current text fonts.
+
+      Note that \cs{fontshape} always changes current alphabetic font shape,
+      but it does \emph{not} change current Japanese font shape if
+      the target shape is unavailable for current Japanese encoding/family/series.
+      For the detail, see Subsection~\ref{ssec:nfsspat}.
+%</en>
+%<*ja>
+\item \cs{fontfamily}, \cs{fontseries}, \cs{fontshape} は欧文・和文フォント両方の属性を変更しようとする.
+      もちろん,それらを実際に反映させるには手動で \cs{selectfont} を実行する必要がある.
+
+      なお,\cs{fontshape\{<shape>\}}は常に欧文フォントのシェイプを設定するが,
+      もしも現在の和文フォントファミリ・シリーズで要求されたシェイプが利用不能だった場合には,和文フォントのシェイプは変更しない.
+      詳細は\ref{ssec:nfsspat}節を参照すること.
+%</ja>
+
+%<*en>
+\item \verb+\fontencoding{+<encoding>\verb+}+ changes the encoding of alphabetic fonts
       or Japanese fonts depending on the argument. For example,
       \verb+\fontencoding{JY3}+ changes the encoding of Japanese fonts to
       \texttt{JY3}, and \verb+\fontencoding{T1}+ changes the encoding of
@@ -1350,7 +1350,7 @@ auto select&\cs{fontencoding}&\cs{fontfamily}&---&---&\cs{usefont}\\
       For the detail, see Subsection~\ref{ssec:nfsspat}.
 %</en>
 %<*ja>
-      ここで,\verb+\fontencoding{+<encoding>\verb+}+ は,引数により和文側か欧文
+\item  ここで,\cs{fontencoding\{<encoding>\}}は,引数により和文側か欧文
       側かのどちらかのエンコーディングを変更する.例えば,
       \verb+\fontencoding{JY3}+ は和文フォントのエンコーディングを
       \texttt{JY3}に変更し,\verb+\fontencoding{T1}+ は欧文フォント側を
@@ -1375,8 +1375,8 @@ auto select&\cs{fontencoding}&\cs{fontfamily}&---&---&\cs{usefont}\\
 \item 和文フォントのシェイプを定義するには,通常の \cs{DeclareFontShape} を使えば良い:
 %</ja>
 \begin{lstlisting}
-\DeclareFontShape{JY3}{mc}{b}{n}{<-> s*KozMinPr6N-Bold:jfm=ujis;-kern}{}
-    % Kozuka Mincho Pr6N Bold
+\DeclareFontShape{JY3}{mc}{b}{n}{<-> s*HaranoAjiMincho--Bold:jfm=ujis;-kern}{}
+    % Harano Aji Mincho Bold
 \end{lstlisting}
 %<*ja>
 仮名書体を使う場合など,複数の和文フォントを組み合わせて使いたい場合は
@@ -1623,10 +1623,12 @@ Below is an example of \cs{jfontspec}.
 %</ja>
 
 \begin{LTXexample}[width=0.4\textwidth]
-\jfontspec[CJKShape=NLC]{KozMinPr6N-Regular}
-JIS~X~0213:2004→辻\par
-\jfontspec[CJKShape=JIS1990]{KozMinPr6N-Regular}
-JIS~X~0208:1990→辻
+\jfontspec[CJKShape=NLC]{HaranoAjiMincho-Regular}
+JIS~X~0213:2004→辻鯵\par
+\jfontspec[CJKShape=JIS1990]{HaranoAjiMincho-Regular}
+JIS~X~0208-1990→辻鯵\par
+\jfontspec[CJKShape=JIS1978]{HaranoAjiMincho-Regular}
+JIS~C~6226-1978→辻鯵
 \end{LTXexample}
 
 %<en>\subsection{Presets of Japanese fonts}
@@ -1657,10 +1659,10 @@ The following presets are defined:
 %<ja> 例えば,本ドキュメントでは\Pkg{luatexja-preset}パッケージを
 %<en> For example, this document loads \Pkg{luatexja-preset} package by
 \begin{lstlisting}
-\usepackage[kozuka-pr6n]{luatexja-preset}
+\usepackage[haranoaji]{luatexja-preset}
 \end{lstlisting}
-%<ja>ã\81¨ã\81\97ã\81¦èª­ã\81¿è¾¼ã\81¿ï¼\8cå°\8få¡\9aæ\9b¸ä½\93(Pr6N)を使うことを指定している.
-%<en> which means that Kozuka~Pr6N fonts will be used in this document.
+%<ja>ã\81¨ã\81\97ã\81¦èª­ã\81¿è¾¼ã\81¿ï¼\8cå\8e\9fã\83\8eå\91³ã\83\95ã\82©ã\83³ã\83\88を使うことを指定している.
+%<en> which means that Harano Aji fonts will be used in this document.
 
 
 %<*en>
@@ -1679,15 +1681,14 @@ as an external package \Pkg{luatexja-otf}.
 一部を(\Pkg{luatexja-otf}という別のパッケージとして)実装した.
 %</ja>
 
-\begin{LTXexample}
-\jfontspec{KozMinPr6N-Regular.otf}
-森\UTF{9DD7}外と内田百\UTF{9592}とが\UTF{9AD9}島屋に行く。
-
+\begin{LTXexample}[width=0.4\textwidth]
+森\UTF{9DD7}外と\CID{13966}田百\UTF{9592}とが
+\UTF{9AD9}島屋に\\
 \CID{7652}飾区の\CID{13706}野家,
-\CID{1481}城市,葛西駅,
-高崎と\CID{8705}\UTF{FA11}
-
-\aj半角{はんかくカタカナ}
+\CID{1481}城市,葛西駅,\\
+高崎と\CID{8705}\UTF{FA11},濱と\ajMayuHama\\
+\aj半角{カタカナ}\ajKakko3\ajMaruYobi{2}%
+\ajLig{令和}\ajLig{○問}\ajJIS
 \end{LTXexample}
 
 %<*ja>
@@ -1815,7 +1816,7 @@ determined from the following data:
 %<en>\item Blocks in Unicode~12.0.0.
 %<ja>\item Unicode~12.0のブロック.
 %<en>\item The \texttt{Adobe-Japan1-UCS2} mapping between a CID Adobe-Japan1- and Unicode.
-%<ja>\item Adobe-Japan1-7のCIDとUnicodeの間の対応表\texttt{Adobe-Japan1-UCS2}7
+%<ja>\item Adobe-Japan1-7のCIDとUnicodeの間の対応表\texttt{Adobe-Japan1-UCS2}.
 %<en>\item The \Pkg{PXbase} bundle for \upTeX\ by Takayuki Yato.
 %<ja>\item 八登崇之氏による\upTeX 用の\Pkg{PXbase}バンドル.
 \end{itemize}
@@ -1957,7 +1958,7 @@ these eight ranges belongs to the character range~217.
 \centering\footnotesize
 \def\ch#1{%
   {\fboxsep0pt\fcolorbox{cyan}{white}%
-  {\normalsize\char"20#1}}\ (\texttt{U+20#1})} %"
+  {\normalsize\KOZM\UTF{20#1}}}\ (\texttt{U+20#1})} %"
 % 13: JIS X0213, AJ, Adobe-Japan-1 only
 \begin{tabular}{ll>{\color{white}}lll>{\color{white}}l}
   \ch{02}&{En space}&AJ&
@@ -2007,12 +2008,12 @@ these eight ranges belongs to the character range~217.
                              で構成されている.したがって,ブロックのリストを示す
                              代わりに,範囲の定義そのものを示す.
 %</ja>
-\begin{lstlisting}
+\begin{lstlisting}[escapechar=\!]
 \ltjdefcharrange{4}{%
    "500-"10FF, "1200-"1DFF, "2440-"245F, "27C0-"28FF, "2A00-"2AFF,
   "2C00-"2E7F, "4DC0-"4DFF, "A4D0-"A95F, "A980-"ABFF, "E000-"F8FF,
   "FB00-"FE0F, "FE20-"FE2F, "FE70-"FEFF, "10000-"1AFFF, "1B170-"1F0FF,
-  "1F300-"1FFFF, ... (characters in "2000-"206F which are not in range 9)
+  "1F300-"1FFFF, ... !\rmfamily (and characters in \texttt{U+2000}--\texttt{U+206F} which are not in range 9)!
 } % non-Japanese
 \end{lstlisting}
 %<en>\item[Range~5${}^{\text{A}}$] Surrogates and Supplementary Private Use Areas.
@@ -3426,43 +3427,123 @@ so TrueType/OpenType fonts with features can be used for Japanese fonts:
 TrueType/OpenTypeフォントにfeatureを指定したものを和文フォントとして用いる
 ことができる:
 %</ja>
-\begin{LTXexample}[width=0.3\textwidth]
-\jfont\tradgt={file:KozMinPr6N-Regular.otf:script=latn;%
+\begin{LTXexample}[width=0.25\textwidth]
+\jfont\tradmc={IPAexMincho:script=latn;%
   +trad;-kern;jfm=ujis} at 14pt
-\tradgt 当/体/医/区
+\tradmc 当/体/医/区
 \end{LTXexample}
 
 %<*en>
+It is required to specify a (horizontal) \emph{JFM} in at each calling of \cs{jfont}.
+A JFM is a Lua script which contains
+measurements of characters and glues/kerns that are automatically
+inserted for Japanese typesetting.
+The structure of JFM will be described in the next subsection.
+%</en>
+%<*ja>
+\cs{jfont}命令の実行ごとにどの(横組用)JFMを用いるのかを指定する必要がある.
+JFMは文字の寸法情報と和文組版で自動的に挿入される
+グルー/カーンの寸法情報を持っているLuaスクリプトで,その構造は次の節で述べる.
+%</ja>
+
+%<*en>
 Note that the defined control sequence
-(\cs{tradgt} in the example above) using \cs{jfont} is not a
+(\cs{tradmc} in the example above) using \cs{jfont} is not a
 \textit{font\_def} token,  but a macro.
-Hence the input like \verb+\fontname\tradgt+
+Hence the input like \verb+\fontname\tradmc+
 causes a error.  We denote control sequences which are defined in
 \cs{jfont} by <jfont\_cs>.
 %</en>
 %<*ja>
-なお,\cs{jfont} で定義された制御綴(上の例だと \cs{tradgt})
-は\textit{font\_def}トークンではなくマクロである.従って,\verb+\fontname\tradgt+ のような
+なお,\cs{jfont} で定義された制御綴(上の例だと \cs{tradmc})
+は\textit{font\_def}トークンではなくマクロである.従って,\verb+\fontname\tradmc+のような
 入力はエラーとなる.以下では \cs{jfont} で定義された
 制御綴を<jfont\_cs>で表す.
 %</ja>
 
-\paragraph{JFM}
+%<en>\paragraph{Specifying JFM}
+%<ja>\paragraph{JFMの指定}
+%<en> The general scheme for specifying a JFM is the following:
+%<ja> JFMの一般的な指定は次のようになっている:
+\begin{quote}
+  \cs{jfont}<jfont\_cs>\texttt{=...;jfm=}<JFM name>[\texttt{/\{}<JFM features>\texttt{\}}]%
+  \texttt{;...;}[\texttt{jfmvar=}<identifier>]\texttt{;...}
+\end{quote}
+
+\begin{figure}
+\begin{LTXexample}[width=0.3\textwidth]
+\ltjsetparameter{differentjfm=both}
+\jfont\F=HaranoAjiMincho-Regular:jfm=ujis
+\jfont\G=HaranoAjiGothic-Medium:jfm=ujis
+\jfont\H=HaranoAjiGothic-Medium:jfm=ujis;jfmvar=hoge
+\F ){\G 【】}( % halfwidth space
+   ){\H 『』}( % fullwidth space
+
+ほげ,{\G 「ほげ」}(ほげ)\par
+ほげ,{\H 「ほげ」}(ほげ)% pTeX-like
+
+\ltjsetparameter{differentjfm=paverage}
+\end{LTXexample}
+\caption{Example of \texttt{jfmvar} key}
+\label{fig:jfmvar}
+\end{figure}
+
 %<*en>
-a JFM has measurements of characters and
-glues/kerns that are automatically inserted for Japanese
-typesetting. The structure of JFM will be described in the next
-subsection. At the calling of \cs{jfont}, you must specify
-which JFM will be used for this font by the following keys:
+\begin{description}
+\item[<JFM name>]
+  The name of a (horizontal) JFM. \LuaTeX-ja searches and loads \texttt{jfm-<JFM name>.lua}.
+\item[<JFM features>]
+  An optional comma-separated list of JFM options.
+  Enclosing braces (\verb+{}+) are optional, but this does not escape any characters.
+  The contents of this list can be accessed by a table \texttt{luatexja.jfont.jfm\_feature}
+  from a JFM, at its loading.
+\item[<identifier>]
+  An optional string.
+\end{description}
+
+LuaTeX-ja ``does not distinguish'' two Japanese fonts which uses same JFM and are the same size.
+Here ``uses same JFM'' means that all~of <JFM name>, <JFM features>~and~<identifier> of two fonts
+agree.
+
+For example, The first ``)'' and ``【'' in \autoref{fig:jfmvar} are typeset in different real fonts.
+However, because they use the same JFMs and their size are same,
+\LuaTeX-ja inserts penalties, glues and kerns as if these two character are typeset in a same font.
+Namely, the glue between these characters is halfwidth, as in ``)\nobreak【''.
+
+However, this does not applies with \cs{F}~and~\cs{H} in \autoref{fig:jfmvar},
+because their <identifier> are different. ...
 %</en>
 %<*ja>
-JFMは文字と和文組版で自動的に挿入される
-グルー/カーンの寸法情報を持っている.JFMの構造は次の節で述べる.
-\cs{jfont} 命令の呼び出しの際には,どのJFMを用いるのかを以下のキーで
-指定する必要がある:
+\begin{description}
+\item[<JFM name>]
+  (横組用)JFMの名称.\LuaTeX-jaは\texttt{jfm-<JFM name>.lua}というファイルを探索して読み込む.
+\item[<JFM features>]
+  省略可能なコンマ区切りリスト.全体を囲む\verb+{}+は省略可能であるが,
+  囲ったからといって<JFM features>の中で使用可能な文字が増えるわけではない.
+  <JFM features>で指定された内容は,テーブル\texttt{luatexja.jfont.jfm\_feature}として
+  JFM読み込み時に(JFMから)アクセス可能である.
+\item[<identifier>]
+  省略可能な文字列.
+\end{description}
+
+\LuaTeX-jaはJFMとサイズが同じで,
+  実フォントだけが異なる2つの和文フォントは「区別されない」.
+ここで「JFMが同じ」とは,両フォントの<JFM name>, <JFM features>, <identifier>が
+全て一致することである.
+
+例えば\autoref{fig:jfmvar}において,最初の「)」と「【」の実フォントは異なるが,
+JFMもサイズも同じなので,普通に「)\nobreak【」と入力した時と同じように組まれる,つまり両文字の間は半角空きとなる.
+
+しかし,JFMとサイズが同じであっても,\texttt{jfmvar} キーの異なる
+2つの和文フォント,例えば\autoref{fig:jfmvar}で言う \cs{F} と \cs{H},
+は「区別される」.異なる和文フォントに異なる \texttt{jfmvar} キーを割り当て,
+かつ\Param{differentjfm}パラメータを \texttt{both} に設定すれば,
+\pTeX と似た状況で組版されることになる.
 %</ja>
 
 
+%<en>\paragraph{Default horizontal JFMs}
+%<ja>\paragraph{標準の横組用JFM}
 \begin{table}[t]
 %<en>\caption{Differences between horizontal JFMs shipped with \LuaTeX-ja}
 %<ja>\caption{\LuaTeX-ja に同梱されている横組用JFMの違い}
@@ -3514,24 +3595,13 @@ JFMは文字と和文組版で自動的に挿入される
 \ltjsetparameter{jacharrange={-3}}
 \end{table}
 
-\begin{cslist}
-\item[jfm=<name>]
-%<*en>
-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 horizontal JFMs are shipped with \LuaTeX-ja:
-%</en>
-%<*ja>
-用いる(横組用)JFMの名前を指定する.もし以前に指定されたJFMが読み込まれていなければ,
-\texttt{jfm-<name>.lua}を読み込む.以下の横組用JFMが\LuaTeX-jaには同梱されている:
-%</ja>
+%<en> The following horizontal JFMs are shipped with \LuaTeX-ja:
+%<ja> 以下の横組用JFMが\LuaTeX-jaには同梱されている:
 \begin{description}
 %<*en>
 \item[\texttt{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.
+  is used in \upTeX. When you are going to use the \Pkg{luatexja-otf} package, you should use this JFM.
 %</en>
 %<*ja>
 \item[\texttt{jfm-ujis.lua}] \LuaTeX-jaの標準JFMである.このJFMは\upTeX で
@@ -3571,50 +3641,29 @@ The difference among these three~JFMs is  shown in \autoref{tab-difjfm}.
 \cite{min10}の図3,~4のものを用いた.
 %</ja>
 
-\begin{figure}
-\begin{LTXexample}[width=0.3\textwidth]
-\ltjsetparameter{differentjfm=both}
-\jfont\F=file:KozMinPr6N-Regular.otf:jfm=ujis
-\jfont\G=file:KozGoPr6N-Medium.otf:jfm=ujis
-\jfont\H=file:KozGoPr6N-Medium.otf:jfm=ujis;jfmvar=hoge
-\F ){\G 【】}( % halfwidth space
-   ){\H 『』}( % fullwidth space
-
-ほげ,{\G 「ほげ」}(ほげ)\par
-ほげ,{\H 「ほげ」}(ほげ)% pTeX-like
-
-\ltjsetparameter{differentjfm=paverage}
-\end{LTXexample}
-\caption{Example of \texttt{jfmvar} key}
-\label{fig:jfmvar}
-\end{figure}
-
+%<*ja>
+また,プロポーショナル組用に\texttt{jfm-prop.lua}と\texttt{jfm-propw.lua}も用意されている.
+どちらのJFMも文字幅の情報と自動挿入されるグルー・カーンの情報は持たない(つまりグリフの文字幅をそのまま採用する).
+\texttt{jfm-prop.lua}と\texttt{jfm-propw.lua}の差は,前者が
+文字の高さ・深さ情報も持たないのに対し,後者は持っている点である
+\footnote{プロポーショナル組の状況でルビをつけたい,などという状況では\texttt{jfm-propw.lua}が有用かもしれない.}.
+%</ja>
 %<*en>
-\item[jfmvar=<string>]
-Sometimes there is a need that \ldots.
+Furthermore, \LuaTeX-ja also ship two JFMs, namely \texttt{jfm-prop.lua}~and~\texttt{jfm-propw.lua},
+  for ``proportional typesetting''.
+Both JFMs don't have any character width information, nor glues/kerns information.
+\texttt{jfm-prop.lua} also also not have character height and depth information, while \texttt{jfm-propw.lua} has them.
 %</en>
-%<*ja>
-\item[jfmvar=<string>]
-標準では,JFMとサイズが同じで,
-  実フォントだけが異なる2つの和文フォントは「区別されない」.例えば
-\autoref{fig:jfmvar}において,最初の「)」と「【」の実フォントは異なるが,
-JFMもサイズも同じなので,普通に「)【」と入力した時と同じように半角空きとなる.
 
-しかし,JFMとサイズが同じであっても,\texttt{jfmvar} キーの異なる
-2つの和文フォント,例えば\autoref{fig:jfmvar}で言う \cs{F} と \cs{H},
-は「区別される」.異なる和文フォントに異なる \texttt{jfmvar} キーを割り当て,
-かつ\Param{differentjfm}パラメータを \texttt{both} に設定すれば,
-\pTeX と似た状況で組版されることになる.
-%</ja>
-\end{cslist}
+
 
 \begin{figure}
 \begin{LTXexample}[pos=t]
 \newcommand\test{\vrule ダイナミックダイクマ\vrule\\}
-\jfont\KMFW = KozMinPr6N-Regular:jfm=prop;-kern at 17pt
-\jfont\KMFK = KozMinPr6N-Regular:jfm=prop at 17pt % kern is activated
-\jfont\KMPW = KozMinPr6N-Regular:jfm=prop;script=dflt;+pwid;-kern at 17pt
-\jfont\KMPK = KozMinPr6N-Regular:jfm=prop;script=dflt;+pwid;+kern at 17pt
+\jfont\KMFW = HaranoAjiMincho-Regular:jfm=prop;-kern at 17.28pt
+\jfont\KMFK = HaranoAjiMincho-Regular:jfm=prop at 17.28pt % kern is activated
+\jfont\KMPW = HaranoAjiMincho-Regular:jfm=prop;script=dflt;+palt;-kern at 17.28pt
+\jfont\KMPK = HaranoAjiMincho-Regular:jfm=prop;script=dflt;+palt;+kern at 17.28pt
 \begin{multicols}{2}
 \ltjsetparameter{kanjiskip=0pt}
 {\KMFW\test \KMFK\test \KMPW\test \KMPK\test}
@@ -3652,8 +3701,8 @@ NFSS2用の命令(\ref{ssec:chgfnt}節,\ref{ssec:nfsspat}節)における
 カーニング情報は標準で使用する}ことになっているようである.
 言い換えれば,カーニング情報を使用しない設定にするには,面倒でも
 \begin{lstlisting}
-\jfont\hoge=KozMinPr6N-Regular:jfm=ujis;-kern at 3.5mm
-\DeclareFontShape{JY3}{fuga}{m}{n} {<-> s*KozMinPr6N-Regular:jfm=ujis;-kern}{}
+\jfont\hoge=HaranoAjiMincho-Regular:jfm=ujis;-kern at 3.5mm
+\DeclareFontShape{JY3}{fuga}{m}{n} {<-> s*HaranoAjiMincho-Regular:jfm=ujis;-kern}{}
 \end{lstlisting}
 のように,\texttt{-kern} という指定を自分で追加しなければいけない.
  \item
@@ -3664,6 +3713,7 @@ NFSS2用の命令(\ref{ssec:chgfnt}節,\ref{ssec:nfsspat}節)における
 %</ja>
 
 %<*ja>
+\newpage
 \paragraph{\texttt{extend}と\texttt{slant}}
 OpenType機能と見かけ上同じような形式で指定できるものに,
 \begin{description}
@@ -3684,44 +3734,32 @@ The following setting can be specified as OpenType font features:
 \item[\texttt{slant=}<slant>] slant the font.
 \end{cslist}
 Note that \LuaTeX-ja doesn't adjust JFMs by these \texttt{extend} and \texttt{slant}
-settings; you have to write new JFMs on purpose.
+settings; one have to write new JFMs on purpose.
 For example, the following example uses the standard JFM \texttt{jfm-ujis.lua}, hence
 letter-spacing and the width of italic correction are not correct:
 %</en>
 \begin{LTXexample}[width=0.3\textwidth]
-\jfont\E=KozMinPr6N-Regular:extend=1.5;jfm=ujis;-kern
-\E あいうえお
-
-\jfont\S=KozMinPr6N-Regular:slant=1;jfm=ujis;-kern
-\S あいう\/ABC
+\jfont\E=HaranoAjiMincho-Regular:extend=1.5;jfm=ujis;-kern
+\jfont\S=HaranoAjiMincho-Regular:slant=1;jfm=ujis;-kern
+\E あいうえお \S あいう\/ABC
 \end{LTXexample}
 
 %<*ja>
-\paragraph{\texttt{ltjksp} 指定}
+\paragraph{\texttt{ltjksp}指定}
 \label{pg:ltjksp}
 \LuaTeX-ja標準では,
-JFM中における \texttt{kanjiskip\_natural}, \texttt{kanjiskip\_stretch},\
+JFM中における\texttt{kanjiskip\_natural}, \texttt{kanjiskip\_stretch},\
 \texttt{kanjiskip\_shrink}キー(\pageref{pg:ksp_nat}ページ)の使用によって,
 「JFM由来のグルーの他に,\Param{kanjiskip}の自然長/伸び量/縮み量の一部が
 同じ場所に挿入される」という状況が起こりうる.
 この機能を無効化し,バージョン20150922.0以前と同じような組版を得るためには
-他のOpenType機能と同じように\ \texttt{-ltjksp}\ 指定を行えば良い.
-\begin{LTXexample}[width=16\zw]
-\leavevmode
-\ltjsetparameter{kanjiskip=0pt plus 3\zw}
-\vrule\hbox to 15\zw{あ「い」う,えお}\vrule
-
-\jfont\G=file:KozMinPr6N-Regular.otf%
-  :jfm=ujis;-ltjksp at 9.2487pt
-\G\leavevmode%
-\vrule\hbox to 15\zw{あ「い」う,えお}\vrule
-\end{LTXexample}
+他のOpenType機能と同じように\texttt{-ltjksp}指定を行えば良い(\autoref{fig:ltjksp}参照).
 なお,
 \begin{lstlisting}
- \jfont\G=file:KozMinPr6N-Regular.otf:jfm=ujis;-ltjksp;+ltjksp at 9.2487pt
+ \jfont\G=HaranoAjiMincho-Regular:jfm=ujis;-ltjksp;+ltjksp at \zw
 \end{lstlisting}
-のように \texttt{+ltjksp} 指定を行った場合は,\texttt{kanjiskip\_natural} など
-3キーは再び有効化される.\texttt{-ltjksp}, \texttt{+ltjksp} を複数回指定した場合は,
+のように\texttt{+ltjksp}指定を行った場合は,\texttt{kanjiskip\_natural}など
+3キーは再び有効化される.\texttt{-ltjksp}, \texttt{+ltjksp}を複数回指定した場合は,
 最後に指定したものが有効となる.
 %</ja>
 %<*en>
@@ -3731,21 +3769,39 @@ JFM中における \texttt{kanjiskip\_natural}, \texttt{kanjiskip\_stretch},\
 \texttt{kanjiskip\_shrink} keys (Page~\pageref{pg:ksp_nat}) makes tha
 \LuaTeX-ja inserts not only a glue which is specified by a JFM, and also
 the natural width/stretch part/shrink part of \Param{kanjiskip}.
-
-This functionality is disabled by \texttt{-ltjksp} specification.
+This functionality is disabled by \texttt{-ltjksp} specification,
+as shown in~\autoref{fig:ltjksp}.
+%</en>
+\begin{figure}
 \begin{LTXexample}[width=16\zw]
 \leavevmode
 \ltjsetparameter{kanjiskip=0pt plus 3\zw}
-\vrule\hbox to 15\zw{あ「い」う,えお}\vrule
-
-\jfont\G=file:KozMinPr6N-Regular.otf%
-  :jfm=ujis;-ltjksp at 9.2487pt
+\vrule\hbox to 15\zw{あ「い」う,えお}\vrule\\
+\jfont\G=HaranoAjiMincho-Regular%
+  :jfm=ujis;-ltjksp at \zw
 \G\leavevmode%
 \vrule\hbox to 15\zw{あ「い」う,えお}\vrule
 \end{LTXexample}
-%</en>
+\caption{\texttt{ltjksp}}
+\label{fig:ltjksp}
+\end{figure}
 
+%<*ja>
+\paragraph{JFM feature(\LuaTeX-ja~20200919.0以降)}
+\ref{ssec:jfm-str}節で述べるように,JFMファイルはLuaスクリプトである.
+そのため,JFMを読み込む際にグローバル変数の値を参照して挙動を変えることができる.
+たとえば阿部紀行氏によるjlreqで使われている\texttt{jfm-jlreq.lua}では,
+\begin{quote}
+  JFMを読み込む際に変数\texttt{jlreq.danraku}の値を参照し,
+  この値が\verb+"zenkakunibu"+や\verb+"nibu"+のときは段落行頭の開き括弧の下げ量を設定する
+\end{quote}
+などといったことが行われている.
 
+バージョン20200919.0以降では,JFM指定で...
+%</ja>
+%<*en>
+\paragraph{JFM feature (introduced in \LuaTeX-ja~20200919.0)}
+%</en>
 
 
 %<en>\subsection{\cs{tfont}}
@@ -3802,17 +3858,17 @@ This functionality is disabled by \texttt{-ltjksp} specification.
 
 %<*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}.
+This command admits the same syntax as 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,
+       \texttt{vert} is used 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\S=HaranoAjiMincho-Regular:jfm=ujisv % vrt2 is automatically activated
+\tfont\T=HaranoAjiMincho-Regular: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}
@@ -3826,7 +3882,7 @@ A font defined by~\cs{tfont} differs the following points from that by~\cs{jfont
  \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>}.
+ \item \cs{tfont} uses a vertical JFM instead of a horizontal JFM.
 \LuaTeX-ja ships following vertical JFMs:
 \begin{description}
 \item[\texttt{jfm-ujisv.lua}] A standard vertical JFM in \LuaTeX-ja. This JFM is
@@ -3837,9 +3893,9 @@ A font defined by~\cs{tfont} differs the following points from that by~\cs{jfont
 \end{description}
 \begin{figure}[!tb]
 \begin{LTXexample}[pos=b]
-\jfont\X=[KozMinPr6N-Regular.otf]:jfm=ujis
-\tfont\U=[KozMinPr6N-Regular.otf]:jfm=ujisv
-\tfont\V=[KozMinPr6N-Regular.otf]:jfm=ujisv;jpotf
+\jfont\X=[HaranoAjiMincho-Regular.otf]:jfm=ujis
+\tfont\U=[HaranoAjiMincho-Regular.otf]:jfm=ujisv
+\tfont\V=[HaranoAjiMincho-Regular.otf]:jfm=ujisv;jpotf
 \def\TEST#1#2{\leavevmode\hbox{#1#2\string#2 “引用,と句読点.”}}
 \ttfamily\centering\TEST\yoko\X \quad \TEST\tate\U \quad \TEST\tate\V
 \end{LTXexample}
@@ -3852,26 +3908,28 @@ A font defined by~\cs{tfont} differs the following points from that by~\cs{jfont
   By default, it substitutes ideographic comma/period for fullwidth comma/period,
   and double prime quotation marks for double quotation marks
   (See~\autoref{fig:jpotf}).
+  One can customize substitutions by lua~function \verb+luatexja.jfont.register_vert_replace+\ %
+  (see Japanese version of this manual).
 \end{itemize}
 %</en>
 %<*ja>
 \cs{tfont} はフォントを縦組用の和文フォントとして読み込む命令であり,
-\cs{tfont} ã\81®æ\96\87æ³\95ã\81¯ \cs{jfont} ã\81¨å\90\8cã\81\98ã\81§ã\81\82ã\82\8bï¼\8e
-\cs{tfont} で定義された縦組用和文フォントは,
-以下の点が \cs{jfont} による横組用和文フォントとは異なる:
+\cs{tfont}ã\81®æ§\8bæ\96\87ã\81¯\cs{jfont}ã\81¨å\90\8cæ§\98ã\81§ã\81\82ã\82\8bï¼\8e
+\cs{tfont}で定義された縦組用和文フォントは,
+以下の点が\cs{jfont}による横組用和文フォントとは異なる:
 \begin{itemize}
- \item 明示的に \texttt{vert}, \texttt{vrt2}(のいずれか)の
-  有効・無効を指定した場合を除き,自動的に OpenType機能 \texttt{vrt2} の有効化が
+ \item 明示的に\texttt{vert}, \texttt{vrt2}(のいずれか)の
+  有効・無効を指定した場合を除き,自動的にOpenType機能\texttt{vrt2}の有効化が
   指定されたものとみなされる
  \footnote{もしフォントが\texttt{vrt2}を定義していなかった場合,代わりに
  \texttt{vert}を用いる.}.
 \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\S=HaranoAjiMincho-Regular:jfm=ujisv % vrt2 is automatically activated
+\tfont\T=HaranoAjiMincho-Regular: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 \texttt{vert}, \texttt{vrt2} の少なくとも一つの有効を指定した場合にも関わらず,
+ \item \texttt{vert}, \texttt{vrt2}の少なくとも一つの有効を指定した場合にも関わらず,
   script tagとlanguage system identifierの値の組み合わせによって
   実際には有効にならなかった場合,\LuaTeX-jaは
  \begin{quote}
@@ -3887,7 +3945,7 @@ A font defined by~\cs{tfont} differs the following points from that by~\cs{jfont
  \item さらに,「いかなるscript,~languageでも\texttt{vert}により置換されない」グリフ
   のうち,UAX~\#50で``r''もしくは``Tr''と指定されているものは90度自動回転させる.
  \item \ref{ssec:math}節で述べる,数式中の和文フォントには縦組用和文フォントは指定できない.
- \item \texttt{jfm=<name>}\ の部分には縦組用JFMを指定する.
+ \item <JFM name>には縦組用JFMを指定する.
 以下の縦組用JFMが\LuaTeX-jaには同梱されている.%おり,違いを\autoref{tab-difjfm-tate}に示した.
 \begin{description}
 \item[\texttt{jfm-ujisv.lua}] \LuaTeX-jaの標準縦組用JFMである.このJFMは\upTeX で
@@ -3900,9 +3958,9 @@ A font defined by~\cs{tfont} differs the following points from that by~\cs{jfont
 
 \begin{figure}[!tb]
 \begin{LTXexample}[pos=r,width=.4\textwidth]
-\jfont\X=[KozMinPr6N-Regular.otf]:jfm=ujis
-\tfont\U=[KozMinPr6N-Regular.otf]:jfm=ujisv
-\tfont\V=[KozMinPr6N-Regular.otf]:jfm=ujisv;jpotf
+\jfont\X=[HaranoAjiMincho-Regular.otf]:jfm=ujis
+\tfont\U=[HaranoAjiMincho-Regular.otf]:jfm=ujisv
+\tfont\V=[HaranoAjiMincho-Regular.otf]:jfm=ujisv;jpotf
 \def\TEST#1#2{\leavevmode
   \hbox{#1#2\string#2 “引用,と句読点.”}}
 \ttfamily\centering
@@ -3988,7 +4046,8 @@ For example,
 \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.
+Harano Aji fonts.
+%IPAex~Mincho and IPAex~Gothic.
 
 This feature is intended for classes which use special JFMs
 \footnote{This is because commands has \texttt{@} in their names.}.
@@ -4721,6 +4780,26 @@ Hence we have the following result:
 (optional, version~2 or~later)
 %</en>
 
+  \item[round\_threshold=<float>]
+%<*ja>
+(任意,バージョン3以降,文字クラス0のみ)
+
+「実際のグリフの幅に合わせて文字幅を整数倍する」際のしきい値を指定する.
+より正確に述べると,次のようになる.このフィールドに正の数$r$が指定されていたとし,
+文字クラス0で指定されている文字幅が$w$,文字クラス0に属する文字のグリフの幅が$w'$であったとする.
+$n=\nint(w/w')$とした
+\footnote{ここで,$\nint(a)=\lfloor a+0.5\rfloor$は$a$に「もっとも近い整数」を表す.}
+とき,もし$w'>w$かつ$|w/w'-n|\char`<r$であれば,JFMで文字幅$nw$が指定されたものとして扱う.
+
+この機能は,ほとんど源ノ明朝・源ノ角ゴシックにおける2倍角・3倍角ダッシュの合字のために実装されたと
+言ってもよい.これらのグリフは\LuaTeX 内部ではUnicodeの私用領域に割り当てられるので,
+JFM側で番号を指定することができない.
+%</ja>
+%<*en>
+(optional, version~3 or~later, only available in character class~0)
+%</en>
+
+
 \end{cslist}
 
 %<*ja>
@@ -4748,9 +4827,8 @@ using  \texttt{jfm-test.lua} which contains the following:
 %<ja>ここで,次のような入力とその実行結果を考える:
 %<en>Now consider the following input/output:
 \begin{LTXexample}[width=0.3\textwidth]
-\jfont\a=file:KozMinPr6N-Regular.otf:jfm=test;+hwid
-\setbox0\hbox{\a ヒ漢}
-\the\wd0
+\jfont\a=IPAexMincho:jfm=test;+hwid
+\setbox0\hbox{\a ヒ漢}\the\wd0
 \end{LTXexample}
 %<*en>
 Now we look why the above source outputs 15\,pt.
@@ -4783,7 +4861,7 @@ The following input is an example.
 但し,JFMによって決まる置換後のグリフの文字クラスが0である場合は,置換前の文字クラスを採用する.
 %</ja>
 \begin{LTXexample}[width=0.3\textwidth]
-\jfont\a=file:KozMinPr6N-Regular.otf:jfm=test;+vert
+\jfont\a=HaranoAjiMincho-Regular:jfm=test;+vert
 \a 漢。\inhibitglue 漢
 \end{LTXexample}
 %<*en>
@@ -4812,7 +4890,7 @@ as follows:
 %<ja>\paragraph{仮想的な文字}
 %<en>\paragraph{Imaginary characters}
 %<*en>
-As described before, you can specify several ``imaginary characters'' in
+As described before, one can specify several ``imaginary characters'' in
 \texttt{chars} field. The most of these characters are regarded as the
 characters of class 0 in \pTeX.
 As a result, \LuaTeX-ja can control typesetting finer than \pTeX.
@@ -4922,7 +5000,7 @@ See Japanese version of this manual.
 \texttt{'parbdd'}を入れれば全角下がりとなる.
 
 \begin{LTXexample}[width=0.4\textwidth]
-\jfont\g=KozMinPr6N-Regular:jfm=test \g
+\jfont\g=HaranoAjiMincho-Regular:jfm=test \g
 \parindent1\zw\noindent{}◆◆◆◆◆
 \par 「◆◆←二分下がり
 \par 【◆◆←全角下がり
@@ -4962,7 +5040,7 @@ an external package is needed to support this in plain \TeX\ and
 \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.
+one can set both \cs{fam} and \cs{jfam} to the same value.
 Here <jfont\_cs> in the argument of \Param{jatextfont} etc.\ is
 a control sequence which is defined by \cs{jfont}, i.e.,
 a \emph{horizontal} Japanese font.
@@ -5013,7 +5091,7 @@ be accessed via \verb+luatexbase.add_to_callback+ function and so on, as other c
 %<en>\item[\texttt{luatexja.load\_jfm} callback]
 %<ja>\item[\texttt{luatexja.load\_jfm}コールバック]
 %<*en>
-With this callback you can overwrite JFMs.
+With this callback, one can overwrite JFMs.
 This callback is called when a new JFM is loaded.
 %</en>
 %<*ja>
@@ -5137,27 +5215,27 @@ JFMで指定されているそれぞれの値をスケーリングしたもの
 \end{itemize}
 $i$,~$j\in \omega$に対して,\texttt{char\_type[$i$][$j$]} は
 文字クラス$i$の文字と$j$の文字の間に挿入されるグルーやカーンを格納している.
-\begin{itemize}
-  \item 間に入るものがカーンであれば,この値は\
-\texttt{[$j$]=\{[1]=<kern\_node>, ratio=<ratio>\}} であり,
+
+間に入るものがカーンであれば,この値は%
+\texttt{[$j$]=\{[1]=<kern\_node>, ratio=<ratio>\}}であり,
 <kern\_node>はカーンを表すノードである\footnote{%
       バージョン20150420.0以降ではノードのアクセス手法にdirect access
       modelを用いているため,ノードそのものを表すユーザーデータではなく,
       内部で参照のために使われる添字(整数)である.
 }.
-  \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}
+
+グルーであれば,この値は以下のキーを持つテーブルである.
+\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}
 \item[chars\_cbcache]
 文字クラス決定の処理で.キャッシュとして使われる.
 \end{cslist}
@@ -5988,7 +6066,7 @@ the beginning of a box and ``あ'', and also between ``あ''~and~``ウ''.
 %</ja>
 
 \begin{LTXexample}[width=0.4\textwidth]
-\jfont\g=file:KozMinPr6N-Regular.otf:jfm=test \g
+\jfont\g=HaranoAjiMincho-Regular:jfm=test \g
 \fbox{\hbox{あウあ\inhibitglue ウ}}
 \inhibitglue\par\noindent あ1
 \par\inhibitglue\noindent あ2
@@ -6203,7 +6281,7 @@ g,\char`g,\ltjalchar`g,\ltjjachar`g       % ALchar unless \ltjjachar
 %<*en>
 \subsection{Loading Japanese fonts in \LaTeXe}
 \label{ssec:ltx-jfm}
-From versoin~20190107, 
+From version~20190107, 
 \emph{\LuaTeX-ja does not load Japanese fonts for horizontal direction and
   that for vertical direction at same time},
 to reduce the number of loaded fonts.
@@ -6477,13 +6555,75 @@ to <family>. See Subsection~\ref{ssec:fontfamilycmd} for detail.
 和文,\emph{もしくは両方})を<family>に変更する.詳細は\ref{ssec:fontfamilycmd}節を参照すること.
 %</ja>
 
+\item[\cs{fontshape}\{<shape>\}\textrm{, }\cs{fontshapeforce}\{<shape>\}]
+%<*en>
+As in \LaTeXe, this command changes current alphabetic font shape
+according to shape change rules.
+
+Traditionally, \cs{fontshape} changes also current Japanese font shape always.
+However, this leads a lot of \LaTeX\ font warning like
+\begin{verbatim}
+    Font shape `JY3/mc/m/it' undefined
+    using `JY3/mc/m/n' instead on ....
+\end{verbatim}
+when \cs{itshape} is called,
+because almost all Japanese fonts only have shape ``\texttt{n}'', and \cs{itshape} calls \cs{fontshape}.
+
+\LuaTeX-ja~20200323.0 change the behavior. Namely,
+\cs{fontshape\{<shape>\}}~and~\cs{fontshapeforce\{<shape>\}} change current Japanese font shape, only if
+the required shape (according to shape changing rules) or <shape> is avaliable in current Japanese font family/series.
+When this is not the case, an info such as
+\begin{verbatim}
+    Kanji font shape JY3/mc/m/it' undefined
+    No change on ...
+\end{verbatim}
+is issued instead of a warning.
+%</en>
+%<*ja>
+元々の\LaTeXe におけるものと同様に,このコマンドは現在の欧文フォントシェイプを
+\cs{DeclareFontShapeChangeRule}によるシェイプ更新規則によって変更する.
+
+伝統的には,\cs{fontshape}は無条件に和文フォントシェイプも変更した.しかし,例えば多くの和文フォントは
+シェイプが``\texttt{n}''しか持たないことと\cs{itshape}が\cs{fontshape}を呼び出すことから,
+\begin{verbatim}
+    Font shape `JY3/mc/m/it' undefined
+    using `JY3/mc/m/n' instead on ....
+\end{verbatim}
+といった警告をもたらしてしまっていた.
+
+一方,\LuaTeX-ja 20200323.0以降では,
+\cs{fontshape\{<shape>\}}, \cs{fontshapeforce\{<shape>\}}が和文フォントシェイプを更新するのは,
+シェイプ更新規則に基づいた値や<shape>の少なくとも一つが現在の和文フォントファミリ・シリーズで利用可能なときに限られる.
+どちらでもなく,和文フォントシェイプが変更されなかった場合には
+\begin{verbatim}
+    Kanji font shape JY3/mc/m/it' undefined
+    No change on ...
+\end{verbatim}
+というinfo(警告でなく)を出力する.
+%</ja>
+
+\item[\cs{kanjishape}\{<shape>\}\textrm{, }\cs{kanjishapeforce}\{<shape>\}]
+%<*en>
+\cs{kanjishape\{<shape>\}} changes current Japanese font shape according to shape change rules, and
+\cs{kanjishapeforce\{<shape>\}} changes current Japanese font shape to <shape>, regardless of the rules.
+Hence \cs{kanjishape\{it\}} produces a warning
+\begin{verbatim}
+    Font shape `JY3/mc/m/it' undefined
+    using `JY3/mc/m/n' instead on ....
+\end{verbatim}
+which is not produced by \cs{fontshape\{it\}}.
+%</en>
+%<*ja>
+  ...
+%</ja>
+
 
 \begin{figure}[!tb]
 \begin{LTXexample}[pos=b]
 \DeclareKanjiFamily{JY3}{edm}{}
-\DeclareFontShape{JY3}{edm}{m}{n}   {<-> s*KozMinPr6N-Regular:jfm=ujis;}{}
-\DeclareFontShape{JY3}{edm}{m}{fb}  {<-> s*KozGoPr6N-Regular:jfm=ujis}{}
-\DeclareFontShape{JY3}{edm}{m}{fb2} {<-> s*KozGoPr6N-Medium:jfm=ujis}{}
+\DeclareFontShape{JY3}{edm}{m}{n}   {<-> s*HaranoAjiMincho-Regular:jfm=ujis}{}
+\DeclareFontShape{JY3}{edm}{m}{fb}  {<-> s*HaranoAjiGothic-Regular:jfm=ujis;color=003FFF}{}
+\DeclareFontShape{JY3}{edm}{m}{fb2} {<-> s*HaranoAjiGothic-Regular:jfm=ujis;color=FF1900}{}
 \DeclareAlternateKanjiFont{JY3}{edm}{m}{n}{JY3}{edm}{m}{fb}{ "4E00-"67FF,{-2}-{-2}}
 \DeclareAlternateKanjiFont{JY3}{edm}{m}{n}{JY3}{edm}{m}{fb2}{"6800-"9FFF}
 {\kanjifamily{edm}\selectfont
@@ -6863,11 +7003,11 @@ will not be embedded in the output PDF file. See Subsection~\ref{ssec:psft}.
 \begin{figure}[!tb]
 \begin{LTXexample}[width=0.25\textwidth]
 \jfontspec[
-  YokoFeatures={FakeBold=3}, TateFeatures={FakeBold=6},
-  TateFont=KozGoPr6N-Regular
-]{KozMinPr6N-Regular}
+  YokoFeatures={Color=FF1900}, TateFeatures={Color=003FFF},
+  TateFont=HaranoAjiGothic-Regular
+]{HaranoAjiMincho-Regular}
 \hbox{\yoko 横組のテスト}\hbox{\tate 縦組のテスト}
-\addjfontfeatures{FakeBold=0}
+\addjfontfeatures{Color=00AF00}
 \hbox{\yoko 横組}\hbox{\tate 縦組}
 \end{LTXexample}
 %<ja>\caption{\texttt{TateFeatures} 等の使用例}
@@ -6913,11 +7053,11 @@ A demonstrarion is shown in \autoref{fig:yokotate-fontspec}.
 \begin{LTXexample}[pos=b]
 \jfontspec[
   AltFont={
-    {Range="4E00-"67FF, Font=KozGoPr6N-Medium},
-    {Range="6800-"9EFF, FakeBold=4},
-    {Range="3040-"306F, Font=KozGoPr6N-Regular},
+    {Range="4E00-"67FF, Font=HaranoAjiGothic-Regular, Color=003FFF},
+    {Range="6800-"9EFF, Color=FF1900},
+    {Range="3040-"306F, Font=HaranoAjiGothic-Regular, Color=35A16B},
   }
-]{KozMinPr6N-Regular}
+]{HaranoAjiMincho-Regular}
 日本国民は、正当に選挙された国会における代表者を通じて行動し、われらとわれらの子孫のために、
 諸国民との協和による成果と、わが国全土にわたつて自由のもたらす恵沢を確保し、……
 \end{LTXexample}
@@ -6977,7 +7117,7 @@ For example,
 \begin{lstlisting}
 AltFont = {
   { Font=HogeraMin-Light, BoldFont=HogeraMin-Bold,
-    Range="3000-"30FF, BoldFeatures={FakeBold=1} }
+    Range="3000-"30FF, BoldFeatures={Color=FF1900} }
 }
 \end{lstlisting}
 does \emph{not} work. Instead, one have to write
@@ -6986,7 +7126,7 @@ UprightFeatures = {
   AltFont = { { Font=HogeraMin-Light, Range="3000-"30FF, } },
 },
 BoldFeatures = {
-  AltFont =  { { Font=HogeraMin-Bold, Range="3000-"30FF, FakeBold=1 } },
+  AltFont =  { { Font=HogeraMin-Bold, Range="3000-"30FF, Color=FF1900 } },
 }
 \end{lstlisting}
 
@@ -7009,7 +7149,7 @@ has no effect, because a color specification is already done in
 \begin{lstlisting}
 AltFont = {
   { Font=HogeraMin-Light, BoldFont=HogeraMin-Bold,
-    Range="3000-"30FF, BoldFeatures={FakeBold=1} }
+    Range="3000-"30FF, BoldFeatures={Color=FF1900} }
 }
 \end{lstlisting}
 のように指定することは出来ず,
@@ -7018,7 +7158,7 @@ UprightFeatures = {
   AltFont = { { Font=HogeraMin-Light, Range="3000-"30FF, } },
 },
 BoldFeatures = {
-  AltFont =  { { Font=HogeraMin-Bold, Range="3000-"30FF, FakeBold=1 } },
+  AltFont =  { { Font=HogeraMin-Bold, Range="3000-"30FF, Color=FF1900 } },
 }
 \end{lstlisting}
 のように指定しなければならない.
@@ -7057,6 +7197,9 @@ If the Japanese font is neither Adobe-Japan1,~Adobe-GB1, Adobe-CNS1,
 Adobe-Korea1,~nor~Adobe-KR 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''.
+
+Note that if the Japanese font is loaded using the HarfBuzz library, this \cs{CID}
+command does not work.
 %</en>
 %<*ja>
 CID番号が<number>の文字を出力する.
@@ -7066,9 +7209,11 @@ CID番号が<number>の文字を出力する.
   特に縦組用グリフのCID番号を指定した場合は(LuaTeX-ja 20190504.0以降では若干改良されているが)
   意図しない結果になる可能性が高い.
   なお,バージョン20190708.0以降では,CIDからグリフへの選択にグリフ名の情報を使用していない.
-  また,フォントにIVDコレクションAdobe-Japan1が含まれていれば,その情報を用いて
+  また,フォントにAdobe-Japan1のIVSが含まれていれば,その情報を用いて
   グリフを選択する.
 }を出力する.
+
+なお,現在の和文フォントがHarfBuzzを用いて読み込まれた場合には,\cs{CID}は正しく動作しない.
 %</ja>
 
 \item[\cs{UTF}\{<hex\_number>\}]
@@ -8061,17 +8206,15 @@ There is not rounded gothic family in Kozuka 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対応である.
 
\81ªã\81\8aï¼\8cæ\98\8eæ\9c\9dä½\93ç´°å­\97ã\81¨ã\81\97ã\81¦ç\94¨ã\81\84ã\82\8bã\83\92ã\83©ã\82®ã\83\8eæ\98\8eæ\9c\9dä½\93W2ã\81¯OS~Xã\82\84ä¸\80太é\83\8eã\81«ã\81¯ã\83\90ã\83³ã\83\89ã\83«ã\81\95ã\82\8cã\81¦ã\81\8aã\82\89ã\81\9aï¼\8c
+なお,明朝体細字として用いるヒラギノ明朝体W2はOS~Xにはバンドルされておらず,
 別途購入する必要がある.
 %</ja>
 \begin{center}\small
@@ -8273,7 +8416,7 @@ Std/StdNフォントであり,その他はAdobe-Japan1-5対応である.
 \midrule
 %<en>\textit{rounded gothic}
 %<ja>\textgt{丸ゴシック}
-&&\AD{Sans}{Heavy}\\
+&&\AD{Sans}{Medium}\\
 \bottomrule
 \end{tabular}
 \end{center}
@@ -8305,7 +8448,7 @@ Std/StdNフォントであり,その他はAdobe-Japan1-5対応である.
 \midrule
 %<en>\textit{rounded gothic}
 %<ja>\textgt{丸ゴシック}
-&&\AD{Sans}{Black}\\
+&&\AD{Sans}{Medium}\\
 \bottomrule
 \end{tabular}
 \end{center}
@@ -8341,7 +8484,7 @@ There is not rounded gothic family in Harano Aji Fonts.
 \midrule
 %<en>\textit{rounded gothic}
 %<ja>\textgt{丸ゴシック}
-&&HaranoAjiGothic-Heavy.otf\\
+&&HaranoAjiGothic-Medium.otf\\
 \bottomrule
 \end{tabular}
 \end{center}
@@ -10448,7 +10591,8 @@ variation selectors are ``combined'' with the previous character.
  \item trueの場合は,異体字セレクタは「直前の文字に続けて」出力されるため,
 例えば以下の例(左側は入力,右側はその出力)のようになる.
 %</ja>
-\begin{LTXexample}
+%%%% [preset=...]: workaround for lstlisting inside LTXexample
+\begin{LTXexample}[preset=\expandafter\def\csname @captype\endcsname{lstlisting}]
 \begin{lstlisting}[vsraw=true]
 葛󠄀城市,葛󠄁飾区,葛西
 \end{lstlisting}
@@ -10464,7 +10608,7 @@ The default setting of the \texttt{vscmd} key produces the following.
 どのような形で出力されるかを規定するのが \texttt{vscmd} キーであり,
 \Pkg{lltjp-listings} の標準設定では以下の例の右側のように出力される.
 %</ja>
-\begin{LTXexample}
+\begin{LTXexample}[preset=\expandafter\def\csname @captype\endcsname{lstlisting}]
 \begin{lstlisting}[vsraw=false,
    vscmd=\ltjlistingsvsstdcmd]
 葛󠄀城市,葛󠄁飾区,葛西
@@ -10912,9 +11056,9 @@ $|\textit{total}|$の分だけが,行中のグルーの伸び量,あるい
 キャッシュとして保存しているのと同様の方法で,
 \LuaTeX-jaもいくつかのキャッシュファイルを作成するようになった.
 \begin{itemize}
- \item 通常,キャッシュは\texttt{\$TEXMFVAR/luatexja/}以下に保存され,
+ \item 通常,キャッシュは \texttt{\$TEXMFVAR/luatexja/} 以下に保存され,
 そこから読み込みが行われる.
- \item 「通常の」テキスト形式のキャッシュ(拡張子は \texttt{.lua})以外にも,
+ \item 「通常の」テキスト形式のキャッシュ(拡張子は \texttt{.lua.gz},gzip圧縮されているため)以外にも,
 それをバイナリ形式(バイトコード)に変換したものもサポートしている.
 \begin{itemize}
  \item キャッシュを読み込む時,同名のバイナリキャッシュがあれば,
@@ -10923,6 +11067,7 @@ $|\textit{total}|$の分だけが,行中のグルーの伸び量,あるい
 同時に更新される.
 また,(バイナリ版が見つからず)テキスト形式のキャッシュ側が読み込まれたときは,
 \LuaTeX-jaはバイナリキャッシュを作成する.
+未圧縮のテキスト形式のキャッシュ(\texttt{hoge.lua})は20200802.0以降では利用しない.
 \end{itemize}
 \end{itemize}
 %</ja>
@@ -10933,12 +11078,13 @@ in a similar way to the \Pkg{luaotfload} package:
 \begin{itemize}
  \item Cache files are usually stored in (and loaded from)
 \texttt{\$TEXMFVAR/luatexja/}.
- \item In addition to caches of the text form (the extension is ``\texttt{.lua}''),
-caches of the \emph{binary}, precompiled form are supported.
+ \item In addition to caches of the text form (the extension is ``\texttt{.lua.gz}'',
+because they are compressed by gzip),
+caches of the \emph{binary}~(bytecode) form are supported.
 \begin{itemize}
  \item In loading a cache, the binary cache precedes
 the text form.
- \item When \LuaTeX-ja updates a cache \texttt{hoge.lua},
+ \item When \LuaTeX-ja updates a compressed text cache \texttt{hoge.lua.gz},
 its binary version is also updated.
 \end{itemize}
 \end{itemize}
@@ -10947,9 +11093,9 @@ its binary version is also updated.
 %<*ja>
 \subsection{キャッシュの使用箇所}
 
-\LuaTeX-ja では以下の3種類のキャッシュを使用している:
+\LuaTeX-ja では以下のキャッシュを使用している:
 \begin{cslist}
-\item[ltj-cid-auto-adobe-japan1.lua]
+\item[ltj-cid-auto-adobe-japan1.\{lua.gz,luc\}]
 Ryumin-Lightのような非埋め込みフォントの情報を格納しており,
 (それらが\LuaTeX-jaの標準和文フォントなので)\LuaTeX-jaの読み込み時に自動で読まれる.
 生成には\texttt{UniJIS2004-UTF32-\{H,V\}}, \texttt{Adobe-Japan1-UCS2}という3つの
@@ -10964,7 +11110,7 @@ CMapが必要である.
 
 \LuaTeX-ja uses the following cache:
 \begin{cslist}
-\item[ltj-cid-auto-adobe-japan1.lua]
+\item[ltj-cid-auto-adobe-japan1.\{lua.gz,luc\}]
 The font table of a CID-keyed non-embedded Japanese font.
 This is loaded in every run.
 It is created from three CMaps, \texttt{UniJIS2004-UTF32-\{H,V\}} and
@@ -10987,39 +11133,69 @@ as in Page~\pageref{para-cid}.
 \bf \texttt{cid} key&\bf name of the cache &
 \multicolumn{2}{c}{\bf used CMaps}\\
 \midrule
-Adobe-Japan1-*&ltj-cid-auto-adobe-japan1.lua&UniJIS2004-UTF32-*&Adobe-Japan1-UCS2\\
-Adobe-Korea1-*&ltj-cid-auto-adobe-korea1.lua&UniKS-UTF32-*&Adobe-Korea1-UCS2\\
-Adobe-KR-*&ltj-cid-auto-adobe-kr.lua&UniAKR-UTF32-*&Adobe-KR-UCS2\\
-Adobe-GB1-*&ltj-cid-auto-adobe-gb1.lua&UniGB-UTF32-*&Adobe-GB1-UCS2\\
-Adobe-CNS1-*&ltj-cid-auto-adobe-cns1.lua&UniCNS-UTF32-*&Adobe-CNS1-UCS2\\
+Adobe-Japan1-*&ltj-cid-auto-adobe-japan1.\{lua.gz,luc\}&UniJIS2004-UTF32-*&Adobe-Japan1-UCS2\\
+Adobe-Korea1-*&ltj-cid-auto-adobe-korea1.\{lua.gz,luc\}&UniKS-UTF32-*&Adobe-Korea1-UCS2\\
+Adobe-KR-*&ltj-cid-auto-adobe-kr.\{lua.gz,luc\}&UniAKR-UTF32-*&Adobe-KR-UCS2\\
+Adobe-GB1-*&ltj-cid-auto-adobe-gb1.\{lua.gz,luc\}&UniGB-UTF32-*&Adobe-GB1-UCS2\\
+Adobe-CNS1-*&ltj-cid-auto-adobe-cns1.\{lua.gz,luc\}&UniCNS-UTF32-*&Adobe-CNS1-UCS2\\
 \bottomrule
 \end{tabular}
 \end{table}
 
 %<*ja>
+\item[ltj-kinsoku\_default.\{lua.gz,luc\}]
+禁則処理,\Param{kansujichar}などの標準設定が格納されたファイルである.
+%</ja>
+%<*en>
+\item[ltj-kinsoku.luc]
+The bytecode cache which default \textit{kinsoku} parameters are stored.
+%</en>
+
+%<*ja>
 \item[ltj-jisx0208.luc]
 \LuaTeX-ja配布中の\texttt{ltj-jisx0208.lua}をバイトコード化したものである.
 これはJIS~X~0208とUnicodeとの変換テーブルであり,
 \pTeX との互換目的の文字コード変換命令で用いられる.
 %</ja>
 %<*en>
-\item[ltj-jisx0208.\{luc|lub\}]
+\item[ltj-jisx0208.luc]
 The bytecode version of \texttt{ltj-jisx0208.lua}.
 This is the conversion table between JIS~X~0208 and Unicode
 which is used in Kanji-code conversion commands for compatibility with \pTeX.
 %</en>
+
+%<*ja>
+\item[ltj-ivd\_aj1.luc]
+\LuaTeX-ja配布中の\texttt{ltj-ivd\_aj1.lua}をバイトコード化したものである.
+これはUnicodeの漢字異体字データベースのAdobe-Japan1コレクションの内容を
+  格納したテーブルであり,\Pkg{luatexja-otf}パッケージの\cs{CID}命令で使われることがある.
+%</ja>
+%<*en>
+\item[ltj-ivd\_aj1.luc]
+The bytecode version of \texttt{ltj-ivd\_aj1.lua}.
+%</en>
+
+%<*ja>
+\item[extra\_***.\{lua.gz,luc\}]
+フォント``\texttt{***}''における,グリフ番号からUnicode値への変換テーブル,縦組時のグリフ回転の有無を格納したテーブル,
+及び縦組時におけるグリフの原点位置・高さのテーブルを格納している.
+%</ja>
+%<*en>
+\item[extra\_***.\{lua.gz,luc\}]
+This file conains some information (especially for vertical typesetting) about the font `\texttt{***}''.
+%</en>
 \end{cslist}
 
 %<*en>
 \subsection{Internal}
 Cache management system of \LuaTeX-ja is stored in \texttt{luatexja.base}
 (\texttt{ltj-base.lua}).
-There are three public functions for cache management in \texttt{luatexja.base},
+There are four public functions for cache management in \texttt{luatexja.base},
 where <filename> stands for the file name \emph{without suffix}:
 \begin{cslist}
 \item[save\_cache(<filename>, <data>)]
 Save a non-nil table <data> into a cache <filename>.
-Both the text form <filename>\texttt{.lua} and its binary version
+Both the compressed text form <filename>\texttt{.lua.gz} and its binary version
 are created or updated.
 
 \item[save\_cache\_luc(<filename>, <data>{[, <serialized\_data>]})]
@@ -11034,25 +11210,28 @@ Load the cache <filename>.
 and its return value is whether the cache is outdated.
 
 \texttt{load\_cache} first tries to
-read the binary cache <filename>\texttt{.\{luc|lub\}}.
+read the binary cache <filename>\texttt{.luc}.
 If its contents is up-to-date, \texttt{load\_cache} returns the contents.
 If the binary cache is not found or
 its contents is outdated, \texttt{load\_cache} tries to
-read the text form <filename>\texttt{.lua}.
+read the compressed text form <filename>\texttt{.lua.gz}.
 Hence, the return value of \texttt{load\_cache} is non-nil,
 if and only if the updated cache is found.
+
+\item[remove\_cache(<filename>)]
+Remove the cahce <filename>.
 \end{cslist}
 %</en>
 %<*ja>
 \subsection{内部命令}
 \LuaTeX-jaにおけるキャッシュ管理は,\texttt{luatexja.base}~(\texttt{ltj-base.lua})に
-実装しており,以下の3関数が公開されている.
+実装しており,以下の関数が公開されている.
 ここで,<filename>は保存するキャッシュのファイル名を\emph{拡張子なしで}指定する.
 \begin{cslist}
 \item[save\_cache(<filename>, <data>)]
 nilでない<data>をキャッシュ<filename>に保存する.
-テキスト形式の<filename>\texttt{.lua}のみならず,
-そのバイナリ版も作成/更新される.
+テキスト形式の<filename>\texttt{.lua.gz}\footnote{拡張子からわかる通り,実際にはgzip圧縮される.}のみならず,
+そのバイナリ形式も作成・更新される.
 
 \item[save\_cache\_luc(<filename>, <data>{[, <serialized\_data>]})]
 
@@ -11066,14 +11245,18 @@ nilでない<data>をキャッシュ<filename>に保存する.
 <outdate>は1引数(キャッシュの中身)をとる関数であり,
 その戻り値は「キャッシュの更新が必要」かどうかを示すブール値でないといけない.
 
-\texttt{load\_cache}は,まずバイナリキャッシュ<filename>\texttt{.\{luc|lub\}}を
+\texttt{load\_cache}は,まずバイナリキャッシュ<filename>\texttt{.luc}を
 読みこむ.もしその内容が「新しい」,つまり<outdate>の評価結果が \texttt{false} なら
 \texttt{load\_cache}はこのバイナリキャッシュの中身を返す.
-もしバイナリキャッシュが見つからなかったか,「古すぎる」ならばテキスト版
-            <filename>\texttt{.lua}を読み込み,その値を返す
+もしバイナリキャッシュが見つからなかったか,「古すぎる」ならば(gzip圧縮された)テキスト形式の
+            <filename>\texttt{.lua.gz}を読み込み,<outdate>で再度評価する
 
 以上より,\texttt{load\_cache}自体がnilでない値を返すのは,ちょうど「新しい」キャッシュが
 見つかった場合である.
+
+\item[remove\_cache(<filename>)]
+キャッシュ<filename>を削除する.テキスト形式(gzip圧縮されているか否かを問わず)も
+バイナリ形式もまとめて削除する.
 \end{cslist}
 %</ja>
 
@@ -11296,10 +11479,11 @@ direction~whatsit内部のノードリストに,\textit{dir\_box}として格
 縦組時には,「\hbox to \zw{、}」(\texttt{U+3001})から「\ltjjachar"FE11」(\texttt{U+FE11})%"
 のように縦組用字形への置き換えに関係する処理は,以下のようになっている.
 
+
 \begin{table}[t]
   \def\D#1#2#3#4{%
        {\fboxsep0pt\fcolorbox{cyan}{white}%
-    {\large\char"#1#2#3#4}}\ (\texttt{U+#1#2#3#4})%"
+    {\large\KOZM\ltjjachar"#1#2#3#4}}\ (\texttt{U+#1#2#3#4})%"
   }
   \caption{\LuaTeX-ja標準で行われる縦組形への置換}
   \label{tab:vert_replace}\small\centering