いろいろやりました。
とりあえず流石にもういいかなってところまできたのでそろそろ何したのかをまとめようかと思います。
ぶっちゃけ、 tex の補完などは全部yatex任せなので特に何も加えておりません。
やりたかったこと(実現したこと)をまとめておきます。
1. 使用エディタは emacs で yatex を使っている
2. emacs からタイプセットをして、プレビューもしたい。
2. .tex , .aux, .pdf, ファイルは保存し、他の人たちはタイプセットするごとに自動で消したい。
3. .tex, .pdf はバックアップディレクトリとして別の場所に保管したい。
4. .pdf ファイルは ./pdf ディレクトリを作り移動したい(.tex ファイルと同じディレクトリにあるのがいや)
5. .aux はバックアップのみでよい
これくらいは目標に、色々とシェルスクリプトばかり書いてみました。
OS は ubuntu14.04
tex ディストリビューションはtexliveです。
まずは ~/.emacs.d/init.el の抜粋
;; command 類の定義 (add-hook 'yatex-mode-hook '(lambda () (setq tex-command "~/tools/em-latexmk.sh") ; 自作 (setq dvi2-command "~/tools/em-evince.sh") ; これも自作(簡単だけど) (setq tex-pdfview-command "evince") ; viewer コマンド ) )
実際にはもう少しあるけれど、要するに \C-c C-t j すると上の em-latexmk.sh が稼働して、
ビューワーは evince ってことです。このevince を起動するときに小細工しているのか ~/tools/em-evince.sh
僕は自作シェルスクリプトを基本的に ~/tools/ 直下に置いているのでこうしています。パスを通しているけれどなんとなく…
さて、 em-evince.sh の中身は簡単。
#!/bin/bash evince ./pdf/$1
カレントディレクトリにあるpdf/以下の引数の.pdf を開け。という指示。
実は、 em-latexmk.sh で mkdir pdf && mv .pdf ./pdf/ という指示を出しているので、 こういう小細工をしています。
別にカレントディレクトリにtexファイルとpdfファイルが共存していてもいいという人はこんなことしなくてOK.
さて、 em-latexmk.sh は実は latexmk と ふたつの自作スクリプトからなります。めんどくせぇ。。。
#!/bin/bash latexmk -bibtex $1 #説明省略 delete_typeset_files.sh $1 #自作 cp_pdf_and_tex.sh $1 #自作
ということで中身を見ていく。
delete_tyoeset_files.sh は実はこの前記事に載せたものとほぼ同様なので省略。
#!/bin/sh ## 絶対パスを取得する path=$1 dir=$(cd $(dirname $path) && pwd) file=$(/usr/bin/basename $path) abs_path=$dir/$file file_name=${file%.*} file_ext=${file##*.} pdf_file=${file_name}.pdf if [ $file_ext = 'tex' ]; then backup_dir=~/Desktop/doc/$file_name # backup_dir がなければつくる if [ ! -d $backup_dir ]; then mkdir $backup_dir fi # バックアップをとる cp $abs_path $backup_dir/$file cp $dir/$pdf_file $backup_dir/$pdf_file mv $dir/${file_name}.aux $backup_dir/${file_name}.aux # ./pdf/ がなければ作る if [ ! -d ./pdf ]; then mkdir ./pdf fi mv $dir/$pdf_file ./pdf/ else echo このスクリプトはtexファイルのバックアップを目的として作られています。引数は.texファイルを指定してください。 fi
基本的にはcp してるだけです。
これで たとえば test.tex をEmacs 上で \C-c \C-t j をすると、
~/Desktop/doc/test/ ディレクトリと ./pdf/ が作られ、
カレントディレクトリには test.tex
./pdf/ には test.pdf
~/Desktop/doc/test/ には test.tex, test.pdf, test.aux
が自動で作られます。楽ですね。
全く解説していないけれど疲れた。