TeX Live 2012 pretesting

Pretesting of the next TeX Live is well under way. This is very much evolutionary: no major changes from TL2011. So far I’ve had no surprises, but that does not mean a bit of caution is not needed (I will keep TL2011 installed too!).  Of course, pretesting works best if lots of people get involved, so if you are not doing something critical with documents, or you are comfortable switching between TeX Live installations, then grab a copy and help out.

Co-ordinating biblatex style development

Bibliographies formatting is complicated, and over the years this has led to the development of a lot of BibTeX styles and tools like custom-bib. For biblatex users the output style can be altered from within LaTeX, and while there is not yet an equivalent of custom-bib for biblatex there is some excellent advice available for developing new styles.

One of the key ideas of  is to make it possible to address the citation styles in fields where BibTeX could never provide the correct tools. That shows up most obviously in humanities, where the position of citations in the output needs to feed back into how they appear. Life gets even more complicated when you consider areas that need specialised fields included in their bibliographies: a classic example is law. There are already developments under-way to help support these situation, for example Biber-based flexible data model. Addressing the needs of style authors properly requires co-ordination between the core biblatex team and the style creators, and between different style authors. The question of how to achieve this communication came up recently on TeX-sx.

There are at least a couple of obvious ways for people to stay in touch with each other. First, where there is a need for a specific function to be added to biblatex, the package GitHub site is the place to go. Adding issues makes sure that they don’t get lost in direct e-mails, and also ensures that anyone with a point of view can comment. Secondly, for more open discuss TUG have a bibliography mailing list. To date, this has not been very heavy in terms of traffic, but it would be an ideal forum to co-ordinate effort. It’s publicly archived and anyone can join, so there is no danger of loosing important comments.

Of course, there are other ways to communicate too! All of the team are active on TeX-sx, and when we can we pick up biblatex issues and add them to the to do list. Direct e-mail works too, and I’m sure some style authors will go for direct communication. The key thing is to use the power of biblatex to make life easier for the end-user.

LaTeX3 gets a new FPU

For a while now we’ve been promising to update the floating point functions in LaTeX3 to provide an expandable approach to calculations. We are now making good progress in swapping the old code for the new material. There are still a few things to be decided, but the general plan looks pretty clear.

The new code lets you parse floating point expressions in the same way you can for integers. So you can write

\fp_eval:n { 10 / 3  + 0.35 }

and get the output

3.683333333333333

without needing to worry about working with dimensions. Even more usefully, there are a range of built in mathematical functions, so things like

\fp_eval:n { sin ( pi / 3 ) }

gives

0.8660254037844386

as you’d want.

You might pick up from the above output that the new FPU works to a higher accuracy than the old one: 16 significant figures. That’s been done without a bad performance hit: great credit goes to Bruno Le Floch for the work on this. Of course, you don’t have to have 16 figure output: the code includes rounding functions and various display options, so for example

\fp_eval:n { round ( sin ( pi / 3 ) , 3 ) }

At the moment you’ll have to grab the latest development code to get this new version as part of expl3, but it will be in the next CTAN snapshot some time in June. You might also find that not every function you want implemented is available: for example, there are currently no inverse trigonometric functions. Those are all on the to do list, but there not needed for typesetting so may be a little while.

The LPPL: ‘maintainer’ or ‘author-maintained’

The LaTeX Project Public License (LPPL) was written to allow development of LaTeX code in a way that is free as in speech while also making sure that LaTeX users get what they expect when they

\usepackage{foo}

Frank Mittelbach wrote an excellent overview of how the LPPL was developed for TUGBoat last year, where he discussed the balance between the rights of the coder and the rights of the person using the code!

The LPPL is designed to deal with packages which are both ‘maintained’ and ‘unmaintained’, and provides a way to allow new maintainers to take over unmaintained material. It also allows for packages to be ‘author-maintained’, which sounds similar to just ‘maintained’ but is significantly different.

Packages which are either ‘maintained’  or  ‘author-maintained’ have one or more people looking after it, and they are responsible for making changes to the code. The difference comes if those people disappear (as has happened recently with biblatex). With a ‘maintained’ package, it’s possible for a new person or team to make a public statement that they are going to take over, then after a delay they become the new maintainers. On the other hand, a package which is ‘author-maintained’ cannot be taken over by someone else.

Now, the LPPL is a ‘free’ license and so it is always possible to create a fork from an existing package. In general, you don’t really want to do that simply to keep updating an existing package: taking over maintenance is much clearer all round. For biblatex, we can’t do that as it’s ‘author-maintained’. So we’re going to have to formally fork the project, mark the ‘new’ version as distinct from the old (Philipp Lehman) version and ensure that both remain on CTAN: not ideal.

So I’d urge people to mark their LPPL code as ‘maintained’  rather than  ‘author-maintained’.  You never know what might happen, and ‘maintained’ status works pretty well.

babel gets back on track

Posted today to the LaTeX-L list by Javier Bezos

Babel gets back on track and it is again actively maintained. The goals are mainly to fix bugs, to make it compatible with XeTeX and LuaTeX (as far as possible), and perhaps to add some minor new features (provided they are backward compatible).

No attempt will be done to take full advantage of the features provided by XeTeX and LuaTeX, which would require a completely new core (as for example polyglossia or as part of LaTeX3).

Your comments or suggestions (or questions!) are welcomed.

Hopefully we’ll see some long-standing babel bugs sorted out in the near future: many thanks to Javier for taking this up!