% Copyright 2009,2010 The LaTeX Project \documentclass{ltnews} \PassOptionsToPackage{colorlinks}{hyperref} \usepackage{metalogo,ragged2e} \AtBeginDocument{ \renewcommand{\LaTeXNews}{\LaTeX3~News} \RaggedRight } \usepackage{url,hologo} \publicationmonth{July} \publicationyear{2010} \publicationissue{4} \begin{document} \maketitle \noindent Now that we're back from the \TeX\ Users Group conference in San Francisco, it's time to discuss what's been going on over the last six months. Due to some extra travel plans after the conference, this issue is slightly late in coming out. \section{\textsf{expl3} in practice} Joseph Wright and Will Robertson have both released significant new versions of their packages, resp., \textsf{siunitx} and \textsf{fontspec}. These have been re-written in the \LaTeX3 programming language \textsf{expl3}, which we have discussed here previously. Using \textsf{expl3} for production code has been very successful, both in demonstrating that the concepts are sound and highlighting areas that still need some attention. % The \textsf{expl3} % code will continue to evolve as more people use it for their work. In the case of \textsf{fontspec}, \textsf{expl3} programming is being used to target \LaTeX\ running on either \XeTeX\ and \hologo{LuaTeX}. In the latter case, the package is a mixture of Lua code and \pkg{expl3} code; Will presented the \pkg{unicode-math} package at TUG~2010, which is developed in the same style. \section{New \textsf{xpackages}} Frank Mittelbach has started to work on a new experimental \LaTeX3 package \textsf{xhead} that provides templates for one of the most complex areas of document design: section headings and document divisions. This is the beginning of an ambitious idea to map out the requirements for typesetting most documents currently processed with \LaTeX. One of the challenges here is providing a ``natural'' design language for describing the two-dimensional spatial relationships of objects participating in the design, e.g., the placement of a heading number in relation to the heading title, a possible sub-title, etc. In answer to this challenge Frank developed the \textsf{xcoffin} package, which he presented at TUG~2010. It is designed as a high-level interface for placing and aligning boxes on a page, allowing a `designer's approach' for indicating the positional relationship between boxes. (A `coffin' is a box with handles.) As an example, it is possible to represent ideas such as `align the lower-left corner of box A with the upper-right corner of box B after rotating it ninety degrees', without having to calculate the intermediate positions. We expect a future version of \textsf{xcoffin} (after some further work on its interface layer and its internal implementation) to play a major role in all packages providing layout templates for higher-level document objects, such as table of contents designs, floats, etc. Finally, Joseph Wright has begun work with the current `galley' packages, producing the new, minimal, \textsf{xgalley} based on \textsf{xfm-galley} as a testbed for what we need and what will work. \section{Developments with \textsf{expl3}} Meanwhile, Joseph's \emph{also} been writing a new floating-point calculation module, called \textsf{l3fp}, for \pkg{expl3}. This module allows manipulation and calculation of numbers with a much larger range than \TeX\ allows naturally. The \textsf{l3fp} module has already been utilised in the \pkg{xcoffin} code for calculatations such as coordinate rotations and intersection points of vectors. The modules \pkg{l3io} and \pkg{l3file} have been revised, rethinking the way that read and write streams are dealt with. \TeX\ has a hard limit of sixteen input and output streams open at any one time, and the new implementation for \pkg{expl3} provides more flexibility in how they are allocated; there's now much less chance of running into a `\verb|No room for a new \read|' (or \verb|\write|) error. Sometimes we discuss ideas for \textsf{expl3} that \emph{don't} end up making it into the final code. One example of this is the concept of having `local registers' for integers, boxes, and so on, that do not survive outside of the group they are defined in (in contrast to Plain \TeX\ and \LaTeX, where allocators such as \verb|\newcount| and \verb|\newbox| are always global). Despite the scope for some small benefit, we decided that the extra complexity that the additional functions required, in both syntax and documentation, was not justified. \section{TUG 2010 reflections} % added most of it back in: -fmi %% Most of the active \LaTeX3 Project team were able to attend the TUG~2010 %% conference and (for Will) meet everyone in person for the first time. Our interpretation of the broad themes discussed at the conference are that \TeX-based systems are still thriving and there are some big problems to solve with robust solutions to transform \LaTeX\ source, including mathematics, into a form such as HTML. While there are big pushes for standardising various aspects of the \LaTeX\ syntax, we also believe that it is \LaTeX's very flexibility---its inherently non-standardised markup---that has allowed it to survive for so many years. There is a delicate trade-off here between moving forward into more standards-based territory while also retaining the extensibility of the third-party package system. \end{document}