
Tengo una tabla que contiene dos columnas con valores x
y y
respectivamente y quiero generar una lista \coordinates
que contenga (x,y)
cada fila de la columna.
Intenté definir un comando que crea una lista usando el \appto
comando:
\newcommand{\coordinates}{}
\newcommand{\coordinate}[1]{%
\ifdefempty{\coordinates}
{\appto\coordinates{#1}}
{\appto\coordinates{, #1}}
}
Al llamar \coordinate{(1,2)}
y \coordinate{(2,3)}
, \coordinates
contiene (1,2), (2,3)
. Hasta ahora esto funciona bien.
Ahora quiero combinar esto con el csvsimple
\csvloop
comando, llamar el \coordinate
comando para cada fila de la tabla y así generar mi lista deseada. Desafortunadamente, el resultado de la lista es (,), (,), (,), (,)
en lugar de (1,2), (2,3), (3,4), (4,5)
, por lo que TeX no parece ingresar el número al comando. ¿Cuál es el problema aquí?
\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}