用LaTeX中的平衡支架替换平衡支架

时间:2010-06-26 16:44:02

标签: latex replace tex

我如何编写一个(La)TeX命令来替换所有[with {和all] with},假设每个[都有匹配],并且[和]之间的任何括号都是平衡的?它需要能够处理嵌套括号。

例如,我希望能够编写命令\mynewcommand,以便\mynewcommand{{[[{1}{2}][{3}{4}]]}}\mycommand{{{{{1}{2}}{{3}{4}}}}}相同。

1 个答案:

答案 0 :(得分:2)

可能最简单的方法是使用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系统中使用。