OSDN Git Service

version bump
[luatex-ja/luatexja.git] / doc / luatexja.dtx
index f1acdf5..7c27d29 100644 (file)
 \usepackage{luatexja-adjust}%\ltjdisableadjust
 \advance\leftmargini-1\zw\advance\leftmarginii-1\zw
 %</ja>
-
+%<en>\long\def\fakefn#1#2{\par\noindent{\footnotesize\hbox to1.8em{\hss#1}#2\par}}
+%<*ja>
+\long\def\fakefn#1#2{%
+  \par{\footnotesize\advance\leftskip 3\zw\parindent1\zw\noindent
+  \llap{#1\hskip.3\zw}#2\par}}
+%</ja>
 %%%%%%%% listings
 
 %%%%%%%% IVS
@@ -640,13 +645,13 @@ and \emph{Japanese fonts} for fonts used in \textbf{JAchar}.
 \item \Pkg{adobemapping} (Adobe cmap and pdfmapping files)
 \item \Pkg{etoolbox}, \Pkg{everysel} (if you want to use \LuaTeX-ja with \LaTeXe)
 \item \Pkg{ltxcmds}, \Pkg{pdftexcmds}, \Pkg{filehook}, \Pkg{atbegshi}
-\item \Pkg{fontspec} v2.4 (or later)
+\item \Pkg{fontspec} v2.5c (or later)
 %<en>\item \emph{IPAex fonts} (\url{http://ipafont.ipa.go.jp/})
 %<ja>\item \emph{IPAexフォント(\url{http://ipafont.ipa.go.jp/})}
 \end{itemize}
-%<en>In summary, \LuaTeX-ja version 2018****.0 (or~later) no longer supports \TeX~Live~2016.
+%<en>In summary, \LuaTeX-ja version 20180825.0 (or~later) no longer supports \TeX~Live~2016.
 %<*ja>
-要約すると,バージョン2018****.0以降の\LuaTeX-jaは\TeX~Live~2016以前では動作しない\footnote{%
+要約すると,バージョン20180825.0以降の\LuaTeX-jaは\TeX~Live~2016以前では動作しない\footnote{%
   もっとも,自分で\LuaTeX のバイナリをSubversionリポジトリからビルドしていれば話は別である.
 }.
 %</ja>
@@ -1414,16 +1419,21 @@ TrueType・OpenTypeフォントを容易に扱うためのパッケージであ
 %</ja>
 
 %<*en>
-In the \Pkg{luatexja-fontspec} package, the following seven~commands are defined as
-counterparts of original commands in the \Pkg{fontspec} package:
+In the \Pkg{luatexja-fontspec} package, several commands are defined as
+counterparts of original commands in the \Pkg{fontspec} package
+(see \autoref{tab:ltj_fntspc}):
 %</en>
 %<*ja>
-\Pkg{luatexja-fontspec}パッケージでは,以下の7つのコマンドを\Pkg{fontspec}
-パッケージの元のコマンドに対応するものとして定義している:
+\Pkg{luatexja-fontspec}パッケージでは,\autoref{tab:ltj_fntspc}の
+「和文」行に示した命令を\Pkg{fontspec}パッケージの元のコマンド(「欧文」行)
+に対応するものとして定義している:
 %</ja>
 %<*en>
-\begin{center}\small
-\begin{tabular}{ccccc}
+\begin{table}
+\caption{Commands of \Pkg{luatexja-fontspec}}\label{tab:ltj_fntspc}
+\medskip
+{\centering\small
+\begin{tabular}{cllll}
 \toprule
 Japanese fonts
 &\cs{jfontspec}&\cs{setmainjfont}&\cs{setsansjfont}&\cs{setmonojfont}$^*$\\
@@ -1431,18 +1441,33 @@ alphabetic fonts
 &\cs{fontspec}&\cs{setmainfont}&\cs{setsansfont}&\cs{setmonofont}\\
 \midrule
 Japanese fonts
-&\cs{newjfontfamily}&\cs{newjfontface}
-&\cs{defaultjfontfeatures}&\cs{addjfontfeatures}\\
+&\cs{newjfontfamily}&\cs{renewjfontfamily}$^{**}$&\cs{setjfontfamily}$^{**}$\\
+alphabetic fonts
+&\cs{newfontfamily}&\cs{renewfontfamily}$^{**}$&\cs{setfontfamily}$^{**}$\\
+\midrule
+Japanese fonts
+&\cs{newjfontface}&\cs{defaultjfontfeatures}&\cs{addjfontfeatures}\\
 alphabetic fonts
-&\cs{newfontfamily}&\cs{newfontface}
-&\cs{defaultfontfeatures}&\cs{addfontfeatures}\\
+&\cs{newfontface}&\cs{defaultfontfeatures}&\cs{addfontfeatures}\\
 \bottomrule
-\end{tabular}
-\end{center}
+\end{tabular}\par}
+\medskip
+\fakefn{$^*$}{%
+  \cs{setmonojfont} is defined if and only if \texttt{match} option is specified.}
+\fakefn{$^{**}$}{%
+  \cs{renewfontfamily}~and~\cs{setfontfamily} are new commands
+  in \Pkg{fontspec}~v2.6h (2018/7/30).
+  Hence, \Pkg{luatexja-fontspec} define \cs{renewjfontfamily}~and~\cs{setjfontfamily}
+  only when \Pkg{fontspec}~v2.6h (or later) is used.
+}
+\end{table}
 %</en>
 %<*ja>
-\begin{center}\small
-\begin{tabular}{ccccc}
+\begin{table}
+\caption{\Pkg{luatexja-fontspec}で定義される命令}\label{tab:ltj_fntspc}
+\medskip
+{\centering\small
+\begin{tabular}{cllll}
 \toprule
 和文
 &\cs{jfontspec}&\cs{setmainjfont}&\cs{setsansjfont}&\cs{setmonojfont}$^*$\\
@@ -1450,14 +1475,28 @@ alphabetic fonts
 &\cs{fontspec}&\cs{setmainfont}&\cs{setsansfont}&\cs{setmonofont}\\
 \midrule
 和文
-&\cs{newjfontfamily}&\cs{newjfontface}
-&\cs{defaultjfontfeatures}&\cs{addjfontfeatures}\\
+&\cs{newjfontfamily}&\cs{renewjfontfamily}$^{**}$&\cs{setjfontfamily}$^{**}$\\
+欧文
+&\cs{newfontfamily}&\cs{renewfontfamily}$^{**}$&\cs{setfontfamily}$^{**}$\\
+\midrule
+和文
+&\cs{newjfontface}&\cs{defaultjfontfeatures}&\cs{addjfontfeatures}\\
 欧文
-&\cs{newfontfamily}&\cs{newfontface}
-&\cs{defaultfontfeatures}&\cs{addfontfeatures}\\
+&\cs{newfontface}&\cs{defaultfontfeatures}&\cs{addfontfeatures}\\
 \bottomrule
-\end{tabular}
-\end{center}
+\end{tabular}\par}
+
+\medskip
+\fakefn{$^*$}{\cs{setmonojfont} は \texttt{match} オプションが
+指定された時のみ定義される.}
+\fakefn{$^{**}$}{%
+  \cs{renewfontfamily} と \cs{setfontfamily} は
+  \Pkg{fontspec}~v2.6h (2018/7/30)で新たに追加された命令である.
+  そのため,\Pkg{luatexja-fontspec}が \cs{renewjfontfamily} と \cs{setjfontfamily} を
+  定義するのはv2.6h以降の\Pkg{fontspec}を使用した時のみになっている.
+}
+
+\end{table}
 %</ja>
 
 %<en> The package option of \Pkg{luatexja-fontspec} are the followings:
@@ -6363,7 +6402,7 @@ for example, the meaning of \cs{TU\cs{textquotedblleft}} is \cs{ltjalchar8220\lt
 
 \begin{table}[t]
   \centering\small
-  \caption{strut}\label{tab:strutbox}
+  \caption{strut}\label{tab:strutbox}\medskip
   \begin{tabular}{llcccl}
     \toprule
     \textbf{box}&\textbf{direction}&\textbf{width}&\textbf{height}&\textbf{depth}
@@ -6780,11 +6819,11 @@ with priority&%
 \\
 \bottomrule
 \end{tabular}\par}
-\smallskip
+\medskip
 
-Note: the value of
+\fakefn{}{The value of
 \Param{kanjiskip} is 0\,pt${}^{+1/5\,\mathrm{em}}_{-1/5\,\mathrm{em}}$ in this figure,
-for making the difference obvious.
+for making the difference obvious.}
 %<ja>\caption{行長調整}\label{fig:adj}
 %<en>\caption{Line adjustment}\label{fig:adj}
 \end{figure}
@@ -6841,7 +6880,7 @@ for making the difference obvious.
   複数行に渡る文章を組版するときには行間に空きが入ることが普通である.
   \TeX では各行が一つずつの水平ボックスをなしていることを思い出すと,隣り合った
   2つの行(つまり水平ボックス)の間の空きは次のようにして決まるのだった:
-  \begin{enumerate}
+  \begin{itemize}
    \item 「通常に組んだときの行間」$d$を,\cs{baselineskip}から
        「前の行」の深さと「次の行」の高さを加えたものを引いた値とする.
    \item $d\ge\cs{lineskiplimit}$の場合,
@@ -6850,7 +6889,7 @@ for making the difference obvious.
    \item {\catcode`\<=12$d<\cs{lineskiplimit}$}の場合,
        2行の間には長さ\cs{lineskip}の空白が挿入される.
        そのため(設定値によるが,多くの場合)行送りは\cs{baselineskip}より広がる.
-  \end{enumerate}
+  \end{itemize}
 
   \begin{figure}[t]
        \noindent\centering
@@ -6876,9 +6915,9 @@ for making the difference obvious.
          \caption{高い行が連続したときの状況}\label{fig:linegap1}
   \end{figure}
 
-  以上で述べたことから,\TeX 標準では行送りの決定で「高さ・深さを取っているものが
-  行のどの水平位置にあるか」は一切考慮しない.そのため,
-  \autoref{fig:linegap1}~(a)のように「必要以上に行間が空いて見える」状況が起こる.
+  ここで,\TeX は行送りの決定で「高さ・深さを取っているものが
+  行のどの水平位置にあるか」は一切考慮しないことに注意してほしい.そのため,
+  \autoref{fig:linegap1}~(a)のように「必要以上に行間が空いて見える」状況が起こることがある
 
   \Pkg{luatexja-adjust}パッケージでは,「通常に組んだときの行間」$d$を
   各行の中身の文字・グルー・ボックスの寸法を勘案して計算するという方法を
@@ -6945,8 +6984,28 @@ for making the difference obvious.
          \caption{段階的な行送り増加}\label{fig:linegap2}
   \end{figure}
 
- \item[段階的な行送り増加]
-  ...
+ \item[段階的な行送り調整]
+  既に述べたように,
+  「通常に組んだときの行間」$d$が\cs{lineskiplimit}より小さい場合,\TeX 標準では
+  行間は\cs{lineskip}となるのだった.
+  このとき行送りは「前の行の深さ」,「次の行の高さ」,\cs{lineskip}の3つの和になるわけだが,
+  場合によっては行送りを「\cs{baselineskip}の整数倍」などと切りのいい値に揃えたいという状況が
+  考えられなくもない.
+  
+  \Pkg{luatexja-adjust}パッケージでは,{\catcode`\<=12$d<\cs{lineskiplimit}$}のときに
+  行送りを\cs{baselineskip}の\Param{linestep\_factor}倍ずつ増減させて
+  \begin{quote}
+       行間が\cs{lineskip}以上となるような,
+       最小の$(1+k\cdot \Param{linestep\_factor})\cs{baselineskip}$($k$は整数)の値
+  \end{quote}
+  とする機能を利用できるようにした.
+  \autoref{fig:linegap2}の(a)がこの機能を無効にした状況で,(b),~(c),~(d)が
+  それぞれ\Param{linestep\_factor}を0.25,~0.5,~1とした状況である.
+
+  なお,この機能は表組時(\cs{halign},~\cs{valign})には無効である.
+  \LaTeX における表組環境(tabular, arrayなど)では,\cs{baselineskip},~\cs{lineskip}はどちらも0に設定されているので
+  (代わりに各行に\cs{@arstrut}という支柱が入る)ために意味がないことと,
+  数式を内部で表組を使って組むalign環境などではかえって行間が不揃いになってしまうからである.
 \end{description}
 
 \Pkg{luatexja-adjust}パッケージは,上記で述べた4機能を有効化/無効化するための
@@ -6954,7 +7013,8 @@ for making the difference obvious.
 
 \begin{cslist}
 \item[\cs{ltjenableadjust[...]}]
-\verb+...+ に指定したkey-valueリストに従い,「行末文字の位置調整」「優先順位付きの行長調整」を有効化/無効化する.
+\verb+...+ に指定したkey-valueリストに従い,「行末文字の位置調整」「優先順位付きの行長調整」
+  「『中身までみた』行送り計算」「段階的な行送り調整」を有効化/無効化する.
 指定できるキーは以下の通り.
 \begin{description}
   \item[\texttt{lineend=[false,true,extended]}]
@@ -6965,9 +7025,9 @@ for making the difference obvious.
   \item[\texttt{profile=[false,true]}]
   「中身までみた」行送り計算を無効化(\texttt{false}),または有効化(\texttt{true}).
   \item[\texttt{linestep=[false,true]}]
-  ...
+  段階的な行送り調整を無効化(\texttt{false}),または有効化(\texttt{true}).
 \end{description}
-キーともキー名のみを指定した場合は値として\texttt{true}が指定されたものと扱われる.
+どのキーともキー名のみを指定した場合は値として\texttt{true}が指定されたものと扱われる.
 
 互換性の為,オプション無しでただ\cs{ltjenableadjust}が呼び出された場合は,
 \begin{lstlisting}
@@ -7005,14 +7065,16 @@ stretch_priority={kanjiskip=-35,xkanjiskip=-25,others=50}
 それ以外は\Param{stretch\_priority}と指定の形式は変わらない.
 
  \item[\DParam{linestep\_factor}\,=<float>]
-
+  段階的な行送り調整の際,\cs{baselineskip}の何倍単位で行送りを変えるかを指定する.
+  0を指定すると無効になるのと変わらない.また負数を指定すると,
+  その絶対値が指定されたかのように扱われる.
+  初期値は0.5(つまり半行単位)である.
 \end{cslist}
-初期値は\Param{stretch\_priority}, \Param{shrink\_priority}と
+\Param{stretch\_priority}, \Param{shrink\_priority}の初期値はどちら
 \begin{lstlisting}
 {kanjiskip=-35,xkanjiskip=-25,others=50}
 \end{lstlisting}
 であり,「優先度$-4$」と指定されているJFMグルーが最も伸び(縮み)にくいようになっている.
-また\Param{linestep\_factor}の初期値は0.5(つまり半行分)である.
 %</ja>
 
 \subsection{\Pkg{luatexja-ruby}}
@@ -7513,12 +7575,12 @@ since we use same font for both series of gothic.
           いため,
 「ゴシック体の中字」も同時に変更されることになる.
 %</ja>
-\item[90jis]
-%<en>Use 90JIS glyph variants if possible.
-%<ja>出来る限り90JISの字形を使う.
-\item[jis2004]
-%<en>Use JIS2004 glyph variants if possible.
-%<ja>出来る限りJIS2004の字形を使う.
+\item[jis90\textrm{,~}90jis]
+%<en>Use JIS~X~0208:1990 glyph variants if possible.
+%<ja>出来る限りJIS~X~0208:1990の字形を使う.
+\item[jis2004\textrm{,~}2004jis]
+%<en>Use JIS~X~0213:2004 glyph variants if possible.
+%<ja>出来る限りJIS~X~0213:2004の字形を使う.
 \item[jfm\_yoko=<jfm>]
 %<*en>
 Use the JFM \texttt{jfm-<jfm>.lua} for horizontal direction, instead of \texttt{jfm-ujis.lua}~(default JFM).
@@ -7542,14 +7604,14 @@ Use the JFM \texttt{jfm-<jfm>.lua} for vertical direction, instead of \texttt{jf
 
 \end{cslist}
 %<*en>
-Note that \texttt{90jis} and \texttt{jis2004} only affect with mincho,
+Note that \texttt{jis90},~\texttt{90jis}, \texttt{jis2004}~and~\texttt{2004jis} only affect with mincho,
 gothic (and, possibly rounded gothic) families defined by this package.
-We didn't taken account of  when both \texttt{90jis} and \texttt{jis2004} are specified.
+We didn't taken account of when more than one options among them are specified.
 %</en>
 %<*ja>
-\texttt{90jis}と\texttt{jis2004}については本パッケージで定義された
+\texttt{jis90},~\texttt{90jis}, \texttt{jis2004},~\texttt{2004jis}については本パッケージで定義された
 明朝体・ゴシック体(・丸ゴシック体)にのみ有効である.
-両オプションが同時に指定された場合の動作については全く考慮していない.
+これら4オプションのうち複数が同時に指定された場合の動作については全く考慮していない.
 %</ja>
 
 %<en>\subsubsection{Presets which support multi weights}
@@ -7922,17 +7984,17 @@ Note that HG~Mincho~E, HG~Gothic~E, HG Soei Kaku Gothic UB, and HG Maru Gothic P
 are internally specified by:
 \begin{description}
 \item[default] by font name (\texttt{HGMinchoE}, etc.).
-\item[{\tt 90jis}] by file name (\texttt{hgrme.ttc}, \texttt{hgrge.ttc}, \texttt{hgrsgu.ttc}, \texttt{hgrsmp.ttf}).
-\item[{\tt jis2004}] by file name (\texttt{hgrme04.ttc}, \texttt{hgrge04.ttc}, \texttt{hgrsgu04.ttc}, \texttt{hgrsmp04.ttf}).
+\item[\texttt{jis90}, \texttt{90jis}] by file name (\texttt{hgrme.ttc}, \texttt{hgrge.ttc}, \texttt{hgrsgu.ttc}, \texttt{hgrsmp.ttf}).
+\item[\texttt{jis2004}, \texttt{2004jis}] by file name (\texttt{hgrme04.ttc}, \texttt{hgrge04.ttc}, \texttt{hgrsgu04.ttc}, \texttt{hgrsmp04.ttf}).
 \end{description}
 %</en>
 %<*ja>
 なお,HG明朝E・HGゴシックE・HG創英角ゴシックUB・HG丸ゴシック体PROの4つについては,内部で
 \begin{description}
 \item[標準] フォント名(\texttt{HGMinchoE} など)
-\item[{\tt 90jis}指定時] ファイル名 (%
+\item[\texttt{jis90}, \texttt{90jis}指定時] ファイル名 (%
 \texttt{hgrme.ttc}, \texttt{hgrge.ttc}, \texttt{hgrsgu.ttc}, \texttt{hgrsmp.ttf})
-\item[{\tt jis2004}指定時] ファイル名 (%
+\item[\texttt{jis2004}, \texttt{2004jis}指定時] ファイル名 (%
 \texttt{hgrme04.ttc}, \texttt{hgrge04.ttc}, \texttt{hgrsgu04.ttc}, \texttt{hgrsmp04.ttf})
 \end{description}
 として指定を行っているので注意すること.
@@ -7942,11 +8004,11 @@ are internally specified by:
 %<ja>\subsubsection{新たなプリセットの定義}
 
 %<*ja>
-バージョン********.0以降では,自分で新たなプリセットを定義することが出来るようになった.
+バージョン20170904.0以降では,自分で新たなプリセットを定義することが出来るようになった.
 以下に説明する2命令はプリアンブルでしか実行できない.
 %</ja>
 %<*en>
-From version~********.0, one can define new presets using \cs{ltjnewpreset},
+From version~20170904.0, one can define new presets using \cs{ltjnewpreset},
 and use them by \cs{ltjapplypreset}. These two commands can only be used in the preamble.
 %</en>
 \begin{cslist}