[XeTeX] public xelatex.fmt
Bruno Voisin
bvoisin at mac.com
Wed Jun 4 20:27:45 CEST 2008
Le 4 juin 08 à 19:22, maxwell at umiacs.umd.edu a écrit :
>> Regarding where xelatex looks for format files, you can try
>>
>> kpsewhich --progname=xelatex --show-path=.fmt
>
> .:!!/home/mmaxwell/.texmf-config/web2c:!!/home/mmaxwell/.texmf-var/
> web2c:/home/mmaxwell/texmf/web2c:!!/usr/share/texmf-config/web2c:!!/
> usr/share/texmf-var/web2c:!!/usr/local/share/texmf/web2c:!!/groups/
> tools/texlive/2007/texmf/web2c:!!/usr/share/texmf-dist/web2c
>
> OK, what do all those '!!' mean? The kpsewhich man page doesn't
> mention
> them. And the last dir (/usr/share/texmf-dist/web2c) in the output of
> this command doesn't exist. The kpsewhich man page does say "the
> search
> path for TeX source files is used", and I should presumably change
> it to
> remove the nonexistent dir (and maybe substitute some other dirs); but
> what determines that search path? Again, the man page doesn't say.
For that level of detail, you need to look at the full doc of
kpathsea, not just the man page of kpsewhich. Normally the following
should display this doc for you:
texdoc kpathsea
Otherwise the doc should be at something like /usr/local/share/texmf/
doc/kpathsea/kpathsea.pdf or /groups/tools/texlive/2007/texmf/doc/
kpathsea/kpathsea.pdf (for me on Mac OS X it's /usr/local/texlive/2007/
texmf/doc/kpathsea/kpathsea.pdf).
There, you'll find:
"If a particular path element begins with ‘!!’, however, only the
database will be searched for that element, never the disk."
And regarding the search path, it's determined in texmf.cnf. Again,
kpsewhich is your friend, yielding in my case:
$ kpsewhich texmf.cnf
/usr/local/texlive/2007/texmf/web2c/texmf.cnf
There, a number of variables are defined, each associated with a given
texmf tree, like
TEXMFCONFIG = $HOME/.texlive2007/texmf-config
And then the ordering in which these various trees are searched is
also defined, like
TEXMF = {$TEXMFCONFIG,$TEXMFVAR,$TEXMFHOME,!!$TEXMFSYSCONFIG,!!
$TEXMFSYSVAR,!!$TEXMFMAIN,!!$TEXMFLOCAL,!!$TEXMFDIST}
Of course, as pointed out by Jonathan, you may have shell
initialization files adding another layer by redefining some of these
environment variables, like TEXINPUTS. Unless you really know what
you're doing, I would advise FWIW against this: the default setup in
texmf.cnf is flexible enough for most cases.
This file includes a handful of very helpful self-explanatory
comments, like, regarding your first question,
% // means to search subdirectories (recursively).
% A leading !! means to look only in the ls-R db, never on the disk.
% In this file, either ; or : can be used to separate path components.
% A leading/trailing/doubled path separator in the paths will be
% expanded into the compile-time default. Probably not what you want.
%
% You can use brace notation, for example: /usr/local/{mytex,othertex}
% expands to /usr/local/mytex:/usr/local/othertex. Instead of the comma
% you can use the path separator: /usr/local/{mytex:othertex} also
expands
% to /usr/local/mytex:/usr/local/othertex.
Bruno Voisin
More information about the XeTeX
mailing list