%</en>
%<*ja>
\usepackage[textwidth=45\zw, lines=45, footskip=6mm]{geometry}
-\usepackage{luatexja-adjust}
+\usepackage{luatexja-adjust}%\ltjdisableadjust
\advance\leftmargini-1\zw\advance\leftmarginii-1\zw
%</ja>
%<*zh>
\DeclareFontShape{ZH}{hei}{m}{n}{<->name:SimHei:jfm=jis}{}
\DeclareFontShape{ZH}{hei}{bx}{n}{<->ssub*hei/m/n}{}
\DeclareKanjiFamily{ZH}{mincho}{}
-\DeclareFontShape{ZH}{mincho}{m}{n}{<->psft:KozMinPr6N-Regular:cid=Adobe-Japan1-6;jfm=jis}{}
+\DeclareFontShape{ZH}{mincho}{m}{n}{<->name:KozMinPr6N-Regular:cid=Adobe-Japan1-6;jfm=jis}{}
\fontencoding{ZH}\selectfont
\DeclareTextFontCommand{\textsong}{\songfamily}
\DeclareTextFontCommand{\texthei}{\heifamily}
%</zh>
%<*en>
-\item A word in a sans-serif font (like \Param{prebreakpenalty})
+\item A word in a sans-serif font (like \Param{\hyperlink{fld:prebp}{prebreakpenalty}})
means an internal parameter for Japanese typesetting, and it
is used as a key in \verb+\ltjsetparameter+ command.
%</en>
%<*ja>
-\item サンセリフ体で書かれた語(例:\Param{prebreakpenalty})は日本語組版用の
+\item サンセリフ体で書かれた語(例:\Param{\hyperlink{fld:prebp}{prebreakpenalty}})は日本語組版用の
パラメータを表し,これらは \verb+\ltjsetparameter+ コマンドのキーとして
用いられる.
%</ja>
%<*zh>
-\item 用无衬线字体表示的词(如:\Param{prebreakpenalty})表示
+\item 用无衬线字体表示的词(如:\Param{\hyperlink{fld:prebp}{prebreakpenalty}})表示
日文排版中的内部便利iang,并用做\verb!\ltjsetparameter!命令一个键。
%</zh>
\item 用下划线表示的词(如:\Pkg{fontspec})表示\LaTeX 的宏包或者文档类。
%</zh>
-%<*en>
-\item The word `primitive' is used not only for primitives in \LuaTeX,
- but also for control sequences that defined in the core module of
- \LuaTeX-ja.
-%</en>
-%<*ja>
-\item 「プリミティブ」という語を,\LuaTeX のプリミティブだけではなく \LuaTeX-ja
- のコアモジュールで定義されたコントロールシーケンスに対しても用いる.
-%</ja>
%<*zh>
\item “primitive”,该词在本文档中不仅表示\LuaTeX 的基本控制命令,也包括\LuaTeX-ja的相关的基本控制命令
%</zh>
安装\LuaTeX-ja之前,需要如下:
%</zh>
\begin{itemize}
-%<*en>
-\item \LuaTeX\ (version 0.65.0-beta or later) and its supporting packages.\\
-If you are using \TeX~Live~2011 or current W32\TeX, you don't have to worry.
-%</en>
-%<*ja>
-\item \LuaTeX(バージョン 0.65.0-beta 以降)とその支援パッケージ.
- \TeX~Live~2011やW32\TeX の最新版ならば問題ない.
-%</ja>
-%<*zh>
-\item \LuaTeX(版本号为大于0.65)和相关支持宏包。\\
-如果用户使用的是\TeX Live2011以及最新版本的W32\TeX,可不考虑此项。
-%</zh>
-%<*en>
-\item The source archive of \LuaTeX-ja, of course\texttt{:)}
-%</en>
-%<*ja>
-\item \LuaTeX-jaのソースアーカイブ(もちろん\texttt{:)}).
-%</ja>
-%<*zh>
-\item \LuaTeX-ja的源码(当然喽\texttt{:)})。
-%</zh>
-%<*en>
-\item The \Pkg{xunicode} package, which version is \emph{just v0.981 (2011/09/09)}.\\
-If you have the \Pkg{fontspec} package, this \Pkg{xunicode} package must be exist.
-But be careful about the version; other versions may not work correctly with \LuaTeX-ja.
-%</en>
-%<*ja>
-\item \Pkg{xunicode}パッケージ(\textbf{2011/09/09,~v0.981}).\\
-\Pkg{fontspec}パッケージが導入されていればこのパッケージも導入されているはずであるが,
-このv0.981以外のバージョンでは\LuaTeX-ja上で正しく動作しない危険性がある.
-%</ja>
-%<*zh>
-\Pkg{xunicode}宏包,当前版本必须为\textit{v0.981(2011/09/09)}。\\
-如果你使用\Pkg{fontspec}宏包,\Pkg{xunicode}就必须存在。但是请注意该包的
-版本,其他版本可能不会正常工作。
-%</zh>
+\item \LuaTeX\ beta-0.74.0 (or later)
+\item \Pkg{luaotfload} v2.2
+\item \Pkg{luatexbase} v0.6~(2013/05/04)
+\item \Pkg{xunicode} v0.981~(2011/09/09)
\end{itemize}
-%<*en>
-The installation methods are as follows:
-%</en>
+%<*!ja>
+\emph{From this version of \LuaTeX-ja, \TeX~Live~2012 (or older version) is
+no longer supported, since \LuaTeX\ binary and \Pkg{luaotfload} is updated in
+\TeX~Live~2013.}
+And conversely, older versions of \LuaTeX-ja (20130318.1 or earlier) don't work in
+\TeX~Live~2013.
+
+\medskip
+
+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}
+
+If you are using \TeX~Live~2013, you can install \LuaTeX-ja
+from \TeX~Live manager (\texttt{tlmgr}):
+\begin{verbatim}
+$ tlmgr install luatexja
+\end{verbatim}
+
+\medskip
+
+%<en>If you want to install manually, do the following instruvtions:
+%</!ja>
%<*ja>
-インストール方法は以下のようになる:
+\textbf{本バージョン以降の\LuaTeX-jaは\TeX~Live~2012以前では動作しない.}
+これは,\LuaTeX と\Pkg{luaotfload}が\TeX~Live~2013において更新されたことによる.
+逆に,20130318.1以前の\LuaTeX-jaは\TeX~Live~2013では動作しない.
+
+\medskip
+
+現在,\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}
+
+例えば\TeX~Live~2013を利用しているなら,\LuaTeX-jaは\TeX~Live manager (\texttt{tlmgr})を
+使ってインストールすることができる.
+\begin{verbatim}
+$ tlmgr install luatexja
+\end{verbatim}
+
+\medskip
+
+手動でインストールする場合の方法は以下のようになる:
%</ja>
%<*zh>
安装方法如下:
\begin{flushleft}
\url{http://git.sourceforge.jp/view?p=luatex-ja/luatexja.git;a=snapshot;h=HEAD;sf=tgz}.
\end{flushleft}
-\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}
- These are based on the \texttt{master} branch.
-\end{itemize}
+\end{itemize}
Note that the \texttt{master} branch, and hence the archive in CTAN, are not updated frequently;
the forefront of development is not the \texttt{master} branch.
\begin{flushleft}
\url{http://git.sourceforge.jp/view?p=luatex-ja/luatexja.git;a=snapshot;h=HEAD;sf=tgz}.
\end{flushleft}
-\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}
- これらは\texttt{master}ブランチの内容を元にしている.
\end{itemize}
-
\texttt{master}ブランチ(従って,CTAN内のアーカイブも)はたまにしか更新されないことに注意.
主な開発は\texttt{master}の外で行われ,比較的まとまってきたらそれを\texttt{master}に
反映させることにしている.
\begin{flushleft}
\url{http://git.sourceforge.jp/view?p=luatex-ja/luatexja.git;a=snapshot;h=HEAD;sf=tgz}.
\end{flushleft}
-\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}
- 这些版本都基于\texttt{master}分支。
\end{itemize}
-
注意\texttt{master}分支和CTAN仓库中的版本,升级并不频繁。
前段开发并未在\texttt{master}分支。
%</zh>
instead copying is also good.
%</en>
%<*ja>
-\item \texttt{src/}の中身を自分の\texttt{TEXMF}ツリーにコピーする.
+\item \texttt{src}の中身を自分の\texttt{TEXMF}ツリーにコピーする.
場所の例としては,例えば\texttt{TEXMF/tex/luatex/luatexja/}がある.
シンボリックリンクが利用できる環境で,かつリポジトリを直接取得したのであれば,
(更新を容易にするために)コピーではなくリンクを貼ることを勧める.
%<*zh>
\item 源文档编码必须是UTF-8。其他的编码,如EUC-JP和Shift-JIS都不被支持。
%</zh>
+%<*en>
+\item \LuaTeX-ja is very slower than \pTeX. Using LuaJIT\TeX slightly improve the situation.
+%</en>
+%<*ja>
+\item \LuaTeX-jaは動作が\pTeX に比べて非常に遅い.コードを変更して徐々に速くしているが,
+まだ満足できる速度ではない.LuaJIT\TeX を用いると\LuaTeX のだいたい1.3倍の速度で動くようである.
+%</ja>
\end{itemize}
%<en>\subsection{Using in plain \TeX}
\begin{itemize}
%<*en>
\item It is widely accepted that the font `Ryumin-Light' and
- `GothicBBB-Medium' aren't embedded into PDF files, and PDF reader
+ `GothicBBB-Medium' aren't embedded into PDF files, and a PDF reader
substitute them by some external Japanese fonts (\textit{e.g.},
Kozuka Mincho is used for Ryumin-Light in Adobe Reader). We adopt this custom to
the default setting.
%<*en>
\item The amount of glue that are inserted between a \textbf{JAchar} and
- an \textbf{ALchar} (the parameter \Param{xkanjiskip}) is set to
+ an \textbf{ALchar} (the parameter \Param{\hyperlink{fld:xks}{xkanjiskip}}) is set to
%</en>
%<*ja>
-\item \textbf{JAchar}と\textbf{ALchar}の間に入るグルー(\Param{xkanjiskip})の
+\item \textbf{JAchar}と\textbf{ALchar}の間に入るグルー(\Param{\hyperlink{fld:xks}{xkanjiskip}})の
量は次のように設定されている:
%</ja>
%<*zh>
\paragraph{plain \TeX}
%<*en>
-To change Japanese fonts in plain \TeX, you must use the primitive
+To change Japanese fonts in plain \TeX, you must use the control sequence
\verb+\jfont+. So please see Subsection~\ref{ssec-jfont}.
%</en>
%<*ja>
-plain \TeX で和文フォントを変更するためには,\verb+\jfont+ プリミティブを直接用いる.
+plain \TeX で和文フォントを変更するためには,\pTeX のように \verb+\jfont+ 命令を直接用いる.
\ref{ssec-jfont}節を参照.
%</ja>
%<*zh>
另注意,出格特性在这7个命令中默认关闭,因为此特性会与\textbf{JAglue}冲突(参见\ref{para-kern})。
%</zh>
-%<en>\subsection{Preset}
+%<!ja>\subsection{Preset}
%<ja>\subsection{プリセット設定}
\label{ssec-preset}
-%<*en>
+%<*!ja>
To use standard Japanese font settings easily, one can load \Pkg{luatexja-preset}
package with several options. This package provides functions in a part of
\Pkg{otf} package and a part of \Pkg{PXchfon} package by Takayuki Yato,
and loads \Pkg{luatexja-fontspec} internally.
-%</en>
+%</!ja>
%<*ja>
よく使われている和文フォント設定を一行で指定できるようにしたのが
\Pkg{luatexja-preset}パッケージである.このパッケージは,
合わせたような格好をしており,内部で\Pkg{luatexja-fontspec}を読み込んでいる.
%</ja>
-%<en>\paragraph{General options}
+%<!ja>\paragraph{General options}
%<ja>\paragraph{一般的なオプション}
\begin{list}{}{\def\makelabel{\ttfamily}\def\{{\char`\{}\def\}{\char`\}}\advance\leftmargin1\zw}
\item[deluxe]
-%<*en>
+%<*!ja>
Specifying this option enables us to use \textit{mincho} with two weights (medium~and~bold),
\textit{gothic} with three weights (medium,~bold and~heavy), and \textit{rounded gothic}%
\footnote{Provided by \texttt{\char92mgfamily},
The heavy weight of \textit{gothic} can be used by ``changing the family'' \verb+\gtebfamily+.
This is because \Pkg{fontspec} package can handle only medium (\verb+\mdseries+) and
bold (\verb+\bfseries+).
-%</en>
+%</!ja>
%<*ja>
明朝体2ウェイト・ゴシック体3ウェイトと,
丸ゴシック体 (\verb+\mgfamily+) を使用可能とする.
このような中途半端な実装になっている.
%</ja>
\item[expert]
-%<*en>
+%<*!ja>
Use horizontal kana alternates, and define a control sequence \verb+\rubyfamily+ to use kana
characters designed for ruby.
-%</en>
-%<*ja>
-横組専用仮名を用いる.また,\verb+\rubyfamily+ でルビ用仮名が使用可能となる.
-%</ja>
+%</!ja>
+%<ja>横組専用仮名を用いる.また,\verb+\rubyfamily+ でルビ用仮名が使用可能となる.
\item[bold]
-%<*en>
-Use bold gothic as bold mincho.
-%</en>
-%<*ja>
-明朝の太字をゴシック体の太字とする.
-%</ja>
+%<!ja>Use bold gothic as bold mincho.
+%<ja>明朝の太字をゴシック体の太字とする.
\item[90jis]
-%<*en>
-Use fonts with 90JIS glyphs if possible.
-%</en>
-%<*ja>
-出来る限り90JISの字形を採用しているフォントを使う.
-%</ja>
+%<!ja>Use 90JIS glyph variants if possible.
+%<ja>出来る限り90JISの字形を使う.
\item[jis2004]
-%<*en>
-Use fonts with JIS2004 glyphs if possible.
-%</en>
-%<*ja>
-出来る限りJIS2004の字形を採用しているフォントを使う.
-%</ja>
+%<!ja>Use JIS2004 glyph variants if possible.
+%<ja>出来る限りJIS2004の字形を使う.
\item[jis]
-%<*en>
+%<*!ja>
Use the JFM \texttt{jfm-jis.lua}, instead of \texttt{jfm-ujis.lua}, which is the default JFM of
\LuaTeX-ja.
-%</en>
+%</!ja>
%<*ja>
用いるJFMを(JISフォントメトリック類似の)\texttt{jfm-jis.lua}にする.このオプションがない時は
\LuaTeX-ja標準の\texttt{jfm-ujis.lua}が用いられる.
%<en>\paragraph{Kozuka fonts}
%<ja>\paragraph{小塚フォント}
%<*en>
-When using single weight, we adopt Kozuka~Gothic~M as \textit{gothic},
-because we think that Kozuka~Gothic~R looks thin.
There is not `Kozuka Maru Gothic', therefore Kozuka~Gothic~H is used
as a substitute for \textit{rounded gothic}.
%</en>
%<*ja>
-まず,小塚フォントを用いる設定を述べる.
-単ウェイト時のゴシック体は小塚ゴシックRでは細いように感じるので,
-小塚ゴシックMに変更している.
-さらに,丸ゴシック体はないので便宜上小塚ゴシックHで代用している.
+丸ゴシック体はないので便宜上小塚ゴシックHで代用している.
%</ja>
\begin{center}\small
\begin{tabular}{llll}
\toprule
-&\tt kozuka4&\tt kozuka6&\tt kozuka6n\\
+&\tt kozuka-pro&\tt kozuka-pr6&\tt kozuka-pr6n\\
\midrule
-%<*en>
+%<*!ja>
\bf mincho medium&Kozuka Mincho Pro R&Kozuka Mincho ProVI R&Kozuka Mincho Pr6N R\\
\bf mincho bold&Kozuka Mincho Pro B&Kozuka Mincho ProVI B&Kozuka Mincho Pr6N B\\
\midrule
\bf gothic medium\\
without \texttt{deluxe}
&Kozuka Gothic Pro M&Kozuka Gothic ProVI M&Kozuka Gothic Pr6N M\\
- multiple weights
+ with \texttt{deluxe}
&Kozuka Gothic Pro R&Kozuka Gothic ProVI R&Kozuka Gothic Pr6N R\\
\midrule
\bf gothic bold
&Kozuka Gothic Pro H&Kozuka Gothic ProVI H&Kozuka Gothic Pr6N H\\
(rounded gothic)
&Kozuka Gothic Pro H&Kozuka Gothic ProVI H&Kozuka Gothic Pr6N H\\
-%</en>
+%</!ja>
%<*ja>
\gt 明朝体細字&小塚明朝Pro~R&小塚明朝ProVI~R&小塚明朝Pr6N~R\\
\gt 明朝体太字&小塚明朝Pro~B&小塚明朝ProVI~B&小塚明朝Pr6N~B\\
\end{tabular}
\end{center}
-%<en>\paragraph{Hiragino and Morisawa}
-%<ja>\paragraph{ヒラギノ・モリサワ}
-%<*en>
-Settings for Hiragino fonts:
-%</en>
-%<*ja>
-まずヒラギノフォントから:
-%</ja>
-% これらは持っているわけではないので,フォント名が
-% 異なっているかもしれません.確認お願いします.
+%<en>\paragraph{Hiragino and Morisawa}\
+%<ja>\paragraph{ヒラギノ・モリサワ}\
\begin{center}\small
\begin{tabular}{lll}
\toprule
-&\tt hiragino&\tt hiraginon\\
+&\tt hiragino-pro&\tt hiragino-pron\\
\midrule
-%<*en>
+%<*!ja>
\bf mincho medium&
Hiragino Mincho Pro W3&Hiragino Mincho Pr6N W3\\
\bf mincho bold&
Hiragino Mincho Pro W6&Hiragino Mincho Pr6N W6\\
-\bf gothic medium&
-Hiragino Kaku Gothic Pro W3&Hiragino Kaku Gothic ProN W3\\
+\midrule
+\bf gothic medium\\
+ without \texttt{deluxe}
+&Hiragino Kaku Gothic Pro W6&Hiragino Kaku Gothic ProN W6\\
+ with \texttt{deluxe}
+&Hiragino Kaku Gothic Pro W3&Hiragino Kaku Gothic ProN W3\\
+\midrule
\bf gothic bold&
Hiragino Kaku Gothic Pro W6&Hiragino Kaku Gothic ProN W6\\
\bf gothic heavy&
Hiragino Kaku Gothic Std W8&Hiragino Kaku Gothic StdN W8\\
\bf rounded gothic&
Hiragino Maru Gothic Pro W4&Hiragino Maru Gothic ProN W4\\
-%</en>
+%</!ja>
%<*ja>
\gt 明朝体細字&
ヒラギノ明朝体Pro~W3&ヒラギノ明朝体Pr6N~W3\\
\gt 明朝体太字&
ヒラギノ明朝体Pro~W6&ヒラギノ明朝体Pr6N~W6\\
-\gt ゴシック体細字&
-ヒラギノ角ゴPro~W3&ヒラギノ角ゴProN~W3\\
+\midrule
+\gt ゴシック体細細字\\
+ 単ウェイト時
+&ヒラギノ角ゴPro~W6&ヒラギノ角ゴProN~W6\\
+ 多ウェイト時
+&ヒラギノ角ゴPro~W3&ヒラギノ角ゴProN~W3\\
+\midrule
\gt ゴシック体太字&
ヒラギノ角ゴPro~W6&ヒラギノ角ゴProN~W6\\
\gt ゴシック体極太&
\gt 丸ゴシック体&
ヒラギノ丸ゴPro~W4&ヒラギノ丸ゴProN~W4\\
%</ja>
-\bottomrule
-\end{tabular}
-\end{center}
-%<*en>
-Settings for Morisawa fonts:
-%</en>
-%<*ja>
-次はモリサワフォントを用いる設定である:
-%</ja>
-\begin{center}\small
-\begin{tabular}{lll}
-\toprule
-&\tt morisawa4&\tt morisawa6n\\
+\midrule
+\midrule
+&\tt morisawa-pro&\tt morisawa-pr6n\\
\midrule
%<*en>
\bf mincho medium&
%<en>\paragraph{Settings for single weight}
%<ja>\paragraph{単ウェイト用設定}
-%<*en>
+%<*!ja>
Next, we describe settings for using only single weight.
In four settings below, we use same fonts for medium and bold (and heavy) weights.
(Hence \verb+\mcfamily\bfseries+ and \verb+\mcfamily\mdseries+ yields same Japanese fonts,
if \texttt{deluxe} option is also specified).
-%</en>
+%</!ja>
%<*ja>
次に,単ウェイト用の設定を述べる.この4設定では「細字」「太字」の区別はない.
また,丸ゴシック体はゴシック体と同じフォントを用いる.
\toprule
&\tt noembed&\tt ipa&\tt ipaex&\tt ms\\
\midrule
-%<*en>
+%<*!ja>
\bf mincho&Ryumin-Light (non-embedded)
&IPAMincho&IPAexMincho&MS Mincho\\
\bf gothic&GothicBBB-Medium (non-embedded)
&IPAGothic&IPAexGothic&MS Gothic\\
-%</en>
+%</!ja>
%<*ja>
\gt 明朝体&Ryumin-Light(非埋込)
&IPA明朝&IPAex明朝&MS明朝\\
\end{tabular}
\end{center}
-%<en>\paragraph{Using HG fonts}
+%<!ja>\paragraph{Using HG fonts}
%<ja>\paragraph{HGフォントの利用}
-%<*en>
+%<*!ja>
We can use HG~fonts bundled with Microsoft Office for realizing multiple weights in Japanese fonts.
-%</en>
+%</!ja>
%<*ja>
すぐ前に書いた単ウェイト用設定を,Microsoft Office等に付属するHGフォントを使って
多ウェイト化した設定もある.
\begin{center}\small
\begin{tabular}{llll}
\toprule
-&\tt ipa-dx&\tt ipaex-dx&\tt ms-dx\\
+&\tt ipa-hg&\tt ipaex-hg&\tt ms-hg\\
\midrule
-%<*en>
+%<*!ja>
\bf mincho medium
&IPAMincho&IPAexMincho&MS Mincho\\\midrule
\bf mincho bold&
\multicolumn{3}{c}{HG Soei Kaku Gothic UB}\\\midrule
\bf rounded gothic&
\multicolumn{3}{c}{HG Maru Gothic PRO}\\
-%</en>
+%</!ja>
%<*ja>
\gt 明朝体細字
&IPA明朝&IPAex明朝&MS明朝\\\midrule
\bottomrule
\end{tabular}
\end{center}
-%<*en>
+%<*!ja>
Note that HG~Mincho~E, HG~Gothic~E, HG Soei Kaku Gothic UB and HG Maru Gothic PRO
are internally specified by:
\begin{description}
\item[{\tt 90jis}] by filename (\texttt{hgrme.ttc}, \texttt{hgrge.ttc}, \texttt{hgrsgu.ttc}, \texttt{hgrsmp.ttf}).
\item[{\tt jis2004}] by filename (\texttt{hgrme04.ttc}, \texttt{hgrge04.ttc}, \texttt{hgrsgu04.ttc}, \texttt{hgrsmp04.ttf}).
\end{description}
-%</en>
+%</!ja>
%<*ja>
なお,HG明朝E・HGゴシックE・HG創英角ゴシックUB・HG丸ゴシック体PROの4つについては,内部で
\begin{description}
%</zh>
\begin{LTXexample}
+\jfontspec{KozMinPr6N-Regular.otf}
森\UTF{9DD7}外と内田百\UTF{9592}とが\UTF{9AD9}島屋に行く。
\CID{7652}飾区の\CID{13706}野家,
-葛飾区の吉野家
+\CID{1481}城市,葛西駅,
+高崎と\CID{8705}\UTF{FA11}
+
+\aj半角{はんかくカタカナ}
\end{LTXexample}
%<*zh>
\egroup
%<*en>
To edit the range of \textbf{JAchar}s, you have to assign a non-zero
natural number which is less than 217 to the character range first. This
-can be done by using \verb+\ltjdefcharrange+ primitive. For example, the
+can be done by using \verb+\ltjdefcharrange+. For example, the
next line assigns whole characters in Supplementary Ideographic Plane
and the character `漢' to the range number~100.
%</en>
%<*ja>
\textbf{JAchar}の範囲を設定するためには,まず各文字に0より大きく217より小さいindexを
-å\89²ã\82\8aå½\93ã\81¦ã\82\8bå¿\85è¦\81ã\81\8cã\81\82ã\82\8bï¼\8eã\81\93ã\82\8cã\81«ã\81¯ \verb+\ltjdefcharrange+ ã\83\97ã\83ªã\83\9fã\83\86ã\82£ã\83\96ã\82\92ç\94¨ã\81\84ã\82\8bï¼\8e
+割り当てる必要がある.これには \verb+\ltjdefcharrange+ を用いる.
例えば,次のように書くことで追加漢字面(SIP)にある全ての文字と`漢'が
「100番の文字範囲」に属するように設定される.
%</ja>
\item \texttt{U+1F00}--\texttt{U+1FFF}: Greek Extended
%</en>
%<*ja>
-\item \texttt{U+0370}--\texttt{U+03FF}: ギリシア文字及びコプト文字
+\item \texttt{U+0370}--\texttt{U+03FF}: ギリシア文字・コプト文字
\item \texttt{U+0400}--\texttt{U+04FF}: キリル文字
\item \texttt{U+1F00}--\texttt{U+1FFF}: キリル文字補助
%</ja>
"2700--"27BF&Dingbats&
"2900--"297F&Supplemental Arrows-B\\
"2980--"29FF&Misc.\ Mathematical Symbols-B&
-"2B00--"2BFF&Miscellaneous Symbols and Arrows\\
-"E000--"F8FF&Private Use Area&
+"2B00--"2BFF&Miscellaneous Symbols and Arrows
%</en>
%<*ja>
"2000--"206F&一般句読点&
"2700--"27BF&装飾記号&
"2900--"297F&補助矢印B\\
"2980--"29FF&その他の数学記号B&
-"2B00--"2BFF&その他の記号及び矢印\\
-"E000--"F8FF&私用領域(外字領域)&
+"2B00--"2BFF&その他の記号及び矢印
%</ja>
%<*zh>
"2000--"206F&一般标点符号&
"2700--"27BF&什锦符号&
"2900--"297F&补充性箭头-B\\
"2980--"29FF&混合数学符号-B&
-"2B00--"2BFF&杂项符号和箭头符号\\
-"E000--"F8FF&私用区域&
+"2B00--"2BFF&杂项符号和箭头符号
%</zh>
\end{tabular}
\end{center}
\ltjdefcharrange{4}{%
"500-"10FF, "1200-"1DFF, "2440-"245F, "27C0-"28FF, "2A00-"2AFF,
"2C00-"2E7F, "4DC0-"4DFF, "A4D0-"A82F, "A840-"ABFF, "FB50-"FE0F,
- "FE20-"FE2F, "FE70-"FEFF, "FB00-"FB4F, "10000-"1FFFF} % non-Japanese
+ "FE20-"FE2F, "FE70-"FEFF, "FB00-"FB4F, "10000-"1FFFF, "E000-"F8FF} % non-Japanese
\end{lstlisting}
%<*en>
\item[Range~5${}^{\text{A}}$] Surrogates and Supplementary Private Use Areas.
kanjiskip}).
%</en>
%<*ja>
-\item デフォルトで2つの\textbf{JAchar}の間に挿入されるグルー(\Param{kanjiskip}).
+\item デフォルトで2つの\textbf{JAchar}の間に挿入されるグルー(\Param{\hyperlink{fld:kanjiskip}{kanjiskip}}).
%</ja>
%<*zh>
-\item 两个\textbf{JAchar}之间默认插入的胶(\Param{kanjiskip})。
+\item 两个\textbf{JAchar}之间默认插入的胶(\Param{\hyperlink{fld:kanjiskip}{kanjiskip}})。
%</zh>
%<*en>
\item The default glue which inserted between a \textbf{JAchar} and an
- \textbf{ALchar} (\Param{xkanjiskip}).
+ \textbf{ALchar} (\Param{\hyperlink{fld:xks}{xkanjiskip}}).
%</en>
%<*ja>
-\item デフォルトで\textbf{JAchar}と\textbf{ALchar}の間に挿入されるグルー(\Param{xkanjiskip}).
+\item デフォルトで\textbf{JAchar}と\textbf{ALchar}の間に挿入されるグルー(\Param{\hyperlink{fld:xks}{xkanjiskip}}).
%</ja>
%<*zh>
-\item \textbf{JAchar}和\textbf{ALchar}之间默认插入的胶(\Param{xkanjiskip})。
+\item \textbf{JAchar}和\textbf{ALchar}之间默认插入的胶(\Param{\hyperlink{fld:xks}{xkanjiskip}})。
%</zh>
\end{itemize}
%<*en>
-The value (a skip) of \Param{kanjiskip} or \Param{xkanjiskip} can be
+The value (a skip) of \Param{\hyperlink{fld:kanjiskip}{kanjiskip}} or \Param{\hyperlink{fld:xks}{xkanjiskip}} can be
changed as the following.
%</en>
%<*ja>
-\Param{kanjiskip}や\Param{xkanjiskip}の値は以下のようにして変更可能である.
+\Param{\hyperlink{fld:kanjiskip}{kanjiskip}}や\Param{\hyperlink{fld:xks}{xkanjiskip}}の値は以下のようにして変更可能である.
%</ja>
%<*zh>
-\Param{kanjiskip}和\Param{xkanjiskip}的设定如下所示:
+\Param{\hyperlink{fld:kanjiskip}{kanjiskip}}和\Param{\hyperlink{fld:xks}{xkanjiskip}}的设定如下所示:
%</zh>
\begin{lstlisting}
\ltjsetparameter{kanjiskip={0pt plus 0.4pt minus 0.4pt},
\end{lstlisting}
%<*en>
-It may occur that JFM contains the data of `ideal width of \Param{kanjiskip}'
-and/or `ideal width of \Param{xkanjiskip}'.
-To use these data from JFM, set the value of \Param{kanjiskip} or
-\Param{xkanjiskip} to \verb+\maxdimen+.
+It may occur that JFM contains the data of `ideal width of \Param{\hyperlink{fld:kanjiskip}{kanjiskip}}'
+and/or `ideal width of \Param{\hyperlink{fld:xks}{xkanjiskip}}'.
+To use these data from JFM, set the value of \Param{\hyperlink{fld:kanjiskip}{kanjiskip}} or
+\Param{\hyperlink{fld:xks}{xkanjiskip}} to \verb+\maxdimen+.
%</en>
%<*ja>
-JFMは「望ましい\Param{kanjiskip}の値」や「望ましい\Param{xkanjiskip}の値」を
+JFMは「望ましい\Param{\hyperlink{fld:kanjiskip}{kanjiskip}}の値」や「望ましい\Param{\hyperlink{fld:xks}{xkanjiskip}}の値」を
持っていることがある.
-これらのデータを使うためには,\Param{kanjiskip}や\Param{xkanjiskip}の
+これらのデータを使うためには,\Param{\hyperlink{fld:kanjiskip}{kanjiskip}}や\Param{\hyperlink{fld:xks}{xkanjiskip}}の
値を \verb+\maxdimen+ の値に設定すればよい.
%</ja>
%<*zh>
-当JFM包含“\Param{kanjiskip}理想宽度”和/或“\Param{xkanjiskip}理想宽度”数据时,
-上述设定产生作用。如果想用JFM中的数据,请设定\Param{kanjiskip}或\textsf{xkanjiskip}为\verb!\maxdimen!。
+当JFM包含“\Param{\hyperlink{fld:kanjiskip}{kanjiskip}}理想宽度”和/或“\Param{\hyperlink{fld:xks}{xkanjiskip}}理想宽度”数据时,
+上述设定产生作用。如果想用JFM中的数据,请设定\Param{\hyperlink{fld:kanjiskip}{kanjiskip}}或\textsf{xkanjiskip}为\verb!\maxdimen!。
%</zh>
%<en>\subsection{Insertion Setting of \Param{xkanjiskip}}
%<zh>\subsection{\Param{xkanjiskip}插入设定}
%<*en>
-It is not desirable that \Param{xkanjiskip} is inserted into every
+It is not desirable that \Param{\hyperlink{fld:xks}{xkanjiskip}} is inserted into every
boundary between \textbf{JAchar}s and \textbf{ALchar}s. For example,
-\Param{xkanjiskip} should not be inserted after opening parenthesis
+\Param{\hyperlink{fld:xks}{xkanjiskip}} should not be inserted after opening parenthesis
(\textit{e.g.}, compare `(あ' and `(\hskip\ltjgetparameter{xkanjiskip}あ').
-\LuaTeX-ja can control whether \Param{xkanjiskip} can be inserted
+\LuaTeX-ja can control whether \Param{\hyperlink{fld:xks}{xkanjiskip}} can be inserted
before/after a character, by changing \Param{jaxspmode} for \textbf{JAchar}s and
\Param{alxspmode} parameters \textbf{ALchar}s respectively.
%</en>
%<*ja>
-\Param{xkanjiskip}がすべての\textbf{JAchar}と\textbf{ALchar}の境界に
-挿入されるのは望ましいことではない.例えば,\Param{xkanjiskip}は開き括弧の
+\Param{\hyperlink{fld:xks}{xkanjiskip}}がすべての\textbf{JAchar}と\textbf{ALchar}の境界に
+挿入されるのは望ましいことではない.例えば,\Param{\hyperlink{fld:xks}{xkanjiskip}}は開き括弧の
後には挿入されるべきではない(`(あ'と`(\hskip\ltjgetparameter{xkanjiskip}あ'を
比べてみよ).
-\LuaTeX-jaでは\Param{xkanjiskip}をある文字の前/後に挿入するかどうかを,
+\LuaTeX-jaでは\Param{\hyperlink{fld:xks}{xkanjiskip}}をある文字の前/後に挿入するかどうかを,
\textbf{JAchar}に対しては\Param{jaxspmode}を,\textbf{ALchar}に対しては
\Param{alxspmode}をそれぞれ変えることで制御することができる.
%</ja>
%<*zh>
并不是在所有的\textbf{JAchar}和\textbf{ALchar}周围插入\textsf{xkanjiskip}都是合适的。
-比如,在开标点之后插入\Param{xkanjiskip}并不合适[如,比较“(あ”和“(\hskip\ltjgetparameter{xkanjiskip}あ”]。
+比如,在开标点之后插入\Param{\hyperlink{fld:xks}{xkanjiskip}}并不合适[如,比较“(あ”和“(\hskip\ltjgetparameter{xkanjiskip}あ”]。
\LuaTeX-ja可以通过设定\textbf{JAchar}的\Param{jaxspmode}以及\textbf{ALchar}的\Param{alxspmode}来控制
-\Param{xkanjiskip}在字符前后的插入。
+\Param{\hyperlink{fld:xks}{xkanjiskip}}在字符前后的插入。
%</zh>
\begin{LTXexample}
\ltjsetparameter{jaxspmode={`あ,preonly}, alxspmode={`\!,postonly}}
%<*en>
The second argument \texttt{preonly} means `the insertion of
-\Param{xkanjiskip} is allowed before this character, but not after'.
+\Param{\hyperlink{fld:xks}{xkanjiskip}} is allowed before this character, but not after'.
the other possible values are \texttt{postonly}, \texttt{allow} and \texttt{
inhibit}.
%</en>
%<*ja>
-2つ目の引数の \texttt{preonly}は「\Param{xkanjiskip}の挿入はこの文字の
+2つ目の引数の \texttt{preonly}は「\Param{\hyperlink{fld:xks}{xkanjiskip}}の挿入はこの文字の
前でのみ許され,後では許さない」ことを意味する.他に指定可能な値は
\texttt{postonly}, \texttt{allow}, \texttt{inhibit}である.
%</ja>
%</zh>
%<*en>
-If you want to enable/disable all insertions of \Param{kanjiskip} and
-\Param{xkanjiskip}, set \Param{autospacing} and \Param{autoxspacing}
+If you want to enable/disable all insertions of \Param{\hyperlink{fld:kanjiskip}{kanjiskip}} and
+\Param{\hyperlink{fld:xks}{xkanjiskip}}, set \Param{autospacing} and \Param{autoxspacing}
parameters to \texttt{true}/\texttt{false}, respectively.
%</en>
%<*ja>
-もし全ての\Param{kanjiskip}と\Param{xkanjiskip}の挿入を有効化/無効化
+もし全ての\Param{\hyperlink{fld:kanjiskip}{kanjiskip}}と\Param{\hyperlink{fld:xks}{xkanjiskip}}の挿入を有効化/無効化
したければ,それぞれ\Param{autospacing}と\Param{autoxspacing}を
\texttt{true}/\texttt{false}に設定すればよい.
%</ja>
%<*zh>
-如果你想要启用/屏蔽所有的\Param{kanjiskip}和\Param{xkanjiskip}插入,设定
+如果你想要启用/屏蔽所有的\Param{\hyperlink{fld:kanjiskip}{kanjiskip}}和\Param{\hyperlink{fld:xks}{xkanjiskip}}插入,设定
\Param{autospacing}和\Param{autoxspcing}为\texttt{ture}/\texttt{false}即可。
%</zh>
%<en>\section{Font Metric and Japanese Font}
%<ja>\section{フォントメトリックと和文フォント}
%<zh>\section{字体测度和日文字体}
-%<en>\subsection{\texttt{\char92jfont} primitive}
-%<ja>\subsection{\texttt{\char92jfont}プリミティブ}
+%<en>\subsection{\texttt{\char92jfont}}
+%<ja>\subsection{\texttt{\char92jfont} 命令}
%<zh>\subsection{\texttt{\char92jfont}基本语句}
\label{ssec-jfont}
%<*en>
To load a font as a Japanese font, you must use the
-\verb+\jfont+ primitive instead of~\verb+\font+, while
+\verb+\jfont+ instead of~\verb+\font+, while
\verb+\jfont+ admits the same syntax used in~\verb+\font+.
\LuaTeX-ja automatically loads \Pkg{luaotfload} package,
so TrueType/OpenType fonts with features can be used for Japanese fonts:
%</en>
%<*ja>
-ã\83\95ã\82©ã\83³ã\83\88ã\82\92å\92\8cæ\96\87ã\83\95ã\82©ã\83³ã\83\88ã\81¨ã\81\97ã\81¦èªã\81¿è¾¼ã\82\80ã\81\9fã\82\81ã\81«ã\81¯ï¼\8c\verb+\jfont+ ã\83\97ã\83ªã\83\9fã\83\86ã\82£ã\83\96ã\82\92
+フォントを和文フォントとして読み込むためには,\verb+\jfont+ を
\verb+\font+ プリミティブの代わりに用いる.
-\verb+\jfont+ ã\83\97ã\83ªã\83\9fã\83\86ã\82£ã\83\96ã\81®æ\96\87æ³\95ã\81¯ \verb+\font+ ã\81¨å\90\8cã\81\98ã\81§ã\81\82ã\82\8bï¼\8e
+\verb+\jfont+ の文法は \verb+\font+ と同じである.
\LuaTeX-jaは\Pkg{luaotfload}パッケージを自動的に読み込むので,
TrueType/OpenTypeフォントにfeatureを指定したものを和文フォントとして用いる
ことができる:
As noted in Introduction, a JFM has measurements of characters and
glues/kerns that are automatically inserted for Japanese
typesetting. The structure of JFM will be described in the next
-subsection. At the calling of \verb+\jfont+ primitive, you must specify
+subsection. At the calling of \verb+\jfont+, you must specify
which JFM will be used for this font by the following keys:
%</en>
%<*ja>
「はじめに」の節で述べたように,JFMは文字と和文組版で自動的に挿入される
グルー/カーンの寸法情報を持っている.JFMの構造は次の小節で述べる.
-\verb+\jfont+ プリミティブの呼び出しの際には,どのJFMを用いるのかを以下のキーで
+\verb+\jfont+ 命令の呼び出しの際には,どのJFMを用いるのかを以下のキーで
指定する必要がある:
%</ja>
%<*zh>
\begin{itemize}
%<*en>
\item You should specify \texttt{-kern} in
- \verb+jfont+ primitive, when you want to use other font features,
+ \verb+jfont+ when you want to use other font features,
such as \texttt{script=...}\,.
%</en>
%<*ja>
\item \texttt{script=...}といったfeatureを使いたい場合には,\verb+\jfont+
- ã\83\97ã\83ªã\83\9fã\83\86ã\82£ã\83\96ã\81«\texttt{-kern}ã\82\92æ\8c\87å®\9aã\81\99ã\82\8bã\81¹ã\81\8dã\81§ã\81\82ã\82\8bï¼\8e
+ に\texttt{-kern}を指定するべきである.
%</ja>
%<*zh>
\item 当你想使用其他字体特性如\texttt{script=...}的时候,可以在\verb!jfont!基本语句中设置\texttt{-kern}
%<zh>\subsection{\texttt{psft}前缀}
\label{ssec-psft}
%<*en>
-Besides \texttt{file:}\ and \texttt{name:}\ prefixes, one can use \texttt{psft:}\
-prefix in \verb+\jfont+ (and~\verb+\font+) primitive,
+Besides `\texttt{file:}'\ and `\texttt{name:}'\ prefixes, one can use `\texttt{psft:}'\
+prefix in \verb+\jfont+ (and~\verb+\font+),
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'.
+\emph{OpenType font features, such as `{\tt +jp90}',
+have no meaning in `name-only' fonts using this `{\tt psft:}'\ prefix.
+This is because we can't expect what fonts are actually used by the PDF reader.}
%</en>
%<*ja>
-\texttt{file:}と\texttt{name:}のプリフィックスに加えて,
-\verb+\jfont+ プリミティブ(と \verb+\font+ プリミティブ)では
+\texttt{file:} と \texttt{name:} のプリフィックスに加えて,
+\verb+\jfont+(と \verb+\font+ プリミティブ)では
\texttt{psft:}プリフィックスを用いることができる.
このプリフィックスを用いることで,PDFには埋め込まれない「名前だけの」
和文フォントを指定することができる.「標準的な」和文フォント,
つまり`Ryumin-Light'と`GothicBBB-Medium'の指定でこのプリフィックスが使われる.
+\textbf{非埋込フォントをPDFに使用すると,実際にどのようなフォントが表示に用いられるか予測できない.
+本プリフィックス指定時には,\texttt{+jp90} などのOpenType font featureの効力はない.}
%</ja>
%<*zh>
除使用\texttt{file:}和\texttt{name:}外,我们还可以在\verb!\jfont!(以及\verb!\font!)
中使用\texttt{psft:}来设定一个“名义上”的并不嵌入PDF中的日文字体。
此前缀的典型使用是定义“标准”日文字体,即“Ryumin-Light”和“GothicBBB-Medium”。
-\paragraph{\texttt{cid}键} 默认使用\texttt{psft:}前缀定义的字体是为Adobe-Japan1-6 CID字体。
-也可以使用\texttt{cid}键来使用其他的CID字体,如中文和韩文。
%</zh>
+%<*zh>
+\paragraph{\texttt{cid}键}
+默认使用\texttt{psft:}前缀定义的字体是为Adobe-Japan1-6 CID字体。
+也可以使用\texttt{cid}键来使用其他的CID字体,如中文和韩文。
+%</zh>
%<en>\paragraph{\texttt{cid} key}
%<ja>\paragraph{\texttt{cid}キー}
\label{para-cid}
というエラーが出る.
%</ja>
+%<*ja>
+\paragraph{\texttt{extend}と\texttt{slant}}
+OpenType font featureと見かけ上同じような形式で指定できるものに,
+\begin{description}
+\item[\texttt{extend=}<extend>] 横方向に<extend>倍拡大する.
+\item[\texttt{slant=}<slant>] <slant>に指定された割合だけ傾ける.
+\end{description}
+の2つがあり,これらだけは\texttt{psft}プリフィックスでも使用可能にしている.
+\texttt{extend}や\texttt{slant}を指定した場合は,それに応じたJFMを指定すべきである%
+\footnote{\LuaTeX-jaでは,これらに対するJFMを特に提供することはしない予定である.}.
+例えば,次の例では無理やり通常のJFMを使っているために,文字間隔やイタリック補正量が
+正しくない:
+%</ja>
+%<*!ja>
+\paragraph{\texttt{extend} and \texttt{slant}}
+The following setting can be specified as OpenType font features:
+\begin{description}
+\item[\texttt{extend=}<extend>] expand the font horizontally by <extend>.
+\item[\texttt{slant=}<slant>] slant the font.
+\end{description}
+These two settings are also supported with \texttt{psft} prefix.
+Note that \LuaTeX-ja doesn't adjust JFMs by these \texttt{extend} and \texttt{slant}
+settings; you have to write new JFMs on purpose.
+For example, the following example uses the standard JFM \texttt{jfm-ujis.lua}, hence
+letter-spacing and the width of italic correction are not correct:
+%</!ja>
+\begin{LTXexample}[width=0.3\textwidth]
+\jfont\E=psft:Ryumin-Light:extend=1.5;jfm=ujis
+\E あいうえお
+
+\jfont\S=psft:Ryumin-Light:slant=1;jfm=ujis
+\S あいう\/ABC
+\end{LTXexample}
+
%<en>\subsection{Structure of JFM file}
%<ja>\subsection{JFMファイルの構造}
%<zh>\subsection{JFM结构}
%<zh>(可选)
%<*en>
-This field specifies the `ideal' amount of \Param{kanjiskip}. As noted
+This field specifies the `ideal' amount of \Param{\hyperlink{fld:kanjiskip}{kanjiskip}}. As noted
in Subsection~\ref{subs-kskip}, if the parameter
- \Param{kanjiskip} is \verb+\maxdimen+, the value specified
+ \Param{\hyperlink{fld:kanjiskip}{kanjiskip}} is \verb+\maxdimen+, the value specified
in this field is actually used (if this field is not specified in
JFM, it is regarded as 0\,pt). Note that <stretch> and <shrink>
fields are in design-size unit too.
%</en>
%<*ja>
-「理想的な」\Param{kanjiskip}の量を指定する.\ref{subs-kskip}節で述べたように,
-もし\Param{kanjiskip}が \verb+\maxdimen+ の値ならば,このフィールドで指定された
+「理想的な」\Param{\hyperlink{fld:kanjiskip}{kanjiskip}}の量を指定する.\ref{subs-kskip}節で述べたように,
+もし\Param{\hyperlink{fld:kanjiskip}{kanjiskip}}が \verb+\maxdimen+ の値ならば,このフィールドで指定された
値が実際には用いられる(もしこのフィールドがJFMで指定されていなければ,
0\,ptであるものとして扱われる).<stretch>と<shrink>のフィールドもdesign-size
が単位であることに注意せよ.
%</ja>
%<*zh>
-这部分为“理想长度”\Param{kanjiskip}。\ref{subs-kskip}节有详述,如果参数\Param{kanjiskip}
+这部分为“理想长度”\Param{\hyperlink{fld:kanjiskip}{kanjiskip}}。\ref{subs-kskip}节有详述,如果参数\Param{\hyperlink{fld:kanjiskip}{kanjiskip}}
为\verb!\maxdimen!,则值设定将会被使用(若再JFM中未设定,则被视为0\,pt)。
请注意,<stretch>和<shrink>的长度均为design-size单位。
%</zh>
%<zh>(可选)
%<*en>
-Like the \Param{kanjiskip} field, this field specifies the `ideal'
- amount of \Param{xkanjiskip}.
+Like the \texttt{kanjiskip} field, this field specifies the `ideal'
+ amount of \Param{\hyperlink{fld:xks}{xkanjiskip}}.
%</en>
%<*ja>
-\Param{kanjiskip}フィールドと同様に,\Param{xkanjiskip}の「理想的な」量を
+\texttt{kanjiskip}フィールドと同様に,\Param{\hyperlink{fld:xks}{xkanjiskip}}の「理想的な」量を
指定する.
%</ja>
%<*zh>
-和\Param{kanjiskip}类似,此部分设定\Param{xkanjiskip}的“理想长度”。
+和\texttt{kanjiskip}类似,此部分设定\Param{\hyperlink{fld:xks}{xkanjiskip}}的“理想长度”。
%</zh>
\end{list}
\textbf{JAchar}s). In the list, character(s) can be specified in the following form:
\begin{itemize}
\item a Unicode code point
-\item the character itself (as a Lua string, like \verb+'あ'+)
-\item a string like \verb+'あ*'+ (the character followed by an asterisk)
+\item the character itself (as a Lua string, like \hbox{\ltjsetparameter{autoxspacing=false}\verb+'あ'+})
+\item a string like \hbox{\ltjsetparameter{autoxspacing=false}\verb+'あ*'+} (the character followed by an asterisk)
\item several ``imaginary'' characters (We will describe these later.)
\end{itemize}
%</en>
除いた全ての\textbf{JAchar}が属するから).このリスト中で文字を指定するには,以下の方法がある:
\begin{itemize}
\item Unicode におけるコード番号
-\item 「\verb+'あ'+」のような,文字それ自体
-\item 「\verb+'あ*'+」のような,文字それ自体の後にアスタリスクをつけたもの
+\item 「\hbox{\ltjsetparameter{autoxspacing=false}\verb+'あ'+}」のような,文字それ自体
+\item 「\hbox{\ltjsetparameter{autoxspacing=false}\verb+'あ*'+}」のような,文字それ自体の後にアスタリスクをつけたもの
\item いくつかの「仮想的な文字」(後に説明する)
\end{itemize}
%</ja>
文字クラス$i$に属する文字の幅,高さ,深さ,イタリック補正の量を指定する.
文字クラス$i$に属する全ての文字は,その幅,高さ,深さがこのフィールドで指定した
値であるものとして扱われる.
-しかし,例外が一つある:もし\texttt{'prop'}が\texttt{width}フィールドに
+しかし,例外が一つある:もし \texttt{'prop'} が \texttt{width} フィールドに
指定された場合,文字の幅はその「実際の」グリフの幅となる.
%</ja>
%<*zh>
\label{fig-pos}
\end{figure}
-\item[kern={\{[$j$]=<kern>, ...\}}]
+\item[kern={\{[$j$]=<kern>, [$j'$]=\{<kern>, [<ratio>]\}, ...\}}]
-\item[glue={\{[$j$]=\{<width>, <stretch>, <shrink>, [<priority>]\}, ...\}}]
+\item[glue={\{[$j$]=\{<width>, <stretch>, <shrink>, [<priority>], [<ratio>]\}, ...\}}]
%<*ja>
文字クラス$i$の文字と$j$の文字の間に挿入されるkernやglueの量を指定する.
度を$-2$から$+2$の間の整数で指定する.<priority>の省略時の値
は0であり,範囲外の値が指定されたときの動作は未定義である).
+<ratio>も省略可能フィールドであり,$-1$から$+1$の実数値をとる.省略時の値は0である.
+\begin{itemize}
+\item $-1$はこのグルーが「前の文字」由来であることを示す.
+\item $+1$はこのグルーが「後の文字」由来であることを示す.
+\item それ以外の値は,「前の文字」由来のグルーと「後の文字」由来の
+グルーが混合されていることを示す.
+\end{itemize}
+なお,このフィールドの値は\Param{\hyperlink{fld:diffjfm}{differentjfm}}の値が\texttt{pleft},~\texttt{pright},~\texttt{paverage}の値のときのみ実際に用いられる.
+
+例えば,\cite{x4051}では,句点と中点の間には,
+句点由来の二分空きと中点由来の四分空きが挿入されるが,この場合には
+\begin{itemize}
+\item <width>には$0.5+0.25=0.75$を指定する.
+\item <ratio>には次の値を指定する.
+\[
+ -1\cdot \frac{0.5}{0.5+0.25} + 1 \cdot \frac{0.25}{0.5+0.25} = -\frac13
+\]
+\end{itemize}
+
%</ja>
\item[end\_stretch=<kern>]
%%%<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['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>
\begin{table}[!tb]
-%<en>\caption{Primitives for Japanese math fonts.}
-%<ja>\caption{和文数式フォントに対するプリミティブ.}
+%<en>\caption{Control sequences for Japanese math fonts}
+%<ja>\caption{和文数式フォントに対する命令}
%<zh>\caption{日语数学字体基本语句}
\label{tab-math}
\begin{center}
%<en>\section{Parameters}
%<ja>\section{パラメータ}
%<zh>\section{参数}
-%<en>\subsection{\texttt{\char92 ltjsetparameter} primitive}
-%<ja>\subsection{\texttt{\char92 ltjsetparameter}プリミティブ}
+%<en>\subsection{\texttt{\char92 ltjsetparameter}}
+%<ja>\subsection{\texttt{\char92 ltjsetparameter}命令}
%<zh>\subsection{\texttt{\char92 ltjsetparameter}基本参数}
%<*en>
As noted before, \verb+\ltjsetparameter+ and \verb+\ltjgetparameter+ are
-primitives for accessing most parameters of \LuaTeX-ja. One of the main
+control sequences for accessing most parameters of \LuaTeX-ja. One of the main
reason that \LuaTeX-ja didn't adopted the syntax similar to that of \pTeX\
(\textit{e.g.},~\verb+\prebreakpenalty`)=10000+)
is the position of \verb+hpack_filter+ callback in the source
%</en>
%<*ja>
先に述べたように,\verb+\ltjsetparameter+ と \verb+\ltjgetparameter+ は
-\LuaTeX-jaのほとんどのパラメータにアクセスするためのプリミティブである.
+\LuaTeX-jaのほとんどのパラメータにアクセスするための命令である.
\LuaTeX-jaが\pTeX のような文法(例えば,\verb+\prebreakpenalty`)=10000+)を
採用しない理由の一つは,\LuaTeX のソースにおける \verb+hpack_filter+
コールバックの位置にある.\ref{sec-para}節を参照.
%</ja>
%<*en>
-\verb+\ltjsetparameter+ and \verb+\ltjglobalsetparameter+ are primitives
+\verb+\ltjsetparameter+ and \verb+\ltjglobalsetparameter+ are control sequences
for assigning parameters. These take one argument which is a
\texttt{<key>=<value>} list. Allowed keys are described in the next
subsection.
%</en>
%<*ja>
\verb+\ltjsetparameter+ と \verb+\ltjglobalsetparameter+ はパラメータを
-指定するためのプリミティブである.これらは\texttt{<key>=<value>}のリストを
+指定するための命令である.これらは\texttt{<key>=<value>}のリストを
引数としてとる.許されるキーは次の節に記述する.
\verb+\ltjsetparameter+ と \verb+\ltjglobalsetparameter+ の違いはスコープの
違いのみである.
%</ja>
%<*en>
-\verb+\ltjgetparameter+ is the primitive for acquiring parameters. It
+\verb+\ltjgetparameter+ is for acquiring parameters. It
always takes a parameter name as first argument, and also takes the
additional argument---a character code, for example---in some cases.
%</en>
%<*ja>
-\verb+\ltjgetparameter+ はパラメータの値を取得するためのプリミティブであり,
+\verb+\ltjgetparameter+ はパラメータの値を取得するための命令であり,
常にパラメータの名前を第一引数にとる.
そして,いくつかの場合には加えてさらに引数(例えば文字コード)をとる.
%</ja>
%<zh>\subsection{参数一览}
\label{ssec-param}
-%<*en>
+%<*!ja>
The following is the list of parameters which can be specified by the
\verb+\ltjsetparameter+ command. [\verb+\cs+] indicates the counterpart
in \pTeX, and symbols beside each parameter has the following meaning:
-%</en>
+%</!ja>
%<*ja>
以下は \verb+\ltjsetparameter+ に指定することができるパラメータの一覧である.
[\verb+\cs+]は\pTeX における対応物を示す.
また,それぞれのパラメータの右上にある記号には次の意味がある:
%</ja>
\begin{itemize}
-%<*zh>
-\item % avoiding from error ``Something's wrong--perhaps a missing \item.''.
-%</zh>
-%<*en>
+%<*!ja>
\item No mark: values at the end of the paragraph or the hbox are
adopted in the whole paragraph/hbox.
-%</en>
+%</!ja>
%<*ja>
\item 記号なし:段落や水平ボックスの終端での値がその段落/水平ボックス全体で用いられる.
%</ja>
-%<*en>
+%<*!ja>
\item `\ast' : local parameters, which can change everywhere inside a paragraph/hbox.
-%</en>
+%</!ja>
%<*ja>
\item `\ast':ローカルなパラメータであり,段落/水平ボックス内のどこででも値を変えることができる.
%</ja>
-%<*en>
+%<*!ja>
\item `\dagger': assignments are always global.
-%</en>
+%</!ja>
%<*ja>
\item `\dagger':指定は常にグローバルになる.
%</ja>
みなされるかどうかを表している(上の\Param{jcharwidowpenalty}の記述を参照).
%</ja>
-\item[\Param{prebreakpenalty}\,=\{<chr\_code>,<penalty>\}] [\verb+\prebreakpenalty+]\
+\item[\Param{\hypertarget{fld:prebp}{prebreakpenalty}}\,=\{<chr\_code>,<penalty>\}] [\verb+\prebreakpenalty+]\
%<*ja>
文字コード<chr\_code>の\textbf{JAchar}が行頭にくることを抑止するために,
この文字の前に挿入/追加されるペナルティの量を指定する.
-例えば閉じ括弧「〗」は絶対に行頭にきてはならないので,標準で読み込まれる
- \texttt{luatexja-kinsoku.tex}において
+例えば閉じ括弧「〗」は絶対に行頭にきてはならないので,
\begin{verbatim}
\ltjsetparameter{prebreakpenalty={`〙,10000}}
\end{verbatim}
-と,最大値の10000が指定されている.他にも,小書きのカナなど,絶対禁止とい
+ã\81¨ï¼\8cæ\9c\80大å\80¤ã\81®10000ã\81\8cæ¨\99æº\96ã\81§æ\8c\87å®\9aã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bï¼\8eä»\96ã\81«ã\82\82ï¼\8cå°\8fæ\9b¸ã\81\8dã\81®ã\82«ã\83\8aã\81ªã\81©ï¼\8c絶対ç¦\81æ¢ã\81¨ã\81\84
うわけではないができれば行頭にはきて欲しくない場合に,0と
10000の間の値を指定するのも有用であろう.
-\begin{verbatim}
-\ltjsetparameter{prebreakpenalty={`ゕ,150}}
-\end{verbatim}
%</ja>
-\item[\Param{postbreakpenalty}\,=\{<chr\_code>,<penalty>\}] [\verb+\postbreakpenalty+]
+\item[\Param{\hypertarget{fld:postbp}{postbreakpenalty}}\,=\{<chr\_code>,<penalty>\}] [\verb+\postbreakpenalty+]
%<*ja>
文字コード<chr\_code>の\textbf{JAchar}が行末にくることを抑止するために,
この文字の後に挿入/追加されるペナルティの量を指定する.
\item[\Param{jaxspmode}\,=\{<chr\_code>,<mode>\}]
%<*en>
-Setting whether inserting \Param{xkanjiskip} is allowed before/after a \textbf{JAchar} whose character code is <chr\_code>.
+Setting whether inserting \Param{\hyperlink{fld:xks}{xkanjiskip}} is allowed before/after a \textbf{JAchar} whose character code is <chr\_code>.
The followings are allowed for <mode>:
%</en>
%<*ja>
-文字コードが<chr\_code>の\textbf{JAchar}の前/後ろに\Param{xkanjiskip}の
+文字コードが<chr\_code>の\textbf{JAchar}の前/後ろに\Param{\hyperlink{fld:xks}{xkanjiskip}}の
挿入を許すかどうかの設定.
以下の<mode>が許される:
%</ja>
\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}。此为默认值。
+%<en>\item[0, \texttt{inhibit}] Insertion of \Param{\hyperlink{fld:xks}{xkanjiskip}} is inhibited before the character, nor after the character.
+%<ja>\item[0, \texttt{inhibit}] \Param{\hyperlink{fld:xks}{xkanjiskip}}の挿入は文字の前/後ろのいずれでも禁止される.
+%<zh>\item[0, \texttt{inhibit}] 插入文字前/后的\Param{\hyperlink{fld:xks}{xkanjiskip}}均被禁止。
+%<en>\item[1, \texttt{preonly}] Insertion of \Param{\hyperlink{fld:xks}{xkanjiskip}} is allowed before the character, but not after.
+%<ja>\item[1, \texttt{preonly}] \Param{\hyperlink{fld:xks}{xkanjiskip}}の挿入は文字の前では許されるが,後ろでは許されない.
+%<zh>\item[1, \texttt{preonly}] 文字前允许插入\Param{\hyperlink{fld:xks}{xkanjiskip}},但其后不允许插入。
+%<en>\item[2, \texttt{postonly}] Insertion of \Param{\hyperlink{fld:xks}{xkanjiskip}} is allowed after the character, but not before.
+%<ja>\item[2, \texttt{postonly}] \Param{\hyperlink{fld:xks}{xkanjiskip}}の挿入は文字の後ろでは許されるが,前では許されない.
+%<zh>\item[2, \texttt{postonly}] 文字后允许插入\Param{\hyperlink{fld:xks}{xkanjiskip}},但之前不允许插入。
+%<en>\item[3, \texttt{allow}] Insertion of \Param{\hyperlink{fld:xks}{xkanjiskip}} is allowed both before the character and after the character. This is the default value.
+%<ja>\item[3, \texttt{allow}] \Param{\hyperlink{fld:xks}{xkanjiskip}}の挿入は文字の前/後ろのいずれでも許される.これがデフォルトの値である.
+%<zh>\item[3, \texttt{allow}] 文字前后均可插入\Param{\hyperlink{fld:xks}{xkanjiskip}}。此为默认值。
\end{description}
%<*en>
This parameter is similar to the \verb+\inhibitxspcode+ primitive of \pTeX, but not compatible with \verb+\inhibitxspcode+.
\item[\Param{alxspmode}\,=\{<chr\_code>,<mode>\}] [\verb+\xspcode+]
%<*en>
-Setting whether inserting \Param{xkanjiskip} is allowed before/after a
+Setting whether inserting \Param{\hyperlink{fld:xks}{xkanjiskip}} is allowed before/after a
\textbf{ALchar} whose character code is <chr\_code>.
The followings are allowed for <mode>:
%</en>
%<*ja>
-文字コードが<chr\_code>の\textbf{ALchar}の前/後ろに\Param{xkanjiskip}の
+文字コードが<chr\_code>の\textbf{ALchar}の前/後ろに\Param{\hyperlink{fld:xks}{xkanjiskip}}の
挿入を許すかどうかの設定.
以下の<mode>が許される:
%</ja>
\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}。此为默认值。
+%<en>\item[0, \texttt{inhibit}] Insertion of \Param{\hyperlink{fld:xks}{xkanjiskip}} is inhibited before the character, nor after the character.
+%<ja>\item[0, \texttt{inhibit}] \Param{\hyperlink{fld:xks}{xkanjiskip}}の挿入は文字の前/後ろのいずれでも禁止される.
+%<zh>\item[0, \texttt{inhibit}] 插入文字前/后的\Param{\hyperlink{fld:xks}{xkanjiskip}}均被禁止。
+%<en>\item[1, \texttt{preonly}] Insertion of \Param{\hyperlink{fld:xks}{xkanjiskip}} is allowed before the character, but not after.
+%<ja>\item[1, \texttt{preonly}] \Param{\hyperlink{fld:xks}{xkanjiskip}}の挿入は文字の前では許されるが,後ろでは許されない.
+%<zh>\item[1, \texttt{preonly}] 文字前允许插入\Param{\hyperlink{fld:xks}{xkanjiskip}},但其后不允许插入。
+%<en>\item[2, \texttt{postonly}] Insertion of \Param{\hyperlink{fld:xks}{xkanjiskip}} is allowed after the character, but not before.
+%<ja>\item[2, \texttt{postonly}] \Param{\hyperlink{fld:xks}{xkanjiskip}}の挿入は文字の後ろでは許されるが,前では許されない.
+%<zh>\item[2, \texttt{postonly}] 文字后允许插入\Param{\hyperlink{fld:xks}{xkanjiskip}},但之前不允许插入。
+%<en>\item[3, \texttt{allow}] Insertion of \Param{\hyperlink{fld:xks}{xkanjiskip}} is allowed before the character and after the character. This is the default value.
+%<ja>\item[3, \texttt{allow}] \Param{\hyperlink{fld:xks}{xkanjiskip}}の挿入は文字の前/後ろのいずれでも許される.これがデフォルトの値である.
+%<zh>\item[3, \texttt{allow}] 文字前后均可插入\Param{\hyperlink{fld:xks}{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.
\item[\Param{autospacing}\,=<bool>$^\ast$] [\verb+\autospacing+]
\item[\Param{autoxspacing}\,=<bool>$^\ast$] [\verb+\autoxspacing+]
-\item[\Param{kanjiskip}\,=<skip>] [\verb+\kanjiskip+]
-\item[\Param{xkanjiskip}\,=<skip>] [\verb+\xkanjiskip+]
+\item[\Param{\hypertarget{fld:kanjiskip}{kanjiskip}}\,=<skip>] [\verb+\kanjiskip+]
+%<*ja>
+デフォルトで2つの\textbf{JAchar}の間に挿入されるグルーである.
+通常では,\pTeX と同じようにフォントサイズに比例して変わることはない.
+しかし,自然長が \verb+\maxdimen+ の場合は,例外的に和文フォントのJFM側で指定されている
+値を採用(こちらはフォントサイズに比例)することになっている.
+%</ja>
-\item[\Param{differentjfm}\,=<mode>$^\dagger$]
+\item[\Param{\hypertarget{fld:xks}{xkanjiskip}}\,=<skip>] [\verb+\xkanjiskip+]
+%<*ja>
+デフォルトで\textbf{JAchar}と\textbf{ALchar}の間に挿入されるグルーである.
+\Param{\hyperlink{fld:kanjiskip}{kanjiskip}}と同じように,通常ではフォントサイズに比例して変わることはないが,
+自然長が \verb+\maxdimen+ の場合が例外である.
+%</ja>
+
+
+\item[\Param{\hypertarget{fld:diffjfm}{differentjfm}}\,=<mode>$^\dagger$]
%<*en>
Specify how glues/kerns between two \textbf{JAchar}s whose JFM (or size) are different.
%</en>
%<*ja>
JFM(もしくはサイズ)が異なる2つの\textbf{JAchar}の間にグルー/カーンをどのように
-å\85¥ã\82\8cã\82\8bã\81\8bã\82\92æ\8c\87å®\9aã\81\86る.
+å\85¥ã\82\8cã\82\8bã\81\8bã\82\92æ\8c\87å®\9aã\81\99る.
許される値は以下の通り:
%</ja>
%<*zh>
\item[\texttt{both}]
\item[\texttt{large}]
\item[\texttt{small}]
+\item[\texttt{pleft}]
+\item[\texttt{pright}]
+\item[\texttt{paverage}]
\end{description}
\item[\Param{jacharrange}\,=<ranges>$^\ast$]
\end{list}
-%<en>\section{Other Primitives}
-%<ja>\section{その他のプリミティブ}
+%<en>\section{Other Control Sequences}
+%<ja>\section{その他の命令}
%<zh>\section{其他基本语句}
-%<en>\subsection{Primitives for Compatibility}
-%<ja>\subsection{互換プリミティブ}
+%<en>\subsection{Control Sequences for Compatibility}
+%<ja>\subsection{\pTeX 互換用命令}
%<zh>\subsection{基本语句兼容性}
%<*en>
-The following primitives are implemented for compatibility with \pTeX.
-Note that these primitives don't support JIS~X~0213, but only JIS~X~0208.
+The following control sequences are implemented for compatibility with \pTeX.
+Note that these don't support JIS~X~0213, but only JIS~X~0208.
%</en>
%<*ja>
-以下のプリミティブは\pTeX との互換性のために実装されている:
+以下の命令は\pTeX との互換性のために実装されている.そのため,JIS~X~0213には対応せず,
+\pTeX と同じようにJIS~X~0208の範囲しかサポートしていない.
%</ja>
%<*zh>
下列基本语句的实现与\pTeX 兼容:
\item[kansuji]
\end{list}
-%<en>\subsection{\texttt{\char92 inhibitglue} primitive}
-%<ja>\subsection{\texttt{\char92 inhibitglue}プリミティブ}
+%<en>\subsection{\texttt{\char92 inhibitglue}}
+%<ja>\subsection{\texttt{\char92 inhibitglue}}
%<zh>\subsection{\texttt{\char92 inhibitglue}基本语句}
%<*en>
-The primitive \verb+\inhibitglue+ suppresses the insertion of \textbf{JAglue}.
+\verb+\inhibitglue+ suppresses the insertion of \textbf{JAglue}.
The following is an example, using a special JFM that there will be a glue between
the beginning of a box and `あ', and also between `あ' and `ウ'.
%</en>
%<*ja>
-\verb+\inhibitglue+ ã\83\97ã\83ªã\83\9fã\83\86ã\82£ã\83\96ã\81¯\textbf{JAglue}ã\81®æ\8c¿å\85¥ã\82\92æ\8a\91å\88¶ã\81\99ã\82\8bï¼\8e
+\verb+\inhibitglue+ は\textbf{JAglue}の挿入を抑制する.
以下は,ボックスの始めと`あ'の間,`あ'と`ウ'の間にグルーが入る特別なJFMを用いた例で
ある.
%</ja>
%</zh>
\begin{itemize}
%<*zh>
-\item
+\item ...
%</zh>
%<*en>
\item The call of \verb+\inhibitglue+ in the (internal) vertical mode is
\end{itemize}
%<en>\section{Control Sequences for \LaTeXe}
-%<ja>\section{\LaTeXe 用のコントロールシーケンス}
+%<ja>\section{\LaTeXe 用の命令}
%<zh>\section{\LaTeXe 下使用的控制序列}
%<en>\subsection{Patch for NFSS2}
As described in Subsection~\ref{ssec-ltx}, \LuaTeX-ja simply adopted
\texttt{plfonts.dtx} in \pLaTeXe\ for the Japanese patch for NFSS2.
For an convenience, we will describe
-commands which are not described in Subsection~\ref{ssub-chgfnt}.
+control sequences which are not described in Subsection~\ref{ssub-chgfnt}.
%</en>
%<*ja>
\ref{ssec-ltx}節で述べたように,\LuaTeX-jaはNFSS2への日本語パッチである
\pLaTeXe の\texttt{plfonts.dtx}を単純に取り入れている.
-便宜のため,ここでは\ref{ssub-chgfnt}節で述べていなかったコマンドについて
+便宜のため,ここでは\ref{ssub-chgfnt}節で述べていなかった命令について
記述しておく.
%</ja>
%</ja>
\begin{itemize}
%<*en>
-\item The family <fam> under the encoding <ja-enc> has been already defined by
+\item The family <family> under the encoding <ja-enc> has been already defined by
\verb+\DeclareKanijFamily+.
%</en>
%<*ja>
-\item エンコーディング<ja-enc>におけるファミリ<fam>が既に \verb+\DeclareKanjiFamily+ によって定義されている.
+\item エンコーディング<ja-enc>におけるファミリ<family>が既に \verb+\DeclareKanjiFamily+ によって定義されている.
%</ja>
%<*en>
-\item A font definition named \texttt{<enc><ja-enc>.fd} (the file name is
+\item A font definition named \texttt{<ja-enc><family>.fd} (the file name is
all lowercase) exists.
%</en>
%<*zh>
\item
%</zh>
%<*ja>
-\item フォント定義ファイル\texttt{<enc><ja-enc>.fd}(ファイル名は全て小文字)が存在する.
+\item フォント定義ファイル\texttt{<ja-enc><family>.fd}(ファイル名は全て小文字)が存在する.
%</ja>
\end{itemize}
%<*en>
%<*en>
These 3 font features correspond to \texttt{cid}, \texttt{jfm} and
-\texttt{jfmvar} keys for \verb+\jfont+ primitive, respectively.
+\texttt{jfmvar} keys for \verb+\jfont+ 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>
-ã\81\93ã\82\8cã\82\893ã\81¤ã\81®ã\82ã\83¼ã\81¯ã\81\9dã\82\8cã\81\9eã\82\8c \verb+\jfont+ ã\83\97ã\83ªã\83\9fã\83\86ã\82£ã\83\96ã\81«å¯¾ã\81\99ã\82\8b
+これら3つのキーはそれぞれ \verb+\jfont+ に対する
\texttt{cid}, \texttt{jfm}, \texttt{jfmvar}キーとそれぞれ対応する.
\texttt{CID} は下の \texttt{NoEmbed} と合わせて用いられたときのみ有効である.
\verb+\jfont+ プリミティブに対する
%</ja>
\end{list}
+%<*ja>
+なお,\texttt{luatexja-fontspec.sty} 読み込み時には和文フォント定義ファイル%
+\texttt{<ja-enc><family>.fd}は全く参照されなくなる.
+%</ja>
+
+
+
\subsection{\texttt{luatexja-otf.sty}}
%<*en>
\smallskip
Note: the value of
-\Param{kanjiskip} is 0\,pt${}^{+1/5\,\mathrm{em}}_{-1/5\,\mathrm{em}}$ in this figure,
+\Param{\hyperlink{fld:kanjiskip}{kanjiskip}} is 0\,pt${}^{+1/5\,\mathrm{em}}_{-1/5\,\mathrm{em}}$ in this figure,
for making the difference obvious.
%<ja>\caption{行長調整}\label{fig-adj}
%<en>\caption{Line adjustment}\label{fig-adj}
%<*ja>
\pTeX では,行長調整において優先度の概念が存在しなかったため,図
\ref{fig-adj}上段における半角分の半端は,図\ref{fig-adj}中段のように,鍵
-括弧周辺の空白と和文間空白(\Param{kanjiskip})の両方によって負担される.し
+括弧周辺の空白と和文間空白(\Param{\hyperlink{fld:kanjiskip}{kanjiskip}})の両方によって負担される.し
かし,「日本語組版処理の要件」\cite{jlreq}やJIS~X~4051~\cite{x4051}におい
ては,このような状況では半端は鍵括弧周辺の空白のみで負担し,その他の和文
文字はベタ組で組まれる(図\ref{fig-adj}下段)ことになっている.この追加
\attr{ltj@autospc}
%<*en>
-Whether the auto insertion of \Param{kanjiskip} is allowed at the node.
+Whether the auto insertion of \Param{\hyperlink{fld:kanjiskip}{kanjiskip}} is allowed at the node.
%</en>
%<*ja>
-そのノードで\Param{kanjiskip}の自動挿入が許されるかどうか.
+そのノードで\Param{\hyperlink{fld:kanjiskip}{kanjiskip}}の自動挿入が許されるかどうか.
%</ja>
\attr{ltj@autoxspc}
%<*en>
-Whether the auto insertion of \Param{xkanjiskip} is allowed at the node.
+Whether the auto insertion of \Param{\hyperlink{fld:xks}{xkanjiskip}} is allowed at the node.
%</en>
%<*ja>
-そのノードで\Param{xkanjiskip}の自動挿入が許されるかどうか.
+そのノードで\Param{\hyperlink{fld:xks}{xkanjiskip}}の自動挿入が許されるかどうか.
%</ja>
\attr{ltj@icflag}
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{xkanjiskip}.
+ is needed in the insertion process of \Param{\hyperlink{fld:xks}{xkanjiskip}}.
%</en>
%<*ja>
イタリック補正(\verb+\/+)によるグルー.このグルーの由来の区別(\verb+\kern+ か
-\verb+\/+ か)は\Param{xkanjiskip}の挿入過程において必要になる.
+\verb+\/+ か)は\Param{\hyperlink{fld:xks}{xkanjiskip}}の挿入過程において必要になる.
%</ja>
\item[\textit{packed} (2)]
\item[\textit{kanji\_skip} (9)]
%<*en>
-Glues for \Param{kanjiskip}.
+Glues for \Param{\hyperlink{fld:kanjiskip}{kanjiskip}}.
%</en>
%<*ja>
-\Param{kanjiskip}のグルー.
+\Param{\hyperlink{fld:kanjiskip}{kanjiskip}}のグルー.
%</ja>
\item[\textit{xkanji\_skip} (10)]
%<*en>
-Glues for \Param{xkanjiskip}.
+Glues for \Param{\hyperlink{fld:xks}{xkanjiskip}}.
%</en>
%<*ja>
-\Param{xkanjiskip}のグルー.
+\Param{\hyperlink{fld:xks}{xkanjiskip}}のグルー.
%</ja>
\item[\textit{processed} (11)]
%<*en>
Furthermore, \LuaTeX-ja uses several `user-defined' whatsit nodes for
inrernal processing. All those nodes store a natural number (hence the node's
-\texttt{type} is 100). The following \verb+user_id+s are used:
+\texttt{type} is 100).
%</en>
%<*ja>
-さらに,\LuaTeX-jaはいくつかの「ユーザ定義の」whatsit ノードを内部処理に用いる.
+さらに,\LuaTeX-jaはいくつかの「ユーザ定義の」whatsitノードを内部処理に用いる.
これらの全てのノードは自然数を格納している(したがってノードの\texttt{type}は
-100である).次の \verb+user_id+ が使用される:
+100である).
%</ja>
\begin{description}
-\item[30111]
+\item[\texttt{inhibitglue}]
%<*en>
Nodes for indicating that \verb+\inhibitglue+ is
specified. The \texttt{value} field of these nodes doesn't matter.
\texttt{value}フィールドは意味を持たない.
%</ja>
-\item[30112]
+\item[\texttt{stack\_marker}]
%<*en>
Nodes for \LuaTeX-ja's stack system (see the next
subsection). The \texttt{value} field of these nodes is
これらのノードの\texttt{value}フィールドは現在のグループを表す.
%</ja>
-\item[30113]
+\item[\texttt{char\_by\_cid}]
%<*en>
Nodes for Japanese Characters which the callback process of
\Pkg{luaotfload} won't be applied, and the character code is
\Pkg{luatexja-otf} パッケージでのみ使用される.
%</ja>
-\item[30114]
+\item[\texttt{begin\_par}]
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
%<*en>
\LuaTeX-ja has its own stack system, and most parameters of \LuaTeX-ja
are stored in it. To clarify the reason, imagine the parameter
-\Param{kanjiskip} is stored by a skip, and consider the following
+\Param{\hyperlink{fld:kanjiskip}{kanjiskip}} is stored by a skip, and consider the following
source:
%</en>
%<*ja>
\LuaTeX-jaは独自のスタックシステムを持ち,\LuaTeX-jaのほとんどのパラメータは
これを用いて保持されている.その理由を明らかにするために,
-\Param{kanjiskip}パラメータがスキップレジスタで保持されているとし,
+\Param{\hyperlink{fld:kanjiskip}{kanjiskip}}パラメータがスキップレジスタで保持されているとし,
以下のコードを考えてみよう:
%</ja>
\begin{LTXexample}
%<*en>
As described in Subsection~\ref{ssec-param}, the only effective value of
-\Param{kanjiskip} in an hbox is the latest value, so the value of
-\Param{kanjiskip} which applied in the entire hbox should be 5\,pt.
+\Param{\hyperlink{fld:kanjiskip}{kanjiskip}} in an hbox is the latest value, so the value of
+\Param{\hyperlink{fld:kanjiskip}{kanjiskip}} which applied in the entire hbox should be 5\,pt.
However, by the implementation method of \LuaTeX, this `5\,pt' cannot be
known from any callbacks. In the \texttt{tex/packaging.w} (which is a
file in the source of \LuaTeX), there are the following codes:
%</en>
%<*ja>
\ref{ssec-param}節で述べたように,ある水平ボックスの中で効力を持つ
-\Param{kanjiskip}の値は最後に現れた値のみであり,したがってボックス全体に適用される
-\Param{kanjiskip}は5\,ptであるべきである.しかし,\LuaTeX の実装のために,
+\Param{\hyperlink{fld:kanjiskip}{kanjiskip}}の値は最後に現れた値のみであり,したがってボックス全体に適用される
+\Param{\hyperlink{fld:kanjiskip}{kanjiskip}}は5\,ptであるべきである.しかし,\LuaTeX の実装のために,
この`5\,pt'はどのコールバックからも知ることはできない.
\texttt{tex/packaging.w}(これは\LuaTeX のソースファイルである)の中に,
以下のコードがある:
\begin{itemize}
\item JFMグルーの挿入は,和文文字を表すトークンを元に水平リストに(文字を表す)<char\_node>を
追加する過程で行われる.
-\item \Param{xkanjiskip}の挿入は,水平ボックスへのパッケージングや行分割前に行われる.
-\item \Param{kanjiskip}はノードとしては挿入されない.パッケージングや行分割の計算時に
-「和文文字を表す2つの<char\_node>の間には\Param{kanjiskip}がある」ものとみなされる.
+\item \Param{\hyperlink{fld:xks}{xkanjiskip}}の挿入は,水平ボックスへのパッケージングや行分割前に行われる.
+\item \Param{\hyperlink{fld:kanjiskip}{kanjiskip}}はノードとしては挿入されない.パッケージングや行分割の計算時に
+「和文文字を表す2つの<char\_node>の間には\Param{\hyperlink{fld:kanjiskip}{kanjiskip}}がある」ものとみなされる.
\end{itemize}
しかし,\LuaTeX-jaでは,水平ボックスへのパッケージングや行分割前に全ての
-\textbf{JAglue},即ちJFMグルー・\Param{xkanjiskip}・\Param{kanjiskip}の
+\textbf{JAglue},即ちJFMグルー・\Param{\hyperlink{fld:xks}{xkanjiskip}}・\Param{\hyperlink{fld:kanjiskip}{kanjiskip}}の
3種類を一度に挿入することになっている.これは,\LuaTeX において欧文の合字・
カーニング処理がノードベースになったことに対応する変更である.
\textit{id}が\textit{id\_pbox}であって$\mathit{Np}.\mathit{head}$が\textbf{JAchar}であるとき.
\item[和文B] リスト中の水平ボックスの中身の先頭として出現した和文文字.和文Aとの違いは,これの前に
-JFMグルーの挿入が行われない(\Param{xkanjiskip},~\Param{kanjiskip}は入り得る)ことである.\\
+JFMグルーの挿入が行われない(\Param{\hyperlink{fld:xks}{xkanjiskip}},~\Param{\hyperlink{fld:kanjiskip}{kanjiskip}}は入り得る)ことである.\\
\textit{id}が\textit{id\_hlist}か\textit{id\_disc}であって$\mathit{Np}.\mathit{head}$が\textbf{JAchar}であるとき.
\item[欧文] リスト中に直接/水平ボックスの中身として出現している欧文文字.次の3つの場合が該当:
まず,「右空白」にあたる量を算出する.通常はこれが,隣り合った2つの和文文字間に入る空白量となる.
\begin{description}
\item[JFM由来{[M]}] JFMの文字クラス指定によって入る空白を以下によって求める.この段階で空白量が未定義(未指定)だった場合,
- デフォルト値\Param{kanjiskip}を採用することとなるので,次へ.
+ デフォルト値\Param{\hyperlink{fld:kanjiskip}{kanjiskip}}を採用することとなるので,次へ.
\begin{enumerate}
\item もし両クラスタの間で\verb+\inhibitglue+が実行されていた場合(証としてwhatsitノードが自動挿入される),
- 代わりに\Param{kanjiskip}が挿入されることとなる.次へ.
+ 代わりに\Param{\hyperlink{fld:kanjiskip}{kanjiskip}}が挿入されることとなる.次へ.
\item \textit{Nq}と\textit{Np}が同じJFM・同じ\texttt{jfmvar}キー・同じサイズの和文フォントであったならば,
- 共通に使っているJFM内で挿入される空白(グルーかカーン)が決まっているか調べる.
+ 共通に使っているJFM内で挿入される空白(グルーかカーン)が決まっているか調べ,決まっていればそれを採用.
\item 1.でも2.でもない場合は,\textit{Nq}と\textit{Np}が違うJFM/\texttt{jfmvar}/サイズである.
この場合,まず
\[
-\vcenter{\halign{\hfil$#:={}$&(\inhibitglue#\inhibitglue)\cr
-gb&\textit{Nq}と「文字コードが{\tt'diffmet'}の文字」との間に入るグルー/カーン\cr
-ga&「文字コードが{\tt'diffmet'}の文字」と\textit{Np}との間に入るグルー/カーン\cr
+\vcenter{\halign{\hfil$#:={}$&\inhibitglue#\inhibitglue\cr
+gb&(\textit{Nq}と「使用フォントが\textit{Nq}のそれと同じで,\hfil\cr
+\omit&\quad 文字コードが\textit{Np}のそれの文字」との間に入るグルー/カーン)\hfil\cr
+ga&(\inhibitglue 「使用フォントが\textit{Np}のそれと同じで,\hfil\cr
+\omit&\quad 文字コードが\textit{Nq}のそれの文字」と\textit{Np}との間に入るグルー/カーン)\hfil\cr
}}
\]
-として,左側由来・右側由来の空白(グルー/カーン)を(それぞれのJFMから)求める.
-$\mathit{ga}$と$\mathit{gb}$のどちらか片方が未定義であるならば,定義されている側の値をそのまま採用する.
-もし$\mathit{ga}$と$\mathit{gb}$が両方決まっているならば,両者の値を平均\footnote{\Param{differentjfm}パラメタの
-値によって,「大きい方」「小さい方」「合計」に変えることができる.}した値を採用する.
+として,前側の文字のJFMを使った時の空白(グルー/カーン)と,後側の文字のJFMを使った時のそれを求める.
+
+$\mathit{gb}$,~$\mathit{ga}$それぞれに対する<ratio>の値を$d_b$,~$d_a$とする.
+\begin{itemize}
+\item
+$\mathit{ga}$と$\mathit{gb}$の両方が未定義であるならば,JFM由来のグルーは挿入されず,\Param{\hyperlink{fld:kanjiskip}{kanjiskip}}を採用することとなる.どちらか片方のみが未定義であるならば,次のステップでその未定義の方は長さ0のkernで,<ratio>の値は0であるかのように扱われる.
+\item
+\Param{\hyperlink{fld:diffjfm}{diffrentjfm}}の値が\texttt{pleft}, \texttt{pright}, \texttt{paverage}のとき,
+<ratio>の指定に従って比例配分を行う.
+JFM由来のグルー/カーンは以下の値となる:
+\[
+ f\left(\frac{1-d_b}2\textit{gb} + \frac{1+d_b}2\textit{ga},
+\frac{1-d_a}2\textit{gb} + \frac{1+d_a}2\textit{ga}\right)
+\]
+ここで.$f(x,y)$は
+\[
+ f(x,y)=\begin{cases}
+x&\text{if\ }\Param{\hyperlink{fld:diffjfm}{diffrentjfm}}=\texttt{pleft};\\
+y&\text{if\ }\Param{\hyperlink{fld:diffjfm}{diffrentjfm}}=\texttt{pright};\\
+(x+y)/2&\text{if\ }\Param{\hyperlink{fld:diffjfm}{diffrentjfm}}=\texttt{paverage};
+\end{cases}.
+\]
+\item
+\Param{differentmet}がそれ以外の値の時は,<ratio>の値は無視され,JFM由来のグルー/カーンは以下の値となる:
+\[
+ f(\textit{gb},\textit{ga})
+\]
+ここで.$f(x,y)$は
+\[
+ f(x,y)=\begin{cases}
+\min(x,y)&\text{if\ }\Param{\hyperlink{fld:diffjfm}{diffrentjfm}}=\texttt{small};\\
+\max(x,y)&\text{if\ }\Param{\hyperlink{fld:diffjfm}{diffrentjfm}}=\texttt{large};\\
+(x+y)/2&\text{if\ }\Param{\hyperlink{fld:diffjfm}{diffrentjfm}}=\texttt{average};\\
+x+y&\text{if\ }\Param{\hyperlink{fld:diffjfm}{diffrentjfm}}=\texttt{both};
+\end{cases}.
+\]
+\end{itemize}
\end{enumerate}
例えば,
この場合,$p$と$q$の間は,実フォントが異なるにもかかわらず(2)の状況となる一方で,
$q$と$r$の間は(実フォントが同じなのに)\texttt{jfmvar}キーの内容が異なるので(3)の状況となる.
\item[\Param{kanjiskip}~{[K]}] 上の[M]において空白が定まらなかった場合,
-\Param{kanjiskip}の値を以下で定め,それを「右空白」として採用する.
+以下で定めた量「右空白」として採用する.
この段階においては,\verb+\inhibitglue+は効力を持たないため,
結果として,2つの和文文字間には常に何らかのグルー/カーンが挿入されることとなる.
\begin{enumerate}
\item 両クラスタ(厳密には$\mathit{Nq}.\mathit{tail}$,$\mathit{Np}.\mathit{head}$)の中身の文字コードに対する
\Param{autospacing}パラメタが両方ともfalseだった場合は,長さ0のglueとする.
-\item ユーザ側から見た\Param{kanjiskip}パラメタの自然長が${\tt \char92 maxdimen}=(2^{30}-1)\,{\rm sp}$で
-なければ,\Param{kanjiskip}パラメタの値を持つglueを採用する.
-\item 2.でない場合は,\textit{Nq}, \textit{Np}で使われているJFMに指定されている\Param{kanjiskip}の値を用いる.
+\item ユーザ側から見た\Param{\hyperlink{fld:kanjiskip}{kanjiskip}}パラメタの自然長が${\tt \char92 maxdimen}=(2^{30}-1)\,{\rm sp}$で
+なければ,\Param{\hyperlink{fld:kanjiskip}{kanjiskip}}パラメタの値を持つglueを採用する.
+\item 2.でない場合は,\textit{Nq}, \textit{Np}で使われているJFMに指定されている\Param{\hyperlink{fld:kanjiskip}{kanjiskip}}の値を用いる.
どちらか片方のクラスタだけが和文文字(\textsf{和文A}・\textsf{和文B})のときは,そちらのクラスタで使われている
JFM由来の値だけを用いる.もし両者で使われているJFMが異なった場合は,上の[M]~3.と同様の方法を用いて調整する.
\end{enumerate}
\paragraph{禁則用ペナルティの挿入}
まず,
\[
- a:=(\text{\textit{Nq}{\footnotemark}の文字に対する\Param{postbreakpenalty}の値})
-+(\text{\textit{Np}{\footnotemark}の文字に対する\Param{prebreakpenalty}の値})
+ a:=(\text{\textit{Nq}{\footnotemark}の文字に対する\Param{\hyperlink{fld:postbp}{postbreakpenalty}}の値})
++(\text{\textit{Np}{\footnotemark}の文字に対する\Param{\hyperlink{fld:prebp}{prebreakpenalty}}の値})
\]
とおく\footnotetext{厳密にはそれぞれ$\mathit{Nq}.\mathit{tail}$,$\mathit{Np}.\mathit{head}$.}.
ペナルティは通常$[-10000,10000]$の整数値をとり,また$\pm 10000$は正負の無限大を意味することになっているが,この$a$の
\textit{Nq}が\textsf{和文A}で,\textit{Np}が\textsf{欧文}の場合,JFMグルー挿入処理は次のようにして行われる.
\begin{itemize}
\item 「右空白」については,まず以下に述べる\textsf{Boundary-B~[\OB]}により空白を決定しようと試みる.
-それが失敗した場合は,\textsf{\Param{xkanjiskip}~[X]}によって定める.
+それが失敗した場合は,\textsf{\Param{\hyperlink{fld:xks}{xkanjiskip}}~[X]}によって定める.
\item 「左空白」については,既に述べた\textsf{line-end~[E]}をそのまま採用する.それに伴う「右空白」の補正も同じ.
\item 禁則用ペナルティも,以前述べた\textsf{P-normal~[PN]}と同じである.
\end{itemize}
\item そうでなければ,
\textit{Nq}と「文字コードが{\tt'jcharbdd'}の文字」との間に入るグルー/カーンとして定まる.
\end{enumerate}
-\item[\Param{xkanjiskip}~{[X]}]
+\item[\Param{\hyperlink{fld:xks}{xkanjiskip}}~{[X]}]
この段階では,\textsf{\Param{kanjiskip}~[K]}のときと同じように,
-\Param{xkanjiskip}の値を以下で定め,それを「右空白」として採用する.
+以下で定めた量を「右空白」として採用する.
この段階で\verb+\inhibitglue+は効力を持たないのも同じである.
\begin{enumerate}
-\item 以下のいずれかの場合は,\Param{xkanjiskip}の挿入は抑止される.しかし,実際には行分割を許容するために,長さ0のglueを採用する:
+\item 以下のいずれかの場合は,\Param{\hyperlink{fld:xks}{xkanjiskip}}の挿入は抑止される.しかし,実際には行分割を許容するために,長さ0のglueを採用する:
\begin{itemize}
\item 両クラスタにおいて,それらの中身の文字コードに対する\Param{autoxspacing}パラメタが共にfalseである.
-\item \textit{Nq}の中身の文字コードについて,「直後への\Param{xkanjiskip}の挿入」が禁止されている
+\item \textit{Nq}の中身の文字コードについて,「直後への\Param{\hyperlink{fld:xks}{xkanjiskip}}の挿入」が禁止されている
(つまり,\Param{jaxspmode}~(or \Param{alxspmode})パラメタが2以上).
-\item \textit{Np}の中身の文字コードについて,「直前への\Param{xkanjiskip}の挿入」が禁止されている
+\item \textit{Np}の中身の文字コードについて,「直前への\Param{\hyperlink{fld:xks}{xkanjiskip}}の挿入」が禁止されている
(つまり,\Param{jaxspmode}~(or \Param{alxspmode})パラメタが偶数).
\end{itemize}
-\item ユーザ側から見た\Param{xkanjiskip}パラメタの自然長が${\tt \char92 maxdimen}=(2^{30}-1)\,{\rm sp}$で
-なければ,\Param{xkanjiskip}パラメタの値を持つglueを採用する.
+\item ユーザ側から見た\Param{\hyperlink{fld:xks}{xkanjiskip}}パラメタの自然長が${\tt \char92 maxdimen}=(2^{30}-1)\,{\rm sp}$で
+なければ,\Param{\hyperlink{fld:xks}{xkanjiskip}}パラメタの値を持つglueを採用する.
\item 2.でない場合は,\textit{Nq}, \textit{Np}(\textsf{和文A}/\textsf{和文B}なのは片方だけ)
-で使われているJFMに指定されている\Param{xkanjiskip}の値を用いる.
+で使われているJFMに指定されている\Param{\hyperlink{fld:xks}{xkanjiskip}}の値を用いる.
\end{enumerate}
\end{description}
\textsf{和文A}のクラスタが逆になるので,\textsf{Boundary-A~[\OA]}の部分が変わるだけ.
\begin{itemize}
\item 「右空白」については,まず以下に述べる\textsf{Boundary-A~[\OA]}により空白を決定しようと試みる.
-それが失敗した場合は,\textsf{\Param{xkanjiskip}~[X]}によって定める.
+それが失敗した場合は,\textsf{\Param{\hyperlink{fld:xks}{xkanjiskip}}~[X]}によって定める.
\item \textit{Nq}が和文でないので,「左空白」は算出されない.
\item 禁則用ペナルティは,以前述べた\textsf{P-normal~[PN]}と同じである.
\end{itemize}
\item 「左空白」については,既に述べた\textsf{line-end~[E]}の算出方法をそのまま採用する.それに伴う「右空白」の補正も同じ.
\item 禁則用ペナルティの処理は,後ろのクラスタ\textit{Np}の種類によって異なる.
なお,$\mathit{Np}.\mathit{head}$は無意味であるから,
-「$\mathit{Np}.\mathit{head}$に対する\Param{prebreakpenalty}の値」は0とみなされる.言い換えれば,
+「$\mathit{Np}.\mathit{head}$に対する\Param{\hyperlink{fld:prebp}{prebreakpenalty}}の値」は0とみなされる.言い換えれば,
\[
- a:=(\text{\textit{Nq}{\footnotemark}の文字に対する\Param{postbreakpenalty}の値}).
+ a:=(\text{\textit{Nq}{\footnotemark}の文字に対する\Param{\hyperlink{fld:postbp}{postbreakpenalty}}の値}).
\]
\begin{description}
\item[箱] \textit{Np}が\textsf{箱}であった場合は,両クラスタの間での行分割は
\overbrace{\Node{glyph}{`あ'}}^{\mathit{Nq}}\longrightarrow \overbrace{\Node{glue}{1\,pt}}^{\mathit{Np}}
\]
のような状況を考える.
-このとき,$a$,即ち「あ」の\Param{postbreakpenalty}がいかなる値であっても,
+このとき,$a$,即ち「あ」の\Param{\hyperlink{fld:postbp}{postbreakpenalty}}がいかなる値であっても,
この2クラスタ間は最終的に
\begin{equation}
\overbrace{\Node{glyph}{`あ'}}^{\mathit{Nq}}\longrightarrow
\label{eq-gref}
\end{equation}
となり,$a$分のペナルティは挿入されないことに注意して欲しい.
-\Param{postbreakpenalty}は($a$は)殆どの場合が非負の値と考えられ,そのような場合では
+\Param{\hyperlink{fld:postbp}{postbreakpenalty}}は($a$は)殆どの場合が非負の値と考えられ,そのような場合では
\eqref{eq-gref}と
\[
\overbrace{\Node{glyph}{`あ'}}^{\mathit{Nq}}\longrightarrow
\item 禁則用ペナルティの処理は,\textit{Nq}の種類によって異なる.
$\mathit{Nq}.\mathit{tail}$は無意味なので,
\[
- a:=(\text{\textit{Np}{\footnotemark}の文字に対する\Param{prebreakpenalty}の値}).
+ a:=(\text{\textit{Np}{\footnotemark}の文字に対する\Param{\hyperlink{fld:prebp}{prebreakpenalty}}の値}).
\]
\begin{description}
\item[箱] \textit{Nq}が\textsf{箱}の場合は,\textsf{P-allow~[PA]}を用いる.
\item \textsf{和文B}と箱・グルー・カーンが隣接したとき(どちらが前かは関係ない),間にJFMグルー・ペナルティの挿入は一切しない.
\item \textsf{和文B}と\textsf{和文B},また\textsf{和文B}と\textsf{欧文}とが隣接した時は,禁則用ペナルティ挿入処理は
\textsf{P-suppress~[PS]}が用いられる.
-\item \textsf{和文B}の文字に対する\Param{prebreakpenalty},~\Param{postbreakpenalty}の値は使われず,0として計算される.
+\item \textsf{和文B}の文字に対する\Param{\hyperlink{fld:prebp}{prebreakpenalty}},~\Param{\hyperlink{fld:postbp}{postbreakpenalty}}の値は使われず,0として計算される.
\end{itemize}
\end{LTXexample}
\begin{itemize}
\item 1行目の\verb+\inhibitglue+は\textsf{Boundary-B~[\OB]}の処理のみを抑止するので,ピリオドと「A」の間には
-\Param{xkanjiskip}(四分アキ)が入ることに注意.
+\Param{\hyperlink{fld:xks}{xkanjiskip}}(四分アキ)が入ることに注意.
\item 2行目のピリオドと「A」の間においては,前者が\textsf{和文B}となる(水平ボックスの中身の末尾として登場しているから)ので,
-そもそも\textsf{Boundary-B~[\OB]}の処理は行われない.よって,\Param{xkanjiskip}が入ることとなる.
+そもそも\textsf{Boundary-B~[\OB]}の処理は行われない.よって,\Param{\hyperlink{fld:xks}{xkanjiskip}}が入ることとなる.
\item 3行目では,ピリオドの属するクラスタは\textsf{和文A}である.これによって,
ピリオドと「A」の間には\textsf{Boundary-B~[\OB]}由来の半角アキが入ることになる.
\end{itemize}
\section{psft}
+...
%<en>\section{Patch for the \Pkg{listings} package}
+%<zh>\section{Patch for the \Pkg{listings} package}
%<ja>\section{\Pkg{listings} パッケージへの対応}
%<*en>
\Pkg{listings} パッケージの内部では,大雑把に言うと
%</ja>
\begin{enumerate}
+%<zh>\item ...
%<*en>
\item Collects \textit{letters} and \textit{digits}, which can be used for the name of identifiers.
%</en>
\item 識別子として使える文字 (``letter'',~``digit'') たちを
集める.
%</ja>
-
%<*en>
-\item When reading an \textit{other}, outputs the collected string (with modification, if needed).
+\item When reading an \textit{other}, outputs the collected character string (with modification, if needed).
%</en>
%<*ja>
\item letterでもdigitでもない文字が現れた時に,収集した文字列を(必要なら修飾して)出力する.
%</ja>
-
%<*en>
\item Collects \textit{others}.
%</en>
%<*ja>
\item 今度は逆に,letterでない文字たちをletterが現れるまで集める.
%</ja>
-
%<*en>
-\item When reading a \textit{letter} or a \textit{digit}, outputs the collected string.
+\item When reading a \textit{letter} or a \textit{digit}, outputs the collected character string.
%</en>
%<*ja>
\item letterが出現したら集めた文字列を出力する.
%</ja>
-
%<*en>
\item Turns back to 1.
%</en>
%</ja>
\end{enumerate}
%<*en>
-By the above process, line breaks inside of an identifier is blocked.
-A flag \verb+\lst@ifletter+ shows whether the last character can be used
+By the above process, line breaks inside of an identifier are blocked.
+A flag \verb+\lst@ifletter+ indicates whether the previous character can be used
for the name of identifiers or not.
%</en>
%<*ja>
For Japanese characters, line breaks are permitted on both sides
except for parentheses, dashes, etc.
To process Japanese characters,
-\Pkg{lltjp-listings.sty} introduces a new flag \verb+\lst@kanji+, which indicates
-whether the last character is Japanese character or not.
+The pacth \Pkg{lltjp-listings.sty} introduces a new flag \verb+\lst@ifkanji+, which indicates
+whether the previous character is Japanese character or not.
For illustration, we introduce the following classes of character:
%</en>
%<*ja>
さて,日本語の処理である.殆どの和文文字の前後では行分割が可能であるが,その一方で
括弧類や音引きなどでは禁則処理が必要なことから,\Pkg{lltjp-listings.sty} では,
-直前が和文文字であるかを示すフラグ \verb+\lst@kanji+ を新たに導入した.
+直前が和文文字であるかを示すフラグ \verb+\lst@ifkanji+ を新たに導入した.
以降,説明のために以下のように文字を分類する:
%</ja>
\begin{center}
For example, let us consider the case an Open comes after a Letter.
Since an Open represents Japanese open parenthesis,
it is preferred to be permitted to insert line break after the Letter.
-Therefore, the collected string is output in this case.
-The following table summarizes $5\times 5=25$ cases:
+Therefore, the collected character string is output in this case.
%</en>
%<*ja>
例えば,Letterの直後にOpenが来た場合を考える.
文字種Openは和文開き括弧類を想定しているので,Letterの直後では行分割が可能であることが望ましい.
そのため,この場合では,すでに収集されている文字列を出力することで行分割を許容するようにした.
+%</ja>
+
+%<*en>
+The following table summarizes $5\times 5=25$ cases:
+%</en>
+%<*ja>
同じように,$5\times 5=25$通り全てについて書くと,次のようになる:
%</ja>
\begin{center}
&\hbox to 4em{\hss Kanji\hss}&\hbox to 4em{\hss Open\hss}&Close\\\midrule
&Letter&collects&\multicolumn{3}{c}{\hrulefill \ outputs\ \hrulefill}&collects\\
&Other&outputs&collects&\multicolumn{2}{c}{\hrulefill \ outputs\ \hrulefill}&collects\\
-Last&Kanji&\multicolumn{4}{c}{\hrulefill \ outputs\ \hrulefill}&collects\\
+Prev&Kanji&\multicolumn{4}{c}{\hrulefill \ outputs\ \hrulefill}&collects\\
&Open&\multicolumn{5}{c}{\hrulefill \ collects\ \hrulefill}\\
&Close&\multicolumn{4}{c}{\hrulefill \ outputs\ \hrulefill}&collects\\
%</en>
%<en>In the above table,
%<ja>上の表において,
\begin{itemize}
-%<en>\item ``outputs'' means to output the collected string (i.e., line breaking is permitted there).
+%<zh>\item ...
+%<en>\item ``outputs'' means to output the collected character string (i.e., line breaking is permitted there).
%<ja>\item 「出力」は,それまでに集めた文字列を出力(≒ここで行分割可能)を意味する.
-%<en>\item ``collects'' means to append the next character to the collected string (i.e., line breaking is prohibited there).
+%<en>\item ``collects'' means to append the next character to the collected character string (i.e., line breaking is prohibited there).
%<ja>\item 「収集」は,後側の文字を,現在収集された文字列に追加(行分割不可)を意味する.
\end{itemize}
%<*ja>
\Pkg{listings} パッケージにおいて和文文字と扱われる
(前に述べたKanji, Open,あるいは「閉じ括弧類」分類)か否かは,
-通常の\textbf{JAchar}/\textbf{Alchar}の範囲の設定(\ref{ssec-setrange}節)に従って行われる:
+通常の\textbf{JAchar}/\textbf{Alchar}の範囲の設定(\Param{jacharrange} パラメータ,\ref{ssec-setrange}節を参照)に従って行われる:
%</ja>
\begin{itemize}
+%<zh>\item ...
+
%<en>\item \textbf{ALchars} above U+0080 are Letter.
%<ja>\item (U+0080以降の)\textbf{ALchar}は,すべてLetter扱いである.
%<en>\item \textbf{JAchars} are classified in the order as follows:
%<ja>\item (U+0080以降の)\textbf{JAchar}については,以下の順序に従って文字種を決める:
\begin{enumerate}
-%<en>\item Characters whose \Param{prebreakpenalty} is greater than or equal to 0 are Open.
-%<ja>\item \Param{prebreakpenalty} が0以上の文字はOpen扱いである.
+%<zh>\item ...
+%<en>\item Characters whose \Param{\hyperlink{fld:prebp}{prebreakpenalty}} is greater than or equal to 0 are Open.
+%<ja>\item \Param{\hyperlink{fld:prebp}{prebreakpenalty}}が0以上の文字はOpen扱いである.
-%<en>\item Characters whose \Param{postbreakpenalty} is greater than or equal to 0 are Close.
-%<ja>\item \Param{postbreakpenalty} が0以上の文字はClose扱いである.
+%<en>\item Characters whose \Param{\hyperlink{fld:postbp}{postbreakpenalty}} is greater than or equal to 0 are Close.
+%<ja>\item \Param{\hyperlink{fld:postbp}{postbreakpenalty}}が0以上の文字はClose扱いである.
%<en>\item Characters that don't satisfy the above two conditions are Kanji.
%<ja>\item 上の2条件のどちらにも当てはまらなかった文字は,Kanji扱いである.
\end{itemize}
%<*en>
-The width of halfwidth kana (U+FF61--U+FF9F) is same as the width of \textbf{ALchar}; the width of the other \textbf{JAchars} is double the width of \textbf{ALchar}.
+The width of halfwidth kana (U+FF61--U+FF9F) is same as the width of \textbf{ALchar};
+the width of the other \textbf{JAchars} is double the width of \textbf{ALchar}.
%</en>
%<*ja>
なお,半角カナ(U+FF61--U+FF9F)以外の\textbf{JAchar}は欧文文字2文字分の幅をとるものとみなされる.
べる.大まかに述べると,次のようになる.
\begin{itemize}
\item 通常の\TeX の行分割方法に従って,段落を行分割する.この段階では,行
- 長に半端が出た場合,その半端分は\Param{xkanjiskip},
- \Param{kanjiskip},JFMグルーの全てで(優先順位なく)負担される.
+ 長に半端が出た場合,その半端分は\Param{\hyperlink{fld:xks}{xkanjiskip}},
+ \Param{\hyperlink{fld:kanjiskip}{kanjiskip}},JFMグルーの全てで(優先順位なく)負担される.
\item その後,\texttt{post\_linebreak\_filter} callbackを使い,\textbf{段
落中の各行ごとに},行末文字の位置を調整したり,優先度付きの行長調整
を実現するためにグルーの伸縮度を調整する.
行われているとして良い.まず,段落中の行中のグルーを
\begin{itemize}
\item 下のどれにも該当しないグルー
-\item 和欧文間空白(\Param{xkanjiskip})
\item JFMグルー(優先度別にまとめられる)
-\item 和文間空白(\Param{kanjiskip})
+\item 和欧文間空白(\Param{\hyperlink{fld:xks}{xkanjiskip}})
+\item 和文間空白(\Param{\hyperlink{fld:kanjiskip}{kanjiskip}})
\end{itemize}
の$1+1+5+1=8$つに類別し,それぞれの種別ごとに許容されている伸縮度の合計を計算する.
また,行長と自然長との差の絶対値を計算し,それを\textit{total}とおく.
\subsection{行末文字の位置調整}
-まず,行末が和文文字であった場合,それを動かすことによって,\textbf{JAglue} が負担する調整量を
-少なくしようとする.
+まず,行末が文字クラス$n$の\textbf{JAchar}であった場合,
+それを動かすことによって,\textbf{JAglue} が負担する調整量を少なくしようとする.
+この行末文字の左右の移動可能量は,JFM中にある文字クラス$n$の定義の
+\texttt{end\_stretch},~\texttt{end\_shrink}フィールドに全角単位の値として記述されている.
+
+例えば,行末文字が句点「。」であり,そこで用いられているJFM中に
+\begin{verbatim}
+ [2] = {
+ chars = { '。', ... }, width = 0.5, ...,
+ end_stretch = 0.5, end_shrink = 0.5,
+ },
+\end{verbatim}
+という指定があった場合,この行末の句点は
+\begin{itemize}
+\item 通常の\TeX の行分割処理で「半角以上の詰め」が行われていた場合,
+この分の行中の\textbf{JAglue}の負担を軽減するため,
+行末の句点を半角だけ右に移動する(ぶら下げ組を行う).
+\item 通常の\TeX の行分割処理で「半角以上の空き」が行われていた場合,
+逆に行末句点を半角左に移動させる(見た目的に全角取りとなる).
+\item 以上のどちらでもない場合,行末句点の位置調整は行わない.
+\end{itemize}
+となる.
+
+行末文字を移動した場合,その分だけ\textit{total}の値を引いておく.
+
+\subsection{グルーの調整}
+\textit{total}の分だけが,行中のグルーの伸縮度に応じて負担されることになる.
+……
%</ja>
\newpage
\appendix
-
-
+\batchmode
+%<*!zh>
%<en>\section{The category code of non-kanji characters defined in JIS~X~0213}
%<ja>\section{\LuaTeX-jaにおけるJIS~X~0213非漢字のcatcode}
%<*en>
\item If the third letter is {\tt -} (or the character is printed in red),
the character is not included in JIS~X~0208.
- Therefore, you can consider the character is not available.
+ Therefore, you can consider the character is not available in \pTeX.
%</en>
%<*ja>
\item 3文字目が{\tt -}となっているもの(本体の文字も赤身がかっている)は,
-JIS~X~0208にないため使用不能と考えて良いものである.
+JIS~X~0208にないため\pTeX では使用不能と考えて良いものである.
%</ja>
%<*en>
\test{1}\test{2}\test{3}\test{4}\test{5}\test{6}\test{7}\test{8}
\test{9}\test{10}\test{11}\test{12}\test{13}
+%</!zh>
+\errorstopmode
\section{Package versions used in this document}
This document was typeset using the following packages: