[tex-live] textlive seems to ignore top of home tree

Reinhard Kotucha reinhard.kotucha at web.de
Wed Jul 21 01:03:23 CEST 2010

On 20 July 2010 hometreetexlive.9.virgilinux at dfgh.net wrote:

 > --- On Mon, 7/19/10, Akira Kakuto - kakuto at fuk.kindai.ac.jp wrote:
 > > > I would strongly advocate that
 > > the system default behaviour (subject to overruling by the
 > > administrator) should be that it finds by default either 
 > > > TEXMFHOME/tex/myclass.cls OR 
 > > > TEXMFHOME/myclass.cls
 > > 
 > > We can use TEXMFHOME for various kinds of files, fontmap
 > > files, font
 > > encoding files, TeX macros, configuration files, ...
 > > I strongly recommend to follow the TDS:
 > > Please put LaTeX macros under $TEXMFHOME/tex/latex, and
 > > don't use the top directory for them.
 > Hi, Akira:
 > Apparently I didn't explain myself well in my previous email. Let
 > me try again.
 > I already know that the subdirectory structure of TEXMFHOME has
 > shifted from a recommendation, to a requirement. Therefore, I have
 > *already* moved the ONE (1) class file that I have in TEXMFHOME --
 > which I had naively placed in TEXMFHOME -- to TEXMFHOME/tex/ (this
 > class is also in our distribution tree, but I had to made some
 > relatively minor changes to the distribution version in order to
 > accomplish certain objectives).
 > While it seems unnecessary to have a subdirectory structure for a
 > directory that only contains ONE (1) file in total, for those like
 > me who already know of this requirement, placing a class in a
 > subdirectory as opposed to the top of the directory is not a big
 > deal.
 > I have also followed your kind suggestion of setting the
 > environment variable TEXINPUTS=TEXMFHOME.  Even though I already
 > know that the subdirectory structure of TEXMFHOME is a requirement,
 > I prefer that the system searches for classes at the top of
 > TEXMFHOME in case I eventually forget about the subdirectory
 > requirement-- which is exactly what the system do with the
 > directory where the source latex file is located.

You ask for changing the behavior of the whole system only because you
eventually forget something?  Are you serious?  If you fear that you
forget something, just write it down.

 > So, from a selfish viewpoint, I am covered.
 > Now, considering that every day new people come into LaTeX, and
 > that placing a class file at the top of TEXMFHOME has been
 > recognised (even in this very thread) as a common mistake, one has
 > to consider the possibility that other people will make the same
 > mistake (as egregious as it may be). And these people may waste
 > valuable time searching for a "solution" to their "problem" : LaTeX
 > will not find the file placed at the root of TEXMFHOME. What to do
 > about it?

 > Those in a position of power can do one of two things: 

 > 1) Nothing... afterall it is those users fault that they don't know
 > that a TEXMFHOME subdirectory structure (even if only for one (1)
 > file) is required... Even if those users jointly waste lot of
 > valuable time because of this... so what... it is their fault
 > anyway. Sooner or later they'll figure it out, and they would have
 > learned their lesson.

If software is not packaged reasonably (see below), I assume that it
comes at least with a README or INSTALL file containing installation
instructions.  If not, the package author is the culprit, not the
user.  But if the package author provides instructions and a user
doesn't read them, I fear that the user has to learn his lesson.

 > 2) While the above approach is appealing, a radically different
 > approach is also possible... Even though it is technically the
 > users fault not knowing about the required subdirectory structure,
 > the powerful people could still try to save thosese users valuable
 > time... after all, their wasted time does constitute a "social
 > cost", and if one can prevent such waste by doing a minor thing
 > that won't bother anyone, why not?

You are discussing a very special case.  Usually users want to install
whole packages, including documentation, examples, and sources.  Then
a flat directory structure doesn't make sense anymore.  Furthermore,
many packages provide files like README and manual.pdf.  You cannot
safely install more than one package in a single directory.

 > Those who believe that option 2 is reasonable and actually socially
 > superior to (1) can opt to configure the system so that BY DEFAULT
 > it searches BOTH the top of TEXMFHOME and the appropriate
 > subdirectory (administrators that don't like it may still
 > re-configure their systems as they see fit).  This way, those who
 > have all their subdirectories will see no significant loss, but the
 > poor souls that for some reason have no subdirectories won't have
 > to waste valuable time searching in vain for a solution to a
 > problem that does not exist.

I'm convinced that that option (2) is neither reasonable nor socially
superior to (1).  If people aren't aware of TDS when they install the
first package, they won't be aware of TDS when they install additional
packages.  Thus, what you propose doesn't solve the problem, it just
delays it until nothing works anymore as expected.

The preferred way to distribute TeX software is to create a .zip file
which has a TDS standard compliant directory structure.  This file can
be extracted either in TEXMFLOCAL or in TEXMFHOME and users don't have
to worry about TDS at all.  If the author of the package doesn't
provide such a .zip file, he should at least provide installation

I don't know where you got the class file from, but it's quite unusual
if such a file is shipped without documentation.  I'm wondering why
you always emphasize that you want to install ***ONE*** file only.
Don't you want to install the documentation too?

Is the class file you are talking about shipped without any
installation instructions?

There are some reasons why I'm convinced that your proposal isn't
reasonable.  Assume that users are not supposed to be aware of TDS.
Then it's not sufficient to put the top-level TEXMFHOME directory into
the search path.  It's more likely that they want to install a .zip
file which has a non-TDS-compliant directory structure.  In order to
support this, TEXMFHOME has to be searched recursively.  But then it
can't be guaranteed anymore that kpathsea always finds the correct

Another reason is that currently the search strategy is the same in
all texmf trees.  Treating TEXMFHOME differently requires extra
explanations in the TL user manual.  Is it reasonable to add more
complexity to the software and to blow up the user manual only because
there are a few guys who refuse to read the manual?

I strongly recommend to leave everything as it is.  Virgil, your
problem is too special and you wasted a lot of time because either the
class file you installed was provided without installation instructions
or, if there are any, you didn'd read them.  I don't think that TeX
Live should provide a workaround.

Your proposal is based on the wrong assumption that people want to
have a class file in the top-level directory.  Nobody wants to have a
class file there, everybody wants the whole package, with documentation,
examples, and sources.


Reinhard Kotucha			              Phone: +49-511-3373112
Marschnerstr. 25
D-30167 Hannover	                      mailto:reinhard.kotucha at web.de
Microsoft isn't the answer. Microsoft is the question, and the answer is NO.

More information about the tex-live mailing list