“Professors as Writers” に書かれているように,論文を書くのは自らを鼓舞しないといけません.この本は,常に毎日,二時間を執筆に捧げ,居室には「会議中」の札を下げ,電話線を抜き,ネットに接続する機能がない専用のパソコンを用意することを勧めています.手の届く範囲に余計な本がないとさらにいいでしょう.
自分でもこれとは別の工夫をして,執筆環境を整えているのですが,ローテクというか,オールドタイプな技で案外,お気に入りのものになりつつあるので披露しましょう.TeXで執筆するvimユーザ向けと書いた時点で,読者が1/30くらいになること必須ですね.
まず,Bashのエイリアスでwriteコマンド.
write () {
cd $DROPBOX/research/mypaper/wakita-some-writing-project $*;
source $DROPBOX/bin/paperenv;
x p;
if [ -d tex ]; then cd tex; fi;
x v
}
write コマンドを実行すると,執筆作業をするディレクトリに移動し,謎のpaperenvというスクリプトでTeXの環境設定を施し,謎の”x p”コマンドを実行し,もしもtexサブディレクトリがあったらそこに移動し,またまた謎の”x v”コマンドを実行しています.
では,最初の謎.paperenvの中身は,
export PROJECT=`pwd`
PATH=$DROPBOX/research/mypaper/bin:$PATH
export TEXINPUTS=:$PROJECT//
export BIBINPUTS=:$PROJECT/bib
export BSTINPUTS=:$PROJECT/sty
TeX執筆のディレクトリを$PROJECT環境変数に記憶させ,コマンド検索パスに論文執筆用コマンドを保存したディレクトリを指定し,TeX, BibTeX などがこのディレクトリの下のファイルを読み込むように設定しています.TEXINPUTS の設定の最後の “//” は,このディレクトリだけでなくサブディレクトリも(さらに孫ディレクトリも再帰的に)見に行くことを指示しています.
次に,先程の”x p”コマンドですが,もちろんこれは”x”コマンドです.xコマンドは前述の論文執筆用コマンドを保存したディレクトリに保存してあります.
#!/bin/sh
rm -f *~ */*~
cd $PROJECT
paper=`basename $PROJECT`
case ${1:-latex} in
b | bibtex) bibtex pdf/$paper;;
p | preview) open -a Preview pdf/$paper.pdf;;
t | tex | latex) pdflatex -shell-escape -jobname=$paper -output-directory=pdf m;;
v | vi | vim) cd $PROJECT/tex; mvim .;;
esac
つまり,xコマンドは引数に応じて,vimの起動,texやbibtexの起動,プレビューの起動を行います.ターミナルからVimを起動することで,Vimのなかから”!x”とやれば,pdflatexを実行できますし,”!x b”とやればbibtex,”!x p”でプレビューとなります.OS XのプレビューはPDFの更新を認識して,自動的に読み込んでくれるので,普段は,論文を修正,”!x”,”Cmd-Tab”で確認するだけです.これだけの設定があれば,TeXShopもOMakeも不要です.(この設定を作ったのはhomebrewがomakeのサポートを打ち切って難民化したのがきっかけです)
.vimrc に以下を追加すると完璧
<F2> map :!x^M
<F3> map :!x