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/latex/l3experimental | |
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/latex/l3experimental')
29 files changed, 683 insertions, 242 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 |