summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/latex-dev/base/ltnews23.tex
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/doc/latex-dev/base/ltnews23.tex')
-rw-r--r--Master/texmf-dist/doc/latex-dev/base/ltnews23.tex257
1 files changed, 257 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/latex-dev/base/ltnews23.tex b/Master/texmf-dist/doc/latex-dev/base/ltnews23.tex
new file mode 100644
index 00000000000..693e22de831
--- /dev/null
+++ b/Master/texmf-dist/doc/latex-dev/base/ltnews23.tex
@@ -0,0 +1,257 @@
+% \iffalse meta-comment
+%
+% Copyright (C) 2015-2019
+% The LaTeX3 Project and any individual authors listed elsewhere
+% in this file.
+%
+% This file is part of the LaTeX base system.
+% -------------------------------------------
+%
+% It may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3c
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3c or later is part of all distributions of LaTeX
+% version 2008 or later.
+%
+% This file has the LPPL maintenance status "maintained".
+%
+% The list of all files belonging to the LaTeX base distribution is
+% given in the file `manifest.txt'. See also `legal.txt' for additional
+% information.
+%
+% The list of derived (unpacked) files belonging to the distribution
+% and covered by LPPL is defined by the unpacking scripts (with
+% extension .ins) which are part of the distribution.
+%
+% \fi
+% Filename: ltnews23.tex
+%
+% This is issue 23 of LaTeX News.
+
+\documentclass{ltnews}
+\usepackage[T1]{fontenc}
+
+\usepackage{lmodern,url,hologo}
+
+\makeatletter % -- provide command introduced in new release
+ % so this typesets with an old format
+
+% Check we are not in the preamble of a composite document
+\def\@tempa{\@latex@error{Can be used only in preamble}\@eha}
+\ifx\DeclareTextCommandDefault\@tempa
+\else
+ \DeclareTextCommandDefault\textcommabelow[1]
+ {\hmode@bgroup\ooalign{\null#1\crcr\hidewidth\raise-.31ex
+ \hbox{\check@mathfonts\fontsize\ssf@size\z@
+ \math@fontsfalse\selectfont,}\hidewidth}\egroup}
+\fi
+\makeatother
+
+\publicationmonth{October}
+\publicationyear{2015}
+
+\publicationissue{23}
+
+\begin{document}
+
+\maketitle
+
+\tableofcontents
+
+\section{Enhanced support for \hologo{LuaTeX}}
+
+As noted in \LaTeX\ News 22, the 2015/01/01 release of \LaTeX{}
+introduced built-in support for extended \TeX\ systems.
+
+The range of allocated register numbers (for example, for count
+registers) is now set according to the underlying engine capabilities
+to 256, 32768 or 65536. Additional allocators were also added for the
+facilities added by \hologo{eTeX} (\verb|\newmark|) and \hologo{XeTeX}
+(\verb|\newXeTeXintercharclass|). At that time, however, the work to
+incorporate additional allocators for \hologo{LuaTeX} was not ready for
+distribution.
+
+The main feature of this release is that by default it includes
+allocators for \hologo{LuaTeX}-provided features, such as Lua
+functions, bytecode registers, catcode tables and Lua callbacks.
+Previously these features have been provided by the contributed
+\package{luatex} (Heiko Oberdiek) and \package{luatexbase}
+(\'{E}lie Roux,
+ Manuel P\'{e}gouri\'{e}-Gonnard and Philipp Gesang)
+packages. However, just as
+noted with the \package{etex} package in the previous release, it is
+better if allocation is handled by the format to avoid problems with
+conflicts between different allocation schemes, or definitions made
+before a package-defined allocation scheme is enabled.
+
+The facilities incorporated into the format with this release, and
+described below, are closely modelled on the \package{luatexbase}
+package and we thank the authors, and especially \'{E}lie Roux, for
+help in arranging this transition.
+
+The implementation of these \hologo{LuaTeX} features has been
+redesigned to match the allocation system introduced in the 2015/01/01
+\LaTeX\ release, and there are some other differences from the previous
+\package{luatexbase} package. However, as noted below,
+\package{luatexbase} is being updated in line with this \LaTeX\ release
+to provide the previous interface as a wrapper around the new
+implementation, so we expect the majority of documents using
+\package{luatexbase} to work without change.
+
+\subsection{Names of \hologo{LuaTeX} primitive commands}
+
+The 2015/01/01 \LaTeX\ release for the first time initialised
+\hologo{LuaTeX} in \textsf{latex.ltx} if \hologo{LuaTeX} is being
+used. Following the convention used in the contributed
+\textsf{lualatex.ini} file used to set up the format for earlier
+releases, most \hologo{LuaTeX}-specific primitives were defined with
+names prefixed by \texttt{luatex}. This was designed to minimize name
+clashes but had the disadvantage that names did not match the
+\hologo{LuaTeX} manual, or the names used in other formats, and
+produced some awkward command names such as \verb|\luatexluafunction|.
+From this release the names are enabled without the \texttt{luatex}
+prefix.
+
+In practice this change should not affect many documents; relatively
+few packages access the primitive commands, and many of those are
+already set up to work with prefixed or unprefixed names, so that they
+work with multiple formats.
+
+For package writers, if you want to ensure that your code works with
+this and earlier releases, use unprefixed names in the package and
+ensure that they are defined by using code such as:
+\begin{verbatim}
+\directlua{tex.enableprimitives("",
+ tex.extraprimitives(
+ "omega", "aleph", "luatex"))}
+\end{verbatim}
+Conversely if your document uses a package relying on prefixed names
+then you can add:
+\begin{verbatim}
+\directlua{tex.enableprimitives("luatex",
+ tex.extraprimitives(
+ "omega", "aleph", "luatex"))}
+\end{verbatim}
+to your document.
+
+Note the compatibility layer offered by the \package{luatexbase} package
+described below makes several commands available under both names.
+
+As always, this change can be reverted using:\\
+\verb|\RequirePackage[2015/01/01]{latexrelease}|\\
+at the start of the document.
+
+
+
+\subsection{\TeX\ commands for allocation in \hologo{LuaTeX}}
+For detailed descriptions of the new allocation commands see the
+documented sources in \textsf{ltluatex.dtx} or chapter N of
+\textsf{source2e}; however, the following new allocation commands are
+defined by default in \hologo{LuaTeX}:
+\verb|\newattribute|,
+\verb|\newcatcodetable|,
+\verb|\newluafunction| and
+\verb|\newwhatsit|.
+In addition, the commands \verb|\setattribute| and
+\verb|\unsetattribute| are defined to set and unset Lua attributes
+(integer values similar to counters, but attached to nodes). Finally
+several catcode tables are predefined:
+\verb|\catcodetable@initex|,
+\verb|\catcodetable@string|,
+\verb|\catcodetable@latex|,
+\verb|\catcodetable@atletter|.
+
+\subsection{Predefined Lua functions}
+If used with \hologo{LuaTeX}, \LaTeX\ will initialise a Lua table,
+\textsf{luatexbase}, with functions supporting allocation and also
+the registering of Lua callback functions.
+
+\subsection{Support for older releases and plain \TeX}
+The \hologo{LuaTeX} allocation functionality made available in this
+release is also available in plain \TeX\ and older \LaTeX\ releases
+in the files \textsf{ltluatex.tex} and \textsf{ltluatex.lua} which may be
+used simply by including the \TeX\ file: \verb|\input{ltluatex}|.
+An alternative for old \LaTeX\ releases is to use:\\
+\verb|\RequirePackage[2015/10/01]{latexrelease}|\\
+which will update the kernel to the current release, including
+\hologo{LuaTeX} support.
+
+\subsection{Additional \hologo{LuaTeX} support packages}
+In addition to the base \LaTeX\ release two packages have been
+contributed to the \textsf{contrib} area on CTAN. The
+\package{ctablestack} package offers some commands to help package
+writers control the \hologo{LuaTeX} \textsf{catcodetable}
+functionality, and the \package{luatexbase} package replaces the
+previously available package of the same name, providing a compatible
+interface but implemented over the \package{ltluatex} code.
+
+\section{More Floats and Inserts}
+If \hologo{eTeX} is available, the number of registers allocated in
+the format to hold floats such as figures is increased from 18 to 52.
+
+The extended allocation system introduced in 2015/01/01 means that in
+most cases it is no longer necessary to load the \package{etex}
+package. Many classes and packages that previously loaded this package
+no longer do so. Unfortunately in some circumstances where a package
+or class previously used the \package{etex} \verb|\reserveinserts|
+command, it is possible for a document that previously worked to
+generate an error ``no room for a new insert''. In practice this error
+can always be avoided by declaring inserts earlier, before the
+registers below 256 are all allocated. However, it is better not
+to require packages to be re-ordered and in some cases the re-ordering
+is complicated due to delayed allocations in \verb|\AtBeginDocument|.
+
+In this release, a new implementation of
+\verb|\newinsert| is used which allocates inserts from the previously
+allocated float lists once the classical register allocation has run
+out. This allows an extra 52 (or in \hologo{LuaTeX}, 64~thousand)
+insert allocations which is more than enough for practical documents
+(by default, \LaTeX\ only uses two insert allocations).
+
+\section{Updated Unicode data}
+
+
+The file \textsf{unicode-letters.def} recording catcodes, upper and
+lower case mappings and other properties for Unicode characters has
+been regenerated using the data files from Unicode~8.0.0.
+
+\section{Support for Comma Accent}
+The command \verb|\textcommabelow| has been added to the format.
+This is mainly used for the Romanian letters
+\textcommabelow{S}\textcommabelow{s}\textcommabelow{T}\textcommabelow{t}.
+This was requested in latex/4414 in the \LaTeX\ bug tracker.
+
+\section{Extended \package{inputenc}}
+The \texttt{utf8} option for \package{inputenc} has been extended to support
+the letters s and t with comma accent,
+U+0218\,--\,U+021b. Similarly circumflex w and y U+0174\,--\,U+0177 are defined.
+Also U+00a0 and U+00ad are declared by default, and defined to be
+\verb|\nobreakspace| and \verb|\-| respectively.
+
+The error message given on undefined UTF-8 input characters
+now displays the Unicode number
+in U+\textit{hex} format in addition
+to showing the character.
+
+\section{Pre-release Releases}
+The patch level mechanism has been used previously to identify \LaTeX\
+releases that have small patches applied to the main release, without
+changing the main format date.
+
+The mechanism has now been extended to allow identification of
+pre-release versions of the software (which may or may not be released
+via CTAN) but can be identified with a banner such as\\
+{\catcode`\<=13 \def<{\string<} \catcode`\>=13 \def>{\string>}%
+\verb|LaTeX2e <2015/10/01> pre-release-1|}\\
+Internally this is identified as a patch release with a negative patch
+level.
+
+\section{Updates in tools}
+
+The \package{multicol} package has been updated to fix the interaction
+with ``here'' floats that land on the same page as the start or end of
+a \textsf{multicols} environment.
+
+\end{document}