
x
각각 과 값이 있는 두 개의 열이 포함된 테이블이 있고 열의 각 행을 포함하는 y
목록을 생성하고 싶습니다 .\coordinates
(x,y)
다음 명령을 사용하여 목록을 생성하는 명령을 정의해 보았습니다 \appto
.
\newcommand{\coordinates}{}
\newcommand{\coordinate}[1]{%
\ifdefempty{\coordinates}
{\appto\coordinates{#1}}
{\appto\coordinates{, #1}}
}
\coordinate{(1,2)}
및 을 호출하면 \coordinate{(2,3)}
가 \coordinates
포함됩니다 (1,2), (2,3)
. 지금까지는 잘 작동합니다.
이제 이것을 명령에 결합하여 테이블의 각 행에 대해 명령을 csvsimple
\csvloop
호출하여 원하는 목록을 생성하고 싶습니다 . \coordinate
불행히도 목록의 출력은 (,), (,), (,), (,)
대신 (1,2), (2,3), (3,4), (4,5)
이므로 TeX는 명령에 숫자를 입력하지 않는 것 같습니다. 여기서 문제가 무엇입니까?
\documentclass{article}
\usepackage{csvsimple}
\newcommand{\coordinates}{}
\newcommand{\coordinate}[1]{%
\ifdefempty{\coordinates}
{\appto\coordinates{#1}}
{\appto\coordinates{, #1}}
}
\begin{filecontents*}{data.csv}
x,y
1,2
2,3
3,4
4,5
\end{filecontents*}
\begin{document}
\csvloop{%
file = {data.csv},%
column names = {x=\x, y=\y},%
command = \coordinate{(\x,\y)}%
}
% \coordinate{(1,2)}
% \coordinate{(2,3)}
% \coordinate{(3,4)}
% \coordinate{(4,5)}
\coordinates
\end{document}