【解決済】vimtex 更新で vim + vimtex + latexmk + (p)latex + dvipdfm(x) 環境が壊れる問題

すぐに修正されると良いのだけれど・・・。

https://github.com/lervag/vimtex/commit/144e60649a0214b09ee78d3aeff4eb569daea194

のコミットで、vimtex から latexmk を使う場合に自動で -pdf オプションが付加されるようになりました。

platex + dvipdfmx の組み合わせは、日本語文書を作成に今もよくつかわれているので注意が必要。

とりあえず直したい、という場合には、vimtex がインストールされているディレクトリで、

$ git checkout 774e0309b1e4b30310ed8b5764cd131014148288

とする。これで、原因となっている変更前の状態に戻すことができる。
(ただし、git pull で最新にすることができなくなる。修正されたら、git で操作するか、インストールし直せば OK)

Issue を立ててみたので、どうなるか見守ってみる。

https://github.com/lervag/vimtex/issues/1142

これを機に LuaLaTeX 等に切り替えるべきなのかもしれない・・・。

6/22/2018  追記:

https://github.com/lervag/vimtex/commit/9d62a40af7bf141e0020cb264c202ee66830ce90

で修正されました。

https://github.com/lervag/vimtex/issues/1142

にある通り、以下を .vimrc に追加する。

let g:vimtex_compiler_latexmk_engines = { '_' : '-pdfdvi' }

7 thoughts on “【解決済】vimtex 更新で vim + vimtex + latexmk + (p)latex + dvipdfm(x) 環境が壊れる問題

  1. たかすけ

    ありがとうございます。おかげで,windows 10 64bit 上の vim8.1 64bit (vin-win32) + dein + vimtex 環境で uplatex (Texlive2018)が無事動くようになりました。心より感謝します。
    ところで,上記 vim8.1 の gvim.exe において,deoplete で vimtex の補完をしようと,help のとおり,

    if !exists(‘g:deoplete#omni#input_patterns’)
    let g:deoplete#omni#input_patterns = {}
    endif
    let g:deoplete#omni#input_patterns.tex = g:vimtex#re#deoplete

    を .vimrc に入力したものの,gvim実行時に g:vimtex#re#deoplete 未定義の関数です とエラーが出て補完ができません。お知恵を貸していただけませんでしょうか・・・。

    返信
    1. teruo 投稿作成者

      コメントありがとうございます。役に立ったようで何よりです。

      さて、`g:vimtex#re#deoplete` の件ですが、私は同じ環境を使っていないので試すことができませんが、エラーメッセージから判断するに、代入が行われた時点でまだ`vimtex`が読み込まれていないのではないでしょうか。`dein`のプラグイン読み込みの順番や、設定が評価されるタイミングを考慮して一度`.vimrc`をチェックされると良い思います。

      具体的なアドバイスができず、すみません。

      返信
  2. たかすけ

    アドバイスありがとうございます。
    只今,実機より離れているので明日以降試してみます。

    返信
  3. たかすけ

    deopleteをtomlで,vimtexをlazy.tomlで on_ft = ‘tex’ として遅延読み込みしたうえで, hook_source で deopleteの読み込みをしたところ,エラーは回避できました。しかし,・・・g:vimtex#re#deoplete ではどのように補完が行われるのかが自分自身,よくわかっていません。
    jedi-vim の様に,たとえば予想されるオブジェクトが自動で表示されるのかなと思っていましたが・・・。とりあえず,insert mode において C-x C-o で補完一覧は出ます。でもこれって,・・・g:vimtex#re#deopleteしなくてもできる補完ですよね。
    ・・・g:vimtex#re#deoplete で広がる世界が良くわかっていないので,うまく動いているのかどうかも分からない次第です。

    返信
    1. teruo 投稿作成者

      私の場合は、 \begin{ と入力すると、環境の候補が出ます。試してみてください。

      返信
  4. たかすけ

    たびたび申し訳ありませんでした。
    https://qiita.com/takezo/items/809d53ecd37c438bac9e
    様で紹介されている通り,deopleteを設定したところ,\begin{ で環境の候補が出るようになりました。neosnipet を入れたことによって問題は解決ということになるでしょうか。
    しかし,deopleteの読み込みがなぜlazy.tomlにあるのか,かつ hook_addではなく,hook_source にする必要があるのか(上記の場合だと,tomlファイルに書いてオプションをhook_addでも良いのではないかと・・・)などまだまだ勉強が足りません。がんばってみます。
    しかし,補完候補が合わられるまで2秒ほど待たされるのはちょっと予想外でした。ここはマシンパワーでしょうね。
    ご相談にのっていただき,ありがとうございました。

    返信
  5. たかすけ

    追加ですみません。
    windowsの環境では,deoplete(python3環境はAnacondaを使用しました)では補完候補が表示されるまではずいぶん遅く,使い物にならないのですが,neocompleteでは補完候補表示も早く,非常に快適でした。ご参考まで。

    返信

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください