ntg-context - mailing list for ConTeXt users
 help / color / mirror / Atom feed
From: Hans Hagen via ntg-context <ntg-context@ntg.nl>
To: ntg-context@ntg.nl
Cc: Hans Hagen <j.hagen@freedom.nl>
Subject: Re: upload
Date: Thu, 7 Jul 2022 10:27:29 +0200	[thread overview]
Message-ID: <3ba5f298-8f1a-8781-dc07-a26b8b6675ef@freedom.nl> (raw)
In-Reply-To: <ee5919f0-895d-1191-6adf-c99836c9a3e4@telus.net>

On 7/7/2022 3:15 AM, Max Chernoff via ntg-context wrote:
> Hi,
> 
> With the latest upload, "tex.linebreak" doesn't return an "info" table.
> 
> When running this code:
> 
>      \startluacode
>          function test(head)
>              local new_head, info = tex.linebreak(node.copylist(head))
> 
>              print(head, type(head), info, type(info))
> 
>              if info == nil then
>                  print "!!! info is nil !!!"
>              end
> 
>              return head
>          end
> 
>          nodes.tasks.appendaction("processors", "after", "test")
>      \stopluacode
> 
>      \starttext
>          Hello!
>      \stoptext
> 
> with the latest upload I get (also note the small typo in "rigthfill"):
> 
>      luatex warning  > linebreak: no [ leftinit | rightinit | leftfill | 
> rigthfill] expected
>      <node :    nil <=   2265 =>   2353 : par vmodepar>      
> userdata        nil     nil
>      !!! info is nil !!!
>      <node :    nil <=   2475 =>   2299 : glue userskip>     
> userdata        nil     nil
>      !!! info is nil !!!
> 
> but with live.contextgarden.net I get:
> 
>      luatex warning  > tex: left parfill skip is gone
>      Underfull \hbox (badness 10000) in paragraph at lines 20--1
>      <node :    nil <=    936 =>    929 : par vmode_par>    userdata    
> table: 0x39a050f7000    table
>      <node :    nil <=   1529 =>   1561 : glue userskip>    userdata    
> nil    nil
>      !!! info is nil !!!

This is because you need to pass a list that conforms to what the 
builder expects and the callback that you use doesn't do that for you 
(after all, it also gets hbox content).

There is no 'callback sequence handler' for the par builder (currently i 
see no need for it, also given the extra overhead involved) but this 
what what you can do:

\startluacode
     function builders.paragraphs.constructors.methods.preroll_a(head)
         local result, info = tex.linebreak(head)
         tex.prevdepth = info.prevdepth
         tex.prevgraf = info.prevgraf
         return result
     end
     function builders.paragraphs.constructors.methods.preroll_b(head)
         local result, info = tex.linebreak(nodes.nuts.copylist(head))
         inspect(info)
         return true
     end
\stopluacode

\defineparbuilder[preroll_a]
\defineparbuilder[preroll_b]

\starttext
     \setmainparbuilder[default]   \input tufte \par \input tufte \page
     \setmainparbuilder[preroll_a] \input tufte \par \input tufte \page
     \setmainparbuilder[preroll_b] \input tufte \par \input tufte \page
\stoptext

The tex.linebreak function gets the properly prepared paragraph and can 
handle it then. On the to do is a to add a 'prepare' helper that adds 
the mandate nodes (par fillers etc) but even then one has to be careful 
where linebreak hackery is applied.

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
___________________________________________________________________________________

  reply	other threads:[~2022-07-07  8:27 UTC|newest]

Thread overview: 100+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-07-06 20:10 upload Hans Hagen via ntg-context
2022-07-06 20:38 ` upload Mikael Sundqvist via ntg-context
2022-07-07  1:15 ` upload Max Chernoff via ntg-context
2022-07-07  8:27   ` Hans Hagen via ntg-context [this message]
2022-07-08  7:40     ` upload Max Chernoff via ntg-context
2022-07-08 14:20       ` upload Hans Hagen via ntg-context
2022-07-07 20:48 ` upload Aditya Mahajan via ntg-context
2022-07-07 21:16   ` upload Hans Hagen via ntg-context
2022-07-08 22:34 ` upload Otared Kavian via ntg-context
2022-07-08 22:40   ` upload Otared Kavian via ntg-context
2022-07-09  7:39     ` upload Hans Hagen via ntg-context
2022-07-09  6:40   ` upload Hans Hagen via ntg-context
  -- strict thread matches above, loose matches on Subject: below --
2023-04-11 21:02 upload Hans Hagen via ntg-context
2022-12-21 16:20 upload Hans Hagen via ntg-context
2022-12-21 21:15 ` upload Pablo Rodriguez via ntg-context
2022-12-09 16:41 upload Hans Hagen via ntg-context
2022-10-21 19:23 upload Hans Hagen via ntg-context
2022-05-09 15:41 upload Hans Hagen via ntg-context
2022-05-09 15:54 ` upload mf via ntg-context
2022-05-09 16:16   ` upload Hans Hagen via ntg-context
2022-05-09 16:39     ` upload Alexandre Christe via ntg-context
2022-05-09 16:16   ` upload Alexandre Christe via ntg-context
2022-05-09 16:36     ` upload Mikael Sundqvist via ntg-context
2022-05-10  5:10       ` upload śrīrāma via ntg-context
2022-05-11 12:48   ` upload śrīrāma via ntg-context
2022-05-11 15:46 ` upload Zhichu Chen via ntg-context
2022-05-11 17:00   ` upload Hans Hagen via ntg-context
2022-03-25 10:01 upload Hans Hagen via ntg-context
2022-03-28 21:22 ` upload Otared Kavian via ntg-context
2022-03-28 21:54   ` upload Mikael Sundqvist via ntg-context
2022-03-29  4:37     ` upload Otared Kavian via ntg-context
2022-03-29 14:10       ` upload Mikael Sundqvist via ntg-context
2022-03-29 16:08         ` upload Aditya Mahajan via ntg-context
2022-03-30 10:02           ` upload Otared Kavian via ntg-context
2021-12-30 18:14 upload Hans Hagen via ntg-context
     [not found] <mailman.320.1640390435.1172.ntg-context@ntg.nl>
2021-12-25  9:09 ` upload Jeong Dal via ntg-context
2021-12-25 10:57   ` upload Hans Hagen via ntg-context
2021-12-24 18:45 upload Hans Hagen via ntg-context
2021-12-24 22:08 ` upload Jairo A. del Rio via ntg-context
2021-12-24 23:39   ` upload Rik Kabel via ntg-context
2021-12-24 23:54   ` upload Hans Hagen via ntg-context
2021-12-25  9:19 ` upload Marco Patzer via ntg-context
2021-12-25 10:55   ` upload Hans Hagen via ntg-context
2021-12-25 11:22     ` upload Marco Patzer via ntg-context
2021-12-25 11:44       ` upload Hans Hagen via ntg-context
2021-12-25 12:18         ` upload Marco Patzer via ntg-context
2021-12-03 14:29 upload Hans Hagen via ntg-context
2021-12-06  4:41 ` upload Jairo A. del Rio via ntg-context
2021-11-24 14:29 upload Hans Hagen via ntg-context
2021-11-26 10:06 ` upload Alain Delmotte via ntg-context
2021-11-26 10:44   ` upload Hans Hagen via ntg-context
2021-10-21 18:04 upload Hans Hagen via ntg-context
2021-10-21 19:13 ` upload Pablo Rodriguez via ntg-context
2021-10-22  7:55   ` upload Hans Hagen via ntg-context
2021-10-21 20:31 ` upload Mikael Sundqvist via ntg-context
2021-10-22  7:22   ` upload Hans Hagen via ntg-context
2021-10-23  8:10     ` upload Mikael Sundqvist via ntg-context
2021-10-22 15:50 ` upload Michal Vlasák via ntg-context
2021-10-22 16:51   ` upload Pablo Rodriguez via ntg-context
2021-10-23  0:40   ` upload Hans Hagen via ntg-context
2021-10-18 21:17 upload Hans Hagen via ntg-context
2021-10-19  6:43 ` upload Axel Kielhorn via ntg-context
2021-10-20  7:29   ` upload Hans Hagen via ntg-context
2021-10-19 16:03 ` upload Pablo Rodriguez via ntg-context
2020-11-23 17:55 upload Hans Hagen
2020-11-23 18:28 ` upload Pablo Rodriguez
2020-11-23 18:29 ` upload Christian Prim
2020-11-23 19:21   ` upload Otared Kavian
2020-11-23 19:27     ` upload Hans Hagen
2020-11-23 19:24   ` upload Hans Hagen
2020-11-17 11:55 upload Hans Hagen
2020-11-17 13:57 ` upload Pablo Rodriguez
2020-11-17 14:15   ` upload Hans Hagen
2020-11-18 20:29     ` upload Pablo Rodriguez
2020-11-18 22:57       ` upload Hans Hagen
2020-11-17 15:26 ` upload Willi Egger
2020-07-27 14:42 upload Hans Hagen
2020-07-28  8:58 ` upload Fabrice Couvreur
2020-07-28 11:28   ` upload Hans Hagen
2020-02-11 16:00 upload Hans Hagen
2020-02-11 16:18 ` upload Floris van Manen
2020-02-11 19:07   ` upload Hans Hagen
2020-02-11 21:09     ` upload Richard Mahoney | Indica et Buddhica
2020-02-13 10:28 ` upload mf
2020-02-13 12:57   ` upload Hans Hagen
2020-02-17  9:39     ` upload mf
2013-03-05 18:18 upload Hans Hagen
2013-03-05 19:45 ` upload Thomas A. Schmitz
2012-07-04  8:56 upload Hans Hagen
2012-07-04 10:40 ` upload Hongwen Qiu
2012-07-04 11:29   ` upload Hans Hagen
2012-07-04 16:02 ` upload Philipp Gesang
2012-06-22  9:37 upload Hans Hagen
2012-06-22 10:10 ` upload Marco
2012-06-22 11:24   ` upload Hans Hagen
2012-06-22 12:19     ` upload Marco
2012-06-19 20:40 upload Hans Hagen
2012-06-20  3:28 ` upload Hongwen Qiu
2012-06-20 14:20   ` upload Hans Hagen
2006-04-07  8:22 upload Hans Hagen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=3ba5f298-8f1a-8781-dc07-a26b8b6675ef@freedom.nl \
    --to=ntg-context@ntg.nl \
    --cc=j.hagen@freedom.nl \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).