[tex-live] kpse don't find files under $TEXMF/scripts

Manuel Pégourié-Gonnard mpg at elzevir.fr
Sun Mar 28 11:57:50 CEST 2010


Hi,

Khaled Hosny a écrit :
> The lua_altopt module installed under texmf-dist/scripts/ is not seen by
> kpse,

This statement is too imprecise to be true. Kpse will or will not see the file
depending on the options you pass to it.

> If this is the expected behaviour, then we either need to special case
> lua modules (e.g. have a searchable scripts/lua/ subdir) or move lua
> modules somewhere else.
> 
Currently LUAINPUTS is .;$TEXMF/scripts/{$progname,$engine,}/lua//;$TEXINPUTS
which means that with format = 'lua' (and I guess this is what require() is
using), lua scripts in texmfscripts will be found only if their path contains a
directory named lua. (By the way, we may remove this restriction in the near
future.)

So I'd recommend to follow Reinhard's advice: locate the script using kpse an
load it using dofile(). More precisely,

local f = kpse.find_file('lua_altgetopt.lua', 'lua')
    or kpse.find_file('lua_altgetopt.lua', 'texmfscripts')
dofile(assert(f, 'lua_altgetopt not found'))

should do the trick.

I agree that it is suboptimal, and we'll see to fix this one way or another
(either by changing LUAINPUTS or by installing the files in a lua subdirectory)
soon.

Manuel.


More information about the tex-live mailing list