diff options
author | Karl Berry <karl@freefriends.org> | 2014-01-07 23:06:03 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2014-01-07 23:06:03 +0000 |
commit | ea751c100642b9b81c97ad32b1b492c917d5a93c (patch) | |
tree | 8b3554859f8f067f8ca942d08dad6a0792a3a803 /Master | |
parent | 79b68a754e61b4825c185082d15b0e334440fbde (diff) |
l3kernel (7jan14)
git-svn-id: svn://tug.org/texlive/trunk@32599 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master')
26 files changed, 302 insertions, 245 deletions
diff --git a/Master/texmf-dist/doc/latex/l3kernel/expl3.pdf b/Master/texmf-dist/doc/latex/l3kernel/expl3.pdf Binary files differindex 88ccf37c9bf..16ca72d954b 100644 --- a/Master/texmf-dist/doc/latex/l3kernel/expl3.pdf +++ b/Master/texmf-dist/doc/latex/l3kernel/expl3.pdf diff --git a/Master/texmf-dist/doc/latex/l3kernel/interface3.pdf b/Master/texmf-dist/doc/latex/l3kernel/interface3.pdf Binary files differindex 5bf46acc36f..f4caa6a0fdb 100644 --- a/Master/texmf-dist/doc/latex/l3kernel/interface3.pdf +++ b/Master/texmf-dist/doc/latex/l3kernel/interface3.pdf diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3docstrip.pdf b/Master/texmf-dist/doc/latex/l3kernel/l3docstrip.pdf Binary files differindex bce0e14456b..899311766b2 100644 --- a/Master/texmf-dist/doc/latex/l3kernel/l3docstrip.pdf +++ b/Master/texmf-dist/doc/latex/l3kernel/l3docstrip.pdf diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3styleguide.pdf b/Master/texmf-dist/doc/latex/l3kernel/l3styleguide.pdf Binary files differindex 974ee88e369..b73453b63ba 100644 --- a/Master/texmf-dist/doc/latex/l3kernel/l3styleguide.pdf +++ b/Master/texmf-dist/doc/latex/l3kernel/l3styleguide.pdf diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.pdf b/Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.pdf Binary files differindex e57aa484d3a..4784aacd24e 100644 --- a/Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.pdf +++ b/Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.pdf diff --git a/Master/texmf-dist/source/latex/l3kernel/expl3.dtx b/Master/texmf-dist/source/latex/l3kernel/expl3.dtx index 56709098421..5713c41d607 100644 --- a/Master/texmf-dist/source/latex/l3kernel/expl3.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/expl3.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -%% File: expl3.dtx Copyright (C) 1990-2013 The LaTeX3 Project +%% File: expl3.dtx Copyright (C) 1990-2014 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 @@ -49,8 +49,8 @@ %<*driver|package> \def\ExplFileName{expl3} \def\ExplFileDescription{L3 Experimental code bundle wrapper} -\def\ExplFileDate{2013/12/31} -\def\ExplFileVersion{4634} +\def\ExplFileDate{2014/01/07} +\def\ExplFileVersion{4646} %</driver|package> %<*driver> \documentclass[full]{l3doc} diff --git a/Master/texmf-dist/source/latex/l3kernel/l3basics.dtx b/Master/texmf-dist/source/latex/l3kernel/l3basics.dtx index a43c8fec53f..9acc07c63da 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3basics.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3basics.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -%% File: l3basics.dtx Copyright (C) 1990-2013 The LaTeX3 project +%% File: l3basics.dtx Copyright (C) 1990-2014 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|package> \RequirePackage{l3bootstrap} -\GetIdInfo$Id: l3basics.dtx 4581 2013-07-28 08:38:50Z joseph $ +\GetIdInfo$Id: l3basics.dtx 4642 2014-01-04 17:28:32Z joseph $ {L3 Basic definitions} %</driver|package> %<*driver> @@ -193,7 +193,7 @@ % \item[|N| and |n|] No manipulation. % \item[|T| and |F|] Functionally equivalent to |n| (you are actually % encouraged to use the family of |\prg_new_conditional:| functions -% described in Section~\ref{sec:l3basics:new-conditional-functions}). +% described in Section~\ref{sec:l3prg:new-conditional-functions}). % \item[|p| and |w|] These are special cases. % \end{description} % @@ -201,7 +201,7 @@ % other argument specifiers in your function names, but they do not handle % expansion for you. You should define the base function and then use % \cs{cs_generate_variant:Nn} to generate custom variants as described in -% Section~\ref{sec:l3basics:defining-variants}. +% Section~\ref{sec:l3expan:defining-variants}. % % \subsection{Defining new functions using parameter text} % \label{sec:l3basics:defining-new-function-1} @@ -982,7 +982,6 @@ % \end{function} % % \section{Predicates and conditionals} -% \label{sec:l3basics:predicates} % % \LaTeX3 has three concepts for conditional flow processing: % \begin{description} diff --git a/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx b/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx index b0bb71b97f3..9c90e27a197 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -%% File: l3bootstrap.dtx Copyright (C) 2011-2013 The LaTeX3 project +%% File: l3bootstrap.dtx Copyright (C) 2011-2014 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 @@ -119,7 +119,7 @@ % \end{macrocode} % \end{macro} % \end{macro} -\GetIdInfo$Id: l3bootstrap.dtx 4629 2013-12-29 20:59:49Z joseph $ +\GetIdInfo$Id: l3bootstrap.dtx 4640 2014-01-04 16:03:52Z joseph $ {L3 Bootstrap code} %</driver|package> %<*driver> @@ -330,16 +330,16 @@ % Oberdiek's \pkg{luatex} package instead. % \begin{macrocode} %<*package> -\def\@tempa% - {% - \def\@tempa{}% - \RequirePackage{luatex}% - \RequirePackage{pdftexcmds}% - \let\pdfstrcmp\pdf@strcmp - } \begingroup\expandafter\expandafter\expandafter\endgroup \expandafter\ifx\csname directlua\endcsname\relax \else + \begingroup + \def\@tempa + {% + \endgroup + \RequirePackage{luatex}% + \RequirePackage{pdftexcmds}% + }% \expandafter\@tempa \fi %</package> @@ -348,7 +348,8 @@ % \subsection{The \tn{pdfstrcmp} primitive in \XeTeX{}} % % Only \pdfTeX{} has a primitive called \tn{pdfstrcmp}. The \XeTeX{} -% version is just \tn{strcmp}, so there is some shuffling to do. +% version is just \tn{strcmp}, so there is some shuffling to do. As +% this is still a real primitive, using the \pdfTeX{} name is \enquote{safe}. % \begin{macrocode} \begingroup\expandafter\expandafter\expandafter\endgroup \expandafter\ifx\csname pdfstrcmp\endcsname\relax @@ -359,45 +360,60 @@ % \subsection{Engine requirements} % % The code currently requires functionality equivalent to \tn{pdfstrcmp} -% in addition to \eTeX{}. The former is therefore used as a test for -% a suitable engine. +% in addition to \eTeX{}. In package mode, there is the slight caveat that +% with \LuaTeX{} emulating this primitive is be done using a different +% name as the expansion behaviour is different. % \begin{macrocode} -\begingroup\expandafter\expandafter\expandafter\endgroup -\expandafter\ifx\csname pdfstrcmp\endcsname\relax -%<*package> - \PackageError{expl3}{Required primitives not found} +\begingroup + \def\ShortText{Required primitives not found}% + \def\LongText% {% - LaTeX3 requires the e-TeX primitives and \string\pdfstrcmp.\MessageBreak - \MessageBreak - These are available in engine versions:\MessageBreak - - pdfTeX 1.30\MessageBreak - - XeTeX 0.9994\MessageBreak - - LuaTeX 0.40\MessageBreak - or later.\MessageBreak - \MessageBreak - Loading of expl3 will abort!% - } - \expandafter\endinput -%</package> + LaTeX3 requires the e-TeX primitives and \string\pdfstrcmp.\LineBreak + \LineBreak + These are available in engine versions:\LineBreak + - pdfTeX 1.30\LineBreak + - XeTeX 0.9994\LineBreak + - LuaTeX 0.40\LineBreak + or later.\LineBreak + \LineBreak + }% + \expandafter\ifx\csname pdfstrcmp\endcsname\relax %<*initex> - \newlinechar`\^^J\relax - \errhelp{% - LaTeX3 requires the e-TeX primitives and \pdfstrcmp.^^J% - ^^J% - These are available in engine versions:^^J% - - pdfTeX 1.30^^J% - - XeTeX 0.9994^^J% - - LuaTeX 0.40^^J% - or later.^^J% - ^^J% - For pdfTeX and XeTeX the '-etex' command-line switch is also - needed.^^J% - ^^J% - Format building will abort!% - } - \errmessage{Required primitives not found}% - \expandafter\end -%</initex> + \def\LineBreak{^^J}% + \edef\Error% + {% + \endgroup + \newlinechar`\noexpand\^^J\relax + \errhelp + {% + \LongText + For pdfTeX and XeTeX the '-etex' command-line switch is also + needed.\LineBreak + \LineBreak + Format building will abort!\LineBreak + }% + \errmessage{\ShortText}% + \noexpand\end + }% + \expandafter\Error +%</initex> +%<*package> + \expandafter\ifx\csname pdf@strcmp\endcsname\relax + \def\LineBreak{\noexpand\MessageBreak}% + \edef\Error% + {% + \endgroup + \noexpand\PackageError{expl3}{\ShortText} + {\LongText Loading of expl3 will abort!}% + \noexpand\endinput + }% + \expandafter\expandafter\expandafter\Error + \else + \endgroup + \fi +%</package> +\else + \endgroup \fi % \end{macrocode} % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx b/Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx index 27baad8b08d..65f3e70e5cc 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx @@ -36,7 +36,7 @@ % %<*driver|package> \RequirePackage{l3bootstrap} -\GetIdInfo$Id: l3candidates.dtx 4633 2013-12-31 17:28:46Z joseph $ +\GetIdInfo$Id: l3candidates.dtx 4643 2014-01-06 13:28:06Z joseph $ {L3 Experimental additions to l3kernel} %</driver|package> %<*driver> @@ -2330,31 +2330,33 @@ % \seq_mapthread_function:cNN, \seq_mapthread_function:ccN % } % \begin{macro}[aux] -% {\@@_mapthread_function:NNw, \@@_mapthread_function:Nnnwnn} +% { +% \@@_mapthread_function:wNN, \@@_mapthread_function:wNw, +% \@@_mapthread_function:Nnnwnn +% } % The idea here is to first expand both sequences, adding the % usual |{ ? \__prg_break: } { }| to the end of each one. This is % most conveniently done in two steps using an auxiliary function. % The mapping then throws away the first tokens of |#2| and |#5|, -% which for items in the sequences will both be +% which for items in the sequences will both be \cs{s_@@} % \cs{@@_item:n}. The function to be mapped will then be applied to % the two entries. When the code hits the end of one of the -% sequences, \cs{__prg_break:} stops the entire loop and tidy up. -% This avoids needing to count items in the sequences, or +% sequences, the break material will stop the entire loop and tidy up. +% This avoids needing to find the count of the two sequences, or % worrying about which is longer. % \begin{macrocode} \cs_new:Npn \seq_mapthread_function:NNN #1#2#3 + { \exp_after:wN \@@_mapthread_function:wNN #2 \q_stop #1 #3 } +\cs_new:Npn \@@_mapthread_function:wNN \s_@@ #1 \q_stop #2#3 { - \exp_after:wN \@@_mapthread_function:NNw - \exp_after:wN #3 - \exp_after:wN #1 - #2 { ? \__prg_break: } { } + \exp_after:wN \@@_mapthread_function:wNw #2 \q_stop #3 + #1 { ? \__prg_break: } { } \__prg_break_point: } -\cs_new:Npn \@@_mapthread_function:NNw #1#2 +\cs_new:Npn \@@_mapthread_function:wNw \s_@@ #1 \q_stop #2 { - \exp_after:wN \@@_mapthread_function:Nnnwnn - \exp_after:wN #1 - #2 { ? \__prg_break: } { } + \@@_mapthread_function:Nnnwnn #2 + #1 { ? \__prg_break: } { } \q_stop } \cs_new:Npn \@@_mapthread_function:Nnnwnn #1#2#3#4 \q_stop #5#6 diff --git a/Master/texmf-dist/source/latex/l3kernel/l3drivers.dtx b/Master/texmf-dist/source/latex/l3kernel/l3drivers.dtx index 5eb91ddc2cb..778038661c1 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-2013 The LaTeX3 Project +%% File: l3drivers.dtx Copyright(C) 2011-2014 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 @@ -36,7 +36,7 @@ % %<*driver|package> \RequirePackage{l3bootstrap} -\GetIdInfo$Id: l3drivers.dtx 4632 2013-12-31 17:09:37Z joseph $ +\GetIdInfo$Id: l3drivers.dtx 4641 2014-01-04 17:05:41Z joseph $ {L3 Experimental drivers} %</driver|package> %<*driver> @@ -219,7 +219,10 @@ % \begin{macro}{\@@_state_save:, \@@_state_restore:} % All of the drivers have a stack for saving the graphic state. These % have slightly different interfaces. For both \texttt{dvips} and -% \texttt{(x)dvipdfmx} this is done using an appropriate special. +% \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). % \begin{macrocode} %<*!pdfmode> \cs_new_protected_nopar:Npn \@@_state_save: @@ -227,14 +230,14 @@ { \tex_special:D { ps:gsave } } %</dvips> %<*dvipdfmx|xdvipdfmx> - { \tex_special:D { pdf:bcontent } } + { \tex_special:D { pdf:literal~q } } %</dvipdfmx|xdvipdfmx> \cs_new_protected_nopar:Npn \@@_state_restore: %<*dvips> { \tex_special:D { ps:grestore } } %</dvips> %<*dvipdfmx|xdvipdfmx> - { \tex_special:D { pdf:econtent } } + { \tex_special:D { pdf:literal~Q } } %</dvipdfmx|xdvipdfmx> %</!pdfmode> % \end{macrocode} @@ -263,14 +266,31 @@ % the underlying binary. The exact command is driver-dependent but the % concept is general enough to use a single function. However, it is % important to remember this is a convenient shortcut: the arguments will -% be driver-specific. +% be driver-specific. Note that these functions set the transformation matrix +% to the current position: contrast with \cs{\@@_literal_direct:n}. % \begin{macrocode} \cs_new_protected:Npn \@@_literal:n #1 %<*dvipdfmx|xdvipdfmx> { \tex_special:D { pdf:literal~ #1 } } %</dvipdfmx|xdvipdfmx> +% \end{macrocode} +% In the case of \texttt{dvips} there is no build-in saving of the current +% position, and so some additional PostScript is required.to set up the +% transformation matrix and also to restore it afterwards. Notice the use +% 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} %<*dvips> - { \tex_special:D { ps: #1 } } + { + \tex_special:D + { + ps: + currentpoint~ + currentpoint~translate~ + #1 ~ + neg~exch~neg~exch~translate + } + } %</dvips> %<*pdfmode> { \pdftex_pdfliteral:D {#1} } @@ -278,6 +298,44 @@ % \end{macrocode} % \end{macro} % +% \begin{macro}[int]{\@@_literal_direct:n} +% Even \enquote{lower level} than \cs{\@@_literal:n}, these commands do +% not set the transformation matrix but simply dump the driver code directly +% into the output. In the \texttt{(x)dvipdfmx} case this two-part keyword +% is documented (\emph{cf.}~|literal| alone). +% \begin{macrocode} +\cs_new_protected:Npn \@@_literal_direct:n #1 +%<*dvipdfmx|xdvipdfmx> + { \tex_special:D { pdf:literal~direct~ #1 } } +%</dvipdfmx|xdvipdfmx> +%<*dvips> + { \tex_special:D { ps:: #1 } } +%</dvips> +%<*pdfmode> + { \pdftex_pdfliteral:D direct {#1} } +%</pdfmode> +% \end{macrocode} +% \end{macro} +% +% \begin{macro}[int, EXP]{\@@_absolute_lengths:n} +% The \texttt{dvips} driver scales all absolute dimensions based +% on the output resolution selected and any \TeX{} magnification. Thus +% for any operation involving absolute lengths there is a correction to +% make. This is based on |normalscale| from \texttt{special.pro}. +% \begin{macrocode} +%<*dvips> +\cs_new:Npn \@@_absolute_lengths:n #1 + { + /savedmatrix~matrix~currentmatrix~def~ + Resolution~72~div~VResolution~72~div~scale~ + DVImag~dup~scale~ + #1 ~ + savedmatrix~setmatrix + } +%</dvips> +% \end{macrocode} +% \end{macro} +% % \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) @@ -299,7 +357,7 @@ %</pdfmode> %<*dvipdfmx|xdvipdfmx> \cs_new_protected:Npn \@@_matrix:n #1 - { \@@_literal:n { direct~ #1 \c_space_tl 0~0~cm } } + { \@@_literal:n { #1 \c_space_tl 0~0~cm } } %</dvipdfmx|xdvipdfmx> % \end{macrocode} % \end{macro} @@ -318,43 +376,23 @@ % \begin{macrocode} \cs_new_protected:Npn \@@_box_use_clip:N #1 { -%<*dvips> \@@_state_save: +%<*dvips> \@@_literal:n { - /savedmatrix~matrix~currentmatrix~def~ - currentpoint~translate~ - Resolution~72~div~VResolution~72~div~scale - } - \@@_literal:n - { - 0~ - \__dim_strip_bp:n { \box_dp:N #1 } ~ - \__dim_strip_bp:n { \box_wd:N #1 } ~ - \__dim_strip_bp:n { - \box_ht:N #1 - \box_dp:N #1 } ~ - rectclip + \@@_absolute_lengths:n + { + 0~ + \__dim_strip_bp:n { \box_dp:N #1 } ~ + \__dim_strip_bp:n { \box_wd:N #1 } ~ + \__dim_strip_bp:n { - \box_ht:N #1 - \box_dp:N #1 } ~ + rectclip + } } - \@@_literal:n { savedmatrix~setmatrix } %</dvips> -% \end{macrocode} -% The PDF box is easier to define as it is automatically in big points and -% as the driver deals with the relationship between the \TeX{} and graphics -% locations automatically. The only slight issue is the need to handle -% \texttt{(x)dvipdfmx}'s requirements for mixing PostScript and PDF code: -% using the standard save/restore stack here fails. -% \begin{macrocode} -%<*dvipdfmx|xdvipdfmx> - \@@_literal:n { q } -%</dvipdfmx|xdvipdfmx> -%<*pdfmode> - \@@_state_save: -%</pdfmode> %<*dvipdfmx|pdfmode|xdvipdfmx> \@@_literal:n { -%<*dvipdfmx|xdvipdfmx> - direct~ -%</dvipdfmx|xdvipdfmx> 0~ \__dim_strip_bp:n { - \box_dp:N #1 } ~ \__dim_strip_bp:n { \box_wd:N #1 } ~ @@ -363,36 +401,11 @@ } %</dvipdfmx|pdfmode|xdvipdfmx> % \end{macrocode} -% For \texttt{(x)dvipdfmx} the is a bit more to do yet. Using -% \texttt{pdf:bcontent}/\texttt{pdf:econtent} for scoping seems the easiest -% approach, but only works reliably when all of the specials used are -% \texttt{pdf:\ldots} ones. As (some) PostScript specials can also be used -% with \texttt{(x)dvipdfmx}, that is not safe and can give unexpected output. -% To get everything in the right place, what is required is that the -% insertion point for the clip and the \TeX{} box material are the same. That -% is done by flipping the axes twice with an additional scope level in -% between. The scoping level moves to the \enquote{current point}, which -% due to the axis inversion is the \emph{start} of the clip. The second -% inversion puts things back to normal, the \TeX{} material is inserted and -% then the extra scope is closed (below). -% \begin{macrocode} -%<*dvipdfmx|xdvipdfmx> - \@@_matrix:n { -1~0~0~-1 } - \@@_literal:n { q } - \@@_matrix:n { -1~0~0~-1 } -%</dvipdfmx|xdvipdfmx> -% \end{macrocode} % Insert the material in a box of no width, restore the graphic state % and then insert the necessary width. % \begin{macrocode} \hbox_overlap_right:n { \box_use:N #1 } -%<*dvipdfmx|xdvipdfmx> - \@@_literal:n { Q } - \@@_literal:n { Q } -%</dvipdfmx|xdvipdfmx> -%<*dvips|pdfmode> \@@_state_restore: -%</dvips|pdfmode> \skip_horizontal:n { \box_wd:N #1 } } % \end{macrocode} @@ -403,11 +416,8 @@ % \begin{macro}{\@@_box_rotate_begin:, \@@_box_rotate_end:} % The driver for \texttt{dvips} works with a simple rotation angle. % In PDF mode, an affine matrix is used instead. The transformation for -% \texttt{(x)dvipdfmx} can be done either way: to have some code sharing, -% the choice here is to use an affine approach (at least some code is -% shared in this way). For the \texttt{dvips}, that odd-looking -% |currentpoint| at the beginning is used to put this data onto the -% stack for |neg exch neg exch translate| to pick up. +% \texttt{(x)dvipdfmx} can be done either way: the affine approach is +% chosen here as where possible we pick the PDF-style route. % % In both cases, some rounding code is included to limit the floating % point values to five decimal places. There is no point using any more @@ -446,13 +456,11 @@ \fp_set:Nn \l__box_angle_fp { round ( \l__box_angle_fp , 5 ) } \@@_literal:n { - currentpoint~ - currentpoint~translate~ \fp_compare:nNnTF \l__box_angle_fp = \c_zero_fp { 0 } { \fp_eval:n { - \l__box_angle_fp } } - \c_space_tl rotate~ - neg~exch~neg~exch~translate + \c_space_tl + rotate } %</dvips> } @@ -476,11 +484,9 @@ %<*dvips> \@@_literal:n { - currentpoint~ - currentpoint~translate~ \fp_use:N \l__box_scale_x_fp \c_space_tl - \fp_use:N \l__box_scale_y_fp \c_space_tl scale~ - neg~exch~neg~exch~translate + \fp_use:N \l__box_scale_y_fp \c_space_tl + scale } %</dvips> %<*dvipdfmx|pdfmode|xdvipdfmx> diff --git a/Master/texmf-dist/source/latex/l3kernel/l3expan.dtx b/Master/texmf-dist/source/latex/l3kernel/l3expan.dtx index 7d8e9696470..fff17ffadcd 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3expan.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3expan.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -%% File: l3expan.dtx Copyright (C) 1990-2013 The LaTeX3 project +%% File: l3expan.dtx Copyright (C) 1990-2014 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|package> \RequirePackage{l3bootstrap} -\GetIdInfo$Id: l3expan.dtx 4584 2013-08-17 15:37:05Z joseph $ +\GetIdInfo$Id: l3expan.dtx 4642 2014-01-04 17:28:32Z joseph $ {L3 Argument expansion} %</driver|package> %<*driver> @@ -116,6 +116,7 @@ % \cs{cs_generate_variant:Nn}, described next. % % \section{Methods for defining variants} +% \label{sec:l3expan:defining-variants} % % \begin{function}[updated = 2013-07-09]{\cs_generate_variant:Nn} % \begin{syntax} diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp.dtx index fea05abbb12..586e0f88ed4 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3fp.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3fp.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -%% File: l3fp.dtx Copyright (C) 2011-2013 The LaTeX3 Project +%% File: l3fp.dtx Copyright (C) 2011-2014 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 @@ -36,7 +36,7 @@ % %<*driver|package> \RequirePackage{l3bootstrap} -\GetIdInfo$Id: l3fp.dtx 4633 2013-12-31 17:28:46Z joseph $ +\GetIdInfo$Id: l3fp.dtx 4642 2014-01-04 17:28:32Z joseph $ {L3 Floating points} %</driver|package> %<*driver> @@ -944,7 +944,7 @@ % \nan{}. Those operations do not raise exceptions. % \end{function} % -% \begin{function} +% \begin{function}^^A % [tested = {m3fp-round001, m3fp-round002}, added = 2013-12-14] % {round, trunc, ceil, floor} % \begin{syntax} diff --git a/Master/texmf-dist/source/latex/l3kernel/l3names.dtx b/Master/texmf-dist/source/latex/l3kernel/l3names.dtx index edabde36f6a..55b9165bfeb 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3names.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3names.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -%% File: l3names.dtx Copyright (C) 1990-2013 The LaTeX3 project +%% File: l3names.dtx Copyright (C) 1990-2014 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 @@ % %<*package> \RequirePackage{l3bootstrap}[2012/07/15] -\GetIdInfo$Id: l3names.dtx 4630 2013-12-29 21:04:05Z joseph $ +\GetIdInfo$Id: l3names.dtx 4640 2014-01-04 16:03:52Z joseph $ {L3 Namespace for primitives} %</package> %<*driver> @@ -640,6 +640,14 @@ \tex_let:D \luatex_pagedir:D \luatexpagedir \tex_let:D \luatex_pardir:D \luatexpardir \tex_let:D \luatex_textdir:D \luatextextdir +% \end{macrocode} +% Finally, in package mode with \LuaTeX{} the \cs{pdfstrcmp} primitive will +% be emulated as \cs{pdf@strcmp}. +% \begin{macrocode} +\etex_ifdefined:D \pdftex_strcmp:D +\tex_else:D + \tex_let:D \pdftex_strcmp:D \pdf@strcmp +\tex_fi:D %</package> % \end{macrocode} % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3prg.dtx b/Master/texmf-dist/source/latex/l3kernel/l3prg.dtx index a7d11916a65..599957933fe 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3prg.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3prg.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -%% File: l3prg.dtx Copyright (C) 2005-2013 The LaTeX3 Project +%% File: l3prg.dtx Copyright (C) 2005-2014 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|package> \RequirePackage{l3bootstrap} -\GetIdInfo$Id: l3prg.dtx 4587 2013-08-25 21:30:10Z joseph $ +\GetIdInfo$Id: l3prg.dtx 4642 2014-01-04 17:28:32Z joseph $ {L3 Control structures} %</driver|package> %<*driver> @@ -90,6 +90,7 @@ % after exiting the underlying |\if...\fi:| structure. % % \section{Defining a set of conditional functions} +% \label{sec:l3prg:new-conditional-functions} % % \begin{function}[updated = 2012-02-06] % { diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3.sty b/Master/texmf-dist/tex/latex/l3kernel/expl3.sty index 37b1f86053f..dd27359ed69 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/expl3.sty +++ b/Master/texmf-dist/tex/latex/l3kernel/expl3.sty @@ -13,7 +13,7 @@ %% %% Do not distribute a modified version of this file. %% -%% File: expl3.dtx Copyright (C) 1990-2013 The LaTeX3 Project +%% File: expl3.dtx Copyright (C) 1990-2014 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 @@ -60,8 +60,8 @@ } \def\ExplFileName{expl3} \def\ExplFileDescription{L3 Experimental code bundle wrapper} -\def\ExplFileDate{2013/12/31} -\def\ExplFileVersion{4634} +\def\ExplFileDate{2014/01/07} +\def\ExplFileVersion{4646} \RequirePackage{etex} \relax \reserveinserts{32} diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3basics.sty b/Master/texmf-dist/tex/latex/l3kernel/l3basics.sty index 27ccd762525..7835917a66b 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3basics.sty +++ b/Master/texmf-dist/tex/latex/l3kernel/l3basics.sty @@ -13,7 +13,7 @@ %% %% Do not distribute a modified version of this file. %% -%% File: l3basics.dtx Copyright (C) 1990-2013 The LaTeX3 project +%% File: l3basics.dtx Copyright (C) 1990-2014 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 @@ -46,7 +46,7 @@ %% %% ----------------------------------------------------------------------- \RequirePackage{l3bootstrap} -\GetIdInfo$Id: l3basics.dtx 4581 2013-07-28 08:38:50Z joseph $ +\GetIdInfo$Id: l3basics.dtx 4642 2014-01-04 17:28:32Z joseph $ {L3 Basic definitions} \ProvidesExplPackage {\ExplFileName}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription} diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3bootstrap.sty b/Master/texmf-dist/tex/latex/l3kernel/l3bootstrap.sty index e8217993546..dacc6a0203a 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3bootstrap.sty +++ b/Master/texmf-dist/tex/latex/l3kernel/l3bootstrap.sty @@ -13,7 +13,7 @@ %% %% Do not distribute a modified version of this file. %% -%% File: l3bootstrap.dtx Copyright (C) 2011-2013 The LaTeX3 project +%% File: l3bootstrap.dtx Copyright (C) 2011-2014 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 @@ -102,44 +102,58 @@ {% \def\ExplFileDate{#1/#2/#3}% } -\GetIdInfo$Id: l3bootstrap.dtx 4629 2013-12-29 20:59:49Z joseph $ +\GetIdInfo$Id: l3bootstrap.dtx 4640 2014-01-04 16:03:52Z joseph $ {L3 Bootstrap code} \ProvidesPackage{l3bootstrap} [% \ExplFileDate\space v\ExplFileVersion\space L3 Experimental bootstrap code% ] -\def\@tempa% - {% - \def\@tempa{}% - \RequirePackage{luatex}% - \RequirePackage{pdftexcmds}% - \let\pdfstrcmp\pdf@strcmp - } \begingroup\expandafter\expandafter\expandafter\endgroup \expandafter\ifx\csname directlua\endcsname\relax \else + \begingroup + \def\@tempa + {% + \endgroup + \RequirePackage{luatex}% + \RequirePackage{pdftexcmds}% + }% \expandafter\@tempa \fi \begingroup\expandafter\expandafter\expandafter\endgroup \expandafter\ifx\csname pdfstrcmp\endcsname\relax \let\pdfstrcmp\strcmp \fi -\begingroup\expandafter\expandafter\expandafter\endgroup -\expandafter\ifx\csname pdfstrcmp\endcsname\relax - \PackageError{expl3}{Required primitives not found} +\begingroup + \def\ShortText{Required primitives not found}% + \def\LongText% {% - LaTeX3 requires the e-TeX primitives and \string\pdfstrcmp.\MessageBreak - \MessageBreak - These are available in engine versions:\MessageBreak - - pdfTeX 1.30\MessageBreak - - XeTeX 0.9994\MessageBreak - - LuaTeX 0.40\MessageBreak - or later.\MessageBreak - \MessageBreak - Loading of expl3 will abort!% - } - \expandafter\endinput + LaTeX3 requires the e-TeX primitives and \string\pdfstrcmp.\LineBreak + \LineBreak + These are available in engine versions:\LineBreak + - pdfTeX 1.30\LineBreak + - XeTeX 0.9994\LineBreak + - LuaTeX 0.40\LineBreak + or later.\LineBreak + \LineBreak + }% + \expandafter\ifx\csname pdfstrcmp\endcsname\relax + \expandafter\ifx\csname pdf@strcmp\endcsname\relax + \def\LineBreak{\noexpand\MessageBreak}% + \edef\Error% + {% + \endgroup + \noexpand\PackageError{expl3}{\ShortText} + {\LongText Loading of expl3 will abort!}% + \noexpand\endinput + }% + \expandafter\expandafter\expandafter\Error + \else + \endgroup + \fi +\else + \endgroup \fi \protected\edef\ExplSyntaxOff {% diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3candidates.sty b/Master/texmf-dist/tex/latex/l3kernel/l3candidates.sty index 868dfd992ee..34161b8360d 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3candidates.sty +++ b/Master/texmf-dist/tex/latex/l3kernel/l3candidates.sty @@ -47,7 +47,7 @@ %% ----------------------------------------------------------------------- %% \RequirePackage{l3bootstrap} -\GetIdInfo$Id: l3candidates.dtx 4633 2013-12-31 17:28:46Z joseph $ +\GetIdInfo$Id: l3candidates.dtx 4643 2014-01-06 13:28:06Z joseph $ {L3 Experimental additions to l3kernel} \ProvidesExplPackage {\ExplFileName}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription} @@ -810,18 +810,17 @@ } \cs_generate_variant:Nn \seq_item:Nn { c } \cs_new:Npn \seq_mapthread_function:NNN #1#2#3 + { \exp_after:wN \__seq_mapthread_function:wNN #2 \q_stop #1 #3 } +\cs_new:Npn \__seq_mapthread_function:wNN \s__seq #1 \q_stop #2#3 { - \exp_after:wN \__seq_mapthread_function:NNw - \exp_after:wN #3 - \exp_after:wN #1 - #2 { ? \__prg_break: } { } + \exp_after:wN \__seq_mapthread_function:wNw #2 \q_stop #3 + #1 { ? \__prg_break: } { } \__prg_break_point: } -\cs_new:Npn \__seq_mapthread_function:NNw #1#2 +\cs_new:Npn \__seq_mapthread_function:wNw \s__seq #1 \q_stop #2 { - \exp_after:wN \__seq_mapthread_function:Nnnwnn - \exp_after:wN #1 - #2 { ? \__prg_break: } { } + \__seq_mapthread_function:Nnnwnn #2 + #1 { ? \__prg_break: } { } \q_stop } \cs_new:Npn \__seq_mapthread_function:Nnnwnn #1#2#3#4 \q_stop #5#6 diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3dvipdfmx.def b/Master/texmf-dist/tex/latex/l3kernel/l3dvipdfmx.def index 154d3c8d659..d1d70fb39d9 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3dvipdfmx.def +++ b/Master/texmf-dist/tex/latex/l3kernel/l3dvipdfmx.def @@ -13,7 +13,7 @@ %% %% Do not distribute a modified version of this file. %% -%% File: l3drivers.dtx Copyright(C) 2011-2013 The LaTeX3 Project +%% File: l3drivers.dtx Copyright(C) 2011-2014 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 @@ -47,38 +47,35 @@ %% ----------------------------------------------------------------------- %% \RequirePackage{l3bootstrap} -\GetIdInfo$Id: l3drivers.dtx 4632 2013-12-31 17:09:37Z joseph $ +\GetIdInfo$Id: l3drivers.dtx 4641 2014-01-04 17:05:41Z joseph $ {L3 Experimental drivers} \ProvidesExplFile {l3dvidpfmx.def}{\ExplFileDate}{\ExplFileVersion} {L3 Experimental driver: dvipdfmx} \__expl_package_check: \cs_new_protected_nopar:Npn \__driver_state_save: - { \tex_special:D { pdf:bcontent } } + { \tex_special:D { pdf:literal~q } } \cs_new_protected_nopar:Npn \__driver_state_restore: - { \tex_special:D { pdf:econtent } } + { \tex_special:D { pdf:literal~Q } } \cs_new_protected:Npn \__driver_literal:n #1 { \tex_special:D { pdf:literal~ #1 } } +\cs_new_protected:Npn \__driver_literal_direct:n #1 + { \tex_special:D { pdf:literal~direct~ #1 } } \cs_new_protected:Npn \__driver_matrix:n #1 - { \__driver_literal:n { direct~ #1 \c_space_tl 0~0~cm } } + { \__driver_literal:n { #1 \c_space_tl 0~0~cm } } \cs_new_protected:Npn \__driver_box_use_clip:N #1 { - \__driver_literal:n { q } + \__driver_state_save: \__driver_literal:n { - direct~ 0~ \__dim_strip_bp:n { - \box_dp:N #1 } ~ \__dim_strip_bp:n { \box_wd:N #1 } ~ \__dim_strip_bp:n { \box_ht:N #1 + \box_dp:N #1 } ~ re~W~n } - \__driver_matrix:n { -1~0~0~-1 } - \__driver_literal:n { q } - \__driver_matrix:n { -1~0~0~-1 } \hbox_overlap_right:n { \box_use:N #1 } - \__driver_literal:n { Q } - \__driver_literal:n { Q } + \__driver_state_restore: \skip_horizontal:n { \box_wd:N #1 } } \cs_new_protected_nopar:Npn \__driver_box_rotate_begin: diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3dvips.def b/Master/texmf-dist/tex/latex/l3kernel/l3dvips.def index 5c22f8648e9..5b0d1ff96a1 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3dvips.def +++ b/Master/texmf-dist/tex/latex/l3kernel/l3dvips.def @@ -13,7 +13,7 @@ %% %% Do not distribute a modified version of this file. %% -%% File: l3drivers.dtx Copyright(C) 2011-2013 The LaTeX3 Project +%% File: l3drivers.dtx Copyright(C) 2011-2014 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 @@ -47,7 +47,7 @@ %% ----------------------------------------------------------------------- %% \RequirePackage{l3bootstrap} -\GetIdInfo$Id: l3drivers.dtx 4632 2013-12-31 17:09:37Z joseph $ +\GetIdInfo$Id: l3drivers.dtx 4641 2014-01-04 17:05:41Z joseph $ {L3 Experimental drivers} \ProvidesExplFile {l3dvips.def}{\ExplFileDate}{\ExplFileVersion} @@ -58,25 +58,40 @@ \cs_new_protected_nopar:Npn \__driver_state_restore: { \tex_special:D { ps:grestore } } \cs_new_protected:Npn \__driver_literal:n #1 - { \tex_special:D { ps: #1 } } -\cs_new_protected:Npn \__driver_box_use_clip:N #1 { - \__driver_state_save: - \__driver_literal:n + \tex_special:D { - /savedmatrix~matrix~currentmatrix~def~ - currentpoint~translate~ - Resolution~72~div~VResolution~72~div~scale + ps: + currentpoint~ + currentpoint~translate~ + #1 ~ + neg~exch~neg~exch~translate } + } +\cs_new_protected:Npn \__driver_literal_direct:n #1 + { \tex_special:D { ps:: #1 } } +\cs_new:Npn \__driver_absolute_lengths:n #1 + { + /savedmatrix~matrix~currentmatrix~def~ + Resolution~72~div~VResolution~72~div~scale~ + DVImag~dup~scale~ + #1 ~ + savedmatrix~setmatrix + } +\cs_new_protected:Npn \__driver_box_use_clip:N #1 + { + \__driver_state_save: \__driver_literal:n { - 0~ - \__dim_strip_bp:n { \box_dp:N #1 } ~ - \__dim_strip_bp:n { \box_wd:N #1 } ~ - \__dim_strip_bp:n { - \box_ht:N #1 - \box_dp:N #1 } ~ - rectclip + \__driver_absolute_lengths:n + { + 0~ + \__dim_strip_bp:n { \box_dp:N #1 } ~ + \__dim_strip_bp:n { \box_wd:N #1 } ~ + \__dim_strip_bp:n { - \box_ht:N #1 - \box_dp:N #1 } ~ + rectclip + } } - \__driver_literal:n { savedmatrix~setmatrix } \hbox_overlap_right:n { \box_use:N #1 } \__driver_state_restore: \skip_horizontal:n { \box_wd:N #1 } @@ -87,13 +102,11 @@ \fp_set:Nn \l__box_angle_fp { round ( \l__box_angle_fp , 5 ) } \__driver_literal:n { - currentpoint~ - currentpoint~translate~ \fp_compare:nNnTF \l__box_angle_fp = \c_zero_fp { 0 } { \fp_eval:n { - \l__box_angle_fp } } - \c_space_tl rotate~ - neg~exch~neg~exch~translate + \c_space_tl + rotate } } \cs_new_eq:NN \__driver_box_rotate_end: \__driver_state_restore: @@ -104,11 +117,9 @@ \fp_set:Nn \l__box_scale_y_fp { round ( \l__box_scale_y_fp , 5 ) } \__driver_literal:n { - currentpoint~ - currentpoint~translate~ \fp_use:N \l__box_scale_x_fp \c_space_tl - \fp_use:N \l__box_scale_y_fp \c_space_tl scale~ - neg~exch~neg~exch~translate + \fp_use:N \l__box_scale_y_fp \c_space_tl + scale } } \cs_new_eq:NN \__driver_box_scale_end: \__driver_state_restore: diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3expan.sty b/Master/texmf-dist/tex/latex/l3kernel/l3expan.sty index 58cd3eba906..40c33448806 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3expan.sty +++ b/Master/texmf-dist/tex/latex/l3kernel/l3expan.sty @@ -13,7 +13,7 @@ %% %% Do not distribute a modified version of this file. %% -%% File: l3expan.dtx Copyright (C) 1990-2013 The LaTeX3 project +%% File: l3expan.dtx Copyright (C) 1990-2014 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 @@ -46,7 +46,7 @@ %% %% ----------------------------------------------------------------------- \RequirePackage{l3bootstrap} -\GetIdInfo$Id: l3expan.dtx 4584 2013-08-17 15:37:05Z joseph $ +\GetIdInfo$Id: l3expan.dtx 4642 2014-01-04 17:28:32Z joseph $ {L3 Argument expansion} \ProvidesExplPackage {\ExplFileName}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription} diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3fp.sty b/Master/texmf-dist/tex/latex/l3kernel/l3fp.sty index b304cbda2d0..5ec5c9c034c 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3fp.sty +++ b/Master/texmf-dist/tex/latex/l3kernel/l3fp.sty @@ -25,7 +25,7 @@ %% %% Do not distribute a modified version of this file. %% -%% File: l3fp.dtx Copyright (C) 2011-2013 The LaTeX3 Project +%% File: l3fp.dtx Copyright (C) 2011-2014 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 @@ -59,7 +59,7 @@ %% ----------------------------------------------------------------------- %% \RequirePackage{l3bootstrap} -\GetIdInfo$Id: l3fp.dtx 4633 2013-12-31 17:28:46Z joseph $ +\GetIdInfo$Id: l3fp.dtx 4642 2014-01-04 17:28:32Z joseph $ {L3 Floating points} \ProvidesExplPackage {\ExplFileName}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription} diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3names.sty b/Master/texmf-dist/tex/latex/l3kernel/l3names.sty index ff822e0f362..4746f4e17b4 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3names.sty +++ b/Master/texmf-dist/tex/latex/l3kernel/l3names.sty @@ -13,7 +13,7 @@ %% %% Do not distribute a modified version of this file. %% -%% File: l3names.dtx Copyright (C) 1990-2013 The LaTeX3 project +%% File: l3names.dtx Copyright (C) 1990-2014 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 @@ -46,7 +46,7 @@ %% %% ----------------------------------------------------------------------- \RequirePackage{l3bootstrap}[2012/07/15] -\GetIdInfo$Id: l3names.dtx 4630 2013-12-29 21:04:05Z joseph $ +\GetIdInfo$Id: l3names.dtx 4640 2014-01-04 16:03:52Z joseph $ {L3 Namespace for primitives} \ProvidesExplPackage {\ExplFileName}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription} @@ -497,6 +497,10 @@ \tex_let:D \luatex_pagedir:D \luatexpagedir \tex_let:D \luatex_pardir:D \luatexpardir \tex_let:D \luatex_textdir:D \luatextextdir +\etex_ifdefined:D \pdftex_strcmp:D +\tex_else:D + \tex_let:D \pdftex_strcmp:D \pdf@strcmp +\tex_fi:D %% %% %% End of file `l3names.sty'. diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3pdfmode.def b/Master/texmf-dist/tex/latex/l3kernel/l3pdfmode.def index ef13e1888a2..d6054191278 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3pdfmode.def +++ b/Master/texmf-dist/tex/latex/l3kernel/l3pdfmode.def @@ -13,7 +13,7 @@ %% %% Do not distribute a modified version of this file. %% -%% File: l3drivers.dtx Copyright(C) 2011-2013 The LaTeX3 Project +%% File: l3drivers.dtx Copyright(C) 2011-2014 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 @@ -47,7 +47,7 @@ %% ----------------------------------------------------------------------- %% \RequirePackage{l3bootstrap} -\GetIdInfo$Id: l3drivers.dtx 4632 2013-12-31 17:09:37Z joseph $ +\GetIdInfo$Id: l3drivers.dtx 4641 2014-01-04 17:05:41Z joseph $ {L3 Experimental drivers} \ProvidesExplFile {l3pdfmode.def}{\ExplFileDate}{\ExplFileVersion} @@ -66,6 +66,8 @@ } \cs_new_protected:Npn \__driver_literal:n #1 { \pdftex_pdfliteral:D {#1} } +\cs_new_protected:Npn \__driver_literal_direct:n #1 + { \pdftex_pdfliteral:D direct {#1} } \cs_if_exist:NTF \pdftex_pdfsetmatrix:D { \cs_new_protected:Npn \__driver_matrix:n #1 diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3prg.sty b/Master/texmf-dist/tex/latex/l3kernel/l3prg.sty index a4120116cfe..53b96ee65c3 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3prg.sty +++ b/Master/texmf-dist/tex/latex/l3kernel/l3prg.sty @@ -13,7 +13,7 @@ %% %% Do not distribute a modified version of this file. %% -%% File: l3prg.dtx Copyright (C) 2005-2013 The LaTeX3 Project +%% File: l3prg.dtx Copyright (C) 2005-2014 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 @@ -46,7 +46,7 @@ %% %% ----------------------------------------------------------------------- \RequirePackage{l3bootstrap} -\GetIdInfo$Id: l3prg.dtx 4587 2013-08-25 21:30:10Z joseph $ +\GetIdInfo$Id: l3prg.dtx 4642 2014-01-04 17:28:32Z joseph $ {L3 Control structures} %% \ProvidesExplPackage diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3xdvipdfmx.def b/Master/texmf-dist/tex/latex/l3kernel/l3xdvipdfmx.def index cc5c9beb713..3cb19f3088d 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3xdvipdfmx.def +++ b/Master/texmf-dist/tex/latex/l3kernel/l3xdvipdfmx.def @@ -13,7 +13,7 @@ %% %% Do not distribute a modified version of this file. %% -%% File: l3drivers.dtx Copyright(C) 2011-2013 The LaTeX3 Project +%% File: l3drivers.dtx Copyright(C) 2011-2014 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 @@ -47,38 +47,35 @@ %% ----------------------------------------------------------------------- %% \RequirePackage{l3bootstrap} -\GetIdInfo$Id: l3drivers.dtx 4632 2013-12-31 17:09:37Z joseph $ +\GetIdInfo$Id: l3drivers.dtx 4641 2014-01-04 17:05:41Z joseph $ {L3 Experimental drivers} \ProvidesExplFile {l3xdvidpfmx.def}{\ExplFileDate}{\ExplFileVersion} {L3 Experimental driver: xdvipdfmx} \__expl_package_check: \cs_new_protected_nopar:Npn \__driver_state_save: - { \tex_special:D { pdf:bcontent } } + { \tex_special:D { pdf:literal~q } } \cs_new_protected_nopar:Npn \__driver_state_restore: - { \tex_special:D { pdf:econtent } } + { \tex_special:D { pdf:literal~Q } } \cs_new_protected:Npn \__driver_literal:n #1 { \tex_special:D { pdf:literal~ #1 } } +\cs_new_protected:Npn \__driver_literal_direct:n #1 + { \tex_special:D { pdf:literal~direct~ #1 } } \cs_new_protected:Npn \__driver_matrix:n #1 - { \__driver_literal:n { direct~ #1 \c_space_tl 0~0~cm } } + { \__driver_literal:n { #1 \c_space_tl 0~0~cm } } \cs_new_protected:Npn \__driver_box_use_clip:N #1 { - \__driver_literal:n { q } + \__driver_state_save: \__driver_literal:n { - direct~ 0~ \__dim_strip_bp:n { - \box_dp:N #1 } ~ \__dim_strip_bp:n { \box_wd:N #1 } ~ \__dim_strip_bp:n { \box_ht:N #1 + \box_dp:N #1 } ~ re~W~n } - \__driver_matrix:n { -1~0~0~-1 } - \__driver_literal:n { q } - \__driver_matrix:n { -1~0~0~-1 } \hbox_overlap_right:n { \box_use:N #1 } - \__driver_literal:n { Q } - \__driver_literal:n { Q } + \__driver_state_restore: \skip_horizontal:n { \box_wd:N #1 } } \cs_new_protected_nopar:Npn \__driver_box_rotate_begin: |