Wolfgang, Thanks for this.  It works, however, the page where the table starts has three lines of text before the table starts.  After inserting "split=repeat", the table jumps to the next page, leaving the rest of the page with the three lines of text completely blank.  This did not happen without the "split=repeat". Geert On 03/04/2020 12:18, Wolfgang Schuster wrote: > Geert Dobbels schrieb am 03.04.2020 um 11:57: >> Hello, >> >> The sample below has 2 problems I cannot find the solution for: >> >> I am reading a table from a CSV file and want to typeset it via \xtable. >> >> The xtable as defined below works, it splits over several pages, but >> the header does not repeat. I have seen examples in the mailing list >> where people put the "\startxtable.....\stopxtable" within a >> \placefigure, but as soon as I try this, I get an error message: >> "missing } or endgroup", although I doublechecked the "}" and I see >> no error. >> >> The other issue I have: Since xtable requires me to read the header >> line separately in order to put it between \startxtablehead and >> \stopxtablehead, I access the csv buffer twice: the first time, I >> only read the first line, and the second time, I read starting from >> the second line. My problem here is that I do not know beforehand the >> number of lines in the csv file. So in my second \doloopfromto I give >> the second argument a number high enough to be sure it reads all the >> lines. It works fine, but I would like to know if there is a way to >> read the number of lines in the csv file to use the exact number of >> lines, instead of guessing. >> >> \usemodule[handlecsv] >> >> \opencsvfile{systaprov2.csv} >> >> \starttext >> >> >> \startbuffer[loop] >> \startxrow >> \startxcell[left] \cA \stopxcell >> \startxcell[left] \cB \stopxcell >> \startxcell[left] \cC \stopxcell >> \startxcell[left] \cD \stopxcell >> \startxcell \cE \stopxcell >> \startxcell[left] \cF \stopxcell >> \startxcell \cG \stopxcell >> \startxcell \cH \stopxcell >> \doifdefined{cI}{\startxcell \cI \stopxcell} >> \doifdefined{cJ}{\startxcell \cJ \stopxcell} >> \doifdefined{cK}{\startxcell [left] \cK \stopxcell} >> \stopxrow >> \stopbuffer >> >> \setupxtable[offset=0cm, >> frame=off, >> bottomframe=on, >> framecolor=gray, >> option=stretch, >> align=middle] >> >> \setupxtable[head][background=color, >> backgroundcolor=gray, >> topframe=on, >> bottomframe=on, >> framecolor=black, >> foregroundcolor=blue] >> >> \setupxtable[left][align=right] >> >> \startxtable[header=repeat] > > Add "split=repeat" to \startxtable. > >> \startxtablehead[head] >> \doloopfromto{1}{1}{\getbuffer[loop]} >> \stopxtablehead >> \startxtablebody >> \doloopfromto{2}{500}{\getbuffer[loop]} >> \stopxtablebody >> >> \stopxtable >> >> \stoptext > > Wolfgang -- -- *_IHTS Approvals S.L._* Geert Dobbels                                                         geert@ihts.eu Zubiegi 11, E-01139 Bitoriano (Spain)                  0034 945 462633 ihts.eu