Hatena::Groupmkdir

作業ログとかをメモする場所。

 | 

2011-01-21

卒論をLaTeXで書く

| 14:32

卒論を書くのにLaTeXを使ったので、そのへんの情報で重要そうなやつをまとめておく。

インストール関係

MacpTeXパッケージはOSのバージョンによって細かな設定が違うみたいなので注意が必要(上記はSnow Leopard用)。このパッケージを使う以外にMacPortsを使う方法もあるし、さいきんはMacTeXを使うほうがナウいらしいけどパッケージがデカかったりする。

Ubuntuの日本語環境を使ってる人はなんかパッケージいくつか入れるだけで何とかなった気がする。よくわからないけどずいぶん前にやってあった。

Macの人はTeXShopが結構便利で、適切に設定がされていればひととおりの操作がぜんぶGUIでできるようになる。Windowsにもその手のソフトはいろいろあって、WinShellあたりが有名みたいだけどEUC-JPなファイルが開けなくて死んだ。あんまりWindowsでの環境構築をする必要にかられていないので、必要なら必要な人がちゃんと調べるべきだと思う。

この時点でUnicodeじゃない文字コード絶滅しないかなーとわりと思っていた。

この先で出てくるコマンドは、基本的に上記のやり方でpLaTeXインストールした人向けです。

テンプレート

@kurokobo が卒論用にテンプレートを作ってくれたのでそれを使う。組版にこだわる友達は貴重なので大切にしよう。

使い方

たとえばhoge.texというファイルを作ってあるならこんな感じ。

$ platex -kanji=euc hoge

基本的にはlatexコマンドによって.texファイルをコンパイルするところから始まる。ただし日本語をpLaTeXコンパイルするときはplatexコマンドになる。TeXShopなら「タイプセット」を押すだけでよきにはからってくれる。

latexコマンドを実行すると作られるファイルのうち、.auxファイルは文書内の参照(目次とか図とか参考文献の番号をつくったりするときとか)に使われるものらしく、dviファイルが文書の出力ファイル(実際にどこにどういう文字や図を配置するかを書いてある)らしい。.auxファイルによる文書内の参照は、すでに存在する.auxファイルを読み込んで参照することになっているらしく、1回目のコンパイルだと「図?.?」みたいなのが頻出してしまうので、2回以上実行する必要がある。それくらい1回のコマンド実行で何とかするようにしろよと思うけどLaTeX2eのリリースが93年とかなので仕方がない。ちなみにTeXShopの場合、「hoge.dvi -> hoge.pdf」みたいな表示が出たらlatexコマンドによる処理はもう終わっているので、その終了を待たずに次のタイプセットを始めてしまっていい。

dviファイルを直接閲覧できるソフトもあるみたいだけど、PDFをつくってしまうのが面倒でない気がする。というかTeXShop使ってるとPDF作るところまでやってくれる。ふつうの環境では、latexコマンドを実行したあとにdvipdfmxを使うのが楽っぽい。

$ dvipdfmx -kanji=euc hoge

これで、pdfが作れるはず。

BibTex

参考文献リストを手作業で作ってもいいけど、ダルいのでBibTeXを使うと楽。ciniiなんかだと論文のページからBibTeXが落とせるようになっているので、それを一つのテキストファイルに集約しておけば、そこから引用したときに勝手に参考文献リストが作られる。参考文献のソート順とかも決められるので非常に便利。no titleあたりを見れば使い方は十分わかる感じ。BibTeXが提供されていなくても自分で書けばいい。ちなみに普通の論文BibTeXはこんな感じ。

@article{河谷大和:2010-02-15,
author="河谷 大和 and 柏崎 礼生 and 高井 昌彰 and 高井 那美",
title="アニメにおける人物顔画像の萌え因子特徴評価と検索分類システムへの応用(ITS画像処理,映像メディア,視覚および一般)",
journal="映像情報メディア学会技術報告",
ISSN="13426893",
publisher="社団法人映像情報メディア学会",
year="2010-02-15",
volume="34",
number="6",
pages="113-118",
URL="http://ci.nii.ac.jp/naid/110007581217/",
DOI="",
}

いろんな論文BibTeXを落としてひとつのテキストファイルにまとめて、.bibという拡張子で保存しておけば投稿論文とかを書くときにも使いまわせるはず(本文で使われたものだけ参考文献のところに記載される)。

Webページを参考文献に入れる場合は、.texファイルで\usepackage{url}した上でこんな感じに書いた。

@misc{googleBlog:trillionPages,
    title={ymrl.net},
    note="\url{http://www.ymrl.net/} 2011年1月21日に閲覧",
}

BibTeXもやっぱりEUC-JPでつくると文字化けするので

 $jbibtex -kanji=euc hoge

みたいにやらなければならない。しかもTeXShopbibtexコマンドの設定をするところが見当たらないので、こういうことをしなければならない(本来ならコマンド+シフト+Bだかでできるはず)。非常に面倒なのでUnicodeじゃない文字コードは滅ぼしたい。

長いURL問題

参考文献以外に長いURLを大量に書かなければいけないところがあって、本来なら\url{}を使えば自動で折り返しが出来るはずなんだけどエンコードされたURLでダメだった。いろいろ探して下記のやり方で解決した。

web ページの参考文献としての書き方. 以下のようにして,misc で howpublished か note に \texttt で URL を書く. abbrv だと著者を勝手に解釈して省略し,大文字小文字も変えようとするので, "{XXX XXX}" とする.{{XXX XXX}} でもいいかも知れない. URL途中で改行できるように,\allowbreak を \newcommand{\ab}{\allowbreak} して \ab{} を入れまくる.

http://www.sfc.wide.ad.jp/~yasu/ja/education/doctoral-memorandum.html

なんか美しくないやり方だったので、本当にLaTeX滅ぼしたかった。

文字数カウントとか自動化

卒論のファイルはぜんぶgitで管理して、作業がすすむごとにcommitして研究室のサーバーにpushしてた。ついでに、そのサーバー内で定期的にリビジョンが変わっていたらTwitterに文字数をカウントしてpostするようなスクリプトを作って動かしていた。文字数を数えるスクリプトgithubに置いた

さらに、頻繁にタイプセット押して待つ時間が勿体無く感じたので、サーバー側でリビジョンが変わっていたときにlatexコマンドとjbibtexコマンドとdvipdfmxコマンドを適宜実行してPDFを吐いてpublic_htmlに置いてくれる機能を作って使っていた。こうするとわざわざPDF作成を待つ必要がないし、人にURLを投げてチェックしてもらえるので便利。

そもそもLaTeXを使う意味があるのか問題

みんながWordの書式設定使ってちゃんと見出しに番号振れるんならWordでもいいんじゃないのという気はする。実際にはフォントをデカくしただけの見出しを作る人が続出して失敗しそうだけど。

 |