我正在尝试使用该\foreach
命令来创建具有以下相同效果的东西:
\begin{align*}
1 \\
2
\end{align*}
以下代码无法运行:
\begin{align*}
\foreach \x in {1,2} {
\x \\
}
\end{align*}
错误信息如下:
! Extra }, or forgotten \endgroup.
我尝试做了一些研究,但找不到任何有用的东西(对我而言),因此任何建议或意见都将不胜感激。谢谢!
答案1
由于扩展问题,这些事情很棘手,请参阅答案这个问题。这些答案建议加载更多包并放弃\foreach
。当然,如果你不坚持,\foreach
你可以在没有包的情况下这样做,并使用递归进行循环:
\documentclass{article}
\usepackage{amsmath}
\newcounter{pft}
\def\pftloop{\stepcounter{pft} \number\value{pft}\\ \ifnum\number\value{pft}<2
\pftloop\fi}
\begin{document}
\begin{align*}
\setcounter{pft}{0}\pftloop
\end{align*}
\end{document}
更复杂的例子也有效。
\documentclass{article}
\usepackage{amsmath}
\newcounter{pft}
\newcounter{sum}
\def\pftloop{\stepcounter{pft} \setcounter{sum}{\number\value{pft}}
\number\value{pft}+\stepcounter{pft}\number\value{pft}
\addtocounter{sum}{\number\value{pft}}
&=\number\value{sum}\\ \ifnum\number\value{pft}<9
\pftloop\fi}
\begin{document}
\begin{align*}
\setcounter{pft}{0}\pftloop
\end{align*}
\end{document}