Hi Philipp,

Glad to be of some use!
This one avoids an extra call (please test):

   local cachepaths = kpse.expand_var('$TEXMFCACHE')
   if cachepaths == "$TEXMFCACHE" then
     cachepaths = kpse.expand_var('$TEXMFVAR')
   end
   if cachepaths == "$TEXMFVAR" then
     cachepaths = kpse.expand_var('$VARTEXMF')
   end

Thanks for bringing that to my attention; I?ve forwarded your bug
report to Hans.

I think I?ll upload a fixed version to CTAN this week.
I've tested the latest code and it's working fine. But shouldn't it also have

  if cachepaths == "$VARTEXMF" then
    cachepaths = "."
  end

at the end, to maintain the old behaviour, or do you think the precautionary behaviour should be changed?

Evan,

Is this normal behaviour, or a 'bug' for MikTeX installs? Or something
else altogether?

As I said, things are working fine, but it puzzles me why $TEXMFCACHE is
being generated for each working directory where I have .tex files I'm
compiling with lualatex.

There isn't supposed to be a directory *called* $TEXMFCACHE. $TEXMFCACHE is a kpathsea variable whose value is the path where the database should be created. But this variable is not defined under MiKTeX, and upon seeing that it's not defined, luaotfload is supposed to put the database in a folder with the path given by the value of the variable $TEXMFVAR (the default value in MiKTeX on Win 7 is C:\Users\<USERNAME>\AppData\MiKTeX\2.9 and you can test the value on your system by typing kpsewhich --expand-var=$TEXMFVAR in the Command Prompt, or by looking in the Roots panel of the MiKTeX settings application). The bug we've been discussing keeps luaotfload from doing that, which is why your database ends up where it does (and the problem doesn't apply to TeX Live, because the $TEXMFCACHE variable is defined in that setup).

Best,

Jura

Reply via email to