Re: [NTG-context] generic font loader + luaotfload: 'nodepool' (a nil value)"

2017-07-15 Thread Hans Hagen

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
___

Re: [NTG-context] generic font loader + luaotfload: 'nodepool' (a nil value)"

2017-07-14 Thread Ulrike Fischer
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
___

Re: [NTG-context] generic font loader + luaotfload: 'nodepool' (a nil value)"

2017-07-14 Thread Hans Hagen

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
___

Re: [NTG-context] generic font loader + luaotfload: 'nodepool' (a nil value)"

2017-07-14 Thread Ulrike Fischer
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
___

Re: [NTG-context] generic font loader + luaotfload: 'nodepool' (a nil value)"

2017-07-14 Thread Hans Hagen

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
___