PythonTeX

PythonTeX は,LaTeX ドキュメントの中に埋め込んだ Python コードを実行して,その結果を元の場所に出力するためのパッケージです. Python 以外に Ruby, Julia, Octave, Sage, Bash, Rust もサポートしています.



インストール

TeX Live, W32TeX には含まれています.

PythonTeX の利用には,パッケージ自体の他に Python のインタプリタと Pygments という Python モジュールが必要になります. Pygments は pip を使ってインストールできます.

Python 3 を使用している場合は

pip3 install pygments

Python 2 を使用している場合は

pip2 install pygments

でインストールできます.

使い方

例として,次を pow.tex として保存してみましょう.

\documentclass{article}
\usepackage{pythontex}
\newcommand{\pow}[2]{\py{#1**#2}}
\begin{document}
$2^{10}=\pow{2}{10}$.
\end{document}

これを pdflatex で処理します(platex でも大丈夫です).

$ pdflatex pow
...
No file pythontex-files-pow/pow.pytxmcr.
Run PythonTeX to create it.
Package PythonTeX Warning: Missing autoprint content on input line 5.
...

このようなログが出て,pow.pytxcode という中間ファイルが生成されます. これを pythontex で処理すれば,Python コードの実行結果が含まれた pythontex-files-pow/pow.pytxmcr というファイルが生成されます. さらにもう一度 pdflatex を実行すれば,2の10乗の値が正しく埋め込まれます.

$ pythontex pow
This is PythonTeX 0.14

--------------------------------------------------
PythonTeX:  pow - 0 error(s), 0 warning(s)

$ pdflatex pow
...

まとめると,PythonTeX では latex → pythontex → latex の順でコマンドを実行する必要があります.

注意点

pythontex を実行したときに

Traceback (most recent call last):
  File "c:/w32tex/share/texmf-dist/scripts/pythontex/pythontex.py", line 55, in
<module>
    import pythontex3 as pythontex
  File "c:\w32tex\share\texmf-dist\scripts\pythontex\pythontex3.py", line 61, in
 <module>
    from pygments.styles import get_all_styles
ImportError: No module named 'pygments'

のように ImportError: No module named 'pygments' のエラーが発生する場合は pygments がインストールされていません.インストールを参照して下さい.

関連リンク


Last-modified: 2017-08-17 (木) 00:34:01 (826d)