Difference between revisions of "ConTeXt Standalone"

From Wiki
Jump to navigation Jump to search
m ({{Installation navbox}})
(added openbsd (coming soon))
(30 intermediate revisions by 15 users not shown)
Line 1: Line 1:
< [[Installation]] | [[ConTeXt Standalone/FAQ|Standalone/FAQ]] | '''[[ConTeXt Standalone/Tree|Standalone/Tree]]''' | [[ConTeXt Standalone/Structure|Standalone/Structure]] | [[ConTeXt Standalone/Implementation|Standalone/Implementation]] | [[ConTeXt Standalone/TODO|Standalone/TODO]] | [[ConTeXt Standalone/Contents|Standalone/Contents]] | [[ConTeXt Standalone/TeX Live|Standalone/TeX Live]] >
+
{{Installation navbox}}
  
The '''ConTeXt suite''' is a complete, up-to-date ConTeXt distribution which can be upgraded efficiently. It can be used to install either the stable or the beta version of ConTeXt. It can also be used in parallel with existing TeX installations such as MikTeX, TeXLive, or older minimal installation. It is aimed towards ConTeXt users, so it does not include LaTeX specific packages and binaries.  
+
The '''ConTeXt suite''' is a complete, up-to-date ConTeXt distribution that can be upgraded efficiently. It can also be used in parallel with existing TeX installations such as MikTeX, TeXLive, and so forth. The suite does not include LaTeX packages and binaries.
  
{{note | ConTeXt develops at a fast pace, and sometimes beta releases have serious bugs. ConTeXt suite allows you to test the latest ConTeXt release without having to worry if an upgrade will mess an critical project. You can have two (or multiple) parallel ConTeXt suites, and freeze one for your critical projects, and use the other one for experimenting.}}
+
Sometimes ConTeXt beta releases have issues. The ConTeXt suite allows you to test the latest ConTeXt release without worrying whether upgrading will corrupt a critical project. Multiple ConTeXt suite installations are possible. This allows, for example, a stable version and a beta version to run in parallel on the same computer.
  
 
ConTeXt is also included in TeXlive. The ConTeXt suite is updated continuously, whereas ConTeXt in TeXlive is updated less often. In particular, <code>luatex</code> and <code>metapost</code> are under active development and their binaries are updated frequently. ConTeXt follows these developments, indeed often drives development. As the binaries included in the TeXlive distribution are only updated yearly, ConTeXt on TeXlive will necessarily be less current than the ConTeXt suite. (ConTeXt on TeXlive can be kept somewhat more current using the http://tlcontrib.metatex.org repository.) The ConTeXt suite is self-contained and can happily coexist alongside another installed TeX distribution.
 
ConTeXt is also included in TeXlive. The ConTeXt suite is updated continuously, whereas ConTeXt in TeXlive is updated less often. In particular, <code>luatex</code> and <code>metapost</code> are under active development and their binaries are updated frequently. ConTeXt follows these developments, indeed often drives development. As the binaries included in the TeXlive distribution are only updated yearly, ConTeXt on TeXlive will necessarily be less current than the ConTeXt suite. (ConTeXt on TeXlive can be kept somewhat more current using the http://tlcontrib.metatex.org repository.) The ConTeXt suite is self-contained and can happily coexist alongside another installed TeX distribution.
Line 22: Line 22:
 
! Windows
 
! Windows
 
| mswin
 
| mswin
| Akira Kakuto (W32TeX)
+
| Akira Kakuto ([http://w32tex.org W32TeX])
 
|
 
|
 
|- align="left"
 
|- align="left"
 
! Linux
 
! Linux
 
| linux
 
| linux
| Hans Hagen, Mojca Miklavec
+
| Hans Hagen, Mojca Miklavec, Alan Braslau
 
| compiled with glibc 2.3.6
 
| compiled with glibc 2.3.6
 
|- align="left" style="background-color:#EEEEEE;"
 
|- align="left" style="background-color:#EEEEEE;"
 
! Linux, 64-bit
 
! Linux, 64-bit
 
| linux-64
 
| linux-64
| Peter Münster
+
| Alan Braslau
 
|
 
|
 
|- align="left"
 
|- align="left"
Line 47: Line 47:
 
! Mac OS X, Intel (32-bit)
 
! Mac OS X, Intel (32-bit)
 
| osx-intel
 
| osx-intel
| Mojca Miklavec, Richard Koch
+
| Richard Koch, Mojca Miklavec
 
|
 
|
 
|- align="left" style="background-color:#EEEEEE;"
 
|- align="left" style="background-color:#EEEEEE;"
 
! Mac OS X, Intel (64-bit)
 
! Mac OS X, Intel (64-bit)
 
| osx-64
 
| osx-64
| Mojca Miklavec, Richard Koch
+
| Richard Koch, Mojca Miklavec
 
|
 
|
 
|- align="left"
 
|- align="left"
 
! Mac OS X, PowerPC
 
! Mac OS X, PowerPC
 
| osx-ppc
 
| osx-ppc
| Mojca Miklavec, Richard Koch
+
| Richard Koch, Mojca Miklavec
 
|
 
|
 
|- align="left" style="background-color:#EEEEEE;"
 
|- align="left" style="background-color:#EEEEEE;"
 
! Mac OS X, Universal Binaries
 
! Mac OS X, Universal Binaries
 
| osx-universal
 
| osx-universal
| Mojca Miklavec, Richard Koch
+
| Richard Koch, Mojca Miklavec
| not used
+
|
 
|- align="left"
 
|- align="left"
 
! FreeBSD
 
! FreeBSD
 
| freebsd
 
| freebsd
| Mojca Miklavec
+
| Alan Braslau
|
+
| compiled with libstdc++
 
|- align="left" style="background-color:#EEEEEE;"
 
|- align="left" style="background-color:#EEEEEE;"
 
! FreeBSD, 64-bit
 
! FreeBSD, 64-bit
 
| freebsd-amd64
 
| freebsd-amd64
| Mojca Miklavec
+
| Alan Braslau
|  
+
| compiled with libstdc++
 
|- align="left"
 
|- align="left"
 
! kFreeBSD
 
! kFreeBSD
 
| kfreebsd-i386
 
| kfreebsd-i386
 
| Alan Braslau
 
| Alan Braslau
| FreeBSD + glibc (Debian)
+
| FreeBSD + glibc (Debian)*
 
|- align="left" style="background-color:#EEEEEE;"
 
|- align="left" style="background-color:#EEEEEE;"
 
! kFreeBSD, 64-bit
 
! kFreeBSD, 64-bit
 
| kfreebsd-amd64
 
| kfreebsd-amd64
 
| Alan Braslau
 
| Alan Braslau
| FreeBSD + glibc (Debian)
+
| FreeBSD + glibc (Debian)*
 +
|- align="left"
 +
! OpenBSD
 +
| openbsd
 +
| Alan Braslau
 +
| coming soon
 +
|- align="left" style="background-color:#EEEEEE;"
 +
! OpenBSD, 64-bit
 +
| openbsd-amd64
 +
| Alan Braslau
 +
| coming soon
 
|- align="left"
 
|- align="left"
 
! Solaris, Intel
 
! Solaris, Intel
Line 92: Line 102:
 
! Solaris, Sparc
 
! Solaris, Sparc
 
| solaris-sparc
 
| solaris-sparc
| Pavneet Arora
+
| Mojca Miklavec
| currently out-of-date
+
| Solaris 10 on [http://www.opencsw.org/about/ OpenCSW]
 
|}
 
|}
 +
 +
*Note: we have stopped distributing binaries for kfreebsd. However, this system is still supported, and natively-compiled binaries can be installed from the Debian distribution.
  
 
We need volunteers for providing binaries for other platforms. If you want to support a platform, please write to [[ConTeXt Mailing Lists]]
 
We need volunteers for providing binaries for other platforms. If you want to support a platform, please write to [[ConTeXt Mailing Lists]]
Line 105: Line 117:
 
The following programs are not required for running ConTeXt, but their installation adds additional functionality.
 
The following programs are not required for running ConTeXt, but their installation adds additional functionality.
  
 +
* curl          : for including remote content
 
* ghostscript  : for converting PostScript images to PDF
 
* ghostscript  : for converting PostScript images to PDF
* graphicmagick : for converting GIF and TIFF images
+
* graphicsmagick (convert) : for converting GIF and TIFF images
 
* inkscape      : for converting SVG and compressed SVG
 
* inkscape      : for converting SVG and compressed SVG
 +
* mupdf (mudraw) : for converting PDF to PNG (used for ePub covers)
 
* pstoedit      : for converting PostScript to MetaPost outlines
 
* pstoedit      : for converting PostScript to MetaPost outlines
 
* zint          : for providing barcodes
 
* zint          : for providing barcodes
* curl          : for including remote content
+
* zip or 7zip  : for EPUB generation
  
 
== Disc space required ==
 
== Disc space required ==
 
ConTeXt macro files are small (less than 10MB), but the suite comes with various free fonts which considerably increase the size of the distribution to around 200MB).
 
ConTeXt macro files are small (less than 10MB), but the suite comes with various free fonts which considerably increase the size of the distribution to around 200MB).
  
== Installation tree ==
+
== Multiple instances of the installation ==
Browse the [http://minimals.contextgarden.net installation tree]
+
Please note from the start that we recommend installing a complete ConTeXt installation for each project in a production environment. The installation tree is portable (see Moving the Installation Around, below) and can be located under the project's own directory. The advantage is to allow each project to use an instance of ConTeXt that is adapted to its coding and that only gets updated purposely. Since the ConTeXt Standalone is "bleading edge" and subject to developement, certain details in commands, syntax or rendering may evolve slightly. Having a vintage ConTeXt tree for each production project insures that one can come back years later and produce identical results.
 +
 
 +
So as not to get carried away under this approach, one can eventually group projects by vintage, period or season, according to cycles of productivity.
 +
 
 +
== Standalone ==
 +
 
 +
* [[ConTeXt Standalone/FAQ|Standalone/FAQ]]
 +
* [[ConTeXt Standalone/Structure|Standalone/Structure]]
 +
* [[ConTeXt Standalone/Implementation|Standalone/Implementation]]
 +
* [[ConTeXt Standalone/TODO|Standalone/TODO]]
 +
* [[ConTeXt Standalone/Contents|Standalone/Contents]]
 +
* [[ConTeXt Standalone/TeX Live|Standalone/TeX Live]]
 +
* Browse the [http://minimals.contextgarden.net installation tree]
  
  
Line 122: Line 148:
 
= Unix-like platforms (Linux/MacOS X/FreeBSD/Solaris) =
 
= Unix-like platforms (Linux/MacOS X/FreeBSD/Solaris) =
  
 +
For Mac installation see also [http://wiki.contextgarden.net/Mac_Installation Mac installation page].
  
 
== Single user installation ==
 
== Single user installation ==
  
Select a folder where you want to install ConTeXt. We recommend that you can use your <code>$HOME/context</code> directory. Create this folder. Then download  
+
Select a folder where you want to install ConTeXt. We recommend that you can use your <code>$HOME/context</code> directory. Create this folder. Then download and place it in <code>$HOME/context</code> directory. Open a terminal, then:
[http://minimals.contextgarden.net/setup/first-setup.sh first-setup.sh] and place it in <code>$HOME/context</code> directory. Open a terminal, then:
 
  
   cd context
+
<pre>
 
+
  mkdir ~/context
Then make <code>first-setup.sh</code> executable and run it to download the whole distribution and make formats:
+
   cd ~/context
 +
  wget http://minimals.contextgarden.net/setup/first-setup.sh
 
    
 
    
   chmod +x first-setup.sh
+
   # Install the latest beta of ConTeXt
   sh ./first-setup.sh
+
  # This takes a long time, so go have a coffee
 +
  # Flags you can add to the first-setup.sh call:
 +
  #    --modules=all      # Install all third-party modules
 +
  #    --context=current  # Install latest stable version
 +
   #    --engine=luatex    # Install only MkIV, leave out MkII
 +
  #                        # This shrinks the install from 270 MB to 200 MB
  
This takes a long time, so go have a coffee.
+
  sh ./first-setup.sh --modules=all
 +
</pre>
  
By default, the suite installs ConTeXt beta. If you want the stable version of ConTeXt, you can use
+
== System-wide installation ==
  
sh ./first-setup.sh --context=current
+
A system wide installation is recommended for users who are comfortable with the command line. Only the location of installing ConTeXt is different for a system wide installation.
  
By default, the suite does ''not'' install modules and other third party content. If you want the modules (and have the bandwidth), you can use
+
* on Linux you can use <code>/opt/context</code>
 +
* on MacOS X you can use <code>/Applications/ConTeXt</code>
  
sh ./first-setup.sh --modules=all
+
Note that, at present, while ''using'' MkIV, you need to have write permissions for the <code>$TEXMFCACHE</code> directory. This effectively means that only one user will be able to generate the formats unless you set the group permissions appropriately. For example:
  
== System-wide installation ==
+
* <code>CONTEXT_HOME=/opt/context</code>
 +
* <code>TEXMFCACHE=$CONTEXT_HOME/tex/texmf-cache</code>
 +
* <code>chmod -R g+w $TEXMFCACHE</code>
  
A system wide installation is only recommeded for users who are comfortable with the command line. Only the location of installing ConTeXt is different for a system wide installation.
+
<pre>
 +
  # Create the /opt/context directory -- change as appropriate or desired if you
 +
  # want a different installation directory.
 +
  cd /opt
 +
  mkdir context
 +
 
 +
  cd context
 +
 
 +
  # Fetch the install script
 +
  wget http://minimals.contextgarden.net/setup/first-setup.sh
 +
 
 +
  # Install the latest beta of ConTeXt
 +
  # This takes a long time, so go have a coffee
 +
  # Flags you can add to the first-setup.sh call:
 +
  #    --modules=all      # Install all third-party modules
 +
  #    --context=current  # Install latest stable version
 +
  #    --engine=luatex    # Install only MkIV, leave out MkII
 +
  #                        # This shrinks the install from 270 MB to 200 MB
  
* on Linux you can use <code>/opt/context</code>
+
  sh ./first-setup.sh --modules=all
* on MacOS X you can use <code>/Applications/ConTeXt</code>
 
  
Note that, at present, while ''using'' MkIV, you need to have write permissions<ref>Actually, you only need write permission for <code>$TEXMFCACHE</code>.</ref> in the installation directory.<ref>This effectively means that only one user will be able to generate the formats</ref> So, if you are installing the suite in <code>/opt/context</code> or <code>/Applications/ConTeXt</code>, run
+
  # change ownership to real rather than effective id
 +
  chown -R `id -r -u`:`id -r -g` .
 +
</pre>
  
  chown `whoami` -R /opt/context
+
===Cache===
  
or
+
To customize the cache directory and other options, see the [[Custom_Configuration|Custom Configuration]] page.
  
  chown `whoami` -R /Applications/ConTeXt
+
===Font Directory===
  
(<code>`whoami`</code> outputs your user name, you can type that directly, of course.)
+
Add the OSOFONTDIR into ./tex/setuptex. Go to under the line:
  
In order to install the suite, open a terminal, go to the installation directory and download [http://minimals.contextgarden.net/setup/first-setup.sh first-setup.sh]:
+
# TODO: we could set OSFONTDIR on Mac for example
  
  $ rsync -av rsync://contextgarden.net/minimals/setup/first-setup.sh .
+
(if you don't have the line above, go to the end of the file) and add there:
 +
 
 +
export OSFONTDIR="/usr/local/share/fonts;$HOME/.fonts"
 +
 
 +
For more information: [[Fonts in LuaTeX]]
  
Then run that script to download the whole distribution and make formats:
+
== Apache webserver installation ==
 
+
 
  sh ./first-setup.sh
+
Another common usecase is invoking ConTeXt from within a web application.  Because web directories are often self-contained, and in the case of Apache under Ubuntu, ownership of the directory and its contents are assigned to a user and group without a login shell, e.g., <code>www-data:www-data</code> this prevents a web application from invoking a ConTeXt installation done using either the single-user or system-wide method listed above.
  
This takes a long time, so go have a coffee.
+
In this case the solution is to install ConTeXt within the website tree, and ideally in the public sub-tree.  The public sub-tree is commonly the home directory for the application and relative pathnames are resolved as if immediately below it.
  
By default, the suite installs ConTeXt beta. If you want the stable version of ConTeXt, you can use
+
For example, in the case of the PHP web framework Laravel, ConTeXt can be installed alongside other assets in the <path-to-document-root>/public/context directory:
  
sh ./first-setup.sh --context=current
+
<pre>
 +
  cd <path-to-document-root>/public
 +
  mkdir context
 +
  cd context
 +
  wget http://minimals.contextgarden.net/setup/first-setup.sh
 +
 
 +
  # Install the latest beta of ConTeXt
 +
  # This takes a long time, so go have a coffee
 +
  # Flags you can add to the first-setup.sh call:
 +
  #    --modules=all      # Install all third-party modules
 +
  #    --context=current # Install latest stable version
 +
  #    --engine=luatex    # Install only MkIV, leave out MkII
 +
  #                        # This shrinks the install from 270 MB to 200 MB
  
By default, the suite does ''not'' install modules and other third party content. If you want the modules (and have the bandwidth), you can use
+
  sh ./first-setup.sh --modules=all
 +
</pre>
  
sh ./first-setup.sh --modules=all
+
Once installed, you need to ensure that the permissions are correct for Apache to be able to access it (you will either need <code>sudo</code> privileges or root access):
  
===Cache===
+
<pre>
 +
$ cd <path-to-document-root>/public
 +
$ sudo chmod -R www-data:www-data context
 +
</pre>
  
Normaly you do not want to allow access in e.g. /opt. but you like to allow it in /var/cache/*. So create the needed cache directory as a superuser via
+
Now as part of your application's invocation of ConTeXt, you will need to set up the shell environment. This is easily done by creating a simple BASH shell script, also to be installed in the public part of the document tree:
  
mkdir /var/cache/context
+
<pre>
mkdir /var/cache/context/texmf-cache
+
  #!/usr/bin/env bash
chmod 777 /var/cache/context/texmf-cache
 
  
Change in the file ./tex/texmf/web2c/texmfcnf.lua the value of TEXMFCACHE to the directory you want (in this example /var/cache/context/texmf-cache).
+
  #
 +
  # proccontext.sh
 +
  #
 +
  # To be installed in <path-to-document-root>/public/bin
  
===Font Directory===
+
  . <path-to-document-root>/public/context/tex/setuptex <path-to-document-root>/public/context/tex
  
Add the OSOFONTDIR into ./tex/setuptex. Go to under the line:
+
  cd tex/spool
 +
  context $1 > /tmp/context_run.log
 +
</pre>
  
# TODO: we could set OSFONTDIR on Mac for example
+
Here the dynamically generated ConTeXt source file is expected to be found in the <code><path-to-document-root>/tex/spool</code> directory.
  
(if you don't have the line above, go to the end of the file) and add there:
+
Now within your application, you can invoke this shell script (in this case using PHP):
  
export OSFONTDIR="/usr/local/share/fonts;$HOME/.fonts"
+
<pre>
 +
  $cmd = "bin/proccontext.sh $input_filename";
 +
  $last_line = system($cmd, $ret_val);
 +
</pre>
  
For more information: [[Fonts in LuaTeX]]
+
And the output will once again be found in <code><path-to-document-root>/tex/spool</code>.
  
 
==Arch Linux==
 
==Arch Linux==
There’s a [http://aur.archlinux.org/packages.php?ID=30398 PKGBUILD] in
+
There’s a [https://aur.archlinux.org/packages/context-minimals-git PKGBUILD] in
 
the AUR, provided by Aditya [https://github.com/adityam/context-pkgbuild].
 
the AUR, provided by Aditya [https://github.com/adityam/context-pkgbuild].
 
Install it using your favorite AUR frontend, e.g.
 
Install it using your favorite AUR frontend, e.g.
Line 234: Line 315:
 
ConTeXt suite works in a non-interfering manner because it does not put anything in your <code>$PATH</code> and does not set any system variables. This in turn means that in order to use it, you need to do some initialization. An intialization script called <code>setuptex</code> is provided in <code>installation-dir/tex/</code>.  
 
ConTeXt suite works in a non-interfering manner because it does not put anything in your <code>$PATH</code> and does not set any system variables. This in turn means that in order to use it, you need to do some initialization. An intialization script called <code>setuptex</code> is provided in <code>installation-dir/tex/</code>.  
  
If you run context from a terminal, source <code>setuptex</code> like so:
+
=== Terminal/Command line ===
 +
 
 +
To run context from a terminal, source <code>setuptex</code>:
  
 
   source /installation-dir/tex/setuptex
 
   source /installation-dir/tex/setuptex
  
== Exclusive usage ==
+
=== Exclusive usage ===
  
The above method means that you always have to type <code>source /installation-dir/tex/setuptex</code> in a terminal before you can use typeset. If you always use ConTeXt suite and never use LaTeX or plain TeX provided by another TeX distribution, you can add the above intialization line to the startup script of your shell. For bash, this means <code>$HOME/.bashrc</code>; for zsh, this means <code>$HOME/.zshrc</code>; for (t)csh, this means <code>$HOME/.cshrc</code> or <code>$HOME/.tcshrc</code>. Then, <code>setuptex</code> will always be sourced in your terminal.  
+
If you always use ConTeXt suite and '''never''' use LaTeX or plain TeX provided by another TeX distribution, you can add the following line to the startup script of your shell (For bash, the startup script is <code>$HOME/.bashrc</code>; for zsh it is <code>HOME/.zshrc</code>).
  
== Integrating with an editor ==
+
  source /installation-dir/tex/setuptex
  
If you run ConTeXt from an editor, you need to source {{code|setuptex}} in a terminal and then open your editor from the same terminal.  
+
Then <code>setuptex</code> will always be sourced in your terminal.
  
Depending on how your editor initializes, you may still need to source {{code|setuptex}} in order to run ConTeXt directly from your editor. In theory, it is sufficient to add {{code|/installation-dir/tex/texmf-<platform>/bin}} to your {{code|$PATH}} in order to use the suite. You can try to add this to the paths that your editor searches.
+
=== Integrating with an editor ===
 +
 
 +
The easiest way to run ConTeXt from an editor is to open a terminal, source {{code|setuptex}} in the terminal, and then open your editor '''from the same terminal'''.  
 +
 +
Another option is to add {{code|/installation-dir/tex/texmf-<platform>/bin}} to the {{code|$PATH}} that the editor searches. The details vary depending on the editor. See [[Text Editors]] for instructions on integrating ConTeXt with various editors.
 +
 
 +
For information about configuring [http://smultron.sourceforge.net/ Smultron] and [http://www.uoregon.edu/~koch/texshop/obtaining.html TeXShop] (which are popular TeX editors on Mac) see [[ConTeXt Standalone/Mac Installation]].
  
For information about configuring [http://smultron.sourceforge.net/ Smultron] and [http://www.uoregon.edu/~koch/texshop/obtaining.html TeXShop] (which are popular TeX editors on Mac) see [[ConTeXt Standalone/Mac Installation]]. For a list of text editors with ConTeXt integration, see the article on [[Text Editors|text editors]].
 
  
 
== Updating ==
 
== Updating ==
Line 259: Line 347:
 
cd /opt/context
 
cd /opt/context
 
rsync -ptv rsync://contextgarden.net/minimals/setup/first-setup.sh .
 
rsync -ptv rsync://contextgarden.net/minimals/setup/first-setup.sh .
./first-setup.sh --modules=all
+
sh ./first-setup.sh --modules=all
 
</pre>
 
</pre>
  
Line 282: Line 370:
 
* For making MKIV format
 
* For making MKIV format
  
mtxrun --selfupdate
 
 
  mtxrun --generate
 
  mtxrun --generate
luatools --generate
 
 
  context --make
 
  context --make
  
= Installation and use on Windows =
+
= Windows =
  
If you want to use ConTeXt suite alongside MikTeX/TeXLive (needed if you also run LaTeX), follow the command-line installation method. Otherwise, you can follow either the command line or GUI installation method.
+
If you want to use ConTeXt suite alongside MikTeX/TeXLive (needed if you also run LaTeX), follow the command-line installation method.  
  
 
== Installation ==
 
== Installation ==
  
 
=== Command line method ===
 
=== Command line method ===
Download [http://minimals.contextgarden.net/setup/context-setup-mswin.zip context-setup-mswin.zip] and unzip to a directory where you want to install ConTeXt. It is recommended that you choose a directory that does not have a space in its full path. Then open <code>cmd.exe</code>, go to the installation directory and run
+
Download [http://minimals.contextgarden.net/setup/context-setup-mswin.zip context-setup-mswin.zip] or [http://minimals.contextgarden.net/setup/context-setup-win64.zip context-setup-win64.zip], and unzip to a directory where you want to install ConTeXt. It is recommended that you choose a directory that does not have a space in its full path. Then open <code>cmd.exe</code>, go to the installation directory and run
  
 
   first-setup.bat
 
   first-setup.bat
Line 311: Line 397:
 
If the above installation instructions don't seem to answer your questions, see page [[Windows_Installation:_ConTeXt_Suite_with_SciTe| Windows Installation: ConTeXt Suite with SciTe]] for more detailed information.
 
If the above installation instructions don't seem to answer your questions, see page [[Windows_Installation:_ConTeXt_Suite_with_SciTe| Windows Installation: ConTeXt Suite with SciTe]] for more detailed information.
  
=== GUI Installer ===
 
 
{{note|The installer seems to have been broken since autumn 2010 and still is in November 2011, at least in some versions of Windows, so proceed at your own risk.}}
 
 
There is also a [http://minimals.contextgarden.net/setup/context-installer/ContextMinimalInstall.exe GUI installer] made by Vyatcheslav Yatskovsky. Download and run the installer and it will ask you where to install the minimals, which distribution to use (stable or beta) and whether or not you want to make formats.
 
 
{{note| The GUI installer asks if you want to set environmental variables globally. Click this only if you do '''not''' use MikTeX or TeXLive and do '''not''' plan to use LaTeX}}
 
 
You should also see the [http://meeting.contextgarden.net/2008/talks/2008-08-21-vyatcheslav-win-installer/windows_installer.pdf slides] giving details about the GUI installer.
 
  
 
== Proxy settings ==
 
== Proxy settings ==
Line 337: Line 414:
 
== Usage ==
 
== Usage ==
  
If you used the GUI installer and said yes to setting the evironmental variables globally, then you can run ConTeXt from anywhere. Otherwise, before running ConTeXt, you need to run <code>setuptex.bat</code> which is provided in <code>installation-dir\tex\</code>. This can be done by typing
+
Before running ConTeXt, you need to run <code>setuptex.bat</code> which is provided in <code>installation-dir\tex\</code>. This can be done by typing
 
    
 
    
 
   installation-dir\tex\setuptex.bat
 
   installation-dir\tex\setuptex.bat
Line 345: Line 422:
 
   C:\WINDOWS\System32\cmd.exe /k C:\Programs\context\tex\setuptex.bat
 
   C:\WINDOWS\System32\cmd.exe /k C:\Programs\context\tex\setuptex.bat
  
This starts up a new command shell with the environment pre-loaded.
+
This starts up a new command shell with the environment pre-loaded. Within the new shell you can just type <code>context</code> to run ConTeXt. E.g.
 +
 
 +
  C:\> context --version
 +
 
 +
to check that you are running the version you think you're running.
  
 
=== Use ConTeXt with Cygwin ===
 
=== Use ConTeXt with Cygwin ===
Line 356: Line 437:
 
== Updating ==
 
== Updating ==
  
If you used the command line method, just run <code>first-setup.bat</code> again to update the suite. If you have third party modules installed, you should use
+
If you used the command line method, just run <code>first-setup.bat</code> again to update the suite.
  first-setup.bat --keep
 
to upgrade. See [[ConTeXt_Standalone#Installing_third_party_modules| Installing third party modules]] for details.
 
  
If you used the GUI installer, just run the installer again.
 
  
 
== Uninstallation ==
 
== Uninstallation ==
  
 
If you used the command-line installer, you can just delete the installation directory to uninstall the suite.
 
If you used the command-line installer, you can just delete the installation directory to uninstall the suite.
 
If you used the GUI installer, you can use standard windows tools for uninstallation.
 
  
  
Line 374: Line 450:
 
* Directory-name length may also have an effect, due to Windows's 8.3 filename conventions.  An indicator is if running "texexec --lua" on a file produces missing-file warnings containing Windows-created 8-character directory names, such as "C:\CONTEX~1\tex", where your ConTeXt directory is really "C:\context_minimals\tex".  Be conservative and choose a short name like "C:\ctm\tex".  Also, this may even work when an 8-character-or-less directory name like "C:\ctexmin\tex" doesn't.
 
* Directory-name length may also have an effect, due to Windows's 8.3 filename conventions.  An indicator is if running "texexec --lua" on a file produces missing-file warnings containing Windows-created 8-character directory names, such as "C:\CONTEX~1\tex", where your ConTeXt directory is really "C:\context_minimals\tex".  Be conservative and choose a short name like "C:\ctm\tex".  Also, this may even work when an 8-character-or-less directory name like "C:\ctexmin\tex" doesn't.
 
* If you're behind firewall and rsync times out, you need to open port 873 for outgoing TCP connections.
 
* If you're behind firewall and rsync times out, you need to open port 873 for outgoing TCP connections.
 +
* If you update luaTeX occasionally you may get something like
 +
 +
<code>engine mismatch (luv: This is LuaTeX, Version beta-<version>-<date1>  (TeX Live 2013/dev)(rev <number1>) <> bin: This is LuaTeX, Version beta-<version>-<date1>  (TeX Live 2012/W32TeX)(rev <number2>)), forcing remake</code>
 +
 +
In which case your format will be remade every time you compile a file. In /texmf-mswin make sure that luatex.exe and texlua.exe have the same date; then also delete luatex.dll. This usually solves the problem.
  
 
= Installing third party modules =
 
= Installing third party modules =
Line 395: Line 476:
  
  
= Moving the installation tree around (linux) =  
+
= Moving the installation tree around =  
  
 
According to this post, http://archive.contextgarden.net/message/20101129.144331.d721372f.en.html it's safe to move the installation tree across directory or machines (say you don't have broadband access). You just have to clean and regenerate the cache (./tex/texmf-cache/luatex-cache) with  
 
According to this post, http://archive.contextgarden.net/message/20101129.144331.d721372f.en.html it's safe to move the installation tree across directory or machines (say you don't have broadband access). You just have to clean and regenerate the cache (./tex/texmf-cache/luatex-cache) with  
Line 403: Line 484:
 
<references/>
 
<references/>
  
{{Installation navbox}}
+
{{Getting started navbox}}
 
 
 
[[Category:Installation]]
 
[[Category:Installation]]
 
[[Category:Standalone]]
 
[[Category:Standalone]]

Revision as of 00:20, 19 October 2016

The ConTeXt suite is a complete, up-to-date ConTeXt distribution that can be upgraded efficiently. It can also be used in parallel with existing TeX installations such as MikTeX, TeXLive, and so forth. The suite does not include LaTeX packages and binaries.

Sometimes ConTeXt beta releases have issues. The ConTeXt suite allows you to test the latest ConTeXt release without worrying whether upgrading will corrupt a critical project. Multiple ConTeXt suite installations are possible. This allows, for example, a stable version and a beta version to run in parallel on the same computer.

ConTeXt is also included in TeXlive. The ConTeXt suite is updated continuously, whereas ConTeXt in TeXlive is updated less often. In particular, luatex and metapost are under active development and their binaries are updated frequently. ConTeXt follows these developments, indeed often drives development. As the binaries included in the TeXlive distribution are only updated yearly, ConTeXt on TeXlive will necessarily be less current than the ConTeXt suite. (ConTeXt on TeXlive can be kept somewhat more current using the http://tlcontrib.metatex.org repository.) The ConTeXt suite is self-contained and can happily coexist alongside another installed TeX distribution.

General Information

Supported platforms

Platform Short name Binaries by Notes
Windows mswin Akira Kakuto (W32TeX)
Linux linux Hans Hagen, Mojca Miklavec, Alan Braslau compiled with glibc 2.3.6
Linux, 64-bit linux-64 Alan Braslau
Linux, PowerPC linux-ppc Piotr Kopszak
Linux, Arm (low end.) linux-armel Boris Veytsman in progress
Mac OS X, Intel (32-bit) osx-intel Richard Koch, Mojca Miklavec
Mac OS X, Intel (64-bit) osx-64 Richard Koch, Mojca Miklavec
Mac OS X, PowerPC osx-ppc Richard Koch, Mojca Miklavec
Mac OS X, Universal Binaries osx-universal Richard Koch, Mojca Miklavec
FreeBSD freebsd Alan Braslau compiled with libstdc++
FreeBSD, 64-bit freebsd-amd64 Alan Braslau compiled with libstdc++
kFreeBSD kfreebsd-i386 Alan Braslau FreeBSD + glibc (Debian)*
kFreeBSD, 64-bit kfreebsd-amd64 Alan Braslau FreeBSD + glibc (Debian)*
OpenBSD openbsd Alan Braslau coming soon
OpenBSD, 64-bit openbsd-amd64 Alan Braslau coming soon
Solaris, Intel solaris-intel Marco Patzer
Solaris, Sparc solaris-sparc Mojca Miklavec Solaris 10 on OpenCSW
  • Note: we have stopped distributing binaries for kfreebsd. However, this system is still supported, and natively-compiled binaries can be installed from the Debian distribution.

We need volunteers for providing binaries for other platforms. If you want to support a platform, please write to ConTeXt Mailing Lists

Dependencies

  • Ruby 1.8 or newer (used for MKII)
  • Rsync (The windows binary of rsync is distributed within the suite)


The following programs are not required for running ConTeXt, but their installation adds additional functionality.

  • curl : for including remote content
  • ghostscript : for converting PostScript images to PDF
  • graphicsmagick (convert) : for converting GIF and TIFF images
  • inkscape : for converting SVG and compressed SVG
  • mupdf (mudraw) : for converting PDF to PNG (used for ePub covers)
  • pstoedit : for converting PostScript to MetaPost outlines
  • zint : for providing barcodes
  • zip or 7zip : for EPUB generation

Disc space required

ConTeXt macro files are small (less than 10MB), but the suite comes with various free fonts which considerably increase the size of the distribution to around 200MB).

Multiple instances of the installation

Please note from the start that we recommend installing a complete ConTeXt installation for each project in a production environment. The installation tree is portable (see Moving the Installation Around, below) and can be located under the project's own directory. The advantage is to allow each project to use an instance of ConTeXt that is adapted to its coding and that only gets updated purposely. Since the ConTeXt Standalone is "bleading edge" and subject to developement, certain details in commands, syntax or rendering may evolve slightly. Having a vintage ConTeXt tree for each production project insures that one can come back years later and produce identical results.

So as not to get carried away under this approach, one can eventually group projects by vintage, period or season, according to cycles of productivity.

Standalone


Unix-like platforms (Linux/MacOS X/FreeBSD/Solaris)

For Mac installation see also Mac installation page.

Single user installation

Select a folder where you want to install ConTeXt. We recommend that you can use your $HOME/context directory. Create this folder. Then download and place it in $HOME/context directory. Open a terminal, then:

  mkdir ~/context
  cd ~/context
  wget http://minimals.contextgarden.net/setup/first-setup.sh
  
  # Install the latest beta of ConTeXt
  # This takes a long time, so go have a coffee
  # Flags you can add to the first-setup.sh call:
  #     --modules=all      # Install all third-party modules
  #     --context=current  # Install latest stable version
  #     --engine=luatex    # Install only MkIV, leave out MkII
  #                        # This shrinks the install from 270 MB to 200 MB

  sh ./first-setup.sh --modules=all

System-wide installation

A system wide installation is recommended for users who are comfortable with the command line. Only the location of installing ConTeXt is different for a system wide installation.

  • on Linux you can use /opt/context
  • on MacOS X you can use /Applications/ConTeXt

Note that, at present, while using MkIV, you need to have write permissions for the $TEXMFCACHE directory. This effectively means that only one user will be able to generate the formats unless you set the group permissions appropriately. For example:

  • CONTEXT_HOME=/opt/context
  • TEXMFCACHE=$CONTEXT_HOME/tex/texmf-cache
  • chmod -R g+w $TEXMFCACHE
  # Create the /opt/context directory -- change as appropriate or desired if you 
  # want a different installation directory.
  cd /opt
  mkdir context
  
  cd context
  
  # Fetch the install script
  wget http://minimals.contextgarden.net/setup/first-setup.sh
  
  # Install the latest beta of ConTeXt
  # This takes a long time, so go have a coffee
  # Flags you can add to the first-setup.sh call:
  #     --modules=all      # Install all third-party modules
  #     --context=current  # Install latest stable version
  #     --engine=luatex    # Install only MkIV, leave out MkII
  #                        # This shrinks the install from 270 MB to 200 MB

  sh ./first-setup.sh --modules=all

  # change ownership to real rather than effective id
  chown -R `id -r -u`:`id -r -g` .

Cache

To customize the cache directory and other options, see the Custom Configuration page.

Font Directory

Add the OSOFONTDIR into ./tex/setuptex. Go to under the line:

# TODO: we could set OSFONTDIR on Mac for example

(if you don't have the line above, go to the end of the file) and add there:

export OSFONTDIR="/usr/local/share/fonts;$HOME/.fonts"

For more information: Fonts in LuaTeX

Apache webserver installation

Another common usecase is invoking ConTeXt from within a web application. Because web directories are often self-contained, and in the case of Apache under Ubuntu, ownership of the directory and its contents are assigned to a user and group without a login shell, e.g., www-data:www-data this prevents a web application from invoking a ConTeXt installation done using either the single-user or system-wide method listed above.

In this case the solution is to install ConTeXt within the website tree, and ideally in the public sub-tree. The public sub-tree is commonly the home directory for the application and relative pathnames are resolved as if immediately below it.

For example, in the case of the PHP web framework Laravel, ConTeXt can be installed alongside other assets in the <path-to-document-root>/public/context directory:

  cd <path-to-document-root>/public
  mkdir context
  cd context
  wget http://minimals.contextgarden.net/setup/first-setup.sh
  
  # Install the latest beta of ConTeXt
  # This takes a long time, so go have a coffee
  # Flags you can add to the first-setup.sh call:
  #     --modules=all      # Install all third-party modules
  #     --context=current  # Install latest stable version
  #     --engine=luatex    # Install only MkIV, leave out MkII
  #                        # This shrinks the install from 270 MB to 200 MB

  sh ./first-setup.sh --modules=all

Once installed, you need to ensure that the permissions are correct for Apache to be able to access it (you will either need sudo privileges or root access):

$ cd <path-to-document-root>/public
$ sudo chmod -R www-data:www-data context

Now as part of your application's invocation of ConTeXt, you will need to set up the shell environment. This is easily done by creating a simple BASH shell script, also to be installed in the public part of the document tree:

  #!/usr/bin/env bash

  #
  # proccontext.sh
  #
  # To be installed in <path-to-document-root>/public/bin

  . <path-to-document-root>/public/context/tex/setuptex <path-to-document-root>/public/context/tex

  cd tex/spool
  context $1 > /tmp/context_run.log

Here the dynamically generated ConTeXt source file is expected to be found in the <path-to-document-root>/tex/spool directory.

Now within your application, you can invoke this shell script (in this case using PHP):

   $cmd = "bin/proccontext.sh $input_filename";
   $last_line = system($cmd, $ret_val);

And the output will once again be found in <path-to-document-root>/tex/spool.

Arch Linux

There’s a PKGBUILD in the AUR, provided by Aditya [1]. Install it using your favorite AUR frontend, e.g.

yaourt -S context-minimals-git

This will get you a fresh, up-to-date Context tree in /opt/context-minimals.

The funtoo way

If you are using funtoo there are ebuilds that will make an installation as easy as installing any other package from portage. Take a look at the ConTeXt Standalone Funtoo Howto. This might also work for gentoo, but is untested right now.

Proxy settings

The installation script uses rsync to fetch the required files. So, if you are behind a proxy server, you need to tell the details to rsync. The easiest way to set this is to set RSYNC_PROXY variable in the terminal or your startup script (.bashrc or the corresponding file for your shell). Replace username, password, proxyhost and proxyport with the correct information

 export RSYNC_PROXY=username:password@proxyhost:proxyport

Sometimes, when behind a firewall, port 873 may be closed for outgoing TCP connections. If port 22 is open for ssh connections, a trick that can be used is to connect to a computer located somewhere outside of the firewall and to tunnel port 873 (using the program nc).

 export RSYNC_CONNECT_PROG='ssh tunnelhost nc %H 873'

where tunnelhost is the machine outside of the firewall on which you have ssh access. Of course, this machine must have nc and port 873 open for outgoing TCP connections.

Usage

ConTeXt suite works in a non-interfering manner because it does not put anything in your $PATH and does not set any system variables. This in turn means that in order to use it, you need to do some initialization. An intialization script called setuptex is provided in installation-dir/tex/.

Terminal/Command line

To run context from a terminal, source setuptex:

  source /installation-dir/tex/setuptex

Exclusive usage

If you always use ConTeXt suite and never use LaTeX or plain TeX provided by another TeX distribution, you can add the following line to the startup script of your shell (For bash, the startup script is $HOME/.bashrc; for zsh it is HOME/.zshrc).

  source /installation-dir/tex/setuptex

Then setuptex will always be sourced in your terminal.

Integrating with an editor

The easiest way to run ConTeXt from an editor is to open a terminal, source setuptex in the terminal, and then open your editor from the same terminal.

Another option is to add /installation-dir/tex/texmf-<platform>/bin to the $PATH that the editor searches. The details vary depending on the editor. See Text Editors for instructions on integrating ConTeXt with various editors.

For information about configuring Smultron and TeXShop (which are popular TeX editors on Mac) see ConTeXt Standalone/Mac Installation.


Updating

For updating the ConTeXt suite, first update first-setup.sh, then run it. You could also create an alias or a little script “ctx-update” with the following example contents:

cd /opt/context
rsync -ptv rsync://contextgarden.net/minimals/setup/first-setup.sh .
sh ./first-setup.sh --modules=all

Uninstalling

ConTeXt suite does not touch anything outside its installation folder. So to uninstall it, you can simply remove the installation folder.

Remaking formats

Normally, the update script should create the formats for you. If for some reason you need to recreate the formats, you can do the following:

  • For making MKII format.
mktexlsr
texexec --make --all 
  • For making XeTeX format
mktexlsr
texexec --make --xtx --all 
  • For making MKIV format
mtxrun --generate
context --make

Windows

If you want to use ConTeXt suite alongside MikTeX/TeXLive (needed if you also run LaTeX), follow the command-line installation method.

Installation

Command line method

Download context-setup-mswin.zip or context-setup-win64.zip, and unzip to a directory where you want to install ConTeXt. It is recommended that you choose a directory that does not have a space in its full path. Then open cmd.exe, go to the installation directory and run

 first-setup.bat

This takes a long time, so go have a coffee.

By default, the suite installs ConTeXt beta. If you want the stable version of ConTeXt, you can use

 first-setup.bat --context=current

By default, the suite does not install modules and other third party content. If you want the modules (and have the bandwidth), you can use

first-setup.bat --modules=all


If the above installation instructions don't seem to answer your questions, see page Windows Installation: ConTeXt Suite with SciTe for more detailed information.


Proxy settings

The installation script uses rsync to fetch the required files. So, if you are behind a proxy server, you need to tell the details to rsync. The easiest way to set this is to set RSYNC_PROXY variable in the terminal as (replace username, password, proxyhost and proxyport with the correct information)

  set RSYNC_PROXY=username:password@proxyhost:proxyport

or set the variable permanently as a Windows environment variable.

Sometimes, when behind a firewall, port 873 may be closed for outgoing TCP connections. If port 22 is open for ssh connections, a trick that can be used is to connect to a computer located somewhere outside of the firewall and to tunnel port 873 (using the program nc).

 export RSYNC_CONNECT_PROG='ssh tunnelhost nc %H 873'

where tunnelhost is the machine outside of the firewall on which you have ssh access. Of course, this machine must have nc and port 873 open for outgoing TCP connections.

Usage

Before running ConTeXt, you need to run setuptex.bat which is provided in installation-dir\tex\. This can be done by typing

 installation-dir\tex\setuptex.bat

on cmd.exe before you run ConTeXt. To avoid always having to type this, you can create a shortcut to cmd.exe and edit the command line to read (assuming you installed the suite in C:\Programs; otherwise replace C:\Programs\ with your installation directory)

 C:\WINDOWS\System32\cmd.exe /k C:\Programs\context\tex\setuptex.bat

This starts up a new command shell with the environment pre-loaded. Within the new shell you can just type context to run ConTeXt. E.g.

 C:\> context --version

to check that you are running the version you think you're running.

Use ConTeXt with Cygwin

After installing the ConTeXt suite, you can run it under Cygwin. With Cygwin, you may use gmake and other Unix tools for your automated workflow.

  1. Run setuptex.bat in DOS command prompt
  2. In the same DOS prompt, enter Cygwin by running cygwin.bat (in your Cygwin installation directory)
  3. Under Cygwin prompt, run context.cmd test.tex . Note that the .cmd extension is needed under Cygwin.

Updating

If you used the command line method, just run first-setup.bat again to update the suite.


Uninstallation

If you used the command-line installer, you can just delete the installation directory to uninstall the suite.


Troubleshooting

  • rsync sometimes has problems with paths with uppercase letters (like c:\Temp or C:\Documents and Settings). Installing into all-lowercase paths without spaces sometimes helps.
  • Directory-name length may also have an effect, due to Windows's 8.3 filename conventions. An indicator is if running "texexec --lua" on a file produces missing-file warnings containing Windows-created 8-character directory names, such as "C:\CONTEX~1\tex", where your ConTeXt directory is really "C:\context_minimals\tex". Be conservative and choose a short name like "C:\ctm\tex". Also, this may even work when an 8-character-or-less directory name like "C:\ctexmin\tex" doesn't.
  • If you're behind firewall and rsync times out, you need to open port 873 for outgoing TCP connections.
  • If you update luaTeX occasionally you may get something like

engine mismatch (luv: This is LuaTeX, Version beta-<version>-<date1> (TeX Live 2013/dev)(rev <number1>) <> bin: This is LuaTeX, Version beta-<version>-<date1> (TeX Live 2012/W32TeX)(rev <number2>)), forcing remake

In which case your format will be remade every time you compile a file. In /texmf-mswin make sure that luatex.exe and texlua.exe have the same date; then also delete luatex.dll. This usually solves the problem.

Installing third party modules

The ConTeXt suite only comes with Taco's t-bib module. If you want to install a new module, say Wolfgang's t-letter module, you can use

 first-setup.sh --modules="t-letter"

If you want to install more than one extra module, you can separate them by commas. So, to install the t-letter and t-mathsets module, do

 sh ./first-setup.sh --modules="t-letter,t-mathsets"

If you want to install all extra modules at once, do

 sh ./first-setup.sh --modules=all

Reverting to an older installation

If, for some reason, you want to revert to an older installation, you can do that by

 sh ./first-setup.sh --context=date

where date is the date of one of the stable releases of ConTeXt. The complete list of old releases that are available is here.


Moving the installation tree around

According to this post, http://archive.contextgarden.net/message/20101129.144331.d721372f.en.html it's safe to move the installation tree across directory or machines (say you don't have broadband access). You just have to clean and regenerate the cache (./tex/texmf-cache/luatex-cache) with mtxrun --generate

Notes


Template:Getting started navbox