<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=utf-8"><meta name=Generator content="Microsoft Word 15 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
.MsoChpDefault
        {mso-style-type:export-only;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:70.85pt 70.85pt 70.85pt 70.85pt;}
div.WordSection1
        {page:WordSection1;}
--></style></head><body lang=FR link=blue vlink="#954F72"><div class=WordSection1><p class=MsoNormal>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.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>I use grid typesetting so normally all lines have same height ?</p><p class=MsoNormal><o:p> </o:p></p><div style='mso-element:para-border-div;border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm'><p class=MsoNormal style='border:none;padding:0cm'><b>De : </b><a href="mailto:pragma@wxs.nl">Hans Hagen</a><br><b>Envoyé le :</b>lundi 5 mars 2018 16:06<br><b>À : </b><a href="mailto:ntg-context@ntg.nl">ntg-context@ntg.nl</a><br><b>Objet :</b>Re: [NTG-context] prevgraf change if page break occurs in a paragraph</p></div><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>On 3/5/2018 3:51 PM, Joseph Canedo wrote:</p><p class=MsoNormal>> If I have a callback called just after paragraph has been split into </p><p class=MsoNormal>> lines, would not be enough to count the number of hboxes in the vbox the </p><p class=MsoNormal>> paragraph itself is contained ? Cannot say it’s ideal (easier to simply </p><p class=MsoNormal>> read tex.prevgraf for sure), but might be possible, unless I missed </p><p class=MsoNormal>> something (totally possible).</p><p class=MsoNormal>> </p><p class=MsoNormal>> In a couple of cases I see \prevgraf being larger than number of lines </p><p class=MsoNormal>> of previous paragraph, including lines for paragraph before than one as </p><p class=MsoNormal>> well. Could not create a MWE unfortunately to reproduce this case so far.</p><p class=MsoNormal>> </p><p class=MsoNormal>> I’ll try to amend my dropcaps/lettrine logic then. What are the reasons </p><p class=MsoNormal>> behind this change in \prevgraf TeX primitive which AFAIK exists since </p><p class=MsoNormal>> TeX has been written ? I thought that one of the strong points in TeX </p><p class=MsoNormal>> was overall stability of its behaviour among versions. Here with this </p><p class=MsoNormal>> semantic change in \prevgraf in recent luatex, this stability is a bit </p><p class=MsoNormal>> broken IMO.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>it's *not changed* in luatex .. context *itself* sets the prevgraf at </p><p class=MsoNormal>the next page as indicator of the left-over lines</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>say that you have:</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>XXX ------------------</p><p class=MsoNormal>XXX ------------------</p><p class=MsoNormal>----------------------</p><p class=MsoNormal>----------------------</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>- a page break between the first and second line is a bug in your code</p><p class=MsoNormal>- a page break after the second line is harmless and as we're on a new </p><p class=MsoNormal>page then there is nothing to be done i.e. prevgraf then is set to 2 (as </p><p class=MsoNormal>we have two lines if we look back)</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>say that you have:</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>XXX ------------------</p><p class=MsoNormal>XXX</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>- if you get a page break here, again there is nothing to be done as </p><p class=MsoNormal>you're on a next page</p><p class=MsoNormal>- if you need to pick up in the next pagagraph (on the same page) then</p><p class=MsoNormal>prevgraf is 1</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>so, what in your case does it mean that when your next paragraph is on </p><p class=MsoNormal>the next page you look at prevgraf? there is no need to hangindent as </p><p class=MsoNormal>your hanging stuff is on the previous page</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>also, in general prevgraf is kind of useless when you have lines higher </p><p class=MsoNormal>than lineheight so if you use a callback, you also should calculate the </p><p class=MsoNormal>real accumulated drop so far</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>> Joseph</p><p class=MsoNormal>> </p><p class=MsoNormal>> *De : *Hans Hagen <mailto:pragma@wxs.nl></p><p class=MsoNormal>> *Envoyé le :*lundi 5 mars 2018 10:15</p><p class=MsoNormal>> *À : *ntg-context@ntg.nl <mailto:ntg-context@ntg.nl></p><p class=MsoNormal>> *Objet :*Re: [NTG-context] prevgraf change if page break occurs in a </p><p class=MsoNormal>> paragraph</p><p class=MsoNormal>> </p><p class=MsoNormal>> On 3/5/2018 9:43 AM, Joseph Canedo wrote:</p><p class=MsoNormal>> </p><p class=MsoNormal>>  > I see. I use prevgraf to get number of lines in most recent paragraph to</p><p class=MsoNormal>> </p><p class=MsoNormal>>  > compute eventually hangindent if there is a lettrine in paragraph (in</p><p class=MsoNormal>> </p><p class=MsoNormal>>  > case first paragraph has fewer lines than the lettrine itself, of course</p><p class=MsoNormal>> </p><p class=MsoNormal>>  > next paragraph needs to setup hangindent properly).</p><p class=MsoNormal>> </p><p class=MsoNormal>> but .. that one is then still on the same page; in fact, you should</p><p class=MsoNormal>> </p><p class=MsoNormal>> check for realpage being changed then</p><p class=MsoNormal>> </p><p class=MsoNormal>>  > I guess as an alternative, I could use the callback after paragraph is</p><p class=MsoNormal>> </p><p class=MsoNormal>>  > split in N lines to count the number of lines, or is this number can be</p><p class=MsoNormal>> </p><p class=MsoNormal>>  > accessed via some other existing variable in tex lua « table » ?</p><p class=MsoNormal>> </p><p class=MsoNormal>>  > Currently I access prevgraf value Inside lua. Probably better than</p><p class=MsoNormal>> </p><p class=MsoNormal>>  > making things more complicated in luatex itself.</p><p class=MsoNormal>> </p><p class=MsoNormal>> prevgraf is still ok after a 7 line paragraph but ... when you cross a</p><p class=MsoNormal>> </p><p class=MsoNormal>> page, and have say 4 lines moved to the next one, then a 7 line</p><p class=MsoNormal>> </p><p class=MsoNormal>> hangafter would be wrong (you can check if a par is on the same page)</p><p class=MsoNormal>> </p><p class=MsoNormal>> with callbacks after breaking in lines you still don't know ...</p><p class=MsoNormal>> </p><p class=MsoNormal>> Hans</p><p class=MsoNormal>> </p><p class=MsoNormal>> -----------------------------------------------------------------</p><p class=MsoNormal>> </p><p class=MsoNormal>>                                             Hans Hagen | PRAGMA ADE</p><p class=MsoNormal>> </p><p class=MsoNormal>>                 Ridderstraat 27 | 8061 GH Hasselt | The Netherlands</p><p class=MsoNormal>> </p><p class=MsoNormal>>          tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl</p><p class=MsoNormal>> </p><p class=MsoNormal>> -----------------------------------------------------------------</p><p class=MsoNormal>> </p><p class=MsoNormal>> ___________________________________________________________________________________</p><p class=MsoNormal>> </p><p class=MsoNormal>> If your question is of interest to others as well, please add an entry </p><p class=MsoNormal>> to the Wiki!</p><p class=MsoNormal>> </p><p class=MsoNormal>> maillist : ntg-context@ntg.nl / </p><p class=MsoNormal>> http://www.ntg.nl/mailman/listinfo/ntg-context</p><p class=MsoNormal>> </p><p class=MsoNormal>> webpage  : http://www.pragma-ade.nl / http://context.aanhet.net</p><p class=MsoNormal>> </p><p class=MsoNormal>> archive  : https://bitbucket.org/phg/context-mirror/commits/</p><p class=MsoNormal>> </p><p class=MsoNormal>> wiki     : http://contextgarden.net</p><p class=MsoNormal>> </p><p class=MsoNormal>> ___________________________________________________________________________________</p><p class=MsoNormal>> </p><p class=MsoNormal>> </p><p class=MsoNormal>> </p><p class=MsoNormal>> ___________________________________________________________________________________</p><p class=MsoNormal>> If your question is of interest to others as well, please add an entry to the Wiki!</p><p class=MsoNormal>> </p><p class=MsoNormal>> maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context</p><p class=MsoNormal>> webpage  : http://www.pragma-ade.nl / http://context.aanhet.net</p><p class=MsoNormal>> archive  : https://bitbucket.org/phg/context-mirror/commits/</p><p class=MsoNormal>> wiki     : http://contextgarden.net</p><p class=MsoNormal>> ___________________________________________________________________________________</p><p class=MsoNormal>> </p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>-- </p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>-----------------------------------------------------------------</p><p class=MsoNormal>                                           Hans Hagen | PRAGMA ADE</p><p class=MsoNormal>               Ridderstraat 27 | 8061 GH Hasselt | The Netherlands</p><p class=MsoNormal>        tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl</p><p class=MsoNormal>-----------------------------------------------------------------</p><p class=MsoNormal>___________________________________________________________________________________</p><p class=MsoNormal>If your question is of interest to others as well, please add an entry to the Wiki!</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context</p><p class=MsoNormal>webpage  : http://www.pragma-ade.nl / http://context.aanhet.net</p><p class=MsoNormal>archive  : https://bitbucket.org/phg/context-mirror/commits/</p><p class=MsoNormal>wiki     : http://contextgarden.net</p><p class=MsoNormal>___________________________________________________________________________________</p><p class=MsoNormal><o:p> </o:p></p></div></body></html>