X-Git-Url: http://git.osdn.jp/view?a=blobdiff_plain;f=doc%2Fluatexja.dtx;h=05e5e2d8ab698ee3542154ba72d20f2eca4ab646;hb=f078ac2f7998a102c7ec765e725f2269eed9f872;hp=f46f6e1c18ebf1a9b4a5ac179e0b63c7fee603f7;hpb=4962f6e928b263a18f7a9e28ec0877156cb832b6;p=luatex-ja%2Fluatexja.git
diff --git a/doc/luatexja.dtx b/doc/luatexja.dtx
index f46f6e1..05e5e2d 100644
--- a/doc/luatexja.dtx
+++ b/doc/luatexja.dtx
@@ -11,7 +11,7 @@
\IfFileExists{luatex85.sty}{\RequirePackage{luatex85}}{}
%\documentclass[a4paper,titlepage]{article}
-%\documentclass[a4paper,titlepage]{ltjsarticle}
+%\documentclass[a4paper,10ptj,titlepage]{ltjsarticle}
%%%%%%%%
\makeatletter
@@ -21,7 +21,7 @@
\usepackage{metalogo,amsmath,array,tikz,pict2e,multienum,float}
\usepackage{booktabs,multicol,luatexja-ruby}
\usepackage[all]{xy}
-\usepackage{lltjext,alltt}
+\usepackage{lltjext,alltt,comment}
%%%%%%%% Lua GC
\patchcmd\@outputpage{\stepcounter{page}}{%
@@ -39,7 +39,6 @@
%%%%%%%% fonts
\usepackage{luatexja-otf}
-\directlua{luatexja.otf.enable_ivs()}
\usepackage[no-math]{fontspec}
\setmainfont[Ligatures=TeX]{Linux Libertine O}
\setmonofont[Scale=MatchLowercase, ItalicFont=lmmono10-italic.otf,
@@ -50,7 +49,7 @@
\usepackage[kozuka-pr6n]{luatexja-preset}
\usepackage{unicode-math}
\setmonojfont{KozGoPr6N-Regular.otf}
-\setmathfont[Scale=MatchLowercase]{xits-math.otf}
+\setmathfont[Scale=MatchLowercase]{XITSMath}
\setLaTeXa{\scshape a}
%<*ja>
@@ -69,11 +68,16 @@
{\normalfont\normalsize\bfseries\raisebox{.2ex}{$\mdlgblksquare\mkern1mu$}}}
%
%<*ja>
-\usepackage[textwidth=45\zw, lines=45, footskip=6mm]{geometry}
+\usepackage[textwidth=44\zw, lines=41, footskip=6mm]{geometry}
\usepackage{luatexja-adjust}%\ltjdisableadjust
\advance\leftmargini-1\zw\advance\leftmarginii-1\zw
%
-
+%\long\def\fakefn#1#2{\par\noindent{\footnotesize\hbox to1.8em{\hss#1}#2\par}}
+%<*ja>
+\long\def\fakefn#1#2{%
+ \par{\footnotesize\advance\leftskip 3\zw\parindent1\zw\noindent
+ \llap{#1\hskip.3\zw}#2\par}}
+%
%%%%%%%% listings
%%%%%%%% IVS
@@ -192,6 +196,15 @@
\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
%%%%%%%%
@@ -203,10 +216,12 @@
width:\hfill\ #2\cr height:\hfill\ #3\cr depth:\hfill\ #4\cr
}}}}}\,}
+\makeatletter
\def\myghost{\ifmmode\else\ltjalchar"200C \fi}
-\protected\def\Param#1{\myghost\hyperlink{fld:#1}{\underline{\smash{\textsf{#1}}}}\myghost} % parameter name
+\def\Param#1{\texorpdfstring{\@Param{#1}}{#1}} % parameter name
+\protected\def\@Param#1{\myghost\hyperlink{fld:#1}{\underline{\smash{\textsf{#1}}}}\myghost}
\protected\def\DParam#1{\myghost\hypertarget{fld:#1}{\underline{\smash{\textsf{#1}}}}\myghost} % parameter name (definition)
-\protected\def\Pkg#1{\textsf{#1}} % packages/classes
+\def\Pkg#1{\texorpdfstring{\textsf{#1}}{#1}} % packages/classes
\ltjsetparameter{alxspmode={"200C,allow}}
\begin{document}
@@ -460,7 +475,7 @@ on the content of the register \emph{only}. This is major difference with \pTeX.
%
%<*ja>
\paragraph{çµæ¹å}
-20150420.0çããã¯ï¼ä¸å®å®ãªããã\LuaTeX-ja ã«ããã縦çµã¿ããµãã¼ããã¦ããï¼
+ãã¼ã¸ã§ã³20150420.0ããã¯ï¼ä¸å®å®ãªããã\LuaTeX-ja ã«ããã縦çµã¿ããµãã¼ããã¦ããï¼
ãªãï¼\LuaTeX æ¬ä½ã$\Omega$æµã®çµæ¹åããµãã¼ããã¦ãããï¼ããã¨ã¯å
¨ãã®å¥ç©ã§ãããã¨
ã«æ³¨æãã¦ã»ããï¼
ç¹ã«ï¼ç°ãªã£ãçµæ¹åã®ããã¯ã¹ãæ±ãå ´åã«ã¯
@@ -483,7 +498,7 @@ Japanese characters in discretionary break (\cs{discretionary}) is not supported
By default, \LuaTeX-ja uses Japanese fonts to typeset Greek and Cyrillic letters,
To change this behavior,
put \verb!\ltjsetparameter{jacharrange={-2,-3}}! in the preamble.
- For the detailed description, see Subsection~\ref{ssec-setrange}.
+ For the detailed description, see Subsection~\ref{ssec:setrange}.
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.
@@ -500,10 +515,10 @@ without the \cs{fontspec} (and~\Pkg{luatexja-fontspec}) package.
\end{lstlisting}
ãå
¥ããã¨
ä¸è¨ç¨®é¡ã®æåã¯æ¬§æãã©ã³ããç¨ãã¦çµã¾ããããã«ãªãï¼
- 詳ãã説æã¯\ref{ssec-setrange}ç¯ãåç
§ãã¦ã»ããï¼
+ 詳ãã説æã¯\ref{ssec:setrange}ç¯ãåç
§ãã¦ã»ããï¼
ã¾ãï¼\P,~\S ã¨ãã£ãISO~8859-1ã®ä¸ä½é åã¨JIS~X~0208ã®å
±éé¨åã®æåã¯
- 20150906.0çããæ¨æºã§æ¬§ææ±ãã¨ãªã£ãï¼\LaTeXe\ 2017/01/01以éã§ã¯
+ ãã¼ã¸ã§ã³20150906.0ããæ¨æºã§æ¬§ææ±ãã¨ãªã£ãï¼\LaTeXe\ 2017/01/01以éã§ã¯
æ¨æºã§TUã¨ã³ã³ã¼ãã£ã³ã°ã®Latin Modernãã©ã³ãã使ãããã®ã§ï¼
ç¹ã«ä½ãããã½ã¼ã¹ä¸ã«ãã®ã¾ã¾è¨è¿°ãã¦ããããã®æåãåºåããã
\footnote{\LaTeXe\ 2017/01/01ããåã§ã¯ï¼ã½ã¼ã¹ä¸ã«ç´æ¥è¨è¿°ãã¦ã
@@ -525,11 +540,11 @@ In this document, the following terms and notations are used:
%<*en>
\item Characters are classified into following two types.
Note that the classification can be customized by a user
- (see Subsection~\ref{ssec-setrange}).
+ (see Subsection~\ref{ssec:setrange}).
%
%<*ja>
\item æåã¯æ¬¡ã®2種é¡ã«åããããï¼ãã®é¡å¥ã¯åºå®ããã¦ãããã®ã§ã¯ãªãï¼ã¦ã¼ã¶ãå¾ããå¤æ´å¯è½ã§ãã
- ï¼\ref{ssec-setrange}ç¯ãåç
§ï¼ï¼
+ ï¼\ref{ssec:setrange}ç¯ãåç
§ï¼ï¼
%
\begin{itemize}
%<*en>
@@ -573,10 +588,10 @@ and \emph{Japanese fonts} for fonts used in \textbf{JAchar}.
%
%<*en>
\item In this document, natural numbers start from~zero.
- $\omega$ denotes the set of all natural numbers.
+ $\omega$ denotes the set of all natural numbers which can be used in \TeX.
%
%<*ja>
-\item æ¬ããã¥ã¡ã³ãã§ã¯ï¼èªç¶æ°ã¯0ããå§ã¾ãï¼èªç¶æ°å
¨ä½ã®éåã¯$\omega$ã¨è¡¨è¨ããï¼
+\item æ¬ããã¥ã¡ã³ãã§ã¯ï¼èªç¶æ°ã¯0ããå§ã¾ãï¼ï¼\TeX ã§æ±ããï¼èªç¶æ°å
¨ä½ã®éåã¯$\omega$ã¨è¡¨è¨ããï¼
%
\end{itemize}
@@ -604,7 +619,7 @@ and \emph{Japanese fonts} for fonts used in \textbf{JAchar}.
%æ¬ããã¸ã§ã¯ãã¯OSDNã®ãµã¼ãã¹ãç¨ãã¦éå¶ããã¦ããï¼
%\paragraph{Members}\
-%\paragraph{éçºã¡ã³ãã¼}\
+%\clearpage\paragraph{éçºã¡ã³ãã¼}\
%<*en>
\begin{multienumerate}
@@ -625,7 +640,7 @@ and \emph{Japanese fonts} for fonts used in \textbf{JAchar}.
% \paragraph{Acknowledgments} -- æ¿å
¥ãããªããã
-\clearpage
+%\clearpage
%\section{Getting Started}
%\section{使ãæ¹}
%\subsection{Installation}
@@ -634,18 +649,18 @@ and \emph{Japanese fonts} for fonts used in \textbf{JAchar}.
%The following packages are needed for the \LuaTeX-ja\ package.
%\LuaTeX-jaããã±ã¼ã¸ã®åä½ã«ã¯æ¬¡ã®ããã±ã¼ã¸é¡ãå¿
è¦ã§ããï¼
\begin{itemize}
-\item \LuaTeX\ beta-0.85.0 (or later)
+\item \LuaTeX\ 1.0.0 (or later)
\item \Pkg{luaotfload} v2.6 (or later)
\item \Pkg{adobemapping} (Adobe cmap and pdfmapping files)
\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 \Pkg{fontspec} v2.5c (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, \LuaTeX-ja version 20160404.0 (or~later) no longer supports \TeX~Live~2015.
+%In summary, \LuaTeX-ja version 20180825.0 (or~later) no longer supports \TeX~Live~2016.
%<*ja>
-è¦ç´ããã¨ï¼20160404.0ç以éã®\LuaTeX-jaã¯\TeX~Live~2015以åã§ã¯åä½ããªã\footnote{%
+è¦ç´ããã¨ï¼ãã¼ã¸ã§ã³20180825.0以éã®\LuaTeX-jaã¯\TeX~Live~2016以åã§ã¯åä½ããªã\footnote{%
ãã£ã¨ãï¼èªåã§\LuaTeX ã®ãã¤ããªãSubversionãªãã¸ããªãããã«ããã¦ããã°è©±ã¯å¥ã§ããï¼
}ï¼
%
@@ -673,21 +688,6 @@ IPAex fonts are also available in these distributions.
W32\TeX ã«ããã¦ã¯IPAexãã©ã³ã㯠\texttt{luatexja.tar.xz} å
ã«ããï¼
%
-% %<*ja>
-% ä¾ãã°\TeX~Live~2015ãå©ç¨ãã¦ãããªãï¼\LuaTeX-jaã¯\TeX~Live manager (\texttt{tlmgr})ã
-% 使ã£ã¦ã¤ã³ã¹ãã¼ã«ãããã¨ãã§ããï¼
-% \begin{lstlisting}
-% $ tlmgr install luatexja
-% \end{lstlisting}
-% %
-% %<*en>
-% If you are using \TeX~Live~2015, you can install \LuaTeX-ja
-% from \TeX~Live manager (\texttt{tlmgr}):
-% \begin{lstlisting}
-% $ tlmgr install luatexja
-% \end{lstlisting}
-% %
-
%\paragraph{Manual installation}
%\paragraph{æåã¤ã³ã¹ãã¼ã«æ¹æ³}
@@ -816,8 +816,9 @@ For changes from \pTeX, see Subsection~\ref{ssec:chgptex}.
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.
+ LuaJIT has several limitations such as 1\,GB~(or~2\,GB) memory limitation.
+ So typesetting a large source by LuaJIT\TeX may cause an ``out of memory'' error,
+ or failure of loading/saving font cache of \Pkg{luaotfload}.
}.
%
%<*ja>
@@ -826,11 +827,13 @@ For changes from \pTeX, see Subsection~\ref{ssec:chgptex}.
LuaJIT\TeX ãç¨ããã¨\LuaTeX ã®ã ããã1.3åã®é度ã§åãããã§ãããï¼
IPA mjææãªã©ã®å¤§ãããã©ã³ããç¨ããå ´åã«ã¯\LuaTeX ãããé
ããªããã¨ããã
\footnote{%
- LuaJITã¯1\,GBï¼ãããã¯2\,GBï¼ã®ã¡ã¢ãªå¶éããããã¨ãç¥ããã¦ããï¼ãã®ããï¼
+ LuaJITã¯1\,GBï¼ãããã¯2\,GBï¼ã®ã¡ã¢ãªå¶éãªã©ï¼ããã¤ãã®å¶éäºé
ããããã¨ãç¥ããã¦ããï¼ãã®ããï¼
大ããã½ã¼ã¹ãã¡ã¤ã«ãLuaJIT\TeX ã§ã¿ã¤ãã»ããããã¨Luaã®å´ã§``out of memory''ã¨ã©ã¼ãçºçãã¦ãã¾ãï¼
æ¬ããã¥ã¡ã³ãã®ããã«ï¼ãåãã¼ã¸ãã¨ã«Luaã§ä½¿ã£ã¦ããã¡ã¢ãªå®¹éããã§ãã¯ãï¼
å¿
è¦ãªã\texttt{collectgarbage("collect")}ã§ã¬ãã¼ã¸ã³ã¬ã¯ã¿ãå®è¡ãããã¨
ç¶æ³ãå¤å°æ¹åããããããããªãï¼
+ ã¾ãï¼LuaJIT\TeX ã§IPA mjææãªã©ã®ã大ããããã©ã³ããå©ç¨ããå ´åã¯ãã©ã³ããã£ãã·ã¥ã®ä¿åã«å¤±æãï¼
+ æ¯åãã©ã³ããèªã¿è¾¼ã¾ãªããã°ãªããçµæçã«æéãããããã¨ãããï¼
}ï¼
%
@@ -875,7 +878,7 @@ and finally delete the temporary directory.
%\subsection{Using in plain \TeX}
%\subsection{plain \TeX ã§ä½¿ã}
-\label{ssec-plain}
+\label{ssec:plain}
%To use \LuaTeX-ja in plain \TeX, simply put the following at the beginning of the document:
%\LuaTeX-jaã plain \TeX ã§ä½¿ãããã«ã¯ï¼åã«æ¬¡ã®è¡ãã½ã¼ã¹ãã¡ã¤ã«ã®åé ã«è¿½å ããã°ããï¼
@@ -889,7 +892,7 @@ and finally delete the temporary directory.
%<*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
@@ -907,28 +910,30 @@ and finally delete the temporary directory.
%<*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}
%
\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}).
%
%<*ja>
-\item \texttt{luatexja.cfg} ãç¨ãããã¨ã«ãã£ã¦ï¼æ¨æºåæãã©ã³ãã
-IPAexãã©ã³ãããå¥ã®ãã©ã³ãã«ç½®ãæãããã¨ãã§ããï¼\ref{ssec-cfg}ç¯ãåç
§ï¼
+\item æ¨æºåæãã©ã³ããJFMãIPAexãã©ã³ãããå¥ã®ãã®ã«ç½®ãæããã«ã¯ï¼
+ \cs{ltj@stdmcfont}çã\texttt{luatexja.sty}èªã¿è¾¼ã¿\emph{å}ã«å®ç¾©ããã°ããï¼
+ \ref{ssec:cfg}ç¯ãåç
§ï¼
%
%<*en>
@@ -961,7 +966,7 @@ IPAexãã©ã³ãããå¥ã®ãã©ã³ãã«ç½®ãæãããã¨ãã§ããï¼
%\subsection{Using in \LaTeX}
%\subsection{\LaTeX ã§ä½¿ã}
-\label{ssec-ltx}
+\label{ssec:ltx}
%<*en>
Using in \LaTeXe\ is basically same. To set up the minimal environment
@@ -976,16 +981,16 @@ for Japanese, you only have to load \texttt{luatexja.sty}:
\end{lstlisting}
%<*en>
It also does minimal settings (counterparts in \pLaTeX\ are \texttt{%
-plfonts.dtx} and \texttt{pldefs.ltx}):
+plfonts.dtx} and \texttt{pldefs.ltx}).
%
%<*ja>
ããã§\pLaTeX ã®\texttt{plfonts.dtx}ã¨\texttt{pldefs.ltx}ã«ç¸å½ããæä½éã®è¨å®ã
-ãªãããï¼
+ãªãããï¼
%
\begin{itemize}
%<*en>
-\item Font encodings for Japanese fonts is \texttt{JY3}~(for horizontal direction) and
+\item Font encodings for Japanese fonts are \texttt{JY3}~(for horizontal direction) and
\texttt{JT3}~(for vertical direction).
%
%<*ja>
@@ -994,22 +999,22 @@ plfonts.dtx} and \texttt{pldefs.ltx}):
%
%<*en>
-\item Traditionally, Japanese documents use two typeface categories: \emph{mincho}~(ææä½) and
+\item Traditionally, Japanese documents use only two families: \emph{mincho}~(ææä½) and
\emph{gothic}~(\textgt{ã´ã·ãã¯ä½}). \emph{mincho} is used in the main text, while \emph{gothic}
is used in the headings or for emphasis.
\begin{center}\small
\begin{tabular}{lllc}
\toprule
-\textbf{classification}&&&\textbf{family name}\\\midrule
+\textbf{classification}&&&\textbf{commands}\\\midrule
\emph{mincho} (ææä½)&\verb+\textmc{...}+&\verb+{\mcfamily ...}+&\cs{mcdefault}\\
\emph{gothic} (\textgt{ã´ã·ãã¯ä½})&\verb+\textgt{...}+&\verb+{\gtfamily ...}+&\cs{gtdefault}\\
\bottomrule
\end{tabular}
\end{center}
\item
-By default, the following fonts are used for \emph{mincho} and \emph{gothic}:
+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\\
@@ -1017,14 +1022,14 @@ By default, the following fonts are used for \emph{mincho} and \emph{gothic}:
\bottomrule
\end{tabular}
\end{center}
-Note that the bold series in both family are same as the medium series of \emph{gothic}
- family. There is no italic nor slanted shape for
- these \texttt{mc}~and~\texttt{gt}.
+\item Note that the bold series (series \texttt{bx}~or~\texttt{b}) in both family
+ are same as the medium series of gothic family.
+ There is no italic nor slanted shape for these \texttt{mc}~and~\texttt{gt}.
%
%<*ja>
\item \pLaTeX ã¨åæ§ã«ï¼æ¨æºã§ã¯ãææä½ããã´ã·ãã¯ä½ãã®2種é¡ãç¨ããï¼
\begin{center}\small
-\begin{tabular}{cllc}
+\begin{tabular}{llll}
\toprule
\emph{åä½}&&&\emph{ãã¡ããªå}\\\midrule
ææä½&\verb+\textmc{...}+&\verb+{\mcfamily ...}+&\cs{mcdefault}\\
@@ -1032,23 +1037,46 @@ Note that the bold series in both family are same as the medium series of \emph{
\bottomrule
\end{tabular}
\end{center}
-\item æ¨æºã§ã¯ï¼æ¬¡ã®ãã©ã³ããã¡ããªãç¨ããããï¼
+ \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}
-ã©ã¡ãã®ãã¡ããªã«ããã¦ãï¼ãã®boldã·ãªã¼ãºã§ä½¿ããããã©ã³ãã¯
-ã´ã·ãã¯ä½ã®mediumã·ãªã¼ãºã§ä½¿ããããã©ã³ãã¨åãã§ãããã¨ã«æ³¨æï¼
+
+ææã»ã´ã·ãã¯ã©ã¡ãã®ãã¡ããªã«ããã¦ãï¼å¤ªå(\cs{bfseries})ã®ãã©ã³ãã¯
+ã´ã·ãã¯ä½ä¸å(\cs{gtfamily}\cs{mdseries})ã§ä½¿ããããã©ã³ãã¨åãã§ãããã¨ã«æ³¨æï¼
ã¾ãï¼ã©ã¡ãã®ãã¡ããªã§ãã¤ã¿ãªãã¯ä½ã»ã¹ã©ã³ãä½ã¯å®ç¾©ãããªãï¼
+
+ \item åæã®å¤ªåã表ãã·ãªã¼ãºåã¯ï¼ï¼å
ã
ã®Computer Modernã
+ 太åã«\texttt{bx}ãç¨ãã¦ãããã¨ããï¼ä¼çµ±çã«\texttt{bx}~(Bold Extended)ã使ããã¦ããï¼
+ ãããï¼å¤ªåã«ã·ãªã¼ãº\texttt{b}ã使ããã©ã³ããå¢ãã¦ããããï¼
+ ãã¼ã¸ã§ã³20180616.0以éã§ã¯åæã®å¤ªåã¨ãã¦\texttt{bx},~\texttt{b}ã®ä¸¡æ¹ãæ±ããããã«ããï¼
%
-%\item Japanese characters in math mode are typeset by the font family \texttt{mc}.
-%\item æ°å¼ã¢ã¼ãä¸ã®åææåã¯ææä½(\texttt{mc})ã§åºåãããï¼
+%<*en>
+ \item From version~20181102.0, one can specifies \texttt{disablejfam} option at
+ loading \LuaTeX-ja. This option prevents loading a patch for \LaTeX, which are
+ needed to support Japanese characters in math mode.
+
+ Without \texttt{disablejfam} option, one can typeset Japanese characters in
+ math mode as~\verb+$ã$+ (see Page~\pageref{para:jachar_in_math}) as before.
+ Japanese characters in math mode are typeset by the font family \texttt{mc}.
+%
+%<*ja>
+ \item ãã¼ã¸ã§ã³20181102.0以éã§ã¯ï¼\texttt{disablejfam}ãªãã·ã§ã³ã\LuaTeX-jaèªã¿è¾¼ã¿æã«
+ æå®ã§ããããã«ãªã£ãï¼ãã®ãªãã·ã§ã³ã¯ï¼æ°å¼ã¢ã¼ãä¸ã«ç´ã«åææåãæ¸ããããã«ããããã®
+ \LaTeX ã¸ã®ããããèªã¿è¾¼ã¾ãªãï¼
+
+ \texttt{disablejfam}ã®ãªãç¶æ³ã§ã¯ï¼ä»¥åã¨åæ§ã«åææåãæ°å¼ã¢ã¼ãä¸ã«
+ ç´ã«æ¸ããã¨ãã§ããï¼ä½ã\autoref{para:jachar_in_math}ãã¼ã¸ã®è¨è¿°ãåç
§ï¼ï¼
+ ãã®éã«ã¯ææä½(\texttt{mc})ã§åºåãããï¼
+%
%<*en>
\item \cs{jttdefault}%
\footnote{%
@@ -1058,7 +1086,7 @@ Note that the bold series in both family are same as the medium series of \emph{
These classes and packages also redefine \cs{jttdefault} to
\cs{gtdefault} (\emph{gothic}~family).
} specifies the Japanese font family in \cs{verb}~or~\texttt{verbatim} environment.
- The default value of \cs{jttdefault} is \cs{mcdefault}, so \emph{mincho} family is used.
+ The default value of \cs{jttdefault} is \cs{mcdefault}, so the mincho family is used.
%
%<*ja>
\item \cs{verb} ã \texttt{verbatim} ç°å¢ä¸ã®åææåã«ä½¿ãããåæãã©ã³ããã¡ããªã¯
@@ -1075,8 +1103,8 @@ Note that the bold series in both family are same as the medium series of \emph{
%<*en>
\item If you use the \Pkg{beamer} class with the default font theme (which uses sans serif
fonts) and with \LuaTeX-ja, you might want to change default Japanese fonts to
- \emph{gothic} family. The following line changes the default Japanese font family
- to \emph{gothic}:
+ the gothic family. The following line changes the default Japanese font family
+ to it:
%
%<*ja>
\item \Pkg{beamer}ã¯ã©ã¹ãæ¢å®ã®ãã©ã³ãè¨å®ã§ä½¿ãå ´åï¼æ¢å®æ¬§æãã©ã³ãããµã³ã»ãªããªã®
@@ -1087,6 +1115,15 @@ Note that the bold series in both family are same as the medium series of \emph{
\renewcommand{\kanjifamilydefault}{\gtdefault}
\end{lstlisting}
+%<*ja>
+\item \pLaTeX ã¨åæ§ã«ï¼\texttt{mc},~\texttt{gt}両ãã¡ããªã«ã¯ãå¾å±æ¬§æãæ¸ä½ãå®ç¾©ããã¦ããï¼
+ ãããã¯\cs{userelfont}ã\cs{selectfont}ï¼ãï¼ãã®ä»ã®ãå®éã«ã
+ ãã©ã³ããå¤æ´ããå½ä»¤ï¼ã®åã§å®è¡ãããã¨ã«ãã使ããã¨ãã§ããï¼
+
+ \pLaTeX ã§ã¯æ¨æºã®æ¬§æãã©ã³ãã¯OT1ã¨ã³ã³ã¼ãã£ã³ã°ã®Computer Modern Roman (\texttt{cmr})%
+ ã§ãã£ããï¼2017年以éã®\LuaLaTeX ã§ã¯TUã¨ã³ã³ã¼ãã£ã³ã°ã®latin Modern Roman (\texttt{lmr})%
+ ã«å¤æ´ããã¦ããï¼ãã®ããï¼å段è½ã§è¿°ã¹ããå¾å±æ¬§æããï¼Latin Modern Romanã«è¨å®ãã¦ããï¼
+%
\end{itemize}
@@ -1094,7 +1131,7 @@ Note that the bold series in both family are same as the medium series of \emph{
However, above settings are not sufficient for Japanese-based
documents. To typeset Japanese-based documents, you are better to use
class files other than \texttt{article.cls}, \texttt{book.cls}, and so on. At
-the present, we have the counterparts of \Pkg{jclasses} (standard
+the present, \LuaTeX-ja has the counterparts of \Pkg{jclasses} (standard
classes in \pLaTeX) and \Pkg{jsclasses} (classes by Haruhiko
Okumura), namely, \Pkg{ltjclasses}\footnote{%
\texttt{ltjarticle.cls},~\texttt{ltjbook.cls}, \texttt{ltjreport.cls},
@@ -1104,10 +1141,12 @@ Okumura), namely, \Pkg{ltjclasses}\footnote{%
\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,
-so \Pkg{ltjsclasses} use different method%
-\footnote{Similar to \texttt{magstyle=xreal} in the \Pkg{BXjscls} classes (by Takayuki Yato).}
-to set the main document font size.
+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.}
+ by default to set the main font size. If this causes some unexpected behavior, specify
+\texttt{nomag} option in \cs{documentclass}.
%
%<*ja>
ããããªããï¼ä¸è¨ã®è¨å®ã¯æ¥æ¬èªã®ææ¸ã«ã¨ã£ã¦ååã¨ã¯è¨ããªãï¼
@@ -1121,13 +1160,17 @@ to set the main document font size.
}ï¼
\Pkg{ltjsclasses}\footnote{%
\texttt{ltjsarticle.cls},~\texttt{ltjsbook.cls}, \texttt{ltjsreport.cls},~\texttt{ltjskiyou.cls}.}%
-ãããããç¨æããã¦ããï¼
+ããããã\LuaTeX-jaæ¨æºã§ç¨æããã¦ããï¼
-å
ã
ã®\Pkg{ltjsclasses}ã§ã¯ãã©ã³ããµã¤ãºãæå®ããã®ã«\cs{mag}ããªããã£ãã使ããã¦ãããï¼
-\LuaTeX~beta-0.87.0以éã§ã¯PDFåºåæã®\cs{mag}ã®ãµãã¼ããå»æ¢ãããï¼
-ãã®ããï¼\Pkg{ltjsclasses}ã§ã¯å¥ã®æ¹æ³
-\footnote{å
«ç»å´ä¹æ°ã«ãã\Pkg{BXjscls}ã¯ã©ã¹ã«ããã\texttt{magstyle=xreal}æå®æã¨é¡ä¼¼ãã¦ããï¼}ã§
-ãã©ã³ããµã¤ãºãæå®ãããã¨ã«ãã¦ããï¼
+å
ã
ã®\Pkg{jsclasses}ã§ã¯æ¬æã®ãã©ã³ããµã¤ãºãè¨å®ããã®ã«\cs{mag}ããªããã£ãã使ããã¦ãããï¼
+\LuaTeX ã§ã¯PDFåºåæã®\cs{mag}ã®ãµãã¼ããå»æ¢ãããï¼
+ãã®ããï¼\Pkg{ltjsclasses}ã§ã¯\texttt{nomag*}ãªãã·ã§ã³
+\footnote{\Pkg{jsclasses}ãï¼å
«ç»å´ä¹æ°ã«ãã\Pkg{BXjscls}ã¯ã©ã¹ã«ãããååã®ãªãã·ã§ã³ã¨
+ åãï¼ä¸è¨ã¯ã©ã¹ã¯\TeX ã³ã¼ãã®ã¿ã§å®è£
ãã¦ãããï¼\Pkg{ltjsclasses}ã§ã¯Luaã³ã¼ããç¨ãã¦ããï¼}ãæ¨æºã§
+æå¹ã«ãªã£ã¦ããï¼ããã使ã£ã¦æ¬æãã©ã³ããµã¤ãºã®è¨å®ãè¡ã£ã¦ããï¼
+ãããï¼ãã®\texttt{nomag*}ãªãã·ã§ã³ã§ã¯ï¼20180121.0çããåã®çã«ããã¦\Pkg{unicode-math}ããã±ã¼ã¸ä½¿ç¨æã«
+èµ·ããããã«ï¼äºæ³å¤ã®æå³ããªãç¾è±¡ã«ééããå±éºãããï¼ãã®ãããªå ´åã¯
+\cs{documentclass}ã«ããã¦\texttt{nomag}ãªãã·ã§ã³ãæå®ãã¦ã»ããï¼
%
%<*ja>
@@ -1205,17 +1248,17 @@ This patch \Pkg{lltjp-geometry} also can be used in \pLaTeX; for the detail, ple
%\section{ãã©ã³ãã®å¤æ´}
\subsection{plain \TeX~and~\LaTeXe}
-\label{ssec-chgfnt}
+\label{ssec:chgfnt}
\paragraph{plain \TeX}
%<*en>
To change Japanese fonts in plain \TeX, you must use the command
-\cs{jfont}~and~\cs{tfont}. So please see Subsection~\ref{ssec-jfont}.
+\cs{jfont}~and~\cs{tfont}. So please see Subsection~\ref{ssec:jfont}.
%
%<*ja>
plain \TeX ã§åæãã©ã³ããå¤æ´ããããã«ã¯ï¼
\pTeX ã®ããã« \cs{jfont} å½ä»¤ã \cs{tfont} å½ä»¤ãç´æ¥ç¨ããï¼
-\ref{ssec-jfont}ç¯ãåç
§ï¼
+\ref{ssec:jfont}ç¯ãåç
§ï¼
%
\paragraph{\LaTeXe\ (NFSS2)}
@@ -1237,7 +1280,7 @@ For \LaTeXe, \LuaTeX-ja adopted most of the font selection system of \pLaTeXe\ (
%<*en>
\begin{center}\small
-\begin{tabular}{cccccc}
+\begin{tabular}{llllll}
\toprule
&\textbf{encoding}&\textbf{family}&\textbf{series}&\textbf{shape}&\textbf{selection}\\\midrule
alphabetic fonts
@@ -1254,17 +1297,17 @@ auto select&\cs{fontencoding}&\cs{fontfamily}&---&---&\cs{usefont}\\
%
%<*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}
@@ -1278,7 +1321,7 @@ auto select&\cs{fontencoding}&\cs{fontfamily}&---&---&\cs{usefont}\\
alphabetic fonts to \texttt{T1}.
\cs{fontfamily} also changes the current Japanese font family,
the current alphabetic font family, \emph{or both}.
- For the detail, see Subsection~\ref{ssec-nfsspat}.
+ For the detail, see Subsection~\ref{ssec:nfsspat}.
%
%<*ja>
ããã§ï¼\verb+\fontencoding{+\verb+}+ ã¯ï¼å¼æ°ã«ããåæå´ã欧æ
@@ -1287,7 +1330,7 @@ auto select&\cs{fontencoding}&\cs{fontfamily}&---&---&\cs{usefont}\\
\texttt{JY3}ã«å¤æ´ãï¼\verb+\fontencoding{T1}+ ã¯æ¬§æãã©ã³ãå´ã
\texttt{T1}ã¸ã¨å¤æ´ããï¼\cs{fontfamily} ãå¼æ°ã«ããåæå´ï¼æ¬§æ
å´ï¼\emph{ãããã¯ä¸¡æ¹}ã®ãã©ã³ããã¡ããªãå¤æ´ããï¼è©³ç´°ã¯
- \ref{ssec-nfsspat}ç¯ãåç
§ãããã¨ï¼
+ \ref{ssec:nfsspat}ç¯ãåç
§ãããã¨ï¼
%
%<*en>
@@ -1311,19 +1354,23 @@ auto select&\cs{fontencoding}&\cs{fontfamily}&---&---&\cs{usefont}\\
\end{lstlisting}
%<*ja>
ä»®åæ¸ä½ã使ãå ´åãªã©ï¼è¤æ°ã®åæãã©ã³ããçµã¿åããã¦ä½¿ãããå ´åã¯
-\ref{ssec-altfont}ç¯ã® \cs{ltjdeclarealtfont} ã¨ï¼ãã®\LaTeX çã®\
-\cs{DeclareAlternateKanjiFont}ï¼\ref{ssec-nfsspat}ç¯ï¼ãåç
§ããï¼
+\ref{ssec:altfont}ç¯ã® \cs{ltjdeclarealtfont} ã¨ï¼ãã®\LaTeX çã®\
+\cs{DeclareAlternateKanjiFont}ï¼\ref{ssec:nfsspat}ç¯ï¼ãåç
§ããï¼
%
\end{itemize}
%<*en>
-\paragraph{Remark: Japanese characters in math mode}
+\paragraph{Japanese characters in math mode}
+\label{para:jachar_in_math}
+
Since \pTeX\ supports Japanese characters in math mode, there are
sources like the following:
%
%<*ja>
-\paragraph{注æï¼æ°å¼ã¢ã¼ãä¸ã®åææå}
+\paragraph{æ°å¼ã¢ã¼ãä¸ã®åææå}
+\label{para:jachar_in_math}
+
\pTeX ã§ã¯ï¼ç¹ã«ä½ãããªãã§ãæ°å¼ä¸ã«åææåãè¨è¿°ãããã¨ãã§ããï¼ãã®ããï¼
以ä¸ã®ãããªã½ã¼ã¹ãè¦ãããï¼
%
@@ -1362,23 +1409,37 @@ In this point of view,
$f_{\text{é«æ¸©}}$~%
($f_{\text{high temperature}}$).
\[ y=(x-1)^2+2\quad
- \mathrel{\text{ãã£ã¦}}\quad y>0 \]
+ \mathrel{\mbox{ãã£ã¦}}\quad y>0 \]
$5\in ç´ :=\{\,p\in\mathbb N:\text{$p$ is a prime}\,\}$.
\end{LTXexample}
+
%<*en>
We also believe that using Japanese characters as identifiers is rare,
hence we don't describe how to change Japanese fonts in math mode in
-this chapter. For the method, please see Subsection~\ref{ssec-math}.
+this chapter. For the method, please see Subsection~\ref{ssec:math}.
+
+{\emshape When \LuaTeX-ja is loaded with \texttt{disablejfam}~option,
+ one cannot write Japanese characters in math mode as~\verb+$ç´ $+.
+ At that case, one have to use \cs{mbox} (or~\cs{text} in the \Pkg{amsmath} package).
+}
%
%<*ja>
-ã¾ã\LuaTeX-jaããã¸ã§ã¯ãã§ã¯ï¼åææåãèå¥åã¨ãã¦ç¨ãããããã¨ã¯ã»ã¨ãã©ãªã
+ãªã\LuaTeX-jaããã¸ã§ã¯ãã§ã¯ï¼åææåãèå¥åã¨ãã¦ç¨ãããããã¨ã¯ã»ã¨ãã©ãªã
ã¨èãã¦ããï¼ãããã£ã¦ãã®ç¯ã§ã¯æ°å¼ã¢ã¼ãä¸ã®åæãã©ã³ããå¤æ´ããæ¹æ³ã«ã¤ãã¦ã¯
-è¨è¿°ããªãï¼ãã®æ¹æ³ã«ã¤ãã¦ã¯\ref{ssec-math}ç¯ãåç
§ã®ãã¨ï¼
+è¨è¿°ããªãï¼ãã®æ¹æ³ã«ã¤ãã¦ã¯\ref{ssec:math}ç¯ãåç
§ã®ãã¨ï¼
+
+{\gtfamily\bfseries
+ æ¢ã«è¨è¿°ããéãï¼\texttt{disablejfam}ãªãã·ã§ã³ãæå®ãã¦\LuaTeX-jaãèªã¿è¾¼ãã å ´åã¯ï¼
+ \verb+$ç´ $+ ã®ããã«ç´æ¥åææåãæ°å¼ã¢ã¼ãä¸ã«è¨è¿°ãããã¨ã¯ã§ããªããªãï¼
+ \cs{mbox}ï¼ãããã¯\Pkg{amsmath}ããã±ã¼ã¸ã®æä¾ãã\cs{text}å½ä»¤ãªã©ã使ããã¨ã«ãªãï¼
+}
%
+
+
%\subsection{\Pkg{luatexja-fontspec} package}
%\subsection{\Pkg{luatexja-fontspec}ããã±ã¼ã¸}
-\label{ssec-fontspec}
+\label{ssec:fontspec}
%<*en>
To use the functionality of the \Pkg{fontspec} package to Japanese fonts,
it is needed to load the \Pkg{luatexja-fontspec} package in the preamble, as follows:
@@ -1405,16 +1466,21 @@ TrueTypeã»OpenTypeãã©ã³ãã容æã«æ±ãããã®ããã±ã¼ã¸ã§ã
%
%<*en>
-In the \Pkg{luatexja-fontspec} package, the following seven~commands are defined as
-counterparts of original commands in the \Pkg{fontspec} package:
+In the \Pkg{luatexja-fontspec} package, several commands are defined as
+counterparts of original commands in the \Pkg{fontspec} package
+(see \autoref{tab:ltj_fntspc}):
%
%<*ja>
-\Pkg{luatexja-fontspec}ããã±ã¼ã¸ã§ã¯ï¼ä»¥ä¸ã®7ã¤ã®ã³ãã³ãã\Pkg{fontspec}
-ããã±ã¼ã¸ã®å
ã®ã³ãã³ãã«å¯¾å¿ãããã®ã¨ãã¦å®ç¾©ãã¦ããï¼
+\Pkg{luatexja-fontspec}ããã±ã¼ã¸ã§ã¯ï¼\autoref{tab:ltj_fntspc}ã®
+ãåæãè¡ã«ç¤ºããå½ä»¤ã\Pkg{fontspec}ããã±ã¼ã¸ã®å
ã®ã³ãã³ãï¼ã欧æãè¡ï¼
+ã«å¯¾å¿ãããã®ã¨ãã¦å®ç¾©ãã¦ããï¼
%
%<*en>
-\begin{center}\small
-\begin{tabular}{ccccc}
+\begin{table}
+\caption{Commands of \Pkg{luatexja-fontspec}}\label{tab:ltj_fntspc}
+\medskip
+{\centering\small
+\begin{tabular}{cllll}
\toprule
Japanese fonts
&\cs{jfontspec}&\cs{setmainjfont}&\cs{setsansjfont}&\cs{setmonojfont}$^*$\\
@@ -1422,36 +1488,62 @@ alphabetic fonts
&\cs{fontspec}&\cs{setmainfont}&\cs{setsansfont}&\cs{setmonofont}\\
\midrule
Japanese fonts
-&\cs{newjfontfamily}&\cs{newjfontface}
-&\cs{defaultjfontfeatures}&\cs{addjfontfeatures}\\
+&\cs{newjfontfamily}&\cs{renewjfontfamily}$^{**}$&\cs{setjfontfamily}$^{**}$\\
+alphabetic fonts
+&\cs{newfontfamily}&\cs{renewfontfamily}$^{**}$&\cs{setfontfamily}$^{**}$\\
+\midrule
+Japanese fonts
+&\cs{newjfontface}&\cs{defaultjfontfeatures}&\cs{addjfontfeatures}\\
alphabetic fonts
-&\cs{newfontfamily}&\cs{newfontface}
-&\cs{defaultfontfeatures}&\cs{addfontfeatures}\\
+&\cs{newfontface}&\cs{defaultfontfeatures}&\cs{addfontfeatures}\\
\bottomrule
-\end{tabular}
-\end{center}
+\end{tabular}\par}
+\medskip
+\fakefn{$^*$}{%
+ \cs{setmonojfont} is defined if and only if \texttt{match} option is specified.}
+\fakefn{$^{**}$}{%
+ \cs{renewfontfamily}~and~\cs{setfontfamily} are new commands
+ in \Pkg{fontspec}~v2.6h (2018/7/30).
+ Hence, \Pkg{luatexja-fontspec} define \cs{renewjfontfamily}~and~\cs{setjfontfamily}
+ only when \Pkg{fontspec}~v2.6h (or later) is used.
+}
+\end{table}
%
%<*ja>
-\begin{center}\small
-\begin{tabular}{cccc}
+\begin{table}
+\caption{\Pkg{luatexja-fontspec}ã§å®ç¾©ãããå½ä»¤}\label{tab:ltj_fntspc}
+\medskip
+{\centering\small
+\begin{tabular}{lllll}
\toprule
-åæ
-&\cs{jfontspec}&\cs{setmainjfont}&\cs{setsansjfont}\\
-欧æ
-&\cs{fontspec}&\cs{setmainfont}&\cs{setsansfont}\\
+\emph{åæ}
+&\cs{jfontspec}&\cs{setmainjfont}&\cs{setsansjfont}&\cs{setmonojfont}$^*$\\
+\emph{欧æ}
+&\cs{fontspec}&\cs{setmainfont}&\cs{setsansfont}&\cs{setmonofont}\\
\midrule
-åæ
-&\cs{newjfontfamily}&\cs{newjfontface}&\cs{defaultjfontfeatures}\\
-欧æ
-&\cs{newfontfamily}&\cs{newfontface}&\cs{defaultfontfeatures}\\
+\emph{åæ}
+&\cs{newjfontfamily}&\cs{renewjfontfamily}$^{**}$&\cs{setjfontfamily}$^{**}$\\
+\emph{欧æ}
+&\cs{newfontfamily}&\cs{renewfontfamily}$^{**}$&\cs{setfontfamily}$^{**}$\\
\midrule
-åæ
-&\cs{addjfontfeatures}\\
-欧æ
-&\cs{addfontfeatures}\\
+\emph{åæ}
+&\cs{newjfontface}&\cs{defaultjfontfeatures}&\cs{addjfontfeatures}\\
+\emph{欧æ}
+&\cs{newfontface}&\cs{defaultfontfeatures}&\cs{addfontfeatures}\\
\bottomrule
-\end{tabular}
-\end{center}
+\end{tabular}\par}
+
+\medskip
+\fakefn{$^*$}{\cs{setmonojfont} 㯠\texttt{match} ãªãã·ã§ã³ã
+æå®ãããæã®ã¿å®ç¾©ãããï¼}
+\fakefn{$^{**}$}{%
+ \cs{renewfontfamily} 㨠\cs{setfontfamily} ã¯
+ \Pkg{fontspec}~v2.6h (2018/7/30)ã§æ°ãã«è¿½å ãããå½ä»¤ã§ããï¼
+ ãã®ããï¼\Pkg{luatexja-fontspec}ã \cs{renewjfontfamily} 㨠\cs{setjfontfamily} ã
+ å®ç¾©ããã®ã¯v2.6h以éã®\Pkg{fontspec}ã使ç¨ããæã®ã¿ã«ãªã£ã¦ããï¼
+}
+
+\end{table}
%
% The package option of \Pkg{luatexja-fontspec} are the followings:
@@ -1482,13 +1574,23 @@ if and only if this \texttt{\textup{match}} option is specified}.
\item[scale=]
%<*en>
Override the ratio of the font size of Japanese fonts to that of alphabetic fonts.
-The default value is calculated automatically (for~example, about~0.924865 when
- the \Pkg{ltjsarticle} class is used).
+The default value is determined as follows:
+ \begin{itemize}
+ \item The value of \cs{Cjascale} is used, if this control sequence is already defined.
+ \item It is calculated automatically from the current Japanese font at the loading of the
+ package, if \cs{Cjascale} is not defined.
+ \end{itemize}
+\cs{Cjascale} is defined in \Pkg{ltjclasses} and \Pkg{ltjsclasses}.
%
%<*ja>
-欧æã«å¯¾ããåæã®æ¯çã¯ï¼æ¨æºã§ã¯ \Pkg{luatexja-fontspec}èªã¿è¾¼ã¿æã®å欧ææ¯çãã
-èªåè¨ç®ãããï¼ä¾ãã°ï¼\Pkg{ltjsarticle}ã¯ã©ã¹ä½¿ç¨æã«ã¯åæã¯æ¬§æã®ç´0.924865åã¨ãªãï¼ãï¼
-ãããæåã§ä¸æ¸ãããã¨ãã«ä½¿ç¨ããï¼
+欧æã«å¯¾ããåæã®æ¯çãæåã§ä¸æ¸ãããã¨ãã«ä½¿ç¨ããï¼
+æ¨æºã§ã¯
+\begin{itemize}
+ \item \cs{Cjascale}ãå®ç¾©ããã¦ããå ´å
+ \footnote{\LuaTeX-ja ãç¨æãã¦ããã¯ã©ã¹ãã¡ã¤ã«(\Pkg{ltjclasses},~\Pkg{ltjsclasses})ã
+ 使ãå ´åã¯ãã¡ãã«å½ã¦ã¯ã¾ãï¼}ã¯ï¼ãããç¨ããï¼
+ \item \cs{Cjascale}ãæªå®ç¾©ã®å ´åã¯ï¼\Pkg{luatexja-fontspec}èªã¿è¾¼ã¿æã®åæãã©ã³ãããèªåè¨ç®ãããï¼
+\end{itemize}
%
\end{cslist}
@@ -1535,1901 +1637,1291 @@ JIS~X~0208:1990âè¾»
%\subsection{Presets of Japanese fonts}
%\subsection{åæãã©ã³ãã®ããªã»ããè¨å®}
-\label{ssec-preset}
+\label{ssec:preset-abst}
%<*en>
-One can load the \Pkg{luatexja-preset}
-package to use several ``presets'' of Japanese fonts.
-This package provides functions in a part of
-\Pkg{japanese-otf} package and a part of \Pkg{PXchfon} package by Takayuki Yato.
-
-One can specified other options other than listed in this subsection.
-These are simply passed to the \Pkg{luatexja-fontspec}\footnote{if \texttt{nfssonly} option is
-\emph{not} specified; in this case these options are simply ignored.}.
-For example, the line~5 in below example is eqivalent to lines 1--3.
+With \Pkg{luatexja-preset} package,
+one use one of ``preset'' to simplify Japanese font setting.
+For details of package options, and those of each presets, please see Subsecion~\ref{ssec:preset}.
+The following presets are defined:
%
%<*ja>
ãã使ããã¦ããåæãã©ã³ãè¨å®ãä¸è¡ã§æå®ã§ããããã«ããã®ã
-\Pkg{luatexja-preset}ããã±ã¼ã¸ã§ããï¼ãã®ããã±ã¼ã¸ã¯ï¼
-\Pkg{otf}ããã±ã¼ã¸ã®ä¸é¨æ©è½ã¨å
«ç»å´ä¹æ°ã«ãã\Pkg{PXchfon}ããã±ã¼ã¸ã®ä¸é¨æ©è½ã¨ã
-åããããããªæ ¼å¥½ããã¦ããï¼
-
-ãªãã·ã§ã³ã¨ãã¦ï¼æ¬ç¯ã«ãªããã®ãæå®ãããã¨ãã§ãããï¼ãããã¯
-\Pkg{luatexja-fontspec}ããã±ã¼ã¸ã«æ¸¡ããã\footnote{\texttt{nfssonly} ãªãã·ã§ã³ã
-æå®ããã¦ããå ´åã¯ï¼\Pkg{luatexja-fontspec}ããã±ã¼ã¸ã¯èªã¿è¾¼ã¾ããªãã®ã§åç´ã«ç¡è¦ãã
-ãï¼}ï¼ä¾ãã°ï¼ä¸ã®1--3è¡ç®ã¯5è¡ç®ã®ããã«ä¸è¡ã«ã¾ã¨ãããã¨ãã§ããï¼
+\Pkg{luatexja-preset}ããã±ã¼ã¸ã§ããï¼ãªãã·ã§ã³ãåããªã»ããã®è©³ç´°ã«ã¤ãã¦ã¯
+\ref{ssec:preset}ç¯ãåç
§ãã¦æ¬²ããï¼
+ç¾æç¹ã§ã¯ä»¥ä¸ã®ããªã»ãããå®ç¾©ããã¦ããï¼
%
+\begin{quote}
+ \ttfamily
+ \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,
+ 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}
+
+% ä¾ãã°ï¼æ¬ããã¥ã¡ã³ãã§ã¯\Pkg{luatexja-preset}ããã±ã¼ã¸ã
+% For example, this document loads \Pkg{luatexja-preset} package by
\begin{lstlisting}
-\usepackage[no-math]{fontspec}
-\usepackage[match]{luatexja-fontspec}
\usepackage[kozuka-pr6n]{luatexja-preset}
-%%--------
-\usepackage[no-math,match,kozuka-pr6n]{luatexja-preset}
\end{lstlisting}
+%ã¨ãã¦èªã¿è¾¼ã¿ï¼å°å¡æ¸ä½(Pr6N)ã使ããã¨ãæå®ãã¦ããï¼
+% which means that Kozuka~Pr6N fonts will be used in this document.
-%\paragraph{General options}
-%\paragraph{ä¸è¬çãªãªãã·ã§ã³}
-\begin{cslist}[before*=]
-\item[fontspec%
-%\textrm{~(enabled by default)}
-%\emph{\gtfamily ï¼æ¢å®ï¼}
-]
-%<*en>
-With this option, Japanese fonts are selected using functionality of
-the \Pkg{luatexja-fontspec} package. This means that the \Pkg{fontspec} package is
- automatically loaded by this package.
-If you need to pass some options to \Pkg{fontspec}, you can load \Pkg{fontspec} manually
-before \Pkg{luatexja-preset}:
+%<*en>
+\subsection{\cs{CID}, \cs{UTF}, and macros in \Pkg{japanese-otf} package}
+Under \pLaTeX, \Pkg{japanese-otf} package (developed by Shuzaburo Saito) is
+used for typesetting characters which is in Adobe-Japan1-6 CID but not
+in JIS~X~0208. Since this package is widely used, \LuaTeX-ja
+supports some of functions in the \Pkg{japanese-otf} package,
+as an external package \Pkg{luatexja-otf}.
%
%<*ja>
-\Pkg{luatexja-fontspec}ããã±ã¼ã¸ã®æ©è½ãç¨ãã¦åæãã©ã³ããé¸æããï¼
-ããã¯ï¼\Pkg{fontspec}ããã±ã¼ã¸ãèªåã§èªã¿è¾¼ã¾ãããã¨ãæå³ããï¼
-
-ãã\Pkg{fontspec}ããã±ã¼ã¸ã«ä½ããã®ãªãã·ã§ã³ã渡ãå¿
è¦ããã
-\footnote{ä¾ãã°ï¼æ°å¼ãã©ã³ãã¾ã§ç½®æããã¦ãã¾ãï¼\cs{mathit}ã«ãã£ã¦ã®ãªã·ã£æåã®
-æä½å¤§æåãåºãªããªãï¼ãªã©ï¼}å ´åã¯ï¼
-次ã®ããã«\Pkg{luatexja-preset}ã®åã«\Pkg{fontspec}ãæåã§èªã¿ããã°è¯ãï¼
+\subsection{\cs{CID}, \cs{UTF}ã¨\Pkg{otf}ããã±ã¼ã¸ã®ãã¯ã}
+\pLaTeX ã§ã¯ï¼JIS~X~0208ã«ãªãAdobe-Japan1-6ã®æåãåºåããããã«ï¼
+é½è¤ä¿®ä¸éæ°ã«ãã\Pkg{otf}ããã±ã¼ã¸ãç¨ãããã¦ããï¼ãã®ããã±ã¼ã¸ã¯
+åºãç¨ãããã¦ããããï¼\LuaTeX-jaã«ããã¦ã\Pkg{otf}ããã±ã¼ã¸ã®æ©è½ã®
+ä¸é¨ãï¼\Pkg{luatexja-otf}ã¨ããå¥ã®ããã±ã¼ã¸ã¨ãã¦ï¼å®è£
ããï¼
%
-\begin{lstlisting}
-\usepackage[no-math]{fontspec}
-\usepackage[...]{luatexja-preset}
-\end{lstlisting}
-\item[nfssonly]
-%<*en>
-With this option, selecting Japanese fonts won't be performed using the functionality of
- the \Pkg{fontspec} package, but only standard NFSS2 (hence without
- \cs{addjfontfeatures} etc.).
-This option is ignored when \Pkg{luatexja-fontspec} package is loaded.
+\begin{LTXexample}
+\jfontspec{KozMinPr6N-Regular.otf}
+森\UTF{9DD7}å¤ã¨å
ç°ç¾\UTF{9592}ã¨ã\UTF{9AD9}島å±ã«è¡ãã
+
+\CID{7652}飾åºã®\CID{13706}é家ï¼
+\CID{1481}åå¸ï¼è西é§
ï¼
+é«å´ã¨\CID{8705}\UTF{FA11}
+
+\ajåè§{ã¯ãããã«ã¿ã«ã}
+\end{LTXexample}
-When this option is specified, \Pkg{fontspec}~and~\Pkg{luatexja-fontspec} are
-\emph{not} loaded by default. Nevertheless,
-the package\Pkg{fontspec} can coexist with the option, as the following:
-\begin{lstlisting}
-\usepackage{fontspec}
-\usepackage[hiragino-pron,nfssonly]{luatexja-preset}
-\end{lstlisting}
-In this case, one can use \cs{setmainfont} etc.\ to select \emph{alphabetic} fonts.
-%
%<*ja>
-\LaTeX æ¨æºã®ãã©ã³ãé¸ææ©æ§(NFSS2)ãç¨ãã¦
-\texttt{ltjpm}ï¼ææï¼ï¼\texttt{ltjpg}ï¼ã´ã·ãã¯ï¼ï¼ããã«å¾ã«è¿°ã¹ã \texttt{deluxe} ãªã
- ã·ã§ã³ãæå®ãããå ´åã«ã¯ \texttt{ltjpmg}ï¼ä¸¸ã´ã·ãã¯ï¼ã¨ãã
-3ã¤ã®åæãã©ã³ããã¡ããªãå®ç¾©ãï¼ããããç¨ããï¼
+\Pkg{otf}ããã±ã¼ã¸ã§ã¯ï¼ãããã次ã®ãããªãªãã·ã§ã³ãåå¨ããï¼
+\begin{cslist}
+\item[deluxe] ææä½ã»ã´ã·ãã¯ä½å3ã¦ã§ã¤ãã¨ï¼ä¸¸ã´ã·ãã¯ä½ãæ±ããããã«ãªãï¼
+\item[expert] ä»®åã横çµã»ç¸¦çµå°ç¨ã®ãã®ã«åãæ¿ããï¼ã«ãç¨ä»®åã
+\ \cs{rubyfamily}\ ã«ãã£ã¦æ±ããããã«ãªãï¼
+\item[bold] ã´ã·ãã¯ä½ãæ¨æºã§å¤ªãã¦ã§ã¤ãã®ãã®ã«è¨å®ããï¼
+\end{cslist}
+ããããããã®ãªãã·ã§ã³ã¯\Pkg{luatexja-otf}ããã±ã¼ã¸ã«ã¯åå¨ããªãï¼
+\Pkg{otf}ããã±ã¼ã¸ãææ¸ä¸ã§ä½¿ç¨ããåæç¨TFMãèªåã®ç©ã«ç½®ãæãã¦ããã®ã«å¯¾ãï¼
+\Pkg{luatexja-otf}ããã±ã¼ã¸ã§ã¯ï¼ãã®ãããªãã¨ã¯è¡ããªãããã§ããï¼
-æ¬ãªãã·ã§ã³æå®æã«ã¯\Pkg{fontspec}ã»\Pkg{luatexja-fontspec}ããã±ã¼ã¸ã¯
-èªåã§ã¯èªã¿è¾¼ã¾ããªãï¼ãããï¼
-\begin{lstlisting}
-\usepackage{fontspec}
-\usepackage[hiragino-pron,nfssonly]{luatexja-preset}
-\end{lstlisting}
-ã®ããã«ããã°ï¼ãã®ãªãã·ã§ã³ãæå®ããã°
-欧æãã©ã³ãã\Pkg{fontspec}ããã±ã¼ã¸ã®æ©è½ã使ã£ã¦æå®ãããã¨ãã§ããï¼
-ä¸æ¹ï¼
-ããã±ã¼ã¸èªã¿è¾¼ã¿æã«æ¢ã«\Pkg{luatexja-fontspec}ããã±ã¼ã¸ãèªã¿è¾¼ã¾ãã¦
- ããå ´å㯠\texttt{nfssonly} ãªãã·ã§ã³ã¯ç¡è¦ãããï¼
+ããã3ãªãã·ã§ã³ã«ã¤ãã¦ã¯ï¼
+\Pkg{luatexja-preset} ããã±ã¼ã¸ã«ããªã»ããã使ãæã«ä¸ç·ã«æå®ãããï¼
+ãããã¯å¯¾å¿ããå
容ã\ref{ssec:chgfnt}ç¯ï¼\ref{ssec:nfsspat}ç¯ (NFSS2) ã
+\ref{ssec:fontspec}ç¯ (\Pkg{fontspec}) ã®æ¹æ³ã§æåã§æå®ããå¿
è¦ãããï¼
%
-\item[match]
+%\section{Changing Internal Parameters}
+%\section{ãã©ã¡ã¼ã¿ã®å¤æ´}
+
%<*en>
-If this option is specified, usual family-changing commands such as
-\cs{rmfamily},~\cs{textrm}, \cs{sffamily},~\dots\ also change Japanese font family.
-This option is passed to \Pkg{luatexja-fontspec}, if \texttt{fontspec}
-option is specifed.
+There are many internal parameters in \LuaTeX-ja. And due to the behavior of \LuaTeX,
+most of them are not stored as internal register of \TeX, but as an
+original storage system in \LuaTeX-ja. Hence, to assign or acquire those
+parameters, you have to use commands \cs{ltjsetparameter} and
+\cs{ltjgetparameter}.
%
-
%<*ja>
-ãã®ãªãã·ã§ã³ãæå®ãããã¨ï¼ã\pLaTeXe æ°ããã¥ã¡ã³ãã¯ã©ã¹ãã®ããã«\
-\cs{rmfamily}, \verb+\textrm{...}+, \cs{sffamily} çã
-欧æãã©ã³ãã ãã§ãªãåæãã©ã³ããå¤æ´ããããã«ãªãï¼
-\ \texttt{fontspec}\
-ãªãã·ã§ã³ãæå¹ã«ãªã£ã¦ããå ´åã¯ï¼ãã®ãªãã·ã§ã³ã¯ \Pkg{luatexja-fontspec} ããã±ã¼ã¸ã¸ã¨æ¸¡ãããï¼
+\LuaTeX-jaã«ã¯å¤ãã®ãã©ã¡ã¼ã¿ãåå¨ããï¼ããã¦\LuaTeX ã®ä»æ§ã®ããã«ï¼
+ãã®å¤ãã¯\TeX ã®ã¬ã¸ã¹ã¿ã«ã§ã¯ãªãï¼\LuaTeX-jaç¬èªã®æ¹æ³ã§ä¿æããã¦ããï¼
+ãããã®ãã©ã¡ã¼ã¿ãè¨å®ã»åå¾ããããã«ã¯ \cs{ltjsetparameter} 㨠\cs{ltjgetparameter} ã
+ç¨ããï¼
%
+%\subsection{Range of \textbf{JAchar}s}
+%\subsection{\textbf{JAchar}ã®ç¯å²}
+\label{ssec:setrange}
-\item[nodeluxe%
-%\textrm{~(enabled by default)}
-%\emph{\gtfamily ï¼æ¢å®ï¼}
-]
%<*en>
-The nagation of \texttt{deluxe} option.
-Use one-weighted \textit{mincho} and \textit{gothic} font families.
-This means that \verb+\mcfamily\bfseries+, \verb+\gtfamily\bfseries+ and
-\verb+\gtfamily\mdseries+ use the same font.
+\LuaTeX-ja divides the Unicode codespace \texttt{U+0080}--\texttt{U+10FFFF}
+into \emph{character ranges},
+numbered 1 to 217. The grouping can be (globally) customized by \cs{ltjdefcharrange}.
+The next line adds whole characters in Supplementary Ideographic Plane
+and the character ``æ¼¢'' to the character range~100.
%
%<*ja>
-\texttt{deluxe}ãªãã·ã§ã³ã®å¦å®ï¼
-\LaTeXe ç°å¢ä¸ã®æ¨æºè¨å®ã®ããã«ï¼ææä½ã»ã´ã·ãã¯ä½ãå1ã¦ã§ã¤ãã§ä½¿ç¨ããï¼
-ããå
·ä½çã«è¨ãã¨ï¼ãã®è¨å®ã®ä¸ã§ã¯
-\ \verb+\mcfamily\bfseries+, \verb+\gtfamily\bfseries+,
-\verb+\gtfamily\mdseries+ã¯ã¿ãªåããã©ã³ãã¨ãªãï¼
+\LuaTeX-jaã¯ï¼Unicodeã® \texttt{U+0080}--\texttt{U+10FFFF} ã®ç©ºéã
+1çªãã217çªã¾ã§ã®\emph{æåç¯å²}ã«åå²ãã¦ããï¼
+åºåã㯠\cs{ltjdefcharrange} ãç¨ãããã¨ã§ï¼ã°ãã¼ãã«ã«ï¼å¤æ´ãããã¨ãã§ãï¼
+ä¾ãã°ï¼æ¬¡ã¯è¿½å æ¼¢åé¢(SIP)ã«ããå
¨ã¦ã®æåã¨ãæ¼¢ããã100çªã®æåç¯å²ãã«è¿½å ããï¼
%
-\item[deluxe]
+\begin{lstlisting}
+\ltjdefcharrange{100}{"20000-"2FFFF,`æ¼¢}
+\end{lstlisting}
+
%<*en>
-Use \textit{mincho} with two weights (medium~and~bold),
-\textit{gothic} with three weights (medium, bold~and~heavy), and \textit{rounded gothic}%
-\footnote{Provided by \cs{mgfamily} and \cs{textmg},
-because \textit{rounded gothic} is called \textit{maru gothic} (丸ã´ã·ãã¯) in Japanese.}.
-The heavy weight of \textit{gothic} can be used by ``changing the family'' \cs{gtebfamily},
-or \verb+\textgteb{...}+.
-This is because the \Pkg{fontspec} package can handle only medium (\cs{mdseries}) and
-bold (\cs{bfseries}).
+A character can belong to only one character range.
+For example, whole SIP belong to the range~4 in the default setting of \LuaTeX-ja,
+and if one executes the above line, then SIP will belong to the range~100 and be
+removed from the range~4.
%
%<*ja>
-ææä½2ã¦ã§ã¤ãã»ã´ã·ãã¯ä½3ã¦ã§ã¤ãã¨ï¼
-丸ã´ã·ãã¯ä½ (\cs{mgfamily}, \verb+\textmg{...}+) ã使ç¨å¯è½ã¨ããï¼
-ã´ã·ãã¯ä½ã¯ä¸åã»å¤ªåã»æ¥µå¤ªã®3ã¦ã§ã¤ãããããï¼
-極太ã´ã·ãã¯ä½ã使ãå ´åï¼
-\begin{itemize}
- \item \cs{gtebfamily}, \verb+\textgteb{...}+
- \item \cs{ebseries} ï¼å¨å²ãã´ã·ãã¯ä½ã®ã¨ãï¼\texttt{nfssonly} ãªãã·ã§ã³æå®æã®ã¿ï¼
-\end{itemize}
-ã®ãããããç¨ããï¼æ¨æºã§ \cs{ebseries} ãæºåããã¦ããªãã®ã¯ï¼ãã¼ã¸ã§ã³ãå¤ã
-\Pkg{fontspec}ã§ã¯ä¸å(\cs{mdseries})ã¨å¤ªå(\cs{bfseries})ããæ±ããªãã£ãåæ®ã§ããï¼
+åæåã¯ãã ä¸ã¤ã®æåç¯å²ã«æå±ãããã¨ãã§ããï¼
+ä¾ãã°ï¼SIPå
ã®æåã¯å
¨ã¦\LuaTeX-jaã®ããã©ã«ãã§ã¯4çªã®æåç¯å²ã«
+å±ãã¦ãããï¼ä¸è¨ã®æå®ãè¡ãã°SIPå
ã®æåã¯100çªã«å±ãããã«ãªãï¼4çªããã¯é¤ãããï¼
%
-\item[expert]
+
%<*en>
-Use horizontal/vertical kana alternates, and define a command \cs{rubyfamily} to use kana
-characters designed for ruby.
+The distinction between \textbf{ALchar} and \textbf{JAchar} is performed by character ranges.
+This can be edited by setting the \textsf{jacharrange} parameter.
+For example, the code below is just the default setting of \LuaTeX-ja, and
+it sets
+\begin{itemize}
+ \item a character which belongs character ranges 1,~4, 5, and~8 is \textbf{ALchar},
+ \item a character which belongs character ranges 2,~3, 6, and~7 is \textbf{JAchar}.
+\end{itemize}
%
%<*ja>
-横çµã»ç¸¦çµå°ç¨ä»®åãç¨ããï¼ã¾ãï¼\cs{rubyfamily} ã§ã«ãç¨ä»®åã使ç¨å¯è½ã¨ãªã\footnote{%
- \cs{rubyfamily}ã¨ã¯ããã¤ã¤ï¼å®éã«ã¯ãã©ã³ããã¡ããªãåãæ¿ããã®ã§ã¯ãªãï¼é常ã§ã¯
- font featureã®è¿½å ï¼\texttt{nfssonly} æå®æã«ã¯ã·ã§ã¤ãã \texttt{rb} ã«åãæ¿ãï¼ï¼
-}ï¼
+\textbf{ALchar}ã¨\textbf{JAchar}ã®åºå¥ã¯æåç¯å²ãã¨ã«è¡ãããï¼
+ããã¯\textsf{jacharrange}ãã©ã¡ã¼ã¿ã«ãã£ã¦ç·¨éã§ããï¼
+ä¾ãã°ï¼ä»¥ä¸ã¯\LuaTeX-jaã®åæè¨å®ã§ããï¼æ¬¡ã®å
容ãè¨å®ãã¦ããï¼
+\begin{itemize}
+ \item 1çªï¼4çªï¼5çªï¼8çªã®æåç¯å²ã«å±ããæåã¯\textbf{ALchar}ï¼
+ \item 2çªï¼3çªï¼6çªï¼7çªã®æåç¯å²ã«å±ããæåã¯\textbf{JAchar}ï¼
+\end{itemize}
%
-\item[bold]
-%<*en>
-Substitute bold series of \textit{gothic} for bold series of \textit{mincho}.
-If \texttt{nodeluxe} option is enabled, medium series of \textit{gothic} is also changed,
-since we use same font for both series of \textit{gothic}.
-%
+\begin{lstlisting}
+\ltjsetparameter{jacharrange={-1, +2, +3, -4, -5, +6, +7, -8}}
+\end{lstlisting}
+%<*en>
+The argument to \textsf{jacharrange} parameter is a list of non-zero integer.
+Negative integer $-n$ in the list means that ``each character in the range~$n$ is an
+\textbf{ALchar}'',
+and positive integer $+n$ means that ``\dots\ is a \textbf{JAchar}''.
+%
%<*ja>
-ãææã®å¤ªåããã´ã·ãã¯ä½ã®å¤ªåã«ãã£ã¦ä»£æ¿ããï¼
-ãã\texttt{nodeluxe}ãªãã·ã§ã³ãæå®ããã¦ããå ´åã¯ï¼ã´ã·ãã¯ä½ã¯1ã¦ã§ã¤ããã使ç¨ãããª
- ãããï¼
-ãã´ã·ãã¯ä½ã®ä¸åããåæã«å¤æ´ããããã¨ã«ãªãï¼
+\textsf{jacharrange}ãã©ã¡ã¼ã¿ã®å¼æ°ã¯éé¶ã®æ´æ°ã®ãªã¹ãã§ããï¼
+ãªã¹ãä¸ã®è² ã®æ´æ°$-n$ã¯ãæåç¯å²$n$ã«å±ããæåã¯\textbf{ALchar}ã¨ãã¦
+æ±ãããã¨ãæå³ãï¼æ£ã®æ´æ°$+n$ã¯ã\textbf{JAchar}ã¨ãã¦æ±ãããã¨ãæå³ããï¼
%
-\item[90jis]
-%Use 90JIS glyph variants if possible.
-%åºæ¥ãéã90JISã®åå½¢ã使ãï¼
-\item[jis2004]
-%Use JIS2004 glyph variants if possible.
-%åºæ¥ãéãJIS2004ã®åå½¢ã使ãï¼
-\item[jfm\_yoko=]
+
%<*en>
-Use the JFM \texttt{jfm-.lua} for horizontal direction, instead of \texttt{jfm-ujis.lua}~(default JFM).
+Note that characters \texttt{U+0000}--\texttt{U+007F} are always treated as an
+\textbf{ALchar} (this cannot be customized).
%
%<*ja>
-横çµç¨åæãã©ã³ãã§ç¨ããJFMã\texttt{jfm-.lua}ã«ããï¼ãã®ãªãã·ã§ã³ããªãæã¯
-\LuaTeX\nobreakdash -jaæ¨æºã®\texttt{jfm-ujis.lua}ãç¨ããããï¼
+ãªãï¼\texttt{U+0000}--\texttt{U+007F} ã¯å¸¸ã«\textbf{ALchar}ã¨ãã¦æ±ãããï¼å©ç¨è
ãå¤æ´ã
+ããã¨ã¯åºæ¥ãªãï¼ï¼
%
-\item[jfm\_tate=]
+
%<*en>
-Use the JFM \texttt{jfm-.lua} for vertical direction, instead of \texttt{jfm-ujisv.lua}~(default JFM).
+\paragraph{Default character ranges}
+\LuaTeX-ja predefines eight character ranges for convenience. They are
+determined from the following data:
%
%<*ja>
-縦ç¨åæãã©ã³ãã§ç¨ããJFMã\texttt{jfm-.lua}ã«ããï¼ãã®ãªãã·ã§ã³ããªãæã¯
-\LuaTeX-jaæ¨æºã®\texttt{jfm-ujisv.lua}ãç¨ããããï¼
+\paragraph{æåç¯å²ã®åæå¤}
+\LuaTeX-jaã§ã¯8ã¤ã®æåç¯å²ãäºãå®ç¾©ãã¦ããï¼
+ãããã¯ä»¥ä¸ã®ãã¼ã¿ã«åºã¥ãã¦æ±ºå®ãã¦ããï¼
%
+\begin{itemize}
+%\item Blocks in Unicode~12.0.0.
+%\item Unicode~11.0ã®ãããã¯ï¼
+%\item The \texttt{Adobe-Japan1-UCS2} mapping between a CID Adobe-Japan1-6 and Unicode.
+%\item Adobe-Japan1-6ã®CIDã¨Unicodeã®éã®å¯¾å¿è¡¨\texttt{Adobe-Japan1-UCS2}ï¼
+%\item The \Pkg{PXbase} bundle for \upTeX\ by Takayuki Yato.
+%\item å
«ç»å´ä¹æ°ã«ãã\upTeX ç¨ã®\Pkg{PXbase}ãã³ãã«ï¼
+\end{itemize}
-\item[jis]
-%Same as \texttt{jfm\_yoko=jis}.
-%\texttt{jfm\_yoko=jis}ã¨åãï¼ããã§ç¨ããJFM\texttt{jfm-jis.lua}ã¯JISãã©ã³ãã¡ããªãã¯ãå
ã«ãããã®ã§ããï¼
-
-\end{cslist}
%<*en>
-Note that \texttt{90jis} and \texttt{jis2004} only affect with \textit{mincho},
-\textit{gothic} (and possibly \textit{rounded gothic}) defined by this package.
-We didn't taken account of when both \texttt{90jis} and \texttt{jis2004} are specified.
+Now we describe these eight ranges. The superscript ``J'' or ``A'' after the
+number shows whether each character in the range is treated as
+\textbf{JAchar}s or not by default. These settings are similar to the
+\texttt{prefercjk} settings defined in \texttt{PXbase} bundle.
+Any characters equal to or above \texttt{U+0080} which does not belong to
+these eight ranges belongs to the character range~217.
%
%<*ja>
-\texttt{90jis}ã¨\texttt{jis2004}ã«ã¤ãã¦ã¯æ¬ããã±ã¼ã¸ã§å®ç¾©ããã
-ææä½ã»ã´ã·ãã¯ä½ï¼ã»ä¸¸ã´ã·ãã¯ä½ï¼ã«ã®ã¿æå¹ã§ããï¼
-両ãªãã·ã§ã³ãåæã«æå®ãããå ´åã®åä½ã«ã¤ãã¦ã¯å
¨ãèæ
®ãã¦ããªãï¼
+以ä¸ã§ã¯ããã8ã¤ã®æåç¯å²ã«ã¤ãã¦è¨è¿°ããï¼æ·»åã®ã¢ã«ãã¡ããããJããAã
+ã¯ï¼ãã®æåç¯å²å
ã®æåã\textbf{JAchar}ã\textbf{ALchar}ãã表ãã¦ããï¼ãããã®åæè¨å®ã¯
+\texttt{PXbase}ãã³ãã«ã§å®ç¾©ããã¦ãã\texttt{prefercjk}ã¨é¡ä¼¼ã®ãã®ã§ãããï¼
+8ããããã©ã³ã使ç¨æã®ãã©ãã«ãé²ãããã« \texttt{U+0080}--\texttt{U+00FF} ã®æåã¯å
¨é¨
+\textbf{ALchar}ã¨ãã¦ããï¼
+ãªãï¼\texttt{U+0080} 以éã§ããã8ã¤ã®æåç¯å²ã«å±ããªãæåã¯ï¼217çªã®æåç¯å²ã«å±ãããã¨ã«ãªã£ã¦ããï¼
%
-
-%\paragraph{Presets for multi weight}
-%\paragraph{å¤ã¦ã§ã¤ãç¨ããªã»ããã®ä¸è¦§}
+\begin{description}
%<*en>
-Besides \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}.
+
+\item[Range~8${}^{\text{A}}$] The intersection of the upper half of ISO~8859-1
+ (Latin-1 Supplement) and JIS~X~0208 (a basic character set for Japanese). This character range
+ consists of the following characters:
%
%<*ja>
-\texttt{morisawa-pro}, \texttt{morisawa-pr6n}以å¤ã¯ãã©ã³ãã®æå®ã¯
-ï¼ãã¡ã¤ã«åã§ãªãï¼ãã©ã³ãåã§è¡ãããï¼
-以ä¸ã®è¡¨ã«ããã¦ï¼*\,ã¤ãã®ãã©ã³ã(e,g,~KozGo\dots-Regular)ã¯ï¼\emph{\texttt{deluxe}ãªãã·ã§ã³æå®æã«}
-ã´ã·ãã¯ä½ä¸åã¨ãã¦ç¨ãããããã®ã示ãã¦ããï¼
+\item[ç¯å²8${}^{\text{A}}$] ISO~8859-1ã®ä¸ä½é åï¼ã©ãã³1è£å©ï¼ã¨
+ JIS~X~0208ã®å
±éé¨åï¼ãã®æåç¯å²ã¯
+ 以ä¸ã®æåã§æ§æãããï¼
%
-\begin{cslist}[style=standard]
- \item[kozuka-pro] Kozuka Pro (Adobe-Japan1-4) fonts.
-% \\*[-\dimexpr\medskipamount+\baselineskip\relax]
- \item[kozuka-pr6] Kozuka Pr6 (Adobe-Japan1-6) fonts.
-% \\*[-\dimexpr\medskipamount+\baselineskip\relax]
- \item[kozuka-pr6n] Kozuka Pr6N (Adobe-Japan1-6, JIS04-savvy) fonts.
+\begin{multicols}{2}
+\begin{itemize}
+\def\ch#1#2{\item \char"#1\ (\texttt{U+00#1}, #2)}%"
+\ch{A7}{Section Sign}
+\ch{A8}{Diaeresis}
+\ch{B0}{Degree sign}
+\ch{B1}{Plus-minus sign}
+\ch{B4}{Spacing acute}
+\ch{B6}{Paragraph sign}
+\ch{D7}{Multiplication sign}
+\ch{F7}{Division Sign}
+\end{itemize}
+\end{multicols}
%<*en>
-Kozuka Pro/Pr6N fonts are bundled with Adobe's software, such as Adobe~InDesign.
-There is not rounded gothic family in Kozuka fonts.
+\item[Range~1${}^{\text{A}}$] Latin characters that some of them are included in Adobe-Japan1-6.
+This range consists of the following Unicode ranges, \emph{except characters in the range~8 above}:
%
%<*ja>
-å°å¡Proæ¸ä½ã»Pr6Næ¸ä½ã¯Adobe InDesignçã®Adobe製åã«ãã³ãã«ããã¦ããï¼
-ãå°å¡ä¸¸ã´ã·ãã¯ãã¯åå¨ããªãã®ã§ï¼ä¾¿å®çã«å°å¡ã´ã·ãã¯Hã«ãã£ã¦ä»£ç¨ãã¦ããï¼
+\item[ç¯å²1${}^{\text{A}}$] ã©ãã³æåã®ãã¡ï¼Adobe-Japan1-6ã¨ã®å
±éé¨åããããã®ï¼
+ ãã®ç¯å²ã¯ä»¥ä¸ã®Unicodeã®ãããã¯ã®ãã¡
+ \emph{ç¯å²8ãé¤ãã}é¨åã§æ§æããã¦ããï¼
%
-\begin{center}\small
-\begin{tabular}{cllll}
-\toprule
-\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}}}%
-%\smash{\raisebox{1.5ex}{\gt ææ}}%
- &bold&KozMinPro-Bold&KozMinProVI-Bold&KozMinPr6N-Bold\\
-\midrule
- &&KozGoPro-Regular*&KozGoProVI-Regular*&KozGoPr6N-Regular*\\
- &\smash{\raisebox{1.5ex}{medium}}
- &KozGoPro-Medium&KozGoProVI-Medium&KozGoPr6N-Medium\\
-\cmidrule(l){2-5}
-%\smash{\raisebox{2ex}{\textit{gothic}}}%
-%\smash{\raisebox{2ex}{\gt ã´ã·ãã¯}}%
- &bold&KozGoPro-Bold&KozGoProVI-Bold&KozGoPr6N-Bold\\
- &heavy&KozGoPro-Heavy&KozGoProVI-Heavy&KozGoPr6N-Heavy\\
-\midrule
-%\textit{rounded gothic}
-%\gt 丸ã´ã·ãã¯
-&&KozGoPro-Heavy&KozGoProVI-Heavy&KozGoPr6N-Heavy\\
-\bottomrule
+\begin{multicols}{2}
+\begin{itemize}
+\item \texttt{U+0080}--\texttt{U+00FF}: Latin-1 Supplement
+\item \texttt{U+0100}--\texttt{U+017F}: Latin Extended-A
+\item \texttt{U+0180}--\texttt{U+024F}: Latin Extended-B
+\item \texttt{U+0250}--\texttt{U+02AF}: IPA Extensions
+\item \texttt{U+02B0}--\texttt{U+02FF}: Spacing Modifier Letters
+%\par\
+\item \texttt{U+0300}--\texttt{U+036F}: \\*\null\hfill Combining Diacritical Marks
+\item \texttt{U+1E00}--\texttt{U+1EFF}: \\*\null\hfill Latin Extended Additional
+%\par\
+\end{itemize}
+\end{multicols}
+%<*en>
+\item[Range~2${}^{\text{\kern.1emJ}}$] Greek and Cyrillic letters. JIS~X~0208 (hence most of Japanese
+ fonts) has some of these characters.
+%
+%<*ja>
+\item[ç¯å²2${}^{\text{\kern.1emJ}}$] ã®ãªã·ã£æåã¨ããªã«æåï¼JIS~X~0208ï¼ãããã£ã¦ã»ã¨ãã©ã®
+ åæãã©ã³ãï¼ã«ã¯ï¼ãããã®æåã®ä¸é¨ãå«ã¾ãã¦ããï¼
+%
+\begin{multicols}{2}
+\begin{itemize}
+\item \texttt{U+0370}--\texttt{U+03FF}: Greek and Coptic
+\item \texttt{U+0400}--\texttt{U+04FF}: Cyrillic
+\item \texttt{U+1F00}--\texttt{U+1FFF}: Greek Extended
+\\\
+\end{itemize}
+\end{multicols}
+%<*en>
+\item[Range~3${}^{\text{\kern.1emJ}}$] Punctuations and Miscellaneous symbols. The block list is
+ indicated in \autoref{tab:rng3}.
+%
+%<*ja>
+\item[ç¯å²3${}^{\text{\kern.1emJ}}$] å¥èªç¹ã¨è¨å·é¡ï¼ãããã¯ã®ãªã¹ãã¯\autoref{tab:rng3}%
+ ã«ç¤ºãã¦ããï¼
+%
+\begin{table}[!tb]
+%\caption{Unicode blocks in predefined character range~3.}\medskip
+%\caption{æåç¯å²3ã«æå®ããã¦ããUnicodeãããã¯ï¼}
+\label{tab:rng3}
+\catcode`\"=13\def"#1#2#3#4{\texttt{U+#1#2#3#4}}%"
+\centering\footnotesize
+\begin{tabular}{llll}
+"2000--"206F&General Punctuation&
+"2070--"209F&Superscripts and Subscripts\\
+"20A0--"20CF&Currency Symbols&
+"20D0--"20FF&Comb.\ Diacritical Marks for Symbols\\
+"2100--"214F&Letterlike Symbols&
+"2150--"218F&Number Forms\\
+"2190--"21FF&Arrows&
+"2200--"22FF&Mathematical Operators\\
+"2300--"23FF&Miscellaneous Technical&
+"2400--"243F&Control Pictures\\
+"2500--"257F&Box Drawing&
+"2580--"259F&Block Elements\\
+"25A0--"25FF&Geometric Shapes&
+"2600--"26FF&Miscellaneous Symbols\\
+"2700--"27BF&Dingbats&
+"2900--"297F&Supplemental Arrows-B\\
+"2980--"29FF&Misc.\ Math Symbols-B&
+"2B00--"2BFF&Misc.\ Symbols and Arrows
\end{tabular}
-\end{center}
-
- \item[hiragino-pro] Hiragino Pro (Adobe-Japan1-5) fonts.
-% \\*[-\dimexpr\medskipamount+\baselineskip\relax]
- \item[hiragino-pron] Hiragino ProN (Adobe-Japan1-5, JIS04-savvy) fonts.
-
+\end{table}
%<*en>
-Hiragino fonts are bundled with Mac OS~X 10.5 or later.
-Some editions of a Japanese word-processor ``ä¸å¤ªé2012'' includes Hiragino ProN fonts.
-Note that the heavy weight of \textit{gothic} family only supports
-Adobe-Japan1-3 character collection (Std/StdN).
+\item[Range~4${}^{\text{A}}$] Characters usually not in Japanese fonts. This range consists
+ of almost all Unicode blocks which are not in other
+ predefined ranges. Hence, instead of showing the block list,
+ we put the definition of this range itself:
%
%<*ja>
-ãã©ã®ããã©ã³ãã¯ï¼Mac OS~X以å¤ã«ãï¼ä¸å¤ªé2012ã®ä¸ä½ã¨ãã£ã·ã§ã³ã«ããã³ãã«ããã¦ããï¼
-極太ã´ã·ãã¯ã¨ãã¦ç¨ãããã©ã®ãè§ã´W8ã¯ï¼Adobe-Japan1-3ã®ç¯å²ããã«ãã¼ãã¦ããªã
-Std/StdNãã©ã³ãã§ããï¼ãã®ä»ã¯Adobe-Japan1-5対å¿ã§ããï¼
+\item[ç¯å²4${}^{\text{A}}$] é常åæãã©ã³ãã«ã¯å«ã¾ãã¦ããªãæåï¼
+ ãã®ç¯å²ã¯ä»ã®ç¯å²ã«ãªãã»ã¨ãã©å
¨ã¦ã®Unicodeãããã¯
+ ã§æ§æããã¦ããï¼ãããã£ã¦ï¼ãããã¯ã®ãªã¹ãã示ã
+ 代ããã«ï¼ç¯å²ã®å®ç¾©ãã®ãã®ã示ãï¼
%
-\begin{center}\small
-\begin{tabular}{clll}
-\toprule
-\bf family&\bf series&\tt hiragino-pro&\tt hiragino-pron\\
-\midrule
- &medium&Hiragino~Mincho~Pro~W3&Hiragino~Mincho~ProN~W3\\
-%\smash{\raisebox{1.5ex}{\textit{mincho}}}%
-%\smash{\raisebox{1.5ex}{\gt ææ}}%
- &bold&Hiragino~Mincho~Pro~W6&Hiragino~Mincho~ProN~W6\\
-\midrule
- &&Hiragino~Kaku~Gothic~Pro~W3*&Hiragino~Kaku~Gothic~ProN~W3*\\
- &\smash{\raisebox{1.5ex}{medium}}
- &Hiragino~Kaku~Gothic~Pro~W6&Hiragino~Kaku~Gothic~ProN~W6\\
-\cmidrule(l){2-4}
-%\smash{\raisebox{2ex}{\textit{gothic}}}%
-%\smash{\raisebox{2ex}{\gt ã´ã·ãã¯}}%
- &bold&Hiragino~Kaku~Gothic~Pro~W6&Hiragino~Kaku~Gothic~ProN~W6\\
- &heavy&Hiragino~Kaku~Gothic~Std~W8&Hiragino~Kaku~Gothic~StdN~W8\\
-\midrule
-%\textit{rounded gothic}
-%\gt 丸ã´ã·ãã¯
-&&Hiragino~Maru~Gothic~Pro~W4&Hiragino~Maru~Gothic~ProN~W4\\
-\bottomrule
+\begin{lstlisting}
+\ltjdefcharrange{4}{%
+ "500-"10FF, "1200-"1DFF, "2440-"245F, "27C0-"28FF, "2A00-"2AFF,
+ "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}
+%\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 \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{tab:rng6}
+\catcode`\"=13\def"#1#2#3#4{\texttt{U+#1#2#3#4}}%"
+\centering\footnotesize
+\begin{tabular}{llll}
+"2460--"24FF&Enclosed Alphanumerics&
+"2E80--"2EFF&CJK Radicals Supplement\\
+"3000--"303F&CJK Symbols and Punctuation&
+"3040--"309F&Hiragana\\
+"30A0--"30FF&Katakana&
+"3190--"319F&Kanbun\\
+"31F0--"31FF&Katakana Phonetic Extensions&
+"3200--"32FF&Enclosed CJK Letters and Months\\
+"3300--"33FF&CJK Compatibility&
+"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&
+"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{center}
-
- \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
-\bf family&\bf series&morisawa-pro&morisawa-pr6n\\
-\midrule
- &medium&A-OTF-RyuminPro-Light.otf&A-OTF-RyuminPr6N-Light.otf\\
-%\smash{\raisebox{1.5ex}{\textit{mincho}}}%
-%\smash{\raisebox{1.5ex}{\gt ææ}}%
- &bold&A-OTF-FutoMinA101Pro-Bold.otf&A-OTF-FutoMinA101Pr6N-Bold.otf\\
-\midrule
- &medium
- &A-OTF-GothicBBBPro-Medium.otf&A-OTF-GothicBBBPr6N-Medium.otf\\
-%\textit{gothic}%
-%\gt ã´ã·ãã¯
- &bold&A-OTF-FutoGoB101Pro-Bold.otf&A-OTF-FutoGoB101Pr6N-Bold.otf\\
- &heavy&A-OTF-MidashiGoPro-MB31.otf&A-OTF-MidashiGoPr6N-MB31.otf\\
-\midrule
-%\textit{rounded gothic}
-%\gt 丸ã´ã·ãã¯
-&&A-OTF-Jun101Pro-Light.otf&A-OTF-ShinMGoPr6N-Light.otf\\
-\bottomrule
+\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 \autoref{tab:rng7}.
+%
+%<*ja>
+\item[ç¯å²7${}^{\text{\kern.1emJ}}$] CJKè¨èªã§ç¨ããããæåã®ãã¡ï¼Adobe-Japan1-6ã«
+ å«ã¾ãã¦ããªããã®ï¼
+ ãããã¯ã®ãªã¹ãã¯\autoref{tab:rng7}ã«ç¤ºãï¼
+%
+\begin{table}[!tb]
+%\caption{Unicode blocks in predefined character range~7.}\medskip
+%\caption{æåç¯å²7ã«æå®ããã¦ããUnicodeãããã¯ï¼}
+\label{tab:rng7}
+\catcode`\"=13\def"#1#2#3#4{\texttt{U+#1#2#3#4}}%"
+\centering\small
+\begin{tabular}{llll}
+"1100--"11FF&Hangul Jamo&
+"2F00--"2FDF&Kangxi Radicals\\
+"2FF0--"2FFF&Ideographic Description Characters&
+"3100--"312F&Bopomofo\\
+"3130--"318F&Hangul Compatibility Jamo&
+"31A0--"31BF&Bopomofo Extended\\
+"31C0--"31EF&CJK Strokes&
+"A000--"A48F&Yi Syllables\\
+"A490--"A4CF&Yi Radicals&
+"A960--"A97F&Hangul Jamo Extended-A\\
+"AC00--"D7AF&Hangul Syllables&
+"D7B0--"D7FF&Hangul Jamo Extended-B
\end{tabular}
-\end{center}
+\end{table}
+\end{description}
-\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}{cllll}
-\toprule
-\bf family&\bf series&\texttt{yu-win}&\texttt{yu-win10}&\texttt{yu-osx}\\
-\midrule
- &medium&YuMincho-Regular&YuMincho-Regular&YuMincho~Medium\\
-%\smash{\raisebox{1.5ex}{\textit{mincho}}}%
-%\smash{\raisebox{1.5ex}{\gt ææ}}%
- &bold&YuMincho-Demibold&YuMincho-Demibold&YuMincho~Demibold\\
-\midrule
- &&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&YuGothic~Bold\\
- &heavy&YuGothic-Bold&YuGothic-Bold&YuGothic~Bold\\
-\midrule
-%\textit{rounded gothic}
-%\gt 丸ã´ã·ãã¯
-&&YuGothic-Bold&YuGothic-Bold&YuGothic~Bold\\
-\bottomrule
-\end{tabular}
-\end{center}
+%<*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{marvosym} package.
-\item[moga-mobo] MogaMincho, MogaGothic, and MoboGothic.
-% \\*[-\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
-\bf family&\bf series&\bf default, \texttt{90jis}~option&\bf \texttt{jis2004} option\\
-\midrule
- &medium&Moga90Mincho&MogaMincho\\
-%\smash{\raisebox{1.5ex}{\textit{mincho}}}%
-%\smash{\raisebox{1.5ex}{\gt ææ}}%
- &bold&Moga90Mincho Bold&MogaMincho Bold\\
-\midrule
- &medium&Moga90Gothic&MogaGothic\\
-%\textit{gothic}%
-%\gt ã´ã·ãã¯
- &bold&Moga90Gothic Bold&MogaGothic Bold\\
- &heavy&Moga90Gothic Bold&MogaGothic Bold\\
-\midrule
-%\textit{rounded gothic}
-%\gt 丸ã´ã·ãã¯
-&&Mobo90Gothic&MoboGothic\\
-\bottomrule
-\end{tabular}
-\end{center}
-%When \texttt{moga-mobo-ex} is specified, the font ``MogaEx90Mincho'' etc.\ are used.
-%\texttt{moga-mobo-ex}ãªãã·ã§ã³æå®æã«ã¯MogaEx90Minchoãªã©ã®Exãååã«ã¤ãããã©ã³ãã使ãããï¼
+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{Frowny} produces ``\ltjjachar`§'' (in a Japanese font).
-\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}
+To avoid such situations, the default setting of \LuaTeX-ja is changed in version~20150906.0
+so that all characters \texttt{U+0080}--\texttt{U+00FF} are treated as \textbf{ALchar}.
-%\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}
+If you want to output a character as \textbf{ALchar} and \textbf{JAchar} regardless the range
+setting, you can use \cs{ltjalchar} and \cs{ltjjachar} respectively, as the following example.
+\begin{LTXexample}[width=0.3\textwidth]
+\gtfamily\large % default, ALchar, JAchar
+¶, \ltjalchar`¶, \ltjjachar`¶\\ % default: ALchar
+α, \ltjalchar`α, \ltjjachar`α % default: JAchar
+\end{LTXexample}
+%
+%<*ja>
+\paragraph{\texttt{U+0080}--\texttt{U+00FF}ã«ã¤ãã¦ã®æ³¨æ}
+\LuaTeX-jaã§ï¼\Pkg{marvosym}ããã±ã¼ã¸çï¼Unicodeãã©ã³ãã§ãªã
+ä¼çµ±çãª8ããããã©ã³ããç¨ããå ´åã«ã¯æ³¨æãå¿
è¦ã§ããï¼
+ä¾ãã°ï¼\Pkg{marvosym}ããã±ã¼ã¸ã®æä¾ãã \cs{Frowny} ãï¼ç¬¦å·ä½ç½®ã¯167ï¼ã¤ã¾ãUnicodeã«ããã
+\S\ (\text{U+00A7}) ã¨åã符å·ä½ç½®ã«ããï¼
+å³ã¡ï¼ä»¥åã®ãã¼ã¸ã§ã³ã®ããã«ï¼ãåç¯ã®æåç¯å²8å
ã®æåã¯\textbf{JAchar}ãã¨ããè¨å®ã§
+ãã£ãã¨ããã¨ï¼ä¸è¨ã® \cs{Frowny} ã¯åæãã©ã³ãã§ã\ltjjachar`§ããåºåãããã¨ã«ãªãï¼
- \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}
+ãã®ãããªäºæ
ãé¿ããããã«ï¼ãã¼ã¸ã§ã³20150906.0ãã㯠\texttt{U+0080}--\texttt{U+00FF} ã®ç¯å²ã®
+æåã¯å
¨ã¦\textbf{ALchar}ã¨ãªãããã«åæè¨å®ãå¤æ´ãã¦ããï¼
+ãªãï¼æåç¯å²ã®è¨å®ã«é¢ããã1ã¤ã®æåã\textbf{ALchar}, \textbf{JAchar}ã§åºåãããå ´åã«ã¯ï¼
+以ä¸ã®ä¾ã®ããã«ãããã \cs{ltjalchar},~\cs{ltjjachar} ã«è©²å½æåã®æåã³ã¼ãã渡ãã°ããï¼
+\begin{LTXexample}[width=0.3\textwidth]
+\gtfamily\large % default, ALchar, JAchar
+¶, \ltjalchar`¶, \ltjjachar`¶\\ % default: ALchar
+α, \ltjalchar`α, \ltjjachar`α % default: JAchar
+\end{LTXexample}
+%
-\end{cslist}
-%\paragraph{Presets for single weight}
-%\paragraph{åã¦ã§ã¤ãç¨ããªã»ããä¸è¦§}
+%\subsection{\Param{kanjiskip} and \Param{xkanjiskip}}
+%\subsection{\Param{kanjiskip}ã¨\Param{xkanjiskip}}
+\label{subs-kskip}
+
+%\textbf{JAglue} is divided into the following three categories:
+%\textbf{JAglue}ã¯ä»¥ä¸ã®3ã¤ã®ã«ãã´ãªã«åé¡ãããï¼
+\begin{itemize}
%<*en>
-Next, we describe settings for using only single weight.
+\item Glues/kerns specified in JFM. If \cs{inhibitglue} is issued
+ around a \textbf{JAchar}, this glue will not be inserted at the
+ place.
%
%<*ja>
-次ã«ï¼åã¦ã§ã¤ãç¨ã®è¨å®ãè¿°ã¹ãï¼ãã®4è¨å®ã§ã¯
-ææä½å¤ªåã»ä¸¸ã´ã·ãã¯ä½ã¯ã´ã·ãã¯ä½ã¨åããã©ã³ããç¨ããããï¼
+\item JFMã§æå®ãããã°ã«ã¼ï¼ã«ã¼ã³ï¼ãã \cs{inhibitglue} ã\textbf{JAchar}ã®å¨ãã§
+ çºè¡ããã¦ããã°ï¼ãã®ã°ã«ã¼ã¯æ¿å
¥ãããªãï¼
%
-\par\nobreak\medskip
-{\centering\small
-\begin{tabular}{lllll}
-\toprule
-&\tt noembed&\tt ipa&\tt ipaex&\tt ms\\
-\midrule
%<*en>
-\it mincho&Ryumin-Light (non-embedded)
-&IPA Mincho&IPAex Mincho&MS Mincho\\
-\it gothic&GothicBBB-Medium (non-embedded)
-&IPA Gothic&IPAex Gothic&MS Gothic\\
+\item The default glue which inserted between two \textbf{JAchar}s (\Param{%
+ kanjiskip}).
%
%<*ja>
-\gtfamily ææä½&Ryumin-Lightï¼éåè¾¼ï¼
-&IPAææ&IPAexææ&MSææ\\
-\gtfamily ã´ã·ãã¯ä½&GothicBBB-Mediumï¼éåè¾¼ï¼
-&IPAã´ã·ãã¯&IPAexã´ã·ãã¯&MSã´ã·ãã¯\\
+\item ããã©ã«ãã§2ã¤ã®\textbf{JAchar}ã®éã«æ¿å
¥ãããã°ã«ã¼(\Param{kanjiskip})ï¼
%
-\bottomrule
-\end{tabular}\par\medskip}
-
-%\paragraph{Using HG fonts}
-%\paragraph{HGãã©ã³ãã®å©ç¨}
%<*en>
-We can use HG~fonts bundled with Microsoft~Office for realizing multiple weights.
-%
-%<*ja>
-ããåã«æ¸ããåã¦ã§ã¤ãç¨è¨å®ãï¼Microsoft Officeçã«ä»å±ããHGãã©ã³ãã使ã£ã¦
-å¤ã¦ã§ã¤ãåããè¨å®ãããï¼
-%
-\par\nobreak\medskip
-{\centering\small
-\begin{tabular}{llll}
-\toprule
-&\tt ipa-hg&\tt ipaex-hg&\tt ms-hg\\
-\midrule
-%<*en>
-\bf mincho medium
-&IPA Mincho&IPAex Mincho&MS Mincho\\\midrule
-\bf mincho bold&
-\multicolumn{3}{c}{HG Mincho E}\\\midrule
-\bf Gothic medium\\
-~~without \texttt{deluxe}
-&IPA Gothic&IPAex Gothic&MS Gothic\\
-~~with {\tt jis2004}
-&IPA Gothic&IPAex Gothic&MS Gothic\\
-\cmidrule(lr){1-4}
-~~otherwise&
-\multicolumn{3}{c}{HG Gothic M}\\\midrule
-\bf gothic bold&
-\multicolumn{3}{c}{HG Gothic E}\\\midrule
-\bf gothic heavy&
-\multicolumn{3}{c}{HG Soei Kaku Gothic UB}\\\midrule
-\bf rounded gothic&
-\multicolumn{3}{c}{HG Maru Gothic PRO}\\
-%
-%<*ja>
-\gtfamily ææä½ä¸å
-&IPAææ&IPAexææ&MSææ\\\midrule
-\gtfamily ææä½å¤ªå&
-\multicolumn{3}{c}{HGææE}\\\midrule
-\gtfamily ã´ã·ãã¯ä½ä¸å\\
-ãåã¦ã§ã¤ãæ
-&IPAã´ã·ãã¯&IPAexã´ã·ãã¯&MSã´ã·ãã¯\\
-ã{\tt jis2004}æå®æ
-&IPAã´ã·ãã¯&IPAexã´ã·ãã¯&MSã´ã·ãã¯\\
-\cmidrule(lr){1-4}
-ããã以å¤ã®æ&
-\multicolumn{3}{c}{HGã´ã·ãã¯M}\\\midrule
-\gtfamily ã´ã·ãã¯ä½å¤ªå&
-\multicolumn{3}{c}{HGã´ã·ãã¯E}\\\midrule
-\gtfamily ã´ã·ãã¯ä½æ¥µå¤ª&
-\multicolumn{3}{c}{HGåµè±è§ã´ã·ãã¯UB}\\\midrule
-\gtfamily 丸ã´ã·ãã¯ä½&
-\multicolumn{3}{c}{HG丸ã´ã·ãã¯ä½PRO}\\
-%
-\bottomrule
-\end{tabular}\par\medskip}
-
-%<*en>
-Note that HG~Mincho~E, HG~Gothic~E, HG Soei Kaku Gothic UB, and HG Maru Gothic PRO
-are internally specified by:
-\begin{description}
-\item[default] by font name (\texttt{HGMinchoE}, etc.).
-\item[{\tt 90jis}] by file name (\texttt{hgrme.ttc}, \texttt{hgrge.ttc}, \texttt{hgrsgu.ttc}, \texttt{hgrsmp.ttf}).
-\item[{\tt jis2004}] by file name (\texttt{hgrme04.ttc}, \texttt{hgrge04.ttc}, \texttt{hgrsgu04.ttc}, \texttt{hgrsmp04.ttf}).
-\end{description}
+\item The default glue which inserted between a \textbf{JAchar} and an
+ \textbf{ALchar} (\Param{xkanjiskip}).
%
%<*ja>
-ãªãï¼HGææEã»HGã´ã·ãã¯Eã»HGåµè±è§ã´ã·ãã¯UBã»HG丸ã´ã·ãã¯ä½PROã®4ã¤ã«ã¤ãã¦ã¯ï¼å
é¨ã§
-\begin{description}
-\item[æ¨æº] ãã©ã³ãåï¼\texttt{HGMinchoE} ãªã©ï¼
-\item[{\tt 90jis}æå®æ] ãã¡ã¤ã«å (%
-\texttt{hgrme.ttc}, \texttt{hgrge.ttc}, \texttt{hgrsgu.ttc}, \texttt{hgrsmp.ttf})
-\item[{\tt jis2004}æå®æ] ãã¡ã¤ã«å (%
-\texttt{hgrme04.ttc}, \texttt{hgrge04.ttc}, \texttt{hgrsgu04.ttc}, \texttt{hgrsmp04.ttf})
-\end{description}
-ã¨ãã¦æå®ãè¡ã£ã¦ããã®ã§æ³¨æãããã¨ï¼
+\item ããã©ã«ãã§\textbf{JAchar}ã¨\textbf{ALchar}ã®éã«æ¿å
¥ãããã°ã«ã¼(\Param{xkanjiskip})ï¼
%
-
-
+\end{itemize}
%<*en>
-\subsection{\cs{CID}, \cs{UTF}, and macros in \Pkg{japanese-otf} package}
-Under \pLaTeX, \Pkg{japanese-otf} package (developed by Shuzaburo Saito) is
-used for typesetting characters which is in Adobe-Japan1-6 CID but not
-in JIS~X~0208. Since this package is widely used, \LuaTeX-ja
-supports some of functions in the \Pkg{japanese-otf} package,
-as an external package \Pkg{luatexja-otf}.
+The value (a skip) of \Param{kanjiskip} or
+\Param{xkanjiskip} can be changed as the following.
+Note that only their values \emph{at the end of a paragraph or a hbox are
+adopted in the whole paragraph or the whole hbox.
+}
%
%<*ja>
-\subsection{\cs{CID}, \cs{UTF}ã¨\Pkg{otf}ããã±ã¼ã¸ã®ãã¯ã}
-\pLaTeX ã§ã¯ï¼JIS~X~0208ã«ãªãAdobe-Japan1-6ã®æåãåºåããããã«ï¼
-é½è¤ä¿®ä¸éæ°ã«ãã\Pkg{otf}ããã±ã¼ã¸ãç¨ãããã¦ããï¼ãã®ããã±ã¼ã¸ã¯
-åºãç¨ãããã¦ããããï¼\LuaTeX-jaã«ããã¦ã\Pkg{otf}ããã±ã¼ã¸ã®æ©è½ã®
-ä¸é¨ãï¼\Pkg{luatexja-otf}ã¨ããå¥ã®ããã±ã¼ã¸ã¨ãã¦ï¼å®è£
ããï¼
-%
-
-\begin{LTXexample}
-\jfontspec{KozMinPr6N-Regular.otf}
-森\UTF{9DD7}å¤ã¨å
ç°ç¾\UTF{9592}ã¨ã\UTF{9AD9}島å±ã«è¡ãã
-
-\CID{7652}飾åºã®\CID{13706}é家ï¼
-\CID{1481}åå¸ï¼è西é§
ï¼
-é«å´ã¨\CID{8705}\UTF{FA11}
-
-\ajåè§{ã¯ãããã«ã¿ã«ã}
-\end{LTXexample}
-
-%<*ja>
-\Pkg{otf}ããã±ã¼ã¸ã§ã¯ï¼ãããã次ã®ãããªãªãã·ã§ã³ãåå¨ããï¼
-\begin{cslist}
-\item[deluxe] ææä½ã»ã´ã·ãã¯ä½å3ã¦ã§ã¤ãã¨ï¼ä¸¸ã´ã·ãã¯ä½ãæ±ããããã«ãªãï¼
-\item[expert] ä»®åã横çµã»ç¸¦çµå°ç¨ã®ãã®ã«åãæ¿ããï¼ã«ãç¨ä»®åã
-\ \cs{rubyfamily}\ ã«ãã£ã¦æ±ããããã«ãªãï¼
-\item[bold] ã´ã·ãã¯ä½ãæ¨æºã§å¤ªãã¦ã§ã¤ãã®ãã®ã«è¨å®ããï¼
-\end{cslist}
-ããããããã®ãªãã·ã§ã³ã¯\Pkg{luatexja-otf}ããã±ã¼ã¸ã«ã¯åå¨ããªãï¼
-\Pkg{otf}ããã±ã¼ã¸ãææ¸ä¸ã§ä½¿ç¨ããåæç¨TFMãèªåã®ç©ã«ç½®ãæãã¦ããã®ã«å¯¾ãï¼
-\Pkg{luatexja-otf}ããã±ã¼ã¸ã§ã¯ï¼ãã®ãããªãã¨ã¯è¡ããªãããã§ããï¼
-
-ããã3ãªãã·ã§ã³ã«ã¤ãã¦ã¯ï¼
-\Pkg{luatexja-preset} ããã±ã¼ã¸ã«ããªã»ããã使ãæã«ä¸ç·ã«æå®ãããï¼
-ãããã¯å¯¾å¿ããå
容ã\ref{ssec-chgfnt}ç¯ï¼\ref{ssec-nfsspat}ç¯ (NFSS2) ã
-\ref{ssec-fontspec}ç¯ (\Pkg{fontspec}) ã®æ¹æ³ã§æåã§æå®ããå¿
è¦ãããï¼
+\Param{kanjiskip}ã\Param{xkanjiskip}ã®å¤
+ã¯ä»¥ä¸ã®ããã«ãã¦å¤æ´å¯è½ã§ããï¼
%
-
-%\subsection{Changing default Japanese fonts}
-%\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}
+\ltjsetparameter{kanjiskip={0pt plus 0.4pt minus 0.4pt},
+ xkanjiskip={0.25\zw plus 1pt minus 1pt}}
\end{lstlisting}
-makes that IPA~Mincho and IPA~Gothic will be used as default Japanese fonts, instead of
-IPAex~Mincho and IPAex~Gothic.
+%<*en>
+Here \cs{zw} is a internal dimension
+which stores fullwidth of the current Japanese font.
+This \cs{zw} can be used as the unit \texttt{zw} in \pTeX.
-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}
+The value of these parameter can be get by \cs{ltjgetparameter}.
+Note that the result by \cs{ltjgetparameter} is \emph{not} the internal quantities,
+but \emph{a string} (hence \cs{the} cannot be prefixed).
%
%<*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ã´ã·ãã¯ã¸ã¨å¤
-æ´ãããï¼
-
+ããã§ï¼\cs{zw} ã¯ç¾å¨ã®åæãã©ã³ãã®å
¨è§å¹
ã表ãé·ãã§ããï¼
+\pTeX ã«ãããé·ãåä½ \texttt{zw} ã¨åãããã«ä½¿ç¨ã§ããï¼
-ãªãï¼20140906.0以åã®ãã¼ã¸ã§ã³ã®ããã«ï¼
-Ryumin-Light, GothicBBB-Mediumã¨ããååã®éåè¾¼ãã©ã³ããç¨ããå ´åã¯
-\begin{lstlisting}
-\def\ltj@stdmcfont{psft:Ryumin-Light}
-\def\ltj@stdgtfont{psft:GothicBBB-Medium}
-\end{lstlisting}
-ã¨è¨è¿°ããã°ããï¼
+ãããã®ãã©ã¡ã¼ã¿ã®å¤ã¯ä»¥ä¸ã®ããã«åå¾ã§ããï¼
+æ»ãå¤ã¯å
é¨å¤ã§ã¯ãªã\emph{æåå}ã§ããï¼\cs{the} ã¯åç½®ã§ããªãï¼ãã¨ã«æ³¨æãã¦ã»ããï¼
%
-
-
-%\section{Changing Internal Parameters}
-%\section{ãã©ã¡ã¼ã¿ã®å¤æ´}
+\begin{LTXexample}
+kanjiskip: \ltjgetparameter{kanjiskip},\\
+xkanjiskip: \ltjgetparameter{xkanjiskip}
+\end{LTXexample}
%<*en>
-There are many internal parameters in \LuaTeX-ja. And due to the behavior of \LuaTeX,
-most of them are not stored as internal register of \TeX, but as an
-original storage system in \LuaTeX-ja. Hence, to assign or acquire those
-parameters, you have to use commands \cs{ltjsetparameter} and
-\cs{ltjgetparameter}.
+It may occur that JFM contains the data of ``ideal width of
+\Param{kanjiskip}''
+and/or ``ideal width of \Param{xkanjiskip}''.
+To use these data from JFM, set the value of \Param{kanjiskip} or
+\Param{xkanjiskip} to \cs{maxdimen}
+(these ``ideal width'' cannot be retrived by \cs{ltjgetparameter}).
%
%<*ja>
-\LuaTeX-jaã«ã¯å¤ãã®ãã©ã¡ã¼ã¿ãåå¨ããï¼ããã¦\LuaTeX ã®ä»æ§ã®ããã«ï¼
-ãã®å¤ãã¯\TeX ã®ã¬ã¸ã¹ã¿ã«ã§ã¯ãªãï¼\LuaTeX-jaç¬èªã®æ¹æ³ã§ä¿æããã¦ããï¼
-ãããã®ãã©ã¡ã¼ã¿ãè¨å®ã»åå¾ããããã«ã¯ \cs{ltjsetparameter} 㨠\cs{ltjgetparameter} ã
-ç¨ããï¼
+JFMã¯ãæã¾ãã\Param{kanjiskip}ã®å¤ãã
+ãæã¾ãã\Param{xkanjiskip}ã®å¤ããæã£ã¦ãããã¨ãããï¼
+ãããã®ãã¼ã¿ã使ãããã«ã¯ï¼\Param{kanjiskip}ã%
+\Param{xkanjiskip}ã®å¤ã \cs{maxdimen} ã®å¤ã«è¨å®ããã°ãããï¼
+\cs{ltjgetparameter} ã«ãã£ã¦åå¾ãããã¨ã¯ã§ããªãã®ã§æ³¨æãå¿
è¦ã§ããï¼
%
-%\subsection{Range of \textbf{JAchar}s}
-%\subsection{\textbf{JAchar}ã®ç¯å²}
-\label{ssec-setrange}
+%\subsection{Insertion setting of \Param{xkanjiskip}}
+%\subsection{\Param{xkanjiskip} ã®æ¿å
¥è¨å®}
%<*en>
-\LuaTeX-ja divides the Unicode codespace \texttt{U+0080}--\texttt{U+10FFFF}
-into \emph{character ranges},
-numbered 1 to 217. The grouping can be (globally) customized by \cs{ltjdefcharrange}.
-The next line adds whole characters in Supplementary Ideographic Plane
-and the character ``æ¼¢'' to the character range~100.
+It is not desirable that \Param{xkanjiskip} is inserted into every
+boundary between \textbf{JAchar}s and \textbf{ALchar}s. For example,
+\Param{xkanjiskip} should not be inserted after opening parenthesis
+(\textit{e.g.}, compare ``(ã'' and ``(\hskip\ltjgetparameter{xkanjiskip}ã'').
+\LuaTeX-ja can control whether \Param{xkanjiskip} can be inserted
+before/after a character, by changing \Param{jaxspmode} for \textbf{JAchar}s and
+\Param{alxspmode} parameters \textbf{ALchar}s respectively.
%
%<*ja>
-\LuaTeX-jaã¯ï¼Unicodeã® \texttt{U+0080}--\texttt{U+10FFFF} ã®ç©ºéã
-1çªãã217çªã¾ã§ã®\emph{æåç¯å²}ã«åå²ãã¦ããï¼
-åºåã㯠\cs{ltjdefcharrange} ãç¨ãããã¨ã§ï¼ã°ãã¼ãã«ã«ï¼å¤æ´ãããã¨ãã§ãï¼
-ä¾ãã°ï¼æ¬¡ã¯è¿½å æ¼¢åé¢(SIP)ã«ããå
¨ã¦ã®æåã¨ãæ¼¢ããã100çªã®æåç¯å²ãã«è¿½å ããï¼
+\Param{xkanjiskip}ããã¹ã¦ã®\textbf{JAchar}ã¨\textbf{ALchar}ã®å¢çã«
+æ¿å
¥ãããã®ã¯æã¾ãããã¨ã§ã¯ãªãï¼ä¾ãã°ï¼\Param{xkanjiskip}ã¯éãæ¬å¼§ã®
+å¾ã«ã¯æ¿å
¥ãããã¹ãã§ã¯ãªãï¼ã(ããã¨ã(\hskip\ltjgetparameter{xkanjiskip}ããã
+æ¯ã¹ã¦ã¿ãï¼ï¼
+\LuaTeX-jaã§ã¯\Param{xkanjiskip}ãããæåã®åï¼å¾ã«æ¿å
¥ãããã©ãããï¼
+\textbf{JAchar}ã«å¯¾ãã¦ã¯\Param{jaxspmode}ãï¼\textbf{ALchar}ã«å¯¾ãã¦ã¯
+\Param{alxspmode}ãããããå¤ãããã¨ã§å¶å¾¡ãããã¨ãã§ããï¼
%
-\begin{lstlisting}
-\ltjdefcharrange{100}{"20000-"2FFFF,`æ¼¢}
-\end{lstlisting}
+\begin{LTXexample}
+\ltjsetparameter{jaxspmode={`ã,preonly}, alxspmode={`\!,postonly}}
+pãq ã!ã
+\end{LTXexample}
%<*en>
-A character can belong to only one character range.
-For example, whole SIP belong to the range~4 in the default setting of \LuaTeX-ja,
-and if you execute the above line, then SIP will belong to the range~100 and be
-removed from the range~4.
+The second argument \texttt{preonly} means that the insertion of
+\Param{xkanjiskip} is allowed before this character, but not after.
+the other possible values are \texttt{postonly}, \texttt{allow}, and \texttt{inhibit}.
%
%<*ja>
-åæåã¯ãã ä¸ã¤ã®æåç¯å²ã«æå±ãããã¨ãã§ããï¼
-ä¾ãã°ï¼SIPå
ã®æåã¯å
¨ã¦\LuaTeX-jaã®ããã©ã«ãã§ã¯4çªã®æåç¯å²ã«
-å±ãã¦ãããï¼ä¸è¨ã®æå®ãè¡ãã°SIPå
ã®æåã¯100çªã«å±ãããã«ãªãï¼4çªããã¯é¤ãããï¼
+2ã¤ç®ã®å¼æ°ã® \texttt{preonly}ã¯ã\Param{xkanjiskip}ã®æ¿å
¥ã¯ãã®æåã®
+åã§ã®ã¿è¨±ããï¼å¾ã§ã¯è¨±ããªãããã¨ãæå³ããï¼ä»ã«æå®å¯è½ãªå¤ã¯
+\texttt{postonly}, \texttt{allow}, \texttt{inhibit}ã§ããï¼
%
%<*en>
-The distinction between \textbf{ALchar} and \textbf{JAchar} is performed by character ranges.
-This can be edited by setting the \textsf{jacharrange} parameter.
-For example, the code below is just the default setting of \LuaTeX-ja, and
-it sets
-\begin{itemize}
- \item a character which belongs character ranges 1,~4, 5, and~8 is \textbf{ALchar},
- \item a character which belongs character ranges 2,~3, 6, and~7 is \textbf{JAchar}.
-\end{itemize}
+\Param{jaxspmode} and \Param{alxspmode} use a same table to store the parameters
+on the current version. Therefore, line~1 in the code above can be rewritten
+as follows:
%
%<*ja>
-\textbf{ALchar}ã¨\textbf{JAchar}ã®åºå¥ã¯æåç¯å²ãã¨ã«è¡ãããï¼
-ããã¯\textsf{jacharrange}ãã©ã¡ã¼ã¿ã«ãã£ã¦ç·¨éã§ããï¼
-ä¾ãã°ï¼ä»¥ä¸ã¯\LuaTeX-jaã®åæè¨å®ã§ããï¼æ¬¡ã®å
容ãè¨å®ãã¦ããï¼
-\begin{itemize}
- \item 1çªï¼4çªï¼5çªï¼8çªã®æåç¯å²ã«å±ããæåã¯\textbf{ALchar}ï¼
- \item 2çªï¼3çªï¼6çªï¼7çªã®æåç¯å²ã«å±ããæåã¯\textbf{JAchar}ï¼
-\end{itemize}
+ãªãï¼ç¾è¡ã®
+ä»æ§ã§ã¯ï¼\Param{jaxspmode}, \Param{alxspmode}ã¯ãã¼ãã«ãå
±æãã¦ããï¼
+ä¸ã®ã³ã¼ãã®1è¡ç®ã次ã®ããã«å¤ãã¦ãåããã¨ã«ãªãï¼
%
\begin{lstlisting}
-\ltjsetparameter{jacharrange={-1, +2, +3, -4, -5, +6, +7, -8}}
+\ltjsetparameter{alxspmode={`ã,preonly}, jaxspmode={`\!,postonly}}
\end{lstlisting}
%<*en>
-The argument to \textsf{jacharrange} parameter is a list of non-zero integer.
-Negative integer $-n$ in the list means that ``each character in the range~$n$ is an
-\textbf{ALchar}'',
-and positive integer $+n$ means that ``\dots\ is a \textbf{JAchar}''.
-%
-%<*ja>
-\textsf{jacharrange}ãã©ã¡ã¼ã¿ã®å¼æ°ã¯éé¶ã®æ´æ°ã®ãªã¹ãã§ããï¼
-ãªã¹ãä¸ã®è² ã®æ´æ°$-n$ã¯ãæåç¯å²$n$ã«å±ããæåã¯\textbf{ALchar}ã¨ãã¦
-æ±ãããã¨ãæå³ãï¼æ£ã®æ´æ°$+n$ã¯ã\textbf{JAchar}ã¨ãã¦æ±ãããã¨ãæå³ããï¼
-%
-
-%<*en>
-Note that characters \texttt{U+0000}--\texttt{U+007F} are always treated as an
-\textbf{ALchar} (this cannot be customized).
+One can use also numbers to specify these two parameters (see Subsection~\ref{ssec:param}).
%
%<*ja>
-ãªãï¼\texttt{U+0000}--\texttt{U+007F} ã¯å¸¸ã«\textbf{ALchar}ã¨ãã¦æ±ãããï¼å©ç¨è
ãå¤æ´ã
-ããã¨ã¯åºæ¥ãªãï¼ï¼
+ã¾ãï¼ããã2ãã©ã¡ã¼ã¿ã«ã¯æ°å¤ã§å¤ãæå®ãããã¨ãã§ããï¼\ref{ssec:param}ç¯ãåç
§ï¼ï¼
%
%<*en>
-\paragraph{Default character ranges}
-\LuaTeX-ja predefines eight character ranges for convenience. They are
-determined from the following data:
+If you want to enable/disable all insertions of \Param{kanjiskip} and
+\Param{xkanjiskip}, set \Param{autospacing} and \Param{autoxspacing}
+parameters to \texttt{true}/\texttt{false}, respectively.
%
%<*ja>
-\paragraph{æåç¯å²ã®åæå¤}
-\LuaTeX-jaã§ã¯8ã¤ã®æåç¯å²ãäºãå®ç¾©ãã¦ããï¼
-ãããã¯ä»¥ä¸ã®ãã¼ã¿ã«åºã¥ãã¦æ±ºå®ãã¦ããï¼
+ããå
¨ã¦ã®\Param{kanjiskip}ã¨\Param{xkanjiskip}ã®æ¿å
¥ãæå¹åï¼ç¡å¹å
+ããããã°ï¼ãããã\Param{autospacing}ã¨\Param{autoxspacing}ã
+\texttt{true}/\texttt{false}ã«è¨å®ããã°ããï¼
%
-\begin{itemize}
-%\item Blocks in Unicode~6.0.
-%\item Unicode~6.0ã®ãããã¯ï¼
-%\item The \texttt{Adobe-Japan1-UCS2} mapping between a CID Adobe-Japan1-6 and Unicode.
-%\item Adobe-Japan1-6ã®CIDã¨Unicodeã®éã®å¯¾å¿è¡¨\texttt{Adobe-Japan1-UCS2}ï¼
-%\item The \Pkg{PXbase} bundle for \upTeX\ by Takayuki Yato.
-%\item å
«ç»å´ä¹æ°ã«ãã\upTeX ç¨ã®\Pkg{PXbase}ãã³ãã«ï¼
-\end{itemize}
+%\subsection{Shifting the baseline}
+%\subsection{ãã¼ã¹ã©ã¤ã³ã®ç§»å}
%<*en>
-Now we describe these eight ranges. The superscript ``J'' or ``A'' after the
-number shows whether each character in the range is treated as
-\textbf{JAchar}s or not by default. These settings are similar to the
-\texttt{prefercjk} settings defined in \texttt{PXbase} bundle.
-Any characters equal to or above \texttt{U+0080} which does not belong to
-these eight ranges belongs to the character range~217.
+To make a match between a Japanese font and an alphabetic font, sometimes
+shifting of the baseline of one of the pair is needed. In \pTeX, this is achieved
+by setting \cs{ybaselineshift} (or \cs{tbaselineshift}) to a non-zero length (the
+baseline of \textbf{ALchar} is shifted below). However, for documents
+whose main language is not Japanese, it is good to shift the baseline of
+Japanese fonts, but not that of alphabetic fonts.
+Because of this, \LuaTeX-ja can independently set the shifting amount
+of the baseline of alphabetic fonts and that of Japanese fonts.
+\begin{center}
+ \small
+\begin{tabular}{>{\bfseries}lcc}
+\toprule
+&\bfseries Horizontal writing (\emph{yoko} direction) etc.
+&\bfseries Vertical writing(\emph{tate} direction)\\
+\midrule
+Alphabetic fonts&\Param{yalbaselineshift}
+ parameter&\Param{talbaselineshift} parameter\\
+Japanese fonts&\Param{yjabaselineshift}
+ parameter&\Param{tjabaselineshift} parameter\\
+\bottomrule
+\end{tabular}
+\end{center}
%
%<*ja>
-以ä¸ã§ã¯ããã8ã¤ã®æåç¯å²ã«ã¤ãã¦è¨è¿°ããï¼æ·»åã®ã¢ã«ãã¡ããããJããAã
-ã¯ï¼ãã®æåç¯å²å
ã®æåã\textbf{JAchar}ã\textbf{ALchar}ãã表ãã¦ããï¼ãããã®åæè¨å®ã¯
-\texttt{PXbase}ãã³ãã«ã§å®ç¾©ããã¦ãã\texttt{prefercjk}ã¨é¡ä¼¼ã®ãã®ã§ãããï¼
-8ããããã©ã³ã使ç¨æã®ãã©ãã«ãé²ãããã« \texttt{U+0080}--\texttt{U+00FF} ã®æåã¯å
¨é¨
-\textbf{ALchar}ã¨ãã¦ããï¼
-ãªãï¼\texttt{U+0080} 以éã§ããã8ã¤ã®æåç¯å²ã«å±ããªãæåã¯ï¼217çªã®æåç¯å²ã«å±ãããã¨ã«ãªã£ã¦ããï¼
+åæãã©ã³ãã¨æ¬§æãã©ã³ããåãããããã«ã¯ï¼æã
ã©ã¡ããã®ãã¼ã¹ã©ã¤ã³ã®ç§»åã
+å¿
è¦ã«ãªãï¼\pTeX ã§ã¯ãã㯠\cs{ybaselineshift}ï¼ã¾ãã¯\cs{tbaselineshift}ï¼ãè¨å®ãããã¨ã§
+ãªããã¦ããï¼\textbf{ALchar}ã®ãã¼ã¹ã©ã¤ã³ããã®åã ãä¸ããï¼ï¼ãããï¼æ¥æ¬èªã主ã§ã¯ãªã
+ææ¸ã«å¯¾ãã¦ã¯ï¼æ¬§æãã©ã³ãã§ã¯ãªãåæãã©ã³ãã®ãã¼ã¹ã©ã¤ã³ã移åããæ¹ãããï¼
+ãã®ããï¼\LuaTeX-jaã§ã¯æ¬§æãã©ã³ãã®ãã¼ã¹ã©ã¤ã³ã®ã·ããé
+ã¨åæãã©ã³ãã®ãã¼ã¹ã©ã¤ã³ã®ã·ããéãç¬ç«ã«è¨å®ã§ããããã«ãªã£ã¦ããï¼
+\begin{center}
+ \small
+\begin{tabular}{>{\bfseries}lcc}
+\toprule
+&\bfseries 横çµãªã©&\bfseries 縦çµ\\
+\midrule
+欧æãã©ã³ãã®ã·ããé&\Param{yalbaselineshift}
+ parameter&\Param{talbaselineshift} parameter\\
+åæãã©ã³ãã®ã·ããé&\Param{yjabaselineshift}
+ parameter&\Param{tjabaselineshift} parameter\\
+\bottomrule
+\end{tabular}
+\end{center}
%
-\begin{description}
-%<*en>
-\item[Range~8${}^{\text{A}}$] The intersection of the upper half of ISO~8859-1
- (Latin-1 Supplement) and JIS~X~0208 (a basic character set for Japanese). This character range
- consists of the following characters:
+%<*en>
+Here the horizontal line in the below example is the baseline of a line.
%
%<*ja>
-\item[ç¯å²8${}^{\text{A}}$] ISO~8859-1ã®ä¸ä½é åï¼ã©ãã³1è£å©ï¼ã¨
- JIS~X~0208ã®å
±éé¨åï¼ãã®æåç¯å²ã¯
- 以ä¸ã®æåã§æ§æãããï¼
+ä¸ã®ä¾ã«ããã¦å¼ããã¦ããæ°´å¹³ç·ããã¼ã¹ã©ã¤ã³ã§ããï¼
%
-\begin{multicols}{2}
-\begin{itemize}
-\def\ch#1#2{\item \char"#1\ (\texttt{U+00#1}, #2)}%"
-\ch{A7}{Section Sign}
-\ch{A8}{Diaeresis}
-\ch{B0}{Degree sign}
-\ch{B1}{Plus-minus sign}
-\ch{B4}{Spacing acute}
-\ch{B6}{Paragraph sign}
-\ch{D7}{Multiplication sign}
-\ch{F7}{Division Sign}
-\end{itemize}
-\end{multicols}
+\begin{LTXexample}
+\vrule width 150pt height 0.2pt depth 0.2pt \hskip-120pt
+\ltjsetparameter{yjabaselineshift=0pt, yalbaselineshift=0pt}abcããã
+\ltjsetparameter{yjabaselineshift=5pt, yalbaselineshift=2pt}abcããã
+\end{LTXexample}
%<*en>
-\item[Range~1${}^{\text{A}}$] Latin characters that some of them are included in Adobe-Japan1-6.
-This range consists of the following Unicode ranges, \emph{except characters in the range~8 above}:
+There is an interesting side-effect: characters in different size can be
+vertically aligned center in a line, by setting two parameters appropriately.
+The following is an example (beware the value is not well tuned):
%
%<*ja>
-\item[ç¯å²1${}^{\text{A}}$] ã©ãã³æåã®ãã¡ï¼Adobe-Japan1-6ã¨ã®å
±éé¨åããããã®ï¼
- ãã®ç¯å²ã¯ä»¥ä¸ã®Unicodeã®ãããã¯ã®ãã¡
- \emph{ç¯å²8ãé¤ãã}é¨åã§æ§æããã¦ããï¼
+ãã®æ©è½ã«ã¯é¢ç½ã使ãæ¹ãããï¼2ã¤ã®ãã©ã¡ã¼ã¿ãé©åã«è¨å®ãããã¨ã§ï¼ãµã¤ãºã®
+ç°ãªãæåãä¸å¿ç·ã«æãããã¨ãã§ããï¼
+以ä¸ã¯ä¸ã¤ã®ä¾ã§ããï¼å¤ã¯ãã¾ã調æ´ããã¦ããªããã¨ã«æ³¨æï¼ï¼
%
-\begin{multicols}{2}
+\begin{LTXexample}[width=0.4\textwidth]
+\vrule width 150pt height4.417pt depth-4.217pt%
+\kern-150pt
+\large xyzæ¼¢å
+{\scriptsize
+ \ltjsetparameter{yjabaselineshift=-1.757pt,
+ yalbaselineshift=-1.757pt}
+ æ¼¢åxyzããã
+}ãããabc
+\end{LTXexample}
+
+%<*en>
+Note that setting positive \Param{yalbaselineshift}~or~\Param{talbaselineshift}
+parameters does not increase the depth of one-letter \emph{syllable} $p$ of \textbf{Alchar}, if
+its left-protrusion~(\cs{lpcode}) and right-protrusion~(\cs{rpcode}) are both non-zero.
+This is because
\begin{itemize}
-\item \texttt{U+0080}--\texttt{U+00FF}: Latin-1 Supplement
-\item \texttt{U+0100}--\texttt{U+017F}: Latin Extended-A
-\item \texttt{U+0180}--\texttt{U+024F}: Latin Extended-B
-\item \texttt{U+0250}--\texttt{U+02AF}: IPA Extensions
-\item \texttt{U+02B0}--\texttt{U+02FF}: Spacing Modifier Letters
-%\par\
-\item \texttt{U+0300}--\texttt{U+036F}: \\*\null\hfill Combining Diacritical Marks
-\item \texttt{U+1E00}--\texttt{U+1EFF}: \\*\null\hfill Latin Extended Additional
-%\par\
+\item These two parameters are implemented by setting \texttt{yoffset} field of a
+glyph node, and this does not increase the depth of the glyph.
+\item To cope with the above situation, \LuaTeX-ja automatically supplies
+a rule in every syllable.
+\item However, we cannot use this ``supplying a rule'' method if a syllable comprises just
+ one letter whose \cs{lpcode}~and~\cs{rpcode} are both non-zero.
\end{itemize}
-\end{multicols}
-%<*en>
-\item[Range~2${}^{\text{\kern.1emJ}}$] Greek and Cyrillic letters. JIS~X~0208 (hence most of Japanese
- fonts) has some of these characters.
+
+This problem does not apply for \Param{yjabaselineshift}~nor~\Param{tjabaselineshift},
+becuse a \emph{JAchar} is encapsulated by a horizontal box if needed.
%
%<*ja>
-\item[ç¯å²2${}^{\text{\kern.1emJ}}$] ã®ãªã·ã£æåã¨ããªã«æåï¼JIS~X~0208ï¼ãããã£ã¦ã»ã¨ãã©ã®
- åæãã©ã³ãï¼ã«ã¯ï¼ãããã®æåã®ä¸é¨ãå«ã¾ãã¦ããï¼
-%
-\begin{multicols}{2}
+ãªãï¼ä»¥ä¸ã®å ´åã«ã¯1æåã®\textbf{ALchar}ãããªããé³ç¯ãã®æ·±ãã¯å¢å ããªããã¨ã«æ³¨æï¼
\begin{itemize}
-\item \texttt{U+0370}--\texttt{U+03FF}: Greek and Coptic
-\item \texttt{U+0400}--\texttt{U+04FF}: Cyrillic
-\item \texttt{U+1F00}--\texttt{U+1FFF}: Greek Extended
-\\\
+ \item \Param{yalbaselineshift},~\Param{talbaselineshift}ãã©ã¡ã¼ã¿ãæ£ã«ãªã£ã¦ããï¼
+ \item ãé³ç¯ããæ§æããå¯ä¸ã®æå$p$ã®
+å·¦ä½ç½ã¸ã®çªåºé(\cs{lpcode})ï¼å³ä½ç½ã¸ã®çªåºé(\cs{rpcode})ãã©ã¡ããéé¶ã§ããï¼
\end{itemize}
-\end{multicols}
-%<*en>
-\item[Range~3${}^{\text{\kern.1emJ}}$] Punctuations and Miscellaneous symbols. The block list is
- indicated in \autoref{tab:rng3}.
-%
-%<*ja>
-\item[ç¯å²3${}^{\text{\kern.1emJ}}$] å¥èªç¹ã¨è¨å·é¡ï¼ãããã¯ã®ãªã¹ãã¯\autoref{tab:rng3}%
- ã«ç¤ºãã¦ããï¼
+\emph{JAchar}ã¯å¿
è¦ã«å¿ãã¦1æåãã¤ããã¯ã¹ã«ã«ãã»ã«åãããããï¼
+\Param{yjabaselineshift},~\Param{tjabaselineshift}ãã©ã¡ã¼ã¿ã«ã¤ãã¦ã¯ãã®ãããªåé¡ã¯èµ·ãããªãï¼
%
-\begin{table}[!tb]
-%\caption{Unicode blocks in predefined character range~3.}\medskip
-%\caption{æåç¯å²3ã«æå®ããã¦ããUnicodeãããã¯ï¼}
-\label{tab:rng3}
-\catcode`\"=13\def"#1#2#3#4{\texttt{U+#1#2#3#4}}%"
-\centering\small
-\begin{tabular}{llll}
-"2000--"206F&General Punctuation&
-"2070--"209F&Superscripts and Subscripts\\
-"20A0--"20CF&Currency Symbols&
-"20D0--"20FF&Comb.\ Diacritical Marks for Symbols\\
-"2100--"214F&Letterlike Symbols&
-"2150--"218F&Number Forms\\
-"2190--"21FF&Arrows&
-"2200--"22FF&Mathematical Operators\\
-"2300--"23FF&Miscellaneous Technical&
-"2400--"243F&Control Pictures\\
-"2500--"257F&Box Drawing&
-"2580--"259F&Block Elements\\
-"25A0--"25FF&Geometric Shapes&
-"2600--"26FF&Miscellaneous Symbols\\
-"2700--"27BF&Dingbats&
-"2900--"297F&Supplemental Arrows-B\\
-"2980--"29FF&Misc.\ Mathematical Symbols-B&
-"2B00--"2BFF&Miscellaneous Symbols and Arrows
+
+%<*ja>
+\paragraph{æ°å¼ã«ãããæåï¼\pTeX ã¨ã®éã}
+\textbf{ALchar}ã®ãã¼ã¹ã©ã¤ã³ãè£æ£ãã\Param{yalbaselineshift}, \Param{talbaselineshift}ãã©ã¡ã¼ã¿ã¯
+ã»ã¼\pTeX ã«ããã \cs{ybaselineshift}, \cs{tbaselineshift} ã«å¯¾å¿ãã¦ãããã®ã§ãããï¼
+æ°å¼ä¸ã®æåã¯ç°ãªã£ã¦ããã®ã§æ³¨æãå¿
è¦ã§ããï¼
+ä¾ãã°ï¼\autoref{tab:math_bsa}ã®ããã«ï¼æ°å¼ä¸ã«æ示çã«ç¾ãã \cs{hbox},~\cs{vbox} ã¯ï¼æ¨ªçµã«ããã¦
+\begin{itemize}
+ \item 2015年以åã®\pTeX ã§ã¯ï¼ããã¯ã¹å
¨ä½ã \cs{ybaselineshift} ã ã¨ã·ãããããã®ã§ï¼
+ \autoref{tab:math_bsa}ä¸ã®``ã''ã®ããã«ï¼ããã¯ã¹ä¸ã®åææåã¯
+ \ \cs{ybaselineshift} ã ãã·ããããï¼ä¸æ¹ï¼``for all''ã®ããã«ï¼
+ ããã¯ã¹å
ã®æ¬§ææåã¯2éã«ã·ããããããã¨ã«ãªãï¼
+ \item ä¸æ¹ï¼\LuaTeX-jaã§ã¯ãã®ãããªãã¨ã¯ããããï¼
+ æ°å¼ä¸ã«æ示çã«ç¾ãã \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}$)}
+\label{tab:math_bsa}
+\newdimen\origbaselineskip
+\origbaselineskip=\baselineskip
+\begin{tabular}{lp{30\zw}}
+\toprule
+\emph{å
¥å}&\vspace*{\dimexpr-\origbaselineskip-\smallskipamount}
+\begin{lstlisting}
+æ°å¼abc: $ãa\hbox{ã}$, $\int_0^x t\,dt=x^2/2$,
+$\Phi\vdash F(x)\ \hbox{for all}\ x\in A$
+\end{lstlisting}\\
+\noalign{\vskip-\origbaselineskip}
+\midrule
+\emph{\pTeX~(--2015)}&
+{\ltjsetparameter{yalbaselineshift=10pt}%
+æ°å¼abc: $\lower10pt\hbox{ã}a\lower10pt\hbox{ã}$, $\int_0^x t\,dt=x^2/2$,
+$\Phi\vdash F(x)\ \lower10pt\hbox{for all}\ x\in A$
+\par}\\\noalign{\vskip-\origbaselineskip}\midrule
+\emph{\pTeX~(2016--)}&
+{\ltjsetparameter{yalbaselineshift=10pt}%
+æ°å¼abc: $\lower10pt\hbox{ã}a\hbox{ã}$, $\int_0^x t\,dt=x^2/2$,
+$\Phi\vdash F(x)\ \hbox{for all}\ x\in A$
+\par}\\\noalign{\vskip-\origbaselineskip}\midrule
+\emph{\LuaTeX-ja}&
+{\ltjsetparameter{yalbaselineshift=10pt}%
+æ°å¼abc: $ãa\hbox{ã}$, $\int_0^x t\,dt=x^2/2$,
+$\Phi\vdash F(x)\ \hbox{for all}\ x\in A$
+\par}\\
+\noalign{\vskip-\origbaselineskip}
+\bottomrule
\end{tabular}
\end{table}
+%
+
%<*en>
-\item[Range~4${}^{\text{A}}$] Characters usually not in Japanese fonts. This range consists
- of almost all Unicode blocks which are not in other
- predefined ranges. Hence, instead of showing the block list,
- we put the definition of this range itself:
+\subsection{\emph{kinsoku} parameters and OpenType features}
+Among parameters which related to Japanese word-wrapping process (\emph{kinsoku shori}),
+\begin{quote}
+ \Param{jaxspmode},~\Param{alxspmode}, \Param{prebreakpenalty},
+ \Param{postbreakpenalty}~and~\Param{kcatcode}
+\end{quote}
+are stored by each character codes.
+
+OpenType font features are ignored in these parameters.
+For example, a fullwidth katakana ``ã¢'' on line~10 in the below input is replaced to
+its halfwidth variant ``ï½±'', by \verb+hwid+ feature.
+However, the penalty inserted after it is 10 which is the \Param{postbreakpenalty} of
+``ã¢'', not 20.
%
%<*ja>
-\item[ç¯å²4${}^{\text{A}}$] é常åæãã©ã³ãã«ã¯å«ã¾ãã¦ããªãæåï¼
- ãã®ç¯å²ã¯ä»ã®ç¯å²ã«ãªãã»ã¨ãã©å
¨ã¦ã®Unicodeãããã¯
- ã§æ§æããã¦ããï¼ãããã£ã¦ï¼ãããã¯ã®ãªã¹ãã示ã
- 代ããã«ï¼ç¯å²ã®å®ç¾©ãã®ãã®ã示ãï¼
-%
-\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
-\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 \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{tab:rng6}
-\catcode`\"=13\def"#1#2#3#4{\texttt{U+#1#2#3#4}}%"
-\centering\small
-\begin{tabular}{llll}
-"2460--"24FF&Enclosed Alphanumerics&
-"2E80--"2EFF&CJK Radicals Supplement\\
-"3000--"303F&CJK Symbols and Punctuation&
-"3040--"309F&Hiragana\\
-"30A0--"30FF&Katakana&
-"3190--"319F&Kanbun\\
-"31F0--"31FF&Katakana Phonetic Extensions&
-"3200--"32FF&Enclosed CJK Letters and Months\\
-"3300--"33FF&CJK Compatibility&
-"3400--"4DBF&CJK Unified Ideographs Extension 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
-\end{tabular}
-\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 \autoref{tab:rng7}.
-%
-%<*ja>
-\item[ç¯å²7${}^{\text{\kern.1emJ}}$] CJKè¨èªã§ç¨ããããæåã®ãã¡ï¼Adobe-Japan1-6ã«
- å«ã¾ãã¦ããªããã®ï¼
- ãããã¯ã®ãªã¹ãã¯\autoref{tab:rng7}ã«ç¤ºãï¼
-%
-\begin{table}[!tb]
-%\caption{Unicode blocks in predefined character range~7.}\medskip
-%\caption{æåç¯å²7ã«æå®ããã¦ããUnicodeãããã¯ï¼}
-\label{tab:rng7}
-\catcode`\"=13\def"#1#2#3#4{\texttt{U+#1#2#3#4}}%"
-\centering\small
-\begin{tabular}{llll}
-"1100--"11FF&Hangul Jamo&
-"2F00--"2FDF&Kangxi Radicals\\
-"2FF0--"2FFF&Ideographic Description Characters&
-"3100--"312F&Bopomofo\\
-"3130--"318F&Hangul Compatibility Jamo&
-"31A0--"31BF&Bopomofo Extended\\
-"31C0--"31EF&CJK Strokes&
-"A000--"A48F&Yi Syllables\\
-"A490--"A4CF&Yi Radicals&
-"A830--"A83F&Common Indic Number Forms\\
-"AC00--"D7AF&Hangul Syllables&
-"D7B0--"D7FF&Hangul Jamo Extended-B
-\end{tabular}
-\end{table}
-\end{description}
+\subsection{ç¦åå¦çé¢é£ãã©ã¡ã¼ã¿ã¨OpenTypeæ©è½}
+ç¦åå¦çã \Param{kanjiskip}, \Param{xkanjiskip} ã®æ¿å
¥ã«é¢é£ãããã©ã¡ã¼ã¿ã®ãã¡
+\begin{quote}
+ \Param{jaxspmode},~\Param{alxspmode}, \Param{prebreakpenalty},
+ \Param{postbreakpenalty}, \Param{kcatcode}
+\end{quote}
+ã¯ï¼æåã³ã¼ããã¨ã«è¨å®ããéã§ããï¼
-%<*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{marvosym} package.
+\Pkg{fontspec}ããã±ã¼ã¸ã使ãï¼\ref{ssec:fontspec}ç¯ï¼å ´åãªã©ï¼
+å種ã®OpenTypeæ©è½ãé©ç¨ãããã¨ãããã¨æããï¼å段è½ã«è¿°ã¹ããã©ã¡ã¼ã¿é¡ã¯ï¼
+\emph{OpenTypeæ©è½ã®é©ç¨åã®æåã³ã¼ãã«ãã£ã¦é©ç¨ãããï¼}
+ä¾ãã°ï¼ä»¥ä¸ã®ä¾ã«ããã¦10è¡ç®ã®ãã¢ãã¯ï¼\verb+hwid+ featureã®é©ç¨ã«ããåè§ã«ã¿ã«ãã®ãï½±ã
+ã«ç½®ãæããï¼ãããï¼ãã®ç´å¾ã«æ¿å
¥ããã \Param{postbreakpenalty}ã¯ï¼ç½®æåã®ãã¢ãã«å¯¾ããå¤10ã§ããï¼
+%
-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{Frowny} produces ``\ltjjachar`§'' (in a Japanese font).
+\begin{LTXexample}[width=0.2\textwidth]
+\ltjsetparameter{postbreakpenalty={`ã¢, 10}}
+\ltjsetparameter{postbreakpenalty={`ï½±, 20}}
-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}.
+\newcommand\showpostpena[1]{%
+ \leavevmode\setbox0=\hbox{#1\hbox{}}%
+ \unhbox0\setbox0=\lastbox\the\lastpenalty}
-If you want to output a character as \textbf{ALchar} and \textbf{JAchar} regardless the range
-setting, you can use \cs{ltjalchar} and \cs{ltjjachar} respectively, as the following example.
-\begin{LTXexample}[width=0.3\textwidth]
-\gtfamily\large % default, ALchar, JAchar
-¶, \ltjalchar`¶, \ltjjachar`¶\\ % default: ALchar
-α, \ltjalchar`α, \ltjjachar`α % default: JAchar
+\showpostpena{ã¢},
+\showpostpena{ï½±},
+{\addjfontfeatures{CharacterWidth=Half}\showpostpena{ã¢}}
\end{LTXexample}
-%
-%<*ja>
-\paragraph{\texttt{U+0080}--\texttt{U+00FF}ã«ã¤ãã¦ã®æ³¨æ}
-\LuaTeX-jaã§ï¼\Pkg{marvosym}ããã±ã¼ã¸çï¼Unicodeãã©ã³ãã§ãªã
-ä¼çµ±çãª8ããããã©ã³ããç¨ããå ´åã«ã¯æ³¨æãå¿
è¦ã§ããï¼
-
-ä¾ãã°ï¼\Pkg{marvosym}ããã±ã¼ã¸ã®æä¾ãã \cs{Frowny} ãï¼ç¬¦å·ä½ç½®ã¯167ï¼ã¤ã¾ãUnicodeã«ããã
-\S\ (\text{U+00A7}) ã¨åã符å·ä½ç½®ã«ããï¼
-å³ã¡ï¼ä»¥åã®ãã¼ã¸ã§ã³ã®ããã«ï¼ãåç¯ã®æåç¯å²8å
ã®æåã¯\textbf{JAchar}ãã¨ããè¨å®ã§
-ãã£ãã¨ããã¨ï¼ä¸è¨ã® \cs{Frowny} ã¯åæãã©ã³ãã§ã\ltjjachar`§ããåºåãããã¨ã«ãªãï¼
-ãã®ãããªäºæ
ãé¿ããããã«ï¼æ¬ãã¼ã¸ã§ã³ãã㯠\texttt{U+0080}--\texttt{U+00FF} ã®ç¯å²ã®
-æåã¯å
¨ã¦\textbf{ALchar}ã¨ãªãããã«åæè¨å®ãå¤æ´ãã¦ããï¼
-
-ãªãï¼æåç¯å²ã®è¨å®ã«é¢ããã1ã¤ã®æåã\textbf{ALchar}, \textbf{JAchar}ã§åºåãããå ´åã«ã¯ï¼
-以ä¸ã®ä¾ã®ããã«ãããã \cs{ltjalchar},~\cs{ltjjachar} ã«è©²å½æåã®æåã³ã¼ãã渡ãã°ããï¼
-\begin{LTXexample}[width=0.3\textwidth]
-\gtfamily\large % default, ALchar, JAchar
-¶, \ltjalchar`¶, \ltjjachar`¶\\ % default: ALchar
-α, \ltjalchar`α, \ltjjachar`α % default: JAchar
-\end{LTXexample}
+\clearpage
+%\part{Reference}
+%\part{ãªãã¡ã¬ã³ã¹}
+\label{part-ref}
+\suppressfloats[t]
+%<*ja>
+\section{\LuaTeX-jaã«ããã \cs{catcode}}
+\label{sec-catcode}
+\subsection{äºåç¥èï¼\pTeX ã¨\upTeX ã«ããã \cs{kcatcode}}
+\pTeXï¼\upTeX ã«ããã¦ã¯ï¼åææåãå¶å¾¡ç¶´å
ã§å©ç¨ã§ãããã©ãã
+㯠\cs{kcatcode} ã®å¤ã«ãã£ã¦æ±ºå®ãããã®ã§ãã£ãï¼
+詳細ã¯\autoref{tab:kcat}ãåç
§ããããï¼
%
-
-
-%\subsection{\Param{kanjiskip} and \Param{xkanjiskip}}
-%\subsection{\Param{kanjiskip}ã¨\Param{xkanjiskip}}
-\label{subs-kskip}
-
-%\textbf{JAglue} is divided into the following three categories:
-%\textbf{JAglue}ã¯ä»¥ä¸ã®3ã¤ã®ã«ãã´ãªã«åé¡ãããï¼
-\begin{itemize}
%<*en>
-\item Glues/kerns specified in JFM. If \cs{inhibitglue} is issued
- around a \textbf{JAchar}, this glue will not be inserted at the
- place.
+\section{\cs{catcode} in \LuaTeX-ja}
+\label{sec-catcode}
+\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 \autoref{tab:kcat}.
%
-%<*ja>
-\item JFMã§æå®ãããã°ã«ã¼ï¼ã«ã¼ã³ï¼ãã \cs{inhibitglue} ã\textbf{JAchar}ã®å¨ãã§
- çºè¡ããã¦ããã°ï¼ãã®ã°ã«ã¼ã¯æ¿å
¥ãããªãï¼
-%
+
+\begin{table}[t]
+\small
+\caption{\cs{kcatcode} in \upTeX}
+\label{tab:kcat}
+%\medskip
+
+\noindent\hfill
+\begin{tabular}{llccc}
+\toprule
+\bfseries \cs{kcatcode}&
%<*en>
-\item The default glue which inserted between two \textbf{JAchar}s (\Param{%
- kanjiskip}).
+\bfseries meaning&
+\bfseries control word&
+\bfseries widow penalty&
+\bfseries linebreak\\
%
%<*ja>
-\item ããã©ã«ãã§2ã¤ã®\textbf{JAchar}ã®éã«æ¿å
¥ãããã°ã«ã¼(\Param{kanjiskip})ï¼
+\bfseries æå³&
+\bfseries å¶å¾¡ç¶´ä¸ã«ä½¿ç¨&
+\bfseries æåã¦ã£ãã¦å¦ç&
+\bfseries ç´å¾ã§ã®æ¹è¡\\
%
-%<*en>
-\item The default glue which inserted between a \textbf{JAchar} and an
- \textbf{ALchar} (\Param{xkanjiskip}).
-%
+\midrule
+15&non-cjk&\multicolumn{3}{c}{(treated as usual \LaTeX)}\\
+16&kanji&Y&Y&ignored\\
+17&kana&Y&Y&ignored\\
+18&other&N&N&ignored\\
+19&hangul&Y&Y&space\\
+\bottomrule
+\end{tabular}\hfill\null
+
+\medskip
+
%<*ja>
-\item ããã©ã«ãã§\textbf{JAchar}ã¨\textbf{ALchar}ã®éã«æ¿å
¥ãããã°ã«ã¼(\Param{xkanjiskip})ï¼
+æåã¦ã£ãã¦å¦çï¼ãæ¼¢åãä¸æåã ã次ã®è¡ã«è¡ãã®ãé²ãã
+\cs{jcharwidowpenalty} ãï¼
+ãã®æåã®ç´åã«æ¿å
¥ãããããå¦ãï¼ã示ãï¼
%
-\end{itemize}
+\end{table}
+
%<*en>
-The value (a skip) of \Param{kanjiskip} or
-\Param{xkanjiskip} can be changed as the following.
-Note that only their values \emph{at the end of a paragraph or a hbox are
-adopted in the whole paragraph or the whole hbox.
+\cs{kcatcode} can be set by a row of JIS~X~0208 in \pTeX,
+and generally by a Unicode block\footnote{%
+ \upTeX\ divides \texttt{U+FF00}--\texttt{U+FFEF} (Halfwidth and Fullwidth Forms)
+ into three subblocks, and \cs{kcatcode} can be set by a subblock.
}
+in \upTeX. So characters which can be used in a control word
+slightly differ between \pTeX~and~\upTeX.
%
%<*ja>
-\Param{kanjiskip}ã\Param{xkanjiskip}ã®å¤
-ã¯ä»¥ä¸ã®ããã«ãã¦å¤æ´å¯è½ã§ããï¼
+\pTeX ã§ã¯ \cs{kcatcode} ã¯JIS~X~0208ã®åºåä½ï¼
+\upTeX ã§ã¯æ¦ãUnicodeãããã¯åä½\footnote{%
+ \texttt{U+FF00}--\texttt{U+FFEF} (Halfwidth and Fullwidth Forms)ã¯
+ ãå
¨è§è±æ°åããåè§ã«ããããã®ä»ãã¨3ã¤ã«åå²ããã¦ããï¼
+ ããããå¥ã
ã« \cs{kcatcode} ãæå®ã§ããããã«ãªã£ã¦ããï¼
+}ã§è¨å®å¯è½ã«ãªã£ã¦ããï¼ãã®ããï¼\pTeX ã¨\upTeX ã®åæç¶æ
ã§ã¯
+å¶å¾¡ç¶´å
ã§ä½¿ç¨å¯è½ãªæåãå¾®å¦ã«ç°ãªã£ã¦ããï¼
%
-\begin{lstlisting}
-\ltjsetparameter{kanjiskip={0pt plus 0.4pt minus 0.4pt},
- xkanjiskip={0.25\zw plus 1pt minus 1pt}}
-\end{lstlisting}
-%<*en>
-Here \cs{zw} is a internal dimension
-which stores fullwidth of the current Japanese font.
-This \cs{zw} can be used as the unit \texttt{zw} in \pTeX.
-The value of these parameter can be get by \cs{ltjgetparameter}.
-Note that the result by \cs{ltjgetparameter} is \emph{not} the internal quantities,
-but \emph{a string} (hence \cs{the} cannot be prefixed).
+%<*en>
+\subsection{Case of \LuaTeX-ja}
+The role of \cs{kcatcode} in \pTeX~and~\upTeX\ can be
+divided into the following four kinds,
+and \LuaTeX-ja can control these four kinds separately:
+\begin{itemize}
+ \item
+\emph{Distinction between \textbf{JAchar} or \textbf{ALchar}}
+is controlled by the character range, see Subsection~\ref{ssec:setrange}.
+ \item
+\emph{Whether the character can be used in a control word}
+is controlled by setting \cs{catcode} to 11~(enabled) or 12~(disabled), as usual.
+ \item
+\emph{Whether \Param{jcharwidowpenalty} can be inserted before the character}
+is controlled by the lowermost bit of the \Param{kcatcode} parameter.
+ \item
+\emph{Linebreak after a \textbf{JAchar}} does not produce a space.
+\end{itemize}
%
%<*ja>
-ããã§ï¼\cs{zw} ã¯ç¾å¨ã®åæãã©ã³ãã®å
¨è§å¹
ã表ãé·ãã§ããï¼
-\pTeX ã«ãããé·ãåä½ \texttt{zw} ã¨åãããã«ä½¿ç¨ã§ããï¼
-
-ãããã®ãã©ã¡ã¼ã¿ã®å¤ã¯ä»¥ä¸ã®ããã«åå¾ã§ããï¼
-æ»ãå¤ã¯å
é¨å¤ã§ã¯ãªã\emph{æåå}ã§ããï¼\cs{the} ã¯åç½®ã§ããªãï¼ãã¨ã«æ³¨æãã¦ã»ããï¼
+\subsection{\LuaTeX-jaã®å ´å}
+\LuaTeX-jaã§ã¯ï¼å¾æ¥ã®\pTeXã»\upTeX ã«ããã \cs{kcatcode} ã®å½¹å²ã
+åå²ãã¦ããï¼
+\begin{description}
+ \item[欧æ/åæã®åºå¥ (\upTeX)]
+\cs{ltjdefcharrange} ã¨\textsf{jacharrange}ãã©ã¡ã¼ã¿ï¼\ref{ssec:setrange}ç¯ï¼
+ \item[å¶å¾¡ç¶´ä¸ã«ä½¿ç¨å¯ã]
+\LuaTeX èªèº«ã® \cs{catcode} ã§ãã
+ \item[\Param{jcharwidowpenalty}ãæ¿å
¥å¯ã]
+\Param{kcatcode}ãã©ã¡ã¼ã¿ã®æä¸ä½ããã
+ \item[ç´å¾ã®æ¹è¡]
+æ¥æ¬èªããæ³å®ãã¦ããªãã®ã§ï¼\textbf{JAchar}ç´å¾ã®æ¹è¡ã§åè§ã¹ãã¼ã¹ãæ¿å
¥ããããã¨ã¯ãªãï¼
+\end{description}
%
-\begin{LTXexample}
-kanjiskip: \ltjgetparameter{kanjiskip},\\
-xkanjiskip: \ltjgetparameter{xkanjiskip}
-\end{LTXexample}
%<*en>
-It may occur that JFM contains the data of ``ideal width of
-\Param{kanjiskip}''
-and/or ``ideal width of \Param{xkanjiskip}''.
-To use these data from JFM, set the value of \Param{kanjiskip} or
-\Param{xkanjiskip} to \cs{maxdimen}
-(these ``ideal width'' cannot be retrived by \cs{ltjgetparameter}).
-%
-%<*ja>
-JFMã¯ãæã¾ãã\Param{kanjiskip}ã®å¤ãã
-ãæã¾ãã\Param{xkanjiskip}ã®å¤ããæã£ã¦ãããã¨ãããï¼
-ãããã®ãã¼ã¿ã使ãããã«ã¯ï¼\Param{kanjiskip}ã%
-\Param{xkanjiskip}ã®å¤ã \cs{maxdimen} ã®å¤ã«è¨å®ããã°ãããï¼
-\cs{ltjgetparameter} ã«ãã£ã¦åå¾ãããã¨ã¯ã§ããªãã®ã§æ³¨æãå¿
è¦ã§ããï¼
-%
-
-%\subsection{Insertion setting of \Param{xkanjiskip}}
-%\subsection{\Param{xkanjiskip} ã®æ¿å
¥è¨å®}
-
-%<*en>
-It is not desirable that \Param{xkanjiskip} is inserted into every
-boundary between \textbf{JAchar}s and \textbf{ALchar}s. For example,
-\Param{xkanjiskip} should not be inserted after opening parenthesis
-(\textit{e.g.}, compare ``(ã'' and ``(\hskip\ltjgetparameter{xkanjiskip}ã'').
-\LuaTeX-ja can control whether \Param{xkanjiskip} can be inserted
-before/after a character, by changing \Param{jaxspmode} for \textbf{JAchar}s and
-\Param{alxspmode} parameters \textbf{ALchar}s respectively.
-%
-%<*ja>
-\Param{xkanjiskip}ããã¹ã¦ã®\textbf{JAchar}ã¨\textbf{ALchar}ã®å¢çã«
-æ¿å
¥ãããã®ã¯æã¾ãããã¨ã§ã¯ãªãï¼ä¾ãã°ï¼\Param{xkanjiskip}ã¯éãæ¬å¼§ã®
-å¾ã«ã¯æ¿å
¥ãããã¹ãã§ã¯ãªãï¼ã(ããã¨ã(\hskip\ltjgetparameter{xkanjiskip}ããã
-æ¯ã¹ã¦ã¿ãï¼ï¼
-\LuaTeX-jaã§ã¯\Param{xkanjiskip}ãããæåã®åï¼å¾ã«æ¿å
¥ãããã©ãããï¼
-\textbf{JAchar}ã«å¯¾ãã¦ã¯\Param{jaxspmode}ãï¼\textbf{ALchar}ã«å¯¾ãã¦ã¯
-\Param{alxspmode}ãããããå¤ãããã¨ã§å¶å¾¡ãããã¨ãã§ããï¼
-%
-\begin{LTXexample}
-\ltjsetparameter{jaxspmode={`ã,preonly}, alxspmode={`\!,postonly}}
-pãq ã!ã
-\end{LTXexample}
-
-%<*en>
-The second argument \texttt{preonly} means that the insertion of
-\Param{xkanjiskip} is allowed before this character, but not after.
-the other possible values are \texttt{postonly}, \texttt{allow}, and \texttt{inhibit}.
-%
-%<*ja>
-2ã¤ç®ã®å¼æ°ã® \texttt{preonly}ã¯ã\Param{xkanjiskip}ã®æ¿å
¥ã¯ãã®æåã®
-åã§ã®ã¿è¨±ããï¼å¾ã§ã¯è¨±ããªãããã¨ãæå³ããï¼ä»ã«æå®å¯è½ãªå¤ã¯
-\texttt{postonly}, \texttt{allow}, \texttt{inhibit}ã§ããï¼
-%
+Default setting of \cs{catcode} of Unicode characters are located in
+\begin{description}
+ \item[plain \LuaTeX] \texttt{luatex-unicode-letters.tex}, which is based on \texttt{unicode-letters.tex}
+(for \XeTeX).
+ \item[\LuaLaTeX] now included in \LaTeX\ kernel as~\texttt{unicode-letters.def}.
+\end{description}
+However, the default setting of \cs{catcode} differs
+between \XeTeX\ and \LuaTeX, by the following reasons:
+\begin{itemize}
+ \item (plain format) \texttt{luatex-unicode-letters.tex} is based on old \texttt{unicode-letters.tex}.
+ \item The latter half of \texttt{unicode-letters.tex}~and~\texttt{unicode-letters.def}
+sets\cs{catcode} of several characters to 11, via setting \cs{XeTeXcharclass}.
+However, this latter half does not exist (plain case), or not executed (\LaTeX~case) in \LuaTeX.
+\end{itemize}
+In other words,
+\begin{description}
+\item[plain \LuaTeX]
+Kanji nor kana characters cannot be used in
+a control word, in the default setting of plain \LuaTeX.
+\item[\LuaLaTeX]
+In recent (2015-10-01 or later) \LuaLaTeX, Kanji and kana characters in a control word is supported (these catcode are 11),
+but not fullwidth alphanumerics and several other characters.
+\end{description}
-%<*en>
-\Param{jaxspmode} and \Param{alxspmode} use a same table to store the parameters
-on the current version. Therefore, line~1 in the code above can be rewritten
-as follows:
-%
-%<*ja>
-ãªãï¼ç¾è¡ã®
-ä»æ§ã§ã¯ï¼\Param{jaxspmode}, \Param{alxspmode}ã¯ãã¼ãã«ãå
±æãã¦ããï¼
-ä¸ã®ã³ã¼ãã®1è¡ç®ã次ã®ããã«å¤ãã¦ãåããã¨ã«ãªãï¼
-%
-\begin{lstlisting}
-\ltjsetparameter{alxspmode={`ã,preonly}, jaxspmode={`\!,postonly}}
-\end{lstlisting}
-%<*en>
-One can use also numbers to specify these two parameters (see Subsection~\ref{ssec-param}).
+This would be inconvenient for \pTeX~users to shifting to \LuaTeX-ja,
+since several control words containing Kanji or other fullwidth characters, such as
+\verb+\西æ¦+~or~\verb+\ï¼å¹´ç®è¥¿æ¦+ are used in \pTeX.
+Hence, \LuaTeX-ja have a counterpart of \texttt{unicode-letters.tex}
+for \LuaTeX, \emph{to match the \cs{catcode} setting with that of \XeTeX.}
%
%<*ja>
-ã¾ãï¼ããã2ãã©ã¡ã¼ã¿ã«ã¯æ°å¤ã§å¤ãæå®ãããã¨ãã§ããï¼\ref{ssec-param}ç¯ãåç
§ï¼ï¼
-%
+ãã¤ãã£ãã«Unicodeå
¨é¨ã®æåãæ±ãã\XeTeX ã\LuaTeX ã§ã¯ï¼
+æåãå¶å¾¡ç¶´å
ã§ä½¿ç¨ã§ãããã¯é常ã®æ¬§ææåã¨åãã\cs{catcode}%
+ã§æå®ãããã¨ã¨ãªãï¼plain \XeTeX ã«ããã\cs{catcode}ã®åæè¨å®ã¯%
+\texttt{unicode-letters.tex}ä¸ã«è¨è¿°ããã¦ããï¼plain \LuaTeX ã§ã¯ããã
+å
ã«ãã\texttt{luatex-unicode-letters.tex}ãç¨ãã¦ããï¼
+\LaTeX ã§ã¯\cs{catcode}ã®è¨å®ã¯ã«ã¼ãã«ã«\texttt{unicode-letters.def}ã¨ãã¦çµ±åããï¼
+ãã®ãã¡ã¤ã«ã\XeLaTeX, \LuaLaTeX ã®ä¸¡æ¹ãç¨ãã¦ããï¼
-%<*en>
-If you want to enable/disable all insertions of \Param{kanjiskip} and
-\Param{xkanjiskip}, set \Param{autospacing} and \Param{autoxspacing}
-parameters to \texttt{true}/\texttt{false}, respectively.
-%
-%<*ja>
-ããå
¨ã¦ã®\Param{kanjiskip}ã¨\Param{xkanjiskip}ã®æ¿å
¥ãæå¹åï¼ç¡å¹å
-ããããã°ï¼ãããã\Param{autospacing}ã¨\Param{autoxspacing}ã
-\texttt{true}/\texttt{false}ã«è¨å®ããã°ããï¼
+ã ãï¼\XeTeX ã«ããã\cs{catcode}ã®åæè¨å®ã¨
+\LuaTeX ã«ãããããã¯ä¸è´ãã¦ããªãï¼
+\begin{itemize}
+ \item \texttt{luatex-unicode-letters.tex} ã®å
ã«ãªã£ã
+ \texttt{unicode-letters.tex}ãå¤ã
+ \item \texttt{unicode-letters.tex} å¾åé¨ã\texttt{unicode-letters.def}å¾åé¨ã§ã¯
+\cs{XeTeXcharclass}ã®è¨å®ãè¡ãªã£ã¦ããï¼
+ããã«ãã£ã¦æ¼¢åãä»®åï¼ããã³å
¨è§è±æ°åã®\cs{catcode}ã11ã«è¨å®ããã¦ããï¼
+ãããï¼\texttt{luatex-unicode-letters.tex}ã§ã¯ãã®ãå¾åé¨ãã
+ã¾ããã¨çç¥ããã¦ããï¼ã¾ã\LuaLaTeX ã§ã\texttt{unicode-letters.def}å¾åé¨ã¯å®è¡ãããª
+ ãï¼
+\end{itemize}
+è¨ãæããã¨ï¼
+\begin{description}
+ \item[plain \LuaTeX] æ¼¢åãä»®åãå¶å¾¡ç¶´å
ã«
+使ç¨ãããã¨ã¯ã§ããªãï¼
+ \item[\LuaLaTeX] æè¿ã®ï¼2015-10-01以éã®ï¼
+\LuaLaTeX ã§ã¯æ¼¢åãä»®åãå¶å¾¡ç¶´å
ã«
+使ç¨ãããã¨ãå¯è½ã«ãªã£ããï¼å
¨è§è±æ°åã¯ç¸å¤ããã使ç¨ã§ããªãï¼
+\end{description}
+ããã§ã¯\pTeX ã§ä½¿ç¨ã§ãã\verb+\ï¼å¹´ç®è¥¿æ¦+\footnote{ç§ç è²»\LaTeX ã§ä½¿ç¨ããã¦ããããã§ãï¼}ãªã©ã使ããªããã¨ã¨ãªãï¼
+\LuaTeX-jaã¸ã®ç§»è¡ã§æéãçããï¼ãã®ããï¼\LuaTeX-jaã§ã¯
+\texttt{unicode-letters.tex}ã®å¾åé¨ã«ãããå
容ãèªåã§ããããï¼
+çµæã¨ãã¦\emph{\XeTeX ã«ãããåæè¨å®ã¨åãã«ãªãããã«ãã¦ããï¼}
%
-%\subsection{Shifting the baseline}
-%\subsection{ãã¼ã¹ã©ã¤ã³ã®ç§»å}
-%<*en>
-To make a match between a Japanese font and an alphabetic font, sometimes
-shifting of the baseline of one of the pair is needed. In \pTeX, this is achieved
-by setting \cs{ybaselineshift} (or \cs{tbaselineshift}) to a non-zero length (the
-baseline of \textbf{ALchar} is shifted below). However, for documents
-whose main language is not Japanese, it is good to shift the baseline of
-Japanese fonts, but not that of alphabetic fonts.
-Because of this, \LuaTeX-ja can independently set the shifting amount
-of the baseline of alphabetic fonts and that of Japanese fonts.
-\begin{center}
- \small
-\begin{tabular}{>{\bfseries}lcc}
+\begin{table}
+ \centering\small
+%\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{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})} %"
+\leavevmode\hbox to 0pt{\hss\begin{tabular}{cccccc}
\toprule
-&\bfseries Horizontal writing (\emph{yoko} direction) etc.
-&\bfseries Vertical writing(\emph{tate} direction)\\
+%&\textbf{row}&\textbf{col.}&\textbf{\pTeX}&\textbf{\upTeX}&\textbf{\LuaTeX-ja}\\
+%&\emph{åº}&\emph{ç¹}&\emph{\pTeX}&\emph{\upTeX}&\emph{\LuaTeX-ja}\\
\midrule
-Alphabetic fonts&\Param{yalbaselineshift}
- parameter&\Param{talbaselineshift} parameter\\
-Japanese fonts&\Param{yjabaselineshift}
- parameter&\Param{tjabaselineshift} parameter\\
+%\D 3000&1&1&N&N&Y\\
+\D 30FB&1&6&N&Y&N\\
+\D 309B&1&11&N&Y&N\\
+\D 309C&1&12&N&Y&N\\
+\D FF40&1&14&N&N&Y\\
+\D FF3E&1&16&N&N&Y\\
+\D FFE3&1&17&N&N&Y\\
+\D FF3F&1&18&N&N&Y\\
+%\D 30FD&1&19&N&Y&Y\\
+%\D 30FE&1&20&N&Y&Y\\
+%\D 309D&1&21&N&Y&Y\\
+%\D 309E&1&22&N&Y&Y\\
+\D 3003&1&23&N&N&Y\\
+\D 4EDD&1&24&N&Y&Y\\
+\D 3005&1&25&N&N&Y\\
+\D 3006&1&26&N&N&Y\\
+\D 3007&1&27&N&N&Y\\
+\D 30FC&1&28&N&Y&Y\\
+\D FF0F&1&31&N&N&Y\\
+\D FF3C&1&32&N&N&Y\\
\bottomrule
-\end{tabular}
-\end{center}
-%
-%<*ja>
-åæãã©ã³ãã¨æ¬§æãã©ã³ããåãããããã«ã¯ï¼æã
ã©ã¡ããã®ãã¼ã¹ã©ã¤ã³ã®ç§»åã
-å¿
è¦ã«ãªãï¼\pTeX ã§ã¯ãã㯠\cs{ybaselineshift}ï¼ã¾ãã¯\cs{tbaselineshift}ï¼ãè¨å®ãããã¨ã§
-ãªããã¦ããï¼\textbf{ALchar}ã®ãã¼ã¹ã©ã¤ã³ããã®åã ãä¸ããï¼ï¼ãããï¼æ¥æ¬èªã主ã§ã¯ãªã
-ææ¸ã«å¯¾ãã¦ã¯ï¼æ¬§æãã©ã³ãã§ã¯ãªãåæãã©ã³ãã®ãã¼ã¹ã©ã¤ã³ã移åããæ¹ãããï¼
-ãã®ããï¼\LuaTeX-jaã§ã¯æ¬§æãã©ã³ãã®ãã¼ã¹ã©ã¤ã³ã®ã·ããé
-ã¨åæãã©ã³ãã®ãã¼ã¹ã©ã¤ã³ã®ã·ããéãç¬ç«ã«è¨å®ã§ããããã«ãªã£ã¦ããï¼
-\begin{center}
- \small
-\begin{tabular}{>{\bfseries}lcc}
+\end{tabular}\qquad
+\begin{tabular}{cccccc}
\toprule
-&\bfseries 横çµãªã©&\bfseries 縦çµ\\
+%&\textbf{row}&\textbf{col.}&\textbf{\pTeX}&\textbf{\upTeX}&\textbf{\LuaTeX-ja}\\
+%&\emph{åº}&\emph{ç¹}&\emph{\pTeX}&\emph{\upTeX}&\emph{\LuaTeX-ja}\\
\midrule
-欧æãã©ã³ãã®ã·ããé&\Param{yalbaselineshift}
- parameter&\Param{talbaselineshift} parameter\\
-åæãã©ã³ãã®ã·ããé&\Param{yjabaselineshift}
- parameter&\Param{tjabaselineshift} parameter\\
+\D FF5C&1&35&N&N&Y\\
+\D FF0B&1&60&N&N&Y\\
+\D FF1D&1&65&N&N&Y\\
+\D FF1C&1&67&N&N&Y\\
+\D FF1E&1&68&N&N&Y\\
+\D FF03&1&84&N&N&Y\\
+\D FF06&1&85&N&N&Y\\
+\D FF0A&1&86&N&N&Y\\
+\D FF20&1&87&N&N&Y\\
+\D 3012&2&9&N&N&Y\\
+\D 3013&2&14&N&N&Y\\
+\D FFE2&2&44&N&N&Y\\
+\D 212B&2&82&N&N&Y\\
+%\multicolumn{3}{c}{$\vphantom{\D 3000}$\hbox{}Greek letters (row 6)}&Y&N&Y\\
+%\multicolumn{3}{c}{$\vphantom{\D 3000}$\hbox{}Cyrillic letters (row 7)}&N&N&Y\\
+%\multicolumn{3}{c}{$\vphantom{\D 3000}$\hbox{}ã®ãªã·ã£æåï¼6åºï¼}&Y&N&Y\\
+%\multicolumn{3}{c}{$\vphantom{\D 3000}$\hbox{}ããªã«æåï¼7åºï¼}&N&N&Y\\
\bottomrule
-\end{tabular}
-\end{center}
-%
+\end{tabular}\hss}\par
+\end{table}
%<*en>
-Here the horizontal line in the below example is the baseline of a line.
+\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.
+\autoref{tab:kcat-diff} shows the difference.
+Except for four characters ``ã»'',~``ã'', ``ã'',~``ã '',
+\LuaTeX-ja admits more characters in a control word than \upTeX.
+
+Difference becomes larger, if we consider
+non-kanji JIS~X~0213 characters.
+For the detail, see \url{https://github.com/h-kitagawa/kct}.
%
%<*ja>
-ä¸ã®ä¾ã«ããã¦å¼ããã¦ããæ°´å¹³ç·ããã¼ã¹ã©ã¤ã³ã§ããï¼
+\subsection{å¶å¾¡ç¶´ä¸ã«ä½¿ç¨åºæ¥ãJISéæ¼¢åã®éã}
+
+ã¨ã³ã¸ã³ãç°ãªãã®ã§ï¼\pTeX, \upTeX, \LuaTeX-ja
+ã«ããã¦å¶å¾¡ç¶´ä¸ã«ä½¿ç¨å¯è½ãªJIS~X~0208ã®æåã¯ç°ãªãï¼
+ç°ãªã£ã¦ããã¨ããã ããè¼ããã¨ï¼\autoref{tab:kcat-diff}ã®ããã«ãªãï¼
+ãã»ããããããããã ããé¤ãã°ï¼\LuaTeX-jaã§ã¯\upTeX ããå¤ãã®æåã
+å¶å¾¡ç¶´ã«ä½¿ç¨å¯è½ã«ãªã£ã¦ããï¼
+
+JIS~X~0213ã®ç¯å²ã«åºããã¨ï¼å·®ç°ã¯ããã«å¤§ãããªãï¼
+詳細ã«ã¤ãã¦ã¯ä¾ãã° \url{https://github.com/h-kitagawa/kct} ä¸ã®\
+\texttt{kct-out.pdf} ãªã©ãåç
§ãããã¨ï¼
%
-\begin{LTXexample}
-\vrule width 150pt height 0.2pt depth 0.2pt \hskip-120pt
-\ltjsetparameter{yjabaselineshift=0pt, yalbaselineshift=0pt}abcããã
-\ltjsetparameter{yjabaselineshift=5pt, yalbaselineshift=2pt}abcããã
-\end{LTXexample}
+
%<*en>
-There is an interesting side-effect: characters in different size can be
-vertically aligned center in a line, by setting two parameters appropriately.
-The following is an example (beware the value is not well tuned):
+\section{Directions}
+\LuaTeX\ supports four $\Omega$-style directions: \texttt{TLT},~\texttt{TRT}, \texttt{RTT}
+and \texttt{LTL}.
+However, neither directions are not well-suited for typesetting Japanese vertically, hence we
+implemented vertical writing by rotating \texttt{TLT}-box by 90~degrees.
%
%<*ja>
-ãã®æ©è½ã«ã¯é¢ç½ã使ãæ¹ãããï¼2ã¤ã®ãã©ã¡ã¼ã¿ãé©åã«è¨å®ãããã¨ã§ï¼ãµã¤ãºã®
-ç°ãªãæåãä¸å¿ç·ã«æãããã¨ãã§ããï¼
-以ä¸ã¯ä¸ã¤ã®ä¾ã§ããï¼å¤ã¯ãã¾ã調æ´ããã¦ããªããã¨ã«æ³¨æï¼ï¼
-%
-\begin{LTXexample}[width=0.4\textwidth]
-\vrule width 150pt height4.417pt depth-4.217pt%
-\kern-150pt
-\large xyzæ¼¢å
-{\scriptsize
- \ltjsetparameter{yjabaselineshift=-1.757pt,
- yalbaselineshift=-1.757pt}
- æ¼¢åxyzããã
-}ãããabc
-\end{LTXexample}
-
-%<*en>
-Note that setting positive \Param{yalbaselineshift}~or~\Param{talbaselineshift}
-parameters does not increase the depth of one-letter \emph{syllable} $p$ of \textbf{Alchar}, if
-its left-protrusion~(\cs{lpcode}) and right-protrusion~(\cs{rpcode}) are both non-zero.
-This is because
-\begin{itemize}
-\item These two parameters are implemented by setting \texttt{yoffset} field of a
-glyph node, and this does not increase the depth of the glyph.
-\item To cope with the above situation, \LuaTeX-ja automatically supplies
-a rule in every syllable.
-\item However, we cannot use this ``supplying a rule'' method if a syllable comprises just
- one letter whose \cs{lpcode}~and~\cs{rpcode} are both non-zero.
-\end{itemize}
-
-This problem does not apply for \Param{yjabaselineshift}~nor~\Param{tjabaselineshift},
-becuse a \emph{JAchar} is encapsulated by a horizontal box if needed.
-%
-%<*ja>
-ãªãï¼ä»¥ä¸ã®å ´åã«ã¯1æåã®\textbf{ALchar}ãããªããé³ç¯ãã®æ·±ãã¯å¢å ããªããã¨ã«æ³¨æï¼
-\begin{itemize}
- \item \Param{yalbaselineshift},~\Param{talbaselineshift}ãã©ã¡ã¼ã¿ãæ£ã«ãªã£ã¦ããï¼
- \item ãé³ç¯ããæ§æããå¯ä¸ã®æå$p$ã®
-å·¦ä½ç½ã¸ã®çªåºé(\cs{lpcode})ï¼å³ä½ç½ã¸ã®çªåºé(\cs{rpcode})ãã©ã¡ããéé¶ã§ããï¼
-\end{itemize}
-\emph{JAchar}ã¯å¿
è¦ã«å¿ãã¦1æåãã¤ããã¯ã¹ã«ã«ãã»ã«åãããããï¼
-\Param{yjabaselineshift},~\Param{tjabaselineshift}ãã©ã¡ã¼ã¿ã«ã¤ãã¦ã¯ãã®ãããªåé¡ã¯èµ·ãããªãï¼
+\section{縦çµ}
+\label{sec-direction}
+\LuaTeX æ¬ä½ã§ãï¼$\Omega$ã»$\aleph$ç±æ¥ã®æ©è½ã¨ãã¦ï¼è¤æ°ã®çµæ¹åããµãã¼ããã¦ããï¼
+ãããï¼\LuaTeX ããµãã¼ãããã®ã¯ \texttt{TLT},~\texttt{TRT}, \texttt{RTT},~\texttt{LTL}\
+ã®ã¿ã§ããï¼æ¥æ¬èªã®ç¸¦çµã«ä½¿ãã®ã¯æã¾ãããªã\footnote{%
+åææåã ããªãã° \texttt{RTT} ã使ãã°ãªãã¨ããªãã¨æããï¼
+欧ææåãå
¥ã£ã¦ããå ´åã¯ãã¾ããããï¼\texttt{RTR} ã¨ããçµæ¹åãå¿
è¦ã«ãªãï¼
+}ï¼ãã®ããï¼\LuaTeX-jaã§ã¯æ¨ªçµ(\texttt{TLT})ã§çµãã ããã¯ã¹ãå転ãããæ¹å¼ã§
+縦çµãå®è£
ããï¼
%
+%\subsection{ãµãã¼ãããçµæ¹å}
+\begin{table}[t]
+%\caption{\LuaTeX-ja ã®ãµãã¼ãããçµæ¹å}
+%\caption{Directions supported by \LuaTeX-ja}
+%\medskip
+\label{tab-dir}
+\centering\small
+\def\obox#1{%
+ \setbox0=\hbox{\yoko\hbox{#1%
+ \large\ltjsetparameter{talbaselineshift=0pt}%
+ \vrule height 25pt width 0.4pt depth 15pt\kern-.2pt%
+ \raise25pt\hbox to 0pt{\hss\composite{*r^@{>>}}\hss}%
+ \raise-15pt\hbox to 0pt{\hss\composite{*l^@{>|}}\hss}\kern.2pt%
+ \vrule height.2pt depth.2pt width 60pt\hbox to 0pt{\hss\composite{*d^@{>}}\hss}\kern-60pt
+ \hbox to 60pt{\,éã¯ãAg\hss}}}%
+ \raise\dimexpr 0.5\ltjgetdp0-0.5\ltjgetht0\box0%
+}
%<*ja>
-\paragraph{æ°å¼ã«ãããæåï¼\pTeX ã¨ã®éã}
-\textbf{ALchar}ã®ãã¼ã¹ã©ã¤ã³ãè£æ£ãã\Param{yalbaselineshift}, \Param{talbaselineshift}ãã©ã¡ã¼ã¿ã¯
-ã»ã¼\pTeX ã«ããã \cs{ybaselineshift}, \cs{tbaselineshift} ã«å¯¾å¿ãã¦ãããã®ã§ãããï¼
-æ°å¼ä¸ã®æåã¯ç°ãªã£ã¦ããã®ã§æ³¨æãå¿
è¦ã§ããï¼
-ä¾ãã°ï¼\autoref{tab:math_bsa}ã®ããã«ï¼æ°å¼ä¸ã«æ示çã«ç¾ãã \cs{hbox},~\cs{vbox} ã¯ï¼æ¨ªçµã«ããã¦
-\begin{itemize}
- \item 2015年以åã®\pTeX ã§ã¯ï¼ããã¯ã¹å
¨ä½ã \cs{ybaselineshift} ã ã¨ã·ãããããã®ã§ï¼
- \autoref{tab:math_bsa}ä¸ã®``ã''ã®ããã«ï¼ããã¯ã¹ä¸ã®åææåã¯
- \ \cs{ybaselineshift} ã ãã·ããããï¼ä¸æ¹ï¼``for all''ã®ããã«ï¼
- ããã¯ã¹å
ã®æ¬§ææåã¯2éã«ã·ããããããã¨ã«ãªãï¼
- \item ä¸æ¹ï¼\LuaTeX-jaã§ã¯ãã®ãããªãã¨ã¯ããããï¼
- æ°å¼ä¸ã«æ示çã«ç¾ãã \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}$)}
-\label{tab:math_bsa}
-\newdimen\origbaselineskip
-\origbaselineskip=\baselineskip
-\begin{tabular}{lp{30\zw}}
+\begin{tabular}{>{\bfseries}lcccc}
\toprule
-\emph{å
¥å}&\vspace*{\dimexpr-\origbaselineskip-\smallskipamount}
-\begin{lstlisting}
-æ°å¼abc: $ãa\hbox{ã}$, $\int_0^x t\,dt=x^2/2$,
-$\Phi\vdash F(x)\ \hbox{for all}\ x\in A$
-\end{lstlisting}\\
-\noalign{\vskip-\origbaselineskip}
+&横çµ&ç¸¦çµ &ãdtouæ¹åã&ãutodæ¹åã\\
\midrule
-\emph{\pTeX~(--2015)}&
-{\ltjsetparameter{yalbaselineshift=10pt}%
-æ°å¼abc: $\lower10pt\hbox{ã}a\lower10pt\hbox{ã}$, $\int_0^x t\,dt=x^2/2$,
-$\Phi\vdash F(x)\ \lower10pt\hbox{for all}\ x\in A$
-\par}\\\noalign{\vskip-\origbaselineskip}\midrule
-\emph{\pTeX~(2016--)}&
-{\ltjsetparameter{yalbaselineshift=10pt}%
-æ°å¼abc: $\lower10pt\hbox{ã}a\hbox{ã}$, $\int_0^x t\,dt=x^2/2$,
-$\Phi\vdash F(x)\ \hbox{for all}\ x\in A$
-\par}\\\noalign{\vskip-\origbaselineskip}\midrule
-\emph{\LuaTeX-ja}&
-{\ltjsetparameter{yalbaselineshift=10pt}%
-æ°å¼abc: $ãa\hbox{ã}$, $\int_0^x t\,dt=x^2/2$,
-$\Phi\vdash F(x)\ \hbox{for all}\ x\in A$
-\par}\\
-\noalign{\vskip-\origbaselineskip}
+å½ä»¤&\cs{yoko}&\cs{tate}&\cs{dtou}&\cs{utod}\\
+åéãæ¹å&æ°´å¹³å³åãï¼âï¼&åç´ä¸åãï¼âï¼&åç´ä¸åãï¼âï¼&åç´ä¸åãï¼âï¼\\
+è¡éãæ¹å&åç´ä¸åãï¼âï¼&水平左åãï¼âï¼&æ°´å¹³å³åãï¼âï¼&水平左åãï¼âï¼\\
+使ç¨ããåæãã©ã³ã&横çµç¨(\cs{jfont})&縦çµç¨(\cs{tfont})&
+\multicolumn{2}{c}{%
+ 横çµç¨(\cs{jfont})ã®$90^\circ$å転}\\[\smallskipamount]
+çµçä¾\null $^*$ &\obox{\yoko}&\obox{\tate}&\obox{\dtou}&\obox{\utod}\\
+\noalign{\medskip}
\bottomrule
\end{tabular}
-\end{table}
+
+\medskip\raggedright
+\def\R#1{%
+ \raise0.38\zw\hbox{%
+ \vrule height.2pt depth.2pt width2\zw%
+ \hbox to 0pt{\hss\composite{*d^@{#1}}\hss}%
+ }%
+}
+$^*$\ å¹
(width)ï¼é«ã(height)ï¼æ·±ã(depth)ã®å¢å æ¹åãï¼
+ããããã\R{>}ãï¼ã\R{>>}ãï¼ã\R{>|}ãã§è¡¨ãã¦ããï¼
+\raggedright
%
%<*en>
-\subsection{\emph{kinsoku} parameters and OpenType features}
-Among parameters which related to Japanese word-wrapping process (\emph{kinsoku shori}),
-\begin{quote}
- \Param{jaxspmode},~\Param{alxspmode}, \Param{prebreakpenalty},
- \Param{postbreakpenalty}~and~\Param{kcatcode}
-\end{quote}
-are stored by each character codes.
+\begin{tabular}{>{\bfseries}lcccc}
+\toprule
+&horizontal (\emph{yoko}~direction)&vertical (\emph{tate}~direction)&%
+ \emph{dtou} direction&\emph{utod} direction\\
+\midrule
+Commands&\cs{yoko}&\cs{tate}&\cs{dtou}&\cs{utod}\\
+Beginning of the page&Top&Right&Left&Right\\
+Beginning of the line&Left&Top&Bottom&Top\\
+Used Japanese font&horizontal (\cs{jfont})&vertical (\cs{tfont})&
+\multicolumn{2}{c}{%
+ horizontal ($90^\circ$ rotated)}\\[\smallskipamount]
+Example&\obox{\yoko}&\obox{\tate}&\obox{\dtou}&\obox{\utod}\\
+\noalign{\medskip}
+(Notation used in $\Omega$)&TLT&RTR, RTT&LBL&RTR\\
+\bottomrule
+\end{tabular}
-OpenType font features are ignored in these parameters.
-For example, a fullwidth katakana ``ã¢'' on line~10 in the below input is replaced to
-its halfwidth variant ``ï½±'', by \verb+hwid+ feature.
-However, the penalty inserted after it is 10 which is the \Param{postbreakpenalty} of
-``ã¢'', not 20.
+\medskip\raggedright
+\def\R#1{%
+ \raise0.38\zw\hbox{%
+ \vrule height.2pt depth.2pt width2\zw%
+ \hbox to 0pt{\hss\composite{*d^@{#1}}\hss}%
+ }%
+}
+\raggedright
%
-%<*ja>
-\newpage
-\subsection{ç¦åå¦çé¢é£ãã©ã¡ã¼ã¿ã¨OpenTypeã®font feature}
-ç¦åå¦çã \Param{kanjiskip}, \Param{xkanjiskip} ã®æ¿å
¥ã«é¢é£ãããã©ã¡ã¼ã¿ã®ãã¡
-\begin{quote}
- \Param{jaxspmode},~\Param{alxspmode}, \Param{prebreakpenalty},
- \Param{postbreakpenalty}, \Param{kcatcode}
-\end{quote}
-ã¯ï¼æåã³ã¼ããã¨ã«è¨å®ããéã§ããï¼
+\end{table}
-\Pkg{fontspec}ããã±ã¼ã¸ã使ãï¼\ref{ssec-fontspec}ç¯ï¼å ´åãªã©ï¼
-å種ã®OpenType featureãé©ç¨ãããã¨ãããã¨æããï¼å段è½ã«è¿°ã¹ããã©ã¡ã¼ã¿é¡ã¯ï¼
-\emph{OpenType featureã®é©ç¨åã®æåã³ã¼ãã«ãã£ã¦é©ç¨ãããï¼}
-ä¾ãã°ï¼ä»¥ä¸ã®ä¾ã«ããã¦10è¡ç®ã®ãã¢ãã¯ï¼\verb+hwid+ featureã®é©ç¨ã«ããåè§ã«ã¿ã«ãã®ãï½±ã
-ã«ç½®ãæããï¼ãããï¼ãã®ç´å¾ã«æ¿å
¥ããã \Param{postbreakpenalty}ã¯ï¼ç½®æåã®ãã¢ãã«å¯¾ããå¤10ã§ããï¼
-%
+%<*en>
+\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.
+We implemented this for debugging purpose.
+The fifth column (\emph{utod} direction) corresponds the ``\texttt{tate (math) direction}'' of \pTeX.
-\begin{LTXexample}[width=0.2\textwidth]
-\ltjsetparameter{postbreakpenalty={`ã¢, 10}}
-\ltjsetparameter{postbreakpenalty={`ï½±, 20}}
+Directions can be changed by \cs{yoko},~\cs{tate}, \cs{dtou},~\cs{utod},
+only when the current list is null.
+These commands cannot be executed in unrestricted horizontal modes, nor math modes.
+The direction of a math formula is changed to
+\emph{utod}, when the direction outside the math formula is \emph{tate} (vertical writing).
+%
-\newcommand\showpostpena[1]{%
- \leavevmode\setbox0=\hbox{#1\hbox{}}%
- \unhbox0\setbox0=\lastbox\the\lastpenalty}
+%<*ja>
+\LuaTeX-jaããµãã¼ãããçµæ¹åã¯\autoref{tab-dir}ã«ç¤ºã4ã¤ã§ããï¼
+4åç®ã® \cs{dtou} ã¯èãæ
£ããªãå½ä»¤ã ã¨æããï¼
+å®ã¯\pTeX ã«ååã®å½ä»¤ãï¼ããã¥ã¡ã³ãã«ã¯æ¸ããã¦ããªããï¼åå¨ããï¼
+Down-TO-Upã®æå³ãªã®ã ããï¼\cs{dtou} ã使ç¨ããæ©ä¼ã¯ãªãã ãããï¼
+\LuaTeX-jaã§ã¯ãããã°ç¨ã«å®è£
ãã¦ããï¼
+5åç®ã® \cs{utod} ã¯ï¼\pTeX ã§è¨ãã縦æ°å¼ãã£ã¬ã¯ã·ã§ã³ãã«ç¸å½ãããã®ã§ããï¼
-\showpostpena{ã¢},
-\showpostpena{ï½±},
-{\addjfontfeatures{CharacterWidth=Half}\showpostpena{ã¢}}
-\end{LTXexample}
+çµæ¹åã¯ï¼\cs{yoko},~\cs{tate}, \cs{dtou},~\cs{utod} ããããã使ç¨ãããã¨ã§ï¼
+ç¾å¨ä½æä¸ã®ãªã¹ããããã¯ã¹ã空ã®æã«ã®ã¿å¤æ´å¯è½ã§ããï¼
+ãã ãï¼ç¾å¨ã®ã¢ã¼ããéå¶éæ°´å¹³ã¢ã¼ããï¼æä¸ï¼å¥è¡ç«ã¦åããï¼æ°å¼ã¢ã¼ãã§ããã¨ãã«ã¯
+çµæ¹åãå¤æ´ãããã¨ã¯åºæ¥ãªãï¼
+ã¾ãï¼ç¸¦çµä¸ã®æ°å¼å
ã®ããã¯ã¹ã¯\pTeX ã¨åãããã«çµæ¹åã \cs{utod} ã¨ãªãï¼
-\clearpage
-%\part{Reference}
-%\part{ãªãã¡ã¬ã³ã¹}
-\label{part-ref}
-\suppressfloats[t]
-%<*ja>
-\section{\LuaTeX-jaã«ããã \cs{catcode}}
-\label{sec-catcode}
-\subsection{äºåç¥èï¼\pTeX ã¨\upTeX ã«ããã \cs{kcatcode}}
-\pTeXï¼\upTeX ã«ããã¦ã¯ï¼åææåãå¶å¾¡ç¶´å
ã§å©ç¨ã§ãããã©ãã
-㯠\cs{kcatcode} ã®å¤ã«ãã£ã¦æ±ºå®ãããã®ã§ãã£ãï¼
-詳細ã¯\autoref{tab:kcat}ãåç
§ããããï¼
+ãªãï¼\LaTeX ã®ä¸ã§\LuaTeX-jaã使ç¨ããå ´åï¼çµæ¹åå¤æ´å½ä»¤ã«ã¯
+ãæ°ããªçµæ¹åä¸ã§ã®åæãã©ã³ããå¿
è¦ãªãèªã¿è¾¼ã¿ï¼ã»é¸æããï¼ãã¨ãã
+å¦çãä»ãå ãããã¦ããï¼\ref{ssec:ltx-jfm}ç¯åç
§ï¼ï¼
%
+
%<*en>
-\section{\cs{catcode} in \LuaTeX-ja}
-\label{sec-catcode}
-\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 \autoref{tab:kcat}.
-%
+\subsection{Boxes in different direction}
-\begin{table}[t]
-\small
-\caption{\cs{kcatcode} in \upTeX}
-\label{tab:kcat}
-%\medskip
+As in \pTeX, one can use boxes of different direction in one document.
+The below is an example.
+\begin{LTXexample}
+ããã¯æ¨ªçµ% yoko
+\hbox{\tate % tate
+ \hbox{縦çµ}% tate
+ ã®ä¸ã«
+ \hbox{\yoko 横çµã®å
容}% yoko
+ ãæ¿å
¥ãã
+}
+ã¾ã横çµã«æ»ã% yoko
+\end{LTXexample}
-\noindent\hfill
-\begin{tabular}{ccccc}
-\toprule
-\bfseries \cs{kcatcode}&
-%<*en>
-\bfseries meaning&
-\bfseries control word&
-\bfseries widow penalty&
-\bfseries linebreak\\
+\autoref{tab-diffdir} shows how a box is arranged when
+the direction inside the box and that outside the box differ.
%
%<*ja>
-\bfseries æå³&
-\bfseries å¶å¾¡ç¶´ä¸ã«ä½¿ç¨&
-\bfseries æåã¦ã£ãã¦å¦ç&
-\bfseries ç´å¾ã§ã®æ¹è¡\\
-%
-\midrule
-15&non-cjk&\multicolumn{3}{c}{(treated as usual \LaTeX)}\\
-16&kanji&Y&Y&ignored\\
-17&kana&Y&Y&ignored\\
-18&other&N&N&ignored\\
-19&hangul&Y&Y&space\\
-\bottomrule
-\end{tabular}\hfill\null
-
-\medskip
-
-%<*ja>
-æåã¦ã£ãã¦å¦çï¼ãæ¼¢åãä¸æåã ã次ã®è¡ã«è¡ãã®ãé²ãã
-\cs{jcharwidowpenalty} ãï¼
-ãã®æåã®ç´åã«æ¿å
¥ãããããå¦ãï¼ã示ãï¼
-%
-\end{table}
+\subsection{ç°æ¹åã®ããã¯ã¹}
-%<*en>
-\cs{kcatcode} can be set by a row of JIS~X~0208 in \pTeX,
-and generally by a Unicode block\footnote{%
- \upTeX\ divides \texttt{U+FF00}--\texttt{U+FFEF} (Halfwidth and Fullwidth Forms)
- into three subblocks, and \cs{kcatcode} can be set by a subblock.
+縦çµã®ä¸ã«ã42ããªã©ã®2æ¡ä»¥ä¸ã®ç®ç¨æ°åã横çµã§çµããªã©ï¼
+ç°ãªãçµæ¹åãæ··å¨ããããã¨ããã°ãã°è¡ãããï¼
+çµæ¹åã®æ··å¨ã\pTeX ã¨åãããã«ã§ããï¼
+\begin{LTXexample}
+ããã¯æ¨ªçµ% yoko
+\hbox{\tate % tate
+ \hbox{縦çµ}% tate
+ ã®ä¸ã«
+ \hbox{\yoko 横çµã®å
容}% yoko
+ ãæ¿å
¥ãã
}
-in \upTeX. So characters which can be used in a control word
-slightly differ between \pTeX~and~\upTeX.
-%
-%<*ja>
-\pTeX ã§ã¯ \cs{kcatcode} ã¯JIS~X~0208ã®åºåä½ï¼
-\upTeX ã§ã¯æ¦ãUnicodeãããã¯åä½\footnote{%
- \texttt{U+FF00}--\texttt{U+FFEF} (Halfwidth and Fullwidth Forms)ã¯
- ãå
¨è§è±æ°åããåè§ã«ããããã®ä»ãã¨3ã¤ã«åå²ããã¦ããï¼
- ããããå¥ã
ã« \cs{kcatcode} ãæå®ã§ããããã«ãªã£ã¦ããï¼
-}ã§è¨å®å¯è½ã«ãªã£ã¦ããï¼ãã®ããï¼\pTeX ã¨\upTeX ã®åæç¶æ
ã§ã¯
-å¶å¾¡ç¶´å
ã§ä½¿ç¨å¯è½ãªæåãå¾®å¦ã«ç°ãªã£ã¦ããï¼
-%
-
-%<*en>
-\subsection{Case of \LuaTeX-ja}
-The role of \cs{kcatcode} in \pTeX~and~\upTeX\ can be
-divided into the following four kinds,
-and \LuaTeX-ja can control these four kinds separately:
-\begin{itemize}
- \item
-\emph{Distinction between \textbf{JAchar} or \textbf{ALchar}}
-is controlled by the character range, see Subsection~\ref{ssec-setrange}.
- \item
-\emph{Whether the character can be used in a control word}
-is controlled by setting \cs{catcode} to 11~(enabled) or 12~(disabled), as usual.
- \item
-\emph{Whether \Param{jcharwidowpenalty} can be inserted before the character}
-is controlled by the lowermost bit of the \Param{kcatcode} parameter.
- \item
-\emph{Linebreak after a \textbf{JAchar}} does not produce a space.
-\end{itemize}
-%
-%<*ja>
-\subsection{\LuaTeX-jaã®å ´å}
-\LuaTeX-jaã§ã¯ï¼å¾æ¥ã®\pTeXã»\upTeX ã«ããã \cs{kcatcode} ã®å½¹å²ã
-åå²ãã¦ããï¼
-\begin{description}
- \item[欧æ/åæã®åºå¥ (\upTeX)]
-\cs{ltjdefcharrange} ã¨\textsf{jacharrange}ãã©ã¡ã¼ã¿ï¼\ref{ssec-setrange}ç¯ï¼
- \item[å¶å¾¡ç¶´ä¸ã«ä½¿ç¨å¯ã]
-\LuaTeX èªèº«ã® \cs{catcode} ã§ãã
- \item[\Param{jcharwidowpenalty}ãæ¿å
¥å¯ã]
-\Param{kcatcode}ãã©ã¡ã¼ã¿ã®æä¸ä½ããã
- \item[ç´å¾ã®æ¹è¡]
-æ¥æ¬èªããæ³å®ãã¦ããªãã®ã§ï¼\textbf{JAchar}ç´å¾ã®æ¹è¡ã§åè§ã¹ãã¼ã¹ãæ¿å
¥ããããã¨ã¯ãªãï¼
-\end{description}
-%
-
-%<*en>
-Default setting of \cs{catcode} of Unicode characters are located in
-\begin{description}
- \item[plain \LuaTeX] \texttt{luatex-unicode-letters.tex}, which is based on \texttt{unicode-letters.tex}
-(for \XeTeX).
- \item[\LuaLaTeX] now included in \LaTeX\ kernel as~\texttt{unicode-letters.def}.
-\end{description}
-However, the default setting of \cs{catcode} differs
-between \XeTeX\ and \LuaTeX, by the following reasons:
-\begin{itemize}
- \item (plain format) \texttt{luatex-unicode-letters.tex} is based on old \texttt{unicode-letters.tex}.
- \item The latter half of \texttt{unicode-letters.tex}~and~\texttt{unicode-letters.def}
-sets\cs{catcode} of several characters to 11, via setting \cs{XeTeXcharclass}.
-However, this latter half does not exist (plain case), or not executed (\LaTeX~case) in \LuaTeX.
-\end{itemize}
-In other words,
-\begin{description}
-\item[plain \LuaTeX]
-Kanji nor kana characters cannot be used in
-a control word, in the default setting of plain \LuaTeX.
-\item[\LuaLaTeX]
-In recent (2015-10-01 or later) \LuaLaTeX, Kanji and kana characters in a control word is supported (these catcode are 11),
-but not fullwidth alphanumerics and several other characters.
-\end{description}
-
-This would be inconvenient for \pTeX~users to shifting to \LuaTeX-ja,
-since several control words containing Kanji or other fullwidth characters, such as
-\verb+\西æ¦+~or~\verb+\ï¼å¹´ç®è¥¿æ¦+ are used in \pTeX.
-Hence, \LuaTeX-ja have a counterpart of \texttt{unicode-letters.tex}
-for \LuaTeX, \emph{to match the \cs{catcode} setting with that of \XeTeX.}
-%
-%<*ja>
-ãã¤ãã£ãã«Unicodeå
¨é¨ã®æåãæ±ãã\XeTeX ã\LuaTeX ã§ã¯ï¼
-æåãå¶å¾¡ç¶´å
ã§ä½¿ç¨ã§ãããã¯é常ã®æ¬§ææåã¨åãã \cs{catcode}
-ã§æå®ãããã¨ã¨ãªãï¼plain \XeTeX ã«ããã \cs{catcode} ã®åæè¨å®ã¯\
-\texttt{unicode-letters.tex} ä¸ã«è¨è¿°ããã¦ããï¼plain \LuaTeX ã§ã¯ããã
-å
ã«ãã \texttt{luatex-unicode-letters.tex} ãç¨ãã¦ããï¼
-\LaTeX ã§ã¯ \cs{catcode} ã®è¨å®ã¯ã«ã¼ãã«ã« \texttt{unicode-letters.def} ã¨ãã¦çµ±åããï¼
-ãã®ãã¡ã¤ã«ã\XeLaTeX, \LuaLaTeX ã®ä¸¡æ¹ãç¨ãã¦ããï¼
+ã¾ã横çµã«æ»ã% yoko
+\end{LTXexample}
-ã ãï¼\XeTeX ã«ããã \cs{catcode} ã®åæè¨å®ã¨
-\LuaTeX ã«ãããããã¯ä¸è´ãã¦ããªãï¼
-\begin{itemize}
- \item \texttt{luatex-unicode-letters.tex} ã®å
ã«ãªã£ã\
-\texttt{unicode-letters.tex} ãå¤ã
- \item \texttt{unicode-letters.tex} å¾åé¨ã \texttt{unicode-letters.def} å¾åé¨ã§ã¯
-\cs{XeTeXcharclass} ã®è¨å®ãè¡ãªã£ã¦ããï¼
-ããã«ãã£ã¦æ¼¢åãä»®åï¼ããã³å
¨è§è±æ°åã® \cs{catcode} ã11ã«è¨å®ããã¦ããï¼
-ãããï¼\texttt{luatex-unicode-letters.tex} ã§ã¯ãã®ãå¾åé¨ãã
-ã¾ããã¨çç¥ããã¦ããï¼ã¾ã\LuaLaTeX ã§ã \texttt{unicode-letters.def} å¾åé¨ã¯å®è¡ãããª
- ãï¼
-\end{itemize}
-è¨ãæããã¨ï¼
-\begin{description}
- \item[plain \LuaTeX] æ¼¢åãä»®åãå¶å¾¡ç¶´å
ã«
-使ç¨ãããã¨ã¯ã§ããªãï¼
- \item[\LuaLaTeX] æè¿ã®ï¼2015-10-01以éã®ï¼
-\LuaLaTeX ã§ã¯æ¼¢åãä»®åãå¶å¾¡ç¶´å
ã«
-使ç¨ãããã¨ãå¯è½ã«ãªã£ããï¼å
¨è§è±æ°åã¯ç¸å¤ããã使ç¨ã§ããªãï¼
-\end{description}
-ããã§ã¯ \pTeX ã§ä½¿ç¨ã§ãã \verb+\ï¼å¹´ç®è¥¿æ¦+\footnote{ç§ç è²»\LaTeX ã§ä½¿ç¨ããã¦ããããã§ãï¼}ãªã©ã使ããªããã¨ã¨ãªãï¼
-\LuaTeX-jaã¸ã®ç§»è¡ã§æéãçããï¼ãã®ããï¼\LuaTeX-jaã§ã¯
-\texttt{unicode-letters.tex} ã®å¾åé¨ã«ãããå
容ãèªåã§ããããï¼
-çµæã¨ãã¦\textbf{\XeTeX ã«ãããåæè¨å®ã¨åãã«ãªãããã«ãã¦ããï¼}
+ç°ãªãçµæ¹åã®ããã¯ã¹ãé
ç½®ããå ´åã«ã©ãçµã¾ãããã®ä»æ§ãï¼\pTeX ã
+è¸è¥²ãã¦ããï¼\autoref{tab-diffdir}ã«ç¤ºãï¼
%
-\begin{table}
- \centering\small
-%\caption{Difference of the set of non-kanji JIS~X~0208 characters which can be used in a control word}
-%\caption{å¶å¾¡ç¶´ä¸ã«ä½¿ç¨åºæ¥ãJIS~X~0208éæ¼¢åã®éã}
+\begin{table}[t]
+%\caption{ç°æ¹åã®ããã¯ã¹ã®é
ç½®}
+%\caption{Boxes in different direction}
%\medskip
-\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})} %"
-\leavevmode\hbox to 0pt{\hss\begin{tabular}{cccccc}
-\toprule
-%&\bf row&\bf col.&\bf \pTeX&\bf \upTeX&\bf\LuaTeX-ja\\
-%&\bf åº&\bf ç¹&\bf \pTeX&\bf \upTeX&\fontseries{b}\selectfont\LuaTeX-ja\\
-\midrule
-%\D 3000&1&1&N&N&Y\\
-\D 30FB&1&6&N&Y&N\\
-\D 309B&1&11&N&Y&N\\
-\D 309C&1&12&N&Y&N\\
-\D FF40&1&14&N&N&Y\\
-\D FF3E&1&16&N&N&Y\\
-\D FFE3&1&17&N&N&Y\\
-\D FF3F&1&18&N&N&Y\\
-%\D 30FD&1&19&N&Y&Y\\
-%\D 30FE&1&20&N&Y&Y\\
-%\D 309D&1&21&N&Y&Y\\
-%\D 309E&1&22&N&Y&Y\\
-\D 3003&1&23&N&N&Y\\
-\D 4EDD&1&24&N&Y&Y\\
-\D 3005&1&25&N&N&Y\\
-\D 3006&1&26&N&N&Y\\
-\D 3007&1&27&N&N&Y\\
-\D 30FC&1&28&N&Y&Y\\
-\D FF0F&1&31&N&N&Y\\
-\D FF3C&1&32&N&N&Y\\
-\bottomrule
-\end{tabular}\qquad
-\begin{tabular}{cccccc}
+\label{tab-diffdir}
+ \centering\small\unitlength3mm
+ \def\TATEeg{%
+ \hbox{\smash{\begin{picture}(0,0)(-2,0)
+ \thicklines
+ \polyline(-2,0)(-2,-7)(5,-7)(5,0)
+ \put(0,0){\circle*{0.3}}
+ \put(2.5,-4){\makebox(0,0){\hbox{\tate\bfseries \emph{tate}/\emph{utod}}}}
+ \put(0,0){\vector(1,0){5}} \put(2.5,-0.2){\makebox(0,0)[t]{$h_{\mathrm{T}}$}}
+ \put(0,0){\vector(-1,0){2}}\put(-1,-0.2){\makebox(0,0)[t]{$d_{\mathrm{T}}$}}
+ \put(0,0){\vector(0,-1){7}}\put(0.2,-3.5){\makebox(0,0)[l]{$w_{\mathrm{T}}$}}
+ \end{picture}}}%
+ }
+ \def\DTOUeg{%
+ \hbox{\smash{\begin{picture}(0,0)(-5,0)
+ \thicklines
+ \polyline(-5,0)(-5,7)(2,7)(2,0)
+ \put(0,0){\circle*{0.3}}
+ \put(-2.5,4){\makebox(0,0){\hbox{\dtou\bfseries \emph{dtou}}}}
+ \put(0,0){\vector(-1,0){5}} \put(-2.5,0.3){\makebox(0,0)[b]{$h_{\mathrm{D}}$}}
+ \put(0,0){\vector(1,0){2}}\put(1,0.3){\makebox(0,0)[b]{$d_{\mathrm{D}}$}}
+ \put(0,0){\vector(0,1){7}}\put(-0.2,3.5){\makebox(0,0)[r]{$w_{\mathrm{D}}$}}
+ \end{picture}}}%
+ }
+ \def\YOKOeg{%
+ \hbox{\smash{\begin{picture}(0,0)
+ \thicklines
+ \polyline(0,5)(7,5)(7,-2)(0,-2)
+ \put(4,2.5){\makebox(0,0){\hbox{\yoko\bfseries \emph{yoko}}}}
+ \put(0,0){\circle*{0.3}}
+ \put(0,0){\vector(0,1){5}} \put(0.3,2.5){\makebox(0,0)[l]{$h_{\mathrm{Y}}$}}
+ \put(0,0){\vector(0,-1){2}}\put(0.3,-1){\makebox(0,0)[l]{$d_{\mathrm{Y}}$}}
+ \put(0,0){\vector(1,0){7}}\put(3.5,0.2){\makebox(0,0)[b]{$w_{\mathrm{Y}}$}}
+ \end{picture}}}%
+ }
+\begin{tabular}{ccc}
\toprule
-%&\bf row&\bf col.&\bf \pTeX&\bf \upTeX&\bf\LuaTeX-ja\\
-%&\bf åº&\bf ç¹&\bf \pTeX&\bf \upTeX&\fontseries{b}\selectfont\LuaTeX-ja\\
-\midrule
-\D FF5C&1&35&N&N&Y\\
-\D FF0B&1&60&N&N&Y\\
-\D FF1D&1&65&N&N&Y\\
-\D FF1C&1&67&N&N&Y\\
-\D FF1E&1&68&N&N&Y\\
-\D FF03&1&84&N&N&Y\\
-\D FF06&1&85&N&N&Y\\
-\D FF0A&1&86&N&N&Y\\
-\D FF20&1&87&N&N&Y\\
-\D 3012&2&9&N&N&Y\\
-\D 3013&2&14&N&N&Y\\
-\D FFE2&2&44&N&N&Y\\
-\D 212B&2&82&N&N&Y\\
-%\multicolumn{3}{c}{$\vphantom{\D 3000}$\hbox{}Greek letters (row 6)}&Y&N&Y\\
-%\multicolumn{3}{c}{$\vphantom{\D 3000}$\hbox{}Cyrillic letters (row 7)}&N&N&Y\\
-%\multicolumn{3}{c}{$\vphantom{\D 3000}$\hbox{}ã®ãªã·ã£æåï¼6åºï¼}&Y&N&Y\\
-%\multicolumn{3}{c}{$\vphantom{\D 3000}$\hbox{}ããªã«æåï¼7åºï¼}&N&N&Y\\
-\bottomrule
-\end{tabular}\hss}\par
-\end{table}
-
-%<*en>
-\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.
-\autoref{tab:kcat-diff} shows the difference.
-Except for four characters ``ã»'',~``ã'', ``ã'',~``ã '',
-\LuaTeX-ja admits more characters in a control word than \upTeX.
-
-Difference becomes larger, if we consider
-non-kanji JIS~X~0213 characters.
-For the detail, see \url{https://github.com/h-kitagawa/kct}.
-%
-%<*ja>
-\subsection{å¶å¾¡ç¶´ä¸ã«ä½¿ç¨åºæ¥ãJISéæ¼¢åã®éã}
-
-ã¨ã³ã¸ã³ãç°ãªãã®ã§ï¼\pTeX, \upTeX, \LuaTeX-ja
-ã«ããã¦å¶å¾¡ç¶´ä¸ã«ä½¿ç¨å¯è½ãªJIS~X~0208ã®æåã¯ç°ãªãï¼
-ç°ãªã£ã¦ããã¨ããã ããè¼ããã¨ï¼\autoref{tab:kcat-diff}ã®ããã«ãªãï¼
-ãã»ããããããããã ããé¤ãã°ï¼\LuaTeX-jaã§ã¯\upTeX ããå¤ãã®æåã
-å¶å¾¡ç¶´ã«ä½¿ç¨å¯è½ã«ãªã£ã¦ããï¼
-
-JIS~X~0213ã®ç¯å²ã«åºããã¨ï¼å·®ç°ã¯ããã«å¤§ãããªãï¼
-詳細ã«ã¤ãã¦ã¯ä¾ãã° \url{https://github.com/h-kitagawa/kct} ä¸ã®\
-\texttt{kct-out.pdf} ãªã©ãåç
§ãããã¨ï¼
-%
-
-
-%<*en>
-\section{Directions}
-\LuaTeX\ supports four $\Omega$-style directions: \texttt{TLT},~\texttt{TRT}, \texttt{RTT}
-and \texttt{LTL}.
-However, neither directions are not well-suited for typesetting Japanese vertically, hence we
-implemented vertical writing by rotating \texttt{TLT}-box by 90~degrees.
-%
-%<*ja>
-\section{縦çµ}
-\label{sec-direction}
-\LuaTeX æ¬ä½ã§ãï¼$\Omega$ã»$\aleph$ç±æ¥ã®æ©è½ã¨ãã¦ï¼è¤æ°ã®çµæ¹åããµãã¼ããã¦ããï¼
-ãããï¼\LuaTeX ããµãã¼ãããã®ã¯ \texttt{TLT},~\texttt{TRT}, \texttt{RTT},~\texttt{LTL}\
-ã®ã¿ã§ããï¼æ¥æ¬èªã®ç¸¦çµã«ä½¿ãã®ã¯æã¾ãããªã\footnote{%
-åææåã ããªãã° \texttt{RTT} ã使ãã°ãªãã¨ããªãã¨æããï¼
-欧ææåãå
¥ã£ã¦ããå ´åã¯ãã¾ããããï¼\texttt{RTR} ã¨ããçµæ¹åãå¿
è¦ã«ãªãï¼
-}ï¼ãã®ããï¼\LuaTeX-jaã§ã¯æ¨ªçµ(\texttt{TLT})ã§çµãã ããã¯ã¹ãå転ãããæ¹å¼ã§
-縦çµãå®è£
ããï¼
-%
-
-%\subsection{ãµãã¼ãããçµæ¹å}
-\begin{table}[t]
-%\caption{\LuaTeX-ja ã®ãµãã¼ãããçµæ¹å}
-%\caption{Directions supported by \LuaTeX-ja}
-%\medskip
-\label{tab-dir}
-\centering\small
-\def\obox#1{%
- \setbox0=\hbox{\yoko\hbox{#1%
- \large\ltjsetparameter{talbaselineshift=0pt}%
- \vrule height 25pt width 0.4pt depth 15pt\kern-.2pt%
- \raise25pt\hbox to 0pt{\hss\composite{*r^@{>>}}\hss}%
- \raise-15pt\hbox to 0pt{\hss\composite{*l^@{>|}}\hss}\kern.2pt%
- \vrule height.2pt depth.2pt width 60pt\hbox to 0pt{\hss\composite{*d^@{>}}\hss}\kern-60pt
- \hbox to 60pt{\,éã¯ãAg\hss}}}%
- \raise\dimexpr 0.5\ltjgetdp0-0.5\ltjgetht0\box0%
-}
-%<*ja>
-\begin{tabular}{>{\bfseries}lcccc}
-\toprule
-&横çµ&ç¸¦çµ &ãdtouæ¹åã&ãutodæ¹åã\\
-\midrule
-å½ä»¤&\cs{yoko}&\cs{tate}&\cs{dtou}&\cs{utod}\\
-åéãæ¹å&æ°´å¹³å³åãï¼âï¼&åç´ä¸åãï¼âï¼&åç´ä¸åãï¼âï¼&åç´ä¸åãï¼âï¼\\
-è¡éãæ¹å&åç´ä¸åãï¼âï¼&水平左åãï¼âï¼&æ°´å¹³å³åãï¼âï¼&水平左åãï¼âï¼\\
-使ç¨ããåæãã©ã³ã&横çµç¨(\cs{jfont})&縦çµç¨(\cs{tfont})&
-\multicolumn{2}{c}{%
- 横çµç¨(\cs{jfont})ã®$90^\circ$å転}\\[\smallskipamount]
-çµçä¾\null $^*$ &\obox{\yoko}&\obox{\tate}&\obox{\dtou}&\obox{\utod}\\
-\noalign{\medskip}
-\bottomrule
-\end{tabular}
-
-\medskip\raggedright
-\def\R#1{%
- \raise0.38\zw\hbox{%
- \vrule height.2pt depth.2pt width2\zw%
- \hbox to 0pt{\hss\composite{*d^@{#1}}\hss}%
- }%
-}
-$^*$\ å¹
(width)ï¼é«ã(height)ï¼æ·±ã(depth)ã®å¢å æ¹åãï¼
-ããããã\R{>}ãï¼ã\R{>>}ãï¼ã\R{>|}ãã§è¡¨ãã¦ããï¼
-\raggedright
-%
-
-%<*en>
-\begin{tabular}{>{\bfseries}lcccc}
-\toprule
-&horizontal (\emph{yoko}~direction)&vertical (\emph{tate}~direction)&%
- \emph{dtou} direction&\emph{utod} direction\\
-\midrule
-Commands&\cs{yoko}&\cs{tate}&\cs{dtou}&\cs{utod}\\
-Beginning of the page&Top&Right&Left&Right\\
-Beginning of the line&Left&Top&Bottom&Top\\
-Used Japanese font&horizontal (\cs{jfont})&vertical (\cs{tfont})&
-\multicolumn{2}{c}{%
- horizontal ($90^\circ$ rotated)}\\[\smallskipamount]
-Example&\obox{\yoko}&\obox{\tate}&\obox{\dtou}&\obox{\utod}\\
-\noalign{\medskip}
-(Notation used in $\Omega$)&TLT&RTR, RTT&LBL&RTR\\
-\bottomrule
-\end{tabular}
-
-\medskip\raggedright
-\def\R#1{%
- \raise0.38\zw\hbox{%
- \vrule height.2pt depth.2pt width2\zw%
- \hbox to 0pt{\hss\composite{*d^@{#1}}\hss}%
- }%
-}
-\raggedright
-%
-\end{table}
-
-%<*en>
-\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.
-We implemented this for debugging purpose.
-The fifth column (\emph{utod} direction) corresponds the ``\texttt{tate (math) direction}'' of \pTeX.
-
-Directions can be changed by \cs{yoko},~\cs{tate}, \cs{dtou},~\cs{utod},
-only when the current list is null. Also, the direction of a math formula is changed to
-\emph{utod}, when the direction outside the math formula is \emph{tate} (vertical writing).
-%
-
-%<*ja>
-\LuaTeX-jaããµãã¼ãããçµæ¹åã¯\autoref{tab-dir}ã«ç¤ºã4ã¤ã§ããï¼
-4åç®ã® \cs{dtou} ã¯èãæ
£ããªãå½ä»¤ã ã¨æããï¼
-å®ã¯\pTeX ã«ååã®å½ä»¤ãï¼ããã¥ã¡ã³ãã«ã¯æ¸ããã¦ããªããï¼åå¨ããï¼
-Down-TO-Upã®æå³ãªã®ã ããï¼\cs{dtou} ã使ç¨ããæ©ä¼ã¯ãªãã ãããï¼
-\LuaTeX-jaã§ã¯ãããã°ç¨ã«å®è£
ãã¦ããï¼
-5åç®ã® \cs{utod} ã¯ï¼\pTeX ã§è¨ãã縦æ°å¼ãã£ã¬ã¯ã·ã§ã³ãã«ç¸å½ãããã®ã§ããï¼
-
-çµæ¹åã¯ï¼\cs{yoko},~\cs{tate}, \cs{dtou},~\cs{utod} ããããã使ç¨ãããã¨ã§ï¼
-ç¾å¨ä½æä¸ã®ãªã¹ããããã¯ã¹ã空ã®æã«ã®ã¿å¤æ´å¯è½ã§ããï¼
-ã¾ãï¼ç¸¦çµä¸ã®æ°å¼å
ã®ããã¯ã¹ã¯\pTeX ã¨åãããã«çµæ¹åã \cs{utod} ã¨ãªãï¼
-%
-
-%<*en>
-\subsection{Boxes in different direction}
-
-As in \pTeX, one can use boxes of different direction in one document.
-The below is an example.
-\begin{LTXexample}
-ããã¯æ¨ªçµ% yoko
-\hbox{\tate % tate
- \hbox{縦çµ}% tate
- ã®ä¸ã«
- \hbox{\yoko 横çµã®å
容}% yoko
- ãæ¿å
¥ãã
-}
-ã¾ã横çµã«æ»ã% yoko
-\end{LTXexample}
-
-\autoref{tab-diffdir} shows how a box is arranged when
-the direction inside the box and that outside the box differ.
-%
-%<*ja>
-\subsection{ç°æ¹åã®ããã¯ã¹}
-
-縦çµã®ä¸ã«ã42ããªã©ã®2æ¡ä»¥ä¸ã®ç®ç¨æ°åã横çµã§çµããªã©ï¼
-ç°ãªãçµæ¹åãæ··å¨ããããã¨ããã°ãã°è¡ãããï¼
-çµæ¹åã®æ··å¨ã\pTeX ã¨åãããã«ã§ããï¼
-\begin{LTXexample}
-ããã¯æ¨ªçµ% yoko
-\hbox{\tate % tate
- \hbox{縦çµ}% tate
- ã®ä¸ã«
- \hbox{\yoko 横çµã®å
容}% yoko
- ãæ¿å
¥ãã
-}
-ã¾ã横çµã«æ»ã% yoko
-\end{LTXexample}
-
-ç°ãªãçµæ¹åã®ããã¯ã¹ãé
ç½®ããå ´åã«ã©ãçµã¾ãããã®ä»æ§ãï¼\pTeX ã
-è¸è¥²ãã¦ããï¼\autoref{tab-diffdir}ã«ç¤ºãï¼
-%
-
-\begin{table}[t]
-%\caption{ç°æ¹åã®ããã¯ã¹ã®é
ç½®}
-%\caption{Boxes in different direction}
-%\medskip
-\label{tab-diffdir}
- \centering\small\unitlength3mm
- \def\TATEeg{%
- \hbox{\smash{\begin{picture}(0,0)(-2,0)
- \thicklines
- \polyline(-2,0)(-2,-7)(5,-7)(5,0)
- \put(0,0){\circle*{0.3}}
- \put(2.5,-4){\makebox(0,0){\hbox{\tate\bfseries \emph{tate}/\emph{utod}}}}
- \put(0,0){\vector(1,0){5}} \put(2.5,-0.2){\makebox(0,0)[t]{$h_{\mathrm{T}}$}}
- \put(0,0){\vector(-1,0){2}}\put(-1,-0.2){\makebox(0,0)[t]{$d_{\mathrm{T}}$}}
- \put(0,0){\vector(0,-1){7}}\put(0.2,-3.5){\makebox(0,0)[l]{$w_{\mathrm{T}}$}}
- \end{picture}}}%
- }
- \def\DTOUeg{%
- \hbox{\smash{\begin{picture}(0,0)(-5,0)
- \thicklines
- \polyline(-5,0)(-5,7)(2,7)(2,0)
- \put(0,0){\circle*{0.3}}
- \put(-2.5,4){\makebox(0,0){\hbox{\dtou\bfseries \emph{dtou}}}}
- \put(0,0){\vector(-1,0){5}} \put(-2.5,0.3){\makebox(0,0)[b]{$h_{\mathrm{D}}$}}
- \put(0,0){\vector(1,0){2}}\put(1,0.3){\makebox(0,0)[b]{$d_{\mathrm{D}}$}}
- \put(0,0){\vector(0,1){7}}\put(-0.2,3.5){\makebox(0,0)[r]{$w_{\mathrm{D}}$}}
- \end{picture}}}%
- }
- \def\YOKOeg{%
- \hbox{\smash{\begin{picture}(0,0)
- \thicklines
- \polyline(0,5)(7,5)(7,-2)(0,-2)
- \put(4,2.5){\makebox(0,0){\hbox{\yoko\bfseries \emph{yoko}}}}
- \put(0,0){\circle*{0.3}}
- \put(0,0){\vector(0,1){5}} \put(0.3,2.5){\makebox(0,0)[l]{$h_{\mathrm{Y}}$}}
- \put(0,0){\vector(0,-1){2}}\put(0.3,-1){\makebox(0,0)[l]{$d_{\mathrm{Y}}$}}
- \put(0,0){\vector(1,0){7}}\put(3.5,0.2){\makebox(0,0)[b]{$w_{\mathrm{Y}}$}}
- \end{picture}}}%
- }
-\begin{tabular}{ccc}
-\toprule
-%\emph{横çµä¸ã«é
ç½®}&\emph{縦çµä¸ã«é
ç½®}&%
-%\emph{çµæ¹å \cs{dtou} ä¸ã«é
ç½®}\\
-%\textbf{typeset in \emph{yoko} direction}
-%&\textbf{typeset in \emph{tate} or \emph{utod} direction}
-%&\textbf{typeset in \emph{dtou} direction}\\
+%\emph{横çµä¸ã«é
ç½®}&\emph{縦çµä¸ã«é
ç½®}&%
+%\emph{çµæ¹å \cs{dtou} ä¸ã«é
ç½®}\\
+%\textbf{typeset in \emph{yoko} direction}
+%&\textbf{typeset in \emph{tate} or \emph{utod} direction}
+%&\textbf{typeset in \emph{dtou} direction}\\
\midrule
\parbox[c]{15\unitlength}{\begin{picture}(15,15)(0,-4)
\put(0,0){\line(1,0){3.8}}
@@ -3587,3937 +3079,5343 @@ the direction inside the box and that outside the box differ.
%<*en>
-\paragraph{\cs{wd} and direction}
-In \pTeX, \cs{wd},~\cs{ht},~\cs{dp} means the dimensions of a box register
-\emph{with respact to the current direction}.
-This means that the value of \cs{wd0} etc.\ might differ when the current direction is
-different, even if \cs{box0} stores the same box.
-However, this no longer applies in \LuaTeX-ja.
+\paragraph{\cs{wd} and direction}
+In \pTeX, \cs{wd},~\cs{ht},~\cs{dp} means the dimensions of a box register
+\emph{with respact to the current direction}.
+This means that the value of \cs{wd0} etc.\ might differ when the current direction is
+different, even if \cs{box0} stores the same box.
+However, this no longer applies in \LuaTeX-ja.
+
+\begin{LTXexample}
+% yoko direction
+\setbox0=\hbox to 20pt{foo}
+\the\wd0,~\hbox{\tate\vrule\the\wd0}
+\wd0=100pt
+\the\wd0,~\hbox{\tate \the\wd0}
+\end{LTXexample}
+
+To access box dimensions \emph{with respect to current direction},
+one have to use the following commands instead of \cs{wd} wtc.
+\begin{cslist}
+
+ \item[\cs{ltjgetwd}\textrm{, }\cs{ltjgetht}\textrm{, }%
+ \cs{ltjgetdp}]
+These commands return \emph{an internal dimension} of \cs{box} with respect to
+the current direction. One can use these in \cs{dimexpr} primitive, as the followings.
+\begin{lstlisting}
+\dimexpr 2\ltjgetwd42-3pt\relax, \the\ltjgetwd1701
+\end{lstlisting}
+The following is an example.
+\begin{LTXexample}[width=0.3\textwidth]
+\parindent0pt
+\setbox32767=\hbox{\yoko ãããã¿}
+\fboxsep=0mm\fbox{\copy32767}
+\vbox{\hsize=20mm
+\yoko YOKO \the\ltjgetwd32767, \\
+ \the\ltjgetht32767, \\ \the\ltjgetdp32767.}
+\vbox{\hsize=20mm\raggedleft
+\tate TATE \the\ltjgetwd32767, \\
+ \the\ltjgetht32767, \\ \the\ltjgetdp32767.}
+\vbox{\hsize=20mm\raggedleft
+\dtou DTOU \the\ltjgetwd32767, \\
+ \the\ltjgetht32767, \\ \the\ltjgetdp32767.}
+\end{LTXexample}
+
+ \item[\cs{ltjsetwd}=\textrm{, }\cs{ltjsetht}=\textrm{, }%
+ \cs{ltjsetdp}=]
+These commands set the dimension of \cs{box}. One does not need
+ to group the argument ; four calls of \cs{ltjsetwd} below have the same meaning.
+\begin{lstlisting}
+\ltjsetwd42 20pt, \ltjsetwd42=20pt, \ltjsetwd=42 20pt, \ltjsetwd=42=20pt
+\end{lstlisting}
+
+\end{cslist}
+%
+%<*ja>
+\paragraph{\cs{wd} éã¨çµæ¹å}
+ããã¯ã¹ã¬ã¸ã¹ã¿ \cs{box} ã«ã»ããããã¦ããããã¯ã¹ã®å¹
ã»é«ãã»æ·±ãã®åå¾ã
+å¤æ´ã«ã¯ãããã \cs{wd},~\cs{ht},~\cs{dp} ããªããã£ããç¨ããã®ã§ãã£ãï¼
+\pTeX ã§ã¯ãããã®ããªããã£ãã¯ï¼ãç¾å¨ã®çµæ¹åã«ãããããã¯ã¹ã®å¯¸æ³ããæããã®ã§ï¼
+åãããã¯ã¹ã«å¯¾ãã¦ãç¾å¨ã®çµæ¹åã«ãã£ã¦è¿ãå¤ã¯ç°ãªããã§ãã£ãï¼
+
+\LuaTeX-jaã«ããã¦ã¯ç¶æ³ãç°ãªãï¼\cs{wd},~\cs{ht},~\cs{dp} ãè¿ãå¤ã¯
+ç¾å¨ã®çµæ¹åã«ã¯ä¾åããªãï¼ä¸ã®ä¾ã®ããã«ï¼æ¨ªçµã®ããã¯ã¹ãæ ¼ç´ããã¦ããã°
+\cs{wd}çã¯å¸¸ã«ã横çµã«ãããããã¯ã¹ã®å¯¸æ³ããæå³ããï¼
+
+\begin{LTXexample}
+% yoko direction
+\setbox0=\hbox to 20pt{foo}
+\the\wd0,~\hbox{\tate\vrule\the\wd0}
+\wd0=100pt
+\the\wd0,~\hbox{\tate \the\wd0}
+\end{LTXexample}
+
+\pTeX ã®ããã«ç¾å¨ã®çµæ¹åã«å¿ããããã¯ã¹ã®å¯¸æ³ã®åå¾ã»è¨å®ãè¡ãã«ã¯ï¼
+代ããã«æ¬¡ã®å½ä»¤ã使ç¨ããï¼
+
+\begin{cslist}
+
+ \item[\cs{ltjgetwd}\textrm{, }\cs{ltjgetht}\textrm{, }%
+ \cs{ltjgetdp}]
+ç¾å¨ã®çµæ¹åã«å¿ããããã¯ã¹ã®å¯¸æ³ã®åå¾ãè¡ãï¼çµæã¯å
é¨é·ãã§ããããï¼
+\begin{lstlisting}
+\dimexpr 2\ltjgetwd42-3pt\relax, \the\ltjgetwd1701
+\end{lstlisting}
+ã®ããã« \cs{wd} ã®ä»£ããã¨ãã¦æ±ããã¨ãã§ããï¼
+使ç¨ä¾ã¯ä»¥ä¸ã®éãã§ããï¼
+\begin{LTXexample}[width=0.3\textwidth]
+\parindent0pt
+\setbox32767=\hbox{\yoko ãããã¿}
+\fboxsep=0mm\fbox{\copy32767}
+\vbox{\hsize=20mm
+\yoko YOKO \the\ltjgetwd32767, \\
+ \the\ltjgetht32767, \\ \the\ltjgetdp32767.}
+\vbox{\hsize=20mm\raggedleft
+\tate TATE \the\ltjgetwd32767, \\
+ \the\ltjgetht32767, \\ \the\ltjgetdp32767.}
+\vbox{\hsize=20mm\raggedleft
+\dtou DTOU \the\ltjgetwd32767, \\
+ \the\ltjgetht32767, \\ \the\ltjgetdp32767.}
+\end{LTXexample}
+
+ \item[\cs{ltjsetwd}=\textrm{, }\cs{ltjsetht}=\textrm{, }%
+ \cs{ltjsetdp}=]
+ç¾å¨ã®çµæ¹åã«å¿ããããã¯ã¹ã®å¯¸æ³ã®è¨å®ãè¡ãï¼\cs{afterassignment} ã2åå©ç¨ãã¦
+å®è£
ãã¦ããã®ã§ï¼æ¬¡ã®4éãã¯å
¨ã¦åãæå³ã§ããï¼
+\begin{lstlisting}
+\ltjsetwd42 20pt, \ltjsetwd42=20pt, \ltjsetwd=42 20pt, \ltjsetwd=42=20pt
+\end{lstlisting}
+
+è¨å®å¤ã¯ã横çµãã縦çµåã³utodæ¹åããdtouæ¹åã
+ã®3種ãã¨ã«ç¬ç«ãã¦è¨é²ãããï¼åèã¨ãã¦ï¼Gitãªãã¸ããªå
ã®
+ \verb+test/test55-boxdim_diffdir.{tex,pdf}+ ãæãã¦ããï¼
+
+\end{cslist}
+%
+
+%<*en>
+\subsection{Getting current direction}
+The \Param{direction} parameter returns the current direction, and
+the \Param{boxdir} parameter (with the argument )
+returns the direction of a box register \cs{box}.
+The returned value of these parameters are a \emph{string}:
+\begin{center}
+\small
+\begin{tabular}{>{\bfseries}lccccc}
+\toprule
+Direction&\emph{yoko}&\emph{tate}&\emph{dtou}&\emph{utod}&(empty)\\
+\midrule
+Returned value&\texttt{4}&\texttt{3}&\texttt{1}&\texttt{11}&\texttt{0}\\
+\bottomrule
+\end{tabular}
+\end{center}
+\begin{LTXexample}[width=0.3\textwidth]
+\leavevmode\def\DIR{\ltjgetparameter{direction}}
+\hbox{\yoko \DIR}, \hbox{\tate\DIR},
+\hbox{\dtou\DIR}, \hbox{\utod\DIR},
+\hbox{\tate$\hbox{tate math: \DIR}$}
+
+\setbox2=\hbox{\tate}\ltjgetparameter{boxdir}{2}
+\end{LTXexample}
+%
+%<*ja>
+\subsection{çµæ¹åã®åå¾}
+ãç¾å¨ã®çµæ¹åãããçªã®ããã¯ã¹ã®çµæ¹åãã¯ï¼
+\pTeX ã§ã¯ \cs{ifydir} ã \cs{ifybox} ã¨ãã£ãæ¡ä»¶å¤ææã使ã£ã¦
+å¤æãããã¨ãã§ããï¼
+ãããï¼\LuaTeX-jaã¯ããã¾ã§ã\TeX ãã¯ãã¨Luaã³ã¼ãã§
+è¨è¿°ããã¦ããï¼ããã§ã¯æ°ããªæ¡ä»¶å¤æå½ä»¤ãä½ãã®ã¯é£ããï¼
+
+\LuaTeX-jaã§ã¯ï¼\Param{direction}ãã©ã¡ã¼ã¿ã§ç¾å¨ã®çµæ¹åãï¼
+\Param{boxdir}ãã©ã¡ã¼ã¿ï¼ã¨è¿½å ã®å¼æ°ï¼ã«ãã£ã¦
+\cs{box}ã®çµæ¹åãããããåå¾ã§ããããã«ããï¼
+æ»ãå¤ã¯æååã§ããï¼
+\begin{center}
+\small
+\begin{tabular}{>{\bfseries}lccccc}
+\toprule
+çµæ¹å&\emph{横çµ}&\emph{tate縦çµ}&\emph{dtouæ¹å}&\emph{utodæ¹å}&(æªå²ãå½ã¦)\\
+\midrule
+æ»ãå¤&\texttt{4}&\texttt{3}&\texttt{1}&\texttt{11}&\texttt{0}\\
+\bottomrule
+\end{tabular}
+\end{center}
+
+\begin{LTXexample}[width=0.3\textwidth]
+\leavevmode\def\DIR{\ltjgetparameter{direction}}
+\hbox{\yoko\DIR}, \hbox{\tate\DIR},
+\hbox{\dtou\DIR}, \hbox{\utod\DIR},
+\hbox{\tate$\hbox{tate math: \DIR}$}
+
+\setbox2=\hbox{\tate}\ltjgetparameter{boxdir}{2}
+\end{LTXexample}
+
+ããããç¨ããã°ï¼ä¾ãã°
+\pTeX ã® \cs{ifydir},~\cs{ifybox200} ã¨åçã®æ¡ä»¶å¤æã
+\begin{lstlisting}
+\ifnum\ltjgetparameter{direction}=4
+\ifnum\ltjgetparameter{boxdir}{200}=4
+\end{lstlisting}
+ã®ããã«è¡ããã¨ãã§ããï¼
+\cs{iftdir} ã¯å°ã
é¢åã§ãããï¼8ã§å²ã£ãä½ãã3ã§ãããå¦ããå¤æããã°è¯ããã
+\begin{lstlisting}
+\ifnum\numexpr
+ \ltjgetparameter{direction}-(\ltjgetparameter{direction}/8)*8=3
+\end{lstlisting}
+ã¨ããã°ããï¼
+%
+
+%<*en>
+\subsection{Overridden box primitives}
+To cope with multiple directions, the following primitives are
+overridden by \LuaTeX-ja, using~\verb+\protected\def+.
+\begin{cslist}[style=standard]
+ \item[\cs{unhbox}\textrm{, }\cs{unvbox}\textrm{, }\cs{unhcopy}\textrm{, }\cs{unvcopy}]
+ \item[\cs{vadjust}\{\}]
+ \item[\cs{insert}\{\}]
+ \item[\cs{lastbox}]
+ \item[\cs{raise}\textrm{, }\cs{lower}\textrm{\ etc., }\cs{vcenter}]
+ \item[\cs{vcenter}]
+\end{cslist}
+%
+%<*ja>
+\subsection{ããªããã£ãã®åå®ç¾©}
+ç°ãªãçµæ¹åã«å¯¾å¿ããããã«ï¼ä»¥ä¸ã«æããããªããã£ãã¯
+\LuaTeX-jaã«ããåå¦çãããã¯å¾å¦çãè¡ãããããã«
+\ \verb+\protected\def+ ã«ããåå®ç¾©ãã¦ããï¼
+
+\begin{cslist}
+ \item[\cs{unhbox}\textrm{, }\cs{unvbox}\textrm{, }\cs{unhcopy}\textrm{, }\cs{unvcopy}]
+ ããã¯ã¹ã®çµæ¹åãç¾å¨ã®ãªã¹ãã¨ç°ãªãå ´åã¯äºåã«ã¨ã©ã¼ã¡ãã»ã¼ã¸ãåºåããï¼
+ \pTeX ã¨ç°ãªãï¼ã¨ã©ã¼ãç¡è¦ãã¦ç¡çç¢ç \cs{unhbox}, \cs{unvbox} ã
+ ç¶è¡ããããã¨ãã§ãããï¼ãã®å ´åã®çµççµæã¯ä¿è¨¼ããªãï¼
+ \item[\cs{vadjust}\{\}] ä¸æ¦ããªããã£ãæ¬æ¥ã®æåãè¡ãï¼ãã®å¾ï¼ã®çµæ¹åã
+ å¨å²ã®åç´ãªã¹ãã®çµæ¹åã¨ä¸è´ããªãå ´åã«ã¨ã©ã¼ãåºåãï¼
+ 該å½ã® \cs{vadjust} ãç¡å¹ã«ããï¼
+ \item[\cs{insert}\{\}]
+ ä¸æ¦ããªããã£ãæ¬æ¥ã®æåãè¡ãï¼ãã®å¾å
ã®åããã¯ã¹ã»ç½«ç·ã®ç´åã«çµæ¹åã示
+ ãdirection whatsitãæ¿å
¥ããï¼
+ \item[\cs{lastbox}] ããã¯ã¹ã®ãä¸èº«ããç¾å¨ã®çµæ¹åã«åãããããã®ãã¼ã
+ ï¼\textit{dir\_box}ã¨ããï¼ãå¿
è¦ãªãã°é¤å»ãï¼
+ æ£ãããä¸èº«ãã®ããã¯ã¹ãè¿ãããããã«åå¦çãããï¼
+ \item[\cs{raise}\textrm{, }\cs{lower}\textrm{\ etc., }\cs{vcenter}]
+ ä¸æ¹ï¼ãã¡ãã§ã¯å¿
è¦ã«å¿ãã¦\textit{dir\_box}ãä½æããåå¦çã追å ãã¦ããï¼
+\end{cslist}
+%
+
+%\section{Font Metric and Japanese Font}
+%\section{ãã©ã³ãã¡ããªãã¯ã¨åæãã©ã³ã}
+%\subsection{\cs{jfont}}
+%\subsection{\cs{jfont} å½ä»¤}
+\label{ssec:jfont}
+
+%<*en>
+To load a font as a Japanese font (for horizontal direction), you must use the
+\cs{jfont} instead of~\cs{font}, while
+\cs{jfont} admits the same syntax used in~\cs{font}.
+\LuaTeX-ja automatically loads \Pkg{luaotfload} package,
+so TrueType/OpenType fonts with features can be used for Japanese fonts:
+%
+%<*ja>
+ãã©ã³ããï¼æ¨ªçµç¨ï¼åæãã©ã³ãã¨ãã¦èªã¿è¾¼ãããã«ã¯ï¼\cs{jfont} ã
+\ \cs{font} ããªããã£ãã®ä»£ããã«ç¨ããï¼
+\cs{jfont} ã®ææ³ã¯ \cs{font} ã¨åãã§ããï¼
+\LuaTeX-jaã¯\Pkg{luaotfload}ããã±ã¼ã¸ãèªåçã«èªã¿è¾¼ãã®ã§ï¼
+TrueType/OpenTypeãã©ã³ãã«featureãæå®ãããã®ãåæãã©ã³ãã¨ãã¦ç¨ãã
+ãã¨ãã§ããï¼
+%
+\begin{LTXexample}[width=0.3\textwidth]
+\jfont\tradgt={file:KozMinPr6N-Regular.otf:script=latn;%
+ +trad;-kern;jfm=ujis} at 14pt
+\tradgt å½ï¼ä½ï¼å»ï¼åº
+\end{LTXexample}
+
+%<*en>
+Note that the defined control sequence
+(\cs{tradgt} in the example above) using \cs{jfont} is not a
+\textit{font\_def} token, but a macro.
+Hence the input like \verb+\fontname\tradgt+
+causes a error. We denote control sequences which are defined in
+\cs{jfont} by .
+%
+%<*ja>
+ãªãï¼\cs{jfont} ã§å®ç¾©ãããå¶å¾¡ç¶´ï¼ä¸ã®ä¾ã 㨠\cs{tradgt}ï¼
+ã¯\textit{font\_def}ãã¼ã¯ã³ã§ã¯ãªããã¯ãã§ããï¼å¾ã£ã¦ï¼\verb+\fontname\tradgt+ ã®ãããª
+å
¥åã¯ã¨ã©ã¼ã¨ãªãï¼ä»¥ä¸ã§ã¯ \cs{jfont} ã§å®ç¾©ããã
+å¶å¾¡ç¶´ãã§è¡¨ãï¼
+%
+
+\paragraph{JFM}
+%<*en>
+a JFM has measurements of characters and
+glues/kerns that are automatically inserted for Japanese
+typesetting. The structure of JFM will be described in the next
+subsection. At the calling of \cs{jfont}, you must specify
+which JFM will be used for this font by the following keys:
+%
+%<*ja>
+JFMã¯æåã¨åæçµçã§èªåçã«æ¿å
¥ããã
+ã°ã«ã¼ï¼ã«ã¼ã³ã®å¯¸æ³æ
å ±ãæã£ã¦ããï¼JFMã®æ§é ã¯æ¬¡ã®ç¯ã§è¿°ã¹ãï¼
+\cs{jfont} å½ä»¤ã®å¼ã³åºãã®éã«ã¯ï¼ã©ã®JFMãç¨ããã®ãã以ä¸ã®ãã¼ã§
+æå®ããå¿
è¦ãããï¼
+%
+
+
+\begin{table}[t]
+%\caption{Differences between horizontal JFMs shipped with \LuaTeX-ja}
+%\caption{\LuaTeX-ja ã«å梱ããã¦ãã横çµç¨JFMã®éã}
+%\medskip
+\label{tab-difjfm}
+\ltjsetparameter{jacharrange={+3}}
+\centering\small
+\def\r#1#2{%
+ \hbox{\Large\vrule
+ \parbox[b]{7\zw}{%
+ \addjfontfeatures{YokoFeatures={Opacity=0.5, Color=#2, JFM=#1}}\noindent
+ âââââââ
+ ããæ¥ã¢ã¢ã¡ãããã使ãã§è¿·åã«ãªã£ã¦æ³£ãã¾ããï¼
+ }\vrule}}
+\def\s#1#2{%
+ \Large
+ \parbox[b]{7\zw}{%
+ \addjfontfeatures{YokoFeatures={Opacity=0.5, Color=#2, JFM=#1}}\noindent
+ ã¡ãã£ã¨ï¼ä½
+ }}
+\def\t#1#2#3{\hbox to 0pt{\hss%
+ \setbox0=\hbox{\addjfontfeatures{YokoFeatures={JFM=#1}}\huge #3}%
+ \textcolor{#2}{\transparent{0.5}\vrule width 0.4pt height\ht0 depth\dp0}\kern-.2pt\copy0
+ \textcolor{#2}{\transparent{0.5}\kern-\wd0\vrule width\wd0height .2pt depth .2pt
+ \kern-\wd0\raise\ht0\hbox{\vrule width\wd0height .2pt depth .2pt}%
+ \kern-\wd0\lower\dp0\hbox{\vrule width\wd0height .2pt depth .2pt}%
+ \kern-.2pt\vrule width 0.4pt height\ht0 depth \dp0}\hss}}
+{\Large\tabcolsep0pt
+\begin{tabular}{m{8\zw}m{8\zw}m{8\zw}}
+\leavevmode\hbox to 0pt{\r{ujis}{blue}\hss}\r{jis}{black}&
+\leavevmode\hbox to 0pt{\r{jis}{black}\hss}\r{min}{red}&
+\leavevmode\hbox to 0pt{\r{ujis}{blue}\hss}\r{min}{red}\\
+\leavevmode\hbox to 0pt{\s{ujis}{blue}\hss}\s{jis}{black}&
+\leavevmode\hbox to 0pt{\s{jis}{black}\hss}\s{min}{red}&
+\leavevmode\hbox to 0pt{\s{ujis}{blue}\hss}\s{min}{red}\\
+\leavevmode\qquad\t{ujis}{blue}{æ¼¢}\t{jis}{black}{æ¼¢}\qquad
+ \t{ujis}{blue}{ã£}\t{jis}{black}{ã£}&
+\leavevmode\qquad\t{jis}{black}{æ¼¢}\t{min}{red}{æ¼¢}\qquad
+ \t{jis}{black}{ã£}\t{min}{red}{ã£}&
+\leavevmode\qquad\t{ujis}{blue}{æ¼¢}\t{min}{red}{æ¼¢}\qquad
+ \t{ujis}{blue}{ã£}\t{min}{red}{ã£}\\
+\end{tabular}\par}
+
+(\textcolor{blue}{Blue: \texttt{jfm-ujis.lua}},
+\textcolor{black}{Black: \texttt{jfm-jis.lua}},
+\textcolor{red}{Red: \texttt{jfm-min.lua}})
+\ltjsetparameter{jacharrange={-3}}
+\end{table}
+
+\begin{cslist}
+\item[jfm=]
+%<*en>
+Specify the name of (horizontal) JFM.
+If specified JFM has not been loaded, \LuaTeX-ja search and load
+a file named \texttt{jfm-.lua}.
+
+The following horizontal JFMs are shipped with \LuaTeX-ja:
+%
+%<*ja>
+ç¨ããï¼æ¨ªçµç¨ï¼JFMã®ååãæå®ããï¼ãã以åã«æå®ãããJFMãèªã¿è¾¼ã¾ãã¦ããªããã°ï¼
+\texttt{jfm-.lua}ãèªã¿è¾¼ãï¼ä»¥ä¸ã®æ¨ªçµç¨JFMã\LuaTeX-jaã«ã¯å梱ããã¦ããï¼
+%
+\begin{description}
+%<*en>
+\item[\tt jfm-ujis.lua] A standard horizontal JFM in \LuaTeX-ja. This JFM is
+ based on \verb+upnmlminr-h.tfm+, a metric for UTF/OTF package that
+ is used in \upTeX. When you use the \Pkg{luatexja-otf} package, you should use this JFM.
+%
+%<*ja>
+\item[\tt jfm-ujis.lua] \LuaTeX-jaã®æ¨æºJFMã§ããï¼ãã®JFMã¯\upTeX ã§
+ ç¨ããããUTF/OTFããã±ã¼ã¸ç¨ã®åæç¨TFMã§ãã \verb+upnmlminr-h.tfm+ ã
+ å
ã«ãã¦ããï¼\Pkg{luatexja-otf}ããã±ã¼ã¸ã使ãã¨ãã¯ãã®JFMãæå®ããã¹ãã§ããï¼
+%
+%<*en>
+\item[\tt jfm-jis.lua] A counterpart for \verb+jis.tfm+, ``JIS font
+ metric'' which is widely used in \pTeX. A major difference between
+ \texttt{jfm-ujis.lua} and this \texttt{jfm-jis.lua} is that
+ most characters under \texttt{jfm-ujis.lua} are square-shaped,
+ while that under \texttt{jfm-jis.lua} are horizontal
+ rectangles.
+%
+%<*ja>
+\item[\tt jfm-jis.lua] \pTeX ã§åºãç¨ãããã¦ãããJISãã©ã³ãã¡ããªãã¯ã
+ \verb+jis.tfm+ ã«ç¸å½ããJFMã§ããï¼\texttt{jfm-ujis.lua} ã¨ãã®
+ \texttt{jfm-jis.lua} ã®ä¸»ãªéãã¯ï¼\texttt{jfm-ujis.lua} ã§ã¯ã»ã¨ãã©ã®æåã
+ æ£æ¹å½¢ç¶ã§ããã®ã«å¯¾ãï¼\texttt{jfm-jis.lua} ã§ã¯æ¨ªé·ã®é·æ¹å½¢ç¶ã§ãããã¨ã¨ï¼
+ \texttt{jfm-ujis.lua} ã§ã¯ãï¼ããï¼ãã®ç´å¾ã«åè§ç©ºç½ãæ¿å
¥ããããã¨ã§ããï¼
+%
+%<*en>
+\item[\tt jfm-min.lua] A counterpart for \verb+min10.tfm+, which is one
+ of the default Japanese font metric shipped with \pTeX.
+%
+%<*ja>
+\item[\tt jfm-min.lua] \pTeX ã«å梱ããã¦ããããã©ã«ãã®åæç¨TFM
+(\verb+min10.tfm+)ã«ç¸å½ãï¼è¡æ«ã§æåãæãããã«ããããã«ãã£ããªã©ä¸é¨ã®æåå¹
ãå¤ãã£
+ ã¦ããï¼\verb+min10.tfm+ ã«ã¤ãã¦ã¯\cite{min10}ã詳ããï¼
+%
+\end{description}
+%<*en>
+The difference among these three~JFMs is shown in \autoref{tab-difjfm}.
+%
+%<*ja>
+ããã3ã¤ã®JFMã®éãã¯\autoref{tab-difjfm}ã«ç¤ºããï¼è¡¨ä¸ã®æä¾ã®ä¸é¨ã«ã¯ï¼
+\cite{min10}ã®å³3,~4ã®ãã®ãç¨ããï¼
+%
+
+\begin{figure}
+\begin{LTXexample}[width=0.3\textwidth]
+\ltjsetparameter{differentjfm=both}
+\jfont\F=file:KozMinPr6N-Regular.otf:jfm=ujis
+\jfont\G=file:KozGoPr6N-Medium.otf:jfm=ujis
+\jfont\H=file:KozGoPr6N-Medium.otf:jfm=ujis;jfmvar=hoge
+\F ï¼{\G ãã}ï¼ % halfwidth space
+ ï¼{\H ãã}ï¼ % fullwidth space
+
+ã»ãï¼{\G ãã»ãã}ï¼ã»ãï¼\par
+ã»ãï¼{\H ãã»ãã}ï¼ã»ãï¼% pTeX-like
+
+\ltjsetparameter{differentjfm=paverage}
+\end{LTXexample}
+\caption{Example of \texttt{jfmvar} key}
+\label{fig:jfmvar}
+\end{figure}
+
+%<*en>
+\item[jfmvar=]
+Sometimes there is a need that \ldots.
+%
+%<*ja>
+\item[jfmvar=]
+æ¨æºã§ã¯ï¼JFMã¨ãµã¤ãºãåãã§ï¼
+ å®ãã©ã³ãã ããç°ãªã2ã¤ã®åæãã©ã³ãã¯ãåºå¥ãããªããï¼ä¾ãã°
+\autoref{fig:jfmvar}ã«ããã¦ï¼æåã®ãï¼ãã¨ãããã®å®ãã©ã³ãã¯ç°ãªããï¼
+JFMããµã¤ãºãåããªã®ã§ï¼æ®éã«ãï¼ããã¨å
¥åããæã¨åãããã«åè§ç©ºãã¨ãªãï¼
-\begin{LTXexample}
-% yoko direction
-\setbox0=\hbox to 20pt{foo}
-\the\wd0,~\hbox{\tate\vrule\the\wd0}
-\wd0=100pt
-\the\wd0,~\hbox{\tate \the\wd0}
+ãããï¼JFMã¨ãµã¤ãºãåãã§ãã£ã¦ãï¼\texttt{jfmvar} ãã¼ã®ç°ãªã
+2ã¤ã®åæãã©ã³ãï¼ä¾ãã°\autoref{fig:jfmvar}ã§è¨ã \cs{F} 㨠\cs{H}ï¼
+ã¯ãåºå¥ããããï¼ç°ãªãåæãã©ã³ãã«ç°ãªã \texttt{jfmvar} ãã¼ãå²ãå½ã¦ï¼
+ãã¤\Param{differentjfm}ãã©ã¡ã¼ã¿ã \texttt{both} ã«è¨å®ããã°ï¼
+\pTeX ã¨ä¼¼ãç¶æ³ã§çµçããããã¨ã«ãªãï¼
+%
+\end{cslist}
+
+\begin{figure}
+\begin{LTXexample}[pos=t]
+\newcommand\test{\vrule ãã¤ãããã¯ãã¤ã¯ã\vrule\\}
+\jfont\KMFW = KozMinPr6N-Regular:jfm=prop;-kern at 17pt
+\jfont\KMFK = KozMinPr6N-Regular:jfm=prop at 17pt % kern is activated
+\jfont\KMPW = KozMinPr6N-Regular:jfm=prop;script=dflt;+pwid;-kern at 17pt
+\jfont\KMPK = KozMinPr6N-Regular:jfm=prop;script=dflt;+pwid;+kern at 17pt
+\begin{multicols}{2}
+\ltjsetparameter{kanjiskip=0pt}
+{\KMFW\test \KMFK\test \KMPW\test \KMPK\test}
+
+\ltjsetparameter{kanjiskip=3pt}
+{\KMFW\test \KMFK\test \KMPW\test \KMPK\test}
+\end{multicols}
\end{LTXexample}
+\caption{Kerning information and \Param{kanjiskip}}
+\label{fig:kern-jfm}
+\end{figure}
-To access box dimensions \emph{with respect to current direction},
-one have to use the following commands instead of \cs{wd} wtc.
-\begin{cslist}
+%\paragraph{Using kerning information in a font}
+%\paragraph{ãã¢ã«ã¼ãã³ã°æ
å ±ã®ä½¿ç¨}
+\label{para-kern}
+%<*en>
+Some fonts have information for inter-glyph spacing.
+\LuaTeX-ja 20140324.0 or later treats kerning spaces like an italic correction;
+any glue and/or kern from the JFM and a kerning space can coexist.
+See \autoref{fig:kern-jfm} for detail.
- \item[\cs{ltjgetwd}\textrm{, }\cs{ltjgetht}\textrm{, }%
- \cs{ltjgetdp}]
-These commands return \emph{an internal dimension} of \cs{box} with respect to
-the current direction. One can use these in \cs{dimexpr} primitive, as the followings.
+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,
+because of the compatibility with previous versions of \LuaTeX-ja.
+%
+%<*ja>
+ããã¤ãã®ãã©ã³ãã¯ã°ãªãéã®ã¹ãã¼ã¹ã«ã¤ãã¦ã®æ
å ±ãæã£ã¦ããï¼
+ãã®ã«ã¼ãã³ã°æ
å ±ã¯ä»¥åã®\LuaTeX-ja ã¨ã¯ãã¾ãç¸æ§ãè¯ããªãã£ããï¼
+ãã¼ã¸ã§ã³20140324.0以éã§ã¯ã«ã¼ãã³ã°ã«ãã空ç½ã¯ã¤ã¿ãªãã¯è£æ£ã¨åæ§ã«æ±ããã¨ã«ãªã£ã¦ããï¼
+ã¤ã¾ãï¼ã«ã¼ãã³ã°ç±æ¥ã®ç©ºç½ã¨JFMç±æ¥ã®ã°ã«ã¼ã»ã«ã¼ã³ã¯åæã«å
¥ãããï¼
+\autoref{fig:kern-jfm}ãåç
§ï¼
+\begin{itemize}
+ \item \emph{\cs{jfont} ãï¼
+NFSS2ç¨ã®å½ä»¤ï¼\ref{ssec:chgfnt}ç¯ï¼\ref{ssec:nfsspat}ç¯ï¼ã«ãããæå®ã§ã¯
+ã«ã¼ãã³ã°æ
å ±ã¯æ¨æºã§ä½¿ç¨ãã}ãã¨ã«ãªã£ã¦ããããã§ããï¼
+è¨ãæããã°ï¼ã«ã¼ãã³ã°æ
å ±ã使ç¨ããªãè¨å®ã«ããã«ã¯ï¼é¢åã§ã
\begin{lstlisting}
-\dimexpr 2\ltjgetwd42-3pt\relax, \the\ltjgetwd1701
+\jfont\hoge=KozMinPr6N-Regular:jfm=ujis;-kern at 3.5mm
+\DeclareFontShape{JY3}{fuga}{m}{n} {<-> s*KozMinPr6N-Regular:jfm=ujis;-kern}{}
\end{lstlisting}
-The following is an example.
+ã®ããã«ï¼\texttt{-kern} ã¨ããæå®ãèªåã§è¿½å ããªããã°ãããªãï¼
+ \item
+ä¸æ¹ï¼\emph{\Pkg{luatexja-fontspec} ã®æä¾ãã \cs{setmainjfont}\
+ãªã©ã®å½ä»¤ã®æ¨æºè¨å®ã§ã¯ã«ã¼ãã³ã°æ
å ±ã¯ä½¿ç¨ããªã}ï¼\texttt{Kerning=Off}ï¼
+ãã¨ã«ãªã£ã¦ããï¼ããã¯ä»¥åã®ãã¼ã¸ã§ã³ã®\LuaTeX-jaã¨ã®äºææ§ã®ããã§ããï¼
+\end{itemize}
+%
+
+%<*ja>
+\paragraph{\texttt{extend}ã¨\texttt{slant}}
+OpenTypeæ©è½ã¨è¦ããä¸åããããªå½¢å¼ã§æå®ã§ãããã®ã«ï¼
+\begin{description}
+\item[\texttt{extend=}] 横æ¹åã«åæ¡å¤§ããï¼
+\item[\texttt{slant=}] ã«æå®ãããå²åã ãå¾ããï¼
+\end{description}
+ã®2ã¤ãããï¼
+\texttt{extend}ã\texttt{slant}ãæå®ããå ´åã¯ï¼ããã«å¿ããJFMãæå®ãã¹ãã§ãã%
+\footnote{\LuaTeX-jaã§ã¯ï¼ãããã«å¯¾ããJFMãç¹ã«æä¾ãããã¨ã¯ããªãäºå®ã§ããï¼}ï¼
+ä¾ãã°ï¼æ¬¡ã®ä¾ã§ã¯ç¡çããé常ã®JFMã使ã£ã¦ããããã«ï¼æåééãã¤ã¿ãªãã¯è£æ£éã
+æ£ãããªãï¼
+%
+%<*en>
+\paragraph{\texttt{extend} and \texttt{slant}}
+The following setting can be specified as OpenType font features:
+\begin{cslist}[style=standard]
+\item[\texttt{extend=}] expand the font horizontally by .
+\item[\texttt{slant=}] slant the font.
+\end{cslist}
+Note that \LuaTeX-ja doesn't adjust JFMs by these \texttt{extend} and \texttt{slant}
+settings; you have to write new JFMs on purpose.
+For example, the following example uses the standard JFM \texttt{jfm-ujis.lua}, hence
+letter-spacing and the width of italic correction are not correct:
+%
\begin{LTXexample}[width=0.3\textwidth]
-\parindent0pt
-\setbox32767=\hbox{\yoko ãããã¿}
-\fboxsep=0mm\fbox{\copy32767}
-\vbox{\hsize=20mm
-\yoko YOKO \the\ltjgetwd32767, \\
- \the\ltjgetht32767, \\ \the\ltjgetdp32767.}
-\vbox{\hsize=20mm\raggedleft
-\tate TATE \the\ltjgetwd32767, \\
- \the\ltjgetht32767, \\ \the\ltjgetdp32767.}
-\vbox{\hsize=20mm\raggedleft
-\dtou DTOU \the\ltjgetwd32767, \\
- \the\ltjgetht32767, \\ \the\ltjgetdp32767.}
+\jfont\E=KozMinPr6N-Regular:extend=1.5;jfm=ujis;-kern
+\E ããããã
+
+\jfont\S=KozMinPr6N-Regular:slant=1;jfm=ujis;-kern
+\S ããã\/ABC
\end{LTXexample}
- \item[\cs{ltjsetwd}=\textrm{, }\cs{ltjsetht}=\textrm{, }%
- \cs{ltjsetdp}=]
-These commands set the dimension of \cs{box}. One does not need
- to group the argument ; four calls of \cs{ltjsetwd} below have the same meaning.
+%<*ja>
+\paragraph{\texttt{ltjksp} æå®}
+\label{pg:ltjksp}
+\LuaTeX-jaæ¨æºã§ã¯ï¼
+JFMä¸ã«ããã \texttt{kanjiskip\_natural}, \texttt{kanjiskip\_stretch},\
+\texttt{kanjiskip\_shrink}ãã¼ï¼\pageref{pg:ksp_nat}ãã¼ã¸ï¼ã®ä½¿ç¨ã«ãã£ã¦ï¼
+ãJFMç±æ¥ã®ã°ã«ã¼ã®ä»ã«ï¼\Param{kanjiskip}ã®èªç¶é·/伸ã³é/縮ã¿éã®ä¸é¨ã
+åãå ´æã«æ¿å
¥ããããã¨ããç¶æ³ãèµ·ããããï¼
+ãã®æ©è½ãç¡å¹åãï¼ãã¼ã¸ã§ã³20150922.0以åã¨åããããªçµçãå¾ãããã«ã¯
+ä»ã®OpenTypeæ©è½ã¨åãããã«\ \texttt{-ltjksp}\ æå®ãè¡ãã°è¯ãï¼
+\begin{LTXexample}[width=16\zw]
+\leavevmode
+\ltjsetparameter{kanjiskip=0pt plus 3\zw}
+\vrule\hbox to 15\zw{ãããããï¼ãã}\vrule
+
+\jfont\G=file:KozMinPr6N-Regular.otf%
+ :jfm=ujis;-ltjksp at 9.2487pt
+\G\leavevmode%
+\vrule\hbox to 15\zw{ãããããï¼ãã}\vrule
+\end{LTXexample}
+ãªãï¼
\begin{lstlisting}
-\ltjsetwd42 20pt, \ltjsetwd42=20pt, \ltjsetwd=42 20pt, \ltjsetwd=42=20pt
+ \jfont\G=file:KozMinPr6N-Regular.otf:jfm=ujis;-ltjksp;+ltjksp at 9.2487pt
\end{lstlisting}
+ã®ããã« \texttt{+ltjksp} æå®ãè¡ã£ãå ´åã¯ï¼\texttt{kanjiskip\_natural} ãªã©
+3ãã¼ã¯åã³æå¹åãããï¼\texttt{-ltjksp}, \texttt{+ltjksp} ãè¤æ°åæå®ããå ´åã¯ï¼
+æå¾ã«æå®ãããã®ãæå¹ã¨ãªãï¼
+%
+%<*en>
+\paragraph{\texttt{ltjksp}}
+\label{pg:ltjksp}
+\texttt{kanjiskip\_natural}, \texttt{kanjiskip\_stretch},\
+\texttt{kanjiskip\_shrink} keys (Page~\pageref{pg:ksp_nat}) makes tha
+\LuaTeX-ja inserts not only a glue which is specified by a JFM, and also
+the natural width/stretch part/shrink part of \Param{kanjiskip}.
-\end{cslist}
+This functionality is disabled by \texttt{-ltjksp} specification.
+\begin{LTXexample}[width=16\zw]
+\leavevmode
+\ltjsetparameter{kanjiskip=0pt plus 3\zw}
+\vrule\hbox to 15\zw{ãããããï¼ãã}\vrule
+
+\jfont\G=file:KozMinPr6N-Regular.otf%
+ :jfm=ujis;-ltjksp at 9.2487pt
+\G\leavevmode%
+\vrule\hbox to 15\zw{ãããããï¼ãã}\vrule
+\end{LTXexample}
%
-%<*ja>
-\paragraph{\cs{wd} éã¨çµæ¹å}
-ããã¯ã¹ã¬ã¸ã¹ã¿ \cs{box} ã«ã»ããããã¦ããããã¯ã¹ã®å¹
ã»é«ãã»æ·±ãã®åå¾ã
-å¤æ´ã«ã¯ãããã \cs{wd},~\cs{ht},~\cs{dp} ããªããã£ããç¨ããã®ã§ãã£ãï¼
-\pTeX ã§ã¯ãããã®ããªããã£ãã¯ï¼ãç¾å¨ã®çµæ¹åã«ãããããã¯ã¹ã®å¯¸æ³ããæããã®ã§ï¼
-åãããã¯ã¹ã«å¯¾ãã¦ãç¾å¨ã®çµæ¹åã«ãã£ã¦è¿ãå¤ã¯ç°ãªããã§ãã£ãï¼
-\LuaTeX-jaã«ããã¦ã¯ç¶æ³ãç°ãªãï¼\cs{wd},~\cs{ht},~\cs{dp} ãè¿ãå¤ã¯
-ç¾å¨ã®çµæ¹åã«ã¯ä¾åããªãï¼ä¸ã®ä¾ã®ããã«ï¼æ¨ªçµã®ããã¯ã¹ãæ ¼ç´ããã¦ããã°
-\cs{wd}çã¯å¸¸ã«ã横çµã«ãããããã¯ã¹ã®å¯¸æ³ããæå³ããï¼
-\begin{LTXexample}
-% yoko direction
-\setbox0=\hbox to 20pt{foo}
-\the\wd0,~\hbox{\tate\vrule\the\wd0}
-\wd0=100pt
-\the\wd0,~\hbox{\tate \the\wd0}
-\end{LTXexample}
-\pTeX ã®ããã«ç¾å¨ã®çµæ¹åã«å¿ããããã¯ã¹ã®å¯¸æ³ã®åå¾ã»è¨å®ãè¡ãã«ã¯ï¼
-代ããã«æ¬¡ã®å½ä»¤ã使ç¨ããï¼
-\begin{cslist}
+%\subsection{\cs{tfont}}
+%\subsection{\cs{tfont} å½ä»¤}
+\label{ssec:tfont}
- \item[\cs{ltjgetwd}\textrm{, }\cs{ltjgetht}\textrm{, }%
- \cs{ltjgetdp}]
-ç¾å¨ã®çµæ¹åã«å¿ããããã¯ã¹ã®å¯¸æ³ã®åå¾ãè¡ãï¼çµæã¯å
é¨é·ãã§ããããï¼
+\begin{comment}
+ {\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}
+\ltjsetparameter{jacharrange={+3}}
+\small
+\def\r#1#2{%
+ \hbox{\tate\Large\vrule
+ \parbox{7\zw}{%
+ \addjfontfeatures{TateFeatures={Opacity=0.5, Color=#2, JFM=#1}}\noindent
+ âââââââ
+ ããæ¥ã¢ã¢ã¡ããããã使ããã§è¿·åã«ãªã£ã¦æ³£ãã¾ããã
+ }\vrule}}
+\def\s#1#2{%
+ \hbox{\tate\Large
+ \parbox{7\zw}{%
+ \addjfontfeatures{TateFeatures={Opacity=0.5, Color=#2, JFM=#1}}\noindent
+ ã¡ãã£ã¨ï¼ä½
+ }}}
+\def\t#1#2#3{\hbox to 0pt{\hss%
+ \setbox0=\hbox{\addjfontfeatures{TateFeatures={JFM=#1}}\huge #3}%
+ \textcolor{#2}{\transparent{0.5}\vrule width 0.4pt height\ht0 depth\dp0}\kern-.2pt\copy0
+ \textcolor{#2}{\transparent{0.5}\kern-\wd0\vrule width\wd0height .2pt depth .2pt
+ \kern-\wd0\raise\ht0\hbox{\vrule width\wd0height .2pt depth .2pt}%
+ \kern-\wd0\lower\dp0\hbox{\vrule width\wd0height .2pt depth .2pt}%
+ \kern-.2pt\vrule width 0.4pt height\ht0 depth \dp0}\hss}}
+
+\begin{minipage}{.7\textwidth}
+\centering
+\leavevmode\hbox to 0pt{\r{ujisv}{blue}\hss}\r{tmin}{red}\quad
+\leavevmode\hbox to 0pt{\s{ujisv}{blue}\hss}\s{tmin}{red}\quad
+\raise4\zw\hbox{\tate\Large\t{ujisv}{black}{æ¼¢}\t{tmin}{red}{æ¼¢}\qquad
+ \t{ujisv}{black}{ã£}\t{tmin}{red}{ã£}}
+\end{minipage}%
+\begin{minipage}{.3\textwidth}
+\textcolor{blue}{Blue: \texttt{jfm-ujisv.lua}}\\
+\textcolor{red}{Red: \texttt{jfm-tmin.lua}}
+\end{minipage}
+\ltjsetparameter{jacharrange={-3}}
+\end{table}
+}
+\end{comment}
+
+%<*en>
+\cs{tfont} loads a font as a Japanese font for vertical direction.
+This command admits the same syntax used in \cs{font}~and~\cs{jfont}.
+A font defined by~\cs{tfont} differs the following points from that by~\cs{jfont}:
+\begin{itemize}
+ \item OpenType Feature~\texttt{vrt2}%
+ \footnote{If the font does not define \texttt{vrt2} feature,
+ use \texttt{vert} instead.} is automatically activated,
+ unless \texttt{vert}~and//or~\texttt{vrt2} are explicitly activated
+ or deactivated (as the second line in the example below).
\begin{lstlisting}
-\dimexpr 2\ltjgetwd42-3pt\relax, \the\ltjgetwd1701
+\tfont\S=file:KozMinPr6N-Regular.otf:jfm=ujisv % vrt2 is automatically activated
+\tfont\T=file:KozMinPr6N-Regular.otf:jfm=ujisv;-vert % vert and vrt2 are not activated
+\tfont\U=file:ipaexm.ttf:jfm=ujisv
+ % vert is automatically activated, since this font does not have vrt2
\end{lstlisting}
-ã®ããã« \cs{wd} ã®ä»£ããã¨ãã¦æ±ããã¨ãã§ããï¼
-使ç¨ä¾ã¯ä»¥ä¸ã®éãã§ããï¼
-\begin{LTXexample}[width=0.3\textwidth]
-\parindent0pt
-\setbox32767=\hbox{\yoko ãããã¿}
-\fboxsep=0mm\fbox{\copy32767}
-\vbox{\hsize=20mm
-\yoko YOKO \the\ltjgetwd32767, \\
- \the\ltjgetht32767, \\ \the\ltjgetdp32767.}
-\vbox{\hsize=20mm\raggedleft
-\tate TATE \the\ltjgetwd32767, \\
- \the\ltjgetht32767, \\ \the\ltjgetdp32767.}
-\vbox{\hsize=20mm\raggedleft
-\dtou DTOU \the\ltjgetwd32767, \\
- \the\ltjgetht32767, \\ \the\ltjgetdp32767.}
+ \item Sometimes \texttt{vert} and/or \texttt{vrt2} are not activated
+ while one specified activation of these feature.
+ This is because the font does not define these features in current combination of
+ script~tag and language~system~identifier.
+
+ In this situation, \LuaTeX-ja performs all replacements which is defined in~\texttt{vert}
+ feature for \emph{some} scripts for \emph{some} languages.
+ \item Furthermore, a glyph is automatically rotated 90~degrees,
+ if it is not replaced by \texttt{vert} feature for \emph{any} script
+ for \emph{any} language, and if it is marked as `r''~or~``Tr'' in UAX~\#50.
+ \item One have to specify the name of vertical JFM in \texttt{jfm=}.
+\LuaTeX-ja ships following vertical JFMs:
+\begin{description}
+\item[\tt jfm-ujisv.lua] A standard vertical JFM in \LuaTeX-ja. This JFM is
+ based on \verb+upnmlminr-v.tfm+, a metric for UTF/OTF package that
+ is used in \upTeX.
+\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}
-
- \item[\cs{ltjsetwd}=\textrm{, }\cs{ltjsetht}=\textrm{, }%
- \cs{ltjsetdp}=]
-ç¾å¨ã®çµæ¹åã«å¿ããããã¯ã¹ã®å¯¸æ³ã®è¨å®ãè¡ãï¼\cs{afterassignment} ã2åå©ç¨ãã¦
-å®è£
ãã¦ããã®ã§ï¼æ¬¡ã®4éãã¯å
¨ã¦åãæå³ã§ããï¼
+\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}
+%
+%<*ja>
+\cs{tfont} ã¯ãã©ã³ãã縦çµç¨ã®åæãã©ã³ãã¨ãã¦èªã¿è¾¼ãå½ä»¤ã§ããï¼
+\cs{tfont} ã®ææ³ã¯ \cs{jfont} ã¨åãã§ããï¼
+\cs{tfont} ã§å®ç¾©ããã縦çµç¨åæãã©ã³ãã¯ï¼
+以ä¸ã®ç¹ã \cs{jfont} ã«ãã横çµç¨åæãã©ã³ãã¨ã¯ç°ãªãï¼
+\begin{itemize}
+ \item æ示çã« \texttt{vert}, \texttt{vrt2}ï¼ã®ããããï¼ã®
+ æå¹ã»ç¡å¹ãæå®ããå ´åãé¤ãï¼èªåçã« OpenTypeæ©è½ \texttt{vrt2} ã®æå¹åã
+ æå®ããããã®ã¨ã¿ãªããã
+ \footnote{ãããã©ã³ãã\texttt{vrt2}ãå®ç¾©ãã¦ããªãã£ãå ´åï¼ä»£ããã«
+ \texttt{vert}ãç¨ããï¼}ï¼
\begin{lstlisting}
-\ltjsetwd42 20pt, \ltjsetwd42=20pt, \ltjsetwd=42 20pt, \ltjsetwd=42=20pt
+\tfont\S=file:KozMinPr6N-Regular.otf:jfm=ujisv % vrt2 is automatically activated
+\tfont\T=file:KozMinPr6N-Regular.otf:jfm=ujisv;-vert % vert and vrt2 are not activated
+\tfont\U=file:ipaexm.ttf:jfm=ujisv
+ % vert is automatically activated, since this font does not have vrt2
\end{lstlisting}
+ \item \texttt{vert}, \texttt{vrt2} ã®å°ãªãã¨ãä¸ã¤ã®æå¹ãæå®ããå ´åã«ãé¢ãããï¼
+ script tagã¨language system identifierã®å¤ã®çµã¿åããã«ãã£ã¦
+ å®éã«ã¯æå¹ã«ãªããªãã£ãå ´åï¼\LuaTeX-jaã¯
+ \begin{quote}
+ ã©ããã®script,~languageã§å®ç¾©ããã¦ãã\texttt{vert}ã«ãã
+ ï¼åä¸ã°ãªãããåä¸ã°ãªãã¸ã®ï¼ç½®æãå
¨é¨é©ç¨ãã
+ \end{quote}
+ ã¨ããæåãåã\footnote{%
+ ä¾ãã°ï¼Windows~7ã«ä»å±ãã¦ããSimHeiã§ã¯ï¼\texttt{vert}ã¯Scriptã\texttt{hani}ï¼
+ Languageã\texttt{CHN}ã¨ããç¶æ³ã§ã®ã¿å®ç¾©ããã¦ããï¼ãããï¼\Pkg{luaotfload}ã§ã¯
+ ãã®script,~languageã®çµã¿åãããæå®ãããã¨ã¯ã§ããªãã®ã§ï¼
+ \Pkg{luaotfload}ãã®ã¾ã¾ã§ã¯\texttt{vert}ãé©ç¨ããããã¨ã¯ã§ããªãï¼
+ }ï¼
+ \item ããã«ï¼ããããªãscript,~languageã§ã\texttt{vert}ã«ããç½®æãããªããã°ãªã
+ ã®ãã¡ï¼UAX~\#50ã§``r''ãããã¯``Tr''ã¨æå®ããã¦ãããã®ã¯90度èªåå転ãããï¼
+ \item \ref{ssec:math}ç¯ã§è¿°ã¹ãï¼æ°å¼ä¸ã®åæãã©ã³ãã«ã¯ç¸¦çµç¨åæãã©ã³ãã¯æå®ã§ããªãï¼
+ \item \texttt{jfm=}\ ã®é¨åã«ã¯ç¸¦çµç¨JFMãæå®ããï¼
+以ä¸ã®ç¸¦çµç¨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+ ã
+ å
ã«ãã¦ããï¼
+\item[\tt jfm-tmin.lua] \pTeX ã«å梱ããã¦ããããã©ã«ãã®åæç¨ç¸¦çµTFM
+ ã§ãã \verb+tmin10.tfm+ ã«ç¸å½ãï¼\texttt{min10.tfm} ã¨åæ§ã«
+ ãã£ããªã©ä¸é¨ã®æåå¹
ãçãããã¦ããï¼
+\end{description}
-è¨å®å¤ã¯ã横çµãã縦çµåã³utodæ¹åããdtouæ¹åã
-ã®3種ãã¨ã«ç¬ç«ãã¦è¨é²ãããï¼åèã¨ãã¦ï¼Gitãªãã¸ããªå
ã®
- \verb+test/test55-boxdim_diffdir.{tex,pdf}+ ãæãã¦ããï¼
+\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}ãæå®ãããã¨ã§
+ ãé常ã§ã¯è¡ããªã縦çµç¨åå½¢ã¸ã®å¤æããè¡ããã¨ãã§ããï¼
-\end{cslist}
+ æ¨æºã§ã¯ï¼ãã®ãå¤æãã¯å
¨è§ã®ã³ã³ãã»ããªãªããå¥èªç¹ã«ï¼
+ ã¾ãå
¨è§ã®äºéå¼ç¨ç¬¦ãããã«ããã¥ã¼ãã¸ç½®ãæãã
+ \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ã§ã¯ããã§ãªãã®ã§æ³¨æï¼
%
+%\subsection{Default Japanese fonts and JFMs}
+%\subsection{æ¨æºåæãã©ã³ãã»JFMã®å¤æ´}
+\label{ssec:cfg}
%<*en>
-\subsection{Getting current direction}
-The \Param{direction} parameter returns the current direction, and
-the \Param{boxdir} parameter (with the argument )
-returns the direction of a box register \cs{box}.
-The returned value of these parameters are a \emph{string}:
-\begin{center}
-\small
-\begin{tabular}{>{\bfseries}lccccc}
-\toprule
-Direction&\emph{yoko}&\emph{tate}&\emph{dtou}&\emph{utod}&(empty)\\
-\midrule
-Returned value&\texttt{4}&\texttt{3}&\texttt{1}&\texttt{11}&\texttt{0}\\
-\bottomrule
-\end{tabular}
-\end{center}
-\begin{LTXexample}[width=0.3\textwidth]
-\leavevmode\def\DIR{\ltjgetparameter{direction}}
-\hbox{\yoko \DIR}, \hbox{\tate\DIR},
-\hbox{\dtou\DIR}, \hbox{\utod\DIR},
-\hbox{\tate$\hbox{tate math: \DIR}$}
-
-\setbox2=\hbox{\tate}\ltjgetparameter{boxdir}{2}
-\end{LTXexample}
+If following commands are defined at loading \LuaTeX-ja package, these change
+default Japanese fonts and JFMs for them:
%
%<*ja>
-\subsection{çµæ¹åã®åå¾}
-ãç¾å¨ã®çµæ¹åãããçªã®ããã¯ã¹ã®çµæ¹åãã¯ï¼
-\pTeX ã§ã¯ \cs{ifydir} ã \cs{ifybox} ã¨ãã£ãæ¡ä»¶å¤ææã使ã£ã¦
-å¤æãããã¨ãã§ããï¼
-ãããï¼\LuaTeX-jaã¯ããã¾ã§ã\TeX ãã¯ãã¨Luaã³ã¼ãã§
-è¨è¿°ããã¦ããï¼ããã§ã¯æ°ããªæ¡ä»¶å¤æå½ä»¤ãä½ãã®ã¯é£ããï¼
-
-\LuaTeX-jaã§ã¯ï¼\Param{direction}ãã©ã¡ã¼ã¿ã§ç¾å¨ã®çµæ¹åãï¼
-\Param{boxdir}ãã©ã¡ã¼ã¿ï¼ã¨è¿½å ã®å¼æ°ï¼ã«ãã£ã¦
-\cs{box}ã®çµæ¹åãããããåå¾ã§ããããã«ããï¼
-æ»ãå¤ã¯æååã§ããï¼
-\begin{center}
-\small
-\begin{tabular}{>{\bfseries}lccccc}
-\toprule
-çµæ¹å&\emph{横çµ}&\emph{tate縦çµ}&\emph{dtouæ¹å}&\emph{utodæ¹å}&(æªå²ãå½ã¦)\\
-\midrule
-æ»ãå¤&\texttt{4}&\texttt{3}&\texttt{1}&\texttt{11}&\texttt{0}\\
-\bottomrule
-\end{tabular}
-\end{center}
-
-\begin{LTXexample}[width=0.3\textwidth]
-\leavevmode\def\DIR{\ltjgetparameter{direction}}
-\hbox{\yoko\DIR}, \hbox{\tate\DIR},
-\hbox{\dtou\DIR}, \hbox{\utod\DIR},
-\hbox{\tate$\hbox{tate math: \DIR}$}
+\LuaTeX-jaãèªã¿è¾¼ã¾ããåã«ä»¥ä¸ã®å½ä»¤ãå®ç¾©ããã¦ããå ´åã¯ï¼
+ããããæ¨æºåæãã©ã³ãããããã«ç¨ããJFMã¨ãã¦ä½¿ãããï¼
+%
-\setbox2=\hbox{\tate}\ltjgetparameter{boxdir}{2}
-\end{LTXexample}
+\begin{cslist}[style=standard]
+ \item[\cs{ltj@stdmcfont}]
+%The default Japanese font for the mincho family.
+%ææä½ã¨ãã¦ç¨ãããã©ã³ãï¼
+ \item[\cs{ltj@stdgtfont}]
+%The default Japanese font for the gothic family.
+%ã´ã·ãã¯ä½ã¨ãã¦ç¨ãããã©ã³ãï¼
+ \item[\cs{ltj@stdyokojfm}]
+%The default JFM for horizontal direction.
+%æ¨æºã§ç¨ãã横çµç¨JFMï¼
+ \item[\cs{ltj@stdyokojfm}]
+%The default JFM for vertical direction.
+%æ¨æºã§ç¨ãã縦çµç¨JFMï¼
+\end{cslist}
-ããããç¨ããã°ï¼ä¾ãã°
-\pTeX ã® \cs{ifydir},~\cs{ifybox200} ã¨åçã®æ¡ä»¶å¤æã
+%<*en>
+For example,
\begin{lstlisting}
-\ifnum\ltjgetparameter{direction}=4
-\ifnum\ltjgetparameter{boxdir}{200}=4
+\def\ltj@stdmcfont{IPAMincho}
+\def\ltj@stdgtfont{IPAGothic}
\end{lstlisting}
-ã®ããã«è¡ããã¨ãã§ããï¼
-\cs{iftdir} ã¯å°ã
é¢åã§ãããï¼8ã§å²ã£ãä½ãã3ã§ãããå¦ããå¤æããã°è¯ããã
+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.
+%
+%<*ja>
+ä¾ãã°
\begin{lstlisting}
-\ifnum\numexpr
- \ltjgetparameter{direction}-(\ltjgetparameter{direction}/8)*8=3
+\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}ãªã©ã§
+使ç¨ãã©ã³ããé¸æãããã¨ãæ¨å¥¨ããï¼
+%
+
+%<*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.
+%
+%<*ja>
+æ§ãã¼ã¸ã§ã³ã¨ã®äºææ§ã®ããï¼
+\LuaTeX ããè¦ããä½ç½®ã«\texttt{luatexja.cfg}ãããã°ï¼\LuaTeX-jaã¯ãããèªã¿è¾¼ãï¼
+ãããï¼\texttt{luatexja.cfg}å
ã§\cs{ltj@stdmcfont}çãå®ç¾©ããã¦ããå ´åã¯ãã¡ãã
+åªå
ãããã®ã§ï¼ãã¯ã\texttt{luatexja.cfg}ã¯ä½¿ããªãã»ããè¯ãã ããï¼
%
+%\subsection{Prefix \texttt{psft}}
+%\subsection{\texttt{psft}ããªãã£ãã¯ã¹}
+\label{ssec:psft}
%<*en>
-\subsection{Overridden box primitives}
-To cope with multiple directions, the following primitives are
-overridden by \LuaTeX-ja, using~\verb+\protected\def+.
-\begin{cslist}[style=standard]
- \item[\cs{unhbox}\textrm{, }\cs{unvbox}\textrm{, }\cs{unhcopy}\textrm{, }\cs{unvcopy}]
- \item[\cs{vadjust}\{\}]
- \item[\cs{insert}\{\}]
- \item[\cs{lastbox}]
- \item[\cs{raise}\textrm{, }\cs{lower}\textrm{\ etc., }\cs{vcenter}]
- \item[\cs{vcenter}]
-\end{cslist}
+Besides ``\texttt{file:}''\ and ``\texttt{name:}''\ prefixes which
+are introduced in the \Pkg{luaotfload} package,
+\LuaTeX-ja adds ``\texttt{psft:}''\ prefix in \cs{jfont} (and~\cs{font}),
+to specify a ``name-only'' Japanese font which
+will not be embedded to PDF.
+Note that these non-embedded fonts under current \LuaTeX\ has Identity-H encoding,
+and this violates the standard ISO32000-1:2008~(\cite{pdfstd}).
+
+\emph{OpenType font features, such as ``{\tt +jp90}'',
+have no meaning in name-only fonts using ``{\tt psft:}''\ prefix,
+because we can't expect what fonts are actually used by the PDF reader.}
+Note that \texttt{extend}~and~\texttt{slant} settings (see~above) are supported
+with \texttt{psft} prefix, because they are only simple linear transformations.
%
%<*ja>
-\subsection{ããªããã£ãã®åå®ç¾©}
-ç°ãªãçµæ¹åã«å¯¾å¿ããããã«ï¼ä»¥ä¸ã«æããããªããã£ãã¯
-\LuaTeX-jaã«ããåå¦çãããã¯å¾å¦çãè¡ãããããã«
-\ \verb+\protected\def+ ã«ããåå®ç¾©ãã¦ããï¼
+\Pkg{luaotfload}ã§ä½¿ç¨å¯è½ã«ãªã£ã
+\texttt{file:}\ 㨠\texttt{name:}\ ã®ããªãã£ãã¯ã¹ã«å ãã¦ï¼
+\cs{jfont}ï¼ã¨ \cs{font} ããªããã£ãï¼ã§ã¯
+\texttt{psft:}ããªãã£ãã¯ã¹ãç¨ãããã¨ãã§ããï¼
+ãã®ããªãã£ãã¯ã¹ãç¨ãããã¨ã§ï¼PDFã«ã¯åãè¾¼ã¾ããªããååã ãã®ã
+åæãã©ã³ããæå®ãããã¨ãã§ããï¼
+ãªãï¼ç¾è¡ã®\LuaTeX ã§éåãè¾¼ã¿ãã©ã³ããä½æããã¨PDFå
ã§ã®ã¨ã³ã³ã¼ãã£ã³ã°ã
+Identity-Hã¨ãªãï¼PDFã®æ¨æºè¦æ ¼ISO32000-1:2008~(\cite{pdfstd})ã«éæºæ ã«ãªã£ã¦ãã¾ã
+ã®ã§æ³¨æãã¦ã»ããï¼
-\begin{cslist}
- \item[\cs{unhbox}\textrm{, }\cs{unvbox}\textrm{, }\cs{unhcopy}\textrm{, }\cs{unvcopy}]
- ããã¯ã¹ã®çµæ¹åãç¾å¨ã®ãªã¹ãã¨ç°ãªãå ´åã¯äºåã«ã¨ã©ã¼ã¡ãã»ã¼ã¸ãåºåããï¼
- \pTeX ã¨ç°ãªãï¼ã¨ã©ã¼ãç¡è¦ãã¦ç¡çç¢ç \cs{unhbox}, \cs{unvbox} ã
- ç¶è¡ããããã¨ãã§ãããï¼ãã®å ´åã®çµççµæã¯ä¿è¨¼ããªãï¼
- \item[\cs{vadjust}\{\}] ä¸æ¦ããªããã£ãæ¬æ¥ã®æåãè¡ãï¼ãã®å¾ï¼ã®çµæ¹åã
- å¨å²ã®åç´ãªã¹ãã®çµæ¹åã¨ä¸è´ããªãå ´åã«ã¨ã©ã¼ãåºåãï¼
- 該å½ã® \cs{vadjust} ãç¡å¹ã«ããï¼
- \item[\cs{insert}\{\}]
- ä¸æ¦ããªããã£ãæ¬æ¥ã®æåãè¡ãï¼ãã®å¾å
ã®åããã¯ã¹ã»ç½«ç·ã®ç´åã«çµæ¹åã示
- ãdirection whatsitãæ¿å
¥ããï¼
- \item[\cs{lastbox}] ããã¯ã¹ã®ãä¸èº«ããç¾å¨ã®çµæ¹åã«åãããããã®ãã¼ã
- ï¼\textit{dir\_box}ã¨ããï¼ãå¿
è¦ãªãã°é¤å»ãï¼
- æ£ãããä¸èº«ãã®ããã¯ã¹ãè¿ãããããã«åå¦çãããï¼
- \item[\cs{raise}\textrm{, }\cs{lower}\textrm{\ etc., }\cs{vcenter}]
- ä¸æ¹ï¼ãã¡ãã§ã¯å¿
è¦ã«å¿ãã¦\textit{dir\_box}ãä½æããåå¦çã追å ãã¦ããï¼
-\end{cslist}
+\emph{\texttt{psft} ããªãã£ãã¯ã¹ã®ä¸ã§ã¯
+\texttt{+jp90} ãªã©ã®OpenTypeæ©è½ã®å¹åã¯ãªãï¼
+éåè¾¼ãã©ã³ããPDFã«ä½¿ç¨ããã¨ï¼å®éã«ã©ã®ãããªãã©ã³ãã
+表示ã«ç¨ãããããäºæ¸¬ã§ããªãããã§ããï¼}\
+\texttt{extend} 㨠\texttt{slant} æå®ã¯åãªãå¤å½¢ã®ãã
+\texttt{psft} ããªãã£ãã¯ã¹ã§ã使ç¨å¯è½ã§ããï¼
%
-%\section{Font Metric and Japanese Font}
-%\section{ãã©ã³ãã¡ããªãã¯ã¨åæãã©ã³ã}
-%\subsection{\cs{jfont}}
-%\subsection{\cs{jfont} å½ä»¤}
-\label{ssec-jfont}
+%\paragraph{\texttt{cid} key}
+%\paragraph{\texttt{cid}ãã¼}
+\label{para-cid}
%<*en>
-To load a font as a Japanese font (for horizontal direction), you must use the
-\cs{jfont} instead of~\cs{font}, while
-\cs{jfont} admits the same syntax used in~\cs{font}.
-\LuaTeX-ja automatically loads \Pkg{luaotfload} package,
-so TrueType/OpenType fonts with features can be used for Japanese fonts:
+The default font defined by using \texttt{psft:} prefix is for Japanese typesetting;
+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.
%
%<*ja>
-ãã©ã³ããï¼æ¨ªçµç¨ï¼åæãã©ã³ãã¨ãã¦èªã¿è¾¼ãããã«ã¯ï¼\cs{jfont} ã
-\ \cs{font} ããªããã£ãã®ä»£ããã«ç¨ããï¼
-\cs{jfont} ã®ææ³ã¯ \cs{font} ã¨åãã§ããï¼
-\LuaTeX-jaã¯\Pkg{luaotfload}ããã±ã¼ã¸ãèªåçã«èªã¿è¾¼ãã®ã§ï¼
-TrueType/OpenTypeãã©ã³ãã«featureãæå®ãããã®ãåæãã©ã³ãã¨ãã¦ç¨ãã
-ãã¨ãã§ããï¼
-%
-\begin{LTXexample}[width=0.3\textwidth]
-\jfont\tradgt={file:KozMinPr6N-Regular.otf:script=latn;%
- +trad;-kern;jfm=ujis} at 14pt
-\tradgt å½ï¼ä½ï¼å»ï¼åº
-\end{LTXexample}
+æ¨æºã§\texttt{psft:}ããªãã£ãã¯ã¹ã§å®ç¾©ããããã©ã³ãã¯æ¥æ¬èªç¨ã®ãã®ã§
+ããï¼Adobe-Japan1-7ã®CIDã«å¯¾å¿ãããã®ã¨ãªãï¼ãããï¼\LuaTeX-jaã¯ä¸å½èª
+ã®çµçã«ãå¨åãçºæ®ãããã¨ãåããï¼æ¥æ¬èªãã©ã³ãã§ãªãéåè¾¼ãã©ã³ã
+ã®å¯¾å¿ãå¿
è¦ã¨ãªã£ãï¼ãã®ããã«è¿½å ãããã®ã\texttt{cid}ãã¼ã§ããï¼
+\texttt{cid}ãã¼ã«å¤ãæå®ããã¨ï¼ãã®CIDãæã£ãéåè¾¼ãã©ã³ããå®ç¾©ãããã¨ãã§ããï¼
+%
+\begin{lstlisting}[numbers=left]
+\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 defined control sequence
-(\cs{tradgt} in the example above) using \cs{jfont} is not a
-\textit{font\_def} token, but a macro.
-Hence the input like \verb+\fontname\tradgt+
-causes a error. We denote control sequences which are defined in
-\cs{jfont} by .
+Note that the code above specifies \texttt{jfm-jis.lua}, which is for Japanese fonts,
+as JFM for Chinese and Korean fonts.
%
%<*ja>
-ãªãï¼\cs{jfont} ã§å®ç¾©ãããå¶å¾¡ç¶´ï¼ä¸ã®ä¾ã 㨠\cs{tradgt}ï¼
-ã¯\textit{font\_def}ãã¼ã¯ã³ã§ã¯ãªããã¯ãã§ããï¼å¾ã£ã¦ï¼\verb+\fontname\tradgt+ ã®ãããª
-å
¥åã¯ã¨ã©ã¼ã¨ãªãï¼ä»¥ä¸ã§ã¯ \cs{jfont} ã§å®ç¾©ããã
-å¶å¾¡ç¶´ãã§è¡¨ãï¼
+ä¸ã®ã³ã¼ãã§ã¯ä¸å½èªã»éå½èªç¨ãã©ã³ãã«å¯¾ãã¦ãJFMã«
+æ¥æ¬èªç¨ã®\texttt{jfm-jis.lua}ãæå®ãã¦ããã®ã§æ³¨æããããï¼
%
-\paragraph{JFM}
%<*en>
-a JFM has measurements of characters and
-glues/kerns that are automatically inserted for Japanese
-typesetting. The structure of JFM will be described in the next
-subsection. At the calling of \cs{jfont}, you must specify
-which JFM will be used for this font by the following keys:
+At present, \LuaTeX-ja supports only 5 values written in the sample code above.
+Specifying other values, e.g.,
%
%<*ja>
-JFMã¯æåã¨åæçµçã§èªåçã«æ¿å
¥ããã
-ã°ã«ã¼ï¼ã«ã¼ã³ã®å¯¸æ³æ
å ±ãæã£ã¦ããï¼JFMã®æ§é ã¯æ¬¡ã®ç¯ã§è¿°ã¹ãï¼
-\cs{jfont} å½ä»¤ã®å¼ã³åºãã®éã«ã¯ï¼ã©ã®JFMãç¨ããã®ãã以ä¸ã®ãã¼ã§
-æå®ããå¿
è¦ãããï¼
+ä»ã®ã¨ããï¼\LuaTeX-jaã¯ä¸ã®ãµã³ãã«ã³ã¼ãä¸ã«æ¸ãã5ã¤ã®å¤ãããµãã¼ããã¦ããªãï¼
%
+\begin{lstlisting}
+\jfont\test={psft:Ryumin-Light:cid=Adobe-Japan2;jfm=jis}
+\end{lstlisting}
+%<*en>
+produces the following error:
+%
+%<*ja>
+ã®ããã«ããã以å¤ã®å¤ãæå®ããã¨ï¼ã¨ã©ã¼ãçºçããï¼
+%
+\begin{lstlisting}[numbers=left]
+! Package luatexja Error: bad cid key `Adobe-Japan2'.
+See the luatexja package documentation for explanation.
+Type H for immediate help.
+
+ \par
+l.78
-\begin{table}[t]
-%\caption{Differences between horizontal JFMs shipped with \LuaTeX-ja}
-%\caption{\LuaTeX-ja ã«å梱ããã¦ãã横çµç¨JFMã®éã}
-%\medskip
-\label{tab-difjfm}
-\ltjsetparameter{jacharrange={+3}}
-\centering\small
-\def\r#1#2{%
- \hbox{\Large\vrule
- \parbox[b]{7\zw}{%
- \addjfontfeatures{YokoFeatures={Opacity=0.5, Color=#2, JFM=#1}}\noindent
- âââââââ
- ããæ¥ã¢ã¢ã¡ãããã使ãã§è¿·åã«ãªã£ã¦æ³£ãã¾ããï¼
- }\vrule}}
-\def\s#1#2{%
- \Large
- \parbox[b]{7\zw}{%
- \addjfontfeatures{YokoFeatures={Opacity=0.5, Color=#2, JFM=#1}}\noindent
- ã¡ãã£ã¨ï¼ä½
- }}
-\def\t#1#2#3{\hbox to 0pt{\hss%
- \setbox0=\hbox{\addjfontfeatures{YokoFeatures={JFM=#1}}\huge #3}%
- \textcolor{#2}{\transparent{0.5}\vrule width 0.4pt height\ht0 depth\dp0}\kern-.2pt\copy0
- \textcolor{#2}{\transparent{0.5}\kern-\wd0\vrule width\wd0height .2pt depth .2pt
- \kern-\wd0\raise\ht0\hbox{\vrule width\wd0height .2pt depth .2pt}%
- \kern-\wd0\lower\dp0\hbox{\vrule width\wd0height .2pt depth .2pt}%
- \kern-.2pt\vrule width 0.4pt height\ht0 depth \dp0}\hss}}
-{\Large\tabcolsep0pt
-\begin{tabular}{m{8\zw}m{8\zw}m{8\zw}}
-\leavevmode\hbox to 0pt{\r{ujis}{blue}\hss}\r{jis}{black}&
-\leavevmode\hbox to 0pt{\r{jis}{black}\hss}\r{min}{red}&
-\leavevmode\hbox to 0pt{\r{ujis}{blue}\hss}\r{min}{red}\\
-\leavevmode\hbox to 0pt{\s{ujis}{blue}\hss}\s{jis}{black}&
-\leavevmode\hbox to 0pt{\s{jis}{black}\hss}\s{min}{red}&
-\leavevmode\hbox to 0pt{\s{ujis}{blue}\hss}\s{min}{red}\\
-\leavevmode\qquad\t{ujis}{blue}{æ¼¢}\t{jis}{black}{æ¼¢}\qquad
- \t{ujis}{blue}{ã£}\t{jis}{black}{ã£}&
-\leavevmode\qquad\t{jis}{black}{æ¼¢}\t{min}{red}{æ¼¢}\qquad
- \t{jis}{black}{ã£}\t{min}{red}{ã£}&
-\leavevmode\qquad\t{ujis}{blue}{æ¼¢}\t{min}{red}{æ¼¢}\qquad
- \t{ujis}{blue}{ã£}\t{min}{red}{ã£}\\
-\end{tabular}\par}
-
-(\textcolor{blue}{Blue: \texttt{jfm-ujis.lua}},
-\textcolor{black}{Black: \texttt{jfm-jis.lua}},
-\textcolor{red}{Red: \texttt{jfm-min.lua}})
-\ltjsetparameter{jacharrange={-3}}
-\end{table}
+? h
+I couldn't find any non-embedded font information for the CID
+`Adobe-Japan2'. For now, I'll use `Adobe-Japan1-6'.
+Please contact the LuaTeX-ja project team.
+?
+\end{lstlisting}
-\begin{cslist}
-\item[jfm=]
+%\subsection{Structure of a JFM file}
+%\subsection{JFMãã¡ã¤ã«ã®æ§é }
+\label{ssec:jfm-str}
+%A JFM file is a Lua script which has only one function call:
+%JFMãã¡ã¤ã«ã¯ãã ä¸ã¤ã®é¢æ°å¼ã³åºããå«ãLuaã¹ã¯ãªããã§ããï¼
+\begin{lstlisting}
+luatexja.jfont.define_jfm { ... }
+\end{lstlisting}
%<*en>
-Specify the name of (horizontal) JFM.
-If specified JFM has not been loaded, \LuaTeX-ja search and load
-a file named \texttt{jfm-.lua}.
-
-The following JFMs are shipped with \LuaTeX-ja:
+Real data are stored in the table which indicated above by
+\verb+{ ... }+. So, the rest of this subsection are devoted to describe the
+structure of this table. Note that all lengths in a JFM file are
+floating-point numbers in design-size unit.
%
%<*ja>
-ç¨ããï¼æ¨ªçµç¨ï¼JFMã®ååãæå®ããï¼ãã以åã«æå®ãããJFMãèªã¿è¾¼ã¾ãã¦ããªããã°ï¼
-\texttt{jfm-.lua}ãèªã¿è¾¼ãï¼ä»¥ä¸ã®æ¨ªçµç¨JFMã\LuaTeX-jaã«ã¯å梱ããã¦ããï¼
+å®éã®ãã¼ã¿ã¯ä¸ã§ \verb+{ ... }+ ã§ç¤ºããããã¼ãã«ã®ä¸ã«æ ¼ç´ããã¦ããï¼
+以ä¸ã§ã¯ãã®ãã¼ãã«ã®æ§é ã«ã¤ãã¦è¨ãï¼
+ãªãï¼JFMãã¡ã¤ã«ä¸ã®é·ãã¯å
¨ã¦design-sizeãåä½ã¨ããæµ®åå°æ°ç¹æ°ã§ãããã¨ã«
+注æããï¼
%
-\begin{description}
+
+\begin{cslist}[style=standard]
+
+\item[version=]
+%(optional, default value is~1)
+%ï¼ä»»æï¼æ¢å®å¤ã¯1ï¼
+
%<*en>
-\item[\tt jfm-ujis.lua] A standard JFM in \LuaTeX-ja. This JFM is
- based on \verb+upnmlminr-h.tfm+, a metric for UTF/OTF package that
- is used in \upTeX. When you use the \Pkg{luatexja-otf} package, you should use this JFM.
+The version JFM. Currently 1,~2,~and,~3 are supported
%
%<*ja>
-\item[\tt jfm-ujis.lua] \LuaTeX-jaã®æ¨æºJFMã§ããï¼ãã®JFMã¯\upTeX ã§
- ç¨ããããUTF/OTFããã±ã¼ã¸ç¨ã®åæç¨TFMã§ãã \verb+upnmlminr-h.tfm+ ã
- å
ã«ãã¦ããï¼\Pkg{luatexja-otf}ããã±ã¼ã¸ã使ãã¨ãã¯ãã®JFMãæå®ããã¹ãã§ããï¼
+JFMã®ãã¼ã¸ã§ã³ï¼1,~2,~3ããµãã¼ããããï¼
%
+
+\item[dir=]
+%(required)
+%ï¼å¿
é ï¼
+
%<*en>
-\item[\tt jfm-jis.lua] A counterpart for \verb+jis.tfm+, ``JIS font
- metric'' which is widely used in \pTeX. A major difference between
- \texttt{jfm-ujis.lua} and this \texttt{jfm-jis.lua} is that
- most characters under \texttt{jfm-ujis.lua} are square-shaped,
- while that under \texttt{jfm-jis.lua} are horizontal
- rectangles.
+The direction of JFM. \texttt{'yoko'}~(horizontal)
+or \texttt{'tate'}~(vertical) are supported.
%
%<*ja>
-\item[\tt jfm-jis.lua] \pTeX ã§åºãç¨ãããã¦ãããJISãã©ã³ãã¡ããªãã¯ã
- \verb+jis.tfm+ ã«ç¸å½ããJFMã§ããï¼\texttt{jfm-ujis.lua} ã¨ãã®
- \texttt{jfm-jis.lua} ã®ä¸»ãªéãã¯ï¼\texttt{jfm-ujis.lua} ã§ã¯ã»ã¨ãã©ã®æåã
- æ£æ¹å½¢ç¶ã§ããã®ã«å¯¾ãï¼\texttt{jfm-jis.lua} ã§ã¯æ¨ªé·ã®é·æ¹å½¢ç¶ã§ãããã¨ã¨ï¼
- \texttt{jfm-ujis.lua} ã§ã¯ãï¼ããï¼ãã®ç´å¾ã«åè§ç©ºç½ãæ¿å
¥ããããã¨ã§ããï¼
+JFMã®æ¸åæ¹åï¼\texttt{'yoko'}ï¼æ¨ªçµï¼ã¨ \texttt{'tate'}ï¼ç¸¦çµï¼ããµãã¼ããããï¼
+%
+
+\item[zw=]
+%(required)
+%ï¼å¿
é ï¼
+
+%The amount of the length of the ``full-width''.
+%<*ja>
+ãå
¨è§å¹
ãã®é·ãï¼ãã®éã \cs{zw} ã®é·ãã¨ãªãï¼\pTeX ã§ã¯
+ãå
¨è§å¹
ã\texttt{1zw} ã¯ãæåã¯ã©ã¹0ã®æåãã®å¹
ã¨æ±ºãããã¦ãããï¼
+\LuaTeX-jaã§ã¯ããã§æå®ããï¼
%
-%<*en>
-\item[\tt jfm-min.lua] A counterpart for \verb+min10.tfm+, which is one
- of the default Japanese font metric shipped with \pTeX.
-%
+
+\item[zh=]
+%(required)
+%ï¼å¿
é ï¼
+
+%The amount of the ``full-height'' (height + depth).
%<*ja>
-\item[\tt jfm-min.lua] \pTeX ã«å梱ããã¦ããããã©ã«ãã®åæç¨TFM
-(\verb+min10.tfm+)ã«ç¸å½ãï¼è¡æ«ã§æåãæãããã«ããããã«ãã£ããªã©ä¸é¨ã®æåå¹
ãå¤ãã£
- ã¦ããï¼\verb+min10.tfm+ ã«ã¤ãã¦ã¯\cite{min10}ã詳ããï¼
+ãå
¨è§é«ãã(height + depth)ã®é·ãï¼é常ã¯å
¨è§å¹
ã¨åãé·ãã«ãªãã ããï¼
+\pTeX ã§ã¯ ãå
¨è§é«ãã\texttt{1zh} ã¯ãæåã¯ã©ã¹0ã®æåãã®é«ãã¨æ·±ãã®åã¨æ±ºãããã¦ãããï¼
+\LuaTeX-jaã§ã¯ããã§æå®ããï¼
%
-\end{description}
+
+\item[kanjiskip=\{, , \}]
+%(optional)
+%ï¼ä»»æï¼
+
%<*en>
-The difference among these three~JFMs is shown in \autoref{tab-difjfm}.
+This field specifies the ``ideal'' amount of \Param{kanjiskip}. As noted
+ in Subsection~\ref{subs-kskip}, if the parameter
+ \Param{kanjiskip} is \cs{maxdimen}, the value specified
+ in this field is actually used (if this field is not specified in
+ JFM, it is regarded as 0\,pt). Note that and
+ fields are in design-size unit too.
%
%<*ja>
-ããã3ã¤ã®JFMã®éãã¯\autoref{tab-difjfm}ã«ç¤ºããï¼è¡¨ä¸ã®æä¾ã®ä¸é¨ã«ã¯ï¼
-\cite{min10}ã®å³3,~4ã®ãã®ãç¨ããï¼
+çæ³çãª\Param{kanjiskip}ã®éãæå®ããï¼\ref{subs-kskip}ç¯ã§è¿°ã¹ãããã«ï¼
+ãã\Param{kanjiskip}ã \cs{maxdimen} ã®å¤ãªãã°ï¼ãã®ãã£ã¼ã«ãã§æå®ããã
+å¤ãå®éã«ã¯ç¨ããããï¼æå®ãªãã¯0\,ptã¨ãã¦æ±ãããï¼ï¼ã¨ã®ãã£ã¼ã«ããdesign-size
+ãåä½ã§ãããã¨ã«æ³¨æããï¼
%
-\begin{figure}
-\begin{LTXexample}[width=0.3\textwidth]
-\ltjsetparameter{differentjfm=both}
-\jfont\F=file:KozMinPr6N-Regular.otf:jfm=ujis
-\jfont\G=file:KozGoPr6N-Medium.otf:jfm=ujis
-\jfont\H=file:KozGoPr6N-Medium.otf:jfm=ujis;jfmvar=hoge
-\F ï¼{\G ãã}ï¼ % halfwidth space
- ï¼{\H ãã}ï¼ % fullwidth space
-
-ã»ãï¼{\G ãã»ãã}ï¼ã»ãï¼\par
-ã»ãï¼{\H ãã»ãã}ï¼ã»ãï¼% pTeX-like
-
-\ltjsetparameter{differentjfm=paverage}
-\end{LTXexample}
-\caption{Example of \texttt{jfmvar} key}
-\label{fig:jfmvar}
-\end{figure}
+\item[xkanjiskip=\{, , \}]
+%(optional)
+%ï¼ä»»æï¼
%<*en>
-\item[jfmvar=]
-Sometimes there is a need that \ldots.
+Like the \texttt{kanjiskip} field, this field specifies the ``ideal''
+ amount of \Param{xkanjiskip}.
%
%<*ja>
-\item[jfmvar=]
-æ¨æºã§ã¯ï¼JFMã¨ãµã¤ãºãåãã§ï¼
- å®ãã©ã³ãã ããç°ãªã2ã¤ã®åæãã©ã³ãã¯ãåºå¥ãããªããï¼ä¾ãã°
-\autoref{fig:jfmvar}ã«ããã¦ï¼æåã®ãï¼ãã¨ãããã®å®ãã©ã³ãã¯ç°ãªããï¼
-JFMããµã¤ãºãåããªã®ã§ï¼æ®éã«ãï¼ããã¨å
¥åããæã¨åãããã«åè§ç©ºãã¨ãªãï¼
-
-ãããï¼JFMã¨ãµã¤ãºãåãã§ãã£ã¦ãï¼\texttt{jfmvar} ãã¼ã®ç°ãªã
-2ã¤ã®åæãã©ã³ãï¼ä¾ãã°\autoref{fig:jfmvar}ã§è¨ã \cs{F} 㨠\cs{H}ï¼
-ã¯ãåºå¥ããããï¼ç°ãªãåæãã©ã³ãã«ç°ãªã \texttt{jfmvar} ãã¼ãå²ãå½ã¦ï¼
-ãã¤\Param{differentjfm}ãã©ã¡ã¼ã¿ã \texttt{both} ã«è¨å®ããã°ï¼
-\pTeX ã¨ä¼¼ãç¶æ³ã§çµçããããã¨ã«ãªãï¼
+\texttt{kanjiskip}ãã£ã¼ã«ãã¨åæ§ã«ï¼\Param{xkanjiskip}ã®çæ³çãªéã
+æå®ããï¼
%
\end{cslist}
-\begin{figure}
-\begin{LTXexample}[pos=t]
-\newcommand\test{\vrule ãã¤ãããã¯ãã¤ã¯ã\vrule\\}
-\jfont\KMFW = KozMinPr6N-Regular:jfm=prop;-kern at 17pt
-\jfont\KMFK = KozMinPr6N-Regular:jfm=prop at 17pt % kern is activated
-\jfont\KMPW = KozMinPr6N-Regular:jfm=prop;script=dflt;+pwid;-kern at 17pt
-\jfont\KMPK = KozMinPr6N-Regular:jfm=prop;script=dflt;+pwid;+kern at 17pt
-\begin{multicols}{2}
-\ltjsetparameter{kanjiskip=0pt}
-{\KMFW\test \KMFK\test \KMPW\test \KMPK\test}
+%<*en>
+\paragraph{Character classes}
+Besides from above fields, a JFM file have several sub-tables those
+indices are natural numbers. The table indexed by~$i\in\omega$ stores
+information of \emph{character class}~$i$. At least, the character class~0 is
+always present, so each JFM file must have a sub-table whose index is
+\texttt{[0]}. Each sub-table (its numerical index is denoted by $i$) has
+the following fields:
+%
+%<*ja>
+\paragraph{æåã¯ã©ã¹}
+ä¸è¨ã®ãã£ã¼ã«ãã«å ãã¦ï¼JFMãã¡ã¤ã«ã¯ãã®ã¤ã³ããã¯ã¹ãèªç¶æ°ã§ããããã¤ãã®
+ãµããã¼ãã«ãæã¤ï¼ã¤ã³ããã¯ã¹ã$i\in\omega$ã§ãããã¼ãã«ã¯\emph{æåã¯ã©ã¹}$i$ã®
+æ
å ±ãæ ¼ç´ããï¼å°ãªãã¨ãï¼æåã¯ã©ã¹0ã¯å¸¸ã«åå¨ããã®ã§ï¼JFMãã¡ã¤ã«ã¯ã¤ã³ããã¯ã¹
+ã\texttt{[0]}ã®ãµããã¼ãã«ãæããªããã°ãªããªãï¼ããããã®ãµããã¼ãã«
+ï¼ãã®ã¤ã³ããã¯ã¹ã$i$ã§è¡¨ããï¼ã¯ä»¥ä¸ã®ãã£ã¼ã«ããæã¤ï¼
+%
-\ltjsetparameter{kanjiskip=3pt}
-{\KMFW\test \KMFK\test \KMPW\test \KMPK\test}
-\end{multicols}
-\end{LTXexample}
-\caption{Kerning information and \Param{kanjiskip}}
-\label{fig:kern-jfm}
-\end{figure}
+\begin{cslist}[style=standard]
+\item[chars=\{, ...\}]
+%(required except character class~0)
+%ï¼æåã¯ã©ã¹0ãé¤ãã¦å¿
é ï¼
-%\paragraph{Using kerning information in a font}
-%\paragraph{ãã¢ã«ã¼ãã³ã°æ
å ±ã®ä½¿ç¨}
-\label{para-kern}
%<*en>
-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 \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,
-because of the compatibility with previous versions of \LuaTeX-ja.
+This field is a list of characters which are in this character
+ type~$i$. This field is optional if $i=0$, since all
+ \textbf{JAchar} which do not belong any character classes other
+ than 0 are in the character class 0
+ (hence, the character class~0 contains most of
+ \textbf{JAchar}s). In the list, character(s) can be specified in the following form:
+\begin{itemize}
+\item a Unicode code point
+\item the character itself (as a Lua string, like \hbox{\ltjsetparameter{autoxspacing=false}\verb+'ã'+})
+\item a string like \hbox{\ltjsetparameter{autoxspacing=false}\verb+'ã*'+} (the character followed by an asterisk)
+\item several ``imaginary'' characters (We will describe these later.)
+\end{itemize}
%
%<*ja>
-ããã¤ãã®ãã©ã³ãã¯ã°ãªãéã®ã¹ãã¼ã¹ã«ã¤ãã¦ã®æ
å ±ãæã£ã¦ããï¼
-ãã®ã«ã¼ãã³ã°æ
å ±ã¯ä»¥åã®\LuaTeX-ja ã¨ã¯ãã¾ãç¸æ§ãè¯ããªãã£ããï¼
-æ¬ãã¼ã¸ã§ã³ã§ã¯ã«ã¼ãã³ã°ã«ãã空ç½ã¯ã¤ã¿ãªãã¯è£æ£ã¨åæ§ã«æ±ããã¨ã«ãªã£ã¦ããï¼
-ã¤ã¾ãï¼ã«ã¼ãã³ã°ç±æ¥ã®ç©ºç½ã¨JFMç±æ¥ã®ã°ã«ã¼ã»ã«ã¼ã³ã¯åæã«å
¥ãããï¼
-\autoref{fig:kern-jfm}ãåç
§ï¼
+ãã®ãã£ã¼ã«ãã¯æåã¯ã©ã¹$i$ã«å±ããæåã®ãªã¹ãã§ããï¼ãã®ãã£ã¼ã«ãã¯$i=0$ã®
+å ´åã«ã¯ä»»æã§ããï¼æåã¯ã©ã¹0ã«ã¯ï¼0以å¤ã®æåã¯ã©ã¹ã«å±ãããã®ã
+é¤ããå
¨ã¦ã®\textbf{JAchar}ãå±ããããï¼ï¼ãã®ãªã¹ãä¸ã§æåãæå®ããã«ã¯ï¼ä»¥ä¸ã®æ¹æ³ãããï¼
\begin{itemize}
- \item \emph{\cs{jfont} ãï¼
-NFSS2ç¨ã®å½ä»¤ï¼\ref{ssec-chgfnt}ç¯ï¼\ref{ssec-nfsspat}ç¯ï¼ã«ãããæå®ã§ã¯
-ã«ã¼ãã³ã°æ
å ±ã¯æ¨æºã§ä½¿ç¨ãã}ãã¨ã«ãªã£ã¦ããããã§ããï¼
-è¨ãæããã°ï¼ã«ã¼ãã³ã°æ
å ±ã使ç¨ããªãè¨å®ã«ããã«ã¯ï¼é¢åã§ã
-\begin{lstlisting}
-\jfont\hoge=KozMinPr6N-Regular:jfm=ujis;-kern at 3.5mm
-\DeclareFontShape{JY3}{fuga}{m}{n} {<-> s*KozMinPr6N-Regular:jfm=ujis;-kern}{}
-\end{lstlisting}
-ã®ããã«ï¼\texttt{-kern} ã¨ããæå®ãèªåã§è¿½å ããªããã°ãããªãï¼
- \item
-ä¸æ¹ï¼\emph{\Pkg{luatexja-fontspec} ã®æä¾ãã \cs{setmainjfont}\
-ãªã©ã®å½ä»¤ã®æ¨æºè¨å®ã§ã¯ã«ã¼ãã³ã°æ
å ±ã¯ä½¿ç¨ããªã}ï¼\texttt{Kerning=Off}ï¼
-ãã¨ã«ãªã£ã¦ããï¼ããã¯ä»¥åã®ãã¼ã¸ã§ã³ã®\LuaTeX-jaã¨ã®äºææ§ã®ããã§ããï¼
+\item Unicode ã«ãããã³ã¼ãçªå·
+\item ã\hbox{\ltjsetparameter{autoxspacing=false}\verb+'ã'+}ãã®ãããªï¼æåããèªä½
+\item ã\hbox{\ltjsetparameter{autoxspacing=false}\verb+'ã*'+}ãã®ãããªï¼æåããèªä½ã®å¾ã«ã¢ã¹ã¿ãªã¹ã¯ãã¤ãããã®
+\item ããã¤ãã®ãä»®æ³çãªæåãï¼å¾ã«èª¬æããï¼
\end{itemize}
%
-%<*ja>
-\paragraph{\texttt{extend}ã¨\texttt{slant}}
-OpenType font featureã¨è¦ããä¸åããããªå½¢å¼ã§æå®ã§ãããã®ã«ï¼
-\begin{description}
-\item[\texttt{extend=}] 横æ¹åã«åæ¡å¤§ããï¼
-\item[\texttt{slant=}] ã«æå®ãããå²åã ãå¾ããï¼
-\end{description}
-ã®2ã¤ãããï¼
-\texttt{extend}ã\texttt{slant}ãæå®ããå ´åã¯ï¼ããã«å¿ããJFMãæå®ãã¹ãã§ãã%
-\footnote{\LuaTeX-jaã§ã¯ï¼ãããã«å¯¾ããJFMãç¹ã«æä¾ãããã¨ã¯ããªãäºå®ã§ããï¼}ï¼
-ä¾ãã°ï¼æ¬¡ã®ä¾ã§ã¯ç¡çããé常ã®JFMã使ã£ã¦ããããã«ï¼æåééãã¤ã¿ãªãã¯è£æ£éã
-æ£ãããªãï¼
-%
+\item[width=, height=, depth=, italic=]
+%(required)
+%ï¼å¿
é ï¼
+
%<*en>
-\paragraph{\texttt{extend} and \texttt{slant}}
-The following setting can be specified as OpenType font features:
-\begin{cslist}[style=standard]
-\item[\texttt{extend=}] expand the font horizontally by .
-\item[\texttt{slant=}] slant the font.
-\end{cslist}
-Note that \LuaTeX-ja doesn't adjust JFMs by these \texttt{extend} and \texttt{slant}
-settings; you have to write new JFMs on purpose.
-For example, the following example uses the standard JFM \texttt{jfm-ujis.lua}, hence
-letter-spacing and the width of italic correction are not correct:
+\begin{table}[t]
+ \centering
+\begin{tabular}{llr}
+\toprule
+Direction of JFM&\textbf{\texttt{'yoko'} (horizontal)}&\multicolumn{1}{l}{\textbf{\texttt{'tate'} (vertical)}}\\
+\midrule
+\texttt{width} field&\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
+\end{tabular}
+\caption{Default values of \texttt{width} field and other fields}
+\label{tab-wid}
+\end{table}
+Specify the width of characters in character class~$i$, the height, the depth and
+the amount of italic correction. All characters in character class~$i$ are regarded that its width, height, and depth are
+as values of these fields. The default values are shown in \autoref{tab-wid}.
%
-\begin{LTXexample}[width=0.3\textwidth]
-\jfont\E=KozMinPr6N-Regular:extend=1.5;jfm=ujis;-kern
-\E ããããã
+%<*ja>
+\begin{table}[t]
+ \centering
+\begin{tabular}{llr}
+\toprule
+JFMæ¸åæ¹å&\emph{\texttt{'yoko'}ï¼æ¨ªçµï¼}&\multicolumn{1}{l}{\emph{\texttt{'tate'}ï¼ç¸¦çµï¼}}\\
+\midrule
+\texttt{width}&\multicolumn{2}{c}{ãå®éã®ã°ãªããã®å¹
}\\
+\texttt{height}&ãå®éã®ã°ãªããã®é«ã&0.0\\
+\texttt{depth}&ãå®éã®ã°ãªããã®æ·±ã&0.0\\
+\midrule
+\texttt{italic}&\multicolumn{2}{c}{0.0}\\
+\bottomrule
+\end{tabular}
+\caption{\texttt{width} ãã£ã¼ã«ãçã®æ¨æºå¤}
+\label{tab-wid}
+\end{table}
+æåã¯ã©ã¹$i$ã«å±ããæåã®å¹
ï¼é«ãï¼æ·±ãï¼ã¤ã¿ãªãã¯è£æ£ã®éãæå®ããï¼
+æåã¯ã©ã¹$i$ã«å±ããå
¨ã¦ã®æåã¯ï¼ãã®å¹
ï¼é«ãï¼æ·±ãããã®ãã£ã¼ã«ãã§æå®ãã
+å¤ã§ãããã®ã¨ãã¦æ±ãããï¼çç¥æãï¼æ°ã§ãªãå¤ãæå®ããæã«ã¯è¡¨\nobreak\ref{tab-wid}ã«
+ 示ããã¦ããå¤ãç¨ããï¼ä¾ãã°ï¼æ¨ªçµç¨JFM㧠\texttt{width} ãã£ã¼ã«ãã«ã¯æ°å¤ä»¥å¤ã®å¤ãæ
+ å®ããå ´åï¼æåã®å¹
ã¯ãã®ãå®éã®ãã°ãªãã®å¹
ã¨ãªãï¼OpenTypeã® \texttt{prop} featureã¨ä½µç¨
+ ããã°ï¼ããã«ãã£ã¦ãããã¼ã·ã§ãã«çµãè¡ããã¨ãã§ããï¼
+%
-\jfont\S=KozMinPr6N-Regular:slant=1;jfm=ujis;-kern
-\S ããã\/ABC
-\end{LTXexample}
+\item[left=, down=, align=]\
+%<*en>
+These fields are for adjusting the position of the ``real'' glyph. Legal
+ values of \texttt{align} field are \texttt{'left'},
+ \texttt{'middle'}, and \texttt{'right'}. If one of these
+ 3~fields are omitted, \texttt{left} and \texttt{down} are
+ treated as~0, and \texttt{align} field is treated as
+ \texttt{'left'}.
+The effects of these 3~fields are indicated in
+\autoref{fig:pos}~and~\autoref{fig:pos-tate}.
+%
%<*ja>
-\paragraph{\texttt{ltjksp} æå®}
-\label{pg:ltjksp}
-\LuaTeX-jaæ¨æºã§ã¯ï¼
-JFMä¸ã«ããã \texttt{kanjiskip\_natural}, \texttt{kanjiskip\_stretch},\
-\texttt{kanjiskip\_shrink}ãã¼ï¼\pageref{pg:ksp_nat}ãã¼ã¸ï¼ã®ä½¿ç¨ã«ãã£ã¦ï¼
-ãJFMç±æ¥ã®ã°ã«ã¼ã®ä»ã«ï¼\Param{kanjiskip}ã®èªç¶é·/伸ã³é/縮ã¿éã®ä¸é¨ã
-åãå ´æã«æ¿å
¥ããããã¨ããç¶æ³ãèµ·ããããï¼
-ãã®æ©è½ãç¡å¹åãï¼20150922.0ç以åã¨åããããªçµçãå¾ãããã«ã¯
-ä»ã®OpenTypeæ©è½ã¨åãããã«\ \texttt{-ltjksp}\ æå®ãè¡ãã°è¯ãï¼
-\begin{LTXexample}[width=16\zw]
-\leavevmode
-\ltjsetparameter{kanjiskip=0pt plus 3\zw}
-\vrule\hbox to 15\zw{ãããããï¼ãã}\vrule
+ãããã®ãã£ã¼ã«ãã¯å®éã®ã°ãªãã®ä½ç½®ã調æ´ããããã«ããï¼
+\texttt{align} ãã£ã¼ã«ãã«æå®ã§ããå¤ã¯ \texttt{'left'}, \texttt{'middle'},
+\texttt{'right'} ã®ããããã§ããï¼ããããã3ã¤ã®ãã£ã¼ã«ãã®ãã¡ã®1ã¤ãçããã
+å ´åï¼\texttt{left} 㨠\texttt{down} ã¯0ï¼\texttt{align} ãã£ã¼ã«ãã¯
+\ \texttt{'left'} ã§ãããã®ã¨ãã¦æ±ãããï¼
+ããã3ã¤ã®ãã£ã¼ã«ãã®æå³ã«ã¤ãã¦ã¯\autoref{fig:pos}ï¼æ¨ªçµç¨åæãã©ã³ãï¼ï¼
+\autoref{fig:pos-tate}ï¼ç¸¦çµç¨åæãã©ã³ãï¼ã§èª¬æããï¼
+%
-\jfont\G=file:KozMinPr6N-Regular.otf%
- :jfm=ujis;-ltjksp at 9.2487pt
-\G\leavevmode%
-\vrule\hbox to 15\zw{ãããããï¼ãã}\vrule
-\end{LTXexample}
-ãªãï¼
-\begin{lstlisting}
- \jfont\G=file:KozMinPr6N-Regular.otf:jfm=ujis;-ltjksp;+ltjksp at 9.2487pt
-\end{lstlisting}
-ã®ããã« \texttt{+ltjksp} æå®ãè¡ã£ãå ´åã¯ï¼\texttt{kanjiskip\_natural} ãªã©
-3ãã¼ã¯åã³æå¹åãããï¼\texttt{-ltjksp}, \texttt{+ltjksp} ãè¤æ°åæå®ããå ´åã¯ï¼
-æå¾ã«æå®ãããã®ãæå¹ã¨ãªãï¼
+%<*en>
+In most cases, \texttt{left} and \texttt{down} fields are~0, while
+it is not uncommon that the \texttt{align} field is \texttt{'middle'} or \texttt{'right'}.
+For example, setting the \texttt{align} field to \texttt{'right'} is practically needed
+when the current character class is the class for opening delimiters'.
+%
+%<*ja>
+å¤ãã®å ´åï¼\texttt{left}ã¨\texttt{down}ã¯0ã§ããä¸æ¹ï¼
+\texttt{align}ãã£ã¼ã«ãã\texttt{'middle'}ã\texttt{'right'}ã§ãããã¨ã¯
+çãããã¨ã§ã¯ãªãï¼
+ä¾ãã°ï¼\texttt{align}ãã£ã¼ã«ãã\texttt{'right'}ã«æå®ãããã¨ã¯ï¼
+æåã¯ã©ã¹ãéãæ¬å¼§é¡ã§ããã¨ãã«å®éå¿
è¦ã§ããï¼
%
+\begin{figure}[!tb]
+\begin{minipage}{0.4\textwidth}%
+\begin{center}\unitlength=10pt\small
+\begin{picture}(15,12)(-1,-4)
+\color{b_gray}% jfm
+\put(0,0){\vrule width 12\unitlength height 8\unitlength depth 3\unitlength}
-%\subsection{\cs{tfont}}
-%\subsection{\cs{tfont} å½ä»¤}
+\color{b_pink}% step1
+\put(-1,-1.5){\vrule width 6\unitlength height 7\unitlength depth 2.5\unitlength}
+\color{red}% real glyph
+\thicklines
+\put(-1,-1.5){\vector(0,1){7}\vector(0,-1){2.5}\vector(1,0){6}}
+\put(5,-1.5){\line(0,1){7}\line(0,-1){2.5}}
+\put(-1,5.5){\line(1,0){6}}
+\put(-1,-4){\line(1,0){6}}
-{\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}
-\ltjsetparameter{jacharrange={+3}}
-\small
-\def\r#1#2{%
- \hbox{\tate\Large\vrule
- \parbox{7\zw}{%
- \addjfontfeatures{TateFeatures={Opacity=0.5, Color=#2, JFM=#1}}\noindent
- âââââââ
- ããæ¥ã¢ã¢ã¡ããããã使ããã§è¿·åã«ãªã£ã¦æ³£ãã¾ããã
- }\vrule}}
-\def\s#1#2{%
- \hbox{\tate\Large
- \parbox{7\zw}{%
- \addjfontfeatures{TateFeatures={Opacity=0.5, Color=#2, JFM=#1}}\noindent
- ã¡ãã£ã¨ï¼ä½
- }}}
-\def\t#1#2#3{\hbox to 0pt{\hss%
- \setbox0=\hbox{\addjfontfeatures{TateFeatures={JFM=#1}}\huge #3}%
- \textcolor{#2}{\transparent{0.5}\vrule width 0.4pt height\ht0 depth\dp0}\kern-.2pt\copy0
- \textcolor{#2}{\transparent{0.5}\kern-\wd0\vrule width\wd0height .2pt depth .2pt
- \kern-\wd0\raise\ht0\hbox{\vrule width\wd0height .2pt depth .2pt}%
- \kern-\wd0\lower\dp0\hbox{\vrule width\wd0height .2pt depth .2pt}%
- \kern-.2pt\vrule width 0.4pt height\ht0 depth \dp0}\hss}}
+\color{b_green}% real glyph
+\put(3,0){\vrule width 6\unitlength height 7\unitlength depth 2.5\unitlength}
-\begin{minipage}{.7\textwidth}
-\centering
-\leavevmode\hbox to 0pt{\r{ujisv}{blue}\hss}\r{tmin}{red}\quad
-\leavevmode\hbox to 0pt{\s{ujisv}{blue}\hss}\s{tmin}{red}\quad
-\raise4\zw\hbox{\tate\Large\t{ujisv}{black}{æ¼¢}\t{tmin}{red}{æ¼¢}\qquad
- \t{ujisv}{black}{ã£}\t{tmin}{red}{ã£}}
-\end{minipage}%
-\begin{minipage}{.3\textwidth}
-\textcolor{blue}{Blue: \texttt{jfm-ujisv.lua}}\\
-\textcolor{red}{Red: \texttt{jfm-tmin.lua}}
-\end{minipage}
-\ltjsetparameter{jacharrange={-3}}
-\end{table}
-}
+\color{black}% jfm
+\thicklines
+\put(0,0){\vector(0,1){8}\line(0,-1){3}\vector(1,0){12}}
+\put(12,0){\line(0,1){8}\vector(0,-1){3}}
+\put(0,8){\line(1,0){12}}
+\put(0,-3){\line(1,0){12}}
+\put(0.2,4){\makebox(0,0)[l]{\texttt{height}}}
+\put(12.2,-1.5){\makebox(0,0)[l]{\texttt{depth}}}
+\put(6,0.2){\makebox(0,0)[b]{\texttt{width}}}
+
+\color{green}% step1
+\thicklines
+\put(3,0){\vector(0,1){7}\vector(0,-1){2.5}\vector(1,0){6}}
+\put(9,0){\line(0,1){7}\line(0,-1){2.5}}
+\put(3,7){\line(1,0){6}}
+\put(3,-2.5){\line(1,0){6}}
+\newsavebox{\eqdist}
+\savebox{\eqdist}(0,0)[b]{%
+ \thinlines
+ \put(-0.08,0.2){\line(0,-1){0.4}}%
+ \put(0.08,0.2){\line(0,-1){0.4}}}
+\put(1.5,0){\usebox{\eqdist}}
+\put(10.5,0){\usebox{\eqdist}}
+\color{blue}% shifted
+\thicklines
+\put(3,-1.5){\vector(-1,0){4}}
+\put(1,-1.7){\makebox(0,0)[t]{\texttt{left}}}
+\put(3,0){\vector(0,-1){1.5}}
+\put(3.2,-0.75){\makebox(0,0)[l]{\texttt{down}}}
+\end{picture}
+\end{center}
+\end{minipage}%
+\begin{minipage}{0.6\textwidth}%
%<*en>
-...
+Consider a Japanese character node which belongs to
+a character class whose the \texttt{align}
+field is \texttt{'middle'}.
%
%<*ja>
-\cs{tfont} ã¯ãã©ã³ãã縦çµç¨ã®åæãã©ã³ãã¨ãã¦èªã¿è¾¼ãå½ä»¤ã§ããï¼
-\cs{tfont} ã®ææ³ã¯ \cs{jfont} ã¨åãã§ããï¼
-\cs{tfont} ã§å®ç¾©ããã縦çµç¨åæãã©ã³ãã¯ï¼
-以ä¸ã®ç¹ã \cs{jfont} ã«ãã横çµç¨åæãã©ã³ãã¨ã¯ç°ãªãï¼
+\texttt{align}ãã£ã¼ã«ãã®å¤ã \texttt{'middle'} ã§ãããããªæåã¯ã©ã¹ã«å±ãã
+åææåãã¼ããèãããï¼
+%
\begin{itemize}
- \item èªåçã« \texttt{vert}, \texttt{vrt2} ã®ä¸¡OpenType featureãæå¹åãããï¼
-ä½ãï¼ä»¥ä¸ã®ä¾ã®3è¡ç®ã«ç¤ºãããã«ï¼æ示çã« \texttt{vert}, \texttt{vrt2}ï¼ã®ããããï¼ã®
-æå¹ã»ç¡å¹ãæå®ããå ´åã¯å¥ã§ããï¼
-\begin{lstlisting}
-\tfont\S=file:KozMinPr6N-Regular.otf:jfm=ujisv
- % vert and vrt2 are automatically activated
-\tfont\T=file:KozMinPr6N-Regular.otf:jfm=ujisv;-vert % vert and vrt2 are not activated
-\end{lstlisting}
- \item \ref{ssec-math}ç¯ã§è¿°ã¹ãï¼æ°å¼ä¸ã®åæãã©ã³ãã«ã¯ç¸¦çµç¨åæãã©ã³ãã¯æå®ã§ããªãï¼
- \item \texttt{jfm=}\ ã®é¨åã«ã¯ç¸¦çµç¨JFMãæå®ããï¼
-以ä¸ã®ç¸¦çµç¨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+ ã
- å
ã«ãã¦ããï¼
-\item[\tt jfm-tmin.lua] \pTeX ã«å梱ããã¦ããããã©ã«ãã®åæç¨ç¸¦çµTFM
- ã§ãã \verb+tmin10.tfm+ ã«ç¸å½ãï¼\texttt{min10.tfm} ã¨åæ§ã«
- ãã£ããªã©ä¸é¨ã®æåå¹
ãçãããã¦ããï¼
-\end{description}
-\end{itemize}
-
-ãªãï¼\pTeX ã§ã¯ï¼\cs{font},~\cs{jfont},~\cs{tfont}ã®ã©ãã§ã欧æãã©ã³ãã»æ¨ªçµç¨åæãã©ã³
-ãã»ç¸¦çµç¨åæãã©ã³ãã®å®ç¾©ãå¯è½ã§ãã£ããï¼\LuaTeX-jaã§ã¯ããã§ãªãã®ã§æ³¨æï¼
+\item
+%<*en>
+The black rectangle is the imaginary body of the node.
+Its width, height, and depth are specified by JFM.
+%
+%<*ja>
+é»è²ã®é·æ¹å½¢ã¯ãã¼ãã®æ ã§ããï¼
+ãã®å¹
ï¼é«ãï¼æ·±ãã¯JFMã«ãã£ã¦æå®ããã¦ããï¼
%
-
-%\subsection{Prefix \texttt{psft}}
-%\subsection{\texttt{psft}ããªãã£ãã¯ã¹}
-\label{ssec-psft}
+\item
%<*en>
-Besides ``\texttt{file:}''\ and ``\texttt{name:}''\ prefixes which
-are introduced in the \Pkg{luaotfload} package,
-\LuaTeX-ja adds ``\texttt{psft:}''\ prefix in \cs{jfont} (and~\cs{font}),
-to specify a ``name-only'' Japanese font which
-will not be embedded to PDF.
-Note that these non-embedded fonts under current \LuaTeX\ has Identity-H encoding,
-and this violates the standard ISO32000-1:2008~(\cite{pdfstd}).
-
-\emph{OpenType font features, such as ``{\tt +jp90}'',
-have no meaning in name-only fonts using ``{\tt psft:}''\ prefix,
-because we can't expect what fonts are actually used by the PDF reader.}
-Note that \texttt{extend}~and~\texttt{slant} settings (see~above) are supported
-with \texttt{psft} prefix, because they are only simple linear transformations.
+Since the \texttt{align} field is \texttt{'middle'},
+the ``real'' glyph is centered horizontally (the green rectangle) first.
%
%<*ja>
-\Pkg{luaotfload}ã§ä½¿ç¨å¯è½ã«ãªã£ã
-\texttt{file:}\ 㨠\texttt{name:}\ ã®ããªãã£ãã¯ã¹ã«å ãã¦ï¼
-\cs{jfont}ï¼ã¨ \cs{font} ããªããã£ãï¼ã§ã¯
-\texttt{psft:}ããªãã£ãã¯ã¹ãç¨ãããã¨ãã§ããï¼
-ãã®ããªãã£ãã¯ã¹ãç¨ãããã¨ã§ï¼PDFã«ã¯åãè¾¼ã¾ããªããååã ãã®ã
-åæãã©ã³ããæå®ãããã¨ãã§ããï¼
-ãªãï¼ç¾è¡ã®\LuaTeX ã§éåãè¾¼ã¿ãã©ã³ããä½æããã¨PDFå
ã§ã®ã¨ã³ã³ã¼ãã£ã³ã°ã
-Identity-Hã¨ãªãï¼PDFã®æ¨æºè¦æ ¼ISO32000-1:2008~(\cite{pdfstd})ã«éæºæ ã«ãªã£ã¦ãã¾ã
-ã®ã§æ³¨æãã¦ã»ããï¼
-
-\emph{\texttt{psft} ããªãã£ãã¯ã¹ã®ä¸ã§ã¯
-\texttt{+jp90} ãªã©ã®OpenType font featureã®å¹åã¯ãªãï¼
-éåè¾¼ãã©ã³ããPDFã«ä½¿ç¨ããã¨ï¼å®éã«ã©ã®ãããªãã©ã³ãã
-表示ã«ç¨ãããããäºæ¸¬ã§ããªãããã§ããï¼}\
-\texttt{extend} 㨠\texttt{slant} æå®ã¯åãªãå¤å½¢ã®ãã
-\texttt{psft} ããªãã£ãã¯ã¹ã§ã使ç¨å¯è½ã§ããï¼
+\texttt{align}ãã£ã¼ã«ã㯠\texttt{'middle'} ãªã®ã§ï¼
+å®éã®ã°ãªãã®ä½ç½®ã¯ã¾ãæ°´å¹³æ¹åã«ä¸å¤®æããããã®ã¨ãªãï¼ç·è²ã®é·æ¹å½¢ï¼ï¼
%
-
-%\paragraph{\texttt{cid} key}
-%\paragraph{\texttt{cid}ãã¼}
-\label{para-cid}
-
+\item
%<*en>
-The default font defined by using \texttt{psft:} prefix is for Japanese typesetting;
-it is Adobe-Japan1-6 CID-keyed font.
-One can specify \texttt{cid} key to use other CID-keyed non-embedded fonts
-for Chinese or Korean typesetting.
+Furthermore, the glyph is shifted according to values of fields
+ \texttt{left} and \texttt{down}. The ultimate position of the real
+ glyph is indicated by the red rectangle.
%
%<*ja>
-æ¨æºã§\texttt{psft:}ããªãã£ãã¯ã¹ã§å®ç¾©ããããã©ã³ãã¯æ¥æ¬èªç¨ã®ãã®ã§
-ããï¼Adobe-Japan1-6ã®CIDã«å¯¾å¿ãããã®ã¨ãªãï¼ãããï¼\LuaTeX-jaã¯ä¸å½èª
-ã®çµçã«ãå¨åãçºæ®ãããã¨ãåããï¼æ¥æ¬èªãã©ã³ãã§ãªãéåè¾¼ãã©ã³ã
-ã®å¯¾å¿ãå¿
è¦ã¨ãªã£ãï¼ãã®ããã«è¿½å ãããã®ã\texttt{cid}ãã¼ã§ããï¼
+ããã«ï¼ã°ãªã㯠\texttt{left} 㨠\texttt{down} ã®å¤ã«å¾ã£ã¦ã·ãããããï¼
+æçµçãªå®éã®ã°ãªãã®ä½ç½®ã¯èµ¤è²ã®é·æ¹å½¢ã§ç¤ºãããä½ç½®ã«ãªãï¼
+%
+\end{itemize}
+\end{minipage}
+\medskip
+
+\caption{%
+%The position of the real glyph (horizontal Japanese fonts)
+%横çµåæãã©ã³ãã«ããããå®éã®ãã°ãªãã®ä½ç½®
+}
+\label{fig:pos}
+\end{figure}
+\begin{figure}[!tb]
+\begin{minipage}{0.4\textwidth}%
+\begin{center}\unitlength=10pt\small
+\begin{picture}(15,12)(-6,0)
+\color{b_gray}% jfm
+\put(-6,0){\vrule width 12\unitlength height 11\unitlength}
+
+\color{b_pink}% real glyph
+\put(-6.5,5.5){\vrule width 8\unitlength height 6\unitlength depth 3\unitlength}
+
+\color{red}% real glyph
+\thicklines
+\put(-6.5,5.5){\vector(0,1){6}\vector(0,-1){3}\vector(1,0){8}}
+\put( 1.5,5.5){\line(0,1){6}\line(0,-1){3}}
+\put(-6.5,11.5){\line(1,0){8}}
+\put(-6.5,2.5){\line(1,0){8}}
+
+\color{b_green}% step1
+\put(-4,3){\vrule width 8\unitlength height 6\unitlength depth 3\unitlength}
+
+\color{black}% jfm
+\thicklines
+\put(0,11){\vector(1,0){6}\vector(-1,0){6}\vector(0,-1){11}}
+\put(0,0){\line(1,0){6}\line(-1,0){6}}
+\put(-6,0){\line(0,1){11}}
+\put( 6,0){\line(0,1){11}}
+\put( 3,10.8){\makebox(0,0)[t]{\texttt{height}}}
+\put(-3,10.8){\makebox(0,0)[t]{\texttt{depth}}}
+\put(0.2,5.5){\makebox(0,0)[l]{\texttt{width}}}
+
+\color{green}% step1
+\thicklines
+\put(-4,3){\vector(0,1){6}\vector(0,-1){3}\vector(1,0){8}}
+\put( 4,3){\line(0,1){6}\line(0,-1){3}}
+\put(-4,9){\line(1,0){8}}
+\put(-4,0){\line(1,0){8}}
+\savebox{\eqdist}(0,0)[b]{%
+ \thinlines
+ \put(-0.08,0.2){\line(0,-1){0.4}}%
+ \put(0.08,0.2){\line(0,-1){0.4}}}
+\put(2,9){\usebox{\eqdist}}
+\put(-2,9){\usebox{\eqdist}}
-\texttt{cid}ãã¼ã«å¤ãæå®ããã¨ï¼ãã®CIDãæã£ãéåè¾¼ãã©ã³ããå®ç¾©ãããã¨ãã§ããï¼
-%
-\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
-\end{lstlisting}
-%<*en>
-Note that the code above specifies \texttt{jfm-jis.lua}, which is for Japanese fonts,
-as JFM for Chinese and Korean fonts.
-%
-%<*ja>
-ä¸ã®ã³ã¼ãã§ã¯ä¸å½èªã»éå½èªç¨ãã©ã³ãã«å¯¾ãã¦ãJFMã«
-æ¥æ¬èªç¨ã®\texttt{jfm-jis.lua}ãæå®ãã¦ããã®ã§æ³¨æããããï¼
-%
+\color{blue}% shifted
+\thicklines
+\put(-4,3){\vector(0,1){2.5}}
+\put(-3.8,4.25){\makebox(0,0)[l]{\texttt{left}}}
+\put(-4,5.5){\vector(-1,0){2.5}}
+\put(-5.,5.7){\makebox(0,0)[b]{\texttt{down}}}
+\end{picture}
+\end{center}
+\end{minipage}%
+\begin{minipage}{0.6\textwidth}%
%<*en>
-At present, \LuaTeX-ja supports only 4 values written in the sample code above.
-Specifying other values, e.g.,
-%
-%<*ja>
-ä»ã®ã¨ããï¼\LuaTeX-jaã¯ä¸ã®ãµã³ãã«ã³ã¼ãä¸ã«æ¸ãã4ã¤ã®å¤ãããµãã¼ããã¦ããªãï¼
-%
-\begin{lstlisting}
-\jfont\test={psft:Ryumin-Light:cid=Adobe-Japan2;jfm=jis}
-\end{lstlisting}
-%<*en>
-produces the following error:
+(\dots)
%
%<*ja>
-ã®ããã«ããã以å¤ã®å¤ãæå®ããã¨ï¼ã¨ã©ã¼ãçºçããï¼
+\texttt{align}ãã£ã¼ã«ãã®å¤ã \texttt{'right'} ã§ãããããªæåã¯ã©ã¹ã«å±ãã
+åææåãèãããï¼
+\begin{itemize}
+\item
+å®éã®ã°ãªãã®ãåç´ä½ç½®ãã¯ï¼ã¾ããã¼ã¹ã©ã¤ã³ãæåã®ç©ççãªå·¦å³æ¹åã®ä¸å¤®ãéã
+ä½ç½®ã¨ãªãï¼
+\item
+ã¾ãï¼ãã®å ´å \texttt{align} ãã£ã¼ã«ã㯠\texttt{'right'} ãªã®ã§ï¼
+ãæ°´å¹³ä½ç½®ãã¯åéãæ¹åã«ãå³å¯ãããããã®ã¨ãªãï¼ç·è²ã®é·æ¹å½¢ï¼ï¼
+\item
+ãã®å¾ããã« \texttt{left} 㨠\texttt{down} ã®å¤ã«å¾ã£ã¦ã·ããããã
+ã®ã¯æ¨ªçµç¨åæãã©ã³ãã¨å¤ãããªãï¼
+\end{itemize}
%
-\begin{lstlisting}[numbers=left]
-! Package luatexja Error: bad cid key `Adobe-Japan2'.
-
-See the luatexja package documentation for explanation.
-Type H for immediate help.
-
- \par
-l.78
+\end{minipage}
+\medskip
-? h
-I couldn't find any non-embedded font information for the CID
-`Adobe-Japan2'. For now, I'll use `Adobe-Japan1-6'.
-Please contact the LuaTeX-ja project team.
-?
-\end{lstlisting}
+\caption{%
+%The position of the real glyph (vertical Japanese fonts)
+%縦çµåæãã©ã³ãã«ããããå®éã®ãã°ãªãã®ä½ç½®
+}
+\label{fig:pos-tate}
+\end{figure}
-%\subsection{Structure of a JFM file}
-%\subsection{JFMãã¡ã¤ã«ã®æ§é }
-\label{ssec-jfm-str}
-%A JFM file is a Lua script which has only one function call:
-%JFMãã¡ã¤ã«ã¯ãã ä¸ã¤ã®é¢æ°å¼ã³åºããå«ãLuaã¹ã¯ãªããã§ããï¼
-\begin{lstlisting}
-luatexja.jfont.define_jfm { ... }
-\end{lstlisting}
-%<*en>
-Real data are stored in the table which indicated above by
-\verb+{ ... }+. So, the rest of this subsection are devoted to describe the
-structure of this table. Note that all lengths in a JFM file are
-floating-point numbers in design-size unit.
-%
+\item[kern={\{[$j$]=, [$j'$]=\{, [ratio=]\}, ...\}}]
+\nopagebreak
+\item[glue={\{[$j$]=\{, , , [ratio=, ...]\}, ...\}}]\leavevmode
%<*ja>
-å®éã®ãã¼ã¿ã¯ä¸ã§ \verb+{ ... }+ ã§ç¤ºããããã¼ãã«ã®ä¸ã«æ ¼ç´ããã¦ããï¼
-以ä¸ã§ã¯ãã®ãã¼ãã«ã®æ§é ã«ã¤ãã¦è¨ãï¼
-ãªãï¼JFMãã¡ã¤ã«ä¸ã®é·ãã¯å
¨ã¦design-sizeãåä½ã¨ããæµ®åå°æ°ç¹æ°ã§ãããã¨ã«
-注æããï¼
-%
-\begin{cslist}[style=standard]
+æåã¯ã©ã¹$i$ã®æåã¨$j$ã®æåã®éã«æ¿å
¥ãããã«ã¼ã³ãã°ã«ã¼ã®éãæå®ããï¼
-\item[version=$1\mathrel{\textrm{or}}2$]
-%(optional, default value is~1)
-%ï¼ä»»æï¼æ¢å®å¤ã¯1ï¼
+ã¯ï¼ã°ã«ã¼ã®èªç¶é·ã®ãã¡ã©ãã ãã®å²åããå¾ã®æåãç±æ¥ãã示ãéã§ï¼
+$0$ãã$+1$ã®å®æ°å¤ãã¨ãï¼çç¥æã®å¤ã¯$0.5$ã§ããï¼
+ãã®ãã£ã¼ã«ãã®å¤ã¯\Param{differentjfm}ã®å¤ã
+\texttt{pleft},~\texttt{pright},~\texttt{paverage}ã®å¤ã®ã¨ãã®ã¿å®éã«ç¨ããããï¼
-%<*en>
-The version JFM. Currently 1~and~2 are supported
-%
-%<*ja>
-JFMã®ãã¼ã¸ã§ã³ï¼1ã¾ãã¯2ããµãã¼ããããï¼
+ä¾ãã°ï¼\cite{x4051}ã§ã¯ï¼å¥ç¹ã¨ä¸ç¹ã®éã«ã¯ï¼
+å¥ç¹ç±æ¥ã®äºå空ãã¨ä¸ç¹ç±æ¥ã®åå空ããæ¿å
¥ããããï¼ãã®å ´åã«ã¯
+\begin{itemize}
+\item ã«ã¯$0.5+0.25=0.75$ãæå®ããï¼
+\item ã«ã¯$0.25/(0.5+0.25)=1/3$ãæå®ããï¼
+\end{itemize}
%
-
-\item[dir=]
-%(required)
-%ï¼å¿
é ï¼
-
%<*en>
-The direction of JFM. \texttt{'yoko'}~(horizontal)
-or \texttt{'tate'}~(vertical) are supported.
+\
+
+Specifies the amount of kern or glue which will be inserted
+between characters in character class~$i$ and those in character class~$j$.
+
+ specifies how much the glue is originated in the ``right'' character.
+It is a real number between 0 and 1, and treated as 0.5 if omitted. For example,
+The width of a glue between an ideographic full stop ``ã''
+and a fullwidth middle dot ``ã»'' is three-fourth of fullwidth,
+namely halfwidth from the ideographic full stop, and
+quarter-width from the fullwidth middle dot. In this case,
+we specify to $0.25/(0.5+0.25)=1/3$.
%
+
%<*ja>
-JFMã®æ¸åæ¹åï¼\texttt{'yoko'}ï¼æ¨ªçµï¼ã¨ \texttt{'tate'}ï¼ç¸¦çµï¼ããµãã¼ããããï¼
-%
+ã°ã«ã¼ã®æå®ã«ããã¦ã¯ï¼ä¸è¨ã«å ãã¦å \texttt{[$j$]} ã®åãµããã¼ãã«å
ã«
+次ã®ãã¼ãæå®ã§ããï¼
+\begin{cslist}[style=standard]
+\item[priority=]
+ \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}
-\item[zw=]
-%(required)
-%ï¼å¿
é ï¼
+JFMã«ãã£ã¦æ¬æ¥æ¿å
¥ãããã°ã«ã¼ã®ä»ã«
+\Param{kanjiskip}åã®ç©ºç½ãèªç¶é·(\texttt{kanjiskip\_natural})ï¼ä¼¸ã³é(\texttt{kanjiskip\_stretch})ï¼
+縮ã¿é(\texttt{kanjiskip\_shrink})ãã¨ã«æ¿å
¥ãã\footnote{æ¬æ¥\Param{xkanjiskip}ãæ¿å
¥ãããå ´æã«ããã¦ã¯
+ \Param{xkanjiskip}åã®ç©ºç½ãèªç¶é·ã»ä¼¸ã³éã»ç¸®ã¿éãã¨ã«ï¼è¿½å ã§ããï¼}%
+ããã®æå®ã§ããï¼ããããçç¥ãããå ´åã®ããã©ã«ãå¤ã¯0ï¼è¿½å ããªãï¼ã§ããï¼
-%The amount of the length of the ``full-width''.
-%<*ja>
-ãå
¨è§å¹
ãã®é·ãï¼ãã®éã \cs{zw} ã®é·ãã¨ãªãï¼\pTeX ã§ã¯
-ãå
¨è§å¹
ã\texttt{1zw} ã¯ãæåã¯ã©ã¹0ã®æåãã®å¹
ã¨æ±ºãããã¦ãããï¼
-\LuaTeX-jaã§ã¯ããã§æå®ããï¼
-%
+ä¾ãã°ï¼\LuaTeX-jaã®æ¨ªçµæ¨æºJFMã® \texttt{jfm-ujis.lua} ã§ã¯ï¼
+\begin{itemize}
+ \item é常ã®æåãããã¨éãæ¬å¼§é¡ã®éã«å
¥ãã°ã«ã¼ã¯ï¼èªç¶é·ã»ç¸®ã¿éåè§ï¼ä¼¸ã³é0ã®ã°ã«ã¼
+ã¨ãªã£ã¦ãããï¼ããã«\Param{kanjiskip}ã®ä¼¸ã³éã« \texttt{kanjiskip\_stretch}ï¼ããã§ã¯1ï¼ãæã
+ ãåã ã伸ã³ããã¨ã許ãããï¼
+ \item åæ§ã«ï¼éãæ¬å¼§é¡ï¼å
¨è§ã³ã³ããï¼ããå«ãï¼ã¨é常ã®æåããããããã®éã«ã
+èªç¶é·ã»ç¸®ã¿éåè§ï¼ä¼¸ã³é0ã®ã°ã«ã¼
+ã¨ãªã£ã¦ãããï¼ããã«\Param{kanjiskip}ã®ä¼¸ã³éã« \texttt{kanjiskip\_stretch}ï¼ããã§ã¯1ï¼ãæã
+ ãåã ã伸ã³ããã¨ã許ãããï¼
+ \item ä¸æ¹ï¼éãæ¬å¼§é¡ã¨é常ã®æåã®éï¼ã¾ãé常ã®æåã¨éãæ¬å¼§é¡ã®éã¯
+ èªç¶é·ã»ç¸®ã¿éã»ä¼¸ã³é0ã®ã°ã«ã¼ã ãï¼\Param{kanjiskip}ã®ç¸®ã¿éã«
+ \texttt{kanjiskip\_shrink}ï¼ããã§ã¯1ï¼ãæããåã ã縮ããã¨ã許ãããï¼
+\end{itemize}
+ã¨ãªã£ã¦ããï¼å¾ã£ã¦ï¼ä»¥ä¸ã®ãããªçµççµæãå¾ãï¼
-\item[zh=]
-%(required)
-%ï¼å¿
é ï¼
+\medskip
+\begin{LTXexample}[width=16\zw]
+\leavevmode
+\ltjsetparameter{kanjiskip=0pt plus 3\zw}
+\vrule\hbox to 15\zw{ãããããï¼ãã}\vrule
-%The amount of the ``full-height'' (height + depth).
-%<*ja>
-ãå
¨è§é«ãã(height + depth)ã®é·ãï¼é常ã¯å
¨è§å¹
ã¨åãé·ãã«ãªãã ããï¼
-\pTeX ã§ã¯ ãå
¨è§é«ãã\texttt{1zh} ã¯ãæåã¯ã©ã¹0ã®æåãã®é«ãã¨æ·±ãã®åã¨æ±ºãããã¦ãããï¼
-\LuaTeX-jaã§ã¯ããã§æå®ããï¼
+\vrule\hbox{ãããããï¼ãã}\vrule\par
+\ltjsetparameter{kanjiskip=0pt minus \zw}
+\vrule\hbox to 6.5\zw{ãããããï¼ãã}\vrule
+\end{LTXexample}
+
+\end{cslist}
%
+%<*en>
+In case of glue, one can specify following additional keys in each \texttt{[$j$]}
+ subtable:
+\begin{cslist}[style=standard]
+\item[priority=]
+An integer in $[-4,3]$ (treated as 0 if omitted), or
+a pair of these integers \texttt{\{, \}} (version 2~or~later).
+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.
+\item[kanjiskip\_natural=\textrm{, }%
+ kanjiskip\_stretch=\textrm{, }kanjiskip\_shrink=]\leavevmode
-\item[kanjiskip=\{, , \}]
-%(optional)
-%ï¼ä»»æï¼
+These keys specifies the amount of the natural width of \Param{kanjiskip}
+(the stretch/shrink part, respectively) which will be inserted
+in addition to the original JFM glue. Default values of them are all 0.
-%<*en>
-This field specifies the ``ideal'' amount of \Param{kanjiskip}. As noted
- in Subsection~\ref{subs-kskip}, if the parameter
- \Param{kanjiskip} is \cs{maxdimen}, the value specified
- in this field is actually used (if this field is not specified in
- JFM, it is regarded as 0\,pt). Note that and
- fields are in design-size unit too.
-%
-%<*ja>
-çæ³çãª\Param{kanjiskip}ã®éãæå®ããï¼\ref{subs-kskip}ç¯ã§è¿°ã¹ãããã«ï¼
-ãã\Param{kanjiskip}ã \cs{maxdimen} ã®å¤ãªãã°ï¼ãã®ãã£ã¼ã«ãã§æå®ããã
-å¤ãå®éã«ã¯ç¨ããããï¼æå®ãªãã¯0\,ptã¨ãã¦æ±ãããï¼ï¼ã¨ã®ãã£ã¼ã«ããdesign-size
-ãåä½ã§ãããã¨ã«æ³¨æããï¼
-%
+As an example, in \texttt{jfm-ujis.lua}, the standard JFM in horizontal writing, we have
+\begin{itemize}
+ \item Between an ordinal letter ``ã'' and an ideographic opening bracket, we have
+a glue whose natural part and shrink part are both half-width, while its stretch part is
+ zero. However, this glue also can be stretched
+ as much as the stretch part of \Param{kanjiskip} times the value of
+ \texttt{kanjiskip\_stretch} key (1 in this case).
+ \item Between an ideographic closeing brackets (the ideographic comma ``ï¼''
+ is included) and an ordinal letter, we have the same glue.
+ Again, this glue also can be stretched
+ as much as the stretch part of \Param{kanjiskip} times the value of
+ \texttt{kanjiskip\_stretch} key (1 in this case).
+ \item Between an ideographic opening bracket and an ordinal letter
+ and between an ordinal letter and an ideographic closing bracket,
+ we have a glue whose natural part and stretch part are both zero, while its shrink part as much as
+ the shrink part of \Param{kanjiskip}.
+\end{itemize}
+Hence we have the following result:
-\item[xkanjiskip=\{, , \}]
-%(optional)
-%ï¼ä»»æï¼
+\medskip
+\begin{LTXexample}[width=16\zw]
+\leavevmode
+\ltjsetparameter{kanjiskip=0pt plus 3\zw}
+\vrule\hbox to 15\zw{ãããããï¼ãã}\vrule
-%<*en>
-Like the \texttt{kanjiskip} field, this field specifies the ``ideal''
- amount of \Param{xkanjiskip}.
+\vrule\hbox{ãããããï¼ãã}\vrule\par
+\ltjsetparameter{kanjiskip=0pt minus \zw}
+\vrule\hbox to 6.5\zw{ãããããï¼ãã}\vrule
+\end{LTXexample}
+
+\end{cslist}
%
+
+\item[end\_stretch=, end\_shrink=]
%<*ja>
-\texttt{kanjiskip}ãã£ã¼ã«ãã¨åæ§ã«ï¼\Param{xkanjiskip}ã®çæ³çãªéã
-æå®ããï¼
-%
-\end{cslist}
+ï¼ä»»æï¼ãã¼ã¸ã§ã³1ã®ã¿ï¼
+åªå
é ä½ä»ãè¡é·èª¿æ´ãæå¹ã§ããï¼ãã¤ç¾å¨ã®æåã¯ã©ã¹ã®æåãè¡
+ æ«ã«æ¥ãæã«ï¼è¡é·ãè©°ãã調æ´ã»ä¼¸ã°ã調æ´ã®ã
+ ãã«ãã®æåã¨è¡æ«ã®éã«æ¿å
¥å¯è½ãªã«ã¼ã³ã®å¤§ãããæå®ããï¼
+%
%<*en>
-\paragraph{Character classes}
-Besides from above fields, a JFM file have several sub-tables those
-indices are natural numbers. The table indexed by~$i\in\omega$ stores
-information of \emph{character class}~$i$. At least, the character class~0 is
-always present, so each JFM file must have a sub-table whose index is
-\texttt{[0]}. Each sub-table (its numerical index is denoted by $i$) has
-the following fields:
+(optional, version~1 only)
%
+
+ \item[end\_adjust=\{, , ...\}]
%<*ja>
-\paragraph{æåã¯ã©ã¹}
-ä¸è¨ã®ãã£ã¼ã«ãã«å ãã¦ï¼JFMãã¡ã¤ã«ã¯ãã®ã¤ã³ããã¯ã¹ãèªç¶æ°ã§ããããã¤ãã®
-ãµããã¼ãã«ãæã¤ï¼ã¤ã³ããã¯ã¹ã$i\in\omega$ã§ãããã¼ãã«ã¯\emph{æåã¯ã©ã¹}$i$ã®
-æ
å ±ãæ ¼ç´ããï¼å°ãªãã¨ãï¼æåã¯ã©ã¹0ã¯å¸¸ã«åå¨ããã®ã§ï¼JFMãã¡ã¤ã«ã¯ã¤ã³ããã¯ã¹
-ã\texttt{[0]}ã®ãµããã¼ãã«ãæããªããã°ãªããªãï¼ããããã®ãµããã¼ãã«
-ï¼ãã®ã¤ã³ããã¯ã¹ã$i$ã§è¡¨ããï¼ã¯ä»¥ä¸ã®ãã£ã¼ã«ããæã¤ï¼
-%
+ï¼ä»»æï¼ãã¼ã¸ã§ã³2以éï¼
-\begin{cslist}[style=standard]
-\item[chars=\{, ...\}]
-%(required except character class~0)
-%ï¼æåã¯ã©ã¹0ãé¤ãã¦å¿
é ï¼
+åªå
é ä½ä»ãè¡é·èª¿æ´ãæå¹ã§ããï¼ãã¤ç¾å¨ã®æåã¯ã©ã¹ã®æåã
+ è¡æ«ã«æ¥ãæã«ï¼ãã®æåã¨è¡æ«ã®éã«ã¯æå®ãããå¤ã®ããããã®å¤§ããã®ã«ã¼ã³ã
+ æ¿å
¥ãããï¼\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>
-This field is a list of characters which are in this character
- type~$i$. This field is optional if $i=0$, since all
- \textbf{JAchar} which do not belong any character classes other
- than 0 are in the character class 0
- (hence, the character class~0 contains most of
- \textbf{JAchar}s). In the list, character(s) can be specified in the following form:
-\begin{itemize}
-\item a Unicode code point
-\item the character itself (as a Lua string, like \hbox{\ltjsetparameter{autoxspacing=false}\verb+'ã'+})
-\item a string like \hbox{\ltjsetparameter{autoxspacing=false}\verb+'ã*'+} (the character followed by an asterisk)
-\item several ``imaginary'' characters (We will describe these later.)
-\end{itemize}
+(optional, version~2 or~later)
%
-%<*ja>
-ãã®ãã£ã¼ã«ãã¯æåã¯ã©ã¹$i$ã«å±ããæåã®ãªã¹ãã§ããï¼ãã®ãã£ã¼ã«ãã¯$i=0$ã®
-å ´åã«ã¯ä»»æã§ããï¼æåã¯ã©ã¹0ã«ã¯ï¼0以å¤ã®æåã¯ã©ã¹ã«å±ãããã®ã
-é¤ããå
¨ã¦ã®\textbf{JAchar}ãå±ããããï¼ï¼ãã®ãªã¹ãä¸ã§æåãæå®ããã«ã¯ï¼ä»¥ä¸ã®æ¹æ³ãããï¼
-\begin{itemize}
-\item Unicode ã«ãããã³ã¼ãçªå·
-\item ã\hbox{\ltjsetparameter{autoxspacing=false}\verb+'ã'+}ãã®ãããªï¼æåããèªä½
-\item ã\hbox{\ltjsetparameter{autoxspacing=false}\verb+'ã*'+}ãã®ãããªï¼æåããèªä½ã®å¾ã«ã¢ã¹ã¿ãªã¹ã¯ãã¤ãããã®
-\item ããã¤ãã®ãä»®æ³çãªæåãï¼å¾ã«èª¬æããï¼
-\end{itemize}
-%
-\item[width=, height=, depth=, italic=]
-%(required)
-%ï¼å¿
é ï¼
+\end{cslist}
+%<*ja>
+\paragraph{æåã¯ã©ã¹ã®æ±ºå®}
+æåãããã®æåã®å±ããæåã¯ã©ã¹ãç®åºããéç¨ã«ã¤ãã¦ï¼
+次ã®å
容ãå«ãã \texttt{jfm-test.lua} ãç¨ãã¦èª¬æããï¼
+%
%<*en>
-\begin{table}[t]
- \centering
-\begin{tabular}{llr}
-\toprule
-Direction of JFM&\textbf{\texttt{'yoko'} (horizontal)}&\multicolumn{1}{l}{\textbf{\texttt{'tate'} (vertical)}}\\
-\midrule
-\texttt{width} field&\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
-\end{tabular}
-\caption{Default values of \texttt{width} field and other fields}
-\label{tab-wid}
-\end{table}
-Specify the width of characters in character class~$i$, the height, the depth and
-the amount of italic correction. All characters in character class~$i$ are regarded that its width, height, and depth are
-as values of these fields. The default values are shown in \autoref{tab-wid}.
+\paragraph{Character to character classes}
+We explain how the character class of a character is determined,
+using \texttt{jfm-test.lua} which contains the following:
+%
+\begin{lstlisting}
+ [0] = {
+ chars = { 'æ¼¢' },
+ align = 'left', left = 0.0, down = 0.0,
+ width = 1.0, height = 0.88, depth = 0.12, italic=0.0,
+ },
+ [2000] = {
+ chars = { 'ã', 'ï¾' },
+ align = 'left', left = 0.0, down = 0.0,
+ width = 0.5, height = 0.88, depth = 0.12, italic=0.0,
+ },
+\end{lstlisting}
+%ããã§ï¼æ¬¡ã®ãããªå
¥åã¨ãã®å®è¡çµæãèããï¼
+%Now consider the following input/output:
+\begin{LTXexample}[width=0.3\textwidth]
+\jfont\a=file:KozMinPr6N-Regular.otf:jfm=test;+hwid
+\setbox0\hbox{\a ãæ¼¢}
+\the\wd0
+\end{LTXexample}
+%<*en>
+Now we look why the above source outputs 15\,pt.
+\begin{enumerate}
+\item The character ``ã'' is converted to its half width form ``ï¾'' by \verb+hwid+ feature.
+\item According to the JFM, the character class of ``ï¾'' is 2000, hence its width is halfwidth.
+\item The character class of ``æ¼¢'' is zero, hence its width is fullwidth.
+\item Hence the width of \cs{hbox} equals to 15\,pt.
+\end{enumerate}
+This example shows that the character class of a character is generally determined \emph{after
+applying font features by \Pkg{luaotfload}}.
%
%<*ja>
-\begin{table}[t]
- \centering
-\begin{tabular}{llr}
-\toprule
-JFMæ¸åæ¹å&\emph{\texttt{'yoko'}ï¼æ¨ªçµï¼}&\multicolumn{1}{l}{\emph{\texttt{'tate'}ï¼ç¸¦çµï¼}}\\
-\midrule
-\texttt{width}&\multicolumn{2}{c}{ãå®éã®ã°ãªããã®å¹
}\\
-\texttt{height}&ãå®éã®ã°ãªããã®é«ã&0.0\\
-\texttt{depth}&ãå®éã®ã°ãªããã®æ·±ã&0.0\\
-\midrule
-\texttt{italic}&\multicolumn{2}{c}{0.0}\\
-\bottomrule
-\end{tabular}
-\caption{\texttt{width} ãã£ã¼ã«ãçã®æ¨æºå¤}
-\label{tab-wid}
-\end{table}
-æåã¯ã©ã¹$i$ã«å±ããæåã®å¹
ï¼é«ãï¼æ·±ãï¼ã¤ã¿ãªãã¯è£æ£ã®éãæå®ããï¼
-æåã¯ã©ã¹$i$ã«å±ããå
¨ã¦ã®æåã¯ï¼ãã®å¹
ï¼é«ãï¼æ·±ãããã®ãã£ã¼ã«ãã§æå®ãã
-å¤ã§ãããã®ã¨ãã¦æ±ãããï¼çç¥æãï¼æ°ã§ãªãå¤ãæå®ããæã«ã¯è¡¨\nobreak\ref{tab-wid}ã«
- 示ããã¦ããå¤ãç¨ããï¼ä¾ãã°ï¼æ¨ªçµç¨JFM㧠\texttt{width} ãã£ã¼ã«ãã«ã¯æ°å¤ä»¥å¤ã®å¤ãæ
- å®ããå ´åï¼æåã®å¹
ã¯ãã®ãå®éã®ãã°ãªãã®å¹
ã¨ãªãï¼OpenTypeã® \texttt{prop} featureã¨ä½µç¨
- ããã°ï¼ããã«ãã£ã¦ãããã¼ã·ã§ãã«çµãè¡ããã¨ãã§ããï¼
+ä¸è¨ã®åºåçµæãï¼15\,ptã¨ãªã£ã¦ããã®ã¯çç±ã«ãããã®ã§ããï¼
+\begin{enumerate}
+\item \verb+hwid+ featureã«ãã£ã¦ããããåè§å¹
ã®ã°ãªããï¾ãã¨ç½®ãæããï¼\Pkg{luaotfload} ã«ããå¦çï¼ï¼
+\item JFMã«ããã°ï¼ãã®ãï¾ãã®ã°ãªãã®æåã¯ã©ã¹ã¯2000ã§ããï¼
+\item 以ä¸ã«ããæåã¯ã©ã¹2000ã¨ã¿ãªãããããï¼çµæã¨ãã¦ãï¾ãã®å¹
ã¯åè§ã ã¨èªèãããï¼
+\end{enumerate}
+ãã®ä¾ã¯ï¼\emph{æåã¯ã©ã¹ã®æ±ºå®ã¯OpenTypeæ©è½ã®é©ç¨ã«ããã°ãªãç½®æã®çµæã«åºã¥ã}ãã¨ã
+示ãã¦ããï¼
%
-\item[left=, down=, align=]\
-
%<*en>
-These fields are for adjusting the position of the ``real'' glyph. Legal
- values of \texttt{align} field are \texttt{'left'},
- \texttt{'middle'}, and \texttt{'right'}. If one of these
- 3~fields are omitted, \texttt{left} and \texttt{down} are
- treated as~0, and \texttt{align} field is treated as
- \texttt{'left'}.
-The effects of these 3~fields are indicated in
-\autoref{fig:pos}~and~\autoref{fig:pos-tate}.
+However, if the class determined by the glyph after application of features is zero,
+\LuaTeX-ja adopts the class determined by the glyph \emph{before} application of features.
+The following input is an example.
%
%<*ja>
-ãããã®ãã£ã¼ã«ãã¯å®éã®ã°ãªãã®ä½ç½®ã調æ´ããããã«ããï¼
-\texttt{align} ãã£ã¼ã«ãã«æå®ã§ããå¤ã¯ \texttt{'left'}, \texttt{'middle'},
-\texttt{'right'} ã®ããããã§ããï¼ããããã3ã¤ã®ãã£ã¼ã«ãã®ãã¡ã®1ã¤ãçããã
-å ´åï¼\texttt{left} 㨠\texttt{down} ã¯0ï¼\texttt{align} ãã£ã¼ã«ãã¯
-\ \texttt{'left'} ã§ãããã®ã¨ãã¦æ±ãããï¼
-ããã3ã¤ã®ãã£ã¼ã«ãã®æå³ã«ã¤ãã¦ã¯\autoref{fig:pos}ï¼æ¨ªçµç¨åæãã©ã³ãï¼ï¼
-\autoref{fig:pos-tate}ï¼ç¸¦çµç¨åæãã©ã³ãï¼ã§èª¬æããï¼
+ä½ãï¼JFMã«ãã£ã¦æ±ºã¾ãç½®æå¾ã®ã°ãªãã®æåã¯ã©ã¹ã0ã§ããå ´åã¯ï¼ç½®æåã®æåã¯ã©ã¹ãæ¡ç¨ããï¼
%
-
+\begin{LTXexample}[width=0.3\textwidth]
+\jfont\a=file:KozMinPr6N-Regular.otf:jfm=test;+vert
+\a æ¼¢ã\inhibitglue æ¼¢
+\end{LTXexample}
%<*en>
-In most cases, \texttt{left} and \texttt{down} fields are~0, while
-it is not uncommon that the \texttt{align} field is \texttt{'middle'} or \texttt{'right'}.
-For example, setting the \texttt{align} field to \texttt{'right'} is practically needed
-when the current character class is the class for opening delimiters'.
+Here, the character class of the ideographic full stop ``ã''~(\texttt{U+3002}) is determined
+as follows:
+\begin{enumerate}
+\item As the case of ``ã'', the ideographic full stop ``ã'' is converted to its vertical
+ form ``\char"FE12''~(\texttt{U+FE12}) by \verb+vert+ feature.%"
+\item The character class of ``\char"FE12'', according to the JFM is \emph{zero}.
+\item However, \LuaTeX-ja remembers that this ``\char"FE12'' is obtained from ``ã'' by
+ font features. The character class of ``ã'' is \emph{non-zero value}, namely, 2000.
+\item Hence the ideographic full stop ``ã'' in above belongs the character class~2000.
+\end{enumerate}
%
%<*ja>
-å¤ãã®å ´åï¼\texttt{left}ã¨\texttt{down}ã¯0ã§ããä¸æ¹ï¼
-\texttt{align}ãã£ã¼ã«ãã\texttt{'middle'}ã\texttt{'right'}ã§ãããã¨ã¯
-çãããã¨ã§ã¯ãªãï¼
-ä¾ãã°ï¼\texttt{align}ãã£ã¼ã«ãã\texttt{'right'}ã«æå®ãããã¨ã¯ï¼
-æåã¯ã©ã¹ãéãæ¬å¼§é¡ã§ããã¨ãã«å®éå¿
è¦ã§ããï¼
-%
-
-\begin{figure}[!tb]
-\begin{minipage}{0.4\textwidth}%
-\begin{center}\unitlength=10pt\small
-\begin{picture}(15,12)(-1,-4)
-\color{b_gray}% jfm
-\put(0,0){\vrule width 12\unitlength height 8\unitlength depth 3\unitlength}
-
-\color{b_pink}% step1
-\put(-1,-1.5){\vrule width 6\unitlength height 7\unitlength depth 2.5\unitlength}
-
-\color{red}% real glyph
-\thicklines
-\put(-1,-1.5){\vector(0,1){7}\vector(0,-1){2.5}\vector(1,0){6}}
-\put(5,-1.5){\line(0,1){7}\line(0,-1){2.5}}
-\put(-1,5.5){\line(1,0){6}}
-\put(-1,-4){\line(1,0){6}}
-
-\color{b_green}% real glyph
-\put(3,0){\vrule width 6\unitlength height 7\unitlength depth 2.5\unitlength}
-
-\color{black}% jfm
-\thicklines
-\put(0,0){\vector(0,1){8}\line(0,-1){3}\vector(1,0){12}}
-\put(12,0){\line(0,1){8}\vector(0,-1){3}}
-\put(0,8){\line(1,0){12}}
-\put(0,-3){\line(1,0){12}}
-\put(0.2,4){\makebox(0,0)[l]{\texttt{height}}}
-\put(12.2,-1.5){\makebox(0,0)[l]{\texttt{depth}}}
-\put(6,0.2){\makebox(0,0)[b]{\texttt{width}}}
-
-\color{green}% step1
-\thicklines
-\put(3,0){\vector(0,1){7}\vector(0,-1){2.5}\vector(1,0){6}}
-\put(9,0){\line(0,1){7}\line(0,-1){2.5}}
-\put(3,7){\line(1,0){6}}
-\put(3,-2.5){\line(1,0){6}}
-\newsavebox{\eqdist}
-\savebox{\eqdist}(0,0)[b]{%
- \thinlines
- \put(-0.08,0.2){\line(0,-1){0.4}}%
- \put(0.08,0.2){\line(0,-1){0.4}}}
-\put(1.5,0){\usebox{\eqdist}}
-\put(10.5,0){\usebox{\eqdist}}
-
-\color{blue}% shifted
-\thicklines
-\put(3,-1.5){\vector(-1,0){4}}
-\put(1,-1.7){\makebox(0,0)[t]{\texttt{left}}}
-\put(3,0){\vector(0,-1){1.5}}
-\put(3.2,-0.75){\makebox(0,0)[l]{\texttt{down}}}
-\end{picture}
-\end{center}
-\end{minipage}%
-\begin{minipage}{0.6\textwidth}%
+ããã§ï¼å¥ç¹ããã(\texttt{U+3002})ã®æåã¯ã©ã¹ã¯ï¼ä»¥ä¸ã®ããã«ãã¦æ±ºã¾ãï¼
+\begin{enumerate}
+\item \Pkg{luaotfload}ã«ãã£ã¦ç¸¦çµç¨å¥ç¹ã®ã°ãªãã«ç½®ãæããï¼
+\item ç½®æå¾ã®ã°ãªã㯠\texttt{U+FE12} ã§ããï¼JFMã«å¾ãã°æåã¯ã©ã¹ã¯\emph{0}ã¨å¤å®ãããï¼
+\item ãã®å ´åï¼ç½®æåã®æ¨ªçµç¨å¥ç¹ã®ã°ãªãã«ãã£ã¦æåã¯ã©ã¹ãå¤å®ããï¼
+\item çµæã¨ãã¦ï¼ä¸ã®åºåä¾ä¸ã®å¥ç¹ã®æåã¯ã©ã¹ã¯2000ã¨ãªãï¼
+\end{enumerate}
+%
+
+
+%\paragraph{ä»®æ³çãªæå}
+%\paragraph{Imaginary characters}
%<*en>
-Consider a Japanese character node which belongs to
-a character class whose the \texttt{align}
-field is \texttt{'middle'}.
+As described before, you can specify several \emph{imaginary characters} in
+\texttt{chars} field. The most of these characters are regarded as the
+characters of class 0 in \pTeX.
+As a result, \LuaTeX-ja can control typesetting finer than \pTeX.
+The following is the list of imaginary characters:
%
%<*ja>
-\texttt{align}ãã£ã¼ã«ãã®å¤ã \texttt{'middle'} ã§ãããããªæåã¯ã©ã¹ã«å±ãã
-åææåãã¼ããèãããï¼
+ä¸ã§èª¬æããéãï¼\texttt{chars}ãã£ã¼ã«ãä¸ã«ã¯ããã¤ãã®ãç¹æ®æåãã
+æå®å¯è½ã§ããï¼ãããã¯ï¼å¤§åã\pTeX ã®JFMã°ã«ã¼ã®æ¿å
¥å¦çã§ã¯ã¿ãªãæå
+ã¯ã©ã¹0ã®æåãã¨ãã¦æ±ããã¦ããæåã§ããï¼ãã®çµæã¨ãã¦\pTeX ããç´°ã
+ãçµç調æ´ãã§ããããã«ãªã£ã¦ããï¼ä»¥ä¸ã§ãã®ä¸è¦§ãè¿°ã¹ãï¼
%
-\begin{itemize}
-\item
-%<*en>
-The black rectangle is the imaginary body of the node.
-Its width, height, and depth are specified by JFM.
-%
+
+\begin{cslist}
+%%\item['diffmet']
+%%Used at a boundary between two \textbf{JAchar}s whose JFM or size is different.
+%%JFMããµã¤ãºãç°ãªã2ã¤ã®\textbf{JAchar}ã®éã®å¢çã¨ãã¦ç¨ããããï¼
+
+\item['boxbdd']
+%The beginning/ending of a hbox, and the beginning of a noindented (i.e., began by \cs{noindent}) paragraph.
+%hboxã®å
é ã¨æ«å°¾ï¼åã³ã¤ã³ãã³ãããã¦ããªãï¼\cs{noindent} ã§éå§ãããï¼æ®µè½ã®å
é ã表ãï¼
+
+\item['parbdd']
+%The beginning of an (indented) paragraph.
+%é常ã®ï¼\cs{noindent} ã§éå§ããã¦ããªãï¼æ®µè½ã®å
é ï¼
+
+\item['jcharbdd']
+%A boundary between \textbf{JAchar} and anything else.
%<*ja>
-é»è²ã®é·æ¹å½¢ã¯ãã¼ãã®æ ã§ããï¼
-ãã®å¹
ï¼é«ãï¼æ·±ãã¯JFMã«ãã£ã¦æå®ããã¦ããï¼
+\textbf{JAchar}ã¨ããã®ä»ã®ãã®ãã¨ã®å¢çï¼
+
+ãã¼ã¸ã§ã³2以åã§ã¯\textbf{ALchar}ï¼ç®±ï¼ç½«ç·(rule)ï¼glue,~kernãªã©ãããããªãã®ã¨\textbf{JAchar}ã®å¢çã«å¯¾ãã¦
+æ¬ç¹æ®æåãç¨ãããã¦ãããï¼
+ãã¼ã¸ã§ã³3以éã§ã¯\ \texttt{'jcharbdd'}, \texttt{'alchar'}, \texttt{'nox\_alchar'},
+\texttt{'glue'} ã¨ç´°ååããï¼
+\texttt{'jcharbdd'} ã¯ä¸»ã«\textbf{JAchar}ã¨ããã¯ã¹ã罫ç·(rule)ã¨ã®å¢çã«ä½¿ãããããã«ãªã£ãï¼
%
-\item
+
+\item['alchar', 'nox\_alchar']
%<*en>
-Since the \texttt{align} field is \texttt{'middle'},
-the ``real'' glyph is centered horizontally (the green rectangle) first.
+(version 3~or~later) A boundary between \textbf{JAchar} and \textbf{ALchar}.
%
%<*ja>
-\texttt{align}ãã£ã¼ã«ã㯠\texttt{'middle'} ãªã®ã§ï¼
-å®éã®ã°ãªãã®ä½ç½®ã¯ã¾ãæ°´å¹³æ¹åã«ä¸å¤®æããããã®ã¨ãªãï¼ç·è²ã®é·æ¹å½¢ï¼ï¼
+ï¼ãã¼ã¸ã§ã³3以éï¼\textbf{JAchar}ã¨\textbf{ALchar}ã¨ã®å¢çï¼
+\textbf{JAchar}ã¨\textbf{ALchar}ã®éã«\Param{xkanjiskip}ãå
¥ããã¨ãå¯è½ãªå ´åã¯
+\ \texttt{'alchar'}\ ãï¼ããã§ãªãå ´åã¯\ \texttt{'nox\_alchar'}\ ãç¨ãããã
+ï¼ãã®åºå¥ã¯\textbf{ALchar}å´ã®\Param{alxspmode}ã®å¤ã«ãã£ã¦ã®ã¿è¡ãããï¼ï¼
%
-\item
+
+\item['glue']
+%(version 3~or~later) A boundary between \textbf{JAchar}, and, a glue or kern.
+%ï¼ãã¼ã¸ã§ã³3以éï¼\textbf{JAchar}ã¨glueï¼kernã¨ã®å¢çï¼
+
+\item[$-1$]
+%The left/right boundary of an inline math formula.
+%è¡ä¸æ°å¼ã¨å°ã®æã¨ã®å¢çï¼
+\end{cslist}
+
+%\paragraph{Porting JFM from \pTeX}
+%\paragraph{\pTeX ç¨åæç¨TFMã®ç§»æ¤}
+
+% ToDo: English version.
+
%<*en>
-Furthermore, the glyph is shifted according to values of fields
- \texttt{left} and \texttt{down}. The ultimate position of the real
- glyph is indicated by the red rectangle.
+See Japanese version of this manual.
%
+
%<*ja>
-ããã«ï¼ã°ãªã㯠\texttt{left} 㨠\texttt{down} ã®å¤ã«å¾ã£ã¦ã·ãããããï¼
-æçµçãªå®éã®ã°ãªãã®ä½ç½®ã¯èµ¤è²ã®é·æ¹å½¢ã§ç¤ºãããä½ç½®ã«ãªãï¼
-%
+以ä¸ã«ï¼\pTeX ç¨ã«ä½ãããåæç¨TFMã\LuaTeX-jaç¨ã«ç§»æ¤ããå ´åã®æ³¨æç¹ãæãã¦ããï¼
+\begin{itemize}
+\item å®éã«åºåãããåæãã©ã³ãã®ãµã¤ãºãdesign sizeã¨ãªãï¼
+ãã®ããï¼ä¾ãã°$1\,\textrm{zw}$ãdesign sizeã®0.962216åã§ããJISãã©ã³
+ ãã¡ããªãã¯çã移æ¤ããå ´åã¯ï¼æ¬¡ã®ããã«ããã¹ãã§ããï¼
+\begin{itemize}
+\item JFMä¸ã®å
¨ã¦ã®æ°å¤ã$1/0.962216$åãã¦ããï¼
+\item \TeX ã½ã¼ã¹ä¸ã§ä½¿ç¨ããã¨ããã§ï¼ãµã¤ãºæå®ã0.962216åã«ããï¼
+ \LaTeX ã§ã®ãã©ã³ã宣è¨ãªãï¼ä¾ãã°æ¬¡ã®ããã«ï¼
+\begin{lstlisting}
+\DeclareFontShape{JY3}{mc}{m}{n}{<-> s*[0.962216] psft:Ryumin-Light:jfm=jis}{}
+\end{lstlisting}
\end{itemize}
-\end{minipage}
-\medskip
+\item ä¸ã«è¿°ã¹ãç¹æ®æåã¯ï¼\texttt{'boxbdd'}ãé¤ãæåã¯ã©ã¹ãå
¨é¨0ã¨ãã
+ ï¼JFMä¸ã«åã«æ¸ããªããã°ããï¼ï¼
+\item \texttt{'boxbdd'}ã«ã¤ãã¦ã¯ï¼ããã®ã¿ã§ä¸ã¤ã®æåã¯ã©ã¹ãå½¢æãï¼ãã®
+ æåã¯ã©ã¹ã«é¢ãã¦ã¯ã°ã«ã¼ï¼ã«ã¼ã³ã®è¨å®ã¯ããªãï¼
-\caption{%
-%The position of the real glyph (horizontal Japanese fonts)
-%横çµåæãã©ã³ãã«ããããå®éã®ãã°ãªãã®ä½ç½®
-}
-\label{fig:pos}
-\end{figure}
-\begin{figure}[!tb]
-\begin{minipage}{0.4\textwidth}%
-\begin{center}\unitlength=10pt\small
-\begin{picture}(15,12)(-6,0)
-\color{b_gray}% jfm
-\put(-6,0){\vrule width 12\unitlength height 11\unitlength}
+ããã¯ï¼\pTeX ã§ã¯ï¼
+ hboxã®å
é ã»æ«å°¾ã¨ã¤ã³ãã³ãããã¦ããªãï¼\cs{noindent} ã§éå§ã
+ ããï¼æ®µè½ã®å
é ã«ã¯JFMã°ã«ã¼ã¯å
¥ããªãã¨ããä»æ§ãå®ç¾ãããããã§ããï¼
+\item \pTeX ã®çµçãåç¾ããããã¨ããã®ãç®çã§ããã°ä»¥ä¸ã®æ³¨æãå®ãã°ååã§ããï¼
-\color{b_pink}% real glyph
-\put(-6.5,5.5){\vrule width 8\unitlength height 6\unitlength depth 3\unitlength}
+ã¨ããã§ï¼\pTeX ã§ã¯é常ã®æ®µè½ã®å
é ã«JFMã°ã«ã¼ãæ®ãã¨ããä»æ§ãããã®ã§ï¼
+ 段è½å
é ã®éãæ¬å¼§ã¯å
¨è§äºåä¸ããã«ãªãï¼å
¨è§ä¸ãããå®ç¾ãããã«
+ ã¯ï¼æ®µè½ã®æåã«æå㧠\cs{inhibitglue} ã追å ãããï¼ãããã¯
+ \ \cs{everypar} ã®ããã¯ãè¡ãï¼ãããèªååããããããªãã£ãï¼
-\color{red}% real glyph
-\thicklines
-\put(-6.5,5.5){\vector(0,1){6}\vector(0,-1){3}\vector(1,0){8}}
-\put( 1.5,5.5){\line(0,1){6}\line(0,-1){3}}
-\put(-6.5,11.5){\line(1,0){8}}
-\put(-6.5,2.5){\line(1,0){8}}
+ä¸æ¹ï¼\LuaTeX-jaã§ã¯ï¼\texttt{'parbdd'}ã«ãã£ã¦ï¼ãããJFMå´ã§èª¿æ´ã§ããã
+ãã«ãªã£ãï¼ä¾ãã°ï¼\LuaTeX-jaå梱ã®JFMã®ããã«ï¼\texttt{'boxbdd'}ã¨åãæåã¯ã©ã¹ã«
+\texttt{'parbdd'}ãå
¥ããã°å
¨è§ä¸ããã¨ãªãï¼
-\color{b_green}% step1
-\put(-4,3){\vrule width 8\unitlength height 6\unitlength depth 3\unitlength}
+\begin{LTXexample}[width=0.4\textwidth]
+\jfont\g=KozMinPr6N-Regular:jfm=test \g
+\parindent1\zw\noindent{}âââââ
+\par ãâââäºåä¸ãã
+\par ãâââå
¨è§ä¸ãã
+\par ãâââå
¨è§äºåä¸ãã
+\end{LTXexample}
+\end{itemize}
-\color{black}% jfm
-\thicklines
-\put(0,11){\vector(1,0){6}\vector(-1,0){6}\vector(0,-1){11}}
-\put(0,0){\line(1,0){6}\line(-1,0){6}}
-\put(-6,0){\line(0,1){11}}
-\put( 6,0){\line(0,1){11}}
-\put( 3,10.8){\makebox(0,0)[t]{\texttt{height}}}
-\put(-3,10.8){\makebox(0,0)[t]{\texttt{depth}}}
-\put(0.2,5.5){\makebox(0,0)[l]{\texttt{width}}}
+ä½ãï¼\cs{everypar} ãå©ç¨ãã¦ããå ´åã«ã¯ãã®ä»çµã¿ã¯æ£ããåããªãï¼
+ãã®ãããªä¾ã¨ãã¦ã¯ç®æ¡æ¸ãä¸ã® \cs{item} ã§å§ã¾ã段è½ãããï¼\Pkg{ltjsclasses}ã§ã¯
+人工çã«ã\texttt{'parbdd'}ã®æå³ãæã¤ãwhatsitãã¼ããä½ããã¨ã«ãã£ã¦å¯¾å¦ãã¦ãã%
+\footnote{\texttt{ltjsclasses.dtx} ãåç
§ããããï¼
+JFMå´ã§ä¸é¨ã®å¯¾å¦ãã§ãããã¨ã«ããï¼\Pkg{jsclasses}ã®ããã«ifæã®å¤å®ã¯ãã¦ããªãï¼}ï¼
+%
-\color{green}% step1
-\thicklines
-\put(-4,3){\vector(0,1){6}\vector(0,-1){3}\vector(1,0){8}}
-\put( 4,3){\line(0,1){6}\line(0,-1){3}}
-\put(-4,9){\line(1,0){8}}
-\put(-4,0){\line(1,0){8}}
-\savebox{\eqdist}(0,0)[b]{%
- \thinlines
- \put(-0.08,0.2){\line(0,-1){0.4}}%
- \put(0.08,0.2){\line(0,-1){0.4}}}
-\put(2,9){\usebox{\eqdist}}
-\put(-2,9){\usebox{\eqdist}}
+%\subsection{Math font family}
+%\subsection{æ°å¼ãã©ã³ããã¡ããª}
+\label{ssec:math}
-\color{blue}% shifted
-\thicklines
-\put(-4,3){\vector(0,1){2.5}}
-\put(-3.8,4.25){\makebox(0,0)[l]{\texttt{left}}}
-\put(-4,5.5){\vector(-1,0){2.5}}
-\put(-5.,5.7){\makebox(0,0)[b]{\texttt{down}}}
-\end{picture}
-\end{center}
-\end{minipage}%
-\begin{minipage}{0.6\textwidth}%
%<*en>
-(\dots)
+\TeX\ handles fonts in math formulas by 16~font families\footnote{Omega,
+Aleph, \LuaTeX~and $\varepsilon$-\kern-.125em(u)\pTeX\ can handles 256~families, but
+an external package is needed to support this in plain \TeX\ and
+\LaTeX.}, and each family has three fonts:
+\cs{textfont}, \cs{scriptfont} and \cs{scriptscriptfont}.
%
%<*ja>
-\texttt{align}ãã£ã¼ã«ãã®å¤ã \texttt{'right'} ã§ãããããªæåã¯ã©ã¹ã«å±ãã
-åææåãèãããï¼
-\begin{itemize}
-\item
-å®éã®ã°ãªãã®ãåç´ä½ç½®ãã¯ï¼ã¾ããã¼ã¹ã©ã¤ã³ãæåã®ç©ççãªå·¦å³æ¹åã®ä¸å¤®ãéã
-ä½ç½®ã¨ãªãï¼
-\item
-ã¾ãï¼ãã®å ´å \texttt{align} ãã£ã¼ã«ã㯠\texttt{'right'} ãªã®ã§ï¼
-ãæ°´å¹³ä½ç½®ãã¯åéãæ¹åã«ãå³å¯ãããããã®ã¨ãªãï¼ç·è²ã®é·æ¹å½¢ï¼ï¼
-\item
-ãã®å¾ããã« \texttt{left} 㨠\texttt{down} ã®å¤ã«å¾ã£ã¦ã·ããããã
-ã®ã¯æ¨ªçµç¨åæãã©ã³ãã¨å¤ãããªãï¼
-\end{itemize}
+\TeX\ ã¯æ°å¼ãã©ã³ãã16ã®ãã¡ããª\footnote{Omega, Aleph, \LuaTeXï¼ããã¦
+ $\varepsilon$-\kern-.125em(u)\pTeX\ ã§ã¯256ã®æ°å¼ãã¡ããªãæ±ããã¨ãã§ãããï¼
+ ããããµãã¼ãããããã«plain \TeX ã¨\LaTeX ã§ã¯å¤é¨ããã±ã¼ã¸ãèªã¿è¾¼ãå¿
è¦ã
+ ããï¼}ã§ç®¡çãï¼ããããã®ãã¡ããªã¯3ã¤ã®ãã©ã³ããæã£ã¦ããï¼
+\cs{textfont}, \cs{scriptfont} ãã㦠\cs{scriptscriptfont} ã§ãã.
+%
+
+%<*en>
+\LuaTeX-ja's handling of Japanese fonts in math formulas is similar;
+\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.
+Here in the argument of \Param{jatextfont} etc.\ is
+a control sequence which is defined by \cs{jfont}, i.e.,
+a \emph{horizontal} Japanese font.
+%
+%<*ja>
+\LuaTeX-jaã®æ°å¼ä¸ã§ã®åæãã©ã³ãã®æ±ããåæ§ã§ããï¼
+\autoref{tab-math}ã¯æ°å¼ãã©ã³ããã¡ããªã«å¯¾ãã \TeX ã®ããªããã£ãã¨å¯¾å¿ãã
+ãã®ã示ãã¦ããï¼\cs{fam} 㨠\cs{jfam} ã®å¤ã®éã«ã¯é¢ä¿ã¯ãªãï¼
+é©åãªè¨å®ã®ä¸ã§ã¯ \cs{fam} 㨠\cs{jfam} ã®ä¸¡æ¹ã«åãå¤ãè¨å®ãããã¨ãã§ããï¼
+\Param{jatextfont} ä»ã®ç¬¬2å¼æ°ã¯ï¼\cs{jfont} ã§å®ç¾©ããã
+\emph{横çµç¨}åæãã©ã³ãã§ããï¼\cs{tfont} ã§å®ç¾©ããã
+\emph{縦çµç¨}åæãã©ã³ããæå®ãããã¨ã¯æ³å®ãã¦ããªãï¼
+%
+
+\begin{table}[!tb]
+%\caption{Commands for Japanese math fonts}
+%\caption{åææ°å¼ãã©ã³ãã«å¯¾ããå½ä»¤}
+\label{tab-math}
+%\medskip
+\centering
+\def\{{\char`\{}\def\}{\char`\}}\small
+\begin{tabular}{ll}
+\toprule
+%\bf Japanese fonts&\bf alphabetic fonts\\
+%\bf åæãã©ã³ã&\bf 欧æãã©ã³ã\\
+\midrule
+\cs{jfam}${}\in [0,256)$&\cs{fam}\\
+\tt\Param{jatextfont}\,=\{,\}&\tt\cs{textfont}=\\
+\tt\Param{jascriptfont}\,=\{,\}&\tt\cs{scriptfont}=\\
+\tt\Param{jascriptscriptfont}\,=\{,\}&\tt\cs{scriptscriptfont}=\\
+\bottomrule
+\end{tabular}
+\end{table}
+
+%\subsection{Callbacks}
+%\subsection{ã³ã¼ã«ããã¯}
+
+%<*en>
+\LuaTeX-ja also has several callbacks. These callbacks can
+be accessed via \verb+luatexbase.add_to_callback+ function and so on, as other callbacks.
+%
+%<*ja>
+\LuaTeX èªä½ã®ãã®ã«å ãã¦ï¼\LuaTeX-jaãã³ã¼ã«ããã¯ãæã£ã¦ããï¼
+ãããã®ã³ã¼ã«ããã¯ã«ã¯ï¼ä»ã®ã³ã¼ã«ããã¯ã¨åæ§ã« \verb+luatexbase.add_to_callback+
+é¢æ°ãªã©ãç¨ãããã¨ã§ã¢ã¯ã»ã¹ãããã¨ãã§ããï¼
+%
+\begin{description}[font=\bfseries, style=nextline]
+%\item[\texttt{luatexja.load\_jfm} callback]
+%\item[\texttt{luatexja.load\_jfm}ã³ã¼ã«ããã¯]
+%<*en>
+With this callback you can overwrite JFMs.
+This callback is called when a new JFM is loaded.
+%
+%<*ja>
+ãã®ã³ã¼ã«ããã¯ãç¨ãããã¨ã§JFMãä¸æ¸ããããã¨ãã§ããï¼
+ãã®ã³ã¼ã«ããã¯ã¯æ°ããJFMãèªã¿è¾¼ã¾ããã¨ãã«å¼ã³åºãããï¼
%
-\end{minipage}
-\medskip
-\caption{%
-%The position of the real glyph (vertical Japanese fonts)
-%縦çµåæãã©ã³ãã«ããããå®éã®ãã°ãªãã®ä½ç½®
-}
-\label{fig:pos-tate}
-\end{figure}
+\begin{lstlisting}[numbers=left]
+function ( jfm_info, jfm_name)
+ return new_jfm_info
+end
+\end{lstlisting}
-\item[kern={\{[$j$]=, [$j'$]=\{, [ratio=]\}, ...\}}]
-\nopagebreak
-\item[glue={\{[$j$]=\{, , , [ratio=, ...]\}, ...\}}]\leavevmode
+%<*en>
+The argument \verb+jfm_info+ contains a table similar to the table in a JFM file, except
+this argument has \texttt{chars} field which contains character codes
+ whose character class is not~0.
+%
%<*ja>
+å¼æ° \verb+jfm_info+ ã¯JFMãã¡ã¤ã«ã®ãã¼ãã«ã¨ä¼¼ããã®ãæ ¼ç´ããããï¼
+ã¯ã©ã¹0ãé¤ããæåã®ã³ã¼ããå«ãã \texttt{chars}ãã£ã¼ã«ããæã¤ç¹ãç°ãªãï¼
+%
-æåã¯ã©ã¹$i$ã®æåã¨$j$ã®æåã®éã«æ¿å
¥ãããã«ã¼ã³ãã°ã«ã¼ã®éãæå®ããï¼
+%<*en>
+An example of this callback is the \texttt{ltjarticle} class, with
+ forcefully assigning character class~0 to \texttt{'parbdd'}
+ in the JFM \texttt{jfm-min.lua}.
+%
+%<*ja>
+ãã®ã³ã¼ã«ããã¯ã®ä½¿ç¨ä¾ã¯\texttt{ltjarticle}ã¯ã©ã¹ã«ããï¼
+\texttt{jfm-min.lua}ä¸ã®\texttt{'parbdd'}ãå¼·å¶çã«ã¯ã©ã¹0ã«å²ãå½ã¦ã¦ããï¼
+%
-ã¯ï¼ã°ã«ã¼ã®èªç¶é·ã®ãã¡ã©ãã ãã®å²åããå¾ã®æåãç±æ¥ãã示ãéã§ï¼
-$0$ãã$+1$ã®å®æ°å¤ãã¨ãï¼çç¥æã®å¤ã¯$0.5$ã§ããï¼
-ãã®ãã£ã¼ã«ãã®å¤ã¯\Param{differentjfm}ã®å¤ã
-\texttt{pleft},~\texttt{pright},~\texttt{paverage}ã®å¤ã®ã¨ãã®ã¿å®éã«ç¨ããããï¼
+%\item[\texttt{luatexja.define\_jfont} callback]
+%\item[\texttt{luatexja.define\_jfont}ã³ã¼ã«ããã¯]
+%<*en>
+This callback and the next callback form a pair, and you can assign characters
+ which do not have fixed code points in Unicode to non-zero character classes.
+This \texttt{luatexja.define\_font} callback is called just when new Japanese font is loaded.
+%
+%<*ja>
+ãã®ã³ã¼ã«ããã¯ã¨æ¬¡ã®ã³ã¼ã«ããã¯ã¯çµããªãã¦ããï¼Unicodeä¸ã«åºå®ãããæåã³ã¼ã
+çªå·ãæããªãæåãéé¶ã®æåã¯ã©ã¹ã«å²ãå½ã¦ããã¨ãã§ããï¼
+ãã®ã³ã¼ã«ããã¯ã¯æ°ããåæãã©ã³ããèªã¿è¾¼ã¾ããã¨ãã«å¼ã³åºãããï¼
+%
-ä¾ãã°ï¼\cite{x4051}ã§ã¯ï¼å¥ç¹ã¨ä¸ç¹ã®éã«ã¯ï¼
-å¥ç¹ç±æ¥ã®äºå空ãã¨ä¸ç¹ç±æ¥ã®åå空ããæ¿å
¥ããããï¼ãã®å ´åã«ã¯
+\begin{lstlisting}[numbers=left]
+function ( jfont_info, font_number)
+ return new_jfont_info
+end
+\end{lstlisting}
+%<*en>
+\verb+jfont_info+ has the following fields,
+\emph{which may not overwritten by a user}:
+\begin{description}
+\item[\texttt{size}]
+The font size specified at \cs{jfont} in scaled points ($1\,\mathrm{sp}=2^{-16}\,\mathrm{pt}$).
+\item[\texttt{zw}, \texttt{zh}, \texttt{kanjiskip}, \texttt{xkanjiskip}]
+These are scaled value of those specified by the JFM, by the font size.
+\item[\texttt{jfm}]
+The internal number of the JFM.
+\item[\texttt{var}]
+The value of \texttt{jfmvar}~key, which is specified at \cs{jfont}.
+The default value is the empty string.
+\item[\texttt{chars}]
+The mapping table from character codes to its character classes.\\
+The specification \texttt{[i].chars=\{, ...\}} in the JFM will be stored in this
+ field as \texttt{chars=\{[]=\,$i$, ...\}}.
+\item[\texttt{char\_type}]
+For $i\in\omega$, \texttt{char\_type[$i$]} is information of characters whose class is
+ $i$, and has the following fields:
\begin{itemize}
-\item ã«ã¯$0.5+0.25=0.75$ãæå®ããï¼
-\item ã«ã¯$0.25/(0.5+0.25)=1/3$ãæå®ããï¼
+ \item \texttt{width},~\texttt{height}, \texttt{depth},
+ \texttt{italic}, \texttt{down},~\texttt{left}\ are just
+ scaled value of those specified by the JFM, by the font size.
+ \item \texttt{align} is a number which is determined from \texttt{align}~field in the JFM:
+\[
+ \begin{cases}
+ 0&\text{\texttt{'left'} (default)}\\0.5&\text{\tt 'middle'}\\1&\text{\tt 'right'}
+ \end{cases}
+\]
\end{itemize}
-%
-%<*en>
-\
-
-Specifies the amount of kern or glue which will be inserted
-between characters in character class~$i$ and those in character class~$j$.
-
- specifies how much the glue is originated in the ``right'' character.
-It is a real number between 0 and 1, and treated as 0.5 if omitted. For example,
-The width of a glue between an ideographic full stop ``ã''
-and a fullwidth middle dot ``ã»'' is three-fourth of fullwidth,
-namely halfwidth from the ideographic full stop, and
-quarter-width from the fullwidth middle dot. In this case,
-we specify to $0.25/(0.5+0.25)=1/3$.
+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>
-ã°ã«ã¼ã®æå®ã«ããã¦ã¯ï¼ä¸è¨ã«å ãã¦å \texttt{[$j$]} ã®åãµããã¼ãã«å
ã«
-次ã®ãã¼ãæå®ã§ããï¼
-\begin{cslist}[style=standard]
-\item[priority=]
- \Pkg{luatexja-adjust}ã«ããåªå
é ä½ä»ã
- è¡é·èª¿æ´ï¼\ref{ssec-adj}ç¯ï¼ã«ããã¦ï¼ãã®ã°ã«ã¼ã®åªå
度ãæå®ããï¼è¨±ãããå¤ã¯ä»¥ä¸ã®éãï¼
+\verb+jfont_info+ ã¯æä½é以ä¸ã®ãã£ã¼ã«ããæã¤ãï¼ããããæ¸ãæãã¦ã¯ãªããªãï¼
+\begin{cslist}
+\item[size]
+å®éã«ä½¿ããããã©ã³ããµã¤ãºï¼spåä½ï¼ï¼$1\,\mathrm{sp}=2^{-16}\,\mathrm{pt}$ï¼
+\item[zw\textrm{, }zh\textrm{, }kanjiskip\textrm{, }xkanjiskip]
+JFMãã¡ã¤ã«ã§æå®ããã¦ããããããã®å¤ããã©ã³ããµã¤ãºã«åããã¦ã¹ã±ã¼ãªã³ã°ãããã®ã
+spåä½ã§æ ¼ç´ãã¦ããï¼
+\item[jfm]
+å©ç¨ããã¦ããJFMãèå¥ããããã®çªå·ï¼
+\item[var]
+\cs{jfont},~\cs{tfont} ã§æå®ããã \texttt{jfmvar} ãã¼ã®å¤ï¼æªæå®ã®ã¨ãã¯ç©ºæååï¼ï¼
+\item[chars]
+æåã³ã¼ãããæåã¯ã©ã¹ã¸ã®å¯¾å¿ãè¨è¿°ããããã¼ãã«ï¼\\
+JFMå
ã® \texttt{[i].chars=\{, ...\}} ã¨ããæå®ã¯\
+\texttt{chars=\{[]=\,$i$, ...\}} ã¨ããå½¢å¼ã«å¤æããã¦ããï¼
+\item[char\_type]
+$i\in\omega$ã«å¯¾ãã¦ï¼\texttt{char\_type[$i$]} ã¯æåã¯ã©ã¹$i$ã®æåã®å¯¸æ³ãæ ¼ç´ãã¦ããï¼
+以ä¸ã®ãã£ã¼ã«ããæã¤ï¼
+\begin{itemize}
+ \item \texttt{width},~\texttt{height}, \texttt{depth},
+ \texttt{italic}, \texttt{down},~\texttt{left}\ ã¯
+JFMã§æå®ããã¦ããããããã®å¤ãã¹ã±ã¼ãªã³ã°ãããã®ã§ããï¼
+ \item \texttt{align} ã¯JFMã§æå®ããã¦ããå¤ã«ãã£ã¦ï¼
+\[
+ \begin{cases}
+ 0&\text{\texttt{'left'}ãçç¥æ}\\0.5&\text{\tt 'middle'}\\1&\text{\tt 'right'}
+ \end{cases}
+\]
+ã®ããããã®å¤ãã¨ãï¼
+\end{itemize}
+$i$,~$j\in \omega$ã«å¯¾ãã¦ï¼\texttt{char\_type[$i$][$j$]} ã¯
+æåã¯ã©ã¹$i$ã®æåã¨$j$ã®æåã®éã«æ¿å
¥ãããã°ã«ã¼ãã«ã¼ã³ãæ ¼ç´ãã¦ããï¼
+\begin{itemize}
+ \item éã«å
¥ããã®ãã«ã¼ã³ã§ããã°ï¼ãã®å¤ã¯\
+\texttt{[$j$]=\{[1]=, ratio=\}} ã§ããï¼
+ã¯ã«ã¼ã³ã表ããã¼ãã§ãã\footnote{%
+ ãã¼ã¸ã§ã³20150420.0以éã§ã¯ãã¼ãã®ã¢ã¯ã»ã¹ææ³ã«direct access
+ modelãç¨ãã¦ããããï¼ãã¼ããã®ãã®ã表ãã¦ã¼ã¶ã¼ãã¼ã¿ã§ã¯ãªãï¼
+ å
é¨ã§åç
§ã®ããã«ä½¿ãããæ·»åï¼æ´æ°ï¼ã§ããï¼
+}ï¼
+ \item ã°ã«ã¼ã§ããã°ï¼ãã®å¤ã¯ä»¥ä¸ã®ãã¼ãæã¤ãã¼ãã«ã§ããï¼
\begin{description}
- \item[ãã¼ã¸ã§ã³1ã®ã¨ã] $-4$ãã$+3$ã®éã®æ´æ°
- \item[ãã¼ã¸ã§ã³2ã®ã¨ã] $-4$ãã$+3$ã®éã®æ´æ°ã®2ã¤çµ\texttt{\{, \}}ãï¼
- ã¾ãã¯$-4$ãã$+3$ã®éã®æ´æ°ï¼, ã¯ãããããã®ã°ã«ã¼ã伸ã³ãã¨ãã®åªå
度ï¼ç¸®ãã¨ãã®
- åªå
度ã§ããï¼åã«æ´æ°$i$ãæå®ãããå ´åã¯\texttt{\{$i$, $i$\}}ã§ããã¨è§£éãããï¼
+ \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}
- ããã§æå®ããå¤ã¯ï¼å¤§ããå¤ã»ã©ãå
ã«ä¼¸ã°ãããããå
ã«ç¸®ã¾ããããã¨ãæå³ãã¦ããï¼çç¥æã®å¤
- ã¯0ã§ããï¼ç¯å²å¤ã®å¤ãæå®ãããã¨ãã®åä½ã¯æªå®ç¾©ã§ããï¼
-\item[kanjiskip\_natural=\textrm{, }%
- kanjiskip\_stretch=\textrm{, }kanjiskip\_shrink=]\leavevmode
- \label{pg:ksp_nat}
-
-JFMã«ãã£ã¦æ¬æ¥æ¿å
¥ãããã°ã«ã¼ã®ä»ã«
-\Param{kanjiskip}åã®ç©ºç½ãèªç¶é·(\texttt{kanjiskip\_natural})ï¼ä¼¸ã³é(\texttt{kanjiskip\_stretch})ï¼
-縮ã¿é(\texttt{kanjiskip\_shrink})ãã¨ã«æ¿å
¥ãã\footnote{æ¬æ¥\Param{xkanjiskip}ãæ¿å
¥ãããå ´æã«ããã¦ã¯
- \Param{xkanjiskip}åã®ç©ºç½ãèªç¶é·ã»ä¼¸ã³éã»ç¸®ã¿éãã¨ã«ï¼è¿½å ã§ããï¼}%
-ããã®æå®ã§ããï¼ããããçç¥ãããå ´åã®ããã©ã«ãå¤ã¯0ï¼è¿½å ããªãï¼ã§ããï¼
-
-ä¾ãã°ï¼\LuaTeX-jaã®æ¨ªçµæ¨æºJFMã® \texttt{jfm-ujis.lua} ã§ã¯ï¼
-\begin{itemize}
- \item é常ã®æåãããã¨éãæ¬å¼§é¡ã®éã«å
¥ãã°ã«ã¼ã¯ï¼èªç¶é·ã»ç¸®ã¿éåè§ï¼ä¼¸ã³é0ã®ã°ã«ã¼
-ã¨ãªã£ã¦ãããï¼ããã«\Param{kanjiskip}ã®ä¼¸ã³éã« \texttt{kanjiskip\_stretch}ï¼ããã§ã¯1ï¼ãæã
- ãåã ã伸ã³ããã¨ã許ãããï¼
- \item åæ§ã«ï¼éãæ¬å¼§é¡ï¼å
¨è§ã³ã³ããï¼ããå«ãï¼ã¨é常ã®æåããããããã®éã«ã
-èªç¶é·ã»ç¸®ã¿éåè§ï¼ä¼¸ã³é0ã®ã°ã«ã¼
-ã¨ãªã£ã¦ãããï¼ããã«\Param{kanjiskip}ã®ä¼¸ã³éã« \texttt{kanjiskip\_stretch}ï¼ããã§ã¯1ï¼ãæã
- ãåã ã伸ã³ããã¨ã許ãããï¼
\end{itemize}
-ã¨ãªã£ã¦ããï¼å¾ã£ã¦ï¼ä»¥ä¸ã®ãããªçµççµæãå¾ãï¼
-
-\medskip
-\begin{LTXexample}[width=16\zw]
-\leavevmode
-\ltjsetparameter{kanjiskip=0pt plus 3\zw}
-\vrule\hbox to 15\zw{ãããããï¼ãã}\vrule
-\end{LTXexample}
-
+\item[ascent\textrm{, }descent]
+ 縦çµæã«åã
ã®ã°ãªãã90度å転ãããå ´åï¼ãã®ã°ãªãã¯ï¼å®éã®é«ãã»æ·±ãã«ãããããï¼
+ 便å®çã«é«ã\texttt{ascent}ï¼æ·±ã\texttt{descent}ãæã¤ãã®ã ã¨æ³å®ãã¦å転ãããï¼
+ ãã®ä»æ§ã¯\Pkg{luaotfload}ãOpenTypeãã©ã³ãã®VORGãã¼ãã«ãèªã¾ãªãããã®æ«å®çãªãã®ã§ããï¼
+\item[chars\_cbcache]
+æåã¯ã©ã¹æ±ºå®ã®å¦çã§ï¼ãã£ãã·ã¥ã¨ãã¦ä½¿ãããï¼
\end{cslist}
%
-%<*en>
-In case of glue, one can specify following additional keys in each \texttt{[$j$]}
- subtable:
-\begin{cslist}[style=standard]
-\item[priority=]
-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.
-\item[kanjiskip\_natural=\textrm{, }%
- kanjiskip\_stretch=\textrm{, }kanjiskip\_shrink=]\leavevmode
-These keys specifies the amount of the natural width of \Param{kanjiskip}
-(the stretch/shrink part, respectively) which will be inserted
-in addition to the original JFM glue. Default values of them are all 0.
+%<*en>
+The returned table \verb+new_jfont_info+ also should include these fields, but
+you are free to add more fields (to use them in the \texttt{luatexja.find\_char\_class} callback).
+The \verb+font_number+ is a font number.
+%
+%<*ja>
+æ»ãå¤ã® \verb+new_jfont_info+ ãã¼ãã«ãä¸ã«è¿°ã¹ããã£ã¼ã«ãããã®ã¾ã¾å«ã¾ãªããã°ãªããªããï¼
+ãã以å¤ã«ã¦ã¼ã¶ãåæã«ãã£ã¼ã«ããä»ãå ãããã¨ã¯èªç±ã§ããï¼
+\verb+font_number+ ã¯ãã©ã³ãçªå·ã§ããï¼
+%
-As an example, in \texttt{jfm-ujis.lua}, the standard JFM in horizontal writing, we have
-\begin{itemize}
- \item Between an ordinal letter ``ã'' and an ideographic opening bracket, we have
-a glue whose natural part and shrink part are both half-width, while its stretch part is
- zero. However, this glue also can be stretched
- as much as the stretch part of \Param{kanjiskip} times the value of
- \texttt{kanjiskip\_stretch} key (1 in this case).
- \item Between an ideographic closeing brackets (the ideographic comma ``ï¼''
- is included) and an ordinal letter, we have the same glue.
- Again, this glue also can be stretched
- as much as the stretch part of \Param{kanjiskip} times the value of
- \texttt{kanjiskip\_stretch} key (1 in this case).
-\end{itemize}
-Hence we have the following result:
+%<*en>
+A good example of this and the next callbacks is the \Pkg{luatexja-otf}
+ package, supporting \verb+"AJ1-xxx"+ form for Adobe-Japan1
+ CID characters in a JFM. This callback doesn't replace any
+ code of \LuaTeX-ja.
+%
+%<*ja>
+ããã¨æ¬¡ã®ã³ã¼ã«ããã¯ã®è¯ã使ç¨ä¾ã¯\Pkg{luatexja-otf}ããã±ã¼ã¸ã§ããï¼
+JFMä¸ã§Adobe-Japan1 CIDã®æåã \verb+"AJ1-xxx"+ ã®å½¢ã§æå®ããããã«
+ç¨ãããã¦ããï¼
+%
-\medskip
-\begin{LTXexample}[width=16\zw]
-\leavevmode
-\ltjsetparameter{kanjiskip=0pt plus 3\zw}
-\vrule\hbox to 15\zw{ãããããï¼ãã}\vrule
-\end{LTXexample}
+%\item[\texttt{luatexja.find\_char\_class} callback]
+%\item[\texttt{luatexja.find\_char\_class}ã³ã¼ã«ããã¯]
+%<*en>
+This callback is called just when \LuaTeX-ja is trying to determine which
+ character class a character \verb+chr_code+ belongs.
+A function used in this callback should be in the following form:
+%
+%<*ja>
+ãã®ã³ã¼ã«ããã¯ã¯\LuaTeX-jaã \verb+chr_code+ ã®æåãã©ã®æåã¯ã©ã¹ã«
+å±ãããã決å®ãããã¨ããéã«å¼ã³åºãããï¼
+ãã®ã³ã¼ã«ããã¯ã§å¼ã³åºãããé¢æ°ã¯æ¬¡ã®å½¢ããã¦ããªããã°ãªããªãï¼
+%
+\begin{lstlisting}[numbers=left]
+function ( char_class, jfont_info, chr_code)
+ if char_class~=0 then return char_class
+ else
+ ....
+ return ( new_char_class or 0)
+ end
+end
+\end{lstlisting}
-\end{cslist}
+%<*en>
+The argument \verb+char_class+ is the result of \LuaTeX-ja's default
+ routine or previous function calls in this callback, hence
+ this argument may not be 0. Moreover, the returned
+ \verb+new_char_class+ should be as same as \verb+char_class+ when \verb+char_class+
+ is not~0, otherwise you will overwrite the \LuaTeX-ja's
+ default routine.
%
-
-\item[end\_stretch=, end\_shrink=]
%<*ja>
-ï¼ä»»æï¼ãã¼ã¸ã§ã³1ã®ã¿ï¼
-
-åªå
é ä½ä»ãè¡é·èª¿æ´ãæå¹ã§ããï¼ãã¤ç¾å¨ã®æåã¯ã©ã¹ã®æåãè¡
- æ«ã«æ¥ãæã«ï¼è¡é·ãè©°ãã調æ´ã»ä¼¸ã°ã調æ´ã®ã
- ãã«ãã®æåã¨è¡æ«ã®éã«æ¿å
¥å¯è½ãªã«ã¼ã³ã®å¤§ãããæå®ããï¼
+å¼æ° \verb+char_class+ ã¯\LuaTeX-jaã®ããã©ã«ãã«ã¼ãã³ãï¼ãã®ã³ã¼ã«ããã¯ã®
+ç´åã®é¢æ°å¼ã³åºãã®çµæãå«ãã§ããï¼ãããã£ã¦ãã®å¤ã¯0ã§ã¯ãªããããããªãï¼
+ããã«ï¼æ»ãå¤ã® \verb+new_char_class+ 㯠\verb+char_class+ ãéé¶ã®ã¨ãã«ã¯
+\verb+char_class+ ã®å¤ã¨åãã§ããã¹ãã§ï¼ããã§ãªãã¨ãã¯\LuaTeX-jaã®
+ããã©ã«ãã«ã¼ãã³ãæ¸ãæãããã¨ã«ãªãï¼
%
+
+%\item[\texttt{luatexja.set\_width} callback]
+%\item[\texttt{luatexja.set\_width}ã³ã¼ã«ããã¯]
%<*en>
-(optional, version~1 only)
+This callback is called when \LuaTeX-ja is trying to encapsule a
+ \textbf{JAchar} \textit{glyph\_node}, to adjust its
+ dimension and position.
%
-
- \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$}
+ãã®ã³ã¼ã«ããã¯ã¯\LuaTeX-jaã\textbf{JAchar}ã®å¯¸æ³ã¨ä½ç½®ã調ç¯ããããã«
+ãã®\textit{glyph\_node}ãã«ãã»ã«åãããã¨ããéã«å¼ã³åºãããï¼
+%
+\begin{lstlisting}[numbers=left]
+function ( shift_info, jfont_info, char_type)
+ return new_shift_info
+end
\end{lstlisting}
-ããçãä¸ã® \texttt{0.0} ããªãå ´åã¯ï¼$a$ã$-b$ãããããã®ã«ã¼ã³ã常ã«è¡æ«ã«è¿½å ãããï¼
+
+%<*en>
+The argument \verb+shift_info+ and the returned \verb+new_shift_info+ have
+\texttt{down} and \texttt{left} fields, which are the amount of shifting
+ down/left the character in a scaled point.
+%
+%<*ja>
+å¼æ° \verb+shift_info+ ã¨æ»ãå¤ã® \verb+new_shift_info+ ã¯
+\texttt{down}ã¨\texttt{left}ã®ãã£ã¼ã«ããæã¡ï¼ãããã®å¤ã¯
+æåã®ä¸ï¼å·¦ã¸ã®ã·ããéï¼spåä½ï¼ã§ããï¼
%
+
%<*en>
-(optional, version~2 only)
+A good example is \Pkg{test/valign.lua}.
+After loading this file, the vertical position of glyphs is automatically
+adjusted; the ratio $(\hbox{height}:\hbox{depth})$ of glyphs is adjusted
+to be that of letters in the character class~0. For example, suppose that
+\begin{itemize}
+\item The setting of the JFM: $(\hbox{height})=88x$, $(\hbox{depth})=12x$
+ (the standard values of Japanese OpenType fonts);
+\item The value of the real font: $(\hbox{height})=28y$, $(\hbox{depth})=5y$
+ (the standard values of Japanese TrueType fonts).
+\end{itemize}
+Then, the position of glyphs is shifted up by
%
+%<*ja>
+è¯ãä¾ã\Pkg{test/valign.lua}ã§ããï¼ãã®ãã¡ã¤ã«ãèªã¿è¾¼ã¾ããç¶æ
ã§ã¯ï¼
+ JFMå
ã§è¦å®ãããæåã¯ã©ã¹0ã®æåã«ããã$(\hbox{é«
+ ã}):(\hbox{æ·±ã})$ã®æ¯ã«ãªãããã«ï¼å®éã®ãã©ã³ãã®åºåä¸
+ ä¸ä½ç½®ãèªå調æ´ãããï¼ä¾ãã°ï¼
+\begin{itemize}
+\item JFMå´ã®è¨å®ï¼$(\hbox{é«ã})=88x$, $(\hbox{æ·±ã})=12x$%
+ï¼åæOpenTypeãã©ã³ãã®æ¨æºå¤ï¼
+\item å®ãã©ã³ãå´ã®æ°å¤ï¼$(\hbox{é«ã})=28y$, $(\hbox{æ·±ã})=5y$ï¼åæTrueTypeãã©ã³ãã®æ¨æºå¤ï¼
+\end{itemize}
+ã¨ãªã£ã¦ããã¨ããï¼ããã¨ï¼å®éã®æåã®åºåä½ç½®ã¯ï¼ä»¥ä¸ã®éã ãä¸ã«ããããããã¨ã¨ãªãï¼
+%
+\[
+ \frac{88x}{88x+12x} (28y+5y) - 28y = \frac{26}{25}y= 1.04y.
+\]
+\end{description}
-\end{cslist}
+%\section{Parameters}
+%\section{ãã©ã¡ã¼ã¿}
+\subsection{\cs{ltjsetparameter}}
+\label{ssec:param}
+%<*en>
+As described before, \cs{ltjsetparameter} and \cs{ltjgetparameter} are
+commands for accessing most parameters of \LuaTeX-ja. One of the main
+reason that \LuaTeX-ja didn't adopted the syntax similar to that of \pTeX\
+(\textit{e.g.},~\verb+\prebreakpenalty`ï¼=10000+)
+is the position of \verb+hpack_filter+ callback in the source
+of \LuaTeX, see Section~\ref{sec-para}.
+%
%<*ja>
-\paragraph{æåã¯ã©ã¹ã®æ±ºå®}
-æåãããã®æåã®å±ããæåã¯ã©ã¹ãç®åºããéç¨ã«ã¤ãã¦ï¼
-次ã®å
容ãå«ãã \texttt{jfm-test.lua} ãç¨ãã¦èª¬æããï¼
+å
ã«è¿°ã¹ãããã«ï¼\LuaTeX-jaã®å
é¨ãã©ã¡ã¼ã¿ã«ã¢ã¯ã»ã¹ããã«ã¯
+\cs{ltjsetparameter}ï¼ã¾ã㯠\cs{ltjglobalsetparameter}ï¼ã¨ \cs{ltjgetparameter} ãç¨ããï¼
+\LuaTeX-jaã\pTeX ã®ãããªææ³ï¼ä¾ãã°ï¼\verb+\prebreakpenalty`ï¼=10000+ï¼ã
+æ¡ç¨ããªãçç±ã®ä¸ã¤ã¯ï¼\LuaTeX ã®ã½ã¼ã¹ã«ããã \verb+hpack_filter+
+ã³ã¼ã«ããã¯ã®ä½ç½®ã«ããï¼\ref{sec-para}ç« ãåç
§ï¼
%
+
%<*en>
-\paragraph{Character to character classes}
-We explain how the character class of a character is determined,
-using \texttt{jfm-test.lua} which contains the following:
+\cs{ltjsetparameter} and \cs{ltjglobalsetparameter} are commands
+for assigning parameters. These take one argument which is a
+\texttt{=} list.
+The difference between these two commands is the
+scope of assignment;
+\cs{ltjsetparameter} does a local assignment and
+\cs{ltjglobalsetparameter} does a global one.
+They also obey the value of \cs{globaldefs}, like other assignments.
%
-\begin{lstlisting}
- [0] = {
- chars = { 'æ¼¢' },
- align = 'left', left = 0.0, down = 0.0,
- width = 1.0, height = 0.88, depth = 0.12, italic=0.0,
- },
- [2000] = {
- chars = { 'ã', 'ï¾' },
- align = 'left', left = 0.0, down = 0.0,
- width = 0.5, height = 0.88, depth = 0.12, italic=0.0,
- },
-\end{lstlisting}
-%ããã§ï¼æ¬¡ã®ãããªå
¥åã¨ãã®å®è¡çµæãèããï¼
-%Now consider the following input/output:
-\begin{LTXexample}[width=0.3\textwidth]
-\jfont\a=file:KozMinPr6N-Regular.otf:jfm=test;+hwid
-\setbox0\hbox{\a ãæ¼¢}
-\the\wd0
-\end{LTXexample}
+%<*ja>
+\cs{ltjsetparameter} 㨠\cs{ltjglobalsetparameter} ã¯ãã©ã¡ã¼ã¿ã
+æå®ããããã®å½ä»¤ã§ï¼\texttt{=}ã®ãªã¹ãã
+å¼æ°ã¨ãã¦ã¨ãï¼ä¸¡è
ã®éãã¯ã¹ã³ã¼ãã§ããï¼
+\cs{ltjsetparameter} ã¯ãã¼ã«ã«ãªè¨å®ãè¡ãã®ã«å¯¾ãï¼
+\cs{ltjglobalsetparameter} ã¯ã°ãã¼ãã«ãªè¨å®ãè¡ãï¼
+ã¾ãï¼ä»ã®ãã©ã¡ã¼ã¿æå®ã¨åæ§ã« \cs{globaldefs} ã®å¤ã«ãå¾ãï¼
+%
+
%<*en>
-Now we look why the above source outputs 15\,pt.
-\begin{enumerate}
-\item The character ``ã'' is converted to its half width form ``ï¾'' by \verb+hwid+ feature.
-\item According to the JFM, the character class of ``ï¾'' is 2000, hence its width is halfwidth.
-\item The character class of ``æ¼¢'' is zero, hence its width is fullwidth.
-\item Hence the width of \cs{hbox} equals to 15\,pt.
-\end{enumerate}
-This example shows that the character class of a character is generally determined \emph{after
-applying font features by \Pkg{luaotfload}}.
+The following is the list of parameters which can be specified by the
+\cs{ltjsetparameter} command. [\cs{cs}] indicates the counterpart
+in \pTeX, and symbols beside each parameter has the following meaning:
%
%<*ja>
-ä¸è¨ã®åºåçµæãï¼15\,ptã¨ãªã£ã¦ããã®ã¯çç±ã«ãããã®ã§ããï¼
-\begin{enumerate}
-\item \verb+hwid+ featureã«ãã£ã¦ããããåè§å¹
ã®ã°ãªããï¾ãã¨ç½®ãæããï¼\Pkg{luaotfload} ã«ããå¦çï¼ï¼
-\item JFMã«ããã°ï¼ãã®ãï¾ãã®ã°ãªãã®æåã¯ã©ã¹ã¯2000ã§ããï¼
-\item 以ä¸ã«ããæåã¯ã©ã¹2000ã¨ã¿ãªãããããï¼çµæã¨ãã¦ãï¾ãã®å¹
ã¯åè§ã ã¨èªèãããï¼
-\end{enumerate}
-ãã®ä¾ã¯ï¼\emph{æåã¯ã©ã¹ã®æ±ºå®ã¯font featureã®é©ç¨ã«ããã°ãªãç½®æã®çµæã«åºã¥ã}ãã¨ã
-示ãã¦ããï¼
+以ä¸ã¯ \cs{ltjsetparameter} ã«æå®ãããã¨ãã§ãããã©ã¡ã¼ã¿ã®ä¸è¦§ã§ããï¼
+[\cs{cs}]ã¯\pTeX ã«ããã対å¿ç©ã示ãï¼
+ã¾ãï¼ããããã®ãã©ã¡ã¼ã¿ã®å³ä¸ã®è¨å·ã«ã¯æ¬¡ã®æå³ãããï¼
%
-
+\begin{itemize}
%<*en>
-However, if the class determined by the glyph after application of features is zero,
-\LuaTeX-ja adopts the class determined by the glyph \emph{before} application of features.
-The following input is an example.
+\item ``$\ast$'' : values at the end of a paragraph or a hbox are
+adopted in the whole paragraph or the whole hbox.
%
%<*ja>
-ä½ãï¼JFMã«ãã£ã¦æ±ºã¾ãç½®æå¾ã®ã°ãªãã®æåã¯ã©ã¹ã0ã§ããå ´åã¯ï¼ç½®æåã®æåã¯ã©ã¹ãæ¡ç¨ããï¼
+\item ``$\ast$''ï¼æ®µè½ãhboxã®çµç«¯ã§ã®å¤ããã®æ®µè½ï¼hboxå
¨ä½ã§ç¨ããããï¼
%
-\begin{LTXexample}[width=0.3\textwidth]
-\jfont\a=file:KozMinPr6N-Regular.otf:jfm=test;+vert
-\a æ¼¢ã\inhibitglue æ¼¢
-\end{LTXexample}
%<*en>
-Here, the character class of the ideographic full stop ``ã''~(\texttt{U+3002}) is determined
-as follows:
-\begin{enumerate}
-\item As the case of ``ã'', the ideographic full stop ``ã'' is converted to its vertical
- form ``\char"FE12''~(\texttt{U+FE12}) by \verb+vert+ feature.%"
-\item The character class of ``\char"FE12'', according to the JFM is \emph{zero}.
-\item However, \LuaTeX-ja remembers that this ``\char"FE12'' is obtained from ``ã'' by
- font features. The character class of ``ã'' is \emph{non-zero value}, namely, 2000.
-\item Hence the ideographic full stop ``ã'' in above belongs the character class~2000.
-\end{enumerate}
+\item ``\dagger'': assignments are always global.
%
%<*ja>
-ããã§ï¼å¥ç¹ããã(\texttt{U+3002})ã®æåã¯ã©ã¹ã¯ï¼ä»¥ä¸ã®ããã«ãã¦æ±ºã¾ãï¼
-\begin{enumerate}
-\item \Pkg{luaotfload} ã«ãã£ã¦ç¸¦çµç¨å¥ç¹ã®ã°ãªãã«ç½®ãæããï¼
-\item ç½®æå¾ã®ã°ãªã㯠\texttt{U+FE12} ã§ããï¼JFMã«å¾ãã°æåã¯ã©ã¹ã¯\emph{0}ã¨å¤å®ãããï¼
-\item ãã®å ´åï¼ç½®æåã®æ¨ªçµç¨å¥ç¹ã®ã°ãªãã«ãã£ã¦æåã¯ã©ã¹ãå¤å®ããï¼
-\item çµæã¨ãã¦ï¼ä¸ã®åºåä¾ä¸ã®å¥ç¹ã®æåã¯ã©ã¹ã¯2000ã¨ãªãï¼
-\end{enumerate}
+\item ``\dagger''ï¼æå®ã¯å¸¸ã«ã°ãã¼ãã«ã«ãªãï¼
%
+\end{itemize}
+\begin{cslist}[style=standard]
+\item[\DParam{jcharwidowpenalty}\,=$^\ast$] [\cs{jcharwidowpenalty}]\
-%\paragraph{ä»®æ³çãªæå}
-%\paragraph{Imaginary characters}
%<*en>
-As described before, you can specify several \emph{imaginary characters} in
-\texttt{chars} field. The most of these characters are regarded as the
-characters of class 0 in \pTeX.
-As a result, \LuaTeX-ja can control typesetting finer than \pTeX.
-The following is the list of imaginary characters:
+Penalty value for suppressing orphans. This penalty is inserted just
+ after the last \textbf{JAchar} which is not regarded as a
+ (Japanese) punctuation mark.
%
%<*ja>
-ä¸ã§èª¬æããéãï¼\texttt{chars}ãã£ã¼ã«ãä¸ã«ã¯ããã¤ãã®ãç¹æ®æåãã
-æå®å¯è½ã§ããï¼ãããã¯ï¼å¤§åã\pTeX ã®JFMã°ã«ã¼ã®æ¿å
¥å¦çã§ã¯ã¿ãªãæå
-ã¯ã©ã¹0ã®æåãã¨ãã¦æ±ããã¦ããæåã§ããï¼ãã®çµæã¨ãã¦\pTeX ããç´°ã
-ãçµç調æ´ãã§ããããã«ãªã£ã¦ããï¼ä»¥ä¸ã§ãã®ä¸è¦§ãè¿°ã¹ãï¼
+ãã©ã°ã©ãã®æå¾ã®åãå¤ç«ãã¦æ¹è¡ãããã®ãé²ãããã®ããã«ãã£ã®å¤ï¼
+ãã®ããã«ãã£ã¯ï¼æ¥æ¬èªã®ï¼å¥èªç¹ã¨ãã¦æ±ãããªãæå¾ã®\textbf{JAchar}ã®ç´å¾ã«
+æ¿å
¥ãããï¼
%
-\begin{cslist}
-%%\item['diffmet']
-%%Used at a boundary between two \textbf{JAchar}s whose JFM or size is different.
-%%JFMããµã¤ãºãç°ãªã2ã¤ã®\textbf{JAchar}ã®éã®å¢çã¨ãã¦ç¨ããããï¼
-
-\item['boxbdd']
-%The beginning/ending of a hbox, and the beginning of a noindented (i.e., began by \cs{noindent}) paragraph.
-%hboxã®å
é ã¨æ«å°¾ï¼åã³ã¤ã³ãã³ãããã¦ããªãï¼\cs{noindent} ã§éå§ãããï¼æ®µè½ã®å
é ã表ãï¼
-
-\item['parbdd']
-%The beginning of an (indented) paragraph.
-%é常ã®ï¼\cs{noindent} ã§éå§ããã¦ããªãï¼æ®µè½ã®å
é ï¼
-
-\item['jcharbdd']
-%A boundary between \textbf{JAchar} and anything else (such as \textbf{ALchar}, kern, glue,\,\ldots).
-%\textbf{JAchar}ã¨ããã®ä»ã®ãã®ãï¼æ¬§ææåï¼glueï¼kernçï¼ã¨ã®å¢çï¼
+\item[\DParam{kcatcode}\,=\{,\}$^\ast$]\
-\item[$-1$]
-%The left/right boundary of an inline math formula.
-%è¡ä¸æ°å¼ã¨å°ã®æã¨ã®å¢çï¼
-\end{cslist}
+%<*en>
+An additional attributes which each character whose character code is has.
+At version~20120506.0 or later, the lowermost bit of indicates
+ whether the character is considered as a punctuation mark
+ (see the description of \Param{jcharwidowpenalty} above).
+%
+%<*ja>
+æåã³ã¼ããã®æåãæã¤ä»å çãªå±æ§å¤ï¼
+ãã¼ã¸ã§ã³20120506.0以éã§ã¯ï¼ã®æä¸ä½ããããï¼ãã®æåãå¥èªç¹ã¨
+ã¿ãªããããã©ããã表ãã¦ããï¼ä¸ã®\Param{jcharwidowpenalty}ã®è¨è¿°ãåç
§ï¼ï¼
+%
-%\paragraph{Porting JFM from \pTeX}
-%\paragraph{\pTeX ç¨åæç¨TFMã®ç§»æ¤}
+\item[\DParam{prebreakpenalty}\,=\{,\}$^\ast$] [\cs{prebreakpenalty}]\
-% ToDo: English version.
+%<*ja>
+æåã³ã¼ãã®\textbf{JAchar}ãè¡é ã«ãããã¨ãææ¢ããããã«ï¼
+ ãã®æåã®åã«æ¿å
¥/追å ãããããã«ãã£ã®éãæå®ããï¼
-%<*en>
-See Japanese version of this manual.
-%
+ä¾ãã°éãæ¬å¼§ãããã¯çµ¶å¯¾ã«è¡é ã«ãã¦ã¯ãªããªãã®ã§ï¼
+\begin{lstlisting}
+\ltjsetparameter{prebreakpenalty={`ã,10000}}
+\end{lstlisting}
+ã¨ï¼æ大å¤ã®10000ãæ¨æºã§æå®ããã¦ããï¼ä»ã«ãï¼å°æ¸ãã®ã«ããªã©ï¼çµ¶å¯¾ç¦æ¢ã¨ã
+ ãããã§ã¯ãªããã§ããã°è¡é ã«ã¯ãã¦æ¬²ãããªãå ´åã«ï¼0ã¨
+ 10000ã®éã®å¤ãæå®ããã®ãæç¨ã§ãããï¼
-%<*ja>
-以ä¸ã«ï¼\pTeX ç¨ã«ä½ãããåæç¨TFMã\LuaTeX-jaç¨ã«ç§»æ¤ããå ´åã®æ³¨æç¹ãæãã¦ããï¼
-\begin{itemize}
-\item å®éã«åºåãããåæãã©ã³ãã®ãµã¤ãºãdesign sizeã¨ãªãï¼
-ãã®ããï¼ä¾ãã°$1\,\textrm{zw}$ãdesign sizeã®0.962216åã§ããJISãã©ã³
- ãã¡ããªãã¯çã移æ¤ããå ´åã¯ï¼æ¬¡ã®ããã«ããã¹ãã§ããï¼
+\pTeX ã§ã¯ï¼\cs{prebreakpenalty}, \cs{postbreakpenalty}ã«ããã¦ï¼
\begin{itemize}
-\item JFMä¸ã®å
¨ã¦ã®æ°å¤ã$1/0.962216$åãã¦ããï¼
-\item \TeX ã½ã¼ã¹ä¸ã§ä½¿ç¨ããã¨ããã§ï¼ãµã¤ãºæå®ã0.962216åã«ããï¼
- \LaTeX ã§ã®ãã©ã³ã宣è¨ãªãï¼ä¾ãã°æ¬¡ã®ããã«ï¼
+\item ä¸ã¤ã®æåã«å¯¾ãã¦ï¼pre, postã©ã¡ããä¸ã¤ããæå®ãããã¨ãã§ããªã%
+ \footnote{å¾ããæå®ããæ¹ã§ä¸æ¸ããããï¼}
+\item pre, poståããã¦256æååã®æ
å ±ãæ ¼ç´ãããã¨ããã§ããªã
+\end{itemize}
+ã¨ããå¶éããã£ããï¼\LuaTeX-jaã§ã¯ãããã®å¶éã¯è§£æ¶ããã¦ããï¼
+%
+%<*en>
+Set a penalty which is inserted automatically before the character ,
+to prevent a line starts from this character. For example, a line cannot started
+with one of closing brackets ``ã'', so \LuaTeX-ja sets
\begin{lstlisting}
-\DeclareFontShape{JY3}{mc}{m}{n}{<-> s*[0.962216] psft:Ryumin-Light:jfm=jis}{}
+\ltjsetparameter{prebreakpenalty={`ã,10000}}
\end{lstlisting}
-\end{itemize}
-\item ä¸ã«è¿°ã¹ãç¹æ®æåã¯ï¼\texttt{'boxbdd'}ãé¤ãæåã¯ã©ã¹ãå
¨é¨0ã¨ãã
- ï¼JFMä¸ã«åã«æ¸ããªããã°ããï¼ï¼
-\item \texttt{'boxbdd'}ã«ã¤ãã¦ã¯ï¼ããã®ã¿ã§ä¸ã¤ã®æåã¯ã©ã¹ãå½¢æãï¼ãã®
- æåã¯ã©ã¹ã«é¢ãã¦ã¯ã°ã«ã¼ï¼ã«ã¼ã³ã®è¨å®ã¯ããªãï¼
-
-ããã¯ï¼\pTeX ã§ã¯ï¼
- hboxã®å
é ã»æ«å°¾ã¨ã¤ã³ãã³ãããã¦ããªãï¼\cs{noindent} ã§éå§ã
- ããï¼æ®µè½ã®å
é ã«ã¯JFMã°ã«ã¼ã¯å
¥ããªãã¨ããä»æ§ãå®ç¾ãããããã§ããï¼
-\item \pTeX ã®çµçãåç¾ããããã¨ããã®ãç®çã§ããã°ä»¥ä¸ã®æ³¨æãå®ãã°ååã§ããï¼
-
-ã¨ããã§ï¼\pTeX ã§ã¯é常ã®æ®µè½ã®å
é ã«JFMã°ã«ã¼ãæ®ãã¨ããä»æ§ãããã®ã§ï¼
- 段è½å
é ã®éãæ¬å¼§ã¯å
¨è§äºåä¸ããã«ãªãï¼å
¨è§ä¸ãããå®ç¾ãããã«
- ã¯ï¼æ®µè½ã®æåã«æå㧠\cs{inhibitglue} ã追å ãããï¼ãããã¯
- \ \cs{everypar} ã®ããã¯ãè¡ãï¼ãããèªååããããããªãã£ãï¼
-
-ä¸æ¹ï¼\LuaTeX-jaã§ã¯ï¼\texttt{'parbdd'}ã«ãã£ã¦ï¼ãããJFMå´ã§èª¿æ´ã§ããã
-ãã«ãªã£ãï¼ä¾ãã°ï¼\LuaTeX-jaå梱ã®JFMã®ããã«ï¼\texttt{'boxbdd'}ã¨åãæåã¯ã©ã¹ã«
-\texttt{'parbdd'}ãå
¥ããã°å
¨è§ä¸ããã¨ãªãï¼
+by default.
-\begin{LTXexample}[width=0.4\textwidth]
-\jfont\g=KozMinPr6N-Regular:jfm=test \g
-\parindent1\zw\noindent{}âââââ
-\par ãâââäºåä¸ãã
-\par ãâââå
¨è§ä¸ãã
-\par ãâââå
¨è§äºåä¸ãã
-\end{LTXexample}
+\pTeX\ has following restrictions on \cs{prebreakpenalty} and \cs{postbreakpenalty},
+but they don't exist in \LuaTeX-ja:
+\begin{itemize}
+ \item Both \cs{prebreakpenalty} and \cs{postbreakpenalty} cannot be set
+for the same character.
+ \item We can set \cs{prebreakpenalty} and \cs{postbreakpenalty} up to 256~characters.
\end{itemize}
+%
-ä½ãï¼\cs{everypar} ãå©ç¨ãã¦ããå ´åã«ã¯ãã®ä»çµã¿ã¯æ£ããåããªãï¼
-ãã®ãããªä¾ã¨ãã¦ã¯ç®æ¡æ¸ãä¸ã® \cs{item} ã§å§ã¾ã段è½ãããï¼\Pkg{ltjsclasses}ã§ã¯
-人工çã«ã\texttt{'parbdd'}ã®æå³ãæã¤ãwhatsitãã¼ããä½ããã¨ã«ãã£ã¦å¯¾å¦ãã¦ãã%
-\footnote{\texttt{ltjsclasses.dtx} ãåç
§ããããï¼
-JFMå´ã§ä¸é¨ã®å¯¾å¦ãã§ãããã¨ã«ããï¼\Pkg{jsclasses}ã®ããã«ifæã®å¤å®ã¯ãã¦ããªãï¼}ï¼
+\item[\DParam{postbreakpenalty}\,=\{,\}$^\ast$]
+ [\cs{postbreakpenalty}]\
+
+%<*ja>
+æåã³ã¼ãã®\textbf{JAchar}ãè¡æ«ã«ãããã¨ãææ¢ããããã«ï¼
+ ãã®æåã®å¾ã«æ¿å
¥/追å ãããããã«ãã£ã®éãæå®ããï¼
%
+%<*en>
+Set a penalty which is inserted automatically after the character ,
+to prevent a line ends with this character.
+%
+\item[\DParam{jatextfont}\,=\{,\}$^\ast$]
+%[\cs{textfont} in \TeX]
+%[\TeX ã® \cs{textfont}]
+\item[\DParam{jascriptfont}\,=\{,\}$^\ast$]
+%[\cs{scriptfont} in \TeX]
+%[\TeX ã® \cs{scriptfont}]
+\item[\DParam{jascriptscriptfont}\,=\{,\}$^\ast$]
+%[\cs{scriptscriptfont} in \TeX]
+%[\TeX ã® \cs{scriptscriptfont}]
+\item[\DParam{yjabaselineshift}\,=]\
+\item[\DParam{yalbaselineshift}\,=] [\cs{ybaselineshift}]
+\item[\DParam{tjabaselineshift}\,=]\
+\item[\DParam{talbaselineshift}\,=] [\cs{tbaselineshift}]
-%\subsection{Math font family}
-%\subsection{æ°å¼ãã©ã³ããã¡ããª}
-\label{ssec-math}
+\item[\DParam{jaxspmode}\,=\{,\}$^\ast$]\
%<*en>
-\TeX\ handles fonts in math formulas by 16~font families\footnote{Omega,
-Aleph, \LuaTeX~and $\varepsilon$-\kern-.125em(u)\pTeX\ can handles 256~families, but
-an external package is needed to support this in plain \TeX\ and
-\LaTeX.}, and each family has three fonts:
-\cs{textfont}, \cs{scriptfont} and \cs{scriptscriptfont}.
+Set whether inserting \Param{xkanjiskip} is allowed before/after a \textbf{JAchar} whose character code is .
+The followings are allowed for :
%
%<*ja>
-\TeX\ ã¯æ°å¼ãã©ã³ãã16ã®ãã¡ããª\footnote{Omega, Aleph, \LuaTeXï¼ããã¦
- $\varepsilon$-\kern-.125em(u)\pTeX\ ã§ã¯256ã®æ°å¼ãã¡ããªãæ±ããã¨ãã§ãããï¼
- ããããµãã¼ãããããã«plain \TeX ã¨\LaTeX ã§ã¯å¤é¨ããã±ã¼ã¸ãèªã¿è¾¼ãå¿
è¦ã
- ããï¼}ã§ç®¡çãï¼ããããã®ãã¡ããªã¯3ã¤ã®ãã©ã³ããæã£ã¦ããï¼
-\cs{textfont}, \cs{scriptfont} ãã㦠\cs{scriptscriptfont} ã§ãã.
+æåã³ã¼ããã®\textbf{JAchar}ã®åï¼å¾ãã«\Param{xkanjiskip}ã®
+æ¿å
¥ã許ããã©ããã®è¨å®ï¼
+以ä¸ã®ã許ãããï¼
%
-
+\begin{description}
+%\item[0, \texttt{inhibit}] Insertion of \Param{xkanjiskip} is inhibited before the character, nor after the character.
+%\item[0, \texttt{inhibit}] \Param{xkanjiskip}ã®æ¿å
¥ã¯æåã®åï¼å¾ãã®ãããã§ãç¦æ¢ãããï¼
+%\item[1, \texttt{preonly}] Insertion of \Param{xkanjiskip} is allowed before the character, but not after.
+%\item[1, \texttt{preonly}] \Param{xkanjiskip}ã®æ¿å
¥ã¯æåã®åã§ã¯è¨±ããããï¼å¾ãã§ã¯è¨±ãããªãï¼
+%\item[2, \texttt{postonly}] Insertion of \Param{xkanjiskip} is allowed after the character, but not before.
+%\item[2, \texttt{postonly}] \Param{xkanjiskip}ã®æ¿å
¥ã¯æåã®å¾ãã§ã¯è¨±ããããï¼åã§ã¯è¨±ãããªãï¼
+%\item[3, \texttt{allow}] Insertion of \Param{xkanjiskip} is allowed both before the character and after the character. This is the default value.
+%\item[3, \texttt{allow}] \Param{xkanjiskip}ã®æ¿å
¥ã¯æåã®åï¼å¾ãã®ãããã§ã許ãããï¼ãããããã©ã«ãã®å¤ã§ããï¼
+\end{description}
%<*en>
-\LuaTeX-ja's handling of Japanese fonts in math formulas is similar;
-\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.
-Here in the argument of \Param{jatextfont} etc.\ is
-a control sequence which is defined by \cs{jfont}, i.e.,
-a \emph{horizontal} Japanese font.
+This parameter is similar to the \cs{inhibitxspcode} primitive of \pTeX, but not compatible with \cs{inhibitxspcode}.
%
%<*ja>
-\LuaTeX-jaã®æ°å¼ä¸ã§ã®åæãã©ã³ãã®æ±ããåæ§ã§ããï¼
-\autoref{tab-math}ã¯æ°å¼ãã©ã³ããã¡ããªã«å¯¾ãã \TeX ã®ããªããã£ãã¨å¯¾å¿ãã
-ãã®ã示ãã¦ããï¼\cs{fam} 㨠\cs{jfam} ã®å¤ã®éã«ã¯é¢ä¿ã¯ãªãï¼
-é©åãªè¨å®ã®ä¸ã§ã¯ \cs{fam} 㨠\cs{jfam} ã®ä¸¡æ¹ã«åãå¤ãè¨å®ãããã¨ãã§ããï¼
-\Param{jatextfont} ä»ã®ç¬¬2å¼æ°ã¯ï¼\cs{jfont} ã§å®ç¾©ããã
-\emph{横çµç¨}åæãã©ã³ãã§ããï¼\cs{tfont} ã§å®ç¾©ããã
-\emph{縦çµç¨}åæãã©ã³ããæå®ãããã¨ã¯æ³å®ãã¦ããªãï¼
+ãã®ãã©ã¡ã¼ã¿ã¯\pTeX ã® \cs{inhibitxspcode} ããªããã£ãã¨ä¼¼ã¦ãããï¼
+äºææ§ã¯ãªãï¼
%
-
-\begin{table}[!tb]
-%\caption{Commands for Japanese math fonts}
-%\caption{åææ°å¼ãã©ã³ãã«å¯¾ããå½ä»¤}
-\label{tab-math}
-%\medskip
-\centering
-\def\{{\char`\{}\def\}{\char`\}}\small
-\begin{tabular}{ll}
-\toprule
-%\bf Japanese fonts&\bf alphabetic fonts\\
-%\bf åæãã©ã³ã&\bf 欧æãã©ã³ã\\
-\midrule
-\cs{jfam}${}\in [0,256)$&\cs{fam}\\
-\tt\Param{jatextfont}\,=\{,\}&\tt\cs{textfont}=\\
-\tt\Param{jascriptfont}\,=\{,\}&\tt\cs{scriptfont}=\\
-\tt\Param{jascriptscriptfont}\,=\{,\}&\tt\cs{scriptscriptfont}=\\
-\bottomrule
-\end{tabular}
-\end{table}
-
-%\subsection{Callbacks}
-%\subsection{ã³ã¼ã«ããã¯}
+\item[\DParam{alxspmode}\,=\{,\}$^\ast$] [\cs{xspcode}]\
%<*en>
-\LuaTeX-ja also has several callbacks. These callbacks can
-be accessed via \verb+luatexbase.add_to_callback+ function and so on, as other callbacks.
+Set whether inserting \Param{xkanjiskip} is allowed before/after a
+ \textbf{ALchar} whose character code is .
+ The followings are allowed for :
%
%<*ja>
-\LuaTeX èªä½ã®ãã®ã«å ãã¦ï¼\LuaTeX-jaãã³ã¼ã«ããã¯ãæã£ã¦ããï¼
-ãããã®ã³ã¼ã«ããã¯ã«ã¯ï¼ä»ã®ã³ã¼ã«ããã¯ã¨åæ§ã« \verb+luatexbase.add_to_callback+
-é¢æ°ãªã©ãç¨ãããã¨ã§ã¢ã¯ã»ã¹ãããã¨ãã§ããï¼
+æåã³ã¼ããã®\textbf{ALchar}ã®åï¼å¾ãã«\Param{xkanjiskip}ã®
+æ¿å
¥ã許ããã©ããã®è¨å®ï¼
+以ä¸ã®ã許ãããï¼
%
-\begin{description}[font=\bfseries, style=nextline]
-%\item[\texttt{luatexja.load\_jfm} callback]
-%\item[\texttt{luatexja.load\_jfm}ã³ã¼ã«ããã¯]
+\begin{description}
+%\item[0, \texttt{inhibit}] Insertion of \Param{xkanjiskip} is inhibited before the character, nor after the character.
+%\item[0, \texttt{inhibit}] \Param{xkanjiskip}ã®æ¿å
¥ã¯æåã®åï¼å¾ãã®ãããã§ãç¦æ¢ãããï¼
+%\item[1, \texttt{preonly}] Insertion of \Param{xkanjiskip} is allowed before the character, but not after.
+%\item[1, \texttt{preonly}] \Param{xkanjiskip}ã®æ¿å
¥ã¯æåã®åã§ã¯è¨±ããããï¼å¾ãã§ã¯è¨±ãããªãï¼
+%\item[2, \texttt{postonly}] Insertion of \Param{xkanjiskip} is allowed after the character, but not before.
+%\item[2, \texttt{postonly}] \Param{xkanjiskip}ã®æ¿å
¥ã¯æåã®å¾ãã§ã¯è¨±ããããï¼åã§ã¯è¨±ãããªãï¼
+%\item[3, \texttt{allow}] Insertion of \Param{xkanjiskip} is allowed before the character and after the character. This is the default value.
+%\item[3, \texttt{allow}] \Param{xkanjiskip}ã®æ¿å
¥ã¯æåã®åï¼å¾ãã®ãããã§ã許ãããï¼ãããããã©ã«ãã®å¤ã§ããï¼
+\end{description}
%<*en>
-With this callback you can overwrite JFMs.
-This callback is called when a new JFM is loaded.
+Note that parameters \Param{jaxspmode} and \Param{alxspmode} share a common table, hence these two parameters are synonyms of each other.
%
%<*ja>
-ãã®ã³ã¼ã«ããã¯ãç¨ãããã¨ã§JFMãä¸æ¸ããããã¨ãã§ããï¼
-ãã®ã³ã¼ã«ããã¯ã¯æ°ããJFMãèªã¿è¾¼ã¾ããã¨ãã«å¼ã³åºãããï¼
+\Param{jaxspmode}ã¨\Param{alxspmode}ã¯å
±éã®ãã¼ãã«ãç¨ãã¦ããããï¼
+ããã2ã¤ã®ãã©ã¡ã¼ã¿ã¯äºãã®å¥åã¨ãªã£ã¦ãããã¨ã«æ³¨æããï¼
%
-\begin{lstlisting}[numbers=left]
-function ( jfm_info, jfm_name)
- return new_jfm_info
-end
-\end{lstlisting}
+\item[\DParam{autospacing}\,=] [\cs{autospacing}]
+\item[\DParam{autoxspacing}\,=] [\cs{autoxspacing}]
+\item[\DParam{kanjiskip}\,=$^\ast$] [\cs{kanjiskip}]\
+%<*ja>
+ããã©ã«ãã§2ã¤ã®\textbf{JAchar}ã®éã«æ¿å
¥ãããã°ã«ã¼ã§ããï¼
+é常ã§ã¯ï¼\pTeX ã¨åãããã«ãã©ã³ããµã¤ãºã«æ¯ä¾ãã¦å¤ãããã¨ã¯ãªãï¼
+ãããï¼èªç¶é·ã \cs{maxdimen} ã®å ´åã¯ï¼ä¾å¤çã«åæãã©ã³ãã®JFMå´ã§æå®ããã¦ãã
+å¤ãæ¡ç¨ï¼ãã¡ãã¯ãã©ã³ããµã¤ãºã«æ¯ä¾ï¼ãããã¨ã«ãªã£ã¦ããï¼
+%
%<*en>
-The argument \verb+jfm_info+ contains a table similar to the table in a JFM file, except
-this argument has \texttt{chars} field which contains character codes
- whose character class is not~0.
+The default glue which inserted between two \textbf{JAchar}s.
+Changing current Japanese font does not alter this parameter, as \pTeX.
+
+If the natural width of this parameter is \cs{maxdimen}, \LuaTeX-ja uses
+the value which is specified in the JFM for current Japanese font (See Subsection~\ref{ssec:jfm-str}).
%
+
+\item[\DParam{xkanjiskip}\,=$^\ast$] [\cs{xkanjiskip}]\
+
%<*ja>
-å¼æ° \verb+jfm_info+ ã¯JFMãã¡ã¤ã«ã®ãã¼ãã«ã¨ä¼¼ããã®ãæ ¼ç´ããããï¼
-ã¯ã©ã¹0ãé¤ããæåã®ã³ã¼ããå«ãã \texttt{chars}ãã£ã¼ã«ããæã¤ç¹ãç°ãªãï¼
+ããã©ã«ãã§\textbf{JAchar}ã¨\textbf{ALchar}ã®éã«æ¿å
¥ãããã°ã«ã¼ã§ããï¼
+\Param{kanjiskip}ã¨åãããã«ï¼é常ã§ã¯ãã©ã³ããµã¤ãºã«æ¯ä¾ãã¦å¤ãããã¨ã¯ãªããï¼
+èªç¶é·ã \cs{maxdimen} ã®å ´åãä¾å¤ã§ããï¼
%
+%<*en>
+The default glue which inserted between a \textbf{JAchar} and an
+ \textbf{ALchar}.
+Changing current font does not alter this parameter, as \pTeX.
+
+As \Param{kanjiskip}, if the natural width of this parameter is \cs{maxdimen}, \LuaTeX-ja uses
+the value which is specified in the JFM for current Japanese font (See Subsection~\ref{ssec:jfm-str}).
+%
+
+
+\item[\DParam{differentjfm}\,=$^\dagger$]\
%<*en>
-An example of this callback is the \texttt{ltjarticle} class, with
- forcefully assigning character class~0 to \texttt{'parbdd'}
- in the JFM \texttt{jfm-min.lua}.
+Specify how glues/kerns between two \textbf{JAchar}s whose JFM (or size) are different.
+The allowed arguments are the followings:
%
%<*ja>
-ãã®ã³ã¼ã«ããã¯ã®ä½¿ç¨ä¾ã¯\texttt{ltjarticle}ã¯ã©ã¹ã«ããï¼
-\texttt{jfm-min.lua}ä¸ã®\texttt{'parbdd'}ãå¼·å¶çã«ã¯ã©ã¹0ã«å²ãå½ã¦ã¦ããï¼
+JFMï¼ãããã¯ãµã¤ãºï¼ãç°ãªã2ã¤ã®\textbf{JAchar}ã®éã«ã°ã«ã¼ï¼ã«ã¼ã³ãã©ã®ããã«
+å
¥ããããæå®ããï¼
+許ãããå¤ã¯ä»¥ä¸ã®éãï¼
+%
+\begin{quote}
+\texttt{average},
+\texttt{both},
+\texttt{large},
+\texttt{small},
+\texttt{pleft},
+\texttt{pright},
+\texttt{paverage}
+\end{quote}
+%<*en>
+The default value is \texttt{paverage}. \dots
+%
+%<*ja>
+ããã©ã«ãå¤ã¯ \texttt{paverage} ã§ããï¼
+åã
ã®å¤ã«ããå·®ç°ã®è©³ç´°ã¯\ref{ssec:cluster-wa}ç¯ã®ããå³ç©ºç½ãã®ç®åºããåç
§ãã¦ã»ããï¼
%
-%\item[\texttt{luatexja.define\_jfont} callback]
-%\item[\texttt{luatexja.define\_jfont}ã³ã¼ã«ããã¯]
+\item[\DParam{jacharrange}\,=]
+\item[\DParam{kansujichar}\,=\{, \}$^\ast$] [\cs{kansujichar}]
+
+\item[\DParam{direction}\,=\ \hbox{\rm (always local)}]\
+
%<*en>
-This callback and the next callback form a pair, and you can assign characters
- which do not have fixed code points in Unicode to non-zero character classes.
-This \texttt{luatexja.define\_font} callback is called just when new Japanese font is loaded.
+Assigning to this parameter has the same effect as
+\cs{yoko}~(if $\hbox{}=4$), \cs{tate}~(if $\hbox{}=3$),
+\cs{dtou}~(if $\hbox{}=1$) or \cs{utod}~(if $\hbox{}=11$).
+If the argument is not one of 4,~3, 1~nor~11,
+the behavior of this assignment is undefined.
%
%<*ja>
-ãã®ã³ã¼ã«ããã¯ã¨æ¬¡ã®ã³ã¼ã«ããã¯ã¯çµããªãã¦ããï¼Unicodeä¸ã«åºå®ãããæåã³ã¼ã
-çªå·ãæããªãæåãéé¶ã®æåã¯ã©ã¹ã«å²ãå½ã¦ããã¨ãã§ããï¼
-ãã®ã³ã¼ã«ããã¯ã¯æ°ããåæãã©ã³ããèªã¿è¾¼ã¾ããã¨ãã«å¼ã³åºãããï¼
+çµæ¹åãå¤æ´ãã \cs{yoko}~(if $\hbox{}=4$), \cs{tate}~(if $\hbox{}=3$),
+\cs{dtou}~(if $\hbox{}=1$), \cs{utod}~(if $\hbox{}=11$) ã¨åãå½¹å²ãæã¤ï¼
+å©ç¨å¯è½ãªç¶æ³ãããã4å½ä»¤ã¨åä¸ã§ããï¼å¼æ°ã4,~3, 1,~11ã®ãããã§ãç¡ãã¨ãã®
+åä½ã¯æªå®ç¾©ã§ããï¼
%
-\begin{lstlisting}[numbers=left]
-function ( jfont_info, font_number)
- return new_jfont_info
-end
-\end{lstlisting}
-%<*en>
-\verb+jfont_info+ has the following fields,
-\emph{which may not overwritten by a user}:
-\begin{description}
-\item[\texttt{size}]
-The font size specified at \cs{jfont} in scaled points ($1\,\mathrm{sp}=2^{-16}\,\mathrm{pt}$).
-\item[\texttt{zw}, \texttt{zh}, \texttt{kanjiskip}, \texttt{xkanjiskip}]
-These are scaled value of those specified by the JFM, by the font size.
-\item[\texttt{jfm}]
-The internal number of the JFM.
-\item[\texttt{var}]
-The value of \texttt{jfmvar}~key, which is specified at \cs{jfont}.
-The default value is the empty string.
-\item[\texttt{chars}]
-The mapping table from character codes to its character classes.\\
-The specification \texttt{[i].chars=\{, ...\}} in the JFM will be stored in this
- field as \texttt{chars=\{[]=\,$i$, ...\}}.
-\item[\texttt{char\_type}]
-For $i\in\omega$, \texttt{char\_type[$i$]} is information of characters whose class is
- $i$, and has the following fields:
-\begin{itemize}
- \item \texttt{width},~\texttt{height}, \texttt{depth},
- \texttt{italic}, \texttt{down},~\texttt{left}\ are just
- scaled value of those specified by the JFM, by the font size.
- \item \texttt{align} is a number which is determined from \texttt{align}~field in the JFM:
-\[
- \begin{cases}
- 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$.
+\end{cslist}
-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}
-\end{description}
+
+\subsection{\cs{ltjgetparameter}}
+\label{ssec:getpar}
+%<*en>
+\cs{ltjgetparameter} is a control sequence for acquiring parameters. It
+always takes a parameter name as first argument.
%
%<*ja>
-\verb+jfont_info+ ã¯æä½é以ä¸ã®ãã£ã¼ã«ããæã¤ãï¼ããããæ¸ãæãã¦ã¯ãªããªãï¼
-\begin{cslist}
-\item[size]
-å®éã«ä½¿ããããã©ã³ããµã¤ãºï¼spåä½ï¼ï¼$1\,\mathrm{sp}=2^{-16}\,\mathrm{pt}$ï¼
-\item[zw\textrm{, }zh\textrm{, }kanjiskip\textrm{, }xkanjiskip]
-JFMãã¡ã¤ã«ã§æå®ããã¦ããããããã®å¤ããã©ã³ããµã¤ãºã«åããã¦ã¹ã±ã¼ãªã³ã°ãããã®ã
-spåä½ã§æ ¼ç´ãã¦ããï¼
-\item[jfm]
-å©ç¨ããã¦ããJFMãèå¥ããããã®çªå·ï¼
-\item[var]
-\cs{jfont},~\cs{tfont} ã§æå®ããã \texttt{jfmvar} ãã¼ã®å¤ï¼æªæå®ã®ã¨ãã¯ç©ºæååï¼ï¼
-\item[chars]
-æåã³ã¼ãããæåã¯ã©ã¹ã¸ã®å¯¾å¿ãè¨è¿°ããããã¼ãã«ï¼\\
-JFMå
ã® \texttt{[i].chars=\{, ...\}} ã¨ããæå®ã¯\
-\texttt{chars=\{[]=\,$i$, ...\}} ã¨ããå½¢å¼ã«å¤æããã¦ããï¼
-\item[char\_type]
-$i\in\omega$ã«å¯¾ãã¦ï¼\texttt{char\_type[$i$]} ã¯æåã¯ã©ã¹$i$ã®æåã®å¯¸æ³ãæ ¼ç´ãã¦ããï¼
-以ä¸ã®ãã£ã¼ã«ããæã¤ï¼
-\begin{itemize}
- \item \texttt{width},~\texttt{height}, \texttt{depth},
- \texttt{italic}, \texttt{down},~\texttt{left}\ ã¯
-JFMã§æå®ããã¦ããããããã®å¤ãã¹ã±ã¼ãªã³ã°ãããã®ã§ããï¼
- \item \texttt{align} ã¯JFMã§æå®ããã¦ããå¤ã«ãã£ã¦ï¼
-\[
- \begin{cases}
- 0&\text{\texttt{'left'}ãçç¥æ}\\0.5&\text{\tt 'middle'}\\1&\text{\tt 'right'}
- \end{cases}
-\]
-ã®ããããã®å¤ãã¨ãï¼
-\item $j\in \omega$ã«å¯¾ãã¦ï¼\texttt{[$j$]} ã¯æåã¯ã©ã¹$i$ã®æåã¨$j$ã®æåã®éã«æ¿å
¥ãããkern
- ãglueãæ ¼ç´ãã¦ããï¼
-éã«å
¥ããã®ãkernã§ããã°ï¼ãã®ãã£ã¼ã«ãã®å¤ã¯\
-\texttt{[$j$]=\{false, , \}} ã§ããï¼
-ã¯kernã表ããã¼ããã®ãã®ã§ãã\footnote{%
-æ¬ãã¼ã¸ã§ã³ã§ã¯ãã¼ãã®ã¢ã¯ã»ã¹ææ³ã«direct access
- modelãç¨ãã¦ããï¼ãã®ããï¼ä¾ãã°\LuaTeX\ beta-0.78.2ã§ã¯ï¼åãªãèªç¶æ°ã®ããã«ã
- ãè¦ããªããã¨ã«æ³¨æï¼
-}ï¼
-glueã§ããã°ï¼\texttt{[$j$]=\{false, , , \}} ã§ããï¼
-ã¯glueã®é·ãã表ããã¼ããã®ãã®ã§ããï¼
- $\text{}=\textit{from\_jfm}+\text{}$ã§ããï¼
-\end{itemize}
-\item[ascent\textrm{, }descent]
-â¦â¦
-\item[chars\_cbcache]
-â¦â¦
-\end{cslist}
+\cs{ltjgetparameter} ã¯ãã©ã¡ã¼ã¿ã®å¤ãåå¾ããããã®å½ä»¤ã§ããï¼
+常ã«ãã©ã¡ã¼ã¿ã®ååã第ä¸å¼æ°ã«ã¨ãï¼
%
+\begin{LTXexample}
+\ltjgetparameter{differentjfm},
+\ltjgetparameter{autospacing},
+\ltjgetparameter{kanjiskip},
+\ltjgetparameter{prebreakpenalty}{`ï¼}.
+\end{LTXexample}
%<*en>
-The returned table \verb+new_jfont_info+ also should include these fields, but
-you are free to add more fields (to use them in the \texttt{luatexja.find\_char\_class} callback).
-The \verb+font_number+ is a font number.
+\emph{The return value of\/ \cs{ltjgetparameter} is
+always a string}, which is outputted by \texttt{tex.write()}.
+Hence any character other than space~``\texttt{\char32}''~(\texttt{U+0020}) has the category code
+12~(other), while the space has 10~(space).
%
%<*ja>
-æ»ãå¤ã® \verb+new_jfont_info+ ãã¼ãã«ãä¸ã«è¿°ã¹ããã£ã¼ã«ãããã®ã¾ã¾å«ã¾ãªããã°ãªããªããï¼
-ãã以å¤ã«ã¦ã¼ã¶ãåæã«ãã£ã¼ã«ããä»ãå ãããã¨ã¯èªç±ã§ããï¼
-\verb+font_number+ ã¯ãã©ã³ãçªå·ã§ããï¼
+\emph{\cs{ltjgetparameter} ã®æ»ãå¤ã¯å¸¸ã«æååã§ããï¼}
+ããã¯\texttt{tex.write()}ã«ãã£ã¦åºåãã¦ããããã§ï¼ç©ºç½ã\texttt{\char32}ã
+(\texttt{U+0020})ãé¤ããæåã®ã«ãã´ãªã¼ã³ã¼ãã¯å
¨ã¦12~(other)ã¨ãªãï¼
+ä¸æ¹ï¼ç©ºç½ã®ã«ãã´ãªã¼ã³ã¼ãã¯10~(space)ã§ããï¼
%
+\begin{itemize}
+\item
%<*en>
-A good example of this and the next callbacks is the \Pkg{luatexja-otf}
- package, supporting \verb+"AJ1-xxx"+ form for Adobe-Japan1
- CID characters in a JFM. This callback doesn't replace any
- code of \LuaTeX-ja.
+If first argument is one of the
+following, no additional argument is needed.
%
%<*ja>
-ããã¨æ¬¡ã®ã³ã¼ã«ããã¯ã®è¯ã使ç¨ä¾ã¯\Pkg{luatexja-otf}ããã±ã¼ã¸ã§ããï¼
-JFMä¸ã§Adobe-Japan1 CIDã®æåã \verb+"AJ1-xxx"+ ã®å½¢ã§æå®ããããã«
-ç¨ãããã¦ããï¼
+第1å¼æ°ã次ã®ããããã®å ´åã«ã¯ï¼è¿½å ã®å¼æ°ã¯å¿
è¦ãªãï¼
%
-
-%\item[\texttt{luatexja.find\_char\_class} callback]
-%\item[\texttt{luatexja.find\_char\_class}ã³ã¼ã«ããã¯]
+\begin{quote}
+\sffamily
+jcharwidowpenalty, yjabaselineshift, yalbaselineshift, autospacing, autoxspacing,\\
+kanjiskip, xkanjiskip, differentjfm, direction
+\end{quote}
%<*en>
-This callback is called just when \LuaTeX-ja is trying to determine which
- character class a character \verb+chr_code+ belongs.
-A function used in this callback should be in the following form:
+Note that \verb+\ltjgetparameter{autospacing}+~and~\verb+\ltjgetparameter{autoxspacing}+
+returns 1 or 0, not
+\texttt{true}~nor~\texttt{false}.
%
%<*ja>
-ãã®ã³ã¼ã«ããã¯ã¯\LuaTeX-jaã \verb+chr_code+ ã®æåãã©ã®æåã¯ã©ã¹ã«
-å±ãããã決å®ãããã¨ããéã«å¼ã³åºãããï¼
-ãã®ã³ã¼ã«ããã¯ã§å¼ã³åºãããé¢æ°ã¯æ¬¡ã®å½¢ããã¦ããªããã°ãªããªãï¼
+\verb+\ltjgetparameter{autospacing}+ 㨠\verb+\ltjgetparameter{autoxspacing}+ ã¯ï¼
+\texttt{true}ã\texttt{false}ãè¿ãã®\emph{ã§ã¯ãªã}ï¼
+1ã0ã®ãããããè¿ããã¨ã«æ³¨æï¼
%
-\begin{lstlisting}[numbers=left]
-function ( char_class, jfont_info, chr_code)
- if char_class~=0 then return char_class
- else
- ....
- return ( new_char_class or 0)
- end
-end
-\end{lstlisting}
+\item
%<*en>
-The argument \verb+char_class+ is the result of \LuaTeX-ja's default
- routine or previous function calls in this callback, hence
- this argument may not be 0. Moreover, the returned
- \verb+new_char_class+ should be as same as \verb+char_class+ when \verb+char_class+
- is not~0, otherwise you will overwrite the \LuaTeX-ja's
- default routine.
+If first argument is one of the
+following, an additional argument---a character code, for example---is needed.
%
%<*ja>
-å¼æ° \verb+char_class+ ã¯\LuaTeX-jaã®ããã©ã«ãã«ã¼ãã³ãï¼ãã®ã³ã¼ã«ããã¯ã®
-ç´åã®é¢æ°å¼ã³åºãã®çµæãå«ãã§ããï¼ãããã£ã¦ãã®å¤ã¯0ã§ã¯ãªããããããªãï¼
-ããã«ï¼æ»ãå¤ã® \verb+new_char_class+ 㯠\verb+char_class+ ãéé¶ã®ã¨ãã«ã¯
-\verb+char_class+ ã®å¤ã¨åãã§ããã¹ãã§ï¼ããã§ãªãã¨ãã¯\LuaTeX-jaã®
-ããã©ã«ãã«ã¼ãã³ãæ¸ãæãããã¨ã«ãªãï¼
+第1å¼æ°ã次ã®ããããã®å ´åã«ã¯ï¼ããã«æåã³ã¼ãã第2å¼æ°ã¨ãã¦ã¨ãï¼
%
-
-%\item[\texttt{luatexja.set\_width} callback]
-%\item[\texttt{luatexja.set\_width}ã³ã¼ã«ããã¯]
+\begin{quote}
+\sffamily
+kcatcode, prebreakpenalty, postbreakpenalty, jaxspmode, alxspmode
+\end{quote}
%<*en>
-This callback is called when \LuaTeX-ja is trying to encapsule a
- \textbf{JAchar} \textit{glyph\_node}, to adjust its
- dimension and position.
+\verb+\ltjgetparameter{jaxspmode}{...}+~and~\verb+\ltjgetparameter{alxspmode}{...}+
+returns 0,~1, 2,~or~3, instead of \texttt{preonly} etc.
%
%<*ja>
-ãã®ã³ã¼ã«ããã¯ã¯\LuaTeX-jaã\textbf{JAchar}ã®å¯¸æ³ã¨ä½ç½®ã調ç¯ããããã«
-ãã®\textit{glyph\_node}ãã«ãã»ã«åãããã¨ããéã«å¼ã³åºãããï¼
+\verb+\ltjgetparameter{jaxspmode}{...}+ ã \verb+\ltjgetparameter{alxspmode}{...}+\
+ã¯ï¼\texttt{preonly} ãªã©ã¨ãã£ãæååã§ã¯ãªãï¼0ãã3ã¾ã§ã®å¤ãè¿ãï¼
%
-\begin{lstlisting}[numbers=left]
-function ( shift_info, jfont_info, char_type)
- return new_shift_info
-end
-\end{lstlisting}
+\item
%<*en>
-The argument \verb+shift_info+ and the returned \verb+new_shift_info+ have
-\texttt{down} and \texttt{left} fields, which are the amount of shifting
- down/left the character in a scaled point.
+\verb+\ltjgetparameter{jacharrange}{+\verb+}+ returns \texttt{0}
+if ``characters which belong to the character range~ are \textbf{JAchar}'',
+\texttt{1} if ``\dots~are \textbf{ALchar}''.
+Although there is no character range~$-1$, specifying $-1$ to does not cause an
+ error (returns 1).
%
%<*ja>
-å¼æ° \verb+shift_info+ ã¨æ»ãå¤ã® \verb+new_shift_info+ ã¯
-\texttt{down}ã¨\texttt{left}ã®ãã£ã¼ã«ããæã¡ï¼ãããã®å¤ã¯
-æåã®ä¸ï¼å·¦ã¸ã®ã·ããéï¼spåä½ï¼ã§ããï¼
+\verb+\ltjgetparameter{jacharrange}{+\verb+}+ ã¯ï¼ã\textbf{JAchar}éã®
+ç¯å²ãªãã°0ãï¼ããã§ãªããã°1ãè¿ãï¼ã$-1$çªã®æåç¯å²ãã¯åå¨ããªããï¼ã«$-1$ã
+æå®ãã¦ãã¨ã©ã¼ã¯çºçããªãï¼1ãè¿ãï¼ï¼
%
+\item
%<*en>
-A good example is \Pkg{test/valign.lua}.
-After loading this file, the vertical position of glyphs is automatically
-adjusted; the ratio $(\hbox{height}:\hbox{depth})$ of glyphs is adjusted
-to be that of letters in the character class~0. For example, suppose that
-\begin{itemize}
-\item The setting of the JFM: $(\hbox{height})=88x$, $(\hbox{depth})=12x$
- (the standard values of Japanese OpenType fonts);
-\item The value of the real font: $(\hbox{height})=28y$, $(\hbox{depth})=5y$
- (the standard values of Japanese TrueType fonts).
-\end{itemize}
-Then, the position of glyphs is shifted up by
+For an integer~ between 0~and~9,
+ \verb+\ltjgetparameter{kansujichar}{+\verb+}+ returns the character code
+of the result of \cs{kansuji}.
%
%<*ja>
-è¯ãä¾ã\Pkg{test/valign.lua}ã§ããï¼ãã®ãã¡ã¤ã«ãèªã¿è¾¼ã¾ããç¶æ
ã§ã¯ï¼
- JFMå
ã§è¦å®ãããæåã¯ã©ã¹0ã®æåã«ããã$(\hbox{é«
- ã}):(\hbox{æ·±ã})$ã®æ¯ã«ãªãããã«ï¼å®éã®ãã©ã³ãã®åºåä¸
- ä¸ä½ç½®ãèªå調æ´ãããï¼ä¾ãã°ï¼
-\begin{itemize}
-\item JFMå´ã®è¨å®ï¼$(\hbox{é«ã})=88x$, $(\hbox{æ·±ã})=12x$%
-ï¼åæOpenTypeãã©ã³ãã®æ¨æºå¤ï¼
-\item å®ãã©ã³ãå´ã®æ°å¤ï¼$(\hbox{é«ã})=28y$, $(\hbox{æ·±ã})=5y$ï¼åæTrueTypeãã©ã³ãã®æ¨æºå¤ï¼
-\end{itemize}
-ã¨ãªã£ã¦ããã¨ããï¼ããã¨ï¼å®éã®æåã®åºåä½ç½®ã¯ï¼ä»¥ä¸ã®éã ãä¸ã«ããããããã¨ã¨ãªãï¼
+0--9ã®æ°ã«å¯¾ãã¦ï¼
+\verb+\ltjgetparameter{kansujichar}{+\verb+}+ ã¯ï¼\cs{kansuji}ã§åºåãã
+ ãæåã®æåã³ã¼ããè¿ãï¼
%
-\[
- \frac{88x}{88x+12x} (28y+5y) - 28y = \frac{26}{25}y= 1.04y.
-\]
-\end{description}
-
+\item
+%<*en>
+\verb+\ltjgetparameter{adjustdir}+ returns a integer which represents
+the direction of the surrounding vertical list.
+As \Param{direction}, the return value 1 means \emph{down-to-up} direction,
+3 means \emph{tate} direction (vertical typesetting),
+and 4 means \emph{yoko} direction (horizontal typesetting).
+%
+%<*ja>
+\verb+\ltjgetparameter{adjustdir}+ ã¯ï¼å¨å²ã®vboxã®çµæ¹åï¼è¨ãæããã°ï¼
+\cs{vadjust} ã§ç¨ããããçµæ¹åï¼ã表ãæ°å¤ãè¿ãï¼
+\Param{direction}ã¨åæ§ã«ï¼1㯠\cs{dtou} æ¹åãï¼
+3ã¯ç¸¦çµã¿ãï¼4ã¯æ¨ªçµã¿ã表ãï¼
+%
-%\section{Parameters}
-%\section{ãã©ã¡ã¼ã¿}
-\subsection{\cs{ltjsetparameter}}
-\label{ssec-param}
-
+\item
%<*en>
-As described before, \cs{ltjsetparameter} and \cs{ltjgetparameter} are
-commands for accessing most parameters of \LuaTeX-ja. One of the main
-reason that \LuaTeX-ja didn't adopted the syntax similar to that of \pTeX\
-(\textit{e.g.},~\verb+\prebreakpenalty`ï¼=10000+)
-is the position of \verb+hpack_filter+ callback in the source
-of \LuaTeX, see Section~\ref{sec-para}.
+For an integer~ between 0~and~65535,
+\verb+\ltjgetparameter{boxdim}{+\verb+}+ returns the direction of
+\cs{box}. If this box register is void, the returned value is zero.
%
%<*ja>
-å
ã«è¿°ã¹ãããã«ï¼\LuaTeX-jaã®å
é¨ãã©ã¡ã¼ã¿ã«ã¢ã¯ã»ã¹ããã«ã¯
-\cs{ltjsetparameter}ï¼ã¾ã㯠\cs{ltjglobalsetparameter}ï¼ã¨ \cs{ltjgetparameter} ãç¨ããï¼
-\LuaTeX-jaã\pTeX ã®ãããªææ³ï¼ä¾ãã°ï¼\verb+\prebreakpenalty`ï¼=10000+ï¼ã
-æ¡ç¨ããªãçç±ã®ä¸ã¤ã¯ï¼\LuaTeX ã®ã½ã¼ã¹ã«ããã \verb+hpack_filter+
-ã³ã¼ã«ããã¯ã®ä½ç½®ã«ããï¼\ref{sec-para}ç« ãåç
§ï¼
+0--65535ã®æ°ã«å¯¾ãã¦ï¼
+\verb+\ltjgetparameter{boxdim}{+\verb+}+ ã¯ï¼\cs{box}ã«
+æ ¼ç´ããã¦ããããã¯ã¹ã®çµæ¹åã表ãï¼ãããã®ã¬ã¸ã¹ã¿ã空ã®å ´åã¯ï¼0ãè¿ãããï¼
%
+\item
%<*en>
-\cs{ltjsetparameter} and \cs{ltjglobalsetparameter} are commands
-for assigning parameters. These take one argument which is a
-\texttt{=} list.
-The difference between these two commands is the
-scope of assignment;
-\cs{ltjsetparameter} does a local assignment and
-\cs{ltjglobalsetparameter} does a global one.
-They also obey the value of \cs{globaldefs}, like other assignments.
+The following parameter names \emph{cannot be specified} in \cs{ltjgetparameter}.
%
%<*ja>
-\cs{ltjsetparameter} 㨠\cs{ltjglobalsetparameter} ã¯ãã©ã¡ã¼ã¿ã
-æå®ããããã®å½ä»¤ã§ï¼\texttt{=}ã®ãªã¹ãã
-å¼æ°ã¨ãã¦ã¨ãï¼ä¸¡è
ã®éãã¯ã¹ã³ã¼ãã§ããï¼
-\cs{ltjsetparameter} ã¯ãã¼ã«ã«ãªè¨å®ãè¡ãã®ã«å¯¾ãï¼
-\cs{ltjglobalsetparameter} ã¯ã°ãã¼ãã«ãªè¨å®ãè¡ãï¼
-ã¾ãï¼ä»ã®ãã©ã¡ã¼ã¿æå®ã¨åæ§ã« \cs{globaldefs} ã®å¤ã«ãå¾ãï¼
+次ã®ãã©ã¡ã¼ã¿åã \cs{ltjgetparameter} ã«æå®ãããã¨ã¯ã§ããªãï¼
%
+\begin{quote}
+\sffamily
+jatextfont, jascriptfont, jascriptscriptfont, jacharrange
+\end{quote}
+\item
%<*en>
-The following is the list of parameters which can be specified by the
-\cs{ltjsetparameter} command. [\cs{cs}] indicates the counterpart
-in \pTeX, and symbols beside each parameter has the following meaning:
+\verb+\ltjgetparameter{chartorange}{+\verb+}+ returns
+the range number which belongs to
+(although there is no parameter named ``chartorange'').
+
+If is between 0 and 127, this does not belong to
+any character range. In this case,
+ \verb+\ltjgetparameter{chartorange}{+\verb+}+
+returns $-1$.
+
+Hence, one can know whether is \textbf{JAchar} or not
+by the following:
%
%<*ja>
-以ä¸ã¯ \cs{ltjsetparameter} ã«æå®ãããã¨ãã§ãããã©ã¡ã¼ã¿ã®ä¸è¦§ã§ããï¼
-[\cs{cs}]ã¯\pTeX ã«ããã対å¿ç©ã示ãï¼
-ã¾ãï¼ããããã®ãã©ã¡ã¼ã¿ã®å³ä¸ã®è¨å·ã«ã¯æ¬¡ã®æå³ãããï¼
+\verb+\ltjgetparameter{chartorange}{+\verb+}+ ã«ãã£ã¦
+ã®å±ããæåç¯å²ã®çªå·ãç¥ããã¨ãã§ããï¼
+
+ã«0--127ã®å¤ãæå®ããå ´åï¼ãã®ã¨ãï¼ãå±ãã
+æåç¯å²ã¯åå¨ããªãï¼ã¯$-1$ãè¿ãï¼
+
+ãã®ããï¼ã\textbf{JAchar}ã\textbf{ALchar}ãã¯
+次ã§ç¥ããã¨ãã§ããï¼
%
-\begin{itemize}
+\begin{quote}
+\ttfamily \verb+\ltjgetparameter{jacharrange}{\ltjgetparameter{chartorange}{+%
+ \verb+}}+\\\null\hfill\verb+% 0 if JAchar, 1 if ALchar+
+\end{quote}
+
%<*en>
-\item ``$\ast$'' : values at the end of a paragraph or a hbox are
-adopted in the whole paragraph or the whole hbox.
+\item Because the returned value is string, the following conditionals do not work
+if \Param{kanjiskip} (or~\Param{xkanjiskip}) has the stretch part or the shrink part.
+\begin{lstlisting}
+\ifdim\ltjgetparameter{kanjiskip}>\z@ ... \fi
+\ifdim\ltjgetparameter{xkanjiskip}>\z@ ... \fi
+\end{lstlisting}
+The correct way is using a temporary register.
+\begin{lstlisting}
+\@tempskipa=\ltjgetparameter{kanjiskip} \ifdim\@tempskipa>\z@ ... \fi
+\@tempskipa=\ltjgetparameter{xkanjiskip}\ifdim\@tempskipa>\z@ ... \fi
+\end{lstlisting}
%
%<*ja>
-\item ``$\ast$''ï¼æ®µè½ãhboxã®çµç«¯ã§ã®å¤ããã®æ®µè½ï¼hboxå
¨ä½ã§ç¨ããããï¼
+\item è¿ãå¤ãæååã§ãããã¨ããï¼\Param{kanjiskip}ã\Param{xkanjiskip}ãç´æ¥
+\ \cs{ifdim} ã使ã£ã¦æ¯è¼ãããã¨ã¯æã¾ãããªãï¼ä¼¸ã³éã縮ã¿éãæã£ã¦ããæã«ã¯ï¼
+次ã¯ã¨ã©ã¼ãçºçãããï¼
+\begin{lstlisting}
+\ifdim\ltjgetparameter{kanjiskip}>\z@ ... \fi
+\ifdim\ltjgetparameter{xkanjiskip}>\z@ ... \fi
+\end{lstlisting}
+ã¬ã¸ã¹ã¿ã«ä¸æ¦ä»£å
¥ããã®ãè¯ãï¼
+\begin{lstlisting}
+\@tempskipa=\ltjgetparameter{kanjiskip} \ifdim\@tempskipa>\z@ ... \fi
+\@tempskipa=\ltjgetparameter{xkanjiskip}\ifdim\@tempskipa>\z@ ... \fi
+\end{lstlisting}
%
+
+\end{itemize}
+
+
%<*en>
-\item ``\dagger'': assignments are always global.
+\subsection{Alternative Commands to \cs{ltjsetparameter}}
+The basic method to set parameters of \LuaTeX-ja is to use
+\cs{ltjsetparameter}~or~\cs{ltjglobalsetparameter}.
+However, these commands are slow, because they parse a key-value list,
+so several alternative commands are used in \LuaTeX-ja.
+\emph{This subsection is not for general \LuaTeX-ja users.}
+
+\paragraph{Setting \Param{kanjiskip}~or~\Param{xkanjiskip}}
+In \Pkg{ltjsclasses}, every size-changing command such as \cs{Large}
+changes \cs{kanjiskip}~and~\cs{xkanjiskip}.
+But a simple implementation, as the code below, is slow since
+two key-value lists are parsed by \cs{ltjsetparameter}:
+\begin{lstlisting}
+ \ltjsetparameter{kanjiskip=0\zw plus .1\zw minus .01\zw}
+ \@tempskipa=\ltjgetparameter{xkanjiskip}
+ \ifdim\@tempskipa>\z@
+ \if@slide
+ \ltjsetparameter{xkanjiskip=0.1em}
+ \else
+ \ltjsetparameter{xkanjiskip=0.25em plus 0.15em minus 0.06em}
+ \fi
+ \fi
+\end{lstlisting}
+
+Hence, \LuaTeX-ja defines more primitive commands, namely \cs{ltj@setpar@global},
+\cs{ltjsetkanjiskip}, and~\cs{ltjsetxkanjiskip}. Here
+\begin{quote}
+ \lstinline+\ltj@setpar@global\ltjsetkanjiskip 10pt+
+\end{quote}
+and \lstinline+\ltjsetparameter{kanjiskip=10pt}+ has the same effect.
+The actual code of \Pkg{ltjsclasses} is shown below:
+\begin{lstlisting}
+ \ltj@setpar@global
+ \ltjsetkanjiskip{\z@ plus .1\zw minus .01\zw}
+ \@tempskipa=\ltjgetparameter{xkanjiskip}
+ \ifdim\@tempskipa>\z@
+ \if@slide
+ \ltjsetxkanjiskip.1em
+ \else
+ \ltjsetxkanjiskip.25em plus .15em minus .06em
+ \fi
+ \fi
+\end{lstlisting}
+
+Note that using \cs{ltjsetkanjiskip}~or~\cs{ltjsetxkanjiskip} alone,
+that is, without executing \cs{ltj@setpar@global} in advance, is \emph{not} supported.
%
+
%<*ja>
-\item ``\dagger''ï¼æå®ã¯å¸¸ã«ã°ãã¼ãã«ã«ãªãï¼
-%
+\subsection{\cs{ltjsetparameter} ã®ä»£æ¿}
+ååã¨ãã¦å種å
é¨ãã©ã¡ã¼ã¿ã®è¨å®ã«ã¯ \cs{ltjsetparameter} ãããã¯
+\ \cs{ltjglobalsetparameter}\ ãç¨ãããã¨ã«ãªããï¼
+\cs{ltjsetparameter} ã®å®è¡ã«ã¯æéããããã¨ããé£ç¹ãããï¼
+\LuaTeX-ja ã®å
é¨ã§ã¯ããé«éã«å®è¡ã§ããå¥ã®å½¢å¼ãç¨ãã¦ããï¼
+\emph{æ¬ç¯ã¯ä¸è¬å©ç¨è
ããã®å
容ã§ã¯ãªãï¼}
+
+\paragraph{\Param{kanjiskip}, \Param{xkanjiskip}ã®è¨å®}
+\pLaTeXe æ°ããã¥ã¡ã³ãã¯ã©ã¹ã§ã¯ï¼
+\begin{lstlisting}
+\def\@setfontsize#1#2#3{%
+ ...
+ \kanjiskip=0zw plus .1zw minus .01zw
+ \ifdim\xkanjiskip>\z@
+ \if@slide \xkanjiskip=0.1em \else
+ \xkanjiskip=0.25em plus 0.15em minus 0.06em
+ \fi
+ \fi}
+\end{lstlisting}
+ã¨ï¼ãã©ã³ããµã¤ãºãå¤æ´ãããã¨ã« \cs{kanjiskip}, \cs{xkanjiskip} ãå¤æ´ãã¦ããï¼
+ãã® \cs{@setfontsize} ã¯ææ¸ã®ä¸ã§å¤æ°åå®è¡ãããã®ã§ï¼
+\LuaTeX-ja ç¨ã«ç´ ç´ã«æ¸ãæãã
+\begin{lstlisting}
+ \ltjsetparameter{kanjiskip=0\zw plus .1\zw minus .01\zw}
+ \@tempskipa=\ltjgetparameter{xkanjiskip}
+ \ifdim\@tempskipa>\z@
+ \if@slide
+ \ltjsetparameter{xkanjiskip=0.1em}
+ \else
+ \ltjsetparameter{xkanjiskip=0.25em plus 0.15em minus 0.06em}
+ \fi
+ \fi
+\end{lstlisting}
+ã¨ããã®ã§ã¯ã¿ã¤ãã»ãããé
ããªã£ã¦ãã¾ãï¼
+ããã§ï¼\cs{ltjsetparameter} ã®ä¸ã§
+\begin{itemize}
+\item \cs{globaldefs} ã®å¤ãèªã¿åã \cs{ltj@setpar@global}
+\item \Param{kanjiskip} ã®è¨å®ãè¡ã \cs{ltjsetkanjiskip}
+\item \Param{xkanjiskip} ã®è¨å®ãè¡ã \cs{ltjsetxkanjiskip}
\end{itemize}
+ãç¬ç«ããï¼\Pkg{ltjsclasses}ã§ã¯ï¼
+\begin{lstlisting}
+ \ltj@setpar@global
+ \ltjsetkanjiskip{\z@ plus .1\zw minus .01\zw}
+ \@tempskipa=\ltjgetparameter{xkanjiskip}
+ \ifdim\@tempskipa>\z@
+ \if@slide
+ \ltjsetxkanjiskip.1em
+ \else
+ \ltjsetxkanjiskip.25em plus .15em minus .06em
+ \fi
+ \fi
+\end{lstlisting}
+ã¨ãã¦ããï¼
+\cs{ltj@setpar@global}ãç´åã«å®è¡ããï¼åç¬ã§
+\cs{ltjsetkanjiskip}, \cs{ltjsetxkanjiskip}ãå®è¡ãããã¨ã¯æ³å®ããã¦ããªãã®ã§æ³¨æï¼
-\begin{cslist}[style=standard]
-\item[\DParam{jcharwidowpenalty}\,=$^\ast$] [\cs{jcharwidowpenalty}]\
+
+
+\paragraph{ãã¼ã¹ã©ã¤ã³è£æ£éã®è¨å®}
+\pLaTeX ã®\Pkg{ascmac}ããã±ã¼ã¸ã§ã¯ï¼ç¸¦çµã®æ¬§æãã¼ã¹ã©ã¤ã³è£æ£éã®ä¸æå¾
é¿ã»å¾©å¸°å¦çã«
+\ \cs{@saveybaselineshift}\ ã¨ãã寸æ³ã¬ã¸ã¹ã¿ãç¨ã
+\begin{lstlisting}
+\@savetbaselineshift\tbaselineshift\tbaselineshift\z@
+...
+\tbaselineshift\@savetbaselineshift
+\end{lstlisting}
+ã¨ããå¦çãè¡ã£ã¦ããï¼
+
+ããã\LuaTeX-ja ç¨ã« \cs{ltjsetparameter} ã使ã£ã¦æ¸ãç´ãã¨ï¼
+\begin{lstlisting}
+\@savetbaselineshift\ltjgetparameter{talbaselineshift}
+\ltjsetparameter{talbaselineshift=\z@}
+...
+\ltjsetparameter{talbaselineshift=\@savetbaselineshift}
+\end{lstlisting}
+ã¨ãªãï¼
+
+ãã¦ï¼ç¸¦çµã®æ¬§æãã¼ã¹ã©ã¤ã³è£æ£é\Param{talbaselineshift}ã¯ï¼
+å®éã«ã¯ \cs{ltj@tablshift} ã¨ããå±æ§ã¬ã¸ã¹ã¿ã«æ ¼ç´ããã¦ãã
+ï¼\ref{sec-para}\nobreak ç¯åç
§ï¼ï¼å±æ§ã¬ã¸ã¹ã¿ã¯é·ãã§ã¯ãªãæ´æ°å¤ãæ ¼ç´ãã\footnote{%
+ å¾ã£ã¦ï¼\texttt{\textbackslash @savetbaselineshift=\textbackslash ltj@tablshift}\
+ ã®ããã«è¨è¿°ãããã¨ã¯ã§ããªãï¼å±æ§ã¬ã¸ã¹ã¿ã \cs{tbaselineshift} ã¨ããå称ã«ããªãã£
+ ãã®ã¯ãã®ããã§ããï¼
+}ãã®ã§ããï¼\cs{ltj@tablshift} ã¯è£æ£éã sp åä½ã§ä¿æãããã¨ããï¼
+ä¸è¨ã®ã³ã¼ãã¨åãå
容ãããéã以ä¸ã®ã³ã¼ãã§å®ç¾ãããã¨ãã§ããï¼
+\begin{lstlisting}
+\@savetbaselineshift\ltj@tablshift sp%
+\ltj@tablshift\z@
+...
+\ltj@tablshift\@savetbaselineshift
+\end{lstlisting}
+ãã®ææ³ã¯ \Pkg{ascmac} ããã±ã¼ã¸ã®\LuaTeX-ja対å¿ããã \Pkg{lltjp-tascmac.sty} ã§
+å®éã«ç¨ãããã¦ããï¼\Pkg{lltjp-tascmac.sty} ã¯èªåçã«èªã¿è¾¼ã¾ããã®ã§ï¼
+ã¦ã¼ã¶ã¯ä½ãæ°ã«ããæ®éã« \Pkg{ascmac} ããã±ã¼ã¸ã \cs{usepackage} ã§èªã¿ããã°è¯ãï¼
+%
+
+
+%\section{Other Commands for plain \TeX\ and \LaTeXe}
+%\section{plainã§ã\LaTeX ã§ãå©ç¨å¯è½ãªãã®ä»ã®å½ä»¤}
+%\subsection{Commands for compatibility with \pTeX}
+%\subsection{\pTeX äºæç¨å½ä»¤}
%<*en>
-Penalty value for suppressing orphans. This penalty is inserted just
- after the last \textbf{JAchar} which is not regarded as a
- (Japanese) punctuation mark.
+The following commands are implemented for compatibility with \pTeX.
+Note that the former five commands don't support JIS~X~0213, but only JIS~X~0208.
+The last \cs{kansuji} converts an integer into its Chinese numerals.
+%
+%<*ja>
+以ä¸ã®å½ä»¤ã¯\pTeX ã¨ã®äºææ§ã®ããã«å®è£
ããã¦ããï¼ãã®ããï¼JIS~X~0213ã«ã¯å¯¾å¿ããï¼
+\pTeX ã¨åãããã«JIS~X~0208ã®ç¯å²ãããµãã¼ããã¦ããªãï¼
+%
+\begin{center}
+\cs{kuten}, \cs{jis}, \cs{euc}, \cs{sjis}, \cs{ucs}, \cs{kansuji}
+\end{center}
+%<*en>
+These six commands takes an internal integer, and returns a \emph{string}.
%
%<*ja>
-ãã©ã°ã©ãã®æå¾ã®åãå¤ç«ãã¦æ¹è¡ãããã®ãé²ãããã®ããã«ãã£ã®å¤ï¼
-ãã®ããã«ãã£ã¯ï¼æ¥æ¬èªã®ï¼å¥èªç¹ã¨ãã¦æ±ãããªãæå¾ã®\textbf{JAchar}ã®ç´å¾ã«
-æ¿å
¥ãããï¼
+ããã6å½ä»¤ã¯å
é¨æ´æ°ãå¼æ°ã¨ãããï¼å®è¡çµæã¯\textbf{æåå}ã§ãããã¨ã«æ³¨æï¼
%
-
-\item[\DParam{kcatcode}\,=\{,\}$^\ast$]\
+\begin{LTXexample}
+\newcount\hoge
+\hoge="2423 %"
+\the\hoge, \kansuji\hoge\\
+\jis\hoge, \char\jis\hoge\\
+\kansuji1701
+\end{LTXexample}
%<*en>
-An additional attributes which each character whose character code is has.
-At the present version, the lowermost bit of indicates
- whether the character is considered as a punctuation mark
- (see the description of \Param{jcharwidowpenalty} above).
+To change characters of Chinese numerals for each digit, set \Param{kansujichar} parameter:
+\begin{LTXexample}
+\ltjsetparameter{kansujichar={1,`壹}}
+\ltjsetparameter{kansujichar={7,`æ¼}}
+\ltjsetparameter{kansujichar={0,`é¶}}
+\kansuji1701
+\end{LTXexample}
%
-%<*ja>
-æåã³ã¼ããã®æåãæã¤ä»å çãªå±æ§å¤ï¼
-ç¾å¨ã®ãã¼ã¸ã§ã³ã§ã¯ï¼ã®æä¸ä½ããããï¼ãã®æåãå¥èªç¹ã¨
-ã¿ãªããããã©ããã表ãã¦ããï¼ä¸ã®\Param{jcharwidowpenalty}ã®è¨è¿°ãåç
§ï¼ï¼
-%
-
-\item[\DParam{prebreakpenalty}\,=\{,\}$^\ast$] [\cs{prebreakpenalty}]\
-
-%<*ja>
-æåã³ã¼ãã®\textbf{JAchar}ãè¡é ã«ãããã¨ãææ¢ããããã«ï¼
- ãã®æåã®åã«æ¿å
¥/追å ãããããã«ãã£ã®éãæå®ããï¼
-ä¾ãã°éãæ¬å¼§ãããã¯çµ¶å¯¾ã«è¡é ã«ãã¦ã¯ãªããªãã®ã§ï¼
-\begin{lstlisting}
-\ltjsetparameter{prebreakpenalty={`ã,10000}}
-\end{lstlisting}
-ã¨ï¼æ大å¤ã®10000ãæ¨æºã§æå®ããã¦ããï¼ä»ã«ãï¼å°æ¸ãã®ã«ããªã©ï¼çµ¶å¯¾ç¦æ¢ã¨ã
- ãããã§ã¯ãªããã§ããã°è¡é ã«ã¯ãã¦æ¬²ãããªãå ´åã«ï¼0ã¨
- 10000ã®éã®å¤ãæå®ããã®ãæç¨ã§ãããï¼
-\pTeX ã§ã¯ï¼\cs{prebreakpenalty}, \cs{postbreakpenalty}ã«ããã¦ï¼
-\begin{itemize}
-\item ä¸ã¤ã®æåã«å¯¾ãã¦ï¼pre, postã©ã¡ããä¸ã¤ããæå®ãããã¨ãã§ããªã%
- \footnote{å¾ããæå®ããæ¹ã§ä¸æ¸ããããï¼}
-\item pre, poståããã¦256æååã®æ
å ±ãæ ¼ç´ãããã¨ããã§ããªã
-\end{itemize}
-ã¨ããå¶éããã£ããï¼\LuaTeX-jaã§ã¯ãããã®å¶éã¯è§£æ¶ããã¦ããï¼
-%
+\subsection{\cs{inhibitglue}}
%<*en>
-Set a penalty which is inserted automatically before the character ,
-to prevent a line starts from this character. For example, a line cannot started
-with one of closing brackets ``ã'', so \LuaTeX-ja sets
-\begin{lstlisting}
-\ltjsetparameter{prebreakpenalty={`ã,10000}}
-\end{lstlisting}
-by default.
-
-\pTeX\ has following restrictions on \cs{prebreakpenalty} and \cs{postbreakpenalty},
-but they don't exist in \LuaTeX-ja:
-\begin{itemize}
- \item Both \cs{prebreakpenalty} and \cs{postbreakpenalty} cannot be set
-for the same character.
- \item We can set \cs{prebreakpenalty} and \cs{postbreakpenalty} up to 256~characters.
-\end{itemize}
+\cs{inhibitglue} suppresses the insertion of \textbf{JAglue}.
+The following is an example, using a special JFM that there will be a glue between
+the beginning of a box and ``ã'', and also between ``ã''~and~``ã¦''.
%
-
-\item[\DParam{postbreakpenalty}\,=\{,\}$^\ast$]
- [\cs{postbreakpenalty}]\
-
%<*ja>
-æåã³ã¼ãã®\textbf{JAchar}ãè¡æ«ã«ãããã¨ãææ¢ããããã«ï¼
- ãã®æåã®å¾ã«æ¿å
¥/追å ãããããã«ãã£ã®éãæå®ããï¼
+\cs{inhibitglue} ã¯\textbf{JAglue}ã®æ¿å
¥ãæå¶ããï¼
+以ä¸ã¯ï¼ããã¯ã¹ã®å§ãã¨ãããã®éï¼ããããã¦ãã®éã«ã°ã«ã¼ãå
¥ãç¹å¥ãªJFMãç¨ããä¾ã§
+ããï¼
%
-%<*en>
-Set a penalty which is inserted automatically after the character ,
-to prevent a line ends with this character.
-%
-\item[\DParam{jatextfont}\,=\{,\}$^\ast$]
-%[\cs{textfont} in \TeX]
-%[\TeX ã® \cs{textfont}]
-\item[\DParam{jascriptfont}\,=\{,\}$^\ast$]
-%[\cs{scriptfont} in \TeX]
-%[\TeX ã® \cs{scriptfont}]
-\item[\DParam{jascriptscriptfont}\,=\{,\}$^\ast$]
-%[\cs{scriptscriptfont} in \TeX]
-%[\TeX ã® \cs{scriptscriptfont}]
-\item[\DParam{yjabaselineshift}\,=]\
-\item[\DParam{yalbaselineshift}\,=] [\cs{ybaselineshift}]
-\item[\DParam{tjabaselineshift}\,=]\
-\item[\DParam{talbaselineshift}\,=] [\cs{tbaselineshift}]
-
-\item[\DParam{jaxspmode}\,=\{,\}$^\ast$]\
+\begin{LTXexample}[width=0.4\textwidth]
+\jfont\g=file:KozMinPr6N-Regular.otf:jfm=test \g
+\fbox{\hbox{ãã¦ã\inhibitglue ã¦}}
+\inhibitglue\par\noindent ã1
+\par\inhibitglue\noindent ã2
+\par\noindent\inhibitglue ã3
+\par\hrule\noindent ãoff\inhibitglue ice
+\end{LTXexample}
%<*en>
-Set whether inserting \Param{xkanjiskip} is allowed before/after a \textbf{JAchar} whose character code is .
-The followings are allowed for :
+With the help of this example, we remark the specification of \cs{inhibitglue}:
%
%<*ja>
-æåã³ã¼ããã®\textbf{JAchar}ã®åï¼å¾ãã«\Param{xkanjiskip}ã®
-æ¿å
¥ã許ããã©ããã®è¨å®ï¼
-以ä¸ã®ã許ãããï¼
+ãã®ä¾ãæ´ç¨ãã¦ï¼\cs{inhibitglue} ã®ä»æ§ã«ã¤ãã¦è¿°ã¹ãï¼
%
-\begin{description}
-%\item[0, \texttt{inhibit}] Insertion of \Param{xkanjiskip} is inhibited before the character, nor after the character.
-%\item[0, \texttt{inhibit}] \Param{xkanjiskip}ã®æ¿å
¥ã¯æåã®åï¼å¾ãã®ãããã§ãç¦æ¢ãããï¼
-%\item[1, \texttt{preonly}] Insertion of \Param{xkanjiskip} is allowed before the character, but not after.
-%\item[1, \texttt{preonly}] \Param{xkanjiskip}ã®æ¿å
¥ã¯æåã®åã§ã¯è¨±ããããï¼å¾ãã§ã¯è¨±ãããªãï¼
-%\item[2, \texttt{postonly}] Insertion of \Param{xkanjiskip} is allowed after the character, but not before.
-%\item[2, \texttt{postonly}] \Param{xkanjiskip}ã®æ¿å
¥ã¯æåã®å¾ãã§ã¯è¨±ããããï¼åã§ã¯è¨±ãããªãï¼
-%\item[3, \texttt{allow}] Insertion of \Param{xkanjiskip} is allowed both before the character and after the character. This is the default value.
-%\item[3, \texttt{allow}] \Param{xkanjiskip}ã®æ¿å
¥ã¯æåã®åï¼å¾ãã®ãããã§ã許ãããï¼ãããããã©ã«ãã®å¤ã§ããï¼
-\end{description}
+\begin{itemize}
%<*en>
-This parameter is similar to the \cs{inhibitxspcode} primitive of \pTeX, but not compatible with \cs{inhibitxspcode}.
+\item The call of \cs{inhibitglue} in the (internal) vertical mode is
+ simply ignored.
%
%<*ja>
-ãã®ãã©ã¡ã¼ã¿ã¯\pTeX ã® \cs{inhibitxspcode} ããªããã£ãã¨ä¼¼ã¦ãããï¼
-äºææ§ã¯ãªãï¼
+\item \emph{\cs{inhibitglue} ã®åç´ã¢ã¼ãä¸ã§ã®å¼ã³åºãã¯æå³ãæããªã}\footnote{%
+ ãã®ç¹ã¯\TeX~Live~2014ã§ã®\pTeX ã«ããã \cs{inhibitglue} ã®ä»æ§å¤æ´ã¨åãã§ããï¼
+}ï¼
+4è¡ç®ã®å
¥åã§æå¹ã«ãªããªãã®ã¯ï¼\cs{inhibitglue} ã®æç¹ã§ã¯åç´ã¢ã¼ãã§ããï¼
+\cs{noindent} ã®æç¹ã§æ°´å¹³ã¢ã¼ãã«ãªãããã§ããï¼
%
-\item[\DParam{alxspmode}\,=\{,\}$^\ast$] [\cs{xspcode}]\
%<*en>
-Set whether inserting \Param{xkanjiskip} is allowed before/after a
- \textbf{ALchar} whose character code is .
- The followings are allowed for :
+\item The call of \cs{inhibitglue} in the (restricted) horizontal
+ mode is only effective on the spot; does not get over boundary of
+ paragraphs. Moreover, \cs{inhibitglue} cancels ligatures and
+ kernings, as shown in the last line of above example.
%
%<*ja>
-æåã³ã¼ããã®\textbf{ALchar}ã®åï¼å¾ãã«\Param{xkanjiskip}ã®
-æ¿å
¥ã許ããã©ããã®è¨å®ï¼
-以ä¸ã®ã許ãããï¼
+\item \cs{inhibitglue} ã®ï¼å¶éãããï¼æ°´å¹³ã¢ã¼ãä¸ã§ã®å¼ã³åºãã¯ãã®å ´ã§ã®ã¿
+ æå¹ã§ããï¼æ®µè½ã®å¢çãä¹ãè¶ããªãï¼
+ ããã«ï¼\cs{inhibitglue} ã¯ä¸ã®ä¾ã®æçµè¡ã®ããã«ï¼æ¬§æã«ãããï¼ãªã¬ãã£ã¨ã«ã¼ãã³ã°ã
+ æã¡æ¶ãï¼ããã¯ï¼\cs{inhibitglue} ãå
é¨çã«ã¯ãç¾å¨ã®ãªã¹ãä¸ã«whatsitãã¼ãã
+ 追å ããããã¨ãè¡ãªã£ã¦ããããã§ããï¼
%
-\begin{description}
-%\item[0, \texttt{inhibit}] Insertion of \Param{xkanjiskip} is inhibited before the character, nor after the character.
-%\item[0, \texttt{inhibit}] \Param{xkanjiskip}ã®æ¿å
¥ã¯æåã®åï¼å¾ãã®ãããã§ãç¦æ¢ãããï¼
-%\item[1, \texttt{preonly}] Insertion of \Param{xkanjiskip} is allowed before the character, but not after.
-%\item[1, \texttt{preonly}] \Param{xkanjiskip}ã®æ¿å
¥ã¯æåã®åã§ã¯è¨±ããããï¼å¾ãã§ã¯è¨±ãããªãï¼
-%\item[2, \texttt{postonly}] Insertion of \Param{xkanjiskip} is allowed after the character, but not before.
-%\item[2, \texttt{postonly}] \Param{xkanjiskip}ã®æ¿å
¥ã¯æåã®å¾ãã§ã¯è¨±ããããï¼åã§ã¯è¨±ãããªãï¼
-%\item[3, \texttt{allow}] Insertion of \Param{xkanjiskip} is allowed before the character and after the character. This is the default value.
-%\item[3, \texttt{allow}] \Param{xkanjiskip}ã®æ¿å
¥ã¯æåã®åï¼å¾ãã®ãããã§ã許ãããï¼ãããããã©ã«ãã®å¤ã§ããï¼
-\end{description}
+
%<*en>
-Note that parameters \Param{jaxspmode} and \Param{alxspmode} share a common table, hence these two parameters are synonyms of each other.
+\item The call of \cs{inhibitglue} in math mode is just ignored.
%
%<*ja>
-\Param{jaxspmode}ã¨\Param{alxspmode}ã¯å
±éã®ãã¼ãã«ãç¨ãã¦ããããï¼
-ããã2ã¤ã®ãã©ã¡ã¼ã¿ã¯äºãã®å¥åã¨ãªã£ã¦ãããã¨ã«æ³¨æããï¼
+\item \cs{inhibitglue} ãæ°å¼ã¢ã¼ãä¸ã§å¼ã³åºããå ´åã¯ãã ç¡è¦ãããï¼
%
-\item[\DParam{autospacing}\,=] [\cs{autospacing}]
-\item[\DParam{autoxspacing}\,=] [\cs{autoxspacing}]
-\item[\DParam{kanjiskip}\,=$^\ast$] [\cs{kanjiskip}]\
-
%<*ja>
-ããã©ã«ãã§2ã¤ã®\textbf{JAchar}ã®éã«æ¿å
¥ãããã°ã«ã¼ã§ããï¼
-é常ã§ã¯ï¼\pTeX ã¨åãããã«ãã©ã³ããµã¤ãºã«æ¯ä¾ãã¦å¤ãããã¨ã¯ãªãï¼
-ãããï¼èªç¶é·ã \cs{maxdimen} ã®å ´åã¯ï¼ä¾å¤çã«åæãã©ã³ãã®JFMå´ã§æå®ããã¦ãã
-å¤ãæ¡ç¨ï¼ãã¡ãã¯ãã©ã³ããµã¤ãºã«æ¯ä¾ï¼ãããã¨ã«ãªã£ã¦ããï¼
+\item \LaTeX ã§\LuaTeX-ja ã使ç¨ããå ´åã¯ï¼
+\cs{inhibitglue} ã®ä»£ããã¨ã㦠\verb+\<+ ã使ããã¨ãã§ããï¼
+æ¢ã« \verb+\<+ ãå®ç¾©ããã¦ããå ´åã¯ï¼\LuaTeX-ja ã®èªã¿è¾¼ã¿ã§å¼·å¶çã«ä¸æ¸ããããã®ã§
+注æãããã¨ï¼
%
-%<*en>
-The default glue which inserted between two \textbf{JAchar}s.
-Changing current Japanese font does not alter this parameter, as \pTeX.
+\end{itemize}
-If the natural width of this parameter is \cs{maxdimen}, \LuaTeX-ja uses
-the value which is specified in the JFM for current Japanese font (See Subsection~\ref{ssec-jfm-str}).
+
+\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'}ã®æå®ãè¦ããä¸ç ´ç¶»ãã¦ãããã¨ãããï¼
-\item[\DParam{xkanjiskip}\,=$^\ast$] [\cs{xkanjiskip}]\
+ããã¯\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>
-ããã©ã«ãã§\textbf{JAchar}ã¨\textbf{ALchar}ã®éã«æ¿å
¥ãããã°ã«ã¼ã§ããï¼
-\Param{kanjiskip}ã¨åãããã«ï¼é常ã§ã¯ãã©ã³ããµã¤ãºã«æ¯ä¾ãã¦å¤ãããã¨ã¯ãªããï¼
-èªç¶é·ã \cs{maxdimen} ã®å ´åãä¾å¤ã§ããï¼
+\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}
+ä¾ãã°ï¼å
ã»ã©ã®ä¾ã«å¯¾ãã¦é©ç¨ããã¨ï¼æ¬¡ã®ããã«ãªãï¼
%
-%<*en>
-The default glue which inserted between a \textbf{JAchar} and an
- \textbf{ALchar}.
-Changing current font does not alter this parameter, as \pTeX.
+\begin{LTXexample}[width=0.3\textwidth]
+\parindent1\zw
+\noindent ãããããããã\par % for comparison
+ããããããã \par % normal paragraph
-As \Param{kanjiskip}, if the natural width of this parameter is \cs{maxdimen}, \LuaTeX-ja uses
-the value which is specified in the JFM for current Japanese font (See Subsection~\ref{ssec-jfm-str}).
-%
+\everypar{\null\ltjfakeparbegin}
+ããããããã \par
+\end{LTXexample}
-\item[\DParam{differentjfm}\,=$^\dagger$]\
+\subsection{\cs{ltjdeclarealtfont}}
+\label{ssec:altfont}
+%<*en>
+Using \cs{ltjdeclarealtfont}, one can ``compose'' more than one Japanese fonts.
+This \cs{ltjdeclarealtfont} uses in the following form:
+\begin{quote}
+\ttfamily \textbackslash ltjdeclarealtfont\{\}
+\end{quote}
+where ~and~ are defined by \cs{jfont}.
+Its meaning is
+\begin{quote}
+If the current Japanese font is , characters which belong to
+is typeset by another Japanese font , instead of .
+\end{quote}
+Here is a comma-separated list of character codes, but also accepts negative integers:
+$-n$~($nâ¥1$) means that all characters of character classes~$n$, with respect to JFM used
+by . Note that characters which do not exist in are
+ignored.
-%<*en>
-Specify how glues/kerns between two \textbf{JAchar}s whose JFM (or size) are different.
-The allowed arguments are the followings:
-%
-%<*ja>
-JFMï¼ãããã¯ãµã¤ãºï¼ãç°ãªã2ã¤ã®\textbf{JAchar}ã®éã«ã°ã«ã¼ï¼ã«ã¼ã³ãã©ã®ããã«
-å
¥ããããæå®ããï¼
-許ãããå¤ã¯ä»¥ä¸ã®éãï¼
-%
+For example, if \cs{hoge} uses \texttt{jfm-ujis.lua}, the standard JFM of \LuaTeX-ja,
+then
+\begin{lstlisting}
+\ltjdeclarealtfont\hoge\piyo{"3000-"30FF, {-1}-{-1}}
+\end{lstlisting}
+does
\begin{quote}
-\texttt{average},
-\texttt{both},
-\texttt{large},
-\texttt{small},
-\texttt{pleft},
-\texttt{pright},
-\texttt{paverage}
+If the current Japanese font is \cs{hoge}, \texttt{U+3000}--\texttt{U+30FF}
+and characters in class~1 (ideographic opening brackets)
+are typeset by \cs{piyo}.
\end{quote}
-%<*en>
-The default value is \texttt{paverage}. \dots
%
%<*ja>
-ããã©ã«ãå¤ã¯ \texttt{paverage} ã§ããï¼
-åã
ã®å¤ã«ããå·®ç°ã®è©³ç´°ã¯\ref{ssec-cluster-wa}ç¯ã®ããå³ç©ºç½ãã®ç®åºããåç
§ãã¦ã»ããï¼
-%
+\cs{jfont} ã®æ¸å¼ãè¦ãã°ãããããã«ï¼åºæ¬çã«ã¯\LuaTeX-jaã«ããã1ã¤ã®åæãã©ã³ãã«
+使ç¨åºæ¥ããå®éã®ãã©ã³ããã¯1ã¤ã§ããï¼
+ãããï¼\cs{ltjdeclarealtfont} ãç¨ããã¨ï¼ãã®ååããå¤ãããã¨ãã§ããï¼
-\item[\DParam{jacharrange}\,=]
-\item[\DParam{kansujichar}\,=\{, \}$^\ast$] [\cs{kansujichar}]
+\cs{ltjdeclarealtfont} ã¯ä»¥ä¸ã®æ¸å¼ã§ä½¿ç¨ããï¼
+\begin{quote}
+\ttfamily \textbackslash ltjdeclarealtfont\{\}
+\end{quote}
+ããã¯ãç¾å¨ã®åæãã©ã³ãããã§ããã¨ãï¼
+ã«å±ããæåã¯ãç¨ãã¦çµçãããï¼ã¨ããæå³ã§ããï¼
+\begin{itemize}
+ \item , ã¯
+\cs{jfont} ã«ãã£ã¦å®ç¾©ãããåæãã©ã³ãã§ããï¼
+ \item ã¯æåã³ã¼ãã®ç¯å²ã表ãã³ã³ãåºåãã®ãªã¹ãã§ãããï¼
+ ä¾å¤ã¨ãã¦è² æ°$-n$ã¯ãã®JFMã®æåã¯ã©ã¹$n$ã«å±ããå
¨ã¦ã®æåã
+ ãæå³ããï¼
-\item[\DParam{direction}\,=\ \hbox{\rm (always local)}]\
+ä¸ã«ä¸ã«å®éã«ã¯åå¨ããªãæåãæå®ãããå ´åã¯ï¼
+ãã®æåã«å¯¾ããè¨å®ã¯ç¡è¦ãããï¼
+\end{itemize}
-%<*en>
-Assigning to this parameter has the same effect as
-\cs{yoko}~(if $\hbox{}=4$), \cs{tate}~(if $\hbox{}=3$),
-\cs{dtou}~(if $\hbox{}=1$) or \cs{utod}~(if $\hbox{}=11$).
-If the argument is not one of 4,~3, 1~nor~11,
-the behavior of this assignment is undefined.
-%
-%<*ja>
-çµæ¹åãå¤æ´ãã \cs{yoko}~(if $\hbox{}=4$), \cs{tate}~(if $\hbox{}=3$),
-\cs{dtou}~(if $\hbox{}=1$), \cs{utod}~(if $\hbox{}=11$) ã¨åãå½¹å²ãæã¤ï¼
-å©ç¨å¯è½ãªç¶æ³ãããã4å½ä»¤ã¨åä¸ã§ããï¼å¼æ°ã4,~3, 1,~11ã®ãããã§ãç¡ãã¨ãã®
-åä½ã¯æªå®ç¾©ã§ããï¼
+ä¾ãã°ï¼\cs{hoge} ã®JFMã\LuaTeX-jaæ¨æºã®
+\ \texttt{jfm-ujis.lua} ã§ãã£ãå ´åï¼
+\begin{lstlisting}
+\ltjdeclarealtfont\hoge\piyo{"3000-"30FF, {-1}-{-1}}
+\end{lstlisting}
+ã¯ã\cs{hoge} ãå©ç¨ãã¦ããã¨ãï¼
+\texttt{U+3000}--\texttt{U+30FF}ã¨
+æåã¯ã©ã¹1ï¼éãæ¬å¼§é¡ï¼ä¸ã®æåã ã㯠\cs{piyo} ãç¨ããã
+ãã¨ãè¨å®ããï¼\verb+{-1}-{-1}+ ã¨ããå¤ãã£ãæå®ã®ä»æ¹ããã¦ããã®ã¯ï¼
+æ®éã« \texttt{-1} ã¨æå®ããã®ã§ã¯æ£ãã$-1$ã¨èªã¿åãããªãã¨ãã
+ãã¯ãã®é½åã«ããï¼
%
-\end{cslist}
+%<*ja>
+\subsection{\cs{ltjalchar} 㨠\cs{ltjjachar}}
+æåã³ã¼ãã$\text{}~(\geq 128=\mathtt{0x80})$ã®æåã
+\ \cs{char} ããªããã£ãã使ã \cs{char} ã¨ãã¦åºåãããã¨ï¼
+ãã®æåã®å±ããæåç¯å²ï¼\ref{ssec:setrange}ç¯åç
§ï¼ã«ãã£ã¦
+\textbf{ALchar}ã\textbf{JAchar}ãï¼ã¤ã¾ã欧æãã©ã³ãã§åºåããããåæãã©ã³ãã§åºåãã
+ããã決ã¾ãï¼
+æåç¯å²ã®è¨å®ãç¡è¦ãï¼æåã³ã¼ãã$\text{}~(\geq 128=\mathtt{0x80})$ã®æåãå¼·å¶çã«
+\textbf{ALchar}, \textbf{JAchar}ã§åºåããå½ä»¤ããããã
+\ \cs{ltjalchar},~\cs{ltjjachar} ã§ããï¼ä½¿ç¨æ¹æ³ã¯ \cs{char} ã¨åãã
+\ \cs{ltjalchar}, \cs{ltjjachar}ã¨ããã°ããï¼
+ã127以ä¸ã®å ´åã¯ï¼\cs{ltjjachar} ã§ãã£ã¦ã\textbf{ALchar}ã¨ãã¦åºåããããã¨
+ã«æ³¨æï¼
+
+以ä¸ã¯\ref{ssec:setrange}ç¯ã«è¼ããä¾ã«ï¼\cs{char} ã®åä½ã追å ãããã®ã§ããï¼
+\begin{LTXexample}[width=0.25\textwidth]
+\gtfamily\large % default, ALchar, JAchar
+¶, \char`¶, \ltjalchar`¶, \ltjjachar`¶\\ % default: ALchar
+α, \char`α, \ltjalchar`α, \ltjjachar`α % default: JAchar
+\end{LTXexample}
+%
+
+%\section{Commands for \LaTeXe}
+%\section{\LaTeXe ç¨ã®å½ä»¤}
-\subsection{\cs{ltjgetparameter}}
-\label{ssec-getpar}
%<*en>
-\cs{ltjgetparameter} is a control sequence for acquiring parameters. It
-always takes a parameter name as first argument.
+\subsection{Loading Japanese fonts in \LaTeXe}
+\label{ssec:ltx-jfm}
+From versoin~20190107,
+\emph{\LuaTeX-ja does not load Japanese fonts for horizontal direction and
+ that for vertical direction at same time},
+to reduce the number of loaded fonts.
+This will save time for typesetting and memory consumption of Lua side (\cite{tc18ltja})ï¼
+
+\begin{itemize}
+ \item \cs{selectfont} loads (and chooses) only the Japanese font for current direction,
+ and does not load the Japanese font for other direction
+ (\LuaTeX-ja only detects its size and JFM, to calculate the amount of shifting the baseline).
+
+ \item Direction changing commands (\cs{yoko},~\cs{tate}, \cs{dtou},~\cs{utod}) are patched to
+ include the following process:
+ \begin{quote}
+ If the Japanese font for new direction is not loaded,
+ \LuaTeX-ja loads it automatically.
+ \end{quote}
+ Original commands are saved as \cs{ltj@@orig@yoko} etc.
+
+ \item Specifying Japanese font command which is
+ defined by \cs{jfont},~\cs{tfont}, or~\cs{DeclareFixedFont} directly
+ actually loads (and selects) the Japanese font.
+ For example, \textbf{JAchar}s in \cs{box0} will be typeset in \cs{HOGE},
+ in the following code:
+\begin{lstlisting}
+ % in horizontal direction (\yoko)
+ \DeclareFixedFont\HOGE{JT3}{gt}{m}{n}{12} % JT3: for vertical direction
+ \HOGE
+ \setbox0=\hbox{\tate ããã}
+\end{lstlisting}
+ \end{itemize}
%
+
%<*ja>
-\cs{ltjgetparameter} ã¯ãã©ã¡ã¼ã¿ã®å¤ãåå¾ããããã®å½ä»¤ã§ããï¼
-常ã«ãã©ã¡ã¼ã¿ã®ååã第ä¸å¼æ°ã«ã¨ãï¼
+\subsection{\LaTeXe ä¸ã§ã®åæãã©ã³ãã®èªã¿è¾¼ã¿}
+\label{ssec:ltx-jfm}
+ãã¼ã¸ã§ã³20190107以éã§ã¯ï¼\LaTeXe ã®ä¸ã§\LuaTeX-jaã使ç¨ããéã«ï¼
+\emph{横çµç¨åæãã©ã³ãã¨ç¸¦çµã¿ç¨åæãã©ã³ãã両æ¹ä¸åº¦ã«èªã¿è¾¼ã¿ã»é¸æããã«ï¼
+ å®éã«ããããã使ãçµæ¹åã«ãªã£ãã¨ãã«è¡ã}ã¨ããæ¹éã«ããï¼
+ããã¯å®éã«èªã¿è¾¼ããã©ã³ãæ°ãåæ¸ãããã¨ã§ï¼
+ã¿ã¤ãã»ããã«ãããæéã¨ï¼ä¸»ã«Luaã®ï¼ã¡ã¢ãªæ¶è²»ãåæ¸ããããã§ãã(\cite{tc18ltja})ï¼
+
+\begin{itemize}
+ \item \cs{selectfont}ã¯æ¨ªçµç¨ã»ç¸¦çµç¨åæãã©ã³ãã®ãã¡ï¼ç¾å¨ã®çµæ¹åã§ä½¿ãæ¹ã
+ å®éã«èªã¿è¾¼ã¿ï¼ã»é¸æãï¼ï¼ããã§ãªãæ¹ã¯ããã©ã³ããµã¤ãºã¨JFMã®ã¿\LuaTeX-jaãææ¡ãã¦ããç¶æ
ã
+ ï¼ä»¥ä¸ï¼\emph{JFMææ¡ç¶æ
}ï¼ã¨ããï¼
+
+ \item çµæ¹åå¤æ´å½ä»¤\cs{yoko},~\cs{tate}, \cs{dtou},~\cs{utod}ã«ã¯
+ \begin{quote}
+ æ°ããªçµæ¹åã§ã®åæãã©ã³ããèªã¿è¾¼ã¾ãã¦ããªãï¼JFMææ¡ç¶æ
ï¼ãªãã°ï¼
+ ç¾å¨ã®ã¨ã³ã³ã¼ãã£ã³ã°ã»ãã¡ããªã»ã·ãªã¼ãºã»ã·ã§ã¤ãããæ¹ãã¦èªã¿è¾¼ãï¼ã¾ãã¯é¸æããï¼
+ \end{quote}
+ å¦çãä»ãå ãããã¦ããï¼
+ ãã¨ã®ãçµæ¹åãå¤æ´ããã ããã®å½ä»¤ã¯\cs{ltj@@orig@yoko}ã®ããã«\texttt{ltj@@orig@}ãåã«ã¤ãã
+ å½ä»¤ã«ä¿åããã¦ããï¼
+
+ \item \cs{jfont},~\cs{tfont},~\cs{DeclareFixedFont}ã§å®ç¾©ãããåæãã©ã³ãã¯
+ ãã®æç¹ã§å®éã«ãã©ã³ããèªã¿è¾¼ã¾ããï¼ããªãã¡ï¼ä»¥ä¸ã®ã³ã¼ãã«ããã¦ï¼
+ \cs{box0}ä¸ã®\textbf{JAchar}ã¯\cs{HOGE}ã§ã¿ã¤ãã»ãããããï¼
+\begin{lstlisting}
+ % in horizontal direction (\yoko)
+ \DeclareFixedFont\HOGE{JT3}{gt}{m}{n}{12} % JT3: for vertical direction
+ \HOGE
+ \setbox0=\hbox{\tate ããã}
+\end{lstlisting}
+ \end{itemize}
%
-\begin{LTXexample}
-\ltjgetparameter{differentjfm},
-\ltjgetparameter{autospacing},
-\ltjgetparameter{kanjiskip},
-\ltjgetparameter{prebreakpenalty}{`ï¼}.
-\end{LTXexample}
+
+%\subsection{Patch for NFSS2}
+%\subsection{NFSS2ã¸ã®ããã}
+\label{ssec:nfsspat}
%<*en>
-\emph{The return value of\/ \cs{ltjgetparameter} is
-always a string}, which is outputted by \texttt{tex.write()}.
-Hence any character other than space~``\texttt{\char32}''~(\texttt{U+0020}) has the category code
-12~(other), while the space has 10~(space).
+Japanese patch for NFSS2 in \LuaTeX-ja
+is based on \texttt{plfonts.dtx} which plays the same role in \pLaTeXe.
+We will describe
+commands which are not described in Subsection~\ref{ssec:chgfnt}.
%
%<*ja>
-\emph{\cs{ltjgetparameter} ã®æ»ãå¤ã¯å¸¸ã«æååã§ããï¼}
-ããã¯\texttt{tex.write()}ã«ãã£ã¦åºåãã¦ããããã§ï¼ç©ºç½ã\texttt{\char32}ã
-(\texttt{U+0020})ãé¤ããæåã®ã«ãã´ãªã¼ã³ã¼ãã¯å
¨ã¦12~(other)ã¨ãªãï¼
-ä¸æ¹ï¼ç©ºç½ã®ã«ãã´ãªã¼ã³ã¼ãã¯10~(space)ã§ããï¼
+\LuaTeX-jaã®NFSS2ã¸ã®æ¥æ¬èªãããã¯
+\pLaTeXe ã§åæ§ã®å½¹å²ãæãã \texttt{plfonts.dtx} ããã¼ã¹ã«ï¼
+åæã¨ã³ã³ã¼ãã£ã³ã°ã®ç®¡ççãLuaã§æ¸ããªããããã®ã§ããï¼
+ããã§ã¯\ref{ssec:chgfnt}ç¯ã§è¿°ã¹ã¦ããªãã£ãå½ä»¤ã«ã¤ãã¦
+è¨è¿°ãã¦ããï¼
%
-\begin{itemize}
-\item
+\begin{cslist}%
+\item[\normalfont\bfseries %
+%追å ã®é·ãå¤æ°é
+%additonal dimensions
+]
%<*en>
-If first argument is one of the
-following, no additional argument is needed.
+Like \pLaTeXe, \LuaTeX-ja defines the following dimensions
+for information of current Japanese font:
%
%<*ja>
-第1å¼æ°ã次ã®ããããã®å ´åã«ã¯ï¼è¿½å ã®å¼æ°ã¯å¿
è¦ãªãï¼
+\pLaTeXe ã¨åæ§ã«ï¼\LuaTeX-jaã¯ãç¾å¨ã®åæãã©ã³ãã®æ
å ±ããæ ¼ç´ããé·ãå¤æ°
%
\begin{quote}
-\sffamily
-jcharwidowpenalty, yjabaselineshift, yalbaselineshift, autospacing, autoxspacing,\\
-kanjiskip, xkanjiskip, differentjfm, direction
+ \cs{cht}~(height), \cs{cdp}~(depth), \cs{cHT}~(sum of former two),\\
+ \cs{cwd}~(width), \cs{cvs}~(lineskip), \cs{chs}~(equals to \cs{cwd})
+\end{quote}
+%and its \cs{normalsize} version:
+%ã¨ï¼ãã® \cs{normalsize} çã§ãã
+\begin{quote}
+ \cs{Cht}~(height), \cs{Cdp}~(depth),
+ \cs{Cwd}~(width), \\\cs{Cvs}~(equals to \cs{baselineskip}),
+ \cs{Chs}~(equals to \cs{cwd})%
+%.
\end{quote}
-%<*en>
-Note that \verb+\ltjgetparameter{autospacing}+~and~\verb+\ltjgetparameter{autoxspacing}+
-returns 1 or 0, not
-\texttt{true}~nor~\texttt{false}.
-%
%<*ja>
-\verb+\ltjgetparameter{autospacing}+ 㨠\verb+\ltjgetparameter{autoxspacing}+ ã¯ï¼
-\texttt{true}ã\texttt{false}ãè¿ãã®\emph{ã§ã¯ãªã}ï¼
-1ã0ã®ãããããè¿ããã¨ã«æ³¨æï¼
+ãå®ç¾©ãã¦ããï¼ãªãï¼\cs{cwd} 㨠\cs{zw}ï¼ã¾ã
+\cs{cHT} 㨠\cs{zh} ã¯ä¸è´ããªãå¯è½æ§ãããï¼ãªããªãï¼
+\cs{cwd},~\cs{cHT} ã¯ãããã®å¯¸æ³ãã決å®ãããã®ã«å¯¾ãï¼
+\cs{zw} 㨠\cs{zh} ã¯JFMã«æå®ãããå¤ã«éããªãããã§ããï¼
%
+%<*en>
+Note that \cs{cwd}~and~\cs{cHT} may differ from \cs{zw}~and~\cs{zh}
+respectively.
+On the one hand the former dimensions are determined from the character ``ã'',
+but on the other hand \cs{zw}~and~\cs{zh} are specified by JFM.
+%
+
+
+\item[\cs{DeclareYokoKanjiEncoding}\{\}\{\}\{\}]
+%\ \\[\dimexpr-\medskipamount-2\baselineskip\relax]
+%\ \\[\dimexpr-2\baselineskip\relax]
+\item[\cs{DeclareTateKanjiEncoding}\{\}\{\}\{\}]
-\item
%<*en>
-If first argument is one of the
-following, an additional argument---a character code, for example---is needed.
+In NFSS2 under \LuaTeX-ja, distinction between alphabetic fonts
+ and Japanese fonts are only made by their
+ encodings. For example, encodings OT1 and T1 are encodings for
+ alphabetic fonts, and Japanese fonts cannot
+ have these encodings. These command define a new encoding
+ scheme for Japanese font families.
%
%<*ja>
-第1å¼æ°ã次ã®ããããã®å ´åã«ã¯ï¼ããã«æåã³ã¼ãã第2å¼æ°ã¨ãã¦ã¨ãï¼
+\LuaTeX-jaã®NFSS2ã«ããã¦ã¯ï¼æ¬§æãã©ã³ãã¨åæãã©ã³ãã¯
+ãã®ã¨ã³ã³ã¼ãã£ã³ã°ã«ãã£ã¦ã®ã¿åºå¥ãããï¼
+ä¾ãã°ï¼OT1ã¨T1ã®ã¨ã³ã³ã¼ãã£ã³ã°ã¯æ¬§æãã©ã³ãã®ã¨ã³ã³ã¼ãã£ã³ã°ã§ããï¼
+åæãã©ã³ãã¯ãããã®ã¨ã³ã³ã¼ãã£ã³ã°ãæã¤ãã¨ã¯ã§ããªãï¼
+ãããã³ãã³ãã¯æ¨ªçµç¨ã»ç¸¦çµç¨åæãã©ã³ãã®ããã®æ°ããã¨ã³ã³ã¼ãã£ã³ã°ã
+ããããå®ç¾©ããï¼
%
-\begin{quote}
-\sffamily
-kcatcode, prebreakpenalty, postbreakpenalty, jaxspmode, alxspmode
-\end{quote}
+
+\item[\cs{DeclareKanjiEncodingDefaults}\{\}\{\}]
+%\ \\[\dimexpr-\medskipamount-2\baselineskip\relax]
+%\ \\[\dimexpr-2\baselineskip\relax]
+\item[\cs{DeclareKanjiSubstitution}\{\}\{\}\{\}\{\}]
+%\ \\[\dimexpr-\medskipamount-2\baselineskip\relax]
+%\ \\[\dimexpr-2\baselineskip\relax]
+\item[\cs{DeclareErrorKanjiFont}\{\}\{\}\{\}\{