comparison Paper/ipsjpapers.sty @ 0:58c6244a184d

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