Difference between revisions of "Windows Installation"

From Wiki
Jump to navigation Jump to search
m (imagemagick dependency removed (I hope))
(→‎Which ConTeXt distribution to choose?: rewrote a bit - the stand-alone still needs a revision)
Line 23: Line 23:
 
= Which ConTeXt distribution to choose? =
 
= Which ConTeXt distribution to choose? =
  
You can use both MikTeX and the stand-alone distr. simultaneously.
+
Note: You can use both MikTeX and the stand-alone distr. simultaneously.
  
MikTeX is great tool for people typsetting in LaTeX. Updating the packages is easy and packages are downloaded automatically if you need them. Recently support for ConTeXt has been improved, but if you need the latest version of ConTeXt, you have to update it manually (<code>ctxtools --update</code>).
+
=== MikTeX ===
 +
MikTeX is great tool for people typsetting in LaTeX. Updating the packages is easy and (font) <b>packages are downloaded automatically</b>. If you need the very latest version of ConTeXt, you might need to update it manually.
  
The stand-alone ConTeXt is much better in the way that it is always up-to-date, the environment is set up properly and some special functionality that doesn't work in MikTeX should work here as expected. The only drawback (although I don't really dare to call it a drawback) is that you have to have some other distribution working in parallel if you need LaTeX as well.
+
It comes with [[XeTeX]] since version 2.7, but [[LuaTeX]] is not available yet.
  
There's another (not so popular) TeX distribution, [http://www.fsci.fuk.kindai.ac.jp/kakuto/win32-ptex/web2c75-e.html W32TeX] which is probably the only one so far which includes [[XeTeX]]. See [[Windows Installation#XeTeX Installation|XeTeX Installation]] to figure out how to install XeTeX on top of standalone distribution. MikTeX is planning to add support for [[XeTeX]] in version [http://www.miktex.org/2.7 2.7].
+
=== Stand-alone ConTeXt ===
 +
The stand-alone ConTeXt can always be kept up-to-date, it includes LuaTeX, the environment is set up "properly" and some special functionality that doesn't work in MikTeX should work here as expected.
  
I never tried XEmTeX and TeX Live. If anyone is willing to share the experince with other users, you're wellcome to do so.
+
If you don't need LaTeX, this might be the perfect solution. If you also need LaTeX, the stand-alone doesn't interfere with MikTeX (or other distributions), so you can use both.
 +
 
 +
=== TeX Live, W32TeX ===
 +
TeX Live is released once per year and sent to members of TeX user groups on DVDs. Its package management is modest and still in development, and it's not updated between releases.
 +
 
 +
W32TeX [http://www.fsci.fuk.kindai.ac.jp/kakuto/win32-ptex/web2c75-e.html W32TeX] came to our attention since Akira (its author) was the first one to manage to compile [[XeTeX]] for Windows, and still provides the very latest Windows binaries for [[XeTeX]], [[LuaTeX]], [[pdfTeX]], [[MetaPost]], ... all of them being compatible with TeX Live.
 +
 
 +
The stand-alone ConTeXt distribution takes files & binaries from both of them, but as a distribution, MikTeX or stand-alone ConTeXt might be a better choice.
 +
 
 +
= Installation =
  
 
== Stand-alone ConTeXt distribution ==
 
== Stand-alone ConTeXt distribution ==
Line 93: Line 104:
 
MikTeX is probably the easiest and most recommended solution for newbies or for those who have already been using LaTeX and don't want to install anything else. MikTeX is very user-friendly, updating is very easy, missing fonts or third-party modules are installed automatically when you first use them.
 
MikTeX is probably the easiest and most recommended solution for newbies or for those who have already been using LaTeX and don't want to install anything else. MikTeX is very user-friendly, updating is very easy, missing fonts or third-party modules are installed automatically when you first use them.
  
However, some more experienced users may not always be happy with it:
+
However, some more experienced ConTeXt users may not always be happy with it:
 
* using fonts doesn't always work as expected (or at least different than in the stand-alone distribution)
 
* using fonts doesn't always work as expected (or at least different than in the stand-alone distribution)
* ConTeXt format is usually recent, but not always the latest
+
* ConTeXt format is usually recent, but not always the latest (you can still update ConTeXt manually)
* [[XeTeX]] doesn't work yet with it yet
+
* [[LuaTeX]] doesn't work yet with it yet
  
<font color="red">ConTeXt is not working under MikTeX 2.4 any more (please upgrade to the latest MikTeX).</font>
+
=== After you install or change something: Refresh file name database & Rebuild Formats ===
 
 
=== MikTeX packages that you need ===
 
  
Try running
+
{{todo:this needs to be updated, it's slightly different on more recent MikTeX}}
texexec --version
 
In most cases MikTeX should install the required package for ConTeXt automatically (if not installed yet). Don't ask me why Russian und Ukrainian hyphenation patterns have to be downloaded as well.
 
 
 
=== Additional steps ===
 
 
 
* If you get error messages like these:
 
(C:\Programs\MikTeX\tex\context\base\pdfr-ec.tex) [1.1{original-empty.map}{lm-t
 
exnansi.map}{original-base.map
 
Warning: (file original-base.map): invalid entry for `fmvr8x': font file missing
 
 
Warning:  (file original-base.map): invalid entry for `xycmat11': font file missing
 
:then delete the folder <code>fonts/map/dvipdfm</code> or (that would be a proper solution) set
 
TEXFONTMAPS = .;$TEXMF/fonts/map/{$progname,pdftex,dvips,}//
 
: (but I have no idea how to do the latter.)
 
 
 
=== After you install or change something: Refresh file name database & Rebuild Formats ===
 
  
 
* ''MikTeX Options -> General -> Refresh FNDB''
 
* ''MikTeX Options -> General -> Refresh FNDB''
Line 158: Line 151:
  
 
<code>write18</code> allows calling external programs from within TeX. It's not a good idea to have it enabled on a server, but for comfortable work with ConTeXt (for MetaFun or modules for R and gnuplot) you probably need it.
 
<code>write18</code> allows calling external programs from within TeX. It's not a good idea to have it enabled on a server, but for comfortable work with ConTeXt (for MetaFun or modules for R and gnuplot) you probably need it.
 
'''MikTeX 2.4'''
 
 
<i>(This note will go away.)</i>
 
 
Create a file <code>[localtexmf PATH]\miktex\config\miktex.ini</code> and add the following line to it:
 
write18=enable
 
''(Because of some unknown reason, <code>write18=enable</code> in <code>[localtexmf PATH]\miktex\config\miktex.ini</code> may be ignored on some computers. In that case make the change in <code>[MikTeX PATH]\miktex\config\miktex.ini</code>, but you may have to repeat this step every time you update MikTeX packages.)''
 
 
'''MikTeX 2.5/2.6'''
 
  
 
Each application now has it's own configuration file. To enable <code>write18</code> run
 
Each application now has it's own configuration file. To enable <code>write18</code> run
Line 178: Line 161:
  
 
* http://www.fsci.fuk.kindai.ac.jp/kakuto/win32-ptex/web2c75-e.html
 
* http://www.fsci.fuk.kindai.ac.jp/kakuto/win32-ptex/web2c75-e.html
 
The only Windows distribution so far that comes with [[XeTeX]].
 
W32TeX contains the latest ConTeXt.
 
Write18 is disabled. It can be enabled by
 
setting the environment variable SHELL_ESCAPE:
 
 
set SHELL_ESCAPE=t
 
  
 
== TeX Live or XEmTeX ==
 
== TeX Live or XEmTeX ==
Line 193: Line 169:
 
[http://www.tug.org/texlive/doc/texlive-en/live.html#x1-200006 Installation instructions] are part of the documentation.
 
[http://www.tug.org/texlive/doc/texlive-en/live.html#x1-200006 Installation instructions] are part of the documentation.
  
{{todo|can someone with any experience write something about it?}}
 
 
== XeTeX Installation ==
 
 
(Until Hans decides to apply that to the <b>standalone distribution</b>, this notes might be of interest for those who want to use XeTeX under Windows.)
 
 
* Download ftp://akagi.ms.u-tokyo.ac.jp/pub/TeX/win32/xetex-w32.tar.bz2
 
* Unpack it. <i>(The easiest way might be with Total Commander; you need a plugin for it, available on the official website)</i>
 
* Copy the content of <code>bin</code> into <code>texmf-mswin/bin</code> <i>(copy just the missing files, or simply overwrite the others)</i>
 
* Copy the content of <code>share/texmf</code> to <code>texmf</code>. If you really mind, you can delete the following before copying (but it's not necessary):
 
** <code>tex/xetex/xelatex</code>
 
** <code>tex/xetex/generic/hyphen</code>
 
** <code>tex/xetex/generic/ifxetex</code>
 
** <code>web2c/xetex/xe[la]tex.fmt</code>
 
** (<code>doc</code> in case you don't need it)
 
* <code>web2c/xetex/xetex.pool</code> should go to <code>texmf-mswin/web2c/</code>
 
 
=== Building the formats ===
 
At the first time and when you update ConTeXt, you have to run the following command from console:
 
texexec --xtx --make --all
 
  
=== Using XeTeX ===
+
== Notes about fontconfig (for XeTeX) ==
You can then compile your document using
 
texexec --xtx filename
 
  
=== Setting up fontconfig ===
+
* To use fonts that are not installed on the system you should add something like this to <code>C:\Programs\context\usr\local\context\texmf\fonts\conf\fonts.conf</code> (adjust the path according to your settings):
* Open <code>setuptex.bat</code> and add the following three lines <i>(here they're surrounded by the best place where they should be put)</i>:
 
set HOMETEXMF=
 
 
set FONTCONFIG_FILE=fonts.conf
 
set FONTCONFIG_PATH=%TEXMFMAIN%\fonts\conf
 
set FC_CACHEDIR=%TEXMFMAIN%\fonts\cache
 
 
if not "%CTXDEVTXPATH%"=="" SET CTXDEVTXPATH=
 
* To use fonts that are not installed on the system you should add something like this to <code>C:\Programs\context\usr\local\context\texmf\fonts\conf\fonts.conf</code>:
 
 
  <dir>c:/Programs/context/usr/local/context/texmf/fonts/opentype/public/lm</dir>
 
  <dir>c:/Programs/context/usr/local/context/texmf/fonts/opentype/public/lm</dir>
 
* For the first time and every time when you install a new font that you want to use with XeTeX, issue:
 
* For the first time and every time when you install a new font that you want to use with XeTeX, issue:

Revision as of 09:56, 5 October 2007

In order to be able to run ConTeXt under Windows, you will need the following:

  • a stand-alone ConTeXt distribution or any other TeX distribution (such as MikTeX, TeX Live, ... )
  • Perl, Ruby and GhostScript (Perl and Ruby are script languages, GS is a PostScript and PDF interpreter)
  • some Text editor
  • PDF viewer (Adobe Reader, GSview or any other)

Optional:

General

Updating

You have to bear in mind that ConTeXt is being developed reasonably fast (see Release Notes), so it's recommended to update it regulary. The standalone version of ConTeXt can be updated with

ctxtools --update

But you need to update cont-win.zip every now and then as well.

Under MikTeX you can update the packages with MikTeX's update.

Older versions of Windows

The stand-alone distribution only works for newer versions of Windows that have cmd.exe instead of command.com as command interpreter. Running it on Windows 98 (or earlier) is also possible, but needs some tweaking (hardcoding the paths in .bat script). If you really need that and can't make it work alone, try to ask Taco.

Which ConTeXt distribution to choose?

Note: You can use both MikTeX and the stand-alone distr. simultaneously.

MikTeX

MikTeX is great tool for people typsetting in LaTeX. Updating the packages is easy and (font) packages are downloaded automatically. If you need the very latest version of ConTeXt, you might need to update it manually.

It comes with XeTeX since version 2.7, but LuaTeX is not available yet.

Stand-alone ConTeXt

The stand-alone ConTeXt can always be kept up-to-date, it includes LuaTeX, the environment is set up "properly" and some special functionality that doesn't work in MikTeX should work here as expected.

If you don't need LaTeX, this might be the perfect solution. If you also need LaTeX, the stand-alone doesn't interfere with MikTeX (or other distributions), so you can use both.

TeX Live, W32TeX

TeX Live is released once per year and sent to members of TeX user groups on DVDs. Its package management is modest and still in development, and it's not updated between releases.

W32TeX W32TeX came to our attention since Akira (its author) was the first one to manage to compile XeTeX for Windows, and still provides the very latest Windows binaries for XeTeX, LuaTeX, pdfTeX, MetaPost, ... all of them being compatible with TeX Live.

The stand-alone ConTeXt distribution takes files & binaries from both of them, but as a distribution, MikTeX or stand-alone ConTeXt might be a better choice.

Installation

Stand-alone ConTeXt distribution

Installation Instructions


TODO: I made an example how to use the stand-alone distr. isolated from an existing distro. I would like to "join" this somehow with the first section and move opening of cdemo.bat to something like testing the installation. Perhaps pragmatex.bat can be executed with autorun or something if one is not using another TeX distribution. (See: To-Do List)


by Ville Voipio on the mailing list, 2006-01-19 (modified)

Here is a step by step of how it should go (i.e. what I did with success):

  1. Install Perl and Ruby
  2. Download mswincontext.zip, unzip it and move/rename the isoimage folder to your favourite destination. The instructions to follow assume that you renamed isoimage to
    c:\Programs\context
    There should be one folder (usr) and a few files in it.
  3. Open the folder c:\Programs\context and double-click cdemo.bat.
  4. Now you should see the editor SciTE open with a few files. Press F7 to compile one of the files.

If everything goes smoothly, you are done. If not, read these instructions again carefully. If you cannot get it work, mail the list.


TODO: review these steps: join the information - notes about ruby, Acrobat, ... apply to all windows distributions. (See: To-Do List)


A few notes on the procedure above:

  • It is up to you to choose the location where you unzip the file in step #2, no magic there. Just that you know where the files are.
  • The actual location of the ConTeXt tree in step #2 does not matter. I use c:\context, but you might use something else. However, I would not use anything with a space in the name (e.g. c:\Program Files\context), as that may confuse things. [Seems to work with an August 2006 stand-alone distribution.]
  • After you have verified everything works in step #3, you can toss cdemo.bat away and use cstart.bat to start everything. Make a link to it somewhere so that you can start the system by a shortcut or through the Start menu. Do not move the batch script anywhere, it has to be run in the root directory of the distribution (e.g. c:\Programs\context).
  • Make sure you have something Acrobatish (any decent PDF viewer) installed, otherwise you won't see the results in step #4.
  • A final note: to have it finally running you should build the formats first. To do so there is at least a way:
 (assuming C:\Programs\context)
 Start->Run->cmd
 cd C:\Programs\context
 cdemo.bat
 Then close the SciTe window but remain in the cmd.
Then, in one line:
C:\Programs\context\usr\local\context\tex\setuptex.bat C:\Programs\context\usr\local\context\tex
 texexec --make --all
Then, close the cmd, double-click in cdemo.bat
and voila !
  • Another way to do it could be to type: texexec --make --all directly in SciTe console.

How to use the stand-alone distr. if you have MikTeX/TeX Live installed

  1. Create a file pragmatex.bat (the name doesn't really matter) with this content:
    C:\Programs\context\usr\local\context\tex\setuptex.bat C:\Programs\context\usr\local\context\tex
    and make sure that this file is visible by PATH.
  2. You can safely continue using your old TeX distribution (MikTeX, TeX Live, ...). If you want to invoke the stand-alone distribution, just execute
    pragmatex
    from the command-line and all the subsequent calls to texexec will use files from the stand-alone tree (you'll notice the difference in file names when running ConTeXt).

Updating the installation


TODO: explain the best way for updating (See: To-Do List)


MikTeX or ProTeXt

MikTeX is probably the easiest and most recommended solution for newbies or for those who have already been using LaTeX and don't want to install anything else. MikTeX is very user-friendly, updating is very easy, missing fonts or third-party modules are installed automatically when you first use them.

However, some more experienced ConTeXt users may not always be happy with it:

  • using fonts doesn't always work as expected (or at least different than in the stand-alone distribution)
  • ConTeXt format is usually recent, but not always the latest (you can still update ConTeXt manually)
  • LuaTeX doesn't work yet with it yet

After you install or change something: Refresh file name database & Rebuild Formats

Template:todo:this needs to be updated, it's slightly different on more recent MikTeX

  • MikTeX Options -> General -> Refresh FNDB
  • MikTeX Options -> General -> Update Formats

(Don't forget to run the MikTeX Update Wizard regularly!)

If you have any problems running ConTeXt, check

  • MikTeX Options -> Formats -> cont-en -> Edit

The following should be set:

Compiler:         pdfetex
Input File Name:  cont-en.ini
Output File Name: [empty]
Preloaded Format: [empty]
Description:      [anything]
Exclude when updating: [unchecked]

After Apply-ing and Build-ing, Refresh & Update as described above. This is the MikTeX way for doing texexec --make en. The latter has no influence since MikTeX doesn't set any system variables and consequently ConTeXt doesn't know where to leave the created formats.

Additional settings (for those who use MetaFun)

Some default "security settings" (not really relevant for you unless you run it on a server) may cause you troubles, esp. when using MetaFun. Do the following:

  • In [MikTeX PATH]\tex\context\user\cont-sys.tex uncomment the following lines:
\runMPgraphicstrue
\runMPTEXgraphicstrue
  • In case the file doesn't exist yet, copy the file cont-sys.rme (in the same folder) to cont-sys.tex first. cont-sys.rme may change every now and then, so check for major changes from time to time and update your cont-sys.tex accordingly.
  • Enable write18 (see below)

([MikTeX PATH] and [localtexmf PATH] are chosen during the installation. If you don't know what they are, take a look at MikTeX Options -> Roots)

I don't know why and when exactly this is needed (MPtoPDF may cause problems), but

set TEXSYSTEM=miktex

may help you solving some problems.

write18

write18 allows calling external programs from within TeX. It's not a good idea to have it enabled on a server, but for comfortable work with ConTeXt (for MetaFun or modules for R and gnuplot) you probably need it.

Each application now has it's own configuration file. To enable write18 run

initexmf --edit-config-file=miktex\config\pdfetex.ini

and put

EnableWrite18=t

into it. An alternative is to se the environment variable MIKTEX_ENABLEWRITE18=t (currently there's a bug and only MIKTEX_ENABLEWRITE188=t works, but hopefully it'll go away soon).

W32TeX

TeX Live or XEmTeX

Installation instructions are part of the documentation.


Notes about fontconfig (for XeTeX)

  • To use fonts that are not installed on the system you should add something like this to C:\Programs\context\usr\local\context\texmf\fonts\conf\fonts.conf (adjust the path according to your settings):
<dir>c:/Programs/context/usr/local/context/texmf/fonts/opentype/public/lm</dir>
  • For the first time and every time when you install a new font that you want to use with XeTeX, issue:
fc-cache -f -v
  • To get a list of the available fonts use:
fc-list > list.txt

Required and Useful Tools

Installing Perl and Ruby

You need the two scripting languages in other operating systems as well, but installing them under Windows may be a bit less intuitive for a newbie than under Linux.

You can download ActivePerl here and Ruby here or here (different one; might be better - you only need to extract files from zip).

After installing them (remember the folder where you've put them!) you have to check if both executables are included in the PATH. Open the command line (Start -> Run ... -> type cmd or command) and check if

perl --version

and

ruby --version

work OK.

If windows complains about "Command not found", go to the Control Panel -> System -> Advanced -> click on the "Environment variables" and choose path in "system variables". Type in the path (e.g. D\Program Files\Perl\bin\;) where the ruby and perl *.exe files are installed. Generally, the installation is automatic. you may not need the above method.

(Installing ruby is optional under Windows, but nevertheless recommended. Some scripts need ruby, although it may happen that you will never use those scripts.)

A note about cygwin

(Skip this unless you know what you are doing!)

If you have a working perl and ruby under cygwin and if they are in PATH, this might already work for ConTeXt (although it's a better idea to use native Windows versions). However, if the inclusion of libraries in ruby fails (because of conversion of path names) and if you object to install ruby again, try setting the environmental variable RUBYLIB:

set RUBYLIB=/cygdrive/c/[Path to MikTeX or other distr.]/scripts/context/ruby

[1]

Installing GhostScript

If you already worked with (La)TeX before, you probably already have it installed. Try

gswin32 --version

You have to download GhostScript (filename gs851w32.exe or a similar one) and preferrably GSview as well (gsv47w32.exe or similar). Be sure to include the executables (folder where gswin32.exe is located) into the PATH variable.

Other useful software

Assuming that you already have Adobe Reader (if not, you can get it here; you don't need it to compile your documents, but at least to see the results), there is still some software still worth mentioning.

Choosing a Text editor & compiling

For newbies (like Word (ex)users)


TODO: Explain the difference between GUI/text editor/compiler/PDF document; people often ask me: "ConTeXt - oh, you mean that program with a blue screen and colourful fonts?" (See: To-Do List)


WinEdt has a rich graphical user-interface, but more support for LaTeX than for ConTeXt. (You need to install WinEdt AFTER the installtion of MikTeX, GhostScript and Adobe Reader for Windows.)

ConTeXt support for SciTE was written by Hans Hagen (the ConTeXt developer himself) and also includes recognition and auto-completion of most frequent ConTeXt commands.

According to their web-site: "TeXnicCenter is a feature rich integrated development environment (IDE) for developing LaTeX-documents on Microsoft Windows (Windows 9x/ME, NT/2000/XP) freely available under GPL." It can also be used for processing ConTeXt documents.


TODO: Someone should write how to install SciTE & ConTeXt support for it without installing the stand-alone ConTeXt. (See: To-Do List)


For gurus (like (La)TeX users or programmers)

You probably already have your favourite Text editor (or at least you know what we're talking about) and you may skip this. If not, take a look at the Text editor page to help you choose one.

  • Vim or Emacs may be a good choice if you're willing to invest some time into learning them - it may be worth the effort.

Compiling

After you've done all that, you can finally use your favourite editor to write your first document.

To compile it, open the command line again (Start -> Run ... -> type cmd or command) and run

texexec yourfilename

Some text editors support automatic compiling:

  • F7 (= command Build in Tools menu) or Ctrl+1 (= command Process TeX file in Tools menu) in SciTE
  •  ?? in WinEdt
  • F?? in TeXnicCenter
  • see makefile for Vim