キャラクタ表のマクロ


のような表を作るマクロの例*1。参考は、「TeXブック」。
testfont.tex($TEXROOT\share\texmf\tex\plain\base\)をダイエットして、ここまできました。

\documentclass{jsarticle}

% 新しいカウンタ n の作成
\newcount\n

% キャラクタ表マクロ
\def\charactertable{%
  \global\n=0       % 初期値0の代入
  \halign \bgroup   % \halign \bgroup --> body内で \egroup
  &## \cr           % テンプレート
  \body}            % 表本体

% キャラクタ表 本体マクロ
\def\body{%
  \ifnum\n=256 \egroup   % 256個処理したら終了
  \else \line \body      % それ以外は行の出力と本体の再帰呼出し
  \fi}

% キャラクタ表 行マクロ
%   :マクロを16個
\def\line{\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\cr}

% キャラクタ表 :マクロ
%   \char<n>を出力して、n のインクリメント
\def\:{&\char\n\global\advance\n 1}

\begin{document}
\charactertable
\end{document}

\loop\repeatで作るつもりだったのですが、\halign の&や\crの扱いが厄介で、上手く行かなかったです。まぁ、いいとします。この前作った文書では、256個平書きしてたからなんか悔しくて作ってみました。

*1:例示したのは標準フォントcmr10なので、128個しか表示されていません。図の後、空白行が8行出力されてます。