ntg-context - mailing list for ConTeXt users
 help / color / mirror / Atom feed
* generic font loader + luaotfload: 'nodepool' (a nil value)"
@ 2017-07-14 14:39 Ulrike Fischer
  2017-07-14 17:20 ` Hans Hagen
  0 siblings, 1 reply; 6+ messages in thread
From: Ulrike Fischer @ 2017-07-14 14:39 UTC (permalink / raw)
  To: ntg-context

I have been trying to use the newest generic font loader
(luatex-fonts-merged.lua) in the context minimals with luaotfload
in latex. 

This mostly worked with one exception: luaotfload-letterspace.lua
reference a value that no longer exists:

"...mf-dist/tex/luatex/luaotfload/luaotfload-letterspace.lua:73:
attempt to index local 'nodepool' (a nil value)".

luaotfload does

local nodedirect         = nodes.nuts
local nodepool           = nodedirect.pool
local new_kern           = nodepool.kern

and uses new_kern here

local kern_injector = function (fillup, kern)
  if fillup then
    local g = new_glue(kern)
    local s = getfield(g, "spec")
    setfield(s, "stretch", kern)
    setfield(s, "stretch_order", 1)
    return g
  end
  return new_kern(kern)
end

The error goes away when I add this to the fontloader (from an older
version):

nuts.new=direct.new
-- new UF
   nuts.pool={}
   function nuts.pool.kern(k)
   local n=nuts.new("kern",1)
   setfield(n,"kern",k)
   return n
   end
-- end UF
nuts.getprop=nuts.getattr

But I would prefer to change luaotfload-letterspace.lua to use
whatever should be used to get the correct effect. Can someone tell
me how to do it??



-- 
Ulrike Fischer 
http://www.troubleshooting-tex.de/

___________________________________________________________________________________
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] 6+ messages in thread

* Re: generic font loader + luaotfload: 'nodepool' (a nil value)"
  2017-07-14 14:39 generic font loader + luaotfload: 'nodepool' (a nil value)" Ulrike Fischer
@ 2017-07-14 17:20 ` Hans Hagen
  2017-07-14 18:26   ` Ulrike Fischer
  0 siblings, 1 reply; 6+ messages in thread
From: Hans Hagen @ 2017-07-14 17:20 UTC (permalink / raw)
  To: news3, mailing list for ConTeXt users

On 7/14/2017 4:39 PM, Ulrike Fischer wrote:
> I have been trying to use the newest generic font loader
> (luatex-fonts-merged.lua) in the context minimals with luaotfload
> in latex.
> 
> This mostly worked with one exception: luaotfload-letterspace.lua
> reference a value that no longer exists:
> 
> "...mf-dist/tex/luatex/luaotfload/luaotfload-letterspace.lua:73:
> attempt to index local 'nodepool' (a nil value)".
> 
> luaotfload does
> 
> local nodedirect         = nodes.nuts
> local nodepool           = nodedirect.pool
> local new_kern           = nodepool.kern
> 
> and uses new_kern here
> 
> local kern_injector = function (fillup, kern)
>    if fillup then
>      local g = new_glue(kern)
>      local s = getfield(g, "spec")
>      setfield(s, "stretch", kern)
>      setfield(s, "stretch_order", 1)
>      return g
>    end
>    return new_kern(kern)
> end

yes, i decided to limit the dependencies ... (also because the kern 
allocator was a plug outside context)

you can use:

   local new = node.direct.new

   local g = new("glue")
   setfield(g, "stretch", kern)
   setfield(g, "stretch_order", 1)

and forget about the spec subnode which is gone for a while now (but 
still faked)

> The error goes away when I add this to the fontloader (from an older
> version):
> 
> nuts.new=direct.new
> -- new UF
>     nuts.pool={}
>     function nuts.pool.kern(k)
>     local n=nuts.new("kern",1)
>     setfield(n,"kern",k)
>     return n
>     end
> -- end UF
> nuts.getprop=nuts.getattr
> 
> But I would prefer to change luaotfload-letterspace.lua to use
> whatever should be used to get the correct effect. Can someone tell
> me how to do it??
> 
> 
> 


-- 

-----------------------------------------------------------------
                                           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] 6+ messages in thread

* Re: generic font loader + luaotfload: 'nodepool' (a nil value)"
  2017-07-14 17:20 ` Hans Hagen
@ 2017-07-14 18:26   ` Ulrike Fischer
  2017-07-14 18:56     ` Hans Hagen
  0 siblings, 1 reply; 6+ messages in thread
From: Ulrike Fischer @ 2017-07-14 18:26 UTC (permalink / raw)
  To: ntg-context

Am Fri, 14 Jul 2017 19:20:38 +0200 schrieb Hans Hagen:

>> 
>> local kern_injector = function (fillup, kern)
>>    if fillup then
>>      local g = new_glue(kern)
>>      local s = getfield(g, "spec")
>>      setfield(s, "stretch", kern)
>>      setfield(s, "stretch_order", 1)
>>      return g
>>    end
>>    return new_kern(kern)
>> end
> 
> yes, i decided to limit the dependencies ... (also because the kern 
> allocator was a plug outside context)
> 
> you can use:
> 
>    local new = node.direct.new
> 
>    local g = new("glue")
>    setfield(g, "stretch", kern)
>    setfield(g, "stretch_order", 1)

And what I should do about the "return new_kern(kern)"?

I tried various variants and got results from no letterspacing to
"invalid node type id" to " This can't happen (invalid node found in
discretionary)." to a luatex crash:

-- UF changed 2017-07-14
local new = node.direct.new

local kern_injector = function (fillup, kern)
 if fillup then
   local g = new("glue")
   setfield(g, "stretch", kern)
   setfield(g, "stretch_order", 1)
   return g
 end
 --return new_kern(kern) --??
 --
end
--


-- 
Ulrike Fischer 
http://www.troubleshooting-tex.de/

___________________________________________________________________________________
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] 6+ messages in thread

* Re: generic font loader + luaotfload: 'nodepool' (a nil value)"
  2017-07-14 18:26   ` Ulrike Fischer
@ 2017-07-14 18:56     ` Hans Hagen
  2017-07-14 22:56       ` Ulrike Fischer
  0 siblings, 1 reply; 6+ messages in thread
From: Hans Hagen @ 2017-07-14 18:56 UTC (permalink / raw)
  To: ntg-context

On 7/14/2017 8:26 PM, Ulrike Fischer wrote:
> Am Fri, 14 Jul 2017 19:20:38 +0200 schrieb Hans Hagen:
> 
>>>
>>> local kern_injector = function (fillup, kern)
>>>     if fillup then
>>>       local g = new_glue(kern)
>>>       local s = getfield(g, "spec")
>>>       setfield(s, "stretch", kern)
>>>       setfield(s, "stretch_order", 1)
>>>       return g
>>>     end
>>>     return new_kern(kern)
>>> end
>>
>> yes, i decided to limit the dependencies ... (also because the kern
>> allocator was a plug outside context)
>>
>> you can use:
>>
>>     local new = node.direct.new
>>
>>     local g = new("glue")
>>     setfield(g, "stretch", kern)
>>     setfield(g, "stretch_order", 1)
> 
> And what I should do about the "return new_kern(kern)"?

local g = new("kern")
setfield(g,"kern",kern)

> I tried various variants and got results from no letterspacing to
> "invalid node type id" to " This can't happen (invalid node found in
> discretionary)." to a luatex crash:

you can't put glue in discs so your letterspacing code should use kerns, 
not glue

> -- UF changed 2017-07-14
> local new = node.direct.new
> 
> local kern_injector = function (fillup, kern)
>   if fillup then
>     local g = new("glue")
>     setfield(g, "stretch", kern)
>     setfield(g, "stretch_order", 1)
>     return g
>   end
>   --return new_kern(kern) --??
>   --
> end
> --
> 
> 


-- 

-----------------------------------------------------------------
                                           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] 6+ messages in thread

* Re: generic font loader + luaotfload: 'nodepool' (a nil value)"
  2017-07-14 18:56     ` Hans Hagen
@ 2017-07-14 22:56       ` Ulrike Fischer
  2017-07-15  7:50         ` Hans Hagen
  0 siblings, 1 reply; 6+ messages in thread
From: Ulrike Fischer @ 2017-07-14 22:56 UTC (permalink / raw)
  To: ntg-context

Am Fri, 14 Jul 2017 20:56:15 +0200 schrieb Hans Hagen:

>> And what I should do about the "return new_kern(kern)"?
> 
> local g = new("kern")
> setfield(g,"kern",kern)

Ah. This here now worked 

-- UF changed 2017-07-14
local newUF = node.direct.new

local kern_injector = function (fillup, kern)
 if fillup then
   local g = newUF("glue")
   setfield(g, "stretch", kern)
   setfield(g, "stretch_order", 1)
   return g
 end
   local g = newUF("kern")
   setfield(g,"kern",kern)
--   return g
end
-- /UF

Is is correct? (I'm wondering if there should be return value at the
end, it worked with and without and I have no idea if it makes a
difference).



-- 
Ulrike Fischer 
http://www.troubleshooting-tex.de/

___________________________________________________________________________________
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] 6+ messages in thread

* Re: generic font loader + luaotfload: 'nodepool' (a nil value)"
  2017-07-14 22:56       ` Ulrike Fischer
@ 2017-07-15  7:50         ` Hans Hagen
  0 siblings, 0 replies; 6+ messages in thread
From: Hans Hagen @ 2017-07-15  7:50 UTC (permalink / raw)
  To: news3, mailing list for ConTeXt users

On 7/15/2017 12:56 AM, Ulrike Fischer wrote:
> Am Fri, 14 Jul 2017 20:56:15 +0200 schrieb Hans Hagen:
> 
>>> And what I should do about the "return new_kern(kern)"?
>>
>> local g = new("kern")
>> setfield(g,"kern",kern)
> 
> Ah. This here now worked
> 
> -- UF changed 2017-07-14
> local newUF = node.direct.new
> 
> local kern_injector = function (fillup, kern)
>   if fillup then
>     local g = newUF("glue")
>     setfield(g, "stretch", kern)
>     setfield(g, "stretch_order", 1)
>     return g
>   end
>     local g = newUF("kern")
>     setfield(g,"kern",kern)
> --   return g
> end
> -- /UF
> 
> Is is correct? (I'm wondering if there should be return value at the
> end, it worked with and without and I have no idea if it makes a
> difference).
the return probably has to be there because (i assume) that kern or glue 
is injected

-----------------------------------------------------------------
                                           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] 6+ messages in thread

end of thread, other threads:[~2017-07-15  7:50 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-07-14 14:39 generic font loader + luaotfload: 'nodepool' (a nil value)" Ulrike Fischer
2017-07-14 17:20 ` Hans Hagen
2017-07-14 18:26   ` Ulrike Fischer
2017-07-14 18:56     ` Hans Hagen
2017-07-14 22:56       ` Ulrike Fischer
2017-07-15  7:50         ` 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).