あと一歩?:quickrun.vimでTeX編集してpdfで見る.
前回書いたエントリーについたコメントを参考にいたしまして、.vimrcにこういう風に書いてみた.
let g:quickrun_config = { \ 'tex' : { \ 'command' : 'platex-utf8', \ 'exec': ['%c %s', 'dvipdfmx %s:r.dvi', 'open %s:r.pdf'] \ } \}
これで、.texを開いて\rすれば、確かにpdfまで見れました!
で、大満足と行きたかったんですが、まだ問題点がありました.変更を加えて保存せずに(:wしないで)、\rをすると、.dviが開けないぜとエラーがでてしまいます.で、例えば4.log、4.aux、4.dviといったファイルがディレクトリに生成されていた*1.
もちろん、保存してから、\rをすれば、ちゃんと成功します.妥協案として、保存も組み入れておく方法しか僕は思いつかなかったorz つまり
'exec': [':w', '%c %s', 'dvipdfmx %s:r.dvi', 'open %s:r.pdf']
とする.が!ダメだった.
邪推をすると、おそらくdviまでは出力している.けど、dviを出力してる場所がカレントディレクトリじゃなくて、どっか(/varの遥か下)の場所になってる.dvipdfmx %s:r.dviのときに、その場所を指定できれば、pdfを出せると.そして、また同じくその場所にあるpdfを指定して、openをしてやればいいのかなぁーと.
もしくは、platex-utf8するときに、出力するファイルの場所を指定するように書き換える.
で、第三の方法としては、ujihisaさんの言うように、別にスクリプトを書いてしまうか.
僕が今週末まではかなり忙しいので、すぐにやらずに保留にしますが、近日中にどうにか自力で*2解決しよう.
追記
具体的な設定について.まず僕が使っているquickrun.vimはというと、
" Run commands quickly. " Version: 0.2.0 " Author : thinca
と書いてあるやつです.そして.vimrcに書いた内容は、上に書いたのと同じで、
let g:quickrun_config = { \ 'tex' : { \ 'command' : 'platex-utf8', \ 'exec': ['%c %s', 'dvipdfmx %s:r.dvi', 'open %s:r.pdf'] \ } \}
です.まず、うまくいったとき(つまり、保存しちゃったとき)に表示される内容は、(test.texを編集している)
This is pTeX, Version 3.141592-p3.1.10 (utf8.euc) (Web2C 7.5.4) (/Users/fijixfiji/test.tex pLaTeX2e <2006/11/10>+0 (based on LaTeX2e <2003/12/01> patch level 0) (/opt/local/share/texmf/ptex/platex/base/jarticle.cls Document Class: jarticle 2006/06/27 v1.6 Standard pLaTeX class (/opt/local/share/texmf/ptex/platex/base/jsize10.clo)) (./test.aux) [1] (./test.aux) ) Output written on test.dvi (1 page, 364 bytes). Transcript written on test.log. /Users/fijixfiji/test.dvi -> test.pdf [1] 6238 bytes written
で、編集を加えたときにでてくる内容は、
This is pTeX, Version 3.141592-p3.1.10 (utf8.euc) (Web2C 7.5.4) (/var/folders/KU/KUrNdBzZE8y-VQXHwba-sE+++TI/-Tmp-/v71632/9 pLaTeX2e <2006/11/10>+0 (based on LaTeX2e <2003/12/01> patch level 0) (/opt/local/share/texmf/ptex/platex/base/jarticle.cls Document Class: jarticle 2006/06/27 v1.6 Standard pLaTeX class (/opt/local/share/texmf/ptex/platex/base/jsize10.clo)) No file 9.aux. [1] (./9.aux) ) Output written on 9.dvi (1 page, 360 bytes). Transcript written on 9.log. /var/folders/KU/KUrNdBzZE8y-VQXHwba-sE+++TI/-Tmp-/v71632/9.dvi -> 9.pdf ** ERROR ** Could not open specified DVI file: /var/folders/KU/KUrNdBzZE8y-VQXHwba-sE+++TI/-Tmp-/v71632/9.dvi Output file removed.
です.
また、.vimrcの設定の一行を、open %s:t:rに変更する、つまり
'exec': ['%c %s', 'dvipdfmx %s:r.dvi', 'open %s:t:r.pdf']
として、実行すると、エラーが出て、
Error detected while processing function <SNR>31_quickrun: line 7: Vim(call):E716: Key not present in Dictionary: * function <SNR>31_quickrun..203. .204..207, line 18
となります.
追々記
今もっとも有力な.vimrcの設定:
let g:quickrun_config = { \ 'tex' : { \ 'command' : 'platex-utf8', \ 'exec': ['%c %s', 'dvipdfmx %s:t:r.dvi', 'open %s:t:r.pdf'] \ } \}
編集途中の.texに:QuickRunを行ってもpdfを見るところまでいきます.
残された問題点:
- 一時フォルダにあるファイルにplatex-utf8をしたときに出力したファイルが、カレントディレクトリに4.log、4.aux、4.dviと出力される.おそらく何度もやると、すごいファイルが生成されてしまう.
方針:
各コマンドをきちんと理解しないといけませんね.
続編があります.
ほぼ完成?:quickrun.vimでTeX編集してpdfで見る. - The Answers to the Questions You Never Ask