東工大情報通信系LaTeXテンプレートの使い方
東京工業大学情報通信系で学士卒業論文(特定課題研究、通称特課研)を提出しました。
情報通信系が提供しているLaTeXスタイルシートの私の使い方・注意点について書き残しておきます。
必要な箇所だけ読んで役立ててください。
Overleafアカウントの用意
ローカル環境で卒論を書くこともできますが、この記事では私が使ったOverleafでのやり方を書いておきます。(私の研究室ではOverleaf指定でした)
https://www.overleaf.com/home-2からアカウントを作成します。無料版で問題ないはずです。
スタイルシートの入手
卒論の時期になると情報通信系の方からメールでリンクが送られてきているとは思いますが、http://www.ict.e.titech.ac.jp/index-j.htmlのローカルページにスタイルシートと使用例が入ったreport_ict.zipがあります。学内アクセス限定なので学内or東工大VPNでアクセスし、ダウンロードします。
学外の方はアクセスできませんが、代わりにhttps://hiroshi-sasaki.github.io/blog/2021/05/24/latex-template-for-your-thesis-at-titech-ict.htmlが参考になると思います。
スタイルファイルの読み込み
使用例ごと読み込む方法
使用例ごと読み込んでから各ファイルを書き換える方法です。
「新規プロジェクト→プロジェクトのアップロード」を選択します。
ファイル読み込み画面が出てくるので、解凍していないreport_ict.zipを読み込みます。
「Menu→設定→コンパイラ」をpdfLatexからLatexに変更します。
左下のMenuの下あたりに「新規ファイル」ボタンがあります。"latexmkrc"というファイルを作成し、下の「latexmkrcの記述」のコードをコピペします。
main.tex1行目のの「\documentclass[12pt][jreport]」のjreportをujreportに変更します。(unicode関連のエラーが解消されます)
main.texに移動しリコンパイルを押すと(またはCtrl-Sすると)リコンパイルされ、使用例のコンパイル結果が右画面にpdfで表示されます。
スタイルファイルのみ読み込む方法
スタイルファイルのみ読み込み、main.texを作成することでプロジェクトを作ることもできます。
report_ict.zipを解凍します。
Overleafで「新規プロジェクト→空のプロジェクト」を作成します。
左上のMenuの下あたりに「アップロード」ボタンがあります。解凍したreport_ictの中からreport_ict.sty, my-macros.texを選択して読み込みます。
左下のMenuの下あたりに「新規ファイル」ボタンもあります。"latexmkrc"というファイルを作成し、下のコードをコピペします。
report_ict.styの中の「ソースの記述例」をmain.texにコピペします。
「使用例ごと読み込む方法」同様にコンパイラをLatexに変更し、documentclassをjreport→ujrepotに変更します。
リコンパイルすると、ほぼ空のファイルが作られます。私はこちらで作成しました。
latexmkrcの記述
$latex = 'uplatex';
$bibtex = 'upbibtex';
$dvipdf = 'dvipdfmx %O -o %D %S';
$makeindex = 'mendex -U %O -o %D %S';
$pdf_mode = 3;
(https://qiita.com/fujino-fpu/items/d92d185da730e25743cbより引用)
unicode関連のエラーが大量に出たのでuplatexを使います。
Overleafリンクの共有
右上の「共有」ボタンからTurn on link sharingができます。これを有効化すると、編集可能リンク・編集不可リンクの二つが発行できます。
これを担当の先生に送ったりすればプロジェクトごと共有することができます。
(注意)この機能を有効にできるのは管理者(Owner)のみです。管理者を研究室の有料アカウント(共同編集者を増やせる)に変更するなどの場合は、管理者変更前にlink sharingを有効にする必要があります。
章立て
\chapter{}
\section{}
\subsection{}
\subsubsection{}
という構造になっています。検索したらもっと出てきますがこのくらいで十分かと思います。
通常chapterは一つの論文の中に複数の研究を述べる際に各研究について章立てる際に使うため、本来「はじめに、関連研究、実験、おわりに…」などを書くにはsectionを用いるのが正しいそうです。(先生に教わりました)
でも情報通信系のスタイルシートは(なぜか)chapterで書くよう設計されているのでchapterを使います。
数式・図表・画像
できます。特にこのスタイルシート特有の作法はありません。検索したらたくさんわかりやすいページが出てくるので調べてください。
Latex初心者は「Latex2ε 美文書作成入門」(奥村晴彦/黒木裕介 著)を入手するのがおすすめです。
Overleafの嬉しい点として、\begin{figure}とか打ってEnterしたら残りの\end{figure}とかfigureに必要なもの全て補完してくれます。便利だしミス防止になるのでbeginを使うものは補完を利用することをお勧めします。
参考文献の書き方
スタイルシート使用例を使わなかった&よく見てなかったので、使用例とは違う書き方をしています。
bibファイルの作成
「新規ファイル」から"reference.bib"という名前の空ファイルを作成します。(.bibであれば名前を変えてもOK。下のコードのreferenceを同じ名前に変えてください。)
main.texの参考文献の位置に下のコードを挿入すると、bibファイルを参照するようになります。
\bibliography{reference}
\bibliographystyle{jplain}
jplainとすると、著者名が日本語のもの含めて苗字のアルファベット順に自動ソートして並べてくれます。junsrtだとソートされないなど、他の出力スタイルもあります。
参考文献の追加
国際学会の論文では、大抵各論文のページに「Cite」とか「bibtex」とかボタンがあって、bibtexにそのまま使える記述をコピーできるようになっています。これをreference.bibにペーストして追加します。
例:
@inproceedings{NIPS2017_3f5ee243,
author = {Vaswani, Ashish and Shazeer, Noam and Parmar, Niki and Uszkoreit, Jakob and Jones, Llion and Gomez, Aidan N and Kaiser, \L ukasz and Polosukhin, Illia},
booktitle = {Advances in Neural Information Processing Systems},
editor = {I. Guyon and U. Von Luxburg and S. Bengio and H. Wallach and R. Fergus and S. Vishwanathan and R. Garnett},
pages = {},
publisher = {Curran Associates, Inc.},
title = {Attention is All you Need},
url = {https://proceedings.neurips.cc/paper_files/paper/2017/file/3f5ee243547dee91fbd053c1c4a845aa-Paper.pdf},
volume = {30},
year = {2017}
}
{}内の一番最初にあるNIPS2017_3f5ee243が引用キーです。
main.texで\cite{NIPS2017_3f5ee243}と書くことで本文中で引用することができます。
このスタイルシートでは引用キーの名前は本文中に出てこないので、見分けがつきやすい名前に勝手に変更してOKです。
jplainでは、著者が日本語名の場合にyomiをつけます。
@inbook{目黒2021,
author = {目黒さんま},
yomi = {Meguro, Sanma},
title = {目黒さんま祭りの歴史 ~行列の秘密~},
pages = {31--35},
publisher= {品川目黒社},
year = {2021}
}
アルファベット記述と同じようにファミリーネーム、ファーストネームの順に書きます。
こうすると、この例ではファミリーネームのMeguroに合わせてアルファベット順で参考文献が配置されます。
bibtexの記述が用意されていないものに関しては、記法を検索しながら書いてみてください。
遭遇したトラブル&解決策
\指導教員名Aでエラー
スタイルシート内サンプルの記述が間違っています。
\指導教員名A{工大 一郎}
\職名A{教授}
\指導教員名B{理工 二郎}
\職名B{准教授}
を
\指導教員名{工大 一郎}
\職名{教授}
\副指導教員名{理工 二郎}
\副職名{准教授}
に変更します。
\maketitleでエラー
副指導教員がいないからと、report_ict.styのテンプレから消していたのが原因でした。
report_ict.styで定義されている定数は、未定義エラーが起こらないよう空文字で指定して残しておくようにします。(\副指導教員名{}・\副職名{}とする)
1枚目の表紙で、題名が改行せずページを突き抜ける
題名が長いとページを右に突き破ってしまいます。通常のdocument内同様「\\」で改行ができるので、都合の良い位置に挿入して2行にします。
bibtexでコピペした文献の情報がおかしい
論文誌名・巻数・ページが載ってない、出版年がおかしいなど。
原因は脳死でコピペしていたせいでarxivのプレプリントのbibtexを貼り付けていたからでした。プレプリントだから雑誌の詳細が載ってませんでした。(出版年に関しては、arxivでは初稿の年ではなく最終更新された年がbibtexで出版年となってしまったのだと推測しています)
学士卒論で使うような英語論文は大抵arxivのみの論文よりどこか有名学会で採択されているものが多いはずです。arxivリンクを見ていた場合は、論文発表された学会を調べてそちらのページで取得したbibtexを貼るようにします。
スタイルシート改良版
論文提出し終えてから気づいたのですが、情報通信系の先生が出してくださっているlatexテンプレート改良版のレポジトリがありました。
自分の担当教員の先生に確認してOKならこちらを使うのもありかと思います。
おわりに
修論の時に見返せるよう備忘録がてら書きました。
間違っている箇所・もっと良い設定方法等ありましたらコメントで教えていただけるとありがたいです。