[tex-live] texmf.cnf paths for format files

Sanjoy Mahajan sanjoy at mrao.cam.ac.uk
Thu Jan 18 14:54:48 CET 2007

> TEXFORMATS = .;$TEXMF/web2c/{$engine,}

In my regular setup (texlive 2005 Debian packages + Norbert's Context
packages), I have it here:

  $ kpsewhich pdftex.fmt

> $ kpsewhich --engine=pdftex pdftex.fmt
> /Users/jonathan/.texlive2007/texmf-var/web2c/pdftex/pdftex.fmt

pdftex doesn't need to go into an engine-specific directory, since the
'pdftex' specifies the engine and there's no danger of duplication.
Only with formats like pdftex/cont-en.fmt vs xetex/cont-en.fmt is
engine subpath needed, as far as I can see.  So you're right that

  kpsewhich cont-en.fmt

won't find the context formats.  On the other hand, few naive users
will be trying the above command.  

> TEXFORMATS = .;$TEXMF/web2c/{$engine,}//

This alternative seems a bit dangerous because it introduces
indeterminism into the searching.  Sure, ASCII ordering will make a
choice, at least if there's an ls-R file (because 'ls' does ascii
ordering).  But without an ls-R file, I'm not sure what order the
filesystem will be searched.  Maybe the kpathsea gurus can say, but
even then it seems unwise for format searching to depend on a
low-level implementation detail like that.

An alternative fix so that 'kpsewhich pdftex.fmt' works is for fmtutil
to place pdftex.fmt in web2c/ directly.  But I'm not sure how easy
that change is to do now in the release process.


`Not all those who wander are lost.' (J.R.R. Tolkien)

More information about the tex-live mailing list