comparison ipsjpapers.sty @ 0:39af8ab46cbb

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