运行 for 循环指定次数

运行 for 循环指定次数

考虑一下这个MWE:

\documentclass[varwidth=3in, multi={my}, crop, ignorerest=true]{standalone}
\usepackage{polyglossia, lipsum, forloop}
\usepackage[most, magazine]{tcolorbox}
\usetikzlibrary{patterns, calc}

\newcounter{loopcntr}
\newcommand{\rpt}[2][1]{%
  \forloop{loopcntr}{1}{\value{loopcntr}<#1}{#2}}

\tcbset{
  breakable,
  break at=3 in,
  reset box array,
  store to box array
}

\newtcolorbox{mybox}[2][]{%
  enhanced,
  title=#2,#1}

\newcommand{\xxbody}{%
  \lipsum[1-2]%
}

\begin{document}

\begin{mybox}{Heading}

  \xxbody{}

\end{mybox}%

\boxarraygetsize{\mysize}

% \rpt[\mysize]{
\rpt[10]{
\begin{my}%
  \useboxarray{\theloopcntr}%
\end{my}%
}

\end{document}

如果我为宏指定一个具体计数\rpt,它就会起作用。但最后会产生几页空白页。

为了避免这种情况,如果我使用\mysize宏(如注释行中所示),它会产生“未定义的控制序列”错误。

可能存在什么问题?我该如何解决?

答案1

您使用的循环宏显然会生成一些未定义宏的结构。这个问题可能可以修复,但从这里开始最简单的解决方案是\mysize在调用之前进行扩展,这样就不会出现错误

\expandafter\rpt\expandafter[\mysize]{

相关内容