diff options
Diffstat (limited to 'Master/texmf-dist/tex/latex/spath3/spath3.sty')
-rw-r--r-- | Master/texmf-dist/tex/latex/spath3/spath3.sty | 127 |
1 files changed, 119 insertions, 8 deletions
diff --git a/Master/texmf-dist/tex/latex/spath3/spath3.sty b/Master/texmf-dist/tex/latex/spath3/spath3.sty index 868e648f570..6a136789262 100644 --- a/Master/texmf-dist/tex/latex/spath3/spath3.sty +++ b/Master/texmf-dist/tex/latex/spath3/spath3.sty @@ -15,7 +15,7 @@ \NeedsTeXFormat{LaTeX2e} \RequirePackage{expl3} \RequirePackage{pgf} -\ProvidesExplPackage {spath3} {2021/02/05} {2.2} {Functions for +\ProvidesExplPackage {spath3} {2021/02/21} {2.4} {Functions for manipulating PGF soft paths} \RequirePackage{xparse} \cs_new_protected:Nn \__spath_tl_put_right_braced:Nn @@ -1226,7 +1226,7 @@ manipulating PGF soft paths} { \spath_splice_between:NVnn #1#1{#2}{#3} } -\cs_generate_variant:Nn \spath_splice_between:Nnn {NVV, cnn, cvv, Nvn} +\cs_generate_variant:Nn \spath_splice_between:Nnn {NVV, cnn, cvv, Nvn, NVn} \cs_new_protected_nopar:Npn \spath_gsplice_between:Nnnn #1#2#3#4 { \__spath_splice_between:nnn {#2}{#3}{#4} @@ -1238,7 +1238,7 @@ manipulating PGF soft paths} { \spath_gsplice_between:NVnn #1#1{#2}{#3} } -\cs_generate_variant:Nn \spath_gsplice_between:Nnn {NVV, cnn, cvv} +\cs_generate_variant:Nn \spath_gsplice_between:Nnn {NVV, cnn, cvv, Nvn, NVn} \cs_new_protected_nopar:Npn \__spath_close_with:nn #1#2 { \group_begin: @@ -1355,7 +1355,7 @@ manipulating PGF soft paths} { \spath_append_no_move:NVn #1#1{#2} } -\cs_generate_variant:Nn \spath_append_no_move:Nn {NV, cv, Nv} +\cs_generate_variant:Nn \spath_append_no_move:Nn {NV, cv, Nv, cV} \cs_new_protected_nopar:Npn \spath_gappend_no_move:Nnn #1#2#3 { \__spath_append_no_move:nn {#2}{#3} @@ -1367,7 +1367,7 @@ manipulating PGF soft paths} { \spath_gappend_no_move:NVn #1#1{#2} } -\cs_generate_variant:Nn \spath_gappend_no_move:Nn {NV, cv, Nv} +\cs_generate_variant:Nn \spath_gappend_no_move:Nn {NV, cv, Nv, cV} \cs_new_protected_nopar:Npn \spath_append:Nnn #1#2#3 { \tl_set:Nn #1 {#2} @@ -1378,7 +1378,7 @@ manipulating PGF soft paths} { \spath_append:NVn #1#1{#2} } -\cs_generate_variant:Nn \spath_append:Nn {NV, Nv, cv} +\cs_generate_variant:Nn \spath_append:Nn {NV, Nv, cv, cV} \cs_new_protected_nopar:Npn \spath_gappend:Nnn #1#2#3 { \tl_gset:Nn #1 {#2} @@ -1389,7 +1389,7 @@ manipulating PGF soft paths} { \spath_gappend:NVn #1#1{#2} } -\cs_generate_variant:Nn \spath_gappend:Nn {NV, Nv, cv} +\cs_generate_variant:Nn \spath_gappend:Nn {NV, Nv, cv, cV} \cs_new_protected_nopar:Npn \spath_prepend_no_move:Nnn #1#2#3 { \spath_append_no_move:Nnn #1{#3}{#2} @@ -1596,6 +1596,117 @@ manipulating PGF soft paths} { \spath_gopen:NV #1#1 } +\cs_new_protected_nopar:Npn \__spath_replace_lines:n #1 +{ + \group_begin: + \tl_set:Nn \l__spath_tmpa_tl {#1} + \tl_clear:N \l__spath_tmpb_tl + \dim_set:Nn \l__spath_tmpa_dim {0pt} + \dim_set:Nn \l__spath_tmpb_dim {0pt} + + \bool_do_until:nn + { + \tl_if_empty_p:N \l__spath_tmpa_tl + } + { + \tl_set:Nx \l__spath_tmpc_tl {\tl_item:Nn \l__spath_tmpa_tl {1}} + \tl_set:Nx \l__spath_tmpd_tl {\tl_item:Nn \l__spath_tmpa_tl {2}} + \tl_set:Nx \l__spath_tmpe_tl {\tl_item:Nn \l__spath_tmpa_tl {3}} + + \tl_if_eq:NNTF \l__spath_tmpc_tl \c_spath_lineto_tl + { + \tl_put_right:NV \l__spath_tmpb_tl \c_spath_curvetoa_tl + \tl_put_right:Nx \l__spath_tmpb_tl + { + { + \fp_to_dim:n + { + 2/3 * (\l__spath_tmpa_dim) + + + 1/3 * (\l__spath_tmpd_tl) + } + } + } + \tl_put_right:Nx \l__spath_tmpb_tl + { + { + \fp_to_dim:n + { + 2/3 * (\l__spath_tmpb_dim) + + + 1/3 * (\l__spath_tmpe_tl) + } + } + } + \tl_put_right:NV \l__spath_tmpb_tl \c_spath_curvetob_tl + \tl_put_right:Nx \l__spath_tmpb_tl + { + { + \fp_to_dim:n + { + 1/3 * (\l__spath_tmpa_dim) + + + 2/3 * (\l__spath_tmpd_tl) + } + } + } + \tl_put_right:Nx \l__spath_tmpb_tl + { + { + \fp_to_dim:n + { + 1/3 * (\l__spath_tmpb_dim) + + + 2/3 * (\l__spath_tmpe_tl) + } + } + } + \tl_put_right:NV \l__spath_tmpb_tl \c_spath_curveto_tl + \__spath_tl_put_right_braced:NV \l__spath_tmpb_tl \l__spath_tmpd_tl + \__spath_tl_put_right_braced:NV \l__spath_tmpb_tl \l__spath_tmpe_tl + } + { + \tl_put_right:NV \l__spath_tmpb_tl \l__spath_tmpc_tl + \__spath_tl_put_right_braced:NV \l__spath_tmpb_tl \l__spath_tmpd_tl + \__spath_tl_put_right_braced:NV \l__spath_tmpb_tl \l__spath_tmpe_tl + } + + \dim_set:Nn \l__spath_tmpa_dim {\l__spath_tmpd_tl} + \dim_set:Nn \l__spath_tmpb_dim {\l__spath_tmpe_tl} + + \prg_replicate:nn {3} + { + \tl_set:Nx \l__spath_tmpa_tl {\tl_tail:N \l__spath_tmpa_tl} + } + } + \tl_gset_eq:NN \g__spath_output_tl \l__spath_tmpb_tl + \group_end: +} +\cs_generate_variant:Nn \__spath_replace_lines:n {V} +\cs_new_protected_nopar:Npn \spath_replace_lines:Nn #1#2 +{ + \__spath_replace_lines:n {#2} + \tl_set_eq:NN #1 \g__spath_output_tl + \tl_gclear:N \g__spath_output_tl +} +\cs_generate_variant:Nn \spath_replace_lines:Nn {NV, cV, cv, Nv} +\cs_new_protected_nopar:Npn \spath_replace_lines:N #1 +{ + \spath_replace_lines:NV #1#1 +} +\cs_generate_variant:Nn \spath_replace_lines:N {c} +\cs_new_protected_nopar:Npn \spath_greplace_lines:Nn #1#2 +{ + \__spath_replace_lines:n {#2} + \tl_gset_eq:NN #1 \g__spath_output_tl + \tl_gclear:N \g__spath_output_tl +} +\cs_generate_variant:Nn \spath_greplace_lines:Nn {NV, cV, cv, Nv} +\cs_new_protected_nopar:Npn \spath_greplace_lines:N #1 +{ + \spath_greplace_lines:NV #1#1 +} +\cs_generate_variant:Nn \spath_greplace_lines:N {c} \cs_new_protected_nopar:Npn \__spath_remove_empty_components:n #1 { \group_begin: @@ -3810,7 +3921,6 @@ manipulating PGF soft paths} } } \cs_generate_variant:Nn \spath_show:n {V, v} - \cs_new_protected_nopar:Npn \spath_get_current_path:N #1 { \pgfsyssoftpath@getcurrentpath #1 @@ -3898,6 +4008,7 @@ manipulating PGF soft paths} \tl_clear_new:c {tikz@timer} \tl_set:cn {tikz@timer} { + \pgftransformreset \spath_reallength:Nn \l__spath_tmpa_int {#1} \tl_set_eq:Nc \l__spath_tmpb_tl {tikz@time} \tl_set:Nx \l__spath_tmpb_tl |