diff options
author | Karl Berry <karl@freefriends.org> | 2011-09-16 22:35:41 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2011-09-16 22:35:41 +0000 |
commit | 6d95b4a2c1bbdaea1a3802c822808f476ac5703b (patch) | |
tree | 1abf9117bf53f2de53fbcc62c352acc92780365b /Master/texmf-dist/source/latex/l3kernel/l3tl.dtx | |
parent | b7f762397f5df2d732326713423e31e1bf91b903 (diff) |
l3kernel 2828 (15sep11)
git-svn-id: svn://tug.org/texlive/trunk@23983 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/l3kernel/l3tl.dtx')
-rw-r--r-- | Master/texmf-dist/source/latex/l3kernel/l3tl.dtx | 226 |
1 files changed, 117 insertions, 109 deletions
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx b/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx index cfe96ac73af..af58f1055ea 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx @@ -9,7 +9,7 @@ %% %% http://www.latex-project.org/lppl.txt %% -%% This file is part of the "expl3 bundle" (The Work in LPPL) +%% 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. @@ -35,7 +35,7 @@ % %<*driver|package> \RequirePackage{l3names} -\GetIdInfo$Id: l3tl.dtx 2686 2011-08-29 19:41:06Z joseph $ +\GetIdInfo$Id: l3tl.dtx 2812 2011-09-12 09:19:26Z bruno $ {L3 Experimental token lists} %</driver|package> %<*driver> @@ -66,7 +66,7 @@ % \maketitle % % \begin{documentation} -% +% % \TeX{} works with tokens, and \LaTeX3 therefore provides a number of % functions to deal with token lists. Token lists may be present direct in % the argument to a function: @@ -266,10 +266,10 @@ % % \section{Modifying token list variables} % -% \begin{function}{\tl_replace_once:Nnn, \tl_replace_once:cnn} +% \begin{function}[updated = 2011-08-11] +% {\tl_replace_once:Nnn, \tl_replace_once:cnn} % \begin{syntax} -% \cs{tl_replace_once:Nnn} \meta{tl~var} \Arg{old tokens} -% ~~\Arg{new tokens} +% \cs{tl_replace_once:Nnn} \meta{tl~var} \Arg{old tokens} \Arg{new tokens} % \end{syntax} % Replaces the first (leftmost) occurrence of \meta{old tokens} in the % \meta{tl~var} with \meta{new tokens}. \meta{Old tokens} @@ -278,10 +278,10 @@ % restricted to the current \TeX{} group. % \end{function} % -% \begin{function}{\tl_greplace_once:Nnn, \tl_greplace_once:cnn} +% \begin{function}[updated = 2011-08-11] +% {\tl_greplace_once:Nnn, \tl_greplace_once:cnn} % \begin{syntax} -% \cs{tl_greplace_once:Nnn} \meta{tl~var} \Arg{old tokens} -% ~~\Arg{new tokens} +% \cs{tl_greplace_once:Nnn} \meta{tl~var} \Arg{old tokens} \Arg{new tokens} % \end{syntax} % Replaces the first (leftmost) occurrence of \meta{old tokens} in the % \meta{tl~var} with \meta{new tokens}. \meta{Old tokens} @@ -290,10 +290,10 @@ % applied globally. % \end{function} % -% \begin{function}{\tl_replace_all:Nnn, \tl_replace_all:cnn} +% \begin{function}[updated = 2011-08-11] +% {\tl_replace_all:Nnn, \tl_replace_all:cnn} % \begin{syntax} -% \cs{tl_replace_all:Nnn} \meta{tl~var} \Arg{old tokens} -% ~~\Arg{new tokens} +% \cs{tl_replace_all:Nnn} \meta{tl~var} \Arg{old tokens} \Arg{new tokens} % \end{syntax} % Replaces all occurrences of \meta{old tokens} in the % \meta{tl~var} with \meta{new tokens}. \meta{Old tokens} @@ -305,10 +305,10 @@ % restricted to the current \TeX{} group. % \end{function} % -% \begin{function}{\tl_greplace_all:Nnn, \tl_greplace_all:cnn} +% \begin{function}[updated = 2011-08-11] +% {\tl_greplace_all:Nnn, \tl_greplace_all:cnn} % \begin{syntax} -% \cs{tl_greplace_all:Nnn} \meta{tl~var} \Arg{old tokens} -% ~~\Arg{new tokens} +% \cs{tl_greplace_all:Nnn} \meta{tl~var} \Arg{old tokens} \Arg{new tokens} % \end{syntax} % Replaces all occurrences of \meta{old tokens} in the % \meta{tl~var} with \meta{new tokens}. \meta{Old tokens} @@ -319,7 +319,8 @@ % for an example). The assignment is applied globally. % \end{function} % -% \begin{function}{\tl_remove_once:Nn, \tl_remove_once:cn} +% \begin{function}[updated = 2011-08-11] +% {\tl_remove_once:Nn, \tl_remove_once:cn} % \begin{syntax} % \cs{tl_remove_once:Nn} \meta{tl~var} \Arg{tokens} % \end{syntax} @@ -329,7 +330,8 @@ % restricted to the current \TeX{} group. % \end{function} % -% \begin{function}{\tl_gremove_once:Nn, \tl_gremove_once:cn} +% \begin{function}[updated = 2011-08-11] +% {\tl_gremove_once:Nn, \tl_gremove_once:cn} % \begin{syntax} % \cs{tl_gremove_once:Nn} \meta{tl~var} \Arg{tokens} % \end{syntax} @@ -339,7 +341,8 @@ % applied globally. % \end{function} % -% \begin{function}{\tl_remove_all:Nn, \tl_remove_all:cn} +% \begin{function}[updated = 2011-08-11] +% {\tl_remove_all:Nn, \tl_remove_all:cn} % \begin{syntax} % \cs{tl_remove_all:Nn} \meta{tl~var} \Arg{tokens} % \end{syntax} @@ -356,7 +359,8 @@ % The assignment is restricted to the current \TeX{} group. % \end{function} % -% \begin{function}{\tl_gremove_all:Nn, \tl_gremove_all:cn} +% \begin{function}[updated = 2011-08-11] +% {\tl_gremove_all:Nn, \tl_gremove_all:cn} % \begin{syntax} % \cs{tl_gremove_all:Nn} \meta{tl~var} \Arg{tokens} % \end{syntax} @@ -371,14 +375,13 @@ % % \section{Reassigning token list category codes} % -% \begin{function} +% \begin{function}[updated = 2011-08-11] % { % \tl_set_rescan:Nnn, \tl_set_rescan:Nno, \tl_set_rescan:Nnx, % \tl_set_rescan:cnn, \tl_set_rescan:cno, \tl_set_rescan:cnx, % } % \begin{syntax} -% \cs{tl_set_rescan:Nnn} \meta{tl~var} \Arg{setup} -% ~~\Arg{tokens} +% \cs{tl_set_rescan:Nnn} \meta{tl~var} \Arg{setup} \Arg{tokens} % \end{syntax} % Sets \meta{tl~var} to contain \meta{tokens}, % applying the category code r\'egime specified in the @@ -389,14 +392,13 @@ % \cs{tl_rescan:nn}. % \end{function} % -% \begin{function} +% \begin{function}[updated = 2011-08-11] % { % \tl_gset_rescan:Nnn, \tl_gset_rescan:Nno, \tl_gset_rescan:Nnx, % \tl_gset_rescan:cnn, \tl_gset_rescan:cno, \tl_gset_rescan:cnx, % } % \begin{syntax} -% \cs{tl_gset_rescan:Nnn} \meta{tl~var} \Arg{setup} -% ~~\Arg{tokens} +% \cs{tl_gset_rescan:Nnn} \meta{tl~var} \Arg{setup} \Arg{tokens} % \end{syntax} % Sets \meta{tl~var} to contain \meta{tokens}, % applying the category code r\'egime specified in the @@ -406,7 +408,7 @@ % assignment is global. See also \cs{tl_rescan:nn}. % \end{function} % -% \begin{function}{\tl_rescan:nn} +% \begin{function}[updated = 2011-08-11]{\tl_rescan:nn} % \begin{syntax} % \cs{tl_rescan:nn} \Arg{setup} \Arg{tokens} % \end{syntax} @@ -427,7 +429,7 @@ % unchanged. This process does not alter the category code assigned % to the \meta{tokens}. % \begin{texnote} -% This is the \TeX{} primitive \cs{lowercase} renamed. +% This is the \TeX{} primitive \tn{lowercase} renamed. % As a result, this function takes place on execution and % not on expansion. % \end{texnote} @@ -443,7 +445,7 @@ % unchanged. This process does not alter the category code assigned % to the \meta{tokens}. % \begin{texnote} -% This is the \TeX{} primitive \cs{uppercase} renamed. +% This is the \TeX{} primitive \tn{uppercase} renamed. % As a result, this function takes place on execution and % not on expansion. % \end{texnote} @@ -484,8 +486,7 @@ % {\tl_if_eq:NN, \tl_if_eq:Nc, \tl_if_eq:cN, \tl_if_eq:cc} % \begin{syntax} % \cs{tl_if_eq_p:NN} \Arg{tl var1} \Arg{tl var2} -% \cs{tl_if_eq:NNTF} \Arg{tl var1} \Arg{tl var2} \Arg{true code} -% ~~\Arg{false code} +% \cs{tl_if_eq:NNTF} \Arg{tl var1} \Arg{tl var2} \Arg{true code} \Arg{false code} % \end{syntax} % Compares the content of two \meta{token list variables} and % is logically \texttt{true} if the two contain the same list of @@ -501,8 +502,7 @@ % % \begin{function}[TF]{\tl_if_eq:nn} % \begin{syntax} -% \cs{tl_if_eq:nnTF} \meta{token list1} \Arg{token list2} \Arg{true code} -% ~~\Arg{false code} +% \cs{tl_if_eq:nnTF} \meta{token list1} \Arg{token list2} \Arg{true code} \Arg{false code} % \end{syntax} % Tests if \meta{token list1} and \meta{token list2} are equal, both in % respect of character codes and category codes. @@ -510,8 +510,7 @@ % % \begin{function}[TF]{\tl_if_in:Nn, \tl_if_in:cn} % \begin{syntax} -% \cs{tl_if_in:NnTF} \meta{tl~var} \Arg{token list} \Arg{true code} -% ~~\Arg{false code} +% \cs{tl_if_in:NnTF} \meta{tl~var} \Arg{token list} \Arg{true code} \Arg{false code} % \end{syntax} % Tests if the \meta{token list} is found in the content of the % \meta{token list variable}. The \meta{token list} cannot contain @@ -520,17 +519,17 @@ % \end{function} % % \begin{function}[TF] -% {\tl_if_in:nn, \tl_if_in:Vn, \tl_if_in:on, \tl_if_in:on} +% {\tl_if_in:nn, \tl_if_in:Vn, \tl_if_in:on, \tl_if_in:no} % \begin{syntax} -% \cs{tl_if_in:nnTF} \Arg{token list1} \Arg{token list2} \Arg{true code} -% ~~\Arg{false code} +% \cs{tl_if_in:nnTF} \Arg{token list1} \Arg{token list2} \Arg{true code} \Arg{false code} % \end{syntax} % Tests if <token list2> is found inside <token list1>. % The \meta{token list} cannot contain the tokens |{|, |}| or |#| % (assuming the usual \TeX{} category codes apply). % \end{function} % -% \begin{function}[EXP,pTF]{\tl_if_single:N, \tl_if_single:c} +% \begin{function}[updated = 2011-08-13, EXP,pTF] +% {\tl_if_single:N, \tl_if_single:c} % \begin{syntax} % \cs{tl_if_single_p:N} \Arg{tl~var} % \cs{tl_if_single:NTF} \Arg{tl~var} \Arg{true code} \Arg{false code} @@ -542,11 +541,10 @@ % $1$ according to \cs{tl_length:N}. % \end{function} % -% \begin{function}[EXP,pTF]{\tl_if_single:n} +% \begin{function}[updated = 2011-08-13, EXP,pTF]{\tl_if_single:n} % \begin{syntax} % \cs{tl_if_single_p:n} \Arg{token list} -% \cs{tl_if_single:nTF} \Arg{token list} -% ~~\Arg{true code} \Arg{false code} +% \cs{tl_if_single:nTF} \Arg{token list} \Arg{true code} \Arg{false code} % \end{syntax} % Tests if the token list has exactly one item, \emph{i.e.}~is either % a single normal token or a single brace group, surrounded by @@ -554,11 +552,10 @@ % has length $1$ according to \cs{tl_length:n}. % \end{function} % -% \begin{function}[EXP,pTF]{\tl_if_single_token:n} +% \begin{function}[added = 2011-08-11,EXP,pTF]{\tl_if_single_token:n} % \begin{syntax} % \cs{tl_if_single_token_p:n} \Arg{token list} -% \cs{tl_if_single_token:nTF} \Arg{token list} -% ~~\Arg{true code} \Arg{false code} +% \cs{tl_if_single_token:nTF} \Arg{token list} \Arg{true code} \Arg{false code} % \end{syntax} % Tests if the token list consists of exactly one token, \emph{i.e.}~is % either a single space character or a single \enquote{normal} token. @@ -567,7 +564,7 @@ % % \section{Mapping to token lists} % -% \begin{function}[EXP]{\tl_map_function:NN, \tl_map_function:cN} +% \begin{function}[rEXP]{\tl_map_function:NN, \tl_map_function:cN} % \begin{syntax} % \cs{tl_map_function:NN} \meta{tl~var} \meta{function} % \end{syntax} @@ -578,7 +575,7 @@ % \texttt{n}-type arguments. See also \cs{tl_map_function:nN}. % \end{function} % -% \begin{function}[EXP]{\tl_map_function:nN} +% \begin{function}[rEXP]{\tl_map_function:nN} % \begin{syntax} % \cs{tl_map_function:nN} \meta{token list} \meta{function} % \end{syntax} @@ -631,7 +628,7 @@ % \cs{tl_map_inline:nn}. % \end{function} % -% \begin{function}[EXP]{\tl_map_break:} +% \begin{function}[rEXP]{\tl_map_break:} % \begin{syntax} % \cs{tl_map_break:} % \end{syntax} @@ -674,7 +671,7 @@ % in the input stream. Note that this function requires only a single % expansion. % \begin{texnote} -% This is the \eTeX{} primitive \cs{detokenize}. +% This is the \eTeX{} primitive \tn{detokenize}. % \end{texnote} % \end{function} % @@ -690,7 +687,7 @@ % % \section{Working with the content of token lists} % -% \begin{function}[EXP] +% \begin{function}[updated = 2011-08-13, EXP] % {\tl_length:n, \tl_length:V, \tl_length:o} % \begin{syntax} % \cs{tl_length:n} \Arg{tokens} @@ -703,7 +700,7 @@ % giving an \meta{integer denotation}. % \end{function} % -% \begin{function}[EXP]{\tl_length:N, \tl_length:c} +% \begin{function}[updated = 2011-08-13, EXP]{\tl_length:N, \tl_length:c} % \begin{syntax} % \cs{tl_length:N} \Arg{tl~var} % \end{syntax} @@ -715,7 +712,8 @@ % giving an \meta{integer denotation}. % \end{function} % -% \begin{function}[EXP]{\tl_reverse:n, \tl_reverse:V, \tl_reverse:o} +% \begin{function}[updated = 2011-08-13, EXP] +% {\tl_reverse:n, \tl_reverse:V, \tl_reverse:o} % \begin{syntax} % \cs{tl_reverse:n} \Arg{token list} % \end{syntax} @@ -730,7 +728,7 @@ % See also \cs{tl_reverse:N}. % \end{function} % -% \begin{function}{\tl_reverse:N, \tl_reverse:c} +% \begin{function}[updated = 2011-08-13]{\tl_reverse:N, \tl_reverse:c} % \begin{syntax} % \cs{tl_reverse:N} \Arg{tl~var} % \end{syntax} @@ -744,7 +742,7 @@ % \TeX{} group. See also \cs{tl_reverse:n}. % \end{function} % -% \begin{function}[EXP]{\tl_reverse_items:n} +% \begin{function}[added = 2011-08-13, EXP]{\tl_reverse_items:n} % \begin{syntax} % \cs{tl_reverse_items:n} \Arg{token list} % \end{syntax} @@ -759,7 +757,8 @@ % consider \cs{tl_reverse:n} or \cs{tl_reverse_tokens:n}. % \end{function} % -% \begin{function}[EXP]{\tl_trim_spaces:n} +% \begin{function}[added = 2011-07-09, updated = 2011-08-13, EXP] +% {\tl_trim_spaces:n} % \begin{syntax} % \cs{tl_trim_spaces:n} \meta{token list} % \end{syntax} @@ -767,22 +766,22 @@ % from the \meta{token list} and leaves the result in the input % stream. This process requires two expansions. % \begin{texnote} -% The result is return within the \cs{etex_unexpanded:D} +% The result is return within the \tn{unexpanded} % primitive (\cs{exp_not:n}), which means that the token % list will not expand further when appearing in an x-type % argument expansion. % \end{texnote} % \end{function} % -% \begin{function}{\tl_trim_spaces:N, \tl_trim_spaces:c} +% \begin{function}[added = 2011-07-09]{\tl_trim_spaces:N, \tl_trim_spaces:c} % \begin{syntax} % \cs{tl_trim_spaces:N} \meta{tl~var} % \end{syntax} % Removes any leading and trailing explicit space characters % from the content of the \meta{tl~var} within the current \TeX{} group. % \end{function} -% -% \begin{function}{\tl_gtrim_spaces:N, \tl_gtrim_spaces:c} +% +% \begin{function}[added = 2011-07-09]{\tl_gtrim_spaces:N, \tl_gtrim_spaces:c} % \begin{syntax} % \cs{tl_gtrim_spaces:N} \meta{tl~var} % \end{syntax} @@ -795,7 +794,8 @@ % Functions which deal with either only the very first token of a % token list or everything except the first token. % -% \begin{function}[EXP]{\tl_head:n, \tl_head:V, \tl_head:v, \tl_head:f} +% \begin{function}[updated = 2011-08-09, EXP] +% {\tl_head:n, \tl_head:V, \tl_head:v, \tl_head:f} % \begin{syntax} % \cs{tl_head:n} \Arg{tokens} % \end{syntax} @@ -829,7 +829,8 @@ % is not critical. % \end{function} % -% \begin{function}[EXP]{\tl_tail:n, \tl_tail:V, \tl_tail:v, \tl_tail:f} +% \begin{function}[updated = 2011-08-09, EXP] +% {\tl_tail:n, \tl_tail:V, \tl_tail:v, \tl_tail:f} % \begin{syntax} % \cs{tl_tail:n} \Arg{tokens} % \end{syntax} @@ -865,7 +866,7 @@ % is not critical. % \end{function} % -% \begin{function}[EXP]{\str_head:n,\str_tail:n} +% \begin{function}[added = 2011-08-10, EXP]{\str_head:n,\str_tail:n} % \begin{syntax} % \cs{str_head:n} \Arg{tokens} % \cs{str_tail:n} \Arg{tokens} @@ -879,7 +880,7 @@ % nothing is left in the input stream. % \end{function} % -% \begin{function}[EXP,pTF]{\tl_if_head_eq_catcode:nN} +% \begin{function}[updated = 2011-08-10, EXP,pTF]{\tl_if_head_eq_catcode:nN} % \begin{syntax} % \cs{tl_if_head_eq_catcode_p:nN} \Arg{token list} \meta{test token} % \cs{tl_if_head_eq_catcode:nNTF} \Arg{token list} \meta{test token} @@ -891,7 +892,7 @@ % and the test will be true if \meta{test token} is a control sequence. % \end{function} % -% \begin{function}[EXP,pTF] +% \begin{function}[updated = 2011-08-10, EXP,pTF] % {\tl_if_head_eq_charcode:nN, \tl_if_head_eq_charcode:fN} % \begin{syntax} % \cs{tl_if_head_eq_charcode_p:nN} \Arg{token list} \meta{test token} @@ -904,7 +905,7 @@ % and the test will be true if \meta{test token} is a control sequence. % \end{function} % -% \begin{function}[EXP,pTF]{\tl_if_head_eq_meaning:nN} +% \begin{function}[updated = 2011-08-10, EXP,pTF]{\tl_if_head_eq_meaning:nN} % \begin{syntax} % \cs{tl_if_head_eq_meaning_p:nN} \Arg{token list} \meta{test token} % \cs{tl_if_head_eq_meaning:nNTF} \Arg{token list} \meta{test token} @@ -915,12 +916,11 @@ % is empty, its head is considered to be \cs{q_nil}, and the test will % be true if \meta{test token} has the same meaning as \cs{q_nil}. % \end{function} -% -% \begin{function}[EXP,pTF,int]{\tl_if_head_group:n} +% +% \begin{function}[updated = 2011-08-11, EXP,pTF]{\tl_if_head_group:n} % \begin{syntax} % \cs{tl_if_head_group_p:n} \Arg{token list} -% \cs{tl_if_head_group:nTF} \Arg{token list} -% ~~\Arg{true code} \Arg{false code} +% \cs{tl_if_head_group:nTF} \Arg{token list} \Arg{true code} \Arg{false code} % \end{syntax} % Tests if the first \meta{token} in the \meta{token list} % is an explicit begin-group character (with category code~1 @@ -932,11 +932,10 @@ % a token by token basis. % \end{function} % -% \begin{function}[EXP,pTF,int]{\tl_if_head_N_type:n} +% \begin{function}[added = 2011-08-11,EXP,pTF]{\tl_if_head_N_type:n} % \begin{syntax} % \cs{tl_if_head_N_type_p:n} \Arg{token list} -% \cs{tl_if_head_N_type:nTF} \Arg{token list} -% ~~\Arg{true code} \Arg{false code} +% \cs{tl_if_head_N_type:nTF} \Arg{token list} \Arg{true code} \Arg{false code} % \end{syntax} % Tests if the first \meta{token} in the \meta{token list} % is a normal \texttt{N}-type argument. In other words, @@ -949,11 +948,10 @@ % a token by token basis. % \end{function} % -% \begin{function}[EXP,pTF,int]{\tl_if_head_space:n} +% \begin{function}[updated = 2011-08-11,EXP,pTF]{\tl_if_head_space:n} % \begin{syntax} % \cs{tl_if_head_space_p:n} \Arg{token list} -% \cs{tl_if_head_space:nTF} \Arg{token list} -% ~~\Arg{true code} \Arg{false code} +% \cs{tl_if_head_space:nTF} \Arg{token list} \Arg{true code} \Arg{false code} % \end{syntax} %^^A We need to add a discussion of %^^A explicit vs implicit tokens somewhere in the doc. @@ -969,7 +967,7 @@ % first time, it is converted to an explicit space token, with % character code $32$, regardless of the initial character code. % \enquote{Funny} spaces with a different category code, can be produced -% using \cs{tex_lowercase:D}. Explicit spaces are also produced +% using \tn{lowercase}. Explicit spaces are also produced % as a result of \cs{token_to_str:N}, \cs{tl_to_str:n}, etc. % \end{texnote} % \end{function} @@ -982,7 +980,7 @@ % \end{syntax} % Displays the content of the \meta{tl~var} on the terminal. % \begin{texnote} -% \cs{tl_show:N} is the \TeX{} primitive \cs{show}. +% \cs{tl_show:N} is the \TeX{} primitive \tn{show}. % \end{texnote} % \end{function} % @@ -992,16 +990,16 @@ % \end{syntax} % Displays the \meta{token list} on the terminal. % \begin{texnote} -% \cs{tl_show:n} is the \eTeX{} primitive \cs{showtokens}. +% \cs{tl_show:n} is the \eTeX{} primitive \tn{showtokens}. % \end{texnote} % \end{function} % % \section{Constant token lists} % -% \begin{variable}{\c_job_name_tl} +% \begin{variable}[updated = 2011-08-18]{\c_job_name_tl} % Constant that gets the \enquote{job name} assigned when \TeX{} starts. % \begin{texnote} -% This is the new name for the primitive \cs{jobname}. It is a constant +% This is the new name for the primitive \tn{jobname}. It is a constant % that is set by \TeX{} and should not be overwritten by the package. % \end{texnote} % \end{variable} @@ -1033,7 +1031,7 @@ % % \section{Experimental token list functions} % -% \begin{function}[EXP]{\tl_reverse_tokens:n} +% \begin{function}[added = 2011-08-11, EXP]{\tl_reverse_tokens:n} % \begin{syntax} % \cs{tl_reverse_tokens:n} \Arg{tokens} % \end{syntax} @@ -1047,19 +1045,20 @@ % two steps of expansion. % \end{function} % -% \begin{function}[EXP]{\tl_length_tokens:n} +% \begin{function}[added = 2011-08-11, EXP]{\tl_length_tokens:n} % \begin{syntax} % \cs{tl_length_tokens:n} \Arg{tokens} % \end{syntax} % Counts the number of \TeX{} tokens in the \meta{tokens} and leaves % this information in the input stream. Every token, including spaces and % braces, contributes one to the total; thus for instance, the length of -% |a~{bc}| is $6$. +% |a~{bc}| is $6$. % This function requires three expansions, % giving an \meta{integer denotation}. % \end{function} % -% \begin{function}[EXP]{\tl_expandable_uppercase:n,\tl_expandable_lowercase:n} +% \begin{function}[added = 2011-08-13, EXP] +% {\tl_expandable_uppercase:n,\tl_expandable_lowercase:n} % \begin{syntax} % \cs{tl_expandable_uppercase:n} \Arg{tokens} % \cs{tl_expandable_lowercase:n} \Arg{tokens} @@ -1076,9 +1075,9 @@ % |{| and |}|, respectively. % \end{texnote} % \end{function} -% +% % \section{Internal functions} -% +% % \begin{variable}{\q_tl_act_mark,\q_tl_act_stop} % Quarks which are only used for the particular purposes of % \cs{tl_act_...} functions. @@ -1103,7 +1102,7 @@ % \end{macrocode} % % A token list variable is a \TeX{} macro that holds tokens. By using the -% \eTeX{} primitive \cs{unexpanded} inside a \TeX{} \cs{edef} it is +% \eTeX{} primitive \tn{unexpanded} inside a \TeX{} \tn{edef} it is % possible to store any tokens, including |#|, in this way. % % \subsection{Functions} @@ -1348,7 +1347,7 @@ % \begin{macro}[aux]{\tl_set_rescan_aux:NNnn} % \begin{macro}[aux]{\tl_rescan_aux:w} % The idea here is to deal cleanly with the problem that -% \cs{tex_scantokens:D} treats the argument as a file, and without +% \tn{scantokens} treats the argument as a file, and without % the correct settings a \TeX{} error occurs: % \begin{verbatim} % ! File ended while scanning definition of ... @@ -1359,8 +1358,8 @@ % within the token list which is scanned: two |@| symbols with different % category codes. The rescanned token list cannot contain the end marker, % because all |@| present in the token list are read with the same category -% code. As every character with charcode \cs{tex_newlinechar:D} is replaced -% by the \cs{tex_endlinechar:D}, and an extra \cs{tex_endlinechar:D} is +% code. As every character with charcode \tn{newlinechar} is replaced +% by the \tn{endlinechar}, and an extra \tn{endlinechar} is % added at the end, we need to set both of those to $-1$, % \enquote{unprintable}. % \begin{macrocode} @@ -1400,7 +1399,7 @@ % \begin{macro}{\tl_set_rescan:Nnx, \tl_set_rescan:cnx} % \begin{macro}{\tl_gset_rescan:Nnx, \tl_gset_rescan:cnx} % \begin{macro}[aux]{\tl_set_rescan_aux:NNnx} -% With \texttt{x}-type expansion the \cs{tex_everyoef:D} method +% With \texttt{x}-type expansion the \tn{everyeof} method % does apply and the code is simple. % \begin{macrocode} \cs_new_protected_nopar:Npn \tl_set_rescan:Nnx @@ -1512,7 +1511,7 @@ { \tl_if_empty:nTF {#4} { - \msg_kernel_error:nnx { tl } { empty-search-pattern } + \msg_kernel_error:nnx { tl } { empty-search-pattern } { \tl_to_str:n {#5} } } { @@ -1608,7 +1607,7 @@ % argument for \cs{use_none:n}. The similar construction % \cs{exp_after:wN} \cs{use_none:n} \cs{tl_to_str:n} \Arg{token list} |?| % would fail if the token list contains the control sequence \cs{ }, -% while \cs{tex_escapechar:D} is a space or is unprintable. +% while \tn{escapechar} is a space or is unprintable. % \begin{macrocode} \prg_new_conditional:Npnn \tl_if_blank:n #1 { p , T , F , TF } { \tl_if_empty_return:o { \use_none:n #1 ? } } @@ -1775,15 +1774,9 @@ \tl_if_empty:oTF { \tl_tmp:w #1 {} {} #2 } { \prg_return_false: } { \prg_return_true: } } -\cs_generate_variant:Nn \tl_if_in:nnT { V } -\cs_generate_variant:Nn \tl_if_in:nnF { V } -\cs_generate_variant:Nn \tl_if_in:nnTF { V } -\cs_generate_variant:Nn \tl_if_in:nnT { o } -\cs_generate_variant:Nn \tl_if_in:nnF { o } -\cs_generate_variant:Nn \tl_if_in:nnTF { o } -\cs_generate_variant:Nn \tl_if_in:nnT { no } -\cs_generate_variant:Nn \tl_if_in:nnF { no } -\cs_generate_variant:Nn \tl_if_in:nnTF { no } +\cs_generate_variant:Nn \tl_if_in:nnT { V , o , no } +\cs_generate_variant:Nn \tl_if_in:nnF { V , o , no } +\cs_generate_variant:Nn \tl_if_in:nnTF { V , o , no } % \end{macrocode} % \end{macro} % @@ -1987,9 +1980,12 @@ % trailing spaces. The end is reached when \verb*+ + \cs{q_nil} % matches the one present in the definition of \cs{tl_trim_spacs:n}. % Then \cs{tl_trim_spaces_aux_iv:w} puts the token list into a group, -% as the argument of the initial \cs{etex_unexpanded:D}. -% The \cs{etex_unexpanded:D} here is used so that space trimming will +% as the argument of the initial \tn{unexpanded}. +% The \tn{unexpanded} here is used so that space trimming will % behave correctly within an \texttt{x}-type expansion. +% +% Some of the auxiliaries used in this code are also used +% in the \pkg{l3clist} module. Change with care. % \begin{macrocode} \cs_set:Npn \tl_tmp:w #1 { @@ -2170,7 +2166,7 @@ \else: \prg_return_false: \fi: - } + } % \end{macrocode} % For \cs{tl_if_head_eq_meaning:nN}, again, detect special cases. % In the normal case, use \cs{tl_head:w}, with no \cs{exp_not:N} @@ -2446,7 +2442,7 @@ % \begin{macro}[EXP,aux]{\tl_act_loop:w,\tl_act_normal:NwnNNN, % \tl_act_group:nwnNNN,\tl_act_space:wwnNNN,\tl_act_end:w} % To help control the expansion, \cs{tl_act:NNNnn} starts with -% \cs{tex_romannumeral:D} and ends by producing \cs{c_zero} +% \tn{romannumeral} and ends by producing \cs{c_zero} % once the result has been obtained. Then loop over tokens, % groups, and spaces in |#5|. The marker \cs{q_tl_act_mark} % is used both to avoid losing outer braces and to detect the @@ -2465,7 +2461,7 @@ % accordingly. In the \enquote{normal} case, we may have % reached \cs{q_tl_act_mark}, the end of the list. Then % leave \cs{c_zero} and the result in the input stream, -% to terminate the expansion of \cs{tex_romannumeral:D}. +% to terminate the expansion of \tn{romannumeral}. % Otherwise, apply the relevant function to the % \enquote{arguments}, |#3| % and to the head of the token list. Then repeat the loop. @@ -2594,7 +2590,7 @@ % % \begin{macro}{\tl_reverse:N, \tl_reverse:c} % This reverses the list, leaving |{}| in front, which in turn -% is removed by the \cs{etex_unexpanded:D} primitive. +% is removed by the \tn{unexpanded} primitive. % \begin{macrocode} \cs_new_protected_nopar:Npn \tl_reverse:N #1 { \tl_set:No #1 { \etex_unexpanded:D \tl_reverse:o { #1 { } } } } @@ -2661,7 +2657,7 @@ % tests, and converted if necessary to upper/lowercase, % before being output. For a group, we must perform the % conversion within the group (the \cs{exp_after:wN} trigger -% \cs{tex_romannumeral:D}, which expands fully to give the +% \tn{romannumeral}, which expands fully to give the % converted group), then output. % \begin{macrocode} \cs_new:Npn \tl_expandable_uppercase:n @@ -2698,6 +2694,7 @@ % \begin{macro}{\tl_new:Nn, \tl_new:cn, \tl_new:Nx} % Use either \cs{tl_const:Nn} or \cs{tl_new:N}. % \begin{macrocode} +%<*deprecated> \cs_new_protected:Npn \tl_new:Nn #1#2 { \tl_new:N #1 @@ -2705,6 +2702,7 @@ } \cs_generate_variant:Nn \tl_new:Nn { c } \cs_generate_variant:Nn \tl_new:Nn { Nx } +%</deprecated> % \end{macrocode} % \end{macro} % @@ -2712,10 +2710,12 @@ % \begin{macro}{\tl_set:Nc} % This was useful once, but nowadays does not make much sense. % \begin{macrocode} +%<*deprecated> \cs_new_protected_nopar:Npn \tl_gset:Nc - { \pref_global:D \tl_set:Nc } + { \tex_global:D \tl_set:Nc } \cs_new_protected_nopar:Npn \tl_set:Nc #1#2 { \tl_set:No #1 { \cs:w #2 \cs_end: } } +%</deprecated> % \end{macrocode} % \end{macro} % \end{macro} @@ -2726,6 +2726,7 @@ % \begin{macro}{\tl_greplace_all_in:Nnn, \tl_greplace_all_in:cnn} % These are renamed. % \begin{macrocode} +%<*deprecated> \cs_new_eq:NN \tl_replace_in:Nnn \tl_replace_once:Nnn \cs_new_eq:NN \tl_replace_in:cnn \tl_replace_once:cnn \cs_new_eq:NN \tl_greplace_in:Nnn \tl_greplace_once:Nnn @@ -2734,6 +2735,7 @@ \cs_new_eq:NN \tl_replace_all_in:cnn \tl_replace_all:cnn \cs_new_eq:NN \tl_greplace_all_in:Nnn \tl_greplace_all:Nnn \cs_new_eq:NN \tl_greplace_all_in:cnn \tl_greplace_all:cnn +%</deprecated> % \end{macrocode} % \end{macro} % \end{macro} @@ -2746,6 +2748,7 @@ % \begin{macro}{\tl_gremove_all_in:Nn, \tl_gremove_all_in:cn} % Also renamed. % \begin{macrocode} +%<*deprecated> \cs_new_eq:NN \tl_remove_in:Nn \tl_remove_once:Nn \cs_new_eq:NN \tl_remove_in:cn \tl_remove_once:cn \cs_new_eq:NN \tl_gremove_in:Nn \tl_gremove_once:Nn @@ -2754,6 +2757,7 @@ \cs_new_eq:NN \tl_remove_all_in:cn \tl_remove_all:cn \cs_new_eq:NN \tl_gremove_all_in:Nn \tl_gremove_all:Nn \cs_new_eq:NN \tl_gremove_all_in:cn \tl_gremove_all:cn +%</deprecated> % \end{macrocode} % \end{macro} % \end{macro} @@ -2764,11 +2768,13 @@ % \begin{macro}{\tl_elt_count:N, \tl_elt_count:c} % Another renaming job. % \begin{macrocode} +%<*deprecated> \cs_new_eq:NN \tl_elt_count:n \tl_length:n \cs_new_eq:NN \tl_elt_count:V \tl_length:V \cs_new_eq:NN \tl_elt_count:o \tl_length:o \cs_new_eq:NN \tl_elt_count:N \tl_length:N \cs_new_eq:NN \tl_elt_count:c \tl_length:c +%</deprecated> % \end{macrocode} % \end{macro} % \end{macro} @@ -2780,11 +2786,13 @@ % \begin{macro}{\tl_head_iii:w} % Two renames, and a few that are rather too specialised. % \begin{macrocode} +%<*deprecated> \cs_new_eq:NN \tl_head_i:n \tl_head:n \cs_new_eq:NN \tl_head_i:w \tl_head:w \cs_new:Npn \tl_head_iii:n #1 { \tl_head_iii:w #1 \q_stop } \cs_generate_variant:Nn \tl_head_iii:n { f } \cs_new:Npn \tl_head_iii:w #1#2#3#4 \q_stop {#1#2#3} +%</deprecated> % \end{macrocode} % \end{macro} % \end{macro} |