[NTG-context] Re: texexec 4.0 to 5.0 update.

h h extern pragma at wxs.nl
Sun Oct 24 21:42:53 CEST 2004

Dirar BOUGATEF wrote:

> What is the folder script in cont-tmf ? I had to copy manually the 
> texexec.pl from this folder to my bin folder to update texexec with the 
> 5.0 version. Should not that have been done when i unzipped every thing 
> or is it done on purpose (To me it looks like the peltk folder in 
> texmf\context).

In the latest TDS specs, scripts now reside under the ../scripts path 
instead of under package entries (like ../context).

One way to locate a script used to be to call 'kpsewhich' with the 
format 'other text files' but now the format is 'texmfscripts'.

The consequence of this is, that (combined with moved enc and map files 
in combination with strict paths in the texmf.cnf files), tex 
distributions are not downward compatible. The assumption is more or 
less that users reinstall the whole lot and don't have their own fonts 
and such -)

Another change is the flattening of format suffixes to fmt (so make sure 
that you remove the efmt ones when you update binaries); although the 
spec suggests the usage of an $engine subpath (in order to distinguish 
formats) it looks like distributions will not implement this (too 

The way context deals with that is the following:

- you can use texmfstart (ruby script, win binary at our website) to 
launch a resource (document, script. whatever is supported)
- you can use textools --fixtexmftree to convert an old to a new tree
- you can use --engine (or set the var in texexec.ini) to use the 
$engine subpath conforming the TDS structure [unfortunately it looks 
like the $engine subpath will not be supported by texmf.cnf file; so 
much for standards]

alternatively, one can (manually) adapt the texmf.cnf file (or have a 
partial copy in your local tree) that extends the enc + map paths to the 
old locations

Launching a script, can be done indirectly, using texmfstart, like

   texmfstart texexec.pl ... args ...

or one can make a small stub, for instance:

   texmfstart --make texexec.pl

and move the resulting bat file in one of your bin path. The texmfstart 
route is supposed to work with the old and new trees and future trees 
(since I will try to keep texmfstart downward compatible).

[on unix, it's hard to distinguish files by type, i.e. texexec can be a 
stub, perl script, binary, whatever; in this case, texmfstart will create a

Note that distributions have different means of locating scripts and 
resources, in which case you depend on the integrety of a distribution. 
In case of problems, you can always replace the stubs by texmfstart 
based stubs.

Because of testing for tex live (which is the reference cross platfoirm 
tex distribution), i package the zips in the new structure and this 
means that users who have old trees and binaries may run into problems 
when they mix things.

[these changes in the enc/map file locations may give users who have 
their own font trees some headaches; also, if you use scripts in your 
own scripting tools e.g. in server apps, then you should be aware of the 
fact that locating scripts needs patches, i.e. the format fed to 
kpsewhich; here i have so many scripts that i don't put them all in the 
path, for instance because of name clashes, and i used to use kpsewhich 
to locate them; using texmfstart in such cases is more future safe, and 
with the coming new kpse run-as-deamon libraries it may become faster as 


                                           Hans Hagen | PRAGMA ADE
               Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
      tel: 038 477 53 69 | fax: 038 477 53 74 | www.pragma-ade.com
                                              | www.pragma-pod.nl

More information about the ntg-context mailing list