% Copyright (C) 1995-2007 by Hiroshi Nakashima, Yasuki Saito and % The Editorial Board of the IPSJ Journal % % ipsjpapers.sty 15-Jun-07 by Hiroshi Nakashima (ver 2.12) % (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\ifipsj@nonjp \ipsj@nonjpfalse % 2.12(1a) \newif\ifASCII \ASCIIfalse \ifx\jintercharskip\undefined \ASCIItrue \ifx\kanjiskip\undefined \ipsj@nonjptrue % 2.12(1a) \fi\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) \newif\ifDS@anonymous \DS@anonymousfalse % 2.10(1) \newif\ifDS@TBIO \DS@TBIOfalse % 2.11(1) \newif\ifDS@online \DS@onlinefalse % 2.12(4a) \if@LaTeX@eN \DeclareOption{printer}{\DS@printertrue} % 2.09(1) % 2.12(2) \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{anonymous}{\DS@anonymoustrue} % 2.10(1) \DeclareOption{TBIO}{\DS@TBIOtrue \DS@englishtrue} % 2.11(1) \DeclareOption{online}{\DS@onlinetrue \DS@printertrue \DS@englishtrue} % 2.12(4a) \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.12) <15 Jun 2007>.} % 2.05(1) \fi % \ifx \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) \def\ds@anonymous{\DS@anonymoustrue} % 2.10(1) \def\ds@TBIO{\DS@TBIOtrue \DS@englishtrue} % 2.11(1) \def\ds@online{\DS@onlinetrue \DS@printertrue \DS@englishtrue} % 2.12(4a) % 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 % \if@LaTeX@eN % 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 % \ifx % 2.03(1) << \ifipsj@nonjp \DS@englishtrue \fi % 2.12(1a) %%%%%% 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{\ifipsj@nonjp \the\font \else \the\jfont \fi} % 2.12(1b) \expandafter\global\expandafter\let\expandafter#1\@tempa}} % 2.00(5)<< \iffalse % ASCII LaTeX2e printer settings is removed % 2.12(2a) \else % ASCII LaTeX2e non-printer \ifipsj@nonjp % 2.12(1b)>> \ipsj@declare@font\fn@fontv\rmfamily\@vpt \ipsj@declare@font\fn@fontvi\rmfamily\@vpt \ipsj@declare@font\fn@fontvii\rmfamily\@vpt % no declaration for \fn@fontxv % 2.12(1b)<< \else % \ifipsj@nonjp \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\fi %\ifipsj@nonjp\iffalse \else % \ifASCII = 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 % \ifASCII % 2.00(4) << \else % \if@LaTeX@e = LaTeX 2.09 % 2.00(4) %% Fonts for ASCII TeX. (H.N.) \ifASCII \iffalse % ASCII LaTeX 2.09 printer settings is removed % 2.12(2a) \else \ifipsj@nonjp\else % 2.12(1b) \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\fi % \ifipsj@nonjp\iffalse %% 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 \ifipsj@nonjp % 2.12(1b)>> \def\old@vpt{\old@@vpt} \def\old@vipt{\old@@vipt} \def\old@viipt{\old@@viipt} \def\old@viiipt{\old@@viiipt} \def\old@ixpt{\old@@ixpt} \def\old@xpt{\old@@xpt} \def\old@xipt{\old@@xipt} \def\old@xiipt{\old@@xiipt} \def\old@xivpt{\old@@xivpt} % 2.12(1b)<< \else % \ifipsj@nonjp \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} \fi % \ifipsj@nonjp % 2.00(6) % 1.06(2) %% ASCII doesn't have \dg nor \dm. (H.N.) \ifipsj@nonjp\else % 2.12(1b) \def\dg{\protect\pdg} \def\dm{\protect\pdm} %% Redefine \gt and \mc \def\gt{\protect\pdg} \def\mc{\protect\pdm} \let\pdm\relax \fi % \ifipsj@nonjp \else % \ifASCII %% 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 % \ifASCII \fi % \if@LaTeX@e \ifx\jfsize\undefined \newcount\jfsize \fi % 1.06(2) \ifASCII % 1.06(3),2.00(6)>> \ifipsj@nonjp\else % 2.12(1b) \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)<< \fi % \ifipsj@nonjp \else % \ifASCII % 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 % \if@LaTeX@e \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 % \if@LaTeX@e % 2.00(7)<< \fi % \ifASCII % 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 \ifipsj@nonjp\else % 2.12(1b) \DeclareOldFontCommand{\mc}{\normalfont\mcfamily}{\mathmc} \DeclareOldFontCommand{\gt}{\normalfont\gtfamily}{\mathgt} \fi\fi\fi % \ifipsj@nonjp\ifASCII\if@LaTeX@eN \ifASCII \ifipsj@nonjp\else % 2.12(1b) \def\dm{\mc} \def\dg{\gt} \fi\fi\fi % \ifipsj@nonjp\ifASCII\if@LaTeX@e % 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} \let\ipsj@setjspaceskip\relax % 2.12(1b)>> \ifASCII \ifipsj@nonjp\else \def\ipsj@setjspaceskip{\jspaceskip1zw\relax} \fi\fi % \ifipsj@nonjp\ifASCII % 2.12(1b)<< % 1.06(4),2.00(9),2.04(3)<< %% \vipt etc. are redefined to use appropriate Japanese fonts. \else % \if@LaTeX@e % 2.00(9) \ifipsj@nonjp\else % 2.12(1b) \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\fi % \ifipsj@nonjp\if@LaTeX@e % 2.00(9) \if@LaTeX@e % 1.06(5) \let\@ixptboldmath\relax % 1.06(5) \else % 1.06(5) % 1.02(2) >> \iffalse % printer setting removed % 2.12(2a) \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 % \iffalse % 1.02(2) << \fi % \if@LaTeX@e % 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 % \ifDS@english % 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\baselineskip20\@Q} % 2.12(7) \let\fs@etitle\LARGE \let\fs@title\huge \@normalsize % 2.00(7) \ifx\setjglues\undefined\else \setjglues \fi % \sec@setskips{} is moved to ipsjcommon % 2.12(1c) \fi % \ifDS@englisth \if@LaTeX@e\else \ifipsj@nonjp\else % 2.00(11),2.12(1b) \let\latex@bf\bf % 1.06(6) \def\bf{\latex@bf \dg} % 1.06(6) \fi\fi % 2.00(11) %%%%%% Page Layout Parameters %%%%%% \newdimen\@mojihaba \ifipsj@nonjp \let\jspaceskip\@mojihaba \fi % 2.12(1b) \ifDS@printer % 2.12(2b) >> \voffset=-20mm \hoffset=-14mm \fi % 2.12(2b) << \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 % \if@tempswa \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 % \ifDS@techrep % 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 % \if@tempswa \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 % \vskip 32Q % \Large % \vskip 32Q % \small % \vskip 34Q % \LARGE\bf % \vskip 28Q % \Large\sc % \vskip 28Q % \small % \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)} \newif\ifipsj@trans \ipsj@transfalse % 2.12(4f) \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@TBIO \ipsj@TBIO@pcatref % 2.11(2) \else\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\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 \ipsj@j@technote % 2.12(1c)>> \else\ifDS@invited \ipsj@j@invited % 2.06(1) \else\ifDS@sigrecommended \ipsj@j@sigrec % 2.06(1) \else \ipsj@j@talkabst % 2.07(7) \fi\fi\fi % 2.12(1c)<< \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 \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{$^{\affi@thefnmark}$}}}% % 2.12(7) \gdef\affi@thefnmark{}\leavevmode\let\+\ignorespaces \settowidth\@tempdima{\ifipsj@nonjp x\else\ipsj@j@a \fi}% 2.12(1c) \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{% \ifipsj@nonjp \mkt@anhbox{#1 #2}\else \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-\lastskip \hskip\@tempskipa#2\hskip-\lastskip\@makefnmark}\fi\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 -> ^* % 2 -> ^* and~^* % 3 or more -> ,^* ,^* ... ^* and~^* % (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. % 2.12(7)>> \newcounter{affi@footnote} \c@affi@footnote\z@ \newcounter{affi@pfootnote} \c@affi@pfootnote\z@ \def\affilabel{\affi@deflabels\affi@affilabel} \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 \affi@label{affi@footnote}\@makefnmarkdagger} \def\affi@paffilabel#1#2{\begingroup \def\protect{\noexpand\protect\noexpand}% \def\\{\noexpand\\Presently with \ignorespaces}% \edef\@tempa{\ifDS@english Presently with \else % 1.04(1d) \ipsj@j@presently\fi#2}% % 2.12(1c) \affi@label{affi@pfootnote}\@makefnmarkast{#1}\@tempa} \def\affi@label#1#2#3#4{\stepcounter{#1}% \@ifundefined{affi@r@#3}% {\expandafter\xdef\csname affi@r@#3\endcsname{% \csname the#1\endcsname}}% {\ipsj@warning{Affiliation label `#3' multiply defined}}% % 2.00(3) \let\affi@footnotetext\relax\let\\\relax \def\protect{\noexpand\protect\noexpand}% \xdef\@thanks{\@thanks \affi@footnotetext {\csname the#1\endcsname}{\protect#2}{#4}}\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}}% {\def\protect{\noexpand\protect\noexpand}% \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}}} \def\theaffi@footnote{{\dagger}\number\c@affi@footnote} \def\theaffi@pfootnote{{\ast}\number\c@affi@pfootnote} \def\thanks#1{\begingroup \stepcounter{affi@pfootnote}\let\thempfn\theaffi@pfootnote \let\@thefnmark\thempfn \@makefnmark \let\affi@footnotetext\relax\let\\\relax \def\protect{\noexpand\protect\noexpand}% \xdef\@thanks{\@thanks \affi@footnotetext{\thempfn}{\protect\@makefnmarkast}{#1}}% \endgroup} % 2.12(7)<< % \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! \ifDS@printer % 2.12(4d)>> \def\LastPageNumber{\gdef\ipsj@last@page} \fi % 2.12(4d)<< % 2.00(16)>> \let\latex@document\document \def\document{\latex@document \ifDS@private\else \ifDS@online \global\c@page\ipsj@olh@page % 2.12(4) \else \global\c@page\c@volpageoffset \fi \fi} % 2.07(8) \let\c@volpage\c@page % for backward compatibility \def\thevolpage{\thepage} % for backward compatibility % 2.00(16)<< \newcounter{volume} % 2.12(1c)>> \newcounter{number} \let\c@month\c@number % 2.07(4) \newcounter{year} % 2.12(1c)<< \ifDS@printer % 2.12(4b)>> \def\SetOnlineHeaderInfo#1#2#3#4{% % [] \def\ipsj@olh@vol{#1}% \def\ipsj@olh@year{#2}% \def\ipsj@olh@month{#3}% \def\ipsj@olh@page{#4}% \@ifnextchar[%] \ipsj@olh@setlastpage\relax} \def\ipsj@olh@setlastpage[#1]{\def\ipsj@olh@lastpage{#1}} \fi % 2.12(4b)<< % 2.07(4)>> \ifDS@online % 2.12(4b) \def\@thevolno{Vol.~\ipsj@olh@vol} % 2.12(4b) \else \def\@thevolno{Vol.~\arabic{volume}\hskip\@mojihaba No.~% % 2.12(1c)>> \ifipsj@trans SIG\ \ipsj@sig@numa(\ipsj@sig@code\ \ipsj@sig@numb)% \else \arabic{number}\fi} % 2.12(1c)<< \fi % 2.07(4)<< % 2.00(15)>> % 2.12(1c)(4b)>> \def\@monthyear{% \ifDS@online \ipsj@monthyear\ipsj@olh@month\ipsj@olh@year \else \c@year1959 \advance\c@year\c@volume \ipsj@monthyear\c@number\c@year \fi} \def\ipsj@monthyear#1#2{\ifcase#1\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 \number#2} % 2.12(1c)(4b)<< % 2.00(15)<< % 2.07(2)>> \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 \ifDS@online\else % 2.12(4c) \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 \fi} \def\ipsj@sig@PRO@e{Programming} \def\ipsj@sig@TOM@e{Mathematical Modeling and Its Applications} \def\ipsj@sig@TOD@e{Databases} \def\ipsj@sig@HPS@e{High Performance Computing Systems} \def\ipsj@sig@CVIM@e{Computer Vision and Image Media} \def\ipsj@sig@ACS@e{Advanced Computing Systems} % 2.09(2) \def\ipsj@sig@TBIO@e{Bioinformatics} % 2.11(3) \def\ipsj@sig@SLDM@e{System LSI Design Methodology} % 2.12(8) % 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.12(9)>> \def\ipsj@lc@Rtop{\rlap{\smash{\rule[-\headsep]{0.05mm}{10mm}% \rule[-\headsep]{10mm}{0.05mm}}}} \def\ipsj@lc@Ltop{\llap{\smash{\rule[-\headsep]{10mm}{0.05mm}% \rule[-\headsep]{0.05mm}{10mm}}}} \def\ipsj@lc@Lbot{\llap{\smash{\raisebox{-\textheight}{% \raisebox{-\headsep}{\rule{10mm}{0.05mm}\rule[-10mm]{0.05mm}{10mm}}}}}} \def\ipsj@lc@Rbot{\rlap{\smash{\raisebox{-\textheight}{% \raisebox{-\headsep}{\rule[-10mm]{0.05mm}{10mm}\rule{10mm}{0.05mm}}}}}} \def\ps@layoutcheck{\ps@headings \let\ipsj@lc@evenhead\@evenhead \def\@evenhead{\ipsj@lc@Lbot \ipsj@lc@Ltop \ipsj@lc@evenhead \ipsj@lc@Rtop \ipsj@lc@Rbot}% \let\ipsj@lc@oddhead\@oddhead \def\@oddhead{\ipsj@lc@Lbot \ipsj@lc@Ltop \ipsj@lc@oddhead \ipsj@lc@Rtop \ipsj@lc@Rbot}% \let\ipsj@lc@myheadings\ps@myheadings \def\ps@myheadings{\ipsj@lc@myheadings \let\ipsj@lc@fpoddhead\@oddhead \def\@oddhead{\ipsj@lc@Lbot \ipsj@lc@Ltop \ipsj@lc@fpoddhead \ipsj@lc@Rtop \ipsj@lc@Rbot}% \let\@evenhead\@oddhead}} % 2.12(9)<< % 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)<< \def\ipsj@online@trans{IPSJ Digital Courier} % 2.12(4c) \def\ipsj@online@journal{IPSJ Digital Courier} % 2.12(4c) % 2.02(2),2.07(4)>> \ifDS@english \def\hdr@tipsj{\smash{% \ifDS@online % 2.12(4c)>> \ifipsj@trans \ipsj@online@trans \else \ipsj@online@journal\fi % 2.12(4c)<< \else \ifipsj@trans IPSJ Transactions on \ipsj@sig@title \else IPSJ Journal\fi \fi}} \else \def\hdr@tipsj{\smash{\ipsj@j@jipsj % 2.12(1c)>> \ifipsj@trans \ipsj@j@colon \ipsj@sig@title \fi}} % 2.12(1c)<< \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)>> % register marks are removed % 2.12(2d) % 1.05(2)<< } \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\ipsj@j@year \the\month\ipsj@j@month \the\day\ipsj@j@day} % 2.12(1c) \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)<< % % 2.12(4d)>> \if@filesw \write\@auxout{\string\gdef\string\ipsj@lastpage {\number\c@page}}\fi % 2.12(4d)<< \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\ifipsj@nonjp\else \@@topmargin\topmargin \fi\fi\fi % 2.00(13),2.12(1b) \latex@outputpage} %%%%%% Biography %%%%%% % If you want to control the allocation of biographies manually, do % \verbbiography and insert \adjust{} 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. % \received and \accepted define the dates of receipt/acceptance. % They are put at the end of manuscript (just before biographies) by % \ra@putrcvacc. % 2.12(1c)>> % \def\ra@nengo is moved to the tail % 2.12(1c) \ifDS@english \def\received#1#2#3{\def\ra@received{\ra@date{#1}{#2}{#3}}\ignorespaces} \def\accepted#1#2#3{\def\ra@accepted{\ra@date{#1}{#2}{#3}}\ignorespaces} % 2.07(5) % \rereceived is moved below % 2.12(5) \def\presented#1#2#3{\def\ra@presented{\ra@date{#1}{#2}{#3}}\ignorespaces} % 2.07(7) \ifDS@printer % 2.12(4e)>> \def\ReleasedToOnline#1#2#3{\ifDS@online \def\ra@released{\ra@date{#1}{#2}{#3}}\fi} \fi % 2.12(4e)<< \def\ra@received{??? ??, ????} \def\ra@accepted{??? ??, ????} \def\ra@presented{??? ??, ????} % 2.07(7) \def\ipsj@TOD@editor{(Editor in Charge:\quad{\it\ipsj@TOD@ename\/})} % 2.07(6) % 2.12(6) \ifDS@TBIO % 2.11(4)>> \def\ipsj@TOD@editor{(Communicated by\quad{\it\ipsj@TOD@ename\/})}% 2.12(6) \fi % 2.11(4)<< \else \def\received#1#2#3{\def\ra@received{#1&}\ignorespaces} \def\accepted#1#2#3{\def\ra@accepted{#1&}\ignorespaces} % 2.07(5) % \rereceived is moved below % 2.12(5) \def\presented#1#2#3{\def\ra@presented{#1&}\ignorespaces} % 2.07(7) \def\ra@received{?&?&?&} \def\ra@accepted{?&?&?&} \def\ra@presented{?&?&?&} % 2.07(7) \def\ipsj@TOD@editor{\ipsj@j@lp\ipsj@j@edinch \quad\ipsj@TOD@ename\ipsj@j@rp} % 2.07(6) % 2.08(2) % 2.12(6) \fi % aliasing of \received etc. is moved to the tail. % 2.12(1c)<< \let\ra@elt\relax % 2.12(5)>> \def\rereceived#1#2#3{\ifx\ra@rereceived\undefined \def\ra@rereceived{\ra@elt{}{#1}{#2}{#3}}\def\ra@rerecnum{1}% \else \@tempcnta\ra@rerecnum \advance\@tempcnta\@ne \edef\ra@rerecnum{\number\@tempcnta}% \edef\ra@rereceived{\ra@rereceived \ra@elt{(\ra@rerecnum)}{#1}{#2}{#3}}% \fi \ignorespaces} % 2.12(5)<< \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)} \def\ra@elt##1##2##3##4{% % 2.12(5)>> \llap{(Revised##1 \ra@date{##2}{##3}{##4})}} \ifx\ra@rereceived\undefined \else \ra@rereceived \fi % 2.12(5)<< \llap{(Accepted \ra@accepted)} \ifx\ra@released\undefined\else % 2.12(4e) \llap{(Released \ra@released)}\fi % 2.12(4e) \hbox{} \else % 2.12(1c)>> \def\ra@elt##1##2##3##4{##2&##3&##4&\ipsj@j@rerec##1)\cr}% % 2.12(5) \halign{(\ra@nengo\hskip\jasciikanjiskip \hfil##\hfil\hskip\jasciikanjiskip \ipsj@j@year \hskip\jasciikanjiskip& \hfil##\hfil\hskip\jasciikanjiskip \ipsj@j@month \hskip\jasciikanjiskip& \hfil##\hfil\hskip\jasciikanjiskip \ipsj@j@day &##\hfil\cr % 2.07(5)>> \ra@received \ipsj@j@received)\cr \ifx\ra@rereceived\undefined \else \ra@rereceived \fi % 2.12(5) \ra@accepted \ipsj@j@accepted)\cr\multispan3\cr}\fi}% % 2.07(5)<< % 2.12(1c)<< \hskip\@mojihaba} \nobreak\vskip-2\baselineskip\prevdepth\z@\hbox{} \ifDS@printer \ifDS@english % 2.12(4d)>> \ifipsj@trans \ifDS@online \noindent \ipsj@refer@trans \par \fi \else \ifDS@online\else \noindent \ipsj@refer@online \par \fi \fi \fi \fi % 2.12(4d)<< \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@jdate#1#2#3{#1&} \def\ra@putpresented#1&{\rightline{% % 2.12(1c)>> (\ra@nengo\hskip\jasciikanjiskip % 2.07(7)>> #1\hskip\jasciikanjiskip \ipsj@j@year \hskip\jasciikanjiskip #2\hskip\jasciikanjiskip \ipsj@j@month \hskip\jasciikanjiskip #3\hskip\jasciikanjiskip \ipsj@j@day\ipsj@j@presented)}} % 2.07(7)<< % 2.12(1c)<< % 2.12(4d)>> \def\ipsj@space{\hskip\z@ plus\fontdimen\thr@@\font \penalty5000\relax} \def\ipsj@refer@trans{% (Paper version of this article can be found in the IPSJ Transactions on \csname ipsj@sig@\ipsj@sig@code @e\endcsname, Vol.\ipsj@space\number\c@volume, No.\ipsj@space SIG\ipsj@sig@numa\ipsj@space (\ipsj@sig@code\ipsj@space\ipsj@sig@numb), pp.\ipsj@space\number\c@volpageoffset--\penalty5000\relax \ipsj@thelastpage\c@volpageoffset\ipsj@last@page.)} \def\ipsj@refer@online{% (Online version of this article can be found in the IPSJ Digital Courier, Vol.\ipsj@space\ipsj@olh@vol, pp.\ipsj@space\ipsj@olh@page--\penalty5000\relax \ipsj@thelastpage\ipsj@olh@page\ipsj@olh@lastpage.)} \def\ipsj@thelastpage#1#2{\begingroup \@tempcnta#1\relax \ifDS@online \@tempcntb\ipsj@olh@page \else \@tempcntb\c@volpageoffset\fi \ifx#2\undefined \ifx\ipsj@lastpage\undefined \def\@tempa{???}% \else \advance\@tempcntb-\ipsj@lastpage \advance\@tempcnta-\@tempcntb \def\@tempa{\number\@tempcnta}% \fi \else \def\@tempa{#2}% \fi \@tempa \endgroup} % 2.12(4d)<< \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{}{\ipsj@j@member}}% %2.12(3a)(1c)>> \def\nomember{\bio@member{}{}}% \def\stmember{\bio@member{}{\ipsj@j@stmember}}% \def\xmember{\bio@member{}}% \ifDS@printer \def\Kmember{\bio@Kmember{\ipsj@j@member}}% \def\Knomember{\bio@Kmember{}}% \def\Kstmember{\bio@Kmember{\ipsj@j@stmember}} \let\Kxmember\bio@Kmember \fi %2.12(3a)(1c)<< \ifDS@english \let\author\nomember % 2.12(3d)>> \ifDS@printer \let\Kauthor\Knomember \fi \fi % 2.12(3d)<< \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@Kmember#1#2#3{\bio@member{#3}{#1}{#2}} % 2.12(3a) \def\bio@member#1#2#3{\bio@egroup\let\bio@egroup\bio@@egroup % 2.12(3b)>> \@next\@currbox\@freelist\relax {\@latexerr{Too many unprocessed floats and biographies}\@ehb}% \def\@tempa{#3}\def\@tempb{#1}% \global\setbox\@currbox\hbox\bgroup \@tempswatrue \ifx\@tempb\@empty \ifDS@printer \@tempswafalse \else \raise\bio@lineheight\copy\bio@picbox \fi \else \setbox\@tempboxa\hbox to\z@{\vtop{\vskip\z@ \hbox{\includegraphics [width=\bio@picwidth,height=\bio@picheight]{#1.eps}}}% \hss} \dp\@tempboxa\dp\bio@picbox \raise\bio@lineheight\box\@tempboxa \fi % 2.12(3b)<< \vtop\bgroup \let\par\\ \if@tempswa \hangindent\bio@indent\hangafter-\bio@hangafter \fi \ifDS@english {\bf #3\ }% \else {\bf\bio@putauthor#3\+ \@nil}% \def\@tempb{#2}\ifx\@tempb\@empty\else % 2.12(3c) \ipsj@j@lp#2\ipsj@j@rp\fi{\@@par}\fi % 2.12(3c)(1c) \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{% \ifipsj@nonjp#1 #2\else \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\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