diff options
author | Karl Berry <karl@freefriends.org> | 2019-03-05 22:35:14 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2019-03-05 22:35:14 +0000 |
commit | 68872ff6a2a91fa0e84763fc9316493d82075c95 (patch) | |
tree | 0546ec4c414553802e31a423aec44f74d252f645 /Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-points.dtx | |
parent | 541c4ddf7c5b402b9cfe8af5ef4e49ffa15d3e83 (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.dtx | 97 |
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. |