\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
%<*en>
The \LuaTeX-ja package is under much influence of \pTeX\ engine. The initial
-target of development was to implement features of \pTeX. However,
-implementing all feature of \pTeX\ is impossible,
+target of development was to implement features of \pTeX. However,
+implementing all feature of \pTeX\ is impossible,
since all process of \LuaTeX-ja must be implemented only by Lua and \TeX\ macros.
Hence \emph{\LuaTeX-ja is not a just porting of \pTeX; unnatural
specifications/behaviors of \pTeX\ were not adopted}.
%</ja>
%<*en>
-\paragraph{Command names} \pTeX\ addes several primitives, such as \cs{kanjiskip},
+\paragraph{Command names} \pTeX\ addes several primitives, such as \cs{kanjiskip},
\cs{prebreakpenalty},~and,~\cs{ifydir}. They can be used as follows:
%</en>
%<*ja>
\prebreakpenalty`ぁ=100
\ifydir ... \fi
\end{verbatim}
-%<en> However, we cannot use them under \LuaTeX-ja.
+%<en> However, we cannot use them under \LuaTeX-ja.
%<en> Instead of them, we have to write as the following.
%<ja> は\LuaTeX-jaには存在しない.\LuaTeX-jaでは以下のように記述することになる.
\begin{verbatim}
\ltjsetparameter{prebreakpenalty={`ぁ,100}}
\ifnum\ltjgetparemeter{direction}=4 ... \fi
\end{verbatim}
-%<*en>
+%<*en>
Note that \pTeX\ adds new two useful units, namely \texttt{zw}~and~\texttt{zh}.
As shown above, they are changed by \cs{zw}~and~\cs{zh} respectively, in \LuaTeX-ja.
%</en>
%<*en>
\paragraph{Directions}
-From this version, \LuaTeX-ja supports vertical writing;
+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. ...
%</en>
%<*ja>
\paragraph{組方向}
-本版からは,不安定ながらも\LuaTeX-ja における縦組みをサポートしている.
+20150420.0版からは,不安定ながらも\LuaTeX-ja における縦組みをサポートしている.
なお,\LuaTeX 本体も,$\Omega$流の組方向をサポートしているが,それとは全くの別物であること
に注意してほしい.
\LuaTeX のコールバックや実装により,特に異なった組方向のボックスを扱う場合には
%<ja>\paragraph{プロジェクトWiki} プロジェクトWikiは構築中である.
%<*en>
\begin{itemize}
-\item \url{http://sourceforge.jp/projects/luatex-ja/wiki/FrontPage%28en%29} (English)
-\item \url{http://sourceforge.jp/projects/luatex-ja/wiki/FrontPage} (Japanese)
-\item \url{http://sourceforge.jp/projects/luatex-ja/wiki/FrontPage%28zh%29} (Chinese)
+\item \url{https://osdn.jp/projects/luatex-ja/wiki/FrontPage%28en%29} (English)
+\item \url{https://osdn.jp/projects/luatex-ja/wiki/FrontPage} (Japanese)
+\item \url{https://osdn.jp/projects/luatex-ja/wiki/FrontPage%28zh%29} (Chinese)
\end{itemize}
%</en>
%<*ja>
\begin{itemize}
-\item \url{http://sourceforge.jp/projects/luatex-ja/wiki/FrontPage}(日本語)
-\item \url{http://sourceforge.jp/projects/luatex-ja/wiki/FrontPage%28en%29}(英語)
-\item \url{http://sourceforge.jp/projects/luatex-ja/wiki/FrontPage%28zh%29}(中国語)
+\item \url{https://osdn.jp/projects/luatex-ja/wiki/FrontPage}(日本語)
+\item \url{https://osdn.jp/projects/luatex-ja/wiki/FrontPage%28en%29}(英語)
+\item \url{https://osdn.jp/projects/luatex-ja/wiki/FrontPage%28zh%29}(中国語)
\end{itemize}
%</ja>
-%<en>This project is hosted by SourceForge.JP.
-%<ja>本プロジェクトはSourceForge.JPのサービスを用いて運営されている.
+%<en>This project is hosted by OSDN.
+%<ja>本プロジェクトはOSDNのサービスを用いて運営されている.
%<en>\paragraph{Members}\
%<ja>\paragraph{開発メンバー}\
%<ja>\subsection{インストール}
%<en>The following packages are needed for the \LuaTeX-ja\ package.
-%*ja>\LuaTeX-jaパッケージの動作には次のパッケージ類が必要である.
+%<ja>\LuaTeX-jaパッケージの動作には次のパッケージ類が必要である.
\begin{itemize}
\item \LuaTeX\ beta-0.80.0 (or later)
\item \Pkg{luaotfload} v2.5 (or later)
\item \Pkg{adobemapping} (Adobe cmap and pdfmapping files)
\item \Pkg{everysel} (if you want to use \LuaTeX-ja with \LaTeXe)
+\item \Pkg{fontspec} v2.4
%<en>\item \emph{IPAex fonts} (\url{http://ipafont.ipa.go.jp/})
%<ja>\item \emph{IPAexフォント(\url{http://ipafont.ipa.go.jp/})}
\end{itemize}
\begin{itemize}
\item Clone the Git repository:
\begin{lstlisting}
-$ git clone git://git.sourceforge.jp/gitroot/luatex-ja/luatexja.git
+$ git clone git://git.osdn.jp/gitroot/luatex-ja/luatexja.git
\end{lstlisting}
\item Download the \texttt{tar.gz} archive of HEAD in the \texttt{master} branch from
\begin{flushleft}
-\url{http://git.sourceforge.jp/view?p=luatex-ja/luatexja.git;a=snapshot;h=HEAD;sf=tgz}.
+\url{http://git.osdn.jp/view?p=luatex-ja/luatexja.git;a=snapshot;h=HEAD;sf=tgz}.
\end{flushleft}
\end{itemize}
\begin{itemize}
\item Gitリポジトリをクローンする:
\begin{lstlisting}
-$ git clone git://git.sourceforge.jp/gitroot/luatex-ja/luatexja.git
+$ git clone git://git.osdn.jp/gitroot/luatex-ja/luatexja.git
\end{lstlisting}
\item \texttt{master}ブランチのスナップショット(\texttt{tar.gz}形式)をダウンロードする.
\begin{flushleft}
-\url{http://git.sourceforge.jp/view?p=luatex-ja/luatexja.git;a=snapshot;h=HEAD;sf=tgz}.
+\url{http://git.osdn.jp/view?p=luatex-ja/luatexja.git;a=snapshot;h=HEAD;sf=tgz}.
\end{flushleft}
\end{itemize}
\texttt{master}ブランチ(従って,CTAN内のアーカイブも)はたまにしか更新されないことに注意.
%</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.
LuaJIT\TeX を用いると\LuaTeX のだいたい1.3倍の速度で動くようであるが,
IPA mj明朝などの大きいフォントを用いた場合には\LuaTeX よりも遅くなることもある.
%</ja>
+
\item%
%<*en>
-\textbf{Outdated note for MiK\TeX\ users}\quad
+\textbf{(Outdated) note for MiK\TeX\ users}\quad
\LuaTeX-ja requires that several CMap files%
\footnote{\texttt{UniJIS2004-UTF32-\{H,V\}} and \texttt{Adobe-Japan1-UCS2}.}
must be found from \LuaTeX.
\LuaTeX-jaが動作するためには,\emph{導入・更新後の初回起動時に}
\texttt{UniJIS2004-UTF32-\{H,V\}}, \texttt{Adobe-Japan1-UCS2}という3つのCMapが
\LuaTeX によって見つけられることが必要である.
-しかしやや古いMiK\TeX ではそのようになっていないので,次のエラーが発生するだろう:
+しかし古いバージョンのMiK\TeX ではそのようになっていないので,次のエラーが発生するだろう:
%</ja>
\begin{lstlisting}
! LuaTeX error ...iles (x86)/MiKTeX 2.9/tex/luatex/luatexja/ltj-rmlgbm.lua
%<*en>
If so, please execute a batch file which is written on
-\href{http://sourceforge.jp/projects/luatex-ja/wiki/FrontPage%28en%29}{ the Project Wiki (English)}.
+\href{https://osdn.jp/projects/luatex-ja/wiki/FrontPage%28en%29}{ the Project Wiki (English)}.
This batch file creates a temporary directory, copy CMaps in it,
-run \LuaTeX-ja in this directory, and finally delete the temporary directory.
+run a test file which loads \LuaTeX-ja in this directory,
+and finally delete the temporary directory.
%</en>
%<*ja>
そのような場合には,
-\href{http://sourceforge.jp/projects/luatex-ja/wiki/FrontPage%28en%29}{%
+\href{https://osdn.jp/projects/luatex-ja/wiki/FrontPage%28en%29}{%
プロジェクトWiki英語版トップページ}中に書かれているバッチファイルを
実行して欲しい.このバッチファイルは,作業用ディレクトリにCMap達を
コピーし,その中で\LuaTeX-ja の初回起動を行い,作業用ディレクトリを消す作業をしている.
%</ja>
\begin{lstlisting}
! Incompatible direction list can't be unboxed.
-\@begindvi ->\unvbox \@begindvibox
- \global \let \@begindvi \@empty
+\@begindvi ->\unvbox \@begindvibox
+ \global \let \@begindvi \@empty
\end{lstlisting}
%<*en>
Now, \LuaTeX-ja automatically applies the patch \Pkg{lltjp-geometry} to the
\Pkg{geometry} package, when the direction of the document is \emph{tate} (vertical
writing).
-This patch \Pkg{lltjp-geometry} also can be used in \pLaTeX; for the detail, please refer
+This patch \Pkg{lltjp-geometry} also can be used in \pLaTeX; for the detail, please refer
\url{lltjp-geometry.pdf}~(Japanese).
%</en>
%<*ja>
%</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>
\verb+\fontencoding{+<encoding>\verb+}+ changes the encoding of alphabetic fonts
or Japanese fonts depending on the argument. For example,
\verb+\fontencoding{JY3}+ changes the encoding of Japanese fonts to
- \texttt{JY3},and \verb+\fontencoding{T1}+ changes the encoding of
+ \texttt{JY3}, and \verb+\fontencoding{T1}+ changes the encoding of
alphabetic fonts to \texttt{T1}.
\cs{fontfamily} also changes the current Japanese font family,
the current alphabetic font family, \emph{or both}.
%<*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}
\item[fontspec]
%<*en>
-With this option, Japanese fonts are selected using functionality of
+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.}
\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:
\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)を用いて
Under \pLaTeX, \Pkg{japanese-otf} package (developed by Shuzaburo Saito) is
used for typesetting characters which is in Adobe-Japan1-6 CID but not
in JIS~X~0208. Since this package is widely used, \LuaTeX-ja
-supports some of functions in the \Pkg{japanese-otf} package,
+supports some of functions in the \Pkg{japanese-otf} package,
as an external package \Pkg{luatexja-otf}.
%</en>
%<*ja>
用いる.
%</ja>
-%<en>\subsection{Editing the Range of \textbf{JAchar}s}
-%<ja>\subsection{\textbf{JAchar}の範囲の設定}
+%<en>\subsection{Range of \textbf{JAchar}s}
+%<ja>\subsection{\textbf{JAchar}の範囲}
\label{ssec-setrange}
%<*en>
\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,
%</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},
%</ja>
%<*en>
-\paragraph{Default setting}
+\emph{Caution}: this default setting may causes a problem with traditional 8-bit fonts,
+such as \cs{Frowny} in MarVoSym.ttf. Since the codepoint of \cs{Frowny} is 167,
+which belongs to character range~8, this will be typeset \ltjjachar`§ in current
+\emph{Japanese} font.
+To avoid this problem, one can use
+\begin{lstlisting}
+\ltjsetparameter{jacharrange={-1, -8}}
+\end{lstlisting}
+to set all characters whose codepoint is in $[128,255)$ as \textbf{ALchar}.
+%</en>
+%<*ja>
+なお,この標準設定は,伝統的な8ビットのフォントを使うときに問題を起こす可能性がある.
+具体例としてはMarVoSym.ttf中の\cs{Frowny}があり,この符号位置は(文字範囲8内の)167である
+から,\cs{Frowny}はそのままでは\ltjjachar`§を和文フォントで出力してしまうことになる.
+回避するには,
+\begin{lstlisting}
+\ltjsetparameter{jacharrange={-1, -8}}
+\end{lstlisting}
+などとして,符号位置が$[128,255)$の全ての文字を\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>
%<*en>
Note that setting positive \Param{yalbaselineshift}~or~\Param{talbaselineshift}
-parameters does not increase the depth of one-letter ``syllable'' $p$ of \textbf{Alchar}, if
+parameters does not increase the depth of one-letter \emph{syllable} $p$ of \textbf{Alchar}, if
its left-protrusion~(\cs{lpcode}) and right-protrusion~(\cs{rpcode}) are both non-zero.
This is because
\begin{itemize}
-\item These two parameters are implemented by setting yoffset field of a
+\item These two parameters are implemented by setting \texttt{yoffset} field of a
glyph node, and this does not increase the depth of the glyph.
\item To cope with the above situation, \LuaTeX-ja automatically supplies
-a rule in every ``syllable''.
-\item However, we cannot use this ``supplying a rule'' method if \dots
+a rule in every syllable.
+\item However, we cannot use this ``supplying a rule'' method if a syllable comprises just
+ one letter whose \cs{lpcode}~and~\cs{rpcode} are both non-zero.
\end{itemize}
-This problem does not apply for \Param{yjabaselineshift}~nor~\Param{tjabaselineshift}.
+This problem does not apply for \Param{yjabaselineshift}~nor~\Param{tjabaselineshift},
+becuse a \emph{JAchar} is encapsulated by a horizontal box if needed.
%</en>
%<*ja>
なお,以下の場合には1文字の\textbf{ALchar}からなる「音節」の深さは増加しないことに注意.
\item 「音節」を構成する唯一の文字$p$の
左余白への突出量(\cs{lpcode}),右余白への突出量(\cs{rpcode})がどちらも非零である.
\end{itemize}
+\emph{JAchar}は必要に応じて1文字ずつボックスにカプセル化されるため,
\Param{yjabaselineshift},~\Param{tjabaselineshift}パラメータについてはこのような問題は起こらない.
%</ja>
\subsection{\emph{kinsoku} parameters and OpenType features}
Among parameters which related to Japanese word-wrapping process (\emph{kinsoku shori}),
\begin{quote}
- \Param{jaxspmode},~\Param{alxspmode}, \Param{prebreakpenalty},
+ \Param{jaxspmode},~\Param{alxspmode}, \Param{prebreakpenalty},
\Param{postbreakpenalty}~and~\Param{kcatcode}
\end{quote}
are stored by each character codes. ...
For example, a fullwidth katakana ``ア'' on line~10 in the below input is replaced to
-its halfwidth variant ``ア'', by \verb+hwid+ feature.
+its halfwidth variant ``ア'', by \verb+hwid+ feature.
However, the penalty inserted after it is 10 which is the \Param{postbreakpenalty} of
``ア'', not 20.
%</en>
\begin{itemize}
\item
\emph{Distinction between \textbf{JAchar} or \textbf{ALchar}}
-is controlled by using the character range, see Subsection~\ref{ssec-setrange}.
+is controlled by the character range, see Subsection~\ref{ssec-setrange}.
\item
\emph{Whether the character can be used in a control word}
is controlled by setting \cs{catcode} to 11~(enabled) or 12~(disabled), as usual.
\emph{Whether \Param{jcharwidowpenalty} can be inserted before the character}
is controlled by the lowermost bit of the \Param{kcatcode} parameter.
\item
-\emph{Ignoring linebreak after a \textbf{JAchar}} is always ignored.
+\emph{Linebreak after a \textbf{JAchar}} does not produce a space.
\end{itemize}
%</en>
%<*ja>
\LuaTeX 自身の \cs{catcode} でよい
\item[\Param{jcharwidowpenalty}が挿入可か]
\Param{kcatcode}パラメータの最下位ビット
- \item[直後の改行の無視]
-日本語しか想定していないので\textbf{JAchar}については一律有効
+ \item[直後の改行]
+日本語しか想定していないので,\textbf{JAchar}直後の改行で半角スペースが挿入されることはない.
\end{description}
%</ja>
%<*en>
-Default setting of \cs{catcode} of \LuaTeX\ can be found
-in \texttt{luatex-unicode-letters.tex},
-which is based on \texttt{unicode-letters.tex} (for \XeTeX).
+Default setting of \cs{catcode} of Unicode characters are located in
+\begin{description}
+ \item[plain \LuaTeX] \texttt{luatex-unicode-letters.tex}, which is based on \texttt{unicode-letters.tex}
+(for \XeTeX).
+ \item[\LuaLaTeX] now included in \LaTeX\ kernel as~\texttt{unicode-letters.def}.
+\end{description}
However, the default setting of \cs{catcode} differs
between \XeTeX\ and \LuaTeX, by the following reasons:
\begin{itemize}
- \item \texttt{luatex-unicode-letters.tex} is based on old \texttt{unicode-letters.tex}.
- \item The latter half of \texttt{unicode-letters.tex} sets
-\cs{catcode} of Kanji and kana characters to 11,
-via setting \cs{XeTeXcharclass}.
+ \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 is simply omitted in
-\texttt{luatex-unicode-letters.tex}, hence
+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.
\end{itemize}
In other words, Kanji nor kana characters cannot be used in
%<*ja>
ネイティブにUnicode全部の文字を扱える\XeTeX や\LuaTeX では,
文字が制御綴内で使用できるかは通常の欧文文字と同じく \cs{catcode}
-で指定することとなる.\XeTeX における \cs{catcode} の初期設定は\
-\texttt{unicode-letters.tex} 中に記述されており,\LuaTeX ではそれを
+で指定することとなる.plain \XeTeX における \cs{catcode} の初期設定は\
+\texttt{unicode-letters.tex} 中に記述されており,plain \LuaTeX ではそれを
元にした \texttt{luatex-unicode-letters.tex} を用いている.
+\LaTeX では \cs{catcode} の設定はカーネルに \texttt{unicode-letters.def} として統合され.
+このファイルを\XeLaTeX, \LuaLaTeX の両方が用いている.
+
だが,\XeTeX における \cs{catcode} の初期設定と
\LuaTeX におけるそれは一致していない:
\begin{itemize}
\item \texttt{luatex-unicode-letters.tex} の元になった\
\texttt{unicode-letters.tex} が古い
- \item \texttt{unicode-letters.tex} の後半部では
+ \item \texttt{unicode-letters.tex} 後半部や \texttt{unicode-letters.def} 後半部では
\cs{XeTeXcharclass} の設定を行なっており,
それによって漢字や仮名の \cs{catcode} が11に設定されている.
しかし,\texttt{luatex-unicode-letters.tex} ではこの「後半部」が
-まるごと省略されており,漢字や仮名の \cs{catcode} は12のまま.
+まるごと省略されており,また\LuaLaTeX でも \texttt{unicode-letters.def} 後半部は実行されな
+ い.従って漢字や仮名の \cs{catcode} は12のままになっている.
\end{itemize}
言い換えると,\LuaTeX の初期状態では漢字や仮名を制御綴内に
使用することはできない.
Table~\ref{table-kcat-diff} shows the difference.
Except for four characters ``・'',~``゛'', ``゜'',~``゠'',
\LuaTeX-ja admits more characters in a control word than \upTeX.
-\emph{Note that the ideographic space~\texttt{U+3000} can be used
-in a control word in \LuaTeX-ja.}
Difference becomes larger, if we consider
non-kanji JIS~X~0213 characters.
\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)
\item[\cs{ltjsetwd}<num>=<dimen>\textrm{, }\cs{ltjsetht}<num>=<dimen>\textrm{, }%
\cs{ltjsetdp}<num>=<dimen>]
-These commands set the dimension of \cs{box<num>}. Unlike \cs{ltjgetwd}, one does not need
+These commands set the dimension of \cs{box<num>}. One does not need
to group the argument <num>; four calls of \cs{ltjsetwd} below have the same meaning.
\begin{lstlisting}
\ltjsetwd42 20pt, \ltjsetwd42=20pt, \ltjsetwd=42 20pt, \ltjsetwd=42=20pt
%<*en>
\subsection{Getting current direction}
The \Param{direction} parameter returns the current direction, and
-the \Param{boxdir} parameter (with the argumant <num>)
+the \Param{boxdir} parameter (with the argument <num>)
returns the direction of a box register \cs{box}<num>.
The returned value of these parameters are a \emph{string}:
\begin{center}
但し,以下の例の3行目に示すように,明示的に \texttt{vert}, \texttt{vrt2}(のいずれか)の
有効・無効を指定した場合は別である.
\begin{lstlisting}
-\tfont\S=file:KozMinPr6N-Regular.otf:jfm=ujisv
+\tfont\S=file:KozMinPr6N-Regular.otf:jfm=ujisv
% vert and vrt2 are automatically activated
\tfont\T=file:KozMinPr6N-Regular.otf:jfm=ujisv;-vert % vert and vrt2 are not activated
\end{lstlisting}
\end{itemize}
\item[ascent\textrm{, }descent]
……
-\item[chars\_cbcache]
+\item[chars\_cbcache]
……
\end{cslist}
%</ja>
\ltjsetparameter{kanjiskip=0\zw plus .1\zw minus .01\zw}
\@tempskipa=\ltjgetparameter{xkanjiskip}
\ifdim\@tempskipa>\z@
- \if@slide
+ \if@slide
\ltjsetparameter{xkanjiskip=0.1em}
\else
\ltjsetparameter{xkanjiskip=0.25em plus 0.15em minus 0.06em}
\ltjsetkanjiskip{\z@ plus .1\zw minus .01\zw}
\@tempskipa=\ltjgetparameter{xkanjiskip}
\ifdim\@tempskipa>\z@
- \if@slide
+ \if@slide
\ltjsetxkanjiskip.1em
\else
\ltjsetxkanjiskip.25em plus .15em minus .06em
さて,縦組の欧文ベースライン補正量\Param{talbaselineshift}は,
実際には \cs{ltj@tablshift} という属性レジスタに格納されている
(\ref{sec-para}\nobreak 節参照).属性レジスタは長さではなく整数値を格納する\footnote{%
- 従って,\texttt{\textbackslash @savetbaselineshift=\textbackslash ltj@tablshift}\
+ 従って,\texttt{\textbackslash @savetbaselineshift=\textbackslash ltj@tablshift}\
のように記述することはできない.属性レジスタを \cs{tbaselineshift} という名称にしなかっ
たのはそのためである.
}ものであり,\cs{ltj@tablshift} は補正量を sp 単位で保持することから,
\item[\cs{DeclareTateKanjiEncoding}\{<encoding>\}\{<text-settings>\}\{<math-settings>\}]
%<*en>
-In NFSS2 under \LuaTeX-ja, distinction between alphabetic font families
- and Japanese font families are only made by their
- encodings. For example, encodings OT1 and T1 are for
- alphabetic font families, and a Japanese font family cannot
+In NFSS2 under \LuaTeX-ja, distinction between alphabetic fonts
+ and Japanese fonts are only made by their
+ encodings. For example, encodings OT1 and T1 are encodings for
+ alphabetic fonts, and Japanese fonts cannot
have these encodings. These command define a new encoding
scheme for Japanese font families.
%</en>
%<*ja>
-\LuaTeX-jaã\81®NFSS2ã\81«ã\81\8aã\81\84ã\81¦ã\81¯ï¼\8c欧æ\96\87ã\83\95ã\82©ã\83³ã\83\88ã\83\95ã\82¡ã\83\9fã\83ªã\81¨å\92\8cæ\96\87ã\83\95ã\82©ã\83³ã\83\88ã\83\95ã\82¡ã\83\9fã\83ªは
+\LuaTeX-jaã\81®NFSS2ã\81«ã\81\8aã\81\84ã\81¦ã\81¯ï¼\8c欧æ\96\87ã\83\95ã\82©ã\83³ã\83\88ã\81¨å\92\8cæ\96\87ã\83\95ã\82©ã\83³ã\83\88は
そのエンコーディングによってのみ区別される.
-ä¾\8bã\81\88ã\81°ï¼\8cOT1ã\81¨T1ã\81®ã\82¨ã\83³ã\82³ã\83¼ã\83\87ã\82£ã\83³ã\82°ã\81¯æ¬§æ\96\87ã\83\95ã\82©ã\83³ã\83\88ã\83\95ã\82¡ã\83\9fã\83ªã\81«å¯¾ã\81\99ã\82\8bã\82\82ã\81®であり,
-å\92\8cæ\96\87ã\83\95ã\82©ã\83³ã\83\88ã\83\95ã\82¡ã\83\9fã\83ªã\81¯ã\81\93ã\82\8cã\82\89ã\81®ã\82¨ã\83³ã\82³ã\83¼ã\83\87ã\82£ã\83³ã\82°ã\82\92æ\8c\81ã\81¤ã\81\93ã\81¨ã\81¯ã\81§ã\81\8dã\81ªã\81\84ï¼\8e
+ä¾\8bã\81\88ã\81°ï¼\8cOT1ã\81¨T1ã\81®ã\82¨ã\83³ã\82³ã\83¼ã\83\87ã\82£ã\83³ã\82°ã\81¯æ¬§æ\96\87ã\83\95ã\82©ã\83³ã\83\88ã\81®ã\82¨ã\83³ã\82³ã\83¼ã\83\87ã\82£ã\83³ã\82°であり,
+和文フォントはこれらのエンコーディングを持つことはできない.
これらコマンドは横組用・縦組用和文フォントのための新しいエンコーディングを
それぞれ定義する.
%</ja>
The above 3~commands are just the counterparts for \cs{DeclareFontEncodingDefaults} and~others.
%</en>
%<*ja>
-上記3つのコマンドはちょうど \cs{DeclareFontEncodingDefaults} などに対応するものである.
+上記3つのコマンドはちょうどNFSS2 の \cs{DeclareFontEncodingDefaults} などに対応するものである.
%</ja>
\item[\cs{reDeclareMathAlphabet}\{<unified-cmd>\}\{<al-cmd>\}\{<ja-cmd>\}]
\item[\cs{DeclareRelationFont}\{<ja-encoding>\}\{<ja-family>\}\{<ja-series>\}\{<ja-shape>\}\\*
\null\hfill\{<al-encoding>\}\{<al-family>\}\{<al-series>\}\{<al-shape>\}]
%<*en>
-This command sets the ``accompanied'' alphabetic font family (given by the latter 4~arguments)
-with respect to a Japanese font family given by the former 4~arguments.
+This command sets the ``accompanied'' alphabetic font (given by the latter 4~arguments)
+with respect to a Japanese font given by the former 4~arguments.
%</en>
%<*ja>
-ã\81\84ã\82\8fã\82\86ã\82\8bã\80\8cå¾\93å±\9e欧æ\96\87ã\80\8dã\82\92è¨å®\9aã\81\99ã\82\8bã\81\9fã\82\81ã\81®å\91½ä»¤ã\81§ã\81\82ã\82\8bï¼\8eå\89\8då\8d\8aã\81®4å¼\95æ\95°ã\81§è¡¨ã\81\95ã\82\8cã\82\8bå\92\8cæ\96\87ã\83\95ã\82©ã\83³ã\83\88ã\83\95ã\82¡ã\83\9fã\83ªã\81«å¯¾ã\81\97ã\81¦ï¼\8c
-ã\81\9dã\81®ã\83\95ã\82©ã\83³ã\83\88ã\81«å¯¾å¿\9cã\81\99ã\82\8bã\80\8cå¾\93å±\9e欧æ\96\87ã\80\8dã\81®ã\83\95ã\82©ã\83³ã\83\88ã\83\95ã\82¡ã\83\9fã\83ªã\82\92å¾\8cå\8d\8aã\81®4å¼\95æ\95°ã\81«ã\82\88ã\82\8aä¸\8eã\81\88ã\82\8bï¼\8e
+いわゆる「従属欧文」を設定するための命令である.前半の4引数で表される和文フォントに対して,
+そのフォントに対応する「従属欧文」のフォントを後半の4引数により与える.
%</ja>
\item[\cs{SetRelationFont}]
%<*en>
%<*ja>
現在の欧文フォントのエンコーディング/ファミリ/…… を,
\cs{DeclareRelationFont} か \cs{SetRelationFont} で指定された
-ç\8f¾å\9c¨ã\81®å\92\8cæ\96\87ã\83\95ã\82©ã\83³ã\83\88ã\83\95ã\82¡ã\83\9fã\83ªã\81«å¯¾å¿\9cã\81\99ã\82\8bã\80\8cå¾\93å±\9e欧æ\96\87ã\80\8dã\83\95ã\82©ã\83³ã\83\88ã\83\95ã\82¡ã\83\9fã\83ªに変更する.
+ç\8f¾å\9c¨ã\81®å\92\8cæ\96\87ã\83\95ã\82©ã\83³ã\83\88ã\81«å¯¾å¿\9cã\81\99ã\82\8bã\80\8cå¾\93å±\9e欧æ\96\87ã\80\8dã\83\95ã\82©ã\83³ã\83\88に変更する.
\cs{fontfamily} のように,有効にするためには \cs{selectfont} が必要である.
%</ja>
+ d_{\text{あ}} - d_{\text{M}},
\]
where $h_{a}$~and~$d_{a}$ denote the height of ``$a$'' and the depth, respectively.
-In \LuaTeX-ja, this \cs{adjustbaseline} does same task.
+In \LuaTeX-ja, this \cs{adjustbaseline} does same task, namely setting the
+ \Param{talbaselineshift} parameter.
%</en>
%<*ja>
\pLaTeXe では,\cs{adjustbaseline} は縦組時に「M」と「あ」の中心線を一致させるために,
+ d_{\text{あ}} - d_{\text{M}},
\]
ここで,$h_{a}$,~$d_{a}$はそれぞれ「$a$」の高さ・深さを表す.
-\LuaTeX-jaにおいても\cs{adjustbaseline} は同様の処理を行っている.
+\LuaTeX-jaにおいても\cs{adjustbaseline} は同様に\Param{talbaselineshift}パラメータの調整処
+ 理を行っている.
+
+同時に,これも\pLaTeXe の \cs{adjustbaseline} で行われていたが,
+「漢」の寸法を元に,(本節の最初に述べた,小文字で始まる)\cs{cht}, \cs{cwd} といった長さ変数を設定する.
%</ja>
\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>に変更する.
-どのファミリが変更されるかは以下のようにして決定される:
-%</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>には設定されないことに注意する.
+和文,\emph{もしくは両方})を<family>に変更する.詳細は\ref{ssec-fontfamilycmd}節を参照すること.
%</ja>
-\end{itemize}%
-%<en>\vspace{-\medskipamount}
\begin{figure}[!tb]
\userelfont\selectfont あいうabc
\end{LTXexample}
+%<en>\subsection{\cs{fontfamily}}
+%<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>
+\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{注意}
+\begin{itemize}
+
+%<*en>
+\item
+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>
+\item
+さて,引数によっては,「和文フォントファミリとも欧文フォントファミリも認識されなかった」
+という事態もあり得る.
+ この場合,引数<family>は不正だった,ということになるので,
+和文・欧文の両方のフォントファミリを<family>に設定し,代用フォントが使われるに任せることにする.
+%</ja>
+
+%<*en>
+\item
+%</en>
+%<*ja>
+\item
+%</ja>
+\end{itemize}
+
+
%<*en>
\section{Addons}
\LuaTeX-ja has several addon packages.
the commands of Japanese version:
%</en>
%<*ja>
-\ref{ssec-fontspec}節で述べたように,この追加パッケージは\Pkg{fontspec}
+\ref{ssec-fontspec}節で述べたように,この追加パッケージは\Pkg{fontspec}%
パッケージで定義されているコマンドに対応する和文フォント用のコマンドを提供する.
-\emph{以下に述べる和文版の命令の説明は \Pkg{fontspec}~v2.4 使用時にのみ当てはまる.}
\Pkg{fontspec}パッケージで指定可能な各種font featureに加えて,和文版のコマンドには
以下の``font feature''を指定することができる:
\item[TateFeatures=\{<features>\}\textrm{, }TateFont=<font>]
%<*en>
The \texttt{TateFeatures} key specifies font features which are only turned~on in
-vertical writing, such as \texttt{Style=VerticalKana}~(\texttt{vkna} feature).
+vertical writing, such as \texttt{Style=VerticalKana}~(\texttt{vkna} feature).
Similarly, the \texttt{TateFont} key specifies the Japanese font which will be used only
in vertical writing.
A demonstrarion is shown in Figure~\ref{fig:yokotate-fontspec}.
仮想ボディの高さ$h$,深さ$d$については
\begin{description}
\catcode`\<=12\catcode`\>=12
- \item[$\texttt{yoffset}\geq 0$のとき]
-$h = \max(\texttt{height} + \texttt{yoffset}, 0)$,
-$d = \max(\texttt{depth} - \texttt{yoffset}, 0)$,
- \item[$\texttt{yoffset}<0$のとき]
+ \item[$\texttt{yoffset}\geq 0$のとき]
+$h = \max(\texttt{height} + \texttt{yoffset}, 0)$,
+$d = \max(\texttt{depth} - \texttt{yoffset}, 0)$,
+ \item[$\texttt{yoffset}<0$のとき]
$h = \max(\texttt{height} + \texttt{yoffset}, 0)$, $d=\texttt{depth}$.
\end{description}
という仕様になっている.つまり,\texttt{yoffset} が負(グリフを下ける)の場合に深さは増加しな
%<*en>
\paragraph{Variation selectors}
\Pkg{lltjp-listings} add two keys, namely \texttt{vsraw}~and~\texttt{vscmd},
-which specify how variation selectors are treated in
+which specify how variation selectors are treated in
\texttt{lstlisting} or other enviroments.
-Note that these additional keys are not usable in the preamble,
+Note that these additional keys are not usable in the preamble,
since \Pkg{lltjp-listings} is loaded at \verb+\begin{document}+.
\texttt{vsraw} is a key which takes a boolean value, and its default value is
\end{lstlisting}
\end{LTXexample}
%<*en>
-\item If the \texttt{vsraw} key is false, then
+\item If the \texttt{vsraw} key is false, then
variation selectors are typeset by an appropriate command, which is specified by
the \texttt{vscmd} key.
The default setting of the \texttt{vscmd} key produces the following.
This file stores the table which stores the following.
\begin{itemize}
\item unicode variants in a font ``\texttt{***}''
- \item vertical width of glyphs, if it is not equal to the sum of
+ \item vertical width of glyphs, if it is not equal to the sum of
the height of ascender and the depth of descender
\item vertical variants
\end{itemize}
\bibitem{jlisting} Thor Watanabe. \newblock Listings\ -\ MyTeXpert.
%<en>\newblock
%<ja>\\\null\hfill
-\url{http://mytexpert.sourceforge.jp/index.php?Listings}
+\url{http://mytexpert.osdn.jp/index.php?Listings}
\bibitem{jlreq} W3C Japanese Layout Task Force~(ed). \newblock
Requirements for Japanese Text Layout (W3C Working Group Note), 2011, 2012. \newblock
\url{http://www.w3.org/TR/jlreq/}%