这是我的原始代码:
\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}
然后它就会起作用。