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:	2sŽæ‚è
% others:	1sŽæ‚è
%
% 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 2sŽæ‚è 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 ŽQl•¶Œ£}}}
\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—vD»”Å—p‚Å‚Í–³Ž‹‚³‚ê‚éDj
-\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 SegmentAƒ^ƒXƒN‚ðCode Segment‚Æ‚¢‚¤’PˆÊ‚É•ªŠ„‚µ‚Ä‹Lq‚·‚é•û–@‚ð’ñ¥‚µ‚Ä‚¢‚éB
-‚µ‚©‚µA‘Oq‚µ‚½•û–@‚ðƒvƒƒOƒ‰ƒ}[‚ªˆê‚©‚ç‹Lq‚·‚邱‚Æ‚Í‘å•Ï‚Å‚ ‚é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‚É‹Lq‚µAŒø—¦—Ç‚­ŽÀs‚·‚é•û–@‚ðl‚¦‚Ä‚«‚½B‚»‚±‚Ål‚¦‚ç‚ꂽŽè–@‚ªAƒf[ƒ^‚ðDataSegmentAƒ^ƒXƒN‚ðCodeSegment‚Æ‚¢‚¤’PˆÊ‚É•ªŠ„‚µ‚Ä‹Lq‚·‚é•û–@‚Å‚ ‚é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‚ð‹Lq‚µ‚Ä•ªŽUƒvƒƒOƒ‰ƒ€‚ð쬂·‚éB‚Ü‚½A‘¼‚̃}ƒVƒ“‚Æ‚ÌÚ‘±ƒgƒ|ƒƒW[‚Ì\¬‚Ì‹@”\‚à—L‚µ‚Ä‚¢‚é‚̂ц[ƒU[‚̓gƒ|ƒƒW[\¬Œã‚̈—‚ð‹Lq‚·‚邾‚¯‚Å‚æ‚¢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‹Xs‚¤‚±‚Æ‚ª‚Å‚«‚é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[ƒ^‚ÌXV‚ª‘O‰ñ‚Ì "peek" ”­sŽž‚©‚çXV‚ª–³‚¢‚à‚Ì‚Æl‚¦AƒŠƒXƒg‚ÉŠi”[‚³‚ê‚Ä•Û—¯‚³‚ê‚éB(} \ref{fig:peek})
-
-"take" ‚â "update" ‚É‚æ‚èƒf[ƒ^‚ÌXV‚ª‚ ‚ê‚Î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[‚ª‹Lq‚·‚é‚Æ‚«‚ÉACode Segment “à‚ÅŽg—p‚·‚éData Segment ‚ð‹Lq‚µAˆË‘¶ŠÖŒW‚ðì‚éBˆË‘¶ŠÖŒW‚É‚æ‚èAŽÀs‚³‚ê‚釔ԂªˆêˆÓ‚ÉŒˆ‚Ü‚éBŽÀÛ‚ÉŽg—p‚·‚éData Segment ‚ÍCode Segment‚Ì“üo—Í‚É‘Š“–‚·‚éB‚»‚ꂼ‚êAInput Data SegmentAOutput 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‚Ì‹Lq•û–@}
-Code Segment‚ðƒ†[ƒU[‚ª‹Lq‚·‚éÛ‚É‚ÍCodeSegment‚ðŒp³‚µ‚Ä‹Lq‚·‚é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ƒ‹‚É‹Lq‚³‚ꂽ’Ê‚è‚Ƀgƒ|ƒƒW[‚ð쬂·‚éB
-
-\subsection{Topology Manager‚ÌÝ’èƒtƒ@ƒCƒ‹}
-Topology Manager‚̓gƒ|ƒƒW[ƒtƒ@ƒCƒ‹‚ð“Ç‚Ýž‚Þ‚ªAƒgƒ|ƒƒW[ƒtƒ@ƒCƒ‹Ž©‘Ì‚ÍDOT Language‚Æ‚¢‚¤Œ¾Œê‚Å‹Lq‚³‚ê‚éB
-DOT Language‚Ƃ̓vƒŒ[ƒ“ƒeƒLƒXƒg‚ð—p‚¢‚ÄAƒf[ƒ^\‘¢‚Æ‚µ‚ẴOƒ‰ƒt‚ð•\Œ»‚·‚邽‚ß‚ÌAƒf[ƒ^‹LqŒ¾Œê‚̈êŽí‚Å‚ ‚é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‹Lq‚µ‚½ƒgƒ|ƒƒW[‚ª³‚µ‚¢‚±‚Æ‚ð‰ÂŽ‹‰»‚µ‚ÄŠm”F‚·‚邱‚Æ‚ª‚Å‚«‚éB
-
-ƒNƒ‰ƒCƒAƒ“ƒgŠÔ‚ÌÚ‘±‚É‚Ílabel‚ð—p‚¢‚Ä–¼‘O‚ªŠ„‚èU‚ç‚ê‚Ä‚¨‚èA‚±‚ÌÚ‘±–¼‚ð—p‚¢‚ă†[ƒU[‚ÍData Segment Manager‚ɃAƒNƒZƒX‚·‚邱‚Æ‚ª‚Å‚«‚éB
-‘Oq‚µ‚½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ƒgA‘æ“ñˆø”‚Í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‚ªXV‚³‚ê‚é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