+
+\subsection{縦組用字形の取得}
+縦組時には,「\hbox to \zw{、}」(\texttt{U+3001})から「\ltjjachar"FE11」(\texttt{U+FE11})%"
+のように縦組用字形への置き換えに関係する処理は,以下のようになっている.
+
+\begin{table}[t]
+ \def\D#1#2#3#4{%
+ {\fboxsep0pt\fcolorbox{cyan}{white}%
+ {\large\char"#1#2#3#4}}\ (\texttt{U+#1#2#3#4})%"
+ }
+ \caption{\LuaTeX-ja標準で行われる縦組形への置換}
+ \label{tab:vert_replace}\small\centering
+ \begin{tabular}{*{3}{l@{}>{${}\longmapsto{}$}c@{}l}}
+ \toprule
+ \D 3001&&\D FE11&\D 3002&&\D FE12&\D 3016&&\D FE17\\
+ \D 3017&&\D FE18&\D 2026&&\D FE19&\D 2025&&\D FE30\\
+ \D 2014&&\D FE31&\D 2013&&\D FE32&\D FF3F&&\D FE33\\
+ \D FF08&&\D FE35&\D FF09&&\D FE36&\D FF5B&&\D FE37\\
+ \D FF5D&&\D FE38&\D 3014&&\D FE39&\D 3015&&\D FE3A\\
+ \D 3010&&\D FE3B&\D 3011&&\D FE3C&\D 300A&&\D FE3D\\
+ \D 300B&&\D FE3E&\D 3008&&\D FE3F&\D 3009&&\D FE40\\
+ \D 300C&&\D FE41&\D 300D&&\D FE42&\D 300E&&\D FE43\\
+ \D 300F&&\D FE44&\D FF3B&&\D FE47&\D FF3D&&\D FE48\\
+ \bottomrule
+ \end{tabular}
+\end{table}
+\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 \autoref{tab:vert_replace}に示した各置換$i\longmapsto v$に対し,
+ 置換先$v$がフォント内に存在する文字コードであるならば,$i\longmapsto v$を\textit{vform}に登録する.
+ \item \ref{ssec:tfont}節にある\texttt{jpotf}が指定された場合,
+ \LuaTeX-ja内部の別のテーブル\textit{vert\_jpotf\_table}に登録されている各置換$i\longmapsto v$に対して
+ 置換先$v$がフォント内に存在する文字コードであるならば,$i\longmapsto v$を\textit{vform}に登録する.
+ \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機能に沿ったグリフ置換はこの後の処理となる.
+ \end{itemize}