マクロツイーター

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

TeX芸人実力判定問題、その3

これが解けたら TeX 芸人 5 級相当。*1

LaTeX(ToL)で、以下の要件を満たす命令 \NabeAzzLike を実装せよ。

  • \NabeAzzLike\arabic\Alph 等と同じくカウンタ値出力命令である。
  • \NabeAzzLike{<LaTeXカウンタ名>} は当該のカウンタの値を 10 進表記で出力するが、値が 3 の倍数であるか 10 進表記に数字 3 を含む場合は出力の際にフォントを「Computer Modern Funny Italic」(NFSS 値 = OT1/cmfr/m/it)に変更する(フォントサイズは変更しない)。
  • \NabeAzzLike 自体は完全展開可能である必要はないが、標準 LaTeX の相互参照機能(\ref 等)は正常に動作する必要がある。
  • type1cm パッケージが読み込まれていることを前提とする。

\NabeAzzLike の実装をパッケージ nabeazzlike.sty に記したとすると、次のようなことができるはずである。

\documentclass[a4paper]{article}
\usepackage{nabeazzlike}
\usepackage{type1cm}
\newcounter{version} % カウンタ定義
\begin{document}
% ↓1段目のenumerateの番号を \NabeAzzLike で表示する
\newcommand{\theenumi}{\NabeAzzLike{enumi}} 

Note that some {\LaTeX} fucntions that seem essential to many people
are only provided by additional packages; for example:
\begin{enumerate}
\item graphicx;\label{gra} % 箇条書きにラベルを付ける
\item hyperref;\label{hyp}
\item iamjatex.\label{iam}
\end{enumerate}
% ラベル参照で番号が出力される。当然 3 はアホなはず。
Many of such packages, such as \ref{gra} and \ref{hyp}, are
included in most kind of {\TeX} distributions,
but some, such as \ref{iam}, might not be so.

% ↓もちろん直接使うこともできる
\setcounter{version}{3}
This inconvenience may go away with the advent
of {\LaTeX}\NabeAzzLike{version}.

\end{document}

この文書を 2 回コンパイルすると次のような出力が得られる(はず)。

*1:なんだ 5 級か。だったら安心だ。