Re: [NTG-context] splitted xtable with repeating headers and placetable

2020-04-05 Thread Wolfgang Schuster

Geert Dobbels schrieb am 05.04.2020 um 00:30:

Wolfgang,

Below is what I think is the bare minimum to explain this question 
(sorry for not doing it right from the beginning...)


Keep it up.

As I said, with the code as it is below, the header is not repeated 
after the first page, but the table is in the right place.


Replacing "split=yes" by "split=repeat" makes the header repeat 
correctly but puts the beginning of the table on the next page, leaving 
the first page nearly completely blank.


I already reported the problem on the dev-list. The reason is that
ConTeXt creates one big table and splits it afterwards in smaller
parts which fit on each page but when you use "split=repeat" the
part for the first page is too large to fit.

In both cases, the "header=repeat" setting has no influence at all on 
the behaviour and can be omitted without changing the results.


As I read in some other posts, sometimes putting the table in a float 
can help, so I tried this (by removing the 3 "%" in the code below), but 
there seems to be a conflict with the figure in the page header, and it 
stops with an error message.


Don't use floats in the header or footer, they serve no purpose
and you can include images without it. Below is a solution
with nested frames but you can also use a table to create
the header layout.

However, replacing the figure in the page header by a normal text 
suddenly solves the problem: putting "split" in the setupfloat and 
"header=repeat" in the setupxtable gives me a table with repeated 
headers that starts exactly where I want it to start. Apparently in this 
case, the "headers=repeat" is necessary. Unfortunately, I need a company 
logo up in the page header, which is what causes the error for which I 
have no explanation.


Here is a working version of your example but you have to a space
between the header and the page body (see headerdistance setting)
or reduce the height of the outer most frame (it uses at the moment
the height and width of the header area).

\setuppapersize[A4,landscape]

\setuplayout
  [location=middle,
   width=27.5cm,
   height=18cm,
   backspace=1cm,
   header=4cm,
   headerdistance=5mm]

\startsetups[header]
\startframed[width=max,height=max,frame=off,offset=overlay]
\startframed[height=1cm,width=max,frame=off]
\userpagenumber
\stopframed
\par
\startframed[height=3cm,width=max,offset=overlay]
\startframed[width=0.25\hsize,height=max]
\externalfigure[dummy][height=1.9cm]
\stopframed
\startframed[width=0.50\hsize,height=max,] % 
frame=off,topframe=on,bottomframe=on

some text in the middle block
\stopframed
\startframed[width=0.25\hsize,height=max]
some text in the right block
\stopframed
\stopframed
\stopframed
\stopsetups

\setupheadertexts[\directsetup{header}]

\startbuffer[tablerow]
\startxrow
\startxcell first \stopxcell
\startxcell second \stopxcell
\stopxrow
\stopbuffer

\startbuffer[table]
\startxtable
\startxtablehead[head]
\getbuffer[tablerow]
\stopxtablehead
\startxtablebody
\dorecurse{40}{\getbuffer[tablerow]}
\stopxtablebody
\stopxtable
\stopbuffer

\setupxtable
  [option=stretch,
   split=repeat,
   header=repeat,
   align=middle]

\setupxtable
  [head]
  [background=color,
   backgroundcolor=gray]

\starttext

\title{Table without float environment}

\samplefile{ward}

\getbuffer[table]

\title{Table with  float environment}

\samplefile{ward}

\startplacetable[location={none,split}]
\getbuffer[table]
\stopplacetable

\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
___


Re: [NTG-context] splitted xtable with repeating headers and placetable

2020-04-04 Thread Geert Dobbels
Wolfgang,

Below is what I think is the bare minimum to explain this question
(sorry for not doing it right from the beginning...)

As I said, with the code as it is below, the header is not repeated
after the first page, but the table is in the right place.

Replacing "split=yes" by "split=repeat" makes the header repeat
correctly but puts the beginning of the table on the next page, leaving
the first page nearly completely blank.

In both cases, the "header=repeat" setting has no influence at all on
the behaviour and can be omitted without changing the results.

As I read in some other posts, sometimes putting the table in a float
can help, so I tried this (by removing the 3 "%" in the code below), but
there seems to be a conflict with the figure in the page header, and it
stops with an error message.

However, replacing the figure in the page header by a normal text
suddenly solves the problem: putting "split" in the setupfloat and
"header=repeat" in the setupxtable gives me a table with repeated
headers that starts exactly where I want it to start. Apparently in this
case, the "headers=repeat" is necessary. Unfortunately, I need a company
logo up in the page header, which is what causes the error for which I
have no explanation.

btw: I am using context standalone version: 2020.01.30 14:13

=

\setuppapersize[A4, landscape]

\setuplayout[location=middle, width=27.5cm, height=18cm,
backspace=1cm,header=4cm]

\setupcaptions[location=none]

\setupbackgrounds[header][text][background={Logos}, state=repeat]

\defineoverlay

[Logos][{

\framed[width=\textwidth, height=3cm, align=right, strut=no, offset=none]{

\framed[width=0.280\textwidth,height=3cm,align=right,]

{\placefigure[force][]{none}{\externalfigure[somepic.png][height=1.9cm]} }

\framed[width=0.430\textwidth,height=3cm,align=middle] {sometext in the
middle}

\framed[width=0.270\textwidth, height=3cm, align=middle]{sometext on the
right}

}

}]

%\setupfloat[table][default={force,split}]

\setupxtable[ option=stretch,split=repeat,header=repeat,align=middle]

\setupxtable[head][background=color,backgroundcolor=gray,foregroundcolor=red]

\starttext

Some lines of text. This text must come just before the table, but only
on the first page of the table

\def\onerow{

\startxrow

\startxcell first \stopxcell

\startxcell second \stopxcell

\startxcell third \stopxcell

\startxcell fourth \stopxcell

\startxcell fifth \stopxcell

\startxcell sixth \stopxcell

\stopxrow}

%\startplacetable

\startxtable

\startxtablehead[head]

\onerow

\stopxtablehead

\startxtablebody

\dorecurse{40}{\onerow}

\stopxtablebody

\stopxtable

%\stopplacetable

\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
___


Re: [NTG-context] splitted xtable with repeating headers and placetable

2020-04-04 Thread Wolfgang Schuster

Geert Dobbels schrieb am 04.04.2020 um 16:46:

Hello,

Code below shows some behaviour I cannot explain (csv file attached):

- If I run the code below as is, I get what I want, except that the 
header line of the table does not repeat at the top of each page.
- Changing "split=yes" to "split=repeat" in the setupxtable gives me 
repeating headers, but the table starts at the second page, leaving the 
first page with only the text line and all the rest as blank spaces.
- Placing the table in a float by activating the 3 commented lines gives 
me an error ("extra } or forgotten endgroup") pointing to the external 
figure in my page header overlay.  Replacing the \placefigure. in 
the page header by ordinary text makes the error go away, but is no 
solution, since I need the company logo picture there, and even then 
with no error, the headers do not repeat.
- With the table in a float, I manage to get repeating headers when I 
change to "split=yes" and "headers=repeat" in the \setupxtable, but I 
still get the abovementioned error as soon as I want to put my figure 
back in the page header..


Any suggestions ?


Can you make your example simpler and reduce it to the bare minimum 
(replace your csv file which dummy content) which is required to show 
the error.


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
___


Re: [NTG-context] splitted xtable with repeating headers and placetable

2020-04-04 Thread Pablo Rodriguez
On 4/4/20 4:46 PM, Geert Dobbels wrote:
> Hello,
>
> Code below shows some behaviour I cannot explain (csv file attached):
>
> - If I run the code below as is, I get what I want, except that the
> header line of the table does not repeat at the top of each page.

Hi Geert,

this is the standard and intended behavior (documented on page 10 from
xtables-mkiv.pdf).

> - Changing "split=yes" to "split=repeat" in the setupxtable gives me
> repeating headers, but the table starts at the second page, leaving the
> first page with only the text line and all the rest as blank spaces.

This is a known bug, already reported at the devel mailing list
(https://mailman.ntg.nl/pipermail/dev-context/2020/003694.html).

> - Placing the table in a float by activating the 3 commented lines gives
> me an error ("extra } or forgotten endgroup") pointing to the external
> figure in my page header overlay.  Replacing the \placefigure. in
> the page header by ordinary text makes the error go away, but is no
> solution, since I need the company logo picture there, and even then
> with no error, the headers do not repeat.

Well, these are different issues.

> - With the table in a float, I manage to get repeating headers when I
> change to "split=yes" and "headers=repeat" in the \setupxtable, but I
> still get the abovementioned error as soon as I want to put my figure
> back in the page header..

My guess: an alternative approach would be to use layers (and adapting
the topspace to the layer on the top of the page).

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
___