pgffor의 foreach는 요소의 "배열"을 취할 수 있습니다. 요소와 매핑된 값이 모두 필요하기 때문에 다른 배열(조회 테이블)을 사용하여 해당 요소를 매핑해야 합니다.
예를 들어, 내가 암호화를 수행하고 있고 비표준 방식으로 문자를 숫자에 매핑했다고 가정해 보겠습니다.
\foreach \i in {a,b,c,d,e}
{
\i = \lookup{\i}{\data}
}
데이터가 어디에 있는지, 다음과 같은 연관 배열이 있는 것 같아요.
a = 12, b = 16, c = 3, d = 9, e = 19
그러면 foreach가 인쇄할 것입니다.
a = 12
b = 16
c = 3
d = 9
e = 19
또한 간단히 다른 배열을 만들 수도 있고 동시에 이를 단계별로 살펴보고 싶습니다.
\foreach \i,\j in {a,b,c,d,e} , {12,16,3,9,19}
{
\i = \j
}
(나는 어떤 종류의 중첩 루프를 원하지 않습니다. 그것은 내가 하려는 일이 아닙니다.)
가장 쉬운 솔루션이 더 좋습니다. 나는 극도로 복잡한 일을 하려는 것이 아니다.
답변1
질문에는 몇 가지 옵션을 염두에 두고 수행하지 않을 수도 있지만 질문이 전혀 명확하지 않습니다. 나는 다음과 같은 것을 추측하고 있습니다.
\documentclass{article}
\usepackage{pgffor,pgfmath}
% Got some array from Excel via =randbetween(1-26)
\def\Sometwentysixnumarray{{11,4,8,12,17,20,13,9,12,16,4,19,6,11,4,26,10,13,14,15,15,1,5,1,26,14}}
\begin{document}
\foreach \x[count=\xi from 0] in {a,...,z}{
\pgfmathparse{\Sometwentysixnumarray[\xi]}
\x = \pgfmathresult,
}
\end{document}