texmfstart(1) run ConTeXt scripts, make ConTeXt wrapper scripts, view documents


texmfstart [ options ... ] [ filename ] [ arguments ... ]


ConTeXt is a typesetting system based on the .BR tex (1) family of programs. texmfstart is a ConTeXt meta-script that can run subordinate scripts (subscripts?) such as texexec(1), ctxtools(1), or pdftools(1). It can also generate short wrapper scripts to simplify common uses. These scripts are often called stubs in the ConTeXt documentation. The options control texmfstart's behaviour, and the arguments are passed to the program identified by filename.

If the filename is a document, then texmfstart will start a viewer for that document. For example:

texmfstart showcase.pdf
will start an appropriate viewer for showcase.pdf. See the EXAMPLES section.



--help, --version
print version information, usage, and examples.
print status and progress information, for example what commands are being executed.
don't pass info about locations to child processes.

Running a program:

an alternative for providing the arguments to be passed. For example,
texmfstart --arguments=b.tex texexec
will pass b.tex as the argument to texexec.
dry run: report what command would be run, but do not run it
dry run: like --report but doesn't print the trailing newline.
view the document in a web browser (for Windows).
an alternative way to specify the file (the program to run or document to open).
run a program without searching for its location (assumes that the program is on the PATH).
use the ruby(1) exec function instead of its system function.
the program space where kpsewhich(1) will search (default: context). This information is given to kpsewhich as its -progname option. Usually you don't need this option.

Creating startup scripts:

create a wrapper script or batch file to run the given file. The wrapper scripts are put in the current path, which usually means the current directory. If all is given as the file, e.g.
texmfstart --make all
then make all the ConTeXt wrapper scripts (the stubs).
when making a wrapper script (stub), create a Windows batch (.bat) file. Usually you do not need to specify this option, as texmfstart will figure out what operating system you are using.
when making a wrapper script, create a Unix shell script. Usually you do not need to specify this option, as texmfstart will figure out what operating system you are using.
specify where to put the wrapper scripts (stubs).
always use texmfstart in the wrapper script (stub).

Document viewing:

open the document at this page.

Environments and paths:

change to the specified path.
use the given TEXMF tree.
automatically determine the TEXMF tree to use (the default).
use the given environment file. Its syntax is given in the mtexmfstart.pdf manual.
print the environment variables known at runtime

Conditional execution:

run only when the given files have different timestamps.
run only when the given file has changed (based on its last-computed MD5 checksum).

Special features:

open the given file in an editor.


Optional prefixes determine the method used to search for the specified file:

expanded name based on the PATH environment variable
expanded name based on kpsewhich(1) result
expanded name relative to the current directory
expanded pathname based on environment variable name
path part of filename as located by kpsewhich(1)


texmfstart texexec.rb file.tex
Locate the texexec.rb script and run it with file.tex as its argument. In other words, make file.pdf from file.tex. If texexec(1) is properly installed on your system, this common invocation can be shortened to
texexec file.tex

texmfstart texexec file.tex
Locate the texexec(1) program (currently a ruby(1) script, texexec.rb) and run it with file.tex as its argument, producing file.pdf. This invocation can be shortened to
texexec file.tex
texmfstart ctxtools --updatecontext
Run the ctxtools(1) script, updating the ConTeXt installation. This invocation is equivalent to
ctxtools --updatecontext
texmfstart pstopdf --method=3 cow.eps
Convert cow.eps to PDF using method 3 of pstopdf(1). This invocation is equivalent to
pstopdf --method=3 cow.eps
texmfstart --make --stubpath=/usr/local/bin texexec
Make a wrapper script (stub), either a shell script /usr/local/bin/texexec on Unix, or a batch file \usr\local\bin\texexec.bat on Windows. On Unix (and maybe on Windows?), you need to make the script executable; see chmod(1).
texmfstart --edit kpse:cont-sys.tex
Locate and edit the cont-sys.tex configuration file.
texmfstart --ifchanged=whatever.mp texexec --mpgraphic whatever.mp
Rerun texexec if whatever.mp has changed since the last use of --ifchanged.
texmfstart --ifchanged=whatever.mp bin:echo rerun MetaPost
If the whatever.mp source file has changed since the last use of --ifchanged, then use the echo(1) command to tell the user to rerun MetaPost (see mpost(1)). This example shows that texmfstart can be used to run any script, not just ConTeXt scripts. The bin: prefix tells texmfstart not to search for echo in the TEXMF tree(s), but to assume that it's an executable somewhere on the PATH.
texmfstart --ifchanged=whatever.mp --direct echo rerun MetaPost
This invocation has the same effect as the preceding example, but using --direct instead of the bin: prefix, again to tell texmfstart not to search for the echo command.


MD5 checksum file used for the --ifchanged option.


For expanding filenames given with a bin prefix.
Editor to use with --edit. The environment variables are looked up in that order, with the first setting found taking priority.


On Unix, opening a PDF document first tries pdfopen then acroread, neither of which may be present on your system.

The --report option doesn't work if you specify a filename prefix (i.e. it does a real run instead of a dry run).


ConTeXt is written and maintained by Hans Hagen <URL: http://www.pragma-ade.com >. This man page, which is in the public domain, was written by Sanjoy Mahajan based on the mtexmfstart.pdf manual.