Running Mark IV

From ConTeXt wiki
Jump to: navigation, search

Contents

Introduction

ConTeXt Mark IV does not use the kpathsea library to find files and configuration settings. It follows that running mktexlsr or fmtutil has no effect. This page explains the details of setting up and maintaining Mark IV.

History

The most important original motivation for this page was that the TeX Live 2008 edition contained Mark IV, but it was only copied to the installed system, no post-install setup took place at all. For the Tex Live 2008 release, the post-install setup had to be done manually. TeX Live 2009 did not come with a usable Mark IV at all because the luatex on the 2009 editions was too old compared to the ConTeXt version. Instructions on how to deal with TeX Live 2009 were needed then. TeX Live 2010 has a working Context Mark IV out of the box: you can just run 'context' directly. At most, you could run luatools --generate; context --make to deal with any tlmgr updates you may have performed since installing TeX Live.

In TeX Live 2011, not even that is needed and you only have to run mtxrun --generate when files are installed manually outside of tlmgr. If you are running tl 2011, this page is just background information, there should be no need to take actual actions.

Special notes (TL 2008/2009):

Special notes (TL 2010):

Quickstart

If you have trouble following these instructions, please direct you questions or complaints on the ntg-context mailing list, not the tex-live list.

Just for the extremely impatient unix user that knows how to deal with a web2c-based TeX distribution and has a simple, private (single-user) installation, this is the only absolutely required extra knowledge:

 luatools --generate        # 2010 and earlier

or

 mtxrun --generate          # 2011

is the Mark IV replacement for mktexlsr.

 context --make

is the Mark IV replacement for fmtutil.

 context myfile.tex

typesets a file.

Everybody else should read on.

A note for windows users: (tl2008/2009) the luatex executable does not accept filenames with spaces in their name. This means that if you are on windows you will at least have to set up a texmfcnf.lua as explained below, and you likely will even have to reinstall texlive, because the default texlive installation directory itself contains spaces. Details.

Generating and updating formats

Before first use and after each update to either the context distribution or the luatex executable you will have to regenerate the formats. The manual command for that is:

 context --make cont-en

This will generate a new Mark IV format with the English interface. Without an explicit format argument, it will generate four formats: Mark IV cont-en, Matk IV cont-nl, luatex+mptopdf, and luatex+plain.

Starting with 2011, formats are automatically (re)generated by context myfile.tex when it believes it is necessary to do so. Specifically: assuming the format already exists, automatic regeneration takes places whenever the ConTeXt version of the luatex version do not match the ones in the pre-existing format. Manual patches of the core files still require manual regeneration of the formats.

The generated formats are stored inside the texmf cache.

Experimental speedup

In addition to standard luatex we provide luajittex which uses just in time compilation to speed up processing. The speedup is mostly due to the faster virtual machine. The exact speedup depends on the tex/lua ratio and we measured speedups between 10% and 40%. You force this engine with

 context --jit ....

Alternatively you can put

% engine=luajittex

on top of your main document source.

Using fonts

The OSFONTDIR environment variable should contain the paths where the system fonts must be looked for.

See Fonts in LuaTex#Getting access to the system fonts

Downloaded files

If you have the program 'curl' installed, then your input file can contain e.g.

\externalfigure
  [http://www.pragma-ade.com/show-gra.pdf]

and the referenced file will be downloaded automatically and placed in the 'texmf cache' if is not found in the cache already.

In case of trouble

File not found (TL 2008/2009)

 I can't find file `C:/Program.tex'.

This is likely caused by the luatex executable not handling filename quoting properly yet. If filenames with spaces work at all, you are just lucky.

This problem is most likely to happen on Windows. There two steps to deal with it:

Cache internals

(this paragraph is for developers and power-users only)

If you look at the folder that TEXMFCACHE points to, you will see a folder named luatex-cache. Inside that, there is the folder context. Inside the context folder, there usually is a single subfolder with a hexadecimal name. This is the md5sum of the name of the 'tex root' location (to be precise, it is the md5sum of the full path expansion of the context lua equivalent of the TEXMFCNF variable).

Below this, there are currently four folders:

C O N T E X T G A R D E N

Personal tools
Namespaces
Variants
Actions
Help
External Help
Installation
Navigation
Toolbox