OSDN Git Service

updated manual
[luatex-ja/luatexja.git] / doc / luatexja.dtx
index c7a8530..4dad142 100644 (file)
@@ -1562,56 +1562,6 @@ The following presets are defined:
 %<ja>として読み込み,小塚書体(Pr6N)を使うことを指定している.
 %<en> which means that Kozuka~Pr6N fonts will be used in this document.
 
-%<*ja>
-上記のプリセット以外の和文フォント設定を使いたい場合,本来は
-\Pkg{luatexja-fontspec}パッケージの提供する
-\cs{setmainjfont}, \cs{setsansjfont}を使って自分で指定するべきである.
-\texttt{custom}オプションを使うことで,\Pkg{luatexja-preset}パッケージの内部に直接アクセスして
-\begin{lstlisting}
-\usepackage[kozuka-pr6n,          % kozuka-pr6n プリセットを基礎にして,
-  custom={
-    mc=SourceHanSerif-Regular,    % 明朝体(全ウェイト)
-    mc-l=SourceHanSerif-Bold,     % 明朝体細字
-    mc-m=KozMinPr6N-Regular,      % 明朝体中字
-  % mc-bx=KozMinPr6N-Bold,        % 明朝体太字
-  % gt=HirakakuProN-W3,           % ゴシック体(全ウェイト)
-  % gt-m=SourceHanSans-Regular,   % ゴシック体中字(deluxe オプション指定時)
-  % gt-bx=HiraKakuProN-W6,ular,   % ゴシック体太字
-  % gt-eb=HiraKakuProN-W6,ular,   % ゴシック体極太
-    mg-m=HG Maru Gothic PRO,      % 丸ゴシック体
-  },
-  deluxe,expert,jis2004,match,nfssonly
-]{luatexja-preset}
-\end{lstlisting}
-のようにすることもできるが,\texttt{custom}オプションの書式は予告なく変更されることがある
-上,\texttt{90jis}や\texttt{JIS2004}オプションとの相性があまり良くないので推奨はしない.
-%</ja>
-%<*en>
-To use a Japanese font setting which does not match with any presets,
-the legitimate method is to use \cs{setmainjfont}~and~\cs{setsansjfont}
-which are provided by the \Pkg{luatexja-fontspec} package.
-
-One can use the \texttt{custom} option, such as
-\begin{lstlisting}
-\usepackage[kozuka-pr6n,          % based on the kozuka-pr6n preset (Kozuka Pr6N),
-  custom={
-    mc=SourceHanSerif-Regular,    % mincho family (all weights)
-    mc-l=SourceHanSerif-Bold,     % mincho light
-    mc-m=KozMinPr6N-Regular,      % mincho medium
-  % mc-bx=KozMinPr6N-Bold,        % mincho bold
-  % gt=HirakakuProN-W3,           % gothic family (all weights)
-  % gt-m=SourceHanSans-Regular,   % gothic medium (with deluxe option)
-  % gt-bx=HiraKakuProN-W6,ular,   % gothic bold
-  % gt-eb=HiraKakuProN-W6,ular,   % gothic extra bold
-    mg-m=HG Maru Gothic PRO,      % rounded gothic
-  },
-  deluxe,expert,jis2004,match,nfssonly
-]{luatexja-preset}
-\end{lstlisting}
-However, we do not recommend this \cs{custom} option;
-the format might change, and this \cs{custom} option is not well-compatible with
-\texttt{90jis}~nor~\cs{jis2004} options.
-%</en>
 
 %<*en>
 \subsection{\cs{CID}, \cs{UTF}, and macros in \Pkg{japanese-otf} package}
@@ -2400,7 +2350,6 @@ However, the penalty inserted after it is 10 which is the \Param{postbreakpenalt
 ``ア'', not 20.
 %</en>
 %<*ja>
-\newpage
 \subsection{禁則処理関連パラメータとOpenTypeのfont feature}
 禁則処理や \Param{kanjiskip}, \Param{xkanjiskip} の挿入に関連したパラメータのうち
 \begin{quote}
@@ -2802,7 +2751,9 @@ We implemented this for debugging purpose.
 The fifth column (\emph{utod} direction) corresponds the ``\texttt{tate (math) direction}'' of \pTeX.
 
 Directions can be changed by \cs{yoko},~\cs{tate}, \cs{dtou},~\cs{utod},
-only when the current list is null. Also, the direction of a math formula is changed to
+only when the current list is null.
+These commands cannot be executed in unrestricted horizontal modes, nor math modes.
+The direction of a math formula is changed to
 \emph{utod}, when the direction outside the math formula is \emph{tate} (vertical writing).
 %</en>
 
@@ -2816,6 +2767,8 @@ Down-TO-Upの意味なのだろう.\cs{dtou} を使用する機会はないだ
 
 組方向は,\cs{yoko},~\cs{tate}, \cs{dtou},~\cs{utod} をそれぞれ使用することで,
 現在作成中のリストやボックスが空の時にのみ変更可能である.
+ただし,現在のモードが非制限水平モードや(文中,別行立て問わず)数式モードであるときには
+組方向を変更することは出来ない.
 また,縦組中の数式内のボックスは\pTeX と同じように組方向が \cs{utod} となる.
 %</ja>
 
@@ -3660,14 +3613,27 @@ JFM中における \texttt{kanjiskip\_natural}, \texttt{kanjiskip\_stretch},\
 This command admits the same syntax used in \cs{font}~and~\cs{jfont}.
 A font defined by~\cs{tfont} differs the following points from that by~\cs{jfont}:
 \begin{itemize}
- \item Both \texttt{vert}~and~\texttt{vrt2} Opentype features are activated,
-  unless they are explicitly activated or deactivated (as the third line in the example below).
+ \item OpenType Feature~\texttt{vrt2}%
+  \footnote{If the font does not define \texttt{vrt2} feature,
+       use \texttt{vert} instead.} is automatically activated,
+  unless \texttt{vert}~and//or~\texttt{vrt2} are explicitly activated
+  or deactivated (as the second line in the example below).
 \begin{lstlisting}
-\tfont\S=file:KozMinPr6N-Regular.otf:jfm=ujisv
-    % vert and vrt2 are automatically activated
+\tfont\S=file:KozMinPr6N-Regular.otf:jfm=ujisv % vrt2 is automatically activated
 \tfont\T=file:KozMinPr6N-Regular.otf:jfm=ujisv;-vert % vert and vrt2 are not activated
+\tfont\U=file:ipaexm.ttf:jfm=ujisv
+    % vert is automatically activated, since this font does not have vrt2
 \end{lstlisting}
- \item ...
+ \item Sometimes \texttt{vert} and/or \texttt{vrt2} are not activated
+ while one specified activation of these feature.
+ This is because the font does not define these features in current combination of
+ script~tag and language~system~identifier.
+
+ In this situation, \LuaTeX-ja performs all replacements which is defined in~\texttt{vert}
+ feature for \emph{some} scripts for \emph{some} languages.
+ \item Furthermore, a glyph is automatically rotated 90~degrees,
+  if it is not replaced by \texttt{vert} feature for \emph{any} script
+  for \emph{any} language, and if it is marked as `r''~or~``Tr'' in UAX~\#50.
  \item One have to specify the name of vertical JFM in  \texttt{jfm=<name>}.
 \LuaTeX-ja ships following vertical JFMs:
 \begin{description}
@@ -3685,14 +3651,32 @@ A font defined by~\cs{tfont} differs the following points from that by~\cs{jfont
 \cs{tfont} で定義された縦組用和文フォントは,
 以下の点が \cs{jfont} による横組用和文フォントとは異なる:
 \begin{itemize}
- \item 自動的に \texttt{vert}, \texttt{vrt2} の両OpenType featureが有効化される.
-但し,以下の例の3行目に示すように,明示的に \texttt{vert}, \texttt{vrt2}(のいずれか)の
-有効・無効を指定した場合は別である.
+ \item 明示的に \texttt{vert}, \texttt{vrt2}(のいずれか)の
+  有効・無効を指定した場合を除き,自動的に OpenType feature~\texttt{vrt2} の有効化が
+  指定されたものとみなされる
+ \footnote{もしフォントが\texttt{vrt2}を定義していなかった場合,代わりに
+ \texttt{vert}を用いる.}.
 \begin{lstlisting}
-\tfont\S=file:KozMinPr6N-Regular.otf:jfm=ujisv
-    % vert and vrt2 are automatically activated
+\tfont\S=file:KozMinPr6N-Regular.otf:jfm=ujisv % vrt2 is automatically activated
 \tfont\T=file:KozMinPr6N-Regular.otf:jfm=ujisv;-vert % vert and vrt2 are not activated
+\tfont\U=file:ipaexm.ttf:jfm=ujisv
+    % vert is automatically activated, since this font does not have vrt2
 \end{lstlisting}
+ \item \texttt{vert}, \texttt{vrt2} の少なくとも一つの有効を指定した場合にも関わらず,
+  script tagとlanguage system identifierの値の組み合わせによって
+  実際には有効にならなかった場合,\LuaTeX-jaは
+ \begin{quote}
+   どれかのscript,~languageで定義されている\texttt{vert}による
+   (単一グリフから単一グリフへの)置換を全部適用する
+ \end{quote}
+  という挙動を取る\footnote{%
+  例えば,Windows~7に付属しているSimHeiでは,\texttt{vert}はScriptが\texttt{hani},
+  Languageが\texttt{CHN}という状況でのみ定義されている.しかし,\Pkg{luaotfload}では
+  このscript,~languageの組み合わせを指定することはできないので,
+  \Pkg{luaotfload}そのままでは\texttt{vert}を適用させることはできない.
+ }.
+ \item さらに,「いかなるscript,~languageでも\texttt{vert}により置換されない」グリフ
+  のうち,UAX~\#50で``r''もしくは``Tr''と指定されているものは90度自動回転させる.
  \item \ref{ssec-math}節で述べる,数式中の和文フォントには縦組用和文フォントは指定できない.
  \item \texttt{jfm=<name>}\ の部分には縦組用JFMを指定する.
 以下の縦組用JFMが\LuaTeX-jaには同梱されている.%おり,違いを\autoref{tab-difjfm-tate}に示した.
@@ -7120,8 +7104,8 @@ package to use several ``presets'' of Japanese fonts.
 This package provides functions in a part of \Pkg{japanese-otf} package (changing fonts)
 and a part of \Pkg{PXchfon} package (presets) by Takayuki Yato.
 
-One can specified other options other than listed below.
-These are simply passed to the \Pkg{luatexja-fontspec}\footnote{if \texttt{nfssonly} option is
+Options which are given in \cs{usepackage} but not described in this~subsection
+are simply passed to the \Pkg{luatexja-fontspec}\footnote{if \texttt{nfssonly} option is
 \emph{not} specified; in this case these options are simply ignored.}.
 For example, the line~5 in below example is equivalent to lines 1--3.
 %</en>
@@ -7131,7 +7115,8 @@ For example, the line~5 in below example is equivalent to lines 1--3.
 \Pkg{otf}パッケージの一部(多書体化)と八登崇之氏による\Pkg{PXchfon}パッケージの一部(プリセット指定)
 とを合わせたような格好をしている.
 
-オプションとして,以下のリストにないものも指定することができるが,それらは
+パッケージ読み込み時に渡されたオプションのうち,
+本節にないものを指定した場合,それらはそのまま
 \Pkg{luatexja-fontspec}パッケージに渡される\footnote{\texttt{nfssonly} オプションが
 指定されていた場合は,\Pkg{luatexja-fontspec}パッケージは読み込まれないので単純に無視され
 る.}.例えば,下の1--3行目は5行目のように一行にまとめることができる.
@@ -7144,6 +7129,10 @@ For example, the line~5 in below example is equivalent to lines 1--3.
 \usepackage[no-math,match,kozuka-pr6n]{luatexja-preset}
 \end{lstlisting}
 
+%<en>\subsubsection{General Options}
+%<ja>\subsubsection{一般的なオプション}
+\label{sssec:ltjpreset-general}
+
 \begin{cslist}[before*=]
 \item[fontspec%
 %<en>\textrm{~(enabled by default)}
@@ -7338,8 +7327,10 @@ We didn't taken account of  when both \texttt{90jis} and \texttt{jis2004} are sp
 両オプションが同時に指定された場合の動作については全く考慮していない.
 %</ja>
 
-%<en>\paragraph{Presets for multi weight}
-%<ja>\paragraph{多ウェイト用プリセットの一覧}
+%<en>\subsubsection{Presets which support multi weights}
+%<ja>\subsubsection{多ウェイト用プリセットの一覧}
+\label{sssec:ltjpreset-multi}
+
 %<*en>
 Besides \texttt{morisawa-pro}~and~\texttt{morisawa-pr6n} presets,
 fonts are specified by font name, not by file name.
@@ -7444,7 +7435,7 @@ Std/StdNフォントであり,その他はAdobe-Japan1-5対応である.
  \item[morisawa-pro]  Morisawa Pro (Adobe-Japan1-4) fonts.
 %<en>    \\*[-\dimexpr\medskipamount+\baselineskip\relax]
  \item[morisawa-pr6n]  Morisawa Pr6N (Adobe-Japan1-6, JIS04-savvy) fonts.
-\begin{center}\small
+\begin{center}\footnotesize
 \begin{tabular}{ll>{\tt}l>{\tt}l}
 \toprule
 \bf family&\bf series&morisawa-pro&morisawa-pr6n\\
@@ -7622,11 +7613,11 @@ Std/StdNフォントであり,その他はAdobe-Japan1-5対応である.
 \end{tabular}
 \end{center}
 
-
-
 \end{cslist}
-%<en>\paragraph{Presets for single weight}
-%<ja>\paragraph{単ウェイト用プリセット一覧}
+%<en>\subsubsection{Presets which do not support multi weights}
+%<ja>\subsubsection{単ウェイト用プリセット一覧}
+\label{sssec:ltjpreset-single}
+
 %<*en>
 Next, we describe settings for using only single weight.
 %</en>
@@ -7647,16 +7638,17 @@ Next, we describe settings for using only single weight.
 &IPA Gothic&IPAex Gothic&MS Gothic\\
 %</en>
 %<*ja>
-\gtfamily 明朝&Ryumin-Light(非埋込)
+\gtfamily 明朝&Ryumin-Light(非埋込)
 &IPA明朝&IPAex明朝&MS明朝\\
-\gtfamily ゴシック&GothicBBB-Medium(非埋込)
+\gtfamily ゴシック&GothicBBB-Medium(非埋込)
 &IPAゴシック&IPAexゴシック&MSゴシック\\
 %</ja>
 \bottomrule
 \end{tabular}\par\medskip}
 
-%<en>\paragraph{Using HG fonts}
-%<ja>\paragraph{HGフォントの利用}
+%<en>\subsubsection{Presets which use HG fonts}
+%<ja>\subsubsection{HGフォントを使うプリセット}
+\label{sssec:ltjpreset-hg}
 %<*en>
 We can use HG~fonts bundled with Microsoft~Office for realizing multiple weights.
 In the table below, starred fonts (e.g., IPA~Gothic*) are used
@@ -7683,19 +7675,19 @@ only if \texttt{jis2004} or \texttt{nodeluxe} option is spefified.
 \textit{gothic}&bold&HG Gothic E&HG Gothic E&HG Gothic E\\\cmidrule{2-5}
 &extra bold&HG Soei Kaku Gothic UB&HG Soei Kaku Gothic UB&HG Soei Kaku Gothic UB\\\midrule
 \textit{rounded gothic}&&
-HG Maru Gothic PRO&HG Maru Gothic PRO&HG Maru Gothic PRO\\
+HG MaruGothic M PRO&HG MaruGothic M PRO&HG MaruGothic M PRO\\
 %</en>
 %<*ja>
 &medium&IPA明朝&IPAex明朝&MS明朝\\
-\smash{\raisebox{1.5ex}{\textgt{明朝}}}%
+\smash{\raisebox{1.5ex}{\textgt{明朝}}}%
 &bold&HG明朝E&HG明朝E&HG明朝E\\\midrule
 &&IPAゴシック*&IPAexゴシック*&MSゴシック*\\
 &\smash{\raisebox{1.5ex}{medium}}%
 &HGゴシックM&HGゴシックM&HGゴシックM\\\cmidrule{2-5}
-\textgt{ゴシック}&bold&HGゴシックE&HGゴシックE&HGゴシックE\\\cmidrule{2-5}
+\textgt{ゴシック}&bold&HGゴシックE&HGゴシックE&HGゴシックE\\\cmidrule{2-5}
 &extra bold&HG創英角ゴシックUB&HG創英角ゴシックUB&HG創英角ゴシックUB\\\midrule
-\textgt{丸ゴシック}&&
-HG丸ゴシック体PRO&HG丸ゴシック体PRO&HG丸ゴシック体PRO\\
+\textgt{丸ゴシック}&&
+HG丸ゴシックM-PRO&HG丸ゴシックM-PRO&HG丸ゴシックM-PRO\\
 %</ja>
 \bottomrule
 \end{tabular}\par\medskip}
@@ -7721,6 +7713,138 @@ are internally specified by:
 として指定を行っているので注意すること.
 %</ja>
 
+%<en>\subsubsection{Define/Use Custom Presets}
+%<ja>\subsubsection{新たなプリセットの定義}
+
+%<*ja>
+バージョン********.0以降では,自分で新たなプリセットを定義することが出来るようになった.
+以下に説明する2命令はプリアンブルでしか実行できない.
+%</ja>
+%<*en>
+From version~********.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}
+ \item[\cs{ltjnewpreset}\{<name>\}\{<specification>\}]
+%<*ja>
+  新たに<name>という名称のプリセットを定義する.この名称は,
+  すでに定義されているプリセット名や,
+  \ref{sssec:ltjpreset-general}で定義されているオプション,さらに
+  次の9つと重複してはならない.
+  \begin{quote}
+       \ttfamily
+       mc mc-l mc-m mc-bx gt gt-m gt-bx gt-eb mg-m
+  \end{quote}
+
+  <specification>は,プリセット名や以下のキー達のコンマ区切りリストを指定する:
+  \begin{description}
+   \item[\ttfamily mc-l=<font>] 明朝体細字(\cs{mcfamily}\cs{ltseries})
+   \item[\ttfamily mc-m=<font>] 明朝体中字(\cs{mcfamily}\cs{mdseries})
+   \item[\ttfamily mc-bx=<font>] 明朝体太字(\cs{mcfamily}\cs{bfseries})
+   \item[\ttfamily gt-m=<font>] ゴシック体中字(\cs{gtfamily}\cs{mdseries})
+   \item[\ttfamily gt-bx=<font>] ゴシック体太字(\cs{gtfamily}\cs{bfseries})
+   \item[\ttfamily gt-eb=<font>] ゴシック体太字(\cs{gtfamily}\cs{ebseries})
+   \item[\ttfamily mg-m=<font>] 丸ゴシック体(\cs{mgfamily})
+   \item[\ttfamily mc=<font>] 明朝体の細字・中字・太字全部を設定.
+       以下を指定したことと同じである:
+       \begin{quote}
+         \ttfamily mc-l=<font>, mc-m=<font>, mc-bx=<font>
+       \end{quote}
+   \item[\ttfamily gt=<font>] ゴシック体の中字・太字・極太全部を設定.
+       以下を指定したことと同じである:
+       \begin{quote}
+         \ttfamily gt-m=<font>, gt-bx=<font>, gt-eb=<font>
+       \end{quote}
+  \end{description}
+  なお,パッケージ読み込み時に \texttt{deluxe} が有効でない場合は,
+  上記9キーのうち\texttt{mc}, \texttt{gt}しか実質的に意味を持たない.  
+%</ja>
+%<*en>
+  Define new preset~<name>. This <name> cannot be same as other presets,
+  options described in Subsubsection~\ref{sssec:ltjpreset-general}, nor
+  following nine strings:
+  \begin{quote}
+       \ttfamily
+       mc mc-l mc-m mc-bx gt gt-m gt-bx gt-eb mg-m
+  \end{quote}
+
+  <specification> is a comma-separated list which consists of
+  other presets and/or the following keys:
+  \begin{description}
+   \item[\ttfamily mc-l=<font>] mincho light
+   \item[\ttfamily mc-m=<font>] mincho medium
+   \item[\ttfamily mc-bx=<font>] mincho bold
+   \item[\ttfamily gt-m=<font>] gothic medium
+   \item[\ttfamily gt-bx=<font>] gothic bold
+   \item[\ttfamily gt-eb=<font>] gothic extra~bold
+   \item[\ttfamily mg-m=<font>] rounded gothic
+   \item[\ttfamily mc=<font>] Same as
+       \begin{quote}
+         \ttfamily mc-l=<font>, mc-m=<font>, mc-bx=<font>
+       \end{quote}
+   \item[\ttfamily gt=<font>] Same as
+       \begin{quote}
+         \ttfamily gt-m=<font>, gt-bx=<font>, gt-eb=<font>
+       \end{quote}
+  \end{description}
+  If \texttt{deluxe} is not specified at loading the package,
+  only \texttt{mc}~and~\texttt{gt} keys (among above 9~keys) have a meaning.
+%</en>
+ \item[\cs{ltjnewpreset}*\{<name>\}\{<specification>\}]
+%<*ja>
+  \cs{ltjnewpreset}とほぼ同じであるが,こちらはすでに定義されているプリセット名
+  を<name>に指定した場合にはエラーを出さずに定義を置き換える.
+%</ja>
+%<*en>
+  Almost same as \cs{ltjnewpreset}. However, if <name> matches a preset which already defined,
+  this command simply overwrite it.
+%</en>
+ \item[\cs{ltjapplypreset}\{<name>\}]
+%<ja> <name>で指定されたプリセットを使って和文フォントを設定する.
+%<en> Set Japanese font families using preset~<name>.
+\end{cslist}
+
+%<*ja>
+なお,\cs{ltjnewpreset}の第二引数<specification>に含まれる
+プリセット名は\cs{ltjnewpreset}の時点で定義されている必要はなく,
+\cs{ltjapplypreset}で実際に使うときに定義されていれば良い.
+そのため,次のような記述も可能である:
+\begin{lstlisting}
+  \ltjnewpreset{hoge}{piyo,mc-bx=HiraMinProN-W6}
+  \ltjnewpreset{piyo}{mg-m=HiraMaruProN-W4}
+  \ltjapplypreset{hoge}
+\end{lstlisting}
+
+\paragraph{注意}
+\cs{ltjnewpreset}で定義したプリセットには以下の制限がある.
+\begin{itemize}
+  \item 非埋め込みのフォントを指定することはできない.
+  \item \texttt{ipa-hg}などのいくつかのプリセットでは
+  「\texttt{90jis}, \texttt{jis2004}が指定されているか否かでフォントの指定を変える」処理が
+  行われていたが,\cs{ltjnewpreset}で定義したプリセットではこの処理は働かない.
+  HGフォントやモガ明朝などを使うプリセットを定義する場合には注意すること.
+\end{itemize}
+%</ja>
+%<*en>
+Note that \cs{ltjnewpreset} does not ``expand'' the definition to define a preset.
+This means that one can write as the following:
+\begin{lstlisting}
+  \ltjnewpreset{hoge}{piyo,mc-bx=HiraMinProN-W6}
+  \ltjnewpreset{piyo}{mg-m=HiraMaruProN-W4}
+  \ltjapplypreset{hoge}
+\end{lstlisting}
+
+\paragraph{Restrictions}
+Presets which are defined by \cs{ltjnewpreset} have following restrictions:
+\begin{itemize}
+  \item One cannot specify non-embedded fonts (such as Ryumin-Light).
+  \item Some presets, such as \texttt{ipa-hg}, have a feature that
+  fonts are changed according to whether \texttt{90jis}~or~\texttt{jis2004} is speified.
+  This feature is not usable in presets which are defined by \cs{ltjnewpreset}.
+\end{itemize}
+%</en>
+
+
 \clearpage
 %<en>\part{Implementations}
 %<ja>\part{実装}