卒論をTeXフォーマットなしから書くためのtips

卒論の時期ですね.僕も他人事ではなく絶賛卒論中です.
理系の人はTeXで論文を書くっていうのが割とデファクトスタンダードだと思うんですが,うちの学部は半・理系(半・文系ともいう)なのでそういう常識はありません.なので,基本的にWordで書くことを想定されているんですが,数式とかWordで書くの面倒だし,意外とレイアウト調整もめんどくさいんでTeXで書きたいなと.それで,自分でTeXテンプレートを作ってみました.初めてTeXのスタイルをいじったので,「修正→コンパイルDVIOUT」みたいなシコウサクゴを繰り返して今日なんとか完成したので,同じような境遇の人の役に立てばと思いメモをします.

テンプレートファイルをダウンロードする

卒論用のテンプレートファイルがいろんなところで公開されています.

これ以外にも,各大学・各学部で公開しているものがあるので,求める形に合ったテンプレートをダウンロードして使うといいですね.今回は,リスト一番上の物理のかぎしっぽで公開されている卒論フォーマットを使います.このフォーマットでは,jsbookというクラスファイルを必要とします.もし,jsbookを持っていなかったらpLaTeX2e 新ドキュメントクラスにてダウンロードしてください.

想定

今回は,A4,サイズ10pt,段組なし,偶数奇数ページともに同じ設定とします.要するに,

\documentclass[a4paper,10pt,onecolumn,oneside,openany]{jsbook}

です.これらの設定についての参考リンクは以下のとおりです.

余白指定する

ここからは,ほとんどjsbookクラスでの設定についてです.
僕の学部の余白の設定は,「左37mm, 右18mm, 上下30mm」だったので,そうなるように設定しました.あと,今回は偶数ページ・奇数ページ関係ないので,奇数(odd)ページの設定のみをしています.

\setlength{\textwidth}{155truemm}      % テキスト幅: 210-(37+18)=155mm
\setlength{\fullwidth}{\textwidth}     % ページ全体の幅
\setlength{\oddsidemargin}{37truemm}   % 左余白
\addtolength{\oddsidemargin}{-1truein} % 左位置デフォルトから-1inch
\setlength{\topmargin}{30truemm}       % 上余白
\setlength{\textheight}{237truemm}     % テキスト高さ: 297-(30+30)=237mm
\addtolength{\topmargin}{-1truein}     % 上位置デフォルトから-1inch

Wordとかなら余白の設定って楽チンなんですけど,TeXでやるとめんどくさいんですよね.かなり試行錯誤でいろいろやりましたが,これが一番良さそうです.あと"truemm"とは,サイズ10ptにおける10mmという意味です.単位の前に"true"と付けとけば嬉しいことがあるかもしれませんw 参考にしたサイトをリストアップしておきます.

あと,geometry.styというのを使うともっと簡単にできるという情報が結構ありました.でも,これを使ってみると,DVIを見ると上手くいっているのですが,PDFに変えるとその設定が飛んじゃうので,今回はこれを使うのは諦めました.でも,もしgeometry.styを使っていたらこんな風に使います.

\usepackage[left=37mm, head=30mm, foot=30mm, right=18mm]{geometry}

こっちの方がすごくシンプルで分かりやすいんですけどねぇ.一応参考になるリンクを.

文字数・行数を指定する

いろいろ試してみたんですが,なかなかうまくいかない.うちの学部の指定では「文字数40字/行程度,行数32行程度」となっていますので,ちょっといい加減にしてしまいました.結論から言うと,行数は指定できましたが,文字数は上手く指定できませんでした.でもまぁ,紹介させてください...
行数指定は,http://nile.slis.tsukuba.ac.jp/~yuka/memo/latex.html#linesiteiのやり方がそのまま使えますので,こちらを引用させてもらいます.\begin{document}の前に

% 本文の行数と桁数を指定出来るように
\def\linesparpage#1{\baselineskip=\textheight
   \divide\baselineskip by #1}
\def\kcharparline#1{%
   \ifx\xkanjiskip\undefined%
   % NTT jTeX用
   \jintercharskip 0mm plus 0.2mm minus 0.2mm
   \else
   % ASCII pTex用
   \xkanjiskip 0mm plus 0.2mm minus 0.2mm
   \fi
   \settowidth{\textwidth}{}%
   \multiply\textwidth by #1}

と書いてから,\begin{document}の後,すぐ下に

% 一ページを32行に
\linesparpage{32}

これで行間が開いて,行数が32行になります.参考リンクは

表紙

表紙のスタイルは大学毎に形式が違うと思うので,ダウンロードしたテンプレートファイルのままは使えないと思います.オリジナルの表紙を作成する方法は以下の3つがあると思います.

  • クラスファイル(jsbook.cls)を書き換えちゃう
  • \begin{titlepage}〜\end{titlepage}で表紙を作る
  • Wordで表紙だけ作って,後からくっつける

クラスファイルを書き換えるのはしんどいですし,Wordで表紙だけ作るってのも何となくカッコ悪いので,ここではtitlepageを改変します.もともとのテンプレートファイルでは,\maketitleを使っているのですが,今回はこれを使わないのでコメントアウトします.それから,\begin{document}の後に

\begin{titlepage}
\begin{flushright}
{\large
指導教員(主査):〇〇〇〇 教授 \\ % 主査
副査:□□□□ 教授                % 副査
}
\end{flushright}
\begin{center}
\vspace*{150truept}
{\huge タイトル}\\ % タイトル
\vspace{10truept}
{\Large ―サブタイトル―}\\ % サブタイトル(なければコメントアウト)
\vspace{120truept}
{\huge 学籍番号 ********}\\ % 学籍番号
\vspace{50truept}
{\huge 著者名}\\ % 著者
\vspace{50truept}
{\huge \today}\\ % 提出日
\end{center}
\end{titlepage}

という感じで書きます.jsbook.clsを変更するよりは断然こっちの方が簡単なんで,こちらの方法で表紙を作ることをおすすめします.参考になったリンクは

完成品

以上の内容を反映させた結果の完成品を最後に紹介します.まず,本体の方から.

\documentclass[a4paper,10pt,oneside,openany]{jsbook}
%
\usepackage{amsmath,amssymb}
\usepackage{bm}
\usepackage{epsbox}
\usepackage{graphicx}
\usepackage{verbatim}
\usepackage{wrapfig}
\usepackage{ascmac}
\usepackage{makeidx}
%\usepackage[left=37mm, head=30mm, foot=30mm, right=18mm]{geometry}
%
%
\makeindex
%%% 余白・文字数調整(左37mm, 右18mm, 上下共30mm, 文字数約40字/行, 行数約32行)
\setlength{\textwidth}{155truemm}      % テキスト幅: 210-(37+18)=155mm
\setlength{\fullwidth}{\textwidth}     % ページ全体の幅
\setlength{\oddsidemargin}{37truemm}   % 左余白
\addtolength{\oddsidemargin}{-1truein} % 左位置デフォルトから-1inch
\setlength{\topmargin}{30truemm}       % 上余白
\setlength{\textheight}{237truemm}     % テキスト高さ: 297-(30+30)=237mm
\addtolength{\topmargin}{-1truein}     % 上位置デフォルトから-1inch
\makeatother
%
% 本文の行数と桁数を指定出来るように
\def\linesparpage#1{\baselineskip=\textheight
   \divide\baselineskip by #1}
\def\kcharparline#1{%
   \ifx\xkanjiskip\undefined%
   % NTT jTeX用
   \jintercharskip 0mm plus 0.2mm minus 0.2mm
   \else
   % ASCII pTex用
   \xkanjiskip 0mm plus 0.2mm minus 0.2mm
   \fi
   \settowidth{\textwidth}{}%
   \multiply\textwidth by #1}
%
%
\begin{document}
\linesparpage{32} % 一ページを32行に(効果ない・・・)
\kcharparline{40} % 一行を40字に
%%% タイトル設定
\include{title}
%
%
%
%
\frontmatter
%
%%% 論文要旨
\addcontentsline{toc}{chapter}{論文要旨}
\include{abstract}
%
%%% 目次
\tableofcontents
%
%
\mainmatter
%
%%% 本文ここから
\include{chap1} % 1章
\include{chap2} % 2章
%
%
%%% 付録
\appendix
\include{appendixA}
\include{appendixB}
%
%%% 謝辞
\chapter*{謝辞}
\addcontentsline{toc}{chapter}{謝辞}
%
%
%
%%% 参考文献
\bibliographystyle{sieicej} % 電子情報通信学会の論文誌スタイルになってる
\bibliography{myrefs}
%
%
\newpage
\printindex
%
%
\end{document}

説明不足でしたが,参考文献フォーマットもどこからかダウンロードして使うと便利かもしれません.僕は,所属する学会の関係で,電子情報通信学会の論文誌フォーマットを使わせていただきました.

次に,本体でインクルードする表紙のtexファイル.

\begin{titlepage}
\begin{flushright}
{\large
指導教員(主査):〇〇〇〇 教授 \\ % 主査
副査:□□□□ 教授              % 副査
}
\end{flushright}
\begin{center}
\vspace*{150truept}
{\huge タイトル}\\ % タイトル
\vspace{10truept}
{\Large ―サブタイトル―}\\ % サブタイトル(なければコメントアウト)
\vspace{120truept}
{\huge 学籍番号 ****001}\\ % 学籍番号
\vspace{50truept}
{\huge 著者名}\\ % 著者
\vspace{50truept}
{\huge 平成**年*月**日}\\ % 提出日
\end{center}
\end{titlepage}

これらをコンパイルして,実際にPDFにするとこのようなレイアウトになります.ご参考までに.