
我有一個表,其中包含兩列,分別具有x
和y
值,我想產生一個\coordinates
包含(x,y)
該列的每一行的列表。
我嘗試定義一個使用以下命令創建列表的命令\appto
:
\newcommand{\coordinates}{}
\newcommand{\coordinate}[1]{%
\ifdefempty{\coordinates}
{\appto\coordinates{#1}}
{\appto\coordinates{, #1}}
}
當調用\coordinate{(1,2)}
and 時\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}