diff options
Diffstat (limited to 'macros/latex/contrib/l3kernel/l3syntax-changes.tex')
-rw-r--r-- | macros/latex/contrib/l3kernel/l3syntax-changes.tex | 190 |
1 files changed, 0 insertions, 190 deletions
diff --git a/macros/latex/contrib/l3kernel/l3syntax-changes.tex b/macros/latex/contrib/l3kernel/l3syntax-changes.tex deleted file mode 100644 index 7e124576c7..0000000000 --- a/macros/latex/contrib/l3kernel/l3syntax-changes.tex +++ /dev/null @@ -1,190 +0,0 @@ -\iffalse meta-comment - -File: l3syntax-changes.tex - -Copyright (C) 2011,2012,2017-2024 The LaTeX Project - -It may be distributed and/or modified under the conditions of the -LaTeX Project Public License (LPPL), either version 1.3c of this -license or (at your option) any later version. The latest version -of this license is in the file - - https://www.latex-project.org/lppl.txt - -This file is part of the "l3kernel bundle" (The Work in LPPL) -and all files in that bundle must be distributed together. - -The released version of this bundle is available from CTAN. - -\fi - -\documentclass{l3doc} - - -\title{% - Syntax changes in \LaTeX3 functions% -} -\author{% - The \LaTeX{} Project\thanks - {% - E-mail: - \href{mailto:latex-team@latex-project.org}% - {latex-team@latex-project.org}% - }% -} -\date{Released 2024-03-14} - -\newcommand{\TF}{\textit{(TF)}} - -\begin{document} - -\maketitle - -This file describes functions that were expected to be completely -stable, but whose syntax has changed in ways that may potentially -require code relying on them to be changed. This file does not include -bug-fixes, nor backward-compatible extensions of the syntax, -nor functions that were completely -deprecated: the latter are listed in \texttt{l3obsolete.txt}. Only -changes after August 2011 are listed, with an approximate date. - -\section{August 2011} - -\begin{itemize} - \item \cs{tl_if_single:n\TF} recognized any non-zero number of - explicit spaces as \meta{true}, and did not ignore trailing spaces. - Now it is \meta{true} for - \[ - \meta{optional spaces} - \meta{normal token or brace group} - \meta{optional spaces}. - \] - \item \cs{tl_reverse:n} stripped outer braces and lost unprotected spaces. - Now it keeps spaces, leaves unbraced single tokens unbraced, and - braced groups braced. - \item \cs{tl_trim_spaces:n} only removed one leading and trailing space. - Now removes recursively. Also, on the left it used to strip implicit - and explicit spaces with any character code. Now it strips only explicit - space characters $(32,10)$. -\end{itemize} - -\section{September 2011} - -\begin{itemize} -\item clist functions which receive an \texttt{n}-type comma list argument - now trim spaces from each item in the argument. -\end{itemize} - -\section{May 2012} - -\begin{itemize} - \item The \pkg{l3fp} code has been completely rewritten with a new - expandable interface. - \item Getting/popping from a comma list or sequence or property list - that is empty (or missing the given key) now gives the quark - \cs{q_no_value}. -\end{itemize} - -\section{June 2012} - -\begin{itemize} - \item Access to list functions now indexes from~$1$, not from~$0$. - This applies to multiple choices in the \pkg{l3keys} module and - the \cs{clist_item:Nn}, \cs{seq_item:Nn} and \cs{tl_item:Nn} - functions. - \item \cs{tl_trim_spaces:n} now requires a variable number of - expansions to fully expand, rather than exactly two. Of course, - \texttt{x}-type or \texttt{e}-type expansion still correctly evaluates this function. -\end{itemize} - -\section{July 2012} - -\begin{itemize} - \item The \cs{tl_if_head_eq_meaning:nN}, \cs{tl_if_head_eq_catcode:nN} - and \cs{tl_if_head_eq_charcode:nN} conditionals now never match when - their first argument is empty. -\end{itemize} - -\section{August 2012} - -\begin{itemize} - \item \cs{lua_now:x} is now a standard \texttt{x}-type expansion of - \cs{lua_now:n}, which does no expansion. Engine-level expansion is moved - to \cs{lua_now:e}, reflecting the fact that this is non-standard in the - same way as for example \cs{str_if_eq_x:nn(TF)}. -\end{itemize} - -\section{December 2013} - -\begin{itemize} - \item In \pkg{l3fp} expressions, the badly named functions |round0|, - |round-|, |round+| are now named |trunc|, |floor|, |ceil|. -\end{itemize} - -\section{May 2014} - -\begin{itemize} - \item Now \cs{int_step_function:nnnN} evaluates its first three - arguments (start, step, stop) up front, rather than evaluating them - at each step in the loop. The same holds for the related mappings - \cs{int_step_inline:nnnn}, \cs{int_step_variable:nnnNn}, and their - analogues for \texttt{dim} and \texttt{fp} datatypes. -\end{itemize} - -\section{July 2014} - -\begin{itemize} - \item In \pkg{l3fp} expressions, juxtaposition is interpreted as - multiplication. Now the precedence of juxtaposition is set to be - the same as if there was an explicit multiplication - sign~\texttt{*}. Previously, juxtaposition would bound more tightly - than any other operation. -\end{itemize} - -\section{August 2015} - -\begin{itemize} - \item The \cs{hbox:n} and related \pkg{l3box} commands now take an - \texttt{n}-type argument and provide it braced to the underlying - \TeX{} primitive. The functions \cs{hbox:w} and \cs{hbox_end:} in - contrast do not read the contents of the box as a macro argument. -\end{itemize} - -\section{2016} - -No change. - -\section{July 2017} - -\begin{itemize} - \item Boolean expressions are now evaluated eagerly, namely both - operands of logical \texttt{and} (|&&|) and \texttt{or} (\verb"||") - are evaluated even when the result of the logical operation is fixed - after determining the first operand. For lazy evaluation, - \cs{bool_lazy_and_p:nn} and related functions are provided. -\end{itemize} - -\section{November 2017} - -\begin{itemize} - \item Spaces are now preserved inside keys in \pkg{l3keys}, and - trimmed at both ends. - \item \cs{cs_generate_variant:Nn} is now stricter: it only allows to - change \texttt{N}-type arguments to \texttt{c}, and \texttt{n} to - \texttt{o}, \texttt{V}, \texttt{v}, \texttt{f}, \texttt{x}. On the - one hand the latter argument types typically give rise to more than - one token, not suitable for use by an \texttt{N}-type base function. - On the other hand, \texttt{c} variants of \texttt{n} arguments - should often be \texttt{v} variants (when the argument is eventually - evaluated) or mistakes where the programmer thought the base - function was \texttt{N}-type. -\end{itemize} - -\section{February 2020} - -\begin{itemize} - \item \cs{keyval_parse:NNn} now works by expansion, returning - the parsed list inside \cs{exp_not:n}. -\end{itemize} - -\end{document} |