summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/spath3/spath3.sty
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/latex/spath3/spath3.sty')
-rw-r--r--Master/texmf-dist/tex/latex/spath3/spath3.sty127
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