TL 2019 - inconsistent processing of environment variable TEXINPUTS

Karl Berry karl at freefriends.org
Wed Jul 31 23:47:34 CEST 2019


Hi Johannes,

    But when I try to set it via the appropriate config-file 

I think this behavior is expected, and has been the case since the
beginning. A generic envvar value (TEXINPUTS in environment) does indeed
override any config file value, but a generic config file value
(TEXINPUTS in any texmf.cnf) will not override a program-specific config
file value (TEXINPUTS.latex in any texmf.cnf).

Thus, to override from one texmf.cnf to another, it's necessary to use
the program-specific form:
  TEXINPUTS.latex=.;my//;

Admittedly this is a pain, since we have separate TEXINPUTS for every
TeX format (which is a big drag in itself, but no way around it now).

Although one might wish earlier/generic config file values would win
over later/specific config files, it's never been that way, as far as I
can recall. It's not entirely clear to me it would be desirable. In any
case, I don't want to change such basic behavior now.

    The TL documentation recommends to make all changes to the defaults in 

I'll try to put some more explanation into that "Config files" section.
A blanket "don't use envvars" is too draconian. Your case of including a
personal directory is exactly where envvars are ok/useful It is using
envvars to override system directories that has been a common cause of
problems in the past.

Anyway, another option is to set TEXMFHOME (or use the default
TEXMFHOME, which is ~/texmf, instead of ~/my) -- although you have to
use the usual directory tree, like ~/my/tex/...

Yet another option, as of 2019, is to use TEXMFDOTDIR, in the
environment or a config file. I haven't played with it very much, but I
think something like this would work:
  TEXMFDOTDIR=.;~/my//

--best, karl.


More information about the tex-live mailing list