Re: [NTG-context] xtable headers and handlecsv loop

2020-04-03 Thread Pablo Rodriguez
On 4/3/20 3:16 PM, Geert Dobbels wrote:
> Pablo,
>
> Gracias, your suggestion with \rownums works.  I will try this one too,
> since it is a simpler solution.  By the way, All information I have
> about handlecsv comes from the PDF file you wrote.  \rownums and \lineno
> are not explained in this document.  Do you know of documentation that
> describes those aspects ?

Geert,

de nada . I know that handlecsv has many other features that aren’t
documented.

I don’t have much time now, but as I wrote the user manual, I didn’t
have many cases that didn’t look extremely complex. And this would be
the best way to scare newcomers.

If you aren’t scared, t-handlecsv.lua contains a complete list of
defined commands (as a huge comment near the end of the file). You might
 be interested in reading them.

Or feel free to ask here for help, if you don’t find the command, its
explanation, or the right approach to solve an issue dealing with data
from CSV files. (But please, individual issues, not the explatiation for
the whole command list .)

Pablo
--
http://www.ousia.tk
___
If your question is of interest to others as well, please add an entry to the 
Wiki!

maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : http://www.pragma-ade.nl / http://context.aanhet.net
archive  : https://bitbucket.org/phg/context-mirror/commits/
wiki : http://contextgarden.net
___


Re: [NTG-context] xtable headers and handlecsv loop

2020-04-03 Thread Geert Dobbels
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
ge...@ihts.eu 
Zubiegi 11, E-01139 Bitoriano (Spain)  0034 945 462633
ihts.eu
___
If your question is of interest to others as well, please add an entry to the 
Wiki!

maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : http://www.pragma-ade.nl / http://context.aanhet.net
archive  : https://bitbucket.org/phg/context-mirror/commits/
wiki : http://contextgarden.net
___


Re: [NTG-context] xtable headers and handlecsv loop

2020-04-03 Thread Geert Dobbels
Pablo,

Gracias, your suggestion with \rownums works.  I will try this one too,
since it is a simpler solution.  By the way, All information I have
about handlecsv comes from the PDF file you wrote.  \rownums and \lineno
are not explained in this document.  Do you know of documentation that
describes those aspects ?

Geert


On 03/04/2020 13:34, Pablo Rodriguez wrote:
> On 4/3/20 12:31 PM, Pablo Rodriguez wrote:
>> On 4/3/20 11:57 AM, Geert Dobbels wrote:
>>> [...]
>>> 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.
>> If \numrows doesn’t fit your needs, please provide a CSV file with fake
>> data. I cannot guess why a second loop might be required.
> Hi Geert,
>
> this approach is simpler:
>
> \starttext
> \startxtable
> \startxtablehead[head]
> \doloopif{\lineno}{<}{2}{\getbuffer[loop]}
> \stopxtablehead
> \startxtablebody
> \doloopif{\lineno}{>}{1}{\getbuffer[loop]}
> \stopxtablebody
> \stopxtable
> \stoptext
>
> Only loop header with CSV lines numbered below 2, and loop boody with
> CSV lines numbered above 1.
>
> Pablo
> --
> http://www.ousia.tk
> ___
> If your question is of interest to others as well, please add an entry to the 
> Wiki!
>
> maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
> webpage  : http://www.pragma-ade.nl / http://context.aanhet.net
> archive  : https://bitbucket.org/phg/context-mirror/commits/
> wiki : http://contextgarden.net
> ___

___
If your question is of interest to others as well, please add an entry to the 
Wiki!

maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : http://www.pragma-ade.nl / http://context.aanhet.net
archive  : https://bitbucket.org/phg/context-mirror/commits/
wiki : http://contextgarden.net
___


Re: [NTG-context] xtable headers and handlecsv loop

2020-04-03 Thread Pablo Rodriguez
On 4/3/20 12:31 PM, Pablo Rodriguez wrote:
> On 4/3/20 11:57 AM, Geert Dobbels wrote:
>> [...]
>> 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.
>
> If \numrows doesn’t fit your needs, please provide a CSV file with fake
> data. I cannot guess why a second loop might be required.

Hi Geert,

this approach is simpler:

\starttext
\startxtable
\startxtablehead[head]
\doloopif{\lineno}{<}{2}{\getbuffer[loop]}
\stopxtablehead
\startxtablebody
\doloopif{\lineno}{>}{1}{\getbuffer[loop]}
\stopxtablebody
\stopxtable
\stoptext

Only loop header with CSV lines numbered below 2, and loop boody with
CSV lines numbered above 1.

Pablo
--
http://www.ousia.tk
___
If your question is of interest to others as well, please add an entry to the 
Wiki!

maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : http://www.pragma-ade.nl / http://context.aanhet.net
archive  : https://bitbucket.org/phg/context-mirror/commits/
wiki : http://contextgarden.net
___


Re: [NTG-context] xtable headers and handlecsv loop

2020-04-03 Thread Pablo Rodriguez
On 4/3/20 11:57 AM, Geert Dobbels wrote:
> 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.

Hi Geert,

your sample lacks the CSV file. Of course, we don’t need your actual
data, but something to test your sample is required.

BTW, how about using \startembeddedxtable...\stopembeddedxtable instead
of \startxtable...\stopxtable? This has worked for me in some documents.

> 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.

I don’t understand what you aiming at, but \numrows gives exactly that
information.

> 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.

If \numrows doesn’t fit your needs, please provide a CSV file with fake
data. I cannot guess why a second loop might be required.

I hope it helps,

Pablo
--
http://www.ousia.tk
___
If your question is of interest to others as well, please add an entry to the 
Wiki!

maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : http://www.pragma-ade.nl / http://context.aanhet.net
archive  : https://bitbucket.org/phg/context-mirror/commits/
wiki : http://contextgarden.net
___


Re: [NTG-context] xtable headers and handlecsv loop

2020-04-03 Thread Wolfgang Schuster

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
___
If your question is of interest to others as well, please add an entry to the 
Wiki!

maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : http://www.pragma-ade.nl / http://context.aanhet.net
archive  : https://bitbucket.org/phg/context-mirror/commits/
wiki : http://contextgarden.net
___


[NTG-context] xtable headers and handlecsv loop

2020-04-03 Thread Geert Dobbels
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]

\startxtablehead[head]

\doloopfromto{1}{1}{\getbuffer[loop]}

\stopxtablehead

\startxtablebody

\doloopfromto{2}{500}{\getbuffer[loop]}

\stopxtablebody

\stopxtable

\stoptext

___
If your question is of interest to others as well, please add an entry to the 
Wiki!

maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : http://www.pragma-ade.nl / http://context.aanhet.net
archive  : https://bitbucket.org/phg/context-mirror/commits/
wiki : http://contextgarden.net
___