Archive for the ‘TeX Live’ tag
TeX on Windows: MiKTeX or TeX Live
Around two years ago, I wrote a short post comparing MiKTeX and TeX Live for Windows-based TeX users. Looking at my log files, this topic is perhaps the most common search term that brings people here. As such, I think it’s time to revisit the question and bring what I said before up to date.
On Windows, there are two actively-developed TeX systems with similar coverage: MiKTeX and TeX Live. Before I look at the comparison, a reminder that they are not the only choices. W32TeX is popular in the far east, and as well as being a TeX system in its own right is the source of the Windows binaries for TeX Live. There are also the commercial BaKoMa and VTeX systems (although whether anyone can get hold of the supplier of the latter is another question). However, for most users it comes down to a choice between the ‘big two’.
The good news is that there is a lot of similarity between the two systems, so for most users both systems are equally usable. However, there are differences and depending on what you need these might be important.
- The standard settings install everything for TeX Live, but only a minimal set of packages for MiKTeX. MiKTeX will then install extra packages ‘on the fly’, while TeX Live does not (there is a package to do that in TeX Live, but it’s aimed at Linux). Install-on-the-fly is useful if space is limited, but is more problematic on server set ups. So this is very much a feature who’s usefulness depends on your circumstances. Of course, there is nothing to stop you using MiKTeX and installing everything.
- The xindy program is only available in TeX Live. For those of you not familiar with it, xindy is an index-processor, and is much more capable of dealing with multi-lingual situations than MakeIndex. If you need xindy, TeX Live really is the way to go.
- MiKTeX is very much a Windows tool set, while TeX Live comes from a Unix background. This shows up from time to time in the way TeX Live is administered, and the fact that the TeX Live GUI is written based on Perl rather than as a ‘native’ Windows application.
- As TeX Live is the basis of MacTeX, and is the TeX system for Unix, if you work cross-platform and want an identical system on all of your machines, then TeX Live is the way to go.
TeX Live in Linux distributions
A subject which comes up quite a bit is the age of TeX Live systems shipped with common Linux distributions. While the current ‘vanilla’ release is TeX Live 2011, many Linux distributions use TeX Live 2009, or even TeX Live 2007. This leaves many people wondering why. Now, I’m no expert in this area, but reading the various mailing lists gives me some ideas about the ‘time lag’. Some of this is technical, and some is more conceptual.
The first thing to say is that for many Linux users with a personal system, where they can install vanilla TeX Live each year directly from TUG, it’s probably easiest to simply not worry about this entire area and simply install TeX Live themselves. However, a lot of Linux systems are either multi-user or server set ups, and it’s there that a lot of the following is more important.
The technical reason for the delay seems to be the way binaries are ‘linked’ to standard support libraries. To understand this, you first need to know that most programs use third-party code for standard tasks. So for example pdfTeX uses libraries for both .png and PDF support. In the vanilla TeX Live system (on Linux and other systems) these links are ‘static’, and the appropriate support material is supplied as part of the entire bundle. However, Linux distributions link ‘dynamically’. The advantage of the latter approach is that you only have one version of each library installed, and it is easy to update (for example for security fixes). So re-bundling TeX Live for Linux means building the binaries using dynamic linking. That of course means doing some work, and this is not trivial.
Size is the second stumbling block. TeX Live is big, as it includes a lot of (La)TeX packages and more importantly all of the documentation, mainly in PDF format. On a modern system, the hit in terms of hard disk space is not usually an issue, but at the same time there’s pressure in the Linux world to keep systems small and only install what is needed. So there is work to do in dividing TeX Live up into the constituent parts, a task that seems pretty difficult to me.
Finally, there is a conceptual point. TeX Live is not a single ‘product’, but is instead a bundle of different items from hundreds of different contributors. So while there is an overall TeX Live version, this does not reflect the status of each constituent part. The Linux packaging approach works best when each package has a small development team and a single version. It’s not really so well adapted to the much more diffuse status of items in TeX Live. So you often see discussions about stability, that probably make sense for a single software package but fits much less well for TeX systems.
As I said above, for single-user systems where the user can update TeX Live each year it’s probably easiest to simply bypass all of this. It’s also worth noting that having TeX Live available is a lot better than the alternative.
TeX Live 2011 released
Today sees the release of TeX Live 2011. As most readers will know, TeX Live is a cross-platform TeX system, and is the basis of the MacTeX distribution for Mac OS X. TeX Live 2011 is very much evolutionary, with only a small list of changes from earlier releases. Perhaps the most notable is that the Biber program is now available for major platforms: it was added to the on-line updates for TeX Live 2010, but this will be the first appearance on the DVD version. I guess that Karl Berrry will now be busy catching up on CTAN updates, so that on-line updating of TeX Live can resume.
Spaces in file names
Spaces in file names are a constant issue for LaTeX users. As many people will know, TeX is not really very happy with spaces, as they are used to delimit the end of input in a lot of low-level macros. This shows up particularly in two areas: graphics and shell escape. For graphics, the excellent grffile package will deal with many of the issues. When using shell escape, the issue is usually that \jobname may be slightly odd. For TeX Live users, that is not so much of a problem as the name is automatically quoted to protect the space. However, MiKTeX does things a bit differently, and uses a star in place of a space. So you end up with
\edef\example{\jobname}
\show\example
> \example=macro:
->test*file.
l.2 \show\example
which is not exactly helpful. However, it is possible to deal with this, as recently mentioned on TeX.SX. As * cannot normally appear in file names, and \jobname makes all characters have category code 12, a simple approach is to do a quick replacement
\edef\Jobname{\jobname}
\catcode`\*=\active
\def*{ }
\edef\Jobname{"\scantokens\expandafter{\Jobname\noexpand}"}
\catcode`\*=12 %
\show\Jobname
If you want to deal with both TeX Live and MiKTeX, you’d of course need first to test which system is in use (for example using \pdftexbanner).
TeX Live 2010 freeze
Work on test TeX Live 2011 for release is now well under-way. That means that TeX Live 2010 is now frozen: there will be no more updates added to TeX Live 2010 from now on. In a few days, testing builds for TeX Live 2011 should appear. I’ll report on those once I’ve grabbed one!
Biber now in TeX Live 2010
Many readers will be familiar with the Biber program, a replacement for BibTeX which works with the biblatex package. Binaries for common platforms have been available from TLcontrib for a while, but have now been added to the main TeX Live 2010 system. So you can install Biber on the ‘common’ platforms using the TeX Live Manager (or tlmgr from the command line). Yet another reason to move on from BibTeX and switch to biblatex, if you’ve not already!
biber without building from TLContrib
I’ve written in the past about the biber program, a replacement for BibTeX when using the biblatex system for citations in LaTeX. The biggest stumbling block to using biber to date has been the need to build it from the source. On Windows, that also means getting a working Perl installation, which is a non-standard item on that operating system. However, there is now an alternative approach, at least for people using TeX Live 2010. The new TLContrib system for additions to TeX Live now includes a biber package for Windows, Mac OS X (64 bit) and Linux.
To get biber installed, you’ll need to use the Command Prompt or Terminal. On Windows, you probably need to run the Command Prompt as the Administrator, while on the Mac or Linux you will probably want to sudo the following. To get biber installed, all you need to type is
tlmgr --repository http://tlcontrib.metatex.org/2010 install biber
The system will then get on with installing biber, which you can then use as a replacement for BibTeX. I’d then add biber to my graphical editor’s list of programs to make it easy to use: the detail of course depends on which editor you use.
What is particularly interesting here is that it has been possible to build a stand-alone biber. This should mean that at some stage both TeX Live and MiKTeX can integer ate it directly. This will really make biber a viable choice for most people using biblatex: building from the source is not most people’s idea of ‘easy to use’!
TeX Live packaging expands
Taco Hoekwater announced yesterday that he’s set up a new TeX Live package repository, TLcontrib. The idea is that this can be used as a parallel source to the ‘normal’ TeX Live repositories, to hold things which can’t go into TeX Live (license issues), binary updates, testing versions of packages and so on. It’s early days, but the idea looks good to me. I’m planning to use this mechanism for making pre-release versions of siunitx available. At the same time, I think I’ll be encouraging the LaTeX3 Project to use this method for testing snapshots of expl3. The advantage of this is that only people who really want to test out new material will get it, enabling more testing before CTAN releases.
Of course, this only affects TeX Live users: MiKTeX is not affected at all. I’m hoping that enough TeX Live users will be interested in the idea to enable a community of ‘test volunteers’ to develop.
TeX Live 2010 is released
A quick note about TeX Live 2010. After a while in pretesting, it’s now released and so new updates are appearing. I’ve just updated my system (I’m actually on a campsite!) and all seems to be working. Hopefully the DVDs will turn up soon enough and will be off to members of users groups, such as UK-TUG. As I’ve mentioned before, this has some new refinements such as built-in shell escape for EPS to PDF conversion, so the update looks like a good one to me.
TeX Live 2010 freeze
Karl Berry has announced on the TeX Live mailing list that TeX Live 2010 is now frozen, to allow a move to release status. So what has made it into the development version to date will be more or less what gets released onto DVD. Once things are done for release then the package updates will resume, allowing on-line updating. The timetable seems to be that DVDs will appear in September, but of course this will depend on the people actually making them.