for 循环内的 \renewcommand 不起作用

for 循环内的 \renewcommand 不起作用

在下面的 MWE 中,我将提供命令,然后尝试通过for 循环内的\asdasd命令为其赋予定义“asdasd” 。\renewcommand

但我不知道出了什么问题:这个 TeX 文件根本没有生成任何文档。

\documentclass{article}

\usepackage{pgffor}

\newcommand{\DefineAsdAsd}{%
    \providecommand{\asdasd}{}%
    \foreach \cyclesmade in {1,...,2} {%
        \renewcommand{\asdasd}{asdasd}%
    }%
}

\begin{document}

\DefineAsdAsd
\asdasd

\end{document}

这怎么可能?

答案1

这可能是重复的。蒂克兹 保护\foreach组内循环内的所有内容,因此您的\renewcommand循环位于 for 循环的本地。使用\gdef而不是\renewcommand

\documentclass{article}

\usepackage{pgffor}

\newcommand{\DefineAsdAsd}{%
    \providecommand{\asdasd}{}%
    \foreach \cyclesmade in {1,...,2} {%
        \gdef\asdasd{asdasd}%
    }%
}

\begin{document}

\DefineAsdAsd
\asdasd

\end{document}

相关内容