学位論文のためのTeXサンプル

**この記事を読むとできるようになること**
`（見た目だけは）整った学位論文を書ける！`

いわゆる理工系の大学を卒業するには，多くの場合「学位論文」を提出する必要があります（提出後に迫り来る発表のディフェンス…）．

卒論などを書くツールとしては，Microsoft Word や TeX などがありますが，
多くの人はTeXを用いて執筆すると思います．

学位論文にはある程度のお作法があり，

- 表紙
- 概要 (abstract)
- 目次 (contents)
- 本文（目的，手法，結果，議論など）
- 謝辞 (acknowledgement)
- 参考文献 (reference)

は最低限含めなければいけません．

もちろん，指定のフォーマットがあればそれを使用してください．
指定フォーマットがない場合，一から自分でTeXファイルを組むのは面倒ですし，
体裁面で苦労して研究時間を削ってしまうのはもったいないです．

ということで，私が使っている学位論文用TeXの中身をここに置きます．
時間があれば，より詳しく追記しようと思います．

- 環境
    - macOS mojave 10.14.6
    - TeXShop 4.44


# tex ファイルを分割して書いてみよう
まず，学位論文は普通のレポートに比べるととても長くなります．
なので，全てを1つの.tex ファイルに書くと
修正するときに該当箇所を探すだけで非常に疲れます
（TeXShop ならば「タグ」を使えば，望みのセクションにすぐ飛べますが）．
また，画像をたくさん貼り付けることになるので，いっぺんにコンパイルすると時間がかかって
（論文提出前の精神状態においては特に）ストレスになり得ます．
ですので，例えば「章 (chapter)ごとに別の.tex ファイルに書いて，それらを統合する」
やり方がオススメです．

ここまで書いておいてなんですが，私はchapterごとに分けて書いているだけで，
個別コンパイルできるようになっていません（ファイルをまたぐ参照に失敗しています）．

以下に紹介するのは，texファイルを分割するだけで，個別コンパイルには対応していない方法です．

# マスターファイル
まず，設定などを書くマスターファイルが必要です．
pdfを出力したい時は，これをコンパイルすればOKです．
必要なパッケージなどをプリアンブルに記入し，``¥input{}``で本文を書いた.texファイルを読み込みます．
それぞれのコマンドについて詳細な説明は省くので，各自でググってください．
英文用になっていますので，必要に応じて和文用にしてください．

```TeX:master.tex
%学位論文くらいの長さなら，`book` が良いでしょう
¥documentclass[12pt,report,a4paper,oneside,english]{book}
¥pagestyle{plain}
¥usepackage{参考文献を出力するのに必要なコマンド集をinputする .sty ファイル}%＊1
¥usepackage{times}
¥usepackage{natbib}
¥setcounter{tocdepth}{3}
¥bibliographystyle{参考文献のスタイルを書いた.bst ファイル}%*2
% 自分好みに章名や図表の表記を変える
¥renewcommand{¥appendixname}{Appendix}
¥renewcommand{¥figurename}{Fig.}
¥renewcommand{¥tablename}{Table~}
¥renewcommand{¥bibname}{References}
% 数式などの参照を便利にするコマンドを自分で定義すると楽
¥newcommand{¥pref}[1]{(¥ref{#1})}
¥newcommand{¥Secref}[1]{Section~¥ref{#1}}
¥newcommand{¥Eqref}[1]{Eq.~(¥ref{#1})}
¥newcommand{¥Eqpref}[1]{(Eq.~¥ref{#1})}
¥newcommand{¥Figref}[1]{Fig.~¥ref{#1}}
¥newcommand{¥Tabref}[1]{Table~¥ref{#1}}
% ハイパーリンク機能（地味に便利です）
¥usepackage[dvipdfmx]{hyperref}
¥usepackage{pxjahyper}
¥hypersetup{
setpagesize=false,
 colorlinks=true,
 linkcolor=blue,
 citecolor=blue,
 filecolor=blue,
 urlcolor=blue,
}
¥usepackage{ascmac,amsmath,amssymb,mathtools,siunitx}
¥usepackage{bm}
¥usepackage[version=3]{mhchem}
¥usepackage[dvipdfmx]{graphicx}
¥usepackage{array,float,textcomp,ulem}
¥usepackage{fancybox,multicol,longtable,tabularx,url}
¥usepackage[hang,small,bf]{caption}
¥usepackage[subrefformat=parens]{subcaption}
¥captionsetup{compatibility=false}
¥makeatletter
¥makeatother

% よく使う記号類の，自分好みの定義
¥def¥degree{^{¥circ}}
¥def¥Vec#1{¥mbox{¥boldmath $#1$}}
¥def¥p{¥partial }
¥def¥d{{¥rm d}}
% 和のシグマは普通に書くと小さくてカッコ悪いので，¥displaystyle を使うとよい
¥newcommand{¥dsum}{¥displaystyle¥sum}

¥begin{document}
%%%%%% 表紙の設定　%%%%%（この辺はお好みで変えてください）
¥begin{titlepage}
¥begin{center}
¥vspace*{30truept}
{¥LARGE Master's Thesis}¥¥
¥vspace{40truept}
{¥huge¥bf タイトル}¥¥
¥vspace*{60truept}
{¥Large 学籍番号}¥¥
¥vspace{10truept}
{¥LARGE 名前}¥¥
¥vspace{20truept}
{¥Large 所属}¥¥
¥vspace{30truept}
{¥Large 指導教員}¥¥
¥vspace{40truept}
{¥Large 提出日}
¥end{center}
¥end{titlepage}
%%%%%%%%%%%%%%%%%%%%%%

%%%%% ここから本文 %%%%%
¥mainmatter
¥input{1_abstract.tex}
¥clearpage
% 目次を出力
¥tableofcontents
¥clearpage
¥input{2_introduction.tex}
¥clearpage
¥input{3_method.tex}
¥clearpage
¥input{4_result.tex}
¥clearpage
¥input{5_discussion}
¥clearpage
¥input{6_summary.tex}
¥clearpage
¥input{7_acknowledgement.tex}
¥clearpage
%%%%% 付録 %%%%%
¥appendix
¥setcounter{equation}{0}
¥def¥theequation{A.¥arabic{section}.¥arabic{equation}}
¥setcounter{figure}{0}
¥def¥thefigure{A.¥arabic{section}.¥arabic{figure}}
¥input{8_appendix}
¥clearpage
%%%%% 参考文献 %%%%%
¥backmatter
¥bibliography{.bib のパス}%*3
¥end{document}
```
*1`¥usepackage{参考文献を出力するのに必要なコマンド集をinputする .sty ファイル}`
*2`¥bibliographystyle{参考文献のスタイルを書いた.bst ファイル}`
*3`¥bibliography{.bib のパス}`

については，最後の**「参考文献のファイル」**で述べます．

# 本文のファイル

master.tex の`\mainmatter` 以下で，本文を書いた.tex ファイルを読み込んでいます．
例えば，論文概要を次のように書きます．

```TeX:1_abstract.tex
¥chapter*{Abstract}

研究背景

先行研究の問題点

・・・
```

（最初の行の`*`は，章番号をつけないようにするためのものです）
これで，master.texに`¥input{1_abstract.tex}`と書いてコンパイルすると，
`1_abstract.tex`の中身が出力されます．

いちいちmaster.tex を開いてコンパイルするのがめんどくさい場合は，
各.tex ファイルの先頭に `%!TEX root = master.tex(のパス)` と書くと，
子ファイルをタイプセットすることでmaster.tex がタイプセットされます．

他の章も同様に.texファイルに内容を書きます．

# 参考文献のファイル
## BibTeXの使い方
参考文献の入れ方を紹介します．

論文を1つ1つ手打ちするのでもいいですが，それだとめんどくさすぎるので，便利なツールを使いましょう．
**Bibdesk**を使うと，HPから引っ張ってきた論文情報をまとめて学位論文に出力できます．

天文系の論文を例に紹介します．
[ADS](https://ui.adsabs.harvard.edu)で論文を検索すると，左に''Export Citation''というタブが出てきます．
これをクリックすると，BibTeX用の情報が出てくるので，これをまるっとコピー．
<img width="1183" alt="スクリーンショット 2019-11-15 22.03.41.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/403437/de104bcb-6d70-1918-8c0a-059808126a96.png">

Bibdesk上で 貼り付け（Command + V） すると，論文情報が追加されます．
<img width="1009" alt="スクリーンショット 2019-11-15 22.04.51.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/403437/d1f54781-0813-2d2a-f071-9da7141e185a.png">

`Cite Key` はTeXで論文を引用するときに使うキーワードになるので，自分でわかるように適当に編集すると良いです．

この.bibファイルを，適当なディレクトリに保存します．
そのディレクトリを，マスターファイルの*3`¥bibliography{.bib のパス}`に書きます．
パスを書くときに，拡張子.bib は書く必要がないです．

本文中で引用する際には，`¥cite{CiteKey}`などとします．
${\rm (hogehoge, 2020; Draemon \ et \ al., 2112)}$
のように複数列挙する場合など，オプションはググってください．

**BibTeXを使う場合は，複数回のコンパイルが必要です．**
1. 普通にコンパイル
2. Command + Shift + B でBibTeXのコンパイルをする
3. 普通にコンパイル

とすると，参考文献が本文に引用されると同時に，論文の最後に出力されます．

## 参考文献の表示形式
さて，先ほどコピー＆ペースとした論文情報には，まだ手元の環境で未定義のコマンドがあります．
例えば，`Jornal` 欄の`\apj` などは，論文誌名を表すコマンドです．
これらを定義したファイルを用意しないと，エラーになってしまいます．
天文系の論文誌に関するコマンドは，[ここのページ](http://astro.dur.ac.uk/~cole/Intro_LaTeX_PG/MNpapers/Angulo08/aas_macros.sty)にあります．
これをコピーして，適用な名前で保存しましょう（例えば journal.sty ）．
そのパスを，マスターファイルの
*1`¥usepackage{参考文献を出力するのに必要なコマンド集をinputする .sty ファイル}`
に書きます（これも拡張子.styはいらない）．

次に，論文末尾に表示する際の表示形式を指定しましょう．
天文系であれば，[The AASTeX Package for Manuscript Preparation](https://journals.aas.org/aastex-package-for-manuscript-preparation/)にあるパッケージなどが使えます．
ダウンロードすると，aasjournal.bst というファイルがあるので，これを適当なディレクトリに置いておきましょう．
パスを，マスターファイルの
*2`¥bibliographystyle{参考文献のスタイルを書いた.bst ファイル}`
に書きます（これも拡張子.bstはいらない）．

以上の準備をすると，綺麗に参考文献が表示されます．