[EXT] TEXMFHOME on Windows

Reinhard Kotucha reinhard.kotucha at gmx.de
Mon Apr 10 00:11:38 CEST 2023

On 2023-04-09 at 15:32:37 +0100, Peter Flynn wrote:

 > On 09/04/2023 11:45, Philip Taylor (RHBNC) wrote:
 > > On 09/04/2023 11:29, Peter Flynn wrote:
 > >> I thought the canonical location was
 > >> Computer\System\Users\username\texmf (avoiding the need for C:,
 > >> D:, etc)
 > > 
 > > Highly unlikely, IMHO.  How would Windows know that "Computer"
 > > was to be replaced by something more meaningful, why "System",
 > > and why not %username% ?
 > Sorry, my all-lowercase username was meant to be replaced by the
 > user's actual username. But don't ask me why Computer and System
 > :-) that's what a Windows user told me (in good faith) and I
 > believe it is true, via some kind of alias or soft link. I touch
 > not the Windows.
 > > I would suggest either
 > > 
 > >   * %homedrive%%homepath%\texmf
 > >       o /or/
 > >   * %userprofile%\texmf
 > That's useful, thanks.
 > On 09/04/2023 12:51, Siep Kroonenberg wrote:
 >  > The windows version of $HOME is %userprofile%. TEXMFHOME is by
 >  > default set to %userprofile%/texmf, which is indeed usually
 >  > C:/Users/username/texmf.
 > OK, thanks. I think I understand now.
 > I wonder what happened to Computer\System\Users\... or maybe that
 > was a Windows 10 thing now dropped.
 >  > The user has to create both this directory and its subdirectory
 >  > tex/latex, according to the TDS.
 > Right. I recommend duplicating the distribution texmf tree, which
 > is overkill but does at least ensure that all the expected
 > subdirectories are present. But if ../tex/latex is sufficient to
 > make it work, that's much easier.
 >  > Beware that Windows Explorer may display a localized name
 >  > instead of 'Users', e.g. 'Gebruikers'. I am not sure whether the
 >  > actual directory name is ever localized.
 > Good point, thanks.

Hello Peter,
sorry for the late response.  TeX Live is supposed to behave the same
way on all supported platforms.  Thus you get the definitive answer

  kpsewhich -var-value TEXMFHOME 

This returns the full path (including the drive letter on Windows).
It doesn't mean that this directory already exists but that kpathsea
looks there for files.  The installer cannot create this directory
because it isn't aware of users.

Phil mentioned


But this assumes that the installer was invoked with the default
parameters -- what we strongly recommend unless users have special
requirements.  The root of TEXMFHOME is not hard coded and the only
reliable way to determine its location is to ask kpathsea.

If you support Windows users it's important to know that there is
nothing special about Windows as far as TeX Live is concerned.  On
Windows the same configuration files are read as on Unix.  All
programs are compiled from the same sources, etc.

The nasty differences between Windows and other systems are handled by
the installer and tlmgr internally.  

In order to support Windows users efficiently the only thing you have
to do is to convince them to use TeX Live.  What works for you should
then also work for them the same way, even if they are under Windows.

 > I knew there were good reasons not to use Windows :-)

I know this probably even better than you because I was forced to use
Windows in the past, though I did almost all of my work within a
virtual machine running Debian.  Windows is a pain. It was amazing to
see things running up to 12 times faster on Unix than on Windows, even
within a virtual machine running on Windows.  Windows is horribly
slow.  Nevertheless, TeX Live at least always provides the same
results on every system it supports.


Reinhard Kotucha                            Phone: +49-511-3373112
Marschnerstr. 25
D-30167 Hannover                    mailto:reinhard.kotucha at gmx.de

More information about the tex-live mailing list.