summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-points.dtx
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2019-03-05 22:35:14 +0000
committerKarl Berry <karl@freefriends.org>2019-03-05 22:35:14 +0000
commit68872ff6a2a91fa0e84763fc9316493d82075c95 (patch)
tree0546ec4c414553802e31a423aec44f74d252f645 /Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-points.dtx
parent541c4ddf7c5b402b9cfe8af5ef4e49ffa15d3e83 (diff)
l3 (5mar19)
git-svn-id: svn://tug.org/texlive/trunk@50246 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-points.dtx')
-rw-r--r--Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-points.dtx97
1 files changed, 63 insertions, 34 deletions
diff --git a/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-points.dtx b/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-points.dtx
index 5c81074a407..f8d729ca030 100644
--- a/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-points.dtx
+++ b/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-points.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2019-01-28}
+% \date{Released 2019-03-05}
%
% \maketitle
%
@@ -67,7 +67,7 @@
% Equivalents of following \pkg{pgf} functions are deliberately omitted:
% \begin{itemize}
% \item \cs{pgfpointorigin}: Can be given explicitly as |0pt,0pt|.
-% \item \cs{pgfpoint}, \cs{pgfpointadd}, \cs{pgfpointdiff},
+% \item \cs{pgfpointadd}, \cs{pgfpointdiff},
% \cs{pgfpointscale}: Can be given explicitly.
% \item \cs{pgfextractx}, \cs{pgfextracty}: Available by applying
% \cs{use_i:nn}/\cs{use_ii:nn} or similar to the \texttt{x}-type
@@ -93,11 +93,17 @@
% \subsection{Support functions}
%
% \begin{macro}[EXP]{\@@_point_process:nn}
-% \begin{macro}[EXP]{\@@_point_process_auxi:nn, \@@_point_process_auxi:fn}
+% \begin{macro}[EXP]{\@@_point_process_auxi:nn}
% \begin{macro}[EXP]{\@@_point_process_auxii:nw}
% \begin{macro}[EXP]{\@@_point_process:nnn}
-% \begin{macro}[EXP]{\@@_point_process_auxiii:nnn, \@@_point_process_auxiii:ffn}
+% \begin{macro}[EXP]{\@@_point_process_auxiii:nnn}
% \begin{macro}[EXP]{\@@_point_process_auxiv:nw}
+% \begin{macro}[EXP]{\@@_point_process:nnnn}
+% \begin{macro}[EXP]{\@@_point_process_auxv:nnnn}
+% \begin{macro}[EXP]{\@@_point_process_auxvi:nw}
+% \begin{macro}[EXP]{\@@_point_process:nnnnn}
+% \begin{macro}[EXP]{\@@_point_process_auxvii:nnnnn}
+% \begin{macro}[EXP]{\@@_point_process_auxviii:nw}
% Execute whatever code is passed to extract the $x$ and $y$ co-ordinates.
% The first argument here should itself absorb two arguments. There is
% also a version to deal with two co-ordinates: common enough to justify a
@@ -105,27 +111,55 @@
% \begin{macrocode}
\cs_new:Npn \@@_point_process:nn #1#2
{
- \@@_point_process_auxi:fn
+ \exp_args:Nf \@@_point_process_auxi:nn
{ \@@_point_to_dim:n {#2} }
{#1}
}
\cs_new:Npn \@@_point_process_auxi:nn #1#2
{ \@@_point_process_auxii:nw {#2} #1 \q_stop }
-\cs_generate_variant:Nn \@@_point_process_auxi:nn { f }
\cs_new:Npn \@@_point_process_auxii:nw #1 #2 , #3 \q_stop
{ #1 {#2} {#3} }
\cs_new:Npn \@@_point_process:nnn #1#2#3
{
- \@@_point_process_auxiii:ffn
+ \exp_args:Nff \@@_point_process_auxiii:nnn
{ \@@_point_to_dim:n {#2} }
{ \@@_point_to_dim:n {#3} }
{#1}
}
\cs_new:Npn \@@_point_process_auxiii:nnn #1#2#3
{ \@@_point_process_auxiv:nw {#3} #1 \q_mark #2 \q_stop }
-\cs_generate_variant:Nn \@@_point_process_auxiii:nnn { ff }
\cs_new:Npn \@@_point_process_auxiv:nw #1 #2 , #3 \q_mark #4 , #5 \q_stop
{ #1 {#2} {#3} {#4} {#5} }
+\cs_new:Npn \@@_point_process:nnnn #1#2#3#4
+ {
+ \exp_args:Nfff \@@_point_process_auxv:nnnn
+ { \@@_point_to_dim:n {#2} }
+ { \@@_point_to_dim:n {#3} }
+ { \@@_point_to_dim:n {#4} }
+ {#1}
+ }
+\cs_new:Npn \@@_point_process_auxv:nnnn #1#2#3#4
+ { \@@_point_process_auxvi:nw {#4} #1 \q_mark #2 \q_mark #3 \q_stop }
+\cs_new:Npn \@@_point_process_auxvi:nw
+ #1 #2 , #3 \q_mark #4 , #5 \q_mark #6 , #7 \q_stop
+ { #1 {#2} {#3} {#4} {#5} {#6} {#7} }
+\cs_new:Npn \@@_point_process:nnnnn #1#2#3#4#5
+ {
+ \exp_args:Nffff \@@_point_process_auxvii:nnnnn
+ { \@@_point_to_dim:n {#2} }
+ { \@@_point_to_dim:n {#3} }
+ { \@@_point_to_dim:n {#4} }
+ { \@@_point_to_dim:n {#5} }
+ {#1}
+ }
+\cs_new:Npn \@@_point_process_auxvii:nnnnn #1#2#3#4#5
+ {
+ \@@_point_process_auxviii:nw
+ {#5} #1 \q_mark #2 \q_mark #3 \q_mark #4 \q_stop
+ }
+\cs_new:Npn \@@_point_process_auxviii:nw
+ #1 #2 , #3 \q_mark #4 , #5 \q_mark #6 , #7 \q_mark #8 , #9 \q_stop
+ { #1 {#2} {#3} {#4} {#5} {#6} {#7} {#8} {#9} }
% \end{macrocode}
% \end{macro}
% \end{macro}
@@ -133,6 +167,12 @@
% \end{macro}
% \end{macro}
% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
%
% \begin{macro}[EXP]{\@@_point_to_dim:n}
% \begin{macro}[EXP]{\@@_point_to_dim_aux:n, \@@_point_to_dim_aux:f}
@@ -225,24 +265,21 @@
% \begin{macrocode}
\cs_new:Npn \draw_point_intersect_lines:nnnn #1#2#3#4
{
- \@@_point_process:nnn
- {
- \@@_point_process:nnn
- { \@@_point_intersect_lines:nnnnnnnn } {#3} {#4}
- }
- {#1} {#2}
+ \@@_point_process:nnnnn
+ { \@@_point_intersect_lines:nnnnnnnn }
+ {#1} {#2} {#3} {#4}
}
% \end{macrocode}
% At this stage we have all of the information we need, fully expanded:
% \begin{enumerate}[label = \#\arabic*, font = \ttfamily]
-% \item $x_{3}$
-% \item $y_{3}$
-% \item $x_{4}$
-% \item $y_{4}$
% \item $x_{1}$
% \item $y_{1}$
% \item $x_{2}$
% \item $y_{2}$
+% \item $x_{3}$
+% \item $y_{3}$
+% \item $x_{4}$
+% \item $y_{4}$
% \end{enumerate}
% so now just have to do all of the calculation.
% \begin{macrocode}
@@ -519,18 +556,14 @@
% \begin{macrocode}
\cs_new:Npn \draw_point_interpolate_arcaxes:nnnnnn #1#2#3#4#5#6
{
- \@@_point_process:nnn
- {
- \@@_point_process:nn
- { \@@_point_interpolate_arcaxes_auxi:nnnnnnnnn {#1} {#5} {#6} }
- {#4}
- }
- {#2} {#3}
+ \@@_point_process:nnnn
+ { \@@_point_interpolate_arcaxes_auxi:nnnnnnnnn {#1} {#5} {#6} }
+ {#2} {#3} {#4}
}
\cs_new:Npn \@@_point_interpolate_arcaxes_auxi:nnnnnnnnn #1#2#3#4#5#6#7#8#9
{
\@@_point_interpolate_arcaxes_auxii:fnnnnnnnn
- { \fp_eval:n {#1} } {#2} {#3} {#6} {#7} {#8} {#9} {#4} {#5}
+ { \fp_eval:n {#1} } {#2} {#3} {#4} {#5} {#6} {#7} {#8} {#9}
}
% \end{macrocode}
% At this stage, the three co-ordinate pairs are fully expanded but somewhat
@@ -613,19 +646,15 @@
% \begin{macrocode}
\cs_new:Npn \draw_point_interpolate_curve:nnnnnn #1#2#3#4#5
{
- \@@_point_process:nnn
- {
- \@@_point_process:nnn
- { \@@_point_interpolate_curve_auxi:nnnnnnnnn {#1} }
- {#4} {#5}
- }
- {#2} {#3}
+ \@@_point_process:nnnnn
+ { \@@_point_interpolate_curve_auxi:nnnnnnnnn {#1} }
+ {#2} {#3} {#4} {#5}
}
\cs_new:Npn \@@_point_interpolate_curve_auxi:nnnnnnnnn #1#2#3#4#5#6#7#8#9
{
\@@_point_interpolate_curve_auxii:fnnnnnnnn
{ \fp_eval:n {#1} }
- {#6} {#7} {#8} {#9} {#2} {#3} {#4} {#5}
+ {#2} {#3} {#4} {#5} {#6} {#7} {#8} {#9}
}
% \end{macrocode}
% At this stage, everything is fully expanded and back in the input order.