Changes

Jump to navigation Jump to search
1,512 bytes added ,  20:05, 7 April 2006
texexec --make
The Debian tetex-3.0 package If you have already followed the following steps (and probably because you've already upgraded your context installation relative to the vanilla default tetex-3.0provided context) in combination with <tt>texexec</tt> puts user-generated format files in <tt>~/.texmf-var/web2c/<i>engine</i></tt> where <i>engine</i> is typically <tt>pdfetex</tt>. If , then you don't have such a directoryre done. Otherwise, and you are using read on for the default tetex configuration, tell the mailing list so fiddly bits that this installation information can be corrected!need fixing.
Now you have two problems === Steps to correct: (1) there may be other, probably older finish a first context formats hanging around in <tt>~/.texmf-var/web2c/</tt> (i.e. above where <tt>texexec</tt> put the new ones), and the path searching code may find the older ones instead of the newer ones; (2) the path searching code may not find the newer ones at all, because it doesn't search subdirectories of <tt>web2c/</tt> (and you don't want it to automatically search all subdirectories, because there may be several different engines, e.g. <tt>pdfetex</tt>, <tt>xetex</tt>, etc. each with its own set of formats, and you want it to find the correct set, not just the first set it happens to run across).upgrade ===
So, to take care of problem 1, which is The Debian tetex-3.0 package (and probably the older context formats, you need delete them and stop vanilla tetex-3.0) in combination with <tt>fmtutiltexexec</tt> from making more of them. A likely location for them is puts user-generated format files in <tt>~/.texmf-var/web2c/<i>engine</i></tt> (where <i>engine</i> is typically <tt>pdfetex</tt>.e. not in (If you don't have such a subdirectory of itdirectory, and you are using the default tetex configuration, tell the mailing list so that this installation information can be corrected!).
When I ran The default <tt>texexectetex</tt>, setup doesn't know about such locations (it made <tt>cont-en.fmt</tt>, <tt>cont-nl.fmt</tt>, and <tt>mptopdf.fmt</tt> in <tt>~/.texmf-var/web2c/pdfetex/</tt> and they were shadowed by the older ones: <tt>~/.texmf-var/web2c/cont-en.fmt</tt>, etc. So I deleted the older ones. If you candoesn't find themknow what it should), use <tt>kpsewhich cont-en.fmt</tt> (and similarly for the it instead knows about other formatslocations (it knows what it shouldn't). Run the <tt>kpsewhich</tt> from a 'typical' directory (e.g. your home directory), rather than from <tt>~/.texmf-var/web2c/pdfetex/</tt> (adjust for your engine), otherwise it will find the newly created formats before any othersHere is how to fix both problems.
Now part 1b==== Older context formats ==== There may be older context formats lying around, and the path searching code may find these older ones instead of the new ones lovingy made by <tt>texexec</tt>. ===== Deleting the older context formats === So you need delete the older ones. But where are they? When I ran <tt>texexec</tt>, it made <tt>cont-en.fmt</tt>, <tt>cont-nl.fmt</tt>, and <tt>mptopdf.fmt</tt> in <tt>~/.texmf-var/web2c/pdfetex/</tt> and they were shadowed by the older versions: stop <tt>fmtutil~/.texmf-var/web2c/cont-en.fmt</tt>, etc. So I deleted the older ones.  If you cannot find them, use <tt>kpsewhich cont-en.fmt</tt> (and similarly for the other formats). Run the <tt>kpsewhich</tt> from a 'typical' directory (e.g. your home directory), rather than from <tt>~/.texmf-var/web2c/pdfetex/</tt> (adjust for your engine), otherwise it will find the newly created formats before any others.  ===== Stopping fmtutil from making context-related formats ===== But how did the older ones get there? <tt>fmtutil</tt> And will it happen again? Yes, though perhaps rarely (the most frustrating kind of bug). At the next upgrade of <tt>tetex</tt>, which happens frequenty on Debian, the installation scripts will rerun <tt>fmtutil</tt> as root. That probably won't cause you trouble because it puts the formats generated will go in a system-wide format directory (e.g. in <tt>/var/lib/texmf/web2c/</tt>), and your new ones will override them once you finish these steps.  However, if you, as an ordinary user, run <tt>texconfig</tt>, say to change your own default paper size from <tt>letter</tt> to <tt>a4</tt>, then <tt>tetex</tt> will regenerate all formats for you and put them in your format location <tt>~/.texmf-var/web2c/</tt> (without using the wrong place, iengine subdirectory).e And you're in the soup again.  So stop <tt>fmtutil</tt> from making any context-related formats, and let <tt>texexec</tt> handle it doesn. On standard <tt>tetex</tt> setups, you't use the d edit <tt>fmtutil.cnf</tt> (probaby in <itt>engine/var/lib/texmf/web2c/</itt> information), but on Debian systems, that file is autogenerated from configlets (tiny pieces of a config file) living in <tt>/etc/texmf/fmt.d/</tt>.  As <tt>root</tt>:
emacs -nw /etc/texmf/fmt.d/01tetex.cnf
Or (or choose your favorite editor). Comment out (with a <tt>#!</tt>) the lines for <tt>mptopdf</tt>, <tt>metafun</tt>, <tt>cont-en</tt>, and any other <tt>cont-*</tt> formats not already commented out. Now generate a new system-wide configuration file (which in the default Debian (?) tetex-3.0 setup is in <tt>/var/lib/texmf/web2c/fmtutil.cnf</tt>):
update-fmtutil
Now to fix problem 2: ==== Finding the new formats === The path searching code will not find the newer formats because the code doesn't look in search subdirectories of <tt>web2c/</tt> for formats. As mentioned aboveThe simple fix, you don't want telling it to blindly look in search all subdirectories, does not work: Context may use several different engines, e.g. <tt>pdfetex</tt> or <tt>xetex</tt>, each with a set of formats, and you want <tt>texexec</tt> to find the correct set. If it searches all subdirectories, it will use the first set that it happens to run across, which may not match the engine that you use. Instead it the searches should look in the subdirectory chosen according to the <i>engine</i>.  To do specify thiskind of search, you'd normally edit <tt>texmf.cnf</tt> directly, but Debian uses configlets for it. So edit the <tt>TEXFORMATS</tt> line in <tt>/etc/texmf/texmf.d/45TeXinputs.cnf</tt> to have the engine-searching include this magic:
TEXFORMATS = .;$TEXMF/web2c/{$engine,}
It says to look first in the <i>engine</i> subdirectory, then in the <tt>web2c</tt> directory itself. Now generate a new <tt>texmf.cnf</tt> configuration file with (still as root):
update-texmf
That should generate step generates a new <tt>/etc/texmf/texmf.cnf</tt>, which is symlinked Debian symlinks from its standard tetex location <tt>/usr/share/texmf/web2c/texmf.cnf</tt>. With luck, you are done. In the next step section you will check whether everything is working by running <tt>texexec --version</tt>.
== Finished! ==
127

edits

Navigation menu