X-Git-Url: http://git.osdn.jp/view?a=blobdiff_plain;f=doc%2Fluatexja.dtx;h=0f95747b7d6aabb22297d9f946bf43c8d4c5a47f;hb=f702bd7ffe06f376115615e94ecd2527aa8cf34c;hp=67f7821ab41ffd49ccbb384e22d0aed5244af2d8;hpb=5b4c33e3ad20e34595a4610dc378cf3c35a98f70;p=luatex-ja%2Fluatexja.git diff --git a/doc/luatexja.dtx b/doc/luatexja.dtx index 67f7821..0f95747 100644 --- a/doc/luatexja.dtx +++ b/doc/luatexja.dtx @@ -16,8 +16,7 @@ \makeatletter %%%%%%%% \directlua{if jit then jit.on() end} - -\usepackage{amsmath,array,tikz,pict2e,multienum,float} +\usepackage{metalogo,amsmath,array,tikz,pict2e,multienum,float} \usepackage{booktabs,multicol,luatexja-ruby} \usepackage[all]{xy} \usepackage{lltjext,alltt} @@ -35,6 +34,8 @@ \setmonojfont{KozGoPr6N-Regular.otf} \setmathfont[Scale=MatchLowercase]{xits-math.otf} \setsansfont[Scale=MatchLowercase,Ligatures=TeX]{Linux Biolinum O} + +\setLaTeXa{\scshape a} %<*ja> \def\emph#1{\textbf{\textgt{#1}}} \def\headfont{\normalfont\bfseries\gtfamily}\normalsize @@ -137,10 +138,11 @@ \DeclareRobustCommand\epTeX{\ensuremath{\varepsilon}-\pTeX} %%%%%%%% other macros -\newlist{cslist}{description}{1} +\newlist{cslist}{description}{2} \setlist[cslist]{% style=nextline,font=\mdseries\ttfamily, before*=\def\<{\char`\<}\def\>{\char`\>}\def\{{\char`\{}\def\}{\char`\}}, + topsep=\medskipamount, % leftmargin=2\zw, % leftmargin=2em, } @@ -172,9 +174,9 @@ width:\hfill\ #2\cr height:\hfill\ #3\cr depth:\hfill\ #4\cr }}}}}\,} -\protected\def\Param#1{\hyperlink{fld:#1}{\textsf{#1}}} % parameter name -\protected\def\DParam#1{\hypertarget{fld:#1}{\textsf{#1}}} % parameter name (definition) -\protected\def\Pkg#1{\underline{\smash{\texttt{#1}}}} % packages/classes +\protected\def\Param#1{\hyperlink{fld:#1}{\underline{\smash{\textsf{#1}}}}} % parameter name +\protected\def\DParam#1{\hypertarget{fld:#1}{\underline{\smash{\textsf{#1}}}}} % parameter name (definition) +\protected\def\Pkg#1{\textsf{#1}} % packages/classes \begin{document} @@ -271,7 +273,7 @@ scripts for appropriate callbacks. が始まったパッケージである. % -%\subsection{Major Changes from \pTeX} +%\subsection{Major changes from \pTeX} %\subsection{\pTeX からの主な変更点} \label{ssec:chgptex} @@ -331,8 +333,8 @@ Note that \pTeX\ adds new two useful units, namely \texttt{zw}~and~\texttt{zh}. As shown above, they are changed by \cs{zw}~and~\cs{zh} respectively, in \LuaTeX-ja. % %<*ja> -特に注意してほしいのは,\pTeX で追加された \texttt{zw} と \texttt{zh} という単位を -\LuaTeX-ja で扱うには,\cs{zw}, \cs{zh} と制御綴の形にしないといけないという点である. +特に注意してほしいのは,\pTeX で追加された \texttt{zw} と \texttt{zh} という単位は +\LuaTeX-ja では使用できず,\cs{zw}, \cs{zh} と制御綴の形にしないといけないという点である. % %<*en> @@ -455,7 +457,7 @@ By default, \LuaTeX-ja uses Japanese fonts to typeset Greek and Cyrillic letters From this version, characters which belongs both ISO~8859-1 and JIS~X~0208, such as \P~and~\S, are now typeset in alphabetic fonts. This means that - without the \cs{fontspec} package, these characters are not typeset correctly. + without the \cs{fontspec} (and~\Pkg{luatexja-fontspec}) package, these characters are not typeset correctly. % %<*ja> \paragraph{ギリシャ文字・キリル文字とISO~8859-1の記号} @@ -471,7 +473,7 @@ From this version, characters which belongs both ISO~8859-1 and JIS~X~0208, また,\P,~\S といったISO~8859-1の上位領域とJIS~X~0208の共通部分の文字は 本バージョンから標準で欧文扱いとなり,\emph{ソース中に直接記述しても - \Pkg{fontspec}パッケージ非読み込みの状態では出力されなくなった}. + \Pkg{fontspec}パッケージ(および\Pkg{luatexja-fontspec}パッケージ)非読み込みの状態では出力されなくなった}. 和文扱いで出力するには \verb+\ltjjachar`§+ のように \cs{ltjjachar} 命令 を使えばよい. % @@ -518,21 +520,21 @@ and \emph{Japanese fonts} for fonts used in \textbf{JAchar}. \textbf{JAchar}の出力に用いられるフォントを\emph{和文フォント}と呼ぶ. % %<*en> -\item A word in a sans-serif font (like \Param{prebreakpenalty}) +\item A word in a sans-serif font with underline (like \Param{prebreakpenalty}) means an internal parameter for Japanese typesetting, and it is used as a key in \cs{ltjsetparameter} command. % %<*ja> -\item サンセリフ体で書かれた語(例:\Param{prebreakpenalty})は日本語組版用の +\item 下線つきローマン体で書かれた語(例:\Param{prebreakpenalty})は日本語組版用の パラメータを表し,これらは \cs{ltjsetparameter} 命令のキーとして 用いられる. % %<*en> -\item A word in typewriter font with underline (like \Pkg{fontspec}) +\item A word in a sens-serif font without underline (like \Pkg{fontspec}) means a package or a class of \LaTeX. % %<*ja> -\item 下線付きタイプライタ体の語(例:\Pkg{fontspec})は\LaTeX の +\item 下線なしサンセリフ体の語(例:\Pkg{fontspec})は\LaTeX の パッケージやクラスを表す. % %<*en> @@ -544,7 +546,7 @@ and \emph{Japanese fonts} for fonts used in \textbf{JAchar}. % \end{itemize} -%\subsection{About the Project} +%\subsection{About the project} %\subsection{プロジェクトについて} %\paragraph{Project Wiki} Project Wiki is under construction. @@ -682,13 +684,13 @@ the forefront of development is not the \texttt{master} branch. \begin{lstlisting} $ git clone git://git.osdn.jp/gitroot/luatex-ja/luatexja.git \end{lstlisting} -\item \texttt{master}ブランチのスナップショット(\texttt{tar.gz}形式)をダウンロードする. +\item \texttt{master} ブランチのスナップショット(\texttt{tar.gz} 形式)をダウンロードする. \begin{flushleft} \url{http://git.osdn.jp/view?p=luatex-ja/luatexja.git;a=snapshot;h=HEAD;sf=tgz}. \end{flushleft} \end{itemize} -\texttt{master}ブランチ(従って,CTAN内のアーカイブも)はたまにしか更新されないことに注意. -主な開発は\texttt{master}の外で行われ,比較的まとまってきたらそれを\texttt{master}に +\texttt{master} ブランチ(従って,CTAN内のアーカイブも)はたまにしか更新されないことに注意. +主な開発は\texttt{master}の外で行われ,比較的まとまってきたらそれを \texttt{master} に 反映させることにしている. % @@ -698,8 +700,8 @@ But only the contents in \texttt{src/} are needed to work \LuaTeX-ja. % %<*ja> \item 「Gitリポジトリをクローン」以外の方法でアーカイブを取得したならば,それを展開する. - \texttt{src/}をはじめとしたいくつかのディレクトリができるが, - 動作には\texttt{src/}以下の内容だけで十分. + \texttt{src/} をはじめとしたいくつかのディレクトリができるが, + 動作には \texttt{src/} 以下の内容だけで十分. % %<*en> @@ -739,7 +741,7 @@ $ luatex ltj-kinsoku_make.tex instead copying is also good. % %<*ja> -\item \texttt{src}の中身を自分の\texttt{TEXMF}ツリーにコピーする. +\item \texttt{src} の中身を自分の \texttt{TEXMF} ツリーにコピーする. 場所の例としては,例えば \begin{quote} \texttt{TEXMF/tex/luatex/luatexja/} @@ -820,7 +822,7 @@ and finally delete the temporary directory. \href{https://osdn.jp/projects/luatex-ja/wiki/FrontPage%28en%29}{% プロジェクトWiki英語版トップページ}中に書かれているバッチファイルを 実行して欲しい.このバッチファイルは,作業用ディレクトリにCMap達を -コピーし,その中で\LuaTeX-ja の初回起動を行い,作業用ディレクトリを消す作業をしている. +コピーし,その中で\LuaTeX-jaの初回起動を行い,作業用ディレクトリを消す作業をしている. % \end{itemize} @@ -1037,7 +1039,7 @@ Okumura), namely, \Pkg{ltjclasses}\footnote{% しかしながら,上記の設定は日本語の文書にとって十分とは言えない. 日本語文書を組版するためには,\texttt{article.cls}, \texttt{book.cls}といった 欧文用のクラスファイルではなく,和文用のクラスファイルを用いた方がよい. -現時点では,\Pkg{jclasses}(\pLaTeX の標準クラス)と\Pkg{jsclasses} +現時点では,\Pkg{jclasses}(\pLaTeX の標準クラス)と\Pkg{jsclasses}% (奥村晴彦氏による「\pLaTeXe 新ドキュメントクラス」)に対応するものとして, \Pkg{ltjclasses}\footnote{% 横組用は \texttt{ltjarticle.cls},~\texttt{ltjbook.cls}, \texttt{ltjreport.cls} であり, @@ -1270,12 +1272,12 @@ this chapter. For the method, please see Subsection~\ref{ssec-math}. 記述しない.この方法については\ref{ssec-math}節を参照のこと. % - -\subsection{fontspec} +%\subsection{\Pkg{luatexja-fontspec} package} +%\subsection{\Pkg{luatexja-fontspec}パッケージ} \label{ssec-fontspec} %<*en> -To coexist with the \Pkg{fontspec} package, it is needed to load -the \Pkg{luatexja-fontspec} package in the preamble, as follows: +To use the functionality of the \Pkg{fontspec} package to Japanese fonts, +it is needed to load the \Pkg{luatexja-fontspec} package in the preamble, as follows: \begin{quote} \ttfamily \textbackslash usepackage[]\{luatexja-fontspec\} \end{quote} @@ -1284,13 +1286,18 @@ automatically loads \Pkg{luatexja} and \Pkg{fontspec} packages, if needed. % %<*ja> -\Pkg{fontspec}パッケージと同様の機能を和文フォントに対しても用いる場合, -\Pkg{luatexja-fontspec}パッケージを読み込めばよい. +\Pkg{fontspec}パッケージは,\LuaTeX・\XeTeX において +TrueType・OpenTypeフォントを容易に扱うためのパッケージであり,このパッケージを読み込んでお +けばUnicodeによる各種記号の直接入力もできるようになる. +\LuaTeX-jaでは和文と欧文を区別しているため,\Pkg{fontspec}パッケージの機能は欧文フォントに +対してのみ有効なものとなっている. + +\LuaTeX-ja上において,\Pkg{fontspec}パッケージと同様の機能を和文フォントに対しても用いる場 +合は\Pkg{luatexja-fontspec}パッケージを読み込む: \begin{quote} \ttfamily \textbackslash usepackage[]\{luatexja-fontspec\} \end{quote} -このパッケージ -は必要ならば自動で\Pkg{luatexja}パッケージと\Pkg{fontspec}パッケージを読み込む. +このパッケージは自動で\Pkg{luatexja}パッケージと\Pkg{fontspec}パッケージを読み込む. % %<*en> @@ -1342,19 +1349,60 @@ alphabetic fonts \end{tabular} \end{center} % -%<*en> -The package option of \Pkg{luatexja-fontspec} are the followings: + +% The package option of \Pkg{luatexja-fontspec} are the followings: +% \Pkg{luatexja-fontspec} パッケージのオプションは以下の通りである: \begin{cslist} \item[match] +%<*en> If this option is specified, usual family-changing commands such as \cs{rmfamily},~\cs{textrm}, \cs{sffamily},~\dots\ also change Japanese font family. Note that \emph{\cs{setmonojfont} is defined if and only if this \texttt{\textup{match}} option is specified}. +% + +%<*ja> +このオプションが指定されると,「\pLaTeXe 新ドキュメントクラス」のように\ +\cs{rmfamily}, \verb+\textrm{...}+, \cs{sffamily} 等が +欧文フォントだけでなく和文フォントも変更するようになる. + +\emph{なお,\cs{setmonojfont} はこの \texttt{match} オプションが +指定された時のみ定義される.}この命令は標準の「タイプライタ体に対応する和文フォント」を指定する. +% \item[pass=] -Specify options which will be passed to the \Pkg{fontspec} package. +% \emph{(Obsoleted)}\ Specify options which will be passed to the \Pkg{fontspec} package. +% \Pkg{fontspec} パッケージに渡すオプション を指定する.本オプションは時代遅れである. + +\item[scale=] +%<*en> +Override the ratio of the font size of Japanese fonts to that of alphabetic fonts. +The default value is calculated automatically (for~example, about~0.924865 when + the \Pkg{ltjsarticle} class is used). +% +%<*ja> +欧文に対する和文の比率は,標準では \Pkg{luatexja-fontspec}読み込み時の和欧文比率から +自動計算される(例えば,\Pkg{ltjsarticle}クラス使用時には和文は欧文の約0.924865倍となる)が, +それを手動で上書きするときに使用する. +% \end{cslist} + +%<*en> +All other options listed above are simply passed to the \Pkg{fontspec} package. +This means that two lines below are equivalent, for example. +% +%<*ja> +上記にないオプションは全て \Pkg{fontspec} パッケージに渡される. +例えば,下の2行は同じ意味になる: +% +\begin{lstlisting} +\usepackage[no-math]{fontspec}\usepackage{luatexja-fontspec} +\usepackage[no-math]{luatexja-fontspec} +\end{lstlisting} + + +%<*en> The reason that \cs{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 @@ -1365,19 +1413,6 @@ This is because of the compatibility with previous versions of \LuaTeX-ja Below is an example of \cs{jfontspec}. % %<*ja> -\Pkg{luatexja-fontspec} パッケージのオプションは以下の通りである: -\begin{cslist} - \item[match] -このオプションが指定されると,「\pLaTeXe 新ドキュメントクラス」のように\ -\cs{rmfamily}, \verb+\textrm{...}+, \cs{sffamily} 等が -欧文フォントだけでなく和文フォントも変更するようになる. - -\emph{なお,\cs{setmonojfont} はこの \texttt{match} オプションが -指定された時のみ定義される.}この命令は標準の「タイプライタ体に対応する和文フォント」を指定する. - - \item[pass=] -\Pkg{fontspec} パッケージに渡すオプション を指定する. -\end{cslist} 標準で \cs{setmonojfont} コマンドが定義されないのは, 和文フォントではほぼ全ての和文文字のグリフが等幅であるのが伝統的であったことによる. また,これらの和文用のコマンドではフォント内のペアカーニング情報は標準では使用されない, @@ -1394,21 +1429,39 @@ JIS~X~0213:2004→辻\par JIS~X~0208:1990→辻 \end{LTXexample} -%\subsection{Presets} -%\subsection{プリセット設定} +%\subsection{Presets of Japanese fonts} +%\subsection{和文フォントのプリセット設定} \label{ssec-preset} %<*en> -To use standard Japanese font settings easily, one can load the \Pkg{luatexja-preset} -package with several options. This package provides functions in a part of +One can load the \Pkg{luatexja-preset} +package to use several ``presets'' of Japanese fonts. +This package provides functions in a part of \Pkg{japanese-otf} package and a part of \Pkg{PXchfon} package by Takayuki Yato. + +One can specified other options other than listed in this subsection. +These 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 eqivalent to lines 1--3. % %<*ja> よく使われている和文フォント設定を一行で指定できるようにしたのが \Pkg{luatexja-preset}パッケージである.このパッケージは, \Pkg{otf}パッケージの一部機能と八登崇之氏による\Pkg{PXchfon}パッケージの一部機能とを 合わせたような格好をしている. + +オプションとして,本節にないものも指定することができるが,それらは +\Pkg{luatexja-fontspec}パッケージに渡される\footnote{\texttt{nfssonly} オプションが +指定されていた場合は,\Pkg{luatexja-fontspec}パッケージは読み込まれないので単純に無視され +る.}.例えば,下の1--3行目は5行目のように一行にまとめることができる. % +\begin{lstlisting} +\usepackage[no-math]{fontspec} +\usepackage[match]{luatexja-fontspec} +\usepackage[kozuka-pr6n]{luatexja-preset} +%%-------- +\usepackage[no-math,match,kozuka-pr6n]{luatexja-preset} +\end{lstlisting} %\paragraph{General options} %\paragraph{一般的なオプション} @@ -1421,7 +1474,7 @@ the \Pkg{luatexja-fontspec} package. This means that the \Pkg{fontspec} package automatically loaded by this package. \emph{This option is enabled by default.} -If you need to pass some options to \Pkg{fontspec}, load \Pkg{fontspec} manually +If you need to pass some options to \Pkg{fontspec}, you can load \Pkg{fontspec} manually before \Pkg{luatexja-preset}: % %<*ja> @@ -1446,7 +1499,9 @@ With this option, selecting Japanese fonts won't be performed using the function \cs{addjfontfeatures} etc.). This option is ignored when \Pkg{luatexja-fontspec} package is loaded. -Note that the \Pkg{fontspec} can coexist with the option as the following: +When this option is specified, \Pkg{fontspec}~and~\Pkg{luatexja-fontspec} are +\emph{not} loaded by default. Nevertheless, +the package\Pkg{fontspec} can coexist with the option, as the following: \begin{lstlisting} \usepackage{fontspec} \usepackage[hiragino-pron,nfssonly]{luatexja-preset} @@ -1459,12 +1514,15 @@ In this case, one can use \cs{setmainfont} etc.\ to select \emph{alphabetic} fon ションが指定された場合には \texttt{ltjpmg}(丸ゴシック)という 3つの和文フォントファミリを定義し,これらを用いる. -欧文フォントの指定で\Pkg{fontspec}パッケージを読み込んでいる場合でも +本オプション指定時には\Pkg{fontspec}・\Pkg{luatexja-fontspec}パッケージは +自動では読み込まれない,しかし, \begin{lstlisting} \usepackage{fontspec} \usepackage[hiragino-pron,nfssonly]{luatexja-preset} \end{lstlisting} -のようにこのオプションを指定することは可能である.一方, +のようにすれば,このオプションを指定すれば +欧文フォントを\Pkg{fontspec}パッケージの機能を使って指定することができる. +一方, パッケージ読み込み時に既に\Pkg{luatexja-fontspec}パッケージが読み込まれて いる場合は \texttt{nfssonly} オプションは無視される. % @@ -2029,6 +2087,15 @@ and positive integer $+n$ means that ``\dots\ is a \textbf{JAchar}''. % %<*en> +Note that characters \texttt{U+0000}--\texttt{U+007F} are always treated as an +\textbf{ALchar} (this cannot be customized). +% +%<*ja> +なお,\texttt{U+0000}--\texttt{U+007F} は常に\textbf{ALchar}として扱われる(利用者が変更す +ることは出来ない). +% + +%<*en> \paragraph{Default character ranges} \LuaTeX-ja predefines eight character ranges for convenience. They are determined from the following data: @@ -2378,7 +2445,7 @@ JFMは「望ましい\Param{kanjiskip}の値」や \cs{ltjgetparameter} によって取得することはできないので注意が必要である. % -%\subsection{Insertion Setting of \Param{xkanjiskip}} +%\subsection{Insertion setting of \Param{xkanjiskip}} %\subsection{\Param{xkanjiskip} の挿入設定} %<*en> @@ -2619,7 +2686,7 @@ However, the penalty inserted after it is 10 which is the \Param{postbreakpenalt ``ア'', not 20. % %<*ja> -\subsection{禁則処理関連パラメータとfont feature} +\subsection{禁則処理関連パラメータとOpenTypeのfont feature} 禁則処理や \Param{kanjiskip}, \Param{xkanjiskip} の挿入に関連したパラメータのうち \begin{quote} \Param{jaxspmode},~\Param{alxspmode}, \Param{prebreakpenalty}, @@ -2884,7 +2951,7 @@ for \LuaTeX, \emph{to match the \cs{catcode} setting with that of \XeTeX.} \end{table} %<*en> -\subsection{Non-kanji Characters in a Control Word} +\subsection{Non-kanji characters in a control word} Because the engine differ, so non-kanji JIS~X~0208 characters which can be used in a control word differ in \pTeX, in \upTeX,~and~in \LuaTeX-ja. Table~\ref{table-kcat-diff} shows the difference. @@ -3769,8 +3836,8 @@ OpenType font featureと見かけ上同じような形式で指定できるも \paragraph{\texttt{extend} and \texttt{slant}} The following setting can be specified as OpenType font features: \begin{cslist}[style=standard] -\item[\cs{extend=}] expand the font horizontally by . -\item[\cs{slant=}] slant the font. +\item[\texttt{extend=}] expand the font horizontally by . +\item[\texttt{slant=}] slant the font. \end{cslist} Note that \LuaTeX-ja doesn't adjust JFMs by these \texttt{extend} and \texttt{slant} settings; you have to write new JFMs on purpose. @@ -3785,6 +3852,36 @@ letter-spacing and the width of italic correction are not correct: \S あいう\/ABC \end{LTXexample} +%<*ja> +\paragraph{\texttt{ltjksp} 指定} +\label{pg:ltjksp} +\LuaTeX-ja標準では, +JFM中における \texttt{kanjiskip\_natural}, \texttt{kanjiskip\_stretch},\ +\texttt{kanjiskip\_shrink}キー(\pageref{pg:ksp_nat}ページ)の使用によって, +「JFM由来のグルーの他に,\Param{kanjiskip}の自然長/伸び量/縮み量の一部が +同じ場所に挿入される」という状況が起こりうる. +この機能を無効化し,20150922.0版以前と同じような組版を得るためには +他のOpenType機能と同じように\ \texttt{-ltjksp}\ 指定を行えば良い. +\begin{LTXexample}[width=16\zw] +\leavevmode +\ltjsetparameter{kanjiskip=0pt plus 3\zw} +\vrule\hbox to 15\zw{あ「い」う,えお}\vrule + +\jfont\G=file:KozMinPr6N-Regular.otf% + :jfm=ujis;-ltjksp at 9.2487pt +\G\leavevmode% +\vrule\hbox to 15\zw{あ「い」う,えお}\vrule +\end{LTXexample} +なお, +\begin{lstlisting} + \jfont\G=file:KozMinPr6N-Regular.otf:jfm=ujis;-ltjksp;+ltjksp at 9.2487pt +\end{lstlisting} +のように \texttt{+ltjksp} 指定を行った場合は,\texttt{kanjiskip\_natural} など +3キーは再び有効化される.\texttt{-ltjksp}, \texttt{+ltjksp} を複数回指定した場合は, +最後に指定したものが有効となる. +% + + %\subsection{\cs{tfont}} %\subsection{\cs{tfont} 命令} @@ -3970,7 +4067,7 @@ Please contact the LuaTeX-ja project team. ? \end{lstlisting} -%\subsection{Structure of a JFM File} +%\subsection{Structure of a JFM file} %\subsection{JFMファイルの構造} \label{ssec-jfm-str} %A JFM file is a Lua script which has only one function call: @@ -4114,20 +4211,48 @@ This field is a list of characters which are in this character %(必須) %<*en> +\begin{table}[t] + \centering +\begin{tabular}{llr} +\toprule +Direction of JFM&\textbf{\texttt{'yoko'} (horizontal)}&\multicolumn{1}{l}{\textbf{\texttt{'tate'} (vertical)}}\\ +\midrule +\texttt{width} field&the width of the ``real'' glyph&1.0~(full-width)\\ +\texttt{height} field&the height of the ``real'' glyph&0.5~(half-width)\\ +\texttt{depth} field&the depth of the ``real'' glyph&0.5~(half-width)\\ +\midrule +\texttt{italic} field&\multicolumn{2}{c}{0.0}\\ +\bottomrule +\end{tabular} +\caption{Default values of \texttt{width} field and other fields} +\label{tab-wid} +\end{table} Specify the 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: \texttt{width} field can be \texttt{'prop'}. -This means that width of a character becomes that of its ``real'' glyph. +as values of these fields. The default values are shown in Table~\ref{tab-wid}. % %<*ja> +\begin{table}[t] + \centering +\begin{tabular}{llr} +\toprule +JFM書字方向&\emph{\texttt{'yoko'}(横組)}&\multicolumn{1}{l}{\emph{\texttt{'tate'}(縦組)}}\\ +\midrule +\texttt{width}&「実際のグリフ」の幅&1.0(全角)\\ +\texttt{height}&「実際のグリフ」の高さ&0.5(二分)\\ +\texttt{depth}&「実際のグリフ」の深さ&0.5(二分)\\ +\midrule +\texttt{italic}&\multicolumn{2}{c}{0.0}\\ +\bottomrule +\end{tabular} +\caption{\texttt{width} フィールド等の標準値} +\label{tab-wid} +\end{table} 文字クラス$i$に属する文字の幅,高さ,深さ,イタリック補正の量を指定する. 文字クラス$i$に属する全ての文字は,その幅,高さ,深さがこのフィールドで指定した -値であるものとして扱われる. - -例外として,\emph{\texttt{width} フィールドには数値以外に \texttt{'prop'} が指定可能である}. -この場合,文字の幅はその「実際の」グリフの幅となる.OpenTypeの \texttt{prop} featureと併用 +値であるものとして扱われる.省略時や,数でない値を指定した時には表\nobreak\ref{tab-wid}に + 示されている値を用いる.例えば,横組用JFMで \texttt{width} フィールドには数値以外の値を指 + 定した場合,文字の幅はその「実際の」グリフの幅となる.OpenTypeの \texttt{prop} featureと併用 すれば,これによってプロポーショナル組を行うことができる. % @@ -4351,62 +4476,122 @@ Furthermore, the glyph is shifted according to values of fields \label{fig-pos-tate} \end{figure} -\item[kern={\{[$j$]=, [$j'$]=\{, []\}, ...\}}] - -\item[glue={\{[$j$]=\{, , , [], []\}, ...\}}]\ +\item[kern={\{[$j$]=, [$j'$]=\{, [ratio=]\}, ...\}}] +\nopagebreak +\item[glue={\{[$j$]=\{, , , [ratio=, ...]\}, ...\}}]\leavevmode %<*ja> -文字クラス$i$の文字と$j$の文字の間に挿入されるkernやglueの量を指定する. - - は \Pkg{luatexja-adjust} による優先順位付き - 行長調整(\ref{ssec-adj}節)が有効なときのみ意味を持つ. -このフィールドは省略可能であり,行調整処理におけるこのglueの優先 - 度を$-2$から$+2$の間の整数で指定する.大きい値ほど「伸びやすく,縮みやすい」 - ことを意味する.省略時の値 - は0であり,範囲外の値が指定されたときの動作は未定義である. +文字クラス$i$の文字と$j$の文字の間に挿入されるカーンやグルーの量を指定する. -も省略可能フィールドであり,$-1$から$+1$の実数値をとる.省略時の値は0である. -\begin{itemize} -\item $-1$はこのグルーが「前の文字」由来であることを示す. -\item $+1$はこのグルーが「後の文字」由来であることを示す. -\item それ以外の値は,「前の文字」由来のグルーと「後の文字」由来の -グルーが混合されていることを示す. -\end{itemize} -なお,このフィールドの値は\Param{differentjfm}の値が +は,グルーの自然長のうちどれだけの割合が「後の文字」由来かを示す量で, +$0$から$+1$の実数値をとる.省略時の値は$0.5$である. +このフィールドの値は\Param{differentjfm}の値が \texttt{pleft},~\texttt{pright},~\texttt{paverage}の値のときのみ実際に用いられる. 例えば,\cite{x4051}では,句点と中点の間には, 句点由来の二分空きと中点由来の四分空きが挿入されるが,この場合には \begin{itemize} \item には$0.5+0.25=0.75$を指定する. -\item には次の値を指定する. -\[ - -1\cdot \frac{0.5}{0.5+0.25} + 1 \cdot \frac{0.25}{0.5+0.25} = -\frac13 -\] +\item には$0.25/(0.5+0.25)=1/3$を指定する. \end{itemize} % %<*en> \ -Specifies the width of kern or glue which will be inserted +Specifies the amount of kern or glue which will be inserted between characters in character class~$i$ and those in character class~$j$. - is an integer in $[-2,2]$ (treated as 0 if omitted), and this is -used only in line adjustment with priority by \Pkg{luatexja-adjust} -(see Subsection~\ref{ssec-adj}). Higher value means the glue is easy to shretch, -and is also easy to shrink. - - is also an optional value between $-1$ and 1. For example, + specifies how much the glue is originated in the ``right'' character. +It is a real number between 0 and 1, and treated as 0.5 if omitted. For example, The width of a glue between an ideographic full stop ``。'' and a fullwidth middle dot ``・'' is three-fourth of fullwidth, namely halfwidth from the ideographic full stop, and quarter-width from the fullwidth middle dot. In this case, -we specify to -\[ - -1\cdot \frac{0.5}{0.5+0.25} + 1 \cdot \frac{0.25}{0.5+0.25} = -\frac13. -\] +we specify to $0.25/(0.5+0.25)=1/3$. % +%<*ja> +グルーの指定においては,上記に加えて各 \texttt{[$j$]} の各サブテーブル内に +次のキーを指定できる, +\begin{cslist}[style=standard] +\item[priority=] + \Pkg{luatexja-adjust} による優先順位付き + 行長調整(\ref{ssec-adj}節)の際に使われる値であり, +行調整処理におけるこのglueの優先 + 度を$-2$から$+2$の間の整数で指定する.大きい値ほど「伸びやすく,縮みやすい」 + ことを意味する.省略時の値 + は0であり,範囲外の値が指定されたときの動作は未定義である. +\item[kanjiskip\_natural=\textrm{, }% + kanjiskip\_stretch=\textrm{, }kanjiskip\_shrink=]\leavevmode + \label{pg:ksp_nat} + +JFMによって本来挿入されるグルーの他に +\Param{kanjiskip}分の空白を自然長(\texttt{kanjiskip\_natural}),伸び量(\texttt{kanjiskip\_stretch}), +縮み量(\texttt{kanjiskip\_shrink})ごとに挿入する\footnote{本来\Param{xkanjiskip}が挿入される場所においては + \Param{xkanjiskip}分の空白を自然長・伸び量・縮み量ごとに.追加できる.}% +ための指定である.いずれも省略された場合のデフォルト値は0(追加しない)である. + +例えば,\LuaTeX-jaの横組標準JFMの \texttt{jfm-ujis.lua} では, +\begin{itemize} + \item 通常の文字「あ」と開き括弧類の間に入るグルーは,自然長・縮み量半角,伸び量0のグルー +となっているが,さらに\Param{kanjiskip}の伸び量に \texttt{kanjiskip\_stretch}(ここでは1)を掛け + た分だけ伸びることが許される. + \item 同様に,閉じ括弧類(全角コンマ「,」も含む)と通常の文字「う」「え」の間にも +自然長・縮み量半角,伸び量0のグルー +となっているが,さらに\Param{kanjiskip}の伸び量に \texttt{kanjiskip\_stretch}(ここでは1)を掛け + た分だけ伸びることが許される. +\end{itemize} +となっている.従って,以下のような組版結果を得る. + +\medskip +\begin{LTXexample}[width=16\zw] +\leavevmode +\ltjsetparameter{kanjiskip=0pt plus 3\zw} +\vrule\hbox to 15\zw{あ「い」う,えお}\vrule +\end{LTXexample} + +\end{cslist} +% +%<*en> +In case of glue, one can specify following additional keys in each \texttt{[$j$]} + subtable: +\begin{cslist}[style=standard] +\item[priority=] +An integer in $[-2,2]$ (treated as 0 if omitted), and this is +used only in line adjustment with priority by \Pkg{luatexja-adjust} +(see Subsection~\ref{ssec-adj}). Higher value means the glue is easy to stretch, +and is also easy to shrink. +\item[kanjiskip\_natural=\textrm{, }% + kanjiskip\_stretch=\textrm{, }kanjiskip\_shrink=]\leavevmode + +These keys specifies the amount of the natural width of \Param{kanjiskip} +(the stretch/shrink part, respectively) which will be inserted +in addition to the original JFM glue. Default values of them are all 0. + +As an example, in \texttt{jfm-ujis.lua}, the standard JFM in horizontal writing, we have +\begin{itemize} + \item Between an ordinal letter ``あ'' and an ideographic opening bracket, we have +a glue whose natural part and shrink part are both half-width, while its stretch part is + zero. However, this glue also can be stretched + as much as the stretch part of \Param{kanjiskip} times the value of + \texttt{kanjiskip\_stretch} key (1 in this case). + \item Between an ideographic closeing brackets (the ideographic comma ``,'' + is included) and an ordinal letter, we have the same glue. + Again, this glue also can be stretched + as much as the stretch part of \Param{kanjiskip} times the value of + \texttt{kanjiskip\_stretch} key (1 in this case). +\end{itemize} +Hence we have the following result: + +\medskip +\begin{LTXexample}[width=16\zw] +\leavevmode +\ltjsetparameter{kanjiskip=0pt plus 3\zw} +\vrule\hbox to 15\zw{あ「い」う,えお}\vrule +\end{LTXexample} + +\end{cslist} +% \item[end\_stretch=, end\_shrink=] %<*ja> @@ -4602,7 +4787,7 @@ JFM側で一部の対処ができることにより,\Pkg{jsclasses}のよう % -%\subsection{Math Font Family} +%\subsection{Math font family} %\subsection{数式フォントファミリ} \label{ssec-math} @@ -4894,7 +5079,7 @@ This callback is called when \LuaTeX-ja is trying to encapsule a その\textit{glyph\_node}をカプセル化しようとする際に呼び出される. % \begin{lstlisting}[numbers=left] -function ( shift_info,
jfont_info, char_class) +function (
shift_info,
jfont_info,
char_type) return
new_shift_info end \end{lstlisting} @@ -4933,7 +5118,7 @@ Then, the position of glyphs is shifted up by (和文OpenTypeフォントの標準値) \item 実フォント側の数値:$(\hbox{高さ})=28y$, $(\hbox{深さ})=5y$(和文TrueTypeフォントの標準値) \end{itemize} -となっていたとする.すると,実際の文字の出力位置は,以下の量だけ上にぜらされることとなる: +となっていたとする.すると,実際の文字の出力位置は,以下の量だけ上にずらされることとなる: % \[ \frac{88x}{88x+12x} (28y+5y) - 28y = \frac{26}{25}y= 1.04y. @@ -5546,7 +5731,7 @@ The correct way is using a temporary register. %\section{Other Commands for plain \TeX\ and \LaTeXe} %\section{plainでも\LaTeX でも利用可能なその他の命令} -%\subsection{Commands for Compatibility with \pTeX} +%\subsection{Commands for compatibility with \pTeX} %\subsection{\pTeX 互換用命令} %<*en> @@ -5722,6 +5907,28 @@ are typeset by \cs{piyo}. マクロの都合による. % +%<*ja> +\subsection{\cs{ltjalchar} と \cs{ltjjachar}} +文字コードが$\text{}~(\geq 128=\mathtt{0x80})$の文字を +\ \cs{char} プリミティブを使い \cs{char} として出力させると, +その文字の属する文字範囲(\ref{ssec-setrange}節参照)によって +\textbf{ALchar}か\textbf{JAchar}か,つまり欧文フォントで出力されるか和文フォントで出力され +るかが決まる. + +文字範囲の設定を無視し,文字コードが$\text{}~(\geq 128=\mathtt{0x80})$の文字を強制的に +\textbf{ALchar}, \textbf{JAchar}で出力する命令がそれぞれ +\ \cs{ltjalchar},~\cs{ltjjachar} である.使用方法は \cs{char} と同じく +\ \cs{ltjalchar}, \cs{ltjjachar}とすればよい. +が127以下の場合は,\cs{ltjjachar} であっても\textbf{ALchar}として出力されること +に注意. + +以下は\ref{ssec-setrange}節に載せた例に,\cs{char} の動作を追加したものである. +\begin{LTXexample}[width=0.25\textwidth] +\gtfamily\large % default, ALchar, JAchar +¶, \char`¶, \ltjalchar`¶, \ltjjachar`¶\\ % default: ALchar +α, \char`α, \ltjalchar`α, \ltjjachar`α % default: JAchar +\end{LTXexample} +% %\section{Commands for \LaTeXe} @@ -5995,8 +6202,8 @@ Avant Garde (OT1/pag/m/n) に変わっていることがわかる. \userelfont\selectfont あいうabc \end{LTXexample} -%\subsection{\cs{fontfamily}} -%\subsection{\cs{fontfamily}} +%\subsection{Detail of \cs{fontfamily} command} +%\subsection{\cs{fontfamily}コマンドの詳細} \label{ssec-fontfamilycmd} %<*en> In this subsection, we describe when \cs{fontfamily} changes current @@ -6162,20 +6369,20 @@ to use the default family for font substitution. %<*en> -\section{Addons} +\section{Addon packages} \LuaTeX-ja has several addon packages. These addons are written as \LaTeX\ packages, but \Pkg{luatexja-otf} and~\Pkg{luatexja-adjust} can be loaded in plain \LuaTeX\ by \cs{input}. % %<*ja> -\section{拡張} +\section{拡張パッケージ} \LuaTeX-jaには(動作には必須ではないが)自由に読み込める拡張が付属している. これらは\LaTeX のパッケージとして制作しているが, \Pkg{luatexja-otf}と\Pkg{luatexja-adjust}についてはplain \LuaTeX でも\ \cs{input} で読み込み可能である. % -\subsection{\texttt{luatexja-fontspec.sty}} +\subsection{\Pkg{luatexja-fontspec}} \label{ssec-fontspec2} %<*en> As described in Subsection~\ref{ssec-fontspec}, this optional package @@ -6189,8 +6396,8 @@ the commands of Japanese version: \ref{ssec-fontspec}節で述べたように,この追加パッケージは\Pkg{fontspec}% パッケージで定義されているコマンドに対応する和文フォント用のコマンドを提供する. -\Pkg{fontspec}パッケージで指定可能な各種font featureに加えて,和文版のコマンドには -以下の``font feature''を指定することができる: +\Pkg{fontspec}パッケージで指定可能な各種OpenType機能に加えて,和文版のコマンドには +以下の「フォント機能」を指定することができる: % @@ -6246,6 +6453,14 @@ will not be embedded in the output PDF file. See Subsection~\ref{ssec-psft}. \label{fig:yokotate-fontspec} \end{figure} +\item[Kanjiskip=] +%<*ja> +\pageref{pg:ltjksp}ページで説明した \verb+\jfont+ 中での \texttt{ltjksp} 指定と +同一の効力を持ち, +JFM中における \texttt{kanjiskip\_natural}, \texttt{kanjiskip\_stretch},\ +\texttt{kanjiskip\_shrink}キー(\pageref{pg:ksp_nat}ページ)の有効/無効を切り替える. +標準値は \texttt{true} である. +% \item[TateFeatures=\{\}\textrm{, }TateFont=] %<*en> @@ -6256,7 +6471,7 @@ Similarly, the \texttt{TateFont} key specifies the Japanese font which will be u A demonstrarion is shown in Figure~\ref{fig:yokotate-fontspec}. % %<*ja> -縦組において使用されるフォントや,縦組においてのみ適用されるfeature達を +縦組において使用されるフォントや,縦組においてのみ適用されるフォント機能達を 指定する.使用例は図\ref{fig:yokotate-fontspec}参照. % @@ -6267,7 +6482,7 @@ horizontal writing,. A demonstrarion is shown in Figure~\ref{fig:yokotate-fontspec}. % %<*ja> -同様に,横組においてのみ適用されるfeature達を +同様に,横組においてのみ適用されるフォント機能達を 指定する.使用例は図\ref{fig:yokotate-fontspec}参照. % @@ -6302,7 +6517,7 @@ as the following: %<*ja> \ref{ssec-altfont}節の \cs{ltjdeclarealtfont} や, \ref{ssec-nfsspat}節の \cs{DeclareAlternateKanjiFont} と同様に, -このキーを用いると一部の文字を異なったフォントやfont featureを使って組むことができる. +このキーを用いると一部の文字を異なったフォントや機能たちを使って組むことができる. \texttt{AltFont} キーに指定する値は,次のように二重のコンマ区切りリストである: % \begin{lstlisting}[escapechar=\#] @@ -6392,13 +6607,14 @@ BoldFeatures = { また,図\ref{fig:yokotate-fontspec}後半部では6行目の色の指定が効かず, 2行目で指定した\ \texttt{YokoFeatures},~\texttt{TateFeatures}\ による色の指定が有効になっ -たままである.これは\emph{\ \texttt{YokoFeatures},~\texttt{TateFeatures}\ によるfeature指定は -組方向に依存しないfeature指定より後に解釈される}からである. +たままである.これは\emph{\ \texttt{YokoFeatures},~\texttt{TateFeatures}\ による +OpenType機能指定は +組方向に依存しないOpenType機能の指定より後に解釈される}からである. % -\subsection{\texttt{luatexja-otf.sty}} +\subsection{\Pkg{luatexja-otf}} \label{ssec-ltjotf} %<*en> This optional package supports typesetting characters in @@ -6471,7 +6687,7 @@ ordinary characters in the following points: is not performed to these characters. % %<*ja> -\item OpenType feature(例えばグリフ置換やカーニング)をサポートするための +\item OpenType機能(例えばグリフ置換やカーニング)をサポートするための \Pkg{luaotfload}パッケージのコードはこれらの文字には働かない. % \end{itemize} @@ -6548,7 +6764,7 @@ For example, only ``葛'' in ``葛西'' is changed by font features \texttt{jp78}~or~\texttt{jp90}, which does not followed by any variation selector. % %<*ja> -また,IVSによる字形指定は,font featureによるそれに優先されることとした. +また,IVSによる字形指定は,OpenType機能によるそれに優先されることとした. 下の例において,\texttt{jp78}, \texttt{jp90} 指定で字形が変化した文字は 異体字セレクタが続いていない「葛西」中の「葛」のみである. % @@ -6573,7 +6789,7 @@ Lua・\TeX コードが参考になるだろう. % -\subsection{\texttt{luatexja-adjust.sty}} +\subsection{\Pkg{luatexja-adjust}} \label{ssec-adj} \begin{figure}[t] \def\sq{% @@ -6653,7 +6869,7 @@ for making the difference obvious. \end{cslist} % -\subsection{\texttt{luatexja-ruby.sty}} +\subsection{\Pkg{luatexja-ruby}} %<*en> This addon package provides functionality of ``ruby'' (\emph{furigana}) annotations using callbacks of \LuaTeX-ja. @@ -6757,7 +6973,7 @@ among the line-head form, the line-middle form, and the line-end form. %<*ja> -\subsection{\texttt{lltjext.sty}} +\subsection{\Pkg{lltjext}} \pLaTeX では縦組用の拡張として \Pkg{plext} パッケージが用意されていたが, それを\LuaTeX-ja用に書きなおしたものが本追加パッケージ \Pkg{lltjext} である. @@ -6897,7 +7113,7 @@ In this case, will be aligned \dots %\section{Storing Parameters} %\section{パラメータの保持} \label{sec-para} -%\subsection{Used Dimensions, Attributes and Whatsit Nodes} +%\subsection{Used dimensions, attributes and whatsit nodes} %\subsection{\LuaTeX-jaで用いられるレジスタとwhatsitノード} %<*en> @@ -7208,7 +7424,7 @@ These whatsits will be removed during the process of inserting \textbf{JAglue}s. これらのwhatsitノードは\textbf{JAglue}の挿入処理の間に取り除かれる. % -%\subsection{Stack System of \LuaTeX-ja} +%\subsection{Stack system of \LuaTeX-ja} %\subsection{\LuaTeX-jaのスタックシステム} \label{ssec-stack} @@ -7388,7 +7604,7 @@ To solve this problem, we use another trick: the assignment % %<*en> -\subsection{Lua Functions of the Stack System} +\subsection{Lua functions of the stack system} In this subsection, we will see how a user use \LuaTeX-ja's stack system to store some data which obeys the grouping of \TeX. % @@ -7594,7 +7810,7 @@ end %\section{Linebreak after a Japanese Character} %\section{和文文字直後の改行} \label{sec-lbreak} -%\subsection{Reference: Behavior in \pTeX} +%\subsection{Reference: behavior in \pTeX} %\subsection{参考:\pTeX の動作} %<*en> In~\pTeX, a line break after a Japanese character doesn't emit a space, @@ -8787,7 +9003,7 @@ With this key, the above input now produces better output. \end{lstlisting} % -%\subsection{Class of Characters} +%\subsection{Class of characters} %\subsection{文字種} %Roughly speaking, the \Pkg{listings} package processes input as follows: @@ -9094,13 +9310,13 @@ JFM中にある文字クラス$n$の定義の が連続した場合に,$p$のフォントに対応したが持つ「異体字情報」に従って出力するグリフを変える. しかし,単に$p.\textit{char}$を変更するだけでは,後から -font featureの適用(すぐ下)により置換される可能性がある.そのため, +OpenType機能の適用(すぐ下)により置換される可能性がある.そのため, \cs{CID} や \cs{UTF} と同じように,\textit{glyph\_node}~$p$の代わりに \texttt{user\_id} が\textit{char\_by\_cid}であるようなuser-defined whatsitを用いている. \item[(\Pkg{luaotfload} によるfont featureの適用)] \item[\tt ltj.otf] \texttt{user\_id} が\textit{char\_by\_cid}であるようなuser-defined whatsitを きちんと\textit{glyph\_node}に変換する.この処理は,\cs{CID}, \cs{UTF}やIVSによる置換が, -font featureの適用で上書きされてしまうのを防止するためである. +OpenType機能の適用で上書きされてしまうのを防止するためである. \item[\tt ltj.main\_process] \textbf{JAglue}の挿入処理(\ref{sec-jfmglue}章)と, JFMの指定に従って各\textbf{JAchar}の「寸法を補正」することを行う. \end{description} @@ -9196,7 +9412,7 @@ CMapが必要である. 縦組時における幅を格納している.構造は以下の通り: % %<*en> -\subsection{Use of Cache} +\subsection{Use of cache} \LuaTeX-ja uses the following cache: \begin{cslist}