\makeatletter
%%%%%%%%
\directlua{if jit then jit.on() end}
-
-\usepackage{amsmath,array,tikz,pict2e,multienum,float}
+\usepackage{metalogo,amsmath,array,tikz,pict2e,multienum,float}
\usepackage{booktabs,multicol,luatexja-ruby}
\usepackage[all]{xy}
\usepackage{lltjext,alltt}
%%%%%%%% fonts
\usepackage{luatexja-otf}
\directlua{luatexja.otf.enable_ivs()}
-\usepackage[match]{luatexja-fontspec}
-\usepackage[kozuka-pr6n]{luatexja-preset}
-\usepackage{unicode-math}
+\usepackage[no-math]{fontspec}
\setmainfont[Ligatures=TeX]{Linux Libertine O}
\setmonofont[Scale=MatchLowercase, ItalicFont=lmmono10-italic.otf,
BoldFont=lmmonolt10-bold.otf, BoldItalicFont=lmmonolt10-boldoblique.otf
]{lmmono10-regular.otf}
+\setsansfont[Scale=MatchLowercase,Ligatures=TeX]{Linux Biolinum O}
+\usepackage[match]{luatexja-fontspec}
+\usepackage[kozuka-pr6n]{luatexja-preset}
+\usepackage{unicode-math}
\setmonojfont{KozGoPr6N-Regular.otf}
\setmathfont[Scale=MatchLowercase]{xits-math.otf}
-\setsansfont[Scale=MatchLowercase,Ligatures=TeX]{Linux Biolinum O}
+
+\setLaTeXa{\scshape a}
%<*ja>
\def\emph#1{\textbf{\textgt{#1}}}
\def\headfont{\normalfont\bfseries\gtfamily}\normalsize
\usepackage[margin=25mm,lmargin=30mm,rmargin=30mm,footskip=6mm]{geometry}
\usepackage{luatexja-adjust}\ltjdisableadjust
\parskip=\smallskipamount
+\makeatletter
\renewcommand\paragraph{\@startsection{paragraph}{4}{\z@}%
{3.25ex \@plus1ex \@minus.2ex}%
{-1em}%
explpreset={numberstyle=\tiny, numbers=left, numbersep=1em, columns=fixed}
}
% Suppress output from showexpl to stdout.
+\makeatletter
\let\SX@Info\relax
%%%%%%%% colors
\DeclareRobustCommand\epTeX{\ensuremath{\varepsilon}-\pTeX}
%%%%%%%% other macros
-\newlist{cslist}{description}{1}
+\newlist{cslist}{description}{2}
\setlist[cslist]{%
style=nextline,font=\mdseries\ttfamily,
before*=\def\<{\char`\<}\def\>{\char`\>}\def\{{\char`\{}\def\}{\char`\}},
+ topsep=\medskipamount,
%<ja> leftmargin=2\zw,
%<en> leftmargin=2em,
}
\vskip\belowcaptionskip}
\def\_{\leavevmode \kern .06em\vbox {\hrule \@width .333em}}
-\def\cs#1{\texttt{\upshape\textbackslash\ltjsetparameter{autoxspacing=false}#1}}
+\def\cs#1{\texttt{\upshape
+ \texorpdfstring{\textbackslash\ltjsetparameter{autoxspacing=false}#1}{\textbackslash#1}}}
%%%%%%%%
\makeatother
width:\hfill\ #2\cr height:\hfill\ #3\cr depth:\hfill\ #4\cr
}}}}}\,}
-\protected\def\Param#1{\hyperlink{fld:#1}{\textsf{#1}}} % parameter name
-\protected\def\DParam#1{\hypertarget{fld:#1}{\textsf{#1}}} % parameter name (definition)
-\protected\def\Pkg#1{\underline{\smash{\texttt{#1}}}} % packages/classes
+\protected\def\Param#1{\hyperlink{fld:#1}{\underline{\smash{\textsf{#1}}}}} % parameter name
+\protected\def\DParam#1{\hypertarget{fld:#1}{\underline{\smash{\textsf{#1}}}}} % parameter name (definition)
+\protected\def\Pkg#1{\textsf{#1}} % packages/classes
\begin{document}
が始まったパッケージである.
%</ja>
-%<en>\subsection{Major Changes from \pTeX}
+%<en>\subsection{Major changes from \pTeX}
%<ja>\subsection{\pTeX からの主な変更点}
\label{ssec:chgptex}
As shown above, they are changed by \cs{zw}~and~\cs{zh} respectively, in \LuaTeX-ja.
%</en>
%<*ja>
-ç\89¹ã\81«æ³¨æ\84\8fã\81\97ã\81¦ã\81»ã\81\97ã\81\84ã\81®ã\81¯ï¼\8c\pTeX ã\81§è¿½å\8a ã\81\95ã\82\8cã\81\9f \texttt{zw} ã\81¨ \texttt{zh} ã\81¨ã\81\84ã\81\86å\8d\98ä½\8dã\82\92
-\LuaTeX-ja で扱うには,\cs{zw}, \cs{zh} と制御綴の形にしないといけないという点である.
+ç\89¹ã\81«æ³¨æ\84\8fã\81\97ã\81¦ã\81»ã\81\97ã\81\84ã\81®ã\81¯ï¼\8c\pTeX ã\81§è¿½å\8a ã\81\95ã\82\8cã\81\9f \texttt{zw} ã\81¨ \texttt{zh} ã\81¨ã\81\84ã\81\86å\8d\98ä½\8dã\81¯
+\LuaTeX-ja では使用できず,\cs{zw}, \cs{zh} と制御綴の形にしないといけないという点である.
%</ja>
%<*en>
%</ja>
%<*en>
-
\paragraph{Spaces related to Japanese characters}
The insertion process of glues/kerns between two Japanese
characters and between a Japanese character and other characters
%<*en>
\paragraph{Directions}
-From version~20150420.0, \LuaTeX-ja supports vertical writing;
-but this feature must \emph{not} be confused with $\Omega$-style direction support of \LuaTeX\
-itself. ...
+From version~20150420.0, \LuaTeX-ja supports vertical writing.
+We implement this feature by using callbacks of \LuaTeX; so it must \emph{not} be confused
+with $\Omega$-style direction support of \LuaTeX\ itself.
+Due to implementation, the dimension returned by \cs{wd},~\cs{ht}, or~\cs{dp} depends
+on the content of the register \emph{only}. This is major difference with \pTeX.
%</en>
%<*ja>
\paragraph{組方向}
20150420.0版からは,不安定ながらも\LuaTeX-ja における縦組みをサポートしている.
-なお,\LuaTeX 本体も,$\Omega$流の組方向をサポートしているが,それとは全くの別物であること
+なお,\LuaTeX 本体も$\Omega$流の組方向をサポートしているが,それとは全くの別物であること
に注意してほしい.
-\LuaTeX のコールバックや実装により,特に異なった組方向のボックスを扱う場合には
-\cs{wd}, \cs{ht}, \cs{dp}等の仕様が異なるので注意.詳細は第\ref{sec-direction}章を参照.
+特に,異なった組方向のボックスを扱う場合には
+\cs{wd}, \cs{ht}, \cs{dp}等の仕様が\pTeX と異なるので注意.詳細は第\ref{sec-direction}章を参照.
%</ja>
%<*en>
しても使いたい場合は \cs{hbox} で括ること.
%</ja>
+%<*en>
+\paragraph{Greek and Cyrillic letters, and ISO~8859-1 symbols}
+By default, \LuaTeX-ja uses Japanese fonts to typeset Greek and Cyrillic letters,
+ To change this behavior,
+ put \verb!\ltjsetparameter{jacharrange={-2,-3}}! in the preamble.
+ For the detailed description, see Subsection~\ref{ssec-setrange}.
+
+From this version, characters which belongs both ISO~8859-1 and JIS~X~0208,
+ such as \P~and~\S, are now typeset in alphabetic fonts. This means that
+ without the \cs{fontspec} (and~\Pkg{luatexja-fontspec}) package, these characters are not typeset correctly.
+%</en>
+%<*ja>
+\paragraph{ギリシャ文字・キリル文字とISO~8859-1の記号}
+標準では,\LuaTeX-jaはギリシャ文字やキリル文字を和文フォントを使っ
+ て組む.ギリシャ語などを本格的に組むなどこの状況が望ましくない場合,
+ プリアンブルに
+\begin{lstlisting}
+ \ltjsetparameter{jacharrange={-2,-3}}
+\end{lstlisting}
+ を入れると
+ 上記種類の文字は欧文フォントを用いて組まれるようになる.
+ 詳しい説明は\ref{ssec-setrange}節を参照してほしい.
+また,\P,~\S といったISO~8859-1の上位領域とJIS~X~0208の共通部分の文字は
+ 本バージョンから標準で欧文扱いとなり,\emph{ソース中に直接記述しても
+ \Pkg{fontspec}パッケージ(および\Pkg{luatexja-fontspec}パッケージ)非読み込みの状態では出力されなくなった}.
+ 和文扱いで出力するには \verb+\ltjjachar`§+ のように \cs{ltjjachar} 命令
+ を使えばよい.
+%</ja>
%<en>\subsection{Notations}
%<ja>\subsection{用語と記法}
\textbf{JAchar}の出力に用いられるフォントを\emph{和文フォント}と呼ぶ.
%</ja>
%<*en>
-\item A word in a sans-serif font (like \Param{prebreakpenalty})
+\item A word in a sans-serif font with underline (like \Param{prebreakpenalty})
means an internal parameter for Japanese typesetting, and it
is used as a key in \cs{ltjsetparameter} command.
%</en>
%<*ja>
-\item サンセリフ体で書かれた語(例:\Param{prebreakpenalty})は日本語組版用の
+\item 下線つきローマン体で書かれた語(例:\Param{prebreakpenalty})は日本語組版用の
パラメータを表し,これらは \cs{ltjsetparameter} 命令のキーとして
用いられる.
%</ja>
%<*en>
-\item A word in typewriter font with underline (like \Pkg{fontspec})
+\item A word in a sens-serif font without underline (like \Pkg{fontspec})
means a package or a class of \LaTeX.
%</en>
%<*ja>
-\item 下線付きタイプライタ体の語(例:\Pkg{fontspec})は\LaTeX の
+\item 下線なしサンセリフ体の語(例:\Pkg{fontspec})は\LaTeX の
パッケージやクラスを表す.
%</ja>
%<*en>
%</ja>
\end{itemize}
-%<en>\subsection{About the Project}
+%<en>\subsection{About the project}
%<ja>\subsection{プロジェクトについて}
%<en>\paragraph{Project Wiki} Project Wiki is under construction.
\begin{lstlisting}
$ git clone git://git.osdn.jp/gitroot/luatex-ja/luatexja.git
\end{lstlisting}
-\item \texttt{master}ブランチのスナップショット(\texttt{tar.gz}形式)をダウンロードする.
+\item \texttt{master} ブランチのスナップショット(\texttt{tar.gz} 形式)をダウンロードする.
\begin{flushleft}
\url{http://git.osdn.jp/view?p=luatex-ja/luatexja.git;a=snapshot;h=HEAD;sf=tgz}.
\end{flushleft}
\end{itemize}
-\texttt{master}ブランチ(従って,CTAN内のアーカイブも)はたまにしか更新されないことに注意.
-主な開発は\texttt{master}の外で行われ,比較的まとまってきたらそれを\texttt{master}に
+\texttt{master} ブランチ(従って,CTAN内のアーカイブも)はたまにしか更新されないことに注意.
+主な開発は\texttt{master}の外で行われ,比較的まとまってきたらそれを \texttt{master} に
反映させることにしている.
%</ja>
%</en>
%<*ja>
\item 「Gitリポジトリをクローン」以外の方法でアーカイブを取得したならば,それを展開する.
- \texttt{src/}をはじめとしたいくつかのディレクトリができるが,
- 動作には\texttt{src/}以下の内容だけで十分.
+ \texttt{src/} をはじめとしたいくつかのディレクトリができるが,
+ 動作には \texttt{src/} 以下の内容だけで十分.
%</ja>
%<*en>
instead copying is also good.
%</en>
%<*ja>
-\item \texttt{src}の中身を自分の\texttt{TEXMF}ツリーにコピーする.
+\item \texttt{src} の中身を自分の \texttt{TEXMF} ツリーにコピーする.
場所の例としては,例えば
\begin{quote}
\texttt{TEXMF/tex/luatex/luatexja/}
%</ja>
\begin{itemize}
%<*en>
-\item The encoding of your source file must be UTF-8. No other
+\item The encoding of your source file must be UTF-8. Other
encodings, such as EUC-JP or Shift-JIS, are not supported.
%</en>
%<*ja>
従来日本語の文字コードとして用いられてきたEUC-JPやShift-JISは使用できない.
%</ja>
%<*en>
-\item By default, \LuaTeX-ja uses Japanese fonts to typeset Greek and Cyrillic letters,
- and some Unicode symbols such as \P~and~\S. To change this behavior,
- put \lstinline!\ltjsetparameter{jacharrange={-2,-3,-8}}! in the preamble.
- For the detailed description, see Subsection~\ref{ssec-setrange}.
-%</en>
-%<*ja>
-\item
-標準では,\LuaTeX-jaはギリシャ文字やキリル文字,それに\P や\S などの記号を和文フォントを使っ
- て組む.ギリシャ語などを本格的に組むなどこの状況が望ましくない場合,
- プリアンブルに \lstinline!\ltjsetparameter{jacharrange={-2,-3,-8}}! を入れると
- 上記種類の文字は欧文フォントを用いて組まれるようになる.
- 詳しい説明は\ref{ssec-setrange}節を参照してほしい.
-%</ja>
-%<*en>
\item \LuaTeX-ja is very slower than \pTeX.
Generally speaking, LuaJIT\TeX\ processes \LuaTeX-ja
about 30\% faster than \LuaTeX, but not always.
\href{https://osdn.jp/projects/luatex-ja/wiki/FrontPage%28en%29}{%
プロジェクトWiki英語版トップページ}中に書かれているバッチファイルを
実行して欲しい.このバッチファイルは,作業用ディレクトリにCMap達を
-コピーし,その中で\LuaTeX-ja の初回起動を行い,作業用ディレクトリを消す作業をしている.
+コピーし,その中で\LuaTeX-jaの初回起動を行い,作業用ディレクトリを消す作業をしている.
%</ja>
\end{itemize}
%<en>\item Japanese characters in math mode are typeset by the font family \texttt{mc}.
%<ja>\item 数式モード中の和文文字は明朝体(\texttt{mc})で出力される.
+%<*en>
+ \item \cs{jttdefault}%
+ \footnote{%
+ When \Pkg{ltjsclasses} classes are used, or
+ \Pkg{luatexja-fontspec} (or \Pkg{luatexja-preset}) is loaded with \texttt{match} option,
+ \cs{ttfamily} changes the current Japanese font amily to \cs{jttdefault}.
+ These classes and packages also redefine \cs{jttdefault} to
+ \cs{gtdefault} (\emph{gothic}~family).
+ } specifies the Japanese font family in \cs{verb}~or~\texttt{verbatim} environment.
+ The default value of \cs{jttdefault} is \cs{mcdefault}, so \emph{mincho} family is used.
+%</en>
+%<*ja>
+ \item \cs{verb} や \texttt{verbatim} 環境中の和文文字に使われる和文フォントファミリは
+ \ \cs{jttdefault} で指定する%
+ \footnote{%
+ \Pkg{ltjsclasses}を使用したり,あるいは \texttt{match} オプションを指定して\Pkg{luatexja-fontspec}%
+ や\Pkg{luatexja-preset}パッケージを読み込んだときは,単なる \cs{ttfamily} によっても和文フォントが
+ \ \cs{jttdefault}\ に変更される.また,これらのクラスファイルやパッケージは
+ \ \cs{jttdefault}\ を \cs{gtdefault}(ゴシック体)に再定義する.
+ }.標準値は \cs{mcdefault},つまり明朝体として用いるのと
+ 同じフォントファミリである.
+%</ja>
%<*en>
\item If you use the \Pkg{beamer} class with the default font theme (which uses sans serif
しかしながら,上記の設定は日本語の文書にとって十分とは言えない.
日本語文書を組版するためには,\texttt{article.cls}, \texttt{book.cls}といった
欧文用のクラスファイルではなく,和文用のクラスファイルを用いた方がよい.
-現時点では,\Pkg{jclasses}(\pLaTeX の標準クラス)と\Pkg{jsclasses}
+現時点では,\Pkg{jclasses}(\pLaTeX の標準クラス)と\Pkg{jsclasses}%
(奥村晴彦氏による「\pLaTeXe 新ドキュメントクラス」)に対応するものとして,
\Pkg{ltjclasses}\footnote{%
横組用は \texttt{ltjarticle.cls},~\texttt{ltjbook.cls}, \texttt{ltjreport.cls} であり,
%</ja>
\begin{itemize}
%<*en>
-\item Commands \cs{fontfamily}, \cs{fontseries},
- \cs{fontshape}, and \cs{selectfont} can be used to change
+\item Commands \cs{fontfamily}, \cs{fontseries}, and \cs{fontshape} can be used to change
attributes of Japanese fonts.
%</en>
%<*ja>
-\item 和文フォントの属性を変更するには,\cs{fontfamily}, \cs{fontseries}, \cs{fontshape},
- ã\81\9dã\81\97ã\81¦ã\81\9dã\82\8cã\82\89ã\82\92å\8f\8dæ\98 ã\81\95ã\81\9bã\82\8bã\81\9fã\82\81ã\81« \cs{selectfont} ã\82\92ç\94¨ã\81\84ã\82\8cã\81°ã\82\88ã\81\84.
+\item 和文フォントの属性を変更するには,\cs{fontfamily}, \cs{fontseries}, \cs{fontshape} を使用する.
+ ã\82\82ã\81¡ã\82\8dã\82\93ï¼\8cã\81\9dã\82\8cã\82\89ã\82\92å®\9fé\9a\9bã\81«å\8f\8dæ\98 ã\81\95ã\81\9bã\82\8bã\81«ã\81¯æ\89\8bå\8b\95ã\81§ \cs{selectfont} ã\82\92å®\9fè¡\8cã\81\99ã\82\8bå¿\85è¦\81ã\81\8cã\81\82ã\82\8b.
%</ja>
%<*en>
%<*en>
\item For defining a Japanese font family, use
\cs{DeclareKanjiFamily} instead of
- \cs{DeclareFontFamily}. However, in the present implementation,
- using \cs{DeclareFontFamily} doesn't cause any problem.
+ \cs{DeclareFontFamily}. (In previous version of \LuaTeX-ja,
+ using \cs{DeclareFontFamily} didn't cause any problem. But this no longer applies
+ the current version.)
\item Defining a Japanese font shape can be done by usual \cs{DeclareFontShape}:
%</en>
%<*ja>
\item 和文フォントファミリの定義には \cs{DeclareFontFamily} の
- 代わりに \cs{DeclareKanjiFamily} を用いる.しかし,現在の
- 実装では \cs{DeclareFontFamily} を用いても問題は生じない.
+ 代わりに \cs{DeclareKanjiFamily} を用いる.以前の
+ 実装では \cs{DeclareFontFamily} を用いても問題は生じなかったが,現在の実装では
+ そうはいかない.
\item 和文フォントのシェイプを定義するには,通常の \cs{DeclareFontShape} を使えば良い:
%</ja>
\begin{lstlisting}
記述しない.この方法については\ref{ssec-math}節を参照のこと.
%</ja>
-
-\subsection{fontspec}
+%<en>\subsection{\Pkg{luatexja-fontspec} package}
+%<ja>\subsection{\Pkg{luatexja-fontspec}パッケージ}
\label{ssec-fontspec}
%<*en>
-To coexist with the \Pkg{fontspec} package, it is needed to load
-the \Pkg{luatexja-fontspec} package in the preamble, as follows:
+To use the functionality of the \Pkg{fontspec} package to Japanese fonts,
+it is needed to load the \Pkg{luatexja-fontspec} package in the preamble, as follows:
\begin{quote}
\ttfamily \textbackslash usepackage[<options>]\{luatexja-fontspec\}
\end{quote}
packages, if needed.
%</en>
%<*ja>
-\Pkg{fontspec}パッケージと同様の機能を和文フォントに対しても用いる場合,
-\Pkg{luatexja-fontspec}パッケージを読み込めばよい.
+\Pkg{fontspec}パッケージは,\LuaTeX・\XeTeX において
+TrueType・OpenTypeフォントを容易に扱うためのパッケージであり,このパッケージを読み込んでお
+けばUnicodeによる各種記号の直接入力もできるようになる.
+\LuaTeX-jaでは和文と欧文を区別しているため,\Pkg{fontspec}パッケージの機能は欧文フォントに
+対してのみ有効なものとなっている.
+
+\LuaTeX-ja上において,\Pkg{fontspec}パッケージと同様の機能を和文フォントに対しても用いる場
+合は\Pkg{luatexja-fontspec}パッケージを読み込む:
\begin{quote}
\ttfamily \textbackslash usepackage[<options>]\{luatexja-fontspec\}
\end{quote}
-このパッケージ
-は必要ならば自動で\Pkg{luatexja}パッケージと\Pkg{fontspec}パッケージを読み込む.
+このパッケージは自動で\Pkg{luatexja}パッケージと\Pkg{fontspec}パッケージを読み込む.
%</ja>
%<*en>
\end{tabular}
\end{center}
%</ja>
-%<*en>
-The package option of \Pkg{luatexja-fontspec} are the followings:
+
+%<en> The package option of \Pkg{luatexja-fontspec} are the followings:
+%<ja> \Pkg{luatexja-fontspec} パッケージのオプションは以下の通りである:
\begin{cslist}
\item[match]
+%<*en>
If this option is specified, usual family-changing commands such as
\cs{rmfamily},~\cs{textrm}, \cs{sffamily},~\dots\ also change Japanese font family.
Note that \emph{\cs{setmonojfont} is defined
if and only if this \texttt{\textup{match}} option is specified}.
+%</en>
+
+%<*ja>
+このオプションが指定されると,「\pLaTeXe 新ドキュメントクラス」のように\
+\cs{rmfamily}, \verb+\textrm{...}+, \cs{sffamily} 等が
+欧文フォントだけでなく和文フォントも変更するようになる.
+
+\emph{なお,\cs{setmonojfont} はこの \texttt{match} オプションが
+指定された時のみ定義される.}この命令は標準の「タイプライタ体に対応する和文フォント」を指定する.
+%</ja>
\item[pass=<opts>]
-Specify options <opts> which will be passed to the \Pkg{fontspec} package.
+%<en> \emph{(Obsoleted)}\ Specify options <opts> which will be passed to the \Pkg{fontspec} package.
+%<ja> \Pkg{fontspec} パッケージに渡すオプション <opts> を指定する.本オプションは時代遅れである.
+
+\item[scale=<float>]
+%<*en>
+Override the ratio of the font size of Japanese fonts to that of alphabetic fonts.
+The default value is calculated automatically (for~example, about~0.924865 when
+ the \Pkg{ltjsarticle} class is used).
+%</en>
+%<*ja>
+欧文に対する和文の比率は,標準では \Pkg{luatexja-fontspec}読み込み時の和欧文比率から
+自動計算される(例えば,\Pkg{ltjsarticle}クラス使用時には和文は欧文の約0.924865倍となる)が,
+それを手動で上書きするときに使用する.
+%</ja>
\end{cslist}
+
+%<*en>
+All other options listed above are simply passed to the \Pkg{fontspec} package.
+This means that two lines below are equivalent, for example.
+%</en>
+%<*ja>
+上記にないオプションは全て \Pkg{fontspec} パッケージに渡される.
+例えば,下の2行は同じ意味になる:
+%</ja>
+\begin{lstlisting}
+\usepackage[no-math]{fontspec}\usepackage{luatexja-fontspec}
+\usepackage[no-math]{luatexja-fontspec}
+\end{lstlisting}
+
+
+%<*en>
The reason that \cs{setmonojfont} is not defined by default is that
it is popular for Japanese fonts that nearly all Japanese glyphs have same
widths. Also note that kerning information in a font is not used
Below is an example of \cs{jfontspec}.
%</en>
%<*ja>
-\Pkg{luatexja-fontspec} パッケージのオプションは以下の通りである:
-\begin{cslist}
- \item[match]
-このオプションが指定されると,「\pLaTeXe 新ドキュメントクラス」のように\
-\cs{rmfamily}, \verb+\textrm{...}+, \cs{sffamily} 等が
-欧文フォントだけでなく和文フォントも変更するようになる.
-
-\emph{なお,\cs{setmonojfont} はこの \texttt{match} オプションが
-指定された時のみ定義される.}この命令は標準の「タイプライタ体に対応する和文フォント」を指定する.
-
- \item[pass=<opts>]
-\Pkg{fontspec} パッケージに渡すオプション <opts> を指定する.
-\end{cslist}
標準で \cs{setmonojfont} コマンドが定義されないのは,
和文フォントではほぼ全ての和文文字のグリフが等幅であるのが伝統的であったことによる.
また,これらの和文用のコマンドではフォント内のペアカーニング情報は標準では使用されない,
JIS~X~0208:1990→辻
\end{LTXexample}
-%<en>\subsection{Presets}
-%<ja>\subsection{プリセット設定}
+%<en>\subsection{Presets of Japanese fonts}
+%<ja>\subsection{和文フォントのプリセット設定}
\label{ssec-preset}
%<*en>
-To use standard Japanese font settings easily, one can load the \Pkg{luatexja-preset}
-package with several options. This package provides functions in a part of
+One can load the \Pkg{luatexja-preset}
+package to use several ``presets'' of Japanese fonts.
+This package provides functions in a part of
\Pkg{japanese-otf} package and a part of \Pkg{PXchfon} package by Takayuki Yato.
+
+One can specified other options other than listed in this subsection.
+These are simply passed to the \Pkg{luatexja-fontspec}\footnote{if \texttt{nfssonly} option is
+\emph{not} specified; in this case these options are simply ignored.}.
+For example, the line~5 in below example is eqivalent to lines 1--3.
%</en>
%<*ja>
よく使われている和文フォント設定を一行で指定できるようにしたのが
\Pkg{luatexja-preset}パッケージである.このパッケージは,
\Pkg{otf}パッケージの一部機能と八登崇之氏による\Pkg{PXchfon}パッケージの一部機能とを
合わせたような格好をしている.
+
+オプションとして,本節にないものも指定することができるが,それらは
+\Pkg{luatexja-fontspec}パッケージに渡される\footnote{\texttt{nfssonly} オプションが
+指定されていた場合は,\Pkg{luatexja-fontspec}パッケージは読み込まれないので単純に無視され
+る.}.例えば,下の1--3行目は5行目のように一行にまとめることができる.
%</ja>
+\begin{lstlisting}
+\usepackage[no-math]{fontspec}
+\usepackage[match]{luatexja-fontspec}
+\usepackage[kozuka-pr6n]{luatexja-preset}
+%%--------
+\usepackage[no-math,match,kozuka-pr6n]{luatexja-preset}
+\end{lstlisting}
%<en>\paragraph{General options}
%<ja>\paragraph{一般的なオプション}
\begin{cslist}[before*=]
-
-\item[fontspec]
+\item[fontspec%
+%<en>\textrm{~(enabled by default)}
+%<ja>\emph{\gtfamily (既定)}
+]
%<*en>
With this option, Japanese fonts are selected using functionality of
the \Pkg{luatexja-fontspec} package. This means that the \Pkg{fontspec} package is
automatically loaded by this package.
-\emph{This option is enabled by default.}
-If you need to pass some options to \Pkg{fontspec}, load \Pkg{fontspec} manually
+If you need to pass some options to \Pkg{fontspec}, you can load \Pkg{fontspec} manually
before \Pkg{luatexja-preset}:
%</en>
%<*ja>
\Pkg{luatexja-fontspec}パッケージの機能を用いて和文フォントを選択する.
これは,\Pkg{fontspec}パッケージが自動で読み込まれることを意味する.
-\emph{このオプションは標準で有効になっている.}
もし\Pkg{fontspec}パッケージに何らかのオプションを渡す必要がある
\footnote{例えば,数式フォントまで置換されてしまい,\cs{mathit}によってギリシャ文字の
\item[nfssonly]
%<*en>
-With this option,selecting Japanese fonts won't be performed using the functionality of
- the \Pkg{fontspec} package, but only standard NFSS2.
+With this option, selecting Japanese fonts won't be performed using the functionality of
+ the \Pkg{fontspec} package, but only standard NFSS2 (hence without
+ \cs{addjfontfeatures} etc.).
+This option is ignored when \Pkg{luatexja-fontspec} package is loaded.
-This option will be disabled when \Pkg{luatexja-fontspec} package is loaded.
-Note that the \Pkg{fontspec} can coexist with the option as the following:
+When this option is specified, \Pkg{fontspec}~and~\Pkg{luatexja-fontspec} are
+\emph{not} loaded by default. Nevertheless,
+the package\Pkg{fontspec} can coexist with the option, as the following:
\begin{lstlisting}
\usepackage{fontspec}
\usepackage[hiragino-pron,nfssonly]{luatexja-preset}
\end{lstlisting}
-Note that the functionality of the \Pkg{luatexja-fontspec} package, such as
- \cs{setmainjfont}, cannot be used in the example above.
+In this case, one can use \cs{setmainfont} etc.\ to select \emph{alphabetic} fonts.
%</en>
%<*ja>
\LaTeX 標準のフォント選択機構(NFSS2)を用いて
ションが指定された場合には \texttt{ltjpmg}(丸ゴシック)という
3つの和文フォントファミリを定義し,これらを用いる.
-欧文フォントの指定で\Pkg{fontspec}パッケージを読み込んでいる場合でも
+本オプション指定時には\Pkg{fontspec}・\Pkg{luatexja-fontspec}パッケージは
+自動では読み込まれない,しかし,
\begin{lstlisting}
\usepackage{fontspec}
\usepackage[hiragino-pron,nfssonly]{luatexja-preset}
\end{lstlisting}
-のようにこのオプションを指定することは可能である.一方,
+のようにすれば,このオプションを指定すれば
+欧文フォントを\Pkg{fontspec}パッケージの機能を使って指定することができる.
+一方,
パッケージ読み込み時に既に\Pkg{luatexja-fontspec}パッケージが読み込まれて
いる場合は \texttt{nfssonly} オプションは無視される.
%</ja>
-\item[nodeluxe]
+\item[match]
%<*en>
+If this option is specified, usual family-changing commands such as
+\cs{rmfamily},~\cs{textrm}, \cs{sffamily},~\dots\ also change Japanese font family.
+This option is passed to \Pkg{luatexja-fontspec}, if \texttt{fontspec}
+option is specifed.
+%</en>
+
+%<*ja>
+このオプションが指定されると,「\pLaTeXe 新ドキュメントクラス」のように\
+\cs{rmfamily}, \verb+\textrm{...}+, \cs{sffamily} 等が
+欧文フォントだけでなく和文フォントも変更するようになる.
+\ \texttt{fontspec}\
+オプションが有効になっている場合は,このオプションは \Pkg{luatexja-fontspec} パッケージへと渡される.
+%</ja>
+
+
+\item[nodeluxe%
+%<en>\textrm{~(enabled by default)}
+%<ja>\emph{\gtfamily (既定)}
+]
+%<*en>
+The nagation of \texttt{deluxe} option.
Use one-weighted \textit{mincho} and \textit{gothic} font families.
This means that \verb+\mcfamily\bfseries+, \verb+\gtfamily\bfseries+ and
\verb+\gtfamily\mdseries+ use the same font.
-\emph{This option is enabled by default.}
%</en>
%<*ja>
+\texttt{deluxe}オプションの否定.
\LaTeXe 環境下の標準設定のように,明朝体・ゴシック体を各1ウェイトで使用する.
より具体的に言うと,この設定の下では
\ \verb+\mcfamily\bfseries+, \verb+\gtfamily\bfseries+,
\verb+\gtfamily\mdseries+はみな同じフォントとなる.
-\emph{このオプションは標準で有効になっている.}
%</ja>
\item[deluxe]
%<*en>
}.
%</ja>
\item[bold]
-%<en>Substitute bold series of \textit{gothic} for bold series of \textit{mincho}.
-%<ja>「明朝の太字」をゴシック体の太字によって代替する.
+%<*en>
+Substitute bold series of \textit{gothic} for bold series of \textit{mincho}.
+If \texttt{nodeluxe} option is enabled, medium series of \textit{gothic} is also changed,
+since we use same font for both series of \textit{gothic}.
+%</en>
+%<*ja>
+「明朝の太字」をゴシック体の太字によって代替する.
+もし\texttt{nodeluxe}オプションが指定されている場合は,ゴシック体は1ウェイトしか使用されな
+ いため,
+「ゴシック体の中字」も同時に変更されることになる.
+%</ja>
\item[90jis]
%<en>Use 90JIS glyph variants if possible.
%<ja>出来る限り90JISの字形を使う.
用いるJFMを(JISフォントメトリック類似の)\texttt{jfm-jis.lua}にする.このオプションがない時は
\LuaTeX-ja標準の\texttt{jfm-ujis.lua}が用いられる.
%</ja>
+
\end{cslist}
%<*en>
Note that \texttt{90jis} and \texttt{jis2004} only affect with \textit{mincho},
%</en>
%<*ja>
\texttt{90jis}と\texttt{jis2004}については本パッケージで定義された
-明朝体・ゴシック体(・丸ゴシック体)にのみ有効である.両オプションが
-同時に指定された場合の動作については全く考慮していない.
+明朝体・ゴシック体(・丸ゴシック体)にのみ有効である.
+両オプションが同時に指定された場合の動作については全く考慮していない.
%</ja>
%<en>\paragraph{Presets for multi weight}
\end{tabular}
\end{center}
-%<ja>\newpage
-
\item[hiragino-pro] Hiragino Pro (Adobe-Japan1-5) fonts.
%<en> \\*[-\dimexpr\medskipamount+\baselineskip\relax]
\item[hiragino-pron] Hiragino ProN (Adobe-Japan1-5, JIS04-savvy) fonts.
\end{tabular}
\end{center}
-%<ja>\medskip
+%<ja>\newpage
\item[morisawa-pro] Morisawa Pro (Adobe-Japan1-4) fonts.
%<en> \\*[-\dimexpr\medskipamount+\baselineskip\relax]
\end{tabular}
\end{center}
- \item[moga-mobo] MogaMincho, MogaGothic, and MoboGothic.
+%<en>\newpage
+\item[moga-mobo] MogaMincho, MogaGothic, and MoboGothic.
%<en>These fonts can be downloaded from\\\hfill \url{http://yozvox.web.fc2.com/}.
%<ja>これらのフォントは \url{http://yozvox.web.fc2.com/} からダウンロードできる.
%<ja>\smash{\raisebox{1.5ex}{\gt 明朝}}%
&bold&Moga90Mincho Bold&MogaMincho Bold\\
\midrule
- &&Moga90Gothic&MogaGothic\\
+ &&Moga90Gothic*&MogaGothic*\\
&\smash{\raisebox{1.5ex}{medium}}
- &Moga90Gothic&MogaGothic\\
+ &Moga90Gothic Bold&MogaGothic Bold\\
\cmidrule(l){2-4}
%<en>\textit{gothic}%
%<ja>\gt ゴシック
\begin{lstlisting}
\ltjdefcharrange{100}{"20000-"2FFFF,`漢}
\end{lstlisting}
+
%<*en>
A character can belong to only one character range.
For example, whole SIP belong to the range~4 in the default setting of \LuaTeX-ja,
%</en>
%<*ja>
各文字はただ一つの文字範囲に所属することができる.
-例えば,SIPは全て\LuaTeX-jaのデフォルトでは4番の文字範囲に
-属しているが,上記の指定を行えばSIPは100番に属すようになり,4番からは除かれる.
+例えば,SIP内の文字は全て\LuaTeX-jaのデフォルトでは4番の文字範囲に
+属しているが,上記の指定を行えばSIP内の文字は100番に属すようになり,4番からは除かれる.
%</ja>
%<*en>
-The distinction between \textbf{ALchar} and \textbf{JAchar} is done for character ranges.
+The distinction between \textbf{ALchar} and \textbf{JAchar} is performed by character ranges.
This can be edited by setting the \textsf{jacharrange} parameter.
-For example, this is just the default setting of \LuaTeX-ja, and
+For example, the code below is just the default setting of \LuaTeX-ja, and
it sets
\begin{itemize}
- \item a character which belongs character ranges 1,~4, and~5 is \textbf{ALchar},
- \item a character which belongs character ranges 2,~3, 6, 7, and~8 is \textbf{JAchar}.
+ \item a character which belongs character ranges 1,~4, 5, and~8 is \textbf{ALchar},
+ \item a character which belongs character ranges 2,~3, 6, and~7 is \textbf{JAchar}.
\end{itemize}
%</en>
%<*ja>
これは\textsf{jacharrange}パラメータによって編集できる.
例えば,以下は\LuaTeX-jaの初期設定であり,次の内容を設定している:
\begin{itemize}
- \item 1番,4番,5番の文字範囲に属する文字は\textbf{ALchar}.
- \item 2番,3番,6番,7番,8番の文字範囲に属する文字は\textbf{JAchar}.
+ \item 1番,4番,5番,8番の文字範囲に属する文字は\textbf{ALchar}.
+ \item 2番,3番,6番,7番の文字範囲に属する文字は\textbf{JAchar}.
\end{itemize}
%</ja>
\begin{lstlisting}
-\ltjsetparameter{jacharrange={-1, +2, +3, -4, -5, +6, +7, +8}}
+\ltjsetparameter{jacharrange={-1, +2, +3, -4, -5, +6, +7, -8}}
\end{lstlisting}
%<*en>
The argument to \textsf{jacharrange} parameter is a list of non-zero integer.
%</ja>
%<*en>
-\paragraph{Default setting}
+Note that characters \texttt{U+0000}--\texttt{U+007F} are always treated as an
+\textbf{ALchar} (this cannot be customized).
+%</en>
+%<*ja>
+なお,\texttt{U+0000}--\texttt{U+007F} は常に\textbf{ALchar}として扱われる(利用者が変更す
+ることは出来ない).
+%</ja>
+
+%<*en>
+\paragraph{Default character ranges}
\LuaTeX-ja predefines eight character ranges for convenience. They are
determined from the following data:
%</en>
%<*ja>
-\paragraph{初期設定}
+\paragraph{文字範囲の初期値}
\LuaTeX-jaでは8つの文字範囲を予め定義しており,
これらは以下のデータに基づいて決定している.
%</ja>
number shows whether each character in the range is treated as
\textbf{JAchar}s or not by default. These settings are similar to the
\texttt{prefercjk} settings defined in \texttt{PXbase} bundle.
-Any characters above \texttt{U+0080} which does not belong to
+Any characters equal to or above \texttt{U+0080} which does not belong to
these eight ranges belongs to the character range~217.
%</en>
%<*ja>
以下ではこれら8つの文字範囲について記述する.添字のアルファベット「J」「A」
-は,その文字範囲内の文字が\textbf{JAchar}か\textbf{ALchar}かを表している.これらの設定は
-\texttt{PXbase}バンドルで定義されている\texttt{prefercjk}と類似のものである.
+は,その文字範囲内の文字が\textbf{JAchar}か\textbf{ALchar}かを表している.これらの初期設定は
+\texttt{PXbase}バンドルで定義されている\texttt{prefercjk}と類似のものであるが,
+8ビットフォント使用時のトラブルを防ぐために \texttt{U+0080}--\texttt{U+00FF} の文字は全部
+\textbf{ALchar}としている.
なお,\texttt{U+0080} 以降でこれら8つの文字範囲に属さない文字は,217番の文字範囲に属することになっている.
%</ja>
\begin{description}
%<*en>
-\item[Range~8${}^{\kern.1em\text{J}}$] The intersection of the upper half of ISO~8859-1
+\item[Range~8${}^{\text{A}}$] The intersection of the upper half of ISO~8859-1
(Latin-1 Supplement) and JIS~X~0208 (a basic character set for Japanese). This character range
consists of the following characters:
%</en>
%<*ja>
-\item[範囲8${}^{\kern.1em\text{J}}$] ISO~8859-1の上位領域(ラテン1補助)と
+\item[範囲8${}^{\text{A}}$] ISO~8859-1の上位領域(ラテン1補助)と
JIS~X~0208の共通部分.この文字範囲は
以下の文字で構成される:
%</ja>
\item \texttt{U+0180}--\texttt{U+024F}: Latin Extended-B
\item \texttt{U+0250}--\texttt{U+02AF}: IPA Extensions
\item \texttt{U+02B0}--\texttt{U+02FF}: Spacing Modifier Letters
-\item \texttt{U+0300}--\texttt{U+036F}: \\\null\hfill Combining Diacritical Marks
-\item \texttt{U+1E00}--\texttt{U+1EFF}: \\\null\hfill Latin Extended Additional
-\par\
+%<en>\par\
+\item \texttt{U+0300}--\texttt{U+036F}: \\*\null\hfill Combining Diacritical Marks
+\item \texttt{U+1E00}--\texttt{U+1EFF}: \\*\null\hfill Latin Extended Additional
+%<ja>\par\
\end{itemize}
\end{multicols}
%<*en>
%</en>
%<*ja>
\item[範囲2${}^{\text{\kern.1emJ}}$] ギリシャ文字とキリル文字.JIS~X~0208(したがってほとんどの
- å\92\8cæ\96\87ã\83\95ã\82©ã\83³ã\83\88ï¼\89ã\81¯ã\81\93ã\82\8cã\82\89ã\81®æ\96\87å\97ã\82\92æ\8c\81ã\81¤.
+ å\92\8cæ\96\87ã\83\95ã\82©ã\83³ã\83\88ï¼\89ã\81«ã\81¯ï¼\8cã\81\93ã\82\8cã\82\89ã\81®æ\96\87å\97ã\81®ä¸\80é\83¨ã\81\8cå\90«ã\81¾ã\82\8cã\81¦ã\81\84ã\82\8b.
%</ja>
\begin{multicols}{2}
\begin{itemize}
\end{table}
\end{description}
+%<*en>
+\paragraph{Notes on \texttt{U+0080}--\texttt{U+00FF}}
+You should treat characters in \\texttt{U+0080}--\texttt{U+00FF} as \textbf{ALchar},
+when you use traditional 8-bit fonts, such as the \Pkg{textcomp} package or the
+\Pkg{marvosym} package.
+
+For example, the codepoint \cs{textparagraph} which is provided by the \Pkg{textcomp}
+package is 182. This codepoint corresponds \P\ (\text{U+00B6}) in Unicode.
+Similarly, \cs{Frowny} which is provided by the \Pkg{marvosym} package has
+the same codepoint as \S\ (\text{U+00A7}).
+Hence, as previous versions of \LuaTeX-ja, if these characters are treated as
+\text{JAchar}s, then \cs{textparagraph} produces ``ltjjachar`¶'' (in a Japanese font),
+and \cs{Frowny} produces ``\ltjjachar`§'' (in a Japanese font).
+
+To avoid such situations, the default setting of \LuaTeX-ja is changed in this release
+so that all characters \texttt{U+0080}--\texttt{U+00FF} are treated as \textbf{ALchar}.
+
+If you want to output a character as \textbf{ALchar} and \textbf{JAchar} regardless the range
+setting, you can use \cs{ltjalchar} and \cs{ltjjachar} respectively, as the following example.
+\begin{LTXexample}[width=0.3\textwidth]
+\gtfamily\large % default, ALchar, JAchar
+¶, \ltjalchar`¶, \ltjjachar`¶\\ % default: ALchar
+α, \ltjalchar`α, \ltjjachar`α % default: JAchar
+\end{LTXexample}
+%</en>
+%<*ja>
+\paragraph{\texttt{U+0080}--\texttt{U+00FF}についての注意}
+\LuaTeX-jaで,\Pkg{textcomp}パッケージや\Pkg{marvosym}パッケージ等,Unicodeフォントでなく
+伝統的な8ビットフォントを用いる場合には注意が必要である.
+
+例えば,\Pkg{textcomp}パッケージの提供する \cs{textparagraph} は,
+符号位置が182,つまり \texttt{0xB6} であり,Unicodeではこの符号位置では\P\ (\text{U+00B6}) に対応する.
+また,\Pkg{marvosym}パッケージの提供する \cs{Frowny} も,符号位置は167,つまりUnicodeにおける
+\S\ (\text{U+00A7}) と同じ符号位置にある.
+即ち,以前のバージョンのように,「前節の文字範囲8内の文字は\textbf{JAchar}」という設定で
+あったとすると,上記の \cs{textparagraph} は和文フォントで「\ltjjachar`¶」を出力し,
+また \cs{Frowny} は和文フォントで「\ltjjachar`§」を出力することになる.
+
+このような事態を避けるために,本バージョンからは \texttt{U+0080}--\texttt{U+00FF} の範囲の
+文字は全て\textbf{ALchar}となるように初期設定を変更している.
+特に影響を受けるのが,JIS~X~0208の一部分である文字範囲8内の文字であり,
+\emph{\Pkg{fontspec}パッケージを読み込んだりして欧文記号としてこれらの文字の出力環境を整え
+ないと,ソース中に直接記述しても出力されない}ことになる.
+
+なお,文字範囲の設定に関わらず1つの文字を\textbf{ALchar}, \textbf{JAchar}で出力したい場合には,
+以下の例のようにそれぞれ \cs{ltjalchar},~\cs{ltjjachar} に該当文字の文字コードを渡せばよい.
+\begin{LTXexample}[width=0.3\textwidth]
+\gtfamily\large % default, ALchar, JAchar
+¶, \ltjalchar`¶, \ltjjachar`¶\\ % default: ALchar
+α, \ltjalchar`α, \ltjjachar`α % default: JAchar
+\end{LTXexample}
+%</ja>
+
%<en>\subsection{\Param{kanjiskip} and \Param{xkanjiskip}}
%<ja>\subsection{\Param{kanjiskip}と\Param{xkanjiskip}}
\label{subs-kskip}
\cs{ltjgetparameter} によって取得することはできないので注意が必要である.
%</ja>
-%<en>\subsection{Insertion Setting of \Param{xkanjiskip}}
+%<en>\subsection{Insertion setting of \Param{xkanjiskip}}
%<ja>\subsection{\Param{xkanjiskip} の挿入設定}
%<*en>
下の例において引かれている水平線がベースラインである.
%</ja>
\begin{LTXexample}
-\vrule width 150pt height 0.4pt depth 0pt \hskip-120pt
+\vrule width 150pt height 0.2pt depth 0.2pt \hskip-120pt
\ltjsetparameter{yjabaselineshift=0pt, yalbaselineshift=0pt}abcあいう
\ltjsetparameter{yjabaselineshift=5pt, yalbaselineshift=2pt}abcあいう
\end{LTXexample}
異なる文字を中心線に揃えることができる.
以下は一つの例である(値はあまり調整されていないことに注意):
%</ja>
-\begin{LTXexample}
-xyz漢字
+\begin{LTXexample}[width=0.4\textwidth]
+\vrule width 150pt height4.417pt depth-4.217pt%
+\kern-150pt
+\large xyz漢字
{\scriptsize
- \ltjsetparameter{yjabaselineshift=-1pt,
- yalbaselineshift=-1pt}
- XYZひらがな
-}abcかな
+ \ltjsetparameter{yjabaselineshift=-1.757pt,
+ yalbaselineshift=-1.757pt}
+ 漢字xyzあいう
+}あいうabc
\end{LTXexample}
%<*en>
\toprule
\emph{入力}&\vspace*{\dimexpr-\origbaselineskip-\smallskipamount}
\begin{lstlisting}
-数式abc: $あa\hbox{い}$, $\int_0^x t\,dt=x^2\!/2$,
+数式abc: $あa\hbox{い}$, $\int_0^x t\,dt=x^2/2$,
$\Phi\vdash F(x)\ \hbox{for all}\ x\in A$
\end{lstlisting}\\
\noalign{\vskip-\origbaselineskip}
\midrule
\emph{\pTeX}&
{\ltjsetparameter{yalbaselineshift=10pt}%
-数式abc: $あa\lower10pt\hbox{い}$, $\int_0^x t\,dt=x^2\!/2$,
+数式abc: $あa\lower10pt\hbox{い}$, $\int_0^x t\,dt=x^2/2$,
$\Phi\vdash F(x)\ \lower10pt\hbox{for all}\ x\in A$
\par}\\
\midrule
\emph{\LuaTeX-ja}&
{\ltjsetparameter{yalbaselineshift=10pt}%
-数式abc: $あa\hbox{い}$, $\int_0^x t\,dt=x^2\!/2$,
+数式abc: $あa\hbox{い}$, $\int_0^x t\,dt=x^2/2$,
$\Phi\vdash F(x)\ \hbox{for all}\ x\in A$
\par}\\
\noalign{\vskip-\origbaselineskip}
\Param{jaxspmode},~\Param{alxspmode}, \Param{prebreakpenalty},
\Param{postbreakpenalty}~and~\Param{kcatcode}
\end{quote}
-are stored by each character codes. ...
+are stored by each character codes.
+OpenType font features are ignored in these parameters.
For example, a fullwidth katakana ``ア'' on line~10 in the below input is replaced to
its halfwidth variant ``ア'', by \verb+hwid+ feature.
However, the penalty inserted after it is 10 which is the \Param{postbreakpenalty} of
``ア'', not 20.
%</en>
%<*ja>
-\subsection{禁則処理関連パラメータとfont feature}
+\subsection{禁則処理関連パラメータとOpenTypeのfont feature}
禁則処理や \Param{kanjiskip}, \Param{xkanjiskip} の挿入に関連したパラメータのうち
\begin{quote}
\Param{jaxspmode},~\Param{alxspmode}, \Param{prebreakpenalty},
\Pkg{fontspec}パッケージを使う(\ref{ssec-fontspec}節)場合など,
各種のOpenType featureを適用することもあると思うが,前段落に述べたパラメータ類は,
-\emph{OpenType featureの適用前の文字コードによって判定される.}
+\emph{OpenType featureの適用前の文字コードによって適用される.}
例えば,以下の例において10行目の「ア」は,\verb+hwid+ featureの適用により半角カタカナの「ア」
に置き換わる.しかし,その直後に挿入される \Param{postbreakpenalty}は,置換前の「ア」に対する値10である.
%</ja>
%<*en>
\bfseries meaning&
\bfseries control word&
-\bfseries widow penalty\hbox{}$^*$&
+\bfseries widow penalty&
\bfseries linebreak\\
%</en>
%<*ja>
\bfseries 意図&
\bfseries 制御綴中に使用&
-\bfseries 文字ウィドウ処理\hbox{}$^*$&
+\bfseries 文字ウィドウ処理&
\bfseries 直後での改行\\
%</ja>
\midrule
\medskip
%<*ja>
-文字ウィドウ処理\hbox{}$^*$: 「漢字が一文字だけ次の行に行くのを防ぐ」\
+文字ウィドウ処理:「漢字が一文字だけ次の行に行くのを防ぐ」
\cs{jcharwidowpenalty} が,
その文字の直前に挿入されうるか否か,を示す.
%</ja>
\begin{itemize}
\item (plain format) \texttt{luatex-unicode-letters.tex} is based on old \texttt{unicode-letters.tex}.
\item The latter half of \texttt{unicode-letters.tex}~and~\texttt{unicode-letters.def}
-sets\cs{catcode} of Kanji and kana characters to 11, via setting \cs{XeTeXcharclass}.
-
-However, this latter half does not exist (plain case), or not executed (\LaTeX~case) in \LuaTeX, hence
-\cs{catcode} of Kanji and kana characters remains 12 in \LuaTeX.
+sets\cs{catcode} of several characters to 11, via setting \cs{XeTeXcharclass}.
+However, this latter half does not exist (plain case), or not executed (\LaTeX~case) in \LuaTeX.
\end{itemize}
-In other words, Kanji nor kana characters cannot be used in
-a control word, in the default setting of \LuaTeX.
+In other words,
+\begin{description}
+\item[plain \LuaTeX]
+Kanji nor kana characters cannot be used in
+a control word, in the default setting of plain \LuaTeX.
+\item[\LuaLaTeX]
+In recent (2015-10-01 or later) \LuaLaTeX, Kanji and kana characters in a control word is supported (these catcode are 11),
+but not fullwidth alphanumerics and several other characters.
+\end{description}
This would be inconvenient for \pTeX~users to shifting to \LuaTeX-ja,
-since several control words containing Kanji, such as \verb+\西暦+,
-are used in \pTeX.
+since several control words containing Kanji or other fullwidth characters, such as
+\verb+\西暦+~or~\verb+\1年目西暦+ are used in \pTeX.
Hence, \LuaTeX-ja have a counterpart of \texttt{unicode-letters.tex}
for \LuaTeX, \emph{to match the \cs{catcode} setting with that of \XeTeX.}
%</en>
\LaTeX では \cs{catcode} の設定はカーネルに \texttt{unicode-letters.def} として統合され.
このファイルを\XeLaTeX, \LuaLaTeX の両方が用いている.
-
だが,\XeTeX における \cs{catcode} の初期設定と
\LuaTeX におけるそれは一致していない:
\begin{itemize}
\texttt{unicode-letters.tex} が古い
\item \texttt{unicode-letters.tex} 後半部や \texttt{unicode-letters.def} 後半部では
\cs{XeTeXcharclass} の設定を行なっており,
-それによって漢字や仮名の \cs{catcode} が11に設定されている.
-
+それによって漢字や仮名,および全角英数字の \cs{catcode} が11に設定されている.
しかし,\texttt{luatex-unicode-letters.tex} ではこの「後半部」が
まるごと省略されており,また\LuaLaTeX でも \texttt{unicode-letters.def} 後半部は実行されな
- い.従って漢字や仮名の \cs{catcode} は12のままになっている.
+ い.
\end{itemize}
-言い換えると,\LuaTeX の初期状態では漢字や仮名を制御綴内に
+言い換えると,
+\begin{description}
+ \item[plain \LuaTeX] 漢字や仮名を制御綴内に
使用することはできない.
-
-これでは \pTeX で使用できた \verb+\西暦+ などが使えないこととなり,
+ \item[\LuaLaTeX] 最近の(2015-10-01以降の)
+\LuaLaTeX では漢字や仮名を制御綴内に
+使用することが可能になったが,全角英数字は相変わらず使用できない,
+\end{description}
+これでは \pTeX で使用できた \verb+\1年目西暦+\footnote{科研費\LaTeX で使用されているそうです.}などが使えないこととなり,
\LuaTeX-jaへの移行で手間が生じる.そのため,\LuaTeX-jaでは
\texttt{unicode-letters.tex} の後半部にあたる内容を自前でパッチし,
結果として\textbf{\XeTeX における初期設定と同じになるようにしている.}
\end{table}
%<*en>
-\subsection{Non-kanji Characters in a Control Word}
+\subsection{Non-kanji characters in a control word}
Because the engine differ, so non-kanji JIS~X~0208 characters
which can be used in a control word differ in \pTeX, in \upTeX,~and~in \LuaTeX-ja.
Table~\ref{table-kcat-diff} shows the difference.
\put(0,0){\vector(1,0){5}} \put(2.5,-0.2){\makebox(0,0)[t]{$h_{\mathrm{T}}$}}
\put(0,0){\vector(-1,0){2}}\put(-1,-0.2){\makebox(0,0)[t]{$d_{\mathrm{T}}$}}
\put(0,0){\vector(0,-1){7}}\put(0.2,-3.5){\makebox(0,0)[l]{$w_{\mathrm{T}}$}}
- \end{picture}}}
+ \end{picture}}}%
}
\def\DTOUeg{%
\hbox{\smash{\begin{picture}(0,0)(-5,0)
\put(0,0){\vector(-1,0){5}} \put(-2.5,0.3){\makebox(0,0)[b]{$h_{\mathrm{D}}$}}
\put(0,0){\vector(1,0){2}}\put(1,0.3){\makebox(0,0)[b]{$d_{\mathrm{D}}$}}
\put(0,0){\vector(0,1){7}}\put(-0.2,3.5){\makebox(0,0)[r]{$w_{\mathrm{D}}$}}
- \end{picture}}}
+ \end{picture}}}%
}
\def\YOKOeg{%
\hbox{\smash{\begin{picture}(0,0)
\put(0,0){\vector(0,1){5}} \put(0.3,2.5){\makebox(0,0)[l]{$h_{\mathrm{Y}}$}}
\put(0,0){\vector(0,-1){2}}\put(0.3,-1){\makebox(0,0)[l]{$d_{\mathrm{Y}}$}}
\put(0,0){\vector(1,0){7}}\put(3.5,0.2){\makebox(0,0)[b]{$w_{\mathrm{Y}}$}}
- \end{picture}}}
+ \end{picture}}}%
}
\begin{tabular}{ccc}
\toprule
\begin{align*}
W_{\mathrm{Y}} &= h_{\mathrm{D}}+d_{\mathrm{D}},\\
H_{\mathrm{Y}} &= w_{\mathrm{D}},\\
- D_{\mathrm{Y}} &= 0\,pt
+ D_{\mathrm{Y}} &= 0\,\mathrm{pt}
\end{align*}%
}&
\parbox[c]{15\unitlength}{\begin{picture}(15,15)(0,-4)
\paragraph{\texttt{extend} and \texttt{slant}}
The following setting can be specified as OpenType font features:
\begin{cslist}[style=standard]
-\item[\cs{extend=}<extend>] expand the font horizontally by <extend>.
-\item[\cs{slant=}<slant>] slant the font.
+\item[\texttt{extend=}<extend>] expand the font horizontally by <extend>.
+\item[\texttt{slant=}<slant>] slant the font.
\end{cslist}
Note that \LuaTeX-ja doesn't adjust JFMs by these \texttt{extend} and \texttt{slant}
settings; you have to write new JFMs on purpose.
\S あいう\/ABC
\end{LTXexample}
+%<*ja>
+\paragraph{\texttt{ltjksp} 指定}
+\label{pg:ltjksp}
+\LuaTeX-ja標準では,
+JFM中における \texttt{kanjiskip\_natural}, \texttt{kanjiskip\_stretch},\
+\texttt{kanjiskip\_shrink}キー(\pageref{pg:ksp_nat}ページ)の使用によって,
+「JFM由来のグルーの他に,\Param{kanjiskip}の自然長/伸び量/縮み量の一部が
+同じ場所に挿入される」という状況が起こりうる.
+この機能を無効化し,20150922.0版以前と同じような組版を得るためには
+他のOpenType機能と同じように\ \texttt{-ltjksp}\ 指定を行えば良い.
+\begin{LTXexample}[width=16\zw]
+\leavevmode
+\ltjsetparameter{kanjiskip=0pt plus 3\zw}
+\vrule\hbox to 15\zw{あ「い」う,えお}\vrule
+
+\jfont\G=file:KozMinPr6N-Regular.otf%
+ :jfm=ujis;-ltjksp at 9.2487pt
+\G\leavevmode%
+\vrule\hbox to 15\zw{あ「い」う,えお}\vrule
+\end{LTXexample}
+なお,
+\begin{lstlisting}
+ \jfont\G=file:KozMinPr6N-Regular.otf:jfm=ujis;-ltjksp;+ltjksp at 9.2487pt
+\end{lstlisting}
+のように \texttt{+ltjksp} 指定を行った場合は,\texttt{kanjiskip\_natural} など
+3キーは再び有効化される.\texttt{-ltjksp}, \texttt{+ltjksp} を複数回指定した場合は,
+最後に指定したものが有効となる.
+%</ja>
+
+
%<en>\subsection{\cs{tfont}}
%<ja>\subsection{\cs{tfont} 命令}
\catcode`\<=12\catcode`\>=12
\ltjsetparameter{jacharrange={+3}}
\small
-
\def\r#1#2{%
\hbox{\tate\Large\vrule
\parbox{7\zw}{%
\addjfontfeatures{TateFeatures={Opacity=0.5, Color=#2, JFM=#1}}\noindent
- ◆◆◆◆◆◆◆
- ある日モモちゃんがお使いで迷子になって泣きました.
+ ◆◆◆◆◆◆◆\
+ ある日モモちゃんがお使いで迷子になって泣きました。
}\vrule}}
\def\s#1#2{%
\hbox{\tate\Large
?
\end{lstlisting}
-%<en>\subsection{Structure of a JFM File}
+%<en>\subsection{Structure of a JFM file}
%<ja>\subsection{JFMファイルの構造}
\label{ssec-jfm-str}
%<en>A JFM file is a Lua script which has only one function call:
%<ja>(必須)
%<*en>
+\begin{table}[t]
+ \centering
+\begin{tabular}{llr}
+\toprule
+Direction of JFM&\textbf{\texttt{'yoko'} (horizontal)}&\multicolumn{1}{l}{\textbf{\texttt{'tate'} (vertical)}}\\
+\midrule
+\texttt{width} field&the width of the ``real'' glyph&1.0~(full-width)\\
+\texttt{height} field&the height of the ``real'' glyph&0.5~(half-width)\\
+\texttt{depth} field&the depth of the ``real'' glyph&0.5~(half-width)\\
+\midrule
+\texttt{italic} field&\multicolumn{2}{c}{0.0}\\
+\bottomrule
+\end{tabular}
+\caption{Default values of \texttt{width} field and other fields}
+\label{tab-wid}
+\end{table}
Specify the width of characters in character class~$i$, the height, the depth and
the amount of italic correction. All characters in character class~$i$ are regarded that its width, height, and depth are
-as values of these fields.
-
-But there is one exception: \texttt{width} field can be \texttt{'prop'}.
-This means that width of a character becomes that of its ``real'' glyph.
+as values of these fields. The default values are shown in Table~\ref{tab-wid}.
%</en>
%<*ja>
+\begin{table}[t]
+ \centering
+\begin{tabular}{llr}
+\toprule
+JFM書字方向&\emph{\texttt{'yoko'}(横組)}&\multicolumn{1}{l}{\emph{\texttt{'tate'}(縦組)}}\\
+\midrule
+\texttt{width}&「実際のグリフ」の幅&1.0(全角)\\
+\texttt{height}&「実際のグリフ」の高さ&0.5(二分)\\
+\texttt{depth}&「実際のグリフ」の深さ&0.5(二分)\\
+\midrule
+\texttt{italic}&\multicolumn{2}{c}{0.0}\\
+\bottomrule
+\end{tabular}
+\caption{\texttt{width} フィールド等の標準値}
+\label{tab-wid}
+\end{table}
文字クラス$i$に属する文字の幅,高さ,深さ,イタリック補正の量を指定する.
文字クラス$i$に属する全ての文字は,その幅,高さ,深さがこのフィールドで指定した
-値であるものとして扱われる.
-
-例外として,\emph{\texttt{width} フィールドには数値以外に \texttt{'prop'} が指定可能である}.
-この場合,文字の幅はその「実際の」グリフの幅となる.OpenTypeの \texttt{prop} featureと併用
+値であるものとして扱われる.省略時や,数でない値を指定した時には表\nobreak\ref{tab-wid}に
+ 示されている値を用いる.例えば,横組用JFMで \texttt{width} フィールドには数値以外の値を指
+ 定した場合,文字の幅はその「実際の」グリフの幅となる.OpenTypeの \texttt{prop} featureと併用
すれば,これによってプロポーショナル組を行うことができる.
%</ja>
\label{fig-pos-tate}
\end{figure}
-\item[kern={\{[$j$]=<kern>, [$j'$]=\{<kern>, [<ratio>]\}, ...\}}]
-
-\item[glue={\{[$j$]=\{<width>, <stretch>, <shrink>, [<priority>], [<ratio>]\}, ...\}}]\
+\item[kern={\{[$j$]=<kern>, [$j'$]=\{<kern>, [ratio=<ratio>]\}, ...\}}]
+\nopagebreak
+\item[glue={\{[$j$]=\{<width>, <stretch>, <shrink>, [ratio=<ratio>, ...]\}, ...\}}]\leavevmode
%<*ja>
-文字クラス$i$の文字と$j$の文字の間に挿入されるkernやglueの量を指定する.
-
- <priority>は \Pkg{luatexja-adjust} による優先順位付き
- 行長調整(\ref{ssec-adj}節)が有効なときのみ意味を持つ.
-このフィールドは省略可能であり,行調整処理におけるこのglueの優先
- 度を$-2$から$+2$の間の整数で指定する.大きい値ほど「伸びやすく,縮みやすい」
- ことを意味する.省略時の値
- は0であり,範囲外の値が指定されたときの動作は未定義である.
+文字クラス$i$の文字と$j$の文字の間に挿入されるカーンやグルーの量を指定する.
-<ratio>も省略可能フィールドであり,$-1$から$+1$の実数値をとる.省略時の値は0である.
-\begin{itemize}
-\item $-1$はこのグルーが「前の文字」由来であることを示す.
-\item $+1$はこのグルーが「後の文字」由来であることを示す.
-\item それ以外の値は,「前の文字」由来のグルーと「後の文字」由来の
-グルーが混合されていることを示す.
-\end{itemize}
-なお,このフィールドの値は\Param{differentjfm}の値が
+<ratio>は,グルーの自然長のうちどれだけの割合が「後の文字」由来かを示す量で,
+$0$から$+1$の実数値をとる.省略時の値は$0.5$である.
+このフィールドの値は\Param{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
-\]
+\item <ratio>には$0.25/(0.5+0.25)=1/3$を指定する.
\end{itemize}
%</ja>
%<*en>
\
-Specifies the width of kern or glue which will be inserted
+Specifies the amount of kern or glue which will be inserted
between characters in character class~$i$ and those in character class~$j$.
-<priority> is an integer in $[-2,2]$ (treated as 0 if omitted), and this is
-used only in line adjustment with priority by \Pkg{luatexja-adjust}
-(see Subsection~\ref{ssec-adj}). Higher value means the glue is easy to shretch,
-and is also easy to shrink.
-
-<ratio> is also an optional value between $-1$ and 1. For example,
+<ratio> specifies how much the glue is originated in the ``right'' character.
+It is a real number between 0 and 1, and treated as 0.5 if omitted. For example,
The width of a glue between an ideographic full stop ``。''
and a fullwidth middle dot ``・'' is three-fourth of fullwidth,
namely halfwidth from the ideographic full stop, and
quarter-width from the fullwidth middle dot. In this case,
-we specify <ratio> to
-\[
- -1\cdot \frac{0.5}{0.5+0.25} + 1 \cdot \frac{0.25}{0.5+0.25} = -\frac13.
-\]
+we specify <ratio> to $0.25/(0.5+0.25)=1/3$.
%</en>
+%<*ja>
+グルーの指定においては,上記に加えて各 \texttt{[$j$]} の各サブテーブル内に
+次のキーを指定できる,
+\begin{cslist}[style=standard]
+\item[priority=<priority>]
+ \Pkg{luatexja-adjust} による優先順位付き
+ 行長調整(\ref{ssec-adj}節)の際に使われる値であり,
+行調整処理におけるこのglueの優先
+ 度を$-2$から$+2$の間の整数で指定する.大きい値ほど「伸びやすく,縮みやすい」
+ ことを意味する.省略時の値
+ は0であり,範囲外の値が指定されたときの動作は未定義である.
+\item[kanjiskip\_natural=<num>\textrm{, }%
+ kanjiskip\_stretch=<num>\textrm{, }kanjiskip\_shrink=<num>]\leavevmode
+ \label{pg:ksp_nat}
+
+JFMによって本来挿入されるグルーの他に
+\Param{kanjiskip}分の空白を自然長(\texttt{kanjiskip\_natural}),伸び量(\texttt{kanjiskip\_stretch}),
+縮み量(\texttt{kanjiskip\_shrink})ごとに挿入する\footnote{本来\Param{xkanjiskip}が挿入される場所においては
+ \Param{xkanjiskip}分の空白を自然長・伸び量・縮み量ごとに.追加できる.}%
+ための指定である.いずれも省略された場合のデフォルト値は0(追加しない)である.
+
+例えば,\LuaTeX-jaの横組標準JFMの \texttt{jfm-ujis.lua} では,
+\begin{itemize}
+ \item 通常の文字「あ」と開き括弧類の間に入るグルーは,自然長・縮み量半角,伸び量0のグルー
+となっているが,さらに\Param{kanjiskip}の伸び量に \texttt{kanjiskip\_stretch}(ここでは1)を掛け
+ た分だけ伸びることが許される.
+ \item 同様に,閉じ括弧類(全角コンマ「,」も含む)と通常の文字「う」「え」の間にも
+自然長・縮み量半角,伸び量0のグルー
+となっているが,さらに\Param{kanjiskip}の伸び量に \texttt{kanjiskip\_stretch}(ここでは1)を掛け
+ た分だけ伸びることが許される.
+\end{itemize}
+となっている.従って,以下のような組版結果を得る.
+
+\medskip
+\begin{LTXexample}[width=16\zw]
+\leavevmode
+\ltjsetparameter{kanjiskip=0pt plus 3\zw}
+\vrule\hbox to 15\zw{あ「い」う,えお}\vrule
+\end{LTXexample}
+
+\end{cslist}
+%</ja>
+%<*en>
+In case of glue, one can specify following additional keys in each \texttt{[$j$]}
+ subtable:
+\begin{cslist}[style=standard]
+\item[priority=<priority>]
+An integer in $[-2,2]$ (treated as 0 if omitted), and this is
+used only in line adjustment with priority by \Pkg{luatexja-adjust}
+(see Subsection~\ref{ssec-adj}). Higher value means the glue is easy to stretch,
+and is also easy to shrink.
+\item[kanjiskip\_natural=<num>\textrm{, }%
+ kanjiskip\_stretch=<num>\textrm{, }kanjiskip\_shrink=<num>]\leavevmode
+
+These keys specifies the amount of the natural width of \Param{kanjiskip}
+(the stretch/shrink part, respectively) which will be inserted
+in addition to the original JFM glue. Default values of them are all 0.
+
+As an example, in \texttt{jfm-ujis.lua}, the standard JFM in horizontal writing, we have
+\begin{itemize}
+ \item Between an ordinal letter ``あ'' and an ideographic opening bracket, we have
+a glue whose natural part and shrink part are both half-width, while its stretch part is
+ zero. However, this glue also can be stretched
+ as much as the stretch part of \Param{kanjiskip} times the value of
+ \texttt{kanjiskip\_stretch} key (1 in this case).
+ \item Between an ideographic closeing brackets (the ideographic comma ``,''
+ is included) and an ordinal letter, we have the same glue.
+ Again, this glue also can be stretched
+ as much as the stretch part of \Param{kanjiskip} times the value of
+ \texttt{kanjiskip\_stretch} key (1 in this case).
+\end{itemize}
+Hence we have the following result:
+
+\medskip
+\begin{LTXexample}[width=16\zw]
+\leavevmode
+\ltjsetparameter{kanjiskip=0pt plus 3\zw}
+\vrule\hbox to 15\zw{あ「い」う,えお}\vrule
+\end{LTXexample}
+
+\end{cslist}
+%</en>
\item[end\_stretch=<kern>, end\_shrink=<kern>]
%<*ja>
%</ja>
-%<en>\subsection{Math Font Family}
+%<en>\subsection{Math font family}
%<ja>\subsection{数式フォントファミリ}
\label{ssec-math}
その\textit{glyph\_node}をカプセル化しようとする際に呼び出される.
%</ja>
\begin{lstlisting}[numbers=left]
-function (<table> shift_info, <table> jfont_info, <number> char_class)
+function (<table> shift_info, <table> jfont_info, <table> char_type)
return <table> new_shift_info
end
\end{lstlisting}
(和文OpenTypeフォントの標準値)
\item 実フォント側の数値:$(\hbox{高さ})=28y$, $(\hbox{深さ})=5y$(和文TrueTypeフォントの標準値)
\end{itemize}
-ã\81¨ã\81ªã\81£ã\81¦ã\81\84ã\81\9fã\81¨ã\81\99ã\82\8bï¼\8eã\81\99ã\82\8bã\81¨ï¼\8cå®\9fé\9a\9bã\81®æ\96\87å\97ã\81®å\87ºå\8a\9bä½\8dç½®ã\81¯ï¼\8c以ä¸\8bã\81®é\87\8fã\81 ã\81\91ä¸\8aã\81«ã\81\9cらされることとなる:
+ã\81¨ã\81ªã\81£ã\81¦ã\81\84ã\81\9fã\81¨ã\81\99ã\82\8bï¼\8eã\81\99ã\82\8bã\81¨ï¼\8cå®\9fé\9a\9bã\81®æ\96\87å\97ã\81®å\87ºå\8a\9bä½\8dç½®ã\81¯ï¼\8c以ä¸\8bã\81®é\87\8fã\81 ã\81\91ä¸\8aã\81«ã\81\9aらされることとなる:
%</ja>
\[
\frac{88x}{88x+12x} (28y+5y) - 28y = \frac{26}{25}y= 1.04y.
%<en>\section{Other Commands for plain \TeX\ and \LaTeXe}
%<ja>\section{plainでも\LaTeX でも利用可能なその他の命令}
-%<en>\subsection{Commands for Compatibility with \pTeX}
+%<en>\subsection{Commands for compatibility with \pTeX}
%<ja>\subsection{\pTeX 互換用命令}
%<*en>
Using \cs{ltjdeclarealtfont}, one can ``compose'' more than one Japanese fonts.
This \cs{ltjdeclarealtfont} uses in the following form:
\begin{quote}
-\ttfamily \textbackslash ltjdeclarealtfont<base\_font\_cs><alt\_font\_cs>{<range>}
+\ttfamily \textbackslash ltjdeclarealtfont<base\_font\_cs><alt\_font\_cs>\{<range>\}
\end{quote}
where <base\_font\_cs>~and~<alt\_font\_cs> are defined by \cs{jfont}.
Its meaning is
If the current Japanese font is <base\_font\_cs>, characters which belong to <range>
is typeset by another Japanese font <alt\_font\_cs>, instead of <base\_font\_cs>.
\end{quote}
-
-<range> is a comma-separated list of character codes, but also accepts negative integers:
+Here <range> is a comma-separated list of character codes, but also accepts negative integers:
$-n$~($n≥1$) means that all characters of character classes~$n$, with respect to JFM used
by <base\_font\_cs>. Note that characters which do not exist in <alt\_font\_cs> are
ignored.
\cs{ltjdeclarealtfont} は以下の書式で使用する:
\begin{quote}
-\ttfamily \textbackslash ltjdeclarealtfont<base\_font\_cs><alt\_font\_cs>{<range>}
+\ttfamily \textbackslash ltjdeclarealtfont<base\_font\_cs><alt\_font\_cs>\{<range>\}
\end{quote}
これは「現在の和文フォント」が<base\_font\_cs>であるとき,
<range>に属する文字は<alt\_font\_cs>を用いて組版される,という意味である.
マクロの都合による.
%</ja>
+%<*ja>
+\subsection{\cs{ltjalchar} と \cs{ltjjachar}}
+文字コードが$\text{<chr\_code>}~(\geq 128=\mathtt{0x80})$の文字を
+\ \cs{char} プリミティブを使い \cs{char}<chr\_code> として出力させると,
+その文字の属する文字範囲(\ref{ssec-setrange}節参照)によって
+\textbf{ALchar}か\textbf{JAchar}か,つまり欧文フォントで出力されるか和文フォントで出力され
+るかが決まる.
+
+文字範囲の設定を無視し,文字コードが$\text{<chr\_code>}~(\geq 128=\mathtt{0x80})$の文字を強制的に
+\textbf{ALchar}, \textbf{JAchar}で出力する命令がそれぞれ
+\ \cs{ltjalchar},~\cs{ltjjachar} である.使用方法は \cs{char} と同じく
+\ \cs{ltjalchar}<chr\_code>, \cs{ltjjachar}<chr\_code>とすればよい.
+<chr\_code>が127以下の場合は,\cs{ltjjachar} であっても\textbf{ALchar}として出力されること
+に注意.
+
+以下は\ref{ssec-setrange}節に載せた例に,\cs{char} の動作を追加したものである.
+\begin{LTXexample}[width=0.25\textwidth]
+\gtfamily\large % default, ALchar, JAchar
+¶, \char`¶, \ltjalchar`¶, \ltjjachar`¶\\ % default: ALchar
+α, \char`α, \ltjalchar`α, \ltjjachar`α % default: JAchar
+\end{LTXexample}
+%</ja>
%<en>\section{Commands for \LaTeXe}
\item[\cs{fontfamily}\{<family>\}]
%<*en>
As in \LaTeXe, this command changes current font family (alphabetic, Japanese,~\emph{or both})
-to <family>. Which family will be changed is determined as follows:
+to <family>. See Subsection~\ref{ssec-fontfamilycmd} for detail.
%</en>
%<*ja>
元々の\LaTeXe におけるものと同様に,このコマンドは現在のフォントファミリ(欧文,
-和文,\emph{もしくは両方})を<family>に変更する.
-どのファミリが変更されるかは以下のようにして決定される:
+和文,\emph{もしくは両方})を<family>に変更する.詳細は\ref{ssec-fontfamilycmd}節を参照すること.
%</ja>
-\begin{itemize}
-%<*en>
-\item Let current encoding scheme for Japanese fonts be
- <ja-enc>. Current Japanese font family will be changed to
- <family>, if one of the following two conditions is met:
-%</en>
-%<*ja>
-\item 現在の和文フォントに対するエンコーディングが<ja-enc>であるとしよう.
- 現在の和文フォントファミリは,以下の2つの条件のうちの1つが満たされているときに
- <family>に変更される:
-%</ja>
-\begin{itemize}
-%<*en>
-\item The family <family> under the encoding <ja-enc> has been already defined by
- \cs{DeclareKanijFamily}.
-%</en>
-%<*ja>
-\item エンコーディング<ja-enc>におけるファミリ<family>が
-既に \cs{DeclareKanjiFamily} によって定義されている.
-%</ja>
-%<*en>
-\item A font definition named \texttt{<ja-enc><family>.fd} (the file name is
- all lowercase) exists.
-%</en>
-%<*ja>
-\item フォント定義ファイル\texttt{<ja-enc><family>.fd}(ファイル名は全て小文字)が存在する.
-%</ja>
-\end{itemize}
-%<*en>
-\item Let current encoding scheme for alphabetic fonts be
- <al-enc>. For alphabetic font family, the criterion as above is used.
-%</en>
-%<*ja>
-\item 現在の欧文フォントに対するエンコーディングを<al-enc>とする.
- 欧文フォントファミリに対しても,上記の基準が用いられる.
-%</ja>
-%<*en>
-\item There is a case which none of the above applies, that is, the font
- family named <family> doesn't seem to be defined neither under the
- encoding <ja-enc>, nor under <al-enc>.
-In this case, the default family for font substitution is used for
- alphabetic and Japanese fonts. Note that current encoding will not
- be set to <family>, unlike the original implementation in \LaTeX.
-%</en>
-%<*ja>
-\item 上記のいずれもが適用されない,つまり<family>が<ja-enc>と<al-enc>の
- どちらでも定義されないような場合がある.
- この場合,代替フォントに用いられるデフォルトのフォントファミリが欧文フォントと
- 和文フォントに用いられる.\LaTeX のオリジナルの実装とは異なり,
- 現在のエンコーディングは<family>には設定されないことに注意する.
-%</ja>
-\end{itemize}%
-%<en>\vspace{-\medskipamount}
\begin{figure}[!tb]
\userelfont\selectfont あいうabc
\end{LTXexample}
+%<en>\subsection{Detail of \cs{fontfamily} command}
+%<ja>\subsection{\cs{fontfamily}コマンドの詳細}
+\label{ssec-fontfamilycmd}
+%<*en>
+In this subsection, we describe when \cs{fontfamily}<family> changes current
+Japanese/alphabetic font family. Basically, current Japanese fotn family is changed to
+<family> if it is recognized as a Japanese font family, and similar with alphabetic font
+family. There is a case that current Japanese/alphabetic font family are both changed to
+<family>, and another case that <family> isn't recognized as a Japanese/alphabetic font
+family either.
+
+\paragraph{Recognition as Japanese font family}
+First, Whether Japanese font family will be changed is determined in following order.
+This order is very similar to \cs{fontfamily} in \pLaTeXe, but we re-implemented in Lua.
+We use an auxiliary list~$N_{\mathrm{J}}$.
+%</en>
+%<*ja>
+本節では,\cs{fontfamily}<family> がいつ和文/欧文フォントファミリを変更するかについて解説
+する.基本的には,<family>が和文フォントファミリだと認識されれば和文側が,欧文フォントファ
+ミリだと認識されれば欧文側が変更される.どちらとも認識されれば和文・欧文の両方が変わるこ
+とになるし,当然どちらとも認識されないこともある.
+
+\paragraph{和文フォントファミリとしての認識}
+まず,<family>が和文フォントファミリとして認識されるかは以下の順序で決定される.
+これは\pLaTeXe の \cs{fontfamily} にとても似ているが,ここではLuaによって実装している.
+補助的に「和文フォントファミリではないと認識された」ファミリを格納したリスト$N_{\mathrm{J}}$を用いる.
+%</ja>
+\begin{enumerate}
%<*en>
-\section{Addons}
+\item If the family~<family> has been defined already by \cs{DeclareKanjiFamily},
+ <family> is recognized as a Japanese font family.
+ Note that <family> need not be defined under \emph{current} Japanese font encoding.
+%</en>
+%<*ja>
+\item ファミリ<family>が既に \cs{DeclareKanjiFamily} によって定義されている場合,
+ <family>は和文フォントファミリであると認識される.
+ ここで,<family>は現在の和文フォントエンコーディングで定義されていなくてもよい.
+%</ja>
+%<*en>
+\item If the family~<family> has been listed in a list~$N_{\mathrm{J}}$, this means
+ that <family> is not a Japanese font family.
+%</en>
+%<*ja>
+\item ファミリ<family>がリスト$N_{\mathrm{J}}$に既に含まれていれば,それは
+ <family>が和文フォントファミリではないことを意味する.
+%</ja>
+%<*en>
+\item If the \Pkg{luatexja-fontspec} package is loaded, we stop here, and <family> is not
+ recognized as a Japanese font family.
+
+ If the \Pkg{luatexja-fontspec} package is \emph{not} loaded,
+now \LuaTeX-ja looks whether there exists a Japanese font encoding~<enc> such that
+ a font definition named \texttt{<enc><family>.fd} (the file name is
+ all lowercase) exists. If so, <family> is recognized as a Japanese font family (the font definition file won't be loaded here).
+ If not, <family> is not a Japanese font family, and
+ <family> is appended to the list~$N_{\mathrm{J}}$.
+%</en>
+%<*ja>
+\item もし\Pkg{luatexja-fontspec}パッケージが読み込まれていれば,ここで終了であり,
+<family>は和文フォントファミリとして認識されないことになる.
+
+もし\Pkg{luatexja-fontspec}パッケージが読み込まれていなければ,和文エンコーディング<enc>で
+フォント定義ファイル\texttt{<enc><family>.fd}(ファイル名は全て小文字)が存在するようなも
+ のがあるかどうかを調べる.
+存在すれば,<family>は和文フォントファミリと認識される(フォント定義ファイルは読み込まれな
+ い).
+存在しなければ,<family>は和文フォントファミリでないと認識され,リスト$N_{\mathrm{J}}$に<family>を追加することでそれを記憶する.
+
+%</ja>
+\end{enumerate}
+
+%<*en>
+\paragraph{Recognition as alphabetic font family}
+Next, whether alphabetic font family will be changed is determined in following order.
+We use auxiliary lists $F_{\mathrm{A}}$~and~$N_{\mathrm{A}}$,
+%</en>
+%<*ja>
+\paragraph{欧文フォントファミリとしての認識}
+同様に,<family>が和文フォントファミリとして認識されるかは以下の順序で決定される.
+補助的に「欧文フォントファミリと既に認識された」ファミリのリスト$F_{\textrm{A}}$と,
+「欧文フォントファミリではないと認識された」ファミリを格納したリスト$N_{\mathrm{A}}$を用いる.
+%</ja>
+
+\begin{enumerate}
+%<*en>
+\item If the family~<family> has been listed in a list~$F_{\mathrm{A}}$,
+ <family> is recognized as an alphabetic font family.
+%</en>
+%<*ja>
+\item ファミリ<family>がリスト$F_{\mathrm{A}}$に既に含まれていれば,
+ <family>は欧文フォントファミリと認識される.
+%</ja>
+%<*en>
+\item If the family~<family> has been listed in a list~$N_{\mathrm{A}}$, this means
+ that <family> is not an alphabetic font family.
+%</en>
+%<*ja>
+\item ファミリ<family>がリスト$N_{\mathrm{A}}$に既に含まれていれば,それは
+ <family>が欧文フォントファミリではないことを意味する.
+%</ja>
+%<*en>
+\item If there exists an alphabetic font encoding such that the family~<family> has been
+ defined under it, <family> is recognized as an alphabetic font family, and
+ to memorize this, <family> is appended to the list~$F_{\mathrm{A}}$.
+%</en>
+%<*ja>
+\item ある欧文フォントエンコーディング下でファミリ<family>が定義されていれば,
+ <family>は欧文フォントファミリと認識され,リスト$F_{\mathrm{A}}$に<family>を追加することでこのことを記憶する.
+%</ja>
+%<*en>
+\item Now \LuaTeX-ja looks whether there exists an alphabetic font encoding~<enc> such that
+ a font definition named \texttt{<enc><family>.fd} (the file name is
+ all lowercase) exists. If so, current alphabetic font family will be changed to
+ <family>~(the font definition file won't be loaded here).
+ If not, current alphabetic font family won't be changed, and
+ <family> is appended to the list~$N_{\mathrm{A}}$.
+%</en>
+%<*ja>
+\item 最終段階では,欧文エンコーディング<enc>で
+フォント定義ファイル\texttt{<enc><family>.fd}(ファイル名は全て小文字)が存在するようなも
+ のがあるかどうかを調べる.
+存在すれば,<family>は欧文フォントファミリと認識される(フォント定義ファイルは読み込まれない).
+存在しなければ,<family>は欧文フォントファミリと認識されないので,リスト$N_{\mathrm{A}}$に
+ <family>を追加してそのことを記憶する.
+%</ja>
+\end{enumerate}
+
+%<*en>
+Also, each call of \cs{DeclareFontFamily} \emph{after} loading of \LuaTeX-ja makes
+the second argument (family) is appended to the list~$F_{\mathrm{A}}$.
+%</en>
+%<*ja>
+また,\cs{DeclareFontFamily}が\LuaTeX-jaの読み込み後に実行された場合は,
+第2引数(ファミリ名)が自動的に$F_{\mathrm{A}}$に追加される.
+%</ja>
+
+%<*en>
+The above order is very similar to \cs{fontfamily} in \pLaTeXe, but more complicated (clause~3.).
+This is because \pLaTeXe\ is a \emph{format} however \LuaTeX-ja is not,
+hence \LuaTeX-ja does not know calls of \cs{DeclareFontFamily} \emph{before} itself is
+loaded.
+%</en>
+%<*ja>
+以上の方針は\pLaTeXe における \cs{fontfamily} にやはり類似しているが,3.が加わり若干複雑になっている.
+それは\pLaTeXe がフォーマットであるのに対し\LuaTeX-jaはそうでないため,
+\LuaTeX-jaは自身が読み込まれる前にどういう\cs{DeclareFontFamily}の呼び出しがあったか
+把握できないからである.
+%</ja>
+
+%<en>\paragraph{Remarks}
+%<ja>\paragraph{注意}
+%<*en>
+Of course, there is a case that <family> is not recognized as a Japanese font family, nor
+an alphabetic font family.
+In this case, \LuaTeX-ja treats ``the argument <family> is wrong'', so
+set both current alphabetic and Japanese font family to <family>,
+to use the default family for font substitution.
+%</en>
+%<*ja>
+さて,引数によっては,「和文フォントファミリとも欧文フォントファミリも認識されなかった」
+という事態もあり得る.
+ この場合,引数<family>は不正だった,ということになるので,
+和文・欧文の両方のフォントファミリを<family>に設定し,代用フォントが使われるに任せることにする.
+%</ja>
+
+
+%<*en>
+\section{Addon packages}
\LuaTeX-ja has several addon packages.
These addons are written as \LaTeX\ packages, but
\Pkg{luatexja-otf} and~\Pkg{luatexja-adjust} can be loaded in plain \LuaTeX\
by \cs{input}.
%</en>
%<*ja>
-\section{拡張}
+\section{拡張パッケージ}
\LuaTeX-jaには(動作には必須ではないが)自由に読み込める拡張が付属している.
これらは\LaTeX のパッケージとして制作しているが,
\Pkg{luatexja-otf}と\Pkg{luatexja-adjust}についてはplain \LuaTeX でも\
\cs{input} で読み込み可能である.
%</ja>
-\subsection{\texttt{luatexja-fontspec.sty}}
+\subsection{\Pkg{luatexja-fontspec}}
\label{ssec-fontspec2}
%<*en>
As described in Subsection~\ref{ssec-fontspec}, this optional package
\ref{ssec-fontspec}節で述べたように,この追加パッケージは\Pkg{fontspec}%
パッケージで定義されているコマンドに対応する和文フォント用のコマンドを提供する.
-\Pkg{fontspec}パッケージで指定可能な各種font featureに加えて,和文版のコマンドには
-以下の``font feature''を指定することができる:
+\Pkg{fontspec}パッケージで指定可能な各種OpenType機能に加えて,和文版のコマンドには
+以下の「フォント機能」を指定することができる:
%</ja>
\label{fig:yokotate-fontspec}
\end{figure}
+\item[Kanjiskip=<bool>]
+%<*ja>
+\pageref{pg:ltjksp}ページで説明した \verb+\jfont+ 中での \texttt{ltjksp} 指定と
+同一の効力を持ち,
+JFM中における \texttt{kanjiskip\_natural}, \texttt{kanjiskip\_stretch},\
+\texttt{kanjiskip\_shrink}キー(\pageref{pg:ksp_nat}ページ)の有効/無効を切り替える.
+標準値は \texttt{true} である.
+%</ja>
\item[TateFeatures=\{<features>\}\textrm{, }TateFont=<font>]
%<*en>
A demonstrarion is shown in Figure~\ref{fig:yokotate-fontspec}.
%</en>
%<*ja>
-縦組において使用されるフォントや,縦組においてのみ適用されるfeature達を
+縦組において使用されるフォントや,縦組においてのみ適用されるフォント機能達を
指定する.使用例は図\ref{fig:yokotate-fontspec}参照.
%</ja>
A demonstrarion is shown in Figure~\ref{fig:yokotate-fontspec}.
%</en>
%<*ja>
-同様に,横組においてのみ適用されるfeature達を
+同様に,横組においてのみ適用されるフォント機能達を
指定する.使用例は図\ref{fig:yokotate-fontspec}参照.
%</ja>
%<*ja>
\ref{ssec-altfont}節の \cs{ltjdeclarealtfont} や,
\ref{ssec-nfsspat}節の \cs{DeclareAlternateKanjiFont} と同様に,
-このキーを用いると一部の文字を異なったフォントやfont featureを使って組むことができる.
+このキーを用いると一部の文字を異なったフォントや機能たちを使って組むことができる.
\texttt{AltFont} キーに指定する値は,次のように二重のコンマ区切りリストである:
%</ja>
\begin{lstlisting}[escapechar=\#]
また,図\ref{fig:yokotate-fontspec}後半部では6行目の色の指定が効かず,
2行目で指定した\ \texttt{YokoFeatures},~\texttt{TateFeatures}\ による色の指定が有効になっ
-たままである.これは\emph{\ \texttt{YokoFeatures},~\texttt{TateFeatures}\ によるfeature指定は
-組方向に依存しないfeature指定より後に解釈される}からである.
+たままである.これは\emph{\ \texttt{YokoFeatures},~\texttt{TateFeatures}\ による
+OpenType機能指定は
+組方向に依存しないOpenType機能の指定より後に解釈される}からである.
%</ja>
-\subsection{\texttt{luatexja-otf.sty}}
+\subsection{\Pkg{luatexja-otf}}
\label{ssec-ltjotf}
%<*en>
This optional package supports typesetting characters in
is not performed to these characters.
%</en>
%<*ja>
-\item OpenType feature(例えばグリフ置換やカーニング)をサポートするための
+\item OpenType機能(例えばグリフ置換やカーニング)をサポートするための
\Pkg{luaotfload}パッケージのコードはこれらの文字には働かない.
%</ja>
\end{itemize}
\texttt{jp78}~or~\texttt{jp90}, which does not followed by any variation selector.
%</en>
%<*ja>
-また,IVSによる字形指定は,font featureによるそれに優先されることとした.
+また,IVSによる字形指定は,OpenType機能によるそれに優先されることとした.
下の例において,\texttt{jp78}, \texttt{jp90} 指定で字形が変化した文字は
異体字セレクタが続いていない「葛西」中の「葛」のみである.
%</ja>
%</ja>
-\subsection{\texttt{luatexja-adjust.sty}}
+\subsection{\Pkg{luatexja-adjust}}
\label{ssec-adj}
\begin{figure}[t]
\def\sq{%
\end{cslist}
%</ja>
-\subsection{\texttt{luatexja-ruby.sty}}
+\subsection{\Pkg{luatexja-ruby}}
%<*en>
This addon package provides functionality of ``ruby'' (\emph{furigana}) annotations
using callbacks of \LuaTeX-ja.
%<*ja>
-\subsection{\texttt{lltjext.sty}}
+\subsection{\Pkg{lltjext}}
\pLaTeX では縦組用の拡張として \Pkg{plext} パッケージが用意されていたが,
それを\LuaTeX-ja用に書きなおしたものが本追加パッケージ \Pkg{lltjext} である.
%<en>\section{Storing Parameters}
%<ja>\section{パラメータの保持}
\label{sec-para}
-%<en>\subsection{Used Dimensions, Attributes and Whatsit Nodes}
+%<en>\subsection{Used dimensions, attributes and whatsit nodes}
%<ja>\subsection{\LuaTeX-jaで用いられるレジスタとwhatsitノード}
%<*en>
これらのwhatsitノードは\textbf{JAglue}の挿入処理の間に取り除かれる.
%</ja>
-%<en>\subsection{Stack System of \LuaTeX-ja}
+%<en>\subsection{Stack system of \LuaTeX-ja}
%<ja>\subsection{\LuaTeX-jaのスタックシステム}
\label{ssec-stack}
%</ja>
%<*en>
-\subsection{Lua Functions of the Stack System}
+\subsection{Lua functions of the stack system}
In this subsection, we will see how a user use \LuaTeX-ja's stack system to
store some data which obeys the grouping of \TeX.
%</en>
%<en>\section{Linebreak after a Japanese Character}
%<ja>\section{和文文字直後の改行}
\label{sec-lbreak}
-%<en>\subsection{Reference: Behavior in \pTeX}
+%<en>\subsection{Reference: behavior in \pTeX}
%<ja>\subsection{参考:\pTeX の動作}
%<*en>
In~\pTeX, a line break after a Japanese character doesn't emit a space,
%<en>\subsection{Notes and additional keys}
%<ja>\subsection{注意}
-%<*en>
-\paragraph{Escaping to \LaTeX}
-We used the \verb+process_input_buffer+ callback to output \textbf{JAchar}s.
-But it has a drawback; any commands whose name contains a \textbf{JAchar}
-cannot be used in any ``escape to \LaTeX''.
+% %<*en>
+% \paragraph{Escaping to \LaTeX}
+% We used the \verb+process_input_buffer+ callback to output \textbf{JAchar}s.
+% But it has a drawback; any commands whose name contains a \textbf{JAchar}
+% cannot be used in any ``escape to \LaTeX''.
-Consider the following input:
-%</en>
-%<*ja>
-\paragraph{\LaTeX へのエスケープ}
-日本語対応を行うために \verb+process_input_buffer+ を使用したことで,
-\texttt{texcl},~\texttt{escapeinside}といった\emph{「\LaTeX へのエスケープ」中では,
-\textbf{JAchar}を名称の一部に含む制御綴は使用不可能}である.
-例えば次のような入力を考えよう:
-%</ja>
-\begin{verbatim*}
-\begin{lstlisting}[escapechar=\#]
-#\ほげ xぴよ#
-\end{lstlisting}
-\end{verbatim*}
-%<en>The line~2 is transformed by the callback to
-%<ja>ここで,2行目は \verb+process_input_buffer+ の作用により,
-\begin{lstlisting}[showspaces, escapechar=\!]
-#\!\IVSA FFFFF!ほ!\IVSA FFFFF!げ x!\IVSA FFFFF!ぴ!\IVSA FFFFF!よ#
-\end{lstlisting}
-%<*en>
-before the line is actually processed.
-In the escape (between the character ``\verb+#+''),
-the category code of \texttt{U+FFFFF} is set to 9~(\emph{ignored}).
-Hence the control symbol ``\cs{}\IVSA FFFFF'' will be executed,
-instead of ``\verb+\ほげ+''.
-%</en>
-%<*ja>
-と変換されてから,実際の処理に回される.
-「\verb+#+」で挟まれた「\LaTeX へのエスケープ」中では\
-\texttt{U+FFFFF} のカテゴリーコードは9~(\textit{ignored})となるので,
-結局「\verb+\ほげ+」の代わりに
-「\cs{}\IVSA FFFFF」というcontrol symbolが実行されることになる.
-%</ja>
+% Consider the following input:
+% %</en>
+% %<*ja>
+% \paragraph{\LaTeX へのエスケープ}
+% 日本語対応を行うために \verb+process_input_buffer+ を使用したことで,
+% \texttt{texcl},~\texttt{escapeinside}といった\emph{「\LaTeX へのエスケープ」中では,
+% \textbf{JAchar}を名称の一部に含む制御綴は使用不可能}である.
+% 例えば次のような入力を考えよう:
+% %</ja>
+% \begin{verbatim*}
+% \begin{lstlisting}[escapechar=\#]
+% #\ほげ xぴよ#
+% \end{lstlisting}
+% \end{verbatim*}
+% %<en>The line~2 is transformed by the callback to
+% %<ja>ここで,2行目は \verb+process_input_buffer+ の作用により,
+% \begin{lstlisting}[showspaces, escapechar=\!]
+% #\!\IVSA FFFFF!ほ!\IVSA FFFFF!げ x!\IVSA FFFFF!ぴ!\IVSA FFFFF!よ#
+% \end{lstlisting}
+% %<*en>
+% before the line is actually processed.
+% In the escape (between the character ``\verb+#+''),
+% the category code of \texttt{U+FFFFF} is set to 9~(\emph{ignored}).
+% Hence the control symbol ``\cs{}\IVSA FFFFF'' will be executed,
+% instead of ``\verb+\ほげ+''.
+% %</en>
+% %<*ja>
+% と変換されてから,実際の処理に回される.
+% 「\verb+#+」で挟まれた「\LaTeX へのエスケープ」中では\
+% \texttt{U+FFFFF} のカテゴリーコードは9~(\textit{ignored})となるので,
+% 結局「\verb+\ほげ+」の代わりに
+% 「\cs{}\IVSA FFFFF」というcontrol symbolが実行されることになる.
+% %</ja>
%<*en>
\paragraph{Variation selectors}
\end{lstlisting}
%</ja>
-%<en>\subsection{Class of Characters}
+%<en>\subsection{Class of characters}
%<ja>\subsection{文字種}
%<en>Roughly speaking, the \Pkg{listings} package processes input as follows:
%</ja>
\begin{itemize}
%<en>\item \textbf{ALchar}s above or equal to~\texttt{U+0080} are classified as Letter.
-%<ja>\item (\texttt{U+0080}以降の)\textbf{ALchar}は,すべてLetter扱いである.
+%<ja>\item \<(\texttt{U+0080}以降の)\textbf{ALchar}は,すべてLetter扱いである.
%<en>\item \textbf{JAchar}s are classified in the order as follows:
%<ja>\item \textbf{JAchar}については,以下の順序に従って文字種を決める:
が連続した場合に,$p$のフォントに対応したが持つ「異体字情報」に従って出力するグリフを変える.
しかし,単に$p.\textit{char}$を変更するだけでは,後から
-font featureの適用(すぐ下)により置換される可能性がある.そのため,
+OpenType機能の適用(すぐ下)により置換される可能性がある.そのため,
\cs{CID} や \cs{UTF} と同じように,\textit{glyph\_node}~$p$の代わりに
\texttt{user\_id} が\textit{char\_by\_cid}であるようなuser-defined whatsitを用いている.
\item[(\Pkg{luaotfload} によるfont featureの適用)]
\item[\tt ltj.otf] \texttt{user\_id} が\textit{char\_by\_cid}であるようなuser-defined whatsitを
きちんと\textit{glyph\_node}に変換する.この処理は,\cs{CID}, \cs{UTF}やIVSによる置換が,
-font featureの適用で上書きされてしまうのを防止するためである.
+OpenType機能の適用で上書きされてしまうのを防止するためである.
\item[\tt ltj.main\_process] \textbf{JAglue}の挿入処理(\ref{sec-jfmglue}章)と,
JFMの指定に従って各\textbf{JAchar}の「寸法を補正」することを行う.
\end{description}
縦組時における幅を格納している.構造は以下の通り:
%</ja>
%<*en>
-\subsection{Use of Cache}
+\subsection{Use of cache}
\LuaTeX-ja uses the following cache:
\begin{cslist}