X-Git-Url: http://git.osdn.jp/view?a=blobdiff_plain;f=doc%2Fluatexja.dtx;h=9a0084258eecd62d34cc042f6872faf99eac7b56;hb=e1343bf2291644df8cef878601833b4868a3fd4d;hp=6ac495c4a4e9149349368b7e3c13eb4612711534;hpb=b3da5c7f779d0451662b7f7fd8ae77daf3b254a5;p=luatex-ja%2Fluatexja.git diff --git a/doc/luatexja.dtx b/doc/luatexja.dtx index 6ac495c..9a00842 100644 --- a/doc/luatexja.dtx +++ b/doc/luatexja.dtx @@ -8,6 +8,7 @@ %%%%% section ==> 章 %%%%% subsection => 節 +\IfFileExists{luatex85.sty}{\RequirePackage{luatex85}}{} %\documentclass[a4paper,titlepage]{article} %\documentclass[a4paper,titlepage]{ltjsarticle} @@ -24,16 +25,17 @@ %%%%%%%% fonts \usepackage{luatexja-otf} \directlua{luatexja.otf.enable_ivs()} -\usepackage[match,no-math]{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> @@ -451,7 +453,7 @@ Japanese characters in discretionary break (\cs{discretionary}) is not supported %<*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, + To change this behavior, put \verb!\ltjsetparameter{jacharrange={-2,-3}}! in the preamble. For the detailed description, see Subsection~\ref{ssec-setrange}. @@ -814,7 +816,7 @@ bad argument #1 to 'open' (string expected, got nil) If so, please execute a batch file which is written on \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 a test file which loads \LuaTeX-ja in this directory, +run a test file which loads \LuaTeX-ja in this directory, and finally delete the temporary directory. % %<*ja> @@ -1003,6 +1005,28 @@ Note that the bold series in both family are same as the medium series of \emph{ %\item Japanese characters in math mode are typeset by the font family \texttt{mc}. %\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. +% +%<*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},つまり明朝体として用いるのと + 同じフォントファミリである. +% %<*en> \item If you use the \Pkg{beamer} class with the default font theme (which uses sans serif @@ -1034,6 +1058,12 @@ Okumura), namely, \Pkg{ltjclasses}\footnote{% The latter \texttt{ltjt*.cls} are for vertically writtened Japanese documents. } and \Pkg{ltjsclasses}\footnote{% \texttt{ltjsarticle.cls},~\texttt{ltjsbook.cls},~\texttt{ltjskiyou.cls}.}. + +Original \Pkg{jsclasses} use \cs{mag}~primitive to set the main document font size. +However, \LuaTeX\ beta-0.87.0~or~later does not support \cs{mag} in PDF~output, +so \Pkg{ltjsclasses} use different method% +\footnote{Similar to \texttt{magstyle=real} in the \Pkg{BXjscls} classes (by Takayuki Yato).} +to set the main document font size. % %<*ja> しかしながら,上記の設定は日本語の文書にとって十分とは言えない. @@ -1048,6 +1078,12 @@ Okumura), namely, \Pkg{ltjclasses}\footnote{% \Pkg{ltjsclasses}\footnote{% \texttt{ltjsarticle.cls},~\texttt{ltjsbook.cls},~\texttt{ltjskiyou.cls}.}% がそれぞれ用意されている. + +元々の\Pkg{ltjsclasses}ではフォントサイズを指定するのに\cs{mag}プリミティブが使われていたが, +\LuaTeX~beta-0.87.0以降ではPDF出力時の\cs{mag}のサポートが廃止された. +そのため,\Pkg{ltjsclasses}では別の方法 +\footnote{八登崇之氏による\Pkg{BXjscls}クラスにおける\texttt{magstyle=real}指定時と類似している.}で +フォントサイズを指定することにしている. % %<*ja> @@ -1189,7 +1225,7 @@ auto select&\cs{fontencoding}&\cs{fontfamily}&---&---&\cs{usefont}\\ %<*en> \item For defining a Japanese font family, use \cs{DeclareKanjiFamily} instead of - \cs{DeclareFontFamily}. (In previous version of \LuaTeX-ja, + \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}: @@ -1276,7 +1312,7 @@ this chapter. For the method, please see Subsection~\ref{ssec-math}. %\subsection{\Pkg{luatexja-fontspec}パッケージ} \label{ssec-fontspec} %<*en> -To use the functionality of the \Pkg{fontspec} package to Japanese fonts, +To use the functionality of the \Pkg{fontspec} package to Japanese fonts, it is needed to load the \Pkg{luatexja-fontspec} package in the preamble, as follows: \begin{quote} \ttfamily \textbackslash usepackage[]\{luatexja-fontspec\} @@ -1435,7 +1471,7 @@ JIS~X~0208:1990→辻 %<*en> One can load the \Pkg{luatexja-preset} -package to use several ``presets'' of Japanese fonts. +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. @@ -1466,13 +1502,14 @@ For example, the line~5 in below example is eqivalent to lines 1--3. %\paragraph{General options} %\paragraph{一般的なオプション} \begin{cslist}[before*=] - -\item[fontspec] +\item[fontspec% +%\textrm{~(enabled by default)} +%\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}, you can load \Pkg{fontspec} manually before \Pkg{luatexja-preset}: @@ -1480,7 +1517,6 @@ before \Pkg{luatexja-preset}: %<*ja> \Pkg{luatexja-fontspec}パッケージの機能を用いて和文フォントを選択する. これは,\Pkg{fontspec}パッケージが自動で読み込まれることを意味する. -\emph{このオプションは標準で有効になっている.} もし\Pkg{fontspec}パッケージに何らかのオプションを渡す必要がある \footnote{例えば,数式フォントまで置換されてしまい,\cs{mathit}によってギリシャ文字の @@ -1500,7 +1536,7 @@ With this option, selecting Japanese fonts won't be performed using the function This option is ignored when \Pkg{luatexja-fontspec} package is loaded. When this option is specified, \Pkg{fontspec}~and~\Pkg{luatexja-fontspec} are -\emph{not} loaded by default. Nevertheless, +\emph{not} loaded by default. Nevertheless, the package\Pkg{fontspec} can coexist with the option, as the following: \begin{lstlisting} \usepackage{fontspec} @@ -1527,19 +1563,39 @@ In this case, one can use \cs{setmainfont} etc.\ to select \emph{alphabetic} fon いる場合は \texttt{nfssonly} オプションは無視される. % -\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. +% + +%<*ja> +このオプションが指定されると,「\pLaTeXe 新ドキュメントクラス」のように\ +\cs{rmfamily}, \verb+\textrm{...}+, \cs{sffamily} 等が +欧文フォントだけでなく和文フォントも変更するようになる. +\ \texttt{fontspec}\ +オプションが有効になっている場合は,このオプションは \Pkg{luatexja-fontspec} パッケージへと渡される. +% + + +\item[nodeluxe% +%\textrm{~(enabled by default)} +%\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.} % %<*ja> +\texttt{deluxe}オプションの否定. \LaTeXe 環境下の標準設定のように,明朝体・ゴシック体を各1ウェイトで使用する. より具体的に言うと,この設定の下では \ \verb+\mcfamily\bfseries+, \verb+\gtfamily\bfseries+, \verb+\gtfamily\mdseries+はみな同じフォントとなる. -\emph{このオプションは標準で有効になっている.} % \item[deluxe] %<*en> @@ -1576,8 +1632,17 @@ characters designed for ruby. }. % \item[bold] -%Substitute bold series of \textit{gothic} for bold series of \textit{mincho}. -%「明朝の太字」をゴシック体の太字によって代替する. +%<*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}. +% +%<*ja> +「明朝の太字」をゴシック体の太字によって代替する. +もし\texttt{nodeluxe}オプションが指定されている場合は,ゴシック体は1ウェイトしか使用されな + いため, +「ゴシック体の中字」も同時に変更されることになる. +% \item[90jis] %Use 90JIS glyph variants if possible. %出来る限り90JISの字形を使う. @@ -1593,6 +1658,7 @@ Use the JFM \texttt{jfm-jis.lua}, instead of \texttt{jfm-ujis.lua}, which is the 用いるJFMを(JISフォントメトリック類似の)\texttt{jfm-jis.lua}にする.このオプションがない時は \LuaTeX-ja標準の\texttt{jfm-ujis.lua}が用いられる. % + \end{cslist} %<*en> Note that \texttt{90jis} and \texttt{jis2004} only affect with \textit{mincho}, @@ -1601,8 +1667,8 @@ We didn't taken account of when both \texttt{90jis} and \texttt{jis2004} are sp % %<*ja> \texttt{90jis}と\texttt{jis2004}については本パッケージで定義された -明朝体・ゴシック体(・丸ゴシック体)にのみ有効である.両オプションが -同時に指定された場合の動作については全く考慮していない. +明朝体・ゴシック体(・丸ゴシック体)にのみ有効である. +両オプションが同時に指定された場合の動作については全く考慮していない. % %\paragraph{Presets for multi weight} @@ -1701,7 +1767,7 @@ Std/StdNフォントであり,その他はAdobe-Japan1-5対応である. \end{tabular} \end{center} -%\medskip +%\newpage \item[morisawa-pro] Morisawa Pro (Adobe-Japan1-4) fonts. % \\*[-\dimexpr\medskipamount+\baselineskip\relax] @@ -1761,7 +1827,8 @@ Std/StdNフォントであり,その他はAdobe-Japan1-5対応である. \end{tabular} \end{center} - \item[moga-mobo] MogaMincho, MogaGothic, and MoboGothic. +%\newpage +\item[moga-mobo] MogaMincho, MogaGothic, and MoboGothic. %These fonts can be downloaded from\\\hfill \url{http://yozvox.web.fc2.com/}. %これらのフォントは \url{http://yozvox.web.fc2.com/} からダウンロードできる. @@ -1775,9 +1842,9 @@ Std/StdNフォントであり,その他はAdobe-Japan1-5対応である. %\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} %\textit{gothic}% %\gt ゴシック @@ -2172,7 +2239,7 @@ This range consists of the following Unicode ranges, \emph{except characters in \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 -%\par\ +%\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 %\par\ @@ -2311,7 +2378,7 @@ The block list is indicated in Table~\ref{table-rng7}. %<*en> \paragraph{Notes on \texttt{U+0080}--\texttt{U+00FF}} -You should treat characters in \\texttt{U+0080}--\texttt{U+00FF} as \textbf{ALchar}, +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. @@ -2320,7 +2387,7 @@ 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), +\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 @@ -2845,7 +2912,7 @@ between \XeTeX\ and \LuaTeX, by the following reasons: 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, +In other words, \begin{description} \item[plain \LuaTeX] Kanji nor kana characters cannot be used in @@ -3864,7 +3931,7 @@ letter-spacing and the width of italic correction are not correct: \paragraph{\texttt{ltjksp} 指定} \label{pg:ltjksp} \LuaTeX-ja標準では, -JFM中における \texttt{kanjiskip\_natural}, \texttt{kanjiskip\_stretch},\ +JFM中における \texttt{kanjiskip\_natural}, \texttt{kanjiskip\_stretch},\ \texttt{kanjiskip\_shrink}キー(\pageref{pg:ksp_nat}ページ)の使用によって, 「JFM由来のグルーの他に,\Param{kanjiskip}の自然長/伸び量/縮み量の一部が 同じ場所に挿入される」という状況が起こりうる. @@ -3902,13 +3969,12 @@ JFM中における \texttt{kanjiskip\_natural}, \texttt{kanjiskip\_stretch},\ \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 @@ -4573,7 +4639,7 @@ and is also easy to shrink. kanjiskip\_stretch=\textrm{, }kanjiskip\_shrink=]\leavevmode These keys specifies the amount of the natural width of \Param{kanjiskip} -(the stretch/shrink part, respectively) which will be inserted +(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 @@ -4584,7 +4650,7 @@ a glue whose natural part and shrink part are both half-width, while its stretch 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. + 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). @@ -5187,11 +5253,11 @@ in \pTeX, and symbols beside each parameter has the following meaning: % \begin{itemize} %<*en> -\item ``\ast'' : values at the end of a paragraph or a hbox are +\item ``$\ast$'' : values at the end of a paragraph or a hbox are adopted in the whole paragraph or the whole hbox. % %<*ja> -\item ``\ast'':段落やhboxの終端での値がその段落/hbox全体で用いられる. +\item ``$\ast$'':段落やhboxの終端での値がその段落/hbox全体で用いられる. % %<*en> \item ``\dagger'': assignments are always global. @@ -6106,8 +6172,10 @@ to match the vertical center of ``M'' and that of ``あ'' in vertical typesetti + 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, namely setting the +In \LuaTeX-ja, this \cs{adjustbaseline} does similar task, namely setting the \Param{talbaselineshift} parameter. +If the \LaTeX\ is 2015/10/01 release or later, \LuaTeX-ja use a Japanese +character whose character class is zero, instead of `あ'. % %<*ja> \pLaTeXe では,\cs{adjustbaseline} は縦組時に「M」と「あ」の中心線を一致させるために, @@ -6121,8 +6189,12 @@ In \LuaTeX-ja, this \cs{adjustbaseline} does same task, namely setting the \LuaTeX-jaにおいても\cs{adjustbaseline} は同様に\Param{talbaselineshift}パラメータの調整処 理を行っている. -同時に,これも\pLaTeXe の \cs{adjustbaseline} で行われていたが, -「漢」の寸法を元に,(本節の最初に述べた,小文字で始まる)\cs{cht}, \cs{cwd} といった長さ変数を設定する. +同時に,これも\pLaTeXe の \cs{adjustbaseline} で同様の処理が行われていたが, +「漢」の寸法を元に(本節の最初に述べた,小文字で始まる)\cs{cht}, \cs{cwd} +といった長さ変数を設定する. + +なお,\LaTeX が2015/10/01 版以降の場合は,「あ」「漢」の代わりに +「文字クラス0の和文文字」を用いる. % \item[\cs{fontfamily}\{\}] @@ -6260,11 +6332,11 @@ We use an auxiliary list~$N_{\mathrm{J}}$. \item If the \Pkg{luatexja-fontspec} package is loaded, we stop here, and is not recognized as a Japanese font family. - If the \Pkg{luatexja-fontspec} package is \emph{not} loaded, + If the \Pkg{luatexja-fontspec} package is \emph{not} loaded, now \LuaTeX-ja looks whether there exists a Japanese font encoding~ such that a font definition named \texttt{.fd} (the file name is - all lowercase) exists. If so, is recognized as a Japanese font family (the font definition file won't be loaded here). - If not, is not a Japanese font family, and + all lowercase) exists. If so, is recognized as a Japanese font family (the font definition file won't be loaded here). + If not, is not a Japanese font family, and is appended to the list~$N_{\mathrm{J}}$. % %<*ja> @@ -6284,7 +6356,7 @@ now \LuaTeX-ja looks whether there exists a Japanese font encoding~ such th %<*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}}$, +We use auxiliary lists $F_{\mathrm{A}}$~and~$N_{\mathrm{A}}$, % %<*ja> \paragraph{欧文フォントファミリとしての認識} @@ -6295,7 +6367,7 @@ We use auxiliary lists $F_{\mathrm{A}}$~and~$N_{\mathrm{A}}$, \begin{enumerate} %<*en> -\item If the family~ has been listed in a list~$F_{\mathrm{A}}$, +\item If the family~ has been listed in a list~$F_{\mathrm{A}}$, is recognized as an alphabetic font family. % %<*ja> @@ -6323,7 +6395,7 @@ We use auxiliary lists $F_{\mathrm{A}}$~and~$N_{\mathrm{A}}$, \item Now \LuaTeX-ja looks whether there exists an alphabetic font encoding~ such that a font definition named \texttt{.fd} (the file name is all lowercase) exists. If so, current alphabetic font family will be changed to - ~(the font definition file won't be loaded here). + ~(the font definition file won't be loaded here). If not, current alphabetic font family won't be changed, and is appended to the list~$N_{\mathrm{A}}$. % @@ -6348,7 +6420,7 @@ the second argument (family) is appended to the list~$F_{\mathrm{A}}$. %<*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, +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. % @@ -6465,7 +6537,7 @@ will not be embedded in the output PDF file. See Subsection~\ref{ssec-psft}. %<*ja> \pageref{pg:ltjksp}ページで説明した \verb+\jfont+ 中での \texttt{ltjksp} 指定と 同一の効力を持ち, -JFM中における \texttt{kanjiskip\_natural}, \texttt{kanjiskip\_stretch},\ +JFM中における \texttt{kanjiskip\_natural}, \texttt{kanjiskip\_stretch},\ \texttt{kanjiskip\_shrink}キー(\pageref{pg:ksp_nat}ページ)の有効/無効を切り替える. 標準値は \texttt{true} である. % @@ -6726,7 +6798,8 @@ JFMの\texttt{chars}テーブルのエントリとして \verb+'AJ1-xxx'+ の形 Recent fonts support Ideographic Variation Selector (IVS). It seems that \Pkg{luaotfload} and \Pkg{fontspec} packages do not support IVS, so we implemented IVS support in \Pkg{luatexja-otf}. -\emph{IVS support is experimental; if you want to enable this, load +\emph{IVS support by the \Pkg{luatexja-otf} package is experimental. +If you want to enable IVS support, load \Pkg{luatexja-otf} and execute the following:} % %<*ja> @@ -6741,8 +6814,9 @@ IVSに対応してはいないようである.これらのパッケージで \medskip -\emph{IVS対応は試験的なものである. -有効にするには,\Pkg{luatexja-otf}パッケージを読み込んだ上で以下の命令を実行する% +\emph{\Pkg{luatexja-otf}によるIVS対応は試験的なものである. +有効にするには, +\Pkg{luatexja-otf}パッケージを読み込んだ上で以下の命令を実行する% \footnote{この命令を2回以上実行しても意味がない.}:} % \begin{lstlisting} @@ -7341,6 +7415,18 @@ $i$は7より小さい自然数. \end{description} % \TeX 側から見える値,つまり \verb+\the\ltj@dir+ の値は常に0である. +\cnt{ltjlineendcomment} +%<*ja> + \LuaTeX-jaは\textbf{JAchar}で入力行が終了した場合,その直後にコメント文字を + おくことで余計な空白が挿入されることを防いでいる. + \cs{ltjlineendcomment}はその際のコメント文字のUnicodeにおける符号位置を指定する + (詳細は\ref{ssec:lineend}節を参照). + + \LuaTeX-jaにおける既定値は$\texttt{"FFFFF}=1048575$であり, + ユーザは内部動作を熟知していない限りこのカウンタの値を変更してはならない. + \cs{ltjlineendcomment}の値がUnicodeの範囲外(負や,$\texttt{"10FFFF}=1114111$を超えた場合) + にくることは想定されていない. +% \end{list} %<*en> @@ -7947,6 +8033,7 @@ to State~$M$ (middle of line) sometimes. %\subsection{Behavior in \LuaTeX-ja} %\subsection{\LuaTeX-jaの動作} + \label{ssec:lineend} %<*en> States in the input processor of \LuaTeX\ is the same as that of \TeX, and they can't be customized by any callbacks. Hence, we can only use @@ -7961,14 +8048,16 @@ space must be done \emph{just before} an input line is read. Considering these situations, handling of an end-of-line in \LuaTeX-ja are as follows: \begin{quote} -A character \texttt{U+FFFFF} (its category code is set to 14~(\textit{comment}) by -\LuaTeX-ja) is appended to an input line, \emph{before \LuaTeX\ actually +A character whose character code is \cs{ltjlineendcomment}% +\footnote{Its default value is \texttt{"FFFFF}, so \texttt{U+FFFFF} is used. +The category code of \texttt{U+FFFFF} is set to 14~(\textit{comment}) by +\LuaTeX-ja.} is appended to an input line, \emph{before \LuaTeX\ actually process it}, if and only if the following three conditions are satisfied: \begin{enumerate} \item The category code of \cs{endlinechar}% \footnote{Usually, it is $\langle$\textit{return}$\rangle$ (whose character code is 13).} is 5~(\textit{end-of-line}). -\item The category code of \texttt{U+FFFFF} itself is 14~(\textit{comment}). +\item The category code of \cs{ltjlineendcomment} itself is 14~(\textit{comment}). \item The input line matches the following ``regular expression'': \[ (\text{any char})^*(\textbf{JAchar}) @@ -7996,7 +8085,7 @@ there is a space before ``u''. This follows from following reasons: \item When line~3 is processed by \texttt{process\_input\_buffer} callback, ``あ'' is considered as an \textbf{JAchar}. Since line~3 ends with an \textbf{JAchar}, -the comment character \texttt{U+FFFFF} is appended to this line, +the comment character (whose character code is \cs{ltjlineendcomment}) is appended to this line, and hence the linebreak immediately after this line is ignored. \item When line~4 is processed by \texttt{process\_input\_buffer} callback, ``い'' is considered as an \textbf{ALchar}. @@ -8021,13 +8110,15 @@ emits a space. \begin{quote} 各入力行に対し,\emph{その入力行が読まれる前の内部状態で} -以下の3条件が満たされている場合,\LuaTeX-jaは\texttt{U+FFFFF}の文字 -\footnote{この文字はコメント文字として扱われるように\LuaTeX-ja内部で設定をしている.} +以下の3条件が満たされている場合,\LuaTeX-jaは\cs{ltjlineendcomment}番の文字 +\footnote{\cs{ltjlineendcomment}の既定値は\texttt{"FFFFF}であるので, + 既定では\texttt{U+FFFFF}が使われることになる.この文字はコメント文字として扱われるように + \LuaTeX-ja内部で設定をしている.}% を末尾に追加する.よって,その場合に改行は空白とは見做されないこととなる. \begin{enumerate} \item \cs{endlinechar}の文字\footnote{普通は,改行文字(文字コード13番)である.} のカテゴリーコードが5~(\textit{end-of-line})である. -\item \texttt{U+FFFFF}のカテゴリーコードが14~(\textit{comment})である. +\item \cs{ltjlineendcomment}のカテゴリーコードが14~(\textit{comment})である. \item 入力行は次の「正規表現」にマッチしている: \[ (\text{any char})^*(\textbf{JAchar}) @@ -8057,7 +8148,7 @@ u \begin{itemize} \item 3行目を \texttt{process\_input\_buffer} で処理する時点では, 「あ」は\textbf{JAchar}(和文扱い)である.よって3行目は\textbf{JAchar}で終わることになり, - コメント文字 \texttt{U+FFFFF} が追加される. + \cs{ltjlineendcomment}番のコメント文字が追加される. よって,直後の改行文字は無視されることになり,空白は入らない. \item 4行目を \texttt{process\_input\_buffer} で処理する時点では, 「い」は\textbf{ALchar}である.よって4行目は\textbf{ALchar}で終わることになり, @@ -8830,7 +8921,7 @@ a patch \Pkg{jlisting.sty}~(\cite{jlisting}) resolves the problem forcibly. %<*en> In \LuaTeX-ja, the problem is resolved by using the \verb+process_input_buffer+ callback. -The callback function inserts the output command (active character \texttt{U+FFFFF}) +The callback function inserts the output command (active character \cs{ltjlineendcomment}) before each letter above \texttt{U+0080}. This method can omits the process to make all Japanese characters active (most of the activated characters are not used in many cases). @@ -8838,7 +8929,7 @@ This method can omits the process to make all Japanese characters active %<*ja> \LuaTeX-jaでは,\verb+process_input_buffer+ コールバックを利用することで, 「各行に出現する\texttt{U+0080}以降の文字に対して,それらの出力命令を前置する」 -という方法をとっている.出力命令としては,アクティブ文字化した \texttt{U+FFFFF} を用いている. +という方法をとっている.出力命令としては,アクティブ文字化した\cs{ltjlineendcomment}を用いている. これにより,(入力には使用されていないかもしれない)和文文字をもすべてアクティブ化する手間もなく, 見通しが良い実装になっている. % @@ -8857,45 +8948,45 @@ then the patch \Pkg{lltjp-listings} is loaded automatically at \verb+\begin{docu %\subsection{Notes and additional keys} %\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: -% -%<*ja> -\paragraph{\LaTeX へのエスケープ} -日本語対応を行うために \verb+process_input_buffer+ を使用したことで, -\texttt{texcl},~\texttt{escapeinside}といった\emph{「\LaTeX へのエスケープ」中では, -\textbf{JAchar}を名称の一部に含む制御綴は使用不可能}である. -例えば次のような入力を考えよう: -% -\begin{verbatim*} -\begin{lstlisting}[escapechar=\#] -#\ほげ xぴよ# -\end{lstlisting} -\end{verbatim*} -%The line~2 is transformed by the callback to -%ここで,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+\ほげ+''. -% -%<*ja> -と変換されてから,実際の処理に回される. -「\verb+#+」で挟まれた「\LaTeX へのエスケープ」中では\ -\texttt{U+FFFFF} のカテゴリーコードは9~(\textit{ignored})となるので, -結局「\verb+\ほげ+」の代わりに -「\cs{}\IVSA FFFFF」というcontrol symbolが実行されることになる. -% +% Consider the following input: +% % +% %<*ja> +% \paragraph{\LaTeX へのエスケープ} +% 日本語対応を行うために \verb+process_input_buffer+ を使用したことで, +% \texttt{texcl},~\texttt{escapeinside}といった\emph{「\LaTeX へのエスケープ」中では, +% \textbf{JAchar}を名称の一部に含む制御綴は使用不可能}である. +% 例えば次のような入力を考えよう: +% % +% \begin{verbatim*} +% \begin{lstlisting}[escapechar=\#] +% #\ほげ xぴよ# +% \end{lstlisting} +% \end{verbatim*} +% %The line~2 is transformed by the callback to +% %ここで,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+\ほげ+''. +% % +% %<*ja> +% と変換されてから,実際の処理に回される. +% 「\verb+#+」で挟まれた「\LaTeX へのエスケープ」中では\ +% \texttt{U+FFFFF} のカテゴリーコードは9~(\textit{ignored})となるので, +% 結局「\verb+\ほげ+」の代わりに +% 「\cs{}\IVSA FFFFF」というcontrol symbolが実行されることになる. +% % %<*en> \paragraph{Variation selectors}