マクロツイーター

はてダから移行した記事の表示が崩れてますが、そのうちに直せればいいのに(えっ)

PerlTeX でナベアツしてみる件について

先日 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 のナベアツが見たい人はあべのりさんの日記を参照しよう。

*1:かなり昔から入っているようである。

*2:LaTeX から Perl を呼ぶ」のではないので、shell escape 有効化は不要である。