diff options
author | Karl Berry <karl@freefriends.org> | 2018-03-07 21:50:56 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2018-03-07 21:50:56 +0000 |
commit | f11f49763fc33ac8427d8c175d98a8d1275e4c5c (patch) | |
tree | 79aacd4b6ab168db69112977f42c2c99204e1621 /Master/texmf-dist/tex | |
parent | fb72b3560bdc8a98d78bf919da56c3316fa7723d (diff) |
l3 (6mar18)
git-svn-id: svn://tug.org/texlive/trunk@46875 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex')
59 files changed, 1154 insertions, 1703 deletions
diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3color/l3color.sty b/Master/texmf-dist/tex/latex/l3experimental/l3color/l3color.sty index 9b5e7cabac5..5d1bf6553e0 100644 --- a/Master/texmf-dist/tex/latex/l3experimental/l3color/l3color.sty +++ b/Master/texmf-dist/tex/latex/l3experimental/l3color/l3color.sty @@ -20,7 +20,7 @@ %% %% File: l3color.dtx Copyright(C) 2017-2018 The LaTeX3 Project \RequirePackage{expl3} -\ProvidesExplPackage{l3color}{2018/02/21}{} +\ProvidesExplPackage{l3color}{2018/03/05}{} {L3 Experimental color support} \tl_new:N \l__color_tmp_tl \prg_new_conditional:Npnn \__color_if_defined:n #1 { T, F, TF } @@ -86,6 +86,8 @@ \tl_new:N \l__color_next_value_tl \cs_new_protected:Npn \color_parse:nN #1#2 { + \driver_color_pickup:N \l__color_current_tl + \tl_set_eq:cN { l__color_named_ . _tl } \l__color_current_tl \group_begin: \seq_map_inline:Nn \l_char_active_seq { @@ -101,6 +103,7 @@ \tl_if_exist:cTF { l__color_named_ #1 _tl } { \tl_set_eq:Nc #2 { l__color_named_ #1 _tl } } { \__color_parse:Nw #2#1 ! \q_stop } + \__color_check_model:N #2 } \cs_new_protected:Npn \__color_parse:Nw #1#2 ! #3 \q_stop { @@ -228,17 +231,11 @@ \cs_new:Npn \__color_parse_spot_aux:w #1 ! #2 ! #3 \q_stop { #1 ~ \fp_eval:n { #2 / 100 } } \tl_new:N \l_color_fixed_model_tl -\cs_new_protected:Npn \__color_select: - { - \__color_finalise:N \l__color_current_tl - \tl_set_eq:cN { l__color_named_ . _tl } \l__color_current_tl - \__color_select:V \l__color_current_tl - } -\cs_new_protected:Npn \__color_finalise:N #1 +\cs_new_protected:Npn \__color_check_model:N #1 { \tl_if_empty:NF \l_color_fixed_model_tl { - \exp_after:wN \__color_finalise:w #1 \q_stop + \exp_after:wN \__color_check_model:w #1 \q_stop \tl_if_eq:NNF \l__color_model_tl \l_color_fixed_model_tl { \__color_convert:VVN \l__color_model_tl \l_color_fixed_model_tl @@ -248,11 +245,16 @@ { \l_color_fixed_model_tl \c_space_tl \l__color_value_tl } } } -\cs_new_protected:Npn \__color_finalise:w #1 ~ #2 \q_stop +\cs_new_protected:Npn \__color_check_model:w #1 ~ #2 \q_stop { \tl_set:Nn \l__color_model_tl {#1} \tl_set:Nn \l__color_value_tl {#2} } +\cs_new_protected:Npn \__color_select: + { + \tl_set_eq:cN { l__color_named_ . _tl } \l__color_current_tl + \__color_select:V \l__color_current_tl + } \cs_new_protected:Npn \color_select:n #1 { \color_parse:nN {#1} \l__color_current_tl @@ -269,6 +271,7 @@ { \tl_set:Nx #3 { #1 ~ \use:c { __color_parse_ #1 :w } #2 , 0 , 0 , 0 , 0 \q_stop } + \__color_check_model:N #3 } { \__kernel_msg_error:nnn { color } { invalid-model } {#1} @@ -315,6 +318,7 @@ \color_set:nnn { green } { rgb } { 0 , 1 , 0 } \color_set:nnn { blue } { rgb } { 0 , 0 , 1 } \tl_new:c { l__color_named_._tl } +\tl_set_eq:cN { l__color_named_._tl } \l__color_current_tl \cs_new_protected:Npn \color_show:n #1 { \msg_show:nnxxxx { LaTeX / color } { show } diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3draw/l3draw.sty b/Master/texmf-dist/tex/latex/l3experimental/l3draw/l3draw.sty index d485673b419..7375cf33197 100644 --- a/Master/texmf-dist/tex/latex/l3experimental/l3draw/l3draw.sty +++ b/Master/texmf-dist/tex/latex/l3experimental/l3draw/l3draw.sty @@ -5,6 +5,7 @@ %% The original source files were: %% %% l3draw.dtx (with options: `package') +%% l3draw-boxes.dtx (with options: `package') %% l3draw-paths.dtx (with options: `package') %% l3draw-points.dtx (with options: `package') %% l3draw-scopes.dtx (with options: `package') @@ -26,9 +27,69 @@ %% %% File: l3draw.dtx Copyright(C) 2018 The LaTeX3 Project \RequirePackage{expl3} -\ProvidesExplPackage{l3draw}{2018/02/21}{} +\ProvidesExplPackage{l3draw}{2018/03/05}{} {L3 Experimental core drawing support} \RequirePackage { l3color } +%% File: l3draw-boxes.dtx Copyright(C) 2018 The LaTeX3 Project +\box_new:N \l__draw_tmp_box +\cs_new_protected:Npn \draw_box_use:N #1 + { + \__draw_box_use:Nnnnn #1 + { 0pt } { -\box_dp:N #1 } { \box_wd:N #1 } { \box_ht:N #1 } + } +\cs_new_protected:Npn \__draw_box_use:Nnnnn #1#2#3#4#5 + { + \bool_if:NT \l_draw_bb_update_bool + { + \__draw_point_process:nn + { \__draw_path_update_limits:nn } + { \draw_point_transform:n { #2 , #3 } } + \__draw_point_process:nn + { \__draw_path_update_limits:nn } + { \draw_point_transform:n { #4 , #3 } } + \__draw_point_process:nn + { \__draw_path_update_limits:nn } + { \draw_point_transform:n { #4 , #5 } } + \__draw_point_process:nn + { \__draw_path_update_limits:nn } + { \draw_point_transform:n { #2 , #5 } } + } + \group_begin: + \hbox_set:Nn \l__draw_tmp_box + { + \use:x + { + \driver_draw_box_use:Nnnnn #1 + { \fp_use:N \l__draw_matrix_a_fp } + { \fp_use:N \l__draw_matrix_b_fp } + { \fp_use:N \l__draw_matrix_c_fp } + { \fp_use:N \l__draw_matrix_d_fp } + } + } + \hbox_set:Nn \l__draw_tmp_box + { + \tex_kern:D \l__draw_xshift_dim + \box_move_up:nn { \l__draw_yshift_dim } + { \box_use_drop:N \l__draw_tmp_box } + } + \box_set_ht:Nn \l__draw_tmp_box { 0pt } + \box_set_dp:Nn \l__draw_tmp_box { 0pt } + \box_set_wd:Nn \l__draw_tmp_box { 0pt } + \box_use_drop:N \l__draw_tmp_box + \group_end: + } +\cs_new_protected:Npn \draw_coffin_use:Nnn #1#2#3 + { + \group_begin: + \hbox_set:Nn \l__draw_tmp_box + { \coffin_typeset:Nnnnn #1 {#2} {#3} { 0pt } { 0pt } } + \__draw_box_use:Nnnnn \l__draw_tmp_box + { \box_wd:N \l__draw_tmp_box - \coffin_wd:N #1 } + { -\box_dp:N \l__draw_tmp_box } + { \box_wd:N \l__draw_tmp_box } + { \box_ht:N \l__draw_tmp_box } + \group_end: + } %% File: l3draw-paths.dtx Copyright(C) 2018 The LaTeX3 Project \tl_new:N \l__draw_path_tmp_tl \fp_new:N \l__draw_path_tmpa_fp @@ -49,7 +110,7 @@ { \dim_max:nn \g__draw_path_ymax_dim {#2} } \dim_gset:Nn \g__draw_path_ymin_dim { \dim_min:nn \g__draw_path_ymin_dim {#2} } - \bool_if:NT \l__draw_update_bb_bool + \bool_if:NT \l_draw_bb_update_bool { \dim_gset:Nn \g__draw_xmax_dim { \dim_max:nn \g__draw_xmax_dim {#1} } @@ -76,11 +137,7 @@ \dim_new:N \l__draw_corner_xarc_dim \dim_new:N \l__draw_corner_yarc_dim \bool_new:N \l__draw_corner_arc_bool -\cs_new_protected:Npn \draw_path_corner_arc:n #1 - { - \__draw_point_process:nn { \__draw_path_corner_arc:nn } {#1} - } -\cs_new_protected:Npn \__draw_path_corner_arc:nn #1#2 +\cs_new_protected:Npn \draw_path_corner_arc:nn #1#2 { \dim_set:Nn \l__draw_corner_xarc_dim {#1} \dim_set:Nn \l__draw_corner_yarc_dim {#2} @@ -151,6 +208,23 @@ \__draw_path_mark_corner: \__draw_softpath_closepath: } +\cs_new_protected:Npn \draw_path_canvas_moveto:n #1 + { \__draw_point_process:nn { \__draw_path_moveto:nn } {#1} } +\cs_new_protected:Npn \draw_path_canvas_lineto:n #1 + { \__draw_point_process:nn { \__draw_path_lineto:nn } {#1} } +\cs_new_protected:Npn \draw_path_canvas_curveto:nnn #1#2#3 + { + \__draw_point_process:nnn + { + \__draw_point_process:nn + { + \__draw_path_mark_corner: + \__draw_path_curveto:nnnnnn + } + {#1} + } + {#2} {#3} + } \cs_new_protected:Npn \draw_path_curveto:nn #1#2 { \__draw_point_process:nnn @@ -413,7 +487,9 @@ { \__draw_point_process:nnn { - \bool_if:NTF \l__draw_corner_arc_bool + \bool_lazy_or:nnTF + { \l__draw_corner_arc_bool } + { \l__draw_matrix_active_bool } { \__draw_path_rectangle_rounded:nnnn } { \__draw_path_rectangle:nnnn } } @@ -447,24 +523,53 @@ \cs_new_protected:Npn \draw_path_grid:nnnn #1#2#3#4 { \__draw_point_process:nnn - { \__draw_path_grid:nnnnnn {#1} {#2} } + { + \__draw_path_grid_auxi:ffnnnn + { \dim_eval:n { \dim_abs:n {#1} } } + { \dim_eval:n { \dim_abs:n {#2} } } + } {#3} {#4} } -\cs_new_protected:Npn \__draw_path_grid:nnnnnn #1#2#3#4#5#6 +\cs_new_protected:Npn \__draw_path_grid_auxi:nnnnnn #1#2#3#4#5#6 + { + \dim_compare:nNnTF {#3} > {#5} + { \__draw_path_grid_auxii:nnnnnn {#1} {#2} {#5} {#4} {#3} {#6} } + { \__draw_path_grid_auxii:nnnnnn {#1} {#2} {#3} {#4} {#5} {#6} } + } +\cs_generate_variant:Nn \__draw_path_grid_auxi:nnnnnn { ff } +\cs_new_protected:Npn \__draw_path_grid_auxii:nnnnnn #1#2#3#4#5#6 + { + \dim_compare:nNnTF {#4} > {#6} + { \__draw_path_grid_auxiii:nnnnnn {#1} {#2} {#3} {#6} {#5} {#4} } + { \__draw_path_grid_auxiii:nnnnnn {#1} {#2} {#3} {#4} {#5} {#6} } + } +\cs_new_protected:Npn \__draw_path_grid_auxiii:nnnnnn #1#2#3#4#5#6 + { + \__draw_path_grid_auxiv:ffnnnnnn + { \fp_to_dim:n { #1 * trunc(#3/(#1)) } } + { \fp_to_dim:n { #2 * trunc(#4/(#2)) } } + {#1} {#2} {#3} {#4} {#5} {#6} + } +\cs_new_protected:Npn \__draw_path_grid_auxiv:nnnnnnnn #1#2#3#4#5#6#7#8 { \dim_step_inline:nnnn - {#3} { \dim_compare:nNnF {#3} < {#5} { - } \dim_abs:n {#1} } {#5} + {#1} + {#3} + {#7} { - \draw_path_moveto:n { ##1 , #4 } - \draw_path_lineto:n { ##1 , #6 } + \draw_path_moveto:n { ##1 , #6 } + \draw_path_lineto:n { ##1 , #8 } } \dim_step_inline:nnnn - {#4} { \dim_compare:nNnF {#4} < {#6} { - } \dim_abs:n {#2} } {#6} + {#2} + {#4} + {#8} { - \draw_path_moveto:n { #3 , ##1 } - \draw_path_lineto:n { #5 , ##1 } + \draw_path_moveto:n { #5 , ##1 } + \draw_path_lineto:n { #7 , ##1 } } } +\cs_generate_variant:Nn \__draw_path_grid_auxiv:nnnnnnnn { ff } \bool_new:N \l__draw_path_use_clip_bool \bool_new:N \l__draw_path_use_fill_bool \bool_new:N \l__draw_path_use_stroke_bool @@ -500,8 +605,9 @@ { \ERROR } } } + \__draw_softpath_round_corners: \bool_lazy_and:nnT - { \l__draw_update_bb_bool } + { \l_draw_bb_update_bool } { \l__draw_path_use_stroke_bool } { \__draw_path_use_stroke_bb: } \bool_if:NTF \l__draw_path_use_clear_bool @@ -526,6 +632,11 @@ { \bool_set_true:N \l__draw_path_use_stroke_bool } +\cs_new_protected:Npn \__draw_path_use_action_fillstroke: + { + \bool_set_true:N \l__draw_path_use_fill_bool + \bool_set_true:N \l__draw_path_use_stroke_bool + } \cs_new_protected:Npn \__draw_path_use_stroke_bb: { \__draw_path_use_stroke_bb_aux:NnN x { max } + @@ -548,6 +659,51 @@ } } } +\dim_new:N \l__draw_path_lastx_dim +\dim_new:N \l__draw_path_lasty_dim +\dim_new:N \l__draw_path_xmax_dim +\dim_new:N \l__draw_path_xmin_dim +\dim_new:N \l__draw_path_ymax_dim +\dim_new:N \l__draw_path_ymin_dim +\dim_new:N \l__draw_softpath_lastx_dim +\dim_new:N \l__draw_softpath_lasty_dim +\bool_new:N \l__draw_softpath_corners_bool +\cs_new_protected:Npn \draw_path_scope_begin: + { + \group_begin: + \dim_set_eq:NN \l__draw_path_lastx_dim \g__draw_path_lastx_dim + \dim_set_eq:NN \l__draw_path_lasty_dim \g__draw_path_lasty_dim + \dim_set_eq:NN \l__draw_path_xmax_dim \g__draw_path_xmax_dim + \dim_set_eq:NN \l__draw_path_xmin_dim \g__draw_path_xmin_dim + \dim_set_eq:NN \l__draw_path_ymax_dim \g__draw_path_ymax_dim + \dim_set_eq:NN \l__draw_path_ymin_dim \g__draw_path_ymin_dim + \dim_set_eq:NN \l__draw_softpath_lastx_dim \g__draw_softpath_lastx_dim + \dim_set_eq:NN \l__draw_softpath_lasty_dim \g__draw_softpath_lasty_dim + \__draw_path_reset_limits: + \__draw_softpath_concat:n { } + \tl_set_eq:NN \l__draw_softpath_main_tl \g__draw_softpath_main_tl + \bool_set_eq:NN + \l__draw_softpath_corners_bool + \g__draw_softpath_corners_bool + \__draw_softpath_clear: + } +\cs_new_protected:Npn \draw_path_scope_end: + { + \bool_gset_eq:NN + \g__draw_softpath_corners_bool + \l__draw_softpath_corners_bool + \__draw_softpath_clear: + \tl_gset_eq:NN \g__draw_softpath_main_tl \l__draw_softpath_main_tl + \dim_gset_eq:NN \g__draw_softpath_lastx_dim \l__draw_softpath_lastx_dim + \dim_gset_eq:NN \g__draw_softpath_lasty_dim \l__draw_softpath_lasty_dim + \dim_gset_eq:NN \g__draw_path_xmax_dim \l__draw_path_xmax_dim + \dim_gset_eq:NN \g__draw_path_xmin_dim \l__draw_path_xmin_dim + \dim_gset_eq:NN \g__draw_path_ymax_dim \l__draw_path_ymax_dim + \dim_gset_eq:NN \g__draw_path_ymin_dim \l__draw_path_ymin_dim + \dim_gset_eq:NN \g__draw_path_lastx_dim \l__draw_path_lastx_dim + \dim_gset_eq:NN \g__draw_path_lasty_dim \l__draw_path_lasty_dim + \group_end: + } %% File: l3draw-points.dtx Copyright(C) 2018 The LaTeX3 Project \cs_new:Npn \__draw_point_process:nn #1#2 { @@ -701,27 +857,22 @@ \cs_generate_variant:Nn \__draw_point_interpolate_line_aux:nnnnnn { f } \cs_new:Npn \draw_point_interpolate_distance:nnn #1#2#3 { - \__draw_point_process:nnn - { \__draw_point_interpolate_distance:nnnnn {#1} } - {#2} {#3} - } -\cs_new:Npn \__draw_point_interpolate_distance:nnnnn #1#2#3#4#5 - { - \__draw_point_interpolate_distance_aux:nnnnnnn - { \fp_eval:n { #4 - #2 } } - { \fp_eval:n { #5 - #3 } } - {#2} {#3} {#4} {#5} {#1} + \__draw_point_process:nn + { \__draw_point_interpolate_distance:nnnn {#1} {#3} } + {#2} } -\cs_new:Npn \__draw_point_interpolate_distance_aux:nnnnnnn #1#2#3#4#5#6#7 +\cs_new:Npn \__draw_point_interpolate_distance:nnnn #1#2#3#4 { - \__draw_point_interpolate_distance_aux:fnnnn - { \fp_eval:n { (#7) / (sqrt ( #1 * #1 + #2 * #2 )) } } - {#3} {#4} {#5} {#6} + \__draw_point_process:nn + { + \__draw_point_interpolate_distance:fnnnn + { \fp_eval:n {#1} } {#3} {#4} + } + { \draw_point_unit_vector:n { ( #2 ) - ( #3 , #4 ) } } } -\cs_generate_variant:Nn \__draw_point_interpolate_distance_aux:nnnnnnn { ff } -\cs_new:Npn \__draw_point_interpolate_distance_aux:nnnnn #1#2#3#4#5 +\cs_new:Npn \__draw_point_interpolate_distance:nnnnn #1#2#3#4#5 { \__draw_point_to_dim:n { #2 + #1 * #4 , #3 + #1 * #5 } } -\cs_generate_variant:Nn \__draw_point_interpolate_distance_aux:nnnnn { f } +\cs_generate_variant:Nn \__draw_point_interpolate_distance:nnnnn { f } \cs_new:Npn \draw_point_interpolate_arcaxes:nnnnnn #1#2#3#4#5#6 { \__draw_point_process:nnn @@ -897,20 +1048,20 @@ } \cs_new:Npn \__draw_point_transform:nn #1#2 { - \bool_if:NTF \l__draw_transformcm_active_bool + \bool_if:NTF \l__draw_matrix_active_bool { \__draw_point_to_dim:n { ( - \l__draw_transformcm_aa_fp * #1 - + \l__draw_transformcm_ba_fp * #2 - + \l__draw_transformcm_xshift_dim + \l__draw_matrix_a_fp * #1 + + \l__draw_matrix_c_fp * #2 + + \l__draw_xshift_dim ) , ( - \l__draw_transformcm_ab_fp * #1 - + \l__draw_transformcm_bb_fp * #2 - + \l__draw_transformcm_yshift_dim + \l__draw_matrix_b_fp * #1 + + \l__draw_matrix_d_fp * #2 + + \l__draw_yshift_dim ) } } @@ -918,8 +1069,7 @@ \__draw_point_to_dim:n { (#1, #2) - + ( \l__draw_transformcm_xshift_dim , - \l__draw_transformcm_yshift_dim ) + + ( \l__draw_xshift_dim , \l__draw_yshift_dim ) } } } @@ -930,18 +1080,18 @@ } \cs_new:Npn \__draw_point_transform_noshift:nn #1#2 { - \bool_if:NTF \l__draw_transformcm_active_bool + \bool_if:NTF \l__draw_matrix_active_bool { \__draw_point_to_dim:n { ( - \l__draw_transformcm_aa_fp * #1 - + \l__draw_transformcm_ba_fp * #2 + \l__draw_matrix_a_fp * #1 + + \l__draw_matrix_c_fp * #2 ) , ( - \l__draw_transformcm_ab_fp * #1 - + \l__draw_transformcm_bb_fp * #2 + \l__draw_matrix_b_fp * #1 + + \l__draw_matrix_d_fp * #2 ) } } @@ -952,37 +1102,106 @@ \dim_new:N \g__draw_xmin_dim \dim_new:N \g__draw_ymax_dim \dim_new:N \g__draw_ymin_dim -\bool_new:N \l__draw_update_bb_bool +\bool_new:N \l_draw_bb_update_bool \box_new:N \l__draw_main_box +\int_new:N \g__draw_id_int +\cs_new_protected:Npn \__draw_reset_bb: + { + \dim_gset:Nn \g__draw_xmax_dim { -\c_max_dim } + \dim_gset:Nn \g__draw_xmin_dim { \c_max_dim } + \dim_gset:Nn \g__draw_ymax_dim { -\c_max_dim } + \dim_gset:Nn \g__draw_ymin_dim { \c_max_dim } + } \cs_new_protected:Npn \draw_begin: { - \vbox_set:Nw \l__draw_main_box - \driver_draw_begin: - \dim_gset:Nn \g__draw_xmax_dim { -\c_max_dim } - \dim_gset:Nn \g__draw_xmin_dim { \c_max_dim } - \dim_gset:Nn \g__draw_ymax_dim { -\c_max_dim } - \dim_gset:Nn \g__draw_ymin_dim { \c_max_dim } - \bool_set_true:N \l__draw_update_bb_bool - \draw_transform_reset: - \draw_linewidth:n { \l_draw_default_linewidth_dim } + \group_begin: + \int_gincr:N \g__draw_id_int + \hbox_set:Nw \l__draw_main_box + \driver_draw_begin: + \__draw_reset_bb: + \__draw_path_reset_limits: + \bool_set_true:N \l_draw_bb_update_bool + \draw_transform_matrix_reset: + \draw_transform_shift_reset: + \__draw_softpath_clear: + \draw_linewidth:n { \l_draw_default_linewidth_dim } + \draw_color:n { . } } \cs_new_protected:Npn \draw_end: { - \driver_draw_end: - \vbox_set_end: - \hbox_set:Nn \l__draw_main_box - { - \skip_horizontal:n { -\g__draw_xmin_dim } - \box_move_down:nn { \g__draw_ymin_dim } - { \box_use_drop:N \l__draw_main_box } - } - \box_set_ht:Nn \l__draw_main_box - { \g__draw_ymax_dim - \g__draw_ymin_dim } - \box_set_dp:Nn \l__draw_main_box { 0pt } - \box_set_wd:Nn \l__draw_main_box - { \g__draw_xmax_dim - \g__draw_xmin_dim } - \mode_leave_vertical: - \box_use_drop:N \l__draw_main_box + \driver_draw_end: + \hbox_set_end: + \dim_compare:nNnT \g__draw_xmin_dim = \c_max_dim + { + \dim_gzero:N \g__draw_xmax_dim + \dim_gzero:N \g__draw_xmin_dim + \dim_gzero:N \g__draw_ymax_dim + \dim_gzero:N \g__draw_ymin_dim + } + \hbox_set:Nn \l__draw_main_box + { + \skip_horizontal:n { -\g__draw_xmin_dim } + \box_move_down:nn { \g__draw_ymin_dim } + { \box_use_drop:N \l__draw_main_box } + } + \box_set_ht:Nn \l__draw_main_box + { \g__draw_ymax_dim - \g__draw_ymin_dim } + \box_set_dp:Nn \l__draw_main_box { 0pt } + \box_set_wd:Nn \l__draw_main_box + { \g__draw_xmax_dim - \g__draw_xmin_dim } + \mode_leave_vertical: + \box_use_drop:N \l__draw_main_box + \group_end: + } +\dim_new:N \l__draw_linewidth_dim +\tl_new:N \l__draw_fill_color_tl +\tl_new:N \l__draw_stroke_color_tl +\cs_new_protected:Npn \draw_scope_begin: + { + \driver_draw_scope_begin: + \group_begin: + \dim_set_eq:NN \l__draw_linewidth_dim \g__draw_linewidth_dim + \draw_path_scope_begin: + } +\cs_new_protected:Npn \draw_scope_end: + { + \draw_path_scope_end: + \dim_gset_eq:NN \g__draw_linewidth_dim \l__draw_linewidth_dim + \group_end: + \driver_draw_scope_end: + } +\dim_new:N \l__draw_xmax_dim +\dim_new:N \l__draw_xmin_dim +\dim_new:N \l__draw_ymax_dim +\dim_new:N \l__draw_ymin_dim +\cs_new_protected:Npn \__draw_scope_bb_begin: + { + \group_begin: + \dim_set_eq:NN \l__draw_xmax_dim \g__draw_xmax_dim + \dim_set_eq:NN \l__draw_xmin_dim \g__draw_xmin_dim + \dim_set_eq:NN \l__draw_ymax_dim \g__draw_ymax_dim + \dim_set_eq:NN \l__draw_ymin_dim \g__draw_ymin_dim + \__draw_reset_bb: + } +\cs_new_protected:Npn \__draw_scope_bb_end: + { + \dim_gset_eq:NN \g__draw_xmax_dim \l__draw_xmax_dim + \dim_gset_eq:NN \g__draw_xmin_dim \l__draw_xmin_dim + \dim_gset_eq:NN \g__draw_ymax_dim \l__draw_ymax_dim + \dim_gset_eq:NN \g__draw_ymin_dim \l__draw_ymin_dim + \group_end: + } +\cs_new_protected:Npn \draw_suspend_begin: + { + \__draw_scope_bb_begin: + \draw_path_scope_begin: + \draw_transform_matrix_reset: + \draw_transform_shift_reset: + } +\cs_new_protected:Npn \draw_suspend_end: + { + \draw_path_scope_end: + \__draw_scope_bb_end: } %% File: l3draw-softpath.dtx Copyright(C) 2018 The LaTeX3 Project \tl_new:N \g__draw_softpath_main_tl @@ -990,6 +1209,7 @@ \tl_new:N \g__draw_softpath_buffer_b_tl \int_new:N \g__draw_softpath_buffer_a_int \int_new:N \g__draw_softpath_buffer_b_int +\bool_new:N \g__draw_softpath_corners_bool \cs_new_protected:Npn \__draw_softpath_add:n #1 { \int_compare:nNnTF \g__draw_softpath_buffer_a_int < { 40 } @@ -1032,16 +1252,6 @@ \int_gzero:N \g__draw_softpath_buffer_b_int \tl_gclear:N \g__draw_softpath_buffer_b_tl } -\cs_new_protected:Npn \__draw_softpath_get:N #1 - { - \__draw_softpath_concat:n { } - \tl_set_eq:NN #1 \g__draw_softpath_main_tl - } -\cs_new_protected:Npn \__draw_softpath_set_eq:N #1 - { - \tl_gset_eq:NN \g__draw_softpath_main_tl #1 - \__draw_softpath_reset_buffers: - } \cs_new_protected:Npn \__draw_softpath_use: { \g__draw_softpath_main_tl @@ -1053,6 +1263,7 @@ \tl_gclear:N \g__draw_softpath_main_tl \tl_gclear:N \g__draw_softpath_buffer_a_tl \tl_gclear:N \g__draw_softpath_buffer_b_tl + \bool_gset_false:N \g__draw_softpath_corners_bool } \cs_new_protected:Npn \__draw_softpath_use_clear: { @@ -1108,6 +1319,7 @@ { \__draw_softpath_add:n { \__draw_softpath_roundpoint_op:nn {#1} {#2} } + \bool_gset_true:N \g__draw_softpath_corners_bool } \cs_generate_variant:Nn \__draw_softpath_roundpoint:nn { VV } \cs_new_protected:Npn \__draw_softpath_close_op:nn #1#2 @@ -1116,8 +1328,10 @@ { \__draw_softpath_curveto_opi:nnNnnNnn {#1} {#2} } \cs_new_protected:Npn \__draw_softpath_curveto_opi:nnNnnNnn #1#2#3#4#5#6#7#8 { \driver_draw_curveto:nnnnnn {#1} {#2} {#4} {#5} {#7} {#8} } -\cs_new_protected:Npn \__draw_softpath_curveto_opii:nn #1#2 { } -\cs_new_protected:Npn \__draw_softpath_curveto_opiii:nn #1#2 { } +\cs_new_protected:Npn \__draw_softpath_curveto_opii:nn #1#2 + { \__draw_softpath_curveto_opii:nn } +\cs_new_protected:Npn \__draw_softpath_curveto_opiii:nn #1#2 + { \__draw_softpath_curveto_opiii:nn } \cs_new_protected:Npn \__draw_softpath_lineto_op:nn #1#2 { \driver_draw_lineto:nn {#1} {#2} } \cs_new_protected:Npn \__draw_softpath_moveto_op:nn #1#2 @@ -1128,6 +1342,235 @@ \cs_new_protected:Npn \__draw_softpath_rectangle_opi:nnNnn #1#2#3#4#5 { \driver_draw_rectangle:nnnn {#1} {#2} {#4} {#5} } \cs_new_protected:Npn \__draw_softpath_rectangle_opii:nn #1#2 { } +\tl_new:N \l__draw_softpath_main_tl +\tl_new:N \l__draw_softpath_part_tl +\tl_new:N \l__draw_softpath_curve_end_tl +\fp_new:N \l__draw_softpath_lastx_fp +\fp_new:N \l__draw_softpath_lasty_fp +\dim_new:N \l__draw_softpath_corneri_dim +\dim_new:N \l__draw_softpath_cornerii_dim +\tl_new:N \l__draw_softpath_first_tl +\tl_new:N \l__draw_softpath_move_tl +\fp_const:Nn \c__draw_softpath_arc_fp { 4/3 * (sqrt(2) - 1) } +\cs_new_protected:Npn \__draw_softpath_round_corners: + { + \bool_if:NT \g__draw_softpath_corners_bool + { + \group_begin: + \tl_clear:N \l__draw_softpath_main_tl + \tl_clear:N \l__draw_softpath_part_tl + \fp_zero:N \l__draw_softpath_lastx_fp + \fp_zero:N \l__draw_softpath_lasty_fp + \tl_clear:N \l__draw_softpath_first_tl + \tl_clear:N \l__draw_softpath_move_tl + \__draw_softpath_concat:n { } + \exp_after:wN \__draw_softpath_round_loop:Nnn + \g__draw_softpath_main_tl + \q_recursion_tail ? ? + \q_recursion_stop + \group_end: + } + \bool_gset_false:N \g__draw_softpath_corners_bool + } +\cs_new_protected:Npn \__draw_softpath_round_loop:Nnn #1#2#3 + { + \quark_if_recursion_tail_stop_do:Nn #1 { \__draw_softpath_round_end: } + \token_if_eq_meaning:NNTF #1 \__draw_softpath_roundpoint_op:nn + { \__draw_softpath_round_action:nn {#2} {#3} } + { + \tl_if_empty:NT \l__draw_softpath_first_tl + { \tl_set:Nn \l__draw_softpath_first_tl { {#2} {#3} } } + \fp_set:Nn \l__draw_softpath_lastx_fp {#2} + \fp_set:Nn \l__draw_softpath_lasty_fp {#3} + \token_if_eq_meaning:NNTF #1 \__draw_softpath_moveto_op:nn + { + \tl_put_right:No \l__draw_softpath_main_tl + \l__draw_softpath_move_tl + \tl_put_right:No \l__draw_softpath_main_tl + \l__draw_softpath_part_tl + \tl_set:Nn \l__draw_softpath_move_tl { #1 {#2} {#3} } + \tl_clear:N \l__draw_softpath_first_tl + \tl_clear:N \l__draw_softpath_part_tl + } + { \tl_put_right:Nn \l__draw_softpath_part_tl { #1 {#2} {#3} } } + \__draw_softpath_round_loop:Nnn + } + } +\cs_new_protected:Npn \__draw_softpath_round_action:nn #1#2 + { + \dim_set:Nn \l__draw_softpath_corneri_dim {#1} + \dim_set:Nn \l__draw_softpath_cornerii_dim {#2} + \bool_lazy_and:nnTF + { \dim_compare_p:nNn \l__draw_softpath_corneri_dim = { 0pt } } + { \dim_compare_p:nNn \l__draw_softpath_cornerii_dim = { 0pt } } + { \__draw_softpath_round_loop:Nnn } + { \__draw_softpath_round_action:Nnn } + } +\cs_new_protected:Npn \__draw_softpath_round_action:Nnn #1#2#3 + { + \tl_if_empty:NT \l__draw_softpath_first_tl + { \tl_set:Nn \l__draw_softpath_first_tl { {#2} {#3} } } + \token_if_eq_meaning:NNTF #1 \__draw_softpath_curveto_opi:nn + { \__draw_softpath_round_action_curveto:NnnNnn } + { + \token_if_eq_meaning:NNTF #1 \__draw_softpath_close_op:nn + { \__draw_softpath_round_action_close: } + { + \token_if_eq_meaning:NNTF #1 \__draw_softpath_lineto_op:nn + { \__draw_softpath_round_lookahead:NnnNnn } + { \__draw_softpath_round_loop:Nnn } + } + } + #1 {#2} {#3} + } +\cs_new_protected:Npn \__draw_softpath_round_action_curveto:NnnNnn + #1#2#3#4#5#6 + { + \tl_put_right:Nn \l__draw_softpath_part_tl + { #1 {#2} {#3} #4 {#5} {#6} } + \fp_set:Nn \l__draw_softpath_lastx_fp {#5} + \fp_set:Nn \l__draw_softpath_lasty_fp {#6} + \__draw_softpath_round_lookahead:NnnNnn + } +\cs_new_protected:Npn \__draw_softpath_round_action_close: + { + \bool_lazy_and:nnTF + { ! \tl_if_empty_p:N \l__draw_softpath_first_tl } + { ! \tl_if_empty_p:N \l__draw_softpath_move_tl } + { + \exp_after:wN \__draw_softpath_round_close:nn + \l__draw_softpath_first_tl + } + { \__draw_softpath_round_loop:Nnn } + } +\cs_new_protected:Npn \__draw_softpath_round_lookahead:NnnNnn #1#2#3#4#5#6 + { + \bool_lazy_any:nTF + { + { \token_if_eq_meaning_p:NN #4 \__draw_softpath_lineto_op:nn } + { \token_if_eq_meaning_p:NN #4 \__draw_softpath_curveto_opi:nn } + { \token_if_eq_meaning_p:NN #4 \__draw_softpath_close_op:nn } + } + { + \__draw_softpath_round_calc:nnnNnn + \__draw_softpath_round_loop:Nnn {#5} {#6} + } + { + \token_if_eq_meaning:NNTF #4 \__draw_softpath_roundpoint_op:nn + { \__draw_softpath_round_roundpoint:NnnNnnNnn } + { \__draw_softpath_round_loop:Nnn } + } + #1 {#2} {#3} + #4 {#5} {#6} + } +\cs_new_protected:Npn \__draw_softpath_round_roundpoint:NnnNnnNnn + #1#2#3#4#5#6#7#8#9 + { + \__draw_softpath_round_calc:nnnNnn + \__draw_softpath_round_loop:Nnn + {#8} {#9} #1 {#2} {#3} + #4 {#5} {#6} #7 {#8} {#9} + } +\cs_new_protected:Npn \__draw_softpath_round_calc:nnnNnn #1#2#3#4#5#6 + { + \tl_set:Nx \l__draw_softpath_curve_end_tl + { + \draw_point_interpolate_distance:nnn + \l__draw_softpath_cornerii_dim + { #5 , #6 } { #2 , #3 } + } + \tl_put_right:Nx \l__draw_softpath_part_tl + { + \exp_not:N #4 + \__draw_softpath_round_calc:fVnnnn + { + \draw_point_interpolate_distance:nnn + \l__draw_softpath_corneri_dim + { #5 , #6 } + { + \l__draw_softpath_lastx_fp , + \l__draw_softpath_lasty_fp + } + } + \l__draw_softpath_curve_end_tl + {#5} {#6} {#2} {#3} + } + \fp_set:Nn \l__draw_softpath_lastx_fp {#5} + \fp_set:Nn \l__draw_softpath_lasty_fp {#6} + #1 + } +\cs_new:Npn \__draw_softpath_round_calc:nnnnnn #1#2#3#4#5#6 + { + \__draw_softpath_round_calc:nnnnw {#3} {#4} {#5} {#6} + #1 \q_mark #2 \q_stop + } +\cs_generate_variant:Nn \__draw_softpath_round_calc:nnnnnn { fV } +\cs_new:Npn \__draw_softpath_round_calc:nnnnw + #1#2#3#4 #5 , #6 \q_mark #7 , #8 \q_stop + { + {#5} {#6} + \exp_not:N \__draw_softpath_curveto_opi:nn + { + \fp_to_dim:n + { #5 + \c__draw_softpath_arc_fp * ( #1 - #5 ) } + } + { + \fp_to_dim:n + { #6 + \c__draw_softpath_arc_fp * ( #2 - #6 ) } + } + \exp_not:N \__draw_softpath_curveto_opii:nn + { + \fp_to_dim:n + { #7 + \c__draw_softpath_arc_fp * ( #1 - #7 ) } + } + { + \fp_to_dim:n + { #8 + \c__draw_softpath_arc_fp* ( #2 - #8 ) } + } + \exp_not:N \__draw_softpath_curveto_opiii:nn + {#7} {#8} + } +\cs_new_protected:Npn \__draw_softpath_round_close:nn #1#2 + { + \use:x + { + \__draw_softpath_round_calc:nnnNnn + { + \tl_set:Nx \exp_not:N \l__draw_softpath_move_tl + { + \__draw_softpath_moveto_op:nn + \exp_not:N \exp_after:wN + \exp_not:N \__draw_softpath_round_close:w + \exp_not:N \l__draw_softpath_curve_end_tl + \exp_not:N \q_stop + } + \use:x + { + \exp_not:N \exp_not:N \exp_not:N \use_i:nnnn + { + \__draw_softpath_round_loop:Nnn + \__draw_softpath_close_op:nn + \exp_not:N \exp_after:wN + \exp_not:N \__draw_softpath_round_close:w + \exp_not:N \l__draw_softpath_curve_end_tl + \exp_not:N \q_stop + } + } + } + {#1} {#2} + \__draw_softpath_lineto_op:nn + \exp_after:wN \use_none:n \l__draw_softpath_move_tl + } + } +\cs_new:Npn \__draw_softpath_round_close:w #1 , #2 \q_stop { {#1} {#2} } +\cs_new_protected:Npn \__draw_softpath_round_end: + { + \tl_put_right:No \l__draw_softpath_main_tl + \l__draw_softpath_move_tl + \tl_put_right:No \l__draw_softpath_main_tl + \l__draw_softpath_part_tl + \tl_gset_eq:NN \g__draw_softpath_main_tl \l__draw_softpath_main_tl + } %% File: l3draw-state.dtx Copyright(C) 2018 The LaTeX3 Project \dim_new:N \g__draw_linewidth_dim \dim_new:N \g__draw_inner_linewidth_dim @@ -1141,7 +1584,7 @@ \cs_new_protected:Npn \draw_inner_linewidth:n #1 { \dim_gset:Nn \g__draw_inner_linewidth_dim { \fp_to_dim:n {#1} } } \cs_new_protected:Npn \draw_miterlimit:n #1 - { \driver_draw_miterlimit:n { \fp_to_dim:n {#1} } } + { \driver_draw_miterlimit:n { \fp_eval:n {#1} } } \cs_new_protected:Npn \draw_cap_butt: { \driver_draw_cap_butt: } \cs_new_protected:Npn \draw_cap_rectangle: { \driver_draw_cap_rectangle: } \cs_new_protected:Npn \draw_cap_round: { \driver_draw_cap_round: } @@ -1151,10 +1594,7 @@ \cs_new_protected:Npn \draw_join_miter: { \driver_draw_join_miter: } \cs_new_protected:Npn \draw_join_round: { \driver_draw_join_round: } \tl_new:N \l__draw_color_tmp_tl -\tl_new:N \g__draw_fill_color_tl -\tl_new:N \g__draw_stroke_color_tl -\cs_new_protected:Npn \draw_color:n #1 - { \__draw_color:nn { } {#1} } +\cs_new_eq:NN \draw_color:n \color_select:n \cs_new_protected:Npn \draw_color_fill:n #1 { \__draw_color:nn { fill } {#1} } \cs_new_protected:Npn \draw_color_stroke:n #1 @@ -1162,16 +1602,7 @@ \cs_new_protected:Npn \__draw_color:nn #1#2 { \color_parse:nN {#2} \l__draw_color_tmp_tl - \tl_if_blank:nTF {#1} - { - \tl_gset_eq:NN \g__draw_fill_color_tl \l__draw_color_tmp_tl - \tl_gset_eq:NN \g__draw_stroke_color_tl \l__draw_color_tmp_tl - \__draw_color_aux:Vn \l__draw_color_tmp_tl { color } - } - { - \tl_gset_eq:cN { g__draw_ #1 _color_tl } \l__draw_color_tmp_tl - \__draw_color_aux:Vn \l__draw_color_tmp_tl { #1 } - } + \__draw_color_aux:Vn \l__draw_color_tmp_tl {#1} } \cs_new_protected:Npn \__draw_color_aux:nn #1#2 { \__draw_color:nw {#2} #1 \q_stop } @@ -1179,104 +1610,96 @@ \cs_new_protected:Npn \__draw_color:nw #1#2 ~ #3 \q_stop { \use:c { __draw_color_ #2 :nw } {#1} #3 \q_stop } \cs_new_protected:Npn \__draw_color_cmyk:nw #1#2 ~ #3 ~ #4 ~ #5 \q_stop - { \use:c { driver_draw_ #1 _cmyk:nnnn } {#2} {#3} {#4} {#5} } + { \use:c { driver_draw_color_ #1 _cmyk:nnnn } {#2} {#3} {#4} {#5} } \cs_new_protected:Npn \__draw_color_gray:nw #1#2 \q_stop - { \use:c { driver_draw_ #1 _gray:n } {#2} } + { \use:c { driver_draw_color_ #1 _gray:n } {#2} } \cs_new_protected:Npn \__draw_color_rgb:nw #1#2 ~ #3 ~ #4 \q_stop - { \use:c { driver_draw_ #1 _rgb:nnn } {#2} {#3} {#4} } + { \use:c { driver_draw_color_ #1 _rgb:nnn } {#2} {#3} {#4} } \cs_new_protected:Npn \__draw_color_spot:nw #1#2 ~ #3 \q_stop - { \use:c { driver_draw_ #1 _spot:nn } {#2} {#3} } + { \use:c { driver_draw_color_ #1 _spot:nn } {#2} {#3} } %% File: l3draw-transforms.dtx Copyright(C) 2018 The LaTeX3 Project -\bool_new:N \l__draw_transformcm_active_bool -\fp_new:N \l__draw_transformcm_aa_fp -\fp_new:N \l__draw_transformcm_ab_fp -\fp_new:N \l__draw_transformcm_ba_fp -\fp_new:N \l__draw_transformcm_bb_fp -\dim_new:N \l__draw_transformcm_xshift_dim -\dim_new:N \l__draw_transformcm_yshift_dim -\cs_new_protected:Npn \draw_transform_reset: - { - \fp_set:Nn \l__draw_transformcm_aa_fp { 1} - \fp_zero:N \l__draw_transformcm_ab_fp - \fp_zero:N \l__draw_transformcm_ba_fp - \fp_set:Nn \l__draw_transformcm_bb_fp { 1 } - \dim_zero:N \l__draw_transformcm_xshift_dim - \dim_zero:N \l__draw_transformcm_yshift_dim - } -\draw_transform_reset: -\cs_new_protected:Npn \draw_transform:nnnnn #1#2#3#4#5 - { - \__draw_point_process:nn - { \__draw_transform:nnnnnnn {#1} {#2} {#3} {#4} } - {#5} - } -\cs_new_protected:Npn \__draw_transform:nnnnnnn #1#2#3#4#5#6 - { - \fp_set:Nn \l__draw_transformcm_aa_fp {#1} - \fp_set:Nn \l__draw_transformcm_ab_fp {#2} - \fp_set:Nn \l__draw_transformcm_ba_fp {#3} - \fp_set:Nn \l__draw_transformcm_bb_fp {#4} - \dim_set:Nn \l__draw_transformcm_xshift_dim {#5} - \dim_set:Nn \l__draw_transformcm_yshift_dim {#6} +\bool_new:N \l__draw_matrix_active_bool +\fp_new:N \l__draw_matrix_a_fp +\fp_new:N \l__draw_matrix_b_fp +\fp_new:N \l__draw_matrix_c_fp +\fp_new:N \l__draw_matrix_d_fp +\dim_new:N \l__draw_xshift_dim +\dim_new:N \l__draw_yshift_dim +\cs_new_protected:Npn \draw_transform_matrix_reset: + { + \fp_set:Nn \l__draw_matrix_a_fp { 1 } + \fp_zero:N \l__draw_matrix_b_fp + \fp_zero:N \l__draw_matrix_c_fp + \fp_set:Nn \l__draw_matrix_d_fp { 1 } + } +\cs_new_protected:Npn \draw_transform_shift_reset: + { + \dim_zero:N \l__draw_xshift_dim + \dim_zero:N \l__draw_yshift_dim + } +\draw_transform_matrix_reset: +\draw_transform_shift_reset: +\cs_new_protected:Npn \draw_transform_matrix:nnnn #1#2#3#4 + { + \fp_set:Nn \l__draw_matrix_a_fp {#1} + \fp_set:Nn \l__draw_matrix_b_fp {#2} + \fp_set:Nn \l__draw_matrix_c_fp {#3} + \fp_set:Nn \l__draw_matrix_d_fp {#4} \bool_lazy_all:nTF { - { \fp_compare_p:nNn \l__draw_transformcm_aa_fp = \c_one_fp } - { \fp_compare_p:nNn \l__draw_transformcm_ab_fp = \c_zero_fp } - { \fp_compare_p:nNn \l__draw_transformcm_ba_fp = \c_zero_fp } - { \fp_compare_p:nNn \l__draw_transformcm_bb_fp = \c_one_fp } + { \fp_compare_p:nNn \l__draw_matrix_a_fp = \c_one_fp } + { \fp_compare_p:nNn \l__draw_matrix_b_fp = \c_zero_fp } + { \fp_compare_p:nNn \l__draw_matrix_c_fp = \c_zero_fp } + { \fp_compare_p:nNn \l__draw_matrix_d_fp = \c_one_fp } } - { \bool_set_false:N \l__draw_transformcm_active_bool } - { \bool_set_true:N \l__draw_transformcm_active_bool } + { \bool_set_false:N \l__draw_matrix_active_bool } + { \bool_set_true:N \l__draw_matrix_active_bool } } -\cs_new_protected:Npn \draw_transform_concat:nnnnn #1#2#3#4#5 +\cs_new_protected:Npn \draw_transform_shift:n #1 { \__draw_point_process:nn - { \__draw_transform_concat:nnnnnn {#1} {#2} {#3} {#4} } - {#5} + { \__draw_transform_shift:nn } {#1} } -\cs_new_protected:Npn \__draw_transform_concat:nnnnnn #1#2#3#4#5#6 +\cs_new_protected:Npn \__draw_transform_shift:nn #1#2 + { + \dim_set:Nn \l__draw_xshift_dim {#1} + \dim_set:Nn \l__draw_yshift_dim {#2} + } +\cs_new_protected:Npn \draw_transform_matrix_concat:nnnn #1#2#3#4 { \use:x { - \__draw_transform_concat_aux:nnnnnn + \__draw_transform_concat:nnnn { \fp_eval:n {#1} } { \fp_eval:n {#2} } { \fp_eval:n {#3} } { \fp_eval:n {#4} } - {#5} - {#6} } } -\cs_new_protected:Npn \__draw_transform_concat_aux:nnnnnn #1#2#3#4#5#6 +\cs_new_protected:Npn \__draw_transform_concat:nnnn #1#2#3#4 { \use:x { - \__draw_transform:nnnnnnn - { #1 * \l__draw_transformcm_aa_fp + #2 * \l__draw_transformcm_ba_fp } - { #1 * \l__draw_transformcm_ab_fp + #2 * \l__draw_transformcm_bb_fp } - { #3 * \l__draw_transformcm_aa_fp + #4 * \l__draw_transformcm_ba_fp } - { #3 * \l__draw_transformcm_ab_fp + #4 * \l__draw_transformcm_bb_fp } - { - \fp_to_dim:n - { - \l__draw_transformcm_xshift_dim - + \l__draw_transformcm_aa_fp * #5 - + \l__draw_transformcm_ba_fp * #6 - } - } - { - \fp_to_dim:n - { - \l__draw_transformcm_yshift_dim - + \l__draw_transformcm_ab_fp * #5 - + \l__draw_transformcm_bb_fp * #6 - } - } + \draw_transform_matrix:nnnn + { #1 * \l__draw_matrix_a_fp + #2 * \l__draw_matrix_c_fp } + { #1 * \l__draw_matrix_b_fp + #2 * \l__draw_matrix_d_fp } + { #3 * \l__draw_matrix_a_fp + #4 * \l__draw_matrix_c_fp } + { #3 * \l__draw_matrix_b_fp + #4 * \l__draw_matrix_d_fp } } } -\cs_new_protected:Npn \draw_transform_invert: +\cs_new_protected:Npn \draw_transform_shift_concat:n #1 { - \bool_if:NT \l__draw_transformcm_active_bool + \__draw_point_process:nn + { \__draw_transform_shift_concat:nn } {#1} + } +\cs_new_protected:Npn \__draw_transform_shift_concat:nn #1#2 + { + \dim_set:Nn \l__draw_xshift_dim { \l__draw_xshift_dim + #1 } + \dim_set:Nn \l__draw_yshift_dim { \l__draw_yshift_dim + #2 } + } +\cs_new_protected:Npn \draw_transform_matrix_invert: + { + \bool_if:NT \l__draw_matrix_active_bool { \__draw_transform_invert:f { @@ -1284,41 +1707,30 @@ { 1 / ( - \l__draw_transformcm_aa_fp * \l__draw_transformcm_bb_fp - - \l__draw_transformcm_ab_fp * \l__draw_transformcm_ba_fp + \l__draw_matrix_a_fp * \l__draw_matrix_d_fp + - \l__draw_matrix_b_fp * \l__draw_matrix_c_fp ) } } } - \dim_set:Nn \l__draw_transformcm_xshift_dim - { - \fp_to_dim:n - { - -\l__draw_transformcm_xshift_dim * \l__draw_transformcm_aa_fp - -\l__draw_transformcm_yshift_dim * \l__draw_transformcm_ba_fp - } - } - \dim_set:Nn \l__draw_transformcm_yshift_dim - { - \fp_to_dim:n - { - -\l__draw_transformcm_xshift_dim * \l__draw_transformcm_ab_fp - -\l__draw_transformcm_yshift_dim * \l__draw_transformcm_bb_fp - } - } } \cs_new_protected:Npn \__draw_transform_invert:n #1 { - \fp_set:Nn \l__draw_transformcm_aa_fp - { \l__draw_transformcm_bb_fp * #1 } - \fp_set:Nn \l__draw_transformcm_ab_fp - { -\l__draw_transformcm_ab_fp * #1 } - \fp_set:Nn \l__draw_transformcm_ba_fp - { -\l__draw_transformcm_ba_fp * #1 } - \fp_set:Nn \l__draw_transformcm_bb_fp - { \l__draw_transformcm_aa_fp * #1 } + \fp_set:Nn \l__draw_matrix_a_fp + { \l__draw_matrix_d_fp * #1 } + \fp_set:Nn \l__draw_matrix_b_fp + { -\l__draw_matrix_b_fp * #1 } + \fp_set:Nn \l__draw_matrix_c_fp + { -\l__draw_matrix_c_fp * #1 } + \fp_set:Nn \l__draw_matrix_d_fp + { \l__draw_matrix_a_fp * #1 } } \cs_generate_variant:Nn \__draw_transform_invert:n { f } +\cs_new_protected:Npn \draw_transform_shift_invert: + { + \dim_set:Nn \l__draw_xshift_dim { -\l__draw_xshift_dim } + \dim_set:Nn \l__draw_yshift_dim { -\l__draw_yshift_dim } + } \cs_new_protected:Npn \draw_transform_triangle:nnn #1#2#3 { \__draw_point_process:nnn @@ -1333,15 +1745,40 @@ { \use:x { - \__draw_transform:nnnnnnn + \draw_transform_matrix:nnnn { #3 - #1 } { #4 - #2 } { #5 - #1 } { #6 - #2 } - {#1} - {#2} + \draw_transform_shift:n { #1 , #2 } } } +\cs_new_protected:Npn \draw_transform_scale:n #1 + { \draw_transform_matrix_concat:nnnn { #1 } { 0 } { 0 } { #1 } } +\cs_new_protected:Npn \draw_transform_xscale:n #1 + { \draw_transform_matrix_concat:nnnn { #1 } { 0 } { 0 } { 1 } } +\cs_new_protected:Npn \draw_transform_yscale:n #1 + { \draw_transform_matrix_concat:nnnn { 1 } { 0 } { 0 } { #1 } } +\cs_new_protected:Npn \draw_transform_xshift:n #1 + { \draw_transform_shift_concat:n { #1 , 0 } } +\cs_new_protected:Npn \draw_transform_yshift:n #1 + { \draw_transform_shift_concat:n { 0 , #1 } } +\cs_new_protected:Npn \draw_transform_xslant:n #1 + { \draw_transform_matrix_concat:nnnn { 1 } { 0 } { #1 } { 1 } } +\cs_new_protected:Npn \draw_transform_yslant:n #1 + { \draw_transform_matrix_concat:nnnn { 1 } { #1 } { 0 } { 1 } } +\cs_new_protected:Npn \draw_transform_rotate:n #1 + { \__draw_transform_rotate:f { \fp_eval:n {#1} } } +\cs_new_protected:Npn \__draw_transform_rotate:n #1 + { + \__draw_transform_rotate:ff + { \fp_eval:n { cosd(#1) } } + { \fp_eval:n { sind(#1) } } + } +\cs_generate_variant:Nn \__draw_transform_rotate:n { f } +\cs_new_protected:Npn \__draw_transform_rotate:nn #1#2 + { \draw_transform_matrix_concat:nnnn {#1} {#2} { -#2 } { #1 } } +\cs_generate_variant:Nn \__draw_transform_rotate:nn { ff } %% %% %% End of file `l3draw.sty'. diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-convert.sty b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-convert.sty index 021b453f912..711e7bcd2d2 100644 --- a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-convert.sty +++ b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-convert.sty @@ -18,9 +18,9 @@ %% This file is part of the "l3experimental bundle" (The Work in LPPL) %% and all files in that bundle must be distributed together. %% -%% File: l3str-convert.dtx Copyright (C) 2013-2017 The LaTeX3 Project +%% File: l3str-convert.dtx Copyright (C) 2013-2018 The LaTeX3 Project \RequirePackage{expl3} -\ProvidesExplPackage{l3str-convert}{2018/02/21}{} +\ProvidesExplPackage{l3str-convert}{2018/03/05}{} {L3 Experimental string encoding conversions} \cs_if_exist:NF \use_ii_i:nn { \cs_new:Npn \use_ii_i:nn #1#2 { #2 #1 } } diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso88591.def b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso88591.def index 60be5c7f1b2..844fb028955 100644 --- a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso88591.def +++ b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso88591.def @@ -18,7 +18,7 @@ %% This file is part of the "l3experimental bundle" (The Work in LPPL) %% and all files in that bundle must be distributed together. %% -%% File: l3str-convert.dtx Copyright (C) 2013-2017 The LaTeX3 Project +%% File: l3str-convert.dtx Copyright (C) 2013-2018 The LaTeX3 Project \__str_declare_eight_bit_encoding:nnn { iso88591 } { } diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso885910.def b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso885910.def index a651b227cc1..81b47155a32 100644 --- a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso885910.def +++ b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso885910.def @@ -18,7 +18,7 @@ %% This file is part of the "l3experimental bundle" (The Work in LPPL) %% and all files in that bundle must be distributed together. %% -%% File: l3str-convert.dtx Copyright (C) 2013-2017 The LaTeX3 Project +%% File: l3str-convert.dtx Copyright (C) 2013-2018 The LaTeX3 Project \__str_declare_eight_bit_encoding:nnn { iso885910 } { { A1 } { 0104 } diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso885911.def b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso885911.def index 1a48cc8bec3..68b46305ae7 100644 --- a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso885911.def +++ b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso885911.def @@ -18,7 +18,7 @@ %% This file is part of the "l3experimental bundle" (The Work in LPPL) %% and all files in that bundle must be distributed together. %% -%% File: l3str-convert.dtx Copyright (C) 2013-2017 The LaTeX3 Project +%% File: l3str-convert.dtx Copyright (C) 2013-2018 The LaTeX3 Project \__str_declare_eight_bit_encoding:nnn { iso885911 } { { A1 } { 0E01 } diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso885913.def b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso885913.def index 948072f8ac6..9dc2da1d44a 100644 --- a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso885913.def +++ b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso885913.def @@ -18,7 +18,7 @@ %% This file is part of the "l3experimental bundle" (The Work in LPPL) %% and all files in that bundle must be distributed together. %% -%% File: l3str-convert.dtx Copyright (C) 2013-2017 The LaTeX3 Project +%% File: l3str-convert.dtx Copyright (C) 2013-2018 The LaTeX3 Project \__str_declare_eight_bit_encoding:nnn { iso885913 } { { A1 } { 201D } diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso885914.def b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso885914.def index 6faf3e101b2..5f4000f9d43 100644 --- a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso885914.def +++ b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso885914.def @@ -18,7 +18,7 @@ %% This file is part of the "l3experimental bundle" (The Work in LPPL) %% and all files in that bundle must be distributed together. %% -%% File: l3str-convert.dtx Copyright (C) 2013-2017 The LaTeX3 Project +%% File: l3str-convert.dtx Copyright (C) 2013-2018 The LaTeX3 Project \__str_declare_eight_bit_encoding:nnn { iso885914 } { { A1 } { 1E02 } diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso885915.def b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso885915.def index f6846a10f99..d903dd492d8 100644 --- a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso885915.def +++ b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso885915.def @@ -18,7 +18,7 @@ %% This file is part of the "l3experimental bundle" (The Work in LPPL) %% and all files in that bundle must be distributed together. %% -%% File: l3str-convert.dtx Copyright (C) 2013-2017 The LaTeX3 Project +%% File: l3str-convert.dtx Copyright (C) 2013-2018 The LaTeX3 Project \__str_declare_eight_bit_encoding:nnn { iso885915 } { { A4 } { 20AC } diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso885916.def b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso885916.def index ef5c375d337..094b24b1aac 100644 --- a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso885916.def +++ b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso885916.def @@ -18,7 +18,7 @@ %% This file is part of the "l3experimental bundle" (The Work in LPPL) %% and all files in that bundle must be distributed together. %% -%% File: l3str-convert.dtx Copyright (C) 2013-2017 The LaTeX3 Project +%% File: l3str-convert.dtx Copyright (C) 2013-2018 The LaTeX3 Project \__str_declare_eight_bit_encoding:nnn { iso885916 } { { A1 } { 0104 } diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso88592.def b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso88592.def index 9b036d2488f..a5f331647aa 100644 --- a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso88592.def +++ b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso88592.def @@ -18,7 +18,7 @@ %% This file is part of the "l3experimental bundle" (The Work in LPPL) %% and all files in that bundle must be distributed together. %% -%% File: l3str-convert.dtx Copyright (C) 2013-2017 The LaTeX3 Project +%% File: l3str-convert.dtx Copyright (C) 2013-2018 The LaTeX3 Project \__str_declare_eight_bit_encoding:nnn { iso88592 } { { A1 } { 0104 } diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso88593.def b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso88593.def index f7014f192af..2fa465e0b21 100644 --- a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso88593.def +++ b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso88593.def @@ -18,7 +18,7 @@ %% This file is part of the "l3experimental bundle" (The Work in LPPL) %% and all files in that bundle must be distributed together. %% -%% File: l3str-convert.dtx Copyright (C) 2013-2017 The LaTeX3 Project +%% File: l3str-convert.dtx Copyright (C) 2013-2018 The LaTeX3 Project \__str_declare_eight_bit_encoding:nnn { iso88593 } { { A1 } { 0126 } diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso88594.def b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso88594.def index d388165099a..9b75283b92a 100644 --- a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso88594.def +++ b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso88594.def @@ -18,7 +18,7 @@ %% This file is part of the "l3experimental bundle" (The Work in LPPL) %% and all files in that bundle must be distributed together. %% -%% File: l3str-convert.dtx Copyright (C) 2013-2017 The LaTeX3 Project +%% File: l3str-convert.dtx Copyright (C) 2013-2018 The LaTeX3 Project \__str_declare_eight_bit_encoding:nnn { iso88594 } { { A1 } { 0104 } diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso88595.def b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso88595.def index d9f12eed1da..6576297ed22 100644 --- a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso88595.def +++ b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso88595.def @@ -18,7 +18,7 @@ %% This file is part of the "l3experimental bundle" (The Work in LPPL) %% and all files in that bundle must be distributed together. %% -%% File: l3str-convert.dtx Copyright (C) 2013-2017 The LaTeX3 Project +%% File: l3str-convert.dtx Copyright (C) 2013-2018 The LaTeX3 Project \__str_declare_eight_bit_encoding:nnn { iso88595 } { { A1 } { 0401 } diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso88596.def b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso88596.def index 0431f27c25d..fcfd76af39e 100644 --- a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso88596.def +++ b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso88596.def @@ -18,7 +18,7 @@ %% This file is part of the "l3experimental bundle" (The Work in LPPL) %% and all files in that bundle must be distributed together. %% -%% File: l3str-convert.dtx Copyright (C) 2013-2017 The LaTeX3 Project +%% File: l3str-convert.dtx Copyright (C) 2013-2018 The LaTeX3 Project \__str_declare_eight_bit_encoding:nnn { iso88596 } { { AC } { 060C } diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso88597.def b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso88597.def index d7358bdb9b1..b555c1cba02 100644 --- a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso88597.def +++ b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso88597.def @@ -18,7 +18,7 @@ %% This file is part of the "l3experimental bundle" (The Work in LPPL) %% and all files in that bundle must be distributed together. %% -%% File: l3str-convert.dtx Copyright (C) 2013-2017 The LaTeX3 Project +%% File: l3str-convert.dtx Copyright (C) 2013-2018 The LaTeX3 Project \__str_declare_eight_bit_encoding:nnn { iso88597 } { { A1 } { 2018 } diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso88598.def b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso88598.def index 68f7b576f29..f6f79b7e4a3 100644 --- a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso88598.def +++ b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso88598.def @@ -18,7 +18,7 @@ %% This file is part of the "l3experimental bundle" (The Work in LPPL) %% and all files in that bundle must be distributed together. %% -%% File: l3str-convert.dtx Copyright (C) 2013-2017 The LaTeX3 Project +%% File: l3str-convert.dtx Copyright (C) 2013-2018 The LaTeX3 Project \__str_declare_eight_bit_encoding:nnn { iso88598 } { { AA } { 00D7 } diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso88599.def b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso88599.def index 4ac243c585c..85cb0026d4b 100644 --- a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso88599.def +++ b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso88599.def @@ -18,7 +18,7 @@ %% This file is part of the "l3experimental bundle" (The Work in LPPL) %% and all files in that bundle must be distributed together. %% -%% File: l3str-convert.dtx Copyright (C) 2013-2017 The LaTeX3 Project +%% File: l3str-convert.dtx Copyright (C) 2013-2018 The LaTeX3 Project \__str_declare_eight_bit_encoding:nnn { iso88599 } { { D0 } { 011E } diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-utf16.def b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-utf16.def index 5cb922bcdd2..66d5ec7a527 100644 --- a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-utf16.def +++ b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-utf16.def @@ -18,7 +18,7 @@ %% This file is part of the "l3experimental bundle" (The Work in LPPL) %% and all files in that bundle must be distributed together. %% -%% File: l3str-convert.dtx Copyright (C) 2013-2017 The LaTeX3 Project +%% File: l3str-convert.dtx Copyright (C) 2013-2018 The LaTeX3 Project \group_begin: \char_set_catcode_other:N \^^fe \char_set_catcode_other:N \^^ff diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-utf32.def b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-utf32.def index 7084d5597e5..3c37226eebc 100644 --- a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-utf32.def +++ b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-utf32.def @@ -18,7 +18,7 @@ %% This file is part of the "l3experimental bundle" (The Work in LPPL) %% and all files in that bundle must be distributed together. %% -%% File: l3str-convert.dtx Copyright (C) 2013-2017 The LaTeX3 Project +%% File: l3str-convert.dtx Copyright (C) 2013-2018 The LaTeX3 Project \group_begin: \char_set_catcode_other:N \^^00 \char_set_catcode_other:N \^^fe diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-utf8.def b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-utf8.def index eaf3d0a6a4b..486b12974a6 100644 --- a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-utf8.def +++ b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-utf8.def @@ -18,7 +18,7 @@ %% This file is part of the "l3experimental bundle" (The Work in LPPL) %% and all files in that bundle must be distributed together. %% -%% File: l3str-convert.dtx Copyright (C) 2013-2017 The LaTeX3 Project +%% File: l3str-convert.dtx Copyright (C) 2013-2018 The LaTeX3 Project \cs_new_protected:cpn { __str_convert_encode_utf8: } { \__str_convert_gmap_internal:N \__str_encode_utf_viii_char:n } \cs_new:Npn \__str_encode_utf_viii_char:n #1 diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-esc-hex.def b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-esc-hex.def index a6f3e978931..98932ef5521 100644 --- a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-esc-hex.def +++ b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-esc-hex.def @@ -18,7 +18,7 @@ %% This file is part of the "l3experimental bundle" (The Work in LPPL) %% and all files in that bundle must be distributed together. %% -%% File: l3str-convert.dtx Copyright (C) 2013-2017 The LaTeX3 Project +%% File: l3str-convert.dtx Copyright (C) 2013-2018 The LaTeX3 Project \cs_new_protected:Npn \__str_convert_unescape_hex: { \group_begin: diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-esc-name.def b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-esc-name.def index 9edf8df871a..f22018c7357 100644 --- a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-esc-name.def +++ b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-esc-name.def @@ -18,7 +18,7 @@ %% This file is part of the "l3experimental bundle" (The Work in LPPL) %% and all files in that bundle must be distributed together. %% -%% File: l3str-convert.dtx Copyright (C) 2013-2017 The LaTeX3 Project +%% File: l3str-convert.dtx Copyright (C) 2013-2018 The LaTeX3 Project \cs_set_protected:Npn \__str_tmp:w #1#2#3 { \cs_new_protected:cpn { __str_convert_unescape_#2: } diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-esc-string.def b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-esc-string.def index e008b1ee5ad..133f06d086e 100644 --- a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-esc-string.def +++ b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-esc-string.def @@ -18,7 +18,7 @@ %% This file is part of the "l3experimental bundle" (The Work in LPPL) %% and all files in that bundle must be distributed together. %% -%% File: l3str-convert.dtx Copyright (C) 2013-2017 The LaTeX3 Project +%% File: l3str-convert.dtx Copyright (C) 2013-2018 The LaTeX3 Project \group_begin: \char_set_catcode_other:N \^^J \char_set_catcode_other:N \^^M diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-esc-url.def b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-esc-url.def index f27189e72d6..eeff559146d 100644 --- a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-esc-url.def +++ b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-esc-url.def @@ -18,7 +18,7 @@ %% This file is part of the "l3experimental bundle" (The Work in LPPL) %% and all files in that bundle must be distributed together. %% -%% File: l3str-convert.dtx Copyright (C) 2013-2017 The LaTeX3 Project +%% File: l3str-convert.dtx Copyright (C) 2013-2018 The LaTeX3 Project \cs_set_protected:Npn \__str_tmp:w #1#2#3 { \cs_new_protected:cpn { __str_convert_unescape_#2: } diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-format.sty b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-format.sty index 6ed2b3f9273..855c67ce144 100644 --- a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-format.sty +++ b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-format.sty @@ -18,9 +18,9 @@ %% This file is part of the "l3experimental bundle" (The Work in LPPL) %% and all files in that bundle must be distributed together. %% -%% File: l3str-format.dtx Copyright (C) 2012-2017 The LaTeX3 Project +%% File: l3str-format.dtx Copyright (C) 2012-2018 The LaTeX3 Project \RequirePackage{expl3} -\ProvidesExplPackage{l3str-format}{2018/02/21}{} +\ProvidesExplPackage{l3str-format}{2018/03/05}{} {L3 Experimental string formatting} \cs_generate_variant:Nn \use:nn { nf } \cs_generate_variant:Nn \use:nnn { fnf } diff --git a/Master/texmf-dist/tex/latex/l3experimental/xcoffins/xcoffins.sty b/Master/texmf-dist/tex/latex/l3experimental/xcoffins/xcoffins.sty index 355a3334d29..b09b2eb70fa 100644 --- a/Master/texmf-dist/tex/latex/l3experimental/xcoffins/xcoffins.sty +++ b/Master/texmf-dist/tex/latex/l3experimental/xcoffins/xcoffins.sty @@ -20,7 +20,7 @@ %% %% File: xcoffins.dtx Copyright(C) 2010-2012,2014,2016,2017 The LaTeX3 Project \RequirePackage{xparse} -\ProvidesExplPackage{xcoffins}{2018/02/21}{} +\ProvidesExplPackage{xcoffins}{2018/03/05}{} {L3 Experimental design level coffins} \keys_define:nn { coffin } { diff --git a/Master/texmf-dist/tex/latex/l3experimental/xgalley/l3galley.sty b/Master/texmf-dist/tex/latex/l3experimental/xgalley/l3galley.sty index 927b2888eab..8eda49a62f0 100644 --- a/Master/texmf-dist/tex/latex/l3experimental/xgalley/l3galley.sty +++ b/Master/texmf-dist/tex/latex/l3experimental/xgalley/l3galley.sty @@ -19,7 +19,7 @@ %% and all files in that bundle must be distributed together. %% %% File: l3galley.dtx Copyright (C) 1999-2001, 2004-2009 Frank Mittelbach -%% (C) 2010-2017 The LaTeX3 Project +%% (C) 2010-2018 The LaTeX3 Project \RequirePackage{expl3}[2018/02/21] \@ifpackagelater{expl3}{2018/02/21} {} @@ -33,7 +33,7 @@ }% \endinput } -\ProvidesExplPackage{l3galley}{2018/02/21}{} +\ProvidesExplPackage{l3galley}{2018/03/05}{} {L3 Experimental galley code} \int_new:N \l__galley_tmp_int \seq_new:N \g__galley_tmpa_seq diff --git a/Master/texmf-dist/tex/latex/l3experimental/xgalley/xgalley.sty b/Master/texmf-dist/tex/latex/l3experimental/xgalley/xgalley.sty index 06d3bf6ecb5..c7ca5f1732a 100644 --- a/Master/texmf-dist/tex/latex/l3experimental/xgalley/xgalley.sty +++ b/Master/texmf-dist/tex/latex/l3experimental/xgalley/xgalley.sty @@ -19,9 +19,9 @@ %% and all files in that bundle must be distributed together. %% %% File: xgalley.dtx Copyright (C) 1999-2001, 2004-2009 Frank Mittelbach -%% (C) 2010-2012,2014,2016-2017 The LaTeX3 Project +%% (C) 2010-2012,2014,2016-2018 The LaTeX3 Project \RequirePackage{xparse} -\ProvidesExplPackage{xgalley}{2018/02/21}{} +\ProvidesExplPackage{xgalley}{2018/03/05}{} {L3 Experimental galley} \RequirePackage{xparse,xtemplate,l3galley} \clist_new:N \l__galley_tmpa_clist diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex b/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex index 9aa19a4ba78..adfba18d086 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex +++ b/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex @@ -42,8 +42,8 @@ %% l3tl-analysis.dtx (with options: `package') %% l3regex.dtx (with options: `package') %% l3box.dtx (with options: `package') -%% l3coffins.dtx (with options: `package') %% l3color-base.dtx (with options: `package') +%% l3coffins.dtx (with options: `package') %% l3sys.dtx (with options: `package') %% l3deprecation.dtx (with options: `package') %% l3candidates.dtx (with options: `package') @@ -61,8 +61,8 @@ %% This file is part of the "l3kernel bundle" (The Work in LPPL) %% and all files in that bundle must be distributed together. %% -%% File: expl3.dtx Copyright (C) 1990-2017 The LaTeX3 Project -\def\ExplFileDate{2018/02/21}% +%% File: expl3.dtx Copyright (C) 1990-2018 The LaTeX3 Project +\def\ExplFileDate{2018/03/05}% \begingroup \def\next{\endgroup}% \expandafter\ifx\csname PackageError\endcsname\relax @@ -3859,10 +3859,6 @@ \tl_new:N \g_tmpb_tl \tl_new:N \l_tmpa_tl \tl_new:N \l_tmpb_tl -\__kernel_patch_deprecation:nnNNpn { 2017-12-31 } { \tex_lowercase:D } -\cs_new_protected:Npn \tl_to_lowercase:n #1 { \tex_lowercase:D {#1} } -\__kernel_patch_deprecation:nnNNpn { 2017-12-31 } { \tex_uppercase:D } -\cs_new_protected:Npn \tl_to_uppercase:n #1 { \tex_uppercase:D {#1} } %% File: l3str.dtx Copyright (C) 2011-2018 The LaTeX3 Project \group_begin: \cs_set_protected:Npn \__str_tmp:n #1 @@ -9720,8 +9716,6 @@ \str_if_empty:NT #2 { \tl_set:Nn #2 { \q_no_value } } } -\__kernel_patch_deprecation:nnNNpn { 2017-12-31 } { \ior_str_get:NN } -\cs_new_protected:Npn \ior_get_str:NN { \ior_str_get:NN } \__kernel_patch_deprecation:nnNNpn { 2018-12-31 } { \file_log_list: } \cs_new_protected:Npn \file_list: { \file_log_list: } \__kernel_patch_deprecation:nnNNpn { 2018-12-31 } { \ior_show_list: } @@ -11270,7 +11264,7 @@ { is~undefined. } { has~the~properties: #2 . } } -%% File: l3fp.dtx Copyright (C) 2011-2017 The LaTeX3 Project +%% File: l3fp.dtx Copyright (C) 2011-2018 The LaTeX3 Project %% File: l3fp-aux.dtx Copyright(C) 2011-2018 The LaTeX3 Project \cs_new:Npn \__fp_use_none_stop_f:n #1 { \exp_stop_f: } \cs_new:Npn \__fp_use_s:n #1 { #1; } @@ -11469,6 +11463,8 @@ {#1} #2 } \cs_new_eq:NN \__fp_exp_after_stop_f:nw \use_none:nn +\cs_new:Npn \__fp_exp_after_tuple_o:w + { \__fp_exp_after_tuple_f:nw { \exp_after:wN \exp_stop_f: } } \cs_new:Npn \__fp_exp_after_tuple_f:nw #1 \s__fp_tuple \__fp_tuple_chk:w #2 ; { \exp_after:wN \s__fp_tuple @@ -11787,7 +11783,7 @@ \cs_generate_variant:Nn \__fp_invalid_operation_o:nw { f } \cs_new:Npn \__fp_error:nnnn { \__kernel_msg_expandable_error:nnnnn { kernel } } -\cs_generate_variant:Nn \__fp_error:nnnn { nnf, nff } +\cs_generate_variant:Nn \__fp_error:nnnn { nnf, nff , nfff } \__kernel_msg_new:nnnn { kernel } { unknown-fpu-exception } { The~FPU~exception~'#1'~is~not~known:~ @@ -11837,50 +11833,13 @@ { \__fp_parse_function:NNN \__fp_round_o:Nw \__fp_round_to_pinf:NNN } \cs_new:Npn \__fp_parse_word_round:N #1#2 { - \if_meaning:w + #2 - \__fp_parse_round:Nw \__fp_round_to_pinf:NNN - \else: - \if_meaning:w 0 #2 - \__fp_parse_round:Nw \__fp_round_to_zero:NNN - \else: - \if_meaning:w - #2 - \__fp_parse_round:Nw \__fp_round_to_ninf:NNN - \fi: - \fi: - \fi: \__fp_parse_function:NNN \__fp_round_o:Nw \__fp_round_to_nearest:NNN #1 #2 } -\__kernel_debug:TF - { - \__kernel_deprecation_code:nn - { - \cs_set_eq:NN \__fp_parse_round:Nw - \__fp_parse_round_deprecation_error:Nw - } - { - \cs_set_eq:NN \__fp_parse_round:Nw - \__fp_parse_round_no_error:Nw - } - \cs_new:Npn \__fp_parse_round_deprecation_error:Nw - #1 #2 \__fp_round_to_nearest:NNN #3#4 - { - \__fp_error:nnfn { fp-deprecated } { round#4() } - { - \str_case:nn {#2} - { { + } { ceil } { 0 } { trunc } { - } { floor } } - } { } - #2 #1 #3 - } - \cs_new:Npn \__fp_parse_round_no_error:Nw - #1 #2 \__fp_round_to_nearest:NNN #3#4 { #2 #1 #3 } - \cs_new_eq:NN \__fp_parse_round:Nw \__fp_parse_round_no_error:Nw - } - { - \cs_new:Npn \__fp_parse_round:Nw - #1 #2 \__fp_round_to_nearest:NNN #3#4 { #2 #1 #3 } - } +\cs_new:Npn \__fp_parse_round:Nw #1 #2 \__fp_round_to_nearest:NNN #3#4 + { #2 #1 #3 } + \int_const:Nn \c__fp_five_int { 5 } \cs_new:Npn \__fp_round_return_one: { \exp_after:wN 1 \exp_after:wN \exp_stop_f: \exp:w } @@ -12934,15 +12893,23 @@ \__fp_parse_expand:w #1 \s__fp_mark \__fp_parse_infix_end:N \s__fp_stop + \exp_end: } \cs_new:Npn \__fp_parse_after:ww - #1@ \__fp_parse_infix_end:N \s__fp_stop - { \exp_end: #1 } + #1@ \__fp_parse_infix_end:N \s__fp_stop #2 { #2 #1 } \cs_new:Npn \__fp_parse_o:n #1 { - \exp_after:wN \exp_after:wN - \exp_after:wN \__fp_exp_after_o:w - \__fp_parse:n {#1} + \exp:w + \exp_after:wN \__fp_parse_after:ww + \exp:w + \__fp_parse_operand:Nw \c__fp_prec_end_int + \__fp_parse_expand:w #1 + \s__fp_mark \__fp_parse_infix_end:N + \s__fp_stop + { + \exp_end_continue_f:w + \__fp_exp_after_any_f:nw { \exp_after:wN \exp_stop_f: } + } } \cs_new:Npn \__fp_parse_operand:Nw #1 { @@ -13283,7 +13250,7 @@ \if_meaning:w \c_zero_fp #3 0 \else: - \if_case:w \__fp_compare_back:ww #8 #2 \exp_stop_f: + \if_case:w \__fp_compare_back_any:ww #8 #2 \exp_stop_f: #5 \or: #6 \or: #7 \else: #4 \fi: \fi: @@ -13561,9 +13528,12 @@ \exp_after:wN \__fp_compare_return:w \exp:w \exp_end_continue_f:w \__fp_parse:n {#1} } -\cs_new:Npn \__fp_compare_return:w \s__fp \__fp_chk:w #1#2; +\cs_new:Npn \__fp_compare_return:w #1#2#3; { - \if_meaning:w 0 #1 + \if_charcode:w 0 + \__fp_if_type_fp:NTwFw + #1 { \use_i_delimit_by_q_stop:nw #3 \q_stop } + \s__fp 1 \q_stop \prg_return_false: \else: \prg_return_true: @@ -13582,9 +13552,26 @@ } \cs_new:Npn \__fp_compare_aux:wn #1; #2 { - \exp_after:wN \__fp_compare_back:ww + \exp_after:wN \__fp_compare_back_any:ww \exp:w \exp_end_continue_f:w \__fp_parse:n {#2} #1; } +\cs_new:Npn \__fp_compare_back_any:ww #1#2; #3 + { + \__fp_if_type_fp:NTwFw + #1 { \__fp_if_type_fp:NTwFw #3 \use_i:nn \s__fp \use_ii:nn \q_stop } + \s__fp \use_ii:nn \q_stop + \__fp_compare_back:ww + { + \cs:w + __fp + \__fp_type_from_scan:N #1 + _compare_back + \__fp_type_from_scan:N #3 + :ww + \cs_end: + } + #1#2 ; #3 + } \cs_new:Npn \__fp_compare_back:ww \s__fp \__fp_chk:w #1 #2 #3; \s__fp \__fp_chk:w #4 #5 #6; @@ -13613,6 +13600,34 @@ \exp_stop_f: } \cs_new:Npn \__fp_compare_nan:w #1 \fi: \exp_stop_f: { 2 \exp_stop_f: } +\cs_new:Npn \__fp_compare_back_tuple:ww #1; #2; { 2 } +\cs_new:Npn \__fp_tuple_compare_back:ww #1; #2; { 2 } +\cs_new:Npn \__fp_tuple_compare_back_tuple:ww + \s__fp_tuple \__fp_tuple_chk:w #1; + \s__fp_tuple \__fp_tuple_chk:w #2; + { + \int_compare:nNnTF { \__fp_array_count:n {#1} } = { \__fp_array_count:n {#2} } + { + \__int_value:w 0 + \__fp_tuple_compare_back_loop:w + #1 { \s__fp \__prg_break: } ; @ + #2 { \s__fp \__prg_break: } ; + \__prg_break_point: + \exp_stop_f: + } + { 2 } + } +\cs_new:Npn \__fp_tuple_compare_back_loop:w #1#2 ; #3 @ #4#5 ; + { + \use_none:n #1 + \use_none:n #4 + \if_int_compare:w + \__fp_compare_back_any:ww #1 #2 ; #4 #5 ; = 0 \exp_stop_f: + \else: + 2 \exp_after:wN \__prg_break: + \fi: + \__fp_tuple_compare_back_loop:w #3 @ + } \cs_new:Npn \__fp_compare_npos:nwnw #1#2; #3#4; { \if_int_compare:w #1 = #3 \exp_stop_f: @@ -13697,7 +13712,20 @@ \exp:w \exp_end_continue_f:w \__fp_parse:n {#3} } \cs_generate_variant:Nn \fp_step_function:nnnN { nnnc } -\cs_new:Npn \__fp_step:wwwN #1 ; \s__fp \__fp_chk:w #2#3#4 ; #5; #6 +\cs_new:Npn \__fp_step:wwwN #1#2; #3#4; #5#6; #7 + { + \__fp_if_type_fp:NTwFw #1 { } \s__fp \__prg_break: \q_stop + \__fp_if_type_fp:NTwFw #3 { } \s__fp \__prg_break: \q_stop + \__fp_if_type_fp:NTwFw #5 { } \s__fp \__prg_break: \q_stop + \use_i:nnnn { \__fp_step_fp:wwwN #1#2; #3#4; #5#6; #7 } + \__prg_break_point: + \use:n + { + \__fp_error:nfff { fp-step-tuple } { \fp_to_tl:n { #1#2 ; } } + { \fp_to_tl:n { #3#4 ; } } { \fp_to_tl:n { #5#6 ; } } + } + } +\cs_new:Npn \__fp_step_fp:wwwN #1 ; \s__fp \__fp_chk:w #2#3#4 ; #5; #6 { \token_if_eq_meaning:NNTF #2 1 { @@ -13758,6 +13786,8 @@ \fp_step_function:nnnN {#3} {#4} {#5} #2 \__prg_break_point:Nn \scan_stop: { \int_gdecr:N \g__prg_map_int } } +\__kernel_msg_new:nnn { kernel } { fp-step-tuple } + { Tuple~argument~in~fp_step_...~{#1}{#2}{#3}. } \__kernel_msg_new:nnn { kernel } { fp-bad-step } { Invalid~step~size~#2~in~step~function~#3. } \__kernel_msg_new:nnn { kernel } { fp-tiny-step } @@ -13809,7 +13839,7 @@ { \fi: \fi: #2 } \cs_new:Npn \__fp_minmax_break_o:w #1 \fi: \fi: #2 \s__fp #3; #4; { \fi: \__fp_exp_after_o:w \s__fp #3; } -\cs_new:cpn { __fp_not_o:w } #1 \s__fp \__fp_chk:w #2#3; @ +\cs_new:Npn \__fp_not_o:w #1 \s__fp \__fp_chk:w #2#3; @ { \if_meaning:w 0 #2 \exp_after:wN \exp_after:wN \exp_after:wN \c_one_fp @@ -13817,6 +13847,7 @@ \exp_after:wN \exp_after:wN \exp_after:wN \c_zero_fp \fi: } +\cs_new:Npn \__fp_tuple_not_o:w #1 @ { \exp_after:wN \c_zero_fp } \group_begin: \char_set_catcode_letter:N & \char_set_catcode_letter:N | @@ -13827,19 +13858,36 @@ \fi: \__fp_exp_after_o:w } + \cs_new:Npn \__fp_&_tuple_o:ww #1 \s__fp \__fp_chk:w #2#3; + { + \if_meaning:w 0 #2 #1 + \__fp_and_return:wNw \s__fp \__fp_chk:w #2#3; + \fi: + \__fp_exp_after_tuple_o:w + } + \cs_new:Npn \__fp_tuple_&_o:ww #1; { \__fp_exp_after_o:w } + \cs_new:Npn \__fp_tuple_&_tuple_o:ww #1; { \__fp_exp_after_tuple_o:w } \cs_new:Npn \__fp_|_o:ww { \__fp_&_o:ww \else: } + \cs_new:Npn \__fp_|_tuple_o:ww { \__fp_&_tuple_o:ww \else: } + \cs_new:Npn \__fp_tuple_|_o:ww #1; #2; { \__fp_exp_after_tuple_o:w #1; } + \cs_new:Npn \__fp_tuple_|_tuple_o:ww #1; #2; { \__fp_exp_after_tuple_o:w #1; } \group_end: -\cs_new:Npn \__fp_and_return:wNw #1; \fi: #2#3; { \fi: #2 #1; } -\cs_new:Npn \__fp_ternary:NwwN #1 #2@ #3@ #4 +\cs_new:Npn \__fp_and_return:wNw #1; \fi: #2; + { \fi: \__fp_exp_after_o:w #1; } +\cs_new:Npn \__fp_ternary:NwwN #1 #2#3@ #4@ #5 { - \if_meaning:w \__fp_parse_infix_::N #4 - \__fp_ternary_loop:Nw - #2 - \s__fp \__fp_chk:w { \__fp_ternary_loop_break:w } ; - \__fp_ternary_break_point:n { \exp_after:wN \__fp_ternary_auxi:NwwN } + \if_meaning:w \__fp_parse_infix_::N #5 + \if_charcode:w 0 + \__fp_if_type_fp:NTwFw + #2 { \use_i:nn \use_i_delimit_by_q_stop:nw #3 \q_stop } + \s__fp 1 \q_stop + \exp_after:wN \exp_after:wN \exp_after:wN \__fp_ternary_auxii:NwwN + \else: + \exp_after:wN \exp_after:wN \exp_after:wN \__fp_ternary_auxi:NwwN + \fi: \exp_after:wN #1 \exp:w \exp_end_continue_f:w - \__fp_exp_after_array_f:w #3 \s__fp_stop + \__fp_exp_after_array_f:w #4 \s__fp_stop \exp_after:wN @ \exp:w \__fp_parse_operand:Nw \c__fp_prec_colon_int @@ -13850,25 +13898,11 @@ \exp_after:wN \__fp_parse_continue:NwN \exp_after:wN #1 \exp:w \exp_end_continue_f:w - \__fp_exp_after_array_f:w #3 \s__fp_stop - \exp_after:wN #4 + \__fp_exp_after_array_f:w #4 \s__fp_stop + \exp_after:wN #5 \exp_after:wN #1 \fi: } -\cs_new:Npn \__fp_ternary_loop_break:w - #1 \fi: #2 \__fp_ternary_break_point:n #3 - { - 0 = 0 \exp_stop_f: \fi: - \exp_after:wN \__fp_ternary_auxii:NwwN - } -\cs_new:Npn \__fp_ternary_loop:Nw \s__fp \__fp_chk:w #1#2; - { - \if_int_compare:w #1 > 0 \exp_stop_f: - \exp_after:wN \__fp_ternary_map_break: - \fi: - \__fp_ternary_loop:Nw - } -\cs_new:Npn \__fp_ternary_map_break: #1 \__fp_ternary_break_point:n #2 {#2} \cs_new:Npn \__fp_ternary_auxi:NwwN #1#2@#3@#4 { \exp_after:wN \__fp_parse_continue:NwN @@ -21184,26 +21218,29 @@ } \cs_generate_variant:Nn \__box_show:NNnn { NNff } \cs_new_protected:Npn \hbox:n #1 - { \tex_hbox:D \scan_stop: { \group_begin: #1 \group_end: } } + { \tex_hbox:D \scan_stop: { \color_group_begin: #1 \color_group_end: } } \__kernel_patch:nnNNpn { \__kernel_chk_var_local:N #1 } { } \cs_new_protected:Npn \hbox_set:Nn #1#2 - { \tex_setbox:D #1 \tex_hbox:D { \group_begin: #2 \group_end: } } + { \tex_setbox:D #1 \tex_hbox:D { \color_group_begin: #2 \color_group_end: } } \__kernel_patch:nnNNpn { \__kernel_chk_var_global:N #1 } { } \cs_new_protected:Npn \hbox_gset:Nn #1#2 - { \tex_global:D \tex_setbox:D #1 \tex_hbox:D { \group_begin: #2 \group_end: } } + { + \tex_global:D \tex_setbox:D #1 \tex_hbox:D + { \color_group_begin: #2 \color_group_end: } + } \cs_generate_variant:Nn \hbox_set:Nn { c } \cs_generate_variant:Nn \hbox_gset:Nn { c } \__kernel_patch:nnNNpn { \__kernel_chk_var_local:N #1 } { } \cs_new_protected:Npn \hbox_set_to_wd:Nnn #1#2#3 { \tex_setbox:D #1 \tex_hbox:D to \__dim_eval:n {#2} - { \group_begin: #3 \group_end: } + { \color_group_begin: #3 \color_group_end: } } \__kernel_patch:nnNNpn { \__kernel_chk_var_global:N #1 } { } \cs_new_protected:Npn \hbox_gset_to_wd:Nnn #1#2#3 { \tex_global:D \tex_setbox:D #1 \tex_hbox:D to \__dim_eval:n {#2} - { \group_begin: #3 \group_end: } + { \color_group_begin: #3 \color_group_end: } } \cs_generate_variant:Nn \hbox_set_to_wd:Nnn { c } \cs_generate_variant:Nn \hbox_gset_to_wd:Nnn { c } @@ -21212,20 +21249,20 @@ { \tex_setbox:D #1 \tex_hbox:D \c_group_begin_token - \group_begin: + \color_group_begin: } \__kernel_patch:nnNNpn { \__kernel_chk_var_global:N #1 } { } \cs_new_protected:Npn \hbox_gset:Nw #1 { \tex_global:D \tex_setbox:D #1 \tex_hbox:D \c_group_begin_token - \group_begin: + \color_group_begin: } \cs_generate_variant:Nn \hbox_set:Nw { c } \cs_generate_variant:Nn \hbox_gset:Nw { c } \cs_new_protected:Npn \hbox_set_end: { - \group_end: + \color_group_end: \c_group_end_token } \cs_new_eq:NN \hbox_gset_end: \hbox_set_end: @@ -21234,24 +21271,24 @@ { \tex_setbox:D #1 \tex_hbox:D to \__dim_eval:n {#2} \c_group_begin_token - \group_begin: + \color_group_begin: } \__kernel_patch:nnNNpn { \__kernel_chk_var_global:N #1 } { } \cs_new_protected:Npn \hbox_gset_to_wd:Nnw #1#2 { \tex_global:D \tex_setbox:D #1 \tex_hbox:D to \__dim_eval:n {#2} \c_group_begin_token - \group_begin: + \color_group_begin: } \cs_generate_variant:Nn \hbox_set_to_wd:Nnw { c } \cs_generate_variant:Nn \hbox_gset_to_wd:Nnw { c } \cs_new_protected:Npn \hbox_to_wd:nn #1#2 { \tex_hbox:D to \__dim_eval:n {#1} - { \group_begin: #2 \group_end: } + { \color_group_begin: #2 \color_group_end: } } \cs_new_protected:Npn \hbox_to_zero:n #1 - { \tex_hbox:D to \c_zero_dim { \group_begin: #1 \group_end: } } + { \tex_hbox:D to \c_zero_dim { \color_group_begin: #1 \color_group_end: } } \cs_new_protected:Npn \hbox_overlap_left:n #1 { \hbox_to_zero:n { \tex_hss:D #1 } } \cs_new_protected:Npn \hbox_overlap_right:n #1 @@ -21261,30 +21298,30 @@ \cs_generate_variant:Nn \hbox_unpack:N { c } \cs_generate_variant:Nn \hbox_unpack_clear:N { c } \cs_new_protected:Npn \vbox:n #1 - { \tex_vbox:D { \group_begin: #1 \par \group_end: } } + { \tex_vbox:D { \color_group_begin: #1 \color_group_end: } } \cs_new_protected:Npn \vbox_top:n #1 - { \tex_vtop:D { \group_begin: #1 \par \group_end: } } + { \tex_vtop:D { \color_group_begin: #1 \color_group_end: } } \cs_new_protected:Npn \vbox_to_ht:nn #1#2 { \tex_vbox:D to \__dim_eval:n {#1} - { \group_begin: #2 \par \group_end: } + { \color_group_begin: #2 \color_group_end: } } \cs_new_protected:Npn \vbox_to_zero:n #1 { \tex_vbox:D to \c_zero_dim - { \group_begin: #1 \par \group_end: } + { \color_group_begin: #1 \color_group_end: } } \__kernel_patch:nnNNpn { \__kernel_chk_var_local:N #1 } { } \cs_new_protected:Npn \vbox_set:Nn #1#2 { \tex_setbox:D #1 \tex_vbox:D - { \group_begin: #2 \par \group_end: } + { \color_group_begin: #2 \color_group_end: } } \__kernel_patch:nnNNpn { \__kernel_chk_var_global:N #1 } { } \cs_new_protected:Npn \vbox_gset:Nn #1#2 { \tex_global:D \tex_setbox:D #1 \tex_vbox:D - { \group_begin: #2 \par \group_end: } + { \color_group_begin: #2 \color_group_end: } } \cs_generate_variant:Nn \vbox_set:Nn { c } \cs_generate_variant:Nn \vbox_gset:Nn { c } @@ -21292,13 +21329,13 @@ \cs_new_protected:Npn \vbox_set_top:Nn #1#2 { \tex_setbox:D #1 \tex_vtop:D - { \group_begin: #2 \par \group_end: } + { \color_group_begin: #2 \color_group_end: } } \__kernel_patch:nnNNpn { \__kernel_chk_var_global:N #1 } { } \cs_new_protected:Npn \vbox_gset_top:Nn #1#2 { \tex_global:D \tex_setbox:D #1 \tex_vtop:D - { \group_begin: #2 \par \group_end: } + { \color_group_begin: #2 \color_group_end: } } \cs_generate_variant:Nn \vbox_set_top:Nn { c } \cs_generate_variant:Nn \vbox_gset_top:Nn { c } @@ -21306,13 +21343,13 @@ \cs_new_protected:Npn \vbox_set_to_ht:Nnn #1#2#3 { \tex_setbox:D #1 \tex_vbox:D to \__dim_eval:n {#2} - { \group_begin: #3 \par \group_end: } + { \color_group_begin: #3 \color_group_end: } } \__kernel_patch:nnNNpn { \__kernel_chk_var_global:N #1 } { } \cs_new_protected:Npn \vbox_gset_to_ht:Nnn #1#2#3 { \tex_global:D \tex_setbox:D #1 \tex_vbox:D to \__dim_eval:n {#2} - { \group_begin: #3 \par \group_end: } + { \color_group_begin: #3 \color_group_end: } } \cs_generate_variant:Nn \vbox_set_to_ht:Nnn { c } \cs_generate_variant:Nn \vbox_gset_to_ht:Nnn { c } @@ -21321,21 +21358,20 @@ { \tex_setbox:D #1 \tex_vbox:D \c_group_begin_token - \group_begin: + \color_group_begin: } \__kernel_patch:nnNNpn { \__kernel_chk_var_global:N #1 } { } \cs_new_protected:Npn \vbox_gset:Nw #1 { \tex_global:D \tex_setbox:D #1 \tex_vbox:D \c_group_begin_token - \group_begin: + \color_group_begin: } \cs_generate_variant:Nn \vbox_set:Nw { c } \cs_generate_variant:Nn \vbox_gset:Nw { c } \cs_new_protected:Npn \vbox_set_end: { - \par - \group_end: + \color_group_end: \c_group_end_token } \cs_new_eq:NN \vbox_gset_end: \vbox_set_end: @@ -21344,14 +21380,14 @@ { \tex_setbox:D #1 \tex_vbox:D to \__dim_eval:n {#2} \c_group_begin_token - \group_begin: + \color_group_begin: } \__kernel_patch:nnNNpn { \__kernel_chk_var_global:N #1 } { } \cs_new_protected:Npn \vbox_gset_to_ht:Nnw #1#2 { \tex_global:D \tex_setbox:D #1 \tex_vbox:D to \__dim_eval:n {#2} \c_group_begin_token - \group_begin: + \color_group_begin: } \cs_generate_variant:Nn \vbox_set_to_ht:Nnw { c } \cs_generate_variant:Nn \vbox_gset_to_ht:Nnw { c } @@ -21675,7 +21711,34 @@ \__kernel_patch_deprecation:nnNNpn { 2018-12-31 } { \box_use_drop:c } \cs_new_protected:Npn \box_use_clear:c { \box_use_drop:c } -%% File: l3coffins.dtx Copyright(C) 2010-2017 The LaTeX3 Project +%% File: l3color-base.dtx Copyright(C) 2011,2012,2014,2016-2018 The LaTeX3 Project +\cs_new_eq:NN \color_group_begin: \group_begin: +\cs_new_protected:Npn \color_group_end: + { + \par + \group_end: + } +\cs_new_protected:Npn \color_ensure_current: + { + \driver_color_pickup:N \l__color_current_tl + \__color_select:V \l__color_current_tl + } +\cs_new_protected:Npn \__color_select:n #1 + { \__color_select:w #1 \q_stop } +\cs_generate_variant:Nn \__color_select:n { V } +\cs_new_protected:Npn \__color_select:w #1 ~ #2 \q_stop + { \use:c { __color_select_ #1 :w } #2 \q_stop } +\cs_new_protected:Npn \__color_select_cmyk:w #1 ~ #2 ~ #3 ~ #4 \q_stop + { \driver_color_cmyk:nnnn {#1} {#2} {#3} {#4} } +\cs_new_protected:Npn \__color_select_gray:w #1 \q_stop + { \driver_color_gray:n {#1} } +\cs_new_protected:Npn \__color_select_rgb:w #1 ~ #2 ~ #3 \q_stop + { \driver_color_rgb:nnn {#1} {#2} {#3} } +\cs_new_protected:Npn \__color_select_spot:w #1 ~ #2 \q_stop + { \driver_color_spot:nn {#1} {#2} } +\tl_new:N \l__color_current_tl +\tl_set:Nn \l__color_current_tl { gray~0 } +%% File: l3coffins.dtx Copyright(C) 2010-2018 The LaTeX3 Project \box_new:N \l__coffin_internal_box \dim_new:N \l__coffin_internal_dim \tl_new:N \l__coffin_internal_tl @@ -21853,9 +21916,7 @@ } \cs_generate_variant:Nn \coffin_set_eq:NN { c , Nc , cc } \coffin_new:N \c_empty_coffin -\debug_suspend: -\hbox_set:Nn \c_empty_coffin { } -\debug_resume: +\tex_setbox:D \c_empty_coffin = \tex_hbox:D { } \coffin_new:N \l__coffin_aligned_coffin \coffin_new:N \l__coffin_aligned_internal_coffin \coffin_new:N \l_tmpa_coffin @@ -22477,34 +22538,6 @@ Size~of~coffin~#1 : #2 \\ Poles~of~coffin~#1 : #3 . } -%% File: l3color-base.dtx Copyright(C) 2011,2012,2014,2016-2018 The LaTeX3 Project -\cs_new_eq:NN \color_group_begin: \group_begin: -\cs_new_protected:Npn \color_group_end: - { - \par - \group_end: - } -\cs_new_protected:Npn \color_ensure_current: - { - \driver_color_pickup:N \l__color_current_tl - \__color_select:V \l__color_current_tl - \group_insert_after:N \driver_color_reset: - } -\cs_new_protected:Npn \__color_select:n #1 - { \__color_select:w #1 \q_stop } -\cs_generate_variant:Nn \__color_select:n { V } -\cs_new_protected:Npn \__color_select:w #1 ~ #2 \q_stop - { \use:c { __color_select_ #1 :w } #2 \q_stop } -\cs_new_protected:Npn \__color_select_cmyk:w #1 ~ #2 ~ #3 ~ #4 \q_stop - { \driver_color_cmyk:nnnn {#1} {#2} {#3} {#4} } -\cs_new_protected:Npn \__color_select_gray:w #1 \q_stop - { \driver_color_gray:n {#1} } -\cs_new_protected:Npn \__color_select_rgb:w #1 ~ #2 ~ #3 \q_stop - { \driver_color_rgb:nnn {#1} {#2} {#3} } -\cs_new_protected:Npn \__color_select_spot:w #1 ~ #2 \q_stop - { \driver_color_spot:nn {#1} {#2} } -\tl_new:N \l__color_current_tl -\tl_set:Nn \l__color_current_tl { gray~0 } %% File: l3sys.dtx Copyright (C) 2015-2017 The LaTeX3 Project \str_const:Nx \c_sys_jobname_str { \tex_jobname:D } \int_const:Nn \c_sys_minute_int @@ -22602,6 +22635,8 @@ { \tl_to_str:n {#3} } { \token_to_str:N #1 } { \tl_to_str:n {#2} } } } +\__deprecation_error:Nnn \file_if_exist_input:nT { \file_if_exist:nT and~ \file_input:n } { 2018-03-05 } +\__deprecation_error:Nnn \file_if_exist_input:nTF { \file_if_exist:nT and~ \file_input:n } { 2018-03-05 } \__deprecation_error:Nnn \c_job_name_tl { \c_sys_jobname_str } { 2017-01-01 } \__deprecation_error:Nnn \dim_case:nnn { \dim_case:nnF } { 2015-07-14 } \__deprecation_error:Nnn \int_case:nnn { \int_case:nnF } { 2015-07-14 } @@ -22611,6 +22646,7 @@ \__deprecation_error:Nnn \int_to_binary:n { \int_to_bin:n } { 2016-01-05 } \__deprecation_error:Nnn \int_to_hexadecimal:n { \int_to_hex:n } { 2016-01-05 } \__deprecation_error:Nnn \int_to_octal:n { \int_to_oct:n } { 2016-01-05 } +\__deprecation_error:Nnn \ior_get_str:NN { \ior_str_get:NN } { 2018-03-05 } \__deprecation_error:Nnn \luatex_if_engine_p: { \sys_if_engine_luatex_p: } { 2017-01-01 } \__deprecation_error:Nnn \luatex_if_engine:F { \sys_if_engine_luatex:F } { 2017-01-01 } \__deprecation_error:Nnn \luatex_if_engine:T { \sys_if_engine_luatex:T } { 2017-01-01 } @@ -22629,6 +22665,8 @@ \__deprecation_error:Nnn \str_case_x:nnn { \str_case_x:nnF } { 2015-07-14 } \__deprecation_error:Nnn \tl_case:cnn { \tl_case:cnF } { 2015-07-14 } \__deprecation_error:Nnn \tl_case:Nnn { \tl_case:NnF } { 2015-07-14 } +\__deprecation_error:Nnn \tl_to_lowercase:n { \tex_lowercase:D } { 2018-03-05 } +\__deprecation_error:Nnn \tl_to_uppercase:n { \tex_uppercase:D } { 2018-03-05 } \__deprecation_error:Nnn \xetex_if_engine_p: { \sys_if_engine_xetex_p: } { 2017-01-01 } \__deprecation_error:Nnn \xetex_if_engine:F { \sys_if_engine_xetex:F } { 2017-01-01 } \__deprecation_error:Nnn \xetex_if_engine:T { \sys_if_engine_xetex:T } { 2017-01-01 } @@ -23063,22 +23101,6 @@ {#2} { \__file_input:V \l__file_full_name_str } } -\__kernel_patch_deprecation:nnNNpn { 2017-12-31 } - { \file_if_exist:nTF and~ \file_input:n } -\cs_new_protected:Npn \file_if_exist_input:nTF #1#2#3 - { - \file_get_full_name:nN {#1} \l__file_full_name_str - \str_if_empty:NTF \l__file_full_name_str - {#3} { #2 \__file_input:V \l__file_full_name_str } - } -\__kernel_patch_deprecation:nnNNpn { 2017-12-31 } - { \file_if_exist:nT and~ \file_input:n } -\cs_new_protected:Npn \file_if_exist_input:nT #1#2 - { - \file_get_full_name:nN {#1} \l__file_full_name_str - \str_if_empty:NF \l__file_full_name_str - { #2 \__file_input:V \l__file_full_name_str } - } \cs_new_protected:Npn \file_input_stop: { \tex_endinput:D } \cs_if_exist:NTF \pdftex_uniformdeviate:D { diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex b/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex index 09c9c25667e..3c97eedcba2 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex +++ b/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex @@ -18,8 +18,8 @@ %% This file is part of the "l3kernel bundle" (The Work in LPPL) %% and all files in that bundle must be distributed together. %% -%% File: expl3.dtx Copyright (C) 1990-2017 The LaTeX3 Project -\def\ExplFileDate{2018/02/21}% +%% File: expl3.dtx Copyright (C) 1990-2018 The LaTeX3 Project +\def\ExplFileDate{2018/03/05}% \let\ExplLoaderFileDate\ExplFileDate \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 a64a5919bfd..8199ce752f8 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/expl3.sty +++ b/Master/texmf-dist/tex/latex/l3kernel/expl3.sty @@ -18,8 +18,8 @@ %% This file is part of the "l3kernel bundle" (The Work in LPPL) %% and all files in that bundle must be distributed together. %% -%% File: expl3.dtx Copyright (C) 1990-2017 The LaTeX3 Project -\def\ExplFileDate{2018/02/21}% +%% File: expl3.dtx Copyright (C) 1990-2018 The LaTeX3 Project +\def\ExplFileDate{2018/03/05}% \let\ExplLoaderFileDate\ExplFileDate \ProvidesPackage{expl3} [% diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3basics.sty b/Master/texmf-dist/tex/latex/l3kernel/l3basics.sty deleted file mode 100644 index 6513f7bea98..00000000000 --- a/Master/texmf-dist/tex/latex/l3kernel/l3basics.sty +++ /dev/null @@ -1,50 +0,0 @@ -%% -%% This is file `l3basics.sty', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% l3oldmodules.dtx (with options: `l3basics,oldmodules') -%% -%% Copyright (C) 1990-2018 The LaTeX3 Project -%% -%% It may be distributed and/or modified under the conditions of -%% the LaTeX Project Public License (LPPL), either version 1.3c of -%% this license or (at your option) any later version. The latest -%% version of this license is in the file: -%% -%% https://www.latex-project.org/lppl.txt -%% -%% This file is part of the "l3kernel bundle" (The Work in LPPL) -%% and all files in that bundle must be distributed together. -%% -%% File: l3oldmodules.dtx Copyright (C) 2014-2018 The LaTeX3 Project -\def\old@liii@module@name -{l3basics} -\ProvidesPackage\old@liii@module@name - [% - 2017/03/18 Obsolete L3 package - ] -\typeout{*****************************************************************} -\typeout{** } -\typeout{** Package \old@liii@module@name\space is obsolete and has been removed!} -\typeout{** } -\typeout{** Its functionality is now only provided as part of the expl3 package.} -\typeout{** } -\typeout{** After showing you an error message you can hit <return> we will continue} -\typeout{** for now by loading expl3 for you. However, the old packages will be} -\typeout{** removed entirely at the end of 2017.} -\typeout{** } -\typeout{** Therefore, please replace '\string\usepackage{\old@liii@module@name}'} -\typeout{** with '\string\usepackage{expl3}' in your documents as soon as possible.} -\typeout{** } -\typeout{*******************************************************************} -\PackageError - \old@liii@module@name{This package is obsolete --- - use 'expl3' instead} - \@ehc -\RequirePackage{expl3} - -%% -%% -%% End of file `l3basics.sty'. diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3bootstrap.sty b/Master/texmf-dist/tex/latex/l3kernel/l3bootstrap.sty deleted file mode 100644 index de805c07768..00000000000 --- a/Master/texmf-dist/tex/latex/l3kernel/l3bootstrap.sty +++ /dev/null @@ -1,50 +0,0 @@ -%% -%% This is file `l3bootstrap.sty', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% l3oldmodules.dtx (with options: `l3bootstrap,oldmodules') -%% -%% Copyright (C) 1990-2018 The LaTeX3 Project -%% -%% It may be distributed and/or modified under the conditions of -%% the LaTeX Project Public License (LPPL), either version 1.3c of -%% this license or (at your option) any later version. The latest -%% version of this license is in the file: -%% -%% https://www.latex-project.org/lppl.txt -%% -%% This file is part of the "l3kernel bundle" (The Work in LPPL) -%% and all files in that bundle must be distributed together. -%% -%% File: l3oldmodules.dtx Copyright (C) 2014-2018 The LaTeX3 Project -\def\old@liii@module@name -{l3bootstrap} -\ProvidesPackage\old@liii@module@name - [% - 2017/03/18 Obsolete L3 package - ] -\typeout{*****************************************************************} -\typeout{** } -\typeout{** Package \old@liii@module@name\space is obsolete and has been removed!} -\typeout{** } -\typeout{** Its functionality is now only provided as part of the expl3 package.} -\typeout{** } -\typeout{** After showing you an error message you can hit <return> we will continue} -\typeout{** for now by loading expl3 for you. However, the old packages will be} -\typeout{** removed entirely at the end of 2017.} -\typeout{** } -\typeout{** Therefore, please replace '\string\usepackage{\old@liii@module@name}'} -\typeout{** with '\string\usepackage{expl3}' in your documents as soon as possible.} -\typeout{** } -\typeout{*******************************************************************} -\PackageError - \old@liii@module@name{This package is obsolete --- - use 'expl3' instead} - \@ehc -\RequirePackage{expl3} - -%% -%% -%% End of file `l3bootstrap.sty'. diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3box.sty b/Master/texmf-dist/tex/latex/l3kernel/l3box.sty deleted file mode 100644 index c183f86ce4e..00000000000 --- a/Master/texmf-dist/tex/latex/l3kernel/l3box.sty +++ /dev/null @@ -1,50 +0,0 @@ -%% -%% This is file `l3box.sty', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% l3oldmodules.dtx (with options: `l3box,oldmodules') -%% -%% Copyright (C) 1990-2018 The LaTeX3 Project -%% -%% It may be distributed and/or modified under the conditions of -%% the LaTeX Project Public License (LPPL), either version 1.3c of -%% this license or (at your option) any later version. The latest -%% version of this license is in the file: -%% -%% https://www.latex-project.org/lppl.txt -%% -%% This file is part of the "l3kernel bundle" (The Work in LPPL) -%% and all files in that bundle must be distributed together. -%% -%% File: l3oldmodules.dtx Copyright (C) 2014-2018 The LaTeX3 Project -\def\old@liii@module@name -{l3box} -\ProvidesPackage\old@liii@module@name - [% - 2017/03/18 Obsolete L3 package - ] -\typeout{*****************************************************************} -\typeout{** } -\typeout{** Package \old@liii@module@name\space is obsolete and has been removed!} -\typeout{** } -\typeout{** Its functionality is now only provided as part of the expl3 package.} -\typeout{** } -\typeout{** After showing you an error message you can hit <return> we will continue} -\typeout{** for now by loading expl3 for you. However, the old packages will be} -\typeout{** removed entirely at the end of 2017.} -\typeout{** } -\typeout{** Therefore, please replace '\string\usepackage{\old@liii@module@name}'} -\typeout{** with '\string\usepackage{expl3}' in your documents as soon as possible.} -\typeout{** } -\typeout{*******************************************************************} -\PackageError - \old@liii@module@name{This package is obsolete --- - use 'expl3' instead} - \@ehc -\RequirePackage{expl3} - -%% -%% -%% End of file `l3box.sty'. diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3candidates.sty b/Master/texmf-dist/tex/latex/l3kernel/l3candidates.sty deleted file mode 100644 index 31ef689d272..00000000000 --- a/Master/texmf-dist/tex/latex/l3kernel/l3candidates.sty +++ /dev/null @@ -1,50 +0,0 @@ -%% -%% This is file `l3candidates.sty', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% l3oldmodules.dtx (with options: `l3candidates,oldmodules') -%% -%% Copyright (C) 1990-2018 The LaTeX3 Project -%% -%% It may be distributed and/or modified under the conditions of -%% the LaTeX Project Public License (LPPL), either version 1.3c of -%% this license or (at your option) any later version. The latest -%% version of this license is in the file: -%% -%% https://www.latex-project.org/lppl.txt -%% -%% This file is part of the "l3kernel bundle" (The Work in LPPL) -%% and all files in that bundle must be distributed together. -%% -%% File: l3oldmodules.dtx Copyright (C) 2014-2018 The LaTeX3 Project -\def\old@liii@module@name -{l3candidates} -\ProvidesPackage\old@liii@module@name - [% - 2017/03/18 Obsolete L3 package - ] -\typeout{*****************************************************************} -\typeout{** } -\typeout{** Package \old@liii@module@name\space is obsolete and has been removed!} -\typeout{** } -\typeout{** Its functionality is now only provided as part of the expl3 package.} -\typeout{** } -\typeout{** After showing you an error message you can hit <return> we will continue} -\typeout{** for now by loading expl3 for you. However, the old packages will be} -\typeout{** removed entirely at the end of 2017.} -\typeout{** } -\typeout{** Therefore, please replace '\string\usepackage{\old@liii@module@name}'} -\typeout{** with '\string\usepackage{expl3}' in your documents as soon as possible.} -\typeout{** } -\typeout{*******************************************************************} -\PackageError - \old@liii@module@name{This package is obsolete --- - use 'expl3' instead} - \@ehc -\RequirePackage{expl3} - -%% -%% -%% End of file `l3candidates.sty'. diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3clist.sty b/Master/texmf-dist/tex/latex/l3kernel/l3clist.sty deleted file mode 100644 index 25cb92d0d00..00000000000 --- a/Master/texmf-dist/tex/latex/l3kernel/l3clist.sty +++ /dev/null @@ -1,50 +0,0 @@ -%% -%% This is file `l3clist.sty', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% l3oldmodules.dtx (with options: `l3clist,oldmodules') -%% -%% Copyright (C) 1990-2018 The LaTeX3 Project -%% -%% It may be distributed and/or modified under the conditions of -%% the LaTeX Project Public License (LPPL), either version 1.3c of -%% this license or (at your option) any later version. The latest -%% version of this license is in the file: -%% -%% https://www.latex-project.org/lppl.txt -%% -%% This file is part of the "l3kernel bundle" (The Work in LPPL) -%% and all files in that bundle must be distributed together. -%% -%% File: l3oldmodules.dtx Copyright (C) 2014-2018 The LaTeX3 Project -\def\old@liii@module@name -{l3clist} -\ProvidesPackage\old@liii@module@name - [% - 2017/03/18 Obsolete L3 package - ] -\typeout{*****************************************************************} -\typeout{** } -\typeout{** Package \old@liii@module@name\space is obsolete and has been removed!} -\typeout{** } -\typeout{** Its functionality is now only provided as part of the expl3 package.} -\typeout{** } -\typeout{** After showing you an error message you can hit <return> we will continue} -\typeout{** for now by loading expl3 for you. However, the old packages will be} -\typeout{** removed entirely at the end of 2017.} -\typeout{** } -\typeout{** Therefore, please replace '\string\usepackage{\old@liii@module@name}'} -\typeout{** with '\string\usepackage{expl3}' in your documents as soon as possible.} -\typeout{** } -\typeout{*******************************************************************} -\PackageError - \old@liii@module@name{This package is obsolete --- - use 'expl3' instead} - \@ehc -\RequirePackage{expl3} - -%% -%% -%% End of file `l3clist.sty'. diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3coffins.sty b/Master/texmf-dist/tex/latex/l3kernel/l3coffins.sty deleted file mode 100644 index 2d25931277b..00000000000 --- a/Master/texmf-dist/tex/latex/l3kernel/l3coffins.sty +++ /dev/null @@ -1,50 +0,0 @@ -%% -%% This is file `l3coffins.sty', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% l3oldmodules.dtx (with options: `l3coffins,oldmodules') -%% -%% Copyright (C) 1990-2018 The LaTeX3 Project -%% -%% It may be distributed and/or modified under the conditions of -%% the LaTeX Project Public License (LPPL), either version 1.3c of -%% this license or (at your option) any later version. The latest -%% version of this license is in the file: -%% -%% https://www.latex-project.org/lppl.txt -%% -%% This file is part of the "l3kernel bundle" (The Work in LPPL) -%% and all files in that bundle must be distributed together. -%% -%% File: l3oldmodules.dtx Copyright (C) 2014-2018 The LaTeX3 Project -\def\old@liii@module@name -{l3coffins} -\ProvidesPackage\old@liii@module@name - [% - 2017/03/18 Obsolete L3 package - ] -\typeout{*****************************************************************} -\typeout{** } -\typeout{** Package \old@liii@module@name\space is obsolete and has been removed!} -\typeout{** } -\typeout{** Its functionality is now only provided as part of the expl3 package.} -\typeout{** } -\typeout{** After showing you an error message you can hit <return> we will continue} -\typeout{** for now by loading expl3 for you. However, the old packages will be} -\typeout{** removed entirely at the end of 2017.} -\typeout{** } -\typeout{** Therefore, please replace '\string\usepackage{\old@liii@module@name}'} -\typeout{** with '\string\usepackage{expl3}' in your documents as soon as possible.} -\typeout{** } -\typeout{*******************************************************************} -\PackageError - \old@liii@module@name{This package is obsolete --- - use 'expl3' instead} - \@ehc -\RequirePackage{expl3} - -%% -%% -%% End of file `l3coffins.sty'. diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls b/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls index 522760bb24c..7fd9385704c 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls +++ b/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls @@ -20,7 +20,7 @@ %% %% File: l3doc.dtx Copyright (C) 1990-2018 The LaTeX3 project \RequirePackage{expl3,xparse,calc} -\ProvidesExplClass{l3doc}{2018/02/21}{} +\ProvidesExplClass{l3doc}{2018/03/05}{} {L3 Experimental documentation class} \clist_new:N \g_docinput_clist \seq_new:N \g_doc_functions_seq diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3dvipdfmx.def b/Master/texmf-dist/tex/latex/l3kernel/l3dvipdfmx.def index 60fac7b2529..cbeff0221d8 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3dvipdfmx.def +++ b/Master/texmf-dist/tex/latex/l3kernel/l3dvipdfmx.def @@ -18,7 +18,7 @@ %% This file is part of the "l3kernel bundle" (The Work in LPPL) %% and all files in that bundle must be distributed together. %% -%% File: l3drivers.dtx Copyright(C) 2011-2017 The LaTeX3 Project +%% File: l3drivers.dtx Copyright(C) 2011-2018 The LaTeX3 Project \ProvidesExplFile {l3dvidpfmx.def}{2017/03/18}{} {L3 Experimental driver: dvipdfmx} @@ -51,10 +51,13 @@ \cs_new_protected:Npn \driver_color_rgb:nnn #1#2#3 { \__driver_color_select:n { rgb~ #1 ~ #2 ~ #3 } } \cs_new_protected:Npn \driver_color_spot:nn #1#2 - { \__driver_color_select:n { color~push~\c_space_tl #1 } } + { \__driver_color_select:n { \c_space_tl #1 } } \cs_new_protected:Npn \__driver_color_select:n #1 - { \tex_special:D { color~push~ #1 } } -\cs_new_protected:Npn \driver_color_reset: + { + \tex_special:D { color~push~ #1 } + \group_insert_after:N \__driver_color_reset: + } +\cs_new_protected:Npn \__driver_color_reset: { \tex_special:D { color~pop } } \cs_new_protected:Npn \__driver_literal:n #1 { \tex_special:D { pdf:literal~ #1 } } @@ -282,58 +285,97 @@ { \__driver_draw_literal:n { 1 ~ j } } \cs_new_protected:Npn \driver_draw_join_bevel: { \__driver_draw_literal:n { 2 ~ j } } -\cs_new_protected:Npn \driver_draw_color_cmyk:nnnn #1#2#3#4 +\cs_new_protected:Npn \driver_draw_color_fill_cmyk:nnnn #1#2#3#4 + { \__driver_color_fill_select:n { #1 ~ #2 ~ #3 ~ #4 ~ k } } +\cs_new_protected:Npn \driver_draw_color_stroke_cmyk:nnnn #1#2#3#4 + { \__driver_color_select:n { #1 ~ #2 ~ #3 ~ #4 ~ K } } +\cs_new_protected:Npn \driver_draw_color_fill_gray:n #1 + { \__driver_color_fill_select:n { #1 ~ g } } +\cs_new_protected:Npn \driver_draw_color_stroke_gray:n #1 + { \__driver_color_select:n { #1 ~ G } } +\cs_new_protected:Npn \driver_draw_color_fill_rgb:nnn #1#2#3 + { \__driver_color_fill_select:n { #1 ~ #2 ~ #3 ~ rg } } +\cs_new_protected:Npn \driver_draw_color_stroke_rgb:nnn #1#2#3 + { \__driver_color_select:n { #1 ~ #2 ~ #3 ~ RG } } +\cs_new_eq:NN \__driver_color_fill_select:n \__driver_draw_literal:n +\cs_new_protected:Npn \driver_draw_cm:nnnn #1#2#3#4 { - \__driver_draw_literal:n - { #1 ~ #2 ~ #3 ~ #4 ~ k ~ #1 ~ #2 ~ #3 ~ #4 ~ K } + \__driver_draw_cm_decompose:nnnnN {#1} {#2} {#3} {#4} + \__driver_draw_cm:nnnn } -\cs_new_protected:Npn \driver_draw_fill_cmyk:nnnn #1#2#3#4 +\cs_new_protected:Npn \__driver_draw_cm:nnnn #1#2#3#4 { - \__driver_draw_literal:n { #1 ~ #2 ~ #3 ~ #4 ~ k } + \tex_special:D + { + x:rotate~ + \fp_compare:nNnTF {#1} = \c_zero_fp + { 0 } + { \fp_eval:n { round ( -#1 , 5 ) } } + } + \tex_special:D + { + x:scale~ + \fp_eval:n { round ( #2 , 5 ) } ~ + \fp_eval:n { round ( #3 , 5 ) } + } + \tex_special:D + { + x:rotate~ + \fp_compare:nNnTF {#4} = \c_zero_fp + { 0 } + { \fp_eval:n { round ( -#4 , 5 ) } } + } } -\cs_new_protected:Npn \driver_draw_stroke_cmyk:nnnn #1#2#3#4 - { \__driver_draw_literal:n { #1 ~ #2 ~ #3 ~ #4 ~ K } } -\cs_new_protected:Npn \driver_draw_color_gray:n #1 - { \__driver_draw_literal:n { #1 ~ g ~ #1 ~ G } } -\cs_new_protected:Npn \driver_draw_fill_gray:n #1 - { \__driver_draw_literal:n { #1 ~ g } } -\cs_new_protected:Npn \driver_draw_stroke_gray:n #1 - { \__driver_draw_literal:n { #1 ~ G } } -\cs_new_protected:Npn \driver_draw_color_rgb:nnn #1#2#3 +\cs_new_protected:Npn \__driver_draw_cm_decompose:nnnnN #1#2#3#4#5 { - \__driver_draw_literal:n - { #1 ~ #2 ~ #3 ~ rg ~ #1 ~ #2 ~ #3 ~ RG } + \use:x + { + \__driver_draw_cm_decompose_auxi:nnnnN + { \fp_eval:n { (#1 + #4) / 2 } } + { \fp_eval:n { (#1 - #4) / 2 } } + { \fp_eval:n { (#3 + #2) / 2 } } + { \fp_eval:n { (#3 - #2) / 2 } } + } + #5 } -\cs_new_protected:Npn \driver_draw_fill_rgb:nnn #1#2#3 - { \__driver_draw_literal:n { #1 ~ #2 ~ #3 ~ rg } } -\cs_new_protected:Npn \driver_draw_stroke_rgb:nnn #1#2#3 - { \__driver_draw_literal:n { #1 ~ #2 ~ #3 ~ RG } } -\cs_new_protected:Npn \driver_draw_transformcm:nnnnnn #1#2#3#4#5#6 +\cs_new_protected:Npn \__driver_draw_cm_decompose_auxi:nnnnN #1#2#3#4#5 { - \__driver_draw_literal:x + \use:x { - #1 ~ #2 ~ #3 ~ #4 ~ - \dim_to_decimal_in_bp:n {#5} ~ \dim_to_decimal_in_bp:n {#6} ~ - cm + \__driver_draw_cm_decompose_auxii:nnnnN + { \fp_eval:n { 2 * sqrt ( #1 * #1 + #4 * #4 ) } } + { \fp_eval:n { 2 * sqrt ( #2 * #2 + #3 * #3 ) } } + { \fp_eval:n { atand ( #3 , #2 ) } } + { \fp_eval:n { atand ( #4 , #1 ) } } } + #5 } -\cs_new_protected:Npn \driver_draw_hbox:Nnnnnnn #1#2#3#4#5#6#7 +\cs_new_protected:Npn \__driver_draw_cm_decompose_auxii:nnnnN #1#2#3#4#5 { - \hbox_set:Nn \l__driver_tmp_box + \use:x { - \tex_kern:D \__dim_eval:n {#6} - \__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: + \__driver_draw_cm_decompose_auxiii:nnnnN + { \fp_eval:n { ( #4 - #3 ) / 2 } } + { \fp_eval:n { ( #1 + #2 ) / 2 } } + { \fp_eval:n { ( #1 - #2 ) / 2 } } + { \fp_eval:n { ( #4 + #3 ) / 2 } } } - \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 + #5 + } +\cs_new_protected:Npn \__driver_draw_cm_decompose_auxiii:nnnnN #1#2#3#4#5 + { + \fp_compare:nNnTF { abs( #2 ) } > { abs ( #3 ) } + { #5 {#1} {#2} {#3} {#4} } + { #5 {#1} {#3} {#2} {#4} } + } +\cs_new_protected:Npn \driver_draw_box_use:Nnnnn #1#2#3#4#5 + { + \__driver_scope_begin: + \tex_special:D { pdf:btrans~matrix~ #2 ~ #3 ~ #4 ~ #5 ~ 0 ~ 0 } + \hbox_overlap_right:n { \box_use:N #1 } + \tex_special:D { pdf:etrans } + \__driver_scope_end: } -\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 ad402056269..858d736bd45 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3dvips.def +++ b/Master/texmf-dist/tex/latex/l3kernel/l3dvips.def @@ -18,7 +18,7 @@ %% This file is part of the "l3kernel bundle" (The Work in LPPL) %% and all files in that bundle must be distributed together. %% -%% File: l3drivers.dtx Copyright(C) 2011-2017 The LaTeX3 Project +%% File: l3drivers.dtx Copyright(C) 2011-2018 The LaTeX3 Project \ProvidesExplFile {l3dvips.def}{2017/03/18}{} {L3 Experimental driver: dvips} @@ -51,10 +51,14 @@ \cs_new_protected:Npn \driver_color_rgb:nnn #1#2#3 { \__driver_color_select:n { rgb~ #1 ~ #2 ~ #3 } } \cs_new_protected:Npn \driver_color_spot:nn #1#2 - { \__driver_color_select:n { color~push~\c_space_tl #1 } } + { \__driver_color_select:n { \c_space_tl #1 } } \cs_new_protected:Npn \__driver_color_select:n #1 - { \tex_special:D { color~push~ #1 } } -\cs_new_protected:Npn \driver_color_reset: + { + \tex_special:D { color~push~ #1 } + \tex_special:D { ps::/l3fc~{ }~def } + \group_insert_after:N \__driver_color_reset: + } +\cs_new_protected:Npn \__driver_color_reset: { \tex_special:D { color~pop } } \cs_new_protected:Npn \__driver_literal:n #1 { @@ -128,20 +132,21 @@ \tex_special:D { PSfile = #1 } } \cs_new_protected:Npn \__driver_draw_literal:n #1 - { \tex_special:D { ps:: ~ #1 } } + { \tex_special:D { ps:: #1 } } \cs_generate_variant:Nn \__driver_draw_literal:n { x } \cs_new_protected:Npn \driver_draw_begin: { - \tex_special:D { ps::[begin] } - \tex_special:D { ps::~save } - \tex_special:D { ps::~/l3x~currentpoint~/l3y~exch~def~def } - \tex_special:D { ps::~@beginspecial } + \__driver_draw_literal:n { [begin] } + \__driver_draw_literal:n { save } + \__driver_draw_literal:n { /l3x~currentpoint~/l3y~exch~def~def } + \__driver_draw_literal:n { @beginspecial } + \__driver_draw_literal:n { /l3fc~{ }~def } } \cs_new_protected:Npn \driver_draw_end: { - \tex_special:D { ps::~@endspecial } - \tex_special:D { ps::~restore } - \tex_special:D { ps::[end] } + \__driver_draw_literal:n { @endspecial } + \__driver_draw_literal:n { restore } + \__driver_draw_literal:n { [end] } } \cs_new_protected:Npn \driver_draw_scope_begin: { \__driver_draw_literal:n { save } } @@ -185,9 +190,7 @@ { \__driver_draw_literal:n { closepath } } \cs_new_protected:Npn \driver_draw_stroke: { - \__driver_draw_literal:n { currentdict~/l3sc~known~{gsave~l3sc}~if } - \__driver_draw_literal:n { stroke } - \__driver_draw_literal:n { currentdict~/l3sc~known~{grestore}~if } + \__driver_draw_literal:n { stroke } \bool_if:NT \g__driver_draw_clip_bool { \__driver_draw_literal:x @@ -206,13 +209,14 @@ } \cs_new_protected:Npn \driver_draw_fill: { - \__driver_draw_literal:n { currentdict~/l3fc~known~{gsave~l3fc}~if } + \__driver_draw_literal:n { gsave } + \__driver_draw_literal:n { l3fc } \__driver_draw_literal:x { \bool_if:NT \g__driver_draw_eor_bool { eo } fill } - \__driver_draw_literal:n { currentdict~/l3fc~known~{grestore}~if } + \__driver_draw_literal:n { grestore } \bool_if:NT \g__driver_draw_clip_bool { \__driver_draw_literal:x @@ -226,16 +230,15 @@ } \cs_new_protected:Npn \driver_draw_fillstroke: { - \__driver_draw_literal:n { currentdict~/l3fc~known~{gsave~l3fc}~if } + \__driver_draw_literal:n { gsave } + \__driver_draw_literal:n { l3fc } \__driver_draw_literal:x { \bool_if:NT \g__driver_draw_eor_bool { eo } fill } - \__driver_draw_literal:n { currentdict~/l3fc~known~{grestore}~if } - \__driver_draw_literal:n { currentdict~/l3sc~known~{gsave~l3sc}~if } + \__driver_draw_literal:n { grestore } \__driver_draw_literal:n { stroke } - \__driver_draw_literal:n { currentdict~/l3sc~known~{grestore}~if } \bool_if:NT \g__driver_draw_clip_bool { \__driver_draw_literal:x @@ -294,74 +297,37 @@ { \__driver_draw_literal:n { 1 ~ setlinejoin } } \cs_new_protected:Npn \driver_draw_join_bevel: { \__driver_draw_literal:n { 2 ~ setlinejoin } } -\cs_new_protected:Npn \__driver_draw_color_reset: - { - \__driver_draw_literal:n { currentdic~/l3fc~known~{ /l3fc~ { } ~def }~if } - \__driver_draw_literal:n { currentdic~/l3sc~known~{ /l3sc~ { } ~def }~if } - } -\cs_new_protected:Npn \driver_draw_color_cmyk:nnnn #1#2#3#4 - { - \__driver_draw_literal:n { #1 ~ #2 ~ #3 ~ #4 ~ setcmykcolor } - \__driver_draw_color_reset: - } -\cs_new_protected:Npn \driver_draw_fill_cmyk:nnnn #1#2#3#4 - { - \__driver_draw_literal:n - { /l3fc ~ { #1 ~ #2 ~ #3 ~ #4 ~ setcmykcolor ~ } ~ def } - } -\cs_new_protected:Npn \driver_draw_stroke_cmyk:nnnn #1#2#3#4 - { - \__driver_draw_literal:n - { /l3sc ~ { #1 ~ #2 ~ #3 ~ #4 ~ setcmykcolor ~ } ~ def } - } -\cs_new_protected:Npn \driver_draw_color_gray:n #1 - { - \__driver_draw_literal:n { #1 ~ setgray } - \__driver_draw_color_reset: - } -\cs_new_protected:Npn \driver_draw_fill_gray:n #1 - { \__driver_draw_literal:n { /l3fc ~ { #1 ~ setgray } ~ def } } -\cs_new_protected:Npn \driver_draw_stroke_gray:n #1 - { \__driver_draw_literal:n { /l3sc ~ { #1 ~ setgray } ~ def } } -\cs_new_protected:Npn \driver_draw_color_rgb:nnn #1#2#3 - { - \__driver_draw_literal:n { #1 ~ #2 ~ #3 ~ setrgbcolor } - \__driver_draw_color_reset: - } -\cs_new_protected:Npn \driver_draw_fill_rgb:nnn #1#2#3 - { - \__driver_draw_literal:n - { /l3fc ~ { #1 ~ #2 ~ #3 ~ setrgbcolor } ~ def } - } -\cs_new_protected:Npn \driver_draw_stroke_rgb:nnn #1#2#3 - { - \__driver_draw_literal:n - { /l3sc ~ { #1 ~ #2 ~ #3 ~ setrgbcolor } ~ def } - } -\cs_new_protected:Npn \driver_draw_transformcm:nnnnnn #1#2#3#4#5#6 +\cs_new_protected:Npn \driver_draw_color_fill_cmyk:nnnn #1#2#3#4 + { \__driver_draw_fill:n { #1 ~ #2 ~ #3 ~ #4 ~ setcmykcolor } } +\cs_new_protected:Npn \driver_draw_color_stroke_cmyk:nnnn #1#2#3#4 + { \__driver_draw_stroke:n { cmyk ~ #1 ~ #2 ~ #3 ~ #4 } } +\cs_new_protected:Npn \driver_draw_color_fill_gray:n #1 + { \__driver_draw_fill:n { #1 ~ setgray } } +\cs_new_protected:Npn \driver_draw_color_stroke_gray:n #1 + { \__driver_draw_stroke:n { gray ~ #1 } } +\cs_new_protected:Npn \driver_draw_color_fill_rgb:nnn #1#2#3 + { \__driver_draw_fill:n { #1 ~ #2 ~ #3 ~ setrgbcolor } } +\cs_new_protected:Npn \driver_draw_color_stroke_rgb:nnn #1#2#3 + { \__driver_draw_stroke:n { rgb ~ #1 ~ #2 ~ #3 } } +\cs_new_protected:Npn \__driver_draw_color_fill:n #1 + { \__driver_draw_literal:n { /l3fc ~ { #1 } ~ def } } +\cs_new_protected:Npn \__driver_draw_color_stroke:n #1 { - \__driver_draw_literal:x - { - [ - #1 ~ #2 ~ #3 ~ #4 ~ - \dim_to_decimal_in_bp:n {#5} ~ \dim_to_decimal_in_bp:n {#6} ~ - ] ~ - concat - } + \tex_special:D { color~push~#1 } + \group_insert_after:N \__driver_color_reset: } -\cs_new_protected:Npn \driver_draw_hbox:Nnnnnnn #1#2#3#4#5#6#7 +\cs_new_protected:Npn \driver_draw_cm:nnnn #1#2#3#4 + { \__driver_draw_literal:n { [#1 ~ #2 ~ #3 ~ #4 ~ 0 ~ 0 ] ~ concat } } +\cs_new_protected:Npn \driver_draw_box_use:Nnnnn #1#2#3#4#5 { \__driver_scope_begin: - \tex_special:D { ps::[end] } - \driver_draw_transformcm:nnnnnn {#2} {#3} {#4} {#5} {#6} {#7} - \tex_special:D { ps::~72~Resolution~div~72~VResolution~div~neg~scale } - \tex_special:D { ps::~magscale~{1~DVImag~div~dup~scale}~if } - \tex_special:D { ps::~l3x~neg~l3y~neg~translate } - \box_set_wd:Nn #1 { 0pt } - \box_set_ht:Nn #1 { 0pt } - \box_set_dp:Nn #1 { 0pt } - \box_use:N #1 - \tex_special:D { ps::[begin] } + \__driver_draw_literal:n { [end] } + \driver_draw_cm:nnnn {#2} {#3} {#4} {#5} + \__driver_draw_literal:n { 72~Resolution~div~72~VResolution~div~neg~scale } + \__driver_draw_literal:n { magscale~{1~DVImag~div~dup~scale}~if } + \__driver_draw_literal:n { l3x~neg~l3y~neg~translate } + \hbox_overlap_right:n { \box_use:N #1 } + \__driver_draw_literal:n { [begin] } \__driver_scope_end: } %% diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3dvisvgm.def b/Master/texmf-dist/tex/latex/l3kernel/l3dvisvgm.def index 0274ecdaea7..3cd59d4ffa3 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3dvisvgm.def +++ b/Master/texmf-dist/tex/latex/l3kernel/l3dvisvgm.def @@ -18,7 +18,7 @@ %% This file is part of the "l3kernel bundle" (The Work in LPPL) %% and all files in that bundle must be distributed together. %% -%% File: l3drivers.dtx Copyright(C) 2011-2017 The LaTeX3 Project +%% File: l3drivers.dtx Copyright(C) 2011-2018 The LaTeX3 Project \ProvidesExplFile {l3dvisvgm.def}{2017/03/18}{} {L3 Experimental driver: dvisvgm} @@ -51,10 +51,13 @@ \cs_new_protected:Npn \driver_color_rgb:nnn #1#2#3 { \__driver_color_select:n { rgb~ #1 ~ #2 ~ #3 } } \cs_new_protected:Npn \driver_color_spot:nn #1#2 - { \__driver_color_select:n { color~push~\c_space_tl #1 } } + { \__driver_color_select:n { \c_space_tl #1 } } \cs_new_protected:Npn \__driver_color_select:n #1 - { \tex_special:D { color~push~ #1 } } -\cs_new_protected:Npn \driver_color_reset: + { + \tex_special:D { color~push~ #1 } + \group_insert_after:N \__driver_color_reset: + } +\cs_new_protected:Npn \__driver_color_reset: { \tex_special:D { color~pop } } \cs_new_protected:Npn \__driver_literal:n #1 { \tex_special:D { dvisvgm:raw~ #1 { ?nl } } } @@ -349,92 +352,57 @@ { \__driver_draw_scope:n { stroke-linejoin="round" } } \cs_new_protected:Npn \driver_draw_join_bevel: { \__driver_draw_scope:n { stroke-linejoin="bevel" } } -\cs_new_protected:Npn \__driver_draw_color_cmyk_aux:NNnnnnn #1#2#3#4#5#6 +\cs_new_protected:Npn \driver_draw_color_stroke_cmyk:nnnn #1#2#3#4 { \use:x { - \__driver_draw_color_rgb_auxii:nnn - { \fp_eval:n { -100 * ( (#3) * ( 1 - (#6) ) - 1 ) } } - { \fp_eval:n { -100 * ( (#4) * ( 1 - (#6) ) + #6 - 1 ) } } - { \fp_eval:n { -100 * ( (#5) * ( 1 - (#6) ) + #6 - 1 ) } } + \__driver_draw_color_fill:nnn + { \fp_eval:n { -100 * ( (#1) * ( 1 - (#4) ) - 1 ) } } + { \fp_eval:n { -100 * ( (#2) * ( 1 - (#4) ) + #4 - 1 ) } } + { \fp_eval:n { -100 * ( (#3) * ( 1 - (#4) ) + #4 - 1 ) } } } - #1 #2 } -\cs_new_protected:Npn \driver_draw_color_cmyk:nnnn - { \__driver_draw_color_cmyk_aux:NNnnnnn \c_true_bool \c_true_bool } -\cs_new_protected:Npn \driver_draw_fill_cmyk:nnnn - { \__driver_draw_color_cmyk_aux:NNnnnnn \c_false_bool \c_true_bool } -\cs_new_protected:Npn \driver_draw_stroke_cmyk:nnnn - { \__driver_draw_color_cmyk_aux:NNnnnnn \c_true_bool \c_false_bool } -\cs_new_protected:Npn \__driver_draw_color_gray_aux:NNn #1#2#3 +\cs_new_eq:NN \driver_draw_color_stroke_cmyk:nnnn \driver_color_cmyk:nnnn +\cs_new_protected:Npn \driver_draw_color_gray:n #1 { \use:x { - \__driver_draw_color_gray_aux:nNN - { \fp_eval:n { 100 * (#3)} } + \__driver_draw_color_gray_aux:n + { \fp_eval:n { 100 * (#3) } } } - #1 #2 } -\cs_new_protected:Npn \__driver_draw_color_gray_aux:nNN #1 - { \__driver_draw_color_rgb_auxii:nnnNN {#1} {#1} {#1} } -\cs_generate_variant:Nn \__driver_draw_color_gray_aux:nNN { x } -\cs_new_protected:Npn \driver_draw_color_gray:n - { \__driver_draw_color_gray_aux:NNn \c_true_bool \c_true_bool } -\cs_new_protected:Npn \driver_draw_fill_gray:n - { \__driver_draw_color_gray_aux:NNn \c_false_bool \c_true_bool } -\cs_new_protected:Npn \driver_draw_stroke_gray:n - { \__driver_draw_color_gray_aux:NNn \c_true_bool \c_false_bool } -\cs_new_protected:Npn \__driver_draw_color_rgb_auxi:NNnnn #1#2#3#4#5 +\cs_new_protected:Npn \__driver_draw_color_gray_aux:n #1 + { \__driver_draw_color_fill:nnn {#1} {#1} {#1} } +\cs_new_eq:NN \driver_draw_color_stroke_gray:n \driver_color_gray:n +\cs_new_protected:Npn \driver_draw_color_rgb:nnn #1#2#3 { \use:x { - \__driver_draw_color_rgb_auxii:nnnNN + \__driver_draw_color_fill:nnn + { \fp_eval:n { 100 * (#1) } } + { \fp_eval:n { 100 * (#2) } } { \fp_eval:n { 100 * (#3) } } - { \fp_eval:n { 100 * (#4) } } - { \fp_eval:n { 100 * (#5) } } } - #1 #2 } -\cs_new_protected:Npn \__driver_draw_color_rgb_auxii:nnnNN #1#2#3#4#5 +\cs_new_protected:Npn \__driver_draw_color_fill:nnn #1#2#3 { \__driver_draw_scope:x { - \bool_if:NT #4 - { - fill = - " - rgb - ( - #1 \c_percent_str , - #2 \c_percent_str , - #3 \c_percent_str - ) - " - \bool_if:NT #5 { ~ } - } - \bool_if:NT #5 - { - stroke = - " - rgb - ( - #1 \c_percent_str , - #2 \c_percent_str , - #3 \c_percent_str - ) - " - } + fill = + " + rgb + ( + #1 \c_percent_str , + #2 \c_percent_str , + #3 \c_percent_str + ) + " } } -\cs_new_protected:Npn \driver_draw_color_rgb:nnn - { \__driver_draw_color_rgb_auxi:NNnnn \c_true_bool \c_true_bool } -\cs_new_protected:Npn \driver_draw_fill_rgb:nnn - { \__driver_draw_color_rgb_auxi:NNnnn \c_false_bool \c_true_bool } -\cs_new_protected:Npn \driver_draw_stroke_rgb:nnn - { \__driver_draw_color_rgb_auxi:NNnnn \c_true_bool \c_false_bool } -\cs_new_protected:Npn \driver_draw_transformcm:nnnnnn #1#2#3#4#5#6 +\cs_new_eq:NN \driver_draw_color_stroke_rgb:nnn \driver_color_rgb:nnn +\cs_new_protected:Npn \driver_draw_cm:nnnn #1#2#3#4 { - \__driver_draw_scope:x + \__driver_draw_scope:n { transform = " @@ -442,7 +410,7 @@ ( \fp_eval:n {#1} , \fp_eval:n {#2} , \fp_eval:n {#3} , \fp_eval:n {#4} , - \dim_to_decimal:n {#5} , \dim_to_decimal:n {#6} + 0pt , 0pt ) " } @@ -450,7 +418,7 @@ \cs_new_protected:Npn \driver_draw_hbox:Nnnnnnn #1#2#3#4#5#6#7 { \__driver_scope_begin: - \driver_draw_transformcm:nnnnnn {#2} {#3} {#4} {#5} {#6} {#7} + \driver_draw_cm:nnnn {#2} {#3} {#4} {#5} \__driver_literal:n { < g~ diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3expan.sty b/Master/texmf-dist/tex/latex/l3kernel/l3expan.sty deleted file mode 100644 index 07f85a89444..00000000000 --- a/Master/texmf-dist/tex/latex/l3kernel/l3expan.sty +++ /dev/null @@ -1,50 +0,0 @@ -%% -%% This is file `l3expan.sty', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% l3oldmodules.dtx (with options: `l3expan,oldmodules') -%% -%% Copyright (C) 1990-2018 The LaTeX3 Project -%% -%% It may be distributed and/or modified under the conditions of -%% the LaTeX Project Public License (LPPL), either version 1.3c of -%% this license or (at your option) any later version. The latest -%% version of this license is in the file: -%% -%% https://www.latex-project.org/lppl.txt -%% -%% This file is part of the "l3kernel bundle" (The Work in LPPL) -%% and all files in that bundle must be distributed together. -%% -%% File: l3oldmodules.dtx Copyright (C) 2014-2018 The LaTeX3 Project -\def\old@liii@module@name -{l3expan} -\ProvidesPackage\old@liii@module@name - [% - 2017/03/18 Obsolete L3 package - ] -\typeout{*****************************************************************} -\typeout{** } -\typeout{** Package \old@liii@module@name\space is obsolete and has been removed!} -\typeout{** } -\typeout{** Its functionality is now only provided as part of the expl3 package.} -\typeout{** } -\typeout{** After showing you an error message you can hit <return> we will continue} -\typeout{** for now by loading expl3 for you. However, the old packages will be} -\typeout{** removed entirely at the end of 2017.} -\typeout{** } -\typeout{** Therefore, please replace '\string\usepackage{\old@liii@module@name}'} -\typeout{** with '\string\usepackage{expl3}' in your documents as soon as possible.} -\typeout{** } -\typeout{*******************************************************************} -\PackageError - \old@liii@module@name{This package is obsolete --- - use 'expl3' instead} - \@ehc -\RequirePackage{expl3} - -%% -%% -%% End of file `l3expan.sty'. diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3file.sty b/Master/texmf-dist/tex/latex/l3kernel/l3file.sty deleted file mode 100644 index 5a9b4dd8f12..00000000000 --- a/Master/texmf-dist/tex/latex/l3kernel/l3file.sty +++ /dev/null @@ -1,50 +0,0 @@ -%% -%% This is file `l3file.sty', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% l3oldmodules.dtx (with options: `l3file,oldmodules') -%% -%% Copyright (C) 1990-2018 The LaTeX3 Project -%% -%% It may be distributed and/or modified under the conditions of -%% the LaTeX Project Public License (LPPL), either version 1.3c of -%% this license or (at your option) any later version. The latest -%% version of this license is in the file: -%% -%% https://www.latex-project.org/lppl.txt -%% -%% This file is part of the "l3kernel bundle" (The Work in LPPL) -%% and all files in that bundle must be distributed together. -%% -%% File: l3oldmodules.dtx Copyright (C) 2014-2018 The LaTeX3 Project -\def\old@liii@module@name -{l3file} -\ProvidesPackage\old@liii@module@name - [% - 2017/03/18 Obsolete L3 package - ] -\typeout{*****************************************************************} -\typeout{** } -\typeout{** Package \old@liii@module@name\space is obsolete and has been removed!} -\typeout{** } -\typeout{** Its functionality is now only provided as part of the expl3 package.} -\typeout{** } -\typeout{** After showing you an error message you can hit <return> we will continue} -\typeout{** for now by loading expl3 for you. However, the old packages will be} -\typeout{** removed entirely at the end of 2017.} -\typeout{** } -\typeout{** Therefore, please replace '\string\usepackage{\old@liii@module@name}'} -\typeout{** with '\string\usepackage{expl3}' in your documents as soon as possible.} -\typeout{** } -\typeout{*******************************************************************} -\PackageError - \old@liii@module@name{This package is obsolete --- - use 'expl3' instead} - \@ehc -\RequirePackage{expl3} - -%% -%% -%% End of file `l3file.sty'. diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3fp.sty b/Master/texmf-dist/tex/latex/l3kernel/l3fp.sty deleted file mode 100644 index 329b88718cd..00000000000 --- a/Master/texmf-dist/tex/latex/l3kernel/l3fp.sty +++ /dev/null @@ -1,50 +0,0 @@ -%% -%% This is file `l3fp.sty', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% l3oldmodules.dtx (with options: `l3fp,oldmodules') -%% -%% Copyright (C) 1990-2018 The LaTeX3 Project -%% -%% It may be distributed and/or modified under the conditions of -%% the LaTeX Project Public License (LPPL), either version 1.3c of -%% this license or (at your option) any later version. The latest -%% version of this license is in the file: -%% -%% https://www.latex-project.org/lppl.txt -%% -%% This file is part of the "l3kernel bundle" (The Work in LPPL) -%% and all files in that bundle must be distributed together. -%% -%% File: l3oldmodules.dtx Copyright (C) 2014-2018 The LaTeX3 Project -\def\old@liii@module@name -{l3fp} -\ProvidesPackage\old@liii@module@name - [% - 2017/03/18 Obsolete L3 package - ] -\typeout{*****************************************************************} -\typeout{** } -\typeout{** Package \old@liii@module@name\space is obsolete and has been removed!} -\typeout{** } -\typeout{** Its functionality is now only provided as part of the expl3 package.} -\typeout{** } -\typeout{** After showing you an error message you can hit <return> we will continue} -\typeout{** for now by loading expl3 for you. However, the old packages will be} -\typeout{** removed entirely at the end of 2017.} -\typeout{** } -\typeout{** Therefore, please replace '\string\usepackage{\old@liii@module@name}'} -\typeout{** with '\string\usepackage{expl3}' in your documents as soon as possible.} -\typeout{** } -\typeout{*******************************************************************} -\PackageError - \old@liii@module@name{This package is obsolete --- - use 'expl3' instead} - \@ehc -\RequirePackage{expl3} - -%% -%% -%% End of file `l3fp.sty'. diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3int.sty b/Master/texmf-dist/tex/latex/l3kernel/l3int.sty deleted file mode 100644 index fe63078628d..00000000000 --- a/Master/texmf-dist/tex/latex/l3kernel/l3int.sty +++ /dev/null @@ -1,50 +0,0 @@ -%% -%% This is file `l3int.sty', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% l3oldmodules.dtx (with options: `l3int,oldmodules') -%% -%% Copyright (C) 1990-2018 The LaTeX3 Project -%% -%% It may be distributed and/or modified under the conditions of -%% the LaTeX Project Public License (LPPL), either version 1.3c of -%% this license or (at your option) any later version. The latest -%% version of this license is in the file: -%% -%% https://www.latex-project.org/lppl.txt -%% -%% This file is part of the "l3kernel bundle" (The Work in LPPL) -%% and all files in that bundle must be distributed together. -%% -%% File: l3oldmodules.dtx Copyright (C) 2014-2018 The LaTeX3 Project -\def\old@liii@module@name -{l3int} -\ProvidesPackage\old@liii@module@name - [% - 2017/03/18 Obsolete L3 package - ] -\typeout{*****************************************************************} -\typeout{** } -\typeout{** Package \old@liii@module@name\space is obsolete and has been removed!} -\typeout{** } -\typeout{** Its functionality is now only provided as part of the expl3 package.} -\typeout{** } -\typeout{** After showing you an error message you can hit <return> we will continue} -\typeout{** for now by loading expl3 for you. However, the old packages will be} -\typeout{** removed entirely at the end of 2017.} -\typeout{** } -\typeout{** Therefore, please replace '\string\usepackage{\old@liii@module@name}'} -\typeout{** with '\string\usepackage{expl3}' in your documents as soon as possible.} -\typeout{** } -\typeout{*******************************************************************} -\PackageError - \old@liii@module@name{This package is obsolete --- - use 'expl3' instead} - \@ehc -\RequirePackage{expl3} - -%% -%% -%% End of file `l3int.sty'. diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3keys.sty b/Master/texmf-dist/tex/latex/l3kernel/l3keys.sty deleted file mode 100644 index 99870da46cd..00000000000 --- a/Master/texmf-dist/tex/latex/l3kernel/l3keys.sty +++ /dev/null @@ -1,50 +0,0 @@ -%% -%% This is file `l3keys.sty', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% l3oldmodules.dtx (with options: `l3keys,oldmodules') -%% -%% Copyright (C) 1990-2018 The LaTeX3 Project -%% -%% It may be distributed and/or modified under the conditions of -%% the LaTeX Project Public License (LPPL), either version 1.3c of -%% this license or (at your option) any later version. The latest -%% version of this license is in the file: -%% -%% https://www.latex-project.org/lppl.txt -%% -%% This file is part of the "l3kernel bundle" (The Work in LPPL) -%% and all files in that bundle must be distributed together. -%% -%% File: l3oldmodules.dtx Copyright (C) 2014-2018 The LaTeX3 Project -\def\old@liii@module@name -{l3keys} -\ProvidesPackage\old@liii@module@name - [% - 2017/03/18 Obsolete L3 package - ] -\typeout{*****************************************************************} -\typeout{** } -\typeout{** Package \old@liii@module@name\space is obsolete and has been removed!} -\typeout{** } -\typeout{** Its functionality is now only provided as part of the expl3 package.} -\typeout{** } -\typeout{** After showing you an error message you can hit <return> we will continue} -\typeout{** for now by loading expl3 for you. However, the old packages will be} -\typeout{** removed entirely at the end of 2017.} -\typeout{** } -\typeout{** Therefore, please replace '\string\usepackage{\old@liii@module@name}'} -\typeout{** with '\string\usepackage{expl3}' in your documents as soon as possible.} -\typeout{** } -\typeout{*******************************************************************} -\PackageError - \old@liii@module@name{This package is obsolete --- - use 'expl3' instead} - \@ehc -\RequirePackage{expl3} - -%% -%% -%% End of file `l3keys.sty'. diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3msg.sty b/Master/texmf-dist/tex/latex/l3kernel/l3msg.sty deleted file mode 100644 index 823be11785b..00000000000 --- a/Master/texmf-dist/tex/latex/l3kernel/l3msg.sty +++ /dev/null @@ -1,50 +0,0 @@ -%% -%% This is file `l3msg.sty', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% l3oldmodules.dtx (with options: `l3msg,oldmodules') -%% -%% Copyright (C) 1990-2018 The LaTeX3 Project -%% -%% It may be distributed and/or modified under the conditions of -%% the LaTeX Project Public License (LPPL), either version 1.3c of -%% this license or (at your option) any later version. The latest -%% version of this license is in the file: -%% -%% https://www.latex-project.org/lppl.txt -%% -%% This file is part of the "l3kernel bundle" (The Work in LPPL) -%% and all files in that bundle must be distributed together. -%% -%% File: l3oldmodules.dtx Copyright (C) 2014-2018 The LaTeX3 Project -\def\old@liii@module@name -{l3msg} -\ProvidesPackage\old@liii@module@name - [% - 2017/03/18 Obsolete L3 package - ] -\typeout{*****************************************************************} -\typeout{** } -\typeout{** Package \old@liii@module@name\space is obsolete and has been removed!} -\typeout{** } -\typeout{** Its functionality is now only provided as part of the expl3 package.} -\typeout{** } -\typeout{** After showing you an error message you can hit <return> we will continue} -\typeout{** for now by loading expl3 for you. However, the old packages will be} -\typeout{** removed entirely at the end of 2017.} -\typeout{** } -\typeout{** Therefore, please replace '\string\usepackage{\old@liii@module@name}'} -\typeout{** with '\string\usepackage{expl3}' in your documents as soon as possible.} -\typeout{** } -\typeout{*******************************************************************} -\PackageError - \old@liii@module@name{This package is obsolete --- - use 'expl3' instead} - \@ehc -\RequirePackage{expl3} - -%% -%% -%% End of file `l3msg.sty'. diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3names.sty b/Master/texmf-dist/tex/latex/l3kernel/l3names.sty deleted file mode 100644 index 4070330e1c1..00000000000 --- a/Master/texmf-dist/tex/latex/l3kernel/l3names.sty +++ /dev/null @@ -1,50 +0,0 @@ -%% -%% This is file `l3names.sty', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% l3oldmodules.dtx (with options: `l3names,oldmodules') -%% -%% Copyright (C) 1990-2018 The LaTeX3 Project -%% -%% It may be distributed and/or modified under the conditions of -%% the LaTeX Project Public License (LPPL), either version 1.3c of -%% this license or (at your option) any later version. The latest -%% version of this license is in the file: -%% -%% https://www.latex-project.org/lppl.txt -%% -%% This file is part of the "l3kernel bundle" (The Work in LPPL) -%% and all files in that bundle must be distributed together. -%% -%% File: l3oldmodules.dtx Copyright (C) 2014-2018 The LaTeX3 Project -\def\old@liii@module@name -{l3names} -\ProvidesPackage\old@liii@module@name - [% - 2017/03/18 Obsolete L3 package - ] -\typeout{*****************************************************************} -\typeout{** } -\typeout{** Package \old@liii@module@name\space is obsolete and has been removed!} -\typeout{** } -\typeout{** Its functionality is now only provided as part of the expl3 package.} -\typeout{** } -\typeout{** After showing you an error message you can hit <return> we will continue} -\typeout{** for now by loading expl3 for you. However, the old packages will be} -\typeout{** removed entirely at the end of 2017.} -\typeout{** } -\typeout{** Therefore, please replace '\string\usepackage{\old@liii@module@name}'} -\typeout{** with '\string\usepackage{expl3}' in your documents as soon as possible.} -\typeout{** } -\typeout{*******************************************************************} -\PackageError - \old@liii@module@name{This package is obsolete --- - use 'expl3' instead} - \@ehc -\RequirePackage{expl3} - -%% -%% -%% 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 11e0b7afb70..d321543bcae 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3pdfmode.def +++ b/Master/texmf-dist/tex/latex/l3kernel/l3pdfmode.def @@ -18,7 +18,7 @@ %% This file is part of the "l3kernel bundle" (The Work in LPPL) %% and all files in that bundle must be distributed together. %% -%% File: l3drivers.dtx Copyright(C) 2011-2017 The LaTeX3 Project +%% File: l3drivers.dtx Copyright(C) 2011-2018 The LaTeX3 Project \ProvidesExplFile {l3pdfmode.def}{2017/03/18}{} {L3 Experimental driver: PDF mode} @@ -73,8 +73,9 @@ { \luatex_pdfextension:D colorstack } { \pdftex_pdfcolorstack:D } \exp_not:N \l__driver_color_stack_int push {#1} + \group_insert_after:N \exp_not:N \__driver_color_reset: } -\cs_new_protected:Npx \driver_color_reset: +\cs_new_protected:Npx \__driver_color_reset: { \cs_if_exist:NTF \luatex_pdfextension:D { \luatex_pdfextension:D colorstack } @@ -326,58 +327,30 @@ { \__driver_draw_literal:n { 1 ~ j } } \cs_new_protected:Npn \driver_draw_join_bevel: { \__driver_draw_literal:n { 2 ~ j } } -\cs_new_protected:Npn \driver_draw_color_cmyk:nnnn #1#2#3#4 +\cs_new_protected:Npn \driver_draw_color_fill_cmyk:nnnn #1#2#3#4 + { \__driver_color_fill_select:n { #1 ~ #2 ~ #3 ~ #4 ~ k } } +\cs_new_protected:Npn \driver_draw_color_stroke_cmyk:nnnn #1#2#3#4 + { \__driver_color_select:n { #1 ~ #2 ~ #3 ~ #4 ~ K } } +\cs_new_protected:Npn \driver_draw_color_fill_gray:n #1 + { \__driver_color_fill_select:n { #1 ~ g } } +\cs_new_protected:Npn \driver_draw_color_stroke_gray:n #1 + { \__driver_color_select:n { #1 ~ G } } +\cs_new_protected:Npn \driver_draw_color_fill_rgb:nnn #1#2#3 + { \__driver_color_fill_select:n { #1 ~ #2 ~ #3 ~ rg } } +\cs_new_protected:Npn \driver_draw_color_stroke_rgb:nnn #1#2#3 + { \__driver_color_select:n { #1 ~ #2 ~ #3 ~ RG } } +\cs_new_eq:NN \__driver_color_fill_select:n \__driver_color_select:n +\cs_new_protected:Npn \driver_draw_cm:nnnn #1#2#3#4 { - \__driver_draw_literal:n - { #1 ~ #2 ~ #3 ~ #4 ~ k ~ #1 ~ #2 ~ #3 ~ #4 ~ K } + \__driver_matrix:n { #1 ~ #2 ~ #3 ~ #4 } } -\cs_new_protected:Npn \driver_draw_fill_cmyk:nnnn #1#2#3#4 +\cs_new_protected:Npn \driver_draw_box_use:Nnnnn #1#2#3#4#5 { - \__driver_draw_literal:n { #1 ~ #2 ~ #3 ~ #4 ~ k } - } -\cs_new_protected:Npn \driver_draw_stroke_cmyk:nnnn #1#2#3#4 - { \__driver_draw_literal:n { #1 ~ #2 ~ #3 ~ #4 ~ K } } -\cs_new_protected:Npn \driver_draw_color_gray:n #1 - { \__driver_draw_literal:n { #1 ~ g ~ #1 ~ G } } -\cs_new_protected:Npn \driver_draw_fill_gray:n #1 - { \__driver_draw_literal:n { #1 ~ g } } -\cs_new_protected:Npn \driver_draw_stroke_gray:n #1 - { \__driver_draw_literal:n { #1 ~ G } } -\cs_new_protected:Npn \driver_draw_color_rgb:nnn #1#2#3 - { - \__driver_draw_literal:n - { #1 ~ #2 ~ #3 ~ rg ~ #1 ~ #2 ~ #3 ~ RG } - } -\cs_new_protected:Npn \driver_draw_fill_rgb:nnn #1#2#3 - { \__driver_draw_literal:n { #1 ~ #2 ~ #3 ~ rg } } -\cs_new_protected:Npn \driver_draw_stroke_rgb:nnn #1#2#3 - { \__driver_draw_literal:n { #1 ~ #2 ~ #3 ~ RG } } -\cs_new_protected:Npn \driver_draw_transformcm:nnnnnn #1#2#3#4#5#6 - { - \__driver_draw_literal:x - { - #1 ~ #2 ~ #3 ~ #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:n {#6} - \__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 + \__driver_scope_begin: + \driver_draw_cm:nnnn {#2} {#3} {#4} {#5} + \hbox_overlap_right:n { \box_use:N #1 } + \__driver_scope_end: } -\box_new:N \l__driver_tmp_box %% %% %% End of file `l3pdfmode.def'. diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3prg.sty b/Master/texmf-dist/tex/latex/l3kernel/l3prg.sty deleted file mode 100644 index 4c13ce414b5..00000000000 --- a/Master/texmf-dist/tex/latex/l3kernel/l3prg.sty +++ /dev/null @@ -1,50 +0,0 @@ -%% -%% This is file `l3prg.sty', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% l3oldmodules.dtx (with options: `l3prg,oldmodules') -%% -%% Copyright (C) 1990-2018 The LaTeX3 Project -%% -%% It may be distributed and/or modified under the conditions of -%% the LaTeX Project Public License (LPPL), either version 1.3c of -%% this license or (at your option) any later version. The latest -%% version of this license is in the file: -%% -%% https://www.latex-project.org/lppl.txt -%% -%% This file is part of the "l3kernel bundle" (The Work in LPPL) -%% and all files in that bundle must be distributed together. -%% -%% File: l3oldmodules.dtx Copyright (C) 2014-2018 The LaTeX3 Project -\def\old@liii@module@name -{l3prg} -\ProvidesPackage\old@liii@module@name - [% - 2017/03/18 Obsolete L3 package - ] -\typeout{*****************************************************************} -\typeout{** } -\typeout{** Package \old@liii@module@name\space is obsolete and has been removed!} -\typeout{** } -\typeout{** Its functionality is now only provided as part of the expl3 package.} -\typeout{** } -\typeout{** After showing you an error message you can hit <return> we will continue} -\typeout{** for now by loading expl3 for you. However, the old packages will be} -\typeout{** removed entirely at the end of 2017.} -\typeout{** } -\typeout{** Therefore, please replace '\string\usepackage{\old@liii@module@name}'} -\typeout{** with '\string\usepackage{expl3}' in your documents as soon as possible.} -\typeout{** } -\typeout{*******************************************************************} -\PackageError - \old@liii@module@name{This package is obsolete --- - use 'expl3' instead} - \@ehc -\RequirePackage{expl3} - -%% -%% -%% End of file `l3prg.sty'. diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3prop.sty b/Master/texmf-dist/tex/latex/l3kernel/l3prop.sty deleted file mode 100644 index 2df08dc0dcd..00000000000 --- a/Master/texmf-dist/tex/latex/l3kernel/l3prop.sty +++ /dev/null @@ -1,50 +0,0 @@ -%% -%% This is file `l3prop.sty', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% l3oldmodules.dtx (with options: `l3prop,oldmodules') -%% -%% Copyright (C) 1990-2018 The LaTeX3 Project -%% -%% It may be distributed and/or modified under the conditions of -%% the LaTeX Project Public License (LPPL), either version 1.3c of -%% this license or (at your option) any later version. The latest -%% version of this license is in the file: -%% -%% https://www.latex-project.org/lppl.txt -%% -%% This file is part of the "l3kernel bundle" (The Work in LPPL) -%% and all files in that bundle must be distributed together. -%% -%% File: l3oldmodules.dtx Copyright (C) 2014-2018 The LaTeX3 Project -\def\old@liii@module@name -{l3prop} -\ProvidesPackage\old@liii@module@name - [% - 2017/03/18 Obsolete L3 package - ] -\typeout{*****************************************************************} -\typeout{** } -\typeout{** Package \old@liii@module@name\space is obsolete and has been removed!} -\typeout{** } -\typeout{** Its functionality is now only provided as part of the expl3 package.} -\typeout{** } -\typeout{** After showing you an error message you can hit <return> we will continue} -\typeout{** for now by loading expl3 for you. However, the old packages will be} -\typeout{** removed entirely at the end of 2017.} -\typeout{** } -\typeout{** Therefore, please replace '\string\usepackage{\old@liii@module@name}'} -\typeout{** with '\string\usepackage{expl3}' in your documents as soon as possible.} -\typeout{** } -\typeout{*******************************************************************} -\PackageError - \old@liii@module@name{This package is obsolete --- - use 'expl3' instead} - \@ehc -\RequirePackage{expl3} - -%% -%% -%% End of file `l3prop.sty'. diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3quark.sty b/Master/texmf-dist/tex/latex/l3kernel/l3quark.sty deleted file mode 100644 index 6c861dae9b2..00000000000 --- a/Master/texmf-dist/tex/latex/l3kernel/l3quark.sty +++ /dev/null @@ -1,50 +0,0 @@ -%% -%% This is file `l3quark.sty', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% l3oldmodules.dtx (with options: `l3quark,oldmodules') -%% -%% Copyright (C) 1990-2018 The LaTeX3 Project -%% -%% It may be distributed and/or modified under the conditions of -%% the LaTeX Project Public License (LPPL), either version 1.3c of -%% this license or (at your option) any later version. The latest -%% version of this license is in the file: -%% -%% https://www.latex-project.org/lppl.txt -%% -%% This file is part of the "l3kernel bundle" (The Work in LPPL) -%% and all files in that bundle must be distributed together. -%% -%% File: l3oldmodules.dtx Copyright (C) 2014-2018 The LaTeX3 Project -\def\old@liii@module@name -{l3quark} -\ProvidesPackage\old@liii@module@name - [% - 2017/03/18 Obsolete L3 package - ] -\typeout{*****************************************************************} -\typeout{** } -\typeout{** Package \old@liii@module@name\space is obsolete and has been removed!} -\typeout{** } -\typeout{** Its functionality is now only provided as part of the expl3 package.} -\typeout{** } -\typeout{** After showing you an error message you can hit <return> we will continue} -\typeout{** for now by loading expl3 for you. However, the old packages will be} -\typeout{** removed entirely at the end of 2017.} -\typeout{** } -\typeout{** Therefore, please replace '\string\usepackage{\old@liii@module@name}'} -\typeout{** with '\string\usepackage{expl3}' in your documents as soon as possible.} -\typeout{** } -\typeout{*******************************************************************} -\PackageError - \old@liii@module@name{This package is obsolete --- - use 'expl3' instead} - \@ehc -\RequirePackage{expl3} - -%% -%% -%% End of file `l3quark.sty'. diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3seq.sty b/Master/texmf-dist/tex/latex/l3kernel/l3seq.sty deleted file mode 100644 index fa005ddd817..00000000000 --- a/Master/texmf-dist/tex/latex/l3kernel/l3seq.sty +++ /dev/null @@ -1,50 +0,0 @@ -%% -%% This is file `l3seq.sty', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% l3oldmodules.dtx (with options: `l3seq,oldmodules') -%% -%% Copyright (C) 1990-2018 The LaTeX3 Project -%% -%% It may be distributed and/or modified under the conditions of -%% the LaTeX Project Public License (LPPL), either version 1.3c of -%% this license or (at your option) any later version. The latest -%% version of this license is in the file: -%% -%% https://www.latex-project.org/lppl.txt -%% -%% This file is part of the "l3kernel bundle" (The Work in LPPL) -%% and all files in that bundle must be distributed together. -%% -%% File: l3oldmodules.dtx Copyright (C) 2014-2018 The LaTeX3 Project -\def\old@liii@module@name -{l3seq} -\ProvidesPackage\old@liii@module@name - [% - 2017/03/18 Obsolete L3 package - ] -\typeout{*****************************************************************} -\typeout{** } -\typeout{** Package \old@liii@module@name\space is obsolete and has been removed!} -\typeout{** } -\typeout{** Its functionality is now only provided as part of the expl3 package.} -\typeout{** } -\typeout{** After showing you an error message you can hit <return> we will continue} -\typeout{** for now by loading expl3 for you. However, the old packages will be} -\typeout{** removed entirely at the end of 2017.} -\typeout{** } -\typeout{** Therefore, please replace '\string\usepackage{\old@liii@module@name}'} -\typeout{** with '\string\usepackage{expl3}' in your documents as soon as possible.} -\typeout{** } -\typeout{*******************************************************************} -\PackageError - \old@liii@module@name{This package is obsolete --- - use 'expl3' instead} - \@ehc -\RequirePackage{expl3} - -%% -%% -%% End of file `l3seq.sty'. diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3skip.sty b/Master/texmf-dist/tex/latex/l3kernel/l3skip.sty deleted file mode 100644 index d92c579985a..00000000000 --- a/Master/texmf-dist/tex/latex/l3kernel/l3skip.sty +++ /dev/null @@ -1,50 +0,0 @@ -%% -%% This is file `l3skip.sty', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% l3oldmodules.dtx (with options: `l3skip,oldmodules') -%% -%% Copyright (C) 1990-2018 The LaTeX3 Project -%% -%% It may be distributed and/or modified under the conditions of -%% the LaTeX Project Public License (LPPL), either version 1.3c of -%% this license or (at your option) any later version. The latest -%% version of this license is in the file: -%% -%% https://www.latex-project.org/lppl.txt -%% -%% This file is part of the "l3kernel bundle" (The Work in LPPL) -%% and all files in that bundle must be distributed together. -%% -%% File: l3oldmodules.dtx Copyright (C) 2014-2018 The LaTeX3 Project -\def\old@liii@module@name -{l3skip} -\ProvidesPackage\old@liii@module@name - [% - 2017/03/18 Obsolete L3 package - ] -\typeout{*****************************************************************} -\typeout{** } -\typeout{** Package \old@liii@module@name\space is obsolete and has been removed!} -\typeout{** } -\typeout{** Its functionality is now only provided as part of the expl3 package.} -\typeout{** } -\typeout{** After showing you an error message you can hit <return> we will continue} -\typeout{** for now by loading expl3 for you. However, the old packages will be} -\typeout{** removed entirely at the end of 2017.} -\typeout{** } -\typeout{** Therefore, please replace '\string\usepackage{\old@liii@module@name}'} -\typeout{** with '\string\usepackage{expl3}' in your documents as soon as possible.} -\typeout{** } -\typeout{*******************************************************************} -\PackageError - \old@liii@module@name{This package is obsolete --- - use 'expl3' instead} - \@ehc -\RequirePackage{expl3} - -%% -%% -%% End of file `l3skip.sty'. diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3str.sty b/Master/texmf-dist/tex/latex/l3kernel/l3str.sty index 37a522d22b0..966ecdc1625 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3str.sty +++ b/Master/texmf-dist/tex/latex/l3kernel/l3str.sty @@ -31,18 +31,15 @@ \typeout{** } \typeout{** Its functionality is now only provided as part of the expl3 package.} \typeout{** } -\typeout{** After showing you an error message you can hit <return> we will continue} -\typeout{** for now by loading expl3 for you. However, the old packages will be} -\typeout{** removed entirely at the end of 2017.} +\typeout{** The old packages will be removed entirely at the end of 2018.} \typeout{** } \typeout{** Therefore, please replace '\string\usepackage{\old@liii@module@name}'} \typeout{** with '\string\usepackage{expl3}' in your documents as soon as possible.} \typeout{** } \typeout{*******************************************************************} -\PackageError +\PackageWarning \old@liii@module@name{This package is obsolete --- use 'expl3' instead} - \@ehc \RequirePackage{expl3} %% diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3tl.sty b/Master/texmf-dist/tex/latex/l3kernel/l3tl.sty deleted file mode 100644 index 664667d568e..00000000000 --- a/Master/texmf-dist/tex/latex/l3kernel/l3tl.sty +++ /dev/null @@ -1,50 +0,0 @@ -%% -%% This is file `l3tl.sty', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% l3oldmodules.dtx (with options: `l3tl,oldmodules') -%% -%% Copyright (C) 1990-2018 The LaTeX3 Project -%% -%% It may be distributed and/or modified under the conditions of -%% the LaTeX Project Public License (LPPL), either version 1.3c of -%% this license or (at your option) any later version. The latest -%% version of this license is in the file: -%% -%% https://www.latex-project.org/lppl.txt -%% -%% This file is part of the "l3kernel bundle" (The Work in LPPL) -%% and all files in that bundle must be distributed together. -%% -%% File: l3oldmodules.dtx Copyright (C) 2014-2018 The LaTeX3 Project -\def\old@liii@module@name -{l3tl} -\ProvidesPackage\old@liii@module@name - [% - 2017/03/18 Obsolete L3 package - ] -\typeout{*****************************************************************} -\typeout{** } -\typeout{** Package \old@liii@module@name\space is obsolete and has been removed!} -\typeout{** } -\typeout{** Its functionality is now only provided as part of the expl3 package.} -\typeout{** } -\typeout{** After showing you an error message you can hit <return> we will continue} -\typeout{** for now by loading expl3 for you. However, the old packages will be} -\typeout{** removed entirely at the end of 2017.} -\typeout{** } -\typeout{** Therefore, please replace '\string\usepackage{\old@liii@module@name}'} -\typeout{** with '\string\usepackage{expl3}' in your documents as soon as possible.} -\typeout{** } -\typeout{*******************************************************************} -\PackageError - \old@liii@module@name{This package is obsolete --- - use 'expl3' instead} - \@ehc -\RequirePackage{expl3} - -%% -%% -%% End of file `l3tl.sty'. diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3token.sty b/Master/texmf-dist/tex/latex/l3kernel/l3token.sty deleted file mode 100644 index ec042d51175..00000000000 --- a/Master/texmf-dist/tex/latex/l3kernel/l3token.sty +++ /dev/null @@ -1,50 +0,0 @@ -%% -%% This is file `l3token.sty', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% l3oldmodules.dtx (with options: `l3token,oldmodules') -%% -%% Copyright (C) 1990-2018 The LaTeX3 Project -%% -%% It may be distributed and/or modified under the conditions of -%% the LaTeX Project Public License (LPPL), either version 1.3c of -%% this license or (at your option) any later version. The latest -%% version of this license is in the file: -%% -%% https://www.latex-project.org/lppl.txt -%% -%% This file is part of the "l3kernel bundle" (The Work in LPPL) -%% and all files in that bundle must be distributed together. -%% -%% File: l3oldmodules.dtx Copyright (C) 2014-2018 The LaTeX3 Project -\def\old@liii@module@name -{l3token} -\ProvidesPackage\old@liii@module@name - [% - 2017/03/18 Obsolete L3 package - ] -\typeout{*****************************************************************} -\typeout{** } -\typeout{** Package \old@liii@module@name\space is obsolete and has been removed!} -\typeout{** } -\typeout{** Its functionality is now only provided as part of the expl3 package.} -\typeout{** } -\typeout{** After showing you an error message you can hit <return> we will continue} -\typeout{** for now by loading expl3 for you. However, the old packages will be} -\typeout{** removed entirely at the end of 2017.} -\typeout{** } -\typeout{** Therefore, please replace '\string\usepackage{\old@liii@module@name}'} -\typeout{** with '\string\usepackage{expl3}' in your documents as soon as possible.} -\typeout{** } -\typeout{*******************************************************************} -\PackageError - \old@liii@module@name{This package is obsolete --- - use 'expl3' instead} - \@ehc -\RequirePackage{expl3} - -%% -%% -%% End of file `l3token.sty'. diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3xdvipdfmx.def b/Master/texmf-dist/tex/latex/l3kernel/l3xdvipdfmx.def index a3448270a51..d72da1a8865 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3xdvipdfmx.def +++ b/Master/texmf-dist/tex/latex/l3kernel/l3xdvipdfmx.def @@ -18,7 +18,7 @@ %% This file is part of the "l3kernel bundle" (The Work in LPPL) %% and all files in that bundle must be distributed together. %% -%% File: l3drivers.dtx Copyright(C) 2011-2017 The LaTeX3 Project +%% File: l3drivers.dtx Copyright(C) 2011-2018 The LaTeX3 Project \ProvidesExplFile {l3xdvidpfmx.def}{2017/03/18}{} {L3 Experimental driver: xdvipdfmx} @@ -51,10 +51,13 @@ \cs_new_protected:Npn \driver_color_rgb:nnn #1#2#3 { \__driver_color_select:n { rgb~ #1 ~ #2 ~ #3 } } \cs_new_protected:Npn \driver_color_spot:nn #1#2 - { \__driver_color_select:n { color~push~\c_space_tl #1 } } + { \__driver_color_select:n { \c_space_tl #1 } } \cs_new_protected:Npn \__driver_color_select:n #1 - { \tex_special:D { color~push~ #1 } } -\cs_new_protected:Npn \driver_color_reset: + { + \tex_special:D { color~push~ #1 } + \group_insert_after:N \__driver_color_reset: + } +\cs_new_protected:Npn \__driver_color_reset: { \tex_special:D { color~pop } } \cs_new_protected:Npn \__driver_literal:n #1 { \tex_special:D { pdf:literal~ #1 } } @@ -325,58 +328,97 @@ { \__driver_draw_literal:n { 1 ~ j } } \cs_new_protected:Npn \driver_draw_join_bevel: { \__driver_draw_literal:n { 2 ~ j } } -\cs_new_protected:Npn \driver_draw_color_cmyk:nnnn #1#2#3#4 +\cs_new_protected:Npn \driver_draw_color_fill_cmyk:nnnn #1#2#3#4 + { \__driver_color_fill_select:n { #1 ~ #2 ~ #3 ~ #4 ~ k } } +\cs_new_protected:Npn \driver_draw_color_stroke_cmyk:nnnn #1#2#3#4 + { \__driver_color_select:n { #1 ~ #2 ~ #3 ~ #4 ~ K } } +\cs_new_protected:Npn \driver_draw_color_fill_gray:n #1 + { \__driver_color_fill_select:n { #1 ~ g } } +\cs_new_protected:Npn \driver_draw_color_stroke_gray:n #1 + { \__driver_color_select:n { #1 ~ G } } +\cs_new_protected:Npn \driver_draw_color_fill_rgb:nnn #1#2#3 + { \__driver_color_fill_select:n { #1 ~ #2 ~ #3 ~ rg } } +\cs_new_protected:Npn \driver_draw_color_stroke_rgb:nnn #1#2#3 + { \__driver_color_select:n { #1 ~ #2 ~ #3 ~ RG } } +\cs_new_eq:NN \__driver_color_fill_select:n \__driver_draw_literal:n +\cs_new_protected:Npn \driver_draw_cm:nnnn #1#2#3#4 { - \__driver_draw_literal:n - { #1 ~ #2 ~ #3 ~ #4 ~ k ~ #1 ~ #2 ~ #3 ~ #4 ~ K } + \__driver_draw_cm_decompose:nnnnN {#1} {#2} {#3} {#4} + \__driver_draw_cm:nnnn } -\cs_new_protected:Npn \driver_draw_fill_cmyk:nnnn #1#2#3#4 +\cs_new_protected:Npn \__driver_draw_cm:nnnn #1#2#3#4 { - \__driver_draw_literal:n { #1 ~ #2 ~ #3 ~ #4 ~ k } + \tex_special:D + { + x:rotate~ + \fp_compare:nNnTF {#1} = \c_zero_fp + { 0 } + { \fp_eval:n { round ( -#1 , 5 ) } } + } + \tex_special:D + { + x:scale~ + \fp_eval:n { round ( #2 , 5 ) } ~ + \fp_eval:n { round ( #3 , 5 ) } + } + \tex_special:D + { + x:rotate~ + \fp_compare:nNnTF {#4} = \c_zero_fp + { 0 } + { \fp_eval:n { round ( -#4 , 5 ) } } + } } -\cs_new_protected:Npn \driver_draw_stroke_cmyk:nnnn #1#2#3#4 - { \__driver_draw_literal:n { #1 ~ #2 ~ #3 ~ #4 ~ K } } -\cs_new_protected:Npn \driver_draw_color_gray:n #1 - { \__driver_draw_literal:n { #1 ~ g ~ #1 ~ G } } -\cs_new_protected:Npn \driver_draw_fill_gray:n #1 - { \__driver_draw_literal:n { #1 ~ g } } -\cs_new_protected:Npn \driver_draw_stroke_gray:n #1 - { \__driver_draw_literal:n { #1 ~ G } } -\cs_new_protected:Npn \driver_draw_color_rgb:nnn #1#2#3 +\cs_new_protected:Npn \__driver_draw_cm_decompose:nnnnN #1#2#3#4#5 { - \__driver_draw_literal:n - { #1 ~ #2 ~ #3 ~ rg ~ #1 ~ #2 ~ #3 ~ RG } + \use:x + { + \__driver_draw_cm_decompose_auxi:nnnnN + { \fp_eval:n { (#1 + #4) / 2 } } + { \fp_eval:n { (#1 - #4) / 2 } } + { \fp_eval:n { (#3 + #2) / 2 } } + { \fp_eval:n { (#3 - #2) / 2 } } + } + #5 } -\cs_new_protected:Npn \driver_draw_fill_rgb:nnn #1#2#3 - { \__driver_draw_literal:n { #1 ~ #2 ~ #3 ~ rg } } -\cs_new_protected:Npn \driver_draw_stroke_rgb:nnn #1#2#3 - { \__driver_draw_literal:n { #1 ~ #2 ~ #3 ~ RG } } -\cs_new_protected:Npn \driver_draw_transformcm:nnnnnn #1#2#3#4#5#6 +\cs_new_protected:Npn \__driver_draw_cm_decompose_auxi:nnnnN #1#2#3#4#5 { - \__driver_draw_literal:x + \use:x { - #1 ~ #2 ~ #3 ~ #4 ~ - \dim_to_decimal_in_bp:n {#5} ~ \dim_to_decimal_in_bp:n {#6} ~ - cm + \__driver_draw_cm_decompose_auxii:nnnnN + { \fp_eval:n { 2 * sqrt ( #1 * #1 + #4 * #4 ) } } + { \fp_eval:n { 2 * sqrt ( #2 * #2 + #3 * #3 ) } } + { \fp_eval:n { atand ( #3 , #2 ) } } + { \fp_eval:n { atand ( #4 , #1 ) } } } + #5 } -\cs_new_protected:Npn \driver_draw_hbox:Nnnnnnn #1#2#3#4#5#6#7 +\cs_new_protected:Npn \__driver_draw_cm_decompose_auxii:nnnnN #1#2#3#4#5 { - \hbox_set:Nn \l__driver_tmp_box + \use:x { - \tex_kern:D \__dim_eval:n {#6} - \__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: + \__driver_draw_cm_decompose_auxiii:nnnnN + { \fp_eval:n { ( #4 - #3 ) / 2 } } + { \fp_eval:n { ( #1 + #2 ) / 2 } } + { \fp_eval:n { ( #1 - #2 ) / 2 } } + { \fp_eval:n { ( #4 + #3 ) / 2 } } } - \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 + #5 + } +\cs_new_protected:Npn \__driver_draw_cm_decompose_auxiii:nnnnN #1#2#3#4#5 + { + \fp_compare:nNnTF { abs( #2 ) } > { abs ( #3 ) } + { #5 {#1} {#2} {#3} {#4} } + { #5 {#1} {#3} {#2} {#4} } + } +\cs_new_protected:Npn \driver_draw_box_use:Nnnnn #1#2#3#4#5 + { + \__driver_scope_begin: + \tex_special:D { pdf:btrans~matrix~ #2 ~ #3 ~ #4 ~ #5 ~ 0 ~ 0 } + \hbox_overlap_right:n { \box_use:N #1 } + \tex_special:D { pdf:etrans } + \__driver_scope_end: } -\box_new:N \l__driver_tmp_box %% %% %% End of file `l3xdvipdfmx.def'. |