OSDN Git Service

luatexja-preset.sty: added "moga-mobo" option.
[luatex-ja/luatexja.git] / doc / luatexja.dtx
index 3216de3..0bc8a28 100644 (file)
 %%%%%%%%
 \makeatletter
 %%%%%%%%
+\directlua{if jit then jit.on() end}
 
-%%%%%%%% record loaded packages
-\let\ltjpkglist\empty
-\newif\if@real@append@list
-\def\@append@newentry#1#2{{%
-  \@real@append@listtrue \def\@tempa{#2}%
-  \let\@pkglist\@append@newentry@pkglist#1%
-  \if@real@append@list
-    \let\@pkglist=\relax\xdef#1{#1\@pkglist{#2}}%
-  \fi}}
-\def\@append@newentry@pkglist#1{%
-  \def\@tempb{#1}%
-  \ifx\@tempa\@tempb\@real@append@listfalse\fi}
-\def\@addtofilelist#1{\@append@newentry\ltjpkglist{#1}}
-\let\@listfiles\empty
+\usepackage{amsmath,array,tikz,pict2e,multienum,float}
+\usepackage{booktabs,multicol,luatexja-ruby}
+\usepackage[all]{xy}
+\usepackage{lltjext,alltt}
+
+%%%%%%%% fonts
+\usepackage{luatexja-otf}
+\directlua{luatexja.otf.enable_ivs()}
+\usepackage[match]{luatexja-fontspec}
+\usepackage[kozuka-pr6n]{luatexja-preset}
+\usepackage{unicode-math}
+\setmainfont[Ligatures=TeX]{Linux Libertine O}
+\setsansfont[Scale=0.95,Ligatures=TeX]{TeX Gyre Heros}
+\setmonofont[Scale=MatchLowercase, ItalicFont=lmmono10-italic.otf,
+  BoldFont=lmmonolt10-bold.otf, BoldItalicFont=lmmonolt10-boldoblique.otf
+]{lmmono10-regular.otf}
+\setmonojfont{KozGoPr6N-Regular.otf}
+\setmathfont[Scale=MatchLowercase]{xits-math.otf}
+%<*ja>
+\def\emph#1{\textbf{\textgt{#1}}}
+\def\headfont{\normalfont\bfseries\gtfamily}\normalsize
+%</ja>
+%<en>\frenchspacing
 
 %<*en>
 \usepackage[margin=25mm,lmargin=30mm,rmargin=30mm,footskip=6mm]{geometry}
 \advance\leftmargini-1\zw\advance\leftmarginii-1\zw
 %</ja>
 
-\usepackage{amsmath,array,tikz,pict2e,multienum,float}
-\usepackage{booktabs,multicol,luatexja-ruby}
-\usepackage{xy,lltjext}
-
 %%%%%%%% listings
 
 %%%%%%%% IVS
 %<en>\newtheorem{defn}{Definition}
 %<ja>\newtheorem{defn}{定義}
 
-%%%%%%%% fonts
-\usepackage{luatexja-otf}
-%<ja>\usepackage{lmodern}
-\directlua{luatexja.otf.enable_ivs()}
-\usepackage[match]{luatexja-fontspec}
-\usepackage[kozuka-pr6n]{luatexja-preset}
-\setmonojfont{KozGoPr6N-Regular.otf}
-%<*ja>
-\def\emph#1{\textbf{\textgt{#1}}}
-\def\headfont{\normalfont\bfseries\gtfamily}
-\usepackage{amssymb}
-%</ja>
-%<*en>
-\usepackage{unicode-math}
-\setmainfont[Ligatures=TeX]{TeX Gyre Termes}
-\setsansfont[Scale=0.95,Ligatures=TeX]{TeX Gyre Heros}
-\setmathfont{xits-math.otf}
-\frenchspacing
-%</en>
-
 %%%%%%%% logo
 \usepackage{metalogo}
 \DeclareRobustCommand\eTeX{\ensuremath{\varepsilon}-\kern-.125em\TeX}
 \DeclareRobustCommand\upTeX{up\kern-.15em\TeX}
 \DeclareRobustCommand\pLaTeX{p\kern-.05em\LaTeX}
 \DeclareRobustCommand\pLaTeXe{p\kern-.05em\LaTeXe}
-\DeclareRobustCommand\epTeX{\ensuremath{\varepsilon}-\kern-.125em\pTeX}
+\DeclareRobustCommand\epTeX{\ensuremath{\varepsilon}-\pTeX}
 
 %%%%%%%% other macros
 \newlist{cslist}{description}{1}
 %%%%%%%%
 
 \def\Node#1#2{\,\vcenter{\hbox{\fboxsep=1pt\fbox{\vbox{\small\halign{\hfil##\hfil\cr
-  #1\mathstrut\cr\noalign{\hrule height.4pt}\strut#2\cr}}}}\,}}
+  #1\mathstrut\cr\noalign{\vskip1pt\hrule height.4pt\vskip1pt}\strut#2\cr}}}}}\,}
+\def\HNode#1#2#3#4{\,\vcenter{\hbox{\fboxsep=1pt\fbox{\vbox{\small\halign{\hfil##\hfil\cr
+  #1\mathstrut\cr\noalign{\vskip1pt\hrule height.4pt\vskip1pt}%
+  width:\hfill\ #2\cr height:\hfill\ #3\cr depth:\hfill\ #4\cr
+  }}}}}\,}
 
 \protected\def\Param#1{\hyperlink{fld:#1}{\textsf{#1}}} % parameter name
 \protected\def\DParam#1{\hypertarget{fld:#1}{\textsf{#1}}} % parameter name (definition)
@@ -240,7 +230,7 @@ Japanese processing in computers (\textit{e.g.}, the UTF-8 encoding).
 ASCII \pTeX やそれの拡張物が用いられることが一般的であった.\pTeX は\TeX
 のエンジン拡張であり,(少々仕様上不便な点はあるものの)商業印刷の分野に
 も用いられるほどの高品質な日本語組版を可能としている.だが,それは弱点に
\82\82ã\81ªã\81£ã\81¦ã\81\97ã\81¾ã\81£ã\81\9fï¼\9a\pTeX という(組版的に)満足なものがあったため,海外で
\82\82ã\81ªã\81£ã\81¦ã\81\97ã\81¾ã\81£ã\81\9fï¼\8e\pTeX という(組版的に)満足なものがあったため,海外で
 行われている数々の\TeX の拡張――例えば\eTeX や\pdfTeX ――や,TrueType,
 OpenType, Unicodeといった計算機で日本語を扱う際の状況の変化に追従すること
 を怠ってしまったのだ.
@@ -285,13 +275,16 @@ scripts for appropriate callbacks.
 
 %<*en>
 The \LuaTeX-ja package is under much influence of \pTeX\ engine. The initial
-target of development was to implement features of \pTeX. However,
-\emph{\LuaTeX-ja is not a just porting of \pTeX; unnatural
+target of development was to implement features of \pTeX. However, 
+implementing all feature of \pTeX\ is impossible, 
+since all process of \LuaTeX-ja must be implemented only by Lua and \TeX\ macros.
+Hence \emph{\LuaTeX-ja is not a just porting of \pTeX; unnatural
 specifications/behaviors of \pTeX\ were not adopted}.
 %</en>
 %<*ja>
 \LuaTeX-jaは,\pTeX に多大な影響を受けている.初期の開発目標は,\pTeX の機
-能をLuaコードにより実装することであった.しかし,開発が進むにつれ,\pTeX
+能をLuaコードにより実装することであった.しかし,(\pTeX はエンジン拡張であったのに対し)
+\LuaTeX-jaはLuaコードと\TeX マクロを用いて全てを実装していなければならないため,\pTeX
 の完全な移植は不可能であり,また\pTeX における実装がいささか不可解になっ
 ているような状況も発見された.そのため,\emph{\LuaTeX-jaは,もはや
 \pTeX の完全な移植は目標とはしない.\pTeX における不自然な仕様・挙動があ
@@ -299,45 +292,74 @@ specifications/behaviors of \pTeX\ were not adopted}.
 %</ja>
 
 %<*en>
-The followings are major changes from \pTeX:
+The followings are major changes from \pTeX.
+For more detailed information, see Part~\ref{part-imp} or other sections of this manual.
 %</en>
 %<*ja>
 以下は \pTeX からの主な変更点である.
+より詳細については第\ref{part-imp}部など本文書の残りを参照.
 %</ja>
 
-\begin{itemize}
 %<*en>
-\item A Japanese font is a tuple of a ``real'' font, a Japanese font
-      metric (\emph{JFM}, for short).
+\paragraph{Command names} \pTeX\ addes several primitives, such as \cs{kanjiskip}, 
+\cs{prebreakpenalty},~and,~\cs{ifydir}. They can be used as follows:
 %</en>
 %<*ja>
-\item 和文フォントは(小塚明朝,IPA明朝などの)実際のフォント,和文フォン
-      トメトリック(JFMと呼ぶ\footnote{混乱を防ぐため,p\TeX の意味での
-      JFM (\texttt{min10.tfm}) などは本ドキュメントでは\emph{和文用
-      TFM}とよぶことにする.})の組である.
+\paragraph{命令の名称} 例えば\pTeX で追加された次のようなプリミティブ
+%</ja>
+\begin{verbatim}
+\kanjiskip=10pt  \dimen0=kanjiskip
+\tbaselineshift=0.1zw
+\dimen0=\tbaselineshift
+\prebreakpenalty`ぁ=100
+\ifydir ... \fi
+\end{verbatim}
+%<en> However, we cannot use them under \LuaTeX-ja. 
+%<en> Instead of them, we have to write as the following.
+%<ja> は\LuaTeX-jaには存在しない.\LuaTeX-jaでは以下のように記述することになる.
+\begin{verbatim}
+\ltjsetparameter{kanjiskip=10pt}  \dimen0=\ltjgetparameter{kanjiskip}
+\ltjsetparameter{talbaselineshift=0.1\zw}
+\dimen0=\ltjgetparameter{talbaselineshift}
+\ltjsetparameter{prebreakpenalty={`ぁ,100}}
+\ifnum\ltjgetparemeter{direction}=4 ... \fi
+\end{verbatim}
+%<*en> 
+Note that \pTeX\ adds new two useful units, namely \texttt{zw}~and~\texttt{zh}.
+As shown above, they are changed by \cs{zw}~and\cs{zh} respectively, in \LuaTeX-ja.
+%</en>
+%<*ja>
+特に注意してほしいのは,\pTeX で追加された \texttt{zw} と \texttt{zh} という単位を
+\LuaTeX-ja で扱うには,\cs{zw}, \cs{zh} と制御綴の形にしないといけないという点である.
 %</ja>
 
 %<*en>
-\item In \pTeX, a line break after Japanese character is ignored (and
+\paragraph{Linebreak after a Japanese character}
+In \pTeX, a line break after Japanese character is ignored (and
       doesn't yield a space), since line breaks (in source files) are
       permitted almost everywhere in Japanese texts. However, \LuaTeX-ja
-      doesn't have this function completely, because of a specification
-      of \LuaTeX.
+      doesn't have this feature completely, because of a specification
+      of \LuaTeX. For the detail, see Section~\ref{sec-lbreak}.
 %</en>
 %<*ja>
-\item 日本語の文書中では改行はほとんどどこでも許されるので,\pTeX では和文文字
+\paragraph{和文文字直後の改行}
+日本語の文書中では改行はほとんどどこでも許されるので,\pTeX では和文文字
       直後の改行は無視される(スペースが入らない)ようになっていた.しかし,
       \LuaTeX-ja では \LuaTeX の仕様のためにこの機能は完全には実装されていない.
+      詳しくは\ref{sec-lbreak}章を参照.
 %</ja>
 
 %<*en>
-\item The insertion process of glues/kerns between two Japanese
+
+\paragraph{Spaces related to Japanese characters}
+The insertion process of glues/kerns between two Japanese
       characters and between a Japanese character and other characters
       (we refer glues/kerns of both kinds as \textbf{JAglue}) is rewritten from
       scratch.
 %</en>
 %<*ja>
-\item 2つの和文文字の間や,和文文字と欧文文字の間に入るグルー/カーン
+\paragraph{和文関連の空白}
+2つの和文文字の間や,和文文字と欧文文字の間に入るグルー/カーン
       (両者をあわせて\textbf{JAglue}と呼ぶ)の挿入処理が0から書き直されている.
 %</ja>
 
@@ -372,19 +394,18 @@ The followings are major changes from \pTeX:
 \item \emph{注意:上の2つの変更により,従来\textbf{JAglue}の挿入処理を分断するのに
       使われていたいくつかの方法は用いることができない.具体的には,次の方法はもはや無効である:}
 %</ja>
-\begin{verbatim}
+\begin{lstlisting}
 ちょ{}っと    ちょ\/っと
-\end{verbatim}
+\end{lstlisting}
 %<*en>
       If you want to do so, please put an empty horizontal box (hbox) between it instead:
 %</en>
 %<*ja>
       もし同じことをやりたければ,空の水平ボックス(hbox)を間に挟めばよい:
 %</ja>
-\begin{verbatim}
+\begin{lstlisting}
 ちょ\hbox{}っと
-\end{verbatim}
-
+\end{lstlisting}
 
 %<*en>
 \item In the process, two Japanese fonts which only differ in their ``real''
@@ -396,26 +417,34 @@ The followings are major changes from \pTeX:
 %</ja>
 \end{itemize}
 
+%<*en>
+\paragraph{Directions}
+From this version, \LuaTeX-ja supports vertical writing;
+but this feature must \emph{not} be confused with $\Omega$-style direction support of \LuaTeX\
+itself. ...
+%</en>
 %<*ja>
-\item \LuaTeX-jaでは,\pTeX と同様に漢字・仮名を制御綴内に用いることができ,
-\cs{西暦} などが正しく動作するようにしている.
-但し,制御綴中に使える和文文字が\pTeX・\upTeX と全く同じではないことに注意すること.
-%</ja>
-
-%<*ja>
-\item ****版からは,不安定ながらも\LuaTeX-ja における縦組みをサポートしている.
-\LuaTeX のコールバックの制限などにより,特に異なった組方向のボックスを扱う場合には
-仕様が異なるので注意すること.
+\paragraph{組方向}
+本版からは,不安定ながらも\LuaTeX-ja における縦組みをサポートしている.
+なお,\LuaTeX 本体も,$\Omega$流の組方向をサポートしているが,それとは全くの別物であること
+に注意してほしい.
+\LuaTeX のコールバックや実装により,特に異なった組方向のボックスを扱う場合には
+\cs{wd}, \cs{ht}, \cs{dp}等の仕様が異なるので注意.詳細は第\ref{sec-direction}節を参照.
 %</ja>
-\end{itemize}
 
 %<*en>
-For detailed information, see Part~\ref{part-imp}.
+\paragraph{\cs{discretionary}}
+Japanese characters in discretionary break (\cs{discretionary}) is not supported.
 %</en>
 %<*ja>
-詳細については第\ref{part-imp}部を参照.
+\paragraph{\cs{discretionary}}
+ \cs{discretionary} 内に直接和文文字を記述することは,\pTeX においても想定されていなかった
+ 感があるが.\LuaTeX-jaにおいても想定していない.和文文字をどう
+      しても使いたい場合は \cs{hbox} で括ること.
 %</ja>
 
+
+
 %<en>\subsection{Notations}
 %<ja>\subsection{用語と記法}
 
@@ -432,12 +461,12 @@ In this document, the following terms and notations are used:
       (see Subsection~\ref{ssec-setrange}).
 %</en>
 %<*ja>
-\item 文字は次の2種類に分けられる.この類別はユーザが後から変更可能である
+\item 文字は次の2種類に分けられる.この類別は固定されているものではなく,ユーザが後から変更可能である
       (\ref{ssec-setrange}節を参照).
 %</ja>
 \begin{itemize}
 %<*en>
-\item \textbf{JAchar}: standing for characters which used in Japanese typesetting,
+\item \textbf{JAchar}: standing for characters which is used in Japanese typesetting,
       such as Hiragana,~Katakana, Kanji, and~other Japanese punctuation marks.
 %</en>
 %<*ja>
@@ -535,72 +564,79 @@ and \emph{Japanese fonts} for fonts used in \textbf{JAchar}.
 %<en>\subsection{Installation}
 %<ja>\subsection{インストール}
 
-%<en>To install the \LuaTeX-ja\ package, you will need:
-%<ja>\LuaTeX-jaã\83\91ã\83\83ã\82±ã\83¼ã\82¸ã\81®ã\82¤ã\83³ã\82¹ã\83\88ã\83¼ã\83«ã\81«ã\81¯ï¼\8c次ã\81®ã\82\82ã\81®が必要である.
+%<en>The following packages are needed for the \LuaTeX-ja\ package.
+%<ja>\LuaTeX-jaã\83\91ã\83\83ã\82±ã\83¼ã\82¸ã\81«ã\81¯ï¼\8c次ã\81®ã\83\91ã\83\83ã\82±ã\83¼ã\82¸é¡\9eが必要である.
 \begin{itemize}
-\item \LuaTeX\ beta-0.74.0 (or later)
-\item \Pkg{luaotfload} v2.2 (or later)
-\item \Pkg{luatexbase} v0.6
-\item \Pkg{xunicode} v0.981~(2011/09/09)
+\item \LuaTeX\ beta-0.80.0 (or later)
+\item \Pkg{luaotfload} v2.5 (or later)
 \item \Pkg{adobemapping} (Adobe cmap and pdfmapping files)
-\item \Pkg{everysel}
+\item \Pkg{everysel} (if you want to use \LuaTeX-ja with \LaTeXe)
+%<en>\item \emph{IPAex fonts}(\url{http://ipafont.ipa.go.jp/})
+%<ja>\item \emph{IPAexフォント(\url{http://ipafont.ipa.go.jp/})}
 \end{itemize}
 
 %<*en>
-\emph{This version of \LuaTeX-ja no longer supports \TeX~Live~2012 (or older version),
-since \LuaTeX\ binary and \Pkg{luaotfload} is updated in
-\TeX~Live~2013.}
+\emph{This version of \LuaTeX-ja no longer supports \TeX~Live~2013 (or older version).
+If you want to use this version with \TeX~Live~2014, you have to build a development
+version of \LuaTeX\ from its source.}
 
 \medskip
 
-Now \LuaTeX-ja is available from the following archive and distributions:
+Now \LuaTeX-ja is available from
+CTAN (in the \texttt{macros/luatex/generic/luatexja} directory), and
+the following distributions:
   \begin{itemize}
-  \item CTAN (in the \texttt{macros/luatex/generic/luatexja} directory)
   \item MiK\TeX\ (in \texttt{luatexja.tar.lzma}); see the next subsection
   \item \TeX\ Live (in \texttt{texmf-dist/tex/luatex/luatexja})
   \item W32\TeX\ (in \texttt{luatexja.tar.xz})
   \end{itemize}
-
-If you are using \TeX~Live~2014, you can install \LuaTeX-ja
-from \TeX~Live manager (\texttt{tlmgr}):
-\begin{verbatim}
-$ tlmgr install luatexja
-\end{verbatim}
+IPAex fonts are also available in these distributions.
 %</en>
 %<*ja>
-\emph{本バージョンの\LuaTeX-jaは\TeX~Live~2012以前では動作しない.}
-これは,\LuaTeX と\Pkg{luaotfload}が\TeX~Live~2013において更新されたことによる.
+\emph{本バージョンの\LuaTeX-jaは\TeX~Live~2013以前では動作しない.\TeX~Live~2014で
+用いたい場合は,自力で\LuaTeX 開発版をソースからビルドする必要がある.}
 
 \medskip
 
-現在,\LuaTeX-jaは以下のアーカイブ,およびディストリビューションに収録されている:
+現在,\LuaTeX-jaはCTAN (\texttt{macros/luatex/generic/luatexja})に収録されている他,
+以下のディストリビューションにも収録されている:
   \begin{itemize}
-  \item CTAN (\texttt{macros/luatex/generic/luatexja})
   \item MiK\TeX\ (\texttt{luatexja.tar.lzma})
   \item \TeX\ Live (\texttt{texmf-dist/tex/luatex/luatexja})
   \item W32\TeX\ (\texttt{luatexja.tar.xz})
   \end{itemize}
-
-例えば\TeX~Live~2014を利用しているなら,\LuaTeX-jaは\TeX~Live manager (\texttt{tlmgr})を
-使ってインストールすることができる.
-\begin{verbatim}
-$ tlmgr install luatexja
-\end{verbatim}
+これらのディストリビューションはIPAexフォントも収録している.
+W32\TeX においてはIPAexフォントは \texttt{luatexja.tar.xz} 内にある.
 %</ja>
 
+% %<*ja>
+% 例えば\TeX~Live~2015を利用しているなら,\LuaTeX-jaは\TeX~Live manager (\texttt{tlmgr})を
+% 使ってインストールすることができる.
+% \begin{lstlisting}
+% $ tlmgr install luatexja
+% \end{lstlisting}
+% %</ja>
+% %<*en>
+% If you are using \TeX~Live~2015, you can install \LuaTeX-ja
+% from \TeX~Live manager (\texttt{tlmgr}):
+% \begin{lstlisting}
+% $ tlmgr install luatexja
+% \end{lstlisting}
+% %</en>
+
 %<en>\paragraph{Manual installation}
 %<ja>\paragraph{手動インストール方法}
 
 \begin{enumerate}
 %<*en>
-\item Download the source archive, by one of the following method.
+\item Download the source, by one of the following method.
       At the present, \LuaTeX-ja has no \emph{stable} release.
 
 \begin{itemize}
-\item Copy the Git repository:
-\begin{verbatim}
+\item Clone the Git repository:
+\begin{lstlisting}
 $ git clone git://git.sourceforge.jp/gitroot/luatex-ja/luatexja.git
-\end{verbatim}
+\end{lstlisting}
 \item Download the \texttt{tar.gz} archive of HEAD in the \texttt{master} branch from
 \begin{flushleft}
 \url{http://git.sourceforge.jp/view?p=luatex-ja/luatexja.git;a=snapshot;h=HEAD;sf=tgz}.
@@ -611,14 +647,14 @@ Note that the \texttt{master} branch, and hence the archive in CTAN, are not upd
 the forefront of development is not the \texttt{master} branch.
 %</en>
 %<*ja>
-\item ã\82½ã\83¼ã\82¹ã\82¢ã\83¼ã\82«ã\82¤ã\83\96ã\82\92以ä¸\8bã\81®ã\81\84ã\81\9aã\82\8cã\81\8bã\81®æ\96¹æ³\95ã\81§å\8f\96å¾\97ã\81\99ã\82\8bï¼\8eç\8f¾å\9c¨å\85¬é\96\8bã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\81®ã\81¯ã\81\82ã\81\8fã\81¾ã\81§ã\82\82
+\item ソースを以下のいずれかの方法で取得する.現在公開されているのはあくまでも
       開発版であって,安定版でないことに注意.
 
 \begin{itemize}
-\item Gitã\83ªã\83\9dã\82¸ã\83\88ã\83ªã\81®å\86\85容ã\82\92ã\82³ã\83\94ã\83¼する:
-\begin{verbatim}
+\item Gitã\83ªã\83\9dã\82¸ã\83\88ã\83ªã\82\92ã\82¯ã\83­ã\83¼ã\83³する:
+\begin{lstlisting}
 $ git clone git://git.sourceforge.jp/gitroot/luatex-ja/luatexja.git
-\end{verbatim}
+\end{lstlisting}
 \item \texttt{master}ブランチのスナップショット(\texttt{tar.gz}形式)をダウンロードする.
 \begin{flushleft}
 \url{http://git.sourceforge.jp/view?p=luatex-ja/luatexja.git;a=snapshot;h=HEAD;sf=tgz}.
@@ -634,7 +670,7 @@ $ git clone git://git.sourceforge.jp/gitroot/luatex-ja/luatexja.git
 But only the contents in \texttt{src/} are needed to work \LuaTeX-ja.
 %</en>
 %<*ja>
-\item ã\80\8cGitã\83ªã\83\9dã\82¸ã\83\88ã\83ªã\82\92ã\82³ã\83\94ã\83¼」以外の方法でアーカイブを取得したならば,それを展開する.
+\item ã\80\8cGitã\83ªã\83\9dã\82¸ã\83\88ã\83ªã\82\92ã\82¯ã\83­ã\83¼ã\83³」以外の方法でアーカイブを取得したならば,それを展開する.
       \texttt{src/}をはじめとしたいくつかのディレクトリができるが,
       動作には\texttt{src/}以下の内容だけで十分.
 %</ja>
@@ -650,13 +686,13 @@ But only the contents in \texttt{src/} are needed to work \LuaTeX-ja.
 格納した \texttt{ltj-kinsoku.lua} を生成するために,
 以下を実行する必要がある:
 %</ja>
-\begin{verbatim}
+\begin{lstlisting}
 $ cd src
 $ lualatex ltjclasses.ins
 $ lualatex ltjsclasses.ins
 $ lualatex ltjltxdoc.ins
 $ luatex   ltj-kinsoku_make.tex
-\end{verbatim}
+\end{lstlisting}
 %<*en>
 Note that \texttt{*.\{dtx,ins\}} and \texttt{ltj-kinsoku\_make.tex} are not needed in regular use.
 %</en>
@@ -675,7 +711,11 @@ Note that \texttt{*.\{dtx,ins\}} and \texttt{ltj-kinsoku\_make.tex} are not need
 %</en>
 %<*ja>
 \item \texttt{src}の中身を自分の\texttt{TEXMF}ツリーにコピーする.
-      場所の例としては,例えば\texttt{TEXMF/tex/luatex/luatexja/}がある.
+      場所の例としては,例えば
+\begin{quote}
+ \texttt{TEXMF/tex/luatex/luatexja/}
+\end{quote}
+      がある.
       シンボリックリンクが利用できる環境で,かつリポジトリを直接取得したのであれば,
       (更新を容易にするために)コピーではなくリンクを貼ることを勧める.
 %</ja>
@@ -687,9 +727,15 @@ Note that \texttt{*.\{dtx,ins\}} and \texttt{ltj-kinsoku\_make.tex} are not need
 %</ja>
 \end{enumerate}
 
-%<en>\subsection{Cautions}
-%<ja>\subsection{注意点}
-
+%<*en>
+\subsection{Cautions}
+For changes from \pTeX, see Subsection~\ref{ssec:chgptex}.
+%</en>
+%<*ja>
+\subsection{注意点}
+\pTeX からの変更点として,\ref{ssec:chgptex}節も熟読するのが望ましい.
+ここでは一般的な注意点を述べる.
+%</ja>
 \begin{itemize}
 %<*en>
 \item The encoding of your source file must be UTF-8. No other
@@ -727,10 +773,10 @@ so you will encounter an error like the following:
 \LuaTeX によって見つけられることが必要である.
 しかしMiK\TeX ではそのようになっていないので,次のエラーが発生するだろう:
 %</ja>
-\begin{verbatim}
+\begin{lstlisting}
 ! LuaTeX error ...iles (x86)/MiKTeX 2.9/tex/luatex/luatexja/ltj-rmlgbm.lua
 bad argument #1 to 'open' (string expected, got nil)
-\end{verbatim}
+\end{lstlisting}
 
 %<*en>
 If so, please execute a batch file which is written on
@@ -754,9 +800,9 @@ run \LuaTeX-ja in this directory, and finally delete the temporary directory.
 
 %<en>To use \LuaTeX-ja in plain \TeX, simply put the following at the beginning of the document:
 %<ja>\LuaTeX-jaを plain \TeX で使うためには,単に次の行をソースファイルの冒頭に追加すればよい:
-\begin{verbatim}
+\begin{lstlisting}
 \input luatexja.sty
-\end{verbatim}
+\end{lstlisting}
 %<en>This does minimal settings (like \texttt{ptex.tex}) for typesetting Japanese documents:
 %<ja>これで(\texttt{ptex.tex}のように)日本語組版のための最低限の設定がなされる:
 
@@ -769,12 +815,12 @@ run \LuaTeX-ja in this directory, and finally delete the temporary directory.
 \textbf{direction}&
 \textbf{classification}&\textbf{font name}&\bf `10\,pt'&\bf`7\,pt'&\bf`5\,pt'\\\midrule
 \smash{\raisebox{-1ex}{\emph{yoko} (horizontal)}}&
-\emph{mincho}&Ryumin-Light    &\cs{tenmin}&\cs{sevenmin}&\cs{fivemin}\\
-&\emph{gothic}&GothicBBB-Medium&\cs{tengt} &\cs{sevengt} &\cs{fivegt}\\
+\emph{mincho}&IPAex Mincho&\cs{tenmin}&\cs{sevenmin}&\cs{fivemin}\\
+&\emph{gothic}&IPAex Gothic&\cs{tengt} &\cs{sevengt} &\cs{fivegt}\\
 \midrule
 \smash{\raisebox{-1ex}{\emph{tate} (vertical)}}&
-\emph{mincho}&Ryumin-Light    &\cs{tentmin}&\cs{seventmin}&\cs{fivetmin}\\
-&\emph{gothic}&GothicBBB-Medium&\cs{tentgt} &\cs{seventgt} &\cs{fivetgt}\\
+\emph{mincho}&IPAex Mincho&\cs{tentmin}&\cs{seventmin}&\cs{fivetmin}\\
+&\emph{gothic}&IPAex Gothic&\cs{tentgt} &\cs{seventgt} &\cs{fivetgt}\\
 \bottomrule
 \end{tabular}
 \end{center}
@@ -786,30 +832,24 @@ run \LuaTeX-ja in this directory, and finally delete the temporary directory.
 \toprule
 \emph{組方向}&\emph{字体}&\emph{フォント名}&\bf `10\,pt'&\bf`7\,pt'&\bf`5\,pt'\\\midrule
 \smash{\raisebox{-1ex}{横組}}&
-明朝体&Ryumin-Light    &\cs{tenmin}&\cs{sevenmin}&\cs{fivemin}\\
-&ゴシック体&GothicBBB-Medium&\cs{tengt} &\cs{sevengt} &\cs{fivegt}\\
+明朝体&IPAex明朝&\cs{tenmin}&\cs{sevenmin}&\cs{fivemin}\\
+&ゴシック体&IPAexゴシック&\cs{tengt} &\cs{sevengt} &\cs{fivegt}\\
 \midrule
 \smash{\raisebox{-1ex}{縦組}}&
-明朝体&Ryumin-Light    &\cs{tentmin}&\cs{seventmin}&\cs{fivetmin}\\
-&ゴシック体&GothicBBB-Medium&\cs{tentgt} &\cs{seventgt} &\cs{fivetgt}\\
+明朝体&IPAex明朝&\cs{tentmin}&\cs{seventmin}&\cs{fivetmin}\\
+&ゴシック体&IPAexゴシック&\cs{tentgt} &\cs{seventgt} &\cs{fivetgt}\\
 \bottomrule
 \end{tabular}
 \end{center}
 %</ja>
 \begin{itemize}
 %<*en>
-\item It is widely accepted that fonts ``Ryumin-Light'' and
-      ``GothicBBB-Medium'' aren't embedded into PDF files, and a PDF reader
-      substitute them by some external Japanese fonts (\textit{e.g.},
-      Ryumin-Light is substituted with Kozuka Mincho in Adobe Reader).
-      We adopt this custom to the default setting.
+\item With \texttt{luatexja.cfg}, one can use other fonts
+as ``default'' Japanese fonts (Subsection~\ref{ssec-cfg}).
 %</en>
 %<*ja>
-\item ``Ryumin-Light''と``GothicBBB-Medium''はPDFファイルに埋め込まずに
-      名前参照のみで用いることが広く受け入れられており,この場合PDFリーダーが
-      適切な外部フォントで代用する(例えば,Adobe ReaderではRyumin-Lightは
-      小塚明朝で代替される).そこで,これらを引き続きデフォルトのフォントと
-      して採用する.
+\item \texttt{luatexja.cfg} を用いることによって,標準和文フォントを
+IPAexフォントから別のフォントに置き換えることができる.\ref{ssec-cfg}節を参照.
 %</ja>
 
 %<*en>
@@ -852,9 +892,9 @@ for Japanese, you only have to load \texttt{luatexja.sty}:
 \LaTeXe を用いる場合も基本的には同じである.日本語組版のための最低限の環境を
 設定するためには,\texttt{luatexja.sty}を読み込むだけでよい:
 %</ja>
-\begin{verbatim}
+\begin{lstlisting}
 \usepackage{luatexja}
-\end{verbatim}
+\end{lstlisting}
 %<*en>
 It also does minimal settings (counterparts in \pLaTeX\ are \texttt{%
 plfonts.dtx} and \texttt{pldefs.ltx}):
@@ -892,15 +932,14 @@ By default, the following fonts are used for \emph{mincho} and \emph{gothic}:
 \begin{center}\small
 \begin{tabular}{ccccc}
 \toprule
-\textbf{classification}&\textbf{family name}&\cs{mdseries}&\cs{bfseries}&\textbf{scale}\\\midrule
-\emph{mincho} (明朝体)&\tt mc&Ryumin-Light    &GothicBBB-Medium&0.962216\\
-\emph{gothic} (\textgt{ゴシック体})&\tt gt&GothicBBB-Medium&GothicBBB-Medium&0.962216\\
+\textbf{classification}&\textbf{family}&\cs{mdseries}&\cs{bfseries}&\textbf{scale}\\\midrule
+\emph{mincho} (明朝体)&\tt mc&IPAex Mincho&IPAex Gothic&0.962216\\
+\emph{gothic} (\textgt{ゴシック体})&\tt gt&IPAex Gothic&IPAex Gothic&0.962216\\
 \bottomrule
 \end{tabular}
 \end{center}
-Note that the bold series in both family are same as the medium series of \emph{gothic} family.
-This is a convention in \pLaTeX. This is trace that there were only 2~fonts (these are Ryumin-Light
-and GothicBBB-Medium) in early years of DTP. There is no italic nor slanted shape for
+Note that the bold series in both family are same as the medium series of \emph{gothic}
+     family. There is no italic nor slanted shape for
       these \texttt{mc}~and~\texttt{gt}.
 %</en>
 %<*ja>
@@ -919,21 +958,35 @@ and GothicBBB-Medium) in early years of DTP. There is no italic nor slanted shap
 \begin{tabular}{ccccc}
 \toprule
 \emph{字体}&\emph{ファミリ}&\cs{mdseries}&\cs{bfseries}&\emph{スケール}\\\midrule
-明朝体&\tt mc&Ryumin-Light    &GothicBBB-Medium&0.962216\\
-ゴシック体&\tt gt&GothicBBB-Medium&GothicBBB-Medium&0.962216\\
+明朝体&\tt mc&IPAex明朝&IPAexゴシック&0.962216\\
+ゴシック体&\tt gt&IPAexゴシック&IPAexゴシック&0.962216\\
 \bottomrule
 \end{tabular}
 \end{center}
 どちらのファミリにおいても,そのboldシリーズで使われるフォントは
-ゴシック体のmediumシリーズで使われるフォントと同じあることに注意.
-これは初期のDTPにおいて和文フォントが2つ(それがちょうど\
-Ryumin-Light, GothicBBB-Mediumだった)しか利用できなかった時の名残であり,\pLaTeX{}
-での標準設定とも同じである.
+ゴシック体のmediumシリーズで使われるフォントと同じであることに注意.
+また,どちらのファミリでもイタリック体・スラント体は定義されない.
 %</ja>
 
-
 %<en>\item Japanese characters in math mode are typeset by the font family \texttt{mc}.
 %<ja>\item 数式モード中の和文文字は明朝体(\texttt{mc})で出力される.
+
+%<*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}:
+%</en>
+%<*ja>
+\item \Pkg{beamer}クラスを既定のフォント設定で使う場合,既定欧文フォントがサンセリフなの
+      で,既定和文フォントもゴシック体にしたいと思うかもしれない.その場合はプリアンブルに
+次を書けばよい:
+%</ja>
+\begin{lstlisting}
+ \renewcommand{\kanjifamilydefault}{\gtdefault}
+\end{lstlisting}
+
+
 \end{itemize}
 
 %<*en>
@@ -973,41 +1026,47 @@ Okumura), namely, \Pkg{ltjclasses}\footnote{%
 脚注とボトムフロートの順序は\LaTeX 通りとした.もし\pLaTeX の出力順序が好みならば,
 \Pkg{stfloats}パッケージを利用して
 \begin{lstlisting}
- \usepackage{stfloats} \fnbelowfloat
+ \usepackage{stfloats}\fnbelowfloat
 \end{lstlisting}
 のようにすればよい.\Pkg{footmisc}パッケージを \texttt{bottom}\ オプションを指定して
 読み込むという方法もあるが,それだとボトムフロートと脚注の間が開いてしまう.
 %</ja>
-
-%<en>\section{Changing Fonts}
-%<ja>\section{フォントの変更}
+%%% ↑は英訳しない
 
 %<*en>
-\subsection{Notes on  ``default'' fonts of \LuaTeX-ja}
-As described earlier, default fonts of \LuaTeX-ja are non-embedded fonts,
-namely ``Ryumin-Light'' and ``GothicBBB-Medium''. 
-However, using these non-embedded fonts makes that the output PDF does \emph{not} follow
-the standard ISO32000-1:2008~(\cite{pdfstd}).
+\paragraph{\Pkg{geometry} package and classes for vertical writing}
+It is well-known that the \Pkg{geometry} package produces the following error, when classes for
+vertical writing is used:
 %</en>
 %<*ja>
-\subsection{\LuaTeX-ja 標準フォントについて}
-\label{ssec:stdfnt}
-既に説明したように,\LuaTeX-jaの標準和文フォントは``Ryumin-Light''と``GothicBBB-Medium''%
-という非埋め込みフォントである.しかし,現行の\LuaTeX で非埋め込みフォントを用いたPDFを
-作成すると,エンコーディングがIdentity-Hとなってしまい,
-PDFの標準規格ISO32000-1:2008~(\cite{pdfstd})に非準拠になってしまっている.
-
-この状況を解決する方法として正当的なのは,本章の残りに示すようにドキュメント中にフォント変更命令を記述する方
-法だが,\texttt{luatexja.cfg} を作成するという方法もある.例えば \texttt{luatexja.cfg} に
+\paragraph{縦組での\Pkg{geometry}パッケージ}
+\pLaTeX の縦組用標準クラスファイルでは\Pkg{geometry}パッケージを利用することは出来ず,
+%</ja>
 \begin{lstlisting}
-\def\ltj@stdmcfont{IPAMincho}
-\def\ltj@stdgtfont{IPAGothic}
+! Incompatible direction list can't be unboxed.
+\@begindvi ->\unvbox \@begindvibox 
+                                   \global \let \@begindvi \@empty 
 \end{lstlisting}
-と記述しておけば,plain~\TeX, \LaTeXe における標準和文フォントがIPA明朝・IPAゴシックへと変
-更される.
+%<*en>
+Now, \LuaTeX-ja automatically applies the patch \Pkg{lltjp-geometry} to the
+\Pkg{geometry} package, when the direction of the document is \emph{tate} (vertical
+writing).
+This patch \Pkg{lltjp-geometry} also can be used in \pLaTeX; for the detail, please refer 
+\url{lltjp-geometry.pdf}~(Japanese).
+%</en>
+%<*ja>
+というようなエラーが発生することが知られている.
+\LuaTeX-jaでは, \texttt{ltjtarticle.cls} といった縦組クラスの下でも
+\Pkg{geometry}パッケージが利用できるようにパッチ\Pkg{lltjp-geometry}パッケージを自動的に当てている.
+
+なお,\Pkg{lltjp-geometry}パッケージは\pTeX 系列でも明示的に読み込むことによって
+使用可能である.詳細や注意事項は \url{lltjp-geometry.pdf} を参照のこと.
 %</ja>
 
 
+%<en>\section{Changing Fonts}
+%<ja>\section{フォントの変更}
+
 \subsection{plain \TeX~and~\LaTeXe}
 \label{ssec-chgfnt}
 
@@ -1027,8 +1086,7 @@ plain \TeX で和文フォントを変更するためには,
 For \LaTeXe, \LuaTeX-ja adopted most of the font selection system of \pLaTeXe\ (in \texttt{plfonts.dtx}).
 %</en>
 %<*ja>
-\LaTeXe については,\LuaTeX-jaではフォント選択システムを\pLaTeXe\ (\texttt{plfonts.dtx})
-の大部分をそのまま採用している.
+\LaTeX で用いる際には,\pLaTeXe\ (\texttt{plfonts.dtx})用のフォント選択機構の大部分を流用している.
 %</ja>
 \begin{itemize}
 %<*en>
@@ -1037,8 +1095,8 @@ For \LaTeXe, \LuaTeX-ja adopted most of the font selection system of \pLaTeXe\ (
       attributes of Japanese fonts.
 %</en>
 %<*ja>
-\item \cs{fontfamily}, \cs{fontseries}, \cs{fontshape}, そして
-      \cs{selectfont} が和文フォントの属性を変更するために使用できる
+\item 和文フォントの属性を変更するには,\cs{fontfamily}, \cs{fontseries}, \cs{fontshape},
+      そしてそれらを反映させるために \cs{selectfont} を用いればよい
 %</ja>
 
 %<*en>
@@ -1109,15 +1167,16 @@ auto select&\cs{fontencoding}&\cs{fontfamily}&---&---&\cs{usefont}\\
       実装では \cs{DeclareFontFamily} を用いても問題は生じない.
 \item 和文フォントのシェイプを定義するには,通常の \cs{DeclareFontShape} を使えば良い:
 %</ja>
-\begin{verbatim}
+\begin{lstlisting}
 \DeclareFontShape{JY3}{mc}{bx}{n}{<-> s*KozMinPr6N-Bold:jfm=ujis;-kern}{}
     % Kozuka Mincho Pr6N Bold
-\end{verbatim}
+\end{lstlisting}
 %<*ja>
 仮名書体を使う場合など,複数の和文フォントを組み合わせて使いたい場合は
 \ref{ssec-altfont}節の \cs{ltjdeclarealtfont} と,その\LaTeX 版の\
 \cs{DeclareAlternateKanjiFont}(\ref{ssec-nfsspat}節)を参照せよ.
 %</ja>
+
 \end{itemize}
 
 %<*en>
@@ -1184,17 +1243,17 @@ this chapter. For the method, please see Subsection~\ref{ssec-math}.
 \label{ssec-fontspec}
 %<*en>
 To coexist with the \Pkg{fontspec} package, it is needed to load
-\Pkg{luatexja-fontspec} package in the preamble, as follows:
+the \Pkg{luatexja-fontspec} package in the preamble, as follows:
 \begin{quote}
 \ttfamily \textbackslash usepackage[<options>]\{luatexja-fontspec\}
 \end{quote}
 This \Pkg{luatexja-fontspec} package
 automatically loads \Pkg{luatexja} and \Pkg{fontspec}
-package, if needed.
+packages, if needed.
 %</en>
 %<*ja>
 \Pkg{fontspec}パッケージと同様の機能を和文フォントに対しても用いる場合,
-\Pkg{luatexja-fontspec}ã\83\91ã\83\83ã\82±ã\83¼ã\82¸ã\82\92読ã\81¿è¾¼ã\82\80ï¼\9a
+\Pkg{luatexja-fontspec}ã\83\91ã\83\83ã\82±ã\83¼ã\82¸ã\82\92読ã\81¿è¾¼ã\82\81ã\81°ã\82\88ã\81\84ï¼\8e
 \begin{quote}
 \ttfamily \textbackslash usepackage[<options>]\{luatexja-fontspec\}
 \end{quote}
@@ -1203,7 +1262,7 @@ package, if needed.
 %</ja>
 
 %<*en>
-In \Pkg{luatexja-fontspec} package, the following seven~commands are defined as
+In the \Pkg{luatexja-fontspec} package, the following seven~commands are defined as
 counterparts of original commands in the \Pkg{fontspec} package:
 %</en>
 %<*ja>
@@ -1270,6 +1329,8 @@ widths.  Also note that kerning information in a font is not used
 (that is, \texttt{kern} feature is set off) by default in these seven (or~eight) commands.
 This is because of the compatibility with previous versions of \LuaTeX-ja
 (see \ref{para-kern}).
+
+Below is an example of \cs{jfontspec}.
 %</en>
 %<*ja>
 \Pkg{luatexja-fontspec} パッケージのオプションは以下の通りである:
@@ -1290,13 +1351,13 @@ This is because of the compatibility with previous versions of \LuaTeX-ja
 また,これらの和文用のコマンドではフォント内のペアカーニング情報は標準では使用されない,
 言い換えれば \texttt{kern} featureは標準では無効化となっている.
 これは以前のバージョンの\LuaTeX-jaとの互換性のためである(\ref{para-kern}節を参照).
+
+以下に\cs{jfontspec}の使用例を示す.
 %</ja>
 
 \begin{LTXexample}[width=0.4\textwidth]
-\fontspec[Numbers=OldStyle]{LMSans10-Regular}
 \jfontspec[CJKShape=NLC]{KozMinPr6N-Regular}
-JIS~X~0213:2004→辻
-
+JIS~X~0213:2004→辻\par
 \jfontspec[CJKShape=JIS1990]{KozMinPr6N-Regular}
 JIS~X~0208:1990→辻
 \end{LTXexample}
@@ -1306,34 +1367,63 @@ JIS~X~0208:1990→辻
 \label{ssec-preset}
 
 %<*en>
-To use standard Japanese font settings easily, one can load \Pkg{luatexja-preset}
+To use standard Japanese font settings easily, one can load the \Pkg{luatexja-preset}
 package with several options. This package provides functions in a part of
-\Pkg{japanese-otf} package and a part of \Pkg{PXchfon} package by Takayuki Yato,
-and loads \Pkg{luatexja-fontspec}, hence \Pkg{fontspec} internally.
-
-If you need to pass some options to \Pkg{fontspec}, load \Pkg{fontspec} manually
-before \Pkg{luatexja-preset}:
+\Pkg{japanese-otf} package and a part of \Pkg{PXchfon} package by Takayuki Yato.
 %</en>
 %<*ja>
 よく使われている和文フォント設定を一行で指定できるようにしたのが
 \Pkg{luatexja-preset}パッケージである.このパッケージは,
 \Pkg{otf}パッケージの一部機能と八登崇之氏による\Pkg{PXchfon}パッケージの一部機能とを
-合わせたような格好をしており,内部で\Pkg{luatexja-fontspec},従って
-\Pkg{fontspec}を読み込んでいる.
+合わせたような格好をしている.
+%</ja>
+
+%<en>\paragraph{General options}
+%<ja>\paragraph{一般的なオプション}
+\begin{cslist}[before*=]
+
+\item[fontspec]
+%<*en>
+With this option, Japanese fonts are selected using functionality of 
+the \Pkg{luatexja-fontspec} package. This means that the \Pkg{fontspec} package is
+            automatically loaded by this package.
+\emph{This option is enabled by default.}
+
+If you need to pass some options to \Pkg{fontspec}, load \Pkg{fontspec} manually
+before \Pkg{luatexja-preset}:
+%</en>
+%<*ja>
+\Pkg{luatexja-fontspec}パッケージの機能を用いて和文フォントを選択する.
+これは,\Pkg{fontspec}パッケージが自動で読み込まれることを意味する.
+\emph{このオプションは標準で有効になっている.}
 
 もし\Pkg{fontspec}パッケージに何らかのオプションを渡す必要がある
 \footnote{例えば,数式フォントまで置換されてしまい,\cs{mathit}によってギリシャ文字の
 斜体大文字が出なくなる,など.}場合は,
 次のように\Pkg{luatexja-preset}の前に\Pkg{fontspec}を手動で読みこめば良い:
 %</ja>
-\begin{verbatim}
+\begin{lstlisting}
 \usepackage[no-math]{fontspec}
 \usepackage[...]{luatexja-preset}
-\end{verbatim}
+\end{lstlisting}
 
-%<en>\paragraph{General options}
-%<ja>\paragraph{一般的なオプション}
-\begin{cslist}
+\item[nfssonly]
+%<*ja>
+\LaTeX 標準のフォント選択機構(NFSS2)を用いて
+\texttt{ltjpm}(明朝),\texttt{ltjpg}(ゴシック),それに後に述べる \texttt{deluxe} オプ
+            ションが指定された場合には \texttt{ltjpmg}(丸ゴシック)という
+3つの和文フォントファミリを定義し,これらを用いる.
+
+欧文フォントの指定で\Pkg{fontspec}パッケージを読み込んでいる場合でも
+\begin{lstlisting}
+\usepackage{fontspec}
+\usepackage[hiragino-pron,nfssonly]{luatexja-preset}
+\end{lstlisting}
+のように「和文側では\Pkg{fontspec}の機能は使わない,つまり\Pkg{luatexja-fontspec}は読み込
+            まない」ことは可能である.一方,,
+パッケージ読み込み時に既に\Pkg{luatexja-fontspec}パッケージが読み込まれて
+            いる場合は \texttt{nfssonly} オプションは無視される.
+%</ja>
 
 \item[nodeluxe]
 %<*en>
@@ -1343,9 +1433,9 @@ This means that \verb+\mcfamily\bfseries+, \verb+\gtfamily\bfseries+ and
 \emph{This option is enabled by default.}
 %</en>
 %<*ja>
-\LaTeXe ç\92°å¢\83ä¸\8bã\81§ã\81®æ¨\99æº\96設å®\9aã\81®ã\82\88ã\81\86ã\81«ï¼\8cæ\98\8eæ\9c\9dä½\93ã\83»ã\82´ã\82·ã\83\83ã\82¯ä½\93ã\82\92å\90\84\82¦ã\82§ã\82¤ã\83\88ã\81§ä½¿ç\94¨ã\81\99ã\82\8bï¼\8e
+\LaTeXe 環境下の標準設定のように,明朝体・ゴシック体を各1ウェイトで使用する.
 より具体的に言うと,この設定の下では
-\ \verb+\mcfamily\bfseries+, \verb+\gtfamily\bfseries+, 
+\ \verb+\mcfamily\bfseries+, \verb+\gtfamily\bfseries+,
 \verb+\gtfamily\mdseries+はみな同じフォントとなる.
 \emph{このオプションは標準で有効になっている.}
 %</ja>
@@ -1357,23 +1447,32 @@ Use \textit{mincho} with two weights (medium~and~bold),
 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 \Pkg{fontspec} package can handle only medium (\cs{mdseries}) and
+This is because the \Pkg{fontspec} package can handle only medium (\cs{mdseries}) and
 bold (\cs{bfseries}).
 %</en>
 %<*ja>
 明朝体2ウェイト・ゴシック体3ウェイトと,
 丸ゴシック体 (\cs{mgfamily}, \verb+\textmg{...}+) を使用可能とする.
-ゴシック体は細字・太字・極太の3ウェイトがあるが,
-極太ゴシック体はファミリの切り替え (\cs{gtebfamily}, \verb+\textgteb{...}+) %
-で実現している.\Pkg{fontspec}では通常 (\cs{mdseries}) と太字 (\cs{bfseries}) しか扱えないために
-このような中途半端な実装になっている.
+ゴシック体は中字・太字・極太の3ウェイトがあるが,
+極太ゴシック体を使う場合,
+\begin{itemize}
+ \item \cs{gtebfamily}, \verb+\textgteb{...}+
+ \item \cs{ebseries} (周囲がゴシック体のとき,\texttt{nfssonly} オプション指定時のみ)
+\end{itemize}
+のいずれかを用いる.標準で \cs{ebseries} が準備されていないのは,バージョンが古い
+\Pkg{fontspec}では中字(\cs{mdseries})と太字(\cs{bfseries})しか扱えなかった名残である.
 %</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} でルビ用仮名が使用可能となる.
+%<*ja>
+横組・縦組専用仮名を用いる.また,\cs{rubyfamily} でルビ用仮名が使用可能となる\footnote{%
+  \cs{rubyfamily}とはいいつつ,実際にはフォントファミリを切り替えるのではない(通常では
+  font featureの追加,\texttt{nfssonly} 指定時にはシェイプを \texttt{rb} に切り替え).
+}.
+%</ja>
 \item[bold]
 %<en>Substitute bold series of \textit{gothic} for  bold series of \textit{mincho}.
 %<ja>「明朝の太字」をゴシック体の太字によって代替する.
@@ -1409,10 +1508,14 @@ We didn't taken account of  when both \texttt{90jis} and \texttt{jis2004} are sp
 %<*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.
@@ -1455,16 +1558,7 @@ There is not rounded gothic family in Kozuka fonts.
 \end{tabular}
 \end{center}
 
-%<*en>
-In above table, starred fonts (KozGo\dots-Regular) are used for medium series of \textit{gothic},
-\emph{if and only if \texttt{deluxe} option is specified}.
-%</en>
-%<*ja>
-上の表において,*つきのフォント(KozGo\dots-Regular)は,\emph{\texttt{deluxe}オプション非指定時に}
-ゴシック体細字として用いられる.
-%</ja>
-
-%<ja>\medskip
+%<ja>\newpage
 
  \item[hiragino-pro]  Hiragino Pro (Adobe-Japan1-5) fonts.
 %<en>    \\*[-\dimexpr\medskipamount+\baselineskip\relax]
@@ -1507,7 +1601,7 @@ Std/StdNフォントであり,その他はAdobe-Japan1-5対応である.
 \end{tabular}
 \end{center}
 
-%<ja>\newpage
+%<ja>\medskip
 
  \item[morisawa-pro]  Morisawa Pro (Adobe-Japan1-4) fonts.
 %<en>    \\*[-\dimexpr\medskipamount+\baselineskip\relax]
@@ -1567,18 +1661,46 @@ Std/StdNフォントであり,その他はAdobe-Japan1-5対応である.
 \end{tabular}
 \end{center}
 
-\end{cslist} 
+ \item[moga-mobo]  MogaMincho, MogaGothic, and MoboGothic.
+These fonts can be downloaded from
+\url{http://yozvox.web.fc2.com/82A882B782B782DF8374834883938367.html}.
+
+\begin{center}\small
+\begin{tabular}{clll}
+\toprule
+\bf family&\bf series&\bf default, \texttt{90jis}~option&\bf \texttt{jis2004} option\\
+\midrule
+ &medium&Moga90Mincho&MogaMincho\\
+%<en>\smash{\raisebox{1.5ex}{\textit{mincho}}}%
+%<ja>\smash{\raisebox{1.5ex}{\gt 明朝}}%
+ &bold&Moga90Mincho Bold&MogaMincho Bold\\
+\midrule
+ &&Moga90Gothic&MogaGothic\\
+ &\smash{\raisebox{1.5ex}{medium}}
+ &Moga90Gothic&MogaGothic\\
+\cmidrule(l){2-4}
+%<en>\textit{gothic}%
+%<ja>\gt ゴシック
+ &bold&Moga90Gothic Bold&MogaGothic Bold\\
+ &heavy&Moga90Gothic Bold&MogaGothic Bold\\
+\midrule
+%<en>\textit{rounded gothic}
+%<ja>\gt 丸ゴシック
+&&Mobo90Gothic&MoboGothic\\
+\bottomrule
+\end{tabular}
+\end{center}
+
+
+\end{cslist}
 %<en>\paragraph{Presets for single weight}
 %<ja>\paragraph{単ウェイト用プリセット一覧}
 %<*en>
 Next, we describe settings for using only single weight.
-In four settings below, we use same fonts for medium and bold (and heavy) weights.
-(Hence \verb+\mcfamily\bfseries+ and \verb+\mcfamily\mdseries+ yields same Japanese fonts,
-even if \texttt{deluxe} option is also specified).
 %</en>
 %<*ja>
-次に,単ウェイト用の設定を述べる.この4設定では「細字」「太字」の区別はない.
-また,丸ゴシック体はゴシック体と同じフォントを用いる.
+次に,単ウェイト用の設定を述べる.この4設定では
+明朝体太字・丸ゴシック体はゴシック体と同じフォントが用いられる.
 %</ja>
 \par\nobreak\medskip
 {\centering\small
@@ -1588,9 +1710,9 @@ even if \texttt{deluxe} option is also specified).
 \midrule
 %<*en>
 \it mincho&Ryumin-Light (non-embedded)
-&IPAMincho&IPAexMincho&MS Mincho\\
+&IPA Mincho&IPAex Mincho&MS Mincho\\
 \it gothic&GothicBBB-Medium (non-embedded)
-&IPAGothic&IPAexGothic&MS Gothic\\
+&IPA Gothic&IPAex Gothic&MS Gothic\\
 %</en>
 %<*ja>
 \gtfamily 明朝体&Ryumin-Light(非埋込)
@@ -1600,12 +1722,6 @@ even if \texttt{deluxe} option is also specified).
 %</ja>
 \bottomrule
 \end{tabular}\par\medskip}
-%<*ja>
-なお,\ref{ssec:stdfnt}節にあるように \texttt{luatexja.cfg} を利用して\LuaTeX-jaの標準和文
-フォントを変更しても,上記 \texttt{noembed} オプションを使うとRyumin-Light,
-GothicBBB-Mediumを非埋め込みで用いることになるので注意してほしい.
-%</ja>
-
 
 %<en>\paragraph{Using HG fonts}
 %<ja>\paragraph{HGフォントの利用}
@@ -1624,14 +1740,14 @@ We can use HG~fonts bundled with Microsoft~Office for realizing multiple weights
 \midrule
 %<*en>
 \bf mincho medium
-&IPAMincho&IPAexMincho&MS Mincho\\\midrule
+&IPA Mincho&IPAex Mincho&MS Mincho\\\midrule
 \bf mincho bold&
 \multicolumn{3}{c}{HG Mincho E}\\\midrule
 \bf Gothic medium\\
 ~~without \texttt{deluxe}
-&IPAGothic&IPAexGothic&MS Gothic\\
+&IPA Gothic&IPAex Gothic&MS Gothic\\
 ~~with {\tt jis2004}
-&IPAGothic&IPAexGothic&MS Gothic\\
+&IPA Gothic&IPAex Gothic&MS Gothic\\
 \cmidrule(lr){1-4}
 ~~otherwise&
 \multicolumn{3}{c}{HG Gothic M}\\\midrule
@@ -1643,11 +1759,11 @@ We can use HG~fonts bundled with Microsoft~Office for realizing multiple weights
 \multicolumn{3}{c}{HG Maru Gothic PRO}\\
 %</en>
 %<*ja>
-\gtfamily 明朝体
+\gtfamily 明朝体
 &IPA明朝&IPAex明朝&MS明朝\\\midrule
 \gtfamily 明朝体太字&
 \multicolumn{3}{c}{HG明朝E}\\\midrule
-\gtfamily ゴシック体字\\
+\gtfamily ゴシック体字\\
  単ウェイト時
 &IPAゴシック&IPAexゴシック&MSゴシック\\
  {\tt jis2004}指定時
@@ -1675,7 +1791,6 @@ are internally specified by:
 \end{description}
 %</en>
 %<*ja>
-\newpage
 なお,HG明朝E・HGゴシックE・HG創英角ゴシックUB・HG丸ゴシック体PROの4つについては,内部で
 \begin{description}
 \item[標準] フォント名(\texttt{HGMinchoE} など)
@@ -1693,16 +1808,15 @@ are internally specified by:
 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 \Pkg{japanese-otf} package.
-If you want to use these functions, load \Pkg{luatexja-otf} package.
+supports some of functions in the \Pkg{japanese-otf} package, 
+as an external package \Pkg{luatexja-otf}.
 %</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}パッケージ
-を読み込めばよい.
+一部を(\Pkg{luatexja-otf}という別のパッケージとして)実装した.
 %</ja>
 
 \begin{LTXexample}
@@ -1719,10 +1833,10 @@ If you want to use these functions, load \Pkg{luatexja-otf} package.
 %<*ja>
 \Pkg{otf}パッケージでは,それぞれ次のようなオプションが存在した:
 \begin{cslist}
-\item[\cs{deluxe}] 明朝体・ゴシック体各2ウェイトと,丸ゴシック体を扱えるようになる.
-\item[\cs{expert}] 仮名が横組・縦組専用のものに切り替わり,ルビ用仮名も
+\item[deluxe] 明朝体・ゴシック体各3ウェイトと,丸ゴシック体を扱えるようになる.
+\item[expert] 仮名が横組・縦組専用のものに切り替わり,ルビ用仮名も
 \ \cs{rubyfamily}\ によって扱えるようになる.
-\item[\cs{bold}] ゴシック体を標準で太いウェイトのものに設定する.
+\item[bold] ゴシック体を標準で太いウェイトのものに設定する.
 \end{cslist}
 しかしこれらのオプションは\Pkg{luatexja-otf}パッケージには存在しない.
 \Pkg{otf}パッケージが文書中で使用する和文用TFMを自前の物に置き換えていたのに対し,
@@ -1734,6 +1848,59 @@ If you want to use these functions, load \Pkg{luatexja-otf} package.
 \ref{ssec-fontspec}節 (\Pkg{fontspec}) の方法で手動で指定する必要がある.
 %</ja>
 
+%<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.
+
+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 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}
+%</en>
+%<*ja>
+\LuaTeX から見える位置に \texttt{luatexja.cfg} があれば,\LuaTeX-jaはそれを読み込む.
+このファイルを用いるとplain~\TeX, \LaTeXe における標準和文フォントを
+IPAex明朝・IPAexゴシックから変更することができる.
+しかし,基本的には\emph{文章中で用いるフォントは(例えば \Pkg{luatexja-preset} などで)
+文書ソース内で指定するべき}であり,この \texttt{luatexja.cfg} は,
+「IPAexフォントがインストールできない」など,IPAexフォントが使用できない場合にのみ
+応急処置的に用いるべきである.
+
+例えば
+\begin{lstlisting}
+\def\ltj@stdmcfont{IPAMincho}
+\def\ltj@stdgtfont{IPAGothic}
+\end{lstlisting}
+と記述しておけば,標準和文フォントがIPA明朝・IPAゴシックへと変
+更される.
+
+
+なお,20140906.0以前のバージョンのように,
+Ryumin-Light, GothicBBB-Mediumという名前の非埋込フォントを用いる場合は
+\begin{lstlisting}
+\def\ltj@stdmcfont{psft:Ryumin-Light}
+\def\ltj@stdgtfont{psft:GothicBBB-Medium}
+\end{lstlisting}
+と記述すればよい.
+%</ja>
+
 
 %<en>\section{Changing Parameters}
 %<ja>\section{パラメータの変更}
@@ -1803,9 +1970,9 @@ it sets
  \item 2番,3番,6番,7番,8番の文字範囲に属する文字は\textbf{JAchar}.
 \end{itemize}
 %</ja>
-\begin{verbatim}
+\begin{lstlisting}
 \ltjsetparameter{jacharrange={-1, +2, +3, -4, -5, +6, +7, +8}}
-\end{verbatim}
+\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
@@ -1853,13 +2020,13 @@ these eight ranges belongs to the character range~217.
 %</ja>
 \begin{description}
 %<*en>
-\newpage
-\item[Range~8${}^{\text{J}}$] The intersection of the upper half of ISO~8859-1
+
+\item[Range~8${}^{\kern.1em\text{J}}$] The intersection of the upper half of ISO~8859-1
         (Latin-1 Supplement) and JIS~X~0208 (a basic character set for Japanese). This character range
         consists of the following characters:
 %</en>
 %<*ja>
-\item[範囲8${}^{\text{J}}$] ISO~8859-1の上位領域(ラテン1補助)と
+\item[範囲8${}^{\kern.1em\text{J}}$] ISO~8859-1の上位領域(ラテン1補助)と
                              JIS~X~0208の共通部分.この文字範囲は
                              以下の文字で構成される:
 %</ja>
@@ -1899,11 +2066,11 @@ This range consists of the following Unicode ranges, \emph{except characters in
 \end{itemize}
 \end{multicols}
 %<*en>
-\item[Range~2${}^{\text{J}}$] Greek and Cyrillic letters. JIS~X~0208 (hence most of Japanese
+\item[Range~2${}^{\text{\kern.1emJ}}$] Greek and Cyrillic letters. JIS~X~0208 (hence most of Japanese
           fonts) has some of these characters.
 %</en>
 %<*ja>
-\item[範囲2${}^{\text{J}}$] ギリシャ文字とキリル文字.JIS~X~0208(したがってほとんどの
+\item[範囲2${}^{\text{\kern.1emJ}}$] ギリシャ文字とキリル文字.JIS~X~0208(したがってほとんどの
                              和文フォント)はこれらの文字を持つ.
 %</ja>
 \begin{multicols}{2}
@@ -1915,11 +2082,11 @@ This range consists of the following Unicode ranges, \emph{except characters in
 \end{itemize}
 \end{multicols}
 %<*en>
-\item[Range~3${}^{\text{J}}$] Punctuations and Miscellaneous symbols. The block list is
+\item[Range~3${}^{\text{\kern.1emJ}}$] Punctuations and Miscellaneous symbols. The block list is
           indicated in Table~\ref{table-rng3}.
 %</en>
 %<*ja>
-\item[範囲3${}^{\text{J}}$] 句読点と記号類.ブロックのリストは表\ref{table-rng3}%
+\item[範囲3${}^{\text{\kern.1emJ}}$] 句読点と記号類.ブロックのリストは表\ref{table-rng3}%
                              に示してある.
 %</ja>
 \begin{table}[!tb]
@@ -1969,8 +2136,8 @@ This range consists of the following Unicode ranges, \emph{except characters in
 \end{lstlisting}
 %<en>\item[Range~5${}^{\text{A}}$] Surrogates and Supplementary Private Use Areas.
 %<ja>\item[範囲5${}^{\text{A}}$] 代用符号と補助私用領域.
-%<en>\item[Range~6${}^{\text{J}}$] Characters used in Japanese. The block list is indicated in Table~\ref{table-rng6}.
-%<ja>\item[範囲6${}^{\text{J}}$] 日本語で用いられる文字.ブロックのリストは表\ref{table-rng6}に示す.
+%<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ブロック.}
@@ -1998,11 +2165,11 @@ This range consists of the following Unicode ranges, \emph{except characters in
 \end{tabular}
 \end{table}
 %<*en>
-\item[Range~7${}^{\text{J}}$] Characters used in CJK languages, but not included in  Adobe-Japan1-6.
+\item[Range~7${}^{\text{\kern.1emJ}}$] Characters used in CJK languages, but not included in  Adobe-Japan1-6.
 The block list is indicated in Table~\ref{table-rng7}.
 %</en>
 %<*ja>
-\item[範囲7${}^{\text{J}}$] CJK言語で用いられる文字のうち,Adobe-Japan1-6に
+\item[範囲7${}^{\text{\kern.1emJ}}$] CJK言語で用いられる文字のうち,Adobe-Japan1-6に
                             含まれていないもの.
                             ブロックのリストは表\ref{table-rng7}に示す.
 %</ja>
@@ -2029,7 +2196,7 @@ The block list is indicated in Table~\ref{table-rng7}.
 \end{table}
 \end{description}
 
-%<en>\newpage\subsection{\Param{kanjiskip} and \Param{xkanjiskip}}
+%<en>\subsection{\Param{kanjiskip} and \Param{xkanjiskip}}
 %<ja>\subsection{\Param{kanjiskip}と\Param{xkanjiskip}}
 \label{subs-kskip}
 
@@ -2159,9 +2326,9 @@ as follows:
 仕様では,\Param{jaxspmode}, \Param{alxspmode}はテーブルを共有しており,
 上のコードの1行目を次のように変えても同じことになる:
 %</ja>
-\begin{verbatim}
+\begin{lstlisting}
 \ltjsetparameter{alxspmode={`あ,preonly}, jaxspmode={`\!,postonly}}
-\end{verbatim}
+\end{lstlisting}
 %<*en>
 One can use also numbers to specify these two parameters (see Subsection~\ref{ssec-param}).
 %</en>
@@ -2208,7 +2375,7 @@ Japanese fonts&\Param{yjabaselineshift}
 %</en>
 %<*ja>
 和文フォントと欧文フォントを合わせるためには,時々どちらかのベースラインの移動が
-必要になる.\pTeX ではこれは \cs{ybaselineshift} を設定することで
+必要になる.\pTeX ではこれは \cs{ybaselineshift}(または\cs{tbaselineshift})を設定することで
 なされていた(\textbf{ALchar}のベースラインがその分だけ下がる).しかし,日本語が主ではない
 文書に対しては,欧文フォントではなく和文フォントのベースラインを移動した方がよい.
 このため,\LuaTeX-jaでは欧文フォントのベースラインのシフト量
@@ -2260,36 +2427,29 @@ xyz漢字
 \end{LTXexample}
 
 %<*en>
-Note that setting a positive value to 
-\Param{yalbaselineshift}~or~\Param{talbaselineshift} does not 
-increase the depth of \textbf{ALchar}, as shown below.
-This is because these parameters are implemented by setting \verb+yoffset+
-field of a glyph node, and this does not increase the depth of the glyph.
-This problem does not apply for \Param{yjabaselineshift}, since
-\Param{yjabaselineshift}~and~\Param{tjabaselineshift}
-use a different implementation method.
-%</en>
-%<*ja>
-なお,\Param{yalbaselineshift},~\Param{talbaselineshift}パラメータに
-正の値を指定しても,
-下の例のように\textbf{ALchar}の深さは増加しないことに注意.
-これは,2パラメータがglyph~nodeの\verb+yoffset+を使って
-実装されているためである.
-\Param{yjabaselineshift},~\Param{tjabaselineshift}パラメータは
-別の方法を使って実装しているので,
-このような問題は起こらない.
-%</ja>
-\begin{LTXexample}[width=.3\textwidth]
-\leavevmode\fboxsep=0pt
- \ltjsetparameter{yjabaselineshift=0pt,
-    yalbaselineshift=0pt}
-\vrule width 105pt height 0.4pt depth 0pt \hskip-95pt
-\fbox{\ltjsetparameter{yalbaselineshift=10pt}あいうxyz}
-\fbox{\ltjsetparameter{yalbaselineshift=-10pt}あいうxyz}\\
-\vrule width 105pt height 0.4pt depth 0pt \hskip-95pt
-\fbox{\ltjsetparameter{yjabaselineshift=10pt}あいうxyz}
-\fbox{\ltjsetparameter{yjabaselineshift=-10pt}あいうxyz}
-\end{LTXexample}
+Note that setting positive \Param{yalbaselineshift}~or~\Param{talbaselineshift}
+parameters does not increase the depth of one-letter ``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 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 \dots
+\end{itemize}
+
+This problem does not apply for \Param{yjabaselineshift}~nor~\Param{tjabaselineshift}.
+%</en>
+%<*ja>
+なお,以下の場合には1文字の\textbf{ALchar}からなる「音節」の深さは増加しないことに注意.
+\begin{itemize}
+ \item \Param{yalbaselineshift},~\Param{talbaselineshift}パラメータが正になっている.
+ \item 「音節」を構成する唯一の文字$p$の
+左余白への突出量(\cs{lpcode}),右余白への突出量(\cs{rpcode})がどちらも非零である.
+\end{itemize}
+\Param{yjabaselineshift},~\Param{tjabaselineshift}パラメータについてはこのような問題は起こらない.
+%</ja>
 
 %<*ja>
 \paragraph{数式における挙動:\pTeX との違い}
@@ -2316,10 +2476,10 @@ use a different implementation method.
 \begin{tabular}{lp{30\zw}}
 \toprule
 \emph{入力}&\vspace*{\dimexpr-\origbaselineskip-\smallskipamount}
-\begin{verbatim}
+\begin{lstlisting}
 数式abc: $あa\hbox{い}$, $\int_0^x t\,dt=x^2\!/2$,
 $\Phi\vdash F(x)\ \hbox{for all}\ x\in A$
-\end{verbatim}\\
+\end{lstlisting}\\
 \noalign{\vskip-\origbaselineskip}
 \midrule
 \emph{\pTeX}&
@@ -2339,6 +2499,49 @@ $\Phi\vdash F(x)\ \hbox{for all}\ x\in A$
 \end{table}
 %</ja>
 
+%<*en>
+\subsection{\emph{kinsoku} parameters and OpenType features}
+Among parameters which related to Japanese word-wrapping process (\emph{kinsoku shori}),
+\begin{quote}
+ \Param{jaxspmode},~\Param{alxspmode}, \Param{prebreakpenalty}, 
+ \Param{postbreakpenalty}~and~\Param{kcatcode}
+\end{quote}
+are stored by each character codes. ...
+
+For example, a fullwidth katakana ``ア'' on line~10 in the below input is replaced to
+its halfwidth variant ``ア'', by \verb+hwid+ feature. 
+However, the penalty inserted after it is 10 which is the \Param{postbreakpenalty} of
+``ア'', not 20.
+%</en>
+%<*ja>
+\subsection{禁則処理関連パラメータとfont feature}
+禁則処理や \Param{kanjiskip}, \Param{xkanjiskip} の挿入に関連したパラメータのうち
+\begin{quote}
+ \Param{jaxspmode},~\Param{alxspmode}, \Param{prebreakpenalty},
+ \Param{postbreakpenalty}, \Param{kcatcode}
+\end{quote}
+は,文字コードごとに設定する量である.
+
+\Pkg{fontspec}パッケージを使う(\ref{ssec-fontspec}節)場合など,
+各種のOpenType featureを適用することもあると思うが,前段落に述べたパラメータ類は,
+\emph{OpenType featureの適用前の文字コードによって判定される.}
+例えば,以下の例において10行目の「ア」は,\verb+hwid+ featureの適用により半角カタカナの「ア」
+に置き換わる.しかし,その直後に挿入される \Param{postbreakpenalty}は,置換前の「ア」に対する値10である.
+%</ja>
+
+\begin{LTXexample}[width=0.2\textwidth]
+\ltjsetparameter{postbreakpenalty={`ア, 10}}
+\ltjsetparameter{postbreakpenalty={`ア, 20}}
+
+\newcommand\showpostpena[1]{%
+  \leavevmode\setbox0=\hbox{#1\hbox{}}%
+  \unhbox0\setbox0=\lastbox\the\lastpenalty}
+
+\showpostpena{ア},
+\showpostpena{ア},
+{\addjfontfeatures{CharacterWidth=Half}\showpostpena{ア}}
+\end{LTXexample}
+
 \clearpage
 %<en>\part{Reference}
 %<ja>\part{リファレンス}
@@ -2346,6 +2549,7 @@ $\Phi\vdash F(x)\ \hbox{for all}\ x\in A$
 \suppressfloats[t]
 %<*ja>
 \section{\LuaTeX-jaにおける \cs{catcode}}
+\label{sec-catcode}
 \subsection{予備知識:\pTeX と\upTeX における \cs{kcatcode}}
 \pTeX,\upTeX においては,和文文字が制御綴内で利用できるかどうか
 は \cs{kcatcode} の値によって決定されるのであった.
@@ -2353,6 +2557,7 @@ $\Phi\vdash F(x)\ \hbox{for all}\ x\in A$
 %</ja>
 %<*en>
 \section{\cs{catcode} in \LuaTeX-ja}
+\label{sec-catcode}
 \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.
@@ -2520,7 +2725,7 @@ for \LuaTeX, \emph{to match the \cs{catcode} setting with that of \XeTeX.}
 %<en>&\bf row&\bf col.&\bf \pTeX&\bf \upTeX&\bf\LuaTeX-ja\\
 %<ja>&\bf 区&\bf 点&\bf \pTeX&\bf \upTeX&\fontseries{b}\selectfont\LuaTeX-ja\\
 \midrule
-\D 3000&1&1&N&N&Y\\
+%\D 3000&1&1&N&N&Y\\
 \D 30FB&1&6&N&Y&N\\
 \D 309B&1&11&N&Y&N\\
 \D 309C&1&12&N&Y&N\\
@@ -2528,16 +2733,18 @@ for \LuaTeX, \emph{to match the \cs{catcode} setting with that of \XeTeX.}
 \D FF3E&1&16&N&N&Y\\
 \D FFE3&1&17&N&N&Y\\
 \D FF3F&1&18&N&N&Y\\
-\D 30FD&1&19&N&Y&Y\\
-\D 30FE&1&20&N&Y&Y\\
-\D 309D&1&21&N&Y&Y\\
-\D 309E&1&22&N&Y&Y\\
+%\D 30FD&1&19&N&Y&Y\\
+%\D 30FE&1&20&N&Y&Y\\
+%\D 309D&1&21&N&Y&Y\\
+%\D 309E&1&22&N&Y&Y\\
 \D 3003&1&23&N&N&Y\\
 \D 4EDD&1&24&N&Y&Y\\
 \D 3005&1&25&N&N&Y\\
 \D 3006&1&26&N&N&Y\\
 \D 3007&1&27&N&N&Y\\
 \D 30FC&1&28&N&Y&Y\\
+\D FF0F&1&31&N&N&Y\\
+\D FF3C&1&32&N&N&Y\\
 \bottomrule
 \end{tabular}\qquad
 \begin{tabular}{cccccc}
@@ -2545,8 +2752,6 @@ for \LuaTeX, \emph{to match the \cs{catcode} setting with that of \XeTeX.}
 %<en>&\bf row&\bf col.&\bf \pTeX&\bf \upTeX&\bf\LuaTeX-ja\\
 %<ja>&\bf 区&\bf 点&\bf \pTeX&\bf \upTeX&\fontseries{b}\selectfont\LuaTeX-ja\\
 \midrule
-\D FF0F&1&31&N&N&Y\\
-\D FF3C&1&32&N&N&Y\\
 \D FF5C&1&35&N&N&Y\\
 \D FF0B&1&60&N&N&Y\\
 \D FF1D&1&65&N&N&Y\\
@@ -2564,7 +2769,6 @@ for \LuaTeX, \emph{to match the \cs{catcode} setting with that of \XeTeX.}
 %<en>\multicolumn{3}{c}{$\vphantom{\D 3000}$\hbox{}Cyrillic letters (row 7)}&N&N&Y\\
 %<ja>\multicolumn{3}{c}{$\vphantom{\D 3000}$\hbox{}ギリシャ文字(6区)}&Y&N&Y\\
 %<ja>\multicolumn{3}{c}{$\vphantom{\D 3000}$\hbox{}キリル文字(7区)}&N&N&Y\\
-$\vphantom{\D 3000}$\\
 \bottomrule
 \end{tabular}\hss}\par
 \end{table}
@@ -2591,12 +2795,10 @@ For the detail, see \url{https://github.com/h-kitagawa/kct}.
 異なっているところだけを載せると,表\ref{table-kcat-diff}のようになる.
 「・」「゛」「゜」「゠」を除けば,\LuaTeX-jaでは\upTeX より多くの文字が
 制御綴に使用可能になっている.
-\textbf{特に重要なのは,全角空白(\texttt{U+3000})が
-\LuaTeX-jaでは制御綴中に使用可能であることである.}
 
 JIS~X~0213の範囲に広げると,差異はさらに大きくなる.
 詳細については例えば \url{https://github.com/h-kitagawa/kct} 中の\
-\texttt{kct-uni-out.pdf} などを参照すること.
+\texttt{kct-out.pdf} などを参照すること.
 %</ja>
 
 
@@ -2639,7 +2841,7 @@ implemented vertical writing by rotating \texttt{TLT}-box by 90~degrees.
 %<*ja>
 \begin{tabular}{>{\bfseries}lcccc}
 \toprule
-&横組&縦組 &\cs{dtou}「dtou方向」&「utod方向」\\
+&横組&縦組 &「dtou方向」&「utod方向」\\
 \midrule
 命令&\cs{yoko}&\cs{tate}&\cs{dtou}&\cs{utod}\\
 字送り方向&水平右向き(→)&垂直下向き(↓)&垂直上向き(↑)&垂直下向き(↓)\\
@@ -2695,7 +2897,7 @@ Example&\obox{\yoko}&\obox{\tate}&\obox{\dtou}&\obox{\utod}\\
 
 %<*en>
 \LuaTeX-ja supports four directions, as shown in Table~\ref{tab-dir}.
-The second column (\emph{yoko} direction) is just horizontal writing, 
+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.
 We implemented this for debugging purpose.
@@ -2977,41 +3179,40 @@ However, this no longer applies in \LuaTeX-ja.
 \the\wd0,~\hbox{\tate \the\wd0}
 \end{LTXexample}
 
-To access box dimensions \emph{with respect to current direction}, 
+To access box dimensions \emph{with respect to current direction},
 one have to use the following commands instead of \cs{wd} wtc.
 \begin{cslist}
 
- \item[\cs{ltjgetwd}\{<num>\}\textrm{, }\cs{ltjgetht}\{<num>\}\textrm{, }%
-  \cs{ltjgetdp}\{<num>\}]
-These commands return \emph{an internal dimension} of \cs{box<num>} with respect to 
+ \item[\cs{ltjgetwd}<num>\textrm{, }\cs{ltjgetht}<num>\textrm{, }%
+  \cs{ltjgetdp}<num>]
+These commands return \emph{an internal dimension} of \cs{box<num>} with respect to
 the current direction. One can use these in \cs{dimexpr} primitive, as the followings.
-\begin{verbatim}
-\dimexpr 2\ltjgetwd{42}-3pt\relax, \the\ltjgetwd{1701}
-\end{verbatim}
-By implementaion,  the argument must be grouped as \verb+\ltjgetwd{42}+,
-if the argument consists of more than one token.
+\begin{lstlisting}
+\dimexpr 2\ltjgetwd42-3pt\relax, \the\ltjgetwd1701
+\end{lstlisting}
+The following is an example.
 \begin{LTXexample}[width=0.3\textwidth]
 \parindent0pt
 \setbox32767=\hbox{\yoko よこぐみ}
 \fboxsep=0mm\fbox{\copy32767}
 \vbox{\hsize=20mm
-\yoko YOKO \the\ltjgetwd{32767}, \\
-  \the\ltjgetht{32767}, \\ \the\ltjgetdp{32767}.}
+\yoko YOKO \the\ltjgetwd32767, \\
+  \the\ltjgetht32767, \\ \the\ltjgetdp32767.}
 \vbox{\hsize=20mm\raggedleft
-\tate TATE \the\ltjgetwd{32767}, \\
-  \the\ltjgetht{32767}, \\ \the\ltjgetdp{32767}.}
+\tate TATE \the\ltjgetwd32767, \\
+  \the\ltjgetht32767, \\ \the\ltjgetdp32767.}
 \vbox{\hsize=20mm\raggedleft
-\dtou DTOU \the\ltjgetwd{32767}, \\
-  \the\ltjgetht{32767}, \\ \the\ltjgetdp{32767}.}
+\dtou DTOU \the\ltjgetwd32767, \\
+  \the\ltjgetht32767, \\ \the\ltjgetdp32767.}
 \end{LTXexample}
 
  \item[\cs{ltjsetwd}<num>=<dimen>\textrm{, }\cs{ltjsetht}<num>=<dimen>\textrm{, }%
   \cs{ltjsetdp}<num>=<dimen>]
 These commands set the dimension of \cs{box<num>}. Unlike \cs{ltjgetwd}, one does not need
        to group the argument <num>; four calls of \cs{ltjsetwd} below have the same meaning.
-\begin{verbatim}
+\begin{lstlisting}
 \ltjsetwd42 20pt,  \ltjsetwd42=20pt,  \ltjsetwd=42 20pt,  \ltjsetwd=42=20pt
-\end{verbatim}
+\end{lstlisting}
 
 \end{cslist}
 %</en>
@@ -3039,38 +3240,36 @@ These commands set the dimension of \cs{box<num>}. Unlike \cs{ltjgetwd}, one doe
 
 \begin{cslist}
 
- \item[\cs{ltjgetwd}\{<num>\}\textrm{, }\cs{ltjgetht}\{<num>\}\textrm{, }%
-  \cs{ltjgetdp}\{<num>\}]
+ \item[\cs{ltjgetwd}<num>\textrm{, }\cs{ltjgetht}<num>\textrm{, }%
+  \cs{ltjgetdp}<num>]
 現在の組方向に応じたボックスの寸法の取得を行う.結果は内部長さであるため,
-\begin{verbatim}
-\dimexpr 2\ltjgetwd{42}-3pt\relax, \the\ltjgetwd{1701}
-\end{verbatim}
-のように \cs{wd}<num> の代わりとして扱うことができる.引数が1桁の場合は,
-\cs{ltjgetwd3} のように引数をグループで括らなくても良いが,そうでない場合は
-(通常の命令への引数のように)\verb+\ltjgetwd{42}+ とグループに括る必要がある.
+\begin{lstlisting}
+\dimexpr 2\ltjgetwd42-3pt\relax, \the\ltjgetwd1701
+\end{lstlisting}
+のように \cs{wd}<num> の代わりとして扱うことができる.
 使用例は以下の通りである.
 \begin{LTXexample}[width=0.3\textwidth]
 \parindent0pt
 \setbox32767=\hbox{\yoko よこぐみ}
 \fboxsep=0mm\fbox{\copy32767}
 \vbox{\hsize=20mm
-\yoko YOKO \the\ltjgetwd{32767}, \\
-  \the\ltjgetht{32767}, \\ \the\ltjgetdp{32767}.}
+\yoko YOKO \the\ltjgetwd32767, \\
+  \the\ltjgetht32767, \\ \the\ltjgetdp32767.}
 \vbox{\hsize=20mm\raggedleft
-\tate TATE \the\ltjgetwd{32767}, \\
-  \the\ltjgetht{32767}, \\ \the\ltjgetdp{32767}.}
+\tate TATE \the\ltjgetwd32767, \\
+  \the\ltjgetht32767, \\ \the\ltjgetdp32767.}
 \vbox{\hsize=20mm\raggedleft
-\dtou DTOU \the\ltjgetwd{32767}, \\
-  \the\ltjgetht{32767}, \\ \the\ltjgetdp{32767}.}
+\dtou DTOU \the\ltjgetwd32767, \\
+  \the\ltjgetht32767, \\ \the\ltjgetdp32767.}
 \end{LTXexample}
 
  \item[\cs{ltjsetwd}<num>=<dimen>\textrm{, }\cs{ltjsetht}<num>=<dimen>\textrm{, }%
   \cs{ltjsetdp}<num>=<dimen>]
 現在の組方向に応じたボックスの寸法の設定を行う.\cs{afterassignment} を2回利用して
 実装しているので,次の4通りは全て同じ意味である.
-\begin{verbatim}
+\begin{lstlisting}
 \ltjsetwd42 20pt,  \ltjsetwd42=20pt,  \ltjsetwd=42 20pt,  \ltjsetwd=42=20pt
-\end{verbatim}
+\end{lstlisting}
 
 設定値は「横組」「縦組及び \cs{utod} 方向」「\cs{dtou} 方向」
 の3種ごとに独立して記録される.参考として,Gitリポジトリ内の
@@ -3138,16 +3337,16 @@ Returned value&\texttt{4}&\texttt{3}&\texttt{1}&\texttt{11}&\texttt{0}\\
 
 これらを用いれば,例えば
 \pTeX の \cs{ifydir},~\cs{ifybox200} と同等の条件判断を
-\begin{verbatim}
+\begin{lstlisting}
 \ifnum\ltjgetparameter{direction}=4
 \ifnum\ltjgetparameter{boxdir}{200}=4
-\end{verbatim}
+\end{lstlisting}
 のように行うことができる.
-\cs{iftdir} は少々面倒であるが
-\begin{verbatim}
-\ifnum\numexpr 
+\cs{iftdir} は少々面倒であるが,8で割った余りが3であるか否かを判断すれば良いから
+\begin{lstlisting}
+\ifnum\numexpr
   \ltjgetparameter{direction}-(\ltjgetparameter{direction}/8)*8=3
-\end{verbatim}
+\end{lstlisting}
 とすればよい.
 %</ja>
 
@@ -3158,8 +3357,9 @@ overridden by \LuaTeX-ja, using~\verb+\protected\def+.
 \begin{cslist}[style=standard]
  \item[\cs{unhbox}<num>\textrm{, }\cs{unvbox}<num>\textrm{, }\cs{unhcopy}<num>\textrm{, }\cs{unvcopy}<num>]
  \item[\cs{vadjust}\{<material>\}]
+ \item[\cs{insert}<number>\{<material>\}]
  \item[\cs{lastbox}]
- \item[\cs{raise}<dimen><box>\textrm{, }\cs{lower}<dimen><box>\textrm{\ etc., }\cs{vcenter}] 
+ \item[\cs{raise}<dimen><box>\textrm{, }\cs{lower}<dimen><box>\textrm{\ etc., }\cs{vcenter}]
  \item[\cs{vcenter}]
 \end{cslist}
 %</en>
@@ -3177,11 +3377,14 @@ overridden by \LuaTeX-ja, using~\verb+\protected\def+.
  \item[\cs{vadjust}\{<material>\}] 一旦プリミティブ本来の挙動を行う.その後,<material>の組方向が
  周囲の垂直リストの組方向と一致しない場合にエラーを出力し,
  該当の \cs{vadjust} を無効にする.
+ \item[\cs{insert}<number>\{<material>\}]
+ 一旦プリミティブ本来の挙動を行い,その後<material>内の各ボックス・罫線の直前に組方向を示
+             すdirection whatsitを挿入する.
  \item[\cs{lastbox}] ボックスの「中身」を現在の組方向に合わせるためのノード
-             (\textit{dir\_node}という)を必要ならば除去し,
+             (\textit{dir\_box}という)を必要ならば除去し,
  正しく「中身」のボックスが返されるように前処理をする.
  \item[\cs{raise}<dimen><box>\textrm{, }\cs{lower}<dimen><box>\textrm{\ etc., }\cs{vcenter}]
- 一方,こちらでは必要に応じて\textit{dir\_node}を作成する前処理を追加している.
+ 一方,こちらでは必要に応じて\textit{dir\_box}を作成する前処理を追加している.
 \end{cslist}
 %</ja>
 
@@ -3229,14 +3432,14 @@ causes a error.  We denote control sequences which are defined in
 
 \paragraph{JFM}
 %<*en>
-As noted in Introduction, a JFM has measurements of characters and
+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:
 %</en>
 %<*ja>
-「はじめに」の節で述べたように,JFMは文字と和文組版で自動的に挿入される
+JFMは文字と和文組版で自動的に挿入される
 グルー/カーンの寸法情報を持っている.JFMの構造は次の節で述べる.
 \cs{jfont} 命令の呼び出しの際には,どのJFMを用いるのかを以下のキーで
 指定する必要がある:
@@ -3429,10 +3632,10 @@ because of the compatibility with previous versions of \LuaTeX-ja.
 NFSS2用の命令(\ref{ssec-chgfnt}節,\ref{ssec-nfsspat}節)における指定では
 カーニング情報は標準で使用する}ことになっているようである.
 言い換えれば,カーニング情報を使用しない設定にするには,面倒でも
-\begin{verbatim}
+\begin{lstlisting}
 \jfont\hoge=KozMinPr6N-Regular:jfm=ujis;-kern at 3.5mm
 \DeclareFontShape{JY3}{fuga}{m}{n} {<-> s*KozMinPr6N-Regular:jfm=ujis;-kern}{}
-\end{verbatim}
+\end{lstlisting}
 のように,\texttt{-kern} という指定を自分で追加しなければいけない.
  \item
 一方,\emph{\Pkg{luatexja-fontspec} の提供する \cs{setmainjfont}\
@@ -3531,20 +3734,22 @@ letter-spacing and the width of italic correction are not correct:
 \cs{tfont} で定義された縦組用和文フォントは,
 以下の点が \cs{jfont} による横組用和文フォントとは異なる:
 \begin{itemize}
- \item 出力時に,自動的に「\verb+vert+ feature相当」のグリフ置換が行われる.
-       これは,\Pkg{luaotfload}による各種featureのサポートとは全く別個に行われるもので,
-       いちいち \verb+vert+ featureを指定する必要はない.
-\begin{verbatim}
-\tfont\S=file:KozMinPr6N-Regular.otf:jfm=ujis % OK
-\end{verbatim}
+ \item 自動的に \texttt{vert}, \texttt{vrt2} の両OpenType featureが有効化される.
+但し,以下の例の3行目に示すように,明示的に \texttt{vert}, \texttt{vrt2}(のいずれか)の
+有効・無効を指定した場合は別である.
+\begin{lstlisting}
+\tfont\S=file:KozMinPr6N-Regular.otf:jfm=ujisv 
+    % vert and vrt2 are automatically activated
+\tfont\T=file:KozMinPr6N-Regular.otf:jfm=ujisv;-vert % vert and vrt2 are not activated
+\end{lstlisting}
  \item \ref{ssec-math}節で述べる,数式中の和文フォントには縦組用和文フォントは指定できない.
  \item \texttt{jfm=<name>}\ の部分には縦組用JFMを指定する.
 以下の縦組用JFMが\LuaTeX-jaには同梱されており,違いを表\ref{tab-difjfm-tate}に示した.
 \begin{description}
-\item[\tt jfm-ujis.lua] \LuaTeX-jaの標準縦組用JFMである.このJFMは\upTeX で
+\item[\tt jfm-ujisv.lua] \LuaTeX-jaの標準縦組用JFMである.このJFMは\upTeX で
   用いられるUTF/OTFパッケージ用の和文用TFMである \verb+upnmlminr-v.tfm+ を
   元にしている.
-\item[\tt jfm-min.lua] \pTeX に同梱されているデフォルトの和文用縦組TFM
+\item[\tt jfm-tmin.lua] \pTeX に同梱されているデフォルトの和文用縦組TFM
   である \verb+tmin10.tfm+ に相当し,\texttt{min10.tfm} と同様に
   「っ」など一部の文字幅が狭められている.
 \end{description}
@@ -3562,9 +3767,9 @@ Besides ``\texttt{file:}''\ and ``\texttt{name:}''\ prefixes which
 are introduced in the \Pkg{luaotfload} package,
 \LuaTeX-ja adds ``\texttt{psft:}''\ prefix in \cs{jfont} (and~\cs{font}),
 to specify a ``name-only'' Japanese font which
-will not be embedded to PDF. Typical use of this prefix is to specify
-standard, non-embedded Japanese fonts, namely, ``Ryumin-Light'' and
-``GothicBBB-Medium''.
+will not be embedded to PDF.
+Note that these non-embedded fonts under current \LuaTeX\ has Identity-H encoding,
+and this violates the standard ISO32000-1:2008~(\cite{pdfstd}).
 
 \emph{OpenType font features, such as ``{\tt +jp90}'',
 have no meaning in name-only fonts using ``{\tt psft:}''\ prefix,
@@ -3578,8 +3783,10 @@ with \texttt{psft} prefix, because they are only simple linear transformations.
 \cs{jfont}(と \cs{font} プリミティブ)では
 \texttt{psft:}プリフィックスを用いることができる.
 このプリフィックスを用いることで,PDFには埋め込まれない「名前だけの」
-和文フォントを指定することができる.「標準的な」非埋め込み和文フォント,
-つまり「Ryumin-Light」「GothicBBB-Medium」の指定でこのプリフィックスが使われる.
+和文フォントを指定することができる.
+なお,現行の\LuaTeX で非埋め込みフォントを作成するとPDF内でのエンコーディングが
+Identity-Hとなり,PDFの標準規格ISO32000-1:2008~(\cite{pdfstd})に非準拠になってしまう
+ので注意してほしい.
 
 \emph{\texttt{psft} プリフィックスの下では
 \texttt{+jp90} などのOpenType font featureの効力はない.
@@ -3660,9 +3867,9 @@ Please contact the LuaTeX-ja project team.
 \label{ssec-jfm-str}
 %<en>A JFM file is a Lua script which has only one function call:
 %<ja>JFMファイルはただ一つの関数呼び出しを含むLuaスクリプトである:
-\begin{verbatim}
+\begin{lstlisting}
 luatexja.jfont.define_jfm { ... }
-\end{verbatim}
+\end{lstlisting}
 %<*en>
 Real data are stored in the table which indicated above by
 \verb+{ ... }+.  So, the rest of this subsection are devoted to describe the
@@ -3792,7 +3999,7 @@ This field is a list of characters which are in this character
 \item 「\hbox{\ltjsetparameter{autoxspacing=false}\verb+'あ*'+}」のような,文字それ自体の後にアスタリスクをつけたもの
 \item いくつかの「仮想的な文字」(後に説明する)
 \end{itemize}
-%</ja> 
+%</ja>
 
 \item[width=<length>, height=<length>, depth=<length>, italic=<length>]
 %<en>(required)
@@ -3825,7 +4032,7 @@ These fields are for adjusting the position of the ``real'' glyph. Legal
             3~fields are omitted, \texttt{left} and \texttt{down} are
             treated as~0, and \texttt{align} field is treated as
             \texttt{'left'}.
-The effects of these 3~fields are indicated in 
+The effects of these 3~fields are indicated in
 Figures \ref{fig-pos}~and~\ref{fig-pos-tate}.
 %</en>
 %<*ja>
@@ -3907,7 +4114,7 @@ when the current character class is the class for opening delimiters'.
 \end{minipage}%
 \begin{minipage}{0.6\textwidth}%
 %<*en>
-Consider a  Japanese character node which belongs to 
+Consider a  Japanese character node which belongs to
 a character class whose the \texttt{align}
 field is \texttt{'middle'}.
 %</en>
@@ -4016,13 +4223,12 @@ Furthermore, the glyph is shifted according to values of fields
 和文文字を考えよう.
 \begin{itemize}
 \item
-実際のグリフの「垂直位置」は,ベースラインが文字の物理的な左右方向の中央を通る
+å®\9fé\9a\9bã\81®ã\82°ã\83ªã\83\95ã\81®ã\80\8cå\9e\82ç\9b´ä½\8dç½®ã\80\8dã\81¯ï¼\8cã\81¾ã\81\9aã\83\99ã\83¼ã\82¹ã\83©ã\82¤ã\83³ã\81\8cæ\96\87å­\97ã\81®ç\89©ç\90\86ç\9a\84ã\81ªå·¦å\8f³æ\96¹å\90\91ã\81®ä¸­å¤®ã\82\92é\80\9aã\82\8b
 位置となる.
-\item 
-また,この場合\texttt{align}フィールドは \texttt{'right'} なので,
+\item
+また,この場合 \texttt{align} フィールドは \texttt{'right'} なので,
 「水平位置」は字送り方向に「右寄せ」したものとなる(緑色の長方形).
-その際,高さ・深さは,実フォントのascender, descenderの値が使われる.
-\item 
+\item
 その後さらに \texttt{left} と \texttt{down} の値に従ってシフトされる
 のは横組用和文フォントと変わらない.
 \end{itemize}
@@ -4107,8 +4313,8 @@ we specify <ratio> to
 
 %<*ja>
 \paragraph{文字クラスの決定}
\96\87å­\97ã\81\8bã\82\89ã\81\9dã\81®æ\96\87å­\97ã\81®å±\9eã\81\99ã\82\8bæ\96\87å­\97ã\82¯ã\83©ã\82¹ã\82\92ç®\97å\87ºã\81\99ã\82\8bé\81\8eç¨\8bã\81¯å°\91ã\80\85è¤\87é\9b\91ã\81§ã\81\82ã\82\8bï¼\8e
-次の内容を一部に含んだ \texttt{jfm-test.lua} を用いて説明する.
\96\87å­\97ã\81\8bã\82\89ã\81\9dã\81®æ\96\87å­\97ã\81®å±\9eã\81\99ã\82\8bæ\96\87å­\97ã\82¯ã\83©ã\82¹ã\82\92ç®\97å\87ºã\81\99ã\82\8bé\81\8eç¨\8bã\81«ã\81¤ã\81\84ã\81¦ï¼\8c
+次の内容を含んだ \texttt{jfm-test.lua} を用いて説明する.
 %</ja>
 %<*en>
 \paragraph{Character to character classes}
@@ -4117,93 +4323,79 @@ using  \texttt{jfm-test.lua} which contains the following:
 %</en>
 \begin{lstlisting}
    [0] = {
-      chars = { '漢', 'ヒ*' },
+      chars = { '漢' },
       align = 'left', left = 0.0, down = 0.0,
       width = 1.0, height = 0.88, depth = 0.12, italic=0.0,
    },
    [2000] = {
-      chars = { '。', '、*', 'ヒ' },
+      chars = { '。', 'ヒ' },
       align = 'left', left = 0.0, down = 0.0,
       width = 0.5, height = 0.88, depth = 0.12, italic=0.0,
    },
 \end{lstlisting}
-%<ja>句点「。」の幅は二分であるので
+%<ja>ここで,次のような入力とその実行結果を考える:
 %<en>Now consider the following input/output:
 \begin{LTXexample}[width=0.3\textwidth]
-\jfont\a=file:KozMinPr6N-Regular.otf:jfm=test;+vert
-\setbox0\hbox{\a ã\80\82\inhibitglue 漢}
+\jfont\a=file:KozMinPr6N-Regular.otf:jfm=test;+hwid
+\setbox0\hbox{\a ã\83\92漢}
 \the\wd0
 \end{LTXexample}
 %<*en>
-Now we look why the above source outputs 20\,pt, not 15\,pt.
+Now we look why the above source outputs 15\,pt.
 \begin{enumerate}
-\item The ideographic full stop ``。'' is converted to its vertical form ``\char"FE12''~(\texttt{U+FE12}), %"
-by \verb+vert+ feature.
-\item The character class of ``\char"FE12'' is zero, hence its width is fullwidth.%"
-\item The character class of ``漢'', hence its width is fullwidth.
-\item \cs{inhibitglue} makes that no glue will be inserted between ``。'' and ``漢''.
-\item Hence the width of \cs{hbox} equals to 20\,pt.
+\item The character ``ヒ'' is converted to its half width  form ``ヒ'' by \verb+hwid+ feature.
+\item According to the JFM, the character class of ``ヒ'' is 2000, hence its width is halfwidth.
+\item The character class of ``漢'' is zero,  hence its width is fullwidth.
+\item Hence the width of \cs{hbox} equals to 15\,pt.
 \end{enumerate}
-This example shows that the character class of a character is determined \emph{after
+This example shows that the character class of a character is generally determined \emph{after
 applying font features by \Pkg{luaotfload}}.
 %</en>
 %<*ja>
-では,全角二分(15.0\,pt)となるのが自然……と思うかもしれないが,上の実行結果では20\,ptとなっている.
-それは以下の事情によるものである:
+上記の出力結果が,15\,ptとなっているのは理由によるものである:
 \begin{enumerate}
-\item \verb+vert+ featureによって句点(\texttt{U+3002})が縦組用のグリフと置き換わる(\Pkg{luaotfload} による処理).
-\item この縦組用句点のグリフは \texttt{U+FE12} であるため,その文字クラスは0となる.
-\item 以上により文字クラス0とみなされるため,結果として「。」の幅は全角だと認識されてしまう
+\item \verb+hwid+ featureによって「ヒ」が半角幅のグリフ「ヒ」と置き換わる(\Pkg{luaotfload} による処理).
+\item JFMによれば,この「ヒ」のグリフの文字クラスは2000である.
+\item 以上により文字クラス2000とみなされるため,結果として「ヒ」の幅は半角だと認識される
 \end{enumerate}
-この例は,\emph{文字クラスの決定はfont featureの適用によるグリフ置換の後に行われる}ことを
+この例は,\emph{文字クラスの決定はfont featureの適用によるグリフ置換の結果に基づく}ことを
 示している.
 %</ja>
 
 %<*en>
-However, a starred specification like ``\texttt{'、*'}'' changes the rule.
-Consider the following input:
+However, if the class determined by the glyph after application of features is zero,
+\LuaTeX-ja adopts the class determined by the glyph \emph{before} application of features.
+The following input is an example.
 %</en>
 %<*ja>
-但し,「\texttt{'、*'}」のようにアスタリスクつきの指定があると,
-状況は異なる.
+但し,JFMによって決まる置換後のグリフの文字クラスが0である場合は,置換前の文字クラスを採用する.
 %</ja>
 \begin{LTXexample}[width=0.3\textwidth]
 \jfont\a=file:KozMinPr6N-Regular.otf:jfm=test;+vert
-\a æ¼¢ã\80\81\inhibitglue 漢
+\a æ¼¢ã\80\82\inhibitglue 漢
 \end{LTXexample}
 %<*en>
-Here, the character class of the ideographic comma ``、''~(\texttt{U+3001}) is determined
-as following:
+Here, the character class of the ideographic full stop ``。''~(\texttt{U+3002}) is determined
+as follows:
 \begin{enumerate}
-\item As the case of ``ã\80\82'', the ideographic comma ``ã\80\81'' is converted to its vertical
-      form ``\char"FE11''~(\texttt{U+FE11}).%"
-\item The character class of ``\char"FE11'' is zero.
-\item However, \LuaTeX-ja remembers that this ``\char"FE11'' is obtained from ``、'' by
-      font features. The character class of ``ã\80\81'' is \emph{non-zero value}, namely, 2000.
-\item Hence the ideographic comma ``、'' in above belongs the character class~2000.
+\item As the case of ``ã\83\92'', the ideographic full stop ``ã\80\82'' is converted to its vertical
+      form ``\char"FE12''~(\texttt{U+FE12}) by \verb+vert+ feature.%"
+\item The character class of ``\char"FE12'', according to the JFM  is \emph{zero}.
+\item However, \LuaTeX-ja remembers that this ``\char"FE12'' is obtained from ``。'' by
+      font features. The character class of ``ã\80\82'' is \emph{non-zero value}, namely, 2000.
+\item Hence the ideographic full stop ``。'' in above belongs the character class~2000.
 \end{enumerate}
 %</en>
 %<*ja>
-ここで,読点「、」(\texttt{U+3001})の文字クラスは,以下のようにして決まる.
+ここで,句点「。」(\texttt{U+3002})の文字クラスは,以下のようにして決まる.
 \begin{enumerate}
-\item とりあえず句点の時と同じように,\Pkg{luaotfload} によって縦組用読点のグリフに置き換わる.
-\item 置換後のグリフは \texttt{U+FE11} であり,そのままでは文字クラスは0と判定される.
-\item ã\81¨ã\81\93ã\82\8dã\81\8cï¼\8cJFMã\81«ã\81¯ã\80\8c\texttt{'ã\80\81*'}ã\80\8dæ\8c\87å®\9aã\81\8cã\81\82ã\82\8bã\81®ã\81§ï¼\8cç½®æ\8f\9bå\89\8dã\81®æ¨ªçµ\84ç\94¨èª­点のグリフによって文字クラスを判定する.
-\item 結果として,上の出力例中の点の文字クラスは2000となる.
+\item \Pkg{luaotfload} によって縦組用句点のグリフに置き換わる.
+\item 置換後のグリフは \texttt{U+FE12} であり,JFMに従えば文字クラスは\emph{0}と判定される.
+\item ã\81\93ã\81®å ´å\90\88ï¼\8cç½®æ\8f\9bå\89\8dã\81®æ¨ªçµ\84ç\94¨å\8f¥点のグリフによって文字クラスを判定する.
+\item 結果として,上の出力例中の点の文字クラスは2000となる.
 \end{enumerate}
 %</ja>
 
-%<*ja>
-なお,「\texttt{'\hbox{}ヒ*'}」のようにアスタリスクつきの指定があっても,
-置換後のグリフで判定した文字クラスの値が0でなければ,そちらをそのまま作用する.
-\begin{LTXexample}[width=0.3\textwidth]
-\jfont\a=file:KozMinPr6N-Regular.otf:jfm=test;+hwid
-\a 漢ヒひ
-\end{LTXexample}
-上の例では,
-\texttt{hwid} featureにより,「ヒ」が半角の「ヒ」に置き換わるが,
-文字クラスは「ヒ」の属する0\emph{ではなく},「ヒ」の属する2000となる.
-%</ja>
 
 %<ja>\paragraph{仮想的な文字}
 %<en>\paragraph{Imaginary characters}
@@ -4262,9 +4454,9 @@ See Japanese version of this manual.
 \item JFM中の全ての数値を$1/0.962216$倍しておく.
 \item \TeX ソース中で使用するところで,サイズ指定を0.962216倍にする.
       \LaTeX でのフォント宣言なら,例えば次のように:
-\begin{verbatim}
+\begin{lstlisting}
 \DeclareFontShape{JY3}{mc}{m}{n}{<-> s*[0.962216] psft:Ryumin-Light:jfm=jis}{}
-\end{verbatim}
+\end{lstlisting}
 \end{itemize}
 \item 上に述べた特殊文字は,\texttt{'boxbdd'}を除き文字クラスを全部0とする
       (JFM中に単に書かなければよい).
@@ -4329,7 +4521,7 @@ font families. There is no relation between the value of
 you 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. 
+a \emph{horizontal} Japanese font.
 %</en>
 %<*ja>
 \LuaTeX-jaの数式中での和文フォントの扱いも同様である.
@@ -4506,7 +4698,7 @@ JFMで指定されているそれぞれの値をスケーリングしたもの
 間に入るものがkernであれば,このフィールドの値は\
 \texttt{[$j$]=\{false, <kern\_node>, <ratio>\}} である.
 <kern\_node>はkernを表すノードそのものである\footnote{%
-本バージョンでは利用可能ならばノードのアクセス手法にdirect access
+本バージョンではノードのアクセス手法にdirect access
       modelを用いている.そのため,例えば\LuaTeX\ beta-0.78.2では,単なる自然数のようにし
       か見えないことに注意.
 }.
@@ -4514,6 +4706,10 @@ glueであれば,\texttt{[$j$]=\{false, <spec\_node>, <ratio>, <icflag>\}} で
 <spec\_node>はglueの長さを表すノードそのものであり,
       $\text{<icflag>}=\textit{from\_jfm}+\text{<priority>}$である.
 \end{itemize}
+\item[ascent\textrm{, }descent]
+……
+\item[chars\_cbcache] 
+……
 \end{cslist}
 %</ja>
 
@@ -4652,8 +4848,8 @@ is the position of \verb+hpack_filter+ callback in the source
 of \LuaTeX, see Section~\ref{sec-para}.
 %</en>
 %<*ja>
-先に述べたように,\LuaTeX-jaのほとんどの内部パラメータにアクセスするには
-\cs{ltjsetparameter} と \cs{ltjgetparameter} を用いる.
+先に述べたように,\LuaTeX-jaの内部パラメータにアクセスするには
+\cs{ltjsetparameter}(または \cs{ltjglobalsetparameter})と \cs{ltjgetparameter} を用いる.
 \LuaTeX-jaが\pTeX のような文法(例えば,\verb+\prebreakpenalty`)=10000+)を
 採用しない理由の一つは,\LuaTeX のソースにおける \verb+hpack_filter+
 コールバックの位置にある.\ref{sec-para}章を参照.
@@ -4663,24 +4859,22 @@ of \LuaTeX, see Section~\ref{sec-para}.
 \cs{ltjsetparameter} and \cs{ltjglobalsetparameter} are commands
 for assigning parameters. These take one argument which is a
 \texttt{<key>=<value>} list.
-The list of allowed keys are described in the next subsection.
 The difference between
 \cs{ltjsetparameter} and \cs{ltjglobalsetparameter} is only the
 scope of assignment;
 \cs{ltjsetparameter} does a local assignment and
 \cs{ltjglobalsetparameter} does a global one.
-They also obey the value of \cs{globaldefs},
-like other assignment.
+They also obey the value of \cs{globaldefs}, like other assignments.
 %</en>
 %<*ja>
 \cs{ltjsetparameter} と \cs{ltjglobalsetparameter} はパラメータを
-指定するための命令である.これらは\texttt{<key>=<value>}のリストを
-引数としてとる.許されるキーの一覧は次の節にある.
+指定するための命令で\texttt{<key>=<value>}のリストを
+引数としてとる.
 \cs{ltjsetparameter} と \cs{ltjglobalsetparameter} の違いはスコープの
 違いのみで,
-\cs{ltjsetparameter} はローカルな指定,\cs{ltjglobalsetparameter} は
-グローバルな指定を行う.
\81\93ã\82\8cã\82\89ã\81¯ä»\96ã\81®ã\83\91ã\83©ã\83¡ã\83¼ã\82¿æ\8c\87å®\9aã\81¨å\90\8cæ§\98ã\81« \cs{globaldefs} ã\81®å\80¤ã\81«従う.
+\cs{ltjsetparameter} はローカルな設定を行うのに対し,
+\cs{ltjglobalsetparameter} はグローバルな設定を行う.
\81¾ã\81\9fï¼\8cä»\96ã\81®ã\83\91ã\83©ã\83¡ã\83¼ã\82¿æ\8c\87å®\9aã\81¨å\90\8cæ§\98ã\81« \cs{globaldefs} ã\81®å\80¤ã\81«ã\82\82従う.
 %</ja>
 
 %<*en>
@@ -4691,7 +4885,7 @@ in \pTeX, and symbols beside each parameter has the following meaning:
 %<*ja>
 以下は \cs{ltjsetparameter} に指定することができるパラメータの一覧である.
 [\cs{cs}]は\pTeX における対応物を示す.
\81¾ã\81\9fï¼\8cã\81\9dã\82\8cã\81\9eã\82\8cã\81®ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\81®å\8f³ä¸\8aã\81«ã\81\82ã\82\8b記号には次の意味がある:
\81¾ã\81\9fï¼\8cã\81\9dã\82\8cã\81\9eã\82\8cã\81®ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\81®å\8f³ä¸\8aã\81®記号には次の意味がある:
 %</ja>
 \begin{itemize}
 %<*en>
@@ -4710,7 +4904,7 @@ adopted in the whole paragraph or the whole hbox.
 \end{itemize}
 
 \begin{cslist}[style=standard]
-\item[\DParam{jcharwidowpenalty}\,=<penalty>$^\ast$] [\cs{jcharwidowpenalty}]\ 
+\item[\DParam{jcharwidowpenalty}\,=<penalty>$^\ast$] [\cs{jcharwidowpenalty}]\
 
 %<*en>
 Penalty value for suppressing orphans. This penalty is inserted just
@@ -4732,7 +4926,7 @@ At the present version, the lowermost bit of <natural number> indicates
             (see the description of \Param{jcharwidowpenalty} above).
 %</en>
 %<*ja>
-文字コードが<chr\_code>の文字が持つ付加的な属性値(attribute)
+文字コードが<chr\_code>の文字が持つ付加的な属性値.
 現在のバージョンでは,<natural number>の最下位ビットが,その文字が句読点と
 みなされるかどうかを表している(上の\Param{jcharwidowpenalty}の記述を参照).
 %</ja>
@@ -4744,23 +4938,38 @@ At the present version, the lowermost bit of <natural number> indicates
             この文字の前に挿入/追加されるペナルティの量を指定する.
 
 例えば閉じ括弧「〗」は絶対に行頭にきてはならないので,
-\begin{verbatim}
+\begin{lstlisting}
 \ltjsetparameter{prebreakpenalty={`〙,10000}}
-\end{verbatim}
+\end{lstlisting}
 と,最大値の10000が標準で指定されている.他にも,小書きのカナなど,絶対禁止とい
             うわけではないができれば行頭にはきて欲しくない場合に,0と
-            10000の間の値を指定するのも有用であろう.
+            10000の間の値を指定するのも有用であろう.
+
+\pTeX では,\cs{prebreakpenalty}, \cs{postbreakpenalty}において,
+\begin{itemize}
+\item 一つの文字に対して,pre, postどちらか一つしか指定することができない%
+  \footnote{後から指定した方で上書きされる.}
+\item pre, post合わせて256文字分の情報を格納することしかできない
+\end{itemize}
+という制限があったが,\LuaTeX-jaではこれらの制限は解消されている.
 %</ja>
 %<*en>
 Set a penalty which is inserted automatically before the character <chr\_code>,
 to prevent a line starts from this character. For example, a line cannot started
 with one of closing brackets ``〗'', so \LuaTeX-ja sets
-\begin{verbatim}
+\begin{lstlisting}
 \ltjsetparameter{prebreakpenalty={`〙,10000}}
-\end{verbatim}
+\end{lstlisting}
 by default.
-%</en>
 
+\pTeX\ has following restrictions on \cs{prebreakpenalty} and \cs{postbreakpenalty},
+but they don't exist in \LuaTeX-ja:
+\begin{itemize}
+ \item Both \cs{prebreakpenalty} and \cs{postbreakpenalty} cannot be set
+for the same character.
+ \item We can set \cs{prebreakpenalty} and \cs{postbreakpenalty} up to 256~characters.
+\end{itemize}
+%</en>
 
 \item[\DParam{postbreakpenalty}\,=\{<chr\_code>,<penalty>\}$^\ast$]
           [\cs{postbreakpenalty}]\
@@ -4768,25 +4977,10 @@ by default.
 %<*ja>
 文字コード<chr\_code>の\textbf{JAchar}が行末にくることを抑止するために,
             この文字の後に挿入/追加されるペナルティの量を指定する.
-
-\pTeX では,\cs{prebreakpenalty}, \cs{postbreakpenalty}において,
-\begin{itemize}
-\item 一つの文字に対して,pre, postどちらか一つしか指定することができなかっ
-      た(後から指定した方で上書きされる).
-\item pre, post合わせて256文字分の情報を格納することしかできなかった.
-\end{itemize}
-という制限があったが,\LuaTeX-jaではこれらの制限は解消されている.
 %</ja>
 %<*en>
 Set a penalty which is inserted automatically after the character <chr\_code>,
 to prevent a line ends with this character.
-\pTeX\ has following restrictions on \cs{prebreakpenalty} and \cs{postbreakpenalty},
-but they don't exist in \LuaTeX-ja:
-\begin{itemize}
- \item Both \cs{prebreakpenalty} and \cs{postbreakpenalty} cannot be set
-for the same character.
- \item We can set \cs{prebreakpenalty} and \cs{postbreakpenalty}  up to 256~characters.
-\end{itemize}
 %</en>
 
 \item[\DParam{jatextfont}\,=\{<jfam>,<jfont\_cs>\}$^\ast$]
@@ -4912,13 +5106,13 @@ The default value is \texttt{paverage}. \dots
 \item[\DParam{jacharrange}\,=<ranges>]
 \item[\DParam{kansujichar}\,=\{<digit>, <chr\_code>\}$^\ast$] [\cs{kansujichar}]
 
-\item[\DParam{direction}\,=<dir>\ \hbox{\rm (always local)}]\ 
+\item[\DParam{direction}\,=<dir>\ \hbox{\rm (always local)}]\
 
 %<*en>
 Assigning to this parameter has the same effect as
 \cs{yoko}~(if $\hbox{<dir>}=4$), \cs{tate}~(if $\hbox{<dir>}=3$),
 \cs{dtou}~(if $\hbox{<dir>}=1$) or \cs{utod}~(if $\hbox{<dir>}=11$).
-If the argument <dir> is not one of 4,~3, 1~nor~11, 
+If the argument <dir> is not one of 4,~3, 1~nor~11,
 the behavior of this assignment is undefined.
 %</en>
 %<*ja>
@@ -4930,6 +5124,7 @@ the behavior of this assignment is undefined.
 
 \end{cslist}
 
+
 \subsection{\cs{ltjgetparameter}}
 \label{ssec-getpar}
 %<*en>
@@ -4949,8 +5144,8 @@ always takes a parameter name as first argument.
 
 %<*en>
 \emph{The return value of\/ \cs{ltjgetparameter} is
-always a string}. This is outputted by \texttt{tex.write()}, so any
-character other than space~``\texttt{\char32}''~(\texttt{U+0020}) has the category code
+always a string}, which is outputted by \texttt{tex.write()}.
+Hence any character other than space~``\texttt{\char32}''~(\texttt{U+0020}) has the category code
 12~(other), while the space has 10~(space).
 %</en>
 %<*ja>
@@ -4982,7 +5177,7 @@ returns 1 or 0, not
 %<*ja>
 \verb+\ltjgetparameter{autospacing}+ と \verb+\ltjgetparameter{autoxspacing}+ は,
 \texttt{true}や\texttt{false}を返すの\emph{ではなく},
-1ã\81¨0のいずれかを返すことに注意,
+1ã\81\8b0のいずれかを返すことに注意,
 %</ja>
 
 \item
@@ -4991,7 +5186,7 @@ If first argument is one of the
 following, an additional argument---a character code, for example---is needed.
 %</en>
 %<*ja>
-第1引数が次のいずれかの場合には,さらに文字コードを第引数としてとる.
+第1引数が次のいずれかの場合には,さらに文字コードを第2引数としてとる.
 %</ja>
 \begin{quote}
 \sffamily
@@ -5100,9 +5295,133 @@ by the following:
   <chr\_code>\verb+}}+\\\null\hfill\verb+% 0 if JAchar, 1 if ALchar+
 \end{quote}
 
+%<*en>
+\item Because the returned value is string, the following conditionals do not work
+if \Param{kanjiskip} (or~\Param{xkanjiskip}) has the stretch part or the shrink part.
+\begin{lstlisting}
+\ifdim\ltjgetparameter{kanjiskip}>\z@ ... \fi
+\ifdim\ltjgetparameter{xkanjiskip}>\z@ ... \fi
+\end{lstlisting}
+The correct way is using a temporary register.
+\begin{lstlisting}
+\@tempskipa=\ltjgetparameter{kanjiskip} \ifdim\@tempskipa>\z@ ... \fi
+\@tempskipa=\ltjgetparameter{xkanjiskip}\ifdim\@tempskipa>\z@ ... \fi
+\end{lstlisting}
+%</en>
+%<*ja>
+\item 返り値が文字列であることから,\Param{kanjiskip}や\Param{xkanjiskip}を直接
+\ \cs{ifdim} を使って比較することは望ましくない.伸び量や縮み量を持っている時には,
+次はエラーを発生させる:
+\begin{lstlisting}
+\ifdim\ltjgetparameter{kanjiskip}>\z@ ... \fi
+\ifdim\ltjgetparameter{xkanjiskip}>\z@ ... \fi
+\end{lstlisting}
+レジスタに一旦代入するのが良い:
+\begin{lstlisting}
+\@tempskipa=\ltjgetparameter{kanjiskip} \ifdim\@tempskipa>\z@ ... \fi
+\@tempskipa=\ltjgetparameter{xkanjiskip}\ifdim\@tempskipa>\z@ ... \fi
+\end{lstlisting}
+%</ja>
+
+\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 用に素直に書き換えた
+\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}
+\item \Param{kanjiskip} の設定を行う \cs{ltjsetkanjiskip}
+\item \Param{xkanjiskip} の設定を行う \cs{ltjsetxkanjiskip}
 \end{itemize}
+を独立させ,\Pkg{ltjsclasses}では,
+\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}
+としている.
+\cs{ltj@setpar@global}を直前に実行せず,単独で
+\cs{ltjsetkanjiskip}, \cs{ltjsetxkanjiskip}を実行することは想定されていないので注意.
+
+
+
+\paragraph{ベースライン補正量の設定}
+\pLaTeX の\Pkg{ascmac}パッケージでは,縦組の欧文ベースライン補正量の一時待避・復帰処理に
+\ \cs{@saveybaselineshift}\ という寸法レジスタを用い
+\begin{lstlisting}
+\@savetbaselineshift\tbaselineshift\tbaselineshift\z@
+...
+\tbaselineshift\@savetbaselineshift
+\end{lstlisting}
+という処理を行っている.
 
+これを\LuaTeX-ja 用に \cs{ltjsetparameter} を使って書き直すと,
+\begin{lstlisting}
+\@savetbaselineshift\ltjgetparameter{talbaselineshift}
+\ltjsetparameter{talbaselineshift=\z@}
+...
+\ltjsetparameter{talbaselineshift=\@savetbaselineshift}
+\end{lstlisting}
+となる.
 
+さて,縦組の欧文ベースライン補正量\Param{talbaselineshift}は,
+実際には \cs{ltj@tablshift} という属性レジスタに格納されている
+(\ref{sec-para}\nobreak 節参照).属性レジスタは長さではなく整数値を格納する\footnote{%
+  従って,\texttt{\textbackslash @savetbaselineshift=\textbackslash ltj@tablshift}\ 
+  のように記述することはできない.属性レジスタを \cs{tbaselineshift} という名称にしなかっ
+  たのはそのためである.
+}ものであり,\cs{ltj@tablshift} は補正量を sp 単位で保持することから,
+上記のコードと同じ内容をより速い以下のコードで実現することができる.
+\begin{lstlisting}
+\@savetbaselineshift\ltj@tablshift sp%
+\ltj@tablshift\z@
+...
+\ltj@tablshift\@savetbaselineshift
+\end{lstlisting}
+この手法は \Pkg{ascmac} パッケージの\LuaTeX-ja対応パッチ \Pkg{lltjp-tascmac.sty} で
+実際に用いられている.\Pkg{lltjp-tascmac.sty} は自動的に読み込まれるので,
+ユーザは何も気にせず普通に \Pkg{ascmac} パッケージを \cs{usepackage} で読みこめば良い.
+%</ja>
 
 
 %<en>\section{Other Commands for plain \TeX\ and \LaTeXe}
@@ -5180,7 +5499,9 @@ With the help of this example, we remark the specification of \cs{inhibitglue}:
       simply ignored.
 %</en>
 %<*ja>
-\item \cs{inhibitglue} の垂直モード中での呼び出しは意味を持たない.
+\item \emph{\cs{inhibitglue} の垂直モード中での呼び出しは意味を持たない}\footnote{%
+  この点は\TeX~Live~2014での\pTeX における \cs{inhibitglue} の仕様変更と同じである.
+}.
 4行目の入力で有効にならないのは,\cs{inhibitglue} の時点では垂直モードであり,
 \cs{noindent} の時点で水平モードになるからである.
 %</ja>
@@ -5237,9 +5558,9 @@ ignored.
 
 For example, if \cs{hoge} uses \texttt{jfm-ujis.lua}, the standard JFM of \LuaTeX-ja,
 then
-\begin{verbatim}
+\begin{lstlisting}
 \ltjdeclarealtfont\hoge\piyo{"3000-"30FF, {-1}-{-1}}
-\end{verbatim}
+\end{lstlisting}
 does
 \begin{quote}
 If the current Japanese font is \cs{hoge}, \texttt{U+3000}--\texttt{U+30FF}
@@ -5271,9 +5592,9 @@ are typeset by \cs{piyo}.
 
 例えば,\cs{hoge} のJFMが\LuaTeX-ja標準の
 \ \texttt{jfm-ujis.lua} であった場合,
-\begin{verbatim}
+\begin{lstlisting}
 \ltjdeclarealtfont\hoge\piyo{"3000-"30FF, {-1}-{-1}}
-\end{verbatim}
+\end{lstlisting}
 は「\cs{hoge} を利用しているとき,
 \texttt{U+3000}--\texttt{U+30FF}と
 文字クラス1(開き括弧類)中の文字だけは \cs{piyo} を用いる」
@@ -5650,7 +5971,7 @@ See Subsections~\ref{ssec-jfont} and \ref{ssec-psft} for details
 
 The \texttt{CID} key is effective only when with \texttt{NoEmbed}
 described below. The same JFM cannot be used in both horizontal Japanese fonts and
-            vertical Japanese fonts, hence the \texttt{JFM} key 
+            vertical Japanese fonts, hence the \texttt{JFM} key
 will be actually used in \texttt{YokoFeatures}~and~\texttt{TateFeatures} keys.
 %</en>
 %<*ja>
@@ -5769,10 +6090,10 @@ A demonstrarion is shown in Figure~\ref{fig:altkanji-fontspec}.
 \paragraph{Remark on \texttt{AltFont}, \texttt{YokoFeatures}, \texttt{TateFeatures} keys}
 In \texttt{AltFont},~\texttt{YokoFeatures},~\texttt{TateFeatures} keys,
 one cannot specify per-shape settings such as \texttt{BoldFeatures}.
-For example, 
+For example,
 \begin{lstlisting}
 AltFont = {
-  { Font=HogeraMin-Light, BoldFont=HogeraMin-Bold, 
+  { Font=HogeraMin-Light, BoldFont=HogeraMin-Bold,
     Range="3000-"30FF, BoldFeatures={Color=007F00} }
 }
 \end{lstlisting}
@@ -5787,7 +6108,7 @@ BoldFeatures = {
 \end{lstlisting}
 
 On the other hand, \texttt{YokoFeatures}, \texttt{TateFeatures} and  \texttt{TateFont}
-keys can be specified in each list in the \texttt{AltFont} key. Also, 
+keys can be specified in each list in the \texttt{AltFont} key. Also,
 one can specify \texttt{AltFont} inside \texttt{YokoFeatures},~\texttt{TateFeatures}.
 %</en>
 %<*ja>
@@ -5798,7 +6119,7 @@ one can specify \texttt{AltFont} inside \texttt{YokoFeatures},~\texttt{TateFeatu
 例えば.
 \begin{lstlisting}
 AltFont = {
-  { Font=HogeraMin-Light, BoldFont=HogeraMin-Bold, 
+  { Font=HogeraMin-Light, BoldFont=HogeraMin-Bold,
     Range="3000-"30FF, BoldFeatures={Color=007F00} }
 }
 \end{lstlisting}
@@ -5935,9 +6256,9 @@ IVSに対応してはいないようである.これらのパッケージで
 有効にするには,\Pkg{luatexja-otf}パッケージを読み込んだ上で以下の命令を実行する%
 \footnote{この命令を2回以上実行しても意味がない.}:}
 %</ja>
-\begin{verbatim}
+\begin{lstlisting}
 \directlua{luatexja.otf.enable_ivs()}
-\end{verbatim}
+\end{lstlisting}
 %<ja> すると,上の命令を実行した箇所以降では,以下のようにIVSによる字形指定が有効となる.
 %<en> After executing the command above, you can use IVS like the following:
 \begin{LTXexample}
@@ -6216,11 +6537,11 @@ counterpart of the \Pkg{plext} package.
 \begin{cslist}
 \item[tabular\textrm{, }array\textrm{, }minipage環境]
 これらの環境は,
-\begin{verbatim}
+\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{verbatim}
+\end{lstlisting}
 のように,組方向オプション \texttt{\<dir\>} が拡張されている.
 既に述べたように,組方向オプションに指定できる値は以下の5つであり,
 それ以外を指定した時や無指定時は周囲の組方向と同じ組方向になる.
@@ -6241,11 +6562,11 @@ counterpart of the \Pkg{plext} package.
 中央揃え(それ以外)される.
 \item[picture環境]
 図表作成に用いる \texttt{picture} 環境も,
-\begin{verbatim}
+\begin{lstlisting}
 \begin{picture}<dir>(x_size, y_size)(x_offset,y_offset)
   ...
 \end{picture}
-\end{verbatim}
+\end{lstlisting}
 と組方向が指定できるように拡張されている.
 $x$成分の増加方向は字送り方向,$y$成分の増加方向は行送り方向の\emph{反対方向}となる.
 \Pkg{plext} パッケージと同様に
@@ -6268,11 +6589,11 @@ $x$成分の増加方向は字送り方向,$y$成分の増加方向は行送
 \item[tabular\textrm{, }array\textrm{, }minipage\textrm{ environments}]
 These environments are extended by \texttt{\<dir\>}, which specifies the direction,
 as follows:
-\begin{verbatim}
+\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{verbatim}
+\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}
@@ -6513,13 +6834,13 @@ $i$は7より小さい自然数.
 
 \attr{ltj@dir}
 %<*ja>
-ボックスにおける組方向を示す.通常のボックスでは
+\textit{direction}~whatsit(後述)において組方向を示すために,あるいは\textit{dir\_box}の
+                        組方向を用いる.\textit{direction}~whatsitにおいては値は
 \begin{quote}
- \textit{dir\_dtou} (1), \textit{dir\_tate} (3), 
+ \textit{dir\_dtou} (1), \textit{dir\_tate} (3),
  \textit{dir\_yoko} (4), \textit{dir\_utod} (11)
 \end{quote}
-のいずれかであり,これらに次を加えた値をとるボックスが作られることもあ
-                        る(\ref{sec-dir-imp}章参照).
+のいずれかであり,\textit{dir\_box}ではこれらに次を加えた値をとる(\ref{sec-dir-imp}章参照).
 %</ja>
 \begin{description}
 \item[\textit{dir\_node\_auto} (128)]
@@ -6814,9 +7135,9 @@ store some data which obeys the grouping of \TeX.
 
 %<*en>
 The following function can be used to store data into a stack:
-\begin{verbatim}
+\begin{lstlisting}
 luatexja.stack.set_stack_table(index, <any> data)
-\end{verbatim}
+\end{lstlisting}
 Any values which except \texttt{nil}~and~NaN are usable as \textit{index}.
 However, a user should use only negative integers or strings as \textit{index},
 since natural numbers are used by \LuaTeX-ja itself.
@@ -6826,9 +7147,9 @@ is determined by \texttt{luatexja.isglobal}
 %</en>
 %<*ja>
 スタックに値を設定するには,以下のLua関数を呼び出せば良い:
-\begin{verbatim}
+\begin{lstlisting}
 luatexja.stack.set_stack_table(<any> index, <any> data)
-\end{verbatim}
+\end{lstlisting}
 直感的には,スタックテーブル中のインデックス\textit{index}の値を\textit{data}にする,という意味である.
 \textit{index}の値としては \texttt{nil} とNaN以外の任意の値を使えるが,
 自然数は\LuaTeX-jaが使用する(将来の拡張用も含む)ので,
@@ -6839,18 +7160,18 @@ luatexja.stack.set_stack_table(<any> index, <any> data)
 
 %<*en>
 Stored data can be obtained as the return value of
-\begin{verbatim}
+\begin{lstlisting}
 luatexja.stack.get_stack_table(index, <any> default, <number> level)
-\end{verbatim}
+\end{lstlisting}
 where \textit{level} is the stack level, which is usually the value of \verb+\ltj@@stack+,
 and \textit{default} is the default value which will be returned if no values are stored
 in the stack table whose level is \textit{level}.
 %</en>
 %<*ja>
 スタックの値は,
-\begin{verbatim}
+\begin{lstlisting}
 luatexja.stack.get_stack_table(<any> index, <any> default, <number> level)
-\end{verbatim}
+\end{lstlisting}
 の戻り値で取得できる.\textit{level}はスタックレベルであり,
 通常は \verb+\ltj@@stack+ の値を指定することになるだろう.
 \textit{default}はレベル\textit{level}のスタックに値が設定されていなかった場合に
@@ -6897,9 +7218,9 @@ which is offered by the \Pkg{xkeyval} package.
 
 Hence, to add a key in \cs{ltjsetparameter}, one only have to add a key
 whose prefix is \texttt{ltj} and whose family is \texttt{japaram}, as the following.
-\begin{verbatim}
+\begin{lstlisting}
 \define@key[ltj]{japaram}{...}{...}
-\end{verbatim}
+\end{lstlisting}
 
 \cs{ltjsetparameter}~and~\cs{ltjglobalsetparameter} automatically sets
 \texttt{luatexja.isglobal}. Its meaning is the following.
@@ -6922,9 +7243,9 @@ but also by the value of \cs{globaldefs}.
 
 このため,\cs{ltjsetparameter} に指定可能なパラメータを追加するには,
 <prefix>を \texttt{ltj},<family>を \texttt{japaram} としたキーを
-\begin{verbatim}
+\begin{lstlisting}
 \define@key[ltj]{japaram}{...}{...}
-\end{verbatim}
+\end{lstlisting}
 のように定義すれば良いだけである.
 なお,パラメータ指定がグローバルかローカルかどうかを示す \texttt{luatexja.isglobal} が,
 \begin{align}
@@ -6944,7 +7265,7 @@ but also by the value of \cs{globaldefs}.
 
 For parameters that do not need additional arguments, one only have to
 define a function in the table \verb+luatexja.unary_pars+.
-For example, with the following function, 
+For example, with the following function,
 \verb+\ltjgetparameter{hoge}+ returns a \emph{string} \texttt{42}.
 \begin{lstlisting}[numbers=left]
 function luatexja.unary_pars.hoge (t)
@@ -6965,11 +7286,11 @@ end
 Here the first argument $t$ is the stack level, as before.
 The second argument $c$ is just the second argument of \cs{ltjgetparameter}.
 
-For parameters that need an additional argument, one also have to 
+For parameters that need an additional argument, one also have to
 execute the \TeX\ code like
-\begin{verbatim}
+\begin{lstlisting}
 \ltj@@decl@array@param{fuga}
-\end{verbatim}
+\end{lstlisting}
 to indicate that ``the parameter \texttt{fuga} needs an additional argument''.
 %</en>
 %<*ja>
@@ -6997,9 +7318,9 @@ end
 引数$t$は,先に述べた通りのスタックレベルである.一方,引数$c$は\
 \cs{ltjgetparameter} の第2引数を表す数値である.
 しかしこれだけでは駄目で,
-\begin{verbatim}
+\begin{lstlisting}
 \ltj@@decl@array@param{fuga}
-\end{verbatim}
+\end{lstlisting}
 を実行し,\TeX インターフェース側に
 「\verb+\ltjgetparameter{fuga}+ は追加引数が必要」ということを通知する必要がある.
 %</ja>
@@ -7169,7 +7490,7 @@ process it}, if and only if the following three conditions are satisfied:
 \paragraph{Remark}
 The following example shows the major difference from the behavior of \pTeX.
 \begin{LTXexample}
-\fontspec[Ligatures=TeX]{TeX Gyre Termes}
+\fontspec[Ligatures=TeX]{Linux Libertine O}
 \ltjsetparameter{autoxspacing=false}
 \ltjsetparameter{jacharrange={-6}}xあ
 y\ltjsetparameter{jacharrange={+6}}zい
@@ -7226,7 +7547,7 @@ emits a space.
 \end{quote}
 
 この仕様は,前節で述べた\pTeX の仕様にできるだけ近づけたものとなっている.条件1.は,
-\texttt{verbatim}系環境などの日本語対応マクロを書かなくてすませるためのものである.
+\texttt{lstlisting}系環境などの日本語対応マクロを書かなくてすませるためのものである.
 
 しかしながら,\pTeX と完全に同じ挙動が実現できたわけではない.
 次のように,和文文字の範囲を変更したちょうどその行においては挙動が異なる:
 \def\OB{$\text{\sf O}_{\text{\sf B}}$}
 \begin{defn}
 %<*en>
-A \emph{cluster} is a list of consecutive nodes in one of the following forms,
+A \emph{cluster} is consecutive nodes in one of the following forms,
 with the \textit{id} of it:
 %</en>
 %<*ja>
-\emph{クラスタ}は以下の形のうちのどれかひとつをとる連続的なノードのリストである:
+\emph{クラスタ}は以下の形のうちのどれかひとつをとるノードのリストである:
 %</ja>
 \begin{enumerate}
 %<*en>
 \item Nodes whose value of\ \verb+\ltj@icflag+ is in $[3,15)$.  These
       nodes come from a hbox which is already packaged, by unpackaging
       (\cs{unhbox}).
-      The \textit{id} is \textit{id\_pbox}.
+      The \textit{id} of the cluster is \textit{id\_pbox}.
 %</en>
 %<*ja>
 \item その \verb+\ltj@icflag+ の値が$[3,15)$に入るノードのリスト.
   これらのノードはある既にパッケージングされたhboxから \cs{unhbox} で
   アンパックされたものである.
-  ã\81\9dの\textit{id}は\textit{id\_pbox}である.
+  ã\81\93ã\81®å ´å\90\88ï¼\8cã\82¯ã\83©ã\82¹ã\82¿の\textit{id}は\textit{id\_pbox}である.
 %</ja>
 
 %<*en>
 \item A inline math formula, including two \textit{math\_node}s at the boundary of it.
-      The \textit{id} is \textit{id\_math}.
+      The \textit{id} of the cluster is \textit{id\_math}.
 %</en>
 %<*ja>
 \item インライン数式でその境界に2つの\textit{math\_node}を含むもの.
-  ã\81\9dの\textit{id}は\textit{id\_math}である.
+  ã\81\93ã\81®å ´å\90\88ï¼\8cã\82¯ã\83©ã\82¹ã\82¿の\textit{id}は\textit{id\_math}である.
 %</ja>
 
 %<*en>
-\item A \textit{glyph\_node}~$p$ with nodes which relate with it:
+\item A \textit{glyph\_node}~$p$, which represents a \textbf{JAchar}, with nodes which relate with it:
 %</en>
 %<*ja>
-\item \textit{glpyh\_node}~$p$とそれに関係するノード:
+\item \textbf{JAchar}を表す\textit{glyph\_node}~$p$とそれに関係するノード:
 %</ja>
 \begin{enumerate}
 %<*en>
-\item A kern for the italic correction of~$p$.
+\item[(a)] A kern for the italic correction of~$p$.
 %</en>
 %<*ja>
-\item $p$のイタリック補正のためのカーン.
+\item[(a)] $p$のイタリック補正のためのカーン.
 %</ja>
 
 %<*en>
-\item An accent attached to $p$ by \cs{accent}.
+\item[(b)] An accent attached to $p$ by \cs{accent}.
 %</en>
 %<*ja>
-\item \cs{accent} による$p$に付随したアクセント.
+\item[(b)] \cs{accent} による$p$に付随したアクセント.
 %</ja>
 \end{enumerate}
 \[
@@ -7357,41 +7678,51 @@ with the \textit{id} of it:
 \]
 
 %<*en>
-The \textit{id} is \textit{id\_jglyph} or
-\textit{id\_glyph}, according to whether the \textit{glyph\_node}
-represents a Japanese character or not.
+In this case, the \textit{id} is \textit{id\_jglyph}.
+%</en>
+%<*ja>
+この場合の\textit{id}は\textit{id\_jglyph}である.
+%</ja>
+
+%<*en>
+\item A list which begins from a \textit{glyph\_node} which represents a \textbf{ALchar},
+      and consists of \textbf{ALchar} \textit{glyph\_node}s,
+      kerns for adjusting accents~(its subtype is 2), kerns for italic corrections and
+      kerns which are automatically inserted by \LuaTeX~or~luaotfload.
+      In this case, the \textit{id} is \textit{id\_glyph}.
 %</en>
 %<*ja>
-\textit{id}は\textit{glyph\_node}が和文文字を表すかどうかによって
-\textit{id\_jglyph},もしくは\textit{id\_glyph}となる.
+\item \textbf{ALchar}を表す\textit{glyph\_node},\cs{accent} によるアクセント位置補正用の
+      カーン(subtypeが2),そしてイタリック補正・カーニングによって挿入されたカーン達が連続
+      したもの.この場合の\textit{id}は\textit{id\_glyph}である.
 %</ja>
 
 %<*en>
 \item An box-like node, that is, an hbox, a vbox, a rule (\cs{vrule}) and an \textit{unset\_node}.
-The \textit{id} is \textit{id\_hlist} if the node is an
+The \textit{id} of the cluster is \textit{id\_hlist} if the node is an
       hbox which is not shifted vertically, or \textit{id\_box\_like}
       otherwise.
 %</en>
 %<*ja>
-\item ボックス様のノード,つまり水平ボックス,垂直ボックス,罫線 (\cs{vrule}),
+\item 水平ボックス(hbox),垂直ボックス,罫線 (\cs{vrule}),
   そして\textit{unset\_node}.
-  ã\81\9dの\textit{id}は垂直に移動していないhboxならば\textit{id\_hlist},
+  ã\82¯ã\83©ã\82¹ã\82¿の\textit{id}は垂直に移動していないhboxならば\textit{id\_hlist},
   そうでなければ\textit{id\_box\_like}となる.
 %</ja>
 
 %<*en>
 \item A glue, a kern whose subtype is not 2~(\textit{accent}), and a discretionary break.
-The \textit{id} is \textit{id\_glue}, \textit{id\_kern}
+The \textit{id} of the cluster is \textit{id\_glue}, \textit{id\_kern}
       and \textit{id\_disc}, respectively.
 %</en>
 %<*ja>
-\item グルー,subtypeが 2~(\textit{accent})ではないカーン,そして任意改行
-  その\textit{id}はそれぞれ\textit{id\_glue}, \textit{id\_kern},そして
+\item グルー,subtypeが 2~(\textit{accent})ではないカーン,そしてdiscretionary break
+  その\textit{id} of the clusterはそれぞれ\textit{id\_glue}, \textit{id\_kern},そして
   \textit{id\_disc}である.
 %</ja>
 \end{enumerate}
 %<*en>
-Let \textit{Np}, \textit{Nq} and \textit{Nr} denote a cluster.
+We use \textit{Np}, \textit{Nq} and \textit{Nr} to denote a cluster.
 %</en>
 %<*ja>
 以下では\textit{Np}, \textit{Nq}, \textit{Nr}でクラスタを表す.
@@ -7427,11 +7758,12 @@ $\mathit{Np}.\mathit{head}$, $\mathit{Np}.\mathit{tail}$は,その和文文字
 \item[\textit{id\_hlist}] 縦方向にシフトされていないhbox.\\
 この場合,$\mathit{Np}.\mathit{head}$, $\mathit{Np}.\mathit{tail}$はそれぞれ$p$の内容を表すリストの,
 先頭・末尾のノードである.
+\medskip
 \begin{itemize}
 \item 状況によっては,\TeX ソースで言うと
-\begin{verbatim}
+\begin{lstlisting}
 \hbox{\hbox{abc}...\hbox{\lower1pt\hbox{xyz}}}
-\end{verbatim}
+\end{lstlisting}
 のように,$p$の内容が別のhboxで開始・終了している可能性も十分あり得る.そのような場合,
 $\mathit{Np}.\mathit{head}$, $\mathit{Np}.\mathit{tail}$の算出は,
 \emph{垂直方向にシフトされていない}hboxの
@@ -7615,11 +7947,11 @@ x+y&\text{if\ }\Param{diffrentjfm}=\texttt{both};
 \end{enumerate}
 
 例えば,
-\begin{verbatim}
+\begin{lstlisting}
 \jfont\foo=psft:Ryumin-Light:jfm=ujis;-kern
 \jfont\bar=psft:GothicBBB-Medium:jfm=ujis;-kern
 \jfont\baz=psft:GothicBBB-Medium:jfm=ujis;jfmvar=piyo;-kern
-\end{verbatim}
+\end{lstlisting}
 という3フォントを考え,
 \[
  \overbrace{\Node{glyph}{\cs{ foo}, `あ'}}^{p}
@@ -7864,30 +8196,6 @@ If this attempt fails, \LuaTeX-ja use the method ``\textsf{\Param{kanjiskip}~[K]
 そのため,「右空白」がglueであれば,その直前に \cs{penalty10000} を挿入する.
 \end{description}
 
-なお,「右空白」はカーンの%,「左空白」は未定義の
-\[
- \overbrace{\Node{glyph}{`あ'}}^{\mathit{Nq}}\longrightarrow \overbrace{\Node{glue}{1\,pt}}^{\mathit{Np}}
-\]
-のような状況を考える.
-このとき,$a$,即ち「あ」の\Param{postbreakpenalty}がいかなる値であっても,
-この2クラスタ間は最終的に
-\begin{equation}
- \overbrace{\Node{glyph}{`あ'}}^{\mathit{Nq}}\longrightarrow
-\Node{kern}{右空白}\longrightarrow \overbrace{\Node{glue}{1\,pt}}^{\mathit{Np}}
-\label{eq-gref}
-\end{equation}
-となり,$a$分のペナルティは挿入されないことに注意して欲しい.
-\Param{postbreakpenalty}は($a$は)殆どの場合が非負の値と考えられ,そのような場合では
-\eqref{eq-gref}と
-\[
- \overbrace{\Node{glyph}{`あ'}}^{\mathit{Nq}}\longrightarrow
-\Node{penalty}{$a$}\longrightarrow
-\Node{kern}{右空白}\longrightarrow \overbrace{\Node{glue}{1\,pt}}^{\mathit{Np}}
-\]
-との間に差異は生じない%
-\footnote{kern$\rightarrow$glueが1つの行分割可能点(行分割に伴うペナルティは0)
-であるため,たとえ$a=10000$であっても,\textit{Nq}と\textit{Np}の間で行分割を禁止することはできない.}.
-
 \paragraph{箱・グルー・カーンと和文Aの間}
 \textit{Np}が\textsf{箱}・グルー・カーンのいずれかで,\textit{Np}が\textsf{和文A}であった場合は,
 すぐ上の(\textit{Nq}と\textit{Np}の順序が逆になっている)場合と同じである.
@@ -7945,6 +8253,69 @@ $\mathit{Nq}.\mathit{tail}$は無意味なので,
 \end{itemize}
 %</ja>
 
+%<*ja>
+\section{ベースライン補正の方法}
+\subsection{\texttt{yoffset} フィールド}
+\Param{yalbaselineshift}等のベースライン補正は,基本的には対象となっている
+\textit{glyph\_node}の \texttt{yoffset} フィールドの値を増減することによって
+実装されている.なお,\texttt{yoffset} の値は上方向への移動量であるのに対し,
+\Param{yalbaselineshift}などは下方向への移動量である.
+
+さて,\texttt{yoffset} の増減によって見かけのグリフ位置は上下に移動するが,
+仮想ボディの高さ$h$,深さ$d$については
+\begin{description}
+\catcode`\<=12\catcode`\>=12
+ \item[$\texttt{yoffset}\geq 0$のとき] 
+$h = \max(\texttt{height} + \texttt{yoffset}, 0)$, 
+$d = \max(\texttt{depth} - \texttt{yoffset}, 0)$, 
+ \item[$\texttt{yoffset}<0$のとき] 
+$h = \max(\texttt{height} + \texttt{yoffset}, 0)$, $d=\texttt{depth}$.
+\end{description}
+という仕様になっている.つまり,\texttt{yoffset} が負(グリフを下ける)の場合に深さは増加しな
+い(表\ref{tab:yoffset_and_im}参照).
+
+\begin{table}[t]
+\caption{\texttt{yoffset} and imaginary body}
+\label{tab:yoffset_and_im}
+\centering\small
+\fboxsep0pt
+\def\T#1#2{\fcolorbox{blue}{white}{%
+  \setbox0=\hbox{\LARGE #1%
+    \directlua{
+      local p = tex.nest[tex.nest.ptr].tail
+      p.yoffset = #2 * 65536
+    }%
+  }%
+  \copy0\kern-\wd0\smash{\color{red}\vrule width \wd0 height 0.2pt depth 0.2pt}%
+}}
+\begin{tabular}{>{\bfseries}lccccc}
+\toprule
+\texttt{yoffset}&10\,pt&5\,pt&0&$-5$\,pt&$-10$\,pt\\
+\midrule
+仮想ボディ&\T{y}{10}, \T{H}{10}&\T{y}{5}, \T{H}{5}&\T{y}{0}, \T{H}{0}%
+&\T{y}{-5}, \T{H}{-5}&\T{y}{-10}, \T{H}{-10}\\[10pt]
+\bottomrule
+\end{tabular}
+\end{table}
+
+\subsection{\textbf{ALchar}の補正}
+上記の問題について,\textbf{ALchar}のベースライン補正では
+「正しい深さ」を持った罫線(rule)を補うという対応策をとった.
+この罫線による補正は,\textit{id}が\textit{id\_glyph}であるクラスタ単位,
+大雑把に言えば音節単位で行われる.
+文字列``Typeset''を
+\begin{itemize}
+ \item フォントはLatin Modern Roman (\texttt{lmroman10-regular.otf}) 10\,pt
+ \item \Param{yalbaselineshift}は5\,pt
+\end{itemize}
+という状況で組んだ場合を例にとって説明しよう.
+
+\LuaTeX・\Pkg{luaotfload}によるカーニング・ハイフネーションが終わった段階では,
+
+
+
+%</ja>
+
 %<en>\section{Patch for the \Pkg{listings} Package}
 %<ja>\section{\Pkg{listings} パッケージへの対応}
 
@@ -7994,7 +8365,7 @@ then the patch \Pkg{lltjp-listings} is loaded automatically at \verb+\begin{docu
 意識する必要はない.
 %</ja>
 
-%<en>\subsection{Notes}
+%<en>\subsection{Notes and additional keys}
 %<ja>\subsection{注意}
 %<*en>
 \paragraph{Escaping to \LaTeX}
@@ -8036,6 +8407,20 @@ instead of ``\verb+\ほげ+''.
 「\cs{}\IVSA FFFFF」というcontrol symbolが実行されることになる.
 %</ja>
 
+%<*en>
+\paragraph{Variation selectors}
+\Pkg{lltjp-listings} add two keys, namely \texttt{vsraw}~and~\texttt{vscmd},
+which specify how variation selectors are treated in 
+\texttt{lstlisting} or other enviroments.
+Note that these additional keys are not usable in the preamble, 
+since \Pkg{lltjp-listings} is loaded at \verb+\begin{document}+.
+
+\texttt{vsraw} is a key which takes a boolean value, and its default value is
+false.
+\begin{itemize}
+ \item If the \texttt{vsraw} key is true, then
+variation selectors are ``combined'' with the previous character.
+%</en>
 %<*ja>
 \paragraph{異体字セレクタの扱い}
 \texttt{lstlisting} 環境などの内部にある異体字セレクタを扱うため,
@@ -8048,21 +8433,31 @@ instead of ``\verb+\ほげ+''.
  \item trueの場合は,異体字セレクタは「直前の文字に続けて」出力される.
 もしもIVSサポート(\ref{ssec-ltjotf}節)が有効になっていた場合は,
 以下の例(左側は入力,右側はその出力)のようになる.
+%</ja>
 \begin{LTXexample}
 \begin{lstlisting}[vsraw=true]
 葛󠄀城市,葛󠄁飾区,葛西
 \end{lstlisting}
 \end{LTXexample}
+%<*en>
+\item If the \texttt{vsraw} key is false, then 
+variation selectors are typeset by an appropriate command, which is specified by
+      the \texttt{vscmd} key.
+The default setting of the \texttt{vscmd} key produces the following.
+%</en>
+%<*ja>
 \item falseの場合は,異体字セレクタは適当な命令によって「見える形で」出力される.
 どのような形で出力されるかを規定するのが \texttt{vscmd} キーであり,
 \Pkg{lltjp-listings} の標準設定では以下の例の右側のように出力される.
+%</ja>
 \begin{LTXexample}
 \begin{lstlisting}[vsraw=false,
    vscmd=\ltjlistingsvsstdcmd]
 葛󠄀城市,葛󠄁飾区,葛西
 \end{lstlisting}
 \end{LTXexample}
-ちなみに,本ドキュメントでは次のようにしている:
+%<ja> ちなみに,本ドキュメントでは次のようにしている:
+%<en> For example, the following code is the setting of the \texttt{vscmd} key in this document.
 \begin{lstlisting}[numbers=left]
 \def\IVSA#1#2#3#4#5{%
   \textcolor{blue}{\raisebox{3.5pt}{\tt%
@@ -8076,10 +8471,56 @@ instead of ``\verb+\ほげ+''.
 \lstset{vscmd=\IVSB}
 \end{lstlisting}
 \end{itemize}
-既定の出力命令を復活させたい場合は\ \verb+vsraw=\ltjlistingsvsstdcmd+\
+%<*en>
+The default output command of variation selectors is stored in \verb+\ltjlistingsvsstdcmd+.
+%</en>
+%<*ja>
+既定の出力命令を復活させたい場合は\ \verb+vscmd=\ltjlistingsvsstdcmd+\
 とすれば良い.
 %</ja>
 
+%<*en>
+\paragraph{The \texttt{doubleletterspace} key}
+Even the column format is \texttt{[c]fixed}, sometimes characters are not vertically aligned.
+The following example  is typeset with \texttt{basewidth=2em}, and
+you'll see the leftmost ``\texttt{H}'' are not vertically aligned.
+\begin{lstlisting}[basewidth=2em, basicstyle=\tt,numbers=left]
+:H:
+:HHHH:
+\end{lstlisting}
+
+\Pkg{lltjp-listing} adds the \texttt{doubleletterspace} key (not activated by default, for
+compatibility) to
+improve the situation, namely doubles inter-character space in each output unit.
+With this key, the above input now produces better output.
+\begin{lstlisting}[basewidth=2em, basicstyle=\tt,numbers=left, doubleletterspace]
+:H:
+:HHHH:
+\end{lstlisting}
+%</en>
+%<*ja>
+\paragraph{\texttt{doubleletterspace}キー}
+\Pkg{listings}パッケージで列揃えが \texttt{[c]fixed} となっている場合でも,
+場合によっては文字が縦に揃わない場合もある.
+例を以下に示そう.これは強調するために \texttt{basewidth=2em} を設定している.
+\begin{lstlisting}[basewidth=2em, basicstyle=\tt,numbers=left]
+:H:
+:HHHH:
+\end{lstlisting}
+1行目と2行目の「\texttt{H}」の位置が揃っていないが,
+これは出力単位ごとに,先頭・末尾・各文字間に同じ量の空白を挿入することによる.
+
+\Pkg{lltjp-listing}では,このような症状を改善させるために \texttt{doubleletterspace} キー
+を追加した(標準では互換性のために無効になっている).このキーを有効にすると,
+出力単位中の各文字間の空白を2倍にすることで文字を揃いやすくしている.
+上と同じものを \texttt{doubleletterspace} キーを有効にして組んだものが以下であり,
+きちんと「\texttt{H}」の位置が揃っていることが分かる.
+\begin{lstlisting}[basewidth=2em, basicstyle=\tt,numbers=left, doubleletterspace]
+:H:
+:HHHH:
+\end{lstlisting}
+%</ja>
+
 %<en>\subsection{Class of Characters}
 %<ja>\subsection{文字種}
 
@@ -8201,7 +8642,7 @@ Prev&Kanji&\multicolumn{4}{c}{\hrulefill \ outputs\ \hrulefill}&collects\\
 \end{itemize}
 
 %<*en>
-Characters above \texttt{U+0080} \emph{except Variation Selectors}
+Characters above or equal to~\texttt{U+0080} \emph{except Variation Selectors}
 are classified into above 5~classes by the following rules:
 %</en>
 %<*ja>
@@ -8209,7 +8650,7 @@ are classified into above 5~classes by the following rules:
 Letter, Other, Kanji, Open, Closeのどれに属するかは次によって決まる:
 %</ja>
 \begin{itemize}
-%<en>\item \textbf{ALchar}s above \texttt{U+0080} are classified as Letter.
+%<en>\item \textbf{ALchar}s above or equal to~\texttt{U+0080} are classified as Letter.
 %<ja>\item (\texttt{U+0080}以降の)\textbf{ALchar}は,すべてLetter扱いである.
 
 %<en>\item \textbf{JAchar}s are classified in the order as follows:
@@ -8301,12 +8742,12 @@ JFM中にある文字クラス$n$の定義の
 全角単位の値として記述されている.
 
 例えば,行末文字が句点「。」であり,そこで用いられているJFM中に
-\begin{verbatim}
+\begin{lstlisting}
   [2] = {
     chars = { '。', ... }, width = 0.5, ...,
     end_stretch = 0.5, end_shrink = 0.5,
   },
-\end{verbatim}
+\end{lstlisting}
 という指定があった場合,この行末の句点は
 \begin{itemize}
 \item 通常の\TeX の行分割処理で「半角以上の詰め」が行われていた場合,
@@ -8421,10 +8862,11 @@ OpenTypeフォントでもTrueTypeフォントでもIVS情報が格納されて
 \texttt{fontloader} の呼び出しでかなり時間を消費することから,
 %%% to_table を使わなくしたことで,メモリ使用量は減った
 IVS情報をキャッシュに保存することで2回目以降の実行時間を節約している.
+%</ja>
 
 
+%<*ja>
 \section{複数フォントの「合成」(未完)}
-
 \section{\LuaTeX-jaにおけるキャッシュ}
 \Pkg{luaotfload}パッケージが,各TrueType・OpenTypeフォントの情報を
 キャッシュとして保存しているのと同様の方法で,
@@ -8483,8 +8925,9 @@ CMapが必要である.
 非埋め込みの中国語・韓国語フォントを定義する場合,同様のキャッシュが生成される.
 キャッシュの名称,必要となるCMapについては表\ref{tab:cid-cache}を参照して欲しい.
 
-\item[ivs\_***.lua]
-フォント``\texttt{***}''における異体字情報を格納している.構造は以下の通り:
+\item[extra\_***.lua]
+フォント``\texttt{***}''における異体字セレクタの情報,縦組用字形への変換テーブル,そして
+縦組時における幅を格納している.構造は以下の通り:
 %</ja>
 %<*en>
 \subsection{Use of Cache}
@@ -8494,7 +8937,7 @@ CMapが必要である.
 \item[ltj-cid-auto-adobe-japan1.lua]
 The font table of a CID-keyed non-embedded Japanese font.
 This is loaded in every run.
-It is created from two CMaps, \texttt{UniJIS2004-UTF32-H} and
+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.
 
@@ -8503,9 +8946,15 @@ 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}.
 
-\item[ivs\_***.lua]
-This file stores the table of Unicode variants in a font ``\texttt{***}''.
-The structure of the table is the following:
+\item[extra\_***.lua]
+This file stores the table which stores the following.
+\begin{itemize}
+ \item unicode variants in a font ``\texttt{***}''
+ \item vertical width of glyphs, if it is not equal to the sum of 
+the height of ascender and the depth of descender
+ \item vertical variants
+\end{itemize}
+The following is the structure of the that table.
 %</en>
 
 \begin{table}[!tb]
@@ -8518,10 +8967,10 @@ The structure of the table is the following:
 \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-H&Adobe-Japan1-UCS2\\
-Adobe-Korea1-*&ltj-cid-auto-adobe-korea1.lua&UniKS-UTF32-H&Adobe-Korea1-UCS2\\
-Adobe-GB1-*&ltj-cid-auto-adobe-gb1.lua&UniGB-UTF32-H&Adobe-GB1-UCS2\\
-Adobe-CNS1-*&ltj-cid-auto-adobe-cns1.lua&UniCNS-UTF32-H&Adobe-CNS1-UCS2\\
+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-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\\
 \bottomrule
 \end{tabular}
 \end{table}
@@ -8531,16 +8980,18 @@ return {
  {
   [10955]={    -- U+2ACB "Subset Of Above Not Equal To"
    [65024]=983879, -- <2ACB FE00>
+   ["vwidth"]=0.98, -- vertical width
   },
   [37001]={    -- U+9089 "邉"
    [0]=37001,  --   <9089 E0100>
    991049,     --   <9089 E0101>
    ...
+   ["vert"]=995025, -- vertical variant
   },
   ...
  },
  ["chksum"]="FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF", -- checksum of the fontfile
- ["version"]=4, -- version of the cache
+ ["version"]=2, -- version of the cache
 }
 \end{lstlisting}
 %<*ja>
@@ -8633,63 +9084,214 @@ nilでない<data>をキャッシュ<filename>に保存する.
 縦組を実装している.
 
 \LuaTeX-jaにおける縦組の実装は
-\pTeX ã\81«ã\81\8aã\81\91ã\82\8bå®\9fè£\85(\cite{ptexdoc,ptextug})ã\82\92ã\83\99ã\83¼ã\82¹ã\81«ã\81\97ã\81¦ã\81\8aã\82\8aï¼\8câ\80¦â\80¦
+\pTeX ã\81«ã\81\8aã\81\91ã\82\8bå®\9fè£\85(\cite{ptexdoc,ptextug})ã\82\92ã\83\99ã\83¼ã\82¹ã\81«ã\81\97ã\81¦ã\81\84ã\82\8bï¼\8e
 
-\subsection{\textit{direction}~whatsit}
+\subsection{direction~whatsit}
 \textit{direction}~whatsitとは,\textit{direction}という特定の \verb+user_id+ を持つ
-whatsitのことである.このwhatsitは,以下の3つの役割がある.
-\begin{enumerate}
-\def\labelenumi{(\roman{enumi})}
- \item 「現在作成中のリストの組方向が \cs{tate} 等により変更された」ことを表す.\\
-「現在の組方向」は \verb+\ltj@dir@count+ というカウンタに格納されているが,それだけでは
-\verb+hpack_filter+コールバックなどから正しく処理対象のリストの組方向を正しく取得すること
-       はできない(\ref{ssec-stack}節参照)ため,このように別途whatsitを用いている.
- \item \cs{hbox},~\cs{vbox}によって作成されたボックスの組方向を表す.\\
-原則として,ボックスの組方向はattribute \verb+\ltj@dir+ に格納されることになっている.しか
-       し,新規に作成されるボックスのattributeをコールバックの内部から制御するには,
-\verb+tex.setattribute+ による方法しかなく,これは不安定である.
-
-なお,この役割のdirection whatsitは,次の(iii)の役割も一緒に持っている.
- \item 「異方向における寸法」の記録用.\\
-例えば \cs{box0} に横組のボックスが格納されている時,縦組や \cs{dtou} 方向
-における寸法値は((ii)の役割として作成された)direction~whatsitが
-格納しているノードリストに格納される.
-\end{enumerate}
-このように複数の役割をもたせているので,
-\begin{verbatim}
-% yoko direction
-\setbox0=\hbox{\tate B}
-\noindent \unhbox0 A
-\end{verbatim}
-のような場合に,「(ii)の役割の\textit{direction}~whatsitが(i)の役割として認識され,
-このリストは縦組とみなされるのではないか?」と思うかもしれない.しかし,
-(i)の役割と(ii)の枠割の\textit{direction}~whatsitは \verb+\ltj@icflag+ の値により
-区別されているので,そのような混乱は起こらない.
-
-\medskip
-(ii)の役割のdirection whatsitは,各ボックスの内容を表すリストの先頭に挿入されるが,
-例外が以下の2つある:
+whatsitのことであり,以下のタイミングで作られる.
 \begin{itemize}
- \item \verb+\hbox{}+, \verb+\vbox{}+ といった,
+ \item 組方向を \cs{tate} 等で変更したとき.
+ \item \cs{hbox}, \cs{vbox}, \cs{vtop} による明示的なボックスの開始時.\\
+\verb+\hbox{}+, \verb+\vbox{}+ といった,
 \begin{itemize}
  \item \cs{tate} 等によりボックス内部の組方向を変更していない
  \item ボックスの中身のリストが空である
 \end{itemize}
 場合は,\LuaTeX の \verb+hpack_filter+, \verb+vpack_filter+ といった
-callbackに処理が回らないので,この場合にはdirection whatsitは挿入されない.
- \item \verb+\vtop{...}+ の場合は,先頭にdirection whatsitを置くと
-ボックスの高さが正しく設定されない.そのため,この場合に限っては
-direction whatsitはリストの2番目に挿入されることとなる.
+callbackに処理が回らない.そこで,\LuaTeX-ja では,\cs{everyhbox}, \cs{everyvbox} を利用す
+       ることで各ボックスの先頭に確実に追加するようにしている\footnote{%
+  問題は \cs{hbox to 25pt\{\}} という状況である.実際のこのボックスの中身は空でない(少な
+       くともdirection whatsitがある)ため,何も対策をしなければhpack時にUnderfill警告が発
+       生してしまうことになる.\LuaTeX-jaではそうならないように「\cs{hbadness},
+       \cs{vbadness} を一時的に10000に変更し,hpack, vpack後に元の値に戻す」処理を行ってい
+       る.
+}.
+ \item \cs{vsplit}によってvboxを分割した時の「残り」の先頭.
+ \item \LuaTeX-ja読み込み前に作成したボックスの寸法を \cs{ltjsetwd} 等によって変更した時.
+ \item \cs{insert} によるinsertionでは,中身の先頭に\textit{direction}~whatsitは作られず,
+その代わりに中身の各ボックス・罫線の直前に作られる\footnote{%
+ これは,ページ分割の過程でinsertionが分割される時,「現在のページで出力される部分」が空と
+       なることがあることによる.先頭にwhatsitを置くと,最悪でも「現在のページにwhatsitが
+       残る」ことになってしまう.}.
 \end{itemize}
+なお,\verb+\vtop{...}+ の場合は,先頭にdirection whatsitを置くと
+ボックスの高さが常に0\,ptになるという問題が発生する.そのため,この場合に限っては
+vpack時にdirection whatsitをリストの2番目に移動させている.
+
+direction whatsitはあくまでも組方向処理のための補助的なノードであるので,
+\cs{unhbox}, \cs{unhcopy} によってボックスの中身が展開される時には展開直前に削除される.
+これは
+\begin{lstlisting}
+ % yoko direction
+\setbox0=\hbox{\tate B}
+\noindent % 水平モードに入る.この時点でのリストの中身は空
+\unhbox0 A
+\end{lstlisting}
+といった場合に,段落が縦組で組まれたり,あるいは
+\begin{lstlisting}
+\setbox0=\hbox{}
+\leavevmode \hbox{A}\unhbox0
+\setbox1=\lastbox % \box1 はどうなる?
+\end{lstlisting}
+で \cs{box1} が \cs{hbox\{A\}} でなく空になってしまうことを防ぐためである.
+
 
-\subsection{異方向のボックスの整合処理}
+\subsection{\textit{dir\_box}}
 縦中横など異方向のボックスを配置する場合に,周囲の組方向と大きさを整合させるため,
 \LuaTeX-jaでは \verb+\ltj@dir+ が128以降の\textit{hlist\_node}, \textit{vlist\_node}を
 用いる.これらは\pTeX における\textit{dir\_node}の役割と同じ果たしており,
-この文章中でも\textit{dir\_node}と呼称する.
+この文章中では\textit{dir\_box}と呼称する.
+
+\subsubsection{異方向のボックスの整合}
+\textit{dir\_box}の第一の使用目的は,異方向のボックスの大きさを整合させることである.
+例えば,
+\begin{lstlisting}
+ % yoko direction
+平成\hbox{\tate 26}年
+\end{lstlisting}
+は段落中で
+\[
+ \xymatrix{
+   {}\Node{glyph}{`平'}\ar[r]&{}\Node{glyph}{`成'}\ar[r]&
+   {}\HNode{hlist}{10.00003}{3.02779}{0.0}\ar[r]\ar[d]^{\text{中身}}&{}\Node{glyph}{`年'}\\
+   &&{}\Node{whatsit}{\cs{tate}}\ar[r]&{}\Node{glyph}{`2'}\ar[r]&{}\Node{glyph}{`6'}
+ }
+\]
+というリストを作る.その後,この段落が終了したときに,
+\LuaTeX-jaの\textbf{JAglue}挿入処理が行われ
+\[
+ \xymatrix{
+   {}\Node{glyph}{`平'}\ar[r]
+  &{}\textcolor{blue}{\Node{glue}{\Param{xkanjiskip}}}\ar[r]
+  &{}\Node{glyph}{`成'}\ar[r]
+  &{}\textcolor{blue}{\Node{penalty}{0}}
+    \ar`r[d] `[l] `[ddll] `[dl] [dl]
+  \\
+  &&{}\textcolor{red}{\HNode{hlist}{3.02779}{10.00003}{0.0}}\ar[r]\ar[d]^{\text{中身}}
+  &{}\textcolor{blue}{\Node{penalty}{0}}\ar[r]
+  &{}\Node{glyph}{`年'}\\
+  &&{}\HNode{\textit{dir\_box} (\cs{yoko})}{10.00003}{3.02779}{0.0}\ar[d]^{\text{中身}}\\
+  &&{}\Node{whatsit}{\cs{tate}}\ar[r]&{}\Node{glyph}{`2'}\ar[r]&{}\Node{glyph}{`6'}
+ }
+\]
+のようになる(青字は\textbf{JAglue},赤字が整合処理のための\textit{dir\_box}である).
+\TeX の \cs{showbox} 形式で書けば
+
+\medskip{\narrowbaselines\ttfamily\obeylines\parindent0pt
+\catcode`\@=0 @catcode`@\=12
+.\tenmin 平
+@textcolor{blue}{.\glue 0.0 plus 0.4 minus 0.4}
+.\tenmin 成
+@textcolor{blue}{.\penalty 0}
+@textcolor{red}{.\hbox(10.00003+0.0)x3.02779, direction TLT}
+..\hbox(3.02779+0.0)x10.00003, direction TLT
+...\whatsit4=[]
+...\tenrm 2
+...\tenrm 6
+@textcolor{blue}{.\penalty 0}
+.\tenmin 年
+}\medskip
+
+\noindent である.
+
+なお,\cs{raise},~\cs{lower}, \cs{moveleft},~\cs{moveright} といったボックス移動命令では.
+移動を正しく表現するために段落やボックスの途中でも異方向のボックスは\textit{dir\_box}にカ
+プセル化している.
+例えば
+\begin{lstlisting}
+ % yoko direction
+平成\raise1pt\hbox{\tate 26}年\showlists
+\end{lstlisting}
+は以下のような結果を得る.
+
+\medskip{\narrowbaselines\ttfamily\obeylines\parindent0pt
+\catcode`\@=0 @catcode`@\=12
+(前略)
+\tenrm 平
+\tenrm 成
+@textcolor{red}{\hbox(10.00003+0.0)x3.02779, shifted -1.0, direction TLT}
+.\hbox(3.02779+0.0)x10.00003, direction TLT
+..\whatsit4=[]
+..\tenrm 2
+..\tenrm 6
+\tenrm 年
+}\medskip
+
+また,メインの垂直リストに異方向のボックスが追加される場合にも同様に即座に
+\textit{dir\_box}にカプセル化している.ページ分割のタイミングを正
+しく\TeX が判断するためである.
+\cs{lastbox} によるボックスの取得では,\textit{dir\_box}は削除される.
+
+\subsubsection{異方向のボックス寸法の格納}
+第二の使用目的は,現在の組方向がボックス本来の組方向とは異なる状況で,
+\cs{ltjsetwd} によってボックス寸法を設定されたことを記録することである.
+
+例えば
+\begin{lstlisting}[numbers=left]
+\setbox0=\hbox{\vrule width 10pt height 5pt depth 2pt}
+\setbox1=\hbox{\tate\ltjsetwd0=20pt}
+\wd0=9pt
+\setbox1=\hbox{\dtou\ltjsetwd0=20pt}
+\setbox0=\hbox{\dtou a\box0}
+\end{lstlisting}
+というコードを考える.1行目で \cs{box0} には横組の
+幅10\,pt,高さ5\,pt,深さ2\,ptのボックスが代入される.
+よって,
+\begin{itemize}
+ \item 縦組下では \cs{box0} は幅7\,pt,高さ・深さ5\,ptのボックスとして扱われる.
+ \item \cs{dtou} 下では \cs{box0} は幅7\,pt,高さ10\,pt,深さ0\,ptのボックスとして扱われる.
+\end{itemize}
+このとき,\cs{box0} の\emph{中身}は
+\[
+ \xymatrix{
+   {}\Node{whatsit}{\cs{yoko}}\ar[r]&{}\Node{rule}{}
+ }
+\]
+である.
+
+さて,2行目で縦組時の \cs{box0} の幅が20\,ptに設定される.この情報が
+direction~whatsit内部のノードリストに,\textit{dir\_box}として格納される:
+\[
+ \xymatrix{
+   {}\Node{whatsit}{\cs{yoko}}\ar[r]\ar[d]_{\text{中身}}&{}\Node{rule}{}\\
+   {}\textcolor{red}{\HNode{\textit{dir\_box} (\cs{tate})}{20.0}{5.0}{5.0}}
+ }
+\]
+
+次に,3行目では横組時の,つまり \cs{box0} 本来の組方向での深さが9\,ptに変更される.
+このとき,\cs{box0} は
+\begin{itemize}
+ \item 縦組下では寸法代入が既に行われているので,2行目で作成された\textit{dir\_box}の通り
+       に幅20\,pt,高さ・深さ5\,ptのボックスとして扱われる.
+ \item \cs{dtou} 下ではまだ寸法代入が行われていないので,
+\cs{box0} の寸法変更に追従し,幅7\,pt,高さ9\,pt,深さ0\,ptのボックスとして扱われる.
+\end{itemize}
 
+4行目では \cs{dtou} 下での\cs{box0} の幅が20\,ptに設定されるので,2行目と同じように
+\[
+ \xymatrix{
+   {}\Node{whatsit}{\cs{yoko}}\ar[r]\ar[d]_{\text{中身}}&{}\Node{rule}{}\\
+   {}\textcolor{red}{\HNode{\textit{dir\_box} (\cs{dtou})}{20.0}{9.0}{0.0}}\ar[r]&
+   {}\HNode{\textit{dir\_box} (\cs{tate})}{20.0}{5.0}{5.0}
+ }
+\]
+と\textit{dir\_box}が作成される.
+
+このように寸法代入によってつくられた\textit{dir\_box}は,前節の整合過程のときに再利用され
+る.上記の例でいえば,5行目を実行した後の \cs{box0} の内容は
+\[
+ \xymatrix{
+   {}\Node{whatsit}{\cs{dtou}}\ar[r]&
+   {}\Node{glyph}{`a'}\ar[r]&
+   {}\textcolor{red}{\HNode{\textit{dir\_box} (\cs{dtou})}{20.0}{9.0}{0.0}}\ar[d]_{\text{中身}}\\
+   &&{}\HNode{hlist}{9.0}{5.0}{2.0}\ar[d]_{\text{中身}}\\
+   &&{}\Node{whatsit}{\cs{yoko}}\ar[r]&{}\Node{rule}{}
+ }
+\]
+のようになる.
 %</ja>
 
+\newpage
 \begin{thebibliography}{99}
   \addcontentsline{toc}{section}{\refname}
 \bibitem{texbytopic}
@@ -8717,31 +9319,13 @@ Requirements for Japanese Text Layout (W3C Working Group Note), 2011, 2012. \new
 \\\null\hfill\texttt{.../texmf-dist/doc/ptex/base/ptexdoc.pdf}
 \bibitem{ptextug} Hisato Hamano. \newblock
 \textit{Vertical Typesetting with \TeX}, TUGBoat~\textbf{11}(3), 346--352, 1990.
+\bibitem{pdfstd} International Organization for Standardization. \newblock
+ISO 32000-1:2008, \textit{Document management -- Portable document format -- Part 1: PDF
+      1.7}, 2008. \newblock
+\\\null\hfill
+\url{http://www.iso.org/iso/iso\_catalogue/catalogue_tc/catalogue\_detail.htm?csnumber=51502}
 \end{thebibliography}
 
-\newpage
-\appendix
-
-\section{Package versions used in this document}
-This document was typeset using the following packages:
-
-\medskip
-
-{\makeatletter\tt\footnotesize
-  \def\@pkglist#1{%
-    \filename@parse{#1}\def\@temp{sty}
-    \ifx\@temp\filename@ext
-      \edef\reserved@a{%
-        \filename@base.%
-        \ifx\filename@ext\relax tex\else\filename@ext\fi}%
-      \leavevmode\hskip-13em\hbox to 13em{\filename@area\reserved@a\hss}%
-      \csname ver@\reserved@a\endcsname\par
-    \fi
-  }%
-\parindent0pt\leftskip13em
-\ltjpkglist
-
-\makeatother}
 \end{document}
 %</!showexpl>
 %<*showexpl>