OSDN Git Service

Updated the manual.
authorHironori Kitagawa <h_kitagawa2001@yahoo.co.jp>
Sat, 4 Jan 2014 09:02:11 +0000 (18:02 +0900)
committerHironori Kitagawa <h_kitagawa2001@yahoo.co.jp>
Sat, 4 Jan 2014 09:02:11 +0000 (18:02 +0900)
doc/luatexja.dtx
src/ltj-otf.lua

index 94c8733..2541da6 100644 (file)
@@ -2345,8 +2345,8 @@ JFMの名前を指定する.もし以前に指定されたJFMが読み込ま
   元にしている.\Pkg{luatexja-otf}パッケージを使うときはこのJFMを指定するべきである.
 %</ja>
 %<*en>
-\item[\tt jfm-jis.lua] A counterpart for \verb+jis.tfm+, `JIS font
-  metric' which is widely used in \pTeX. A major difference of
+\item[\tt jfm-jis.lua] A counterpart for \verb+jis.tfm+, ``JIS font
+  metric'' which is widely used in \pTeX. A major difference of
   \texttt{jfm-ujis.lua} and this \texttt{jfm-jis.lua} is that
   most characters under \texttt{jfm-ujis.lua} are square-shaped,
   while that under \texttt{jfm-jis.lua} are horizontal
@@ -2512,13 +2512,13 @@ letter-spacing and the width of italic correction are not correct:
 Besides ``\texttt{file:}''\ and ``\texttt{name:}''\ prefixes which
 are introduced in the \Pkg{luaotfload} package, 
 \LuaTeX-ja adds ``\texttt{psft:}''\ prefix in \verb+\jfont+ (and~\verb+\font+),
-to specify a `name-only' Japanese font which
+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''.
 
 \emph{OpenType font features, such as ``{\tt +jp90}'', 
-have no meaning in `name-only' fonts using this `{\tt psft:}'\ prefix.
+have no meaning in name-only fonts using this ``{\tt psft:}''\ prefix.
 This is because we can't expect what fonts are actually used by the PDF reader.}
 Note that \texttt{extend}~and~\texttt{slant} settings (see~above) are supported
 with \texttt{psft} prefix, because they are only simple linear transformations.
@@ -2640,22 +2640,22 @@ floating-point numbers in design-size unit.
 %<en>(required)
 %<ja>(必須)
 
-%<en>The amount of the length of the `full-width'.
+%<en>The amount of the length of the ``full-width''.
 %<ja>「全角幅」の長さ.
 
 \item[zh=<length>]
 %<en>(required)
 %<ja>(必須)
 
-%<en>The amount of the `full-height' (height + depth).
-%<ja>「全角高さ」(height + depth)の長さ.
+%<en>The amount of the ``full-height'' (height + depth). 
+%<ja>「全角高さ」(height + depth)の長さ.通常は全角幅と同じ長さになるだろう.
 
 \item[kanjiskip=\{<natural>, <stretch>, <shrink>\}]
 %<en>(optional)
 %<ja>(任意)
 
 %<*en>
-This field specifies the `ideal' amount of \Param{\hyperlink{fld:kanjiskip}{kanjiskip}}. As noted
+This field specifies the ``ideal'' amount of \Param{\hyperlink{fld:kanjiskip}{kanjiskip}}. As noted
             in Subsection~\ref{subs-kskip}, if the parameter
             \Param{\hyperlink{fld:kanjiskip}{kanjiskip}} is \verb+\maxdimen+, the value specified
             in this field is actually used (if this field is not specified in
@@ -2675,7 +2675,7 @@ This field specifies the `ideal' amount of \Param{\hyperlink{fld:kanjiskip}{kanj
 %<ja>(任意)
 
 %<*en>
-Like the \texttt{kanjiskip} field, this field specifies the `ideal'
+Like the \texttt{kanjiskip} field, this field specifies the ``ideal''
             amount of \Param{\hyperlink{fld:xks}{xkanjiskip}}.
 %</en>
 %<*ja>
@@ -2741,7 +2741,7 @@ This field is a list of characters which are in this character
 Specifythe width of characters in character class~$i$, the height, the depth and
 the amount of italic correction. All characters in character class~$i$ are regarded that its width, height and depth are
 as values of these fields.
-But there is one exception: if \texttt{'prop'} is specified in \texttt{width} field, width of a character becomes that of its `real' glyph
+But there is one exception: if \texttt{'prop'} is specified in \texttt{width} field, width of a character becomes that of its ``real'' glyph.
 %</en>
 %<*ja>
 文字クラス$i$に属する文字の幅,高さ,深さ,イタリック補正の量を指定する.
@@ -2754,7 +2754,7 @@ But there is one exception: if \texttt{'prop'} is specified in \texttt{width} fi
 \item[left=<length>, down=<length>, align=<align>]\
 
 %<*en>
-These fields are for adjusting the position of the `real' glyph. Legal
+These fields are for adjusting the position of the ``real'' glyph. Legal
             values of \texttt{align} field are \texttt{'left'},
             \texttt{'middle'} and \texttt{'right'}. If one of these
             3~fields are omitted, \texttt{left} and \texttt{down} are
@@ -2860,7 +2860,7 @@ Its width, height and depth are specified by JFM.
 \item
 %<*en>
 Since the \texttt{align} field is \texttt{'middle'},
-the `real' glyph is centered horizontally (the green rectangle).
+the ``real'' glyph is centered horizontally (the green rectangle).
 %</en>
 %<*ja>
 \texttt{align}フィールドは\texttt{middle}なので,「実際の」グリフは
@@ -3090,8 +3090,8 @@ The following is the list of imaginary characters:
 但し,\verb+\everypar+ を利用している場合にはこの仕組みは正しく動かない.
 そのような例としては箇条書き中の \verb+\item+ で始まる段落があり,\Pkg{ltjsclasses}では
 人工的に「\texttt{'parbdd'}の意味を持つ」whatsitノードを作ることによって対処している%
-\footnote{\texttt{no\_runtime/ltjsclasses.dtx} を参照されたい.
-JFM側で一部の対処ができることにより,\Pkg{jsclasses}のようにif文の判定はしていない.}
+\footnote{\texttt{ltjsclasses.dtx} を参照されたい.
+JFM側で一部の対処ができることにより,\Pkg{jsclasses}のようにif文の判定はしていない.}
 %</ja>
 
 
@@ -3650,24 +3650,31 @@ JFM(もしくはサイズ)が異なる2つの\textbf{JAchar}の間にグル
 入れるかを指定する.
 許される値は以下の通り:
 %</ja>
-\begin{description}
-\item[\texttt{average}]
-\item[\texttt{both}]
-\item[\texttt{large}]
-\item[\texttt{small}]
-\item[\texttt{pleft}]
-\item[\texttt{pright}]
-\item[\texttt{paverage}]
-\end{description}
+\begin{quote}
+\texttt{average}, 
+\texttt{both}, 
+\texttt{large}, 
+\texttt{small}, 
+\texttt{pleft}, 
+\texttt{pright}, 
+\texttt{paverage}
+\end{quote}
+%<*en>
+The default value is \texttt{paverage}. \dots
+%</en>
+%<*ja>
+デフォルト値は \texttt{paverage} である.
+各々の値による差異の詳細は\ref{ssec-cluster-wa}節の「『右空白』の算出」を参照してほしい.
+%</ja>
 
 \item[\Param{jacharrange}\,=<ranges>]
 \item[\Param{kansujichar}\,=\{<digit>, <chr\_code>\}$^\ast$] [\verb+\kansujichar+]
 \end{list}
 
 
-%<en>\section{Other Control Sequences which are available in both plain \TeX\ and \LaTeXe}
+%<en>\section{Other Control Sequences for plain \TeX\ and \LaTeXe}
 %<ja>\section{plainでも\LaTeX でも利用可能なその他の命令}
-%<en>\subsection{Control Sequences for Compatibility}
+%<en>\subsection{Control Sequences for Compatibility with \pTeX}
 %<ja>\subsection{\pTeX 互換用命令}
 
 %<*en>
@@ -3702,11 +3709,11 @@ These 6 control sequence takes an internal integer, and returns a \emph{string}.
 %<*en>
 \verb+\inhibitglue+ suppresses the insertion of \textbf{JAglue}.
 The following is an example, using a special JFM that there will be a glue between
-the beginning of a box and `あ', and also between `あ' and `ウ'.
+the beginning of a box and ``あ'', and also between ``あ''~and~``ウ''.
 %</en>
 %<*ja>
 \verb+\inhibitglue+ は\textbf{JAglue}の挿入を抑制する.
-以下は,ボックスの始めと`あ'の間,`あ'と`ウ'の間にグルーが入る特別なJFMを用いた例で
+以下は,ボックスの始めと「あ」の間,「あ」「ウ」の間にグルーが入る特別なJFMを用いた例で
 ある.
 %</ja>
 
@@ -4071,15 +4078,15 @@ Avant Garde (OT1/pag/m/n) に変わっていることがわかる.
 As described in Subsection~\ref{ssec-fontspec}, this optional package
 provides the counterparts for several commands defined in the
 \Pkg{fontspec} package.
-In addition to `font features' in the original \Pkg{fontspec},
-the following `font features' specifications are allowed for
+In addition to OpenType font features in the original \Pkg{fontspec},
+the following ``font features'' specifications are allowed for
 the commands of Japanese version:
 %</en>
 %<*ja>
 \ref{ssec-fontspec}節で述べたように,この追加パッケージは\Pkg{fontspec}
 パッケージで定義されているコマンドに対応する和文フォント用のコマンドを提供する.
-オリジナルの\Pkg{fontspec}での`font feature'に加えて,和文版のコマンドには
-以下の`font feature'を指定することができる:
+\Pkg{fontspec}パッケージで指定可能な各種font featureに加えて,和文版のコマンドには
+以下の``font feature''を指定することができる:
 %</ja>
 
 
@@ -4106,7 +4113,7 @@ See Subsections~\ref{ssec-jfont} and \ref{ssec-psft} for details.
 
 \item[NoEmbed]
 %<*en>
-By specifying this font feature, one can use `name-only' Japanese font which
+By specifying this font feature, one can use ``name-only'' Japanese font which
 will not be embedded in the output PDF file. See Subsection~\ref{ssec-psft}.
 %</en>
 %<*ja>
@@ -4191,11 +4198,17 @@ The package \Pkg{luatexja-otf} extends the syntax of JFM; the entries of \texttt
 chars} table in JFM now allows a string in the form
 \verb+'AJ1-xxx'+, which stands for the character
 whose CID number in Adobe-Japan1 is \verb+xxx+.
+
+This extened notation is used in the standard JFM \texttt{jfm-ujis.lua}
+to typeset halfwidth Hiragana glyphs (CID~516--598) in halfwidth.
 %</en>
 %<*ja>
-\Pkg{luatexja-otf}ã\83\91ã\83\83ã\82±ã\83¼ã\82¸ã\81¯JFMã\81®è¨\98æ³\95ã\82\92æ\8b¡å¼µã\81\99ã\82\8bï¼\8e
+\Pkg{luatexja-otf}ã\83\91ã\83\83ã\82±ã\83¼ã\82¸ã\82\92読ã\81¿è¾¼ã\82\80ã\81¨ï¼\8c
 JFMの\texttt{chars}テーブルのエントリとして \verb+'AJ1-xxx'+ の形の文字列が
 使えるようになる.これはAdobe-Japan1におけるCID番号が \verb+xxx+ の文字を表す.
+
+この拡張記法は,標準JFM~\texttt{jfm-ujis.lua}で,半角ひらがなのグリフ(CID~516--598)を
+正しく半角幅で組むために利用されている.
 %</ja>
 
 %<*ja>
@@ -4219,8 +4232,8 @@ IVSに対応してはいないようである.これらのパッケージで
 \medskip
 
 \emph{IVS対応は試験的なものである.
\9c\89å\8a¹ã\81«ã\81\99ã\82\8bã\81«ã\81¯ï¼\8c\Pkg{luatexja-otf}ã\83\91ã\83\83ã\82±ã\83¼ã\82¸ã\82\92読ã\81¿è¾¼ã\82\93ã\81 ä¸\8aã\81§ä»¥ä¸\8bã\81®å\91½ä»¤ã\82\92å®\9fè¡\8cã\81\97ã\81ªã\81\91ã\82\8cã\81°ã\81ªã\82\89
-ない\footnote{この命令を2回以上実行することは想定していないので注意.}:}
\9c\89å\8a¹ã\81«ã\81\99ã\82\8bã\81«ã\81¯ï¼\8c\Pkg{luatexja-otf}ã\83\91ã\83\83ã\82±ã\83¼ã\82¸ã\82\92読ã\81¿è¾¼ã\82\93ã\81 ä¸\8aã\81§ä»¥ä¸\8bã\81®å\91½ä»¤ã\82\92å®\9fè¡\8cã\81\99ã\82\8b%
+\footnote{この命令を2回以上実行しても意味がない.}:}
 \begin{verbatim}
 \directlua{luatexja.otf.enable_ivs()}
 \end{verbatim}
@@ -4356,29 +4369,30 @@ Here the following is the list of dimensions and attributes which are used in \L
 \dim{jQ}
 %<*en>
 \verb+\jQ+ is equal to
-                       $1\,\textrm{Q}=0.25\,\textrm{mm}$, where `Q'~(also called `級') is
-                       a unit used in Japanese phototypesetting. So one should not change the value of this dimension.
+                       $1\,\textrm{Q}=0.25\,\textrm{mm}$, where ``Q''~(also called ``級'') is
+                       a unit used in Japanese phototypesetting. 
+So one should not change the value of this dimension.
 %</en>
 %<*ja>
-\verb+\jQ+ は$1\,\textrm{Q}=0.25\,\textrm{mm}$
-と等しい.ここで,`Q'(もしくは「級」)は日本の写植で用いられる単位である.したがって,
+\verb+\jQ+ は写植で用いられた$1\,\textrm{Q}=0.25\,\textrm{mm}$%
+(「級」とも書かれる)に等しい.したがって,
 この寸法レジスタの値を変更してはならない.
 %</ja>
 
 \dim{jH}
 %<*en>
-There is also a unit called `' which equals to $0.25\,\textrm{mm}$ and
-                       used in Japanese phototypesetting. This
-                       \verb+\jH+ is a synonym of \verb+\jQ+.
+There is also a unit called ``歯'' which equals to $0.25\,\textrm{mm}$ and
+                         used in Japanese phototypesetting. 
+This \verb+\jH+ is the same \verb+\dimen+ register as \verb+\jQ+.
 %</en>
 %<*ja>
 同じく写植で用いられていた単位として「歯」があり,これも$0.25\,\textrm{mm}$と
-等しい.\verb+\jH+ は \verb+\jQ+ の別名である
+等しい.この \verb+\jH+ は \verb+\jQ+ と同じ寸法レジスタを指す
 %</ja>
 
 \dim{ltj@zw}
 %<*en>
-A temporal register for the `full-width' of current Japanese font.
+A temporal register for the ``full-width'' of current Japanese font.
 %</en>
 %<*ja>
 現在の和文フォントの「全角幅」を保持する一時レジスタ.
@@ -4386,7 +4400,7 @@ A temporal register for the `full-width' of current Japanese font.
 
 \dim{ltj@zh}
 %<*en>
-A temporal register for the `full-height' (usually the sum of height of imaginary body and its depth) of current Japanese font.
+A temporal register for the ``full-height'' (usually the sum of height of imaginary body and its depth) of current Japanese font.
 %</en>
 %<*ja>
 現在の和文フォントの「全角高さ」(通常,高さと深さの和)を保持する一時レジスタ.
@@ -4450,7 +4464,7 @@ Whether the auto insertion of \Param{\hyperlink{fld:xks}{xkanjiskip}} is allowed
 
 \attr{ltj@icflag}
 %<*en>
-An attribute for distinguishing `kinds' of a node. One of the following value is
+An attribute for distinguishing ``kinds'' of a node. One of the following value is
 assigned to this attribute:
 %</en>
 %<*ja>
@@ -4551,14 +4565,17 @@ $i$は7より小さい自然数.
 \end{list}
 
 %<*en>
-Furthermore, \LuaTeX-ja uses several `user-defined' whatsit nodes for
+Furthermore, \LuaTeX-ja uses several user-defined whatsit nodes for
 inrernal processing. All those nodes store a natural number (hence the node's
 \texttt{type} is 100). 
+Their \texttt{user\_id} (used for distinguish user-defined whatsits) 
+are allocated by \texttt{luatexbase.newuserwhatsitid}.
 %</en>
 %<*ja>
-さらに,\LuaTeX-jaはいくつかの「ユーザ定義の」whatsitノードを内部処理に用いる.
-これらの全てのノードは自然数を格納している(したがってノードの\texttt{type}は
-100である).
+さらに,\LuaTeX-jaはいくつかのuser-defined whatsit nodeを内部処理に用いる.
+これらのwhatsitノードの \texttt{type} は100であり,ノードは自然数を格納している.
+user-defined whatsitを識別するための \texttt{user\_id} は\ 
+\texttt{luatexbase.newuserwhatsitid} により確保されている.
 %</ja>
 \begin{description}
 \item[\texttt{inhibitglue}]
@@ -4567,36 +4584,36 @@ Nodes for indicating that \verb+\inhibitglue+ is
           specified. The \texttt{value} field of these nodes doesn't matter.
 %</en>
 %<*ja>
-\verb+\inhibitglue+ が指定されたことを示すノード.これらのノードの
-\texttt{value}フィールドは意味を持たない.
+\verb+\inhibitglue+ が指定されたことを示すノード.これらのノードの
+\texttt{value} フィールドは意味を持たない.
 %</ja>
 
 \item[\texttt{stack\_marker}]
 %<*en>
 Nodes for \LuaTeX-ja's stack system (see the next
           subsection). The \texttt{value} field of these nodes is
-          current group.
+          current group level.
 %</en>
 %<*ja>
 \LuaTeX-jaのスタックシステム(次の節を参照)のためのノード.
-これらのノードの\texttt{value}フィールドは現在のグループを表す.
+これらのノードの \texttt{value} フィールドは現在のグループネストレベルを表す.
 %</ja>
 
 \item[\texttt{char\_by\_cid}]
 %<*en>
 Nodes for Japanese Characters which the callback process of
           \Pkg{luaotfload} won't be applied, and the character code is
-          stored in the \texttt{value} field. Each node having this
-          \verb+user_id+ is converted to a `glyph\_node' \emph{after}
+          stored in the \texttt{value} field. Each node of this type are 
+           converted to a \textit{glyph\_node} \emph{after}
           the callback process of luaotfload.
-          This \verb+user_id+ is only used by the \Pkg{luatexja-otf} package.
+Nodes of this type is used in \verb+\CID+, \verb+\UTF+ and IVS support.
 %</en>
 %<*ja>
 \Pkg{luaotfload}のコールバックによる処理が適用されない和文文字のためのノードで,
-\texttt{value}フィールドにその文字のコードが格納されている.
-この \verb+user_id+ を持つノードはそれぞれが\Pkg{luaotfload}のコールバックの処理の
-\emph{後で}`glyph\_node'に変換される.この \verb+user_id+ は %
-\Pkg{luatexja-otf} パッケージでのみ使用される.
+\texttt{value} フィールドに文字コードが格納されている.
+この種類のノードはそれぞれが\Pkg{luaotfload}のコールバックの処理の
+\emph{後で}\textit{glyph\_node}に変換される.
+\verb+\CID+, \verb+\UTF+やIVS対応処理でこの種類のノードが利用されている.
 %</ja>
 
 \item[\texttt{begin\_par}]
@@ -4646,7 +4663,7 @@ source:
 As described in Subsection~\ref{ssec-param}, the only effective value of
 \Param{\hyperlink{fld:kanjiskip}{kanjiskip}} in an hbox is the latest value, so the value of
 \Param{\hyperlink{fld:kanjiskip}{kanjiskip}} which applied in the entire hbox should be 5\,pt.
-However, by the implementation method of \LuaTeX, this `5\,pt' cannot be
+However, by the implementation method of \LuaTeX, this ``5\,pt'' cannot be
 known from any callbacks.  In the \texttt{tex/packaging.w} (which is a
 file in the source of \LuaTeX), there are the following codes:
 %</en>
@@ -4654,7 +4671,7 @@ file in the source of \LuaTeX), there are the following codes:
 \ref{ssec-param}節で述べたように,ある水平ボックスの中で効力を持つ
 \Param{\hyperlink{fld:kanjiskip}{kanjiskip}}の値は最後に現れた値のみであり,したがってボックス全体に適用される
 \Param{\hyperlink{fld:kanjiskip}{kanjiskip}}は5\,ptであるべきである.しかし,\LuaTeX の実装のために,
-この`5\,pt'はどのコールバックからも知ることはできない.
+この5\,ptという長さはどのコールバックからも知ることはできない.
 \texttt{tex/packaging.w}(これは\LuaTeX のソースファイルである)の中に,
 以下のコードがある:
 %</ja>
@@ -4678,14 +4695,14 @@ void package(int c)
 %<*en>
 Notice that \verb+unsave+ is executed \emph{before}
 \verb+filtered_hpack+ (this is where \verb+hpack_filter+ callback is
-executed): so `5\,pt' in the above source is orphaned at
+executed): so ``5\,pt'' in the above source is orphaned at
 \verb+unsave+, and hence it can't be accessed from \verb+hpack_filter+
 callback.
 %</en>
 %<*ja>
 \verb+unsave+ が \verb+filtered_hpack+(これは \verb+hpack_filter+ コールバックが
 実行されるところである)の\emph{前に}実行されていることに注意する.
-したがって,上記ソース中で`5\,pt'は \verb+unsave+ のところで捨てられ,
+したがって,上記ソース中で5\,ptは \verb+unsave+ のところで捨てられ,
 \verb+hpack_filter+ からはアクセスすることができない.
 %</ja>
 
@@ -4721,10 +4738,10 @@ previous level is copied.
 %</ja>
 
 %<*en>
-To resolve the problem mentioned in `Background' above, \LuaTeX-ja uses
+To resolve the problem mentioned in above paragraph ``Background'', \LuaTeX-ja uses
 another thing: When a new stack level is about to be created, a whatsit
 node whose type, subtype and value are 44~(\textit{user\_defined}),
-30112, and current group level respectively is appended to the current
+\textit{stack\_marker} and current group level respectively is appended to the current
 list (we refer this node by \textit{stack\_flag}). This enables us to
 know whether assignment is done just inside a hbox. Suppose that the
 stack level is~$s$ and the \TeX's group level is~$t$ just after the hbox
@@ -4733,7 +4750,7 @@ group, then:
 %<*ja>
 上の「背景」で述べた問題を解決するために,\LuaTeX-jaではもう一つの手法を導入する:
 新しいスタックレベルが生成されようとするとき,type, subtype, valueがそれぞれ
-44~(\textit{user\_defined}), 30112,そして現在のグループレベルであるwhatsitノード
+44~(\textit{user\_defined}), \textit{stack\_marker},そして現在のグループレベルであるwhatsitノード
 を現在のリストに付け加える(このノードを\textit{stack\_flag}とする).
 これにより,ある水平ボックスの中で代入がなされたかどうかを知ることが可能
 となる.スタックレベルを$s$,その水平ボックスグループの直後の\TeX のグループレベルを
@@ -4769,7 +4786,7 @@ $t$とすると:
 %<*en>
 \item If there are \textit{stack\_flag} nodes but all of their values
       are more than~$t+1$, then an assignment was occurred in the box,
-      but it is done is `more internal' group. Hence values of
+      but it is done in more internal group. Hence values of
       parameters at the end of the hbox are stored in the stack
       level~$s$.
 %</en>
@@ -4821,7 +4838,7 @@ The first three states---$N$, $S$~and~$M$---are as same as \TeX's input
 processor.  State~$K$ is similar to state~$M$, and is entered after
 Japanese characters.  The diagram of state transitions are indicated in
 Figure~\ref{fig-ptexipro}.  Note that \pTeX\ doesn't leave state~$K$
-after `beginning/ending of a group' characters.
+after ``beginning/ending of a group'' characters.
 %</en>
 
 %<*ja>
@@ -4911,7 +4928,7 @@ emits a space, or~\verb+\par+.
 \begin{itemize}
 \item We omitted about category codes
 9~(\textit{ignored}), 14~(\textit{comment})~and~15~(\textit{invalid})
-from the above diagram. We also ignored the input like `\verb+^+\verb+^A+' or `\verb+^+\verb+^df+'.
+from the above diagram. We also ignored the input like ``\verb+^+\verb+^A+'' or ``\verb+^+\verb+^df+''.
 \item When a character whose category code is 0 (\textit{escape character}) is seen by \TeX,
 the input processor scans a control sequence (\textsf{scan a c.s.}).
 These paths are not shown in the above diagram.
@@ -4934,22 +4951,22 @@ and they can't be customized by any callbacks. Hence, we can only use
 suppress a space by a line break which is after Japanese characters.
 
 However, \verb+token_filter+ callback cannot be used either, since a
-character in category code 5~(end-of-line) is converted into an space
+character in category code 5~(\textit{end-of-line}) is converted into an space
 token \emph{in the input processor}.  So we can use only the
 \verb+process_input_buffer+ callback.  This means that suppressing a
 space must be done \emph{just before} an input line is read.
 
 Considering these situations, handling of an end-of-line in \LuaTeX-ja are as follows:
 \begin{quote}
-A character \texttt{U+FFFFF} (its category code is set to 14~(comment) by
+A character \texttt{U+FFFFF} (its category code is set to 14~(\textit{comment}) by
 \LuaTeX-ja) is appended to an input line, \emph{before \LuaTeX\ actually
 process it}, if and only if the following three conditions are satisfied:
 \begin{enumerate}
 \item The category code of \verb+\endlinechar+%
 \footnote{Usually, it is $\langle${return}$\rangle$
-      (whose character code is 13).} is 5~(end-of-line).
-\item The category code of \texttt{U+FFFFF} itself is 14~(comment).
-\item The input line matches the following `regular expression':
+      (whose character code is 13).} is 5~(\textit{end-of-line}).
+\item The category code of \texttt{U+FFFFF} itself is 14~(\textit{comment}).
+\item The input line matches the following ``regular expression'':
 \[
   (\text{any char})^*(\textbf{JAchar})
   \bigl(\{\text{catcode}=1\}\cup\{\text{catcode}=2\}\bigr)^*
@@ -4966,11 +4983,12 @@ y\ltjsetparameter{jacharrange={+6}}zあ
 u
 \end{LTXexample}
 \begin{itemize}
-\item There is no space between `x' and `y', since the line~2 ends with a \textbf{JAchar} `あ'
-(this `あ' considered as an \textbf{JAchar} at the ending of line~1).
-\item There is no space between `あ' (in the line~3) and `u', since the
+\item There is no space between ``x''~and~``y'', 
+      since the line~2 ends with a \textbf{JAchar}~``あ''
+(this ``あ'' considered as an \textbf{JAchar} at the ending of line~1).
+\item There is no space between ``あ'' (in the line~3) and ``u'', since the
       line~3 ends with an \textbf{ALchar}
-(the letter `' considered as an \textbf{ALchar} at the ending of line~2).
+(the letter ``あ'' considered as an \textbf{ALchar} at the ending of line~2).
 \end{itemize}
 %</en>
 
@@ -5021,7 +5039,7 @@ u
 \begin{itemize}
 \item 2行目は「あ」という和文文字で終わる(2行目を処理する前の時点では,
       「あ」は和文文字扱いである)ため,直後の改行文字は無視される.
-\item 3行目は「あ」という欧文文字で終わる(2行目を処理する前の時点では,
+\item 3行目は「あ」という欧文文字で終わる(3行目を処理する前の時点では,
       「あ」は欧文文字扱いである)ため,直後の改行文字は空白に置き換わる.
 \end{itemize}
 このため,トラブルを避けるために,和文文字の範囲を\verb+\ltjsetparameter+で編集した場合,
@@ -5057,7 +5075,7 @@ u
 には関係しないものがある.
 
 
-%<en>\subsection{definition of a `cluster'}
+%<en>\subsection{definition of a cluster}
 %<ja>\subsection{「クラスタ」の定義}
 
 \def\OA{$\text{\sf O}_{\text{\sf A}}$}
@@ -5183,7 +5201,7 @@ $\mathit{Np}.\mathit{id}$の意味を述べるとともに,
 $\mathit{Np}.\mathit{head}$, $\mathit{Np}.\mathit{tail}$は,その和文文字を表している
 \textit{glyph\_node}そのものである.
 \item[\textit{id\_glyph}] 和文文字を表していない\textit{glyph\_node}~$p$.\\
-多くの場合,$p$は欧文文字を格納しているが,`ffi'などの合字によって作られた
+多くの場合,$p$は欧文文字を格納しているが,「ffi」などの合字によって作られた
 \textit{glyph\_node}である可能性もある.
 前者の場合,$\mathit{Np}.\mathit{head}$,~$\mathit{Np}.\mathit{tail} = p$である.
 一方,後者の場合,
@@ -5205,9 +5223,11 @@ $\mathit{Np}.\mathit{head}$, $\mathit{Np}.\mathit{tail}$は,その和文文字
 \hbox{\hbox{abc}...\hbox{\lower1pt\hbox{xyz}}}
 \end{verbatim}
 のように,$p$の内容が別の水平ボックスで開始・終了している可能性も十分あり得る.そのような場合,
-$\mathit{Np}.\mathit{head}$, $\mathit{Np}.\mathit{tail}$の算出は,\emph{垂直方向にシフトされていない}水平ボックスの
+$\mathit{Np}.\mathit{head}$, $\mathit{Np}.\mathit{tail}$の算出は,
+\emph{垂直方向にシフトされていない}水平ボックスの
 場合だけ内部を再帰的に探索する.例えば上の例では,$\mathit{Np}.\mathit{head}$は文字「a」を表すノードであり,
-一方$\mathit{Np}.\mathit{tail}$は垂直方向にシフトされた水平ボックス,\verb+\lower1pt\hbox{xyz}+に対応するノードである.
+一方$\mathit{Np}.\mathit{tail}$は垂直方向にシフトされた水平ボックス,
+\verb+\lower1pt\hbox{xyz}+ に対応するノードである.
 \item また,先頭にアクセント付きの文字がきたり,末尾にイタリック補正用のカーンが
 来ることもあり得る.この場合は,クラスタの定義のところにもあったように,それらは無視して算出を行う.
 \item 最初・最後のノードが合字によって作られた\textit{glyph\_node}のときは,それぞれに対して\textit{id\_glyph}%
@@ -5259,21 +5279,21 @@ JFMグルーの挿入が行われない(\Param{\hyperlink{fld:xks}{xkanjiskip}
 まず,段落/水平ボックスの一番最初にあるクラスタ\textit{Np}を探索する.
 水平ボックスの場合は何の問題もないが,段落の場合では以下のノード達を事前に読み飛ばしておく:
 \begin{center}
-\verb+\parindent+由来の水平ボックス ($\mathit{subtype}=3$),及び\textit{subtype}が44~(\textit{user\_defined})でない
-ようなwhatsit.
+\verb+\parindent+ 由来の水平ボックス ($\mathit{subtype}=3$),
+及び\textit{subtype}が44~(\textit{user\_defined})でないようなwhatsit.
 \end{center}
 これは,\verb+\parindent+由来の水平ボックスがクラスタを構成しないようにするためである.
 
 次に,\textit{Np}の直前に空白$g$を必要なら挿入する:
 \begin{enumerate}
 \item この処理が働くような\textit{Np}は\textsf{和文A}である.
-\item 問題のリストが字下げありの段落(\verb+\parindent+由来の水平ボックスあり)の場合は,
+\item 問題のリストが字下げありの段落(\verb+\parindent+ 由来の水平ボックスあり)の場合は,
 この空白$g$は「文字コード\texttt{'parbdd'}の文字」と\textit{Np}の間に入るグルー/カーンである.
-\item そうでないとき(\verb+noindent+で開始された段落や水平ボックス)は,
+\item そうでないとき(\verb+noindent+ で開始された段落や水平ボックス)は,
 $g$は「文字コード\texttt{'boxbdd'}の文字」と\textit{Np}の間に入るグルー/カーンである.
 \end{enumerate}
 ただし,もし$g$がglueであった場合,この挿入によって\textit{Np}による行分割が新たに可能になるべきではない.
-そこで,以下の場合には,$g$の直前に\verb+\penalty10000+を挿入する:
+そこで,以下の場合には,$g$の直前に \verb+\penalty10000+ を挿入する:
 \begin{itemize}
 \item 問題にしているリストが段落であり,かつ
 \item \textit{Np}の前には予めペナルティがなく,$g$はglue.
@@ -5284,9 +5304,9 @@ $g$は「文字コード\texttt{'boxbdd'}の文字」と\textit{Np}の間に入
 後者の場合は容易い:最後のクラスタを\textit{Nq}とおくと,\textit{Nq}と「文字コード\texttt{'boxbdd'}の文字」の間に入るグルー/カーンを,
 \textit{Nq}の直後に挿入するのみである.
 
-一方.前者(段落)の場合は,リストの末尾は常に\verb+\penalty10000+と,
-\verb+\parfillskip+由来のグルーが存在する.よって,最後のクラスタ\textit{Np}は
-この\verb+\parfillskip+由来のグルーとなり,実質的な中身の最後はその1つ前のクラスタ\textit{Nq}となる.
+一方.前者(段落)の場合は,リストの末尾は常に \verb+\penalty10000+ と,
+\verb+\parfillskip+ 由来のグルーが存在する.よって,最後のクラスタ\textit{Np}は
+この \verb+\parfillskip+ 由来のグルーとなり,実質的な中身の最後はその1つ前のクラスタ\textit{Nq}となる.
 \begin{enumerate}
 \item まず\textit{Nq}の直後に(後に述べる)\textsf{line-end~[E]}によって定まる空白を挿入する.
 \item 次に,段落の最後の「通常の和文文字${}+{}$句点」が独立した行となるのを防ぐために,
@@ -5298,21 +5318,24 @@ $g$は「文字コード\texttt{'boxbdd'}の文字」と\textit{Np}の間に入
 \end{enumerate}
 
 \subsection{概観と典型例:2つの「和文A」の場合}
+\label{ssec-cluster-wa}
 先に述べたように,2つの隣り合ったクラスタ,\textit{Nq}と\textit{Np}の間には,
 ペナルティ,\verb+\vadjust+,whatsitなど,行組版には関係しないものがある.模式的に表すと,
 \[
  \Node{cluster}{\textit{Nq}}\longrightarrow
 \overbrace{
-\Node{penalty}{$p$}\longrightarrow \cdots\longrightarrow \Node{whatsit}{}}^{(a)}
+\Node{penalty}{$p$}\longrightarrow \cdots\longrightarrow \Node{whatsit}{}}^{\textrm{(a)}}
 \longrightarrow \Node{cluster}{\textit{Np}}
 \]
 のようになっている.間の(a)に相当する部分には,何のノードもない場合ももちろんあり得る.
 そうして,JFMグルー挿入後には,この2クラスタ間は次のようになる:
 \[
- \Node{cluster}{\textit{Nq}}\longrightarrow\Node{kern}{左空白}\longrightarrow
+ \Node{cluster}{\textit{Nq}}\longrightarrow%\Node{kern}{左空白}\longrightarrow
 \overbrace{
-\Node{penalty}{$p+x$}\longrightarrow \cdots\longrightarrow \Node{whatsit}{}}^{(a)}
-\longrightarrow \Node{glue or kern}{右空白}\longrightarrow \Node{cluster}{\textit{Np}}
+\Node{penalty}{$p+x$}\longrightarrow \cdots\longrightarrow 
+\Node{whatsit}{}}^{\textrm{(a)}}\longrightarrow 
+\Node{glue or kern}{\raisebox{-.2\zw}{右空白}}\longrightarrow
+\Node{cluster}{\textit{Np}}
 \]
 
 以後,\emph{典型的な例として,クラスタ\textit{Nq}と\textit{Np}が共に\textsf{\textmd{和文A}}である場合を見ていこう,}
@@ -5328,7 +5351,7 @@ $g$は「文字コード\texttt{'boxbdd'}の文字」と\textit{Np}の間に入
       代わりに\Param{\hyperlink{fld:kanjiskip}{kanjiskip}}が挿入されることとなる.次へ.
 \item \textit{Nq}と\textit{Np}が同じJFM・同じ\texttt{jfmvar}キー・同じサイズの和文フォントであったならば,
       共通に使っているJFM内で挿入される空白(グルーかカーン)が決まっているか調べ,決まっていればそれを採用.
-\item 1.でも2.でもない場合は,\textit{Nq}と\textit{Np}が違うJFM/\texttt{jfmvar}/サイズである.
+\item 1.でも2.でもない場合は,JFM・\texttt{jfmvar}・サイズの3つ組は\textit{Nq}と\textit{Np}で異なる.
 この場合,まず
 \[
 \vcenter{\halign{\hfil$#:={}$&\inhibitglue#\inhibitglue\cr
@@ -5361,7 +5384,7 @@ y&\text{if\ }\Param{\hyperlink{fld:diffjfm}{diffrentjfm}}=\texttt{pright};\\
 \end{cases}.
 \]
 \item 
-\Param{differentmet}がそれ以外の値の時は,<ratio>の値は無視され,JFM由来のグルー/カーンは以下の値となる:
+\Param{differentjfm}がそれ以外の値の時は,<ratio>の値は無視され,JFM由来のグルー/カーンは以下の値となる:
 \[
  f(\textit{gb},\textit{ga})
 \]
@@ -5390,8 +5413,8 @@ x+y&\text{if\ }\Param{\hyperlink{fld:diffjfm}{diffrentjfm}}=\texttt{both};
 \longrightarrow \overbrace{\Node{glyph}{{\tt\char`\\baz}, `う'}}^{r}
 \]
 という3ノードを考える(それぞれ単独でクラスタをなす).
-この場合,$p$と$q$の間は,実フォントが異なるにもかかわらず(2)の状況となる一方で,
-$q$と$r$の間は(実フォントが同じなのに)\texttt{jfmvar}キーの内容が異なるので(3)の状況となる.
+この場合,$p$と$q$の間は,実フォントが異なるにもかかわらず2.の状況となる一方で,
+$q$と$r$の間は(実フォントが同じなのに)\texttt{jfmvar}キーの内容が異なるので3.の状況となる.
 \item[\Param{kanjiskip}~{[K]}] 上の[M]において空白が定まらなかった場合,
 以下で定めた量「右空白」として採用する.
 この段階においては,\verb+\inhibitglue+は効力を持たないため,
@@ -5406,8 +5429,10 @@ $q$と$r$の間は(実フォントが同じなのに)\texttt{jfmvar}キー
 JFM由来の値だけを用いる.もし両者で使われているJFMが異なった場合は,上の[M]~3.と同様の方法を用いて調整する.
 \end{enumerate}
 \end{description}
-\paragraph{「左空白」の算出とそれに伴う補正}
-「左空白」は過去のバージョンでは定義していたが,このバージョンでは挿入は一切行われない(機能自体削除している).しかし,仕様は流動的であり,将来復活する可能性もあるため,マニュアル中の記述は今のところ極力変更しない.
+%\paragraph{「左空白」の算出とそれに伴う補正}
+%「左空白」は過去のバージョンでは定義していたが,このバージョンでは
+%挿入は一切行われない(機能自体削除している).
+%しかし,仕様は流動的であり,将来復活する可能性もあるため,マニュアル中の記述は今のところ極力変更しない.
 \paragraph{禁則用ペナルティの挿入}
 まず,
 \[
@@ -5433,15 +5458,16 @@ $a$は禁則処理用に\textit{Nq}と\textit{Np}の間に加えられるべき
 \item 「右空白」がカーンであるとき,
 それは「\textit{Nq}と\textit{Np}の間で改行は許されない」ことを意図している.そのため,
 この場合は$a\neq 0$であってもペナルティの挿入はしない.
-\item 「左空白」がカーンとしてきっちり定義されている時(このとき,「右空白」はカーンでない),
-この「左空白」の直後での行分割を許容しないといけないので,$a=0$であっても
-\textit{penalty\_node}を作って挿入する.
-\item 以上のどれでもないときは,$a\neq 0$ならば\textit{penalty\_node}を作って挿入する.
+\item そうでないないときは,$a\neq 0$ならば\textit{penalty\_node}を作って挿入する.
+%\item 「左空白」がカーンとしてきっちり定義されている時(このとき,「右空白」はカーンでない),
+%この「左空白」の直後での行分割を許容しないといけないので,$a=0$であっても
+%\textit{penalty\_node}を作って挿入する.
+%\item 以上のどれでもないときは,$a\neq 0$ならば\textit{penalty\_node}を作って挿入する.
 \end{itemize}
 \end{description}
 
 \def\gkf#1#2#3{\sf$\displaystyle\vphantom{\Bigg(}%
-  \frac{\hbox to 1\zw{#1}\hbox to 4.5\zw{\hss #2}}{\hbox{#3}}$}
+  \frac{\hbox to 4\zw{\hss#2\hss}}{\hbox{#3}}$}
 \begin{table}[t]
 %<en>\caption{Summary of JFM glues.}
 %<ja>\caption{JFM グルーの概要.}
@@ -5473,31 +5499,33 @@ $a$は禁則処理用に\textit{Nq}と\textit{Np}の間に加えられるべき
 \end{center}
 \begin{quote}
 %<*en>
-Here {\small\gkf{E}{M→K}{PN}} means that
+In the table above, {\small\gkf{E}{M→K}{PN}} means that
 %</en>
 %<*ja>
-ここで {\small\gkf{E}{M→K}{PN}} は次の意味である:
+上の表において,{\small\gkf{E}{M→K}{PN}}は次の意味である:
 %</ja>
 \begin{enumerate}
 %<*en>
-\item To determine the `right-space', \LuaTeX-ja first attempts by the method `\textsf{JFM-origin~[M]}'.
-If this attempt fails, \LuaTeX-ja use the method `\textsf{\Param{kanjiskip}~[K]}'.
+\item To determine the ``right-space'', \LuaTeX-ja first attempts by the method ``\textsf{JFM-origin~[M]}''.
+If this attempt fails, \LuaTeX-ja use the method ``\textsf{\Param{kanjiskip}~[K]}''.
 %</en>
 %<*ja>
 \item 「右空白」を決めるために,\LuaTeX-ja はまず「JFM由来{[M]}」の方法を試みる.
   これが失敗したら,\LuaTeX-ja は「\Param{kanjiskip}~{[K]}」の方法を試みる.
 %</ja>
 
-%<*en>
-\item The `left space' between \textit{Nq}~and~\textit{Np} is determined by the method `\textsf{line-end~[E]}'.
-%</en>
-%<*ja>
-\item \textit{Nq} と \textit{Np} の間の「左空白」は「\textsf{line-end~[E]}」の
-  方法で決定される.
-%</ja>
+% %<*en>
+% \item The ``left space'' between \textit{Nq}~and~\textit{Np} is 
+%   determined by the method ``\textsf{line-end~[E]}''.
+% %</en>
+% %<*ja>
+% \item \textit{Nq} と \textit{Np} の間の「左空白」は「\textsf{line-end~[E]}」の
+%   方法で決定される.
+% %</ja>
 
 %<*en>
-\item \LuaTeX-ja adopts the method `\textsf{P-normal~[PN]}' to adjust the penalty between two clusters for \emph{kinsoku shori}.
+\item \LuaTeX-ja adopts the method ``\textsf{P-normal~[PN]}'' to adjust the penalty 
+  between two clusters for \emph{kinsoku shori}.
 %</en>
 %<*ja>
 \item \LuaTeX-jaは2つのクラスタの間の禁則処理用のペナルティを調節するために「\textsf{P-normal~[PN]}」の方法を採用する.
@@ -5514,7 +5542,7 @@ If this attempt fails, \LuaTeX-ja use the method `\textsf{\Param{kanjiskip}~[K]}
 \begin{itemize}
 \item 「右空白」については,まず以下に述べる\textsf{Boundary-B~[\OB]}により空白を決定しようと試みる.
 それが失敗した場合は,\textsf{\Param{\hyperlink{fld:xks}{xkanjiskip}}~[X]}によって定める.
-\item 「左空白」については,既に述べた\textsf{line-end~[E]}をそのまま採用する.それに伴う「右空白」の補正も同じ.
+%\item 「左空白」については,既に述べた\textsf{line-end~[E]}をそのまま採用する.それに伴う「右空白」の補正も%同じ.
 \item 禁則用ペナルティも,以前述べた\textsf{P-normal~[PN]}と同じである.
 \end{itemize}
 \begin{description}
@@ -5523,14 +5551,15 @@ If this attempt fails, \LuaTeX-ja use the method `\textsf{\Param{kanjiskip}~[K]}
 \textsf{JFM-origin~[M]}の変種と考えて良い.
 これによって定まる空白の典型例は,和文の閉じ括弧と欧文文字の間に入る半角アキである.
 \begin{enumerate}
-\item もし両クラスタの間で\verb+\inhibitglue+が実行されていた場合(証としてwhatsitノードが自動挿入される),次へ.
+\item もし両クラスタの間で \verb+\inhibitglue+ が実行されていた場合%
+(証としてwhatsitノードが自動挿入される),「右空白」は未定義.
 \item そうでなければ,
-\textit{Nq}と「文字コードが{\tt'jcharbdd'}の文字」との間に入るグルー/カーンとして定まる.
+\textit{Nq}と「文字コードが {\tt'jcharbdd'} の文字」との間に入るグルー/カーンとして定まる.
 \end{enumerate}
 \item[\Param{\hyperlink{fld:xks}{xkanjiskip}}~{[X]}]
 この段階では,\textsf{\Param{kanjiskip}~[K]}のときと同じように,
 以下で定めた量を「右空白」として採用する.
-この段階で\verb+\inhibitglue+は効力を持たないのも同じである
+\verb+\inhibitglue+ は効力を持たない
 \begin{enumerate}
 \item 以下のいずれかの場合は,\Param{\hyperlink{fld:xks}{xkanjiskip}}の挿入は抑止される.しかし,実際には行分割を許容するために,長さ0のglueを採用する:
 \begin{itemize}
@@ -5553,7 +5582,7 @@ If this attempt fails, \LuaTeX-ja use the method `\textsf{\Param{kanjiskip}~[K]}
 \begin{itemize}
 \item 「右空白」については,まず以下に述べる\textsf{Boundary-A~[\OA]}により空白を決定しようと試みる.
 それが失敗した場合は,\textsf{\Param{\hyperlink{fld:xks}{xkanjiskip}}~[X]}によって定める.
-\item \textit{Nq}が和文でないので,「左空白」は算出されない.
+%\item \textit{Nq}が和文でないので,「左空白」は算出されない.
 \item 禁則用ペナルティは,以前述べた\textsf{P-normal~[PN]}と同じである.
 \end{itemize}
 \begin{description}
@@ -5576,7 +5605,7 @@ If this attempt fails, \LuaTeX-ja use the method `\textsf{\Param{kanjiskip}~[K]}
 \begin{itemize}
 \item 「右空白」については,既に述べた\textsf{Boundary-B~[\OB]}により空白を決定しようと試みる.
 それが失敗した場合は,「右空白」は挿入されない.
-\item 「左空白」については,既に述べた\textsf{line-end~[E]}の算出方法をそのまま採用する.それに伴う「右空白」の補正も同じ.
+%\item 「左空白」については,既に述べた\textsf{line-end~[E]}の算出方法をそのまま採用する.それに伴う「右空白」の補正も同じ.
 \item 禁則用ペナルティの処理は,後ろのクラスタ\textit{Np}の種類によって異なる.
 なお,$\mathit{Np}.\mathit{head}$は無意味であるから,
 「$\mathit{Np}.\mathit{head}$に対する\Param{\hyperlink{fld:prebp}{prebreakpenalty}}の値」は0とみなされる.言い換えれば,
@@ -5607,7 +5636,7 @@ If this attempt fails, \LuaTeX-ja use the method `\textsf{\Param{kanjiskip}~[K]}
 「右空白」の(もし未定義なら\textit{Np}の)直前に挿入する:
 \begin{itemize}
 \item 「右空白」がグルーでない(カーンか未定義)であるとき.
-\item 「左空白」がカーンとしてきっちり定義されている時.
+%\item 「左空白」がカーンとしてきっちり定義されている時.
 \end{itemize}
 
 \item[P-suppress~{[PS]}]
@@ -5620,7 +5649,7 @@ If this attempt fails, \LuaTeX-ja use the method `\textsf{\Param{kanjiskip}~[K]}
 そのため,「右空白」がglueであれば,その直前に\verb+\penalty10000+を挿入する.
 \end{description}
 
-なお,「右空白」はカーン,「左空白」は未定義の
+なお,「右空白」はカーンの%,「左空白」は未定義の
 \[
  \overbrace{\Node{glyph}{`あ'}}^{\mathit{Nq}}\longrightarrow \overbrace{\Node{glue}{1\,pt}}^{\mathit{Np}}
 \]
@@ -5646,11 +5675,12 @@ If this attempt fails, \LuaTeX-ja use the method `\textsf{\Param{kanjiskip}~[K]}
 
 \paragraph{箱・グルー・カーンと和文Aの間}
 \textit{Np}が\textsf{箱}・グルー・カーンのいずれかで,\textit{Np}が\textsf{和文A}であった場合は,
-すぐ上の(\textit{Nq}と\textit{Np}の順序が逆になっている)場合とほぼ同じであるが,「左空白」がなくなることにのみ注意.
+すぐ上の(\textit{Nq}と\textit{Np}の順序が逆になっている)場合と同じである.
+%が,「左空白」がなくなることにのみ注意.
 \begin{itemize}
 \item 「右空白」については,既に述べた\textsf{Boundary-A~[\OA]}により空白を決定しようと試みる.
 それが失敗した場合は,「右空白」は挿入されない.
-\item \textit{Nq}が和文でないので,「左空白」は算出されない.
+%\item \textit{Nq}が和文でないので,「左空白」は算出されない.
 \item 禁則用ペナルティの処理は,\textit{Nq}の種類によって異なる.
 $\mathit{Nq}.\mathit{tail}$は無意味なので,
 \[
@@ -5669,7 +5699,8 @@ $\mathit{Nq}.\mathit{tail}$は無意味なので,
 \begin{itemize}
 \item \textsf{和文B}に対しては,JFMの文字クラス指定から定まる空白
 \textsf{JFM-origin~[M]},\textsf{Boundary-A~[\OA]},\textsf{Boundary-B~[\OB]})の挿入は行われない.
-「左空白」の算出も行われない.例えば,
+%「左空白」の算出も行われない.
+例えば,
 \begin{itemize}
 \item 片方が\textsf{和文A},もう片方が\textsf{和文B}のクラスタの場合,
 \textsf{Boundary-A~[\OA]}または\textsf{Boundary-B~[\OB]}の挿入を試み,それがダメなら
index 97b663c..47973de 100644 (file)
@@ -222,7 +222,8 @@ do
    local function prepare_ivs_data(n, id)
       -- test if already loaded
       if type(id)=='number' then -- sometimes id is an integer
-         font_ivs_table[n] = font_ivs_table[id]; return 
+         font_ivs_table[n] = font_ivs_table[id]; return
+      elseif not id then return
       end
       local fname = id.filename
       local bname = file.basename(fname)
@@ -271,13 +272,13 @@ do
             local pf = p.font
             if (has_attr(p, attr_curjfnt) or 0) == pf  then
                -- only works with JAchars
-               local pt = font_ivs_table[pf]
                local q = node_next(p) -- the next node of p
                if q and q.id==id_glyph then
                   local qc = q.char
                   if (qc>=0xFE00 and qc<=0xFE0F) or (qc>=0xE0100 and qc<0xE01F0) then 
                     -- q is a variation selector
                     if qc>=0xE0100 then qc = qc - 0xE0100 end
+                     local pt = font_ivs_table[pf]
                      pt = pt and pt[p.char];  pt = pt and  pt[qc]
                      head = node_remove(head,q)
                      if pt then