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’!

siunitx: testing for v2.1 release

Anyone who follows the BitBucket repository for siunitx will have seen that I’ve made a lot of commits over recent days. If you look at the list of open issues, you’ll also see that it’s got smaller and that some have been moved from targeting v2.1 to targeting v2.2. I’ve been aiming to get v2.1 finished this month, and I’ve been working out what I can and can’t do in that time frame.

The result is that the code on BitBucket now is what I’ll release as v2.1, baring any remaining bug fixes. The idea is to have some new features, but not so many that I’ll have introduced lots of new bugs. I hope that I’ve got the balance about right, and that there has been enough time for testing the new additions to the package. If all looks okay by the weekend I will be updating CTAN at the weekend. If you’d like to test it before then, either grab the code from BitBucket or, if you use TeX Live, try the TLcontrib installation method.

I’m hoping to work on v2.2 for a release early in the new year, probably late January. There are already a few issues on the list for v2.2, but that may alter if there is a good case made for something else. Of course, I’ll also have to avoid breaking anything!

The Art of Computer Programming: ever heard of it?

This post is not directly TeX-based, but there is a link. I read the magazine PC Plus every month, and last month they had an article called 10 Mistakes every programmer makes. It was pretty good, but one thing really caught my eye: a box entitled Spotlight on … the art of programming. You can imagine my surprise to see that Professor Knuth’s The Art of Computer Programming did not get a mention! So I sent quick e-mail to the editors, which has turned up in the latest issue (301). That’s not to say that the other suggestions were bad, but a quick Google search pops up The Art of Computer Programming as hit number one, so I’d expect it to get a look-in.

Testing versions of siunitx v2.1 on TLcontrib

I’m working on the list of issues for siunitx v2.1. As I do, I hope that the code is staying usable at all times! The list is getting shorter (finally), so I’m hoping to get something released around the end of the month.  One thing that I need for that is testing. My recent post about TLcontrib mentioned this as a route for testing packages prior to release. So I’m taking advantage, and sending snapshots of siunitx to TLcontrib each time I add a new feature. So if you want to help to test things out, then you can run

tlmgr --repository http://tlcontrib.metatex.org/2010 update siunitx

from your command prompt/terminal. Let me know about any new issues!

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.

When to use \protected

ε-TeX introduced the idea of ‘protected’ macros over ten years ago, but many experienced (La)TeX users struggle with the concept. The idea of the \protected primitive is that it will prevent a macro being expanded inside an \edef or \write, so that

\protected\def\example{Hello}
\edef\test{\example}
\show\test

will give

\test=macro:
->\example .

Why would you want to do this? Well, there are some things that do not work properly inside an \edef. The classic one is an assignment: the following does not work

\edef\fails{\def\fails{stuff}}

This will give an undefined control sequence error for \fails, rather than carrying out in ‘inner’ \def. So as part of a general strategy I would recommend always making any macro that performs an assignment protected. That also applies if you know that one macro will use another that is itself protected. This is exactly what we’ve been doing in the work on LaTeX3, where the aim is that all macros are either protected or will expand safely inside an \edef. However, the idea applies more widely: making things protected is a lot more reliable than using LaTeX’s ‘robust’ mechanism, and avoids some nasty errors. ε-TeX has been around long enough that there is no real excuse not to make use of this mechanism.

TUG 2011 Elections

I’ve just received the latest TUGBoat, which contains the proceedings of the TUG 2010 Conference. There is lots to read there, some of which I’ve picked up on before from the online videos. I’ll probably come back to some of the individual articles in other posts, but here I want to point out the TUG Election is coming up. At the back of TUGBoat there’s a form to nominate for the board and for the position of Chair of TUG. You’ve got until the 1st of February to get your form in, so there is plenty of time to decide to get involved!

Time to take a look at the issues for siunitx v2.1

The list of issues for siunitx has been growing for a while. I’ve been holding off work on the bigger issues while bugs in v2.0 have come up, as I’d prefer to have something that works for most people now rather than try to add more new features too soon. At the same time, I’m also busy working on other things. However, I’ve been prodded by a few users to make a start on some of the feature requests. I do aim to please, so I’m going to make a start on the list.

Of course, just because I look at something does not mean I’ll do it. I decided to start simple, and took a look at issue 71. The question here was about automatically adding kerning for things like \femto\farad, as the kerning in Computer Modern is not good here. I did write some code, but looking at it decided that this is too close to the font choice for me. So I’ve closed the issue as ‘WONTFIX’. I’ll see whether this sticks or whether there is a lot of demand for such a feature.

The plan is to get on with adding features and fixing more complex issues over the next few weeks. I never leave the code unusable (I use the development version as my day-to-day workhorse), so you can grab the .dtx file and try things out if you like. I’ll post again if there are any particular new features or changes that need a try out.