comparison ipsjpapers.sty @ 0:5de476fabbbc

first
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Sat, 21 Mar 2009 19:14:32 +0900
parents
children 34bfeb51e287
comparison
equal deleted inserted replaced
-1:000000000000 0:5de476fabbbc
1 % Copyright (C) 1995-2008 by Hiroshi Nakashima, Yasuki Saito and
2 % The Editorial Board of the IPSJ Journal
3 %
4 % ipsjpapers.sty 29-Dec-08 by Hiroshi Nakashima (ver 3.01)
5 % (revision history deleted)
6 % ipsjpapers.sty 24-Apr-95 by Hiroshi Nakashima (ver 1.0)
7 % ipsjpapers.sty 30-Nov-93 by Hiroshi Nakashima
8 % ipsjpapers.sty 3-Feb-93 by Yaski Saito
9 % compsoft.sty 22-April-92 by Yaski Saito
10 % compsoft.sty 18-July-90 by Hideki Isozaki
11 % j-article.sty 10-Feb-89 from report.sty 16-Mar-88
12
13 %%%%%% LaTeX Version %%%%%%
14
15 % 2.00(1) >>
16 %% \ifASCII is true if ASCII version Japanese TeX, which doesn't have
17 %% \jintercharskip (H.N.)
18 \newif\ifipsj@nonjp \ipsj@nonjpfalse % 2.12(1a)
19 \newif\ifASCII \ASCIIfalse
20 \ifx\jintercharskip\undefined \ASCIItrue
21 \ifx\kanjiskip\undefined \ipsj@nonjptrue % 2.12(1a)
22 \fi\fi
23 \newif\if@LaTeX@e \@LaTeX@efalse % 1.06(1)
24 \newif\if@LaTeX@eN \@LaTeX@eNfalse % 2.00(1)
25 \def\@tempa{LaTeX2e} % 1.06(1)
26 \ifx\fmtname\@tempa \@LaTeX@etrue % 1.06(1)
27 \ifx\xpt\undefined \@LaTeX@eNtrue \fi\fi % 2.00(1)
28 % 2.00(1) <<
29
30
31
32 %%%%%% Document Styles %%%%%%
33
34 % 2.00(2) >>
35 \newif\ifDS@printer \DS@printerfalse
36 \newif\ifDS@english \DS@englishfalse
37 \newif\ifDS@technote \DS@technotefalse
38 \newif\ifDS@preface \DS@prefacefalse
39 \newif\ifDS@draft \DS@draftfalse
40 \newif\ifDS@techrep \DS@techrepfalse % 1.05(2)
41 \newif\ifDS@sigrecommended \DS@sigrecommendedfalse % 2.04(1)
42 \newif\ifDS@invited \DS@invitedfalse % 2.06(1)
43 \newif\ifDS@abstract \DS@abstractfalse % 2.07(7)
44 \newif\ifDS@private \DS@privatefalse % 2.07(8)
45 \newif\ifDS@anonymous \DS@anonymousfalse % 2.10(1)
46 \newif\ifDS@TBIO \DS@TBIOfalse % 2.11(1)
47 \newif\ifDS@online \DS@onlinefalse % 2.12(4a)
48 \newif\ifDS@landscape \DS@landscapetrue % 3.00(1)
49 % 3.01(1)
50
51 \if@LaTeX@eN
52 \DeclareOption{printer}{\DS@printertrue} % 2.09(1)
53 % 2.12(2)
54 \DeclareOption{english}{\DS@englishtrue}
55 \DeclareOption{technote}{\DS@technotetrue}
56 \DeclareOption{preface}{\DS@prefacetrue}
57 \DeclareOption{draft}{\DS@drafttrue}
58 \DeclareOption{techrep}{\DS@techreptrue}
59 \DeclareOption{sigrecommended}{\DS@sigrecommendedtrue} % 2.04(1)
60 \DeclareOption{invited}{\DS@invitedtrue} % 2.06(1)
61 \DeclareOption{abstract}{\DS@abstracttrue} % 2.07(7)
62 \DeclareOption{private}{\DS@privatetrue} % 2.07(8)
63 \DeclareOption{anonymous}{\DS@anonymoustrue} % 2.10(1)
64 \DeclareOption{TBIO}{\DS@TBIOtrue \DS@englishtrue} % 2.11(1)
65 \DeclareOption{online}{\DS@onlinetrue \DS@printertrue \DS@englishtrue}
66 % 2.12(4a)
67 \DeclareOption{landscape}{\DS@landscapetrue} % 3.00(1)
68 \DeclareOption{portrait}{\DS@landscapefalse} % 3.00(1)
69 \DeclareOption{10pt}{\def\@ptsize{0}}
70 \DeclareOption{11pt}{\def\@ptsize{1}}
71 \DeclareOption{12pt}{\def\@ptsize{2}}
72 \ExecuteOptions{10pt}
73 \ProcessOptions
74 \def\ipsj@warning{\ClassWarning{ipsjpapers}} % 2.00(3)
75 \def\ipsj@error{\ClassError{ipsjpapers}} % 2.00(3)
76 \newskip \old@latex@skip % 2.00(14)
77 \let\@maxsep\old@latex@skip % 2.00(14)
78 \let\@dblmaxsep\old@latex@skip % 2.00(14)
79
80 \else
81 \expandafter\ifx\csname ver@ipsjpapers.cls\endcsname\relax
82 \typeout{Document Style `ipsjpapers' (ver 3.01) <29 Dec 2008>.} % 2.05(1)
83 \fi % \ifx
84
85 \def\ds@printer{\relax} % 2.09(1)
86 \def\ds@english{\DS@englishtrue}
87 \def\ds@technote{\DS@technotetrue}
88 \def\ds@preface{\DS@prefacetrue}
89 \def\ds@draft{\DS@drafttrue}
90 \def\ds@techrep{\DS@techreptrue} % 1.05(2)
91 \def\ds@sigrecommended{\DS@sigrecommendedtrue} % 2.04(1)
92 \def\ds@invited{\DS@invitedtrue} % 2.06(1)
93 \def\ds@abstract{\DS@abstracttrue} % 2.07(7)
94 \def\ds@private{\DS@privatetrue} % 2.07(8)
95 \def\ds@anonymous{\DS@anonymoustrue} % 2.10(1)
96 \def\ds@TBIO{\DS@TBIOtrue \DS@englishtrue} % 2.11(1)
97 \def\ds@online{\DS@onlinetrue \DS@printertrue \DS@englishtrue} % 2.12(4a)
98 \def\ds@landscape{\DS@landscapetrue} % 3.00(1)
99 \def\ds@portrait{\DS@landscapefalse} % 3.00(1)
100
101 % 1.04(3)>>
102 \def\@ptsize{0}
103 \@namedef{ds@11pt}{\def\@ptsize{1}}
104 \@namedef{ds@12pt}{\def\@ptsize{2}}
105 % 1.04(3)<<
106
107 \@options
108 \let\ipsj@warning\@warning % 2.00(3)
109 \let\@latex@warning\@warning % 2.00(3)
110 \def\ipsj@error#1#2{\errhlp{#2}\errmessge{#1}} % 2.00(3)
111 \fi % \if@LaTeX@eN
112 % 2.00(2) <<
113
114 \ifx\@classoptionslist\undefined\else % 2.03(1) >>
115 \def\ipsj@draft@option{draft}
116 \def\ipsj@remove@draft@option{\def\@tempb{}%
117 \@for\@tempa:=\@classoptionslist\do{%
118 \ifx\@tempa\ipsj@draft@option\else
119 \edef\@tempb{\@tempb,\@tempa}\fi}%
120 \ifx\@tempb\@empty \def\@classoptionslist{}\else
121 \expandafter\ipsj@remove@draft@ption\@tempb\@nil\fi}
122 \def\ipsj@remove@draft@ption,#1\@nil{%
123 \def\@classoptionslist{#1}}
124 \ipsj@remove@draft@option
125 \fi % \ifx % 2.03(1) <<
126
127 \ifipsj@nonjp \DS@englishtrue \fi % 2.12(1a)
128
129 %%%%%% Basics %%%%%%
130
131 \newdimen\@Q \@Q=0.25mm
132
133 \lineskip\z@ \normallineskip\z@
134 \lineskiplimit\z@ \normallineskiplimit\z@
135 \abovedisplayskip\z@ \belowdisplayskip\z@
136 \abovedisplayshortskip\z@ \belowdisplayshortskip\z@
137
138 \def\baselinestretch{1}
139 \jot\z@
140
141 \ifDS@draft\def\next{\input{ipsjdrafts.sty}\endinput}\else\let\next\relax\fi
142 \next
143
144 \@twosidetrue
145
146 %%%%%% Fonts %%%%%%
147 % \finvedm(dg) dm5 \vpt \tiny fn-mark
148 % \sixdm(dg) dm6 \vipt \scriptsize
149 % \sevendm(dg) dm7 \vipt \footnotesize f-note, capt
150 % 10Q = 7.11304pt -> w(min7) = 6.73550pt
151 % \eightdm(dg) dm8 \viiipt \small abst, header
152 % 11Q = 7.82434pt -> w(min8) = 7.69772pt
153 % \eightdm(dg)half dm9 \ixpt \normalsize main text
154 % 12Q = 8.53564pt -> w(min9) = 8.65994
155 % \tendm(dg) dm10 \xpt \large sec title
156 % 13Q = 9.24695pt -> w(min10) = 9.62216pt
157 % \tendm(dg)half dm10*1095 \xipt \Large author names
158 % 15Q =10.66956pt -> w(min10*1095) = 10.53625pt
159 % (\twlvdm) (dm12) \xiipt \LARGE e-title
160 % \twelvedm(dg)half dm12*1095 \xivpt \huge title
161 % min10*1440
162 % 18Q =12.80347pt -> w(min10*1440) = 13.8559pt
163 %
164 % Note that cm fonts follows LaTeX standard. (e.g. \viiipt -> cmr8, etc.)
165
166 % 2.00(4)>>
167 \if@LaTeX@e
168 \ifASCII
169 \def\ipsj@declare@font#1#2#3{{\fontsize{#3}{\z@}#2\selectfont % 2.00(5)>>
170 \edef\@tempa{\ifipsj@nonjp \the\font \else \the\jfont \fi} % 2.12(1b)
171 \expandafter\global\expandafter\let\expandafter#1\@tempa}} % 2.00(5)<<
172
173 \iffalse % ASCII LaTeX2e printer settings is removed % 2.12(2a)
174 \else % ASCII LaTeX2e non-printer
175 \ifipsj@nonjp % 2.12(1b)>>
176 \ipsj@declare@font\fn@fontv\rmfamily\@vpt
177 \ipsj@declare@font\fn@fontvi\rmfamily\@vpt
178 \ipsj@declare@font\fn@fontvii\rmfamily\@vpt
179 % no declaration for \fn@fontxv % 2.12(1b)<<
180 \else % \ifipsj@nonjp
181 \ipsj@declare@font\fn@fontv\mcfamily\@vpt
182 \ipsj@declare@font\fn@fontvi\mcfamily\@vpt
183 \ipsj@declare@font\fn@fontvii\mcfamily\@vpt
184 \ipsj@declare@font\fn@fontxv\gtfamily\@xipt
185 \fi\fi %\ifipsj@nonjp\iffalse
186
187 \else % \ifASCII = NTT LaTeX2e
188 \def\ipsj@declare@font#1#2#3{{\fontsize{#3}{\z@}#2\selectfont % 2.00(5)
189 \xdef#1{\expandafter\noexpand\csname\jf@ntn@me\endcsname}}} % 2.00(5)
190 \ipsj@declare@font\fn@fontv\dm\@vpt
191 \ipsj@declare@font\fn@fontvi\dm\@vpt
192 \ipsj@declare@font\fn@fontvii\dm\@vpt
193 \ipsj@declare@font\fn@fontxv\dg\@xipt
194 \fi % \ifASCII
195 % 2.00(4) <<
196
197 \else % \if@LaTeX@e = LaTeX 2.09 % 2.00(4)
198 %% Fonts for ASCII TeX. (H.N.)
199 \ifASCII
200 \iffalse % ASCII LaTeX 2.09 printer settings is removed % 2.12(2a)
201 \else \ifipsj@nonjp\else % 2.12(1b)
202 \font\fivedm min5
203 \font\fivedg goth5
204 \font\sixdm min6
205 \font\sixdg goth6
206 \font\sevendm min7
207 \font\sevendg goth7
208 \font\eightdm min8
209 \font\eightdg goth8
210 \font\eightdmhalf min9
211 \font\eightdghalf goth9
212 \font\tendm min10
213 \font\tendg goth10
214 \font\tendmhalf min10 scaled\magstephalf
215 \font\tendghalf goth10 scaled\magstephalf
216 \font\twelvedm min10 scaled\magstep1
217 \font\twelvedg goth10 scaled\magstep1
218 \font\twelvedmhalf min10 scaled\magstep2
219 \font\twelvedghalf goth10 scaled\magstep2
220 \let\fn@fontv\fivedm
221 \let\fn@fontvi\fivedm
222 \let\fn@fontvii\fivedm
223 \let\fn@fontxv\tendghalf
224
225 \fi\fi % \ifipsj@nonjp\iffalse
226
227 %% ASCII doesn't have \old@Npt. (H.N.)
228 \let\old@@vpt\vpt
229 \let\old@@vipt\vipt
230 \let\old@@viipt\viipt
231 \let\old@@viiipt\viiipt
232 \let\old@@ixpt\ixpt
233 \let\old@@xpt\xpt
234 \let\old@@xipt\xipt
235 \let\old@@xiipt\xiipt
236 \let\old@@xivpt\xivpt
237
238 \ifipsj@nonjp % 2.12(1b)>>
239 \def\old@vpt{\old@@vpt}
240 \def\old@vipt{\old@@vipt}
241 \def\old@viipt{\old@@viipt}
242 \def\old@viiipt{\old@@viiipt}
243 \def\old@ixpt{\old@@ixpt}
244 \def\old@xpt{\old@@xpt}
245 \def\old@xipt{\old@@xipt}
246 \def\old@xiipt{\old@@xiipt}
247 \def\old@xivpt{\old@@xivpt} % 2.12(1b)<<
248 \else % \ifipsj@nonjp
249 \def\old@vpt{\old@@vpt\jspaceskip1zw\relax}
250 \def\old@vipt{\old@@vipt\jspaceskip1zw\relax}
251 \def\old@viipt{\old@@viipt\jspaceskip1zw\relax}
252 \def\old@viiipt{\old@@viiipt\jspaceskip1zw\relax}
253 \def\old@ixpt{\old@@ixpt\jspaceskip1zw\relax}
254 \def\old@xpt{\old@@xpt\jspaceskip1zw\relax}
255 \def\old@xipt{\old@@xipt\jspaceskip1zw\relax}
256 \def\old@xiipt{\old@@xiipt\jspaceskip1zw\relax}
257 \def\old@xivpt{\old@@xivpt\jspaceskip1zw\relax}
258 \fi % \ifipsj@nonjp
259 % 2.00(6)
260 % 1.06(2)
261
262 %% ASCII doesn't have \dg nor \dm. (H.N.)
263 \ifipsj@nonjp\else % 2.12(1b)
264 \def\dg{\protect\pdg}
265 \def\dm{\protect\pdm}
266 %% Redefine \gt and \mc
267 \def\gt{\protect\pdg}
268 \def\mc{\protect\pdm}
269 \let\pdm\relax
270 \fi % \ifipsj@nonjp
271
272 \else % \ifASCII
273 %% Fonts for NTT jTeX
274 %% \magstephalf and \magstep1 may cause trouble in older versions.
275
276 \jfont\fivedm=dm5
277 \jfont\fivedg=dg5
278 \jfont\sixdm=dm6
279 \jfont\sixdg=dg6
280 \jfont\sevendm=dm7
281 \jfont\sevendg=dg7
282 \jfont\eightdm=dm8
283 \jfont\eightdg=dg8
284 \jfont\eightdmhalf=dm9
285 \jfont\eightdghalf=dg9
286 \jfont\tendm=dm10
287 \jfont\tendg=dg10
288 \jfont\tendmhalf=dm10 scaled 1095
289 \jfont\tendghalf=dg10 scaled 1095
290 \jfont\twelvedm=dm12
291 \jfont\twelvedg=dg12
292 \jfont\twelvedmhalf=dm12 scaled 1095
293 \jfont\twelvedghalf=dg12 scaled 1095
294 \let\fn@fontv\fivedm
295 \let\fn@fontvi\fivedm
296 \let\fn@fontvii\fivedm
297 \let\fn@fontxv\tendghalf
298 % 1.06(3)
299 \fi % \ifASCII
300 \fi % \if@LaTeX@e
301
302 \ifx\jfsize\undefined \newcount\jfsize \fi % 1.06(2)
303
304 \ifASCII % 1.06(3),2.00(6)>>
305 \ifipsj@nonjp\else % 2.12(1b)
306 \let\setjglues\relax
307 \let\jintercharskip\kanjiskip
308 \let\jasciikanjiskip\xkanjiskip
309 \let\jmathkanjiskip\xkanjiskip
310 \newdimen\jspaceskip
311
312 \def\defjintercharskip#1#2#3#4{\@asciiwarning{\defjintercharskip}}
313 \def\defjasciikanjiskip#1#2#3#4{\@asciiwarning{\defjasciicharskip}}
314 \def\defmathkanjiskip#1#2#3#4{\@asciiwarning{\defmathcharskip}}
315 \def\defjspaceskip#1#2#3#4{\@asciiwarning{\defjspaceskip}}
316
317 \def\@asciiwarning#1{\ipsj@warning{\string#1\space % 2.00(3)
318 is not supported in ASCII version}}
319 % 1.06(3),2.00(6)<<
320 \fi % \ifipsj@nonjp
321 \else % \ifASCII % 2.00(7)>>
322 \if@LaTeX@e
323 \ipsj@declare@font\fn@eightdmhalf\dm\@ixpt
324 \ipsj@declare@font\fn@eightdghalf\dg\@ixpt
325 \else
326 \def\fn@eightdmhalf{\eightdmhalf}
327 \def\fn@eightdghalf{\eightdghalf}
328 \fi % \if@LaTeX@e
329 \ifx\setjglues\undefined\else
330 \expandafter\defjintercharskip\fn@eightdmhalf{0pt}{1.4pt}{0.5pt}
331 \expandafter\defjintercharskip\fn@eightdghalf{0pt}{1.4pt}{0.5pt}
332 \expandafter\defjasciikanjiskip\fn@eightdmhalf{2pt}{1pt}{1pt}
333 \expandafter\defjasciikanjiskip\fn@eightdghalf{2pt}{1pt}{1pt}
334 \expandafter\defjmathkanjiskip\fn@eightdmhalf{2pt}{1pt}{1pt}
335 \expandafter\defjmathkanjiskip\fn@eightdghalf{2pt}{1pt}{1pt}
336 \fi % \if@LaTeX@e % 2.00(7)<<
337 \fi % \ifASCII % 2.00(4)
338
339 \if@LaTeX@e % 2.00(8)>>
340 \if@LaTeX@eN
341 \DeclareOldFontCommand{\rm}{\normalfont\rmfamily}{\mathrm}
342 \DeclareOldFontCommand{\sf}{\normalfont\sffamily}{\mathsf}
343 \DeclareOldFontCommand{\tt}{\normalfont\ttfamily}{\mathtt}
344 \DeclareOldFontCommand{\bf}{\normalfont\bfseries}{\mathbf}
345 \DeclareOldFontCommand{\it}{\normalfont\itshape}{\mathit}
346 \DeclareOldFontCommand{\sl}{\normalfont\slshape}{\@nomath\sl}
347 \DeclareOldFontCommand{\sc}{\normalfont\scshape}{\@nomath\sc}
348 \DeclareRobustCommand*{\cal}{\@fontswitch{\relax}{\mathcal}}
349 \DeclareRobustCommand*{\mit}{\@fontswitch{\relax}{\mathnormal}}
350 \ifASCII \ifipsj@nonjp\else % 2.12(1b)
351 \DeclareOldFontCommand{\mc}{\normalfont\mcfamily}{\mathmc}
352 \DeclareOldFontCommand{\gt}{\normalfont\gtfamily}{\mathgt}
353 \fi\fi\fi % \ifipsj@nonjp\ifASCII\if@LaTeX@eN
354
355 \ifASCII \ifipsj@nonjp\else % 2.12(1b)
356 \def\dm{\mc}
357 \def\dg{\gt}
358 \fi\fi\fi % \ifipsj@nonjp\ifASCII\if@LaTeX@e % 2.00(8)<<
359
360 %%%%%% Basic Font Size Macros %%%%%%
361
362 \if@LaTeX@e % 1.06(4),2.00(9),2.04(3)>>
363 \def\@setsize#1#2#3#4{\@setfontsize#1{#4}{#2}\ipsj@setjspaceskip}
364 \let\ipsj@setjspaceskip\relax % 2.12(1b)>>
365 \ifASCII \ifipsj@nonjp\else
366 \def\ipsj@setjspaceskip{\jspaceskip1zw\relax}
367 \fi\fi % \ifipsj@nonjp\ifASCII % 2.12(1b)<<
368 % 1.06(4),2.00(9),2.04(3)<<
369
370 %% \vipt etc. are redefined to use appropriate Japanese fonts.
371 \else % \if@LaTeX@e % 2.00(9)
372 \ifipsj@nonjp\else % 2.12(1b)
373 \def\vpt{\old@vpt\fivedm\let\pdg\fivedg\let\pdm\fivedm\jfsize=5\relax}
374 \def\vipt{\old@vipt\sixdm\let\pdg\sixdg\let\pdm\sixdm\jfsize=6\relax}
375 \def\viipt{\old@viipt\sevendm\let\pdg\sevendg\let\pdm\sevendm\jfsize=7\relax}
376 \def\viiipt{\old@viiipt\eightdm\let\pdg\eightdg\let\pdm\eightdm\jfsize=8\relax}
377 \def\ixpt{\old@ixpt\eightdmhalf\let\pdg\eightdghalf\let\pdm\eightdmhalf
378 \jfsize=9\relax \@ixptboldmath} % 1.02(2)
379 \def\xpt{\old@xpt\tendm\let\pdg\tendg\let\pdm\tendm\jfsize=10\relax}
380 \def\xipt{\old@xipt\tendmhalf\let\pdg\tendghalf\let\pdm\tendmhalf\jfsize=11
381 \relax}
382 \def\xiipt{\old@xiipt\twelvedm\let\pdg\twelvedg\let\pdm\twelvedm
383 \jfsize=12\relax}
384 \def\xivpt{\old@xivpt\twelvedmhalf\let\pdg\twelvedghalf\let\pdm\twelvedmhalf
385 \jfsize=14\relax}
386 \fi\fi % \ifipsj@nonjp\if@LaTeX@e % 2.00(9)
387
388 \if@LaTeX@e % 1.06(5)
389 \let\@ixptboldmath\relax % 1.06(5)
390 \else % 1.06(5)
391 % 1.02(2) >>
392 \iffalse % printer setting removed % 2.12(2a)
393 \else
394 \def\@ixptboldmath{%
395 \def\unboldmath{\everymath{}\everydisplay{}\@nomath\unboldmath
396 \textfont\@ne\ninmi
397 \textfont\tw@\ninsy \textfont\lyfam\ninly
398 \@boldfalse}\@boldfalse
399 % 1.03(1) >>
400 \def\boldmath{\@ifundefined{ninmib}{\global\font\ninmib\@mbi
401 \global\font\ninsyb\@mbsy\relax
402 \global\font\ninlyb\@lasyb\relax
403 \@addfontinfo\@ixpt
404 {\def\boldmath{\everymath{\mit}\everydisplay{\mit}%
405 \@prtct\@nomathbold
406 \textfont\@ne\ninmib \textfont\tw@\ninsyb
407 \textfont\lyfam\ninlyb \@prtct\@boldtrue}}}{}%
408 \@ixpt\boldmath}}
409 % 1.03(1) <<
410 \fi % \iffalse
411 % 1.02(2) <<
412 \fi % \if@LaTeX@e % 1.06(5)
413
414
415 %%%%%% Font Size Macros %%%%%%
416
417 \def\fs@setsize#1#2#3#4{\normalsize\dimen@\normalbaselineskip
418 \@ifstar{\@setsize{#1}{\dimen@}{#3}{#4}}%
419 {\@setsize{#1}{#2}{#3}{#4}}}
420
421 % s = (3*b - (h' + d') - (h + d))/2
422 % s_a = s + h' + d - b
423 % s_b = s + h + d' - b
424 \def\sec@setskips#1{\setbox0\hbox{\fs@sec\bf#1}\setbox1\hbox{#1}
425 \@tempdima3\baselineskip
426 \advance\@tempdima-\ht0 \advance\@tempdima-\dp0
427 \advance\@tempdima-\ht1 \advance\@tempdima-\dp1
428 \divide\@tempdima\tw@ \advance\@tempdima-\baselineskip
429 \@tempdimb\@tempdima
430 \advance\@tempdima\ht0 \advance\@tempdima\dp1
431 \advance\@tempdimb\ht1 \advance\@tempdimb\dp0
432 \edef\sec@aboveskip{\the\@tempdima}
433 \edef\sec@belowskip{\the\@tempdimb}}
434
435 \ifDS@english
436 % size pt \baselineskip size \?pt \baselineskip
437 % \normalsize 10 19/16Q \large 11 19/18Q (*)
438 % \small 9 15Q \Large 12 22Q
439 % \footnotesize 8 13Q \LARGE 14 26Q (*)
440 % \scriptsize 6/7 8pt (*) \huge 18 30Q (*)
441 % \tiny 5 6pt (*) \Huge 18 30Q (*)
442 % * : not measured
443
444 \ifDS@landscape % 3.00(2)>>
445 \def\@normalsize{\@setsize\normalsize{19\@Q}\xpt\@xpt}
446 \def\small{\fs@setsize\small{15\@Q}\ixpt\@ixpt}
447 \def\footnotesize{\fs@setsize\footnotesize{13\@Q}\viiipt\@viiipt}
448 \def\scriptsize{\@setsize\scriptsize{8pt}\vipt\@vipt}
449 \def\tiny{\@setsize\tiny{6pt}\vpt\@vpt}
450 \def\large{\@setsize\large{19\@Q}\xipt\@xipt}
451 \def\Large{\@setsize\Large{22\@Q}\xiipt\@xiipt}
452 \def\LARGE{\@setsize\LARGE{26\@Q}\xivpt\@xivpt}
453 \def\huge{\@setsize\Huge{30\@Q}\xviipt\@xviipt}
454 \let\Huge\huge
455
456 \else % \ifDS@landscape % 3.00(2)<<
457 \def\@normalsize{\@setsize\normalsize{16\@Q}\xpt\@xpt}
458 \def\small{\fs@setsize\small{15\@Q}\ixpt\@ixpt}
459 \def\footnotesize{\fs@setsize\footnotesize{13\@Q}\viiipt\@viiipt}
460 \def\scriptsize{\@setsize\scriptsize{8pt}\viipt\@viipt}
461 \def\tiny{\@setsize\tiny{6pt}\vpt\@vpt}
462 \def\large{\@setsize\large{18\@Q}\xipt\@xipt} % 3.00(3)
463 \def\Large{\@setsize\Large{22\@Q}\xiipt\@xiipt} % 3.00(3)
464 \def\LARGE{\@setsize\LARGE{26\@Q}\xivpt\@xivpt}
465 \def\huge{\@setsize\Huge{30\@Q}\xviipt\@xviipt}
466 \let\Huge\huge
467
468 \ifDS@techrep % 1.05(2)>>
469 \def\@normalsize{\@setsize\normalsize{17\@Q}\xpt\@xpt}
470 \fi % 1.05(2)<<
471 \fi % \ifDS@landscape % 3.00(2)
472
473 \if@LaTeX@e % 2.00(10)>>
474 \let\normalsize\@normalsize
475 \fi % 2.00(10)<<
476
477 \let\fs@footnote\footnotesize
478 \let\fs@caption\footnotesize
479 \let\fs@table\footnotesize
480 \let\fs@eabst\footnotesize
481 \let\fs@header\footnotesize
482 \let\fs@footer\footnotesize
483 \let\fs@bibliography\small
484 \let\fs@subsec\normalsize
485 \let\fs@sec\normalsize
486 \let\fs@type\large
487 \let\fs@eauthor\large
488 \let\fs@title\Large
489
490 \@normalsize
491
492 \sec@setskips{A}
493
494 \else % \ifDS@english
495 % size pt \baselineskip size \?pt \baselineskip
496 % \normalsize 9 20/19Q \large 10 20/19Q
497 % \small 8 15/14Q \Large 11 22Q
498 % \footnotesize 7 14Q \LARGE 12 20/18Q
499 % \scriptsize 6 8pt (*) \huge 14 26Q
500 % \tiny 5 6pt (*) \Huge 14 26Q
501 % * : not measured
502
503 \ifDS@landscape % 3.00(2)>>
504 \def\@normalsize{\@setsize\normalsize{20\@Q}\ixpt\@ixpt}
505 \def\small{\fs@setsize\small{15\@Q}\viiipt\@viiipt}
506 \def\footnotesize{\fs@setsize\footnotesize{14\@Q}\viipt\@viipt}
507 \def\scriptsize{\@setsize\scriptsize{8pt}\vipt\@vipt}
508 \def\tiny{\@setsize\tiny{6pt}\vpt\@vpt}
509 \def\large{\@setsize\large{20\@Q}\xpt\@xpt}
510 \def\Large{\@setsize\Large{22\@Q}\xipt\@xipt}
511 \def\LARGE{\@setsize\LARGE{20\@Q}\xiipt\@xiipt}
512 \def\huge{\@setsize\Huge{26\@Q}\xivpt\@xivpt}
513 \let\Huge\huge
514
515 \else % \ifDS@landscape % 3.00(2)<<
516 \def\@normalsize{\@setsize\normalsize{19\@Q}\ixpt\@ixpt}
517 \def\small{\fs@setsize\small{14\@Q}\viiipt\@viiipt}
518 \def\footnotesize{\fs@setsize\footnotesize{14\@Q}\viipt\@viipt}
519 \def\scriptsize{\@setsize\scriptsize{8pt}\vipt\@vipt}
520 \def\tiny{\@setsize\tiny{6pt}\vpt\@vpt}
521 \def\large{\@setsize\large{19\@Q}\xpt\@xpt}
522 \def\Large{\@setsize\Large{22\@Q}\xipt\@xipt}
523 \def\LARGE{\@setsize\LARGE{18\@Q}\xiipt\@xiipt}
524 \def\huge{\@setsize\Huge{26\@Q}\xivpt\@xivpt}
525 \let\Huge\huge
526
527 \ifDS@techrep % 1.05(2)>>
528 \def\@normalsize{\@setsize\normalsize{17\@Q}\ixpt\@ixpt}
529 \fi % 1.05(2)<<
530 \fi % \ifDS@landscape % 3.00(2)
531
532 \if@LaTeX@e % 2.00(10)>>
533 \let\normalsize\@normalsize
534 \fi % 2.00(10)<<
535
536 \let\fs@footnote\footnotesize
537 \let\fs@caption\footnotesize
538 \let\fs@table\footnotesize
539 \let\fs@abst\small
540 \def\fs@eabst{\small\baselineskip13\@Q}
541 \let\fs@header\small
542 \let\fs@footer\small
543 \let\fs@subsec\normalsize
544 \def\fs@bibliography{\normalsize\baselineskip16\@Q}
545 \let\fs@sec\large
546 \let\fs@type\fn@fontxv
547 \let\fs@author\Large
548 \def\fs@eauthor{\Large\baselineskip20\@Q} % 2.12(7)
549 \let\fs@etitle\LARGE
550 \let\fs@title\huge
551
552 \@normalsize
553 % 2.00(7)
554 \ifx\setjglues\undefined\else
555 \setjglues
556 \fi
557
558 % \sec@setskips{<A of hiragana>} is moved to ipsjcommon % 2.12(1c)
559 \fi % \ifDS@englisth
560
561 \if@LaTeX@e\else \ifipsj@nonjp\else % 2.00(11),2.12(1b)
562 \let\latex@bf\bf % 1.06(6)
563 \def\bf{\latex@bf \dg} % 1.06(6)
564 \fi\fi % 2.00(11)
565
566
567 %%%%%% Page Layout Parameters %%%%%%
568
569 \newdimen\@mojihaba
570 \ifipsj@nonjp \let\jspaceskip\@mojihaba \fi % 2.12(1b)
571
572 \ifDS@printer % 2.12(2b) >>
573 \ifDS@landscape % 3.00(4)>>
574 \voffset=0mm
575 \hoffset=0mm
576 \else % 3.00(4)<<
577 \voffset=-20mm
578 \hoffset=-14mm
579 \fi\fi % 2.12(2b) <<
580 % 3.00(4)
581 \headheight 12\@Q
582
583 % We want to allow a line containing $\displaystyle X^X$ to be a first line.
584 \setbox0\hbox{$\displaystyle X^X$}
585 \topskip\ht0
586
587 \ifdim\maxdepth<\dp\strutbox \maxdepth\dp\strutbox \@maxdepth\maxdepth\fi
588
589 % \headsep = 28Q - \topskip
590 \headsep28\@Q \advance\headsep-\topskip % 2.02(2)
591 % 3.00(5)
592 \columnseprule0pt % 3.00(5)
593
594 \ifDS@landscape % 3.00(6)>>
595 \ifDS@english
596 \textheight32\baselineskip \advance\textheight\topskip \advance\textheight100sp
597 \else
598 \textheight30\baselineskip \advance\textheight\topskip \advance\textheight100sp
599 \fi
600 \@mojihaba12\@Q
601 \topmargin 80\@Q \advance\topmargin-1in
602
603 \textwidth296mm \advance\textwidth-160\@Q
604 \oddsidemargin296mm \advance\oddsidemargin-\textwidth \divide\oddsidemargin\tw@
605 \advance\oddsidemargin-1in \evensidemargin\oddsidemargin
606 \columnsep40\@Q
607 \footskip50\@Q
608
609 \else % \DS@landscape % 3.00(6)<<
610 \@tempswafalse % 1.05(2)>>
611 \ifDS@english \ifDS@techrep \else \@tempswatrue \fi\fi
612 \if@tempswa % 1.05(2)<<
613 \topmargin 138\@Q \advance\topmargin-1in
614
615 % \textheight = 53\baselineskip + \topskip + epsilon(100sp)
616 \textheight53\baselineskip \advance\textheight\topskip \advance\textheight100sp
617
618 % Only first page has page number (footer) at the bottom
619 \footskip 27\@Q
620
621 \@mojihaba13\@Q
622
623 \else % \if@tempswa
624 \topmargin 131\@Q \advance\topmargin-1in
625
626 % \textheight = 45\baselineskip + \topskip + epsilon(100sp)
627 \textheight45\baselineskip \advance\textheight\topskip \advance\textheight100sp
628
629 \ifDS@techrep % 1.05(2)>>
630 \textheight50\baselineskip \advance\textheight\topskip \advance\textheight100sp
631 \fi % \ifDS@techrep % 1.05(2)<<
632
633 % Only first page has page number (footer) at the bottom
634 \footskip24\@Q
635
636 \@mojihaba12\@Q
637 \fi % \if@tempswa
638
639 \columnsep30\@Q
640
641 % \textwidth - \columnwidth = 24 * 12Q * 2 + \columnsep = 606Q
642 \textwidth606\@Q
643
644 \oddsidemargin210mm \advance\oddsidemargin-\textwidth \divide\oddsidemargin\tw@
645 \advance\oddsidemargin-1in \evensidemargin\oddsidemargin
646 \fi % \ifDS@landscape % 3.00(6)
647
648 \skip\footins\baselineskip \advance\skip\footins-.5\@mojihaba
649 % \footnotesep = \baselineskip - depth(\strutbox)
650 {\fs@footnote
651 \footnotesep\baselineskip
652 \global\advance\footnotesep-\dp\strutbox}
653
654 \def\footnoterule{{\fs@footnote\kern-\dp\strutbox \hrule \kern-.4\p@
655 \kern\dp\strutbox}}
656
657 \floatsep \baselineskip \textfloatsep \baselineskip
658 \intextsep \baselineskip \@maxsep \baselineskip
659 \dblfloatsep \baselineskip \dbltextfloatsep \baselineskip
660 \@dblmaxsep \baselineskip
661 \@fptop 0pt plus 1fil \@fpsep 0pt plus 2fil \@fpbot 0pt plus 1fil
662 \@dblfptop 0pt plus 1fil \@dblfpsep 0pt plus 2fil \@dblfpbot 0pt plus 1fil
663
664 \parskip\z@ \parindent\@mojihaba
665 \@lowpenalty 51 \@medpenalty 151 \@highpenalty 301
666 \@beginparpenalty -\@lowpenalty \@endparpenalty -\@lowpenalty
667 \@itempenalty -\@lowpenalty
668
669
670 %%%%%% Title and Authors %%%%%%
671 %
672 % Format of title, author names and abstract.
673 %
674 % \huge\bf <Japanese title>
675 % \vskip 32Q
676 % \Large <Japanese author names>
677 % \vskip 32Q
678 % \small <Japanese abstract>
679 % \vskip 34Q
680 % \LARGE\bf <English title>
681 % \vskip 28Q
682 % \Large\sc <English author names>
683 % \vskip 28Q
684 % \small <English abstract>
685 % \vskip 25Q
686
687 % 2.07(3)>>
688 \def\ipsj@ohcheck#1#2#3{\fs@header\hskip12\@Q#1\qquad#2\qquad#3\hskip12\@Q}
689 \def\ipsj@ohcvolno{Vol.~00\hskip12\@Q No.~SIG\ 00(\ipsj@sig@code\ 00)}
690
691 \newif\ifipsj@trans \ipsj@transfalse % 2.12(4f)
692 \def\maketitle{\let\ipsj@oddhead@t\ipsj@oddhead@a
693 \ifDS@landscape % 3.00(8h)>>
694 \settowidth\@tempdima{\fs@header
695 \hskip12\@Q 0000\hskip12\@Q\@titlestring\hskip12\@Q}
696 \ifdim\@tempdima>\textwidth
697 \ipsj@warning{% % 2.00(3)
698 \string\title\space for headding is too wide}%
699 \fi
700 \else\ifipsj@trans % 3.00(8h)<<
701 \settowidth\@tempdima{%
702 \ipsj@ohcheck\ipsj@ohcvolno\@titlestring\ipsj@ohcvolno}%
703 \ifdim\@tempdima>\textwidth
704 \let\ipsj@oddhead@t\ipsj@oddhead@b
705 \settowidth\@tempdima{%
706 \ipsj@ohcheck\ipsj@ohcvolno\@titlestring{000}}%
707 \ifdim\@tempdima>\textwidth
708 \ipsj@warning{% % 2.00(3)
709 \string\title\space for headding is too wide}%
710 \fi \fi
711 \else
712 \settowidth\@tempdima{\fs@header
713 \hskip12\@Q Vol.~00\hskip12\@Q No.~00\qquad\@titlestring\qquad
714 Vol.~00\hskip12\@Q No.~00\hskip12\@Q}
715 \ifdim\@tempdima>\textwidth
716 \ipsj@warning{% % 2.00(3)
717 \string\title\space for headding is too wide}%
718 \fi \fi \fi % 3.00(8h)
719 \par
720 \ifDS@landscape \@maketitle \else \twocolumn[\@maketitle]\fi
721 % 3.00(7b)
722 \thispagestyle{myheadings}\@thanks}
723 % 2.07(3)<<
724
725 % default title header
726
727 \def\title{\@dblarg{\@xtitle}}
728 \def\@xtitle[#1]#2{\gdef\@title{#2}%
729 {\def\protect{\noexpand\protect\noexpand}%
730 \ifDS@english\def\\{\unskip\ \ignorespaces}%
731 \else\def\\{\unskip\ignorespaces}\fi
732 \xdef\@titlestring{#1}}} % 2.07(3)
733
734 \def\@title{\mkt@warning\title}\def\@titlestring{}
735 \long\def\author#1{\long\gdef\@author{#1}}
736 \def\@author{\mkt@warning\author}
737
738 %% We need English title, author name(s). (H.N.)
739 \def\etitle#1{\gdef\@etitle{#1}}
740 \def\@etitle{\mkt@warning\etitle}
741 \long\def\eauthor#1{\long\gdef\@eauthor{#1}}
742 \def\@eauthor{\mkt@warning\eauthor}
743
744 \newbox\@abstractbox % 3.00(7a)>>
745 \newbox\@eabstractbox
746 %% Introduce \@titlewidth because we now use this dimen repeatedly. (H.N.)
747 %% \@titlewidth = landscape ? .4 * \textwidth : 44 * 11Q = 484Q
748 \newdimen\@titlewidth
749 \@titlewidth\ifDS@landscape.4\textwidth\else 484\@Q\fi
750
751 \def\ipsj@abstract#1#2#3{\global\let#1\relax
752 \global\setbox#2\hbox\bgroup
753 \unitlength\ifDS@landscape\columnwidth\else\textwidth\fi
754 \advance\unitlength-\@titlewidth
755 \divide\unitlength\tw@ \advance\@titlewidth\unitlength
756 \begin{minipage}[b]{\@titlewidth}#3\parindent11\@Q
757 \leftskip\unitlength}
758 \def\ipsj@endabstract#1{\end{minipage}\egroup
759 \setbox0\vbox{\unhbox#1\global\setbox#1\lastbox}}
760
761 \def\abstract{\ipsj@abstract\@abstract\@abstractbox\fs@abst}
762 \def\eabstract{\ipsj@abstract\@eabstract\@eabstractbox\fs@eabst}
763 \def\endabstract{\ipsj@endabstract\@abstractbox}
764 \def\endeabstract{\ipsj@endabstract\@eabstractbox}
765
766 \def\@abstract{\mkt@warning{abstract env}}
767 \def\@eabstract{\mkt@warning{eabstract env}}
768
769 \ifDS@english
770 \let\author\eauthor \let\abstract\eabstract \let\endabstract\endeabstract
771 \let\@eauthor\@author \let\@eabstract\@abstract
772 \fi % 3.00(7a)<<
773
774 \def\mkt@warning#1{\ipsj@warning{Missing \string#1}} % 2.00(3)
775
776 \newdimen\mkt@prevdepth
777 \newbox\mkt@titlebox
778 \def\@maketitle{\begin{adjustvboxheight*} % 3.00(7c)
779 \ifDS@english \ifDS@preface
780 \hbox{}\vskip60\@Q \vskip-\headsep \vskip-\baselineskip
781 \else
782 \hbox{}\vskip26\@Q \vskip-\headsep \vskip-\baselineskip
783 \leftline{\fs@type\it
784 \ifDS@TBIO \ipsj@TBIO@pcatref % 2.11(2)
785 \else\ifDS@technote Technical Note
786 \else\ifDS@invited Invited Paper % 2.06(1)
787 \else\ifDS@sigrecommended % 2.04(1)
788 Recommended Paper % 2.04(1)
789 \else\ifDS@abstract % 2.07(7)
790 Abstract % 2.07(7)
791 \else\ifDS@techrep\else % 2.02(1)
792 Regular Paper\fi\fi\fi\fi\fi\fi}% 2.06(1)
793 % % 2.04(1)
794 \vskip32\@Q \vskip-\baselineskip \fi
795 \else % 2.04(1) >>
796 \@tempswafalse \ifDS@technote\@tempswatrue\fi
797 \ifDS@sigrecommended\@tempswatrue\fi
798 \ifDS@invited\@tempswatrue\fi % 2.06(1)
799 \ifDS@abstract\@tempswatrue\fi % 2.07(7)
800 \if@tempswa
801 \vskip18\@Q \vskip-\headsep
802 \leftline{\vbox to28\@Q{\hrule height.8pt\vss
803 \hbox{\hskip7\@Q \fs@type
804 \ifDS@technote \ipsj@j@technote % 2.12(1c)>>
805 \else\ifDS@invited
806 \ipsj@j@invited % 2.06(1)
807 \else\ifDS@sigrecommended
808 \ipsj@j@sigrec % 2.06(1)
809 \else \ipsj@j@talkabst % 2.07(7)
810 \fi\fi\fi % 2.12(1c)<<
811 \hskip7\@Q}\vss\hrule height.8pt}}
812 % % 2.04(1) <<
813 \vskip40\@Q \vskip-\baselineskip
814 \else
815 \hbox{}\vskip60\@Q \vskip-\headsep \vskip-\baselineskip
816 \fi\fi
817 \@tempswafalse \ifDS@english\else\ifDS@preface\@tempswatrue\fi\fi
818 \mkt@maketitle{\fs@title\bf}\@title\title \nobreak % 3.00(7e)
819 \affi@labels
820 \ifDS@english\else
821 \vskip-\mkt@prevdepth \nointerlineskip\vskip32\@Q
822 \centerline{\vbox{\centering\hsize\@titlewidth\fs@author
823 \mkt@makeauthor}}\nobreak % 3.00(7e)
824 \ifDS@preface\else
825 \vskip-\prevdepth \nointerlineskip\vskip32\@Q
826 \@tempdima\dp\@abstractbox % 3.00(7d)>>
827 \@abstract \unvbox\@abstractbox
828 \vskip-\@tempdima \nointerlineskip\vskip34\@Q
829 \mkt@maketitle{\fs@etitle\bf}\@etitle\etitle \nobreak % 3.00(7e)<<
830 \fi\fi
831 \if@tempswa\else
832 \vskip-\mkt@prevdepth \nointerlineskip\vskip28\@Q
833 \centerline{\vbox{\centering\hsize\@titlewidth\fs@eauthor\sc
834 \mkt@makeeauthor}}\nobreak % 3.00(7e)
835 \fi
836 \vskip-\prevdepth % 3.00(7d)>>
837 \ifDS@preface\else
838 \nointerlineskip\vskip28\@Q
839 \@tempdima\dp\@eabstractbox
840 \@eabstract\unvbox\@eabstractbox
841 \vskip-\@tempdima
842 \fi
843 \nointerlineskip\vskip25\@Q
844 \end{adjustvboxheight*}} % 3.00(7c)<<
845
846 %% \mkt@maketitle puts Japanese/English title, whose lines should be
847 %% properly broken with \\ by the user. The result is flushed to left, then
848 %% centered with respect to the longest line. (H.N.)
849 \def\mkt@maketitle#1#2#3{\setbox\@tempboxa\vtop{
850 \def\\{\unskip\egroup\hbox\bgroup\ignorespaces}
851 #1\hbox\bgroup#2\unskip\egroup
852 \global\mkt@prevdepth\prevdepth}
853 \@tempdima\ifDS@landscape\columnwidth\else\textwidth\fi
854 \advance\@tempdima-4\@mojihaba
855 \ifdim\wd\@tempboxa>\@tempdima
856 \ipsj@warning{% % 2.00(3)
857 \string#3 is too wide. Break line(s) by \string\\}\fi
858 \centerline{\box\@tempboxa}}
859
860 % Assignment of Japanese author names to lines:
861 % 1 -> 1, 2 -> 2, 3 -> 3, 4 -> 2+2, 5 -> 3+2, 6 -> 3+3, 7 -> 3+2+2, 8 -> 3+3+2,
862 % ...
863 % Rule for N authors (N > 2, q := N div 3)
864 % N mod 3 = 0 -> 3 * q
865 % N mod 3 = 1 -> 3 * (q - 2) + 2 + 2
866 % N mod 3 = 2 -> 3 * (q - 1) + 2
867
868 \newcount\mkt@cnta\newcount\mkt@cntb
869 \newcount\mkt@sname\newcount\mkt@gname
870 \newbox\mkt@boxa
871 \newdimen\mkt@namewidth
872 \def\mkt@makeauthor{\let\member\@gobble \let\nomember\relax
873 \let\stmember\@gobble % Those are not necessary in final manuscript.
874 \def\@makefnmark{\smash{\rlap{$^{\affi@thefnmark}$}}}% % 2.12(7)
875 \gdef\affi@thefnmark{}\leavevmode\let\+\ignorespaces
876 \settowidth\@tempdima{\ifipsj@nonjp x\else\ipsj@j@a \fi}% 2.12(1c)
877 \mkt@namewidth7\@tempdima\@tempcnta\z@
878 \expandafter\mkt@countauthor\@author\and\@nil\and
879 \ifnum\@tempcnta=\@ne\let\mkt@anhbox\mkt@anhboxc\mkt@makesingleauthor
880 \else
881 \@tempcntb\@tempcnta \divide\@tempcntb\thr@@
882 \multiply\@tempcntb\thr@@ \advance\@tempcntb-\@tempcnta
883 \ifnum\@tempcntb=\m@ne\relax\@tempcntb\tw@\else\@tempcntb\z@\fi
884 \mkt@cnta\thr@@
885 \let\mkt@anhbox\mkt@anhboxl
886 \expandafter\mkt@makemultiauthor\@author\and\and\fi}
887 \def\mkt@countauthor#1\and{\def\@tempa{#1}\ifx\@tempa\@nnil\let\next\relax
888 \else\advance\@tempcnta\@ne \let\next\mkt@countauthor\fi\next}
889
890 % If single author, author name has 9 KC width instead of 7.
891 \def\mkt@makesingleauthor{\divide\mkt@namewidth7\multiply\mkt@namewidth9\relax
892 \expandafter\mkt@putauthor\@author\+ \@nil}
893
894 \def\mkt@makemultiauthor#1\and{\ifnum\@tempcnta=\z@\unskip\let\next\relax\else
895 \leavevmode
896 \advance\mkt@cnta\m@ne \advance\@tempcnta\m@ne
897 \ifnum\mkt@cnta=\z@\mkt@maleft{#1}\mkt@cnta\thr@@\else
898 \ifnum\@tempcnta=\@tempcntb\mkt@maleft{#1}\mkt@cnta\tw@\else
899 \mkt@putauthor#1\+ \@nil\let\mkt@anhbox\mkt@anhboxc\fi\fi
900 \let\next\mkt@makemultiauthor\fi\next}
901 \def\mkt@maleft#1{\let\mkt@anhbox\mkt@anhboxr\mkt@putauthor#1\+ \@nil
902 \par\let\mkt@anhbox\mkt@anhboxl}
903
904 % Japanese author name format:
905 % Non Japanese : As is.
906 % Japanese w/o s/g delimitor : As is with warning.
907 % Japanese (s+g>6) : As is.
908 % Japanese (s+g<7) : Give 1-KC space to s/g delimitor, then insert
909 % infinit stretch between each character pair, assuming the
910 % s/g delimitor as a charcter, to make the name have 7-KC
911 % width. An exception is 2s + 2g case, in which s/g
912 % delimitor has 0 width in order to have the result
913 % "S_S_G_G".
914
915 \newdimen\InterAuthorSkip \InterAuthorSkip\columnsep % 2.13(1)
916 \def\mkt@putauthor#1 #2\@nil{%
917 \ifipsj@nonjp \mkt@anhbox{#1 #2}\else
918 \setbox\@tempboxa\hbox{\let\affiref\@gobble \let\mkt@warning\@gobble
919 \jintercharskip\z@#1#2}%
920 \setbox\mkt@boxa\hbox{\let\affiref\@gobble \let\mkt@warning\@gobble
921 \jintercharskip1cm#1#2}%
922 \ifdim\wd\@tempboxa=\wd\mkt@boxa \mkt@anhbox{#1 #2}\else
923 % probably no Kanjis
924 \def\@tempa{#2}\ifx\@tempa\empty % without space btwn s/g-name
925 {\let\affiref\@gobble \def\+{}%
926 \ipsj@warning{Author name #1 doesn't have a space}}%
927 % 2.00(3)
928 \mkt@anhbox{#1}\else
929 \mkt@getnamewidth\mkt@sname{#1}\mkt@getnamewidth\mkt@gname{#2}%
930 \mkt@cntb\mkt@sname \advance\mkt@cntb\mkt@gname
931 \ifnum\mkt@cntb>6\relax\mkt@anhbox{#1\ #2}\else
932 \jintercharskip\fill%
933 \@tempskipa\@tempdima plus2fill\relax
934 \ifnum\mkt@sname=\tw@ \ifnum\mkt@gname=\tw@ \@tempskipa\fill\fi\fi
935 \hbox to\mkt@namewidth{#1\hskip-\lastskip
936 \hskip\@tempskipa#2\hskip-\lastskip\@makefnmark}\fi\fi\fi
937 \fi
938 \gdef\affi@thefnmark{}\hskip\InterAuthorSkip} % 2.13(1)
939
940 % When an author name is formatted "as is", the following macros are used
941 % according to their position (left, right, or center).
942 \def\mkt@anhboxl#1{\hbox to\mkt@namewidth{\hss#1\@makefnmark}}
943 \def\mkt@anhboxr#1{\hbox to\mkt@namewidth{#1\@makefnmark\hss}}
944 \def\mkt@anhboxc#1{\setbox\@tempboxa\hbox{#1\@makefnmark}%
945 \ifdim\wd\@tempboxa>\mkt@namewidth\box\@tempboxa
946 \else\hbox to\mkt@namewidth{\hss\box\@tempboxa\hss}\fi} % 2.08(1)
947
948 \def\mkt@getnamewidth#1#2{\setbox\@tempboxa\hbox{\let\affiref\@gobble#2}%
949 \@tempdimb\wd\@tempboxa
950 \advance\@tempdimb.5\@tempdima #1\@tempdimb \mkt@cntb\@tempdima
951 \divide#1\mkt@cntb}
952
953 % English author name format
954 % 1 -> <name-1>^*
955 % 2 -> <name-1>^* and~<name-2>^*
956 % 3 or more -> <name-1>,^* <name-2>,^* ... <name-n-1>^* and~<name-n>^*
957 % (be careful the position of comma).
958 %
959 % No special tricks for assignment names to line. Names are simply put in a
960 % \centering paragraph.
961
962 \def\mkt@makeeauthor{\let\member\@gobble \let\nomember\relax
963 \let\stmember\@gobble % Those are not necessary in final manuscript.
964 \leavevmode\let\mkt@and\relax\gdef\affi@thefnmark{}%
965 \def\@thefnmark{\affi@thefnmark}%
966 \expandafter\mkt@imakeeauthor\@eauthor\and\@nil\and}
967 \def\mkt@imakeeauthor#1\and#2\and{\def\@tempa{#2}\ifx\@tempa\@nnil
968 #1\@makefnmark\let\next\relax
969 \else
970 \def\@tempb{#1}\def\next{\mkt@iimakeeauthor#2\and}%
971 \fi\next}
972 \def\mkt@iimakeeauthor#1\and{\def\@tempa{#1}\ifx\@tempa\@nnil
973 \@makefnmark\ {\rm{and}~}\gdef\affi@thefnmark{}\hbox{\@tempb}%
974 \@makefnmark\let\next\relax
975 \else
976 \mkt@and\hbox{\@tempb}\let\mkt@and\mkt@andmid
977 \let\next\mkt@iimakeeauthor
978 \fi\def\@tempb{#1}\next}
979 \def\mkt@andmid{,\@makefnmark\ \gdef\affi@thefnmark{}}
980
981 % Macros to specify author's affiliation easily.
982 % 2.12(7)>>
983 \newcounter{affi@footnote} \c@affi@footnote\z@
984 \newcounter{affi@pfootnote} \c@affi@pfootnote\z@
985 \def\affilabel{\affi@deflabels\affi@affilabel}
986 \def\paffilabel{\affi@deflabels\affi@paffilabel}
987 \def\affi@deflabels#1#2#3{{\def\protect{\noexpand\protect\noexpand}%
988 \let\affi@affilabel\relax \let\affi@paffilabel\relax \let\\\relax
989 \xdef\affi@labels{\affi@labels#1{#2}{#3}}}}
990 \def\affi@labels{}
991 \def\affi@affilabel{\begingroup \affi@label{affi@footnote}\@makefnmarkdagger}
992 \def\affi@paffilabel#1#2{\begingroup
993 \def\protect{\noexpand\protect\noexpand}%
994 \def\\{\noexpand\\Presently with \ignorespaces}%
995 \edef\@tempa{\ifDS@english Presently with \else % 1.04(1d)
996 \ipsj@j@presently\fi#2}% % 2.12(1c)
997 \affi@label{affi@pfootnote}\@makefnmarkast{#1}\@tempa}
998 \def\affi@label#1#2#3#4{\stepcounter{#1}%
999 \@ifundefined{affi@r@#3}%
1000 {\expandafter\xdef\csname affi@r@#3\endcsname{%
1001 \csname the#1\endcsname}}%
1002 {\ipsj@warning{Affiliation label `#3' multiply defined}}%
1003 % 2.00(3)
1004 \let\affi@footnotetext\relax\let\\\relax
1005 \def\protect{\noexpand\protect\noexpand}%
1006 \xdef\@thanks{\@thanks
1007 \affi@footnotetext
1008 {\csname the#1\endcsname}{\protect#2}{#4}}\endgroup}
1009
1010 \def\affiref#1{\@ifundefined{affi@r@#1}%
1011 {\ipsj@warning{Affiliation reference `#1' undefined}% 2.00(3)
1012 \def\@tempa{?}}%
1013 {\def\@tempa{\csname affi@r@#1\endcsname}}%
1014 {\def\protect{\noexpand\protect\noexpand}%
1015 \ifx\affi@thefnmark\empty \xdef\affi@thefnmark{\@tempa}\else
1016 \xdef\affi@thefnmark{\affi@thefnmark,\hskip\z@\@tempa}\fi}}
1017 \def\affi@footnotetext#1#2#3{{\def\@thefnmark{#1}%
1018 \def\@makefnmarkforfn{#2}\@footnotetext{#3}}}
1019
1020 \def\theaffi@footnote{{\dagger}\number\c@affi@footnote}
1021 \def\theaffi@pfootnote{{\ast}\number\c@affi@pfootnote}
1022
1023 \def\thanks#1{\begingroup
1024 \stepcounter{affi@pfootnote}\let\thempfn\theaffi@pfootnote
1025 \let\@thefnmark\thempfn \@makefnmark
1026 \let\affi@footnotetext\relax\let\\\relax
1027 \def\protect{\noexpand\protect\noexpand}%
1028 \xdef\@thanks{\@thanks
1029 \affi@footnotetext{\thempfn}{\protect\@makefnmarkast}{#1}}%
1030 \endgroup}
1031 % 2.12(7)<<
1032
1033 % \contact is necessary only for drafts.
1034 \long\def\contact#1{}
1035
1036
1037 %%%%%% Page Header and Footer %%%%%%
1038
1039 \mark{{}{}}
1040
1041 \newcounter{volpageoffset} % You must set this to appropriate value
1042 \setcounter{volpageoffset}{1} % for each issue!
1043 \ifDS@printer % 2.12(4d)>>
1044 \def\LastPageNumber{\gdef\ipsj@last@page}
1045 \fi % 2.12(4d)<<
1046
1047 % 2.00(16)>>
1048 \let\latex@document\document
1049 \def\document{\latex@document
1050 \ifDS@landscape\ifDS@techrep\ifnum\c@year<\z@ % 3.01(5c)<<
1051 \ipsj@warning{Publication year should be given by \string
1052 \setcounter{year}{<yyyy>}}%
1053 \c@year\year \fi\fi\fi % 3.01(5c)>>
1054 \ifDS@private\else
1055 \ifDS@online \global\c@page\ipsj@olh@page % 2.12(4)
1056 \else \global\c@page\c@volpageoffset \fi \fi} % 2.07(8)
1057 \let\c@volpage\c@page % for backward compatibility
1058 \def\thevolpage{\thepage} % for backward compatibility
1059 % 2.00(16)<<
1060
1061 % 2.12(1c)>>
1062 \newcounter{volume} \c@volume\z@ % 3.00(8a)>>
1063 \newcounter{number} \c@number\z@
1064 \newcounter{month} \c@month\m@ne
1065 \newcounter{year} \c@year\m@ne % 3.00(8a)<<
1066 % 2.12(1c)<<
1067
1068 \ifDS@printer % 2.12(4b)>>
1069 \def\SetOnlineHeaderInfo#1#2#3#4{% % <vol><year><month><page>[<lastpage>]
1070 \def\ipsj@olh@vol{#1}%
1071 \def\ipsj@olh@year{#2}%
1072 \def\ipsj@olh@month{#3}%
1073 \def\ipsj@olh@page{#4}%
1074 \@ifnextchar[%]
1075 \ipsj@olh@setlastpage\relax}
1076 \def\ipsj@olh@setlastpage[#1]{\def\ipsj@olh@lastpage{#1}}
1077 \fi % 2.12(4b)<<
1078
1079 % 2.07(4)>>
1080 \ifDS@online % 2.12(4b)
1081 \def\@thevolno{Vol.~\ipsj@olh@vol} % 2.12(4b)
1082 \else\ifDS@landscape % 3.00(8b)>>
1083 \def\@thevolno{Vol.~\arabic{volume}%
1084 \ifnum\c@number>\z@ \hskip\@mojihaba No.~\arabic{number}\fi}
1085 \else % 3.00(8b)<<
1086 \def\@thevolno{Vol.~\arabic{volume}\hskip\@mojihaba No.~% % 2.12(1c)>>
1087 \ifipsj@trans SIG\ \ipsj@sig@numa(\ipsj@sig@code\ \ipsj@sig@numb)%
1088 \else \arabic{number}\fi} % 2.12(1c)<<
1089 \fi \fi % 3.00(8b)
1090 % 2.07(4)<<
1091 % 2.00(15)>>
1092 % 2.12(1c)(4b)>>
1093 % 3.00(8c)>>
1094 \def\ipsj@year{%
1095 \ifDS@online \ipsj@olh@year
1096 \else \ifnum\c@year<\z@
1097 \c@year1959 \advance\c@year\c@volume \fi
1098 \number\c@year
1099 \fi}
1100 \def\ipsj@month{{%
1101 \@tempcnta\ifDS@online\ipsj@olh@month \else
1102 \ifnum\c@month<\z@ \c@number \else \c@month \fi \fi \relax
1103 \ifcase\@tempcnta???\or Jan.\or Feb.\or Mar.\or Apr.\or May\or
1104 June\or July\or Aug.\or Sep.\or Oct.\or Nov.\or Dec.\else
1105 ???\fi}}
1106 \def\@monthyear{\ipsj@month \hskip.5\@mojihaba \ipsj@year}
1107 % 2.12(1c)(4b)<<
1108 % 2.00(15)<<
1109 % 3.00(8c)<<
1110
1111 % 2.07(2)>>
1112 \newif\ifipsj@etrans \ipsj@etransfalse % 3.00(10)
1113 \ifDS@landscape % 3.00(8d)>>
1114 \def\ipsj@setcounter#1#2{\afterassignment\ipsj@isetcounter #1=0#2\relax}
1115 \def\ipsj@isetcounter#1\relax{}
1116 \def\transaction#1#2#3{\ipsj@transtrue
1117 \def\ipsj@sig@code{#1}
1118 \ipsj@setcounter\c@volume{#2}\ipsj@setcounter\c@number{#3}%
1119 \expandafter\let\expandafter\ipsj@sig@title
1120 \csname ipsj@sig@#1@\ifDS@english e\else j\fi\endcsname
1121 \ifx\ipsj@sig@title\relax
1122 \ipsj@warning{Transaction code #1 is unknown}%
1123 \else \@ifundefined{ipsj@sig@#1@j}{\ipsj@etranstrue}{}% % 3.00(10)
1124 \fi
1125 \ifnum\c@year<\z@
1126 \expandafter\c@year\expandafter0\csname
1127 ipsj@sig@#1@baseyear\endcsname\relax
1128 \ifnum\c@year=\z@ \c@year2008\fi
1129 \advance\c@year\c@volume \advance\c@year\m@ne
1130 \fi}
1131 \else % 3.00(8d)<<
1132 \def\transaction#1#2#3{\ipsj@transtrue
1133 \def\ipsj@sig@code{#1}\def\ipsj@sig@numa{#2}\def\ipsj@sig@numb{#3}%
1134 \expandafter\let\expandafter\ipsj@sig@title
1135 \csname ipsj@sig@#1@\ifDS@english e\else j\fi\endcsname
1136 \ifx\ipsj@sig@title\relax
1137 \ipsj@warning{Transaction code #1 is unknown}\fi
1138 \let\ipsj@oddhead@s\ipsj@oddhead@a
1139 \ifDS@online\else % 2.12(4c)
1140 \settowidth\@tempdima{%
1141 \ipsj@ohcheck\ipsj@ohcvolno\hdr@tipsj\ipsj@ohcvolno}%
1142 \ifdim\@tempdima>\textwidth
1143 \let\ipsj@oddhead@s\ipsj@oddhead@b
1144 \settowidth\@tempdima{\c@month3\relax % "Mar." is longest
1145 \ipsj@ohcheck\ipsj@ohcvolno\hdr@tipsj\@monthyear}%
1146 \ifdim\@tempdima>\textwidth
1147 \let\ipsj@oddhead@s\ipsj@oddhead@c
1148 \fi \fi \fi}
1149 \fi % 3.00(8d)
1150 \def\ipsj@sig@PRO@e{Programming}
1151 \def\ipsj@sig@TOM@e{Mathematical Modeling and Its Applications}
1152 \def\ipsj@sig@TOD@e{Databases}
1153 \def\ipsj@sig@HPS@e{High Performance Computing Systems}
1154 \def\ipsj@sig@CVIM@e{Computer Vision and Image Media}
1155 \def\ipsj@sig@ACS@e{Advanced Computing Systems} % 2.09(2)
1156 \def\ipsj@sig@TBIO@e{Bioinformatics} % 2.11(3)
1157 \def\ipsj@sig@SLDM@e{System LSI Design Methodology} % 2.12(8)
1158 \def\ipsj@sig@CVA@e{Computer Vision and Applications} % 3.00(9)
1159 % if Vol.1 of CVA is published in 2009 (rather than 2008) do the following.
1160 %\def\ipsj@sig@CVA@baseyear{2009}
1161 % 2.07(2)<<
1162
1163 \def\copyrightnotice{\long\def\ipsj@cnotice}
1164 \def\ipsj@rightfoot{\copyright\space\ipsj@year\space % 3.01(5b)>>
1165 Information Processing Society of Japan\hskip12\@Q} % 3.01(2)
1166 % 3.01(5b)<<
1167
1168 % 1.05(2)>>
1169 \let\ipsj@ordspace\ % % 3.00(8i)
1170 \ifDS@techrep
1171 \ifDS@landscape % 3.01(5a)>>
1172 \def\TechrepVolNoDate#1#2#3{\def\ipsj@techrep@volno{#1\ No.\ #2}%
1173 \def\ipsj@techrep@date{#3}}
1174 \def\ps@headings{\let\@mkboth\markboth
1175 \def\@oddhead{\fs@header \@checklines \let\ \ipsj@ordspace
1176 \hskip12\@Q
1177 \smash{\vbox{\normalbaselines
1178 \ifDS@english\else \hbox{\ipsj@j@techrep} \fi
1179 \hbox{IPSJ SIG Technical Report}}}%
1180 \hss
1181 \smash{\vbox{\normalbaselines
1182 \llap{\@nameuse{ipsj@techrep@volno}}
1183 \llap{\@nameuse{ipsj@techrep@date}}}}%
1184 \hskip12\@Q}%
1185 \let\@evenhead\@oddhead
1186 \def\@oddfoot{\fs@header \hss \thepage \hss \llap{\ipsj@rightfoot}}%
1187 \let\@evenfoot\@oddfoot}
1188 \let\ps@myheadings\ps@headings
1189 \else % 3.01(5a)<<
1190 \def\ps@headings{\let\@mkboth\markboth
1191 \def\@oddhead{\@checklines\hss}\let\@evenhead\@oddhead
1192 \def\@oddfoot{}\def\@evenfoot{}}
1193 \let\ps@myheadings\ps@headings
1194 \fi % \ifDS@landscape % 3.01(5a)
1195
1196 \else\ifDS@private % 2.07(8)>>
1197 \def\ps@headings{\let\@mkboth\markboth
1198 \def\@oddhead{\@checklines\hfil\thepage\hskip12\@Q}%
1199 \def\@evenhead{\@checklines\hskip12\@Q\thepage\hfil}
1200 \def\@oddfoot{}\def\@evenfoot{}}
1201 \def\ps@myheadings{\ps@headings
1202 \def\@oddhead{\@checklines
1203 \smash{\parbox[b]{.75\textwidth}{\@nameuse{ipsj@cnotice}}}%
1204 \hfil\thepage\hskip12\@Q}%
1205 \let\@evenhead\@oddhead}
1206 % 2.07(8)<<
1207 \else\ifDS@landscape % 3.00(8)>>
1208 \def\ipsj@leftfoot{\let\ \ipsj@ordspace
1209 \hskip12\@Q
1210 \hdr@tipsj \hskip12\@Q
1211 \@thevolno \hskip12\@Q
1212 \@tempcnta\ifDS@online\ipsj@olh@page\else\c@volpageoffset\fi\relax
1213 \ipsj@thelastpage\@tempcnta\ipsj@last@page % 3.00(11)
1214 \ (\@monthyear)}
1215 \def\ps@headings{\let\@mkboth\markboth
1216 \def\@oddfoot{\fs@header \ipsj@leftfoot \hss \ipsj@rightfoot}
1217 \def\@oddhead{\fs@header \@checklines
1218 \hskip12\@Q\phantom{0000}\llap{\thepage}%
1219 \hskip12\@Q\@titlestring\hss}
1220 \let\@evenfoot\@oddfoot
1221 \let\@evenhead\@oddhead
1222 \def\sectionmark##1{}\def\subsectionmark##1{}}
1223 \def\ps@myheadings{\let\@mkboth\@gobbletwo
1224 \def\@oddhead{\fs@header \@checklines \ipsj@leftfoot \hss}
1225 \def\@oddfoot{\fs@header \hskip12\@Q \phantom{0000}\llap{\thepage}\hss
1226 \ipsj@rightfoot}
1227 \let\@evenhead\@oddhead
1228 \let\@evenfoot\@oddfoot
1229 \def\sectionmark##1{}\def\subsectionmark##1{}}
1230 \else % 3.00(8)<<
1231 % 1.05(2)<<
1232 \def\ps@headings{\let\@mkboth\markboth
1233 \def\@oddfoot{}
1234 \def\@evenfoot{}
1235 \def\@evenhead{\fs@header \@checklines
1236 \let\ipsj@ordspace\ % % 3.00(8i)
1237 \hskip12\@Q\rlap{\thepage}\hss % 2.07(3)
1238 \hdr@tipsj\hss\llap{\@monthyear}\hskip12\@Q}
1239 \def\@oddhead{\fs@header \@checklines
1240 \let\ipsj@ordspace\ % % 3.00(8i)
1241 \ipsj@oddhead@t\@titlestring\thepage} % 2.07(3)
1242 \def\sectionmark##1{}\def\subsectionmark##1{}}
1243
1244 \def\ps@myheadings{\let\@mkboth\@gobbletwo
1245 \def\@oddhead{\fs@header \@checklines
1246 \let\ipsj@ordspace\ % % 3.00(8i)
1247 \ipsj@oddhead@s\hdr@tipsj\@monthyear} % 2.07(3)
1248 \def\@oddfoot{\fs@footer\hfil\thepage\hfil}
1249 \let\@evenhead\@oddhead
1250 \let\@evenfoot\@oddfoot
1251 \def\sectionmark##1{}\def\subsectionmark##1{}}
1252 \fi\fi\fi % 1.05(2)
1253 % 2.07(8)
1254 % 3.00(8)
1255
1256 % 2.12(9)>>
1257 \def\ipsj@lc@Rtop{\rlap{\smash{\rule[-\headsep]{0.05mm}{10mm}%
1258 \rule[-\headsep]{10mm}{0.05mm}}}}
1259 \def\ipsj@lc@Ltop{\llap{\smash{\rule[-\headsep]{10mm}{0.05mm}%
1260 \rule[-\headsep]{0.05mm}{10mm}}}}
1261 \def\ipsj@lc@Lbot{\llap{\smash{\raisebox{-\textheight}{%
1262 \raisebox{-\headsep}{\rule{10mm}{0.05mm}\rule[-10mm]{0.05mm}{10mm}}}}}}
1263 \def\ipsj@lc@Rbot{\rlap{\smash{\raisebox{-\textheight}{%
1264 \raisebox{-\headsep}{\rule[-10mm]{0.05mm}{10mm}\rule{10mm}{0.05mm}}}}}}
1265
1266 \def\ps@layoutcheck{\ps@headings
1267 \let\ipsj@lc@evenhead\@evenhead
1268 \def\@evenhead{\ipsj@lc@Lbot \ipsj@lc@Ltop
1269 \ipsj@lc@evenhead
1270 \ipsj@lc@Rtop \ipsj@lc@Rbot}%
1271 \let\ipsj@lc@oddhead\@oddhead
1272 \def\@oddhead{\ipsj@lc@Lbot \ipsj@lc@Ltop
1273 \ipsj@lc@oddhead
1274 \ipsj@lc@Rtop \ipsj@lc@Rbot}%
1275 \let\ipsj@lc@myheadings\ps@myheadings
1276 \def\ps@myheadings{\ipsj@lc@myheadings
1277 \let\ipsj@lc@fpoddhead\@oddhead
1278 \def\@oddhead{\ipsj@lc@Lbot \ipsj@lc@Ltop
1279 \ipsj@lc@fpoddhead
1280 \ipsj@lc@Rtop \ipsj@lc@Rbot}%
1281 \let\@evenhead\@oddhead}}
1282 % 2.12(9)<<
1283
1284 % 2.07(3)>>
1285 \def\ipsj@oddhead@a#1#2{\hskip12\@Q \rlap{\@thevolno}\hss#1\hss
1286 \llap{#2}\hskip12\@Q}
1287 \def\ipsj@oddhead@b#1#2{\hskip12\@Q \@thevolno\qquad#1\hss
1288 \llap{#2}\hskip12\@Q}
1289 \def\ipsj@oddhead@c#1#2{\hskip12\@Q \@thevolno\hss#1\hss#2\hskip12\@Q}
1290 \let\ipsj@oddhead@t\ipsj@oddhead@a
1291 \let\ipsj@oddhead@s\ipsj@oddhead@a
1292 % 2.07(3)<<
1293
1294 \ifDS@landscape % 3.00(8e)>>
1295 \def\ipsj@online@trans{IPSJ Online Transactions}
1296 \def\ipsj@online@journal{Journal of Information Processing}
1297 \else % 3.00(8e)<<
1298 \def\ipsj@online@trans{IPSJ Digital Courier} % 2.12(4c)
1299 \def\ipsj@online@journal{IPSJ Digital Courier} % 2.12(4c)
1300 \fi % 3.00(8e)
1301 % 2.02(2),2.07(4)>>
1302 \ifDS@english
1303 \def\hdr@tipsj{\smash{%
1304 \ifDS@online % 2.12(4c)>>
1305 \ifipsj@trans
1306 \ipsj@online@trans
1307 \else
1308 \ipsj@online@journal\fi % 2.12(4c)<<
1309 \else
1310 \ifipsj@trans
1311 IPSJ Transactions on \ipsj@sig@title
1312 \else
1313 IPSJ Journal\fi
1314 \fi}}
1315 \else
1316 \def\ipsj@trans@delimitor{% % 3.00(8f)
1317 \ifDS@landscape\hskip\jspaceskip\else\ipsj@j@colon\fi} % 3.00(8f)
1318 \def\hdr@tipsj{\smash{\ipsj@j@jipsj % 2.12(1c)>>
1319 \ifipsj@trans\ipsj@trans@delimitor\ipsj@sig@title\fi}} % 3.00(8f)
1320 \fi % 2.12(1c)<<
1321 % 2.02(2),2.07(4)<<
1322
1323 % \checklines enables to draw a horizontal rule onto each baselines.
1324
1325 \newif\if@checklines \@checklinesfalse
1326 \def\checklines{\@checklinestrue}
1327 \def\@checklines{\if@checklines \rlap{\smash{\vtop{\normalsize
1328 \hbox{} \vskip\headsep \hrule width\textwidth\vskip-.4pt \vskip\topskip
1329 \hrule\vskip-.4pt
1330 \ifDS@landscape % 3.00(6)>>
1331 \ifDS@english\@tempcnta32\else\@tempcnta30\fi
1332 \else
1333 \ifDS@techrep\@tempcnta50\else % 1.05(2)
1334 \ifDS@english\@tempcnta53\else\@tempcnta45\fi\fi % 1.05(2)
1335 \fi % 3.00(6)<<
1336 \relax\@@checklines}}}\fi
1337 % 1.05(2)>>
1338 % register marks are removed % 2.12(2d)
1339 % 1.05(2)<<
1340 }
1341 \def\@@checklines{\ifnum\@tempcnta>\z@
1342 \vskip\normalbaselineskip \hrule\vskip-.4pt \advance\@tempcnta\m@ne
1343 \let\next\@@checklines\else\let\next\relax\fi\next}
1344
1345 \pagestyle{headings}
1346 \pagenumbering{arabic}
1347
1348 \ifDS@english\else
1349 \def\today{\the\year\ipsj@j@year \the\month\ipsj@j@month \the\day\ipsj@j@day}
1350 % 2.12(1c)
1351 \fi
1352
1353
1354 %%%%%% Output Routine %%%%%%
1355
1356 % To balance the final page,
1357 % following code is borrowed from nicetwocolumn style
1358
1359 % you can refrain from balancing by falsifying following switch!
1360 %% Initial value of \if@lastpagebalancing is false. It may be turned true by
1361 %% biography processing macros. (H.N.)
1362
1363 \newif\ifipsj@lastpagebalancing \ipsj@lastpagebalancingtrue % 3.00(12)>>
1364 \def\LastPageBalancing{\ipsj@lastpagebalancingtrue}
1365 \def\LastPageUnbalancing{\ipsj@lastpagebalancingfalse \verbbiography}
1366 % 3.00(12)<<
1367 \newif\if@lastpagebalancing \@lastpagebalancingfalse
1368 \newif\if@finalpageoutput \@finalpageoutputfalse
1369 % incorporate balanced output to \enddocument
1370 \let\latex@enddocument\enddocument
1371 \def\enddocument{\@finalpageoutputtrue
1372 \ifipsj@lastpagebalancing % 3.00(12)
1373 \if@lastpagebalancing
1374 \global\let\@outputdblcol\opt@balanceoutputdblcol\fi
1375 \ifDS@preface
1376 \global\let\@outputdblcol\opt@balanceoutputdblcol\fi
1377 \fi % 3.00(12)
1378 \ifDS@abstract % 2.07(7)>>
1379 \ifDS@landscape\else \hbox{}\newpage \fi % 3.01(3a)
1380 \ifDS@english \rightline{(Presented \ra@presented)}
1381 \else \expandafter\ra@putpresented\ra@presented \fi
1382 \fi % 2.07(7)<<
1383 % % 2.12(4d)>>
1384 \if@filesw \write\@auxout{\string\gdef\string\ipsj@lastpage
1385 {\number\c@page}}\fi % 2.12(4d)<<
1386 \latex@enddocument}
1387
1388 \newbox\@leftcolumnfootnote \newbox\@rightcolumnfootnote
1389 \newif\if@leftfootnoteexist \@leftfootnoteexistfalse
1390 \newif\if@rightfootnoteexist \@rightfootnoteexistfalse
1391 \newif\ifopt@floatexist \opt@floatexistfalse
1392
1393 % 2.00(12) \color@{begin/end}group ignored
1394 \def\enlargethispage{\ipsj@warning{\string\enlargepage is ignored}}
1395 % 2.00(3,12)
1396 \def\@makecol{\vbadness10000 \lineskiplimit\normallineskiplimit % 1.05(1)
1397 \setbox\@outputbox\box\@cclv
1398 \if@firstcolumn
1399 \ifvoid\footins \global\@leftfootnoteexistfalse
1400 \else
1401 \global\@leftfootnoteexisttrue
1402 \@tempdima\dp\footins
1403 \global\setbox\@leftcolumnfootnote\vbox{
1404 \unvbox\footins\vskip-\@tempdima}
1405 \fi
1406 \ifx\@botlist\@empty\else\global\opt@floatexisttrue\fi
1407 \else
1408 \ifvoid\footins \global\@rightfootnoteexistfalse
1409 \else
1410 \global\@rightfootnoteexisttrue
1411 \@tempdima\dp\footins
1412 \global\setbox\@rightcolumnfootnote\vbox{
1413 \unvbox\footins \vskip-\@tempdima}
1414 \ifx\@toplist\@empty\else\global\opt@floatexisttrue\fi
1415 \fi
1416 \fi
1417 \xdef\@freelist{\@freelist\@midlist}\gdef\@midlist{}\@combinefloats
1418 \global\maxdepth\@maxdepth}
1419
1420 % 2.01(1) >>
1421 \let\latex@vtryfc\@vtryfc
1422 \def\@vtryfc{\if@firstcolumn \global\@leftfootnoteexistfalse
1423 \else \global\@rightfootnoteexistfalse \fi \latex@vtryfc}
1424 % 2.01(1) <<
1425
1426 % 1.01(1,2) >>
1427 \let\latex@addtobot\@addtobot
1428 \def\@addtobot{\latex@addtobot\global\maxdepth\@maxdepth}
1429 \let\latex@combinefloats\@combinefloats
1430 \def\@combinefloats{\ifx\@botlist\@empty\else \dimen@\dp\@outputbox
1431 \setbox\@outputbox\vbox{\unvbox\@outputbox \vskip-\dimen@}\fi
1432 \latex@combinefloats}
1433 % 1.01(1,2) <<
1434
1435 \newskip\opt@baselineskip
1436 \def\@outputdblcol{
1437 \if@firstcolumn \global\@firstcolumnfalse
1438 \global\setbox\@leftcolumn\box\@outputbox
1439 \global\opt@baselineskip\baselineskip
1440 \else \global\@firstcolumntrue \global\opt@floatexistfalse
1441 \global\bib@adjustheight-\maxdimen
1442 \setbox\@leftcolumn\vbox to\@colht{\boxmaxdepth\@maxdepth % 1.01(3)
1443 \unvbox\@leftcolumn
1444 \if@leftfootnoteexist\vfil
1445 \footnoterule\box\@leftcolumnfootnote\fi}
1446 \setbox\@outputbox\vbox to\@colht{\boxmaxdepth\@maxdepth % 1.01(3)
1447 \unvbox\@outputbox
1448 \if@rightfootnoteexist\vfil
1449 \footnoterule\box\@rightcolumnfootnote\fi}
1450 \global\maxdepth\@maxdepth
1451 \if@finalpageoutput
1452 \if@leftfootnoteexist\else\if@rightfootnoteexist\else
1453 \setbox\@leftcolumn\vbox{\unvbox\@leftcolumn}%
1454 \setbox\@outputbox\vbox{\unvbox\@outputbox}
1455 \ifdim\ht\@leftcolumn<\ht\@outputbox
1456 \setbox\@leftcolumn\vbox to\ht\@outputbox{
1457 \unvbox\@leftcolumn}%
1458 \else
1459 \setbox\@outputbox\vbox to\ht\@leftcolumn{
1460 \unvbox\@outputbox}%
1461 \fi
1462 \fi\fi\fi
1463 \setbox\@outputbox\vbox{\hbox to\textwidth{\hbox to\columnwidth
1464 {\box\@leftcolumn \hss}\hfil \vrule width\columnseprule\hfil
1465 \hbox to\columnwidth{\box\@outputbox \hss}}}
1466 \@combinedblfloats
1467 \@outputpage \begingroup \@dblfloatplacement \@startdblcolumn
1468 \@whilesw\if@fcolmade \fi{\@outputpage\@startdblcolumn}%
1469 \endgroup
1470 \fi}
1471
1472 \let\opt@outputdblcol\@outputdblcol
1473 \chardef\opt@boxa\z@
1474 \chardef\opt@boxb\@ne
1475 \chardef\opt@boxc\tw@
1476 \def\opt@magicpenalty{1234}
1477 \def\opt@balanceoutputdblcol{\let\next\opt@ibalanceoutputdblcol
1478 \if@firstcolumn \let\next\opt@outputdblcol
1479 \else \ifopt@floatexist \opt@warning \let\next\opt@outputdblcol
1480 \else\ifx\@deferlist\@empty\else
1481 \opt@warning \let\next\opt@outputdblcol\fi\fi\fi
1482 \next}
1483 \def\opt@ibalanceoutputdblcol{%
1484 \setbox\@leftcolumn\vbox{\unvbox\@leftcolumn
1485 \ifnum\lastpenalty=\opt@magicpenalty\relax\else
1486 \@tempcnta10\relax\@whilenum\@tempcnta>0\do{%
1487 \unskip\unskip\unkern\unpenalty
1488 \advance\@tempcnta\m@ne}\fi}
1489 \advance\opt@baselineskip-\dp\@leftcolumn
1490 \ifdim\dp\@leftcolumn=\z@ \ifdim\opt@baselineskip=\baselineskip
1491 \@tempdima\ht\@leftcolumn \advance\@tempdima-\topskip
1492 \divide\@tempdima\baselineskip
1493 \@tempcnta\@tempdima \@tempdima\@tempcnta\baselineskip
1494 \advance\@tempdima\topskip
1495 \advance\@tempdima-\ht\@leftcolumn
1496 \advance\opt@baselineskip\@tempdima \fi\fi
1497 \advance\opt@baselineskip-\topskip
1498 \setbox\@outputbox\vbox{\unvbox\@outputbox}
1499 \ifdim\ht\@outputbox=\topskip \ifdim\dp\@outputbox=\z@
1500 \setbox\opt@boxa\vbox{\unvcopy\@outputbox\unskip
1501 \global\setbox\opt@boxb\lastbox
1502 \global\dimen@\lastskip}
1503 \ifvoid\opt@boxb\else\ifdim\ht\opt@boxb=\z@
1504 \ifdim\dp\opt@boxb=\z@\ifdim\dimen@=\topskip
1505 \@firstcolumntrue\fi\fi\fi\fi\fi\fi
1506 \setbox\opt@boxa\copy\@outputbox
1507 \setbox\@outputbox\vbox{\unvcopy\@leftcolumn
1508 \if@firstcolumn\else
1509 \vskip\opt@baselineskip
1510 \penalty\interlinepenalty\unvbox\@outputbox\fi}
1511 \@tempdima\ht\@outputbox \advance\@tempdima\topskip
1512 \divide\@tempdima\tw@ \advance\@tempdima100sp
1513 \splittopskip\topskip \splitmaxdepth\@maxdepth
1514 \ifdim\bib@adjustheight<\@M pt
1515 \opt@split\@outputbox\opt@boxb\@tempdima
1516 \ifdim\ht\opt@boxb<\bib@adjustheight
1517 \opt@split\@leftcolumn\opt@boxc\bib@adjustheight
1518 \opt@split\opt@boxc\opt@boxb\@tempdima
1519 \if@firstcolumn
1520 \opt@adjust\opt@boxc{\unvbox\@leftcolumn}
1521 \else\opt@adjust\opt@boxc{\ifvoid\@leftcolumn\else
1522 \unvbox\@leftcolumn\vskip\opt@baselineskip\fi
1523 \unvbox\opt@boxa}\fi\fi
1524 \else
1525 \advance\bib@adjustheight-\@M pt
1526 \opt@split\opt@boxa\opt@boxc\bib@adjustheight
1527 \setbox\@outputbox\vbox{\unvbox\@leftcolumn
1528 \vskip\opt@baselineskip\unvbox\opt@boxc}
1529 \opt@split\@outputbox\opt@boxb\@tempdima
1530 \opt@adjust\@outputbox{\unvbox\opt@boxa}
1531 \fi
1532 \if@leftfootnoteexist
1533 \setbox\opt@boxb\vbox to\@colht{\box\opt@boxb\vfill
1534 \footnoterule\box\@leftcolumnfootnote}\fi
1535 \if@rightfootnoteexist
1536 \setbox\@outputbox\vbox to\@colht{\box\@outputbox\vfill
1537 \footnoterule\box\@rightcolumnfootnote}\fi
1538 \ifdim\ht\@outputbox>\ht\opt@boxb
1539 \setbox\opt@boxb\vbox to\ht\@outputbox{\unvbox\opt@boxb}
1540 \else
1541 \setbox\@outputbox\vbox to\ht\opt@boxb{\unvbox\@outputbox}
1542 \fi
1543 \setbox\@outputbox\vbox{\hbox to\textwidth{\hbox to\columnwidth
1544 {\box\opt@boxb \hss}\hfil \vrule width\columnseprule\hfil
1545 \hbox to\columnwidth{\box\@outputbox \hss}}}
1546 \global\@firstcolumntrue \@combinedblfloats
1547 \@outputpage \begingroup \@dblfloatplacement \@startdblcolumn
1548 \@whilesw\if@fcolmade \fi{\@outputpage\@startdblcolumn}\endgroup}
1549
1550 \if@LaTeX@eN % 2.00(3)>>
1551 \def\opt@warning{\ClassWarning{ipsjpapers}{%
1552 Single column floats still remain on biography\MessageBreak
1553 processing.\MessageBreak
1554 Do \string\verbbiography\space for manual balcing}}
1555 \else
1556 \def\opt@warning{\@warning{Single column floats still remain on biography
1557 processing.^^J\space\space\space\space\space
1558 \space\space\space\space\space\space\space\space\space\space
1559 Do \string\verbbiography\space for manual balancing}}
1560 \fi % 2.00(3)<<
1561 \def\opt@split#1#2#3{\setbox#2\vsplit#1to#3\setbox#2\vbox{\unvbox#2}}
1562 \def\opt@adjust#1#2{\@tempdima\ht#1 \advance\@tempdima-\topskip
1563 \@tempdimb\@tempdima \divide\@tempdima\baselineskip
1564 \@tempcnta\@tempdima \@tempdima\@tempcnta\baselineskip
1565 \advance\@tempdima-\@tempdimb
1566 \ifdim\@tempdima<\z@ \advance\@tempdima\baselineskip \fi
1567 \advance\@tempdima\baselineskip \advance\@tempdima-\dp#1
1568 \advance\@tempdima-\topskip
1569 \setbox\@outputbox\vbox{\ifvoid#1\else\unvbox#1\vskip\@tempdima\fi#2}}
1570
1571 \let\latex@outputpage\@outputpage
1572 % \opt@finalgap: vertical space above the \hrule at the end of paper.
1573 % \opt@finallinewidth: width of the \hrule at the end of paper.
1574 \@tempdima2\baselineskip % This might be changed
1575 \edef\opt@finalgap{\the\@tempdima}
1576 \def\opt@finallinewidth{220\@Q} % This might be changed
1577 \ifDS@techrep \let\opt@finallinewidth\z@ \fi % 1.05(2)
1578
1579 \def\@outputpage{\if@finalpageoutput
1580 \setbox\@outputbox\vbox{\unvbox\@outputbox}
1581 \@tempdima\dp\@outputbox
1582 \@tempdimb\ht\@outputbox \advance\@tempdimb\opt@finalgap\relax
1583 \ifdim\@tempdimb>\textheight\else
1584 \setbox\@outputbox\vbox to\textheight{
1585 \unvbox\@outputbox\vskip-\@tempdima
1586 \nointerlineskip\vbox to\z@{\vskip\opt@finalgap
1587 \hbox to\textwidth{\hss
1588 \vrule height0.4pt width\opt@finallinewidth\hss}
1589 \vss}\vfil}\fi\fi
1590 \ifASCII\if@LaTeX@e\ifipsj@nonjp\else
1591 \@@topmargin\topmargin \fi\fi\fi % 2.00(13),2.12(1b)
1592 \latex@outputpage}
1593
1594 %%%%%% Biography %%%%%%
1595
1596 % If you want to control the allocation of biographies manually, do
1597 % \verbbiography and insert \adjust{<vertical materials>} just before
1598 % \member (or its relatives). For example;
1599 % \verbbiography
1600 % \begin{biography}
1601 % \member{...} ...
1602 % \adjust{\protect\newpage}
1603 % \member{...} ...
1604 % \adjust{\protect\vspace{1.3cm}}
1605 % \member{...} ...
1606 % \end{biography}
1607 % will make page break just after the biography of the 1st author, and will
1608 % insert a vertical space of 1.3cm just after that of the 2nd. It is
1609 % strongly recommended to \protect any control sequence in the argument of
1610 % \adjust.
1611
1612 % \received and \accepted define the dates of receipt/acceptance.
1613 % They are put at the end of manuscript (just before biographies) by
1614 % \ra@putrcvacc.
1615
1616 % 2.12(1c)>>
1617 % \def\ra@nengo is moved to the tail % 2.12(1c)
1618 \ifDS@english
1619 \def\received#1#2#3{\def\ra@received{\ra@date{#1}{#2}{#3}}\ignorespaces}
1620 \def\accepted#1#2#3{\def\ra@accepted{\ra@date{#1}{#2}{#3}}\ignorespaces}
1621 % 2.07(5)
1622 % \rereceived is moved below % 2.12(5)
1623 \def\presented#1#2#3{\def\ra@presented{\ra@date{#1}{#2}{#3}}\ignorespaces}
1624 % 2.07(7)
1625 \def\ra@received{??? ??, ????}
1626 \def\ra@accepted{??? ??, ????}
1627 \def\ra@presented{??? ??, ????} % 2.07(7)
1628 \def\ipsj@TOD@editor{(Editor in Charge:\quad{\it\ipsj@TOD@ename\/})}
1629 % 2.07(6)
1630 % 2.12(6)
1631
1632 \ifDS@TBIO % 2.11(4)>>
1633 \def\ipsj@TOD@editor{(Communicated by\quad{\it\ipsj@TOD@ename\/})}% 2.12(6)
1634 \fi % 2.11(4)<<
1635 \else
1636 \def\received#1#2#3{\def\ra@received{#1&#2&#3&}\ignorespaces}
1637 \def\accepted#1#2#3{\def\ra@accepted{#1&#2&#3&}\ignorespaces}
1638 % 2.07(5)
1639 % \rereceived is moved below % 2.12(5)
1640 \def\presented#1#2#3{\def\ra@presented{#1&#2&#3&}\ignorespaces} % 2.07(7)
1641 \def\ra@received{?&?&?&}
1642 \def\ra@accepted{?&?&?&}
1643 \def\ra@presented{?&?&?&} % 2.07(7)
1644 \def\ipsj@TOD@editor{\ipsj@j@lp\ipsj@j@edinch
1645 \quad\ipsj@TOD@ename\ipsj@j@rp} % 2.07(6)
1646 % 2.08(2)
1647 % 2.12(6)
1648 \fi
1649
1650 \ifDS@printer % 2.12(4e)>>
1651 \def\ReleasedToOnline{\@tempswafalse % 3.00(10)>>
1652 \@ifstar{\@tempswatrue\ipsj@reltool}{\ipsj@reltool}}
1653 \def\ipsj@reltool#1#2#3{
1654 \ifDS@online \@tempswatrue \fi
1655 \ifipsj@etrans \@tempswatrue \fi
1656 \if@tempswa
1657 \ifDS@english \def\ra@released{\ra@date{#1}{#2}{#3}}
1658 \else \def\ra@released{#1&#2&#3&}
1659 \fi\fi} % 3.00(10)<<
1660 \fi % 2.12(4e)<<
1661 % aliasing of \received etc. is moved to the tail.
1662
1663 % 2.12(1c)<<
1664
1665 \let\ra@elt\relax % 2.12(5)>>
1666 \def\rereceived#1#2#3{\ifx\ra@rereceived\undefined
1667 \def\ra@rereceived{\ra@elt{}{#1}{#2}{#3}}\def\ra@rerecnum{1}%
1668 \else
1669 \@tempcnta\ra@rerecnum \advance\@tempcnta\@ne
1670 \edef\ra@rerecnum{\number\@tempcnta}%
1671 \edef\ra@rereceived{\ra@rereceived
1672 \ra@elt{(\ra@rerecnum)}{#1}{#2}{#3}}%
1673 \fi \ignorespaces} % 2.12(5)<<
1674
1675 \def\edInCharge#1{\def\ipsj@TOD@ename{#1}\ignorespaces} % 2.07(6)
1676
1677 \def\ra@putrcvacc{\rightline{\vtop{\normalsize\tabskip\z@
1678 \ifDS@english
1679 \llap{(Received \ra@received)}
1680 \def\ra@elt##1##2##3##4{% % 2.12(5)>>
1681 \llap{(Revised##1 \ra@date{##2}{##3}{##4})}}
1682 \ifx\ra@rereceived\undefined \else \ra@rereceived \fi
1683 % 2.12(5)<<
1684 \llap{(Accepted \ra@accepted)}
1685 \ifx\ra@released\undefined\else % 2.12(4e)
1686 \llap{(Released \ra@released)}\fi % 2.12(4e)
1687 \hbox{}
1688 \else % 2.12(1c)>>
1689 \def\ra@elt##1##2##3##4{##2&##3&##4&\ipsj@j@rerec##1)\cr}%
1690 % 2.12(5)
1691 \halign{(\ra@nengo\hskip\jasciikanjiskip
1692 \hfil##\hfil\hskip\jasciikanjiskip \ipsj@j@year
1693 \hskip\jasciikanjiskip&
1694 \hfil##\hfil\hskip\jasciikanjiskip \ipsj@j@month
1695 \hskip\jasciikanjiskip&
1696 \hfil##\hfil\hskip\jasciikanjiskip \ipsj@j@day
1697 &##\hfil\cr % 2.07(5)>>
1698 \ra@received \ipsj@j@received)\cr
1699 \ifx\ra@rereceived\undefined \else \ra@rereceived \fi
1700 % 2.12(5)
1701 \ra@accepted \ipsj@j@accepted)\cr
1702 \ifx\ra@released\undefined\else % 3.00(10)
1703 \ra@released \ipsj@j@released)\cr \fi % 3.00(10)
1704 \multispan3\cr}\fi}%
1705 % 2.07(5)<<
1706 % 2.12(1c)<<
1707 \hskip\@mojihaba}
1708 \nobreak\vskip-2\baselineskip\prevdepth\z@\hbox{}
1709 \ifDS@printer \ifDS@english % 2.12(4d)>>
1710 \ifipsj@trans
1711 \ifDS@online \noindent \ipsj@refer@trans \par \fi
1712 \else
1713 \ifDS@online\else \noindent \ipsj@refer@online \par \fi
1714 \fi \fi \fi % 2.12(4d)<<
1715 \ifipsj@recommendation\else % 2.04(2)
1716 \ifx\ipsj@TOD@ename\undefined\else % 2.07(6)>>
1717 \nobreak\vskip\baselineskip
1718 \hbox{\ipsj@TOD@editor}\fi % 2.07(6)<<
1719 \vskip\baselineskip\penalty\opt@magicpenalty\fi}% 2.04(2)
1720 \def\ra@date#1#2#3{\ifcase#2\or
1721 January\or February\or March\or April\or May\or June\or
1722 July\or August\or September\or October\or November\or December\fi
1723 \space#3, #1}
1724 \def\ra@jdate#1#2#3{#1&#2&#3&}
1725 \def\ra@putpresented#1&#2&#3&{\rightline{% % 2.12(1c)>>
1726 \ipsj@j@lp\ra@nengo\hskip\jasciikanjiskip % 2.07(7)>>
1727 % 2.13(3)
1728 #1\hskip\jasciikanjiskip \ipsj@j@year \hskip\jasciikanjiskip
1729 #2\hskip\jasciikanjiskip \ipsj@j@month \hskip\jasciikanjiskip
1730 #3\hskip\jasciikanjiskip \ipsj@j@day\ipsj@j@presented\ipsj@j@rp}}
1731 % 3.01(3b)
1732 % 2.07(7)<<
1733 % 2.13(3)
1734 % 2.12(1c)<<
1735
1736 % 2.12(4d)>>
1737 \def\ipsj@space{\hskip\z@ plus\fontdimen\thr@@\font \penalty5000\relax}
1738 \ifDS@landscape % 3.00(8b,g)>>
1739 \def\ipsj@refer@trans{%
1740 (Original version of this article can be found in the IPSJ
1741 Transactions on
1742 \csname ipsj@sig@\ipsj@sig@code @e\endcsname,
1743 Vol.\ipsj@space \number\c@volume,
1744 No.\ipsj@space \number\c@number,
1745 pp.\ipsj@space
1746 \ipsj@thelastpage\c@volpageoffset\ipsj@last@page.)} % 3.00(11)
1747 \else % 3.00(8b,g)<<
1748 \def\ipsj@refer@trans{%
1749 (Paper version of this article can be found in the IPSJ Transactions on
1750 \csname ipsj@sig@\ipsj@sig@code @e\endcsname,
1751 Vol.\ipsj@space\number\c@volume,
1752 No.\ipsj@space SIG\ipsj@sig@numa\ipsj@space
1753 (\ipsj@sig@code\ipsj@space\ipsj@sig@numb),
1754 pp.\ipsj@space
1755 \ipsj@thelastpage\c@volpageoffset\ipsj@last@page.)} % 3.00(11)
1756 \fi
1757 \def\ipsj@refer@online{%
1758 (\ifDS@landscape Original\else Online\fi\space % 3.00(8g)>>
1759 version of this article can be found in the
1760 \ipsj@online@journal\space % 3.00(8g)<<
1761 Vol.\ipsj@space\ipsj@olh@vol,
1762 pp.\ipsj@space
1763 \ipsj@thelastpage\ipsj@olh@page\ipsj@olh@lastpage.)} % 3.00(11)
1764 \def\ipsj@thelastpage#1#2{\begingroup
1765 \@tempcnta#1\relax \edef\@tempb{\number#1}% % 3.00(11)
1766 \ifDS@online \@tempcntb\ipsj@olh@page
1767 \else \@tempcntb\c@volpageoffset\fi
1768 \ifx#2\undefined
1769 \ifx\ipsj@lastpage\undefined \def\@tempa{0}% % 3.00(11)
1770 \else \advance\@tempcntb-\ipsj@lastpage
1771 \advance\@tempcnta-\@tempcntb
1772 \def\@tempa{\number\@tempcnta}%
1773 \fi
1774 \else \def\@tempa{#2}%
1775 \fi
1776 % 3.00(11),3.01(4)>>
1777 \ifnum\@tempa=\z@ \def\@tempc{\ipsj@thepage\@tempb--\penalty5000???}%
1778 \else\ifnum\@tempa=\@tempb \def\@tempc{\ipsj@thepage\@tempa}\relax
1779 \else \def\@tempc{\ipsj@thepage\@tempb--\penalty5000\relax
1780 \ipsj@thepage\@tempa}%
1781 \fi\fi
1782 \@tempc \endgroup} % 3.00(11),3.01(4)<<
1783 % 2.12(4d)<<
1784 \def\ipsj@thepage#1{{\c@page#1\relax \xdef\ipsj@thep{\thepage}}\ipsj@thep}
1785 % 3.01(4)
1786 \newbox\bio@picbox
1787 % The following define the height and width of a picture for biography, and
1788 % the indentation of the first 6 lines. They might be changed.
1789 \def\bio@picheight{100\@Q}
1790 \def\bio@picwidth{80\@Q}
1791
1792 \newif\ifbio@showpicbox
1793 \bio@showpicboxtrue
1794 % Do \bio@showpicboxfalse if you don't want to put a frame box at the
1795 % position for picture.
1796 \ifDS@english
1797 \def\bio@lineheight{9\@Q}
1798 \def\bio@piclines{7}
1799 \def\bio@indent{91\@Q}
1800 \def\bio@hangafter{7}
1801 \else
1802 \def\bio@lineheight{8\@Q}
1803 \def\bio@piclines{6}
1804 \def\bio@indent{96\@Q}
1805 \def\bio@hangafter{5}
1806 \fi
1807
1808 % \verbbiography forces verbatim output of biography (i.e. not ballanced).
1809 \newif\ifbio@verb \bio@verbfalse
1810 \def\verbbiography{\global\bio@verbtrue}
1811 % The environment biography saves texts for biographies into the list of
1812 % \inserts (for floats).
1813 \def\biography{\ifipsj@recommendation\else\par\ra@putrcvacc\fi % 2.04(2)
1814 \def\member{\bio@member{}{\ipsj@j@member}}% %2.12(3a)(1c)>>
1815 \def\nomember{\bio@member{}{}}%
1816 \def\stmember{\bio@member{}{\ipsj@j@stmember}}%
1817 \def\xmember{\bio@member{}}%
1818 \ifDS@printer
1819 \def\Kmember{\bio@Kmember{\ipsj@j@member}}%
1820 \def\Knomember{\bio@Kmember{}}%
1821 \def\Kstmember{\bio@Kmember{\ipsj@j@stmember}}%
1822 \let\Kxmember\bio@Kmember
1823 \fi %2.12(3a)(1c)<<
1824 \ifDS@english \let\author\nomember % 2.12(3d)>>
1825 \ifDS@printer \let\Kauthor\Knomember \fi
1826 \fi % 2.12(3d)<<
1827 \let\adjust\bio@adjust
1828 \ifbio@showpicbox
1829 \setbox\bio@picbox\hbox{\hbox to\z@{\vrule\hskip-0.4pt%
1830 \vtop to\bio@picheight{\vskip\z@\hrule width\bio@picwidth
1831 \vfil\hrule}\hskip-0.4pt\vrule\hss}}%
1832 \else
1833 \setbox\bio@picbox\hbox{}%
1834 \fi
1835 \@tempdima\bio@piclines\baselineskip \advance\@tempdima\bio@lineheight
1836 \dp\bio@picbox\@tempdima
1837 \let\bio@egroup\relax\let\+\ignorespaces\let\@elt\relax
1838 \def\bio@list{}\global\bio@th\z@}
1839
1840 \def\bio@Kmember#1#2#3{\bio@member{#3}{#1}{#2}} % 2.12(3a)
1841 \def\bio@member#1#2#3{\bio@egroup\let\bio@egroup\bio@@egroup % 2.12(3b)>>
1842 \@next\@currbox\@freelist\relax
1843 {\@latexerr{Too many unprocessed floats and biographies}\@ehb}%
1844 \def\@tempa{#3}\def\@tempb{#1}%
1845 \global\setbox\@currbox\hbox\bgroup
1846 \@tempswatrue
1847 \ifx\@tempb\@empty
1848 \ifDS@printer \@tempswafalse
1849 \else \raise\bio@lineheight\copy\bio@picbox
1850 \fi
1851 \else
1852 \setbox\@tempboxa\hbox to\z@{\vtop{\vskip\z@
1853 \hbox{\includegraphics
1854 [width=\bio@picwidth,height=\bio@picheight]{#1.eps}}}%
1855 \hss}% % 2.13(2)
1856 \dp\@tempboxa\dp\bio@picbox
1857 \raise\bio@lineheight\box\@tempboxa
1858 \fi % 2.12(3b)<<
1859 \vtop\bgroup
1860 \let\par\\
1861 \if@tempswa \hangindent\bio@indent\hangafter-\bio@hangafter \fi
1862 \ifDS@english {\bf #3\ }%
1863 \else {\bf\bio@putauthor#3\+ \@nil}%
1864 \def\@tempb{#2}\ifx\@tempb\@empty\else % 2.12(3c)
1865 \ipsj@j@lp#2\ipsj@j@rp\fi{\@@par}\fi % 2.12(3c)(1c)
1866 \ignorespaces}
1867
1868 % Author name format:
1869 % S + G < 5 -> fill space between S/G (like SS__G)
1870 % otherwise -> 1 KC space between S/G (like SS_GG)
1871 \def\bio@putauthor#1 #2\@nil{%
1872 \ifipsj@nonjp#1 #2\else
1873 \setbox\@tempboxa\hbox{\jintercharskip\z@#1#2}%
1874 \setbox\mkt@boxa\hbox{\jintercharskip1cm#1#2}%
1875 \ifdim\wd\@tempboxa=\wd\mkt@boxa #1 #2\else
1876 \def\@tempa{#2}\ifx\@tempa\empty
1877 {\def\+{}\ipsj@warning{Author name #1 doesn't have a space}}%
1878 % 2.00(3)
1879 #1\else
1880 \@tempdima\@mojihaba
1881 \mkt@getnamewidth\mkt@sname{#1}\mkt@getnamewidth\mkt@gname{#2}%
1882 \advance\mkt@sname\mkt@gname
1883 \ifnum\mkt@sname<5\leavevmode\hbox to5\@mojihaba{#1\hfil#2}\else
1884 #1#2\fi\fi\fi\fi}
1885 \def\bio@@egroup{\@@par\hbox{}\egroup\egroup\@tempdima\dp\@currbox
1886 \ifdim\@tempdima>\textheight
1887 \ipsj@warning{Biography of \@tempa\space is too long}% 2.00(3)
1888 \bio@verbtrue \fi
1889 \advance\@tempdima\baselineskip\global\advance\bio@th\@tempdima
1890 \global\dimen\@currbox\@tempdima \global\count\@currbox\z@
1891 {\let\protect\bio@protect\xdef\bio@list{\bio@list\@elt\@currbox}}}
1892 \def\bio@adjust#1{\bio@egroup\let\bio@egroup\relax
1893 \ifbio@verb {\let\protect\bio@protect\xdef\bio@list{\bio@list#1}\fi}}
1894 \def\bio@protect{\noexpand\protect\noexpand}
1895
1896 \def\endbiography{\bio@egroup \@tempswatrue
1897 \ifx\@botlist\@empty\ifx\@deferlist\@empty \@tempswafalse \fi\fi
1898 \ifbio@verb\else\if@tempswa \bio@verbtrue \opt@warning\fi\fi
1899 \ifbio@verb{\let\@elt\bio@putelt \let\protect\relax \bio@list}%
1900 \else\bio@putbio\fi}
1901
1902 \newdimen\bio@colht \newdimen\bio@splitheight
1903 \newdimen\bio@maxgap \newdimen\bio@lastgap
1904 \newdimen\bio@th \newdimen\bio@lhA \newdimen\bio@hA \newdimen\bio@hB
1905 \newdimen\bio@lh \newdimen\bio@rh
1906 \newdimen\bio@tempdim
1907 \newif\ifbio@awful
1908 \newinsert\bio@pbox \count\bio@pbox\@ne
1909
1910 \def\bio@putbio{\let\@elt\relax \let\bio@vskip\relax \allowbreak
1911 \bio@colht\@colht \advance\bio@colht-\topskip
1912 \advance\bio@colht\baselineskip
1913 \@tempdima\bio@colht \advance\@tempdima-\@colroom
1914 \advance\@tempdima\pagetotal
1915 \if@firstcolumn
1916 \ifdim\@tempdima>\bio@th
1917 \global\@lastpagebalancingtrue
1918 {\let\@elt\bio@putelt\bio@list}\vskip-\baselineskip
1919 \else
1920 \ifdim\pagetotal=\z@\else
1921 \dimen\bio@pbox\@tempdima \advance\bio@th\@tempdima
1922 \edef\bio@list{\@elt\bio@pbox\bio@list}\fi
1923 \bio@splitheight\bio@colht \bio@splitpage
1924 \bio@splitheight.5\bio@th
1925 \let\bio@awfulput\bio@specialawfulput
1926 \bio@trybalance\fi
1927 \else \advance\@tempdima\bio@th
1928 \ifdim\@tempdima<\bio@colht
1929 \global\@lastpagebalancingtrue
1930 \ifdim\pagetotal=\z@ \global\opt@baselineskip2\baselineskip\fi
1931 {\let\@elt\bio@putelt\bio@list}\vskip-\baselineskip
1932 \else
1933 \let\bio@awfulput\bio@normalawfulput
1934 \bio@splitheight\z@ \advance\@tempdima-\bio@th
1935 \advance\bio@colht-\@tempdima \bio@splitpage
1936 {\let\@elt\bio@putelt\bio@list}\bio@nextpage
1937 \bio@trybalance\fi
1938 \fi}
1939
1940 \def\bio@trybalance{\bio@split
1941 \let\bio@right\bio@rightA \let\bio@left\bio@leftA
1942 \def\bio@rightx{}\def\bio@leftx{}%
1943 \let\bio@hX\bio@hA \bio@balance
1944 \let\bio@rightxA\bio@rightx \let\bio@leftxA\bio@leftx
1945 \ifbio@awful\@tempcnta\tw@\else\@tempcnta\z@\fi
1946 \let\bio@right\bio@rightB \let\bio@left\bio@leftB
1947 \def\bio@rightx{}\def\bio@leftx{}%
1948 \let\bio@hX\bio@hB \bio@balance
1949 \let\bio@rightxB\bio@rightx \let\bio@leftxB\bio@leftx
1950 \ifbio@awful\advance\@tempcnta\@ne\fi
1951 \ifcase\@tempcnta
1952 \ifdim\bio@hA<\bio@hB \bio@balanceput\bio@leftxA\bio@rightxA
1953 \else \bio@balanceput\bio@leftxB\bio@rightxB\fi
1954 \or \bio@balanceput\bio@leftxA\bio@rightxA
1955 \or \bio@balanceput\bio@leftxB\bio@rightxB
1956 \else \bio@awfulput\fi
1957 \ifx\bio@deferred\empty\vskip-\baselineskip\let\next\relax
1958 \else\bio@nextpage\let\next\bio@trybalance\fi\next}
1959
1960 \def\bio@split{\def\bio@leftA{}\def\bio@leftB{}%
1961 \def\bio@rightA{}\def\bio@rightB{}%
1962 \bio@lhA\z@\@tempdimb\z@ \bio@isplit}
1963 \def\bio@isplit{\ifx\bio@list\empty\let\next\relax\else
1964 \bio@car\@tempdima\@currbox\bio@list
1965 \bio@lhA\@tempdimb\advance\@tempdimb\@tempdima
1966 \edef\bio@leftB{\bio@leftB\@elt\@currbox}%
1967 \ifdim\@tempdimb>\bio@splitheight
1968 \edef\bio@rightA{\@elt\@currbox\bio@list}%
1969 \let\bio@rightB\bio@list \let\next\relax
1970 \else\edef\bio@leftA{\bio@leftA\@elt\@currbox}\let\next\bio@isplit
1971 \fi\fi\next}
1972
1973 \def\bio@balanceput#1#2{{\let\@elt\bio@putelt\let\bio@vskip\bio@xvskip
1974 #1\bio@newpage#2}}
1975 \def\bio@normalawfulput{{\let\bio@vskip\@gobble \@tempcnta\z@
1976 \@tempdima\z@ \bio@addheight\@tempdima\bio@leftxB
1977 \ifdim\@tempdima<\bio@colht
1978 \@tempdima\z@ \bio@addheight\@tempdima\bio@rightxB
1979 \ifdim\@tempdima<\bio@colht \@tempcnta\@ne
1980 \let\@elt\bio@putelt
1981 \bio@leftxB\bio@newpage\bio@rightxB\fi\fi
1982 \ifnum\@tempcnta=\z@
1983 \@tempdima\z@ \bio@addheight\@tempdima\bio@leftxA
1984 \ifdim\@tempdima<\bio@colht
1985 \@tempdima\z@\bio@addheight\@tempdima\bio@rightxA
1986 \ifdim\@tempdima<\bio@colht \@tempcnta\@ne
1987 \let\@elt\bio@putelt
1988 \bio@leftxA\bio@newpage\bio@rightxA\fi\fi\fi
1989 % The following may be redundant.
1990 \ifnum\@tempcnta=\z@
1991 \let\@elt\bio@putelt\bio@listsave\fi}}
1992 \def\bio@specialawfulput{{\advance\bio@th-\dimen\bio@pbox
1993 \ifdim\bio@th<\bio@colht\bio@newpage
1994 \let\bio@newpage\relax\fi\bio@normalawfulput}}
1995
1996 \def\bio@putelt#1{\ifnum\count#1>\z@\else\box#1
1997 \nobreak\vskip-2\baselineskip\prevdepth\z@\hbox{}
1998 \vskip\baselineskip\fi}
1999 \def\bio@xvskip#1{\vskip#1\prevdepth\z@}
2000 \def\bio@newpage{\vskip-\baselineskip\newpage}
2001
2002 \def\bio@nextpage{\bio@newpage \let\bio@list\bio@deferred
2003 \bio@th\z@ \bio@addheight\bio@th\bio@list
2004 \bio@colht\@colht \advance\bio@colht-\topskip
2005 \advance\bio@colht\baselineskip
2006 \bio@splitheight\bio@colht \bio@splitpage
2007 \bio@splitheight.5\bio@th
2008 \let\bio@awfulput\bio@normalawfulput}
2009 \def\bio@splitpage{\let\bio@listsave\bio@list \bio@split
2010 \@tempdima\bio@th \advance\@tempdima-\bio@lhA
2011 \ifdim\@tempdima>\bio@colht
2012 \let\bio@leftAsave\bio@leftA \bio@th\bio@lhA
2013 \let\bio@list\bio@rightA \bio@splitheight\bio@colht
2014 \bio@split \edef\bio@list{\bio@leftAsave\bio@leftA}%
2015 \advance\bio@th\bio@lhA
2016 \let\bio@deferred\bio@rightA
2017 \else\def\bio@deferred{}\let\bio@list\bio@listsave\fi}
2018
2019 % \bio@tolerablegap: maximum tolerable gap between adjacent bio's.
2020 % \bio@tolerablestretch:maximum stretch of a column.
2021
2022 \@tempdima10\baselineskip % This might be changed
2023 \edef\bio@tolerablegap{\the\@tempdima}
2024 \@tempdima15\baselineskip
2025 \edef\bio@tolerablelastgap{\the\@tempdima}
2026 \def\bio@tolerablestretch{2} % This might be changed
2027
2028 \def\bio@balance{\let\@elt\relax \edef\bio@bstack{%
2029 \@elt{{\bio@left}{\bio@right}{}{}{0pt}}}
2030 \bio@xbalance}
2031 \def\bio@xbalance{%
2032 \expandafter\bio@popstack\bio@bstack\@nil
2033 \let\bio@nextA\bio@xbalance \@tempdima\z@
2034 \ifx\bio@left\empty \ifx\bio@right\empty
2035 \let\bio@nextA\bio@balanceend
2036 \else
2037 \bio@addheight\@tempdima\bio@right
2038 \edef\bio@leftx{\bio@leftx\bio@vskip{\the\@tempdima}}%
2039 \advance\bio@hX\@tempdima
2040 \edef\bio@rightx{\bio@rightx\bio@right}\def\bio@right{}%
2041 \bio@pushstack \fi\else
2042 \ifx\bio@right\empty
2043 \bio@addheight\@tempdima\bio@left
2044 \edef\bio@rightx{\bio@rightx\bio@vskip{\the\@tempdima}}%
2045 \advance\bio@hX\@tempdima
2046 \edef\bio@leftx{\bio@leftx\bio@left}\def\bio@left{}%
2047 \bio@pushstack \else
2048 \bio@car\@tempdima\bio@leftbox\bio@left
2049 \bio@car\@tempdimb\bio@rightbox\bio@right
2050 \edef\bio@leftx{\bio@leftx\@elt\bio@leftbox}%
2051 \edef\bio@rightx{\bio@rightx\@elt\bio@rightbox}%
2052 \ifdim\@tempdima>\@tempdimb
2053 \advance\bio@hX\@tempdima
2054 \let\bio@da\@tempdima\let\bio@db\@tempdimb
2055 \bio@ibalance\bio@left\bio@right\bio@leftx\bio@rightx
2056 \else \advance\bio@hX\@tempdimb
2057 \let\bio@da\@tempdimb\let\bio@db\@tempdima
2058 \bio@ibalance\bio@right\bio@left\bio@rightx\bio@leftx\fi
2059 \fi\fi\bio@nextA}
2060 \def\bio@ibalance#1#2#3#4{\let\bio@nextB\relax
2061 \ifx#2\empty
2062 \advance\bio@da-\bio@db
2063 \edef#4{#4\bio@vskip{\the\bio@da}}\bio@pushstack\else
2064 \bio@car\bio@tempdim\@currbox#2 \advance\bio@db\bio@tempdim
2065 \ifdim\bio@da<\bio@db
2066 \advance\bio@db-\bio@da
2067 \let\@tempa#3\edef#3{#3\bio@vskip{\the\bio@db}}%
2068 \let\@tempb#4\edef#4{#4\@elt\@currbox}%
2069 \advance\bio@hX\bio@db \bio@pushstack
2070 \advance\bio@hX-\bio@db
2071 \edef#2{\@elt\@currbox#2}%
2072 \advance\bio@tempdim-\bio@db
2073 \let#3\@tempa \edef#4{\@tempb\bio@vskip{\the\bio@tempdim}}%
2074 \bio@pushstack
2075 \else \edef#4{#4\@elt\@currbox}\def\bio@nextB{\bio@ibalance#1#2#3#4}%
2076 \fi\fi\bio@nextB}
2077 \def\bio@balanceend{\bio@awfulfalse \def\bio@bstack{}%
2078 \bio@maxgap\z@ \bio@lastgap\z@
2079 \bio@checkgap\bio@leftx \bio@checkgap\bio@rightx
2080 \ifdim\bio@maxgap>\bio@tolerablegap\relax\bio@awfultrue\fi
2081 \ifdim\bio@lastgap>\bio@tolerablelastgap\relax\bio@awfultrue\fi
2082 \ifdim\bio@hX>\bio@tolerablestretch\bio@splitheight\bio@awfultrue\fi
2083 \ifdim\bio@hX>\bio@colht\bio@awfultrue\fi}
2084 \def\bio@checkgap#1{{\@tempdima\z@ \@tempdimb\z@ \bio@tempdim\z@
2085 \let\@elt\bio@cgelt \let\bio@vskip\bio@cgvskip #1\relax
2086 \ifdim\@tempdima>\bio@maxgap \global\bio@maxgap\@tempdima \fi
2087 \ifdim\bio@tempdim>\bio@lastgap \global\bio@lastgap\bio@tempdim \fi}}
2088 \def\bio@cgvskip#1{\advance\bio@tempdim#1\relax
2089 \ifdim\bio@tempdim>\@tempdimb \@tempdimb\bio@tempdim\fi}
2090 \def\bio@cgelt#1{\@tempdima\@tempdimb \bio@tempdim\z@}
2091 \def\bio@popstack\@elt#1#2\@nil{\edef\bio@bstack{#2}\bio@ipopstack#1}
2092 \def\bio@ipopstack#1#2#3#4#5{\def\bio@left{#1}\def\bio@right{#2}%
2093 \def\bio@leftx{#3}\def\bio@rightx{#4}\bio@hX#5\relax}
2094 \def\bio@pushstack{\def\bio@bstackx{}%
2095 \expandafter\bio@ipushstack\bio@bstack\@elt\@nil}
2096 \def\bio@ipushstack\@elt#1{\def\@tempc{#1}%
2097 \ifx\@tempc\@nnil \edef\bio@bstack{\bio@bstackx\bio@stackelt}%
2098 \let\bio@nextC\relax \else
2099 \bio@iipushstack#1\fi\bio@nextC}
2100 \def\bio@iipushstack#1#2#3#4#5{\ifdim#5>\bio@hX
2101 \edef\bio@bstackx{\bio@bstackx\bio@stackelt
2102 \@elt{{#1}{#2}{#3}{#4}{#5}}}%
2103 \let\bio@nextC\bio@pushstackend\else
2104 \edef\bio@bstackx{\bio@bstackx
2105 \@elt{{#1}{#2}{#3}{#4}{#5}}}%
2106 \let\bio@nextC\bio@ipushstack\fi}
2107 \def\bio@pushstackend#1\@elt\@nil{\edef\bio@bstack{\bio@bstackx#1}}
2108 \def\bio@stackelt{\@elt{{\bio@left}{\bio@right}{\bio@leftx}{\bio@rightx}%
2109 {\the\bio@hX}}}
2110 \def\bio@addheight#1#2{\def\@elt##1{\advance#1\dimen##1}#2\let\@elt\relax}
2111 \def\bio@car#1#2#3{\expandafter\bio@icar#3\@nil#1#2#3}
2112 \def\bio@icar\@elt#1#2\@nil#3#4#5{#3=\dimen#1\relax\def#4{#1}\def#5{#2}}
2113
2114
2115 %%%%%% Miscellaneous %%%%%%
2116
2117 \flushbottom
2118
2119 \ifDS@english
2120 \hbadness9999 \tolerance9999
2121 \else
2122 \hbadness5000 \tolerance5000
2123 \pretolerance\m@ne
2124 \fi
2125
2126 \input{ipsjcommon.sty}
2127
2128 \twocolumn
2129
2130 \endinput