summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/l3kernel/l3news03.tex
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/l3kernel/l3news03.tex')
-rw-r--r--macros/latex/contrib/l3kernel/l3news03.tex128
1 files changed, 128 insertions, 0 deletions
diff --git a/macros/latex/contrib/l3kernel/l3news03.tex b/macros/latex/contrib/l3kernel/l3news03.tex
new file mode 100644
index 0000000000..e3e245f051
--- /dev/null
+++ b/macros/latex/contrib/l3kernel/l3news03.tex
@@ -0,0 +1,128 @@
+% Copyright 2009,2010 The LaTeX Project
+\documentclass{ltnews}
+\PassOptionsToPackage{colorlinks}{hyperref}
+
+\usepackage{metalogo,ragged2e}
+
+\AtBeginDocument{
+ \renewcommand{\LaTeXNews}{\LaTeX3~News}
+ \RaggedRight
+}
+
+\usepackage{url}
+
+\publicationmonth{January}
+\publicationyear{2010}
+\publicationissue{3}
+
+\begin{document}
+\maketitle
+\raisefirstsection
+
+\section{Happy New Year}
+
+Welcome to the holiday season edition of `news of our activities' for
+the \LaTeX3 team.
+
+\section{Recent developments}
+
+The last six months has seen two significant releases in the \LaTeX3 code.
+In the \textsc{ctan} repository for the \pkg{xpackages},\footnote{\url{http://mirror.ctan.org/tex-archive/macros/latex/contrib/xpackages/}} you'll find two items of interest:
+\begin{itemize}
+\item A revised version of \textsf{xparse}; and
+\item The new package \textsf{xtemplate}, a re-implementation of \textsf{template} with a new syntax.
+\end{itemize}
+Special thanks to Joseph Wright who handled the implementations above almost single-handedly (with lots of input and feedback from other members of the team and members of the \textsc{latex-l} mailing list).
+
+These two packages are designed for the \LaTeX\ package author who wishes to define document commands and designer interfaces in a high-level manner.
+
+\paragraph{\textsf{xparse}}
+This package allows complex document commands to be constructed with all sorts of optional arguments and flags. Think of how \verb|\newcommand| allows you to create a command with a single optional argument and \textsf{xparse} is a generalisation of that idea.
+
+\paragraph{\textsf{xtemplate}}
+This package requires more explanation.
+\textsf{Xtemplate} is designed to separate the logical information in a
+document from its visual representation. `Templates' are constructed to fulfil
+individual typesetting requirements for each set of arguments; to change
+the look of a certain part of a document, instantiations of templates can be
+swapped out for another without (a) having to change the markup of the source
+document, or (b) having to edit some internal \LaTeX\ macro.
+
+
+\LaTeXe{} packages, such as \textsf{geometry} or \textsf{titlesec}, already provide
+parameterized interfaces to specific document elements. For example,
+one may use \textsf{titlesec} to change the
+layout of a \verb|\section|: one modifies its layout parameters via \verb|\titleformat| and \verb|\titlespacing|.
+In a way, such packages define a template for a specific document element and
+some manipulation commands to instantiate it.
+\pagebreak
+However, the moment the intended
+layout is not achievable with one package you are on your own: either you have
+to resort to low-level programming or find some other high-level package which, of course, comes with its own set of conventions and manipulation commands.
+
+The \textsf{xtemplate} package can be thought of a generalization of such
+ideas. It provides a uniform interface for defining and managing templates for
+any kind of document element and most importantly provides a uniform interface
+for instantiating the layout.
+
+Thus the designer activity of defining or modifying a document class is
+limited to selecting the document elements that should be provided by the
+class (e.g., \verb|\chapter|, \verb|\section| \verb|\footnote|, lists, \ldots), selecting
+appropriate ``named'' templates for each of them, and instantiating these
+templates by specifying values for their layout parameters. If a desired
+layout can't be achieved with a given template a different template for the
+same document element can be selected.
+
+Programming is only necessary
+if no suitable template for the intended layout is available.
+It is then that a \LaTeX{} programmer has to build a new template
+that supports the layout requirements. Once this task is complete, the
+template may be
+added to the selection of templates that designers and users may choose from
+to define or adjust document layouts seamlessly.
+
+This is a slight gloss over the complexities of the package itself, which you can read about in the documentation. We've tried to document \textsf{xtemplate} clearly but we'd love feedback on whether the ideas make sense to you.
+
+As an addendum to the introduction of \textsf{xtemplate}, the older \textsf{template} package will be retired in the near future. To our knowledge there is only a single package on \textsc{ctan} that uses \textsf{template}, namely \textsf{xfrac}, and members of the \LaTeX\ team are in the process of switching this package over to \textsf{xtemplate}. If you have any private code that uses \textsf{template}, please let us know!
+
+
+\section{Upcoming plans}
+
+Having announced the updated \textsf{xparse} and the new \textsf{xtemplate}, the next stage of development will revolve around using these two systems in the other components of the \textsf{xpackages}, feeding back our experience in practise with the original ideas behind the designs and evaluating if the packages are meeting our expectations.
+
+\subsection{Packages to tackle}
+
+\paragraph{\textsf{xhead}}
+The first work will be to create a new \textsf{xpackage} (probably called \textsf{xhead}), for typesetting section headings and other document divisions.
+Section headings are one of the more complex areas to work with, so
+the work should stress \textsf{xtemplate} enough to know if its
+current design is sufficient for most needs. Nothing has been
+released yet, but we'll announce further developments on the
+\textsc{latex-l} mailing
+list\footnote{For details, see
+ \url{http://www.latex-project.org/code.html}} in the
+mean time.
+
+
+\paragraph{\textsf{galley}}
+We also need to give \textsf{galley} the same treatment as
+\textsf{xparse} and \textsf{xtemplate} have already had. That is, we have an
+older implementation (in fact two) that needs some work before we're ready to release it to \textsc{ctan}.
+
+The \textsf{galley} package is used to place material into the
+vertical list while typesetting but before page breaks occur. Since it
+works at such a low level, it is important to solidify this package
+before writing higher level design templates.
+
+An issue we have to face is that to achieve best results,
+\textsf{galley} cannot be used in concert with \LaTeXe\ code. This
+could limit its usefulness, and we may decide that it's better to
+scale back the features we're attempting, to allow better
+interoperability for existing packages and documents. More work
+remains before we can decide between these options.
+
+
+\end{document}
+
+
+