ntg-context - mailing list for ConTeXt users
 help / color / mirror / Atom feed
* prevgraf change if page break occurs in a paragraph
@ 2018-03-04 21:59 Joseph Canedo
  2018-03-05  7:58 ` Hans Hagen
  0 siblings, 1 reply; 9+ messages in thread
From: Joseph Canedo @ 2018-03-04 21:59 UTC (permalink / raw)
  To: mailing list for ConTeXt users


[-- Attachment #1.1: Type: text/plain, Size: 669 bytes --]

Hello,

I am aware that ConTeXt betas might use experimental luaTeX changes (I use both stable and latest and run both), just wanted to report a change in prevgraf result. Apparently with latest beta it reports the number of lines in last page of paragraph (only tested with pars on 2 pages maximum, haven’t tried longer ones). Simple MWE reproduces the case:

\starttext

\dorecurse{15}{
A\\ B\\ C\\ D\\ E\\ F\\ G\\ H\\ I\\ J\\ K\\ L \\M\\ N.

\the\prevgraf

}

\stoptext

Using ConTeXt online always reports « 14 » after the letters, latest ConTeXt reports different numbers if the par before it has been split in 2 pages.

Thanks

Joseph


[-- Attachment #1.2: Type: text/html, Size: 2463 bytes --]

[-- Attachment #2: Type: text/plain, Size: 492 bytes --]

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

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: prevgraf change if page break occurs in a paragraph
  2018-03-04 21:59 prevgraf change if page break occurs in a paragraph Joseph Canedo
@ 2018-03-05  7:58 ` Hans Hagen
  2018-03-05  8:43   ` Joseph Canedo
  0 siblings, 1 reply; 9+ messages in thread
From: Hans Hagen @ 2018-03-05  7:58 UTC (permalink / raw)
  To: ntg-context

On 3/4/2018 10:59 PM, Joseph Canedo wrote:

> I am aware that ConTeXt betas might use experimental luaTeX changes (I 
> use both stable and latest and run both), just wanted to report a change 

not really, as we don't ship beta luatex's so context normally either 
has adaptive code or delays usage for a year

> in prevgraf result. Apparently with latest beta it reports the number of 
> lines in last page of paragraph (only tested with pars on 2 pages 
> maximum, haven’t tried longer ones). Simple MWE reproduces the case:
> 
> \starttext
> 
> \dorecurse{15}{
> 
> A\\ B\\ C\\ D\\ E\\ F\\ G\\ H\\ I\\ J\\ K\\ L \\M\\ N.
> 
> \the\prevgraf
> 
> }
> 
> \stoptext
> 
> Using ConTeXt online always reports « 14 » after the letters, latest 
> ConTeXt reports different numbers if the par before it has been split in 
> 2 pages.
well, i could store the old prevgraf (of make that an option) but it's a 
fact that a top of page is basically a change (in prevgraf and prevdepth)

what do you use prevgraf for?

Hans

-----------------------------------------------------------------
                                           Hans Hagen | PRAGMA ADE
               Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
        tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl
-----------------------------------------------------------------
___________________________________________________________________________________
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
___________________________________________________________________________________

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: prevgraf change if page break occurs in a paragraph
  2018-03-05  7:58 ` Hans Hagen
@ 2018-03-05  8:43   ` Joseph Canedo
  2018-03-05  9:15     ` Hans Hagen
  0 siblings, 1 reply; 9+ messages in thread
From: Joseph Canedo @ 2018-03-05  8:43 UTC (permalink / raw)
  To: mailing list for ConTeXt users


[-- Attachment #1.1: Type: text/plain, Size: 2687 bytes --]

I see. I use prevgraf to get number of lines in most recent paragraph to compute eventually hangindent if there is a lettrine in paragraph (in case first paragraph has fewer lines than the lettrine itself, of course next paragraph needs to setup hangindent properly).

I guess as an alternative, I could use the callback after paragraph is split in N lines to count the number of lines, or is this number can be accessed via some other existing variable in tex lua « table » ? Currently I access prevgraf value Inside lua. Probably better than making things more complicated in luatex itself.

Thanks a lot,

Joseph

De : Hans Hagen
Envoyé le :lundi 5 mars 2018 08:58
À : ntg-context@ntg.nl
Objet :Re: [NTG-context] prevgraf change if page break occurs in a paragraph

On 3/4/2018 10:59 PM, Joseph Canedo wrote:

> I am aware that ConTeXt betas might use experimental luaTeX changes (I 
> use both stable and latest and run both), just wanted to report a change 

not really, as we don't ship beta luatex's so context normally either 
has adaptive code or delays usage for a year

> in prevgraf result. Apparently with latest beta it reports the number of 
> lines in last page of paragraph (only tested with pars on 2 pages 
> maximum, haven’t tried longer ones). Simple MWE reproduces the case:
> 
> \starttext
> 
> \dorecurse{15}{
> 
> A\\ B\\ C\\ D\\ E\\ F\\ G\\ H\\ I\\ J\\ K\\ L \\M\\ N.
> 
> \the\prevgraf
> 
> }
> 
> \stoptext
> 
> Using ConTeXt online always reports « 14 » after the letters, latest 
> ConTeXt reports different numbers if the par before it has been split in 
> 2 pages.
well, i could store the old prevgraf (of make that an option) but it's a 
fact that a top of page is basically a change (in prevgraf and prevdepth)

what do you use prevgraf for?

Hans

-----------------------------------------------------------------
                                           Hans Hagen | PRAGMA ADE
               Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
        tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl
-----------------------------------------------------------------
___________________________________________________________________________________
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
___________________________________________________________________________________


[-- Attachment #1.2: Type: text/html, Size: 5722 bytes --]

[-- Attachment #2: Type: text/plain, Size: 492 bytes --]

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

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: prevgraf change if page break occurs in a paragraph
  2018-03-05  8:43   ` Joseph Canedo
@ 2018-03-05  9:15     ` Hans Hagen
  2018-03-05 14:51       ` Joseph Canedo
  0 siblings, 1 reply; 9+ messages in thread
From: Hans Hagen @ 2018-03-05  9:15 UTC (permalink / raw)
  To: ntg-context

On 3/5/2018 9:43 AM, Joseph Canedo wrote:
> I see. I use prevgraf to get number of lines in most recent paragraph to 
> compute eventually hangindent if there is a lettrine in paragraph (in 
> case first paragraph has fewer lines than the lettrine itself, of course 
> next paragraph needs to setup hangindent properly).

but .. that one is then still on the same page; in fact, you should 
check for realpage being changed then

> I guess as an alternative, I could use the callback after paragraph is 
> split in N lines to count the number of lines, or is this number can be 
> accessed via some other existing variable in tex lua « table » ? 
> Currently I access prevgraf value Inside lua. Probably better than 
> making things more complicated in luatex itself.
prevgraf is still ok after a 7 line paragraph but ... when you cross a 
page, and have say 4 lines moved to the next one, then a 7 line 
hangafter would be wrong (you can check if a par is on the same page)

with callbacks after breaking in lines you still don't know ...

Hans

-----------------------------------------------------------------
                                           Hans Hagen | PRAGMA ADE
               Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
        tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl
-----------------------------------------------------------------
___________________________________________________________________________________
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
___________________________________________________________________________________

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: prevgraf change if page break occurs in a paragraph
  2018-03-05  9:15     ` Hans Hagen
@ 2018-03-05 14:51       ` Joseph Canedo
  2018-03-05 15:06         ` Hans Hagen
  0 siblings, 1 reply; 9+ messages in thread
From: Joseph Canedo @ 2018-03-05 14:51 UTC (permalink / raw)
  To: mailing list for ConTeXt users


[-- Attachment #1.1: Type: text/plain, Size: 2996 bytes --]

If I have a callback called just after paragraph has been split into lines, would not be enough to count the number of hboxes in the vbox the paragraph itself is contained ? Cannot say it’s ideal (easier to simply read tex.prevgraf for sure), but might be possible, unless I missed something (totally possible).

In a couple of cases I see \prevgraf being larger than number of lines of previous paragraph, including lines for paragraph before than one as well. Could not create a MWE unfortunately to reproduce this case so far.

I’ll try to amend my dropcaps/lettrine logic then. What are the reasons behind this change in \prevgraf TeX primitive which AFAIK exists since TeX has been written ? I thought that one of the strong points in TeX was overall stability of its behaviour among versions. Here with this semantic change in \prevgraf in recent luatex, this stability is a bit broken IMO.

Joseph

De : Hans Hagen
Envoyé le :lundi 5 mars 2018 10:15
À : ntg-context@ntg.nl
Objet :Re: [NTG-context] prevgraf change if page break occurs in a paragraph

On 3/5/2018 9:43 AM, Joseph Canedo wrote:
> I see. I use prevgraf to get number of lines in most recent paragraph to 
> compute eventually hangindent if there is a lettrine in paragraph (in 
> case first paragraph has fewer lines than the lettrine itself, of course 
> next paragraph needs to setup hangindent properly).

but .. that one is then still on the same page; in fact, you should 
check for realpage being changed then

> I guess as an alternative, I could use the callback after paragraph is 
> split in N lines to count the number of lines, or is this number can be 
> accessed via some other existing variable in tex lua « table » ? 
> Currently I access prevgraf value Inside lua. Probably better than 
> making things more complicated in luatex itself.
prevgraf is still ok after a 7 line paragraph but ... when you cross a 
page, and have say 4 lines moved to the next one, then a 7 line 
hangafter would be wrong (you can check if a par is on the same page)

with callbacks after breaking in lines you still don't know ...

Hans

-----------------------------------------------------------------
                                           Hans Hagen | PRAGMA ADE
               Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
        tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl
-----------------------------------------------------------------
___________________________________________________________________________________
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
___________________________________________________________________________________


[-- Attachment #1.2: Type: text/html, Size: 5722 bytes --]

[-- Attachment #2: Type: text/plain, Size: 492 bytes --]

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

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: prevgraf change if page break occurs in a paragraph
  2018-03-05 14:51       ` Joseph Canedo
@ 2018-03-05 15:06         ` Hans Hagen
  2018-03-05 15:33           ` Joseph Canedo
  0 siblings, 1 reply; 9+ messages in thread
From: Hans Hagen @ 2018-03-05 15:06 UTC (permalink / raw)
  To: ntg-context

On 3/5/2018 3:51 PM, Joseph Canedo wrote:
> If I have a callback called just after paragraph has been split into 
> lines, would not be enough to count the number of hboxes in the vbox the 
> paragraph itself is contained ? Cannot say it’s ideal (easier to simply 
> read tex.prevgraf for sure), but might be possible, unless I missed 
> something (totally possible).
> 
> In a couple of cases I see \prevgraf being larger than number of lines 
> of previous paragraph, including lines for paragraph before than one as 
> well. Could not create a MWE unfortunately to reproduce this case so far.
> 
> I’ll try to amend my dropcaps/lettrine logic then. What are the reasons 
> behind this change in \prevgraf TeX primitive which AFAIK exists since 
> TeX has been written ? I thought that one of the strong points in TeX 
> was overall stability of its behaviour among versions. Here with this 
> semantic change in \prevgraf in recent luatex, this stability is a bit 
> broken IMO.

it's *not changed* in luatex .. context *itself* sets the prevgraf at 
the next page as indicator of the left-over lines

say that you have:

XXX ------------------
XXX ------------------
----------------------
----------------------

- a page break between the first and second line is a bug in your code
- a page break after the second line is harmless and as we're on a new 
page then there is nothing to be done i.e. prevgraf then is set to 2 (as 
we have two lines if we look back)

say that you have:

XXX ------------------
XXX

- if you get a page break here, again there is nothing to be done as 
you're on a next page
- if you need to pick up in the next pagagraph (on the same page) then
prevgraf is 1

so, what in your case does it mean that when your next paragraph is on 
the next page you look at prevgraf? there is no need to hangindent as 
your hanging stuff is on the previous page

also, in general prevgraf is kind of useless when you have lines higher 
than lineheight so if you use a callback, you also should calculate the 
real accumulated drop so far

> Joseph
> 
> *De : *Hans Hagen <mailto:pragma@wxs.nl>
> *Envoyé le :*lundi 5 mars 2018 10:15
> *À : *ntg-context@ntg.nl <mailto:ntg-context@ntg.nl>
> *Objet :*Re: [NTG-context] prevgraf change if page break occurs in a 
> paragraph
> 
> On 3/5/2018 9:43 AM, Joseph Canedo wrote:
> 
>  > I see. I use prevgraf to get number of lines in most recent paragraph to
> 
>  > compute eventually hangindent if there is a lettrine in paragraph (in
> 
>  > case first paragraph has fewer lines than the lettrine itself, of course
> 
>  > next paragraph needs to setup hangindent properly).
> 
> but .. that one is then still on the same page; in fact, you should
> 
> check for realpage being changed then
> 
>  > I guess as an alternative, I could use the callback after paragraph is
> 
>  > split in N lines to count the number of lines, or is this number can be
> 
>  > accessed via some other existing variable in tex lua « table » ?
> 
>  > Currently I access prevgraf value Inside lua. Probably better than
> 
>  > making things more complicated in luatex itself.
> 
> prevgraf is still ok after a 7 line paragraph but ... when you cross a
> 
> page, and have say 4 lines moved to the next one, then a 7 line
> 
> hangafter would be wrong (you can check if a par is on the same page)
> 
> with callbacks after breaking in lines you still don't know ...
> 
> Hans
> 
> -----------------------------------------------------------------
> 
>                                             Hans Hagen | PRAGMA ADE
> 
>                 Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
> 
>          tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl
> 
> -----------------------------------------------------------------
> 
> ___________________________________________________________________________________
> 
> 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
> ___________________________________________________________________________________
> 


-- 

-----------------------------------------------------------------
                                           Hans Hagen | PRAGMA ADE
               Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
        tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl
-----------------------------------------------------------------
___________________________________________________________________________________
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
___________________________________________________________________________________

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: prevgraf change if page break occurs in a paragraph
  2018-03-05 15:06         ` Hans Hagen
@ 2018-03-05 15:33           ` Joseph Canedo
  2018-03-05 16:23             ` Joseph Canedo
  2018-03-05 16:28             ` Hans Hagen
  0 siblings, 2 replies; 9+ messages in thread
From: Joseph Canedo @ 2018-03-05 15:33 UTC (permalink / raw)
  To: mailing list for ConTeXt users


[-- Attachment #1.1: Type: text/plain, Size: 6391 bytes --]

I see. So is it reliable to simply use lua function tex.getcount(‘realpageno’) in vertical mode to determine that page has changed ? Or do I need some other mechanism please ? If page has changed I agree that there is no need to deal with hangindent.

I use grid typesetting so normally all lines have same height ?

De : Hans Hagen
Envoyé le :lundi 5 mars 2018 16:06
À : ntg-context@ntg.nl
Objet :Re: [NTG-context] prevgraf change if page break occurs in a paragraph

On 3/5/2018 3:51 PM, Joseph Canedo wrote:
> If I have a callback called just after paragraph has been split into 
> lines, would not be enough to count the number of hboxes in the vbox the 
> paragraph itself is contained ? Cannot say it’s ideal (easier to simply 
> read tex.prevgraf for sure), but might be possible, unless I missed 
> something (totally possible).
> 
> In a couple of cases I see \prevgraf being larger than number of lines 
> of previous paragraph, including lines for paragraph before than one as 
> well. Could not create a MWE unfortunately to reproduce this case so far.
> 
> I’ll try to amend my dropcaps/lettrine logic then. What are the reasons 
> behind this change in \prevgraf TeX primitive which AFAIK exists since 
> TeX has been written ? I thought that one of the strong points in TeX 
> was overall stability of its behaviour among versions. Here with this 
> semantic change in \prevgraf in recent luatex, this stability is a bit 
> broken IMO.

it's *not changed* in luatex .. context *itself* sets the prevgraf at 
the next page as indicator of the left-over lines

say that you have:

XXX ------------------
XXX ------------------
----------------------
----------------------

- a page break between the first and second line is a bug in your code
- a page break after the second line is harmless and as we're on a new 
page then there is nothing to be done i.e. prevgraf then is set to 2 (as 
we have two lines if we look back)

say that you have:

XXX ------------------
XXX

- if you get a page break here, again there is nothing to be done as 
you're on a next page
- if you need to pick up in the next pagagraph (on the same page) then
prevgraf is 1

so, what in your case does it mean that when your next paragraph is on 
the next page you look at prevgraf? there is no need to hangindent as 
your hanging stuff is on the previous page

also, in general prevgraf is kind of useless when you have lines higher 
than lineheight so if you use a callback, you also should calculate the 
real accumulated drop so far

> Joseph
> 
> *De : *Hans Hagen <mailto:pragma@wxs.nl>
> *Envoyé le :*lundi 5 mars 2018 10:15
> *À : *ntg-context@ntg.nl <mailto:ntg-context@ntg.nl>
> *Objet :*Re: [NTG-context] prevgraf change if page break occurs in a 
> paragraph
> 
> On 3/5/2018 9:43 AM, Joseph Canedo wrote:
> 
>  > I see. I use prevgraf to get number of lines in most recent paragraph to
> 
>  > compute eventually hangindent if there is a lettrine in paragraph (in
> 
>  > case first paragraph has fewer lines than the lettrine itself, of course
> 
>  > next paragraph needs to setup hangindent properly).
> 
> but .. that one is then still on the same page; in fact, you should
> 
> check for realpage being changed then
> 
>  > I guess as an alternative, I could use the callback after paragraph is
> 
>  > split in N lines to count the number of lines, or is this number can be
> 
>  > accessed via some other existing variable in tex lua « table » ?
> 
>  > Currently I access prevgraf value Inside lua. Probably better than
> 
>  > making things more complicated in luatex itself.
> 
> prevgraf is still ok after a 7 line paragraph but ... when you cross a
> 
> page, and have say 4 lines moved to the next one, then a 7 line
> 
> hangafter would be wrong (you can check if a par is on the same page)
> 
> with callbacks after breaking in lines you still don't know ...
> 
> Hans
> 
> -----------------------------------------------------------------
> 
>                                             Hans Hagen | PRAGMA ADE
> 
>                 Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
> 
>          tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl
> 
> -----------------------------------------------------------------
> 
> ___________________________________________________________________________________
> 
> 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
> ___________________________________________________________________________________
> 


-- 

-----------------------------------------------------------------
                                           Hans Hagen | PRAGMA ADE
               Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
        tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl
-----------------------------------------------------------------
___________________________________________________________________________________
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
___________________________________________________________________________________


[-- Attachment #1.2: Type: text/html, Size: 12106 bytes --]

[-- Attachment #2: Type: text/plain, Size: 492 bytes --]

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

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: prevgraf change if page break occurs in a paragraph
  2018-03-05 15:33           ` Joseph Canedo
@ 2018-03-05 16:23             ` Joseph Canedo
  2018-03-05 16:28             ` Hans Hagen
  1 sibling, 0 replies; 9+ messages in thread
From: Joseph Canedo @ 2018-03-05 16:23 UTC (permalink / raw)
  To: mailing list for ConTeXt users


[-- Attachment #1.1: Type: text/plain, Size: 7086 bytes --]

BTW, I could write a MWE for the case when \prevgraf aggregates number of lines for 2 paragraphs (sometimes).

\starttext

\dorecurse{15}{
One line par.\par\nobreak A\\ B\\ C\\ D\\ E\\ F\\ G\\ H\\ I\\ J\\ K\\ L \\M\\ N.

\the\prevgraf

}

\stoptext

In some cases when « One line par » appears at first line of page (except the first one in this MWE output at least), you might see « 15 » after N. line.

De : Joseph Canedo
Envoyé le :lundi 5 mars 2018 16:32
À : mailing list for ConTeXt users
Objet :RE: [NTG-context] prevgraf change if page break occurs in a paragraph

I see. So is it reliable to simply use lua function tex.getcount(‘realpageno’) in vertical mode to determine that page has changed ? Or do I need some other mechanism please ? If page has changed I agree that there is no need to deal with hangindent.

I use grid typesetting so normally all lines have same height ?

De : Hans Hagen
Envoyé le :lundi 5 mars 2018 16:06
À : ntg-context@ntg.nl
Objet :Re: [NTG-context] prevgraf change if page break occurs in a paragraph

On 3/5/2018 3:51 PM, Joseph Canedo wrote:
> If I have a callback called just after paragraph has been split into 
> lines, would not be enough to count the number of hboxes in the vbox the 
> paragraph itself is contained ? Cannot say it’s ideal (easier to simply 
> read tex.prevgraf for sure), but might be possible, unless I missed 
> something (totally possible).
> 
> In a couple of cases I see \prevgraf being larger than number of lines 
> of previous paragraph, including lines for paragraph before than one as 
> well. Could not create a MWE unfortunately to reproduce this case so far.
> 
> I’ll try to amend my dropcaps/lettrine logic then. What are the reasons 
> behind this change in \prevgraf TeX primitive which AFAIK exists since 
> TeX has been written ? I thought that one of the strong points in TeX 
> was overall stability of its behaviour among versions. Here with this 
> semantic change in \prevgraf in recent luatex, this stability is a bit 
> broken IMO.

it's *not changed* in luatex .. context *itself* sets the prevgraf at 
the next page as indicator of the left-over lines

say that you have:

XXX ------------------
XXX ------------------
----------------------
----------------------

- a page break between the first and second line is a bug in your code
- a page break after the second line is harmless and as we're on a new 
page then there is nothing to be done i.e. prevgraf then is set to 2 (as 
we have two lines if we look back)

say that you have:

XXX ------------------
XXX

- if you get a page break here, again there is nothing to be done as 
you're on a next page
- if you need to pick up in the next pagagraph (on the same page) then
prevgraf is 1

so, what in your case does it mean that when your next paragraph is on 
the next page you look at prevgraf? there is no need to hangindent as 
your hanging stuff is on the previous page

also, in general prevgraf is kind of useless when you have lines higher 
than lineheight so if you use a callback, you also should calculate the 
real accumulated drop so far

> Joseph
> 
> *De : *Hans Hagen <mailto:pragma@wxs.nl>
> *Envoyé le :*lundi 5 mars 2018 10:15
> *À : *ntg-context@ntg.nl <mailto:ntg-context@ntg.nl>
> *Objet :*Re: [NTG-context] prevgraf change if page break occurs in a 
> paragraph
> 
> On 3/5/2018 9:43 AM, Joseph Canedo wrote:
> 
>  > I see. I use prevgraf to get number of lines in most recent paragraph to
> 
>  > compute eventually hangindent if there is a lettrine in paragraph (in
> 
>  > case first paragraph has fewer lines than the lettrine itself, of course
> 
>  > next paragraph needs to setup hangindent properly).
> 
> but .. that one is then still on the same page; in fact, you should
> 
> check for realpage being changed then
> 
>  > I guess as an alternative, I could use the callback after paragraph is
> 
>  > split in N lines to count the number of lines, or is this number can be
> 
>  > accessed via some other existing variable in tex lua « table » ?
> 
>  > Currently I access prevgraf value Inside lua. Probably better than
> 
>  > making things more complicated in luatex itself.
> 
> prevgraf is still ok after a 7 line paragraph but ... when you cross a
> 
> page, and have say 4 lines moved to the next one, then a 7 line
> 
> hangafter would be wrong (you can check if a par is on the same page)
> 
> with callbacks after breaking in lines you still don't know ...
> 
> Hans
> 
> -----------------------------------------------------------------
> 
>                                             Hans Hagen | PRAGMA ADE
> 
>                 Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
> 
>          tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl
> 
> -----------------------------------------------------------------
> 
> ___________________________________________________________________________________
> 
> 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
> ___________________________________________________________________________________
> 


-- 

-----------------------------------------------------------------
                                           Hans Hagen | PRAGMA ADE
               Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
        tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl
-----------------------------------------------------------------
___________________________________________________________________________________
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
___________________________________________________________________________________



[-- Attachment #1.2: Type: text/html, Size: 15327 bytes --]

[-- Attachment #2: Type: text/plain, Size: 492 bytes --]

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

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: prevgraf change if page break occurs in a paragraph
  2018-03-05 15:33           ` Joseph Canedo
  2018-03-05 16:23             ` Joseph Canedo
@ 2018-03-05 16:28             ` Hans Hagen
  1 sibling, 0 replies; 9+ messages in thread
From: Hans Hagen @ 2018-03-05 16:28 UTC (permalink / raw)
  To: ntg-context

On 3/5/2018 4:33 PM, Joseph Canedo wrote:
> I see. So is it reliable to simply use lua function 
> tex.getcount(‘realpageno’) in vertical mode to determine that page has 
> changed ? Or do I need some other mechanism please ? If page has changed 
> I agree that there is no need to deal with hangindent.

i don't know your logic but say that you have a dropped thingie that is 
5 lines high then you can check for available room

\setbox\scratchbox\hbox{...}
\getnoflines{\htdp\scratchbox}
\testpage[\noflines]

then you're for sure on the next page in which case your prevgraf is 
what you expect (assuming you stay on that page for a while)

> I use grid typesetting so normally all lines have same height ?

they get snapped so they can take nlines

(the prevgraf variable just counts lines and doesn't look at the 
dimensions)

> *De : *Hans Hagen <mailto:pragma@wxs.nl>
> *Envoyé le :*lundi 5 mars 2018 16:06
> *À : *ntg-context@ntg.nl <mailto:ntg-context@ntg.nl>
> *Objet :*Re: [NTG-context] prevgraf change if page break occurs in a 
> paragraph
> 
> On 3/5/2018 3:51 PM, Joseph Canedo wrote:
> 
>  > If I have a callback called just after paragraph has been split into
> 
>  > lines, would not be enough to count the number of hboxes in the vbox the
> 
>  > paragraph itself is contained ? Cannot say it’s ideal (easier to simply
> 
>  > read tex.prevgraf for sure), but might be possible, unless I missed
> 
>  > something (totally possible).
> 
>  >
> 
>  > In a couple of cases I see \prevgraf being larger than number of lines
> 
>  > of previous paragraph, including lines for paragraph before than one as
> 
>  > well. Could not create a MWE unfortunately to reproduce this case so far.
> 
>  >
> 
>  > I’ll try to amend my dropcaps/lettrine logic then. What are the reasons
> 
>  > behind this change in \prevgraf TeX primitive which AFAIK exists since
> 
>  > TeX has been written ? I thought that one of the strong points in TeX
> 
>  > was overall stability of its behaviour among versions. Here with this
> 
>  > semantic change in \prevgraf in recent luatex, this stability is a bit
> 
>  > broken IMO.
> 
> it's *not changed* in luatex .. context *itself* sets the prevgraf at
> 
> the next page as indicator of the left-over lines
> 
> say that you have:
> 
> XXX ------------------
> 
> XXX ------------------
> 
> ----------------------
> 
> ----------------------
> 
> - a page break between the first and second line is a bug in your code
> 
> - a page break after the second line is harmless and as we're on a new
> 
> page then there is nothing to be done i.e. prevgraf then is set to 2 (as
> 
> we have two lines if we look back)
> 
> say that you have:
> 
> XXX ------------------
> 
> XXX
> 
> - if you get a page break here, again there is nothing to be done as
> 
> you're on a next page
> 
> - if you need to pick up in the next pagagraph (on the same page) then
> 
> prevgraf is 1
> 
> so, what in your case does it mean that when your next paragraph is on
> 
> the next page you look at prevgraf? there is no need to hangindent as
> 
> your hanging stuff is on the previous page
> 
> also, in general prevgraf is kind of useless when you have lines higher
> 
> than lineheight so if you use a callback, you also should calculate the
> 
> real accumulated drop so far
> 
>  > Joseph
> 
>  >
> 
>  > *De : *Hans Hagen <mailto:pragma@wxs.nl>
> 
>  > *Envoyé le :*lundi 5 mars 2018 10:15
> 
>  > *À : *ntg-context@ntg.nl <mailto:ntg-context@ntg.nl>
> 
>  > *Objet :*Re: [NTG-context] prevgraf change if page break occurs in a
> 
>  > paragraph
> 
>  >
> 
>  > On 3/5/2018 9:43 AM, Joseph Canedo wrote:
> 
>  >
> 
>  >  > I see. I use prevgraf to get number of lines in most recent 
> paragraph to
> 
>  >
> 
>  >  > compute eventually hangindent if there is a lettrine in paragraph (in
> 
>  >
> 
>  >  > case first paragraph has fewer lines than the lettrine itself, of 
> course
> 
>  >
> 
>  >  > next paragraph needs to setup hangindent properly).
> 
>  >
> 
>  > but .. that one is then still on the same page; in fact, you should
> 
>  >
> 
>  > check for realpage being changed then
> 
>  >
> 
>  >  > I guess as an alternative, I could use the callback after paragraph is
> 
>  >
> 
>  >  > split in N lines to count the number of lines, or is this number 
> can be
> 
>  >
> 
>  >  > accessed via some other existing variable in tex lua « table » ?
> 
>  >
> 
>  >  > Currently I access prevgraf value Inside lua. Probably better than
> 
>  >
> 
>  >  > making things more complicated in luatex itself.
> 
>  >
> 
>  > prevgraf is still ok after a 7 line paragraph but ... when you cross a
> 
>  >
> 
>  > page, and have say 4 lines moved to the next one, then a 7 line
> 
>  >
> 
>  > hangafter would be wrong (you can check if a par is on the same page)
> 
>  >
> 
>  > with callbacks after breaking in lines you still don't know ...
> 
>  >
> 
>  > Hans
> 
>  >
> 
>  > -----------------------------------------------------------------
> 
>  >
> 
>  >                                             Hans Hagen | PRAGMA ADE
> 
>  >
> 
>  >                 Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
> 
>  >
> 
>  >          tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl
> 
>  >
> 
>  > -----------------------------------------------------------------
> 
>  >
> 
>  > 
> ___________________________________________________________________________________
> 
>  >
> 
>  > 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
> 
>  > 
> ___________________________________________________________________________________
> 
>  >
> 
> -- 
> 
> -----------------------------------------------------------------
> 
>                                             Hans Hagen | PRAGMA ADE
> 
>                 Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
> 
>          tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl
> 
> -----------------------------------------------------------------
> 
> ___________________________________________________________________________________
> 
> 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
> ___________________________________________________________________________________
> 


-- 

-----------------------------------------------------------------
                                           Hans Hagen | PRAGMA ADE
               Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
        tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl
-----------------------------------------------------------------
___________________________________________________________________________________
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
___________________________________________________________________________________

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2018-03-05 16:28 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-03-04 21:59 prevgraf change if page break occurs in a paragraph Joseph Canedo
2018-03-05  7:58 ` Hans Hagen
2018-03-05  8:43   ` Joseph Canedo
2018-03-05  9:15     ` Hans Hagen
2018-03-05 14:51       ` Joseph Canedo
2018-03-05 15:06         ` Hans Hagen
2018-03-05 15:33           ` Joseph Canedo
2018-03-05 16:23             ` Joseph Canedo
2018-03-05 16:28             ` Hans Hagen

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).