読者です 読者をやめる 読者になる 読者になる

ミームの死骸を待ちながら

We are built as gene machines and cultured as meme machines, but we have the power to turn against our creators. We, alone on earth, can rebel against the tyranny of the selfish replicators. - Richard Dawkins "Selfish Gene"

We are built as gene machines and cultured as meme machines, but we have the power to turn against our creators.
We, alone on earth, can rebel against the tyranny of the selfish replicators.
- Richard Dawkins "Selfish Gene"

初心者がWord代わりにTeXを使うための最低限の設定などをまとめる

Lab mac TeX


「必要性がないけど、ちょっと便利かも」というレベルのものを導入する際の最大の関心事は「今出来ることが新しい環境でも出来るかどうか」で、
もっと細かく言うと「新しいメリット」だけでは人を動かすには十分ではなく、「現状のメリットの保証」も必要であると思う。
何の話かというとTeXの話なのだけど、相変わらず大したこと無い話を小難しい話に持って行く奴である。


で。論文を書くのに(今更)本格的にTeXを使い始めてみたんだけどこれがすごい便利で。なんで今までWordを使っていたのか*1。いや導入が面倒くさそうだったからだし、実際面倒くさかったけど、それを補ってあまりある快適環境が出来ている。嬉しい。

改ページや図の挿入位置。自分でいちいち考えたり、追記して全部ごっそりズレたのを一つ一つ直す必要が無く、好き勝手に書いてコンパイルすれば、いい感じの位置に整えてくれる。賢い!加えて本体の.texはテキストなので軽いし、ちょっとした処理がやりやすい。ただ、やっぱりクセも問題もあるので、諸手を挙げて万人にオススメはできない。


このエントリの目的は「目前に迫った文書作成をWordで普通に作るのと遜色なく仕上げられるだけのTeX設定を押さえる」こと。

というわけで、導入メモと感想などを書いておく。無駄に画像とか使ってしまうのは凝り性。Hashのくだらないところで詰まるスキルには定評があるため初級的な内容となっております。失敗の方法はほぼ無数にあるので果たして誰かの役に立つかどうかわからないが。
ちなみに環境はMac OS X 10.5.8*2。すの☆れぱに更新したらまた環境をいじる必要があるかもしれない。


こんてんつ

  • (インストールと環境)
  • とりあえず.texから.pdf
  • 書類のレイアウト、目次、改行
  • jpgとかpngのまま図を埋め込みたい
  • BibTeXによる参考文献の処理
  • シェルスクリプトで処理をまとめる
  • TeXのわるいところ

インストールと環境

TeX インストール Mac」とかでググればわかりやすい情報がたくさんある。ここはそんなに難しくないとおもう...が、インストール方法によって使えるパッケージや初期設定などが違ってくるようなので、僕の方法を簡単に書いておきます。

JIS X0212 for pTeXから

のふたつをダウンロード、インストール。それだけ。(MacPortsからでもインストール出来るらしい)
http://img.skitch.com/20090915-ecdrrbptpk2eimhfc6iy9i91ut.jpg

ちなみに使っているエディタはMacVimです。>id:sinxさん

とりあえず.texから.pdf


とりあえず環境が出来たら「.texから.pdfへ」を一通りやってみる。たとえば

\documentclass[11pt]{jsarticle}
\title{たいとるです}
\author{はっしゅ}
\date{\today}
\begin{document}
\maketitle

\section{せくしょんわん}
\subsection{さぶせくしょん}

内容

\end{document}

こんな感じで"hoge.tex"というファイルを作成して
platex hoge.tex
というコマンドを実行。すると hoge.aux, hoge.dvi, hoge.log という新しいファイルが出来てくる。 さらに
dvipdfmx hoge.dvi
すれば hoge.pdf というファイルが出来る。これでとりあえず一連の流れはOK。


ここまでで詰まるとしたら*3
  • platexというコマンドが無いよ!
    • PATH通ってる?echo PATHしてみる。インストール時にインストール場所を聞かれたりしたはず。
      • ちなみに僕は/usr/local/bin/platexでした。(which platexコマンドで調べた)
  • 日本語を入れるとエラーが出る
    • ファイルの文字コードちゃんと会ってる?
      • TeXShopなどを使えばそのへんをよしなにやってくれる。
  • dvipdfmがエラー出る!
    • dvipdfmではなくdvipdfmxで通った。どう違うか知らないけど

書類のレイアウト


ひととおり方法が分かって本文をちょっと書いてみると、いくつか気になる点が出てくる。たとえば「余白広すぎじゃね?」など。これを調整するには、プリアンブルに*4

\usepackage{geometry}
\geometry{a4paper}

\setlength{\textwidth}{\fullwidth}
\setlength{\textheight}{23.5cm}
\setlength{\voffset}{-2.5cm}


こんな感じで記入する。値を変えたりして好みのレイアウトにしてください。

目次が欲しい!
\begin{document}
\maketitle

この下あたりにでも「\tableofcontents」と、一行追加すればいい。\section, \subsectionの内容を自動で目次にまとめてくれます。

改行したいんですが

改行は「\par」を追加する。そこで段落が区切られる。段落を変えずに改行したい時は「\\」。あるいは(.texで)2行以上の空行を空けると、改行として認識される。

その他

jpgとかpngのままTeXに図を埋め込みたい


TeXでは図を使う時epsファイルにするんだけど、作った画像をjpgとかのままポコポコ突っ込みたいときちょっと面倒くさい、かもしれない。Wordみたいにドラッグ&ドロップで好きな位置に入れたい。そこまでの手軽さはないものの、graphicxパッケージでラクが出来る。とりぷる ぷぅ とか参考に。

まず作業ディレクトリに img などの画像ストックフォルダを作って、その中に使うファイルを突っ込んでおくと管理が楽だと思う。例としてnyoro.jpgという画像を埋め込んでみる。ここで忘れがちなポイントなのだが、img 内のnyoro.jpgに対して

ebb nyoro.jpg

という処理をしておく*5。すると同じフォルダにnyoro.bbというファイルが出来るが、これを作っておかないとエラーが出る。どうも画像サイズなどのデータが入っているみたい*6
フォルダの準備ができたら、プリアンブルに

\usepackage[dvipdfm]{graphicx}

を記述する。 ちなみに[]内の記述はdvipdfmx(xがついてる)ではだめだった。
そして.tex中の図を入れたい箇所に

\begin{figure}[htbp]
    \centering
    \includegraphics[width=4cm]{img/nyoro.jpg}
    \caption{これは孔明の罠だ}
    \label{nyoro}
\end{figure}

このように記入する。文中で「図ほげほげによれば...」とか言いたい時は、label値で引用してやる。画像で例を示す。
http://img.skitch.com/20090914-p4ksamqe5uy7kgj47m3c53u2ee.jpg

ここまでできたら、あとは

platex hoge.tex
dvipdfmx hoge.dvi

して、できたpdfを開いてみる。


http://img.skitch.com/20090914-fg43fhsyuuh6nxxmsh6e9htx7x.jpg


画像が入っていますね。 出て来た順番に図1, 2...と番号を振ったり、画像が大きすぎるから改ページしてから図を入れようとか、そういった処理はTeXさんがよしなにやってくれます。
さらに進んで「図2(a)(b)」と複数の画像を一つの図として扱いたい場合、subfigureパッケージを使うといい。それぞれのsubfigureがlabel値を持つので、図2(a)とか(b)に対して個別に引用出来る*7。ここでは省略。


BibTeXによる参考文献の処理


そもそも今回TeXを使おうと思った一番の理由がこれ。
今までは参考文献は十数報かそこらだったけど、本格的に論文的なものを書き始めると軽く50を超える。それを逐一、整合性とって、重複も無くして、本文の順番に合わせて整列して...と手動でやるのは気が遠くなる。Word 2007にはReference機能が追加されたらしく、またEndnoteなどWordとの連繋をサポートしているソフトもあるのだけど、
まぁ話の流れ的にここでBibTeXですよ。

僕は前々から論文管理はBibtex形式でやってきたので(iBook時代はBibDesk、Windows時代はJabref、Macbookに戻って来た今もJabref)、ようやくメリットを最大限に生かせた感じだ。


BibTeXの何がおいしいかと言うと、.bibファイルにたとえばこんな形式で
http://img.skitch.com/20090914-g8ab8qahcxkrwmxyi44x55b8tm.jpg


論文データを溜めておく。個別に割り振られた赤字の記号をbibtex keyと言って、これを使って文中の好きな位置で\cite{hogehoge}とかやると...
http://img.skitch.com/20090914-d4bt6jrmybidtxrwgyqtxk13tj.jpg


pdfにした時、自動で番号が振られる。
http://img.skitch.com/20090914-ets131kxgcckh1hrbgrggmn6cr.jpg


最後に「参考文献」として文中で引用した文献をリストアップするんだけど、そのためにはdocument最後の方に「\bibliography{nanntoka.bib}」と「\bibliographystyle{plain}」などを埋め込めばOK。

http://img.skitch.com/20090914-g4cj8yfwku6qewh7kcgii66c5p.jpg


ちなみにbibliographystyle{unsrt}にすると文中で引用された順に番号が振られるので、僕はこれを使っている。

BIBINPUTSを設定する

環境変数BIBINPUTSは、読みに行くべき.bibファイルの位置をBibTeXに知らせるもので、ここを設定しないと.bibファイルをちゃんと読んでくれない。研究室のWindowsと普段使いのMacbookで論文データを同期させるためにDropBoxフォルダに入れている。*8
なので、~/.profile に

export BIBINPUTS=/Users/thash/Dropbox/papers/

と記入している。ただTerminal終了させたりOS再起動するとリセットされる。あれれ。.zshrcとかの方がいいのかな。

コンパイル

BibTeXを使ったときはコンパイルが多少面倒になって、

platex filename
bibtex filename
platex filename
platex filename
dvipdfmx filename.dvi

の順となる。理由は良く知らない。


シェルスクリプトで処理をまとめる


platexとかdvipdfmxとかややこしいし、BibTeXを使いだすとさらにめんどくさい。シェルスクリプトを書いてまとめる。僕は、いままで見て来た一連の流れに中間ファイルの削除やopen filename.pdfコマンドを加えて、次のようにしている。

#!/bin/sh
platex filename((拡張子はなくてもいい))
bibtex filename
platex filename
platex filename
dvipdfmx filename.dvi
rm -rf filename.aux
rm -rf filename.dvi
rm -rf filename.blg
rm -rf filename.bbl
rm -rf filename.log
rm -rf filename.toc
open filename.pdf  
# もしくは open -a Skim.app filename.pdf など


これに適当にa.shとか名前をつけて保存し、chmod +x a.sh して実行権限を付けておいて、pdfを作りたい時実行するようにする。OMakeで自動コンパイルするようにするとさらに楽そうなんだけど、それはまた今度気が向いたら。


いじょ。

このへんの設定がわかりさえすれば、とりあえず1日くらいがんばれば最低限の文書作成はできるようになるんじゃないかと思うんだが、どうだろ。抜けがあったり、「ちょっとWordで出来るアレやりたいんだけどどうやるの」という突っ込みがあればよろしくお願いします(勉強にもなるので)(あまりマニアックな使い方は想定外)。


TeXのわるいところ

実際に使ってみて悪い所とか。

導入がめんどくさく、慣れるまで大変

有志によってpTeXなどのワンクリック型パッケージが用意されているとは言っても、そもそも導入から面倒くさい。仮に導入が終わっても、直感的に使えるドキュメントソフトと違って、ある程度文法の理解が必要になる。ググればいいんだけど、勝手が分かるまではストレス溜まると思う。
僕はどちらかというと出来ない人の側に近いと思うので、これは面倒くさいなぁとしみじみ思った。最初に行った通り、その分のメリットはあったんだけどね。

互換性が悪い

世の中のデファクトスタンダードはやはりMS Word。文書がWordで送られてくるのもザラだし、会社に入ったりするとまず使う機会はなさそうだ。役に立たないだろうと思う。
別に将来的な話に限らず、アカデミックな環境でも上司(教授やら助教)がTeXを使えないとどうしようもない。


今後やりたいこと

syou先生とかhayamiz先生の背中を追いかけるなう。いやそもそも背中見えてないけど

*1:iWorkを入れてからは、「文書」であれば何でもOKであればWordよりぬるぬる動くPagesを使っていたけど

*2:研究が一段落したらSnow Leopardにアップグレード予定

*3:僕レベルになるとこの辺で既に詰まるのですよ自慢じゃないけど

*4:プリアンブルの意味はググってください

*5:大事なことなのでフォントで強調しました

*6:どうもplatexの段階で.bbファイルの値を元に「これだけの大きさのBoxを空けておけ」と指定してレイアウトを作り、その後のdvipdfmxで対応する画像を埋め込んでいるようだ

*7:このへんとか見るといいかも: [http://nlab.ee.tokushima-u.ac.jp/nlab/haruna/memo/TeX/TeXtips.html:title]

*8: 参考: [http://d.hatena.ne.jp/Hash/20090521/1242937683:title]