すべての [ を { に、すべての ] を } に置き換える (La)TeX コマンドを作成するにはどうすればよいでしょうか。ネストされたブラケットを処理できる必要があります。
たとえば、と同じ\mynewcommand
ようにコマンドを記述できるようにしたい。\mynewcommand{{[[{1}{2}][{3}{4}]]}}
\mycommand{{{{{1}{2}}{{3}{4}}}}}
おそらく最も簡単な方法は、e-TeX と \scantokens を使用することです
\newcommand*\mycommand[1]{%
\begingroup
\everyeof{\noexpand}%
\endlinechar=-1\relax
\catcode`\[=1\relax
\catcode`\]=2\relax
\edef\temp{\scantokens{#1}}%
\expandafter\endgroup
\expandafter\def\expandafter\temp\expandafter{\temp}%
}
これは #1 のマテリアルで \temp を定義しますが、すべての "[" ... "]" ペアは TeX ブレース グループ ("{" ... "}") になります。その後、 \temp を使用して、必要なことを行うことができます。私が言うように、これには e-TeX が必要です。これは、最新のすべての TeX システムで利用できます。