X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=doc%2Fluatexja.dtx;h=82a7ec278e4a66aa4aa72886eaa8ba45948c0bd5;hb=e5b953c545302a9d701e83d4b796243ed43cb887;hp=b0d68756a471c16a1082d40ba4605c4a310f2ffd;hpb=d33eb2f6279c6609b0095ce38f3a45f45d72043c;p=luatex-ja%2Fluatexja.git diff --git a/doc/luatexja.dtx b/doc/luatexja.dtx index b0d6875..82a7ec2 100644 --- a/doc/luatexja.dtx +++ b/doc/luatexja.dtx @@ -23,6 +23,20 @@ \usepackage[all]{xy} \usepackage{lltjext,alltt} +%%%%%%%% Lua GC +\patchcmd\@outputpage{\stepcounter{page}}{% + \directlua{% + if jit then + local k = collectgarbage("count") + if k>900000 then + collectgarbage("collect") + texio.write_nl("term and log", "GC: ", math.floor(k), math.floor(collectgarbage("count"))) + end + end + }% + \stepcounter{page}% +}{}{} + %%%%%%%% fonts \usepackage{luatexja-otf} \directlua{luatexja.otf.enable_ivs()} @@ -44,7 +58,7 @@ \def\headfont{\normalfont\bfseries\gtfamily}\normalsize % %<*en> -\frenchspacing +\frenchspacing\sloppy \usepackage[margin=25mm,lmargin=30mm,rmargin=30mm,footskip=6mm]{geometry} \usepackage{luatexja-adjust}\ltjdisableadjust \parskip=\smallskipamount @@ -103,10 +117,12 @@ %<*en> \title{The \LuaTeX-ja package} \author{The \LuaTeX-ja project team} +\date{\LuaTeXjaversion~(\today)} % %<*ja> \title{\LuaTeX-jaパッケージ} \author{\LuaTeX-jaプロジェクトチーム} +\date{\LuaTeXjaversion(\today)} % \hypersetup{% unicode, @@ -122,6 +138,16 @@ pdftitle={LuaTeX-jaパッケージ} % } +%<*ja> +\def\HyRef@autoref#1#2{% + \begingroup + \Hy@safe@activestrue + \expandafter\HyRef@autosetref\csname r@#2\endcsname{#2}{#1}% + \endgroup\ltjalchar"200C %" 欧文ゴースト +} +\def\figureautorefname{図} +\def\tableautorefname{表} +% %%%%%%%% definition env. \usepackage{amsthm} @@ -164,8 +190,8 @@ \def\_{\leavevmode \kern .06em\vbox {\hrule \@width .333em}} \def\cs#1{\texttt{\upshape - \texorpdfstring{\textbackslash\ltjsetparameter{autoxspacing=false}#1}{\textbackslash#1}}} - + \texorpdfstring{\textbackslash\hbox{\ltjsetparameter{autoxspacing=false}#1}}{\textbackslash#1}}} +\ltjsetparameter{alxspmode={`\\,allow}} %%%%%%%% \makeatother %%%%%%%% @@ -177,10 +203,11 @@ width:\hfill\ #2\cr height:\hfill\ #3\cr depth:\hfill\ #4\cr }}}}}\,} -\protected\def\Param#1{\hyperlink{fld:#1}{\underline{\smash{\textsf{#1}}}}} % parameter name -\protected\def\DParam#1{\hypertarget{fld:#1}{\underline{\smash{\textsf{#1}}}}} % parameter name (definition) +\def\myghost{\ifmmode\else\ltjalchar"200C \fi} +\protected\def\Param#1{\myghost\hyperlink{fld:#1}{\underline{\smash{\textsf{#1}}}}\myghost} % parameter name +\protected\def\DParam#1{\myghost\hypertarget{fld:#1}{\underline{\smash{\textsf{#1}}}}\myghost} % parameter name (definition) \protected\def\Pkg#1{\textsf{#1}} % packages/classes - +\ltjsetparameter{alxspmode={"200C,allow}} \begin{document} \lstset{ @@ -309,7 +336,7 @@ For more detailed information, see Part~\ref{part-imp} or other sections of this %<*en> \paragraph{Command names} \pTeX\ addes several primitives, such as \cs{kanjiskip}, -\cs{prebreakpenalty},~and,~\cs{ifydir}. They can be used as follows: +\cs{prebreakpenalty},~and \cs{ifydir}. They can be used as follows: % %<*ja> \paragraph{命令の名称} 例えば\pTeX で追加された次のようなプリミティブ @@ -458,9 +485,10 @@ By default, \LuaTeX-ja uses Japanese fonts to typeset Greek and Cyrillic letters put \verb!\ltjsetparameter{jacharrange={-2,-3}}! in the preamble. For the detailed description, see Subsection~\ref{ssec-setrange}. -From this version, characters which belongs both ISO~8859-1 and JIS~X~0208, - such as \P~and~\S, are now typeset in alphabetic fonts. This means that - without the \cs{fontspec} (and~\Pkg{luatexja-fontspec}) package, these characters are not typeset correctly. +From version~20150906.0, characters which belongs both ISO~8859-1 and JIS~X~0208, +such as \P~and~\S, are now typeset in alphabetic fonts. +If you are using \LaTeXe\ prior to 2017/01/01, these characters are not typeset correctly +without the \cs{fontspec} (and~\Pkg{luatexja-fontspec}) package. % %<*ja> \paragraph{ギリシャ文字・キリル文字とISO~8859-1の記号} @@ -475,10 +503,13 @@ From this version, characters which belongs both ISO~8859-1 and JIS~X~0208, 詳しい説明は\ref{ssec-setrange}節を参照してほしい. また,\P,~\S といったISO~8859-1の上位領域とJIS~X~0208の共通部分の文字は - 本バージョンから標準で欧文扱いとなり,\emph{ソース中に直接記述しても - \Pkg{fontspec}パッケージ(および\Pkg{luatexja-fontspec}パッケージ)非読み込みの状態では出力されなくなった}. - 和文扱いで出力するには \verb+\ltjjachar`§+ のように \cs{ltjjachar} 命令 - を使えばよい. + 20150906.0版から標準で欧文扱いとなった.\LaTeXe\ 2017/01/01以降では +標準でTUエンコーディングのLatin Modernフォントが使われるので, +特に何もせずソース中にそのまま記述してもこれらの文字が出力される +\footnote{\LaTeXe\ 2017/01/01より前では,ソース中に直接記述しても + \Pkg{fontspec}パッケージ(および\Pkg{luatexja-fontspec}パッケージ)非読み込みの状態では出力されない.}. +和文扱いで出力するには \verb+\ltjjachar`§+ のように \cs{ltjjachar} 命令 +を使えばよい. % %\subsection{Notations} @@ -606,14 +637,15 @@ and \emph{Japanese fonts} for fonts used in \textbf{JAchar}. \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 \Pkg{etoolbox}, \Pkg{everysel} (if you want to use \LuaTeX-ja with \LaTeXe) +\item \Pkg{ltxcmds}, \Pkg{pdftexcmds}, \Pkg{filehook}, \Pkg{atbegshi} +\item \Pkg{fontspec} v2.4 (or later) %\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~2015 (or older version). +%In summary, \LuaTeX-ja version 20160404.0 (or~later) no longer supports \TeX~Live~2015. %<*ja> -要約すると,本バージョンの\LuaTeX-jaは\TeX~Live~2015以前では動作しない\footnote{% +要約すると,20160404.0版以降の\LuaTeX-jaは\TeX~Live~2015以前では動作しない\footnote{% もっとも,自分で\LuaTeX のバイナリをSubversionリポジトリからビルドしていれば話は別である. }. % @@ -781,14 +813,25 @@ For changes from \pTeX, see Subsection~\ref{ssec:chgptex}. % %<*en> \item \LuaTeX-ja is very slower than \pTeX. -Generally speaking, LuaJIT\TeX\ processes \LuaTeX-ja -about 30\% faster than \LuaTeX, but not always. + Generally speaking, LuaJIT\TeX\ processes \LuaTeX-ja + about 30\% faster than \LuaTeX, but not always% + \footnote{% + LuaJIT has the 1\,GB~(or~2\,GB) memory limitation. So typesetting a large source by LuaJIT\TeX\ + may cause an ``out of memory'' error. + }. % %<*ja> \item \LuaTeX-jaは動作が\pTeX に比べて非常に遅い. コードを調整して徐々に速くしているが,まだ満足できる速度ではない. LuaJIT\TeX を用いると\LuaTeX のだいたい1.3倍の速度で動くようであるが, -IPA mj明朝などの大きいフォントを用いた場合には\LuaTeX よりも遅くなることもある. +IPA mj明朝などの大きいフォントを用いた場合には\LuaTeX よりも遅くなることもある + \footnote{% + LuaJITは1\,GB(あるいは2\,GB)のメモリ制限があることが知られている.そのため, + 大きいソースファイルをLuaJIT\TeX でタイプセットするとLuaの側で``out of memory''エラーが発生してしまう. + 本ドキュメントのように,「各ページごとにLuaで使っているメモリ容量をチェックし, + 必要なら\texttt{collectgarbage("collect")}でガベージコレクタを実行」すると + 状況が多少改善されるかもしれない. + }. % \item% @@ -849,7 +892,7 @@ and finally delete the temporary directory. \begin{tabular}{cccccc} \toprule \textbf{direction}& -\textbf{classification}&\textbf{font name}&\bf ``10\,pt''&\bf``7\,pt''&\bf``5\,pt''\\\midrule +\textbf{classification}&\textbf{font name}&\bfseries ``10\,pt''&\bfseries ``7\,pt''&\bfseries ``5\,pt''\\\midrule \smash{\raisebox{-1ex}{\emph{yoko} (horizontal)}}& \emph{mincho}&IPAex Mincho&\cs{tenmin}&\cs{sevenmin}&\cs{fivemin}\\ &\emph{gothic}&IPAex Gothic&\cs{tengt} &\cs{sevengt} &\cs{fivegt}\\ @@ -866,7 +909,7 @@ and finally delete the temporary directory. \begin{center}\small \begin{tabular}{cccccc} \toprule -\emph{組方向}&\emph{字体}&\emph{フォント名}&\bf ``10\,pt''&\bf``7\,pt''&\bf``5\,pt''\\\midrule +\emph{組方向}&\emph{字体}&\emph{フォント名}&\bfseries``10\,pt''&\bfseries``7\,pt''&\bfseries``5\,pt''\\\midrule \smash{\raisebox{-1ex}{横組}}& 明朝体&IPAex明朝&\cs{tenmin}&\cs{sevenmin}&\cs{fivemin}\\ &ゴシック体&IPAexゴシック&\cs{tengt} &\cs{sevengt} &\cs{fivegt}\\ @@ -1056,9 +1099,9 @@ classes in \pLaTeX) and \Pkg{jsclasses} (classes by Haruhiko Okumura), namely, \Pkg{ltjclasses}\footnote{% \texttt{ltjarticle.cls},~\texttt{ltjbook.cls}, \texttt{ltjreport.cls}, \texttt{ltjtarticle.cls}, \texttt{ltjtbook.cls}, \texttt{ltjtreport.cls}. - The latter \texttt{ltjt*.cls} are for vertically writtened Japanese documents. + The latter \texttt{ltjt*.cls} are for vertically written Japanese documents. } and \Pkg{ltjsclasses}\footnote{% - \texttt{ltjsarticle.cls},~\texttt{ltjsbook.cls},~\texttt{ltjskiyou.cls}.}. + \texttt{ltjsarticle.cls},~\texttt{ltjsbook.cls}, \texttt{ltjsreport.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, @@ -1077,7 +1120,7 @@ to set the main document font size. 縦組用は \texttt{ltjtarticle.cls}, \texttt{ltjtbook.cls}, \texttt{ltjtreport.cls} である. }, \Pkg{ltjsclasses}\footnote{% - \texttt{ltjsarticle.cls},~\texttt{ltjsbook.cls},~\texttt{ltjskiyou.cls}.}% + \texttt{ltjsarticle.cls},~\texttt{ltjsbook.cls}, \texttt{ltjsreport.cls},~\texttt{ltjskiyou.cls}.}% がそれぞれ用意されている. 元々の\Pkg{ltjsclasses}ではフォントサイズを指定するのに\cs{mag}プリミティブが使われていたが, @@ -1089,17 +1132,41 @@ to set the main document font size. %<*ja> \paragraph{脚注とボトムフロートの出力順序} -オリジナルの\LaTeX では脚注がボトムフロートの上に来るようになっており, -\pLaTeX では脚注がボトムフロートの下に来るように変更されている. +オリジナルの\LaTeX では脚注はボトムフロートの上に出力され,また\cs{raggedbottom}命令でページの高さが不揃いであることを許した場合には +脚注の下端の垂直位置もページに応じて変わるようになっている. +一方,日本語の組版では脚注はボトムフロートの下に来るのが一般的であるので, +\pLaTeX ではそのように変更されており, +さらに\cs{raggedbottom}命令を実行した後でも脚注は常にページの下端に固定されるようになっている. \LuaTeX-jaでは「欧文クラスの中にちょっとだけ日本語を入れる」という利用も考慮し, -脚注とボトムフロートの順序は\LaTeX 通りとした.もし\pLaTeX の出力順序が好みならば, -\Pkg{stfloats}パッケージを利用して -\begin{lstlisting} - \usepackage{stfloats}\fnbelowfloat -\end{lstlisting} -のようにすればよい.\Pkg{footmisc}パッケージを \texttt{bottom}\ オプションを指定して -読み込むという方法もあるが,それだとボトムフロートと脚注の間が開いてしまう. +脚注とボトムフロートの順序,及び\cs{raggedbottom}時の脚注の垂直位置は\LaTeX 通りとした. +これらを制御するには以下の手段がある: +\begin{itemize} + \item \pLaTeX のように,脚注をボトムフロートの下に組む場合には + \Pkg{stfloats}パッケージを利用して + \begin{lstlisting} + \usepackage{stfloats}\fnbelowfloat + \end{lstlisting} + とする.この状況から「脚注をボトムフロートの上に組む」という\LaTeX の標準の挙動に戻したければ, + \Pkg{stfloats}パッケージの\cs{fnunderfloat}命令を使用する. + \item \cs{raggedbottom}時の脚注の垂直位置は,\cs{iffnfixbottom}という真偽値で制御する. + \begin{description} + \item[偽(\cs{fnfixbottomfalse})の場合] \LaTeX 標準と同じく,本文と脚注の間の空白は\cs{skip}\cs{footins}のみ. + 従って脚注の垂直位置はページにより変動する. + \item[真(\cs{fnfixbottomtrue})の場合] \pLaTeX や\Pkg{footmisc}パッケージを\texttt{bottom}オプションで + 読み込んだ場合のように,脚注は常にページの下端に固定される. + \end{description} +\item ただし,\LuaTeX-jaが提供する「互換クラス」(\Pkg{ltjclasses}, \Pkg{ltjsclasses})では, + \pLaTeX と合わせるために以下のようにしている: + \begin{itemize} + \item \cs{fnfixbottomtrue}が自動的に実行される + \item \Pkg{stfloats}パッケージが\LuaTeX から参照できる場所にあった場合は + 自動的に読み込み,\cs{fnbelowfloat}を実行する. + \end{itemize} +\end{itemize} +なお,\Pkg{stfloats}パッケージを使う代わりに, +\Pkg{footmisc}パッケージを \texttt{bottom}オプションを指定して読み込む +という「解決法」もある. % %%% ↑は英訳しない @@ -1650,15 +1717,26 @@ since we use same font for both series of \textit{gothic}. \item[jis2004] %Use JIS2004 glyph variants if possible. %出来る限りJIS2004の字形を使う. -\item[jis] +\item[jfm\_yoko=] %<*en> -Use the JFM \texttt{jfm-jis.lua}, instead of \texttt{jfm-ujis.lua}, which is the default JFM of -\LuaTeX-ja. +Use the JFM \texttt{jfm-.lua} for horizontal direction, instead of \texttt{jfm-ujis.lua}~(default JFM). % %<*ja> -用いるJFMを(JISフォントメトリック類似の)\texttt{jfm-jis.lua}にする.このオプションがない時は -\LuaTeX-ja標準の\texttt{jfm-ujis.lua}が用いられる. +横組用和文フォントで用いるJFMを\texttt{jfm-.lua}にする.このオプションがない時は +\LuaTeX\nobreakdash -ja標準の\texttt{jfm-ujis.lua}が用いられる. % +\item[jfm\_tate=] +%<*en> +Use the JFM \texttt{jfm-.lua} for vertical direction, instead of \texttt{jfm-ujisv.lua}~(default JFM). +% +%<*ja> +縦用和文フォントで用いるJFMを\texttt{jfm-.lua}にする.このオプションがない時は +\LuaTeX-ja標準の\texttt{jfm-ujisv.lua}が用いられる. +% + +\item[jis] +%Same as \texttt{jfm\_yoko=jis}. +%\texttt{jfm\_yoko=jis}と同じ.ここで用いるJFM\texttt{jfm-jis.lua}はJISフォントメトリックを元にしたものである. \end{cslist} %<*en> @@ -1704,7 +1782,7 @@ There is not rounded gothic family in Kozuka fonts. \begin{center}\small \begin{tabular}{cllll} \toprule -\bf family&\bf series&\tt kozuka-pro&\tt kozuka-pr6&\tt kozuka-pr6n\\ +\bfseries family&\bfseries series&\ttfamily kozuka-pro&\ttfamily kozuka-pr6&\ttfamily kozuka-pr6n\\ \midrule &medium&KozMinPro-Regular&KozMinProVI-Regular&KozMinPr6N-Regular\\ %\smash{\raisebox{1.5ex}{\textit{mincho}}}% @@ -1768,12 +1846,9 @@ Std/StdNフォントであり,その他はAdobe-Japan1-5対応である. \end{tabular} \end{center} -%\newpage - \item[morisawa-pro] Morisawa Pro (Adobe-Japan1-4) fonts. % \\*[-\dimexpr\medskipamount+\baselineskip\relax] \item[morisawa-pr6n] Morisawa Pr6N (Adobe-Japan1-6, JIS04-savvy) fonts. - \begin{center}\small \begin{tabular}{cl>{\tt}l>{\tt}l} \toprule @@ -1798,41 +1873,43 @@ Std/StdNフォントであり,その他はAdobe-Japan1-5対応である. \end{tabular} \end{center} +\newpage \item[yu-win] Yu fonts bundled with Windows~8.1. % \\*[-\dimexpr\medskipamount+\baselineskip\relax] + \item[yu-win10] Yu fonts bundled with Windows~10. +% \\*[-\dimexpr\medskipamount+\baselineskip\relax] \item[yu-osx] Yu fonts bundled with OSX~Mavericks. - \begin{center}\small -\begin{tabular}{clll} +\begin{tabular}{cllll} \toprule -\bf family&\bf series&\tt yu-win&\tt yu-osx\\ +\bf family&\bf series&\texttt{yu-win}&\texttt{yu-win10}&\texttt{yu-osx}\\ \midrule - &medium&YuMincho-Regular&YuMincho~Medium\\ + &medium&YuMincho-Regular&YuMincho-Regular&YuMincho~Medium\\ %\smash{\raisebox{1.5ex}{\textit{mincho}}}% %\smash{\raisebox{1.5ex}{\gt 明朝}}% - &bold&YuMincho-Demibold&YuMincho~Demibold\\ + &bold&YuMincho-Demibold&YuMincho-Demibold&YuMincho~Demibold\\ \midrule - &&YuGothic-Regular*&YuGothic~Medium*\\ - &\smash{\raisebox{1.5ex}{medium}} - &YuGothic-Bold&YuGothic~Bold\\ -\cmidrule(l){2-4} + &&YuGothic-Regular*&YuGothic-Regular*&YuGothic~Medium*\\ + &\smash{\raisebox{1.5ex}{medium}}% + &YuGothic-Regular&YuGothic-Medium&YuGothic~Medium\\ +\cmidrule(l){2-5} %\textit{gothic}% %\gt ゴシック - &bold&YuGothic-Bold&YuGothic~Bold\\ - &heavy&YuGothic-Bold&YuGothic~Bold\\ + &bold&YuGothic-Bold&YuGothic-Bold&YuGothic~Bold\\ + &heavy&YuGothic-Bold&YuGothic-Bold&YuGothic~Bold\\ \midrule %\textit{rounded gothic} %\gt 丸ゴシック -&&YuGothic-Bold&YuGothic~Bold\\ +&&YuGothic-Bold&YuGothic-Bold&YuGothic~Bold\\ \bottomrule \end{tabular} \end{center} -%\newpage \item[moga-mobo] MogaMincho, MogaGothic, and MoboGothic. -%These fonts can be downloaded from\\\hfill \url{http://yozvox.web.fc2.com/}. +% \\*[-\dimexpr\medskipamount+\baselineskip\relax] +\item[moga-mobo-ex] MogaExMincho, MogaExGothic, and MoboExGothic. +%\par These fonts can be downloaded from \url{http://yozvox.web.fc2.com/}. %これらのフォントは \url{http://yozvox.web.fc2.com/} からダウンロードできる. - \begin{center}\small \begin{tabular}{clll} \toprule @@ -1843,10 +1920,7 @@ Std/StdNフォントであり,その他はAdobe-Japan1-5対応である. %\smash{\raisebox{1.5ex}{\gt 明朝}}% &bold&Moga90Mincho Bold&MogaMincho Bold\\ \midrule - &&Moga90Gothic*&MogaGothic*\\ - &\smash{\raisebox{1.5ex}{medium}} - &Moga90Gothic Bold&MogaGothic Bold\\ -\cmidrule(l){2-4} + &medium&Moga90Gothic&MogaGothic\\ %\textit{gothic}% %\gt ゴシック &bold&Moga90Gothic Bold&MogaGothic Bold\\ @@ -1858,6 +1932,99 @@ Std/StdNフォントであり,その他はAdobe-Japan1-5対応である. \bottomrule \end{tabular} \end{center} +%When \texttt{moga-mobo-ex} is specified, the font ``MogaEx90Mincho'' etc.\ are used. +%\texttt{moga-mobo-ex}オプション指定時にはMogaEx90MinchoなどのExが名前についたフォントが使われる. + +\item[ume] Ume Mincho and Ume Gothic. +%\par These fonts can be downloaded from\\\hfill \url{https://ja.osdn.net/projects/ume-font/wiki/FrontPage}. +%これらのフォントは \url{https://ja.osdn.net/projects/ume-font/wiki/FrontPage} からダウンロードできる. +\begin{center}\small +\begin{tabular}{cll} +\toprule +\bf family&\bf series&\bf default\\ +\midrule + &medium&Ume Mincho\\ +%\smash{\raisebox{1.5ex}{\textit{mincho}}}% +%\smash{\raisebox{1.5ex}{\gt 明朝}}% + &bold&Ume Mincho\\ +\midrule + &&Ume Gothic*\\ + &\smash{\raisebox{1.5ex}{medium}}&Ume Gothic O5\\ +\cmidrule(l){2-3} +%\textit{gothic}% +%\gt ゴシック + &bold&Ume Gothic O5\\ + &heavy&Ume Gothic O5\\ +\midrule +%\textit{rounded gothic} +%\gt 丸ゴシック +&&Ume Gothic O5\\ +\bottomrule +\end{tabular} +\end{center} + +%\newpage + \item[sourcehan] Source Han Serif and Source Han Sans fonts (Language-specific OTF \textit{or} OTC) +% \\*[-\dimexpr\medskipamount+\baselineskip\relax] + \item[sourcehan-jp] Source Han Serif JP and Source Han Sans JP fonts (Region-specific Subset OTF) +\begin{center}\small +\def\AD#1#2{Source Han #1 #2&Source Han #1 JP #2}% +\begin{tabular}{cllll} +\toprule +\bf family&\bf series&\texttt{sourcehan}&\texttt{sourcehan-jp}\\ +\midrule + &medium&\AD{Serif}{Regular}\\ +%\smash{\raisebox{1.5ex}{\textit{mincho}}}% +%\smash{\raisebox{1.5ex}{\gt 明朝}}% + &bold&\AD{Serif}{Bold}\\ +\midrule + &&\AD{Sans}{Regular*}\\ + &\smash{\raisebox{1.5ex}{medium}} + &\AD{Sans}{Medium}\\ +\cmidrule(l){2-4} +%\smash{\raisebox{2ex}{\textit{gothic}}}% +%\smash{\raisebox{2ex}{\gt ゴシック}}% + &bold&\AD{Sans}{Bold}\\ + &heavy&\AD{Sans}{Heavy}\\ +\midrule +%\textit{rounded gothic} +%\gt 丸ゴシック +&&\AD{Sans}{Heavy}\\ +\bottomrule +\end{tabular} +\end{center} + + + \item[noto-otc] Noto Serif CJK and Noto Sans CJK fonts (OTC) +% \\*[-\dimexpr\medskipamount+\baselineskip\relax] + \item[noto-otf] Noto Serif CJK and Noto Sans CJK fonts (Language-specific OTF) +\begin{center}\small +\def\AD#1#2{Noto #1 CJK #2&Noto #1 CJK JP #2}% +\begin{tabular}{cllll} +\toprule +\bf family&\bf series&\texttt{noto-otc}&\texttt{noto-otf}\\ +\midrule + &medium&\AD{Serif}{Regular}\\ +%\smash{\raisebox{1.5ex}{\textit{mincho}}}% +%\smash{\raisebox{1.5ex}{\gt 明朝}}% + &bold&\AD{Serif}{Bold}\\ +\midrule + &&\AD{Sans}{Regular*}\\ + &\smash{\raisebox{1.5ex}{medium}} + &\AD{Sans}{Medium}\\ +\cmidrule(l){2-4} +%\smash{\raisebox{2ex}{\textit{gothic}}}% +%\smash{\raisebox{2ex}{\gt ゴシック}}% + &bold&\AD{Sans}{Bold}\\ + &heavy&\AD{Sans}{Black}\\ +\midrule +%\textit{rounded gothic} +%\gt 丸ゴシック +&&\AD{Sans}{Black}\\ +\bottomrule +\end{tabular} +\end{center} + \end{cslist} @@ -2264,16 +2431,16 @@ This range consists of the following Unicode ranges, \emph{except characters in \end{multicols} %<*en> \item[Range~3${}^{\text{\kern.1emJ}}$] Punctuations and Miscellaneous symbols. The block list is - indicated in Table~\ref{table-rng3}. + indicated in \autoref{tab:rng3}. % %<*ja> -\item[範囲3${}^{\text{\kern.1emJ}}$] 句読点と記号類.ブロックのリストは表\ref{table-rng3}% +\item[範囲3${}^{\text{\kern.1emJ}}$] 句読点と記号類.ブロックのリストは\autoref{tab:rng3}% に示してある. % \begin{table}[!tb] %\caption{Unicode blocks in predefined character range~3.}\medskip %\caption{文字範囲3に指定されているUnicodeブロック.} -\label{table-rng3} +\label{tab:rng3} \catcode`\"=13\def"#1#2#3#4{\texttt{U+#1#2#3#4}}%" \centering\small \begin{tabular}{llll} @@ -2317,12 +2484,12 @@ This range consists of the following Unicode ranges, \emph{except characters in \end{lstlisting} %\item[Range~5${}^{\text{A}}$] Surrogates and Supplementary Private Use Areas. %\item[範囲5${}^{\text{A}}$] 代用符号と補助私用領域. -%\item[Range~6${}^{\text{\kern.1emJ}}$] Characters used in Japanese. The block list is indicated in Table~\ref{table-rng6}. -%\item[範囲6${}^{\text{\kern.1emJ}}$] 日本語で用いられる文字.ブロックのリストは表\ref{table-rng6}に示す. +%\item[Range~6${}^{\text{\kern.1emJ}}$] Characters used in Japanese. The block list is indicated in \autoref{tab:rng6}. +%\item[範囲6${}^{\text{\kern.1emJ}}$] 日本語で用いられる文字.ブロックのリストは\autoref{tab:rng6}に示す. \begin{table}[!tb] %\caption{Unicode blocks in predefined character range~6.}\medskip %\caption{文字範囲6に指定されているUnicodeブロック.} -\label{table-rng6} +\label{tab:rng6} \catcode`\"=13\def"#1#2#3#4{\texttt{U+#1#2#3#4}}%" \centering\small \begin{tabular}{llll} @@ -2347,17 +2514,17 @@ This range consists of the following Unicode ranges, \emph{except characters in \end{table} %<*en> \item[Range~7${}^{\text{\kern.1emJ}}$] Characters used in CJK languages, but not included in Adobe-Japan1-6. -The block list is indicated in Table~\ref{table-rng7}. +The block list is indicated in \autoref{tab:rng7}. % %<*ja> \item[範囲7${}^{\text{\kern.1emJ}}$] CJK言語で用いられる文字のうち,Adobe-Japan1-6に 含まれていないもの. - ブロックのリストは表\ref{table-rng7}に示す. + ブロックのリストは\autoref{tab:rng7}に示す. % \begin{table}[!tb] %\caption{Unicode blocks in predefined character range~7.}\medskip %\caption{文字範囲7に指定されているUnicodeブロック.} -\label{table-rng7} +\label{tab:rng7} \catcode`\"=13\def"#1#2#3#4{\texttt{U+#1#2#3#4}}%" \centering\small \begin{tabular}{llll} @@ -2380,16 +2547,12 @@ 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}, -when you use traditional 8-bit fonts, such as the \Pkg{textcomp} package or the -\Pkg{marvosym} package. +when you use traditional 8-bit fonts, such as the \Pkg{marvosym} package. -For example, the codepoint \cs{textparagraph} which is provided by the \Pkg{textcomp} -package is 182. This codepoint corresponds \P\ (\text{U+00B6}) in Unicode. -Similarly, \cs{Frowny} which is provided by the \Pkg{marvosym} package has +For example, \cs{Frowny} which is provided by the \Pkg{marvosym} package has the same codepoint as \S\ (\text{U+00A7}). Hence, as previous versions of \LuaTeX-ja, if these characters are treated as -\text{JAchar}s, then \cs{textparagraph} produces ``ltjjachar`¶'' (in a Japanese font), -and \cs{Frowny} produces ``\ltjjachar`§'' (in a Japanese font). +\text{JAchar}s, then \cs{Frowny} produces ``\ltjjachar`§'' (in a Japanese font). To avoid such situations, the default setting of \LuaTeX-ja is changed in this release so that all characters \texttt{U+0080}--\texttt{U+00FF} are treated as \textbf{ALchar}. @@ -2404,22 +2567,16 @@ setting, you can use \cs{ltjalchar} and \cs{ltjjachar} respectively, as the foll % %<*ja> \paragraph{\texttt{U+0080}--\texttt{U+00FF}についての注意} -\LuaTeX-jaで,\Pkg{textcomp}パッケージや\Pkg{marvosym}パッケージ等,Unicodeフォントでなく +\LuaTeX-jaで,\Pkg{marvosym}パッケージ等,Unicodeフォントでなく 伝統的な8ビットフォントを用いる場合には注意が必要である. -例えば,\Pkg{textcomp}パッケージの提供する \cs{textparagraph} は, -符号位置が182,つまり \texttt{0xB6} であり,Unicodeではこの符号位置では\P\ (\text{U+00B6}) に対応する. -また,\Pkg{marvosym}パッケージの提供する \cs{Frowny} も,符号位置は167,つまりUnicodeにおける +例えば,\Pkg{marvosym}パッケージの提供する \cs{Frowny} も,符号位置は167,つまりUnicodeにおける \S\ (\text{U+00A7}) と同じ符号位置にある. 即ち,以前のバージョンのように,「前節の文字範囲8内の文字は\textbf{JAchar}」という設定で -あったとすると,上記の \cs{textparagraph} は和文フォントで「\ltjjachar`¶」を出力し, -また \cs{Frowny} は和文フォントで「\ltjjachar`§」を出力することになる. +あったとすると,上記の \cs{Frowny} は和文フォントで「\ltjjachar`§」を出力することになる. このような事態を避けるために,本バージョンからは \texttt{U+0080}--\texttt{U+00FF} の範囲の 文字は全て\textbf{ALchar}となるように初期設定を変更している. -特に影響を受けるのが,JIS~X~0208の一部分である文字範囲8内の文字であり, -\emph{\Pkg{fontspec}パッケージを読み込んだりして欧文記号としてこれらの文字の出力環境を整え -ないと,ソース中に直接記述しても出力されない}ことになる. なお,文字範囲の設定に関わらず1つの文字を\textbf{ALchar}, \textbf{JAchar}で出力したい場合には, 以下の例のようにそれぞれ \cs{ltjalchar},~\cs{ltjjachar} に該当文字の文字コードを渡せばよい. @@ -2430,6 +2587,7 @@ setting, you can use \cs{ltjalchar} and \cs{ltjjachar} respectively, as the foll \end{LTXexample} % + %\subsection{\Param{kanjiskip} and \Param{xkanjiskip}} %\subsection{\Param{kanjiskip}と\Param{xkanjiskip}} \label{subs-kskip} @@ -2692,24 +2850,29 @@ becuse a \emph{JAchar} is encapsulated by a horizontal box if needed. %<*ja> \paragraph{数式における挙動:\pTeX との違い} -\textbf{ALchar}のベースラインを補正する \Param{yalbaselineshift} パラメータは -ほぼ\pTeX における \cs{ybaselineshift} に対応しているものであるが, +\textbf{ALchar}のベースラインを補正する\Param{yalbaselineshift}, \Param{talbaselineshift}パラメータは +ほぼ\pTeX における \cs{ybaselineshift}, \cs{tbaselineshift} に対応しているものであるが, 数式中の挙動は異なっているので注意が必要である. -例えば,表\ref{tab:math_bsa}のように,数式中に明示的に現れた \cs{hbox} は, +例えば,\autoref{tab:math_bsa}のように,数式中に明示的に現れた \cs{hbox},~\cs{vbox} は,横組において \begin{itemize} \item 2015年以前の\pTeX では,ボックス全体が \cs{ybaselineshift} だとシフトされるので, - 表\ref{tab:math_bsa}中の``い''のように,ボックス中の和文文字は + \autoref{tab:math_bsa}中の``い''のように,ボックス中の和文文字は \ \cs{ybaselineshift} だけシフトされ,一方,``for all''のように, ボックス内の欧文文字は2重にシフトされることになる. \item 一方,\LuaTeX-jaではそのようなことはおこらず, - 数式中に明示的に現れた \cs{hbox} はシフトしない.そのため, - 表\ref{tab:math_bsa}中の``い''も``for all''も,それぞれ本文中に + 数式中に明示的に現れた \cs{hbox},~\cs{vbox} はシフトしない.そのため, + \autoref{tab:math_bsa}中の``い''も``for all''も,それぞれ本文中に 書かれたときと同じ上下位置に組まれる. なお,\TeX~Live~2016以降の\pTeX では改修がなされ,\LuaTeX-jaと 近い挙動になるようにしているが,数式中に直に書かれた``あ''のベースラインについては まだ違いが見られる. \end{itemize} + +なお,20170401.0版以降の\LuaTeX-jaでは,\cs{vcenter} によるボックスには +全体が\Param{yalbaselineshift}, \Param{talbaselineshift} パラメータが反映されるようにしている. +その方が結果が自然であることによる変更なのだが,結果的に\cs{vcenter} については\pTeX と同じ挙動となった. + \begin{table} \small\centering \caption{数式関係のベースライン補正($\Param{yalbaselineshift}=10\,\textrm{pt}$)} @@ -2762,6 +2925,7 @@ However, the penalty inserted after it is 10 which is the \Param{postbreakpenalt ``ア'', not 20. % %<*ja> +\newpage \subsection{禁則処理関連パラメータとOpenTypeのfont feature} 禁則処理や \Param{kanjiskip}, \Param{xkanjiskip} の挿入に関連したパラメータのうち \begin{quote} @@ -2801,7 +2965,7 @@ However, the penalty inserted after it is 10 which is the \Param{postbreakpenalt \subsection{予備知識:\pTeX と\upTeX における \cs{kcatcode}} \pTeX,\upTeX においては,和文文字が制御綴内で利用できるかどうか は \cs{kcatcode} の値によって決定されるのであった. -詳細は表\ref{table-kcat}を参照されたい. +詳細は\autoref{tab:kcat}を参照されたい. % %<*en> \section{\cs{catcode} in \LuaTeX-ja} @@ -2809,13 +2973,13 @@ However, the penalty inserted after it is 10 which is the \Param{postbreakpenalt \subsection{Preliminaries: \cs{kcatcode} in \pTeX\ and \upTeX} In \pTeX~and~\upTeX, the value of \cs{kcatcode} determines whether a Japanese character can be used in a control word. -For the detail, see Table~\ref{table-kcat}. +For the detail, see \autoref{tab:kcat}. % \begin{table}[t] \small \caption{\cs{kcatcode} in \upTeX} -\label{table-kcat} +\label{tab:kcat} %\medskip \noindent\hfill @@ -2977,7 +3141,7 @@ for \LuaTeX, \emph{to match the \cs{catcode} setting with that of \XeTeX.} %\caption{Difference of the set of non-kanji JIS~X~0208 characters which can be used in a control word} %\caption{制御綴中に使用出来るJIS~X~0208非漢字の違い} %\medskip -\label{table-kcat-diff} +\label{tab:kcat-diff} \def\D#1#2#3#4{% {\fboxsep0pt\fcolorbox{cyan}{white}% {\large\char"#1#2#3#4}}\ (\texttt{U+#1#2#3#4})} %" @@ -3038,7 +3202,7 @@ for \LuaTeX, \emph{to match the \cs{catcode} setting with that of \XeTeX.} \subsection{Non-kanji characters in a control word} Because the engine differ, so non-kanji JIS~X~0208 characters which can be used in a control word differ in \pTeX, in \upTeX,~and~in \LuaTeX-ja. -Table~\ref{table-kcat-diff} shows the difference. +\autoref{tab:kcat-diff} shows the difference. Except for four characters ``・'',~``゛'', ``゜'',~``゠'', \LuaTeX-ja admits more characters in a control word than \upTeX. @@ -3051,7 +3215,7 @@ For the detail, see \url{https://github.com/h-kitagawa/kct}. エンジンが異なるので,\pTeX, \upTeX, \LuaTeX-ja において制御綴中に使用可能なJIS~X~0208の文字は異なる. -異なっているところだけを載せると,表\ref{table-kcat-diff}のようになる. +異なっているところだけを載せると,\autoref{tab:kcat-diff}のようになる. 「・」「゛」「゜」「゠」を除けば,\LuaTeX-jaでは\upTeX より多くの文字が 制御綴に使用可能になっている. @@ -3155,7 +3319,7 @@ Example&\obox{\yoko}&\obox{\tate}&\obox{\dtou}&\obox{\utod}\\ \end{table} %<*en> -\LuaTeX-ja supports four directions, as shown in Table~\ref{tab-dir}. +\LuaTeX-ja supports four directions, as shown in \autoref{tab-dir}. The second column (\emph{yoko} direction) is just horizontal writing, and the third column (\emph{tate} direction) is vertical writing. The fourth column (\emph{dtou} direction) is actually a hidden feature of \pTeX. @@ -3168,7 +3332,7 @@ only when the current list is null. Also, the direction of a math formula is cha % %<*ja> -\LuaTeX-jaがサポートする組方向は表\ref{tab-dir}に示す4つである. +\LuaTeX-jaがサポートする組方向は\autoref{tab-dir}に示す4つである. 4列目の \cs{dtou} は聞き慣れない命令だと思うが, 実は\pTeX に同名の命令が(ドキュメントには書かれていないが)存在する. Down-TO-Upの意味なのだろう.\cs{dtou} を使用する機会はないだろうが, @@ -3196,7 +3360,7 @@ The below is an example. また横組に戻る% yoko \end{LTXexample} -Table~\ref{tab-diffdir} shows how a box is arranged when +\autoref{tab-diffdir} shows how a box is arranged when the direction inside the box and that outside the box differ. % %<*ja> @@ -3217,7 +3381,7 @@ the direction inside the box and that outside the box differ. \end{LTXexample} 異なる組方向のボックスを配置した場合にどう組まれるかの仕様も,\pTeX を -踏襲している.表\ref{tab-diffdir}に示す. +踏襲している.\autoref{tab-diffdir}に示す. % \begin{table}[t] @@ -3530,7 +3694,7 @@ These commands set the dimension of \cs{box}. One does not need \ltjsetwd42 20pt, \ltjsetwd42=20pt, \ltjsetwd=42 20pt, \ltjsetwd=42=20pt \end{lstlisting} -設定値は「横組」「縦組及び \cs{utod} 方向」「\cs{dtou} 方向」 +設定値は「横組」「縦組及びutod方向」「dtou方向」 の3種ごとに独立して記録される.参考として,Gitリポジトリ内の \verb+test/test55-boxdim_diffdir.{tex,pdf}+ を挙げておく. @@ -3804,10 +3968,10 @@ The following JFMs are shipped with \LuaTeX-ja: % \end{description} %<*en> -The difference among these three~JFMs is shown in Table~\ref{tab-difjfm}. +The difference among these three~JFMs is shown in \autoref{tab-difjfm}. % %<*ja> -これら3つのJFMの違いは表\ref{tab-difjfm}に示した.表中の文例の一部には, +これら3つのJFMの違いは\autoref{tab-difjfm}に示した.表中の文例の一部には, \cite{min10}の図3,~4のものを用いた. % @@ -3837,11 +4001,11 @@ Sometimes there is a need that \ldots. \item[jfmvar=] 標準では,JFMとサイズが同じで, 実フォントだけが異なる2つの和文フォントは「区別されない」.例えば -図\ref{fig:jfmvar}において,最初の「)」と「【」の実フォントは異なるが, +\autoref{fig:jfmvar}において,最初の「)」と「【」の実フォントは異なるが, JFMもサイズも同じなので,普通に「)【」と入力した時と同じように半角空きとなる. しかし,JFMとサイズが同じであっても,\texttt{jfmvar} キーの異なる -2つの和文フォント,例えば図\ref{fig:jfmvar}で言う \cs{F} と \cs{H}, +2つの和文フォント,例えば\autoref{fig:jfmvar}で言う \cs{F} と \cs{H}, は「区別される」.異なる和文フォントに異なる \texttt{jfmvar} キーを割り当て, かつ\Param{differentjfm}パラメータを \texttt{both} に設定すれば, \pTeX と似た状況で組版されることになる. @@ -3874,7 +4038,7 @@ JFMもサイズも同じなので,普通に「)【」と入力した時と Some fonts have information for inter-glyph spacing. This version of \LuaTeX-ja treats kerning spaces like an italic correction; any glue and/or kern from the JFM and a kerning space can coexist. -See Figure~\ref{fig:kern-jfm} for detail. +See \autoref{fig:kern-jfm} for detail. Note that in \cs{setmainjfont} etc.\ which are provided by \Pkg{luatexja-fontspec} package, kerning option is set \emph{off} (\texttt{Kerning=Off}) by default, @@ -3885,7 +4049,7 @@ because of the compatibility with previous versions of \LuaTeX-ja. このカーニング情報は以前の\LuaTeX-ja とはあまり相性が良くなかったが, 本バージョンではカーニングによる空白はイタリック補正と同様に扱うことになっている. つまり,カーニング由来の空白とJFM由来のグルー・カーンは同時に入りうる. -図\ref{fig:kern-jfm}を参照. +\autoref{fig:kern-jfm}を参照. \begin{itemize} \item \emph{\cs{jfont} や, NFSS2用の命令(\ref{ssec-chgfnt}節,\ref{ssec-nfsspat}節)における指定では @@ -3970,12 +4134,12 @@ JFM中における \texttt{kanjiskip\_natural}, \texttt{kanjiskip\_stretch},\ %\subsection{\cs{tfont} 命令} +{\catcode`\<=12\catcode`\>=12 \begin{table}[t] %\caption{Differences between vertical JFMs shipped with \LuaTeX-ja} %\caption{\LuaTeX-ja に同梱されている縦組用 JFM の違い} %\medskip \label{tab-difjfm-tate} -\catcode`\<=12\catcode`\>=12 \ltjsetparameter{jacharrange={+3}} \small \def\r#1#2{% @@ -4012,6 +4176,7 @@ JFM中における \texttt{kanjiskip\_natural}, \texttt{kanjiskip\_stretch},\ \end{minipage} \ltjsetparameter{jacharrange={-3}} \end{table} +} %<*en> ... @@ -4032,7 +4197,7 @@ JFM中における \texttt{kanjiskip\_natural}, \texttt{kanjiskip\_stretch},\ \end{lstlisting} \item \ref{ssec-math}節で述べる,数式中の和文フォントには縦組用和文フォントは指定できない. \item \texttt{jfm=}\ の部分には縦組用JFMを指定する. -以下の縦組用JFMが\LuaTeX-jaには同梱されており,違いを表\ref{tab-difjfm-tate}に示した. +以下の縦組用JFMが\LuaTeX-jaには同梱されており,違いを\autoref{tab-difjfm-tate}に示した. \begin{description} \item[\tt jfm-ujisv.lua] \LuaTeX-jaの標準縦組用JFMである.このJFMは\upTeX で 用いられるUTF/OTFパッケージ用の和文用TFMである \verb+upnmlminr-v.tfm+ を @@ -4173,6 +4338,17 @@ floating-point numbers in design-size unit. \begin{cslist}[style=standard] +\item[version=$1\mathrel{\textrm{or}}2$] +%(optional, default value is~1) +%(任意,既定値は1) + +%<*en> +The version JFM. Currently 1~and~2 are supported +% +%<*ja> +JFMのバージョン.1または2がサポートされる. +% + \item[dir=] %(required) %(必須) @@ -4300,9 +4476,9 @@ This field is a list of characters which are in this character \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)\\ +\texttt{width} field&\multicolumn{2}{c}{the width of the ``real'' glyph}\\ +\texttt{height} field&the height of the ``real'' glyph&0.0\\ +\texttt{depth} field&the depth of the ``real'' glyph&0.0\\ \midrule \texttt{italic} field&\multicolumn{2}{c}{0.0}\\ \bottomrule @@ -4312,7 +4488,7 @@ Direction of JFM&\textbf{\texttt{'yoko'} (horizontal)}&\multicolumn{1}{l}{\textb \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. The default values are shown in Table~\ref{tab-wid}. +as values of these fields. The default values are shown in \autoref{tab-wid}. % %<*ja> \begin{table}[t] @@ -4321,9 +4497,9 @@ as values of these fields. The default values are shown in Table~\ref{tab-wid}. \toprule JFM書字方向&\emph{\texttt{'yoko'}(横組)}&\multicolumn{1}{l}{\emph{\texttt{'tate'}(縦組)}}\\ \midrule -\texttt{width}&「実際のグリフ」の幅&1.0(全角)\\ -\texttt{height}&「実際のグリフ」の高さ&0.5(二分)\\ -\texttt{depth}&「実際のグリフ」の深さ&0.5(二分)\\ +\texttt{width}&\multicolumn{2}{c}{「実際のグリフ」の幅}\\ +\texttt{height}&「実際のグリフ」の高さ&0.0\\ +\texttt{depth}&「実際のグリフ」の深さ&0.0\\ \midrule \texttt{italic}&\multicolumn{2}{c}{0.0}\\ \bottomrule @@ -4349,7 +4525,7 @@ These fields are for adjusting the position of the ``real'' glyph. Legal treated as~0, and \texttt{align} field is treated as \texttt{'left'}. The effects of these 3~fields are indicated in -Figures \ref{fig-pos}~and~\ref{fig-pos-tate}. +\autoref{fig:pos}~and~\autoref{fig:pos-tate}. % %<*ja> これらのフィールドは実際のグリフの位置を調整するためにある. @@ -4357,8 +4533,8 @@ Figures \ref{fig-pos}~and~\ref{fig-pos-tate}. \texttt{'right'} のいずれかである.もしこれら3つのフィールドのうちの1つが省かれた 場合,\texttt{left} と \texttt{down} は0,\texttt{align} フィールドは \ \texttt{'left'} であるものとして扱われる. -これら3つのフィールドの意味については図\ref{fig-pos}(横組用和文フォント), -図\ref{fig-pos-tate}(縦組用和文フォント)で説明する. +これら3つのフィールドの意味については\autoref{fig:pos}(横組用和文フォント), +\autoref{fig:pos-tate}(縦組用和文フォント)で説明する. % %<*en> @@ -4475,7 +4651,7 @@ Furthermore, the glyph is shifted according to values of fields %The position of the real glyph (horizontal Japanese fonts) %横組和文フォントにおける「実際の」グリフの位置 } -\label{fig-pos} +\label{fig:pos} \end{figure} \begin{figure}[!tb] \begin{minipage}{0.4\textwidth}% @@ -4556,7 +4732,7 @@ Furthermore, the glyph is shifted according to values of fields %The position of the real glyph (vertical Japanese fonts) %縦組和文フォントにおける「実際の」グリフの位置 } -\label{fig-pos-tate} +\label{fig:pos-tate} \end{figure} \item[kern={\{[$j$]=, [$j'$]=\{, [ratio=]\}, ...\}}] @@ -4598,12 +4774,16 @@ we specify to $0.25/(0.5+0.25)=1/3$. 次のキーを指定できる, \begin{cslist}[style=standard] \item[priority=] - \Pkg{luatexja-adjust} による優先順位付き - 行長調整(\ref{ssec-adj}節)の際に使われる値であり, -行調整処理におけるこのglueの優先 - 度を$-2$から$+2$の間の整数で指定する.大きい値ほど「伸びやすく,縮みやすい」 - ことを意味する.省略時の値 - は0であり,範囲外の値が指定されたときの動作は未定義である. + \Pkg{luatexja-adjust}による優先順位付き + 行長調整(\ref{ssec-adj}節)において,このグルーの優先度を指定する.許される値は以下の通り: + \begin{description} + \item[バージョン1のとき] $-4$から$+3$の間の整数 + \item[バージョン2のとき] $-4$から$+3$の間の整数の2つ組\texttt{\{, \}}か, + または$-4$から$+3$の間の整数., はそれぞれこのグルーが伸びるときの優先度,縮むときの + 優先度であり,単に整数$i$が指定された場合は\texttt{\{$i$, $i$\}}であると解釈される. + \end{description} + ここで指定する値は,大きい値ほど「先に伸ばされる」「先に縮ませる」ことを意味しており,省略時の値 + は0である.範囲外の値が指定されたときの動作は未定義である. \item[kanjiskip\_natural=\textrm{, }% kanjiskip\_stretch=\textrm{, }kanjiskip\_shrink=]\leavevmode \label{pg:ksp_nat} @@ -4640,10 +4820,12 @@ In case of glue, one can specify following additional keys in each \texttt{[$j$] subtable: \begin{cslist}[style=standard] \item[priority=] -An integer in $[-2,2]$ (treated as 0 if omitted), and this is +An integer in $[-4,3]$ (treated as 0 if omitted), or +a pair of these integers \texttt{\{, \}} (version~2 only). +This is used only in line adjustment with priority by \Pkg{luatexja-adjust} (see Subsection~\ref{ssec-adj}). Higher value means the glue is easy to stretch, -and is also easy to shrink. +and is also easy to shrink. \item[kanjiskip\_natural=\textrm{, }% kanjiskip\_stretch=\textrm{, }kanjiskip\_shrink=]\leavevmode @@ -4678,12 +4860,37 @@ Hence we have the following result: \item[end\_stretch=, end\_shrink=] %<*ja> -(任意) +(任意,バージョン1のみ) 優先順位付き行長調整が有効であり,かつ現在の文字クラスの文字が行 末に来た時に,行長を詰める調整・伸ばす調整のた めにこの文字と行末の間に挿入可能なカーンの大きさを指定する. % +%<*en> +(optional, version~1 only) +% + + \item[end\_adjust=\{, , ...\}] +%<*ja> +(任意,バージョン2のみ) + +優先順位付き行長調整が有効であり,かつ現在の文字クラスの文字が + 行末に来た時に,この文字と行末の間には指定された値のいずれかの大きさのカーンが + 挿入される(\autoref{ssec-adj}参照). + +バージョン1における +\begin{lstlisting}[escapechar=\$] + end_stretch = $a$, end_shrink = $b$ +\end{lstlisting} +という指定は,バージョン2では次の指定と同じになる. +\begin{lstlisting}[escapechar=\$] + end_adjust = {$-b$, 0.0, $a$} +\end{lstlisting} +もし真ん中の \texttt{0.0} がない場合は,$a$か$-b$かいずれかのカーンが常に行末に追加される. +% +%<*en> +(optional, version~2 only) +% \end{cslist} @@ -4891,7 +5098,7 @@ an external package is needed to support this in plain \TeX\ and %<*en> \LuaTeX-ja's handling of Japanese fonts in math formulas is similar; -Table~\ref{tab-math} shows counterparts to \TeX's primitives for math +\autoref{tab-math} shows counterparts to \TeX's primitives for math font families. There is no relation between the value of \cs{fam} and that of \cs{jfam}; with appropriate settings, you can set both \cs{fam} and \cs{jfam} to the same value. @@ -4901,7 +5108,7 @@ a \emph{horizontal} Japanese font. % %<*ja> \LuaTeX-jaの数式中での和文フォントの扱いも同様である. -表\ref{tab-math}は数式フォントファミリに対する \TeX のプリミティブと対応する +\autoref{tab-math}は数式フォントファミリに対する \TeX のプリミティブと対応する ものを示している.\cs{fam} と \cs{jfam} の値の間には関係はなく, 適切な設定の下では \cs{fam} と \cs{jfam} の両方に同じ値を設定することができる. \Param{jatextfont} 他の第2引数は,\cs{jfont} で定義された @@ -5027,16 +5234,9 @@ For $i\in\omega$, \texttt{char\_type[$i$]} is information of characters whose cl 0&\text{\texttt{'left'} (default)}\\0.5&\text{\tt 'middle'}\\1&\text{\tt 'right'} \end{cases} \] -\item For $j\in \omega$, \texttt{[$j$]} stores a kern or a glue which will be inserted -between character class~$i$ and class~$j$. - -If a kern will be inserted, the value of this field is \texttt{[$j$]=\{false, , \}}, -where is a node\footnote{% - This version of \LuaTeX-ja uses ``direct access - model'' for accessing nodes, if possible. }. -If a glue will be inserted, we have \texttt{[$j$]=\{false, , , \}}, -where is also a node, and $\text{}=\textit{from\_jfm}+\text{}$. \end{itemize} +For $i$,~$j\in \omega$, \texttt{char\_type[$i$][$j$]} stores a kern or a glue which will be inserted +between character class~$i$ and class~$j$. \end{description} % %<*ja> @@ -5069,23 +5269,34 @@ JFMで指定されているそれぞれの値をスケーリングしたもの \end{cases} \] のいずれかの値をとる. -\item $j\in \omega$に対して,\texttt{[$j$]} は文字クラス$i$の文字と$j$の文字の間に挿入されるkern - やglueを格納している. -間に入るものがkernであれば,このフィールドの値は\ -\texttt{[$j$]=\{false, , \}} である. -はkernを表すノードそのものである\footnote{% +\end{itemize} +$i$,~$j\in \omega$に対して,\texttt{char\_type[$i$][$j$]} は +文字クラス$i$の文字と$j$の文字の間に挿入されるグルーやカーンを格納している. +\begin{itemize} + \item 間に入るものがカーンであれば,この値は\ +\texttt{[$j$]=\{[1]=, ratio=\}} であり, +はカーンを表すノードそのものである\footnote{% 本バージョンではノードのアクセス手法にdirect access modelを用いている.そのため,例えば\LuaTeX\ beta-0.78.2では,単なる自然数のようにし か見えないことに注意. }. -glueであれば,\texttt{[$j$]=\{false, , , \}} である. -はglueの長さを表すノードそのものであり, - $\text{}=\textit{from\_jfm}+\text{}$である. + \item グルーであれば,この値は以下のキーを持つテーブルである. + \begin{description} + \item[\texttt{width}, \texttt{stretch}, \texttt{shrink}] + グルーのそれぞれ自然長,伸び量,縮み量をsp単位で表したもの. + \item[\texttt{priority}] (バージョン2以降の)JFMでの指定 \texttt{\{,\}} を + \[ + (\text{}+4)\cdot 8+\text{}+4 + \] + として0--63の整数にパックしたもの. + \item[\texttt{ratio}, \texttt{kanjiskip\_natural}, \texttt{kanjiskip\_stretch}, \texttt{kanjiskip\_shrink}] + JFM中の同名のフィールドの値がそのまま使われている. + \end{description} \end{itemize} \item[ascent\textrm{, }descent] …… \item[chars\_cbcache] -…… +文字クラス決定の処理で.キャッシュとして使われる. \end{cslist} % @@ -5924,6 +6135,65 @@ With the help of this example, we remark the specification of \cs{inhibitglue}: \end{itemize} +\subsection{\cs{ltjfakeboxbdd}, \cs{ltjfakeparbegin}} +%<*en> +Sometimes \texttt{'parbdd'}~and~\texttt{'boxbdd'} specifications~look like ``fail'', +especially in paragraphs inside list environments. +This is because \cs{everypar} inserts some nodes such as boxes and kerns, so +the ``first letter'' in a paragraph is in fact not the first letter. +% +%<*ja> +リスト環境内での\cs{item}で始まる各項目などでは, +「段落最初の鍵括弧が余計に半角字下げされる」など, +JFMにある\texttt{'parbdd'}, \texttt{'boxbdd'}の指定が見かけ上破綻していることがある. + +これは\TeX が\cs{everypar}を用いて段落開始時に記号類や空白などを挿入してしまっているため, +段落最初の鍵括弧が実際には段落最初のノードではないことに起因する.以下に例を示した. +% +\begin{LTXexample}[width=0.3\textwidth] +\parindent1\zw +\noindent ああああああああ\par % for comparison +「ああああああ \par % normal paragraph + +\everypar{\null} +「ああああああ \par % ??? +\end{LTXexample} +%<*en> +\cs{ltjfakeboxbdd}~and~\cs{ltjfakeparbegin} primitives resolve this situation. +\begin{itemize} + \item \cs{ltjfakeparbegin} creates a node which indicates + ``beginning of an indented paragraph'' to the insertion process of \textbf{JAglue}. + \item \cs{ltjfakeboxbdd} creates a node which indicates + ``beginning/ending of a box'' to the insertion process of \textbf{JAglue}. +\end{itemize} +As an example, the example above can be improved as follows: +% +%<*ja> +\cs{ltjfakeboxbdd}, \cs{ltjfakeparbegin}はこの状況を改善する命令である. +実際には\cs{everypar}の末尾にこれらを追加するという使い方がほとんどになるだろう. +\begin{itemize} + \item \cs{ltjfakeparbegin}は,実行された箇所が「インデントあり段落の開始」であると\LuaTeX-jaの + 和文処理グルー挿入処理に認識させる.この命令の直前に\textbf{JAchar}があった場合, + この文字の後ろに入るグルー等の処理については未定義である + \footnote{% + この命令と同等の内容は,\cs{dirrctlua}の形で\Pkg{ltjsclasses}内で以前から使われていた. + 一般ユーザでも利用しやすくするため,20170505.0版では新たに命令として定義した. + }. + \item \cs{ltjfakeboxbdd}は,実行された箇所が「ボックスの先頭と末尾」であると\LuaTeX-jaの + 和文処理グルー挿入処理に認識させる. +\end{itemize} +例えば,先ほどの例に対して適用すると,次のようになる. +% +\begin{LTXexample}[width=0.3\textwidth] +\parindent1\zw +\noindent ああああああああ\par % for comparison +「ああああああ \par % normal paragraph + +\everypar{\null\ltjfakeparbegin} +「ああああああ \par +\end{LTXexample} + + \subsection{\cs{ltjdeclarealtfont}} \label{ssec-altfont} %<*en> @@ -6013,7 +6283,6 @@ are typeset by \cs{piyo}. \end{LTXexample} % - %\section{Commands for \LaTeXe} %\section{\LaTeXe 用の命令} @@ -6261,7 +6530,7 @@ characters in of the Japanese font (we say the \emph{base font}) which specified by first 4 arguments are typeset by the Japanese font which specified by fifth to eighth arguments (we say the \emph{alternate font}). -An example is shown in Figure~\ref{fig:altkanji}. +An example is shown in \autoref{fig:altkanji}. \begin{itemize} \item @@ -6456,6 +6725,64 @@ to use the default family for font substitution. 和文・欧文の両方のフォントファミリをに設定し,代用フォントが使われるに任せることにする. % +%<*en> +\subsection{Notes on \cs{DeclareTextSymbol}} +From \LaTeX~2017/01/01, the standard encoding of \LuaLaTeX\ is changed to the \texttt{TU} +encoding. This menas that symbols defined by \texttt{T1}~and~\texttt{TS1} encodings can be used +without loading any package. To produces these symbols in alphabetic fonts in \LuaTeX-ja, +\LuaTeX-ja patches \cs{DeclareTextSymbol}, and reloads \texttt{tuenc.def}. + +Under original definition of \cs{DeclareTextSymbol}, +internal commands which is defined by \cs{DeclareTextSymbol} (such as \cs{T1\cs{textquotedblleft}}) +are \textit{chardef} tokens. However, this no longer holds in \LuaTeX-ja; +for example, the meaning of \cs{TU\cs{textquotedblleft}} is \cs{ltjalchar8220\ltjalchar"2423 }. +% +%<*ja> +\subsection{\cs{DeclareTextSymbol}使用時の注意} +\LaTeX~(2017/01/01)以降では,\texttt{TU}エンコーディングが標準となり,特に何もしなくても +\texttt{T1},~\texttt{TS1}エンコーディングで定義されていた記号類が +使えるようになった.\LuaTeX-jaではこれらの命令によって記号が欧文フォントで出力されるようにするため, +\cs{DeclareTextSymbol}命令を改変し,そして\texttt{TU}エンコーディングの定義である +\texttt{tuenc.def}を再読込している. + +従来は \cs{DeclareTextSymbol} で内部的に定義された\cs{T1\cs{textquotedblleft}}といった命令は +\textit{chardef}トークンであった.しかし前段落で述べた改変によりもはやそうではなくなっており,例えば +\cs{TU\cs{textquotedblleft}}は \cs{ltjalchar8220\ltjalchar"2423 } という定義になっている.%" +% + +\begin{table}[t] + \centering\small + \caption{strut}\label{tab:strutbox} + \begin{tabular}{llcccl} + \toprule + \textbf{box}&\textbf{direction}&\textbf{width}&\textbf{height}&\textbf{depth} + &\textbf{user command}\\ + \midrule + \cs{ystrutbox}&yoko&0&0.7\cs{baselineskip}&0.3\cs{baselineskip}&\cs{ystrut}\\\midrule + \cs{tstrutbox}&tate, utod&0&0.5\cs{baselineskip}&0.5\cs{baselineskip}&\cs{tstrut}\\\midrule + \cs{dstrutbox}&dtou&0&0.7\cs{baselineskip}&0.3\cs{baselineskip}&\cs{dstrut}\\\midrule + \cs{zstrutbox}&---&0&0.7\cs{baselineskip}&0.3\cs{baselineskip}&\cs{zstrut}\\\bottomrule + \end{tabular} +\end{table} +%<*en> +\subsection{\cs{strutbox}} +As \pLaTeX~(2017/04/08 or later), \cs{strutbox} is \emph{a macro} which is expanded to one of +\cs{ystrutbox},~\cs{tstrutbox},~and~\cs{dstrutbox} +(all of them are shown in \autoref{tab:strutbox}), according to the current direction. +Similarly, \cs{strut} now uses one of these boxes. +% +%<*ja> +\subsection{\cs{strutbox}} +\pLaTeX~2017/04/08以降と同じように, +\cs{strutbox}は現在の組方向によって\cs{ystrutbox}, \cs{tstrutbox}, \cs{dstrutbox}の +いずれかに展開される\emph{マクロ}となっている(これらについては\autoref{tab:strutbox}参照). +同様に\cs{strut}もこの3\nobreak ボックスのいずれかを組方向によって使い分けるようになっている. + +\cs{zstrutbox}はutod方向(\pTeX でいう縦数式ディレクション)で使われる支柱ボックスであるが, +実際に使われるのは\cs{zstrut}が明示的に発行された時,そして +\Pkg{lltjext}パッケージで追加される組方向指定で \texttt{} を指定した時,および +周囲が縦組の状況で \texttt{} を指定した時に限られている. +% %<*en> \section{Addon packages} @@ -6557,22 +6884,22 @@ The \texttt{TateFeatures} key specifies font features which are only turned~on i 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}. +A demonstrarion is shown in \autoref{fig:yokotate-fontspec}. % %<*ja> 縦組において使用されるフォントや,縦組においてのみ適用されるフォント機能達を -指定する.使用例は図\ref{fig:yokotate-fontspec}参照. +指定する.使用例は\autoref{fig:yokotate-fontspec}参照. % \item[YokoFeatures=\{\}] %<*en> The \texttt{YokoFeatures} key specifies font features which are only turned~on in horizontal writing,. -A demonstrarion is shown in Figure~\ref{fig:yokotate-fontspec}. +A demonstrarion is shown in \autoref{fig:yokotate-fontspec}. % %<*ja> 同様に,横組においてのみ適用されるフォント機能達を -指定する.使用例は図\ref{fig:yokotate-fontspec}参照. +指定する.使用例は\autoref{fig:yokotate-fontspec}参照. % @@ -6621,11 +6948,11 @@ AltFont = { %<*en> Each sublist should have the \texttt{Range} key (sublist which does not contain \texttt{Range} key is simply ignored). -A demonstrarion is shown in Figure~\ref{fig:altkanji-fontspec}. +A demonstrarion is shown in \autoref{fig:altkanji-fontspec}. % %<*ja> 各部分リストには \texttt{Range} キーが必須である(含まれない部分リストは -単純に無視される).指定例は図\ref{fig:altkanji-fontspec}に示した. +単純に無視される).指定例は\autoref{fig:altkanji-fontspec}に示した. % \end{cslist} @@ -6662,7 +6989,7 @@ one can specify \texttt{AltFont} inside \texttt{YokoFeatures},~\texttt{TateFeatu Note that features which are specified in \texttt{YokoFeatures}~and~\texttt{TateFeatures} are always interpreted \emph{after} other ``direction-independent'' features. -This explains why \cs{addjfontfeatures} at~line~6 in~Figure~\ref{fig:yokotate-fontspec} +This explains why \cs{addjfontfeatures} at~line~6 in~\autoref{fig:yokotate-fontspec} has no effect, because a color specification is already done in \texttt{YokoFeatures}~and~\texttt{TateFeatures} keys. % @@ -6694,7 +7021,7 @@ BoldFeatures = { 指定することは可能であり.また\ \texttt{YokoFeatures},~\texttt{TateFeatures} キーの 中身に \texttt{AltFont} を指定することができる. -また,図\ref{fig:yokotate-fontspec}後半部では6行目の色の指定が効かず, +また,\autoref{fig:yokotate-fontspec}後半部では6行目の色の指定が効かず, 2行目で指定した\ \texttt{YokoFeatures},~\texttt{TateFeatures}\ による色の指定が有効になっ たままである.これは\emph{\ \texttt{YokoFeatures},~\texttt{TateFeatures}\ による OpenType機能指定は @@ -6706,24 +7033,31 @@ OpenType機能指定は \subsection{\Pkg{luatexja-otf}} \label{ssec-ltjotf} %<*en> -This optional package supports typesetting characters in -Adobe-Japan1 character collection -(or other CID character collection, if the font is supported). +This optional package supports typesetting glyphs +by specifying a CID number. The package \Pkg{luatexja-otf} offers the following 2~low-level commands: % %<*ja> -この追加パッケージはAdobe-Japan1(フォント自身が持っていれば, -別のCID文字セットでも可)の文字の出力をサポートする. +この追加パッケージはCID番号による文字の出力をサポートする. \Pkg{luatexja-otf}は以下の2つの低レベルコマンドを提供する: % \begin{cslist} \item[\cs{CID}\{\}] %<*en> -Typeset a character whose CID number is . +Typeset a glyph whose CID number is . +If the Japanese font is neither Adobe-Japan1,~Adobe-GB1, Adobe-CNS1,~nor~Adobe-Korea1 CID-keyed font, +\LuaTeX-ja treats that is a CID number of Adobe-Japan1 character collection, +and tries to typeset a ``most suitable glyph''. % %<*ja> CID番号がの文字を出力する. +もし現在の和文フォントがAdobe-Japan1,~Adobe-GB1, Adobe-CNS1,~Adobe-Korea1の + いずれのCID-keyed fontでもない場合,はAdobe-Japan1のCID番号であると解釈し + 「適切なグリフ」\footnote{% + 例えばフォントにIVDコレクションAdobe-Japan1が含まれていれば,その情報を用いて + グリフを選択する. +}を出力する. % \item[\cs{UTF}\{\}] @@ -6802,84 +7136,6 @@ JFMの\texttt{chars}テーブルのエントリとして \verb+'AJ1-xxx'+ の形 正しく半角幅で組むために利用されている. % -%<*en> -\paragraph{IVS support} -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 by the \Pkg{luatexja-otf} package is experimental. -If you want to enable IVS support, load -\Pkg{luatexja-otf} and execute the following:} -% -%<*ja> -\paragraph{IVSサポート} -最近のOpenTypeフォントやTrueTypeフォントには, -\texttt{U+E0100}--\texttt{U+E01EF}の範囲の「文字」 -(漢字用異体字セレクタ)を後置することによって -字形を指定する仕組み(IVS)が含まれている. -執筆時点の2013年12月では,\Pkg{luaotfload}や\Pkg{fontspec}パッケージ類は -IVSに対応してはいないようである.これらのパッケージで対応してくれるのが理想的だが, -それまでのつなぎとして,\Pkg{luatexja-otf}パッケージ内にIVS対応を仕込んでおいた. - -\medskip - -\emph{\Pkg{luatexja-otf}によるIVS対応は試験的なものである. -有効にするには, -\Pkg{luatexja-otf}パッケージを読み込んだ上で以下の命令を実行する% -\footnote{この命令を2回以上実行しても意味がない.}:} -% -\begin{lstlisting} -\directlua{luatexja.otf.enable_ivs()} -\end{lstlisting} -% すると,上の命令を実行した箇所以降では,以下のようにIVSによる字形指定が有効となる. -% After executing the command above, you can use IVS like the following: -\begin{LTXexample} -\Large -\jfontspec{KozMinPr6N-Regular} -奈良県葛󠄀城市と,東京都葛󠄁飾区.\\ -こんにちは,渡 -邉󠄀邉󠄁邉󠄂邉󠄃邉󠄄 -邉󠄅邉󠄆邉󠄇邉󠄈邉󠄉 -邉󠄊邉󠄋邉󠄌邉󠄍邉󠄎 -さん. -\end{LTXexample} -%<*ja> -左上側の入力においては,漢字用異体字セレクタを明示するため, -例えばVariation~Selector~18 (\texttt{U+E0101})を\IVSB{18}のように表記している. -% -\medskip - -%<*en> -Specifying glyph variants by IVS precedes glyph replacement by font features. -For example, only ``葛'' in ``葛西'' is changed by font features -\texttt{jp78}~or~\texttt{jp90}, which does not followed by any variation selector. -% -%<*ja> -また,IVSによる字形指定は,OpenType機能によるそれに優先されることとした. -下の例において,\texttt{jp78}, \texttt{jp90} 指定で字形が変化した文字は -異体字セレクタが続いていない「葛西」中の「葛」のみである. -% -\begin{LTXexample} - \def\TEST#1{% - {\jfontspec[#1]{KozMinPr6N-Regular}% - 葛󠄀城市,葛󠄁飾区,葛西}\\} - 指定なし:\TEST{} - \texttt{jp78}:\TEST{CJKShape=JIS1978} - \texttt{jp90}:\TEST{CJKShape=JIS1990} -\end{LTXexample} - -%<*ja> -現状では,\TeX 側のインターフェースとなる \Pkg{luatexja-otf.sty} は一切変更していない -ので,ZRさんによる\Pkg{PXipamjm}パッケージ% -\footnote{\url{https://github.com/zr-tex8r/PXipamjm}. 説明は彼のブログ記事 -「pxipamjm パッケージの説明書のような何か(\url{http://d.hatena.ne.jp/zrbabbler/20131221})」 -にある.} -にあるような気の利いた命令はまだない. -異体字の一覧表示を行いたい場合は,gitリポジトリ内の \texttt{test/test19-ivs.tex} 中にある -Lua・\TeX コードが参考になるだろう. -% - - \subsection{\Pkg{luatexja-adjust}} \label{ssec-adj} \begin{figure}[t] @@ -6917,8 +7173,8 @@ with priority&% Note: the value of \Param{kanjiskip} is 0\,pt${}^{+1/5\,\mathrm{em}}_{-1/5\,\mathrm{em}}$ in this figure, for making the difference obvious. -%\caption{行長調整}\label{fig-adj} -%\caption{Line adjustment}\label{fig-adj} +%\caption{行長調整}\label{fig:adj} +%\caption{Line adjustment}\label{fig:adj} \end{figure} @@ -6926,38 +7182,106 @@ for making the difference obvious. (see Japanese version of this manual) % %<*ja> +この追加パッケージは以下の機能を提供する.詳細な仕様については\ref{sec-adjspec}章を参照してほしい. +\begin{description} +\item[行末文字の位置調整] + \pTeX では,(是非はともかく)「行末の読点はぶら下げか二分取りか全角取りのいずれかに」のように + 行末文字と実際の行末の位置関係を2通り以上にすることは面倒であった. + 和文フォントメトリックだけでは「常に行末の読点はぶら下げ」といったことしかできず, + 前の文に書いたことを実現するには +\begin{lstlisting} +\def\。{% + \penalty10000 % 禁則ペナルティ + \hbox to0pt{。\hss}\penalty0 % ぶら下げの場合 + \kern.5\zw\penalty0 % 二分取りの場合 + \kern.5\zw\penalty0 % 全角取りの場合 +} +\end{lstlisting} + のような命令を定義し,文中の全ての句点を \lstinline+\。+ で書くことが必要だった. + +\Pkg{luatexja-adjust}パッケージは,上で述べた行末文字と実際の行末との位置関係を +2通り以上から自動的に選択する機能を提供する. +\pdfTeX と同じように,「\TeX による行分割の後で行末文字の位置を補正する」方法と + 「行分割の過程で行末文字の位置を考慮に入れる」方法を選べるようにした( +\Pkg{luatexja-adjust}パッケージの既定では前者). + +\item[優先順位付きの行長調整] \pTeX では,行長調整において優先度の概念が存在しなかったため,図 -\ref{fig-adj}上段における半角分の半端は,図\ref{fig-adj}中段のように,鍵 +\ref{fig:adj}上段における半角分の半端は,\autoref{fig:adj}中段のように,鍵 括弧周辺の空白と和文間空白(\Param{kanjiskip})の両方によって負担される.し かし,「日本語組版処理の要件」\cite{jlreq}やJIS~X~4051~\cite{x4051}におい ては,このような状況では半端は鍵括弧周辺の空白のみで負担し,その他の和文 -文字はベタ組で組まれる(図\ref{fig-adj}下段)ことになっている.この追加 -パッケージは\cite{jlreq}や\cite{x4051}における規定のような,優先順位付き -の行長調整を提供する.詳細な仕様については\ref{sec-adjspec}章を参照してほしい. +文字はベタ組で組まれる(\autoref{fig:adj}下段)ことになっている. +\Pkg{luatexja-adjust}パッケージの提供する第2の機能は, +\cite{jlreq}や\cite{x4051}における規定のような,優先順位付き +の行長調整である. \begin{itemize} \item 優先度付き行長調整は,段落を行分割した後に個々の行について行われるものである. そのため,行分割の位置は変化することはない. -また,\verb+\hbox to ... {...}+ のような「幅が指定されたhbox」では無効である. +\verb+\hbox{...}+ といった「途中で改行できない水平ボックス」では(たとえ幅が指定されていても)無効である. \item 優先度付き行長調整を行うと,和文処理グルーの自然長は変化しないが,伸び量や縮み量は 一般に変化する.そのため,既に組まれた段落を \cs{unhbox} などを利用して組み直す処理を 行う場合には注意が必要である. \end{itemize} +\end{description} - -\Pkg{luatexja-adjust} は,以下の命令を提供する.これらはすべてグローバルに効力を発揮する. +\Pkg{luatexja-adjust}パッケージは,上記で述べた2機能を有効化/無効化するための +以下の命令を提供する.これらはすべてグローバルに効力を発揮する. \begin{cslist} +\item[\cs{ltjenableadjust[...]}] +\verb+...+ に指定したkey-valueリストに従い,「行末文字の位置調整」「優先順位付きの行長調整」を有効化/無効化する. +指定できるキーは以下の通り. +\begin{description} + \item[\texttt{lineend=[false,true,extended]}] + 行末文字の位置調整の機能を無効化(\texttt{false}),「行分割後に調整」の形で有効化(\texttt{true}), + 「行分割の仮定で考慮」(\texttt{extended})する. + \item[\texttt{priority=[false,true]}] + 優先順位付きの行長調整を無効化(\texttt{false}),または有効化(\texttt{true})する. +\end{description} +両キーともキー名のみを指定した場合は値として\texttt{true}が指定されたものと扱われる. + +互換性の為,オプション無しでただ\cs{ltjenableadjust}が呼び出された場合は, +\begin{lstlisting} +\ltjenableadjust[lineend=true,priority=true] +\end{lstlisting} +と扱われる. + \item[\cs{ltjdisableadjust}] -優先順位付きの行長調整を無効化する. +\Pkg{luatexja-adjust}パッケージの機能を無効化する. +\begin{lstlisting} +\ltjenableadjust[lineend=false,priority=false] +\end{lstlisting} +と同義. +\end{cslist} -\item[\cs{ltjenableadjust}] -優先順位付きの行長調整を有効化する. +また,優先順位付きの行長調整のために,次の2パラメータが\cs{ltjsetparameter}内で +追加される.両パラメータともグローバルに効力を発揮する. +\begin{cslist}[style=standard] +\item[\DParam{stretch\_priority}\,=\{\}] +\Param{kanjiskip}, \Param{xkanjiskip},および「\textbf{JAglue}以外のグルー」を, +「行を自然長より伸ばす」場合の調整に用いる優先度を指定する. -\item[\textsf{adjust}\,=] \cs{ltjsetparameter} で指定可能な追加パラメータであり, -が\textit{true}なら \cs{ltjenableadjust} を, -そうでなければ \cs{ltjdisableadjust} を実行する. +指定方法は,の中にkey-value listの形で +\begin{lstlisting} +stretch_priority={kanjiskip=-35,xkanjiskip=-25,others=50} +\end{lstlisting} +のようにして行う.キー名\texttt{kanjiskip},~\texttt{xkanjiskip}については +そのままの意味であり, +\texttt{others}キーが「\textbf{JAglue}以外のグルー」を表す. +各キーの値は,JFMグルーにおける「優先度$i$」を$10i$に対応させた整数値であり, + 大きい方が先に伸ばされることを意味している. + +\item[\DParam{shrink\_priority}\,=\{\}] +同様に,「行を自然長より縮める」場合の調整に用いる優先度を指定する. +それ以外は\Param{stretch\_priority}と指定の形式は変わらない. \end{cslist} +初期値は\Param{stretch\_priority}, \Param{shrink\_priority}とも +\begin{lstlisting} +{kanjiskip=-35,xkanjiskip=-25,others=50} +\end{lstlisting} +であり,「優先度$-4$」と指定されているJFMグルーが最も伸び(縮み)にくいようになっている. % \subsection{\Pkg{luatexja-ruby}} @@ -7795,7 +8119,7 @@ as in \Pkg{luatexja-adjust}. %<*en> \paragraph{Setting parameters} -Figure~\ref{fig:setpar-def} shows the \emph{most outer} definition of +\autoref{fig:setpar-def} shows the \emph{most outer} definition of two commands, \cs{ltjsetparameter} and \cs{ltjglobalsetparameter}. Most important part is the last \cs{setkeys}, @@ -7822,7 +8146,7 @@ but also by the value of \cs{globaldefs}. % %<*ja> \paragraph{パラメータの設定} -\cs{ltjsetparameter} と,\cs{ltjglobalsetparameter} の定義は図\ref{fig:setpar-def}の +\cs{ltjsetparameter} と,\cs{ltjglobalsetparameter} の定義は\autoref{fig:setpar-def}の のようになっている. 本質的なのは最後の \cs{setkeys} で,これは\Pkg{xkeyval}パッケージの提供する命令である. @@ -7935,7 +8259,7 @@ internal states are as follows: The first three states---$N$,~$S$, and~$M$---are as same as \TeX's input processor. State~$K$ is similar to state~$M$, and is entered after Japanese characters. The diagram of state transitions are indicated in -Figure~\ref{fig-ptexipro}. Note that \pTeX\ doesn't leave state~$K$ +\autoref{fig:ptexipro}. Note that \pTeX\ doesn't leave state~$K$ after ``beginning/ending of a group'' characters. % @@ -7954,7 +8278,7 @@ after ``beginning/ending of a group'' characters. \item State~$M$: 行中. \item State~$K$: 行中(和文文字の後). \end{itemize} -また,状態遷移は,図\ref{fig-ptexipro}のようになっており,図中の数字は +また,状態遷移は,\autoref{fig:ptexipro}のようになっており,図中の数字は カテゴリーコードを表している.最初の3状態は\TeX の入力処理部と同じであり, 図中から状態$K$と「$j$」と書かれた矢印を取り除けば,\TeX の入力処理部と同 じものになる. @@ -8036,7 +8360,7 @@ to State~$M$ (middle of line) sometimes. \end{itemize} %\caption{State transitions of \pTeX's input processor} %\caption{\pTeX の入力処理部の状態遷移} -\label{fig-ptexipro} +\label{fig:ptexipro} \end{figure} @@ -8260,11 +8584,11 @@ with the \textit{id} of it: \Node{glyph}{accent}\\\noalign{\medskip} \Node{hbox}{accent (shifted vert.)} \end{array}\right\}\longrightarrow -\Node{kern}{$\mathit{subtype}=2$}}^{\text{(a)}} +\Node{kern}{$\mathit{subtype}=2$}}^{\text{(b)}} \longrightarrow \Node{glyph}{$p$}\longrightarrow \overbrace{% -\Node{kern}{italic corr.}}^{\text{(b)}} +\Node{kern}{italic corr.}}^{\text{(a)}} \] %<*en> @@ -8672,7 +8996,7 @@ If this attempt fails, \LuaTeX-ja use the method ``\textsf{\Param{kanjiskip}~[K] \end{table} \subsection{その他の場合} -本節の内容は表\ref{tab-jfmglue}にまとめてある. +本節の内容は\autoref{tab-jfmglue}にまとめてある. \paragraph{和文Aと欧文の間} \textit{Nq}が\textsf{和文A}で,\textit{Np}が\textsf{欧文}の場合,JFMグルー挿入処理は次のようにして行われる. @@ -8862,7 +9186,7 @@ $d = \max(\texttt{depth} - \texttt{yoffset}, 0)$, $h = \max(\texttt{height} + \texttt{yoffset}, 0)$, $d=\texttt{depth}$. \end{description} という仕様になっている.つまり,\texttt{yoffset} が負(グリフを下ける)の場合に深さは増加しな -い(表\ref{tab:yoffset_and_im}参照). +い(\autoref{tab:yoffset_and_im}参照). \begin{table}[t] \caption{\texttt{yoffset} and imaginary body} @@ -9278,93 +9602,148 @@ the \texttt{lstlisting} environment or other environments/commands. %<*ja> \section{和文の行長補正方法} \label{sec-adjspec} -\Pkg{luatexja-adjust} で提供される優先順位付きの行長調整の詳細を述 -べる.大まかに述べると,次のようになる. +\Pkg{luatexja-adjust}で提供される優先順位付きの行長調整の詳細を大まかに述べると,次のようになる. \begin{itemize} +\item (\texttt{lineend=extended}の場合)\textbf{JAglue}の挿入処理のところで, + …… \item 通常の\TeX の行分割方法に従って,段落を行分割する.この段階では,行 長に半端が出た場合,その半端分は\textbf{JAglue}(\Param{xkanjiskip}, \Param{kanjiskip},JFMグルー)と それ以外のグルーの全てで(優先順位なく)負担される. \item その後,\texttt{post\_linebreak\_filter} callbackを使い,\emph{段 - 落中の各行ごとに},行末文字の位置を調整したり,優先度付きの行長調整 + 落中の各行ごとに},行末文字の位置を調整(\texttt{lineend=true}の場合)したり,優先度付きの行長調整 を実現するためにグルーの伸縮度を調整する. その処理においては,グルーの自然長と\textbf{JAglue}以外の グルーの伸び量・縮み量は変更せず,必要に応じて\textbf{JAglue}の伸び量・縮み量のみを 変更する設計とした. - -\Pkg{luatexja-adjust} の作用は,この処理を行うcallbackを追加するだけであり, - この章の残りではcallbackでの処理について解説する. \end{itemize} +この章の残りでは各処理について解説する. \paragraph{準備:合計伸縮量の計算} グルーの伸縮度(\texttt{plus} や \texttt{minus} で指定されている値)には, 有限値の他に,\texttt{fi},\texttt{fil},\texttt{fill},\texttt{filll}と -いう4つの無限大レベル(後ろの方ほど大きい)があり,行の調整に -\texttt{fi} などの\emph{無限大レベルの伸縮度が用いられている場合は,そ -の行に対しての処理を中止}する. - -よって,以降,問題にしている行の行長調整は伸縮度が有限長のグルーを用いて -行われているとして良い.さらに,簡単のため,この行はグルーが広げられている -(自然長で組むと望ましい行長よりの短い)場合しか扱わない. +いう4つの無限大レベル(後ろの方ほど大きい)がある.行の調整に +\texttt{fi} などの\emph{無限大レベルの伸縮度が用いられている行では, +「行末文字の位置調整」のみ行い,「グルーの調整」は行わない.} まず,段落中の行中のグルーを \begin{itemize} \item \textbf{JAglue}ではないグルー \item JFMグルー(優先度\footnote{% \ref{ssec-jfm-str}節にあるように, - 各JFMグルーには$-2$から2までの優先度がついている.}% + 各JFMグルーには$-4$から3までの優先度がついている.場合によっては + 伸びと縮みで異なる優先度が付いているかもしれない.}% 別にまとめられる) \item 和欧文間空白(\Param{xkanjiskip}) \item 和文間空白(\Param{kanjiskip}) \end{itemize} -の$1+1+5+1=8$つに類別し,それぞれの種別ごとに -許容されている伸び量(\texttt{stretch}の値)の合計を計算する. -また,行長と自然長との差を\textit{total}とおく. - +の$1+1+8+1=10$つに類別する. +そして許容されている伸び量(\texttt{stretch}の値)の合計を +無限のレベルごとに +\begin{align*} + T^{+}_{l}&:= \sum_{\text{$\texttt{stretch\_order}(p) = l$}} \texttt{stretch}(p),& + l\in \{\text{(finite)}, \texttt{fi}, \texttt{fil}, \texttt{fill}, \texttt{filll}\} +\end{align*} +と計算する.さらに, +\begin{align*} +T^{+}&:=T^{+}_{L^+},&L^{+} = \max \{l\in + \{\text{(finite)}, \texttt{fi}, \texttt{fil}, \texttt{fill}, \texttt{filll}\}: + T^{+}_l\neq 0\} +\end{align*} +とおく.有限の伸び量については,上記の8種類の類別ごとにも合計を計算する. +さらに縮み量(\texttt{shrink}の値)についても同様の処理を行い,$T^{-}$を計算する. + +また,行長から自然長を引いた値を\textit{total}とおく. + +\subsection{行末文字の位置調整(行分割後の場合)} +行末が\textbf{JAchar}であり,この文字の属する文字クラスでは +\begin{quote} + \texttt{end\_adjust = \{$a_{1}$, $a_{2}$, ..., $a_{n}$\}} +\end{quote} +であったとする. +このとき,以下の条件を満たした場合, +この文字クラスに対する\texttt{end\_adjust}の値のいずれかだけこの文字の位置を移動させる. +\begin{description} + \item[最終行以外] 行長調整に無限大の伸縮度が用いられていない. + すなわち,$\textit{total}>0$ならば$L^{+}=(\text{finite})$であり, + $\textit{total}>0$ならば$L^{-}=(\text{finite})$である. + \item[最終行] 行長調整に無限大に伸び縮みするグルーが用いられたなら,それは\cs{parfillskip}のみであり, + かつ,次の不等式が成立する: + \[ + \min\{0,a_{1}\}\text{\cs{zw}}\leq (\text{\cs{parfillskip}の実際の長さ}) \leq \max\{0,a_{n}\}\text{\cs{zw}} + \] +\end{description} -\subsection{行末文字の位置調整} -行末が文字クラス$n$の\textbf{JAchar}であった場合, -それを動かすことによって,\textit{total}のうち -\textbf{JAglue}が負担する分を少なくしようとする. -この行末文字の左右の移動可能量は, -JFM中にある文字クラス$n$の定義の -\texttt{end\_stretch},~\texttt{end\_shrink}フィールドに -全角単位の値として記述されている. +各$1\leq i\leq n$に対して, +「行末に$a_{i}$全角だけのカーンを追加した時の,\textit{glue\_set}の値」を +$b_{i}$とおく.式で書くと, +\[ +\catcode`\<=12 +b_{i} = \begin{cases} + |\textit{total}-a_{i}\text{\cs{zw}}|/T^{+} + &(\textit{total}-a_{i}\text{\cs{zw}}\geq 0)\\ + |\textit{total}-a_{i}\text{\cs{zw}}|/T^{-} + &(\textit{total}-a_{i}\text{\cs{zw}}<0) +\end{cases}. +\] +$b_{i}$達の最小値を与えるような$i$を$j$としたとき\footnote{% + そのような$i$が2つ以上あるときは,$|\textit{total}-a_{i}\cdot \text{\cs{zw}}|$, + $|a_{i}|$, $a_i$の順で比較して一番小さくなるものが選ばれる. +}, +行末に大きさ$a_{j}$のカーンを追加する. +\textit{total}から$a_{j}$全角の大きさだけ引いておく. -例えば,行末文字が句点「。」であり,そこで用いられているJFM中に -\begin{lstlisting} - [2] = { - chars = { '。', ... }, width = 0.5, ..., - end_stretch = 0.5, end_shrink = 0.5, - }, -\end{lstlisting} -という指定があった場合,この行末の句点は -\begin{itemize} -\item 通常の\TeX の行分割処理で「半角以上の詰め」が行われていた場合, -この行中の\textbf{JAglue}の負担を軽減するため, -行末の句点を半角だけ右に移動する(ぶら下げ組を行う). -\item 通常の\TeX の行分割処理で「半角以上の空き」が行われていた場合, -逆に行末句点を半角左に移動させる(見た目的に全角取りとなる). -\item 以上のどちらでもない場合,行末句点の位置調整は行わない. -\end{itemize} -となる. +\subsection{行末文字の位置調整(行分割での考慮)} +\texttt{lineend=extended}が指定されている場合,\TeX による行分割が行われる前に +各\textbf{JAchar}の直後に,その文字が行末に来たときの位置補正用のノードを挿入していく. -行末文字を移動した場合,その分だけ\textit{total}の値を引いておく. +\ref{sec-jfmglue}章の用語を使って述べる. +前側のクラスタ\textit{Nq}が「和文A」「和文B」であり, +JFMによって\texttt{end\_adjust}の値が +\begin{quote} + \texttt{end\_adjust = \{$a_{1}$, $a_{2}$, ..., $a_{n}$\}} +\end{quote} +であったとする.このとき,次のクラスタ\textit{Np}の直前に以下のノード列を挿入する. +\textbf{JAglue}の挿入過程で禁則処理のために「\textit{Nq}と\textit{Np}の間のペナルティ値を増やす」ことが +行われることがあるが,以下で述べられている$(n+1)$個のペナルティはみなその処理対象になっている. +\begin{align*} + \Node{kern}{$a_{1}\text{\cs{zw}}$} + &\longrightarrow \Node{penalty}{$0$} \longrightarrow\Node{kern}{$(a_{2}-a_{1})\text{\cs{zw}}$} + \longrightarrow \Node{penalty}{$0$} \longrightarrow\Node{kern}{$(a_{3}-a_{2})\text{\cs{zw}}$}\\ + &\longrightarrow + \cdots \longrightarrow\Node{penalty}{$0$} \longrightarrow + \Node{kern}{$(a_{n}-a_{n-1})\text{\cs{zw}}$} + \longrightarrow \Node{penalty}{$0$} \longrightarrow + \Node{kern}{$-a_{n}\text{\cs{zw}}$} \longrightarrow \Node{penalty}{$10000$} +\end{align*} +$n$個あるペナルティの箇所が改行可能箇所である.いずれかで改行された場合は, +その前にあるカーン($n$箇所のうちどこで改行しても,合計の長さは$a_{i}$の形)は行末に残るが, +後ろのペナルティ・カーンは除去される.なお,$a_1=0$のときは最初の幅が$a_{1}\text{\cs{zw}}$のカーンは不要なので挿入されず, +さらにかつ$n=1$であった場合は後ろのペナルティも挿入されない. + +なお,段落の末尾には\cs{penalty10000}と\cs{parfillskip}由来のグルーが自動的に入るが, +これらとの兼ね合いのため\emph{最後のクラスタについては上記のノード挿入処理は行われない}. +段落最終行の行末文字の位置調整は,すでに述べた「行分割後の場合」における最終行の処理をそのまま用いている. \subsection{グルーの調整} -\textit{total}の分だけが,行中のグルーの伸び量に応じて負担されることになる. -負担するグルーの優先度は以下の順であり, -できるだけ\Param{kanjiskip}を自然長のままにすることを -試みている. +$|\textit{total}|$の分だけが,行中のグルーの伸び量,あるいは縮み量に応じて負担されることになる. +以下,$\textit{total}\geq 0$であると仮定して話を進めるが,負のときも同様である. +\Pkg{luatexja-adjust}の初期値では以下の順に伸び量を負担するようになっており, +(優先度$-4$のJFMグルーは例外として)できるだけ\Param{kanjiskip}を自然長のままにすることを +試みている.この順番は\Param{stretch\_priority}(縮み量については\Param{shrink\_priority}) +パラメータで変更可能である. \begin{enumerate}\def\labelenumi{(\Alph{enumi})} \item \textbf{JAglue}以外のグルー + \item 優先度3のJFMグルー \item 優先度2のJFMグルー \item 優先度1のJFMグルー \item 優先度0のJFMグルー \item 優先度$-1$のJFMグルー \item 優先度$-2$のJFMグルー \item \Param{xkanjiskip} + \item 優先度$-3$のJFMグルー \item \Param{kanjiskip} + \item 優先度$-4$のJFMグルー \end{enumerate} \begin{enumerate} \item 行末の\textbf{JAchar}を移動したことで$\textit{total}=0$となれば, @@ -9381,7 +9760,7 @@ JFM中にある文字クラス$n$の定義の \texttt{glue\_set}, \texttt{glue\_sign}, \texttt{glue\_order}を再計算する. これによって,\textit{total}は\textbf{JAglue}以外のグルーによって負担される. \end{enumerate} -\item \textit{total}が「(A)の伸び量の合計」以上ならば,(A)--(H)のどこまで負担すれば +\item \textit{total}が「(A)の伸び量の合計」以上ならば,(A)--(K)のどこまで負担すれば \textit{total}以上になるかを計算する. 例えば, \[\catcode`\<=12 @@ -9392,17 +9771,17 @@ JFM中にある文字クラス$n$の定義の \begin{itemize} \item (A),~(B)に属するグルーは各グルーで許された伸び量まで伸ばす. \item (C)に属するグルーはそれぞれ$p\times (\text{伸び量})$だけ伸びる. - \item (D)--(H)に属するグルーは自然長のまま. + \item (D)--(K)に属するグルーは自然長のまま. \end{itemize} 実際には,前に述べた「設計」に従い,次のように処理している: \begin{enumerate} \item (C)に属するグルーの伸び量を$p$倍する. -\item (D)--(H)に属するグルーの伸び量を0とする. +\item (D)--(K)に属するグルーの伸び量を0とする. \item 行が格納されているhboxの \texttt{glue\_set}, \texttt{glue\_sign}, \texttt{glue\_order}を再計算する. これによって,\textit{total}は\textbf{JAglue}以外のグルーによって負担される. \end{enumerate} -\item \textit{total}が(A)--(H)の伸び量の合計よりも大きい場合,どうしようもないので +\item \textit{total}が(A)--(K)の伸び量の合計よりも大きい場合,どうしようもないので \verb+^^;+何もしない. \end{enumerate} @@ -9513,7 +9892,7 @@ CMapが必要である. \pageref{para-cid}ページで述べたように,\texttt{cid}キーを使って 非埋め込みの中国語・韓国語フォントを定義する場合,同様のキャッシュが生成される. -キャッシュの名称,必要となるCMapについては表\ref{tab:cid-cache}を参照して欲しい. +キャッシュの名称,必要となるCMapについては\autoref{tab:cid-cache}を参照して欲しい. \item[extra\_***.lua] フォント``\texttt{***}''における異体字セレクタの情報,縦組用字形への変換テーブル,そして @@ -9531,7 +9910,7 @@ It is created from three CMaps, \texttt{UniJIS2004-UTF32-\{H,V\}} and \texttt{Adobe-Japan1-UCS2}, and this is why these two CMaps are needed in the first run of \LuaTeX-ja. -Similar caches are created as Table~\ref{tab:cid-cache}, +Similar caches are created as \autoref{tab:cid-cache}, if you specified \texttt{cid} key in \cs{jfont} to use other CID-keyed non-embedded fonts for Chinese or Korean, as in Page~\pageref{para-cid}.