08/01/23 21:41:49
既存のマクロの定義などを調べてみれば、
そういう場合に使える手を見つけることもできるだろう。
\documentclass{jarticle}
\begin{document}
\makeatletter
\def\kana#1{\@ifundefined{@kana@#1}{■}{\@nameuse{@kana@#1}}}
\def\@kana@a{あ}\def\@kana@i{い}
\def\@kana@u{う}\def\@kana@e{え}
\def\@kana@o{お}\def\@kana@ka{か}
%%% 以下同様
\makeatother
「\kana{a}」と「\kana{zzz}」
\makeatletter
\def\kana#1{%
\protected@edef\@kana@tempa{#1}%
\def\@kana@tempb{■}%
\@tfor\@kana@tempx:={{a}{あ}}{{i}{い}}{{u}{う}}%
{{e}{え}}{{o}{お}}{{ka}{か}}%%% 中略
\do{%
\edef\@kana@tempc{\expandafter\@firstoftwo\@kana@tempx}%
\ifx\@kana@tempa\@kana@tempc
\edef\@kana@tempb{\expandafter\@secondoftwo\@kana@tempx}%
\@break@tfor
\fi}%
\@kana@tempb}
\makeatother
「\kana{u}」と「\kana{zzz}」
\end{document}