Hi again Wolfgang, I think I understood what is going wrong with my example after your hint: I have to remove all spaces around the separator and remove also the braces around each entry. That is the following works fine: \startseplisttalk Hacker;Up to date hacking;hacker.jpg Hacker;Up to date hacking;hacker.jpg \stopseplisttalk while the following does not (as far as the filename is concerned): \startseplisttalk {Hacker};{Up to date hacking};{hacker.jpg} Hacker ; Up to date hacking ; hacker.jpg \stopseplisttalk Is there a way to make the \defineseparatedlist command to be more tolerant for the filename? Best regards: OK > On 30 Jan 2018, at 16:28, Otared Kavian wrote: > > >> On 30 Jan 2018, at 15:54, Wolfgang Schuster > wrote: >>> […] >> >> Use the command key which grabs the content of each column as argument (i.e. your commands needs as many arguments as your table has columns): >> >> \defineseparatedlist >> [seplisttalk] >> [separator={;}, >> command=\maketalk] > > > Thanks Wolfgang! That fixes the issues concerning the entries which are text, but now the filename is not understood by the command \maketalk: here is the modified code: > > %% begin database-command.tex > \usemodule[database] > > \starttext > \startbuffer[pagetalk] > \starttabulate[|f{\bi}l|p|][before=]% > \NC Speaker \EQ > \goto{{\sc \getvariable{talk}{speakername}}}[fig:\getvariable{talk}{speakername}] > \NC\NR > \NC Title \EQ \getvariable{talk}{title} \NC\NR > \stoptabulate > \startplacefigure[number=no] > \externalfigure[\getvariable{talk}{picture}] > \stopplacefigure > \page > \stopbuffer > > \setvariable{talk}{set}{\getbuffer[pagetalk]} > > \define[3]\maketalk{% > \setvariables[talk]% > [speakername={#1}, > title={#2}, > picture={#3}, > ]} > > \defineseparatedlist[seplisttalk] > [separator={;}, > command=\maketalk] > > \startseplisttalk > {Hacker} ; {Up to date hacking} ; {hacker.jpg} > Hacker ; Up to date hacking ; hacker.jpg > \stopseplisttalk > > \stoptext > %% end database-command.tex