changeset 4:88a77b2c92ea

add makefile
author e095732 <e095732@ie.u-ryukyu.ac.jp>
date Sun, 18 Nov 2012 03:32:29 +0900
parents d0a3f3122885
children a48e22ceed00
files Paper/Makefile Paper/ipsjcommon.sty Paper/ipsjdrafts.sty Paper/ipsjpapers.sty Paper/sugi-prosym.tex
diffstat 5 files changed, 3029 insertions(+), 200 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Paper/Makefile	Sun Nov 18 03:32:29 2012 +0900
@@ -0,0 +1,15 @@
+TARGET=sugi-prosym
+TEX=$(TARGET).tex
+DVI=$(TARGET).dvi
+PDF=$(TARGET).pdf
+
+all:
+	make tex
+	make dvipdf
+	open $(PDF)
+clean:
+	rm *.aux *.dvi *.log *~ $(PDF)
+tex:
+	platex $(TEX)
+dvipdf:
+	dvipdfmx $(DVI)
\ No newline at end of file
--- a/Paper/ipsjcommon.sty	Sun Nov 18 02:33:16 2012 +0900
+++ b/Paper/ipsjcommon.sty	Sun Nov 18 03:32:29 2012 +0900
@@ -1,1 +1,859 @@
-% Copyright (C) 1995,1996,1997,1998,1999,2000,2001
%			by Hiroshi Nakashima, Yasuki Saito and
%                          The Editorial Board of the IPSJ Journal
%
% ipsjcommon.sty 15-May-01 by Hiroshi Nakashima (ver 2.08)
% (revision history deleted)
% ipsjcommon.sty 24-Apr-95 by Hiroshi Nakashima (ver 1.0)

%%%%%% Sectioning Commands %%%%%%

% \section:	2sŽæ‚è
% others:	1sŽæ‚è
%
% Note that \paragraph and \subparagraph act as \subsubsubsection and
% \subsubsubsubsection resp.
%
% The form of sectioning header is;
%	<1 Kanji sp> \the<sect-command> [`.' if \section] <1 Kanji sp> <title>
% Nothe that <1 Kanji sp> is that of \normalsize.

\def\section{\@startsection
	{section}{1}{\@mojihaba}{\sec@aboveskip}{\sec@belowskip}{\fs@sec\bf}}
\let\ipsj@section\section					% 2.04(1)
\def\subsection{\@startsection
	{subsection}{2}{\@mojihaba}{\z@}{\z@}{\fs@subsec\bf}}
\def\subsubsection{\@startsection
	{subsubsection}{3}{\@mojihaba}{\z@}{\z@}{\fs@subsec\bf}}
\def\paragraph{\@startsection
	{paragraph}{4}{\@mojihaba}{\z@}{\z@}{\fs@subsec\bf}}
\def\subparagraph{\@startsection
	{subparagraph}{5}{\@mojihaba}{\z@}{\z@}{\fs@subsec\bf}}

\newcounter{section}
\newcounter{subsection}[section]
\newcounter{subsubsection}[subsection]
\newcounter{paragraph}[subsubsection]
\newcounter{subparagraph}[paragraph]

\def\thesection{\arabic{section}}
\def\sec@section@postfix{.}
\def\thesubsection{\thesection.\arabic{subsection}}
\def\thesubsubsection{\thesubsection.\arabic{subsubsection}}
\def\theparagraph{\thesubsubsection.\arabic{paragraph}}
\def\thesubparagraph{\theparagraph.\arabic{subparagraph}}

\setcounter{secnumdepth}{5}

\def\appendix{\let\sec@sec\section
	\def\section{\@startsection
		{section}{1}{\@mojihaba}{\z@}{\z@}{\fs@subsec\bf}}%
	\def\thesection{\appendixprefix\arabic{section}}%
	\def\sec@section@postfix{\appendixpostfix}%
	\stepcounter{section}\setcounter{section}{0}%
	\@ifnextchar[%]
		     {\sec@oappendix}{\sec@xappendix}}
\def\sec@xappendix{\@ifstar{\let\section\sec@sec}%
	{\sec@sec*{\ifDS@english Appendix\else •t˜^\fi}}}
\def\sec@oappendix[#1]{\sec@sec*{\ifDS@english Appendix: \else
	•t˜^\hskip\jspaceskip\fi #1}}
\def\appendixprefix{A.}
\def\appendixpostfix{}

\def\acknowledgment{\par
	{\bf \ifDS@english Acknowledgments\else ŽÓŽ«\fi}\hskip\@mojihaba
	\ignorespaces}
\let\endacknowledgment\par

\newif\ifipsj@recommendation \ipsj@recommendationfalse		% 2.04(1) >>
\def\recommendation#1{\global\ipsj@recommendationtrue
	\ifDS@draft\else \ra@putrcvacc\fi
	\ipsj@section*{#1}
}
\def\endrecommendation{\par\vskip\baselineskip\penalty\opt@magicpenalty}
								% 2.04(1) <<

% Modified \@startsection has a trick for 2sŽæ‚è of \section, which must
% work even if \section appears the top of a page.  The BEFORESKIP must be
% inserted with respect to the previous baseline.  So, we must go back to
% the imaginary previous baseline at the top of a page.  That is, we do;
%	\vskip\baselineskip \vspace*{-\baselineskip}
% which resuls;
% 	<a> do nothing at midpage
%	<b> go to the first baseline by \topskip, then go back to 0th
%	    baseline by \vspace*.
% The trick "\vskip-\prevdepth \prevdepth\z@" will assure exact vertical
% space even when the last line has much depth.
%
% \@startsection {NAME}{LEVEL}{INDENT}{BEFORESKIP}{AFTERSKIP}{STYLE}
\def\@startsection#1#2#3#4#5#6{\if@noskipsec \leavevmode \fi
	\par \@tempskipa #4\relax
	\@afterindenttrue
	\ifdim\@tempskipa<\z@ \@tempskipa-\@tempskipa \@afterindentfalse\fi
	\if@nobreak \everypar{}\else \addpenalty{\@secpenalty}\fi
	\ifdim\@tempskipa>\z@
% Here is the trick for \section.
		\vskip-\prevdepth \prevdepth\z@ \vskip\baselineskip
		\vspace*{-\baselineskip}\vskip\@tempskipa\fi
	\@ifstar
	{\@ssect{#3}{#4}{#5}{#6}}{\@dblarg{\@sect{#1}{#2}{#3}{#4}{#5}{#6}}}}

% \@sect is modified to cope with `.' for \section and •¶ŽšŽæ‚è
%
% \@sect{NAME}{LEVEL}{INDENT}{BEFORESKIP}{AFTERSKIP}{STYLE}[TITLE]{TITLE}
\def\@sect#1#2#3#4#5#6[#7]#8{\ifnum #2>\c@secnumdepth
	\def\@svsec{}\else 
	\refstepcounter{#1}
								% 2.00(1)>>
	\let\@@protect\protect \def\protect{\noexpand\protect\noexpand}
	\edef\@svsec{\csname the#1\endcsname \csname sec@#1@postfix\endcsname
		\hskip\@mojihaba} \let\protect\@@protect\fi	% 2.00(1)<<
	\@tempskipa #5\relax
	\ifdim \@tempskipa<\z@ 
        	\def\@svsechd{#6\hskip #3\relax\@svsec #8}	% 2.00(1)
	\else
        	\begingroup #6\relax
		\@hangfrom{\hskip #3\relax\@svsec}%
			{\interlinepenalty\@M \sec@mojidori{#8}\par}%
		\endgroup
	\fi \@xsect{#5}}

% \@ssect is modified to cope with •¶ŽšŽæ‚è
%
% \@sect{INDENT}{BEFORESKIP}{AFTERSKIP}{STYLE}{TITLE}
\def\@ssect#1#2#3#4#5{\@tempskipa #3\relax
	\ifdim \@tempskipa<\z@ \def\@svsechd{#4\hskip #1\relax #5}%
	\else \begingroup #4%
		\@hangfrom{\hskip #1}{\interlinepenalty\@M
			\sec@mojidori{#5}\par}\endgroup
	\fi \@xsect{#3}}

%% Modify \@xsect to avoid (buggy) \clubpenalty=10000. (H.N.)
\def\@xsect#1{\@tempskipa #1\relax
	\ifdim \@tempskipa<\z@
		\glboal\@nobreakfalse \global\@noskipsectrue
		\everypar{\global\@noskipsecfalse \hskip-\parindent
			\begingroup \@svsechd \endgroup \unskip
			\hskip -#1\everypar{}}%
	\else
		\par \nobreak
		\vskip \@tempskipa \global\@nobreaktrue
		\everypar{\global\@nobreakfalse
			\if@afterindent\else {\setbox0\lastbox}\fi \everypar{}}
	\fi\ignorespaces}

% Here is a trick for •¶ŽšŽæ‚è of sectioning tilte.  The rule is;
%	2 - 4 Kanji char -> 5 Kanji char
%	otherwise    -> natural width
%
\def\sec@mojidori#1{\setbox0\hbox{#1}\settowidth\@tempdimb{‚ }%
	\ifdim\wd0>4.5\@tempdimb #1\else
	\ifdim\wd0<1.5\@tempdimb #1\else
	\jintercharskip\fill \jasciikanjiskip\fill \jmathkanjiskip\fill
	\leavevmode\hbox to5\@tempdimb{#1\hfil}\fi\fi}

%%%%%% List-like Environments %%%%%%
%
%		LM	RM	LW	LS	LPI	II
% default	2K	0	0.75K	0.25K	0	0
% \enumerate	3K	0	3K	0	0	0
% \Enumerate	0	0	3K	0	0	3K
% \ENUMERATE	0	0	3K	0	0	4K
% \enumerate*	1K	0	3K	0	0	2K
% \itemize	2K	0	2K	0	0	0
% \Itemize	0	0	2K	0	0	2K
% \ITEMIZE	0	0	2K	0	0	3K
% \itemize*	1K	0	2K	0	0	1K
% \description	2K	0	0	1K	0	-1K
% \Description	0	0	0	1K	0	1K
% \DESCRIPTION	0	0	0	1K	0	2K
% \description*	1K	0	0	1K	0	0
% \verse	3K	2K	0.75K	0.25K	-1K	-1K
% \quotation	2K	2K	0.75K	0.25K	1K	1K
% \quote	2K	2K	0.75K	0.25K	0	0
%
% where LM is \leftmargin, RM is \rightmargin, LW is \labelwidth, LS is
% \labelsep, \LPI is \listparindent, II is \itemindent, and K is Kanji char
% width (\@mojihaba).
%
% All vertical space parameters, \topsep, \partopsep, \itemsep and \parsep,
% are 0pt.

\leftmargini2\@mojihaba
\leftmarginii2\@mojihaba
\leftmarginiii2\@mojihaba
\leftmarginiv2\@mojihaba
\leftmarginv2\@mojihaba
\leftmarginvi2\@mojihaba

\def\lst@listi{\labelsep.75\@mojihaba \labelwidth.25\@mojihaba
	\rightmargin\z@ \listparindent\z@ \itemindent\z@
	\partopsep\z@ \parsep\z@ \topsep\z@ \itemsep\z@}
\def\@listi{\leftmargin\leftmargini \lst@listi}
\def\@listii{\leftmargin\leftmarginii \lst@listi}
\def\@listiii{\leftmargin\leftmarginiii \lst@listi}
\def\@listiv{\leftmargin\leftmarginiv \lst@listi}
\def\@listv{\leftmargin\leftmarginv \lst@listi}
\def\@listvi{\leftmargin\leftmarginvi \lst@listi}

\@listi

\def\labelenumi{(\,\theenumi\,)} 
\def\theenumi{\arabic{enumi}} 
\def\labelenumii{(\,\theenumii\,)}
\def\theenumii{\alph{enumii}}
\def\p@enumii{\theenumi}
\def\labelenumiii{(\,\theenumiii\,)}
\def\theenumiii{\roman{enumiii}}
\def\p@enumiii{\theenumi(\theenumii)}
\def\labelenumiv{(\,\theenumiv\,)}
\def\theenumiv{\Alph{enumiv}}
\def\p@enumiv{\p@enumiii\theenumiii}
\def\enumerate{\ifnum \@enumdepth >3 \@toodeep\else
	\advance\@enumdepth \@ne 
	\edef\@enumctr{enum\romannumeral\the\@enumdepth}
	\list{\csname label\@enumctr\endcsname}{\usecounter
		{\@enumctr}\def\makelabel##1{##1\hss}%
		\leftmargin3\@mojihaba \labelwidth3\@mojihaba \labelsep\z@}\fi}
\let\endenumerate\endlist

\def\labelitemi{$\bullet$}
\def\labelitemii{\bf --}
\def\labelitemiii{$\ast$}
\def\labelitemiv{$\cdot$}
\def\itemize{\ifnum \@itemdepth >3 \@toodeep\else \advance\@itemdepth \@ne
	\edef\@itemitem{labelitem\romannumeral\the\@itemdepth}%
	\list{\csname\@itemitem\endcsname}{\def\makelabel##1{\hss##1\hss}%
		\labelwidth2\@mojihaba \labelsep\z@}\fi}
\let\enditemize\endlist

\def\description{\list{}{\labelwidth\z@ \labelsep\@mojihaba
	\itemindent\labelsep \advance\itemindent-\leftmargin
	\def\makelabel##1{\bf ##1}}}
\let\enddescription\endlist

\let\latex@trivlist\@trivlist
\def\lst@trivlist#1#2{\leftmargin#1\relax
	\itemindent\labelwidth \advance\itemindent\labelsep
	\advance\itemindent#2\relax
	\let\@trivlist\latex@trivlist \@trivlist}

\def\lst@Trivlist{\def\@trivlist{\lst@trivlist\z@\z@}}
\def\Enumerate{\lst@Trivlist \enumerate}
\let\endEnumerate\endlist
\def\Itemize{\lst@Trivlist \itemize}
\let\endItemize\endlist
\def\Description{\lst@Trivlist \description}
\let\endDescription\endlist

\def\lst@TRIVLIST{\def\@trivlist{\lst@trivlist\z@\@mojihaba}}
\def\ENUMERATE{\lst@TRIVLIST \enumerate}
\let\endENUMERATE\endlist
\def\ITEMIZE{\lst@TRIVLIST \itemize}
\let\endITEMIZE\endlist
\def\DESCRIPTION{\lst@TRIVLIST \description}
\let\endDESCRIPTION\endlist

\def\lst@strivlist{\def\@trivlist{\lst@trivlist\@mojihaba{-\@mojihaba}}}
\@namedef{enumerate*}{\lst@strivlist \enumerate}
\@namedef{endenumerate*}{\endlist}
\@namedef{itemize*}{\lst@strivlist \itemize}
\@namedef{enditemize*}{\endlist}
\@namedef{description*}{\lst@strivlist \description}
\@namedef{enddescription*}{\endlist}

\def\verse{\let\\=\@centercr 
	\list{}{\itemindent-\@mojihaba \listparindent\itemindent 
	\rightmargin\leftmargin \advance\leftmargin\@mojihaba}\item[]}
\let\endverse\endlist
\def\quotation{\list{}{\listparindent\@mojihaba	\itemindent\listparindent
	\rightmargin\leftmargin}\item[]}
\let\endquotation\endlist
\def\quote{\list{}{\rightmargin\leftmargin}\item[]}
\let\endquote\endlist

\def\newtheorem{\@ifstar
	{\theo@newtheorem{\theo@it}{\ }}{\theo@newtheorem{}{\theo@sp}}}
\def\theo@newtheorem#1#2#3{\@namedef{theo@it@#3}{#1}\@namedef{theo@sp@#3}{#2}%
	\@ifnextchar[%]
		     {\@othm{#3}}{\@nthm{#3}}}
\def\@begintheorem#1#2{\DESCRIPTION \csname theo@it@\@currenvir\endcsname
	\item[#1\csname theo@sp@\@currenvir\endcsname #2]}
\def\@opargbegintheorem#1#2#3{\DESCRIPTION
	\csname theo@style@\@currenvir\endcsname
	\item[#1\csname theo@sp@\@currenvir\endcsname #2\ (#3)]}
\let\@endtheorem\endlist					% 1.02(2)
\ifDS@english
\let\theo@it\it \let\theo@sp\ %
\else
\let\theo@it\relax \let\theo@sp\relax
\fi

%%%%%% Bibliography %%%%%%
%
% 1. Label format is "<nn>)".
% 2. \leftmargin 24Q (or 2K)
% 3. \labelsep is 6Q (or 0.5K)
% 4. \baselineskip is 16Q(j)/15Q(e)/normal(d)
% 5. ~ and \ can be shrunk to 0pt.

\def\thebibliography#1{%
	\section*{\hskip-\@mojihaba\hfill\hbox{\bib@refname}\hfill\hskip\z@}
	\ifDS@draft \@tempdima\@mojihaba \else\@tempdima12\@Q\fi
	\list{\arabic{enumi}\rlap{%(
			   	  )}}%
	     {\fs@bibliography \leftmargin2\@tempdima \labelwidth\z@
		\labelsep\@tempdima \itemindent.5\@tempdima
		\usecounter{enumi}\def\makelabel##1{\hss\llap{##1}}}
	\def\newblock{\hskip .11em plus .33em minus .07em}
	\sloppy \frenchspacing
	\def\ {\hskip\fontdimen\tw@\font plus\fontdimen\thr@@\font
			minus\fontdimen\tw@\font\relax}}
\ifDS@english
\def\bib@refname{References}
\else
{\fs@sec \@tempdima7\jspaceskip
\xdef\bib@refname{\hbox to\the\@tempdima{\jintercharskip\fill ŽQl•¶Œ£}}}
\fi
\newdimen\bib@adjustheight \bib@adjustheight-\maxdimen
\def\endthebibliography{\endlist \par \@normalsize
	\@tempdima\@colht \advance\@tempdima-\@colroom
	\advance\@tempdima\pagetotal \advance\@tempdima-\prevdepth
	\advance\@tempdima-\topskip
	\@tempdimb\@tempdima \divide\@tempdima\baselineskip
	\@tempcnta\@tempdima \@tempdima\@tempcnta\baselineskip
	\advance\@tempdima-\@tempdimb
	\ifdim\@tempdima<\z@ \advance\@tempdima\baselineskip \fi
	\vskip-\prevdepth \vskip\@tempdima \prevdepth\z@
	\bib@adjustheight\@tempdimb \advance\bib@adjustheight\@tempdima
	\global\advance\bib@adjustheight\topskip
	\if@firstcolumn\else\global\advance\bib@adjustheight\@M pt\fi}


%%%%%% Floats %%%%%%

% You may need to change following parameters
\setcounter{topnumber}{4}
\setcounter{bottomnumber}{4}
\setcounter{totalnumber}{8}
\setcounter{dbltopnumber}{4}
\def\topfraction{.9}
\def\bottomfraction{.9}
\def\textfraction{.1}
\def\dbltopfraction{.9}
\def\floatpagefraction{.9}
\def\dblfloatpagefraction{.9}

\newcounter{figure}
\newcounter{table}
\def\thefigure{\@arabic\c@figure}
\def\thetable{\@arabic\c@table}
\def\fps@figure{tbp}
\def\fps@table{tbp}
\def\ftype@figure{1}
\def\ftype@table{2}
\def\fnum@figure{\fname@figure\thefigure}
\def\fnum@table{\fname@table\thetable}
\ifDS@english
\def\fname@figure{Fig.\,}					% 2.06(1)
\def\fname@Figure{Figure~}
\def\fname@table{Table~}
\else
\def\fname@figure{}\fref@nobreak}				% 1.06(1)
\let\fname@Figure\fname@figure
\def\fname@table{•\\fref@nobreak}				% 1.06(1)
\fi
\def\fnum@efigure{Fig.\,\thefigure}				% 2.06(1)
\def\fnum@etable{Table~\thetable}

% 1.06(3) >>
\def\figure{\let\cap@afterskip\relax \let\flt@fontsize\relax \@float{figure}}
\def\endfigure{\end@float}
\@namedef{figure*}{\let\cap@afterskip\relax \let\flt@fontsize\relax
	\@dblfloat{figure}}
\@namedef{endfigure*}{\end@dblfloat}

%% Default font for table env. is \footnotesize (H.N.)
\def\table{\let\cap@beforeskip\relax \let\flt@fontsize\fs@table
	\@float{table}}
\def\endtable{\end@float}
\@namedef{table*}{\let\cap@beforeskip\relax \let\flt@fontsize\fs@table
	\@dblfloat{table}}					% 2.01(2)
\@namedef{endtable*}{\end@dblfloat}
% 1.06(3) <<

\let\latex@float\@float
\let\latex@dbflt\@dbflt
\def\@float{\cap@linewidth\hsize \cap@hsize\hsize \latex@float}
\def\@dbflt{\cap@linewidth.8\textwidth \cap@hsize.667\textwidth \latex@dbflt}
\let\latex@xfloat\@xfloat					% 1.06(3)
\def\@xfloat#1[#2]{\latex@xfloat#1[#2]\flt@fontsize}
								% 1.06(3)
\def\end@float{\flt@endfloat
	\ifdim\bib@adjustheight=-\maxdimen\else
		\advance\bib@adjustheight\@tempdima
		\global\advance\bib@adjustheight\baselineskip \fi
	\ifnum\@floatpenalty <\z@
		\@nameuse{@largefloatcheck}%			% 2.00(2)
		\@cons\@currlist\@currbox
	\ifdim \ht\@currbox >\textheight 
		\ht\@currbox\textheight \fi
	\ifnum\@floatpenalty < -\@Mii 
        	\penalty -\@Miv 
		\@tempdima\prevdepth \vbox{} \prevdepth\@tempdima
		\penalty\@floatpenalty
	\else \vadjust{\penalty -\@Miv \vbox{}\penalty\@floatpenalty}\@esphack
	\fi\fi}
\def\end@dblfloat{\if@twocolumn \flt@endfloat
	\ifnum\@floatpenalty <\z@ \@cons\@dbldeferlist\@currbox\fi
	\ifnum \@floatpenalty =-\@Mii \@esphack\fi\else\end@float\fi}
\def\flt@endfloat{\par \vskip\z@
	\global\@minipagefalse \@nameuse{outer@nobreak}\egroup	% 2.00(2)
	\@nameuse{color@endbox}\@normalsize			% 2.00(2)
	\@tempdima\ht\@currbox \advance\@tempdima\dp\@currbox
	\divide\@tempdima\baselineskip \@tempcnta\@tempdima
	\advance\@tempcnta\@ne \@tempdima\@tempcnta\baselineskip
	\global\setbox\@currbox\vbox to\@tempdima{\vfil\box\@currbox\vfil}}

\def\cap@beforeskip{\nointerlineskip\vskip5pt}
\def\cap@afterskip{\nointerlineskip\vskip5pt}
\long\def\@caption#1[#2]#3{\par\begingroup
	\fs@caption \cap@beforeskip
	\@makecaption{{\bf \csname fnum@#1\endcsname}}{\ignorespaces#3}\par
	\ifDS@english \cap@afterskip \fi
	\endgroup}
\def\ecaption{\@dblarg{\@ecaption\@captype}}
\long\def\@ecaption#1[#2]#3{\par
	\begingroup \fs@caption
	\@makecaption{\csname fnum@e#1\endcsname}{\ignorespaces #3}\par
	\cap@afterskip
	\endgroup}

\newif\ifcap@sw
\newdimen\cap@linewidth
\newdimen\cap@hsize
\newcount\cap@prevgraf
\newbox\cap@box
\let\latex@label\label
\long\def\@makecaption#1#2{\begingroup \gdef\cap@label{}\let\label\@gobble
	\setbox0\hbox{#1\hskip\jspaceskip}
	\advance\cap@linewidth-\wd0 \advance\cap@hsize-\wd0
	\cap@makepar\cap@linewidth{#2}{\def\label##1{{%		    %1.03(1)
		\def\protect{\noexpand\protect\noexpand}	    %1.03(1)
		\xdef\cap@label{\cap@label\protect\label{##1}}}}}   %1.03(1)
	\cap@swtrue
	\ifnum\cap@prevgraf=\@ne
		\setbox1\vbox{\unvcopy1\cap@getbox1
			\ifhbox1 \global\setbox\cap@box\hbox{\unhbox1}
			\ifdim\wd\cap@box>\cap@linewidth\else
				\global\cap@swfalse \fi\fi}
		\ifcap@sw\else
			\cap@put{\vtop{\box\cap@box\hbox{}}}
		\fi\fi
	\ifcap@sw \cap@makepar\cap@hsize{#2}\relax
	\ifnum\cap@prevgraf=\tw@
		\setbox1\vbox{\unvcopy1\cap@getbox2\cap@getbox3
			\ifhbox2\ifhbox3
				\setbox2\hbox{\unhbox2}\setbox3\hbox{\unhbox3}
				\ifdim\wd2>\cap@hsize\else
				\ifdim\wd3>\cap@hsize\else
				\global\cap@swfalse
				\global\setbox\cap@box\vtop{\box3\box2\hbox{}}
				\fi\fi\fi\fi}\fi
	\ifcap@sw \setbox1\vtop{\hsize\cap@hsize
		\@parboxrestore #2\par\hbox{}}\cap@put{\box1}
	\else\cap@put{\box\cap@box}\fi
	\fi
	\endgroup \cap@label}
\long\def\cap@makepar#1#2#3{\setbox1\vbox{\hsize#1\@parboxrestore
	\rightskip\@flushglue \hfuzz\maxdimen
	\exhyphenpenalty\z@ \finalhyphendemerits\z@
	\let\@@par\cap@par \let\par\cap@par \global\cap@prevgraf\z@
	#3#2\cap@par}}
\let\cap@@par\@@par
\def\cap@par{\cap@@par\global\advance\cap@prevgraf\prevgraf \prevgraf\z@}
\def\cap@put#1{\hbox to\hsize{\hss\box0#1\hss}
	\vskip-\baselineskip\prevdepth\z@}
\def\cap@getbox#1{\@tempcnta10\relax\@whilenum\@tempcnta>0\do{%
	\unskip\unkern\unpenalty\advance\@tempcnta\m@ne}\setbox#1\lastbox}

\def\figref{\fref@ref\fname@figure}
\def\Figref{\fref@ref\fname@Figure}
\def\tabref{\fref@ref\fname@table}
\let\Tabref\tabref
\def\fref@ref#1{\@ifstar{\fref@sref{#1}}{\fref@iref\bf{#1}}}
\def\fref@iref#1#2#3{{\@ifundefined{fref@r@#3}%
	{#1#2\fref@doref{#3}\global\@namedef{fref@r@#3}{}}{#2\fref@doref{#3}}}}
\def\fref@sref#1#2{#1\fref@doref{#2}}
\def\fref@doref#1{{\let\null\relax\ref{#1}}}			% 1.06(2)
\def\fref@nobreak{\nobreak\ifASCII\else\hskip\@@jasciikanjiskip\fi}
								% 1.06(1)

\def\fig@extraspace{3mm}					%1.04(4)
\def\figspace#1{\vskip#1\vskip\fig@extraspace}			%1.04(4)

%%%%%% Footnote %%%%%%

%% The following codes are from pfnote.sty, by H. Nakashima of Kyoto Univ.,
%% to reset footnote counter at the begining of every page. (H.N.)

% 1.04(2c)>>
\def\footnote{\@ifnextchar[%]
	{\@xfootnote}{{\PF@adjustfnote \stepcounter{\@mpfn}%
		\xdef\@thefnmark{\thempfn}}\@footnotemark\@footnotetext}}
\def\footnotemark{\@ifnextchar[%]
	{\@xfootnotemark}{{\PF@adjustfnote \stepcounter{footnote}%
		\xdef\@thefnmark{\thefootnote}}\@footnotemark}}
% 1.04(2c)<<

\newcount\PF@fnotectr\global\PF@fnotectr=\z@
\newcount\PF@page\global\PF@page=-\@M
\def\PF@thepage{\number\c@page}
\def\PF@adjustfnote{\global\advance\PF@fnotectr\@ne
	\expandafter\ifx\csname PF@fn\number\PF@fnotectr\endcsname\relax
		\global\c@footnote\z@\else
	\expandafter\@tempcnta\csname PF@fn\number\PF@fnotectr\endcsname\relax
	\ifnum\@tempcnta=\PF@page\else
		\global\PF@page\@tempcnta \global\c@footnote\z@ \fi\fi
% 1.04(2a)>>
	\expandafter\ifx\csname PF@fnpage\number\PF@page\endcsname\relax \else
	\expandafter\@tempcnta\csname PF@fnpage\number\PF@page\endcsname\relax
								% 2.00(4)>>
	\ifnum\@tempcnta>\tw@ \global\let\thefootnote\thefootnotemany
	\else \global\let\thefootnote\thefootnoteord \fi\fi	% 2.00(4)<<
	\@tempcnta\c@footnote \multiply\@tempcnta\@M
	\advance\@tempcnta\PF@fnotectr
	\if@filesw{\let\PF@thepage\relax
		\xdef\@gtempa{\write\@auxout{\string\PF@fnpage
		{\number\@tempcnta}{\PF@thepage}}}}%
		\@gtempa\fi}
% 1.04(2a)<<

% 1.04(2a)>>
\def\PF@fnpage#1#2{\@tempcnta#1\relax \@tempcntb\@tempcnta \divide\@tempcnta\@M
	\expandafter\xdef\csname PF@fnpage#2\endcsname{\number\@tempcnta}
	\multiply\@tempcnta\@M \advance\@tempcntb-\@tempcnta	
	\global\@namedef{PF@fn\number\@tempcntb}{#2}}
% 1.04(2a)<<
%% End of quote from pfnote.sty. (H.N.)

\long\def\@makefntext#1{\leftskip20\@Q
	\noindent\llap{\@makefnmarkforfn\hskip-\scriptspace\hskip5\@Q}#1}
								% 1.04(2e)
\def\@makefnmarkstar{$^{\hbox{\tiny\fn@fontv\@thefnmark}}$}	% 1.04(2d)
\def\@makefnmarkdagger{$\@thefnmark$}
\let\@makefnmarkforfn\@makefnmarkstar

\def\@makefnmark{\smash{\hbox{\scriptsize\fn@fontvi$^{\@thefnmark}$}}}
								% 1.04(2d)
						% smashed to make it
						% zero height

%% Awful definition of \thefootnote to put subsequent ™'s. (H.N.)
\def\thefootnote{\leavevmode\hbox{%
	\ifcase\c@footnote\or ™\or ™™\or ™™™\else \thefootnotemany\fi}}
								% 1.04(2b)
\def\thefootnotemany{\hbox{™\hskip\z@\number\c@footnote}}	% 1.04(2b)
								% 2.05(3)
\let\thefootnoteord\thefootnote


%%%%%% Citation %%%%%%

%% The following codes for \cite are from overcite.sty by D. Arseneau, but
%% modified for Trans. IPSJ (H.N.)
%     O V E R C I T E . S T Y
%
%     version 3.2  (Mar 1993)
%
%     Compressed, sorted lists of superscript numerical citations.
%     see also CITE.STY and DRFTCITE.STY
%
%     Copyright (C) 1989-1993 by Donald Arseneau
%     These macros may be freely transmitted, reproduced, or modified for
%     non-commercial purposes provided that this notice is left intact.
%
\def\cite{\protect\@p@cite}
\def\@p@cite{\let\@citeY\@citey \@p@@cite}
\def\Cite{\protect\@p@Cite}
\def\@p@Cite{\let\@citeY\@Citey \@p@@cite}
\def\@p@@cite{\@ifnextchar[%]
		          {\@tempswatrue\@citex}{\@tempswafalse\@citex[]}}
\def\@citex[#1]#2{\@citeY{\@p@citen{#2}}\if@tempswa\space[#1]\fi}
\def\@citey#1{\leavevmode\unskip\kern\z@$\let\@cite@tiestyle\scriptstyle
%     								% 2.06(2)
	\def\@cite@punct{,}\m@th^{\hbox{\scriptsize#1}}$\spacefactor\@m}
\def\@Citey#1{\let\@cite@tiestyle\textstyle
	\ifDS@english \def\@cite@punct{,\space\penalty\@highpenalty}%1.04(1)
	\else\def\@cite@punct{C}\fi#1\spacefactor\@m}		    %1.04(1)

\def\@p@citen#1{%
	\edef\@tempa{\@ignspaftercomma,#1, \@end, }%
	\edef\@tempa{\expandafter\@ignendcommas\@tempa\@end}%
	\if@filesw \immediate\write\@auxout{\string\citation{\@tempa}}\fi
	\@tempcntb\m@ne \let\@h@ld\relax \let\@citea\@empty
	\let\@celt\relax \def\@cite@list{}%			% 2.06(3)
	\@for\@citeb:=\@tempa\do{\@make@cite@list}%
	\@tempcnta\m@ne \let\@celt\@compress@cite \@cite@list
	\@h@ld}
\def\@ignspaftercomma#1, {\ifx\@end#1\@empty\else
	#1,\expandafter\@ignspaftercomma\fi}
\def\@ignendcommas,#1,\@end{#1}

%(
\let\@cite@rp)
\chardef\@cite@escape`\\
\def\@make@cite@list{%
    \expandafter\let\expandafter\@B@citeB\csname b@\@citeb\endcsname
    \ifx\@B@citeB\relax
	\@citea {\bf ?}\@cite@rp \let\@citea\@cite@punct
	\@latex@warning{Citation `\@citeb' on page \thepage\space undefined}%
								% 2.00(3)
	\global\@namedef{b@\@citeb}{{\bf ?}}%
    \else
	\ifcat \@cite@escape\ifnum\z@<0\@B@citeB \@cite@escape\else A\fi
	    \@tempcnta\@B@citeB \relax
	    \ifnum \@tempcnta>\@tempcntb
		\edef\@cite@list{\@cite@list \@celt{\@B@citeB}}%
		\@tempcntb\@tempcnta
	     \else
		\edef\@cite@list{\expandafter\@sort@celt\@cite@list\@gobble @}%
		\fi
	\else \@citea \@B@citeB \@cite@rp \let\@citea\@cite@punct
    \fi\fi}

\def\@sort@celt#1#2{\ifx \@celt #1% parameters are \@celt {num}
	\ifnum #2<\@tempcnta % number goes later in list
	    \@celt{#2}\expandafter\expandafter\expandafter\@sort@celt
	\else \@celt{\number\@tempcnta}\@celt{#2}\fi\fi}

\def\@compress@cite#1{\advance\@tempcnta\@ne
	\ifnum #1=\@tempcnta
		\ifx\@h@ld\relax \edef\@h@ld{\@citea #1\@cite@rp}%
		\else \edef\@h@ld{\hbox{$\@cite@tiestyle\sim$}%
			\penalty\@highpenalty #1\@cite@rp}\fi
	\else \@h@ld \@citea #1\@cite@rp
		\let\@h@ld\relax
	\fi \@tempcnta#1\relax \let\@citea\@cite@punct}

%% End of quote from overcite.sty. (H.N.)

\def\multicite{\protect\@p@multicite}
\def\@p@multicite#1#2{\@citey{\@p@citen{#1}$\scriptstyle\sim$\@p@citen{#2}}}
\def\multiCite{\protect\@p@multiCite}
\def\@p@multiCite#1#2{\@Citey{\@p@citen{#1}$\sim$\penalty\@highpenalty
	\@p@citen{#2}}}


%%%%%% Box Height Adjustment and Displayed Math %%%%%%

\newbox\adj@boxa \newbox\adj@boxb
\newdimen\adj@height
\@tempdima\baselineskip \advance\@tempdima-\topskip
\edef\adj@minaboveclearance{\the\@tempdima}
\@tempdima\baselineskip \advance\@tempdima-1ex
\edef\adj@maxaboveclearance{\the\@tempdima}
\ifDS@english
\setbox0\hbox{A}
\else
\setbox0\hbox{‚ }
\fi
\@tempdima\baselineskip \advance\@tempdima-\ht0 \advance\@tempdima\dp0
\edef\adj@bhd{\the\@tempdima}

% 2.01(1) >>
\def\adjustvboxheight{\ifinner \let\@tempa\relax
	\let\endadjustvboxheight\relax \let\@endadjustvboxheight\relax
	\else \let\@tempa\@adjustvboxheight \fi \@tempa}
\def\@adjustvboxheight{\par\penalty\z@
	\global\setbox\adj@boxa\vbox\bgroup\relax		% 1.01(3)
	\let\@footnotetext\@mpfootnotetext			% 2.02(1)
%								% 2.05(1)
	\hsize\columnwidth}
% 2.01(1) <<
\def\endadjustvboxheight{\adj@closebox \adj@putbox
	\ifvoid\@mpfootins\else\insert\footins{\unvbox\@mpfootins}\fi
%								% 2.02(1)
	\global\@ignoretrue\@endparenv}
\def\adj@closebox{\egroup \normalsize \boxmaxdepth\@maxdepth	% 1.01(1,3)
	\setbox\adj@boxa\vbox{\unvbox\adj@boxa}			% 1.01(3)
	\adj@height\ht\adj@boxa
	\advance\adj@height\adj@minaboveclearance\relax
	\@tempdima\adj@height \divide\adj@height\baselineskip
	\@tempcnta\adj@height \adj@height\@tempcnta\baselineskip
	\ifdim\adj@height<\@tempdima \advance\adj@height\baselineskip\fi}
\def\adj@putbox{\vskip-\prevdepth \prevdepth\z@ \vskip\baselineskip
	\vspace*{-\baselineskip}\advance\@tempdima-\adj@height
	\@tempdima-\@tempdima \advance\@tempdima\adj@minaboveclearance\relax
	\@tempdimb\dp\adj@boxa
	\ifdim\@tempdima>\adj@maxaboveclearance\relax
		\advance\@tempdima-\@tempdimb \advance\@tempdima\adj@bhd\relax
		\divide\@tempdima\tw@
		\vbox to\adj@height{\vskip\@tempdima \box\adj@boxa \vss}
	\else	\vbox to\adj@height{\vfil\box\adj@boxa\vskip-\@tempdimb}\fi}

\newcount\adj@deadcycle
\@namedef{adjustvboxheight*}{\adjustvboxheight}
\@namedef{endadjustvboxheight*}{\@endadjustvboxheight}
\def\@endadjustvboxheight{\global\adj@deadcycle10\relax
	\@iendadjustvboxheight
	\ifvoid\@mpfootins\else\insert\footins{\unvbox\@mpfootins}\fi
%								% 2.05(2)
	\global\@ignoretrue\@endparenv}
\def\@iendadjustvboxheight{\adj@closebox
	\ifnum\adj@deadcycle<\@ne
	\ipsj@error{I cannot adjust too tall/deep box}{\@ehd}\fi    % 2.00(3)
	\global\advance\adj@deadcycle\m@ne
	\ifdim\pagegoal=\maxdimen
		\@tempdimb\@colht \advance\@tempdimb-\topskip
		\advance\@tempdimb\baselineskip
	\else \@tempdimb\pagegoal
		\advance\@tempdimb-\pagetotal \advance\@tempdimb-\pagedepth
		\advance\@tempdimb\prevdepth \fi		% 1.01(4a)
	\let\next\relax
	\ifdim\adj@height<\@tempdimb \adj@putbox \else
	\ifdim\adj@height=\@tempdimb \adj@putbox \else
	\divide\@tempdimb\baselineskip \@tempcnta\@tempdimb	% 1.01(4b)>>
	\@tempdimb\@tempcnta\baselineskip
	\advance\@tempdimb-\adj@minaboveclearance\relax		% 1.01(4b)<<
	\setbox\adj@boxa\vbox{\allowbreak\unvbox\adj@boxa}
	\vbadness\@M \splittopskip\z@ \splitmaxdepth\@maxdepth	%1.01(1)
	\setbox\@tempboxa\vsplit\adj@boxa to\@tempdimb
	\setbox\adj@boxb\copy\adj@boxa
	\setbox\@tempboxa\vbox{\unvbox\@tempboxa}
	\@tempdimb\ht\@tempboxa \advance\@tempdimb\dp\@tempboxa
	\ifdim\@tempdimb>\z@
		\setbox\adj@boxa\vbox\bgroup\unvbox\@tempboxa
		\adj@closebox \adj@putbox \newpage
	\else \newpage \fi
	\setbox\adj@boxa\vbox\bgroup\unvbox\adj@boxb
	\let\next\@iendadjustvboxheight \fi\fi \next}

\def\adj@eqindent{2\@mojihaba}
\def\[{\adjustvboxheight\advance\@totalleftmargin\adj@eqindent\relax
	\hbox to\hsize\bgroup\hskip\@totalleftmargin$\displaystyle}
\def\]{$\hfill\egroup\endadjustvboxheight\@doendpe\ignorespaces} % 2.03(1)
\def\equation{\refstepcounter{equation}\[}
\def\endequation{\hfill\@eqnnum$\egroup\endadjustvboxheight}
\def\theequation{\arabic{equation}}
\def\@eqnnum{{\rm (\theequation)\hskip\@mojihaba}} 

\def\adj@eqnlineskip{3pt}
\def\adj@eqnlineskiplimit{2pt}
\def\eqnarray{\futurelet\@tempa\adj@eqnarray}
\def\adj@eqnarray{\ifx\@tempa[%]
	\let\next\adj@ieqnarray\else\let\next\adj@xeqnarray\fi\next}
\def\adj@ieqnarray[#1]{\@ifundefined{adj@xeqnarray#1}%
	{\ipsj@warning{Unknown eqnarray option `#1'}\adj@xeqnarray}% 2.00(3)
	{\@nameuse{adj@xeqnarray#1}}}
\def\adj@xeqnarray{\adjustvboxheight
	\advance\@totalleftmargin\adj@eqindent\relax
	\stepcounter{equation}\let\@currentlabel=\theequation
	\global\@eqnswtrue
	\global\@eqcnt\z@\tabskip\z@\let\\=\@eqncr
	\lineskip\adj@eqnlineskip \lineskiplimit\adj@eqnlineskiplimit \jot\z@
	\halign to \hsize\bgroup\@eqnsel\hskip\@totalleftmargin
		\hfil$\displaystyle{##}$&\global\@eqcnt\@ne	% 1.01(2)
		\hfil$\displaystyle{}\mathrel{##}{}$\hfil
		&\global\@eqcnt\tw@ $\displaystyle{##}$\hfil
		\tabskip\@centering&\llap{##}\tabskip\z@\cr}
\def\adj@xeqnarrays{\let\endadjustvboxheight\@endadjustvboxheight
	\adj@xeqnarray}
\@namedef{adj@xeqnarrays!}{\par\let\adjustvboxheight\relax
	\let\endadjustvboxheight\relax \adj@xeqnarray}
\def\endeqnarray{\@@eqncr \egroup \global\advance\c@equation\m@ne
	\endadjustvboxheight}


%%%%%% Kinsoku Parameters %%%%%%

% 1.04(3)>>
\ifASCII
\postbreakpenalty`\`=\@M
\prebreakpenalty`'=\@M
\prebreakpenalty`)=\@M
\postbreakpenalty`(=\@M
\prebreakpenalty`]=\@M
\postbreakpenalty`[=\@M
\prebreakpenalty`\}=\@M
\postbreakpenalty`\{=\@M

\prebreakpenalty`E=\@M
\prebreakpenalty`F=\@M
\prebreakpenalty`G=\@M
\prebreakpenalty`H=\@M
\prebreakpenalty`I=\@M

\prebreakpenalty\jis"212D=\@M		% L
\postbreakpenalty\jis"212E=\@M		% M
\postbreakpenalty\jis"2146=\@M		% e
\prebreakpenalty\jis"2147=\@M		% f
\postbreakpenalty\jis"2148=\@M		% g
\prebreakpenalty\jis"2149=\@M		% h

\prebreakpenalty`j=\@M
\postbreakpenalty`i=\@M
\prebreakpenalty`p=\@M
\postbreakpenalty`o=\@M
\prebreakpenalty`n=\@M
\postbreakpenalty`m=\@M
\postbreakpenalty`e=\@M
\prebreakpenalty`f=\@M

\postbreakpenalty\jis"214C=\@M		%k
\prebreakpenalty\jis"214D=\@M		% l
\postbreakpenalty\jis"2152=\@M		% q
\prebreakpenalty\jis"2153=\@M		% r
\postbreakpenalty\jis"2154=\@M		% s
\prebreakpenalty\jis"2155=\@M		% t
\postbreakpenalty\jis"2156=\@M		% u
\prebreakpenalty\jis"2157=\@M		% v
\postbreakpenalty\jis"2158=\@M		% w
\prebreakpenalty\jis"2159=\@M		% x
\postbreakpenalty\jis"215A=\@M		% y
\prebreakpenalty\jis"215B=\@M		% z

\prebreakpenalty`‚Ÿ=\@M
\prebreakpenalty`‚¡=\@M
\prebreakpenalty`‚£=\@M
\prebreakpenalty`‚¥=\@M
\prebreakpenalty`‚§=\@M
\prebreakpenalty`‚Á=\@M
\prebreakpenalty`‚á=\@M
\prebreakpenalty`‚ã=\@M
\prebreakpenalty`‚å=\@M
\prebreakpenalty\jis"246E=\@M		% ‚ì
\prebreakpenalty`ƒ@=\@M
\prebreakpenalty`ƒB=\@M
\prebreakpenalty`ƒD=\@M
\prebreakpenalty`ƒF=\@M
\prebreakpenalty`ƒH=\@M
\prebreakpenalty`ƒb=\@M
\prebreakpenalty`ƒƒ=\@M
\prebreakpenalty`ƒ…=\@M
\prebreakpenalty`ƒ‡=\@M
\prebreakpenalty\jis"256E=\@M		% ƒŽ
\prebreakpenalty\jis"2575=\@M		% ĥ
\prebreakpenalty\jis"2576=\@M		% ƒ–

\fi
% 1.04(3)<<


%%%%%% Miscellaneous %%%%%%

%% \doublerulesep is 1pt (H.N.)
\arraycolsep5pt \tabcolsep6pt \arrayrulewidth.4pt \doublerulesep1pt 
\tabbingsep.5\@mojihaba

\skip\@mpfootins\skip\footins
\fboxsep3pt \fboxrule.4pt 

%% We simply allow (not encourage) club and widow lines. (H.N.)
\clubpenalty\z@ \widowpenalty\z@ \displaywidowpenalty\z@

% The following redefinition influences \linebreak etc.
\def\sloppy{\tolerance9999\hbadness9999\hfuzz.5\p@ \vfuzz.5\p@}

\endinput
\ No newline at end of file
+% Copyright (C) 1995,1996,1997,1998,1999,2000,2001
+%			by Hiroshi Nakashima, Yasuki Saito and
+%                          The Editorial Board of the IPSJ Journal
+%
+% ipsjcommon.sty 30-Jan-02 by Hiroshi Nakashima (ver 2.09)
+% (revision history deleted)
+% ipsjcommon.sty 24-Apr-95 by Hiroshi Nakashima (ver 1.0)
+
+%%%%%% Sectioning Commands %%%%%%
+
+% \section:	2行取り
+% others:	1行取り
+%
+% Note that \paragraph and \subparagraph act as \subsubsubsection and
+% \subsubsubsubsection resp.
+%
+% The form of sectioning header is;
+%	<1 Kanji sp> \the<sect-command> [`.' if \section] <1 Kanji sp> <title>
+% Nothe that <1 Kanji sp> is that of \normalsize.
+
+\def\section{\@startsection
+	{section}{1}{\@mojihaba}{\sec@aboveskip}{\sec@belowskip}{\fs@sec\bf}}
+\let\ipsj@section\section					% 2.04(1)
+\def\subsection{\@startsection
+	{subsection}{2}{\@mojihaba}{\z@}{\z@}{\fs@subsec\bf}}
+\def\subsubsection{\@startsection
+	{subsubsection}{3}{\@mojihaba}{\z@}{\z@}{\fs@subsec\bf}}
+\def\paragraph{\@startsection
+	{paragraph}{4}{\@mojihaba}{\z@}{\z@}{\fs@subsec\bf}}
+\def\subparagraph{\@startsection
+	{subparagraph}{5}{\@mojihaba}{\z@}{\z@}{\fs@subsec\bf}}
+
+\newcounter{section}
+\newcounter{subsection}[section]
+\newcounter{subsubsection}[subsection]
+\newcounter{paragraph}[subsubsection]
+\newcounter{subparagraph}[paragraph]
+
+\def\thesection{\arabic{section}}
+\def\sec@section@postfix{.}
+\def\thesubsection{\thesection.\arabic{subsection}}
+\def\thesubsubsection{\thesubsection.\arabic{subsubsection}}
+\def\theparagraph{\thesubsubsection.\arabic{paragraph}}
+\def\thesubparagraph{\theparagraph.\arabic{subparagraph}}
+
+\setcounter{secnumdepth}{5}
+
+\def\appendix{\let\sec@sec\section
+	\def\section{\@startsection
+		{section}{1}{\@mojihaba}{\z@}{\z@}{\fs@subsec\bf}}%
+	\def\thesection{\appendixprefix\arabic{section}}%
+	\def\sec@section@postfix{\appendixpostfix}%
+	\stepcounter{section}\setcounter{section}{0}%
+	\@ifnextchar[%]
+		     {\sec@oappendix}{\sec@xappendix}}
+\def\sec@xappendix{\@ifstar{\let\section\sec@sec}%
+	{\sec@sec*{\ifDS@english Appendix\else 付録\fi}}}
+\def\sec@oappendix[#1]{\sec@sec*{\ifDS@english Appendix: \else
+	付録\hskip\jspaceskip\fi #1}}
+\def\appendixprefix{A.}
+\def\appendixpostfix{}
+
+\def\acknowledgment{\par
+	{\bf \ifDS@english Acknowledgments\else 謝蟞\fi}\hskip\@mojihaba
+	\ignorespaces}
+\let\endacknowledgment\par
+
+\newif\ifipsj@recommendation \ipsj@recommendationfalse		% 2.04(1) >>
+\def\recommendation#1{\global\ipsj@recommendationtrue
+	\ifDS@draft\else \ra@putrcvacc\fi
+	\ipsj@section*{#1}
+}
+\def\endrecommendation{\par\vskip\baselineskip\penalty\opt@magicpenalty}
+								% 2.04(1) <<
+
+% Modified \@startsection has a trick for 2行取り of \section, which must
+% work even if \section appears the top of a page.  The BEFORESKIP must be
+% inserted with respect to the previous baseline.  So, we must go back to
+% the imaginary previous baseline at the top of a page.  That is, we do;
+%	\vskip\baselineskip \vspace*{-\baselineskip}
+% which resuls;
+% 	<a> do nothing at midpage
+%	<b> go to the first baseline by \topskip, then go back to 0th
+%	    baseline by \vspace*.
+% The trick "\vskip-\prevdepth \prevdepth\z@" will assure exact vertical
+% space even when the last line has much depth.
+%
+% \@startsection {NAME}{LEVEL}{INDENT}{BEFORESKIP}{AFTERSKIP}{STYLE}
+\def\@startsection#1#2#3#4#5#6{\if@noskipsec \leavevmode \fi
+	\par \@tempskipa #4\relax
+	\@afterindenttrue
+	\ifdim\@tempskipa<\z@ \@tempskipa-\@tempskipa \@afterindentfalse\fi
+	\if@nobreak \everypar{}\else \addpenalty{\@secpenalty}\fi
+	\ifdim\@tempskipa>\z@
+% Here is the trick for \section.
+		\vskip-\prevdepth \prevdepth\z@ \vskip\baselineskip
+		\vspace*{-\baselineskip}\vskip\@tempskipa\fi
+	\@ifstar
+	{\@ssect{#3}{#4}{#5}{#6}}{\@dblarg{\@sect{#1}{#2}{#3}{#4}{#5}{#6}}}}
+
+% \@sect is modified to cope with `.' for \section and 文字取り
+%
+% \@sect{NAME}{LEVEL}{INDENT}{BEFORESKIP}{AFTERSKIP}{STYLE}[TITLE]{TITLE}
+\def\@sect#1#2#3#4#5#6[#7]#8{\ifnum #2>\c@secnumdepth
+	\def\@svsec{}\else 
+	\refstepcounter{#1}
+								% 2.00(1)>>
+	\let\@@protect\protect \def\protect{\noexpand\protect\noexpand}
+	\edef\@svsec{\csname the#1\endcsname \csname sec@#1@postfix\endcsname
+		\hskip\@mojihaba} \let\protect\@@protect\fi	% 2.00(1)<<
+	\@tempskipa #5\relax
+	\ifdim \@tempskipa<\z@ 
+        	\def\@svsechd{#6\hskip #3\relax\@svsec #8}	% 2.00(1)
+	\else
+        	\begingroup #6\relax
+		\@hangfrom{\hskip #3\relax\@svsec}%
+			{\interlinepenalty\@M \sec@mojidori{#8}\par}%
+		\endgroup
+	\fi \@xsect{#5}}
+
+% \@ssect is modified to cope with 文字取り
+%
+% \@sect{INDENT}{BEFORESKIP}{AFTERSKIP}{STYLE}{TITLE}
+\def\@ssect#1#2#3#4#5{\@tempskipa #3\relax
+	\ifdim \@tempskipa<\z@ \def\@svsechd{#4\hskip #1\relax #5}%
+	\else \begingroup #4%
+		\@hangfrom{\hskip #1}{\interlinepenalty\@M
+			\sec@mojidori{#5}\par}\endgroup
+	\fi \@xsect{#3}}
+
+%% Modify \@xsect to avoid (buggy) \clubpenalty=10000. (H.N.)
+\def\@xsect#1{\@tempskipa #1\relax
+	\ifdim \@tempskipa<\z@
+		\glboal\@nobreakfalse \global\@noskipsectrue
+		\everypar{\global\@noskipsecfalse \hskip-\parindent
+			\begingroup \@svsechd \endgroup \unskip
+			\hskip -#1\everypar{}}%
+	\else
+		\par \nobreak
+		\vskip \@tempskipa \global\@nobreaktrue
+		\everypar{\global\@nobreakfalse
+			\if@afterindent\else {\setbox0\lastbox}\fi \everypar{}}
+	\fi\ignorespaces}
+
+% Here is a trick for 文字取り of sectioning tilte.  The rule is;
+%	2 - 4 Kanji char -> 5 Kanji char
+%	otherwise    -> natural width
+%
+\def\sec@mojidori#1{\setbox0\hbox{#1}\settowidth\@tempdimb{あ}%
+	\ifdim\wd0>4.5\@tempdimb #1\else
+	\ifdim\wd0<1.5\@tempdimb #1\else
+	\jintercharskip\fill \jasciikanjiskip\fill \jmathkanjiskip\fill
+	\leavevmode\hbox to5\@tempdimb{#1\hfil}\fi\fi}
+
+%%%%%% List-like Environments %%%%%%
+%
+%		LM	RM	LW	LS	LPI	II
+% default	2K	0	0.75K	0.25K	0	0
+% \enumerate	3K	0	3K	0	0	0
+% \Enumerate	0	0	3K	0	0	3K
+% \ENUMERATE	0	0	3K	0	0	4K
+% \enumerate*	1K	0	3K	0	0	2K
+% \itemize	2K	0	2K	0	0	0
+% \Itemize	0	0	2K	0	0	2K
+% \ITEMIZE	0	0	2K	0	0	3K
+% \itemize*	1K	0	2K	0	0	1K
+% \description	2K	0	0	1K	0	-1K
+% \Description	0	0	0	1K	0	1K
+% \DESCRIPTION	0	0	0	1K	0	2K
+% \description*	1K	0	0	1K	0	0
+% \verse	3K	2K	0.75K	0.25K	-1K	-1K
+% \quotation	2K	2K	0.75K	0.25K	1K	1K
+% \quote	2K	2K	0.75K	0.25K	0	0
+%
+% where LM is \leftmargin, RM is \rightmargin, LW is \labelwidth, LS is
+% \labelsep, \LPI is \listparindent, II is \itemindent, and K is Kanji char
+% width (\@mojihaba).
+%
+% All vertical space parameters, \topsep, \partopsep, \itemsep and \parsep,
+% are 0pt.
+
+\leftmargini2\@mojihaba
+\leftmarginii2\@mojihaba
+\leftmarginiii2\@mojihaba
+\leftmarginiv2\@mojihaba
+\leftmarginv2\@mojihaba
+\leftmarginvi2\@mojihaba
+
+\def\lst@listi{\labelsep.75\@mojihaba \labelwidth.25\@mojihaba
+	\rightmargin\z@ \listparindent\z@ \itemindent\z@
+	\partopsep\z@ \parsep\z@ \topsep\z@ \itemsep\z@}
+\def\@listi{\leftmargin\leftmargini \lst@listi}
+\def\@listii{\leftmargin\leftmarginii \lst@listi}
+\def\@listiii{\leftmargin\leftmarginiii \lst@listi}
+\def\@listiv{\leftmargin\leftmarginiv \lst@listi}
+\def\@listv{\leftmargin\leftmarginv \lst@listi}
+\def\@listvi{\leftmargin\leftmarginvi \lst@listi}
+
+\@listi
+
+\def\labelenumi{(\,\theenumi\,)} 
+\def\theenumi{\arabic{enumi}} 
+\def\labelenumii{(\,\theenumii\,)}
+\def\theenumii{\alph{enumii}}
+\def\p@enumii{\theenumi}
+\def\labelenumiii{(\,\theenumiii\,)}
+\def\theenumiii{\roman{enumiii}}
+\def\p@enumiii{\theenumi(\theenumii)}
+\def\labelenumiv{(\,\theenumiv\,)}
+\def\theenumiv{\Alph{enumiv}}
+\def\p@enumiv{\p@enumiii\theenumiii}
+\def\enumerate{\ifnum \@enumdepth >3 \@toodeep\else
+	\advance\@enumdepth \@ne 
+	\edef\@enumctr{enum\romannumeral\the\@enumdepth}
+	\list{\csname label\@enumctr\endcsname}{\usecounter
+		{\@enumctr}\def\makelabel##1{##1\hss}%
+		\leftmargin3\@mojihaba \labelwidth3\@mojihaba \labelsep\z@}\fi}
+\let\endenumerate\endlist
+
+\def\labelitemi{$\bullet$}
+\def\labelitemii{\bf --}
+\def\labelitemiii{$\ast$}
+\def\labelitemiv{$\cdot$}
+\def\itemize{\ifnum \@itemdepth >3 \@toodeep\else \advance\@itemdepth \@ne
+	\edef\@itemitem{labelitem\romannumeral\the\@itemdepth}%
+	\list{\csname\@itemitem\endcsname}{\def\makelabel##1{\hss##1\hss}%
+		\labelwidth2\@mojihaba \labelsep\z@}\fi}
+\let\enditemize\endlist
+
+\def\description{\list{}{\labelwidth\z@ \labelsep\@mojihaba
+	\itemindent\labelsep \advance\itemindent-\leftmargin
+	\def\makelabel##1{\bf ##1}}}
+\let\enddescription\endlist
+
+\let\latex@trivlist\@trivlist
+\def\lst@trivlist#1#2{\leftmargin#1\relax
+	\itemindent\labelwidth \advance\itemindent\labelsep
+	\advance\itemindent#2\relax
+	\let\@trivlist\latex@trivlist \@trivlist}
+
+\def\lst@Trivlist{\def\@trivlist{\lst@trivlist\z@\z@}}
+\def\Enumerate{\lst@Trivlist \enumerate}
+\let\endEnumerate\endlist
+\def\Itemize{\lst@Trivlist \itemize}
+\let\endItemize\endlist
+\def\Description{\lst@Trivlist \description}
+\let\endDescription\endlist
+
+\def\lst@TRIVLIST{\def\@trivlist{\lst@trivlist\z@\@mojihaba}}
+\def\ENUMERATE{\lst@TRIVLIST \enumerate}
+\let\endENUMERATE\endlist
+\def\ITEMIZE{\lst@TRIVLIST \itemize}
+\let\endITEMIZE\endlist
+\def\DESCRIPTION{\lst@TRIVLIST \description}
+\let\endDESCRIPTION\endlist
+
+\def\lst@strivlist{\def\@trivlist{\lst@trivlist\@mojihaba{-\@mojihaba}}}
+\@namedef{enumerate*}{\lst@strivlist \enumerate}
+\@namedef{endenumerate*}{\endlist}
+\@namedef{itemize*}{\lst@strivlist \itemize}
+\@namedef{enditemize*}{\endlist}
+\@namedef{description*}{\lst@strivlist \description}
+\@namedef{enddescription*}{\endlist}
+
+\def\verse{\let\\=\@centercr 
+	\list{}{\itemindent-\@mojihaba \listparindent\itemindent 
+	\rightmargin\leftmargin \advance\leftmargin\@mojihaba}\item[]}
+\let\endverse\endlist
+\def\quotation{\list{}{\listparindent\@mojihaba	\itemindent\listparindent
+	\rightmargin\leftmargin}\item[]}
+\let\endquotation\endlist
+\def\quote{\list{}{\rightmargin\leftmargin}\item[]}
+\let\endquote\endlist
+
+\def\newtheorem{\@ifstar
+	{\theo@newtheorem{\theo@it}{\ }}{\theo@newtheorem{}{\theo@sp}}}
+\def\theo@newtheorem#1#2#3{\@namedef{theo@it@#3}{#1}\@namedef{theo@sp@#3}{#2}%
+	\@ifnextchar[%]
+		     {\@othm{#3}}{\@nthm{#3}}}
+\def\@begintheorem#1#2{\DESCRIPTION \csname theo@it@\@currenvir\endcsname
+	\item[#1\csname theo@sp@\@currenvir\endcsname #2]}
+\def\@opargbegintheorem#1#2#3{\DESCRIPTION
+	\csname theo@style@\@currenvir\endcsname
+	\item[#1\csname theo@sp@\@currenvir\endcsname #2\ (#3)]}
+\let\@endtheorem\endlist					% 1.02(2)
+\ifDS@english
+\let\theo@it\it \let\theo@sp\ %
+\else
+\let\theo@it\relax \let\theo@sp\relax
+\fi
+
+%%%%%% Bibliography %%%%%%
+%
+% 1. Label format is "<nn>)".
+% 2. \leftmargin 24Q (or 2K)
+% 3. \labelsep is 6Q (or 0.5K)
+% 4. \baselineskip is 16Q(j)/15Q(e)/normal(d)
+% 5. ~ and \ is null but stretchable and (hardly) breakable.	% 2.09(1)
+
+\def\thebibliography#1{%
+	\section*{\hskip-\@mojihaba\hfill\hbox{\bib@refname}\hfill\hskip\z@}
+	\ifDS@draft \@tempdima\@mojihaba \else\@tempdima12\@Q\fi
+	\list{\arabic{enumi}\rlap{%(
+			   	  )}}%
+	     {\fs@bibliography \leftmargin2\@tempdima \labelwidth\z@
+		\labelsep\@tempdima \itemindent.5\@tempdima
+		\usecounter{enumi}\def\makelabel##1{\hss\llap{##1}}}
+	\def\newblock{\hskip .11em plus .33em minus .07em}
+	\sloppy \frenchspacing
+	\def\ {\hskip\z@ plus\fontdimen\thr@@\font \penalty5000\relax}}
+								% 2.09(1)
+\ifDS@english
+\def\bib@refname{References}
+\else
+{\fs@sec \@tempdima7\jspaceskip
+\xdef\bib@refname{\hbox to\the\@tempdima{\jintercharskip\fill 参考文献}}}
+\fi
+\newdimen\bib@adjustheight \bib@adjustheight-\maxdimen
+\def\endthebibliography{\endlist \par \@normalsize
+	\@tempdima\@colht \advance\@tempdima-\@colroom
+	\advance\@tempdima\pagetotal \advance\@tempdima-\prevdepth
+	\advance\@tempdima-\topskip
+	\@tempdimb\@tempdima \divide\@tempdima\baselineskip
+	\@tempcnta\@tempdima \@tempdima\@tempcnta\baselineskip
+	\advance\@tempdima-\@tempdimb
+	\ifdim\@tempdima<\z@ \advance\@tempdima\baselineskip \fi
+	\vskip-\prevdepth \vskip\@tempdima \prevdepth\z@
+	\bib@adjustheight\@tempdimb \advance\bib@adjustheight\@tempdima
+	\global\advance\bib@adjustheight\topskip
+	\if@firstcolumn\else\global\advance\bib@adjustheight\@M pt\fi}
+
+
+%%%%%% Floats %%%%%%
+
+% You may need to change following parameters
+\setcounter{topnumber}{4}
+\setcounter{bottomnumber}{4}
+\setcounter{totalnumber}{8}
+\setcounter{dbltopnumber}{4}
+\def\topfraction{.9}
+\def\bottomfraction{.9}
+\def\textfraction{.1}
+\def\dbltopfraction{.9}
+\def\floatpagefraction{.9}
+\def\dblfloatpagefraction{.9}
+
+\newcounter{figure}
+\newcounter{table}
+\def\thefigure{\@arabic\c@figure}
+\def\thetable{\@arabic\c@table}
+\def\fps@figure{tbp}
+\def\fps@table{tbp}
+\def\ftype@figure{1}
+\def\ftype@table{2}
+\def\fnum@figure{\fname@figure\thefigure}
+\def\fnum@table{\fname@table\thetable}
+\ifDS@english
+\def\fname@figure{Fig.\,}					% 2.06(1)
+\def\fname@Figure{Figure~}
+\def\fname@table{Table~}
+\else
+\def\fname@figure{図\fref@nobreak}				% 1.06(1)
+\let\fname@Figure\fname@figure
+\def\fname@table{è¡š\fref@nobreak}				% 1.06(1)
+\fi
+\def\fnum@efigure{Fig.\,\thefigure}				% 2.06(1)
+\def\fnum@etable{Table~\thetable}
+
+% 1.06(3) >>
+\def\figure{\let\cap@afterskip\relax \let\flt@fontsize\relax \@float{figure}}
+\def\endfigure{\end@float}
+\@namedef{figure*}{\let\cap@afterskip\relax \let\flt@fontsize\relax
+	\@dblfloat{figure}}
+\@namedef{endfigure*}{\end@dblfloat}
+
+%% Default font for table env. is \footnotesize (H.N.)
+\def\table{\let\cap@beforeskip\relax \let\flt@fontsize\fs@table
+	\@float{table}}
+\def\endtable{\end@float}
+\@namedef{table*}{\let\cap@beforeskip\relax \let\flt@fontsize\fs@table
+	\@dblfloat{table}}					% 2.01(2)
+\@namedef{endtable*}{\end@dblfloat}
+% 1.06(3) <<
+
+\let\latex@float\@float
+\let\latex@dbflt\@dbflt
+\def\@float{\cap@linewidth\hsize \cap@hsize\hsize \latex@float}
+\def\@dbflt{\cap@linewidth.8\textwidth \cap@hsize.667\textwidth \latex@dbflt}
+\let\latex@xfloat\@xfloat					% 1.06(3)
+\def\@xfloat#1[#2]{\latex@xfloat#1[#2]\flt@fontsize}
+								% 1.06(3)
+\def\end@float{\flt@endfloat
+	\ifdim\bib@adjustheight=-\maxdimen\else
+		\advance\bib@adjustheight\@tempdima
+		\global\advance\bib@adjustheight\baselineskip \fi
+	\ifnum\@floatpenalty <\z@
+		\@nameuse{@largefloatcheck}%			% 2.00(2)
+		\@cons\@currlist\@currbox
+	\ifdim \ht\@currbox >\textheight 
+		\ht\@currbox\textheight \fi
+	\ifnum\@floatpenalty < -\@Mii 
+        	\penalty -\@Miv 
+		\@tempdima\prevdepth \vbox{} \prevdepth\@tempdima
+		\penalty\@floatpenalty
+	\else \vadjust{\penalty -\@Miv \vbox{}\penalty\@floatpenalty}\@esphack
+	\fi\fi}
+\def\end@dblfloat{\if@twocolumn \flt@endfloat
+	\ifnum\@floatpenalty <\z@ \@cons\@dbldeferlist\@currbox\fi
+	\ifnum \@floatpenalty =-\@Mii \@esphack\fi\else\end@float\fi}
+\def\flt@endfloat{\par \vskip\z@
+	\global\@minipagefalse \@nameuse{outer@nobreak}\egroup	% 2.00(2)
+	\@nameuse{color@endbox}\@normalsize			% 2.00(2)
+	\@tempdima\ht\@currbox \advance\@tempdima\dp\@currbox
+	\divide\@tempdima\baselineskip \@tempcnta\@tempdima
+	\advance\@tempcnta\@ne \@tempdima\@tempcnta\baselineskip
+	\global\setbox\@currbox\vbox to\@tempdima{\box\@currbox\vfil}}
+								% 2.10(1)
+
+\def\cap@beforeskip{\nointerlineskip\vskip5pt}
+\def\cap@afterskip{\nointerlineskip\vskip5pt}
+\long\def\@caption#1[#2]#3{\par\begingroup
+	\fs@caption \cap@beforeskip
+	\@makecaption{{\bf \csname fnum@#1\endcsname}}{\ignorespaces#3}\par
+	\ifDS@english \cap@afterskip \fi
+	\endgroup}
+\def\ecaption{\@dblarg{\@ecaption\@captype}}
+\long\def\@ecaption#1[#2]#3{\par
+	\begingroup \fs@caption
+	\@makecaption{\csname fnum@e#1\endcsname}{\ignorespaces #3}\par
+	\cap@afterskip
+	\endgroup}
+
+\newif\ifcap@sw
+\newdimen\cap@linewidth
+\newdimen\cap@hsize
+\newcount\cap@prevgraf
+\newbox\cap@box
+\let\latex@label\label
+\long\def\@makecaption#1#2{\begingroup \gdef\cap@label{}\let\label\@gobble
+	\setbox0\hbox{#1\hskip\jspaceskip}
+	\advance\cap@linewidth-\wd0 \advance\cap@hsize-\wd0
+	\cap@makepar\cap@linewidth{#2}{\def\label##1{{%		    %1.03(1)
+		\def\protect{\noexpand\protect\noexpand}	    %1.03(1)
+		\xdef\cap@label{\cap@label\protect\label{##1}}}}}   %1.03(1)
+	\cap@swtrue
+	\ifnum\cap@prevgraf=\@ne
+		\setbox1\vbox{\unvcopy1\cap@getbox1
+			\ifhbox1 \global\setbox\cap@box\hbox{\unhbox1}
+			\ifdim\wd\cap@box>\cap@linewidth\else
+				\global\cap@swfalse \fi\fi}
+		\ifcap@sw\else
+			\cap@put{\vtop{\box\cap@box\hbox{}}}
+		\fi\fi
+	\ifcap@sw \cap@makepar\cap@hsize{#2}\relax
+	\ifnum\cap@prevgraf=\tw@
+		\setbox1\vbox{\unvcopy1\cap@getbox2\cap@getbox3
+			\ifhbox2\ifhbox3
+				\setbox2\hbox{\unhbox2}\setbox3\hbox{\unhbox3}
+				\ifdim\wd2>\cap@hsize\else
+				\ifdim\wd3>\cap@hsize\else
+				\global\cap@swfalse
+				\global\setbox\cap@box\vtop{\box3\box2\hbox{}}
+				\fi\fi\fi\fi}\fi
+	\ifcap@sw \setbox1\vtop{\hsize\cap@hsize
+		\@parboxrestore #2\par\hbox{}}\cap@put{\box1}
+	\else\cap@put{\box\cap@box}\fi
+	\fi
+	\endgroup \cap@label}
+\long\def\cap@makepar#1#2#3{\setbox1\vbox{\hsize#1\@parboxrestore
+	\rightskip\@flushglue \hfuzz\maxdimen
+	\exhyphenpenalty\z@ \finalhyphendemerits\z@
+	\let\@@par\cap@par \let\par\cap@par \global\cap@prevgraf\z@
+	#3#2\cap@par}}
+\let\cap@@par\@@par
+\def\cap@par{\cap@@par\global\advance\cap@prevgraf\prevgraf \prevgraf\z@}
+\def\cap@put#1{\hbox to\hsize{\hss\box0#1\hss}
+	\vskip-\baselineskip\prevdepth\z@}
+\def\cap@getbox#1{\@tempcnta10\relax\@whilenum\@tempcnta>0\do{%
+	\unskip\unkern\unpenalty\advance\@tempcnta\m@ne}\setbox#1\lastbox}
+
+\def\figref{\fref@ref\fname@figure}
+\def\Figref{\fref@ref\fname@Figure}
+\def\tabref{\fref@ref\fname@table}
+\let\Tabref\tabref
+\def\fref@ref#1{\@ifstar{\fref@sref{#1}}{\fref@iref\bf{#1}}}
+\def\fref@iref#1#2#3{{\@ifundefined{fref@r@#3}%
+	{#1#2\fref@doref{#3}\global\@namedef{fref@r@#3}{}}{#2\fref@doref{#3}}}}
+\def\fref@sref#1#2{#1\fref@doref{#2}}
+\def\fref@doref#1{{\let\null\relax\ref{#1}}}			% 1.06(2)
+\def\fref@nobreak{\nobreak\ifASCII\else\hskip\@@jasciikanjiskip\fi}
+								% 1.06(1)
+
+\def\fig@extraspace{3mm}					%1.04(4)
+\def\figspace#1{\vskip#1\vskip\fig@extraspace}			%1.04(4)
+
+%%%%%% Footnote %%%%%%
+
+%% The following codes are from pfnote.sty, by H. Nakashima of Kyoto Univ.,
+%% to reset footnote counter at the begining of every page. (H.N.)
+
+% 1.04(2c)>>
+\def\footnote{\@ifnextchar[%]
+	{\@xfootnote}{{\PF@adjustfnote \stepcounter{\@mpfn}%
+		\xdef\@thefnmark{\thempfn}}\@footnotemark\@footnotetext}}
+\def\footnotemark{\@ifnextchar[%]
+	{\@xfootnotemark}{{\PF@adjustfnote \stepcounter{footnote}%
+		\xdef\@thefnmark{\thefootnote}}\@footnotemark}}
+% 1.04(2c)<<
+
+\newcount\PF@fnotectr\global\PF@fnotectr=\z@
+\newcount\PF@page\global\PF@page=-\@M
+\def\PF@thepage{\number\c@page}
+\def\PF@adjustfnote{\global\advance\PF@fnotectr\@ne
+	\expandafter\ifx\csname PF@fn\number\PF@fnotectr\endcsname\relax
+		\global\c@footnote\z@\else
+	\expandafter\@tempcnta\csname PF@fn\number\PF@fnotectr\endcsname\relax
+	\ifnum\@tempcnta=\PF@page\else
+		\global\PF@page\@tempcnta \global\c@footnote\z@ \fi\fi
+% 1.04(2a)>>
+	\expandafter\ifx\csname PF@fnpage\number\PF@page\endcsname\relax \else
+	\expandafter\@tempcnta\csname PF@fnpage\number\PF@page\endcsname\relax
+								% 2.00(4)>>
+	\ifnum\@tempcnta>\tw@ \global\let\thefootnote\thefootnotemany
+	\else \global\let\thefootnote\thefootnoteord \fi\fi	% 2.00(4)<<
+	\@tempcnta\c@footnote \multiply\@tempcnta\@M
+	\advance\@tempcnta\PF@fnotectr
+	\if@filesw{\let\PF@thepage\relax
+		\xdef\@gtempa{\write\@auxout{\string\PF@fnpage
+		{\number\@tempcnta}{\PF@thepage}}}}%
+		\@gtempa\fi}
+% 1.04(2a)<<
+
+% 1.04(2a)>>
+\def\PF@fnpage#1#2{\@tempcnta#1\relax \@tempcntb\@tempcnta \divide\@tempcnta\@M
+	\expandafter\xdef\csname PF@fnpage#2\endcsname{\number\@tempcnta}
+	\multiply\@tempcnta\@M \advance\@tempcntb-\@tempcnta	
+	\global\@namedef{PF@fn\number\@tempcntb}{#2}}
+% 1.04(2a)<<
+%% End of quote from pfnote.sty. (H.N.)
+
+\long\def\@makefntext#1{\leftskip20\@Q
+	\noindent\llap{\@makefnmarkforfn\hskip-\scriptspace\hskip5\@Q}#1}
+								% 1.04(2e)
+\def\@makefnmarkstar{$^{\hbox{\tiny\fn@fontv\@thefnmark}}$}	% 1.04(2d)
+\def\@makefnmarkdagger{$\@thefnmark$}
+\let\@makefnmarkforfn\@makefnmarkstar
+
+\def\@makefnmark{\smash{\hbox{\scriptsize\fn@fontvi$^{\@thefnmark}$}}}
+								% 1.04(2d)
+						% smashed to make it
+						% zero height
+
+%% Awful definition of \thefootnote to put subsequent ☆'s. (H.N.)
+\def\thefootnote{\leavevmode\hbox{%
+	\ifcase\c@footnote\or ☆\or ☆☆\or ☆☆☆\else \thefootnotemany\fi}}
+								% 1.04(2b)
+\def\thefootnotemany{\hbox{☆\hskip\z@\number\c@footnote}}	% 1.04(2b)
+								% 2.05(3)
+\let\thefootnoteord\thefootnote
+
+
+%%%%%% Citation %%%%%%
+
+%% The following codes for \cite are from overcite.sty by D. Arseneau, but
+%% modified for Trans. IPSJ (H.N.)
+%     O V E R C I T E . S T Y
+%
+%     version 3.2  (Mar 1993)
+%
+%     Compressed, sorted lists of superscript numerical citations.
+%     see also CITE.STY and DRFTCITE.STY
+%
+%     Copyright (C) 1989-1993 by Donald Arseneau
+%     These macros may be freely transmitted, reproduced, or modified for
+%     non-commercial purposes provided that this notice is left intact.
+%
+\def\cite{\protect\@p@cite}
+\def\@p@cite{\let\@citeY\@citey \@p@@cite}
+\def\Cite{\protect\@p@Cite}
+\def\@p@Cite{\let\@citeY\@Citey \@p@@cite}
+\def\@p@@cite{\@ifnextchar[%]
+		          {\@tempswatrue\@citex}{\@tempswafalse\@citex[]}}
+\def\@citex[#1]#2{\@citeY{\@p@citen{#2}}\if@tempswa\space[#1]\fi}
+\def\@citey#1{\leavevmode\unskip\kern\z@$\let\@cite@tiestyle\scriptstyle
+%     								% 2.06(2)
+	\def\@cite@punct{,}\m@th^{\hbox{\scriptsize#1}}$\spacefactor\@m}
+\def\@Citey#1{\let\@cite@tiestyle\textstyle
+	\ifDS@english \def\@cite@punct{,\space\penalty\@highpenalty}%1.04(1)
+	\else\def\@cite@punct{}\fi#1\spacefactor\@m}		    %1.04(1)
+
+\def\@p@citen#1{%
+	\edef\@tempa{\@ignspaftercomma,#1, \@end, }%
+	\edef\@tempa{\expandafter\@ignendcommas\@tempa\@end}%
+	\if@filesw \immediate\write\@auxout{\string\citation{\@tempa}}\fi
+	\@tempcntb\m@ne \let\@h@ld\relax \let\@citea\@empty
+	\let\@celt\relax \def\@cite@list{}%			% 2.06(3)
+	\@for\@citeb:=\@tempa\do{\@make@cite@list}%
+	\@tempcnta\m@ne \let\@celt\@compress@cite \@cite@list
+	\@h@ld}
+\def\@ignspaftercomma#1, {\ifx\@end#1\@empty\else
+	#1,\expandafter\@ignspaftercomma\fi}
+\def\@ignendcommas,#1,\@end{#1}
+
+%(
+\let\@cite@rp)
+\chardef\@cite@escape`\\
+\def\@make@cite@list{%
+    \expandafter\let\expandafter\@B@citeB\csname b@\@citeb\endcsname
+    \ifx\@B@citeB\relax
+	\@citea {\bf ?}\@cite@rp \let\@citea\@cite@punct
+	\@latex@warning{Citation `\@citeb' on page \thepage\space undefined}%
+								% 2.00(3)
+	\global\@namedef{b@\@citeb}{{\bf ?}}%
+    \else
+	\ifcat \@cite@escape\ifnum\z@<0\@B@citeB \@cite@escape\else A\fi
+	    \@tempcnta\@B@citeB \relax
+	    \ifnum \@tempcnta>\@tempcntb
+		\edef\@cite@list{\@cite@list \@celt{\@B@citeB}}%
+		\@tempcntb\@tempcnta
+	     \else
+		\edef\@cite@list{\expandafter\@sort@celt\@cite@list\@gobble @}%
+		\fi
+	\else \@citea \@B@citeB \@cite@rp \let\@citea\@cite@punct
+    \fi\fi}
+
+\def\@sort@celt#1#2{\ifx \@celt #1% parameters are \@celt {num}
+	\ifnum #2<\@tempcnta % number goes later in list
+	    \@celt{#2}\expandafter\expandafter\expandafter\@sort@celt
+	\else \@celt{\number\@tempcnta}\@celt{#2}\fi\fi}
+
+\def\@compress@cite#1{\advance\@tempcnta\@ne
+	\ifnum #1=\@tempcnta
+		\ifx\@h@ld\relax \edef\@h@ld{\@citea #1\@cite@rp}%
+		\else \edef\@h@ld{\hbox{$\@cite@tiestyle\sim$}%
+			\penalty\@highpenalty #1\@cite@rp}\fi
+	\else \@h@ld \@citea #1\@cite@rp
+		\let\@h@ld\relax
+	\fi \@tempcnta#1\relax \let\@citea\@cite@punct}
+
+%% End of quote from overcite.sty. (H.N.)
+
+\def\multicite{\protect\@p@multicite}
+\def\@p@multicite#1#2{\@citey{\@p@citen{#1}$\scriptstyle\sim$\@p@citen{#2}}}
+\def\multiCite{\protect\@p@multiCite}
+\def\@p@multiCite#1#2{\@Citey{\@p@citen{#1}$\sim$\penalty\@highpenalty
+	\@p@citen{#2}}}
+
+
+%%%%%% Box Height Adjustment and Displayed Math %%%%%%
+
+\newbox\adj@boxa \newbox\adj@boxb
+\newdimen\adj@height
+\@tempdima\baselineskip \advance\@tempdima-\topskip
+\edef\adj@minaboveclearance{\the\@tempdima}
+\@tempdima\baselineskip \advance\@tempdima-1ex
+\edef\adj@maxaboveclearance{\the\@tempdima}
+\ifDS@english
+\setbox0\hbox{A}
+\else
+\setbox0\hbox{あ}
+\fi
+\@tempdima\baselineskip \advance\@tempdima-\ht0 \advance\@tempdima\dp0
+\edef\adj@bhd{\the\@tempdima}
+
+% 2.01(1) >>
+\def\adjustvboxheight{\ifinner \let\@tempa\relax
+	\let\endadjustvboxheight\relax \let\@endadjustvboxheight\relax
+	\else \let\@tempa\@adjustvboxheight \fi \@tempa}
+\def\@adjustvboxheight{\par\penalty\z@
+	\global\setbox\adj@boxa\vbox\bgroup\relax		% 1.01(3)
+	\let\@footnotetext\@mpfootnotetext			% 2.02(1)
+%								% 2.05(1)
+	\hsize\columnwidth}
+% 2.01(1) <<
+\def\endadjustvboxheight{\adj@closebox \adj@putbox
+	\ifvoid\@mpfootins\else\insert\footins{\unvbox\@mpfootins}\fi
+%								% 2.02(1)
+	\global\@ignoretrue\@endparenv}
+\def\adj@closebox{\egroup \normalsize \boxmaxdepth\@maxdepth	% 1.01(1,3)
+	\setbox\adj@boxa\vbox{\unvbox\adj@boxa}			% 1.01(3)
+	\adj@height\ht\adj@boxa
+	\advance\adj@height\adj@minaboveclearance\relax
+	\@tempdima\adj@height \divide\adj@height\baselineskip
+	\@tempcnta\adj@height \adj@height\@tempcnta\baselineskip
+	\ifdim\adj@height<\@tempdima \advance\adj@height\baselineskip\fi}
+\def\adj@putbox{\vskip-\prevdepth \prevdepth\z@ \vskip\baselineskip
+	\vspace*{-\baselineskip}\advance\@tempdima-\adj@height
+	\@tempdima-\@tempdima \advance\@tempdima\adj@minaboveclearance\relax
+	\@tempdimb\dp\adj@boxa
+	\ifdim\@tempdima>\adj@maxaboveclearance\relax
+		\advance\@tempdima-\@tempdimb \advance\@tempdima\adj@bhd\relax
+		\divide\@tempdima\tw@
+		\vbox to\adj@height{\vskip\@tempdima \box\adj@boxa \vss}
+	\else	\vbox to\adj@height{\vfil\box\adj@boxa\vskip-\@tempdimb}\fi}
+
+\newcount\adj@deadcycle
+\@namedef{adjustvboxheight*}{\adjustvboxheight}
+\@namedef{endadjustvboxheight*}{\@endadjustvboxheight}
+\def\@endadjustvboxheight{\global\adj@deadcycle10\relax
+	\@iendadjustvboxheight
+	\ifvoid\@mpfootins\else\insert\footins{\unvbox\@mpfootins}\fi
+%								% 2.05(2)
+	\global\@ignoretrue\@endparenv}
+\def\@iendadjustvboxheight{\adj@closebox
+	\ifnum\adj@deadcycle<\@ne
+	\ipsj@error{I cannot adjust too tall/deep box}{\@ehd}\fi    % 2.00(3)
+	\global\advance\adj@deadcycle\m@ne
+	\ifdim\pagegoal=\maxdimen
+		\@tempdimb\@colht \advance\@tempdimb-\topskip
+		\advance\@tempdimb\baselineskip
+	\else \@tempdimb\pagegoal
+		\advance\@tempdimb-\pagetotal \advance\@tempdimb-\pagedepth
+		\advance\@tempdimb\prevdepth \fi		% 1.01(4a)
+	\let\next\relax
+	\ifdim\adj@height<\@tempdimb \adj@putbox \else
+	\ifdim\adj@height=\@tempdimb \adj@putbox \else
+	\divide\@tempdimb\baselineskip \@tempcnta\@tempdimb	% 1.01(4b)>>
+	\@tempdimb\@tempcnta\baselineskip
+	\advance\@tempdimb-\adj@minaboveclearance\relax		% 1.01(4b)<<
+	\setbox\adj@boxa\vbox{\allowbreak\unvbox\adj@boxa}
+	\vbadness\@M \splittopskip\z@ \splitmaxdepth\@maxdepth	%1.01(1)
+	\setbox\@tempboxa\vsplit\adj@boxa to\@tempdimb
+	\setbox\adj@boxb\copy\adj@boxa
+	\setbox\@tempboxa\vbox{\unvbox\@tempboxa}
+	\@tempdimb\ht\@tempboxa \advance\@tempdimb\dp\@tempboxa
+	\ifdim\@tempdimb>\z@
+		\setbox\adj@boxa\vbox\bgroup\unvbox\@tempboxa
+		\adj@closebox \adj@putbox \newpage
+	\else \newpage \fi
+	\setbox\adj@boxa\vbox\bgroup\unvbox\adj@boxb
+	\let\next\@iendadjustvboxheight \fi\fi \next}
+
+\def\adj@eqindent{2\@mojihaba}
+\def\[{\adjustvboxheight\advance\@totalleftmargin\adj@eqindent\relax
+	\hbox to\hsize\bgroup\hskip\@totalleftmargin$\displaystyle}
+\def\]{$\hfill\egroup\endadjustvboxheight\@doendpe\ignorespaces} % 2.03(1)
+\def\equation{\refstepcounter{equation}\[}
+\def\endequation{\hfill\@eqnnum$\egroup\endadjustvboxheight}
+\def\theequation{\arabic{equation}}
+\def\@eqnnum{{\rm (\theequation)\hskip\@mojihaba}} 
+
+\def\adj@eqnlineskip{3pt}
+\def\adj@eqnlineskiplimit{2pt}
+\def\eqnarray{\futurelet\@tempa\adj@eqnarray}
+\def\adj@eqnarray{\ifx\@tempa[%]
+	\let\next\adj@ieqnarray\else\let\next\adj@xeqnarray\fi\next}
+\def\adj@ieqnarray[#1]{\@ifundefined{adj@xeqnarray#1}%
+	{\ipsj@warning{Unknown eqnarray option `#1'}\adj@xeqnarray}% 2.00(3)
+	{\@nameuse{adj@xeqnarray#1}}}
+\def\adj@xeqnarray{\adjustvboxheight
+	\advance\@totalleftmargin\adj@eqindent\relax
+	\stepcounter{equation}\let\@currentlabel=\theequation
+	\global\@eqnswtrue
+	\global\@eqcnt\z@\tabskip\z@\let\\=\@eqncr
+	\lineskip\adj@eqnlineskip \lineskiplimit\adj@eqnlineskiplimit \jot\z@
+	\halign to \hsize\bgroup\@eqnsel\hskip\@totalleftmargin
+		\hfil$\displaystyle{##}$&\global\@eqcnt\@ne	% 1.01(2)
+		\hfil$\displaystyle{}\mathrel{##}{}$\hfil
+		&\global\@eqcnt\tw@ $\displaystyle{##}$\hfil
+		\tabskip\@centering&\llap{##}\tabskip\z@\cr}
+\def\adj@xeqnarrays{\let\endadjustvboxheight\@endadjustvboxheight
+	\adj@xeqnarray}
+\@namedef{adj@xeqnarrays!}{\par\let\adjustvboxheight\relax
+	\let\endadjustvboxheight\relax \adj@xeqnarray}
+\def\endeqnarray{\@@eqncr \egroup \global\advance\c@equation\m@ne
+	\endadjustvboxheight}
+
+
+%%%%%% Kinsoku Parameters %%%%%%
+
+% 1.04(3)>>
+\ifASCII
+\postbreakpenalty`\`=\@M
+\prebreakpenalty`'=\@M
+\prebreakpenalty`)=\@M
+\postbreakpenalty`(=\@M
+\prebreakpenalty`]=\@M
+\postbreakpenalty`[=\@M
+\prebreakpenalty`\}=\@M
+\postbreakpenalty`\{=\@M
+
+\prebreakpenalty`・=\@M
+\prebreakpenalty`=\@M
+\prebreakpenalty`=\@M
+\prebreakpenalty`=\@M
+\prebreakpenalty`=\@M
+
+\prebreakpenalty\jis"212D=\@M		% ÂŽ
+\postbreakpenalty\jis"212E=\@M		% 
+\postbreakpenalty\jis"2146=\@M		% ‘
+\prebreakpenalty\jis"2147=\@M		% ’
+\postbreakpenalty\jis"2148=\@M		% “
+\prebreakpenalty\jis"2149=\@M		% ”
+
+\prebreakpenalty`=\@M
+\postbreakpenalty`=\@M
+\prebreakpenalty`=\@M
+\postbreakpenalty`=\@M
+\prebreakpenalty`=\@M
+\postbreakpenalty`=\@M
+\postbreakpenalty`‘=\@M
+\prebreakpenalty`’=\@M
+
+\postbreakpenalty\jis"214C=\@M		%〔
+\prebreakpenalty\jis"214D=\@M		% 〕
+\postbreakpenalty\jis"2152=\@M		% 〈
+\prebreakpenalty\jis"2153=\@M		% 〉
+\postbreakpenalty\jis"2154=\@M		% 《
+\prebreakpenalty\jis"2155=\@M		% 》
+\postbreakpenalty\jis"2156=\@M		% 「
+\prebreakpenalty\jis"2157=\@M		% 」
+\postbreakpenalty\jis"2158=\@M		% 『
+\prebreakpenalty\jis"2159=\@M		% 』
+\postbreakpenalty\jis"215A=\@M		% 【
+\prebreakpenalty\jis"215B=\@M		% 】
+
+\prebreakpenalty`ぁ=\@M
+\prebreakpenalty`ぃ=\@M
+\prebreakpenalty`ぅ=\@M
+\prebreakpenalty`ぇ=\@M
+\prebreakpenalty`ぉ=\@M
+\prebreakpenalty`っ=\@M
+\prebreakpenalty`ゃ=\@M
+\prebreakpenalty`ゅ=\@M
+\prebreakpenalty`ょ=\@M
+\prebreakpenalty\jis"246E=\@M		% ゎ
+\prebreakpenalty`ァ=\@M
+\prebreakpenalty`ィ=\@M
+\prebreakpenalty`ゥ=\@M
+\prebreakpenalty`ェ=\@M
+\prebreakpenalty`ォ=\@M
+\prebreakpenalty`ッ=\@M
+\prebreakpenalty`ャ=\@M
+\prebreakpenalty`ュ=\@M
+\prebreakpenalty`ョ=\@M
+\prebreakpenalty\jis"256E=\@M		% ヮ
+\prebreakpenalty\jis"2575=\@M		% ヵ
+\prebreakpenalty\jis"2576=\@M		% ヶ
+
+\fi
+% 1.04(3)<<
+
+
+%%%%%% Miscellaneous %%%%%%
+
+%% \doublerulesep is 1pt (H.N.)
+\arraycolsep5pt \tabcolsep6pt \arrayrulewidth.4pt \doublerulesep1pt 
+\tabbingsep.5\@mojihaba
+
+\skip\@mpfootins\skip\footins
+\fboxsep3pt \fboxrule.4pt 
+
+%% We simply allow (not encourage) club and widow lines. (H.N.)
+\clubpenalty\z@ \widowpenalty\z@ \displaywidowpenalty\z@
+
+% The following redefinition influences \linebreak etc.
+\def\sloppy{\tolerance9999\hbadness9999\hfuzz.5\p@ \vfuzz.5\p@}
+
+\endinput
--- a/Paper/ipsjdrafts.sty	Sun Nov 18 02:33:16 2012 +0900
+++ b/Paper/ipsjdrafts.sty	Sun Nov 18 03:32:29 2012 +0900
@@ -1,1 +1,364 @@
-% Copyright (C) 1995,1996,1997,1998,1999,2000,2001
%			by Hiroshi Nakashima, Yasuki Saito and
%                          The Editorial Board of the IPSJ Journal
%
% ipsjdrafts.sty  5-Jun-00 by Hiroshi Nakashima (ver 2.07)
% (revision history deleted)
% ipsjdrafts.sty 24-Apr-95 by Hiroshi Nakashima (ver 1.0)

%%%%%% Fonts %%%%%%
% All font loading are removed.

\ifASCII

\let\latex@setsize\@setsize
\def\@setsize#1#2#3#4{\latex@setsize{#1}{#2}{#3}{#4}\jspaceskip1zw}

\newcount\jfsize
\let\setjglues\relax
\let\jintercharskip\kanjiskip
\let\jasciikanjiskip\xkanjiskip
\let\jmathkanjiskip\xkanjiskip
\newdimen\jspaceskip

\def\defjintercharskip#1#2#3#4{\@asciiwarning{\defjintercharskip}}
\def\defjasciikanjiskip#1#2#3#4{\@asciiwarning{\defjasciicharskip}}
\def\defmathkanjiskip#1#2#3#4{\@asciiwarning{\defmathcharskip}}
\def\defjspaceskip#1#2#3#4{\@asciiwarning{\defjspaceskip}}

\def\@asciiwarning#1{\ipsj@warning{\string#1\space		% 2.00(1)
	is not supported in ASCII version}}

\if@LaTeX@eN							% 2.00(2)>>
\DeclareOldFontCommand{\mc}{\normalfont\mcfamily}{\mathmc}
\DeclareOldFontCommand{\gt}{\normalfont\gtfamily}{\mathgt}
\fi								% 2.00(2)<<

\def\dg{\gt}							% 1.06(1)
\def\dm{\mc}							% 1.06(1)

\else	% This is necessary even in 2e.
\ifx\sixdm\undefined \jfont\sixdm=dm6 \fi			% 1.01(1)
								% 1.06(2)
\fi

\if@LaTeX@eN							% 2.00(2)>>
\DeclareOldFontCommand{\rm}{\normalfont\rmfamily}{\mathrm}
\DeclareOldFontCommand{\sf}{\normalfont\sffamily}{\mathsf}
\DeclareOldFontCommand{\tt}{\normalfont\ttfamily}{\mathtt}
\DeclareOldFontCommand{\bf}{\normalfont\bfseries}{\mathbf}
\DeclareOldFontCommand{\it}{\normalfont\itshape}{\mathit}
\DeclareOldFontCommand{\sl}{\normalfont\slshape}{\@nomath\sl}
\DeclareOldFontCommand{\sc}{\normalfont\scshape}{\@nomath\sc}
\DeclareRobustCommand*{\cal}{\@fontswitch{\relax}{\mathcal}}
\DeclareRobustCommand*{\mit}{\@fontswitch{\relax}{\mathnormal}}
\fi								% 2.00(2)<<

%%%%%% Basic Font Size Macros %%%%%%
% Nothing at all.


%%%%%% Font Size Macros %%%%%%

\def\fs@setsize#1#2#3#4{\normalsize\dimen@\normalbaselineskip
	\@ifstar{\@setsize{#1}{\dimen@}{#3}{#4}}%
		{\@setsize{#1}{#2}{#3}{#4}}}

% \baselineskip's are almost 1.25 times those defined in NTT jart12.

\def\@normalsize{\@setsize\normalsize{20pt}\xiipt\@xiipt}
\def\small{\fs@setsize\small{17pt}\xipt\@xipt}
\def\footnotesize{\fs@setsize\footnotesize{14pt}\xpt\@xpt}
\def\scriptsize{\@setsize\scriptsize{11.875pt}\viiipt\@viiipt}
\def\tiny{\@setsize\tiny{8.75pt}\vipt\@vipt}
\def\large{\@setsize\large{20pt}\xivpt\@xivpt}			% 1.06(3)
\def\Large{\@setsize\Large{25pt}\xviipt\@xviipt}
\def\LARGE{\@setsize\LARGE{25pt}\xxpt\@xxpt}
\let\huge\LARGE
\let\Huge\LARGE

\if@LaTeX@e							% 2.00(3)>>
\let\normalsize\@normalsize
\fi								% 2.00(3)<<

\let\fs@sec\large
\let\fs@subsec\normalsize
\let\fs@bibliography\normalsize
\let\fs@caption\normalsize
\let\fs@table\normalsize
\let\fs@footnote\footnotesize
{\tiny \xdef\fn@fontv{\ifASCII \the\jfont \else \sixdm \fi}}
\let\fn@fontvi\fn@fontv

\@normalsize 

\ifASCII\else							% 1.06(2) >>
\ifx\setjglue\undefined\else					% 2.04(1)
\def\@tempc{\edef\@tempa{\the\ja}
	\edef\@tempa{\expandafter\string\@tempa}
	\expandafter\@tempb\@tempa\@nil
	\expandafter\defjintercharskip\csname\@tempa\endcsname}
\let\@tempd\@namedef
{\catcode`j=12\catcode`a=12\gdef\@tempb#1#2ja\@nil{\@tempd{@tempa}{#2}}}
\dg\@tempc{0pt}{1.4pt}{0.14pt}
\dm\@tempc{0pt}{1.4pt}{0.14pt}
\setjglues
\fi\fi								% 1.06(2) <<

\@tempdima.55\baselineskip
\edef\sec@aboveskip{\the\@tempdima}
\@tempdima.45\baselineskip
\edef\sec@belowskip{\the\@tempdima}

\if@LaTeX@e\else						% 2.04(2)
\let\latex@bf\bf						% 1.06(1)
\def\bf{\dg\latex@bf}						% 1.06(1)
\fi								% 2.04(2)


%%%%%% Page Layout Parameters %%%%%%

\newdimen\@mojihaba
\@mojihaba\jspaceskip

% No heads
\headheight\z@
\headsep\z@

\setbox0\hbox{$\displaystyle X^X$}
\topskip\ht0

% 1 page = 32 lines
\textheight31\baselineskip \advance\textheight\topskip \advance\textheight100sp

% \topmargin is (A4height-\textheight)/2 - 1in
\topmargin296mm \advance\topmargin-\textheight \divide\topmargin\tw@
\advance\topmargin-1in
\ifASCII\if@LaTeX@e\@@topmargin\topmargin\fi\fi			% 2.00(4)

\footskip 1.5\baselineskip

% 1 page = 35 Kanji chars
\ifDS@english							% 1.06(4) >>
\textwidth404.13048pt
\else
\textwidth35\@mojihaba
\fi								% 1.06(4) <<

% \oddsidemargin is (A4width-\textwidth)/2 - 1in
\oddsidemargin210mm \advance\oddsidemargin-\textwidth \divide\oddsidemargin\tw@
\advance\oddsidemargin-1in

% As jart12
\footnotesep10pt
\skip\footins 10.8pt plus 4pt minus 2pt 
\def\footnoterule{\kern-3\p@ \hrule width.4\columnwidth \kern2.6\p@}

\floatsep \baselineskip \textfloatsep \baselineskip 
\intextsep \baselineskip \@maxsep \baselineskip
\dblfloatsep \baselineskip \dbltextfloatsep \baselineskip
\@dblmaxsep \baselineskip
\@fptop 0pt plus 1fil \@fpsep 0pt plus 2fil \@fpbot 0pt plus 1fil 
\@dblfptop 0pt plus 1fil \@dblfpsep 0pt plus 2fil \@dblfpbot 0pt plus 1fil

\parskip\z@ \parindent \@mojihaba
\@lowpenalty 51 \@medpenalty 151 \@highpenalty 301 
\@beginparpenalty -\@lowpenalty \@endparpenalty -\@lowpenalty
\@itempenalty -\@lowpenalty 


%%%%%% Title and Authors %%%%%%
%
% Format of title, author names and abstract.
%
%	\leftline{\LARGE ˜_•¶}
%	\vfill
%	\beign{center}\LARGE\bf <Japanese title>\end{center}
%	\vfill
%	\begin{center}\LARGE\bf <Engilish title>\end{center}
%	\vfill\vfill
%	\newpage
%	\large <Japanese author names>
%	\vfill
%	˜A—æ
%	\begin{itemize}\item[]\large <Contact address>\end{itemize}
%	\vfill\vfill
%	\newpage
%	\normalsize <Japanese abstract>
%	\normalsize <English abstract>

\def\maketitle{\@maketitle}

% default title header

\def\title{\@dblarg{\@xtitle}}
\def\@xtitle[#1]#2{\gdef\@title{#2}}
\def\@title{\leavevmode\mkt@warning\title}
\long\def\author#1{\long\gdef\@author{#1}}
\def\@author{\mkt@warning\author}

\newbox\@abstractbox

\def\abstract{\global\let\@abstract\relax
	\global\setbox\@abstractbox\vtop\bgroup}
\def\endabstract{\par\hbox{}\egroup}
\def\@abstract{\mkt@warning{abstract env}}

%% We need English title, author name(s) and abstract. (H.N.)
%% English author names are simply ignored.
\def\etitle#1{\gdef\@etitle{#1}}
\def\@etitle{\leavevmode\mkt@warning\etitle}
\long\def\eauthor#1{}

\newbox\@eabstractbox
\def\eabstract{\global\let\@eabstract\relax
	\global\setbox\@eabstractbox\vtop\bgroup}
\let\endeabstract\endabstract
\def\@eabstract{\mkt@warning{eabstract env}}

\ifDS@english \let\abstract\eabstract \let\@eabstract\@abstract \fi

% Contact address is required in draft.
\def\contact{\long\def\mkt@contact}
\def\mkt@contact{\leavevmode\mkt@warning\contact}

\def\mkt@warning#1{\ipsj@warning{Missing \string#1}}		% 2.00(1)

\def\@maketitle{\newpage\thispagestyle{empty}
	\leftline{\LARGE
		\ifDS@english \ifDS@technote Technical Note\else
			Regular Paper\fi
		\else \ifDS@technote ƒeƒNƒjƒJƒ‹ƒm[ƒg\else ˜_•¶\fi\fi}
	\vfill
	\begin{center}\LARGE\bf\@title\end{center}
	\ifDS@english\else 
		\vfill
		\begin{center}\LARGE\bf\@etitle\end{center}\fi
	\@thanks
	\vfill\vfill
	\newpage\thispagestyle{empty}
	\begingroup\large\vspace*{\fill}\rightskip0pt plus1fil
	\parindent\z@\parskip.5\baselineskip\hangindent2em\hangafter\@ne
	\def\par{{\@@par}}
	\mkt@makeauthor
	\par\vfill
	\noindent
	\ifDS@english Contact To:\else ˜A—æ\fi
	\endgroup
	\begin{itemize}\large\item[]\mkt@contact\end{itemize}
	\vfill\vfill\newpage \setcounter{page}{1}\def\thepage{\roman{page}}
	\ifDS@english\else \@abstract \centerline{\bf ŠT—v}
		\vskip-\prevdepth\vskip\baselineskip\vskip-\ht\@abstractbox
		\unvbox\@abstractbox\prevdepth\z@ \fi
	\centerline{\bf Abstract}
	\vskip-\prevdepth \vskip\baselineskip\vskip-\ht\@eabstractbox
	\@eabstract \unvbox\@eabstractbox
	\newpage \def\thepage{\arabic{page}}\setcounter{page}{1}}

\def\mkt@makeauthor{\let\member\mkt@member \let\nomember\mkt@nomember
	\let\stmember\mkt@stmember
	\expandafter\mkt@imakeauthor\@author\and\@nil\and}
\def\mkt@imakeauthor#1\and{\def\@tempa{#1}\ifx\@tempa\@nnil\let\next\relax
	\else #1\par\let\next\mkt@imakeauthor\fi\next}

% Macros to specify author's affiliation easily.
\ifDS@english
\def\paffilabel#1#2{\affilabel{#1}{Presently with #2}}
\else
\def\paffilabel#1#2{\affilabel{#1}{Œ»Ý #2}}
\fi
% Ignore English affiliation even if given.
\def\affilabel#1#2{\@ifundefined{affi@r@#1}%
		{\expandafter\xdef\csname affi@r@#1\endcsname
			{\affi@cuteng#2\\\@nil}}
		{\ipsj@warning{Affiliation label `#1' multiply defined}}}
								% 2.00(1)
\def\affiref#1{\@ifundefined{affi@r@#1}%
		{\ipsj@warning{%				% 2.00(1)
			Affiliation reference `#1' undefined}\hbox{(???)}}
		{\setbox\@tempboxa\hbox{(\csname affi@r@#1\endcsname)}%
			\@tempdima\wd\@tempboxa \advance\@tempdima2em\relax
			\ifdim\@tempdima>\hsize
				\newline\unhbox\@tempboxa
			\else\ \box\@tempboxa\fi}}
\def\affi@cuteng#1\\#2\@nil{#1}

% Membership of aurthor is required in draft.
\ifDS@english
\def\mkt@member#1{\ \hbox{[Regular Member\##1]}}
\def\mkt@nomember{\ \hbox{[Non Member]}}
\def\mkt@stmember#1{\ \hbox{[Student Member\##1]}}
\else
\def\mkt@member#1{\ \hbox{[³‰ïˆõ\##1]}}
\def\mkt@nomember{\ \hbox{[”ñ‰ïˆõ]}}
\def\mkt@stmember#1{\ \hbox{[Šw¶‰ïˆõ\##1]}}
\fi

%%%%%% Page Header and Footer %%%%%% 

\mark{{}{}} 

% The following counters are not used, but may appear.
\let\c@volpage\c@page						% 2.00(5)
\def\thevolpage{\thepage}					% 2.00(5)
\newcounter{volpageoffset} % You must set this to appropriate value
\newcounter{volume}\expandafter\let\csname c@Šª”\endcsname\c@volume
\newcounter{number}\expandafter\let\csname c@†”\endcsname\c@number
\newcounter{year}\expandafter\let\csname c@”N”\endcsname\c@year

\def\ps@plain{\let\@mkboth\@gobbletwo
	\def\@oddhead{\@checklines}\let\@evenhead\@oddhead
	\def\@oddfoot{\rm \hfil\thepage\hfil}\let\@evenfoot\@oddfoot}

% \checklines enables to draw a horizontal rule onto each baselines.

\newif\if@checklines \@checklinesfalse
\def\checklines{\@checklinestrue}
\def\@checklines{\if@checklines \rlap{\smash{\vtop{
	\hbox{} \vskip\headsep \hrule width\textwidth\vskip-.4pt \vskip\topskip
	\hrule\vskip-.4pt
	\@tempcnta31\relax\@@checklines}}}\hfil\fi}
\def\@@checklines{\ifnum\@tempcnta>\z@
	\vskip\normalbaselineskip \hrule\vskip-.4pt \advance\@tempcnta\m@ne
	\let\next\@@checklines\else\let\next\relax\fi\next}

\pagestyle{plain}
\pagenumbering{arabic}

\ifDS@english\else
\def\today{\the\year ”N \the\month ŒŽ \the\day “ú}
\fi


%%%%%% Output Routine %%%%%%
% Nothing at all.


%%%%%% Biography %%%%%%
% Almost nothing.

\def\Žó•t#1#2#3{}\let\received\Žó•t
\def\Ì˜^#1#2#3{}\let\accepted\Ì˜^

\def\biography{\let\member\@gobble \let\nomember\@gobble \let\stmember\@gobble
	\let\adjust\@gobble \setbox0\vbox\bgroup
	\tolerance\@M \hbadness\@M \hfuzz\maxdimen}
\def\endbiography{\egroup\setbox0\hbox{}}


%%%%%% Miscellaneous %%%%%%

\raggedbottom

\input{ipsjcommon.sty}

% Redefine \acknowledgment to put it separately.
\newbox\ack@box
\let\@acknowledgment\acknowledgment
\def\acknowledgment{\global\setbox\ack@box\vtop\bgroup\@acknowledgment}
\def\endacknowledgment{\par\egroup}

\let\id@enddocument\enddocument
\def\enddocument{\clearpage \unvbox\ack@box \id@enddocument}

\endinput
\ No newline at end of file
+% Copyright (C) 1995,1996,1997,1998,1999,2000,2001
+%			by Hiroshi Nakashima, Yasuki Saito and
+%                          The Editorial Board of the IPSJ Journal
+%
+% ipsjdrafts.sty  5-Jun-00 by Hiroshi Nakashima (ver 2.07)
+% (revision history deleted)
+% ipsjdrafts.sty 24-Apr-95 by Hiroshi Nakashima (ver 1.0)
+
+%%%%%% Fonts %%%%%%
+% All font loading are removed.
+
+\ifASCII
+
+\let\latex@setsize\@setsize
+\def\@setsize#1#2#3#4{\latex@setsize{#1}{#2}{#3}{#4}\jspaceskip1zw}
+
+\newcount\jfsize
+\let\setjglues\relax
+\let\jintercharskip\kanjiskip
+\let\jasciikanjiskip\xkanjiskip
+\let\jmathkanjiskip\xkanjiskip
+\newdimen\jspaceskip
+
+\def\defjintercharskip#1#2#3#4{\@asciiwarning{\defjintercharskip}}
+\def\defjasciikanjiskip#1#2#3#4{\@asciiwarning{\defjasciicharskip}}
+\def\defmathkanjiskip#1#2#3#4{\@asciiwarning{\defmathcharskip}}
+\def\defjspaceskip#1#2#3#4{\@asciiwarning{\defjspaceskip}}
+
+\def\@asciiwarning#1{\ipsj@warning{\string#1\space		% 2.00(1)
+	is not supported in ASCII version}}
+
+\if@LaTeX@eN							% 2.00(2)>>
+\DeclareOldFontCommand{\mc}{\normalfont\mcfamily}{\mathmc}
+\DeclareOldFontCommand{\gt}{\normalfont\gtfamily}{\mathgt}
+\fi								% 2.00(2)<<
+
+\def\dg{\gt}							% 1.06(1)
+\def\dm{\mc}							% 1.06(1)
+
+\else	% This is necessary even in 2e.
+\ifx\sixdm\undefined \jfont\sixdm=dm6 \fi			% 1.01(1)
+								% 1.06(2)
+\fi
+
+\if@LaTeX@eN							% 2.00(2)>>
+\DeclareOldFontCommand{\rm}{\normalfont\rmfamily}{\mathrm}
+\DeclareOldFontCommand{\sf}{\normalfont\sffamily}{\mathsf}
+\DeclareOldFontCommand{\tt}{\normalfont\ttfamily}{\mathtt}
+\DeclareOldFontCommand{\bf}{\normalfont\bfseries}{\mathbf}
+\DeclareOldFontCommand{\it}{\normalfont\itshape}{\mathit}
+\DeclareOldFontCommand{\sl}{\normalfont\slshape}{\@nomath\sl}
+\DeclareOldFontCommand{\sc}{\normalfont\scshape}{\@nomath\sc}
+\DeclareRobustCommand*{\cal}{\@fontswitch{\relax}{\mathcal}}
+\DeclareRobustCommand*{\mit}{\@fontswitch{\relax}{\mathnormal}}
+\fi								% 2.00(2)<<
+
+%%%%%% Basic Font Size Macros %%%%%%
+% Nothing at all.
+
+
+%%%%%% Font Size Macros %%%%%%
+
+\def\fs@setsize#1#2#3#4{\normalsize\dimen@\normalbaselineskip
+	\@ifstar{\@setsize{#1}{\dimen@}{#3}{#4}}%
+		{\@setsize{#1}{#2}{#3}{#4}}}
+
+% \baselineskip's are almost 1.25 times those defined in NTT jart12.
+
+\def\@normalsize{\@setsize\normalsize{20pt}\xiipt\@xiipt}
+\def\small{\fs@setsize\small{17pt}\xipt\@xipt}
+\def\footnotesize{\fs@setsize\footnotesize{14pt}\xpt\@xpt}
+\def\scriptsize{\@setsize\scriptsize{11.875pt}\viiipt\@viiipt}
+\def\tiny{\@setsize\tiny{8.75pt}\vipt\@vipt}
+\def\large{\@setsize\large{20pt}\xivpt\@xivpt}			% 1.06(3)
+\def\Large{\@setsize\Large{25pt}\xviipt\@xviipt}
+\def\LARGE{\@setsize\LARGE{25pt}\xxpt\@xxpt}
+\let\huge\LARGE
+\let\Huge\LARGE
+
+\if@LaTeX@e							% 2.00(3)>>
+\let\normalsize\@normalsize
+\fi								% 2.00(3)<<
+
+\let\fs@sec\large
+\let\fs@subsec\normalsize
+\let\fs@bibliography\normalsize
+\let\fs@caption\normalsize
+\let\fs@table\normalsize
+\let\fs@footnote\footnotesize
+{\tiny \xdef\fn@fontv{\ifASCII \the\jfont \else \sixdm \fi}}
+\let\fn@fontvi\fn@fontv
+
+\@normalsize 
+
+\ifASCII\else							% 1.06(2) >>
+\ifx\setjglue\undefined\else					% 2.04(1)
+\def\@tempc{\edef\@tempa{\the\ja}
+	\edef\@tempa{\expandafter\string\@tempa}
+	\expandafter\@tempb\@tempa\@nil
+	\expandafter\defjintercharskip\csname\@tempa\endcsname}
+\let\@tempd\@namedef
+{\catcode`j=12\catcode`a=12\gdef\@tempb#1#2ja\@nil{\@tempd{@tempa}{#2}}}
+\dg\@tempc{0pt}{1.4pt}{0.14pt}
+\dm\@tempc{0pt}{1.4pt}{0.14pt}
+\setjglues
+\fi\fi								% 1.06(2) <<
+
+\@tempdima.55\baselineskip
+\edef\sec@aboveskip{\the\@tempdima}
+\@tempdima.45\baselineskip
+\edef\sec@belowskip{\the\@tempdima}
+
+\if@LaTeX@e\else						% 2.04(2)
+\let\latex@bf\bf						% 1.06(1)
+\def\bf{\dg\latex@bf}						% 1.06(1)
+\fi								% 2.04(2)
+
+
+%%%%%% Page Layout Parameters %%%%%%
+
+\newdimen\@mojihaba
+\@mojihaba\jspaceskip
+
+% No heads
+\headheight\z@
+\headsep\z@
+
+\setbox0\hbox{$\displaystyle X^X$}
+\topskip\ht0
+
+% 1 page = 32 lines
+\textheight31\baselineskip \advance\textheight\topskip \advance\textheight100sp
+
+% \topmargin is (A4height-\textheight)/2 - 1in
+\topmargin296mm \advance\topmargin-\textheight \divide\topmargin\tw@
+\advance\topmargin-1in
+\ifASCII\if@LaTeX@e\@@topmargin\topmargin\fi\fi			% 2.00(4)
+
+\footskip 1.5\baselineskip
+
+% 1 page = 35 Kanji chars
+\ifDS@english							% 1.06(4) >>
+\textwidth404.13048pt
+\else
+\textwidth35\@mojihaba
+\fi								% 1.06(4) <<
+
+% \oddsidemargin is (A4width-\textwidth)/2 - 1in
+\oddsidemargin210mm \advance\oddsidemargin-\textwidth \divide\oddsidemargin\tw@
+\advance\oddsidemargin-1in
+
+% As jart12
+\footnotesep10pt
+\skip\footins 10.8pt plus 4pt minus 2pt 
+\def\footnoterule{\kern-3\p@ \hrule width.4\columnwidth \kern2.6\p@}
+
+\floatsep \baselineskip \textfloatsep \baselineskip 
+\intextsep \baselineskip \@maxsep \baselineskip
+\dblfloatsep \baselineskip \dbltextfloatsep \baselineskip
+\@dblmaxsep \baselineskip
+\@fptop 0pt plus 1fil \@fpsep 0pt plus 2fil \@fpbot 0pt plus 1fil 
+\@dblfptop 0pt plus 1fil \@dblfpsep 0pt plus 2fil \@dblfpbot 0pt plus 1fil
+
+\parskip\z@ \parindent \@mojihaba
+\@lowpenalty 51 \@medpenalty 151 \@highpenalty 301 
+\@beginparpenalty -\@lowpenalty \@endparpenalty -\@lowpenalty
+\@itempenalty -\@lowpenalty 
+
+
+%%%%%% Title and Authors %%%%%%
+%
+% Format of title, author names and abstract.
+%
+%	\leftline{\LARGE 論文}
+%	\vfill
+%	\beign{center}\LARGE\bf <Japanese title>\end{center}
+%	\vfill
+%	\begin{center}\LARGE\bf <Engilish title>\end{center}
+%	\vfill\vfill
+%	\newpage
+%	\large <Japanese author names>
+%	\vfill
+%	連絡先
+%	\begin{itemize}\item[]\large <Contact address>\end{itemize}
+%	\vfill\vfill
+%	\newpage
+%	\normalsize <Japanese abstract>
+%	\normalsize <English abstract>
+
+\def\maketitle{\@maketitle}
+
+% default title header
+
+\def\title{\@dblarg{\@xtitle}}
+\def\@xtitle[#1]#2{\gdef\@title{#2}}
+\def\@title{\leavevmode\mkt@warning\title}
+\long\def\author#1{\long\gdef\@author{#1}}
+\def\@author{\mkt@warning\author}
+
+\newbox\@abstractbox
+
+\def\abstract{\global\let\@abstract\relax
+	\global\setbox\@abstractbox\vtop\bgroup}
+\def\endabstract{\par\hbox{}\egroup}
+\def\@abstract{\mkt@warning{abstract env}}
+
+%% We need English title, author name(s) and abstract. (H.N.)
+%% English author names are simply ignored.
+\def\etitle#1{\gdef\@etitle{#1}}
+\def\@etitle{\leavevmode\mkt@warning\etitle}
+\long\def\eauthor#1{}
+
+\newbox\@eabstractbox
+\def\eabstract{\global\let\@eabstract\relax
+	\global\setbox\@eabstractbox\vtop\bgroup}
+\let\endeabstract\endabstract
+\def\@eabstract{\mkt@warning{eabstract env}}
+
+\ifDS@english \let\abstract\eabstract \let\@eabstract\@abstract \fi
+
+% Contact address is required in draft.
+\def\contact{\long\def\mkt@contact}
+\def\mkt@contact{\leavevmode\mkt@warning\contact}
+
+\def\mkt@warning#1{\ipsj@warning{Missing \string#1}}		% 2.00(1)
+
+\def\@maketitle{\newpage\thispagestyle{empty}
+	\leftline{\LARGE
+		\ifDS@english \ifDS@technote Technical Note\else
+			Regular Paper\fi
+		\else \ifDS@technote テクニカルノヌト\else 論文\fi\fi}
+	\vfill
+	\begin{center}\LARGE\bf\@title\end{center}
+	\ifDS@english\else 
+		\vfill
+		\begin{center}\LARGE\bf\@etitle\end{center}\fi
+	\@thanks
+	\vfill\vfill
+	\newpage\thispagestyle{empty}
+	\begingroup\large\vspace*{\fill}\rightskip0pt plus1fil
+	\parindent\z@\parskip.5\baselineskip\hangindent2em\hangafter\@ne
+	\def\par{{\@@par}}
+	\mkt@makeauthor
+	\par\vfill
+	\noindent
+	\ifDS@english Contact To:\else 連絡先\fi
+	\endgroup
+	\begin{itemize}\large\item[]\mkt@contact\end{itemize}
+	\vfill\vfill\newpage \setcounter{page}{1}\def\thepage{\roman{page}}
+	\ifDS@english\else \@abstract \centerline{\bf 抂芁}
+		\vskip-\prevdepth\vskip\baselineskip\vskip-\ht\@abstractbox
+		\unvbox\@abstractbox\prevdepth\z@ \fi
+	\centerline{\bf Abstract}
+	\vskip-\prevdepth \vskip\baselineskip\vskip-\ht\@eabstractbox
+	\@eabstract \unvbox\@eabstractbox
+	\newpage \def\thepage{\arabic{page}}\setcounter{page}{1}}
+
+\def\mkt@makeauthor{\let\member\mkt@member \let\nomember\mkt@nomember
+	\let\stmember\mkt@stmember
+	\expandafter\mkt@imakeauthor\@author\and\@nil\and}
+\def\mkt@imakeauthor#1\and{\def\@tempa{#1}\ifx\@tempa\@nnil\let\next\relax
+	\else #1\par\let\next\mkt@imakeauthor\fi\next}
+
+% Macros to specify author's affiliation easily.
+\ifDS@english
+\def\paffilabel#1#2{\affilabel{#1}{Presently with #2}}
+\else
+\def\paffilabel#1#2{\affilabel{#1}{珟圚 #2}}
+\fi
+% Ignore English affiliation even if given.
+\def\affilabel#1#2{\@ifundefined{affi@r@#1}%
+		{\expandafter\xdef\csname affi@r@#1\endcsname
+			{\affi@cuteng#2\\\@nil}}
+		{\ipsj@warning{Affiliation label `#1' multiply defined}}}
+								% 2.00(1)
+\def\affiref#1{\@ifundefined{affi@r@#1}%
+		{\ipsj@warning{%				% 2.00(1)
+			Affiliation reference `#1' undefined}\hbox{(???)}}
+		{\setbox\@tempboxa\hbox{(\csname affi@r@#1\endcsname)}%
+			\@tempdima\wd\@tempboxa \advance\@tempdima2em\relax
+			\ifdim\@tempdima>\hsize
+				\newline\unhbox\@tempboxa
+			\else\ \box\@tempboxa\fi}}
+\def\affi@cuteng#1\\#2\@nil{#1}
+
+% Membership of aurthor is required in draft.
+\ifDS@english
+\def\mkt@member#1{\ \hbox{[Regular Member\##1]}}
+\def\mkt@nomember{\ \hbox{[Non Member]}}
+\def\mkt@stmember#1{\ \hbox{[Student Member\##1]}}
+\else
+\def\mkt@member#1{\ \hbox{[正䌚員\##1]}}
+\def\mkt@nomember{\ \hbox{[非䌚員]}}
+\def\mkt@stmember#1{\ \hbox{[孊生䌚員\##1]}}
+\fi
+
+%%%%%% Page Header and Footer %%%%%% 
+
+\mark{{}{}} 
+
+% The following counters are not used, but may appear.
+\let\c@volpage\c@page						% 2.00(5)
+\def\thevolpage{\thepage}					% 2.00(5)
+\newcounter{volpageoffset} % You must set this to appropriate value
+\newcounter{volume}\expandafter\let\csname c@巻数\endcsname\c@volume
+\newcounter{number}\expandafter\let\csname c@号数\endcsname\c@number
+\newcounter{year}\expandafter\let\csname c@幎数\endcsname\c@year
+
+\def\ps@plain{\let\@mkboth\@gobbletwo
+	\def\@oddhead{\@checklines}\let\@evenhead\@oddhead
+	\def\@oddfoot{\rm \hfil\thepage\hfil}\let\@evenfoot\@oddfoot}
+
+% \checklines enables to draw a horizontal rule onto each baselines.
+
+\newif\if@checklines \@checklinesfalse
+\def\checklines{\@checklinestrue}
+\def\@checklines{\if@checklines \rlap{\smash{\vtop{
+	\hbox{} \vskip\headsep \hrule width\textwidth\vskip-.4pt \vskip\topskip
+	\hrule\vskip-.4pt
+	\@tempcnta31\relax\@@checklines}}}\hfil\fi}
+\def\@@checklines{\ifnum\@tempcnta>\z@
+	\vskip\normalbaselineskip \hrule\vskip-.4pt \advance\@tempcnta\m@ne
+	\let\next\@@checklines\else\let\next\relax\fi\next}
+
+\pagestyle{plain}
+\pagenumbering{arabic}
+
+\ifDS@english\else
+\def\today{\the\year 幎 \the\month 月 \the\day 日}
+\fi
+
+
+%%%%%% Output Routine %%%%%%
+% Nothing at all.
+
+
+%%%%%% Biography %%%%%%
+% Almost nothing.
+
+\def\受付#1#2#3{}\let\received\受付
+\def\採録#1#2#3{}\let\accepted\採録
+
+\def\biography{\let\member\@gobble \let\nomember\@gobble \let\stmember\@gobble
+	\let\adjust\@gobble \setbox0\vbox\bgroup
+	\tolerance\@M \hbadness\@M \hfuzz\maxdimen}
+\def\endbiography{\egroup\setbox0\hbox{}}
+
+
+%%%%%% Miscellaneous %%%%%%
+
+\raggedbottom
+
+\input{ipsjcommon.sty}
+
+% Redefine \acknowledgment to put it separately.
+\newbox\ack@box
+\let\@acknowledgment\acknowledgment
+\def\acknowledgment{\global\setbox\ack@box\vtop\bgroup\@acknowledgment}
+\def\endacknowledgment{\par\egroup}
+
+\let\id@enddocument\enddocument
+\def\enddocument{\clearpage \unvbox\ack@box \id@enddocument}
+
+\endinput
--- a/Paper/ipsjpapers.sty	Sun Nov 18 02:33:16 2012 +0900
+++ b/Paper/ipsjpapers.sty	Sun Nov 18 03:32:29 2012 +0900
@@ -1,1 +1,1790 @@
-% Copyright (C) 1995,1996,1997,1998,1999,2000,2001
%			by Hiroshi Nakashima, Yasuki Saito and
%                          The Editorial Board of the IPSJ Journal
%
% ipsjpapers.sty 15-May-01 by Hiroshi Nakashima (ver 2.08)
% (revision history deleted)
% ipsjpapers.sty 24-Apr-95 by Hiroshi Nakashima (ver 1.0)
% ipsjpapers.sty 30-Nov-93 by Hiroshi Nakashima
% ipsjpapers.sty 3-Feb-93 by Yaski Saito
% compsoft.sty 22-April-92 by Yaski Saito
% compsoft.sty 18-July-90 by Hideki Isozaki 
% j-article.sty 10-Feb-89 from report.sty 16-Mar-88

%%%%%% LaTeX Version %%%%%%

% 2.00(1) >>
%% \ifASCII is true if ASCII version Japanese TeX, which doesn't have
%% \jintercharskip (H.N.)
\newif\ifASCII \ASCIIfalse
\ifx\jintercharskip\undefined\ASCIItrue\fi
\newif\if@LaTeX@e \@LaTeX@efalse				% 1.06(1)
\newif\if@LaTeX@eN \@LaTeX@eNfalse				% 2.00(1)
\def\@tempa{LaTeX2e}						% 1.06(1)
\ifx\fmtname\@tempa \@LaTeX@etrue				% 1.06(1)
\ifx\xpt\undefined \@LaTeX@eNtrue \fi\fi			% 2.00(1)
% 2.00(1) <<


%%%%%% Document Styles %%%%%%

% 2.00(2) >>
\newif\ifDS@printer \DS@printerfalse
\newif\ifDS@english \DS@englishfalse
\newif\ifDS@technote \DS@technotefalse
\newif\ifDS@preface \DS@prefacefalse
\newif\ifDS@draft \DS@draftfalse
\newif\ifDS@techrep \DS@techrepfalse				% 1.05(2)
\newif\ifDS@sigrecommended \DS@sigrecommendedfalse		% 2.04(1)
\newif\ifDS@invited \DS@invitedfalse				% 2.06(1)
\newif\ifDS@abstract \DS@abstractfalse				% 2.07(7)
\newif\ifDS@private \DS@privatefalse				% 2.07(8)

\if@LaTeX@eN
\DeclareOption{printer}{\DS@printertrue}
\DeclareOption{english}{\DS@englishtrue}
\DeclareOption{technote}{\DS@technotetrue}
\DeclareOption{preface}{\DS@prefacetrue}
\DeclareOption{draft}{\DS@drafttrue}
\DeclareOption{techrep}{\DS@techreptrue}
\DeclareOption{sigrecommended}{\DS@sigrecommendedtrue}		% 2.04(1)
\DeclareOption{invited}{\DS@invitedtrue}			% 2.06(1)
\DeclareOption{abstract}{\DS@abstracttrue}			% 2.07(7)
\DeclareOption{private}{\DS@privatetrue}			% 2.07(8)
\DeclareOption{10pt}{\def\@ptsize{0}}
\DeclareOption{11pt}{\def\@ptsize{1}}
\DeclareOption{12pt}{\def\@ptsize{2}}
\ExecuteOptions{10pt}
\ProcessOptions
\def\ipsj@warning{\ClassWarning{ipsjpapers}}			% 2.00(3)
\def\ipsj@error{\ClassError{ipsjpapers}}			% 2.00(3)
\newskip \old@latex@skip					% 2.00(14)
\let\@maxsep\old@latex@skip					% 2.00(14)
\let\@dblmaxsep\old@latex@skip					% 2.00(14)

\else
\expandafter\ifx\csname ver@ipsjpapers.cls\endcsname\relax
\typeout{Document Style `ipsjpapers' (ver 2.08) <15 May 2001>.}	% 2.05(1)
\fi

\def\ds@printer{\DS@printertrue}
\def\ds@english{\DS@englishtrue}
\def\ds@technote{\DS@technotetrue}
\def\ds@preface{\DS@prefacetrue}
\def\ds@draft{\DS@drafttrue}
\def\ds@techrep{\DS@techreptrue}				% 1.05(2)
\def\ds@sigrecommended{\DS@sigrecommendedtrue}			% 2.04(1)
\def\ds@invited{\DS@invitedtrue}				% 2.06(1)
\def\ds@abstract{\DS@abstracttrue}				% 2.07(7)
\def\ds@private{\DS@privatetrue}				% 2.07(8)

% 1.04(3)>>
\def\@ptsize{0}
\@namedef{ds@11pt}{\def\@ptsize{1}}
\@namedef{ds@12pt}{\def\@ptsize{2}} 
% 1.04(3)<<

\@options
\let\ipsj@warning\@warning					% 2.00(3)
\let\@latex@warning\@warning					% 2.00(3)
\def\ipsj@error#1#2{\errhlp{#2}\errmessge{#1}}			% 2.00(3)
\fi
% 2.00(2) <<

\ifx\@classoptionslist\undefined\else				% 2.03(1) >>
\def\ipsj@draft@option{draft}
\def\ipsj@remove@draft@option{\def\@tempb{}%
	\@for\@tempa:=\@classoptionslist\do{%
		\ifx\@tempa\ipsj@draft@option\else
		\edef\@tempb{\@tempb,\@tempa}\fi}%
	\ifx\@tempb\@empty \def\@classoptionslist{}\else
	\expandafter\ipsj@remove@draft@ption\@tempb\@nil\fi}
\def\ipsj@remove@draft@ption,#1\@nil{%
	\def\@classoptionslist{#1}}
\ipsj@remove@draft@option
\fi								% 2.03(1) <<

%%%%%% Basics %%%%%%

\newdimen\@Q \@Q=0.25mm

\lineskip\z@ \normallineskip\z@ 
\lineskiplimit\z@ \normallineskiplimit\z@
\abovedisplayskip\z@ \belowdisplayskip\z@
\abovedisplayshortskip\z@ \belowdisplayshortskip\z@

\def\baselinestretch{1}
\jot\z@ 

\ifDS@draft\def\next{\input{ipsjdrafts.sty}\endinput}\else\let\next\relax\fi
\next

\@twosidetrue

%%%%%% Fonts %%%%%%
% \finvedm(dg)		dm5		\vpt	\tiny		fn-mark
% \sixdm(dg)		dm6		\vipt	\scriptsize
% \sevendm(dg)		dm7		\vipt	\footnotesize	f-note, capt
%	10Q = 7.11304pt -> w(min7) = 6.73550pt
% \eightdm(dg)		dm8		\viiipt	\small		abst, header
%	11Q = 7.82434pt -> w(min8) = 7.69772pt
% \eightdm(dg)half	dm9		\ixpt	\normalsize	main text
%	12Q = 8.53564pt -> w(min9) = 8.65994
% \tendm(dg)		dm10		\xpt	\large		sec title
%	13Q = 9.24695pt -> w(min10) = 9.62216pt
% \tendm(dg)half	dm10*1095	\xipt	\Large		author names
%	15Q =10.66956pt -> w(min10*1095) = 10.53625pt
% (\twlvdm)		(dm12)		\xiipt	\LARGE		e-title
% \twelvedm(dg)half	dm12*1095	\xivpt	\huge		title
%			min10*1440
%	18Q =12.80347pt -> w(min10*1440) = 13.8559pt
%
% Note that cm fonts follows LaTeX standard. (e.g. \viiipt -> cmr8, etc.)

% 2.00(4)>>
\if@LaTeX@e
\ifASCII
\def\ipsj@declare@font#1#2#3{{\fontsize{#3}{\z@}#2\selectfont	    % 2.00(5)>>
	\edef\@tempa{\the\jfont}
	\expandafter\global\expandafter\let\expandafter#1\@tempa}}  % 2.00(5)<<

\ifDS@printer	% ASCII LaTeX2e printer
\DeclareFontShape{JY1}{mc}{m}{n}{%
	<5>	sfixed*	[5.175]	min5	% 7Q/w5 = 4.97922/4.81108=1.035
	<6>	sfixed*	[5.916]	min6	% 8Q/w6 = 5.69055/5.77328=0.986
	<7>	sfixed*	[7.392]	min7	%10Q/w7 = 7.11304/6.73550=1.056
	<8>	sfixed*	[8.128]	min8	%11Q/w8 = 7.82434/7.69772=1.016
	<9>	sfixed*	[8.872]	min8	%12Q/w8 = 8.53564/7.69772=1.109
	<10>	sfixed*	[9.610]	min10	%13Q/w10= 9.24695/9.62216=0.961
	<10.95>	sfixed*	[11.09]	min10	%15Q/w10=10.66956/9.62216=1.109
	<12>	sfixed*	[11.83]	min10	%16Q/w10=11.38110/9.62216=1.183
	<14.4>	sfixed*	[13.31]	min10	%18Q/w10=12.80347/9.62216=1.331
}{}
\DeclareFontShape{JY1}{gt}{m}{n}{%
	<5>	sfixed*	[5.175]	goth5	% 7Q/w5 = 4.97922/4.81108=1.035
	<6>	sfixed*	[5.916]	goth6	% 8Q/w6 = 5.69055/5.77328=0.986
	<7>	sfixed*	[7.392]	goth7	%10Q/w7 = 7.11304/6.73550=1.056
	<8>	sfixed*	[8.128]	goth8	%11Q/w8 = 7.82434/7.69772=1.016
	<9>	sfixed*	[8.872]	goth8	%12Q/w8 = 8.53564/7.69772=1.109
	<10>	sfixed*	[9.610]	goth10	%13Q/w10= 9.24695/9.62216=0.961
	<10.95>	sfixed*	[11.09]	goth10	%15Q/w10=10.66956/9.62216=1.109
	<12>	sfixed*	[11.83]	goth10	%16Q/w10=11.38110/9.62216=1.183
	<14.4>	sfixed*	[13.31]	goth10	%18Q/w10=12.80347/9.62216=1.331
}{}

\ipsj@declare@font\fn@fontvii\mcfamily\@vpt

%% The following fonts are out of NFSS scheme
\font\fn@fontv		min5	scaled739	% 5Q/w5 = 3.55658/4.81108=0.739
\font\fn@fontvi		min5	scaled887	% 6Q/w5 = 4.26790/4.81108=0.887
\font\fn@fontxv		goth10  scaled1035	%14Q/w10= 9.95846/9.62216=1.035

\else		% ASCII LaTeX2e non-printer
\ipsj@declare@font\fn@fontv\mcfamily\@vpt
\ipsj@declare@font\fn@fontvi\mcfamily\@vpt
\ipsj@declare@font\fn@fontvii\mcfamily\@vpt
\ipsj@declare@font\fn@fontxv\gtfamily\@xipt
\fi

\else		% NTT LaTeX2e
\def\ipsj@declare@font#1#2#3{{\fontsize{#3}{\z@}#2\selectfont	    % 2.00(5)
	\xdef#1{\expandafter\noexpand\csname\jf@ntn@me\endcsname}}} % 2.00(5)
\ipsj@declare@font\fn@fontv\dm\@vpt
\ipsj@declare@font\fn@fontvi\dm\@vpt
\ipsj@declare@font\fn@fontvii\dm\@vpt
\ipsj@declare@font\fn@fontxv\dg\@xipt
\fi
% 2.00(4) <<

\else		% LaTeX 2.09					% 2.00(4)
%% Fonts for ASCII TeX. (H.N.)
\ifASCII
\ifDS@printer
\font\fn@fontv		min5	scaled739	% 5Q/w5 = 3.55658/4.81108=0.739
\font\fn@fontvi		min5	scaled887	% 6Q/w5 = 4.26790/4.81108=0.887
\font\fivedm		min5	scaled1035	% 7Q/w5 = 4.97922/4.81108=1.035
\font\fivedg		goth5	scaled1035
\font\sixdm		min6	scaled986	% 8Q/w6 = 5.69055/5.77328=0.986
\font\sixdg		goth6	scaled986
\font\sevendm		min7	scaled1056	%10Q/w7 = 7.11304/6.73550=1.056
\font\sevendg		goth7	scaled1056
\font\eightdm		min8	scaled1016	%11Q/w8 = 7.82434/7.69772=1.016
\font\eightdg		goth8	scaled1016
\font\eightdmhalf	min8	scaled1109	%12Q/w8 = 8.53564/7.69772=1.109
\font\eightdghalf	goth8	scaled1109
\font\tendm		min10	scaled961	%13Q/w10= 9.24695/9.62216=0.961
\font\tendg		goth10  scaled961
\font\fn@fontxv		goth10  scaled1035	%14Q/w10= 9.95846/9.62216=1.035
\font\tendmhalf		min10	scaled1109	%15Q/w10=10.66956/9.62216=1.109
\font\tendghalf		goth10	scaled1109
\font\twelvedm		min10	scaled1183	%16Q/w10=11.38110/9.62216=1.183
\font\twelvedg		goth10	scaled1183
\font\twelvedmhalf	min10	scaled1331	%18Q/w10=12.80347/9.62216=1.331
\font\twelvedghalf	goth10	scaled1331
\let\fn@fontvii\fivedm

\else
\font\fivedm		min5
\font\fivedg		goth5
\font\sixdm		min6
\font\sixdg		goth6
\font\sevendm		min7
\font\sevendg		goth7
\font\eightdm		min8
\font\eightdg		goth8
\font\eightdmhalf	min9
\font\eightdghalf	goth9
\font\tendm		min10
\font\tendg		goth10
\font\tendmhalf		min10 scaled\magstephalf
\font\tendghalf		goth10 scaled\magstephalf
\font\twelvedm		min10 scaled\magstep1
\font\twelvedg		goth10 scaled\magstep1
\font\twelvedmhalf	min10 scaled\magstep2
\font\twelvedghalf	goth10 scaled\magstep2
\let\fn@fontv\fivedm
\let\fn@fontvi\fivedm
\let\fn@fontvii\fivedm
\let\fn@fontxv\tendghalf

\fi

%% ASCII doesn't have \old@Npt. (H.N.)
\let\old@@vpt\vpt
\let\old@@vipt\vipt
\let\old@@viipt\viipt
\let\old@@viiipt\viiipt
\let\old@@ixpt\ixpt
\let\old@@xpt\xpt
\let\old@@xipt\xipt
\let\old@@xiipt\xiipt
\let\old@@xivpt\xivpt

\def\old@vpt{\old@@vpt\jspaceskip1zw\relax}
\def\old@vipt{\old@@vipt\jspaceskip1zw\relax}
\def\old@viipt{\old@@viipt\jspaceskip1zw\relax}
\def\old@viiipt{\old@@viiipt\jspaceskip1zw\relax}
\def\old@ixpt{\old@@ixpt\jspaceskip1zw\relax}
\def\old@xpt{\old@@xpt\jspaceskip1zw\relax}
\def\old@xipt{\old@@xipt\jspaceskip1zw\relax}
\def\old@xiipt{\old@@xiipt\jspaceskip1zw\relax}
\def\old@xivpt{\old@@xivpt\jspaceskip1zw\relax}

								% 2.00(6)
								% 1.06(2)

%% ASCII doesn't have \dg nor \dm. (H.N.)
\def\dg{\protect\pdg}
\def\dm{\protect\pdm}
%% Redefine \gt and \mc
\def\gt{\protect\pdg}
\def\mc{\protect\pdm}
\let\pdm\relax

\else
%% Fonts for NTT jTeX
%% \magstephalf and \magstep1 may cause trouble in older versions.

\jfont\fivedm=dm5
\jfont\fivedg=dg5
\jfont\sixdm=dm6
\jfont\sixdg=dg6
\jfont\sevendm=dm7
\jfont\sevendg=dg7
\jfont\eightdm=dm8
\jfont\eightdg=dg8
\jfont\eightdmhalf=dm9
\jfont\eightdghalf=dg9
\jfont\tendm=dm10
\jfont\tendg=dg10
\jfont\tendmhalf=dm10 scaled 1095
\jfont\tendghalf=dg10 scaled 1095
\jfont\twelvedm=dm12
\jfont\twelvedg=dg12
\jfont\twelvedmhalf=dm12 scaled 1095
\jfont\twelvedghalf=dg12 scaled 1095
\let\fn@fontv\fivedm
\let\fn@fontvi\fivedm
\let\fn@fontvii\fivedm
\let\fn@fontxv\tendghalf
								% 1.06(3)
\fi
\fi

\ifx\jfsize\undefined \newcount\jfsize \fi			% 1.06(2)

\ifASCII						% 1.06(3),2.00(6)>>
\let\setjglues\relax
\let\jintercharskip\kanjiskip
\let\jasciikanjiskip\xkanjiskip
\let\jmathkanjiskip\xkanjiskip
\newdimen\jspaceskip

\def\defjintercharskip#1#2#3#4{\@asciiwarning{\defjintercharskip}}
\def\defjasciikanjiskip#1#2#3#4{\@asciiwarning{\defjasciicharskip}}
\def\defmathkanjiskip#1#2#3#4{\@asciiwarning{\defmathcharskip}}
\def\defjspaceskip#1#2#3#4{\@asciiwarning{\defjspaceskip}}
							
\def\@asciiwarning#1{\ipsj@warning{\string#1\space		% 2.00(3)
	is not supported in ASCII version}}
							% 1.06(3),2.00(6)<<
\else								% 2.00(7)>>
\if@LaTeX@e
\ipsj@declare@font\fn@eightdmhalf\dm\@ixpt
\ipsj@declare@font\fn@eightdghalf\dg\@ixpt
\else
\def\fn@eightdmhalf{\eightdmhalf}
\def\fn@eightdghalf{\eightdghalf}
\fi
\ifx\setjglues\undefined\else
\expandafter\defjintercharskip\fn@eightdmhalf{0pt}{1.4pt}{0.5pt}
\expandafter\defjintercharskip\fn@eightdghalf{0pt}{1.4pt}{0.5pt}
\expandafter\defjasciikanjiskip\fn@eightdmhalf{2pt}{1pt}{1pt}
\expandafter\defjasciikanjiskip\fn@eightdghalf{2pt}{1pt}{1pt}
\expandafter\defjmathkanjiskip\fn@eightdmhalf{2pt}{1pt}{1pt}
\expandafter\defjmathkanjiskip\fn@eightdghalf{2pt}{1pt}{1pt}
\fi								% 2.00(7)<<
\fi								% 2.00(4)

\if@LaTeX@e							% 2.00(8)>>
\if@LaTeX@eN
\DeclareOldFontCommand{\rm}{\normalfont\rmfamily}{\mathrm}
\DeclareOldFontCommand{\sf}{\normalfont\sffamily}{\mathsf}
\DeclareOldFontCommand{\tt}{\normalfont\ttfamily}{\mathtt}
\DeclareOldFontCommand{\bf}{\normalfont\bfseries}{\mathbf}
\DeclareOldFontCommand{\it}{\normalfont\itshape}{\mathit}
\DeclareOldFontCommand{\sl}{\normalfont\slshape}{\@nomath\sl}
\DeclareOldFontCommand{\sc}{\normalfont\scshape}{\@nomath\sc}
\DeclareRobustCommand*{\cal}{\@fontswitch{\relax}{\mathcal}}
\DeclareRobustCommand*{\mit}{\@fontswitch{\relax}{\mathnormal}}
\ifASCII
\DeclareOldFontCommand{\mc}{\normalfont\mcfamily}{\mathmc}
\DeclareOldFontCommand{\gt}{\normalfont\gtfamily}{\mathgt}
\fi\fi
\ifASCII
\def\dm{\mc}
\def\dg{\gt}
\fi\fi								% 2.00(8)<<

%%%%%% Basic Font Size Macros %%%%%%

\if@LaTeX@e					% 1.06(4),2.00(9),2.04(3)>>
\def\@setsize#1#2#3#4{\@setfontsize#1{#4}{#2}\ipsj@setjspaceskip}
\ifASCII
\def\ipsj@setjspaceskip{\jspaceskip1zw\relax}
\else
\let\ipsj@setjspaceskip\relax
\fi						% 1.06(4),2.00(9),2.04(3)<<

%% \vipt etc. are redefined to use appropriate Japanese fonts.
\else								% 2.00(9)
\def\vpt{\old@vpt\fivedm\let\pdg\fivedg\let\pdm\fivedm\jfsize=5\relax}
\def\vipt{\old@vipt\sixdm\let\pdg\sixdg\let\pdm\sixdm\jfsize=6\relax}
\def\viipt{\old@viipt\sevendm\let\pdg\sevendg\let\pdm\sevendm\jfsize=7\relax}
\def\viiipt{\old@viiipt\eightdm\let\pdg\eightdg\let\pdm\eightdm\jfsize=8\relax}
\def\ixpt{\old@ixpt\eightdmhalf\let\pdg\eightdghalf\let\pdm\eightdmhalf
	\jfsize=9\relax \@ixptboldmath}				% 1.02(2)
\def\xpt{\old@xpt\tendm\let\pdg\tendg\let\pdm\tendm\jfsize=10\relax}
\def\xipt{\old@xipt\tendmhalf\let\pdg\tendghalf\let\pdm\tendmhalf\jfsize=11
	\relax}
\def\xiipt{\old@xiipt\twelvedm\let\pdg\twelvedg\let\pdm\twelvedm
	\jfsize=12\relax}
\def\xivpt{\old@xivpt\twelvedmhalf\let\pdg\twelvedghalf\let\pdm\twelvedmhalf
	\jfsize=14\relax}
\fi								% 2.00(9)

\if@LaTeX@e							% 1.06(5)
\let\@ixptboldmath\relax					% 1.06(5)
\else								% 1.06(5)
% 1.02(2) >>
\ifDS@printer
\def\@ixptboldmath{%
	\def\unboldmath{\everymath{}\everydisplay{}\@nomath\unboldmath
		\textfont\@ne\ninmi 
		\textfont\tw@\ninsy \textfont\lyfam\ninly
		\@boldfalse}\@boldfalse
	\def\boldmath{\@ifundefined{ninmib}{%
		\global\font\ninmib\@mbi\@ptscale9\relax
		\global\font\ninsyb\@mbsy\@ptscale9\relax
		\global\font\ninlyb\@lasyb\@ptscale9\relax
		\@addfontinfo\@ixpt
			{\def\boldmath{\everymath{\mit}\everydisplay{\mit}%
				\@prtct\@nomathbold
				\textfont\@ne\ninmib \textfont\tw@\ninsyb 
				\textfont\lyfam\ninlyb \@prtct\@boldtrue}}}{}%
	\@ixpt\boldmath}}
\else
\def\@ixptboldmath{%
	\def\unboldmath{\everymath{}\everydisplay{}\@nomath\unboldmath
		\textfont\@ne\ninmi 
		\textfont\tw@\ninsy \textfont\lyfam\ninly
		\@boldfalse}\@boldfalse
% 1.03(1) >>
	\def\boldmath{\@ifundefined{ninmib}{\global\font\ninmib\@mbi 
		\global\font\ninsyb\@mbsy\relax
		\global\font\ninlyb\@lasyb\relax
		\@addfontinfo\@ixpt
			{\def\boldmath{\everymath{\mit}\everydisplay{\mit}%
				\@prtct\@nomathbold
				\textfont\@ne\ninmib \textfont\tw@\ninsyb 
				\textfont\lyfam\ninlyb \@prtct\@boldtrue}}}{}%
	\@ixpt\boldmath}}
% 1.03(1) <<
\fi
% 1.02(2) <<
\fi								% 1.06(5)


%%%%%% Font Size Macros %%%%%%

\def\fs@setsize#1#2#3#4{\normalsize\dimen@\normalbaselineskip
	\@ifstar{\@setsize{#1}{\dimen@}{#3}{#4}}%
		{\@setsize{#1}{#2}{#3}{#4}}}

% s = (3*b - (h' + d') - (h + d))/2
% s_a = s + h' + d - b
% s_b = s + h + d' - b
\def\sec@setskips#1{\setbox0\hbox{\fs@sec\bf#1}\setbox1\hbox{#1}
	\@tempdima3\baselineskip
	\advance\@tempdima-\ht0 \advance\@tempdima-\dp0
	\advance\@tempdima-\ht1 \advance\@tempdima-\dp1
	\divide\@tempdima\tw@ \advance\@tempdima-\baselineskip
	\@tempdimb\@tempdima
	\advance\@tempdima\ht0 \advance\@tempdima\dp1
	\advance\@tempdimb\ht1 \advance\@tempdimb\dp0
	\edef\sec@aboveskip{\the\@tempdima}
	\edef\sec@belowskip{\the\@tempdimb}}

\ifDS@english
% size		pt	\baselineskip	  size		\?pt	\baselineskip
% \normalsize	10	16Q		  \large	11	18Q (*)
% \small	 9	15Q		  \Large	12	22Q
% \footnotesize	 8	13Q		  \LARGE	14	26Q (*)
% \scriptsize	 6	8pt (*)		  \huge		18	30Q (*)
% \tiny		 5	6pt (*)		  \Huge		18	30Q (*)
% * : not measured

\def\@normalsize{\@setsize\normalsize{16\@Q}\xpt\@xpt}
\def\small{\fs@setsize\small{15\@Q}\ixpt\@ixpt}
\def\footnotesize{\fs@setsize\footnotesize{13\@Q}\viiipt\@viiipt}
\def\scriptsize{\@setsize\scriptsize{8pt}\viipt\@viipt}
\def\tiny{\@setsize\tiny{6pt}\vpt\@vpt}
\def\large{\@setsize\Large{18\@Q}\xipt\@xipt}
\def\Large{\@setsize\LARGE{22\@Q}\xiipt\@xiipt}
\def\LARGE{\@setsize\LARGE{26\@Q}\xivpt\@xivpt}
\def\huge{\@setsize\Huge{30\@Q}\xviipt\@xviipt}
\let\Huge\huge

\ifDS@techrep							% 1.05(2)>>
\def\@normalsize{\@setsize\normalsize{17\@Q}\xpt\@xpt}
\fi								% 1.05(2)<<

\if@LaTeX@e							% 2.00(10)>>
\let\normalsize\@normalsize
\fi								% 2.00(10)<<

\let\fs@footnote\footnotesize
\let\fs@caption\footnotesize
\let\fs@table\footnotesize
\let\fs@eabst\footnotesize
\let\fs@header\footnotesize
\let\fs@footer\footnotesize
\let\fs@bibliography\small
\let\fs@subsec\normalsize
\let\fs@sec\normalsize
\let\fs@type\large
\let\fs@eauthor\large
\let\fs@title\Large

\@normalsize

\sec@setskips{A}

\else
% size		pt	\baselineskip	  size		\?pt	\baselineskip
% \normalsize	 9	19Q		  \large	10	19Q
% \small	 8	14Q		  \Large	11	22Q
% \footnotesize	 7	14Q		  \LARGE	12	18Q
% \scriptsize	 6	8pt (*)		  \huge		14	26Q
% \tiny		 5	6pt (*)		  \Huge		14	26Q
% * : not measured

\def\@normalsize{\@setsize\normalsize{19\@Q}\ixpt\@ixpt}
\def\small{\fs@setsize\small{14\@Q}\viiipt\@viiipt}
\def\footnotesize{\fs@setsize\footnotesize{14\@Q}\viipt\@viipt}
\def\scriptsize{\@setsize\scriptsize{8pt}\vipt\@vipt}
\def\tiny{\@setsize\tiny{6pt}\vpt\@vpt}
\def\large{\@setsize\large{19\@Q}\xpt\@xpt}
\def\Large{\@setsize\Large{22\@Q}\xipt\@xipt}
\def\LARGE{\@setsize\LARGE{18\@Q}\xiipt\@xiipt}
\def\huge{\@setsize\Huge{26\@Q}\xivpt\@xivpt}
\let\Huge\huge

\ifDS@techrep							% 1.05(2)>>
\def\@normalsize{\@setsize\normalsize{17\@Q}\ixpt\@ixpt}
\fi								% 1.05(2)<<

\if@LaTeX@e							% 2.00(10)>>
\let\normalsize\@normalsize
\fi								% 2.00(10)<<

\let\fs@footnote\footnotesize
\let\fs@caption\footnotesize
\let\fs@table\footnotesize
\let\fs@abst\small
\def\fs@eabst{\small\baselineskip13\@Q}
\let\fs@header\small
\let\fs@footer\small
\let\fs@subsec\normalsize
\def\fs@bibliography{\normalsize\baselineskip16\@Q}
\let\fs@sec\large
\let\fs@type\fn@fontxv
\let\fs@author\Large
\def\fs@eauthor{\Large\baselineskip15\@Q}
\let\fs@etitle\LARGE
\let\fs@title\huge

\@normalsize 
								% 2.00(7)
\ifx\setjglues\undefined\else
\setjglues
\fi

\sec@setskips{‚ }

\fi

\if@LaTeX@e\else						% 2.00(11)
\let\latex@bf\bf						% 1.06(6)
\def\bf{\latex@bf \dg}						% 1.06(6)
\fi								% 2.00(11)


%%%%%% Page Layout Parameters %%%%%%

\newdimen\@mojihaba

\headheight 12\@Q

% We want to allow a line containing $\displaystyle X^X$ to be a first line.
\setbox0\hbox{$\displaystyle X^X$}
\topskip\ht0

\ifdim\maxdepth<\dp\strutbox \maxdepth\dp\strutbox \@maxdepth\maxdepth\fi

\@tempswafalse							% 1.05(2)>>
\ifDS@english \ifDS@techrep \else \@tempswatrue \fi\fi
\if@tempswa							% 1.05(2)<<
\topmargin 138\@Q \advance\topmargin-1in

% \textheight = 53\baselineskip + \topskip + epsilon(100sp)
\textheight53\baselineskip \advance\textheight\topskip \advance\textheight100sp

% \headsep = 24Q - \topskip
\headsep28\@Q \advance\headsep-\topskip				% 2.02(2)

% Only first page has page number (footer) at the bottom
\footskip 27\@Q

\@mojihaba13\@Q

\else
\topmargin 131\@Q \advance\topmargin-1in

% \textheight = 45\baselineskip + \topskip + epsilon(100sp)
\textheight45\baselineskip \advance\textheight\topskip \advance\textheight100sp

\ifDS@techrep							% 1.05(2)>>
\textheight50\baselineskip \advance\textheight\topskip \advance\textheight100sp
\fi								% 1.05(2)<<

% \headsep = 28Q - \topskip
\headsep28\@Q \advance\headsep-\topskip

% Only first page has page number (footer) at the bottom
\footskip24\@Q

\@mojihaba12\@Q
\fi

\columnsep30\@Q

% \textwidth - \columnwidth = 24 * 12Q * 2 + \columnsep = 606Q
\textwidth606\@Q
\columnseprule0pt

\oddsidemargin210mm \advance\oddsidemargin-\textwidth \divide\oddsidemargin\tw@
\advance\oddsidemargin-1in \evensidemargin\oddsidemargin

\skip\footins\baselineskip \advance\skip\footins-.5\@mojihaba
% \footnotesep = \baselineskip - depth(\strutbox)
{\fs@footnote
	\footnotesep\baselineskip
	\global\advance\footnotesep-\dp\strutbox}

\def\footnoterule{{\fs@footnote\kern-\dp\strutbox \hrule \kern-.4\p@
	\kern\dp\strutbox}}

\floatsep \baselineskip \textfloatsep \baselineskip 
\intextsep \baselineskip \@maxsep \baselineskip
\dblfloatsep \baselineskip \dbltextfloatsep \baselineskip
\@dblmaxsep \baselineskip
\@fptop 0pt plus 1fil \@fpsep 0pt plus 2fil \@fpbot 0pt plus 1fil 
\@dblfptop 0pt plus 1fil \@dblfpsep 0pt plus 2fil \@dblfpbot 0pt plus 1fil

\parskip\z@ \parindent\@mojihaba
\@lowpenalty 51 \@medpenalty 151 \@highpenalty 301 
\@beginparpenalty -\@lowpenalty \@endparpenalty -\@lowpenalty
\@itempenalty -\@lowpenalty 


%%%%%% Title and Authors %%%%%%
%
% Format of title, author names and abstract.
%
%	\huge\bf <Japanese title>
%	\vskip 32Q
%	\Large <Japanese author names>
%	\vskip 32Q
%	\small <Japanese abstract>
%	\vskip 34Q
%	\LARGE\bf <English title>
%	\vskip 28Q
%	\Large\sc <English author names>
%	\vskip 28Q
%	\small <English abstract>
%	\vskip 25Q

% 2.07(3)>>
\def\ipsj@ohcheck#1#2#3{\fs@header\hskip12\@Q#1\qquad#2\qquad#3\hskip12\@Q}
\def\ipsj@ohcvolno{Vol.~00\hskip12\@Q No.~SIG\ 00(\ipsj@sig@code\ 00)}

\def\maketitle{\let\ipsj@oddhead@t\ipsj@oddhead@a
	\ifipsj@trans
	    \settowidth\@tempdima{%
		\ipsj@ohcheck\ipsj@ohcvolno\@titlestring\ipsj@ohcvolno}%
	    \ifdim\@tempdima>\textwidth
		\let\ipsj@oddhead@t\ipsj@oddhead@b
		\settowidth\@tempdima{%
		    \ipsj@ohcheck\ipsj@ohcvolno\@titlestring{000}}%
		\ifdim\@tempdima>\textwidth
			\ipsj@warning{%				% 2.00(3)
			\string\title\space for headding is too wide}%
	    \fi \fi
	\else
	    \settowidth\@tempdima{\fs@header
		\hskip12\@Q Vol.~00\hskip12\@Q No.~00\qquad\@titlestring\qquad
		Vol.~00\hskip12\@Q No.~00\hskip12\@Q}
	    \ifdim\@tempdima>\textwidth
		\ipsj@warning{%					% 2.00(3)
		\string\title\space for headding is too wide}%
	\fi \fi
	\par\twocolumn[\@maketitle]\thispagestyle{myheadings}\@thanks}
% 2.07(3)<<

% default title header

\def\title{\@dblarg{\@xtitle}}
\def\@xtitle[#1]#2{\gdef\@title{#2}%
	{\def\protect{\noexpand\protect\noexpand}%
		\ifDS@english\def\\{\unskip\ \ignorespaces}%
		\else\def\\{\unskip\ignorespaces}\fi
		\xdef\@titlestring{#1}}}			% 2.07(3)

\def\@title{\mkt@warning\title}\def\@titlestring{}
\long\def\author#1{\long\gdef\@author{#1}}
\def\@author{\mkt@warning\author}

\newbox\@abstractbox
%% Introduce \@titlewidth because we now use this dimen repeatedly. (H.N.)
%% \@titlewidth = 44 * 11Q = 484Q
\newdimen\@titlewidth \@titlewidth 484\@Q

\def\abstract{\global\let\@abstract\relax
	\global\setbox\@abstractbox\hbox\bgroup
		\begin{minipage}[b]{\@titlewidth}\fs@abst\parindent11\@Q}
\def\endabstract{\end{minipage}\egroup}
\def\@abstract{\mkt@warning{abstract env}}

%% We need English title, author name(s) and abstract. (H.N.)
\def\etitle#1{\gdef\@etitle{#1}}
\def\@etitle{\mkt@warning\etitle}
\long\def\eauthor#1{\long\gdef\@eauthor{#1}}
\def\@eauthor{\mkt@warning\eauthor}

\newbox\@eabstractbox
\def\eabstract{\global\let\@eabstract\relax
	\global\setbox\@eabstractbox\hbox\bgroup
		\begin{minipage}[b]{\@titlewidth}\fs@eabst\parindent11\@Q}
\let\endeabstract\endabstract
\def\@eabstract{\mkt@warning{eabstract env}}

\ifDS@english
\let\author\eauthor \let\abstract\eabstract
\let\@eauthor\@author \let\@eabstract\@abstract
\fi

\def\mkt@warning#1{\ipsj@warning{Missing \string#1}}		% 2.00(3)

\newdimen\mkt@prevdepth
\newbox\mkt@titlebox
\def\@maketitle{\setbox\mkt@titlebox\vbox{
	\ifDS@english \ifDS@preface
		\hbox{}\vskip60\@Q \vskip-\headsep \vskip-\baselineskip
	\else
		\hbox{}\vskip26\@Q \vskip-\headsep \vskip-\baselineskip
		\leftline{\fs@type\it
			\ifDS@technote Technical Note
                        \else\ifDS@invited Invited Paper        % 2.06(1)
			\else\ifDS@sigrecommended		% 2.04(1)
				Recommended Paper		% 2.04(1)
			\else\ifDS@abstract			% 2.07(7)
				Abstract			% 2.07(7)
			\else\ifDS@techrep\else			% 2.02(1)
				Regular Paper\fi\fi\fi\fi\fi}	% 2.06(1)
%								% 2.04(1)
		\vskip32\@Q \vskip-\baselineskip \fi
	\else							% 2.04(1) >>
	\@tempswafalse	\ifDS@technote\@tempswatrue\fi
			\ifDS@sigrecommended\@tempswatrue\fi
                        \ifDS@invited\@tempswatrue\fi           % 2.06(1)
			\ifDS@abstract\@tempswatrue\fi		% 2.07(7)
	\if@tempswa
		\vskip18\@Q \vskip-\headsep
		\leftline{\vbox to28\@Q{\hrule height.8pt\vss
			\hbox{\hskip7\@Q \fs@type
				\ifDS@technote	ƒeƒNƒjƒJƒ‹ƒm[ƒg%
                                \else\ifDS@invited µ‘Ò˜_•¶%    % 2.06(1)
				\else\ifDS@sigrecommended
					Œ€‹†‰ï„‘E˜_•¶		% 2.06(1)
				\else ”­•\ŠT—v\fi\fi\fi		% 2.07(7)
				\hskip7\@Q}\vss\hrule height.8pt}}
%								% 2.04(1) <<
		\vskip40\@Q \vskip-\baselineskip
	\else
		\hbox{}\vskip60\@Q \vskip-\headsep \vskip-\baselineskip
	\fi\fi
	\@tempswafalse \ifDS@english\else\ifDS@preface\@tempswatrue\fi\fi
	\mkt@maketitle{\fs@title\bf}\@title\title
% 1.04(1a) >>
	\ifnum\c@affi@footnote>\thr@@
		\let\theaffi@footnote\theaffi@footnotemany \fi
	\c@affi@footnote\z@
% 1.04(1a) <<
	\affi@labels
	\ifDS@english\else
	\vskip-\mkt@prevdepth \nointerlineskip\vskip32\@Q
	\centerline{\vbox{\centering\hsize\@titlewidth\fs@author
		\mkt@makeauthor}}
	\ifDS@preface\else
	\vskip-\prevdepth \nointerlineskip\vskip32\@Q
	\centerline{\@abstract\box\@abstractbox}
	\vskip-\prevdepth \nointerlineskip\vskip34\@Q
	\mkt@maketitle{\fs@etitle\bf}\@etitle\etitle
	\fi\fi
	\if@tempswa\else
	\vskip-\mkt@prevdepth \nointerlineskip\vskip28\@Q
	\centerline{\vbox{\centering\hsize\@titlewidth\fs@eauthor\sc
		\mkt@makeeauthor}}
	\fi
	\ifDS@preface\else
	\vskip-\prevdepth \nointerlineskip\vskip28\@Q
	\centerline{\@eabstract\box\@eabstractbox}
	\fi
	\vskip-\prevdepth \nointerlineskip\vskip25\@Q}
	\@tempdimb\ht\mkt@titlebox \advance\@tempdimb\dp\mkt@titlebox
	\@tempcnta\@tempdimb \@tempcntb\baselineskip
	\divide\@tempcnta\@tempcntb \@tempdima\@tempcnta\baselineskip
	\advance\@tempdima-\@tempdimb
	\box\mkt@titlebox
	\ifdim\@tempdima=\z@\else\advance\@tempdima\baselineskip
		\vskip\@tempdima\fi}

%% \mkt@maketitle puts Japanese/English title, whose lines should be
%% properly broken with \\ by the user.  The result is flushed to left, then
%% centered with respect to the longest line. (H.N.)
\def\mkt@maketitle#1#2#3{\setbox\@tempboxa\vtop{
	\def\\{\unskip\egroup\hbox\bgroup\ignorespaces}
		#1\hbox\bgroup#2\unskip\egroup
		\global\mkt@prevdepth\prevdepth}
	\@tempdima\textwidth\advance\@tempdima-4\@mojihaba
	\ifdim\wd\@tempboxa>\@tempdima
		\ipsj@warning{%					% 2.00(3)
			\string#3 is too wide. Break line(s) by \string\\}\fi
	\centerline{\box\@tempboxa}}

% Assignment of Japanese author names to lines:
% 1 -> 1, 2 -> 2, 3 -> 3, 4 -> 2+2, 5 -> 3+2, 6 -> 3+3, 7 -> 3+2+2, 8 -> 3+3+2,
% ...
% Rule for N authors (N > 2, q := N div 3)
%	N mod 3 = 0 -> 3 * q
%	N mod 3 = 1 -> 3 * (q - 2) + 2 + 2
%	N mod 3 = 2 -> 3 * (q - 1) + 2

\newcount\mkt@cnta\newcount\mkt@cntb
\newcount\mkt@sname\newcount\mkt@gname
\newbox\mkt@boxa
\newdimen\mkt@namewidth
\def\mkt@makeauthor{\let\member\@gobble \let\nomember\relax
	\let\stmember\@gobble	% Those are not necessary in final manuscript.
	\def\@makefnmark{\smash{\rlap{\fn@fontvii$^{\affi@thefnmark}$}}}%
	\gdef\affi@thefnmark{}\leavevmode\let\+\ignorespaces
	\settowidth\@tempdima{‚ }\mkt@namewidth7\@tempdima\@tempcnta\z@
	\expandafter\mkt@countauthor\@author\and\@nil\and
	\ifnum\@tempcnta=\@ne\let\mkt@anhbox\mkt@anhboxc\mkt@makesingleauthor
	\else
		\@tempcntb\@tempcnta \divide\@tempcntb\thr@@
		\multiply\@tempcntb\thr@@ \advance\@tempcntb-\@tempcnta
		\ifnum\@tempcntb=\m@ne\relax\@tempcntb\tw@\else\@tempcntb\z@\fi
		\mkt@cnta\thr@@
		\let\mkt@anhbox\mkt@anhboxl
		\expandafter\mkt@makemultiauthor\@author\and\and\fi}
\def\mkt@countauthor#1\and{\def\@tempa{#1}\ifx\@tempa\@nnil\let\next\relax
	\else\advance\@tempcnta\@ne \let\next\mkt@countauthor\fi\next}

% If single author, author name has 9 KC width instead of 7.
\def\mkt@makesingleauthor{\divide\mkt@namewidth7\multiply\mkt@namewidth9\relax
	\expandafter\mkt@putauthor\@author\+ \@nil}

\def\mkt@makemultiauthor#1\and{\ifnum\@tempcnta=\z@\unskip\let\next\relax\else
	\leavevmode
	\advance\mkt@cnta\m@ne \advance\@tempcnta\m@ne
	\ifnum\mkt@cnta=\z@\mkt@maleft{#1}\mkt@cnta\thr@@\else
	\ifnum\@tempcnta=\@tempcntb\mkt@maleft{#1}\mkt@cnta\tw@\else
	\mkt@putauthor#1\+ \@nil\let\mkt@anhbox\mkt@anhboxc\fi\fi
	\let\next\mkt@makemultiauthor\fi\next}
\def\mkt@maleft#1{\let\mkt@anhbox\mkt@anhboxr\mkt@putauthor#1\+ \@nil
	\par\let\mkt@anhbox\mkt@anhboxl}

% Japanese author name format:
%	Non Japanese : As is.
%	Japanese w/o s/g delimitor : As is with warning.
%	Japanese (s+g>6) : As is.
%	Japanese (s+g<7) : Give 1-KC space to s/g delimitor, then insert
%		infinit stretch between each character pair, assuming the
%		s/g delimitor as a charcter, to make the name have 7-KC
%		width.   An exception is 2s + 2g case, in which s/g
%		delimitor has 0 width in order to have the result
%		"S_S_G_G".

\def\mkt@putauthor#1 #2\@nil{%
	\setbox\@tempboxa\hbox{\let\affiref\@gobble \let\mkt@warning\@gobble
		\jintercharskip\z@#1#2}%
	\setbox\mkt@boxa\hbox{\let\affiref\@gobble \let\mkt@warning\@gobble
		\jintercharskip1cm#1#2}%
	\ifdim\wd\@tempboxa=\wd\mkt@boxa \mkt@anhbox{#1 #2}\else
						% probably no Kanjis
	\def\@tempa{#2}\ifx\@tempa\empty	% without space btwn s/g-name
		{\let\affiref\@gobble \def\+{}%
			\ipsj@warning{Author name #1 doesn't have a space}}%
								% 2.00(3)
		\mkt@anhbox{#1}\else
	\mkt@getnamewidth\mkt@sname{#1}\mkt@getnamewidth\mkt@gname{#2}%
	\mkt@cntb\mkt@sname \advance\mkt@cntb\mkt@gname
	\ifnum\mkt@cntb>6\relax\mkt@anhbox{#1\ #2}\else
	\jintercharskip\fill%
	\@tempskipa\@tempdima plus2fill\relax
	\ifnum\mkt@sname=\tw@ \ifnum\mkt@gname=\tw@ \@tempskipa\fill\fi\fi
	\hbox to\mkt@namewidth{#1\hskip\@tempskipa#2\@makefnmark}\fi\fi\fi
	\gdef\affi@thefnmark{}\hskip\columnsep}

% When an author name is formatted "as is", the following macros are used
% according to their position (left, right, or center).
\def\mkt@anhboxl#1{\hbox to\mkt@namewidth{\hss#1\@makefnmark}}
\def\mkt@anhboxr#1{\hbox to\mkt@namewidth{#1\@makefnmark\hss}}
\def\mkt@anhboxc#1{\setbox\@tempboxa\hbox{#1\@makefnmark}%
	\ifdim\wd\@tempboxa>\mkt@namewidth\box\@tempboxa
	\else\hbox to\mkt@namewidth{\hss\box\@tempboxa\hss}\fi}	% 2.08(1)

\def\mkt@getnamewidth#1#2{\setbox\@tempboxa\hbox{\let\affiref\@gobble#2}%
	\@tempdimb\wd\@tempboxa
	\advance\@tempdimb.5\@tempdima #1\@tempdimb \mkt@cntb\@tempdima
	\divide#1\mkt@cntb}

% English author name format
%	1 -> <name-1>^*
%	2 -> <name-1>^* and~<name-2>^*
%	3 or more -> <name-1>,^* <name-2>,^* ... <name-n-1>^* and~<name-n>^*
% (be careful the position of comma).
%
% No special tricks for assignment names to line.  Names are simply put in a
% \centering paragraph.

\def\mkt@makeeauthor{\let\member\@gobble \let\nomember\relax
	\let\stmember\@gobble	% Those are not necessary in final manuscript.
	\leavevmode\let\mkt@and\relax\gdef\affi@thefnmark{}%
	\def\@thefnmark{\affi@thefnmark}%
	\expandafter\mkt@imakeeauthor\@eauthor\and\@nil\and}
\def\mkt@imakeeauthor#1\and#2\and{\def\@tempa{#2}\ifx\@tempa\@nnil
		#1\@makefnmark\let\next\relax
	\else
		\def\@tempb{#1}\def\next{\mkt@iimakeeauthor#2\and}%
	\fi\next}
\def\mkt@iimakeeauthor#1\and{\def\@tempa{#1}\ifx\@tempa\@nnil
		\@makefnmark\ {\rm{and}~}\gdef\affi@thefnmark{}\hbox{\@tempb}%
		\@makefnmark\let\next\relax
	\else
		\mkt@and\hbox{\@tempb}\let\mkt@and\mkt@andmid
		\let\next\mkt@iimakeeauthor
	\fi\def\@tempb{#1}\next}
\def\mkt@andmid{,\@makefnmark\ \gdef\affi@thefnmark{}}

% Macros to specify author's affiliation easily.
\newcounter{affi@footnote} \c@affi@footnote\z@
\def\affilabel{\stepcounter{affi@footnote}\affi@deflabels\affi@affilabel}
								% 1.04(1a)
\def\paffilabel{\affi@deflabels\affi@paffilabel}
\def\affi@deflabels#1#2#3{{\def\protect{\noexpand\protect\noexpand}%
	\let\affi@affilabel\relax \let\affi@paffilabel\relax \let\\\relax
	\xdef\affi@labels{\affi@labels#1{#2}{#3}}}}
\def\affi@labels{}
\def\affi@affilabel{\begingroup
	\def\@mpfn{affi@footnote}\def\thempfn{\theaffi@footnote}%
	\def\affi@fnmark{\protect\@makefnmarkdagger}%
	\affi@label}
\def\affi@paffilabel#1#2{\begingroup\PF@adjustfnote
	\def\affi@fnmark{\protect\@makefnmarkstar}%
	\def\protect{\noexpand\protect\noexpand}%
	\def\\{\noexpand\\Presently with \ignorespaces}%
	\edef\@tempa{\ifDS@english Presently with \else Œ»ÝC\fi#2}% 1.04(1d)
	\affi@label{#1}{\@tempa}}
\def\affi@label#1#2{\stepcounter{\@mpfn}%
	\@ifundefined{affi@r@#1}%
		{\expandafter\xdef\csname affi@r@#1\endcsname{\thempfn}}
		{\ipsj@warning{Affiliation label `#1' multiply defined}}%
								% 2.00(3)
	\let\affi@footnotetext\relax\let\\\relax
	\def\protect{\noexpand\protect\noexpand}%
	\xdef\@thanks{\@thanks
		\affi@footnotetext{\thempfn}{\affi@fnmark}{#2}}\endgroup}

\def\affiref#1{\@ifundefined{affi@r@#1}%
		{\ipsj@warning{Affiliation reference `#1' undefined}% 2.00(3)
			\def\@tempa{?}}%
		{\def\@tempa{\csname affi@r@#1\endcsname}}%
	\ifx\affi@thefnmark\empty\xdef\affi@thefnmark{\@tempa}\else
	\xdef\affi@thefnmark{\affi@thefnmark,\hskip\z@\@tempa}\fi}
\def\affi@footnotetext#1#2#3{{\def\@thefnmark{#1}\def\@makefnmarkforfn{#2}
	\@footnotetext{#3}}}

% 1.04(1b)>>
\def\theaffi@footnote{\ifcase\c@affi@footnote\or
	{\dagger}\or {\dagger}{\dagger}\or {\dagger}{\dagger}{\dagger}\fi}
								% 1.04(1c)
\def\theaffi@footnotemany{{\dagger}\number\c@affi@footnote}
% 1.04(1b)<<

\def\thanks#1{\begingroup
	\def\@makefnmark{\smash{\hbox{\fn@fontvii$^{\@thefnmark}$}}}%
	\footnotemark
	\let\affi@footnotetext\relax\let\\\relax
	\def\protect{\noexpand\protect\noexpand}%
	\xdef\@thanks{\@thanks
		\affi@footnotetext{\thempfn}{\protect\@makefnmarkstar}{#1}}%
	\endgroup}

% \contact is necessary only for drafts.
\long\def\contact#1{}


%%%%%% Page Header and Footer %%%%%% 

\mark{{}{}} 

\newcounter{volpageoffset} % You must set this to appropriate value
\setcounter{volpageoffset}{1} % for each issue!

% 2.00(16)>>
\let\latex@document\document
\def\document{\latex@document
	\ifDS@private\else \global\c@page\c@volpageoffset \fi}	% 2.07(8)
\let\c@volpage\c@page		% for backward compatibility
\def\thevolpage{\thepage}	% for backward compatibility
% 2.00(16)<<

\newcounter{volume}\expandafter\let\csname c@Šª”\endcsname\c@volume
\newcounter{number}\expandafter\let\csname c@†”\endcsname\c@number
\let\c@month\c@number \expandafter\let\csname c@ŒŽ”\endcsname\c@number
								% 2.07(4)
\newcounter{year}\expandafter\let\csname c@”N”\endcsname\c@year

% 2.07(4)>>
\def\@thevolno{Vol.~\arabic{Šª”}\hskip\@mojihaba No.~%
	\ifipsj@trans SIG\ \ipsj@sig@numa(\ipsj@sig@code\ \ipsj@sig@numb)%
	\else \arabic{†”}\fi}
% 2.07(4)<<
% 2.00(15)>>
\def\@monthyear{\ifcase\value{†”}\or Jan.\or Feb.\or Mar.\or Apr.\or May\or
		June\or July\or Aug.\or Sep.\or Oct.\or Nov.\or Dec.\else\fi
	\hskip.5\@mojihaba \setcounter{”N”}{1959}%
	\addtocounter{”N”}{\value{Šª”}}\arabic{”N”}}
% 2.00(15)<<

% 2.07(2)>>
\newif\ifipsj@trans \ipsj@transfalse
\def\transaction#1#2#3{\ipsj@transtrue
	\def\ipsj@sig@code{#1}\def\ipsj@sig@numa{#2}\def\ipsj@sig@numb{#3}%
	\expandafter\let\expandafter\ipsj@sig@title
		\csname ipsj@sig@#1@\ifDS@english e\else j\fi\endcsname
	\ifx\ipsj@sig@title\relax
		\ipsj@warning{Transaction code #1 is unknown}\fi
	\let\ipsj@oddhead@s\ipsj@oddhead@a
	\settowidth\@tempdima{%
	    \ipsj@ohcheck\ipsj@ohcvolno\hdr@tipsj\ipsj@ohcvolno}%
	\ifdim\@tempdima>\textwidth
	    \let\ipsj@oddhead@s\ipsj@oddhead@b
	    \settowidth\@tempdima{\c@month3\relax	% "Mar." is longest
		\ipsj@ohcheck\ipsj@ohcvolno\hdr@tipsj\@monthyear}%
	    \ifdim\@tempdima>\textwidth
		\let\ipsj@oddhead@s\ipsj@oddhead@c
	\fi \fi}

\def\ipsj@sig@PRO@j{ƒvƒƒOƒ‰ƒ~ƒ“ƒO}
\def\ipsj@sig@PRO@e{Programming}
\def\ipsj@sig@TOM@j{”—ƒ‚ƒfƒ‹‰»‚Ɖž—p}
\def\ipsj@sig@TOM@e{Mathematical Modeling and Its Applications}
\def\ipsj@sig@TOD@j{ƒf[ƒ^ƒx[ƒX}
\def\ipsj@sig@TOD@e{Databases}
\def\ipsj@sig@HPS@j{ƒnƒCƒpƒtƒH[ƒ}ƒ“ƒXƒRƒ“ƒsƒ…[ƒeƒBƒ“ƒOƒVƒXƒeƒ€}
\def\ipsj@sig@HPS@e{High Performance Computing Systems}
\def\ipsj@sig@CVIM@j{ƒRƒ“ƒsƒ…[ƒ^ƒrƒWƒ‡ƒ“‚ƃCƒ[ƒWƒƒfƒBƒA}
\def\ipsj@sig@CVIM@e{Computer Vision and Image Media}
% 2.07(2)<<

\def\copyrightnotice{\long\def\ipsj@cnotice}

% 1.05(2)>>
\ifDS@techrep
\def\ps@headings{\let\@mkboth\markboth
	\def\@oddhead{\@checklines\hss}\let\@evenhead\@oddhead
	\def\@oddfoot{}\def\@evenfoot{}}
\let\ps@myheadings\ps@headings

\else\ifDS@private						% 2.07(8)>>
\def\ps@headings{\let\@mkboth\markboth
	\def\@oddhead{\@checklines\hfil\thepage\hskip12\@Q}%
	\def\@evenhead{\@checklines\hskip12\@Q\thepage\hfil}
	\def\@oddfoot{}\def\@evenfoot{}}
\def\ps@myheadings{\ps@headings
	\def\@oddhead{\@checklines
		\smash{\parbox[b]{.75\textwidth}{\@nameuse{ipsj@cnotice}}}%
		\hfil\thepage\hskip12\@Q}%
	\let\@evenhead\@oddhead}
								% 2.07(8)<<
\else
% 1.05(2)<<
\def\ps@headings{\let\@mkboth\markboth
	\def\@oddfoot{}
	\def\@evenfoot{}
	\def\@evenhead{\fs@header \@checklines
		\hskip12\@Q\rlap{\thepage}\hss			% 2.07(3)
		\hdr@tipsj\hss\llap{\@monthyear}\hskip12\@Q}
	\def\@oddhead{\fs@header \@checklines
		\ipsj@oddhead@t\@titlestring\thepage}		% 2.07(3)
	\def\sectionmark##1{}\def\subsectionmark##1{}}

\def\ps@myheadings{\let\@mkboth\@gobbletwo
	\def\@oddhead{\fs@header \@checklines
		\ipsj@oddhead@s\hdr@tipsj\@monthyear}		% 2.07(3)
	\def\@oddfoot{\fs@footer\hfil\thepage\hfil}
	\let\@evenhead\@oddhead
	\let\@evenfoot\@oddfoot
	\def\sectionmark##1{}\def\subsectionmark##1{}}
\fi\fi								% 1.05(2)
								% 2.07(8)
% 2.07(3)>>
\def\ipsj@oddhead@a#1#2{\hskip12\@Q \rlap{\@thevolno}\hss#1\hss
	\llap{#2}\hskip12\@Q}
\def\ipsj@oddhead@b#1#2{\hskip12\@Q \@thevolno\qquad#1\hss
	\llap{#2}\hskip12\@Q}
\def\ipsj@oddhead@c#1#2{\hskip12\@Q \@thevolno\hss#1\hss#2\hskip12\@Q}
\let\ipsj@oddhead@t\ipsj@oddhead@a
\let\ipsj@oddhead@s\ipsj@oddhead@a
% 2.07(3)<<

% 2.02(2),2.07(4)>>
\ifDS@english
\def\hdr@tipsj{\smash{%
	\ifipsj@trans
		IPSJ Transactions on \ipsj@sig@title
	\else
		IPSJ Journal\fi}}
\else
\def\hdr@tipsj{\smash{î•ñˆ—Šw‰ï˜_•¶Ž%
	\ifipsj@trans F\ipsj@sig@title\fi}}
\fi
% 2.02(2),2.07(4)<<

% \checklines enables to draw a horizontal rule onto each baselines.

\newif\if@checklines \@checklinesfalse
\def\checklines{\@checklinestrue}
\def\@checklines{\if@checklines \rlap{\smash{\vtop{\normalsize
	\hbox{} \vskip\headsep \hrule width\textwidth\vskip-.4pt \vskip\topskip
	\hrule\vskip-.4pt
	\ifDS@techrep\@tempcnta50\else				% 1.05(2)
	\ifDS@english\@tempcnta53\else\@tempcnta45\fi\fi	% 1.05(2)
	\relax\@@checklines}}}\fi
	\ifDS@english\@tempcnta-7\else\@tempcnta\z@\fi\relax
% 1.05(2)>>
	\@tempswafalse
	\ifDS@printer \@tempswatrue \fi \ifDS@techrep \@tempswatrue \fi
	\if@tempswa \unitlength\@Q \begin{picture}(0,0)(0,\@tempcnta)
		\put(-61,63){\begin{picture}(0,0)
			\put(-10,0){\line(-1,0){30}}
			\put(0,10){\line(0,1){30}}\end{picture}}
		\put(667,63){\begin{picture}(0,0)
			\put(10,0){\line(1,0){30}}
			\put(0,10){\line(0,1){30}}\end{picture}}
		\put(-61,-965){\begin{picture}(0,0)
			\put(-10,0){\line(-1,0){30}}
			\put(0,-10){\line(0,-1){30}}
			\ifDS@techrep
			\put(0,-10){\makebox(728,0)[t]{\thepage}}\fi
			\end{picture}}
% 1.05(2)<<
		\put(667,-965){\begin{picture}(0,0)
			\put(10,0){\line(1,0){30}}
			\put(0,-10){\line(0,-1){30}}\end{picture}}
		\end{picture}\fi}
\def\@@checklines{\ifnum\@tempcnta>\z@
	\vskip\normalbaselineskip \hrule\vskip-.4pt \advance\@tempcnta\m@ne
	\let\next\@@checklines\else\let\next\relax\fi\next}

\pagestyle{headings}
\pagenumbering{arabic}

\ifDS@english\else
\def\today{\the\year ”N \the\month ŒŽ \the\day “ú}
\fi


%%%%%% Output Routine %%%%%%

% To balance the final page,
% following code is borrowed from nicetwocolumn style

% you can refrain from balancing by falsifying following switch!
%% Initial value of \if@lastpagebalancing is false.  It may be turned true by
%% biography processing macros. (H.N.)

\newif\if@lastpagebalancing \@lastpagebalancingfalse
\newif\if@finalpageoutput \@finalpageoutputfalse
% incorporate balanced output to \enddocument
\let\latex@enddocument\enddocument
\def\enddocument{\@finalpageoutputtrue
	\if@lastpagebalancing
		\global\let\@outputdblcol\opt@balanceoutputdblcol\fi
	\ifDS@preface
		\global\let\@outputdblcol\opt@balanceoutputdblcol\fi
	\ifDS@abstract						% 2.07(7)>>
		\hbox{}\newpage
		\ifDS@english	\rightline{(Presented \ra@presented)}
		\else		\expandafter\ra@putpresented\ra@presented \fi
		\fi						% 2.07(7)<<
	\latex@enddocument}

\newbox\@leftcolumnfootnote \newbox\@rightcolumnfootnote
\newif\if@leftfootnoteexist \@leftfootnoteexistfalse 
\newif\if@rightfootnoteexist \@rightfootnoteexistfalse
\newif\ifopt@floatexist \opt@floatexistfalse

% 2.00(12) \color@{begin/end}group ignored
\def\enlargethispage{\ipsj@warning{\string\enlargepage is ignored}}
								% 2.00(3,12)
\def\@makecol{\vbadness10000 \lineskiplimit\normallineskiplimit	% 1.05(1)
	\setbox\@outputbox\box\@cclv
	\if@firstcolumn
		\ifvoid\footins \global\@leftfootnoteexistfalse
		\else
			\global\@leftfootnoteexisttrue
			\@tempdima\dp\footins
			\global\setbox\@leftcolumnfootnote\vbox{
				\unvbox\footins\vskip-\@tempdima}
		\fi
		\ifx\@botlist\@empty\else\global\opt@floatexisttrue\fi
	\else
		\ifvoid\footins \global\@rightfootnoteexistfalse
		\else
			\global\@rightfootnoteexisttrue
			\@tempdima\dp\footins
			\global\setbox\@rightcolumnfootnote\vbox{
				\unvbox\footins	\vskip-\@tempdima}
		\ifx\@toplist\@empty\else\global\opt@floatexisttrue\fi
		\fi
	\fi
	\xdef\@freelist{\@freelist\@midlist}\gdef\@midlist{}\@combinefloats
	\global\maxdepth\@maxdepth}

% 2.01(1) >>
\let\latex@vtryfc\@vtryfc
\def\@vtryfc{\if@firstcolumn \global\@leftfootnoteexistfalse
	\else \global\@rightfootnoteexistfalse \fi \latex@vtryfc}
% 2.01(1) <<

% 1.01(1,2) >>
\let\latex@addtobot\@addtobot
\def\@addtobot{\latex@addtobot\global\maxdepth\@maxdepth}
\let\latex@combinefloats\@combinefloats
\def\@combinefloats{\ifx\@botlist\@empty\else \dimen@\dp\@outputbox
	\setbox\@outputbox\vbox{\unvbox\@outputbox \vskip-\dimen@}\fi
	\latex@combinefloats}
% 1.01(1,2) <<

\newskip\opt@baselineskip
\def\@outputdblcol{
	\if@firstcolumn \global\@firstcolumnfalse
		\global\setbox\@leftcolumn\box\@outputbox
		\global\opt@baselineskip\baselineskip
	\else \global\@firstcolumntrue \global\opt@floatexistfalse
	\global\bib@adjustheight-\maxdimen
	\setbox\@leftcolumn\vbox to\@colht{\boxmaxdepth\@maxdepth   % 1.01(3)
		\unvbox\@leftcolumn
		\if@leftfootnoteexist\vfil
			\footnoterule\box\@leftcolumnfootnote\fi}
	\setbox\@outputbox\vbox to\@colht{\boxmaxdepth\@maxdepth    % 1.01(3)
		\unvbox\@outputbox
		\if@rightfootnoteexist\vfil
			\footnoterule\box\@rightcolumnfootnote\fi}
	\global\maxdepth\@maxdepth
	\if@finalpageoutput
	\if@leftfootnoteexist\else\if@rightfootnoteexist\else
		\setbox\@leftcolumn\vbox{\unvbox\@leftcolumn}%
		\setbox\@outputbox\vbox{\unvbox\@outputbox}
		\ifdim\ht\@leftcolumn<\ht\@outputbox
			\setbox\@leftcolumn\vbox to\ht\@outputbox{
				\unvbox\@leftcolumn}%
		\else
			\setbox\@outputbox\vbox to\ht\@leftcolumn{
				\unvbox\@outputbox}%
		\fi
	\fi\fi\fi
	\setbox\@outputbox\vbox{\hbox to\textwidth{\hbox to\columnwidth
		{\box\@leftcolumn \hss}\hfil \vrule width\columnseprule\hfil
		\hbox to\columnwidth{\box\@outputbox \hss}}}
	\@combinedblfloats
	\@outputpage \begingroup \@dblfloatplacement \@startdblcolumn
	\@whilesw\if@fcolmade \fi{\@outputpage\@startdblcolumn}%
	\endgroup
	\fi}

\let\opt@outputdblcol\@outputdblcol
\chardef\opt@boxa\z@
\chardef\opt@boxb\@ne
\chardef\opt@boxc\tw@
\def\opt@magicpenalty{1234}
\def\opt@balanceoutputdblcol{\let\next\opt@ibalanceoutputdblcol
	\if@firstcolumn \let\next\opt@outputdblcol
	\else	\ifopt@floatexist \opt@warning \let\next\opt@outputdblcol
		\else\ifx\@deferlist\@empty\else
			\opt@warning \let\next\opt@outputdblcol\fi\fi\fi
	\next}
\def\opt@ibalanceoutputdblcol{%
	\setbox\@leftcolumn\vbox{\unvbox\@leftcolumn
		\ifnum\lastpenalty=\opt@magicpenalty\relax\else
		\@tempcnta10\relax\@whilenum\@tempcnta>0\do{%
			\unskip\unskip\unkern\unpenalty
			\advance\@tempcnta\m@ne}\fi}
	\advance\opt@baselineskip-\dp\@leftcolumn
	\ifdim\dp\@leftcolumn=\z@ \ifdim\opt@baselineskip=\baselineskip
		\@tempdima\ht\@leftcolumn \advance\@tempdima-\topskip
		\divide\@tempdima\baselineskip
		\@tempcnta\@tempdima \@tempdima\@tempcnta\baselineskip
		\advance\@tempdima\topskip
		\advance\@tempdima-\ht\@leftcolumn
		\advance\opt@baselineskip\@tempdima \fi\fi
	\advance\opt@baselineskip-\topskip
	\setbox\@outputbox\vbox{\unvbox\@outputbox}
	\ifdim\ht\@outputbox=\topskip \ifdim\dp\@outputbox=\z@
	\setbox\opt@boxa\vbox{\unvcopy\@outputbox\unskip
		\global\setbox\opt@boxb\lastbox
		\global\dimen@\lastskip}
	\ifvoid\opt@boxb\else\ifdim\ht\opt@boxb=\z@
		\ifdim\dp\opt@boxb=\z@\ifdim\dimen@=\topskip
		\@firstcolumntrue\fi\fi\fi\fi\fi\fi
	\setbox\opt@boxa\copy\@outputbox
	\setbox\@outputbox\vbox{\unvcopy\@leftcolumn
		\if@firstcolumn\else
		\vskip\opt@baselineskip
		\penalty\interlinepenalty\unvbox\@outputbox\fi}
	\@tempdima\ht\@outputbox \advance\@tempdima\topskip
	\divide\@tempdima\tw@ \advance\@tempdima100sp
	\splittopskip\topskip \splitmaxdepth\@maxdepth
	\ifdim\bib@adjustheight<\@M pt
		\opt@split\@outputbox\opt@boxb\@tempdima
		\ifdim\ht\opt@boxb<\bib@adjustheight
			\opt@split\@leftcolumn\opt@boxc\bib@adjustheight
			\opt@split\opt@boxc\opt@boxb\@tempdima
			\if@firstcolumn
				\opt@adjust\opt@boxc{\unvbox\@leftcolumn}
			\else\opt@adjust\opt@boxc{\ifvoid\@leftcolumn\else
				\unvbox\@leftcolumn\vskip\opt@baselineskip\fi
				\unvbox\opt@boxa}\fi\fi
	\else
		\advance\bib@adjustheight-\@M pt
		\opt@split\opt@boxa\opt@boxc\bib@adjustheight
		\setbox\@outputbox\vbox{\unvbox\@leftcolumn
			\vskip\opt@baselineskip\unvbox\opt@boxc}
		\opt@split\@outputbox\opt@boxb\@tempdima
		\opt@adjust\@outputbox{\unvbox\opt@boxa}
	\fi
	\if@leftfootnoteexist
		\setbox\opt@boxb\vbox to\@colht{\box\opt@boxb\vfill
			\footnoterule\box\@leftcolumnfootnote}\fi
	\if@rightfootnoteexist
		\setbox\@outputbox\vbox to\@colht{\box\@outputbox\vfill
			\footnoterule\box\@rightcolumnfootnote}\fi
	\ifdim\ht\@outputbox>\ht\opt@boxb
		\setbox\opt@boxb\vbox to\ht\@outputbox{\unvbox\opt@boxb}
	\else
		\setbox\@outputbox\vbox to\ht\opt@boxb{\unvbox\@outputbox}
	\fi
	\setbox\@outputbox\vbox{\hbox to\textwidth{\hbox to\columnwidth
		{\box\opt@boxb \hss}\hfil \vrule width\columnseprule\hfil
		\hbox to\columnwidth{\box\@outputbox \hss}}}
	\global\@firstcolumntrue \@combinedblfloats
	\@outputpage \begingroup \@dblfloatplacement \@startdblcolumn
	\@whilesw\if@fcolmade \fi{\@outputpage\@startdblcolumn}\endgroup}

\if@LaTeX@eN							% 2.00(3)>>
\def\opt@warning{\ClassWarning{ipsjpapers}{%
	Single column floats still remain on biography\MessageBreak
	processing.\MessageBreak
	Do \string\verbbiography\space for manual balcing}}
\else
\def\opt@warning{\@warning{Single column floats still remain on biography
	processing.^^J\space\space\space\space\space
	\space\space\space\space\space\space\space\space\space\space
	Do \string\verbbiography\space for manual balancing}}
\fi								% 2.00(3)<<
\def\opt@split#1#2#3{\setbox#2\vsplit#1to#3\setbox#2\vbox{\unvbox#2}}
\def\opt@adjust#1#2{\@tempdima\ht#1 \advance\@tempdima-\topskip
	\@tempdimb\@tempdima \divide\@tempdima\baselineskip
	\@tempcnta\@tempdima \@tempdima\@tempcnta\baselineskip
	\advance\@tempdima-\@tempdimb
	\ifdim\@tempdima<\z@ \advance\@tempdima\baselineskip \fi
	\advance\@tempdima\baselineskip \advance\@tempdima-\dp#1 
	\advance\@tempdima-\topskip
	\setbox\@outputbox\vbox{\ifvoid#1\else\unvbox#1\vskip\@tempdima\fi#2}}

\let\latex@outputpage\@outputpage
% \opt@finalgap:	vertical space above the \hrule at the end of paper.
% \opt@finallinewidth:	width of the \hrule at the end of paper.
\@tempdima2\baselineskip		% This might be changed
\edef\opt@finalgap{\the\@tempdima}
\def\opt@finallinewidth{220\@Q}		% This might be changed
\ifDS@techrep \let\opt@finallinewidth\z@ \fi			% 1.05(2)

\def\@outputpage{\if@finalpageoutput
	\setbox\@outputbox\vbox{\unvbox\@outputbox}
	\@tempdima\dp\@outputbox
	\@tempdimb\ht\@outputbox \advance\@tempdimb\opt@finalgap\relax
	\ifdim\@tempdimb>\textheight\else
	\setbox\@outputbox\vbox{\unvbox\@outputbox\vskip-\@tempdima
		\nointerlineskip\vbox to\z@{\vskip\opt@finalgap
			\hbox to\textwidth{\hss
			\vrule height0.4pt width\opt@finallinewidth\hss}
		\vss}}\fi\fi
	\ifASCII\if@LaTeX@e \@@topmargin\topmargin \fi\fi	    % 2.00(13)
	\latex@outputpage}

%%%%%% Biography %%%%%%

% If you want to control the allocation of biographies manually, do
% \verbbiography and insert \adjust{<vertical materials>} just before
% \member (or its relatives).  For example;
% 	\verbbiography
%	\begin{biography}
%	\member{...} ...
%	\adjust{\protect\newpage}
%	\member{...} ...
%	\adjust{\protect\vspace{1.3cm}}
%	\member{...} ...
%	\end{biography}
% will make page break just after the biography of the 1st author, and will
% insert a vertical space of 1.3cm just after that of the 2nd.  It is
% strongly recommended to \protect any control sequence in the argument of
% \adjust.

% \Žó•t and \Ì˜^ define the dates of receipt/acceptance.  They are put at
% the end of manuscript (just before biographies) by ra@putrcvacc.
\def\ra@nengo{•œ¬}	%% Change here when ...
\ifDS@english
\def\Žó•t#1#2#3{\def\ra@received{\ra@date{#1}{#2}{#3}}\ignorespaces}
\def\Ì˜^#1#2#3{\def\ra@accepted{\ra@date{#1}{#2}{#3}}\ignorespaces}
\def\ÄŽó•t#1#2#3{\def\ra@rereceived{\ra@date{#1}{#2}{#3}}\ignorespaces}
								% 2.07(5)
\def\”­•\#1#2#3{\def\ra@presented{\ra@date{#1}{#2}{#3}}\ignorespaces}
								% 2.07(7)
\def\ra@received{??? ??, ????}
\def\ra@accepted{??? ??, ????}
\def\ra@presented{??? ??, ????}					% 2.07(7)
\def\ipsj@TOD@editor{(Editor in Charge: {\it\ipsj@TOD@ename})}	% 2.07(6)
\else
\def\Žó•t#1#2#3{\def\ra@received{#1&#2&#3&}\ignorespaces}
\def\Ì˜^#1#2#3{\def\ra@accepted{#1&#2&#3&}\ignorespaces}
\def\ÄŽó•t#1#2#3{\def\ra@rereceived{#1&#2&#3&}\ignorespaces}	% 2.07(5)
\def\”­•\#1#2#3{\def\ra@presented{#1&#2&#3&}\ignorespaces}	% 2.07(7)
\def\ra@received{?&?&?&}
\def\ra@accepted{?&?&?&}
\def\ra@presented{?&?&?&}					% 2.07(7)
\def\ipsj@TOD@editor{i’S“–•ÒWˆÏˆõ\ \ipsj@TOD@ename j}	% 2.07(6)
								% 2.08(2)
\fi
\let\received\Žó•t
\let\accepted\Ì˜^
\let\rereceived\ÄŽó•t						% 2.07(5)
\let\presented\”­•\						% 2.07(7)

\def\edInCharge#1{\def\ipsj@TOD@ename{#1}\ignorespaces}		% 2.07(6)

\def\ra@putrcvacc{\rightline{\vtop{\normalsize\tabskip\z@
	\ifDS@english
	    \llap{(Received \ra@received)}
	    \ifx\ra@rereceived\undefined\else
		\llap{(Revised \ra@rereceived)}\fi
	    \llap{(Accepted \ra@accepted)}\hbox{}
	\else
	    \halign{(\ra@nengo\hskip\jasciikanjiskip
		\hfil##\hfil\hskip\jasciikanjiskip ”N\hskip\jasciikanjiskip&
		\hfil##\hfil\hskip\jasciikanjiskip ŒŽ\hskip\jasciikanjiskip&
		\hfil##\hfil\hskip\jasciikanjiskip “ú&##\hfil\cr% 2.07(5)>>
		\ra@received Žó•t)\cr
		\ifx\ra@rereceived\undefined\else \ra@rereceived ÄŽó•t)\cr\fi
		\ra@accepted Ì˜^)\cr\multispan3\cr}\fi}%
								% 2.07(5)<<
	\hskip\@mojihaba}
	\nobreak\vskip-2\baselineskip\prevdepth\z@\hbox{}
	\ifipsj@recommendation\else				% 2.04(2)
		\ifx\ipsj@TOD@ename\undefined\else		% 2.07(6)>>
			\nobreak\vskip\baselineskip
			\hbox{\ipsj@TOD@editor}\fi		% 2.07(6)<<
		\vskip\baselineskip\penalty\opt@magicpenalty\fi}% 2.04(2)
\def\ra@date#1#2#3{\ifcase#2\or
	January\or February\or March\or April\or May\or June\or
	July\or August\or September\or October\or November\or December\fi
	\space#3, #1}
\def\ra@putpresented#1&#2&#3&{\rightline{%
	(\ra@nengo\hskip\jasciikanjiskip			% 2.07(7)>>
	#1\hskip\jasciikanjiskip ”N\hskip\jasciikanjiskip
	#2\hskip\jasciikanjiskip ŒŽ\hskip\jasciikanjiskip
	#3\hskip\jasciikanjiskip “ú”­•\)}}			% 2.07(7)<<

\newbox\bio@picbox
% The following define the height and width of a picture for biography, and
% the indentation of the first 6 lines.  They might be changed.
\def\bio@picheight{100\@Q}
\def\bio@picwidth{80\@Q}

\newif\ifbio@showpicbox
\bio@showpicboxtrue
% Do \bio@showpicboxfalse if you don't want to put a frame box at the
% position for picture.
\ifDS@english
\def\bio@lineheight{9\@Q}
\def\bio@piclines{7}
\def\bio@indent{91\@Q}
\def\bio@hangafter{7}
\else
\def\bio@lineheight{8\@Q}
\def\bio@piclines{6}
\def\bio@indent{96\@Q}
\def\bio@hangafter{5}
\fi

% \verbbiography forces verbatim output of biography (i.e. not ballanced).
\newif\ifbio@verb \bio@verbfalse
\def\verbbiography{\global\bio@verbtrue}
% The environment biography saves texts for biographies into the list of
% \inserts (for floats).
\def\biography{\ifipsj@recommendation\else\par\ra@putrcvacc\fi	% 2.04(2)
	\def\member{\bio@member{i³‰ïˆõj}}\def\nomember{\bio@member{}}
	\def\stmember{\bio@member{iŠw¶‰ïˆõj}}\let\adjust\bio@adjust
	\ifbio@showpicbox
	\setbox\bio@picbox\hbox{\hbox to\z@{\vrule\hskip-0.4pt%
		\vtop to\bio@picheight{\vskip\z@\hrule width\bio@picwidth
			\vfil\hrule}\hskip-0.4pt\vrule\hss}}
	\else
	\setbox\bio@picbox\hbox{}
	\fi
	\@tempdima\bio@piclines\baselineskip \advance\@tempdima\bio@lineheight
	\dp\bio@picbox\@tempdima
	\let\bio@egroup\relax\let\+\ignorespaces\let\@elt\relax
	\def\bio@list{}\global\bio@th\z@}

\def\bio@member#1#2{\bio@egroup\let\bio@egroup\bio@@egroup
	\@next\@currbox\@freelist\relax
		{\@latexerr{Too many unprocessed floats and biographies}\@ehb}%
	\def\@tempa{#2}%
	\global\setbox\@currbox\hbox\bgroup
	    \raise\bio@lineheight\copy\bio@picbox
	    \vtop\bgroup
		\let\par\\
		\hangindent\bio@indent\hangafter-\bio@hangafter
		\ifDS@english {\bf #2\ }%
		\else {\bf\bio@putauthor#2\+ \@nil}#1{\@@par}\fi\ignorespaces}

% Author name format:
%	S + G < 5 -> fill space between S/G (like SS__G)
%	otherwise -> 1 KC space between S/G (like SS_GG)
\def\bio@putauthor#1 #2\@nil{%
	\setbox\@tempboxa\hbox{\jintercharskip\z@#1#2}%
	\setbox\mkt@boxa\hbox{\jintercharskip1cm#1#2}%
	\ifdim\wd\@tempboxa=\wd\mkt@boxa #1 #2\else
	\def\@tempa{#2}\ifx\@tempa\empty
		{\def\+{}\ipsj@warning{Author name #1 doesn't have a space}}%
								% 2.00(3)
		#1\else
	\@tempdima\@mojihaba
	\mkt@getnamewidth\mkt@sname{#1}\mkt@getnamewidth\mkt@gname{#2}%
	\advance\mkt@sname\mkt@gname
	\ifnum\mkt@sname<5\leavevmode\hbox to5\@mojihaba{#1\hfil#2}\else
		#1#2\fi\fi\fi}
\def\bio@@egroup{\@@par\hbox{}\egroup\egroup\@tempdima\dp\@currbox
	\ifdim\@tempdima>\textheight
		\ipsj@warning{Biography of \@tempa\space is too long}% 2.00(3)
		\bio@verbtrue \fi
	\advance\@tempdima\baselineskip\global\advance\bio@th\@tempdima
	\global\dimen\@currbox\@tempdima \global\count\@currbox\z@
	{\let\protect\bio@protect\xdef\bio@list{\bio@list\@elt\@currbox}}}
\def\bio@adjust#1{\bio@egroup\let\bio@egroup\relax
	\ifbio@verb {\let\protect\bio@protect\xdef\bio@list{\bio@list#1}\fi}}
\def\bio@protect{\noexpand\protect\noexpand}

\def\endbiography{\bio@egroup \@tempswatrue
	\ifx\@botlist\@empty\ifx\@deferlist\@empty \@tempswafalse \fi\fi
	\ifbio@verb\else\if@tempswa \bio@verbtrue \opt@warning\fi\fi
	\ifbio@verb{\let\@elt\bio@putelt \let\protect\relax \bio@list}%
	\else\bio@putbio\fi}

\newdimen\bio@colht \newdimen\bio@splitheight
\newdimen\bio@maxgap \newdimen\bio@lastgap
\newdimen\bio@th \newdimen\bio@lhA \newdimen\bio@hA \newdimen\bio@hB
\newdimen\bio@lh \newdimen\bio@rh
\newdimen\bio@tempdim
\newif\ifbio@awful
\newinsert\bio@pbox \count\bio@pbox\@ne

\def\bio@putbio{\let\@elt\relax \let\bio@vskip\relax \allowbreak
	\bio@colht\@colht \advance\bio@colht-\topskip
	\advance\bio@colht\baselineskip
	\@tempdima\bio@colht \advance\@tempdima-\@colroom
	\advance\@tempdima\pagetotal
	\if@firstcolumn
	    \ifdim\@tempdima>\bio@th
		\global\@lastpagebalancingtrue
		{\let\@elt\bio@putelt\bio@list}\vskip-\baselineskip
	    \else
		\ifdim\pagetotal=\z@\else
			\dimen\bio@pbox\@tempdima \advance\bio@th\@tempdima
			\edef\bio@list{\@elt\bio@pbox\bio@list}\fi
		\bio@splitheight\bio@colht \bio@splitpage
		\bio@splitheight.5\bio@th
		\let\bio@awfulput\bio@specialawfulput
		\bio@trybalance\fi
	\else \advance\@tempdima\bio@th
	    \ifdim\@tempdima<\bio@colht
		\global\@lastpagebalancingtrue
		\ifdim\pagetotal=\z@ \global\opt@baselineskip2\baselineskip\fi
		{\let\@elt\bio@putelt\bio@list}\vskip-\baselineskip
	    \else
		\let\bio@awfulput\bio@normalawfulput
		\bio@splitheight\z@ \advance\@tempdima-\bio@th
		\advance\bio@colht-\@tempdima \bio@splitpage
		{\let\@elt\bio@putelt\bio@list}\bio@nextpage
		\bio@trybalance\fi
	\fi}

\def\bio@trybalance{\bio@split 
	\let\bio@right\bio@rightA \let\bio@left\bio@leftA
		\def\bio@rightx{}\def\bio@leftx{}%
		\let\bio@hX\bio@hA \bio@balance
		\let\bio@rightxA\bio@rightx \let\bio@leftxA\bio@leftx
	\ifbio@awful\@tempcnta\tw@\else\@tempcnta\z@\fi
	\let\bio@right\bio@rightB \let\bio@left\bio@leftB
		\def\bio@rightx{}\def\bio@leftx{}%
		\let\bio@hX\bio@hB \bio@balance
		\let\bio@rightxB\bio@rightx \let\bio@leftxB\bio@leftx
	\ifbio@awful\advance\@tempcnta\@ne\fi
	\ifcase\@tempcnta
		\ifdim\bio@hA<\bio@hB \bio@balanceput\bio@leftxA\bio@rightxA
		\else \bio@balanceput\bio@leftxB\bio@rightxB\fi
	\or \bio@balanceput\bio@leftxA\bio@rightxA
	\or \bio@balanceput\bio@leftxB\bio@rightxB
	\else \bio@awfulput\fi
	\ifx\bio@deferred\empty\vskip-\baselineskip\let\next\relax
	\else\bio@nextpage\let\next\bio@trybalance\fi\next}

\def\bio@split{\def\bio@leftA{}\def\bio@leftB{}%
	\def\bio@rightA{}\def\bio@rightB{}%
	\bio@lhA\z@\@tempdimb\z@ \bio@isplit}
\def\bio@isplit{\ifx\bio@list\empty\let\next\relax\else
	\bio@car\@tempdima\@currbox\bio@list
	\bio@lhA\@tempdimb\advance\@tempdimb\@tempdima
	\edef\bio@leftB{\bio@leftB\@elt\@currbox}%
	\ifdim\@tempdimb>\bio@splitheight
		\edef\bio@rightA{\@elt\@currbox\bio@list}%
		\let\bio@rightB\bio@list \let\next\relax
	\else\edef\bio@leftA{\bio@leftA\@elt\@currbox}\let\next\bio@isplit
	\fi\fi\next}

\def\bio@balanceput#1#2{{\let\@elt\bio@putelt\let\bio@vskip\bio@xvskip
	#1\bio@newpage#2}}
\def\bio@normalawfulput{{\let\bio@vskip\@gobble \@tempcnta\z@ 
	\@tempdima\z@ \bio@addheight\@tempdima\bio@leftxB
	\ifdim\@tempdima<\bio@colht
		\@tempdima\z@ \bio@addheight\@tempdima\bio@rightxB
		\ifdim\@tempdima<\bio@colht \@tempcnta\@ne
			\let\@elt\bio@putelt
			\bio@leftxB\bio@newpage\bio@rightxB\fi\fi
	\ifnum\@tempcnta=\z@
		\@tempdima\z@ \bio@addheight\@tempdima\bio@leftxA
		\ifdim\@tempdima<\bio@colht
			\@tempdima\z@\bio@addheight\@tempdima\bio@rightxA
			\ifdim\@tempdima<\bio@colht \@tempcnta\@ne
				\let\@elt\bio@putelt
				\bio@leftxA\bio@newpage\bio@rightxA\fi\fi\fi
% The following may be redundant.
	\ifnum\@tempcnta=\z@
		\let\@elt\bio@putelt\bio@listsave\fi}}
\def\bio@specialawfulput{{\advance\bio@th-\dimen\bio@pbox
	\ifdim\bio@th<\bio@colht\bio@newpage
	\let\bio@newpage\relax\fi\bio@normalawfulput}}

\def\bio@putelt#1{\ifnum\count#1>\z@\else\box#1
	\nobreak\vskip-2\baselineskip\prevdepth\z@\hbox{}
	\vskip\baselineskip\fi}
\def\bio@xvskip#1{\vskip#1\prevdepth\z@}
\def\bio@newpage{\vskip-\baselineskip\newpage}

\def\bio@nextpage{\bio@newpage \let\bio@list\bio@deferred
	\bio@th\z@ \bio@addheight\bio@th\bio@list
	\bio@colht\@colht \advance\bio@colht-\topskip
	\advance\bio@colht\baselineskip
	\bio@splitheight\bio@colht \bio@splitpage
	\bio@splitheight.5\bio@th
	\let\bio@awfulput\bio@normalawfulput}
\def\bio@splitpage{\let\bio@listsave\bio@list \bio@split
	\@tempdima\bio@th \advance\@tempdima-\bio@lhA
	\ifdim\@tempdima>\bio@colht
		\let\bio@leftAsave\bio@leftA \bio@th\bio@lhA
		\let\bio@list\bio@rightA \bio@splitheight\bio@colht
		\bio@split \edef\bio@list{\bio@leftAsave\bio@leftA}%
		\advance\bio@th\bio@lhA
		\let\bio@deferred\bio@rightA
	\else\def\bio@deferred{}\let\bio@list\bio@listsave\fi}

% \bio@tolerablegap:	maximum tolerable gap between adjacent bio's.
% \bio@tolerablestretch:maximum stretch of a column.

\@tempdima10\baselineskip		% This might be changed
\edef\bio@tolerablegap{\the\@tempdima}
\@tempdima15\baselineskip
\edef\bio@tolerablelastgap{\the\@tempdima}
\def\bio@tolerablestretch{2}		% This might be changed

\def\bio@balance{\let\@elt\relax \edef\bio@bstack{%
		\@elt{{\bio@left}{\bio@right}{}{}{0pt}}}
	\bio@xbalance}
\def\bio@xbalance{%
	\expandafter\bio@popstack\bio@bstack\@nil
	\let\bio@nextA\bio@xbalance \@tempdima\z@
	\ifx\bio@left\empty \ifx\bio@right\empty
		\let\bio@nextA\bio@balanceend
	\else
		\bio@addheight\@tempdima\bio@right
		\edef\bio@leftx{\bio@leftx\bio@vskip{\the\@tempdima}}%
		\advance\bio@hX\@tempdima
		\edef\bio@rightx{\bio@rightx\bio@right}\def\bio@right{}%
		\bio@pushstack \fi\else
	\ifx\bio@right\empty
		\bio@addheight\@tempdima\bio@left
		\edef\bio@rightx{\bio@rightx\bio@vskip{\the\@tempdima}}%
		\advance\bio@hX\@tempdima
		\edef\bio@leftx{\bio@leftx\bio@left}\def\bio@left{}%
		\bio@pushstack \else
	\bio@car\@tempdima\bio@leftbox\bio@left
	\bio@car\@tempdimb\bio@rightbox\bio@right
	\edef\bio@leftx{\bio@leftx\@elt\bio@leftbox}%
	\edef\bio@rightx{\bio@rightx\@elt\bio@rightbox}%
	\ifdim\@tempdima>\@tempdimb
		\advance\bio@hX\@tempdima
		\let\bio@da\@tempdima\let\bio@db\@tempdimb
		\bio@ibalance\bio@left\bio@right\bio@leftx\bio@rightx
	\else	\advance\bio@hX\@tempdimb
		\let\bio@da\@tempdimb\let\bio@db\@tempdima
		\bio@ibalance\bio@right\bio@left\bio@rightx\bio@leftx\fi
	\fi\fi\bio@nextA}
\def\bio@ibalance#1#2#3#4{\let\bio@nextB\relax
	\ifx#2\empty 
		\advance\bio@da-\bio@db
		\edef#4{#4\bio@vskip{\the\bio@da}}\bio@pushstack\else
	\bio@car\bio@tempdim\@currbox#2 \advance\bio@db\bio@tempdim
	\ifdim\bio@da<\bio@db
		\advance\bio@db-\bio@da
		\let\@tempa#3\edef#3{#3\bio@vskip{\the\bio@db}}%
		\let\@tempb#4\edef#4{#4\@elt\@currbox}%
		\advance\bio@hX\bio@db \bio@pushstack
		\advance\bio@hX-\bio@db
		\edef#2{\@elt\@currbox#2}%
		\advance\bio@tempdim-\bio@db
		\let#3\@tempa \edef#4{\@tempb\bio@vskip{\the\bio@tempdim}}%
		\bio@pushstack
	\else \edef#4{#4\@elt\@currbox}\def\bio@nextB{\bio@ibalance#1#2#3#4}%
	\fi\fi\bio@nextB}
\def\bio@balanceend{\bio@awfulfalse \def\bio@bstack{}%
	\bio@maxgap\z@ \bio@lastgap\z@
	\bio@checkgap\bio@leftx \bio@checkgap\bio@rightx
	\ifdim\bio@maxgap>\bio@tolerablegap\relax\bio@awfultrue\fi
	\ifdim\bio@lastgap>\bio@tolerablelastgap\relax\bio@awfultrue\fi
	\ifdim\bio@hX>\bio@tolerablestretch\bio@splitheight\bio@awfultrue\fi
	\ifdim\bio@hX>\bio@colht\bio@awfultrue\fi}
\def\bio@checkgap#1{{\@tempdima\z@ \@tempdimb\z@ \bio@tempdim\z@
	\let\@elt\bio@cgelt \let\bio@vskip\bio@cgvskip #1\relax
	\ifdim\@tempdima>\bio@maxgap \global\bio@maxgap\@tempdima \fi
	\ifdim\bio@tempdim>\bio@lastgap \global\bio@lastgap\bio@tempdim \fi}}
\def\bio@cgvskip#1{\advance\bio@tempdim#1\relax
	\ifdim\bio@tempdim>\@tempdimb \@tempdimb\bio@tempdim\fi}
\def\bio@cgelt#1{\@tempdima\@tempdimb \bio@tempdim\z@}
\def\bio@popstack\@elt#1#2\@nil{\edef\bio@bstack{#2}\bio@ipopstack#1}
\def\bio@ipopstack#1#2#3#4#5{\def\bio@left{#1}\def\bio@right{#2}%
	\def\bio@leftx{#3}\def\bio@rightx{#4}\bio@hX#5\relax}
\def\bio@pushstack{\def\bio@bstackx{}%
	\expandafter\bio@ipushstack\bio@bstack\@elt\@nil}
\def\bio@ipushstack\@elt#1{\def\@tempc{#1}%
	\ifx\@tempc\@nnil \edef\bio@bstack{\bio@bstackx\bio@stackelt}%
		\let\bio@nextC\relax \else
	\bio@iipushstack#1\fi\bio@nextC}
\def\bio@iipushstack#1#2#3#4#5{\ifdim#5>\bio@hX
	\edef\bio@bstackx{\bio@bstackx\bio@stackelt
		\@elt{{#1}{#2}{#3}{#4}{#5}}}%
		\let\bio@nextC\bio@pushstackend\else
	\edef\bio@bstackx{\bio@bstackx
		\@elt{{#1}{#2}{#3}{#4}{#5}}}%
		\let\bio@nextC\bio@ipushstack\fi}
\def\bio@pushstackend#1\@elt\@nil{\edef\bio@bstack{\bio@bstackx#1}}
\def\bio@stackelt{\@elt{{\bio@left}{\bio@right}{\bio@leftx}{\bio@rightx}%
	{\the\bio@hX}}}
\def\bio@addheight#1#2{\def\@elt##1{\advance#1\dimen##1}#2\let\@elt\relax}
\def\bio@car#1#2#3{\expandafter\bio@icar#3\@nil#1#2#3}
\def\bio@icar\@elt#1#2\@nil#3#4#5{#3=\dimen#1\relax\def#4{#1}\def#5{#2}}


%%%%%% Miscellaneous %%%%%%

\flushbottom

\ifDS@english
\hbadness9999 \tolerance9999
\else
\hbadness5000 \tolerance5000
\pretolerance\m@ne
\fi

\input{ipsjcommon.sty}

\twocolumn

\endinput
\ No newline at end of file
+% Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002
+%			by Hiroshi Nakashima, Yasuki Saito and
+%                          The Editorial Board of the IPSJ Journal
+%
+% ipsjpapers.sty 30-Jan-02 by Hiroshi Nakashima (ver 2.09)
+% (revision history deleted)
+% ipsjpapers.sty 24-Apr-95 by Hiroshi Nakashima (ver 1.0)
+% ipsjpapers.sty 30-Nov-93 by Hiroshi Nakashima
+% ipsjpapers.sty 3-Feb-93 by Yaski Saito
+% compsoft.sty 22-April-92 by Yaski Saito
+% compsoft.sty 18-July-90 by Hideki Isozaki 
+% j-article.sty 10-Feb-89 from report.sty 16-Mar-88
+
+%%%%%% LaTeX Version %%%%%%
+
+% 2.00(1) >>
+%% \ifASCII is true if ASCII version Japanese TeX, which doesn't have
+%% \jintercharskip (H.N.)
+\newif\ifASCII \ASCIIfalse
+\ifx\jintercharskip\undefined\ASCIItrue\fi
+\newif\if@LaTeX@e \@LaTeX@efalse				% 1.06(1)
+\newif\if@LaTeX@eN \@LaTeX@eNfalse				% 2.00(1)
+\def\@tempa{LaTeX2e}						% 1.06(1)
+\ifx\fmtname\@tempa \@LaTeX@etrue				% 1.06(1)
+\ifx\xpt\undefined \@LaTeX@eNtrue \fi\fi			% 2.00(1)
+% 2.00(1) <<
+
+
+%%%%%% Document Styles %%%%%%
+
+% 2.00(2) >>
+\newif\ifDS@printer \DS@printerfalse
+\newif\ifDS@english \DS@englishfalse
+\newif\ifDS@technote \DS@technotefalse
+\newif\ifDS@preface \DS@prefacefalse
+\newif\ifDS@draft \DS@draftfalse
+\newif\ifDS@techrep \DS@techrepfalse				% 1.05(2)
+\newif\ifDS@sigrecommended \DS@sigrecommendedfalse		% 2.04(1)
+\newif\ifDS@invited \DS@invitedfalse				% 2.06(1)
+\newif\ifDS@abstract \DS@abstractfalse				% 2.07(7)
+\newif\ifDS@private \DS@privatefalse				% 2.07(8)
+
+\if@LaTeX@eN
+\DeclareOption{printer}{\relax}					% 2.09(1)
+\DeclareOption{english}{\DS@englishtrue}
+\DeclareOption{technote}{\DS@technotetrue}
+\DeclareOption{preface}{\DS@prefacetrue}
+\DeclareOption{draft}{\DS@drafttrue}
+\DeclareOption{techrep}{\DS@techreptrue}
+\DeclareOption{sigrecommended}{\DS@sigrecommendedtrue}		% 2.04(1)
+\DeclareOption{invited}{\DS@invitedtrue}			% 2.06(1)
+\DeclareOption{abstract}{\DS@abstracttrue}			% 2.07(7)
+\DeclareOption{private}{\DS@privatetrue}			% 2.07(8)
+\DeclareOption{10pt}{\def\@ptsize{0}}
+\DeclareOption{11pt}{\def\@ptsize{1}}
+\DeclareOption{12pt}{\def\@ptsize{2}}
+\ExecuteOptions{10pt}
+\ProcessOptions
+\def\ipsj@warning{\ClassWarning{ipsjpapers}}			% 2.00(3)
+\def\ipsj@error{\ClassError{ipsjpapers}}			% 2.00(3)
+\newskip \old@latex@skip					% 2.00(14)
+\let\@maxsep\old@latex@skip					% 2.00(14)
+\let\@dblmaxsep\old@latex@skip					% 2.00(14)
+
+\else
+\expandafter\ifx\csname ver@ipsjpapers.cls\endcsname\relax
+\typeout{Document Style `ipsjpapers' (ver 2.09) <30 Jan 2002>.}	% 2.05(1)
+\fi
+
+\def\ds@printer{\relax}						% 2.09(1)
+\def\ds@english{\DS@englishtrue}
+\def\ds@technote{\DS@technotetrue}
+\def\ds@preface{\DS@prefacetrue}
+\def\ds@draft{\DS@drafttrue}
+\def\ds@techrep{\DS@techreptrue}				% 1.05(2)
+\def\ds@sigrecommended{\DS@sigrecommendedtrue}			% 2.04(1)
+\def\ds@invited{\DS@invitedtrue}				% 2.06(1)
+\def\ds@abstract{\DS@abstracttrue}				% 2.07(7)
+\def\ds@private{\DS@privatetrue}				% 2.07(8)
+
+% 1.04(3)>>
+\def\@ptsize{0}
+\@namedef{ds@11pt}{\def\@ptsize{1}}
+\@namedef{ds@12pt}{\def\@ptsize{2}} 
+% 1.04(3)<<
+
+\@options
+\let\ipsj@warning\@warning					% 2.00(3)
+\let\@latex@warning\@warning					% 2.00(3)
+\def\ipsj@error#1#2{\errhlp{#2}\errmessge{#1}}			% 2.00(3)
+\fi
+% 2.00(2) <<
+
+\ifx\@classoptionslist\undefined\else				% 2.03(1) >>
+\def\ipsj@draft@option{draft}
+\def\ipsj@remove@draft@option{\def\@tempb{}%
+	\@for\@tempa:=\@classoptionslist\do{%
+		\ifx\@tempa\ipsj@draft@option\else
+		\edef\@tempb{\@tempb,\@tempa}\fi}%
+	\ifx\@tempb\@empty \def\@classoptionslist{}\else
+	\expandafter\ipsj@remove@draft@ption\@tempb\@nil\fi}
+\def\ipsj@remove@draft@ption,#1\@nil{%
+	\def\@classoptionslist{#1}}
+\ipsj@remove@draft@option
+\fi								% 2.03(1) <<
+
+%%%%%% Basics %%%%%%
+
+\newdimen\@Q \@Q=0.25mm
+
+\lineskip\z@ \normallineskip\z@ 
+\lineskiplimit\z@ \normallineskiplimit\z@
+\abovedisplayskip\z@ \belowdisplayskip\z@
+\abovedisplayshortskip\z@ \belowdisplayshortskip\z@
+
+\def\baselinestretch{1}
+\jot\z@ 
+
+\ifDS@draft\def\next{\input{ipsjdrafts.sty}\endinput}\else\let\next\relax\fi
+\next
+
+\@twosidetrue
+
+%%%%%% Fonts %%%%%%
+% \finvedm(dg)		dm5		\vpt	\tiny		fn-mark
+% \sixdm(dg)		dm6		\vipt	\scriptsize
+% \sevendm(dg)		dm7		\vipt	\footnotesize	f-note, capt
+%	10Q = 7.11304pt -> w(min7) = 6.73550pt
+% \eightdm(dg)		dm8		\viiipt	\small		abst, header
+%	11Q = 7.82434pt -> w(min8) = 7.69772pt
+% \eightdm(dg)half	dm9		\ixpt	\normalsize	main text
+%	12Q = 8.53564pt -> w(min9) = 8.65994
+% \tendm(dg)		dm10		\xpt	\large		sec title
+%	13Q = 9.24695pt -> w(min10) = 9.62216pt
+% \tendm(dg)half	dm10*1095	\xipt	\Large		author names
+%	15Q =10.66956pt -> w(min10*1095) = 10.53625pt
+% (\twlvdm)		(dm12)		\xiipt	\LARGE		e-title
+% \twelvedm(dg)half	dm12*1095	\xivpt	\huge		title
+%			min10*1440
+%	18Q =12.80347pt -> w(min10*1440) = 13.8559pt
+%
+% Note that cm fonts follows LaTeX standard. (e.g. \viiipt -> cmr8, etc.)
+
+% 2.00(4)>>
+\if@LaTeX@e
+\ifASCII
+\def\ipsj@declare@font#1#2#3{{\fontsize{#3}{\z@}#2\selectfont	    % 2.00(5)>>
+	\edef\@tempa{\the\jfont}
+	\expandafter\global\expandafter\let\expandafter#1\@tempa}}  % 2.00(5)<<
+
+\ifDS@printer	% ASCII LaTeX2e printer
+\DeclareFontShape{JY1}{mc}{m}{n}{%
+	<5>	sfixed*	[5.175]	min5	% 7Q/w5 = 4.97922/4.81108=1.035
+	<6>	sfixed*	[5.916]	min6	% 8Q/w6 = 5.69055/5.77328=0.986
+	<7>	sfixed*	[7.392]	min7	%10Q/w7 = 7.11304/6.73550=1.056
+	<8>	sfixed*	[8.128]	min8	%11Q/w8 = 7.82434/7.69772=1.016
+	<9>	sfixed*	[8.872]	min8	%12Q/w8 = 8.53564/7.69772=1.109
+	<10>	sfixed*	[9.610]	min10	%13Q/w10= 9.24695/9.62216=0.961
+	<10.95>	sfixed*	[11.09]	min10	%15Q/w10=10.66956/9.62216=1.109
+	<12>	sfixed*	[11.83]	min10	%16Q/w10=11.38110/9.62216=1.183
+	<14.4>	sfixed*	[13.31]	min10	%18Q/w10=12.80347/9.62216=1.331
+}{}
+\DeclareFontShape{JY1}{gt}{m}{n}{%
+	<5>	sfixed*	[5.175]	goth5	% 7Q/w5 = 4.97922/4.81108=1.035
+	<6>	sfixed*	[5.916]	goth6	% 8Q/w6 = 5.69055/5.77328=0.986
+	<7>	sfixed*	[7.392]	goth7	%10Q/w7 = 7.11304/6.73550=1.056
+	<8>	sfixed*	[8.128]	goth8	%11Q/w8 = 7.82434/7.69772=1.016
+	<9>	sfixed*	[8.872]	goth8	%12Q/w8 = 8.53564/7.69772=1.109
+	<10>	sfixed*	[9.610]	goth10	%13Q/w10= 9.24695/9.62216=0.961
+	<10.95>	sfixed*	[11.09]	goth10	%15Q/w10=10.66956/9.62216=1.109
+	<12>	sfixed*	[11.83]	goth10	%16Q/w10=11.38110/9.62216=1.183
+	<14.4>	sfixed*	[13.31]	goth10	%18Q/w10=12.80347/9.62216=1.331
+}{}
+
+\ipsj@declare@font\fn@fontvii\mcfamily\@vpt
+
+%% The following fonts are out of NFSS scheme
+\font\fn@fontv		min5	scaled739	% 5Q/w5 = 3.55658/4.81108=0.739
+\font\fn@fontvi		min5	scaled887	% 6Q/w5 = 4.26790/4.81108=0.887
+\font\fn@fontxv		goth10  scaled1035	%14Q/w10= 9.95846/9.62216=1.035
+
+\else		% ASCII LaTeX2e non-printer
+\ipsj@declare@font\fn@fontv\mcfamily\@vpt
+\ipsj@declare@font\fn@fontvi\mcfamily\@vpt
+\ipsj@declare@font\fn@fontvii\mcfamily\@vpt
+\ipsj@declare@font\fn@fontxv\gtfamily\@xipt
+\fi
+
+\else		% NTT LaTeX2e
+\def\ipsj@declare@font#1#2#3{{\fontsize{#3}{\z@}#2\selectfont	    % 2.00(5)
+	\xdef#1{\expandafter\noexpand\csname\jf@ntn@me\endcsname}}} % 2.00(5)
+\ipsj@declare@font\fn@fontv\dm\@vpt
+\ipsj@declare@font\fn@fontvi\dm\@vpt
+\ipsj@declare@font\fn@fontvii\dm\@vpt
+\ipsj@declare@font\fn@fontxv\dg\@xipt
+\fi
+% 2.00(4) <<
+
+\else		% LaTeX 2.09					% 2.00(4)
+%% Fonts for ASCII TeX. (H.N.)
+\ifASCII
+\ifDS@printer
+\font\fn@fontv		min5	scaled739	% 5Q/w5 = 3.55658/4.81108=0.739
+\font\fn@fontvi		min5	scaled887	% 6Q/w5 = 4.26790/4.81108=0.887
+\font\fivedm		min5	scaled1035	% 7Q/w5 = 4.97922/4.81108=1.035
+\font\fivedg		goth5	scaled1035
+\font\sixdm		min6	scaled986	% 8Q/w6 = 5.69055/5.77328=0.986
+\font\sixdg		goth6	scaled986
+\font\sevendm		min7	scaled1056	%10Q/w7 = 7.11304/6.73550=1.056
+\font\sevendg		goth7	scaled1056
+\font\eightdm		min8	scaled1016	%11Q/w8 = 7.82434/7.69772=1.016
+\font\eightdg		goth8	scaled1016
+\font\eightdmhalf	min8	scaled1109	%12Q/w8 = 8.53564/7.69772=1.109
+\font\eightdghalf	goth8	scaled1109
+\font\tendm		min10	scaled961	%13Q/w10= 9.24695/9.62216=0.961
+\font\tendg		goth10  scaled961
+\font\fn@fontxv		goth10  scaled1035	%14Q/w10= 9.95846/9.62216=1.035
+\font\tendmhalf		min10	scaled1109	%15Q/w10=10.66956/9.62216=1.109
+\font\tendghalf		goth10	scaled1109
+\font\twelvedm		min10	scaled1183	%16Q/w10=11.38110/9.62216=1.183
+\font\twelvedg		goth10	scaled1183
+\font\twelvedmhalf	min10	scaled1331	%18Q/w10=12.80347/9.62216=1.331
+\font\twelvedghalf	goth10	scaled1331
+\let\fn@fontvii\fivedm
+
+\else
+\font\fivedm		min5
+\font\fivedg		goth5
+\font\sixdm		min6
+\font\sixdg		goth6
+\font\sevendm		min7
+\font\sevendg		goth7
+\font\eightdm		min8
+\font\eightdg		goth8
+\font\eightdmhalf	min9
+\font\eightdghalf	goth9
+\font\tendm		min10
+\font\tendg		goth10
+\font\tendmhalf		min10 scaled\magstephalf
+\font\tendghalf		goth10 scaled\magstephalf
+\font\twelvedm		min10 scaled\magstep1
+\font\twelvedg		goth10 scaled\magstep1
+\font\twelvedmhalf	min10 scaled\magstep2
+\font\twelvedghalf	goth10 scaled\magstep2
+\let\fn@fontv\fivedm
+\let\fn@fontvi\fivedm
+\let\fn@fontvii\fivedm
+\let\fn@fontxv\tendghalf
+
+\fi
+
+%% ASCII doesn't have \old@Npt. (H.N.)
+\let\old@@vpt\vpt
+\let\old@@vipt\vipt
+\let\old@@viipt\viipt
+\let\old@@viiipt\viiipt
+\let\old@@ixpt\ixpt
+\let\old@@xpt\xpt
+\let\old@@xipt\xipt
+\let\old@@xiipt\xiipt
+\let\old@@xivpt\xivpt
+
+\def\old@vpt{\old@@vpt\jspaceskip1zw\relax}
+\def\old@vipt{\old@@vipt\jspaceskip1zw\relax}
+\def\old@viipt{\old@@viipt\jspaceskip1zw\relax}
+\def\old@viiipt{\old@@viiipt\jspaceskip1zw\relax}
+\def\old@ixpt{\old@@ixpt\jspaceskip1zw\relax}
+\def\old@xpt{\old@@xpt\jspaceskip1zw\relax}
+\def\old@xipt{\old@@xipt\jspaceskip1zw\relax}
+\def\old@xiipt{\old@@xiipt\jspaceskip1zw\relax}
+\def\old@xivpt{\old@@xivpt\jspaceskip1zw\relax}
+
+								% 2.00(6)
+								% 1.06(2)
+
+%% ASCII doesn't have \dg nor \dm. (H.N.)
+\def\dg{\protect\pdg}
+\def\dm{\protect\pdm}
+%% Redefine \gt and \mc
+\def\gt{\protect\pdg}
+\def\mc{\protect\pdm}
+\let\pdm\relax
+
+\else
+%% Fonts for NTT jTeX
+%% \magstephalf and \magstep1 may cause trouble in older versions.
+
+\jfont\fivedm=dm5
+\jfont\fivedg=dg5
+\jfont\sixdm=dm6
+\jfont\sixdg=dg6
+\jfont\sevendm=dm7
+\jfont\sevendg=dg7
+\jfont\eightdm=dm8
+\jfont\eightdg=dg8
+\jfont\eightdmhalf=dm9
+\jfont\eightdghalf=dg9
+\jfont\tendm=dm10
+\jfont\tendg=dg10
+\jfont\tendmhalf=dm10 scaled 1095
+\jfont\tendghalf=dg10 scaled 1095
+\jfont\twelvedm=dm12
+\jfont\twelvedg=dg12
+\jfont\twelvedmhalf=dm12 scaled 1095
+\jfont\twelvedghalf=dg12 scaled 1095
+\let\fn@fontv\fivedm
+\let\fn@fontvi\fivedm
+\let\fn@fontvii\fivedm
+\let\fn@fontxv\tendghalf
+								% 1.06(3)
+\fi
+\fi
+
+\ifx\jfsize\undefined \newcount\jfsize \fi			% 1.06(2)
+
+\ifASCII						% 1.06(3),2.00(6)>>
+\let\setjglues\relax
+\let\jintercharskip\kanjiskip
+\let\jasciikanjiskip\xkanjiskip
+\let\jmathkanjiskip\xkanjiskip
+\newdimen\jspaceskip
+
+\def\defjintercharskip#1#2#3#4{\@asciiwarning{\defjintercharskip}}
+\def\defjasciikanjiskip#1#2#3#4{\@asciiwarning{\defjasciicharskip}}
+\def\defmathkanjiskip#1#2#3#4{\@asciiwarning{\defmathcharskip}}
+\def\defjspaceskip#1#2#3#4{\@asciiwarning{\defjspaceskip}}
+							
+\def\@asciiwarning#1{\ipsj@warning{\string#1\space		% 2.00(3)
+	is not supported in ASCII version}}
+							% 1.06(3),2.00(6)<<
+\else								% 2.00(7)>>
+\if@LaTeX@e
+\ipsj@declare@font\fn@eightdmhalf\dm\@ixpt
+\ipsj@declare@font\fn@eightdghalf\dg\@ixpt
+\else
+\def\fn@eightdmhalf{\eightdmhalf}
+\def\fn@eightdghalf{\eightdghalf}
+\fi
+\ifx\setjglues\undefined\else
+\expandafter\defjintercharskip\fn@eightdmhalf{0pt}{1.4pt}{0.5pt}
+\expandafter\defjintercharskip\fn@eightdghalf{0pt}{1.4pt}{0.5pt}
+\expandafter\defjasciikanjiskip\fn@eightdmhalf{2pt}{1pt}{1pt}
+\expandafter\defjasciikanjiskip\fn@eightdghalf{2pt}{1pt}{1pt}
+\expandafter\defjmathkanjiskip\fn@eightdmhalf{2pt}{1pt}{1pt}
+\expandafter\defjmathkanjiskip\fn@eightdghalf{2pt}{1pt}{1pt}
+\fi								% 2.00(7)<<
+\fi								% 2.00(4)
+
+\if@LaTeX@e							% 2.00(8)>>
+\if@LaTeX@eN
+\DeclareOldFontCommand{\rm}{\normalfont\rmfamily}{\mathrm}
+\DeclareOldFontCommand{\sf}{\normalfont\sffamily}{\mathsf}
+\DeclareOldFontCommand{\tt}{\normalfont\ttfamily}{\mathtt}
+\DeclareOldFontCommand{\bf}{\normalfont\bfseries}{\mathbf}
+\DeclareOldFontCommand{\it}{\normalfont\itshape}{\mathit}
+\DeclareOldFontCommand{\sl}{\normalfont\slshape}{\@nomath\sl}
+\DeclareOldFontCommand{\sc}{\normalfont\scshape}{\@nomath\sc}
+\DeclareRobustCommand*{\cal}{\@fontswitch{\relax}{\mathcal}}
+\DeclareRobustCommand*{\mit}{\@fontswitch{\relax}{\mathnormal}}
+\ifASCII
+\DeclareOldFontCommand{\mc}{\normalfont\mcfamily}{\mathmc}
+\DeclareOldFontCommand{\gt}{\normalfont\gtfamily}{\mathgt}
+\fi\fi
+\ifASCII
+\def\dm{\mc}
+\def\dg{\gt}
+\fi\fi								% 2.00(8)<<
+
+%%%%%% Basic Font Size Macros %%%%%%
+
+\if@LaTeX@e					% 1.06(4),2.00(9),2.04(3)>>
+\def\@setsize#1#2#3#4{\@setfontsize#1{#4}{#2}\ipsj@setjspaceskip}
+\ifASCII
+\def\ipsj@setjspaceskip{\jspaceskip1zw\relax}
+\else
+\let\ipsj@setjspaceskip\relax
+\fi						% 1.06(4),2.00(9),2.04(3)<<
+
+%% \vipt etc. are redefined to use appropriate Japanese fonts.
+\else								% 2.00(9)
+\def\vpt{\old@vpt\fivedm\let\pdg\fivedg\let\pdm\fivedm\jfsize=5\relax}
+\def\vipt{\old@vipt\sixdm\let\pdg\sixdg\let\pdm\sixdm\jfsize=6\relax}
+\def\viipt{\old@viipt\sevendm\let\pdg\sevendg\let\pdm\sevendm\jfsize=7\relax}
+\def\viiipt{\old@viiipt\eightdm\let\pdg\eightdg\let\pdm\eightdm\jfsize=8\relax}
+\def\ixpt{\old@ixpt\eightdmhalf\let\pdg\eightdghalf\let\pdm\eightdmhalf
+	\jfsize=9\relax \@ixptboldmath}				% 1.02(2)
+\def\xpt{\old@xpt\tendm\let\pdg\tendg\let\pdm\tendm\jfsize=10\relax}
+\def\xipt{\old@xipt\tendmhalf\let\pdg\tendghalf\let\pdm\tendmhalf\jfsize=11
+	\relax}
+\def\xiipt{\old@xiipt\twelvedm\let\pdg\twelvedg\let\pdm\twelvedm
+	\jfsize=12\relax}
+\def\xivpt{\old@xivpt\twelvedmhalf\let\pdg\twelvedghalf\let\pdm\twelvedmhalf
+	\jfsize=14\relax}
+\fi								% 2.00(9)
+
+\if@LaTeX@e							% 1.06(5)
+\let\@ixptboldmath\relax					% 1.06(5)
+\else								% 1.06(5)
+% 1.02(2) >>
+\ifDS@printer
+\def\@ixptboldmath{%
+	\def\unboldmath{\everymath{}\everydisplay{}\@nomath\unboldmath
+		\textfont\@ne\ninmi 
+		\textfont\tw@\ninsy \textfont\lyfam\ninly
+		\@boldfalse}\@boldfalse
+	\def\boldmath{\@ifundefined{ninmib}{%
+		\global\font\ninmib\@mbi\@ptscale9\relax
+		\global\font\ninsyb\@mbsy\@ptscale9\relax
+		\global\font\ninlyb\@lasyb\@ptscale9\relax
+		\@addfontinfo\@ixpt
+			{\def\boldmath{\everymath{\mit}\everydisplay{\mit}%
+				\@prtct\@nomathbold
+				\textfont\@ne\ninmib \textfont\tw@\ninsyb 
+				\textfont\lyfam\ninlyb \@prtct\@boldtrue}}}{}%
+	\@ixpt\boldmath}}
+\else
+\def\@ixptboldmath{%
+	\def\unboldmath{\everymath{}\everydisplay{}\@nomath\unboldmath
+		\textfont\@ne\ninmi 
+		\textfont\tw@\ninsy \textfont\lyfam\ninly
+		\@boldfalse}\@boldfalse
+% 1.03(1) >>
+	\def\boldmath{\@ifundefined{ninmib}{\global\font\ninmib\@mbi 
+		\global\font\ninsyb\@mbsy\relax
+		\global\font\ninlyb\@lasyb\relax
+		\@addfontinfo\@ixpt
+			{\def\boldmath{\everymath{\mit}\everydisplay{\mit}%
+				\@prtct\@nomathbold
+				\textfont\@ne\ninmib \textfont\tw@\ninsyb 
+				\textfont\lyfam\ninlyb \@prtct\@boldtrue}}}{}%
+	\@ixpt\boldmath}}
+% 1.03(1) <<
+\fi
+% 1.02(2) <<
+\fi								% 1.06(5)
+
+
+%%%%%% Font Size Macros %%%%%%
+
+\def\fs@setsize#1#2#3#4{\normalsize\dimen@\normalbaselineskip
+	\@ifstar{\@setsize{#1}{\dimen@}{#3}{#4}}%
+		{\@setsize{#1}{#2}{#3}{#4}}}
+
+% s = (3*b - (h' + d') - (h + d))/2
+% s_a = s + h' + d - b
+% s_b = s + h + d' - b
+\def\sec@setskips#1{\setbox0\hbox{\fs@sec\bf#1}\setbox1\hbox{#1}
+	\@tempdima3\baselineskip
+	\advance\@tempdima-\ht0 \advance\@tempdima-\dp0
+	\advance\@tempdima-\ht1 \advance\@tempdima-\dp1
+	\divide\@tempdima\tw@ \advance\@tempdima-\baselineskip
+	\@tempdimb\@tempdima
+	\advance\@tempdima\ht0 \advance\@tempdima\dp1
+	\advance\@tempdimb\ht1 \advance\@tempdimb\dp0
+	\edef\sec@aboveskip{\the\@tempdima}
+	\edef\sec@belowskip{\the\@tempdimb}}
+
+\ifDS@english
+% size		pt	\baselineskip	  size		\?pt	\baselineskip
+% \normalsize	10	16Q		  \large	11	18Q (*)
+% \small	 9	15Q		  \Large	12	22Q
+% \footnotesize	 8	13Q		  \LARGE	14	26Q (*)
+% \scriptsize	 6	8pt (*)		  \huge		18	30Q (*)
+% \tiny		 5	6pt (*)		  \Huge		18	30Q (*)
+% * : not measured
+
+\def\@normalsize{\@setsize\normalsize{16\@Q}\xpt\@xpt}
+\def\small{\fs@setsize\small{15\@Q}\ixpt\@ixpt}
+\def\footnotesize{\fs@setsize\footnotesize{13\@Q}\viiipt\@viiipt}
+\def\scriptsize{\@setsize\scriptsize{8pt}\viipt\@viipt}
+\def\tiny{\@setsize\tiny{6pt}\vpt\@vpt}
+\def\large{\@setsize\Large{18\@Q}\xipt\@xipt}
+\def\Large{\@setsize\LARGE{22\@Q}\xiipt\@xiipt}
+\def\LARGE{\@setsize\LARGE{26\@Q}\xivpt\@xivpt}
+\def\huge{\@setsize\Huge{30\@Q}\xviipt\@xviipt}
+\let\Huge\huge
+
+\ifDS@techrep							% 1.05(2)>>
+\def\@normalsize{\@setsize\normalsize{17\@Q}\xpt\@xpt}
+\fi								% 1.05(2)<<
+
+\if@LaTeX@e							% 2.00(10)>>
+\let\normalsize\@normalsize
+\fi								% 2.00(10)<<
+
+\let\fs@footnote\footnotesize
+\let\fs@caption\footnotesize
+\let\fs@table\footnotesize
+\let\fs@eabst\footnotesize
+\let\fs@header\footnotesize
+\let\fs@footer\footnotesize
+\let\fs@bibliography\small
+\let\fs@subsec\normalsize
+\let\fs@sec\normalsize
+\let\fs@type\large
+\let\fs@eauthor\large
+\let\fs@title\Large
+
+\@normalsize
+
+\sec@setskips{A}
+
+\else
+% size		pt	\baselineskip	  size		\?pt	\baselineskip
+% \normalsize	 9	19Q		  \large	10	19Q
+% \small	 8	14Q		  \Large	11	22Q
+% \footnotesize	 7	14Q		  \LARGE	12	18Q
+% \scriptsize	 6	8pt (*)		  \huge		14	26Q
+% \tiny		 5	6pt (*)		  \Huge		14	26Q
+% * : not measured
+
+\def\@normalsize{\@setsize\normalsize{19\@Q}\ixpt\@ixpt}
+\def\small{\fs@setsize\small{14\@Q}\viiipt\@viiipt}
+\def\footnotesize{\fs@setsize\footnotesize{14\@Q}\viipt\@viipt}
+\def\scriptsize{\@setsize\scriptsize{8pt}\vipt\@vipt}
+\def\tiny{\@setsize\tiny{6pt}\vpt\@vpt}
+\def\large{\@setsize\large{19\@Q}\xpt\@xpt}
+\def\Large{\@setsize\Large{22\@Q}\xipt\@xipt}
+\def\LARGE{\@setsize\LARGE{18\@Q}\xiipt\@xiipt}
+\def\huge{\@setsize\Huge{26\@Q}\xivpt\@xivpt}
+\let\Huge\huge
+
+\ifDS@techrep							% 1.05(2)>>
+\def\@normalsize{\@setsize\normalsize{17\@Q}\ixpt\@ixpt}
+\fi								% 1.05(2)<<
+
+\if@LaTeX@e							% 2.00(10)>>
+\let\normalsize\@normalsize
+\fi								% 2.00(10)<<
+
+\let\fs@footnote\footnotesize
+\let\fs@caption\footnotesize
+\let\fs@table\footnotesize
+\let\fs@abst\small
+\def\fs@eabst{\small\baselineskip13\@Q}
+\let\fs@header\small
+\let\fs@footer\small
+\let\fs@subsec\normalsize
+\def\fs@bibliography{\normalsize\baselineskip16\@Q}
+\let\fs@sec\large
+\let\fs@type\fn@fontxv
+\let\fs@author\Large
+\def\fs@eauthor{\Large\baselineskip15\@Q}
+\let\fs@etitle\LARGE
+\let\fs@title\huge
+
+\@normalsize 
+								% 2.00(7)
+\ifx\setjglues\undefined\else
+\setjglues
+\fi
+
+\sec@setskips{あ}
+
+\fi
+
+\if@LaTeX@e\else						% 2.00(11)
+\let\latex@bf\bf						% 1.06(6)
+\def\bf{\latex@bf \dg}						% 1.06(6)
+\fi								% 2.00(11)
+
+
+%%%%%% Page Layout Parameters %%%%%%
+
+\newdimen\@mojihaba
+
+\headheight 12\@Q
+
+% We want to allow a line containing $\displaystyle X^X$ to be a first line.
+\setbox0\hbox{$\displaystyle X^X$}
+\topskip\ht0
+
+\ifdim\maxdepth<\dp\strutbox \maxdepth\dp\strutbox \@maxdepth\maxdepth\fi
+
+\@tempswafalse							% 1.05(2)>>
+\ifDS@english \ifDS@techrep \else \@tempswatrue \fi\fi
+\if@tempswa							% 1.05(2)<<
+\topmargin 138\@Q \advance\topmargin-1in
+
+% \textheight = 53\baselineskip + \topskip + epsilon(100sp)
+\textheight53\baselineskip \advance\textheight\topskip \advance\textheight100sp
+
+% \headsep = 24Q - \topskip
+\headsep28\@Q \advance\headsep-\topskip				% 2.02(2)
+
+% Only first page has page number (footer) at the bottom
+\footskip 27\@Q
+
+\@mojihaba13\@Q
+
+\else
+\topmargin 131\@Q \advance\topmargin-1in
+
+% \textheight = 45\baselineskip + \topskip + epsilon(100sp)
+\textheight45\baselineskip \advance\textheight\topskip \advance\textheight100sp
+
+\ifDS@techrep							% 1.05(2)>>
+\textheight50\baselineskip \advance\textheight\topskip \advance\textheight100sp
+\fi								% 1.05(2)<<
+
+% \headsep = 28Q - \topskip
+\headsep28\@Q \advance\headsep-\topskip
+
+% Only first page has page number (footer) at the bottom
+\footskip24\@Q
+
+\@mojihaba12\@Q
+\fi
+
+\columnsep30\@Q
+
+% \textwidth - \columnwidth = 24 * 12Q * 2 + \columnsep = 606Q
+\textwidth606\@Q
+\columnseprule0pt
+
+\oddsidemargin210mm \advance\oddsidemargin-\textwidth \divide\oddsidemargin\tw@
+\advance\oddsidemargin-1in \evensidemargin\oddsidemargin
+
+\skip\footins\baselineskip \advance\skip\footins-.5\@mojihaba
+% \footnotesep = \baselineskip - depth(\strutbox)
+{\fs@footnote
+	\footnotesep\baselineskip
+	\global\advance\footnotesep-\dp\strutbox}
+
+\def\footnoterule{{\fs@footnote\kern-\dp\strutbox \hrule \kern-.4\p@
+	\kern\dp\strutbox}}
+
+\floatsep \baselineskip \textfloatsep \baselineskip 
+\intextsep \baselineskip \@maxsep \baselineskip
+\dblfloatsep \baselineskip \dbltextfloatsep \baselineskip
+\@dblmaxsep \baselineskip
+\@fptop 0pt plus 1fil \@fpsep 0pt plus 2fil \@fpbot 0pt plus 1fil 
+\@dblfptop 0pt plus 1fil \@dblfpsep 0pt plus 2fil \@dblfpbot 0pt plus 1fil
+
+\parskip\z@ \parindent\@mojihaba
+\@lowpenalty 51 \@medpenalty 151 \@highpenalty 301 
+\@beginparpenalty -\@lowpenalty \@endparpenalty -\@lowpenalty
+\@itempenalty -\@lowpenalty 
+
+
+%%%%%% Title and Authors %%%%%%
+%
+% Format of title, author names and abstract.
+%
+%	\huge\bf <Japanese title>
+%	\vskip 32Q
+%	\Large <Japanese author names>
+%	\vskip 32Q
+%	\small <Japanese abstract>
+%	\vskip 34Q
+%	\LARGE\bf <English title>
+%	\vskip 28Q
+%	\Large\sc <English author names>
+%	\vskip 28Q
+%	\small <English abstract>
+%	\vskip 25Q
+
+% 2.07(3)>>
+\def\ipsj@ohcheck#1#2#3{\fs@header\hskip12\@Q#1\qquad#2\qquad#3\hskip12\@Q}
+\def\ipsj@ohcvolno{Vol.~00\hskip12\@Q No.~SIG\ 00(\ipsj@sig@code\ 00)}
+
+\def\maketitle{\let\ipsj@oddhead@t\ipsj@oddhead@a
+	\ifipsj@trans
+	    \settowidth\@tempdima{%
+		\ipsj@ohcheck\ipsj@ohcvolno\@titlestring\ipsj@ohcvolno}%
+	    \ifdim\@tempdima>\textwidth
+		\let\ipsj@oddhead@t\ipsj@oddhead@b
+		\settowidth\@tempdima{%
+		    \ipsj@ohcheck\ipsj@ohcvolno\@titlestring{000}}%
+		\ifdim\@tempdima>\textwidth
+			\ipsj@warning{%				% 2.00(3)
+			\string\title\space for headding is too wide}%
+	    \fi \fi
+	\else
+	    \settowidth\@tempdima{\fs@header
+		\hskip12\@Q Vol.~00\hskip12\@Q No.~00\qquad\@titlestring\qquad
+		Vol.~00\hskip12\@Q No.~00\hskip12\@Q}
+	    \ifdim\@tempdima>\textwidth
+		\ipsj@warning{%					% 2.00(3)
+		\string\title\space for headding is too wide}%
+	\fi \fi
+	\par\twocolumn[\@maketitle]\thispagestyle{myheadings}\@thanks}
+% 2.07(3)<<
+
+% default title header
+
+\def\title{\@dblarg{\@xtitle}}
+\def\@xtitle[#1]#2{\gdef\@title{#2}%
+	{\def\protect{\noexpand\protect\noexpand}%
+		\ifDS@english\def\\{\unskip\ \ignorespaces}%
+		\else\def\\{\unskip\ignorespaces}\fi
+		\xdef\@titlestring{#1}}}			% 2.07(3)
+
+\def\@title{\mkt@warning\title}\def\@titlestring{}
+\long\def\author#1{\long\gdef\@author{#1}}
+\def\@author{\mkt@warning\author}
+
+\newbox\@abstractbox
+%% Introduce \@titlewidth because we now use this dimen repeatedly. (H.N.)
+%% \@titlewidth = 44 * 11Q = 484Q
+\newdimen\@titlewidth \@titlewidth 484\@Q
+
+\def\abstract{\global\let\@abstract\relax
+	\global\setbox\@abstractbox\hbox\bgroup
+		\begin{minipage}[b]{\@titlewidth}\fs@abst\parindent11\@Q}
+\def\endabstract{\end{minipage}\egroup}
+\def\@abstract{\mkt@warning{abstract env}}
+
+%% We need English title, author name(s) and abstract. (H.N.)
+\def\etitle#1{\gdef\@etitle{#1}}
+\def\@etitle{\mkt@warning\etitle}
+\long\def\eauthor#1{\long\gdef\@eauthor{#1}}
+\def\@eauthor{\mkt@warning\eauthor}
+
+\newbox\@eabstractbox
+\def\eabstract{\global\let\@eabstract\relax
+	\global\setbox\@eabstractbox\hbox\bgroup
+		\begin{minipage}[b]{\@titlewidth}\fs@eabst\parindent11\@Q}
+\let\endeabstract\endabstract
+\def\@eabstract{\mkt@warning{eabstract env}}
+
+\ifDS@english
+\let\author\eauthor \let\abstract\eabstract
+\let\@eauthor\@author \let\@eabstract\@abstract
+\fi
+
+\def\mkt@warning#1{\ipsj@warning{Missing \string#1}}		% 2.00(3)
+
+\newdimen\mkt@prevdepth
+\newbox\mkt@titlebox
+\def\@maketitle{\setbox\mkt@titlebox\vbox{
+	\ifDS@english \ifDS@preface
+		\hbox{}\vskip60\@Q \vskip-\headsep \vskip-\baselineskip
+	\else
+		\hbox{}\vskip26\@Q \vskip-\headsep \vskip-\baselineskip
+		\leftline{\fs@type\it
+			\ifDS@technote Technical Note
+                        \else\ifDS@invited Invited Paper        % 2.06(1)
+			\else\ifDS@sigrecommended		% 2.04(1)
+				Recommended Paper		% 2.04(1)
+			\else\ifDS@abstract			% 2.07(7)
+				Abstract			% 2.07(7)
+			\else\ifDS@techrep\else			% 2.02(1)
+				Regular Paper\fi\fi\fi\fi\fi}	% 2.06(1)
+%								% 2.04(1)
+		\vskip32\@Q \vskip-\baselineskip \fi
+	\else							% 2.04(1) >>
+	\@tempswafalse	\ifDS@technote\@tempswatrue\fi
+			\ifDS@sigrecommended\@tempswatrue\fi
+                        \ifDS@invited\@tempswatrue\fi           % 2.06(1)
+			\ifDS@abstract\@tempswatrue\fi		% 2.07(7)
+	\if@tempswa
+		\vskip18\@Q \vskip-\headsep
+		\leftline{\vbox to28\@Q{\hrule height.8pt\vss
+			\hbox{\hskip7\@Q \fs@type
+				\ifDS@technote	テクニカルノヌト%
+                                \else\ifDS@invited 招埅論文%    % 2.06(1)
+				\else\ifDS@sigrecommended
+					研究䌚掚薊論文		% 2.06(1)
+				\else 発衚抂芁\fi\fi\fi		% 2.07(7)
+				\hskip7\@Q}\vss\hrule height.8pt}}
+%								% 2.04(1) <<
+		\vskip40\@Q \vskip-\baselineskip
+	\else
+		\hbox{}\vskip60\@Q \vskip-\headsep \vskip-\baselineskip
+	\fi\fi
+	\@tempswafalse \ifDS@english\else\ifDS@preface\@tempswatrue\fi\fi
+	\mkt@maketitle{\fs@title\bf}\@title\title
+% 1.04(1a) >>
+	\ifnum\c@affi@footnote>\thr@@
+		\let\theaffi@footnote\theaffi@footnotemany \fi
+	\c@affi@footnote\z@
+% 1.04(1a) <<
+	\affi@labels
+	\ifDS@english\else
+	\vskip-\mkt@prevdepth \nointerlineskip\vskip32\@Q
+	\centerline{\vbox{\centering\hsize\@titlewidth\fs@author
+		\mkt@makeauthor}}
+	\ifDS@preface\else
+	\vskip-\prevdepth \nointerlineskip\vskip32\@Q
+	\centerline{\@abstract\box\@abstractbox}
+	\vskip-\prevdepth \nointerlineskip\vskip34\@Q
+	\mkt@maketitle{\fs@etitle\bf}\@etitle\etitle
+	\fi\fi
+	\if@tempswa\else
+	\vskip-\mkt@prevdepth \nointerlineskip\vskip28\@Q
+	\centerline{\vbox{\centering\hsize\@titlewidth\fs@eauthor\sc
+		\mkt@makeeauthor}}
+	\fi
+	\ifDS@preface\else
+	\vskip-\prevdepth \nointerlineskip\vskip28\@Q
+	\centerline{\@eabstract\box\@eabstractbox}
+	\fi
+	\vskip-\prevdepth \nointerlineskip\vskip25\@Q}
+	\@tempdimb\ht\mkt@titlebox \advance\@tempdimb\dp\mkt@titlebox
+	\@tempcnta\@tempdimb \@tempcntb\baselineskip
+	\divide\@tempcnta\@tempcntb \@tempdima\@tempcnta\baselineskip
+	\advance\@tempdima-\@tempdimb
+	\box\mkt@titlebox
+	\ifdim\@tempdima=\z@\else\advance\@tempdima\baselineskip
+		\vskip\@tempdima\fi}
+
+%% \mkt@maketitle puts Japanese/English title, whose lines should be
+%% properly broken with \\ by the user.  The result is flushed to left, then
+%% centered with respect to the longest line. (H.N.)
+\def\mkt@maketitle#1#2#3{\setbox\@tempboxa\vtop{
+	\def\\{\unskip\egroup\hbox\bgroup\ignorespaces}
+		#1\hbox\bgroup#2\unskip\egroup
+		\global\mkt@prevdepth\prevdepth}
+	\@tempdima\textwidth\advance\@tempdima-4\@mojihaba
+	\ifdim\wd\@tempboxa>\@tempdima
+		\ipsj@warning{%					% 2.00(3)
+			\string#3 is too wide. Break line(s) by \string\\}\fi
+	\centerline{\box\@tempboxa}}
+
+% Assignment of Japanese author names to lines:
+% 1 -> 1, 2 -> 2, 3 -> 3, 4 -> 2+2, 5 -> 3+2, 6 -> 3+3, 7 -> 3+2+2, 8 -> 3+3+2,
+% ...
+% Rule for N authors (N > 2, q := N div 3)
+%	N mod 3 = 0 -> 3 * q
+%	N mod 3 = 1 -> 3 * (q - 2) + 2 + 2
+%	N mod 3 = 2 -> 3 * (q - 1) + 2
+
+\newcount\mkt@cnta\newcount\mkt@cntb
+\newcount\mkt@sname\newcount\mkt@gname
+\newbox\mkt@boxa
+\newdimen\mkt@namewidth
+\def\mkt@makeauthor{\let\member\@gobble \let\nomember\relax
+	\let\stmember\@gobble	% Those are not necessary in final manuscript.
+	\def\@makefnmark{\smash{\rlap{\fn@fontvii$^{\affi@thefnmark}$}}}%
+	\gdef\affi@thefnmark{}\leavevmode\let\+\ignorespaces
+	\settowidth\@tempdima{あ}\mkt@namewidth7\@tempdima\@tempcnta\z@
+	\expandafter\mkt@countauthor\@author\and\@nil\and
+	\ifnum\@tempcnta=\@ne\let\mkt@anhbox\mkt@anhboxc\mkt@makesingleauthor
+	\else
+		\@tempcntb\@tempcnta \divide\@tempcntb\thr@@
+		\multiply\@tempcntb\thr@@ \advance\@tempcntb-\@tempcnta
+		\ifnum\@tempcntb=\m@ne\relax\@tempcntb\tw@\else\@tempcntb\z@\fi
+		\mkt@cnta\thr@@
+		\let\mkt@anhbox\mkt@anhboxl
+		\expandafter\mkt@makemultiauthor\@author\and\and\fi}
+\def\mkt@countauthor#1\and{\def\@tempa{#1}\ifx\@tempa\@nnil\let\next\relax
+	\else\advance\@tempcnta\@ne \let\next\mkt@countauthor\fi\next}
+
+% If single author, author name has 9 KC width instead of 7.
+\def\mkt@makesingleauthor{\divide\mkt@namewidth7\multiply\mkt@namewidth9\relax
+	\expandafter\mkt@putauthor\@author\+ \@nil}
+
+\def\mkt@makemultiauthor#1\and{\ifnum\@tempcnta=\z@\unskip\let\next\relax\else
+	\leavevmode
+	\advance\mkt@cnta\m@ne \advance\@tempcnta\m@ne
+	\ifnum\mkt@cnta=\z@\mkt@maleft{#1}\mkt@cnta\thr@@\else
+	\ifnum\@tempcnta=\@tempcntb\mkt@maleft{#1}\mkt@cnta\tw@\else
+	\mkt@putauthor#1\+ \@nil\let\mkt@anhbox\mkt@anhboxc\fi\fi
+	\let\next\mkt@makemultiauthor\fi\next}
+\def\mkt@maleft#1{\let\mkt@anhbox\mkt@anhboxr\mkt@putauthor#1\+ \@nil
+	\par\let\mkt@anhbox\mkt@anhboxl}
+
+% Japanese author name format:
+%	Non Japanese : As is.
+%	Japanese w/o s/g delimitor : As is with warning.
+%	Japanese (s+g>6) : As is.
+%	Japanese (s+g<7) : Give 1-KC space to s/g delimitor, then insert
+%		infinit stretch between each character pair, assuming the
+%		s/g delimitor as a charcter, to make the name have 7-KC
+%		width.   An exception is 2s + 2g case, in which s/g
+%		delimitor has 0 width in order to have the result
+%		"S_S_G_G".
+
+\def\mkt@putauthor#1 #2\@nil{%
+	\setbox\@tempboxa\hbox{\let\affiref\@gobble \let\mkt@warning\@gobble
+		\jintercharskip\z@#1#2}%
+	\setbox\mkt@boxa\hbox{\let\affiref\@gobble \let\mkt@warning\@gobble
+		\jintercharskip1cm#1#2}%
+	\ifdim\wd\@tempboxa=\wd\mkt@boxa \mkt@anhbox{#1 #2}\else
+						% probably no Kanjis
+	\def\@tempa{#2}\ifx\@tempa\empty	% without space btwn s/g-name
+		{\let\affiref\@gobble \def\+{}%
+			\ipsj@warning{Author name #1 doesn't have a space}}%
+								% 2.00(3)
+		\mkt@anhbox{#1}\else
+	\mkt@getnamewidth\mkt@sname{#1}\mkt@getnamewidth\mkt@gname{#2}%
+	\mkt@cntb\mkt@sname \advance\mkt@cntb\mkt@gname
+	\ifnum\mkt@cntb>6\relax\mkt@anhbox{#1\ #2}\else
+	\jintercharskip\fill%
+	\@tempskipa\@tempdima plus2fill\relax
+	\ifnum\mkt@sname=\tw@ \ifnum\mkt@gname=\tw@ \@tempskipa\fill\fi\fi
+	\hbox to\mkt@namewidth{#1\hskip\@tempskipa#2\@makefnmark}\fi\fi\fi
+	\gdef\affi@thefnmark{}\hskip\columnsep}
+
+% When an author name is formatted "as is", the following macros are used
+% according to their position (left, right, or center).
+\def\mkt@anhboxl#1{\hbox to\mkt@namewidth{\hss#1\@makefnmark}}
+\def\mkt@anhboxr#1{\hbox to\mkt@namewidth{#1\@makefnmark\hss}}
+\def\mkt@anhboxc#1{\setbox\@tempboxa\hbox{#1\@makefnmark}%
+	\ifdim\wd\@tempboxa>\mkt@namewidth\box\@tempboxa
+	\else\hbox to\mkt@namewidth{\hss\box\@tempboxa\hss}\fi}	% 2.08(1)
+
+\def\mkt@getnamewidth#1#2{\setbox\@tempboxa\hbox{\let\affiref\@gobble#2}%
+	\@tempdimb\wd\@tempboxa
+	\advance\@tempdimb.5\@tempdima #1\@tempdimb \mkt@cntb\@tempdima
+	\divide#1\mkt@cntb}
+
+% English author name format
+%	1 -> <name-1>^*
+%	2 -> <name-1>^* and~<name-2>^*
+%	3 or more -> <name-1>,^* <name-2>,^* ... <name-n-1>^* and~<name-n>^*
+% (be careful the position of comma).
+%
+% No special tricks for assignment names to line.  Names are simply put in a
+% \centering paragraph.
+
+\def\mkt@makeeauthor{\let\member\@gobble \let\nomember\relax
+	\let\stmember\@gobble	% Those are not necessary in final manuscript.
+	\leavevmode\let\mkt@and\relax\gdef\affi@thefnmark{}%
+	\def\@thefnmark{\affi@thefnmark}%
+	\expandafter\mkt@imakeeauthor\@eauthor\and\@nil\and}
+\def\mkt@imakeeauthor#1\and#2\and{\def\@tempa{#2}\ifx\@tempa\@nnil
+		#1\@makefnmark\let\next\relax
+	\else
+		\def\@tempb{#1}\def\next{\mkt@iimakeeauthor#2\and}%
+	\fi\next}
+\def\mkt@iimakeeauthor#1\and{\def\@tempa{#1}\ifx\@tempa\@nnil
+		\@makefnmark\ {\rm{and}~}\gdef\affi@thefnmark{}\hbox{\@tempb}%
+		\@makefnmark\let\next\relax
+	\else
+		\mkt@and\hbox{\@tempb}\let\mkt@and\mkt@andmid
+		\let\next\mkt@iimakeeauthor
+	\fi\def\@tempb{#1}\next}
+\def\mkt@andmid{,\@makefnmark\ \gdef\affi@thefnmark{}}
+
+% Macros to specify author's affiliation easily.
+\newcounter{affi@footnote} \c@affi@footnote\z@
+\def\affilabel{\stepcounter{affi@footnote}\affi@deflabels\affi@affilabel}
+								% 1.04(1a)
+\def\paffilabel{\affi@deflabels\affi@paffilabel}
+\def\affi@deflabels#1#2#3{{\def\protect{\noexpand\protect\noexpand}%
+	\let\affi@affilabel\relax \let\affi@paffilabel\relax \let\\\relax
+	\xdef\affi@labels{\affi@labels#1{#2}{#3}}}}
+\def\affi@labels{}
+\def\affi@affilabel{\begingroup
+	\def\@mpfn{affi@footnote}\def\thempfn{\theaffi@footnote}%
+	\def\affi@fnmark{\protect\@makefnmarkdagger}%
+	\affi@label}
+\def\affi@paffilabel#1#2{\begingroup\PF@adjustfnote
+	\def\affi@fnmark{\protect\@makefnmarkstar}%
+	\def\protect{\noexpand\protect\noexpand}%
+	\def\\{\noexpand\\Presently with \ignorespaces}%
+	\edef\@tempa{\ifDS@english Presently with \else 珟圚\fi#2}% 1.04(1d)
+	\affi@label{#1}{\@tempa}}
+\def\affi@label#1#2{\stepcounter{\@mpfn}%
+	\@ifundefined{affi@r@#1}%
+		{\expandafter\xdef\csname affi@r@#1\endcsname{\thempfn}}
+		{\ipsj@warning{Affiliation label `#1' multiply defined}}%
+								% 2.00(3)
+	\let\affi@footnotetext\relax\let\\\relax
+	\def\protect{\noexpand\protect\noexpand}%
+	\xdef\@thanks{\@thanks
+		\affi@footnotetext{\thempfn}{\affi@fnmark}{#2}}\endgroup}
+
+\def\affiref#1{\@ifundefined{affi@r@#1}%
+		{\ipsj@warning{Affiliation reference `#1' undefined}% 2.00(3)
+			\def\@tempa{?}}%
+		{\def\@tempa{\csname affi@r@#1\endcsname}}%
+	\ifx\affi@thefnmark\empty\xdef\affi@thefnmark{\@tempa}\else
+	\xdef\affi@thefnmark{\affi@thefnmark,\hskip\z@\@tempa}\fi}
+\def\affi@footnotetext#1#2#3{{\def\@thefnmark{#1}\def\@makefnmarkforfn{#2}
+	\@footnotetext{#3}}}
+
+% 1.04(1b)>>
+\def\theaffi@footnote{\ifcase\c@affi@footnote\or
+	{\dagger}\or {\dagger}{\dagger}\or {\dagger}{\dagger}{\dagger}\fi}
+								% 1.04(1c)
+\def\theaffi@footnotemany{{\dagger}\number\c@affi@footnote}
+% 1.04(1b)<<
+
+\def\thanks#1{\begingroup
+	\def\@makefnmark{\smash{\hbox{\fn@fontvii$^{\@thefnmark}$}}}%
+	\footnotemark
+	\let\affi@footnotetext\relax\let\\\relax
+	\def\protect{\noexpand\protect\noexpand}%
+	\xdef\@thanks{\@thanks
+		\affi@footnotetext{\thempfn}{\protect\@makefnmarkstar}{#1}}%
+	\endgroup}
+
+% \contact is necessary only for drafts.
+\long\def\contact#1{}
+
+
+%%%%%% Page Header and Footer %%%%%% 
+
+\mark{{}{}} 
+
+\newcounter{volpageoffset} % You must set this to appropriate value
+\setcounter{volpageoffset}{1} % for each issue!
+
+% 2.00(16)>>
+\let\latex@document\document
+\def\document{\latex@document
+	\ifDS@private\else \global\c@page\c@volpageoffset \fi}	% 2.07(8)
+\let\c@volpage\c@page		% for backward compatibility
+\def\thevolpage{\thepage}	% for backward compatibility
+% 2.00(16)<<
+
+\newcounter{volume}\expandafter\let\csname c@巻数\endcsname\c@volume
+\newcounter{number}\expandafter\let\csname c@号数\endcsname\c@number
+\let\c@month\c@number \expandafter\let\csname c@月数\endcsname\c@number
+								% 2.07(4)
+\newcounter{year}\expandafter\let\csname c@幎数\endcsname\c@year
+
+% 2.07(4)>>
+\def\@thevolno{Vol.~\arabic{巻数}\hskip\@mojihaba No.~%
+	\ifipsj@trans SIG\ \ipsj@sig@numa(\ipsj@sig@code\ \ipsj@sig@numb)%
+	\else \arabic{号数}\fi}
+% 2.07(4)<<
+% 2.00(15)>>
+\def\@monthyear{\ifcase\value{号数}\or Jan.\or Feb.\or Mar.\or Apr.\or May\or
+		June\or July\or Aug.\or Sep.\or Oct.\or Nov.\or Dec.\else\fi
+	\hskip.5\@mojihaba \setcounter{幎数}{1959}%
+	\addtocounter{幎数}{\value{巻数}}\arabic{幎数}}
+% 2.00(15)<<
+
+% 2.07(2)>>
+\newif\ifipsj@trans \ipsj@transfalse
+\def\transaction#1#2#3{\ipsj@transtrue
+	\def\ipsj@sig@code{#1}\def\ipsj@sig@numa{#2}\def\ipsj@sig@numb{#3}%
+	\expandafter\let\expandafter\ipsj@sig@title
+		\csname ipsj@sig@#1@\ifDS@english e\else j\fi\endcsname
+	\ifx\ipsj@sig@title\relax
+		\ipsj@warning{Transaction code #1 is unknown}\fi
+	\let\ipsj@oddhead@s\ipsj@oddhead@a
+	\settowidth\@tempdima{%
+	    \ipsj@ohcheck\ipsj@ohcvolno\hdr@tipsj\ipsj@ohcvolno}%
+	\ifdim\@tempdima>\textwidth
+	    \let\ipsj@oddhead@s\ipsj@oddhead@b
+	    \settowidth\@tempdima{\c@month3\relax	% "Mar." is longest
+		\ipsj@ohcheck\ipsj@ohcvolno\hdr@tipsj\@monthyear}%
+	    \ifdim\@tempdima>\textwidth
+		\let\ipsj@oddhead@s\ipsj@oddhead@c
+	\fi \fi}
+
+\def\ipsj@sig@PRO@j{プログラミング}
+\def\ipsj@sig@PRO@e{Programming}
+\def\ipsj@sig@TOM@j{数理モデル化ず応甚}
+\def\ipsj@sig@TOM@e{Mathematical Modeling and Its Applications}
+\def\ipsj@sig@TOD@j{デヌタベヌス}
+\def\ipsj@sig@TOD@e{Databases}
+%\def\ipsj@sig@HPS@j{ハむパフォヌマンスコンピュヌティングシステム}
+%\def\ipsj@sig@HPS@e{High Performance Computing Systems}
+\def\ipsj@sig@CVIM@j{コンピュヌタビゞョンずむメヌゞメディア}
+\def\ipsj@sig@CVIM@e{Computer Vision and Image Media}
+\def\ipsj@sig@ACS@j{コンピュヌティングシステム}		% 2.09(2)
+\def\ipsj@sig@ACS@e{Advanced Computing Systems}		% 2.09(2)
+% 2.07(2)<<
+
+\def\copyrightnotice{\long\def\ipsj@cnotice}
+
+% 1.05(2)>>
+\ifDS@techrep
+\def\ps@headings{\let\@mkboth\markboth
+	\def\@oddhead{\@checklines\hss}\let\@evenhead\@oddhead
+	\def\@oddfoot{}\def\@evenfoot{}}
+\let\ps@myheadings\ps@headings
+
+\else\ifDS@private						% 2.07(8)>>
+\def\ps@headings{\let\@mkboth\markboth
+	\def\@oddhead{\@checklines\hfil\thepage\hskip12\@Q}%
+	\def\@evenhead{\@checklines\hskip12\@Q\thepage\hfil}
+	\def\@oddfoot{}\def\@evenfoot{}}
+\def\ps@myheadings{\ps@headings
+	\def\@oddhead{\@checklines
+		\smash{\parbox[b]{.75\textwidth}{\@nameuse{ipsj@cnotice}}}%
+		\hfil\thepage\hskip12\@Q}%
+	\let\@evenhead\@oddhead}
+								% 2.07(8)<<
+\else
+% 1.05(2)<<
+\def\ps@headings{\let\@mkboth\markboth
+	\def\@oddfoot{}
+	\def\@evenfoot{}
+	\def\@evenhead{\fs@header \@checklines
+		\hskip12\@Q\rlap{\thepage}\hss			% 2.07(3)
+		\hdr@tipsj\hss\llap{\@monthyear}\hskip12\@Q}
+	\def\@oddhead{\fs@header \@checklines
+		\ipsj@oddhead@t\@titlestring\thepage}		% 2.07(3)
+	\def\sectionmark##1{}\def\subsectionmark##1{}}
+
+\def\ps@myheadings{\let\@mkboth\@gobbletwo
+	\def\@oddhead{\fs@header \@checklines
+		\ipsj@oddhead@s\hdr@tipsj\@monthyear}		% 2.07(3)
+	\def\@oddfoot{\fs@footer\hfil\thepage\hfil}
+	\let\@evenhead\@oddhead
+	\let\@evenfoot\@oddfoot
+	\def\sectionmark##1{}\def\subsectionmark##1{}}
+\fi\fi								% 1.05(2)
+								% 2.07(8)
+% 2.07(3)>>
+\def\ipsj@oddhead@a#1#2{\hskip12\@Q \rlap{\@thevolno}\hss#1\hss
+	\llap{#2}\hskip12\@Q}
+\def\ipsj@oddhead@b#1#2{\hskip12\@Q \@thevolno\qquad#1\hss
+	\llap{#2}\hskip12\@Q}
+\def\ipsj@oddhead@c#1#2{\hskip12\@Q \@thevolno\hss#1\hss#2\hskip12\@Q}
+\let\ipsj@oddhead@t\ipsj@oddhead@a
+\let\ipsj@oddhead@s\ipsj@oddhead@a
+% 2.07(3)<<
+
+% 2.02(2),2.07(4)>>
+\ifDS@english
+\def\hdr@tipsj{\smash{%
+	\ifipsj@trans
+		IPSJ Transactions on \ipsj@sig@title
+	\else
+		IPSJ Journal\fi}}
+\else
+\def\hdr@tipsj{\smash{情報凊理孊䌚論文誌%
+	\ifipsj@trans \ipsj@sig@title\fi}}
+\fi
+% 2.02(2),2.07(4)<<
+
+% \checklines enables to draw a horizontal rule onto each baselines.
+
+\newif\if@checklines \@checklinesfalse
+\def\checklines{\@checklinestrue}
+\def\@checklines{\if@checklines \rlap{\smash{\vtop{\normalsize
+	\hbox{} \vskip\headsep \hrule width\textwidth\vskip-.4pt \vskip\topskip
+	\hrule\vskip-.4pt
+	\ifDS@techrep\@tempcnta50\else				% 1.05(2)
+	\ifDS@english\@tempcnta53\else\@tempcnta45\fi\fi	% 1.05(2)
+	\relax\@@checklines}}}\fi
+	\ifDS@english\@tempcnta-7\else\@tempcnta\z@\fi\relax
+% 1.05(2)>>
+	\@tempswafalse
+	\ifDS@printer \@tempswatrue \fi \ifDS@techrep \@tempswatrue \fi
+	\if@tempswa \unitlength\@Q \begin{picture}(0,0)(0,\@tempcnta)
+		\put(-61,63){\begin{picture}(0,0)
+			\put(-10,0){\line(-1,0){30}}
+			\put(0,10){\line(0,1){30}}\end{picture}}
+		\put(667,63){\begin{picture}(0,0)
+			\put(10,0){\line(1,0){30}}
+			\put(0,10){\line(0,1){30}}\end{picture}}
+		\put(-61,-965){\begin{picture}(0,0)
+			\put(-10,0){\line(-1,0){30}}
+			\put(0,-10){\line(0,-1){30}}
+			\ifDS@techrep
+			\put(0,-10){\makebox(728,0)[t]{\thepage}}\fi
+			\end{picture}}
+% 1.05(2)<<
+		\put(667,-965){\begin{picture}(0,0)
+			\put(10,0){\line(1,0){30}}
+			\put(0,-10){\line(0,-1){30}}\end{picture}}
+		\end{picture}\fi}
+\def\@@checklines{\ifnum\@tempcnta>\z@
+	\vskip\normalbaselineskip \hrule\vskip-.4pt \advance\@tempcnta\m@ne
+	\let\next\@@checklines\else\let\next\relax\fi\next}
+
+\pagestyle{headings}
+\pagenumbering{arabic}
+
+\ifDS@english\else
+\def\today{\the\year 幎 \the\month 月 \the\day 日}
+\fi
+
+
+%%%%%% Output Routine %%%%%%
+
+% To balance the final page,
+% following code is borrowed from nicetwocolumn style
+
+% you can refrain from balancing by falsifying following switch!
+%% Initial value of \if@lastpagebalancing is false.  It may be turned true by
+%% biography processing macros. (H.N.)
+
+\newif\if@lastpagebalancing \@lastpagebalancingfalse
+\newif\if@finalpageoutput \@finalpageoutputfalse
+% incorporate balanced output to \enddocument
+\let\latex@enddocument\enddocument
+\def\enddocument{\@finalpageoutputtrue
+	\if@lastpagebalancing
+		\global\let\@outputdblcol\opt@balanceoutputdblcol\fi
+	\ifDS@preface
+		\global\let\@outputdblcol\opt@balanceoutputdblcol\fi
+	\ifDS@abstract						% 2.07(7)>>
+		\hbox{}\newpage
+		\ifDS@english	\rightline{(Presented \ra@presented)}
+		\else		\expandafter\ra@putpresented\ra@presented \fi
+		\fi						% 2.07(7)<<
+	\latex@enddocument}
+
+\newbox\@leftcolumnfootnote \newbox\@rightcolumnfootnote
+\newif\if@leftfootnoteexist \@leftfootnoteexistfalse 
+\newif\if@rightfootnoteexist \@rightfootnoteexistfalse
+\newif\ifopt@floatexist \opt@floatexistfalse
+
+% 2.00(12) \color@{begin/end}group ignored
+\def\enlargethispage{\ipsj@warning{\string\enlargepage is ignored}}
+								% 2.00(3,12)
+\def\@makecol{\vbadness10000 \lineskiplimit\normallineskiplimit	% 1.05(1)
+	\setbox\@outputbox\box\@cclv
+	\if@firstcolumn
+		\ifvoid\footins \global\@leftfootnoteexistfalse
+		\else
+			\global\@leftfootnoteexisttrue
+			\@tempdima\dp\footins
+			\global\setbox\@leftcolumnfootnote\vbox{
+				\unvbox\footins\vskip-\@tempdima}
+		\fi
+		\ifx\@botlist\@empty\else\global\opt@floatexisttrue\fi
+	\else
+		\ifvoid\footins \global\@rightfootnoteexistfalse
+		\else
+			\global\@rightfootnoteexisttrue
+			\@tempdima\dp\footins
+			\global\setbox\@rightcolumnfootnote\vbox{
+				\unvbox\footins	\vskip-\@tempdima}
+		\ifx\@toplist\@empty\else\global\opt@floatexisttrue\fi
+		\fi
+	\fi
+	\xdef\@freelist{\@freelist\@midlist}\gdef\@midlist{}\@combinefloats
+	\global\maxdepth\@maxdepth}
+
+% 2.01(1) >>
+\let\latex@vtryfc\@vtryfc
+\def\@vtryfc{\if@firstcolumn \global\@leftfootnoteexistfalse
+	\else \global\@rightfootnoteexistfalse \fi \latex@vtryfc}
+% 2.01(1) <<
+
+% 1.01(1,2) >>
+\let\latex@addtobot\@addtobot
+\def\@addtobot{\latex@addtobot\global\maxdepth\@maxdepth}
+\let\latex@combinefloats\@combinefloats
+\def\@combinefloats{\ifx\@botlist\@empty\else \dimen@\dp\@outputbox
+	\setbox\@outputbox\vbox{\unvbox\@outputbox \vskip-\dimen@}\fi
+	\latex@combinefloats}
+% 1.01(1,2) <<
+
+\newskip\opt@baselineskip
+\def\@outputdblcol{
+	\if@firstcolumn \global\@firstcolumnfalse
+		\global\setbox\@leftcolumn\box\@outputbox
+		\global\opt@baselineskip\baselineskip
+	\else \global\@firstcolumntrue \global\opt@floatexistfalse
+	\global\bib@adjustheight-\maxdimen
+	\setbox\@leftcolumn\vbox to\@colht{\boxmaxdepth\@maxdepth   % 1.01(3)
+		\unvbox\@leftcolumn
+		\if@leftfootnoteexist\vfil
+			\footnoterule\box\@leftcolumnfootnote\fi}
+	\setbox\@outputbox\vbox to\@colht{\boxmaxdepth\@maxdepth    % 1.01(3)
+		\unvbox\@outputbox
+		\if@rightfootnoteexist\vfil
+			\footnoterule\box\@rightcolumnfootnote\fi}
+	\global\maxdepth\@maxdepth
+	\if@finalpageoutput
+	\if@leftfootnoteexist\else\if@rightfootnoteexist\else
+		\setbox\@leftcolumn\vbox{\unvbox\@leftcolumn}%
+		\setbox\@outputbox\vbox{\unvbox\@outputbox}
+		\ifdim\ht\@leftcolumn<\ht\@outputbox
+			\setbox\@leftcolumn\vbox to\ht\@outputbox{
+				\unvbox\@leftcolumn}%
+		\else
+			\setbox\@outputbox\vbox to\ht\@leftcolumn{
+				\unvbox\@outputbox}%
+		\fi
+	\fi\fi\fi
+	\setbox\@outputbox\vbox{\hbox to\textwidth{\hbox to\columnwidth
+		{\box\@leftcolumn \hss}\hfil \vrule width\columnseprule\hfil
+		\hbox to\columnwidth{\box\@outputbox \hss}}}
+	\@combinedblfloats
+	\@outputpage \begingroup \@dblfloatplacement \@startdblcolumn
+	\@whilesw\if@fcolmade \fi{\@outputpage\@startdblcolumn}%
+	\endgroup
+	\fi}
+
+\let\opt@outputdblcol\@outputdblcol
+\chardef\opt@boxa\z@
+\chardef\opt@boxb\@ne
+\chardef\opt@boxc\tw@
+\def\opt@magicpenalty{1234}
+\def\opt@balanceoutputdblcol{\let\next\opt@ibalanceoutputdblcol
+	\if@firstcolumn \let\next\opt@outputdblcol
+	\else	\ifopt@floatexist \opt@warning \let\next\opt@outputdblcol
+		\else\ifx\@deferlist\@empty\else
+			\opt@warning \let\next\opt@outputdblcol\fi\fi\fi
+	\next}
+\def\opt@ibalanceoutputdblcol{%
+	\setbox\@leftcolumn\vbox{\unvbox\@leftcolumn
+		\ifnum\lastpenalty=\opt@magicpenalty\relax\else
+		\@tempcnta10\relax\@whilenum\@tempcnta>0\do{%
+			\unskip\unskip\unkern\unpenalty
+			\advance\@tempcnta\m@ne}\fi}
+	\advance\opt@baselineskip-\dp\@leftcolumn
+	\ifdim\dp\@leftcolumn=\z@ \ifdim\opt@baselineskip=\baselineskip
+		\@tempdima\ht\@leftcolumn \advance\@tempdima-\topskip
+		\divide\@tempdima\baselineskip
+		\@tempcnta\@tempdima \@tempdima\@tempcnta\baselineskip
+		\advance\@tempdima\topskip
+		\advance\@tempdima-\ht\@leftcolumn
+		\advance\opt@baselineskip\@tempdima \fi\fi
+	\advance\opt@baselineskip-\topskip
+	\setbox\@outputbox\vbox{\unvbox\@outputbox}
+	\ifdim\ht\@outputbox=\topskip \ifdim\dp\@outputbox=\z@
+	\setbox\opt@boxa\vbox{\unvcopy\@outputbox\unskip
+		\global\setbox\opt@boxb\lastbox
+		\global\dimen@\lastskip}
+	\ifvoid\opt@boxb\else\ifdim\ht\opt@boxb=\z@
+		\ifdim\dp\opt@boxb=\z@\ifdim\dimen@=\topskip
+		\@firstcolumntrue\fi\fi\fi\fi\fi\fi
+	\setbox\opt@boxa\copy\@outputbox
+	\setbox\@outputbox\vbox{\unvcopy\@leftcolumn
+		\if@firstcolumn\else
+		\vskip\opt@baselineskip
+		\penalty\interlinepenalty\unvbox\@outputbox\fi}
+	\@tempdima\ht\@outputbox \advance\@tempdima\topskip
+	\divide\@tempdima\tw@ \advance\@tempdima100sp
+	\splittopskip\topskip \splitmaxdepth\@maxdepth
+	\ifdim\bib@adjustheight<\@M pt
+		\opt@split\@outputbox\opt@boxb\@tempdima
+		\ifdim\ht\opt@boxb<\bib@adjustheight
+			\opt@split\@leftcolumn\opt@boxc\bib@adjustheight
+			\opt@split\opt@boxc\opt@boxb\@tempdima
+			\if@firstcolumn
+				\opt@adjust\opt@boxc{\unvbox\@leftcolumn}
+			\else\opt@adjust\opt@boxc{\ifvoid\@leftcolumn\else
+				\unvbox\@leftcolumn\vskip\opt@baselineskip\fi
+				\unvbox\opt@boxa}\fi\fi
+	\else
+		\advance\bib@adjustheight-\@M pt
+		\opt@split\opt@boxa\opt@boxc\bib@adjustheight
+		\setbox\@outputbox\vbox{\unvbox\@leftcolumn
+			\vskip\opt@baselineskip\unvbox\opt@boxc}
+		\opt@split\@outputbox\opt@boxb\@tempdima
+		\opt@adjust\@outputbox{\unvbox\opt@boxa}
+	\fi
+	\if@leftfootnoteexist
+		\setbox\opt@boxb\vbox to\@colht{\box\opt@boxb\vfill
+			\footnoterule\box\@leftcolumnfootnote}\fi
+	\if@rightfootnoteexist
+		\setbox\@outputbox\vbox to\@colht{\box\@outputbox\vfill
+			\footnoterule\box\@rightcolumnfootnote}\fi
+	\ifdim\ht\@outputbox>\ht\opt@boxb
+		\setbox\opt@boxb\vbox to\ht\@outputbox{\unvbox\opt@boxb}
+	\else
+		\setbox\@outputbox\vbox to\ht\opt@boxb{\unvbox\@outputbox}
+	\fi
+	\setbox\@outputbox\vbox{\hbox to\textwidth{\hbox to\columnwidth
+		{\box\opt@boxb \hss}\hfil \vrule width\columnseprule\hfil
+		\hbox to\columnwidth{\box\@outputbox \hss}}}
+	\global\@firstcolumntrue \@combinedblfloats
+	\@outputpage \begingroup \@dblfloatplacement \@startdblcolumn
+	\@whilesw\if@fcolmade \fi{\@outputpage\@startdblcolumn}\endgroup}
+
+\if@LaTeX@eN							% 2.00(3)>>
+\def\opt@warning{\ClassWarning{ipsjpapers}{%
+	Single column floats still remain on biography\MessageBreak
+	processing.\MessageBreak
+	Do \string\verbbiography\space for manual balcing}}
+\else
+\def\opt@warning{\@warning{Single column floats still remain on biography
+	processing.^^J\space\space\space\space\space
+	\space\space\space\space\space\space\space\space\space\space
+	Do \string\verbbiography\space for manual balancing}}
+\fi								% 2.00(3)<<
+\def\opt@split#1#2#3{\setbox#2\vsplit#1to#3\setbox#2\vbox{\unvbox#2}}
+\def\opt@adjust#1#2{\@tempdima\ht#1 \advance\@tempdima-\topskip
+	\@tempdimb\@tempdima \divide\@tempdima\baselineskip
+	\@tempcnta\@tempdima \@tempdima\@tempcnta\baselineskip
+	\advance\@tempdima-\@tempdimb
+	\ifdim\@tempdima<\z@ \advance\@tempdima\baselineskip \fi
+	\advance\@tempdima\baselineskip \advance\@tempdima-\dp#1 
+	\advance\@tempdima-\topskip
+	\setbox\@outputbox\vbox{\ifvoid#1\else\unvbox#1\vskip\@tempdima\fi#2}}
+
+\let\latex@outputpage\@outputpage
+% \opt@finalgap:	vertical space above the \hrule at the end of paper.
+% \opt@finallinewidth:	width of the \hrule at the end of paper.
+\@tempdima2\baselineskip		% This might be changed
+\edef\opt@finalgap{\the\@tempdima}
+\def\opt@finallinewidth{220\@Q}		% This might be changed
+\ifDS@techrep \let\opt@finallinewidth\z@ \fi			% 1.05(2)
+
+\def\@outputpage{\if@finalpageoutput
+	\setbox\@outputbox\vbox{\unvbox\@outputbox}
+	\@tempdima\dp\@outputbox
+	\@tempdimb\ht\@outputbox \advance\@tempdimb\opt@finalgap\relax
+	\ifdim\@tempdimb>\textheight\else
+	\setbox\@outputbox\vbox{\unvbox\@outputbox\vskip-\@tempdima
+		\nointerlineskip\vbox to\z@{\vskip\opt@finalgap
+			\hbox to\textwidth{\hss
+			\vrule height0.4pt width\opt@finallinewidth\hss}
+		\vss}}\fi\fi
+	\ifASCII\if@LaTeX@e \@@topmargin\topmargin \fi\fi	    % 2.00(13)
+	\latex@outputpage}
+
+%%%%%% Biography %%%%%%
+
+% If you want to control the allocation of biographies manually, do
+% \verbbiography and insert \adjust{<vertical materials>} just before
+% \member (or its relatives).  For example;
+% 	\verbbiography
+%	\begin{biography}
+%	\member{...} ...
+%	\adjust{\protect\newpage}
+%	\member{...} ...
+%	\adjust{\protect\vspace{1.3cm}}
+%	\member{...} ...
+%	\end{biography}
+% will make page break just after the biography of the 1st author, and will
+% insert a vertical space of 1.3cm just after that of the 2nd.  It is
+% strongly recommended to \protect any control sequence in the argument of
+% \adjust.
+
+% \受付 and \採録 define the dates of receipt/acceptance.  They are put at
+% the end of manuscript (just before biographies) by ra@putrcvacc.
+\def\ra@nengo{平成}	%% Change here when ...
+\ifDS@english
+\def\受付#1#2#3{\def\ra@received{\ra@date{#1}{#2}{#3}}\ignorespaces}
+\def\採録#1#2#3{\def\ra@accepted{\ra@date{#1}{#2}{#3}}\ignorespaces}
+\def\再受付#1#2#3{\def\ra@rereceived{\ra@date{#1}{#2}{#3}}\ignorespaces}
+								% 2.07(5)
+\def\発衚#1#2#3{\def\ra@presented{\ra@date{#1}{#2}{#3}}\ignorespaces}
+								% 2.07(7)
+\def\ra@received{??? ??, ????}
+\def\ra@accepted{??? ??, ????}
+\def\ra@presented{??? ??, ????}					% 2.07(7)
+\def\ipsj@TOD@editor{(Editor in Charge: {\it\ipsj@TOD@ename})}	% 2.07(6)
+\else
+\def\受付#1#2#3{\def\ra@received{#1&#2&#3&}\ignorespaces}
+\def\採録#1#2#3{\def\ra@accepted{#1&#2&#3&}\ignorespaces}
+\def\再受付#1#2#3{\def\ra@rereceived{#1&#2&#3&}\ignorespaces}	% 2.07(5)
+\def\発衚#1#2#3{\def\ra@presented{#1&#2&#3&}\ignorespaces}	% 2.07(7)
+\def\ra@received{?&?&?&}
+\def\ra@accepted{?&?&?&}
+\def\ra@presented{?&?&?&}					% 2.07(7)
+\def\ipsj@TOD@editor{担圓線集委員\ \ipsj@TOD@ename }	% 2.07(6)
+								% 2.08(2)
+\fi
+\let\received\受付
+\let\accepted\採録
+\let\rereceived\再受付						% 2.07(5)
+\let\presented\発衚						% 2.07(7)
+
+\def\edInCharge#1{\def\ipsj@TOD@ename{#1}\ignorespaces}		% 2.07(6)
+
+\def\ra@putrcvacc{\rightline{\vtop{\normalsize\tabskip\z@
+	\ifDS@english
+	    \llap{(Received \ra@received)}
+	    \ifx\ra@rereceived\undefined\else
+		\llap{(Revised \ra@rereceived)}\fi
+	    \llap{(Accepted \ra@accepted)}\hbox{}
+	\else
+	    \halign{(\ra@nengo\hskip\jasciikanjiskip
+		\hfil##\hfil\hskip\jasciikanjiskip 幎\hskip\jasciikanjiskip&
+		\hfil##\hfil\hskip\jasciikanjiskip 月\hskip\jasciikanjiskip&
+		\hfil##\hfil\hskip\jasciikanjiskip 日&##\hfil\cr% 2.07(5)>>
+		\ra@received 受付)\cr
+		\ifx\ra@rereceived\undefined\else \ra@rereceived 再受付)\cr\fi
+		\ra@accepted 採録)\cr\multispan3\cr}\fi}%
+								% 2.07(5)<<
+	\hskip\@mojihaba}
+	\nobreak\vskip-2\baselineskip\prevdepth\z@\hbox{}
+	\ifipsj@recommendation\else				% 2.04(2)
+		\ifx\ipsj@TOD@ename\undefined\else		% 2.07(6)>>
+			\nobreak\vskip\baselineskip
+			\hbox{\ipsj@TOD@editor}\fi		% 2.07(6)<<
+		\vskip\baselineskip\penalty\opt@magicpenalty\fi}% 2.04(2)
+\def\ra@date#1#2#3{\ifcase#2\or
+	January\or February\or March\or April\or May\or June\or
+	July\or August\or September\or October\or November\or December\fi
+	\space#3, #1}
+\def\ra@putpresented#1&#2&#3&{\rightline{%
+	(\ra@nengo\hskip\jasciikanjiskip			% 2.07(7)>>
+	#1\hskip\jasciikanjiskip 幎\hskip\jasciikanjiskip
+	#2\hskip\jasciikanjiskip 月\hskip\jasciikanjiskip
+	#3\hskip\jasciikanjiskip 日発衚)}}			% 2.07(7)<<
+
+\newbox\bio@picbox
+% The following define the height and width of a picture for biography, and
+% the indentation of the first 6 lines.  They might be changed.
+\def\bio@picheight{100\@Q}
+\def\bio@picwidth{80\@Q}
+
+\newif\ifbio@showpicbox
+\bio@showpicboxtrue
+% Do \bio@showpicboxfalse if you don't want to put a frame box at the
+% position for picture.
+\ifDS@english
+\def\bio@lineheight{9\@Q}
+\def\bio@piclines{7}
+\def\bio@indent{91\@Q}
+\def\bio@hangafter{7}
+\else
+\def\bio@lineheight{8\@Q}
+\def\bio@piclines{6}
+\def\bio@indent{96\@Q}
+\def\bio@hangafter{5}
+\fi
+
+% \verbbiography forces verbatim output of biography (i.e. not ballanced).
+\newif\ifbio@verb \bio@verbfalse
+\def\verbbiography{\global\bio@verbtrue}
+% The environment biography saves texts for biographies into the list of
+% \inserts (for floats).
+\def\biography{\ifipsj@recommendation\else\par\ra@putrcvacc\fi	% 2.04(2)
+	\def\member{\bio@member{正䌚員}}\def\nomember{\bio@member{}}
+	\def\stmember{\bio@member{孊生䌚員}}\let\adjust\bio@adjust
+	\ifbio@showpicbox
+	\setbox\bio@picbox\hbox{\hbox to\z@{\vrule\hskip-0.4pt%
+		\vtop to\bio@picheight{\vskip\z@\hrule width\bio@picwidth
+			\vfil\hrule}\hskip-0.4pt\vrule\hss}}
+	\else
+	\setbox\bio@picbox\hbox{}
+	\fi
+	\@tempdima\bio@piclines\baselineskip \advance\@tempdima\bio@lineheight
+	\dp\bio@picbox\@tempdima
+	\let\bio@egroup\relax\let\+\ignorespaces\let\@elt\relax
+	\def\bio@list{}\global\bio@th\z@}
+
+\def\bio@member#1#2{\bio@egroup\let\bio@egroup\bio@@egroup
+	\@next\@currbox\@freelist\relax
+		{\@latexerr{Too many unprocessed floats and biographies}\@ehb}%
+	\def\@tempa{#2}%
+	\global\setbox\@currbox\hbox\bgroup
+	    \raise\bio@lineheight\copy\bio@picbox
+	    \vtop\bgroup
+		\let\par\\
+		\hangindent\bio@indent\hangafter-\bio@hangafter
+		\ifDS@english {\bf #2\ }%
+		\else {\bf\bio@putauthor#2\+ \@nil}#1{\@@par}\fi\ignorespaces}
+
+% Author name format:
+%	S + G < 5 -> fill space between S/G (like SS__G)
+%	otherwise -> 1 KC space between S/G (like SS_GG)
+\def\bio@putauthor#1 #2\@nil{%
+	\setbox\@tempboxa\hbox{\jintercharskip\z@#1#2}%
+	\setbox\mkt@boxa\hbox{\jintercharskip1cm#1#2}%
+	\ifdim\wd\@tempboxa=\wd\mkt@boxa #1 #2\else
+	\def\@tempa{#2}\ifx\@tempa\empty
+		{\def\+{}\ipsj@warning{Author name #1 doesn't have a space}}%
+								% 2.00(3)
+		#1\else
+	\@tempdima\@mojihaba
+	\mkt@getnamewidth\mkt@sname{#1}\mkt@getnamewidth\mkt@gname{#2}%
+	\advance\mkt@sname\mkt@gname
+	\ifnum\mkt@sname<5\leavevmode\hbox to5\@mojihaba{#1\hfil#2}\else
+		#1#2\fi\fi\fi}
+\def\bio@@egroup{\@@par\hbox{}\egroup\egroup\@tempdima\dp\@currbox
+	\ifdim\@tempdima>\textheight
+		\ipsj@warning{Biography of \@tempa\space is too long}% 2.00(3)
+		\bio@verbtrue \fi
+	\advance\@tempdima\baselineskip\global\advance\bio@th\@tempdima
+	\global\dimen\@currbox\@tempdima \global\count\@currbox\z@
+	{\let\protect\bio@protect\xdef\bio@list{\bio@list\@elt\@currbox}}}
+\def\bio@adjust#1{\bio@egroup\let\bio@egroup\relax
+	\ifbio@verb {\let\protect\bio@protect\xdef\bio@list{\bio@list#1}\fi}}
+\def\bio@protect{\noexpand\protect\noexpand}
+
+\def\endbiography{\bio@egroup \@tempswatrue
+	\ifx\@botlist\@empty\ifx\@deferlist\@empty \@tempswafalse \fi\fi
+	\ifbio@verb\else\if@tempswa \bio@verbtrue \opt@warning\fi\fi
+	\ifbio@verb{\let\@elt\bio@putelt \let\protect\relax \bio@list}%
+	\else\bio@putbio\fi}
+
+\newdimen\bio@colht \newdimen\bio@splitheight
+\newdimen\bio@maxgap \newdimen\bio@lastgap
+\newdimen\bio@th \newdimen\bio@lhA \newdimen\bio@hA \newdimen\bio@hB
+\newdimen\bio@lh \newdimen\bio@rh
+\newdimen\bio@tempdim
+\newif\ifbio@awful
+\newinsert\bio@pbox \count\bio@pbox\@ne
+
+\def\bio@putbio{\let\@elt\relax \let\bio@vskip\relax \allowbreak
+	\bio@colht\@colht \advance\bio@colht-\topskip
+	\advance\bio@colht\baselineskip
+	\@tempdima\bio@colht \advance\@tempdima-\@colroom
+	\advance\@tempdima\pagetotal
+	\if@firstcolumn
+	    \ifdim\@tempdima>\bio@th
+		\global\@lastpagebalancingtrue
+		{\let\@elt\bio@putelt\bio@list}\vskip-\baselineskip
+	    \else
+		\ifdim\pagetotal=\z@\else
+			\dimen\bio@pbox\@tempdima \advance\bio@th\@tempdima
+			\edef\bio@list{\@elt\bio@pbox\bio@list}\fi
+		\bio@splitheight\bio@colht \bio@splitpage
+		\bio@splitheight.5\bio@th
+		\let\bio@awfulput\bio@specialawfulput
+		\bio@trybalance\fi
+	\else \advance\@tempdima\bio@th
+	    \ifdim\@tempdima<\bio@colht
+		\global\@lastpagebalancingtrue
+		\ifdim\pagetotal=\z@ \global\opt@baselineskip2\baselineskip\fi
+		{\let\@elt\bio@putelt\bio@list}\vskip-\baselineskip
+	    \else
+		\let\bio@awfulput\bio@normalawfulput
+		\bio@splitheight\z@ \advance\@tempdima-\bio@th
+		\advance\bio@colht-\@tempdima \bio@splitpage
+		{\let\@elt\bio@putelt\bio@list}\bio@nextpage
+		\bio@trybalance\fi
+	\fi}
+
+\def\bio@trybalance{\bio@split 
+	\let\bio@right\bio@rightA \let\bio@left\bio@leftA
+		\def\bio@rightx{}\def\bio@leftx{}%
+		\let\bio@hX\bio@hA \bio@balance
+		\let\bio@rightxA\bio@rightx \let\bio@leftxA\bio@leftx
+	\ifbio@awful\@tempcnta\tw@\else\@tempcnta\z@\fi
+	\let\bio@right\bio@rightB \let\bio@left\bio@leftB
+		\def\bio@rightx{}\def\bio@leftx{}%
+		\let\bio@hX\bio@hB \bio@balance
+		\let\bio@rightxB\bio@rightx \let\bio@leftxB\bio@leftx
+	\ifbio@awful\advance\@tempcnta\@ne\fi
+	\ifcase\@tempcnta
+		\ifdim\bio@hA<\bio@hB \bio@balanceput\bio@leftxA\bio@rightxA
+		\else \bio@balanceput\bio@leftxB\bio@rightxB\fi
+	\or \bio@balanceput\bio@leftxA\bio@rightxA
+	\or \bio@balanceput\bio@leftxB\bio@rightxB
+	\else \bio@awfulput\fi
+	\ifx\bio@deferred\empty\vskip-\baselineskip\let\next\relax
+	\else\bio@nextpage\let\next\bio@trybalance\fi\next}
+
+\def\bio@split{\def\bio@leftA{}\def\bio@leftB{}%
+	\def\bio@rightA{}\def\bio@rightB{}%
+	\bio@lhA\z@\@tempdimb\z@ \bio@isplit}
+\def\bio@isplit{\ifx\bio@list\empty\let\next\relax\else
+	\bio@car\@tempdima\@currbox\bio@list
+	\bio@lhA\@tempdimb\advance\@tempdimb\@tempdima
+	\edef\bio@leftB{\bio@leftB\@elt\@currbox}%
+	\ifdim\@tempdimb>\bio@splitheight
+		\edef\bio@rightA{\@elt\@currbox\bio@list}%
+		\let\bio@rightB\bio@list \let\next\relax
+	\else\edef\bio@leftA{\bio@leftA\@elt\@currbox}\let\next\bio@isplit
+	\fi\fi\next}
+
+\def\bio@balanceput#1#2{{\let\@elt\bio@putelt\let\bio@vskip\bio@xvskip
+	#1\bio@newpage#2}}
+\def\bio@normalawfulput{{\let\bio@vskip\@gobble \@tempcnta\z@ 
+	\@tempdima\z@ \bio@addheight\@tempdima\bio@leftxB
+	\ifdim\@tempdima<\bio@colht
+		\@tempdima\z@ \bio@addheight\@tempdima\bio@rightxB
+		\ifdim\@tempdima<\bio@colht \@tempcnta\@ne
+			\let\@elt\bio@putelt
+			\bio@leftxB\bio@newpage\bio@rightxB\fi\fi
+	\ifnum\@tempcnta=\z@
+		\@tempdima\z@ \bio@addheight\@tempdima\bio@leftxA
+		\ifdim\@tempdima<\bio@colht
+			\@tempdima\z@\bio@addheight\@tempdima\bio@rightxA
+			\ifdim\@tempdima<\bio@colht \@tempcnta\@ne
+				\let\@elt\bio@putelt
+				\bio@leftxA\bio@newpage\bio@rightxA\fi\fi\fi
+% The following may be redundant.
+	\ifnum\@tempcnta=\z@
+		\let\@elt\bio@putelt\bio@listsave\fi}}
+\def\bio@specialawfulput{{\advance\bio@th-\dimen\bio@pbox
+	\ifdim\bio@th<\bio@colht\bio@newpage
+	\let\bio@newpage\relax\fi\bio@normalawfulput}}
+
+\def\bio@putelt#1{\ifnum\count#1>\z@\else\box#1
+	\nobreak\vskip-2\baselineskip\prevdepth\z@\hbox{}
+	\vskip\baselineskip\fi}
+\def\bio@xvskip#1{\vskip#1\prevdepth\z@}
+\def\bio@newpage{\vskip-\baselineskip\newpage}
+
+\def\bio@nextpage{\bio@newpage \let\bio@list\bio@deferred
+	\bio@th\z@ \bio@addheight\bio@th\bio@list
+	\bio@colht\@colht \advance\bio@colht-\topskip
+	\advance\bio@colht\baselineskip
+	\bio@splitheight\bio@colht \bio@splitpage
+	\bio@splitheight.5\bio@th
+	\let\bio@awfulput\bio@normalawfulput}
+\def\bio@splitpage{\let\bio@listsave\bio@list \bio@split
+	\@tempdima\bio@th \advance\@tempdima-\bio@lhA
+	\ifdim\@tempdima>\bio@colht
+		\let\bio@leftAsave\bio@leftA \bio@th\bio@lhA
+		\let\bio@list\bio@rightA \bio@splitheight\bio@colht
+		\bio@split \edef\bio@list{\bio@leftAsave\bio@leftA}%
+		\advance\bio@th\bio@lhA
+		\let\bio@deferred\bio@rightA
+	\else\def\bio@deferred{}\let\bio@list\bio@listsave\fi}
+
+% \bio@tolerablegap:	maximum tolerable gap between adjacent bio's.
+% \bio@tolerablestretch:maximum stretch of a column.
+
+\@tempdima10\baselineskip		% This might be changed
+\edef\bio@tolerablegap{\the\@tempdima}
+\@tempdima15\baselineskip
+\edef\bio@tolerablelastgap{\the\@tempdima}
+\def\bio@tolerablestretch{2}		% This might be changed
+
+\def\bio@balance{\let\@elt\relax \edef\bio@bstack{%
+		\@elt{{\bio@left}{\bio@right}{}{}{0pt}}}
+	\bio@xbalance}
+\def\bio@xbalance{%
+	\expandafter\bio@popstack\bio@bstack\@nil
+	\let\bio@nextA\bio@xbalance \@tempdima\z@
+	\ifx\bio@left\empty \ifx\bio@right\empty
+		\let\bio@nextA\bio@balanceend
+	\else
+		\bio@addheight\@tempdima\bio@right
+		\edef\bio@leftx{\bio@leftx\bio@vskip{\the\@tempdima}}%
+		\advance\bio@hX\@tempdima
+		\edef\bio@rightx{\bio@rightx\bio@right}\def\bio@right{}%
+		\bio@pushstack \fi\else
+	\ifx\bio@right\empty
+		\bio@addheight\@tempdima\bio@left
+		\edef\bio@rightx{\bio@rightx\bio@vskip{\the\@tempdima}}%
+		\advance\bio@hX\@tempdima
+		\edef\bio@leftx{\bio@leftx\bio@left}\def\bio@left{}%
+		\bio@pushstack \else
+	\bio@car\@tempdima\bio@leftbox\bio@left
+	\bio@car\@tempdimb\bio@rightbox\bio@right
+	\edef\bio@leftx{\bio@leftx\@elt\bio@leftbox}%
+	\edef\bio@rightx{\bio@rightx\@elt\bio@rightbox}%
+	\ifdim\@tempdima>\@tempdimb
+		\advance\bio@hX\@tempdima
+		\let\bio@da\@tempdima\let\bio@db\@tempdimb
+		\bio@ibalance\bio@left\bio@right\bio@leftx\bio@rightx
+	\else	\advance\bio@hX\@tempdimb
+		\let\bio@da\@tempdimb\let\bio@db\@tempdima
+		\bio@ibalance\bio@right\bio@left\bio@rightx\bio@leftx\fi
+	\fi\fi\bio@nextA}
+\def\bio@ibalance#1#2#3#4{\let\bio@nextB\relax
+	\ifx#2\empty 
+		\advance\bio@da-\bio@db
+		\edef#4{#4\bio@vskip{\the\bio@da}}\bio@pushstack\else
+	\bio@car\bio@tempdim\@currbox#2 \advance\bio@db\bio@tempdim
+	\ifdim\bio@da<\bio@db
+		\advance\bio@db-\bio@da
+		\let\@tempa#3\edef#3{#3\bio@vskip{\the\bio@db}}%
+		\let\@tempb#4\edef#4{#4\@elt\@currbox}%
+		\advance\bio@hX\bio@db \bio@pushstack
+		\advance\bio@hX-\bio@db
+		\edef#2{\@elt\@currbox#2}%
+		\advance\bio@tempdim-\bio@db
+		\let#3\@tempa \edef#4{\@tempb\bio@vskip{\the\bio@tempdim}}%
+		\bio@pushstack
+	\else \edef#4{#4\@elt\@currbox}\def\bio@nextB{\bio@ibalance#1#2#3#4}%
+	\fi\fi\bio@nextB}
+\def\bio@balanceend{\bio@awfulfalse \def\bio@bstack{}%
+	\bio@maxgap\z@ \bio@lastgap\z@
+	\bio@checkgap\bio@leftx \bio@checkgap\bio@rightx
+	\ifdim\bio@maxgap>\bio@tolerablegap\relax\bio@awfultrue\fi
+	\ifdim\bio@lastgap>\bio@tolerablelastgap\relax\bio@awfultrue\fi
+	\ifdim\bio@hX>\bio@tolerablestretch\bio@splitheight\bio@awfultrue\fi
+	\ifdim\bio@hX>\bio@colht\bio@awfultrue\fi}
+\def\bio@checkgap#1{{\@tempdima\z@ \@tempdimb\z@ \bio@tempdim\z@
+	\let\@elt\bio@cgelt \let\bio@vskip\bio@cgvskip #1\relax
+	\ifdim\@tempdima>\bio@maxgap \global\bio@maxgap\@tempdima \fi
+	\ifdim\bio@tempdim>\bio@lastgap \global\bio@lastgap\bio@tempdim \fi}}
+\def\bio@cgvskip#1{\advance\bio@tempdim#1\relax
+	\ifdim\bio@tempdim>\@tempdimb \@tempdimb\bio@tempdim\fi}
+\def\bio@cgelt#1{\@tempdima\@tempdimb \bio@tempdim\z@}
+\def\bio@popstack\@elt#1#2\@nil{\edef\bio@bstack{#2}\bio@ipopstack#1}
+\def\bio@ipopstack#1#2#3#4#5{\def\bio@left{#1}\def\bio@right{#2}%
+	\def\bio@leftx{#3}\def\bio@rightx{#4}\bio@hX#5\relax}
+\def\bio@pushstack{\def\bio@bstackx{}%
+	\expandafter\bio@ipushstack\bio@bstack\@elt\@nil}
+\def\bio@ipushstack\@elt#1{\def\@tempc{#1}%
+	\ifx\@tempc\@nnil \edef\bio@bstack{\bio@bstackx\bio@stackelt}%
+		\let\bio@nextC\relax \else
+	\bio@iipushstack#1\fi\bio@nextC}
+\def\bio@iipushstack#1#2#3#4#5{\ifdim#5>\bio@hX
+	\edef\bio@bstackx{\bio@bstackx\bio@stackelt
+		\@elt{{#1}{#2}{#3}{#4}{#5}}}%
+		\let\bio@nextC\bio@pushstackend\else
+	\edef\bio@bstackx{\bio@bstackx
+		\@elt{{#1}{#2}{#3}{#4}{#5}}}%
+		\let\bio@nextC\bio@ipushstack\fi}
+\def\bio@pushstackend#1\@elt\@nil{\edef\bio@bstack{\bio@bstackx#1}}
+\def\bio@stackelt{\@elt{{\bio@left}{\bio@right}{\bio@leftx}{\bio@rightx}%
+	{\the\bio@hX}}}
+\def\bio@addheight#1#2{\def\@elt##1{\advance#1\dimen##1}#2\let\@elt\relax}
+\def\bio@car#1#2#3{\expandafter\bio@icar#3\@nil#1#2#3}
+\def\bio@icar\@elt#1#2\@nil#3#4#5{#3=\dimen#1\relax\def#4{#1}\def#5{#2}}
+
+
+%%%%%% Miscellaneous %%%%%%
+
+\flushbottom
+
+\ifDS@english
+\hbadness9999 \tolerance9999
+\else
+\hbadness5000 \tolerance5000
+\pretolerance\m@ne
+\fi
+
+\input{ipsjcommon.sty}
+
+\twocolumn
+
+\endinput
--- a/Paper/sugi-prosym.tex	Sun Nov 18 02:33:16 2012 +0900
+++ b/Paper/sugi-prosym.tex	Sun Nov 18 03:32:29 2012 +0900
@@ -1,197 +1,1 @@
-\documentclass[private]{ipsjpapers}
-\usepackage[dvipdfmx]{graphicx}
-% Šª”C†”‚Ȃǂ̐ݒè
-%\setcounter{Šª”}{41}
-%\setcounter{†”}{6}
-%\setcounter{volpageoffset}{1234}
-%\Žó•t{12}{2}{4}
-%\Ì˜^{12}{5}{11}
-
-% ƒ†[ƒU‚ª’è‹`‚µ‚œƒ}ƒNƒ‚ȂǁD
-\makeatletter
-\let\@ARRAY\@array \def\@array{\def\<{\inhibitglue}\@ARRAY}
-\def\<{\(\langle\)}
-\def\>{\(\rangle\)}
-\def\|{\verb|}
-\def\Underline{\setbox0\hbox\bgroup\let\\\endUnderline}
-\def\endUnderline{\vphantom{y}\egroup\smash{\underline{\box0}}\\}
-\def\LATEX{\iLATEX\Large}
-\def\LATEx{\iLATEX\normalsize}
-\def\LATex{\iLATEX\small}
-\def\iLATEX#1{L\kern-.36em\raise.3ex\hbox{#1\bf A}\kern-.15em
-    T\kern-.1667em\lower.7ex\hbox{E}\kern-.125emX}
-\def\LATEXe{\ifx\LaTeXe\undefined \LaTeX 2e\else\LaTeXe\fi}
-\def\LATExe{\ifx\LaTeXe\undefined \iLATEX\scriptsize 2e\else\LaTeXe\fi}
-\def\Quote{\list{}{}\item[]}
-\let\endQuote\endlist
-\def\TT{\if@LaTeX@e\tt\fi}
-\def\CS#1{\if@LaTeX@e\tt\expandafter\string\csname#1\endcsname\else
-	$\backslash$#1\fi}
-
-%\checklines	% s‘—‚è‚ðŠm”F‚·‚鎞‚ÉŽg—p
-\begin{document}%{
-% ˜a•¶•\‘è
-\title[Code Segment ‚Æ Data Segment ‚É‚æ‚éƒvƒƒOƒ‰ƒ~ƒ“ƒOŽè–@]%
-{Code Segment ‚Æ Data Segment ‚É‚æ‚éƒvƒƒOƒ‰ƒ~ƒ“ƒOŽè–@ }
-% ‰p•¶•\‘è
-\etitle{How to Programming with Code Segment and Data Segment}
-% Š‘®ƒ‰ƒxƒ‹‚Ì’è‹`
-\affilabel{URYUKYU}{—®‹…‘åŠw\\University of the Ryukyu}
-% ˜a•¶’˜ŽÒ–Œ
-\author{‰Í–ì ^Ž¡\affiref{URYUKYU}\member{19841765}\and
-	™–{ —D\affiref{URYUKYU}\nomember}
-
-	
-% ‰p•¶’˜ŽÒ–Œ
-\eauthor{Shinji Kono\affiref{URYUKYU}\and
-Yu Sugimoto\affiref{URYUKYU}}
-
-
-% ˜A—æi“ŠeŽž‚É•K—vD»”Å—p‚Å‚Í–³Ž‹‚³‚ê‚éDj
-\contact{™–{ —D\\
-	§903-0213 ‰«“ꌧ’†“ªŒSŒŒŽ’¬ŽšçŒŽ1”Ô’n\\
-	—®‹…‘åŠw î•ñHŠw‰È\\
-        TEL: (098)895-8723\qquad FAX: (098)895-8727\\
-	email: sugi@cr.ie.u-ryukyu.ac.jp}
-
-% ˜a•¶ŠT—v
-\begin{abstract}
-–{Œ€‹†Žº‚Å‚Í•ªŽUƒvƒƒOƒ‰ƒ~ƒ“ƒO‚É‚š‚¢‚āAƒf[ƒ^‚ðData SegmentAƒ^ƒXƒN‚ðCode Segment‚Æ‚¢‚€’PˆÊ‚É•ªŠ„‚µ‚Ä‹Lq‚·‚é•û–@‚ð’ñ¥‚µ‚Ä‚¢‚éB
-‚µ‚©‚µA‘Oq‚µ‚œ•û–@‚ðƒvƒƒOƒ‰ƒ}[‚ªˆê‚©‚ç‹Lq‚·‚邱‚Æ‚Í‘å•Ï‚Å‚ ‚éB‚»‚±‚ŁA–{Œ€‹†Žº‚Å•ªŽUƒlƒbƒgƒtƒŒ[ƒ€ƒ[ƒN Alice ‚ðì¬‚µ‚œB–{˜_•¶‚Å‚ÍŽÀÛ‚ÉAlice‚ð—p‚¢‚ÄCode Segment ‚Æ Data Segment ‚É‚æ‚éƒvƒƒOƒ‰ƒ~ƒ“ƒOŽè–@‚Ì—á‚ðŽŠ‚·B
-\end{abstract}
-% ‰p•¶ŠT—v
-\begin{eabstract}
-\end{eabstract}
-
-% •\‘è‚Ȃǂ̏o—Í
-\maketitle
-
-%}{
-
-% –{•¶‚Í‚±‚±‚©‚çŽn‚Ü‚é
-\section{—ðŽj“IŒoˆÜ}
-–{Œ€‹†Žº‚ł́A•À—ñƒ^ƒXƒNŠÇ—ƒtƒŒ[ƒ€ƒ[ƒNCerium‚ÌŠÇ—‚ðs‚È‚Á‚Ä‚¢‚邪A‚»‚̐݌v‚ÆŽÀ‘•‚ðs‚€‚É‚ ‚œ‚èA•À—ñƒvƒƒOƒ‰ƒ~ƒ“ƒO‚Æ•ªŽUƒvƒƒOƒ‰ƒ~ƒ“ƒO
-‚Í–{Ž¿“I‚É‚Í“¯‚¶‚±‚Æ‚ðs‚È‚Á‚Ä‚¢‚邱‚Æ‚ª•ª‚©‚Á‚œB“Á‚ɃwƒeƒƒW[ƒjƒAƒXƒ}ƒ‹ƒ`ƒRƒA‚Å‚ ‚èAƒ[ƒJƒ‹ƒXƒgƒA‚ð‚»‚ê‚Œ‚ê‚̃RƒA‚ªŽ‚Á‚Ä‚¢‚é‚Æ‚¢‚€Cell ‚Ì“ÁˆÙ‚Ȋ‹«‚́A•ªŽUƒvƒƒOƒ‰ƒ~ƒ“ƒOŠÂ‹«‚ƍŽŠ‚µ‚Ä‚¢‚éB‚»‚ê‚ç‚𓥂܂Š‚āACerium‚̃^ƒXƒNŠÇ—Žè–@‚𕪎U‚ɉž—p‚Å‚«‚È‚¢‚©‚ƍl‚Š‚œB
-
-
-Cerium‚É’u‚¢‚Ä‚àAƒ^ƒXƒN‚Æ‚»‚ê‚Ì“üo—̓f[ƒ^‚ÌŽæ‚舵‚¢‚͓‚¢‰Û‘è‚Å‚ ‚éBƒf[ƒ^‚𑀍삷‚éAPI‚ðl‚Š‚āAƒ^ƒXƒN‚ðŽ©‘R‚É‹Lq‚µAŒø—Š—Ç‚­ŽÀs‚·‚é•û–@‚ðl‚Š‚Ä‚«‚œB‚»‚±‚ōl‚Š‚ç‚ê‚œŽè–@‚ªAƒf[ƒ^‚ðDataSegmentAƒ^ƒXƒN‚ðCodeSegment‚Æ‚¢‚€’PˆÊ‚É•ªŠ„‚µ‚Ä‹Lq‚·‚é•û–@‚Å‚ ‚éB
-%}{
-
-\section{•ªŽUƒlƒbƒgƒtƒŒ[ƒ€ƒ[ƒNAlice}\label{sec:ITEM}
-\subsection{Alice‚Æ‚Í}
-Alice‚Í–{Œ€‹†Žº‚Ì‘²‹Æ¶‚Å‚ ‚éÔ—äˆêŽ÷Ž‚ªA–{Œ€‹†Žº‚ÅŠJ”­‚ðs‚È‚Á‚Ä‚¢‚é•À—ñƒ^ƒXƒNŠÇ—ƒtƒŒ[ƒ€ƒ[ƒN Cerium ‚ƐæsŒ€‹†‚Å‚ ‚é Federated Linda ‚ÌŠJ”­‚ð’Ê‚µ‚Ä“Ÿ‚ç‚ê‚œ’mŒ©‚𐶂©‚³‚ê‚Ä‚¢‚éB
-Federated Linda ‚̐݌v‚̓Vƒ“ƒOƒ‹ƒXƒŒƒbƒh‚ōs‚í‚ê‚Ä‚¢‚éB‚µ‚©‚µA‹ß”N‚ł̓}ƒ‹ƒ`ƒRƒA‚̃}ƒVƒ“‚ªŽå—¬‚Æ‚È‚Á‚Ä‚¢‚éB«—ˆ“I‚ɂ̓ƒj[ƒRƒA‚̃}ƒVƒ“‚ªŽå—¬‚É‚È‚Á‚Ä‚­‚é‚ƍl‚Š‚ç‚ê‚é‚»‚Ì‚æ‚€‚È”wŒi‚𓥂܂Š‚ÄAlice‚̓}ƒ‹ƒ`ƒXƒŒƒbƒhŒü‚¯‚ɐ݌v‚³‚ê‚Ä‚¢‚éB
-
-Alice‚ÍData Segment‚ÆCode Segment‚Æ‚¢‚€’PˆÊ‚Ńf[ƒ^‚Əˆ—‚ð×‚©‚­•ªŠ„‚µA‚»‚ê‚Œ‚ê‚̈ˑ¶ŠÖŒW‚ð‹Lq‚µ‚Ä•ªŽUƒvƒƒOƒ‰ƒ€‚ðì¬‚·‚éB‚Ü‚œA‘Œ‚̃}ƒVƒ“‚Ƃ̐ڑ±ƒgƒ|ƒƒW[‚̍\¬‚Ì‹@”\‚à—L‚µ‚Ä‚¢‚é‚̂ц[ƒU[‚̓gƒ|ƒƒW[\¬Œã‚̏ˆ—‚ð‹Lq‚·‚é‚Ÿ‚¯‚Å‚æ‚¢B
-%}{
-\subsection{Data Segment}
-Alice‚Å‚ÍData Semgnet‚ðƒf[ƒ^ƒx[ƒX‚Æ‚µ‚Ä—˜—p‚µ‚Ä‚¢‚éBKeyValueStore‚ÅŽÀ‘•‚³‚ê‚Ä‚š‚èAƒL[‚²‚ƂɃŠƒXƒg‚ðŽ‚Á‚Ä‚¢‚éBData Segment API‚ð—p‚¢‚邱‚ƂŁAƒŠƒXƒg‚Ƀf[ƒ^‚ð’ljÁAíœ‚ð“K‹Xs‚€‚±‚Æ‚ª‚Å‚«‚éB
-
-\subsubsection{Data Segment Manager}
-‘å—Ê‚ÌData Segment‚ðŠÇ—‚·‚é‚Ì‚ªData Segment Manager‚Å‚ ‚éBData Segment Manager‚Í•¶Žš—ñ‚̃L[‚ÅData Segment‚𐮗‚·‚éBŠeƒL[‚²‚ƂɃLƒ…[\‘¢‚ðŽ‚Á‚Ä‚¢‚éB‚»‚ê‚ç‚ðData Segment API‚ð—p‚¢‚Ä‘€ì‚·‚éB
-ƒf[ƒ^‚̓ǂݏo‚µ("peek" ‚Ü‚œ‚Í "take")Žž‚ɁAŠó–]‚̃f[ƒ^‚ª‚È‚©‚Á‚œê‡AƒuƒƒbƒLƒ“ƒO‚ðs‚€‹@”\‚ðŽ‚ÂB
-‚µ‚©‚µAƒuƒƒbƒLƒ“ƒO‚Æ‚¢‚Á‚Ä‚à‚»‚±‚Å“¯Šú‚·‚é‚킯‚Å‚Í‚È‚¢B
-”ñ“¯Šú‚Ńf[ƒ^‚ð’ʐM‚·‚éB
-‚»‚Ì‚œ‚߁A "peek" ‚Æ "take" ‚Í‘Œ‚Ì API ‚Ƃ͈ႢAƒŒƒXƒ|ƒ“ƒX‚ª”­¶‚·‚éB
-\subsubsection{Data Segment API}
-•\”ԍ†)‚ª—pˆÓ‚³‚ê‚Ä‚¢‚éData Segment API‚Å‚ ‚éB‚±‚ê‚ç‚ð—p‚¢‚ăf[ƒ^‚Ì‘—ŽóM‚ðs‚€B
-\begin{itemize}
-\item {\ttfamily void put(String key, Value val)}
-\item {\ttfamily void update(String key, Value val)}
-\item {\ttfamily void peek(Receiver receiver, String key, int id)}
-\item {\ttfamily void take(Receiver receiver, String key, int id)}
-\end{itemize}
-
-\subsubsection*{"put"}
-"put" ‚̓f[ƒ^‚ð’ljÁ‚·‚é‚œ‚ß‚Ì API ‚Å‚ ‚éB
-
-"put" ‚͎󂯎æ‚Á‚œƒf[ƒ^ val ‚ð Data Segment “à‚̃Lƒ…[‚ɑ΂µ‚ăGƒ“ƒLƒ…[‚·‚éB
-‚±‚ÌŽžAƒL[‚²‚Ƃɏd•¡‚µ‚È‚¢˜A”Ô‚Ì ID ‚ðŽó‚¯Žæ‚Á‚œ‡‚ɐU‚éB(} \ref{fig:put})
-\subsubsection*{"update"}
-"update" ‚̓f[ƒ^‚ð’u‚«Š·‚Š‚é‚œ‚ß‚Ì API ‚Å‚ ‚éB
-
-"update" ‚̓Lƒ…[‚̐擪‚É‚ ‚éƒf[ƒ^‚ð‚ЂƂ‚Ÿ‚¯íœ‚·‚éB
-‚»‚ÌŒã‚Í "put" ‚Æ“¯‚¶‚­A Žó‚¯Žæ‚Á‚œƒf[ƒ^ val ‚ð Data Segment “à‚̃Lƒ…[‚ɑ΂µ‚ăGƒ“ƒLƒ…[‚·‚éB
-‚±‚ÌŽžAƒL[‚²‚Ƃɏd•¡‚µ‚È‚¢˜A”Ô‚Ì ID ‚ðŽó‚¯Žæ‚Á‚œ‡‚ɐU‚éB(} \ref{fig:update})
-\subsubsection*{"peek"}
-"peek" ‚̓f[ƒ^‚ð“ǂݍž‚Þ‚œ‚ß‚Ì API ‚Å‚ ‚éB
-
-"peek" ‚Í‘O‰ñ“ǂݍž‚ñ‚Ÿƒf[ƒ^‚Ì id ‚ðˆø”‚ÅŽw’è‚·‚éBÈ—ª‚µ‚œê‡‚́A 0 ‚ª id ‚Æ‚µ‚Ä“n‚³‚ê‚éB
-id ‚æ‚è‚à’l‚Ì‘å‚«‚¢ id ‚̃f[ƒ^‚ªƒLƒ…[‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚ê‚΁A‚»‚̃f[ƒ^‚ð receiver ‚É•Ô‚·B
-‚à‚µ id ˆÈ‰º‚̃f[ƒ^‚µ‚©–³‚¢‚È‚ç‚΁Aƒf[ƒ^‚̍XV‚ª‘O‰ñ‚Ì "peek" ”­sŽž‚©‚çXV‚ª–³‚¢‚à‚̂ƍl‚ŠAƒŠƒXƒg‚ÉŠi”[‚³‚ê‚Ä•Û—¯‚³‚ê‚éB(} \ref{fig:peek})
-
-"take" ‚â "update" ‚É‚æ‚èƒf[ƒ^‚̍XV‚ª‚ ‚ê‚΁A "peek" ‚ª’Œ‚¿‚ÉŽÀs‚³‚ê‚éB
-\subsubsection*{"take"}
-"take" ‚àƒf[ƒ^‚ð“ǂݍž‚Þ‚œ‚ß‚Ì API ‚Å‚ ‚éB
-Šî–{“I‚È id ‚ÉŠÖ‚·‚é•”•ª‚Í "peek" ‚Æ“¯‚¶‚Å‚ ‚éB
-
-"peek" ‚Æ‚ÌŒˆ’è“I‚ȈႢ‚́A“ǂݍž‚Ü‚ê‚œƒf[ƒ^‚Í Data Segment “à‚̃Lƒ…[‚©‚çŽæ‚菜‚©‚ê‚é‚Æ‚¢‚€‚±‚Æ‚Å‚ ‚éB(} \ref{fig:take})
-
-
-\subsection{Code Segment}
-Code Segment‚̓^ƒXƒN‚Ì‚±‚Æ‚Å‚ ‚éBCode Segment‚ðƒ†[ƒU[‚ª‹Lq‚·‚é‚Æ‚«‚ɁACode Segment “à‚ÅŽg—p‚·‚éData Segment ‚ð‹Lq‚µAˆË‘¶ŠÖŒW‚ðì‚éBˆË‘¶ŠÖŒW‚É‚æ‚èAŽÀs‚³‚ê‚鏇”Ô‚ªˆêˆÓ‚ÉŒˆ‚Ü‚éBŽÀÛ‚ÉŽg—p‚·‚éData Segment ‚ÍCode Segment‚Ì“üo—Í‚É‘Š“–‚·‚éB‚»‚ê‚Œ‚êAInput Data SegmentAOutput Data Segment‚Æ‚·‚éB
-\subsubsection{Code Segment‚ÌŽÀs•û–@}
-Code Semgnet‚ðŽÀs‚·‚é‚œ‚ß‚É‚ÍStart Code Segment‚Æ‚¢‚€Code Segment‚ðŽÀs‚³‚¹‚é•K—v‚ª‚ ‚éB
-Start Code Segment‚Í‚Ç‚ÌData Segment‚É‚àˆË‘¶‚µ‚È‚¢B‚‚܂èInput Data Segment‚ðŽ‚œ‚È‚¢B‚±‚ÌCode Segment‚ðmainƒƒ\ƒbƒh“à‚Ånew‚µAexecuteƒƒ\ƒbƒh‚ðŒÄ‚Ô‚±‚Æ‚ÅŽÀs‚ðŠJŽn‚³‚¹‚邱‚Æ‚ª‚Å‚«‚éB
-
-
-\subsubsection{Code Segment‚Ì‹Lq•û–@}
-Code Segment‚ðƒ†[ƒU[‚ª‹Lq‚·‚éÛ‚É‚ÍCodeSegment‚ðŒp³‚µ‚Ä‹Lq‚·‚éB‚»‚ÌCodeSegment‚ÍInputDataSegmentManager‚ÆOutputDataSegmentManager‚ð—˜—p‚·‚邱‚Æ‚ª‚Å‚«‚éB
-\subsubsection*{InputDataSegmentManager}
-InputDataSegmentManager‚ÍCode Segment‚Ìids‚Æ‚¢‚€ƒtƒB[ƒ‹ƒh‚ð—p‚¢‚ăAƒNƒZƒX‚·‚éB
-\begin{itemize}
-\item {\ttfamily Receiver create(CommandType type)}
-\end{itemize}
-create‚ŃRƒ}ƒ“ƒh‚ªŽÀs‚³‚ê‚œÛ‚ÉŽæ“Ÿ‚³‚ê‚éData Segment‚ªŠi”[‚³‚ê‚éŽó‚¯ŽM‚ðì‚éBˆø”‚É‚ÍCommandType‚ªŽæ‚ç‚êAŽw’è‚Å‚«‚éCommandType‚ÍPEEK‚Ü‚œ‚ÍTAKE‚Å‚ ‚éB
-\begin{itemize}
-\item {\ttfamily void setKey(String managerKey, String key, int id)}
-\end{itemize}
-setKeyƒƒ\ƒbƒh‚É‚æ‚èA‚Ç‚±‚ÌData Segment‚Ì‚ ‚ékey‚ɑ΂µ‚Äpeek‚Ü‚œ‚ÍtakeƒRƒ}ƒ“ƒh‚ðŽÀs‚³‚¹‚é‚©‚ðŽw’è‚·‚邱‚Æ‚ª‚Å‚«‚éB
-ƒRƒ}ƒ“ƒh‚ÌŒ‹‰Ê‚ªƒŒƒXƒ|ƒ“ƒX‚Æ‚µ‚Ä“Í‚«ŽŸ‘æCode Segment‚ÍŽÀs‚³‚ê‚éB
-\subsubsection*{OutputDataSegmentManager}
-OutputDataSegmentManager‚ÍCode Segment‚Ìods‚Æ‚¢‚€ƒtƒB[ƒ‹ƒh‚ð—p‚¢‚ăAƒNƒZƒX‚·‚éB
-OutPutDataSegmentManager‚Í"put"‚Ü‚œ‚Í"update"‚ðŽÀs‚·‚邱‚Æ‚ª‚Å‚«‚éB
-\begin{itemize}
-\item {\ttfamily void put(String managerKey, String key, \\ Value val)}
-\item {\ttfamily void update(String managerKey, String key, Value val)}
-\end{itemize}
-
-\subsection{Topology Manager}
-TopologyManager‚ÍAlice“¯Žm‚̐ڑ±ƒgƒ|ƒƒW[‚ðŠÇ—‚·‚éBTopologyManagerŠÖ˜A‚̒ʐMˆ—‚ÍCode Segment‚ÅŽÀ‘•‚µ‚Ä‚ ‚éB
-TopologyManager‚̓gƒ|ƒƒW[ƒtƒ@ƒCƒ‹‚ð“ǂݍž‚݁AŽQ‰Á‚ð•\–Ÿ‚µ‚œƒNƒ‰ƒCƒAƒ“ƒg(ˆÈ‰ºATopology Node)‚ɐڑ±‚·‚é‚ׂ«ƒNƒ‰ƒCƒAƒ“ƒg‚ÌIPƒAƒhƒŒƒX‚âƒ|[ƒg”ԍ†AÚ‘±–Œ‚ð‘—‚èAƒgƒ|ƒƒW[ƒtƒ@ƒCƒ‹‚É‹Lq‚³‚ê‚œ’Ê‚è‚Ƀgƒ|ƒƒW[‚ðì¬‚·‚éB
-
-\subsection{Topology Manager‚̐ݒèƒtƒ@ƒCƒ‹}
-Topology Manager‚̓gƒ|ƒƒW[ƒtƒ@ƒCƒ‹‚ð“ǂݍž‚Þ‚ªAƒgƒ|ƒƒW[ƒtƒ@ƒCƒ‹Ž©‘Ì‚ÍDOT Language‚Æ‚¢‚€ŒŸŒê‚Å‹Lq‚³‚ê‚éB
-DOT Language‚Ƃ̓vƒŒ[ƒ“ƒeƒLƒXƒg‚ð—p‚¢‚āAƒf[ƒ^\‘¢‚Æ‚µ‚ẴOƒ‰ƒt‚ð•\Œ»‚·‚é‚œ‚߂́Aƒf[ƒ^‹LqŒŸŒê‚̈êŽí‚Å‚ ‚éB‚±‚ÌDOT Language‚̃Oƒ‰ƒt‚ð—˜—p‚µ‚āAƒNƒ‰ƒCƒAƒ“ƒgŠÔ‚̐ڑ±‚ð•\Œ»‚·‚éBDOT Languageƒtƒ@ƒCƒ‹‚ÍdotƒRƒ}ƒ“ƒh‚ð—p‚¢‚āAƒOƒ‰ƒt‚̉摜ƒtƒ@ƒCƒ‹‚ðo—Í‚·‚邱‚Æ‚ª‚Å‚«‚é‚̂ŁA‹Lq‚µ‚œƒgƒ|ƒƒW[‚ª³‚µ‚¢‚±‚Æ‚ð‰ÂŽ‹‰»‚µ‚ÄŠm”F‚·‚邱‚Æ‚ª‚Å‚«‚éB
-
-ƒNƒ‰ƒCƒAƒ“ƒgŠÔ‚̐ڑ±‚É‚Ílabel‚ð—p‚¢‚Ä–Œ‘O‚ªŠ„‚èU‚ç‚ê‚Ä‚š‚èA‚±‚̐ڑ±–Œ‚ð—p‚¢‚ㆁ[ƒU[‚ÍData Segment Manager‚ɃAƒNƒZƒX‚·‚邱‚Æ‚ª‚Å‚«‚éB
-‘Oq‚µ‚œReceiver ‚ÉsetKey‚ðs‚€ÛAods‚Åput‚Ü‚œ‚Íupdate‚·‚éÛ‚̈ø”‚ÌmanagerKey‚ª‚±‚ê‚É‚ ‚œ‚éB
-
-\subsection{Topology Manager‚ÌŽg—p•û–@}
-Topology Node‚ð‹N“®‚·‚éÛ‚ɃRƒ}ƒ“ƒhƒ‰ƒCƒ“ˆø”‚Æ‚µ‚ÄTopology Manager‚ÌIPƒAƒhƒŒƒX‚ƃ|[ƒg”ԍ†‚ðŽw’è‚ð‚·‚éB
-‚»‚µ‚ÄmainŠÖ”“à‚ÅTopologyNode‚ðnew‚ðs‚Š‚Ηǂ¢B
-TopologyNode‚Ì‘æˆêˆø”‚Í Alice ƒf[ƒ‚ƒ“‚̐ݒèƒIƒuƒWƒFƒNƒgA‘æ“ñˆø”‚ÍStart Code Segment‚Å‚ ‚éB
-‚±‚±‚ÅŽw’肵‚œAStart Code Segment‚ªƒgƒ|ƒƒW[‚ªŠ®¬‚µ‚œŒãŽÀs‚³‚ê‚éB
-
-%}{
-\section{ƒQ[ƒ€‚Ì—á‘è}\label{sec:Enum}\label{sec:item}
-\subsection{…‘°ŠÙ}
-¡‰ñì¬‚µ‚œ—á‘è‚͐…‘°ŠÙ‚Å‚ ‚éB•¡”‚̃Nƒ‰ƒCƒAƒ“ƒg‚̃fƒBƒXƒvƒŒƒC‚𕡐”‚Ì‹›‚ªˆÚ“®‚µ‚Ä‚¢‚­‚à‚Ì‚Å‚ ‚éB‹›‚͉æ–Ê‚Ì’[‚܂ňړ®‚·‚é‚ÆŽ©•ª‚̉æ–ʏォ‚ç‚͏Á‚ŠA•Ê‚̃Nƒ‰ƒCƒAƒ“ƒg‚̉æ–Ê‚Ì’[‚©‚ç‹›‚ªo‚Ä‚­‚éB‚Ü‚œA‹›‚Ì‚€‚¿ˆê•C‚̓Nƒ‰ƒCƒAƒ“ƒg‚ª’ŒÚ‘€ì‚·‚邱‚Æ‚ª‚Å‚«‚éBƒgƒ|ƒƒW[‚ÍTopologyManager‚É‚æ‚èƒcƒŠ[ó‚ɍ\¬‚µ‚Ä‚ ‚éB
-\subsection{ƒf[ƒ^‚Ì“`”À}
-
-\begin{enumerate}
-\item ƒ†[ƒU[‚ª‹›‚𑀍삷‚é‚Ü‚œ‚ÍCode Segment‚É‚æ‚è‹›‚̍À•W‚ªXV‚³‚ê‚éB
-\item ‰æ–Ê‚É•\ŽŠ‚³‚¹‚é‚œ‚ß‚ÌSetLocation (Code Segment)‚ªŽÀs‚³‚êŽÀÛ‚É‹›‚̃IƒuƒWƒFƒNƒg‚ɃZƒbƒg‚³‚ê‰æ–Ê‚É”œ‰f‚³‚ê‚éB
-\item Update(Code Segment)‚ÉFishPosition(‹›‚̍À•Wƒf[ƒ^)‚ª“n‚³‚ê‚éB
-\item Update‚Élist(‘—MŽÒƒŠƒXƒg)‚ª“n‚³‚ê‚éB
-\item Update‚ªŽÀs‚³‚êAlist‚ðŒ³‚Éƒf[ƒ^‚ª‘—M‚³‚ê‚éB‚œ‚Ÿ‚µA‚±‚ÌŽž‚ÉFishPosition‚É‚Í‘—MŒ³î•ñ‚ª•t‰Á‚³‚ê‚Ä‚¢‚é‚̂ŁA‘—MŒ³‚É‚Í‘—M‚³‚ê‚È‚¢B
-\item Šeclient‚Å2 - 4‚ªŽÀs‚³‚ê‚éB
-\end{enumerate}
-
-\section{•]‰¿}
-
-
-\section{‚܂Ƃ߂ƍ¡Œã‚̉ۑè}
-
-
-\end{document}
+\documentclass[private]{ipsjpapers}
% 巻数号数などの蚭定
%\setcounter{巻数}{41}
%\setcounter{号数}{6}
%\setcounter{volpageoffset}{1234}
%\受付{12}{2}{4}
%\採録{12}{5}{11}

% ナヌザが定矩したマクロなど
\makeatletter
\let\@ARRAY\@array \def\@array{\def\<{\inhibitglue}\@ARRAY}
\def\<{\(\langle\)}
\def\>{\(\rangle\)}
%\def\|{\verb|}
\def\Underline{\setbox0\hbox\bgroup\let\\\endUnderline}
\def\endUnderline{\vphantom{y}\egroup\smash{\underline{\box0}}\\}
\def\LATEX{\iLATEX\Large}
\def\LATEx{\iLATEX\normalsize}
\def\LATex{\iLATEX\small}
\def\iLATEX#1{L\kern-.36em\raise.3ex\hbox{#1\bf A}\kern-.15em
    T\kern-.1667em\lower.7ex\hbox{E}\kern-.125emX}
\def\LATEXe{\ifx\LaTeXe\undefined \LaTeX 2e\else\LaTeXe\fi}
\def\LATExe{\ifx\LaTeXe\undefined \iLATEX\scriptsize 2e\else\LaTeXe\fi}
\def\Quote{\list{}{}\item[]}
\let\endQuote\endlist
\def\TT{\if@LaTeX@e\tt\fi}
\def\CS#1{\if@LaTeX@e\tt\expandafter\string\csname#1\endcsname\else
	$\backslash$#1\fi}

%\checklines	% 行送りを確認する時に䜿甚
\begin{document}%{
% 和文衚題
\title[Code Segment ず Data Segment によるプログラミング手法]%
{Code Segment ず Data Segment によるプログラミング手法 }
% 英文衚題
\etitle{How to Programming with Code Segment and Data Segment}
% 所属ラベルの定矩
\affilabel{URYUKYU}{琉球倧孊\\University of the Ryukyu}
% 和文著者名
\author{河野 真治\affiref{URYUKYU}\member{19841765}\and
	杉本 優\affiref{URYUKYU}\nomember}

	
% 英文著者名
\eauthor{Shinji Kono\affiref{URYUKYU}\and
Yu Sugimoto\affiref{URYUKYU}}


% 連絡先投皿時に必芁補版甚では無芖される
\contact{杉本 優\\
	〒903-0213 沖瞄県䞭頭郡西原町字千原1番地\\
	琉球倧孊 情報工孊科\\
        TEL: (098)895-8723\qquad FAX: (098)895-8727\\
	email: sugi@cr.ie.u-ryukyu.ac.jp}

% 和文抂芁
\begin{abstract}
本研究宀では分散プログラミングにおいお、デヌタをData Segment、タスクをCode Segmentずいう単䜍に分割しお蚘述する方法を提唱しおいる。
しかし、前述した方法をプログラマヌが䞀から蚘述するこずは倧倉である。そこで、本研究宀で分散ネットフレヌムワヌク Alice を䜜成した。本論文では実際にAliceを甚いおCode Segment ず Data Segment によるプログラミング手法の䟋を瀺す。
\end{abstract}
% 英文抂芁
\begin{eabstract}
\end{eabstract}

% 衚題などの出力
\maketitle

%}{

% 本文はここから始たる
\section{歎史的経緯}
本研究宀では、䞊列タスク管理フレヌムワヌクCeriumの管理を行なっおいるが、その蚭蚈ず実装を行うにあたり、䞊列プログラミングず分散プログラミング
は本質的には同じこずを行なっおいるこずが分かった。特にヘテロゞヌニアスマルチコアであり、ロヌカルストアをそれぞれのコアが持っおいるずいうCell の特異な環境は、分散プログラミング環境ず告瀺しおいる。それらを螏たえお、Ceriumのタスク管理手法を分散に応甚できないかず考えた。


Ceriumに眮いおも、タスクずそれの入出力デヌタの取り扱いは難しい課題である。デヌタを操䜜するAPIを考えお、タスクを自然に蚘述し、効率良く実行する方法を考えおきた。そこで考えられた手法が、デヌタをDataSegment、タスクをCodeSegmentずいう単䜍に分割しお蚘述する方法である。
%}{

\section{分散ネットフレヌムワヌクAlice}\label{sec:ITEM}
\subsection{Aliceずは}
Aliceは本研究宀の卒業生である赀嶺䞀暹氏が、本研究宀で開発を行なっおいる䞊列タスク管理フレヌムワヌク Cerium ず先行研究である Federated Linda の開発を通しお埗られた知芋を生かされおいる。
Federated Linda の蚭蚈はシングルスレッドで行われおいる。しかし、近幎ではマルチコアのマシンが䞻流ずなっおいる。将来的にはメニヌコアのマシンが䞻流になっおくるず考えられるそのような背景を螏たえおAliceはマルチスレッド向けに蚭蚈されおいる。

AliceはData SegmentずCode Segmentずいう単䜍でデヌタず凊理を现かく分割し、それぞれの䟝存関係を蚘述しお分散プログラムを䜜成する。たた、他のマシンずの接続トポロゞヌの構成の機胜も有しおいるのでナヌザヌはトポロゞヌ構成埌の凊理を蚘述するだけでよい。
%}{
\subsection{Data Segment}
AliceではData Semgnetをデヌタベヌスずしお利甚しおいる。KeyValueStoreで実装されおおり、キヌごずにリストを持っおいる。Data Segment APIを甚いるこずで、リストにデヌタを远加、削陀を適宜行うこずができる。

\subsubsection{Data Segment Manager}
倧量のData Segmentを管理するのがData Segment Managerである。Data Segment Managerは文字列のキヌでData Segmentを敎理する。各キヌごずにキュヌ構造を持っおいる。それらをData Segment APIを甚いお操䜜する。
デヌタの読み出し("peek" たたは "take")時に、垌望のデヌタがなかった堎合、ブロッキングを行う機胜を持぀。
しかし、ブロッキングずいっおもそこで同期するわけではない。
非同期でデヌタを通信する。
そのため、 "peek" ず "take" は他の API ずは違い、レスポンスが発生する。
\subsubsection{Data Segment API}
衚番号)が甚意されおいるData Segment APIである。これらを甚いおデヌタの送受信を行う。
\begin{itemize}
\item {\ttfamily void put(String key, Value val)}
\item {\ttfamily void update(String key, Value val)}
\item {\ttfamily void peek(Receiver receiver, String key, int id)}
\item {\ttfamily void take(Receiver receiver, String key, int id)}
\end{itemize}

\subsubsection*{"put"}
"put" はデヌタを远加するための API である。

"put" は受け取ったデヌタ val を Data Segment 内のキュヌに察しお゚ンキュヌする。
この時、キヌごずに重耇しない連番の ID を受け取った順に振る。

%(図 \ref{fig:put})
\subsubsection*{"update"}
"update" はデヌタを眮き換えるための API である。

"update" はキュヌの先頭にあるデヌタをひず぀だけ削陀する。
その埌は "put" ず同じく、 受け取ったデヌタ val を Data Segment 内のキュヌに察しお゚ンキュヌする。
この時、キヌごずに重耇しない連番の ID を受け取った順に振る。
%(図 \ref{fig:update})
\subsubsection*{"peek"}
"peek" はデヌタを読み蟌むための API である。

"peek" は前回読み蟌んだデヌタの id を匕数で指定する。省略した堎合は、 0 が id ずしお枡される。
id よりも倀の倧きい id のデヌタがキュヌに含たれおいれば、そのデヌタを receiver に返す。
もし id 以䞋のデヌタしか無いならば、デヌタの曎新が前回の "peek" 発行時から曎新が無いものず考え、リストに栌玍されお保留される。
%(図 \ref{fig:peek})

"take" や "update" によりデヌタの曎新があれば、 "peek" が盎ちに実行される。
\subsubsection*{"take"}
"take" もデヌタを読み蟌むための API である。
基本的な id に関する郚分は "peek" ず同じである。

"peek" ずの決定的な違いは、読み蟌たれたデヌタは Data Segment 内のキュヌから取り陀かれるずいうこずである。
%(図 \ref{fig:take})


\subsection{Code Segment}
Code Segmentはタスクのこずである。Code Segmentをナヌザヌが蚘述するずきに、Code Segment 内で䜿甚するData Segment を蚘述し、䟝存関係を䜜る。䟝存関係により、実行される順番が䞀意に決たる。実際に䜿甚するData Segment はCode Segmentの入出力に盞圓する。それぞれ、Input Data Segment、Output Data Segmentずする。
\subsubsection{Code Segmentの実行方法}
Code Semgnetを実行するためにはStart Code SegmentずいうCode Segmentを実行させる必芁がある。
Start Code SegmentはどのData Segmentにも䟝存しない。぀たりInput Data Segmentを持たない。このCode Segmentをmainメ゜ッド内でnewし、executeメ゜ッドを呌ぶこずで実行を開始させるこずができる。


\subsubsection{Code Segmentの蚘述方法}
Code Segmentをナヌザヌが蚘述する際にはCodeSegmentを継承しお蚘述する。そのCodeSegmentはInputDataSegmentManagerずOutputDataSegmentManagerを利甚するこずができる。
\subsubsection*{InputDataSegmentManager}
InputDataSegmentManagerはCode Segmentのidsずいうフィヌルドを甚いおアクセスする。
\begin{itemize}
\item {\ttfamily Receiver create(CommandType type)}
\end{itemize}
createでコマンドが実行された際に取埗されるData Segmentが栌玍される受け皿を䜜る。匕数にはCommandTypeが取られ、指定できるCommandTypeはPEEKたたはTAKEである。
\begin{itemize}
\item {\ttfamily void setKey(String managerKey, String key, int id)}
\end{itemize}
setKeyメ゜ッドにより、どこのData Segmentのあるkeyに察しおpeekたたはtakeコマンドを実行させるかを指定するこずができる。
コマンドの結果がレスポンスずしお届き次第Code Segmentは実行される。
\subsubsection*{OutputDataSegmentManager}
OutputDataSegmentManagerはCode Segmentのodsずいうフィヌルドを甚いおアクセスする。
OutPutDataSegmentManagerは"put"たたは"update"を実行するこずができる。
\begin{itemize}
\item {\ttfamily void put(String managerKey, String key, \\ Value val)}
\item {\ttfamily void update(String managerKey, String key, Value val)}
\end{itemize}

\subsection{Topology Manager}
TopologyManagerはAlice同士の接続トポロゞヌを管理する。TopologyManager関連の通信凊理はCode Segmentで実装しおある。
TopologyManagerはトポロゞヌファむルを読み蟌み、参加を衚明したクラむアント(以䞋、Topology Node)に接続するべきクラむアントのIPアドレスやポヌト番号、接続名を送り、トポロゞヌファむルに蚘述された通りにトポロゞヌを䜜成する。

\subsection{Topology Managerの蚭定ファむル}
Topology Managerはトポロゞヌファむルを読み蟌むが、トポロゞヌファむル自䜓はDOT Languageずいう蚀語で蚘述される。
DOT Languageずはプレヌンテキストを甚いお、デヌタ構造ずしおのグラフを衚珟するための、デヌタ蚘述蚀語の䞀皮である。このDOT Languageのグラフを利甚しお、クラむアント間の接続を衚珟する。DOT Languageファむルはdotコマンドを甚いお、グラフの画像ファむルを出力するこずができるので、蚘述したトポロゞヌが正しいこずを可芖化しお確認するこずができる。

クラむアント間の接続にはlabelを甚いお名前が割り振られおおり、この接続名を甚いおナヌザヌはData Segment Managerにアクセスするこずができる。
前述したReceiver にsetKeyを行う際、odsでputたたはupdateする際の匕数のmanagerKeyがこれにあたる。

\subsection{Topology Managerの䜿甚方法}
Topology Nodeを起動する際にコマンドラむン匕数ずしおTopology ManagerのIPアドレスずポヌト番号を指定をする。
そしおmain関数内でTopologyNodeをnewを行えば良い。
TopologyNodeの第䞀匕数は Alice デヌモンの蚭定オブゞェクト、第二匕数はStart Code Segmentである。
ここで指定した、Start Code Segmentがトポロゞヌが完成した埌実行される。

%}{
\section{ゲヌムの䟋題}\label{sec:Enum}\label{sec:item}
\subsection{氎族通}
今回䜜成した䟋題は氎族通である。耇数のクラむアントのディスプレむを耇数の魚が移動しおいくものである。魚は画面の端たで移動するず自分の画面䞊からは消え、別のクラむアントの画面の端から魚が出おくる。たた、魚のうち䞀匹はクラむアントが盎接操䜜するこずができる。トポロゞヌはTopologyManagerによりツリヌ状に構成しおある。
\subsection{デヌタの䌝搬}

\begin{enumerate}
\item ナヌザヌが魚を操䜜するたたはCode Segmentにより魚の座暙が曎新される。
\item 画面に衚瀺させるためのSetLocation (Code Segment)が実行され実際に魚のオブゞェクトにセットされ画面に反映される。
\item Update(Code Segment)にFishPosition(魚の座暙デヌタ)が枡される。
\item Updateにlist(送信者リスト)が枡される。
\item Updateが実行され、listを元にデヌタが送信される。ただし、この時にFishPositionには送信元情報が付加されおいるので、送信元には送信されない。
\item 各clientで2 - 4が実行される。
\end{enumerate}

\section{評䟡}


\section{たずめず今埌の課題}


\end{document}
\ No newline at end of file