LaTeX
TeX
論文

アカデミックヤクザにキレられないためのLaTeX論文執筆メソッド

注意:アカデミックヤクザとはフィクションであり,実在の人物・団体とは一切関係ありません.

この記事はeeic (東京大学工学部電気電子・電子情報工学科) Advent Calendar 2017 - Qiitaの22日目の記事として書かれたものです.

はじめに

私はこれまでLaTeXを使って論文執筆をしてきました.
その際に何度も調べてしまうこと・後輩に何度も繰り返し教えていることをまとめておくことで,誰かの役に立てればと思いこの記事を書いています.
執筆する論文の内容には触れず,あくまでも最低限ちゃんとした文章っぽく見せるため体裁をどう整えるかに主眼を置いています.
これさえ守っておけば,パイセンや先生に論文添削を頼むときに小言を言われる可能性が低くなるのではないでしょうか.(多分. 責任はとれない.)

また,これからLaTeXで論文執筆したいけど,環境構築とかめんどくさい・・・という人は以下の記事もおすすめです.
オンラインLaTeX執筆環境OverLeafで日本語文書を作成する - Qiita

Disclaimer

私は研究の専門家ではありません.
Ph.D.を持っておりませんし,取得する予定もありません.
アカデミアに少しでも貢献したいと考えている東京大学大学院の情報系修士2年です.
平均的な修士学生よりも発表論文数は多いはずなのでこういう記事を書いても許してほしいです.
また,情報系の中でもUbiquitous ComputingやHCI(ヒューマンコンピュータインタラクション)の分野に属している人間なので,もしかすると他の分野の方とは流儀が異なるかもしれないです.
その場合は自分の分野の宗教に合わせて読みかえていただけるとありがたいです.
この方が良くない? ここは絶対におかしい!などお叱りのコメントは歓迎します.

この記事のターゲットユーザ

  • 論文を初めて書く学部4年生
  • 論文の添削を頼まれたが,体裁についていちいち指摘するのがめんどくさいラボのパイセン達
  • メモを残したい僕

なぜ体裁にこだわるのか

体裁が整っていない論文を生成すると,一部のアカデミックヤクザの方からキレられます.

初めて論文を書こうとする学部生はすぐに名文を書こうとする。しかしたいていはキモチワルイオタクのポエムになる。お願いだから徹頭徹尾同じ表現で書いてくれ。表記ゆれしないでくれ。
キレベント・カレンダー - youshitsuの日記

体裁が整ったきれいな論文は査読者に好印象を与えます.

査読者フレンドリーに。(中略)査読する人は、タイトルを確認して、論文全体をパラパラと見渡して、図を見て、abstractとconclusionを読んで、ぐらいの段階である程度は判定態度を決めている。そこまでで「つまらない」と思われるともうだめ。文章だけではなく、全体のレイアウト、版面としての美しさにまで気を配るべき。
よい論文の書き方 - NextReality

これらと自分自身の経験をまとめると,体裁にこだわる理由として

  1. きれいな論文は読みたくなる(少なくともマイナスイメージを査読者に抱かせない)
  2. ここまで体裁にこだわっているんだから,内容も良いのではないかと錯覚させることができる(かもしれない)
  3. 書き上げたときに「美しいものを生成した」達成感を得る(人による)

が挙げられます.

なお, 研究発表スライドの体裁については同期のぱすた君が執筆してくれていますので,あわせて参照ください.
発表スライドにこだわろう - ぱすたの日記

執筆前にまず守るべきこと

卒論でも学会に提出する論文でも,基本的にはそのフォーマットに関して規約がある場合が多いです.
まずはその規約をきちんと読み込み,提供されているLaTeXやWordの公式テンプレートを使用しましょう.

また,体裁が整っているように見せるための大前提は

  • 文章全体で表記ゆれを無くし,統一感を持たせること
  • 何かの流儀に従ってこいつは書いているんだと思わせること

です.
よっしゃ体裁にこだわるぞ!という意識をまず持ちましょう.

本文中で気をつけること

本章では論文の本文中で気をつけることについて述べます.
(このように1文だけの段落は論文では不適です.)

単位

siunitx パッケージを使いましょう.
siunitx - TeX Wiki

  • 単位を斜体にせず,ローマン体で書く.
  • 単位の前には必ずスペースを入れる.
  • μがいい感じに出力されない.

などを良しなに面倒を見てくれます.

siunitx
\usepackage{siunitx} %% SI単位系の出力
\SI{数値}{単位}
本文 20nm, \$20nm\$ \SI{20}{nm}
出力 bad_unit.png good_unit.png

句読点表記の統一

日本語横書き文書の場合は,

のどれを使うのか決めて,統一する.
電気・情報系の日本語論文であればピリカンにしとくのが無難.
論文中でこれらの表記が混じり合うことが最も美しくないので,自分でどれかに決めたら必ず統一しましょう.

長音符表記の統一

外来語、特に英語の語末が‐er,‐or,‐arなどに当たるものについて、長音符を付ける流儀と付けない流儀がある。
長音符 - Wikipedia

長音符を付ける流儀なのか,付けない流儀なのかきちんと決めて論文全体で統一しましょう.
自分は基本的にはJIS規格に従って書いています.

原則
a) その言葉が3音以上の場合には,語尾に長音符号を付けない。 エレベータ
b) その言葉が2音以下の場合には,語尾に長音符号を付ける。 カー,カバー
c) 複合の語は,それぞれの成分語について,上記a)又はb)を適用する。 モータカー
d) 上記a)~c)による場合で,長音符号を書き表す音(例1),はねる音(例2),及びつまる音(例3)は,それぞれ1音と認め,よう(拗)音(例4)は1音と認めない。 1 テーパ(taper)
2 ダンパ(damper)
3 ニッパ(nipper)
4 シャワー(shower)

JIS Z8301:2008 G.6.2.2 英語の語尾に対応する長音符号の扱い b)表G.3 より引用.
日本工業標準調査会:データベース検索-JIS検索

ダブルクオーテーション

LaTeXでのダブルクオーテーションは左二重引用符を``,右二重引用符を''で表します.
""←これで両端を囲むのをやりがちですが, 両方とも右二重引用符として出力される場合があるのでやめましょう.

入力
✕ "Double Quotation"
△ “Double Quotation” 
◯ ``Double Quotation''

出力
double_quatation.png

並列列挙

並列列挙には読点(、or,)を使わず中点(・)を使って表記します.
e.g.)
✕ ストレスレベルを推定するため,心拍,容積脈波,皮膚温,瞳孔拡張,皮膚電位を取得する.
◯ ストレスレベルを推定するため,心拍・容積脈波・皮膚温・瞳孔拡張・皮膚電位を取得する.

ただし,以下のような並列の場合には中点(・)を使うと逆に不自然になります.

  1. 【直列列挙の場合】
    • ✕ 僕はうなぎを食べて・ワンパンマンを観て・ブログを読んだ.
  2. 【カタカナの固有名詞に・が必要な場合】
    • ✕ ニューヨーク・タイムズ・ル・モンド・ワシントン・ポストの三紙が・・・
    • ◯ ニューヨーク=タイムズ・ル=モンド・ワシントン=ポストの三紙が・・・
    • 本多勝一著 日本語の作文技術より引用

従って,最終的には各個人の美学に則って使用してください.

ハイフネーションの制御

英語で論文を書く際に,hypenpenaltyを設定しないとハイフネーションが多く発生する場合があります.
以下をプリアンブル(\begin{document}の前)に記述し,適切に設定しましょう.
なおペナルティの重みは各自いい感じに設定してください.

% prevent hyphenation
\hyphenpenalty=10000\relax
\exhyphenpenalty=10000\relax
\sloppy
設定前 設定後
before_hypenpenalty.png after_hypenpenalty.png

参考:LaTeXでハイフネーションを抑制する - Qiita

行間調整

与えられたテンプレートの行間が広すぎる場合があります.
その場合は以下をプリアンブルに記述して,行間を狭くしましょう.
何倍にするかは各自いい感じに設定してください.
(1.n倍にしたら規定枚数になった!という卒論生は親の顔より見た.そういうのはやめよう.)

\renewcommand\baselinestretch{0.8} 

また, 日本語論文の文頭の英文AbstractやReference等は本文中の日本語に比べて行間を狭くしたほうが見栄えが良くなる場合が多々あります.
そのときは以下のようにsetspaceパッケージを使って倍率を設定しましょう.

\usepackage{setspace} %% for spacing

\begin{document}
\maketitle

\begin{spacing}{0.7}
hogehogehogehoge
\end{spacing}

\end{document}

その他

  • 本文中に謎の全角スペースをいれない.
  • 引用で[?]や図??になっているところを残さない.
  • very long sentenceを生成しない.
  • 1文だけのパラグラフを作らない.
  • 読点を打ちすぎない.
  • 「はじめに」で始めたら「おわりに」で終える.
    • 「序論」で始めたら「結論」で終える.
    • 「まえがき」で始めたら「あとがき」で終える.(論文でみたことないけど)
  • 研究の意味のworkは不可算.(Related work・Future work)
    • 研究は作品であるという信念を持ってworksにする人がいる.そういう宗教家の方もいるが,一般的にはwork.

Figureに関して気をつけること

まずは以下に挙げる論文の図を見てきてほしい.
写真はとても美しく,グラフは過不足なく情報を伝えている.
この章で述べる項目は,これらの論文の図に少しでも近づけることを意図しています.

基本構文

基本構文
\begin{figure}[図の配置場所]
  \centering
  \includegraphics[大きさ指定]{画像のパス}
  \caption{図の下に表示されるキャプション}
  \label{本文中で引用する際のラベル}
\end{figure}
例fromMy修論
\begin{figure}[tb]
  \centering
  \includegraphics[height=5cm]{dual-purpose-concept.pdf}
  \caption{A concept illustration of \textit{dual-purpose biometrics}. 
Dual-purpose biometrics enables concurrent physiological or behavioral sensing during biometric authentication or identification. 
This sensing mechanism offers an opportunistic and unobtrusive way to acquire healthcare information as well as encourages the use of authentication/identification systems through additional applications enabled.}
  \label{concept}
\end{figure}

図の配置場所

2カラム論文の場合は大体ページの上部(Top).こだわりがある場合はページの下部(Bottom)に図を配置します.
figureの後の[]内にfigure配置場所の優先順位を記載します.
以下の場合はTop→Bottom→弱いhereの順の優先度で図が挿入されます.

\begin{figure}[tbh]

1カラム論文の場合はTopかBottom,もしくはプリアンブルにhereパッケージを記載し,図の配置場所にHを指定(強いhere)します.
Hereパッケージを使うと,LaTeXの本文中に記載した場所に対応する位置に画像が出力されます.

\usepackage{here}
(略)
\begin{figure}[H]
(略)

キャプション

本文を見なくてもその図について理解できるほど詳しく書きましょう.
グラフの場合はその結果から何が言えるのか,すなわちそのグラフをどう解釈してほしいのかまで記載します.
それらの記述が本文と重複しても構いません.
キャプションの一文目は「名詞句」であることが多いです.(@horiemさん・@youshitsuさんありがとうございました!)
また,キャプションは文なので句点が必要です.
キャプションの配置位置は図の下.

bad_neko.png good_neko.png

(ねこさんはフリー素材)

画質

写真はとにかくきれいに撮りましょう.
研究中に作成したプロトタイプのデバイスは論文・スライドにいつか使うという気持ちでライトをガンガンあてて撮りましょう.
そういう準備がめんどくさい場合,iPhoneのカメラであれば,

  • 白背景に被写体を置く
  • 被写体にフォーカスをあわせた後に画面を上下にスワイプして露出を調整

することで,なんとなくマシな写真が撮れます.
参考:カメラの基本操作 - TeachMe iPhone

bad_cupnoodle.jpg good_cupnoodle.jpg

文字サイズ

Figureの中の文字サイズは本文中で使われている最小文字サイズ以上の大きさにしましょう.
紙に印刷したとき普通に読めることが目安です.

マーカ

同一のグラフ内に複数のデータがプロットされるとき,できるだけグラフのマーカ(各点の形状)を変更することで異なることを示しましょう.
色を変えるのも手ですが,形状を変えておけば白黒印刷でも理解できるので便利です.

注:JIS規格に従ってマーカーではなくマーカと記載している.

Figure 1で読者の心を掴め

自分の研究の核となるメッセージを1枚で表せる図をできるだけ論文の1枚目に載せましょう.
先程紹介したGlabellaは1カラム論文なので2ページ目に来ていますが,
2カラム論文であるLumiOBiometric Touch Sensingはいずれも1ページ目にプロジェクトメッセージをクリアに伝えるFigureを置いています.
個人的にはBiometric Touch Sensingのように2カラムをぶち抜いて1ページ目の頭にFigureを置くのが好きです.

その他

複数の図を横並びにする

複数枚の図が連結された1枚の図を前もって作る派と,LaTeX上で並べる派がいます.
自分は場合に応じて両方やるのですが,とりあえずLaTeX上で並べる方法を書いときます.
minipageを使って,1枚の図が占める幅を適当を指定しておけばOKです.

2枚を横並びにする場合
\begin{figure}[tb]
  \centering
  \begin{minipage}{0.48\hsize}
    \centering
    \includegraphics[height=5cm]{left_figure.pdf}
    \caption{左に表示される画像です.}
    \label{fig:left}
  \end{minipage}
  \begin{minipage}{0.48\hsize}
    \centering
    \includegraphics[height=5cm]{right_figure.pdf}
    \caption{右に表示される画像です.}
    \label{fig:right}
  \end{minipage}
\end{figure}

3枚を横並びにする場合はminipageの後の幅を0.33\hsizeとかにして並べれば多分イケます.

subcaptionを使う

関連のある複数枚の図を並べる場合は,subcaptionを使うと便利です.
captionを使うと,図2,図3とカウントされていくのに対し, subcaptionを使うと図2(a), 図2(b)のように同じfigureの中の子要素であることを明示できます.
また長いキャプションをつける場合はオプションに適切なマージンを付けると良いようです.(@yuntan_tさんより)
ちなみにsubfigureは非推奨っぽいです.

2枚を横並びにしてsubcaptionを使う
\usepackage[margin=5pt]{subcaption}
(略)
\begin{figure}[tb]
  \centering
  \begin{minipage}{0.48\hsize}
    \centering
    \includegraphics[height=5cm]{advent1.png}
    \subcaption{左画像に対するキャプション.左画像に対するキャプション.左画像に対するキャプション.}
    \label{fig:left}
  \end{minipage}
  \begin{minipage}{0.48\hsize}
    \centering
    \includegraphics[height=5cm]{advent2.png}
    \subcaption{右画像に対するキャプション.右画像に対するキャプション.右画像に対するキャプション.}
    \label{fig:right}
  \end{minipage}
\caption{figure全体のキャプション.}
\label{fig:left_right}
\end{figure}

出力例
subcaption.png

Tableに関して気をつけること

本章では表に関することについて述べます.

表の作り方

LaTeXで表を作るのはとても面倒です.
特にmultirowやmulticolumnを使って複雑な表を作りたいときには所望の表ができるまで5億時間は溶けるでしょう.
従って,自分はいつもLaTeX Table Generatorを使って表を作っています.
以下のようにGUIで表を作ってgenerateするだけで, LaTeXのコードを生成してくれます.
表の位置も基本はページの上部(Top)であり,キャプションは表の上.

latex_table_generator.png

生成された真理値表
\begin{table}[tb]
\centering
\caption{ANDとORの真理値表}
\label{table:truth_table}
\begin{tabular}{|c|c|c|c|c|}
\hline
  & \multicolumn{2}{c|}{OR出力} & \multicolumn{2}{c|}{NOR出力} \\ \cline{2-5} 
  & 0           & 1           & 0            & 1           \\ \hline
0 & 0           & 1           & 1            & 0           \\
1 & 1           & 1           & 0            & 0           \\ \hline
\end{tabular}
\end{table}

出力

truth_table.png

罫線を引き過ぎない

人間の目はきちんと整列しているものに対して自然と線を引いてくれます.
罫線をできるだけ引かないほうがよりスッキリして見えるのでおすすめです.
特に表の両端の縦罫線と,内部の横罫線は引かないほうが美しい(場合が多い)気がします.

bad_table.png good_table.png

参考:表(テーブル)は罫線が少ないほど美しい‽ - 記憶の彼方へ

Referenceに関して気をつけること

本章では参考文献リスト(Reference)に関して気をつけるべきことについて述べます.
Referenceの体裁を整えることはとても重要であると感じています.

理由は

  • 指導を受けたかどうか・論文を添削してもらったかどうかが一目でわかる
  • Referenceの体裁が整っていない場合,そこまで手が回らないような進捗状況だったのだと思われる
  • 「卒論審査とか時間が限られる場合にはとりあえずまず参考文献リスト見るよね」とある人が言っていた

からです.

慣習に従う

参考文献リストの表記法は学会・論文誌や分野によってかなり異なるので,まずは適切なフォーマットがなにかを確認しましょう.
特に決まりがないんだけど・・・という場合は自分の美的感覚に合っているどれかに従いましょう.

例として自分の分野でよく参考にする以下のリンクを貼っておきます.

bibtexを使う

BiBTeXとは - Qiita
こちらの記事が詳しいのでよくわからない人はそちらを参照してください.

例えば ACMのCitation Formatの規約に従って参考文献リストを記述する場合は,
まず,acmart/ACM-Reference-Format.bstからACM-Reference-Format.bstをダウンロードし,
本文中に以下のように記述します.

main.tex
\bibliographystyle{ACM-Reference-Format}
\bibliography{reference.bib}

ここで例えばFiberio: A Touchscreen That Senses Fingerprintsを引用したい場合は,
reference.bib内に以下の用にbibtexのエントリを記述します.

reference.bib
@inproceedings{Holz:2013:FTS:2501988.2502021,
 author = {Holz, Christian and Baudisch, Patrick},
 title = {Fiberio: A Touchscreen That Senses Fingerprints},
 booktitle = {Proceedings of the 26th Annual ACM Symposium on User Interface Software and Technology},
 series = {UIST '13},
 year = {2013},
 isbn = {978-1-4503-2268-3},
 location = {St. Andrews, Scotland, United Kingdom},
 pages = {41--50},
 numpages = {10},
 url = {http://doi.acm.org/10.1145/2501988.2502021},
 doi = {10.1145/2501988.2502021},
 acmid = {2502021},
 publisher = {ACM},
 address = {New York, NY, USA},
 keywords = {fingerprints, multitouch, touchscreens, user identification},
} 

そして,本文中で引用したい箇所で以下のように記述すれば,自動的に参考文献リストに追加されます.

main.tex
Fiberio is a tabletop touchscreen system 
that authenticates users during touch interaction with their fingerprints~\cite{Holz:2013:FTS:2501988.2502021}.

出力
reference.png

bibtexのエントリはpublisherから持ってくる

bibtexのエントリは出来る限りpublisherのwebサイトからExportしてきましょう.
Google Scholarにも出力機能がありますが,PDFから自動生成しているようなので時々間違いがあります.

従って,例えばACMの場合にはDigital libraryの右下からExportし,

IEEEの場合には左下からExportします.

ちなみにPublisherからExportしたとしても間違いがある場合があります.
その場合は適宜自力で修正してください.

よくあるミスは

  • pages={88-94}のようにハイフンの数が足りない
  • 会議名がおかしい
  • 会議の開催回数がおかしい
  • エントリ種別が違う
    • book・article・inproceedingsなどの種類.

などです.

\citeの前にはチルダをつける

チルダ(~)には半角スペースを空けつつ行頭を禁止する意味があります.
チルダをいれないと,以下の悪い例のように行頭に[1]が来て見た目が悪くなってしまいます.

本文 半角スペースじゃなくてチルダをいれるんやで \cite{hoge}. 半角スペースじゃなくてチルダをいれるんやで~\cite{hoge}.
出力 bad_citation.png good_citation.png

追記(2017年12月22日)
イショティハドゥス(@Ishotihadus)さんより本質情報をいただきました.ありがとうございました!

Webページcitation用Chrome extension

BibTeX entry from URL - Chrome ウェブストア
これを使えばwebページをcitationする際に,bibtexの項目を自動で生成してくれます.
ただし,Author欄やその他細かいところは手動で修正しましょう.

その他

  • 参考文献を並べる順番は筆頭著者のLast nameでアルファベット順または,論文でCitationした順が多い.
    • 規約を必ず確認すること.
  • 複数の論文を同時に引用するときに番号の順番を逆にしない.
    • [4,2,8]みたいに並んでいると美しくない.

終わりに

この記事では論文執筆時に個人的によく調べる・教えることを重点的にまとめました.
他にも気をつけるべきことは数多くありますが,疲れたのでこの辺にしておきます.
「論文 チェックリスト」などでググれば数多くの方々がより詳細にまとめてくださっていますので,本記事と合わせて参考にしてください.
それでは良いパブリケーションライフを.