X-Git-Url: http://git.osdn.jp/view?a=blobdiff_plain;f=doc%2Fluatexja.dtx;h=09ad61a519d33dd08deeb27ca0063e09112b0864;hb=5ad1133d50c2acfc1e511c83826edf065c3cdc2c;hp=1994d0a200dfcfaa41debf46456facf557de2e8e;hpb=8fe88c6a2f97286b70c87d3e570f67ffa27a68fb;p=luatex-ja%2Fluatexja.git diff --git a/doc/luatexja.dtx b/doc/luatexja.dtx index 1994d0a..09ad61a 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} @@ -15,6 +16,7 @@ %%%%%%%% \makeatletter %%%%%%%% +\def\pgfsysdriver{pgfsys-pdftex.def} \directlua{if jit then jit.on() end} \usepackage{metalogo,amsmath,array,tikz,pict2e,multienum,float} \usepackage{booktabs,multicol,luatexja-ruby} @@ -24,16 +26,17 @@ %%%%%%%% 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> @@ -451,7 +454,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}. @@ -600,17 +603,17 @@ and \emph{Japanese fonts} for fonts used in \textbf{JAchar}. %The following packages are needed for the \LuaTeX-ja\ package. %\LuaTeX-jaパッケージの動作には次のパッケージ類が必要である. \begin{itemize} -\item \LuaTeX\ beta-0.80.0 (or later) -\item \Pkg{luaotfload} v2.5 (or later) +\item \LuaTeX\ beta-0.85.0 (or later) +\item \Pkg{luaotfload} v2.6 (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 %\item \emph{IPAex fonts} (\url{http://ipafont.ipa.go.jp/}) %\item \emph{IPAexフォント(\url{http://ipafont.ipa.go.jp/})} \end{itemize} -%In summary, this version of \LuaTeX-ja no longer supports \TeX~Live~2014 (or older version). +%In summary, this version of \LuaTeX-ja no longer supports \TeX~Live~2015 (or older version). %<*ja> -要約すると,本バージョンの\LuaTeX-jaは\TeX~Live~2014以前では動作しない\footnote{% +要約すると,本バージョンの\LuaTeX-jaは\TeX~Live~2015以前では動作しない\footnote{% もっとも,自分で\LuaTeX のバイナリをSubversionリポジトリからビルドしていれば話は別である. }. % @@ -814,7 +817,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 +1006,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 +1059,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=xreal} in the \Pkg{BXjscls} classes (by Takayuki Yato).} +to set the main document font size. % %<*ja> しかしながら,上記の設定は日本語の文書にとって十分とは言えない. @@ -1048,6 +1079,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=xreal}指定時と類似している.}で +フォントサイズを指定することにしている. % %<*ja> @@ -1189,7 +1226,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 +1313,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 +1472,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 +1503,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 +1518,6 @@ before \Pkg{luatexja-preset}: %<*ja> \Pkg{luatexja-fontspec}パッケージの機能を用いて和文フォントを選択する. これは,\Pkg{fontspec}パッケージが自動で読み込まれることを意味する. -\emph{このオプションは標準で有効になっている.} もし\Pkg{fontspec}パッケージに何らかのオプションを渡す必要がある \footnote{例えば,数式フォントまで置換されてしまい,\cs{mathit}によってギリシャ文字の @@ -1500,7 +1537,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 +1564,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 +1633,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 +1659,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 +1668,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 +1768,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 +1828,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 +1843,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 +2240,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 +2379,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 +2388,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 @@ -2629,7 +2697,7 @@ becuse a \emph{JAchar} is encapsulated by a horizontal box if needed. 数式中の挙動は異なっているので注意が必要である. 例えば,表\ref{tab:math_bsa}のように,数式中に明示的に現れた \cs{hbox} は, \begin{itemize} - \item \pTeX では,ボックス全体が \cs{ybaselineshift} だとシフトされるので, + \item 2015年以前の\pTeX では,ボックス全体が \cs{ybaselineshift} だとシフトされるので, 表\ref{tab:math_bsa}中の``い''のように,ボックス中の和文文字は \ \cs{ybaselineshift} だけシフトされ,一方,``for all''のように, ボックス内の欧文文字は2重にシフトされることになる. @@ -2637,6 +2705,10 @@ becuse a \emph{JAchar} is encapsulated by a horizontal box if needed. 数式中に明示的に現れた \cs{hbox} はシフトしない.そのため, 表\ref{tab:math_bsa}中の``い''も``for all''も,それぞれ本文中に 書かれたときと同じ上下位置に組まれる. + + なお,\TeX~Live~2016以降の\pTeX では改修がなされ,\LuaTeX-jaと + 近い挙動になるようにしているが,数式中に直に書かれた``あ''のベースラインについては + まだ違いが見られる. \end{itemize} \begin{table} \small\centering @@ -2653,12 +2725,16 @@ $\Phi\vdash F(x)\ \hbox{for all}\ x\in A$ \end{lstlisting}\\ \noalign{\vskip-\origbaselineskip} \midrule -\emph{\pTeX}& +\emph{\pTeX~(--2015)}& {\ltjsetparameter{yalbaselineshift=10pt}% -数式abc: $あa\lower10pt\hbox{い}$, $\int_0^x t\,dt=x^2/2$, +数式abc: $\lower10pt\hbox{あ}a\lower10pt\hbox{い}$, $\int_0^x t\,dt=x^2/2$, $\Phi\vdash F(x)\ \lower10pt\hbox{for all}\ x\in A$ -\par}\\ -\midrule +\par}\\\noalign{\vskip-\origbaselineskip}\midrule +\emph{\pTeX~(2016--)}& +{\ltjsetparameter{yalbaselineshift=10pt}% +数式abc: $\lower10pt\hbox{あ}a\hbox{い}$, $\int_0^x t\,dt=x^2/2$, +$\Phi\vdash F(x)\ \hbox{for all}\ x\in A$ +\par}\\\noalign{\vskip-\origbaselineskip}\midrule \emph{\LuaTeX-ja}& {\ltjsetparameter{yalbaselineshift=10pt}% 数式abc: $あa\hbox{い}$, $\int_0^x t\,dt=x^2/2$, @@ -2749,13 +2825,13 @@ For the detail, see Table~\ref{table-kcat}. %<*en> \bfseries meaning& \bfseries control word& -\bfseries widow penalty\hbox{}$^*$& +\bfseries widow penalty& \bfseries linebreak\\ % %<*ja> \bfseries 意図& \bfseries 制御綴中に使用& -\bfseries 文字ウィドウ処理\hbox{}$^*$& +\bfseries 文字ウィドウ処理& \bfseries 直後での改行\\ % \midrule @@ -2770,7 +2846,7 @@ For the detail, see Table~\ref{table-kcat}. \medskip %<*ja> -文字ウィドウ処理\hbox{}$^*$: 「漢字が一文字だけ次の行に行くのを防ぐ」\ +文字ウィドウ処理:「漢字が一文字だけ次の行に行くのを防ぐ」 \cs{jcharwidowpenalty} が, その文字の直前に挿入されうるか否か,を示す. % @@ -2842,17 +2918,22 @@ between \XeTeX\ and \LuaTeX, by the following reasons: \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.} % @@ -2865,7 +2946,6 @@ for \LuaTeX, \emph{to match the \cs{catcode} setting with that of \XeTeX.} \LaTeX では \cs{catcode} の設定はカーネルに \texttt{unicode-letters.def} として統合され. このファイルを\XeLaTeX, \LuaLaTeX の両方が用いている. - だが,\XeTeX における \cs{catcode} の初期設定と \LuaTeX におけるそれは一致していない: \begin{itemize} @@ -2873,16 +2953,20 @@ for \LuaTeX, \emph{to match the \cs{catcode} setting with that of \XeTeX.} \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 における初期設定と同じになるようにしている.} @@ -3856,7 +3940,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}の自然長/伸び量/縮み量の一部が 同じ場所に挿入される」という状況が起こりうる. @@ -3894,13 +3978,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 @@ -4211,20 +4294,48 @@ This field is a list of characters which are in this character %(必須) %<*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}. % %<*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と併用 すれば,これによってプロポーショナル組を行うことができる. % @@ -4537,7 +4648,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 @@ -4548,7 +4659,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). @@ -5051,7 +5162,7 @@ This callback is called when \LuaTeX-ja is trying to encapsule a その\textit{glyph\_node}をカプセル化しようとする際に呼び出される. % \begin{lstlisting}[numbers=left] -function ( shift_info,
jfont_info, char_class) +function (
shift_info,
jfont_info,
char_type) return
new_shift_info end \end{lstlisting} @@ -5090,7 +5201,7 @@ Then, the position of glyphs is shifted up by (和文OpenTypeフォントの標準値) \item 実フォント側の数値:$(\hbox{高さ})=28y$, $(\hbox{深さ})=5y$(和文TrueTypeフォントの標準値) \end{itemize} -となっていたとする.すると,実際の文字の出力位置は,以下の量だけ上にぜらされることとなる: +となっていたとする.すると,実際の文字の出力位置は,以下の量だけ上にずらされることとなる: % \[ \frac{88x}{88x+12x} (28y+5y) - 28y = \frac{26}{25}y= 1.04y. @@ -5151,11 +5262,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. @@ -6070,8 +6181,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」と「あ」の中心線を一致させるために, @@ -6085,8 +6198,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}\{\}] @@ -6224,11 +6341,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> @@ -6248,7 +6365,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{欧文フォントファミリとしての認識} @@ -6259,7 +6376,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> @@ -6287,7 +6404,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}}$. % @@ -6312,7 +6429,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. % @@ -6429,7 +6546,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} である. % @@ -6690,7 +6807,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> @@ -6705,8 +6823,9 @@ IVSに対応してはいないようである.これらのパッケージで \medskip -\emph{IVS対応は試験的なものである. -有効にするには,\Pkg{luatexja-otf}パッケージを読み込んだ上で以下の命令を実行する% +\emph{\Pkg{luatexja-otf}によるIVS対応は試験的なものである. +有効にするには, +\Pkg{luatexja-otf}パッケージを読み込んだ上で以下の命令を実行する% \footnote{この命令を2回以上実行しても意味がない.}:} % \begin{lstlisting} @@ -7305,6 +7424,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> @@ -7911,6 +8042,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 @@ -7925,14 +8057,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}) @@ -7960,7 +8094,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}. @@ -7985,13 +8119,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}) @@ -8021,7 +8157,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}で終わることになり, @@ -8794,7 +8930,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). @@ -8802,7 +8938,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}を用いている. これにより,(入力には使用されていないかもしれない)和文文字をもすべてアクティブ化する手間もなく, 見通しが良い実装になっている. % @@ -8821,45 +8957,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} @@ -9105,7 +9241,7 @@ Letter, Other, Kanji, Open, Closeのどれに属するかは次によって決 % \begin{itemize} %\item \textbf{ALchar}s above or equal to~\texttt{U+0080} are classified as Letter. -%\item (\texttt{U+0080}以降の)\textbf{ALchar}は,すべてLetter扱いである. +%\item \<(\texttt{U+0080}以降の)\textbf{ALchar}は,すべてLetter扱いである. %\item \textbf{JAchar}s are classified in the order as follows: %\item \textbf{JAchar}については,以下の順序に従って文字種を決める: