先日 W32TeX を更新している時に、ふと、W32TeX に PerlTeX が入っていることに気が付いた。*1折角だから、NabeAzz してみた。
[sample.tex]
\documentclass[a4paper]{jsarticle} \usepackage{perltex} \usepackage{type1cm} \newcommand*{\textFunny}[1]{% {\usefont{OT1}{cmfr}{m}{it}\LARGE #1}% } \perlnewcommand*{\NabeAzz}[1]{ return join(' ', map { ($_ % 3 == 0 || /3/) ? "\\textFunny{$_}" : $_ } (1 .. $_[0])); } \begin{document} 3の倍数と3が付く数字のときだけFunnyになります。 \begin{quote} \NabeAzz{40} \end{quote} \end{document}
……すっきり書けて気分爽快。
PerlTeX は Perl のプログラムから LaTeX を呼ぶという方式で連携を行っている。*2つまり、LuaTeX のような TeX エンジンの拡張ではないので、TeX エンジン自体は任意のものを選べる。上記のソースは pLaTeX を前提(jsarticle クラス使用)としている。この文書を組み版するためには以下のコマンドを実行する。(当然 Perl の処理系が必要。)
perltex --latex=platex sample.tex
ちなみに LuaTeX のナベアツが見たい人はあべのりさんの日記を参照しよう。