summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2016-05-18 21:59:39 +0000
committerKarl Berry <karl@freefriends.org>2016-05-18 21:59:39 +0000
commit97ec70e7454d8877757fc67cfb6409943171d219 (patch)
treebe7cca80672f2e585ba3e612f3bf7fb7647a7968
parent05a3ef202ad67cea59168d591f76ec3219e56aae (diff)
l3 (18may16)
git-svn-id: svn://tug.org/texlive/trunk@41246 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r--Master/texmf-dist/doc/latex/l3kernel/README.md2
-rw-r--r--Master/texmf-dist/doc/latex/l3kernel/expl3.pdfbin586851 -> 586814 bytes
-rw-r--r--Master/texmf-dist/doc/latex/l3kernel/interface3.pdfbin1497931 -> 1508559 bytes
-rw-r--r--Master/texmf-dist/doc/latex/l3kernel/l3docstrip.pdfbin268234 -> 268241 bytes
-rw-r--r--Master/texmf-dist/doc/latex/l3kernel/l3styleguide.pdfbin276800 -> 276808 bytes
-rw-r--r--Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.pdfbin220220 -> 220227 bytes
-rw-r--r--Master/texmf-dist/doc/latex/l3kernel/source3.pdfbin4715525 -> 4742116 bytes
-rw-r--r--Master/texmf-dist/doc/latex/l3packages/README.md2
-rw-r--r--Master/texmf-dist/doc/latex/l3packages/l3keys2e/l3keys2e.pdfbin333916 -> 333936 bytes
-rw-r--r--Master/texmf-dist/doc/latex/l3packages/xfrac/xfrac.pdfbin478711 -> 478732 bytes
-rw-r--r--Master/texmf-dist/doc/latex/l3packages/xparse/xparse.pdfbin460853 -> 460843 bytes
-rw-r--r--Master/texmf-dist/doc/latex/l3packages/xtemplate/xtemplate.pdfbin422903 -> 422913 bytes
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/expl3.dtx4
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3coffins.dtx4
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3drivers.dtx479
-rw-r--r--Master/texmf-dist/source/latex/l3packages/l3keys2e/l3keys2e.dtx8
-rw-r--r--Master/texmf-dist/source/latex/l3packages/xfrac/xfrac.dtx8
-rw-r--r--Master/texmf-dist/source/latex/l3packages/xparse/xparse.dtx8
-rw-r--r--Master/texmf-dist/source/latex/l3packages/xtemplate/xtemplate.dtx8
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex8
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex4
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/expl3.sty4
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3dvipdfmx.def152
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3dvips.def5
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3dvisvgm.def5
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3pdfmode.def146
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3xdvipdfmx.def155
-rw-r--r--Master/texmf-dist/tex/latex/l3packages/l3keys2e/l3keys2e.sty8
-rw-r--r--Master/texmf-dist/tex/latex/l3packages/xfrac/xfrac.sty8
-rw-r--r--Master/texmf-dist/tex/latex/l3packages/xparse/xparse.sty8
-rw-r--r--Master/texmf-dist/tex/latex/l3packages/xtemplate/xtemplate.sty8
31 files changed, 960 insertions, 74 deletions
diff --git a/Master/texmf-dist/doc/latex/l3kernel/README.md b/Master/texmf-dist/doc/latex/l3kernel/README.md
index 25e6a44ac9c..d336060a8dd 100644
--- a/Master/texmf-dist/doc/latex/l3kernel/README.md
+++ b/Master/texmf-dist/doc/latex/l3kernel/README.md
@@ -1,7 +1,7 @@
LaTeX3 Programming Conventions
==============================
-Release 2016/05/14 (r6495)
+Release 2016/05/18 (r6512)
Overview
--------
diff --git a/Master/texmf-dist/doc/latex/l3kernel/expl3.pdf b/Master/texmf-dist/doc/latex/l3kernel/expl3.pdf
index c0e1d335d8f..5ae07c3c9f4 100644
--- a/Master/texmf-dist/doc/latex/l3kernel/expl3.pdf
+++ b/Master/texmf-dist/doc/latex/l3kernel/expl3.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/l3kernel/interface3.pdf b/Master/texmf-dist/doc/latex/l3kernel/interface3.pdf
index 3dcd7c27547..e4caf34fb3c 100644
--- a/Master/texmf-dist/doc/latex/l3kernel/interface3.pdf
+++ b/Master/texmf-dist/doc/latex/l3kernel/interface3.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3docstrip.pdf b/Master/texmf-dist/doc/latex/l3kernel/l3docstrip.pdf
index 10491b0522b..5b21e8ee241 100644
--- a/Master/texmf-dist/doc/latex/l3kernel/l3docstrip.pdf
+++ b/Master/texmf-dist/doc/latex/l3kernel/l3docstrip.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3styleguide.pdf b/Master/texmf-dist/doc/latex/l3kernel/l3styleguide.pdf
index f2c59837d83..ec441e38464 100644
--- a/Master/texmf-dist/doc/latex/l3kernel/l3styleguide.pdf
+++ b/Master/texmf-dist/doc/latex/l3kernel/l3styleguide.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.pdf b/Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.pdf
index 41c74f92ecc..4ec9382d0de 100644
--- a/Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.pdf
+++ b/Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/l3kernel/source3.pdf b/Master/texmf-dist/doc/latex/l3kernel/source3.pdf
index 09b7db7d07d..c89a61b50e1 100644
--- a/Master/texmf-dist/doc/latex/l3kernel/source3.pdf
+++ b/Master/texmf-dist/doc/latex/l3kernel/source3.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/l3packages/README.md b/Master/texmf-dist/doc/latex/l3packages/README.md
index 0dec406f979..e5923b94e58 100644
--- a/Master/texmf-dist/doc/latex/l3packages/README.md
+++ b/Master/texmf-dist/doc/latex/l3packages/README.md
@@ -1,7 +1,7 @@
LaTeX3 High-Level Concepts
==========================
-Release 2016/05/14 (r6495)
+Release 2016/05/18 (r6512)
Overview
--------
diff --git a/Master/texmf-dist/doc/latex/l3packages/l3keys2e/l3keys2e.pdf b/Master/texmf-dist/doc/latex/l3packages/l3keys2e/l3keys2e.pdf
index 45f20095b4d..83d7d01ebbc 100644
--- a/Master/texmf-dist/doc/latex/l3packages/l3keys2e/l3keys2e.pdf
+++ b/Master/texmf-dist/doc/latex/l3packages/l3keys2e/l3keys2e.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/l3packages/xfrac/xfrac.pdf b/Master/texmf-dist/doc/latex/l3packages/xfrac/xfrac.pdf
index 1687578333a..667f5a1607a 100644
--- a/Master/texmf-dist/doc/latex/l3packages/xfrac/xfrac.pdf
+++ b/Master/texmf-dist/doc/latex/l3packages/xfrac/xfrac.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/l3packages/xparse/xparse.pdf b/Master/texmf-dist/doc/latex/l3packages/xparse/xparse.pdf
index 22ab446a8b8..3a9c5afa8cb 100644
--- a/Master/texmf-dist/doc/latex/l3packages/xparse/xparse.pdf
+++ b/Master/texmf-dist/doc/latex/l3packages/xparse/xparse.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/l3packages/xtemplate/xtemplate.pdf b/Master/texmf-dist/doc/latex/l3packages/xtemplate/xtemplate.pdf
index 13f007b15c6..7b19c9a3bac 100644
--- a/Master/texmf-dist/doc/latex/l3packages/xtemplate/xtemplate.pdf
+++ b/Master/texmf-dist/doc/latex/l3packages/xtemplate/xtemplate.pdf
Binary files differ
diff --git a/Master/texmf-dist/source/latex/l3kernel/expl3.dtx b/Master/texmf-dist/source/latex/l3kernel/expl3.dtx
index 165d2dc1762..5a97f7632e7 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{2016/05/14}%
-\def\ExplFileVersion{6495}%
+\def\ExplFileDate{2016/05/18}%
+\def\ExplFileVersion{6512}%
%</driver|generic|package>
%<*driver>
\documentclass[full]{l3doc}
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3coffins.dtx b/Master/texmf-dist/source/latex/l3kernel/l3coffins.dtx
index 22f322f2498..7923f0f1695 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3coffins.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3coffins.dtx
@@ -38,7 +38,7 @@
\documentclass[full]{l3doc}
%</driver>
%<*driver|package>
-\GetIdInfo$Id: l3coffins.dtx 6440 2016-03-24 09:59:29Z joseph $
+\GetIdInfo$Id: l3coffins.dtx 6508 2016-05-17 17:00:42Z joseph $
{L3 Coffin code layer}
%</driver|package>
%<*driver>
@@ -646,7 +646,7 @@
\dim_set_eq:NN \linewidth \tex_hsize:D
\dim_set_eq:NN \columnwidth \tex_hsize:D
%</package>
- \color_group_begin: \color_ensure_current:
+ \color_group_begin:
\cs_set_protected:Npn \vcoffin_set_end:
{
\color_group_end:
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3drivers.dtx b/Master/texmf-dist/source/latex/l3kernel/l3drivers.dtx
index 24252e7ae45..cfbcb9bdce3 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3drivers.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3drivers.dtx
@@ -38,7 +38,7 @@
\documentclass[full]{l3doc}
%</driver>
%<*driver|package>
-\GetIdInfo$Id: l3drivers.dtx 6494 2016-05-14 21:10:56Z joseph $
+\GetIdInfo$Id: l3drivers.dtx 6511 2016-05-17 20:20:23Z joseph $
{L3 Experimental drivers}
%</driver|package>
%<*driver>
@@ -153,6 +153,214 @@
% while preserving the color used in the box.
% \end{function}
%
+% \section{Drawing}
+%
+% The drawing functions provided here are \emph{highly} experimental. They
+% are inspired heavily by the system layer of \pkg{pgf} (most have the
+% same interface as the same functions in the latter's \cs{pgfsys@\ldots}
+% namespace). They are intended to form the basis for higher level drawing
+% interfaces, which themselves are likely to be further abstracted for user
+% access. Again, this model is heavily inspired by \pkg{pgf} and
+% Ti\textit{k}z.
+%
+% These low level drawing interfaces abstract from the driver raw requirements
+% but still require an appreciation of the concepts of PostScript/PDF/SVG
+% graphic creation.
+%
+% At present \emph{not all drivers are covered} by the following.
+%
+% \begin{function}
+% { \__driver_draw_begin:, \__driver_draw_end:}
+% \begin{syntax}
+% \cs{__driver_draw_begin:}
+% \meta{content}
+% \cs{__driver_draw_end:}
+% \end{syntax}
+% Defines a drawing environment. This will be a scope for the purposes of
+% the graphics state. Depending on the driver, other set up may or may not
+% take place here. The natural size of the \meta{content} should be zero
+% from the \TeX{} perspective: allowance for the size of the content must
+% be made at a higher level (or indeed this can be skipped if the content is
+% to overlap other material).
+% \end{function}
+%
+% \begin{function}
+% {\__driver_draw_scope_begin:, \__driver_draw_scope_end:}
+% \begin{syntax}
+% \cs{__driver_draw_scope_begin:}
+% \meta{content}
+% \cs{__driver_draw_scope_end:}
+% \end{syntax}
+% Defines a scope for drawing settings and so on. Changes to the graphic
+% state and concepts such as color or linewidth are localised to a scope.
+% This function pair must never be used if an partial path is under
+% construction: such paths must be entirely contained at one unbroken
+% scope level.
+% \end{function}
+%
+% \subsection{Path construction}
+%
+% \begin{function}{\__driver_draw_moveto:nn}
+% \begin{syntax}
+% \cs{__driver_draw_move:nn} \Arg{x} \Arg{y}
+% \end{syntax}
+% Moves the current drawing reference point to (\meta{x}, \meta{y});
+% any active transformation matrix will apply.
+% \end{function}
+%
+% \begin{function}{\__driver_draw_lineto:nn}
+% \begin{syntax}
+% \cs{__driver_draw_lineto:nn} \Arg{x} \Arg{y}
+% \end{syntax}
+% Adds a path from the current drawing reference point to
+% (\meta{x}, \meta{y}); any active transformation matrix will apply. Note
+% that nothing is drawn until a fill or stroke operation is applied, and that
+% the path may be discarded or used as a clip without appearing itself.
+% \end{function}
+%
+% \begin{function}{\__driver_draw_curveto:nnnnnn}
+% \begin{syntax}
+% \cs{__driver_draw_curveto:nnnnnn} \Arg{x_1} \Arg{y_1}
+% \Arg{x_2} \Arg{y_2} \Arg{x_3} \Arg{y_3}
+% \end{syntax}
+% Adds a Bezier curve path from the current drawing reference point to
+% (\meta{x_3}, \meta{y_3}), using (\meta{x_1}, \meta{y_1}) and
+% (\meta{x_2}, \meta{y_2}) as control points; any active transformation
+% matrix will apply. Note that nothing is drawn until a fill or stroke
+% operation is applied, and that the path may be discarded or used as a clip
+% without appearing itself.
+% \end{function}
+%
+% \begin{function}{\__driver_draw_closepath:}
+% \begin{syntax}
+% \cs{__driver_draw_closepath:}
+% \end{syntax}
+% Closes an existing path, adding a line from the current point to the
+% start of path. Note that nothing is drawn until a fill or stroke
+% operation is applied, and that the path may be discarded or used as a clip
+% without appearing itself.
+% \end{function}
+%
+% \subsection{Stroking and filling}
+%
+% \begin{function}{\__driver_draw_stroke:, \__driver_draw_closestroke:}
+% \begin{syntax}
+% \meta{path construction}
+% \cs{__driver_draw_stroke:}
+% \end{syntax}
+% Draws a line alone the current path, which will also be closed when
+% \cs{__driver_draw_closestroke:} is used. The nature of the line drawn
+% is influenced by settings for
+% \begin{itemize}
+% \item Line thickness
+% \item Stroke color (or the current color if no specific stroke color
+% is set)
+% \item Line capping (how non-closed line ends should look)
+% \item Join style (how a bend in the path should be rendered)
+% \item Dash pattern
+% \end{itemize}
+% The path may also be used for clipping.
+% \end{function}
+%
+% \begin{function}{\__driver_draw_fill:, \__driver_draw_fillstroke:}
+% \begin{syntax}
+% \meta{path construction}
+% \cs{__driver_draw_fill:}
+% \end{syntax}
+% Fills the area surrounded by the current path: this will be closed prior
+% to filling if it is not already. The \texttt{fillstroke} version will also
+% stroke the path as described for \cs{__driver_draw_stroke:}. The fill is
+% influenced by the setting for fill color (or the current color if no
+% specific stroke color is set). The path may also be used for clipping.
+% For paths which are self-intersecting or comprising multiple parts, the
+% determination of which areas are inside the path is made using the nonzero
+% winding rule number unless \cs{__driver_draw_eor_bool} is \texttt{true},
+% in which case the even-odd rule is used.
+% \end{function}
+%
+% \begin{function}{\__driver_draw_clip:}
+% \begin{syntax}
+% \meta{path construction}
+% \cs{__driver_draw_clip:}
+% \end{syntax}
+% Indicates that the current path should be used for clipping, such that
+% any subsequent material outside of the path (but within the current
+% scope) will not be shown. This command should be given once a path is
+% complete but before it is stroked or filled (if appropriate).
+% \end{function}
+%
+% \begin{function}{\__driver_draw_discardpath:}
+% \begin{syntax}
+% \meta{path construction}
+% \cs{__driver_draw_discardpath:}
+% \end{syntax}
+% Discards the current path without stroking or filling. This is primarily
+% useful for paths constructed purely for clipping, as this alone does not
+% end the paths existence.
+% \end{function}
+%
+% \subsection{Stroke options}
+%
+% \begin{function}{\__driver_draw_linewidth:n}
+% \begin{syntax}
+% \cs{__driver_draw_linewidth:n} \Arg{dimexpr}
+% \end{syntax}
+% Sets the width to be used for stroking to \meta{dimexpr}.
+% \end{function}
+%
+% \begin{function}{\__driver_draw_dash:nn}
+% \begin{syntax}
+% \cs{__driver_draw_dash:nn} \Arg{dash pattern} \Arg{phase}
+% \end{syntax}
+% Sets the pattern of dashing to be used when stroking a line. The
+% \meta{dash pattern} should be a comma-separated list of dimension
+% expressions. This is then interpreted as a series of pairs of line-on
+% and line-off lengths. For example \texttt{3pt, 4pt} means that $3$\,pt on,
+% $4$\,pt off, $3$\,pt on, and so on. A more complex pattern will also
+% repeat: \texttt{3pt, 4pt, 1pt, 2pt} results in $3$\,pt on, $4$\,pt off,
+% $1$\,pt on, $2$\,pt off, $3$\,pt on, and so on. An odd number of entries
+% means that the last is repeated, for example \texttt{3pt} is equal to
+% \texttt{3pt, 3pt}. An empty pattern yields a solid line.
+%
+% The \meta{phase} specifies an offset at the start of the cycle. For
+% example, with a pattern \texttt{3pt} a phase of \texttt{1pt} will mean
+% that the output is $2$\,pt on, $3$\,pt off, $3$\,pt on, $3$\,pt on,
+% \emph{etc.}
+% \end{function}
+%
+% \begin{function}
+% {
+% \__driver_draw_cap_butt: ,
+% \__driver_draw_cap_rectangle: ,
+% \__driver_draw_cap_round:
+% }
+% \begin{syntax}
+% \cs{__driver_draw_cap_butt:}
+% \end{syntax}
+% Sets the style of terminal stroke position to one of butt, rectangle or
+% round.
+% \end{function}
+%
+% \begin{function}
+% {
+% \__driver_draw_join_bevel: ,
+% \__driver_draw_join_miter: ,
+% \__driver_draw_join_round:
+% }
+% \begin{syntax}
+% \cs{__driver_draw_cap_butt:}
+% \end{syntax}
+% Sets the style of stroke joins to one of bevel, miter or round.
+% \end{function}
+%
+% \begin{function}{\__driver_draw_miterlimit:n}
+% \begin{syntax}
+% \cs{__driver_draw_miterlimit:n} \Arg{dimexpr}
+% \end{syntax}
+% Sets the miter limit of lines joined as a miter, as described in the
+% PDF and PostScript manuals.
+% \end{function}
+%
% \end{documentation}
%
% \begin{implementation}
@@ -383,12 +591,12 @@
% \begin{macro}[aux]{\@@_color_reset:}
% Directly set the color using the specials with optimisation support.
% \begin{macrocode}
-\cs_new_protected_nopar:Npx \@@_color_ensure_current:
+\cs_new_protected_nopar:Npn \@@_color_ensure_current:
{
\tex_special:D { pdf:bcolor~\l_@@_current_color_tl }
- \group_insert_after:N \exp_not:N \@@_color_reset:
+ \group_insert_after:N \@@_color_reset:
}
-\cs_new_protected_nopar:Npx \@@_color_reset:
+\cs_new_protected_nopar:Npn \@@_color_reset:
{ \tex_special:D { pdf:ecolor } }
% \end{macrocode}
% \end{macro}
@@ -419,9 +627,8 @@
\cs_set_protected_nopar:Npn \@@_color_ensure_current:
{
\tex_special:D { color~push~\l_@@_current_color_tl }
- \group_insert_after:N \exp_not:N \@@_color_reset:
+ \group_insert_after:N \@@_color_reset:
}
-
\cs_set_protected_nopar:Npn \@@_color_reset:
{ \tex_special:D { color~pop } }
}
@@ -533,6 +740,258 @@
% \end{macrocode}
% \end{macro}
%
+% \subsection{Drawing}
+%
+% \begin{macro}[aux]{\@@_draw_literal:n, \@@_draw_literal:x}
+% Pass data through using a dedicated interface.
+% \begin{macrocode}
+\cs_new_eq:NN \@@_draw_literal:n \@@_literal:n
+\cs_generate_variant:Nn \@@_draw_literal:n { x }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}[int]{\@@_draw_begin:, \@@_draw_end:}
+% No special requirements here, so simply set up a drawing scope.
+% \begin{macrocode}
+\cs_new_protected_nopar:Npn \@@_draw_begin:
+ { \@@_draw_scope_begin: }
+\cs_new_protected_nopar:Npn \@@_draw_end:
+ { \@@_draw_scope_end: }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}[int]{\@@_draw_scope_begin:, \@@_draw_scope_end:}
+% In contrast to a general scope, a drawing scope is always done using
+% the PDF operators so is the same for all relevant drivers.
+% \begin{macrocode}
+\cs_new_protected_nopar:Npn \@@_draw_scope_begin:
+ { \@@_draw_literal:n { q } }
+\cs_new_protected_nopar:Npn \@@_draw_scope_end:
+ { \@@_draw_literal:n { Q } }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}[int]{\@@_draw_moveto:nn, \@@_draw_lineto:nn}
+% \begin{macro}[int]{\@@_draw_curveto:nnnnnn}
+% Path creation operations all resolve directly to PDF primitive steps, with
+% only the need to convert to \texttt{bp}. Notice that \texttt{x}-type
+% expansion is included here to ensure that any variable values are
+% forced to literals before any possible caching.
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_draw_moveto:nn #1#2
+ {
+ \@@_draw_literal:x
+ { \dim_to_decimal_in_bp:n {#1} ~ \dim_to_decimal_in_bp:n {#2} ~ m }
+ }
+\cs_new_protected:Npn \@@_draw_lineto:nn #1#2
+ {
+ \@@_draw_literal:x
+ { \dim_to_decimal_in_bp:n {#1} ~ \dim_to_decimal_in_bp:n {#2} ~ l }
+ }
+\cs_new_protected:Npn \@@_draw_curveto:nnnnnn #1#2#3#4#5#6
+ {
+ \@@_draw_literal:x
+ {
+ \dim_to_decimal_in_bp:n {#1} ~ \dim_to_decimal_in_bp:n {#2} ~
+ \dim_to_decimal_in_bp:n {#3} ~ \dim_to_decimal_in_bp:n {#4} ~
+ \dim_to_decimal_in_bp:n {#5} ~ \dim_to_decimal_in_bp:n {#6} ~
+ c
+ }
+ }
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{variable}[int]{\@@_draw_eor_bool}
+% The even-odd rule here can be implemented as a simply switch.
+% \begin{macrocode}
+\bool_new:N \@@_draw_eor_bool
+% \end{macrocode}
+% \end{variable}
+%
+% \begin{macro}[int]
+% {
+% \@@_draw_closepath: ,
+% \@@_draw_stroke: ,
+% \@@_draw_closestroke: ,
+% \@@_draw_fill: ,
+% \@@_draw_fillstroke: ,
+% \@@_draw_clip: ,
+% \@@_draw_discardpath:
+% }
+% Converting paths to output is again a case of mapping directly to
+% PDF operations.
+% \begin{macrocode}
+\cs_new_protected_nopar:Npn \@@_draw_closepath:
+ { \@@_draw_literal:n { h } }
+\cs_new_protected_nopar:Npn \@@_draw_stroke:
+ { \@@_draw_literal:n { S } }
+\cs_new_protected_nopar:Npn \@@_draw_closestroke:
+ { \@@_draw_literal:n { s } }
+\cs_new_protected_nopar:Npn \@@_draw_fill:
+ {
+ \@@_draw_literal:x
+ { f \bool_if:NT \@@_draw_eor_bool * }
+ }
+\cs_new_protected_nopar:Npn \@@_draw_fillstroke:
+ {
+ \@@_draw_literal:x
+ { B \bool_if:NT \@@_draw_eor_bool * }
+ }
+\cs_new_protected_nopar:Npn \@@_draw_clip:
+ {
+ \@@_draw_literal:x
+ { W \bool_if:NT \@@_draw_eor_bool * }
+ }
+\cs_new_protected_nopar:Npn \@@_draw_discardpath:
+ { \@@_draw_literal:n { n } }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}[int]{\@@_draw_dash:nn}
+% \begin{macro}[aux]{\@@_draw_dash:n}
+% \begin{macro}[int]{\@@_draw_linewidth:n}
+% \begin{macro}[int]{\@@_draw_miterlimit:n}
+% \begin{macro}[int]^^A
+% {
+% \@@_draw_cap_butt:, \@@_draw_cap_round:, \@@_draw_cap_rectangle:,
+% \@@_draw_join_miter:, \@@_draw_join_round:, \@@_draw_join_bevel:
+% }
+% Converting paths to output is again a case of mapping directly to
+% PDF operations.
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_draw_dash:nn #1#2
+ {
+ \@@_draw_literal:x
+ {
+ [ ~
+ \clist_map_function:nN {#1} \@@_draw_dash:n
+ ] ~
+ \dim_to_decimal_in_bp:n {#2} ~ d
+ }
+ }
+\cs_new:Npn \@@_draw_dash:n #1
+ { \dim_to_decimal_in_bp:n {#1} ~ }
+\cs_new_protected:Npn \@@_draw_linewidth:n #1
+ {
+ \@@_draw_literal:x
+ { \dim_to_decimal_in_bp:n {#1} ~ w }
+ }
+\cs_new_protected:Npn \@@_draw_miterlimit:n #1
+ { \@@_draw_literal:x { \fp_eval:n {#1} ~ M } }
+\cs_new_protected_nopar:Npn \@@_draw_cap_butt:
+ { \@@_draw_literal:n { 0 ~ J } }
+\cs_new_protected_nopar:Npn \@@_draw_cap_round:
+ { \@@_draw_literal:n { 1 ~ J } }
+\cs_new_protected_nopar:Npn \@@_draw_cap_rectangle:
+ { \@@_draw_literal:n { 2 ~ J } }
+\cs_new_protected_nopar:Npn \@@_draw_join_miter:
+ { \@@_draw_literal:n { 0 ~ j } }
+\cs_new_protected_nopar:Npn \@@_draw_join_round:
+ { \@@_draw_literal:n { 1 ~ j } }
+\cs_new_protected_nopar:Npn \@@_draw_join_bevel:
+ { \@@_draw_literal:n { 2 ~ j } }
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}[int]
+% {\@@_draw_color_cmyk_fill:nnnn, \@@_draw_color_cmyk_stroke:nnnn}
+% \begin{macro}[int]
+% {\@@_draw_color_gray_fill:n, \@@_draw_color_gray_stroke:n}
+% \begin{macro}[int]
+% {\@@_draw_color_rgb_fill:nnn, \@@_draw_color_rgb_stroke:nnn}
+% Yet more fast conversion, all using the FPU to allow for expressions
+% in numerical input.
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_draw_color_cmyk_fill:nnnn #1#2#3#4
+ {
+ \@@_draw_literal:x
+ {
+ \fp_eval:n {#1} ~ \fp_eval:n {#2} ~
+ \fp_eval:n {#3} ~ \fp_eval:n {#4} ~
+ k
+ }
+ }
+\cs_new_protected:Npn \@@_draw_color_cmyk_stroke:nnnn #1#2#3#4
+ {
+ \@@_draw_literal:x
+ {
+ \fp_eval:n {#1} ~ \fp_eval:n {#2} ~
+ \fp_eval:n {#3} ~ \fp_eval:n {#4} ~
+ K
+ }
+ }
+\cs_new_protected:Npn \@@_draw_color_gray_fill:n #1
+ { \@@_draw_literal:x { \fp_eval:n {#1} ~ g } }
+\cs_new_protected:Npn \@@_draw_color_gray_stroke:n #1
+ { \@@_draw_literal:x { \fp_eval:n {#1} ~ G } }
+\cs_new_protected:Npn \@@_draw_color_rgb_fill:nnn #1#2#3
+ {
+ \@@_draw_literal:x
+ { \fp_eval:n {#1} ~ \fp_eval:n {#2} ~ \fp_eval:n {#3} ~ rg }
+ }
+\cs_new_protected:Npn \@@_draw_color_rgb_stroke:nnn #1#2#3
+ {
+ \@@_draw_literal:x
+ { \fp_eval:n {#1} ~ \fp_eval:n {#2} ~ \fp_eval:n {#3} ~ RG }
+ }
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}[int]{\@@_draw_transformcm:nnnnnn}
+% The first four arguments here are floats (the affine matrix), the last
+% two are a displacement vector. Once again, force evaluation to allow for
+% caching.
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_draw_transformcm:nnnnnn #1#2#3#4#5#6
+ {
+ \@@_draw_literal:x
+ {
+ \fp_eval:n {#1} ~ \fp_eval:n {#2} ~
+ \fp_eval:n {#3} ~ \fp_eval:n {#4} ~
+ \dim_to_decimal_in_bp:n {#5} ~ \dim_to_decimal_in_bp:n {#6} ~
+ cm
+ }
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}[int]{\@@_draw_hbox:Nnnnnnn}
+% \begin{variable}[aux]{\l_@@_tmp_box}
+% Inserting a \TeX{} box transformed to the requested position and using
+% the current matrix is done using a mixture of \TeX{} and low-level
+% manipulation. The offset can be handled by \TeX{}, so only any rotation/^^A
+% skew/scaling component needs to be done using the matrix operation. As this
+% operation can never be cached, the scope is set directly not using the
+% \texttt{draw} version.
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_draw_hbox:Nnnnnnn #1#2#3#4#5#6#7
+ {
+ \hbox_set:Nn \l_@@_tmp_box
+ {
+ \tex_kern:D \__dim_eval:w #6 \__dim_eval_end:
+ \@@_scope_begin:
+ \@@_draw_transformcm:nnnnnn {#2} {#3} {#4} {#5}
+ { 0pt } { 0pt }
+ \box_move_up:nn {#7} { \box_use:N #1 }
+ \@@_scope_end:
+ }
+ \box_set_wd:Nn \l_@@_tmp_box { 0pt }
+ \box_set_ht:Nn \l_@@_tmp_box { 0pt }
+ \box_set_dp:Nn \l_@@_tmp_box { 0pt }
+ \box_use:N \l_@@_tmp_box
+ }
+\box_new:N \l_@@_tmp_box
+% \end{macrocode}
+% \end{variable}
+% \end{macro}
+%
% \begin{macrocode}
%</dvipdfmx|pdfmode|xdvipdfmx>
% \end{macrocode}
@@ -552,7 +1011,7 @@
% of the stack to save the current position \enquote{up front} and to
% move back to it at the end of the process.
% \begin{macrocode}
-\cs_new_protected:Npx \@@_literal:n #1
+\cs_new_protected:Npn \@@_literal:n #1
{
\tex_special:D
{
@@ -691,7 +1150,6 @@
\tex_special:D { color~push~\l_@@_current_color_tl }
\group_insert_after:N \@@_color_reset:
}
-
\cs_new_protected_nopar:Npn \@@_color_reset:
{ \tex_special:D { color~pop } }
% \end{macrocode}
@@ -897,9 +1355,8 @@
\cs_new_protected_nopar:Npn \@@_color_ensure_current:
{
\tex_special:D { color~push~\l_@@_current_color_tl }
- \group_insert_after:N \exp_not:N \@@_color_reset:
+ \group_insert_after:N \@@_color_reset:
}
-
\cs_new_protected_nopar:Npn \@@_color_reset:
{ \tex_special:D { color~pop } }
% \end{macrocode}
@@ -916,4 +1373,4 @@
%
% \end{implementation}
%
-% \PrintIndex \ No newline at end of file
+% \PrintIndex
diff --git a/Master/texmf-dist/source/latex/l3packages/l3keys2e/l3keys2e.dtx b/Master/texmf-dist/source/latex/l3packages/l3keys2e/l3keys2e.dtx
index 550ef6a942f..05c4a29b55b 100644
--- a/Master/texmf-dist/source/latex/l3packages/l3keys2e/l3keys2e.dtx
+++ b/Master/texmf-dist/source/latex/l3packages/l3keys2e/l3keys2e.dtx
@@ -37,8 +37,8 @@
%<*driver|package>
% The version of expl3 required is tested as early as possible, as
% some really old versions do not define \ProvidesExplPackage.
-\RequirePackage{expl3}[2016/05/14]
-%<package>\@ifpackagelater{expl3}{2016/05/14}
+\RequirePackage{expl3}[2016/05/18]
+%<package>\@ifpackagelater{expl3}{2016/05/18}
%<package> {}
%<package> {%
%<package> \PackageError{l3keys2e}{Support package l3kernel too old}
@@ -52,8 +52,8 @@
%<package> }
\def\ExplFileName{l3keys2e}
\def\ExplFileDescription{LaTeX2e option processing using LaTeX3 keys}
-\def\ExplFileDate{2016/05/14}
-\def\ExplFileVersion{6495}
+\def\ExplFileDate{2016/05/18}
+\def\ExplFileVersion{6512}
%</driver|package>
%<*driver>
\documentclass[full]{l3doc}
diff --git a/Master/texmf-dist/source/latex/l3packages/xfrac/xfrac.dtx b/Master/texmf-dist/source/latex/l3packages/xfrac/xfrac.dtx
index 3bd3682dff6..6204cdcca48 100644
--- a/Master/texmf-dist/source/latex/l3packages/xfrac/xfrac.dtx
+++ b/Master/texmf-dist/source/latex/l3packages/xfrac/xfrac.dtx
@@ -38,8 +38,8 @@
%<*driver|package>
% The version of expl3 required is tested as early as possible, as
% some really old versions do not define \ProvidesExplPackage.
-\RequirePackage{expl3}[2016/05/14]
-%<package>\@ifpackagelater{expl3}{2016/05/14}
+\RequirePackage{expl3}[2016/05/18]
+%<package>\@ifpackagelater{expl3}{2016/05/18}
%<package> {}
%<package> {%
%<package> \PackageError{xfrac}{Support package l3kernel too old}
@@ -54,8 +54,8 @@
\RequirePackage{amstext,graphicx,l3keys2e,textcomp,xparse,xtemplate}
\def\ExplFileName{xfrac}
\def\ExplFileDescription{L3 Experimental split-level fractions}
-\def\ExplFileDate{2016/05/14}
-\def\ExplFileVersion{6495}
+\def\ExplFileDate{2016/05/18}
+\def\ExplFileVersion{6512}
%</driver|package>
%<*driver>
\documentclass[full]{l3doc}
diff --git a/Master/texmf-dist/source/latex/l3packages/xparse/xparse.dtx b/Master/texmf-dist/source/latex/l3packages/xparse/xparse.dtx
index 1a2e9767429..f19e9301113 100644
--- a/Master/texmf-dist/source/latex/l3packages/xparse/xparse.dtx
+++ b/Master/texmf-dist/source/latex/l3packages/xparse/xparse.dtx
@@ -41,8 +41,8 @@
%<*driver|package>
% The version of expl3 required is tested as early as possible, as
% some really old versions do not define \ProvidesExplPackage.
-\RequirePackage{expl3}[2016/05/14]
-%<package>\@ifpackagelater{expl3}{2016/05/14}
+\RequirePackage{expl3}[2016/05/18]
+%<package>\@ifpackagelater{expl3}{2016/05/18}
%<package> {}
%<package> {%
%<package> \PackageError{xparse}{Support package l3kernel too old}
@@ -56,8 +56,8 @@
%<package> }
\def\ExplFileName{xparse}
\def\ExplFileDescription{L3 Experimental document command parser}
-\def\ExplFileDate{2016/05/14}
-\def\ExplFileVersion{6495}
+\def\ExplFileDate{2016/05/18}
+\def\ExplFileVersion{6512}
%</driver|package>
%<*driver>
\documentclass[full]{l3doc}
diff --git a/Master/texmf-dist/source/latex/l3packages/xtemplate/xtemplate.dtx b/Master/texmf-dist/source/latex/l3packages/xtemplate/xtemplate.dtx
index 0514e96486e..f3ad7e8f289 100644
--- a/Master/texmf-dist/source/latex/l3packages/xtemplate/xtemplate.dtx
+++ b/Master/texmf-dist/source/latex/l3packages/xtemplate/xtemplate.dtx
@@ -41,8 +41,8 @@
%<*driver|package>
% The version of expl3 required is tested as early as possible, as
% some really old versions do not define \ProvidesExplPackage.
-\RequirePackage{expl3}[2016/05/14]
-%<package>\@ifpackagelater{expl3}{2016/05/14}
+\RequirePackage{expl3}[2016/05/18]
+%<package>\@ifpackagelater{expl3}{2016/05/18}
%<package> {}
%<package> {%
%<package> \PackageError{xtemplate}{Support package l3kernel too old}
@@ -56,8 +56,8 @@
%<package> }
\def\ExplFileName{xtemplate}
\def\ExplFileDescription{L3 Experimental prototype document functions}
-\def\ExplFileDate{2016/05/14}
-\def\ExplFileVersion{6495}
+\def\ExplFileDate{2016/05/18}
+\def\ExplFileVersion{6512}
%</driver|package>
%<*driver>
\documentclass[full]{l3doc}
diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex b/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex
index 2d36561733f..2676787a1c3 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex
+++ b/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex
@@ -82,8 +82,8 @@
%% -----------------------------------------------------------------------
\def\ExplFileName{expl3}%
\def\ExplFileDescription{L3 programming layer}%
-\def\ExplFileDate{2016/05/14}%
-\def\ExplFileVersion{6495}%
+\def\ExplFileDate{2016/05/18}%
+\def\ExplFileVersion{6512}%
\begingroup
\def\next{\endgroup}%
\expandafter\ifx\csname PackageError\endcsname\relax
@@ -16295,7 +16295,7 @@
%%
%% -----------------------------------------------------------------------
%%
-\GetIdInfo$Id: l3coffins.dtx 6440 2016-03-24 09:59:29Z joseph $
+\GetIdInfo$Id: l3coffins.dtx 6508 2016-05-17 17:00:42Z joseph $
{L3 Coffin code layer}
\box_new:N \l__coffin_internal_box
\dim_new:N \l__coffin_internal_dim
@@ -16446,7 +16446,7 @@
\dim_set:Nn \tex_hsize:D {#2}
\dim_set_eq:NN \linewidth \tex_hsize:D
\dim_set_eq:NN \columnwidth \tex_hsize:D
- \color_group_begin: \color_ensure_current:
+ \color_group_begin:
\cs_set_protected:Npn \vcoffin_set_end:
{
\color_group_end:
diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex b/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex
index 615774d6de2..42126c988c8 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex
+++ b/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex
@@ -47,8 +47,8 @@
%% -----------------------------------------------------------------------
\def\ExplFileName{expl3}%
\def\ExplFileDescription{L3 programming layer}%
-\def\ExplFileDate{2016/05/14}%
-\def\ExplFileVersion{6495}%
+\def\ExplFileDate{2016/05/18}%
+\def\ExplFileVersion{6512}%
\let\ExplLoaderFileVersion\ExplFileVersion
\begingroup
\def\tempa{LaTeX2e}%
diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3.sty b/Master/texmf-dist/tex/latex/l3kernel/expl3.sty
index 6d06ca11f3d..97c34cfc936 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/expl3.sty
+++ b/Master/texmf-dist/tex/latex/l3kernel/expl3.sty
@@ -47,8 +47,8 @@
%% -----------------------------------------------------------------------
\def\ExplFileName{expl3}%
\def\ExplFileDescription{L3 programming layer}%
-\def\ExplFileDate{2016/05/14}%
-\def\ExplFileVersion{6495}%
+\def\ExplFileDate{2016/05/18}%
+\def\ExplFileVersion{6512}%
\let\ExplLoaderFileVersion\ExplFileVersion
\ProvidesPackage{\ExplFileName}
[%
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3dvipdfmx.def b/Master/texmf-dist/tex/latex/l3kernel/l3dvipdfmx.def
index 59dc81cc5ce..f2447ac4f51 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3dvipdfmx.def
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3dvipdfmx.def
@@ -46,7 +46,7 @@
%%
%% -----------------------------------------------------------------------
%%
-\GetIdInfo$Id: l3drivers.dtx 6494 2016-05-14 21:10:56Z joseph $
+\GetIdInfo$Id: l3drivers.dtx 6511 2016-05-17 20:20:23Z joseph $
{L3 Experimental drivers}
\ProvidesExplFile
{l3dvidpfmx.def}{\ExplFileDate}{\ExplFileVersion}
@@ -67,12 +67,12 @@
{ \tl_set:Nn \l__driver_current_color_tl { \current@color } }
{ }
}
-\cs_new_protected_nopar:Npx \__driver_color_ensure_current:
+\cs_new_protected_nopar:Npn \__driver_color_ensure_current:
{
\tex_special:D { pdf:bcolor~\l__driver_current_color_tl }
- \group_insert_after:N \exp_not:N \__driver_color_reset:
+ \group_insert_after:N \__driver_color_reset:
}
-\cs_new_protected_nopar:Npx \__driver_color_reset:
+\cs_new_protected_nopar:Npn \__driver_color_reset:
{ \tex_special:D { pdf:ecolor } }
\cs_new_protected:Npn \__driver_box_use_clip:N #1
{
@@ -127,6 +127,150 @@
\hbox_overlap_right:n { \box_use:N #1 }
\__driver_scope_end:
}
+\cs_new_eq:NN \__driver_draw_literal:n \__driver_literal:n
+\cs_generate_variant:Nn \__driver_draw_literal:n { x }
+\cs_new_protected_nopar:Npn \__driver_draw_begin:
+ { \__driver_draw_scope_begin: }
+\cs_new_protected_nopar:Npn \__driver_draw_end:
+ { \__driver_draw_scope_end: }
+\cs_new_protected_nopar:Npn \__driver_draw_scope_begin:
+ { \__driver_draw_literal:n { q } }
+\cs_new_protected_nopar:Npn \__driver_draw_scope_end:
+ { \__driver_draw_literal:n { Q } }
+\cs_new_protected:Npn \__driver_draw_moveto:nn #1#2
+ {
+ \__driver_draw_literal:x
+ { \dim_to_decimal_in_bp:n {#1} ~ \dim_to_decimal_in_bp:n {#2} ~ m }
+ }
+\cs_new_protected:Npn \__driver_draw_lineto:nn #1#2
+ {
+ \__driver_draw_literal:x
+ { \dim_to_decimal_in_bp:n {#1} ~ \dim_to_decimal_in_bp:n {#2} ~ l }
+ }
+\cs_new_protected:Npn \__driver_draw_curveto:nnnnnn #1#2#3#4#5#6
+ {
+ \__driver_draw_literal:x
+ {
+ \dim_to_decimal_in_bp:n {#1} ~ \dim_to_decimal_in_bp:n {#2} ~
+ \dim_to_decimal_in_bp:n {#3} ~ \dim_to_decimal_in_bp:n {#4} ~
+ \dim_to_decimal_in_bp:n {#5} ~ \dim_to_decimal_in_bp:n {#6} ~
+ c
+ }
+ }
+\bool_new:N \__driver_draw_eor_bool
+\cs_new_protected_nopar:Npn \__driver_draw_closepath:
+ { \__driver_draw_literal:n { h } }
+\cs_new_protected_nopar:Npn \__driver_draw_stroke:
+ { \__driver_draw_literal:n { S } }
+\cs_new_protected_nopar:Npn \__driver_draw_closestroke:
+ { \__driver_draw_literal:n { s } }
+\cs_new_protected_nopar:Npn \__driver_draw_fill:
+ {
+ \__driver_draw_literal:x
+ { f \bool_if:NT \__driver_draw_eor_bool * }
+ }
+\cs_new_protected_nopar:Npn \__driver_draw_fillstroke:
+ {
+ \__driver_draw_literal:x
+ { B \bool_if:NT \__driver_draw_eor_bool * }
+ }
+\cs_new_protected_nopar:Npn \__driver_draw_clip:
+ {
+ \__driver_draw_literal:x
+ { W \bool_if:NT \__driver_draw_eor_bool * }
+ }
+\cs_new_protected_nopar:Npn \__driver_draw_discardpath:
+ { \__driver_draw_literal:n { n } }
+\cs_new_protected:Npn \__driver_draw_dash:nn #1#2
+ {
+ \__driver_draw_literal:x
+ {
+ [ ~
+ \clist_map_function:nN {#1} \__driver_draw_dash:n
+ ] ~
+ \dim_to_decimal_in_bp:n {#2} ~ d
+ }
+ }
+\cs_new:Npn \__driver_draw_dash:n #1
+ { \dim_to_decimal_in_bp:n {#1} ~ }
+\cs_new_protected:Npn \__driver_draw_linewidth:n #1
+ {
+ \__driver_draw_literal:x
+ { \dim_to_decimal_in_bp:n {#1} ~ w }
+ }
+\cs_new_protected:Npn \__driver_draw_miterlimit:n #1
+ { \__driver_draw_literal:x { \fp_eval:n {#1} ~ M } }
+\cs_new_protected_nopar:Npn \__driver_draw_cap_butt:
+ { \__driver_draw_literal:n { 0 ~ J } }
+\cs_new_protected_nopar:Npn \__driver_draw_cap_round:
+ { \__driver_draw_literal:n { 1 ~ J } }
+\cs_new_protected_nopar:Npn \__driver_draw_cap_rectangle:
+ { \__driver_draw_literal:n { 2 ~ J } }
+\cs_new_protected_nopar:Npn \__driver_draw_join_miter:
+ { \__driver_draw_literal:n { 0 ~ j } }
+\cs_new_protected_nopar:Npn \__driver_draw_join_round:
+ { \__driver_draw_literal:n { 1 ~ j } }
+\cs_new_protected_nopar:Npn \__driver_draw_join_bevel:
+ { \__driver_draw_literal:n { 2 ~ j } }
+\cs_new_protected:Npn \__driver_draw_color_cmyk_fill:nnnn #1#2#3#4
+ {
+ \__driver_draw_literal:x
+ {
+ \fp_eval:n {#1} ~ \fp_eval:n {#2} ~
+ \fp_eval:n {#3} ~ \fp_eval:n {#4} ~
+ k
+ }
+ }
+\cs_new_protected:Npn \__driver_draw_color_cmyk_stroke:nnnn #1#2#3#4
+ {
+ \__driver_draw_literal:x
+ {
+ \fp_eval:n {#1} ~ \fp_eval:n {#2} ~
+ \fp_eval:n {#3} ~ \fp_eval:n {#4} ~
+ K
+ }
+ }
+\cs_new_protected:Npn \__driver_draw_color_gray_fill:n #1
+ { \__driver_draw_literal:x { \fp_eval:n {#1} ~ g } }
+\cs_new_protected:Npn \__driver_draw_color_gray_stroke:n #1
+ { \__driver_draw_literal:x { \fp_eval:n {#1} ~ G } }
+\cs_new_protected:Npn \__driver_draw_color_rgb_fill:nnn #1#2#3
+ {
+ \__driver_draw_literal:x
+ { \fp_eval:n {#1} ~ \fp_eval:n {#2} ~ \fp_eval:n {#3} ~ rg }
+ }
+\cs_new_protected:Npn \__driver_draw_color_rgb_stroke:nnn #1#2#3
+ {
+ \__driver_draw_literal:x
+ { \fp_eval:n {#1} ~ \fp_eval:n {#2} ~ \fp_eval:n {#3} ~ RG }
+ }
+\cs_new_protected:Npn \__driver_draw_transformcm:nnnnnn #1#2#3#4#5#6
+ {
+ \__driver_draw_literal:x
+ {
+ \fp_eval:n {#1} ~ \fp_eval:n {#2} ~
+ \fp_eval:n {#3} ~ \fp_eval:n {#4} ~
+ \dim_to_decimal_in_bp:n {#5} ~ \dim_to_decimal_in_bp:n {#6} ~
+ cm
+ }
+ }
+\cs_new_protected:Npn \__driver_draw_hbox:Nnnnnnn #1#2#3#4#5#6#7
+ {
+ \hbox_set:Nn \l__driver_tmp_box
+ {
+ \tex_kern:D \__dim_eval:w #6 \__dim_eval_end:
+ \__driver_scope_begin:
+ \__driver_draw_transformcm:nnnnnn {#2} {#3} {#4} {#5}
+ { 0pt } { 0pt }
+ \box_move_up:nn {#7} { \box_use:N #1 }
+ \__driver_scope_end:
+ }
+ \box_set_wd:Nn \l__driver_tmp_box { 0pt }
+ \box_set_ht:Nn \l__driver_tmp_box { 0pt }
+ \box_set_dp:Nn \l__driver_tmp_box { 0pt }
+ \box_use:N \l__driver_tmp_box
+ }
+\box_new:N \l__driver_tmp_box
%%
%%
%% End of file `l3dvipdfmx.def'.
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3dvips.def b/Master/texmf-dist/tex/latex/l3kernel/l3dvips.def
index 30c8a6dc4f3..ffd9060b2cc 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3dvips.def
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3dvips.def
@@ -46,12 +46,12 @@
%%
%% -----------------------------------------------------------------------
%%
-\GetIdInfo$Id: l3drivers.dtx 6494 2016-05-14 21:10:56Z joseph $
+\GetIdInfo$Id: l3drivers.dtx 6511 2016-05-17 20:20:23Z joseph $
{L3 Experimental drivers}
\ProvidesExplFile
{l3dvips.def}{\ExplFileDate}{\ExplFileVersion}
{L3 Experimental driver: dvips}
-\cs_new_protected:Npx \__driver_literal:n #1
+\cs_new_protected:Npn \__driver_literal:n #1
{
\tex_special:D
{
@@ -130,7 +130,6 @@
\tex_special:D { color~push~\l__driver_current_color_tl }
\group_insert_after:N \__driver_color_reset:
}
-
\cs_new_protected_nopar:Npn \__driver_color_reset:
{ \tex_special:D { color~pop } }
%%
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3dvisvgm.def b/Master/texmf-dist/tex/latex/l3kernel/l3dvisvgm.def
index 5b04f5d7297..c873e1df65b 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3dvisvgm.def
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3dvisvgm.def
@@ -46,7 +46,7 @@
%%
%% -----------------------------------------------------------------------
%%
-\GetIdInfo$Id: l3drivers.dtx 6494 2016-05-14 21:10:56Z joseph $
+\GetIdInfo$Id: l3drivers.dtx 6511 2016-05-17 20:20:23Z joseph $
{L3 Experimental drivers}
\ProvidesExplFile
{l3dvisvgm.def}{\ExplFileDate}{\ExplFileVersion}
@@ -153,9 +153,8 @@
\cs_new_protected_nopar:Npn \__driver_color_ensure_current:
{
\tex_special:D { color~push~\l__driver_current_color_tl }
- \group_insert_after:N \exp_not:N \__driver_color_reset:
+ \group_insert_after:N \__driver_color_reset:
}
-
\cs_new_protected_nopar:Npn \__driver_color_reset:
{ \tex_special:D { color~pop } }
%%
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3pdfmode.def b/Master/texmf-dist/tex/latex/l3kernel/l3pdfmode.def
index 05f466d3051..d90c9c2bdc5 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3pdfmode.def
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3pdfmode.def
@@ -46,7 +46,7 @@
%%
%% -----------------------------------------------------------------------
%%
-\GetIdInfo$Id: l3drivers.dtx 6494 2016-05-14 21:10:56Z joseph $
+\GetIdInfo$Id: l3drivers.dtx 6511 2016-05-17 20:20:23Z joseph $
{L3 Experimental drivers}
\ProvidesExplFile
{l3pdfmode.def}{\ExplFileDate}{\ExplFileVersion}
@@ -155,6 +155,150 @@
\hbox_overlap_right:n { \box_use:N #1 }
\__driver_scope_end:
}
+\cs_new_eq:NN \__driver_draw_literal:n \__driver_literal:n
+\cs_generate_variant:Nn \__driver_draw_literal:n { x }
+\cs_new_protected_nopar:Npn \__driver_draw_begin:
+ { \__driver_draw_scope_begin: }
+\cs_new_protected_nopar:Npn \__driver_draw_end:
+ { \__driver_draw_scope_end: }
+\cs_new_protected_nopar:Npn \__driver_draw_scope_begin:
+ { \__driver_draw_literal:n { q } }
+\cs_new_protected_nopar:Npn \__driver_draw_scope_end:
+ { \__driver_draw_literal:n { Q } }
+\cs_new_protected:Npn \__driver_draw_moveto:nn #1#2
+ {
+ \__driver_draw_literal:x
+ { \dim_to_decimal_in_bp:n {#1} ~ \dim_to_decimal_in_bp:n {#2} ~ m }
+ }
+\cs_new_protected:Npn \__driver_draw_lineto:nn #1#2
+ {
+ \__driver_draw_literal:x
+ { \dim_to_decimal_in_bp:n {#1} ~ \dim_to_decimal_in_bp:n {#2} ~ l }
+ }
+\cs_new_protected:Npn \__driver_draw_curveto:nnnnnn #1#2#3#4#5#6
+ {
+ \__driver_draw_literal:x
+ {
+ \dim_to_decimal_in_bp:n {#1} ~ \dim_to_decimal_in_bp:n {#2} ~
+ \dim_to_decimal_in_bp:n {#3} ~ \dim_to_decimal_in_bp:n {#4} ~
+ \dim_to_decimal_in_bp:n {#5} ~ \dim_to_decimal_in_bp:n {#6} ~
+ c
+ }
+ }
+\bool_new:N \__driver_draw_eor_bool
+\cs_new_protected_nopar:Npn \__driver_draw_closepath:
+ { \__driver_draw_literal:n { h } }
+\cs_new_protected_nopar:Npn \__driver_draw_stroke:
+ { \__driver_draw_literal:n { S } }
+\cs_new_protected_nopar:Npn \__driver_draw_closestroke:
+ { \__driver_draw_literal:n { s } }
+\cs_new_protected_nopar:Npn \__driver_draw_fill:
+ {
+ \__driver_draw_literal:x
+ { f \bool_if:NT \__driver_draw_eor_bool * }
+ }
+\cs_new_protected_nopar:Npn \__driver_draw_fillstroke:
+ {
+ \__driver_draw_literal:x
+ { B \bool_if:NT \__driver_draw_eor_bool * }
+ }
+\cs_new_protected_nopar:Npn \__driver_draw_clip:
+ {
+ \__driver_draw_literal:x
+ { W \bool_if:NT \__driver_draw_eor_bool * }
+ }
+\cs_new_protected_nopar:Npn \__driver_draw_discardpath:
+ { \__driver_draw_literal:n { n } }
+\cs_new_protected:Npn \__driver_draw_dash:nn #1#2
+ {
+ \__driver_draw_literal:x
+ {
+ [ ~
+ \clist_map_function:nN {#1} \__driver_draw_dash:n
+ ] ~
+ \dim_to_decimal_in_bp:n {#2} ~ d
+ }
+ }
+\cs_new:Npn \__driver_draw_dash:n #1
+ { \dim_to_decimal_in_bp:n {#1} ~ }
+\cs_new_protected:Npn \__driver_draw_linewidth:n #1
+ {
+ \__driver_draw_literal:x
+ { \dim_to_decimal_in_bp:n {#1} ~ w }
+ }
+\cs_new_protected:Npn \__driver_draw_miterlimit:n #1
+ { \__driver_draw_literal:x { \fp_eval:n {#1} ~ M } }
+\cs_new_protected_nopar:Npn \__driver_draw_cap_butt:
+ { \__driver_draw_literal:n { 0 ~ J } }
+\cs_new_protected_nopar:Npn \__driver_draw_cap_round:
+ { \__driver_draw_literal:n { 1 ~ J } }
+\cs_new_protected_nopar:Npn \__driver_draw_cap_rectangle:
+ { \__driver_draw_literal:n { 2 ~ J } }
+\cs_new_protected_nopar:Npn \__driver_draw_join_miter:
+ { \__driver_draw_literal:n { 0 ~ j } }
+\cs_new_protected_nopar:Npn \__driver_draw_join_round:
+ { \__driver_draw_literal:n { 1 ~ j } }
+\cs_new_protected_nopar:Npn \__driver_draw_join_bevel:
+ { \__driver_draw_literal:n { 2 ~ j } }
+\cs_new_protected:Npn \__driver_draw_color_cmyk_fill:nnnn #1#2#3#4
+ {
+ \__driver_draw_literal:x
+ {
+ \fp_eval:n {#1} ~ \fp_eval:n {#2} ~
+ \fp_eval:n {#3} ~ \fp_eval:n {#4} ~
+ k
+ }
+ }
+\cs_new_protected:Npn \__driver_draw_color_cmyk_stroke:nnnn #1#2#3#4
+ {
+ \__driver_draw_literal:x
+ {
+ \fp_eval:n {#1} ~ \fp_eval:n {#2} ~
+ \fp_eval:n {#3} ~ \fp_eval:n {#4} ~
+ K
+ }
+ }
+\cs_new_protected:Npn \__driver_draw_color_gray_fill:n #1
+ { \__driver_draw_literal:x { \fp_eval:n {#1} ~ g } }
+\cs_new_protected:Npn \__driver_draw_color_gray_stroke:n #1
+ { \__driver_draw_literal:x { \fp_eval:n {#1} ~ G } }
+\cs_new_protected:Npn \__driver_draw_color_rgb_fill:nnn #1#2#3
+ {
+ \__driver_draw_literal:x
+ { \fp_eval:n {#1} ~ \fp_eval:n {#2} ~ \fp_eval:n {#3} ~ rg }
+ }
+\cs_new_protected:Npn \__driver_draw_color_rgb_stroke:nnn #1#2#3
+ {
+ \__driver_draw_literal:x
+ { \fp_eval:n {#1} ~ \fp_eval:n {#2} ~ \fp_eval:n {#3} ~ RG }
+ }
+\cs_new_protected:Npn \__driver_draw_transformcm:nnnnnn #1#2#3#4#5#6
+ {
+ \__driver_draw_literal:x
+ {
+ \fp_eval:n {#1} ~ \fp_eval:n {#2} ~
+ \fp_eval:n {#3} ~ \fp_eval:n {#4} ~
+ \dim_to_decimal_in_bp:n {#5} ~ \dim_to_decimal_in_bp:n {#6} ~
+ cm
+ }
+ }
+\cs_new_protected:Npn \__driver_draw_hbox:Nnnnnnn #1#2#3#4#5#6#7
+ {
+ \hbox_set:Nn \l__driver_tmp_box
+ {
+ \tex_kern:D \__dim_eval:w #6 \__dim_eval_end:
+ \__driver_scope_begin:
+ \__driver_draw_transformcm:nnnnnn {#2} {#3} {#4} {#5}
+ { 0pt } { 0pt }
+ \box_move_up:nn {#7} { \box_use:N #1 }
+ \__driver_scope_end:
+ }
+ \box_set_wd:Nn \l__driver_tmp_box { 0pt }
+ \box_set_ht:Nn \l__driver_tmp_box { 0pt }
+ \box_set_dp:Nn \l__driver_tmp_box { 0pt }
+ \box_use:N \l__driver_tmp_box
+ }
+\box_new:N \l__driver_tmp_box
%%
%%
%% End of file `l3pdfmode.def'.
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3xdvipdfmx.def b/Master/texmf-dist/tex/latex/l3kernel/l3xdvipdfmx.def
index 6778d6255a4..f21566f34b6 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3xdvipdfmx.def
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3xdvipdfmx.def
@@ -46,7 +46,7 @@
%%
%% -----------------------------------------------------------------------
%%
-\GetIdInfo$Id: l3drivers.dtx 6494 2016-05-14 21:10:56Z joseph $
+\GetIdInfo$Id: l3drivers.dtx 6511 2016-05-17 20:20:23Z joseph $
{L3 Experimental drivers}
\ProvidesExplFile
{l3xdvidpfmx.def}{\ExplFileDate}{\ExplFileVersion}
@@ -67,12 +67,12 @@
{ \tl_set:Nn \l__driver_current_color_tl { \current@color } }
{ }
}
-\cs_new_protected_nopar:Npx \__driver_color_ensure_current:
+\cs_new_protected_nopar:Npn \__driver_color_ensure_current:
{
\tex_special:D { pdf:bcolor~\l__driver_current_color_tl }
- \group_insert_after:N \exp_not:N \__driver_color_reset:
+ \group_insert_after:N \__driver_color_reset:
}
-\cs_new_protected_nopar:Npx \__driver_color_reset:
+\cs_new_protected_nopar:Npn \__driver_color_reset:
{ \tex_special:D { pdf:ecolor } }
\AtBeginDocument
{
@@ -81,9 +81,8 @@
\cs_set_protected_nopar:Npn \__driver_color_ensure_current:
{
\tex_special:D { color~push~\l__driver_current_color_tl }
- \group_insert_after:N \exp_not:N \__driver_color_reset:
+ \group_insert_after:N \__driver_color_reset:
}
-
\cs_set_protected_nopar:Npn \__driver_color_reset:
{ \tex_special:D { color~pop } }
}
@@ -142,6 +141,150 @@
\hbox_overlap_right:n { \box_use:N #1 }
\__driver_scope_end:
}
+\cs_new_eq:NN \__driver_draw_literal:n \__driver_literal:n
+\cs_generate_variant:Nn \__driver_draw_literal:n { x }
+\cs_new_protected_nopar:Npn \__driver_draw_begin:
+ { \__driver_draw_scope_begin: }
+\cs_new_protected_nopar:Npn \__driver_draw_end:
+ { \__driver_draw_scope_end: }
+\cs_new_protected_nopar:Npn \__driver_draw_scope_begin:
+ { \__driver_draw_literal:n { q } }
+\cs_new_protected_nopar:Npn \__driver_draw_scope_end:
+ { \__driver_draw_literal:n { Q } }
+\cs_new_protected:Npn \__driver_draw_moveto:nn #1#2
+ {
+ \__driver_draw_literal:x
+ { \dim_to_decimal_in_bp:n {#1} ~ \dim_to_decimal_in_bp:n {#2} ~ m }
+ }
+\cs_new_protected:Npn \__driver_draw_lineto:nn #1#2
+ {
+ \__driver_draw_literal:x
+ { \dim_to_decimal_in_bp:n {#1} ~ \dim_to_decimal_in_bp:n {#2} ~ l }
+ }
+\cs_new_protected:Npn \__driver_draw_curveto:nnnnnn #1#2#3#4#5#6
+ {
+ \__driver_draw_literal:x
+ {
+ \dim_to_decimal_in_bp:n {#1} ~ \dim_to_decimal_in_bp:n {#2} ~
+ \dim_to_decimal_in_bp:n {#3} ~ \dim_to_decimal_in_bp:n {#4} ~
+ \dim_to_decimal_in_bp:n {#5} ~ \dim_to_decimal_in_bp:n {#6} ~
+ c
+ }
+ }
+\bool_new:N \__driver_draw_eor_bool
+\cs_new_protected_nopar:Npn \__driver_draw_closepath:
+ { \__driver_draw_literal:n { h } }
+\cs_new_protected_nopar:Npn \__driver_draw_stroke:
+ { \__driver_draw_literal:n { S } }
+\cs_new_protected_nopar:Npn \__driver_draw_closestroke:
+ { \__driver_draw_literal:n { s } }
+\cs_new_protected_nopar:Npn \__driver_draw_fill:
+ {
+ \__driver_draw_literal:x
+ { f \bool_if:NT \__driver_draw_eor_bool * }
+ }
+\cs_new_protected_nopar:Npn \__driver_draw_fillstroke:
+ {
+ \__driver_draw_literal:x
+ { B \bool_if:NT \__driver_draw_eor_bool * }
+ }
+\cs_new_protected_nopar:Npn \__driver_draw_clip:
+ {
+ \__driver_draw_literal:x
+ { W \bool_if:NT \__driver_draw_eor_bool * }
+ }
+\cs_new_protected_nopar:Npn \__driver_draw_discardpath:
+ { \__driver_draw_literal:n { n } }
+\cs_new_protected:Npn \__driver_draw_dash:nn #1#2
+ {
+ \__driver_draw_literal:x
+ {
+ [ ~
+ \clist_map_function:nN {#1} \__driver_draw_dash:n
+ ] ~
+ \dim_to_decimal_in_bp:n {#2} ~ d
+ }
+ }
+\cs_new:Npn \__driver_draw_dash:n #1
+ { \dim_to_decimal_in_bp:n {#1} ~ }
+\cs_new_protected:Npn \__driver_draw_linewidth:n #1
+ {
+ \__driver_draw_literal:x
+ { \dim_to_decimal_in_bp:n {#1} ~ w }
+ }
+\cs_new_protected:Npn \__driver_draw_miterlimit:n #1
+ { \__driver_draw_literal:x { \fp_eval:n {#1} ~ M } }
+\cs_new_protected_nopar:Npn \__driver_draw_cap_butt:
+ { \__driver_draw_literal:n { 0 ~ J } }
+\cs_new_protected_nopar:Npn \__driver_draw_cap_round:
+ { \__driver_draw_literal:n { 1 ~ J } }
+\cs_new_protected_nopar:Npn \__driver_draw_cap_rectangle:
+ { \__driver_draw_literal:n { 2 ~ J } }
+\cs_new_protected_nopar:Npn \__driver_draw_join_miter:
+ { \__driver_draw_literal:n { 0 ~ j } }
+\cs_new_protected_nopar:Npn \__driver_draw_join_round:
+ { \__driver_draw_literal:n { 1 ~ j } }
+\cs_new_protected_nopar:Npn \__driver_draw_join_bevel:
+ { \__driver_draw_literal:n { 2 ~ j } }
+\cs_new_protected:Npn \__driver_draw_color_cmyk_fill:nnnn #1#2#3#4
+ {
+ \__driver_draw_literal:x
+ {
+ \fp_eval:n {#1} ~ \fp_eval:n {#2} ~
+ \fp_eval:n {#3} ~ \fp_eval:n {#4} ~
+ k
+ }
+ }
+\cs_new_protected:Npn \__driver_draw_color_cmyk_stroke:nnnn #1#2#3#4
+ {
+ \__driver_draw_literal:x
+ {
+ \fp_eval:n {#1} ~ \fp_eval:n {#2} ~
+ \fp_eval:n {#3} ~ \fp_eval:n {#4} ~
+ K
+ }
+ }
+\cs_new_protected:Npn \__driver_draw_color_gray_fill:n #1
+ { \__driver_draw_literal:x { \fp_eval:n {#1} ~ g } }
+\cs_new_protected:Npn \__driver_draw_color_gray_stroke:n #1
+ { \__driver_draw_literal:x { \fp_eval:n {#1} ~ G } }
+\cs_new_protected:Npn \__driver_draw_color_rgb_fill:nnn #1#2#3
+ {
+ \__driver_draw_literal:x
+ { \fp_eval:n {#1} ~ \fp_eval:n {#2} ~ \fp_eval:n {#3} ~ rg }
+ }
+\cs_new_protected:Npn \__driver_draw_color_rgb_stroke:nnn #1#2#3
+ {
+ \__driver_draw_literal:x
+ { \fp_eval:n {#1} ~ \fp_eval:n {#2} ~ \fp_eval:n {#3} ~ RG }
+ }
+\cs_new_protected:Npn \__driver_draw_transformcm:nnnnnn #1#2#3#4#5#6
+ {
+ \__driver_draw_literal:x
+ {
+ \fp_eval:n {#1} ~ \fp_eval:n {#2} ~
+ \fp_eval:n {#3} ~ \fp_eval:n {#4} ~
+ \dim_to_decimal_in_bp:n {#5} ~ \dim_to_decimal_in_bp:n {#6} ~
+ cm
+ }
+ }
+\cs_new_protected:Npn \__driver_draw_hbox:Nnnnnnn #1#2#3#4#5#6#7
+ {
+ \hbox_set:Nn \l__driver_tmp_box
+ {
+ \tex_kern:D \__dim_eval:w #6 \__dim_eval_end:
+ \__driver_scope_begin:
+ \__driver_draw_transformcm:nnnnnn {#2} {#3} {#4} {#5}
+ { 0pt } { 0pt }
+ \box_move_up:nn {#7} { \box_use:N #1 }
+ \__driver_scope_end:
+ }
+ \box_set_wd:Nn \l__driver_tmp_box { 0pt }
+ \box_set_ht:Nn \l__driver_tmp_box { 0pt }
+ \box_set_dp:Nn \l__driver_tmp_box { 0pt }
+ \box_use:N \l__driver_tmp_box
+ }
+\box_new:N \l__driver_tmp_box
%%
%%
%% End of file `l3xdvipdfmx.def'.
diff --git a/Master/texmf-dist/tex/latex/l3packages/l3keys2e/l3keys2e.sty b/Master/texmf-dist/tex/latex/l3packages/l3keys2e/l3keys2e.sty
index 8826b78dd32..782004ad183 100644
--- a/Master/texmf-dist/tex/latex/l3packages/l3keys2e/l3keys2e.sty
+++ b/Master/texmf-dist/tex/latex/l3packages/l3keys2e/l3keys2e.sty
@@ -46,8 +46,8 @@
%%
%% -----------------------------------------------------------------------
%%
-\RequirePackage{expl3}[2016/05/14]
-\@ifpackagelater{expl3}{2016/05/14}
+\RequirePackage{expl3}[2016/05/18]
+\@ifpackagelater{expl3}{2016/05/18}
{}
{%
\PackageError{l3keys2e}{Support package l3kernel too old}
@@ -61,8 +61,8 @@
}
\def\ExplFileName{l3keys2e}
\def\ExplFileDescription{LaTeX2e option processing using LaTeX3 keys}
-\def\ExplFileDate{2016/05/14}
-\def\ExplFileVersion{6495}
+\def\ExplFileDate{2016/05/18}
+\def\ExplFileVersion{6512}
\ProvidesExplPackage
{\ExplFileName}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription}
\cs_generate_variant:Nn \clist_put_right:Nn { Nv }
diff --git a/Master/texmf-dist/tex/latex/l3packages/xfrac/xfrac.sty b/Master/texmf-dist/tex/latex/l3packages/xfrac/xfrac.sty
index 1a02643a795..9f41789cb3c 100644
--- a/Master/texmf-dist/tex/latex/l3packages/xfrac/xfrac.sty
+++ b/Master/texmf-dist/tex/latex/l3packages/xfrac/xfrac.sty
@@ -47,8 +47,8 @@
%%
%% -----------------------------------------------------------------------
%%
-\RequirePackage{expl3}[2016/05/14]
-\@ifpackagelater{expl3}{2016/05/14}
+\RequirePackage{expl3}[2016/05/18]
+\@ifpackagelater{expl3}{2016/05/18}
{}
{%
\PackageError{xfrac}{Support package l3kernel too old}
@@ -63,8 +63,8 @@
\RequirePackage{amstext,graphicx,l3keys2e,textcomp,xparse,xtemplate}
\def\ExplFileName{xfrac}
\def\ExplFileDescription{L3 Experimental split-level fractions}
-\def\ExplFileDate{2016/05/14}
-\def\ExplFileVersion{6495}
+\def\ExplFileDate{2016/05/18}
+\def\ExplFileVersion{6512}
\ProvidesExplPackage
{\ExplFileName}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription}
\keys_define:nn { xfrac }
diff --git a/Master/texmf-dist/tex/latex/l3packages/xparse/xparse.sty b/Master/texmf-dist/tex/latex/l3packages/xparse/xparse.sty
index 8eed3998b70..8a4664f615a 100644
--- a/Master/texmf-dist/tex/latex/l3packages/xparse/xparse.sty
+++ b/Master/texmf-dist/tex/latex/l3packages/xparse/xparse.sty
@@ -50,8 +50,8 @@
%%
%% -----------------------------------------------------------------------
%%
-\RequirePackage{expl3}[2016/05/14]
-\@ifpackagelater{expl3}{2016/05/14}
+\RequirePackage{expl3}[2016/05/18]
+\@ifpackagelater{expl3}{2016/05/18}
{}
{%
\PackageError{xparse}{Support package l3kernel too old}
@@ -65,8 +65,8 @@
}
\def\ExplFileName{xparse}
\def\ExplFileDescription{L3 Experimental document command parser}
-\def\ExplFileDate{2016/05/14}
-\def\ExplFileVersion{6495}
+\def\ExplFileDate{2016/05/18}
+\def\ExplFileVersion{6512}
\ProvidesExplPackage
{\ExplFileName}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription}
\tl_const:Nx \c__xparse_no_value_tl
diff --git a/Master/texmf-dist/tex/latex/l3packages/xtemplate/xtemplate.sty b/Master/texmf-dist/tex/latex/l3packages/xtemplate/xtemplate.sty
index 79b1fc19cd1..04efdce2561 100644
--- a/Master/texmf-dist/tex/latex/l3packages/xtemplate/xtemplate.sty
+++ b/Master/texmf-dist/tex/latex/l3packages/xtemplate/xtemplate.sty
@@ -50,8 +50,8 @@
%%
%% -----------------------------------------------------------------------
%%
-\RequirePackage{expl3}[2016/05/14]
-\@ifpackagelater{expl3}{2016/05/14}
+\RequirePackage{expl3}[2016/05/18]
+\@ifpackagelater{expl3}{2016/05/18}
{}
{%
\PackageError{xtemplate}{Support package l3kernel too old}
@@ -65,8 +65,8 @@
}
\def\ExplFileName{xtemplate}
\def\ExplFileDescription{L3 Experimental prototype document functions}
-\def\ExplFileDate{2016/05/14}
-\def\ExplFileVersion{6495}
+\def\ExplFileDate{2016/05/18}
+\def\ExplFileVersion{6512}
\ProvidesExplPackage
{\ExplFileName}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription}
\tl_const:Nn \c__xtemplate_code_root_tl { template~code~>~ }