diff compsoft-sjis.sty @ 0:50a9279c19eb

hg init and added section of Monotonic-Tree Modification
author Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
date Sun, 07 Aug 2011 01:55:35 +0900
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/compsoft-sjis.sty	Sun Aug 07 01:55:35 2011 +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.
+
+%% Q数系のためのふたつのユニット
+\newdimen \JQ	\JQ .259817mm	%%%	\JQ/\Q = 10pt/9.62216pt
+\newdimen \Q	\Q  .25mm	%%%	Quarter of 1mm
+
+%% ベースラインスキップの値.
+%% デフォルト値は21.5Q,Eronbun, Etokushuronbunでは17.5Q
+%% に切り替える.
+\newdimen\@Baseline
+\@Baseline=21.5\Q
+
+
+% フォントの再定義
+% まず和文:
+%\font\sevmin	skhmnlaa at 8.5\JQ 	% 8.5Q 本蘭明朝 LHM
+\font\sevmin	min10 at 8.5\JQ 	% 8.5Q min10で仮想的に出力
+%\font\sevgt	skgotoaa at 8.5\JQ	% 8.5Q 中太ゴシック DG-KL
+\font\sevgt	goth10 at 8.5\JQ	% 8.5Q goth10で仮想的に出力
+% \font\egtmin	skhmnlaa at 10\JQ 	% 10Q 本蘭明朝 LHM
+\font\egtmin	min10 at 10\JQ	 	% 10Q min10で仮想的に出力
+% \font\egtgt	skgotoaa at 10\JQ	% 10Q 中太ゴシック DG-KL
+\font\egtgt	goth10 at 10\JQ		% 10Q goth10で仮想的に出力
+%\font\ninmin	skhmnlaa at 11.5\JQ	% 11.5Q 本蘭明朝 LHM
+\font\ninmin	min10 at 11.5\JQ	% 11.5Q min10で仮想的に出力
+%\font\ningt	skgotoaa at 11.5\JQ	% 11.5Q 中太ゴシック DG-KL
+\font\ningt	goth10 at 11.5\JQ	% 11.5Q goth10で仮想的に出力
+%\font\tenmin	skhmnlaa at 13\JQ	% 13Q 本蘭明朝 LHM
+\font\tenmin	min10 at 13\JQ		% 13Q min10で仮想的に出力
+%\font\tengt	skgotoaa at 13\JQ	% 13Q 中太ゴシック DG-KL
+\font\tengt	goth10 at 13\JQ		% 13Q goth10で仮想的に出力
+
+%\font\twlvgona	sknagoaa at 16\JQ	% 16Q ゴナD for 「チュートリアル」
+\font\twlvgona	goth10 at 16\JQ	% 20Q min10で仮想的に出力 for「チュートリアル」
+
+% \font\svtnmin	skminsaa at 20\JQ	% 20Q 太明朝 for author
+\font\svtnmin	min10 at 20\JQ	% 20Q min10で仮想的に出力 for author
+
+% \font\twtygt	skgotsaa at 28\JQ	% 28Q 太ゴシック for title
+\font\twtygt	goth10 at 28\JQ	% 28Q goth10で仮想的に出力 for title
+
+% 続いて欧文:
+%   プレロードされてるローマンフォントは数式の \textfont0 としても
+%   使われるため、別名称でロードしてサイズ環境を操作するのが無難か?
+%%\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		% タイトル用ボドニボールド
+\font\titleb	min10 at 28\Q		% タイトル用ボドニボールド
+
+% 版面天地とパラメータの設定
+%
+% \textheight
+%    = \topskip + \baselineskip * 39 lines
+%    = 12Q      + 21.5Q         * 39 lines
+%    = 850.5Q
+
+\headsep	15\Q		% 正確な値ではない
+\topskip	12\Q		% 12Q より高い行はベースラインがずれる
+\baselineskip	\@Baseline		% 11.5Q 行間 10Q
+\lineskip	0pt
+\lineskiplimit	0pt
+
+\textheight	850.89\Q	% 850.5Q (21.5Q * 39line + \topskip) の
+				% はずだが 40 行入らないため、すこしずつ
+				% 増やしてこの値になった
+
+\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	% すべてのパラメータが決定できたら
+				% パラグラフ間にわずかの自由度を置きたい。
+				% テスト中は自由度はないほうがいい。
+
+\kanjiskip 0pt plus .1zw minus 0.05zw
+				% 和文文字間は比較的自由度が大きい
+
+%\overfullrule	10pt		% 悪い部分は目立たせて直す
+
+%
+% 一部のマクロの再定義
+%
+
+% \def\@maketitle{\newpage \null
+%  \vbox to 235.2\Q{		%% 計算では 236.5Q のはずだが、、、
+%  \begin{flushleft}
+%   \rule{\textwidth}{1mm}%
+%   \vskip.7cm
+%   {\titleb\hskip 6.5mm
+%   \twtygt\@title\kanjiskip -3mm plus0mm minus0mm % 詰めたいのに詰らない、、、
+%   }
+%   \vskip.7cm
+%   \huge\hskip 6.5mm
+%   \begin{tabular}[t]{@{}l}\@author\end{tabular}
+%  \end{flushleft}
+%  \par
+%  \vss
+%  \hrule	% height0pt		%% 体裁が決まったら 0pt にする
+%  }}
+
+% \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}	% 上部グルー (経験値)
+%  {1.6\Q plus.1\Q minus.1\Q}	% 下部グルー
+%  {\vrule width	.4pt		%% 体裁が決まったら 0pt にする。
+% 	 height	30\Q		%% ページ頭で \topskip に届くように。
+% 	 depth	14\Q		%% 本文の 1 行目に接するように。
+%   \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			% ページ下端をそろえる
+%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 「チュートリアル」
+
+\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}{あ}
+
+\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}{あ}%
+ \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{参 考 文 献}  % 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
+% ==========================================================
+% スタイルファイルの変更,その目的は以下の二つ
+%   ・2009年6月より論文投稿規定が改訂されるのに合わせる
+%   ・2009年度の大会論文フォーマットも共用するようにする
+%
+
+%%%
+% 論文種別
+%   コンピュータソフトウェア誌に掲載される論文は
+%       研究論文/ソフトウェア論文/解説論文
+%   の3通りであるが,大会予稿もこのスタイルファイルを使うことにしたので,
+%   便宜的に,大会予稿も論文種別の一種とする.
+%   
+%   結局論文種別は,
+%     研究論文/ソフトウェア論文/解説論文/大会予稿
+%   の4通りのいずれか.そのそれぞれについて和文と英文があり得るが,
+%   英文解説論文はあまり想定していない.
+%   また,チュートリアルは解説論文の一種だが,1ページ目の頭書きが
+%   異なるので,普通の解説論文とば別の種別文字を用意した.
+%
+% \documentclass[..]{compsoft} の [...] の中に論文種別,査読種別,言語
+% を指定する.
+%
+% 論文種別
+%   P   研究論文 (デフォルト)
+%   S   ソフトウェア論文
+%   K   普通の解説論文
+%   U   チュートリアル
+%   T   大会論文 (大会論文は便宜的に論文種別の一種として扱う)
+%
+% 査読種別 (大会論文の時には指定しない)
+%   R   通常論文 (デフォルト)
+%   L   レター論文
+%
+% 言語
+%   J   和文 (デフォルト)
+%   E   英文
+%
+% \ronbunShubetsu は,論文種別を表す一文字 (P, S, K, U, T のいずれか)
+% \sadokuShubets  は,査読種別を表す一文字 (R,L のいずれか)
+% \ronbunLang     は,言語を表す一文字 (J, E のいずれか)
+
+\let\ronbunShubetsu=P     % 論文種別のデフォルト値は研究論文
+\let\sadokuShubetsu=R     % 査読種別のデフォルト値は通常論文
+\let\ronbunLang=J         % デフォルトは和文論文
+\def\JarticleHeader{\rule{\textwidth}{1mm}}
+\def\JarticleTitle{{\huge\bf\@title}}
+\def\JarticleAuthor{\LARGE\begin{tabular}[t]{@{}l}\@author\end{tabular}}
+
+%
+% 論文種別
+%
+
+\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}
+
+% ◆P (研究論文)
+\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}
+
+% ◆S (ソフトウェア論文)
+\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}
+
+% ◆K (普通の解説論文)
+\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 解 説}\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}
+
+% ◆U (チュートリアル --- 解説論文の一種)
+\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 チュートリアル}}\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}
+
+% ◆T (大会論文)
+\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}
+
+%
+% 査読種別 --- 通常論文/レター論文 の2通り
+%
+
+\def\ifRegular#1{\ifx\sadokuShubetsu R{#1}\else\relax\fi}
+\def\ifLetter#1{\ifx\sadokuShubetsu L{#1}\else\relax\fi}
+
+% ◆R (通常論文)
+\def\ds@R{
+\let\sadokuShubetsu=R
+}
+
+% ◆L (レター論文)
+\def\ds@L{
+\let\sadokuShubetsu=L
+}
+
+%
+% 言語
+%
+
+% ◆J (和文)
+\def\ds@J{
+\let\ronbunLang=J%
+\Jarticle}
+
+% ◆E (英文)
+\def\ds@E{
+\let\ronbunLang=E%
+\def\EarticleHeader{\JarticleHeader}
+\def\EarticleTitle{\JarticleTitle}
+\def\EarticleAuthor{\JarticleAuthor}
+\Earticle}
+
+%%%
+% 特集の場合
+%   \tokushu{特集のタイトル}
+% とする.このタイトルは,1ページ目の上の方に出力される.
+
+\def\tokushu#1{%
+\def\tokushutitle{#1}%
+\ifRonbun{%
+\gdef\articleHeader{\hbox to\textwidth{\rule{3\@mojihaba}{1mm}%
+\hbox{\small\bf\hskip1mm 特集●\tokushutitle}\leaderfill}}}%
+\ifSoftRonbun{%
+\gdef\articleHeader{\hbox to\textwidth{%
+\hbox to \leftboxwidth{\leaderfillboxL}%
+\hbox{\small\bf\hskip1mm 特集●\tokushutitle}\leaderfillboxL
+\rule{0.9mm}{1mm}}}}%
+\ifKaisetsu{%
+\gdef\articleHeader{{\offinterlineskip
+\hbox to \textwidth{\leaderfillB\hbox{\small\bf\hskip1mm 特集●\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 解 説}\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 特集●\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 チュートリアル}}\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}}
+
+%%%
+% 推薦の場合
+%   \suisen{タイトル}
+% とする.このタイトルは,1ページ目の上の方に出力される.
+
+\def\suisen#1{%
+\def\suisentitle{#1}%
+\ifRonbun{%
+\gdef\articleHeader{\hbox to\textwidth{\rule{3\@mojihaba}{1mm}%
+\hbox{\small\bf\hskip1mm 推薦論文●\suisentitle}\leaderfill}}}%
+\ifSoftRonbun{%
+\gdef\articleHeader{\hbox to\textwidth{%
+\hbox to \leftboxwidth{\leaderfillboxL}%
+\hbox{\small\bf\hskip1mm 推薦論文●\suisentitle}\leaderfillboxL
+\rule{0.9mm}{1mm}}}}%
+\ifKaisetsu{%
+\gdef\articleHeader{{\offinterlineskip
+\hbox to \textwidth{\leaderfillB\hbox{\small\bf\hskip1mm 推薦論文●\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 解 説}\hfil}\vfil}
+\rule{\textwidth}{0.1mm}
+\vskip0pt}% to end the paragraph and use new baselineskip
+}}%
+\gdef\JarticleHeader{\articleHeader}%
+\gdef\EarticleHeader{\articleHeader}}
+
+%%%
+% 大会予稿の場合
+%   \taikai{年度}
+% を入れなければならない.回数は年度から自動的に計算される.
+% 回数 = 年度 - 1983
+% このタイトルは,1ページ目の上の方に出力される.
+
+\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{日本ソフトウェア科学会第\number\currentKai 回大会%
+(\number\currentYear 年度)講演論文集}%
+\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ページ目の左下に出力されるもの
+\def\ejtitle#1{\thanks{#1}}
+
+\def\shozoku#1#2#3{\thanks{#1, #2, #3.}}
+
+\def\shutten{%
+\ifNotTaikai{%
+  \thanks{\kanjiskip 0pt minus 0.15zw %
+  コンピュータソフトウェア, \kern-0.75pt Vol.\arabic{巻数}, %
+  \kern-0.75pt No.\arabic{号数} \kern-1.25pt(\arabic{年数}), %
+  \kern-0.75pt pp.\arabic{firstpage}--\arabic{lastpage}.}}}
+
+\def\ronbunKind{%
+  \ifRonbun{研究}\ifSoftRonbun{ソフトウェア}%
+  \ifKaisetsu{解説}\ifTutorial{解説}論文%
+  \ifRegular{\relax}\ifLetter{(レター)}}
+
+\def\uketsuke#1#2#3{\ifNotTaikai{\thanks{[\ronbunKind] #1年#2月#3日受付.}}}
+
+\def\note#1{\thanks{#1}}
+
+% ここから先は互換性のために,手を入れていない
+%
+% ==========================================================
+% ◆ronbun (論文)
+\def\ds@ronbun{
+\def\JarticleHeader{\rule{\textwidth}{1mm}}%
+\def\JarticleTitle{{\huge\bf\@title}}%
+\def\JarticleAuthor{\LARGE\begin{tabular}[t]{@{}l}\@author\end{tabular}}%
+\Jarticle}
+
+% ◆Eronbun (英文論文)
+\def\ds@Eronbun{
+\def\EarticleHeader{\rule{\textwidth}{1mm}}%
+\def\EarticleTitle{{\huge\bf\@title}}%
+\def\EarticleAuthor{\LARGE\begin{tabular}[t]{@{}l}\@author\end{tabular}}%
+\Earticle}
+
+% ==========================================================
+% ◆ronbungaiyou (論文概要)
+\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 サイバーページ論文概要\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}
+}}
+
+% ==========================================================
+% ◆softwareronbun (ソフトウェア論文)
+\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}
+
+% ==========================================================
+% ◆tutorial (チュートリアル)
+\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 チュートリアル}}\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}
+
+% ==========================================================
+% ◆kaisetsu (解説)
+\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 解 説}\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}
+
+% ==========================================================
+% ◆topics (トピックス)
+\def\ds@topics{
+\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}
+
+% ◆software (ソフトウェア紹介)
+\def\ds@softwareshokai{
+\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}
+
+% ◆forum (フォーラム)
+\def\ds@forum{
+\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}
+
+% ◆zadankai (座談会)
+\def\ds@zadankai{
+\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}
+
+% ◆column (コラム)
+\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
+}
+
+% ◆review (書評)
+\def\ds@bookreview{
+\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}
+
+% ◆pioneer (パイオニア)
+\def\ds@pioneer{
+\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}
+
+% ◆memoriam (追悼記事)
+\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}
+
+% ==========================================================
+% 特集や推薦の名前を入れるためのマクロ。ユーザに定義してもらう。
+\def\tokushutitle{}
+\def\suisentitle{}
+
+% ◆tokushuronbun (特集論文)
+\def\ds@tokushuronbun{
+\def\JarticleHeader{\hbox to\textwidth{\rule{3\@mojihaba}{1mm}\hbox{\small\bf\hskip1mm 特集●\tokushutitle}\leaderfill}}%
+\def\JarticleTitle{{\huge\bf\@title}}%
+\def\JarticleAuthor{\LARGE\begin{tabular}[t]{@{}l}\@author\end{tabular}}%
+\Jarticle}
+
+% ◆Etokushuronbun (英文特集論文)
+\def\ds@Etokushuronbun{
+\def\EarticleHeader{\hbox to\textwidth{\rule{3\@mojihaba}{1mm}\hbox{\small\bf\hskip1mm 特集●\tokushutitle}\leaderfill}}%
+\def\EarticleTitle{{\huge\bf\@title}}%
+\def\EarticleAuthor{\LARGE\begin{tabular}[t]{@{}l}\@author\end{tabular}}%
+\Earticle}
+
+% ◆tokushusoftwareronbun (特集ソフトウェア論文)
+\def\ds@tokushusoftwareronbun{
+\def\JarticleHeader{\hbox to\textwidth{%
+\hbox to \leftboxwidth{\leaderfillboxL}%
+\hbox{\small\bf\hskip1mm 特集●\tokushutitle}\leaderfillboxL
+\rule{0.9mm}{1mm}}}%
+\def\JarticleTitle{{\huge\bf\@title}}%
+\def\JarticleAuthor{\LARGE\begin{tabular}[t]{@{}l}\@author\end{tabular}}%
+\Jarticle}
+
+% ◆tokushututorial (特集チュートリアル)
+\def\ds@tokushututorial{
+\def\JarticleHeader{{\offinterlineskip
+\hbox to \strokewidth{\leaderfillstrokeL
+\hbox{\small\bf\hskip1mm 特集●\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 チュートリアル}}\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}
+
+% ◆tokushukaisetsu (特集解説)
+\def\ds@tokushukaisetsu{
+\def\JarticleHeader{{\offinterlineskip
+\hbox to \textwidth{\leaderfillB\hbox{\small\bf\hskip1mm 特集●\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 解 説}\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}
+
+% ◆topics (特集トピックス)
+\def\ds@tokushutopics{
+\def\JarticleHeader{{\offinterlineskip
+%
+\hbox to\textwidth{%
+\setbox0=\hbox{\small\bf\hskip1mm 特集●\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 トピックス}\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}
+
+% ◆topics (特集ソフトウェア紹介)
+\def\ds@tokushusoftwareshokai{
+\def\JarticleHeader{{\offinterlineskip
+%
+\hbox to\textwidth{%
+\setbox0=\hbox{\small\bf\hskip1mm 小特集●\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 ソフトウェア紹介}\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}
+
+% ◆suisenronbun (推薦論文)
+\def\ds@suisenronbun{
+\def\JarticleHeader{\hbox to\textwidth{\rule{3\@mojihaba}{1mm}\hbox{\small\bf\hskip1mm 推薦論文●\suisentitle}\leaderfill}}%
+\def\JarticleTitle{{\huge\bf\@title}}%
+\def\JarticleAuthor{\LARGE\begin{tabular}[t]{@{}l}\@author\end{tabular}}%
+\Jarticle}
+
+% ◆Esuisenronbun (英文推薦論文)
+\def\ds@Esuisenronbun{
+\def\EarticleHeader{\hbox to\textwidth{\rule{3\@mojihaba}{1mm}\hbox{\small\bf\hskip1mm 推薦論文●\suisentitle}\leaderfill}}%
+\def\EarticleTitle{{\huge\bf\@title}}%
+\def\EarticleAuthor{\LARGE\begin{tabular}[t]{@{}l}\@author\end{tabular}}%
+\Earticle}
+% ==========================================================
+
+% ==========================================================
+% ◆kantogen (巻頭言)
+\def\ds@kantogen{
+\global\def\@maketitle{\newpage \null
+\hbox{\vbox{
+\begin{flushleft}
+\offinterlineskip
+\vspace*{-\topskip}
+\rule{\textwidth}{0.1mm}
+\vskip6mm{\gona 巻頭言}\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!
+}
+% ==========================================================
+
+% ==========================================================
+% ◆tokushutobira (特集の編集にあたって)
+\def\ds@tokushutobira{
+\global\def\@maketitle{\newpage \null
+\vspace*{-\baselineskip}
+\begin{flushleft}
+\hbox to\textwidth
+{\rule{3\@mojihaba}{1mm}\hbox{\small\bf\hskip1mm 特集●\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
+}
+% ==========================================================
+
+% ==========================================================
+% ◆tobira (巻頭)
+\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
+}
+% ==========================================================
+
+% ==========================================================
+% ◆gakkaikiji (学会記事)
+% 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 日本ソフトウェア科学会} \leaders\hrule height 2mm\hfill}
+\vspace{2mm}
+\hbox to \hsize{\footnotesize\bf 
+Japan Society for Software Science and Technology \hfil}}
+\end{flushleft}\vfil}}}
+}
+% ==========================================================
+
+% ==========================================================
+% ◆ henshu header added by yaski (編集だより)
+\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 日本ソフトウェア科学会} \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 (筆者紹介)
+\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 筆\hspace{2mm}者\hspace{2mm}紹\hspace{2mm}介}
+\end{tabular}
+\vfil}}}
+}
+\def\ds@newsletr{
+\input{newsletr.sty}
+}
+
+% ==========================================================
+% 総目次
+\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 書評用 header here!
+
+
+\mark{{}{}} 
+
+% volpage(ボリューム通しページ)has 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{巻数} \newcounter{号数}
+\newcounter{年数}
+\newcounter{firstpage}
+\newcounter{lastpage}
+
+\def\volNoPp#1#2#3#4{%
+  \ifNotTaikai{%
+  \setcounter{巻数}{#1}\setcounter{号数}{#2}%
+  \setcounter{年数}{1983}\addtocounter{年数}{\value{巻数}}%
+  \setcounter{firstpage}{#3}\setcounter{lastpage}{#4}\setcounter{page}{#3}}}
+
+\def\@oddheadcontents
+ {Vol.~\arabic{巻数}\hskip\@mojihaba No.~\arabic{号数}\hskip\@mojihaba
+  \ifcase\value{号数}\or Jan.\or Apr.\or July\or Oct.\else\fi
+  \hskip.5\@mojihaba \setcounter{年数}{1983}\addtocounter{年数}{\value{巻数}}
+  \arabic{年数}}
+
+\def\@evenheadcontents{コンピュータソフトウェア}
+
+\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{コンピュータソフトウェア}
+  \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{コンピュータソフトウェア}
+  \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{    }
+  \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{    }
+  \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{    }
+  \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{    }
+  \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{表}
+\def\figurename{図}
+
+\if@LaTeX@e
+\ifASCII
+\def\bf{\normalfont\gtfamily\bfseries}
+\fi
+\else
+\def\bf{\protect\pdg\protect\pbf}
+\fi
+
+\def\today{\the\year 年 \the\month 月 \the\day 日}
+
+\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{\:}{\hbox to1zw{\hss:\hss}}
+
+\endinput