summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/l3kernel
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2015-07-24 21:33:14 +0000
committerKarl Berry <karl@freefriends.org>2015-07-24 21:33:14 +0000
commit4659d41ea5da1bb6a6cde1a4d1cdabd339c6a053 (patch)
tree67f5f637dae41d69727f3c018a3ac832ccf16c02 /Master/texmf-dist/source/latex/l3kernel
parent45753dabbb93091efcea2a70996bcbdc51a39761 (diff)
l3
git-svn-id: svn://tug.org/texlive/trunk@37947 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/l3kernel')
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/expl3.dtx4
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3.ins3
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx41
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3format.ins3
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3fp.dtx5
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3int.dtx9
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3keys.dtx272
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3luatex.dtx214
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3names.dtx1317
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3prg.dtx4
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3quark.dtx18
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3skip.dtx11
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3str.dtx15
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3tl.dtx12
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3unicode-data.dtx78
15 files changed, 1372 insertions, 634 deletions
diff --git a/Master/texmf-dist/source/latex/l3kernel/expl3.dtx b/Master/texmf-dist/source/latex/l3kernel/expl3.dtx
index 3c0a4035cd8..096973bc23c 100644
--- a/Master/texmf-dist/source/latex/l3kernel/expl3.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/expl3.dtx
@@ -36,8 +36,8 @@
%<*driver|generic|package>
\def\ExplFileName{expl3}
\def\ExplFileDescription{L3 programming layer}
-\def\ExplFileDate{2015/06/15}
-\def\ExplFileVersion{5630}
+\def\ExplFileDate{2015/07/15}
+\def\ExplFileVersion{5666}
%</driver|generic|package>
%<*driver>
\documentclass[full]{l3doc}
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3.ins b/Master/texmf-dist/source/latex/l3kernel/l3.ins
index 1c1bc9ce336..ac8b3aa7b9d 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3.ins
+++ b/Master/texmf-dist/source/latex/l3kernel/l3.ins
@@ -1,6 +1,6 @@
\iffalse meta-comment
-File l3.ins Copyright (C) 2011,2012,2014 The LaTeX3 Project
+File l3.ins Copyright (C) 2011,2012,2014,2015 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
@@ -76,6 +76,7 @@ Do not distribute a modified version of this file.
\from{l3coffins.dtx} {package}
\from{l3color.dtx} {package}
\from{l3candidates.dtx} {package}
+ \from{l3luatex.dtx} {package}
}
}
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx b/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx
index f15f704a2c9..66f51af2d2a 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx
@@ -145,7 +145,7 @@
% \end{macro}
% \end{macro}
% \end{macro}
-\GetIdInfo$Id: l3bootstrap.dtx 5608 2015-05-20 15:29:10Z joseph $
+\GetIdInfo$Id: l3bootstrap.dtx 5634 2015-06-24 14:51:22Z joseph $
{L3 Bootstrap code}
%</driver|package>
%<*driver>
@@ -291,11 +291,40 @@
\begingroup\expandafter\expandafter\expandafter\endgroup
\expandafter\ifx\csname directlua\endcsname\relax
\else
- \directlua{tex.enableprimitives ('', tex.extraprimitives ( ))}
+ \directlua{tex.enableprimitives("", tex.extraprimitives())}
\fi
%</initex>
% \end{macrocode}
%
+% Depending on the versions available, the \LaTeX{} format may not have
+% the raw |\Umath| primitive names available. We fix that globally:
+% it should cause no issues. Older \LuaTeX{} versions do not have
+% a pre-built table of the primitive names here so sort one out
+% ourselves. These end up globally-defined but at that is true with
+% a newer format anyway and as they all start |\U| this should be
+% reasonably safe.
+% \begin{macrocode}
+%<*package>
+\begingroup
+ \expandafter\ifx\csname directlua\endcsname\relax
+ \else
+ \directlua{%
+ local i
+ local t = { }
+ for _,i in pairs(tex.extraprimitives("luatex")) do
+ if string.match(i,"^U") then
+ if not string.match(i,"^Uchar$") then
+ table.insert(t,i)
+ end
+ end
+ end
+ tex.enableprimitives("", t)
+ }%
+ \fi
+\endgroup
+%</package>
+% \end{macrocode}
+%
% \subsection{The \tn{pdfstrcmp} primitive with \XeTeX{} and \LuaTeX{}}
%
% Only \pdfTeX{} has a primitive called \tn{pdfstrcmp}. The \XeTeX{}
@@ -334,13 +363,13 @@
\def\tempa
{%
l3kernel = l3kernel or { }
- function l3kernel.strcmp (A, B)
+ function l3kernel.strcmp(A, B)
if A == B then
- tex.write ("0")
+ tex.write("0")
elseif A < B then
- tex.write ("-1")
+ tex.write("-1")
else
- tex.write ("1")
+ tex.write("1")
end
end
}
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3format.ins b/Master/texmf-dist/source/latex/l3kernel/l3format.ins
index 5c02a99ac6a..92825d5b08a 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3format.ins
+++ b/Master/texmf-dist/source/latex/l3kernel/l3format.ins
@@ -1,6 +1,6 @@
\iffalse meta-comment
-File l3format.ins Copyright (C) 2011,2012,2014 The LaTeX3 Project
+File l3format.ins Copyright (C) 2011,2012,2014,2015 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
@@ -76,6 +76,7 @@ Do not distribute a modified version of this file.
\from{l3coffins.dtx} {initex}
\from{l3color.dtx} {initex}
\from{l3candidates.dtx} {initex}
+ \from{l3luatex.dtx} {initex}
% ======== FORMAT ONLY =========
\from{l3final.dtx} {initex}
% ==============================
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp.dtx
index d8dd82e49ba..11904a346c9 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3fp.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3fp.dtx
@@ -38,7 +38,7 @@
\documentclass[full]{l3doc}
%</driver>
%<*driver|package>
-\GetIdInfo$Id: l3fp.dtx 5336 2014-08-22 10:26:35Z bruno $
+\GetIdInfo$Id: l3fp.dtx 5652 2015-07-09 13:11:22Z joseph $
{L3 Floating points}
%</driver|package>
%<*driver>
@@ -115,7 +115,8 @@
% \item Extrema: $\max(x,y,\ldots)$, $\min(x,y,\ldots)$,
% $\operatorname{abs}(x)$.
% \item Rounding functions: $\operatorname{round}(x,n)$ rounds to
-% closest, $\operatorname{trunc}(x,n)$ rounds towards zero,
+% closest value (with ties rounding to even values),
+% $\operatorname{trunc}(x,n)$ rounds towards zero,
% $\operatorname{floor}(x,n)$ rounds towards~$-\infty$,
% $\operatorname{ceil}(x,n)$ rounds towards~$+\infty$. And
% \emph{(not yet)} modulo, and \enquote{quantize}.
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3int.dtx b/Master/texmf-dist/source/latex/l3kernel/l3int.dtx
index 9acee10a2da..7ea0628b831 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3int.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3int.dtx
@@ -37,7 +37,7 @@
\documentclass[full]{l3doc}
%</driver>
%<*driver|package>
-\GetIdInfo$Id: l3int.dtx 5529 2015-02-21 16:17:50Z joseph $
+\GetIdInfo$Id: l3int.dtx 5659 2015-07-14 18:58:00Z joseph $
{L3 Integers}
%</driver|package>
%<*driver>
@@ -2430,13 +2430,6 @@
%
% \subsection{Deprecated functions}
%
-% \begin{macro}{\int_case:nnn}
-% Deprecated 2013-07-15.
-% \begin{macrocode}
-\cs_new_eq:NN \int_case:nnn \int_case:nnF
-% \end{macrocode}
-% \end{macro}
-%
% \begin{macro}{\int_to_binary:n, \int_from_binary:n}
% \begin{macro}{\int_to_hexadecimal:n, \int_from_hexadecimal:n}
% \begin{macro}{\int_to_octal:n, \int_from_octal:n}
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx b/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx
index 8797006f6b4..e5770e48c2b 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx
@@ -37,7 +37,7 @@
\documentclass[full]{l3doc}
%</driver>
%<*driver|package>
-\GetIdInfo$Id: l3keys.dtx 5629 2015-06-14 08:38:04Z joseph $
+\GetIdInfo$Id: l3keys.dtx 5665 2015-07-15 06:13:22Z joseph $
{L3 Key-value interfaces}
%</driver|package>
%<*driver>
@@ -171,6 +171,28 @@
% discussion, each property is illustrated attached to an
% arbitrary \meta{key}, which when used may be supplied with a
% \meta{value}. All key \emph{definitions} are local.
+%
+% Key properties are applied in the reading order and so the ordering
+% is significant. Key properties which define \enquote{actions}, such
+% as |.code:n|, |.tl_set:N|, \emph{etc.}, will override one another.
+% Some other properties are mutually exclusive, notably |.value_required:n|
+% and |.value_forbidden:n|, and so will replace one another. However,
+% properties covering non-exclusive behaviours may be given in any order. Thus
+% for example the following defintions are equivalent.
+% \begin{verbatim}
+% \keys_define:nn { mymodule }
+% {
+% keyname .code:n = Some~code~using~#1,
+% keyname .value_required:n = true
+% }
+% \keys_define:nn { mymodule }
+% {
+% keyname .value_required:n = true,
+% keyname .code:n = Some~code~using~#1
+% }
+% \end{verbatim}
+% Note that with the exception of the special |.undefine:| property, all
+% key properties will define the key within the current \TeX{} scope.
%
% \begin{function}[updated = 2013-07-08]
% {.bool_set:N, .bool_set:c, .bool_gset:N, .bool_gset:c}
@@ -220,7 +242,7 @@
% Choices are discussed in detail in section~\ref{sec:l3keys:choice}.
% \end{function}
%
-% \begin{function}[added=2011-09-11]
+% \begin{function}[added = 2011-09-11]
% {.clist_set:N, .clist_set:c, .clist_gset:N, .clist_gset:c}
% \begin{syntax}
% \meta{key} .clist_set:N = \meta{comma list variable}
@@ -263,6 +285,10 @@
% key = , % Prints 'Hello '
% }
% \end{verbatim}
+% The default does not affect keys where values are required or
+% forbidden. Thus a required value cannot be supplied by a default
+% value, and giving a default value for a key which cannot take a value
+% will not trigger an error.
% \end{function}
%
% \begin{function}{.dim_set:N, .dim_set:c, .dim_gset:N, .dim_gset:c}
@@ -385,20 +411,29 @@
% it will be created globally at the point that the key is set up.
% \end{function}
%
-% \begin{function}{.value_forbidden:}
+% \begin{function}[added = 2015-07-14]{.undefine:}
% \begin{syntax}
-% \meta{key} .value_forbidden:
+% \meta{key} .undefine:
+% \end{syntax}
+% Removes the definition of the \meta{key} within the current scope.
+% \end{function}
+%
+% \begin{function}[added = 2015-07-14]{.value_forbidden:n}
+% \begin{syntax}
+% \meta{key} .value_forbidden:n = \texttt{true\string|false}
% \end{syntax}
% Specifies that \meta{key} cannot receive a \meta{value} when used.
-% If a \meta{value} is given then an error will be issued.
+% If a \meta{value} is given then an error will be issued. Setting
+% the property \texttt{false} will cancel the restriction.
% \end{function}
%
-% \begin{function}{.value_required:}
+% \begin{function}[added = 2015-07-14]{.value_required:n}
% \begin{syntax}
-% \meta{key} .value_required:
+% \meta{key} .value_required:n = \texttt{true\string|false}
% \end{syntax}
% Specifies that \meta{key} must receive a \meta{value} when used.
-% If a \meta{value} is not given then an error will be issued.
+% If a \meta{value} is not given then an error will be issued. Setting
+% the property \texttt{false} will cancel the restriction.
% \end{function}
%
% \section{Sub-dividing keys}
@@ -575,7 +610,8 @@
% later.
% \end{function}
%
-% \begin{variable}{\l_keys_key_tl, \l_keys_path_tl, \l_keys_value_tl}
+% \begin{variable}[updated = 2015-07-14]
+% {\l_keys_key_tl, \l_keys_path_tl, \l_keys_value_tl}
% For each key processed, information of the full \emph{path} of the
% key, the \emph{name} of the key and the \emph{value} of the key is
% available within three token list variables. These may be used within
@@ -590,19 +626,19 @@
% thus for example
% \begin{verbatim}
% \keys_set:nn { mymodule } { key-a = some-value }
-% \end{verbatim}
-% has path \texttt{mymodule/key-a} while
+% \end{verbatim}
+% has path \texttt{mymodule/key-a} while
% \begin{verbatim}
% \keys_set:nn { mymodule } { subset / key-a = some-value }
-% \end{verbatim}
-% has path \texttt{mymodule/subset/key-a}. This information is stored in
-% \cs{l_keys_path_tl}, and will have been processed by \cs{tl_to_str:n}.
-%
-% The \emph{name} of the key is the part of the path after the last
-% \texttt{/}, and thus is not unique. In the preceding examples, both keys
-% have name \texttt{key-a} despite having different paths. This information
-% is stored in \cs{l_keys_key_tl}, and will have been processed by
-% \cs{tl_to_str:n}.
+% \end{verbatim}
+% has path \texttt{mymodule/subset/key-a}. This information is stored in
+% \cs{l_keys_path_tl}, and will have been processed by \cs{tl_to_str:n}.
+%
+% The \emph{name} of the key is the part of the path after the last
+% \texttt{/}, and thus is not unique. In the preceding examples, both keys
+% have name \texttt{key-a} despite having different paths. This information
+% is stored in \cs{l_keys_key_tl}, and will have been processed by
+% \cs{tl_to_str:n}.
% \end{variable}
%
% \section{Handling of unknown keys}
@@ -1270,6 +1306,31 @@
%
% \subsection{Turning properties into actions}
%
+% \begin{macro}[int]{\@@_ensure_exist:n, \@@_ensure_exist:V}
+% Used to make sure that a key implementation and the related property
+% list will exist whenever this is required. We cannot use for example
+% \cs{prop_clear_new:c} here as that would affect the order in which key
+% properties must be set. As key definitions are never global we use
+% |\cs_set_protected:cpn| not |\cs_new_protected:cpn| here. For the
+% same reason, to avoid issues if the key has been undefined in the
+% current scope but exists at a higher level, we do not use \cs{prop_new:c}
+% but rather \cs{prop_set_eq:cN}.
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_ensure_exist:n #1
+ {
+ \prop_if_exist:cF { \c_@@_info_root_tl #1 }
+ {
+ \prop_set_eq:cN { \c_@@_info_root_tl #1 } \c_empty_prop
+ }
+ \cs_if_exist:cF { \c_@@_code_root_tl #1 }
+ {
+ \cs_set_protected:cpn { \c_@@_code_root_tl #1 } ##1 { }
+ }
+ }
+\cs_generate_variant:Nn \@@_ensure_exist:n { V }
+% \end{macrocode}
+% \end{macro}
+%
% \begin{macro}[int]{\@@_bool_set:Nn, \@@_bool_set:cn}
% Boolean keys are really just choices, but all done by hand. The
% second argument here is the scope: either empty or \texttt{ g } for
@@ -1406,13 +1467,13 @@
%
% \begin{macro}[int]
% {\@@_cmd_set:nn, \@@_cmd_set:nx, \@@_cmd_set:Vn, \@@_cmd_set:Vo}
-% Creating a new command means tidying up the properties and then making
-% the internal function which actually does the work.
+% Setting the code for a key first checks that the basic data structures
+% exist, then saves the code.
% \begin{macrocode}
\cs_new_protected:Npn \@@_cmd_set:nn #1#2
{
- \prop_clear_new:c { \c_@@_info_root_tl #1 }
- \cs_set:cpn { \c_@@_code_root_tl #1 } ##1 {#2}
+ \@@_ensure_exist:V \l_keys_path_tl
+ \cs_set_protected:cpn { \c_@@_code_root_tl #1 } ##1 {#2}
}
\cs_generate_variant:Nn \@@_cmd_set:nn { nx , Vn , Vo }
% \end{macrocode}
@@ -1423,7 +1484,12 @@
% \begin{macrocode}
\cs_new_protected:Npn \@@_default_set:n #1
{
- \prop_if_exist:cT { \c_@@_info_root_tl \l_keys_path_tl }
+ \@@_ensure_exist:V \l_keys_path_tl
+ \tl_if_blank:nTF {#1}
+ {
+ \prop_remove:cn { \c_@@_info_root_tl \l_keys_path_tl }
+ { default }
+ }
{
\prop_put:cnn { \c_@@_info_root_tl \l_keys_path_tl }
{ default } {#1}
@@ -1439,9 +1505,14 @@
% \begin{macrocode}
\cs_new_protected:Npn \@@_groups_set:n #1
{
- \prop_if_exist:cT { \c_@@_info_root_tl \l_keys_path_tl }
+ \@@_ensure_exist:V \l_keys_path_tl
+ \clist_set:Nn \l_@@_groups_clist {#1}
+ \clist_if_empty:NTF \l_@@_groups_clist
+ {
+ \prop_remove:cn { \c_@@_info_root_tl \l_keys_path_tl }
+ { groups }
+ }
{
- \clist_set:Nn \l_@@_groups_clist {#1}
\prop_put:cnV { \c_@@_info_root_tl \l_keys_path_tl }
{ groups } \l_@@_groups_clist
}
@@ -1456,7 +1527,10 @@
% \cs{l_keys_path_tl} will contain \texttt{/} so a split is easy to do.
% \begin{macrocode}
\cs_new_protected:Npn \@@_initialise:n #1
- { \exp_after:wN \@@_initialise:wn \l_keys_path_tl \q_stop {#1} }
+ {
+ \@@_ensure_exist:V \l_keys_path_tl
+ \exp_after:wN \@@_initialise:wn \l_keys_path_tl \q_stop {#1}
+ }
\cs_new_protected:Npn \@@_initialise:wn #1 / #2 \q_stop #3
{ \keys_set:nn {#1} { #2 = {#3} } }
% \end{macrocode}
@@ -1481,21 +1555,41 @@
% \end{macro}
% \end{macro}
%
-% \begin{macro}[int]{\@@_value_requirement:n}
+% \begin{macro}[int]{\@@_undefine:}
+% Undefining a key has to be done without \cs{cs_undefine:c} as that
+% function acts globally.
+% \begin{macrocode}
+\cs_new_protected_nopar:Npn \@@_undefine:
+ {
+ \cs_set_eq:cN { \c_@@_code_root_tl \l_keys_path_tl } \tex_undefined:D
+ \cs_set_eq:cN { \c_@@_info_root_tl \l_keys_path_tl } \tex_undefined:D
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}[int]{\@@_value_requirement:nn}
% Values can be required or forbidden by having the appropriate marker
% set. First, both the required and forbidden ones are clear, just in case!
% \begin{macrocode}
-\cs_new_protected:Npn \@@_value_requirement:n #1
+\cs_new_protected:Npn \@@_value_requirement:nn #1#2
{
- \prop_if_exist:cT { \c_@@_info_root_tl \l_keys_path_tl }
+ \@@_ensure_exist:V \l_keys_path_tl
+ \prop_remove:cn { \c_@@_info_root_tl \l_keys_path_tl }
+ { required }
+ \prop_remove:cn { \c_@@_info_root_tl \l_keys_path_tl }
+ { forbidden }
+ \str_if_eq:nnTF {#2} { true }
{
- \prop_remove:cn { \c_@@_info_root_tl \l_keys_path_tl }
- { required }
- \prop_remove:cn { \c_@@_info_root_tl \l_keys_path_tl }
- { forbidden }
\prop_put:cnn { \c_@@_info_root_tl \l_keys_path_tl }
{#1} { true }
- }
+ }
+ {
+ \str_if_eq:nnF {#2} { false }
+ {
+ \__msg_kernel_error:nnx { kernel } { property-boolean-values-only }
+ { .value_ #1 :n }
+ }
+ }
}
% \end{macrocode}
% \end{macro}
@@ -1780,14 +1874,22 @@
% \end{macro}
% \end{macro}
%
-% \begin{macro}{.value_forbidden:}
-% \begin{macro}{.value_required:}
+% \begin{macro}{.undefine:}
+% TAnother simple wrapper.
+% \begin{macrocode}
+\cs_new_protected_nopar:cpn { \c_@@_props_root_tl .undefine: }
+ { \@@_undefine: }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{.value_forbidden:n}
+% \begin{macro}{.value_required:n}
% These are very similar, so both call the same function.
% \begin{macrocode}
-\cs_new_protected_nopar:cpn { \c_@@_props_root_tl .value_forbidden: }
- { \@@_value_requirement:n { forbidden } }
-\cs_new_protected_nopar:cpn { \c_@@_props_root_tl .value_required: }
- { \@@_value_requirement:n { required } }
+\cs_new_protected:cpn { \c_@@_props_root_tl .value_forbidden:n } #1
+ { \@@_value_requirement:nn { forbidden } {#1} }
+\cs_new_protected:cpn { \c_@@_props_root_tl .value_required:n } #1
+ { \@@_value_requirement:nn { required } {#1} }
% \end{macrocode}
% \end{macro}
% \end{macro}
@@ -1909,6 +2011,7 @@
%
% \begin{macro}[int]{\@@_set_elt:n, \@@_set_elt:nn}
% \begin{macro}[aux]{\@@_set_elt_aux:nn}
+% \begin{macro}[aux, EXP]{\@@_key_find:w}
% \begin{macro}[aux]{\@@_set_elt_aux:, \@@_set_elt_selective:}
% A shared system once again. First, set the current path and add a
% default if needed. There are then checks to see if the a value is
@@ -1927,13 +2030,20 @@
}
\cs_new_protected:Npn \@@_set_elt_aux:nn #1#2
{
- \tl_set:Nx \l_keys_key_tl { \tl_to_str:n {#1} }
- \tl_set:Nx \l_keys_path_tl { \l_@@_module_tl / \l_keys_key_tl }
+ \tl_set:Nx \l_keys_path_tl { \l_@@_module_tl / \tl_to_str:n {#1} }
+ \tl_set:Nx \l_keys_key_tl
+ { \exp_after:wN \@@_key_find:w \l_keys_path_tl / \q_stop }
\@@_value_or_default:n {#2}
\bool_if:NTF \l_@@_selective_bool
{ \@@_set_elt_selective: }
{ \@@_set_elt_aux: }
}
+\cs_new:Npn \@@_key_find:w #1 / #2 \q_stop
+ {
+ \tl_if_blank:nTF {#2}
+ { #1 }
+ { \@@_key_find:w #2 \q_stop }
+ }
\cs_new_protected_nopar:Npn \@@_set_elt_aux:
{
\bool_if:nTF
@@ -2019,6 +2129,7 @@
% \end{macro}
% \end{macro}
% \end{macro}
+% \end{macro}
%
% \begin{macro}[int]{\@@_value_or_default:n}
% If a value is given, return it as |#1|, otherwise send a default if
@@ -2195,6 +2306,12 @@
The~key~'#1'~cannot~be~defined~as~a~choice~as~the~parent~key~'#2'~is~
itself~a~choice.
}
+\__msg_kernel_new:nnnn { kernel } { property-boolean-values-only }
+ { The~property~'#1'~accepts~boolean~values~only. }
+ {
+ \c__msg_coding_error_text_tl
+ The~property~'#1'~only~accepts~the~values~'true'~and~'false'.
+ }
\__msg_kernel_new:nnnn { kernel } { property-requires-value }
{ The~property~'#1'~requires~a~value. }
{
@@ -2225,70 +2342,17 @@
%
% \subsection{Deprecated functions}
%
-% \begin{macro}[int]{\@@_choice_code_store:n, \@@_choice_code_store:x}
-% \begin{macro}{.choice_code:n, .choice_code:x}
-% \begin{macro}[int]{\@@_choices_generate:n}
-% \begin{macro}[aux]{\@@_choices_generate_aux:n}
-% \begin{macro}{.generate_choices:n}
-% Deprecated on 2013-07-09.
+% \begin{macro}{.value_forbidden:}
+% \begin{macro}{.value_required:}
+% Deprecated 2015-07-14.
% \begin{macrocode}
-\cs_new_protected:Npn \@@_choice_code_store:n #1
- {
- \cs_if_exist:cF
- { \c_@@_info_root_tl \l_keys_path_tl .choice~code }
- {
- \tl_new:c
- { \c_@@_info_root_tl \l_keys_path_tl .choice~code }
- }
- \tl_set:cn { \c_@@_info_root_tl \l_keys_path_tl .choice~code }
- {#1}
- }
-\cs_generate_variant:Nn \@@_choice_code_store:n { x }
-\cs_new_protected:cpn { \c_@@_props_root_tl .choice_code:n } #1
- { \@@_choice_code_store:n {#1} }
-\cs_new_protected:cpn { \c_@@_props_root_tl .choice_code:x } #1
- { \@@_choice_code_store:x {#1} }
-\cs_new_protected:Npn \@@_choices_generate:n #1
- {
- \cs_if_exist:cTF
- { \c_@@_info_root_tl \l_keys_path_tl .choice~code }
- {
- \@@_choice_make:
- \int_zero:N \l_keys_choice_int
- \clist_map_function:nN {#1} \@@_choices_generate_aux:n
- }
- {
- \__msg_kernel_error:nnx { kernel }
- { generate-choices-before-code } { \l_keys_path_tl }
- }
- }
-\cs_new_protected:Npn \@@_choices_generate_aux:n #1
- {
- \int_incr:N \l_keys_choice_int
- \@@_cmd_set:nx { \l_keys_path_tl / #1 }
- {
- \tl_set:Nn \exp_not:N \l_keys_choice_tl {#1}
- \int_set:Nn \exp_not:N \l_keys_choice_int
- { \int_use:N \l_keys_choice_int }
- \exp_not:v
- { \c_@@_info_root_tl \l_keys_path_tl .choice~code }
- }
- }
-\__msg_kernel_new:nnnn { kernel } { generate-choices-before-code }
- { No~code~available~to~generate~choices~for~key~'#1'. }
- {
- \c__msg_coding_error_text_tl
- Before~using~.generate_choices:n~the~code~should~be~defined~
- with~'.choice_code:n'~or~'.choice_code:x'.
- }
-\cs_new_protected:cpn { \c_@@_props_root_tl .generate_choices:n } #1
- { \@@_choices_generate:n {#1} }
+\cs_new_protected_nopar:cpn { \c_@@_props_root_tl .value_forbidden: }
+ { \@@_value_requirement:nn { forbidden } { true } }
+\cs_new_protected_nopar:cpn { \c_@@_props_root_tl .value_required: }
+ { \@@_value_requirement:nn { required } { true } }
% \end{macrocode}
% \end{macro}
% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
%
% \begin{macrocode}
%</initex|package>
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3luatex.dtx b/Master/texmf-dist/source/latex/l3kernel/l3luatex.dtx
new file mode 100644
index 00000000000..32950238227
--- /dev/null
+++ b/Master/texmf-dist/source/latex/l3kernel/l3luatex.dtx
@@ -0,0 +1,214 @@
+% \iffalse meta-comment
+%
+%% File: l3luatex.dtx Copyright (C) 2010-2015 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.
+%%
+%% -----------------------------------------------------------------------
+%%
+%% The development version of the bundle can be found at
+%%
+%% http://www.latex-project.org/svnroot/experimental/trunk/
+%%
+%% for those people who are interested.
+%%
+%%%%%%%%%%%
+%% NOTE: %%
+%%%%%%%%%%%
+%%
+%% Snapshots taken from the repository represent work in progress and may
+%% not work or may contain conflicting material! We therefore ask
+%% people _not_ to put them into distributions, archives, etc. without
+%% prior consultation with the LaTeX3 Project.
+%%
+%% -----------------------------------------------------------------------
+%
+%<*driver>
+\documentclass[full]{l3doc}
+%</driver>
+%<*driver|package>
+\GetIdInfo$Id: l3luatex.dtx 5646 2015-06-30 21:19:24Z joseph $
+ {L3 Experimental LuaTeX-specific functions}
+%</driver|package>
+%<*driver>
+\begin{document}
+ \DocInput{\jobname.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \title{^^A
+% The \pkg{l3luatex} package\\LuaTeX-specific functions^^A
+% \thanks{This file describes v\ExplFileVersion,
+% last revised \ExplFileDate.}^^A
+% }
+%
+% \author{^^A
+% The \LaTeX3 Project\thanks
+% {^^A
+% E-mail:
+% \href{mailto:latex-team@latex-project.org}
+% {latex-team@latex-project.org}^^A
+% }^^A
+% }
+%
+% \date{Released \ExplFileDate}
+%
+% \maketitle
+%
+% \begin{documentation}
+%
+% \section{Breaking out to \Lua{}}
+%
+% The \LuaTeX{} engine provides access to the \Lua{} programming language,
+% and with it access to the \enquote{internals} of \TeX{}. In order to use
+% this within the framework provided here, a family of functions is
+% available. When used with \pdfTeX{} or \XeTeX{} these will raise an
+% error: use \cs{luatex_if_engine:T} to avoid this. Details of coding
+% the \LuaTeX{} engine are detailed in the \LuaTeX{} manual.
+%
+% \begin{function}[EXP, added = 2015-06-29]{\lua_now_x:n, \lua_now:n}
+% \begin{syntax}
+% \cs{lua_now:n} \Arg{token list}
+% \end{syntax}
+% The \meta{token list} is first tokenized by \TeX{}, which will include
+% converting line ends to spaces in the usual \TeX{} manner and which
+% respects currently-applicable \TeX{} category codes. The resulting
+% \meta{\Lua{} input} is passed to the \Lua{} interpreter for processing.
+% Each \cs{lua_now:n} block is treated by \Lua{} as a separate chunk.
+% The \Lua{} interpreter will execute the \meta{\Lua{} input} immediately,
+% and in an expandable manner.
+%
+% In the case of the \cs{lua_now_x:n} version the input is fully expanded
+% by \TeX{} in an \texttt{x}-type manner \emph{but} the function remains
+% fully expandable.
+% \begin{texnote}
+% \cs{lua_now_x:n} is a macro wrapper around \tn{directlua}: when
+% \LuaTeX{} is in use two expansions will be required to yield the
+% result of the \Lua{} code.
+% \end{texnote}
+% \end{function}
+%
+% \begin{function}[added = 2015-06-30]{\lua_shipout_x:n, \lua_shipout:n}
+% \begin{syntax}
+% \cs{lua_shipout:n} \Arg{token list}
+% \end{syntax}
+% The \meta{token list} is first tokenized by \TeX{}, which will include
+% converting line ends to spaces in the usual \TeX{} manner and which
+% respects currently-applicable \TeX{} category codes. The resulting
+% \meta{\Lua{} input} is passed to the \Lua{} interpreter when the
+% current page is finalised (\emph{i.e.}~at shipout). Each
+% \cs{lua_shipout:n} block is treated by \Lua{} as a separate chunk.
+% The \Lua{} interpreter will execute the \meta{\Lua{} input} during the
+% page-building routine: no \TeX{} expansion of the \meta{\Lua{} input}
+% will occur at this stage.
+%
+% In the case of the \cs{lua_shipout_x:n} version the input is fully
+% expanded by \TeX{} in an \texttt{x}-type manner during the shipout
+% operation.
+% \begin{texnote}
+% At a \TeX{} level, the \meta{\Lua{} input} is stored as a
+% \enquote{whatsit}.
+% \end{texnote}
+% \end{function}
+%
+% \begin{function}[EXP, added = 2015-06-29]{\lua_escape_x:n, \lua_escape:n}
+% \begin{syntax}
+% \cs{lua_escape:n} \Arg{token list}
+% \end{syntax}
+% Converts the \meta{token list} such that it can safely be passed to
+% \Lua{}: embedded backslashes, double and single quotes, and newlines
+% and carriage returns are escaped. This is done by prepending an extra
+% token consisting of a backslash with category code~$12$, and for the line
+% endings, converting them to |\n| and |\r|, respectively.
+%
+% In the case of the \cs{lua_escape_x:n} version the input is fully expanded
+% by \TeX{} in an \texttt{x}-type manner \emph{but} the function remains
+% fully expandable.
+% \begin{texnote}
+% \cs{lua_escape_x:n} is a macro wrapper around \tn{luaescapestring}:
+% when \LuaTeX{} is in use two expansions will be required to yield the
+% result of the \Lua{} code.
+% \end{texnote}
+% \end{function}
+%
+% \end{documentation}
+%
+% \begin{implementation}
+%
+% \section{\pkg{l3luatex} implementation}
+%
+% \begin{macrocode}
+%<*initex|package>
+% \end{macrocode}
+%
+% \subsubsection{Breaking out to \Lua{}}
+%
+% \begin{macro}[EXP]{\lua_now_x:n, \lua_now:n}
+% \begin{macro}{\lua_shipout_x:n, \lua_shipout:n}
+% \begin{macro}[EXP]{\lua_escape_x:n, \lua_escape:n}
+% Wrappers around the primitives. As with engines other than \LuaTeX{}
+% these have to be macros, we give them the same status in all cases.
+% When \LuaTeX{} is not in use, simply give an error message/
+% \begin{macrocode}
+\cs_new:Npn \lua_now_x:n #1 { \luatex_directlua:D {#1} }
+\cs_new:Npn \lua_now:n #1 { \lua_now_x:n { \exp_not:n {#1} } }
+\cs_new_protected:Npn \lua_shipout_x:n #1 { \luatex_latelua:D {#1} }
+\cs_new_protected:Npn \lua_shipout:n #1
+ { \lua_shipout_x:n { \exp_not:n {#1} } }
+\cs_new:Npn \lua_escape_x:n #1 { \luatex_luaescapestring:D {#1} }
+\cs_new:Npn \lua_escape:n #1 { \lua_escape_x:n { \exp_not:n {#1} } }
+\luatex_if_engine:F
+ {
+ \clist_map_inline:nn
+ { \lua_now_x:n , \lua_now:n , \lua_escape_x:n , \lua_escape:n }
+ {
+ \cs_set:Npn #1 ##1
+ {
+ \__msg_kernel_expandable_error:nnn
+ { kernel } { luatex-required } { #1 }
+ }
+ }
+ \clist_map_inline:nn
+ { \lua_shipout_x :n , \lua_shipout:n }
+ {
+ \cs_set_protected:Npn #1 ##1
+ {
+ \__msg_kernel_error:nnn
+ { kernel } { luatex-required } { #1 }
+ }
+ }
+ }
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \subsection{Messages}
+%
+% \begin{macrocode}
+\__msg_kernel_new:nnnn { kernel } { luatex-required }
+ { LuaTeX~engine~not~in~use!~Ignoring~#1. }
+ {
+ The~feature~you~are~using~is~only~available~
+ with~the~LuaTeX~engine.~LaTeX3~ignored~'#1'.
+ }
+% \end{macrocode}
+%
+% \begin{macrocode}
+%</initex|package>
+% \end{macrocode}
+%
+%\end{implementation}
+%
+%\PrintIndex
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3names.dtx b/Master/texmf-dist/source/latex/l3kernel/l3names.dtx
index 0be609173a3..d7a3c19c3ae 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3names.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3names.dtx
@@ -37,7 +37,7 @@
\documentclass[full]{l3doc}
%</driver>
%<*driver|package>
-\GetIdInfo$Id: l3names.dtx 5535 2015-02-24 09:11:19Z joseph $
+\GetIdInfo$Id: l3names.dtx 5644 2015-06-30 07:59:24Z joseph $
{L3 Namespace for primitives}
%</driver|package>
%<*driver>
@@ -158,480 +158,809 @@
% These are given modified new names, so that they may be entered
% without catcode tricks.
% \begin{macrocode}
- \__kernel_primitive:NN \ \tex_space:D
- \__kernel_primitive:NN \/ \tex_italiccorrection:D
- \__kernel_primitive:NN \- \tex_hyphen:D
+ \__kernel_primitive:NN \ \tex_space:D
+ \__kernel_primitive:NN \/ \tex_italiccorrection:D
+ \__kernel_primitive:NN \- \tex_hyphen:D
% \end{macrocode}
%
% Now all the other primitives.
% \begin{macrocode}
- \__kernel_primitive:NN \above \tex_above:D
- \__kernel_primitive:NN \abovedisplayshortskip \tex_abovedisplayshortskip:D
- \__kernel_primitive:NN \abovedisplayskip \tex_abovedisplayskip:D
- \__kernel_primitive:NN \abovewithdelims \tex_abovewithdelims:D
- \__kernel_primitive:NN \accent \tex_accent:D
- \__kernel_primitive:NN \adjdemerits \tex_adjdemerits:D
- \__kernel_primitive:NN \advance \tex_advance:D
- \__kernel_primitive:NN \afterassignment \tex_afterassignment:D
- \__kernel_primitive:NN \aftergroup \tex_aftergroup:D
- \__kernel_primitive:NN \atop \tex_atop:D
- \__kernel_primitive:NN \atopwithdelims \tex_atopwithdelims:D
- \__kernel_primitive:NN \badness \tex_badness:D
- \__kernel_primitive:NN \baselineskip \tex_baselineskip:D
- \__kernel_primitive:NN \batchmode \tex_batchmode:D
- \__kernel_primitive:NN \begingroup \tex_begingroup:D
- \__kernel_primitive:NN \belowdisplayshortskip \tex_belowdisplayshortskip:D
- \__kernel_primitive:NN \belowdisplayskip \tex_belowdisplayskip:D
- \__kernel_primitive:NN \binoppenalty \tex_binoppenalty:D
- \__kernel_primitive:NN \botmark \tex_botmark:D
- \__kernel_primitive:NN \box \tex_box:D
- \__kernel_primitive:NN \boxmaxdepth \tex_boxmaxdepth:D
- \__kernel_primitive:NN \brokenpenalty \tex_brokenpenalty:D
- \__kernel_primitive:NN \catcode \tex_catcode:D
- \__kernel_primitive:NN \char \tex_char:D
- \__kernel_primitive:NN \chardef \tex_chardef:D
- \__kernel_primitive:NN \cleaders \tex_cleaders:D
- \__kernel_primitive:NN \closein \tex_closein:D
- \__kernel_primitive:NN \closeout \tex_closeout:D
- \__kernel_primitive:NN \clubpenalty \tex_clubpenalty:D
- \__kernel_primitive:NN \copy \tex_copy:D
- \__kernel_primitive:NN \count \tex_count:D
- \__kernel_primitive:NN \countdef \tex_countdef:D
- \__kernel_primitive:NN \cr \tex_cr:D
- \__kernel_primitive:NN \crcr \tex_crcr:D
- \__kernel_primitive:NN \csname \tex_csname:D
- \__kernel_primitive:NN \day \tex_day:D
- \__kernel_primitive:NN \deadcycles \tex_deadcycles:D
- \__kernel_primitive:NN \def \tex_def:D
- \__kernel_primitive:NN \defaulthyphenchar \tex_defaulthyphenchar:D
- \__kernel_primitive:NN \defaultskewchar \tex_defaultskewchar:D
- \__kernel_primitive:NN \delcode \tex_delcode:D
- \__kernel_primitive:NN \delimiter \tex_delimiter:D
- \__kernel_primitive:NN \delimiterfactor \tex_delimiterfactor:D
- \__kernel_primitive:NN \delimitershortfall \tex_delimitershortfall:D
- \__kernel_primitive:NN \dimen \tex_dimen:D
- \__kernel_primitive:NN \dimendef \tex_dimendef:D
- \__kernel_primitive:NN \discretionary \tex_discretionary:D
- \__kernel_primitive:NN \displayindent \tex_displayindent:D
- \__kernel_primitive:NN \displaylimits \tex_displaylimits:D
- \__kernel_primitive:NN \displaystyle \tex_displaystyle:D
- \__kernel_primitive:NN \displaywidowpenalty \tex_displaywidowpenalty:D
- \__kernel_primitive:NN \displaywidth \tex_displaywidth:D
- \__kernel_primitive:NN \divide \tex_divide:D
- \__kernel_primitive:NN \doublehyphendemerits \tex_doublehyphendemerits:D
- \__kernel_primitive:NN \dp \tex_dp:D
- \__kernel_primitive:NN \dump \tex_dump:D
- \__kernel_primitive:NN \edef \tex_edef:D
- \__kernel_primitive:NN \else \tex_else:D
- \__kernel_primitive:NN \emergencystretch \tex_emergencystretch:D
- \__kernel_primitive:NN \end \tex_end:D
- \__kernel_primitive:NN \endcsname \tex_endcsname:D
- \__kernel_primitive:NN \endgroup \tex_endgroup:D
- \__kernel_primitive:NN \endinput \tex_endinput:D
- \__kernel_primitive:NN \endlinechar \tex_endlinechar:D
- \__kernel_primitive:NN \eqno \tex_eqno:D
- \__kernel_primitive:NN \errhelp \tex_errhelp:D
- \__kernel_primitive:NN \errmessage \tex_errmessage:D
- \__kernel_primitive:NN \errorcontextlines \tex_errorcontextlines:D
- \__kernel_primitive:NN \errorstopmode \tex_errorstopmode:D
- \__kernel_primitive:NN \escapechar \tex_escapechar:D
- \__kernel_primitive:NN \everycr \tex_everycr:D
- \__kernel_primitive:NN \everydisplay \tex_everydisplay:D
- \__kernel_primitive:NN \everyhbox \tex_everyhbox:D
- \__kernel_primitive:NN \everyjob \tex_everyjob:D
- \__kernel_primitive:NN \everymath \tex_everymath:D
- \__kernel_primitive:NN \everypar \tex_everypar:D
- \__kernel_primitive:NN \everyvbox \tex_everyvbox:D
- \__kernel_primitive:NN \exhyphenpenalty \tex_exhyphenpenalty:D
- \__kernel_primitive:NN \expandafter \tex_expandafter:D
- \__kernel_primitive:NN \fam \tex_fam:D
- \__kernel_primitive:NN \fi \tex_fi:D
- \__kernel_primitive:NN \finalhyphendemerits \tex_finalhyphendemerits:D
- \__kernel_primitive:NN \firstmark \tex_firstmark:D
- \__kernel_primitive:NN \floatingpenalty \tex_floatingpenalty:D
- \__kernel_primitive:NN \font \tex_font:D
- \__kernel_primitive:NN \fontdimen \tex_fontdimen:D
- \__kernel_primitive:NN \fontname \tex_fontname:D
- \__kernel_primitive:NN \futurelet \tex_futurelet:D
- \__kernel_primitive:NN \gdef \tex_gdef:D
- \__kernel_primitive:NN \global \tex_global:D
- \__kernel_primitive:NN \globaldefs \tex_globaldefs:D
- \__kernel_primitive:NN \halign \tex_halign:D
- \__kernel_primitive:NN \hangafter \tex_hangafter:D
- \__kernel_primitive:NN \hangindent \tex_hangindent:D
- \__kernel_primitive:NN \hbadness \tex_hbadness:D
- \__kernel_primitive:NN \hbox \tex_hbox:D
- \__kernel_primitive:NN \hfil \tex_hfil:D
- \__kernel_primitive:NN \hfill \tex_hfill:D
- \__kernel_primitive:NN \hfilneg \tex_hfilneg:D
- \__kernel_primitive:NN \hfuzz \tex_hfuzz:D
- \__kernel_primitive:NN \hoffset \tex_hoffset:D
- \__kernel_primitive:NN \holdinginserts \tex_holdinginserts:D
- \__kernel_primitive:NN \hrule \tex_hrule:D
- \__kernel_primitive:NN \hsize \tex_hsize:D
- \__kernel_primitive:NN \hskip \tex_hskip:D
- \__kernel_primitive:NN \hss \tex_hss:D
- \__kernel_primitive:NN \ht \tex_ht:D
- \__kernel_primitive:NN \hyphenation \tex_hyphenation:D
- \__kernel_primitive:NN \hyphenchar \tex_hyphenchar:D
- \__kernel_primitive:NN \hyphenpenalty \tex_hyphenpenalty:D
- \__kernel_primitive:NN \if \tex_if:D
- \__kernel_primitive:NN \ifcase \tex_ifcase:D
- \__kernel_primitive:NN \ifcat \tex_ifcat:D
- \__kernel_primitive:NN \ifdim \tex_ifdim:D
- \__kernel_primitive:NN \ifeof \tex_ifeof:D
- \__kernel_primitive:NN \iffalse \tex_iffalse:D
- \__kernel_primitive:NN \ifhbox \tex_ifhbox:D
- \__kernel_primitive:NN \ifhmode \tex_ifhmode:D
- \__kernel_primitive:NN \ifinner \tex_ifinner:D
- \__kernel_primitive:NN \ifmmode \tex_ifmmode:D
- \__kernel_primitive:NN \ifnum \tex_ifnum:D
- \__kernel_primitive:NN \ifodd \tex_ifodd:D
- \__kernel_primitive:NN \iftrue \tex_iftrue:D
- \__kernel_primitive:NN \ifvbox \tex_ifvbox:D
- \__kernel_primitive:NN \ifvmode \tex_ifvmode:D
- \__kernel_primitive:NN \ifvoid \tex_ifvoid:D
- \__kernel_primitive:NN \ifx \tex_ifx:D
- \__kernel_primitive:NN \ignorespaces \tex_ignorespaces:D
- \__kernel_primitive:NN \immediate \tex_immediate:D
- \__kernel_primitive:NN \indent \tex_indent:D
- \__kernel_primitive:NN \input \tex_input:D
- \__kernel_primitive:NN \inputlineno \tex_inputlineno:D
- \__kernel_primitive:NN \insert \tex_insert:D
- \__kernel_primitive:NN \insertpenalties \tex_insertpenalties:D
- \__kernel_primitive:NN \interlinepenalty \tex_interlinepenalty:D
- \__kernel_primitive:NN \jobname \tex_jobname:D
- \__kernel_primitive:NN \kern \tex_kern:D
- \__kernel_primitive:NN \language \tex_language:D
- \__kernel_primitive:NN \lastbox \tex_lastbox:D
- \__kernel_primitive:NN \lastkern \tex_lastkern:D
- \__kernel_primitive:NN \lastpenalty \tex_lastpenalty:D
- \__kernel_primitive:NN \lastskip \tex_lastskip:D
- \__kernel_primitive:NN \lccode \tex_lccode:D
- \__kernel_primitive:NN \leaders \tex_leaders:D
- \__kernel_primitive:NN \left \tex_left:D
- \__kernel_primitive:NN \lefthyphenmin \tex_lefthyphenmin:D
- \__kernel_primitive:NN \leftskip \tex_leftskip:D
- \__kernel_primitive:NN \leqno \tex_leqno:D
- \__kernel_primitive:NN \let \tex_let:D
- \__kernel_primitive:NN \limits \tex_limits:D
- \__kernel_primitive:NN \linepenalty \tex_linepenalty:D
- \__kernel_primitive:NN \lineskip \tex_lineskip:D
- \__kernel_primitive:NN \lineskiplimit \tex_lineskiplimit:D
- \__kernel_primitive:NN \long \tex_long:D
- \__kernel_primitive:NN \looseness \tex_looseness:D
- \__kernel_primitive:NN \lower \tex_lower:D
- \__kernel_primitive:NN \lowercase \tex_lowercase:D
- \__kernel_primitive:NN \mag \tex_mag:D
- \__kernel_primitive:NN \mark \tex_mark:D
- \__kernel_primitive:NN \mathaccent \tex_mathaccent:D
- \__kernel_primitive:NN \mathbin \tex_mathbin:D
- \__kernel_primitive:NN \mathchar \tex_mathchar:D
- \__kernel_primitive:NN \mathchardef \tex_mathchardef:D
- \__kernel_primitive:NN \mathchoice \tex_mathchoice:D
- \__kernel_primitive:NN \mathclose \tex_mathclose:D
- \__kernel_primitive:NN \mathcode \tex_mathcode:D
- \__kernel_primitive:NN \mathinner \tex_mathinner:D
- \__kernel_primitive:NN \mathop \tex_mathop:D
- \__kernel_primitive:NN \mathopen \tex_mathopen:D
- \__kernel_primitive:NN \mathord \tex_mathord:D
- \__kernel_primitive:NN \mathpunct \tex_mathpunct:D
- \__kernel_primitive:NN \mathrel \tex_mathrel:D
- \__kernel_primitive:NN \mathsurround \tex_mathsurround:D
- \__kernel_primitive:NN \maxdeadcycles \tex_maxdeadcycles:D
- \__kernel_primitive:NN \maxdepth \tex_maxdepth:D
- \__kernel_primitive:NN \meaning \tex_meaning:D
- \__kernel_primitive:NN \medmuskip \tex_medmuskip:D
- \__kernel_primitive:NN \message \tex_message:D
- \__kernel_primitive:NN \mkern \tex_mkern:D
- \__kernel_primitive:NN \month \tex_month:D
- \__kernel_primitive:NN \moveleft \tex_moveleft:D
- \__kernel_primitive:NN \moveright \tex_moveright:D
- \__kernel_primitive:NN \mskip \tex_mskip:D
- \__kernel_primitive:NN \multiply \tex_multiply:D
- \__kernel_primitive:NN \muskip \tex_muskip:D
- \__kernel_primitive:NN \muskipdef \tex_muskipdef:D
- \__kernel_primitive:NN \newlinechar \tex_newlinechar:D
- \__kernel_primitive:NN \noalign \tex_noalign:D
- \__kernel_primitive:NN \noboundary \tex_noboundary:D
- \__kernel_primitive:NN \noexpand \tex_noexpand:D
- \__kernel_primitive:NN \noindent \tex_noindent:D
- \__kernel_primitive:NN \nolimits \tex_nolimits:D
- \__kernel_primitive:NN \nonscript \tex_nonscript:D
- \__kernel_primitive:NN \nonstopmode \tex_nonstopmode:D
- \__kernel_primitive:NN \nulldelimiterspace \tex_nulldelimiterspace:D
- \__kernel_primitive:NN \nullfont \tex_nullfont:D
- \__kernel_primitive:NN \number \tex_number:D
- \__kernel_primitive:NN \omit \tex_omit:D
- \__kernel_primitive:NN \openin \tex_openin:D
- \__kernel_primitive:NN \openout \tex_openout:D
- \__kernel_primitive:NN \or \tex_or:D
- \__kernel_primitive:NN \outer \tex_outer:D
- \__kernel_primitive:NN \output \tex_output:D
- \__kernel_primitive:NN \outputpenalty \tex_outputpenalty:D
- \__kernel_primitive:NN \over \tex_over:D
- \__kernel_primitive:NN \overfullrule \tex_overfullrule:D
- \__kernel_primitive:NN \overline \tex_overline:D
- \__kernel_primitive:NN \overwithdelims \tex_overwithdelims:D
- \__kernel_primitive:NN \pagedepth \tex_pagedepth:D
- \__kernel_primitive:NN \pagefilllstretch \tex_pagefilllstretch:D
- \__kernel_primitive:NN \pagefillstretch \tex_pagefillstretch:D
- \__kernel_primitive:NN \pagefilstretch \tex_pagefilstretch:D
- \__kernel_primitive:NN \pagegoal \tex_pagegoal:D
- \__kernel_primitive:NN \pageshrink \tex_pageshrink:D
- \__kernel_primitive:NN \pagestretch \tex_pagestretch:D
- \__kernel_primitive:NN \pagetotal \tex_pagetotal:D
- \__kernel_primitive:NN \par \tex_par:D
- \__kernel_primitive:NN \parfillskip \tex_parfillskip:D
- \__kernel_primitive:NN \parindent \tex_parindent:D
- \__kernel_primitive:NN \parshape \tex_parshape:D
- \__kernel_primitive:NN \parskip \tex_parskip:D
- \__kernel_primitive:NN \patterns \tex_patterns:D
- \__kernel_primitive:NN \pausing \tex_pausing:D
- \__kernel_primitive:NN \penalty \tex_penalty:D
- \__kernel_primitive:NN \postdisplaypenalty \tex_postdisplaypenalty:D
- \__kernel_primitive:NN \predisplaypenalty \tex_predisplaypenalty:D
- \__kernel_primitive:NN \predisplaysize \tex_predisplaysize:D
- \__kernel_primitive:NN \pretolerance \tex_pretolerance:D
- \__kernel_primitive:NN \prevdepth \tex_prevdepth:D
- \__kernel_primitive:NN \prevgraf \tex_prevgraf:D
- \__kernel_primitive:NN \radical \tex_radical:D
- \__kernel_primitive:NN \raise \tex_raise:D
- \__kernel_primitive:NN \read \tex_read:D
- \__kernel_primitive:NN \relax \tex_relax:D
- \__kernel_primitive:NN \relpenalty \tex_relpenalty:D
- \__kernel_primitive:NN \right \tex_right:D
- \__kernel_primitive:NN \righthyphenmin \tex_righthyphenmin:D
- \__kernel_primitive:NN \rightskip \tex_rightskip:D
- \__kernel_primitive:NN \romannumeral \tex_romannumeral:D
- \__kernel_primitive:NN \scriptfont \tex_scriptfont:D
- \__kernel_primitive:NN \scriptscriptfont \tex_scriptscriptfont:D
- \__kernel_primitive:NN \scriptscriptstyle \tex_scriptscriptstyle:D
- \__kernel_primitive:NN \scriptspace \tex_scriptspace:D
- \__kernel_primitive:NN \scriptstyle \tex_scriptstyle:D
- \__kernel_primitive:NN \scrollmode \tex_scrollmode:D
- \__kernel_primitive:NN \setbox \tex_setbox:D
- \__kernel_primitive:NN \setlanguage \tex_setlanguage:D
- \__kernel_primitive:NN \sfcode \tex_sfcode:D
- \__kernel_primitive:NN \shipout \tex_shipout:D
- \__kernel_primitive:NN \show \tex_show:D
- \__kernel_primitive:NN \showbox \tex_showbox:D
- \__kernel_primitive:NN \showboxbreadth \tex_showboxbreadth:D
- \__kernel_primitive:NN \showboxdepth \tex_showboxdepth:D
- \__kernel_primitive:NN \showlists \tex_showlists:D
- \__kernel_primitive:NN \showthe \tex_showthe:D
- \__kernel_primitive:NN \skewchar \tex_skewchar:D
- \__kernel_primitive:NN \skip \tex_skip:D
- \__kernel_primitive:NN \skipdef \tex_skipdef:D
- \__kernel_primitive:NN \spacefactor \tex_spacefactor:D
- \__kernel_primitive:NN \spaceskip \tex_spaceskip:D
- \__kernel_primitive:NN \span \tex_span:D
- \__kernel_primitive:NN \special \tex_special:D
- \__kernel_primitive:NN \splitbotmark \tex_splitbotmark:D
- \__kernel_primitive:NN \splitfirstmark \tex_splitfirstmark:D
- \__kernel_primitive:NN \splitmaxdepth \tex_splitmaxdepth:D
- \__kernel_primitive:NN \splittopskip \tex_splittopskip:D
- \__kernel_primitive:NN \string \tex_string:D
- \__kernel_primitive:NN \tabskip \tex_tabskip:D
- \__kernel_primitive:NN \textfont \tex_textfont:D
- \__kernel_primitive:NN \textstyle \tex_textstyle:D
- \__kernel_primitive:NN \the \tex_the:D
- \__kernel_primitive:NN \thickmuskip \tex_thickmuskip:D
- \__kernel_primitive:NN \thinmuskip \tex_thinmuskip:D
- \__kernel_primitive:NN \time \tex_time:D
- \__kernel_primitive:NN \toks \tex_toks:D
- \__kernel_primitive:NN \toksdef \tex_toksdef:D
- \__kernel_primitive:NN \tolerance \tex_tolerance:D
- \__kernel_primitive:NN \topmark \tex_topmark:D
- \__kernel_primitive:NN \topskip \tex_topskip:D
- \__kernel_primitive:NN \tracingcommands \tex_tracingcommands:D
- \__kernel_primitive:NN \tracinglostchars \tex_tracinglostchars:D
- \__kernel_primitive:NN \tracingmacros \tex_tracingmacros:D
- \__kernel_primitive:NN \tracingonline \tex_tracingonline:D
- \__kernel_primitive:NN \tracingoutput \tex_tracingoutput:D
- \__kernel_primitive:NN \tracingpages \tex_tracingpages:D
- \__kernel_primitive:NN \tracingparagraphs \tex_tracingparagraphs:D
- \__kernel_primitive:NN \tracingrestores \tex_tracingrestores:D
- \__kernel_primitive:NN \tracingstats \tex_tracingstats:D
- \__kernel_primitive:NN \uccode \tex_uccode:D
- \__kernel_primitive:NN \uchyph \tex_uchyph:D
- \__kernel_primitive:NN \underline \tex_underline:D
- \__kernel_primitive:NN \unhbox \tex_unhbox:D
- \__kernel_primitive:NN \unhcopy \tex_unhcopy:D
- \__kernel_primitive:NN \unkern \tex_unkern:D
- \__kernel_primitive:NN \unpenalty \tex_unpenalty:D
- \__kernel_primitive:NN \unskip \tex_unskip:D
- \__kernel_primitive:NN \unvbox \tex_unvbox:D
- \__kernel_primitive:NN \unvcopy \tex_unvcopy:D
- \__kernel_primitive:NN \uppercase \tex_uppercase:D
- \__kernel_primitive:NN \vadjust \tex_vadjust:D
- \__kernel_primitive:NN \valign \tex_valign:D
- \__kernel_primitive:NN \vbadness \tex_vbadness:D
- \__kernel_primitive:NN \vbox \tex_vbox:D
- \__kernel_primitive:NN \vcenter \tex_vcenter:D
- \__kernel_primitive:NN \vfil \tex_vfil:D
- \__kernel_primitive:NN \vfill \tex_vfill:D
- \__kernel_primitive:NN \vfilneg \tex_vfilneg:D
- \__kernel_primitive:NN \vfuzz \tex_vfuzz:D
- \__kernel_primitive:NN \voffset \tex_voffset:D
- \__kernel_primitive:NN \vrule \tex_vrule:D
- \__kernel_primitive:NN \vsize \tex_vsize:D
- \__kernel_primitive:NN \vskip \tex_vskip:D
- \__kernel_primitive:NN \vsplit \tex_vsplit:D
- \__kernel_primitive:NN \vss \tex_vss:D
- \__kernel_primitive:NN \vtop \tex_vtop:D
- \__kernel_primitive:NN \wd \tex_wd:D
- \__kernel_primitive:NN \widowpenalty \tex_widowpenalty:D
- \__kernel_primitive:NN \write \tex_write:D
- \__kernel_primitive:NN \xdef \tex_xdef:D
- \__kernel_primitive:NN \xleaders \tex_xleaders:D
- \__kernel_primitive:NN \xspaceskip \tex_xspaceskip:D
- \__kernel_primitive:NN \year \tex_year:D
+ \__kernel_primitive:NN \above \tex_above:D
+ \__kernel_primitive:NN \abovedisplayshortskip \tex_abovedisplayshortskip:D
+ \__kernel_primitive:NN \abovedisplayskip \tex_abovedisplayskip:D
+ \__kernel_primitive:NN \abovewithdelims \tex_abovewithdelims:D
+ \__kernel_primitive:NN \accent \tex_accent:D
+ \__kernel_primitive:NN \adjdemerits \tex_adjdemerits:D
+ \__kernel_primitive:NN \advance \tex_advance:D
+ \__kernel_primitive:NN \afterassignment \tex_afterassignment:D
+ \__kernel_primitive:NN \aftergroup \tex_aftergroup:D
+ \__kernel_primitive:NN \atop \tex_atop:D
+ \__kernel_primitive:NN \atopwithdelims \tex_atopwithdelims:D
+ \__kernel_primitive:NN \badness \tex_badness:D
+ \__kernel_primitive:NN \baselineskip \tex_baselineskip:D
+ \__kernel_primitive:NN \batchmode \tex_batchmode:D
+ \__kernel_primitive:NN \begingroup \tex_begingroup:D
+ \__kernel_primitive:NN \belowdisplayshortskip \tex_belowdisplayshortskip:D
+ \__kernel_primitive:NN \belowdisplayskip \tex_belowdisplayskip:D
+ \__kernel_primitive:NN \binoppenalty \tex_binoppenalty:D
+ \__kernel_primitive:NN \botmark \tex_botmark:D
+ \__kernel_primitive:NN \box \tex_box:D
+ \__kernel_primitive:NN \boxmaxdepth \tex_boxmaxdepth:D
+ \__kernel_primitive:NN \brokenpenalty \tex_brokenpenalty:D
+ \__kernel_primitive:NN \catcode \tex_catcode:D
+ \__kernel_primitive:NN \char \tex_char:D
+ \__kernel_primitive:NN \chardef \tex_chardef:D
+ \__kernel_primitive:NN \cleaders \tex_cleaders:D
+ \__kernel_primitive:NN \closein \tex_closein:D
+ \__kernel_primitive:NN \closeout \tex_closeout:D
+ \__kernel_primitive:NN \clubpenalty \tex_clubpenalty:D
+ \__kernel_primitive:NN \copy \tex_copy:D
+ \__kernel_primitive:NN \count \tex_count:D
+ \__kernel_primitive:NN \countdef \tex_countdef:D
+ \__kernel_primitive:NN \cr \tex_cr:D
+ \__kernel_primitive:NN \crcr \tex_crcr:D
+ \__kernel_primitive:NN \csname \tex_csname:D
+ \__kernel_primitive:NN \day \tex_day:D
+ \__kernel_primitive:NN \deadcycles \tex_deadcycles:D
+ \__kernel_primitive:NN \def \tex_def:D
+ \__kernel_primitive:NN \defaulthyphenchar \tex_defaulthyphenchar:D
+ \__kernel_primitive:NN \defaultskewchar \tex_defaultskewchar:D
+ \__kernel_primitive:NN \delcode \tex_delcode:D
+ \__kernel_primitive:NN \delimiter \tex_delimiter:D
+ \__kernel_primitive:NN \delimiterfactor \tex_delimiterfactor:D
+ \__kernel_primitive:NN \delimitershortfall \tex_delimitershortfall:D
+ \__kernel_primitive:NN \dimen \tex_dimen:D
+ \__kernel_primitive:NN \dimendef \tex_dimendef:D
+ \__kernel_primitive:NN \discretionary \tex_discretionary:D
+ \__kernel_primitive:NN \displayindent \tex_displayindent:D
+ \__kernel_primitive:NN \displaylimits \tex_displaylimits:D
+ \__kernel_primitive:NN \displaystyle \tex_displaystyle:D
+ \__kernel_primitive:NN \displaywidowpenalty \tex_displaywidowpenalty:D
+ \__kernel_primitive:NN \displaywidth \tex_displaywidth:D
+ \__kernel_primitive:NN \divide \tex_divide:D
+ \__kernel_primitive:NN \doublehyphendemerits \tex_doublehyphendemerits:D
+ \__kernel_primitive:NN \dp \tex_dp:D
+ \__kernel_primitive:NN \dump \tex_dump:D
+ \__kernel_primitive:NN \edef \tex_edef:D
+ \__kernel_primitive:NN \else \tex_else:D
+ \__kernel_primitive:NN \emergencystretch \tex_emergencystretch:D
+ \__kernel_primitive:NN \end \tex_end:D
+ \__kernel_primitive:NN \endcsname \tex_endcsname:D
+ \__kernel_primitive:NN \endgroup \tex_endgroup:D
+ \__kernel_primitive:NN \endinput \tex_endinput:D
+ \__kernel_primitive:NN \endlinechar \tex_endlinechar:D
+ \__kernel_primitive:NN \eqno \tex_eqno:D
+ \__kernel_primitive:NN \errhelp \tex_errhelp:D
+ \__kernel_primitive:NN \errmessage \tex_errmessage:D
+ \__kernel_primitive:NN \errorcontextlines \tex_errorcontextlines:D
+ \__kernel_primitive:NN \errorstopmode \tex_errorstopmode:D
+ \__kernel_primitive:NN \escapechar \tex_escapechar:D
+ \__kernel_primitive:NN \everycr \tex_everycr:D
+ \__kernel_primitive:NN \everydisplay \tex_everydisplay:D
+ \__kernel_primitive:NN \everyhbox \tex_everyhbox:D
+ \__kernel_primitive:NN \everyjob \tex_everyjob:D
+ \__kernel_primitive:NN \everymath \tex_everymath:D
+ \__kernel_primitive:NN \everypar \tex_everypar:D
+ \__kernel_primitive:NN \everyvbox \tex_everyvbox:D
+ \__kernel_primitive:NN \exhyphenpenalty \tex_exhyphenpenalty:D
+ \__kernel_primitive:NN \expandafter \tex_expandafter:D
+ \__kernel_primitive:NN \fam \tex_fam:D
+ \__kernel_primitive:NN \fi \tex_fi:D
+ \__kernel_primitive:NN \finalhyphendemerits \tex_finalhyphendemerits:D
+ \__kernel_primitive:NN \firstmark \tex_firstmark:D
+ \__kernel_primitive:NN \floatingpenalty \tex_floatingpenalty:D
+ \__kernel_primitive:NN \font \tex_font:D
+ \__kernel_primitive:NN \fontdimen \tex_fontdimen:D
+ \__kernel_primitive:NN \fontname \tex_fontname:D
+ \__kernel_primitive:NN \futurelet \tex_futurelet:D
+ \__kernel_primitive:NN \gdef \tex_gdef:D
+ \__kernel_primitive:NN \global \tex_global:D
+ \__kernel_primitive:NN \globaldefs \tex_globaldefs:D
+ \__kernel_primitive:NN \halign \tex_halign:D
+ \__kernel_primitive:NN \hangafter \tex_hangafter:D
+ \__kernel_primitive:NN \hangindent \tex_hangindent:D
+ \__kernel_primitive:NN \hbadness \tex_hbadness:D
+ \__kernel_primitive:NN \hbox \tex_hbox:D
+ \__kernel_primitive:NN \hfil \tex_hfil:D
+ \__kernel_primitive:NN \hfill \tex_hfill:D
+ \__kernel_primitive:NN \hfilneg \tex_hfilneg:D
+ \__kernel_primitive:NN \hfuzz \tex_hfuzz:D
+ \__kernel_primitive:NN \hoffset \tex_hoffset:D
+ \__kernel_primitive:NN \holdinginserts \tex_holdinginserts:D
+ \__kernel_primitive:NN \hrule \tex_hrule:D
+ \__kernel_primitive:NN \hsize \tex_hsize:D
+ \__kernel_primitive:NN \hskip \tex_hskip:D
+ \__kernel_primitive:NN \hss \tex_hss:D
+ \__kernel_primitive:NN \ht \tex_ht:D
+ \__kernel_primitive:NN \hyphenation \tex_hyphenation:D
+ \__kernel_primitive:NN \hyphenchar \tex_hyphenchar:D
+ \__kernel_primitive:NN \hyphenpenalty \tex_hyphenpenalty:D
+ \__kernel_primitive:NN \if \tex_if:D
+ \__kernel_primitive:NN \ifcase \tex_ifcase:D
+ \__kernel_primitive:NN \ifcat \tex_ifcat:D
+ \__kernel_primitive:NN \ifdim \tex_ifdim:D
+ \__kernel_primitive:NN \ifeof \tex_ifeof:D
+ \__kernel_primitive:NN \iffalse \tex_iffalse:D
+ \__kernel_primitive:NN \ifhbox \tex_ifhbox:D
+ \__kernel_primitive:NN \ifhmode \tex_ifhmode:D
+ \__kernel_primitive:NN \ifinner \tex_ifinner:D
+ \__kernel_primitive:NN \ifmmode \tex_ifmmode:D
+ \__kernel_primitive:NN \ifnum \tex_ifnum:D
+ \__kernel_primitive:NN \ifodd \tex_ifodd:D
+ \__kernel_primitive:NN \iftrue \tex_iftrue:D
+ \__kernel_primitive:NN \ifvbox \tex_ifvbox:D
+ \__kernel_primitive:NN \ifvmode \tex_ifvmode:D
+ \__kernel_primitive:NN \ifvoid \tex_ifvoid:D
+ \__kernel_primitive:NN \ifx \tex_ifx:D
+ \__kernel_primitive:NN \ignorespaces \tex_ignorespaces:D
+ \__kernel_primitive:NN \immediate \tex_immediate:D
+ \__kernel_primitive:NN \indent \tex_indent:D
+ \__kernel_primitive:NN \input \tex_input:D
+ \__kernel_primitive:NN \inputlineno \tex_inputlineno:D
+ \__kernel_primitive:NN \insert \tex_insert:D
+ \__kernel_primitive:NN \insertpenalties \tex_insertpenalties:D
+ \__kernel_primitive:NN \interlinepenalty \tex_interlinepenalty:D
+ \__kernel_primitive:NN \jobname \tex_jobname:D
+ \__kernel_primitive:NN \kern \tex_kern:D
+ \__kernel_primitive:NN \language \tex_language:D
+ \__kernel_primitive:NN \lastbox \tex_lastbox:D
+ \__kernel_primitive:NN \lastkern \tex_lastkern:D
+ \__kernel_primitive:NN \lastpenalty \tex_lastpenalty:D
+ \__kernel_primitive:NN \lastskip \tex_lastskip:D
+ \__kernel_primitive:NN \lccode \tex_lccode:D
+ \__kernel_primitive:NN \leaders \tex_leaders:D
+ \__kernel_primitive:NN \left \tex_left:D
+ \__kernel_primitive:NN \lefthyphenmin \tex_lefthyphenmin:D
+ \__kernel_primitive:NN \leftskip \tex_leftskip:D
+ \__kernel_primitive:NN \leqno \tex_leqno:D
+ \__kernel_primitive:NN \let \tex_let:D
+ \__kernel_primitive:NN \limits \tex_limits:D
+ \__kernel_primitive:NN \linepenalty \tex_linepenalty:D
+ \__kernel_primitive:NN \lineskip \tex_lineskip:D
+ \__kernel_primitive:NN \lineskiplimit \tex_lineskiplimit:D
+ \__kernel_primitive:NN \long \tex_long:D
+ \__kernel_primitive:NN \looseness \tex_looseness:D
+ \__kernel_primitive:NN \lower \tex_lower:D
+ \__kernel_primitive:NN \lowercase \tex_lowercase:D
+ \__kernel_primitive:NN \mag \tex_mag:D
+ \__kernel_primitive:NN \mark \tex_mark:D
+ \__kernel_primitive:NN \mathaccent \tex_mathaccent:D
+ \__kernel_primitive:NN \mathbin \tex_mathbin:D
+ \__kernel_primitive:NN \mathchar \tex_mathchar:D
+ \__kernel_primitive:NN \mathchardef \tex_mathchardef:D
+ \__kernel_primitive:NN \mathchoice \tex_mathchoice:D
+ \__kernel_primitive:NN \mathclose \tex_mathclose:D
+ \__kernel_primitive:NN \mathcode \tex_mathcode:D
+ \__kernel_primitive:NN \mathinner \tex_mathinner:D
+ \__kernel_primitive:NN \mathop \tex_mathop:D
+ \__kernel_primitive:NN \mathopen \tex_mathopen:D
+ \__kernel_primitive:NN \mathord \tex_mathord:D
+ \__kernel_primitive:NN \mathpunct \tex_mathpunct:D
+ \__kernel_primitive:NN \mathrel \tex_mathrel:D
+ \__kernel_primitive:NN \mathsurround \tex_mathsurround:D
+ \__kernel_primitive:NN \maxdeadcycles \tex_maxdeadcycles:D
+ \__kernel_primitive:NN \maxdepth \tex_maxdepth:D
+ \__kernel_primitive:NN \meaning \tex_meaning:D
+ \__kernel_primitive:NN \medmuskip \tex_medmuskip:D
+ \__kernel_primitive:NN \message \tex_message:D
+ \__kernel_primitive:NN \mkern \tex_mkern:D
+ \__kernel_primitive:NN \month \tex_month:D
+ \__kernel_primitive:NN \moveleft \tex_moveleft:D
+ \__kernel_primitive:NN \moveright \tex_moveright:D
+ \__kernel_primitive:NN \mskip \tex_mskip:D
+ \__kernel_primitive:NN \multiply \tex_multiply:D
+ \__kernel_primitive:NN \muskip \tex_muskip:D
+ \__kernel_primitive:NN \muskipdef \tex_muskipdef:D
+ \__kernel_primitive:NN \newlinechar \tex_newlinechar:D
+ \__kernel_primitive:NN \noalign \tex_noalign:D
+ \__kernel_primitive:NN \noboundary \tex_noboundary:D
+ \__kernel_primitive:NN \noexpand \tex_noexpand:D
+ \__kernel_primitive:NN \noindent \tex_noindent:D
+ \__kernel_primitive:NN \nolimits \tex_nolimits:D
+ \__kernel_primitive:NN \nonscript \tex_nonscript:D
+ \__kernel_primitive:NN \nonstopmode \tex_nonstopmode:D
+ \__kernel_primitive:NN \nulldelimiterspace \tex_nulldelimiterspace:D
+ \__kernel_primitive:NN \nullfont \tex_nullfont:D
+ \__kernel_primitive:NN \number \tex_number:D
+ \__kernel_primitive:NN \omit \tex_omit:D
+ \__kernel_primitive:NN \openin \tex_openin:D
+ \__kernel_primitive:NN \openout \tex_openout:D
+ \__kernel_primitive:NN \or \tex_or:D
+ \__kernel_primitive:NN \outer \tex_outer:D
+ \__kernel_primitive:NN \output \tex_output:D
+ \__kernel_primitive:NN \outputpenalty \tex_outputpenalty:D
+ \__kernel_primitive:NN \over \tex_over:D
+ \__kernel_primitive:NN \overfullrule \tex_overfullrule:D
+ \__kernel_primitive:NN \overline \tex_overline:D
+ \__kernel_primitive:NN \overwithdelims \tex_overwithdelims:D
+ \__kernel_primitive:NN \pagedepth \tex_pagedepth:D
+ \__kernel_primitive:NN \pagefilllstretch \tex_pagefilllstretch:D
+ \__kernel_primitive:NN \pagefillstretch \tex_pagefillstretch:D
+ \__kernel_primitive:NN \pagefilstretch \tex_pagefilstretch:D
+ \__kernel_primitive:NN \pagegoal \tex_pagegoal:D
+ \__kernel_primitive:NN \pageshrink \tex_pageshrink:D
+ \__kernel_primitive:NN \pagestretch \tex_pagestretch:D
+ \__kernel_primitive:NN \pagetotal \tex_pagetotal:D
+ \__kernel_primitive:NN \par \tex_par:D
+ \__kernel_primitive:NN \parfillskip \tex_parfillskip:D
+ \__kernel_primitive:NN \parindent \tex_parindent:D
+ \__kernel_primitive:NN \parshape \tex_parshape:D
+ \__kernel_primitive:NN \parskip \tex_parskip:D
+ \__kernel_primitive:NN \patterns \tex_patterns:D
+ \__kernel_primitive:NN \pausing \tex_pausing:D
+ \__kernel_primitive:NN \penalty \tex_penalty:D
+ \__kernel_primitive:NN \postdisplaypenalty \tex_postdisplaypenalty:D
+ \__kernel_primitive:NN \predisplaypenalty \tex_predisplaypenalty:D
+ \__kernel_primitive:NN \predisplaysize \tex_predisplaysize:D
+ \__kernel_primitive:NN \pretolerance \tex_pretolerance:D
+ \__kernel_primitive:NN \prevdepth \tex_prevdepth:D
+ \__kernel_primitive:NN \prevgraf \tex_prevgraf:D
+ \__kernel_primitive:NN \radical \tex_radical:D
+ \__kernel_primitive:NN \raise \tex_raise:D
+ \__kernel_primitive:NN \read \tex_read:D
+ \__kernel_primitive:NN \relax \tex_relax:D
+ \__kernel_primitive:NN \relpenalty \tex_relpenalty:D
+ \__kernel_primitive:NN \right \tex_right:D
+ \__kernel_primitive:NN \righthyphenmin \tex_righthyphenmin:D
+ \__kernel_primitive:NN \rightskip \tex_rightskip:D
+ \__kernel_primitive:NN \romannumeral \tex_romannumeral:D
+ \__kernel_primitive:NN \scriptfont \tex_scriptfont:D
+ \__kernel_primitive:NN \scriptscriptfont \tex_scriptscriptfont:D
+ \__kernel_primitive:NN \scriptscriptstyle \tex_scriptscriptstyle:D
+ \__kernel_primitive:NN \scriptspace \tex_scriptspace:D
+ \__kernel_primitive:NN \scriptstyle \tex_scriptstyle:D
+ \__kernel_primitive:NN \scrollmode \tex_scrollmode:D
+ \__kernel_primitive:NN \setbox \tex_setbox:D
+ \__kernel_primitive:NN \setlanguage \tex_setlanguage:D
+ \__kernel_primitive:NN \sfcode \tex_sfcode:D
+ \__kernel_primitive:NN \shipout \tex_shipout:D
+ \__kernel_primitive:NN \show \tex_show:D
+ \__kernel_primitive:NN \showbox \tex_showbox:D
+ \__kernel_primitive:NN \showboxbreadth \tex_showboxbreadth:D
+ \__kernel_primitive:NN \showboxdepth \tex_showboxdepth:D
+ \__kernel_primitive:NN \showlists \tex_showlists:D
+ \__kernel_primitive:NN \showthe \tex_showthe:D
+ \__kernel_primitive:NN \skewchar \tex_skewchar:D
+ \__kernel_primitive:NN \skip \tex_skip:D
+ \__kernel_primitive:NN \skipdef \tex_skipdef:D
+ \__kernel_primitive:NN \spacefactor \tex_spacefactor:D
+ \__kernel_primitive:NN \spaceskip \tex_spaceskip:D
+ \__kernel_primitive:NN \span \tex_span:D
+ \__kernel_primitive:NN \special \tex_special:D
+ \__kernel_primitive:NN \splitbotmark \tex_splitbotmark:D
+ \__kernel_primitive:NN \splitfirstmark \tex_splitfirstmark:D
+ \__kernel_primitive:NN \splitmaxdepth \tex_splitmaxdepth:D
+ \__kernel_primitive:NN \splittopskip \tex_splittopskip:D
+ \__kernel_primitive:NN \string \tex_string:D
+ \__kernel_primitive:NN \tabskip \tex_tabskip:D
+ \__kernel_primitive:NN \textfont \tex_textfont:D
+ \__kernel_primitive:NN \textstyle \tex_textstyle:D
+ \__kernel_primitive:NN \the \tex_the:D
+ \__kernel_primitive:NN \thickmuskip \tex_thickmuskip:D
+ \__kernel_primitive:NN \thinmuskip \tex_thinmuskip:D
+ \__kernel_primitive:NN \time \tex_time:D
+ \__kernel_primitive:NN \toks \tex_toks:D
+ \__kernel_primitive:NN \toksdef \tex_toksdef:D
+ \__kernel_primitive:NN \tolerance \tex_tolerance:D
+ \__kernel_primitive:NN \topmark \tex_topmark:D
+ \__kernel_primitive:NN \topskip \tex_topskip:D
+ \__kernel_primitive:NN \tracingcommands \tex_tracingcommands:D
+ \__kernel_primitive:NN \tracinglostchars \tex_tracinglostchars:D
+ \__kernel_primitive:NN \tracingmacros \tex_tracingmacros:D
+ \__kernel_primitive:NN \tracingonline \tex_tracingonline:D
+ \__kernel_primitive:NN \tracingoutput \tex_tracingoutput:D
+ \__kernel_primitive:NN \tracingpages \tex_tracingpages:D
+ \__kernel_primitive:NN \tracingparagraphs \tex_tracingparagraphs:D
+ \__kernel_primitive:NN \tracingrestores \tex_tracingrestores:D
+ \__kernel_primitive:NN \tracingstats \tex_tracingstats:D
+ \__kernel_primitive:NN \uccode \tex_uccode:D
+ \__kernel_primitive:NN \uchyph \tex_uchyph:D
+ \__kernel_primitive:NN \underline \tex_underline:D
+ \__kernel_primitive:NN \unhbox \tex_unhbox:D
+ \__kernel_primitive:NN \unhcopy \tex_unhcopy:D
+ \__kernel_primitive:NN \unkern \tex_unkern:D
+ \__kernel_primitive:NN \unpenalty \tex_unpenalty:D
+ \__kernel_primitive:NN \unskip \tex_unskip:D
+ \__kernel_primitive:NN \unvbox \tex_unvbox:D
+ \__kernel_primitive:NN \unvcopy \tex_unvcopy:D
+ \__kernel_primitive:NN \uppercase \tex_uppercase:D
+ \__kernel_primitive:NN \vadjust \tex_vadjust:D
+ \__kernel_primitive:NN \valign \tex_valign:D
+ \__kernel_primitive:NN \vbadness \tex_vbadness:D
+ \__kernel_primitive:NN \vbox \tex_vbox:D
+ \__kernel_primitive:NN \vcenter \tex_vcenter:D
+ \__kernel_primitive:NN \vfil \tex_vfil:D
+ \__kernel_primitive:NN \vfill \tex_vfill:D
+ \__kernel_primitive:NN \vfilneg \tex_vfilneg:D
+ \__kernel_primitive:NN \vfuzz \tex_vfuzz:D
+ \__kernel_primitive:NN \voffset \tex_voffset:D
+ \__kernel_primitive:NN \vrule \tex_vrule:D
+ \__kernel_primitive:NN \vsize \tex_vsize:D
+ \__kernel_primitive:NN \vskip \tex_vskip:D
+ \__kernel_primitive:NN \vsplit \tex_vsplit:D
+ \__kernel_primitive:NN \vss \tex_vss:D
+ \__kernel_primitive:NN \vtop \tex_vtop:D
+ \__kernel_primitive:NN \wd \tex_wd:D
+ \__kernel_primitive:NN \widowpenalty \tex_widowpenalty:D
+ \__kernel_primitive:NN \write \tex_write:D
+ \__kernel_primitive:NN \xdef \tex_xdef:D
+ \__kernel_primitive:NN \xleaders \tex_xleaders:D
+ \__kernel_primitive:NN \xspaceskip \tex_xspaceskip:D
+ \__kernel_primitive:NN \year \tex_year:D
% \end{macrocode}
% Since \LaTeX3 requires at least the \eTeX{} extensions,
% we also rename the additional primitives. These are all
-% given the prefix |\etex_|.
+% given the prefix | \etex_|.
% \begin{macrocode}
- \__kernel_primitive:NN \beginL \etex_beginL:D
- \__kernel_primitive:NN \beginR \etex_beginR:D
- \__kernel_primitive:NN \botmarks \etex_botmarks:D
- \__kernel_primitive:NN \clubpenalties \etex_clubpenalties:D
- \__kernel_primitive:NN \currentgrouplevel \etex_currentgrouplevel:D
- \__kernel_primitive:NN \currentgrouptype \etex_currentgrouptype:D
- \__kernel_primitive:NN \currentifbranch \etex_currentifbranch:D
- \__kernel_primitive:NN \currentiflevel \etex_currentiflevel:D
- \__kernel_primitive:NN \currentiftype \etex_currentiftype:D
- \__kernel_primitive:NN \detokenize \etex_detokenize:D
- \__kernel_primitive:NN \dimexpr \etex_dimexpr:D
- \__kernel_primitive:NN \displaywidowpenalties \etex_displaywidowpenalties:D
- \__kernel_primitive:NN \endL \etex_endL:D
- \__kernel_primitive:NN \endR \etex_endR:D
- \__kernel_primitive:NN \eTeXrevision \etex_eTeXrevision:D
- \__kernel_primitive:NN \eTeXversion \etex_eTeXversion:D
- \__kernel_primitive:NN \everyeof \etex_everyeof:D
- \__kernel_primitive:NN \firstmarks \etex_firstmarks:D
- \__kernel_primitive:NN \fontchardp \etex_fontchardp:D
- \__kernel_primitive:NN \fontcharht \etex_fontcharht:D
- \__kernel_primitive:NN \fontcharic \etex_fontcharic:D
- \__kernel_primitive:NN \fontcharwd \etex_fontcharwd:D
- \__kernel_primitive:NN \glueexpr \etex_glueexpr:D
- \__kernel_primitive:NN \glueshrink \etex_glueshrink:D
- \__kernel_primitive:NN \glueshrinkorder \etex_glueshrinkorder:D
- \__kernel_primitive:NN \gluestretch \etex_gluestretch:D
- \__kernel_primitive:NN \gluestretchorder \etex_gluestretchorder:D
- \__kernel_primitive:NN \gluetomu \etex_gluetomu:D
- \__kernel_primitive:NN \ifcsname \etex_ifcsname:D
- \__kernel_primitive:NN \ifdefined \etex_ifdefined:D
- \__kernel_primitive:NN \iffontchar \etex_iffontchar:D
- \__kernel_primitive:NN \interactionmode \etex_interactionmode:D
- \__kernel_primitive:NN \interlinepenalties \etex_interlinepenalties:D
- \__kernel_primitive:NN \lastlinefit \etex_lastlinefit:D
- \__kernel_primitive:NN \lastnodetype \etex_lastnodetype:D
- \__kernel_primitive:NN \marks \etex_marks:D
- \__kernel_primitive:NN \middle \etex_middle:D
- \__kernel_primitive:NN \muexpr \etex_muexpr:D
- \__kernel_primitive:NN \mutoglue \etex_mutoglue:D
- \__kernel_primitive:NN \numexpr \etex_numexpr:D
- \__kernel_primitive:NN \pagediscards \etex_pagediscards:D
- \__kernel_primitive:NN \parshapedimen \etex_parshapedimen:D
- \__kernel_primitive:NN \parshapeindent \etex_parshapeindent:D
- \__kernel_primitive:NN \parshapelength \etex_parshapelength:D
- \__kernel_primitive:NN \predisplaydirection \etex_predisplaydirection:D
- \__kernel_primitive:NN \protected \etex_protected:D
- \__kernel_primitive:NN \readline \etex_readline:D
- \__kernel_primitive:NN \savinghyphcodes \etex_savinghyphcodes:D
- \__kernel_primitive:NN \savingvdiscards \etex_savingvdiscards:D
- \__kernel_primitive:NN \scantokens \etex_scantokens:D
- \__kernel_primitive:NN \showgroups \etex_showgroups:D
- \__kernel_primitive:NN \showifs \etex_showifs:D
- \__kernel_primitive:NN \showtokens \etex_showtokens:D
- \__kernel_primitive:NN \splitbotmarks \etex_splitbotmarks:D
- \__kernel_primitive:NN \splitdiscards \etex_splitdiscards:D
- \__kernel_primitive:NN \splitfirstmarks \etex_splitfirstmarks:D
- \__kernel_primitive:NN \TeXXeTstate \etex_TeXXeTstate:D
- \__kernel_primitive:NN \topmarks \etex_topmarks:D
- \__kernel_primitive:NN \tracingassigns \etex_tracingassigns:D
- \__kernel_primitive:NN \tracinggroups \etex_tracinggroups:D
- \__kernel_primitive:NN \tracingifs \etex_tracingifs:D
- \__kernel_primitive:NN \tracingnesting \etex_tracingnesting:D
- \__kernel_primitive:NN \tracingscantokens \etex_tracingscantokens:D
- \__kernel_primitive:NN \unexpanded \etex_unexpanded:D
- \__kernel_primitive:NN \unless \etex_unless:D
- \__kernel_primitive:NN \widowpenalties \etex_widowpenalties:D
+ \__kernel_primitive:NN \beginL \etex_beginL:D
+ \__kernel_primitive:NN \beginR \etex_beginR:D
+ \__kernel_primitive:NN \botmarks \etex_botmarks:D
+ \__kernel_primitive:NN \clubpenalties \etex_clubpenalties:D
+ \__kernel_primitive:NN \currentgrouplevel \etex_currentgrouplevel:D
+ \__kernel_primitive:NN \currentgrouptype \etex_currentgrouptype:D
+ \__kernel_primitive:NN \currentifbranch \etex_currentifbranch:D
+ \__kernel_primitive:NN \currentiflevel \etex_currentiflevel:D
+ \__kernel_primitive:NN \currentiftype \etex_currentiftype:D
+ \__kernel_primitive:NN \detokenize \etex_detokenize:D
+ \__kernel_primitive:NN \dimexpr \etex_dimexpr:D
+ \__kernel_primitive:NN \displaywidowpenalties \etex_displaywidowpenalties:D
+ \__kernel_primitive:NN \endL \etex_endL:D
+ \__kernel_primitive:NN \endR \etex_endR:D
+ \__kernel_primitive:NN \eTeXrevision \etex_eTeXrevision:D
+ \__kernel_primitive:NN \eTeXversion \etex_eTeXversion:D
+ \__kernel_primitive:NN \everyeof \etex_everyeof:D
+ \__kernel_primitive:NN \firstmarks \etex_firstmarks:D
+ \__kernel_primitive:NN \fontchardp \etex_fontchardp:D
+ \__kernel_primitive:NN \fontcharht \etex_fontcharht:D
+ \__kernel_primitive:NN \fontcharic \etex_fontcharic:D
+ \__kernel_primitive:NN \fontcharwd \etex_fontcharwd:D
+ \__kernel_primitive:NN \glueexpr \etex_glueexpr:D
+ \__kernel_primitive:NN \glueshrink \etex_glueshrink:D
+ \__kernel_primitive:NN \glueshrinkorder \etex_glueshrinkorder:D
+ \__kernel_primitive:NN \gluestretch \etex_gluestretch:D
+ \__kernel_primitive:NN \gluestretchorder \etex_gluestretchorder:D
+ \__kernel_primitive:NN \gluetomu \etex_gluetomu:D
+ \__kernel_primitive:NN \ifcsname \etex_ifcsname:D
+ \__kernel_primitive:NN \ifdefined \etex_ifdefined:D
+ \__kernel_primitive:NN \iffontchar \etex_iffontchar:D
+ \__kernel_primitive:NN \interactionmode \etex_interactionmode:D
+ \__kernel_primitive:NN \interlinepenalties \etex_interlinepenalties:D
+ \__kernel_primitive:NN \lastlinefit \etex_lastlinefit:D
+ \__kernel_primitive:NN \lastnodetype \etex_lastnodetype:D
+ \__kernel_primitive:NN \marks \etex_marks:D
+ \__kernel_primitive:NN \middle \etex_middle:D
+ \__kernel_primitive:NN \muexpr \etex_muexpr:D
+ \__kernel_primitive:NN \mutoglue \etex_mutoglue:D
+ \__kernel_primitive:NN \numexpr \etex_numexpr:D
+ \__kernel_primitive:NN \pagediscards \etex_pagediscards:D
+ \__kernel_primitive:NN \parshapedimen \etex_parshapedimen:D
+ \__kernel_primitive:NN \parshapeindent \etex_parshapeindent:D
+ \__kernel_primitive:NN \parshapelength \etex_parshapelength:D
+ \__kernel_primitive:NN \predisplaydirection \etex_predisplaydirection:D
+ \__kernel_primitive:NN \protected \etex_protected:D
+ \__kernel_primitive:NN \readline \etex_readline:D
+ \__kernel_primitive:NN \savinghyphcodes \etex_savinghyphcodes:D
+ \__kernel_primitive:NN \savingvdiscards \etex_savingvdiscards:D
+ \__kernel_primitive:NN \scantokens \etex_scantokens:D
+ \__kernel_primitive:NN \showgroups \etex_showgroups:D
+ \__kernel_primitive:NN \showifs \etex_showifs:D
+ \__kernel_primitive:NN \showtokens \etex_showtokens:D
+ \__kernel_primitive:NN \splitbotmarks \etex_splitbotmarks:D
+ \__kernel_primitive:NN \splitdiscards \etex_splitdiscards:D
+ \__kernel_primitive:NN \splitfirstmarks \etex_splitfirstmarks:D
+ \__kernel_primitive:NN \TeXXeTstate \etex_TeXXeTstate:D
+ \__kernel_primitive:NN \topmarks \etex_topmarks:D
+ \__kernel_primitive:NN \tracingassigns \etex_tracingassigns:D
+ \__kernel_primitive:NN \tracinggroups \etex_tracinggroups:D
+ \__kernel_primitive:NN \tracingifs \etex_tracingifs:D
+ \__kernel_primitive:NN \tracingnesting \etex_tracingnesting:D
+ \__kernel_primitive:NN \tracingscantokens \etex_tracingscantokens:D
+ \__kernel_primitive:NN \unexpanded \etex_unexpanded:D
+ \__kernel_primitive:NN \unless \etex_unless:D
+ \__kernel_primitive:NN \widowpenalties \etex_widowpenalties:D
% \end{macrocode}
% The newer primitives are more complex: there are an awful lot of them,
-% and we don't use them all at the moment. So the following is selective.
+% and we don't use them all at the moment. So the following is selective,
+% based on those also available in \LuaTeX{} or used in \pkg{expl3}.
% In the case of the \pdfTeX{} primitives, we retain |pdf| at the start
% of the names \emph{only} for directly PDF-related primitives, as
% there are a lot of \pdfTeX{} primitives that start \cs{pdf\ldots} but
-% are not related to PDF output. These ones related to PDF output.
+% are not related to PDF output. These ones related to PDF output or only
+% work in PDF mode.
% \begin{macrocode}
- \__kernel_primitive:NN \pdfcreationdate \pdftex_pdfcreationdate:D
- \__kernel_primitive:NN \pdfcolorstack \pdftex_pdfcolorstack:D
- \__kernel_primitive:NN \pdfcompresslevel \pdftex_pdfcompresslevel:D
- \__kernel_primitive:NN \pdfdecimaldigits \pdftex_pdfdecimaldigits:D
- \__kernel_primitive:NN \pdfhorigin \pdftex_pdfhorigin:D
- \__kernel_primitive:NN \pdfinfo \pdftex_pdfinfo:D
- \__kernel_primitive:NN \pdflastxform \pdftex_pdflastxform:D
- \__kernel_primitive:NN \pdfliteral \pdftex_pdfliteral:D
- \__kernel_primitive:NN \pdfminorversion \pdftex_pdfminorversion:D
- \__kernel_primitive:NN \pdfobjcompresslevel \pdftex_pdfobjcompresslevel:D
- \__kernel_primitive:NN \pdfoutput \pdftex_pdfoutput:D
- \__kernel_primitive:NN \pdfrefxform \pdftex_pdfrefxform:D
- \__kernel_primitive:NN \pdfrestore \pdftex_pdfrestore:D
- \__kernel_primitive:NN \pdfsave \pdftex_pdfsave:D
- \__kernel_primitive:NN \pdfsetmatrix \pdftex_pdfsetmatrix:D
- \__kernel_primitive:NN \pdfpkresolution \pdftex_pdfpkresolution:D
- \__kernel_primitive:NN \pdfvorigin \pdftex_pdfvorigin:D
- \__kernel_primitive:NN \pdfxform \pdftex_pdfxform:D
+ \__kernel_primitive:NN \pdfannot \pdttex_pdfannot:D
+ \__kernel_primitive:NN \pdfcatalog \pdftex_pdfcatalog:D
+ \__kernel_primitive:NN \pdfcompresslevel \pdftex_pdfcompresslevel:D
+ \__kernel_primitive:NN \pdfcolorstack \pdftex_pdfcolorstack:D
+ \__kernel_primitive:NN \pdfcolorstackinit \pdftex_pdfcolorstackinit:D
+ \__kernel_primitive:NN \pdfcreationdate \pdftex_pdfcreationdate:D
+ \__kernel_primitive:NN \pdfdecimaldigits \pdftex_pdfdecimaldigits:D
+ \__kernel_primitive:NN \pdfdest \pdftex_pdfdest:D
+ \__kernel_primitive:NN \pdfdestmargin \pdftex_pdfdestmargin:D
+ \__kernel_primitive:NN \pdfendlink \pdftex_pdfendlink:D
+ \__kernel_primitive:NN \pdfendthread \pdftex_pdfendthread:D
+ \__kernel_primitive:NN \pdffontattr \pdftex_pdffontattr:D
+ \__kernel_primitive:NN \pdffontname \pdftex_pdffontname:D
+ \__kernel_primitive:NN \pdffontobjnum \pdftex_pdffontobjnum:D
+ \__kernel_primitive:NN \pdfgamma \pdftex_pdfgamma:D
+ \__kernel_primitive:NN \pdfimageapplygamma \pdftex_pdfimageapplygamma:D
+ \__kernel_primitive:NN \pdfimagegamma \pdftex_pdfimagegamma:D
+ \__kernel_primitive:NN \pdfgentounicode \pdftex_pdfgentounicode:D
+ \__kernel_primitive:NN \pdfglyphtounicode \pdftex_pdfglyphtounicode:D
+ \__kernel_primitive:NN \pdfhorigin \pdftex_pdfhorigin:D
+ \__kernel_primitive:NN \pdfimagehicolor \pdftex_pdfimagehicolor:D
+ \__kernel_primitive:NN \pdfimageresolution \pdftex_pdfimageresolution:D
+ \__kernel_primitive:NN \pdfincludechars \pdftex_pdfincludechars:D
+ \__kernel_primitive:NN \pdfinclusioncopyfonts \pdftex_pdfinclusioncopyfonts:D
+ \__kernel_primitive:NN \pdfinclusionerrorlevel \pdftex_pdfinclusionerrorlevel:D
+ \__kernel_primitive:NN \pdfinfo \pdftex_pdfinfo:D
+ \__kernel_primitive:NN \pdflastannot \pdftex_pdflastannot:D
+ \__kernel_primitive:NN \pdflastlink \pdftex_pdflastlink:D
+ \__kernel_primitive:NN \pdflastobj \pdftex_pdflastobj:D
+ \__kernel_primitive:NN \pdflastxform \pdftex_pdflastxform:D
+ \__kernel_primitive:NN \pdflastximage \pdftex_pdflastximage:D
+ \__kernel_primitive:NN \pdflastximagecolordepth \pdftex_pdflastximagecolordepth:D
+ \__kernel_primitive:NN \pdflastximagepages \pdftex_pdflastximagepages:D
+ \__kernel_primitive:NN \pdflinkmargin \pdftex_pdflinkmargin:D
+ \__kernel_primitive:NN \pdfliteral \pdftex_pdfliteral:D
+ \__kernel_primitive:NN \pdfminorversion \pdftex_pdfminorversion:D
+ \__kernel_primitive:NN \pdfnames \pdftex_pdfnames:D
+ \__kernel_primitive:NN \pdfobj \pdftex_pdfobj:D
+ \__kernel_primitive:NN \pdfobjcompresslevel \pdftex_pdfobjcompresslevel:D
+ \__kernel_primitive:NN \pdfoutline \pdftex_pdfoutline:D
+ \__kernel_primitive:NN \pdfoutput \pdftex_pdfoutput:D
+ \__kernel_primitive:NN \pdfpageattr \pdftex_pdfpageattr:D
+ \__kernel_primitive:NN \pdfpagebox \pdftex_pdfpagebox:D
+ \__kernel_primitive:NN \pdfpageheight \pdftex_pdfpageheight:D
+ \__kernel_primitive:NN \pdfpageref \pdftex_pdfpageref:D
+ \__kernel_primitive:NN \pdfpageresources \pdftex_pdfpageresources:D
+ \__kernel_primitive:NN \pdfpagesattr \pdftex_pdfpagesattr:D
+ \__kernel_primitive:NN \pdfpagewidth \pdftex_pdfpagewidth:D
+ \__kernel_primitive:NN \pdfrefobj \pdftex_pdfrefobj:D
+ \__kernel_primitive:NN \pdfrefxform \pdftex_pdfrefxform:D
+ \__kernel_primitive:NN \pdfrefximage \pdftex_pdfrefximage:D
+ \__kernel_primitive:NN \pdfrestore \pdftex_pdfrestore:D
+ \__kernel_primitive:NN \pdfretval \pdftex_pdfretval:D
+ \__kernel_primitive:NN \pdfsave \pdftex_pdfsave:D
+ \__kernel_primitive:NN \pdfsetmatrix \pdftex_pdfsetmatrix:D
+ \__kernel_primitive:NN \pdfstartlink \pdftex_pdfstartlink:D
+ \__kernel_primitive:NN \pdfstartthread \pdftex_pdfstartthread:D
+ \__kernel_primitive:NN \pdfthread \pdftex_pdfthread:D
+ \__kernel_primitive:NN \pdfthreadmargin \pdftex_pdfthreadmargin:D
+ \__kernel_primitive:NN \pdftrailer \pdftex_pdftrailer:D
+ \__kernel_primitive:NN \pdfuniqueresname \pdftex_pdfuniqueresname:D
+ \__kernel_primitive:NN \pdfvorigin \pdftex_pdfvorigin:D
+ \__kernel_primitive:NN \pdfxform \pdftex_pdfxform:D
+ \__kernel_primitive:NN \pdfxformattr \pdftex_pdfxformattr:D
+ \__kernel_primitive:NN \pdfxformname \pdftex_pdfxformname:D
+ \__kernel_primitive:NN \pdfxformresources \pdftex_pdfxformresources:D
+ \__kernel_primitive:NN \pdfximage \pdftex_pdfximage:D
+ \__kernel_primitive:NN \pdfximagebbox \pdftex_pdfximagebbox:D
% \end{macrocode}
% While these are not.
% \begin{macrocode}
- \__kernel_primitive:NN \pdfstrcmp \pdftex_strcmp:D
+ \__kernel_primitive:NN \ifpdfprimitive \pdftex_ifprimitive:D
+ \__kernel_primitive:NN \pdfadjustspacing \pdftex_adjustspacing:D
+ \__kernel_primitive:NN \pdfcopyfont \pdftex_copyfont:D
+ \__kernel_primitive:NN \pdfdraftmode \pdftex_draftmode:D
+ \__kernel_primitive:NN \pdfeachlinedepth \pdftex_eachlinedepth:D
+ \__kernel_primitive:NN \pdfeachlineheight \pdftex_eachlineheight:D
+ \__kernel_primitive:NN \pdffirstlineheight \pdftex_firstlineheight:D
+ \__kernel_primitive:NN \pdffontexpand \pdftex_fontexpand:D
+ \__kernel_primitive:NN \pdffontsize \pdftex_fontsize:D
+ \__kernel_primitive:NN \pdfignoreddimen \pdftex_ignoreddimen:D
+ \__kernel_primitive:NN \pdfinsertht \pdftex_insertht:D
+ \__kernel_primitive:NN \pdflastlinedepth \pdftex_lastlinedepth:D
+ \__kernel_primitive:NN \pdflastxpos \pdftex_lastxpos:D
+ \__kernel_primitive:NN \pdflastypos \pdftex_lastypos:D
+ \__kernel_primitive:NN \pdfmapfile \pdftex_mapfile:D
+ \__kernel_primitive:NN \pdfmapline \pdftex_mapline:D
+ \__kernel_primitive:NN \pdfnoligatures \pdftex_noligatures:D
+ \__kernel_primitive:NN \pdfnormaldeviate \pdftex_normaldeviate:D
+ \__kernel_primitive:NN \pdfpkmode \pdftex_pkmode:D
+ \__kernel_primitive:NN \pdfpkresolution \pdftex_pkresolution:D
+ \__kernel_primitive:NN \pdfprimitive \pdftex_primitive:D
+ \__kernel_primitive:NN \pdfprotrudechars \pdftex_protrudechars:D
+ \__kernel_primitive:NN \pdfpxdimen \pdftex_pxdimen:D
+ \__kernel_primitive:NN \pdfrandomseed \pdftex_randomseed:D
+ \__kernel_primitive:NN \pdfsavepos \pdftex_savepos:D
+ \__kernel_primitive:NN \pdfstrcmp \pdftex_strcmp:D
+ \__kernel_primitive:NN \pdfsetrandomseed \pdftex_setrandomseed:D
+ \__kernel_primitive:NN \pdfshellescape \pdftex_shellescape:D
+ \__kernel_primitive:NN \pdftracingfonts \pdftex_tracingfonts:D
+ \__kernel_primitive:NN \pdfuniformdeviate \pdftex_uniformdeviate:D
% \end{macrocode}
% The version primitives are not related to PDF mode but are related to
% \pdfTeX{} so retain the full prefix.
% \begin{macrocode}
- \__kernel_primitive:NN \pdftexrevision \pdftex_pdftexrevision:D
- \__kernel_primitive:NN \pdftexversion \pdftex_pdftexversion:D
+ \__kernel_primitive:NN \pdftexbanner \pdftex_pdftexbanner:D
+ \__kernel_primitive:NN \pdftexrevision \pdftex_pdftexrevision:D
+ \__kernel_primitive:NN \pdftexversion \pdftex_pdftexversion:D
+% \end{macrocode}
+% These ones appear in \pdfTeX{} but don't have |pdf| in the name at all.
+% (\tn{synctex} is odd as it's really not from \pdfTeX{} but from SyncTeX!)
+% \begin{macrocode}
+ \__kernel_primitive:NN \efcode \pdftex_efcode:D
+ \__kernel_primitive:NN \ifincsname \pdftex_ifincsname:D
+ \__kernel_primitive:NN \leftmarginkern \pdftex_leftmarginkern:D
+ \__kernel_primitive:NN \letterspacefont \pdftex_letterspacefont:D
+ \__kernel_primitive:NN \lpcode \pdftex_lpcode:D
+ \__kernel_primitive:NN \quitvmode \pdftex_quitvmode:D
+ \__kernel_primitive:NN \rightmarginkern \pdftex_rightmarginkern:D
+ \__kernel_primitive:NN \rpcode \pdftex_rpcode:D
+ \__kernel_primitive:NN \synctex \pdftex_synctex:D
+ \__kernel_primitive:NN \tagcode \pdftex_tagcode:D
% \end{macrocode}
% \XeTeX{}-specific primitives. Note that \XeTeX{}'s \tn{strcmp} is
% handled earlier and is \enquote{rolled up} into \tn{pdfstrcmp}. With
% the exception of the version primitives these don't carry |XeTeX| through
-% into the \enquote{base} name.
+% into the \enquote{base} name. A few cross-compatibility names which lack
+% the |pdf| of the original are handled later.
+% \begin{macrocode}
+ \__kernel_primitive:NN \XeTeXcharclass \xetex_charclass:D
+ \__kernel_primitive:NN \XeTeXcharglyph \xetex_charcglyph:D
+ \__kernel_primitive:NN \XeTeXcountfeatures \xetex_countfeatures:D
+ \__kernel_primitive:NN \XeTeXcountglyphs \xetex_countglyphs:D
+ \__kernel_primitive:NN \XeTeXcountselectors \xetex_countselectors:D
+ \__kernel_primitive:NN \XeTeXcountvariations \xetex_countvariations:D
+ \__kernel_primitive:NN \XeTeXdefaultencoding \xetex_defaultencoding:D
+ \__kernel_primitive:NN \XeTeXdashbreakstate \xetex_dashbreakstate:D
+ \__kernel_primitive:NN \XeTeXfeaturecode \xetex_featurecode:D
+ \__kernel_primitive:NN \XeTeXfeaturename \xetex_featurename:D
+ \__kernel_primitive:NN \XeTeXfindfeaturebyname \xetex_findfeaturebyname:D
+ \__kernel_primitive:NN \XeTeXfindselectorbyname \xetex_findselectorbyname:D
+ \__kernel_primitive:NN \XeTeXfindvariationbyname \xetex_findvariationbyname:D
+ \__kernel_primitive:NN \XeTeXfirstfontchar \xetex_firstfontchar:D
+ \__kernel_primitive:NN \XeTeXfonttype \xetex_fonttype:D
+ \__kernel_primitive:NN \XeTeXglyph \xetex_glyph:D
+ \__kernel_primitive:NN \XeTeXglyphbounds \xetex_glyphbounds:D
+ \__kernel_primitive:NN \XeTeXglyphindex \xetex_glyphindex:D
+ \__kernel_primitive:NN \XeTeXglyphname \xetex_glyphname:D
+ \__kernel_primitive:NN \XeTeXinputencoding \xetex_inputencoding:D
+ \__kernel_primitive:NN \XeTeXinputnormalization \xetex_inputnormalization:D
+ \__kernel_primitive:NN \XeTeXinterchartokenstate \xetex_interchartokenstate:D
+ \__kernel_primitive:NN \XeTeXinterchartoks \xetex_interchartoks:D
+ \__kernel_primitive:NN \XeTeXisdefaultselector \xetex_isdefaultselector:D
+ \__kernel_primitive:NN \XeTeXisexclusivefeature \xetex_isexclusivefeature:D
+ \__kernel_primitive:NN \XeTeXlastfontchar \xetex_lastfontchar:D
+ \__kernel_primitive:NN \XeTeXlinebreakskip \xetex_linebreakskip:D
+ \__kernel_primitive:NN \XeTeXlinebreaklocale \xetex_linebreaklocale:D
+ \__kernel_primitive:NN \XeTeXlinebreakpenalty \xetex_linebreakpenalty:D
+ \__kernel_primitive:NN \XeTeXOTcountfeatures \xetex_OTcounfeatures:D
+ \__kernel_primitive:NN \XeTeXOTcountlanguages \xetex_OTcountlanguages:D
+ \__kernel_primitive:NN \XeTeXOTcountscripts \xetex_OTcountscripts:D
+ \__kernel_primitive:NN \XeTeXOTfeaturetag \xetex_OTfeaturetag:D
+ \__kernel_primitive:NN \XeTeXOTlanguagetag \xetex_OTlanguagetag:D
+ \__kernel_primitive:NN \XeTeXOTscripttag \xetex_OTscripttag:D
+ \__kernel_primitive:NN \XeTeXpdffile \xetex_pdffile:D
+ \__kernel_primitive:NN \XeTeXpdfpagecount \xetex_pdfpagecount:D
+ \__kernel_primitive:NN \XeTeXpicfile \xetex_picfile:D
+ \__kernel_primitive:NN \XeTeXselectorname \xetex_selectorname:D
+ \__kernel_primitive:NN \XeTeXtracingfonts \xetex_tracingfonts:D
+ \__kernel_primitive:NN \XeTeXupwardsmode \xetex_upwardsmode:D
+ \__kernel_primitive:NN \XeTeXuseglyphmetrics \xetex_useglyphmetrics:D
+ \__kernel_primitive:NN \XeTeXvariation \xetex_variation:D
+ \__kernel_primitive:NN \XeTeXvariationdefault \xetex_variationdefault:D
+ \__kernel_primitive:NN \XeTeXvariationmax \xetex_variationmax:D
+ \__kernel_primitive:NN \XeTeXvariationmin \xetex_variationmin:D
+ \__kernel_primitive:NN \XeTeXvariationname \xetex_variationname:D
+% \end{macrocode}
+% The version primitives retain |XeTeX|.
% \begin{macrocode}
- \__kernel_primitive:NN \XeTeXcharclass \xetex_charclass:D
- \__kernel_primitive:NN \XeTeXinterchartokenstate \xetex_interchartokenstate:D
- \__kernel_primitive:NN \XeTeXinterchartoks \xetex_interchartoks:D
- \__kernel_primitive:NN \XeTeXrevision \xetex_XeTeXrevision:D
- \__kernel_primitive:NN \XeTeXversion \xetex_XeTeXversion:D
+ \__kernel_primitive:NN \XeTeXrevision \xetex_XeTeXrevision:D
+ \__kernel_primitive:NN \XeTeXversion \xetex_XeTeXversion:D
% \end{macrocode}
-% Primitives from \LuaTeX{}.
+% Primitives from \LuaTeX{}, some of which have been ported back to
+% \XeTeX{}. Notice that \tn{expanded} was intended for \pdfTeX{}~1.50 but
+% as that was not released we call this a \LuaTeX{} primitive. Primitives
+% which are aliases are covered only once, so for example \tn{pdfpageheight}
+% covers \tn{pageheight} as well.
% \begin{macrocode}
- \__kernel_primitive:NN \catcodetable \luatex_catcodetable:D
- \__kernel_primitive:NN \directlua \luatex_directlua:D
- \__kernel_primitive:NN \expanded \luatex_expanded:D
- \__kernel_primitive:NN \initcatcodetable \luatex_initcatcodetable:D
- \__kernel_primitive:NN \latelua \luatex_latelua:D
- \__kernel_primitive:NN \luaescapestring \luatex_luaescapestring:D
- \__kernel_primitive:NN \luatexrevision \luatex_luatexrevision:D
- \__kernel_primitive:NN \luatexversion \luatex_luatexversion:D
- \__kernel_primitive:NN \savecatcodetable \luatex_savecatcodetable:D
- \__kernel_primitive:NN \Uchar \luatex_Uchar:D
+ \__kernel_primitive:NN \alignmark \luatex_alignmark:D
+ \__kernel_primitive:NN \aligntab \luatex_aligntab:D
+ \__kernel_primitive:NN \attribute \luatex_attribute:D
+ \__kernel_primitive:NN \attributedef \luatex_attributedef:D
+ \__kernel_primitive:NN \catcodetable \luatex_catcodetable:D
+ \__kernel_primitive:NN \clearmarks \luatex_clearmarks:D
+ \__kernel_primitive:NN \crampeddisplaystyle \luatex_crampeddisplaystyle:D
+ \__kernel_primitive:NN \crampedscriptscriptstyle \luatex_crampedscriptscriptstyle:D
+ \__kernel_primitive:NN \crampedscriptstyle \luatex_crampedscriptstyle:D
+ \__kernel_primitive:NN \crampedtextstyle \luatex_crampedtextstyle:D
+ \__kernel_primitive:NN \directlua \luatex_directlua:D
+ \__kernel_primitive:NN \expanded \luatex_expanded:D
+ \__kernel_primitive:NN \fontid \luatex_fontid:D
+ \__kernel_primitive:NN \formatname \luatex_formatname:D
+ \__kernel_primitive:NN \gleaders \luatex_gleaders:D
+ \__kernel_primitive:NN \initcatcodetable \luatex_initcatcodetable:D
+ \__kernel_primitive:NN \latelua \luatex_latelua:D
+ \__kernel_primitive:NN \luaescapestring \luatex_luaescapestring:D
+ \__kernel_primitive:NN \luafunction \luatex_luafunction:D
+ \__kernel_primitive:NN \luastartup \luatex_luastartup:D
+ \__kernel_primitive:NN \luatexdatestamp \luatex_luatexdatestamp:D
+ \__kernel_primitive:NN \luatexrevision \luatex_luatexrevision:D
+ \__kernel_primitive:NN \luatexversion \luatex_luatexversion:D
+ \__kernel_primitive:NN \mathstyle \luatex_mathstyle:D
+ \__kernel_primitive:NN \nokerns \luatex_nokerns:D
+ \__kernel_primitive:NN \noligs \luatex_noligs:D
+ \__kernel_primitive:NN \outputbox \luatex_outputbox:D
+ \__kernel_primitive:NN \pageleftoffset \luatex_pageleftoffset:D
+ \__kernel_primitive:NN \pagetopoffset \luatex_pagetopoffset:D
+ \__kernel_primitive:NN \postexhyphenchar \luatex_postexhyphenchar:D
+ \__kernel_primitive:NN \posthyphenchar \luatex_posthyphenchar:D
+ \__kernel_primitive:NN \preexhyphenchar \luatex_preexhyphenchar:D
+ \__kernel_primitive:NN \prehyphenchar \luatex_prehyphenchar:D
+ \__kernel_primitive:NN \savecatcodetable \luatex_savecatcodetable:D
+ \__kernel_primitive:NN \scantextokens \luatex_scantextokens:D
+ \__kernel_primitive:NN \suppressfontnotfounderror \luatex_suppressfontnotfounderror:D
+ \__kernel_primitive:NN \suppressifcsnameerror \luatex_suppressifcsnameerror:D
+ \__kernel_primitive:NN \suppresslongerror \luatex_suppresslongerror:D
+ \__kernel_primitive:NN \suppressmathparerror \luatex_suppressmathparerror:D
+ \__kernel_primitive:NN \suppressoutererror \luatex_suppressoutererror:D
% \end{macrocode}
% Slightly more awkward are the directional primitives in \LuaTeX{}. These
-% come from Omega \emph{via} Aleph, but we do not support those engines and
+% come from Omega/Aleph, but we do not support those engines and
% so it seems most sensible to treat them as \LuaTeX{} primitives for prefix
% purposes.
% \begin{macrocode}
- \__kernel_primitive:NN \bodydir \luatex_bodydir:D
- \__kernel_primitive:NN \mathdir \luatex_mathdir:D
- \__kernel_primitive:NN \pagedir \luatex_pagedir:D
- \__kernel_primitive:NN \pardir \luatex_pardir:D
- \__kernel_primitive:NN \textdir \luatex_textdir:D
+ \__kernel_primitive:NN \bodydir \luatex_bodydir:D
+ \__kernel_primitive:NN \boxdir \luatex_boxdir:D
+ \__kernel_primitive:NN \leftghost \luatex_leftghost:D
+ \__kernel_primitive:NN \localbrokenpenalty \luatex_localbrokenpenalty:D
+ \__kernel_primitive:NN \localinterlinepenalty \luatex_localinterlinepenalty:D
+ \__kernel_primitive:NN \localleftbox \luatex_localleftbox:D
+ \__kernel_primitive:NN \localrightbox \luatex_localrightbox:D
+ \__kernel_primitive:NN \mathdir \luatex_mathdir:D
+ \__kernel_primitive:NN \pagebottomoffset \luatex_pagebottomoffset:D
+ \__kernel_primitive:NN \pagedir \luatex_pagedir:D
+ \__kernel_primitive:NN \pagerightoffset \luatex_pagerightoffset:D
+ \__kernel_primitive:NN \pardir \luatex_pardir:D
+ \__kernel_primitive:NN \rightghost \luatex_rightghost:D
+ \__kernel_primitive:NN \textdir \luatex_textdir:D
% \end{macrocode}
-%
-% End of the \enquote{just the names} part of the source.
+% The set of Unicode math primitives were introduced by \XeTeX{} and \LuaTeX{}
+% in a somewhat complex fashion: a few first as |\XeTeX...| which were then
+% renamed with \LuaTeX{} having a lot more. These names now all start
+% |\U...| and mainly |\Umath...|. To keep things somewhat clear we therefore
+% prefix all of these as |\utex...| (introduced by a Unicode \TeX{} engine)
+% and drop |\U(math)| from the names. Where there is a related \TeX{}90
+% primitive or where it really seems required we keep the |math| part of the name.
+% \begin{macrocode}
+ \__kernel_primitive:NN \Uchar \utex_char:D
+ \__kernel_primitive:NN \Ucharcat \utex_charcat:D
+ \__kernel_primitive:NN \Udelcode \utex_delcode:D
+ \__kernel_primitive:NN \Udelcodenum \utex_delcodenum:D
+ \__kernel_primitive:NN \Udelimiter \utex_delimiter:D
+ \__kernel_primitive:NN \Udelimiterover \utex_delimiterover:D
+ \__kernel_primitive:NN \Udelimiterunder \utex_delimiterunder:D
+ \__kernel_primitive:NN \Umathaccent \utex_mathaccent:D
+ \__kernel_primitive:NN \Umathaxis \utex_mathaxis:D
+ \__kernel_primitive:NN \Umathbinbinspacing \utex_binbinspacing:D
+ \__kernel_primitive:NN \Umathbinclosespacing \utex_binclosespacing:D
+ \__kernel_primitive:NN \Umathbininnerspacing \utex_bininnerspacing:D
+ \__kernel_primitive:NN \Umathbinopenspacing \utex_binopenspacing:D
+ \__kernel_primitive:NN \Umathbinopspacing \utex_binopspacing:D
+ \__kernel_primitive:NN \Umathbinordspacing \utex_binordspacing:D
+ \__kernel_primitive:NN \Umathbinpunctspacing \utex_binpunctspacing:D
+ \__kernel_primitive:NN \Umathbinrelspacing \utex_binrelspacing:D
+ \__kernel_primitive:NN \Umathchar \utex_mathchar:D
+ \__kernel_primitive:NN \Umathchardef \utex_mathchardef:D
+ \__kernel_primitive:NN \Umathcharnum \utex_mathcharnum:D
+ \__kernel_primitive:NN \Umathcharnumdef \utex_mathcharnumdef:D
+ \__kernel_primitive:NN \Umathclosebinspacing \utex_closebinspacing:D
+ \__kernel_primitive:NN \Umathcloseclosespacing \utex_closeclosespacing:D
+ \__kernel_primitive:NN \Umathcloseinnerspacing \utex_closeinnerspacing:D
+ \__kernel_primitive:NN \Umathcloseopenspacing \utex_closeopenspacing:D
+ \__kernel_primitive:NN \Umathcloseopspacing \utex_closeopspacing:D
+ \__kernel_primitive:NN \Umathcloseordspacing \utex_closeordspacing:D
+ \__kernel_primitive:NN \Umathclosepunctspacing \utex_closepunctspacing:D
+ \__kernel_primitive:NN \Umathcloserelspacing \utex_closerelspacing:D
+ \__kernel_primitive:NN \Umathcode \utex_mathcode:D
+ \__kernel_primitive:NN \Umathcodenum \utex_mathcodenum:D
+ \__kernel_primitive:NN \Umathconnectoroverlapmin \utex_connectoroverlapmin:D
+ \__kernel_primitive:NN \Umathfractiondelsize \utex_fractiondelsize:D
+ \__kernel_primitive:NN \Umathfractiondenomdown \utex_fractiondenomdown:D
+ \__kernel_primitive:NN \Umathfractiondenomvgap \utex_fractiondenomvgap:D
+ \__kernel_primitive:NN \Umathfractionnumup \utex_fractionnumup:D
+ \__kernel_primitive:NN \Umathfractionnumvgap \utex_fractionnumvgap:D
+ \__kernel_primitive:NN \Umathfractionrule \utex_fractionrule:D
+ \__kernel_primitive:NN \Umathinnerbinspacing \utex_innerbinspacing:D
+ \__kernel_primitive:NN \Umathinnerclosespacing \utex_innerclosespacing:D
+ \__kernel_primitive:NN \Umathinnerinnerspacing \utex_innerinnerspacing:D
+ \__kernel_primitive:NN \Umathinneropenspacing \utex_inneropenspacing:D
+ \__kernel_primitive:NN \Umathinneropspacing \utex_inneropspacing:D
+ \__kernel_primitive:NN \Umathinnerordspacing \utex_innerordspacing:D
+ \__kernel_primitive:NN \Umathinnerpunctspacing \utex_innerpunctspacing:D
+ \__kernel_primitive:NN \Umathinnerrelspacing \utex_innerrelspacing:D
+ \__kernel_primitive:NN \Umathlimitabovebgap \utex_limitabovebgap:D
+ \__kernel_primitive:NN \Umathlimitabovekern \utex_limitabovekern:D
+ \__kernel_primitive:NN \Umathlimitabovevgap \utex_limitabovevgap:D
+ \__kernel_primitive:NN \Umathlimitbelowbgap \utex_limitbelowbgap:D
+ \__kernel_primitive:NN \Umathlimitbelowkern \utex_limitbelowkern:D
+ \__kernel_primitive:NN \Umathlimitbelowvgap \utex_limitbelowvgap:D
+ \__kernel_primitive:NN \Umathopbinspacing \utex_opbinspacing:D
+ \__kernel_primitive:NN \Umathopclosespacing \utex_opclosespacing:D
+ \__kernel_primitive:NN \Umathopenbinspacing \utex_openbinspacing:D
+ \__kernel_primitive:NN \Umathopenclosespacing \utex_openclosespacing:D
+ \__kernel_primitive:NN \Umathopeninnerspacing \utex_openinnerspacing:D
+ \__kernel_primitive:NN \Umathopenopenspacing \utex_openopenspacing:D
+ \__kernel_primitive:NN \Umathopenopspacing \utex_openopspacing:D
+ \__kernel_primitive:NN \Umathopenordspacing \utex_openordspacing:D
+ \__kernel_primitive:NN \Umathopenpunctspacing \utex_openpunctspacing:D
+ \__kernel_primitive:NN \Umathopenrelspacing \utex_openrelspacing:D
+ \__kernel_primitive:NN \Umathoperatorsize \utex_operatorsize:D
+ \__kernel_primitive:NN \Umathopinnerspacing \utex_opinnerspacing:D
+ \__kernel_primitive:NN \Umathopopenspacing \utex_opopenspacing:D
+ \__kernel_primitive:NN \Umathopopspacing \utex_opopspacing:D
+ \__kernel_primitive:NN \Umathopordspacing \utex_opordspacing:D
+ \__kernel_primitive:NN \Umathoppunctspacing \utex_oppunctspacing:D
+ \__kernel_primitive:NN \Umathoprelspacing \utex_oprelspacing:D
+ \__kernel_primitive:NN \Umathordbinspacing \utex_ordbinspacing:D
+ \__kernel_primitive:NN \Umathordclosespacing \utex_ordclosespacing:D
+ \__kernel_primitive:NN \Umathordinnerspacing \utex_ordinnerspacing:D
+ \__kernel_primitive:NN \Umathordopenspacing \utex_ordopenspacing:D
+ \__kernel_primitive:NN \Umathordopspacing \utex_ordopspacing:D
+ \__kernel_primitive:NN \Umathordordspacing \utex_ordordspacing:D
+ \__kernel_primitive:NN \Umathordpunctspacing \utex_ordpunctspacing:D
+ \__kernel_primitive:NN \Umathordrelspacing \utex_ordrelspacing:D
+ \__kernel_primitive:NN \Umathoverbarkern \utex_overbarkern:D
+ \__kernel_primitive:NN \Umathoverbarrule \utex_overbarrule:D
+ \__kernel_primitive:NN \Umathoverbarvgap \utex_overbarvgap:D
+ \__kernel_primitive:NN \Umathoverdelimiterbgap \utex_overdelimiterbgap:D
+ \__kernel_primitive:NN \Umathoverdelimitervgap \utex_overdelimitervgap:D
+ \__kernel_primitive:NN \Umathpunctbinspacing \utex_punctbinspacing:D
+ \__kernel_primitive:NN \Umathpunctclosespacing \utex_punctclosespacing:D
+ \__kernel_primitive:NN \Umathpunctinnerspacing \utex_punctinnerspacing:D
+ \__kernel_primitive:NN \Umathpunctopenspacing \utex_punctopenspacing:D
+ \__kernel_primitive:NN \Umathpunctopspacing \utex_punctopspacing:D
+ \__kernel_primitive:NN \Umathpunctordspacing \utex_punctordspacing:D
+ \__kernel_primitive:NN \Umathpunctpunctspacing \utex_punctpunctspacing:D
+ \__kernel_primitive:NN \Umathpunctrelspacing \utex_punctrelspacing:D
+ \__kernel_primitive:NN \Umathquad \utex_quad:D
+ \__kernel_primitive:NN \Umathradicaldegreeafter \utex_radicaldegreeafter:D
+ \__kernel_primitive:NN \Umathradicaldegreebefore \utex_radicaldegreebefore:D
+ \__kernel_primitive:NN \Umathradicaldegreeraise \utex_radicaldegreeraise:D
+ \__kernel_primitive:NN \Umathradicalkern \utex_radicalkern:D
+ \__kernel_primitive:NN \Umathradicalrule \utex_radicalrule:D
+ \__kernel_primitive:NN \Umathradicalvgap \utex_radicalvgap:D
+ \__kernel_primitive:NN \Umathrelbinspacing \utex_relbinspacing:D
+ \__kernel_primitive:NN \Umathrelclosespacing \utex_relclosespacing:D
+ \__kernel_primitive:NN \Umathrelinnerspacing \utex_relinnerspacing:D
+ \__kernel_primitive:NN \Umathrelopenspacing \utex_relopenspacing:D
+ \__kernel_primitive:NN \Umathrelopspacing \utex_relopspacing:D
+ \__kernel_primitive:NN \Umathrelordspacing \utex_relordspacing:D
+ \__kernel_primitive:NN \Umathrelpunctspacing \utex_relpunctspacing:D
+ \__kernel_primitive:NN \Umathrelrelspacing \utex_relrelspacing:D
+ \__kernel_primitive:NN \Umathspaceafterscript \utex_spaceafterscript:D
+ \__kernel_primitive:NN \Umathstackdenomdown \utex_stackdenomdown:D
+ \__kernel_primitive:NN \Umathstacknumup \utex_stacknumup:D
+ \__kernel_primitive:NN \Umathstackvgap \utex_stackvgap:D
+ \__kernel_primitive:NN \Umathsubshiftdown \utex_subshiftdown:D
+ \__kernel_primitive:NN \Umathsubshiftdrop \utex_subshiftdrop:D
+ \__kernel_primitive:NN \Umathsubsupshiftdown \utex_subsupshiftdown:D
+ \__kernel_primitive:NN \Umathsubsupvgap \utex_subsupvgap:D
+ \__kernel_primitive:NN \Umathsubtopmax \utex_subtopmax:D
+ \__kernel_primitive:NN \Umathsupbottommin \utex_supbottommin:D
+ \__kernel_primitive:NN \Umathsupshiftdrop \utex_supshiftdrop:D
+ \__kernel_primitive:NN \Umathsupshiftup \utex_supshiftup:D
+ \__kernel_primitive:NN \Umathsupsubbottommax \utex_supsubbottommax:D
+ \__kernel_primitive:NN \Umathunderbarkern \utex_underbarkern:D
+ \__kernel_primitive:NN \Umathunderbarrule \utex_underbarrule:D
+ \__kernel_primitive:NN \Umathunderbarvgap \utex_underbarvgap:D
+ \__kernel_primitive:NN \Umathunderdelimiterbgap \utex_underdelimiterbgap:D
+ \__kernel_primitive:NN \Umathunderdelimitervgap \utex_underdelimitervgap:D
+ \__kernel_primitive:NN \Uoverdelimiter \utex_overdelimiter:D
+ \__kernel_primitive:NN \Uradical \utex_radical:D
+ \__kernel_primitive:NN \Uroot \utex_root:D
+ \__kernel_primitive:NN \Ustack \utex_stack:D
+ \__kernel_primitive:NN \Ustartdisplaymath \utex_startdisplaymath:D
+ \__kernel_primitive:NN \Ustartmath \utex_startmath:D
+ \__kernel_primitive:NN \Ustopdisplaymath \utex_stopdisplaymath:D
+ \__kernel_primitive:NN \Ustopmath \utex_stopmath:D
+ \__kernel_primitive:NN \Usubscript \utex_subscript:D
+ \__kernel_primitive:NN \Usuperscript \utex_superscript:D
+ \__kernel_primitive:NN \Uunderdelimiter \utex_underdelimiter:D
+% \end{macrocode}
+% End of the \enquote{just the names} part of the source.
% \begin{macrocode}
%</initex|names|package>
%<*initex|package>
@@ -654,23 +983,105 @@
\tex_let:D \tex_input:D \@@input
\tex_let:D \tex_italiccorrection:D \@@italiccorr
\tex_let:D \tex_underline:D \@@underline
+\tex_fi:D
% \end{macrocode}
-% That is also true for the \LuaTeX{} primitives under \LaTeXe{}.
+% That is also true for the \LuaTeX{} primitives under \LaTeXe{}
+% (depending on the format-building date). There are a few primitives
+% that get the right names anyway so are missing here!
% \begin{macrocode}
- \tex_let:D \luatex_catcodetable:D \luatexcatcodetable
- \tex_let:D \luatex_initcatcodetable:D \luatexinitcatcodetable
- \tex_let:D \luatex_latelua:D \luatexlatelua
- \tex_let:D \luatex_luaescapestring:D \luatexluaescapestring
- \tex_let:D \luatex_savecatcodetable:D \luatexsavecatcodetable
- \tex_let:D \luatex_Uchar:D \luatexUchar
+\etex_ifdefined:D \luatexcatcodetable
+ \tex_let:D \luatex_alignmark:D \luatexalignmark
+ \tex_let:D \luatex_aligntab:D \luatexaligntab
+ \tex_let:D \luatex_attribute:D \luatexattribute
+ \tex_let:D \luatex_attributedef:D \luatexattributedef
+ \tex_let:D \luatex_catcodetable:D \luatexcatcodetable
+ \tex_let:D \luatex_clearmarks:D \luatexclearmarks
+ \tex_let:D \luatex_crampeddisplaystyle:D \luatexcrampeddisplaystyle
+ \tex_let:D \luatex_crampedscriptscriptstyle:D \luatexcrampedscriptscriptstyle
+ \tex_let:D \luatex_crampedscriptstyle:D \luatexcrampedscriptstyle
+ \tex_let:D \luatex_crampedtextstyle:D \luatexcrampedtextstyle
+ \tex_let:D \luatex_fontid:D \luatexfontid
+ \tex_let:D \luatex_formatname:D \luatexformatname
+ \tex_let:D \luatex_gleaders:D \luatexgleaders
+ \tex_let:D \luatex_initcatcodetable:D \luatexinitcatcodetable
+ \tex_let:D \luatex_latelua:D \luatexlatelua
+ \tex_let:D \luatex_luaescapestring:D \luatexluaescapestring
+ \tex_let:D \luatex_luafunction:D \luatexluafunction
+ \tex_let:D \luatex_luastartup:D \luatexluastartup
+ \tex_let:D \luatex_mathstyle:D \luatexmathstyle
+ \tex_let:D \luatex_nokerns:D \luatexnokerns
+ \tex_let:D \luatex_noligs:D \luatexnoligs
+ \tex_let:D \luatex_outputbox:D \luatexoutputbox
+ \tex_let:D \luatex_pageleftoffset:D \luatexpageleftoffset
+ \tex_let:D \luatex_pagetopoffset:D \luatexpagetopoffset
+ \tex_let:D \luatex_postexhyphenchar:D \luatexpostexhyphenchar
+ \tex_let:D \luatex_posthyphenchar:D \luatexposthyphenchar
+ \tex_let:D \luatex_preexhyphenchar:D \luatexpreexhyphenchar
+ \tex_let:D \luatex_prehyphenchar:D \luatexprehyphenchar
+ \tex_let:D \luatex_savecatcodetable:D \luatexsavecatcodetable
+ \tex_let:D \luatex_scantextokens:D \luatexscantextokens
+ \tex_let:D \luatex_suppressfontnotfounderror:D \luatexsuppressfontnotfounderror
+ \tex_let:D \luatex_suppressifcsnameerror:D \luatexsuppressifcsnameerror
+ \tex_let:D \luatex_suppresslongerror:D \luatexsuppresslongerror
+ \tex_let:D \luatex_suppressmathparerror:D \luatexsuppressmathparerror
+ \tex_let:D \luatex_suppressoutererror:D \luatexsuppressoutererror
+ \tex_let:D \utex_char:D \luatexUchar
% \end{macrocode}
% Which also covers those slightly odd ones.
% \begin{macrocode}
- \tex_let:D \luatex_bodydir:D \luatexbodydir
- \tex_let:D \luatex_mathdir:D \luatexmathdir
- \tex_let:D \luatex_pagedir:D \luatexpagedir
- \tex_let:D \luatex_pardir:D \luatexpardir
- \tex_let:D \luatex_textdir:D \luatextextdir
+ \tex_let:D \luatex_bodydir:D \luatexbodydir
+ \tex_let:D \luatex_boxdir:D \luatexboxdir
+ \tex_let:D \luatex_chardp:D \luatexchardp
+ \tex_let:D \luatex_charht:D \luatexcharht
+ \tex_let:D \luatex_charit:D \luatexcharit
+ \tex_let:D \luatex_charwd:D \luatexcharwd
+ \tex_let:D \luatex_leftghost:D \luatexleftghost
+ \tex_let:D \luatex_localbrokenpenalty:D \luatexlocalbrokenpenalty
+ \tex_let:D \luatex_localinterlinepenalty:D \luatexlocalinterlinepenalty
+ \tex_let:D \luatex_localleftbox:D \luatexlocalleftbox
+ \tex_let:D \luatex_localrightbox:D \luatexlocalrightbox
+ \tex_let:D \luatex_mathdir:D \luatexmathdir
+ \tex_let:D \luatex_pagebottomoffset:D \luatexpagebottomoffset
+ \tex_let:D \luatex_pagedir:D \luatexpagedir
+ \tex_let:D \luatex_pageheight:D \luatexpageheight
+ \tex_let:D \luatex_pagerightoffset:D \luatexpagerightoffset
+ \tex_let:D \luatex_pagewidth:D \luatexpagewidth
+ \tex_let:D \luatex_pardir:D \luatexpardir
+ \tex_let:D \luatex_rightghost:D \luatexrightghost
+ \tex_let:D \luatex_textdir:D \luatextextdir
+\tex_fi:D
+% \end{macrocode}
+% Tidy up some \XeTeX{} renames and the fact that some
+% format-building processes leave a couple of questionable decisions about.
+% (There may at some stage be \LuaTeX{} renames of the same sort to address.)
+% \begin{macrocode}
+\etex_unless:D \etex_ifdefined:D \pdftex_ifprimitive:D
+ \tex_expandafter:D \tex_let:D
+ \tex_csname:D pdftex_ifprimitive:D \tex_expandafter:D \tex_endcsname:D
+ \tex_csname:D ifprimitive \tex_endcsname:D
+ \tex_let:D \pdftex_primitive:D \primitive
+ \tex_let:D \pdftex_shellescape:D \shellescape
+\tex_fi:D
+\etex_unless:D \pdftex_ifprimitive:D \pdftex_mapfile:D
+ \tex_let:D \pdftex_mapfile:D \tex_undefined:D
+ \tex_let:D \pdftex_mapline:D \tex_undefined:D
+\tex_fi:D
+% \end{macrocode}
+% Older \XeTeX{} versions use |\XeTeX| as the prefix for the Unicode math
+% primitives it knows. That is tided up here (we support \XeTeX{} versions
+% from 0.9994 but this change was in 0.9999).
+% \begin{macrocode}
+\etex_ifdefined:D \XeTeXdelcode
+ \tex_let:D \utex_delcode:D \XeTeXdelcode
+ \tex_let:D \utex_delcodenum:D \XeTeXdelcodenum
+ \tex_let:D \utex_delimiter:D \XeTeXdelimiter
+ \tex_let:D \utex_mathaccent:D \XeTeXmathaccent
+ \tex_let:D \utex_mathchar:D \XeTeXmathchar
+ \tex_let:D \utex_mathchardef:D \XeTeXmathchardef
+ \tex_let:D \utex_mathcharnum:D \XeTeXmathcharnum
+ \tex_let:D \utex_mathcharnumdef:D \XeTeXmathcharnumdef
+ \tex_let:D \utex_mathcode:D \XeTeXmathcode
+ \tex_let:D \utex_mathcodenum:D \XeTeXmathcodenum
\tex_fi:D
% \end{macrocode}
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3prg.dtx b/Master/texmf-dist/source/latex/l3kernel/l3prg.dtx
index 81c1a12b0ca..eee48348057 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3prg.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3prg.dtx
@@ -37,7 +37,7 @@
\documentclass[full]{l3doc}
%</driver>
%<*driver|package>
-\GetIdInfo$Id: l3prg.dtx 5566 2015-04-13 08:24:56Z joseph $
+\GetIdInfo$Id: l3prg.dtx 5653 2015-07-13 08:57:05Z joseph $
{L3 Control structures}
%</driver|package>
%<*driver>
@@ -77,7 +77,7 @@
% input, \emph{e.g.}, text as input in a function comparing integers.
%
% \LaTeX3 has two forms of conditional flow processing based
-% on these states. The firs form is predicate functions that turn the
+% on these states. The first form is predicate functions that turn the
% returned state into a boolean \meta{true} or \meta{false}. For
% example, the function \cs{cs_if_free_p:N} checks whether the control
% sequence given as its argument is free and then returns the boolean
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3quark.dtx b/Master/texmf-dist/source/latex/l3kernel/l3quark.dtx
index 755b37577dc..4841664f938 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3quark.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3quark.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-%% File: l3quark.dtx Copyright (C) 1990-2014 The LaTeX3 Project
+%% File: l3quark.dtx Copyright (C) 1990-2015 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
@@ -37,7 +37,7 @@
\documentclass[full]{l3doc}
%</driver>
%<*driver|package>
-\GetIdInfo$Id: l3quark.dtx 5354 2014-08-23 01:35:39Z bruno $
+\GetIdInfo$Id: l3quark.dtx 5659 2015-07-14 18:58:00Z joseph $
{L3 Quarks}
%</driver|package>
%<*driver>
@@ -660,20 +660,6 @@
% \end{macrocode}
% \end{variable}
%
-% \subsection{Deprecated quark functions}
-%
-% \begin{macro}
-% {\quark_if_recursion_tail_break:N, \quark_if_recursion_tail_break:n}
-% It's not clear what breaking function we should be using here, so
-% I'm picking one somewhat arbitrarily.
-% \begin{macrocode}
-\cs_new:Npn \quark_if_recursion_tail_break:N #1
- { \__quark_if_recursion_tail_break:NN #1 \prg_break: }
-\cs_new:Npn \quark_if_recursion_tail_break:n #1
- { \__quark_if_recursion_tail_break:nN {#1} \prg_break: }
-% \end{macrocode}
-% \end{macro}
-%
% \begin{macrocode}
%</initex|package>
% \end{macrocode}
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3skip.dtx b/Master/texmf-dist/source/latex/l3kernel/l3skip.dtx
index dadd33bfa23..fb622798ea6 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3skip.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3skip.dtx
@@ -1,7 +1,7 @@
% \iffalse meta-comment
%
%% File: l3skip.dtx Copyright (C) 2004-2011 Frank Mittelbach, The LaTeX3 Project
-%% (C) 2012-2014 The LaTeX3 Project
+%% (C) 2012-2015 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
@@ -38,7 +38,7 @@
\documentclass[full]{l3doc}
%</driver>
%<*driver|package>
-\GetIdInfo$Id: l3skip.dtx 5607 2015-05-18 12:25:06Z joseph $
+\GetIdInfo$Id: l3skip.dtx 5659 2015-07-14 18:58:00Z joseph $
{L3 Dimensions and skips}
%</driver|package>
%<*driver>
@@ -1963,13 +1963,6 @@
%
% \subsection{Deprecated functions}
%
-% \begin{macro}{\dim_case:nnn}
-% Deprecated 2013-07-15.
-% \begin{macrocode}
-\cs_new_eq:NN \dim_case:nnn \dim_case:nnF
-% \end{macrocode}
-% \end{macro}
-%
% \begin{macro}{\__dim_strip_bp:n, \__dim_strip_pt:n}
% Deprecated 2014-07-15.
% \begin{macrocode}
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3str.dtx b/Master/texmf-dist/source/latex/l3kernel/l3str.dtx
index 2a5b4d952db..6638b63aa11 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3str.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3str.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-%% File: l3str.dtx Copyright (C) 2014 The LaTeX3 Project
+%% File: l3str.dtx Copyright (C) 2014-2015 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
@@ -37,7 +37,7 @@
\documentclass[full]{l3doc}
%</driver>
%<*driver|package>
-\GetIdInfo$Id: l3str.dtx 5545 2015-03-01 21:24:44Z joseph $
+\GetIdInfo$Id: l3str.dtx 5659 2015-07-14 18:58:00Z joseph $
{L3 Strings}
%</driver|package>
%<*driver>
@@ -623,17 +623,6 @@
% \end{macro}
% \end{macro}
%
-% \subsection{Deprecated functions}
-%
-% \begin{macro}{\str_case:nnn, \str_case:onn, \str_case_x:nnn}
-% Deprecated 2013-07-15.
-% \begin{macrocode}
-\cs_new_eq:NN \str_case:nnn \str_case:nnF
-\cs_new_eq:NN \str_case:onn \str_case:onF
-\cs_new_eq:NN \str_case_x:nnn \str_case_x:nnF
-% \end{macrocode}
-% \end{macro}
-%
% \begin{macrocode}
%</initex|package>
% \end{macrocode}
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx b/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx
index 0d781af663c..30347d12150 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx
@@ -37,7 +37,7 @@
\documentclass[full]{l3doc}
%</driver>
%<*driver|package>
-\GetIdInfo$Id: l3tl.dtx 5500 2015-01-27 14:37:04Z joseph $
+\GetIdInfo$Id: l3tl.dtx 5659 2015-07-14 18:58:00Z joseph $
{L3 Token lists}
%</driver|package>
%<*driver>
@@ -2861,16 +2861,6 @@
% \end{macrocode}
% \end{variable}
%
-% \subsection{Deprecated functions}
-%
-% \begin{macro}{\tl_case:Nnn, \tl_case:cnn}
-% Deprecated 2013-07-15.
-% \begin{macrocode}
-\cs_new_eq:NN \tl_case:Nnn \tl_case:NnF
-\cs_new_eq:NN \tl_case:cnn \tl_case:cnF
-% \end{macrocode}
-% \end{macro}
-%
% \begin{macrocode}
%</initex|package>
% \end{macrocode}
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3unicode-data.dtx b/Master/texmf-dist/source/latex/l3kernel/l3unicode-data.dtx
index 72eb1029080..9f3e03cf38f 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3unicode-data.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3unicode-data.dtx
@@ -38,7 +38,7 @@
% plain \TeX{}, set up in generic mode.
%<*driver|script>
\input expl3-generic\relax
-\GetIdInfo$Id: l3unicode-data.dtx 5544 2015-03-01 18:30:00Z joseph $
+\GetIdInfo$Id: l3unicode-data.dtx 5647 2015-07-01 12:44:26Z joseph $
{L3 Case data script}
%</driver|script>
%
@@ -270,9 +270,75 @@
%% generated using the script l3unicode-data.dtx.
%%
%% The data here are derived from the files
-%% - UnicodeData.txt
-%% - SpecialCasing.txt
-%% - CaseFolding.txt
+\__unicode_verb_end:
+% \end{macrocode}
+% \begin{macro}{\__unicode_parse_line:w}
+% \begin{macro}[aux]{\__unicode_parse_line_auxi:w}
+% Extract version information from the source files so this is
+% recorded. The main Unicode databse file doesn't have a header
+% but the other files do.
+% \begin{macrocode}
+\use:x
+ {
+ \cs_new_protected:Npn
+ \exp_not:N \__unicode_parse_line:w ##1 - ##2 \tl_to_str:n { .txt }
+ }
+ #3 \scan_stop: #4
+ {
+ \tl_if_empty:nF {#2}
+ {
+ \ior_get_str:NN \g__unicode_data_ior \l__unicode_tmp_tl
+ \exp_after:wN \__unicode_parse_line_auxi:w
+ \l__unicode_tmp_tl \scan_stop:
+ \iow_now:Nx \g__unicode_result_iow
+ {
+ \iow_char:N \%
+ \iow_char:N \%
+ \c_space_tl \c_space_tl \c_space_tl
+ Version ~ #2 ~ dated \l__unicode_tmp_tl
+ }
+ }
+ }
+\group_begin:
+\char_set_lccode:nn { `\* } { `\: }
+\tex_lowercase:D
+ {
+ \group_end:
+ \cs_new_protected:Npn \__unicode_parse_line_auxi:w #1 *
+ }
+ ~ #2 , ~ #3 ~ #4 \scan_stop:
+ { \tl_set:Nn \l__unicode_tmp_tl { #2 , ~ #3 } }
+\clist_map_inline:nn
+ { UnicodeData , SpecialCasing , CaseFolding }
+ {
+ \ior_open:Nn \g__unicode_data_ior { #1 .txt }
+ \ior_if_eof:NTF \g__unicode_data_ior
+ { \__msg_kernel_error:nnn { unicode } { file-not-found } {#1} }
+ {
+ \iow_now:Nx \g__unicode_result_iow
+ {
+ \iow_char:N \%
+ \iow_char:N \%
+ \c_space_tl
+ - ~ #1 .txt
+ }
+ \ior_get_str:NN \g__unicode_data_ior \l__unicode_tmp_tl
+ \tl_set:Nx \l__unicode_tmp_tl
+ {
+ \l__unicode_tmp_tl
+ \tl_to_str:n { - .txt }
+ }
+ \exp_after:wN \__unicode_parse_line:w
+ \l__unicode_tmp_tl \scan_stop: {#1}
+ \ior_close:N \g__unicode_data_ior
+ }
+ }
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% Finish off this part of the header.
+% \begin{macrocode}
+\__unicode_verb:
%% which are maintained by the Unicode Consortium.
%%
\__unicode_verb_end:
@@ -411,7 +477,7 @@
% and |#6| (details about the code point which may include the fact it's a
% compatibility char).
% \begin{macrocode}
-\cs_new_protected:Npn \__unicode_parse_line:w
+\cs_set_protected:Npn \__unicode_parse_line:w
#1 ; #2 ; #3 ; #4 ; #5 ; #6 ; #7 ; #8 ; #9 ;
{
\__unicode_parse_line_auxi:w #1 ; #6 ;
@@ -432,7 +498,7 @@
% later parts of the code do not need to be concerned with string
% \emph{versus} standard category codes.
% \begin{macrocode}
-\cs_new_protected:Npn \__unicode_parse_line_auxi:w
+\cs_set_protected:Npn \__unicode_parse_line_auxi:w
#1 ; #2 ; #3 ; #4 ; #5 ; #6 ; #7 ; #8 \q_stop
{
\use:x