python.styを試してみた
LaTeXの文書の中にPythonのコードが埋め込める,ということでなかなか面白いです.
Python inside LaTeX
sampleではpythonの標準モジュールでないsympy,matplotlib(pylab)を使っているのでインストールしておく. どちらともMacPortsからインストール可能.
% sudo port install py25-sympy25 % sudo port install py25-matplotlib
# matplotlibをインストールしたとき途中でエラーが起きるが,その度にcleanするとうまくいく.
python.styはLaTeXの文書がある同じディレクトリにおいておくか,~/texmf/tex/latex/ディレクトリに入れる.あとは普通にLaTeXで文書を書く.
\documentclass[12pt]{jsarticle} \usepackage[dvipdfmx]{graphicx} \usepackage{amsmath} \usepackage{python} \begin{document} \section{数式の描画} 2次方程式とくぞー \begin{python} from sympy import * x = Symbol('x') ss = solve(x**2+3*x+4, x) print latex(ss, inline=False) \end{python} \section{グラフの描画} \begin{python} from pylab import * t = arange(0.0, 2.0, 0.01) s = sin(2*pi*t) plot(t, s) xlabel('time(s)') ylabel('voltage(mv)') grid(True) savefig('sample.eps') print r'\includegraphics[scale=0.5]{./sample.eps}' \end{python} \end{document}
そのあとLaTeXを実行し,dviをpdfに変換する.
% platex -shell-escape pythonsty_test.tex % dvipdfmx pythonsty_test.dvi
# -shell-escapeは\write18コマンドでシェルコマンドを実行できるようにするオプション.
sympyでシンボリック計算を行いそのままLaTeXにのっけることができるというのは便利かもしれない.Rubyのコードも埋めることができるruby.styを作ってみよう.