[tex-live] Feature request for TL 2014 (or later): Easier installation of local/experimental packages

Ulrike Fischer news3 at nililand.de
Thu Feb 13 10:08:41 CET 2014

Am Thu, 13 Feb 2014 00:12:49 +0100 schrieb Reinhard Kotucha:

>  > > * use
>  > > 	tlmgr conf texmf TEXMFPROJECT /my/path/foo/bar
>  > > [...] 
>  > > Remove:
>  > > * remove TEXMFPROJECT setting
>  > > 	(not implemented) tlmgr conf texmf TEXMFPROJECT --clear

>  > Here is my way for experimental stuffs:
>  > Add:
>  >   tlmgr conf texmf TEXMFHOME "~/texmf-test:~/texmf"
>  > Remove:
>  >   tlmgr conf texmf TEXMFHOME "~/texmf"
> This sounds good.  The advantage of TEXMFHOME is that no ls-R files
> are involved.  This is fine for experimental stuff.  Another advantage
> is tilde expansion, which helps to keep the value of TEXMFHOME small.   

But would tilde expansion works on windows? Even if yes: I never use
my user profile for texmf trees. I have important trees in a data
partition, and tests in a test partition, and sometimes the trees
are from a backup drive or stick. Any solution that would expect
that I use a dedicated folder for local trees is not very useful
for me. 

Is it safe to have more than one tree in TEXMFHOME and TEXMFLOCAL? I
have a faint memory that someone ran into trouble because one of the
scripts didn't expected it and that someone (Norbert? You?) wrote
one shouldn't do this.

I personally like the idea of Norbert to use a new dedicated
variable like TEXMFPROJECTS for additional roots as it would
(hopefully) not interfere with existing solutions and scripts.  

> As far as TEXMFLOCAL is concerned, I doubt that I want to maintain it
> this way.  I have eight extra texmf trees ATM and since I always have
> to specify the full path, a two-step approach is more convenient:
> TEXMFFOO=/path/to/texmf-foo
> TEXMFBAR=/path/to/texmf-bar
> TEXMFBAZ=/path/to/texmf-baz
> ...
> TEXMFEXTRA={<list of the trees above>}
> Then I inserted TEXMFEXTRA to TEXMF and TEXMFDBS.
> Sure, I could achieve the same with
>   tlmgr conf texmf TEXMFLOCAL ...
> too, but imagine the length of "...".  It's more convenient to use a
> text editor in order to maintain texmf.cnf. 

Well as I wrote I'm using something similar currently but don't find
it very comfortable. I would prefer a way that involves only the
command line (where I have tab completion for the pathes) and which
is scriptable so that I can switch configurations when I go from one
project to another -- but thinking about it, I could probably manage
this by changing TEXMFHOME. 

But managing texmf.cnf is difficult to explain to "normal" users.

> Anyway, I'm still convinced that your approach is perfect and that
> nothing has to be added to tlmgr's CLI.   Those who enjoy the CLI
> certainly enjoy text editors too.
> But for things like this a GUI could be quite useful.  Suppose that
> the current value of TEXMFHOME is
>   "~/texmf:~/texmf-pgf:~/texmf-luaotfload"
> Then the GUI could split the list and display:
>  [X] ~/texmf
>  [X] ~/texmf-pgf
>  [X] ~/texmf-luaotfload
> It's obviously very easy to remove a particular tree.  It's more
> difficult to add another one because the order matters.  Either one
> one has to be able to prepend, append, or insert a new path (the
> latter is the most difficult one), or a new path is always appended
> and the order can be changed later (click on an entry and push a
> [move~up] or [move~down] button). 

Miktex started with a GUI for this and added the command line option
initexmf --register-root at my request: The GUI was to slow for me

But a GUI for normal users and an additional "move-up"/"move-down"
option would be fine. 

And perhaps one could show such a splitted list also on the command
line perhaps 
  tlmgr roots --show. 

If the roots which the user is allowed to change had numbers
(texmf-dist e.g. should not have a number ;-), but if would be fine
if it would be in the list)  one could do 
 tlmgr roots --move-up=3
 tlmgr roots --remove=5

> As far as I understand what Ulrike is doing, it makes much more sense
> to allow to change the search order because it allows to compare two
> versions of, say luaotfload.  

It depends. miktex doesn't allow to create a root behind the main
root. And in your method too the roots are before texmf-dist. So if
I want to compare a new luaotfload with the main one I have to
disable the new one. Also miktex has as far as know no method to
change the order of the roots on the command line so I would have to
go to the gui. 

> If you remove a tree from TEXMFHOME and
> start tlmgr again in order to re-activate it, you have to type the
> path again each time.

With tab-completion the typing is quite fast -- and in one session I
can use the means of the command line to repeat command in a
keystroke. So this is not so bad. 

> Though I usually prefer the command line, I think that this is a good
> example where a GUI has some advantages.  In order to achieve the same
> feature on the command line, always two steps are necessary:
>   1. Display the list with indices
>         (1) ~/texmf
>         (2) ~/texmf-pgf
>         (3) ~/texmf-luaotfload
>   2. Provide commands which modify TEXMF* variables and accept indices
>      as arguments.

I should have read to the end before writing my suggestion above
;-).  Imho both approachs (GUI and command line) have their benefits
depending on the needs of the user.   

Ulrike Fischer 

More information about the tex-live mailing list