%
% $Id: bthesis.sty,v 1.11 2013-01-29 18:46:34+09 shige Exp $
% 新潟工科大学卒業論文スタイルファイル
% 12/28 1998 Ver.0.1
% 01/12 1999 Ver.0.15
% 01/18 1999 Ver.0.2
% 02/02 1999 Ver.0.22
% 12/27 1999 Ver.0.3
% 01/26 2004 Ver.0.32
% 02/05 2007 Ver.0.33
% 01/24 2012 Ver.0.34
% 01/29 2013 Ver.0.35
% bthesis.sty
%
% 12/28 1998
% 1)    bniit.sty (工科大学紀要スタイルファイル) を少し修正したもの。
%       ページスタイル、タイトルレイアウト、参考文献の引用などが工科大
%       紀要に合わせてある。
% 01/12 1999
% 2)    式、図、表のカウンタを section のカウンタに合わせることができる
%       ようにする。
% 3)    目次、日本語のアブストラクトを追加。
% 4)    目次の section にも点線を入れることができるようにする。
% 5)    ドキュメントをスタイルファイルの先頭につける。
% 01/18 1999
% 6)    通常のスタイルの "目次" を消去。
% 7)    タイトルページ、目次を独立したページにできるようにする。
% 02/02 1999
% 8)    subfigure の labeling に対応。
% 12/27 1999
% 9)    latex2e 対応。latex 2.09 では bthesis-0.22.sty を使用のこ
%       と。
% 01/26 2004
% 10)   段落の切れ目が見にくいので、perskip = 1zh にする。
% 01/29 2013
% 11)   現在の紀要スタイルに合わせる。
%
%%%%%%%%%% このスタイルファイルについて %%%%%%%%%%
%
% %%%%% 注意 %%%%%
%
% このスタイルファイルは、工科大卒論用の LaTeX2e 用のスタイルファイルで
% す。LaTeX 2.09 を使う場合は Version 0.3 以前の bthesis.sty をお使いく
% ださい。
% 
% %%%%% 使用法 %%%%%
%
% \documentclass[twoside,11pt,fleqn]{jarticle}
% \usepackage{bthesis}
% \papername{新潟工科大学 卒業論文 平成 11 年 3 月}
% \authors{竹野 茂治}{情報電子工学科 講師}
% \jtitle{単独保存則方程式の周期解の数値解析}%
%   {単独保存則方程式の周期解の数値解析}
% \jabstract{%
%   単独保存則方程式は、衝撃波と呼ばれる不連続関数を解として持つことで
%   知られている非線形の偏微分方程式であり、そのことがこの方程式の数学
%   的な解析を難しくしている。最近、この方程式に周期的な外力を与えた場
%   合に、周期的な解が存在することを、数学的に証明することができた。こ
%   の論文では、その周期解の数値計算による解析と、それにより得られたい
%   くつかの性質を報告する。}
% \recieved{平成 11 年 2 月 5 日}
% \begin{document}
% \maketitle
% \section{はじめに}
% ...
%
% 上のように、package として bthesis を取り込みます。documentclass コマ
% ンドは一応
%   \documentclass[twoside,11pt,fleqn]{jarticle}
% のように指定してください。ゆくゆくはクラスファイルにして
%   \documentclass{bthesis}
% だけで済むようにする予定です。
% 上の例のコマンドを簡単に説明します。
%
% \papername{名前}           : 論文の名前
% \authors{氏名}{所属}       : 著者定義
% \jtitle{タイトル}{小見出し}: 論文タイトルと小見出し
% \jabstract{概要}           : 概要 (あらまし)
% \recieved{日付}            : 日付
% 
% 標準の \maketitle で使用される \author, \date, \title や \abstract な
% どは使用せず上のコマンドを使用して下さい。
%
%
% %%%%% コマンドの概要 %%%%%
%
% %% タイトル等の定義 %%
%
% 1) \papername{[名前]} : 論文名の定義
%     [名前] : 論文の名前
%
%   この [名前] は 1 ページ目のヘッダに "のみ" 使われますので、上の例に
%   あるものをそのまま使えばいいでしょう。
%
% 2) \authors{[氏名]}{[所属]} : 著者の定義
%     [氏名] : 著者名
%     [所属] : 著者の所属
%
%   著者の所属はフッタに表示されます。共著者がいる場合は
%     \authors{[氏名 1]}{[所属 1]}
%     \authors{[氏名 2]}{[所属 2]}
%     ...
%   のように書いていきます。\author は使用しないで下さい。
%
% 3) \jtitle{[タイトル]}{[小見出し]} : 論文タイトルの定義
%     [タイトル] : 論文タイトル
%     [小見出し] : 論文の小見出し
%   
%   [小見出し] は論文 3 ページ目以降の奇数ページのヘッダに使われるタイ
%   トルです。論文タイトルが短ければそれと同じで構いませんが、長ければ
%   それをやや短く省略したものを使用します。\title は使用しないで下さい。
%    
% 4) \jabstract{[概要]} : 概要
%      [概要] : 論文の概要 (あらまし)
%
%    論文の概要を書きます。複数行であっても構いません。\abstract は使用
%    しないで下さい。
%
% 5) \recieved{[日付]} : 日付
%      [日付] : 論文を受け付けた日付
%
%    論文提出日を入れます。\date は使用しないで下さい。
%
% %% スタイル変更コマンド %%
%
% 1) \numadjusttosection : 式番号などを section に合わせる
%
%    プリアンブルで単に
%      \numadjusttosection
%    と書きます。これを指定すると式の番号が (1) から (1.1) のような形、
%    すなわち
%      "[section 番号].[式番号]"
%    の形式のものになります。図、表の番号もこの形式になります。
% 
% 2) \tocsectiontodot : 目次の section にも点線を出力する
%
%    プリアンブルで単に
%      \tocsectiontodot
%    と書きます。これを指定すると、自動的に出力される目次の section の
%    所にも点線が入ります。指定しなければ subsection 以下にのみ点線が入
%    ります。つまり
%    (i) \tocsectiontodot 指定なし:
%
%      1. 微分                  1
%      1.1 微分の定義 ........  1
%      1.2 微分の応用 ........  5
%
%      2. 積分                 10
%      2.1 積分の定義 ........ 10
%      2.1 積分の応用 ........ 15
%
%    (ii) \tocsectiontodot 指定あり:
%      1. 微分 ...............  1
%      1.1 微分の定義 ........  1
%      1.2 微分の応用 ........  5
%      2. 積分 ............... 10
%      2.1 積分の定義 ........ 10
%      2.1 積分の応用 ........ 15
%
%    のようになります。subsection 以下をあまり使わない場合に指定すると
%    いいでしょう。
%
% 3) \largearticlestyle : タイトル、目次、概要を独立したページにする
%
%    プリアンブルで、\authors などのタイトル用のコマンドの定義の前に
%      \largearticlestyle
%    と書きます。これにより、タイトルページ、目次、概要にそれぞれ単独の
%    ページが使用されるようになります。本文の部分は変わりません。なお、
%    \authors などより後に定義するとおかしなことになるので、必ずそれよ
%    り前で使用して下さい。
%
%
%%%%%%%%%% ページサイズ %%%%%%%%%%
%
% ページサイズの定義
%
\setlength{\textwidth}{40zw}
\setlength{\textheight}{38\baselineskip}
\setlength{\oddsidemargin}{4.6mm}
\setlength{\evensidemargin}{4.6mm}
\setlength{\topmargin}{0mm}
\setlength{\headheight}{10mm}
\setlength{\parskip}{1zh}
%
% 微調整
\addtolength{\textheight}{8mm}
\addtolength{\topmargin}{-15mm}
\addtolength{\headsep}{8mm}
\addtolength{\textwidth}{-2mm}
\addtolength{\oddsidemargin}{1mm}
\addtolength{\evensidemargin}{1mm}
\addtolength{\footskip}{9mm}
% 
% 約 1mm 程余裕を持って
%
%
%%%%%%%%%% ページスタイル (heading) %%%%%%%%%%
%
% 偶数ページ: 著者
% 奇数ページ: 1 page => 卒業論文, 3 page~ => 略表題
%
% \shorttitle{title}: 3 page~ 目以降の奇数ページのヘッダに出る略表題
% \papername{name}: 1 page 目のヘッダに出る論文の名前
% 
\gdef\@pageoddheader{}
\gdef\@pageevenheader{}
\gdef\@papername{}
\def\ps@bthesis{%
  \let\@mkboth=\@gobbletwo
  \def\@oddhead{\hfil\@pageoddheader\hfil}
  \def\@evenhead{\hfil\@pageevenheader\hfil}
  \def\@oddfoot{\hfil --- \thepage\ ---\hfil}
  \def\@evenfoot{\hfil --- \thepage\ ---\hfil}
}
\def\shorttitle#1{%
  \gdef\@pageoddheader{\ifnum\c@page=1\@papername\else#1\fi}}
\def\papername#1{\gdef\@papername{#1}}

%\pagestyle{bthesis}

%%%%%%%%%% reference %%%%%%%%%%
%
% 1) \cite の表示を [3,4] から 3),4) (上付き) に変更
% 2) 参考文献の表示を [3] から 3) に変更
%   ==> 戻す (Ver 0.35)
%
% in latex.tex
\def\@citex[#1]#2{\if@filesw\immediate\write\@auxout{\string\citation{#2}}\fi
  \def\@citea{}\@cite{\@for\@citeb:=#2\do
    {\@citea\def\@citea{,\penalty\@m\,}\@ifundefined
      {b@\@citeb}{{\bf ?}\@warning
      {Citation `\@citeb' on page \thepage \space undefined}}%
    [\hbox{\csname b@\@citeb\endcsname}]}}{#1}}
% 
% 以下は奥村さんよりsu
% 注: \@cite は latex.tex で定義されているが、\thebibliography は 
%     latex.tex ではなく、jarticle.sty で定義されている 
%
\def\@cite#1#2{$^{\hbox{\scriptsize#1\if@tempswa , #2\fi}}$}
%\def\thebibliography#1{\section*{参考文献\markboth
%    {参 考 文 献}{参 考 文 献}}\list
%  {\arabic{enumi})}{\settowidth\labelwidth{[#1]}\leftmargin\labelwidth
%    \advance\leftmargin\labelsep
%    \usecounter{enumi}}
%  \def\newblock{\hskip .11em plus .33em minus .07em}
%  \sloppy
%  \sfcode`\.=1000\relax}
%
% \numadjusttosection: 式、図、表の番号を section に合わせる
%
\def\numadjusttosection{%
  \@addtoreset{equation}{section}
  \@addtoreset{table}{section}
  \@addtoreset{figure}{section}
  \def\theequation{\thesection.\arabic{equation}}
  \def\thetable{\thesection.\arabic{table}}
  \def\thefigure{\thesection.\arabic{figure}}
  \let\p@subfigure\thefigure
}

%%%%%%%%%% 図、表 %%%%%%%%%%
% 以下はスタイルファイル活用法 7 より。
% in jarticle.sty
%
% 図 -> Fig.
% 表 -> Table
% Fig. の 2 行目のキャプションにインデントをつける
%
\def\fnum@figure{Fig. \thefigure}
\def\fnum@table{Table \thetable}
\long\def\@makecaption#1#2{
 \vskip 10pt 
 \setbox\@tempboxa\hbox{#1\ \ }%
 \@tempdima\hsize\advance\@tempdima-\wd\@tempboxa
 \setbox\@tempboxa\hbox{#1\ \ #2}
 \ifdim \wd\@tempboxa <\hsize
 \hfil #1\ \ #2\hfil\par
 \else
 \hbox to\hsize{\hfil #1\ \ \parbox[t]\@tempdima{#2}\hfill}%
 \fi}

%%%%%%%%%% セクション %%%%%%%%%%
%
% 章の見出しをセンタリングして少し小さくする
%
% スタイルファイル活用法 (3) より
% 注: これは latex.tex ではなく、jart@pt.sty で定義されている 
%
\def\section{\@startsection {section}{1}{\z@}{3.5ex plus 1ex minus 
 .2ex}{2.3ex plus .2ex}{\centering\large\bf}}

%%%%%%%%%% 目次 %%%%%%%%%%
%
% \tocsectiontodot:  目次の section も点を打つようにする
%

\def\tocsectiontodot{%
% 現在の jarticle のものを使う
  \def\l@section##1##2{\addpenalty{\@secpenalty} 
    \ifnum \c@tocdepth >\z@
    \addpenalty{\@secpenalty}%
    \addvspace{1.0em \@plus\p@}%
    \begingroup
    \parindent\z@ \rightskip\@pnumwidth
    \parfillskip-\rightskip
    \leavevmode\bfseries
    \setlength\@lnumwidth{1.5em}%
    \advance\leftskip\@lnumwidth \hskip-\leftskip
    %##1\nobreak\hfil\nobreak\hbox to\@pnumwidth{\hss##2}\par
    %##1\nobreak\dotfill\nobreak\hbox to\@pnumwidth{\hss##2}\par
    % 自前の点線
    ##1\nobreak
    \leaders\hbox{$\m@th \mkern \@dotsep mu.\mkern \@dotsep mu$}\hfill
    \nobreak\hbox to\@pnumwidth{\hss##2}\par
    \endgroup\fi}}

%
% 下のマクロは \@starttoc{toc} (latex.tex) を展開して、\@input{} の部分
% を書き換えたもの。() の部分がないと、quote 環境内に何もないというエラ
% ーになる。\tableofcontents を使ってもいいが、そうすると "目次" が入っ
% てしまう。
% 
\newread\@mystream
\def\@putcontents{%
   \begingroup
    \makeatletter
    % \@input{\jobname.toc}
    \openin\@mystream=\jobname.toc
    \ifeof\@mystream{(ここには目次が入ります。再コンパイルして下さい。)}
    \typeout{No file \jobname.toc}
    \else\closein\@mystream\relax\@@input\jobname.toc\fi
    %
    \if@filesw\newwrite\tf@toc\openout\tf@toc\jobname.toc\relax\fi
    \global\@nobreakfalse
  \endgroup}
% \def\@putcontents{\@starttoc{toc}}
% \def\@putcontents{\tableofcontents}
%
% 参考文献も目次に追加
%
\def\thebibliography#1{%
  \if@largearticlestyle\newpage\fi
  \section*{参考文献}%
  \addcontentsline{toc}{section}{\protect\numberline{}{参考文献}}%
  \list
 {[\arabic{enumi}]}{\settowidth\labelwidth{[#1]}\leftmargin\labelwidth
 \advance\leftmargin\labelsep
 \usecounter{enumi}}
 \def\newblock{\hskip .11em plus .33em minus .07em}
 \sloppy
 \sfcode`\.=1000\relax}

%%%%%%%%%% 著者定義 %%%%%%%%%%
%
% 使用法: (preamble)
%
%   \authors{氏名}{所属学科 職名}
%
%
% 1)    共著者がいる場合も考えてある。その場合は
%         \authors{著者1}{belonging 1}
%         \authors{著者2}{belonging 2}
%         ...
%       としていけばいい。
% 2)    今の所著者と脚注は一対一。
%
% \belongsymbol{counter} ==> *, **, ***, ...
%
\def\@belongsymbol#1{\ifcase#1\or *\or **\or ***\or **** \or ***** 
  \or ******\else\@ctrerr\fi\relax}
\def\belongsymbol#1{\@belongsymbol{\@nameuse{c@#1}}}
\gdef\@jauthors{}
\gdef\@belongs{}
\gdef\@jseparator{}
\newcounter{cauthors}
\setcounter{cauthors}{0}
\gdef\@mkblngsym{{$^{\belongsymbol{cauthors}}$}}
\gdef\@pagelsep{}
%debug
%\tracingmacros=1
\newlength{\authorboxw}
\setlength{\authorboxw}{0.45\textwidth}
%\def\oneauthor#1#2{\vbox{\hbox{#2}\hbox{#1}}}
\def\oneauthor#1#2{\parbox{\authorboxw}{\begin{center}#2\\#1\end{center}}}
\let\@oneauthor=\relax

\def\authors#1#2{
  \if@largearticlestyle
    \stepcounter{cauthors}
    \ifnum\thecauthors>1
      \edef\@jseparator{ }
      \edef\@pagelsep{$\cdot$}
    \fi
    \begingroup
    \def\protect{\noexpand\protect\noexpand}
    \xdef\@jauthors{\@jauthors\@jseparator\@oneauthor{#1}{#2}}
    \xdef\@pageevenheader{\@pageevenheader\@pagelsep\mbox{#1}}
    \endgroup
  \else
    \stepcounter{cauthors}
    \ifnum\thecauthors>1
      \edef\@jseparator{,\ }
      \edef\@pagelsep{$\cdot$}
    \fi
    \begingroup
    \def\protect{\noexpand\protect\noexpand}
    % \xdef\@jauthors{\@jauthors\@jseparator#1$^{\protect\footnotemark}$}
    \xdef\@jauthors{\@jauthors\@jseparator\mbox{#1}\@mkblngsym}
    \xdef\@belongs{\@belongs\protect\footnotetext[\thecauthors]{#2}}
    \xdef\@pageevenheader{\@pageevenheader\@pagelsep\mbox{#1}}
    \endgroup
  \fi
}


%%%%%%%%%% タイトルデザイン %%%%%%%%%%
%
% \jtitle{タイトル}{小見出し}: 小見出しは 3 ページ目以降の奇数ページの
%                              ヘッダとして使われる
% \recieved{日付}: 日付は「平成○年△月×日」
% \jabstract{概要}: 概要 (abstract)
% (02/05 2007: 改段落も使えるように改良)
%
% \maketitle
% ==> 細かい長さについては後回し
%
\def\jtitle#1#2{\gdef\@jtitle{#1}\shorttitle{#2}}
\long\def\jabstract#1{\gdef\@jabstract{#1}}
\def\recieved#1{\gdef\@recieved{#1}}
%

\newif\if@largearticlestyle\@largearticlestylefalse
\def\largearticlestyle{\@largearticlestyletrue}

\def\@maketitlei{\par
  \pagestyle{bthesis}
  \begingroup
  \vskip 1em
  \begin{center}\LARGE\@jtitle\end{center}
  %\vskip .5em
  \begin{center}\Large\@jauthors\end{center}
  \def\thefootnote{\belongsymbol{footnote}}
  \@belongs
  \vskip .5em
  \begin{center}\scriptsize (\@recieved 受理)\end{center}
  \vskip .5em
  \begin{quote}\@jabstract\end{quote}
  \vskip .5em
  \begin{quote}\@putcontents\end{quote}
  \endgroup
  \setcounter{footnote}{0}
  \let\maketitle\relax
  \gdef\@jtitle{}\gdef\@jauthors{}\gdef\@recieved{}\gdef\@belongs{}
  \gdef\@jabstract{}
}

\def\@maketitleii{
  \begin{titlepage}
    \thispagestyle{empty}
    \mbox{}
    \vskip 6zh
    \begin{center}\Huge\@jtitle\end{center}    
    \vskip 4zh
    \begin{center}\Large\@recieved\end{center}
    \vskip 2zh
    \let\@oneauthor\oneauthor
    \begin{center}\Large\@jauthors\end{center}
    \vfil
    \newpage
    % 目次
    \thispagestyle{plain}\pagenumbering{roman}
    \tableofcontents
    \newpage
    \vskip 6zh
    \begin{center}\large 概要\end{center}
    \vskip 2zh
    \begin{quote}\@jabstract\end{quote}
    \vfil
    \newpage
  \end{titlepage}
  \pagestyle{bthesis}\pagenumbering{arabic}\setcounter{page}{1}
  \let\maketitle\relax
  \gdef\@jtitle{}\gdef\@jauthors{}\gdef\@recieved{}\gdef\@belongs{}
  \gdef\@jabstract{}
}

\def\maketitle{\if@largearticlestyle\@maketitleii\else\@maketitlei\fi}

\gdef\@jtitle{}
\gdef\@jauthors{}
\gdef\@recieved{\today}
\gdef\@belongs{}
\gdef\@jabstract{}

%%%%%%%%%% test %%%%%%%%%%
%
% \def\putauthors{
%   \def\thefootnote{\belongsymbol{footnote}}
%   \vskip 1em
%   \begin{center}\Large\@jauthors\end{center}
%   \@belongs
%   % \markboth{\@papername}
%   % \markright{\@papername}
% }
