計数工学科卒論LaTeXテンプレートをOverleafでコンパイルする


当記事は 物工/計数 Advent Calendar 2019 の3日目です.

概要

東大工学部計数工学科の卒業論文では学科から推奨のLaTeXテンプレートが配布されています.
Overleafで書こうとしている人がいると思いますがコンパイルを通すのにほんの少しだけ設定が必要なので書いていきます.
本当は自分の設定ファイルを全部GitHubか何かにあげて配布したいのですがいじって二次配布とかになるとちょっとアレなので手続きを書きます.
基本的にブラウザ上で動くものなのでOSには依らないと思います.Overleafでなく手元で作業したい人はこちら1に詳しく方法が書いてあります.

ちなみに本記事にしたがって(分割コンパイルを除く)作業をしたものを学科同期がテンプレートとしてここにUPしてくれました.
Overleafですぐ使えます.

ダウンロード

数理
https://www.keisu.t.u-tokyo.ac.jp/research/latex/

システム
https://www.keisu.t.u-tokyo.ac.jp/research/latex-system

上記URLの上の方にあるテンプレートをダウンロードします.

解凍したファイルのうち実際に使用するのは,数理の場合 skeleton.texsuribt.cls だけ,システムの場合 skeleton_system_B_Japanese.texsystemB.clsだけだと思って良いです.

以下,数理コースのテンプレートを例にとって説明しますが,システムの場合も skeleton.texskeleton_system_B_Japanese.texに, suribt.clssystemB.clsに読みかえれば大丈夫です(動作検証済).

文字コード変更

文字コードがShift-JISになっていてこのままだと日本語が文字化けする,また\と¥の使いわけでバグるので,学科側で直して配布してくれれば良いのにと思いながらUTF-8に文字コードを変換します.

方法はなんでも良いですが,例えばnkfコマンドなんかが使えます.
インストールは適当に行なってください.

nkf_shell
nkf -w -S --overwrite skeleton.tex
nkf -w -S --overwrite suribt.cls

他にもメモ帳で変換する方法とかWeb上の変換ツールとかあるみたいなので適当に.

Overleafでコンパイルまで

Overleafにログインしたら New Project > Blank Project で適当な名前でProjectoを作ります(自分は grad_thesis という名前にしました).

自動作成されているmain.texはいらないのでDeleteして,文字コードを変換したskeleton.texsuribt.clsをアップロードしてください.

ここでコンパイルすると大量のエラーが出ます.テンプレートで指定されているpLaTeXというものを使用するために以下の設定2を行います.

まずNew Filelatexmkrcというファイルを作成して以下の内容をコピペしましょう.

latexmkrc
$latex = 'platex';
$bibtex = 'pbibtex';
$dvipdf = 'dvipdfmx %O -o %D %S';
$makeindex = 'mendex %O -o %D %S';
$pdf_mode = 3; 

その後,画面左上の Menuをクリックして CompilerLaTeXに,Main documentskeleton.texに変更します.

ここまで行なってskeleton.tex上で Cmd + Sとかなんとかでコンパイルすると無事通り,こんな感じのPDFが表示されます.嬉しい!

BibTeX

ここまでで一応なんとなく書けるようになってはいますが,BibTeX(参考文献の記述ツール)はほぼ全員使うと思うのでついでに書いておきましょう.
New Filereference.bibというファイルを作成します.
例えば中身はこんな風に書いてみましょう3
ちなみにBibTeXの.bibファイルに記述するテキストはGoogle Scholarから直接出力できる4ので文法等を覚える必要は基本的にありません.

reference.bib
@inproceedings{
  KyTea,
  title={Pointwise prediction for robust, adaptable Japanese morphological analysis},
  author={Neubig, Graham and Nakata, Yosuke and Mori, Shinsuke},
  booktitle={Proceedings of the 49th Annual Meeting of the Association for Computational Linguistics: Human Language Technologies: short papers-Volume 2},
  pages={529--533},
  year={2011},
  organization={Association for Computational Linguistics}
}

skeleton.texも少し書き換えます.最初に \bibliographystyle{junsrt}を付け足すのと,参考文献部分をコメントアウトしたりコメントアウト外したり.bibファイルのパスを入れたり.ちなみにjunsrtjplainにすると著者名のアルファベット順に引用番号がつきます.

skeleton.tex
\documentclass{suribt}
\bibliographystyle{junsrt} % <----ココ

% ~~~~~~~~~ 省略 ~~~~~~~~~~

% \begin{thebibliography}{}%%%% 参考文献 %%%
%  \bibitem{}
% \end{thebibliography}
% \bibliographystyle{}%           BibTeX を使う場合
\bibliography{reference.bib}% BibTeX を使う場合

これで文章中の引用を入れたいところに,例えば今回のreference.bibの例だと \cite{KyTea}と入れれば引用番号が入ります.

example.tex
Neubigらによる研究\cite{KyTea}では...

数式環境などのパッケージ追加

数式環境やコードの記述環境などを整備する際に追加のパッケージを利用することがあるかと思います.
例えば\begin{align*}などを使うときにはamsmathを利用します.
このようなパッケージの追加はプリアンブル(\begin{document} の前)に usepackage を書き足すことで行えます.

skeleton.tex
\documentclass[ipc]{suribt}
\bibliographystyle{jplain}
\usepackage{amsmath} % <------ ココ
% ~~~~~~ 省略 ~~~~~~~

分割コンパイル

Overleafではコンパイルに結構時間がかかります.
卒論くらいの規模になってくると全てまとめてコンパイルしたら数十秒はかかるため,章ごとに分割することをお勧めします5
方法は簡単で,まずは章ごとにtexファイルを作成します.
自分はchaptersというフォルダを作成に,その中にchap1.texなどを作成しました.

それぞれのファイルの中では以下のように記述します.

chap1.tex
\documentclass[../skeleton]{subfiles} %このファイルからのメインファイルの相対パス(.texを除く)を[]内に書く

\begin{document}

\chapter{序論}
\section{ほげほげ}
本論文では...について論じる.

\end{document}

mainのtexファイルにsubfileパッケージを追加して,以下のようにsubfileを追加すると,全体に対して先ほどの小分けのファイルの内容が入れ込まれます.

skeleton.tex
\documentclass{suribt}
\bibliographystyle{junsrt}
\usepackege{subfiles} % <----- ココ

% ~~~略 ~~~

\mainmatter% ここから本文 %%% 本文 %%%%%%%%

\subfile{chapters/chap01} % <----- ココ
\subfile{chapters/chap02} % <----- ココ
\subfile{chapters/chap03} % <----- ココ
\subfile{chapters/chap04} % <----- ココ
\subfile{chapters/chap05} % <----- ココ

\backmatter% ここから後付
\subfile{chapters/acknowledgements} % <----- ココ
% ~~~ 略 ~~~

小分けのファイルを表示した状態でコンパイルすると,そのファイルの中身のみをコンパイルしてくれるのであまり時間がかかりません.
表示される章番号はズレますが,全体でコンパイルしたときはきちんと合うので無問題です.

その他

定理の証明環境とか必要になる可能性の高い細かいことはこのテンプレートを整備した過去の人々が色々書いてくれています6
LaTeXで卒論書く場合の数式等での記法のTipsはこの辺り78が非常に参考になるかと思います.

参考文献