[XeTeX] "I can't find the format file `xetex.fmt'!"

Peter Dyballa Peter_Dyballa at Web.DE
Sun Oct 9 11:58:35 CEST 2005


Am 09.10.2005 um 01:44 schrieb Stephen Moye:

> It worked, of course, but what did I just do?

You were using a software in beta status, as Jonathan Kew mentioned 
("untested"). The software is buggy, and since you were too fast, you 
have a broken system now. The TeX binaries somehow check their formats 
and find they're not appropriate now.

There are scripts in the XeTeX i-Package that prepare or finish the 
installation process. One of them contains these statements:

	my $f1 = `kpsewhich -format="web2c files" fmtutil.cnf`;
	chomp($f1);
	editFmtUtilCnf($f1);
	my $f2 = `kpsewhich fmtutil.cnf`;
	chomp($f2);
	editFmtUtilCnf($f2) unless $f1 eq $f2;

The first kpsewhich invocation returns 
/usr/local/teTeX/share/texmf.local/web2c/fmtutil.cnf, the second one 
returns /usr/local/teTeX/share/texmf/web2c/fmtutil.cnf. The 
sub(programme or -routine) editFmtUtilCnf() only checks how often the 
string 'xetex' is contained in the cnf files (fgrep -c 'xetex'), it 
carelessly does not care whether any of these lines containing the 
string xetex is commented out. With some effort (I don't completely 
understand) nothing is done.
In case the cnf file does not contain that string, it adds to the cnf 
file's end:

	xetex		xetex		-			*xetex.ini
	xelatex		xetex		language.dat	*xelatex.ini

So xetex.configure fails to prepare the system for creation of 
xetex.fmt and xelatex.fmt, because fmtutil now seems to prefer 
/usr/local/teTeX/share/texmf.local/web2c/fmtutil.cnf with the defective 
entries:

	# XeTeX formats
	#! xetex                xetex           -               *xetex.ini
	xelatex         xetex           language.dat    *xelatex.ini

The comment in front of xetex could come from i-Installer. In Expert 
mode it allows to select XeTeX, but since no XeTeX is installed, it 
can't make that format and in order to do a perfect job, it comments 
the xetex line ...


Instead of fgrep -c 'xetex' the script should check for '^xetex' and 
for '^xelatex' or '^[^#].*xetex' and the proceed to substitute the old 
entries by correct ones.

--
Greetings

   Pete

The future will be much better tomorrow.
   -- George W. Bush



More information about the XeTeX mailing list