ill-identified diary

所属組織の見解などとは一切関係なく小難しい話しかしません

経済学系のレポート・論文を XeLaTeX で書く際の Tips

この記事は最終更新日から3年以上が経過しています

記事というか, 既出情報のまとめっぽい感じになってしまった. 独自性や貢献はあまりない.

自分は普段 ubuntu 使ってるので windows とかだと少し勝手が違うかもしれない.

XeLaTeX を使う

自分は普段 XeLaTeX を使っている. 理由は (ほとんど 1. だけだが) 以下のようなもの.

  1. (zxjatype パッケージを使えば) 英語フォントと日本語フォントを切り替えられる. フォントの設定は pLaTeX でもできるのですが, ワードのように個別の箇所で切り替えることができない. 頻繁にフォントを変更する必要もないが, 自分は日本語フォントの英字が気に入らないため, xelatex では欧文と和文でフォントを分けている.

  2. pLaTeX で hyperref が文字化けした. これはおまけ的なものだが, TeX Wiki 等に書いてある手法で hyperref の文字化けを修正できなかったため, XeLaTeX に逃げた.

  3. pLaTeX で beamer が (ry これも (中略) なので XeLaTeX に避難する一因に. ただし, LyX の使用上, 複数の引数を多用する beamer の使用はそこまで快適というわけではない.

  4. pLaTeX の場合, LyX の引用で非欧文文献が文字化けする. 出力自体は変わらないが, 見づらかった.

その他, utf-8 で入力するため, ダイアクリティカルマークの付いたラテン文字を例えば \"o ではなく, ö をそのまま入力することができる (従来の方法でも問題ない).

LyX を使う

LyX によれば,

LyXは、文書の単純な外見による(WYSIWYG)のではなく、文書の「構造」(WYSIWYM)に基づいた執筆手法を支援する文書プロセッサです。

だそうで, 要するに .tex の平文ではなく ワードに近い, 完成形のレイアウトを視覚的に確認しながら作成できるエディタ. (設定が必要だが) ボタン一つでpdf 出力までを自動で処理してくれる. 必ずしも TeX に完全に対応しているわけではないが, 数式を書く際に実際に出力されるものがリアルタイムで表示される. また, このとき自動入力補完もやってくれるので, それなりに数式を打つ必要のある経済学ではかなり効率的.

f:id:ill-identified:20140130211633p:plain

ファイルは .lyx 形式だが, 実態は独自のマクロを使った .tex 形式なので, .tex 形式への変換も楽. 文書全体のスタイル設定も, ある程度は TeX をつかわずにダイアログボックスで設定できる

f:id:ill-identified:20140130211917p:plain

また, 画像の挿入も, 縮尺の細かい設定をダイアログボックスの操作で行える.

f:id:ill-identified:20140130211656p:plain

f:id:ill-identified:20140130211704p:plain

引用トークンも一覧表示してくれる.

f:id:ill-identified:20140130212055p:plain

ただ, 一方で, 表の編集機能がかなりしょぼい. サイズの調整も罫線の設定もかなりやりづらいため, 自分は以前のいくつかの記事で紹介したように, 外部エディタで tabular 環境の部分を編集したものを直接張り付けている (LyX には .tex コードを直接入力するモードもある).

というわけで, LyX は .tex の構文を全く知らなくても使用できる, というわけではない. しかし TeX にあまり慣れてない人間にとってはかなり負担が軽減されると思う.

具体的な操作や設定は TeX Wiki や 公式サイトを参考に.

jecon を使う

BibTeX スタイルファイルは, 英文用ならば エコノメトリカ や AER のものがあるが, メトリカはラージキャップ体なので日本語を表示できない. AER や APE は日本語にできるが, 日本語文献では, 日本語文献の引用と英語文献のを同時に記述する場合, それぞれの書式が異なることが多い. 例えば英文論文ならばタイトルをダブルクオーテーションで括り, イタリック体にするが, 日本語論文のタイトルは二重カギ括弧でくくる, といったふうに. 英語ジャーナルのスタイルファイルには当然そのような配慮はない*1. そこで, 武田史郎のウェブサイト | jecon.bst: 経済学用BibTeXスタイルファイルで配布されている jecon スタイルファイルを使う. これは和文経済論文のフォーマットに則し, かつ調整が容易だ. しかし, XeLaTeX で jecon を使用する場合, 落とし穴がある. なぜかいつまで経っても処理が終わらず, lyx が固まってしまうのだ.

これは長いこと原因が分からず, jecon を使うときはいつも .tex 形式にエクスポートして手動でタイプセットしていた. しかし, つい最近になって原因に気づいた. XeLaTeX は言語を英語に設定しているので, いくら日本語処理子で pbibtex を呼び出すよう設定しても, 通常の bibtex が呼び出されるのだ. ついでにぐぐってみたら LyX + knitr + jecon で取り上げられていたので具体的な話はリンク先を参照. 表示が英語になってるが日本語の場合は, [ツール (T)]->[設定 (P)]->[出力]->[LaTeX]->[書誌情報の生成]->[処理子 (P)] を「任意設定」に, その下の[コマンド (M)]を「pbibtex」 にすればいい.

2019/11/9 追記: 2017年以降は pBiBTeX ではなく unicode に対応した upBiBTeX を使うのがスタンダードなので, 代わりに upbibtex を設定したほうが良い. 現時点で LyX の処理子リストにはないので, [ツール] [設定] (Mac なら Lyx -> Preference みたいな名前になっている?) で開いたウィンドウから, 「出力」 -> 「LaTeX」のタブを選ぶ. 書誌情報の作成で, 処理子に「任意設定」を選び, コマンドを両方とも 「upbibtex」 とする*2.

f:id:ill-identified:20191109165143p:plain
upBiBTeX の設定

出力例

f:id:ill-identified:20140130212634p:plain

latexmk を使う

LyX ではなく, 既にテキストエディタで編集するのに慣れているなら, latexmk を用いてタイプセットの手間を省く方法がある. また, 体裁を細かく指定する必要のある場合, どうしても LyX の編集機能だけでは不十分で, 最後にテキストエディタにエクスポートして調整することが, 自分の場合多かった. latexmk は perl スクリプトで書かれた .tex ファイルの処理プログラム. texlive, 少なくとも 2012 で TeX をインストールした場合は同梱されている.

LaTeX のコンパイルの自動化

に .tex ファイルの変更を監視してリアルタイムで xelatex でタイプセットする方法が書かれていた. ただし, ここでも bibtex が呼び出されるため, jecon を使うと lyx の時と同様の問題が発生する. ~/.latexmkrc には上の記事の例に加えて

$bibtex='pbibtex';

と書く必要がある. -pvc を使わなければ, 単に xelatex や pbibtex の命令を繰り返さず一度の命令で pdf を生成するコマンドとなる.

この辺はおそらく windowsUNIX 系で結構異なると思うので, 試してないが windows の場合は 天地有情 latexmk と ptex2pdf あたりが参考になりそう. ここによると W32TeX にも latexmk が入っているようなので, いわゆる TeXインストーラでのインストールで同梱されると思われる.

2019/11/9 追記: 最近は Latexmk - TeX Wikiwindows/UNIX&MAC で互換性のある .latexmkrc の設定が提案されている. platex, pbibtexuplatex, upbibtex に置き換えられるなど, モダンな設定に更新されている. 現在はこの .latexmkrc をコピペするだけでだいたい十分な気がする. また, latexmk 実行時に発生する大量の中間ファイルは latexmk -c で削除できるのだが, 削除すべきファイルリストは latexmk 内部で設定されている. 最近は .bbl, .nav, .synctex.gz など古い処理系ではなかったファイルも生成されるようになっているが, これらは削除リストに登録されていない. 公式ドキュメントの Using Latexmk — homepage では, .latexmkrc

$clean_ext = "bbl nav out snm";

などと設定することを提案している. ただし, bbl を消したい場合は, さらに

$bibtex_use = 2;

を追加する必要がある*3.

Inkscape で作図する

この項目はもう TeX とはあまり関係ない. R や matlabgnuplot で厳密にプロットするほどでない・できない模式図などを作成したいときに, フリーウェアの Inkscape は重宝する. .png や .jpg のようなラスタ形式と呼ばれるタイプの画像ファイルは, 縮尺を調整した際にどうしても劣化してしまう. しかし Inkscape ならば svg, pdf などの, 縮尺変更しても劣化しないベクタ形式画像を扱うことができる. なお, MS office はベクタ画像でエクスポートできないので, この点は TeX の大きなアドバンテージである. 無差別曲線や位相図 (phase diagram) などをフリーハンドで作図する程度ならば, ペンツールと LaTeX 数式の出力だけでほぼ事足りる. ペンツールで直線や曲線を描画し, フィル・ストロークのスタイルで矢印を指定したりできる. 画像の中に TeX の数式を書き込むこともできる. 詳しくは Inkscape - TeX Wiki 参照.

参照

*1:ちなみに欧米経済ジャーナルの bibtex スタイルファイル一覧は CTAN の tex-archive/biblio/bibtex/contrib/economic で確認できる.

*2:レポート等を書く時に使うことはあまりないが, 同様に索引作成用の mendex も upmendex という後継があるので, ついでに変えておこう.

*3:https://tex.stackexchange.com/questions/83341/clean-bbl-files-with-latexmk-c