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
|
\iffalse meta-comment
File l3syntax-changes.tex Copyright (C) 2011-2012,2017 The LaTeX3 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
http://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 \LaTeX3 Project\thanks
{%
E-mail:
\href{mailto:latex-team@latex-project.org}%
{latex-team@latex-project.org}%
}%
}
\date{Released 2017/07/15}
\newcommand{\TF}{\textit{(TF)}}
\begin{document}
\maketitle
This file lists functions whose syntax has changed after August 2011,
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{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 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_x:n}, reflecting the fact that this is non-standard in the
same way as for example \cs{str_if_eq_x:nn(TF)}.
\end{itemize}
\end{document}
|