X-Git-Url: http://git.osdn.jp/view?a=blobdiff_plain;f=doc%2Fluatexja.dtx;h=ed343fefb84d78727519ec40731c93ff7280f25d;hb=a6c37dba4272ef5de87886c805f6f902aa5f7175;hp=fac07d2f26c7f20380b5adff4362fc84f370a6a8;hpb=21a99e7265f96d2f77c8c5b6450dd24d91237707;p=luatex-ja%2Fluatexja.git diff --git a/doc/luatexja.dtx b/doc/luatexja.dtx index fac07d2..ed343fe 100644 --- a/doc/luatexja.dtx +++ b/doc/luatexja.dtx @@ -47,7 +47,7 @@ % \usepackage{amsmath,array,tikz,pict2e,multienum,float} -\usepackage{booktabs,multicol} +\usepackage{booktabs,multicol,luatexja-ruby} %%%%%%%% listings @@ -108,7 +108,9 @@ \usepackage{luatexja-otf} %\usepackage{lmodern} \directlua{luatexja.otf.enable_ivs()} +\usepackage[match]{luatexja-fontspec} \usepackage[kozuka-pr6n]{luatexja-preset} +\setmonojfont{KozGoPr6N-Regular.otf} %<*ja> \def\emph#1{\textbf{\textgt{#1}}} \def\headfont{\normalfont\bfseries\gtfamily} @@ -121,11 +123,6 @@ \setmathfont{xits-math.otf} \frenchspacing % -\DeclareRobustCommand\ttfamily - {\not@math@alphabet\ttfamily\mathtt - \romanfamily\ttdefault\ttjfam\selectfont} -\newjfontfamily\ttjfam{KozGoPr6N-Regular.otf} - %%%%%%%% logo \usepackage{metalogo} @@ -183,6 +180,7 @@ \catcode`\<=13 \def<#1>{{\normalfont\rm\itshape$\langle$#1\/$\rangle$}} +\let\LARG=< \maketitle \tableofcontents @@ -932,7 +930,7 @@ Okumura), namely, \Pkg{ltjclasses} and \Pkg{ltjsclasses}. 日本語文書を組版するためには,\texttt{article.cls}, \texttt{book.cls}といった 欧文用のクラスファイルではなく,和文用のクラスファイルを用いた方がよい. 現時点では,\Pkg{jclasses}(\pLaTeX の標準クラス)と\Pkg{jsclasses} -(奥村晴彦氏によるクラスファイル)に対応するものとして,\Pkg{ltjclasses}, +(奥村晴彦氏による「\pLaTeXe 新ドキュメントクラス」)に対応するものとして,\Pkg{ltjclasses}, \Pkg{ltjsclasses}がそれぞれ用意されている. % @@ -940,7 +938,7 @@ Okumura), namely, \Pkg{ltjclasses} and \Pkg{ltjsclasses}. %\section{フォントの変更} \subsection{plain \TeX~and~\LaTeXe} -\label{ssub-chgfnt} +\label{ssec-chgfnt} \paragraph{plain \TeX} %<*en> @@ -1014,7 +1012,7 @@ auto select&\verb+\fontencoding+&\verb+\fontfamily+&---&---&\verb+\usefont+\\ alphabetic fonts to \texttt{T1}. \verb+\fontfamily+ also changes the current Japanese font family, the current alphabetic font family, \emph{or both}. - For the detail, see Subsection~\ref{ssub-nfsspat}. + For the detail, see Subsection~\ref{ssec-nfsspat}. % %<*ja> ここで,\verb+\fontencoding{+\verb+}+ は,引数により和文側か欧文 @@ -1023,7 +1021,7 @@ auto select&\verb+\fontencoding+&\verb+\fontfamily+&---&---&\verb+\usefont+\\ \texttt{JY3}に変更し,\verb+\fontencoding{T1}+ は欧文フォント側を \texttt{T1}へと変更する.\verb+\fontfamily+ も引数により和文側,欧文 側,\emph{あるいは両方}のフォントファミリを変更する.詳細は - \ref{ssub-nfsspat}節を参照すること. + \ref{ssec-nfsspat}節を参照すること. % %<*en> @@ -1040,13 +1038,13 @@ auto select&\verb+\fontencoding+&\verb+\fontfamily+&---&---&\verb+\usefont+\\ \item 和文フォントのシェイプを定義するには,通常の \verb+\DeclareFontShape+ を使えば良い: % \begin{verbatim} -\DeclareFontShape{JY3}{mc}{bx}{n}{<-> s*KozMinPr6N-Bold:jfm=ujis}{} +\DeclareFontShape{JY3}{mc}{bx}{n}{<-> s*KozMinPr6N-Bold:jfm=ujis;-kern}{} % Kozuka Mincho Pr6N Bold \end{verbatim} %<*ja> 仮名書体を使う場合など,複数の和文フォントを組み合わせて使いたい場合は \ref{ssec-altfont}節の \verb+\ltjdeclarealtfont+ と,その\LaTeX 版の\ -\verb+\DeclareAlternateKanjiFont+(\ref{ssub-nfsspat}節)を参照せよ. +\verb+\DeclareAlternateKanjiFont+(\ref{ssec-nfsspat}節)を参照せよ. % \end{itemize} @@ -1114,13 +1112,21 @@ this chapter. For the method, please see Subsection~\ref{ssec-math}. \label{ssec-fontspec} %<*en> To coexist with the \Pkg{fontspec} package, it is needed to load -\Pkg{luatexja-fontspec} package in the preamble. This additional -package automatically loads \Pkg{luatexja} and \Pkg{fontspec} +\Pkg{luatexja-fontspec} package in the preamble, as follows: +\begin{quote} +\ttfamily \textbackslash usepackage[]\{luatexja-fontspec\} +\end{quote} +This \Pkg{luatexja-fontspec} package +automatically loads \Pkg{luatexja} and \Pkg{fontspec} package, if needed. % %<*ja> -\Pkg{fontspec}パッケージと同様の機能を和文フォントに対しても用いるためには, -\Pkg{luatexja-fontspec}パッケージをプリアンブルで読み込む必要がある.このパッケージ +\Pkg{fontspec}パッケージと同様の機能を和文フォントに対しても用いる場合, +\Pkg{luatexja-fontspec}パッケージを読み込む: +\begin{quote} +\ttfamily \textbackslash usepackage[]\{luatexja-fontspec\} +\end{quote} +このパッケージ は必要ならば自動で\Pkg{luatexja}パッケージと\Pkg{fontspec}パッケージを読み込む. % @@ -1132,20 +1138,21 @@ counterparts of original commands in the \Pkg{fontspec} package: \Pkg{luatexja-fontspec}パッケージでは,以下の7つのコマンドを\Pkg{fontspec} パッケージの元のコマンドに対応するものとして定義している: % - %<*en> \begin{center}\small \begin{tabular}{ccccc} \toprule Japanese fonts -&\verb+\jfontspec+&\verb+\setmainjfont+&\verb+\setsansjfont+&\verb+\newjfontfamily+\\ +&\verb+\jfontspec+&\verb+\setmainjfont+&\verb+\setsansjfont+&\verb+\setmonojfont+$^*$\\ alphabetic fonts -&\verb+\fontspec+&\verb+\setmainfont+&\verb+\setsansfont+&\verb+\newfontfamily+\\ +&\verb+\fontspec+&\verb+\setmainfont+&\verb+\setsansfont+&\verb+\setmonofont+\\ \midrule Japanese fonts -&\verb+\newjfontface+&\verb+\defaultjfontfeatures+&\verb+\addjfontfeatures+\\ +&\verb+\newjfontfamily+&\verb+\newjfontface+ +&\verb+\defaultjfontfeatures+&\verb+\addjfontfeatures+\\ alphabetic fonts -&\verb+\newfontface+&\verb+\defaultfontfeatures+&\verb+\addfontfeatures+\\ +&\verb+\newfontfamily+&\verb+\newfontface+ +&\verb+\defaultfontfeatures+&\verb+\addfontfeatures+\\ \bottomrule \end{tabular} \end{center} @@ -1172,6 +1179,45 @@ alphabetic fonts \end{tabular} \end{center} % +%<*en> +The package option of \Pkg{luatexja-fontspec} are the followings: +\begin{list}{}{\def\makelabel{\ttfamily}\def\{{\char`\{}\def\}{\char`\}}\advance\leftmargin1\zw} + \item[match] If this option is specified, usual family-changing commands such as +\verb+\rmfamily+,~\verb+\textrm+, \verb+\sffamily+,~\dots\ also change Japanese font family. + +Note that \emph{\texttt{\textup{\textbackslash setmonojfont}} is defined +if and only if this \texttt{\textup{match}} option is specified}. + + \item[pass=] +Specify options which will be passed to the \Pkg{fontspec} package. +\end{list} +The reason that \verb+\setmonojfont+ is not defined by default is that +it is popular for Japanese fonts that nearly all Japanese glyphs have same +widths. Also note that kerning information in a font is not used +(that is, \texttt{kern} feature is set off) by default in these seven (or~eight) commands. +This is because of the compatibility with previous versions of \LuaTeX-ja +(see \ref{para-kern}). +% +%<*ja> +\Pkg{luatexja-fontspec} パッケージのオプションは以下の通りである: +\begin{list}{}{\def\makelabel{\ttfamily}\def\{{\char`\{}\def\}{\char`\}}\advance\leftmargin1\zw} + \item[match] このオプションが指定されると,「\pLaTeXe 新ドキュメントクラス」のように\ +\verb+\rmfamily+, \verb+\textrm{...}+, \verb+\sffamily+ 等が +欧文フォントだけでなく和文フォントも変更するようになる. + +\emph{なお,{\tt \textbackslash setmonojfont} はこの \texttt{match} オプションが +指定された時のみ定義される.}この命令は標準の「タイプライタ体に対応する和文フォント」を指定する. + + \item[pass=] +\Pkg{fontspec} パッケージに渡すオプション を指定する. +\end{list} +標準で \verb+\setmonojfont+ コマンドが定義されないのは, +和文フォントではほぼ全ての和文文字のグリフが等幅であるのが伝統的であったことによる. +また,これらの和文用のコマンドではフォント内のペアカーニング情報は標準では使用されない, +言い換えれば \texttt{kern} featureは標準では無効化となっている. +これは以前のバージョンの\LuaTeX-jaとの互換性のためである(\ref{para-kern}節を参照). +% + \begin{LTXexample}[width=0.4\textwidth] \fontspec[Numbers=OldStyle]{LMSans10-Regular} \jfontspec[CJKShape=NLC]{KozMinPr6N-Regular} @@ -1181,20 +1227,6 @@ JIS~X~0213:2004→辻 JIS~X~0208:1990→辻 \end{LTXexample} -%<*en> -Note that there is no command named \verb+\setmonojfont+, since it is -popular for Japanese fonts that nearly all Japanese glyphs have same -widths. Also note that the kerning feature is set off by default in -these seven commands, since this feature and \textbf{JAglue} will clash (see -\ref{para-kern}). -% -%<*ja> -和文フォントについては全ての和文文字のグリフがほぼ等幅であるのが普通であるため, -\verb+\setmonojfont+ コマンドは存在しないことに注意.また,これらの和文用の7つのコマ -ンドではKerning featureはデフォルトではoffとなっている.これはこの -featureが\textbf{JAglue}と衝突するためである(\ref{para-kern}節を参照). -% - %\subsection{Presets} %\subsection{プリセット設定} \label{ssec-preset} @@ -1423,7 +1455,7 @@ Std/StdNフォントであり,その他はAdobe-Japan1-5対応である. \midrule %\textit{rounded gothic} %\gt 丸ゴシック -&&A-OTF-Jun101Pro-Light.otf&A-OTF-Jun101Pr6N-Light.otf\\ +&&A-OTF-Jun101Pro-Light.otf&A-OTF-ShinMGoPr6N-Light.otf\\ \bottomrule \end{tabular} \end{center} @@ -1613,7 +1645,7 @@ If you want to use these functions, load \Pkg{luatexja-otf} package. これら3オプションについては, \Pkg{luatexja-preset} パッケージにプリセットを使う時に一緒に指定するか, -あるいは対応する内容を\ref{ssub-chgfnt}節 (NFSS2) や +あるいは対応する内容を\ref{ssec-chgfnt}節,\ref{ssec-nfsspat}節 (NFSS2) や \ref{ssec-fontspec}節 (\Pkg{fontspec}) の方法で手動で指定する必要がある. % @@ -2174,7 +2206,7 @@ For the detail, see Table~\ref{table-kcat}. \small \caption{\texttt{\textbackslash kcatcode} in \upTeX} \label{table-kcat} -\medskip +%\medskip \noindent\hfill \begin{tabular}{ccccc} @@ -2321,6 +2353,7 @@ for \LuaTeX, \emph{to match the \texttt{\textbackslash catcode} setting with tha \centering\small %\caption{Difference of the set of non-kanji JIS~X~0208 characters which can be used in a control word} %\caption{制御綴中に使用出来るJIS~X~0208非漢字の違い} +%\medskip \label{table-kcat-diff} \def\D#1#2#3#4{% {\fboxsep0pt\fcolorbox{cyan}{white}% @@ -2467,6 +2500,44 @@ which JFM will be used for this font by the following keys: 指定する必要がある: % + +\begin{table}[t] +%\caption{Differences between JFMs shipped with \LuaTeX-ja} +%\caption{\LuaTeX-ja に同梱されている JFM の違い} +%\medskip +\label{tab-difjfm} +\ltjsetparameter{jacharrange={+3}} +\centering\small +\def\r#1{{\jfont\g=file:KozMinPr6N-Regular.otf:jfm=#1 at 14.43324pt \g +\setbox0=\vtop{\hsize=7\zw\noindent ◆◆◆◆◆◆◆ +ある日モモちゃんがお使いで迷子になって泣きました.}\copy0 +\vrule height 0pt depth \dp0}} +\def\s#1{{\jfont\g=file:KozMinPr6N-Regular.otf:jfm=#1 at 14.43324pt \g +\setbox0=\vtop{\hsize=7\zw\noindent ちょっと!何}\copy0}} +\def\t#1{{\jfont\g=file:KozMinPr6N-Regular.otf:jfm=#1 at 19.24432pt \g +\setbox0=\hbox{漢}% +\vrule width 0.4pt height\ht0 depth\dp0\kern-.2pt\copy0 +\kern-\wd0\vrule width\wd0height .2pt depth .2pt +\kern-\wd0\raise\ht0\hbox{\vrule width\wd0height .2pt depth .2pt}% +\kern-\wd0\lower\dp0\hbox{\vrule width\wd0height .2pt depth .2pt}% +\kern-.2pt\vrule width 0.4pt height\ht0 depth \dp0}} +\begin{tabular}{rccc} +\toprule +&\tt jfm-ujis.lua&\tt jfm-jis.lua&\tt jfm-min.lua\\ +\midrule +%Example~1\cite{min10} +%例1\cite{min10} +&\r{ujis}&\r{jis}&\r{min}\\ +%Example~2 +%例2 +&\s{ujis}&\s{jis}&\s{min}\\ +Bounding Box&\t{ujis}&\t{jis}&\t{min}\\ +\bottomrule +\end{tabular} +\ltjsetparameter{jacharrange={-3}} +\end{table} + + \begin{list}{}{\def\makelabel{\ttfamily}\def\{{\char`\{}\def\}{\char`\}}\advance\leftmargin1\zw} \item[jfm=] %<*en> @@ -2500,122 +2571,116 @@ JFMの名前を指定する.もし以前に指定されたJFMが読み込ま % %<*ja> \item[\tt jfm-jis.lua] \pTeX で広く用いられている「JISフォントメトリック」 - \verb+jis.tfm+ に相当するJFMである.\texttt{jfm-ujis.lua}とこの - \texttt{jfm-jis.lua}の主な違いは,\texttt{jfm-ujis.lua}ではほとんどの文字が - 正方形状であるのに対し,\texttt{jfm-jis.lua}では横長の長方形状である. + \verb+jis.tfm+ に相当するJFMである.\texttt{jfm-ujis.lua} とこの + \texttt{jfm-jis.lua} の主な違いは,\texttt{jfm-ujis.lua} ではほとんどの文字が + 正方形状であるのに対し,\texttt{jfm-jis.lua} では横長の長方形状であることと, + \texttt{jfm-ujis.lua} では「?」「!」の直後に半角空白が挿入されることである. % %<*en> \item[\tt jfm-min.lua] A counterpart for \verb+min10.tfm+, which is one - of the default Japanese font metric shipped with \pTeX. There - are notable difference between this JFM and other 2~JFMs, as - shown in Table~\ref{tab-difjfm}. + of the default Japanese font metric shipped with \pTeX. % -%<*ja> +%<*ja> \item[\tt jfm-min.lua] \pTeX に同梱されているデフォルトの和文用TFM - である \verb+min10.tfm+ に相当するJFMである.このJFMと他の2つのJFMの間には - 表\ref{tab-difjfm}に示すような特筆すべき違いがある. + である \verb+min10.tfm+ に相当する. % \end{description} - %<*en> -\item[jfmvar=] Sometimes there is a need that \ldots. +The difference among these three~JFMs is shown in Table~\ref{tab-difjfm}. % %<*ja> -\item[jfmvar=] 標準では,JFMとサイズが同じで, - 実フォントだけが異なる2つの和文フォントは「区別されない」.例えば -下の例において,最初の「)」と「【」の実フォントは異なるが, -JFMもサイズも同じなので,普通に「)【」と入力した時と同じように半角空きとなる. - -しかし,時には…… - +これら3つのJFMの違いは表\ref{tab-difjfm}に示した. % + +\begin{figure} \begin{LTXexample}[width=0.3\textwidth] \ltjsetparameter{differentjfm=both} \jfont\F=file:KozMinPr6N-Regular.otf:jfm=ujis \jfont\G=file:KozGoPr6N-Medium.otf:jfm=ujis \jfont\H=file:KozGoPr6N-Medium.otf:jfm=ujis;jfmvar=hoge - \F ){\G 【】}( % halfwidth space ){\H 『』}( % fullwidth space +ほげ,{\G 「ほげ」}(ほげ)\par +ほげ,{\H 「ほげ」}(ほげ)% pTeX-like + \ltjsetparameter{differentjfm=paverage} \end{LTXexample} -\end{list} - -\begin{table}[t] -%\caption{Differences between JFMs shipped with \LuaTeX-ja} -%\caption{\LuaTeX-ja に同梱されている JFM の違い} -\label{tab-difjfm} -\ltjsetparameter{jacharrange={+3}} -\centering\small -\def\r#1{{\jfont\g=file:KozMinPr6N-Regular.otf:jfm=#1 at 14.43324pt \g -\setbox0=\vtop{\hsize=7\zw\noindent ◆◆◆◆◆◆◆ -ある日モモちゃんがお使いで迷子になって泣きました.}\copy0 -\vrule height 0pt depth \dp0}} -\def\s#1{{\jfont\g=file:KozMinPr6N-Regular.otf:jfm=#1 at 14.43324pt \g -\setbox0=\vtop{\hsize=7\zw\noindent ちょっと!何}\copy0}} -\def\t#1{{\jfont\g=file:KozMinPr6N-Regular.otf:jfm=#1 at 19.24432pt \g -\setbox0=\hbox{漢}% -\vrule width 0.4pt height\ht0 depth\dp0\kern-.2pt\copy0 -\kern-\wd0\vrule width\wd0height .2pt depth .2pt -\kern-\wd0\raise\ht0\hbox{\vrule width\wd0height .2pt depth .2pt}% -\kern-\wd0\lower\dp0\hbox{\vrule width\wd0height .2pt depth .2pt}% -\kern-.2pt\vrule width 0.4pt height\ht0 depth \dp0}} -\begin{tabular}{rccc} -\toprule -&\tt jfm-ujis.lua&\tt jfm-jis.lua&\tt jfm-min.lua\\ -\midrule -%Example~1\cite{min10} -%例1\cite{min10} -&\r{ujis}&\r{jis}&\r{min}\\ -%Example~2 -%例2 -&\s{ujis}&\s{jis}&\s{min}\\ -Bounding Box&\t{ujis}&\t{jis}&\t{min}\\ -\bottomrule -\end{tabular} -\ltjsetparameter{jacharrange={-3}} -\end{table} +\caption{Example of \texttt{jfmvar} key} +\label{fig:jfmvar} +\end{figure} -%\paragraph{Note: \texttt{kern} feature} -%\paragraph{注意:\texttt{kern} feature} -\label{para-kern} -%<*en> -Some fonts have information for inter-glyph spacing. However, this -information is not well-compatible with \LuaTeX-ja. More concretely, -this kerning space from this information are inserted \emph{before} the -insertion process of \textbf{JAglue}, and this causes incorrect spacing -between two characters when both a glue/kern from the data in the font -and it from JFM are present. -% -%<*ja> -いくつかのフォントはグリフ間のスペースについての情報を持っている.しかし, -この情報は\LuaTeX-ja とはあまり相性がよくない.具体的には,この情報に基づいて挿入 -されるカーニングスペースは\textbf{JAglue}の挿入過程の\textbf{前に}挿入され, -JFMに基づくグルー/カーンも挿入される場合には2文字間の意図しないスペースの原因と -なる. -% -\begin{itemize} %<*en> -\item You should specify \texttt{-kern} in - \verb+jfont+ when you want to use other font features, - such as \texttt{script=...}\,. +\item[jfmvar=] Sometimes there is a need that \ldots. % %<*ja> -\item \texttt{script=...}といったfeatureを使いたい場合には,\verb+\jfont+ - に\texttt{-kern}を指定するべきである. +\item[jfmvar=] 標準では,JFMとサイズが同じで, + 実フォントだけが異なる2つの和文フォントは「区別されない」.例えば +図\ref{fig:jfmvar}において,最初の「)」と「【」の実フォントは異なるが, +JFMもサイズも同じなので,普通に「)【」と入力した時と同じように半角空きとなる. + +しかし,JFMとサイズが同じであっても,\texttt{jfmvar} キーの異なる +2つの和文フォント,例えば図\ref{fig:jfmvar}で言う \verb+\F+ と \verb+\H+, +は「区別される」.異なる和文フォントに異なる \texttt{jfmvar} キーを割り当て, +かつ\Param{differentjfm}パラメータを \texttt{both} に設定すれば, +\pTeX と似た状況で組版されることになる. % +\end{list} + +\begin{figure} +\begin{LTXexample}[pos=t] +\newcommand\test{\vrule ダイナミックダイクマ\vrule\\} +\jfont\KMFW = KozMinPr6N-Regular:jfm=prop;-kern at 17pt +\jfont\KMFK = KozMinPr6N-Regular:jfm=prop at 17pt % kern is activated +\jfont\KMPW = KozMinPr6N-Regular:jfm=prop;script=dflt;+pwid;-kern at 17pt +\jfont\KMPK = KozMinPr6N-Regular:jfm=prop;script=dflt;+pwid;+kern at 17pt +\begin{multicols}{2} +\ltjsetparameter{kanjiskip=0pt} +{\KMFW\test \KMFK\test \KMPW\test \KMPK\test} + +\ltjsetparameter{kanjiskip=3pt} +{\KMFW\test \KMFK\test \KMPW\test \KMPK\test} +\end{multicols} +\end{LTXexample} +\caption{Kerning information and \Param{kanjiskip}} +\label{fig:kern-jfm} +\end{figure} + +%\paragraph{Using kerning information in a font} +%\paragraph{ペアカーニング情報の使用} +\label{para-kern} %<*en> -\item If you want to use Japanese fonts in proportional width, and use - information from this font, use \texttt{jfm-prop.lua} for its JFM, and\,\ldots. +Some fonts have information for inter-glyph spacing. +This version of \LuaTeX-ja treats kerning spaces like an italic correction; +any glue and/or kern from the JFM and a kerning space can coexist. +See Figure~\ref{fig:kern-jfm} for detail. + +Note that in \verb+\setmainjfont+ etc.\ which are provided by \Pkg{luatexja-fontspec} +package, kerning option is set \emph{off} (\texttt{Kerning=Off}) by default, +because of the compatibility with previous versions of \LuaTeX-ja. % %<*ja> -\item もしプロポーショナル幅の和文フォントをそのフォントの情報に基づいて使いたい - ならば,\texttt{jfm-prop.lua}をJFMとして指定し,…… -% -TODO: kanjiskip? +いくつかのフォントはグリフ間のスペースについての情報を持っている. +このカーニング情報は以前の\LuaTeX-ja とはあまり相性が良くなかったが, +本バージョンではカーニングによる空白はイタリック補正と同様に扱うことになっている. +つまり,カーニング由来の空白とJFM由来のグルー・カーンは同時に入りうる. +図\ref{fig:kern-jfm}を参照. +\begin{itemize} + \item \emph{\texttt{\textbackslash jfont} や, +NFSS2用の命令(\ref{ssec-chgfnt}節,\ref{ssec-nfsspat}節)における指定では +カーニング情報は標準で使用する}ことになっているようである. +言い換えれば,カーニング情報を使用しない設定にするには,面倒でも +\begin{verbatim} +\jfont\hoge=KozMinPr6N-Regular:jfm=ujis;-kern at 3.5mm +\DeclareFontShape{JY3}{fuga}{m}{n} {<-> s*KozMinPr6N-Regular:jfm=ujis;-kern}{} +\end{verbatim} +のように,\texttt{-kern} という指定を自分で追架しなければいけない. + \item +一方,\emph{\Pkg{luatexja-fontspec} の提供する \texttt{\textbackslash setmainjfont}\ +などの命令の標準設定ではカーニング情報は使用しない}(\texttt{Kerning=Off}) +ことになっている.これは以前のバージョンの\LuaTeX-jaとの互換性のためである. \end{itemize} - +% %<*ja> \paragraph{\texttt{extend}と\texttt{slant}} @@ -2643,10 +2708,10 @@ For example, the following example uses the standard JFM \texttt{jfm-ujis.lua}, letter-spacing and the width of italic correction are not correct: % \begin{LTXexample}[width=0.3\textwidth] -\jfont\E=file:KozMinPr6N-Regular.otf:extend=1.5;jfm=ujis +\jfont\E=file:KozMinPr6N-Regular.otf:extend=1.5;jfm=ujis;-kern \E あいうえお -\jfont\S=file:KozMinPr6N-Regular.otf:slant=1;jfm=ujis +\jfont\S=file:KozMinPr6N-Regular.otf:slant=1;jfm=ujis;-kern \S あいう\/ABC \end{LTXexample} @@ -2885,14 +2950,18 @@ 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: \texttt{width} field can be \texttt{'prop'}. +This means that width of a character becomes that of its ``real'' glyph. % %<*ja> 文字クラス$i$に属する文字の幅,高さ,深さ,イタリック補正の量を指定する. 文字クラス$i$に属する全ての文字は,その幅,高さ,深さがこのフィールドで指定した 値であるものとして扱われる. -しかし,例外が一つある:もし \texttt{'prop'} が \texttt{width} フィールドに -指定された場合,文字の幅はその「実際の」グリフの幅となる. + +例外として,\emph{\texttt{width} フィールドには数値以外に \texttt{'prop'} が指定可能である}. +この場合,文字の幅はその「実際の」グリフの幅となる.OpenTypeの \texttt{prop} featureと併用 + すれば,これによってプロポーショナル組を行うことができる. % \item[left=, down=, align=]\ @@ -3025,8 +3094,8 @@ Furthermore, the glyph is shifted according to values of fields \medskip \caption{% -%The position of the real glyph. -%「実際の」グリフの位置. +%The position of the real glyph +%「実際の」グリフの位置 } \label{fig-pos} \end{figure} @@ -3332,6 +3401,7 @@ you can set both \verb+\fam+ and \verb+\jfam+ to the same value. %\caption{Commands for Japanese math fonts} %\caption{和文数式フォントに対する命令} \label{tab-math} +%\medskip \centering \def\{{\char`\{}\def\}{\char`\}}\small \begin{tabular}{ll} @@ -4225,30 +4295,19 @@ are typeset by \verb+\piyo+. %\subsection{Patch for NFSS2} %\subsection{NFSS2へのパッチ} -\label{ssub-nfsspat} +\label{ssec-nfsspat} \begin{figure}[!tb] -\begin{lstlisting}[numberstyle=\tiny, numbers=left, numbersep=1em] -\DeclareKanjiFamily{JY3}{edm}{} -\DeclareFontShape{JY3}{edm}{m}{n} {<-> s*IPAexMincho:jfm=ujis}{} -\DeclareFontShape{JY3}{edm}{m}{green}{<-> s*IPAexMincho:jfm=ujis;color=007F00}{} -\DeclareFontShape{JY3}{edm}{m}{blue} {<-> s*IPAexMincho:jfm=ujis;color=0000FF}{} -\DeclareAlternateKanjiFont{JY3}{edm}{m}{n}{JY3}{edm}{m}{green}{"4E00-"67FF,{-2}-{-2}} -\DeclareAlternateKanjiFont{JY3}{edm}{m}{n}{JY3}{edm}{m}{blue}{ "6800-"9FFF} -{\kanjifamily{edm}\selectfont -日本国民は、正当に選挙された国会における代表者を通じて行動し、……} -\end{lstlisting} -\begin{quote} +\begin{LTXexample}[pos=b] \DeclareKanjiFamily{JY3}{edm}{} -\DeclareFontShape{JY3}{edm}{m}{n} {<-> s*KozMinPr6N-Regular:jfm=ujis}{} +\DeclareFontShape{JY3}{edm}{m}{n} {<-> s*KozMinPr6N-Regular:jfm=ujis;}{} \DeclareFontShape{JY3}{edm}{m}{green}{<-> s*KozMinPr6N-Regular:jfm=ujis;color=007F00}{} \DeclareFontShape{JY3}{edm}{m}{blue} {<-> s*KozMinPr6N-Regular:jfm=ujis;color=0000FF}{} \DeclareAlternateKanjiFont{JY3}{edm}{m}{n}{JY3}{edm}{m}{green}{"4E00-"67FF,{-2}-{-2}} \DeclareAlternateKanjiFont{JY3}{edm}{m}{n}{JY3}{edm}{m}{blue}{ "6800-"9FFF} - {\kanjifamily{edm}\selectfont 日本国民は、正当に選挙された国会における代表者を通じて行動し、……} -\end{quote} +\end{LTXexample} %\caption{\texttt{\textbackslash DeclareAlternateKanjiFont} の使用例} %\caption{An example of \texttt{\textbackslash DeclareAlternateKanjiFont}} \label{fig:altkanji} @@ -4258,13 +4317,13 @@ are typeset by \verb+\piyo+. Japanese patch for NFSS2 in \LuaTeX-ja is based on \texttt{plfonts.dtx} which plays the same role in \pLaTeXe. We will describe -commands which are not described in Subsection~\ref{ssub-chgfnt}. +commands which are not described in Subsection~\ref{ssec-chgfnt}. % %<*ja> \LuaTeX-jaのNFSS2への日本語パッチは \pLaTeXe で同様の役割を果たす \texttt{plfonts.dtx} をベースに, 和文エンコーディングの管理等をLuaで書きなおしたものである. -ここでは\ref{ssub-chgfnt}節で述べていなかった命令について +ここでは\ref{ssec-chgfnt}節で述べていなかった命令について 記述しておく. % @@ -4502,7 +4561,7 @@ In this case, the default family for font substitution is used for \item[DeclareAlternateKanjiFont\{\}\{\}\{\}\{\}\\ \null\hfill\{\}\{\}\{\}\{\}\{\}] %<*ja> -\ref{ssec-altfont}節の +\ref{ssec-altfont}節の\ \verb+\ltjdeclarealtfont+ と同様に,前半の4引数の和文フォント(基底フォント)のうち中の文字を 第5--第8引数の和文フォントを使って組むように指示する.使用例を図\ref{fig:altkanji}に載せた. @@ -4580,6 +4639,7 @@ by \verb+\input+. \verb+\input+ で読み込み可能である. % \subsection{\texttt{luatexja-fontspec.sty}} +\label{ssec-fontspec2} %<*en> As described in Subsection~\ref{ssec-fontspec}, this optional package provides the counterparts for several commands defined in the @@ -4626,6 +4686,60 @@ will not be embedded in the output PDF file. See Subsection~\ref{ssec-psft}. これを指定することで,PDFに埋め込まれない「名前だけ」のフォントを指定することが できる.\ref{ssec-psft}節を参照. % + + +\begin{figure}[!tb] +\begin{LTXexample}[pos=b] +\jfontspec[ + AltFont={ + {Range="4E00-"67FF, Color=007F00}, + {Range="6800-"9EFF, Color=0000FF}, + {Range="3040-"306F, Font=KozGoPr6N-Regular}, + } +]{KozMinPr6N-Regular} +日本国民は、正当に選挙された国会における代表者を通じて行動し、われらとわれらの子孫のために、 +諸国民との協和による成果と、わが国全土にわたつて自由のもたらす恵沢を確保し、…… +\end{LTXexample} +%\caption{\texttt{AltFont} の使用例} +%\caption{An example of \texttt{AltFont}} +\label{fig:altkanji-fontspec} +\end{figure} + +\item[AltFont]\ + +%<*en> +As \verb+\ltjdeclarealtfont+~(Subsection~\ref{ssec-altfont}) and +\verb+\DeclareAlternateKanjiFont+~(Subsection~\ref{ssec-nfsspat}), +with this key, one can typeset some Japanese characters +by a different font and/or using different features. +The \texttt{AltFont} feature takes a comma-separated list of comma-separated lists, +as the following: +% +%<*ja> +\ref{ssec-altfont}節の \verb+\ltjdeclarealtfont+ や, +\ref{ssec-nfsspat}節の \verb+\DeclareAlternateKanjiFont+ と同様に, +このキーを用いると一部の文字を異なったフォントやfont featureを使って組むことができる. +\texttt{AltFont} に指定する値は,次のように二重のコンマ区切りリストである: +% +\begin{lstlisting}[escapechar=\#] +AltFont = { + ... + { Range=#\LARG range>#, #\LARG features>#}, + { Range=#\LARG range>#, Font=#\LARG font~name>#, #\LARG features># }, + { Range=#\LARG range>#, Font=#\LARG font~name># }, + ... +} +\end{lstlisting} +%<*en> +Each sublist should have the \texttt{Range} key +(sublist which does not contain \texttt{Range} key is simply ignored). +A demonstrartion is shown in Figure~\ref{fig:altkanji-fontspec}. +% +%<*ja> +各部分リストには \texttt{Range} キーが必須である(含まれない部分リストは +単純に無視される). +指定例は図\ref{fig:altkanji-fontspec}に示した. +% \end{list} %<*ja> @@ -4634,7 +4748,6 @@ will not be embedded in the output PDF file. See Subsection~\ref{ssec-psft}. % - \subsection{\texttt{luatexja-otf.sty}} \label{ssec-ltjotf} %<*en> @@ -4879,15 +4992,113 @@ for making the difference obvious. \item[\textsf{adjust}\,=] \verb+\ltjsetparameter+ で指定可能な追加パラメータであり, が\textit{true}なら \verb+\ltjenableadjust+ を, そうでなければ \verb+\ltjdisableadjust+ を実行する. - - \end{list} +% +\subsection{\texttt{luatexja-ruby.sty}} +%<*en> +This addon package provides functionality of ``ruby'' (\emph{furigana}) annotations +using callbacks of \LuaTeX-ja. +There is no detailed manual of \Pkg{luatexja-ruby.sty} in English. +(Japanese manual is another PDF file, \url{luatexja-ruby.pdf}.) +% +%<*ja> +この追加パッケージは,\LuaTeX-jaの機能を利用したルビ(振り仮名)の組版機能を提供する. +前後の文字種に応じた前後への自動進入や, +行頭形・行中形・行末形の自動的な使い分けが特徴である. +ルビ組版に設定可能な項目や注意事項が多いため,本追加パッケージの詳細な説明は +使用例と共に \url{luatexja-ruby.pdf}\ という別ファイルに載せている. +この節では簡単な使用方法のみ述べる. +% +\begin{description} +%<*en> + \item[Group-ruby] +By default, ruby characters (the second argument of \verb+\ruby+) +are attached to base characters (the first argument), as one object. +This type of ruby is called \emph{group-ruby}. +% +%<*ja> + \item[グループルビ] 標準ではグループルビの形で組まれる.第1引数に親文字, +第2引数にルビを記述する. +% +\begin{LTXexample}[width=0.3\textwidth] +東西線\ruby{妙典}{みようでん}駅は……\\ +東西線の\ruby{妙典}{みようでん}駅は……\\ +東西線の\ruby{妙典}{みようでん}という駅……\\ +東西線\ruby{葛西}{かさい}駅は…… +\end{LTXexample} +%<*en> +As the above example, ruby hangover is allowed on the Hiragana before/after +its base characters. +% +% この例のように,標準では前後の平仮名にルビ全角までかかるようになっている. +%<*en> +\item[Mono-ruby] +To attach ruby characters to each base characters (\emph{mono-ruby}), +one should use \verb+\ruby+ multiple times: +% +%<*ja> + \item[モノルビ] 親文字を1文字にするとモノルビとなる. +2文字以上の熟語をモノルビの形で組みたい場合は,面倒でも +その数だけ \verb+\ruby+ を書く必要がある. +% +\begin{LTXexample}[width=0.3\textwidth] +東西線の\ruby{妙}{みよう}\ruby{典}{でん}駅は…… +\end{LTXexample} +%<*en> + \item[Jukugo-ruby] +Vertical bar~\verb+|+ denotes a boundary of \emph{groups}. +% +%<*ja> + \item[熟語ルビ] 引数内の縦棒 \verb+|+ はグループの区切りを表し, +複数グループのルビは熟語ルビとして組まれる. +\cite{x4051}にあるように, +どのグループでも「親文字」が対応するルビ以上の長さの場合は +各グループごとに,そうでないときは全体をまとめて1つのグループルビとして組まれる. +\cite{jlreq}で規定されている組み方とは異なるので注意. % +\begin{LTXexample} +\ruby{妙|典}{みよう|でん}\ +\ruby{葛|西}{か|さい}\ +\ruby{神楽|坂}{かぐら|ざか} +\end{LTXexample} +%<*en> +If there are multiple groups in one \verb+\ruby+ call, +A linebreak between two groups is allowed. +% +% 複数ルビではグループとグループの間で改行が可能である. +\begin{LTXexample}[width=0.3\textwidth] +\vbox{\hsize=6\zw\noindent + \hbox to 2.5\zw{}\ruby{京|急|蒲|田}{けい|きゆう|かま|た} + \hbox to 2.5\zw{}\ruby{京|急|蒲|田}{けい|きゆう|かま|た} + \hbox to 3\zw{}\ruby{京|急|蒲|田}{けい|きゆう|かま|た} +} +\end{LTXexample} +\end{description} + +%<*en> +If the width of ruby characters are longer than that of base characters, +\verb+\ruby+ automatically selects the appropriate form +among the line-head form, the line-middle form, and the line-end form. +% +%<*ja> +また,ルビ文字のほうが親文字よりも長い場合は,自動的に +行頭形・行中形・行末形のいずれか適切なものを選択する. +% +\begin{LTXexample}[width=0.3\textwidth] +\vbox{\hsize=8\zw\noindent +\null\kern3\zw ……を\ruby{承}{うけたまわ}る + \kern1\zw ……を\ruby{承}{うけたまわ}る\\ +\null\kern5\zw ……を\ruby{承}{うけたまわ}る +} +\end{LTXexample} + + + @@ -5028,15 +5239,15 @@ assigned to this attribute: \begin{description} \item[\textit{italic} (1)] %<*en> -Glues from an italic correction - (\verb+\/+). This distinction of origins of glues - (from explicit \verb+\kern+, or from \verb+\/+) - is needed in the insertion process of \Param{\hyperlink{fld:xks}{xkanjiskip}}. +Kerns from italic correction (\verb+\/+), or from kerning information of a Japanese font. +These kerns are ``ignored'' in the insertion process of \textbf{JAglue}, +unlike explicit \verb+\kern+. % %<*ja> -イタリック補正(\verb+\/+)によるグルー.このグルーの由来の区別(\verb+\kern+ か -\hskip\ltjgetparameter{xkanjiskip} -\verb+\/+ か)は\Param{\hyperlink{fld:xks}{xkanjiskip}}の挿入過程において必要になる. +イタリック補正(\verb+\/+)によるカーン, +または \Pkg{luaotfload} によって挿入されたフォントのカーニング情報由来のカーン. +これらのカーンは通常の \verb+\kern+ とは異なり, +\textbf{JAglue}の挿入処理においては透過する. % \item[\textit{packed} (2)] @@ -6131,9 +6342,9 @@ x+y&\text{if\ }\Param{\hyperlink{fld:diffjfm}{diffrentjfm}}=\texttt{both}; 例えば, \begin{verbatim} -\jfont\foo=psft:Ryumin-Light:jfm=ujis -\jfont\bar=psft:GothicBBB-Medium:jfm=ujis -\jfont\baz=psft:GothicBBB-Medium:jfm=ujis;jfmvar=piyo +\jfont\foo=psft:Ryumin-Light:jfm=ujis;-kern +\jfont\bar=psft:GothicBBB-Medium:jfm=ujis;-kern +\jfont\baz=psft:GothicBBB-Medium:jfm=ujis;jfmvar=piyo;-kern \end{verbatim} という3フォントを考え, \[ @@ -6201,6 +6412,7 @@ $a$は禁則処理用に\textit{Nq}と\textit{Np}の間に加えられるべき %\caption{Summary of JFM glues} %\caption{JFM グルーの概要} \label{tab-jfmglue} +%\medskip \begin{center} \small \begin{tabular}{c|cccccc} @@ -6526,7 +6738,7 @@ Consider the following input: 例えば次のような入力を考えよう: % \begin{verbatim*} -\begin{lstlisting}[escapechar=`\#] +\begin{lstlisting}[escapechar=\#] #\ほげ xぴよ# \end{lstlisting} \end{verbatim*} @@ -6557,7 +6769,7 @@ instead of ``\verb+\ほげ+''. しかし,\Pkg{lltjp-listings} が実際にロードされるのは \verb+\begin{document}+\ のところであるので,プリアンブル内ではこれらの追加キーは使用できない. -\texttt{ivsraw}は,ブール値の値をとるキーであり,標準ではfalseである. +\texttt{vsraw}は,ブール値の値をとるキーであり,標準ではfalseである. \begin{itemize} \item trueの場合は,異体字セレクタは「直前の文字に続けて」出力される. もしもIVSサポート(\ref{ssec-ltjotf}節)が有効になっていた場合は, @@ -6589,7 +6801,9 @@ instead of ``\verb+\ほげ+''. }}} \lstset{vscmd=\IVSB} \end{lstlisting} -\end{itemize} +\end{itemize} +既定の出力命令を復活させたい場合は\ \verb+vsraw=\ltjlistingsvsstdcmd+\ +とすれば良い. % %\subsection{Class of Characters} @@ -6890,7 +7104,7 @@ JFM中にある文字クラス$n$の定義の % %<*ja> -\section{IVS対応(未完)} +\section{IVS対応} \verb+luatexja.otf.enable_ivs()+ を実行し,IVS対応を有効にした状態では, \verb+pre_linebreak_filter+ や \verb+hpack_filter+ コールバックには 次の4つが順に実行される状態となっている: @@ -6934,6 +7148,7 @@ OpenTypeフォントでもTrueTypeフォントでもIVS情報が格納されて %%% to_table を使わなくしたことで,メモリ使用量は減った IVS情報をキャッシュに保存することで2回目以降の実行時間を節約している. + \section{複数フォントの「合成」(未完)} \section{\LuaTeX-jaにおけるキャッシュ}