
У меня есть таблица, содержащая два столбца со значениями 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}