\def\cs#1{\texttt{\upshape
\texorpdfstring{\textbackslash\hbox{\ltjsetparameter{autoxspacing=false}#1}}{\textbackslash#1}}}
\ltjsetparameter{alxspmode={`\\,allow}}
+\def\text@#1{%
+ \ifnum\mathstyle<\scriptstyle
+ \mbox{#1}
+ \else\ifnum\mathstyle<\scriptscriptstyle
+ \mbox{\let\f@size\sf@size\selectfont#1}
+ \else
+ \mbox{\let\f@size\ssf@size\selectfont#1}
+ \fi\fi
+}
%%%%%%%%
\makeatother
%%%%%%%%
%<*en>
\item The following 12~Japanese fonts are preloaded:
\begin{center}\small
-\begin{tabular}{cccccc}
+\begin{tabular}{llllll}
\toprule
\textbf{direction}&
\textbf{classification}&\textbf{font name}&\bfseries ``10\,pt''&\bfseries ``7\,pt''&\bfseries ``5\,pt''\\\midrule
%<*ja>
\item 以下の12個の和文フォントが定義される:
\begin{center}\small
-\begin{tabular}{cccccc}
+\begin{tabular}{llllll}
\toprule
\emph{組方向}&\emph{字体}&\emph{フォント名}&\bfseries``10\,pt''&\bfseries``7\,pt''&\bfseries``5\,pt''\\\midrule
-\smash{\raisebox{-1ex}{横組}}&
+\smash{\raisebox{-0.7\zh}{横組}}&
明朝体&IPAex明朝&\cs{tenmin}&\cs{sevenmin}&\cs{fivemin}\\
-&ゴシック体&IPAexゴシック&\cs{tengt} &\cs{sevengt} &\cs{fivegt}\\
+&\textgt{ゴシック体}&IPAexゴシック&\cs{tengt} &\cs{sevengt} &\cs{fivegt}\\
\midrule
-\smash{\raisebox{-1ex}{縦組}}&
+\smash{\raisebox{-0.7\zh}{縦組}}&
明朝体&IPAex明朝&\cs{tentmin}&\cs{seventmin}&\cs{fivetmin}\\
-&ゴシック体&IPAexゴシック&\cs{tentgt} &\cs{seventgt} &\cs{fivetgt}\\
+&\textgt{ゴシック体}&IPAexゴシック&\cs{tentgt} &\cs{seventgt} &\cs{fivetgt}\\
\bottomrule
\end{tabular}
\end{center}
%</ja>
\begin{itemize}
%<*en>
-\item With \texttt{luatexja.cfg}, one can use other fonts
-as ``default'' Japanese fonts (Subsection~\ref{ssec:cfg}).
+\item The ``default'' Japanese fonts (and~JFMs for them) can be
+ modified by defining \cs{ltj@stdmcfont} etc.\ \emph{before}
+ one inputs \texttt{luatexja.sty} (Subsection~\ref{ssec:cfg}).
%</en>
%<*ja>
-\item \texttt{luatexja.cfg} を用いることによって,標準和文フォントを
-IPAexフォントから別のフォントに置き換えることができる.\ref{ssec:cfg}節を参照.
+\item 標準和文フォントやJFMをIPAexフォントから別のものに置き換えるには,
+ \cs{ltj@stdmcfont}等を\texttt{luatexja.sty}読み込み\emph{前}に定義すればよい.
+ \ref{ssec:cfg}節を参照.
%</ja>
%<*en>
\item
By default, the following fonts are used for these two families.
\begin{center}\small
-\begin{tabular}{ccccc}
+\begin{tabular}{lllll}
\toprule
\textbf{classification}&\textbf{family}&\cs{mdseries}&\cs{bfseries}&\textbf{scale}\\\midrule
\emph{mincho} (明朝体)&\tt mc&IPAex Mincho&IPAex Gothic&0.962216\\
%<*ja>
\item \pLaTeX と同様に,標準では「明朝体」「ゴシック体」の2種類を用いる:
\begin{center}\small
-\begin{tabular}{cllc}
+\begin{tabular}{llll}
\toprule
\emph{字体}&&&\emph{ファミリ名}\\\midrule
明朝体&\verb+\textmc{...}+&\verb+{\mcfamily ...}+&\cs{mcdefault}\\
\newpage
\item 標準では,次のフォントが用いられる:
\begin{center}\small
-\begin{tabular}{ccccc}
+\begin{tabular}{lllll}
\toprule
\emph{字体}&\emph{ファミリ}&\cs{mdseries}&\cs{bfseries}&\emph{スケール}\\\midrule
明朝体&\tt mc&IPAex明朝&IPAexゴシック&0.962216\\
-ゴシック体&\tt gt&IPAexゴシック&IPAexゴシック&0.962216\\
+\textgt{ゴシック体}&\tt gt&IPAexゴシック&IPAexゴシック&0.962216\\
\bottomrule
\end{tabular}
\end{center}
\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,
+However, \LuaTeX\ does not support \cs{mag} in PDF~output,
so \Pkg{ltjsclasses} uses the \texttt{nomag*} option\footnote{Same effect as
the \Pkg{BXjscls} classes (by Takayuki Yato) and \Pkg{jsclasses}.
However, these classes uses only \TeX\ code, but \Pkg{ltjsclasses} uses Lua code.}
がそれぞれ\LuaTeX-ja標準で用意されている.
元々の\Pkg{jsclasses}では本文のフォントサイズを設定するのに\cs{mag}プリミティブが使われていたが,
-\LuaTeX~beta-0.87.0以降ではPDF出力時の\cs{mag}のサポートが廃止された.
+\LuaTeX ではPDF出力時の\cs{mag}のサポートが廃止された.
そのため,\Pkg{ltjsclasses}では\texttt{nomag*}オプション
\footnote{\Pkg{jsclasses}や,八登崇之氏による\Pkg{BXjscls}クラスにおける同名のオプションと
同じ.上記クラスは\TeX コードのみで実装しているが,\Pkg{ltjsclasses}ではLuaコードも用いている.}が標準で
%<*en>
\begin{center}\small
-\begin{tabular}{cccccc}
+\begin{tabular}{llllll}
\toprule
&\textbf{encoding}&\textbf{family}&\textbf{series}&\textbf{shape}&\textbf{selection}\\\midrule
alphabetic fonts
%</en>
%<*ja>
\begin{center}\small
-\begin{tabular}{cccccc}
+\begin{tabular}{llllll}
\toprule
&\emph{エンコーディング}&\emph{ファミリ}&\emph{シリーズ}&\emph{シェープ}&\emph{選択}\\\midrule
-欧文
+\emph{欧文}
&\cs{romanencoding}&\cs{romanfamily}&\cs{romanseries}&\cs{romanshape}
&\cs{useroman}\\
-和文
+\emph{和文}
&\cs{kanjiencoding}&\cs{kanjifamily}&\cs{kanjiseries}&\cs{kanjishape}
&\cs{usekanji}\\
-両方&---&--&\cs{fontseries}&\cs{fontshape}&---\\
-自動選択&\cs{fontencoding}&\cs{fontfamily}&---&---&\cs{usefont}\\
+\emph{両方}&---&--&\cs{fontseries}&\cs{fontshape}&---\\
+\emph{自動選択}&\cs{fontencoding}&\cs{fontfamily}&---&---&\cs{usefont}\\
\bottomrule
\end{tabular}
\end{center}
\caption{\Pkg{luatexja-fontspec}で定義される命令}\label{tab:ltj_fntspc}
\medskip
{\centering\small
-\begin{tabular}{cllll}
+\begin{tabular}{lllll}
\toprule
-和文
+\emph{和文}
&\cs{jfontspec}&\cs{setmainjfont}&\cs{setsansjfont}&\cs{setmonojfont}$^*$\\
-欧文
+\emph{欧文}
&\cs{fontspec}&\cs{setmainfont}&\cs{setsansfont}&\cs{setmonofont}\\
\midrule
-和文
+\emph{和文}
&\cs{newjfontfamily}&\cs{renewjfontfamily}$^{**}$&\cs{setjfontfamily}$^{**}$\\
-欧文
+\emph{欧文}
&\cs{newfontfamily}&\cs{renewfontfamily}$^{**}$&\cs{setfontfamily}$^{**}$\\
\midrule
-和文
+\emph{和文}
&\cs{newjfontface}&\cs{defaultjfontfeatures}&\cs{addjfontfeatures}\\
-欧文
+\emph{欧文}
&\cs{newfontface}&\cs{defaultfontfeatures}&\cs{addfontfeatures}\\
\bottomrule
\end{tabular}\par}
\hyphenchar\font=-1 \exhyphenchar=-1
hiragino-pro, hiragino-pron, ipa, ipa-hg, ipaex, ipaex-hg,
kozuka-pr6, kozuka-pr6n, kozuka-pro, moga-mobo, moga-mobo-ex,
- morisawa-pr6n, morisawa-pro, ms, ms-hg, noembed, noto-otc, noto-otf,
+ bizud, morisawa-pr6n, morisawa-pro, ms, ms-hg, noembed, noto-otc, noto-otf,
sourcehan, sourcehan-jp, ume, yu-osx, yu-win, yu-win10
\end{quote}
\ref{ssec:fontspec}節 (\Pkg{fontspec}) の方法で手動で指定する必要がある.
%</ja>
-%<en>\subsection{Changing default Japanese fonts}
-%<ja>\subsection{標準和文フォントの変更}
-\label{ssec:cfg}
-%<*en>
-If \texttt{luatexja.cfg} can be seen from \LuaTeX, \LuaTeX-ja automatically reads it.
-The main use of \texttt{luatexja.cfg} is for changing default Japanese fonts,
-when IPAex fonts cannot be installed in \TeX~system.
-One should not overuse this \texttt{luatexja.cfg}; fonts which will be used in
-a document should be specified in its source.
-
-For example,
-\begin{lstlisting}
-\def\ltj@stdmcfont{IPAMincho}
-\def\ltj@stdgtfont{IPAGothic}
-\end{lstlisting}
-makes that IPA~Mincho and IPA~Gothic will be used as default Japanese fonts, instead of
-IPAex~Mincho and IPAex~Gothic.
-
-For another example, the following two lines makes that
-non-embedded fonts Ryumin-Light~and~GothicBBB-Medium as default Japanese fonts
-(as the earlier version of \LuaTeX-ja):
-\begin{lstlisting}
-\def\ltj@stdmcfont{psft:Ryumin-Light}
-\def\ltj@stdgtfont{psft:GothicBBB-Medium}
-\end{lstlisting}
-%</en>
-%<*ja>
-\LuaTeX から見える位置に \texttt{luatexja.cfg} があれば,\LuaTeX-jaはそれを読み込む.
-このファイルを用いるとplain~\TeX, \LaTeXe における標準和文フォントを
-IPAex明朝・IPAexゴシックから変更することができる.
-しかし,基本的には\emph{文章中で用いるフォントは(例えば \Pkg{luatexja-preset} などで)
-文書ソース内で指定するべき}であり,この \texttt{luatexja.cfg} は,
-「IPAexフォントがインストールできない」など,IPAexフォントが使用できない場合にのみ
-応急処置的に用いるべきである.
-
-例えば
-\begin{lstlisting}
-\def\ltj@stdmcfont{IPAMincho}
-\def\ltj@stdgtfont{IPAGothic}
-\end{lstlisting}
-と記述しておけば,標準和文フォントがIPA明朝・IPAゴシックへと変
-更される.
-
-
-なお,20140906.0以前のバージョンのように,
-Ryumin-Light, GothicBBB-Mediumという名前の非埋込フォントを用いる場合は
-\begin{lstlisting}
-\def\ltj@stdmcfont{psft:Ryumin-Light}
-\def\ltj@stdgtfont{psft:GothicBBB-Medium}
-\end{lstlisting}
-と記述すればよい.
-%</ja>
-
-
%<en>\section{Changing Internal Parameters}
%<ja>\section{パラメータの変更}
これらは以下のデータに基づいて決定している.
%</ja>
\begin{itemize}
-%<en>\item Blocks in Unicode~6.0.
-%<ja>\item Unicode~6.0のブロック.
+%<en>\item Blocks in Unicode~12.0.0.
+%<ja>\item Unicode~11.0のブロック.
%<en>\item The \texttt{Adobe-Japan1-UCS2} mapping between a CID Adobe-Japan1-6 and Unicode.
%<ja>\item Adobe-Japan1-6のCIDとUnicodeの間の対応表\texttt{Adobe-Japan1-UCS2}.
%<en>\item The \Pkg{PXbase} bundle for \upTeX\ by Takayuki Yato.
%<ja>\caption{文字範囲3に指定されているUnicodeブロック.}
\label{tab:rng3}
\catcode`\"=13\def"#1#2#3#4{\texttt{U+#1#2#3#4}}%"
-\centering\small
+\centering\footnotesize
\begin{tabular}{llll}
"2000--"206F&General Punctuation&
"2070--"209F&Superscripts and Subscripts\\
"2600--"26FF&Miscellaneous Symbols\\
"2700--"27BF&Dingbats&
"2900--"297F&Supplemental Arrows-B\\
-"2980--"29FF&Misc.\ Mathematical Symbols-B&
-"2B00--"2BFF&Miscellaneous Symbols and Arrows
+"2980--"29FF&Misc.\ Math Symbols-B&
+"2B00--"2BFF&Misc.\ Symbols and Arrows
\end{tabular}
\end{table}
%<*en>
\begin{lstlisting}
\ltjdefcharrange{4}{%
"500-"10FF, "1200-"1DFF, "2440-"245F, "27C0-"28FF, "2A00-"2AFF,
- "2C00-"2E7F, "4DC0-"4DFF, "A4D0-"A82F, "A840-"ABFF, "FB00-"FE0F,
- "FE20-"FE2F, "FE70-"FEFF, "10000-"1FFFF, "E000-"F8FF} % non-Japanese
+ "2C00-"2E7F, "4DC0-"4DFF, "A4D0-"A95F, "A980-"ABFF, "E000-"F8FF,
+ "FB00-"FE0F, "FE20-"FE2F, "FE70-"FEFF, "10000-"1AFFF, "1B170-"1F0FF,
+ "1F300-"1FFFF
+} % non-Japanese
\end{lstlisting}
%<en>\item[Range~5${}^{\text{A}}$] Surrogates and Supplementary Private Use Areas.
%<ja>\item[範囲5${}^{\text{A}}$] 代用符号と補助私用領域.
%<ja>\caption{文字範囲6に指定されているUnicodeブロック.}
\label{tab:rng6}
\catcode`\"=13\def"#1#2#3#4{\texttt{U+#1#2#3#4}}%"
-\centering\small
+\centering\footnotesize
\begin{tabular}{llll}
"2460--"24FF&Enclosed Alphanumerics&
"2E80--"2EFF&CJK Radicals Supplement\\
"31F0--"31FF&Katakana Phonetic Extensions&
"3200--"32FF&Enclosed CJK Letters and Months\\
"3300--"33FF&CJK Compatibility&
-"3400--"4DBF&CJK Unified Ideographs Extension A\\
+"3400--"4DBF&CJK Unified Ideographs Ext-A\\
"4E00--"9FFF&CJK Unified Ideographs&
"F900--"FAFF&CJK Compatibility Ideographs\\
"FE10--"FE1F&Vertical Forms&
"FE30--"FE4F&CJK Compatibility Forms\\
"FE50--"FE6F&Small Form Variants&
-"{20}000--"{2F}FFF&(Supplementary Ideographic Plane)\\
-"{E0}100--"{E0}1EF&Variation Selectors Supplement
+"FF00--"FFEF&Halfwidth and Fullwidth Forms\\
+"{1B}000--"{1B}0FF&Kana Supplement&
+"{1B}100--"{1B}12F&Kana Extended-A\\
+%"{1B}130--"{1B}16F&Small Kana Extension
+"{1F}100--"{1F}1FF&Enclosed Alphanumeric Supp.&
+"{1F}200--"{1F}2FF&Enclosed Ideographic Supp.\\
+"{20}000--"{2F}FFF&(Supp. Ideographic Plane)&
+"{E0}100--"{E0}1EF&Variation Selectors Supp.
\end{tabular}
\end{table}
%<*en>
"31C0--"31EF&CJK Strokes&
"A000--"A48F&Yi Syllables\\
"A490--"A4CF&Yi Radicals&
-"A830--"A83F&Common Indic Number Forms\\
+"A960--"A97F&Hangul Jamo Extended-A\\
"AC00--"D7AF&Hangul Syllables&
"D7B0--"D7FF&Hangul Jamo Extended-B
\end{tabular}
``ア'', not 20.
%</en>
%<*ja>
-\subsection{禁則処理関連パラメータとOpenTypeのfont feature}
+\subsection{禁則処理関連パラメータとOpenType機能}
禁則処理や \Param{kanjiskip}, \Param{xkanjiskip} の挿入に関連したパラメータのうち
\begin{quote}
\Param{jaxspmode},~\Param{alxspmode}, \Param{prebreakpenalty},
は,文字コードごとに設定する量である.
\Pkg{fontspec}パッケージを使う(\ref{ssec:fontspec}節)場合など,
-各種のOpenType featureを適用することもあると思うが,前段落に述べたパラメータ類は,
-\emph{OpenType featureの適用前の文字コードによって適用される.}
+各種のOpenType機能を適用することもあると思うが,前段落に述べたパラメータ類は,
+\emph{OpenType機能の適用前の文字コードによって適用される.}
例えば,以下の例において10行目の「ア」は,\verb+hwid+ featureの適用により半角カタカナの「ア」
に置き換わる.しかし,その直後に挿入される \Param{postbreakpenalty}は,置換前の「ア」に対する値10である.
%</ja>
%<en>\medskip
\noindent\hfill
-\begin{tabular}{ccccc}
+\begin{tabular}{llccc}
\toprule
\bfseries \cs{kcatcode}&
%<*en>
{\large\char"#1#2#3#4}}\ (\texttt{U+#1#2#3#4})} %"
\leavevmode\hbox to 0pt{\hss\begin{tabular}{cccccc}
\toprule
-%<en>&\bf row&\bf col.&\bf \pTeX&\bf \upTeX&\bf\LuaTeX-ja\\
-%<ja>&\bf 区&\bf 点&\bf \pTeX&\bf \upTeX&\fontseries{b}\selectfont\LuaTeX-ja\\
+%<en>&\textbf{row}&\textbf{col.}&\textbf{\pTeX}&\textbf{\upTeX}&\textbf{\LuaTeX-ja}\\
+%<ja>&\emph{区}&\emph{点}&\emph{\pTeX}&\emph{\upTeX}&\emph{\LuaTeX-ja}\\
\midrule
%\D 3000&1&1&N&N&Y\\
\D 30FB&1&6&N&Y&N\\
\end{tabular}\qquad
\begin{tabular}{cccccc}
\toprule
-%<en>&\bf row&\bf col.&\bf \pTeX&\bf \upTeX&\bf\LuaTeX-ja\\
-%<ja>&\bf 区&\bf 点&\bf \pTeX&\bf \upTeX&\fontseries{b}\selectfont\LuaTeX-ja\\
+%<en>&\textbf{row}&\textbf{col.}&\textbf{\pTeX}&\textbf{\upTeX}&\textbf{\LuaTeX-ja}\\
+%<ja>&\emph{区}&\emph{点}&\emph{\pTeX}&\emph{\upTeX}&\emph{\LuaTeX-ja}\\
\midrule
\D FF5C&1&35&N&N&Y\\
\D FF0B&1&60&N&N&Y\\
%<*ja>
\paragraph{\texttt{extend}と\texttt{slant}}
-OpenType font featureと見かけ上同じような形式で指定できるものに,
+OpenType機能と見かけ上同じような形式で指定できるものに,
\begin{description}
\item[\texttt{extend=}<extend>] 横方向に<extend>倍拡大する.
\item[\texttt{slant=}<slant>] <slant>に指定された割合だけ傾ける.
%<en>\subsection{\cs{tfont}}
%<ja>\subsection{\cs{tfont} 命令}
-
+\label{ssec:tfont}
\begin{comment}
{\catcode`\<=12\catcode`\>=12
\item[\tt jfm-tmin.lua] A counterpart for \verb+tmin10.tfm+, which is one
of the default Japanese font metric shipped with \pTeX.
\end{description}
+\begin{figure}[!tb]
+\begin{LTXexample}[pos=b]
+\jfont\X=[KozMinPr6N-Regular.otf]:jfm=ujis
+\tfont\U=[KozMinPr6N-Regular.otf]:jfm=ujisv
+\tfont\V=[KozMinPr6N-Regular.otf]:jfm=ujisv;jpotf
+\def\TEST#1#2{\leavevmode\hbox{#1#2\string#2 “引用,と句読点.”}}
+\ttfamily\centering\TEST\yoko\X \quad \TEST\tate\U \quad \TEST\tate\V
+\end{LTXexample}
+\caption{\texttt{jpotf} ``feature''}
+\label{fig:jpotf}
+\end{figure}
+
+ \item If \texttt{vert}~and/or~\texttt{vrt2} features are activated,
+ one can specify \texttt{jpotf} to additional substitutions.
+ By default, it substitutes ideographic comma/period for fullwidth comma/period,
+ and double prime quotation marks for double quotation marks
+ (See~\autoref{fig:jpotf}).
\end{itemize}
%</en>
%<*ja>
以下の点が \cs{jfont} による横組用和文フォントとは異なる:
\begin{itemize}
\item 明示的に \texttt{vert}, \texttt{vrt2}(のいずれか)の
- 有効・無効を指定した場合を除き,自動的に OpenType feature~\texttt{vrt2} の有効化が
+ 有効・無効を指定した場合を除き,自動的に OpenType機能 \texttt{vrt2} の有効化が
指定されたものとみなされる
\footnote{もしフォントが\texttt{vrt2}を定義していなかった場合,代わりに
\texttt{vert}を用いる.}.
である \verb+tmin10.tfm+ に相当し,\texttt{min10.tfm} と同様に
「っ」など一部の文字幅が狭められている.
\end{description}
+
+\begin{figure}[!tb]
+\begin{LTXexample}[pos=b]
+\jfont\X=[KozMinPr6N-Regular.otf]:jfm=ujis
+\tfont\U=[KozMinPr6N-Regular.otf]:jfm=ujisv
+\tfont\V=[KozMinPr6N-Regular.otf]:jfm=ujisv;jpotf
+\def\TEST#1#2{\leavevmode\hbox{#1#2\string#2 “引用,と句読点.”}}
+\ttfamily\centering\TEST\yoko\X \quad \TEST\tate\U \quad \TEST\tate\V
+\end{LTXexample}
+\caption{\texttt{jpotf} ``feature''}
+\label{fig:jpotf}
+\end{figure}
+
+ \item \texttt{vert}, \texttt{vrt2}の少なくとも片方が(明示的・自動的を問わず)
+ 有効になっていた場合,さらに\texttt{jpotf}を指定することで
+ 「通常では行わない縦組用字形への変換」を行うことができる.
+
+ 標準では,この「変換」は全角のコンマ・ピリオドを句読点に,
+ また全角の二重引用符をダブルミニュートへ置き換える
+ \footnote{%
+ \texttt{jpotf}という名前にしたのは,
+ OTFパッケージの縦組用和文TFMでほぼ同じの処理(そちらではさらに一重引用符を
+ 「シングルミニュート」に置換する機能もあった)を行っていたことに由来する.
+ }.\autoref{fig:jpotf}を参照.
+
+ ユーザ側で「変換」をカスタマイズしたい場合,
+ \verb+luatexja.jfont.register_vert_replace+ 関数に変更内容を記したテーブルを渡す.
+ 例えば縦組中では「あ」を「い」に置換し,また「,」は(「、」に置換せず)「,」のままに
+ したい場合は次のようにすれば良い.
+\begin{lstlisting}
+\directlua{luatexja.jfont.register_vert_replace{
+ ['あ']='い', [',']=false,
+}}
+\end{lstlisting}
+ \verb+luatexja.jfont.register_vert_replace+ による変更はこの関数の\emph{実行後}に定義される
+ フォントについてのみ有効である.
+
\end{itemize}
なお,\pTeX では,\cs{font},~\cs{jfont},~\cs{tfont}のどれでも欧文フォント・横組用和文フォン
ト・縦組用和文フォントの定義が可能であったが,\LuaTeX-jaではそうでないので注意.
%</ja>
+%<en>\subsection{Default Japanese fonts and JFMs}
+%<ja>\subsection{標準和文フォント・JFMの変更}
+\label{ssec:cfg}
+%<*en>
+If following commands are defined at loading \LuaTeX-ja package, these change
+default Japanese fonts and JFMs for them:
+%</en>
+%<*ja>
+\LuaTeX-jaが読み込まれる前に以下の命令が定義されていた場合は,
+それらが標準和文フォントやそれらに用いるJFMとして使われる.
+%</ja>
+
+\begin{cslist}[style=standard]
+ \item[\cs{ltj@stdmcfont}]
+%<en>The default Japanese font for the mincho family.
+%<ja>明朝体として用いるフォント.
+ \item[\cs{ltj@stdgtfont}]
+%<en>The default Japanese font for the gothic family.
+%<ja>ゴシック体として用いるフォント.
+ \item[\cs{ltj@stdyokojfm}]
+%<en>The default JFM for horizontal direction.
+%<ja>標準で用いる横組用JFM.
+ \item[\cs{ltj@stdyokojfm}]
+%<en>The default JFM for vertical direction.
+%<ja>標準で用いる縦組用JFM.
+\end{cslist}
+
+%<*en>
+For example,
+\begin{lstlisting}
+\def\ltj@stdmcfont{IPAMincho}
+\def\ltj@stdgtfont{IPAGothic}
+\end{lstlisting}
+makes that IPA~Mincho and IPA~Gothic will be used as default Japanese fonts, instead of
+IPAex~Mincho and IPAex~Gothic.
+
+This feature is intended for classes which use special JFMs
+\footnote{This is because commands has \texttt{@} in their names.}.
+It is recommended to use \cs{luatexja-preset}~or~\cs{luatexja-fontspec} package
+to select standard fonts in ordinary \LaTeX\ sources.
+%</en>
+%<*ja>
+例えば
+\begin{lstlisting}
+\def\ltj@stdmcfont{IPAMincho}
+\def\ltj@stdgtfont{IPAGothic}
+\end{lstlisting}
+と記述しておけば,標準和文フォントがIPA明朝・IPAゴシックへと変
+更される.
+
+この機能は,特別のJFMを用いるクラス
+\footnote{例えば阿部紀行氏によるjlreqがそれにあたる.}%
+などでの使用を意図しており,命令名に\texttt{@}が含まれることから
+通常の\TeX/\LaTeX 文書での使用は意図していない.
+通常の\LaTeX 文書では\Pkg{luatexja-preset}や\Pkg{luatexja-fontspec}などで
+使用フォントを選択することを推奨する.
+%</ja>
+
+%<*en>
+For compatibility with earlier versions,
+\LuaTeX-ja reads \texttt{luatexja.cfg} automatically if it is found by \LuaTeX.
+One should not overuse this \texttt{luatexja.cfg}; it will overwrite
+the definition of \cs{ltj@stdmcfont} and others.
+%</en>
+%<*ja>
+旧バージョンとの互換性のため,
+\LuaTeX から見える位置に\texttt{luatexja.cfg}があれば,\LuaTeX-jaはそれを読み込む.
+しかし,\texttt{luatexja.cfg}内で\cs{ltj@stdmcfont}等が定義されていた場合はそちらが
+優先されるので,もはや\texttt{luatexja.cfg}は使わないほうが良いだろう.
+%</ja>
+
%<en>\subsection{Prefix \texttt{psft}}
%<ja>\subsection{\texttt{psft}プリフィックス}
\label{ssec:psft}
ので注意してほしい.
\emph{\texttt{psft} プリフィックスの下では
-\texttt{+jp90} などのOpenType font featureの効力はない.
+\texttt{+jp90} などのOpenType機能の効力はない.
非埋込フォントをPDFに使用すると,実際にどのようなフォントが
表示に用いられるか予測できないからである.}\
\texttt{extend} と \texttt{slant} 指定は単なる変形のため
%<*en>
The default font defined by using \texttt{psft:} prefix is for Japanese typesetting;
-it is Adobe-Japan1-6 CID-keyed font.
+it is Adobe-Japan1-7 CID-keyed font.
One can specify \texttt{cid} key to use other CID-keyed non-embedded fonts
for Chinese or Korean typesetting.
%</en>
%<*ja>
標準で\texttt{psft:}プリフィックスで定義されるフォントは日本語用のもので
-あり,Adobe-Japan1-6のCIDに対応したものとなる.しかし,\LuaTeX-jaは中国語
+あり,Adobe-Japan1-7のCIDに対応したものとなる.しかし,\LuaTeX-jaは中国語
の組版にも威力を発揮することが分かり,日本語フォントでない非埋込フォント
の対応も必要となった.そのために追加されたのが\texttt{cid}キーである.
\texttt{cid}キーに値を指定すると,そのCIDを持った非埋込フォントを定義することができる:
%</ja>
\begin{lstlisting}[numbers=left]
-\jfont\testJ={psft:Ryumin-Light:cid=Adobe-Japan1-6;jfm=jis} % Japanese
-\jfont\testD={psft:Ryumin-Light:jfm=jis} % default value is Adobe-Japan1-6
-\jfont\testC={psft:AdobeMingStd-Light:cid=Adobe-CNS1-6;jfm=jis} % Traditional Chinese
-\jfont\testG={psft:SimSun:cid=Adobe-GB1-5;jfm=jis} % Simplified Chinese
-\jfont\testK={psft:Batang:cid=Adobe-Korea1-2;jfm=jis} % Korean
+\jfont\testJ={psft:Ryumin-Light:cid=Adobe-Japan1-7;jfm=jis} % Japanese
+\jfont\testD={psft:Ryumin-Light:jfm=jis} % default: Adobe-Japan1-7
+\jfont\testC={psft:AdobeMingStd-Light:cid=Adobe-CNS1-7;jfm=jis}% Traditional Chinese
+\jfont\testG={psft:SimSun:cid=Adobe-GB1-5;jfm=jis} % Simplified Chinese
+\jfont\testK={psft:Batang:cid=Adobe-Korea1-2;jfm=jis} % Korean
+\jfont\testKR={psft:SourceHanSerifAKR9:cid=Adobe-KR-9;jfm=jis} % Korean
\end{lstlisting}
%<*en>
Note that the code above specifies \texttt{jfm-jis.lua}, which is for Japanese fonts,
%</ja>
%<*en>
-At present, \LuaTeX-ja supports only 4 values written in the sample code above.
+At present, \LuaTeX-ja supports only 5 values written in the sample code above.
Specifying other values, e.g.,
%</en>
%<*ja>
-今のところ,\LuaTeX-jaは上のサンプルコード中に書いた4つの値しかサポートしていない.
+今のところ,\LuaTeX-jaは上のサンプルコード中に書いた5つの値しかサポートしていない.
%</ja>
\begin{lstlisting}
\jfont\test={psft:Ryumin-Light:cid=Adobe-Japan2;jfm=jis}
\item JFMによれば,この「ヒ」のグリフの文字クラスは2000である.
\item 以上により文字クラス2000とみなされるため,結果として「ヒ」の幅は半角だと認識される.
\end{enumerate}
-この例は,\emph{文字クラスの決定はfont featureの適用によるグリフ置換の結果に基づく}ことを
+この例は,\emph{文字クラスの決定はOpenType機能の適用によるグリフ置換の結果に基づく}ことを
示している.
%</ja>
%<*ja>
ここで,句点「。」(\texttt{U+3002})の文字クラスは,以下のようにして決まる.
\begin{enumerate}
-\item \Pkg{luaotfload} によって縦組用句点のグリフに置き換わる.
+\item \Pkg{luaotfload}によって縦組用句点のグリフに置き換わる.
\item 置換後のグリフは \texttt{U+FE12} であり,JFMに従えば文字クラスは\emph{0}と判定される.
\item この場合,置換前の横組用句点のグリフによって文字クラスを判定する.
\item 結果として,上の出力例中の句点の文字クラスは2000となる.
\begin{itemize}
\item 間に入るものがカーンであれば,この値は\
\texttt{[$j$]=\{[1]=<kern\_node>, ratio=<ratio>\}} であり,
-<kern\_node>ã\81¯ã\82«ã\83¼ã\83³ã\82\92表ã\81\99ã\83\8eã\83¼ã\83\89ã\81\9dã\81®ã\82\82ã\81®ã\81§ã\81\82ã\82\8b\footnote{%
-バージョン20150420.0以降ではノードのアクセス手法にdirect access
- modelを用いている.そのため,例えば\LuaTeX\ beta-0.78.2では,単なる自然数のようにし
- か見えないことに注意.
+<kern\_node>はカーンを表すノードである\footnote{%
+ バージョン20150420.0以降ではノードのアクセス手法にdirect access
+ modelを用いているため,ノードそのものを表すユーザーデータではなく,
+ 内部で参照のために使われる添字(整数)である.
}.
\item グルーであれば,この値は以下のキーを持つテーブルである.
\begin{description}
\end{description}
\end{itemize}
\item[ascent\textrm{, }descent]
-……
+ 縦組時に個々のグリフを90度回転させる場合,そのグリフは(実際の高さ・深さにかかわらず)
+ 便宜的に高さ\texttt{ascent},深さ\texttt{descent}を持つものだと想定して回転させる.
+ この仕様は\Pkg{luaotfload}がOpenTypeフォントのVORGテーブルを読まないための暫定的なものである.
\item[chars\_cbcache]
文字クラス決定の処理で.キャッシュとして使われる.
\end{cslist}
\]
\end{description}
-
-
%<en>\section{Parameters}
%<ja>\section{パラメータ}
\subsection{\cs{ltjsetparameter}}
\item[\cs{CID}\{<number>\}]
%<*en>
Typeset a glyph whose CID number is <number>.
-If the Japanese font is neither Adobe-Japan1,~Adobe-GB1, Adobe-CNS1,~nor~Adobe-Korea1 CID-keyed font,
+If the Japanese font is neither Adobe-Japan1,~Adobe-GB1, Adobe-CNS1,
+Adobe-Korea1,~nor~Adobe-KR CID-keyed font,
\LuaTeX-ja treats that <number> is a CID number of Adobe-Japan1 character collection,
and tries to typeset a ``most suitable glyph''.
%</en>
%<*ja>
CID番号が<number>の文字を出力する.
-もし現在の和文フォントがAdobe-Japan1,~Adobe-GB1, Adobe-CNS1,~Adobe-Korea1の
+もし現在の和文フォントがAdobe-Japan1,~Adobe-GB1, Adobe-CNS1, Adobe-Korea1,~Adobe-KRの
いずれのCID-keyed fontでもない場合,<number>はAdobe-Japan1のCID番号であると解釈し
「適切なグリフ」\footnote{%
- 例えばフォントにIVDコレクションAdobe-Japan1が含まれていれば,その情報を用いて
+ 特に縦組用グリフのCID番号を指定した場合は(LuaTeX-ja 20190504.0以降では若干改良されているが)
+ 意図しない結果になる可能性が高い.
+ なお,バージョン20190708.0以降では,CIDからグリフへの選択にグリフ名の情報を使用していない.
+ また,フォントにIVDコレクションAdobe-Japan1が含まれていれば,その情報を用いて
グリフを選択する.
}を出力する.
%</ja>
\item 常に\textbf{JAchar}として扱われる.
%</ja>
%<*en>
-\item Processing codes for supporting OpenType features (\textit{e.g.},
+\item In vertical direction, \texttt{vert}/\texttt{vrt2} feature are automatically applied to
+ characters by \cs{UTF}, regardless these feature are not activated in current Japanese font.
+%</en>
+%<*ja>
+\item 縦組時には,現在の縦組用和文フォントで \texttt{vert}/\texttt{vrt2} 機能が
+ 有効か無効かを問わず,\cs{UTF} で出力される文字にはこれらのOpenType機能が働いた字形になる.
+%</ja>
+%<*en>
+\item Processing codes for supporting other OpenType features (for example,
glyph replacement and kerning) by the \Pkg{luaotfload} package
is not performed to these characters.
%</en>
%<*ja>
-\item OpenType機能(例えばグリフ置換やカーニング)をサポートするための
+\item その他のOpenType機能(例えばグリフ置換やカーニング)をサポートするための
\Pkg{luaotfload}パッケージのコードはこれらの文字には働かない.
%</ja>
\end{itemize}
\item \cs{prevdepth}の値とその$h'$の深さの値が一致している
\end{itemize}
場合にのみ発動するようにしている.
- \item 行の中身に水平ボックス$h''$が入ってくることもあるが,その場合は$h''$の中身までは参照しない.
+ \item 行の中身に水平ボックス$h''$が入ってくることもあるが,その場合は$h''$の中身の高さ・深さまでは
+ 参照せず,あくまでも$h''$自身の高さ・深さのみを参照する.
参照するようにしてしまうと,\cs{smash}など手動で行った高さ・深さ調整の意味がなくなってしまうからである.
\end{itemize}
\begin{description}
\item[\texttt{lineend=[false,true,extended]}]
行末文字の位置調整の機能を無効化(\texttt{false}),「行分割後に調整」の形で有効化(\texttt{true}),
- 「行分割の仮定で考慮」の形で有効化(\texttt{extended})する.
+ 「行分割の過程で考慮」の形で有効化(\texttt{extended})する.
\item[\texttt{priority=[false,true]}]
優先順位付きの行長調整を無効化(\texttt{false}),または有効化(\texttt{true}).
\item[\texttt{profile=[false,true]}]
%<*ja>
横組・縦組専用仮名を用いる.また,\cs{rubyfamily} でルビ用仮名が使用可能となる\footnote{%
\cs{rubyfamily}とはいいつつ,実際にはフォントファミリを切り替えるのではない(通常では
- font featureの追加,\texttt{nfssonly} 指定時にはシェイプを \texttt{rb} に切り替え).
+ OpenType機能の有効化であり,\texttt{nfssonly} 指定時にはシェイプを \texttt{rb} に切り替える).
}.
%</ja>
\item[bold]
\label{sssec:ltjpreset-multi}
%<*en>
-Besides \texttt{morisawa-pro}~and~\texttt{morisawa-pr6n} presets,
+Besides \texttt{bizud}, \texttt{morisawa-pro},~and~\texttt{morisawa-pr6n} presets,
fonts are specified by font name, not by file name.
In following tables, starred fonts (e.g.~KozGo\dots-Regular) are used for medium series of \textit{gothic},
\emph{if and only if \texttt{deluxe} option is specified}.
%</en>
%<*ja>
-\texttt{morisawa-pro}, \texttt{morisawa-pr6n}以外はフォントの指定は
+\texttt{bizud}, \texttt{morisawa-pro}, \texttt{morisawa-pr6n}以外はフォントの指定は
(ファイル名でなく)フォント名で行われる.
以下の表において,*\,つきのフォント(e.g.,~KozGo\dots-Regular)は,\emph{\texttt{deluxe}オプション指定時に}
ゴシック体中字として用いられるものを示している.
\end{tabular}
\end{center}
-%<en>\newpage
\item[hiragino-pro] Hiragino Pro (Adobe-Japan1-5) fonts.
%<en> \\*[-\dimexpr\medskipamount+\baselineskip\relax]
\item[hiragino-pron] Hiragino ProN (Adobe-Japan1-5, JIS04-savvy) fonts.
\end{tabular}
\end{center}
+%<ja>\newpage
+\item[bizud] BIZ UD fonts (by Morisawa Inc.) bundled with
+ Windows~10 October 2018 Update.
+\begin{center}\small
+\begin{tabular}{ll>{\ttfamily}l}
+\toprule
+\textbf{family}&\textbf{series}\\
+\midrule
+%<en>\textit{mincho}
+%<ja>\textgt{明朝}%
+ &&BIZ-UDMinchoM.ttc\\
+\midrule
+ &medium&BIZ-UDGothicR.ttc\\
+\cmidrule(l){2-3}
+%<en>\textit{gothic}%
+%<ja>\gt ゴシック
+ &bold&BIZ-UDGothicB.ttc\\
+ &extra bold&BIZ-UDGothicB.ttc\\
+\midrule
+%<en>\textit{rounded gothic}
+%<ja>\gt 丸ゴシック
+&&BIZ-UDGothicB.ttc\\
+\bottomrule
+\end{tabular}
+\end{center}
+
+%<en>\newpage
+
\item[morisawa-pro] Morisawa Pro (Adobe-Japan1-4) fonts.
%<en> \\*[-\dimexpr\medskipamount+\baselineskip\relax]
\item[morisawa-pr6n] Morisawa Pr6N (Adobe-Japan1-6, JIS04-savvy) fonts.
\end{tabular}
\end{center}
+%<en>\newpage
\item[sourcehan] Source Han Serif and Source Han Sans fonts (Language-specific OTF \textit{or} OTC)
%<en> \\*[-\dimexpr\medskipamount+\baselineskip\relax]
\item[sourcehan-jp] Source Han Serif JP and Source Han Sans JP fonts (Region-specific Subset OTF)
直前が和文文字であるかを示すフラグ \verb+\lst@ifkanji+ を新たに導入した.
以降,説明のために以下のように文字を分類する:
%</ja>
+%<*ja>
\begin{center}
\small
-\begin{tabular}{lccccc}
+\begin{tabular}{llllll}
\toprule
-&Letter&Other&Kanji&Open&Close\\\midrule
+&\emph{Letter}&\emph{Other}&\emph{Kanji}&\emph{Open}&\emph{Close}\\\midrule
\verb+\lst@ifletter+&T&F&T&F&T\\
\verb+\lst@ifkanji+&F&F&T&T&F\\
-%<en>Meaning&char in an identifier&other alphabet&%
-%<en>most of Japanese char&opening brackets&closing brackets\\
-%<ja>意図&識別子中の文字&その他欧文文字&殆どの和文文字&開き括弧類&閉じ括弧類\\
+\emph{意図}&識別子中の文字&その他欧文文字&殆どの和文文字&開き括弧類&閉じ括弧類\\
\bottomrule
\end{tabular}
\end{center}
+%</ja>
+%<*en>
+\begin{center}
+\small
+\begin{tabular}{llll}
+\toprule
+&\textbf{Letter}&\textbf{Other}&\\\midrule
+\verb+\lst@ifletter+&T&F&\\
+\verb+\lst@ifkanji+&F&F&\\
+\textbf{Meaning}&char in an identifier&other alphabet&\\
+ \midrule
+&\textbf{Kanji}&\textbf{Open}&\textbf{Close}\\\midrule
+\verb+\lst@ifletter+&T&F&T\\
+\verb+\lst@ifkanji+&T&T&F\\
+\textbf{Meaning}&most of Japanese char&opening brackets&closing brackets\\
+\bottomrule
+\end{tabular}
+\end{center}
+%</en>
%<*en>
Note that \textit{digits} in the \Pkg{listings} package can be Letter or
Other according to circumstances.
%</ja>
\begin{center}
\small
-\begin{tabular}{llccccc}
+\begin{tabular}{lllllll}
\toprule
%<*en>
-&&\multicolumn{4}{c}{Next}\\\cmidrule(lr){3-7}
-&&\hbox to 4em{\hss Letter\hss}&\hbox to 4em{\hss Other\hss}
-&\hbox to 4em{\hss Kanji\hss}&\hbox to 4em{\hss Open\hss}&Close\\\midrule
+&&\multicolumn{4}{c}{\textbf{Next}}\\\cmidrule(lr){3-7}
+&&\hbox to 4em{Letter\hss}&\hbox to 4em{Other\hss}
+&\hbox to 4em{Kanji\hss}&\hbox to 4em{Open\hss}&Close\\\midrule
&Letter&collects&\multicolumn{3}{c}{\hrulefill \ outputs\ \hrulefill}&collects\\
&Other&outputs&collects&\multicolumn{2}{c}{\hrulefill \ outputs\ \hrulefill}&collects\\
-Prev&Kanji&\multicolumn{4}{c}{\hrulefill \ outputs\ \hrulefill}&collects\\
+\textbf{Prev}&Kanji&\multicolumn{4}{c}{\hrulefill \ outputs\ \hrulefill}&collects\\
&Open&\multicolumn{5}{c}{\hrulefill \ collects\ \hrulefill}\\
&Close&\multicolumn{4}{c}{\hrulefill \ outputs\ \hrulefill}&collects\\
%</en>
%<*ja>
-&&\multicolumn{4}{c}{後ろ側の文字}\\\cmidrule(lr){3-7}
-&&\hbox to 4em{\hss Letter\hss}&\hbox to 4em{\hss Other\hss}
-&\hbox to 4em{\hss Kanji\hss}&\hbox to 4em{\hss Open\hss}&Close\\\midrule
-直&Letter&収集&\multicolumn{3}{c}{\hrulefill \ 出力\ \hrulefill}&収集\\
-前&Other&出力&収集&\multicolumn{2}{c}{\hrulefill \ 出力\ \hrulefill}&収集\\
-文&Kanji&\multicolumn{4}{c}{\hrulefill \ 出力\ \hrulefill}&収集\\
-字&Open&\multicolumn{5}{c}{\hrulefill \ 収集\ \hrulefill}\\
-種&Close&\multicolumn{4}{c}{\hrulefill \ 出力\ \hrulefill}&収集\\
+&&\multicolumn{4}{c}{\textbf{後側文字種}}\\\cmidrule(lr){3-7}
+&&\hbox to 4em{Letter\hss}&\hbox to 4em{Other\hss}
+&\hbox to 4em{Kanji\hss}&\hbox to 4em{Open\hss}&Close\\\midrule
+\emph{直}&Letter&収集&\multicolumn{3}{c}{\hrulefill \ 出力\ \hrulefill}&収集\\
+\emph{前}&Other&出力&収集&\multicolumn{2}{c}{\hrulefill \ 出力\ \hrulefill}&収集\\
+\emph{文}&Kanji&\multicolumn{4}{c}{\hrulefill \ 出力\ \hrulefill}&収集\\
+\emph{字}&Open&\multicolumn{5}{c}{\hrulefill \ 収集\ \hrulefill}\\
+\emph{種}&Close&\multicolumn{4}{c}{\hrulefill \ 出力\ \hrulefill}&収集\\
%</ja>
\bottomrule
\end{tabular}
%</ja>
%<*ja>
-\section{IVS対応}
-\verb+luatexja.otf.enable_ivs()+ を実行し,IVS対応を有効にした状態では,
-\verb+pre_linebreak_filter+ や \verb+hpack_filter+ コールバックには
-次の4つが順に実行される状態となっている:
-\begin{description}
-\item[\tt ltj.do\_ivs] \textit{glyph\_node}~$p$の直後に,異体字セレクタ(を表す\textit{glyph\_node})
-が連続した場合に,$p$のフォントに対応したが持つ「異体字情報」に従って出力するグリフを変える.
-
-しかし,単に$p.\textit{char}$を変更するだけでは,後から
-OpenType機能の適用(すぐ下)により置換される可能性がある.そのため,
-\cs{CID} や \cs{UTF} と同じように,\textit{glyph\_node}~$p$の代わりに
-\texttt{user\_id} が\textit{char\_by\_cid}であるようなuser-defined whatsitを用いている.
-\item[(\Pkg{luaotfload} によるfont featureの適用)]
-\item[\tt ltj.otf] \texttt{user\_id} が\textit{char\_by\_cid}であるようなuser-defined whatsitを
-きちんと\textit{glyph\_node}に変換する.この処理は,\cs{CID}, \cs{UTF}やIVSによる置換が,
-OpenType機能の適用で上書きされてしまうのを防止するためである.
-\item[\tt ltj.main\_process] \textbf{JAglue}の挿入処理(\ref{sec-jfmglue}章)と,
-JFMの指定に従って各\textbf{JAchar}の「寸法を補正」することを行う.
-\end{description}
-
-問題は各フォントの持っているIVS情報をどのように取得するか,である.
-\Pkg{luaotfload} はフォント番号<font\_number>の情報を\
-\texttt{fonts.hashes.identifiers[<font\_number>]} 以下に格納している.
-しかし,OpenTypeフォントのIVS情報は格納されていないようである%
-\footnote{TrueTypeフォントに関しては,
-\begin{center}
-\texttt{fonts.hashes.idenfiers[<font\_number>]%
- .resources.variants[<selector>][<base\_char>]}
-\end{center}
-に,<base\_char>番の文字の後に異体字セレクタ<selector>が続いた場合に
-出力すべきグリフが書かれてある.}.
-%例えば,小塚明朝Pr6N~Rでは,
-
-一方,\LuaTeX 内部の \texttt{fontloader} の返すテーブルには
-OpenTypeフォントでもTrueTypeフォントでもIVS情報が格納されている.
-具体的には……
-
-そのため,\LuaTeX-jaのIVS対応においては,\LuaTeX 内部の\
-\texttt{fontloader} を直接用いることで,フォントのIVS情報を取得している.
-20140114.0以降でキャッシュを用いるようにした要因はここにあり,
-\texttt{fontloader} の呼び出しでかなり時間を消費することから,
-%%% to_table を使わなくしたことで,メモリ使用量は減った
-IVS情報をキャッシュに保存することで2回目以降の実行時間を節約している.
-%</ja>
-
-
-%<*ja>
\section{複数フォントの「合成」(未完)}
\section{\LuaTeX-jaにおけるキャッシュ}
\Pkg{luaotfload}パッケージが,各TrueType・OpenTypeフォントの情報を
\midrule
Adobe-Japan1-*<j-cid-auto-adobe-japan1.lua&UniJIS2004-UTF32-*&Adobe-Japan1-UCS2\\
Adobe-Korea1-*<j-cid-auto-adobe-korea1.lua&UniKS-UTF32-*&Adobe-Korea1-UCS2\\
+Adobe-KR-*<j-cid-auto-adobe-kr.lua&UniAKR-UTF32-*&Adobe-KR-UCS2\\
Adobe-GB1-*<j-cid-auto-adobe-gb1.lua&UniGB-UTF32-*&Adobe-GB1-UCS2\\
Adobe-CNS1-*<j-cid-auto-adobe-cns1.lua&UniCNS-UTF32-*&Adobe-CNS1-UCS2\\
\bottomrule
}
\]
のようになる.
+
+\subsection{縦組用字形の取得}
+縦組時には,「\hbox to \zw{、}」(\texttt{U+3001})から「\ltjjachar"FE11」(\texttt{U+FE11})%"
+のように縦組用字形への置き換えに関係する処理は,以下のようになっている.
+ \begin{itemize}
+ \item 各縦組用和文フォントは読み込み時に以下の属性が設定される:
+ \begin{description}
+ \item[\textit{vert\_activated}] 真となるのは,
+ 明示的に \texttt{-vert} も \texttt{-vrt2} のいずれも指定されていないちょうどその時.
+ \item[\textit{auto\_enable\_vrt2}] 真となるのは,
+ \texttt{vert}, \texttt{vrt2}のいずれについても有効・無効が指定されていないちょうどその時.
+ \end{description}
+ \textit{vert\_activated}については\texttt{luatexja.define\_jfont}コールバックで渡される引数
+ \texttt{jfont\_info}から取得可能である.
+
+ \item \textit{auto\_enable\_vrt2}が真の場合は,現在のscript tagとlanguage system identifierの値で
+ \texttt{vrt2}機能が利用可能か調べる.利用可能ならば\texttt{vrt2}を,そうでなければ
+ \texttt{vert}を有効化する.
+ \item また,各和文フォント読み込み時には,
+ 「OpenType機能による置換以前に行う縦組形への置換」を格納したテーブル\textit{vform}も作成する.
+ \begin{enumerate}
+ \item \LuaTeX-jaには,「\hbox to \zw{、}」(\texttt{U+3001})→「\ltjjachar"FE11」(\texttt{U+FE11})といった
+ いくつかの置換がハードコードされている.そのような各置換$i\longmapsto v$に対して,
+ \begin{quote}
+ 置換元$i$が(あるscript, languageにおける)\texttt{vert}では置換対象でなく,
+ かつ置換先$v$がフォント内に存在する文字コードである
+ \end{quote}
+ ならば,$i\longmapsto v$を\textit{vform}に登録する.
+ \item \ref{ssec:tfont}節にある\texttt{jpotf}が指定された場合,
+ ……
+ \item もし\texttt{vert}も\texttt{vrt2}も現在のscript, languageでは有効にできない場合,
+ どこかのscript, languageにおける\texttt{vert}で定義されている
+ 置換$i\longmapsto v$をすべて\textit{vform}に登録する.
+ \end{enumerate}
+
+ あとで説明するように,\textit{vform}は\textit{vert\_activated}が真であるような縦組用和文フォントでしか
+ 利用されない.
+
+ \item 「現在の水平リスト」内の\textbf{JAchar}を(欧文フォントから)和文フォントへ置き換える処理において,
+ その時点での組方向が縦組であり,かつ処理対象の各ノードの縦組用フォントで
+ \textit{vert\_activated}が真である場合,\textit{vform}に従いグリフが置き換えられる.
+
+ \Pkg{luaotfload}が行う,OpenType機能に沿ったグリフ置換はこの後の処理となる.G
+ \end{itemize}
+
%</ja>
\newpage