環境
macOS Sierra
TeXLive 2017
Texpad 1.8.7
pLaTeX→dvipdfmx
mintedとは
texドキュメント中でいい感じにソースコードを表示してくれるパッケージです。
listingsパッケージよりお手軽にsyntax highlightが使えます。
使い方についてはOverleafの解説が丁寧です。
https://www.overleaf.com/learn/latex/Code_Highlighting_with_minted
インストール
まずは何はともあれmintedを入れます。
https://ctan.org/pkg/minted からzipを落として解答、そのディレクトリでmake
すると
minted.styが出てくるので、texmfとかスタイルファイル置き場に入れます。
僕はとりあえずソースと同じディレクトリに置いときました。
これに加えてpythonのpygmentizeパッケージも必要ですが、Anacondaでpythonを導入した場合は最初から入ってるはず。
必要に応じてインストールしてください
shell escapeを許可する
texpadの画面左上の設定ボタン(Tweak typeset setting..)からタイプセット設定画面を開き、
Generalの下の方にあるEnable--shell-escapeにチェックを入れる。
pymintedシンボリックリンクを貼る
このままだとtexpadがpygmentizeを見つけられないので、
texと同じディレクトリにpygmentizeのシンボリックリンクを置く。
まずターミナルから which pygmentize
でpygmentizeの場所を調べましょう。
場所がわかったらシンボリックリンクを張ります。僕の場合は
sudo ln -s /Users/resnant/anaconda/bin/pygmentize /Library/TeX/texbin
「中間ファイルを隠す」をオンにしてる場合はプリアンブルに次を追記
これを忘れて、エラーは出ないけどドキュメントの該当部分に何も表示されずしばらくハマりました。
\usepackage[outputdir=.texpadtmp]{minted}
キャッシュを無効にする
Package minted Error: Missing Pygments output; \inputminted was~
とか怒られた場合は、プリアンブルでcache=falseオプションを追記します
\usepackage[cache=false]{minted}
あるいは中間ファイルを隠してる場合は
\usepackage[cache=false, outputdir=.texpadtmp]{minted}
#おしまい
お疲れ様でした。楽しい$\TeX$ライフを!
最後に例も示しておきます。
\documentclass{jsarticle}
\usepackage[cache=false, outputdir=.texpadtmp]{minted}
\begin{document}
\begin{minted}{python}
import numpy as np
print('hello world')
def dummyfunc():
pass
\end{minted}
\end{document}
ちなみに、プリアンブルで\usemintedstyle{monokai}
とかやればカラースキームも変えられます。
黒背景のほうが見やすい場合もあると思うので、その時はminted環境を宣言する時にbgcolorオプションを付けます。
\begin{minted}[bgcolor=Black]{python}
詳しくはoverleafの解説をどうぞ
https://www.overleaf.com/learn/latex/Code_Highlighting_with_minted
https://www.overleaf.com/learn/latex/Using_colours_in_LaTeX
困っている点
僕の環境ではなぜかpythonコード中のtabが^^Iと出力されてしまいますが、原因がよくわかってないので今のところ未解決です。。
参考
https://qiita.com/la_float/items/2884a4d80a54ffa89a34
http://muscle-keisuke.hatenablog.com/entry/2015/11/06/182214