Macのvim-latexの設定

vim-latexの設定を色々見直したので、まとめ。

下記を合わせて参考。

vim-latexのバグ - adragoonaの日記

MacPortsでLaTeXの導入とvim-latex - adragoonaの日記

設定ファイル

せっかちな人の為に、設定ファイルをまずのせておく。以下を.vimrcに記載する。

filetype plugin on
filetype indent on
set grepprg=grep\ -nH\ $*
let g:tex_flavor='latex'
"自動折りたたみ無効
let g:TeX_AutoFolding = 0 
let g:Tex_Folding = 0 
let g:Imap_UsePlaceHolders = 1 
let g:Imap_DeleteEmptyPlaceHolders = 1 
let g:Imap_StickyPlaceHolders = 0 
let g:Tex_DefaultTargetFormat = 'pdf'
let g:Tex_FormatDependency_pdf = 'dvi,pdf'
let g:Tex_FormatDependency_ps = 'dvi,ps'
let g:Tex_MultipleCompileFormats = 'pdf'
let g:Tex_CompileRule_dvi = 'uplatex -synctex=1 -interaction=nonstopmode -file-line-error-style $*'
let g:Tex_CompileRule_ps = 'dvips -Ppdf -o $*.ps $*.dvi'
let g:Tex_CompileRule_pdf = 'dvipdfmx $*.dvi' 
let g:Tex_BibtexFlavor = 'upbibtex'
let g:Tex_MakeIndexFlavor = 'mendex -U $*.idx'
let g:Tex_UseEditorSettingInDVIViewer = 1 
let g:Tex_ViewRule_pdf = 'open -a Preview.app'
let g:Tex_ViewRule_ps = 'open'
let g:Tex_ViewRule_dvi = 'open'

let g:Tex_IgnoreLevel = 9 
let g:Tex_IgnoredWarnings = 
    \"Underfull\n".
    \"Overfull\n".
    \"specifier changed to\n".
    \"You have requested\n".
    \"Missing number, treated as zero.\n".
    \"There were undefined references\n".
    \"Citation %.%# undefined\n".
    \"LaTeX Font Warning: Font shape `%s' undefined\n".
    \"LaTeX Font Warning: Some font shapes were not available, defaults substituted."

補足

let g:Tex_DefaultTargetFormat = 'pdf'

\llコンパイルする場合の出力の拡張子\llコンパイルした場合に、pdfファイルになるまでコンパイルされる。.texファイルがどのようにコンパイルされるかは、以下の設定による。

let g:Tex_FormatDependency_pdf = 'dvi,pdf'

g:Tex_FormatDependency_<format><format>拡張子のファイルを得るためのコンパイル順序を表す。上記の例だと、.tex->.dvi->.pdfに変換される。

let g:Tex_FormatDependency_ps = 'dvi,ps'の場合は、.tex->.dvi->.psの順序でコンパイルされる。

コンパイルの方法は以下の設定による。

let g:Tex_CompileRule_dvi = 'uplatex -synctex=1 -interaction=nonstopmode -file-line-error-style $*'
let g:Tex_CompileRule_ps = 'dvips -Ppdf -o $*.ps $*.dvi'
let g:Tex_CompileRule_pdf = 'dvipdfmx $*.dvi' 

g:Tex_CompileRule_<format><format>コンパイル方法を指定している。コマンドの$*拡張子を抜いたファイル名を表す。

この設定では、\llを押した場合の動作は次のようになる。

  1. g:Tex_DefaultTargetFormatpdfなので、pdfへの変換を試みる。

  2. g:Tex_FromatDepedency_pdfdvi,pdfなので、.tex->.dvi->.pdfの順序でコンパイルをする。

  3. g:Tex_CompileRule_dvi 及び g:Tex_CompileRule_pdfで指定されたコマンドを順に実行する。

let g:Tex_ViewRule_pdf = 'open -a Preview.app'

g:Tex_ViewRule_<format>\lvで`のファイルを表示する時に利用するコマンドで、Macの場合はpdfの閲覧はPreview.appを利用するので、このように指定いる。AdobeReaderを使いたい場合は別途変更する。

let g:Tex_MultipleCompileFormats = 'pdf'

texでcitationやreferenceを書く場合に、2回コンパイルしないと参照番号やcitationが表示されない場合がある。そのような時のため、vim-latexでは\llを押した場合に2回コンパイルを実行するようにすることができる。

pdfを指定している場合は、コンパイル先にpdfを含む場合は、そのコンパイルをもう一度繰り返す。上記の例では、1->2->3->1->2->3で実行される。

複数のformatを指定することも可能。

LaTex Font Warning

vim-latex\llでのコンパイル時にwarningが出ると、途中でコンパイルを終了していしまう。latexのwarningでありがちな以下のタイプのエラー時にはやや面倒なことになる。

LaTeX Font Warning: Font shape `JT2/mc/m/it' undefined
(Font)              using `JT2/mc/m/n' instead on input line 238.
LaTeX Font Warning: Font shape `JY2/mc/m/it' undefined
(Font)              using `JY2/mc/m/n' instead on input line 238.

vim-latexでは、warningを無視する設定を追加できる。

let g:Tex_IgnoreLevel = 9 
let g:Tex_IgnoredWarnings = 
    \"Underfull\n".
    \"Overfull\n".
    \"specifier changed to\n".
    \"You have requested\n".
    \"Missing number, treated as zero.\n".
    \"There were undefined references\n".
    \"Citation %.%# undefined\n".
    \"LaTeX Font Warning: Font shape `%s' undefined\n".
    \"LaTeX Font Warning: Some font shapes were not available, defaults substituted."

g:Tex_IGnoredWarningsは、texコンパイル時の無視する警告を指定している。上記のUnderfullからCitation...までは、デフォルトで指定されている項目である。

LaTeX Font Warning:から始まる2行が新しく追加したもので、これを含むwarningを無視する。(%sは任意の文字列を表す)

g:Tex_IgnoreLevelは、g:Tex_IgnoredWarningsで指定したwarningを何行目まで無視するかである。この場合、上から9行目のLaTeX Font Warning: Some font shapes were not available, defaults substituted.のwarningまで無視する。

おまけ

uplatexでコンパイルする場合は、documentclassにオプションでuplatexをつけないと駄目な場合がある。

以下のようにdocumentclassを変更する。

\documentclass[uplatex,12pt]{jsbook}