X-Git-Url: http://git.osdn.jp/view?a=blobdiff_plain;f=doc%2Fluatexja.dtx;h=7481236a882c3e498b9d277b6768fe28e0ed5b4f;hb=3f815e58bc569765802ca412f513610f564013bd;hp=e8cbcf496f63d7d070577c24bcb626a19e1e2710;hpb=8156de215f4e7adf80d97612780d98aca0a924de;p=luatex-ja%2Fluatexja.git
diff --git a/doc/luatexja.dtx b/doc/luatexja.dtx
index e8cbcf4..7481236 100644
--- a/doc/luatexja.dtx
+++ b/doc/luatexja.dtx
@@ -275,13 +275,16 @@ scripts for appropriate callbacks.
%<*en>
The \LuaTeX-ja package is under much influence of \pTeX\ engine. The initial
-target of development was to implement features of \pTeX. However,
-\emph{\LuaTeX-ja is not a just porting of \pTeX; unnatural
+target of development was to implement features of \pTeX. However,
+implementing all feature of \pTeX\ is impossible,
+since all process of \LuaTeX-ja must be implemented only by Lua and \TeX\ macros.
+Hence \emph{\LuaTeX-ja is not a just porting of \pTeX; unnatural
specifications/behaviors of \pTeX\ were not adopted}.
%
%<*ja>
\LuaTeX-jaã¯ï¼\pTeX ã«å¤å¤§ãªå½±é¿ãåãã¦ããï¼åæã®éçºç®æ¨ã¯ï¼\pTeX ã®æ©
-è½ãLuaã³ã¼ãã«ããå®è£
ãããã¨ã§ãã£ãï¼ãããï¼éçºãé²ãã«ã¤ãï¼\pTeX
+è½ãLuaã³ã¼ãã«ããå®è£
ãããã¨ã§ãã£ãï¼ãããï¼ï¼\pTeX ã¯ã¨ã³ã¸ã³æ¡å¼µã§ãã£ãã®ã«å¯¾ãï¼
+\LuaTeX-jaã¯Luaã³ã¼ãã¨\TeX ãã¯ããç¨ãã¦å
¨ã¦ãå®è£
ãã¦ããªããã°ãªããªãããï¼\pTeX
ã®å®å
¨ãªç§»æ¤ã¯ä¸å¯è½ã§ããï¼ã¾ã\pTeX ã«ãããå®è£
ãããããä¸å¯è§£ã«ãªã£
ã¦ãããããªç¶æ³ãçºè¦ãããï¼ãã®ããï¼\emph{\LuaTeX-jaã¯ï¼ãã¯ã
\pTeX ã®å®å
¨ãªç§»æ¤ã¯ç®æ¨ã¨ã¯ããªãï¼\pTeX ã«ãããä¸èªç¶ãªä»æ§ã»æåãã
@@ -289,34 +292,25 @@ specifications/behaviors of \pTeX\ were not adopted}.
%
%<*en>
-The followings are major changes from \pTeX:
+The followings are major changes from \pTeX.
+For more detailed information, see Part~\ref{part-imp} or other sections of this manual.
%
%<*ja>
以ä¸ã¯ \pTeX ããã®ä¸»ãªå¤æ´ç¹ã§ããï¼
+ãã詳細ã«ã¤ãã¦ã¯ç¬¬\ref{part-imp}é¨ãªã©æ¬ææ¸ã®æ®ããåç
§ï¼
%
-\begin{itemize}
-%<*en>
-\item \emph{\LuaTeX-ja does all process only with Lua and \TeX\ macros},
-while \pTeX\ is an engine extension of \TeX82.
-This means that several features of \pTeX\ are not completely implemented
-in \LuaTeX-ja.
-%
-%<*ja>
-\item \pTeX ã¯ã¨ã³ã¸ã³æ¡å¼µã§ãã£ãã®ã«å¯¾ãï¼
-\emph{\LuaTeX-jaã¯Luaã³ã¼ãã¨\TeX ãã¯ããç¨ãã¦å
¨ã¦ãå®è£
ãã¦ãã}ï¼
-ãã®ããï¼\pTeX ã®ããã¤ãã®æ©è½ã¯\LuaTeX-ja ã«ï¼ãã®ã¾ã¾ã®å½¢ã§ã¯ï¼å®è£
ãã¦ããªãï¼
-%
-\begin{itemize}
%<*en>
- \item \pTeX\ addes several primitives, such as \cs{kanjiskip},
+\paragraph{Command names} \pTeX\ addes several primitives, such as \cs{kanjiskip},
\cs{prebreakpenalty},~and,~\cs{ifydir}. They can be used as follows:
%
%<*ja>
- \item ä¾ãã°\pTeX ã§è¿½å ããã次ã®ãããªããªããã£ã
+\paragraph{å½ä»¤ã®å称} ä¾ãã°\pTeX ã§è¿½å ããã次ã®ãããªããªããã£ã
%
\begin{verbatim}
\kanjiskip=10pt \dimen0=kanjiskip
+\tbaselineshift=0.1zw
+\dimen0=\tbaselineshift
\prebreakpenalty`ã=100
\ifydir ... \fi
\end{verbatim}
@@ -324,37 +318,48 @@ in \LuaTeX-ja.
% Instead of them, we have to write as the following.
% ã¯\LuaTeX-jaã«ã¯åå¨ããªãï¼\LuaTeX-jaã§ã¯ä»¥ä¸ã®ããã«è¨è¿°ãããã¨ã«ãªãï¼
\begin{verbatim}
-\ltjsetparameter{kanjiskip} \dimen0=\ltjgetparameter{kanjiskip}
+\ltjsetparameter{kanjiskip=10pt} \dimen0=\ltjgetparameter{kanjiskip}
+\ltjsetparameter{talbaselineshift=0.1\zw}
+\dimen0=\ltjgetparameter{talbaselineshift}
\ltjsetparameter{prebreakpenalty={`ã,100}}
\ifnum\ltjgetparemeter{direction}=4 ... \fi
\end{verbatim}
+%<*en>
+Note that \pTeX\ adds new two useful units, namely \texttt{zw}~and~\texttt{zh}.
+As shown above, they are changed by \cs{zw}~and\cs{zh} respectively, in \LuaTeX-ja.
+%
+%<*ja>
+ç¹ã«æ³¨æãã¦ã»ããã®ã¯ï¼\pTeX ã§è¿½å ããã \texttt{zw} 㨠\texttt{zh} ã¨ããåä½ã
+\LuaTeX-ja ã§æ±ãã«ã¯ï¼\cs{zw}, \cs{zh} ã¨å¶å¾¡ç¶´ã®å½¢ã«ããªãã¨ãããªãã¨ããç¹ã§ããï¼
+%
%<*en>
-\item In \pTeX, a line break after Japanese character is ignored (and
+\paragraph{Linebreak after a Japanese character}
+In \pTeX, a line break after Japanese character is ignored (and
doesn't yield a space), since line breaks (in source files) are
permitted almost everywhere in Japanese texts. However, \LuaTeX-ja
doesn't have this feature completely, because of a specification
of \LuaTeX. For the detail, see Section~\ref{sec-lbreak}.
%
%<*ja>
-\item æ¥æ¬èªã®ææ¸ä¸ã§ã¯æ¹è¡ã¯ã»ã¨ãã©ã©ãã§ã許ãããã®ã§ï¼\pTeX ã§ã¯åææå
+\paragraph{åææåç´å¾ã®æ¹è¡}
+æ¥æ¬èªã®ææ¸ä¸ã§ã¯æ¹è¡ã¯ã»ã¨ãã©ã©ãã§ã許ãããã®ã§ï¼\pTeX ã§ã¯åææå
ç´å¾ã®æ¹è¡ã¯ç¡è¦ãããï¼ã¹ãã¼ã¹ãå
¥ããªãï¼ããã«ãªã£ã¦ããï¼ãããï¼
\LuaTeX-ja ã§ã¯ \LuaTeX ã®ä»æ§ã®ããã«ãã®æ©è½ã¯å®å
¨ã«ã¯å®è£
ããã¦ããªãï¼
詳ããã¯\ref{sec-lbreak}ç« ãåç
§ï¼
%
-\end{itemize}
-
-
-
%<*en>
-\item The insertion process of glues/kerns between two Japanese
+
+\paragraph{Spaces related to Japanese characters}
+The insertion process of glues/kerns between two Japanese
characters and between a Japanese character and other characters
(we refer glues/kerns of both kinds as \textbf{JAglue}) is rewritten from
scratch.
%
%<*ja>
-\item 2ã¤ã®åææåã®éãï¼åææåã¨æ¬§ææåã®éã«å
¥ãã°ã«ã¼ï¼ã«ã¼ã³
+\paragraph{åæé¢é£ã®ç©ºç½}
+2ã¤ã®åææåã®éãï¼åææåã¨æ¬§ææåã®éã«å
¥ãã°ã«ã¼ï¼ã«ã¼ã³
ï¼ä¸¡è
ããããã¦\textbf{JAglue}ã¨å¼ã¶ï¼ã®æ¿å
¥å¦çã0ããæ¸ãç´ããã¦ããï¼
%
@@ -402,7 +407,6 @@ in \LuaTeX-ja.
ã¡ã\hbox{}ã£ã¨
\end{lstlisting}
-
%<*en>
\item In the process, two Japanese fonts which only differ in their ``real''
fonts are identified.
@@ -413,28 +417,34 @@ in \LuaTeX-ja.
%
\end{itemize}
-%<*ja>
-\item ****çããã¯ï¼ä¸å®å®ãªããã\LuaTeX-ja ã«ããã縦çµã¿ããµãã¼ããã¦ããï¼
-\LuaTeX ã®ã³ã¼ã«ããã¯ã®å¶éãªã©ã«ããï¼ç¹ã«ç°ãªã£ãçµæ¹åã®ããã¯ã¹ãæ±ãå ´åã«ã¯
-ä»æ§ãç°ãªãã®ã§æ³¨æï¼
-%
-
%<*en>
-\item Japanese characters in discretionary break (\cs{discretionary}) is not supported.
+\paragraph{Directions}
+From this version, \LuaTeX-ja supports vertical writing;
+but this feature must \emph{not} be confused with $\Omega$-style direction support of \LuaTeX\
+itself. ...
%
%<*ja>
-\item \cs{discretionary} å
ã«ç´æ¥åææåãè¨è¿°ãããã¨ã¯ãµãã¼ããããªãï¼åææåãã©ã
- ãã¦ã使ãããå ´å㯠\cs{hbox} ã§æ¬ããã¨ï¼
+\paragraph{çµæ¹å}
+æ¬çããã¯ï¼ä¸å®å®ãªããã\LuaTeX-ja ã«ããã縦çµã¿ããµãã¼ããã¦ããï¼
+ãªãï¼\LuaTeX æ¬ä½ãï¼$\Omega$æµã®çµæ¹åããµãã¼ããã¦ãããï¼ããã¨ã¯å
¨ãã®å¥ç©ã§ãããã¨
+ã«æ³¨æãã¦ã»ããï¼
+\LuaTeX ã®ã³ã¼ã«ããã¯ãå®è£
ã«ããï¼ç¹ã«ç°ãªã£ãçµæ¹åã®ããã¯ã¹ãæ±ãå ´åã«ã¯
+\cs{wd}, \cs{ht}, \cs{dp}çã®ä»æ§ãç°ãªãã®ã§æ³¨æï¼è©³ç´°ã¯ç¬¬\ref{sec-direction}ç¯ãåç
§ï¼
%
-\end{itemize}
%<*en>
-For detailed information, see Part~\ref{part-imp}.
+\paragraph{\cs{discretionary}}
+Japanese characters in discretionary break (\cs{discretionary}) is not supported.
%
%<*ja>
-詳細ã«ã¤ãã¦ã¯ç¬¬\ref{part-imp}é¨ãåç
§ï¼
+\paragraph{\cs{discretionary}}
+ \cs{discretionary} å
ã«ç´æ¥åææåãè¨è¿°ãããã¨ã¯ï¼\pTeX ã«ããã¦ãæ³å®ããã¦ããªãã£ã
+ æããããï¼\LuaTeX-jaã«ããã¦ãæ³å®ãã¦ããªãï¼åææåãã©ã
+ ãã¦ã使ãããå ´å㯠\cs{hbox} ã§æ¬ããã¨ï¼
%
+
+
%\subsection{Notations}
%\subsection{ç¨èªã¨è¨æ³}
@@ -451,12 +461,12 @@ In this document, the following terms and notations are used:
(see Subsection~\ref{ssec-setrange}).
%
%<*ja>
-\item æåã¯æ¬¡ã®2種é¡ã«åããããï¼ãã®é¡å¥ã¯ã¦ã¼ã¶ãå¾ããå¤æ´å¯è½ã§ãã
+\item æåã¯æ¬¡ã®2種é¡ã«åããããï¼ãã®é¡å¥ã¯åºå®ããã¦ãããã®ã§ã¯ãªãï¼ã¦ã¼ã¶ãå¾ããå¤æ´å¯è½ã§ãã
ï¼\ref{ssec-setrange}ç¯ãåç
§ï¼ï¼
%
\begin{itemize}
%<*en>
-\item \textbf{JAchar}: standing for characters which used in Japanese typesetting,
+\item \textbf{JAchar}: standing for characters which is used in Japanese typesetting,
such as Hiragana,~Katakana, Kanji, and~other Japanese punctuation marks.
%
%<*ja>
@@ -557,11 +567,11 @@ 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\ snapshot rev~5024 (or later)
+\item \LuaTeX\ 0.80 (or later)
\item \Pkg{luaotfload} v2.5 (or later)
\item \Pkg{adobemapping} (Adobe cmap and pdfmapping files)
\item \Pkg{everysel} (if you want to use \LuaTeX-ja with \LaTeXe)
-%\item \emph{IPAex fonts(\url{http://ipafont.ipa.go.jp/})}
+%\item \emph{IPAex fonts}(\url{http://ipafont.ipa.go.jp/})
%\item \emph{IPAexãã©ã³ã(\url{http://ipafont.ipa.go.jp/})}
\end{itemize}
@@ -717,9 +727,15 @@ Note that \texttt{*.\{dtx,ins\}} and \texttt{ltj-kinsoku\_make.tex} are not need
%
\end{enumerate}
-%\subsection{Cautions}
-%\subsection{注æç¹}
-
+%<*en>
+\subsection{Cautions}
+For changes from \pTeX, see Subsection~\ref{ssec:chgptex}.
+%
+%<*ja>
+\subsection{注æç¹}
+\pTeX ããã®å¤æ´ç¹ã¨ãã¦ï¼\ref{ssec:chgptex}ç¯ãçèªããã®ãæã¾ããï¼
+ããã§ã¯ä¸è¬çãªæ³¨æç¹ãè¿°ã¹ãï¼
+%
\begin{itemize}
%<*en>
\item The encoding of your source file must be UTF-8. No other
@@ -1010,11 +1026,43 @@ Okumura), namely, \Pkg{ltjclasses}\footnote{%
è注ã¨ããã ããã¼ãã®é åºã¯\LaTeX éãã¨ããï¼ãã\pLaTeX ã®åºåé åºã好ã¿ãªãã°ï¼
\Pkg{stfloats}ããã±ã¼ã¸ãå©ç¨ãã¦
\begin{lstlisting}
- \usepackage{stfloats} \fnbelowfloat
+ \usepackage{stfloats}\fnbelowfloat
\end{lstlisting}
ã®ããã«ããã°ããï¼\Pkg{footmisc}ããã±ã¼ã¸ã \texttt{bottom}\ ãªãã·ã§ã³ãæå®ãã¦
èªã¿è¾¼ãã¨ããæ¹æ³ããããï¼ããã ã¨ããã ããã¼ãã¨è注ã®éãéãã¦ãã¾ãï¼
%
+%%% âã¯è±è¨³ããªã
+
+%<*en>
+\paragraph{\Pkg{geometry} package and classes for vertical writing}
+It is well-known that the \Pkg{geometry} package produces the following error, when classes for
+vertical writing is used:
+%
+%<*ja>
+\paragraph{縦çµã§ã®\Pkg{geometry}ããã±ã¼ã¸}
+\pLaTeX ã®ç¸¦çµç¨æ¨æºã¯ã©ã¹ãã¡ã¤ã«ã§ã¯\Pkg{geometry}ããã±ã¼ã¸ãå©ç¨ãããã¨ã¯åºæ¥ãï¼
+%
+\begin{lstlisting}
+! Incompatible direction list can't be unboxed.
+\@begindvi ->\unvbox \@begindvibox
+ \global \let \@begindvi \@empty
+\end{lstlisting}
+%<*en>
+Now, \LuaTeX-ja automatically applies the patch \Pkg{lltjp-geometry} to the
+\Pkg{geometry} package, when the direction of the document is \emph{tate} (vertical
+writing).
+This patch \Pkg{lltjp-geometry} also can be used in \pLaTeX; for the detail, please refer
+\url{lltjp-geometry.pdf}~(Japanese).
+%
+%<*ja>
+ã¨ãããããªã¨ã©ã¼ãçºçãããã¨ãç¥ããã¦ããï¼
+\LuaTeX-jaã§ã¯ï¼ \texttt{ltjtarticle.cls} ã¨ãã£ã縦çµã¯ã©ã¹ã®ä¸ã§ã
+\Pkg{geometry}ããã±ã¼ã¸ãå©ç¨ã§ããããã«ããã\Pkg{lltjp-geometry}ããã±ã¼ã¸ãèªåçã«å½ã¦ã¦ããï¼
+
+ãªãï¼\Pkg{lltjp-geometry}ããã±ã¼ã¸ã¯\pTeX ç³»åã§ãæ示çã«èªã¿è¾¼ããã¨ã«ãã£ã¦
+使ç¨å¯è½ã§ããï¼è©³ç´°ã注æäºé
㯠\url{lltjp-geometry.pdf} ãåç
§ã®ãã¨ï¼
+%
+
%\section{Changing Fonts}
%\section{ãã©ã³ãã®å¤æ´}
@@ -1038,8 +1086,7 @@ plain \TeX ã§åæãã©ã³ããå¤æ´ããããã«ã¯ï¼
For \LaTeXe, \LuaTeX-ja adopted most of the font selection system of \pLaTeXe\ (in \texttt{plfonts.dtx}).
%
%<*ja>
-\LaTeXe ã«ã¤ãã¦ã¯ï¼\LuaTeX-jaã§ã¯ãã©ã³ãé¸æã·ã¹ãã ã\pLaTeXe\ (\texttt{plfonts.dtx})
-ã®å¤§é¨åããã®ã¾ã¾æ¡ç¨ãã¦ããï¼
+\LaTeX ã§ç¨ããéã«ã¯ï¼\pLaTeXe\ (\texttt{plfonts.dtx})ç¨ã®ãã©ã³ãé¸ææ©æ§ã®å¤§é¨åãæµç¨ãã¦ããï¼
%
\begin{itemize}
%<*en>
@@ -1048,8 +1095,8 @@ For \LaTeXe, \LuaTeX-ja adopted most of the font selection system of \pLaTeXe\ (
attributes of Japanese fonts.
%
%<*ja>
-\item \cs{fontfamily}, \cs{fontseries}, \cs{fontshape}, ããã¦
- \cs{selectfont} ãåæãã©ã³ãã®å±æ§ãå¤æ´ããããã«ä½¿ç¨ã§ããï¼
+\item åæãã©ã³ãã®å±æ§ãå¤æ´ããã«ã¯ï¼\cs{fontfamily}, \cs{fontseries}, \cs{fontshape}, ããã¦
+ \cs{selectfont} ãç¨ããï¼
%
%<*en>
@@ -1472,7 +1519,7 @@ In above table, starred fonts (KozGo\dots-Regular) are used for medium series of
\emph{if and only if \texttt{deluxe} option is specified}.
%
%<*ja>
-ä¸ã®è¡¨ã«ããã¦ï¼*ã¤ãã®ãã©ã³ã(KozGo\dots-Regular)ã¯ï¼\emph{\texttt{deluxe}ãªãã·ã§ã³éæå®æã«}
+ä¸ã®è¡¨ã«ããã¦ï¼*ã¤ãã®ãã©ã³ã(KozGo\dots-Regular)ã¯ï¼\emph{\texttt{deluxe}ãªãã·ã§ã³æå®æã«}
ã´ã·ãã¯ä½ç´°åã¨ãã¦ç¨ããããï¼
%
@@ -2267,7 +2314,7 @@ Japanese fonts&\Param{yjabaselineshift}
%
%<*ja>
åæãã©ã³ãã¨æ¬§æãã©ã³ããåãããããã«ã¯ï¼æã
ã©ã¡ããã®ãã¼ã¹ã©ã¤ã³ã®ç§»åã
-å¿
è¦ã«ãªãï¼\pTeX ã§ã¯ãã㯠\cs{ybaselineshift} ãè¨å®ãããã¨ã§
+å¿
è¦ã«ãªãï¼\pTeX ã§ã¯ãã㯠\cs{ybaselineshift}ï¼ã¾ãã¯\cs{tbaselineshift}ï¼ãè¨å®ãããã¨ã§
ãªããã¦ããï¼\textbf{ALchar}ã®ãã¼ã¹ã©ã¤ã³ããã®åã ãä¸ããï¼ï¼ãããï¼æ¥æ¬èªã主ã§ã¯ãªã
ææ¸ã«å¯¾ãã¦ã¯ï¼æ¬§æãã©ã³ãã§ã¯ãªãåæãã©ã³ãã®ãã¼ã¹ã©ã¤ã³ã移åããæ¹ãããï¼
ãã®ããï¼\LuaTeX-jaã§ã¯æ¬§æãã©ã³ãã®ãã¼ã¹ã©ã¤ã³ã®ã·ããé
@@ -2391,6 +2438,49 @@ $\Phi\vdash F(x)\ \hbox{for all}\ x\in A$
\end{table}
%
+%<*en>
+\subsection{\emph{kinsoku} parameters and OpenType features}
+Among parameters which related to Japanese word-wrapping process (\emph{kinsoku shori}),
+\begin{quote}
+ \Param{jaxspmode},~\Param{alxspmode}, \Param{prebreakpenalty},
+ \Param{postbreakpenalty}~and~\Param{kcatcode}
+\end{quote}
+are stored by each character codes. ...
+
+For example, a fullwidth katakana ``ã¢'' on line~10 in the below input is replaced to
+its halfwidth variant ``ï½±'', by \verb+hwid+ feature.
+However, the penalty inserted after it is 10 which is the \Param{postbreakpenalty} of
+``ã¢'', not 20.
+%
+%<*ja>
+\subsection{ç¦åå¦çé¢é£ãã©ã¡ã¼ã¿ã¨font feature}
+ç¦åå¦çã \Param{kanjiskip}, \Param{xkanjiskip} ã®æ¿å
¥ã«é¢é£ãããã©ã¡ã¼ã¿ã®ãã¡
+\begin{quote}
+ \Param{jaxspmode},~\Param{alxspmode}, \Param{prebreakpenalty},
+ \Param{postbreakpenalty}, \Param{kcatcode}
+\end{quote}
+ã¯ï¼æåã³ã¼ããã¨ã«è¨å®ããéã§ããï¼
+
+\Pkg{fontspec}ããã±ã¼ã¸ã使ãï¼\ref{ssec-fontspec}ç¯ï¼å ´åãªã©ï¼
+å種ã®OpenType featureãé©ç¨ãããã¨ãããã¨æããï¼å段è½ã«è¿°ã¹ããã©ã¡ã¼ã¿é¡ã¯ï¼
+\emph{OpenType featureã®é©ç¨åã®æåã³ã¼ãã«ãã£ã¦å¤å®ãããï¼}
+ä¾ãã°ï¼ä»¥ä¸ã®ä¾ã«ããã¦10è¡ç®ã®ãã¢ãã¯ï¼\verb+hwid+ featureã®é©ç¨ã«ããåè§ã«ã¿ã«ãã®ãï½±ã
+ã«ç½®ãæããï¼ãããï¼ãã®ç´å¾ã«æ¿å
¥ããã \Param{postbreakpenalty}ã¯ï¼ç½®æåã®ãã¢ãã«å¯¾ããå¤10ã§ããï¼
+%
+
+\begin{LTXexample}[width=0.2\textwidth]
+\ltjsetparameter{postbreakpenalty={`ã¢, 10}}
+\ltjsetparameter{postbreakpenalty={`ï½±, 20}}
+
+\newcommand\showpostpena[1]{%
+ \leavevmode\setbox0=\hbox{#1\hbox{}}%
+ \unhbox0\setbox0=\lastbox\the\lastpenalty}
+
+\showpostpena{ã¢},
+\showpostpena{ï½±},
+{\addjfontfeatures{CharacterWidth=Half}\showpostpena{ã¢}}
+\end{LTXexample}
+
\clearpage
%\part{Reference}
%\part{ãªãã¡ã¬ã³ã¹}
@@ -2574,7 +2664,7 @@ for \LuaTeX, \emph{to match the \cs{catcode} setting with that of \XeTeX.}
%&\bf row&\bf col.&\bf \pTeX&\bf \upTeX&\bf\LuaTeX-ja\\
%&\bf åº&\bf ç¹&\bf \pTeX&\bf \upTeX&\fontseries{b}\selectfont\LuaTeX-ja\\
\midrule
-\D 3000&1&1&N&N&Y\\
+%\D 3000&1&1&N&N&Y\\
\D 30FB&1&6&N&Y&N\\
\D 309B&1&11&N&Y&N\\
\D 309C&1&12&N&Y&N\\
@@ -2582,16 +2672,18 @@ for \LuaTeX, \emph{to match the \cs{catcode} setting with that of \XeTeX.}
\D FF3E&1&16&N&N&Y\\
\D FFE3&1&17&N&N&Y\\
\D FF3F&1&18&N&N&Y\\
-\D 30FD&1&19&N&Y&Y\\
-\D 30FE&1&20&N&Y&Y\\
-\D 309D&1&21&N&Y&Y\\
-\D 309E&1&22&N&Y&Y\\
+%\D 30FD&1&19&N&Y&Y\\
+%\D 30FE&1&20&N&Y&Y\\
+%\D 309D&1&21&N&Y&Y\\
+%\D 309E&1&22&N&Y&Y\\
\D 3003&1&23&N&N&Y\\
\D 4EDD&1&24&N&Y&Y\\
\D 3005&1&25&N&N&Y\\
\D 3006&1&26&N&N&Y\\
\D 3007&1&27&N&N&Y\\
\D 30FC&1&28&N&Y&Y\\
+\D FF0F&1&31&N&N&Y\\
+\D FF3C&1&32&N&N&Y\\
\bottomrule
\end{tabular}\qquad
\begin{tabular}{cccccc}
@@ -2599,8 +2691,6 @@ for \LuaTeX, \emph{to match the \cs{catcode} setting with that of \XeTeX.}
%&\bf row&\bf col.&\bf \pTeX&\bf \upTeX&\bf\LuaTeX-ja\\
%&\bf åº&\bf ç¹&\bf \pTeX&\bf \upTeX&\fontseries{b}\selectfont\LuaTeX-ja\\
\midrule
-\D FF0F&1&31&N&N&Y\\
-\D FF3C&1&32&N&N&Y\\
\D FF5C&1&35&N&N&Y\\
\D FF0B&1&60&N&N&Y\\
\D FF1D&1&65&N&N&Y\\
@@ -2618,7 +2708,6 @@ for \LuaTeX, \emph{to match the \cs{catcode} setting with that of \XeTeX.}
%\multicolumn{3}{c}{$\vphantom{\D 3000}$\hbox{}Cyrillic letters (row 7)}&N&N&Y\\
%\multicolumn{3}{c}{$\vphantom{\D 3000}$\hbox{}ã®ãªã·ã£æåï¼6åºï¼}&Y&N&Y\\
%\multicolumn{3}{c}{$\vphantom{\D 3000}$\hbox{}ããªã«æåï¼7åºï¼}&N&N&Y\\
-$\vphantom{\D 3000}$\\
\bottomrule
\end{tabular}\hss}\par
\end{table}
@@ -2645,8 +2734,6 @@ For the detail, see \url{https://github.com/h-kitagawa/kct}.
ç°ãªã£ã¦ããã¨ããã ããè¼ããã¨ï¼è¡¨\ref{table-kcat-diff}ã®ããã«ãªãï¼
ãã»ããããããããã ããé¤ãã°ï¼\LuaTeX-jaã§ã¯\upTeX ããå¤ãã®æåã
å¶å¾¡ç¶´ã«ä½¿ç¨å¯è½ã«ãªã£ã¦ããï¼
-\textbf{ç¹ã«éè¦ãªã®ã¯ï¼å
¨è§ç©ºç½(\texttt{U+3000})ã
-\LuaTeX-jaã§ã¯å¶å¾¡ç¶´ä¸ã«ä½¿ç¨å¯è½ã§ãããã¨ã§ããï¼}
JIS~X~0213ã®ç¯å²ã«åºããã¨ï¼å·®ç°ã¯ããã«å¤§ãããªãï¼
詳細ã«ã¤ãã¦ã¯ä¾ãã° \url{https://github.com/h-kitagawa/kct} ä¸ã®\
@@ -3035,28 +3122,27 @@ To access box dimensions \emph{with respect to current direction},
one have to use the following commands instead of \cs{wd} wtc.
\begin{cslist}
- \item[\cs{ltjgetwd}\{\}\textrm{, }\cs{ltjgetht}\{\}\textrm{, }%
- \cs{ltjgetdp}\{\}]
+ \item[\cs{ltjgetwd}\textrm{, }\cs{ltjgetht}\textrm{, }%
+ \cs{ltjgetdp}]
These commands return \emph{an internal dimension} of \cs{box} with respect to
the current direction. One can use these in \cs{dimexpr} primitive, as the followings.
\begin{lstlisting}
-\dimexpr 2\ltjgetwd{42}-3pt\relax, \the\ltjgetwd{1701}
+\dimexpr 2\ltjgetwd42-3pt\relax, \the\ltjgetwd1701
\end{lstlisting}
-By its implementaion, the argument must be grouped as \verb+\ltjgetwd{42}+,
-if the argument consists of more than one token.
+The following is an example.
\begin{LTXexample}[width=0.3\textwidth]
\parindent0pt
\setbox32767=\hbox{\yoko ãããã¿}
\fboxsep=0mm\fbox{\copy32767}
\vbox{\hsize=20mm
-\yoko YOKO \the\ltjgetwd{32767}, \\
- \the\ltjgetht{32767}, \\ \the\ltjgetdp{32767}.}
+\yoko YOKO \the\ltjgetwd32767, \\
+ \the\ltjgetht32767, \\ \the\ltjgetdp32767.}
\vbox{\hsize=20mm\raggedleft
-\tate TATE \the\ltjgetwd{32767}, \\
- \the\ltjgetht{32767}, \\ \the\ltjgetdp{32767}.}
+\tate TATE \the\ltjgetwd32767, \\
+ \the\ltjgetht32767, \\ \the\ltjgetdp32767.}
\vbox{\hsize=20mm\raggedleft
-\dtou DTOU \the\ltjgetwd{32767}, \\
- \the\ltjgetht{32767}, \\ \the\ltjgetdp{32767}.}
+\dtou DTOU \the\ltjgetwd32767, \\
+ \the\ltjgetht32767, \\ \the\ltjgetdp32767.}
\end{LTXexample}
\item[\cs{ltjsetwd}=\textrm{, }\cs{ltjsetht}=\textrm{, }%
@@ -3093,32 +3179,27 @@ These commands set the dimension of \cs{box}. Unlike \cs{ltjgetwd}, one doe
\begin{cslist}
- \item[\cs{ltjgetwd}\{\}\textrm{, }\cs{ltjgetht}\{\}\textrm{, }%
- \cs{ltjgetdp}\{\}]
+ \item[\cs{ltjgetwd}\textrm{, }\cs{ltjgetht}\textrm{, }%
+ \cs{ltjgetdp}]
ç¾å¨ã®çµæ¹åã«å¿ããããã¯ã¹ã®å¯¸æ³ã®åå¾ãè¡ãï¼çµæã¯å
é¨é·ãã§ããããï¼
\begin{lstlisting}
-\dimexpr 2\ltjgetwd{42}-3pt\relax, \the\ltjgetwd{1701}
+\dimexpr 2\ltjgetwd42-3pt\relax, \the\ltjgetwd1701
\end{lstlisting}
-ã®ããã« \cs{wd} ã®ä»£ããã¨ãã¦æ±ããã¨ãã§ããï¼å¼æ°ã1æ¡ã®å ´åã¯ï¼
-\cs{ltjgetwd3} ã®ããã«å¼æ°ãã°ã«ã¼ãã§æ¬ããªãã¦ãè¯ããï¼ããã§ãªãå ´åã¯
-ï¼é常ã®å½ä»¤ã¸ã®å¼æ°ã®ããã«ï¼\verb+\ltjgetwd{42}+ ã¨ã°ã«ã¼ãã«æ¬ãå¿
è¦ããã%
-\footnote{\cs{afterassignment} ãå©ç¨ãã¦å®è£
ããã°ã°ã«ã¼ãã«æ¬ãå¿
è¦ããªããªãã®ã§ã¯ï¼ã¨æ
- ããããããªããï¼ããã§ã¯æ¬æä¸ã«æ¸ããä¾ã®ããã« \cs{dimexpr} ä¸ã§ä½¿ç¨ã§ã
- ãªããªã£ã¦ãã¾ãï¼}ï¼
+ã®ããã« \cs{wd} ã®ä»£ããã¨ãã¦æ±ããã¨ãã§ããï¼
使ç¨ä¾ã¯ä»¥ä¸ã®éãã§ããï¼
\begin{LTXexample}[width=0.3\textwidth]
\parindent0pt
\setbox32767=\hbox{\yoko ãããã¿}
\fboxsep=0mm\fbox{\copy32767}
\vbox{\hsize=20mm
-\yoko YOKO \the\ltjgetwd{32767}, \\
- \the\ltjgetht{32767}, \\ \the\ltjgetdp{32767}.}
+\yoko YOKO \the\ltjgetwd32767, \\
+ \the\ltjgetht32767, \\ \the\ltjgetdp32767.}
\vbox{\hsize=20mm\raggedleft
-\tate TATE \the\ltjgetwd{32767}, \\
- \the\ltjgetht{32767}, \\ \the\ltjgetdp{32767}.}
+\tate TATE \the\ltjgetwd32767, \\
+ \the\ltjgetht32767, \\ \the\ltjgetdp32767.}
\vbox{\hsize=20mm\raggedleft
-\dtou DTOU \the\ltjgetwd{32767}, \\
- \the\ltjgetht{32767}, \\ \the\ltjgetdp{32767}.}
+\dtou DTOU \the\ltjgetwd32767, \\
+ \the\ltjgetht32767, \\ \the\ltjgetdp32767.}
\end{LTXexample}
\item[\cs{ltjsetwd}=\textrm{, }\cs{ltjsetht}=\textrm{, }%
@@ -4171,8 +4252,8 @@ we specify to
%<*ja>
\paragraph{æåã¯ã©ã¹ã®æ±ºå®}
-æåãããã®æåã®å±ããæåã¯ã©ã¹ãç®åºããéç¨ã¯å°ã
è¤éã§ããï¼
-次ã®å
容ãä¸é¨ã«å«ãã \texttt{jfm-test.lua} ãç¨ãã¦èª¬æããï¼
+æåãããã®æåã®å±ããæåã¯ã©ã¹ãç®åºããéç¨ã«ã¤ãã¦ï¼
+次ã®å
容ãå«ãã \texttt{jfm-test.lua} ãç¨ãã¦èª¬æããï¼
%
%<*en>
\paragraph{Character to character classes}
@@ -4216,17 +4297,17 @@ applying font features by \Pkg{luaotfload}}.
\item JFMã«ããã°ï¼ãã®ãï¾ãã®ã°ãªãã®æåã¯ã©ã¹ã¯2000ã§ããï¼
\item 以ä¸ã«ããæåã¯ã©ã¹2000ã¨ã¿ãªãããããï¼çµæã¨ãã¦ãï¾ãã®å¹
ã¯åè§ã ã¨èªèãããï¼
\end{enumerate}
-ãã®ä¾ã¯ï¼\emph{æåã¯ã©ã¹ã®æ±ºå®ã¯font featureã®é©ç¨ã«ããã°ãªãç½®æã®å¾ã«è¡ããã}ãã¨ã
+ãã®ä¾ã¯ï¼\emph{æåã¯ã©ã¹ã®æ±ºå®ã¯font featureã®é©ç¨ã«ããã°ãªãç½®æã®çµæã«åºã¥ã}ãã¨ã
示ãã¦ããï¼
%
%<*en>
-However, ...
-Consider the following input:
+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ã§ããå ´åã¯ï¼
-ç¶æ³ã¯ç°ãªãï¼
+ä½ãï¼JFMã«ãã£ã¦æ±ºã¾ãç½®æå¾ã®ã°ãªãã®æåã¯ã©ã¹ã0ã§ããå ´åã¯ï¼ç½®æåã®æåã¯ã©ã¹ãæ¡ç¨ããï¼
%
\begin{LTXexample}[width=0.3\textwidth]
\jfont\a=file:KozMinPr6N-Regular.otf:jfm=test;+vert
@@ -4234,11 +4315,11 @@ Consider the following input:
\end{LTXexample}
%<*en>
Here, the character class of the ideographic full stop ``ã''~(\texttt{U+3002}) is determined
-as following:
+as follows:
\begin{enumerate}
\item As the case of ``ã'', the ideographic full stop ``ã'' is converted to its vertical
- form ``\char"FE12''~(\texttt{U+FE12}).%"
-\item The character class of ``\char"FE12'' is \emph{zero}.
+ 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.
@@ -4706,8 +4787,8 @@ is the position of \verb+hpack_filter+ callback in the source
of \LuaTeX, see Section~\ref{sec-para}.
%
%<*ja>
-å
ã«è¿°ã¹ãããã«ï¼\LuaTeX-jaã®ã»ã¨ãã©ã®å
é¨ãã©ã¡ã¼ã¿ã«ã¢ã¯ã»ã¹ããã«ã¯
-\cs{ltjsetparameter} 㨠\cs{ltjgetparameter} ãç¨ããï¼
+å
ã«è¿°ã¹ãããã«ï¼\LuaTeX-jaã®å
é¨ãã©ã¡ã¼ã¿ã«ã¢ã¯ã»ã¹ããã«ã¯
+\cs{ltjsetparameter}ï¼ã¾ã㯠\cs{ltjglobalsetparameter}ï¼ã¨ \cs{ltjgetparameter} ãç¨ããï¼
\LuaTeX-jaã\pTeX ã®ãããªææ³ï¼ä¾ãã°ï¼\verb+\prebreakpenalty`ï¼=10000+ï¼ã
æ¡ç¨ããªãçç±ã®ä¸ã¤ã¯ï¼\LuaTeX ã®ã½ã¼ã¹ã«ããã \verb+hpack_filter+
ã³ã¼ã«ããã¯ã®ä½ç½®ã«ããï¼\ref{sec-para}ç« ãåç
§ï¼
@@ -4717,24 +4798,22 @@ of \LuaTeX, see Section~\ref{sec-para}.
\cs{ltjsetparameter} and \cs{ltjglobalsetparameter} are commands
for assigning parameters. These take one argument which is a
\texttt{=} list.
-The list of allowed keys are described in the next subsection.
The difference between
\cs{ltjsetparameter} and \cs{ltjglobalsetparameter} is only 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 assignment.
+They also obey the value of \cs{globaldefs}, like other assignments.
%
%<*ja>
\cs{ltjsetparameter} 㨠\cs{ltjglobalsetparameter} ã¯ãã©ã¡ã¼ã¿ã
-æå®ããããã®å½ä»¤ã§ããï¼ãããã¯\texttt{=}ã®ãªã¹ãã
-å¼æ°ã¨ãã¦ã¨ãï¼è¨±ããããã¼ã®ä¸è¦§ã¯æ¬¡ã®ç¯ã«ããï¼
+æå®ããããã®å½ä»¤ã§ï¼\texttt{=}ã®ãªã¹ãã
+å¼æ°ã¨ãã¦ã¨ãï¼
\cs{ltjsetparameter} 㨠\cs{ltjglobalsetparameter} ã®éãã¯ã¹ã³ã¼ãã®
éãã®ã¿ã§ï¼
-\cs{ltjsetparameter} ã¯ãã¼ã«ã«ãªæå®ï¼\cs{ltjglobalsetparameter} ã¯
-ã°ãã¼ãã«ãªæå®ãè¡ãï¼
-ãããã¯ä»ã®ãã©ã¡ã¼ã¿æå®ã¨åæ§ã« \cs{globaldefs} ã®å¤ã«å¾ãï¼
+\cs{ltjsetparameter} ã¯ãã¼ã«ã«ãªè¨å®ãè¡ãã®ã«å¯¾ãï¼
+\cs{ltjglobalsetparameter} ã¯ã°ãã¼ãã«ãªè¨å®ãè¡ãï¼
+ã¾ãï¼ä»ã®ãã©ã¡ã¼ã¿æå®ã¨åæ§ã« \cs{globaldefs} ã®å¤ã«ãå¾ãï¼
%
%<*en>
@@ -4745,7 +4824,7 @@ in \pTeX, and symbols beside each parameter has the following meaning:
%<*ja>
以ä¸ã¯ \cs{ltjsetparameter} ã«æå®ãããã¨ãã§ãããã©ã¡ã¼ã¿ã®ä¸è¦§ã§ããï¼
[\cs{cs}]ã¯\pTeX ã«ããã対å¿ç©ã示ãï¼
-ã¾ãï¼ããããã®ãã©ã¡ã¼ã¿ã®å³ä¸ã«ããè¨å·ã«ã¯æ¬¡ã®æå³ãããï¼
+ã¾ãï¼ããããã®ãã©ã¡ã¼ã¿ã®å³ä¸ã®è¨å·ã«ã¯æ¬¡ã®æå³ãããï¼
%
\begin{itemize}
%<*en>
@@ -4786,7 +4865,7 @@ At the present version, the lowermost bit of indicates
(see the description of \Param{jcharwidowpenalty} above).
%
%<*ja>
-æåã³ã¼ããã®æåãæã¤ä»å çãªå±æ§å¤(attribute)ï¼
+æåã³ã¼ããã®æåãæã¤ä»å çãªå±æ§å¤ï¼
ç¾å¨ã®ãã¼ã¸ã§ã³ã§ã¯ï¼ã®æä¸ä½ããããï¼ãã®æåãå¥èªç¹ã¨
ã¿ãªããããã©ããã表ãã¦ããï¼ä¸ã®\Param{jcharwidowpenalty}ã®è¨è¿°ãåç
§ï¼ï¼
%
@@ -4803,7 +4882,15 @@ At the present version, the lowermost bit of indicates
\end{lstlisting}
ã¨ï¼æ大å¤ã®10000ãæ¨æºã§æå®ããã¦ããï¼ä»ã«ãï¼å°æ¸ãã®ã«ããªã©ï¼çµ¶å¯¾ç¦æ¢ã¨ã
ãããã§ã¯ãªããã§ããã°è¡é ã«ã¯ãã¦æ¬²ãããªãå ´åã«ï¼0ã¨
- 10000ã®éã®å¤ãæå®ããã®ãæç¨ã§ããã.
+ 10000ã®éã®å¤ãæå®ããã®ãæç¨ã§ãããï¼
+
+\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 ,
@@ -4813,8 +4900,15 @@ with one of closing brackets ``ã'', so \LuaTeX-ja sets
\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}
+%
\item[\DParam{postbreakpenalty}\,=\{,\}$^\ast$]
[\cs{postbreakpenalty}]\
@@ -4822,25 +4916,10 @@ by default.
%<*ja>
æåã³ã¼ãã®\textbf{JAchar}ãè¡æ«ã«ãããã¨ãææ¢ããããã«ï¼
ãã®æåã®å¾ã«æ¿å
¥/追å ãããããã«ãã£ã®éãæå®ããï¼
-
-\pTeX ã§ã¯ï¼\cs{prebreakpenalty}, \cs{postbreakpenalty}ã«ããã¦ï¼
-\begin{itemize}
-\item ä¸ã¤ã®æåã«å¯¾ãã¦ï¼pre, postã©ã¡ããä¸ã¤ããæå®ãããã¨ãã§ããªãã£
- ãï¼å¾ããæå®ããæ¹ã§ä¸æ¸ããããï¼ï¼
-\item pre, poståããã¦256æååã®æ
å ±ãæ ¼ç´ãããã¨ããã§ããªãã£ãï¼
-\end{itemize}
-ã¨ããå¶éããã£ããï¼\LuaTeX-jaã§ã¯ãããã®å¶éã¯è§£æ¶ããã¦ããï¼
%
%<*en>
Set a penalty which is inserted automatically after the character ,
to prevent a line ends with this character.
-\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}
%
\item[\DParam{jatextfont}\,=\{,\}$^\ast$]
@@ -4984,6 +5063,7 @@ the behavior of this assignment is undefined.
\end{cslist}
+
\subsection{\cs{ltjgetparameter}}
\label{ssec-getpar}
%<*en>
@@ -5003,8 +5083,8 @@ always takes a parameter name as first argument.
%<*en>
\emph{The return value of\/ \cs{ltjgetparameter} is
-always a string}. This is outputted by \texttt{tex.write()}, so any
-character other than space~``\texttt{\char32}''~(\texttt{U+0020}) has the category code
+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>
@@ -5036,7 +5116,7 @@ returns 1 or 0, not
%<*ja>
\verb+\ltjgetparameter{autospacing}+ 㨠\verb+\ltjgetparameter{autoxspacing}+ ã¯ï¼
\texttt{true}ã\texttt{false}ãè¿ãã®\emph{ã§ã¯ãªã}ï¼
-1ã¨0ã®ãããããè¿ããã¨ã«æ³¨æï¼
+1ã0ã®ãããããè¿ããã¨ã«æ³¨æï¼
%
\item
@@ -5045,7 +5125,7 @@ If first argument is one of the
following, an additional argument---a character code, for example---is needed.
%
%<*ja>
-第1å¼æ°ã次ã®ããããã®å ´åã«ã¯ï¼ããã«æåã³ã¼ãã第äºå¼æ°ã¨ãã¦ã¨ãï¼
+第1å¼æ°ã次ã®ããããã®å ´åã«ã¯ï¼ããã«æåã³ã¼ãã第2å¼æ°ã¨ãã¦ã¨ãï¼
%
\begin{quote}
\sffamily
@@ -5154,9 +5234,133 @@ by the following:
\verb+}}+\\\null\hfill\verb+% 0 if JAchar, 1 if ALchar+
\end{quote}
+%<*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}
+%
+%<*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} ã§èªã¿ããã°è¯ãï¼
+%
%\section{Other Commands for plain \TeX\ and \LaTeXe}
@@ -8100,7 +8304,7 @@ then the patch \Pkg{lltjp-listings} is loaded automatically at \verb+\begin{docu
æèããå¿
è¦ã¯ãªãï¼
%
-%\subsection{Notes}
+%\subsection{Notes and additional keys}
%\subsection{注æ}
%<*en>
\paragraph{Escaping to \LaTeX}
@@ -8142,6 +8346,20 @@ instead of ``\verb+\ã»ã+''.
ã\cs{}\IVSA FFFFFãã¨ããcontrol symbolãå®è¡ããããã¨ã«ãªãï¼
%
+%<*en>
+\paragraph{Variation selectors}
+\Pkg{lltjp-listings} add two keys, namely \texttt{vsraw}~and~\texttt{vscmd},
+which specify how variation selectors are treated in
+\texttt{lstlisting} or other enviroments.
+Note that these additional keys are not usable in the preamble,
+since \Pkg{lltjp-listings} is loaded at \verb+\begin{document}+.
+
+\texttt{vsraw} is a key which takes a boolean value, and its default value is
+false.
+\begin{itemize}
+ \item If the \texttt{vsraw} key is true, then
+variation selectors are ``combined'' with the previous character.
+%
%<*ja>
\paragraph{ç°ä½åã»ã¬ã¯ã¿ã®æ±ã}
\texttt{lstlisting} ç°å¢ãªã©ã®å
é¨ã«ããç°ä½åã»ã¬ã¯ã¿ãæ±ãããï¼
@@ -8154,21 +8372,31 @@ instead of ``\verb+\ã»ã+''.
\item trueã®å ´åã¯ï¼ç°ä½åã»ã¬ã¯ã¿ã¯ãç´åã®æåã«ç¶ãã¦ãåºåãããï¼
ãããIVSãµãã¼ãï¼\ref{ssec-ltjotf}ç¯ï¼ãæå¹ã«ãªã£ã¦ããå ´åã¯ï¼
以ä¸ã®ä¾ï¼å·¦å´ã¯å
¥åï¼å³å´ã¯ãã®åºåï¼ã®ããã«ãªãï¼
+%
\begin{LTXexample}
\begin{lstlisting}[vsraw=true]
èó åå¸ï¼èó 飾åºï¼è西
\end{lstlisting}
\end{LTXexample}
+%<*en>
+\item If the \texttt{vsraw} key is false, then
+variation selectors are typeset by an appropriate command, which is specified by
+ the \texttt{vscmd} key.
+The default setting of the \texttt{vscmd} key produces the following.
+%
+%<*ja>
\item falseã®å ´åã¯ï¼ç°ä½åã»ã¬ã¯ã¿ã¯é©å½ãªå½ä»¤ã«ãã£ã¦ãè¦ããå½¢ã§ãåºåãããï¼
ã©ã®ãããªå½¢ã§åºåãããããè¦å®ããã®ã \texttt{vscmd} ãã¼ã§ããï¼
\Pkg{lltjp-listings} ã®æ¨æºè¨å®ã§ã¯ä»¥ä¸ã®ä¾ã®å³å´ã®ããã«åºåãããï¼
+%
\begin{LTXexample}
\begin{lstlisting}[vsraw=false,
vscmd=\ltjlistingsvsstdcmd]
èó åå¸ï¼èó 飾åºï¼è西
\end{lstlisting}
\end{LTXexample}
-ã¡ãªã¿ã«ï¼æ¬ããã¥ã¡ã³ãã§ã¯æ¬¡ã®ããã«ãã¦ããï¼
+% ã¡ãªã¿ã«ï¼æ¬ããã¥ã¡ã³ãã§ã¯æ¬¡ã®ããã«ãã¦ããï¼
+% For example, the following code is the setting of the \texttt{vscmd} key in this document.
\begin{lstlisting}[numbers=left]
\def\IVSA#1#2#3#4#5{%
\textcolor{blue}{\raisebox{3.5pt}{\tt%
@@ -8182,10 +8410,56 @@ instead of ``\verb+\ã»ã+''.
\lstset{vscmd=\IVSB}
\end{lstlisting}
\end{itemize}
-æ¢å®ã®åºåå½ä»¤ã復活ããããå ´åã¯\ \verb+vsraw=\ltjlistingsvsstdcmd+\
+%<*en>
+The default output command of variation selectors is stored in \verb+\ltjlistingsvsstdcmd+.
+%
+%<*ja>
+æ¢å®ã®åºåå½ä»¤ã復活ããããå ´åã¯\ \verb+vscmd=\ltjlistingsvsstdcmd+\
ã¨ããã°è¯ãï¼
%
+%<*en>
+\paragraph{The \texttt{doubleletterspace} key}
+Even the column format is \texttt{[c]fixed}, sometimes characters are not vertically aligned.
+The following example is typeset with \texttt{basewidth=2em}, and
+you'll see the leftmost ``\texttt{H}'' are not vertically aligned.
+\begin{lstlisting}[basewidth=2em, basicstyle=\tt,numbers=left]
+:H:
+:HHHH:
+\end{lstlisting}
+
+\Pkg{lltjp-listing} adds the \texttt{doubleletterspace} key (not activated by default, for
+compatibility) to
+improve the situation, namely doubles inter-character space in each output unit.
+With this key, the above input now produces better output.
+\begin{lstlisting}[basewidth=2em, basicstyle=\tt,numbers=left, doubleletterspace]
+:H:
+:HHHH:
+\end{lstlisting}
+%
+%<*ja>
+\paragraph{\texttt{doubleletterspace}ãã¼}
+\Pkg{listings}ããã±ã¼ã¸ã§åæãã \texttt{[c]fixed} ã¨ãªã£ã¦ããå ´åã§ãï¼
+å ´åã«ãã£ã¦ã¯æåã縦ã«æããªãå ´åãããï¼
+ä¾ã以ä¸ã«ç¤ºããï¼ããã¯å¼·èª¿ããããã« \texttt{basewidth=2em} ãè¨å®ãã¦ããï¼
+\begin{lstlisting}[basewidth=2em, basicstyle=\tt,numbers=left]
+:H:
+:HHHH:
+\end{lstlisting}
+1è¡ç®ã¨2è¡ç®ã®ã\texttt{H}ãã®ä½ç½®ãæã£ã¦ããªããï¼
+ããã¯åºååä½ãã¨ã«ï¼å
é ã»æ«å°¾ã»åæåéã«åãéã®ç©ºç½ãæ¿å
¥ãããã¨ã«ããï¼
+
+\Pkg{lltjp-listing}ã§ã¯ï¼ãã®ãããªçç¶ãæ¹åãããããã« \texttt{doubleletterspace} ãã¼
+ã追å ããï¼æ¨æºã§ã¯äºææ§ã®ããã«ç¡å¹ã«ãªã£ã¦ããï¼ï¼ãã®ãã¼ãæå¹ã«ããã¨ï¼
+åºååä½ä¸ã®åæåéã®ç©ºç½ã2åã«ãããã¨ã§æåãæãããããã¦ããï¼
+ä¸ã¨åããã®ã \texttt{doubleletterspace} ãã¼ãæå¹ã«ãã¦çµãã ãã®ã以ä¸ã§ããï¼
+ãã¡ãã¨ã\texttt{H}ãã®ä½ç½®ãæã£ã¦ãããã¨ãåããï¼
+\begin{lstlisting}[basewidth=2em, basicstyle=\tt,numbers=left, doubleletterspace]
+:H:
+:HHHH:
+\end{lstlisting}
+%
+
%\subsection{Class of Characters}
%\subsection{æå種}
@@ -8307,7 +8581,7 @@ Prev&Kanji&\multicolumn{4}{c}{\hrulefill \ outputs\ \hrulefill}&collects\\
\end{itemize}
%<*en>
-Characters above \texttt{U+0080} \emph{except Variation Selectors}
+Characters above or equal to~\texttt{U+0080} \emph{except Variation Selectors}
are classified into above 5~classes by the following rules:
%
%<*ja>
@@ -8315,7 +8589,7 @@ are classified into above 5~classes by the following rules:
Letter, Other, Kanji, Open, Closeã®ã©ãã«å±ãããã¯æ¬¡ã«ãã£ã¦æ±ºã¾ãï¼
%
\begin{itemize}
-%\item \textbf{ALchar}s above \texttt{U+0080} are classified as Letter.
+%\item \textbf{ALchar}s above or equal to~\texttt{U+0080} are classified as Letter.
%\item ï¼\texttt{U+0080}以éã®ï¼\textbf{ALchar}ã¯ï¼ãã¹ã¦Letteræ±ãã§ããï¼
%\item \textbf{JAchar}s are classified in the order as follows:
@@ -8527,10 +8801,11 @@ OpenTypeãã©ã³ãã§ãTrueTypeãã©ã³ãã§ãIVSæ
å ±ãæ ¼ç´ããã¦
\texttt{fontloader} ã®å¼ã³åºãã§ããªãæéãæ¶è²»ãããã¨ããï¼
%%% to_table ã使ããªããããã¨ã§ï¼ã¡ã¢ãªä½¿ç¨éã¯æ¸ã£ã
IVSæ
å ±ããã£ãã·ã¥ã«ä¿åãããã¨ã§2åç®ä»¥éã®å®è¡æéãç¯ç´ãã¦ããï¼
+%
+%<*ja>
\section{è¤æ°ãã©ã³ãã®ãåæãï¼æªå®ï¼}
-
\section{\LuaTeX-jaã«ããããã£ãã·ã¥}
\Pkg{luaotfload}ããã±ã¼ã¸ãï¼åTrueTypeã»OpenTypeãã©ã³ãã®æ
å ±ã
ãã£ãã·ã¥ã¨ãã¦ä¿åãã¦ããã®ã¨åæ§ã®æ¹æ³ã§ï¼