summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/l3kernel
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2015-11-05 00:01:25 +0000
committerKarl Berry <karl@freefriends.org>2015-11-05 00:01:25 +0000
commite6cb7eab17b3ef76d3f96c8e23782a91190102a8 (patch)
tree1d90b38b9c413bb2fc8c07c9cec8da785b30bb20 /Master/texmf-dist/source/latex/l3kernel
parentcffa5da405ae09ac7a50a8a46795ac83e5bc18dc (diff)
latex3 (4nov15)
git-svn-id: svn://tug.org/texlive/trunk@38776 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/l3kernel')
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/expl3.dtx11
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx17
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx47
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3drivers.dtx82
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3final.dtx39
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3names.dtx6
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3prg.dtx44
7 files changed, 127 insertions, 119 deletions
diff --git a/Master/texmf-dist/source/latex/l3kernel/expl3.dtx b/Master/texmf-dist/source/latex/l3kernel/expl3.dtx
index 42ff1e3e4f4..dc8c1a1a777 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/10/14}
-\def\ExplFileVersion{6210}
+\def\ExplFileDate{2015/11/04}
+\def\ExplFileVersion{6224}
%</driver|generic|package>
%<*driver>
\documentclass[full]{l3doc}
@@ -997,17 +997,16 @@
% |\pdfstrcmp|.
% \end{itemize}
% Any engine which defines |\pdfoutput| (\emph{i.e.}~allows direct production
-% of a PDF file without a DVI intermediate) must also provide |\pdfliteral|.
+% of a PDF file without a DVI intermediate) must also provide |\pdfcolorstack|,
+% |\pdfliteral|, |\pdfmatrix|, |\pdfrestore| and |\pdfsave|.
%
% Practically, these requirements are met by the engines
% \begin{itemize}
-% \item \pdfTeX{} v1.30 or later.
+% \item \pdfTeX{} v1.40 or later.
% \item \XeTeX{} v0.9994 or later.
% \item \LuaTeX{} v0.40 or later.
% \item e-(u)p\TeX{} mid-2012 or later.
% \end{itemize}
-% of which the first three engines are currently officially supported by
-% the team.
%
% Additional modules beyond the core of \pkg{expl3} may require additional
% primitives. In particular, third-party authors may significantly
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx b/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx
index 69556596190..b510b1036ce 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 6139 2015-09-30 14:02:38Z bruno $
+\GetIdInfo$Id: l3bootstrap.dtx 6213 2015-10-18 09:48:17Z joseph $
{L3 Bootstrap code}
%</driver|package>
%<*driver>
@@ -473,9 +473,11 @@
\def\LongText%
{%
LaTeX3 requires the e-TeX primitives and \string\pdfstrcmp.\LineBreak
+ Direct PDF production also requires additional primitives listed in the
+ README.\LineBreak
\LineBreak
These are available in the engines\LineBreak
- - pdfTeX v1.30\LineBreak
+ - pdfTeX v1.40\LineBreak
- XeTeX v0.9994\LineBreak
- LuaTeX v0.40\LineBreak
- e-(u)pTeX mid-2012\LineBreak
@@ -483,10 +485,17 @@
\LineBreak
}%
\ifnum0%
- \expandafter\ifx\csname pdfstrcmp\endcsname\relax\else 1\fi
+ \expandafter\ifx\csname pdfstrcmp\endcsname\relax
+ \else
+ \expandafter\ifx\csname pdftexversion\endcsname\relax
+ 1%
+ \else
+ \ifnum\pdftexversion<140 \else 1\fi
+ \fi
+ \fi
\expandafter\ifx\csname directlua\endcsname\relax
\else
- \ifnum\luatexversion<36 \else 1\fi
+ \ifnum\luatexversion<40 \else 1\fi
\fi
=0 %
\newlinechar`\^^J %
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx b/Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx
index d9a3202c949..7e752aadf43 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx
@@ -38,7 +38,7 @@
\documentclass[full]{l3doc}
%</driver>
%<*driver|package>
-\GetIdInfo$Id: l3candidates.dtx 6208 2015-10-09 20:01:54Z joseph $
+\GetIdInfo$Id: l3candidates.dtx 6216 2015-11-01 23:32:43Z bruno $
{L3 Experimental additions to l3kernel}
%</driver|package>
%<*driver>
@@ -637,14 +637,6 @@
% when there are only two \meta{boolean expressions}.
% \end{function}
%
-% \begin{function}[EXP, updated = 2012-07-08]{\bool_not_p:n}
-% \begin{syntax}
-% \cs{bool_not_p:n} \Arg{boolean expression}
-% \end{syntax}
-% Function version of |!(|\meta{boolean expression}|)| within a boolean
-% expression.
-% \end{function}
-%
% \begin{function}[EXP, added = 2015-09-28]{\bool_or_p:nn}
% \begin{syntax}
% \cs{bool_or_p:nn} \Arg{boolexpr_1} \Arg{boolexpr_2}
@@ -657,17 +649,6 @@
% than two \meta{boolean expressions}.
% \end{function}
%
-% \begin{function}[EXP, updated = 2012-07-08]{\bool_xor_p:nn}
-% \begin{syntax}
-% \cs{bool_xor_p:nn} \Arg{boolexpr_1} \Arg{boolexpr_2}
-% \end{syntax}
-% Implements an \enquote{exclusive or} operation between two boolean
-% expressions. There is no infix operation for this logical
-% operator.
-% \end{function}
-%
-
-%
% \begin{function}[added = 2014-08-22, updated = 2015-08-03]{\bool_log:N, \bool_log:c}
% \begin{syntax}
% \cs{bool_log:N} \meta{boolean}
@@ -2622,17 +2603,6 @@
% \end{macro}
% \end{macro}
%
-% \begin{macro}{\bool_not_p:n}
-% \UnitTested
-% The Not variant just reverses the outcome of \cs{bool_if_p:n}. Can
-% be optimized but this is nice and simple and according to the
-% implementation plan. Not even particularly useful to have it when
-% the infix notation is easier to use.
-% \begin{macrocode}
-\cs_new:Npn \bool_not_p:n #1 { \bool_if_p:n { ! ( #1 ) } }
-% \end{macrocode}
-% \end{macro}
-%
% \begin{macro}{\bool_or_p:nn}
% Only evaluate the second expression if the first is \texttt{false}.
% \begin{macrocode}
@@ -2641,21 +2611,6 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\bool_xor_p:nn}
-% \UnitTested
-% Exclusive or. If the boolean expressions have same truth value,
-% return false, otherwise return true.
-% \begin{macrocode}
-\cs_new:Npn \bool_xor_p:nn #1#2
- {
- \int_compare:nNnTF { \bool_if_p:n {#1} } = { \bool_if_p:n {#2} }
- \c_false_bool
- \c_true_bool
- }
-% \end{macrocode}
-% \end{macro}
-%
-%
% \begin{macro}{\bool_log:N, \bool_log:c, \bool_log:n}
% Redirect output of \cs{bool_show:N} to the log.
% \begin{macrocode}
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3drivers.dtx b/Master/texmf-dist/source/latex/l3kernel/l3drivers.dtx
index 747d2c33cb4..2d508e31a05 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3drivers.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3drivers.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-%% File: l3drivers.dtx Copyright(C) 2011-2014 The LaTeX3 Project
+%% File: l3drivers.dtx Copyright(C) 2011-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: l3drivers.dtx 5435 2014-10-16 21:27:50Z joseph $
+\GetIdInfo$Id: l3drivers.dtx 6213 2015-10-18 09:48:17Z joseph $
{L3 Experimental drivers}
%</driver|package>
%<*driver>
@@ -225,9 +225,9 @@
% \texttt{(x)dvipdfmx} this is done using an appropriate special. Note
% that here and later, the \texttt{dvipdfmx} documentation does not cover
% the |literal| key word but that this appears to behave in the same way as
-% \pdfTeX{}'s \tn{pdfliteral} (making life easier all-round).
+% \pdfTeX{}'s \tn{pdfliteral} (making life easier all-round). For \pdfTeX{}
+% and \LuaTeX{} giving direct PDF output there is a dedicated primitive.
% \begin{macrocode}
-%<*!pdfmode>
\cs_new_protected_nopar:Npn \@@_state_save:
%<*dvips>
{ \tex_special:D { ps:gsave } }
@@ -235,6 +235,9 @@
%<*dvipdfmx|xdvipdfmx>
{ \tex_special:D { pdf:literal~q } }
%</dvipdfmx|xdvipdfmx>
+%<*pdfmode>
+ { \pdftex_pdfsave:D }
+%</pdfmode>
\cs_new_protected_nopar:Npn \@@_state_restore:
%<*dvips>
{ \tex_special:D { ps:grestore } }
@@ -242,24 +245,8 @@
%<*dvipdfmx|xdvipdfmx>
{ \tex_special:D { pdf:literal~Q } }
%</dvipdfmx|xdvipdfmx>
-%</!pdfmode>
-% \end{macrocode}
-% For direct PDF output there is also a need to worry about the version
-% of \pdfTeX{} in use: the \tn{pdfsave} primitive was only introduced
-% in version~1.40.0.
-% \begin{macrocode}
%<*pdfmode>
-\cs_if_exist:NTF \pdftex_pdfsave:D
- {
- \cs_new_eq:NN \@@_state_save: \pdftex_pdfsave:D
- \cs_new_eq:NN \@@_state_restore: \pdftex_pdfrestore:D
- }
- {
- \cs_new_protected_nopar:Npn \@@_state_save:
- { \pdftex_pdfliteral:D { q } }
- \cs_new_protected_nopar:Npn \@@_state_restore:
- { \pdftex_pdfliteral:D { Q } }
- }
+ { \pdftex_pdfrestore:D }
%</pdfmode>
% \end{macrocode}
% \end{macro}
@@ -341,27 +328,20 @@
%
% \begin{macro}[int]{\@@_matrix:n}
% Here the appropriate function is set up to insert an affine matrix
-% into the PDF. With a new enough \pdfTeX{} (version~1.40.0 or later)
-% there is a primitive for this, which only needs the rotation/scaling/skew
-% part. With an older \pdfTeX{} or with \texttt{(x)dvipdfmx} the matrix
-% also has to include a translation part: that is always zero and so is
-% built in here.
+% into the PDF. With \pdfTeX{} and \LuaTeX{} in direct PDF output mode there
+% is a primitive for this, which only needs the rotation/scaling/skew part.
+% With \texttt{(x)dvipdfmx} the matrix also has to include a translation
+% part: that is always zero and so is built in here.
% \begin{macrocode}
+%<*!dvips>
+\cs_new_protected:Npn \@@_matrix:n #1
%<*pdfmode>
-\cs_if_exist:NTF \pdftex_pdfsetmatrix:D
- {
- \cs_new_protected:Npn \@@_matrix:n #1
- { \pdftex_pdfsetmatrix:D {#1} }
- }
- {
- \cs_new_protected:Npn \@@_matrix:n #1
- { \@@_literal:n { #1 \c_space_tl 0~0~cm } }
- }
+ { \pdftex_pdfsetmatrix:D {#1} }
%</pdfmode>
%<*dvipdfmx|xdvipdfmx>
-\cs_new_protected:Npn \@@_matrix:n #1
{ \@@_literal:n { #1 \c_space_tl 0~0~cm } }
%</dvipdfmx|xdvipdfmx>
+%</!dvips>
% \end{macrocode}
% \end{macro}
%
@@ -521,7 +501,7 @@
% \end{variable}
%
% \begin{variable}{\l_@@_color_stack_int}
-% \pdfTeX{} (version~1.40.0 or later) and \LuaTeX{} have multiple stacks
+% \pdfTeX{} and \LuaTeX{} have multiple stacks
% available, and the color stack therefore needs a number when in PDF mode.
% \begin{macrocode}
%<*pdfmode>
@@ -545,31 +525,15 @@
\cs_new_protected_nopar:Npn \@@_color_reset:
{ \tex_special:D { color~pop } }
%</dvipdfmx|dvips|xdvipdfmx>
-% \end{macrocode}
-% Once again there is a version switch for \pdfTeX{}, as the
-% \tn{pdfcolorstack} primitive was introduced in version~1.40.0.
-% \begin{macrocode}
%<*pdfmode>
-\cs_if_exist:NTF \pdftex_pdfcolorstack:D
- {
- \cs_new_protected_nopar:Npn \@@_color_ensure_current:
- {
- \pdftex_pdfcolorstack:D \l_@@_color_stack_int push
- { \l_@@_current_color_tl }
- \group_insert_after:N \@@_color_reset:
- }
- \cs_new_protected_nopar:Npn \@@_color_reset:
- { \pdftex_pdfcolorstack:D \l_@@_color_stack_int pop \scan_stop: }
- }
+\cs_new_protected_nopar:Npn \@@_color_ensure_current:
{
- \cs_new_protected_nopar:Npn \@@_color_ensure_current:
- {
- \@@_literal:n { \l_@@_current_color_tl }
- \group_insert_after:N \@@_color_reset:
- }
- \cs_new_protected_nopar:Npn \@@_color_reset:
- { \@@_literal:n { \l_@@_current_color_tl } }
+ \pdftex_pdfcolorstack:D \l_@@_color_stack_int push
+ { \l_@@_current_color_tl }
+ \group_insert_after:N \@@_color_reset:
}
+\cs_new_protected_nopar:Npn \@@_color_reset:
+ { \pdftex_pdfcolorstack:D \l_@@_color_stack_int pop \scan_stop: }
%</pdfmode>
% \end{macrocode}
% \end{macro}
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3final.dtx b/Master/texmf-dist/source/latex/l3kernel/l3final.dtx
index 93bf9a5f987..e080da8a5bd 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3final.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3final.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-%% File: l3final.dtx Copyright (C) 1990-2014 The LaTeX3 Project
+%% File: l3final.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
@@ -35,7 +35,7 @@
%
%<*driver>
\documentclass[full]{l3doc}
-\GetIdInfo$Id: l3final.dtx 4712 2014-04-30 08:17:49Z joseph $
+\GetIdInfo$Id: l3final.dtx 6223 2015-11-03 14:50:28Z joseph $
{L3 Experimental format finalisation}
\begin{document}
\DocInput{\jobname.dtx}
@@ -77,6 +77,41 @@
%<*initex>
% \end{macrocode}
%
+% \subsection{Temporary hacks}
+%
+% \begin{macro}{\T1/lmr/m/n/10}
+% For \emph{testing only} provide some kind of output: for that we
+% need a font. At present, select Latin Modern Roman at 10\,pt:
+% entirely arbitrary but at least usable.
+% \begin{macrocode}
+\tex_everypar:D \exp_after:wN
+ {
+ \exp_after:wN \tex_font:D \cs:w T1/lmr/m/n/10 \cs_end:
+ = ec-lmr10 \scan_stop:
+ \use:c { T1/lmr/m/n/10 }
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% Produce PDF output if possible (easier testing) and set some kind of
+% horizontal width: the one here is the \LaTeXe{} default. A parfill is
+% also useful so we get some kind of sensible paragraphs.
+% \begin{macrocode}
+\dim_set:Nn \tex_hsize:D { 345pt }
+\skip_set:Nn \tex_parfillskip:D { 0pt plus 1fil }
+\cs_if_exist:NT \pdftex_pdfoutput:D
+ { \int_set:Nn \pdftex_pdfoutput:D { 1 } }
+% \end{macrocode}
+%
+% \begin{macro}{\stop}
+% A way out of the run without needing to switch to the code environment.
+% \begin{macrocode}
+\cs_set_eq:NN \stop \tex_end:D
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Final tasks}
+%
% \begin{macro}{\par}
% \TeX{} has a nasty habit of inserting a command with the name \cs{par}
% so we had better make sure that \cs{par} has a definition.
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3names.dtx b/Master/texmf-dist/source/latex/l3kernel/l3names.dtx
index f7d7ed4e2ee..44b019828bb 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 6209 2015-10-10 19:51:42Z joseph $
+\GetIdInfo$Id: l3names.dtx 6220 2015-11-03 11:53:30Z joseph $
{L3 Namespace for primitives}
%</driver|package>
%<*driver>
@@ -1095,11 +1095,13 @@
\tex_let:D \luatex_rightghost:D \luatexrightghost
\tex_let:D \luatex_textdir:D \luatextextdir
\tex_fi:D
+%</package>
% \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}
+%<*initex|package>
\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
@@ -1158,6 +1160,7 @@
\tex_let:D \pdftex_savepos:D \savepos
\tex_let:D \pdftex_uniformdeviate:D \uniformdeviate
\tex_fi:D
+%</initex|package>
% \end{macrocode}
%
% For Con\TeX{}t, two tests are needed. Both Mark~II and Mark~IV move several
@@ -1165,6 +1168,7 @@
% as a marker. For Mark~IV, a few more primitives are moved: they are
% implemented using some Lua code in the current Con\TeX{}t.
% \begin{macrocode}
+%<*package>
\etex_ifdefined:D \normalend
\tex_let:D \tex_end:D \normalend
\tex_let:D \tex_everyjob:D \normaleveryjob
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3prg.dtx b/Master/texmf-dist/source/latex/l3kernel/l3prg.dtx
index 1fc47d225b9..08cd5acc89d 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 6208 2015-10-09 20:01:54Z joseph $
+\GetIdInfo$Id: l3prg.dtx 6216 2015-11-01 23:32:43Z bruno $
{L3 Control structures}
%</driver|package>
%<*driver>
@@ -391,6 +391,23 @@
% the next predicate or group.
% \end{function}
%
+% \begin{function}[EXP, updated = 2012-07-08]{\bool_not_p:n}
+% \begin{syntax}
+% \cs{bool_not_p:n} \Arg{boolean expression}
+% \end{syntax}
+% Function version of |!(|\meta{boolean expression}|)| within a boolean
+% expression.
+% \end{function}
+%
+% \begin{function}[EXP, updated = 2012-07-08]{\bool_xor_p:nn}
+% \begin{syntax}
+% \cs{bool_xor_p:nn} \Arg{boolexpr_1} \Arg{boolexpr_2}
+% \end{syntax}
+% Implements an \enquote{exclusive or} operation between two boolean
+% expressions. There is no infix operation for this logical
+% operator.
+% \end{function}
+%
% \section{Logical loops}
%
% Loops using either boolean expressions or stored boolean values.
@@ -1205,6 +1222,31 @@
% \end{macro}
% \end{macro}
%
+% \begin{macro}{\bool_not_p:n}
+% \UnitTested
+% The Not variant just reverses the outcome of \cs{bool_if_p:n}. Can
+% be optimized but this is nice and simple and according to the
+% implementation plan. Not even particularly useful to have it when
+% the infix notation is easier to use.
+% \begin{macrocode}
+\cs_new:Npn \bool_not_p:n #1 { \bool_if_p:n { ! ( #1 ) } }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\bool_xor_p:nn}
+% \UnitTested
+% Exclusive or. If the boolean expressions have same truth value,
+% return false, otherwise return true.
+% \begin{macrocode}
+\cs_new:Npn \bool_xor_p:nn #1#2
+ {
+ \int_compare:nNnTF { \bool_if_p:n {#1} } = { \bool_if_p:n {#2} }
+ \c_false_bool
+ \c_true_bool
+ }
+% \end{macrocode}
+% \end{macro}
+%
% \subsection{Logical loops}
%
% \begin{macro}{\bool_while_do:Nn, \bool_while_do:cn}