OSDN Git Service

Another fix of #32527.
[luatex-ja/luatexja.git] / doc / luatexja.dtx
index d4ccad9..b2ccc9a 100644 (file)
 %%%%%%%% fonts
 \usepackage{luatexja-otf}
 \usepackage[kozuka-pr6n]{luatexja-preset}
-%<!en>\usepackage{amssymb}
+%<*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}
@@ -155,7 +159,7 @@ grammatical (and contextual) errors.} Also, several parts
 are written in Japanese only.
 %</en>
 %<*ja>
-\textbf{\large 本ドキュメントはまだまだ未完成です.}
+\emph{\large 本ドキュメントはまだまだ未完成です.}
 %</ja>
 
 \clearpage
@@ -244,7 +248,7 @@ specifications/behaviors of \pTeX\ were not adopted}.
 \LuaTeX-jaは,\pTeX に多大な影響を受けている.初期の開発目標は,\pTeX の機
 能をLuaコードにより実装することであった.しかし,開発が進むにつれ,\pTeX
 の完全な移植は不可能であり,また\pTeX における実装がいささか不可解になっ
-ているような状況も発見された.そのため,\textbf{\LuaTeX-jaは,もはや
+ているような状況も発見された.そのため,\emph{\LuaTeX-jaは,もはや
 \pTeX の完全な移植は目標とはしない.\pTeX における不自然な仕様・挙動があ
 れば,そこは積極的に改める.}
 %</ja>
@@ -259,12 +263,12 @@ The followings are major changes from \pTeX:
 \begin{itemize}
 %<*en>
 \item A Japanese font is a tuple of a `real' font, a Japanese font
-      metric (\textbf{JFM}, for short).
+      metric (\emph{JFM}, for short).
 %</en>
 %<*ja>
 \item 和文フォントは(小塚明朝,IPA明朝などの)実際のフォント,和文フォン
       トメトリック(JFMと呼ぶ\footnote{混乱を防ぐため,p\TeX の意味での
-      JFM (\texttt{min10.tfm}) などは本ドキュメントでは\textbf{和文用
+      JFM (\texttt{min10.tfm}) などは本ドキュメントでは\emph{和文用
       TFM}とよぶことにする.})の組である.
 %</ja>
 
@@ -320,7 +324,7 @@ The followings are major changes from \pTeX:
       effective anymore.} In concrete terms, the following two methods are not effective anymore:
 %</en>
 %<*ja>
-\item \textbf{注意:上の2つの変更により,従来\textbf{JAglue}の挿入処理を分断するのに
+\item \emph{注意:上の2つの変更により,従来\textbf{JAglue}の挿入処理を分断するのに
       使われていたいくつかの方法は用いることができない.具体的には,次の方法はもはや無効である:}
 %</ja>
 \begin{verbatim}
@@ -521,7 +525,7 @@ $ tlmgr install luatexja
 If you want to install manually, do the following instruvtions:
 %</en>
 %<*ja>
-\textbf{本バージョン以降の\LuaTeX-jaは\TeX~Live~2012以前では動作しない.}
+\emph{本バージョン以降の\LuaTeX-jaは\TeX~Live~2012以前では動作しない.}
 これは,\LuaTeX と\Pkg{luaotfload}が\TeX~Live~2013において更新されたことによる.
 逆に,20130318.1以前の\LuaTeX-jaは\TeX~Live~2013では動作しない.
 
@@ -668,7 +672,7 @@ by Kpathsearch.
 You can check this by \texttt{kpsewhich} command (the output may be changed): 
 %</en>
 %<*ja>
-\item \textbf{MiK\TeX 利用者への注意:}\LuaTeX-jaが動作するためには,
+\item \emph{MiK\TeX 利用者への注意:}\LuaTeX-jaが動作するためには,
 \texttt{UniJIS2004-UTF32-H}, \texttt{Adobe-Japan1-UCS2}という2つのCMapが
 Kpathsearchによって見つけられることが必要である.\TeX\ LiveやW32\TeX ユーザは
 普通にインストールすればそのようになっているはずである.
@@ -714,7 +718,7 @@ $ kpsewhich -format=cmap  Adobe-Japan1-UCS2
 \begin{center}\small
 \begin{tabular}{ccccc}
 \toprule
-\textbf{字体}&\textbf{フォント名}&\bf `10\,pt'&\bf`7\,pt'&\bf`5\,pt'\\\midrule
+\emph{字体}&\emph{フォント名}&\bf `10\,pt'&\bf`7\,pt'&\bf`5\,pt'\\\midrule
 明朝体&Ryumin-Light    &\verb+\tenmin+&\verb+\sevenmin+&\verb+\fivemin+\\
 ゴシック体&GothicBBB-Medium&\verb+\tengt+ &\verb+\sevengt+ &\verb+\fivegt+\\
 \bottomrule
@@ -836,7 +840,7 @@ and GothicBBB-Medium) in early years of DTP. There is no italic nor slanted shap
 \begin{center}\small
 \begin{tabular}{cllc}
 \toprule
-\textbf{字体}&&&\textbf{ファミリ名}\\\midrule
+\emph{字体}&&&\emph{ファミリ名}\\\midrule
 明朝体&\verb+\textmc{...}+&\verb+{\mcfamily ...}+&\verb+\mcdefault+\\
 \textgt{ゴシック体}&\verb+\textgt{...}+&\verb+{\gtfamily ...}+&\verb+\gtdefault+\\
 \bottomrule
@@ -846,7 +850,7 @@ and GothicBBB-Medium) in early years of DTP. There is no italic nor slanted shap
 \begin{center}\small
 \begin{tabular}{ccccc}
 \toprule
-\textbf{字体}&\textbf{ファミリ}&\verb+\mdseries+&\verb+\bfseries+&\textbf{スケール}\\\midrule
+\emph{字体}&\emph{ファミリ}&\verb+\mdseries+&\verb+\bfseries+&\emph{スケール}\\\midrule
 明朝体&\tt mc&Ryumin-Light    &GothicBBB-Medium&0.962216\\
 ゴシック体&\tt gt&GothicBBB-Medium&GothicBBB-Medium&0.962216\\
 \bottomrule
@@ -937,7 +941,7 @@ auto select&\verb+\fontencoding+&\verb+\fontfamily+&---&---&\verb+\usefont+\\
 \begin{center}\small
 \begin{tabular}{cccccc}
 \toprule
-&\textbf{エンコーディング}&\textbf{ファミリ}&\textbf{シリーズ}&\textbf{シェープ}&\textbf{選択}\\\midrule
+&\emph{エンコーディング}&\emph{ファミリ}&\emph{シリーズ}&\emph{シェープ}&\emph{選択}\\\midrule
 欧文
 &\verb+\romanencoding+&\verb+\romanfamily+&\verb+\romanseries+&\verb+\romanshape+
 &\verb+\useroman+\\
@@ -966,7 +970,7 @@ auto select&\verb+\fontencoding+&\verb+\fontfamily+&---&---&\verb+\usefont+\\
       \verb+\fontencoding{JY3}+ は和文フォントのエンコーディングを
       \texttt{JY3}に変更し,\verb+\fontencoding{T1}+ は欧文フォント側を
       \texttt{T1}へと変更する.\verb+\fontfamily+ も引数により和文側,欧文
-      側,\textbf{あるいは両方}のフォントファミリを変更する.詳細は
+      側,\emph{あるいは両方}のフォントファミリを変更する.詳細は
       \ref{ssub-nfsspat}節を参照すること.
 %</ja>
 
@@ -1699,7 +1703,7 @@ This range consist of the following Unicode ranges, \emph{except characters in t
 %<*ja>
 \item[範囲1${}^{\text{A}}$] ラテン文字.一部はAdobe-Japan1-6にも含まれている.
                              この範囲は以下のUnicodeのブロックから構成されている.
-                             \textbf{ただし,範囲8は除く.}
+                             \emph{ただし,範囲8は除く.}
 %</ja>
 \begin{multicols}{2}
 \begin{itemize}
@@ -1982,7 +1986,7 @@ parameters to \texttt{true}/\texttt{false}, respectively.
 To make a match between a Japanese font and an alphabetic font, sometimes
 shifting of the baseline of one of the pair is needed. In \pTeX, this is achieved
 by setting \verb+\ybaselineshift+ to a non-zero length (the
-baseline of alphabetic fonts is shifted below). However, for documents
+baseline of \textbf{ALchar} is shifted below). However, for documents
 whose main language is not Japanese, it is good to shift the baseline of
 Japanese fonts, but not that of alphabetic fonts.
 Because of this, \LuaTeX-ja can independently set the shifting amount
@@ -1992,8 +1996,8 @@ parameter).
 %</en>
 %<*ja>
 和文フォントと欧文フォントを合わせるためには,時々どちらかのベースラインの移動が
-必要になる.\pTeX ではこれは \verb+\ybaselineshift+ を非零の長さに設定することで
-なされていた(欧文フォントのベースラインが下がる).しかし,日本語が主ではない
+必要になる.\pTeX ではこれは \verb+\ybaselineshift+ を設定することで
+なされていた(\textbf{ALchar}のベースラインがその分だけ下がる).しかし,日本語が主ではない
 文書に対しては,欧文フォントではなく和文フォントのベースラインを移動した方がよい.
 このため,\LuaTeX-jaでは欧文フォントのベースラインのシフト量
 (\Param{yalbaselineshift}パラメータ)と和文フォントのベースラインのシフト量
@@ -2001,7 +2005,7 @@ parameter).
 %</ja>
 
 \begin{LTXexample}
-\vrule width 150pt height 0.4pt depth 0pt\hskip-120pt
+\vrule width 150pt height 0.4pt depth 0pt \hskip-120pt
 \ltjsetparameter{yjabaselineshift=0pt, yalbaselineshift=0pt}abcあいう
 \ltjsetparameter{yjabaselineshift=5pt, yalbaselineshift=2pt}abcあいう
 \end{LTXexample}
@@ -2032,6 +2036,54 @@ xyz漢字
 \end{LTXexample}
 
 
+%<*ja>
+\paragraph{数式における挙動:\pTeX との違い}
+\textbf{ALchar}のベースラインを補正する \Param{yalbaselineshift} パラメータは
+ほぼ\pTeX における \verb+\ybaselineshift+ に対応しているものであるが,
+数式中の挙動は異なっているので注意が必要である.
+例えば,表\ref{tab:math_bsa}のように,数式中に明示的に現れた \verb+\hbox+ は,
+\begin{itemize}
+ \item \pTeX では,ボックス全体が \verb+\ybaselineshift+ だとシフトされるので,
+ 表\ref{tab:math_bsa}中の``い''のように,ボックス中の和文文字は
+ \verb+\ybaselineshift+だけシフトされ,一方,``for all''のように,
+ ボックス内の欧文文字は2重にシフトされることになる.
+ \item 一方,\LuaTeX-jaではそのようなことはおこらず,
+ 数式中に明示的に現れた \verb+\hbox+ はシフトしない.そのため,
+ 表\ref{tab:math_bsa}中の``い''も``for all''も,それぞれ本文中に
+ 書かれたときと同じ上下位置に組まれる.
+\end{itemize}
+\begin{table}
+\small\centering
+\caption{数式関係のベースライン補正($\Param{yalbaselineshift}=10\,\textrm{pt}$)}
+\label{tab:math_bsa}
+\newdimen\origbaselineskip
+\origbaselineskip=\baselineskip
+\begin{tabular}{lp{30\zw}}
+\toprule
+\emph{入力}&\vspace*{-\origbaselineskip}
+\begin{verbatim}
+数式abc: $あa\hbox{い}$, $\int_0^x t\,dt=x^2/2$,
+$\Phi\vdash F(x)\ \hbox{for all}\ x\in A$
+\end{verbatim}\\
+\noalign{\vskip-\origbaselineskip}
+\midrule
+\emph{\pTeX}&
+{\ltjsetparameter{yalbaselineshift=10pt}%
+数式abc: $あa\lower10pt\hbox{い}$, $\int_0^x t\,dt=x^2/2$,
+$\Phi\vdash F(x,y)\ \lower10pt\hbox{for all}\ x\in A$
+\par}\\
+\midrule
+\emph{\LuaTeX-ja}&
+{\ltjsetparameter{yalbaselineshift=10pt}%
+数式abc: $あa\hbox{い}$, $\int_0^x t\,dt=x^2/2$,
+$\Phi\vdash F(x)\ \hbox{for all}\ x\in A$
+\par}\\
+\noalign{\vskip-\origbaselineskip}
+\bottomrule
+\end{tabular} 
+\end{table}
+%</ja>
+
 %<en>\part{Reference}
 %<ja>\part{リファレンス}
 \label{part-ref}
@@ -2300,7 +2352,7 @@ with \texttt{psft} prefix, because they are only simple linear transformations.
 和文フォントを指定することができる.「標準的な」和文フォント,
 つまり`Ryumin-Light'と`GothicBBB-Medium'の指定でこのプリフィックスが使われる.
 
-\textbf{\texttt{psft}プリフィックスの下では
+\emph{\texttt{psft}プリフィックスの下では
 \texttt{+jp90} などのOpenType font featureの効力はない.
 非埋込フォントをPDFに使用すると,実際にどのようなフォントが
 表示に用いられるか予測できないからである.}
@@ -2754,7 +2806,7 @@ Furthermore, the glyph is shifted according to values of fields
 \end{LTXexample}
 上の例では,
 \texttt{hwid} featureにより,「ヒ」が半角の「ヒ」に置き換わるが,
-文字クラスは「ヒ」の属する0\textbf{ではなく},「ヒ」の属する2000となる.
+文字クラスは「ヒ」の属する0\emph{ではなく},「ヒ」の属する2000となる.
 %</ja>
 
 %<ja>\paragraph{仮想的な文字}
@@ -2984,7 +3036,7 @@ You may assume that \verb+jfont_info+ has the following fields:
 \item[\tt size\_cache]
 %<*ja>
 使用されているJFMの情報が格納されているテーブルで,
-\textbf{このテーブルを書き換えてはならない}.
+\emph{このテーブルを書き換えてはならない}.
 中身はほぼJFMファイルに書かれている唯一のテーブルであるが,次のように若干変わっている:
 \begin{itemize}
 \item 各文字クラス$i$に属する文字達のテーブル
@@ -3202,7 +3254,7 @@ character other than space~`\texttt{\char32}'~(U+0020) has the category code
 12~(other), while the space has 10~(space).
 %</en>
 %<*ja>
-\textbf{{\normalfont\tt\char92ltjgetparameter}の戻り値は常に文字列である.}
+\emph{{\normalfont\tt\char92ltjgetparameter}の戻り値は常に文字列である.}
 これは\texttt{tex.write()}によって出力しているためで,スペース`\texttt{\char32}'~(U+0020)を除いた文字のカテゴリーコードは全て12~(other)となる.
 一方,スペースのカテゴリーコードは10~(space)である.
 %</ja>
@@ -3621,7 +3673,7 @@ to <family>. Which family will be changed is determined as follows:
 %</en>
 %<*ja>
 元々の\LaTeXe におけるものと同様に,このコマンドは現在のフォントファミリ(欧文,
-和文,\textbf{もしくは両方})を<family>に変更する.
+和文,\emph{もしくは両方})を<family>に変更する.
 どのファミリが変更されるかは以下のようにして決定される:
 %</ja>
 \begin{itemize}
@@ -4169,7 +4221,7 @@ Nodes for Japanese Characters which the callback process of
 \Pkg{luaotfload}のコールバックによる処理が適用されない和文文字のためのノードで,
 \texttt{value}フィールドにその文字のコードが格納されている.
 この \verb+user_id+ を持つノードはそれぞれが\Pkg{luaotfload}のコールバックの処理の
-\textbf{後で}`glyph\_node'に変換される.この \verb+user_id+ は %
+\emph{後で}`glyph\_node'に変換される.この \verb+user_id+ は %
 \Pkg{luatexja-otf} パッケージでのみ使用される.
 %</ja>
 
@@ -4251,7 +4303,7 @@ callback.
 %</en>
 %<*ja>
 \verb+unsave+ が \verb+filtered_hpack+(これは \verb+hpack_filter+ コールバックが
-実行されるところである)の\textbf{前に}実行されていることに注意する.
+実行されるところである)の\emph{前に}実行されていることに注意する.
 したがって,上記ソース中で`5\,pt'は \verb+unsave+ のところで捨てられ,
 \verb+hpack_filter+ からはアクセスすることができない.
 %</ja>
@@ -4556,7 +4608,7 @@ u
 以上を踏まえ,\LuaTeX-jaにおける「和文文字直後の改行抑制」の処理は,次のようになっている:
 
 \begin{quote}
-各入力行に対し,\textbf{その入力行が読まれる前の内部状態で}
+各入力行に対し,\emph{その入力行が読まれる前の内部状態で}
 以下の3条件が満たされている場合,\LuaTeX-jaはU+FFFFF番の文字
 \footnote{この文字はコメント文字として扱われるように\LuaTeX-ja内部で設定をしている.}
 を末尾に追加する.よって,その場合に改行は空白とは見做されないこととなる.
@@ -4635,7 +4687,7 @@ A \emph{cluster} is a list of consecutive nodes in one of the following forms,
 with the \textit{id} of it:
 %</en>
 %<*ja>
-\textbf{クラスタ}は以下の形のうちのどれかひとつをとる連続的なノードのリストである:
+\emph{クラスタ}は以下の形のうちのどれかひとつをとる連続的なノードのリストである:
 %</ja>
 \begin{enumerate}
 %<*en>
@@ -4772,7 +4824,7 @@ $\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}$の算出は,\textbf{垂直方向にシフトされていない}水平ボックスの
+$\mathit{Np}.\mathit{head}$, $\mathit{Np}.\mathit{tail}$の算出は,\emph{垂直方向にシフトされていない}水平ボックスの
 場合だけ内部を再帰的に探索する.例えば上の例では,$\mathit{Np}.\mathit{head}$は文字「a」を表すノードであり,
 一方$\mathit{Np}.\mathit{tail}$は垂直方向にシフトされた水平ボックス,\verb+\lower1pt\hbox{xyz}+に対応するノードである.
 \item また,先頭にアクセント付きの文字がきたり,末尾にイタリック補正用のカーンが
@@ -4882,7 +4934,7 @@ $g$は「文字コード\texttt{'boxbdd'}の文字」と\textit{Np}の間に入
 \longrightarrow \Node{glue or kern}{右空白}\longrightarrow \Node{cluster}{\textit{Np}}
 \]
 
-以後,\textbf{典型的な例として,クラスタ\textit{Nq}と\textit{Np}が共に\textsf{\textmd{和文A}}である場合を見ていこう,}
+以後,\emph{典型的な例として,クラスタ\textit{Nq}と\textit{Np}が共に\textsf{\textmd{和文A}}である場合を見ていこう,}
 この場合が全ての場合の基本となる.
 
 \paragraph{「右空白」の算出}
@@ -5487,7 +5539,7 @@ listing environments.
 \item 通常の\TeX の行分割方法に従って,段落を行分割する.この段階では,行
       長に半端が出た場合,その半端分は\Param{\hyperlink{fld:xks}{xkanjiskip}},
       \Param{\hyperlink{fld:kanjiskip}{kanjiskip}},JFMグルーの全てで(優先順位なく)負担される.
-\item その後,\texttt{post\_linebreak\_filter} callbackを使い,\textbf{段
+\item その後,\texttt{post\_linebreak\_filter} callbackを使い,\emph{段
       落中の各行ごとに},行末文字の位置を調整したり,優先度付きの行長調整
       を実現するためにグルーの伸縮度を調整する.
 \texttt{luatexja-adjust.sty} の作用は,このcallbackを追加するだけであり,
@@ -5498,7 +5550,7 @@ listing environments.
 グルーの伸縮度(\texttt{plus} や \texttt{minus} で指定されている値)には,
 有限値の他に,\texttt{fi},\texttt{fil},\texttt{fill},\texttt{filll}と
 いう4つの無限大レベル(後ろの方ほど大きい)があり,行の調整に
-\texttt{fi} などの\textbf{無限大レベルの伸縮度が用いられている場合は,そ
+\texttt{fi} などの\emph{無限大レベルの伸縮度が用いられている場合は,そ
 の行に対しての処理を中止}する.
 
 よって,以降,問題にしている行の行長調整は伸縮度が有限長のグルーを用いて