[tex-live] texmflocal

Vladimir Lomov lomov.vl at gmail.com
Tue Jul 31 09:46:46 CEST 2012


** Reinhard Kotucha [2012-07-30 21:20:16 +0200]:

> On 2012-07-30 at 15:06:31 +0900, Vladimir Lomov wrote:

>> Hello,
>> ** Bernd Rellermeyer [2012-07-21 08:13:01 +0200]:

>>> I have two directories in TEXMFLOCAL,  using brace expansion. At least
>>> the updmap script does not work with this configuration but seems to
>>> expect only one directory. Otherwise it throws an error in line 248.
>>> Is this just a bug in updmap, or is TEXMFLOCAL meant to expand to only
>>> one single directory?

>> So I wonder why are you using more than one directory in TEXMFLOCAL?

>> If you have several directories with local tex/latex files and you wish
>> add them to search path there is another way.

>> (I see that "workaround" proposed by Norbert Preining causes more
>> troubles than benefit).

>> I can give you advice based on my experiance.

>> For ordinary user
>> -----------------

>> (i.e. he/she can't run 'sudo' or in other words, not administrator),
>> not font stuff:

>> Let's suppose that in addition to TEXMFHOME (~/texmf) there is directory
>> ~/texmf-projects/STUFF.

>> Create file `texmf.cnf' and write to it
>> TEXMFHOME=$HOME/texmf;$HOME/texmf-projects/STUFF

>> Create environment variable TEXMFCNF[1] with content:

>> where <REST> is output of command
>> kpsewhich -var-value TEXMFCNF

> No, setting the TEXMFCNF env var should be avoided at any price.  It's
> a last resort in very rare situations.  It's too easy to break your
> installation or to make it unmaintainable, at least.

Yes, I agree with you in this: setting `TEXMFCNF' environment
variable can (sometimes) break TL installation so the price very high;

> If a *user* wants to add extra trees to standard search paths, then
> the environment variable TEXINPUTS should be used as described in
> section 7.1.4 of the TeX Live Guide.  And don't forget the leading or
> trailing colon.

but the use of `TEXINPUTS' variable is not that flexible and convenient:
imagine that one edit a LaTeX document in Emacs or doing testing of some
'package' (not a TL one). The change of `TEXINPUTS' variable doesn't
affect already running Emacs, so one has to either restart Emacs or to
write a wrapper $HOME/bin/[|pdf|xe|lua]latex (user can simply change
value of `TEXINPUTS' variable in the wrapper directly or wrapper script
can read file with `TEXINPUTS' env variable value).

So I see two ways to use `TEXINPUTS':
1. open terminal -> adjust `TEXINPUTS' -> start editor in terminal ->
   edit document, check 'package' -> close editor -> adjust `TEXINPUTS'
   -> ...
2. write wrapper (just once), start editor -> test, edit document ->
   change value of `TEXINPUTS' in wrapper CFG file -> ...

With `TEXMFCNF' variable and `texmf.cnf' file it is almost #2 but
without need to write a wrapper.

Cons of wrapper: only engines can use `TEXINPUTS' variable, other tools
are not.

#1: all tools know about `TEXINPUTS' variable but too tedious to use
this scheme.

> In general, if you need to extend your system, the least invasive
> solution is always the best one.

IMHO, this is more "invasiveness" vs "convenience" question; I know both
ways but prefer the second.

WBR, Vladimir Lomov

Not everything worth doing is worth doing well.

More information about the tex-live mailing list