Mercurial > hg > Papers > 2010 > jsst-shoshi
changeset 0:3537d0ffdf6f
hg init
author | Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 10 Aug 2010 18:08:07 +0900 |
parents | |
children | 5d53f54e7152 |
files | compsoft.cls compsoft.sty fig/ConsistentHash.pdf fig/SEDA.pdf fig/cluster_read.pdf fig/cluster_write.pdf fig/corei7_read.pdf fig/corei7_write.pdf fig/macmini_cluster_read.pdf fig/macmini_cluster_write.pdf fig/macmini_read.pdf fig/macmini_write.pdf fig/serv1_read.pdf fig/serv1_write.pdf fig/serv2_read.pdf fig/serv2_write.pdf jssst.bst mediabb.sty shoshi-paper.aux shoshi-paper.dvi shoshi-paper.log shoshi-paper.pdf shoshi-paper.tex |
diffstat | 23 files changed, 4032 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/compsoft.cls Tue Aug 10 18:08:07 2010 +0900 @@ -0,0 +1,9 @@ +\ifx\pfmtname\undefined +\NeedsTeXFormat{LaTeX2e} +\else +\NeedsTeXFormat{pLaTeX2e} +\fi + +\ProvidesClass{compsoft}[2000/11/02 ver 0.10] +\input{compsoft.sty} +\endinput
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/compsoft.sty Tue Aug 10 18:08:07 2010 +0900 @@ -0,0 +1,2156 @@ +% compsoft.sty 2009-06-27 by Hideya IWASAKI +% compsoft.sty last updated 2007-08-17 by Kazunori UEDA +% compsoft.sty ASCII-version modified 25-March-92 by N. YAMANOUCHI +% compsoft.sty 22-April-92 by Yasuki SAITO +% compsoft.sty 18-July-90 by Hideki ISOZAKI +% j-article.sty 10-Feb-89 from report.sty 16-Mar-88 + +\newif\ifASCII \ASCIIfalse +\ifx\jintercharskip\undefined\ASCIItrue\fi +\newif\if@LaTeX@e \@LaTeX@efalse % 1.06(1) +\newif\if@LaTeX@eN \@LaTeX@eNfalse % 2.00(1) +\def\@tempa{LaTeX2e} % 1.06(1) +\ifx\fmtname\@tempa \@LaTeX@etrue % 1.06(1) +\ifx\xpt\undefined \@LaTeX@eNtrue \fi\fi % 2.00(1) + +\newif\if@hissha \@hisshafalse + +\expandafter\ifx\csname ver@jssst.cls\endcsname\relax +\typeout{Document Style `compsoft' ascii version <23 Mar 92>.} +\fi + +\if@LaTeX@e +\newdimen\@maxsep +\newdimen\@dblmaxsep +\fi + +\def\ds@twoside{\@twosidetrue \@mparswitchtrue} +\def\ds@draft{\overfullrule5pt} + +%\@options +% you must do this at the end, at least after def's of \ds@... for +% various \@maketitle + +\ds@twoside + +\if@LaTeX@e % 2.00(8)>> +\if@LaTeX@eN +\DeclareOldFontCommand{\rm}{\normalfont\rmfamily}{\mathrm} +\DeclareOldFontCommand{\sf}{\normalfont\sffamily}{\mathsf} +\DeclareOldFontCommand{\tt}{\normalfont\ttfamily}{\mathtt} +\DeclareOldFontCommand{\bf}{\normalfont\bfseries}{\mathbf} +\DeclareOldFontCommand{\it}{\normalfont\itshape}{\mathit} +\DeclareOldFontCommand{\sl}{\normalfont\slshape}{\@nomath\sl} +\DeclareOldFontCommand{\sc}{\normalfont\scshape}{\@nomath\sc} +\DeclareRobustCommand*{\cal}{\@fontswitch{\relax}{\mathcal}} +\DeclareRobustCommand*{\mit}{\@fontswitch{\relax}{\mathnormal}} +\ifASCII +\DeclareOldFontCommand{\mc}{\normalfont\mcfamily}{\mathmc} +\DeclareOldFontCommand{\gt}{\normalfont\gtfamily}{\mathgt} +\fi\fi +\ifASCII +\def\dm{\mc} +\def\dg{\gt} +\fi\fi % 2.00(8)<< + +\ifASCII +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% ascii-jtex.sty modified on 2/6/92 by N. Yamanouchi +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% ascii-jtex.sty prepared by N. Yamanouchi (IBM/TRL) 12/04/91 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% This style file is intended to absorb the difference between NTT +% JTex and ASCII JTeX for JSSST journal style files ``compsoft.sty'' +% and ``compsoft9.sty''. The original information comes from the +% work of S. Tomura in ETL (marked as ST). +% + +% +%dskfonts.sty begins %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% dskfonts.sty modified on 6 Feb 92 by N. Yamanouchi +% dskfonts.sty prepared by N. Yamanouchi +% +%% dskfonts.sty is based on skfonts.sty. +%% skfonts.sty is for adjusting NTT-version of JSSST style file to +%% ASCII JTeX environment. skfonts.sty defines all CTS fonts, while +%% dskfonts.sty substitutes the fonts by regular fonts like min10/goth10. + +%% $B#Q?t7O$N$?$a$N$U$?$D$N%f%K%C%H(B +\newdimen \JQ \JQ .259817mm %%% \JQ/\Q = 10pt/9.62216pt +\newdimen \Q \Q .25mm %%% Quarter of 1mm + +%% $B%Y!<%9%i%$%s%9%-%C%W$NCM!%(B +%% $B%G%U%)%k%HCM$O(B21.5Q$B!$(BEronbun, Etokushuronbun$B$G$O(B17.5Q +%% $B$K@Z$jBX$($k!%(B +\newdimen\@Baseline +\@Baseline=21.5\Q + + +% $B%U%)%s%H$N:FDj5A(B +% $B$^$:OBJ8!'(B +%\font\sevmin skhmnlaa at 8.5\JQ % 8.5Q $BK\MvL@D+(B LHM +\font\sevmin min10 at 8.5\JQ % 8.5Q min10$B$G2>A[E*$K=PNO(B +%\font\sevgt skgotoaa at 8.5\JQ % 8.5Q $BCfB@%4%7%C%/(B DG-KL +\font\sevgt goth10 at 8.5\JQ % 8.5Q goth10$B$G2>A[E*$K=PNO(B +% \font\egtmin skhmnlaa at 10\JQ % 10Q $BK\MvL@D+(B LHM +\font\egtmin min10 at 10\JQ % 10Q min10$B$G2>A[E*$K=PNO(B +% \font\egtgt skgotoaa at 10\JQ % 10Q $BCfB@%4%7%C%/(B DG-KL +\font\egtgt goth10 at 10\JQ % 10Q goth10$B$G2>A[E*$K=PNO(B +%\font\ninmin skhmnlaa at 11.5\JQ % 11.5Q $BK\MvL@D+(B LHM +\font\ninmin min10 at 11.5\JQ % 11.5Q min10$B$G2>A[E*$K=PNO(B +%\font\ningt skgotoaa at 11.5\JQ % 11.5Q $BCfB@%4%7%C%/(B DG-KL +\font\ningt goth10 at 11.5\JQ % 11.5Q goth10$B$G2>A[E*$K=PNO(B +%\font\tenmin skhmnlaa at 13\JQ % 13Q $BK\MvL@D+(B LHM +\font\tenmin min10 at 13\JQ % 13Q min10$B$G2>A[E*$K=PNO(B +%\font\tengt skgotoaa at 13\JQ % 13Q $BCfB@%4%7%C%/(B DG-KL +\font\tengt goth10 at 13\JQ % 13Q goth10$B$G2>A[E*$K=PNO(B + +%\font\twlvgona sknagoaa at 16\JQ % 16Q $B%4%J#D(B for $B!V%A%e!<%H%j%"%k!W(B +\font\twlvgona goth10 at 16\JQ % 20Q min10$B$G2>A[E*$K=PNO(B for$B!V%A%e!<%H%j%"%k!W(B + +% \font\svtnmin skminsaa at 20\JQ % 20Q $BB@L@D+(B for author +\font\svtnmin min10 at 20\JQ % 20Q min10$B$G2>A[E*$K=PNO(B for author + +% \font\twtygt skgotsaa at 28\JQ % 28Q $BB@%4%7%C%/(B for title +\font\twtygt goth10 at 28\JQ % 28Q goth10$B$G2>A[E*$K=PNO(B for title + +% $BB3$$$F2$J8!'(B +% $B%W%l%m!<%I$5$l$F$k%m!<%^%s%U%)%s%H$O?t<0$N(B \textfont0 $B$H$7$F$b(B +% $B;H$o$l$k$?$a!"JLL>>N$G%m!<%I$7$F%5%$%:4D6-$rA`:n$9$k$N$,L5Fq$+!)(B +%%\font\egtrm secntmm at 10\Q +%%\font\ninrm secntmm at 11.5\Q +%%\font\tenrm secntmm at 13\Q + +%%\font\egtit secntmmi at 10\Q +%%\font\ninit secntmmi at 11.5\Q +%%\font\tenit secntmmi at 13\Q + +%%\font\egtbf secntqm at 10\Q +%%\font\ninbf secntqm at 11.5\Q +%%\font\tenbf secntqm at 13\Q + +%%\font\titleb sebdnqm at 28\Q % $B%?%$%H%kMQ%\%I%K%\!<%k%I(B +\font\titleb min10 at 28\Q % $B%?%$%H%kMQ%\%I%K%\!<%k%I(B + +% $BHGLLE7CO$H%Q%i%a!<%?$N@_Dj(B +% +% \textheight +% = \topskip + \baselineskip * 39 lines +% = 12Q + 21.5Q * 39 lines +% = 850.5Q + +\headsep 15\Q % $B@53N$JCM$G$O$J$$(B +\topskip 12\Q % 12Q $B$h$j9b$$9T$O%Y!<%9%i%$%s$,$:$l$k(B +\baselineskip \@Baseline % 11.5Q $B9T4V(B 10Q +\lineskip 0pt +\lineskiplimit 0pt + +\textheight 850.89\Q % 850.5Q (21.5Q * 39line + \topskip) $B$N(B + % $B$O$:$@$,(B 40 $B9TF~$i$J$$$?$a!"$9$3$7$:$D(B + % $BA}$d$7$F$3$NCM$K$J$C$?(B + +\maxdepth 5\Q % + +%TI%% We don't need foot* because we don't use footer +%TI%\footskip 0pt +%TI%\footheight 0pt + +\parindent1zw + +%\parskip 0pt plus.001\Q % $B$9$Y$F$N%Q%i%a!<%?$,7hDj$G$-$?$i(B + % $B%Q%i%0%i%U4V$K$o$:$+$N<+M3EY$rCV$-$?$$!#(B + % $B%F%9%HCf$O<+M3EY$O$J$$$[$&$,$$$$!#(B + +\kanjiskip 0pt plus .1zw minus 0.05zw + % $BOBJ8J8;z4V$OHf3SE*<+M3EY$,Bg$-$$(B + +%\overfullrule 10pt % $B0-$$ItJ,$OL\N)$?$;$FD>$9(B + +% +% $B0lIt$N%^%/%m$N:FDj5A(B +% + +% \def\@maketitle{\newpage \null +% \vbox to 235.2\Q{ %% $B7W;;$G$O(B 236.5Q $B$N$O$:$@$,!"!"!"(B +% \begin{flushleft} +% \rule{\textwidth}{1mm}% +% \vskip.7cm +% {\titleb\hskip 6.5mm +% \twtygt\@title\kanjiskip -3mm plus0mm minus0mm % $B5M$a$?$$$N$K5M$i$J$$!"!"!"(B +% } +% \vskip.7cm +% \huge\hskip 6.5mm +% \begin{tabular}[t]{@{}l}\@author\end{tabular} +% \end{flushleft} +% \par +% \vss +% \hrule % height0pt %% $BBN:[$,7h$^$C$?$i(B 0pt $B$K$9$k(B +% }} + +% \long\def\@makecaption#1#2{ %% \vskip 10pt +% \setbox\@tempboxa\hbox{\small\bf\egtbf\egtgt~~#1~~#2~~} +% \ifdim \wd\@tempboxa >\hsize +% {\small\bf\egtbf\egtgt\setlength{\baselineskip}{12pt} +% \newbox\@tempboxb \setbox\@tempboxb\hbox{#1~~} +% \leftskip=15pt \hangindent=\wd\@tempboxb #1~~#2\par} +% \else \hbox to\hsize{\hfil\box\@tempboxa\hfil} +% \fi} + +% \def\section{\@startsection{section}{1}{0\jspaceskip} +% {8\Q plus.1\Q minus.1\Q} % $B>eIt%0%k!<(B ($B7P83CM(B) +% {1.6\Q plus.1\Q minus.1\Q} % $B2<It%0%k!<(B +% {\vrule width .4pt %% $BBN:[$,7h$^$C$?$i(B 0pt $B$K$9$k!#(B +% height 30\Q %% $B%Z!<%8F,$G(B \topskip $B$KFO$/$h$&$K!#(B +% depth 14\Q %% $BK\J8$N(B 1 $B9TL\$K@\$9$k$h$&$K!#(B +% \font@s}} +% +% \def\subsection{\@startsection{subsection}{2}{\jspaceskip} +% {1\baselineskip plus.1\Q minus.1\Q} +% {0.1\Q plus.1\Q minus.1\Q} +% {\font@ss}} + +%TI%\pagestyle{headings} +\flushbottom % $B%Z!<%82<C<$r$=$m$($k(B +%dskfonts.sty ends %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%--------------------------- +% ``dskfonts.sty' uses CM and min** fonts for preminary printing. +% For production-run, use ``skfonts.sty'' instead of ``dskfonts.sty''. +%--------------------------- + +\let\sevendm=\sevmin %ST +\let\sevendg=\sevgt %ST +\let\eightdm=\egtmin %ST +\let\eightdg=\egtgt %ST +\let\ninedm=\ninmin %ST +\let\ninedg=\ningt %ST +\let\gona=\twlvgona % N. Yamanouchi for $B!V%A%e!<%H%j%"%k!W(B + +\if@LaTeX@e\else +\def\dm{\mc}\def\pdm{\pmc} %ST +\def\dg{\gt}\def\pdg{\pgt} %ST +\fi + +\let\setjglues=\relax +\let\jintercharskip=\kanjiskip +\let\jasciikanjiskip=\xkanjiskip + +\if@LaTeX@e\else +\def\dm{\mc}\def\pdm{\pmc} %ST +\def\dg{\gt}\def\pdg{\pgt} %ST +\fi + +\def\defjintercharskip#1#2#3#4{ +\fontdimen2#1=#2 %ST +\fontdimen3#1=#3 %ST +\fontdimen4#1=#4} %ST +\def\defjasciikanjiskip#1#2#3#4{% %ST +\fontdimen7#1=#2 %ST +\fontdimen7#1=#3 %ST +\fontdimen7#1=#4} %ST +\def\defmathkanjiskip#1#2#3#4{} %ST +\def\defjspaceskip#1#2#3#4{% %ST +\fontdimen6#1=#1} %ST +\let\setjglues=\relax %ST +\let\jintercharskip=\kanjiskip %ST +\let\jasciikanjiskip=\xkanjiskip %ST +\newdimen\jspaceskip %ST +\jspaceskip=2.875mm %yamanouchi% %ST +%%\jspaceskip=1zw %ST + +\newdimen\jmathkanjiskip %yamanouchi 3/25/92% +\jmathkanjiskip=\kanjiskip %yamanouchi 3/25/92% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\fi + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% compsoft9.sty ASCII version modified 25 March 1992 by N. YAMANOUCHI +% compsoft9.sty 23 March 1992 By Yasuki SAITO +% compsoft9.sty Apr. 24 '91 By Hideki ISOZAKI +% j-art10.sty 10-Feb-89 from art10.sty 22-Dec-87 + +% 1mm = 2.8452755905pt, 1pt = .3514598035mm, 1Q = 0.25mm = .7113188976pt +% +% For footnotesize +% depth_of_8pt_kanji = 1.4454pt +% height_of_8pt_kanji = 5.781592pt +% line = height_plus_depth_of_8pt_kanji = 7.226992pt = 2.53999mm ~= 10Q +% baselineskip = line + gap = 15Q = 3.75mm = 10.6697834645pt +% gap = baselineskip - line = 10.66978 - 7.226992 = 3.4427914645pt + +% For references +% baselineskip = line + gap = 14.5Q = 3.625mm = 10.314124pt +% gap = baselineskip - line = 10.314124pt - 7.226992pt = 3.087132pt +% ~= 4.5Q = 1.125mm = 3.2009350393pt +% gap + depth = 3.087132 + 1.4454 = 4.532532pt + +% For normalsize +% depth_of_9pt_kanji = 1.44539pt +% line = height_plus_depth_of_9pt_kanji = 8.1906pt +% ~= 11.5Q = 8.1801673228pt +% 212.5mm = 212.5mm * 72.27pt / 25.4mm = 604.62106299212598425196pt +% baselineskip = line + gap = 11.5Q + 10Q = 21.5Q = 15.2933562992pt +% gap = 21.5Q - line(8.1906pt) = 7.1027562992pt ~= 10Q = 7.1131889763pt +% gap + depth = 8.54815pt + +\ifASCII\else +\newlength{\Q} \setlength{\Q}{0.25mm} % commented out for ASCII version + % by N. Yamanouchi +\let\kanjiskip=\jintercharskip +\let\xkanjiskip\jasciikanjiskip +\fi + +\lineskip\z@ \normallineskip\z@ \jot\z@ \lineskiplimit\z@ +\def\baselinestretch{1} + +\if@LaTeX@e +\def\normalsize{\@setsize\normalsize{\@Baseline}\ixpt\@ixpt +%\renewcommand{\normalsize}{% +%\@setfontsize\normalsize{12\JQ}{21.5\Q} +\abovedisplayskip \z@\belowdisplayskip \abovedisplayskip +\abovedisplayshortskip \z@\belowdisplayshortskip\z@ +\let\@listi\@listI} +\else +\def\@normalsize{\@setsize\normalsize{\@Baseline}\ixpt\@ixpt +\abovedisplayskip \z@\belowdisplayskip \abovedisplayskip +\abovedisplayshortskip \z@\belowdisplayshortskip\z@ +\let\@listi\@listI} +\fi + +\def\small{\@setsize\small{15\Q}\viiipt\@viiipt +%\newcommand{\small}{% +%\@setfontsize\normalsize{11\JQ}{15\Q} +\abovedisplayskip \z@\belowdisplayskip \abovedisplayskip +\abovedisplayshortskip \z@\belowdisplayshortskip\z@ +\let\@listi\@listI} + +\def\footnotesize{\@setsize\footnotesize{15\Q}\viiipt\@viiipt +%\newcommand{\footnotesize}{% +%\@setfontsize\normalsize{11\JQ}{15\Q} +\abovedisplayskip\z@\belowdisplayskip \abovedisplayskip +\abovedisplayshortskip \z@\belowdisplayshortskip\z@ +\let\@listi\@listI} + +\def\scriptsize{\@setsize\scriptsize{11pt}\vipt\@vipt} +\def\tiny{\@setsize\tiny{6pt}\vpt\@vpt} +\def\large{\@setsize\large{21.5\Q}\xpt\@xpt}% baselineskip=>normalsize +\def\Large{\@setsize\Large{20pt}\xiipt\@xiipt} +\def\LARGE{\@setsize\LARGE{25pt}\xivpt\@xivpt} +\def\huge{\@setsize\huge{30pt}\xviipt\@xviipt} +\def\Huge{\@setsize\Huge{35pt}\xxpt\@xxpt} + +\@ifundefined{normalsize}{\let\normalsize\@Normalsize} + +\normalsize +\oddsidemargin 0pt \evensidemargin 0pt +\advance\oddsidemargin-.5in +\advance\evensidemargin-.5in +\topmargin -25pt + +\headheight 12.5\Q +\addtolength{\headheight}{0.1087pt} +% headheight was increased a little bit to avoid annoying overful vbox +% in sample.tex, but this also shifts entire headline upward a little bit. +% So, \headsep is decreased a little to compensate this. + +\headsep 17\Q +\addtolength{\headsep}{-0.1087pt} + +%\footskip 2\baselineskip % This isn't necessary, no foot in this style + +\newdimen\@mojihaba +\settowidth{\@mojihaba}{$B$"(B} + +\textheight = 212.5mm % for simple twocolumn setup + +% topskip = line - depth_of_9pt_kanji +\topskip = 6.74521pt + +% columnsep = 2\@mojihaba = 2*11.5Q = 23Q = 5.75mm = 16.3603346456pt +% ~= 8.1906pt * 2 = 16.3812pt +\columnsep 16.3812pt + +\textwidth 50\jspaceskip +\advance\textwidth by \columnsep +\columnseprule 0pt + +%% 15 Jul 2009 Iwasaki & Matsuzaki +\def\adjustAfour{% +\oddsidemargin210mm +\advance\oddsidemargin-\textwidth +\oddsidemargin.5\oddsidemargin +\advance\oddsidemargin-1in +\evensidemargin\oddsidemargin +\topmargin297mm +\advance\topmargin-\headheight +\advance\topmargin-\headsep +\advance\topmargin-\textheight +\topmargin.5\topmargin +\advance\topmargin-1in +} + + + +%\footnotesep must be \baselineskip-\depth = 10.6697835pt-1.4454pt +% = 9.2243835pt, but this is too wide +%\footnotesep 9.2243835pt +%\footnotesep 7.226992pt % = line height +\footnotesep 8.672392pt % = line height + depth = 7.226992pt + 1.4454pt +% you want to make a gap between footnoterule and first footnote 2Q, but... +%\footnotesep 2\Q % This does not work! you must do something in \@makecol + +%\skip\footins 10\Q plus 21.5\Q +\skip\footins 10\Q plus 11.5\Q minus 1\Q + +\floatsep \baselineskip \textfloatsep \baselineskip +\intextsep \baselineskip \@maxsep \baselineskip +\dblfloatsep \baselineskip \dbltextfloatsep \baselineskip +\@dblmaxsep \baselineskip +\@fptop 0pt plus 1fil \@fpsep 0pt plus 2fil \@fpbot 0pt plus 1fil +\@dblfptop 0pt plus 1fil \@dblfpsep 0pt plus 2fil \@dblfpbot 0pt plus 1fil + +\parskip\z@ \parindent \@mojihaba \partopsep\z@ +\@lowpenalty 51 \@medpenalty 151 \@highpenalty 301 +\@beginparpenalty -\@lowpenalty \@endparpenalty -\@lowpenalty \@itempenalty +-\@lowpenalty + + + +\def\section{\@startsection {section}{1}{\jspaceskip}{17.5\Q}{4\Q}{\font@s}} +\def\subsection + {\@startsection{subsection}{2}{\jspaceskip}{\baselineskip}{0.001pt}{\font@ss}} +\def\subsubsection + {\@startsection{subsubsection}{3}{\jspaceskip}{0.001pt}{0.001pt}{\font@sss}} +\def\paragraph{\@startsection + {paragraph}{4}{\jspaceskip}{0.001pt}{0.001pt}{\normalsize\bf}} +\def\subparagraph{\@startsection + {subparagraph}{5}{\jspaceskip}{\baselineskip}{0.001pt}{\normalsize\bf}} + +\setcounter{secnumdepth}{5} + +\def\appendix{\par + \setcounter{section}{0} + \setcounter{subsection}{0} + \def\thesection{\Alph{section}}} + +\def\sectionfont#1#2#3{\gdef\font@s{#1}\gdef\font@ss{#2}\gdef\font@sss{#3}} +\sectionfont{\large\bf}{\normalsize\bf}{\normalsize\bf} + + + +\leftmargini2\@mojihaba +\leftmarginii2\@mojihaba +\leftmarginiii2\@mojihaba +\leftmarginiv2\@mojihaba +\leftmarginv2\@mojihaba +\leftmarginvi2\@mojihaba +\leftmargin\leftmargini + +\def\@listI{\leftmargin\leftmargini\parsep\z@\topsep\z@\itemsep\z@ +\labelsep 0.75\@mojihaba % 3/4*\@mojihaba +\labelwidth=0.25\@mojihaba +%\itemindent=\@mojihaba +} +\let\@listi\@listI +%\@listi + +\def\@listii{\leftmargin\leftmarginii +\labelsep 0.75\@mojihaba % 3/4*\@mojihaba +\labelwidth=0.25\@mojihaba +%\itemindent=\@mojihaba + \topsep\z@ \parsep\z@ \itemsep\parsep} + +\def\@listiii{\leftmargin\leftmarginiii +\labelsep 0.75\@mojihaba % 3/4*\@mojihaba +\labelwidth=0.25\@mojihaba +%\itemindent=\@mojihaba + \topsep\z@ \parsep\z@ \itemsep\topsep} + +\def\@listiv{\leftmargin\leftmarginiv +\labelsep 0.75\@mojihaba % 3/4*\@mojihaba +\labelwidth=0.25\@mojihaba +%\itemindent=\@mojihaba +} + +\def\@listv{\leftmargin\leftmarginv +\labelsep 0.75\@mojihaba % 3/4*\@mojihaba +\labelwidth=0pt% +%\itemindent=\@mojihaba +} + +\def\@listvi{\leftmargin\leftmarginvi +\labelsep 0.75\@mojihaba % 3/4*\@mojihaba +\labelwidth=0pt% +%\itemindent=\@mojihaba +} + +% 2009/12/03 Iwasaki +% It seems that the \labelsep parameter has to be set as a moderate +% positive dimension value to make environments defined by \newtheorem +% correctly work. +% Without the following line, \labelsep's value is 0.0pt, which causes +% no space between a theorem number and the first word of the theorem. +\labelsep 5.0pt + + + +%% JTeX glues + +\ifASCII +\defjintercharskip{\ninedm}{0pt}{1.8pt}{0.18pt} +\defjintercharskip{\ninedg}{0pt}{1.8pt}{0.18pt} +\defjintercharskip{\eightdm}{0pt}{1.5pt}{0.15pt} +\defjintercharskip{\eightdg}{0pt}{1.5pt}{0.15pt} +\defjintercharskip{\sevendm}{0pt}{1.4pt}{0.14pt} +\defjintercharskip{\sevendg}{0pt}{1.4pt}{0.14pt} + +\setjglues +\fi +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + +\def\labelenumi{\theenumi.} +\def\theenumi{\arabic{enumi}} +\def\labelenumii{(\theenumii)} +\def\theenumii{\alph{enumii}} +\def\p@enumii{\theenumi} +\def\labelenumiii{\theenumiii.} +\def\theenumiii{\roman{enumiii}} +\def\p@enumiii{\theenumi(\theenumii)} +\def\labelenumiv{\theenumiv.} +\def\theenumiv{\Alph{enumiv}} +\def\p@enumiv{\p@enumiii\theenumiii} + +\def\labelitemi{$\bullet$} +\def\labelitemii{\bf --} +\def\labelitemiii{$\ast$} +\def\labelitemiv{$\cdot$} + +\def\verse{\let\\=\@centercr + \list{}{\itemsep\z@ \itemindent -1.5em\listparindent \itemindent + \rightmargin\leftmargin\advance\leftmargin 1.5em}\item[]} +\let\endverse\endlist +\def\quotation{\list{}{\listparindent 1.5em + \itemindent\listparindent + \rightmargin\leftmargin \parsep 0pt plus 1pt}\item[]} +\let\endquotation=\endlist +\def\quote{\list{}{\rightmargin\leftmargin}\item[]} +\let\endquote=\endlist +\def\abstquotation{\list{}{\listparindent 1.5em + \itemindent\listparindent + \leftmargin 5mm + \rightmargin\leftmargin \parsep 0pt plus 1pt}\item[]} +\let\endabstquotation=\endlist +\def\quote{\list{}{\rightmargin\leftmargin}\item[]} +\let\endquote=\endlist + + +%\def\descriptionlabel#1{\hspace\labelsep \bf #1} +\def\descriptionlabel#1{\bf #1} +\def\description{\list{}{\labelwidth\z@ %\itemindent-\leftmargin + %\itemindent=\@mojihaba + \labelsep=0.75\@mojihaba % + \let\makelabel\descriptionlabel}} +\let\enddescription\endlist + +\def\enumerate{\ifnum \@enumdepth >3 \@toodeep\else + \advance\@enumdepth \@ne + \edef\@enumctr{enum\romannumeral\the\@enumdepth}\list + {\csname label\@enumctr\endcsname}{\usecounter + {\@enumctr}\def\makelabel##1{##1\hss}}\fi} + +\let\endenumerate =\endlist + +\def\itemize{\ifnum \@itemdepth >3 \@toodeep\else \advance\@itemdepth \@ne +\edef\@itemitem{labelitem\romannumeral\the\@itemdepth}% +\list{\csname\@itemitem\endcsname}{\def\makelabel##1{##1\hss}}\fi} + +\let\enditemize =\endlist + + + + + +\def\theequation{\arabic{equation}} + +\arraycolsep 5pt \tabcolsep 6pt \arrayrulewidth .4pt \doublerulesep 2pt +\tabbingsep \labelsep + +\skip\@mpfootins = \skip\footins +\fboxsep = 3pt \fboxrule = .4pt + + + +\newcounter{part} +\newcounter{section} +\newcounter{subsection}[section] +\newcounter{subsubsection}[subsection] +\newcounter{paragraph}[subsubsection] +\newcounter{subparagraph}[paragraph] + +\def\thepart{\Roman{part}} \def\thesection {\arabic{section}} +\def\thesubsection {\thesection.\,\arabic{subsection}} +\def\thesubsubsection {\thesubsection.\,\arabic{subsubsection}} +\def\theparagraph {\thesubsubsection.\,\arabic{paragraph}} +\def\thesubparagraph {\theparagraph.\,\arabic{subparagraph}} + + + +% Do not delete BEFORESKIP even if \section is on top of page +% Is this functioning? +% \@startsection {NAME}{LEVEL}{INDENT}{BEFORESKIP}{AFTERSKIP}{STYLE} +\def\@startsection#1#2#3#4#5#6{\if@noskipsec \leavevmode \fi + \par \@tempskipa #4\relax + \@afterindenttrue + \ifdim \@tempskipa <\z@ \@tempskipa -\@tempskipa \@afterindentfalse\fi + \@minipagefalse % this line is added by Hiroshi Nakashima + \if@nobreak \everypar{}\else + \addpenalty{\@secpenalty}% + \ifnum#2=\@ne%\message{topskip=\the\topskip,beforeskip=\the\@tempskipa} +%\message{prevdepth=\the\prevdepth}% +\ifdim\prevdepth=0pt\vspace*{-21.5\Q}\else\vskip-\prevdepth\fi +%\vspace{-\prevdepth} % seems to be the same as above, but does not work!! +% \advance\@tempskipa-17.5\Q \addvspace{17.5\Q} +% 13.89347pt = 17.5Q + depth(1.44539pt) + \advance\@tempskipa-13.89347pt \addvspace{13.89347pt} + \vspace*{\@tempskipa}% + \else\addvspace{\@tempskipa}\fi\fi \@ifstar + {\@ssect{#3}{#4}{#5}{#6}}{\@dblarg{\@sect{#1}{#2}{#3}{#4}{#5}{#6}}}} + +% to include section/subsection title modification +\def\@sect#1#2#3#4#5#6[#7]#8{\ifnum #2>\c@secnumdepth + \def\@svsec{}\else +% \refstepcounter{#1}\edef\@svsec{\csname the#1\endcsname\hskip 1em }\fi + \refstepcounter{#1}\edef\@svsec{\csname the#1\endcsname\hskip\@mojihaba}\fi + \@tempskipa #5\relax + \ifdim \@tempskipa>\z@ + \begingroup #6\relax + \@hangfrom{\hskip #3\relax\@svsec}{\interlinepenalty \@M\@mojidori{#8}\par}% + \endgroup + \csname #1mark\endcsname{#7}\addcontentsline + {toc}{#1}{\ifnum #2>\c@secnumdepth \else + \protect\numberline{\csname the#1\endcsname}\fi + #7}\else + \def\@svsechd{#6\hskip #3\@svsec #8\csname #1mark\endcsname + {#7}\addcontentsline + {toc}{#1}{\ifnum #2>\c@secnumdepth \else + \protect\numberline{\csname the#1\endcsname}\fi + #7}}\fi + \@xsect{#5}} + +\def\@ssect#1#2#3#4#5{\@tempskipa #3\relax + \ifdim \@tempskipa>\z@ + \begingroup #4\@hangfrom{\hskip #1}{\interlinepenalty \@M\@mojidori{#5}\par}\endgroup + \else \def\@svsechd{#4\hskip #1\relax #5}\fi + \@xsect{#3}} + +\newlength\@currentmojihaba + +\def\@mojidori#1{\setbox0\hbox{#1}\settowidth{\@currentmojihaba}{$B$"(B}% + \ifdim\wd0>5\@currentmojihaba #1\else% + \ifdim\wd0=2\@currentmojihaba {\jasciikanjiskip=2\@currentmojihaba% + \jmathkanjiskip=2\@currentmojihaba% + \jintercharskip=2\@currentmojihaba #1}\else% + {\jasciikanjiskip=0.2\@currentmojihaba% + \jmathkanjiskip=0.2\@currentmojihaba% + \jintercharskip=0.2\@currentmojihaba #1}\fi\fi} + + +\newlength\twodigits + +\newbox\bibbox +\setbox\bibbox=\hbox{{999}}{\relax} +\def\@biblabel#1{\hbox to\wd\bibbox{{[\hss#1\hss]}}} + +\def\thebibliography#1{\subsection*{\refname\@mkboth{\refname}{\refname}}% +\vskip7\Q % = 21.5\Q - 14.5\Q (the difference in two baselineskips) +\settowidth\twodigits{#1}\list + {~~[\hbox to \twodigits{\hss\arabic{enumi}\hss}]} + {\setlength\labelwidth{10\Q}\leftmargin\labelwidth\labelsep\labelwidth + \advance\leftmargin\labelsep + \itemindent=0pt + \usecounter{enumi}\footnotesize\baselineskip=14.5\Q} + \def\newblock{\hskip .11em plus .33em minus .07em} + \sloppy\clubpenalty4000\widowpenalty4000 + \sfcode`\.=1000\relax} +\let\endthebibliography=\endlist + +\def\refname{$B;2(B $B9M(B $BJ8(B $B8%(B} % will be changed in English articles + + + +\newif\if@restonecol +\def\theindex{\@restonecoltrue\if@twocolumn\@restonecolfalse\fi +\columnseprule \z@ +\columnsep 35pt\twocolumn[\section*{\indexname}] + \@mkboth{\indexname}{\indexname}\thispagestyle{plain}\parindent\z@ + \parskip\z@ plus .3pt\relax\let\item\@idxitem} +\def\@idxitem{\par\hangindent 40pt} +\def\subitem{\par\hangindent 40pt \hspace*{20pt}} +\def\subsubitem{\par\hangindent 40pt \hspace*{30pt}} +\def\endtheindex{\if@restonecol\onecolumn\else\clearpage\fi} +\def\indexspace{\par \vskip 10pt plus 5pt minus 3pt\relax} + + + +% You may need to change following parameters +\setcounter{topnumber}{4} \def\topfraction{.9} +\setcounter{bottomnumber}{4} \def\bottomfraction{.9} +\setcounter{totalnumber}{8} +\def\textfraction{.1} +\def\floatpagefraction{.9} +\setcounter{dbltopnumber}{4} \def\dbltopfraction{.9} +\def\dblfloatpagefraction{.9} + +% You cannot handle double column bottom figures yet!!! + +\newskip\@beforecaptionskip +\newskip\@aftercaptionskip +% initial default values for under caption +\@beforecaptionskip=10\Q \@aftercaptionskip=0pt + +% addcontentsline is omitted to allow `\\' containing argument +\long\def\@caption#1[#2]#3{\par\begingroup + \@parboxrestore +% \normalsize + \@makecaption{\csname fnum@#1\endcsname}{\ignorespaces #3}\par + \endgroup} + +\newbox\@tempboxb +% following makecaption is for under caption. +% you may need to define another makecaption for over caption!! +\long\def\@makecaption#1#2{\vskip\@beforecaptionskip + \setbox\@tempboxa\hbox{\footnotesize\bf #1\hskip\jspaceskip #2} + \ifdim \wd\@tempboxa >\hsize + \begin{center} +% \setbox\@tempboxb\hbox{\footnotesize\bf #1\hskip\jspaceskip} +% \hangindent=\wd\@tempboxb \hangafter=1 + {\footnotesize\bf #1\hskip\jspaceskip #2}\par + \end{center} + \else + \hbox to\hsize{\hfil\box\@tempboxa\hfil} +% \center{\footnotesize\bf #1\hskip\jspaceskip #2} + \fi\vskip\@aftercaptionskip} + +\newcounter{figure} +\def\thefigure{\@arabic\c@figure} +\def\fps@figure{tbp} +\def\ftype@figure{1} +\def\ext@figure{lof} +\def\fnum@figure{\figurename \thefigure} +\def\figure{\bgroup\@beforecaptionskip=10\Q\@aftercaptionskip=0pt\@float{figure}} +\def\endfigure{\end@float\egroup} +\@namedef{figure*}{\bgroup\@beforecaptionskip=10\Q\@aftercaptionskip=0pt\@dblfloat{figure}} +\@namedef{endfigure*}{\end@dblfloat\egroup} + +\newcounter{table} +\def\thetable{\@arabic\c@table} +\def\fps@table{tbp} +\def\ftype@table{2} +\def\ext@table{lot} +\def\fnum@table{\tablename \thetable} +\def\table{\bgroup\@beforecaptionskip=0pt\@aftercaptionskip=7\Q\@float{table}} +\def\endtable{\end@float\egroup} +\@namedef{table*}{\bgroup\@beforecaptionskip=0pt\@aftercaptionskip=7\Q\@dblfloat{table}} +\@namedef{endtable*}{\end@dblfloat\egroup} + +% height adjustment code insertion into float ending routines +\newdimen\@floatheight +\newcount\@floatlinecount + +\def\end@float{\par\vskip\z@\egroup %% \par\vskip\z@ added 15 Dec 87 +\color@endbox +\@floatheight=\ht\@currbox +\advance\@floatheight \dp\@currbox +\divide\@floatheight\baselineskip \@floatlinecount=\@floatheight +\advance\@floatlinecount\@ne +\@floatheight=\@floatlinecount\baselineskip +%\fboxrule=0.01pt\fboxsep=0pt% for debugging +%\global\setbox\@currbox=\hbox{\fbox{\vbox to\@floatheight{\vfil\copy\@currbox\vfil}}}% +\global\setbox\@currbox=\vbox to\@floatheight{\vfil\copy\@currbox\vfil}% + \ifnum\@floatpenalty <\z@ + \@cons\@currlist\@currbox + \ifdim \ht\@currbox >\textheight + \ht\@currbox\textheight \fi + \ifnum\@floatpenalty < -\@Mii + \penalty -\@Miv + \@tempdima\prevdepth %% saving and restoring \prevdepth added + \vbox{} %% 26 May 87 to prevent extra vertical + \prevdepth \@tempdima %% space when used in vertical mode + \penalty\@floatpenalty + \else \vadjust{\penalty -\@Miv \vbox{}\penalty\@floatpenalty}\@esphack + \fi\fi} + +\def\end@dblfloat{\if@twocolumn + \par\vskip\z@\egroup %% \par\vskip\z@ added 15 Dec 87\egroup +\color@endbox +\@floatheight=\ht\@currbox +\advance\@floatheight \dp\@currbox +\divide\@floatheight\baselineskip \@floatlinecount=\@floatheight +\advance\@floatlinecount\@ne +\@floatheight=\@floatlinecount\baselineskip +%\fboxrule=0.01pt\fboxsep=0pt% for debugging +%\global\setbox\@currbox=\hbox{\fbox{\vbox to\@floatheight{\vfil\copy\@currbox\vfil}}}% +\global\setbox\@currbox=\vbox to\@floatheight{\vfil\copy\@currbox\vfil}% + \ifnum\@floatpenalty <\z@ \@cons\@dbldeferlist\@currbox\fi + \ifnum \@floatpenalty =-\@Mii \@esphack\fi\else\end@float\fi} + + + +\def\maketitle{\par + \begingroup + \def\thefootnote{}% + \def\@makefnmark{}% + \if@twocolumn + \twocolumn[\@maketitle] + \else \newpage + \global\@topnum\z@ \@maketitle \fi\thispagestyle{plain}\@thanks + \endgroup + \setcounter{footnote}{0} + + \thispagestyle{myheadings} % to avoid running head on title page + \if@hissha + \thispagestyle{hisshatop} + \fi + \let\maketitle\relax + \let\@maketitle\relax + \gdef\@thanks{}\gdef\@author{}\gdef\@title{}\let\thanks\relax} + +\newbox\@temptitlebox + +% abstract + +\long\def\Jabstract#1{\global\long\def\Jabstcontent{\noindent\ignorespaces #1}} +\long\def\Eabstract#1{\global\long\def\Eabstcontent{\noindent\ignorespaces #1}} +\def\Jabstcontent{\relax} +\def\Eabstcontent{\relax} +\def\JEabstInsert{% + \begin{adjustvboxheight}\vfill + \begin{small} + \begin{abstquotation} + \Jabstcontent + \par\hbox{ }\par + \Eabstcontent + \end{abstquotation} + \end{small}\vskip8mm + \end{adjustvboxheight}} +\def\EabstInsert{% + \begin{adjustvboxheight}\vfill + \begin{small} + \begin{abstquotation} + \Eabstcontent + \end{abstquotation} + \end{small}\vskip8mm + \end{adjustvboxheight}} + +\def\Jarticle{% +\global\def\@maketitle{\newpage \null +\hbox{\vbox to193.5\Q{\baselineskip=10mm % 193.5\Q = 9*\baselineskip +\begin{flushleft} +\JarticleHeader +% following extra vskip together with baselineskip(10mm) will produce +% appropriate 10mm/6mm gap between the rule and title +% This assumes that title is typeset with 28Q(7mm) font, and baseline +% is set 1mm above the bottom of the font. +\setbox\@temptitlebox\hbox{JarticleTitle}\ifdim\wd\@temptitlebox>\textwidth\vskip2mm\else\vskip6mm\fi +\leftskip=5mm +\JarticleTitle +\vskip6mm % to leave 10mm gap between title and author +\JarticleAuthor +\end{flushleft}\vfil}} +\JEabstInsert +}} + +\def\Earticle{% +\def\refname{References}% +\def\tablename{Table~} +\def\figurename{Fig.~} +\global\def\@maketitle{\newpage \null +\hbox{\vbox to193\Q{\baselineskip=8mm % 193.5\Q = 9*\baselineskip +\begin{flushleft} +\EarticleHeader +% following extra vskip together with baselineskip(8mm) will produce +% appropriate 10mm/6mm gap between the rule and title +% This assumes that title is typeset with 28Q(7mm) font, and baseline +% is set 1mm above the bottom of the font. +\setbox\@temptitlebox\hbox{EarticleTitle}\ifdim\wd\@temptitlebox>\textwidth\vskip4mm\else\vskip8mm\fi +\leftskip=5mm +\EarticleTitle +\vskip6mm % to leave 10mm gap between title and author +\EarticleAuthor +\end{flushleft}\vfil}} +\EabstInsert +} +\@Baseline=17.5\Q} + +\def\JarticleWithoutAbst{% +\global\def\@maketitle{\newpage \null +\hbox{\vbox to193.5\Q{\baselineskip=10mm % 193.5\Q = 9*\baselineskip +\begin{flushleft} +\JarticleHeader +\setbox\@temptitlebox\hbox{JarticleTitle}\ifdim\wd\@temptitlebox>\textwidth\vskip2mm\else\vskip6mm\fi +\leftskip=5mm +\JarticleTitle +\vskip6mm % to leave 10mm gap between title and author +\JarticleAuthor +\end{flushleft}\vfil}}}} + +\def\leaderfill{\leaders\hbox{\rule{1mm}{1mm}}\hfill} +\def\leaderfillB{\leaders\hbox to1mm{% + \vbox{\rule{1mm}{0.1mm}\vskip0.4mm + \rule{1mm}{0.1mm}\vskip0.4mm + \rule{1mm}{0.1mm}\vskip0.4mm + \rule{1mm}{0.1mm}}}\hfill} + +\newdimen\strokeinterval \newdimen\strokewidth +\newdimen\rightstrokewidth +\strokeinterval=\textwidth \advance\strokeinterval by-0.1mm +\divide\strokeinterval by150 +\strokewidth=\strokeinterval +\multiply\strokewidth by150 \advance\strokewidth by0.1mm +\rightstrokewidth=\strokeinterval +\multiply\rightstrokewidth by9 +\def\leaderfillstrokeL{\leaders\hbox to\strokeinterval{% + \rule{0.1mm}{1.6mm}\hfil}\hfill} + +\newdimen\boxinterval \newdimen\boxwidth +\newdimen\leftboxwidth +\boxinterval=\textwidth \advance\boxinterval by-1mm +\divide\boxinterval by99 +\boxwidth=\boxinterval +\multiply\boxwidth by99 \advance\boxwidth by1mm +\leftboxwidth=\boxinterval +\multiply\leftboxwidth by6 +\def\leaderfillboxL{\leaders\hbox to\boxinterval{% + \rule{0.9mm}{1mm}\hfil}\hfill} + +\ifASCII\else +\jfont\gona=dg12 % in ASCII, moved to (d)skfonts. +\fi + +% default title header +% you must devise various headers for topics, tokushu, shohyo etc. +% +% 2009/04/22 H.Iwasaki +% ========================================================== +% $B%9%?%$%k%U%!%$%k$NJQ99!$$=$NL\E*$O0J2<$NFs$D(B +% $B!&(B2009$BG/(B6$B7n$h$jO@J8Ej9F5,Dj$,2~D{$5$l$k$N$K9g$o$;$k(B +% $B!&(B2009$BG/EY$NBg2qO@J8%U%)!<%^%C%H$b6&MQ$9$k$h$&$K$9$k(B +% + +%%% +% $BO@J8<oJL(B +% $B%3%s%T%e!<%?%=%U%H%&%'%";o$K7G:\$5$l$kO@J8$O(B +% $B8&5fO@J8(B/$B%=%U%H%&%'%"O@J8(B/$B2r@bO@J8(B +% $B$N(B3$BDL$j$G$"$k$,!$Bg2qM=9F$b$3$N%9%?%$%k%U%!%$%k$r;H$&$3$H$K$7$?$N$G!$(B +% $BJX59E*$K!$Bg2qM=9F$bO@J8<oJL$N0l<o$H$9$k!%(B +% +% $B7k6IO@J8<oJL$O!$(B +% $B8&5fO@J8(B/$B%=%U%H%&%'%"O@J8(B/$B2r@bO@J8(B/$BBg2qM=9F(B +% $B$N(B4$BDL$j$N$$$:$l$+!%$=$N$=$l$>$l$K$D$$$FOBJ8$H1QJ8$,$"$jF@$k$,!$(B +% $B1QJ82r@bO@J8$O$"$^$jA[Dj$7$F$$$J$$!%(B +% $B$^$?!$%A%e!<%H%j%"%k$O2r@bO@J8$N0l<o$@$,!$(B1$B%Z!<%8L\$NF,=q$-$,(B +% $B0[$J$k$N$G!$IaDL$N2r@bO@J8$H$PJL$N<oJLJ8;z$rMQ0U$7$?!%(B +% +% \documentclass[..]{compsoft} $B$N(B [...] $B$NCf$KO@J8<oJL!$::FI<oJL!$8@8l(B +% $B$r;XDj$9$k!%(B +% +% $BO@J8<oJL(B +% P $B8&5fO@J8(B ($B%G%U%)%k%H(B) +% S $B%=%U%H%&%'%"O@J8(B +% K $BIaDL$N2r@bO@J8(B +% U $B%A%e!<%H%j%"%k(B +% T $BBg2qO@J8(B ($BBg2qO@J8$OJX59E*$KO@J8<oJL$N0l<o$H$7$F07$&(B) +% +% $B::FI<oJL(B ($BBg2qO@J8$N;~$K$O;XDj$7$J$$(B) +% R $BDL>oO@J8(B ($B%G%U%)%k%H(B) +% L $B%l%?!<O@J8(B +% +% $B8@8l(B +% J $BOBJ8(B ($B%G%U%)%k%H(B) +% E $B1QJ8(B +% +% \ronbunShubetsu $B$O!$O@J8<oJL$rI=$90lJ8;z(B (P, S, K, U, T $B$N$$$:$l$+(B) +% \sadokuShubets $B$O!$::FI<oJL$rI=$90lJ8;z(B (R$B!$(BL $B$N$$$:$l$+(B) +% \ronbunLang $B$O!$8@8l$rI=$90lJ8;z(B (J, E $B$N$$$:$l$+(B) + +\let\ronbunShubetsu=P % $BO@J8<oJL$N%G%U%)%k%HCM$O8&5fO@J8(B +\let\sadokuShubetsu=R % $B::FI<oJL$N%G%U%)%k%HCM$ODL>oO@J8(B +\let\ronbunLang=J % $B%G%U%)%k%H$OOBJ8O@J8(B +\def\JarticleHeader{\rule{\textwidth}{1mm}} +\def\JarticleTitle{{\huge\bf\@title}} +\def\JarticleAuthor{\LARGE\begin{tabular}[t]{@{}l}\@author\end{tabular}} + +% +% $BO@J8<oJL(B +% + +\def\ifRonbun#1{\ifx\ronbunShubetsu P{#1}\else\relax\fi} +\def\ifSoftRonbun#1{\ifx\ronbunShubetsu S{#1}\else\relax\fi} +\def\ifKaisetsu#1{\ifx\ronbunShubetsu K{#1}\else\relax\fi} +\def\ifTutorial#1{\ifx\ronbunShubetsu U{#1}\else\relax\fi} +\def\ifTaikai#1{\ifx\ronbunShubetsu T{#1}\else\relax\fi} +\def\ifNotTaikai#1{\ifx\ronbunShubetsu T\relax\else{#1}\fi} + +% $B"!(BP $B!J8&5fO@J8!K(B +\def\ds@P{ +\let\ronbunShubetsu=P% +\def\JarticleHeader{\rule{\textwidth}{1mm}}% +\def\JarticleTitle{{\huge\bf\@title}}% +\def\JarticleAuthor{\LARGE\begin{tabular}[t]{@{}l}\@author\end{tabular}}% +\Jarticle} + +% $B"!(BS $B!J%=%U%H%&%'%"O@J8!K(B +\def\ds@S{ +\let\ronbunShubetsu=S% +\def\JarticleHeader{% +\hbox to \strokewidth{\leaderfillboxL\rule{0.9mm}{1mm}}}% +\def\JarticleTitle{{\huge\bf\@title}}% +\def\JarticleAuthor{\LARGE\begin{tabular}[t]{@{}l}\@author\end{tabular}}% +\Jarticle} + +% $B"!(BK $B!JIaDL$N2r@bO@J8!K(B +\def\ds@K{ +\let\ronbunShubetsu=K% +\def\JarticleHeader{{\offinterlineskip +\rule{\textwidth}{0.1mm}\vskip0.4mm +\rule{\textwidth}{0.1mm}\vskip0.4mm +\rule{\textwidth}{0.1mm}\vskip0.4mm +\rule{\textwidth}{0.1mm} +\vbox to8mm{\vfil\hbox{\hskip5mm{\gona $B2r!!@b(B}\hfil}\vfil} +\rule{\textwidth}{0.1mm} +\vskip0pt}% to end the paragraph and use new baselineskip +}% +\def\JarticleTitle{{\huge\bf\@title}}% +\def\JarticleAuthor{\LARGE\begin{tabular}[t]{@{}l}\@author\end{tabular}}% +\Jarticle} + +% $B"!(BU $B!J%A%e!<%H%j%"%k(B --- $B2r@bO@J8$N0l<o!K(B +\def\ds@U{ +\let\ronbunShubetsu=U% +\def\JarticleHeader{{\offinterlineskip +\hbox to \strokewidth{\leaderfillstrokeL\rule{0.1mm}{1.6mm}} +\hbox to\strokewidth{\hbox to0.1mm{{\vbox to8mm{\vss\rule{0.1mm}{9.5mm}}}}% +\vbox to8mm{\vfil\hbox{\hskip5mm{\gona $B%A%e!<%H%j%"%k(B}}\vfil}\hfil% +\hbox to0.1mm{\vbox to8mm{\vss\rule{0.1mm}{9mm}}}} +\rule{\strokewidth}{0.1mm} +\vskip0pt}% to end the paragraph and use new baselineskip +}% +\def\JarticleTitle{{\huge\bf\@title}}% +\def\JarticleAuthor{\LARGE\begin{tabular}[t]{@{}l}\@author\end{tabular}}% +\Jarticle} + +% $B"!(BT $B!JBg2qO@J8!K(B +\def\ds@T{ +\let\ronbunShubetsu=T% +\def\JarticleHeader{\rule{\textwidth}{1mm}}% +\def\JarticleTitle{{\huge\bf\@title}}% +\def\JarticleAuthor{\LARGE\begin{tabular}[t]{@{}l}\@author\end{tabular}}% +\Jarticle\adjustAfour} + +% +% $B::FI<oJL(B --- $BDL>oO@J8(B/$B%l%?!<O@J8(B $B$N(B2$BDL$j(B +% + +\def\ifRegular#1{\ifx\sadokuShubetsu R{#1}\else\relax\fi} +\def\ifLetter#1{\ifx\sadokuShubetsu L{#1}\else\relax\fi} + +% $B"!(BR $B!JDL>oO@J8!K(B +\def\ds@R{ +\let\sadokuShubetsu=R +} + +% $B"!(BL $B!J%l%?!<O@J8!K(B +\def\ds@L{ +\let\sadokuShubetsu=L +} + +% +% $B8@8l(B +% + +% $B"!(BJ $B!JOBJ8!K(B +\def\ds@J{ +\let\ronbunLang=J% +\Jarticle} + +% $B"!(BE $B!J1QJ8!K(B +\def\ds@E{ +\let\ronbunLang=E% +\def\EarticleHeader{\JarticleHeader} +\def\EarticleTitle{\JarticleTitle} +\def\EarticleAuthor{\JarticleAuthor} +\Earticle} + +%%% +% $BFC=8$N>l9g(B +% \tokushu{$BFC=8$N%?%$%H%k(B} +% $B$H$9$k!%$3$N%?%$%H%k$O!$(B1$B%Z!<%8L\$N>e$NJ}$K=PNO$5$l$k!%(B + +\def\tokushu#1{% +\def\tokushutitle{#1}% +\ifRonbun{% +\gdef\articleHeader{\hbox to\textwidth{\rule{3\@mojihaba}{1mm}% +\hbox{\small\bf\hskip1mm $BFC=8!|(B\tokushutitle}\leaderfill}}}% +\ifSoftRonbun{% +\gdef\articleHeader{\hbox to\textwidth{% +\hbox to \leftboxwidth{\leaderfillboxL}% +\hbox{\small\bf\hskip1mm $BFC=8!|(B\tokushutitle}\leaderfillboxL +\rule{0.9mm}{1mm}}}}% +\ifKaisetsu{% +\gdef\articleHeader{{\offinterlineskip +\hbox to \textwidth{\leaderfillB\hbox{\small\bf\hskip1mm $BFC=8!|(B\tokushutitle +\hskip1mm}% +\hbox to3\@mojihaba{% + \vbox{\rule{3\@mojihaba}{0.1mm}\vskip0.4mm + \rule{3\@mojihaba}{0.1mm}\vskip0.4mm + \rule{3\@mojihaba}{0.1mm}\vskip0.4mm + \rule{3\@mojihaba}{0.1mm}}}}% +\vbox to8mm{\vfil\hbox{\hskip5mm{\gona $B2r!!@b(B}\hfil}\vfil} +\rule{\textwidth}{0.1mm} +\vskip0pt}% to end the paragraph and use new baselineskip +}}% +\ifTutorial{% +\gdef\articleHeader{{\offinterlineskip +\hbox to \strokewidth{\leaderfillstrokeL +\hbox{\small\bf\hskip1mm $BFC=8!|(B\tokushutitle\hskip2mm}% +\hbox to\rightstrokewidth{\leaderfillstrokeL}\rule{0.1mm}{1.6mm}}% +\hbox to\strokewidth{\hbox to0.1mm{{\vbox to8mm{\vss\rule{0.1mm}{9mm}}}}% +\vbox to8mm{\vfil\hbox{\hskip5mm{\gona $B%A%e!<%H%j%"%k(B}}\vfil}\hfil% +\hbox to0.1mm{\vbox to8mm{\vss\rule{0.1mm}{9mm}}}} +\rule{\strokewidth}{0.1mm} +\vskip0pt}% to end the paragraph and use new baselineskip +}}% +\gdef\JarticleHeader{\articleHeader}% +\gdef\EarticleHeader{\articleHeader}} + +%%% +% $B?dA&$N>l9g(B +% \suisen{$B%?%$%H%k(B} +% $B$H$9$k!%$3$N%?%$%H%k$O!$(B1$B%Z!<%8L\$N>e$NJ}$K=PNO$5$l$k!%(B + +\def\suisen#1{% +\def\suisentitle{#1}% +\ifRonbun{% +\gdef\articleHeader{\hbox to\textwidth{\rule{3\@mojihaba}{1mm}% +\hbox{\small\bf\hskip1mm $B?dA&O@J8!|(B\suisentitle}\leaderfill}}}% +\ifSoftRonbun{% +\gdef\articleHeader{\hbox to\textwidth{% +\hbox to \leftboxwidth{\leaderfillboxL}% +\hbox{\small\bf\hskip1mm $B?dA&O@J8!|(B\suisentitle}\leaderfillboxL +\rule{0.9mm}{1mm}}}}% +\ifKaisetsu{% +\gdef\articleHeader{{\offinterlineskip +\hbox to \textwidth{\leaderfillB\hbox{\small\bf\hskip1mm $B?dA&O@J8!|(B\suisentitle +\hskip1mm}% +\hbox to3\@mojihaba{% + \vbox{\rule{3\@mojihaba}{0.1mm}\vskip0.4mm + \rule{3\@mojihaba}{0.1mm}\vskip0.4mm + \rule{3\@mojihaba}{0.1mm}\vskip0.4mm + \rule{3\@mojihaba}{0.1mm}}}}% +\vbox to8mm{\vfil\hbox{\hskip5mm{\gona $B2r!!@b(B}\hfil}\vfil} +\rule{\textwidth}{0.1mm} +\vskip0pt}% to end the paragraph and use new baselineskip +}}% +\gdef\JarticleHeader{\articleHeader}% +\gdef\EarticleHeader{\articleHeader}} + +%%% +% $BBg2qM=9F$N>l9g(B +% \taikai{$BG/EY(B} +% $B$rF~$l$J$1$l$P$J$i$J$$!%2s?t$OG/EY$+$i<+F0E*$K7W;;$5$l$k!%(B +% $B2s?t(B = $BG/EY(B - 1983 +% $B$3$N%?%$%H%k$O!$(B1$B%Z!<%8L\$N>e$NJ}$K=PNO$5$l$k!%(B + +\def\leaderfilll{\leaders\hbox{\rule{0.2mm}{0.2mm}}\hfill} + +\def\taikai#1{% +\ifTaikai{% +\newcount\currentYear% +\newcount\currentKai% +\currentYear=#1% +\currentKai=\currentYear\advance\currentKai by-1983% +\global\xdef\taikaititle{$BF|K\%=%U%H%&%'%"2J3X2qBh(B\number\currentKai $B2sBg2q(B% +(\number\currentYear $BG/EY(B)$B9V1iO@J8=8(B}% +\gdef\articleHeader{\hbox to\textwidth{\rule{3\@mojihaba}{0.2mm}% +\hbox{\small\bf\hskip1mm \taikaititle\hskip1mm}\leaderfilll}}% +\gdef\JarticleHeader{\articleHeader}% +\gdef\EarticleHeader{\articleHeader}% +\gdef\@oddheadcontents{\taikaititle}% +\gdef\@evenheadcontents{\taikaititle}}} + +%%% +% 1$B%Z!<%8L\$N:82<$K=PNO$5$l$k$b$N(B +\def\ejtitle#1{\thanks{#1}} + +\def\shozoku#1#2#3{\thanks{#1, #2, #3.}} + +\def\shutten{% +\ifNotTaikai{% + \thanks{\kanjiskip 0pt minus 0.15zw % + $B%3%s%T%e!<%?%=%U%H%&%'%"(B, \kern-0.75pt Vol.\arabic{$B4,?t(B}, % + \kern-0.75pt No.\arabic{$B9f?t(B} \kern-1.25pt(\arabic{$BG/?t(B}), % + \kern-0.75pt pp.\arabic{firstpage}--\arabic{lastpage}.}}} + +\def\ronbunKind{% + \ifRonbun{$B8&5f(B}\ifSoftRonbun{$B%=%U%H%&%'%"(B}% + \ifKaisetsu{$B2r@b(B}\ifTutorial{$B2r@b(B}$BO@J8(B% + \ifRegular{\relax}\ifLetter{($B%l%?!<(B)}} + +\def\uketsuke#1#2#3{\ifNotTaikai{\thanks{[\ronbunKind] #1$BG/(B#2$B7n(B#3$BF|<uIU(B.}}} + +\def\note#1{\thanks{#1}} + +% $B$3$3$+$i@h$O8_49@-$N$?$a$K!$<j$rF~$l$F$$$J$$(B +% +% ========================================================== +% $B"!(Bronbun $B!JO@J8!K(B +\def\ds@ronbun{ +\def\JarticleHeader{\rule{\textwidth}{1mm}}% +\def\JarticleTitle{{\huge\bf\@title}}% +\def\JarticleAuthor{\LARGE\begin{tabular}[t]{@{}l}\@author\end{tabular}}% +\Jarticle} + +% $B"!(BEronbun $B!J1QJ8O@J8!K(B +\def\ds@Eronbun{ +\def\EarticleHeader{\rule{\textwidth}{1mm}}% +\def\EarticleTitle{{\huge\bf\@title}}% +\def\EarticleAuthor{\LARGE\begin{tabular}[t]{@{}l}\@author\end{tabular}}% +\Earticle} + +% ========================================================== +% $B"!(Bronbungaiyou $B!JO@J835MW!K(B +\def\ds@ronbungaiyou{ +\def\pages##1{\long\def\pp{##1}} +\let\Jabstcontent\relax +\let\Eabstcontent\relax +\def\maketitle{\par + \@lastpagebalancingfalse + \begingroup + \def\thefootnote{}% + \def\@makefnmark{}% + \@maketitle + \thispagestyle{plain}\@thanks + \endgroup + \setcounter{footnote}{0} + \thispagestyle{myheadings} % to avoid running head on title page +\gdef\@thanks{}\gdef\@author{}\gdef\@title{} +\let\Jabstcontent\relax +\let\Eabstcontent\relax +% \let\thanks\relax +}% +% +\def\JarticleHeader{\hbox to25\jspaceskip{\rule{2\@mojihaba}{1mm}\hbox{\small\bf\hskip1mm $B%5%$%P!<%Z!<%8O@J835MW(B\hskip1mm}\leaderfill}}% +\def\JarticleTitle{{\Large\bf\@title}}% +\def\JarticleAuthor{\large\begin{tabular}[t]{@{}l}\@author\end{tabular}}% +\global\def\@maketitle{\newpage \null +\hbox{\vbox to193.5\Q{\baselineskip=6mm % 193.5\Q = 9*\baselineskip +\begin{flushleft} +\JarticleHeader +\vskip5mm +\leftskip=0mm +\JarticleTitle +\vskip3mm % to leave 7mm gap between title and author +\JarticleAuthor +\end{flushleft}\vfil}} +% \begin{small} +\begingroup +\ifx\Jabstcontent\relax +\baselineskip=19.5Q +\Eabstcontent\par +\else +\baselineskip=19.5Q +\Jabstcontent\par +\fi +\leavevmode\null\hfill +[\kern1pt pp.~\pp\kern1pt]\par +\endgroup +% \end{small} +}} + +% ========================================================== +% $B"!(Bsoftwareronbun $B!J%=%U%H%&%'%"O@J8!K(B +\def\ds@softwareronbun{ +\def\JarticleHeader{% +\hbox to \strokewidth{\leaderfillboxL\rule{0.9mm}{1mm}}}% +\def\JarticleTitle{{\huge\bf\@title}}% +\def\JarticleAuthor{\LARGE\begin{tabular}[t]{@{}l}\@author\end{tabular}}% +\Jarticle} + +% ========================================================== +% $B"!(Btutorial $B!J%A%e!<%H%j%"%k!K(B +\def\ds@tutorial{ +\def\JarticleHeader{{\offinterlineskip +\hbox to \strokewidth{\leaderfillstrokeL\rule{0.1mm}{1.6mm}} +\hbox to\strokewidth{\hbox to0.1mm{{\vbox to8mm{\vss\rule{0.1mm}{9.5mm}}}}% +\vbox to8mm{\vfil\hbox{\hskip5mm{\gona $B%A%e!<%H%j%"%k(B}}\vfil}\hfil% +\hbox to0.1mm{\vbox to8mm{\vss\rule{0.1mm}{9mm}}}} +\rule{\strokewidth}{0.1mm} +\vskip0pt}% to end the paragraph and use new baselineskip +}% +\def\JarticleTitle{{\huge\bf\@title}}% +\def\JarticleAuthor{\LARGE\begin{tabular}[t]{@{}l}\@author\end{tabular}}% +\Jarticle} + +% ========================================================== +% $B"!(Bkaisetsu $B!J2r@b!K(B +\def\ds@kaisetsu{ +\def\JarticleHeader{{\offinterlineskip +\rule{\textwidth}{0.1mm}\vskip0.4mm +\rule{\textwidth}{0.1mm}\vskip0.4mm +\rule{\textwidth}{0.1mm}\vskip0.4mm +\rule{\textwidth}{0.1mm} +\vbox to8mm{\vfil\hbox{\hskip5mm{\gona $B2r!!@b(B}\hfil}\vfil} +\rule{\textwidth}{0.1mm} +\vskip0pt}% to end the paragraph and use new baselineskip +}% +\def\JarticleTitle{{\huge\bf\@title}}% +\def\JarticleAuthor{\LARGE\begin{tabular}[t]{@{}l}\@author\end{tabular}}% +\Jarticle} + +% ========================================================== +% $B"!(Btopics $B!J%H%T%C%/%9!K(B +\def\ds@topics{ +\def\JarticleHeader{{\offinterlineskip +\rule{\textwidth}{0.1mm} +\vbox to8mm{\vfil\hbox{\hskip5mm{\gona $B%H%T%C%/%9(B}\hfil}\vfil} +\rule{\textwidth}{0.1mm} +\vskip0pt}% to end the paragraph and use new baselineskip +}% +\def\JarticleTitle{{\huge\bf\@title}}% +\def\JarticleAuthor{\LARGE\begin{tabular}[t]{@{}l}\@author\end{tabular}}% +\JarticleWithoutAbst} + +% $B"!(Bsoftware $B!J%=%U%H%&%'%">R2p!K(B +\def\ds@softwareshokai{ +\def\JarticleHeader{{\offinterlineskip +\rule{\textwidth}{0.1mm} +\vbox to8mm{\vfil\hbox{\hskip5mm{\gona $B%=%U%H%&%'%">R2p(B}\hfil}\vfil} +\rule{\textwidth}{0.1mm} +\vskip0pt}% to end the paragraph and use new baselineskip +}% +\def\JarticleTitle{{\huge\bf\@title}}% +\def\JarticleAuthor{\LARGE\begin{tabular}[t]{@{}l}\@author\end{tabular}}% +\JarticleWithoutAbst} + +% $B"!(Bforum $B!J%U%)!<%i%`!K(B +\def\ds@forum{ +\def\JarticleHeader{{\offinterlineskip +\rule{\textwidth}{0.1mm} +\vbox to8mm{\vfil\hbox{\hskip5mm{\gona $B%U%)!<%i%`(B}\hfil}\vfil} +\rule{\textwidth}{0.1mm} +\vskip0pt}% to end the paragraph and use new baselineskip +}% +\def\JarticleTitle{{\huge\bf\@title}}% +\def\JarticleAuthor{\LARGE\begin{tabular}[t]{@{}l}\@author\end{tabular}}% +\JarticleWithoutAbst} + +% $B"!(Bzadankai $B!J:BCL2q!K(B +\def\ds@zadankai{ +\def\JarticleHeader{{\offinterlineskip +\rule{\textwidth}{0.1mm} +\vbox to8mm{\vfil\hbox{\hskip5mm{\gona $B:BCL2q(B}\hfil}\vfil} +\rule{\textwidth}{0.1mm} +\vskip0pt}% to end the paragraph and use new baselineskip +}% +\def\JarticleTitle{{\huge\bf\@title}}% +\def\JarticleAuthor{\LARGE\begin{tabular}[t]{@{}l}\@author\end{tabular}}% +\JarticleWithoutAbst} + +% $B"!(Bcolumn $B!J%3%i%`!K(B +\def\ds@column{ +\global\advance\textheight by-3mm +\global\advance\leftskip by3mm +\global\advance\rightskip by3mm +\global\def\@maketitle{\newpage \null +\hbox{\vbox to165\Q{% 172\Q = 7*\baselineskip +\begin{flushleft} +\null\vskip11.2mm +\leftskip=8mm \baselineskip10mm +{\huge\bf\@title} +\vskip1.5mm % to leave hmode and start a new paragraph +\LARGE\begin{tabular}[t]{@{}l}\@author\end{tabular}% +\end{flushleft}\vfil}}}% +\columnsep 0pt % ueda +} + +% $B"!(Breview $B!J=qI>!K(B +\def\ds@bookreview{ +\def\JarticleHeader{{\offinterlineskip +\rule{\textwidth}{0.1mm} +\vbox to8mm{\vfil\hbox{\hskip5mm{\gona $B=q!!I>(B}\hfil}\vfil} +\rule{\textwidth}{0.1mm} +\vskip0pt}% to end the paragraph and use new baselineskip +}% +\def\JarticleTitle{{\huge\bf\@title}}% +\def\JarticleAuthor{\LARGE\begin{tabular}[t]{@{}l}\@author\end{tabular}}% +\JarticleWithoutAbst} + +% $B"!(Bpioneer $B!J%Q%$%*%K%"!K(B +\def\ds@pioneer{ +\def\JarticleHeader{{\offinterlineskip +\rule{\textwidth}{0.1mm} +\vbox to8mm{\vfil\hbox{\hskip5mm{\gona $B%Q%$%*%K%"(B}\hfil}\vfil} +\rule{\textwidth}{0.1mm} +\vskip0pt}% to end the paragraph and use new baselineskip +}% +\def\JarticleTitle{{\huge\bf\@title}}% +\def\JarticleAuthor{\LARGE\begin{tabular}[t]{@{}l}\@author\end{tabular}}% +\JarticleWithoutAbst} + +% $B"!(Bmemoriam $B!JDIEi5-;v!K(B +\def\ds@memoriam{ +\def\JarticleHeader{{\offinterlineskip +\rule{\textwidth}{0.1mm} +\vbox to8mm{\vfil\hbox{\hskip5mm{\gona }\hfil}\vfil} +\rule{\textwidth}{0.1mm} +\vskip0pt}% to end the paragraph and use new baselineskip +}% +\def\JarticleTitle{{\huge\bf\@title}}% +\def\JarticleAuthor{\LARGE\begin{tabular}[t]{@{}l}\@author\end{tabular}}% +\JarticleWithoutAbst} + +% ========================================================== +% $BFC=8$d?dA&$NL>A0$rF~$l$k$?$a$N%^%/%m!#%f!<%6$KDj5A$7$F$b$i$&!#(B +\def\tokushutitle{} +\def\suisentitle{} + +% $B"!(Btokushuronbun $B!JFC=8O@J8!K(B +\def\ds@tokushuronbun{ +\def\JarticleHeader{\hbox to\textwidth{\rule{3\@mojihaba}{1mm}\hbox{\small\bf\hskip1mm $BFC=8!|(B\tokushutitle}\leaderfill}}% +\def\JarticleTitle{{\huge\bf\@title}}% +\def\JarticleAuthor{\LARGE\begin{tabular}[t]{@{}l}\@author\end{tabular}}% +\Jarticle} + +% $B"!(BEtokushuronbun $B!J1QJ8FC=8O@J8!K(B +\def\ds@Etokushuronbun{ +\def\EarticleHeader{\hbox to\textwidth{\rule{3\@mojihaba}{1mm}\hbox{\small\bf\hskip1mm $BFC=8!|(B\tokushutitle}\leaderfill}}% +\def\EarticleTitle{{\huge\bf\@title}}% +\def\EarticleAuthor{\LARGE\begin{tabular}[t]{@{}l}\@author\end{tabular}}% +\Earticle} + +% $B"!(Btokushusoftwareronbun $B!JFC=8%=%U%H%&%'%"O@J8!K(B +\def\ds@tokushusoftwareronbun{ +\def\JarticleHeader{\hbox to\textwidth{% +\hbox to \leftboxwidth{\leaderfillboxL}% +\hbox{\small\bf\hskip1mm $BFC=8!|(B\tokushutitle}\leaderfillboxL +\rule{0.9mm}{1mm}}}% +\def\JarticleTitle{{\huge\bf\@title}}% +\def\JarticleAuthor{\LARGE\begin{tabular}[t]{@{}l}\@author\end{tabular}}% +\Jarticle} + +% $B"!(Btokushututorial $B!JFC=8%A%e!<%H%j%"%k!K(B +\def\ds@tokushututorial{ +\def\JarticleHeader{{\offinterlineskip +\hbox to \strokewidth{\leaderfillstrokeL +\hbox{\small\bf\hskip1mm $BFC=8!|(B\tokushutitle\hskip2mm}% +\hbox to\rightstrokewidth{\leaderfillstrokeL}\rule{0.1mm}{1.6mm}}% +\hbox to\strokewidth{\hbox to0.1mm{{\vbox to8mm{\vss\rule{0.1mm}{9mm}}}}% +\vbox to8mm{\vfil\hbox{\hskip5mm{\gona $B%A%e!<%H%j%"%k(B}}\vfil}\hfil% +\hbox to0.1mm{\vbox to8mm{\vss\rule{0.1mm}{9mm}}}} +\rule{\strokewidth}{0.1mm} +\vskip0pt}% to end the paragraph and use new baselineskip +}% +\def\JarticleTitle{{\huge\bf\@title}}% +\def\JarticleAuthor{\LARGE\begin{tabular}[t]{@{}l}\@author\end{tabular}}% +\Jarticle} + +% $B"!(Btokushukaisetsu $B!JFC=82r@b!K(B +\def\ds@tokushukaisetsu{ +\def\JarticleHeader{{\offinterlineskip +\hbox to \textwidth{\leaderfillB\hbox{\small\bf\hskip1mm $BFC=8!|(B\tokushutitle +\hskip1mm}% +\hbox to3\@mojihaba{% + \vbox{\rule{3\@mojihaba}{0.1mm}\vskip0.4mm + \rule{3\@mojihaba}{0.1mm}\vskip0.4mm + \rule{3\@mojihaba}{0.1mm}\vskip0.4mm + \rule{3\@mojihaba}{0.1mm}}}}% +\vbox to8mm{\vfil\hbox{\hskip5mm{\gona $B2r!!@b(B}\hfil}\vfil} +\rule{\textwidth}{0.1mm} +\vskip0pt}% to end the paragraph and use new baselineskip +}% +\def\JarticleTitle{{\huge\bf\@title}}% +\def\JarticleAuthor{\LARGE\begin{tabular}[t]{@{}l}\@author\end{tabular}}% +\Jarticle} + +% $B"!(Btopics $B!JFC=8%H%T%C%/%9!K(B +\def\ds@tokushutopics{ +\def\JarticleHeader{{\offinterlineskip +% +\hbox to\textwidth{% +\setbox0=\hbox{\small\bf\hskip1mm $BFC=8!|(B\tokushutitle\hskip1mm}% +\leaders\hbox{\rule{1mm}{0.1mm}}\hfill +\vbox to0pt{\hsize\wd0\vss\box0\vss}\hbox{\rule{3\@mojihaba}{0.1mm}}} +% \hbox{\rule{3\@mojihaba}{0.1mm}}} +% +\vbox to8mm{\vfil\hbox{\hskip5mm{\gona $B%H%T%C%/%9(B}\hfil}\vfil} +\rule{\textwidth}{0.1mm} +\vskip0pt}% to end the paragraph and use new baselineskip +}% +\def\JarticleTitle{{\huge\bf\@title}}% +\def\JarticleAuthor{\LARGE\begin{tabular}[t]{@{}l}\@author\end{tabular}}% +\JarticleWithoutAbst} + +% $B"!(Btopics $B!JFC=8%=%U%H%&%'%">R2p!K(B +\def\ds@tokushusoftwareshokai{ +\def\JarticleHeader{{\offinterlineskip +% +\hbox to\textwidth{% +\setbox0=\hbox{\small\bf\hskip1mm $B>.FC=8!|(B\tokushutitle\hskip1mm}% +\leaders\hbox{\rule{1mm}{0.1mm}}\hfill +\vbox to0pt{\hsize\wd0\vss\box0\vss}\hbox{\rule{3\@mojihaba}{0.1mm}}} +% \hbox{\rule{3\@mojihaba}{0.1mm}}} +% +\vbox to8mm{\vfil\hbox{\hskip5mm{\gona $B%=%U%H%&%'%">R2p(B}\hfil}\vfil} +\rule{\textwidth}{0.1mm} +\vskip0pt}% to end the paragraph and use new baselineskip +}% +\def\JarticleTitle{{\huge\bf\@title}}% +\def\JarticleAuthor{\LARGE\begin{tabular}[t]{@{}l}\@author\end{tabular}}% +\JarticleWithoutAbst} + +% $B"!(Bsuisenronbun $B!J?dA&O@J8!K(B +\def\ds@suisenronbun{ +\def\JarticleHeader{\hbox to\textwidth{\rule{3\@mojihaba}{1mm}\hbox{\small\bf\hskip1mm $B?dA&O@J8!|(B\suisentitle}\leaderfill}}% +\def\JarticleTitle{{\huge\bf\@title}}% +\def\JarticleAuthor{\LARGE\begin{tabular}[t]{@{}l}\@author\end{tabular}}% +\Jarticle} + +% $B"!(BEsuisenronbun $B!J1QJ8?dA&O@J8!K(B +\def\ds@Esuisenronbun{ +\def\EarticleHeader{\hbox to\textwidth{\rule{3\@mojihaba}{1mm}\hbox{\small\bf\hskip1mm $B?dA&O@J8!|(B\suisentitle}\leaderfill}}% +\def\EarticleTitle{{\huge\bf\@title}}% +\def\EarticleAuthor{\LARGE\begin{tabular}[t]{@{}l}\@author\end{tabular}}% +\Earticle} +% ========================================================== + +% ========================================================== +% $B"!(Bkantogen $B!J4,F,8@!K(B +\def\ds@kantogen{ +\global\def\@maketitle{\newpage \null +\hbox{\vbox{ +\begin{flushleft} +\offinterlineskip +\vspace*{-\topskip} +\rule{\textwidth}{0.1mm} +\vskip6mm{\gona $B4,F,8@(B}\hskip15mm{\huge\@title}\vskip5mm\hskip27mm% +\Large\begin{tabular}[t]{@{}l}\@author\end{tabular}% +\vskip10mm plus10mm minus10mm% you must adjust this size +\vskip22.5\Q +\end{flushleft} +\vfil}}} +\leftskip=27mm +\@totalleftmargin=27mm +\@rightskip=27mm +\onecolumn +\baselineskip=22.5\Q +\global\tendm\global\rm % This does not work, I don't know why! +} +% ========================================================== + +% ========================================================== +% $B"!(Btokushutobira $B!JFC=8$NJT=8$K$"$?$C$F!K(B +\def\ds@tokushutobira{ +\global\def\@maketitle{\newpage \null +\vspace*{-\baselineskip} +\begin{flushleft} +\hbox to\textwidth +{\rule{3\@mojihaba}{1mm}\hbox{\small\bf\hskip1mm $BFC=8!|(B\tokushutitle}\leaderfill}% +\vskip12mm\hskip5mm{\huge\bf\@title}\vskip1mm\hskip5mm% +\LARGE\begin{tabular}[t]{@{}l}\@author\end{tabular}% +\vskip10mm% +\end{flushleft}%\vfil +} +% tokushutobira must be flush left on even page, and flush right on +% odd page. +\ifodd\c@page +\leftskip=7\@mojihaba \rightskip=0pt +\@totalleftmargin=7\@mojihaba % for list environment such as itemize +\@rightskip=7\@mojihaba % for list environment such as itemize +\else +\leftskip=0pt \rightskip=7\@mojihaba +\@totalleftmargin=0pt +\@rightskip=7\@mojihaba +\fi +\onecolumn +} +% ========================================================== + +% ========================================================== +% $B"!(Btobira $B!J4,F,!K(B +\def\ds@tobira{ +\global\def\@maketitle{\newpage \null +\vspace*{-\baselineskip} +\begin{flushleft} +\rule{\textwidth}{1mm} +\vskip12mm\hskip5mm{\huge\bf\@title}\vskip1mm\hskip5mm% +\LARGE\begin{tabular}[t]{@{}l}\@author\end{tabular}% +\vskip10mm% +\end{flushleft}%\vfil +} +% tokushutobira must be flush left on even page, and flush right on +% odd page. +\ifodd\c@page +\leftskip=7\@mojihaba \rightskip=0pt +\@totalleftmargin=7\@mojihaba % for list environment such as itemize +\@rightskip=7\@mojihaba % for list environment such as itemize +\else +\leftskip=0pt \rightskip=7\@mojihaba +\@totalleftmargin=0pt +\@rightskip=7\@mojihaba +\fi +\onecolumn +} +% ========================================================== + +% ========================================================== +% $B"!(Bgakkaikiji $B!J3X2q5-;v!K(B +% Gakkai-Kiji header added by yaski +\def\ds@gakkaikiji{ +\global\def\@maketitle{\newpage \null +\hbox{\vbox to64.5\Q{% 43\Q=3*21.5\Q +\begin{flushleft} +{\offinterlineskip +\noindent +\hbox to \hsize{{\LARGE $BF|K\%=%U%H%&%'%"2J3X2q(B} \leaders\hrule height 2mm\hfill} +\vspace{2mm} +\hbox to \hsize{\footnotesize\bf +Japan Society for Software Science and Technology \hfil}} +\end{flushleft}\vfil}}} +} +% ========================================================== + +% ========================================================== +% $B"!(B henshu header added by yaski ($BJT=8$@$h$j(B) +\def\ds@henshu{ +\global\def\@maketitle{\newpage \null +\hbox{\vbox to64.5\Q{% 43\Q=3*21.5\Q +\begin{flushleft} +{\offinterlineskip +\noindent +\hbox to \hsize{{\LARGE $BF|K\%=%U%H%&%'%"2J3X2q(B} \leaders\hrule height 2mm\hfill} +\vspace{2mm} +\hbox to \hsize{\footnotesize\bf +Japan Society for Software Science and Technology \hfil}} +\end{flushleft}\vfil}}} +} +% ========================================================== + +% ========================================================== +% <13> hissha header added by ohno ($BI.<T>R2p(B) +\def\ds@hissha{ +\setlength\headsep{47.5mm} +\setlength\textheight{160mm} +\pagestyle{hissha} +\@hisshatrue +% ---------------- +\raggedbottom +\global\def\@maketitle{\newpage \null +%\thispagestyle{hisshatop} +%\vskip-45mm % added by iwamoto 92.10.15 +%\vskip-55mm % added by iwamoto 92.10.15 +\vskip-53mm +%\hbox to \textwidth{\hrulefillx} +\vskip 10mm +\hbox{\vbox to40mm{% +\noindent +\vskip8mm +\begin{tabular}{l} +{\LARGE\bf $BI.(B\hspace{2mm}$B<T(B\hspace{2mm}$B>R(B\hspace{2mm}$B2p(B} +\end{tabular} +\vfil}}} +} +\def\ds@newsletr{ +\input{newsletr.sty} +} + +% ========================================================== +% $BAmL\<!(B +\def\ds@somokuji{ +\setlength\headsep{30mm} +\setlength\textheight{190mm} +\pagestyle{hissha} +\@hisshatrue +% ---------------- +\raggedbottom +\global\def\@maketitle{\newpage \null +%\thispagestyle{hisshatop} +%\vskip-45mm % added by iwamoto 92.10.15 +%\vskip-55mm % added by iwamoto 92.10.15 +%\vskip-30mm +%\hbox to \textwidth{\hrulefillx} +\vskip -20mm +\hbox{\vbox to21mm{% +\noindent +\vskip1mm +\begin{tabular}{l} +{\LARGE\bf \@title} +\end{tabular} +\vfil}}} +} + +% You must define $B=qI>MQ(B header here! + + +\mark{{}{}} + +% volpage$B!J%\%j%e!<%`DL$7%Z!<%8!K(Bhas been abolished as of Vol.22 (2005), +% but the counter volpageoffset is kept alive for backward compatibility +% because many papers still say \setcounter{volpageoffset}{...} . +% +% \newcounter{volpage} +\newcounter{volpageoffset} % You must set this to appropriate value +% \setcounter{volpageoffset}{0} % for each issue! + +% \def\thevolpage{\setcounter{volpage}{\value{page}}% +% \addtocounter{volpage}{\value{volpageoffset}}% +% \hbox to21pt{(\hfil\arabic{volpage}\hfil)}} +\let\thevolpage=\null + +\newcounter{$B4,?t(B} \newcounter{$B9f?t(B} +\newcounter{$BG/?t(B} +\newcounter{firstpage} +\newcounter{lastpage} + +\def\volNoPp#1#2#3#4{% + \ifNotTaikai{% + \setcounter{$B4,?t(B}{#1}\setcounter{$B9f?t(B}{#2}% + \setcounter{$BG/?t(B}{1983}\addtocounter{$BG/?t(B}{\value{$B4,?t(B}}% + \setcounter{firstpage}{#3}\setcounter{lastpage}{#4}\setcounter{page}{#3}}} + +\def\@oddheadcontents + {Vol.~\arabic{$B4,?t(B}\hskip\@mojihaba No.~\arabic{$B9f?t(B}\hskip\@mojihaba + \ifcase\value{$B9f?t(B}\or Jan.\or Apr.\or July\or Oct.\else\fi + \hskip.5\@mojihaba \setcounter{$BG/?t(B}{1983}\addtocounter{$BG/?t(B}{\value{$B4,?t(B}} + \arabic{$BG/?t(B}} + +\def\@evenheadcontents{$B%3%s%T%e!<%?%=%U%H%&%'%"(B} + +\def\ps@headings{\let\@mkboth\markboth +\def\@oddfoot{} +\def\@evenfoot{} +\def\@evenhead{\normalsize + \thepage\phantom{\thevolpage}\hfil\@evenheadcontents + \hfil\phantom{\thepage}\thevolpage} +\def\@oddhead{\normalsize + \thevolpage\phantom{\thepage}\hfil\@oddheadcontents + \hfil\phantom{\thevolpage}\thepage} +\def\sectionmark##1{\markboth {\uppercase{\ifnum \c@secnumdepth>\z@ + \thesection\hskip 1em\relax \fi ##1}}{}} +\def\subsectionmark##1{\markright{\ifnum \c@secnumdepth >\@ne + \thesubsection\hskip 1em\relax \fi ##1}}} + +\def\ps@hissha{\let\@mkboth\markboth +\def\@oddfoot{} +\def\@evenfoot{} +\def\@evenhead{\vbox to221.5mm{\hbox to\textwidth{\normalsize + \thepage\phantom{\thevolpage}\hfil{$B%3%s%T%e!<%?%=%U%H%&%'%"(B} + \hfil\phantom{\thepage}\thevolpage}\vskip3.5mm\rule{\textwidth}{0.1mm}\vfill\rule{\textwidth}{0.1mm}}} +\def\@oddhead{\vbox to221.5mm{\hbox to\textwidth{\normalsize + \thevolpage\phantom{\thepage}\hfil\@oddheadcontents + \hfil\phantom{\thevolpage}\thepage}\vskip3.5mm\rule{\textwidth}{0.1mm}\vfill\rule{\textwidth}{0.1mm}}} +\def\sectionmark##1{\markboth {\uppercase{\ifnum \c@secnumdepth>\z@ + \thesection\hskip 1em\relax \fi ##1}}{}} +\def\subsectionmark##1{\markright{\ifnum \c@secnumdepth >\@ne + \thesubsection\hskip 1em\relax \fi ##1}}} + +\def\ps@hisshatop{\let\@mkboth\markboth +\def\@oddfoot{} +\def\@evenfoot{} +\def\@evenhead{\vbox to221.5mm{\vskip.7mm\hbox to\textwidth{\normalsize + \thepage\phantom{\thevolpage}\hfil\phantom{$B%3%s%T%e!<%?%=%U%H%&%'%"(B} + \hfil\phantom{\thepage}\thevolpage}\vskip3.5mm\rule{\textwidth}{0.1mm}\vfill\rule{\textwidth}{0.1mm}}} +\def\@oddhead{\vbox to221.5mm{\vskip.7mm\hbox to\textwidth{\normalsize + \thevolpage\phantom{\thepage}\hfil\phantom{\@oddheadcontents} + \hfil\phantom{\thevolpage}\thepage}\vskip3.5mm\rule{\textwidth}{0.1mm}\vfill\rule{\textwidth}{0.1mm}}} +\def\sectionmark##1{\markboth {\uppercase{\ifnum \c@secnumdepth>\z@ + \thesection\hskip 1em\relax \fi ##1}}{}} +\def\subsectionmark##1{\markright{\ifnum \c@secnumdepth >\@ne + \thesubsection\hskip 1em\relax \fi ##1}}} + +\def\ps@newsheadings{\let\@mkboth\markboth +%\newfont{\cmssi}{cmssi10 scaled \magstep1} +%\def\cmssi{\usefont{OT1}{cmss}{m}{it}} +\font\cmssi=cmssi10 scaled \magstep1 +\def\@oddfoot{} +\def\@evenfoot{} +\def\@evenhead{\vbox to20mm{\vskip.7mm\hbox to\textwidth{\normalsize + \thepage\phantom{\thevolpage}\hfil{$B!!!!!!!!(B} + \hfil\phantom{\thepage}\thevolpage}\vskip2mm\hbox to\textwidth{%\hskip2mm +\rule{29mm}{0.1mm}\hss\raisebox{-.5mm}{\cmssi NewsLetter}\hss\rule{97mm}{0.1mm}%\hskip2mm +}\vfill}} +\def\@oddhead{\vbox to20mm{\vskip.7mm\hbox to\textwidth{\normalsize + \thevolpage\phantom{\thepage}\hfil{$B!!!!!!!!(B} + \hfil\phantom{\thevolpage}\thepage}\vskip2mm\hbox to\textwidth{%\hskip2mm +\rule{29mm}{0.1mm}\hss\raisebox{-.5mm}{\cmssi NewsLetter}\hss\rule{97mm}{0.1mm}%\hskip2mm +}\vfill}} +\def\sectionmark##1{\markboth {\uppercase{\ifnum \c@secnumdepth>\z@ + \thesection\hskip 1em\relax \fi ##1}}{}} +\def\subsectionmark##1{\markright{\ifnum \c@secnumdepth >\@ne + \thesubsection\hskip 1em\relax \fi ##1}}} + +\def\ps@myindexheadings{\let\@mkboth\markboth +%\newfont{\cmssi}{cmssi10 scaled \magstep1} +%\def\cmssi{\usefont{OT1}{cmss}{m}{it}} +\font\cmssi=cmssi10 scaled \magstep1 +\def\@oddfoot{} +\def\@evenfoot{} +\def\@evenhead{\vbox to20mm{\vskip.7mm\hbox to\textwidth{\normalsize + \thepage\phantom{\thevolpage}\hfil{$B!!!!!!!!(B} + \hfil\phantom{\thepage}\thevolpage}\vskip2mm\hbox to\textwidth{\hskip2mm\rule{27mm}{0.1mm}\hss\raisebox{-.5mm}{\cmssi NewsLetter}\hss\rule{95mm}{0.1mm}\hskip2mm}\vfill}} +\def\@oddhead{\vbox to20mm{\vskip.7mm\hbox to\textwidth{\normalsize + \thevolpage\phantom{\thepage}\hfil{$B!!!!!!!!(B} + \hfil\phantom{\thevolpage}\thepage}\vskip2mm\hbox to\textwidth{\hskip2mm\rule{27mm}{0.1mm}\hss\raisebox{-.5mm}{\cmssi NewsLetter}\hss\rule{95mm}{0.1mm}\hskip2mm}\vfill}} +\def\sectionmark##1{\markboth {\uppercase{\ifnum \c@secnumdepth>\z@ + \thesection\hskip 1em\relax \fi ##1}}{}} +\def\subsectionmark##1{\markright{\ifnum \c@secnumdepth >\@ne + \thesubsection\hskip 1em\relax \fi ##1}}} + +\def\ps@myheadings{\let\@mkboth\@gobbletwo +\def\@oddhead{\normalsize \thevolpage\hfil\thepage} +\def\@oddfoot{} +\def\@evenfoot{} +\def\@evenhead{\normalsize \thepage\hfil\thevolpage} +\def\sectionmark##1{}\def\subsectionmark##1{}} + +\pagestyle{headings} +\pagenumbering{arabic} + +\def\tablename{$BI=(B} +\def\figurename{$B?^(B} + +\if@LaTeX@e +\ifASCII +\def\bf{\normalfont\gtfamily\bfseries} +\fi +\else +\def\bf{\protect\pdg\protect\pbf} +\fi + +\def\today{\the\year $BG/(B \the\month $B7n(B \the\day $BF|(B} + +\def\sloppy{\tolerance 9000 \hfuzz .5\p@ \vfuzz .5\p@} + +\flushbottom + + + +% To balance the final page, +% following code is borrowed from nicetwocolumn style +\newdimen\dimen@@ + +\def\balancecolumns{\setbox0\vbox{\unvbox\@outputbox} \dimen@@=\ht0 + \advance\dimen@@ by\topskip \advance\dimen@@ by-\baselineskip + \divide\dimen@@ by2 \splittopskip=\topskip + {\vbadness=10000 \loop \global\setbox3=\copy0 + \global\setbox1=\vsplit3 to\dimen@@ + \ifdim\ht3>\dimen@@ \global\advance\dimen@@ by1pt\repeat} + \ifdim\dimen@@>\textheight \dimen@@=\textheight\fi + \setbox0=\vbox to \dimen@@{\unvbox1} \setbox2=\vbox to \dimen@@{\unvbox3} + \if\ht0>\ht2 \setbox2=\vbox to\ht0{\unvbox2}\dimen@@=\ht0\else + \if\ht2>\ht0 \setbox0=\vbox to\ht2{\unvbox0}\dimen@@=\ht2\fi\fi + \wd0=\hsize \wd2=\hsize +%\message{in balancecolumns dimen@@=\the\dimen@@, dp0=\the\dp0, dp2=\the\dp2} +\ifdim\dp0>\dp2\advance\dimen@@ by\dp0\else\advance\dimen@@ by\dp2\fi +\setbox\@outputbox\vbox to\dimen@@{\hbox to\textwidth{\box0\hfil\box2}\vfill}} + + +% you can refrain from balancing by falsifying following switch! +\newif\if@lastpagebalancing \@lastpagebalancingtrue % default is to balance + +% incorporate balanced output to \enddocument +\def\enddocument{\if@lastpagebalancing \global\let\@outputdblcol=\balancing@outputdblcol\fi% +\@checkend{document}\clearpage +\begingroup +\if@filesw \immediate\closeout\@mainaux +\def\global\@namedef##1##2{}\def\newlabel{\@testdef r}% +\def\bibcite{\@testdef b}\@tempswafalse \makeatletter\input \jobname.aux +\if@tempswa \@warning{Label(s) may have changed. Rerun to get +cross-references right}\fi\fi\endgroup +\deadcycles\z@\@@end} + +\newlength{\@interlinegap} + +% to change \interlinegap appropriately at appropriate time +\def\@outputdblcol{\if@firstcolumn \global\@firstcolumnfalse + \global\setbox\@leftcolumn\box\@outputbox +% Following interlinegap value may be wrong!! +% It is set to gap+depth for normalsize, and depth(2.031999Q) for footnotesize. +% This setting is inconsistent, but seems to work properly now. +%\ifx \@currsize\normalsize \global\@interlinegap 8.54815pt\else% setup +% reset to 10Q after final page footnote hack! +\ifx \@currsize\normalsize \global\@interlinegap 10\Q\else% setup + \ifx \@currsize\footnotesize \global\@interlinegap 2.03199\Q\else% appropriate + \ifx \@currsize\small \global\@interlinegap 3.08713pt\fi\fi\fi% gap here! + \else \global\@firstcolumntrue +\if@leftfootnoteexist\setbox\@leftcolumn\vbox to\@colht{\boxmaxdepth\maxdepth +\@texttop\dimen128=\dp\@leftcolumn +\unvbox\@leftcolumn\vskip\skip\footins\footnoterule% +%\message{in outputdblcol leftcolumnfootnote=ht:\the\ht\@leftcolumnfootnote, dp:\the\dp\@leftcolumnfootnote, wd:\the\wd\@leftcolumnfootnote} +\unvbox\@leftcolumnfootnote +\vskip-\dimen128\@textbottom} +\global\maxdepth\@maxdepth\else +\setbox\@leftcolumn\vbox to\@colht{\boxmaxdepth\maxdepth +\@texttop\dimen128=\dp\@leftcolumn +\unvbox\@leftcolumn\vfill% +\vskip-\dimen128\@textbottom} +\global\maxdepth\@maxdepth\fi +\if@rightfootnoteexist\setbox\@outputbox\vbox to\@colht{\boxmaxdepth\maxdepth +\@texttop\dimen128=\dp\@outputbox +\unvbox\@outputbox\vskip\skip\footins\footnoterule% +%\message{in outputdblcol rightcolumnfootnote=ht:\the\ht\@rightcolumnfootnote, dp:\the\dp\@rightcolumnfootnote, wd:\the\wd\@rightcolumnfootnote} +\unvbox\@rightcolumnfootnote +\vskip-\dimen128\@textbottom} +\global\maxdepth\@maxdepth\else +\setbox\@outputbox\vbox to\@colht{\boxmaxdepth\maxdepth +\@texttop\dimen128=\dp\@outputbox +\unvbox\@outputbox\vfill% +\vskip-\dimen128\@textbottom} +\global\maxdepth\@maxdepth\fi + \setbox\@outputbox\vbox{\hbox to\textwidth{\hbox to\columnwidth + {\box\@leftcolumn \hss}\hfil \vrule width\columnseprule\hfil + \hbox to\columnwidth{\box\@outputbox \hss}}}\@combinedblfloats + \@outputpage \begingroup \@dblfloatplacement \@startdblcolumn + \@whilesw\if@fcolmade \fi{\@outputpage\@startdblcolumn}\endgroup + \fi} + +\def\balancing@outputdblcol{\if@firstcolumn %\global\@firstcolumnfalse + \else \global\@firstcolumntrue + \setbox\@outputbox\vbox{\unvbox\@leftcolumn\vskip\@interlinegap% + \penalty\interlinepenalty\unvbox\@outputbox} + \fi + \balancecolumns \@combinedblfloats +\if@leftfootnoteexist\setbox\@outputbox\vbox to\@colht{\boxmaxdepth\maxdepth +\@texttop\dimen128=\dp\@outputbox +\unvbox\@outputbox\vfill\vskip\skip\footins\footnoterule% +%\message{in balancing@outputdblcol leftcolumnfootnote=ht:\the\ht\@leftcolumnfootnote, dp:\the\dp\@leftcolumnfootnote, wd:\the\wd\@leftcolumnfootnote} +\unvbox\@leftcolumnfootnote +\if@rightfootnoteexist +%\message{in balancing@outputdblcol rightcolumnfootnote=ht:\the\ht\@rightcolumnfootnote, dp:\the\dp\@rightcolumnfootnote, wd:\the\wd\@rightcolumnfootnote} +\unvbox\@rightcolumnfootnote\fi +\vskip-\dimen128 +\@textbottom} +\global\maxdepth\@maxdepth\fi + \@outputpage \begingroup \@dblfloatplacement \@startdblcolumn + \@whilesw\if@fcolmade \fi{\@outputpage\@startdblcolumn}\endgroup} + +\newbox\@leftcolumnfootnote \newbox\@rightcolumnfootnote +\newif\if@leftfootnoteexist \newif\if@rightfootnoteexist + +% Extra \@texttop somehow found its way into \@makecol. Deleted +% 1 Dec 86. (Found by Mike Harrison) + +\def\@makecol{\if@twocolumn +\if@firstcolumn +\ifvoid\footins \setbox\@outputbox\box\@cclv +%\message{in makecol @outputbox=(\the\ht\@outputbox, \the\dp\@outputbox, \the\wd\@outputbox)} +\global\@leftfootnoteexistfalse + \else\global\@leftfootnoteexisttrue +\setbox\@outputbox\box\@cclv +%\message{in makecol with foot @outputbox=(\the\ht\@outputbox, \the\dp\@outputbox, \the\wd\@outputbox)} +\global\setbox\@leftcolumnfootnote\box\footins +%\message{in makecol leftcolumnfootnote=ht:\the\ht\@leftcolumnfootnote, dp:\the\dp\@leftcolumnfootnote, wd:\the\wd\@leftcolumnfootnote} +\fi + \xdef\@freelist{\@freelist\@midlist}\gdef\@midlist{}\@combinefloats +\else %if@firstcolumn +\ifvoid\footins \setbox\@outputbox\box\@cclv +%\message{in makecol right @outputbox=(\the\ht\@outputbox, \the\dp\@outputbox, \the\wd\@outputbox)} +\global\@rightfootnoteexistfalse + \else\global\@rightfootnoteexisttrue +\setbox\@outputbox\box\@cclv +%\message{in makecol right with foot @outputbox=(\the\ht\@outputbox, \the\dp\@outputbox, \the\wd\@outputbox)} +\global\setbox\@rightcolumnfootnote\box\footins +%\message{in makecol rightcolumnfootnote=ht:\the\ht\@rightcolumnfootnote, dp:\the\dp\@rightcolumnfootnote, wd:\the\wd\@rightcolumnfootnote} +\fi + \xdef\@freelist{\@freelist\@midlist}\gdef\@midlist{}\@combinefloats +\fi %if@firstcolumn +\else % if@twocolumn +\ifvoid\footins \setbox\@outputbox\box\@cclv + \else\setbox\@outputbox + \vbox{\boxmaxdepth \maxdepth + \unvbox\@cclv\vskip\skip\footins\footnoterule\unvbox\footins}\fi + \xdef\@freelist{\@freelist\@midlist}\gdef\@midlist{}\@combinefloats + \setbox\@outputbox\vbox to\@colht{\boxmaxdepth\maxdepth + \@texttop\dimen128=\dp\@outputbox\unvbox\@outputbox + \vskip-\dimen128\@textbottom}% + \global\maxdepth\@maxdepth +\fi} + + + +\if@LaTeX@e +\long\def\@footnotetext#1{\insert\footins{% + \reset@font\footnotesize + \interlinepenalty\interfootnotelinepenalty + \splittopskip\footnotesep + \splitmaxdepth \dp\strutbox \floatingpenalty \@MM + \hsize\columnwidth \@parboxrestore\leftskip10\Q + \ifnum\value{footnote}>9\hangindent=20\Q\advance\hangindent by 5.2pt + \else\hangindent=20\Q\fi \hangafter=1 + \protected@edef\@currentlabel{% + \csname p@footnote\endcsname\@thefnmark + }% + \color@begingroup + \@makefntext{% + \rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox}% + \color@endgroup}}% +\else +\long\def\@footnotetext#1{\insert\footins{\footnotesize + \interlinepenalty\interfootnotelinepenalty + \splittopskip\footnotesep + \splitmaxdepth \dp\strutbox \floatingpenalty \@MM + \hsize\columnwidth \@parboxrestore\leftskip10\Q +% extra indent of 5.2pt is decided empirically, roughly the width of a digit + \ifnum\value{footnote}>9\hangindent=20\Q\advance\hangindent by 5.2pt + \else\hangindent=20\Q\fi \hangafter=1 +% \hangindent=20\Q \hangafter=1 + \edef\@currentlabel{\csname p@footnote\endcsname\@thefnmark}\@makefntext + {\rule{\z@}{\footnotesep}\ignorespaces#1\strut}}} +\fi + +\long\def\@makefntext#1{\noindent$\@thefnmark$\hskip10\Q #1} + +\def\@makefnmark{\smash{\hbox{$^{\@thefnmark}$}}} % smashed to make it + % zero height + +\def\thefootnote{\mbox{\dag}\arabic{footnote}} + +% Following \footnoterule is changed to make a gap between footnoterule +% and first footnote text about 2Q. +%\def\footnoterule{\kern-3\p@ \hrule width 35mm \kern 2.6\p@} +\def\footnoterule{\kern0\p@ \hrule width 35mm \kern-0.4\p@} + + +\def\thanks#1{\footnotemark\begingroup +\def\protect{\noexpand\protect\noexpand}\xdef\@thanks{\@thanks + \protect\specialfootnotetext[\the\c@footnote]{\noindent #1}}\endgroup} + +\def\specialfootnotetext{\@ifnextchar + [{\@specialxfootnotenext}{\xdef\@thefnmark{\thempfn}\@specialfootnotetext}} + +\def\@specialxfootnotenext[#1]{\begingroup \csname c@\@mpfn\endcsname #1\relax + \xdef\@thefnmark{\thempfn}\endgroup \@specialfootnotetext} + +\def\@mpfn{footnote} +\def\thempfn{\thefootnote} + +\long\def\@specialfootnotetext#1{\insert\footins{\footnotesize + \interlinepenalty\interfootnotelinepenalty + \splittopskip\footnotesep + \splitmaxdepth \dp\strutbox \floatingpenalty \@MM + \hsize\columnwidth \@parboxrestore\leftskip10\Q + \hangindent=10\Q \hangafter=1 + \edef\@currentlabel{\csname p@footnote\endcsname\@thefnmark}\@specialmakefntext + {\rule{\z@}{\footnotesep}\ignorespaces#1\strut}}} + +\long\def\@specialmakefntext#1{\noindent\llap{$\@thefnmark$ }#1} + + + +% to add extra space before citation by yamanouchi +\def\cite{{\hskip 1pt}\@ifnextchar [{\@tempswatrue\@citex}{\@tempswafalse\@citex[]}} + +\def\@citex[#1]#2{\if@filesw\immediate\write\@auxout{\string\citation{#2}}\fi + \def\@citea{}% + {\footnotesize\@for\@citeb:=#2\do +% {\@citea\def\@citea{\penalty\@m\ }% + {\@citea\def\@citea{\penalty\@m{\hskip 1pt}}% + \@ifundefined{b@\@citeb}% + {{\bf ?}\@warning{Citation + `\@citeb' on page \thepage \space undefined}}% + \hbox{[\csname b@\@citeb\endcsname]}}}} + +% to make citations within sentences 11.5Q (same as other characters) +% new command \Cite similar to \cite is defined as follows. +% (normally citation numbers are typeset using \footnotesize) +\def\Cite{{\hskip 1pt}\@ifnextchar [{\@tempswatrue\@Citex}{\@tempswafalse\@Citex[]}} + +\def\@Citex[#1]#2{\if@filesw\immediate\write\@auxout{\string\citation{#2}}\fi + \def\@citea{}% + {\@for\@citeb:=#2\do +% {\@citea\def\@citea{\penalty\@m\ }% + {\@citea\def\@citea{\penalty\@m{\hskip 1pt}}% + \@ifundefined{b@\@citeb}% + {{\bf ?}\@warning{Citation + `\@citeb' on page \thepage \space undefined}}% + \hbox{[\csname b@\@citeb\endcsname]}}}} + +% you must place 1-moji space just right of eqation number +\def\@eqnnum{{\rm (\theequation)\hskip\@mojihaba}} + + + +% height adjusting environment +% you must use this as separate paragraph + +\newbox\adjustbox +\newdimen\adjustheight +\newcount\adjustlinecount + +\newenvironment{adjustvboxheight}{%\message{prevdepth=\the\prevdepth} +\vskip-\prevdepth\vskip1.4454pt % to cancel out various depth and set + % it to normal 1.445pt. For this to + % work properly, it is necessary to use + % this environment as a separate paragraph!! +\global\setbox\adjustbox=\vbox\bgroup% +\hsize\columnwidth }{\egroup% +\adjustheight=\ht\adjustbox% +\advance\adjustheight \dp\adjustbox% +\divide\adjustheight\baselineskip \adjustlinecount=\adjustheight% +\advance\adjustlinecount by 1 % +\adjustheight=\adjustlinecount\baselineskip% +% you must ajust the position of top box somehow!!! +\vskip-.5\Q\vskip-1.445pt\vspace*{.5\Q}\vspace*{1.445pt}% +%\fboxrule=0.01pt\fboxsep=0pt% for debugging +\vskip5\Q % = 1/2 gap +%\noindent\fbox{\vbox to\adjustheight{\vfil\box\adjustbox\vfil}}% +\noindent\vbox to\adjustheight{\vfil\box\adjustbox\vfil}% +\vskip-5\Q % = 1/2 gap +\vskip-1.445pt\noindent} + +\clubpenalty=-1000 \widowpenalty=-1000 % we allow club and widow lines ? +\displaywidowpenalty=-1000 + +% The following redefinition influences \linebreak etc. +\def\sloppy{\tolerance 9999 \hfuzz .5\p@ \vfuzz .5\p@} + +% use twocolumn instead of multicol +\twocolumn + +\vbadness10001 \hbadness5000 +\tolerance 9999 \pretolerance\m@ne + +\@options + +\@ifundefined{@maketitle}{\ds@ronbun}{} % to setup default title style + + +\if@LaTeX@e +\ifASCII +\DeclareFontShape{JY1}{mc}{m}{it}{<->ssub*mc/m/n}{} +\DeclareFontShape{JT1}{mc}{m}{it}{<->ssub*mc/m/n}{} +\DeclareFontShape{JY1}{mc}{m}{sl}{<->ssub*mc/m/n}{} +\DeclareFontShape{JT1}{mc}{m}{sl}{<->ssub*mc/m/n}{} +\DeclareFontShape{JY1}{mc}{m}{sc}{<->ssub*mc/m/n}{} +\DeclareFontShape{JT1}{mc}{m}{sc}{<->ssub*mc/m/n}{} + +\DeclareFontShape{JY1}{gt}{m}{it}{<->ssub*gt/m/n}{} +\DeclareFontShape{JT1}{gt}{m}{it}{<->ssub*gt/m/n}{} +\DeclareFontShape{JY1}{gt}{m}{sl}{<->ssub*gt/m/n}{} +\DeclareFontShape{JT1}{gt}{m}{sl}{<->ssub*gt/m/n}{} +\DeclareFontShape{JY1}{gt}{m}{sc}{<->ssub*gt/m/n}{} +\DeclareFontShape{JT1}{gt}{m}{sc}{<->ssub*gt/m/n}{} + +\DeclareFontShape{JY1}{mc}{bx}{it}{<->ssub*gt/m/n}{} +\DeclareFontShape{JT1}{mc}{bx}{it}{<->ssub*gt/m/n}{} +\DeclareFontShape{JY1}{mc}{bx}{sl}{<->ssub*gt/m/n}{} +\DeclareFontShape{JT1}{mc}{bx}{sl}{<->ssub*gt/m/n}{} +\DeclareFontShape{JY1}{mc}{bx}{sc}{<->ssub*gt/m/n}{} +\DeclareFontShape{JT1}{mc}{bx}{sc}{<->ssub*gt/m/n}{} +\fi +\fi + +\newcommand{\$B!'(B}{\hbox to1zw{\hss:\hss}} + +\endinput
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/jssst.bst Tue Aug 10 18:08:07 2010 +0900 @@ -0,0 +1,1276 @@ +% jssst.bst tomura@etl.go.jp (Satoru Tomura) +% BibTeX standard bibliography style `jplain' + % version 0.10 for JBibTeX versions 0.10 or later, JLaTeX version 2.09. + % by Shouichi Matsui, matsui@denken.junet + +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + volume + year + yomi + } + {} + { label } + +INTEGERS { output.state before.all mid.sentence after.sentence after.block } + +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := +} + +STRINGS { s t } + +FUNCTION {output.nonnull} +{ 's := + output.state mid.sentence = + { ", " * write$ } + { output.state after.block = + { add.period$ write$ + newline$ + "\newblock " write$ + } + { output.state before.all = + 'write$ + { add.period$ " " * write$ } + if$ + } + if$ + mid.sentence 'output.state := + } + if$ + s +} + +FUNCTION {output} +{ duplicate$ empty$ + 'pop$ + 'output.nonnull + if$ +} + +FUNCTION {required.argument} +{ 't := + empty$ + {"Missing required argument " t * " in " * cite$ * warning$} + 'skip$ + if$ +} + +FUNCTION {required.exclusive.or.argument} +{ 't := + empty$ + { 's := + empty$ + { t " or " * s * " is missing in " * cite$ * warning$} + 'skip$ + if$ + } + { 's := + empty$ + 'skip$ + { "You can use only one of " t * " and " * s * " in " * cite$ * warning$} + if$ + } + if$ +} + +FUNCTION {required.and.or.argument} +{ 't := empty$ + { 's := empty$ + { "there's no " t * " and/or " * s * cite$ * warning$ } + 'skip$ + if$ + } + { pop$ pop$ } + if$ +} + +FUNCTION {optional.series.volume.number.argument} +{ series empty$ + { volume empty$ + { number empty$ + 'skip$ + { "there's a number but no series in " cite$ * warning$ } + if$ + } + { number empty$ + { "there's a volume but no series in " cite$ * warning$ } + { "you can use only one of volume and number in " cite$ * warning$} + if$ + } + if$ + } + { volume empty$ + { number empty$ + { "there's a series but neither volume nor number in " cite$ * warning$ } + 'skip$ + if$ + } + { number empty$ + 'skip$ + { "you can use only one of volume and number in " cite$ * warning$ } + if$ + } + if$ + } + if$ +} + +FUNCTION {output.bibitem} +{ newline$ + "\bibitem{" write$ + cite$ write$ + "}" write$ + newline$ + before.all 'output.state := +} + +FUNCTION {fin.entry} +{ add.period$ + write$ + newline$ +} + +FUNCTION {new.block} +{ output.state before.all = + 'skip$ + { after.block 'output.state := } + if$ +} + +FUNCTION {new.sentence} +{ output.state after.block = + 'skip$ + { output.state before.all = + 'skip$ + { after.sentence 'output.state := } + if$ + } + if$ +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "{\it " swap$ * "}" * } + if$ +} + +FUNCTION {is.kanji} +%%%{ #1 text.prefix$ chr.to.int$ #127 > } +%%%{ #1 #1 substring$ chr.to.int$ #127 > } +{ purify$ #1 text.prefix$ chr.to.int$ #127 >} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + s nameptr "{ll}" format.name$ is.kanji + { "{ff}{vv}{ll}" } + { "{vv~}{ll}{, jj}{, f.}" } + if$ + format.name$ 't := + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + numnames #3 < + { t is.kanji + {"," * "" *} 'skip$ if$ + } + 'skip$ + if$ + t "others" = + { s is.kanji + {"$B$[$+(B" * } + {" et~al." * } + if$ + } + { s is.kanji + {" " * t * } + {" and " * t * } + if$ + } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { editor is.kanji + {"($BJT(B)" * } %%{", editors" * } if$ + {"(eds.)" *} if$ + } + { editor is.kanji + {"($BJT(B)" *} %%{", editor" * } if$ + {"(ed.)" *} if$ + } + if$ + } + if$ +} + +FUNCTION {n.dashify} +{ 't := + "" + { t empty$ not } + { t #1 #1 substring$ "-" = + { t #1 #2 substring$ "--" = not + { "--" * + t #2 global.max$ substring$ 't := + } + { { t #1 #1 substring$ "-" = } + { "-" * + t #2 global.max$ substring$ 't := + } + while$ + } + if$ + } + { t #1 #1 substring$ * + t #2 global.max$ substring$ 't := + } + if$ + } + while$ +} + +FUNCTION {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + 'year + { month " " * year * } + if$ + } + if$ +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {output.volume} +{ + volume empty$ + 'skip$ + { "Vol.~" volume * output} + if$ + +} + +FUNCTION {output.number} +{ + number empty$ + 'skip$ + { "No.~" number * output} + if$ +} + +FUNCTION {output.series.volume.number} +{ series empty$ + { output.volume + output.number } + { series is.kanji + volume empty$ + number empty$ + or + and + { series " " * volume * number * output} + { series output + output.volume + output.number} + if$ + } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { edition "l" change.case$ " edition" * } + { edition "t" change.case$ " edition" * } + if$ + } + if$ +} + +INTEGERS { multiresult } + +FUNCTION {multi.page.check} +{ 't := + #0 'multiresult := + { multiresult not + t empty$ not + and + } + { t #1 #1 substring$ + duplicate$ "-" = + swap$ duplicate$ "," = + swap$ "+" = + or or + { #1 'multiresult := } + { t #2 global.max$ substring$ 't := } + if$ + } + while$ + multiresult +} + +FUNCTION {format.pages} +{ pages empty$ + { "" } + { pages multi.page.check + { "pp.~" pages n.dashify tie.or.space.connect } + { "pp.~" pages tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {format.volume.number.year.pages} +{ volume empty$ + { number empty$ + { year empty$ + { "" } + { "(" year * ")" * } + if$} + { year empty$ + { "No.~" number * } + { "No.~" number * "(" * year * ")" * } + if$} + if$} + { number empty$ + { year empty$ + { "Vol.~" volume * } + { "Vol.~" volume * "(" * year * ")" * } + if$} + { year empty$ + {"Vol.~" volume * ", " * "No.~" * number * } + {"Vol.~" volume * ", " * "No.~" * number * "(" * year * ")" * } + if$} + if$} + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { "," * " pp.~" * pages n.dashify * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "chapter" chapter tie.or.space.connect } + { type is.kanji + { chapter type tie.or.space.connect } + { type "l" change.case$ chapter tie.or.space.connect } + if$ + } + if$ + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { booktitle is.kanji + { " " booktitle emphasize * } + { " " booktitle emphasize * } + if$ + } + { booktitle is.kanji + { booktitle emphasize ", " * format.editors * "" *} + { booktitle emphasize ", " * format.editors * "" *} + if$ + } + if$ + } + if$ +} + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + key empty$ not and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { title empty$ + { "Technical Report" } + { title is.kanji + { "$B5;=QJs9p(B" } + { "Technical Report" } + if$ + } + if$ + } + {type} + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "In {\it " journal * "\/}" * } + if$ + } + { "In " key * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.crossref.editor} +{ editor #1 "{vv~}{ll}" format.name$ + editor num.names$ duplicate$ + #2 > + { editor is.kanji + {pop$ " $B$[$+(B" *} {pop$ " et~al." * } if$ + } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { editor is.kanji + {" $B$[$+(B" *} {"et~al." * } if$ + } + { editor is.kanji + {" " * editor #2 "{vv~}{ll}" format.name$ * } + {" and " * editor #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + title is.kanji + {" "} {"In "} if$ + } + { "Volume" volume tie.or.space.connect + " of " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { "{\it " * series * "\/}" * } + if$ + } + { key * } + if$ + } + { format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { booktitle is.kanji + {" {\it " booktitle * "\/}" * } + {"In {\it " booktitle * "\/}" * } + if$ + } + if$ + } + { "In " key * } + if$ + } + { title is.kanji + {" " format.crossref.editor * } + {"In " format.crossref.editor * } + if$ + } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {article} +{ +%%%% + author "author" required.argument + title "title" required.argument + journal "journal" required.argument + year "year" required.argument +%%%% jssst + volume "volume" + number "number" + required.and.or.argument + pages "pages" required.argument +%%%% + output.bibitem + format.authors ": " * + title output + crossref missing$ + { journal emphasize output + format.volume.number.year.pages output + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {book} +{ +%%%% + author "author" + editor "editor" + required.exclusive.or.argument + title "title" required.argument + publisher "publisher" required.argument + year "year" required.argument + optional.series.volume.number.argument +%%%% + output.bibitem + author empty$ + { format.editors} + { format.authors} + if$ + ": " * + title emphasize output + crossref missing$ + { output.series.volume.number + publisher output + address output + } + { new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date output + new.block + note output + fin.entry +} + +FUNCTION {booklet} +{ +%%%% + title "title" required.argument +%%%% jssst + author "author" required.argument +%%%% + output.bibitem + format.authors ": " * + title output + howpublished output + address output + format.date output + new.block + note output + fin.entry +} + +FUNCTION {inbook} +{ +%%%% + author "author" + editor "editor" + required.exclusive.or.argument + title "title" required.argument + chapter "chapter" + pages "pages" + required.and.or.argument + publisher "publisher" required.argument + year "year" required.argument + + optional.series.volume.number.argument +%%%% + output.bibitem + author empty$ + { format.editors} + { format.authors} + if$ + ": " * + title emphasize output + crossref missing$ + { output.series.volume.number + publisher output + } + { format.chapter.pages output + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date output + format.chapter.pages output + new.block + note output + fin.entry +} + +FUNCTION {incollection} +{ +%%%% + author "author" required.argument + title "title" required.argument + booktitle "booktitle" required.argument + publisher "publisher" required.argument + year "year" required.argument + + optional.series.volume.number.argument +%%%% + output.bibitem + format.authors ": " * + title output + crossref missing$ + { format.in.ed.booktitle output + output.series.volume.number + publisher output + address output + format.edition output + format.date output + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + format.chapter.pages output + new.block + note output + fin.entry +} + +FUNCTION {inproceedings} +{ +%%%% + author "author" required.argument + title "title" required.argument + booktitle "booktitle" required.argument + year "year" required.argument + + optional.series.volume.number.argument +%%%% + output.bibitem + format.authors ": " * + title output + crossref missing$ + { format.in.ed.booktitle output + output.series.volume.number + address output + organization output + publisher output + format.date output + format.pages output + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ +%%%% + title "title" required.argument +%%%% jssst + author "author" + organization "organazaion" + required.exclusive.or.argument +%%%% + output.bibitem + author empty$ + { organization} + { format.authors} + if$ + ": " * + title emphasize output + author empty$ + 'skip$ + { organization output } + if$ + address output + format.edition output + format.date output + new.block + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ +%%%% + author "author" required.argument + title "title" required.argument + school "school" required.argument + year "year" required.argument +%%%% + output.bibitem + format.authors ": " * + title output + author empty$ + { "Master's thesis" } + { author is.kanji + { "$B=$;NO@J8(B" } + { "Master's thesis" } + if$ + } + if$ + format.thesis.type output.nonnull + school output + address output + format.date output + new.block + note output + fin.entry +} + +FUNCTION {misc} +{ +%%%% +%%%% jssst + author "author" required.argument + title "title" required.argument +%%%% + output.bibitem + format.authors + ": " * + title output + howpublished output + format.date output + new.block + note output + fin.entry + empty.misc.check +} + +FUNCTION {phdthesis} +{ +%%%% + author "author" required.argument + title "title" required.argument + school "school" required.argument + year "year" required.argument +%%%% + output.bibitem + format.authors ": " * + title emphasize output + author empty$ + { "PhD Thesis" } + { author is.kanji + { "$BGn;NO@J8(B" } + { "PhD Thesis" } + if$ + } + if$ + format.thesis.type output.nonnull + school output + address output + format.date output + new.block + note output + fin.entry +} + +FUNCTION {proceedings} +{ +%%%% + title "title" required.argument + year "year" required.argument + + optional.series.volume.number.argument +%%%% jssst + editor "editor" + organization "organization" + required.exclusive.or.argument +%%%% + output.bibitem + editor empty$ + { organization } + { format.editors } + if$ + ": " * + title emphasize output + output.series.volume.number + address output + editor empty$ + 'skip$ + { organization output } + if$ + publisher output + format.date output + new.block + note output + fin.entry +} + +FUNCTION {techreport} +{ +%%%% + author "author" required.argument + title "title" required.argument + institution "institution" required.argument + year "year" required.argument +%%%% + output.bibitem + format.authors ": " * + title output + format.tr.number output.nonnull + institution output + address output + format.date output + new.block + note output + fin.entry +} + +FUNCTION {unpublished} +{ +%%%% + author "author" required.argument + title "title" required.argument + note "note" required.argument +%%%% + output.bibitem + format.authors ": " * + title output + format.date output + new.block + note output + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"January"} + +MACRO {feb} {"February"} + +MACRO {mar} {"March"} + +MACRO {apr} {"April"} + +MACRO {may} {"May"} + +MACRO {jun} {"June"} + +MACRO {jul} {"July"} + +MACRO {aug} {"August"} + +MACRO {sep} {"September"} + +MACRO {oct} {"October"} + +MACRO {nov} {"November"} + +MACRO {dec} {"December"} + +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {cacm} {"Communications of the ACM"} + +MACRO {ibmjrd} {"IBM Journal of Research and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} + +MACRO {ieeetc} {"IEEE Transactions on Computers"} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} + +READ + +FUNCTION {sortify} +{ purify$ + "l" change.case$ +} + +INTEGERS { len } + +FUNCTION {chop.word} +{ 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + 's + if$ +} + +FUNCTION {sort.format.names} +{ 's := + yomi empty$ + 'skip$ + { yomi 's := } + if$ + + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ + s nameptr "{vv{ } }{ll{ }}{ ff{ }}{ jj{ }}" format.name$ 't := + nameptr numnames = t "others" = and + { "et al" * } + { t sortify * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {sort.format.title} +{ 't := + "A " #2 + "An " #3 + "The " #4 t chop.word + chop.word + chop.word + sortify + #1 global.max$ substring$ +} + +FUNCTION {author.sort} +{ author empty$ + { key empty$ + { "to sort, need author or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {author.editor.sort} +{ author empty$ + { editor empty$ + { key empty$ + { "to sort, need author, editor, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { editor sort.format.names } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {author.organization.sort} +{ author empty$ + { organization empty$ + { key empty$ + { "to sort, need author, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {editor.organization.sort} +{ editor empty$ + { organization empty$ + { key empty$ + { "to sort, need editor, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { editor sort.format.names } + if$ +} + +FUNCTION {presort} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.organization.sort + { type$ "manual" = + 'author.organization.sort + 'author.sort + if$ + } + if$ + } + if$ + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +SORT + +STRINGS { longest.label } + +INTEGERS { number.label longest.label.width } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := +} + +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := + number.label #1 + 'number.label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ +} + +EXECUTE {initialize.longest.label} + +ITERATE {longest.label.pass} + +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" longest.label * "}" * write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} + +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mediabb.sty Tue Aug 10 18:08:07 2010 +0900 @@ -0,0 +1,99 @@ +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{mediabb}[2006/10/26 v1.9 iNOUE Koich! <inoue@ma.ns.musashi-tech.ac.jp>] +\@ifpackageloaded{graphics}{}{\RequirePackage[dvipdfm]{graphicx}} +\define@key{Gin}{usebb}[true]{\expandafter\let\expandafter\if@usebb\csname if#1\endcsname} +\let\if@usebb\iffalse +\define@key{Gin}{mediaboxonly}[/MediaBox]{\@ifundefined{Gread@find@#1}% + {\def\Gread@rect@box{/MediaBox}\expandafter\let\expandafter\if@Gread@find@only\csname if#1\endcsname}% + {\def\Gread@rect@box{#1}\let\if@Gread@find@only\iftrue}} +\let\if@Gread@find@only\iffalse +\def\Gread@rect@box{/MediaBox} +\define@key{Gin}{autoebb}[always]{\csname Gread@ebb@#1\endcsname} +\def\Gread@ebb@always{\let\if@Gread@ebb@always\iftrue} +\let\if@Gread@ebb@always\iffalse +\let\Gread@ebb@true\Gread@ebb@always +\def\Gread@ebb@never{\let\if@Gread@ebb@never\iftrue} +\let\Gread@ebb@false\Gread@ebb@never +\let\if@Gread@ebb@never\iffalse +\let\Ginclude@pdf\Ginclude@eps +\def\Gread@pdf#1{% + \begingroup + \if@usebb\else + \@tempcnta\z@ + \loop + \ifnum\@tempcnta<\@xxxii + \catcode\@tempcnta14 + \advance\@tempcnta\@ne + \repeat + \@tempcnta127 + \loop + \ifnum\@tempcnta<\@cclvi + \catcode\@tempcnta14 + \advance\@tempcnta\@ne + \repeat + \let\do\@makeother\dospecials\catcode`\ 10 + \catcode\endlinechar10 + \immediate\openin\@inputcheck#1 + \ifeof\@inputcheck + \@latex@error{File `#1' not found}\@ehc + \else + \Gread@true + \let\@tempa\@empty + \let\@tempb\@empty + \loop + \read\@inputcheck to\@tempc + \ifeof\@inputcheck + \Gread@false + \else + \edef\@tempa{\@tempb\@tempc}\let\@tempb\@tempc + \edef\@tempc{\@tempa\Gread@rect@box}% + \csname Gread@find@\Gread@rect@box\expandafter\endcsname\@tempc[\@nnil]\\% + \fi + \ifGread@ + \repeat + \immediate\closein\@inputcheck + \fi + \fi + \ifGin@bbox + \else + \Gread@bmp{\Gin@base.bb}% + \fi + \endgroup + \expandafter\Gread@parse@bb\@gtempa\\} +\def\def@Gread@find#1#2{\ifx\@nnil#2\expandafter\@gobble\else + \@namedef{Gread@find@#1}##1#1##2[##3##4]##5\\{% + \ifx\@nnil##3\else + \gdef\@gtempa{##3##4 }% + \if@Gread@find@only + \Gread@false + \else + \def\Gread@rect@box{#1}% + \fi + \Gin@bboxtrue + \fi + \if@Gread@find@only\else + \csname Gread@find@#2\expandafter\endcsname\@tempa#2[\@nnil]\\% + \fi}% + \expandafter\def@Gread@find\fi{#2}} +\def@Gread@find{/MediaBox}{/CropBox}{/BleedBox}{/TrimBox}{/ArtBox}\@nnil +\@namedef{Gread@find@/ArtBox}#1/ArtBox#2[#3#4]#5\\{% + \ifx\@nnil#3\else + \gdef\@gtempa{#3#4 }% + \Gread@false + \Gin@bboxtrue + \fi} +\def\Gread@bmp#1{% + \if@Gread@ebb@never\else + \if@Gread@ebb@always\else + \immediate\openin\@inputcheck#1 % + \ifeof\@inputcheck + \Gread@ebb@always + \else + \immediate\closein\@inputcheck + \fi + \fi + \immediate\write18{\if@Gread@ebb@always\else[ '\Gin@base\Gin@ext' -nt '\Gin@base.bb' ] && \fi + \ifx\@nnil\filename@area\@nnil\else cd '\filename@area' && \fi ebb '\filename@base\Gin@ext'}% + \fi + \Gread@eps{#1}} +\DeclareGraphicsRule{.pdf}{pdf}{*}{}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/shoshi-paper.aux Tue Aug 10 18:08:07 2010 +0900 @@ -0,0 +1,30 @@ +\relax +\@writefile{toc}{\contentsline {section}{\numberline {1}はじめに}{1}} +\@writefile{toc}{\contentsline {section}{\numberline {2}分散データベース Cassandra}{1}} +\@writefile{toc}{\contentsline {subsection}{\numberline {2.\,1}ConsictencyLevel}{1}} +\@writefile{toc}{\contentsline {subsection}{\numberline {2.\,2}コンシステント・ハッシュ}{2}} +\newlabel{fig:chash}{{1}{2}} +\@writefile{toc}{\contentsline {subsection}{\numberline {2.\,3}SEDA}{2}} +\newlabel{fig:seda}{{2}{3}} +\@writefile{toc}{\contentsline {subsection}{\numberline {2.\,4}Cassandra上でのステージの構成}{3}} +\@writefile{toc}{\contentsline {section}{\numberline {3}実験}{3}} +\@writefile{toc}{\contentsline {subsection}{\numberline {3.\,1}実験環境}{3}} +\@writefile{toc}{\contentsline {subsection}{\numberline {3.\,2}実験方法}{3}} +\newlabel{tab:mysql_tbl_def}{{1}{3}} +\@writefile{toc}{\contentsline {section}{\numberline {4}実験結果と考察}{4}} +\@writefile{toc}{\contentsline {subsection}{\numberline {4.\,1}単純なベンチマーク}{4}} +\@writefile{toc}{\contentsline {subsection}{\numberline {4.\,2}コア数の少ないサーバー上でのベンチマーク}{4}} +\newlabel{fig:bench2-R}{{3}{4}} +\newlabel{fig:bench2-W}{{4}{4}} +\@writefile{toc}{\contentsline {subsection}{\numberline {4.\,3}コア数の多いサーバー上でのベンチマーク}{4}} +\newlabel{fig:bench3-R}{{5}{5}} +\newlabel{fig:bench3-W}{{6}{5}} +\@writefile{toc}{\contentsline {subsection}{\numberline {4.\,4}複数ノードで構成したCassadraのベンチマーク}{5}} +\newlabel{fig:bench4-R}{{7}{5}} +\newlabel{fig:bench4-W}{{8}{5}} +\bibcite{LS86}{1} +\bibcite{LS86}{2} +\bibcite{LS86}{3} +\bibcite{LS86}{4} +\@writefile{toc}{\contentsline {section}{\numberline {5}まとめ}{6}} +\@writefile{toc}{\contentsline {section}{\numberline {6}今後の課題}{6}}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/shoshi-paper.log Tue Aug 10 18:08:07 2010 +0900 @@ -0,0 +1,191 @@ +This is pTeX, Version 3.141592-p3.1.10 (utf8.euc) (Web2C 7.5.4) (format=platex 2009.9.19) 10 AUG 2010 16:31 +**./shoshi-paper.tex +(./shoshi-paper.tex +pLaTeX2e <2006/11/10>+0 (based on LaTeX2e <2003/12/01> patch level 0) +(./compsoft.cls +Document Class: compsoft 2000/11/02 ver 0.10 +(./compsoft.sty +Document Style `compsoft' ascii version <23 Mar 92>. +\@maxsep=\dimen118 +\@dblmaxsep=\dimen119 +\JQ=\dimen120 +\Q=\dimen121 +\@Baseline=\dimen122 +\jspaceskip=\dimen123 +\jmathkanjiskip=\dimen124 +\@mojihaba=\dimen125 +\c@part=\count81 +\c@section=\count82 +\c@subsection=\count83 +\c@subsubsection=\count84 +\c@paragraph=\count85 +\c@subparagraph=\count86 +\@currentmojihaba=\skip41 +\twodigits=\skip42 +\bibbox=\box41 +\@beforecaptionskip=\skip43 +\@aftercaptionskip=\skip44 +\@tempboxb=\box42 +\c@figure=\count87 +\c@table=\count88 +\@floatheight=\dimen126 +\@floatlinecount=\count89 +\@temptitlebox=\box43 +\strokeinterval=\dimen127 +\strokewidth=\dimen128 +\rightstrokewidth=\dimen129 +\boxinterval=\dimen130 +\boxwidth=\dimen131 +\leftboxwidth=\dimen132 +\c@volpageoffset=\count90 +\c@巻数=\count91 +\c@号数=\count92 +\c@年数=\count93 +\c@firstpage=\count94 +\c@lastpage=\count95 +\dimen@@=\dimen133 +\@interlinegap=\skip45 +\@leftcolumnfootnote=\box44 +\@rightcolumnfootnote=\box45 +\adjustbox=\box46 +\adjustheight=\dimen134 +\adjustlinecount=\count96 +)) +\currentYear=\count97 +\currentKai=\count98 + (./mediabb.sty +Package: mediabb 2006/10/26 v1.9 iNOUE Koich! <inoue@ma.ns.musashi-tech.ac.jp> + (/opt/local/share/texmf-dist/tex/latex/graphics/graphicx.sty +Package: graphicx 1999/02/16 v1.0f Enhanced LaTeX Graphics (DPC,SPQR) + +(/opt/local/share/texmf-dist/tex/latex/graphics/keyval.sty +Package: keyval 1999/03/16 v1.13 key=value parser (DPC) +\KV@toks@=\toks15 +) +(/opt/local/share/texmf/tex/latex/graphics/dvipdfmx-contrib-latex/graphics.sty +Package: graphics 2001/07/07 v1.0n Standard LaTeX Graphics (DPC,SPQR) + +(/opt/local/share/texmf-dist/tex/latex/graphics/trig.sty +Package: trig 1999/03/16 v1.09 sin cos tan (DPC) +) +(/opt/local/share/texmf-dist/tex/latex/graphics/graphics.cfg +File: graphics.cfg 2005/02/03 v1.3 graphics configuration of teTeX/TeXLive +) +Package graphics Info: Driver file: dvipdfm.def on input line 81. + +(/opt/local/share/texmf-dist/tex/latex/dvipdfm/dvipdfm.def +File: dvipdfm.def 1999/9/6 vx.x Driver-dependant file +)) +\Gin@req@height=\dimen135 +\Gin@req@width=\dimen136 +)) +(./shoshi-paper.aux + +LaTeX Warning: Label `LS86' multiply defined. + + +LaTeX Warning: Label `LS86' multiply defined. + + +LaTeX Warning: Label `LS86' multiply defined. + +) +\openout1 = `shoshi-paper.aux'. + +LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 29. +LaTeX Font Info: ... okay on input line 29. +LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 29. +LaTeX Font Info: ... okay on input line 29. +LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 29. +LaTeX Font Info: ... okay on input line 29. +LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 29. +LaTeX Font Info: ... okay on input line 29. +LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 29. +LaTeX Font Info: ... okay on input line 29. +LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 29. +LaTeX Font Info: ... okay on input line 29. +LaTeX Font Info: Checking defaults for JY1/mc/m/n on input line 29. +LaTeX Font Info: ... okay on input line 29. +LaTeX Font Info: Checking defaults for JT1/mc/m/n on input line 29. +LaTeX Font Info: ... okay on input line 29. +LaTeX Font Info: Font shape `JT1/gt/bx/n' in size <8> not available +(Font) Font shape `JT1/gt/m/n' tried instead on input line 55. +LaTeX Font Info: Font shape `JY1/gt/bx/n' in size <8> not available +(Font) Font shape `JY1/gt/m/n' tried instead on input line 55. +LaTeX Font Info: Font shape `JT1/gt/bx/n' in size <17.28> not available +(Font) Font shape `JT1/gt/m/n' tried instead on input line 55. +LaTeX Font Info: Font shape `JY1/gt/bx/n' in size <17.28> not available +(Font) Font shape `JY1/gt/m/n' tried instead on input line 55. +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <14.4> on input line 55. +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <7> on input line 55. +LaTeX Font Info: Font shape `JT1/gt/bx/n' in size <10> not available +(Font) Font shape `JT1/gt/m/n' tried instead on input line 57. +LaTeX Font Info: Font shape `JY1/gt/bx/n' in size <10> not available +(Font) Font shape `JY1/gt/m/n' tried instead on input line 57. +LaTeX Font Info: Font shape `JT1/gt/bx/n' in size <9> not available +(Font) Font shape `JT1/gt/m/n' tried instead on input line 66. +LaTeX Font Info: Font shape `JY1/gt/bx/n' in size <9> not available +(Font) Font shape `JY1/gt/m/n' tried instead on input line 66. + [1 + + +] +File: ./fig/ConsistentHash.pdf Graphic file (type pdf) + <./fig/ConsistentHash.pdf> +File: ./fig/SEDA.pdf Graphic file (type pdf) + <./fig/SEDA.pdf> + +LaTeX Warning: `h' float specifier changed to `ht'. + +[2] +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <9> on input line 123. +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <6> on input line 123. +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <5> on input line 123. + [3] +LaTeX Font Info: Font shape `JT1/mc/bx/n' in size <9> not available +(Font) Font shape `JT1/gt/m/n' tried instead on input line 180. +LaTeX Font Info: Font shape `JY1/mc/bx/n' in size <9> not available +(Font) Font shape `JY1/gt/m/n' tried instead on input line 180. + + +LaTeX Warning: Reference `tab:bench1' on page 4 undefined on input line 180. + +File: ./fig/serv1_read.pdf Graphic file (type pdf) +<./fig/serv1_read.pdf> +File: ./fig/serv1_write.pdf Graphic file (type pdf) + <./fig/serv1_write.pdf> +File: ./fig/serv2_read.pdf Graphic file (type pdf) + <./fig/serv2_read.pdf> +File: ./fig/serv2_write.pdf Graphic file (type pdf) + +<./fig/serv2_write.pdf> [4] +File: ./fig/cluster_read.pdf Graphic file (type pdf) + <./fig/cluster_read.pdf> +File: ./fig/cluster_write.pdf Graphic file (type pdf) + <./fig/cluster_write.pdf> +[5] +Underfull \hbox (badness 5050) in paragraph at lines 266--267 +[]\OT1/cmr/m/n/8 The Staged Event-Driven Ar-chi-tec-ture for + [] + +[6] (./shoshi-paper.aux) + +LaTeX Warning: Label(s) may have changed. Rerun to get cross-references right o +n input line 271. + + ) +Here is how much of TeX's memory you used: + 809 strings out of 94682 + 9475 string characters out of 1177971 + 71058 words of memory out of 1500000 + 4127 multiletter control sequences out of 10000+50000 + 18606 words of font info for 72 fonts, out of 1200000 for 2000 + 566 hyphenation exceptions out of 8191 + 32i,9n,36p,1331b,664s stack positions out of 5000i,500n,6000p,200000b,5000s + +Output written on shoshi-paper.dvi (6 pages, 31464 bytes).
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/shoshi-paper.tex Tue Aug 10 18:08:07 2010 +0900 @@ -0,0 +1,271 @@ +% Sample file for the use of compsoft style file. +% +\documentclass[T]{compsoft} + +% Preamble +% +% 「コンピュータソフトウェア」誌に掲載される論文の場合,次で +% 巻数,号数,開始ページ,終了ページを指定する. +%\volNoPp{16}{5}{78}{83} + +% ワークショップによる推薦論文の場合,ワークショップ名を指定する. +% \suisen{ワークショップ名} + +% 特集の場合,特集のタイトルを与える. +% \tokushu{特集のタイトル} + +% 大会論文の場合,\taikai で開催年を指定する.ここで指定した年から +% 大会の回数は計算される. +\taikai{2010} + +%pdf ここに,使用するパッケージを列挙する. +\usepackage{mediabb} +\usepackage{graphicx} +%\usepackage[dvips]{graphics} + +% ユーザが定義したマクロなどはここに置く.ただし学会誌のスタイルの +% 再定義は原則として避けること. + +\begin{document} + +% 論文のタイトル +\title{Cassandraを使ったアプリケーションのPCクラスタを使ったスケーラビリティの検証} + +% 著者 +% 和文論文の場合,姓と名の間には半角スペースを入れ, +% 複数の著者の間は全角スペースで区切る +% +\author{玉城 将士 +} + +% +% 和文アブストラクト +\Jabstract{% +現在,数ある分散Key-Valueストアの中でもCassandraが注目を集めている. +CassandraはConsitency levelの変更が可能であり、スケーラビリテイを +高めるための使い方には工夫が必要である。 +本研究では,Cassandra上で動作するCMSを開発し学科のクラスタ上で動作させ +る.そしてその環境上でスケーラビリティを確認する実験手法に関して +考察する。 +} +% +% 英文アブストラクト(大会論文には必要なし) +% \Eabstract{} +% +\maketitle + +\section{はじめに} +近年インターネットやスマートフォンなどの普及に伴い,インターネット上のサービスを使用するユーザーが急速に増え続けている.サービスを利用するユーザーが増えると,いままでのシステムでは膨大なアクセスに対応できなくなり,サービスの品質を維持することができなる. +品質を維持するためには,使用するサーバー性能の向上を測ればよい.しかし,性能の良いサーバーを揃えるには膨大なコストを必要とし,これをスケールアップと呼ぶ. +そこで,安価なサーバーを複数用意し,連携させることによって性能を向上させる方法があり,これをスケールアウトと呼ぶ.この方法では,従来使用してきたソフトウェアを複数のサーバーに移動するだけではうまく動作しない. +複数のサーバーを強調させるのは難しく,データの整合性や通信速度,負荷分散など様々な考慮をしなければならないためである. +Cassandraは複数のサーバーで動作を想定した分散データベースである. +本研究では,実際に分散させることによって高価なサーバーを超えることが出来る性能を出すことが出来るのか,また,どの様にCassandra上で動くソフトウェアを開発することによって性能を発揮することが出来るのかを,90台のPCクラスタ上でベンチマークを取り検証する. +\section{分散データベース Cassandra} +Cassandraは,FaceBookが自社のために開発した分散Key-Valueストアデータベースである.2008年にオープンソースとして公開され,2009年にApache Incubatorのプロジェクトとなった.2010年にはApacheのトップレベルプロジェクトとなり,現在でも頻繁にバージョンアップが行われている. +\subsection{ConsictencyLevel} +Cassandraには,ConsistencyLevelが用意されている.これは,整合性と応答速度どちらを取るか選ぶためのパラメータであり,リクエストごとに設定することが出来る. +また,ReadとWriteでConsistencyLevelの意味は異なる. +このConsistencyLevelを適用するノードの台数をReplicationFactorといい,Cassandraの設定ファイルで設定することが出来る.\\ +{\gt Read} +\begin{enumerate} +\item{ConsistencyLevel::ZERO}\\ +サポートされていない. +\item{ConsistencyLevel::ANY}\\ +サポートされていない. +\item{ConsistencyLevel::ONE}\\ +一番最初に返答したノードの値を返すが値が最新のものであるかは保証できない.整合性の調査は常に非同期で行われており,再度読み出しを行うときに結果が変わっている可能性がある. +\item{ConsistencyLevel::QUORUM}\\ +すべてのノードにリクエストを送信し,取得した値のタイムスタンプを比較し,最も多数のノードが返した値のうちで最新のタイムスタンプを持つ値を返す. +\item{ConsistencyLevel::ALL}\\ +すべてのノードにリクエストを送信し,もっともタイムスタンプの新しいノードの値を返す. +\end{enumerate} +{\gt Write} +\begin{enumerate} +\item{ConsistencyLevel::ZERO}\\ +何も保証しない,書き込みは非同期的に行われる. +\item{ConsistencyLevel::ANY}\\ +別のどこか他のノードに書き込まれることを保証する. +\item{ConsistencyLevel::ONE}\\ +最低1つのノードのログとメモリテーブルに書き込まれていることを保証する. +\item{ConsistencyLevel::QUORUM}\\ +(ReplicationFactor/2) + 1のノードに書き込むことに書き込みを終えてからクライアントにレスポンスを返す. +\item{ConsistencyLevel::ALL}\\ +ReplicationFactorのノード数に書き込みを終えてからレスポンスを返す. +\end{enumerate} +\subsection{コンシステント・ハッシュ} +Cassandraは複数のノードにデータを分散して格納する.その為に使用されているのがコンシステント・ハッシュである.普通,n台で構成されたノードにデータを分散する場合,HASH(key) mod nで分散させる.この場合だと,ノードが追加・削除された場合すべてのデータの位置を再計算する必要があり面倒である.\\ +そこで,図\ref{fig:chash}のようなものを考える.図\ref{fig:chash}はハッシュ関数が取りうる値を範囲としたリングである.このリング上に構成するノードを配置していく.この図の場合,アルファベットがノードで数字がデータ,矢印が担当するノードである. +次に,ハッシュ関数により計算された値をリングの上に配置する.このとき,リングを右回りに周り一番最初にあたったノードがデータを担当するノードとする. +こうすると,ノードが追加・削除された場合に,全体を再計算する必要はなく,担当するノードがいなくなったデータのみを再計算し,次の担当するノードに移せばよい. +Cassandraでは,右回りに回ったとき担当するノード数を複数にする場合,ReplicationFactorで調整することが出来る. +\begin{figure}[h] +\begin{center} +\includegraphics{./fig/ConsistentHash.pdf} +\end{center} +\caption{コンシステントハッシュ} +\label{fig:chash} +\end{figure} +\subsection{SEDA} +SEDA(Staged Event-Driven Architecture)は,Cassandraで使用されているアーキテクチャである.処理を複数のステージに分解しタスクキューとスレッドプールを用意し処理を行う.処理の様子を図\ref{fig:seda}に示す. +タスクが各ステージのタスクキューに入ると,スレッドプールにどれかのスレッドがタスクキューの中からタスクを取り出し処理を行う.処理が終わるとそのタスクを次のステージのタスクキューに入れる.\\ +このアーキテクチャはマルチスレッドベースなためマルチコアなPCと多数のタスクがある状況で性能を発揮することができる.しかし,あまりにもスレッドプールやタスクが多すぎると,コンテキストに切り替えに時間がかかり性能は低下する.そのため,Cassandraでは最低4コアを搭載した計算機で動作させることを推奨している. +\begin{figure}[h] +\begin{center} +\includegraphics{./fig/SEDA.pdf} +\end{center} +\caption{SEDA} +\label{fig:seda} +\end{figure} +\subsection{Cassandra上でのステージの構成} +Cassandraは主に以下のステージにより構成されており,concurrent.StageManagerを参照すると見つけることが出来る. +\begin{itemize} +\item{READ STAGE} +\item{MUTATION STAGE} +\item{STREAM STAGE} +\item{GOSSIP STAGE} +\item{RESPONSE STAGE} +\item{AE SERVICE STAGE} +\item{LOADBALANCE STAGE} +\item{MIGRATION STAGE}\\ +\end{itemize} +実際にはもっと多数のステージが存在し,この他にもクライアントの接続を待つスレッドプールやMemTableのFlushを行うスレッドプールがあり,全部で40個程度のスレッドが動作している. +\section{実験} +本研究では,Cassandraのスケーラビリティの検証の為にベンチマークテストを行う.実験環境は以下のとおりである. +\subsection{実験環境} +\begin{enumerate} +\item{クラスタ(クライアント)} +\begin{itemize} +\item{CPU : Core Duo} +\item{Mem : 1GB} +\item{O S : CentOS 5} +\end{itemize} +\item{実験用サーバー1( MacMini )} +\begin{itemize} +\item{CPU : Core2 Duo} +\item{Mem : 4GB} +\item{O S : OSX SnowLeopard} +\end{itemize} +\item{実験用サーバー2} +\begin{itemize} +\item{CPU : Core i7 950 @3.0GHz} +\item{Mem : 16GB} +\item{O S : CentOS 5} +\end{itemize} +\end{enumerate} +\subsection{実験方法} +\begin{enumerate} +\item{クライアント}\\ +クラスタ管理ツールのTorqueを使用し,使用するノード数を指定してクラスタにジョブを投げてPHPスクリプトを実行させる.このPHPスクリプトはCassandraとMySQLに10000回リクエストを送信するスクリプトである. +\item{Cassandra}\\ +Cassandra 0.6.3を使用した. +\item{MySQL}\\ +MySQL 5.5を使用した.Cassandraと似たデータ構造を持たせるために表\ref{tab:mysql_tbl_def}のような構造でテーブルを作成した. +\begin{table}[h] +\caption{テーブルの定義} +\label{tab:mysql_tbl_def} +\begin{center} +\begin{tabular}{|c|c|c|} \hline +フィールド名 & データタイプ & 備考 \\ \hline +NAME & VARCHAR(100) & UNIQUE \\ \hline +VALUE & VARCHAR(100) & - \\ \hline +TIMEUUID & LONG & - \\ \hline +\end{tabular} +\end{center} +\end{table} +\end{enumerate} +\newpage +\section{実験結果と考察} +\subsection{単純なベンチマーク} +はじめに,単純なベンチマークを行った.単体のクライアントとサーバーを用意し,CassandraとMySQLの実行時間の比較を行った.結果を表\ref{tab:bench1}に示す.この時のCassandraのConsistencyLevelはONEである.\\ +結果を見てみると,MySQLよりCassandraのほうが高速に動作していることが分かる.MyySQLはC++で記述されているがCassandraはJavaであるため,動作が遅い.よって,単純な使用方法ではCassandraよりMySQLの方が優れていると言える,普通の方法ではCassandraの性能を引き出すことは出来ない. +\begin{table}[h] +\caption{単純なベンチマークの結果(Read)} +\begin{center} +\begin{tabular}{|c|c|c|} \hline +& Cassandra & MySQL \\ \hline +サーバー1 & 13.72s & 5.94s \\ \hline +サーバー2 & 12.56s & 3.99s \\ \hline +\end{tabular} +\end{center} +\vspace{5mm} +\caption{単純なベンチマークの結果(Write)} +\begin{center} +\begin{tabular}{|c|c|c|} \hline +& Cassandra & MySQL \\ \hline +サーバー1 & 11.75s & 5.7s \\ \hline +サーバー2 & 9.62s & 5.3s \\ \hline +\end{tabular} +\end{center} +\end{table} +\subsection{コア数の少ないサーバー上でのベンチマーク} +次に,クライアントを並列化しての実験を行う.ここでは,コア数の少ないサーバー1を用いる.クライアントの並列化はスクリプトを指定した時間に同時起動するようにして実装した.\\ +実験結果を図\ref{fig:bench2-R}と図\ref{fig:bench2-W}に示す.\\ +Readは両方とも,同じような推移の仕方をしているが,Cassandraの方が遅い.しかし,WriteはCassandraの方が断然速く動作している.この実験では,Cassandraの動作を基準に考えたため書き込みのコマンドにREPLACEを使用した.REPLACEは置き換えるようなコマンドである.そのため,INSERTに比べて多少遅くなる.それがこのグラフに出ているのではないかと考えられる.SEDAは複数のスレッドで動作しているためコア数が少ないサーバーでは性能が出にくいことがわかる. +\begin{figure}[h] +\begin{center} + \scalebox{0.33}{\includegraphics{./fig/serv1_read.pdf}} +\end{center} +\caption{サーバー1上でのベンチマーク(Read)} +\label{fig:bench2-R} +\end{figure} +\begin{figure}[h] +\begin{center} + \scalebox{0.33}{\includegraphics{./fig/serv1_write.pdf}} +\end{center} +\caption{サーバー1上でのベンチマーク(Write)} +\label{fig:bench2-W} +\end{figure} +\subsection{コア数の多いサーバー上でのベンチマーク} +クライアントを並列化した状態で,コア数の多いサーバー2を用いたベンチマークを行う.実験結果を図\ref{fig:bench3-R}と図\ref{fig:bench3-W}に示す.\\ +Read/Write共にMySQLの性能を超えることに成功した.Readにおいてはコア数が少ない場合に超えることが出来なかったが,並列度が70度付近でMySQLを超えることが出来ている.Cassandraの平均時間は並列度がましても,MySQLよりは平均時間の増加度が少ない.これは,SEDAの特徴である,多くのタスクを並列に実行すると性能がでるという部分が確認することが出来た.また,SEDAはマルチスレッド前提であるため,コア数が少ないサーバー1では性能が出ず,コア数の多いサーバー2で性能が発揮できるということがわかった.\\ +つまり,Cassandraは負荷が高いときにMySQLを超える性能を出すことが出来る.負荷がかかっても性能の劣化が少ないことを考えると考えると遅延をあまり考慮しなくても済むのではないだろうか. +\begin{figure}[h] +\begin{center} + \scalebox{0.33}{\includegraphics{./fig/serv2_read.pdf}} +\end{center} +\caption{サーバー2上でのベンチマーク(Read)} +\label{fig:bench3-R} +\end{figure} +\begin{figure}[h] +\begin{center} + \scalebox{0.33}{\includegraphics{./fig/serv2_write.pdf}} +\end{center} +\caption{サーバー2上でのベンチマーク(Write)} +\label{fig:bench3-W} +\end{figure} +\subsection{複数ノードで構成したCassadraのベンチマーク} +最後に分散しなかったCassandraと複数ノードで構成したCassandraの比較を行う.サーバーはサーバー1を5台使用して行った.実験結果を図\ref{fig:bench4-R}と図\ref{fig:bench4-W}に示す.\\ +Read/Writeともに,今回の場合は分散を行わなかったほうが性能を引き出せてることが分る.これは,実験に使用したデータがRead/Write共に1つだけで,結局は同じノードにリクエストが転送されている.そのため,リクエストは1台のノードに集中する.よって,性能が出ないのではないかと考えられる.Cassandraをただ増やすだけでは性能は得ることが出来ず,データも分散させて実験を行わないといけないことがわかった. +\begin{figure}[h] +\begin{center} + \scalebox{0.33}{\includegraphics{./fig/cluster_read.pdf}} +\end{center} +\caption{サーバー1を複数ノードにしたベンチマーク(Read)} +\label{fig:bench4-R} +\end{figure} +\begin{figure}[h] +\begin{center} + \scalebox{0.33}{\includegraphics{./fig/cluster_write.pdf}} +\end{center} +\caption{サーバー1を複数ノードにしたベンチマーク(Write)} +\label{fig:bench4-W} +\end{figure} +\newpage +\section{まとめ} +今回の実験で,Cassandraを使用するには従来の使用方法ではいけないということがわかった.Cassandraの性能を発揮するにはRead/Writeが多い環境下でコア数の多いサーバーを使用する必要がある.さらに,単純にCassandraのノード数を増やしても性能は高くならならず,逆に遅くなることがある.\\ +そのため,格納されるデータもある程度分散させなければならない.格納されるデータを決めるのにPartitionerというものがあり,効率よく分散させるためには,アプリケーションが使用するデータの特性に応じてカスタマイズする必要があると考えられる. +\section{今後の課題} +今後は,Partitionerを拡張し複数のデータをノードに分散させた環境下でベンチマークを行い,その結果をCassandra単体でのベンチマーク結果と比較したいと考えている.他にも,沖縄東京間などの離れた地域での分散をCassandraでどの様に行なっていくか実験していきたい.\\ +{\bf 謝辞}\\ +うわあああああああああああああああああああああああああああああああああああああああ +% +\begin{adjustvboxheight} % needed only when Appendix follows +\begin{thebibliography}{99} +\bibitem{LS86} Benchmarking Cloud Serving Systems with YCSB +\bibitem{LS86} The Staged Event-Driven Architecture for Highly-Concurrent Server Applications +\bibitem{LS86} SEDA : An Architecture for Well-Conditioned , Scalable Internet Services +\bibitem{LS86} Bigtable : A Distributed Storege System for Structured Data +\end{thebibliography} +\end{adjustvboxheight} % needed only when Appendix follows +\end{document}