OSDN Git Service

typo in manual
[luatex-ja/luatexja.git] / doc / luatexja.dtx
index b1caf8c..b7809c9 100644 (file)
@@ -15,7 +15,7 @@
 %%%%%%%%
 \makeatletter
 %%%%%%%%
-
+\directlua{if jit then jit.on() end}
 %<*en>
 \usepackage[margin=25mm,lmargin=30mm,rmargin=30mm,footskip=6mm]{geometry}
 \usepackage{luatexja-adjust}\ltjdisableadjust
@@ -230,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といった計算機で日本語を扱う際の状況の変化に追従すること
 を怠ってしまったのだ.
@@ -275,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 における不自然な仕様・挙動があ
@@ -289,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>
+\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>
-\item 和文フォントは(小塚明朝,IPA明朝などの)実際のフォント,和文フォン
-      トメトリック(JFMと呼ぶ\footnote{混乱を防ぐため,p\TeX の意味での
-      JFM (\texttt{min10.tfm}) などは本ドキュメントでは\emph{和文用
-      TFM}とよぶことにする.})の組である.
+特に注意してほしいのは,\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>
 
@@ -375,7 +407,6 @@ The followings are major changes from \pTeX:
 ちょ\hbox{}っと
 \end{lstlisting}
 
-
 %<*en>
 \item In the process, two Japanese fonts which only differ in their ``real''
       fonts are identified.
@@ -386,34 +417,34 @@ The followings are major changes from \pTeX:
 %</ja>
 \end{itemize}
 
-%<*ja>
-\item \LuaTeX-jaでは,\pTeX と同様に漢字・仮名を制御綴内に用いることができ,
-\cs{西暦} などが正しく動作するようにしている.
-但し,制御綴中に使える和文文字が\pTeX・\upTeX と全く同じではない(\ref{sec-catcode}章参照).
-%</ja>
-
-%<*ja>
-\item ****版からは,不安定ながらも\LuaTeX-ja における縦組みをサポートしている.
-\LuaTeX のコールバックの制限などにより,特に異なった組方向のボックスを扱う場合には
-仕様が異なるので注意.
-%</ja>
-
 %<*en>
-\item Japanese characters in discretionary break (\cs{discretionary}) is not supported.
+\paragraph{Directions}
+From 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 \cs{discretionary} 内に直接和文文字を記述することはサポートされない.和文文字をどう
-      しても使いたい場合は \cs{hbox} で括ること.
+\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{用語と記法}
 
@@ -430,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>
@@ -536,8 +567,8 @@ and \emph{Japanese fonts} for fonts used in \textbf{JAchar}.
 %<en>The following packages are needed for the \LuaTeX-ja\ package.
 %<ja>\LuaTeX-jaパッケージには,次のパッケージ類が必要である.
 \begin{itemize}
-\item \LuaTeX\ beta-0.74.0 (or later)
-\item \Pkg{luaotfload} v2.2 (or later)
+\item \LuaTeX\ snapshot rev~5024 (or later)
+\item \Pkg{luaotfload} v2.5 (or later)
 \item \Pkg{adobemapping} (Adobe cmap and pdfmapping files)
 \item \Pkg{everysel} (if you want to use \LuaTeX-ja with \LaTeXe)
 %<en>\item \emph{IPAex fonts(\url{http://ipafont.ipa.go.jp/})}
@@ -545,9 +576,9 @@ and \emph{Japanese fonts} for fonts used in \textbf{JAchar}.
 \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
 
@@ -560,16 +591,10 @@ the following distributions:
   \item W32\TeX\ (in \texttt{luatexja.tar.xz})
   \end{itemize}
 IPAex fonts are also available in these distributions.
-
-If you are using \TeX~Live~2014, you can install \LuaTeX-ja
-from \TeX~Live manager (\texttt{tlmgr}):
-\begin{lstlisting}
-$ tlmgr install luatexja
-\end{lstlisting}
 %</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
 
@@ -582,24 +607,33 @@ $ tlmgr install luatexja
   \end{itemize}
 これらのディストリビューションはIPAexフォントも収録している.
 W32\TeX においてはIPAexフォントは \texttt{luatexja.tar.xz} 内にある.
-
-例えば\TeX~Live~2014を利用しているなら,\LuaTeX-jaは\TeX~Live manager (\texttt{tlmgr})を
-使ってインストールすることができる.
-\begin{lstlisting}
-$ tlmgr install luatexja
-\end{lstlisting}
 %</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:
+\item Clone the Git repository:
 \begin{lstlisting}
 $ git clone git://git.sourceforge.jp/gitroot/luatex-ja/luatexja.git
 \end{lstlisting}
@@ -613,11 +647,11 @@ 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¼する:
+\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{lstlisting}
@@ -636,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>
@@ -693,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
@@ -928,9 +968,25 @@ Note that the bold series in both family are same as the medium series of \emph{
 また,どちらのファミリでもイタリック体・スラント体は定義されない.
 %</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>
@@ -970,11 +1026,12 @@ 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{フォントの変更}
@@ -1089,6 +1146,7 @@ auto select&\cs{fontencoding}&\cs{fontfamily}&---&---&\cs{usefont}\\
 \ref{ssec-altfont}節の \cs{ltjdeclarealtfont} と,その\LaTeX 版の\
 \cs{DeclareAlternateKanjiFont}(\ref{ssec-nfsspat}節)を参照せよ.
 %</ja>
+
 \end{itemize}
 
 %<*en>
@@ -1431,7 +1489,7 @@ In above table, starred fonts (KozGo\dots-Regular) are used for medium series of
 \emph{if and only if \texttt{deluxe} option is specified}.
 %</en>
 %<*ja>
-上の表において,*つきのフォント(KozGo\dots-Regular)は,\emph{\texttt{deluxe}オプション指定時に}
+上の表において,*つきのフォント(KozGo\dots-Regular)は,\emph{\texttt{deluxe}オプション指定時に}
 ゴシック体細字として用いられる.
 %</ja>
 
@@ -2350,6 +2408,7 @@ $\Phi\vdash F(x)\ \hbox{for all}\ x\in A$
 \end{table}
 %</ja>
 
+
 \clearpage
 %<en>\part{Reference}
 %<ja>\part{リファレンス}
@@ -3001,7 +3060,7 @@ the current direction. One can use these in \cs{dimexpr} primitive, as the follo
 \begin{lstlisting}
 \dimexpr 2\ltjgetwd{42}-3pt\relax, \the\ltjgetwd{1701}
 \end{lstlisting}
-By implementaion,  the argument must be grouped as \verb+\ltjgetwd{42}+,
+By its implementaion,  the argument must be grouped as \verb+\ltjgetwd{42}+,
 if the argument consists of more than one token.
 \begin{LTXexample}[width=0.3\textwidth]
 \parindent0pt
@@ -3060,7 +3119,10 @@ These commands set the dimension of \cs{box<num>}. Unlike \cs{ltjgetwd}, one doe
 \end{lstlisting}
 のように \cs{wd}<num> の代わりとして扱うことができる.引数が1桁の場合は,
 \cs{ltjgetwd3} のように引数をグループで括らなくても良いが,そうでない場合は
-(通常の命令への引数のように)\verb+\ltjgetwd{42}+ とグループに括る必要がある.
+(通常の命令への引数のように)\verb+\ltjgetwd{42}+ とグループに括る必要がある%
+\footnote{\cs{afterassignment} を利用して実装すればグループに括る必要がなくなるのでは,と思
+             うかもしれないが,それでは本文中に書いた例のように \cs{dimexpr} 中で使用でき
+             なくなってしまう.}.
 使用例は以下の通りである.
 \begin{LTXexample}[width=0.3\textwidth]
 \parindent0pt
@@ -3141,7 +3203,7 @@ Returned value&\texttt{4}&\texttt{3}&\texttt{1}&\texttt{11}&\texttt{0}\\
 \end{center}
 
 \begin{LTXexample}[width=0.3\textwidth]
-\leavevmode\def\DIR{\ltjgetparameter{direction}}
+\leavevmode\def\DIR{\ltjgetparameter{ direction}}
 \hbox{\yoko\DIR}, \hbox{\tate\DIR},
 \hbox{\dtou\DIR}, \hbox{\utod\DIR},
 \hbox{\tate$\hbox{tate math: \DIR}$}
@@ -3171,6 +3233,7 @@ 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{vcenter}]
@@ -3190,6 +3253,9 @@ 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\_box}という)を必要ならば除去し,
  正しく「中身」のボックスが返されるように前処理をする.
@@ -3242,14 +3308,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を用いるのかを以下のキーで
 指定する必要がある:
@@ -3544,20 +3610,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を指定する必要はない
+ \item 自動的に \texttt{vert}, \texttt{vrt2} の両OpenType featureが有効化される.
+但し,以下の例の3行目に示すように,明示的に \texttt{vert}, \texttt{vrt2}(のいずれか)の
+有効・無効を指定した場合は別である
 \begin{lstlisting}
-\tfont\S=file:KozMinPr6N-Regular.otf:jfm=ujis % OK
+\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}
@@ -4031,12 +4099,11 @@ 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'} なので,
+また,この場合 \texttt{align} フィールドは \texttt{'right'} なので,
 「水平位置」は字送り方向に「右寄せ」したものとなる(緑色の長方形).
-その際,高さ・深さは,実フォントのascender, descenderの値が使われる.
 \item
 その後さらに \texttt{left} と \texttt{down} の値に従ってシフトされる
 のは横組用和文フォントと変わらない.
@@ -4507,7 +4574,7 @@ JFMで指定されているそれぞれの値をスケーリングしたもの
 間に入るものがkernであれば,このフィールドの値は\
 \texttt{[$j$]=\{false, <kern\_node>, <ratio>\}} である.
 <kern\_node>はkernを表すノードそのものである\footnote{%
-本バージョンでは利用可能ならばノードのアクセス手法にdirect access
+本バージョンではノードのアクセス手法にdirect access
       modelを用いている.そのため,例えば\LuaTeX\ beta-0.78.2では,単なる自然数のようにし
       か見えないことに注意.
 }.
@@ -4515,6 +4582,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>
 
@@ -5181,7 +5252,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>
@@ -7876,30 +7949,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}の順序が逆になっている)場合と同じである.
@@ -7957,6 +8006,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} パッケージへの対応}
 
@@ -8495,8 +8607,9 @@ CMapが必要である.
 非埋め込みの中国語・韓国語フォントを定義する場合,同様のキャッシュが生成される.
 キャッシュの名称,必要となるCMapについては表\ref{tab:cid-cache}を参照して欲しい.
 
-\item[ivs\_***.lua]
-フォント``\texttt{***}''における異体字情報を格納している.構造は以下の通り:
+\item[extra\_***.lua]
+フォント``\texttt{***}''における異体字セレクタの情報,縦組用字形への変換テーブル,そして
+縦組時における幅を格納している.構造は以下の通り:
 %</ja>
 %<*en>
 \subsection{Use of Cache}
@@ -8515,9 +8628,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]
@@ -8543,16 +8662,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>
@@ -8667,8 +8788,13 @@ callbackに処理が回らない.そこで,\LuaTeX-ja では,\cs{everyhbox
        \cs{vbadness} を一時的に10000に変更し,hpack, vpack後に元の値に戻す」処理を行ってい
        る.
 }.
- \item \cs{vsplit}によってvboxを分割した時の「残り」.
+ \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になるという問題が発生する.そのため,この場合に限っては