X-Git-Url: http://git.osdn.jp/view?a=blobdiff_plain;f=doc%2Fluatexja.dtx;h=7c27d29b6805a2ea72c549414d757a5c678cd3a9;hb=55a3d0259d58f0ced648662986e92fc94c08f1f4;hp=40b69f697cc20e15e3e2d2ed89c98c274db2d682;hpb=56cc4b6171b65e194d6fbb7afb06f7f65cf2d52a;p=luatex-ja%2Fluatexja.git
diff --git a/doc/luatexja.dtx b/doc/luatexja.dtx
index 40b69f6..7c27d29 100644
--- a/doc/luatexja.dtx
+++ b/doc/luatexja.dtx
@@ -8,6 +8,7 @@
%%%%% section ==> ç«
%%%%% subsection => ç¯
+\IfFileExists{luatex85.sty}{\RequirePackage{luatex85}}{}
%\documentclass[a4paper,titlepage]{article}
%\documentclass[a4paper,titlepage]{ltjsarticle}
@@ -15,26 +16,40 @@
%%%%%%%%
\makeatletter
%%%%%%%%
+\def\pgfsysdriver{pgfsys-pdftex.def}
\directlua{if jit then jit.on() end}
\usepackage{metalogo,amsmath,array,tikz,pict2e,multienum,float}
\usepackage{booktabs,multicol,luatexja-ruby}
\usepackage[all]{xy}
-\usepackage{lltjext,alltt}
+\usepackage{lltjext,alltt,comment}
+
+%%%%%%%% Lua GC
+\patchcmd\@outputpage{\stepcounter{page}}{%
+ \directlua{%
+ if jit then
+ local k = collectgarbage("count")
+ if k>900000 then
+ collectgarbage("collect")
+ texio.write_nl("term and log", "GC: ", math.floor(k), math.floor(collectgarbage("count")))
+ end
+ end
+ }%
+ \stepcounter{page}%
+}{}{}
%%%%%%%% fonts
\usepackage{luatexja-otf}
-\directlua{luatexja.otf.enable_ivs()}
-\expandafter\let\csname xetex_suppressfontnotfounderror:D\endcsname\suppressfontnotfounderror
-\usepackage[match]{luatexja-fontspec}
-\usepackage[kozuka-pr6n]{luatexja-preset}
-\usepackage{unicode-math}
+\usepackage[no-math]{fontspec}
\setmainfont[Ligatures=TeX]{Linux Libertine O}
\setmonofont[Scale=MatchLowercase, ItalicFont=lmmono10-italic.otf,
BoldFont=lmmonolt10-bold.otf, BoldItalicFont=lmmonolt10-boldoblique.otf
]{lmmono10-regular.otf}
+\setsansfont[Scale=MatchLowercase,Ligatures=TeX]{Linux Biolinum O}
+\usepackage[match]{luatexja-fontspec}
+\usepackage[kozuka-pr6n]{luatexja-preset}
+\usepackage{unicode-math}
\setmonojfont{KozGoPr6N-Regular.otf}
\setmathfont[Scale=MatchLowercase]{xits-math.otf}
-\setsansfont[Scale=MatchLowercase,Ligatures=TeX]{Linux Biolinum O}
\setLaTeXa{\scshape a}
%<*ja>
@@ -42,7 +57,7 @@
\def\headfont{\normalfont\bfseries\gtfamily}\normalsize
%
%<*en>
-\frenchspacing
+\frenchspacing\sloppy
\usepackage[margin=25mm,lmargin=30mm,rmargin=30mm,footskip=6mm]{geometry}
\usepackage{luatexja-adjust}\ltjdisableadjust
\parskip=\smallskipamount
@@ -57,7 +72,12 @@
\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
@@ -101,10 +121,12 @@
%<*en>
\title{The \LuaTeX-ja package}
\author{The \LuaTeX-ja project team}
+\date{\LuaTeXjaversion~(\today)}
%
%<*ja>
\title{\LuaTeX-jaããã±ã¼ã¸}
\author{\LuaTeX-jaããã¸ã§ã¯ããã¼ã }
+\date{\LuaTeXjaversionï¼\todayï¼}
%
\hypersetup{%
unicode,
@@ -120,6 +142,16 @@
pdftitle={LuaTeX-jaããã±ã¼ã¸}
%
}
+%<*ja>
+\def\HyRef@autoref#1#2{%
+ \begingroup
+ \Hy@safe@activestrue
+ \expandafter\HyRef@autosetref\csname r@#2\endcsname{#2}{#1}%
+ \endgroup\ltjalchar"200C %" 欧æã´ã¼ã¹ã
+}
+\def\figureautorefname{å³}
+\def\tableautorefname{表}
+%
%%%%%%%% definition env.
\usepackage{amsthm}
@@ -162,8 +194,8 @@
\def\_{\leavevmode \kern .06em\vbox {\hrule \@width .333em}}
\def\cs#1{\texttt{\upshape
- \texorpdfstring{\textbackslash\ltjsetparameter{autoxspacing=false}#1}{\textbackslash#1}}}
-
+ \texorpdfstring{\textbackslash\hbox{\ltjsetparameter{autoxspacing=false}#1}}{\textbackslash#1}}}
+\ltjsetparameter{alxspmode={`\\,allow}}
%%%%%%%%
\makeatother
%%%%%%%%
@@ -175,10 +207,13 @@
width:\hfill\ #2\cr height:\hfill\ #3\cr depth:\hfill\ #4\cr
}}}}}\,}
-\protected\def\Param#1{\hyperlink{fld:#1}{\underline{\smash{\textsf{#1}}}}} % parameter name
-\protected\def\DParam#1{\hypertarget{fld:#1}{\underline{\smash{\textsf{#1}}}}} % parameter name (definition)
-\protected\def\Pkg#1{\textsf{#1}} % packages/classes
-
+\makeatletter
+\def\myghost{\ifmmode\else\ltjalchar"200C \fi}
+\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)
+\def\Pkg#1{\texorpdfstring{\textsf{#1}}{#1}} % packages/classes
+\ltjsetparameter{alxspmode={"200C,allow}}
\begin{document}
\lstset{
@@ -307,7 +342,7 @@ For more detailed information, see Part~\ref{part-imp} or other sections of this
%<*en>
\paragraph{Command names} \pTeX\ addes several primitives, such as \cs{kanjiskip},
-\cs{prebreakpenalty},~and,~\cs{ifydir}. They can be used as follows:
+\cs{prebreakpenalty},~and \cs{ifydir}. They can be used as follows:
%
%<*ja>
\paragraph{å½ä»¤ã®å称} ä¾ãã°\pTeX ã§è¿½å ããã次ã®ãããªããªããã£ã
@@ -431,7 +466,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$æµã®çµæ¹åããµãã¼ããã¦ãããï¼ããã¨ã¯å
¨ãã®å¥ç©ã§ãããã¨
ã«æ³¨æãã¦ã»ããï¼
ç¹ã«ï¼ç°ãªã£ãçµæ¹åã®ããã¯ã¹ãæ±ãå ´åã«ã¯
@@ -452,13 +487,14 @@ Japanese characters in discretionary break (\cs{discretionary}) is not supported
%<*en>
\paragraph{Greek and Cyrillic letters, and ISO~8859-1 symbols}
By default, \LuaTeX-ja uses Japanese fonts to typeset Greek and Cyrillic letters,
- To change this behavior,
+ To change this behavior,
put \verb!\ltjsetparameter{jacharrange={-2,-3}}! in the preamble.
- For the detailed description, see Subsection~\ref{ssec-setrange}.
+ For the detailed description, see Subsection~\ref{ssec:setrange}.
-From this version, characters which belongs both ISO~8859-1 and JIS~X~0208,
- such as \P~and~\S, are now typeset in alphabetic fonts. This means that
- without the \cs{fontspec} (and~\Pkg{luatexja-fontspec}) package, these characters are not typeset correctly.
+From version~20150906.0, characters which belongs both ISO~8859-1 and JIS~X~0208,
+such as \P~and~\S, are now typeset in alphabetic fonts.
+If you are using \LaTeXe\ prior to 2017/01/01, these characters are not typeset correctly
+without the \cs{fontspec} (and~\Pkg{luatexja-fontspec}) package.
%
%<*ja>
\paragraph{ã®ãªã·ã£æåã»ããªã«æåã¨ISO~8859-1ã®è¨å·}
@@ -470,13 +506,16 @@ From this version, characters which belongs both ISO~8859-1 and JIS~X~0208,
\end{lstlisting}
ãå
¥ããã¨
ä¸è¨ç¨®é¡ã®æåã¯æ¬§æãã©ã³ããç¨ãã¦çµã¾ããããã«ãªãï¼
- 詳ãã説æã¯\ref{ssec-setrange}ç¯ãåç
§ãã¦ã»ããï¼
+ 詳ãã説æã¯\ref{ssec:setrange}ç¯ãåç
§ãã¦ã»ããï¼
ã¾ãï¼\P,~\S ã¨ãã£ãISO~8859-1ã®ä¸ä½é åã¨JIS~X~0208ã®å
±éé¨åã®æåã¯
- æ¬ãã¼ã¸ã§ã³ããæ¨æºã§æ¬§ææ±ãã¨ãªãï¼\emph{ã½ã¼ã¹ä¸ã«ç´æ¥è¨è¿°ãã¦ã
- \Pkg{fontspec}ããã±ã¼ã¸ï¼ããã³\Pkg{luatexja-fontspec}ããã±ã¼ã¸ï¼éèªã¿è¾¼ã¿ã®ç¶æ
ã§ã¯åºåãããªããªã£ã}ï¼
- åææ±ãã§åºåããã«ã¯ \verb+\ltjjachar`§+ ã®ããã« \cs{ltjjachar} å½ä»¤
- ã使ãã°ããï¼
+ ãã¼ã¸ã§ã³20150906.0ããæ¨æºã§æ¬§ææ±ãã¨ãªã£ãï¼\LaTeXe\ 2017/01/01以éã§ã¯
+æ¨æºã§TUã¨ã³ã³ã¼ãã£ã³ã°ã®Latin Modernãã©ã³ãã使ãããã®ã§ï¼
+ç¹ã«ä½ãããã½ã¼ã¹ä¸ã«ãã®ã¾ã¾è¨è¿°ãã¦ããããã®æåãåºåããã
+\footnote{\LaTeXe\ 2017/01/01ããåã§ã¯ï¼ã½ã¼ã¹ä¸ã«ç´æ¥è¨è¿°ãã¦ã
+ \Pkg{fontspec}ããã±ã¼ã¸ï¼ããã³\Pkg{luatexja-fontspec}ããã±ã¼ã¸ï¼éèªã¿è¾¼ã¿ã®ç¶æ
ã§ã¯åºåãããªãï¼}ï¼
+åææ±ãã§åºåããã«ã¯ \verb+\ltjjachar`§+ ã®ããã« \cs{ltjjachar} å½ä»¤
+ã使ãã°ããï¼
%
%\subsection{Notations}
@@ -492,11 +531,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>
@@ -540,10 +579,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}
@@ -601,17 +640,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.80.0 (or later)
-\item \Pkg{luaotfload} v2.5 (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{everysel} (if you want to use \LuaTeX-ja with \LaTeXe)
-\item \Pkg{fontspec} v2.4
+\item \Pkg{etoolbox}, \Pkg{everysel} (if you want to use \LuaTeX-ja with \LaTeXe)
+\item \Pkg{ltxcmds}, \Pkg{pdftexcmds}, \Pkg{filehook}, \Pkg{atbegshi}
+\item \Pkg{fontspec} v2.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, this version of \LuaTeX-ja no longer supports \TeX~Live~2014 (or older version).
+%In summary, \LuaTeX-ja version 20180825.0 (or~later) no longer supports \TeX~Live~2016.
%<*ja>
-è¦ç´ããã¨ï¼æ¬ãã¼ã¸ã§ã³ã®\LuaTeX-jaã¯\TeX~Live~2014以åã§ã¯åä½ããªã\footnote{%
+è¦ç´ããã¨ï¼ãã¼ã¸ã§ã³20180825.0以éã®\LuaTeX-jaã¯\TeX~Live~2016以åã§ã¯åä½ããªã\footnote{%
ãã£ã¨ãï¼èªåã§\LuaTeX ã®ãã¤ããªãSubversionãªãã¸ããªãããã«ããã¦ããã°è©±ã¯å¥ã§ããï¼
}ï¼
%
@@ -639,21 +679,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{æåã¤ã³ã¹ãã¼ã«æ¹æ³}
@@ -779,14 +804,28 @@ For changes from \pTeX, see Subsection~\ref{ssec:chgptex}.
%
%<*en>
\item \LuaTeX-ja is very slower than \pTeX.
-Generally speaking, LuaJIT\TeX\ processes \LuaTeX-ja
-about 30\% faster than \LuaTeX, but not always.
+ Generally speaking, LuaJIT\TeX\ processes \LuaTeX-ja
+ about 30\% faster than \LuaTeX, but not always%
+ \footnote{%
+ LuaJIT has 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>
\item \LuaTeX-jaã¯åä½ã\pTeX ã«æ¯ã¹ã¦é常ã«é
ãï¼
ã³ã¼ãã調æ´ãã¦å¾ã
ã«éããã¦ãããï¼ã¾ã æºè¶³ã§ããé度ã§ã¯ãªãï¼
LuaJIT\TeX ãç¨ããã¨\LuaTeX ã®ã ããã1.3åã®é度ã§åãããã§ãããï¼
-IPA mjææãªã©ã®å¤§ãããã©ã³ããç¨ããå ´åã«ã¯\LuaTeX ãããé
ããªããã¨ãããï¼
+IPA mjææãªã©ã®å¤§ãããã©ã³ããç¨ããå ´åã«ã¯\LuaTeX ãããé
ããªããã¨ããã
+ \footnote{%
+ LuaJITã¯1\,GBï¼ãããã¯2\,GBï¼ã®ã¡ã¢ãªå¶éãªã©ï¼ããã¤ãã®å¶éäºé
ããããã¨ãç¥ããã¦ããï¼ãã®ããï¼
+ 大ããã½ã¼ã¹ãã¡ã¤ã«ãLuaJIT\TeX ã§ã¿ã¤ãã»ããããã¨Luaã®å´ã§``out of memory''ã¨ã©ã¼ãçºçãã¦ãã¾ãï¼
+ æ¬ããã¥ã¡ã³ãã®ããã«ï¼ãåãã¼ã¸ãã¨ã«Luaã§ä½¿ã£ã¦ããã¡ã¢ãªå®¹éããã§ãã¯ãï¼
+ å¿
è¦ãªã\texttt{collectgarbage("collect")}ã§ã¬ãã¼ã¸ã³ã¬ã¯ã¿ãå®è¡ãããã¨
+ ç¶æ³ãå¤å°æ¹åããããããããªãï¼
+ ã¾ãï¼LuaJIT\TeX ã§IPA mjææãªã©ã®ã大ããããã©ã³ããå©ç¨ããå ´åã¯ãã©ã³ããã£ãã·ã¥ã®ä¿åã«å¤±æãï¼
+ æ¯åãã©ã³ããèªã¿è¾¼ã¾ãªããã°ãªããçµæçã«æéãããããã¨ãããï¼
+ }ï¼
%
\item%
@@ -815,7 +854,7 @@ bad argument #1 to 'open' (string expected, got nil)
If so, please execute a batch file which is written on
\href{https://osdn.jp/projects/luatex-ja/wiki/FrontPage%28en%29}{ the Project Wiki (English)}.
This batch file creates a temporary directory, copy CMaps in it,
-run a test file which loads \LuaTeX-ja in this directory,
+run a test file which loads \LuaTeX-ja in this directory,
and finally delete the temporary directory.
%
%<*ja>
@@ -830,7 +869,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 ã§ä½¿ãããã«ã¯ï¼åã«æ¬¡ã®è¡ãã½ã¼ã¹ãã¡ã¤ã«ã®åé ã«è¿½å ããã°ããï¼
@@ -847,7 +886,7 @@ and finally delete the temporary directory.
\begin{tabular}{cccccc}
\toprule
\textbf{direction}&
-\textbf{classification}&\textbf{font name}&\bf ``10\,pt''&\bf``7\,pt''&\bf``5\,pt''\\\midrule
+\textbf{classification}&\textbf{font name}&\bfseries ``10\,pt''&\bfseries ``7\,pt''&\bfseries ``5\,pt''\\\midrule
\smash{\raisebox{-1ex}{\emph{yoko} (horizontal)}}&
\emph{mincho}&IPAex Mincho&\cs{tenmin}&\cs{sevenmin}&\cs{fivemin}\\
&\emph{gothic}&IPAex Gothic&\cs{tengt} &\cs{sevengt} &\cs{fivegt}\\
@@ -864,7 +903,7 @@ and finally delete the temporary directory.
\begin{center}\small
\begin{tabular}{cccccc}
\toprule
-\emph{çµæ¹å}&\emph{åä½}&\emph{ãã©ã³ãå}&\bf ``10\,pt''&\bf``7\,pt''&\bf``5\,pt''\\\midrule
+\emph{çµæ¹å}&\emph{åä½}&\emph{ãã©ã³ãå}&\bfseries``10\,pt''&\bfseries``7\,pt''&\bfseries``5\,pt''\\\midrule
\smash{\raisebox{-1ex}{横çµ}}&
ææä½&IPAexææ&\cs{tenmin}&\cs{sevenmin}&\cs{fivemin}\\
&ã´ã·ãã¯ä½&IPAexã´ã·ãã¯&\cs{tengt} &\cs{sevengt} &\cs{fivegt}\\
@@ -879,11 +918,11 @@ and finally delete the temporary directory.
\begin{itemize}
%<*en>
\item With \texttt{luatexja.cfg}, one can use other fonts
-as ``default'' Japanese fonts (Subsection~\ref{ssec-cfg}).
+as ``default'' Japanese fonts (Subsection~\ref{ssec:cfg}).
%
%<*ja>
\item \texttt{luatexja.cfg} ãç¨ãããã¨ã«ãã£ã¦ï¼æ¨æºåæãã©ã³ãã
-IPAexãã©ã³ãããå¥ã®ãã©ã³ãã«ç½®ãæãããã¨ãã§ããï¼\ref{ssec-cfg}ç¯ãåç
§ï¼
+IPAexãã©ã³ãããå¥ã®ãã©ã³ãã«ç½®ãæãããã¨ãã§ããï¼\ref{ssec:cfg}ç¯ãåç
§ï¼
%
%<*en>
@@ -916,7 +955,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
@@ -940,7 +979,7 @@ plfonts.dtx} and \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>
@@ -949,20 +988,20 @@ 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}
\toprule
@@ -972,9 +1011,9 @@ 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}.
+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種é¡ãç¨ããï¼
@@ -987,7 +1026,7 @@ Note that the bold series in both family are same as the medium series of \emph{
\bottomrule
\end{tabular}
\end{center}
-\item æ¨æºã§ã¯ï¼æ¬¡ã®ãã©ã³ããã¡ããªãç¨ããããï¼
+\item æ¨æºã§ã¯ï¼æ¬¡ã®ãã©ã³ããç¨ããããï¼
\begin{center}\small
\begin{tabular}{ccccc}
\toprule
@@ -997,19 +1036,46 @@ Note that the bold series in both family are same as the medium series of \emph{
\bottomrule
\end{tabular}
\end{center}
-ã©ã¡ãã®ãã¡ããªã«ããã¦ãï¼ãã®boldã·ãªã¼ãºã§ä½¿ããããã©ã³ãã¯
-ã´ã·ãã¯ä½ã®mediumã·ãªã¼ãºã§ä½¿ããããã©ã³ãã¨åãã§ãããã¨ã«æ³¨æï¼
+ã©ã¡ãã®ãã¡ããªã«ããã¦ãï¼å¤ªå(\cs{bfseries})ã®ãã©ã³ãã¯
+ã´ã·ãã¯ä½ä¸å(\cs{gtfamily}\cs{mdseries})ã§ä½¿ããããã©ã³ãã¨åãã§ãããã¨ã«æ³¨æï¼
ã¾ãï¼ã©ã¡ãã®ãã¡ããªã§ãã¤ã¿ãªãã¯ä½ã»ã¹ã©ã³ãä½ã¯å®ç¾©ãããªãï¼
+
+ åæã®å¤ªåã表ãã·ãªã¼ãºåã¯ï¼ï¼å
ã
ã®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 \cs{jttdefault}%
+ \footnote{%
+ When \Pkg{ltjsclasses} classes are used, or
+ \Pkg{luatexja-fontspec} (or \Pkg{luatexja-preset}) is loaded with \texttt{match} option,
+ \cs{ttfamily} changes the current Japanese font amily to \cs{jttdefault}.
+ These classes and packages also redefine \cs{jttdefault} to
+ \cs{gtdefault} (\emph{gothic}~family).
+ } specifies the Japanese font family in \cs{verb}~or~\texttt{verbatim} environment.
+ The default value of \cs{jttdefault} is \cs{mcdefault}, so the mincho family is used.
+%
+%<*ja>
+ \item \cs{verb} ã \texttt{verbatim} ç°å¢ä¸ã®åææåã«ä½¿ãããåæãã©ã³ããã¡ããªã¯
+ \ \cs{jttdefault} ã§æå®ãã%
+ \footnote{%
+ \Pkg{ltjsclasses}ã使ç¨ãããï¼ããã㯠\texttt{match} ãªãã·ã§ã³ãæå®ãã¦\Pkg{luatexja-fontspec}%
+ ã\Pkg{luatexja-preset}ããã±ã¼ã¸ãèªã¿è¾¼ãã ã¨ãã¯ï¼åãªã \cs{ttfamily} ã«ãã£ã¦ãåæãã©ã³ãã
+ \ \cs{jttdefault}\ ã«å¤æ´ãããï¼ã¾ãï¼ãããã®ã¯ã©ã¹ãã¡ã¤ã«ãããã±ã¼ã¸ã¯
+ \ \cs{jttdefault}\ ã \cs{gtdefault}ï¼ã´ã·ãã¯ä½ï¼ã«åå®ç¾©ããï¼
+ }ï¼æ¨æºå¤ã¯ \cs{mcdefault}ï¼ã¤ã¾ãææä½ã¨ãã¦ç¨ããã®ã¨
+ åããã©ã³ããã¡ããªã§ããï¼
+%
%<*en>
\item If you use the \Pkg{beamer} class with the default font theme (which uses sans serif
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}ã¯ã©ã¹ãæ¢å®ã®ãã©ã³ãè¨å®ã§ä½¿ãå ´åï¼æ¢å®æ¬§æãã©ã³ãããµã³ã»ãªããªã®
@@ -1020,6 +1086,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}
@@ -1032,9 +1107,17 @@ classes in \pLaTeX) and \Pkg{jsclasses} (classes by Haruhiko
Okumura), namely, \Pkg{ltjclasses}\footnote{%
\texttt{ltjarticle.cls},~\texttt{ltjbook.cls}, \texttt{ltjreport.cls},
\texttt{ltjtarticle.cls}, \texttt{ltjtbook.cls}, \texttt{ltjtreport.cls}.
- The latter \texttt{ltjt*.cls} are for vertically writtened Japanese documents.
+ The latter \texttt{ltjt*.cls} are for vertically written Japanese documents.
} and \Pkg{ltjsclasses}\footnote{%
- \texttt{ltjsarticle.cls},~\texttt{ltjsbook.cls},~\texttt{ltjskiyou.cls}.}.
+ \texttt{ltjsarticle.cls},~\texttt{ltjsbook.cls}, \texttt{ltjsreport.cls},~\texttt{ltjskiyou.cls}.}.
+
+Original \Pkg{jsclasses} use \cs{mag}~primitive to set the main document font size.
+However, \LuaTeX\ beta-0.87.0~or~later does not support \cs{mag} in PDF~output,
+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>
ããããªããï¼ä¸è¨ã®è¨å®ã¯æ¥æ¬èªã®ææ¸ã«ã¨ã£ã¦ååã¨ã¯è¨ããªãï¼
@@ -1047,23 +1130,57 @@ Okumura), namely, \Pkg{ltjclasses}\footnote{%
縦çµç¨ã¯ \texttt{ltjtarticle.cls}, \texttt{ltjtbook.cls}, \texttt{ltjtreport.cls} ã§ããï¼
}ï¼
\Pkg{ltjsclasses}\footnote{%
- \texttt{ltjsarticle.cls},~\texttt{ltjsbook.cls},~\texttt{ltjskiyou.cls}.}%
+ \texttt{ltjsarticle.cls},~\texttt{ltjsbook.cls}, \texttt{ltjsreport.cls},~\texttt{ltjskiyou.cls}.}%
ãããããç¨æããã¦ããï¼
+
+å
ã
ã®\Pkg{jsclasses}ã§ã¯æ¬æã®ãã©ã³ããµã¤ãºãè¨å®ããã®ã«\cs{mag}ããªããã£ãã使ããã¦ãããï¼
+\LuaTeX~beta-0.87.0以éã§ã¯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>
\paragraph{è注ã¨ããã ããã¼ãã®åºåé åº}
-ãªãªã¸ãã«ã®\LaTeX ã§ã¯è注ãããã ããã¼ãã®ä¸ã«æ¥ãããã«ãªã£ã¦ããï¼
-\pLaTeX ã§ã¯è注ãããã ããã¼ãã®ä¸ã«æ¥ãããã«å¤æ´ããã¦ããï¼
+ãªãªã¸ãã«ã®\LaTeX ã§ã¯è注ã¯ããã ããã¼ãã®ä¸ã«åºåããï¼ã¾ã\cs{raggedbottom}å½ä»¤ã§ãã¼ã¸ã®é«ããä¸æãã§ãããã¨ã許ããå ´åã«ã¯
+è注ã®ä¸ç«¯ã®åç´ä½ç½®ããã¼ã¸ã«å¿ãã¦å¤ããããã«ãªã£ã¦ããï¼
+ä¸æ¹ï¼æ¥æ¬èªã®çµçã§ã¯è注ã¯ããã ããã¼ãã®ä¸ã«æ¥ãã®ãä¸è¬çã§ããã®ã§ï¼
+\pLaTeX ã§ã¯ãã®ããã«å¤æ´ããã¦ããï¼
+ããã«\cs{raggedbottom}å½ä»¤ãå®è¡ããå¾ã§ãè注ã¯å¸¸ã«ãã¼ã¸ã®ä¸ç«¯ã«åºå®ãããããã«ãªã£ã¦ããï¼
\LuaTeX-jaã§ã¯ã欧æã¯ã©ã¹ã®ä¸ã«ã¡ãã£ã¨ã ãæ¥æ¬èªãå
¥ãããã¨ããå©ç¨ãèæ
®ãï¼
-è注ã¨ããã ããã¼ãã®é åºã¯\LaTeX éãã¨ããï¼ãã\pLaTeX ã®åºåé åºã好ã¿ãªãã°ï¼
-\Pkg{stfloats}ããã±ã¼ã¸ãå©ç¨ãã¦
-\begin{lstlisting}
- \usepackage{stfloats}\fnbelowfloat
-\end{lstlisting}
-ã®ããã«ããã°ããï¼\Pkg{footmisc}ããã±ã¼ã¸ã \texttt{bottom}\ ãªãã·ã§ã³ãæå®ãã¦
-èªã¿è¾¼ãã¨ããæ¹æ³ããããï¼ããã ã¨ããã ããã¼ãã¨è注ã®éãéãã¦ãã¾ãï¼
+è注ã¨ããã ããã¼ãã®é åºï¼åã³\cs{raggedbottom}æã®è注ã®åç´ä½ç½®ã¯\LaTeX éãã¨ããï¼
+ããããå¶å¾¡ããã«ã¯ä»¥ä¸ã®æ段ãããï¼
+\begin{itemize}
+ \item \pLaTeX ã®ããã«ï¼è注ãããã ããã¼ãã®ä¸ã«çµãå ´åã«ã¯
+ \Pkg{stfloats}ããã±ã¼ã¸ãå©ç¨ãã¦
+ \begin{lstlisting}
+ \usepackage{stfloats}\fnbelowfloat
+ \end{lstlisting}
+ ã¨ããï¼ãã®ç¶æ³ãããè注ãããã ããã¼ãã®ä¸ã«çµããã¨ãã\LaTeX ã®æ¨æºã®æåã«æ»ããããã°ï¼
+ \Pkg{stfloats}ããã±ã¼ã¸ã®\cs{fnunderfloat}å½ä»¤ã使ç¨ããï¼
+ \item \cs{raggedbottom}æã®è注ã®åç´ä½ç½®ã¯ï¼\cs{iffnfixbottom}ã¨ããçå½å¤ã§å¶å¾¡ããï¼
+ \begin{description}
+ \item[å½(\cs{fnfixbottomfalse})ã®å ´å] \LaTeX æ¨æºã¨åããï¼æ¬æã¨è注ã®éã®ç©ºç½ã¯\cs{skip}\cs{footins}ã®ã¿ï¼
+ å¾ã£ã¦è注ã®åç´ä½ç½®ã¯ãã¼ã¸ã«ããå¤åããï¼
+ \item[ç(\cs{fnfixbottomtrue})ã®å ´å] \pLaTeX ã\Pkg{footmisc}ããã±ã¼ã¸ã\texttt{bottom}ãªãã·ã§ã³ã§
+ èªã¿è¾¼ãã å ´åã®ããã«ï¼è注ã¯å¸¸ã«ãã¼ã¸ã®ä¸ç«¯ã«åºå®ãããï¼
+ \end{description}
+\item ãã ãï¼\LuaTeX-jaãæä¾ãããäºæã¯ã©ã¹ã(\Pkg{ltjclasses}, \Pkg{ltjsclasses})ã§ã¯ï¼
+ \pLaTeX ã¨åãããããã«ä»¥ä¸ã®ããã«ãã¦ããï¼
+ \begin{itemize}
+ \item \cs{fnfixbottomtrue}ãèªåçã«å®è¡ããã
+ \item \Pkg{stfloats}ããã±ã¼ã¸ã\LuaTeX ããåç
§ã§ããå ´æã«ãã£ãå ´åã¯
+ èªåçã«èªã¿è¾¼ã¿ï¼\cs{fnbelowfloat}ãå®è¡ããï¼
+ \end{itemize}
+\end{itemize}
+ãªãï¼\Pkg{stfloats}ããã±ã¼ã¸ã使ã代ããã«ï¼
+\Pkg{footmisc}ããã±ã¼ã¸ã \texttt{bottom}ãªãã·ã§ã³ãæå®ãã¦èªã¿è¾¼ã
+ã¨ããã解決æ³ããããï¼
%
%%% âã¯è±è¨³ããªã
@@ -1102,17 +1219,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)}
@@ -1175,7 +1292,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+}+ ã¯ï¼å¼æ°ã«ããåæå´ã欧æ
@@ -1184,13 +1301,13 @@ 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>
\item For defining a Japanese font family, use
\cs{DeclareKanjiFamily} instead of
- \cs{DeclareFontFamily}. (In previous version of \LuaTeX-ja,
+ \cs{DeclareFontFamily}. (In previous version of \LuaTeX-ja,
using \cs{DeclareFontFamily} didn't cause any problem. But this no longer applies
the current version.)
\item Defining a Japanese font shape can be done by usual \cs{DeclareFontShape}:
@@ -1208,8 +1325,8 @@ 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}
@@ -1265,19 +1382,19 @@ $5\in ç´ :=\{\,p\in\mathbb N:\text{$p$ is a prime}\,\}$.
%<*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}.
%
%<*ja>
ã¾ã\LuaTeX-jaããã¸ã§ã¯ãã§ã¯ï¼åææåãèå¥åã¨ãã¦ç¨ãããããã¨ã¯ã»ã¨ãã©ãªã
ã¨èãã¦ããï¼ãããã£ã¦ãã®ç¯ã§ã¯æ°å¼ã¢ã¼ãä¸ã®åæãã©ã³ããå¤æ´ããæ¹æ³ã«ã¤ãã¦ã¯
-è¨è¿°ããªãï¼ãã®æ¹æ³ã«ã¤ãã¦ã¯\ref{ssec-math}ç¯ãåç
§ã®ãã¨ï¼
+è¨è¿°ããªãï¼ãã®æ¹æ³ã«ã¤ãã¦ã¯\ref{ssec:math}ç¯ãåç
§ã®ãã¨ï¼
%
%\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,
+To use the functionality of the \Pkg{fontspec} package to Japanese fonts,
it is needed to load the \Pkg{luatexja-fontspec} package in the preamble, as follows:
\begin{quote}
\ttfamily \textbackslash usepackage[]\{luatexja-fontspec\}
@@ -1302,16 +1419,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}$^*$\\
@@ -1319,36 +1441,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{newfontface}
-&\cs{defaultfontfeatures}&\cs{addfontfeatures}\\
+&\cs{newfontfamily}&\cs{renewfontfamily}$^{**}$&\cs{setfontfamily}$^{**}$\\
+\midrule
+Japanese fonts
+&\cs{newjfontface}&\cs{defaultjfontfeatures}&\cs{addjfontfeatures}\\
+alphabetic fonts
+&\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}{cllll}
\toprule
åæ
-&\cs{jfontspec}&\cs{setmainjfont}&\cs{setsansjfont}\\
+&\cs{jfontspec}&\cs{setmainjfont}&\cs{setsansjfont}&\cs{setmonojfont}$^*$\\
欧æ
-&\cs{fontspec}&\cs{setmainfont}&\cs{setsansfont}\\
+&\cs{fontspec}&\cs{setmainfont}&\cs{setsansfont}&\cs{setmonofont}\\
\midrule
åæ
-&\cs{newjfontfamily}&\cs{newjfontface}&\cs{defaultjfontfeatures}\\
+&\cs{newjfontfamily}&\cs{renewjfontfamily}$^{**}$&\cs{setjfontfamily}$^{**}$\\
欧æ
-&\cs{newfontfamily}&\cs{newfontface}&\cs{defaultfontfeatures}\\
+&\cs{newfontfamily}&\cs{renewfontfamily}$^{**}$&\cs{setfontfamily}$^{**}$\\
\midrule
åæ
-&\cs{addjfontfeatures}\\
+&\cs{newjfontface}&\cs{defaultjfontfeatures}&\cs{addjfontfeatures}\\
欧æ
-&\cs{addfontfeatures}\\
+&\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:
@@ -1379,13 +1527,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}
@@ -1432,1213 +1590,773 @@ 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,
+ 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]
%<*en>
-With this option, Japanese fonts are selected using functionality of
-the \Pkg{luatexja-fontspec} package. This means that the \Pkg{fontspec} package is
- automatically loaded by this package.
-\emph{This option is enabled by default.}
-
-If you need to pass some options to \Pkg{fontspec}, you can load \Pkg{fontspec} manually
-before \Pkg{luatexja-preset}:
+\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}ããã±ã¼ã¸ãèªåã§èªã¿è¾¼ã¾ãããã¨ãæå³ããï¼
-\emph{ãã®ãªãã·ã§ã³ã¯æ¨æºã§æå¹ã«ãªã£ã¦ããï¼}
+\subsection{\cs{CID}, \cs{UTF}ã¨\Pkg{otf}ããã±ã¼ã¸ã®ãã¯ã}
+\pLaTeX ã§ã¯ï¼JIS~X~0208ã«ãªãAdobe-Japan1-6ã®æåãåºåããããã«ï¼
+é½è¤ä¿®ä¸éæ°ã«ãã\Pkg{otf}ããã±ã¼ã¸ãç¨ãããã¦ããï¼ãã®ããã±ã¼ã¸ã¯
+åºãç¨ãããã¦ããããï¼\LuaTeX-jaã«ããã¦ã\Pkg{otf}ããã±ã¼ã¸ã®æ©è½ã®
+ä¸é¨ãï¼\Pkg{luatexja-otf}ã¨ããå¥ã®ããã±ã¼ã¸ã¨ãã¦ï¼å®è£
ããï¼
+%
-ãã\Pkg{fontspec}ããã±ã¼ã¸ã«ä½ããã®ãªãã·ã§ã³ã渡ãå¿
è¦ããã
-\footnote{ä¾ãã°ï¼æ°å¼ãã©ã³ãã¾ã§ç½®æããã¦ãã¾ãï¼\cs{mathit}ã«ãã£ã¦ã®ãªã·ã£æåã®
-æä½å¤§æåãåºãªããªãï¼ãªã©ï¼}å ´åã¯ï¼
-次ã®ããã«\Pkg{luatexja-preset}ã®åã«\Pkg{fontspec}ãæåã§èªã¿ããã°è¯ãï¼
+\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}) ã®æ¹æ³ã§æåã§æå®ããå¿
è¦ãããï¼
%
-\begin{lstlisting}
-\usepackage[no-math]{fontspec}
-\usepackage[...]{luatexja-preset}
-\end{lstlisting}
-\item[nfssonly]
+%\subsection{Changing default Japanese fonts}
+%\subsection{æ¨æºåæãã©ã³ãã®å¤æ´}
+\label{ssec:cfg}
%<*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.
+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.
-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:
+For example,
\begin{lstlisting}
-\usepackage{fontspec}
-\usepackage[hiragino-pron,nfssonly]{luatexja-preset}
+\def\ltj@stdmcfont{IPAMincho}
+\def\ltj@stdgtfont{IPAGothic}
+\end{lstlisting}
+makes that IPA~Mincho and IPA~Gothic will be used as default Japanese fonts, instead of
+IPAex~Mincho and IPAex~Gothic.
+
+For another example, the following two lines makes that
+non-embedded fonts Ryumin-Light~and~GothicBBB-Medium as default Japanese fonts
+(as the earlier version of \LuaTeX-ja):
+\begin{lstlisting}
+\def\ltj@stdmcfont{psft:Ryumin-Light}
+\def\ltj@stdgtfont{psft:GothicBBB-Medium}
\end{lstlisting}
-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ã¤ã®åæãã©ã³ããã¡ããªãå®ç¾©ãï¼ããããç¨ããï¼
+\LuaTeX ããè¦ããä½ç½®ã« \texttt{luatexja.cfg} ãããã°ï¼\LuaTeX-jaã¯ãããèªã¿è¾¼ãï¼
+ãã®ãã¡ã¤ã«ãç¨ããã¨plain~\TeX, \LaTeXe ã«ãããæ¨æºåæãã©ã³ãã
+IPAexææã»IPAexã´ã·ãã¯ããå¤æ´ãããã¨ãã§ããï¼
+ãããï¼åºæ¬çã«ã¯\emph{æç« ä¸ã§ç¨ãããã©ã³ãã¯ï¼ä¾ãã° \Pkg{luatexja-preset} ãªã©ã§ï¼
+ææ¸ã½ã¼ã¹å
ã§æå®ããã¹ã}ã§ããï¼ãã® \texttt{luatexja.cfg} ã¯ï¼
+ãIPAexãã©ã³ããã¤ã³ã¹ãã¼ã«ã§ããªãããªã©ï¼IPAexãã©ã³ãã使ç¨ã§ããªãå ´åã«ã®ã¿
+å¿æ¥å¦ç½®çã«ç¨ããã¹ãã§ããï¼
-æ¬ãªãã·ã§ã³æå®æã«ã¯\Pkg{fontspec}ã»\Pkg{luatexja-fontspec}ããã±ã¼ã¸ã¯
-èªåã§ã¯èªã¿è¾¼ã¾ããªãï¼ãããï¼
+ä¾ãã°
\begin{lstlisting}
-\usepackage{fontspec}
-\usepackage[hiragino-pron,nfssonly]{luatexja-preset}
+\def\ltj@stdmcfont{IPAMincho}
+\def\ltj@stdgtfont{IPAGothic}
\end{lstlisting}
-ã®ããã«ããã°ï¼ãã®ãªãã·ã§ã³ãæå®ããã°
-欧æãã©ã³ãã\Pkg{fontspec}ããã±ã¼ã¸ã®æ©è½ã使ã£ã¦æå®ãããã¨ãã§ããï¼
-ä¸æ¹ï¼
-ããã±ã¼ã¸èªã¿è¾¼ã¿æã«æ¢ã«\Pkg{luatexja-fontspec}ããã±ã¼ã¸ãèªã¿è¾¼ã¾ãã¦
- ããå ´å㯠\texttt{nfssonly} ãªãã·ã§ã³ã¯ç¡è¦ãããï¼
+ã¨è¨è¿°ãã¦ããã°ï¼æ¨æºåæãã©ã³ããIPAææã»IPAã´ã·ãã¯ã¸ã¨å¤
+æ´ãããï¼
+
+
+ãªãï¼20140906.0以åã®ãã¼ã¸ã§ã³ã®ããã«ï¼
+Ryumin-Light, GothicBBB-Mediumã¨ããååã®éåè¾¼ãã©ã³ããç¨ããå ´åã¯
+\begin{lstlisting}
+\def\ltj@stdmcfont{psft:Ryumin-Light}
+\def\ltj@stdgtfont{psft:GothicBBB-Medium}
+\end{lstlisting}
+ã¨è¨è¿°ããã°ããï¼
%
-\item[nodeluxe]
+
+%\section{Changing Internal Parameters}
+%\section{ãã©ã¡ã¼ã¿ã®å¤æ´}
+
%<*en>
-Use one-weighted \textit{mincho} and \textit{gothic} font families.
-This means that \verb+\mcfamily\bfseries+, \verb+\gtfamily\bfseries+ and
-\verb+\gtfamily\mdseries+ use the same font.
-\emph{This option is enabled by default.}
+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>
-\LaTeXe ç°å¢ä¸ã®æ¨æºè¨å®ã®ããã«ï¼ææä½ã»ã´ã·ãã¯ä½ãå1ã¦ã§ã¤ãã§ä½¿ç¨ããï¼
-ããå
·ä½çã«è¨ãã¨ï¼ãã®è¨å®ã®ä¸ã§ã¯
-\ \verb+\mcfamily\bfseries+, \verb+\gtfamily\bfseries+,
-\verb+\gtfamily\mdseries+ã¯ã¿ãªåããã©ã³ãã¨ãªãï¼
-\emph{ãã®ãªãã·ã§ã³ã¯æ¨æºã§æå¹ã«ãªã£ã¦ããï¼}
+\LuaTeX-jaã«ã¯å¤ãã®ãã©ã¡ã¼ã¿ãåå¨ããï¼ããã¦\LuaTeX ã®ä»æ§ã®ããã«ï¼
+ãã®å¤ãã¯\TeX ã®ã¬ã¸ã¹ã¿ã«ã§ã¯ãªãï¼\LuaTeX-jaç¬èªã®æ¹æ³ã§ä¿æããã¦ããï¼
+ãããã®ãã©ã¡ã¼ã¿ãè¨å®ã»åå¾ããããã«ã¯ \cs{ltjsetparameter} 㨠\cs{ltjgetparameter} ã
+ç¨ããï¼
%
-\item[deluxe]
+
+%\subsection{Range of \textbf{JAchar}s}
+%\subsection{\textbf{JAchar}ã®ç¯å²}
+\label{ssec:setrange}
+
%<*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}).
+\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>
-ææä½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})ããæ±ããªãã£ãåæ®ã§ããï¼
+\LuaTeX-jaã¯ï¼Unicodeã® \texttt{U+0080}--\texttt{U+10FFFF} ã®ç©ºéã
+1çªãã217çªã¾ã§ã®\emph{æåç¯å²}ã«åå²ãã¦ããï¼
+åºåã㯠\cs{ltjdefcharrange} ãç¨ãããã¨ã§ï¼ã°ãã¼ãã«ã«ï¼å¤æ´ãããã¨ãã§ãï¼
+ä¾ãã°ï¼æ¬¡ã¯è¿½å æ¼¢åé¢(SIP)ã«ããå
¨ã¦ã®æåã¨ãæ¼¢ããã100çªã®æåç¯å²ãã«è¿½å ããï¼
%
-\item[expert]
+\begin{lstlisting}
+\ltjdefcharrange{100}{"20000-"2FFFF,`æ¼¢}
+\end{lstlisting}
+
%<*en>
-Use horizontal/vertical kana alternates, and define a command \cs{rubyfamily} to use kana
-characters designed for ruby.
+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>
-横çµã»ç¸¦çµå°ç¨ä»®åãç¨ããï¼ã¾ãï¼\cs{rubyfamily} ã§ã«ãç¨ä»®åã使ç¨å¯è½ã¨ãªã\footnote{%
- \cs{rubyfamily}ã¨ã¯ããã¤ã¤ï¼å®éã«ã¯ãã©ã³ããã¡ããªãåãæ¿ããã®ã§ã¯ãªãï¼é常ã§ã¯
- font featureã®è¿½å ï¼\texttt{nfssonly} æå®æã«ã¯ã·ã§ã¤ãã \texttt{rb} ã«åãæ¿ãï¼ï¼
-}ï¼
-%
-\item[bold]
-%Substitute bold series of \textit{gothic} for bold series of \textit{mincho}.
-%ãææã®å¤ªåããã´ã·ãã¯ä½ã®å¤ªåã«ãã£ã¦ä»£æ¿ããï¼
-\item[90jis]
-%Use 90JIS glyph variants if possible.
-%åºæ¥ãéã90JISã®åå½¢ã使ãï¼
-\item[jis2004]
-%Use JIS2004 glyph variants if possible.
-%åºæ¥ãéãJIS2004ã®åå½¢ã使ãï¼
-\item[jis]
-%<*en>
-Use the JFM \texttt{jfm-jis.lua}, instead of \texttt{jfm-ujis.lua}, which is the default JFM of
-\LuaTeX-ja.
-%
-%<*ja>
-ç¨ããJFMãï¼JISãã©ã³ãã¡ããªãã¯é¡ä¼¼ã®ï¼\texttt{jfm-jis.lua}ã«ããï¼ãã®ãªãã·ã§ã³ããªãæã¯
-\LuaTeX-jaæ¨æºã®\texttt{jfm-ujis.lua}ãç¨ããããï¼
+åæåã¯ãã ä¸ã¤ã®æåç¯å²ã«æå±ãããã¨ãã§ããï¼
+ä¾ãã°ï¼SIPå
ã®æåã¯å
¨ã¦\LuaTeX-jaã®ããã©ã«ãã§ã¯4çªã®æåç¯å²ã«
+å±ãã¦ãããï¼ä¸è¨ã®æå®ãè¡ãã°SIPå
ã®æåã¯100çªã«å±ãããã«ãªãï¼4çªããã¯é¤ãããï¼
%
-\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.
+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>
-\texttt{90jis}ã¨\texttt{jis2004}ã«ã¤ãã¦ã¯æ¬ããã±ã¼ã¸ã§å®ç¾©ããã
-ææä½ã»ã´ã·ãã¯ä½ï¼ã»ä¸¸ã´ã·ãã¯ä½ï¼ã«ã®ã¿æå¹ã§ããï¼ä¸¡ãªãã·ã§ã³ã
-åæã«æå®ãããå ´åã®åä½ã«ã¤ãã¦ã¯å
¨ãèæ
®ãã¦ããªãï¼
+\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}
%
-
-%\paragraph{Presets for multi weight}
-%\paragraph{å¤ã¦ã§ã¤ãç¨ããªã»ããã®ä¸è¦§}
+\begin{lstlisting}
+\ltjsetparameter{jacharrange={-1, +2, +3, -4, -5, +6, +7, -8}}
+\end{lstlisting}
%<*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}.
+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{morisawa-pro}, \texttt{morisawa-pr6n}以å¤ã¯ãã©ã³ãã®æå®ã¯
-ï¼ãã¡ã¤ã«åã§ãªãï¼ãã©ã³ãåã§è¡ãããï¼
-以ä¸ã®è¡¨ã«ããã¦ï¼*\,ã¤ãã®ãã©ã³ã(e,g,~KozGo\dots-Regular)ã¯ï¼\emph{\texttt{deluxe}ãªãã·ã§ã³æå®æã«}
-ã´ã·ãã¯ä½ä¸åã¨ãã¦ç¨ãããããã®ã示ãã¦ããï¼
+\textsf{jacharrange}ãã©ã¡ã¼ã¿ã®å¼æ°ã¯éé¶ã®æ´æ°ã®ãªã¹ãã§ããï¼
+ãªã¹ãä¸ã®è² ã®æ´æ°$-n$ã¯ãæåç¯å²$n$ã«å±ããæåã¯\textbf{ALchar}ã¨ãã¦
+æ±ãããã¨ãæå³ãï¼æ£ã®æ´æ°$+n$ã¯ã\textbf{JAchar}ã¨ãã¦æ±ãããã¨ãæå³ããï¼
%
-\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.
%<*en>
-Kozuka Pro/Pr6N fonts are bundled with Adobe's software, such as Adobe~InDesign.
-There is not rounded gothic family in Kozuka fonts.
+Note that characters \texttt{U+0000}--\texttt{U+007F} are always treated as an
+\textbf{ALchar} (this cannot be customized).
%
%<*ja>
-å°å¡Proæ¸ä½ã»Pr6Næ¸ä½ã¯Adobe InDesignçã®Adobe製åã«ãã³ãã«ããã¦ããï¼
-ãå°å¡ä¸¸ã´ã·ãã¯ãã¯åå¨ããªãã®ã§ï¼ä¾¿å®çã«å°å¡ã´ã·ãã¯Hã«ãã£ã¦ä»£ç¨ãã¦ããï¼
+ãªãï¼\texttt{U+0000}--\texttt{U+007F} ã¯å¸¸ã«\textbf{ALchar}ã¨ãã¦æ±ãããï¼å©ç¨è
ãå¤æ´ã
+ããã¨ã¯åºæ¥ãªãï¼ï¼
%
-\begin{center}\small
-\begin{tabular}{cllll}
-\toprule
-\bf family&\bf series&\tt kozuka-pro&\tt kozuka-pr6&\tt 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
-\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.
%<*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).
+\paragraph{Default character ranges}
+\LuaTeX-ja predefines eight character ranges for convenience. They are
+determined from the following data:
%
%<*ja>
-ãã©ã®ããã©ã³ãã¯ï¼Mac OS~X以å¤ã«ãï¼ä¸å¤ªé2012ã®ä¸ä½ã¨ãã£ã·ã§ã³ã«ããã³ãã«ããã¦ããï¼
-極太ã´ã·ãã¯ã¨ãã¦ç¨ãããã©ã®ãè§ã´W8ã¯ï¼Adobe-Japan1-3ã®ç¯å²ããã«ãã¼ãã¦ããªã
-Std/StdNãã©ã³ãã§ããï¼ãã®ä»ã¯Adobe-Japan1-5対å¿ã§ããï¼
+\paragraph{æåç¯å²ã®åæå¤}
+\LuaTeX-jaã§ã¯8ã¤ã®æåç¯å²ãäºãå®ç¾©ãã¦ããï¼
+ãããã¯ä»¥ä¸ã®ãã¼ã¿ã«åºã¥ãã¦æ±ºå®ãã¦ããï¼
%
-\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
-\end{tabular}
-\end{center}
-
-%\medskip
-
- \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{tabular}
-\end{center}
-
- \item[yu-win] Yu fonts bundled with Windows~8.1.
-% \\*[-\dimexpr\medskipamount+\baselineskip\relax]
- \item[yu-osx] Yu fonts bundled with OSX~Mavericks.
-
-\begin{center}\small
-\begin{tabular}{clll}
-\toprule
-\bf family&\bf series&\tt yu-win&\tt yu-osx\\
-\midrule
- &medium&YuMincho-Regular&YuMincho~Medium\\
-%\smash{\raisebox{1.5ex}{\textit{mincho}}}%
-%\smash{\raisebox{1.5ex}{\gt ææ}}%
- &bold&YuMincho-Demibold&YuMincho~Demibold\\
-\midrule
- &&YuGothic-Regular*&YuGothic~Medium*\\
- &\smash{\raisebox{1.5ex}{medium}}
- &YuGothic-Bold&YuGothic~Bold\\
-\cmidrule(l){2-4}
-%\textit{gothic}%
-%\gt ã´ã·ãã¯
- &bold&YuGothic-Bold&YuGothic~Bold\\
- &heavy&YuGothic-Bold&YuGothic~Bold\\
-\midrule
-%\textit{rounded gothic}
-%\gt 丸ã´ã·ãã¯
-&&YuGothic-Bold&YuGothic~Bold\\
-\bottomrule
-\end{tabular}
-\end{center}
-
- \item[moga-mobo] MogaMincho, MogaGothic, and MoboGothic.
-%These fonts can be downloaded from\\\hfill \url{http://yozvox.web.fc2.com/}.
-%ãããã®ãã©ã³ã㯠\url{http://yozvox.web.fc2.com/} ãããã¦ã³ãã¼ãã§ããï¼
-
-\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
- &&Moga90Gothic&MogaGothic\\
- &\smash{\raisebox{1.5ex}{medium}}
- &Moga90Gothic&MogaGothic\\
-\cmidrule(l){2-4}
-%\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}
-
+\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}
-\end{cslist}
-%\paragraph{Presets for single weight}
-%\paragraph{åã¦ã§ã¤ãç¨ããªã»ããä¸è¦§}
%<*en>
-Next, we describe settings for using only single weight.
+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>
-次ã«ï¼åã¦ã§ã¤ãç¨ã®è¨å®ãè¿°ã¹ãï¼ãã®4è¨å®ã§ã¯
-ææä½å¤ªåã»ä¸¸ã´ã·ãã¯ä½ã¯ã´ã·ãã¯ä½ã¨åããã©ã³ããç¨ããããï¼
+以ä¸ã§ã¯ããã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çªã®æåç¯å²ã«å±ãããã¨ã«ãªã£ã¦ããï¼
%
-\par\nobreak\medskip
-{\centering\small
-\begin{tabular}{lllll}
-\toprule
-&\tt noembed&\tt ipa&\tt ipaex&\tt ms\\
-\midrule
+\begin{description}
%<*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[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>
-\gtfamily ææä½&Ryumin-Lightï¼éåè¾¼ï¼
-&IPAææ&IPAexææ&MSææ\\
-\gtfamily ã´ã·ãã¯ä½&GothicBBB-Mediumï¼éåè¾¼ï¼
-&IPAã´ã·ãã¯&IPAexã´ã·ãã¯&MSã´ã·ãã¯\\
+\item[ç¯å²8${}^{\text{A}}$] ISO~8859-1ã®ä¸ä½é åï¼ã©ãã³1è£å©ï¼ã¨
+ JIS~X~0208ã®å
±éé¨åï¼ãã®æåç¯å²ã¯
+ 以ä¸ã®æåã§æ§æãããï¼
%
-\bottomrule
-\end{tabular}\par\medskip}
+\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}
-%\paragraph{Using HG fonts}
-%\paragraph{HGãã©ã³ãã®å©ç¨}
%<*en>
-We can use HG~fonts bundled with Microsoft~Office for realizing multiple weights.
+\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>
-ããåã«æ¸ããåã¦ã§ã¤ãç¨è¨å®ãï¼Microsoft Officeçã«ä»å±ããHGãã©ã³ãã使ã£ã¦
-å¤ã¦ã§ã¤ãåããè¨å®ãããï¼
+\item[ç¯å²1${}^{\text{A}}$] ã©ãã³æåã®ãã¡ï¼Adobe-Japan1-6ã¨ã®å
±éé¨åããããã®ï¼
+ ãã®ç¯å²ã¯ä»¥ä¸ã®Unicodeã®ãããã¯ã®ãã¡
+ \emph{ç¯å²8ãé¤ãã}é¨åã§æ§æããã¦ããï¼
%
-\par\nobreak\medskip
-{\centering\small
-\begin{tabular}{llll}
-\toprule
-&\tt ipa-hg&\tt ipaex-hg&\tt ms-hg\\
-\midrule
+\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>
-\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}\\
+\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ï¼ãããã£ã¦ã»ã¨ãã©ã®
+ åæãã©ã³ãï¼ã«ã¯ï¼ãããã®æåã®ä¸é¨ãå«ã¾ãã¦ããï¼
%
-\bottomrule
-\end{tabular}\par\medskip}
-
+\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>
-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[Range~3${}^{\text{\kern.1emJ}}$] Punctuations and Miscellaneous symbols. The block list is
+ indicated in \autoref{tab:rng3}.
%
%<*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[ç¯å²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\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
+\end{tabular}
+\end{table}
%<*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}.
+\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>
-\subsection{\cs{CID}, \cs{UTF}ã¨\Pkg{otf}ããã±ã¼ã¸ã®ãã¯ã}
-\pLaTeX ã§ã¯ï¼JIS~X~0208ã«ãªãAdobe-Japan1-6ã®æåãåºåããããã«ï¼
-é½è¤ä¿®ä¸éæ°ã«ãã\Pkg{otf}ããã±ã¼ã¸ãç¨ãããã¦ããï¼ãã®ããã±ã¼ã¸ã¯
-åºãç¨ãããã¦ããããï¼\LuaTeX-jaã«ããã¦ã\Pkg{otf}ããã±ã¼ã¸ã®æ©è½ã®
-ä¸é¨ãï¼\Pkg{luatexja-otf}ã¨ããå¥ã®ããã±ã¼ã¸ã¨ãã¦ï¼å®è£
ããï¼
+\item[ç¯å²4${}^{\text{A}}$] é常åæãã©ã³ãã«ã¯å«ã¾ãã¦ããªãæåï¼
+ ãã®ç¯å²ã¯ä»ã®ç¯å²ã«ãªãã»ã¨ãã©å
¨ã¦ã®Unicodeãããã¯
+ ã§æ§æããã¦ããï¼ãããã£ã¦ï¼ãããã¯ã®ãªã¹ãã示ã
+ 代ããã«ï¼ç¯å²ã®å®ç¾©ãã®ãã®ã示ãï¼
%
-
-\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}
-
+\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>
-\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}) ã®æ¹æ³ã§æåã§æå®ããå¿
è¦ãããï¼
+\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{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.
+\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.
-For example,
-\begin{lstlisting}
-\def\ltj@stdmcfont{IPAMincho}
-\def\ltj@stdgtfont{IPAGothic}
-\end{lstlisting}
-makes that IPA~Mincho and IPA~Gothic will be used as default Japanese fonts, instead of
-IPAex~Mincho and IPAex~Gothic.
+For 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).
-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}
+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}.
+
+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>
-\LuaTeX ããè¦ããä½ç½®ã« \texttt{luatexja.cfg} ãããã°ï¼\LuaTeX-jaã¯ãããèªã¿è¾¼ãï¼
-ãã®ãã¡ã¤ã«ãç¨ããã¨plain~\TeX, \LaTeXe ã«ãããæ¨æºåæãã©ã³ãã
-IPAexææã»IPAexã´ã·ãã¯ããå¤æ´ãããã¨ãã§ããï¼
-ãããï¼åºæ¬çã«ã¯\emph{æç« ä¸ã§ç¨ãããã©ã³ãã¯ï¼ä¾ãã° \Pkg{luatexja-preset} ãªã©ã§ï¼
-ææ¸ã½ã¼ã¹å
ã§æå®ããã¹ã}ã§ããï¼ãã® \texttt{luatexja.cfg} ã¯ï¼
-ãIPAexãã©ã³ããã¤ã³ã¹ãã¼ã«ã§ããªãããªã©ï¼IPAexãã©ã³ãã使ç¨ã§ããªãå ´åã«ã®ã¿
-å¿æ¥å¦ç½®çã«ç¨ããã¹ãã§ããï¼
+\paragraph{\texttt{U+0080}--\texttt{U+00FF}ã«ã¤ãã¦ã®æ³¨æ}
+\LuaTeX-jaã§ï¼\Pkg{marvosym}ããã±ã¼ã¸çï¼Unicodeãã©ã³ãã§ãªã
+ä¼çµ±çãª8ããããã©ã³ããç¨ããå ´åã«ã¯æ³¨æãå¿
è¦ã§ããï¼
-ä¾ãã°
-\begin{lstlisting}
-\def\ltj@stdmcfont{IPAMincho}
-\def\ltj@stdgtfont{IPAGothic}
-\end{lstlisting}
-ã¨è¨è¿°ãã¦ããã°ï¼æ¨æºåæãã©ã³ããIPAææã»IPAã´ã·ãã¯ã¸ã¨å¤
-æ´ãããï¼
+ä¾ãã°ï¼\Pkg{marvosym}ããã±ã¼ã¸ã®æä¾ãã \cs{Frowny} ãï¼ç¬¦å·ä½ç½®ã¯167ï¼ã¤ã¾ãUnicodeã«ããã
+\S\ (\text{U+00A7}) ã¨åã符å·ä½ç½®ã«ããï¼
+å³ã¡ï¼ä»¥åã®ãã¼ã¸ã§ã³ã®ããã«ï¼ãåç¯ã®æåç¯å²8å
ã®æåã¯\textbf{JAchar}ãã¨ããè¨å®ã§
+ãã£ãã¨ããã¨ï¼ä¸è¨ã® \cs{Frowny} ã¯åæãã©ã³ãã§ã\ltjjachar`§ããåºåãããã¨ã«ãªãï¼
+ãã®ãããªäºæ
ãé¿ããããã«ï¼ãã¼ã¸ã§ã³20150906.0ãã㯠\texttt{U+0080}--\texttt{U+00FF} ã®ç¯å²ã®
+æåã¯å
¨ã¦\textbf{ALchar}ã¨ãªãããã«åæè¨å®ãå¤æ´ãã¦ããï¼
-ãªãï¼20140906.0以åã®ãã¼ã¸ã§ã³ã®ããã«ï¼
-Ryumin-Light, GothicBBB-Mediumã¨ããååã®éåè¾¼ãã©ã³ããç¨ããå ´åã¯
-\begin{lstlisting}
-\def\ltj@stdmcfont{psft:Ryumin-Light}
-\def\ltj@stdgtfont{psft:GothicBBB-Medium}
-\end{lstlisting}
-ã¨è¨è¿°ããã°ããï¼
+ãªãï¼æåç¯å²ã®è¨å®ã«é¢ããã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}
%
-%\section{Changing Internal Parameters}
-%\section{ãã©ã¡ã¼ã¿ã®å¤æ´}
-
+%\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>
-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}.
+\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>
-\LuaTeX-jaã«ã¯å¤ãã®ãã©ã¡ã¼ã¿ãåå¨ããï¼ããã¦\LuaTeX ã®ä»æ§ã®ããã«ï¼
-ãã®å¤ãã¯\TeX ã®ã¬ã¸ã¹ã¿ã«ã§ã¯ãªãï¼\LuaTeX-jaç¬èªã®æ¹æ³ã§ä¿æããã¦ããï¼
-ãããã®ãã©ã¡ã¼ã¿ãè¨å®ã»åå¾ããããã«ã¯ \cs{ltjsetparameter} 㨠\cs{ltjgetparameter} ã
-ç¨ããï¼
+\item JFMã§æå®ãããã°ã«ã¼ï¼ã«ã¼ã³ï¼ãã \cs{inhibitglue} ã\textbf{JAchar}ã®å¨ãã§
+ çºè¡ããã¦ããã°ï¼ãã®ã°ã«ã¼ã¯æ¿å
¥ãããªãï¼
%
-
-%\subsection{Range of \textbf{JAchar}s}
-%\subsection{\textbf{JAchar}ã®ç¯å²}
-\label{ssec-setrange}
-
%<*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.
+\item The default glue which inserted between two \textbf{JAchar}s (\Param{%
+ kanjiskip}).
%
%<*ja>
-\LuaTeX-jaã¯ï¼Unicodeã® \texttt{U+0080}--\texttt{U+10FFFF} ã®ç©ºéã
-1çªãã217çªã¾ã§ã®\emph{æåç¯å²}ã«åå²ãã¦ããï¼
-åºåã㯠\cs{ltjdefcharrange} ãç¨ãããã¨ã§ï¼ã°ãã¼ãã«ã«ï¼å¤æ´ãããã¨ãã§ãï¼
-ä¾ãã°ï¼æ¬¡ã¯è¿½å æ¼¢åé¢(SIP)ã«ããå
¨ã¦ã®æåã¨ãæ¼¢ããã100çªã®æåç¯å²ãã«è¿½å ããï¼
+\item ããã©ã«ãã§2ã¤ã®\textbf{JAchar}ã®éã«æ¿å
¥ãããã°ã«ã¼(\Param{kanjiskip})ï¼
%
-\begin{lstlisting}
-\ltjdefcharrange{100}{"20000-"2FFFF,`æ¼¢}
-\end{lstlisting}
-
%<*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.
+\item The default glue which inserted between a \textbf{JAchar} and an
+ \textbf{ALchar} (\Param{xkanjiskip}).
%
%<*ja>
-åæåã¯ãã ä¸ã¤ã®æåç¯å²ã«æå±ãããã¨ãã§ããï¼
-ä¾ãã°ï¼SIPå
ã®æåã¯å
¨ã¦\LuaTeX-jaã®ããã©ã«ãã§ã¯4çªã®æåç¯å²ã«
-å±ãã¦ãããï¼ä¸è¨ã®æå®ãè¡ãã°SIPå
ã®æåã¯100çªã«å±ãããã«ãªãï¼4çªããã¯é¤ãããï¼
+\item ããã©ã«ãã§\textbf{JAchar}ã¨\textbf{ALchar}ã®éã«æ¿å
¥ãããã°ã«ã¼(\Param{xkanjiskip})ï¼
%
-
-%<*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}
+%<*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.
+}
%
%<*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{kanjiskip}ã\Param{xkanjiskip}ã®å¤
+ã¯ä»¥ä¸ã®ããã«ãã¦å¤æ´å¯è½ã§ããï¼
%
\begin{lstlisting}
-\ltjsetparameter{jacharrange={-1, +2, +3, -4, -5, +6, +7, -8}}
+\ltjsetparameter{kanjiskip={0pt plus 0.4pt minus 0.4pt},
+ xkanjiskip={0.25\zw plus 1pt minus 1pt}}
\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}ã¨ãã¦æ±ãããã¨ãæå³ããï¼
-%
+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.
-%<*en>
-Note that characters \texttt{U+0000}--\texttt{U+007F} are always treated as an
-\textbf{ALchar} (this cannot be customized).
+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>
-ãªãï¼\texttt{U+0000}--\texttt{U+007F} ã¯å¸¸ã«\textbf{ALchar}ã¨ãã¦æ±ãããï¼å©ç¨è
ãå¤æ´ã
-ããã¨ã¯åºæ¥ãªãï¼ï¼
+ããã§ï¼\cs{zw} ã¯ç¾å¨ã®åæãã©ã³ãã®å
¨è§å¹
ã表ãé·ãã§ããï¼
+\pTeX ã«ãããé·ãåä½ \texttt{zw} ã¨åãããã«ä½¿ç¨ã§ããï¼
+
+ãããã®ãã©ã¡ã¼ã¿ã®å¤ã¯ä»¥ä¸ã®ããã«åå¾ã§ããï¼
+æ»ãå¤ã¯å
é¨å¤ã§ã¯ãªã\emph{æåå}ã§ããï¼\cs{the} ã¯åç½®ã§ããªãï¼ãã¨ã«æ³¨æãã¦ã»ããï¼
%
+\begin{LTXexample}
+kanjiskip: \ltjgetparameter{kanjiskip},\\
+xkanjiskip: \ltjgetparameter{xkanjiskip}
+\end{LTXexample}
%<*en>
-\paragraph{Default character ranges}
-\LuaTeX-ja predefines eight character ranges for convenience. They are
-determined from the following data:
+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>
-\paragraph{æåç¯å²ã®åæå¤}
-\LuaTeX-jaã§ã¯8ã¤ã®æåç¯å²ãäºãå®ç¾©ãã¦ããï¼
-ãããã¯ä»¥ä¸ã®ãã¼ã¿ã«åºã¥ãã¦æ±ºå®ãã¦ããï¼
+JFMã¯ãæã¾ãã\Param{kanjiskip}ã®å¤ãã
+ãæã¾ãã\Param{xkanjiskip}ã®å¤ããæã£ã¦ãããã¨ãããï¼
+ãããã®ãã¼ã¿ã使ãããã«ã¯ï¼\Param{kanjiskip}ã%
+\Param{xkanjiskip}ã®å¤ã \cs{maxdimen} ã®å¤ã«è¨å®ããã°ãããï¼
+\cs{ltjgetparameter} ã«ãã£ã¦åå¾ãããã¨ã¯ã§ããªãã®ã§æ³¨æãå¿
è¦ã§ããï¼
%
-\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{Insertion setting of \Param{xkanjiskip}}
+%\subsection{\Param{xkanjiskip} ã®æ¿å
¥è¨å®}
%<*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.
+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>
-以ä¸ã§ã¯ããã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çªã®æåç¯å²ã«å±ãããã¨ã«ãªã£ã¦ããï¼
+\Param{xkanjiskip}ããã¹ã¦ã®\textbf{JAchar}ã¨\textbf{ALchar}ã®å¢çã«
+æ¿å
¥ãããã®ã¯æã¾ãããã¨ã§ã¯ãªãï¼ä¾ãã°ï¼\Param{xkanjiskip}ã¯éãæ¬å¼§ã®
+å¾ã«ã¯æ¿å
¥ãããã¹ãã§ã¯ãªãï¼ã(ããã¨ã(\hskip\ltjgetparameter{xkanjiskip}ããã
+æ¯ã¹ã¦ã¿ãï¼ï¼
+\LuaTeX-jaã§ã¯\Param{xkanjiskip}ãããæåã®åï¼å¾ã«æ¿å
¥ãããã©ãããï¼
+\textbf{JAchar}ã«å¯¾ãã¦ã¯\Param{jaxspmode}ãï¼\textbf{ALchar}ã«å¯¾ãã¦ã¯
+\Param{alxspmode}ãããããå¤ãããã¨ã§å¶å¾¡ãããã¨ãã§ããï¼
%
-\begin{description}
-%<*en>
+\begin{LTXexample}
+\ltjsetparameter{jaxspmode={`ã,preonly}, alxspmode={`\!,postonly}}
+pãq ã!ã
+\end{LTXexample}
-\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>
+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>
-\item[ç¯å²8${}^{\text{A}}$] ISO~8859-1ã®ä¸ä½é åï¼ã©ãã³1è£å©ï¼ã¨
- JIS~X~0208ã®å
±éé¨åï¼ãã®æåç¯å²ã¯
- 以ä¸ã®æåã§æ§æãããï¼
+2ã¤ç®ã®å¼æ°ã® \texttt{preonly}ã¯ã\Param{xkanjiskip}ã®æ¿å
¥ã¯ãã®æåã®
+åã§ã®ã¿è¨±ããï¼å¾ã§ã¯è¨±ããªãããã¨ãæå³ããï¼ä»ã«æå®å¯è½ãªå¤ã¯
+\texttt{postonly}, \texttt{allow}, \texttt{inhibit}ã§ããï¼
%
-\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>
-\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}:
+\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>
-\item[ç¯å²1${}^{\text{A}}$] ã©ãã³æåã®ãã¡ï¼Adobe-Japan1-6ã¨ã®å
±éé¨åããããã®ï¼
- ãã®ç¯å²ã¯ä»¥ä¸ã®Unicodeã®ãããã¯ã®ãã¡
- \emph{ç¯å²8ãé¤ãã}é¨åã§æ§æããã¦ããï¼
+ãªãï¼ç¾è¡ã®
+ä»æ§ã§ã¯ï¼\Param{jaxspmode}, \Param{alxspmode}ã¯ãã¼ãã«ãå
±æãã¦ããï¼
+ä¸ã®ã³ã¼ãã®1è¡ç®ã次ã®ããã«å¤ãã¦ãåããã¨ã«ãªãï¼
%
-\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}
+\begin{lstlisting}
+\ltjsetparameter{alxspmode={`ã,preonly}, jaxspmode={`\!,postonly}}
+\end{lstlisting}
%<*en>
-\item[Range~2${}^{\text{\kern.1emJ}}$] Greek and Cyrillic letters. JIS~X~0208 (hence most of Japanese
- fonts) has some of these characters.
+One can use also numbers to specify these two parameters (see Subsection~\ref{ssec:param}).
%
%<*ja>
-\item[ç¯å²2${}^{\text{\kern.1emJ}}$] ã®ãªã·ã£æåã¨ããªã«æåï¼JIS~X~0208ï¼ãããã£ã¦ã»ã¨ãã©ã®
- åæãã©ã³ãï¼ã«ã¯ï¼ãããã®æåã®ä¸é¨ãå«ã¾ãã¦ããï¼
+ã¾ãï¼ããã2ãã©ã¡ã¼ã¿ã«ã¯æ°å¤ã§å¤ãæå®ãããã¨ãã§ããï¼\ref{ssec:param}ç¯ãåç
§ï¼ï¼
%
-\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 Table~\ref{table-rng3}.
+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>
-\item[ç¯å²3${}^{\text{\kern.1emJ}}$] å¥èªç¹ã¨è¨å·é¡ï¼ãããã¯ã®ãªã¹ãã¯è¡¨\ref{table-rng3}%
- ã«ç¤ºãã¦ããï¼
+ããå
¨ã¦ã®\Param{kanjiskip}ã¨\Param{xkanjiskip}ã®æ¿å
¥ãæå¹åï¼ç¡å¹å
+ããããã°ï¼ãããã\Param{autospacing}ã¨\Param{autoxspacing}ã
+\texttt{true}/\texttt{false}ã«è¨å®ããã°ããï¼
%
-\begin{table}[!tb]
-%\caption{Unicode blocks in predefined character range~3.}\medskip
-%\caption{æåç¯å²3ã«æå®ããã¦ããUnicodeãããã¯ï¼}
-\label{table-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
-\end{tabular}
-\end{table}
+
+%\subsection{Shifting the baseline}
+%\subsection{ãã¼ã¹ã©ã¤ã³ã®ç§»å}
%<*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:
-%
-%<*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 Table~\ref{table-rng6}.
-%\item[ç¯å²6${}^{\text{\kern.1emJ}}$] æ¥æ¬èªã§ç¨ããããæåï¼ãããã¯ã®ãªã¹ãã¯è¡¨\ref{table-rng6}ã«ç¤ºãï¼
-\begin{table}[!tb]
-%\caption{Unicode blocks in predefined character range~6.}\medskip
-%\caption{æåç¯å²6ã«æå®ããã¦ããUnicodeãããã¯ï¼}
-\label{table-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
+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{table}
-%<*en>
-\item[Range~7${}^{\text{\kern.1emJ}}$] Characters used in CJK languages, but not included in Adobe-Japan1-6.
-The block list is indicated in Table~\ref{table-rng7}.
+\end{center}
%
%<*ja>
-\item[ç¯å²7${}^{\text{\kern.1emJ}}$] CJKè¨èªã§ç¨ããããæåã®ãã¡ï¼Adobe-Japan1-6ã«
- å«ã¾ãã¦ããªããã®ï¼
- ãããã¯ã®ãªã¹ãã¯è¡¨\ref{table-rng7}ã«ç¤ºãï¼
-%
-\begin{table}[!tb]
-%\caption{Unicode blocks in predefined character range~7.}\medskip
-%\caption{æåç¯å²7ã«æå®ããã¦ããUnicodeãããã¯ï¼}
-\label{table-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
+åæãã©ã³ãã¨æ¬§æãã©ã³ããåãããããã«ã¯ï¼æã
ã©ã¡ããã®ãã¼ã¹ã©ã¤ã³ã®ç§»åã
+å¿
è¦ã«ãªãï¼\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{table}
-\end{description}
-
-%<*en>
-\paragraph{Notes on \texttt{U+0080}--\texttt{U+00FF}}
-You should treat characters in \\texttt{U+0080}--\texttt{U+00FF} as \textbf{ALchar},
-when you use traditional 8-bit fonts, such as the \Pkg{textcomp} package or the
-\Pkg{marvosym} package.
-
-For example, the codepoint \cs{textparagraph} which is provided by the \Pkg{textcomp}
-package is 182. This codepoint corresponds \P\ (\text{U+00B6}) in Unicode.
-Similarly, \cs{Frowny} which is provided by the \Pkg{marvosym} package has
-the same codepoint as \S\ (\text{U+00A7}).
-Hence, as previous versions of \LuaTeX-ja, if these characters are treated as
-\text{JAchar}s, then \cs{textparagraph} produces ``ltjjachar`¶'' (in a Japanese font),
-and \cs{Frowny} produces ``\ltjjachar`§'' (in a Japanese font).
-
-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}.
-
-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{textcomp}ããã±ã¼ã¸ã\Pkg{marvosym}ããã±ã¼ã¸çï¼Unicodeãã©ã³ãã§ãªã
-ä¼çµ±çãª8ããããã©ã³ããç¨ããå ´åã«ã¯æ³¨æãå¿
è¦ã§ããï¼
-
-ä¾ãã°ï¼\Pkg{textcomp}ããã±ã¼ã¸ã®æä¾ãã \cs{textparagraph} ã¯ï¼
-符å·ä½ç½®ã182ï¼ã¤ã¾ã \texttt{0xB6} ã§ããï¼Unicodeã§ã¯ãã®ç¬¦å·ä½ç½®ã§ã¯\P\ (\text{U+00B6}) ã«å¯¾å¿ããï¼
-ã¾ãï¼\Pkg{marvosym}ããã±ã¼ã¸ã®æä¾ãã \cs{Frowny} ãï¼ç¬¦å·ä½ç½®ã¯167ï¼ã¤ã¾ãUnicodeã«ããã
-\S\ (\text{U+00A7}) ã¨åã符å·ä½ç½®ã«ããï¼
-å³ã¡ï¼ä»¥åã®ãã¼ã¸ã§ã³ã®ããã«ï¼ãåç¯ã®æåç¯å²8å
ã®æåã¯\textbf{JAchar}ãã¨ããè¨å®ã§
-ãã£ãã¨ããã¨ï¼ä¸è¨ã® \cs{textparagraph} ã¯åæãã©ã³ãã§ã\ltjjachar`¶ããåºåãï¼
-ã¾ã \cs{Frowny} ã¯åæãã©ã³ãã§ã\ltjjachar`§ããåºåãããã¨ã«ãªãï¼
-
-ãã®ãããªäºæ
ãé¿ããããã«ï¼æ¬ãã¼ã¸ã§ã³ãã㯠\texttt{U+0080}--\texttt{U+00FF} ã®ç¯å²ã®
-æåã¯å
¨ã¦\textbf{ALchar}ã¨ãªãããã«åæè¨å®ãå¤æ´ãã¦ããï¼
-ç¹ã«å½±é¿ãåããã®ãï¼JIS~X~0208ã®ä¸é¨åã§ããæåç¯å²8å
ã®æåã§ããï¼
-\emph{\Pkg{fontspec}ããã±ã¼ã¸ãèªã¿è¾¼ãã ããã¦æ¬§æè¨å·ã¨ãã¦ãããã®æåã®åºåç°å¢ãæ´ã
-ãªãã¨ï¼ã½ã¼ã¹ä¸ã«ç´æ¥è¨è¿°ãã¦ãåºåãããªã}ãã¨ã«ãªãï¼
-
-ãªãï¼æåç¯å²ã®è¨å®ã«é¢ããã1ã¤ã®æåã\textbf{ALchar}, \textbf{JAchar}ã§åºåãããå ´åã«ã¯ï¼
-以ä¸ã®ä¾ã®ããã«ãããã \cs{ltjalchar},~\cs{ltjjachar} ã«è©²å½æåã®æåã³ã¼ãã渡ãã°ããï¼
-\begin{LTXexample}[width=0.3\textwidth]
-\gtfamily\large % default, ALchar, JAchar
-¶, \ltjalchar`¶, \ltjjachar`¶\\ % default: ALchar
-α, \ltjalchar`α, \ltjjachar`α % default: JAchar
-\end{LTXexample}
+\end{center}
%
-%\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.
+Here the horizontal line in the below example is the baseline of a line.
%
%<*ja>
-\item JFMã§æå®ãããã°ã«ã¼ï¼ã«ã¼ã³ï¼ãã \cs{inhibitglue} ã\textbf{JAchar}ã®å¨ãã§
- çºè¡ããã¦ããã°ï¼ãã®ã°ã«ã¼ã¯æ¿å
¥ãããªãï¼
+ä¸ã®ä¾ã«ããã¦å¼ããã¦ããæ°´å¹³ç·ããã¼ã¹ã©ã¤ã³ã§ããï¼
%
+\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 The default glue which inserted between two \textbf{JAchar}s (\Param{%
- kanjiskip}).
+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 ããã©ã«ãã§2ã¤ã®\textbf{JAchar}ã®éã«æ¿å
¥ãããã°ã«ã¼(\Param{kanjiskip})ï¼
+ãã®æ©è½ã«ã¯é¢ç½ã使ãæ¹ãããï¼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>
-\item The default glue which inserted between a \textbf{JAchar} and an
- \textbf{ALchar} (\Param{xkanjiskip}).
-%
-%<*ja>
-\item ããã©ã«ãã§\textbf{JAchar}ã¨\textbf{ALchar}ã®éã«æ¿å
¥ãããã°ã«ã¼(\Param{xkanjiskip})ï¼
-%
+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}
-%<*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.
-}
+
+This problem does not apply for \Param{yjabaselineshift}~nor~\Param{tjabaselineshift},
+becuse a \emph{JAchar} is encapsulated by a horizontal box if needed.
%
%<*ja>
-\Param{kanjiskip}ã\Param{xkanjiskip}ã®å¤
-ã¯ä»¥ä¸ã®ããã«ãã¦å¤æ´å¯è½ã§ããï¼
+ãªãï¼ä»¥ä¸ã®å ´åã«ã¯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}ãã©ã¡ã¼ã¿ã«ã¤ãã¦ã¯ãã®ãããªåé¡ã¯èµ·ãããªãï¼
%
-\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).
-%
%<*ja>
-ããã§ï¼\cs{zw} ã¯ç¾å¨ã®åæãã©ã³ãã®å
¨è§å¹
ã表ãé·ãã§ããï¼
-\pTeX ã«ãããé·ãåä½ \texttt{zw} ã¨åãããã«ä½¿ç¨ã§ããï¼
+\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''ãï¼ããããæ¬æä¸ã«
+ æ¸ãããã¨ãã¨åãä¸ä¸ä½ç½®ã«çµã¾ããï¼
-ãããã®ãã©ã¡ã¼ã¿ã®å¤ã¯ä»¥ä¸ã®ããã«åå¾ã§ããï¼
-æ»ãå¤ã¯å
é¨å¤ã§ã¯ãªã\emph{æåå}ã§ããï¼\cs{the} ã¯åç½®ã§ããªãï¼ãã¨ã«æ³¨æãã¦ã»ããï¼
-%
-\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}ã§ããï¼
-%
-
-%<*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}).
-%
-%<*ja>
-ã¾ãï¼ããã2ãã©ã¡ã¼ã¿ã«ã¯æ°å¤ã§å¤ãæå®ãããã¨ãã§ããï¼\ref{ssec-param}ç¯ãåç
§ï¼ï¼
-%
-
-%<*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}ã«è¨å®ããã°ããï¼
-%
-
-%\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}
-\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>
-åæãã©ã³ãã¨æ¬§æãã©ã³ããåãããããã«ã¯ï¼æã
ã©ã¡ããã®ãã¼ã¹ã©ã¤ã³ã®ç§»åã
-å¿
è¦ã«ãªãï¼\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}
-%
-
-%<*en>
-Here the horizontal line in the below example is the baseline of a line.
-%
-%<*ja>
-ä¸ã®ä¾ã«ããã¦å¼ããã¦ããæ°´å¹³ç·ããã¼ã¹ã©ã¤ã³ã§ããï¼
-%
-\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):
-%
-%<*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.
+ ãªãï¼\TeX~Live~2016以éã®\pTeX ã§ã¯æ¹ä¿®ããªããï¼\LuaTeX-jaã¨
+ è¿ãæåã«ãªãããã«ãã¦ãããï¼æ°å¼ä¸ã«ç´ã«æ¸ããã``ã''ã®ãã¼ã¹ã©ã¤ã³ã«ã¤ãã¦ã¯
+ ã¾ã éããè¦ãããï¼
\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}ãã©ã¡ã¼ã¿ã«ã¤ãã¦ã¯ãã®ãããªåé¡ã¯èµ·ãããªãï¼
-%
+ãªãï¼ãã¼ã¸ã§ã³20170401.0以éã®\LuaTeX-jaã§ã¯ï¼\cs{vcenter} ã«ããããã¯ã¹ã«ã¯
+å
¨ä½ã\Param{yalbaselineshift}, \Param{talbaselineshift} ãã©ã¡ã¼ã¿ãåæ ãããããã«ãã¦ããï¼
+ãã®æ¹ãçµæãèªç¶ã§ãããã¨ã«ããå¤æ´ãªã®ã ãï¼çµæçã«\cs{vcenter} ã«ã¤ãã¦ã¯\pTeX ã¨åãæåã¨ãªã£ãï¼
-%<*ja>
-\paragraph{æ°å¼ã«ãããæåï¼\pTeX ã¨ã®éã}
-\textbf{ALchar}ã®ãã¼ã¹ã©ã¤ã³ãè£æ£ãã \Param{yalbaselineshift} ãã©ã¡ã¼ã¿ã¯
-ã»ã¼\pTeX ã«ããã \cs{ybaselineshift} ã«å¯¾å¿ãã¦ãããã®ã§ãããï¼
-æ°å¼ä¸ã®æåã¯ç°ãªã£ã¦ããã®ã§æ³¨æãå¿
è¦ã§ããï¼
-ä¾ãã°ï¼è¡¨\ref{tab:math_bsa}ã®ããã«ï¼æ°å¼ä¸ã«æ示çã«ç¾ãã \cs{hbox} ã¯ï¼
-\begin{itemize}
- \item \pTeX ã§ã¯ï¼ããã¯ã¹å
¨ä½ã \cs{ybaselineshift} ã ã¨ã·ãããããã®ã§ï¼
- 表\ref{tab:math_bsa}ä¸ã®``ã''ã®ããã«ï¼ããã¯ã¹ä¸ã®åææåã¯
- \ \cs{ybaselineshift} ã ãã·ããããï¼ä¸æ¹ï¼``for all''ã®ããã«ï¼
- ããã¯ã¹å
ã®æ¬§ææåã¯2éã«ã·ããããããã¨ã«ãªãï¼
- \item ä¸æ¹ï¼\LuaTeX-jaã§ã¯ãã®ãããªãã¨ã¯ããããï¼
- æ°å¼ä¸ã«æ示çã«ç¾ãã \cs{hbox} ã¯ã·ããããªãï¼ãã®ããï¼
- 表\ref{tab:math_bsa}ä¸ã®``ã''ã``for all''ãï¼ããããæ¬æä¸ã«
- æ¸ãããã¨ãã¨åãä¸ä¸ä½ç½®ã«çµã¾ããï¼
-\end{itemize}
\begin{table}
\small\centering
\caption{æ°å¼é¢ä¿ã®ãã¼ã¹ã©ã¤ã³è£æ£($\Param{yalbaselineshift}=10\,\textrm{pt}$)}
@@ -2654,12 +2372,16 @@ $\Phi\vdash F(x)\ \hbox{for all}\ x\in A$
\end{lstlisting}\\
\noalign{\vskip-\origbaselineskip}
\midrule
-\emph{\pTeX}&
+\emph{\pTeX~(--2015)}&
{\ltjsetparameter{yalbaselineshift=10pt}%
-æ°å¼abc: $ãa\lower10pt\hbox{ã}$, $\int_0^x t\,dt=x^2/2$,
+æ°å¼abc: $\lower10pt\hbox{ã}a\lower10pt\hbox{ã}$, $\int_0^x t\,dt=x^2/2$,
$\Phi\vdash F(x)\ \lower10pt\hbox{for all}\ x\in A$
-\par}\\
-\midrule
+\par}\\\noalign{\vskip-\origbaselineskip}\midrule
+\emph{\pTeX~(2016--)}&
+{\ltjsetparameter{yalbaselineshift=10pt}%
+æ°å¼abc: $\lower10pt\hbox{ã}a\hbox{ã}$, $\int_0^x t\,dt=x^2/2$,
+$\Phi\vdash F(x)\ \hbox{for all}\ x\in A$
+\par}\\\noalign{\vskip-\origbaselineskip}\midrule
\emph{\LuaTeX-ja}&
{\ltjsetparameter{yalbaselineshift=10pt}%
æ°å¼abc: $ãa\hbox{ã}$, $\int_0^x t\,dt=x^2/2$,
@@ -2695,7 +2417,7 @@ However, the penalty inserted after it is 10 which is the \Param{postbreakpenalt
\end{quote}
ã¯ï¼æåã³ã¼ããã¨ã«è¨å®ããéã§ããï¼
-\Pkg{fontspec}ããã±ã¼ã¸ã使ãï¼\ref{ssec-fontspec}ç¯ï¼å ´åãªã©ï¼
+\Pkg{fontspec}ããã±ã¼ã¸ã使ãï¼\ref{ssec:fontspec}ç¯ï¼å ´åãªã©ï¼
å種ã®OpenType featureãé©ç¨ãããã¨ãããã¨æããï¼å段è½ã«è¿°ã¹ããã©ã¡ã¼ã¿é¡ã¯ï¼
\emph{OpenType featureã®é©ç¨åã®æåã³ã¼ãã«ãã£ã¦é©ç¨ãããï¼}
ä¾ãã°ï¼ä»¥ä¸ã®ä¾ã«ããã¦10è¡ç®ã®ãã¢ãã¯ï¼\verb+hwid+ featureã®é©ç¨ã«ããåè§ã«ã¿ã«ãã®ãï½±ã
@@ -2726,7 +2448,7 @@ However, the penalty inserted after it is 10 which is the \Param{postbreakpenalt
\subsection{äºåç¥èï¼\pTeX ã¨\upTeX ã«ããã \cs{kcatcode}}
\pTeXï¼\upTeX ã«ããã¦ã¯ï¼åææåãå¶å¾¡ç¶´å
ã§å©ç¨ã§ãããã©ãã
㯠\cs{kcatcode} ã®å¤ã«ãã£ã¦æ±ºå®ãããã®ã§ãã£ãï¼
-詳細ã¯è¡¨\ref{table-kcat}ãåç
§ããããï¼
+詳細ã¯\autoref{tab:kcat}ãåç
§ããããï¼
%
%<*en>
\section{\cs{catcode} in \LuaTeX-ja}
@@ -2734,13 +2456,13 @@ However, the penalty inserted after it is 10 which is the \Param{postbreakpenalt
\subsection{Preliminaries: \cs{kcatcode} in \pTeX\ and \upTeX}
In \pTeX~and~\upTeX, the value of \cs{kcatcode} determines
whether a Japanese character can be used in a control word.
-For the detail, see Table~\ref{table-kcat}.
+For the detail, see \autoref{tab:kcat}.
%
\begin{table}[t]
\small
\caption{\cs{kcatcode} in \upTeX}
-\label{table-kcat}
+\label{tab:kcat}
%\medskip
\noindent\hfill
@@ -2750,13 +2472,13 @@ For the detail, see Table~\ref{table-kcat}.
%<*en>
\bfseries meaning&
\bfseries control word&
-\bfseries widow penalty\hbox{}$^*$&
+\bfseries widow penalty&
\bfseries linebreak\\
%
%<*ja>
\bfseries æå³&
\bfseries å¶å¾¡ç¶´ä¸ã«ä½¿ç¨&
-\bfseries æåã¦ã£ãã¦å¦ç\hbox{}$^*$&
+\bfseries æåã¦ã£ãã¦å¦ç&
\bfseries ç´å¾ã§ã®æ¹è¡\\
%
\midrule
@@ -2771,7 +2493,7 @@ For the detail, see Table~\ref{table-kcat}.
\medskip
%<*ja>
-æåã¦ã£ãã¦å¦ç\hbox{}$^*$: ãæ¼¢åãä¸æåã ã次ã®è¡ã«è¡ãã®ãé²ãã\
+æåã¦ã£ãã¦å¦çï¼ãæ¼¢åãä¸æåã ã次ã®è¡ã«è¡ãã®ãé²ãã
\cs{jcharwidowpenalty} ãï¼
ãã®æåã®ç´åã«æ¿å
¥ãããããå¦ãï¼ã示ãï¼
%
@@ -2804,7 +2526,7 @@ 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}.
+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.
@@ -2821,7 +2543,7 @@ is controlled by the lowermost bit of the \Param{kcatcode} parameter.
åå²ãã¦ããï¼
\begin{description}
\item[欧æ/åæã®åºå¥ (\upTeX)]
-\cs{ltjdefcharrange} ã¨\textsf{jacharrange}ãã©ã¡ã¼ã¿ï¼\ref{ssec-setrange}ç¯ï¼
+\cs{ltjdefcharrange} ã¨\textsf{jacharrange}ãã©ã¡ã¼ã¿ï¼\ref{ssec:setrange}ç¯ï¼
\item[å¶å¾¡ç¶´ä¸ã«ä½¿ç¨å¯ã]
\LuaTeX èªèº«ã® \cs{catcode} ã§ãã
\item[\Param{jcharwidowpenalty}ãæ¿å
¥å¯ã]
@@ -2843,50 +2565,58 @@ between \XeTeX\ and \LuaTeX, by the following reasons:
\begin{itemize}
\item (plain format) \texttt{luatex-unicode-letters.tex} is based on old \texttt{unicode-letters.tex}.
\item The latter half of \texttt{unicode-letters.tex}~and~\texttt{unicode-letters.def}
-sets\cs{catcode} of Kanji and kana characters to 11, via setting \cs{XeTeXcharclass}.
-
-However, this latter half does not exist (plain case), or not executed (\LaTeX~case) in \LuaTeX, hence
-\cs{catcode} of Kanji and kana characters remains 12 in \LuaTeX.
+sets\cs{catcode} of several characters to 11, via setting \cs{XeTeXcharclass}.
+However, this latter half does not exist (plain case), or not executed (\LaTeX~case) in \LuaTeX.
\end{itemize}
-In other words, Kanji nor kana characters cannot be used in
-a control word, in the default setting of \LuaTeX.
+In other words,
+\begin{description}
+\item[plain \LuaTeX]
+Kanji nor kana characters cannot be used in
+a control word, in the default setting of plain \LuaTeX.
+\item[\LuaLaTeX]
+In recent (2015-10-01 or later) \LuaLaTeX, Kanji and kana characters in a control word is supported (these catcode are 11),
+but not fullwidth alphanumerics and several other characters.
+\end{description}
This would be inconvenient for \pTeX~users to shifting to \LuaTeX-ja,
-since several control words containing Kanji, such as \verb+\西æ¦+,
-are used in \pTeX.
+since several control words containing Kanji or other fullwidth characters, such as
+\verb+\西æ¦+~or~\verb+\ï¼å¹´ç®è¥¿æ¦+ 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} ã¨ãã¦çµ±åããï¼
+æåãå¶å¾¡ç¶´å
ã§ä½¿ç¨ã§ãããã¯é常ã®æ¬§ææåã¨åãã\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 ã®ä¸¡æ¹ãç¨ãã¦ããï¼
-
-ã ãï¼\XeTeX ã«ããã \cs{catcode} ã®åæè¨å®ã¨
+ã ãï¼\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} å¾åé¨ã¯å®è¡ãããª
- ãï¼å¾ã£ã¦æ¼¢åãä»®åã® \cs{catcode} ã¯12ã®ã¾ã¾ã«ãªã£ã¦ããï¼
+ \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}
-è¨ãæããã¨ï¼\LuaTeX ã®åæç¶æ
ã§ã¯æ¼¢åãä»®åãå¶å¾¡ç¶´å
ã«
+è¨ãæããã¨ï¼
+\begin{description}
+ \item[plain \LuaTeX] æ¼¢åãä»®åãå¶å¾¡ç¶´å
ã«
使ç¨ãããã¨ã¯ã§ããªãï¼
-
-ããã§ã¯ \pTeX ã§ä½¿ç¨ã§ãã \verb+\西æ¦+ ãªã©ã使ããªããã¨ã¨ãªãï¼
+ \item[\LuaLaTeX] æè¿ã®ï¼2015-10-01以éã®ï¼
+\LuaLaTeX ã§ã¯æ¼¢åãä»®åãå¶å¾¡ç¶´å
ã«
+使ç¨ãããã¨ãå¯è½ã«ãªã£ããï¼å
¨è§è±æ°åã¯ç¸å¤ããã使ç¨ã§ããªãï¼
+\end{description}
+ããã§ã¯\pTeX ã§ä½¿ç¨ã§ãã\verb+\ï¼å¹´ç®è¥¿æ¦+\footnote{ç§ç è²»\LaTeX ã§ä½¿ç¨ããã¦ããããã§ãï¼}ãªã©ã使ããªããã¨ã¨ãªãï¼
\LuaTeX-jaã¸ã®ç§»è¡ã§æéãçããï¼ãã®ããï¼\LuaTeX-jaã§ã¯
-\texttt{unicode-letters.tex} ã®å¾åé¨ã«ãããå
容ãèªåã§ããããï¼
-çµæã¨ãã¦\textbf{\XeTeX ã«ãããåæè¨å®ã¨åãã«ãªãããã«ãã¦ããï¼}
+\texttt{unicode-letters.tex}ã®å¾åé¨ã«ãããå
容ãèªåã§ããããï¼
+çµæã¨ãã¦\emph{\XeTeX ã«ãããåæè¨å®ã¨åãã«ãªãããã«ãã¦ããï¼}
%
\begin{table}
@@ -2894,7 +2624,7 @@ for \LuaTeX, \emph{to match the \cs{catcode} setting with that of \XeTeX.}
%\caption{Difference of the set of non-kanji JIS~X~0208 characters which can be used in a control word}
%\caption{å¶å¾¡ç¶´ä¸ã«ä½¿ç¨åºæ¥ãJIS~X~0208éæ¼¢åã®éã}
%\medskip
-\label{table-kcat-diff}
+\label{tab:kcat-diff}
\def\D#1#2#3#4{%
{\fboxsep0pt\fcolorbox{cyan}{white}%
{\large\char"#1#2#3#4}}\ (\texttt{U+#1#2#3#4})} %"
@@ -2955,7 +2685,7 @@ for \LuaTeX, \emph{to match the \cs{catcode} setting with that of \XeTeX.}
\subsection{Non-kanji characters in a control word}
Because the engine differ, so non-kanji JIS~X~0208 characters
which can be used in a control word differ in \pTeX, in \upTeX,~and~in \LuaTeX-ja.
-Table~\ref{table-kcat-diff} shows the difference.
+\autoref{tab:kcat-diff} shows the difference.
Except for four characters ``ã»'',~``ã'', ``ã'',~``ã '',
\LuaTeX-ja admits more characters in a control word than \upTeX.
@@ -2968,7 +2698,7 @@ For the detail, see \url{https://github.com/h-kitagawa/kct}.
ã¨ã³ã¸ã³ãç°ãªãã®ã§ï¼\pTeX, \upTeX, \LuaTeX-ja
ã«ããã¦å¶å¾¡ç¶´ä¸ã«ä½¿ç¨å¯è½ãªJIS~X~0208ã®æåã¯ç°ãªãï¼
-ç°ãªã£ã¦ããã¨ããã ããè¼ããã¨ï¼è¡¨\ref{table-kcat-diff}ã®ããã«ãªãï¼
+ç°ãªã£ã¦ããã¨ããã ããè¼ããã¨ï¼\autoref{tab:kcat-diff}ã®ããã«ãªãï¼
ãã»ããããããããã ããé¤ãã°ï¼\LuaTeX-jaã§ã¯\upTeX ããå¤ãã®æåã
å¶å¾¡ç¶´ã«ä½¿ç¨å¯è½ã«ãªã£ã¦ããï¼
@@ -3072,7 +2802,7 @@ Example&\obox{\yoko}&\obox{\tate}&\obox{\dtou}&\obox{\utod}\\
\end{table}
%<*en>
-\LuaTeX-ja supports four directions, as shown in Table~\ref{tab-dir}.
+\LuaTeX-ja supports four directions, as shown in \autoref{tab-dir}.
The second column (\emph{yoko} direction) is just horizontal writing,
and the third column (\emph{tate} direction) is vertical writing.
The fourth column (\emph{dtou} direction) is actually a hidden feature of \pTeX.
@@ -3080,12 +2810,14 @@ 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
+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).
%
%<*ja>
-\LuaTeX-jaããµãã¼ãããçµæ¹åã¯è¡¨\ref{tab-dir}ã«ç¤ºã4ã¤ã§ããï¼
+\LuaTeX-jaããµãã¼ãããçµæ¹åã¯\autoref{tab-dir}ã«ç¤ºã4ã¤ã§ããï¼
4åç®ã® \cs{dtou} ã¯èãæ
£ããªãå½ä»¤ã ã¨æããï¼
å®ã¯\pTeX ã«ååã®å½ä»¤ãï¼ããã¥ã¡ã³ãã«ã¯æ¸ããã¦ããªããï¼åå¨ããï¼
Down-TO-Upã®æå³ãªã®ã ããï¼\cs{dtou} ã使ç¨ããæ©ä¼ã¯ãªãã ãããï¼
@@ -3094,6 +2826,8 @@ Down-TO-Upã®æå³ãªã®ã ããï¼\cs{dtou} ã使ç¨ããæ©ä¼ã¯ãªãã
çµæ¹åã¯ï¼\cs{yoko},~\cs{tate}, \cs{dtou},~\cs{utod} ããããã使ç¨ãããã¨ã§ï¼
ç¾å¨ä½æä¸ã®ãªã¹ããããã¯ã¹ã空ã®æã«ã®ã¿å¤æ´å¯è½ã§ããï¼
+ãã ãï¼ç¾å¨ã®ã¢ã¼ããéå¶éæ°´å¹³ã¢ã¼ããï¼æä¸ï¼å¥è¡ç«ã¦åããï¼æ°å¼ã¢ã¼ãã§ããã¨ãã«ã¯
+çµæ¹åãå¤æ´ãããã¨ã¯åºæ¥ãªãï¼
ã¾ãï¼ç¸¦çµä¸ã®æ°å¼å
ã®ããã¯ã¹ã¯\pTeX ã¨åãããã«çµæ¹åã \cs{utod} ã¨ãªãï¼
%
@@ -3113,7 +2847,7 @@ The below is an example.
ã¾ã横çµã«æ»ã% yoko
\end{LTXexample}
-Table~\ref{tab-diffdir} shows how a box is arranged when
+\autoref{tab-diffdir} shows how a box is arranged when
the direction inside the box and that outside the box differ.
%
%<*ja>
@@ -3134,7 +2868,7 @@ the direction inside the box and that outside the box differ.
\end{LTXexample}
ç°ãªãçµæ¹åã®ããã¯ã¹ãé
ç½®ããå ´åã«ã©ãçµã¾ãããã®ä»æ§ãï¼\pTeX ã
-è¸è¥²ãã¦ããï¼è¡¨\ref{tab-diffdir}ã«ç¤ºãï¼
+è¸è¥²ãã¦ããï¼\autoref{tab-diffdir}ã«ç¤ºãï¼
%
\begin{table}[t]
@@ -3447,7 +3181,7 @@ These commands set the dimension of \cs{box}. One does not need
\ltjsetwd42 20pt, \ltjsetwd42=20pt, \ltjsetwd=42 20pt, \ltjsetwd=42=20pt
\end{lstlisting}
-è¨å®å¤ã¯ã横çµãã縦çµåã³ \cs{utod} æ¹åãã\cs{dtou} æ¹åã
+è¨å®å¤ã¯ã横çµãã縦çµåã³utodæ¹åããdtouæ¹åã
ã®3種ãã¨ã«ç¬ç«ãã¦è¨é²ãããï¼åèã¨ãã¦ï¼Gitãªãã¸ããªå
ã®
\verb+test/test55-boxdim_diffdir.{tex,pdf}+ ãæãã¦ããï¼
@@ -3568,7 +3302,7 @@ overridden by \LuaTeX-ja, using~\verb+\protected\def+.
%\section{ãã©ã³ãã¡ããªãã¯ã¨åæãã©ã³ã}
%\subsection{\cs{jfont}}
%\subsection{\cs{jfont} å½ä»¤}
-\label{ssec-jfont}
+\label{ssec:jfont}
%<*en>
To load a font as a Japanese font (for horizontal direction), you must use the
@@ -3678,7 +3412,7 @@ 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:
+The following horizontal JFMs are shipped with \LuaTeX-ja:
%
%<*ja>
ç¨ããï¼æ¨ªçµç¨ï¼JFMã®ååãæå®ããï¼ãã以åã«æå®ãããJFMãèªã¿è¾¼ã¾ãã¦ããªããã°ï¼
@@ -3686,7 +3420,7 @@ The following JFMs are shipped with \LuaTeX-ja:
%
\begin{description}
%<*en>
-\item[\tt jfm-ujis.lua] A standard JFM in \LuaTeX-ja. This JFM is
+\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.
%
@@ -3721,10 +3455,10 @@ The following JFMs are shipped with \LuaTeX-ja:
%
\end{description}
%<*en>
-The difference among these three~JFMs is shown in Table~\ref{tab-difjfm}.
+The difference among these three~JFMs is shown in \autoref{tab-difjfm}.
%
%<*ja>
-ããã3ã¤ã®JFMã®éãã¯è¡¨\ref{tab-difjfm}ã«ç¤ºããï¼è¡¨ä¸ã®æä¾ã®ä¸é¨ã«ã¯ï¼
+ããã3ã¤ã®JFMã®éãã¯\autoref{tab-difjfm}ã«ç¤ºããï¼è¡¨ä¸ã®æä¾ã®ä¸é¨ã«ã¯ï¼
\cite{min10}ã®å³3,~4ã®ãã®ãç¨ããï¼
%
@@ -3754,11 +3488,11 @@ Sometimes there is a need that \ldots.
\item[jfmvar=]
æ¨æºã§ã¯ï¼JFMã¨ãµã¤ãºãåãã§ï¼
å®ãã©ã³ãã ããç°ãªã2ã¤ã®åæãã©ã³ãã¯ãåºå¥ãããªããï¼ä¾ãã°
-å³\ref{fig:jfmvar}ã«ããã¦ï¼æåã®ãï¼ãã¨ãããã®å®ãã©ã³ãã¯ç°ãªããï¼
+\autoref{fig:jfmvar}ã«ããã¦ï¼æåã®ãï¼ãã¨ãããã®å®ãã©ã³ãã¯ç°ãªããï¼
JFMããµã¤ãºãåããªã®ã§ï¼æ®éã«ãï¼ããã¨å
¥åããæã¨åãããã«åè§ç©ºãã¨ãªãï¼
ãããï¼JFMã¨ãµã¤ãºãåãã§ãã£ã¦ãï¼\texttt{jfmvar} ãã¼ã®ç°ãªã
-2ã¤ã®åæãã©ã³ãï¼ä¾ãã°å³\ref{fig:jfmvar}ã§è¨ã \cs{F} 㨠\cs{H}ï¼
+2ã¤ã®åæãã©ã³ãï¼ä¾ãã°\autoref{fig:jfmvar}ã§è¨ã \cs{F} 㨠\cs{H}ï¼
ã¯ãåºå¥ããããï¼ç°ãªãåæãã©ã³ãã«ç°ãªã \texttt{jfmvar} ãã¼ãå²ãå½ã¦ï¼
ãã¤\Param{differentjfm}ãã©ã¡ã¼ã¿ã \texttt{both} ã«è¨å®ããã°ï¼
\pTeX ã¨ä¼¼ãç¶æ³ã§çµçããããã¨ã«ãªãï¼
@@ -3789,9 +3523,9 @@ JFMããµã¤ãºãåããªã®ã§ï¼æ®éã«ãï¼ããã¨å
¥åããæã¨
\label{para-kern}
%<*en>
Some fonts have information for inter-glyph spacing.
-This version of \LuaTeX-ja treats kerning spaces like an italic correction;
+\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 Figure~\ref{fig:kern-jfm} for detail.
+See \autoref{fig:kern-jfm} for detail.
Note that in \cs{setmainjfont} etc.\ which are provided by \Pkg{luatexja-fontspec}
package, kerning option is set \emph{off} (\texttt{Kerning=Off}) by default,
@@ -3800,12 +3534,12 @@ because of the compatibility with previous versions of \LuaTeX-ja.
%<*ja>
ããã¤ãã®ãã©ã³ãã¯ã°ãªãéã®ã¹ãã¼ã¹ã«ã¤ãã¦ã®æ
å ±ãæã£ã¦ããï¼
ãã®ã«ã¼ãã³ã°æ
å ±ã¯ä»¥åã®\LuaTeX-ja ã¨ã¯ãã¾ãç¸æ§ãè¯ããªãã£ããï¼
-æ¬ãã¼ã¸ã§ã³ã§ã¯ã«ã¼ãã³ã°ã«ãã空ç½ã¯ã¤ã¿ãªãã¯è£æ£ã¨åæ§ã«æ±ããã¨ã«ãªã£ã¦ããï¼
+ãã¼ã¸ã§ã³20140324.0以éã§ã¯ã«ã¼ãã³ã°ã«ãã空ç½ã¯ã¤ã¿ãªãã¯è£æ£ã¨åæ§ã«æ±ããã¨ã«ãªã£ã¦ããï¼
ã¤ã¾ãï¼ã«ã¼ãã³ã°ç±æ¥ã®ç©ºç½ã¨JFMç±æ¥ã®ã°ã«ã¼ã»ã«ã¼ã³ã¯åæã«å
¥ãããï¼
-å³\ref{fig:kern-jfm}ãåç
§ï¼
+\autoref{fig:kern-jfm}ãåç
§ï¼
\begin{itemize}
\item \emph{\cs{jfont} ãï¼
-NFSS2ç¨ã®å½ä»¤ï¼\ref{ssec-chgfnt}ç¯ï¼\ref{ssec-nfsspat}ç¯ï¼ã«ãããæå®ã§ã¯
+NFSS2ç¨ã®å½ä»¤ï¼\ref{ssec:chgfnt}ç¯ï¼\ref{ssec:nfsspat}ç¯ï¼ã«ãããæå®ã§ã¯
ã«ã¼ãã³ã°æ
å ±ã¯æ¨æºã§ä½¿ç¨ãã}ãã¨ã«ãªã£ã¦ããããã§ããï¼
è¨ãæããã°ï¼ã«ã¼ãã³ã°æ
å ±ã使ç¨ããªãè¨å®ã«ããã«ã¯ï¼é¢åã§ã
\begin{lstlisting}
@@ -3857,11 +3591,11 @@ letter-spacing and the width of italic correction are not correct:
\paragraph{\texttt{ltjksp} æå®}
\label{pg:ltjksp}
\LuaTeX-jaæ¨æºã§ã¯ï¼
-JFMä¸ã«ããã \texttt{kanjiskip\_natural}, \texttt{kanjiskip\_stretch},\
+JFMä¸ã«ããã \texttt{kanjiskip\_natural}, \texttt{kanjiskip\_stretch},\
\texttt{kanjiskip\_shrink}ãã¼ï¼\pageref{pg:ksp_nat}ãã¼ã¸ï¼ã®ä½¿ç¨ã«ãã£ã¦ï¼
ãJFMç±æ¥ã®ã°ã«ã¼ã®ä»ã«ï¼\Param{kanjiskip}ã®èªç¶é·/伸ã³é/縮ã¿éã®ä¸é¨ã
åãå ´æã«æ¿å
¥ããããã¨ããç¶æ³ãèµ·ããããï¼
-ãã®æ©è½ãç¡å¹åãï¼20150922.0ç以åã¨åããããªçµçãå¾ãããã«ã¯
+ãã®æ©è½ãç¡å¹åãï¼ãã¼ã¸ã§ã³20150922.0以åã¨åããããªçµçãå¾ãããã«ã¯
ä»ã®OpenTypeæ©è½ã¨åãããã«\ \texttt{-ltjksp}\ æå®ãè¡ãã°è¯ãï¼
\begin{LTXexample}[width=16\zw]
\leavevmode
@@ -3881,27 +3615,49 @@ JFMä¸ã«ããã \texttt{kanjiskip\_natural}, \texttt{kanjiskip\_stretch},\
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}.
+
+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}
+%
+
+
%\subsection{\cs{tfont}}
%\subsection{\cs{tfont} å½ä»¤}
+\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}
-\catcode`\<=12\catcode`\>=12
\ltjsetparameter{jacharrange={+3}}
\small
-
\def\r#1#2{%
\hbox{\tate\Large\vrule
\parbox{7\zw}{%
\addjfontfeatures{TateFeatures={Opacity=0.5, Color=#2, JFM=#1}}\noindent
âââââââ
- ããæ¥ã¢ã¢ã¡ãããã使ãã§è¿·åã«ãªã£ã¦æ³£ãã¾ããï¼
+ ããæ¥ã¢ã¢ã¡ããããã使ããã§è¿·åã«ãªã£ã¦æ³£ãã¾ããã
}\vrule}}
\def\s#1#2{%
\hbox{\tate\Large
@@ -3930,3156 +3686,4453 @@ JFMä¸ã«ããã \texttt{kanjiskip\_natural}, \texttt{kanjiskip\_stretch},\
\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}
+\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 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}
+\end{itemize}
+%
+%<*ja>
+\cs{tfont} ã¯ãã©ã³ãã縦çµç¨ã®åæãã©ã³ãã¨ãã¦èªã¿è¾¼ãå½ä»¤ã§ããï¼
+\cs{tfont} ã®ææ³ã¯ \cs{jfont} ã¨åãã§ããï¼
+\cs{tfont} ã§å®ç¾©ããã縦çµç¨åæãã©ã³ãã¯ï¼
+以ä¸ã®ç¹ã \cs{jfont} ã«ãã横çµç¨åæãã©ã³ãã¨ã¯ç°ãªãï¼
+\begin{itemize}
+ \item æ示çã« \texttt{vert}, \texttt{vrt2}ï¼ã®ããããï¼ã®
+ æå¹ã»ç¡å¹ãæå®ããå ´åãé¤ãï¼èªåçã« OpenType feature~\texttt{vrt2} ã®æå¹åã
+ æå®ããããã®ã¨ã¿ãªããã
+ \footnote{ãããã©ã³ãã\texttt{vrt2}ãå®ç¾©ãã¦ããªãã£ãå ´åï¼ä»£ããã«
+ \texttt{vert}ãç¨ããï¼}ï¼
+\begin{lstlisting}
+\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}
+\end{itemize}
+
+ãªãï¼\pTeX ã§ã¯ï¼\cs{font},~\cs{jfont},~\cs{tfont}ã®ã©ãã§ã欧æãã©ã³ãã»æ¨ªçµç¨åæãã©ã³
+ãã»ç¸¦çµç¨åæãã©ã³ãã®å®ç¾©ãå¯è½ã§ãã£ããï¼\LuaTeX-jaã§ã¯ããã§ãªãã®ã§æ³¨æï¼
+%
+
+%\subsection{Prefix \texttt{psft}}
+%\subsection{\texttt{psft}ããªãã£ãã¯ã¹}
+\label{ssec:psft}
+%<*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.
+%
+%<*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} ããªãã£ãã¯ã¹ã§ã使ç¨å¯è½ã§ããï¼
+%
+
+%\paragraph{\texttt{cid} key}
+%\paragraph{\texttt{cid}ãã¼}
+\label{para-cid}
+
+%<*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.
+%
+%<*ja>
+æ¨æºã§\texttt{psft:}ããªãã£ãã¯ã¹ã§å®ç¾©ããããã©ã³ãã¯æ¥æ¬èªç¨ã®ãã®ã§
+ããï¼Adobe-Japan1-6ã®CIDã«å¯¾å¿ãããã®ã¨ãªãï¼ãããï¼\LuaTeX-jaã¯ä¸å½èª
+ã®çµçã«ãå¨åãçºæ®ãããã¨ãåããï¼æ¥æ¬èªãã©ã³ãã§ãªãéåè¾¼ãã©ã³ã
+ã®å¯¾å¿ãå¿
è¦ã¨ãªã£ãï¼ãã®ããã«è¿½å ãããã®ã\texttt{cid}ãã¼ã§ããï¼
+
+\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}ãæå®ãã¦ããã®ã§æ³¨æããããï¼
+%
+
+%<*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:
+%
+%<*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
+
+? 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}
+
+%\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.
+%
+%<*ja>
+å®éã®ãã¼ã¿ã¯ä¸ã§ \verb+{ ... }+ ã§ç¤ºããããã¼ãã«ã®ä¸ã«æ ¼ç´ããã¦ããï¼
+以ä¸ã§ã¯ãã®ãã¼ãã«ã®æ§é ã«ã¤ãã¦è¨ãï¼
+ãªãï¼JFMãã¡ã¤ã«ä¸ã®é·ãã¯å
¨ã¦design-sizeãåä½ã¨ããæµ®åå°æ°ç¹æ°ã§ãããã¨ã«
+注æããï¼
+%
+
+\begin{cslist}[style=standard]
+
+\item[version=]
+%(optional, default value is~1)
+%ï¼ä»»æï¼æ¢å®å¤ã¯1ï¼
+
+%<*en>
+The version JFM. Currently 1,~2,~and,~3 are supported
+%
+%<*ja>
+JFMã®ãã¼ã¸ã§ã³ï¼1,~2,~3ããµãã¼ããããï¼
+%
+
+\item[dir=]
+%(required)
+%ï¼å¿
é ï¼
+
+%<*en>
+The direction of JFM. \texttt{'yoko'}~(horizontal)
+or \texttt{'tate'}~(vertical) are supported.
+%
+%<*ja>
+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ã§ã¯ããã§æå®ããï¼
+%
+
+\item[zh=]
+%(required)
+%ï¼å¿
é ï¼
+
+%The amount of the ``full-height'' (height + depth).
+%<*ja>
+ãå
¨è§é«ãã(height + depth)ã®é·ãï¼é常ã¯å
¨è§å¹
ã¨åãé·ãã«ãªãã ããï¼
+\pTeX ã§ã¯ ãå
¨è§é«ãã\texttt{1zh} ã¯ãæåã¯ã©ã¹0ã®æåãã®é«ãã¨æ·±ãã®åã¨æ±ºãããã¦ãããï¼
+\LuaTeX-jaã§ã¯ããã§æå®ããï¼
+%
+
+\item[kanjiskip=\{, , \}]
+%(optional)
+%ï¼ä»»æï¼
+
+%<*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
+ãåä½ã§ãããã¨ã«æ³¨æããï¼
+%
+
+\item[xkanjiskip=\{, , \}]
+%(optional)
+%ï¼ä»»æï¼
+
+%<*en>
+Like the \texttt{kanjiskip} field, this field specifies the ``ideal''
+ amount of \Param{xkanjiskip}.
+%
+%<*ja>
+\texttt{kanjiskip}ãã£ã¼ã«ãã¨åæ§ã«ï¼\Param{xkanjiskip}ã®çæ³çãªéã
+æå®ããï¼
+%
+\end{cslist}
+
+%<*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$ã§è¡¨ããï¼ã¯ä»¥ä¸ã®ãã£ã¼ã«ããæã¤ï¼
+%
+
+\begin{cslist}[style=standard]
+\item[chars=\{, ...\}]
+%(required except character class~0)
+%ï¼æåã¯ã©ã¹0ãé¤ãã¦å¿
é ï¼
+
+%<*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}
+%
+%<*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)
+%ï¼å¿
é ï¼
+
+%<*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}.
+%
+%<*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ã¨ä½µç¨
+ ããã°ï¼ããã«ãã£ã¦ãããã¼ã·ã§ãã«çµãè¡ããã¨ãã§ããï¼
+%
+
+\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>
+ãããã®ãã£ã¼ã«ãã¯å®éã®ã°ãªãã®ä½ç½®ã調æ´ããããã«ããï¼
+\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}ï¼ç¸¦çµç¨åæãã©ã³ãï¼ã§èª¬æããï¼
+%
+
+%<*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}
+
+\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}%
+%<*en>
+Consider a Japanese character node which belongs to
+a character class whose the \texttt{align}
+field is \texttt{'middle'}.
+%
+%<*ja>
+\texttt{align}ãã£ã¼ã«ãã®å¤ã \texttt{'middle'} ã§ãããããªæåã¯ã©ã¹ã«å±ãã
+åææåãã¼ããèãããï¼
+%
+\begin{itemize}
+\item
+%<*en>
+The black rectangle is the imaginary body of the node.
+Its width, height, and depth are specified by JFM.
+%
+%<*ja>
+é»è²ã®é·æ¹å½¢ã¯ãã¼ãã®æ ã§ããï¼
+ãã®å¹
ï¼é«ãï¼æ·±ãã¯JFMã«ãã£ã¦æå®ããã¦ããï¼
+%
+\item
+%<*en>
+Since the \texttt{align} field is \texttt{'middle'},
+the ``real'' glyph is centered horizontally (the green rectangle) first.
+%
+%<*ja>
+\texttt{align}ãã£ã¼ã«ã㯠\texttt{'middle'} ãªã®ã§ï¼
+å®éã®ã°ãªãã®ä½ç½®ã¯ã¾ãæ°´å¹³æ¹åã«ä¸å¤®æããããã®ã¨ãªãï¼ç·è²ã®é·æ¹å½¢ï¼ï¼
+%
+\item
+%<*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.
+%
+%<*ja>
+ããã«ï¼ã°ãªã㯠\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}}
+
+
+\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)
+%
+%<*ja>
+\texttt{align}ãã£ã¼ã«ãã®å¤ã \texttt{'right'} ã§ãããããªæåã¯ã©ã¹ã«å±ãã
+åææåãèãããï¼
+\begin{itemize}
+\item
+å®éã®ã°ãªãã®ãåç´ä½ç½®ãã¯ï¼ã¾ããã¼ã¹ã©ã¤ã³ãæåã®ç©ççãªå·¦å³æ¹åã®ä¸å¤®ãéã
+ä½ç½®ã¨ãªãï¼
+\item
+ã¾ãï¼ãã®å ´å \texttt{align} ãã£ã¼ã«ã㯠\texttt{'right'} ãªã®ã§ï¼
+ãæ°´å¹³ä½ç½®ãã¯åéãæ¹åã«ãå³å¯ãããããã®ã¨ãªãï¼ç·è²ã®é·æ¹å½¢ï¼ï¼
+\item
+ãã®å¾ããã« \texttt{left} 㨠\texttt{down} ã®å¤ã«å¾ã£ã¦ã·ããããã
+ã®ã¯æ¨ªçµç¨åæãã©ã³ãã¨å¤ãããªãï¼
+\end{itemize}
+%
+\end{minipage}
+\medskip
+
+\caption{%
+%The position of the real glyph (vertical Japanese fonts)
+%縦çµåæãã©ã³ãã«ããããå®éã®ãã°ãªãã®ä½ç½®
+}
+\label{fig:pos-tate}
+\end{figure}
+
+\item[kern={\{[$j$]=, [$j'$]=\{, [ratio=]\}, ...\}}]
+\nopagebreak
+\item[glue={\{[$j$]=\{, , , [ratio=, ...]\}, ...\}}]\leavevmode
+%<*ja>
+æåã¯ã©ã¹$i$ã®æåã¨$j$ã®æåã®éã«æ¿å
¥ãããã«ã¼ã³ãã°ã«ã¼ã®éãæå®ããï¼
+
+ã¯ï¼ã°ã«ã¼ã®èªç¶é·ã®ãã¡ã©ãã ãã®å²åããå¾ã®æåãç±æ¥ãã示ãéã§ï¼
+$0$ãã$+1$ã®å®æ°å¤ãã¨ãï¼çç¥æã®å¤ã¯$0.5$ã§ããï¼
+ãã®ãã£ã¼ã«ãã®å¤ã¯\Param{differentjfm}ã®å¤ã
+\texttt{pleft},~\texttt{pright},~\texttt{paverage}ã®å¤ã®ã¨ãã®ã¿å®éã«ç¨ããããï¼
+
+ä¾ãã°ï¼\cite{x4051}ã§ã¯ï¼å¥ç¹ã¨ä¸ç¹ã®éã«ã¯ï¼
+å¥ç¹ç±æ¥ã®äºå空ãã¨ä¸ç¹ç±æ¥ã®åå空ããæ¿å
¥ããããï¼ãã®å ´åã«ã¯
+\begin{itemize}
+\item ã«ã¯$0.5+0.25=0.75$ãæå®ããï¼
+\item ã«ã¯$0.25/(0.5+0.25)=1/3$ãæå®ããï¼
+\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$.
%
+
%<*ja>
-\cs{tfont} ã¯ãã©ã³ãã縦çµç¨ã®åæãã©ã³ãã¨ãã¦èªã¿è¾¼ãå½ä»¤ã§ããï¼
-\cs{tfont} ã®ææ³ã¯ \cs{jfont} ã¨åãã§ããï¼
-\cs{tfont} ã§å®ç¾©ããã縦çµç¨åæãã©ã³ãã¯ï¼
-以ä¸ã®ç¹ã \cs{jfont} ã«ãã横çµç¨åæãã©ã³ãã¨ã¯ç°ãªãï¼
+ã°ã«ã¼ã®æå®ã«ããã¦ã¯ï¼ä¸è¨ã«å ãã¦å \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}
+
+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 èªåçã« \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ã«ã¯å梱ããã¦ããï¼éãã表\ref{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}
+ \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}
+ã¨ãªã£ã¦ããï¼å¾ã£ã¦ï¼ä»¥ä¸ã®ãããªçµççµæãå¾ãï¼
-ãªãï¼\pTeX ã§ã¯ï¼\cs{font},~\cs{jfont},~\cs{tfont}ã®ã©ãã§ã欧æãã©ã³ãã»æ¨ªçµç¨åæãã©ã³
-ãã»ç¸¦çµç¨åæãã©ã³ãã®å®ç¾©ãå¯è½ã§ãã£ããï¼\LuaTeX-jaã§ã¯ããã§ãªãã®ã§æ³¨æï¼
-%
+\medskip
+\begin{LTXexample}[width=16\zw]
+\leavevmode
+\ltjsetparameter{kanjiskip=0pt plus 3\zw}
+\vrule\hbox to 15\zw{ãããããï¼ãã}\vrule
-%\subsection{Prefix \texttt{psft}}
-%\subsection{\texttt{psft}ããªãã£ãã¯ã¹}
-\label{ssec-psft}
+\vrule\hbox{ãããããï¼ãã}\vrule\par
+\ltjsetparameter{kanjiskip=0pt minus \zw}
+\vrule\hbox to 6.5\zw{ãããããï¼ãã}\vrule
+\end{LTXexample}
+
+\end{cslist}
+%
%<*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}).
+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
-\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>
-\Pkg{luaotfload}ã§ä½¿ç¨å¯è½ã«ãªã£ã
-\texttt{file:}\ 㨠\texttt{name:}\ ã®ããªãã£ãã¯ã¹ã«å ãã¦ï¼
-\cs{jfont}ï¼ã¨ \cs{font} ããªããã£ãï¼ã§ã¯
-\texttt{psft:}ããªãã£ãã¯ã¹ãç¨ãããã¨ãã§ããï¼
-ãã®ããªãã£ãã¯ã¹ãç¨ãããã¨ã§ï¼PDFã«ã¯åãè¾¼ã¾ããªããååã ãã®ã
-åæãã©ã³ããæå®ãããã¨ãã§ããï¼
-ãªãï¼ç¾è¡ã®\LuaTeX ã§éåãè¾¼ã¿ãã©ã³ããä½æããã¨PDFå
ã§ã®ã¨ã³ã³ã¼ãã£ã³ã°ã
-Identity-Hã¨ãªãï¼PDFã®æ¨æºè¦æ ¼ISO32000-1:2008~(\cite{pdfstd})ã«éæºæ ã«ãªã£ã¦ãã¾ã
-ã®ã§æ³¨æãã¦ã»ããï¼
+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.
-\emph{\texttt{psft} ããªãã£ãã¯ã¹ã®ä¸ã§ã¯
-\texttt{+jp90} ãªã©ã®OpenType font featureã®å¹åã¯ãªãï¼
-éåè¾¼ãã©ã³ããPDFã«ä½¿ç¨ããã¨ï¼å®éã«ã©ã®ãããªãã©ã³ãã
-表示ã«ç¨ãããããäºæ¸¬ã§ããªãããã§ããï¼}\
-\texttt{extend} 㨠\texttt{slant} æå®ã¯åãªãå¤å½¢ã®ãã
-\texttt{psft} ããªãã£ãã¯ã¹ã§ã使ç¨å¯è½ã§ããï¼
-%
+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:
-%\paragraph{\texttt{cid} key}
-%\paragraph{\texttt{cid}ãã¼}
-\label{para-cid}
+\medskip
+\begin{LTXexample}[width=16\zw]
+\leavevmode
+\ltjsetparameter{kanjiskip=0pt plus 3\zw}
+\vrule\hbox to 15\zw{ãããããï¼ãã}\vrule
-%<*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.
+\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{psft:}ããªãã£ãã¯ã¹ã§å®ç¾©ããããã©ã³ãã¯æ¥æ¬èªç¨ã®ãã®ã§
-ããï¼Adobe-Japan1-6ã®CIDã«å¯¾å¿ãããã®ã¨ãªãï¼ãããï¼\LuaTeX-jaã¯ä¸å½èª
-ã®çµçã«ãå¨åãçºæ®ãããã¨ãåããï¼æ¥æ¬èªãã©ã³ãã§ãªãéåè¾¼ãã©ã³ã
-ã®å¯¾å¿ãå¿
è¦ã¨ãªã£ãï¼ãã®ããã«è¿½å ãããã®ã\texttt{cid}ãã¼ã§ããï¼
+ï¼ä»»æï¼ãã¼ã¸ã§ã³1ã®ã¿ï¼
-\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.
+(optional, version~1 only)
%
+
+ \item[end\_adjust=\{, , ...\}]
%<*ja>
-ä¸ã®ã³ã¼ãã§ã¯ä¸å½èªã»éå½èªç¨ãã©ã³ãã«å¯¾ãã¦ãJFMã«
-æ¥æ¬èªç¨ã®\texttt{jfm-jis.lua}ãæå®ãã¦ããã®ã§æ³¨æããããï¼
-%
+ï¼ä»»æï¼ãã¼ã¸ã§ã³2以éï¼
+
+åªå
é ä½ä»ãè¡é·èª¿æ´ãæå¹ã§ããï¼ãã¤ç¾å¨ã®æåã¯ã©ã¹ã®æåã
+ è¡æ«ã«æ¥ãæã«ï¼ãã®æåã¨è¡æ«ã®éã«ã¯æå®ãããå¤ã®ããããã®å¤§ããã®ã«ã¼ã³ã
+ æ¿å
¥ãããï¼\autoref{ssec:adj}åç
§ï¼ï¼
+ãã¼ã¸ã§ã³1ã«ããã
+\begin{lstlisting}[escapechar=\$]
+ end_stretch = $a$, end_shrink = $b$
+\end{lstlisting}
+ã¨ããæå®ã¯ï¼ãã¼ã¸ã§ã³2以éã§ã¯æ¬¡ã®æå®ã¨åãã«ãªãï¼
+\begin{lstlisting}[escapechar=\$]
+ end_adjust = {$-b$, 0.0, $a$}
+\end{lstlisting}
+ããçãä¸ã® \texttt{0.0} ããªãå ´åã¯ï¼$a$ã$-b$ãããããã®ã«ã¼ã³ã常ã«è¡æ«ã«è¿½å ãããï¼
+%
%<*en>
-At present, \LuaTeX-ja supports only 4 values written in the sample code above.
-Specifying other values, e.g.,
+(optional, version~2 or~later)
%
+
+\end{cslist}
+
%<*ja>
-ä»ã®ã¨ããï¼\LuaTeX-jaã¯ä¸ã®ãµã³ãã«ã³ã¼ãä¸ã«æ¸ãã4ã¤ã®å¤ãããµãã¼ããã¦ããªãï¼
+\paragraph{æåã¯ã©ã¹ã®æ±ºå®}
+æåãããã®æåã®å±ããæåã¯ã©ã¹ãç®åºããéç¨ã«ã¤ãã¦ï¼
+次ã®å
容ãå«ãã \texttt{jfm-test.lua} ãç¨ãã¦èª¬æããï¼
%
+%<*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:
+%
\begin{lstlisting}
-\jfont\test={psft:Ryumin-Light:cid=Adobe-Japan2;jfm=jis}
+ [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>
-produces the following error:
+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>
-ã®ããã«ããã以å¤ã®å¤ãæå®ããã¨ï¼ã¨ã©ã¼ãçºçããï¼
+ä¸è¨ã®åºåçµæãï¼15\,ptã¨ãªã£ã¦ããã®ã¯çç±ã«ãããã®ã§ããï¼
+\begin{enumerate}
+\item \verb+hwid+ featureã«ãã£ã¦ããããåè§å¹
ã®ã°ãªããï¾ãã¨ç½®ãæããï¼\Pkg{luaotfload} ã«ããå¦çï¼ï¼
+\item JFMã«ããã°ï¼ãã®ãï¾ãã®ã°ãªãã®æåã¯ã©ã¹ã¯2000ã§ããï¼
+\item 以ä¸ã«ããæåã¯ã©ã¹2000ã¨ã¿ãªãããããï¼çµæã¨ãã¦ãï¾ãã®å¹
ã¯åè§ã ã¨èªèãããï¼
+\end{enumerate}
+ãã®ä¾ã¯ï¼\emph{æåã¯ã©ã¹ã®æ±ºå®ã¯font featureã®é©ç¨ã«ããã°ãªãç½®æã®çµæã«åºã¥ã}ãã¨ã
+示ãã¦ããï¼
%
-\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
-
-? 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}
-%\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.
+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>
+ä½ãï¼JFMã«ãã£ã¦æ±ºã¾ãç½®æå¾ã®ã°ãªãã®æåã¯ã©ã¹ã0ã§ããå ´åã¯ï¼ç½®æåã®æåã¯ã©ã¹ãæ¡ç¨ããï¼
+%
+\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}
%
%<*ja>
-å®éã®ãã¼ã¿ã¯ä¸ã§ \verb+{ ... }+ ã§ç¤ºããããã¼ãã«ã®ä¸ã«æ ¼ç´ããã¦ããï¼
-以ä¸ã§ã¯ãã®ãã¼ãã«ã®æ§é ã«ã¤ãã¦è¨ãï¼
-ãªãï¼JFMãã¡ã¤ã«ä¸ã®é·ãã¯å
¨ã¦design-sizeãåä½ã¨ããæµ®åå°æ°ç¹æ°ã§ãããã¨ã«
-注æããï¼
+ããã§ï¼å¥ç¹ããã(\texttt{U+3002})ã®æåã¯ã©ã¹ã¯ï¼ä»¥ä¸ã®ããã«ãã¦æ±ºã¾ãï¼
+\begin{enumerate}
+\item \Pkg{luaotfload} ã«ãã£ã¦ç¸¦çµç¨å¥ç¹ã®ã°ãªãã«ç½®ãæããï¼
+\item ç½®æå¾ã®ã°ãªã㯠\texttt{U+FE12} ã§ããï¼JFMã«å¾ãã°æåã¯ã©ã¹ã¯\emph{0}ã¨å¤å®ãããï¼
+\item ãã®å ´åï¼ç½®æåã®æ¨ªçµç¨å¥ç¹ã®ã°ãªãã«ãã£ã¦æåã¯ã©ã¹ãå¤å®ããï¼
+\item çµæã¨ãã¦ï¼ä¸ã®åºåä¾ä¸ã®å¥ç¹ã®æåã¯ã©ã¹ã¯2000ã¨ãªãï¼
+\end{enumerate}
%
-\begin{cslist}[style=standard]
-
-\item[dir=]
-%(required)
-%ï¼å¿
é ï¼
+%\paragraph{ä»®æ³çãªæå}
+%\paragraph{Imaginary characters}
%<*en>
-The direction of JFM. \texttt{'yoko'}~(horizontal)
-or \texttt{'tate'}~(vertical) are supported.
+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>
-JFMã®æ¸åæ¹åï¼\texttt{'yoko'}ï¼æ¨ªçµï¼ã¨ \texttt{'tate'}ï¼ç¸¦çµï¼ããµãã¼ããããï¼
+ä¸ã§èª¬æããéãï¼\texttt{chars}ãã£ã¼ã«ãä¸ã«ã¯ããã¤ãã®ãç¹æ®æåãã
+æå®å¯è½ã§ããï¼ãããã¯ï¼å¤§åã\pTeX ã®JFMã°ã«ã¼ã®æ¿å
¥å¦çã§ã¯ã¿ãªãæå
+ã¯ã©ã¹0ã®æåãã¨ãã¦æ±ããã¦ããæåã§ããï¼ãã®çµæã¨ãã¦\pTeX ããç´°ã
+ãçµç調æ´ãã§ããããã«ãªã£ã¦ããï¼ä»¥ä¸ã§ãã®ä¸è¦§ãè¿°ã¹ãï¼
%
-\item[zw=]
-%(required)
-%ï¼å¿
é ï¼
+\begin{cslist}
+%%\item['diffmet']
+%%Used at a boundary between two \textbf{JAchar}s whose JFM or size is different.
+%%JFMããµã¤ãºãç°ãªã2ã¤ã®\textbf{JAchar}ã®éã®å¢çã¨ãã¦ç¨ããããï¼
-%The amount of the length of the ``full-width''.
-%<*ja>
-ãå
¨è§å¹
ãã®é·ãï¼ãã®éã \cs{zw} ã®é·ãã¨ãªãï¼\pTeX ã§ã¯
-ãå
¨è§å¹
ã\texttt{1zw} ã¯ãæåã¯ã©ã¹0ã®æåãã®å¹
ã¨æ±ºãããã¦ãããï¼
-\LuaTeX-jaã§ã¯ããã§æå®ããï¼
-%
+\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[zh=]
-%(required)
-%ï¼å¿
é ï¼
+\item['parbdd']
+%The beginning of an (indented) paragraph.
+%é常ã®ï¼\cs{noindent} ã§éå§ããã¦ããªãï¼æ®µè½ã®å
é ï¼
-%The amount of the ``full-height'' (height + depth).
+\item['jcharbdd']
+%A boundary between \textbf{JAchar} and anything else.
%<*ja>
-ãå
¨è§é«ãã(height + depth)ã®é·ãï¼é常ã¯å
¨è§å¹
ã¨åãé·ãã«ãªãã ããï¼
-\pTeX ã§ã¯ ãå
¨è§é«ãã\texttt{1zh} ã¯ãæåã¯ã©ã¹0ã®æåãã®é«ãã¨æ·±ãã®åã¨æ±ºãããã¦ãããï¼
-\LuaTeX-jaã§ã¯ããã§æå®ããï¼
-%
-
-\item[kanjiskip=\{, , \}]
-%(optional)
-%ï¼ä»»æï¼
+\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['alchar', 'nox\_alchar']
%<*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.
+(version 3~or~later) A boundary between \textbf{JAchar} and \textbf{ALchar}.
%
%<*ja>
-çæ³çãª\Param{kanjiskip}ã®éãæå®ããï¼\ref{subs-kskip}ç¯ã§è¿°ã¹ãããã«ï¼
-ãã\Param{kanjiskip}ã \cs{maxdimen} ã®å¤ãªãã°ï¼ãã®ãã£ã¼ã«ãã§æå®ããã
-å¤ãå®éã«ã¯ç¨ããããï¼æå®ãªãã¯0\,ptã¨ãã¦æ±ãããï¼ï¼ã¨ã®ãã£ã¼ã«ããdesign-size
-ãåä½ã§ãããã¨ã«æ³¨æããï¼
+ï¼ãã¼ã¸ã§ã³3以éï¼\textbf{JAchar}ã¨\textbf{ALchar}ã¨ã®å¢çï¼
+\textbf{JAchar}ã¨\textbf{ALchar}ã®éã«\Param{xkanjiskip}ãå
¥ããã¨ãå¯è½ãªå ´åã¯
+\ \texttt{'alchar'}\ ãï¼ããã§ãªãå ´åã¯\ \texttt{'nox\_alchar'}\ ãç¨ãããã
+ï¼ãã®åºå¥ã¯\textbf{ALchar}å´ã®\Param{alxspmode}ã®å¤ã«ãã£ã¦ã®ã¿è¡ãããï¼ï¼
%
-\item[xkanjiskip=\{, , \}]
-%(optional)
-%ï¼ä»»æï¼
+\item['glue']
+%(version 3~or~later) A boundary between \textbf{JAchar}, and, a glue or kern.
+%ï¼ãã¼ã¸ã§ã³3以éï¼\textbf{JAchar}ã¨glueï¼kernã¨ã®å¢çï¼
-%<*en>
-Like the \texttt{kanjiskip} field, this field specifies the ``ideal''
- amount of \Param{xkanjiskip}.
-%
-%<*ja>
-\texttt{kanjiskip}ãã£ã¼ã«ãã¨åæ§ã«ï¼\Param{xkanjiskip}ã®çæ³çãªéã
-æå®ããï¼
-%
+\item[$-1$]
+%The left/right boundary of an inline math formula.
+%è¡ä¸æ°å¼ã¨å°ã®æã¨ã®å¢çï¼
\end{cslist}
-%<*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$ã§è¡¨ããï¼ã¯ä»¥ä¸ã®ãã£ã¼ã«ããæã¤ï¼
-%
+%\paragraph{Porting JFM from \pTeX}
+%\paragraph{\pTeX ç¨åæç¨TFMã®ç§»æ¤}
-\begin{cslist}[style=standard]
-\item[chars=\{, ...\}]
-%(required except character class~0)
-%ï¼æåã¯ã©ã¹0ãé¤ãã¦å¿
é ï¼
+% ToDo: English version.
%<*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}
+See Japanese version of this manual.
%
+
%<*ja>
-ãã®ãã£ã¼ã«ãã¯æåã¯ã©ã¹$i$ã«å±ããæåã®ãªã¹ãã§ããï¼ãã®ãã£ã¼ã«ãã¯$i=0$ã®
-å ´åã«ã¯ä»»æã§ããï¼æåã¯ã©ã¹0ã«ã¯ï¼0以å¤ã®æåã¯ã©ã¹ã«å±ãããã®ã
-é¤ããå
¨ã¦ã®\textbf{JAchar}ãå±ããããï¼ï¼ãã®ãªã¹ãä¸ã§æåãæå®ããã«ã¯ï¼ä»¥ä¸ã®æ¹æ³ãããï¼
+以ä¸ã«ï¼\pTeX ç¨ã«ä½ãããåæç¨TFMã\LuaTeX-jaç¨ã«ç§»æ¤ããå ´åã®æ³¨æç¹ãæãã¦ããï¼
\begin{itemize}
-\item Unicode ã«ãããã³ã¼ãçªå·
-\item ã\hbox{\ltjsetparameter{autoxspacing=false}\verb+'ã'+}ãã®ãããªï¼æåããèªä½
-\item ã\hbox{\ltjsetparameter{autoxspacing=false}\verb+'ã*'+}ãã®ãããªï¼æåããèªä½ã®å¾ã«ã¢ã¹ã¿ãªã¹ã¯ãã¤ãããã®
-\item ããã¤ãã®ãä»®æ³çãªæåãï¼å¾ã«èª¬æããï¼
+\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}
+\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'}ãå
¥ããã°å
¨è§ä¸ããã¨ãªãï¼
+
+\begin{LTXexample}[width=0.4\textwidth]
+\jfont\g=KozMinPr6N-Regular:jfm=test \g
+\parindent1\zw\noindent{}âââââ
+\par ãâââäºåä¸ãã
+\par ãâââå
¨è§ä¸ãã
+\par ãâââå
¨è§äºåä¸ãã
+\end{LTXexample}
\end{itemize}
+
+ä½ãï¼\cs{everypar} ãå©ç¨ãã¦ããå ´åã«ã¯ãã®ä»çµã¿ã¯æ£ããåããªãï¼
+ãã®ãããªä¾ã¨ãã¦ã¯ç®æ¡æ¸ãä¸ã® \cs{item} ã§å§ã¾ã段è½ãããï¼\Pkg{ltjsclasses}ã§ã¯
+人工çã«ã\texttt{'parbdd'}ã®æå³ãæã¤ãwhatsitãã¼ããä½ããã¨ã«ãã£ã¦å¯¾å¦ãã¦ãã%
+\footnote{\texttt{ltjsclasses.dtx} ãåç
§ããããï¼
+JFMå´ã§ä¸é¨ã®å¯¾å¦ãã§ãããã¨ã«ããï¼\Pkg{jsclasses}ã®ããã«ifæã®å¤å®ã¯ãã¦ããªãï¼}ï¼
%
-\item[width=, height=, depth=, italic=]
-%(required)
-%ï¼å¿
é ï¼
-%<*en>
-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.
+%\subsection{Math font family}
+%\subsection{æ°å¼ãã©ã³ããã¡ããª}
+\label{ssec:math}
-But there is one exception: \texttt{width} field can be \texttt{'prop'}.
-This means that width of a character becomes that of its ``real'' glyph.
+%<*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}.
%
%<*ja>
-æåã¯ã©ã¹$i$ã«å±ããæåã®å¹
ï¼é«ãï¼æ·±ãï¼ã¤ã¿ãªãã¯è£æ£ã®éãæå®ããï¼
-æåã¯ã©ã¹$i$ã«å±ããå
¨ã¦ã®æåã¯ï¼ãã®å¹
ï¼é«ãï¼æ·±ãããã®ãã£ã¼ã«ãã§æå®ãã
-å¤ã§ãããã®ã¨ãã¦æ±ãããï¼
+\TeX\ ã¯æ°å¼ãã©ã³ãã16ã®ãã¡ããª\footnote{Omega, Aleph, \LuaTeXï¼ããã¦
+ $\varepsilon$-\kern-.125em(u)\pTeX\ ã§ã¯256ã®æ°å¼ãã¡ããªãæ±ããã¨ãã§ãããï¼
+ ããããµãã¼ãããããã«plain \TeX ã¨\LaTeX ã§ã¯å¤é¨ããã±ã¼ã¸ãèªã¿è¾¼ãå¿
è¦ã
+ ããï¼}ã§ç®¡çãï¼ããããã®ãã¡ããªã¯3ã¤ã®ãã©ã³ããæã£ã¦ããï¼
+\cs{textfont}, \cs{scriptfont} ãã㦠\cs{scriptscriptfont} ã§ãã.
+%
-ä¾å¤ã¨ãã¦ï¼\emph{\texttt{width} ãã£ã¼ã«ãã«ã¯æ°å¤ä»¥å¤ã« \texttt{'prop'} ãæå®å¯è½ã§ãã}ï¼
-ãã®å ´åï¼æåã®å¹
ã¯ãã®ãå®éã®ãã°ãªãã®å¹
ã¨ãªãï¼OpenTypeã® \texttt{prop} featureã¨ä½µç¨
- ããã°ï¼ããã«ãã£ã¦ãããã¼ã·ã§ãã«çµãè¡ããã¨ãã§ããï¼
+%<*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{縦çµç¨}åæãã©ã³ããæå®ãããã¨ã¯æ³å®ãã¦ããªãï¼
%
-\item[left=, down=, align=]\
+\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>
-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
-Figures \ref{fig-pos}~and~\ref{fig-pos-tate}.
+\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>
-ãããã®ãã£ã¼ã«ãã¯å®éã®ã°ãªãã®ä½ç½®ã調æ´ããããã«ããï¼
-\texttt{align} ãã£ã¼ã«ãã«æå®ã§ããå¤ã¯ \texttt{'left'}, \texttt{'middle'},
-\texttt{'right'} ã®ããããã§ããï¼ããããã3ã¤ã®ãã£ã¼ã«ãã®ãã¡ã®1ã¤ãçããã
-å ´åï¼\texttt{left} 㨠\texttt{down} ã¯0ï¼\texttt{align} ãã£ã¼ã«ãã¯
-\ \texttt{'left'} ã§ãããã®ã¨ãã¦æ±ãããï¼
-ããã3ã¤ã®ãã£ã¼ã«ãã®æå³ã«ã¤ãã¦ã¯å³\ref{fig-pos}ï¼æ¨ªçµç¨åæãã©ã³ãï¼ï¼
-å³\ref{fig-pos-tate}ï¼ç¸¦çµç¨åæãã©ã³ãï¼ã§èª¬æããï¼
+\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>
-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'.
+With this callback you can overwrite JFMs.
+This callback is called when a new JFM is loaded.
%
%<*ja>
-å¤ãã®å ´åï¼\texttt{left}ã¨\texttt{down}ã¯0ã§ããä¸æ¹ï¼
-\texttt{align}ãã£ã¼ã«ãã\texttt{'middle'}ã\texttt{'right'}ã§ãããã¨ã¯
-çãããã¨ã§ã¯ãªãï¼
-ä¾ãã°ï¼\texttt{align}ãã£ã¼ã«ãã\texttt{'right'}ã«æå®ãããã¨ã¯ï¼
-æåã¯ã©ã¹ãéãæ¬å¼§é¡ã§ããã¨ãã«å®éå¿
è¦ã§ããï¼
+ãã®ã³ã¼ã«ããã¯ãç¨ãããã¨ã§JFMãä¸æ¸ããããã¨ãã§ããï¼
+ãã®ã³ã¼ã«ããã¯ã¯æ°ããJFMãèªã¿è¾¼ã¾ããã¨ãã«å¼ã³åºãããï¼
%
-\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}}
+\begin{lstlisting}[numbers=left]
+function ( jfm_info, jfm_name)
+ return new_jfm_info
+end
+\end{lstlisting}
-\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'}.
+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>
-\texttt{align}ãã£ã¼ã«ãã®å¤ã \texttt{'middle'} ã§ãããããªæåã¯ã©ã¹ã«å±ãã
-åææåãã¼ããèãããï¼
+å¼æ° \verb+jfm_info+ ã¯JFMãã¡ã¤ã«ã®ãã¼ãã«ã¨ä¼¼ããã®ãæ ¼ç´ããããï¼
+ã¯ã©ã¹0ãé¤ããæåã®ã³ã¼ããå«ãã \texttt{chars}ãã£ã¼ã«ããæã¤ç¹ãç°ãªãï¼
%
-\begin{itemize}
-\item
+
%<*en>
-The black rectangle is the imaginary body of the node.
-Its width, height, and depth are specified by JFM.
+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>
-é»è²ã®é·æ¹å½¢ã¯ãã¼ãã®æ ã§ããï¼
-ãã®å¹
ï¼é«ãï¼æ·±ãã¯JFMã«ãã£ã¦æå®ããã¦ããï¼
+ãã®ã³ã¼ã«ããã¯ã®ä½¿ç¨ä¾ã¯\texttt{ltjarticle}ã¯ã©ã¹ã«ããï¼
+\texttt{jfm-min.lua}ä¸ã®\texttt{'parbdd'}ãå¼·å¶çã«ã¯ã©ã¹0ã«å²ãå½ã¦ã¦ããï¼
%
-\item
+
+%\item[\texttt{luatexja.define\_jfont} callback]
+%\item[\texttt{luatexja.define\_jfont}ã³ã¼ã«ããã¯]
%<*en>
-Since the \texttt{align} field is \texttt{'middle'},
-the ``real'' glyph is centered horizontally (the green rectangle) first.
+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>
-\texttt{align}ãã£ã¼ã«ã㯠\texttt{'middle'} ãªã®ã§ï¼
-å®éã®ã°ãªãã®ä½ç½®ã¯ã¾ãæ°´å¹³æ¹åã«ä¸å¤®æããããã®ã¨ãªãï¼ç·è²ã®é·æ¹å½¢ï¼ï¼
+ãã®ã³ã¼ã«ããã¯ã¨æ¬¡ã®ã³ã¼ã«ããã¯ã¯çµããªãã¦ããï¼Unicodeä¸ã«åºå®ãããæåã³ã¼ã
+çªå·ãæããªãæåãéé¶ã®æåã¯ã©ã¹ã«å²ãå½ã¦ããã¨ãã§ããï¼
+ãã®ã³ã¼ã«ããã¯ã¯æ°ããåæãã©ã³ããèªã¿è¾¼ã¾ããã¨ãã«å¼ã³åºãããï¼
%
-\item
+
+\begin{lstlisting}[numbers=left]
+function ( jfont_info, font_number)
+ return new_jfont_info
+end
+\end{lstlisting}
%<*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.
+\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}
+\]
+\end{itemize}
+For $i$,~$j\in \omega$, \texttt{char\_type[$i$][$j$]} stores a kern or a glue which will be inserted
+between character class~$i$ and class~$j$.
+\end{description}
%
%<*ja>
-ããã«ï¼ã°ãªã㯠\texttt{left} 㨠\texttt{down} ã®å¤ã«å¾ã£ã¦ã·ãããããï¼
-æçµçãªå®éã®ã°ãªãã®ä½ç½®ã¯èµ¤è²ã®é·æ¹å½¢ã§ç¤ºãããä½ç½®ã«ãªãï¼
-%
+\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}
-\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}}
+$i$,~$j\in \omega$ã«å¯¾ãã¦ï¼\texttt{char\_type[$i$][$j$]} ã¯
+æåã¯ã©ã¹$i$ã®æåã¨$j$ã®æåã®éã«æ¿å
¥ãããã°ã«ã¼ãã«ã¼ã³ãæ ¼ç´ãã¦ããï¼
+\begin{itemize}
+ \item éã«å
¥ããã®ãã«ã¼ã³ã§ããã°ï¼ãã®å¤ã¯\
+\texttt{[$j$]=\{[1]=, ratio=\}} ã§ããï¼
+ã¯ã«ã¼ã³ã表ããã¼ããã®ãã®ã§ãã\footnote{%
+ãã¼ã¸ã§ã³20150420.0以éã§ã¯ãã¼ãã®ã¢ã¯ã»ã¹ææ³ã«direct access
+ modelãç¨ãã¦ããï¼ãã®ããï¼ä¾ãã°\LuaTeX\ beta-0.78.2ã§ã¯ï¼åãªãèªç¶æ°ã®ããã«ã
+ ãè¦ããªããã¨ã«æ³¨æï¼
+}ï¼
+ \item ã°ã«ã¼ã§ããã°ï¼ãã®å¤ã¯ä»¥ä¸ã®ãã¼ãæã¤ãã¼ãã«ã§ããï¼
+ \begin{description}
+ \item[\texttt{width}, \texttt{stretch}, \texttt{shrink}]
+ ã°ã«ã¼ã®ããããèªç¶é·ï¼ä¼¸ã³éï¼ç¸®ã¿éãspåä½ã§è¡¨ãããã®ï¼
+ \item[\texttt{priority}] ãï¼ã¼ã¸ã§ã³2以éã®ï¼JFMã§ã®æå® \texttt{\{,\}} ã
+ \[
+ (\text{}+4)\cdot 8+\text{}+4
+ \]
+ ã¨ãã¦0--63ã®æ´æ°ã«ããã¯ãããã®ï¼
+ \item[\texttt{ratio}, \texttt{kanjiskip\_natural}, \texttt{kanjiskip\_stretch}, \texttt{kanjiskip\_shrink}]
+ JFMä¸ã®ååã®ãã£ã¼ã«ãã®å¤ããã®ã¾ã¾ä½¿ããã¦ããï¼
+ \end{description}
+\end{itemize}
+\item[ascent\textrm{, }descent]
+â¦â¦
+\item[chars\_cbcache]
+æåã¯ã©ã¹æ±ºå®ã®å¦çã§ï¼ãã£ãã·ã¥ã¨ãã¦ä½¿ãããï¼
+\end{cslist}
+%
+%<*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+ ã¯ãã©ã³ãçªå·ã§ããï¼
+%
-\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)
+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>
-\texttt{align}ãã£ã¼ã«ãã®å¤ã \texttt{'right'} ã§ãããããªæåã¯ã©ã¹ã«å±ãã
-åææåãèãããï¼
-\begin{itemize}
-\item
-å®éã®ã°ãªãã®ãåç´ä½ç½®ãã¯ï¼ã¾ããã¼ã¹ã©ã¤ã³ãæåã®ç©ççãªå·¦å³æ¹åã®ä¸å¤®ãéã
-ä½ç½®ã¨ãªãï¼
-\item
-ã¾ãï¼ãã®å ´å \texttt{align} ãã£ã¼ã«ã㯠\texttt{'right'} ãªã®ã§ï¼
-ãæ°´å¹³ä½ç½®ãã¯åéãæ¹åã«ãå³å¯ãããããã®ã¨ãªãï¼ç·è²ã®é·æ¹å½¢ï¼ï¼
-\item
-ãã®å¾ããã« \texttt{left} 㨠\texttt{down} ã®å¤ã«å¾ã£ã¦ã·ããããã
-ã®ã¯æ¨ªçµç¨åæãã©ã³ãã¨å¤ãããªãï¼
-\end{itemize}
+ããã¨æ¬¡ã®ã³ã¼ã«ããã¯ã®è¯ã使ç¨ä¾ã¯\Pkg{luatexja-otf}ããã±ã¼ã¸ã§ããï¼
+JFMä¸ã§Adobe-Japan1 CIDã®æåã \verb+"AJ1-xxx"+ ã®å½¢ã§æå®ããããã«
+ç¨ãããã¦ããï¼
%
-\end{minipage}
-\medskip
-\caption{%
-%The position of the real glyph (vertical Japanese fonts)
-%縦çµåæãã©ã³ãã«ããããå®éã®ãã°ãªãã®ä½ç½®
-}
-\label{fig-pos-tate}
-\end{figure}
+%\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}
-\item[kern={\{[$j$]=, [$j'$]=\{, [ratio=]\}, ...\}}]
-\nopagebreak
-\item[glue={\{[$j$]=\{, , , [ratio=, ...]\}, ...\}}]\leavevmode
+%<*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.
+%
%<*ja>
+å¼æ° \verb+char_class+ ã¯\LuaTeX-jaã®ããã©ã«ãã«ã¼ãã³ãï¼ãã®ã³ã¼ã«ããã¯ã®
+ç´åã®é¢æ°å¼ã³åºãã®çµæãå«ãã§ããï¼ãããã£ã¦ãã®å¤ã¯0ã§ã¯ãªããããããªãï¼
+ããã«ï¼æ»ãå¤ã® \verb+new_char_class+ 㯠\verb+char_class+ ãéé¶ã®ã¨ãã«ã¯
+\verb+char_class+ ã®å¤ã¨åãã§ããã¹ãã§ï¼ããã§ãªãã¨ãã¯\LuaTeX-jaã®
+ããã©ã«ãã«ã¼ãã³ãæ¸ãæãããã¨ã«ãªãï¼
+%
-æåã¯ã©ã¹$i$ã®æåã¨$j$ã®æåã®éã«æ¿å
¥ãããã«ã¼ã³ãã°ã«ã¼ã®éãæå®ããï¼
+%\item[\texttt{luatexja.set\_width} callback]
+%\item[\texttt{luatexja.set\_width}ã³ã¼ã«ããã¯]
+%<*en>
+This callback is called when \LuaTeX-ja is trying to encapsule a
+ \textbf{JAchar} \textit{glyph\_node}, to adjust its
+ dimension and position.
+%
+%<*ja>
+ãã®ã³ã¼ã«ããã¯ã¯\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}
-ã¯ï¼ã°ã«ã¼ã®èªç¶é·ã®ãã¡ã©ãã ãã®å²åããå¾ã®æåãç±æ¥ãã示ãéã§ï¼
-$0$ãã$+1$ã®å®æ°å¤ãã¨ãï¼çç¥æã®å¤ã¯$0.5$ã§ããï¼
-ãã®ãã£ã¼ã«ãã®å¤ã¯\Param{differentjfm}ã®å¤ã
-\texttt{pleft},~\texttt{pright},~\texttt{paverage}ã®å¤ã®ã¨ãã®ã¿å®éã«ç¨ããããï¼
+%<*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åä½ï¼ã§ããï¼
+%
-ä¾ãã°ï¼\cite{x4051}ã§ã¯ï¼å¥ç¹ã¨ä¸ç¹ã®éã«ã¯ï¼
-å¥ç¹ç±æ¥ã®äºå空ãã¨ä¸ç¹ç±æ¥ã®åå空ããæ¿å
¥ããããï¼ãã®å ´åã«ã¯
+%<*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 ã«ã¯$0.5+0.25=0.75$ãæå®ããï¼
-\item ã«ã¯$0.25/(0.5+0.25)=1/3$ãæå®ããï¼
+\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}
-%
-%<*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$.
+Then, the position of glyphs is shifted up by
%
-
%<*ja>
-ã°ã«ã¼ã®æå®ã«ããã¦ã¯ï¼ä¸è¨ã«å ãã¦å \texttt{[$j$]} ã®åãµããã¼ãã«å
ã«
-次ã®ãã¼ãæå®ã§ããï¼
-\begin{cslist}[style=standard]
-\item[priority=]
- \Pkg{luatexja-adjust} ã«ããåªå
é ä½ä»ã
- è¡é·èª¿æ´ï¼\ref{ssec-adj}ç¯ï¼ã®éã«ä½¿ãããå¤ã§ããï¼
-è¡èª¿æ´å¦çã«ããããã®glueã®åªå
- 度ã$-2$ãã$+2$ã®éã®æ´æ°ã§æå®ããï¼å¤§ããå¤ã»ã©ã伸ã³ãããï¼ç¸®ã¿ãããã
- ãã¨ãæå³ããï¼çç¥æã®å¤
- ã¯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} ã§ã¯ï¼
+è¯ãä¾ã\Pkg{test/valign.lua}ã§ããï¼ãã®ãã¡ã¤ã«ãèªã¿è¾¼ã¾ããç¶æ
ã§ã¯ï¼
+ JFMå
ã§è¦å®ãããæåã¯ã©ã¹0ã®æåã«ããã$(\hbox{é«
+ ã}):(\hbox{æ·±ã})$ã®æ¯ã«ãªãããã«ï¼å®éã®ãã©ã³ãã®åºåä¸
+ ä¸ä½ç½®ãèªå調æ´ãããï¼ä¾ãã°ï¼
\begin{itemize}
- \item é常ã®æåãããã¨éãæ¬å¼§é¡ã®éã«å
¥ãã°ã«ã¼ã¯ï¼èªç¶é·ã»ç¸®ã¿éåè§ï¼ä¼¸ã³é0ã®ã°ã«ã¼
-ã¨ãªã£ã¦ãããï¼ããã«\Param{kanjiskip}ã®ä¼¸ã³éã« \texttt{kanjiskip\_stretch}ï¼ããã§ã¯1ï¼ãæã
- ãåã ã伸ã³ããã¨ã許ãããï¼
- \item åæ§ã«ï¼éãæ¬å¼§é¡ï¼å
¨è§ã³ã³ããï¼ããå«ãï¼ã¨é常ã®æåããããããã®éã«ã
-èªç¶é·ã»ç¸®ã¿éåè§ï¼ä¼¸ã³é0ã®ã°ã«ã¼
-ã¨ãªã£ã¦ãããï¼ããã«\Param{kanjiskip}ã®ä¼¸ã³éã« \texttt{kanjiskip\_stretch}ï¼ããã§ã¯1ï¼ãæã
- ãåã ã伸ã³ããã¨ã許ãããï¼
+\item JFMå´ã®è¨å®ï¼$(\hbox{é«ã})=88x$, $(\hbox{æ·±ã})=12x$%
+ï¼åæOpenTypeãã©ã³ãã®æ¨æºå¤ï¼
+\item å®ãã©ã³ãå´ã®æ°å¤ï¼$(\hbox{é«ã})=28y$, $(\hbox{æ·±ã})=5y$ï¼åæTrueTypeãã©ã³ãã®æ¨æºå¤ï¼
\end{itemize}
-ã¨ãªã£ã¦ããï¼å¾ã£ã¦ï¼ä»¥ä¸ã®ãããªçµççµæãå¾ãï¼
-
-\medskip
-\begin{LTXexample}[width=16\zw]
-\leavevmode
-\ltjsetparameter{kanjiskip=0pt plus 3\zw}
-\vrule\hbox to 15\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 $[-2,2]$ (treated as 0 if omitted), and 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
+\[
+ \frac{88x}{88x+12x} (28y+5y) - 28y = \frac{26}{25}y= 1.04y.
+\]
+\end{description}
-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.
-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:
-\medskip
-\begin{LTXexample}[width=16\zw]
-\leavevmode
-\ltjsetparameter{kanjiskip=0pt plus 3\zw}
-\vrule\hbox to 15\zw{ãããããï¼ãã}\vrule
-\end{LTXexample}
+%\section{Parameters}
+%\section{ãã©ã¡ã¼ã¿}
+\subsection{\cs{ltjsetparameter}}
+\label{ssec:param}
-\end{cslist}
+%<*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}.
%
-
-\item[end\_stretch=, end\_shrink=]
%<*ja>
-ï¼ä»»æï¼
-
-åªå
é ä½ä»ãè¡é·èª¿æ´ãæå¹ã§ããï¼ãã¤ç¾å¨ã®æåã¯ã©ã¹ã®æåãè¡
- æ«ã«æ¥ãæã«ï¼è¡é·ãè©°ãã調æ´ã»ä¼¸ã°ã調æ´ã®ã
- ãã«ãã®æåã¨è¡æ«ã®éã«æ¿å
¥å¯è½ãªã«ã¼ã³ã®å¤§ãããæå®ããï¼
+å
ã«è¿°ã¹ãããã«ï¼\LuaTeX-jaã®å
é¨ãã©ã¡ã¼ã¿ã«ã¢ã¯ã»ã¹ããã«ã¯
+\cs{ltjsetparameter}ï¼ã¾ã㯠\cs{ltjglobalsetparameter}ï¼ã¨ \cs{ltjgetparameter} ãç¨ããï¼
+\LuaTeX-jaã\pTeX ã®ãããªææ³ï¼ä¾ãã°ï¼\verb+\prebreakpenalty`ï¼=10000+ï¼ã
+æ¡ç¨ããªãçç±ã®ä¸ã¤ã¯ï¼\LuaTeX ã®ã½ã¼ã¹ã«ããã \verb+hpack_filter+
+ã³ã¼ã«ããã¯ã®ä½ç½®ã«ããï¼\ref{sec-para}ç« ãåç
§ï¼
%
-\end{cslist}
-
+%<*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.
+%
%<*ja>
-\paragraph{æåã¯ã©ã¹ã®æ±ºå®}
-æåãããã®æåã®å±ããæåã¯ã©ã¹ãç®åºããéç¨ã«ã¤ãã¦ï¼
-次ã®å
容ãå«ãã \texttt{jfm-test.lua} ãç¨ãã¦èª¬æããï¼
+\cs{ltjsetparameter} 㨠\cs{ltjglobalsetparameter} ã¯ãã©ã¡ã¼ã¿ã
+æå®ããããã®å½ä»¤ã§ï¼\texttt{=}ã®ãªã¹ãã
+å¼æ°ã¨ãã¦ã¨ãï¼ä¸¡è
ã®éãã¯ã¹ã³ã¼ãã§ããï¼
+\cs{ltjsetparameter} ã¯ãã¼ã«ã«ãªè¨å®ãè¡ãã®ã«å¯¾ãï¼
+\cs{ltjglobalsetparameter} ã¯ã°ãã¼ãã«ãªè¨å®ãè¡ãï¼
+ã¾ãï¼ä»ã®ãã©ã¡ã¼ã¿æå®ã¨åæ§ã« \cs{globaldefs} ã®å¤ã«ãå¾ãï¼
%
+
%<*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:
+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:
%
-\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{cs}]ã¯\pTeX ã«ããã対å¿ç©ã示ãï¼
+ã¾ãï¼ããããã®ãã©ã¡ã¼ã¿ã®å³ä¸ã®è¨å·ã«ã¯æ¬¡ã®æå³ãããï¼
+%
+\begin{itemize}
%<*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}}.
+\item ``$\ast$'' : values at the end of a paragraph or a hbox are
+adopted in the whole paragraph or the whole hbox.
%
%<*ja>
-ä¸è¨ã®åºåçµæãï¼15\,ptã¨ãªã£ã¦ããã®ã¯çç±ã«ãããã®ã§ããï¼
-\begin{enumerate}
-\item \verb+hwid+ featureã«ãã£ã¦ããããåè§å¹
ã®ã°ãªããï¾ãã¨ç½®ãæããï¼\Pkg{luaotfload} ã«ããå¦çï¼ï¼
-\item JFMã«ããã°ï¼ãã®ãï¾ãã®ã°ãªãã®æåã¯ã©ã¹ã¯2000ã§ããï¼
-\item 以ä¸ã«ããæåã¯ã©ã¹2000ã¨ã¿ãªãããããï¼çµæã¨ãã¦ãï¾ãã®å¹
ã¯åè§ã ã¨èªèãããï¼
-\end{enumerate}
-ãã®ä¾ã¯ï¼\emph{æåã¯ã©ã¹ã®æ±ºå®ã¯font featureã®é©ç¨ã«ããã°ãªãç½®æã®çµæã«åºã¥ã}ãã¨ã
-示ãã¦ããï¼
+\item ``$\ast$''ï¼æ®µè½ãhboxã®çµç«¯ã§ã®å¤ããã®æ®µè½ï¼hboxå
¨ä½ã§ç¨ããããï¼
%
-
%<*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 ``\dagger'': assignments are always global.
%
%<*ja>
-ä½ãï¼JFMã«ãã£ã¦æ±ºã¾ãç½®æå¾ã®ã°ãªãã®æåã¯ã©ã¹ã0ã§ããå ´åã¯ï¼ç½®æåã®æåã¯ã©ã¹ãæ¡ç¨ããï¼
+\item ``\dagger''ï¼æå®ã¯å¸¸ã«ã°ãã¼ãã«ã«ãªãï¼
%
-\begin{LTXexample}[width=0.3\textwidth]
-\jfont\a=file:KozMinPr6N-Regular.otf:jfm=test;+vert
-\a æ¼¢ã\inhibitglue æ¼¢
-\end{LTXexample}
+\end{itemize}
+
+\begin{cslist}[style=standard]
+\item[\DParam{jcharwidowpenalty}\,=$^\ast$] [\cs{jcharwidowpenalty}]\
+
%<*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}
+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{U+3002})ã®æåã¯ã©ã¹ã¯ï¼ä»¥ä¸ã®ããã«ãã¦æ±ºã¾ãï¼
-\begin{enumerate}
-\item \Pkg{luaotfload} ã«ãã£ã¦ç¸¦çµç¨å¥ç¹ã®ã°ãªãã«ç½®ãæããï¼
-\item ç½®æå¾ã®ã°ãªã㯠\texttt{U+FE12} ã§ããï¼JFMã«å¾ãã°æåã¯ã©ã¹ã¯\emph{0}ã¨å¤å®ãããï¼
-\item ãã®å ´åï¼ç½®æåã®æ¨ªçµç¨å¥ç¹ã®ã°ãªãã«ãã£ã¦æåã¯ã©ã¹ãå¤å®ããï¼
-\item çµæã¨ãã¦ï¼ä¸ã®åºåä¾ä¸ã®å¥ç¹ã®æåã¯ã©ã¹ã¯2000ã¨ãªãï¼
-\end{enumerate}
+ãã©ã°ã©ãã®æå¾ã®åãå¤ç«ãã¦æ¹è¡ãããã®ãé²ãããã®ããã«ãã£ã®å¤ï¼
+ãã®ããã«ãã£ã¯ï¼æ¥æ¬èªã®ï¼å¥èªç¹ã¨ãã¦æ±ãããªãæå¾ã®\textbf{JAchar}ã®ç´å¾ã«
+æ¿å
¥ãããï¼
%
+\item[\DParam{kcatcode}\,=\{,\}$^\ast$]\
-%\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:
+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>
-ä¸ã§èª¬æããéãï¼\texttt{chars}ãã£ã¼ã«ãä¸ã«ã¯ããã¤ãã®ãç¹æ®æåãã
-æå®å¯è½ã§ããï¼ãããã¯ï¼å¤§åã\pTeX ã®JFMã°ã«ã¼ã®æ¿å
¥å¦çã§ã¯ã¿ãªãæå
-ã¯ã©ã¹0ã®æåãã¨ãã¦æ±ããã¦ããæåã§ããï¼ãã®çµæã¨ãã¦\pTeX ããç´°ã
-ãçµç調æ´ãã§ããããã«ãªã£ã¦ããï¼ä»¥ä¸ã§ãã®ä¸è¦§ãè¿°ã¹ãï¼
+æåã³ã¼ããã®æåãæã¤ä»å çãªå±æ§å¤ï¼
+ãã¼ã¸ã§ã³20120506.0以éã§ã¯ï¼ã®æä¸ä½ããããï¼ãã®æåãå¥èªç¹ã¨
+ã¿ãªããããã©ããã表ãã¦ããï¼ä¸ã®\Param{jcharwidowpenalty}ã®è¨è¿°ãåç
§ï¼ï¼
%
-\begin{cslist}
-%%\item['diffmet']
-%%Used at a boundary between two \textbf{JAchar}s whose JFM or size is different.
-%%JFMããµã¤ãºãç°ãªã2ã¤ã®\textbf{JAchar}ã®éã®å¢çã¨ãã¦ç¨ããããï¼
+\item[\DParam{prebreakpenalty}\,=\{,\}$^\ast$] [\cs{prebreakpenalty}]\
-\item['boxbdd']
-%The beginning/ending of a hbox, and the beginning of a noindented (i.e., began by \cs{noindent}) paragraph.
-%hboxã®å
é ã¨æ«å°¾ï¼åã³ã¤ã³ãã³ãããã¦ããªãï¼\cs{noindent} ã§éå§ãããï¼æ®µè½ã®å
é ã表ãï¼
+%<*ja>
+æåã³ã¼ãã®\textbf{JAchar}ãè¡é ã«ãããã¨ãææ¢ããããã«ï¼
+ ãã®æåã®åã«æ¿å
¥/追å ãããããã«ãã£ã®éãæå®ããï¼
-\item['parbdd']
-%The beginning of an (indented) paragraph.
-%é常ã®ï¼\cs{noindent} ã§éå§ããã¦ããªãï¼æ®µè½ã®å
é ï¼
+ä¾ãã°éãæ¬å¼§ãããã¯çµ¶å¯¾ã«è¡é ã«ãã¦ã¯ãªããªãã®ã§ï¼
+\begin{lstlisting}
+\ltjsetparameter{prebreakpenalty={`ã,10000}}
+\end{lstlisting}
+ã¨ï¼æ大å¤ã®10000ãæ¨æºã§æå®ããã¦ããï¼ä»ã«ãï¼å°æ¸ãã®ã«ããªã©ï¼çµ¶å¯¾ç¦æ¢ã¨ã
+ ãããã§ã¯ãªããã§ããã°è¡é ã«ã¯ãã¦æ¬²ãããªãå ´åã«ï¼0ã¨
+ 10000ã®éã®å¤ãæå®ããã®ãæç¨ã§ãããï¼
-\item['jcharbdd']
-%A boundary between \textbf{JAchar} and anything else (such as \textbf{ALchar}, kern, glue,\,\ldots).
-%\textbf{JAchar}ã¨ããã®ä»ã®ãã®ãï¼æ¬§ææåï¼glueï¼kernçï¼ã¨ã®å¢çï¼
+\pTeX ã§ã¯ï¼\cs{prebreakpenalty}, \cs{postbreakpenalty}ã«ããã¦ï¼
+\begin{itemize}
+\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}
+\ltjsetparameter{prebreakpenalty={`ã,10000}}
+\end{lstlisting}
+by default.
-\item[$-1$]
-%The left/right boundary of an inline math formula.
-%è¡ä¸æ°å¼ã¨å°ã®æã¨ã®å¢çï¼
-\end{cslist}
+\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}
+%
-%\paragraph{Porting JFM from \pTeX}
-%\paragraph{\pTeX ç¨åæç¨TFMã®ç§»æ¤}
+\item[\DParam{postbreakpenalty}\,=\{,\}$^\ast$]
+ [\cs{postbreakpenalty}]\
-% ToDo: English version.
+%<*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}]
+
+\item[\DParam{jaxspmode}\,=\{,\}$^\ast$]\
%<*en>
-See Japanese version of this manual.
+Set whether inserting \Param{xkanjiskip} is allowed before/after a \textbf{JAchar} whose character code is .
+The followings are allowed for :
+%
+%<*ja>
+æåã³ã¼ããã®\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>
+This parameter is similar to the \cs{inhibitxspcode} primitive of \pTeX, but not compatible with \cs{inhibitxspcode}.
%
+%<*ja>
+ãã®ãã©ã¡ã¼ã¿ã¯\pTeX ã® \cs{inhibitxspcode} ããªããã£ãã¨ä¼¼ã¦ãããï¼
+äºææ§ã¯ãªãï¼
+%
+\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 :
+%
%<*ja>
-以ä¸ã«ï¼\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}
-\item ä¸ã«è¿°ã¹ãç¹æ®æåã¯ï¼\texttt{'boxbdd'}ãé¤ãæåã¯ã©ã¹ãå
¨é¨0ã¨ãã
- ï¼JFMä¸ã«åã«æ¸ããªããã°ããï¼ï¼
-\item \texttt{'boxbdd'}ã«ã¤ãã¦ã¯ï¼ããã®ã¿ã§ä¸ã¤ã®æåã¯ã©ã¹ãå½¢æãï¼ãã®
- æåã¯ã©ã¹ã«é¢ãã¦ã¯ã°ã«ã¼ï¼ã«ã¼ã³ã®è¨å®ã¯ããªãï¼
+æåã³ã¼ããã®\textbf{ALchar}ã®åï¼å¾ãã«\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 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.
+%
+%<*ja>
+\Param{jaxspmode}ã¨\Param{alxspmode}ã¯å
±éã®ãã¼ãã«ãç¨ãã¦ããããï¼
+ããã2ã¤ã®ãã©ã¡ã¼ã¿ã¯äºãã®å¥åã¨ãªã£ã¦ãããã¨ã«æ³¨æããï¼
+%
-ããã¯ï¼\pTeX ã§ã¯ï¼
- hboxã®å
é ã»æ«å°¾ã¨ã¤ã³ãã³ãããã¦ããªãï¼\cs{noindent} ã§éå§ã
- ããï¼æ®µè½ã®å
é ã«ã¯JFMã°ã«ã¼ã¯å
¥ããªãã¨ããä»æ§ãå®ç¾ãããããã§ããï¼
-\item \pTeX ã®çµçãåç¾ããããã¨ããã®ãç®çã§ããã°ä»¥ä¸ã®æ³¨æãå®ãã°ååã§ããï¼
+\item[\DParam{autospacing}\,=] [\cs{autospacing}]
+\item[\DParam{autoxspacing}\,=] [\cs{autoxspacing}]
+\item[\DParam{kanjiskip}\,=$^\ast$] [\cs{kanjiskip}]\
-ã¨ããã§ï¼\pTeX ã§ã¯é常ã®æ®µè½ã®å
é ã«JFMã°ã«ã¼ãæ®ãã¨ããä»æ§ãããã®ã§ï¼
- 段è½å
é ã®éãæ¬å¼§ã¯å
¨è§äºåä¸ããã«ãªãï¼å
¨è§ä¸ãããå®ç¾ãããã«
- ã¯ï¼æ®µè½ã®æåã«æå㧠\cs{inhibitglue} ã追å ãããï¼ãããã¯
- \ \cs{everypar} ã®ããã¯ãè¡ãï¼ãããèªååããããããªãã£ãï¼
+%<*ja>
+ããã©ã«ãã§2ã¤ã®\textbf{JAchar}ã®éã«æ¿å
¥ãããã°ã«ã¼ã§ããï¼
+é常ã§ã¯ï¼\pTeX ã¨åãããã«ãã©ã³ããµã¤ãºã«æ¯ä¾ãã¦å¤ãããã¨ã¯ãªãï¼
+ãããï¼èªç¶é·ã \cs{maxdimen} ã®å ´åã¯ï¼ä¾å¤çã«åæãã©ã³ãã®JFMå´ã§æå®ããã¦ãã
+å¤ãæ¡ç¨ï¼ãã¡ãã¯ãã©ã³ããµã¤ãºã«æ¯ä¾ï¼ãããã¨ã«ãªã£ã¦ããï¼
+%
+%<*en>
+The default glue which inserted between two \textbf{JAchar}s.
+Changing current Japanese font does not alter this parameter, as \pTeX.
-ä¸æ¹ï¼\LuaTeX-jaã§ã¯ï¼\texttt{'parbdd'}ã«ãã£ã¦ï¼ãããJFMå´ã§èª¿æ´ã§ããã
-ãã«ãªã£ãï¼ä¾ãã°ï¼\LuaTeX-jaå梱ã®JFMã®ããã«ï¼\texttt{'boxbdd'}ã¨åãæåã¯ã©ã¹ã«
-\texttt{'parbdd'}ãå
¥ããã°å
¨è§ä¸ããã¨ãªãï¼
+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}).
+%
-\begin{LTXexample}[width=0.4\textwidth]
-\jfont\g=KozMinPr6N-Regular:jfm=test \g
-\parindent1\zw\noindent{}âââââ
-\par ãâââäºåä¸ãã
-\par ãâââå
¨è§ä¸ãã
-\par ãâââå
¨è§äºåä¸ãã
-\end{LTXexample}
-\end{itemize}
+\item[\DParam{xkanjiskip}\,=$^\ast$] [\cs{xkanjiskip}]\
-ä½ãï¼\cs{everypar} ãå©ç¨ãã¦ããå ´åã«ã¯ãã®ä»çµã¿ã¯æ£ããåããªãï¼
-ãã®ãããªä¾ã¨ãã¦ã¯ç®æ¡æ¸ãä¸ã® \cs{item} ã§å§ã¾ã段è½ãããï¼\Pkg{ltjsclasses}ã§ã¯
-人工çã«ã\texttt{'parbdd'}ã®æå³ãæã¤ãwhatsitãã¼ããä½ããã¨ã«ãã£ã¦å¯¾å¦ãã¦ãã%
-\footnote{\texttt{ltjsclasses.dtx} ãåç
§ããããï¼
-JFMå´ã§ä¸é¨ã®å¯¾å¦ãã§ãããã¨ã«ããï¼\Pkg{jsclasses}ã®ããã«ifæã®å¤å®ã¯ãã¦ããªãï¼}ï¼
+%<*ja>
+ããã©ã«ãã§\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}).
+%
-%\subsection{Math font family}
-%\subsection{æ°å¼ãã©ã³ããã¡ããª}
-\label{ssec-math}
+\item[\DParam{differentjfm}\,=$^\dagger$]\
%<*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}.
+Specify how glues/kerns between two \textbf{JAchar}s whose JFM (or size) are different.
+The allowed arguments are the followings:
%
%<*ja>
-\TeX\ ã¯æ°å¼ãã©ã³ãã16ã®ãã¡ããª\footnote{Omega, Aleph, \LuaTeXï¼ããã¦
- $\varepsilon$-\kern-.125em(u)\pTeX\ ã§ã¯256ã®æ°å¼ãã¡ããªãæ±ããã¨ãã§ãããï¼
- ããããµãã¼ãããããã«plain \TeX ã¨\LaTeX ã§ã¯å¤é¨ããã±ã¼ã¸ãèªã¿è¾¼ãå¿
è¦ã
- ããï¼}ã§ç®¡çãï¼ããããã®ãã¡ããªã¯3ã¤ã®ãã©ã³ããæã£ã¦ããï¼
-\cs{textfont}, \cs{scriptfont} ãã㦠\cs{scriptscriptfont} ã§ãã.
+JFMï¼ãããã¯ãµã¤ãºï¼ãç°ãªã2ã¤ã®\textbf{JAchar}ã®éã«ã°ã«ã¼ï¼ã«ã¼ã³ãã©ã®ããã«
+å
¥ããããæå®ããï¼
+許ãããå¤ã¯ä»¥ä¸ã®éãï¼
%
-
+\begin{quote}
+\texttt{average},
+\texttt{both},
+\texttt{large},
+\texttt{small},
+\texttt{pleft},
+\texttt{pright},
+\texttt{paverage}
+\end{quote}
%<*en>
-\LuaTeX-ja's handling of Japanese fonts in math formulas is similar;
-Table~\ref{tab-math} shows counterparts to \TeX's primitives for math
-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.
+The default value is \texttt{paverage}. \dots
%
%<*ja>
-\LuaTeX-jaã®æ°å¼ä¸ã§ã®åæãã©ã³ãã®æ±ããåæ§ã§ããï¼
-表\ref{tab-math}ã¯æ°å¼ãã©ã³ããã¡ããªã«å¯¾ãã \TeX ã®ããªããã£ãã¨å¯¾å¿ãã
-ãã®ã示ãã¦ããï¼\cs{fam} 㨠\cs{jfam} ã®å¤ã®éã«ã¯é¢ä¿ã¯ãªãï¼
-é©åãªè¨å®ã®ä¸ã§ã¯ \cs{fam} 㨠\cs{jfam} ã®ä¸¡æ¹ã«åãå¤ãè¨å®ãããã¨ãã§ããï¼
-\Param{jatextfont} ä»ã®ç¬¬2å¼æ°ã¯ï¼\cs{jfont} ã§å®ç¾©ããã
-\emph{横çµç¨}åæãã©ã³ãã§ããï¼\cs{tfont} ã§å®ç¾©ããã
-\emph{縦çµç¨}åæãã©ã³ããæå®ãããã¨ã¯æ³å®ãã¦ããªãï¼
+ããã©ã«ãå¤ã¯ \texttt{paverage} ã§ããï¼
+åã
ã®å¤ã«ããå·®ç°ã®è©³ç´°ã¯\ref{ssec:cluster-wa}ç¯ã®ããå³ç©ºç½ãã®ç®åºããåç
§ãã¦ã»ããï¼
%
-\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}
+\item[\DParam{jacharrange}\,=]
+\item[\DParam{kansujichar}\,=\{, \}$^\ast$] [\cs{kansujichar}]
-%\subsection{Callbacks}
-%\subsection{ã³ã¼ã«ããã¯}
+\item[\DParam{direction}\,=\ \hbox{\rm (always local)}]\
%<*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.
+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>
-\LuaTeX èªä½ã®ãã®ã«å ãã¦ï¼\LuaTeX-jaãã³ã¼ã«ããã¯ãæã£ã¦ããï¼
-ãããã®ã³ã¼ã«ããã¯ã«ã¯ï¼ä»ã®ã³ã¼ã«ããã¯ã¨åæ§ã« \verb+luatexbase.add_to_callback+
-é¢æ°ãªã©ãç¨ãããã¨ã§ã¢ã¯ã»ã¹ãããã¨ãã§ããï¼
+çµæ¹åãå¤æ´ãã \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{description}[font=\bfseries, style=nextline]
-%\item[\texttt{luatexja.load\_jfm} callback]
-%\item[\texttt{luatexja.load\_jfm}ã³ã¼ã«ããã¯]
+
+\end{cslist}
+
+
+\subsection{\cs{ltjgetparameter}}
+\label{ssec:getpar}
%<*en>
-With this callback you can overwrite JFMs.
-This callback is called when a new JFM is loaded.
+\cs{ltjgetparameter} is a control sequence for acquiring parameters. It
+always takes a parameter name as first argument.
%
%<*ja>
-ãã®ã³ã¼ã«ããã¯ãç¨ãããã¨ã§JFMãä¸æ¸ããããã¨ãã§ããï¼
-ãã®ã³ã¼ã«ããã¯ã¯æ°ããJFMãèªã¿è¾¼ã¾ããã¨ãã«å¼ã³åºãããï¼
+\cs{ltjgetparameter} ã¯ãã©ã¡ã¼ã¿ã®å¤ãåå¾ããããã®å½ä»¤ã§ããï¼
+常ã«ãã©ã¡ã¼ã¿ã®ååã第ä¸å¼æ°ã«ã¨ãï¼
%
-
-\begin{lstlisting}[numbers=left]
-function ( jfm_info, jfm_name)
- return new_jfm_info
-end
-\end{lstlisting}
+\begin{LTXexample}
+\ltjgetparameter{differentjfm},
+\ltjgetparameter{autospacing},
+\ltjgetparameter{kanjiskip},
+\ltjgetparameter{prebreakpenalty}{`ï¼}.
+\end{LTXexample}
%<*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.
+\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+jfm_info+ ã¯JFMãã¡ã¤ã«ã®ãã¼ãã«ã¨ä¼¼ããã®ãæ ¼ç´ããããï¼
-ã¯ã©ã¹0ãé¤ããæåã®ã³ã¼ããå«ãã \texttt{chars}ãã£ã¼ã«ããæã¤ç¹ãç°ãªãï¼
+\emph{\cs{ltjgetparameter} ã®æ»ãå¤ã¯å¸¸ã«æååã§ããï¼}
+ããã¯\texttt{tex.write()}ã«ãã£ã¦åºåãã¦ããããã§ï¼ç©ºç½ã\texttt{\char32}ã
+(\texttt{U+0020})ãé¤ããæåã®ã«ãã´ãªã¼ã³ã¼ãã¯å
¨ã¦12~(other)ã¨ãªãï¼
+ä¸æ¹ï¼ç©ºç½ã®ã«ãã´ãªã¼ã³ã¼ãã¯10~(space)ã§ããï¼
%
+\begin{itemize}
+\item
%<*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}.
+If first argument is one of the
+following, no additional argument is needed.
%
%<*ja>
-ãã®ã³ã¼ã«ããã¯ã®ä½¿ç¨ä¾ã¯\texttt{ltjarticle}ã¯ã©ã¹ã«ããï¼
-\texttt{jfm-min.lua}ä¸ã®\texttt{'parbdd'}ãå¼·å¶çã«ã¯ã©ã¹0ã«å²ãå½ã¦ã¦ããï¼
+第1å¼æ°ã次ã®ããããã®å ´åã«ã¯ï¼è¿½å ã®å¼æ°ã¯å¿
è¦ãªãï¼
%
-
-%\item[\texttt{luatexja.define\_jfont} callback]
-%\item[\texttt{luatexja.define\_jfont}ã³ã¼ã«ããã¯]
+\begin{quote}
+\sffamily
+jcharwidowpenalty, yjabaselineshift, yalbaselineshift, autospacing, autoxspacing,\\
+kanjiskip, xkanjiskip, differentjfm, direction
+\end{quote}
%<*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.
+Note that \verb+\ltjgetparameter{autospacing}+~and~\verb+\ltjgetparameter{autoxspacing}+
+returns 1 or 0, not
+\texttt{true}~nor~\texttt{false}.
%
%<*ja>
-ãã®ã³ã¼ã«ããã¯ã¨æ¬¡ã®ã³ã¼ã«ããã¯ã¯çµããªãã¦ããï¼Unicodeä¸ã«åºå®ãããæåã³ã¼ã
-çªå·ãæããªãæåãéé¶ã®æåã¯ã©ã¹ã«å²ãå½ã¦ããã¨ãã§ããï¼
-ãã®ã³ã¼ã«ããã¯ã¯æ°ããåæãã©ã³ããèªã¿è¾¼ã¾ããã¨ãã«å¼ã³åºãããï¼
+\verb+\ltjgetparameter{autospacing}+ 㨠\verb+\ltjgetparameter{autoxspacing}+ ã¯ï¼
+\texttt{true}ã\texttt{false}ãè¿ãã®\emph{ã§ã¯ãªã}ï¼
+1ã0ã®ãããããè¿ããã¨ã«æ³¨æï¼
%
-\begin{lstlisting}[numbers=left]
-function ( jfont_info, font_number)
- return new_jfont_info
-end
-\end{lstlisting}
+\item
%<*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$.
-
-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}
+If first argument is one of the
+following, an additional argument---a character code, for example---is needed.
+%
+%<*ja>
+第1å¼æ°ã次ã®ããããã®å ´åã«ã¯ï¼ããã«æåã³ã¼ãã第2å¼æ°ã¨ãã¦ã¨ãï¼
+%
+\begin{quote}
+\sffamily
+kcatcode, prebreakpenalty, postbreakpenalty, jaxspmode, alxspmode
+\end{quote}
+%<*en>
+\verb+\ltjgetparameter{jaxspmode}{...}+~and~\verb+\ltjgetparameter{alxspmode}{...}+
+returns 0,~1, 2,~or~3, instead of \texttt{preonly} etc.
%
%<*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}
+\verb+\ltjgetparameter{jaxspmode}{...}+ ã \verb+\ltjgetparameter{alxspmode}{...}+\
+ã¯ï¼\texttt{preonly} ãªã©ã¨ãã£ãæååã§ã¯ãªãï¼0ãã3ã¾ã§ã®å¤ãè¿ãï¼
%
+\item
%<*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.
+\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+new_jfont_info+ ãã¼ãã«ãä¸ã«è¿°ã¹ããã£ã¼ã«ãããã®ã¾ã¾å«ã¾ãªããã°ãªããªããï¼
-ãã以å¤ã«ã¦ã¼ã¶ãåæã«ãã£ã¼ã«ããä»ãå ãããã¨ã¯èªç±ã§ããï¼
-\verb+font_number+ ã¯ãã©ã³ãçªå·ã§ããï¼
+\verb+\ltjgetparameter{jacharrange}{+\verb+}+ ã¯ï¼ã\textbf{JAchar}éã®
+ç¯å²ãªãã°0ãï¼ããã§ãªããã°1ãè¿ãï¼ã$-1$çªã®æåç¯å²ãã¯åå¨ããªããï¼ã«$-1$ã
+æå®ãã¦ãã¨ã©ã¼ã¯çºçããªãï¼1ãè¿ãï¼ï¼
%
+\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.
+For an integer~ between 0~and~9,
+ \verb+\ltjgetparameter{kansujichar}{+\verb+}+ returns the character code
+of the result of \cs{kansuji}.
%
%<*ja>
-ããã¨æ¬¡ã®ã³ã¼ã«ããã¯ã®è¯ã使ç¨ä¾ã¯\Pkg{luatexja-otf}ããã±ã¼ã¸ã§ããï¼
-JFMä¸ã§Adobe-Japan1 CIDã®æåã \verb+"AJ1-xxx"+ ã®å½¢ã§æå®ããããã«
-ç¨ãããã¦ããï¼
+0--9ã®æ°ã«å¯¾ãã¦ï¼
+\verb+\ltjgetparameter{kansujichar}{+\verb+}+ ã¯ï¼\cs{kansuji}ã§åºåãã
+ ãæåã®æåã³ã¼ããè¿ãï¼
%
-%\item[\texttt{luatexja.find\_char\_class} callback]
-%\item[\texttt{luatexja.find\_char\_class}ã³ã¼ã«ããã¯]
+\item
%<*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:
+\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>
-ãã®ã³ã¼ã«ããã¯ã¯\LuaTeX-jaã \verb+chr_code+ ã®æåãã©ã®æåã¯ã©ã¹ã«
-å±ãããã決å®ãããã¨ããéã«å¼ã³åºãããï¼
-ãã®ã³ã¼ã«ããã¯ã§å¼ã³åºãããé¢æ°ã¯æ¬¡ã®å½¢ããã¦ããªããã°ãªããªãï¼
+\verb+\ltjgetparameter{adjustdir}+ ã¯ï¼å¨å²ã®vboxã®çµæ¹åï¼è¨ãæããã°ï¼
+\cs{vadjust} ã§ç¨ããããçµæ¹åï¼ã表ãæ°å¤ãè¿ãï¼
+\Param{direction}ã¨åæ§ã«ï¼1㯠\cs{dtou} æ¹åãï¼
+3ã¯ç¸¦çµã¿ãï¼4ã¯æ¨ªçµã¿ã表ãï¼
%
-\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.
+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>
-å¼æ° \verb+char_class+ ã¯\LuaTeX-jaã®ããã©ã«ãã«ã¼ãã³ãï¼ãã®ã³ã¼ã«ããã¯ã®
-ç´åã®é¢æ°å¼ã³åºãã®çµæãå«ãã§ããï¼ãããã£ã¦ãã®å¤ã¯0ã§ã¯ãªããããããªãï¼
-ããã«ï¼æ»ãå¤ã® \verb+new_char_class+ 㯠\verb+char_class+ ãéé¶ã®ã¨ãã«ã¯
-\verb+char_class+ ã®å¤ã¨åãã§ããã¹ãã§ï¼ããã§ãªãã¨ãã¯\LuaTeX-jaã®
-ããã©ã«ãã«ã¼ãã³ãæ¸ãæãããã¨ã«ãªãï¼
+0--65535ã®æ°ã«å¯¾ãã¦ï¼
+\verb+\ltjgetparameter{boxdim}{+\verb+}+ ã¯ï¼\cs{box}ã«
+æ ¼ç´ããã¦ããããã¯ã¹ã®çµæ¹åã表ãï¼ãããã®ã¬ã¸ã¹ã¿ã空ã®å ´åã¯ï¼0ãè¿ãããï¼
%
-%\item[\texttt{luatexja.set\_width} callback]
-%\item[\texttt{luatexja.set\_width}ã³ã¼ã«ããã¯]
+\item
%<*en>
-This callback is called when \LuaTeX-ja is trying to encapsule a
- \textbf{JAchar} \textit{glyph\_node}, to adjust its
- dimension and position.
+The following parameter names \emph{cannot be specified} in \cs{ltjgetparameter}.
%
%<*ja>
-ãã®ã³ã¼ã«ããã¯ã¯\LuaTeX-jaã\textbf{JAchar}ã®å¯¸æ³ã¨ä½ç½®ã調ç¯ããããã«
-ãã®\textit{glyph\_node}ãã«ãã»ã«åãããã¨ããéã«å¼ã³åºãããï¼
+次ã®ãã©ã¡ã¼ã¿åã \cs{ltjgetparameter} ã«æå®ãããã¨ã¯ã§ããªãï¼
%
-\begin{lstlisting}[numbers=left]
-function ( shift_info, jfont_info, char_class)
- return new_shift_info
-end
-\end{lstlisting}
+\begin{quote}
+\sffamily
+jatextfont, jascriptfont, jascriptscriptfont, jacharrange
+\end{quote}
+\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{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>
-å¼æ° \verb+shift_info+ ã¨æ»ãå¤ã® \verb+new_shift_info+ ã¯
-\texttt{down}ã¨\texttt{left}ã®ãã£ã¼ã«ããæã¡ï¼ãããã®å¤ã¯
-æåã®ä¸ï¼å·¦ã¸ã®ã·ããéï¼spåä½ï¼ã§ããï¼
+\verb+\ltjgetparameter{chartorange}{+\verb+}+ ã«ãã£ã¦
+ã®å±ããæåç¯å²ã®çªå·ãç¥ããã¨ãã§ããï¼
+
+ã«0--127ã®å¤ãæå®ããå ´åï¼ãã®ã¨ãï¼ãå±ãã
+æåç¯å²ã¯åå¨ããªãï¼ã¯$-1$ãè¿ãï¼
+
+ãã®ããï¼ã\textbf{JAchar}ã\textbf{ALchar}ãã¯
+次ã§ç¥ããã¨ãã§ããï¼
%
+\begin{quote}
+\ttfamily \verb+\ltjgetparameter{jacharrange}{\ltjgetparameter{chartorange}{+%
+ \verb+}}+\\\null\hfill\verb+% 0 if JAchar, 1 if ALchar+
+\end{quote}
%<*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).
+\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 è¿ãå¤ãæååã§ãããã¨ããï¼\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}
-Then, the position of glyphs is shifted up by
+
+
+%<*en>
+\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>
-è¯ãä¾ã\Pkg{test/valign.lua}ã§ããï¼ãã®ãã¡ã¤ã«ãèªã¿è¾¼ã¾ããç¶æ
ã§ã¯ï¼
- JFMå
ã§è¦å®ãããæåã¯ã©ã¹0ã®æåã«ããã$(\hbox{é«
- ã}):(\hbox{æ·±ã})$ã®æ¯ã«ãªãããã«ï¼å®éã®ãã©ã³ãã®åºåä¸
- ä¸ä½ç½®ãèªå調æ´ãããï¼ä¾ãã°ï¼
+\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 JFMå´ã®è¨å®ï¼$(\hbox{é«ã})=88x$, $(\hbox{æ·±ã})=12x$%
-ï¼åæOpenTypeãã©ã³ãã®æ¨æºå¤ï¼
-\item å®ãã©ã³ãå´ã®æ°å¤ï¼$(\hbox{é«ã})=28y$, $(\hbox{æ·±ã})=5y$ï¼åæTrueTypeãã©ã³ãã®æ¨æºå¤ï¼
+\item \cs{globaldefs} ã®å¤ãèªã¿åã \cs{ltj@setpar@global}
+\item \Param{kanjiskip} ã®è¨å®ãè¡ã \cs{ltjsetkanjiskip}
+\item \Param{xkanjiskip} ã®è¨å®ãè¡ã \cs{ltjsetxkanjiskip}
\end{itemize}
-ã¨ãªã£ã¦ããã¨ããï¼ããã¨ï¼å®éã®æåã®åºåä½ç½®ã¯ï¼ä»¥ä¸ã®éã ãä¸ã«ããããããã¨ã¨ãªãï¼
-%
-\[
- \frac{88x}{88x+12x} (28y+5y) - 28y = \frac{26}{25}y= 1.04y.
-\]
-\end{description}
+ãç¬ç«ããï¼\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}ãå®è¡ãããã¨ã¯æ³å®ããã¦ããªãã®ã§æ³¨æï¼
-%\section{Parameters}
-%\section{ãã©ã¡ã¼ã¿}
-\subsection{\cs{ltjsetparameter}}
-\label{ssec-param}
+\paragraph{ãã¼ã¹ã©ã¤ã³è£æ£éã®è¨å®}
+\pLaTeX ã®\Pkg{ascmac}ããã±ã¼ã¸ã§ã¯ï¼ç¸¦çµã®æ¬§æãã¼ã¹ã©ã¤ã³è£æ£éã®ä¸æå¾
é¿ã»å¾©å¸°å¦çã«
+\ \cs{@saveybaselineshift}\ ã¨ãã寸æ³ã¬ã¸ã¹ã¿ãç¨ã
+\begin{lstlisting}
+\@savetbaselineshift\tbaselineshift\tbaselineshift\z@
+...
+\tbaselineshift\@savetbaselineshift
+\end{lstlisting}
+ã¨ããå¦çãè¡ã£ã¦ããï¼
-%<*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>
-å
ã«è¿°ã¹ãããã«ï¼\LuaTeX-jaã®å
é¨ãã©ã¡ã¼ã¿ã«ã¢ã¯ã»ã¹ããã«ã¯
-\cs{ltjsetparameter}ï¼ã¾ã㯠\cs{ltjglobalsetparameter}ï¼ã¨ \cs{ltjgetparameter} ãç¨ããï¼
-\LuaTeX-jaã\pTeX ã®ãããªææ³ï¼ä¾ãã°ï¼\verb+\prebreakpenalty`ï¼=10000+ï¼ã
-æ¡ç¨ããªãçç±ã®ä¸ã¤ã¯ï¼\LuaTeX ã®ã½ã¼ã¹ã«ããã \verb+hpack_filter+
-ã³ã¼ã«ããã¯ã®ä½ç½®ã«ããï¼\ref{sec-para}ç« ãåç
§ï¼
-%
+ããã\LuaTeX-ja ç¨ã« \cs{ltjsetparameter} ã使ã£ã¦æ¸ãç´ãã¨ï¼
+\begin{lstlisting}
+\@savetbaselineshift\ltjgetparameter{talbaselineshift}
+\ltjsetparameter{talbaselineshift=\z@}
+...
+\ltjsetparameter{talbaselineshift=\@savetbaselineshift}
+\end{lstlisting}
+ã¨ãªãï¼
-%<*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.
-%
-%<*ja>
-\cs{ltjsetparameter} 㨠\cs{ltjglobalsetparameter} ã¯ãã©ã¡ã¼ã¿ã
-æå®ããããã®å½ä»¤ã§ï¼\texttt{=}ã®ãªã¹ãã
-å¼æ°ã¨ãã¦ã¨ãï¼ä¸¡è
ã®éãã¯ã¹ã³ã¼ãã§ããï¼
-\cs{ltjsetparameter} ã¯ãã¼ã«ã«ãªè¨å®ãè¡ãã®ã«å¯¾ãï¼
-\cs{ltjglobalsetparameter} ã¯ã°ãã¼ãã«ãªè¨å®ãè¡ãï¼
-ã¾ãï¼ä»ã®ãã©ã¡ã¼ã¿æå®ã¨åæ§ã« \cs{globaldefs} ã®å¤ã«ãå¾ãï¼
+ãã¦ï¼ç¸¦çµã®æ¬§æãã¼ã¹ã©ã¤ã³è£æ£é\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>
-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>
-以ä¸ã¯ \cs{ltjsetparameter} ã«æå®ãããã¨ãã§ãããã©ã¡ã¼ã¿ã®ä¸è¦§ã§ããï¼
-[\cs{cs}]ã¯\pTeX ã«ããã対å¿ç©ã示ãï¼
-ã¾ãï¼ããããã®ãã©ã¡ã¼ã¿ã®å³ä¸ã®è¨å·ã«ã¯æ¬¡ã®æå³ãããï¼
-%
-\begin{itemize}
-%<*en>
-\item ``\ast'' : values at the end of a paragraph or a hbox are
-adopted in the whole paragraph or the whole hbox.
+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>
-\item ``\ast''ï¼æ®µè½ãhboxã®çµç«¯ã§ã®å¤ããã®æ®µè½ï¼hboxå
¨ä½ã§ç¨ããããï¼
+以ä¸ã®å½ä»¤ã¯\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>
-\item ``\dagger'': assignments are always global.
+These six commands takes an internal integer, and returns a \emph{string}.
%
%<*ja>
-\item ``\dagger''ï¼æå®ã¯å¸¸ã«ã°ãã¼ãã«ã«ãªãï¼
+ããã6å½ä»¤ã¯å
é¨æ´æ°ãå¼æ°ã¨ãããï¼å®è¡çµæã¯\textbf{æåå}ã§ãããã¨ã«æ³¨æï¼
%
-\end{itemize}
-
-\begin{cslist}[style=standard]
-\item[\DParam{jcharwidowpenalty}\,=$^\ast$] [\cs{jcharwidowpenalty}]\
+\begin{LTXexample}
+\newcount\hoge
+\hoge="2423 %"
+\the\hoge, \kansuji\hoge\\
+\jis\hoge, \char\jis\hoge\\
+\kansuji1701
+\end{LTXexample}
%<*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.
+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>
-ãã©ã°ã©ãã®æå¾ã®åãå¤ç«ãã¦æ¹è¡ãããã®ãé²ãããã®ããã«ãã£ã®å¤ï¼
-ãã®ããã«ãã£ã¯ï¼æ¥æ¬èªã®ï¼å¥èªç¹ã¨ãã¦æ±ãããªãæå¾ã®\textbf{JAchar}ã®ç´å¾ã«
-æ¿å
¥ãããï¼
-%
-\item[\DParam{kcatcode}\,=\{,\}$^\ast$]\
+\subsection{\cs{inhibitglue}}
%<*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).
+\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~``ã¦''.
%
%<*ja>
-æåã³ã¼ããã®æåãæã¤ä»å çãªå±æ§å¤ï¼
-ç¾å¨ã®ãã¼ã¸ã§ã³ã§ã¯ï¼ã®æä¸ä½ããããï¼ãã®æåãå¥èªç¹ã¨
-ã¿ãªããããã©ããã表ãã¦ããï¼ä¸ã®\Param{jcharwidowpenalty}ã®è¨è¿°ãåç
§ï¼ï¼
+\cs{inhibitglue} ã¯\textbf{JAglue}ã®æ¿å
¥ãæå¶ããï¼
+以ä¸ã¯ï¼ããã¯ã¹ã®å§ãã¨ãããã®éï¼ããããã¦ãã®éã«ã°ã«ã¼ãå
¥ãç¹å¥ãªJFMãç¨ããä¾ã§
+ããï¼
%
-\item[\DParam{prebreakpenalty}\,=\{,\}$^\ast$] [\cs{prebreakpenalty}]\
-
-%<*ja>
-æåã³ã¼ãã®\textbf{JAchar}ãè¡é ã«ãããã¨ãææ¢ããããã«ï¼
- ãã®æåã®åã«æ¿å
¥/追å ãããããã«ãã£ã®éãæå®ããï¼
-
-ä¾ãã°éãæ¬å¼§ãããã¯çµ¶å¯¾ã«è¡é ã«ãã¦ã¯ãªããªãã®ã§ï¼
-\begin{lstlisting}
-\ltjsetparameter{prebreakpenalty={`ã,10000}}
-\end{lstlisting}
-ã¨ï¼æ大å¤ã®10000ãæ¨æºã§æå®ããã¦ããï¼ä»ã«ãï¼å°æ¸ãã®ã«ããªã©ï¼çµ¶å¯¾ç¦æ¢ã¨ã
- ãããã§ã¯ãªããã§ããã°è¡é ã«ã¯ãã¦æ¬²ãããªãå ´åã«ï¼0ã¨
- 10000ã®éã®å¤ãæå®ããã®ãæç¨ã§ãããï¼
+\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}
-\pTeX ã§ã¯ï¼\cs{prebreakpenalty}, \cs{postbreakpenalty}ã«ããã¦ï¼
-\begin{itemize}
-\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}
-\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}
+With the help of this example, we remark the specification of \cs{inhibitglue}:
%
-
-\item[\DParam{postbreakpenalty}\,=\{,\}$^\ast$]
- [\cs{postbreakpenalty}]\
-
%<*ja>
-æåã³ã¼ãã®\textbf{JAchar}ãè¡æ«ã«ãããã¨ãææ¢ããããã«ï¼
- ãã®æåã®å¾ã«æ¿å
¥/追å ãããããã«ãã£ã®éãæå®ããï¼
+ãã®ä¾ãæ´ç¨ãã¦ï¼\cs{inhibitglue} ã®ä»æ§ã«ã¤ãã¦è¿°ã¹ãï¼
%
+\begin{itemize}
%<*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$]\
+\item The call of \cs{inhibitglue} in the (internal) vertical mode is
+ simply ignored.
+%
+%<*ja>
+\item \emph{\cs{inhibitglue} ã®åç´ã¢ã¼ãä¸ã§ã®å¼ã³åºãã¯æå³ãæããªã}\footnote{%
+ ãã®ç¹ã¯\TeX~Live~2014ã§ã®\pTeX ã«ããã \cs{inhibitglue} ã®ä»æ§å¤æ´ã¨åãã§ããï¼
+}ï¼
+4è¡ç®ã®å
¥åã§æå¹ã«ãªããªãã®ã¯ï¼\cs{inhibitglue} ã®æç¹ã§ã¯åç´ã¢ã¼ãã§ããï¼
+\cs{noindent} ã®æç¹ã§æ°´å¹³ã¢ã¼ãã«ãªãããã§ããï¼
+%
%<*en>
-Set whether inserting \Param{xkanjiskip} is allowed before/after a \textbf{JAchar} 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{JAchar}ã®åï¼å¾ãã«\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 both before the character and after the character. This is the default value.
-%\item[3, \texttt{allow}] \Param{xkanjiskip}ã®æ¿å
¥ã¯æåã®åï¼å¾ãã®ãããã§ã許ãããï¼ãããããã©ã«ãã®å¤ã§ããï¼
-\end{description}
+
%<*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 math mode is just ignored.
%
%<*ja>
-ãã®ãã©ã¡ã¼ã¿ã¯\pTeX ã® \cs{inhibitxspcode} ããªããã£ãã¨ä¼¼ã¦ãããï¼
-äºææ§ã¯ãªãï¼
+\item \cs{inhibitglue} ãæ°å¼ã¢ã¼ãä¸ã§å¼ã³åºããå ´åã¯ãã ç¡è¦ãããï¼
%
-\item[\DParam{alxspmode}\,=\{,\}$^\ast$] [\cs{xspcode}]\
+%<*ja>
+\item \LaTeX ã§\LuaTeX-ja ã使ç¨ããå ´åã¯ï¼
+\cs{inhibitglue} ã®ä»£ããã¨ã㦠\verb+\<+ ã使ããã¨ãã§ããï¼
+æ¢ã« \verb+\<+ ãå®ç¾©ããã¦ããå ´åã¯ï¼\LuaTeX-ja ã®èªã¿è¾¼ã¿ã§å¼·å¶çã«ä¸æ¸ããããã®ã§
+注æãããã¨ï¼
+%
+\end{itemize}
+
+
+\subsection{\cs{ltjfakeboxbdd}, \cs{ltjfakeparbegin}}
%<*en>
-Set whether inserting \Param{xkanjiskip} is allowed before/after a
- \textbf{ALchar} whose character code is .
- The followings are allowed for :
+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>
-æåã³ã¼ããã®\textbf{ALchar}ã®åï¼å¾ãã«\Param{xkanjiskip}ã®
-æ¿å
¥ã許ããã©ããã®è¨å®ï¼
-以ä¸ã®ã許ãããï¼
+ãªã¹ãç°å¢å
ã§ã®\cs{item}ã§å§ã¾ãåé
ç®ãªã©ã§ã¯ï¼
+ã段è½æåã®éµæ¬å¼§ãä½è¨ã«åè§åä¸ããããããªã©ï¼
+JFMã«ãã\texttt{'parbdd'}, \texttt{'boxbdd'}ã®æå®ãè¦ããä¸ç ´ç¶»ãã¦ãããã¨ãããï¼
+
+ããã¯\TeX ã\cs{everypar}ãç¨ãã¦æ®µè½éå§æã«è¨å·é¡ã空ç½ãªã©ãæ¿å
¥ãã¦ãã¾ã£ã¦ããããï¼
+段è½æåã®éµæ¬å¼§ãå®éã«ã¯æ®µè½æåã®ãã¼ãã§ã¯ãªããã¨ã«èµ·å ããï¼ä»¥ä¸ã«ä¾ã示ããï¼
%
-\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}
+\begin{LTXexample}[width=0.3\textwidth]
+\parindent1\zw
+\noindent ãããããããã\par % for comparison
+ããããããã \par % normal paragraph
+
+\everypar{\null}
+ããããããã \par % ???
+\end{LTXexample}
%<*en>
-Note that parameters \Param{jaxspmode} and \Param{alxspmode} share a common table, hence these two parameters are synonyms of each other.
+\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>
-\Param{jaxspmode}ã¨\Param{alxspmode}ã¯å
±éã®ãã¼ãã«ãç¨ãã¦ããããï¼
-ããã2ã¤ã®ãã©ã¡ã¼ã¿ã¯äºãã®å¥åã¨ãªã£ã¦ãããã¨ã«æ³¨æããï¼
+\cs{ltjfakeboxbdd}, \cs{ltjfakeparbegin}ã¯ãã®ç¶æ³ãæ¹åããå½ä»¤ã§ããï¼
+å®éã«ã¯\cs{everypar}ã®æ«å°¾ã«ãããã追å ããã¨ãã使ãæ¹ãã»ã¨ãã©ã«ãªãã ããï¼
+\begin{itemize}
+ \item \cs{ltjfakeparbegin}ã¯ï¼å®è¡ãããç®æããã¤ã³ãã³ããã段è½ã®éå§ãã§ããã¨\LuaTeX-jaã®
+ åæå¦çã°ã«ã¼æ¿å
¥å¦çã«èªèãããï¼ãã®å½ä»¤ã®ç´åã«\textbf{JAchar}ããã£ãå ´åï¼
+ ãã®æåã®å¾ãã«å
¥ãã°ã«ã¼çã®å¦çã«ã¤ãã¦ã¯æªå®ç¾©ã§ãã
+ \footnote{%
+ ãã®å½ä»¤ã¨åçã®å
容ã¯ï¼\cs{dirrctlua}ã®å½¢ã§\Pkg{ltjsclasses}å
ã§ä»¥åãã使ããã¦ããï¼
+ ä¸è¬ã¦ã¼ã¶ã§ãå©ç¨ããããããããï¼ãã¼ã¸ã§ã³20170505.0ã§æ°ãã«å½ä»¤ã¨ãã¦å®ç¾©ããï¼
+ }ï¼
+ \item \cs{ltjfakeboxbdd}ã¯ï¼å®è¡ãããç®æããããã¯ã¹ã®å
é ã¨æ«å°¾ãã§ããã¨\LuaTeX-jaã®
+ åæå¦çã°ã«ã¼æ¿å
¥å¦çã«èªèãããï¼
+\end{itemize}
+ä¾ãã°ï¼å
ã»ã©ã®ä¾ã«å¯¾ãã¦é©ç¨ããã¨ï¼æ¬¡ã®ããã«ãªãï¼
%
+\begin{LTXexample}[width=0.3\textwidth]
+\parindent1\zw
+\noindent ãããããããã\par % for comparison
+ããããããã \par % normal paragraph
-\item[\DParam{autospacing}\,=] [\cs{autospacing}]
-\item[\DParam{autoxspacing}\,=] [\cs{autoxspacing}]
-\item[\DParam{kanjiskip}\,=$^\ast$] [\cs{kanjiskip}]\
+\everypar{\null\ltjfakeparbegin}
+ããããããã \par
+\end{LTXexample}
-%<*ja>
-ããã©ã«ãã§2ã¤ã®\textbf{JAchar}ã®éã«æ¿å
¥ãããã°ã«ã¼ã§ããï¼
-é常ã§ã¯ï¼\pTeX ã¨åãããã«ãã©ã³ããµã¤ãºã«æ¯ä¾ãã¦å¤ãããã¨ã¯ãªãï¼
-ãããï¼èªç¶é·ã \cs{maxdimen} ã®å ´åã¯ï¼ä¾å¤çã«åæãã©ã³ãã®JFMå´ã§æå®ããã¦ãã
-å¤ãæ¡ç¨ï¼ãã¡ãã¯ãã©ã³ããµã¤ãºã«æ¯ä¾ï¼ãããã¨ã«ãªã£ã¦ããï¼
-%
+
+\subsection{\cs{ltjdeclarealtfont}}
+\label{ssec:altfont}
%<*en>
-The default glue which inserted between two \textbf{JAchar}s.
-Changing current Japanese font does not alter this parameter, as \pTeX.
+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.
-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}).
+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}
+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}
%
+%<*ja>
+\cs{jfont} ã®æ¸å¼ãè¦ãã°ãããããã«ï¼åºæ¬çã«ã¯\LuaTeX-jaã«ããã1ã¤ã®åæãã©ã³ãã«
+使ç¨åºæ¥ããå®éã®ãã©ã³ããã¯1ã¤ã§ããï¼
+ãããï¼\cs{ltjdeclarealtfont} ãç¨ããã¨ï¼ãã®ååããå¤ãããã¨ãã§ããï¼
-\item[\DParam{xkanjiskip}\,=$^\ast$] [\cs{xkanjiskip}]\
+\cs{ltjdeclarealtfont} ã¯ä»¥ä¸ã®æ¸å¼ã§ä½¿ç¨ããï¼
+\begin{quote}
+\ttfamily \textbackslash ltjdeclarealtfont\{\}
+\end{quote}
+ããã¯ãç¾å¨ã®åæãã©ã³ãããã§ããã¨ãï¼
+ã«å±ããæåã¯ãç¨ãã¦çµçãããï¼ã¨ããæå³ã§ããï¼
+\begin{itemize}
+ \item , ã¯
+\cs{jfont} ã«ãã£ã¦å®ç¾©ãããåæãã©ã³ãã§ããï¼
+ \item ã¯æåã³ã¼ãã®ç¯å²ã表ãã³ã³ãåºåãã®ãªã¹ãã§ãããï¼
+ ä¾å¤ã¨ãã¦è² æ°$-n$ã¯ãã®JFMã®æåã¯ã©ã¹$n$ã«å±ããå
¨ã¦ã®æåã
+ ãæå³ããï¼
+
+ä¸ã«ä¸ã«å®éã«ã¯åå¨ããªãæåãæå®ãããå ´åã¯ï¼
+ãã®æåã«å¯¾ããè¨å®ã¯ç¡è¦ãããï¼
+\end{itemize}
+
+ä¾ãã°ï¼\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$ã¨èªã¿åãããªãã¨ãã
+ãã¯ãã®é½åã«ããï¼
+%
%<*ja>
-ããã©ã«ãã§\textbf{JAchar}ã¨\textbf{ALchar}ã®éã«æ¿å
¥ãããã°ã«ã¼ã§ããï¼
-\Param{kanjiskip}ã¨åãããã«ï¼é常ã§ã¯ãã©ã³ããµã¤ãºã«æ¯ä¾ãã¦å¤ãããã¨ã¯ãªããï¼
-èªç¶é·ã \cs{maxdimen} ã®å ´åãä¾å¤ã§ããï¼
+\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}
%
-%<*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}).
-%
+%\section{Commands for \LaTeXe}
+%\section{\LaTeXe ç¨ã®å½ä»¤}
+%\subsection{Patch for NFSS2}
+%\subsection{NFSS2ã¸ã®ããã}
+\label{ssec:nfsspat}
-\item[\DParam{differentjfm}\,=$^\dagger$]\
+%<*en>
+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>
+\LuaTeX-jaã®NFSS2ã¸ã®æ¥æ¬èªãããã¯
+\pLaTeXe ã§åæ§ã®å½¹å²ãæãã \texttt{plfonts.dtx} ããã¼ã¹ã«ï¼
+åæã¨ã³ã³ã¼ãã£ã³ã°ã®ç®¡ççãLuaã§æ¸ããªããããã®ã§ããï¼
+ããã§ã¯\ref{ssec:chgfnt}ç¯ã§è¿°ã¹ã¦ããªãã£ãå½ä»¤ã«ã¤ãã¦
+è¨è¿°ãã¦ããï¼
+%
+\begin{cslist}%
+\item[\normalfont\bfseries %
+%追å ã®é·ãå¤æ°é
+%additonal dimensions
+]
%<*en>
-Specify how glues/kerns between two \textbf{JAchar}s whose JFM (or size) are different.
-The allowed arguments are the followings:
+Like \pLaTeXe, \LuaTeX-ja defines the following dimensions
+for information of current Japanese font:
%
%<*ja>
-JFMï¼ãããã¯ãµã¤ãºï¼ãç°ãªã2ã¤ã®\textbf{JAchar}ã®éã«ã°ã«ã¼ï¼ã«ã¼ã³ãã©ã®ããã«
-å
¥ããããæå®ããï¼
-許ãããå¤ã¯ä»¥ä¸ã®éãï¼
+\pLaTeXe ã¨åæ§ã«ï¼\LuaTeX-jaã¯ãç¾å¨ã®åæãã©ã³ãã®æ
å ±ããæ ¼ç´ããé·ãå¤æ°
%
\begin{quote}
-\texttt{average},
-\texttt{both},
-\texttt{large},
-\texttt{small},
-\texttt{pleft},
-\texttt{pright},
-\texttt{paverage}
+ \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>
-The default value is \texttt{paverage}. \dots
-%
%<*ja>
-ããã©ã«ãå¤ã¯ \texttt{paverage} ã§ããï¼
-åã
ã®å¤ã«ããå·®ç°ã®è©³ç´°ã¯\ref{ssec-cluster-wa}ç¯ã®ããå³ç©ºç½ãã®ç®åºããåç
§ãã¦ã»ããï¼
+ãå®ç¾©ãã¦ããï¼ãªãï¼\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[\DParam{jacharrange}\,=]
-\item[\DParam{kansujichar}\,=\{, \}$^\ast$] [\cs{kansujichar}]
-\item[\DParam{direction}\,=\ \hbox{\rm (always local)}]\
+\item[\cs{DeclareYokoKanjiEncoding}\{\}\{\}\{\}]
+%\ \\[\dimexpr-\medskipamount-2\baselineskip\relax]
+%\ \\[\dimexpr-2\baselineskip\relax]
+\item[\cs{DeclareTateKanjiEncoding}\{\}\{\}\{\}]
%<*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.
+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>
-çµæ¹åãå¤æ´ãã \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ã®ãããã§ãç¡ãã¨ãã®
-åä½ã¯æªå®ç¾©ã§ããï¼
+\LuaTeX-jaã®NFSS2ã«ããã¦ã¯ï¼æ¬§æãã©ã³ãã¨åæãã©ã³ãã¯
+ãã®ã¨ã³ã³ã¼ãã£ã³ã°ã«ãã£ã¦ã®ã¿åºå¥ãããï¼
+ä¾ãã°ï¼OT1ã¨T1ã®ã¨ã³ã³ã¼ãã£ã³ã°ã¯æ¬§æãã©ã³ãã®ã¨ã³ã³ã¼ãã£ã³ã°ã§ããï¼
+åæãã©ã³ãã¯ãããã®ã¨ã³ã³ã¼ãã£ã³ã°ãæã¤ãã¨ã¯ã§ããªãï¼
+ãããã³ãã³ãã¯æ¨ªçµç¨ã»ç¸¦çµç¨åæãã©ã³ãã®ããã®æ°ããã¨ã³ã³ã¼ãã£ã³ã°ã
+ããããå®ç¾©ããï¼
%
-\end{cslist}
-
+\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}\{\}\{\}\{\}\{\}\{\}]
-\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.
+The above 3~commands are just the counterparts for \cs{DeclareFontEncodingDefaults} and~others.
%
%<*ja>
-\cs{ltjgetparameter} ã¯ãã©ã¡ã¼ã¿ã®å¤ãåå¾ããããã®å½ä»¤ã§ããï¼
-常ã«ãã©ã¡ã¼ã¿ã®ååã第ä¸å¼æ°ã«ã¨ãï¼
+ä¸è¨3ã¤ã®ã³ãã³ãã¯ã¡ããã©NFSS2 ã® \cs{DeclareFontEncodingDefaults} ãªã©ã«å¯¾å¿ãããã®ã§ããï¼
%
-\begin{LTXexample}
-\ltjgetparameter{differentjfm},
-\ltjgetparameter{autospacing},
-\ltjgetparameter{kanjiskip},
-\ltjgetparameter{prebreakpenalty}{`ï¼}.
-\end{LTXexample}
-%<*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).
-%
+\item[\cs{reDeclareMathAlphabet}\{\}\{\}\{\}]
+
+% ToDo: en
%<*ja>
-\emph{\cs{ltjgetparameter} ã®æ»ãå¤ã¯å¸¸ã«æååã§ããï¼}
-ããã¯\texttt{tex.write()}ã«ãã£ã¦åºåãã¦ããããã§ï¼ç©ºç½ã\texttt{\char32}ã
-(\texttt{U+0020})ãé¤ããæåã®ã«ãã´ãªã¼ã³ã¼ãã¯å
¨ã¦12~(other)ã¨ãªãï¼
-ä¸æ¹ï¼ç©ºç½ã®ã«ãã´ãªã¼ã³ã¼ãã¯10~(space)ã§ããï¼
-%
+åæã»æ¬§æã®æ°å¼ç¨ãã©ã³ããã¡ããªãä¸åº¦ã«å¤æ´ããå½ä»¤ãä½æããï¼
+å
·ä½çã«ã¯ï¼æ¬§ææ°å¼ç¨ãã©ã³ããã¡ããªå¤æ´ã®å½ä»¤ï¼\cs{mathrm} çï¼ã¨ï¼åææ°å¼ç¨ãã©
+ ã³ããã¡ããªå¤æ´ã®å½ä»¤ï¼\cs{mathmc} çï¼ã®2ã¤ãåæã«è¡ãå½ä»¤ã¨ãã¦
+ ãï¼åï¼å®ç¾©ããï¼å®éã®ä½¿ç¨ã§ã¯ã¨
+ ã«åããã®ãæå®ããï¼ããªãã¡ï¼ã§åæå´ãå¤
+ æ´ãããããã«ããã®ãä¸è¬çã¨æãããï¼
+æ¬å½ä»¤ã¯
+\begin{center}\tt
+\{\}\quad$\longrightarrow$\quad
+(ã®1段å±éçµæ)\{ã®1段å±éçµæ)\{\}\}
+\end{center}
+ã¨å®ç¾©ãè¡ãã®ã§ï¼ä½¿ç¨ã«ã¯æ³¨æãå¿
è¦ã§ããï¼
+%\vspace{-\medskipamount}
\begin{itemize}
-\item
+\item ,~ã¯æ¢ã«å®ç¾©ããã¦ããªããã°ãªããªãï¼
+ \cs{reDeclareMathAlphabet}\\ã®å¾ã«
+両å½ä»¤ã®å
容ãåå®ç¾©ãã¦ãï¼ã®å
容ã«ããã¯åæ ãããªãï¼
+\item ,~ã«\verb+\@mathrm+ãªã©ã¨ \texttt{@} ãã¤ããå½ä»¤ãæå®ããæã®åä½ã¯ä¿è¨¼ã§ããªãï¼
+\end{itemize}
+%
+
+\item[\cs{DeclareRelationFont}\{\}\{\}\{\}\{\}\\*
+ \null\hfill\{\}\{\}\{\}\{\}]
%<*en>
-If first argument is one of the
-following, no additional argument is needed.
+This command sets the ``accompanied'' alphabetic font (given by the latter 4~arguments)
+with respect to a Japanese font given by the former 4~arguments.
%
%<*ja>
-第1å¼æ°ã次ã®ããããã®å ´åã«ã¯ï¼è¿½å ã®å¼æ°ã¯å¿
è¦ãªãï¼
+ãããããå¾å±æ¬§æããè¨å®ããããã®å½ä»¤ã§ããï¼ååã®4å¼æ°ã§è¡¨ãããåæãã©ã³ãã«å¯¾ãã¦ï¼
+ãã®ãã©ã³ãã«å¯¾å¿ãããå¾å±æ¬§æãã®ãã©ã³ããå¾åã®4å¼æ°ã«ããä¸ããï¼
%
-\begin{quote}
-\sffamily
-jcharwidowpenalty, yjabaselineshift, yalbaselineshift, autospacing, autoxspacing,\\
-kanjiskip, xkanjiskip, differentjfm, direction
-\end{quote}
+\item[\cs{SetRelationFont}]
%<*en>
-Note that \verb+\ltjgetparameter{autospacing}+~and~\verb+\ltjgetparameter{autoxspacing}+
-returns 1 or 0, not
-\texttt{true}~nor~\texttt{false}.
+This command is almost same as \cs{DeclareRelationFont}, except that this command does a local
+assignment, where \cs{DeclareRelationFont} does a global assignment.
%
%<*ja>
-\verb+\ltjgetparameter{autospacing}+ 㨠\verb+\ltjgetparameter{autoxspacing}+ ã¯ï¼
-\texttt{true}ã\texttt{false}ãè¿ãã®\emph{ã§ã¯ãªã}ï¼
-1ã0ã®ãããããè¿ããã¨ã«æ³¨æï¼
+ãã®ã³ãã³ã㯠\cs{DeclareRelationFont} ã¨ãã¼ã«ã«ãªæå®ã§ãããã¨ãé¤ãã¦
+ã»ã¨ãã©åãã§ããï¼\cs{DeclareRelationFont} ã¯ã°ãã¼ãã«ï¼ï¼
%
-\item
+\item[\cs{userelfont}]
%<*en>
-If first argument is one of the
-following, an additional argument---a character code, for example---is needed.
+(Only)~at the next call of \cs{selectfont},
+ change current alphabetic font encoding/family/\dots\ to the `accompanied' alphabetic
+ font family with respect to current Japanese font family,
+ which was set by
+ \cs{DeclareRelationFont} or \cs{SetRelationFont}.
%
%<*ja>
-第1å¼æ°ã次ã®ããããã®å ´åã«ã¯ï¼ããã«æåã³ã¼ãã第2å¼æ°ã¨ãã¦ã¨ãï¼
+次åï¼ã®ã¿ï¼ã®\cs{selectfont}ã®å®è¡æã«ï¼ç¾å¨ã®æ¬§æãã©ã³ãã®ã¨ã³ã³ã¼ãã£ã³ã°ï¼ãã¡ããªï¼â¦â¦ ãï¼
+\cs{DeclareRelationFont} ã \cs{SetRelationFont} ã§æå®ããã
+ç¾å¨ã®åæãã©ã³ãã«å¯¾å¿ãããå¾å±æ¬§æããã©ã³ãã«å¤æ´ããï¼
%
-\begin{quote}
-\sffamily
-kcatcode, prebreakpenalty, postbreakpenalty, jaxspmode, alxspmode
-\end{quote}
+
+\item[\cs{adjustbaseline}]
%<*en>
-\verb+\ltjgetparameter{jaxspmode}{...}+~and~\verb+\ltjgetparameter{alxspmode}{...}+
-returns 0,~1, 2,~or~3, instead of \texttt{preonly} etc.
+In \pLaTeXe, \cs{adjustbaseline} sets \cs{tbaselineshift}
+to match the vertical center of ``M'' and that of ``ã'' in vertical typesetting:
+\[
+\text{\cs{tbaselineshift}} \leftarrow
+\frac{(h_{\text{M}}+d_{\text{M}}) - (h_{\text{ã}}+d_{\text{ã}})}2
+ + d_{\text{ã}} - d_{\text{M}},
+\]
+where $h_{a}$~and~$d_{a}$ denote the height of ``$a$'' and the depth, respectively.
+In \LuaTeX-ja, this \cs{adjustbaseline} does similar task, namely setting the
+ \Param{talbaselineshift} parameter.
+If the \LaTeX\ is 2015/10/01 release or later, \LuaTeX-ja use a Japanese
+character whose character class is zero, instead of `ã'.
%
%<*ja>
-\verb+\ltjgetparameter{jaxspmode}{...}+ ã \verb+\ltjgetparameter{alxspmode}{...}+\
-ã¯ï¼\texttt{preonly} ãªã©ã¨ãã£ãæååã§ã¯ãªãï¼0ãã3ã¾ã§ã®å¤ãè¿ãï¼
+\pLaTeXe ã§ã¯ï¼\cs{adjustbaseline} ã¯ç¸¦çµæã«ãMãã¨ãããã®ä¸å¿ç·ãä¸è´ãããããã«ï¼
+\cs{tbaselineshift} ãè¨å®ããå½¹å²ãæã£ã¦ããï¼
+\[
+\text{\cs{tbaselineshift}} \leftarrow
+\frac{(h_{\text{M}}+d_{\text{M}}) - (h_{\text{ã}}+d_{\text{ã}})}2
+ + d_{\text{ã}} - d_{\text{M}},
+\]
+ããã§ï¼$h_{a}$,~$d_{a}$ã¯ããããã$a$ãã®é«ãã»æ·±ãã表ãï¼
+\LuaTeX-jaã«ããã¦ã\cs{adjustbaseline} ã¯åæ§ã«\Param{talbaselineshift}ãã©ã¡ã¼ã¿ã®èª¿æ´å¦
+ çãè¡ã£ã¦ããï¼
+
+åæã«ï¼ããã\pLaTeXe ã® \cs{adjustbaseline} ã§åæ§ã®å¦çãè¡ããã¦ãããï¼
+ãæ¼¢ãã®å¯¸æ³ãå
ã«ï¼æ¬ç¯ã®æåã«è¿°ã¹ãï¼å°æåã§å§ã¾ãï¼\cs{cht}, \cs{cwd}
+ã¨ãã£ãé·ãå¤æ°ãè¨å®ããï¼
+
+ãªãï¼\LaTeX ã2015/10/01ç以éã®å ´åã¯ï¼ããããæ¼¢ãã®ä»£ããã«
+ãæåã¯ã©ã¹0ã®åææåããç¨ããï¼
%
-\item
+\item[\cs{fontfamily}\{\}]
%<*en>
-\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).
+As in \LaTeXe, this command changes current font family (alphabetic, Japanese,~\emph{or both})
+to . See Subsection~\ref{ssec:fontfamilycmd} for detail.
%
%<*ja>
-\verb+\ltjgetparameter{jacharrange}{+\verb+}+ ã¯ï¼ã\textbf{JAchar}éã®
-ç¯å²ãªãã°0ãï¼ããã§ãªããã°1ãè¿ãï¼ã$-1$çªã®æåç¯å²ãã¯åå¨ããªããï¼ã«$-1$ã
-æå®ãã¦ãã¨ã©ã¼ã¯çºçããªãï¼1ãè¿ãï¼ï¼
+å
ã
ã®\LaTeXe ã«ããããã®ã¨åæ§ã«ï¼ãã®ã³ãã³ãã¯ç¾å¨ã®ãã©ã³ããã¡ããªï¼æ¬§æï¼
+åæï¼\emph{ãããã¯ä¸¡æ¹}ï¼ãã«å¤æ´ããï¼è©³ç´°ã¯\ref{ssec:fontfamilycmd}ç¯ãåç
§ãããã¨ï¼
%
-\item
+
+\begin{figure}[!tb]
+\begin{LTXexample}[pos=b]
+\DeclareKanjiFamily{JY3}{edm}{}
+\DeclareFontShape{JY3}{edm}{m}{n} {<-> s*KozMinPr6N-Regular:jfm=ujis;}{}
+\DeclareFontShape{JY3}{edm}{m}{green}{<-> s*KozMinPr6N-Regular:jfm=ujis;color=007F00}{}
+\DeclareFontShape{JY3}{edm}{m}{blue} {<-> s*KozMinPr6N-Regular:jfm=ujis;color=0000FF}{}
+\DeclareAlternateKanjiFont{JY3}{edm}{m}{n}{JY3}{edm}{m}{green}{"4E00-"67FF,{-2}-{-2}}
+\DeclareAlternateKanjiFont{JY3}{edm}{m}{n}{JY3}{edm}{m}{blue}{ "6800-"9FFF}
+{\kanjifamily{edm}\selectfont
+æ¥æ¬å½æ°ã¯ãæ£å½ã«é¸æãããå½ä¼ã«ããã代表è
ãéãã¦è¡åããâ¦â¦}
+\end{LTXexample}
+%\caption{\cs{DeclareAlternateKanjiFont} ã®ä½¿ç¨ä¾}
+%\caption{An example of \cs{DeclareAlternateKanjiFont}}
+\label{fig:altkanji}
+\end{figure}
+
+\item[\cs{DeclareAlternateKanjiFont}\{\}\{\}\{\}\{\}\\
+ \null\hfill\{\}\{\}\{\}\{\}\{\}]
+%<*ja>
+\ref{ssec:altfont}ç¯ã®\
+\cs{ltjdeclarealtfont} ã¨åæ§ã«ï¼ååã®4å¼æ°ã®
+åæãã©ã³ãï¼åºåºãã©ã³ãï¼ã®ãã¡ä¸ã®æåã
+第5ãã第8å¼æ°ã®åæãã©ã³ãã使ã£ã¦çµãããã«æ示ããï¼
+使ç¨ä¾ãå³\nobreak\ref{fig:altkanji}ã«è¼ããï¼
+
+\begin{itemize}
+ \item
+\cs{ltjdeclarealtfont} ã§ã¯åºåºãã©ã³ãã»ç½®ãæãå
åæãã©ã³ãã¯ãããããå®ç¾©ããã¦ã
+ ãªãã¨ãããªãï¼ãã®ä»£ããå³æçºå¹ï¼ã§ãã£ããï¼
+\cs{DeclareAlternateKanjiFont} ã®è¨å®ã
+å®éã«å¹åãçºæ®ããã®ã¯ï¼æ¸ä½å¤æ´ããµã¤ãºå¤æ´ãè¡ã£ãæï¼
+ãããã¯ï¼ããããå«ããï¼\cs{selectfont} ãå®è¡ãããæã§ããï¼
+ \item
+段è½ãhboxã®æå¾ã§ã®è¨å®å¤ã段è½ï¼hboxå
¨ä½ã«ããã£ã¦éç¨ããç¹ãï¼
+ã«è² æ°$-n$ãæå®ããå ´åï¼ããããåºåºãã©ã³ãã®æåã¯ã©ã¹$n$ã«å±ããæåå
¨ä½ã
+ã¨è§£éãããã®ã¯ \cs{ltjdeclarealtfont} ã¨åãã§ããï¼
+\end{itemize}%
+%
%<*en>
-For an integer~ between 0~and~9,
- \verb+\ltjgetparameter{kansujichar}{+\verb+}+ returns the character code
-of the result of \cs{kansuji}.
+As \cs{ltjdeclarealtfont}~(Subsection~\ref{ssec:altfont}),
+characters in of the Japanese font (we say the \emph{base font})
+which specified by first 4 arguments are typeset
+by the Japanese font which specified by fifth to eighth arguments
+(we say the \emph{alternate font}).
+An example is shown in \autoref{fig:altkanji}.
+
+\begin{itemize}
+ \item
+In \cs{ltjdeclarealtfont}, the base font and the alternate font must be already defined.
+But this \cs{DeclareAlternateKanjiFont} is not so.
+In other words, \cs{DeclareAlternateKanjiFont} is effective only after
+current Japanese font is changed, or only after \cs{selectfont} is executed.
+ \item \dots
+\end{itemize}%
+\vspace{-\medskipamount}
+%
+\end{cslist}
+
+%<*en>
+As closing this subsection, we shall introduce an example of
+\cs{SetRelationFont} and \cs{userelfont}:
%
%<*ja>
-0--9ã®æ°ã«å¯¾ãã¦ï¼
-\verb+\ltjgetparameter{kansujichar}{+\verb+}+ ã¯ï¼\cs{kansuji}ã§åºåãã
- ãæåã®æåã³ã¼ããè¿ãï¼
+ãã®ç¯ã®çµããã«ï¼\cs{SetRelationFont} 㨠\cs{userelfont} ã®ä¾ã
+ç´¹ä»ãã¦ãããï¼\cs{userelfont} ã®ä½¿ç¨ã«ãã£ã¦ï¼ãabcãã®é¨åã®ãã©ã³ãã
+Latin Modern Sans Serif (TU/lmss/m/n) ã«å¤ãã£ã¦ãããã¨ããããï¼
%
+\begin{LTXexample}[width=0.3\textwidth]
+\makeatletter
+\SetRelationFont{JY3}{\k@family}{m}{n}{TU}{lmss}{m}{n}
+ % \k@family: current Japanese font family
+\userelfont\selectfont ãããabc
+\end{LTXexample}
-\item
+%\subsection{Detail of \cs{fontfamily} command}
+%\subsection{\cs{fontfamily}ã³ãã³ãã®è©³ç´°}
+\label{ssec:fontfamilycmd}
%<*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).
+In this subsection, we describe when \cs{fontfamily} changes current
+Japanese/alphabetic font family. Basically, current Japanese fotn family is changed to
+ if it is recognized as a Japanese font family, and similar with alphabetic font
+family. There is a case that current Japanese/alphabetic font family are both changed to
+, and another case that isn't recognized as a Japanese/alphabetic font
+family either.
+
+\paragraph{Recognition as Japanese font family}
+First, Whether Japanese font family will be changed is determined in following order.
+This order is very similar to \cs{fontfamily} in \pLaTeXe, but we re-implemented in Lua.
+We use an auxiliary list~$N_{\mathrm{J}}$.
%
%<*ja>
-\verb+\ltjgetparameter{adjustdir}+ ã¯ï¼å¨å²ã®vboxã®çµæ¹åï¼è¨ãæããã°ï¼
-\cs{vadjust} ã§ç¨ããããçµæ¹åï¼ã表ãæ°å¤ãè¿ãï¼
-\Param{direction}ã¨åæ§ã«ï¼1㯠\cs{dtou} æ¹åãï¼
-3ã¯ç¸¦çµã¿ãï¼4ã¯æ¨ªçµã¿ã表ãï¼
-%
+æ¬ç¯ã§ã¯ï¼\cs{fontfamily} ããã¤åæ/欧æãã©ã³ããã¡ããªãå¤æ´ãããã«ã¤ãã¦è§£èª¬
+ããï¼åºæ¬çã«ã¯ï¼ãåæãã©ã³ããã¡ããªã ã¨èªèãããã°åæå´ãï¼æ¬§æãã©ã³ããã¡
+ããªã ã¨èªèãããã°æ¬§æå´ãå¤æ´ãããï¼ã©ã¡ãã¨ãèªèãããã°åæã»æ¬§æã®ä¸¡æ¹ãå¤ããã
+ã¨ã«ãªããï¼å½ç¶ã©ã¡ãã¨ãèªèãããªããã¨ãããï¼
-\item
+\paragraph{åæãã©ã³ããã¡ããªã¨ãã¦ã®èªè}
+ã¾ãï¼ãåæãã©ã³ããã¡ããªã¨ãã¦èªèããããã¯ä»¥ä¸ã®é åºã§æ±ºå®ãããï¼
+ããã¯\pLaTeXe ã® \cs{fontfamily} ã«ã¨ã¦ãä¼¼ã¦ãããï¼ããã§ã¯Luaã«ãã£ã¦å®è£
ãã¦ããï¼
+è£å©çã«ãåæãã©ã³ããã¡ããªã§ã¯ãªãã¨èªèãããããã¡ããªãæ ¼ç´ãããªã¹ã$N_{\mathrm{J}}$ãç¨ããï¼
+%
+\begin{enumerate}
%<*en>
-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.
+\item If the family~ has been defined already by \cs{DeclareKanjiFamily},
+ is recognized as a Japanese font family.
+ Note that need not be defined under \emph{current} Japanese font encoding.
%
%<*ja>
-0--65535ã®æ°ã«å¯¾ãã¦ï¼
-\verb+\ltjgetparameter{boxdim}{+\verb+}+ ã¯ï¼\cs{box}ã«
-æ ¼ç´ããã¦ããããã¯ã¹ã®çµæ¹åã表ãï¼ãããã®ã¬ã¸ã¹ã¿ã空ã®å ´åã¯ï¼0ãè¿ãããï¼
+\item ãã¡ããªãæ¢ã« \cs{DeclareKanjiFamily} ã«ãã£ã¦å®ç¾©ããã¦ããå ´åï¼
+ ã¯åæãã©ã³ããã¡ããªã§ããã¨èªèãããï¼
+ ããã§ï¼ã¯ç¾å¨ã®åæãã©ã³ãã¨ã³ã³ã¼ãã£ã³ã°ã§å®ç¾©ããã¦ããªãã¦ãããï¼
%
-
-\item
%<*en>
-The following parameter names \emph{cannot be specified} in \cs{ltjgetparameter}.
+\item If the family~ has been listed in a list~$N_{\mathrm{J}}$, this means
+ that is not a Japanese font family.
%
%<*ja>
-次ã®ãã©ã¡ã¼ã¿åã \cs{ltjgetparameter} ã«æå®ãããã¨ã¯ã§ããªãï¼
+\item ãã¡ããªããªã¹ã$N_{\mathrm{J}}$ã«æ¢ã«å«ã¾ãã¦ããã°ï¼ããã¯
+ ãåæãã©ã³ããã¡ããªã§ã¯ãªããã¨ãæå³ããï¼
%
-\begin{quote}
-\sffamily
-jatextfont, jascriptfont, jascriptscriptfont, jacharrange
-\end{quote}
-
-\item
%<*en>
-\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$.
+\item If the \Pkg{luatexja-fontspec} package is loaded, we stop here, and is not
+ recognized as a Japanese font family.
-Hence, one can know whether is \textbf{JAchar} or not
-by the following:
+ If the \Pkg{luatexja-fontspec} package is \emph{not} loaded,
+now \LuaTeX-ja looks whether there exists a Japanese font encoding~ such that
+ a font definition named \texttt{.fd} (the file name is
+ all lowercase) exists. If so, is recognized as a Japanese font family (the font definition file won't be loaded here).
+ If not, is not a Japanese font family, and
+ is appended to the list~$N_{\mathrm{J}}$.
%
%<*ja>
-\verb+\ltjgetparameter{chartorange}{+\verb+}+ ã«ãã£ã¦
-ã®å±ããæåç¯å²ã®çªå·ãç¥ããã¨ãã§ããï¼
+\item ãã\Pkg{luatexja-fontspec}ããã±ã¼ã¸ãèªã¿è¾¼ã¾ãã¦ããã°ï¼ããã§çµäºã§ããï¼
+ã¯åæãã©ã³ããã¡ããªã¨ãã¦èªèãããªããã¨ã«ãªãï¼
-ã«0--127ã®å¤ãæå®ããå ´åï¼ãã®ã¨ãï¼ãå±ãã
-æåç¯å²ã¯åå¨ããªãï¼ã¯$-1$ãè¿ãï¼
+ãã\Pkg{luatexja-fontspec}ããã±ã¼ã¸ãèªã¿è¾¼ã¾ãã¦ããªããã°ï¼åæã¨ã³ã³ã¼ãã£ã³ã°ã§
+ãã©ã³ãå®ç¾©ãã¡ã¤ã«\texttt{.fd}ï¼ãã¡ã¤ã«åã¯å
¨ã¦å°æåï¼ãåå¨ãããããªã
+ ã®ããããã©ããã調ã¹ãï¼
+åå¨ããã°ï¼ã¯åæãã©ã³ããã¡ããªã¨èªèãããï¼ãã©ã³ãå®ç¾©ãã¡ã¤ã«ã¯èªã¿è¾¼ã¾ããª
+ ãï¼ï¼
+åå¨ããªããã°ï¼ã¯åæãã©ã³ããã¡ããªã§ãªãã¨èªèããï¼ãªã¹ã$N_{\mathrm{J}}$ã«ã追å ãããã¨ã§ãããè¨æ¶ããï¼
-ãã®ããï¼ã\textbf{JAchar}ã\textbf{ALchar}ãã¯
-次ã§ç¥ããã¨ãã§ããï¼
%
-\begin{quote}
-\ttfamily \verb+\ltjgetparameter{jacharrange}{\ltjgetparameter{chartorange}{+%
- \verb+}}+\\\null\hfill\verb+% 0 if JAchar, 1 if ALchar+
-\end{quote}
+\end{enumerate}
%<*en>
-\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}
+\paragraph{Recognition as alphabetic font family}
+Next, whether alphabetic font family will be changed is determined in following order.
+We use auxiliary lists $F_{\mathrm{A}}$~and~$N_{\mathrm{A}}$,
%
%<*ja>
-\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}
-
-%<*ja>
-\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}ãå®è¡ãããã¨ã¯æ³å®ããã¦ããªãã®ã§æ³¨æï¼
-
-
-
-\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} ã§èªã¿ããã°è¯ãï¼
+\paragraph{欧æãã©ã³ããã¡ããªã¨ãã¦ã®èªè}
+åæ§ã«ï¼ãåæãã©ã³ããã¡ããªã¨ãã¦èªèããããã¯ä»¥ä¸ã®é åºã§æ±ºå®ãããï¼
+è£å©çã«ã欧æãã©ã³ããã¡ããªã¨æ¢ã«èªèãããããã¡ããªã®ãªã¹ã$F_{\textrm{A}}$ã¨ï¼
+ã欧æãã©ã³ããã¡ããªã§ã¯ãªãã¨èªèãããããã¡ããªãæ ¼ç´ãããªã¹ã$N_{\mathrm{A}}$ãç¨ããï¼
%
-
-%\section{Other Commands for plain \TeX\ and \LaTeXe}
-%\section{plainã§ã\LaTeX ã§ãå©ç¨å¯è½ãªãã®ä»ã®å½ä»¤}
-%\subsection{Commands for compatibility with \pTeX}
-%\subsection{\pTeX äºæç¨å½ä»¤}
-
+\begin{enumerate}
%<*en>
-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.
+\item If the family~ has been listed in a list~$F_{\mathrm{A}}$,
+ is recognized as an alphabetic font family.
%
%<*ja>
-以ä¸ã®å½ä»¤ã¯\pTeX ã¨ã®äºææ§ã®ããã«å®è£
ããã¦ããï¼ãã®ããï¼JIS~X~0213ã«ã¯å¯¾å¿ããï¼
-\pTeX ã¨åãããã«JIS~X~0208ã®ç¯å²ãããµãã¼ããã¦ããªãï¼
+\item ãã¡ããªããªã¹ã$F_{\mathrm{A}}$ã«æ¢ã«å«ã¾ãã¦ããã°ï¼
+ ã¯æ¬§æãã©ã³ããã¡ããªã¨èªèãããï¼
%
-\begin{center}
-\cs{kuten}, \cs{jis}, \cs{euc}, \cs{sjis}, \cs{jis}, \cs{kansuji}
-\end{center}
%<*en>
-These six commands takes an internal integer, and returns a \emph{string}.
+\item If the family~ has been listed in a list~$N_{\mathrm{A}}$, this means
+ that is not an alphabetic font family.
%
%<*ja>
-ããã6å½ä»¤ã¯å
é¨æ´æ°ãå¼æ°ã¨ãããï¼å®è¡çµæã¯\textbf{æåå}ã§ãããã¨ã«æ³¨æï¼
+\item ãã¡ããªããªã¹ã$N_{\mathrm{A}}$ã«æ¢ã«å«ã¾ãã¦ããã°ï¼ããã¯
+ ã欧æãã©ã³ããã¡ããªã§ã¯ãªããã¨ãæå³ããï¼
%
-\begin{LTXexample}
-\newcount\hoge
-\hoge="2423 %"
-\the\hoge, \kansuji\hoge\\
-\jis\hoge, \char\jis\hoge\\
-\kansuji1701
-\end{LTXexample}
-
%<*en>
-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}
+\item If there exists an alphabetic font encoding such that the family~ has been
+ defined under it, is recognized as an alphabetic font family, and
+ to memorize this, is appended to the list~$F_{\mathrm{A}}$.
%
-
-
-\subsection{\cs{inhibitglue}}
+%<*ja>
+\item ãã欧æãã©ã³ãã¨ã³ã³ã¼ãã£ã³ã°ä¸ã§ãã¡ããªãå®ç¾©ããã¦ããã°ï¼
+ ã¯æ¬§æãã©ã³ããã¡ããªã¨èªèããï¼ãªã¹ã$F_{\mathrm{A}}$ã«ã追å ãããã¨ã§ãã®ãã¨ãè¨æ¶ããï¼
+%
%<*en>
-\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 Now \LuaTeX-ja looks whether there exists an alphabetic font encoding~ such that
+ a font definition named \texttt{.fd} (the file name is
+ all lowercase) exists. If so, current alphabetic font family will be changed to
+ ~(the font definition file won't be loaded here).
+ If not, current alphabetic font family won't be changed, and
+ is appended to the list~$N_{\mathrm{A}}$.
%
%<*ja>
-\cs{inhibitglue} ã¯\textbf{JAglue}ã®æ¿å
¥ãæå¶ããï¼
-以ä¸ã¯ï¼ããã¯ã¹ã®å§ãã¨ãããã®éï¼ããããã¦ãã®éã«ã°ã«ã¼ãå
¥ãç¹å¥ãªJFMãç¨ããä¾ã§
-ããï¼
+\item æçµæ®µéã§ã¯ï¼æ¬§æã¨ã³ã³ã¼ãã£ã³ã°