ConTeXt Standalone/Structure

From ConTeXt wiki
Jump to: navigation, search

< ConTeXt Standalone

Top Level:

Contents

current

base

Base TeX and metapost files, stored as

section/TDS

There are currently files for:

Hans has asked me several times why there is tex/tex/something and metapost/metapost/something (instead of one metapost less). This is because that's the only way to split TeX and Metapost while still allowing one to use (an obscure example)

rsync -av rsync://contextgarden.net'/minimals/current/base/xetex/ /minimals/current/base/metapost/' destination

leaving the plain TeX files on the server and not loosing TDS compliance. Also, once I add the documentation, there will be more than just metapost/metapost, but also metapost/doc.

One little problem: base metapost files are behind time compared to the binaries. Should anyone need newer files, feel free to complain and we will add them.

bin

Binaries, stored as

engine/platform/TDS

where platform can be mswin, linux, linux-64, osx-intel, osx-ppc, sun, and engine is

Special:

context

ConTeXt distributions, stored as

 version/TDS

where version could be

You can fetch a specific version with

--context=version

in mtx-update.lua.

fonts

Fonts will be reorganized!

Fonts, currently stored as

type/TDS

where type is:

misc

A special one. Currently has:

modules

Third-party modules, stored ass

module/TDS

where the available modules are synced from http://modules.contextgarden.net. If you would like your module to be added, request it on the mailing list.

Example installation (on Windows)

Here’s how I (Joel Salomon) am installing ConTeXt on my machine. It works for me; your mileage may vary.

First I created a root directory for the installation; I install “personal” programs under %USERPROFILE%\Programs, so I create the directory USERPROFILE%\Programs\ConTeXt. If you’re working from the command-line, you might want to set an environment variable for this, e.g.,

set CONTEXTROOT=%USERPROFILE%\Programs\ConTeXt

—just be aware that if you’re setting the variables below in the Windows dialog box, you’ll have to expand all uses of %CONTEXTROOT% yourself. (A ‘portable apps’ version of ConTeXt would set those variables in the launcher/wrapper.) I’m going to phrase the rest of this section in terms of the command-line.

This effort is closely related to [GUI installer]; I hope this makes explicit all the installer does.

Note that my system has Ruby installed; I don’t yet understand how to include a minimal Ruby.

Create the directories

Following the arrangement from mswincontext.zip and the ConTeXt Standalone’s download script, generate the following TDS trees, and add the binaries’ installation directory to the system path:

cd %CONTEXTROOT%

mkdir texmf texmf-context texmf-extra texmf-fonts texmf-local texmf-mswin texmf-mswin\bin texmf-project texmf-var %TEMP%\texmf-cache

set PATH=%PATH%;%CONTEXTROOT%\texmf-mswin\bin;

set OSFONTDIR=%SystemRoot%\Fonts

set TEXMFMAIN=%CONTEXTROOT%\texmf
set TEXMFCACHE=%TEMP%\texmf-cache
set TEXMFCONTEXT=%CONTEXTROOT%\texmf-context
set TEXMFEXTRA=%CONTEXTROOT%\texmf-extra
set TEXMFFONTS=%CONTEXTROOT%\texmf-fonts
set TEXMFLOCAL=%CONTEXTROOT%\texmf-local
set TEXMFOS=%CONTEXTROOT%\texmf-mswin
set TEXMFPROJECT=%CONTEXTROOT%\texmf-project
set TEXMFVAR=%CONTEXTROOT%\texmf-var
set VARTEXMF=%CONTEXTROOT%\texmf-var

TODO: Some of these might not be needed; will someone who knows which please edit this list? (See: To-Do List)


Also, tell the programs what directories have TDS trees, and where to look for configuration settings:

set TEXMFCNF=%CONTEXTROOT%\texmf{-local,-context,}\web2c
set TEXMF={%TEXMFMAIN%,%TEXMFLOCAL%,%TEXMFCONTEXT%,%TEXMFOS%,%TEXMFPROJECT%,%TEXMFFONTS%,%TEXMFEXTRA%,%VARTEXMF%}

(As stated above, you may need to expand these, e.g., replace %TEXMFMAIN% with %USERPROFILE%\Programs\ConTeXt\texmf.

Downloading

I’ve broken the rsync commands into multiple lines for readability, but you need everything on one line, space-separated. Note also that each TDS tree has its own rsync call; that lets me add the --delete option safely.

Begin the download

I need rsync, so I download it to the binaries directory, which I’ve already put on the path. Note that rsync runs under the Cygwin subsystem, so I need to set an environment variable telling it to play nicely with Windows’s ideas of file ownership. This variable doesn’t need to be permanently set (and if you run Cygwin, it probably shouldn’t be); set it temporarily before you run rsync. My system has wget installed so I’ll use that, but any method of downloading should work fine.

set CYGWIN=nontsec

wget -P texmf-mswin\bin http://minimals.contextgarden.net/setup/mswin/bin/rsync.exe
wget -P texmf-mswin\bin http://minimals.contextgarden.net/setup/mswin/bin/cygwin1.dll

If I were using mtx-update to manage the install, I’d run

rsync -rpztlv --exclude 'rsync.exe' --exclude 'cygwin1.dll' rsync://contextgarden.net/minimals/setup/mswin/bin/ texmf-mswin/bin
texlua texmf-mswin\bin\mtxrun.lua --verbose --script texmf-mswin\bin\mtx-update.lua --update --force --engine=all --texroot=%CONTEXTROOT%

but I’m going to try to exercise much finer control than mtx-update allows for. I did adapt the output of an mtx-update run (without --force) to generate the rsync calls below.

Base

Download the base TeX files, as mentioned above. I moved web2c here from the miscellanea section, so the tree is updated in a single run. Note that the web2c directory does not have a trailing ‘/’. That’s because it goes into a TDS tree, rather than containing (part of) one; omitting the ‘/’ gives us the directory …/texmf/web2c.

rsync -rpztlv --stats contextgarden.net::'minimals/current/base/tex/
                                          minimals/current/base/metapost/
                                          minimals/current/base/xetex/
                                          minimals/current/misc/web2c' texmf

Binaries

Download binaries for all engines, plus the specials, for the mswin platform. For a “legacy-free” installation, omitting the line with PDFTeX should work—but I haven’t tested it.

rsync -rpztlv --stats contextgarden.net::'minimals/current/bin/context/mswin/
                                          minimals/current/bin/common/mswin/
                                          minimals/current/bin/metapost/mswin/
                                          minimals/current/bin/pdftex/mswin/
                                          minimals/current/bin/xetex/mswin/
                                          minimals/current/bin/luatex/mswin/
                                          minimals/current/bin/man/' texmf-mswin

(Perhaps the man tree should be placed elsewhere; texmf, or maybe texmf-extra?)

ConTeXt

The more adventurous can replace current with alpha, beta, experimental, or latest.

rsync -rpztlv --stats contextgarden.net::'minimals/current/context/current/
                                          minimals/current/context/img/
                                          minimals/current/context/config/' texmf-context

Fonts

Directory other is optional; old can perhaps be omitted for a “legacy-free” (i.e., PDFTeX-free) setup.

rsync -rpztlv --stats contextgarden.net::'minimals/current/fonts/new/
                                          minimals/current/fonts/common/
                                          minimals/current/fonts/other/
                                          minimals/current/fonts/old/' texmf-fonts

Miscellanea

On the initial run, you may want to download the setuptex.* files; I adapted the list of directory trees from there.

rsync -rpztlv --stats contextgarden.net::minimals/current/misc/setuptex/ .

Extras

My guess is that texmf-extra is a good place to put the various modules mentioned above—at which point the installation can no longer be called “minimal”. The invocation would look something like this:

rsync -rpztlv --stats contextgarden.net::'minimals/current/modules/f-urwgaramond/
                                          minimals/current/modules/t-bnf/
                                          minimals/current/modules/…/' texmf-extra

Include whatever modules you’d like.

Project

I have no idea what goes into texmf-project, nor where it comes from; I’m including this directory only because the installation scripts refer to it.

Building the formats

The commands below were excerpted from a run of texlua texmf-mswin\bin\mtxrun.lua --verbose --script texmf-mswin\bin\mtx-update.lua --make --engine=all --texroot=%CONTEXTROOT%.

Kpathsea

PDFTeX and XeTeX use Kpathsea and its ls-r databases to find files. Also, I let texexechandle the generating of formats. I don’t know what the --all option does; I want a minimal (necessary and sufficient) set of formats, which I think this is:

mktexlsr
texexec --make --all --pdftex metafun cont-en
texexec --make --all --xetex metafun cont-en

luaTeX

LuaTeX has its own databases, and its own way of generating formats:

luatools --generate
luatools --ini --compile cont-en

Updating

I haven’t tried this yet, but repeating the rsync calls for the Base, Binaries, ConTeXt, Fonts, and Extras trees, perhaps including the --delete option, followed by rebuilding the databases & formats, should work.

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

Personal tools
Namespaces
Variants
Actions
Help
External Help
Installation
Navigation
Toolbox