Latexで卒論修論

目次

latexのインストール

  1. cygwinを使ってサクッとインストールします。必要なパッケージもインストールします。texliveをsearchすれば必要なパッケージが表示されます。図の拡大

figure

図1: インストールするlatexのpackage一覧

  1. コンパイル作業を手伝ってくれる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

要旨

卒論と修論要旨のテンプレートもつくりました。

レポート

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上で編集すればストレスなく論文作成できるでしょう。

著者: 大窪 貴洋

Created: 2018-02-23 金 13:00

Validate