OSDN Git Service

Updated the draft for post-proceedings.
authorHironori Kitagawa <h_kitagawa2001@yahoo.co.jp>
Sun, 6 Nov 2011 04:25:05 +0000 (13:25 +0900)
committerHironori Kitagawa <h_kitagawa2001@yahoo.co.jp>
Sun, 6 Nov 2011 04:25:05 +0000 (13:25 +0900)
doc/ajt-devel-ltja.tex

index a613b7e..c6896d2 100644 (file)
@@ -13,7 +13,7 @@
 
 %%% for LTXexample environment
 \usepackage{showexpl,lltjlisting}
 
 %%% for LTXexample environment
 \usepackage{showexpl,lltjlisting}
-\lstset{basicstyle=\ttfamily, width=0.3\textwidth}
+\lstset{basicstyle=\ttfamily\small, width=0.3\textwidth, basewidth=.5em}
 
 
 \usepackage{mflogo,booktabs}
 
 
 \usepackage{mflogo,booktabs}
 \DefineShortVerb{\|}
 
 %%% Mandatory article metadata %%%
 \DefineShortVerb{\|}
 
 %%% Mandatory article metadata %%%
-\title{The development of \LuaTeX-ja package}
-\author{Hironori Kitagawa}
+\title{Development of the \LuaTeX-ja package}
+\author{Hironori Kitagawa {\normalsize 北川 弘典}}
 \address{The \LuaTeX-ja project team}
 \email{h\_kitagawa2001@yahoo.co.jp}
 
 \keywords{\TeX, p\TeX, \LuaTeX, \LuaTeX-ja, Japanese}
 \abstract{%
 \address{The \LuaTeX-ja project team}
 \email{h\_kitagawa2001@yahoo.co.jp}
 
 \keywords{\TeX, p\TeX, \LuaTeX, \LuaTeX-ja, Japanese}
 \abstract{%
-The \LuaTeX-ja package is a macro package for typesetting Japanese documents under \LuaTeX.
-This packages has much flexibility of typesetting than p\TeX, and corrected some unwanted features of p\TeX.
-In this paper, we describe specifications, the current status and some internal processing codes of \LuaTeX-ja.
+The \LuaTeX-ja package is a macro package for typesetting Japanese
+documents under \LuaTeX.  This packages has much flexibility of
+typesetting than p\TeX, and corrected some unwanted features of p\TeX.
+In this paper, we describe specifications, the current status and some
+internal processing codes of \LuaTeX-ja.
 }
 
 \newcommand{\parname}[1]{\textsf{#1}}
 }
 
 \newcommand{\parname}[1]{\textsf{#1}}
-
+\newcommand{\jstrut}{\vrule width0pt height\cht depth\cdp}
+\newcommand{\imagfm}[1]{\ifvmode\leavevmode\fi%
+  \hbox{\fboxsep=0pt\fbox{\setbox0=\hbox{#1}\copy0\kern-\wd0
+  \vrule width \wd0 height 0.4pt depth0.4pt}}}
 \begin{document}
 
 %%% Do not forget to start with \maketitle!
 \begin{document}
 
 %%% Do not forget to start with \maketitle!
@@ -57,20 +62,25 @@ these alternative methods did not became a majority. On the one hand,
 p\TeX\ enables us to produce high-quality documents, but on the other
 hand, p\TeX\ is left behind from the extensions of \TeX\ such as \eTeX\
 and \pdfTeX, and the diffusion of UTF-8 encoding.  In recent years, the
 p\TeX\ enables us to produce high-quality documents, but on the other
 hand, p\TeX\ is left behind from the extensions of \TeX\ such as \eTeX\
 and \pdfTeX, and the diffusion of UTF-8 encoding.  In recent years, the
-situation become better, because of the developments of |ptexenc|~\cite{ptexenc} by Nobuyuki Tsuchimura, 
-$\varepsilon$-p\TeX~\cite{eptex} by the author,~and
-up\TeX~\cite{uptex} by Takuji Tanaka.
+situation become better, because of the developments of
+|ptexenc|~\cite{ptexenc} by Nobuyuki~Tsuchimura,
+$\varepsilon$-p\TeX~\cite{eptex} by the author,~and up\TeX~\cite{uptex}
+by Takuji~Tanaka.
 
 However, there are still lag now. 
 
 
 
 However, there are still lag now. 
 
 
-Before this \LuaTeX-ja package, there were several attempts to typeset Japanese documents under \LuaTeX.
-Here we cite three examples:
+Before this \LuaTeX-ja package, there were several attempts to typeset
+Japanese documents under \LuaTeX.  Here we cite three examples:
 \begin{itemize}
 \begin{itemize}
-\item |luaums.sty|~\cite{luaums} developed by the author. This experimental package is for creating a Japanese-based presentation under \LuaTeX.
-\item |luajalayout| package\cite{luajalayout}, formerly known as the |jafontspec| package, by Kazuki Maeda. 
-This package is based on \LaTeXe\ and |fontspec| package.
-\item |luajp-test| package\cite{luajp-test}, a test package made by Atsuhito Kohda, based on articles on the web page~\cite{joylua}.
+\item |luaums.sty|~\cite{luaums} developed by the author. This
+      experimental package is for creating a Japanese-based presentation
+      under \LuaTeX.
+\item |luajalayout| package\cite{luajalayout}, formerly known as the
+      |jafontspec| package, by Kazuki Maeda. This package is based on
+      \LaTeXe\ and |fontspec| package.
+\item |luajp-test| package\cite{luajp-test}, a test package made by
+      Atsuhito Kohda, based on articles on the web page~\cite{joylua}.
 \end{itemize}
 
 
 \end{itemize}
 
 
@@ -79,7 +89,7 @@ This package is based on \LaTeXe\ and |fontspec| package.
 The first aim of the project is to implement features (from the
 ''primitive'' level) of p\TeX as macros under \LuaTeX, so \LuaTeX-ja is
 much affected by p\TeX.  However, as the development proceeds, some
 The first aim of the project is to implement features (from the
 ''primitive'' level) of p\TeX as macros under \LuaTeX, so \LuaTeX-ja is
 much affected by p\TeX.  However, as the development proceeds, some
-technical/conceptual difficulties are arised. Hence we changed the aim
+technical/conceptual difficulties are arisen. Hence we changed the aim
 of the project.
 \begin{itemize}
 \item\emph{\LuaTeX-ja offers more flexibility of typesetting than that by
 of the project.
 \begin{itemize}
 \item\emph{\LuaTeX-ja offers more flexibility of typesetting than that by
@@ -105,21 +115,34 @@ p\TeX has some flexibility of typesetting, by changing internal
 
 
 \subsection{Contents of this Paper}
 
 
 \subsection{Contents of this Paper}
-Here we describe the contents of the rest of this paper briefly. 
-In Section~2, we describe major differences between p\TeX\ and \LuaTeX-ja,
+Here we describe the contents of the rest of this paper briefly.  In
+Section~2, we describe major differences between p\TeX\ and \LuaTeX-ja,
 which is introduced. Some of them are due to specifications of callbacks
 in \LuaTeX\ (\emph{i.e.}, technical reason), and others are which we
 thought which are better to be changed, for ``natural''
 which is introduced. Some of them are due to specifications of callbacks
 in \LuaTeX\ (\emph{i.e.}, technical reason), and others are which we
 thought which are better to be changed, for ``natural''
-specifications. In Section~3, we show the current status of the \LuaTeX-ja project.
+specifications. In Section~3, we show the current status of the
+\LuaTeX-ja project.
+
+For implementing features into \LuaTeX-ja, we had to use some tricks in
+Lua scripts.  In Section~4, we describe several these tricks and
+internal processing methods.  We hope that the materials in this section
+have good applications.
 
 
-For implementing features into \LuaTeX-ja, we had to use some tricks in Lua scripts. 
-In Section~4, we describe several these tricks and internal processing methods.
-We hope that the materials in this section have good applications.
+\subsection*{About the Project}
+This \LuaTeX-ja project is hosted by SourceForge.jp. The official wiki
+is located on
+\url{http://sourceforge.jp/projects/luatex-ja/wiki/FrontPage}.  There is
+no stable version at Oct.\ 6, 2011, but the development source can be
+obtained from the git repository.
+Members of the project are as follows (in random order):
+Hironori Kitagawa, Kazuki Maeda, Takayuki Yato,
+Yusuke Kuroki, Noriyuki Abe, Munehiro Yamamoto, Tomoaki Honda, and~Shuzaburo Saito.
 
 
 \section{Major differences with \pTeX}
 
 
 \section{Major differences with \pTeX}
-In this section, we breifly look at ** major differences between p\TeX\ and \LuaTeX-ja.
-For genral information of Japanese typesetting and the facts about p\TeX, please see Okumara~\cite{ptexjp}.
+In this section, we briefly look at ** major differences between p\TeX\
+and \LuaTeX-ja.  For general information of Japanese typesetting and the
+facts about p\TeX, please see Okumara~\cite{ptexjp}.
 
 
 \subsection{Names of Control Sequences}
 
 
 \subsection{Names of Control Sequences}
@@ -128,10 +151,11 @@ Since p\TeX\ is a engine modification of Knuth's original \TeX82 engine,
 some primitives added in it takes a form that cannot be simulated by a
 macro.  For example, an additional primitive
 |\prebreakpenalty|$\langle\hbox{\it
 some primitives added in it takes a form that cannot be simulated by a
 macro.  For example, an additional primitive
 |\prebreakpenalty|$\langle\hbox{\it
-char\_code}\rangle$|[=]|$\langle\hbox{\it penalty}\rangle$ in p\TeX\ sets
-the amount of penalty inserted before $\langle\hbox{\it
-char\_code}\rangle$ to $\langle\hbox{\it penalty}\rangle$, and |\prebreakpenalty|$\langle\hbox{\it
-char\_code}\rangle$ can be also used for retrieving the value.
+char\_code}\rangle$|[=]|$\langle\hbox{\it penalty}\rangle$ in p\TeX\
+sets the amount of penalty inserted before $\langle\hbox{\it
+char\_code}\rangle$ to $\langle\hbox{\it penalty}\rangle$, and
+|\prebreakpenalty|$\langle\hbox{\it char\_code}\rangle$ can be also used
+for retrieving the value.
 
 Moreover, there are some parameters for Japanese typesetting which were
 mere internal integers, dimensions, or~skips in p\TeX\ that cannot be
 
 Moreover, there are some parameters for Japanese typesetting which were
 mere internal integers, dimensions, or~skips in p\TeX\ that cannot be
@@ -158,13 +182,13 @@ of most parameters in \LuaTeX-ja are summarized into 3~control sequences:
       a string.
 \end{itemize}
 
       a string.
 \end{itemize}
 
-\subsection{Linebreak after a Japanese Character}
+\subsection{Line break after a Japanese Character}
 \label{ssec-line} 
 
 \label{ssec-line} 
 
-Japanese texts can linebreak almost everywhere, in contrast with
-alphabetic texts can linebreak only between words (or use
+Japanese texts can break lines almost everywhere, in contrast with
+alphabetic texts can break lines only between words (or use
 hyphenation). Hence, p\TeX's input processor is modified so that a
 hyphenation). Hence, p\TeX's input processor is modified so that a
-linebreak after a Japanese character doesn't emit a space. However,
+line break after a Japanese character doesn't emit a space. However,
 there is no way to customize the input processor of \LuaTeX, other than
 hack its CWEB-source. All we can do is to modify an input line before
 when \LuaTeX\ begin to process it, inside the |process_input_buffer|
 there is no way to customize the input processor of \LuaTeX, other than
 hack its CWEB-source. All we can do is to modify an input line before
 when \LuaTeX\ begin to process it, inside the |process_input_buffer|
@@ -173,33 +197,35 @@ callback.
 Hence, in \LuaTeX-ja, a comment letter (we reserve U+FFFFF for this
 purpose) will be appended to an input line, if this ends with a Japanese
 character\footnote{Strictly speaking, it also requires that the catcode
 Hence, in \LuaTeX-ja, a comment letter (we reserve U+FFFFF for this
 purpose) will be appended to an input line, if this ends with a Japanese
 character\footnote{Strictly speaking, it also requires that the catcode
-of the endline character is 5~(\emph{end-of-line}). This condition is useful under the
-verbatim environment.}. One might jump to a conclusion that the
-treatment of a linebreak by p\TeX\ and that of \LuaTeX-ja is totally same,
-but they are different in the respect that \LuaTeX-ja's judgement
-whether a comment letter will be appended the line is done \emph{before}
-the line is actually processed by \LuaTeX.
+of the end-line character is 5~(\emph{end-of-line}). This condition is
+useful under the verbatim environment.}. One might jump to a conclusion
+that the treatment of a line break by p\TeX\ and that of \LuaTeX-ja is
+totally same, but they are different in the respect that \LuaTeX-ja's
+judgement whether a comment letter will be appended the line is done
+\emph{before} the line is actually processed by \LuaTeX.
 
 Figure~\ref{fig-linebreak} shows an example; the command at the first
 line marks most of Japanese characters as ``non-Japanese character''. In
 other words, from this command onward, the letter `あ' will be treated
 as an alphabetic character by \LuaTeX-ja. Then, it is natural to occur a
 
 Figure~\ref{fig-linebreak} shows an example; the command at the first
 line marks most of Japanese characters as ``non-Japanese character''. In
 other words, from this command onward, the letter `あ' will be treated
 as an alphabetic character by \LuaTeX-ja. Then, it is natural to occur a
-space between `あ' and `y' in the output, where the actual output in the figure does
-not so.  This is because `あ' is considered to be a Japanese character
-by \LuaTeX-ja, when \LuaTeX-ja does a decision whether U+FFFFF will be added to the input line~2.
+space between `あ' and `y' in the output, where the actual output in the
+figure does not so.  This is because `あ' is considered to be a Japanese
+character by \LuaTeX-ja, when \LuaTeX-ja does a decision whether U+FFFFF
+will be added to the input line~2.
 \begin{figure}
 \begin{LTXexample}
 \font\x=IPAMincho \x
 \ltjsetparameter{jacharrange={-6}}xあ
 y
 \end{LTXexample}
 \begin{figure}
 \begin{LTXexample}
 \font\x=IPAMincho \x
 \ltjsetparameter{jacharrange={-6}}xあ
 y
 \end{LTXexample}
-\caption{A notable sample showing the treatment of a linebreak after a Japanese character.}\label{fig-linebreak}
+\caption{A notable sample showing the treatment of a line break after a
+Japanese character.}\label{fig-linebreak}
 \end{figure}
 
 \subsection{Separation between ``real'' fonts and Metrics}
 \label{ssec-sepmet}
 
 \end{figure}
 
 \subsection{Separation between ``real'' fonts and Metrics}
 \label{ssec-sepmet}
 
-Traditionally, most Japanese fonts used in typesetting are monospaced,
+Traditionally, most Japanese fonts used in typesetting are not proportional,
 that is, most glyphs have same size (in most cases,
 square-shaped). Hence, it is not rare that the contents of different
 JFMs are totally same, and only differ in their names. For example, the
 that is, most glyphs have same size (in most cases,
 square-shaped). Hence, it is not rare that the contents of different
 JFMs are totally same, and only differ in their names. For example, the
@@ -218,17 +244,21 @@ has to only copy and rename some JFM (\emph{e.g.},~copy |jis.tfm| to
 Considering this situation, we decided to separate ``real'' fonts and
 metrics in \LuaTeX-ja, as shown in Figure~\ref{fig-jfdef};
 \begin{itemize}
 Considering this situation, we decided to separate ``real'' fonts and
 metrics in \LuaTeX-ja, as shown in Figure~\ref{fig-jfdef};
 \begin{itemize}
-\item a control sequence |\jfont| must be used for japanese fonts, instead of |\font|.
+\item a control sequence |\jfont| must be used for Japanese fonts, instead of |\font|.
 \item \LuaTeX-ja automatically loads the |luaotfload| package, so
       |file:| prefix and features can be used as the line~1 in
       Figure~\ref{fig-jfdef}.
 \item The |jfm| key specifies the metric for the font. In
 \item \LuaTeX-ja automatically loads the |luaotfload| package, so
       |file:| prefix and features can be used as the line~1 in
       Figure~\ref{fig-jfdef}.
 \item The |jfm| key specifies the metric for the font. In
-      Figure~\ref{fig-jfdef}, both fonts will use a metric stored in a Lua script named 
-      |jfm-ujis.lua|. This metric is the standard metric in  \LuaTeX-ja, and is based on JFMs used in the \emph{otf} package~\cite{otf}.
-\item The |psft:| prefix can be used to specify name-only, noembedded
+      Figure~\ref{fig-jfdef}, both fonts will use a metric stored in a
+      Lua script named |jfm-ujis.lua|. This metric is the standard
+      metric in \LuaTeX-ja, and is based on JFMs used in the \emph{otf}
+      package~\cite{otf}.
+\item The |psft:| prefix can be used to specify name-only, non-embedded
       fonts. 
 \end{itemize}
       fonts. 
 \end{itemize}
-We note that |-kern| in features is important, since if kerning information from real font itself will clash with spacing from the metric.
+We note that |-kern| in features is important, since if kerning
+information from real font itself will clash with spacing from the
+metric.
 
 \begin{figure}
 \begin{verbatim}
 
 \begin{figure}
 \begin{verbatim}
@@ -240,6 +270,8 @@ We note that |-kern| in features is important, since if kerning information from
 \end{figure}
 
 \subsection{Insertion of Kerns and/or Glues for Japanese Typesetting: the Timing}
 \end{figure}
 
 \subsection{Insertion of Kerns and/or Glues for Japanese Typesetting: the Timing}
+\label{ssec-jglue}
+
 As described in \cite{luatexref}, \LuaTeX's kerning and ligaturing
 process is totally different from that of \TeX82.
 \TeX82's process is done just when a (sequence of) character is appended
 As described in \cite{luatexref}, \LuaTeX's kerning and ligaturing
 process is totally different from that of \TeX82.
 \TeX82's process is done just when a (sequence of) character is appended
@@ -255,9 +287,12 @@ typesetting will be divided into the following three categories:
 \begin{description}
 \item[Glue (or Kern) from the Metric of Japanese Fonts] 
 \item[Default Glue Between a Japanese Character and an Alphabetic Character] 
 \begin{description}
 \item[Glue (or Kern) from the Metric of Japanese Fonts] 
 \item[Default Glue Between a Japanese Character and an Alphabetic Character] 
-Usually 1/4 of fullwidth with some stretch and shrink for justifying each line.
+Usually 1/4 of full-width with some stretch and shrink for justifying
+          each line.
 \item[Default Glue Between Two Consecutive Japanese Characters] 
 \item[Default Glue Between Two Consecutive Japanese Characters] 
-The main reason of this glue is to enable line-breaking almost everywhere in Japanese texts. In most cases, its natural width is zero, and
+The main reason of this glue is to enable line-breaking almost
+          everywhere in Japanese texts. In most cases, its natural
+          width is zero, and
 some stretch/shrink for justifying each line. 
 \end{description}
 In p\TeX, these three kinds of glues are treated differently. The first
 some stretch/shrink for justifying each line. 
 \end{description}
 In p\TeX, these three kinds of glues are treated differently. The first
@@ -268,18 +303,20 @@ In p\TeX, these three kinds of glues are treated differently. The first
  short) is inserted just before `hpack' or line-breaking of a paragraph;
  this timing is somewhat similar to that of \LuaTeX's kerning
  process. The third category (\emph{kanjiskip}, for short) is not
  short) is inserted just before `hpack' or line-breaking of a paragraph;
  this timing is somewhat similar to that of \LuaTeX's kerning
  process. The third category (\emph{kanjiskip}, for short) is not
- appeared as a node anywhere; only appears implicitly in calculation of the
width of a horizontal box or that of linebreaking. These specifications made
- p\TeX's behavior very hard to understand.
+ appeared as a node anywhere; only appears implicitly in calculation of
the width of a horizontal box or that of breaking lines. These
specifications made p\TeX's behavior very hard to understand.
 
 \LuaTeX-ja inserts glues in all three categories simultaneously inside
 |hpack_filter| and |pre_linebreak_filter| callbacks.  The reasons of
 this specification are to behave like alphabetic characters in \LuaTeX\
 (as described in the first paragraph), and to clarify the specification
 
 \LuaTeX-ja inserts glues in all three categories simultaneously inside
 |hpack_filter| and |pre_linebreak_filter| callbacks.  The reasons of
 this specification are to behave like alphabetic characters in \LuaTeX\
 (as described in the first paragraph), and to clarify the specification
-for \LuaTeX-ja's process. 
+for \LuaTeX-ja's process.
 
 \subsection{Insertion of Kerns and/or Glues for Japanese Typesetting: the Spec}
 
 \subsection{Insertion of Kerns and/or Glues for Japanese Typesetting: the Spec}
-\begin{figure}
+\begin{table}
+\caption{Examples of differences between  p\TeX\ and \LuaTeX-ja,}
+\label{tab-jfmglue}
 \begin{center}
 \begin{tabular}{llllllll}
 \toprule
 \begin{center}
 \begin{tabular}{llllllll}
 \toprule
@@ -290,45 +327,44 @@ p\TeX      &あ】\hbox{}【〙\hbox{}〘&い』\/a   &う)\hbox{}(   &え
 \bottomrule
 \end{tabular}
 \end{center}
 \bottomrule
 \end{tabular}
 \end{center}
-\caption{Examples of differences between  p\TeX\ and \LuaTeX-ja,}
-\label{fig-jfmglue}
-\end{figure}
+\end{table}
 
 \begin{figure}
 \begin{center}
 
 \begin{figure}
 \begin{center}
-\fontsize{40}{40}\selectfont\fboxsep=0mm
-\fbox{\vrule width0pt height\cht depth\cdp あ}%
-\fbox{\vrule width0pt height\cht depth\cdp 】\inhibitglue}%
-\fbox{\vrule width0pt height\cht depth\cdp\kern.5\zw}%
-\fbox{\vrule width0pt height\cht depth\cdp\kern.5\zw}%
-\fbox{\vrule width0pt height\cht depth\cdp\hbox{}\inhibitglue【}%
-\fbox{\vrule width0pt height\cht depth\cdp 〙\inhibitglue}%
-\fbox{\vrule width0pt height\cht depth\cdp\kern.5\zw}%
-\fbox{\vrule width0pt height\cht depth\cdp\kern.5\zw}%
-\fbox{\vrule width0pt height\cht depth\cdp \hbox{}\inhibitglue〘}%
+\fontsize{40}{40}\selectfont
+\imagfm{\jstrut あ}%
+\imagfm{\jstrut 】\inhibitglue}%
+\imagfm{\jstrut\kern.5\zw}%
+\imagfm{\jstrut\kern.5\zw}%
+\imagfm{\jstrut\hbox{}\inhibitglue【}%
+\imagfm{\jstrut 〙\inhibitglue}%
+\imagfm{\jstrut\kern.5\zw}%
+\imagfm{\jstrut\kern.5\zw}%
+\imagfm{\jstrut \hbox{}\inhibitglue〘}%
 \end{center}
 \end{center}
-\caption{Detail of (1) in Figure~\ref{fig-jfmglue}.}
+\caption{Detail of (1) in Table~\ref{tab-jfmglue}.}
 \label{fig-ptexjfm}
 \end{figure}
 
 \label{fig-ptexjfm}
 \end{figure}
 
-Now we will take a look inside the insertion process itself
+Now we will take a look inside the insertion process itself, and describe three points.
 
 \begin{description}
 \item[Ignored Nodes]
 As noted in the previous subsection, the insertion process in p\TeX\ is
           interrupted by saying |{}| or anything else. This leads the
 
 \begin{description}
 \item[Ignored Nodes]
 As noted in the previous subsection, the insertion process in p\TeX\ is
           interrupted by saying |{}| or anything else. This leads the
-          second row in Figure~\ref{fig-jfmglue}, or
-          Figure~\ref{fig-ptexjfm}. ``The process is interrupted'' means that p\TeX\
-          does not think the letter `】\inhibitglue' is followed by `\inhibitglue【', hence two
-          half-width glues are inserted between between `】\inhibitglue' and `\inhibitglue【',
-          where one is from `】\inhibitglue' and another is from `\inhibitglue【'.
-
+          second row in Table~\ref{tab-jfmglue}, or
+          Figure~\ref{fig-ptexjfm}. ``The process is interrupted''
+          means that p\TeX\ does not think the letter `】\inhibitglue'
+          is followed by `\inhibitglue【', hence two half-width glues
+          are inserted between between `】\inhibitglue' and
+          `\inhibitglue【', where one is from `】\inhibitglue' and
+          another is from `\inhibitglue【'.
 
           On the other hand, in \LuaTeX-ja, the process is done inside
           |hpack_filter| and |pre_linebreak_filter| callbacks. Hence,
           \emph{anything that does not make any nodes will be
           ignored,}\ in \LuaTeX-ja, as shown in (1) in
 
           On the other hand, in \LuaTeX-ja, the process is done inside
           |hpack_filter| and |pre_linebreak_filter| callbacks. Hence,
           \emph{anything that does not make any nodes will be
           ignored,}\ in \LuaTeX-ja, as shown in (1) in
-          Figure~\ref{fig-jfmglue}. \LuaTeX-ja also ignores any nodes
+          Table~\ref{tab-jfmglue}. \LuaTeX-ja also ignores any nodes
           which does not make any contribution to current horizontal
           list---\emph{ins\_node}, \emph{adjust\_node},
           \emph{mark\_node}, \emph{whatsit\_node} and
           which does not make any contribution to current horizontal
           list---\emph{ins\_node}, \emph{adjust\_node},
           \emph{mark\_node}, \emph{whatsit\_node} and
@@ -339,14 +375,14 @@ By the way, around a \emph{glyph\_node} $p$ there may be some nodes
           positioning it, and kerns from italic correction for $p$, and
           it is natural that these attachments should be ignored in the
           process. Hence \LuaTeX-ja takes this approach, as the latest
           positioning it, and kerns from italic correction for $p$, and
           it is natural that these attachments should be ignored in the
           process. Hence \LuaTeX-ja takes this approach, as the latest
-          version of p\TeX\ (p3.2). This explains  (2) in the figure. 
+          version of p\TeX\ (p3.2). This explains (2) in the figure.
 
 Summerizing, to 
 
 \item[Fonts with the Same Metric]
 Recall that \LuaTeX-ja separated ``real'' fonts and metrics, as in Subsection~\ref{ssec-sepmet}. 
 
 Summerizing, to 
 
 \item[Fonts with the Same Metric]
 Recall that \LuaTeX-ja separated ``real'' fonts and metrics, as in Subsection~\ref{ssec-sepmet}. 
-Consider the following input, where we assume that all Japanese fonts
-          use same metric, and |\gt| selects \emph{gothic} family:
+Consider the following input, where all Japanese fonts
+          use same metric (in \LuaTeX-ja), and |\gt| selects \emph{gothic} family:
 \begin{quote}
 \begin{verbatim}
 明朝)\gt (ゴシック
 \begin{quote}
 \begin{verbatim}
 明朝)\gt (ゴシック
@@ -365,46 +401,158 @@ in \LuaTeX-ja is:
 \begin{quote}
 \mc 明朝)\gt (ゴシック
 \end{quote}
 \begin{quote}
 \mc 明朝)\gt (ゴシック
 \end{quote}
+One might have the situation that this specification is not
+          suitable. \LuaTeX-ja offers a way to cope with this case, but
+          we leave it to the manual~\cite{man} of \LuaTeX-ja.
+
+\item[Fonts with Different Metrics] 
+In the case where two Japanese characters with different metrics and/or
+          different size is similar. Consider the following input where
+          the \emph{mincho} fmaily and the \emph{gothic} family use
+          different metrics:
+\begin{quote}
+\begin{verbatim}
+漢)\gt (漢)\large (大
+\end{verbatim}
+\end{quote}
+As he previous point, this input yields an output like the following by p\TeX:
+\begin{quote}
+\mc 漢)\hbox{}\gt (漢)\hbox{}\large (大
+\end{quote}
+We thought that amounts of spaces between parentheses in above
+          output. So we changed the default behavior of \LuaTeX-ja that
+          the amount of a glue between two Japanese characters with
+          different metrics is the average of a glue from the left
+          character and that from the right character. For example,
+          Figure~\ref{fig-diffmet} shows the output from above
+          input. The width of glue indicated `①' is half-width , and
+          the width of glue indicated `②' is about 0.55 times of
+          fullwidth. This default behavior can be changed by
+          |diffrentmet| parameter of \LuaTeX-ja.
 
 
+\begin{figure}
+\begin{center}
+\fontsize{40}{40}\selectfont
+\imagfm{\jstrut 漢}%
+\imagfm{\jstrut )\inhibitglue}%
+\imagfm{\jstrut\hbox to .5\zw{\hss\Large ①\hss}}%
+\imagfm{\jstrut\hbox{}\inhibitglue\gt (}%
+\imagfm{\jstrut\gt 漢}%
+\imagfm{\jstrut\gt )\inhibitglue}%
+\imagfm{\jstrut\hbox to .55\zw{\hss\Large ②\hss}}%
+\imagfm{\fontsize{48}{48}\selectfont\jstrut\gt\hbox{}\inhibitglue (}%
+\imagfm{\fontsize{48}{48}\selectfont\jstrut\gt 漢}%
+\end{center}
+\caption{Fonts with Different Metrics.}
+\label{fig-diffmet}
+\end{figure}
 \end{description}
 
 
 \section{Current Status of the Development}
 At the moment, \LuaTeX-ja can be used under plain \TeX, and under
 \end{description}
 
 
 \section{Current Status of the Development}
 At the moment, \LuaTeX-ja can be used under plain \TeX, and under
-\LaTeXe. Generally speaking, one has to read |luatexja.sty|, by
-|\input| command or |\usepackage|~(\LaTeXe) if you merely want to typeset Japanese character. 
-We look more detail by parts.
+\LaTeXe. Generally speaking, one has to read |luatexja.sty|, by |\input|
+command or |\usepackage|~(\LaTeXe) if you merely want to typeset
+Japanese character.  We look more detail by parts.
 
 \subsection{``Engine Extension''}
 The lowest part of \LuaTeX-ja corresponds the p\TeX\ extension as
 
 \subsection{``Engine Extension''}
 The lowest part of \LuaTeX-ja corresponds the p\TeX\ extension as
-\emph{\TeX\ engine}. The development of \LuaTeX-ja is started from this
-part.  We, the project menbers, think that this part is almost
+\emph{\TeX\ engine}. We, the project menbers, think that this part is almost
 done. Other features of \LuaTeX-ja which we have not described are the
 followings:
 \begin{description}
 done. Other features of \LuaTeX-ja which we have not described are the
 followings:
 \begin{description}
-\item[Adjusting the baseline of alphabetic characters and/or Japanese characters]
-
 \item[Setting the range of ``Japanese characters''] This feature is
           inspired by up\TeX. up\TeX\ has an additional primitive named
           |\kcatcode| for setting a character is treated as alphabetic
 \item[Setting the range of ``Japanese characters''] This feature is
           inspired by up\TeX. up\TeX\ has an additional primitive named
           |\kcatcode| for setting a character is treated as alphabetic
-          charaacter, \emph{kana}, \emph{kanji}, \emph{Hangul},
+          character, \emph{kana}, \emph{kanji}, \emph{Hangul},
           or~\emph{other CJK character}, and the assignment of
           |\kcatcode| can be done by a block of Unicode\footnote{There
           are some exceptions. For example, U+FF00--FFEF (Halfwidth and
           Fullwidth Forms) are divided into three blocks in up\TeX.}.
 
           or~\emph{other CJK character}, and the assignment of
           |\kcatcode| can be done by a block of Unicode\footnote{There
           are some exceptions. For example, U+FF00--FFEF (Halfwidth and
           Fullwidth Forms) are divided into three blocks in up\TeX.}.
 
-\LuaTeX-ja uses a slightly different approach. Because there are many Unicode
-          blocks in Basic Multilingual Plane which are not included in
-          most Japanese fonts, ...
-Furthermore, the basic Japanese character set JIS~X~0208 are not just
-          union of Unicode blocks. For example, the intersection of
-          JIS~X~0208 and Latin-1 Supplement consists of the following
-          characters:
-Considering these two points, ...
+\LuaTeX-ja uses a slightly different approach. Because there are many
+          Unicode blocks in Basic Multilingual Plane which are not
+          included in most Japanese fonts, ...  Furthermore, the basic
+          Japanese character set JIS~X~0208 are not just union of
+          Unicode blocks. For example, the intersection of JIS~X~0208
+          and Latin-1 Supplement is shown in Table~\ref{tab-inter}.
+          Considering these two points, to customize the range of
+          Japanese characters in \LuaTeX-ja, one must follow the
+          following steps:
+\begin{enumerate}
+\item Assign a range number to character codes. For example, the following
+      input assigns the number~10 to a unicode block ``Halfwidth and
+      Fullwidth Forms'' and ``\char"A7'' (the Section Sign):
+\begin{quote}
+\begin{verbatim}
+\ltjdefcharrange{10}{"FF00-"FFEF,"A7}
+\end{verbatim}
+\end{quote}
+\item Assigning to \textsf{jacharrange} ...
+\end{enumerate}
+
+\item[Baseline Shifting]
+In order to make a match between Japanese fonts and alphabetic fonts,
+          sometimes shifting the baseline of alphabetic characters is
+          needed. p\TeX\ has a dimension |\ybaselineshift|, which
+          corresponds the amount of shifting the baseline of alphabetic
+          characters. 
+
+\LuaTeX-ja extends p\TeX's |\ybaselineshift| to Japanese
+          characters. Namely, \LuaTeX-ja offers two parameters,
+          \emph{yjabaselineshift} and \emph{yalbaselineshift} for the
+          amount of shifting the baseline of Japanese characters and
+          that of alphabetic characters, respectively. The example
+          output is shown in Figure~\ref{fig-bls}. The left half is the
+          output when \emph{yjabaselineshift} is positive, hence the
+          baseline of Japanese characters is shifted down. On the other
+          hand, the right half is the output when
+          \emph{yalbaselineshift} is positive, hence the baseline of
+          alphabetic characters is shifted.
+
+\begin{figure}
+\begin{center}
+\fontsize{40}{40}\selectfont\fboxsep0mm
+\vrule width 0.9\textwidth height0.4pt depth0.4pt\kern-0.9\textwidth
+\hbox to 0.9\linewidth{%
+\hfil
+\raise-10pt\imagfm{\jstrut 漢}%
+\raise-10pt\imagfm{\jstrut 字}\hskip.25\zw%
+\imagfm{p}%
+\imagfm{h}%
+\hfil\hfil
+\imagfm{\jstrut 漢}%
+\imagfm{\jstrut 字}\hskip.25\zw%
+\raise-10pt\imagfm{p}%
+\raise-10pt\imagfm{h}%
+\hfil
+}
+\end{center}
+
+\caption{Baseline shifting.}
+\label{fig-bls}
+\end{figure}
 
 \end{description}
 Note that \LuaTeX-ja doesn't support for vertical typesetting, \emph{tategaki}, for now. 
 
 
 \end{description}
 Note that \LuaTeX-ja doesn't support for vertical typesetting, \emph{tategaki}, for now. 
 
+\begin{table}
+\caption{Intersection of JIS~X~0208 and Latin-1 Supplement.}
+\label{tab-inter}
+\begin{center}
+\begin{tabular}{llll}
+\char"A7 (U+00A7),&
+\char"A8 (U+00A8),&
+\char"B0 (U+00B0),&
+\char"B1 (U+00B1),\\
+\char"B4 (U+00B4),&
+\char"B6 (U+00B6),&
+\char"D7 (U+00B7),&
+\char"F7 (U+00D7)
+\end{tabular}
+\end{center}
+\end{table}
+
 \subsection{Patches for plain \TeX\ and \LaTeXe}
 p\TeX\ has patches for plain \TeX, namely |ptex.tex|, that for \LaTeXe\
 macro (this patch and \LaTeXe\ consist \emph{p\LaTeXe}), and
 \subsection{Patches for plain \TeX\ and \LaTeXe}
 p\TeX\ has patches for plain \TeX, namely |ptex.tex|, that for \LaTeXe\
 macro (this patch and \LaTeXe\ consist \emph{p\LaTeXe}), and
@@ -412,7 +560,39 @@ macro (this patch and \LaTeXe\ consist \emph{p\LaTeXe}), and
 shori}, the Japanese hyphenation.  We ported them to \LuaTeX-ja, except
 the codes related to vertical typesetting. We remark two points related to the porting:
 \begin{description}
 shori}, the Japanese hyphenation.  We ported them to \LuaTeX-ja, except
 the codes related to vertical typesetting. We remark two points related to the porting:
 \begin{description}
-\item[The Default Ranges of Japanese Characters] 
+\item[Default Range of Japanese Characters] 
+As described in the previos subsection, \LuaTeX-ja can customize the
+range of Japanese characters.  \LuaTeX-ja predefines 8~character ranges,
+as shown in Table~\ref{tab-chrrng}.  Almost of these ranges are just the
+union of Unicode blocks, and determined from the Adobe-Japan1 character
+set, and JIS~X~0208.  And, among these 8~ranges, the ranges~2, 3, 6, 7,
+and~8 are considered ranges of Japanese characters, and others are
+considered ranges of alphabetic characters.
+
+This default setting is suitable for Japanese-based documents, but it
+          causes that other packages with Unicode fonts do not work
+          correctly. For example, |\times| provided by the
+          |unicode-math| package is the character U+00D7, which belongs
+          to the range~8, and ...
+, the |fontspec| package, ... 
+...
+
+\begin{table}
+\caption{Predefined Ranges in \LuaTeX-ja}
+\label{tab-chrrng}
+\begin{center}
+\begin{tabular}{@{\bf}rl}
+1&(Additional) Latin characters which is not belonged in the range~8.\\
+2&Greek and Cyrillic letters.\\
+3&Punctuations and miscellaneous symbols.\\
+4&Unicode blocks which does not intersect with Adobe-Japan1.\\
+5&Surrogates and supplementary private use Areas.\\
+6&Characters used in Japanese typesetting.\\
+7&Characters possibly used in CJK typesetting, but not in Japanese.\\
+8&Characters in Table~\ref{tab-inter}.
+\end{tabular}
+\end{center}
+\end{table}
 
 
 \item[The behavior of\/ {\tt\char92fontfamily\/} command]
 
 
 \item[The behavior of\/ {\tt\char92fontfamily\/} command]
@@ -441,7 +621,8 @@ However, since \LuaTeX-ja is loaded as a package, it will not
           current alphabetic font family to $\langle\hbox{\it
           arg\/}\rangle$, if and only if:
 \begin{itemize}
           current alphabetic font family to $\langle\hbox{\it
           arg\/}\rangle$, if and only if:
 \begin{itemize}
-\item Alphabetic font family named $\langle\hbox{\it arg\/}\rangle$ in the current alphabetic encoding $\langle\hbox{\it enc\/}\rangle$.
+\item Alphabetic font family named $\langle\hbox{\it arg\/}\rangle$ in
+      the current alphabetic encoding $\langle\hbox{\it enc\/}\rangle$.
 \item A  font definition file $\langle\hbox{\it enc\/}\rangle\langle\hbox{\it
       arg\/}\rangle$|.fd| exists.
 \end{itemize}
 \item A  font definition file $\langle\hbox{\it enc\/}\rangle\langle\hbox{\it
       arg\/}\rangle$|.fd| exists.
 \end{itemize}
@@ -492,14 +673,15 @@ Japanese font, as p\TeX.  However, since the information of the current
 Japanese font is stored into an attribute, control sequences defined by
 |\jfont| (\emph{e.g.},~|\foo| and |\bar| in Figure~\ref{fig-jfdef}) is
 not representing a font by the means of original \TeX. In other words,
 Japanese font is stored into an attribute, control sequences defined by
 |\jfont| (\emph{e.g.},~|\foo| and |\bar| in Figure~\ref{fig-jfdef}) is
 not representing a font by the means of original \TeX. In other words,
-these control sequence cannot be an argument of |\the| or |\textfont|, and they are just an assignments to an attribute, in fact.
+these control sequence cannot be an argument of |\the| or |\textfont|,
+and they are just an assignments to an attribute, in fact.
 
 
 \subsection{Overview of the Processes}
 Now we describe an outline of the \LuaTeX-ja's process briefly.
 \begin{description}
 
 
 \subsection{Overview of the Processes}
 Now we describe an outline of the \LuaTeX-ja's process briefly.
 \begin{description}
-\item[Treatment of Linebreaks after Japanese Characters] We described
-          this already at Subsection~\ref{ssec-line}. Done in the
+\item[Treatment of Linebreaks after Japanese Characters] This part is
+          described already at Subsection~\ref{ssec-line}. Done in the
           |process_input_buffer| callback.
 \item[Font Replacement] In the |hyphenate| callback, we looks into for
           each \textit{glyph\_node}~$p$. If its character is considered
           |process_input_buffer| callback.
 \item[Font Replacement] In the |hyphenate| callback, we looks into for
           each \textit{glyph\_node}~$p$. If its character is considered
@@ -511,18 +693,21 @@ Now we describe an outline of the \LuaTeX-ja's process briefly.
           Japanese charaters.
 \end{description}
 %
           Japanese charaters.
 \end{description}
 %
-Following processes are all executed in |pre_linebreak_filter| and |hpack_filter| callback. These are main routines of \LuaTeX-ja:
+Following processes are all executed in |pre_linebreak_filter| and
+|hpack_filter| callback. These are main routines of \LuaTeX-ja:
 
 \begin{description}
 
 \begin{description}
-\item[Examination of Stack Level] We traverse the horizontal list which is the content of a horizontal box 
+\item[Examination of Stack Level] We traverse the horizontal list which
+          is the content of a horizontal box
 to determine what is the level of \LuaTeX-ja's internal stack in the end
           of the list. This is needed because of the place of
 to determine what is the level of \LuaTeX-ja's internal stack in the end
           of the list. This is needed because of the place of
-          |hpack_filter| in the source of \LuaTeX. We will discuss more detail at Subsection~\ref{ssec-stack}.
+          |hpack_filter| in the source of \LuaTeX. We will discuss more
+          detail in Subsection~\ref{ssec-stack}.
 
 \item[Insertion of Glues/Kerns for Japanese Typesetting]
 This part is already described at Subsection~\ref{ssec-jglue}. 
 
 
 \item[Insertion of Glues/Kerns for Japanese Typesetting]
 This part is already described at Subsection~\ref{ssec-jglue}. 
 
-\item[Adjustument of Places of (Japanese) Characters]
+\item[Adjustument of the Places of (Japanese) Characters]
 Under \LuaTeX-ja, the size of the virtual body of a Japanese character
           and its position (\emph{i.e.}, offset) are determined by the
           metric, since the optimal width of a character in
 Under \LuaTeX-ja, the size of the virtual body of a Japanese character
           and its position (\emph{i.e.}, offset) are determined by the
           metric, since the optimal width of a character in
@@ -536,7 +721,7 @@ Under \LuaTeX-ja, the size of the virtual body of a Japanese character
 To adjust size/places of Japanese characters, \LuaTeX-ja encapsules a
           \textit{glyph\_node} which containing a Japanese character
           into a horizontal box which size is specified in the metric.
 To adjust size/places of Japanese characters, \LuaTeX-ja encapsules a
           \textit{glyph\_node} which containing a Japanese character
           into a horizontal box which size is specified in the metric.
-As the case of `\inhibitglue {', a half-widthed horizontal box 
+We will discuss more detail in Subsection~\ref{ssec-width}.
 \end{description}
 
 \subsection{Stack Management}
 \end{description}
 
 \subsection{Stack Management}
@@ -544,52 +729,135 @@ As the case of `\inhibitglue {', a half-widthed horizontal box
 
 As we noted on Subsection~\ref{ssec-csname}, parameters that the values
 at the end of a horizontal box or that of a paragraph are effective in
 
 As we noted on Subsection~\ref{ssec-csname}, parameters that the values
 at the end of a horizontal box or that of a paragraph are effective in
-whole box or paragraph cannot be implemented by internal integers or
-other types. We explain it in this section.
+whole box or paragraph, such as \emph{kanjiskip}, cannot be implemented by internal integers or
+registers of other types in \TeX. We explain it in this section.
 
 
+\begin{figure}
+\begin{lstlisting}
+void package(int c)
+{
+    ...
+    d = box_max_depth;
+    unsave();
+    save_ptr -= 4;
+    if (cur_list.mode_field == -hmode) {
+        cur_box = filtered_hpack(cur_list.head_field,
+                                 cur_list.tail_field, saved_value(1),
+                                 saved_level(1), grp, saved_level(2));
+        subtype(cur_box) = HLIST_SUBTYPE_HBOX;
+    } else {
+\end{lstlisting}
+\caption{An extract of a CWEB-source \texttt{tex/packaging.w} of \LuaTeX}
+\label{fig-ltsrc}
+\end{figure}
 
 
+Figure~\ref{fig-ltsrc} is an expert of a CWEB-source
+\texttt{tex/packaging.w} of \LuaTeX\ (version?). This function is called
+just when explicit |\hbox{...}| or |\vbox{...}| is ended, and the
+function |filtered_hpack()| is where the |hpack_filter| and then the
+`hpack' process is performed. Notice that the |unsave()| function is
+called before |filtered_hpack()|. This is the problem; because of
+|unsave()|, we can only the values of registers outside the box, even in
+the |hpack_filter| callback.
+
+To cope with this problem, \LuaTeX-ja has its own stack system, based on
+Lua codes in \cite{stack-mail}. Furthermore, \emph{whatsit} nodes whose
+\emph{user\_id} is 30112 (\emph{stack\_node}, for short) will be
+appended to the current horizontal list each time the current stack
+level is incremented, and their values are the values of
+|\currentgrouplevel| at that time. In the beginning of |hpack_filter|
+callback, the list in question is traversed to determine whether the
+stack level at the end of the list and that outside the box coincides.
+
+Let $x$ be the value of |\currentgrouplevel|, and $y$ be the current
+stack level, both inside the |hpack_filter| callback. Then we have:
+\begin{itemize}
+\item A \emph{stack\_node} whose value is $x+1$ (since all materials in
+      the box are included in a group |\hbox{...}|) in the list
+      represents an assignment related to the stack system in just
+      top-level of the list, like
+\begin{quote}
+\begin{verbatim}
+\hbox{...(assignment)...}
+\end{verbatim}
+\end{quote}
+In this case, the current stack level is incremented to $y+1$ after the assignment.
+\item A \emph{stack\_node} whose value is more than  $x+1$ in the list represents
+an assignment inside another group contained in the box. For example,
+      the following input creates
+a \emph{stack\_node} whose value is more than  $x+3=(x+1)+2$:
+\begin{quote}
+\begin{verbatim}
+\hbox{...{...{...(assignment)}...}...}
+\end{verbatim}
+\end{quote}
+\end{itemize}
+Thus, we can conclude that the stack
+level at the end of the list is $y+1$, if and only if there is a
+\emph{whatsit} node whose \emph{user\_id} is 30112 and whose value is
+$x+1$. Otherwise, the stack level is just $y$.
 
 
-\subsection*{About the Project}
-\subsection*{Acknowledgements}
+\subsection{Adjustment Of the Place of Japanese Characters}
+\label{ssec-width}
+
+
+\section*{Acknowledgements}
 
 
 %%% The style of the bibiliogrphy is `amsplain'.
 \providecommand{\bysame}{\leavevmode\hbox to3em{\hrulefill}\thinspace}
 \providecommand{\href}[2]{#2}
 
 
 %%% The style of the bibiliogrphy is `amsplain'.
 \providecommand{\bysame}{\leavevmode\hbox to3em{\hrulefill}\thinspace}
 \providecommand{\href}[2]{#2}
-\begin{thebibliography}{9}
+\begin{thebibliography}{99}
 
 %\bibitem{Knuth}
 %Donald E.~Knuth, \emph{The \TeX book}, Addison-Wesley, 1986.
 
 \bibitem{ptex}
 
 %\bibitem{Knuth}
 %Donald E.~Knuth, \emph{The \TeX book}, Addison-Wesley, 1986.
 
 \bibitem{ptex}
-ASCII MEDIA WORKS, \textbf{アスキー日本語\TeX\ (p\TeX)}\ (in Japanese). \url{http://ascii.asciimw.jp/pb/ptex/}
+ASCII MEDIA WORKS, \textbf{アスキー日本語\TeX\ (p\TeX)}\ (in
+       Japanese). \url{http://ascii.asciimw.jp/pb/ptex/}
 
 %\bibitem{Eijkhout}
 %Victor Eijkhout, \emph{\TeX\ by Topic, A \TeX nician's Reference}, Addison-Wesley, 1992. \url{http://www.cs.utk.edu/~eijkhout/texbytopic-a4.pdf}
 
 \bibitem{luaums}
 
 %\bibitem{Eijkhout}
 %Victor Eijkhout, \emph{\TeX\ by Topic, A \TeX nician's Reference}, Addison-Wesley, 1992. \url{http://www.cs.utk.edu/~eijkhout/texbytopic-a4.pdf}
 
 \bibitem{luaums}
-Hironori Kitagawa, \textbf{LuaTeXで日本語}\ (in Japanese). \url{http://oku.edu.mie-u.ac.jp/tex/mod/forum/discuss.php?d=378}
+Hironori Kitagawa, \textbf{LuaTeXで日本語}\ (in
+       Japanese). \url{http://oku.edu.mie-u.ac.jp/tex/mod/forum/discuss.php?d=378}
 
 \bibitem{luajalayout}
 
 \bibitem{luajalayout}
-Kazuki Maeda\ (前田一貴), \textbf{luajalayout パッケージ —LuaLaTeX による日本語組版—}\ (in Japanese).
+Kazuki Maeda\ (前田一貴), \textbf{luajalayout パッケージ —LuaLaTeX によ
+       る日本語組版—}\ (in Japanese).
 \url{http://www-is.amp.i.kyoto-u.ac.jp/lab/kmaeda/lualatex/luajalayout/}
 
 \bibitem{luajp-test}
 \url{http://www-is.amp.i.kyoto-u.ac.jp/lab/kmaeda/lualatex/luajalayout/}
 
 \bibitem{luajp-test}
-Atsuhito Kohda, \textbf{LuaTeXと日本語}\ (in Japanese). \url{http://www1.pm.tokushima-u.ac.jp/~kohda/tex/luatex-old.html}
+Atsuhito Kohda, \textbf{LuaTeXと日本語}\ (in
+       Japanese). \url{http://www1.pm.tokushima-u.ac.jp/~kohda/tex/luatex-old.html}
 
 \bibitem{joylua}
 Yannis Haralambous. \textbf{The Joy of LuaTeX}. \url{http://luatex.bluwiki.com/}
 
 
 \bibitem{joylua}
 Yannis Haralambous. \textbf{The Joy of LuaTeX}. \url{http://luatex.bluwiki.com/}
 
+\bibitem{otf}
+Shuzaburo Saito\ (齋藤修三郎), \textbf{Open Type Font用VF}\ (in Japanese).
+\url{http://psitau.kitunebi.com/otf.html}
+
 \bibitem{luatexref}
 \textbf{The \LuaTeX reference}
 
 \bibitem{jsclasses}
 \bibitem{luatexref}
 \textbf{The \LuaTeX reference}
 
 \bibitem{jsclasses}
-Haruhiko Okumura\ (奥村晴彦), \textbf{pLaTeX2e 新ドキュメントクラス}\ (in Japanese). \url{http://oku.edu.mie-u.ac.jp/~okumura/jsclasses/}
+Haruhiko Okumura\ (奥村晴彦), \textbf{pLaTeX2e 新ドキュメントクラス}\
+       (in
+       Japanese). \url{http://oku.edu.mie-u.ac.jp/~okumura/jsclasses/}
 
 \bibitem{ptexjp}
 
 \bibitem{ptexjp}
-Haruhiko Okumura\ (奥村晴彦), \textbf{p\TeX\ and Japanese Typesetting}, The Asian Journal of \TeX\ \textbf{2}~(2008), 43--51.
+Haruhiko Okumura\ (奥村晴彦), \textbf{p\TeX\ and Japanese Typesetting},
+       The Asian Journal of \TeX\ \textbf{2}~(2008), 43--51.
 
 
+\bibitem{stack-mail}
+Jonathan Sauer, \textbf{[Dev-luatex] tex.currentgrouplevel}. 
+\url{http://www.ntg.nl/pipermail/dev-luatex/2008-August/001765.html}
 
 
+\bibitem{min10}
+Yoshiki Otobe\ (乙部厳己), \textbf{min10フォントについて}\ (in japanese).
+\url{http://argent.shinshu-u.ac.jp/~otobe/tex/files/min10.pdf}
 \end{thebibliography}
 
 \end{document}
 \end{thebibliography}
 
 \end{document}