学部1年の頃からほそぼそと使い続け,自分のLaTeX環境がだいぶ固まってきたので,再構成して晒しておく(これ).もうM2以降で大きくLaTeX環境を変える事はないだろうし.
学部1年生や4年生等,新たにLaTeXを使い始める人の助けになれば.
目的
以下の点を考慮してLaTeX環境を構築した.
- できるだけLaTeXを書かないで済む.
- LaTeXを書かざるをえない場合にすぐLaTeXを書ける.
- 諸々のコマンドラインツールを適宜組み込める.
- 後からコミットごとの差分表示ができる.
- 表に見えるファイルを汚さない.
の4点.1はLaTeXを描くのが面倒なため,一方でLaTeXの方が早い場面もあるので,2も考慮している.また,3は自分がgraphviz
を使ったり,その場で適当にスクリプトを書くことが多いために考慮した.4は変更箇所を他の人に見せる時に便利なので考慮している.
最後に,5は,hoge.log
とかTeXが生成するファイルが表に見えるとtemrinal操作等の邪魔になるので,裏に隠したかった.
逆に考慮していないのは,
- コマンドの自動補完の効きやすさ(基本的にmacroで短くして対処する)
- 多人数で編集する事(好き放題できないし)
- Windows/OS Xユーザ(動作確認できる環境がない)
あたり.
また,基本的にテキストエディタでLaTeX等を書く事を想定しているので,ShareLaTeX等使う人には使いづらいと思う.使ったこと無いからわからないけど.
概要
編集環境
編集環境は上図の通り.
原則として,記述にmarkdownを,図にdotとsvgを使用し,この2つはPDFに変換する.また,UIの画像を出す時などはHTMLをphantomjs
を使ってPDFに変換して使用する.また,LaTeXで書いたほうが早い場面は,LaTeXを直書きしたり(e.g. クラスファイルとか),markdown内に数式を埋め込んだりする.
編集ツールは,テキストエディタとInkscape等を利用する事を想定している.
ビルド環境
ビルドにはmake
を利用.いくつかのビルドツールを検討したが,慣れとコマンドラインツールの呼び出しやすさを考えるとmake
が最適との結論に達した.
ビルド高速化のためのmake draft
,1LaTeXファイルにまとめるためのmake assemble
,差分をとってpdf化するpdf-diff.sh
を用意している.
使い方
レポジトリのREADME参照.
YeomanとPhantomjsを使っているのでNode.js必須.その他pandoc等に依存している.