Quantcast
Channel: Vimタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 5608

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

$
0
0

はじめに

日頃から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を追加したところうまくいった:

letg: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を常に許していると怖いので、使わないときはコメントアウトしようかと思う

参考サイト


Viewing all articles
Browse latest Browse all 5608

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>