考虑一下这个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]{