summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/l3kernel/l3news07.tex
blob: 2b433da4c41f8c4a2a904854acff53d9bb44e775 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
% Copyright 2012 The LaTeX3 Project
\documentclass{ltnews}
\PassOptionsToPackage{colorlinks}{hyperref}

\usepackage{metalogo,ragged2e}

\AtBeginDocument{
  \renewcommand{\LaTeXNews}{\LaTeX3~News}
  \RaggedRight
}

\publicationmonth{February}
\publicationyear{2012}
\publicationissue{7}

\begin{document}
\maketitle

\section{After the `Big Bang'}

The last \LaTeX3 News gave details of the `Big Bang', in which the team have
revised the layout and coverage of the \LaTeX3 codebase. This process has
made the status of different modules clearer, so that both the team themselves
and everyone else know what is going on.

The `Big Bang' changes were not shipped to \textsc{ctan} until after the \TeX{}
Live 2011 freeze, as we did not want to end up with a \textsc{dvd} containing
badly broken code. The update went to \textsc{ctan} soon after \TeX{} Live 2011
shipped, and has now propagated around the world. The new package naming
(\pkg{l3kernel}, \pkg{l3packages} and \pkg{l3experimental}) has caused some
surprises for a small number of users, but there have not been any major
issues with the changes at the code level.

The `Big Bang' has attracted attention from programmers outside of the
\LaTeX3 team, with useful feedback arriving on the
\texttt{LaTeX-L} list and TeX.sx, in particular. One area that this has
highlighted is the need to document carefully when changes to the `stable'
parts of the \LaTeX3 codebase occur. All changes to \pkg{l3kernel} now
come with an explicit date for the change in the documentation, which means
that programmers can check exactly when the features they want were introduced.

Another key part of supporting \LaTeX3 use beyond the team is making it easy
to check on the version of \LaTeX3 installed. To support that, the file date
of the main \pkg{expl3} package is now set each time there is a release of the
\LaTeX3 material to \textsc{ctan}. This means that the \LaTeXe{}
\cs{@ifpackagelater} test can be used reliably to detect if the installed
version of \LaTeX3 is going to supply the functions that a programmer is
using.

\section{Deforming boxes}

Additions to both the \LaTeX3 stable material and more experimental modules
continue. Joseph Wright has been working on adding `native' drivers for
\LaTeX3 to support box transformations. These allow box rotation, clipping
and scaling with the drivers \texttt{dvips}, \texttt{xdvipdfmx} and direct
\textsc{pdf} output.

The development of clipping support for the \texttt{xdvipdfmx} driver has also allowed
us to suggest improvements to the \LaTeXe{} graphics drivers, enabling clipping
with the \XeTeX{} engine.

\section{A \TeX{}-based regex engine}

Bruno Le Floch has been %working across the codebase, %% omitted to avoid page break
improving the efficiency
and robustness of a number of \LaTeX3 functions. Most notably, he has
created a purely \TeX{}-based regular expression (regex) system for \LaTeX3.
This is currently experimental, but is already proving useful and will
hopefully stabilise over the coming months.

Bruno's regex system works with all of the supported engines (pdf\TeX{},
\XeTeX{} and \LuaTeX{}). He has implemented the core ideas of standard
regex systems, along with some \TeX{}-specifics to allow matching and
replacing
the content of token lists % correct?
by category code.

\section{\pkg{xparse} improves}

The \pkg{xparse} module has been overhauled, making the internal code
more efficient and adding additional argument types. This has also allowed
us to deal with a number of internal bugs, meaning that argument grabbing
is now more reliable.

The argument grabbers themselves have been reworked so that in the event of an error,
the user will normally get a meaningful message from \TeX{} rather than
one pointing to \pkg{xparse} internal function names. This should help
in tracking down erroneous input in real documents.

\section{The galley}

As detailed in the last issue, work on the galley module has been continuing.
Discussion of Joseph's reimplementation of the galley concepts highlighted
some important areas to work on, with the nature of the template concept
being particularly significant.

More work is still needed to finalise the galley concepts, but it is clear that
some of this will require feedback from other areas. Joseph therefore hopes
to finish work on the current round of galley improvements by the end of
February, and to return to them once some other areas have been addressed.

\section{Relationships between document items}

The \textsc{tug}2011 meeting took place in October in India. Frank Mittelbach
spoke there about ideas for describing the design relationship between document elements.
% omit calling it "ldb" here because that name will likely change (last I heard?)
These ideas allow a document designer to specify the design of a document element
based on its context within a document, and progress in this area will likely
lead to an extension in the \pkg{xtemplate} system.

\end{document}