PythonTeXとSymPyの組み合わせを見てみる。なおSymPyの解説はありません。
SymPyとは簡単に言うとPythonで記号計算を行うためのパッケージである。Sage Mathでも使われている。
PythonTeXと組み合わせることによってSymPy出力結果をすぐLaTeXドキュメントに組み込むことができる。
今回はPythonTeXに同梱しているマニュアルであるpythontex_gallery.pdfから引用する(つまり手抜きである!!!)
\documentclass[a4j]{jsarticle} \usepackage{amsmath} \usepackage[T1]{fontenc} \usepackage[utf8]{inputenc} \usepackage{lmodern} \usepackage[dvipdfmx]{graphicx} \usepackage[makestderr]{pythontex} \restartpythontexsession{\thesection} \usepackage[framemethod=TikZ]{mdframed} \title{微分・積分 公式表} \author{} \date{\today} \begin{document} \maketitle \begin{sympycode} var('x') # Create a list of functions to include in the table funcs = ['sin(x)', 'cos(x)', 'tan(x)', 'sin(x)**2', 'cos(x)**2', 'tan(x)**2', 'asin(x)', 'acos(x)', 'atan(x)', 'sinh(x)', 'cosh(x)', 'tanh(x)'] print(r'\begin{align*}') for func in funcs: # Put in some vertical space when switching to arc and hyperbolic funcs if func == 'asin(x)' or func == 'sinh(x)': print(r'&\\') myderiv = 'Derivative(' + func + ', x)' myint = 'Integral(' + func + ', x)' print(latex(eval(myderiv)) + '&=' + latex(eval(myderiv + '.doit()')) + r'\quad & \quad') print(latex(eval(myint)) + '&=' + latex(eval(myint+'.doit()')) + r'\\') print(r'\end{align*}') \end{sympycode} \end{document}
あとはいつも通り
platex -kanji=utf8 tableofcalc.tex pythontex tableofcalc.tex platex -kanji=utf8 tableofcalc.tex dvipdfmx tableofcalc.dvi
とすれば学部1年生で学ぶ微積分学の教科書にあるような公式表を得ることが出来る。
PythonTeXとMatplotlibの場合は、別にしてもよさそうな気がしないでもないが、この例はPythonとSymPyの面目躍如であると私は思う。