Latexで卒論修論
目次
latexのインストール
- cygwinを使ってサクッとインストールします。必要なパッケージもインストールします。texliveをsearchすれば必要なパッケージが表示されます。図の拡大
図1: インストールするlatexのpackage一覧
- コンパイル作業を手伝ってくれるlatexmkをインストールします。下のctanからperl scriptのlatexmk.plをダウンロード。
https://ctan.org/tex-archive/support/latexmk
ダウンロードした。latexmkl.plパスの通ったところに置きます。ついでに latexmkにrenameしてpermissionを変えます。
mv latexmk.pl ~/bin/latexmk chomod 755 ~/bin/latexmk
latexmkの調整
latexのソースコードからコマンド1つでpdfを生成するためにlatexmkを使いま す。参考文献のコンパイルや分割コンパイル等、手動だと何度もコンパイルせねばなりま せんが、latexmkを使うと更新したファイルを判定して一発でpdfを作ってくれ ます。defaultで日本語用latex(platex)を読みださないので、コンパイルコマ ンドを初期化ファイルで変更します。 .latexmkrc を$HOMEに置けばOKです。 中身は以下のとおり。
# コンパイルエラーでstopしたい場合は -interaction=nonstopmode を外す $latex = 'platex --shell-escape -kanji=utf8 -interaction=nonstopmode %O %S'; $bibtex = 'pbibtex %O %B'; $dvipdf = 'dvipdfmx %O -o %D %S'; # No pdf file requested to be made by pdflatex # Possible values: # 0 don't create pdf file # 1 to create pdf file by pdflatex # 2 to create pdf file by ps2pdf # 3 to create pdf file by dvipdf $pdf_mode = 3;
使い方
引数にlatexファイルを渡せば関係するbibtex等も呼び出して一気にpdfを作っ てくれます。
latexmk thesis.tex
中間ファイル等を消したかったら次のコマンドでディレクトリにある中間ファ イルを消してくれます。latexmkのコンパイルの挙動があやしかったら一度、 中間ファイルを全部消して再コンパイルすると成功するかと思います。
latexmk -C
関連ツール
pdf viewr (Sumatra)
Sumatra PDFが軽くてファイルの更新に対応しているので良さそうです。
http://www.sumatrapdfreader.org/download-free-pdf-viewer.html
eps viewer (gv)
cygwinからGraphics/gv をインストールしてください。
画像変換 (ImageMagick)
latexはpdfファイルも張り付けれますが、epsで張り込むのが基本です。jpg等の画像ファイルはepsに変更する 必要があります。ImageMagick付属のconvertコマンドで簡単に画像フォーマットを変更できます。
convert hoge.jpg hoge.eps
無駄に大きいファイルはついでにresizeすると良いです。横を600にしてeps を生成するには、以下のようにします。-resize 10%とかでもOKです。
convert -resize 600x hoge.jpg hoge.eps
最近はpdfで図を作ってそのまま貼り付けてもOKです。
eps調整 (ghostscript)
たぶんImagemagickをインストールすると勝手にインストールされています。 ghostscriptに付属しているps2epsiでepsファイルの余計な余白のmerginを削れます。
ps2esi hoge.eps
これで余計な余白の削られたhoge.epsiが生成されます。
yatexモード
latexファイルはemacsで作成します。yatexモードを使いこなせばストレス無 く論文ができあがります。yatex-modeの正式なマニュアル次のURLを参照して ください。 http://www.yatex.org/
クイックリファレンス(http://www.yatex.org/yatexref.txt)を知っていれ ば十分かと思います。以下のコマンドを最低覚えていれば大丈夫
C-c b \begin{}を作る C-c s \section{} を作る C-c l {\large } を作る C-c ' コンパイルして後にエラー箇所にjumpする 数式モードで数式記号やギリシャ文字を一覧から選択する。 ; 数式記号一覧 : ギリシャ文字一覧 C-c t j compileしてpdf生成 C-c t p pdfを開く
emacs
複数のファイルを開いて編集することになります。bufferの移動等の操作が スムーズにできるよう以下のショートカットを使ってください。
C-x 1 現在のbufferだけにする C-x 2 上下にbufferの分割 C-x 3 左右にbufferの分割 C-x b buffer一覧から選択 M-. でも同じ C-x C-b buffer一覧を表示 C-x o buffer間の移動 C-^ 下bufferを縮める
またM-qで文章を成形しながら書き進めます。
Reference (reference.bib)の作成
reference.bibは手動で入力してはなりません。google scholarで引用したい タイトルや著者等を検索して目的の論文がヒットしたら、引用 → BibTeX と 進んでbibitemの内容をreference.bibにコピペしてください。ただ雑誌が略称 になっていないので、マニュアルでjournalの引数を変更してください。 (Physical Review Letters を Phys. Rev. Lett. にするなど)。雑誌名の略称 に迷ったら次ののURLで検索するとAbbreviations(略称)がわかります。 http://library.caltech.edu/reference/abbreviations/
テンプレート
修士論文
初めてlatexで修論を完成させた古瀬君に敬意を表して、古瀬君の修論ベース で雛型を作成しました。templatex.tgz 雛型ベースで作成するのが良いでしょ う。なお、参考文献の表式(chiba-lab10.bst)は研究室オリジナルです。 templateを展開して以下のコマンドでthesis.pdfを生成してみてください。
latexmd thesis.tex
thesis.texがメインファイルで章毎にファイルを分割しています。
thesis.tex ---- abstract.tex +-- chapter1.tex +-- chapter2.tex +-- chapter3.tex +-- chapter4.tex +-- chapter5.tex +-- chapter6.tex +-- chapter7.tex +-- acknowledgement.tex +-- reference.bib
生成されるpdfファイルです。thesis.pdf
要旨
卒論と修論要旨のテンプレートもつくりました。
- 修論用 youshi.tgz を参考にする。生成されるpdfファイルです。youshi.pdf
- 卒論用 youshi-B4.tgz を参考にする。生成されるpdfファイルです。youshi.pdf
レポート
4年生トレーニング用のレポートのテンプレートも作りました。野口くん提出 のwordファイルから生成しています。本来、図はepsファイルを作ってくださ い。テンプレートのepsファイルはwordの図をpngに変換してから生成してい るのでしょぼいです。report.tgz
TIPS
コンパイルのチェック
参照した図や表、参考文献が不明の場合、??マークになります。\citeや\ref の間違いがないか、コンパイルが完了したらthesis.logとthesis.blgを必ず 確認してください。
表の作成
正直、latexの表は慣れても見にくいし作りにくいです。ここは割り切って excelで表を作ってlatexに変換するのが一手かと思います。excelで表を作っ て好きなところのlatexコードを生成してくれるアドオンが便利です。 https://ctan.org/tex-archive/support/excel2latex
自動コンパイル
pythonのwatchmedoでlatexファイルが更新したら自動でコンパイルさせることもできます。condaからwatchmedoをインストールします。condaの参照するdefaultのchannelにはwatchdogがありません。conda-forgeにwatchdogがあるのでcondaのchannelにconda-forgeをappendします。
conda config --append channels conda-forge
watchdogをインストールします。
conda install watchdog
latexファイルが更新されたら自動でコンパイルするようwatchmedoに関連するファイルを見張らせます。 .texと.epsファイルが更新されたらlatexmk thesis.texを起動するよう、watchmedoを起動します。
watchmedo shell-command --patterns="*.tex;*.eps" --recursive --command='latexmk thesis.tex'
latexやepsが更新されたら勝手にコンパイルしてpdfを生成してくれます。Sumatraでpdfを開いていれば、更新された結果がすぐに反映されます。pdfファイルを見ながらemacs上で編集すればストレスなく論文作成できるでしょう。