生成可迭代列表

生成可迭代列表

我需要从包含可扩展内容(变量和数学运算)的前一个列表返回一个可迭代列表(将在另一个步骤中使用)。

\def \scale {1} 
\pgfmathparse{\scale * 0.6}\edef\hc{\pgfmathresult}
%morphology coordinates x,y,..
\newcommand*{\xMorph}{0,0,0,0, 0, 0,0,0, \hc*0.5,-\hc*0.5,0,0,0, -\effdepth*0.5}

所使用的方法包括扩展列表的中间步骤,但在该过程之后,列表无法按照要求进行迭代。

%expand aux func
\newcommand*{\expandlist}[1]{%
\edef\resultado{}
\foreach \i [remember=\i as \li (initially 0), evaluate=\i as \r using \i+\li]in {#1}{  
     \resultado{ \resultado \r}%
    }
}

一个简单的测试,比如一个 for 循环,每次获取一个元素,

\begin{document}
%first case
\xMorph
%second case
\expandafter\def\expandafter\xLp\expandafter{\expandlist{\xMorph}}
\xLp
%third case
\foreach \k [count=\cn] in {\xLp}{\cn}

从前面的代码来看,结果是:第一个是没有扩展的列表(错误),第二个是扩展的列表,但作为单个元素(1),如 for 循环得出的 count 变量(\cn)中所示。

0,0,0,0, 0, 0,0,0, 0.6*0.5,-0.6*0.5,0,0,0, -0.5*0.5   000000000.3-0.3000-0.25 1

任何想法都会受到欢迎。

相关内容