summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/l3experimental/l3draw/l3draw.sty
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/latex/l3experimental/l3draw/l3draw.sty')
-rw-r--r--Master/texmf-dist/tex/latex/l3experimental/l3draw/l3draw.sty123
1 files changed, 83 insertions, 40 deletions
diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3draw/l3draw.sty b/Master/texmf-dist/tex/latex/l3experimental/l3draw/l3draw.sty
index 36bc4bd402d..20decb315e3 100644
--- a/Master/texmf-dist/tex/latex/l3experimental/l3draw/l3draw.sty
+++ b/Master/texmf-dist/tex/latex/l3experimental/l3draw/l3draw.sty
@@ -28,7 +28,7 @@
%%
%% File: l3draw.dtx
\RequirePackage{expl3}
-\ProvidesExplPackage{l3draw}{2021-07-12}{}
+\ProvidesExplPackage{l3draw}{2021-08-04}{}
{L3 Experimental core drawing support}
\scan_new:N \s__draw_mark
\scan_new:N \s__draw_stop
@@ -804,7 +804,7 @@
\cs_new:Npn \__draw_point_process:nn #1#2
{
\exp_args:Nf \__draw_point_process_auxi:nn
- { \__draw_point_to_dim:n {#2} }
+ { \draw_point:n {#2} }
{#1}
}
\cs_new:Npn \__draw_point_process_auxi:nn #1#2
@@ -814,8 +814,8 @@
\cs_new:Npn \__draw_point_process:nnn #1#2#3
{
\exp_args:Nff \__draw_point_process_auxiii:nnn
- { \__draw_point_to_dim:n {#2} }
- { \__draw_point_to_dim:n {#3} }
+ { \draw_point:n {#2} }
+ { \draw_point:n {#3} }
{#1}
}
\cs_new:Npn \__draw_point_process_auxiii:nnn #1#2#3
@@ -825,9 +825,9 @@
\cs_new:Npn \__draw_point_process:nnnn #1#2#3#4
{
\exp_args:Nfff \__draw_point_process_auxv:nnnn
- { \__draw_point_to_dim:n {#2} }
- { \__draw_point_to_dim:n {#3} }
- { \__draw_point_to_dim:n {#4} }
+ { \draw_point:n {#2} }
+ { \draw_point:n {#3} }
+ { \draw_point:n {#4} }
{#1}
}
\cs_new:Npn \__draw_point_process_auxv:nnnn #1#2#3#4
@@ -838,10 +838,10 @@
\cs_new:Npn \__draw_point_process:nnnnn #1#2#3#4#5
{
\exp_args:Nffff \__draw_point_process_auxvii:nnnnn
- { \__draw_point_to_dim:n {#2} }
- { \__draw_point_to_dim:n {#3} }
- { \__draw_point_to_dim:n {#4} }
- { \__draw_point_to_dim:n {#5} }
+ { \draw_point:n {#2} }
+ { \draw_point:n {#3} }
+ { \draw_point:n {#4} }
+ { \draw_point:n {#5} }
{#1}
}
\cs_new:Npn \__draw_point_process_auxvii:nnnnn #1#2#3#4#5
@@ -852,18 +852,18 @@
\cs_new:Npn \__draw_point_process_auxviii:nw
#1 #2 , #3 \s__draw_mark #4 , #5 \s__draw_mark #6 , #7 \s__draw_mark #8 , #9 \s__draw_stop
{ #1 {#2} {#3} {#4} {#5} {#6} {#7} {#8} {#9} }
+\cs_new:Npn \draw_point:n #1
+ { \__draw_point_to_dim:f { \fp_eval:n {#1} } }
\cs_new:Npn \__draw_point_to_dim:n #1
- { \__draw_point_to_dim_aux:f { \fp_eval:n {#1} } }
-\cs_new:Npn \__draw_point_to_dim_aux:n #1
- { \__draw_point_to_dim_aux:w #1 }
-\cs_generate_variant:Nn \__draw_point_to_dim_aux:n { f }
-\cs_new:Npn \__draw_point_to_dim_aux:w ( #1 , ~ #2 ) { #1pt , #2pt }
+ { \__draw_point_to_dim:w #1 }
+\cs_generate_variant:Nn \__draw_point_to_dim:n { f }
+\cs_new:Npn \__draw_point_to_dim:w ( #1 , ~ #2 ) { #1pt , #2pt }
\cs_new:Npn \draw_point_polar:nn #1#2
{ \draw_point_polar:nnn {#1} {#1} {#2} }
\cs_new:Npn \draw_point_polar:nnn #1#2#3
{ \__draw_draw_polar:fnn { \fp_eval:n {#3} } {#1} {#2} }
\cs_new:Npn \__draw_draw_polar:nnn #1#2#3
- { \__draw_point_to_dim:n { cosd(#1) * (#2) , sind(#1) * (#3) } }
+ { \draw_point:n { cosd(#1) * (#2) , sind(#1) * (#3) } }
\cs_generate_variant:Nn \__draw_draw_polar:nnn { f }
\cs_new:Npn \draw_point_unit_vector:n #1
{ \__draw_point_process:nn { \__draw_point_unit_vector:nn } {#1} }
@@ -878,7 +878,7 @@
\fp_compare:nNnTF {#1} = \c_zero_fp
{ 0pt, 1pt }
{
- \__draw_point_to_dim:n
+ \draw_point:n
{ ( #2 , #3 ) / #1 }
}
}
@@ -900,7 +900,7 @@
}
\cs_new:Npn \__draw_point_intersect_lines_aux:nnnnnn #1#2#3#4#5#6
{
- \__draw_point_to_dim:n
+ \draw_point:n
{
( #2 * #3 - #1 * #4 , #2 * #5 - #1 * #6 )
/ ( #4 * #5 - #6 * #3 )
@@ -959,7 +959,7 @@
\cs_generate_variant:Nn \__draw_point_intersect_circles_auxvi:nnnnnnnn { f }
\cs_new:Npn \__draw_point_intersect_circles_auxvii:nnnnnnn #1#2#3#4#5#6#7
{
- \__draw_point_to_dim:n
+ \draw_point:n
{ #6 + #4 * #1 + #2 * #3 * #5 , #7 + #5 * #1 + -1 * #2 * #3 * #4 }
}
\cs_generate_variant:Nn \__draw_point_intersect_circles_auxvii:nnnnnnn { fff }
@@ -976,7 +976,7 @@
}
\cs_generate_variant:Nn \__draw_point_interpolate_line_aux:nnnnn { f }
\cs_new:Npn \__draw_point_interpolate_line_aux:nnnnnn #1#2#3#4#5#6
- { \__draw_point_to_dim:n { #2 * #3 + #1 * #5 , #2 * #4 + #1 * #6 } }
+ { \draw_point:n { #2 * #3 + #1 * #5 , #2 * #4 + #1 * #6 } }
\cs_generate_variant:Nn \__draw_point_interpolate_line_aux:nnnnnn { f }
\cs_new:Npn \draw_point_interpolate_distance:nnn #1#2#3
{
@@ -994,7 +994,7 @@
{ \draw_point_unit_vector:n { ( #2 ) - ( #3 , #4 ) } }
}
\cs_new:Npn \__draw_point_interpolate_distance:nnnnn #1#2#3#4#5
- { \__draw_point_to_dim:n { #2 + #1 * #4 , #3 + #1 * #5 } }
+ { \draw_point:n { #2 + #1 * #4 , #3 + #1 * #5 } }
\cs_generate_variant:Nn \__draw_point_interpolate_distance:nnnnn { f }
\cs_new:Npn \draw_point_interpolate_arcaxes:nnnnnn #1#2#3#4#5#6
{
@@ -1024,7 +1024,7 @@
\cs_generate_variant:Nn \__draw_point_interpolate_arcaxes_auxiii:nnnnnnn { f }
\cs_new:Npn \__draw_point_interpolate_arcaxes_auxiv:nnnnnnnn #1#2#3#4#5#6#7#8
{
- \__draw_point_to_dim:n
+ \draw_point:n
{ #3 + #1 * #5 + #2 * #7 , #4 + #1 * #6 + #2 * #8 }
}
\cs_generate_variant:Nn \__draw_point_interpolate_arcaxes_auxiv:nnnnnnnn { ff }
@@ -1085,7 +1085,7 @@
}
\cs_new:Npn \__draw_point_interpolate_curve_auxviii:nnnnnn #1#2#3#4#5#6
{
- \__draw_point_to_dim:n
+ \draw_point:n
{ #5 * #3 + #6 * #1 , #5 * #4 + #6 * #2 }
}
\cs_generate_variant:Nn \__draw_point_interpolate_curve_auxviii:nnnnnn { ffff }
@@ -1117,7 +1117,7 @@
{ \__draw_point_vec:ff { \fp_eval:n {#1} } { \fp_eval:n {#2} } }
\cs_new:Npn \__draw_point_vec:nn #1#2
{
- \__draw_point_to_dim:n
+ \draw_point:n
{
#1 * \l__draw_xvec_x_dim + #2 * \l__draw_yvec_x_dim ,
#1 * \l__draw_xvec_y_dim + #2 * \l__draw_yvec_y_dim
@@ -1131,7 +1131,7 @@
}
\cs_new:Npn \__draw_point_vec:nnn #1#2#3
{
- \__draw_point_to_dim:n
+ \draw_point:n
{
#1 * \l__draw_xvec_x_dim
+ #2 * \l__draw_yvec_x_dim
@@ -1149,7 +1149,7 @@
{ \__draw_draw_vec_polar:fnn { \fp_eval:n {#3} } {#1} {#2} }
\cs_new:Npn \__draw_draw_vec_polar:nnn #1#2#3
{
- \__draw_point_to_dim:n
+ \draw_point:n
{
cosd(#1) * (#2) * \l__draw_xvec_x_dim ,
sind(#1) * (#3) * \l__draw_yvec_y_dim
@@ -1165,7 +1165,7 @@
{
\bool_if:NTF \l__draw_matrix_active_bool
{
- \__draw_point_to_dim:n
+ \draw_point:n
{
(
\l__draw_matrix_a_fp * #1
@@ -1181,7 +1181,7 @@
}
}
{
- \__draw_point_to_dim:n
+ \draw_point:n
{
(#1, #2)
+ ( \l__draw_xshift_dim , \l__draw_yshift_dim )
@@ -1197,7 +1197,7 @@
{
\bool_if:NTF \l__draw_matrix_active_bool
{
- \__draw_point_to_dim:n
+ \draw_point:n
{
(
\l__draw_matrix_a_fp * #1
@@ -1210,7 +1210,7 @@
)
}
}
- { \__draw_point_to_dim:n { (#1, #2) } }
+ { \draw_point:n { (#1, #2) } }
}
%% File: l3draw-scopes.dtx
\dim_new:N \g__draw_xmax_dim
@@ -1251,6 +1251,7 @@
}
\cs_new_protected:Npn \draw_end:
{
+ \__draw_baseline_finalise:w
\exp_args:NNNV \hbox_set_end:
\clist_set:Nn \l_draw_layers_clist \l_draw_layers_clist
\__draw_layers_insert:
@@ -1263,21 +1264,63 @@
\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 }
+ \__draw_finalise:
\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:
}
+\cs_new_protected:Npn \__draw_finalise:
+ {
+ \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_dp:Nn \l__draw_main_box { 0pt }
+ \box_set_ht:Nn \l__draw_main_box
+ { \g__draw_ymax_dim - \g__draw_ymin_dim }
+ }
+\cs_new_protected:Npn \__draw_finalise_baseline:n #1
+ {
+ \hbox_set:Nn \l__draw_main_box
+ {
+ \skip_horizontal:n { -\g__draw_xmin_dim }
+ \box_move_down:nn
+ {#1}
+ { \box_use_drop:N \l__draw_main_box }
+ }
+ \box_set_dp:Nn \l__draw_main_box
+ {
+ \dim_max:nn
+ { #1 - \g__draw_ymin_dim }
+ { 0pt }
+ }
+ \box_set_ht:Nn \l__draw_main_box
+ { \g__draw_ymax_dim + #1 }
+ }
+\bool_new:N \l__draw_baseline_bool
+\dim_new:N \l__draw_baseline_dim
+\cs_new_protected:Npn \draw_baseline:n #1
+ {
+ \bool_set_true:N \l__draw_baseline_bool
+ \dim_set:Nn \l__draw_baseline_dim { \fp_to_dim:n {#1} }
+ }
+\cs_new_protected:Npn \__draw_baseline_finalise:w #1 \__draw_finalise:
+ {
+ \bool_if:NTF \l__draw_baseline_bool
+ {
+ \use:x
+ {
+ \exp_not:n {#1}
+ \__draw_finalise_baseline:n { \dim_use:N \l__draw_baseline_dim }
+ }
+ }
+ { #1 \__draw_finalise: }
+ }
\dim_new:N \l__draw_linewidth_dim
\tl_new:N \l__draw_fill_color_tl
\tl_new:N \l__draw_stroke_color_tl