PythonTeXを用いてTeXマクロみたいなものを作る話は2回した。
PythonTeX でTeX マクロもどきを作る - 何かを書き留める何か
PythonTeX で \now のようなものを作る - 何かを書き留める何か
PythonTeXは便利だが、PythonTeXを用いたLaTeXファイルを誰かに渡しても相手方の環境にPythonTeXが入ってないと全く役に立たない。そこでPythonTeX依存を脱却する方法を紹介する。これもマニュアルに書いてあるので英語が得意な方は読んで詳しい解説を世に送り出してください。
次のようなLaTeXファイルを用意する。名前はとりあえずdetest.texとしておく。
\documentclass[a4j,papersize]{jsarticle} \usepackage[T1]{fontenc} \usepackage[utf8]{inputenc} \usepackage{otf} \usepackage{lmodern} \usepackage[makestderr,depythontex]{pythontex} \restartpythontexsession{\thesection} \title{Python\TeX 依存からの脱却} \author{Xaro Cydeykn} \date{\today} \begin{document} \maketitle ねえ知ってる? 2の32乗は\py{2**32}なんだよ! The palindrome of Bolton would be \py{"Bolton"[::-1].title()}. \end{document}
今までと違う点は、
\usepackage[makestderr,depythontex]{pythontex}
のようにdepythontexオプションを加えていることである。
これをいつものように組版した後、次のコマンドを実行する
$ depythontex detest.tex
すると、(デフォルトならば)depythontex_detest.texなるLaTeXファイルが作成される。中身は
\documentclass[a4j,papersize]{jsarticle} \usepackage[T1]{fontenc} \usepackage[utf8]{inputenc} \usepackage{otf} \usepackage{lmodern} \title{Python\TeX 依存からの脱却} \author{Xaro Cydeykn} \date{\today} \begin{document} \maketitle ねえ知ってる? 2の32乗は4294967296なんだよ! The palindrome of Bolton would be Notlob. \end{document}
のようにPythonTeXで書かれた部分が置き換わっている。
ただ、これは上手く言った例で場合によっては置き換わらないケースもあったので過信は禁物である。
みんながPythonTeXを使えば解決するのではないだろうか… 日本では独自言語パイソンの報道があったようにPythonはマイナー言語の扱いらしい…