もしかして: アカデミックヤクザにキレられないためのLaTeX論文執筆メソッド
注意: イショティハドゥスとはフィクションであり、今お前がみているそれは幻想だ。
はじめに
研究室に入ってくる新人のみなさんはたいてい LaTeX を触ったことがなくて、若干見劣りするような資料を作ってしまうことが多い。
なので、見てくれのいい資料を作れるようになりましょう、というコンセプトで、常識的なところから細かいところまで書いていく。
こうすると便利だよ〜っていう内容と、こうしないとブチ切れるからなみたいな内容がいりまじっている。
Disclaimer
LaTeX ヤクザではないので細かいことは知りません。
僕がたくさん資料を作ってきた経験から書くので、こっちのほうがいいと思うなどありましたらコメントからどうぞ。
対象読者
- LaTeX が多少触れるようになった(コンパイルも通せるし、画像も一応貼れるようになった)ひと
- なんとなく LaTeX を使っているひと
- 僕
なぜ体裁とソースコードにこだわるのか
伝わるためには美しくなければならない。
細かいことに気になると内容が頭に入ってこない。
とくに工学屋って、発表・発信することが重要だと思うので、読もうかなと思わせるような文章を作れることは大事だと思う。
あとはソースコードを綺麗にしておくと、移植性が高くて後から見たときになにをしているかわかりやすいのでオススメ。
それが工学系でしょ?
他に読むべき参考資料
LaTeX の世界はニューラルネットワークレベルで時代が速く流れるので、昔の資料は参考にならなかったり間違ってたりする。
注意して読むべし。
次に挙げるものはいいと思う。
その他アドバンストな部分も含む資料。
IEEE trans の LaTeX クラスを使うときは下も読もう。
本文のまえに
ビルドの方法
個人的には TeX Live + upLaTeX + dvipdfmx がオススメ。
LuaLaTeX とか XeLaTeX とかもあるけど、upLaTeX のほうが pLaTeX のノウハウが通用しやすいのでググりやすい印象がある。
pLaTeX じゃダメなのかって、ダメです。いろいろと。
ドキュメントクラス
日本語に関しては jsarticle に dvipdfmx オプションと uplatex オプションをつけるのがいいと思う。
僕は下のような感じにしている。
\documentclass[10pt,a4j,fleqn,dvipdfmx,twocolumn,uplatex]{jsarticle}
- 10pt: 文字サイズ
- a4j: 紙のサイズ
- fleqn: ディスプレイ表式が中央揃えじゃなくて左揃えになるやつ
- 個人の好み。僕は好き。
- twocolumn: 二段になるやつ
レイアウト
geometry パッケージを使いましょう。
もともと余白がかなりゆるゆるな印象はあるので、僕は下のようにしている。
なんか Word のプリセットに合わせてた気がする。
\usepackage[left=19.05mm, right=19.05mm, top=25.40mm, bottom=25.40mm]{geometry}
欧文フォント(オプショナル)
気にしないのならそのままでいいと思う。
変えたいなら The LaTeX Font Catalogue を見ながら設定するのがオススメ。
僕は下のようにしている。
\usepackage{newtxtext,newtxmath}
\usepackage[scaled]{helvet}
\usepackage[T1]{fontenc}
\renewcommand{\ttdefault}{fvm}
日本語フォント(オプショナル)
otf パッケージは和文と欧文のファミリ問題とかを自然に解決してくれるのでぜひ使いましょう。
uplatex オプションは忘れずに。
フォントを明示的に変えるときは pxchfon を使うのがいいと思う。
プリセットから選べるし、細かくフォントを指定することもできる。
環境の問題があるのでどうしろとは一概に言えないが、フォントを埋め込むことは必ずやったほうがいい。
ちなみに僕は下みたいになっている。
任意フォントを埋め込むのはコツがいるので若干アレ。
\usepackage[expert,deluxe,uplatex]{otf}
\usepackage[noalphabet]{pxchfon}
\setmediumminchofont{A-OTF-ReimPr6N-Regular.otf}
\setboldminchofont{A-OTF-ReimPr6N-Bold.otf}
\setmediumgothicfont{A-OTF-ShinGoPr6N-Regular.otf}
\setboldgothicfont{A-OTF-ShinGoPr6N-Bold.otf}
数式など
amsmath と amssymb と bm は読み込んでおく。
この順番で読み込むのがベター。
\usepackage{amsmath,amssymb}
\usepackage{bm}
グラフィック系
graphicx パッケージを読み込むときは dvipdfmx のオプションを絶対に忘れるな。
これを忘れると不幸が訪れると思え。
色は xcolor パッケージが個人的にはいいと思います。
下の例がいつも使ってるやつ(オプション要らないの入ってんな)。
\usepackage[dvipdfmx]{graphicx}
\usepackage[dvipsnames,svgnames,x11names,dvipdfmx,table,xcdraw]{xcolor}
見出しのデザイン(オプショナル)
見出しのデザインが気に食わないので変えたい人だけ。
titlesec パッケージを使うと便利。
下のは僕がいつも使っているやつ。
\gtfamily
のために otf パッケージが必要。
\usepackage[explicit]{titlesec}
\titleformat{\section}[hang]{\normalfont\large\gtfamily\sffamily}{\thesection.}{1em}{#1}[\titlerule\vspace{.3ex}]
\titleformat{\subsection}[hang]{\normalfont\gtfamily\sffamily}{{\color{Gray}\vrule width 2pt \hspace{.7em}}\thesubsection}{1em}{#1}
\titleformat{\subsubsection}[hang]{\normalfont\gtfamily\sffamily}{\thesubsubsection}{1em}{#1}
\titlespacing{\section}{0pt}{3.5ex}{2ex}
\titlespacing{\subsection}{0pt}{2.8ex}{1.4ex}
\titlespacing{\subsubsection}{0pt}{2.7ex}{1.4ex}
そのほか
- url
- PDF にリンクを貼ってくれるので神
- cite
- nobreak オプションを付けるのがベター
- 参考
- siunitx
- 5 m とか 37.2 ms みたいな SI 単位の表記には規則があります
- 参考
オススメのマクロ
登録しておくと便利なマクロ。
演算子
arg max とか arg min とかは 1 つの演算子。
たまに \arg\min_x
とかやる人いるんですけどお前それ本気で言ってんの?
tr(トレース)とか Re(実部)とかのマイナーな演算子も登録しておくとラク。
\newcommand{\argmax}{\operatorname*{arg~max}}
\newcommand{\argmin}{\operatorname*{arg~min}}
\newcommand{\tr}{\operatorname{tr}}
\renewcommand\Re{\operatorname{Re}}
\renewcommand\Im{\operatorname{Im}}
カッコ(オプショナル)
これは僕以外やってる人を見たことないけど、括弧の \left
\right
を毎回書くのが面倒なのでつくった。
\newcommand{\paren}[1]{\left(#1\right)}
\newcommand{\sbra}[1]{\left[#1\right]}
\newcommand{\abs}[1]{\left|#1\right|}
\newcommand{\norm}[1]{\left\|#1\right\|}
こうすると次みたいに書けるので便利。
% 下の 2 つは一緒
\left(a+\frac{c}{b}\right)
\paren{a+\frac{c}{b}}
あとにも書くが、僕は left right の括弧使わない人嫌いです。宗教。
relmiddle
確率分布の縦棒を書くときにつかう。参考
\newcommand{\relmiddle}[1]{\mathrel{}\middle#1\mathrel{}}
\newcommand{\agivenbp}[2]{\left(#1\relmiddle|#2\right)}
こうしておくと、縦棒が美しく書ける。
\agivenbp{z_t}{\lambda^{(z)}}
これを何も気にしないで書いちゃう人は下みたいになる。ゴミ。
p(z_t|\lambda^{(z)})
太字
otf パッケージを入れると textbf で明朝体/セリフの状態で太字になってしまう。
ときどきゴシック体/サンセリフにしたいときがあるので、ぱぱっとできるよう次のように定義しておくと便利。
\newcommand{\enhance}[1]{{\gtfamily\sffamily#1}}
こうすると enhance コマンドでゴシック体の太字が使える。
本文の前にやりがちなやってはいけないこと
行間をいじるな
マジで。ほんと。読みにくいから。最終の最終の最終手段なので。
ちなみにほんとにいじりたいときは setspace パッケージを使うと部分的に行間が狭くできるので便利。
参考文献だけ狭くしたいみたいなニーズに応えられる。
軽い気持ちでコマンドを上書きするな
section とかを再定義する人結構見るけど、それはどうかと思う。
特にコピペしてやるというのは非常によろしくないと思う。
わかっててやる分にはとてもいいと思うけど、わからずにドキュメントクラスで定義されているようなコマンドを再定義するのは移植性が低くてよろしくない。
LaTeX のプロが作ってくれたありがたいパッケージを極力使うのが僕はいいと思う。
車輪の再発明はダメ。
jarticle を使うな
サイズ感が結構違っていて、jsarticle より読みにくいので、相当厳しい事情がない限りは使わないほうがベターだと思う。
他にもアレな部分があるので jarticle はダメ。
用紙のサイズや余白を直接いじるな
geometry パッケージを使え。死ぬぞ。
def は気をつけて使う
newcommand / renewcommand を使えという意見はあるけど、面倒なので使ってもいいと思う。
自己責任で。
本文
基本的な話
改段落のために改行コマンドを使うな
そもそも LaTeX に限った話ではない。
変なスペースを入れない
インライン数式のまわりとかに空白をいれない。自動で入るので。
(この Qiita は空白を入れています。)
ちなみに英文を書くときのピリオドの後ろは空白 1 つです。
ダブルクオーテーション
``'' を使おう。
インライン数式にするのを忘れない
-means とか -gram とか、そういう細かいところにね、人間性って出るんですよ。
全角半角問題
数字や欧文は半角を使え
全角数字と全角アルファベットは滅びろ。
ピリカン(ピリオド・カンマ)を句読点の代わりに使う場合は全角にしろ
日本語文章では句読点は絶対全角にするべき(仮想ボディの問題)。
ただし次の条件ではピリオド・カンマは半角にする。
- などの数式中において列挙する場合
- 略称の説明をするとき元の名称にカンマが含まれる場合(United Nations Educational, Scientific and Cultural Organization; UNESCO)
- 参考文献を表記するときに文献が日本語でない場合
- その他英文中の場合など
微妙なのが「 の 2 変数に対して」みたいなときで、これは「, の 2 変数に対して」みたいな書き方でもいいと思う。
括弧は全角を使え
日本語の文章の場合、括弧はすべて全角にする。
例外は数式中の括弧のみ。
数式でも括弧を半角にするのは演算子としての括弧のみ。
次のような場合は括弧が全角になるべきだと思う。
基底 ()を用意する。
そのほか
脚注
これは非常に宗教感の問題だけど、個人的には脚注はあまり使わないべきだと思っている。
本題に関係のないようなどうでもいい情報で、かつ載せたいなぁと思うようなものは脚注でもいいんじゃないかな。
とくに内部資料とかで外部発表するものでなければいろいろ脚注に書くのもよろしいと思う。
論文とかに書くのはあまり好きではない。
使ったデータセットやツールキットの URL とかも脚注にする派と参考文献に入れる派がいるけど、まあ僕はどちらでもよいとは思う。ちなみに私は脚注派。
行からはみ出したり行が短すぎたりするときの対処
長いインライン数式が入って文字間隔が変になっちゃったり、ディスプレイ表式が長すぎて横幅をぶち抜いちゃったり、長い URL を書いて変なところで改行されちゃったりするときなど。
基本的には仕方のないことなので諦めるのが先決だが、個人的にはなるべく解消する努力はしようねというお気持ち。
どうしようもないところがあるので努力目標だけど。
略称の書き方
英語だと次のとおり。日本語論文でも流儀は同じ。
- Uniform Resource Locator(URL) ← OK
- URL(Uniform Resource Locator) ← よく見るけどダメ
日本語だと次のとおり。
- 三井住友銀行(SMBC: Sumitomo Mitsui Banking Corporation) ← よく見るけど微妙
- 三井住友銀行(SMBC; Sumitomo Mitsui Banking Corporation) ← 見たことないけど NG
- 三井住友銀行(SMBC, Sumitomo Mitsui Banking Corporation) ← 稀に見るけど微妙
- 三井住友銀行(Sumitomo Mitsui Banking Corporation: SMBC) ← これはダメ
- 三井住友銀行(Sumitomo Mitsui Banking Corporation; SMBC) ← これにしましょう
- 三井住友銀行(Sumitomo Mitsui Banking Corporation, SMBC) ← 稀に見る
コロンには明らかに後ろを説明する要素があるので、4 番目の例は明らかにダメ。教科書でも見るけどたぶんダメ。
僕は 1 番目派だったのですが、いろいろ考えると 5 番目が最もよいのではということになった。
数式
行列は pmatrix とか bmatrix を使おう
こっちのほうが書きやすいよ♡
場合分けは cases を使おう
こっちのほうが書きやすいよ♡
若干行間が狭いと思ったら、改行時の行送りを調整するしかない(\\[5pt]
みたいな)。
括弧は原則 left right で使う
中にアルファベット 1 文字が単体で入るパターンとか、括弧の中で改行しなきゃいけなくなったパターン以外では、原則として left right で使おう。
そのほうがきれい。 とか嫌でしょ。
いちいち left right を書くのが面倒なので、先に述べた paren コマンドとかを使うとラク。
ベクトルには bm を使おう
個人的な見解です。
数式はちゃんとチェックしよう
その数式、あってますか。変な変数、残ってないですか。
シグマ、忘れてないですか。分母と分子で変数の意味、変わってないですか。
figure 環境
基本的にはこれを見れば十分。
図のキャプションには文章を書こう
上のリンクにも説明されているとおり。
なるべく図単体でなんの図かわかるようにするとよい。
位置に h を指定するな/原則位置指定オプションを使うな
文系の論文だと h にすることも多いが、基本的に理系の文章は上に図がまとまっていたほうがわかりやすい。
図があっちゃこっちゃいくと読みにくいんじゃ。
空気が許せば下に図をまとめてもよろしい(個人的にはこっちのほうが好き)。
そのときはプリアンブルに以下のような感じで書いておくと下に寄せられる。
\setcounter{topnumber}{0}
\setcounter{bottomnumber}{4}
\setcounter{totalnumber}{4}
\renewcommand{\topfraction}{0}
\renewcommand{\bottomfraction}{1}
\renewcommand{\textfraction}{0}
\renewcommand{\floatpagefraction}{1}
図はちゃんと処理しろ
とくにスキャンした図を載せるときは、背景がちゃんと白になるように、文字がちゃんと濃くなるように、GIMP でもなんでもいいからグレースケールにしたあとトーンカーブで調整して貼ろう。
トーンカーブは使えるようになってください。マジほんと。
実際には自分で同じ書くほうがベター。
center 環境を使わない
\centering
コマンドを使おう。table 環境でも同じ。
ただし通常の文章中では center 環境を使おう。
図のフォーマット
pdf、jpg、png あたりがいいと思う。
eps 派はさすがに滅ぼしたはずだが……
図の大きさの指定
個人的には幅基準で書くのがいいのかなと思っている。
長さの単位は \linewidth
を使うと便利かなと思う。
図の引用を書け
マジで!!!! 図を引用したら!!!! 図の引用元を書け!!!!! \cite しろ!!!!
そこの輪講資料作ってるおまえ!!! お前だよおまえ!!!!
table 環境
まず表は table 環境の中に書こう。文章中に書くな。
基本的にはこれを見れば十分(またか)。
キャプションは上
図は下、表は上。なぜか。JIS 規格で決まっている。
表の引用を書け
マジで!!!! 表を引用したら!!!! 表の引用元を書け!!!!! \cite しろ!!!!
その結果は!!!! その資料は!!! お前が作ったんか????!!!!
参考文献と引用
基本的にはこれを見れば十分(しつこい)。
bibtex を使うのが面倒なときもあるので必ず使えとは言わない。
自分で全部書くときは、ちゃんと一貫したフォーマットで書こう。
ただしそのときは絶対に thebibliography 環境を使え。\section{参考文献}
とかやめろ。
参考文献リストのスタイルにもちゃんと原則があるのだ。
arXiv の引用
私は今だにこれについての答えを持っていないので、誰かおすすめの方法を教えてください。
おわりに
ソースも pdf も美しい素敵な資料を作ろうな。
ここ,日本語おかしいのでは
日本語が下手マンでした! 修正しました!