Wordを使いながら、こう考えた。
量が増えれば処理が鈍る。画像を移せば落とされる。意地を通すはWordの方だ。とかくにMS帝国は住みにくい。住みにくさが高じると、安い所へ引き越したくなる。どこへ越しても住みにくいと悟った時、TeXが生まれて、GitLab+Jenkinsが出来る。
かの夏目青年は30にしてこのように悟ったわけであるが、今どきの大学院生である私もそのとおりであると思う。Wordを使わない理由は、
- ページ数が増えると重い
- 画像のレイアウトが思ったようにならない
- 勝手にレイアウトを変える (OFFに出来ることは出来る)
など。論文の終盤でこのような理不尽の嵐にさらされて精神を病むものは後を絶たないと聞く。責任者に問いただす必要があるかどうかは別にして、現実を変えたいと願うならばTeXを使うと良い。TeXとは一言で言ってしまえば図とか文とか表を配置するための言語で、Knuth御大がムシャクシャして作ったものだ。
あわせて読みたい:
よしではTeXを使おうと思っても準備が必要で、ちょっとググるとLaTexだのpTeXだのXeLaTeXだの出て来て頭がフットーしそうになる。なのでここではそれを簡単に整理してみたい。まずTeXもLaTeXもpTeXもXeLaTeXも*.texファイルを扱うコンパイラで、その目指すところもすべて同じで、
- 目標: *.texファイルから文書を作る
ことである。この「文書」というのが歴史的にDVIからPostScript、PDFへと変遷してきて、それぞれにコンパイラや変換ソフトが登場してきた。XeLaTeXなんかは*.texからPDFを直接作成できる。
もう一つの軸は多言語対応である。TeXは英語の文書をコンパイルするために作られたので、日本語の文書に対応するにはそれなりの拡張が必要になる。TeXの日本語拡張版がpTeXである。TeXの高機能版であるLaTeXの日本語拡張版はpLaTeXだ。さらにLaTeXの進化版のLaTeX2eの日本語拡張版のpLaTeX2eというものもある。だいたい重要な所をまとめると次の表みたいな感じになる。
「XeTexとかLuaTeX使えば最強じゃね?」と思われるかもしれないが、そのとおりである。しかもこれらはフォントの指定も出来る。
しかしそれを阻むものがある。学会指定のスタイルファイルである。LaTeX2eもしくはpLaTeX2eに対応したテンプレートが配布されることが多いような気がする。本文のtex記法自体はだいたい使いまわせるので、
- スタイルが指定されてない: XeLaTeX (LaTeXをサポートしたXeTeX)
- スタイルが指定されている: みんなそれを使うしかないじゃない(pLaTeX2eが多い)
という具合である。なぜLuaTeXじゃなくてXeLaTeXなのかというと、LuaTeXがまだ評価版であるということ、そのために情報が少ないことが原因である (LuaTeXのバージョン1.0は2012年リリースが予定されていたがまだらしい)。
思わず Lua で LaTeX してみた ~LuaTeX で日本語しない件について~ [電脳世界の奥底にて]
Differences between LuaTeX, ConTeXt and XeTeX – Stack Exchange
ではインストールから出力するまでにやることを書く。
1. インストール
texliveをインストールする。上述のコンパイラが全部インストールされるので便利。windows/mac/linuxそれぞれ利用可能。しかも編集&閲覧ソフトのTeXWorksも同梱される。macではTeXnicleの方がおすすめだけど。
Installing TeX Live over the Internet
2. スタイルを整える
いろいろググったりした結果できたXeLaTeXのファイル群をGitHubに置いておく。thesisとarticle-single、article-multiの2種類。thesisはchapter>section>subsection構成で、articleはsectionから始まる構成。article-multiはファイルを分散させてる。
参考にしたのは以下のサイト
参考文献の管理にはBibTeXを、ソースコードのシンタックスハイライトにはmintedを使っている。
3. コンパイル
BibTeXを使っているので3回コンパイルしなければならない。
#!/bin/sh
mainfile=index
# for mac (add texlive path otherwise.)
PATH=/usr/texbin:/usr/local/bin:$PATH
ENGINE=xelatex
BIBTEX=bibtex
$ENGINE -synctex=1 -file-line-error -interaction=nonstopmode --shell-escape $mainfile
$BIBTEX $mainfile
$ENGINE -synctex=1 -file-line-error -interaction=nonstopmode --shell-escape $mainfile
$ENGINE -synctex=1 -file-line-error -interaction=nonstopmode --shell-escape $mainfile
後TeXnicle用のエンジンはgistに置いた。
Drunkar / xelatex_bibtex_minted.engine
試しにgithubから取ってきてコンパイルできたらOK.
$ git clone git@github.com:Drunkar/tex-template.git
$ cd tex-template/thesis
$ sudo chmod 755 build_xelatex.sh
$./build_xelatex.sh
とすればindex.texがこんな感じでできる。
article-single, artice-multiも同様。
4. Jenkinsでやる
まずGitLabにリポジトリを作る。
Jenkinsにも同様のプロジェクトを作ってビルドスクリプトに上記のbuild_xelatex.shを貼り付ける。必要ならパスを追加する。
pushでビルド開始するようにgitlab pluginとかを入れる。GitLabとJenkinsが同一サーバの場合は前回の記事を参照。
コメント