comparison ipsjcommon.sty @ 0:9fc7603e8e8b

add nobu-prosym
author Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
date Thu, 17 Nov 2011 08:38:35 +0900
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:9fc7603e8e8b
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 % ipsjcommon.sty 30-Jan-02 by Hiroshi Nakashima (ver 2.09)
6 % (revision history deleted)
7 % ipsjcommon.sty 24-Apr-95 by Hiroshi Nakashima (ver 1.0)
8
9 %%%%%% Sectioning Commands %%%%%%
10
11 % \section: 2行取り
12 % others: 1行取り
13 %
14 % Note that \paragraph and \subparagraph act as \subsubsubsection and
15 % \subsubsubsubsection resp.
16 %
17 % The form of sectioning header is;
18 % <1 Kanji sp> \the<sect-command> [`.' if \section] <1 Kanji sp> <title>
19 % Nothe that <1 Kanji sp> is that of \normalsize.
20
21 \def\section{\@startsection
22 {section}{1}{\@mojihaba}{\sec@aboveskip}{\sec@belowskip}{\fs@sec\bf}}
23 \let\ipsj@section\section % 2.04(1)
24 \def\subsection{\@startsection
25 {subsection}{2}{\@mojihaba}{\z@}{\z@}{\fs@subsec\bf}}
26 \def\subsubsection{\@startsection
27 {subsubsection}{3}{\@mojihaba}{\z@}{\z@}{\fs@subsec\bf}}
28 \def\paragraph{\@startsection
29 {paragraph}{4}{\@mojihaba}{\z@}{\z@}{\fs@subsec\bf}}
30 \def\subparagraph{\@startsection
31 {subparagraph}{5}{\@mojihaba}{\z@}{\z@}{\fs@subsec\bf}}
32
33 \newcounter{section}
34 \newcounter{subsection}[section]
35 \newcounter{subsubsection}[subsection]
36 \newcounter{paragraph}[subsubsection]
37 \newcounter{subparagraph}[paragraph]
38
39 \def\thesection{\arabic{section}}
40 \def\sec@section@postfix{.}
41 \def\thesubsection{\thesection.\arabic{subsection}}
42 \def\thesubsubsection{\thesubsection.\arabic{subsubsection}}
43 \def\theparagraph{\thesubsubsection.\arabic{paragraph}}
44 \def\thesubparagraph{\theparagraph.\arabic{subparagraph}}
45
46 \setcounter{secnumdepth}{5}
47
48 \def\appendix{\let\sec@sec\section
49 \def\section{\@startsection
50 {section}{1}{\@mojihaba}{\z@}{\z@}{\fs@subsec\bf}}%
51 \def\thesection{\appendixprefix\arabic{section}}%
52 \def\sec@section@postfix{\appendixpostfix}%
53 \stepcounter{section}\setcounter{section}{0}%
54 \@ifnextchar[%]
55 {\sec@oappendix}{\sec@xappendix}}
56 \def\sec@xappendix{\@ifstar{\let\section\sec@sec}%
57 {\sec@sec*{\ifDS@english Appendix\else 付録\fi}}}
58 \def\sec@oappendix[#1]{\sec@sec*{\ifDS@english Appendix: \else
59 付録\hskip\jspaceskip\fi #1}}
60 \def\appendixprefix{A.}
61 \def\appendixpostfix{}
62
63 \def\acknowledgment{\par
64 {\bf \ifDS@english Acknowledgments\else 謝辞\fi}\hskip\@mojihaba
65 \ignorespaces}
66 \let\endacknowledgment\par
67
68 \newif\ifipsj@recommendation \ipsj@recommendationfalse % 2.04(1) >>
69 \def\recommendation#1{\global\ipsj@recommendationtrue
70 \ifDS@draft\else \ra@putrcvacc\fi
71 \ipsj@section*{#1}
72 }
73 \def\endrecommendation{\par\vskip\baselineskip\penalty\opt@magicpenalty}
74 % 2.04(1) <<
75
76 % Modified \@startsection has a trick for 2行取り of \section, which must
77 % work even if \section appears the top of a page. The BEFORESKIP must be
78 % inserted with respect to the previous baseline. So, we must go back to
79 % the imaginary previous baseline at the top of a page. That is, we do;
80 % \vskip\baselineskip \vspace*{-\baselineskip}
81 % which resuls;
82 % <a> do nothing at midpage
83 % <b> go to the first baseline by \topskip, then go back to 0th
84 % baseline by \vspace*.
85 % The trick "\vskip-\prevdepth \prevdepth\z@" will assure exact vertical
86 % space even when the last line has much depth.
87 %
88 % \@startsection {NAME}{LEVEL}{INDENT}{BEFORESKIP}{AFTERSKIP}{STYLE}
89 \def\@startsection#1#2#3#4#5#6{\if@noskipsec \leavevmode \fi
90 \par \@tempskipa #4\relax
91 \@afterindenttrue
92 \ifdim\@tempskipa<\z@ \@tempskipa-\@tempskipa \@afterindentfalse\fi
93 \if@nobreak \everypar{}\else \addpenalty{\@secpenalty}\fi
94 \ifdim\@tempskipa>\z@
95 % Here is the trick for \section.
96 \vskip-\prevdepth \prevdepth\z@ \vskip\baselineskip
97 \vspace*{-\baselineskip}\vskip\@tempskipa\fi
98 \@ifstar
99 {\@ssect{#3}{#4}{#5}{#6}}{\@dblarg{\@sect{#1}{#2}{#3}{#4}{#5}{#6}}}}
100
101 % \@sect is modified to cope with `.' for \section and 文字取り
102 %
103 % \@sect{NAME}{LEVEL}{INDENT}{BEFORESKIP}{AFTERSKIP}{STYLE}[TITLE]{TITLE}
104 \def\@sect#1#2#3#4#5#6[#7]#8{\ifnum #2>\c@secnumdepth
105 \def\@svsec{}\else
106 \refstepcounter{#1}
107 % 2.00(1)>>
108 \let\@@protect\protect \def\protect{\noexpand\protect\noexpand}
109 \edef\@svsec{\csname the#1\endcsname \csname sec@#1@postfix\endcsname
110 \hskip\@mojihaba} \let\protect\@@protect\fi % 2.00(1)<<
111 \@tempskipa #5\relax
112 \ifdim \@tempskipa<\z@
113 \def\@svsechd{#6\hskip #3\relax\@svsec #8} % 2.00(1)
114 \else
115 \begingroup #6\relax
116 \@hangfrom{\hskip #3\relax\@svsec}%
117 {\interlinepenalty\@M \sec@mojidori{#8}\par}%
118 \endgroup
119 \fi \@xsect{#5}}
120
121 % \@ssect is modified to cope with 文字取り
122 %
123 % \@sect{INDENT}{BEFORESKIP}{AFTERSKIP}{STYLE}{TITLE}
124 \def\@ssect#1#2#3#4#5{\@tempskipa #3\relax
125 \ifdim \@tempskipa<\z@ \def\@svsechd{#4\hskip #1\relax #5}%
126 \else \begingroup #4%
127 \@hangfrom{\hskip #1}{\interlinepenalty\@M
128 \sec@mojidori{#5}\par}\endgroup
129 \fi \@xsect{#3}}
130
131 %% Modify \@xsect to avoid (buggy) \clubpenalty=10000. (H.N.)
132 \def\@xsect#1{\@tempskipa #1\relax
133 \ifdim \@tempskipa<\z@
134 \glboal\@nobreakfalse \global\@noskipsectrue
135 \everypar{\global\@noskipsecfalse \hskip-\parindent
136 \begingroup \@svsechd \endgroup \unskip
137 \hskip -#1\everypar{}}%
138 \else
139 \par \nobreak
140 \vskip \@tempskipa \global\@nobreaktrue
141 \everypar{\global\@nobreakfalse
142 \if@afterindent\else {\setbox0\lastbox}\fi \everypar{}}
143 \fi\ignorespaces}
144
145 % Here is a trick for 文字取り of sectioning tilte. The rule is;
146 % 2 - 4 Kanji char -> 5 Kanji char
147 % otherwise -> natural width
148 %
149 \def\sec@mojidori#1{\setbox0\hbox{#1}\settowidth\@tempdimb{あ}%
150 \ifdim\wd0>4.5\@tempdimb #1\else
151 \ifdim\wd0<1.5\@tempdimb #1\else
152 \jintercharskip\fill \jasciikanjiskip\fill \jmathkanjiskip\fill
153 \leavevmode\hbox to5\@tempdimb{#1\hfil}\fi\fi}
154
155 %%%%%% List-like Environments %%%%%%
156 %
157 % LM RM LW LS LPI II
158 % default 2K 0 0.75K 0.25K 0 0
159 % \enumerate 3K 0 3K 0 0 0
160 % \Enumerate 0 0 3K 0 0 3K
161 % \ENUMERATE 0 0 3K 0 0 4K
162 % \enumerate* 1K 0 3K 0 0 2K
163 % \itemize 2K 0 2K 0 0 0
164 % \Itemize 0 0 2K 0 0 2K
165 % \ITEMIZE 0 0 2K 0 0 3K
166 % \itemize* 1K 0 2K 0 0 1K
167 % \description 2K 0 0 1K 0 -1K
168 % \Description 0 0 0 1K 0 1K
169 % \DESCRIPTION 0 0 0 1K 0 2K
170 % \description* 1K 0 0 1K 0 0
171 % \verse 3K 2K 0.75K 0.25K -1K -1K
172 % \quotation 2K 2K 0.75K 0.25K 1K 1K
173 % \quote 2K 2K 0.75K 0.25K 0 0
174 %
175 % where LM is \leftmargin, RM is \rightmargin, LW is \labelwidth, LS is
176 % \labelsep, \LPI is \listparindent, II is \itemindent, and K is Kanji char
177 % width (\@mojihaba).
178 %
179 % All vertical space parameters, \topsep, \partopsep, \itemsep and \parsep,
180 % are 0pt.
181
182 \leftmargini2\@mojihaba
183 \leftmarginii2\@mojihaba
184 \leftmarginiii2\@mojihaba
185 \leftmarginiv2\@mojihaba
186 \leftmarginv2\@mojihaba
187 \leftmarginvi2\@mojihaba
188
189 \def\lst@listi{\labelsep.75\@mojihaba \labelwidth.25\@mojihaba
190 \rightmargin\z@ \listparindent\z@ \itemindent\z@
191 \partopsep\z@ \parsep\z@ \topsep\z@ \itemsep\z@}
192 \def\@listi{\leftmargin\leftmargini \lst@listi}
193 \def\@listii{\leftmargin\leftmarginii \lst@listi}
194 \def\@listiii{\leftmargin\leftmarginiii \lst@listi}
195 \def\@listiv{\leftmargin\leftmarginiv \lst@listi}
196 \def\@listv{\leftmargin\leftmarginv \lst@listi}
197 \def\@listvi{\leftmargin\leftmarginvi \lst@listi}
198
199 \@listi
200
201 \def\labelenumi{(\,\theenumi\,)}
202 \def\theenumi{\arabic{enumi}}
203 \def\labelenumii{(\,\theenumii\,)}
204 \def\theenumii{\alph{enumii}}
205 \def\p@enumii{\theenumi}
206 \def\labelenumiii{(\,\theenumiii\,)}
207 \def\theenumiii{\roman{enumiii}}
208 \def\p@enumiii{\theenumi(\theenumii)}
209 \def\labelenumiv{(\,\theenumiv\,)}
210 \def\theenumiv{\Alph{enumiv}}
211 \def\p@enumiv{\p@enumiii\theenumiii}
212 \def\enumerate{\ifnum \@enumdepth >3 \@toodeep\else
213 \advance\@enumdepth \@ne
214 \edef\@enumctr{enum\romannumeral\the\@enumdepth}
215 \list{\csname label\@enumctr\endcsname}{\usecounter
216 {\@enumctr}\def\makelabel##1{##1\hss}%
217 \leftmargin3\@mojihaba \labelwidth3\@mojihaba \labelsep\z@}\fi}
218 \let\endenumerate\endlist
219
220 \def\labelitemi{$\bullet$}
221 \def\labelitemii{\bf --}
222 \def\labelitemiii{$\ast$}
223 \def\labelitemiv{$\cdot$}
224 \def\itemize{\ifnum \@itemdepth >3 \@toodeep\else \advance\@itemdepth \@ne
225 \edef\@itemitem{labelitem\romannumeral\the\@itemdepth}%
226 \list{\csname\@itemitem\endcsname}{\def\makelabel##1{\hss##1\hss}%
227 \labelwidth2\@mojihaba \labelsep\z@}\fi}
228 \let\enditemize\endlist
229
230 \def\description{\list{}{\labelwidth\z@ \labelsep\@mojihaba
231 \itemindent\labelsep \advance\itemindent-\leftmargin
232 \def\makelabel##1{\bf ##1}}}
233 \let\enddescription\endlist
234
235 \let\latex@trivlist\@trivlist
236 \def\lst@trivlist#1#2{\leftmargin#1\relax
237 \itemindent\labelwidth \advance\itemindent\labelsep
238 \advance\itemindent#2\relax
239 \let\@trivlist\latex@trivlist \@trivlist}
240
241 \def\lst@Trivlist{\def\@trivlist{\lst@trivlist\z@\z@}}
242 \def\Enumerate{\lst@Trivlist \enumerate}
243 \let\endEnumerate\endlist
244 \def\Itemize{\lst@Trivlist \itemize}
245 \let\endItemize\endlist
246 \def\Description{\lst@Trivlist \description}
247 \let\endDescription\endlist
248
249 \def\lst@TRIVLIST{\def\@trivlist{\lst@trivlist\z@\@mojihaba}}
250 \def\ENUMERATE{\lst@TRIVLIST \enumerate}
251 \let\endENUMERATE\endlist
252 \def\ITEMIZE{\lst@TRIVLIST \itemize}
253 \let\endITEMIZE\endlist
254 \def\DESCRIPTION{\lst@TRIVLIST \description}
255 \let\endDESCRIPTION\endlist
256
257 \def\lst@strivlist{\def\@trivlist{\lst@trivlist\@mojihaba{-\@mojihaba}}}
258 \@namedef{enumerate*}{\lst@strivlist \enumerate}
259 \@namedef{endenumerate*}{\endlist}
260 \@namedef{itemize*}{\lst@strivlist \itemize}
261 \@namedef{enditemize*}{\endlist}
262 \@namedef{description*}{\lst@strivlist \description}
263 \@namedef{enddescription*}{\endlist}
264
265 \def\verse{\let\\=\@centercr
266 \list{}{\itemindent-\@mojihaba \listparindent\itemindent
267 \rightmargin\leftmargin \advance\leftmargin\@mojihaba}\item[]}
268 \let\endverse\endlist
269 \def\quotation{\list{}{\listparindent\@mojihaba \itemindent\listparindent
270 \rightmargin\leftmargin}\item[]}
271 \let\endquotation\endlist
272 \def\quote{\list{}{\rightmargin\leftmargin}\item[]}
273 \let\endquote\endlist
274
275 \def\newtheorem{\@ifstar
276 {\theo@newtheorem{\theo@it}{\ }}{\theo@newtheorem{}{\theo@sp}}}
277 \def\theo@newtheorem#1#2#3{\@namedef{theo@it@#3}{#1}\@namedef{theo@sp@#3}{#2}%
278 \@ifnextchar[%]
279 {\@othm{#3}}{\@nthm{#3}}}
280 \def\@begintheorem#1#2{\DESCRIPTION \csname theo@it@\@currenvir\endcsname
281 \item[#1\csname theo@sp@\@currenvir\endcsname #2]}
282 \def\@opargbegintheorem#1#2#3{\DESCRIPTION
283 \csname theo@style@\@currenvir\endcsname
284 \item[#1\csname theo@sp@\@currenvir\endcsname #2\ (#3)]}
285 \let\@endtheorem\endlist % 1.02(2)
286 \ifDS@english
287 \let\theo@it\it \let\theo@sp\ %
288 \else
289 \let\theo@it\relax \let\theo@sp\relax
290 \fi
291
292 %%%%%% Bibliography %%%%%%
293 %
294 % 1. Label format is "<nn>)".
295 % 2. \leftmargin 24Q (or 2K)
296 % 3. \labelsep is 6Q (or 0.5K)
297 % 4. \baselineskip is 16Q(j)/15Q(e)/normal(d)
298 % 5. ~ and \ is null but stretchable and (hardly) breakable. % 2.09(1)
299
300 \def\thebibliography#1{%
301 \section*{\hskip-\@mojihaba\hfill\hbox{\bib@refname}\hfill\hskip\z@}
302 \ifDS@draft \@tempdima\@mojihaba \else\@tempdima12\@Q\fi
303 \list{\arabic{enumi}\rlap{%(
304 )}}%
305 {\fs@bibliography \leftmargin2\@tempdima \labelwidth\z@
306 \labelsep\@tempdima \itemindent.5\@tempdima
307 \usecounter{enumi}\def\makelabel##1{\hss\llap{##1}}}
308 \def\newblock{\hskip .11em plus .33em minus .07em}
309 \sloppy \frenchspacing
310 \def\ {\hskip\z@ plus\fontdimen\thr@@\font \penalty5000\relax}}
311 % 2.09(1)
312 \ifDS@english
313 \def\bib@refname{References}
314 \else
315 {\fs@sec \@tempdima7\jspaceskip
316 \xdef\bib@refname{\hbox to\the\@tempdima{\jintercharskip\fill 参考文献}}}
317 \fi
318 \newdimen\bib@adjustheight \bib@adjustheight-\maxdimen
319 \def\endthebibliography{\endlist \par \@normalsize
320 \@tempdima\@colht \advance\@tempdima-\@colroom
321 \advance\@tempdima\pagetotal \advance\@tempdima-\prevdepth
322 \advance\@tempdima-\topskip
323 \@tempdimb\@tempdima \divide\@tempdima\baselineskip
324 \@tempcnta\@tempdima \@tempdima\@tempcnta\baselineskip
325 \advance\@tempdima-\@tempdimb
326 \ifdim\@tempdima<\z@ \advance\@tempdima\baselineskip \fi
327 \vskip-\prevdepth \vskip\@tempdima \prevdepth\z@
328 \bib@adjustheight\@tempdimb \advance\bib@adjustheight\@tempdima
329 \global\advance\bib@adjustheight\topskip
330 \if@firstcolumn\else\global\advance\bib@adjustheight\@M pt\fi}
331
332
333 %%%%%% Floats %%%%%%
334
335 % You may need to change following parameters
336 \setcounter{topnumber}{4}
337 \setcounter{bottomnumber}{4}
338 \setcounter{totalnumber}{8}
339 \setcounter{dbltopnumber}{4}
340 \def\topfraction{.9}
341 \def\bottomfraction{.9}
342 \def\textfraction{.1}
343 \def\dbltopfraction{.9}
344 \def\floatpagefraction{.9}
345 \def\dblfloatpagefraction{.9}
346
347 \newcounter{figure}
348 \newcounter{table}
349 \def\thefigure{\@arabic\c@figure}
350 \def\thetable{\@arabic\c@table}
351 \def\fps@figure{tbp}
352 \def\fps@table{tbp}
353 \def\ftype@figure{1}
354 \def\ftype@table{2}
355 \def\fnum@figure{\fname@figure\thefigure}
356 \def\fnum@table{\fname@table\thetable}
357 \ifDS@english
358 \def\fname@figure{Fig.\,} % 2.06(1)
359 \def\fname@Figure{Figure~}
360 \def\fname@table{Table~}
361 \else
362 \def\fname@figure{図\fref@nobreak} % 1.06(1)
363 \let\fname@Figure\fname@figure
364 \def\fname@table{表\fref@nobreak} % 1.06(1)
365 \fi
366 \def\fnum@efigure{Fig.\,\thefigure} % 2.06(1)
367 \def\fnum@etable{Table~\thetable}
368
369 % 1.06(3) >>
370 \def\figure{\let\cap@afterskip\relax \let\flt@fontsize\relax \@float{figure}}
371 \def\endfigure{\end@float}
372 \@namedef{figure*}{\let\cap@afterskip\relax \let\flt@fontsize\relax
373 \@dblfloat{figure}}
374 \@namedef{endfigure*}{\end@dblfloat}
375
376 %% Default font for table env. is \footnotesize (H.N.)
377 \def\table{\let\cap@beforeskip\relax \let\flt@fontsize\fs@table
378 \@float{table}}
379 \def\endtable{\end@float}
380 \@namedef{table*}{\let\cap@beforeskip\relax \let\flt@fontsize\fs@table
381 \@dblfloat{table}} % 2.01(2)
382 \@namedef{endtable*}{\end@dblfloat}
383 % 1.06(3) <<
384
385 \let\latex@float\@float
386 \let\latex@dbflt\@dbflt
387 \def\@float{\cap@linewidth\hsize \cap@hsize\hsize \latex@float}
388 \def\@dbflt{\cap@linewidth.8\textwidth \cap@hsize.667\textwidth \latex@dbflt}
389 \let\latex@xfloat\@xfloat % 1.06(3)
390 \def\@xfloat#1[#2]{\latex@xfloat#1[#2]\flt@fontsize}
391 % 1.06(3)
392 \def\end@float{\flt@endfloat
393 \ifdim\bib@adjustheight=-\maxdimen\else
394 \advance\bib@adjustheight\@tempdima
395 \global\advance\bib@adjustheight\baselineskip \fi
396 \ifnum\@floatpenalty <\z@
397 \@nameuse{@largefloatcheck}% % 2.00(2)
398 \@cons\@currlist\@currbox
399 \ifdim \ht\@currbox >\textheight
400 \ht\@currbox\textheight \fi
401 \ifnum\@floatpenalty < -\@Mii
402 \penalty -\@Miv
403 \@tempdima\prevdepth \vbox{} \prevdepth\@tempdima
404 \penalty\@floatpenalty
405 \else \vadjust{\penalty -\@Miv \vbox{}\penalty\@floatpenalty}\@esphack
406 \fi\fi}
407 \def\end@dblfloat{\if@twocolumn \flt@endfloat
408 \ifnum\@floatpenalty <\z@ \@cons\@dbldeferlist\@currbox\fi
409 \ifnum \@floatpenalty =-\@Mii \@esphack\fi\else\end@float\fi}
410 \def\flt@endfloat{\par \vskip\z@
411 \global\@minipagefalse \@nameuse{outer@nobreak}\egroup % 2.00(2)
412 \@nameuse{color@endbox}\@normalsize % 2.00(2)
413 \@tempdima\ht\@currbox \advance\@tempdima\dp\@currbox
414 \divide\@tempdima\baselineskip \@tempcnta\@tempdima
415 \advance\@tempcnta\@ne \@tempdima\@tempcnta\baselineskip
416 \global\setbox\@currbox\vbox to\@tempdima{\box\@currbox\vfil}}
417 % 2.10(1)
418
419 \def\cap@beforeskip{\nointerlineskip\vskip5pt}
420 \def\cap@afterskip{\nointerlineskip\vskip5pt}
421 \long\def\@caption#1[#2]#3{\par\begingroup
422 \fs@caption \cap@beforeskip
423 \@makecaption{{\bf \csname fnum@#1\endcsname}}{\ignorespaces#3}\par
424 \ifDS@english \cap@afterskip \fi
425 \endgroup}
426 \def\ecaption{\@dblarg{\@ecaption\@captype}}
427 \long\def\@ecaption#1[#2]#3{\par
428 \begingroup \fs@caption
429 \@makecaption{\csname fnum@e#1\endcsname}{\ignorespaces #3}\par
430 \cap@afterskip
431 \endgroup}
432
433 \newif\ifcap@sw
434 \newdimen\cap@linewidth
435 \newdimen\cap@hsize
436 \newcount\cap@prevgraf
437 \newbox\cap@box
438 \let\latex@label\label
439 \long\def\@makecaption#1#2{\begingroup \gdef\cap@label{}\let\label\@gobble
440 \setbox0\hbox{#1\hskip\jspaceskip}
441 \advance\cap@linewidth-\wd0 \advance\cap@hsize-\wd0
442 \cap@makepar\cap@linewidth{#2}{\def\label##1{{% %1.03(1)
443 \def\protect{\noexpand\protect\noexpand} %1.03(1)
444 \xdef\cap@label{\cap@label\protect\label{##1}}}}} %1.03(1)
445 \cap@swtrue
446 \ifnum\cap@prevgraf=\@ne
447 \setbox1\vbox{\unvcopy1\cap@getbox1
448 \ifhbox1 \global\setbox\cap@box\hbox{\unhbox1}
449 \ifdim\wd\cap@box>\cap@linewidth\else
450 \global\cap@swfalse \fi\fi}
451 \ifcap@sw\else
452 \cap@put{\vtop{\box\cap@box\hbox{}}}
453 \fi\fi
454 \ifcap@sw \cap@makepar\cap@hsize{#2}\relax
455 \ifnum\cap@prevgraf=\tw@
456 \setbox1\vbox{\unvcopy1\cap@getbox2\cap@getbox3
457 \ifhbox2\ifhbox3
458 \setbox2\hbox{\unhbox2}\setbox3\hbox{\unhbox3}
459 \ifdim\wd2>\cap@hsize\else
460 \ifdim\wd3>\cap@hsize\else
461 \global\cap@swfalse
462 \global\setbox\cap@box\vtop{\box3\box2\hbox{}}
463 \fi\fi\fi\fi}\fi
464 \ifcap@sw \setbox1\vtop{\hsize\cap@hsize
465 \@parboxrestore #2\par\hbox{}}\cap@put{\box1}
466 \else\cap@put{\box\cap@box}\fi
467 \fi
468 \endgroup \cap@label}
469 \long\def\cap@makepar#1#2#3{\setbox1\vbox{\hsize#1\@parboxrestore
470 \rightskip\@flushglue \hfuzz\maxdimen
471 \exhyphenpenalty\z@ \finalhyphendemerits\z@
472 \let\@@par\cap@par \let\par\cap@par \global\cap@prevgraf\z@
473 #3#2\cap@par}}
474 \let\cap@@par\@@par
475 \def\cap@par{\cap@@par\global\advance\cap@prevgraf\prevgraf \prevgraf\z@}
476 \def\cap@put#1{\hbox to\hsize{\hss\box0#1\hss}
477 \vskip-\baselineskip\prevdepth\z@}
478 \def\cap@getbox#1{\@tempcnta10\relax\@whilenum\@tempcnta>0\do{%
479 \unskip\unkern\unpenalty\advance\@tempcnta\m@ne}\setbox#1\lastbox}
480
481 \def\figref{\fref@ref\fname@figure}
482 \def\Figref{\fref@ref\fname@Figure}
483 \def\tabref{\fref@ref\fname@table}
484 \let\Tabref\tabref
485 \def\fref@ref#1{\@ifstar{\fref@sref{#1}}{\fref@iref\bf{#1}}}
486 \def\fref@iref#1#2#3{{\@ifundefined{fref@r@#3}%
487 {#1#2\fref@doref{#3}\global\@namedef{fref@r@#3}{}}{#2\fref@doref{#3}}}}
488 \def\fref@sref#1#2{#1\fref@doref{#2}}
489 \def\fref@doref#1{{\let\null\relax\ref{#1}}} % 1.06(2)
490 \def\fref@nobreak{\nobreak\ifASCII\else\hskip\@@jasciikanjiskip\fi}
491 % 1.06(1)
492
493 \def\fig@extraspace{3mm} %1.04(4)
494 \def\figspace#1{\vskip#1\vskip\fig@extraspace} %1.04(4)
495
496 %%%%%% Footnote %%%%%%
497
498 %% The following codes are from pfnote.sty, by H. Nakashima of Kyoto Univ.,
499 %% to reset footnote counter at the begining of every page. (H.N.)
500
501 % 1.04(2c)>>
502 \def\footnote{\@ifnextchar[%]
503 {\@xfootnote}{{\PF@adjustfnote \stepcounter{\@mpfn}%
504 \xdef\@thefnmark{\thempfn}}\@footnotemark\@footnotetext}}
505 \def\footnotemark{\@ifnextchar[%]
506 {\@xfootnotemark}{{\PF@adjustfnote \stepcounter{footnote}%
507 \xdef\@thefnmark{\thefootnote}}\@footnotemark}}
508 % 1.04(2c)<<
509
510 \newcount\PF@fnotectr\global\PF@fnotectr=\z@
511 \newcount\PF@page\global\PF@page=-\@M
512 \def\PF@thepage{\number\c@page}
513 \def\PF@adjustfnote{\global\advance\PF@fnotectr\@ne
514 \expandafter\ifx\csname PF@fn\number\PF@fnotectr\endcsname\relax
515 \global\c@footnote\z@\else
516 \expandafter\@tempcnta\csname PF@fn\number\PF@fnotectr\endcsname\relax
517 \ifnum\@tempcnta=\PF@page\else
518 \global\PF@page\@tempcnta \global\c@footnote\z@ \fi\fi
519 % 1.04(2a)>>
520 \expandafter\ifx\csname PF@fnpage\number\PF@page\endcsname\relax \else
521 \expandafter\@tempcnta\csname PF@fnpage\number\PF@page\endcsname\relax
522 % 2.00(4)>>
523 \ifnum\@tempcnta>\tw@ \global\let\thefootnote\thefootnotemany
524 \else \global\let\thefootnote\thefootnoteord \fi\fi % 2.00(4)<<
525 \@tempcnta\c@footnote \multiply\@tempcnta\@M
526 \advance\@tempcnta\PF@fnotectr
527 \if@filesw{\let\PF@thepage\relax
528 \xdef\@gtempa{\write\@auxout{\string\PF@fnpage
529 {\number\@tempcnta}{\PF@thepage}}}}%
530 \@gtempa\fi}
531 % 1.04(2a)<<
532
533 % 1.04(2a)>>
534 \def\PF@fnpage#1#2{\@tempcnta#1\relax \@tempcntb\@tempcnta \divide\@tempcnta\@M
535 \expandafter\xdef\csname PF@fnpage#2\endcsname{\number\@tempcnta}
536 \multiply\@tempcnta\@M \advance\@tempcntb-\@tempcnta
537 \global\@namedef{PF@fn\number\@tempcntb}{#2}}
538 % 1.04(2a)<<
539 %% End of quote from pfnote.sty. (H.N.)
540
541 \long\def\@makefntext#1{\leftskip20\@Q
542 \noindent\llap{\@makefnmarkforfn\hskip-\scriptspace\hskip5\@Q}#1}
543 % 1.04(2e)
544 \def\@makefnmarkstar{$^{\hbox{\tiny\fn@fontv\@thefnmark}}$} % 1.04(2d)
545 \def\@makefnmarkdagger{$\@thefnmark$}
546 \let\@makefnmarkforfn\@makefnmarkstar
547
548 \def\@makefnmark{\smash{\hbox{\scriptsize\fn@fontvi$^{\@thefnmark}$}}}
549 % 1.04(2d)
550 % smashed to make it
551 % zero height
552
553 %% Awful definition of \thefootnote to put subsequent ☆'s. (H.N.)
554 \def\thefootnote{\leavevmode\hbox{%
555 \ifcase\c@footnote\or ☆\or ☆☆\or ☆☆☆\else \thefootnotemany\fi}}
556 % 1.04(2b)
557 \def\thefootnotemany{\hbox{☆\hskip\z@\number\c@footnote}} % 1.04(2b)
558 % 2.05(3)
559 \let\thefootnoteord\thefootnote
560
561
562 %%%%%% Citation %%%%%%
563
564 %% The following codes for \cite are from overcite.sty by D. Arseneau, but
565 %% modified for Trans. IPSJ (H.N.)
566 % O V E R C I T E . S T Y
567 %
568 % version 3.2 (Mar 1993)
569 %
570 % Compressed, sorted lists of superscript numerical citations.
571 % see also CITE.STY and DRFTCITE.STY
572 %
573 % Copyright (C) 1989-1993 by Donald Arseneau
574 % These macros may be freely transmitted, reproduced, or modified for
575 % non-commercial purposes provided that this notice is left intact.
576 %
577 \def\cite{\protect\@p@cite}
578 \def\@p@cite{\let\@citeY\@citey \@p@@cite}
579 \def\Cite{\protect\@p@Cite}
580 \def\@p@Cite{\let\@citeY\@Citey \@p@@cite}
581 \def\@p@@cite{\@ifnextchar[%]
582 {\@tempswatrue\@citex}{\@tempswafalse\@citex[]}}
583 \def\@citex[#1]#2{\@citeY{\@p@citen{#2}}\if@tempswa\space[#1]\fi}
584 \def\@citey#1{\leavevmode\unskip\kern\z@$\let\@cite@tiestyle\scriptstyle
585 % % 2.06(2)
586 \def\@cite@punct{,}\m@th^{\hbox{\scriptsize#1}}$\spacefactor\@m}
587 \def\@Citey#1{\let\@cite@tiestyle\textstyle
588 \ifDS@english \def\@cite@punct{,\space\penalty\@highpenalty}%1.04(1)
589 \else\def\@cite@punct{,}\fi#1\spacefactor\@m} %1.04(1)
590
591 \def\@p@citen#1{%
592 \edef\@tempa{\@ignspaftercomma,#1, \@end, }%
593 \edef\@tempa{\expandafter\@ignendcommas\@tempa\@end}%
594 \if@filesw \immediate\write\@auxout{\string\citation{\@tempa}}\fi
595 \@tempcntb\m@ne \let\@h@ld\relax \let\@citea\@empty
596 \let\@celt\relax \def\@cite@list{}% % 2.06(3)
597 \@for\@citeb:=\@tempa\do{\@make@cite@list}%
598 \@tempcnta\m@ne \let\@celt\@compress@cite \@cite@list
599 \@h@ld}
600 \def\@ignspaftercomma#1, {\ifx\@end#1\@empty\else
601 #1,\expandafter\@ignspaftercomma\fi}
602 \def\@ignendcommas,#1,\@end{#1}
603
604 %(
605 \let\@cite@rp)
606 \chardef\@cite@escape`\\
607 \def\@make@cite@list{%
608 \expandafter\let\expandafter\@B@citeB\csname b@\@citeb\endcsname
609 \ifx\@B@citeB\relax
610 \@citea {\bf ?}\@cite@rp \let\@citea\@cite@punct
611 \@latex@warning{Citation `\@citeb' on page \thepage\space undefined}%
612 % 2.00(3)
613 \global\@namedef{b@\@citeb}{{\bf ?}}%
614 \else
615 \ifcat \@cite@escape\ifnum\z@<0\@B@citeB \@cite@escape\else A\fi
616 \@tempcnta\@B@citeB \relax
617 \ifnum \@tempcnta>\@tempcntb
618 \edef\@cite@list{\@cite@list \@celt{\@B@citeB}}%
619 \@tempcntb\@tempcnta
620 \else
621 \edef\@cite@list{\expandafter\@sort@celt\@cite@list\@gobble @}%
622 \fi
623 \else \@citea \@B@citeB \@cite@rp \let\@citea\@cite@punct
624 \fi\fi}
625
626 \def\@sort@celt#1#2{\ifx \@celt #1% parameters are \@celt {num}
627 \ifnum #2<\@tempcnta % number goes later in list
628 \@celt{#2}\expandafter\expandafter\expandafter\@sort@celt
629 \else \@celt{\number\@tempcnta}\@celt{#2}\fi\fi}
630
631 \def\@compress@cite#1{\advance\@tempcnta\@ne
632 \ifnum #1=\@tempcnta
633 \ifx\@h@ld\relax \edef\@h@ld{\@citea #1\@cite@rp}%
634 \else \edef\@h@ld{\hbox{$\@cite@tiestyle\sim$}%
635 \penalty\@highpenalty #1\@cite@rp}\fi
636 \else \@h@ld \@citea #1\@cite@rp
637 \let\@h@ld\relax
638 \fi \@tempcnta#1\relax \let\@citea\@cite@punct}
639
640 %% End of quote from overcite.sty. (H.N.)
641
642 \def\multicite{\protect\@p@multicite}
643 \def\@p@multicite#1#2{\@citey{\@p@citen{#1}$\scriptstyle\sim$\@p@citen{#2}}}
644 \def\multiCite{\protect\@p@multiCite}
645 \def\@p@multiCite#1#2{\@Citey{\@p@citen{#1}$\sim$\penalty\@highpenalty
646 \@p@citen{#2}}}
647
648
649 %%%%%% Box Height Adjustment and Displayed Math %%%%%%
650
651 \newbox\adj@boxa \newbox\adj@boxb
652 \newdimen\adj@height
653 \@tempdima\baselineskip \advance\@tempdima-\topskip
654 \edef\adj@minaboveclearance{\the\@tempdima}
655 \@tempdima\baselineskip \advance\@tempdima-1ex
656 \edef\adj@maxaboveclearance{\the\@tempdima}
657 \ifDS@english
658 \setbox0\hbox{A}
659 \else
660 \setbox0\hbox{あ}
661 \fi
662 \@tempdima\baselineskip \advance\@tempdima-\ht0 \advance\@tempdima\dp0
663 \edef\adj@bhd{\the\@tempdima}
664
665 % 2.01(1) >>
666 \def\adjustvboxheight{\ifinner \let\@tempa\relax
667 \let\endadjustvboxheight\relax \let\@endadjustvboxheight\relax
668 \else \let\@tempa\@adjustvboxheight \fi \@tempa}
669 \def\@adjustvboxheight{\par\penalty\z@
670 \global\setbox\adj@boxa\vbox\bgroup\relax % 1.01(3)
671 \let\@footnotetext\@mpfootnotetext % 2.02(1)
672 % % 2.05(1)
673 \hsize\columnwidth}
674 % 2.01(1) <<
675 \def\endadjustvboxheight{\adj@closebox \adj@putbox
676 \ifvoid\@mpfootins\else\insert\footins{\unvbox\@mpfootins}\fi
677 % % 2.02(1)
678 \global\@ignoretrue\@endparenv}
679 \def\adj@closebox{\egroup \normalsize \boxmaxdepth\@maxdepth % 1.01(1,3)
680 \setbox\adj@boxa\vbox{\unvbox\adj@boxa} % 1.01(3)
681 \adj@height\ht\adj@boxa
682 \advance\adj@height\adj@minaboveclearance\relax
683 \@tempdima\adj@height \divide\adj@height\baselineskip
684 \@tempcnta\adj@height \adj@height\@tempcnta\baselineskip
685 \ifdim\adj@height<\@tempdima \advance\adj@height\baselineskip\fi}
686 \def\adj@putbox{\vskip-\prevdepth \prevdepth\z@ \vskip\baselineskip
687 \vspace*{-\baselineskip}\advance\@tempdima-\adj@height
688 \@tempdima-\@tempdima \advance\@tempdima\adj@minaboveclearance\relax
689 \@tempdimb\dp\adj@boxa
690 \ifdim\@tempdima>\adj@maxaboveclearance\relax
691 \advance\@tempdima-\@tempdimb \advance\@tempdima\adj@bhd\relax
692 \divide\@tempdima\tw@
693 \vbox to\adj@height{\vskip\@tempdima \box\adj@boxa \vss}
694 \else \vbox to\adj@height{\vfil\box\adj@boxa\vskip-\@tempdimb}\fi}
695
696 \newcount\adj@deadcycle
697 \@namedef{adjustvboxheight*}{\adjustvboxheight}
698 \@namedef{endadjustvboxheight*}{\@endadjustvboxheight}
699 \def\@endadjustvboxheight{\global\adj@deadcycle10\relax
700 \@iendadjustvboxheight
701 \ifvoid\@mpfootins\else\insert\footins{\unvbox\@mpfootins}\fi
702 % % 2.05(2)
703 \global\@ignoretrue\@endparenv}
704 \def\@iendadjustvboxheight{\adj@closebox
705 \ifnum\adj@deadcycle<\@ne
706 \ipsj@error{I cannot adjust too tall/deep box}{\@ehd}\fi % 2.00(3)
707 \global\advance\adj@deadcycle\m@ne
708 \ifdim\pagegoal=\maxdimen
709 \@tempdimb\@colht \advance\@tempdimb-\topskip
710 \advance\@tempdimb\baselineskip
711 \else \@tempdimb\pagegoal
712 \advance\@tempdimb-\pagetotal \advance\@tempdimb-\pagedepth
713 \advance\@tempdimb\prevdepth \fi % 1.01(4a)
714 \let\next\relax
715 \ifdim\adj@height<\@tempdimb \adj@putbox \else
716 \ifdim\adj@height=\@tempdimb \adj@putbox \else
717 \divide\@tempdimb\baselineskip \@tempcnta\@tempdimb % 1.01(4b)>>
718 \@tempdimb\@tempcnta\baselineskip
719 \advance\@tempdimb-\adj@minaboveclearance\relax % 1.01(4b)<<
720 \setbox\adj@boxa\vbox{\allowbreak\unvbox\adj@boxa}
721 \vbadness\@M \splittopskip\z@ \splitmaxdepth\@maxdepth %1.01(1)
722 \setbox\@tempboxa\vsplit\adj@boxa to\@tempdimb
723 \setbox\adj@boxb\copy\adj@boxa
724 \setbox\@tempboxa\vbox{\unvbox\@tempboxa}
725 \@tempdimb\ht\@tempboxa \advance\@tempdimb\dp\@tempboxa
726 \ifdim\@tempdimb>\z@
727 \setbox\adj@boxa\vbox\bgroup\unvbox\@tempboxa
728 \adj@closebox \adj@putbox \newpage
729 \else \newpage \fi
730 \setbox\adj@boxa\vbox\bgroup\unvbox\adj@boxb
731 \let\next\@iendadjustvboxheight \fi\fi \next}
732
733 \def\adj@eqindent{2\@mojihaba}
734 \def\[{\adjustvboxheight\advance\@totalleftmargin\adj@eqindent\relax
735 \hbox to\hsize\bgroup\hskip\@totalleftmargin$\displaystyle}
736 \def\]{$\hfill\egroup\endadjustvboxheight\@doendpe\ignorespaces} % 2.03(1)
737 \def\equation{\refstepcounter{equation}\[}
738 \def\endequation{\hfill\@eqnnum$\egroup\endadjustvboxheight}
739 \def\theequation{\arabic{equation}}
740 \def\@eqnnum{{\rm (\theequation)\hskip\@mojihaba}}
741
742 \def\adj@eqnlineskip{3pt}
743 \def\adj@eqnlineskiplimit{2pt}
744 \def\eqnarray{\futurelet\@tempa\adj@eqnarray}
745 \def\adj@eqnarray{\ifx\@tempa[%]
746 \let\next\adj@ieqnarray\else\let\next\adj@xeqnarray\fi\next}
747 \def\adj@ieqnarray[#1]{\@ifundefined{adj@xeqnarray#1}%
748 {\ipsj@warning{Unknown eqnarray option `#1'}\adj@xeqnarray}% 2.00(3)
749 {\@nameuse{adj@xeqnarray#1}}}
750 \def\adj@xeqnarray{\adjustvboxheight
751 \advance\@totalleftmargin\adj@eqindent\relax
752 \stepcounter{equation}\let\@currentlabel=\theequation
753 \global\@eqnswtrue
754 \global\@eqcnt\z@\tabskip\z@\let\\=\@eqncr
755 \lineskip\adj@eqnlineskip \lineskiplimit\adj@eqnlineskiplimit \jot\z@
756 \halign to \hsize\bgroup\@eqnsel\hskip\@totalleftmargin
757 \hfil$\displaystyle{##}$&\global\@eqcnt\@ne % 1.01(2)
758 \hfil$\displaystyle{}\mathrel{##}{}$\hfil
759 &\global\@eqcnt\tw@ $\displaystyle{##}$\hfil
760 \tabskip\@centering&\llap{##}\tabskip\z@\cr}
761 \def\adj@xeqnarrays{\let\endadjustvboxheight\@endadjustvboxheight
762 \adj@xeqnarray}
763 \@namedef{adj@xeqnarrays!}{\par\let\adjustvboxheight\relax
764 \let\endadjustvboxheight\relax \adj@xeqnarray}
765 \def\endeqnarray{\@@eqncr \egroup \global\advance\c@equation\m@ne
766 \endadjustvboxheight}
767
768
769 %%%%%% Kinsoku Parameters %%%%%%
770
771 % 1.04(3)>>
772 \ifASCII
773 \postbreakpenalty`\`=\@M
774 \prebreakpenalty`'=\@M
775 \prebreakpenalty`)=\@M
776 \postbreakpenalty`(=\@M
777 \prebreakpenalty`]=\@M
778 \postbreakpenalty`[=\@M
779 \prebreakpenalty`\}=\@M
780 \postbreakpenalty`\{=\@M
781
782 \prebreakpenalty`・=\@M
783 \prebreakpenalty`:=\@M
784 \prebreakpenalty`;=\@M
785 \prebreakpenalty`?=\@M
786 \prebreakpenalty`!=\@M
787
788 \prebreakpenalty\jis"212D=\@M % ´
789 \postbreakpenalty\jis"212E=\@M % `
790 \postbreakpenalty\jis"2146=\@M % ‘
791 \prebreakpenalty\jis"2147=\@M % ’
792 \postbreakpenalty\jis"2148=\@M % “
793 \prebreakpenalty\jis"2149=\@M % ”
794
795 \prebreakpenalty`)=\@M
796 \postbreakpenalty`(=\@M
797 \prebreakpenalty`}=\@M
798 \postbreakpenalty`{=\@M
799 \prebreakpenalty`]=\@M
800 \postbreakpenalty`[=\@M
801 \postbreakpenalty`‘=\@M
802 \prebreakpenalty`’=\@M
803
804 \postbreakpenalty\jis"214C=\@M %〔
805 \prebreakpenalty\jis"214D=\@M % 〕
806 \postbreakpenalty\jis"2152=\@M % 〈
807 \prebreakpenalty\jis"2153=\@M % 〉
808 \postbreakpenalty\jis"2154=\@M % 《
809 \prebreakpenalty\jis"2155=\@M % 》
810 \postbreakpenalty\jis"2156=\@M % 「
811 \prebreakpenalty\jis"2157=\@M % 」
812 \postbreakpenalty\jis"2158=\@M % 『
813 \prebreakpenalty\jis"2159=\@M % 』
814 \postbreakpenalty\jis"215A=\@M % 【
815 \prebreakpenalty\jis"215B=\@M % 】
816
817 \prebreakpenalty`ぁ=\@M
818 \prebreakpenalty`ぃ=\@M
819 \prebreakpenalty`ぅ=\@M
820 \prebreakpenalty`ぇ=\@M
821 \prebreakpenalty`ぉ=\@M
822 \prebreakpenalty`っ=\@M
823 \prebreakpenalty`ゃ=\@M
824 \prebreakpenalty`ゅ=\@M
825 \prebreakpenalty`ょ=\@M
826 \prebreakpenalty\jis"246E=\@M % ゎ
827 \prebreakpenalty`ァ=\@M
828 \prebreakpenalty`ィ=\@M
829 \prebreakpenalty`ゥ=\@M
830 \prebreakpenalty`ェ=\@M
831 \prebreakpenalty`ォ=\@M
832 \prebreakpenalty`ッ=\@M
833 \prebreakpenalty`ャ=\@M
834 \prebreakpenalty`ュ=\@M
835 \prebreakpenalty`ョ=\@M
836 \prebreakpenalty\jis"256E=\@M % ヮ
837 \prebreakpenalty\jis"2575=\@M % ヵ
838 \prebreakpenalty\jis"2576=\@M % ヶ
839
840 \fi
841 % 1.04(3)<<
842
843
844 %%%%%% Miscellaneous %%%%%%
845
846 %% \doublerulesep is 1pt (H.N.)
847 \arraycolsep5pt \tabcolsep6pt \arrayrulewidth.4pt \doublerulesep1pt
848 \tabbingsep.5\@mojihaba
849
850 \skip\@mpfootins\skip\footins
851 \fboxsep3pt \fboxrule.4pt
852
853 %% We simply allow (not encourage) club and widow lines. (H.N.)
854 \clubpenalty\z@ \widowpenalty\z@ \displaywidowpenalty\z@
855
856 % The following redefinition influences \linebreak etc.
857 \def\sloppy{\tolerance9999\hbadness9999\hfuzz.5\p@ \vfuzz.5\p@}
858
859 \endinput