在下面的 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}