Forloop 宏在一定条件下不能与其他宏一起工作

Forloop 宏在一定条件下不能与其他宏一起工作

这是我的原始代码:

\documentclass{article}
\usepackage{xstring}
\usepackage{ifthen}
\usepackage{pgfkeys}

\newcommand{\setvalue}[1]{\pgfkeys{/variables, #1}}
\newcommand{\getvalue}[1]{\pgfkeysvalueof{/variables/#1}}
\newcommand{\declare}[1]{%
 \pgfkeys{
  /variables/#1.is family,
  /variables/#1.unknown/.style = {\pgfkeyscurrentpath/\pgfkeyscurrentname/.initial = ##1}
 }%
}   
\declare{}
\begin{document}
\setvalue{varL = \StrLen{Hellow}}
\newcounter{loop}
\forloop{loop}{1}{\value{loop}< \protect\getvalue{varL}}{{\arabic{loop}}}
\end{document}

这只是我的更大的宏的开始,但是 LaTeX 不喜欢这个命令:

\value{loop}< \protect\getvalue{varL}

我需要将单词的长度发送到 \fooloop 宏,它是可变的。

我该如何解决这个问题?

提前感谢您。

答案1

代码应该像这样改变:

\begin{document}
\StrLen{Hellow}[\varL]
\newcounter{loop}
\forloop{loop}{1}{\value{loop}< \protect\getvalue{varL}}{{\arabic{loop}}}
\end{document}

然后它就会起作用。

相关内容