%<*en>
\documentclass[a4paper,titlepage]{article}
\usepackage[margin=25mm,footskip=5mm]{geometry}
+\usepackage{mathptmx}
%</en>
%<*ja>
\documentclass[a4paper,titlepage]{ltjsarticle}
-\usepackage[margin=25mm, footskip=5mm]{geometry}
+\usepackage[textwidth=45\zw, lines=45, footskip=5mm]{geometry}
\advance\leftmargini-1\zw\advance\leftmarginii-1\zw
%</ja>
%<*zh>
%</zh>
\usepackage{amsmath,amssymb,xcolor,pict2e,multienum,amsthm,float,makecell}
-\usepackage{mathptmx}
-\usepackage{booktabs,listings,showexpl,multicol}
+\usepackage{booktabs,listings,showexpl,multicol,metalogo}
\usepackage{luatexja-otf}
\usepackage{luatexja-fontspec}
\usepackage{hyperref}
\usepackage[all]{xy}
%<ja> \SelectTips{cm}{}
%<*en>
-\usepackage{mathptmx}
\setmainfont[Ligatures=TeX]{TeX Gyre Termes}
\setsansfont[Ligatures=TeX]{TeX Gyre Heros}
\frenchspacing
/それ以上の品質の日本語組版を実現させようとするマクロパッケージである.
%</ja>
%<*zh>
-\LuaTeX-ja宏包是应用于下一代标准\TeX引擎亦即\LuaTeX引擎上的高质量日语文档排版宏包。
+\LuaTeX-ja宏包是应用于下一代标准\TeX 引擎亦即\LuaTeX 引擎上的高质量日语文档排版宏包。
%</zh>
%<en>\subsection{Backgrounds}
のエンジン拡張であり,(少々仕様上不便な点はあるものの)商業印刷の分野に
も用いられるほどの高品質な日本語組版を可能としている.だが,それは弱点に
もなってしまった:\pTeX という(組版的に)満足なものがあったため,海外で
-è¡\8cã\82\8fã\82\8cã\81¦ã\81\84ã\82\8bæ\95°ã\80\85ã\81®\TeX ã\81®æ\8b¡å¼µâ\94\80â\94\80ä¾\8bã\81\88ã\81°\eTeX ã\82\84\pdfTeX â\94\80â\94\80や,TrueType,
+è¡\8cã\82\8fã\82\8cã\81¦ã\81\84ã\82\8bæ\95°ã\80\85ã\81®\TeX ã\81®æ\8b¡å¼µâ\80\95â\80\95ä¾\8bã\81\88ã\81°\eTeX ã\82\84\pdfTeX â\80\95â\80\95や,TrueType,
OpenType, Unicodeといった計算機で日本語を扱う際の状況の変化に追従すること
を怠ってしまったのだ.
%</ja>
%<*zh>
-一般情况下,\TeX下的日语文档输出,是ASCII \pTeX(\TeX的一个扩展)及其衍生
-软件来完成的。\pTeX作为\TeX的一个扩展引擎,在生成高质量的日语文档时,规避
-了繁杂的宏编写。但是在和同时期的引擎相比之下,\pTeX的处境未免有些尴尬:\pTeX
-已经远远落后于\eTeX和pdf\TeX,此外也没有跟上计算机上对日文处理的演进(比如,
+一般情况下,\TeX 下的日语文档输出,是ASCII \pTeX(\TeX 的一个扩展)及其衍生
+软件来完成的。\pTeX 作为\TeX 的一个扩展引擎,在生成高质量的日语文档时,规避
+了繁杂的宏编写。但是在和同时期的引擎相比之下,\pTeX 的处境未免有些尴尬:\pTeX
+已经远远落后于\eTeX 和pdf\TeX,此外也没有跟上计算机上对日文处理的演进(比如,
UTF-8编码,TrueType字体,OpenType字体)。
%</zh>
る.
%</ja>
%<*zh>
-最近开发的\pTeX扩展,即\upTeX(Unicode下的\pTeX实现)和\epTeX(\pTeX和
-\eTeX的融合版本),虽然在部分情况上弥补了上述的差距,但是差距依然存在。
+最近开发的\pTeX 扩展,即\upTeX(Unicode下的\pTeX 实现)和\epTeX(\pTeX 和
+\eTeX 的融合版本),虽然在部分情况上弥补了上述的差距,但是差距依然存在。
%</zh>
%<*en>
が始まったパッケージである.
%</ja>
%<*zh>
-不过,\LuaTeX的出现改变了整个状况。用户可以通过使用Lua语言的“callback”来
-调整\LuaTeX的内部处理机制。所以,没有必要去通过修改引擎的源代码来支持日文
+不过,\LuaTeX 的出现改变了整个状况。用户可以通过使用Lua语言的“callback”来
+调整\LuaTeX 的内部处理机制。所以,没有必要去通过修改引擎的源代码来支持日文
排版,相反,我们需要做的仅仅是编写其当处理callback的Lua脚本。
%</zh>
%<en>\subsection{Major Changes from \pTeX}
%<ja>\subsection{\pTeX からの主な変更点}
-%<zh>\subsection{与\pTeX的差异所在}
+%<zh>\subsection{与\pTeX 的差异所在}
%<*en>
The \LuaTeX-ja package is under much influence of \pTeX\ engine. The initial
れば,そこは積極的に改める.}
%</ja>
%<*zh>
-\LuaTeX-ja宏包在设计上,受\pTeX影响很大。最初开发的主要议题是实现\pTeX的特性。
+\LuaTeX-ja宏包在设计上,受\pTeX 影响很大。最初开发的主要议题是实现\pTeX 的特性。
不过,{\bf\LuaTeX-ja不是简简单单的移植\pTeX,很多不自然的特征和现象都被移出了。}
%</zh>
以下は \pTeX からの主な変更点である.
%</ja>
%<*zh>
-下面列举出了一些和\pTeX的差异:
+下面列举出了一些和\pTeX 的差异:
%</zh>
\begin{itemize}
`variation'.
%</en>
%<*ja>
-\item 和文フォントは(小塚明朝,IPA明朝などの)実際のフォント,和文フォントメトリック(JFMと呼ぶ),そ
+\item 和文フォントは(小塚明朝,IPA明朝などの)実際のフォント,和文フォントメトリック(JFMと呼ぶ\footnote{混乱を防ぐため,p\TeX の意味でのJFM (\texttt{min10.tfm}) などは本ドキュメントでは\textbf{和文用TFM}とよぶことにする.}),そ
して`variation'と呼ばれる文字列の組である.
%</ja>
%<*zh>
\LuaTeX-ja では \LuaTeX の仕様のためにこの機能は完全には実装されていない.
%</ja>
%<*zh>
-\item \pTeX中,日文字符之后的断行并不允许(也不产生空格),其他在源码中的断行
- 是可以随处允许的。不过,因为\LuaTeX的特殊关系,\LuaTeX-ja并没有这个功能。
+\item \pTeX 中,日文字符之后的断行并不允许(也不产生空格),其他在源码中的断行
+ 是可以随处允许的。不过,因为\LuaTeX 的特殊关系,\LuaTeX-ja并没有这个功能。
%</zh>
%<*en>
%</en>
%<*ja>
\item 2つの和文文字の間,和文文字と欧文文字の間に入るグルー/カーン
- (\textbf{JAglue} と呼ぶ)の挿入処理が0から書き直されている.
+ (\textbf{JAglue}と呼ぶ)の挿入処理が0から書き直されている.
%</ja>
%<*zh>
\item 插在日文字符和其他字符言之间的胶/出格(我们将此称为\textbf{JAglue})是重新实现的。
「ノードベース」である.
%</ja>
%<*zh>
-\item 在\LuaTeX中,内部的字符处理是“基于node的”(例如:\verb!of{}fice!不会避免合字),
+\item 在\LuaTeX 中,内部的字符处理是“基于node的”(例如:\verb!of{}fice!不会避免合字),
\textbf{JAglue}的插入处理,现在也是“基于node的”。
%</zh>
使われていたいくつかの方法は用いることができない.具体的には,次の方法はもはや無効である:}
%</ja>
%<*zh>
-\item \textbf{警告:鉴于以上两点,在\pTeX中分割\textbf{JAglue}处理的多种方法不再生效。}
+\item \textbf{警告:鉴于以上两点,在\pTeX 中分割\textbf{JAglue}处理的多种方法不再生效。}
明确地说,下列两种方法不再生效:
%</zh>
\begin{verbatim}
%</zh>
\end{itemize}
+%<*ja>
+\item \LuaTeX-jaでは,\pTeX と同様に漢字・仮名を制御綴内に用いることができ,
+\verb+\西暦+ などが正しく動作するようにしている.
+但し,制御綴中に使える和文文字が\pTeX・\upTeX と全く同じではないことに注意すること.
+%</ja>
+
%<*en>
\item At the present, vertical typesetting (\emph{tategaki}), is not
supported in \LuaTeX-ja.
For detailed information, see Part~\ref{part-imp}.
%</en>
%<*ja>
-詳細については第 \ref{part-imp} 部を参照.
+詳細については第\ref{part-imp}部を参照.
%</ja>
%<*zh>
详细的描述,请参见第\ref{part-imp}编。
パッケージやクラスを表す.
%</ja>
%<*zh>
-\item 用下划线表示的词(如:\Pkg{fontspec})表示\LaTeX的宏包或者文档类。
+\item 用下划线表示的词(如:\Pkg{fontspec})表示\LaTeX 的宏包或者文档类。
%</zh>
%<*en>
のコアモジュールで定義されたコントロールシーケンスに対しても用いる.
%</ja>
%<*zh>
-\item “primitive”,该词在本文档中不仅表示\LuaTeX的基本控制命令,也包括\LuaTeX-ja的相关的基本控制命令
+\item “primitive”,该词在本文档中不仅表示\LuaTeX 的基本控制命令,也包括\LuaTeX-ja的相关的基本控制命令
%</zh>
%<*en>
\item Now \LuaTeX-ja is available from the following archive and distributions:
\begin{itemize}
\item CTAN (in the \texttt{macros/luatex/generic/luatexja} directory)
+ \item MiK\TeX\ (in \texttt{luatexja.tar.lzma})
\item \TeX\ Live (in \texttt{texmf-dist/tex/luatex/luatexja})
\item W32\TeX\ (in \texttt{luatexja.tar.xz})
\end{itemize}
\item 今や,\LuaTeX-jaは以下のアーカイブ,およびディストリビューションにも収録されている:
\begin{itemize}
\item CTAN (\texttt{macros/luatex/generic/luatexja})
+ \item MiK\TeX\ (\texttt{luatexja.tar.lzma})
\item \TeX\ Live (\texttt{texmf-dist/tex/luatex/luatexja})
\item W32\TeX\ (\texttt{luatexja.tar.xz})
\end{itemize}
%<en>\subsection{Using in plain \TeX}
%<ja>\subsection{plain \TeX で使う}
-%<zh>\subsection{plain \TeX下使用}
+%<zh>\subsection{plain \TeX 下使用}
\label{ssec-plain}
%<*en>
\LuaTeX-jaを plain \TeX で使うためには,単に次の行をソースファイルの冒頭に追加すればよい:
%</ja>
%<*zh>
-在plain \TeX下使用\LuaTeX-ja相当简易,在文档开头放置一行:
+在plain \TeX 下使用\LuaTeX-ja相当简易,在文档开头放置一行:
%</zh>
\begin{verbatim}
\input luatexja.sty
%</zh>
\begin{itemize}
%<*en>
-\item The `Q(級)' is a unit used in Japanese phototypesetting, and
- $1\,\textrm{Q}=0.25\,\textrm{mm}$. This length is stored in a
- dimension \verb+\jQ+.
-%</en>
-%<*ja>
-\item `Q(級)'は日本の写植で用いられる単位で,$1\,\textrm{Q}=0.25\,\textrm{mm}$
- である.この長さは \verb+\jQ+ に保持されている.
-%</ja>
-%<*zh>
-\item “Q(级)”是日本照排中使用的尺寸单位,$1 \mathrm{Q} = 0.25\mathrm{mm}$。
-该长度保存在长度\verb!\jQ!中。
-%</zh>
-
-%<*en>
\item It is widely accepted that the font `Ryumin-Light' and
`GothicBBB-Medium' aren't embedded into PDF files, and PDF reader
substitute them by some external Japanese fonts (\textit{e.g.},
%<en>\subsection{Using in \LaTeX}
%<ja>\subsection{\LaTeX で使う}
-%<zh>\subsection{\LaTeX下使用}
+%<zh>\subsection{\LaTeX 下使用}
\label{ssec-ltx}
\paragraph{\LaTeXe}
設定するためには,\texttt{luatexja.sty}を読み込むだけでよい:
%</ja>
%<*zh>
-在\LaTeXe下使用基本相同。设定日文的最小环境,你只需加载\texttt{luatexja.sty}:
+在\LaTeXe 下使用基本相同。设定日文的最小环境,你只需加载\texttt{luatexja.sty}:
%</zh>
\begin{verbatim}
\usepackage{luatexja}
なされる:
%</ja>
%<*zh>
-这些做了最小的设定(作用相当于\pLaTeX中的\texttt{plfonts.dtx}和\texttt{pldefs.ltx}):
+这些做了最小的设定(作用相当于\pLaTeX 中的\texttt{plfonts.dtx}和\texttt{pldefs.ltx}):
%</zh>
\begin{itemize}
\hline
\end{tabular}
\end{center}
-注意的是两个字体族的粗体系列同为中等系列的\textbf{哥特}族。这\pLaTeX中的规定。在近些年
+注意的是两个字体族的粗体系列同为中等系列的\textbf{哥特}族。这\pLaTeX 中的规定。在近些年
中的DTP实务中有仅使用2个字体的趋向(是为Ryumin-Light和GothicBBB-Medium)。
%</zh>
%<*zh>
不过,上述设定并不能满足排版基于日文的文档。为了排印基于日文的文
档,你最好不要使用\texttt{article.cls},\texttt{book.cls}等文档类文件。
-现在,我们有相当于\Pkg{jclasses}(\pLaTeX标准文档类)和\Pkg{jsclasses}
+现在,我们有相当于\Pkg{jclasses}(\pLaTeX 标准文档类)和\Pkg{jsclasses}
(奥村晴彦)的文档类,即\Pkg{ltjclasses}和\Pkg{ltjsclasses}。
%</zh>
-%<*en>
-\paragraph{\texttt{\char92 CID}, \texttt{\char92 UTF} and macros in OTF package}
-Under \pLaTeX, \Pkg{otf} package (developed by Shuzaburo Saito) is
-used for typesetting characters which is in Adobe-Japan1-6 CID but not
-in JIS~X~0208. Since this package is widely used, \LuaTeX-ja
-supports some of functions in \Pkg{otf} package.
-If you want to use these functions, load \Pkg{luatexja-otf} package.
-%</en>
-%<*ja>
-\paragraph{\texttt{\char92 CID}, \texttt{\char92 UTF}とOTFパッケージのマクロ}
-\pLaTeX では,JIS~X~0208にないAdobe-Japan1-6の文字を出力するために,
-齋藤修三郎氏による\Pkg{otf}パッケージが用いられていた.このパッケージは
-広く用いられているため,\LuaTeX-jaにおいても\Pkg{otf}パッケージの機能の
-一部をサポートしている.これらの機能を用いるためには\Pkg{luatexja-otf}パッケージ
-を読み込めばよい.
-%</ja>
-%<*zh>
-\paragraph{OTF包中的\texttt{\char92CID},\texttt{\char92UTF}及其他宏}
-\pLaTeX下,\underline{\texttt{otf}}宏包(斋藤修三郎开发)是用来排印存在
-于Adobe-Japan1-6但不存在于JIS X 0208中的字符。
-该包已经广泛使用,\LuaTeX-ja支持部分\Pkg{otf}包中的部分功能。
-如果你想使用这些功能,加载\Pkg{luatexja-otf}宏包。
-\bgroup
-\fontencoding{JY3}\selectfont
-%</zh>
-
-\begin{LTXexample}
-森\UTF{9DD7}外と内田百\UTF{9592}とが\UTF{9AD9}島屋に行く。
-
-\CID{7652}飾区の\CID{13706}野家,
-葛飾区の吉野家
-\end{LTXexample}
-%<*zh>
-\egroup
-%</zh>
-
%<en>\subsection{Changing Fonts}
%<ja>\subsection{フォントの変更}
%<zh>\subsection{字体更改}
以下のようなソースが見られた:
%</ja>
%<*zh>
-\paragraph{注记:数学模式下的日文字符} \pTeX支持在数学模式下的日文字符,如以下源码:
+\paragraph{注记:数学模式下的日文字符}
+\pTeX 支持在数学模式下的日文字符,如以下源码:
%</zh>
\begin{LTXexample}
%<*ja>
また\LuaTeX-jaプロジェクトでは,和文文字が識別子として用いられることはほとんどない
と考えており,したがってこの節では数式モード中の和文フォントを変更する方法については
-記述しない.この方法については \ref{ssec-math} 節を参照のこと.
+記述しない.この方法については\ref{ssec-math}節を参照のこと.
%</ja>
%<*zh>
我们也认为使用日文字符作为标识符的情况极为少见,所以我们不在此章节描述如何在数学模式下改变日文字体。
%<*ja>
\paragraph{plain \TeX}
plain \TeX で和文フォントを変更するためには,\verb+\jfont+ プリミティブを用いなけれ
-ばならない.\ref{ssec-jfont} 節を参照.
+ばならない.\ref{ssec-jfont}節を参照.
%</ja>
%<*zh>
\paragraph{plain \TeX}
-在plain \TeX下改变日文字体,你必须使用基本语句\verb!\jfont!。请参见\ref{ssec-jfont}。
+在plain \TeX 下改变日文字体,你必须使用基本语句\verb!\jfont!。请参见\ref{ssec-jfont}。
%</zh>
%<*en>
%</ja>
%<*zh>
\paragraph{NFSS2}
-对于\LaTeXe,\LuaTeX-ja采用了\pLaTeXe中(即\texttt{plfonts.dtx})大部分字体选择系统。
+对于\LaTeXe,\LuaTeX-ja采用了\pLaTeXe 中(即\texttt{plfonts.dtx})大部分字体选择系统。
%</zh>
\begin{itemize}
%<*en>
\texttt{JY3}に変更し,\verb+\fontencoding{T1}+ は欧文フォント側を
\texttt{T1}へと変更する.\verb+\fontfamily+ も引数により和文側,欧文
側,\textbf{あるいは両方}のフォントファミリを変更する.詳細は
- \ref{ssub-nfsspat} 節を参照すること.
+ \ref{ssub-nfsspat}節を参照すること.
%</ja>
%<*zh>
\verb!\fontencoding{<encoding>}!依赖于参数以改变西文字体或者日文字体。
和文フォントについては全ての和文文字のグリフがほぼ等幅であるのが普通であるため,
\verb+\setmonojfont+ コマンドは存在しないことに注意.また,これらの和文用の7つのコマ
ンドではKerning featureはデフォルトではoffとなっている.これはこの
-featureが\textbf{JAglue}と衝突するためである(\ref{para-kern} 節を参照).
+featureが\textbf{JAglue}と衝突するためである(\ref{para-kern}節を参照).
%</ja>
%<*zh>
请注意并没有\verb!\setmonofont!命令,因为流行的日文字体几乎全部是等宽的。
另注意,出格特性在这7个命令中默认关闭,因为此特性会与\textbf{JAglue}冲突(参见\ref{para-kern})。
%</zh>
+%<*en>
+\subsection{\texttt{\char92 CID}, \texttt{\char92 UTF} and macros in \Pkg{otf} package}
+Under \pLaTeX, \Pkg{otf} package (developed by Shuzaburo Saito) is
+used for typesetting characters which is in Adobe-Japan1-6 CID but not
+in JIS~X~0208. Since this package is widely used, \LuaTeX-ja
+supports some of functions in \Pkg{otf} package.
+If you want to use these functions, load \Pkg{luatexja-otf} package.
+%</en>
+%<*ja>
+\subsection{\texttt{\char92 CID}, \texttt{\char92 UTF}と\Pkg{otf}パッケージのマクロ}
+\pLaTeX では,JIS~X~0208にないAdobe-Japan1-6の文字を出力するために,
+齋藤修三郎氏による\Pkg{otf}パッケージが用いられていた.このパッケージは
+広く用いられているため,\LuaTeX-jaにおいても\Pkg{otf}パッケージの機能の
+一部をサポートしている.これらの機能を用いるためには\Pkg{luatexja-otf}パッケージ
+を読み込めばよい.
+%</ja>
+%<*zh>
+\subsection{\Pkg{otf}包中的\texttt{\char92CID},\texttt{\char92UTF}及其他宏}
+\pLaTeX 下,\underline{\texttt{otf}}宏包(斋藤修三郎开发)是用来排印存在
+于Adobe-Japan1-6但不存在于JIS X 0208中的字符。
+该包已经广泛使用,\LuaTeX-ja支持部分\Pkg{otf}包中的部分功能。
+如果你想使用这些功能,加载\Pkg{luatexja-otf}宏包。
+\bgroup
+\fontencoding{JY3}\selectfont
+%</zh>
+
+\begin{LTXexample}
+森\UTF{9DD7}外と内田百\UTF{9592}とが\UTF{9AD9}島屋に行く。
+
+\CID{7652}飾区の\CID{13706}野家,
+葛飾区の吉野家
+\end{LTXexample}
+%<*zh>
+\egroup
+%</zh>
+
+%<*ja>
+\Pkg{otf}パッケージでは,それぞれ次のようなオプションが存在した:
+\begin{description}
+\item[\texttt{deluxe}] 明朝体・ゴシック体各2ウェイトと,丸ゴシック体を扱えるようになる.
+\item[\texttt{expert}] 仮名が横組・縦組専用のものに切り替わり,ルビ用仮名も扱えるようになる.
+\item[\texttt{bold}] ゴシック体を標準で太いウェイトのものに設定する.
+\end{description}
+これらは,\Pkg{otf}パッケージが文書中で使用する
+和文用TFMを自前の物に置き換えていることで可能になっている.
+
+一方,\Pkg{luatexja-otf}パッケージでは,文書中で使用する和文用JFMを置き換えることはしない.
+そのため,上に述べた3つのオプションと同等のことを実現するには,\ref{ssub-chgfnt}節 (NFSS2) や
+\ref{ssec-fontspec}節 (\Pkg{fontspec}) によって\textbf{事前に}設定しておかなければならない.
+
+TODO: 設定方法と例を載せる.フォントの関係上(複数の)別ファイルでよい?
+%</ja>
+
%<en>\section{Changing Parameters}
%<ja>\section{パラメータの変更}
%<zh>\section{变量更改}
\item 八登崇之氏による\upTeX 用の\texttt{PXbase}バンドル.
%</ja>
%<*zh>
-\item 八登崇之的\texttt{PXbase}宏包(\upTeX下使用)。
+\item 八登崇之的\texttt{PXbase}宏包(\upTeX 下使用)。
%</zh>
\end{itemize}
indicated in Table~\ref{table-rng3}.
%</en>
%<*ja>
-\item[範囲3${}^{\text{J}}$] 句読点と記号類.ブロックのリストは表 \ref{table-rng3}
+\item[範囲3${}^{\text{J}}$] 句読点と記号類.ブロックのリストは表\ref{table-rng3}%
に示してある.
%</ja>
%<*zh>
%</en>
%<*ja>
\item[範囲6${}^{\text{J}}$] 日本語で用いられる文字.ブロックのリストは
- 表 \ref{table-rng6} に示す.
+ 表\ref{table-rng6}に示す.
%</ja>
%<*zh>
\item[范围6${}^\text{J}$] 日文字符。
%<*ja>
\item[範囲7${}^{\text{J}}$] CJK言語で用いられる文字のうち,Adobe-Japan1-6に
含まれていないもの.
- ブロックのリストは表 \ref{table-rng7} に示す.
+ ブロックのリストは表\ref{table-rng7}に示す.
%</ja>
%<*zh>
\item[范围7${}^\text{J}$] 不包含于Adobe-Japan1-6的CJK字符,参见表\ref{table-rng7}。
\ltjsetparameter{alxspmode={`あ,preonly}, jaxspmode={`\!,postonly}}
\end{verbatim}
%<*en>
-One can use also numbers to specify these two parameters (see Subsection \ref{ssec-param}).
+One can use also numbers to specify these two parameters (see Subsection~\ref{ssec-param}).
%</en>
%<*ja>
-また,これら2パラメータには数値で値を指定することもできる(\ref{ssec-param} 節を参照).
+また,これら2パラメータには数値で値を指定することもできる(\ref{ssec-param}節を参照).
%</ja>
%<*zh>
你也可以使用数字来定义两个参数(参见\ref{ssec-param})。
%</ja>
%<*zh>
为了确保日文字体和西文字体能够对其,有时需要浮动其中一者的基线。
-在\pTeX中,此项设定由设定\verb!\yabaselineshift!为非零长度(西文字体基线应向下浮动)。
+在\pTeX 中,此项设定由设定\verb!\yabaselineshift!为非零长度(西文字体基线应向下浮动)。
不过,如果文档的中主要语言不是日文,那么最好上浮日文字体的基线,西文字体不变。
如上所述,\LuaTeX-ja可以独立设定西文字体的基线(\Param{yabaselineshift}参数)和日文字体的基线(\Param{yjabaselineshift}参数)。
%</zh>
%</ja>
%<*zh>
裁剪框标记是在一页的四角和水平/垂直中央放置的标记。在日文中,裁剪框被称为“トンボ”。
-\pLaTeX和\LuaTeX-ja均在底层支持裁剪框标记。需要下列步骤来实现:
+\pLaTeX 和\LuaTeX-ja均在底层支持裁剪框标记。需要下列步骤来实现:
%</zh>
\begin{enumerate}
\label{part-ref}
%<en>\section{Font Metric and Japanese Font}
%<ja>\section{フォントメトリックと和文フォント}
-%<ja>\section{字体测度和日文字体}
+%<zh>\section{字体测度和日文字体}
%<en>\subsection{\texttt{\char92jfont} primitive}
%<ja>\subsection{\texttt{\char92jfont}プリミティブ}
%<zh>\subsection{\texttt{\char92jfont}基本语句}
%</en>
%<*ja>
\item[\tt jfm-ujis.lua] \LuaTeX-jaの標準JFMである.このJFMは\upTeX で
- 用いられるUTF/OTFパッケージ用のメトリックである \verb+upnmlminr-h.tfm+ を
+ 用いられるUTF/OTFパッケージ用の和文用TFMである \verb+upnmlminr-h.tfm+ を
元にしている.\Pkg{luatexja-otf}パッケージを使うときはこのJFMを指定するべきである.
%</ja>
%<*zh>
-\item[\tt jfm-ujis.lua] \LuaTeX-ja标准JFM。次JFM基于\upTeX使用的UTF/OTF宏包的\verb!upnmlminr-h.tfm!。
+\item[\tt jfm-ujis.lua] \LuaTeX-ja标准JFM。次JFM基于\upTeX 使用的UTF/OTF宏包的\verb!upnmlminr-h.tfm!。
如果你使用\Pkg{luatexja-otf}宏包,你将会用到此JFM。
%</zh>
%<*en>
正方形状であるのに対し,\texttt{jfm-jis.lua}では横長の長方形状である.
%</ja>
%<*zh>
-\item[\tt jfm-jis.lua] 相当于\pTeX使用的\verb!jis.tfm!(“JIS font metric”)。
+\item[\tt jfm-jis.lua] 相当于\pTeX 使用的\verb!jis.tfm!(“JIS font metric”)。
\texttt{jfm-ujis.lua}和\texttt{jfm-jis.lua}主要区别是:
\texttt{jfm-ujis.lua}下的大部分字符是方形,
\texttt{jfm-jis.lua}下则为长方形。
shown in Table~\ref{tab-difjfm}.
%</en>
%<*ja>
-\item[\tt jfm-min.lua] \pTeX に同梱されているデフォルトの和文フォントメトリック
+\item[\tt jfm-min.lua] \pTeX に同梱されているデフォルトの和文用TFM
である \verb+min10.tfm+ に相当するJFMである.このJFMと他の2つのJFMの間には
- 表 \ref{tab-difjfm} に示すような特筆すべき違いがある.
+ 表\ref{tab-difjfm}に示すような特筆すべき違いがある.
%</ja>
%<*zh>
-\item[\tt jfm-min.lua] 相当于\pTeX中默认的\verb!min10.tfm!。
+\item[\tt jfm-min.lua] 相当于\pTeX 中默认的\verb!min10.tfm!。
这个JFM与其他2个JFM的区别如表\ref{tab-difjfm}所示。
%</zh>
\end{description}
-\item[jfmvar=<string>] Sometimes there is a need that ...
+\item[jfmvar=<string>] Sometimes there is a need that \ldots.
\end{list}
\begin{table}[t]
%</zh>
%<*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 ...
+ information from this font, use \texttt{jfm-prop.lua} for its JFM, and\ldots.
%</en>
%<*ja>
\item もしプロポーショナル幅の和文フォントをそのフォントの情報に基づいて使いたい
%<en>\subsection{Prefix \texttt{psft}}
-%<ja>\subsection{\texttt{psft} プレフィックス}
+%<ja>\subsection{\texttt{psft}プリフィックス}
%<zh>\subsection{\texttt{psft}前缀}
\label{ssec-psft}
%<*en>
to specify a `name-only' Japanese font which
will not be embedded to PDF. Typical use of this prefix is to specify
the `standard' Japanese fonts, namely, `Ryumin-Light' and
-`GothicBBB-Medium'. For kerning or other information, that of Kozuka
-Mincho Pr6N Regular (this is a font by Adobe Inc., and included in
-Japanese Font Packs for Adobe Reader) will be used.
+`GothicBBB-Medium'.
%</en>
%<*ja>
-\texttt{file:}ã\81¨\texttt{name:}ã\81®ã\83\97ã\83¬フィックスに加えて,
+\texttt{file:}ã\81¨\texttt{name:}ã\81®ã\83\97ã\83ªフィックスに加えて,
\verb+\jfont+ プリミティブ(と \verb+\font+ プリミティブ)では
-\texttt{psft:}プレフィックスを用いることができる.
-このプレフィックスを用いることで,PDFには埋め込まれない「名前だけの」
-和文フォントを指定することができる.典型的な使い方は「標準的な」和文フォント,
-つまり`Ryumin-Light'と`GothicBBB-Medium'を指定することである.
-この場合,カーニング他の情報は小塚明朝 Pr6N Regular
-(Adobe社によるフォントで,Adobe Readerの日本語フォントパックに含まれている)
-が用いられる.
+\texttt{psft:}プリフィックスを用いることができる.
+このプリフィックスを用いることで,PDFには埋め込まれない「名前だけの」
+和文フォントを指定することができる.「標準的な」和文フォント,
+つまり`Ryumin-Light'と`GothicBBB-Medium'の指定でこのプリフィックスが使われる.
%</ja>
%<*zh>
除使用\texttt{file:}和\texttt{name:}外,我们还可以在\verb!\jfont!(以及\verb!\font!)
也可以使用\texttt{cid}键来使用其他的CID字体,如中文和韩文。
%</zh>
-\paragraph{\texttt{cid} key}
+%<en>\paragraph{\texttt{cid} key}
+%<ja>\paragraph{\texttt{cid}キー}
\label{para-cid}
- \texttt{cid} key, ...
+%<*en>
+The default font defined by using \texttt{psft:} prefix is for Japanese typesetting;
+it is Adobe-Japan1-6 CID-keyed font.
+One can specify \texttt{cid} key to use other CID-keyed non-embedded fonts
+for Chinese or Korean typesetting.
+\begin{lstlisting}[numbers=left]
+\jfont\testJ={psft:Ryumin-Light:cid=Adobe-Japan1-6;jfm=jis} % Japanese
+\jfont\testD={psft:Ryumin-Light:jfm=jis} % default value is Adobe-Japan1-6
+\jfont\testC={psft:AdobeMingStd-Light:cid=Adobe-CNS1-5;jfm=jis} % Traditional Chinese
+\jfont\testG={psft:SimSun:cid=Adobe-GB1-5;jfm=jis} % Simplified Chinese
+\jfont\testK={psft:Batang:cid=Adobe-Korea1-2;jfm=jis} % Korean
+\end{lstlisting}
+Note that the code above specifies \texttt{jfm-jis.lua}, which is for Japanese fonts,
+as JFM for Chinese and Korean fonts.
+%</en>
+%<*ja>
+標準で\texttt{psft:}プリフィックスで定義されるフォントは日本語用のもので
+あり,Adobe-Japan1-6のCIDに対応したものとなる.しかし,\LuaTeX-jaは中国語
+の組版にも威力を発揮することが分かり,日本語フォントでない非埋込フォント
+の対応も必要となった.そのために追加されたのが\texttt{cid}キーである.
+
+\texttt{cid}キーに値を指定すると,そのCIDを持った非埋込フォントを定義することができる:
+\begin{lstlisting}[numbers=left]
+\jfont\testJ={psft:Ryumin-Light:cid=Adobe-Japan1-6;jfm=jis} % 日本語
+\jfont\testD={psft:Ryumin-Light:jfm=jis} % 無指定時は Adobe-Japan1-6
+\jfont\testC={psft:AdobeMingStd-Light:cid=Adobe-CNS1-5;jfm=jis} % 中国語繁体字
+\jfont\testG={psft:SimSun:cid=Adobe-GB1-5;jfm=jis} % 中国語簡体字
+\jfont\testK={psft:Batang:cid=Adobe-Korea1-2;jfm=jis} % 韓国語
+\end{lstlisting}
+上のコードでは中国語・韓国語用フォントに対してもJFMに
+日本語用の\texttt{jfm-jis.lua}を指定しているので注意されたい.
+%</ja>
+%<*en>
+At present, \LuaTeX-ja supports only 4 values written in the sample code above.
+Specifying other values, e.g.,
+%</en>
+%<*ja>
+今のところ,\LuaTeX-jaは上のサンプルコード中に書いた4つの値しかサポートしていない.
+%</ja>
+\begin{lstlisting}
+\jfont\test={psft:Ryumin-Light:cid=Adobe-Japan2;jfm=jis}
+\end{lstlisting}
+%<*en>
+occurs the following error:
+%</en>
+%<*ja>
+のようにそれら以外の値を指定すると,
+%</ja>
+\begin{lstlisting}[numbers=left]
+! Package luatexja Error: bad cid key `Adobe-Japan2'.
+
+See the luatexja package documentation for explanation.
+Type H <return> for immediate help.
+<to be read again>
+ \par
+l.78
+
+? h
+I couldn't find any non-embedded font information for the CID
+`Adobe-Japan2'. For now, I'll use `Adobe-Japan1-6'.
+Please contact the LuaTeX-ja project team.
+?
+\end{lstlisting}
+%<*ja>
+というエラーが出る.
+%</ja>
%<en>\subsection{Structure of JFM file}
%<ja>\subsection{JFMファイルの構造}
fields are in design-size unit too.
%</en>
%<*ja>
-「理想的な」\Param{kanjiskip}の量を指定する.\ref{subs-kskip} 節で述べたように,
+「理想的な」\Param{kanjiskip}の量を指定する.\ref{subs-kskip}節で述べたように,
もし\Param{kanjiskip}が \verb+\maxdimen+ の値ならば,このフィールドで指定された
値が実際には用いられる(もしこのフィールドがJFMで指定されていなければ,
0\,ptであるものとして扱われる).<stretch>と<shrink>のフィールドもdesign-size
%</ja>
%<*zh>
除了上面涉及到的内容,JFM文件中还有几个以自然数进行声明的次级表。
-这些表依靠$i\in\omega$
+这些表依靠满足$i\in\omega$的“字符类”$i$来索引。
+一般,最少需要的是字符类0,故每一个JFM文件必须有次级表索引为\texttt{[0]}。
%</zh>
\begin{list}{}{\def\makelabel{\ttfamily}\def\{{\char`\{}\def\}{\char`\}}\advance\leftmargin1\zw}
\item[chars=\{<character>, ...\}]
%<en>(required except character class~0)
%<ja>(文字クラス0を除いて必須)
+%<zh>(字符类0外必须)
%<*en>
This field is a list of characters which are in this character
文字それ自体(長さ1の文字列)によって指定される.さらに,このリストで指定される
「仮想的な文字」も存在する.これらについては後に記す.
%</ja>
+%<*zh>
+这部分为字符集$i$的字符列表。当$i=0$时不需要设定此部分,因为不在字符集0种的\textbf{JAchar}
+字符都包含在字符集0中(也就是字符集0包含大多数的\textbf{JAchar})。在这个字符列表中,每一个
+字符据可以使用其编码,或者字符本身(长度为1的字符串)。另外还有部分“假想字符”可在此列表中
+使用。我们会在下面描述。
+%</zh>
\item[width=<length>, height=<length>, depth=<length>, italic=<length>]
%<en>(required)
%<ja>(必須)
+%<zh>(必须)
%<*en>
Specify width of characters in character class~$i$, height, depth and
しかし,例外が一つある:もし\texttt{'prop'}が\texttt{width}フィールドに
指定された場合,文字の幅はその「実際の」グリフの幅となる.
%</ja>
+%<*zh>
+设定字符类$i$的宽度,高度和深度以及意大利体校正。在字符集$i$中,所有字符的宽度,高度
+和深度的值为上述设定之值。不过还有例外,如果\texttt{'prop'}设定了\texttt{width}部分,那么
+字符的宽度则为其“真实”字形宽度。
+%</zh>
\item[left=<length>, down=<length>, align=<align>]\
\texttt{'right'}のいずれかである.もしこれら3つのフィールドのうちの1つが省かれた
場合,\texttt{left}と\texttt{down}は0,\texttt{align}フィールドは
\texttt{'left'}であるものとして扱われる.
-これら3つのフィールドの意味については図 \ref{fig-pos} で説明する.
+これら3つのフィールドの意味については図\ref{fig-pos}で説明する.
%</ja>
+%<*zh>
+此部分为“真实”字形对齐位置。\texttt{align}的合法值为\texttt{'left'},
+\texttt{'middle'}和\texttt{'right'}。如此三项被省略,则\texttt{left}和
+\texttt{down}被视作0,\texttt{align}被视作\texttt{'left'}。
+此部分三个域的作用,请参见图\ref{fig-pos}。
+%</zh>
%<*en>
In most cases, \texttt{left} and \texttt{down} fields are~0, while
例えば,\texttt{align}フィールドを\texttt{'right'}に指定することは,
文字クラスが開き括弧類であるときに実際必要である.
%</ja>
+%<*zh>
+在大多数情况下,\texttt{left}和\texttt{down}域为0,但是在\texttt{align}域为
+\texttt{'middle'}或者\texttt{'right'}时则是不正常的。例如,必须设定\texttt{align}
+为\texttt{'right'}时,则当前字符类必须为开定界符。
+%</zh>
\begin{figure}[!tb]
\begin{minipage}{0.4\textwidth}%
\begin{center}\unitlength=10pt\small
\texttt{align}フィールドの値が\texttt{'middle'}である和文文字を含むノードを
考えよう.
%</ja>
+%<*zh>
+假定一个node包含日语字符,且其值为\texttt{align}的\texttt{'middle'}。
+%</zh>
\begin{itemize}
\item
%<*en>
黒色の長方形はノードの枠である.
その幅,高さ,深さはJFMによって指定される.
%</ja>
+%<*zh>
+黑色长方形为node框。其宽度,高度,深度均为JFM所设定。
+%</zh>
\item
%<*en>
Since the \texttt{align} field is \texttt{'middle'},
\texttt{align}フィールドは\texttt{middle}なので,「実際の」グリフは
水平方向の中心に配置される(緑色の長方形).
%</ja>
+%<*zh>
+因\texttt{align}被设定为\texttt{middle},故“真实”字形为水平居中(绿长方形中)。
+%</zh>
\item
%<*en>
Furthermore, the glyph is shifted according to values of fields
さらに,グリフは\texttt{left}と\texttt{down}の値に従ってシフトされる.
最終的な実際のグリフの位置は赤色の長方形で示された位置になる.
%</ja>
+%<*zh>
+此外,字形移位由\texttt{left}和\texttt{down}决定。最终字形位置为红长方形所示。
+%</zh>
\end{itemize}
\end{minipage}
\caption{
%<en>The position of the `real' glyph.
%<ja>「実際の」グリフの位置.
+%<zh>“真实”字形位置
}
\label{fig-pos}
\end{figure}
クラス0の文字」として扱われていた文字であり,その結果として\pTeX より細か
い組版調整ができるようになっている.以下でその一覧を述べる:
%</ja>
+%<*zh>
+如上所述,你可以在\texttt{chars}中设定多个“假想字符”。这些字符中的多数字符在
+\pTeX 中式被视作字符集0中字符。故此,\LuaTeX-ja可以比\pTeX 做得更好。
+下列为“假想字符”列表:
+%</zh>
\begin{list}{}{\def\makelabel{\ttfamily}\def\{{\char`\{}\def\}{\char`\}}\advance\leftmargin1\zw}
\item['lineend']
%<en>An ending of a line.
%<ja>行の終端を表す.
+%<zh>行尾结束字符。
\item['diffmet']
%<en>Used at a boundary between two \textbf{JAchar}s whose JFM or size is different.
%<ja>JFMやサイズが異なる2つの\textbf{JAchar}の間の境界として用いられる.
+%<zh>用于两个不同大小或不同JFM的两个\textbf{JAchar}间边界。
\item['boxbdd']
%<en>The beginning/ending of a horizontal box, and the beginning of a noindented paragraph.
%<ja>水平ボックスの先頭と末尾,及びインデントされていない(\verb+\noindent+ で開始された)段落の先頭を表す.
+%<zh>水平合字结束或结尾,以及未缩进段落开头。
\item['parbdd']
%<en>The beginning of an (indented) paragraph.
%<ja>通常の(\verb+\noindent+ で開始されていない)段落の先頭.
+%<zh>缩进段落开头。
\item['jcharbdd']
-%<en>A boundary between \textbf{JAchar} and anything else (such as \textbf{ALchar}, kern, glue, ...).
+%<en>A boundary between \textbf{JAchar} and anything else (such as \textbf{ALchar}, kern, glue,\,\ldots).
%<ja>和文文字と「その他のもの」(欧文文字,glue,kern等)との境界.
+%<zh>日文字符和其他(如\textbf{ALchar},胶,出格等)边界。
\item[$-1$]
%<en>The left/right boundary of an inline math formula.
%<ja>行中数式と地の文との境界.
+%<zh>行中数学式的左/右边界。
\end{list}
%<en>\paragraph{Porting JFM from \pTeX}
-%<ja>\paragraph{\pTeX 用和文フォントメトリックの移植}
+%<ja>\paragraph{\pTeX 用和文用TFMの移植}
+%<zh>\paragraph{\pTeX 下使用的TFM移植}
% ToDo: English version.
%<*en>
-...
+\ldots
%</en>
%<*ja>
-以下に,\pTeX 用和文フォントメトリックを\LuaTeX-ja用に移植する場合の注意点を挙げておく.
+以下に,\pTeX 用に作られた和文用TFMを\LuaTeX-ja用に移植する場合の注意点を挙げておく.
\begin{itemize}
\item 実際に出力される和文フォントのサイズがdesign sizeとなる.
このため,例えば$1\,\textrm{zw}$がdesign sizeの0.962216倍であるJISフォン
ところで,\pTeX では通常の段落の先頭にJFMグルーが残るという仕様があるので,
段落先頭の開き括弧は全角二分下がりになる.全角下がりを実現させるに
は,段落の最初に手動で \verb+\inhibitglue+ を追加するか,あるいは
- \verb+\everypar+ のハックを行い,それを自動化させるしかなかった.
+ \ \verb+\everypar+ のハックを行い,それを自動化させるしかなかった.
一方,\LuaTeX-jaでは,\texttt{'parbdd'}によって,それがJFM側で調整できるよ
うになった.例えば,\LuaTeX-ja同梱のJFMのように,\texttt{'boxbdd'}と同じ文字クラスに
\texttt{'parbdd'}を入れれば全角下がりとなる.
-\ltjsetparameter{jacharrange={+3}}
\begin{LTXexample}
\jfont\g=psft:Ryumin-Light:jfm=test \g
\parindent1\zw\noindent{}◆◆◆◆◆
\par 〔◆◆←全角二分下がり
\end{LTXexample}
\end{itemize}
-\ltjsetparameter{jacharrange={-3}}
+
+但し,\verb+\everypar+ を利用している場合にはこの仕組みは正しく動かない.
+そのような例としては箇条書き中の \verb+\item+ で始まる段落があり,\Pkg{ltjsclasses}では
+人工的に「\texttt{'parbdd'}の意味を持つ」whatsitノードを作ることによって対処している%
+\footnote{\texttt{no\_runtime/ltjsclasses.dtx} を参照されたい.
+JFM側で一部の対処ができることにより,\Pkg{jsclasses}のようにif文の判定はしていない.}
%</ja>
+%<*zh>
+下面,给出用于\pTeX 使用的JFM移植到\LuaTeX-ja过程中需要注意的几点。
+%</zh>
+
%<en>\subsection{Math Font Family}
%<ja>\subsection{数式フォントファミリ}
+%<zh>\subsection{数学字体族}
\label{ssec-math}
%<*en>
%</en>
%<*ja>
\LuaTeX-jaの数式中での和文フォントの扱いも同様である.
-表 \ref{tab-math} は数式フォントファミリに対する \TeX のプリミティブと対応する
+表\ref{tab-math}は数式フォントファミリに対する \TeX のプリミティブと対応する
ものを示している.\verb+\fam+ と \verb+\jfam+ の値の間には関係はなく,
適切な設定の下では \verb+\fam+ と \verb+\jfam+ の両方に同じ値を設定することができる.
%</ja>
\begin{table}[!tb]
%<en>\caption{Primitives for Japanese math fonts.}
%<ja>\caption{和文数式フォントに対するプリミティブ.}
+%<zh>\caption{日语数学字体基本语句}
\label{tab-math}
\begin{center}\def\{{\char`\{}\def\}{\char`\}}
\begin{tabular}{lll}
\toprule
%<en>&Japanese fonts&alphabetic fonts\\
%<ja>&和文フォント&欧文フォント\\
+%<zh>&日文字体&西文字体\\
\midrule
font family&\verb+\jfam+${}\in [0,256)$&\verb+\fam+\\
text size&\tt\Param{jatextfont}\,=\{<jfam>,<jfont\_cs>\}&\tt\verb+\textfont+<fam>=<font\_cs>\\
%<en>\subsection{Callbacks}
%<ja>\subsection{コールバック}
+%<zh>\subsection{回调}
%<*en>
Like \LuaTeX\ itself, \LuaTeX-ja also has callbacks. These callbacks can
{\def\makelabel#1{\bfseries#1}}
%<en>\item[\texttt{luatexja.load\_jfm} callback]
%<ja>\item[\texttt{luatexja.load\_jfm}コールバック]
+%<zh>\item[\texttt{luatexja.load\_jfm}回调]
%<*en>
With this callback you can overwrite JFMs.
This callback is called when a new JFM is loaded.
%<en>\item[\texttt{luatexja.define\_font} callback]
%<ja>\item[\texttt{luatexja.define\_font}コールバック]
+%<zh>\item[\texttt{luatexja.define\_font}回调]
%<*en>
This callback and the next callback form a pair, and you can assign letters which don't have
fixed code points in Unicode to non-zero character classes.
\item[\tt jfm]
%<en>The index number of JFM.
%<ja>JFMのインデックス番号.
+%<zh>JFM索引编号。
\item[\tt size]
%<en>Font size in a scaled point (${}=2^{-16}\,\textrm{pt}$).
%<ja>スケールド・ポイント(${}=2^{-16}\,\textrm{pt}$)を単位としたフォントのサイズ.
+%<zh>以参照点(${}=2^{-16}\,\textrm{pt}$)为点位的字体大小。
\item[\tt var]
%<en>The value specified in \texttt{jfmvar=...} at a call of \verb+\jfont+.
%<ja>\verb+\jfont+ の呼び出しの際に\texttt{jfmvar=...}で指定された値.
+%<zh>\verb!\jfont!调用的\texttt{jfmvar=...}值。
\end{description}
%<*en>
%<en>\item[\texttt{luatexja.find\_char\_class} callback]
%<ja>\item[\texttt{luatexja.find\_char\_class}コールバック]
+%<zh>\item[\texttt{luatexja.find\_char\_class}回调]
%<*en>
This callback is called just when \LuaTeX-ja is trying to determine which
character class a character \verb+chr_code+ belongs.
%<*ja>
このコールバックは\LuaTeX-jaのコードを書き換えない.
%</ja>
+%<*zh>
+此回调不会替换\LuaTeX-ja中任何代码。
+%</zh>
%<en>\item[\texttt{luatexja.set\_width} callback]
%<ja>\item[\texttt{luatexja.set\_width}コールバック]
+%<zh>\item[\texttt{luatexja.set\_width}回调]
%<*en>
This callback is called when \LuaTeX-ja is trying to encapsule a
\textbf{JAchar} \textit{glyph\_node}, to adjust its
%<en>\section{Parameters}
%<ja>\section{パラメータ}
+%<zh>\section{参数}
%<en>\subsection{\texttt{\char92 ltjsetparameter} primitive}
%<ja>\subsection{\texttt{\char92 ltjsetparameter}プリミティブ}
+%<zh>\subsection{\texttt{\char92 ltjsetparameter}基本参数}
%<*en>
As noted before, \verb+\ltjsetparameter+ and \verb+\ltjgetparameter+ are
先に述べたように,\verb+\ltjsetparameter+ と \verb+\ltjgetparameter+ は
\LuaTeX-jaのほとんどのパラメータにアクセスするためのプリミティブである.
\LuaTeX-jaが\pTeX のような文法(例えば,\verb+\prebreakpenalty`)=10000+)を
-採用しない理由の一つは,\LuaTeX のソースにおける \verb+\hpack_filter+
-コールバックの位置にある.\ref{sec-para} 節を参照.
+採用しない理由の一つは,\LuaTeX のソースにおける \verb+hpack_filter+
+コールバックの位置にある.\ref{sec-para}節を参照.
%</ja>
%<*en>
%<en>\subsection{List of Parameters}
%<ja>\subsection{パラメータ一覧}
+%<zh>\subsection{参数一览}
\label{ssec-param}
%<*en>
また,それぞれのパラメータの右上にある記号には次の意味がある:
%</ja>
\begin{itemize}
+%<*zh>
+\item % avoiding from error ``Something's wrong--perhaps a missing \item.''.
+%</zh>
%<*en>
\item No mark: values at the end of the paragraph or the hbox are
adopted in the whole paragraph/hbox.
\item[\Param{jatextfont}\,=\{<jfam>,<jfont\_cs>\}]
%<en>[\verb+\textfont+ in \TeX]
%<ja>[\TeX の \verb+\textfont+]
+%<zh>[\TeX 的\verb+\textfont+]
\item[\Param{jascriptfont}\,=\{<jfam>,<jfont\_cs>\}]
%<en>[\verb+\scriptfont+ in \TeX]
%<ja>[\TeX の \verb+\scriptfont+]
+%<zh>[\TeX 中的\verb+\scriptfont+]
\item[\Param{jascriptscriptfont}\,=\{<jfam>,<jfont\_cs>\}]
%<en>[\verb+\scriptscriptfont+ in \TeX]
%<ja>[\TeX の \verb+\scriptscriptfont+]
+%<zh>[\TeX 中的\verb+\scriptscriptfont+]
\item[\Param{yjabaselineshift}\,=<dimen>$^\ast$]\
\item[\Param{yalbaselineshift}\,=<dimen>$^\ast$] [\verb+\ybaselineshift+]
\begin{description}
%<en>\item[0, \texttt{inhibit}] Insertion of \Param{xkanjiskip} is inhibited before the character, nor after the character.
%<ja>\item[0, \texttt{inhibit}] \Param{xkanjiskip}の挿入は文字の前/後ろのいずれでも禁止される.
+%<zh>\item[0, \texttt{inhibit}] 插入文字前/后的\Param{xkanjiskip}均被禁止。
%<en>\item[1, \texttt{preonly}] Insertion of \Param{xkanjiskip} is allowed before the character, but not after.
%<ja>\item[1, \texttt{preonly}] \Param{xkanjiskip}の挿入は文字の前では許されるが,後ろでは許されない.
+%<zh>\item[1, \texttt{preonly}] 文字前允许插入\Param{xkanjiskip},但其后不允许插入。
%<en>\item[2, \texttt{postonly}] Insertion of \Param{xkanjiskip} is allowed after the character, but not before.
%<ja>\item[2, \texttt{postonly}] \Param{xkanjiskip}の挿入は文字の後ろでは許されるが,前では許されない.
+%<zh>\item[2, \texttt{postonly}] 文字后允许插入\Param{xkanjiskip},但之前不允许插入。
%<en>\item[3, \texttt{allow}] Insertion of \Param{xkanjiskip} is allowed both before the character and after the character. This is the default value.
%<ja>\item[3, \texttt{allow}] \Param{xkanjiskip}の挿入は文字の前/後ろのいずれでも許される.これがデフォルトの値である.
+%<zh>\item[3, \texttt{allow}] 文字前后均可插入\Param{xkanjiskip}。此为默认值。
\end{description}
%<*en>
This parameter is similar to the \verb+\inhibitxspcode+ primitive of \pTeX, but not compatible with \verb+\inhibitxspcode+.
このパラメータは\pTeX の \verb+\inhibitxspcode+ プリミティブと似ているが,
互換性はない.
%</ja>
-
+%<*zh>
+此参数类似\pTeX 基本语句\verb!\inhibitxspcode!,但是和\verb!\inhibitxspcode!不兼容。
+%</zh>
\item[\Param{alxspmode}\,=\{<chr\_code>,<mode>\}] [\verb+\xspcode+]
%<*en>
\begin{description}
%<en>\item[0, \texttt{inhibit}] Insertion of \Param{xkanjiskip} is inhibited before the character, nor after the character.
%<ja>\item[0, \texttt{inhibit}] \Param{xkanjiskip}の挿入は文字の前/後ろのいずれでも禁止される.
+%<zh>\item[0, \texttt{inhibit}] 插入文字前/后的\Param{xkanjiskip}均被禁止。
%<en>\item[1, \texttt{preonly}] Insertion of \Param{xkanjiskip} is allowed before the character, but not after.
%<ja>\item[1, \texttt{preonly}] \Param{xkanjiskip}の挿入は文字の前では許されるが,後ろでは許されない.
+%<zh>\item[1, \texttt{preonly}] 文字前允许插入\Param{xkanjiskip},但其后不允许插入。
%<en>\item[2, \texttt{postonly}] Insertion of \Param{xkanjiskip} is allowed after the character, but not before.
%<ja>\item[2, \texttt{postonly}] \Param{xkanjiskip}の挿入は文字の後ろでは許されるが,前では許されない.
+%<zh>\item[2, \texttt{postonly}] 文字后允许插入\Param{xkanjiskip},但之前不允许插入。
%<en>\item[3, \texttt{allow}] Insertion of \Param{xkanjiskip} is allowed before the character and after the character. This is the default value.
%<ja>\item[3, \texttt{allow}] \Param{xkanjiskip}の挿入は文字の前/後ろのいずれでも許される.これがデフォルトの値である.
+%<zh>\item[3, \texttt{allow}] 文字前后均可插入\Param{xkanjiskip}。此为默认值。
\end{description}
%<*en>
Note that parameters \Param{jaxspmode} and \Param{alxspmode} use a common table, hence these two parameters are synonyms of each other.
\Param{jaxspmode}と\Param{alxspmode}は共通のテーブルを用いているため,
これら2つのパラメータは互いの異名となっていることに注意する.
%</ja>
+%<*zh>
+注意参数\Param{jaxspmode}和\Param{alxspmode}公用一个表,故这两个参数互为同义语。
+%</zh>
\item[\Param{autospacing}\,=<bool>$^\ast$] [\verb+\autospacing+]
\item[\Param{autoxspacing}\,=<bool>$^\ast$] [\verb+\autoxspacing+]
入れるかを指定うる.
許される値は以下の通り:
%</ja>
+%<*zh>
+对于处理不同大小或者JFM的两种\textbf{JAchar}之间的胶/出格。
+有下列参数:
+%</zh>
\begin{description}
\item[\texttt{average}]
\item[\texttt{both}]
%<en>\section{Other Primitives}
%<ja>\section{その他のプリミティブ}
+%<zh>\section{其他基本语句}
%<en>\subsection{Primitives for Compatibility}
%<ja>\subsection{互換プリミティブ}
+%<zh>\subsection{基本语句兼容性}
%<*en>
The following primitives are implemented for compatibility with \pTeX:
%<*ja>
以下のプリミティブは\pTeX との互換性のために実装されている:
%</ja>
+%<*zh>
+下列基本语句的实现与\pTeX 兼容:
+%</zh>
\begin{list}{}{\def\makelabel{\ttfamily\char92 }\advance\leftmargin1\zw}
\item[kuten]
\item[jis]
%<en>\subsection{\texttt{\char92 inhibitglue} primitive}
%<ja>\subsection{\texttt{\char92 inhibitglue}プリミティブ}
-
+%<zh>\subsection{\texttt{\char92 inhibitglue}基本语句}
%<*en>
The primitive \verb+\inhibitglue+ suppresses the insertion of \textbf{JAglue}.
The following is an example, using a special JFM that there will be a glue between
以下は,ボックスの始めと`あ'の間,`あ'と`ウ'の間にグルーが入る特別なJFMを用いた例で
ある.
%</ja>
+%<*zh>
+基本语句\verb!\inhibitglue!会压缩\textbf{JAchar}的插入。
+下面的例子使用了特殊的JFM。在一个盒子和“あ”之间,以及“あ”和“ウ”之间存在胶。
+%</zh>
\begin{LTXexample}
\jfont\g=psft:Ryumin-Light:jfm=test \g
%<*ja>
この例を援用して,\verb+\inhibitglue+ の仕様について述べる.
%</ja>
+%<*zh>
+如上例子,我们注意到\verb!\inhibtglue!的用法。
+%</zh>
\begin{itemize}
+%<*zh>
+\item
+%</zh>
%<*en>
\item The call of \verb+\inhibitglue+ in the (internal) vertical mode is
simply ignored.
%<en>\section{Control Sequences for \LaTeXe}
%<ja>\section{\LaTeXe 用のコントロールシーケンス}
+%<zh>\section{\LaTeXe 下使用的控制序列}
%<en>\subsection{Patch for NFSS2}
%<ja>\subsection{NFSS2へのパッチ}
+%<zh>\subsection{NFSS2补丁}
\label{ssub-nfsspat}
%<*en>
commands which are not described in Subsection~\ref{ssub-chgfnt}.
%</en>
%<*ja>
-\ref{ssec-ltx} 節で述べたように,\LuaTeX-jaはNFSS2への日本語パッチである
+\ref{ssec-ltx}節で述べたように,\LuaTeX-jaはNFSS2への日本語パッチである
\pLaTeXe の\texttt{plfonts.dtx}を単純に取り入れている.
-便宜のため,ここでは \ref{ssub-chgfnt} 節で述べていなかったコマンドについて
+便宜のため,ここでは\ref{ssub-chgfnt}節で述べていなかったコマンドについて
記述しておく.
%</ja>
%</ja>
\item[adjustbaseline]
-...
+\ldots
\item[fontfamily\{<family>\}]
{\let\item\origitem
どのファミリが変更されるかは以下のようにして決定される:
%</ja>
\begin{itemize}
+%<*zh>
+\item
+%</zh>
%<*en>
\item Let current encoding scheme for Japanese fonts be
<ja-enc>. Current Japanese font family will be changed to
\item A font definition named \texttt{<enc><ja-enc>.fd} (the file name is
all lowercase) exists.
%</en>
+%<*zh>
+\item
+%</zh>
%<*ja>
\item フォント定義ファイル\texttt{<enc><ja-enc>.fd}(ファイル名は全て小文字)が存在する.
%</ja>
the commands of Japanese version:
%</en>
%<*ja>
-\ref{ssec-fontspec} 節で述べたように,この追加パッケージは\Pkg{fontspec}
+\ref{ssec-fontspec}節で述べたように,この追加パッケージは\Pkg{fontspec}
パッケージで定義されているコマンドに対応する和文フォント用のコマンドを提供する.
オリジナルの\Pkg{fontspec}での`font feature'に加えて,和文版のコマンドには
以下の`font feature'を指定することができる:
\begin{list}{}{\def\makelabel{\ttfamily}\def\{{\char`\{}\def\}{\char`\}}\advance\leftmargin1\zw}
+\item[CID=<name>]
\item[JFM=<name>]
-\item[JFM-var=<name>]
+\item[JFM-var=<name>] \
%<*en>
-These 2 font features correspond to \texttt{jfm} and \texttt{jfmvar} keys for
-\verb+\jfont+ primitive, respectively. See Subsection~\ref{ssec-jfont}.
+These 3 font features correspond to \texttt{cid}, \texttt{jfm} and
+\texttt{jfmvar} keys for \verb+\jfont+ primitive, respectively.
+\texttt{CID} is effective only when with \texttt{NoEmbed}
+described below.
+See Subsections~\ref{ssec-jfont} and \ref{ssec-psft} for details.
%</en>
%<*ja>
-これら2つのキーはそれぞれ \verb+\jfont+ プリミティブに対する
-\texttt{jfm}, \texttt{jfmvar}キーとそれぞれ対応する.
-\ref{ssec-jfont} 節を参照.
+これら3つのキーはそれぞれ \verb+\jfont+ プリミティブに対する
+\texttt{cid}, \texttt{jfm}, \texttt{jfmvar}キーとそれぞれ対応する.
+\texttt{CID} は下の \texttt{NoEmbed} と合わせて用いられたときのみ有効である.
+詳細は\ref{ssec-jfont}節と\ref{ssec-psft}節を参照.
%</ja>
\item[NoEmbed]
%<*en>
-By specifying this font feature, you can use `name-only' Japanese font which
+By specifying this font feature, one can use `name-only' Japanese font which
will not be embedded in the output PDF file. See Subsection~\ref{ssec-psft}.
%</en>
%<*ja>
これを指定することで,PDFに埋め込まれない「名前だけ」のフォントを指定することが
-できる.\ref{ssec-psft} 節を参照.
-%</ja>
-
-\item[CID=<name>]
-%<*en>
-This feature is effective only when with NoEmbed feature.
-You can use the non-embedded CID-keyed font whose glyphs are addressed according
-to the specified character collection defined by Adobe Inc.
-The default value is Adobe-Japan1. See also Subsection~\ref{ssec-psft}.
-%</en>
-%<*ja>
-NoEmbed キーと合わせて用いる.
-非埋め込みの CID-keyed フォントがどの文字コレクションに基づくものかを指定する.
-デフォルトは Adobe-Japan1 である.\ref{ssec-psft} 節も参照.
+できる.\ref{ssec-psft}節を参照.
%</ja>
\end{list}
以下の点で通常の文字と異なる:
%</ja>
\begin{itemize}
+%<*zh>
+\item
+%</zh>
%<*en>
\item Always treated as \textbf{JAchar}s.
%</en>
\dim{jQ}
%<*en>
-As explained in Subsection~\ref{ssec-plain}, \verb+\jQ+ is equal to
+\verb+\jQ+ is equal to
$1\,\textrm{Q}=0.25\,\textrm{mm}$, where `Q'~(also called `級') is
a unit used in Japanese phototypesetting. So one should not change the value of this dimension.
%</en>
%<*ja>
-\ref{ssec-plain} 節で述べたように,\verb+\jQ+ は$1\,\textrm{Q}=0.25\,\textrm{mm}$
+\verb+\jQ+ は$1\,\textrm{Q}=0.25\,\textrm{mm}$
と等しい.ここで,`Q'(もしくは「級」)は日本の写植で用いられる単位である.したがって,
この寸法レジスタの値を変更してはならない.
%</ja>
\verb+\jH+ is a synonym of \verb+\jQ+.
%</en>
%<*ja>
-å\90\8cã\81\98ã\81\8få\86\99æ¤\8dã\81§ç\94¨ã\81\84ã\82\89ã\82\8cã\81¦ã\81\84ã\81\9få\8d\98ä½\8dã\81¨ã\81\97ã\81¦ã\80\8cæ¯ã\80\8dã\81\8cã\81\82ã\82\8aï¼\8cã\81\93ã\82\8cã\81¯$0.25\,\textrm{mm}$と
+å\90\8cã\81\98ã\81\8få\86\99æ¤\8dã\81§ç\94¨ã\81\84ã\82\89ã\82\8cã\81¦ã\81\84ã\81\9få\8d\98ä½\8dã\81¨ã\81\97ã\81¦ã\80\8cæ¯ã\80\8dã\81\8cã\81\82ã\82\8aï¼\8cã\81\93ã\82\8cã\82\82$0.25\,\textrm{mm}$と
等しい.\verb+\jH+ は \verb+\jQ+ の別名である.
%</ja>
\item[\textit{line\_end} (5)]
%<*en>
-Kerns for ...
+Kerns for \ldots
%</en>
%<*ja>
-カーン ...
+和文文字が行末にきたとき,行末との間に挿入されるカーンである.
+% ぶら下げ組への応用
%</ja>
\item[\textit{kanji\_skip} (6)]
\item[\textit{processed} (8)]
%<*en>
-Nodes which is already processed by ...
+Nodes which is already processed by \ldots.
%</en>
%<*ja>
-... によって既に処理されたノード.
+\LuaTeX-ja の内部処理によって既に処理されたノード.
%</ja>
\item[\textit{ic\_processed} (9)]
%</ja>
\item[30114]
-Nodes for indicating beginning of a paragraph.
+Nodes for indicating beginning of a paragraph.
A paragraph which is started by \verb+\item+ in list-like environments has a horizontal box
for its label before the actual contents. So \dots
\end{description}
file in the source of \LuaTeX), there are the following codes:
%</en>
%<*ja>
-\ref{ssec-param} 節で述べたように,ある水平ボックスの中で効力を持つ
+\ref{ssec-param}節で述べたように,ある水平ボックスの中で効力を持つ
\Param{kanjiskip}の値は最後に現れた値のみであり,したがってボックス全体に適用される
\Param{kanjiskip}は5\,ptであるべきである.しかし,\LuaTeX の実装のために,
この`5\,pt'はどのコールバックからも知ることはできない.
%<en>\paragraph{The method}
%<ja>\paragraph{解決法}
+%<zh>\paragraph{解决方法}
%<*en>
The code of stack system is based on that in a post of Dev-luatex mailing list\footnote{%
$t$とすると:
%</ja>
\begin{itemize}
+%<*zh>
+\item
+%</zh>
%<*en>
\item If there is no \textit{stack\_flag} node in the list of the hbox, then
no assignment was occurred inside the hbox. Hence values of
%<en>\section{Linebreak after Japanese Character}
%<ja>\section{和文文字直後の改行}
+%<zh>\section{日文字符后断行}
\label{sec-lbreak}
%<en>\subsection{Reference: Behavior in \pTeX}
%<ja>\subsection{参考:\pTeX の動作}
+%<zh>\subsection{参考:\pTeX 行为}
%<*en>
In~\pTeX, a line break after a Japanese character doesn't emit a space,
since words are not separated by spaces in Japanese writings. However,
\item State~$M$: 行中.
\item State~$K$: 行中(和文文字の後).
\end{itemize}
-また,状態遷移は,図 \ref{fig-ptexipro} のようになっており,図中の数字は
+また,状態遷移は,図\ref{fig-ptexipro}のようになっており,図中の数字は
カテゴリーコードを表している.最初の3状態は\TeX の入力処理部と同じであり,
図中から状態$K$と「$j$」と書かれた矢印を取り除けば,\TeX の入力処理部と同
じものになる.
%<*ja>
\item カテゴリーコード9(無視する文字),14(コメント文字),15(無効文字)は上の図では省かれている.
%</ja>
+%<*zh>
+\item
+%</zh>
\end{itemize}
%<en>\caption{State transitions of \pTeX's input processor.}
%<ja>\caption{\pTeX の入力処理部の状態遷移.}
%<en>\subsection{Behavior in \LuaTeX-ja}
%<ja>\subsection{\LuaTeX-jaの動作}
+%<zh>\subsection{\LuaTeX-ja行为}
%<*en>
States in the input processor of \LuaTeX\ is the same as that of \TeX,
and they can't be customized by any callbacks. Hence, we can only use
\begin{quote}
A character U+FFFFF (its category code is set to 14~(comment) by
\LuaTeX-ja) is appended to an input line, \emph{before \LuaTeX\ actually
-process it}, if and only if the following two conditions are satisfied:
+process it}, if and only if the following three conditions are satisfied:
\begin{enumerate}
-\item The category code of the character $\langle${return}$\rangle$
- (whose character code is 13) is 5~(end-of-line).
+\item The category code of \verb+\endlinechar+%
+\footnote{Usually, it is $\langle${return}$\rangle$
+ (whose character code is 13).} is 5~(end-of-line).
+\item The category code of U+FFFFF itself is 14~(comment).
\item The input line matches the following `regular expression':
\[
(\text{any char})^*(\textbf{JAchar})
\begin{quote}
各入力行に対し,\textbf{その入力行が読まれる前の内部状態で}
-以下の2条件が満たされている場合,\LuaTeX-jaはU+FFFFF番の文字
+以下の3条件が満たされている場合,\LuaTeX-jaはU+FFFFF番の文字
\footnote{この文字はコメント文字として扱われるように\LuaTeX-ja内部で設定をしている.}
を末尾に追加する.よって,その場合に改行は空白とは見做されないこととなる.
\begin{enumerate}
-\item 改行文字(文字コード13番)のカテゴリーコードが5~(end-of-line)である.
+\item \verb+\endlinechar+の文字\footnote{普通は,改行文字(文字コード13番)である.}
+のカテゴリーコードが5~(end-of-line)である.
+\item U+FFFFFのカテゴリーコードが14~(comment)である.
\item 入力行は次の「正規表現」にマッチしている:
\[
(\text{any char})^*(\textbf{JAchar})
%<en>\section{Insertion of JFM glues, \Param{kanjiskip} and \Param{xkanjiskip}}
%<ja>\section{JFMグルーの挿入,\Param{kanjiskip}と\Param{xkanjiskip}}
+%<zh>\section{JFM的胶插入,\Param{kanjiskip}和\Param{xkanjiskip}}
\label{sec-jfmglue}
%<en>\subsection{Overview}
%<ja>\subsection{概要}
+%<zh>\subsection{概要}
\LuaTeX-jaにおける和文処理グルーの挿入方法は,\pTeX のそれとは全く異なる.
\pTeX では次のような仕様であった:
%<en>\subsection{definition of a `cluster'}
%<ja>\subsection{「クラスタ」の定義}
+%<zh>\subsection{“cluster”定义}
\def\OA{$\text{\sf O}_{\text{\sf A}}$}
\def\OB{$\text{\sf O}_{\text{\sf B}}$}
\begin{table}[t]
%<en>\caption{Summary of JFM glues.}
%<ja>\caption{JFM グルーの概要.}
+%<zh>\caption{JFM胶总结。}
\label{tab-jfmglue}
\begin{center}
\small
\end{table}
\subsection{その他の場合}
-本節の内容は表 \ref{tab-jfmglue} にまとめてある.
+本節の内容は表\ref{tab-jfmglue}にまとめてある.
\paragraph{和文Aと欧文の間}
\textit{Nq}が\textsf{和文A}で,\textit{Np}が\textsf{欧文}の場合,JFMグルー挿入処理は次のようにして行われる.