comparison paper/ipsjpapers.sty @ 0:0127effb8fcd

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