1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

vimtexにおいてmintedを使う時の設定

Last updated at Posted at 2019-07-04

はじめに

日頃からvimtexを使っているが、コードをレポートに記述する際listingsというパッケージよりmintedというパッケージの方が綺麗にコードが載せられそうだったので、使おうと思った時ハマったことについてかく。

インストールなどについてはこの記事が丁寧に書いてくれてるので省略します。

minted VS listings

listings_vs_minted.png

mintedlistingsの大きな違いは、mintedは外部ライブラリを用いてシンタックスハイライトをするのに比べ、listingsはtex内でハイライト作業を行う。
したがって、この2つのパッケージの差はこの違いによって生じる。

listingsはtex内でコンパイル・ハイライトを行うので簡単に行える上、ユーザ定義がしやすいというメリットがある。逆にいうと、ユーザが定義をしないとハイライトができないというデメリットがあるとも言える。

逆に、mintedはPygmentsというPythonのシンタックスハイライトライブラリを用いるので、ユーザが定義をせずとも綺麗にコードをハイライトしてくれる。
言語もほとんど対応しているのは嬉しい。
また、スタイルをいちいち記述する必要はなく、Pygmentsですでにある以下のスタイルを用いることができる。

['default', 'emacs', 'friendly', 'colorful', 'autumn', 'murphy', 'manni', 'monokai', 'perldoc', 'pastie', 'borland', 'trac', 'native', 'fruity', 'bw', 'vim', 'vs', 'tango', 'rrt', 'xcode', 'igor', 'paraiso-light', 'paraiso-dark', 'lovelace', 'algol', 'algol_nu', 'arduino', 'rainbow_dash', 'abap']

しかし、この外部のライブラリを読んでいるからこその問題が発生した。

問題

vimtexにて、


\usepackage{minted}

とすると


error| Package minted Error: You must invoke LaTeX with -shell-escape flag

と怒られてしまった。要は、外のライブラリを読みたいんだけど読めないということだった。
texは-shell-escapeを許さない仕様になっているので、使えなかったっぽい... (セキュリティ的にも安全ではないので納得)

latexmkrcを書けば良いという記事をいくつか見つけたが、それもうまくいかず(というかあまり気にくわない)、本家のレポジトリissueを見ていたらやはり多くの人がこの問題に突っかかっていた。

以下のように、vimtex_compiler_latexmkoption-shell-escapeを追加したところうまくいった:


  let g:vimtex_compiler_latexmk = {
        \ 'backend': 'nvim',
        \ 'background' : 0,
        \ 'build_dir' : '',
        \ 'continuous' : 1,
        \ 'options' : [
        \   '-pdfdvi',
        \   '-verbose',
        \   '-file-line-error',
        \   '-synctex=1',
        \   '-shell-escape',
        \   '-interaction=nonstopmode',
        \ ],
        \}

最後に

正直、-shell-escapeを常に許していると怖いので、使わないときはコメントアウトしようかと思う

参考サイト

1
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?