texlive[64920] Master: tikz-ext rearrange
commits+karl at tug.org
commits+karl at tug.org
Thu Nov 3 22:03:19 CET 2022
Revision: 64920
http://tug.org/svn/texlive?view=revision&revision=64920
Author: karl
Date: 2022-11-03 22:03:19 +0100 (Thu, 03 Nov 2022)
Log Message:
-----------
tikz-ext rearrange
Modified Paths:
--------------
trunk/Master/tlpkg/libexec/ctan2tds
Added Paths:
-----------
trunk/Master/texmf-dist/tex/generic/tikz-ext/
trunk/Master/texmf-dist/tex/generic/tikz-ext/pgfcalendar-ext.code.tex
trunk/Master/texmf-dist/tex/generic/tikz-ext/pgfkeyslibraryext.pgfkeys-plus.code.tex
trunk/Master/texmf-dist/tex/generic/tikz-ext/pgflibraryext.pgfkeys-plus.code.tex
trunk/Master/texmf-dist/tex/generic/tikz-ext/pgflibraryext.shapes.circlearrow.code.tex
trunk/Master/texmf-dist/tex/generic/tikz-ext/pgflibraryext.shapes.circlecrosssplit.code.tex
trunk/Master/texmf-dist/tex/generic/tikz-ext/pgflibraryext.shapes.heatmark.code.tex
trunk/Master/texmf-dist/tex/generic/tikz-ext/pgflibraryext.shapes.rectangleroundedcorners.code.tex
trunk/Master/texmf-dist/tex/generic/tikz-ext/pgflibraryext.shapes.superellipse.code.tex
trunk/Master/texmf-dist/tex/generic/tikz-ext/pgflibraryext.shapes.uncenteredrectangle.code.tex
trunk/Master/texmf-dist/tex/generic/tikz-ext/pgflibraryext.transformations.mirror.code.tex
trunk/Master/texmf-dist/tex/generic/tikz-ext/tikzlibraryext.calendar-plus.code.tex
trunk/Master/texmf-dist/tex/generic/tikz-ext/tikzlibraryext.misc.code.tex
trunk/Master/texmf-dist/tex/generic/tikz-ext/tikzlibraryext.node-families.code.tex
trunk/Master/texmf-dist/tex/generic/tikz-ext/tikzlibraryext.node-families.shapes.geometric.code.tex
trunk/Master/texmf-dist/tex/generic/tikz-ext/tikzlibraryext.paths.arcto.code.tex
trunk/Master/texmf-dist/tex/generic/tikz-ext/tikzlibraryext.paths.ortho.code.tex
trunk/Master/texmf-dist/tex/generic/tikz-ext/tikzlibraryext.paths.timer.code.tex
trunk/Master/texmf-dist/tex/generic/tikz-ext/tikzlibraryext.patterns.images.code.tex
trunk/Master/texmf-dist/tex/generic/tikz-ext/tikzlibraryext.positioning-plus.code.tex
trunk/Master/texmf-dist/tex/generic/tikz-ext/tikzlibraryext.scalepicture.code.tex
trunk/Master/texmf-dist/tex/generic/tikz-ext/tikzlibraryext.topaths.arcthrough.code.tex
trunk/Master/texmf-dist/tex/generic/tikz-ext/tikzlibraryext.transformations.mirror.code.tex
trunk/Master/texmf-dist/tex/plain/tikz-ext/
trunk/Master/texmf-dist/tex/plain/tikz-ext/pgfcalendar-ext.tex
Removed Paths:
-------------
trunk/Master/texmf-dist/tex/latex/tikz-ext/pgfcalendar-ext.code.tex
trunk/Master/texmf-dist/tex/latex/tikz-ext/pgfcalendar-ext.tex
trunk/Master/texmf-dist/tex/latex/tikz-ext/pgfkeyslibraryext.pgfkeys-plus.code.tex
trunk/Master/texmf-dist/tex/latex/tikz-ext/pgflibraryext.pgfkeys-plus.code.tex
trunk/Master/texmf-dist/tex/latex/tikz-ext/pgflibraryext.shapes.circlearrow.code.tex
trunk/Master/texmf-dist/tex/latex/tikz-ext/pgflibraryext.shapes.circlecrosssplit.code.tex
trunk/Master/texmf-dist/tex/latex/tikz-ext/pgflibraryext.shapes.heatmark.code.tex
trunk/Master/texmf-dist/tex/latex/tikz-ext/pgflibraryext.shapes.rectangleroundedcorners.code.tex
trunk/Master/texmf-dist/tex/latex/tikz-ext/pgflibraryext.shapes.superellipse.code.tex
trunk/Master/texmf-dist/tex/latex/tikz-ext/pgflibraryext.shapes.uncenteredrectangle.code.tex
trunk/Master/texmf-dist/tex/latex/tikz-ext/pgflibraryext.transformations.mirror.code.tex
trunk/Master/texmf-dist/tex/latex/tikz-ext/tikzlibraryext.calendar-plus.code.tex
trunk/Master/texmf-dist/tex/latex/tikz-ext/tikzlibraryext.misc.code.tex
trunk/Master/texmf-dist/tex/latex/tikz-ext/tikzlibraryext.node-families.code.tex
trunk/Master/texmf-dist/tex/latex/tikz-ext/tikzlibraryext.node-families.shapes.geometric.code.tex
trunk/Master/texmf-dist/tex/latex/tikz-ext/tikzlibraryext.paths.arcto.code.tex
trunk/Master/texmf-dist/tex/latex/tikz-ext/tikzlibraryext.paths.ortho.code.tex
trunk/Master/texmf-dist/tex/latex/tikz-ext/tikzlibraryext.paths.timer.code.tex
trunk/Master/texmf-dist/tex/latex/tikz-ext/tikzlibraryext.patterns.images.code.tex
trunk/Master/texmf-dist/tex/latex/tikz-ext/tikzlibraryext.positioning-plus.code.tex
trunk/Master/texmf-dist/tex/latex/tikz-ext/tikzlibraryext.scalepicture.code.tex
trunk/Master/texmf-dist/tex/latex/tikz-ext/tikzlibraryext.topaths.arcthrough.code.tex
trunk/Master/texmf-dist/tex/latex/tikz-ext/tikzlibraryext.transformations.mirror.code.tex
Added: trunk/Master/texmf-dist/tex/generic/tikz-ext/pgfcalendar-ext.code.tex
===================================================================
--- trunk/Master/texmf-dist/tex/generic/tikz-ext/pgfcalendar-ext.code.tex (rev 0)
+++ trunk/Master/texmf-dist/tex/generic/tikz-ext/pgfcalendar-ext.code.tex 2022-11-03 21:03:19 UTC (rev 64920)
@@ -0,0 +1,370 @@
+% Copyright 2022 by Qrrbrbirlbel
+%
+% This file may be distributed and/or modified
+%
+% 1. under the LaTeX Project Public License and/or
+% 2. under the GNU Free Documentation License.
+%
+\pgfqkeys{/pgf/calendar}{
+ style/.style={#1},
+ yesterday/.value required,
+ yesterday/.code={%
+ \begingroup
+ \pgfutil at tempcnta=\pgfcalendarifdatejulian\relax
+ \advance\pgfutil at tempcnta by -1\relax
+ \pgfcalendarjuliantodate{\pgfutil at tempcnta}{\pgfcalendarifdateyear}{\pgfcalendarifdatemonth}{\pgfcalendarifdateday}%
+ \edef\pgfcalendarifdatejulian{\the\pgfutil at tempcnta}%
+ \pgfcalendarjuliantoweekday\pgfutil at tempcnta\pgfutil at tempcntb
+ \edef\pgfcalendarifdateweekday{\the\pgfutil at tempcntb}%
+ \pgfcalendarjulianyeartoweek\pgfutil at tempcnta\pgfcalendarifdateyear\pgfutil at tempcntb
+ \edef\pgfcalendarifdateweek{\the\pgfutil at tempcntb}%
+ \pgfcalendar at launch@ifdate{#1}{%
+ \def\pgf at cal@temp{\pgfcalendarmatchestrue}%
+ }{%
+ \let\pgf at cal@temp\pgfutil at empty
+ }%
+ \expandafter
+ \endgroup\pgf at cal@temp
+ },
+ relative/.code 2 args={%
+ \begingroup
+ \pgfutil at tempcnta=\pgfcalendarifdatejulian\relax
+ \advance\pgfutil at tempcnta by #1\relax
+ \pgfcalendarjuliantodate{\pgfutil at tempcnta}{\pgfcalendarifdateyear}{\pgfcalendarifdatemonth}{\pgfcalendarifdateday}%
+ \edef\pgfcalendarifdatejulian{\the\pgfutil at tempcnta}%
+ \pgfcalendarjuliantoweekday\pgfutil at tempcnta\pgfutil at tempcntb
+ \edef\pgfcalendarifdateweekday{\the\pgfutil at tempcntb}%
+ \pgfcalendarjulianyeartoweek\pgfutil at tempcnta\pgfcalendarifdateyear\pgfutil at tempcntb
+ \edef\pgfcalendarifdateweek{\the\pgfutil at tempcntb}%
+ \pgfcalendar at launch@ifdate{#2}{%
+ \def\pgf at cal@temp{\pgfcalendarmatchestrue}%
+ }{%
+ \let\pgf at cal@temp\pgfutil at empty
+ }%
+ \expandafter
+ \endgroup\pgf at cal@temp
+ },
+ Jan/.code={\ifnum\pgfcalendarifdatemonth=1 \expandafter\pgfcalendarmatchestrue\fi},Jan/.value forbidden,
+ Feb/.code={\ifnum\pgfcalendarifdatemonth=2 \expandafter\pgfcalendarmatchestrue\fi},Feb/.value forbidden,
+ Mar/.code={\ifnum\pgfcalendarifdatemonth=3 \expandafter\pgfcalendarmatchestrue\fi},Mar/.value forbidden,
+ Apr/.code={\ifnum\pgfcalendarifdatemonth=4 \expandafter\pgfcalendarmatchestrue\fi},Apr/.value forbidden,
+ May/.code={\ifnum\pgfcalendarifdatemonth=5 \expandafter\pgfcalendarmatchestrue\fi},May/.value forbidden,
+ Jun/.code={\ifnum\pgfcalendarifdatemonth=6 \expandafter\pgfcalendarmatchestrue\fi},Jun/.value forbidden,
+ Jul/.code={\ifnum\pgfcalendarifdatemonth=7 \expandafter\pgfcalendarmatchestrue\fi},Jul/.value forbidden,
+ Aug/.code={\ifnum\pgfcalendarifdatemonth=8 \expandafter\pgfcalendarmatchestrue\fi},Aug/.value forbidden,
+ Sep/.code={\ifnum\pgfcalendarifdatemonth=9 \expandafter\pgfcalendarmatchestrue\fi},Sep/.value forbidden,
+ Oct/.code={\ifnum\pgfcalendarifdatemonth=10 \expandafter\pgfcalendarmatchestrue\fi},Oct/.value forbidden,
+ Nov/.code={\ifnum\pgfcalendarifdatemonth=11 \expandafter\pgfcalendarmatchestrue\fi},Nov/.value forbidden,
+ Dec/.code={\ifnum\pgfcalendarifdatemonth=12 \expandafter\pgfcalendarmatchestrue\fi},Dec/.value forbidden,
+ %
+ leap year/.code={%
+ \pgfutil at tempcnta=#1\relax
+ \divide\pgfutil at tempcnta4
+ \multiply\pgfutil at tempcnta4
+ \ifnum\pgfutil at tempcnta=#1\relax
+ \divide\pgfutil at tempcnta100
+ \multiply\pgfutil at tempcnta100
+ \ifnum\pgfutil at tempcnta=#1\relax
+ \divide\pgfutil at tempcnta400
+ \multiply\pgfutil at tempcnta400
+ \ifnum\pgfutil at tempcnta=#1\relax
+ \pgfcalendarmatchestrue
+ \fi
+ \else
+ \pgfcalendarmatchestrue
+ \fi
+ \fi},
+ leap year/.default=\pgfcalendarifdateyear,
+ between days/.value required,
+ between days/.code args={#1and#2}{%
+ \pgfutil at tempcnta=#1\relax
+ \ifnum\pgfcalendarifdateday<\pgfutil at tempcnta\else
+ \pgfutil at tempcnta=#2\relax
+ \ifnum\pgfcalendarifdateday>\pgfutil at tempcnta\else
+ \pgfcalendarmatchestrue\fi\fi},
+ week of month/.code={%
+ \pgfutil at tempcnta=#1\relax
+ \multiply\pgfutil at tempcnta7
+ \ifnum\pgfcalendarifdateday>\pgfutil at tempcnta\else
+ \advance\pgfutil at tempcnta-7
+ \ifnum\pgfcalendarifdateday>\pgfutil at tempcnta
+ \pgfcalendarmatchestrue
+ \fi
+ \fi},
+ week of month'/.code={%
+ \pgfcalendar at getlastYMX\pgfcalendarifdateyear\pgfcalendarifdatemonth\pgfutil at tempcnta
+ \advance\pgfutil at tempcnta1
+ \pgfutil at tempcntb=#1\relax
+ \multiply\pgfutil at tempcntb7
+ \advance\pgfutil at tempcnta-\pgfutil at tempcntb
+ \ifnum\pgfcalendarifdateday<\pgfutil at tempcnta\else
+ \advance\pgfutil at tempcnta+7
+ \ifnum\pgfcalendarifdateday<\pgfutil at tempcnta
+ \pgfcalendarmatchestrue
+ \fi
+ \fi},
+ first/.code={\pgfutil at in@:{#1}\ifpgfutil at in@
+ \pgfcalendar at ifdate@first{}#1\pgf at stop\else
+ \pgfcalendar at ifdate@first{}1:#1\pgf at stop\fi},
+ last/.code={\pgfutil at in@:{#1}\ifpgfutil at in@
+ \pgfcalendar at ifdate@first'#1\pgf at stop\else
+ \pgfcalendar at ifdate@first'1:#1\pgf at stop\fi},
+ % logic
+ not/.value required,
+ not/.code=%
+ \begingroup
+ \let\pgf at cal@tempa\pgfutil at empty
+ \pgfcalendar at launch@ifdate{#1}{}{\def\pgf at cal@tempa{\pgfcalendarmatchestrue}}%
+ \expandafter\endgroup\pgf at cal@tempa,
+ and/.value required,
+ and/.code=% and = {<cond 1>, <cond 2>, <cond 3>, …}
+ \begingroup
+ \pgfcalendarmatchestrue
+ \pgfqkeys{/pgf/calendar/and}{#1}%
+ \ifpgfcalendarmatches % is it still true?
+ \expandafter\pgfutil at firstoftwo
+ \else
+ \expandafter\pgfutil at secondoftwo
+ \fi
+ {\def\pgf at cal@temp{\pgfcalendarmatchestrue}}%
+ {\let\pgf at cal@temp\pgfutil at empty}%
+ \expandafter\endgroup\pgf at cal@temp,
+ and/.unknown/.code=% only inside the group of and/.code
+ \ifpgfcalendarmatches
+ \expandafter\pgfutil at firstofone
+ \else
+ \expandafter\pgfutil at gobble
+ \fi
+ {%
+ \begingroup
+ \pgfcalendar at launch@ifdate{\pgfkeyscurrentname={#1}}%
+ {\let\pgf at cal@temp\pgfutil at empty}{\def\pgf at cal@temp{\pgfcalendarmatchesfalse}}
+ \expandafter\endgroup\pgf at cal@temp
+ },%
+ calendar week of month/.default=1,
+ calendar week of month'/.default=1,
+ calendar week of month/.code={%
+ \begingroup
+ \pgfutil at tempcnta=\pgfcalendarifdateday\relax
+ \advance\pgfutil at tempcnta by 5
+ \advance\pgfutil at tempcnta by -\pgfcalendarifdateweekday\relax
+ \divide\pgfutil at tempcnta by 7
+ \advance\pgfutil at tempcnta by -#1\relax
+ \expandafter\endgroup\expandafter
+ \ifnum\the\pgfutil at tempcnta=-1
+ \pgfcalendarmatchestrue
+ \fi},
+ calendar week of month'/.code={%
+ \begingroup
+ \pgfcalendar at getlastYMX\pgfcalendarifdateyear\pgfcalendarifdatemonth\pgfutil at tempcnta
+ \advance\pgfutil at tempcnta by -\pgfcalendarifdateday\relax
+ \edef\pgfcalendarifdateday{\the\pgfutil at tempcnta}%
+ \pgfutil at tempcnta=-\pgfcalendarifdateweekday\relax
+ \advance\pgfutil at tempcnta by 5
+ \edef\pgfcalendarifdateweekday{\the\pgfutil at tempcnta}%
+ \let\pgf at cal@temp\pgfutil at empty
+ \pgfcalendar at launch@ifdate{calendar week of month={#1}}{\def\pgf at cal@temp{\pgfcalendarmatchestrue}}{}%
+ \expandafter\endgroup\pgf at cal@temp}}
+
+\def\pgfcalendar at ifdate@first#1#2:#3\pgf at stop{%
+ \pgfqkeys{/pgf/calendar}{and={#3, week of month#1={#2}}}}
+\def\pgfcalendar at getlastYMX#1#2#3{% #1 = year, #2 = month, #3 := last day
+ \begingroup
+ \ifnum#2=2 % stupid February
+ \pgfcalendarmatchesfalse
+ \pgfqkeys{/pgf/calendar}{leap year={#1}}%
+ \ifpgfcalendarmatches
+ #3=29
+ \else
+ #3=28
+ \fi
+ \else
+ #3=\ifcase#2\relax\or
+ 31\or\or31\or30\or31\or30\or31\or31\or30\or31\or30\or31\fi
+ \fi
+ \edef\pgf at cal@temp{#3=\the#3\relax}
+ \expandafter
+ \endgroup\pgf at cal@temp}
+
+%
+% weeks
+%
+\def\pgfcalendar at week@setup#1{%
+ \pgfutil at IfUndefined{pgfcalendar at week@#1}{%
+ \begingroup
+ \pgfcalendardatetojulian{#1-01-01}\pgfutil at tempcnta
+ \pgfcalendarjuliantoweekday\pgfutil at tempcnta\pgfutil at tempcntb
+ %
+ % tempcnta holds the julian number for first day of the current year
+ % tempcntb holds the weekday for the first day of the current year
+ %
+ % set tempcnta to the Monday of the week with first day of current year
+ \advance\pgfutil at tempcnta by -\pgfutil at tempcntb
+ %
+ % if the first week starts at Fri, Sat or Sun, next week is the 1st week
+ \ifnum\pgfutil at tempcntb>3\relax
+ \advance\pgfutil at tempcnta by 7\relax
+ \fi
+ % setup macro for year with {Julian number for day of first week}{weekday of -01-01}
+ \expandafter\xdef\csname pgfcalendar at week@#1\endcsname{{\the\pgfutil at tempcnta}{\the\pgfutil at tempcntb}}%
+ \endgroup
+ }{}%
+}
+
+\def\pgfcalendarjulianyeartoweek#1#2#3{\pgfcalendarjulianyeartoweek@{#1}{#2}{#3}{\iftrue}}
+\def\pgfcalendarjulianyeartoweek@#1#2#3#4{%
+ % #1 = julian date (count)
+ % #2 = year
+ % #3 = count that holds the week at the end
+ % #4 = \iftrue or \iffalse: whether week 53 needs to be checked (\iffalse when determing week from next year)
+ \begingroup
+ \pgfcalendar at week@setup{#2}%
+ #3=#1\relax
+ %
+ % calculate difference of days between current date and start of week 1
+ %
+ \advance#3 by -\expandafter\expandafter\expandafter\pgfutil at firstoftwo\csname pgfcalendar at week@#2\endcsname\relax
+ \ifnum#3<0\relax % whoops, we are in the week of the previous year
+ \expandafter\pgfutil at firstoftwo
+ \else
+ \expandafter\pgfutil at secondoftwo
+ \fi
+ {% if first day of the year is Fri, Sat or Sun
+ \ifnum\expandafter\expandafter\expandafter\pgfutil at secondoftwo\csname pgfcalendar at week@#2\endcsname>3\relax
+ \expandafter\pgfutil at firstoftwo
+ \else
+ \expandafter\pgfutil at secondoftwo
+ \fi
+ {% we need to check the week of the previous year
+ #3=#2\relax
+ \advance#3 by -1
+ \edef\pgf at cal@temp{\noexpand\pgfcalendarjulianyeartoweek@{#1}{\the#3}{#3}\noexpand\iffalse}%
+ \pgf at cal@temp
+ }{% yeah, it's weird
+ \divide#3 by 7
+ \advance#3 by 1
+ }%
+ }{%
+ \divide#3 by 7
+ \advance#3 by 1
+ #4%
+ \expandafter\pgfutil at firstofone
+ \else
+ \expandafter\pgfutil at gobble
+ \fi
+ {%
+ \ifnum#3=53\relax % whoops, we are possibly in the first week of the next year
+ \expandafter\pgfutil at firstofone
+ \else
+ \expandafter\pgfutil at gobble
+ \fi
+ {%
+ \begingroup
+ % check whether we're already in week 1 of the next year
+ #3=#2\relax
+ \advance#3 by 1
+ \expandafter\pgfcalendar at week@setup\expandafter{\the#3}%
+ \ifnum#1<\expandafter\expandafter\expandafter\pgfutil at firstoftwo\csname pgfcalendar at week@\the#3\endcsname\relax
+ #3=53
+ \else
+ #3=1
+ \fi
+ \expandafter
+ \endgroup\expandafter#3\the#3\relax
+ }%
+ }%
+ }%
+ \expandafter
+ \endgroup\expandafter
+ #3\the#3\relax
+}
+
+%
+% shorthands for weeks (n)
+%
+% n-: shortest
+% n=: shortest but prepends whitespace
+% n0: leading zero
+%
+\expandafter\def\csname pgfcalendar at shorthand@n-\endcsname{%
+ \if0\pgfcalendarcurrentweek\else\pgfcalendarcurrentweek\fi}
+\expandafter\def\csname pgfcalendar at shorthand@n=\endcsname{%
+ {\pgfutil at tempcnta=\pgfcalendarcurrentweek\relax\ifnum\pgfutil at tempcnta<10\relax\setbox0=\hbox{1}\kern\wd0\relax\fi\the\pgfutil at tempcnta}}
+\expandafter\def\csname pgfcalendar at shorthand@n0\endcsname{%
+ \pgfcalendarcurrentweek}
+
+%
+% Overwriting original \pgfcalendar
+%
+\long\def\pgfcalendar#1#2#3#4{%
+ \begingroup%
+ % Setup local \ifdate
+ \let\ifdate=\pgfcalendar at local@ifdate%
+ % Let's start with computing start and end dates...
+ \def\pgfcalendarprefix{#1}%
+ \pgfcalendardatetojulian{#2}{\pgfcalendarcurrentjulian}%
+ \edef\pgfcalendarbeginjulian{\the\pgfcalendarcurrentjulian}%
+ \edef\pgfcalendarbeginiso{#2}%
+ \pgfcalendardatetojulian{#3}{\pgfutil at tempcnta}%
+ \edef\pgfcalendarendjulian{\the\pgfutil at tempcnta}%
+ \advance\pgfutil at tempcnta by1\relax%
+ \edef\pgfcalendarendjulianplus{\the\pgfutil at tempcnta}%
+ \edef\pgfcalendarendiso{#3}%
+ %
+ % Start main loop
+ %
+ \loop%
+ \ifnum\pgfcalendarcurrentjulian<\pgfcalendarendjulianplus\relax%
+ % Setup information about current date
+ \pgfcalendarjuliantodate{\pgfcalendarcurrentjulian}%
+ {\pgfcalendarcurrentyear}{\pgfcalendarcurrentmonth}{\pgfcalendarcurrentday}%
+ \pgfcalendarjuliantoweekday{\pgfcalendarcurrentjulian}{\pgfutil at tempcntb}%
+ \edef\pgfcalendarcurrentweekday{\the\pgfutil at tempcntb}%
+ \pgfcalendarjulianyeartoweek{\pgfcalendarcurrentjulian}{\pgfcalendarcurrentyear}{\pgfutil at tempcntb}%
+ \edef\pgfcalendarcurrentweek{\ifnum\pgfutil at tempcntb<10 0\fi\the\pgfutil at tempcntb}%
+ % Render:
+ #4%
+ % Advance day:
+ \advance\pgfcalendarcurrentjulian by1\relax%
+ \repeat%
+ \endgroup%
+}
+
+%
+% Overwriting original \pgfcalendar at local@ifdate
+%
+\def\pgfcalendar at local@ifdate{%
+ \let\pgfcalendarifdatejulian=\pgfcalendarcurrentjulian
+ \let\pgfcalendarifdateyear=\pgfcalendarcurrentyear
+ \let\pgfcalendarifdatemonth=\pgfcalendarcurrentmonth
+ \let\pgfcalendarifdateday=\pgfcalendarcurrentday
+ \let\pgfcalendarifdateweekday=\pgfcalendarcurrentweekday
+ \let\pgfcalendarifdateweek=\pgfcalendarcurrentweek
+ \pgfcalendar at launch@ifdate%
+}
+%
+% Overwritigin original \pgfcalendarifdate
+%
+\def\pgfcalendarifdate#1#2#3#4{%
+ \pgfcalendardatetojulian{#1}{\pgfutil at tempcnta}%
+ \pgfcalendarjuliantodate{\pgfutil at tempcnta}
+ {\pgfcalendarifdateyear}{\pgfcalendarifdatemonth}{\pgfcalendarifdateday}%
+ \edef\pgfcalendarifdatejulian{\the\pgfutil at tempcnta}%
+ % Compute info about date
+ \pgfcalendarjuliantoweekday{\pgfutil at tempcnta}{\pgfutil at tempcntb}%
+ \edef\pgfcalendarifdateweekday{\the\pgfutil at tempcntb}%
+ \pgfcalendarjulianyeartoweek{\pgfcalendarifdatejulian}{\pgfcalendarifdateyear}{\pgfutil at tempcntb}%
+ \edef\pgfcalendarifdateweek{\ifnum\pgfutil at tempcntb<10 0\fi\the\pgfutil at tempcntb}%
+ %
+ \pgfcalendar at launch@ifdate{#2}{#3}{#4}%
+}
+
+\pgfqkeys{/pgf/calendar/week}{.value required,.code={\ifnum#1=\pgfcalendarifdateweek\relax\expandafter\pgfcalendarmatchestrue\fi}}
+
+% Overwriting shorthands of pgfcalendar
+\expandafter\def\csname pgfcalendar at shorthand@d-\endcsname{%
+ \if0\pgfcalendarcurrentday\else\pgfcalendarcurrentday\fi}
+\expandafter\def\csname pgfcalendar at shorthand@m-\endcsname{%
+ \if0\pgfcalendarcurrentmonth\else\pgfcalendarcurrentmonth\fi}
+
+\endinput
\ No newline at end of file
Property changes on: trunk/Master/texmf-dist/tex/generic/tikz-ext/pgfcalendar-ext.code.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/generic/tikz-ext/pgfkeyslibraryext.pgfkeys-plus.code.tex
===================================================================
--- trunk/Master/texmf-dist/tex/generic/tikz-ext/pgfkeyslibraryext.pgfkeys-plus.code.tex (rev 0)
+++ trunk/Master/texmf-dist/tex/generic/tikz-ext/pgfkeyslibraryext.pgfkeys-plus.code.tex 2022-11-03 21:03:19 UTC (rev 64920)
@@ -0,0 +1,139 @@
+% Copyright 2022 by Qrrbrbirlbel
+%
+% This file may be distributed and/or modified
+%
+% 1. under the LaTeX Project Public License and/or
+% 2. under the GNU Free Documentation License.
+%
+
+\input pgfmath.tex
+
+%% Handlers
+%% .pgfmath evaluates values given to keys in PGFmath before handing them over.
+%% .pgfmath int truncates the result
+%% .pgfmath strcat concatenates the given values
+\pgfqkeys{/handlers}{
+ .pgfmath/.code=%
+ \begingroup
+ \pgfmathparse{#1}%
+ \expandafter\endgroup\expandafter
+ \pgfkeys at exp@call\expandafter{\pgfmathresult},
+ .pgfmath int/.code=%
+ \begingroup
+ \pgfmathint{#1}%
+ \expandafter\endgroup\expandafter
+ \pgfkeys at exp@call\expandafter{\pgfmathresult},
+ .pgfmath wrap/.code 2 args={%
+ \def\pgfkeys at temp##1{\def\pgfkeys at temp{#1}}%
+ \begingroup
+ \pgfmathparse{#2}%
+ \expandafter\pgfkeys at temp\expandafter{\pgfmathresult}%
+ \expandafter\endgroup\expandafter
+ \pgfkeys at exp@call\expandafter{\pgfkeys at temp}%
+ },
+ .pgfmath if/.code n args={3}{%
+ \begingroup
+ \pgfmathifthenelse{#1}{"1"}{"0"}%
+ \expandafter\endgroup\expandafter
+ \ifcase\pgfmathresult\relax
+ \expandafter\pgfutil at firstoftwo
+ \else
+ \expandafter\pgfutil at secondoftwo
+ \fi
+ {\pgfkeys at exp@call{#3}}%
+ {\pgfkeys at exp@call{#2}}%
+ },
+ .if/.code n args={4}{%
+ \if#1#2%
+ \expandafter\pgfutil at firstoftwo
+ \else
+ \expandafter\pgfutil at secondoftwo
+ \fi
+ {\pgfkeys at exp@call{#3}}%
+ {\pgfkeys at exp@call{#4}}%
+ },
+ .ifnum/.code n args={3}{%
+ \ifnum#1\relax
+ \expandafter\pgfutil at firstoftwo
+ \else
+ \expandafter\pgfutil at secondoftwo
+ \fi
+ {\pgfkeys at exp@call{#2}}%
+ {\pgfkeys at exp@call{#3}}%
+ },
+ .ifdim/.code n args={3}{%
+ \ifdim#1\relax
+ \expandafter\pgfutil at firstoftwo
+ \else
+ \expandafter\pgfutil at secondoftwo
+ \fi
+ {\pgfkeys at exp@call{#2}}%
+ {\pgfkeys at exp@call{#3}}%
+ },
+ .ifx/.code n args={4}{%
+ \ifx#1#2%
+ \expandafter\pgfutil at firstoftwo
+ \else
+ \expandafter\pgfutil at secondoftwo
+ \fi
+ {\pgfkeys at exp@call{#3}}%
+ {\pgfkeys at exp@call{#4}}%
+ },
+ .ifxempty/.code n args={3}{%
+ \edef\pgfkeys at temp{#1}%
+ \pgfutil at ifxempty\pgfkeys at temp{\pgfkeys at exp@call{#2}}{\pgfkeys at exp@call{#3}}%
+ },
+ .ifempty/.code n args={3}{%
+ \pgfutil at ifempty{#1}{\pgfkeys at exp@call{#2}}{\pgfkeys at exp@call{#3}}%
+ },
+ %% http://tex.stackexchange.com/a/144187/16595
+ %% key/.List={(point-1),(point-2),(point-...),(point-6)} will call
+ %% key=(point-1)(point-2)(point-3)(point-4)(point-5),(point-6)
+ .List/.code=%
+ \let\pgfkeys at global@temp\pgfutil at empty
+ \foreach\pgfkeys at temp in{#1}{%
+ \expandafter\pgfutil at g@addto at macro\expandafter\pgfkeys at global@temp\expandafter{\pgfkeys at temp}%
+ }%
+ \expandafter\pgfkeys at exp@call\expandafter{\pgfkeys at global@temp}%
+}
+
+\pgfqkeys{/utils}{
+ if/.code n args={3}{%
+ \begingroup
+ \pgfmathifthenelse{#1}{"1"}{"0"}%
+ \expandafter\endgroup\expandafter
+ \ifcase\pgfmathresult\relax
+ \expandafter\pgfutil at firstoftwo
+ \else
+ \expandafter\pgfutil at secondoftwo
+ \fi
+ {\pgfkeysalso{#3}}
+ {\pgfkeysalso{#2}}%
+ },
+ TeX/if/.code n args={4}{%
+ \if#1#2\expandafter\pgfutil at firstoftwo\else\expandafter\pgfutil at secondoftwo\fi
+ {\pgfkeysalso{#3}}{\pgfkeysalso{#4}}%
+ },
+ TeX/ifnum/.code n args={3}{%
+ \ifnum#1\relax\expandafter\pgfutil at firstoftwo\else\expandafter\pgfutil at secondoftwo\fi
+ {\pgfkeysalso{#2}}{\pgfkeysalso{#3}}%
+ },
+ TeX/ifdim/.code n args={3}{%
+ \ifdim#1\relax\expandafter\pgfutil at firstoftwo\else\expandafter\pgfutil at secondoftwo\fi
+ {\pgfkeysalso{#2}}{\pgfkeysalso{#3}}%
+ },
+ TeX/ifx/.code n args={4}{%
+ \ifx#1#2\relax\expandafter\pgfutil at firstoftwo\else\expandafter\pgfutil at secondoftwo\fi
+ {\pgfkeysalso{#3}}{\pgfkeysalso{#4}}%
+ },
+ TeX/ifxempty/.code n args={3}{%
+ \edef\pgfkeys at temp{#1}%
+ \pgfutil at ifxempty\pgfkeys at temp{\pgfkeysalso{#2}}{\pgfkeysalso{#3}}%
+ },
+ TeX/ifempty/.code n args={3}{%
+ \pgfutil at ifempty{#1}{\pgfkeysalso{#2}}{\pgfkeysalso{#3}}%
+ },
+ tex/.search also=/utils/TeX,
+}
+
+\endinput
\ No newline at end of file
Property changes on: trunk/Master/texmf-dist/tex/generic/tikz-ext/pgfkeyslibraryext.pgfkeys-plus.code.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/generic/tikz-ext/pgflibraryext.pgfkeys-plus.code.tex
===================================================================
--- trunk/Master/texmf-dist/tex/generic/tikz-ext/pgflibraryext.pgfkeys-plus.code.tex (rev 0)
+++ trunk/Master/texmf-dist/tex/generic/tikz-ext/pgflibraryext.pgfkeys-plus.code.tex 2022-11-03 21:03:19 UTC (rev 64920)
@@ -0,0 +1,11 @@
+% Copyright 2022 by Qrrbrbirlbel
+%
+% This file may be distributed and/or modified
+%
+% 1. under the LaTeX Project Public License and/or
+% 2. under the GNU Free Documentation License.
+%
+
+\input pgfkeyslibraryext.pgfkeys-plus.code.tex
+
+\endinput
\ No newline at end of file
Property changes on: trunk/Master/texmf-dist/tex/generic/tikz-ext/pgflibraryext.pgfkeys-plus.code.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/generic/tikz-ext/pgflibraryext.shapes.circlearrow.code.tex
===================================================================
--- trunk/Master/texmf-dist/tex/generic/tikz-ext/pgflibraryext.shapes.circlearrow.code.tex (rev 0)
+++ trunk/Master/texmf-dist/tex/generic/tikz-ext/pgflibraryext.shapes.circlearrow.code.tex 2022-11-03 21:03:19 UTC (rev 64920)
@@ -0,0 +1,66 @@
+% Copyright 2022 by Qrrbrbirlbel
+%
+% This file may be distributed and/or modified
+%
+% 1. under the LaTeX Project Public License and/or
+% 2. under the GNU Free Documentation License.
+%
+\pgfset{
+ circle arrow start angle/.initial=,
+ circle arrow end angle/.initial=,
+ circle arrow delta angle/.initial=,
+ circle arrow arrows/.initial=-,
+ circle arrow/@turn left/.style={/pgf/circle arrow arrows=->,/pgf/circle arrow delta angle=340},
+ circle arrow/@turn right/.style={/pgf/circle arrow arrows=<-,/pgf/circle arrow delta angle=340},
+ circle arrow turn left north/.style = {/pgf/circle arrow/@turn left, /pgf/circle arrow start angle=100},
+ circle arrow turn left east/.style = {/pgf/circle arrow/@turn left, /pgf/circle arrow start angle=10},
+ circle arrow turn left south/.style = {/pgf/circle arrow/@turn left, /pgf/circle arrow start angle=280},
+ circle arrow turn left west/.style = {/pgf/circle arrow/@turn left, /pgf/circle arrow start angle=190},
+ circle arrow turn right north/.style = {/pgf/circle arrow/@turn right, /pgf/circle arrow start angle=100},
+ circle arrow turn right east/.style = {/pgf/circle arrow/@turn right, /pgf/circle arrow start angle=10},
+ circle arrow turn right south/.style = {/pgf/circle arrow/@turn right, /pgf/circle arrow start angle=280},
+ circle arrow turn right west/.style = {/pgf/circle arrow/@turn right, /pgf/circle arrow start angle=190},
+}
+\pgfdeclareshape{circle arrow}{
+ \inheritsavedanchors[from=circle]
+ \inheritanchorborder[from=circle]
+ \inheritanchor[from=circle]{north}
+ \inheritanchor[from=circle]{north west}
+ \inheritanchor[from=circle]{north east}
+ \inheritanchor[from=circle]{center}
+ \inheritanchor[from=circle]{west}
+ \inheritanchor[from=circle]{east}
+ \inheritanchor[from=circle]{mid}
+ \inheritanchor[from=circle]{mid west}
+ \inheritanchor[from=circle]{mid east}
+ \inheritanchor[from=circle]{base}
+ \inheritanchor[from=circle]{base west}
+ \inheritanchor[from=circle]{base east}
+ \inheritanchor[from=circle]{south}
+ \inheritanchor[from=circle]{south west}
+ \inheritanchor[from=circle]{south east}
+ \backgroundpath{
+ \pgfkeysgetvalue{/pgf/circle arrow start angle}\pgf at sh@circlearrow at s
+ \pgfkeysgetvalue{/pgf/circle arrow end angle}\pgf at sh@circlearrow at e
+ \pgfkeysgetvalue{/pgf/circle arrow delta angle}\pgf at sh@circlearrow at d
+ \ifx\pgf at sh@circlearrow at s\pgfutil at empty%
+ \pgfmathsetmacro\pgf at sh@circlearrow at s{\pgf at sh@circlearrow at e-\pgf at sh@circlearrow at d}%
+ \else
+ \ifx\pgf at sh@circlearrow at e\pgfutil at empty%
+ \pgfmathsetmacro\pgf at sh@circlearrow at e{\pgf at sh@circlearrow at s+\pgf at sh@circlearrow at d}%
+ \fi%
+ \fi
+ \pgfutil at tempdima=\radius
+ \pgfmathsetlength{\pgf at xb}{\pgfkeysvalueof{/pgf/outer xsep}}%
+ \pgfmathsetlength{\pgf at yb}{\pgfkeysvalueof{/pgf/outer ysep}}%
+ \ifdim\pgf at xb<\pgf at yb
+ \advance\pgfutil at tempdima by-\pgf at yb
+ \else
+ \advance\pgfutil at tempdima by-\pgf at xb
+ \fi
+ \pgfpathmoveto{\pgfpointadd{\centerpoint}{\pgfpointpolar{\pgf at sh@circlearrow at s}{\pgfutil at tempdima}}}%
+ \pgfpatharc{\pgf at sh@circlearrow at s}{\pgf at sh@circlearrow at e}{\pgfutil at tempdima}%
+ \pgfkeysgetvalue{/pgf/circle arrow arrows}\pgf at temp
+ \expandafter\pgfsetarrows\expandafter{\pgf at temp}%
+ }
+}
\ No newline at end of file
Property changes on: trunk/Master/texmf-dist/tex/generic/tikz-ext/pgflibraryext.shapes.circlearrow.code.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/generic/tikz-ext/pgflibraryext.shapes.circlecrosssplit.code.tex
===================================================================
--- trunk/Master/texmf-dist/tex/generic/tikz-ext/pgflibraryext.shapes.circlecrosssplit.code.tex (rev 0)
+++ trunk/Master/texmf-dist/tex/generic/tikz-ext/pgflibraryext.shapes.circlecrosssplit.code.tex 2022-11-03 21:03:19 UTC (rev 64920)
@@ -0,0 +1,292 @@
+% Copyright 2022 by Qrrbrbirlbel
+%
+% This file may be distributed and/or modified
+%
+% 1. under the LaTeX Project Public License and/or
+% 2. under the GNU Free Documentation License.
+%
+\usepgflibrary{shapes.multipart}
+\let\pgfnodeparttrbox\pgfnodeparttwobox
+\let\pgfnodepartblbox\pgfnodepartthreebox
+\let\pgfnodepartbrbox\pgfnodepartfourbox
+\newif\ifpgfcirclecrosssplitcustomfill
+\pgfset{%
+ circle cross split part fill/.code=%
+ \def\pgf at lib@sh at ccs@list at fill{#1}%
+ \pgfcirclecrosssplitcustomfilltrue,%
+ circle cross split uses custom fill/.is if=pgfcirclecrosssplitcustomfill
+}
+\def\pgf at lib@sh at ccs@list at fill{none}%
+\pgfdeclareshape{circle cross split}{%
+ \nodeparts{text,two,three,four}%
+ \savedanchor\centerpoint{%
+ \pgfmathsetlength\pgf at xa{\pgfkeysvalueof{/pgf/inner xsep}}%
+ \pgfmathsetlength\pgf at ya{\pgfkeysvalueof{/pgf/inner ysep}}%
+ \pgf at x =\wd\pgfnodeparttextbox
+ \pgf at yb=\dp\pgfnodeparttextbox
+ \pgf at y=\dp\pgfnodeparttwobox
+ \ifdim\pgf at yb>\pgf at y
+ \pgf at y=\pgf at yb
+ \fi
+ \advance\pgf at x\pgf at xa
+ \advance\pgf at y-\pgf at ya
+ \advance\pgf at x.5\pgflinewidth
+ \advance\pgf at y-.5\pgflinewidth
+ }%
+ \savedanchor\twoanchor{%
+ \pgfmathsetlength\pgf at xa{\pgfkeysvalueof{/pgf/inner xsep}}%
+ \pgfmathsetlength\pgf at ya{\pgfkeysvalueof{/pgf/inner ysep}}%
+ \advance\pgf at x.5\pgflinewidth
+ \advance\pgf at x\pgf at xa
+ \advance\pgf at y.5\pgflinewidth
+ \advance\pgf at y\pgf at ya
+ \pgf at yb\dp\pgfnodeparttextbox
+ \pgf at yc\dp\pgfnodeparttwobox
+ \ifdim\pgf at yb>\pgf at yc
+ \pgf at yc\pgf at yb
+ \fi
+ \advance\pgf at y\pgf at yc
+ }%
+ \savedanchor\threeanchor{%
+ \pgfmathsetlength\pgf at ya{\pgfkeysvalueof{/pgf/inner ysep}}%
+ \pgf at x\wd\pgfnodeparttextbox
+ \pgf at yb\dp\pgfnodeparttextbox
+ \pgf at yc\dp\pgfnodeparttwobox
+ \ifdim\pgf at yb>\pgf at yc
+ \pgf at yc\pgf at yb
+ \fi
+ \advance\pgf at y-\pgf at yc
+ \advance\pgf at y-2\pgf at ya
+ \advance\pgf at y-\pgflinewidth
+ \pgf at yb\ht\pgfnodepartthreebox
+ \pgf at yc\ht\pgfnodepartfourbox
+ \ifdim\pgf at yb>\pgf at yc
+ \pgf at yc\pgf at yb
+ \fi
+ \advance\pgf at y-\pgf at yc
+ \advance\pgf at x-\wd\pgfnodepartthreebox
+ }%
+ \saveddimen\radius{%
+ % height (upper):
+ \pgf at y=\ht\pgfnodeparttextbox
+ \ifdim\pgf at y<\ht\pgfnodeparttwobox
+ \pgf at y=\ht\pgfnodeparttwobox
+ \fi
+ \ifdim\dp\pgfnodeparttextbox>\dp\pgfnodeparttwobox
+ \advance\pgf at y by\dp\pgfnodeparttextbox
+ \else
+ \advance\pgf at y by\dp\pgfnodeparttwobox
+ \fi
+ % height (lower):
+ \pgf at yb\ht\pgfnodepartthreebox
+ \ifdim\pgf at yb<\ht\pgfnodepartfourbox
+ \pgf at yb=\ht\pgfnodepartfourbox
+ \fi
+ \pgf at yc=\dp\pgfnodepartthreebox
+ \ifdim\pgf at yc<\dp\pgfnodepartfourbox
+ \advance\pgf at yb by\dp\pgfnodepartfourbox
+ \else
+ \advance\pgf at yb by\pgf at yc
+ \fi
+ \ifdim\pgf at yc>\pgf at y
+ \pgf at y=\pgf at yc
+ \fi
+ \pgfmathsetlength\pgf at ya{\pgfkeysvalueof{/pgf/inner ysep}}%
+ \advance\pgf at y2\pgf at ya
+ %
+ \pgf at x\wd\pgfnodeparttextbox
+ \pgf at xa\wd\pgfnodepartthreebox
+ \pgf at xb\wd\pgfnodeparttwobox
+ \pgf at xc\wd\pgfnodepartfourbox
+ \ifdim\pgf at xa>\pgf at x
+ \pgf at x\pgf at xa
+ \fi
+ \ifdim\pgf at xb>\pgf at x
+ \pgf at x\pgf at xb
+ \fi
+ \ifdim\pgf at xc>\pgf at x
+ \pgf at x\pgf at xc
+ \fi
+ \pgfmathsetlength\pgf at xa{\pgfkeysvalueof{/pgf/inner xsep}}%
+ \advance\pgf at x by 2\pgf at xa
+ \ifdim\pgf at y>\pgf at x
+ \pgf at x=\pgf at y
+ \fi
+ \advance\pgf at x by\pgflinewidth
+ %
+ \pgf at xa=\pgf at x
+ \pgf at ya=\pgf at y
+ % from circle:
+ \pgf at process{\pgfpointnormalised{}}%
+ \ifdim\pgf at x>\pgf at y%
+ \c at pgf@counta=\pgf at x%
+ \ifnum\c at pgf@counta=0\relax%
+ \else%
+ \divide\c at pgf@counta by 255\relax%
+ \pgf at xa=16\pgf at xa\relax%
+ \divide\pgf at xa by\c at pgf@counta%
+ \pgf at xa=16\pgf at xa\relax%
+ \fi%
+ \else%
+ \c at pgf@counta=\pgf at y%
+ \ifnum\c at pgf@counta=0\relax%
+ \else%
+ \divide\c at pgf@counta by 255\relax%
+ \pgf at ya=16\pgf at ya\relax%
+ \divide\pgf at ya by\c at pgf@counta%
+ \pgf at xa=16\pgf at ya\relax%
+ \fi%
+ \fi%
+ \pgf at x=\pgf at xa%
+ %
+ \pgfmathsetlength{\pgf at xb}{\pgfkeysvalueof{/pgf/minimum width}}%
+ \pgfmathsetlength{\pgf at yb}{\pgfkeysvalueof{/pgf/minimum height}}%
+ \ifdim\pgf at x<.5\pgf at xb
+ \pgf at x=.5\pgf at xb
+ \fi
+ \ifdim\pgf at x<.5\pgf at yb
+ \pgf at x=.5\pgf at yb
+ \fi
+ %
+ \pgfmathsetlength{\pgf at xb}{\pgfkeysvalueof{/pgf/outer xsep}}%
+ \pgfmathsetlength{\pgf at yb}{\pgfkeysvalueof{/pgf/outer ysep}}%
+ \ifdim\pgf at xb<\pgf at yb
+ \advance\pgf at x\pgf at yb
+ \else
+ \advance\pgf at x\pgf at xb
+ \fi
+ }%
+ \inheritanchorborder[from=circle]%
+ \inheritanchor[from=circle]{north}%
+ \inheritanchor[from=circle]{north west}%
+ \inheritanchor[from=circle]{north east}%
+ \inheritanchor[from=circle]{center}%
+ \inheritanchor[from=circle]{west}%
+ \inheritanchor[from=circle]{east}%
+ \inheritanchor[from=circle]{mid}%
+ \inheritanchor[from=circle]{mid west}%
+ \inheritanchor[from=circle]{mid east}%
+ \inheritanchor[from=circle]{base}%
+ \inheritanchor[from=circle]{base west}%
+ \inheritanchor[from=circle]{base east}%
+ \inheritanchor[from=circle]{south}%
+ \inheritanchor[from=circle]{south west}%
+ \inheritanchor[from=circle]{south east}%
+ \anchor{two}{\twoanchor}%
+ \anchor{three}{\threeanchor}%
+ \anchor{four}{
+ \threeanchor
+ \pgf at ya=\pgf at y
+ \twoanchor
+ \pgf at y=\pgf at ya
+ }%
+ \anchor{lower base}{%
+ \threeanchor
+ \pgf at ya=\pgf at y
+ \centerpoint
+ \pgf at y=\pgf at ya
+ }
+ \anchor{lower base west}{%
+ \threeanchor
+ \pgf at ya=\pgf at y
+ \centerpoint
+ \pgf at y=\pgf at ya
+ \advance\pgf at x by-\radius
+ }
+ \anchor{lower base east}{%
+ \threeanchor
+ \pgf at ya=\pgf at y
+ \centerpoint
+ \pgf at y=\pgf at ya
+ \advance\pgf at x by\radius
+ }
+ \anchor{lower mid}{%
+ \threeanchor
+ \pgf at ya=\pgf at y
+ \centerpoint
+ \pgf at y=\pgf at ya
+ \pgfmathsetlength\pgf at ya{+.5ex}%
+ \advance\pgf at y by\pgf at ya
+ }
+ \anchor{lower mid west}{%
+ \threeanchor
+ \pgf at ya=\pgf at y
+ \centerpoint
+ \pgf at y=\pgf at ya
+ \advance\pgf at x by-\radius
+ \pgfmathsetlength\pgf at ya{+.5ex}%
+ \advance\pgf at y by\pgf at ya
+ }
+ \anchor{lower mid east}{%
+ \threeanchor
+ \pgf at ya=\pgf at y
+ \centerpoint
+ \pgf at y=\pgf at ya
+ \advance\pgf at x by\radius
+ \pgfmathsetlength\pgf at ya{+.5ex}%
+ \advance\pgf at y by\pgf at ya
+ }
+ \inheritbackgroundpath[from=circle]
+ \beforebackgroundpath{%
+ \pgfutil at tempdima=\radius
+ \pgfmathsetlength{\pgf at xb}{\pgfkeysvalueof{/pgf/outer xsep}}%
+ \pgfmathsetlength{\pgf at yb}{\pgfkeysvalueof{/pgf/outer ysep}}%
+ \ifdim\pgf at xb<\pgf at yb
+ \advance\pgfutil at tempdima by-\pgf at yb
+ \else
+ \advance\pgfutil at tempdima by-\pgf at xb
+ \fi
+ \advance\pgfutil at tempdima by-.5\pgflinewidth%
+ \pgfsetshortenstart{0pt}%
+ \pgfsetshortenend{0pt}%
+ \pgfsetarrows{-}%
+ \pgfpathmoveto
+ {\pgfpointadd{\centerpoint}{\pgfqpoint{-\pgfutil at tempdima}{0pt}}}%
+ \pgfpathlineto
+ {\pgfpointadd{\centerpoint}{\pgfqpoint{\pgfutil at tempdima}{0pt}}}%
+ \pgfpathmoveto
+ {\pgfpointadd{\centerpoint}{\pgfqpoint{0pt}{-\pgfutil at tempdima}}}%
+ \pgfpathlineto
+ {\pgfpointadd{\centerpoint}{\pgfqpoint{0pt}{\pgfutil at tempdima}}}%
+ \pgfusepathqstroke
+ }%
+ \behindbackgroundpath{%
+ \pgfutil at tempdima=\radius
+ \pgfmathsetlength{\pgf at xb}{\pgfkeysvalueof{/pgf/outer xsep}}%
+ \pgfmathsetlength{\pgf at yb}{\pgfkeysvalueof{/pgf/outer ysep}}%
+ \ifdim\pgf at xb<\pgf at yb
+ \advance\pgfutil at tempdima by-\pgf at yb
+ \else
+ \advance\pgfutil at tempdima by-\pgf at xb
+ \fi
+ \advance\pgfutil at tempdima by-.5\pgflinewidth%
+ \ifpgfcirclecrosssplitcustomfill%
+ \pgf at lib@sh at rs@process at list{\pgf at lib@sh at ccs@list at fill}{4}%
+ {%
+ \pgfmathloop
+ \ifnum\pgfmathcounter>4%
+ \else%
+ \pgf at lib@sh at getalpha\pgf at lib@sh at rs@number{\pgfmathcounter}%
+ \edef\pgf at tempa
+ {\csname pgf at lib@sh at rs@\pgf at lib@sh at rs@number @item\endcsname}%
+ \ifx\pgf at tempa\pgf at lib@sh at rs@nonetext\else
+ \pgfsetfillcolor{\pgf at tempa}%
+ \ifcase\pgfmathcounter\or
+ \def\pgf at lib@sh at ccs@angle{90}\or
+ \def\pgf at lib@sh at ccs@angle{0}\or
+ \def\pgf at lib@sh at ccs@angle{180}\else
+ \def\pgf at lib@sh at ccs@angle{270}%
+ \fi
+ \pgfpathmoveto{\centerpoint}%
+ \pgfpathlineto{\pgfpointadd{\centerpoint}
+ {\pgfqpointpolar{\pgf at lib@sh at ccs@angle}{\pgfutil at tempdima}}}%
+ \pgfpatharc{+\pgf at lib@sh at ccs@angle}{\pgf at lib@sh at ccs@angle+90}
+ {+\pgfutil at tempdima}%
+ \pgfpathclose
+ \pgfusepathqfill
+ \fi
+ \repeatpgfmathloop
+ }%
+ \fi
+ }%
+}
\ No newline at end of file
Property changes on: trunk/Master/texmf-dist/tex/generic/tikz-ext/pgflibraryext.shapes.circlecrosssplit.code.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/generic/tikz-ext/pgflibraryext.shapes.heatmark.code.tex
===================================================================
--- trunk/Master/texmf-dist/tex/generic/tikz-ext/pgflibraryext.shapes.heatmark.code.tex (rev 0)
+++ trunk/Master/texmf-dist/tex/generic/tikz-ext/pgflibraryext.shapes.heatmark.code.tex 2022-11-03 21:03:19 UTC (rev 64920)
@@ -0,0 +1,181 @@
+% Copyright 2022 by Qrrbrbirlbel
+%
+% This file may be distributed and/or modified
+%
+% 1. under the LaTeX Project Public License and/or
+% 2. under the GNU Free Documentation License.
+%
+\pgfset{
+ heatmark arc width/.initial=+4pt,
+ heatmark arc sep/.initial=+1pt,
+ heatmark arc rings/.initial=3,
+ heatmark arcs/.initial=3,
+ heatmark arc sep angle/.initial=20,
+ heatmark inner opacity/.initial=.8,
+ heatmark outer opacity/.initial=.2
+}
+\pgfdeclareshape{heatmark}
+%
+% Draws a circle around the text
+%
+{
+ \savedanchor\centerpoint{%
+ \pgf at x=.5\wd\pgfnodeparttextbox%
+ \pgf at y=.5\ht\pgfnodeparttextbox%
+ \advance\pgf at y by-.5\dp\pgfnodeparttextbox%
+ }
+
+ \saveddimen\innerradius{%
+ %
+ % Caculate ``height radius''
+ %
+ \pgf at ya=.5\ht\pgfnodeparttextbox%
+ \advance\pgf at ya by.5\dp\pgfnodeparttextbox%
+ \pgfmathsetlength\pgf at yb{\pgfkeysvalueof{/pgf/inner ysep}}%
+ \advance\pgf at ya by\pgf at yb%
+ %
+ % Caculate ``width radius''
+ %
+ \pgf at xa=.5\wd\pgfnodeparttextbox%
+ \pgfmathsetlength\pgf at xb{\pgfkeysvalueof{/pgf/inner xsep}}%
+ \advance\pgf at xa by\pgf at xb%
+ %
+ % Calculate length of radius vector:
+ %
+ \pgf at process{\pgfpointnormalised{\pgfqpoint{\pgf at xa}{\pgf at ya}}}%
+ \ifdim\pgf at x>\pgf at y%
+ \c at pgf@counta=\pgf at x%
+ \ifnum\c at pgf@counta=0\relax%
+ \else%
+ \divide\c at pgf@counta by 255\relax%
+ \pgf at xa=16\pgf at xa\relax%
+ \divide\pgf at xa by\c at pgf@counta%
+ \pgf at xa=16\pgf at xa\relax%
+ \fi%
+ \else%
+ \c at pgf@counta=\pgf at y%
+ \ifnum\c at pgf@counta=0\relax%
+ \else%
+ \divide\c at pgf@counta by 255\relax%
+ \pgf at ya=16\pgf at ya\relax%
+ \divide\pgf at ya by\c at pgf@counta%
+ \pgf at xa=16\pgf at ya\relax%
+ \fi%
+ \fi%
+ \pgf at x=\pgf at xa%
+ %
+ % If necessary, adjust radius so that the size requirements are
+ % met:
+ %
+ \pgfmathsetlength{\pgf at xb}{\pgfkeysvalueof{/pgf/minimum width}}%
+ \pgfmathsetlength{\pgf at yb}{\pgfkeysvalueof{/pgf/minimum height}}%
+ \ifdim\pgf at x<.5\pgf at xb%
+ \pgf at x=.5\pgf at xb%
+ \fi%
+ \ifdim\pgf at x<.5\pgf at yb%
+ \pgf at x=.5\pgf at yb%
+ \fi%
+ }%
+
+ \saveddimen\radius{%
+ \pgfmathsetlength{\pgf at xb}{\pgfkeysvalueof{/pgf/outer xsep}}%
+ \pgfmathsetlength{\pgf at yb}{\pgfkeysvalueof{/pgf/outer ysep}}%
+ \ifdim\pgf at xb<\pgf at yb%
+ \advance\pgf at x by\pgf at yb%
+ \else%
+ \advance\pgf at x by\pgf at xb%
+ \fi%
+ \pgfmathsetcount\c at pgf@counta{\pgfkeysvalueof{/pgf/heatmark arc rings}}%
+ \pgfmathsetlength\pgf at xa{\pgfkeysvalueof{/pgf/heatmark arc width}+\pgfkeysvalueof{/pgf/heatmark arc sep}}%
+ \multiply\pgf at xa\c at pgf@counta
+ \advance\pgf at x\pgf at xa
+ }%
+ %
+ % Anchors
+ %
+ \inheritanchor[from=circle]{north}
+ \inheritanchor[from=circle]{north west}
+ \inheritanchor[from=circle]{north east}
+ \inheritanchor[from=circle]{center}
+ \inheritanchor[from=circle]{west}
+ \inheritanchor[from=circle]{east}
+ \inheritanchor[from=circle]{mid}
+ \inheritanchor[from=circle]{mid west}
+ \inheritanchor[from=circle]{mid east}
+ \inheritanchor[from=circle]{base}
+ \inheritanchor[from=circle]{base west}
+ \inheritanchor[from=circle]{base east}
+ \inheritanchor[from=circle]{south}
+ \inheritanchor[from=circle]{south west}
+ \inheritanchor[from=circle]{south east}
+ \inheritanchorborder[from=circle]
+ %
+ % Background path
+ %
+ \backgroundpath{
+ \pgfutil at tempdima=\innerradius%
+ \pgfpathcircle{\centerpoint}{\pgfutil at tempdima}%
+ }%
+ %
+ %
+ %
+ \behindbackgroundpath{%
+ \pgfmathsetcount\c at pgf@counta{\pgfkeysvalueof{/pgf/heatmark arc rings}}% heat arc rings
+ \pgfmathsetcount\c at pgf@countb{\pgfkeysvalueof{/pgf/heatmark arcs}}% heat arcs
+ \pgfmathsetlength\pgf at xa{\pgfkeysvalueof{/pgf/heatmark arc width}}% heat arc width
+ \pgfmathsetlength\pgf at xb{\pgfkeysvalueof{/pgf/heatmark arc sep}}% heat arc sep
+ %\pgfmathsetmacro\pgf at tempa{\pgfkeysvalueof{/pgf/heat arc sep angle}}% heat arc sep angle
+ \pgfmathsetmacro\pgf at tempb{360/\c at pgf@countb-(\pgfkeysvalueof{/pgf/heatmark arc sep angle})}% heat arc
+ \pgfmathsetmacro\pgf at tempc{\pgfkeysvalueof{/pgf/shape border rotate}}% heat rotate
+ %
+ \pgfmathsetmacro\pgf at tempd{\pgfkeysvalueof{/pgf/heatmark inner opacity}}% heat opacity high
+ \ifnum\c at pgf@counta=1
+ \def\tikzext at heatmark@opacity at seps{0}%
+ \else
+ \pgfmathsetmacro\tikzext at heatmark@opacity at seps
+ {(\pgf at tempd-(\pgfkeysvalueof{/pgf/heatmark outer opacity}))%
+ /(\c at pgf@counta-1)}%
+ \fi
+ \pgfutil at tempcnta=0
+ \pgfutil at tempcntb=0
+ \pgf at ya\innerradius\relax
+ \pgftransformshift{\centerpoint}
+ \pgfutil at loop % ring loop
+ \advance\pgf at ya\pgf at xb % current radius + heat arc sep
+ \pgf at yb\pgf at ya
+ \advance\pgf at yb\pgf at xa % current radius + heat arc sep + heat arc width
+ \pgfsetfillopacity{\pgf at tempd}%
+ \begingroup
+ \edef\pgf at marshal{\noexpand\pgfset{heatmark ring \the\numexpr\pgfutil at tempcnta+1\relax/.try}}%
+ \pgf at marshal
+ \csname tikz at options\endcsname
+ {%
+ \pgfutil at loop
+ \pgfmathsetmacro\tikzext at heatmark@start at angle{\pgf at tempc-.5*\pgf at tempb+\pgfutil at tempcntb*(360/\c at pgf@countb)}%
+ % path
+ \begingroup
+ \edef\pgf at marshal{\noexpand\pgfset{heatmark arc \the\numexpr\pgfutil at tempcntb+1\relax/.try}%
+ \noexpand\pgfset{heatmark ring \the\numexpr\pgfutil at tempcnta+1\relax\space arc \the\numexpr\pgfutil at tempcntb+1\relax/.try}}%
+ \pgf at marshal
+ \csname tikz at options\endcsname
+ \pgfpathmoveto{\pgfpointpolar{\tikzext at heatmark@start at angle}{\pgf at ya}}%
+ \pgfpatharc{\tikzext at heatmark@start at angle}{\tikzext at heatmark@start at angle+\pgf at tempb}{\pgf at ya}%
+ \pgfpathlineto{\pgfpointpolar{\tikzext at heatmark@start at angle+\pgf at tempb}{\pgf at yb}}%
+ \pgfpatharc{\tikzext at heatmark@start at angle+\pgf at tempb}{\tikzext at heatmark@start at angle}{\pgf at yb}%
+ \pgfpathclose
+ \pgfusepathqfill
+ \endgroup
+ \advance\pgfutil at tempcntb\@ne
+ \ifnum\pgfutil at tempcntb<\c at pgf@countb
+ \pgfutil at repeat
+ }%
+ \endgroup
+ \advance\pgfutil at tempcnta\@ne
+ \ifnum\pgfutil at tempcnta<\c at pgf@counta
+ \pgf at ya\pgf at yb
+ \pgfmathsetmacro\pgf at tempd{\pgf at tempd-\tikzext at heatmark@opacity at seps}%
+ \pgfutil at repeat
+ \pgftransformshift{\pgfqpointscale{-1}{\centerpoint}}%
+ }
+}
+\endinput
Property changes on: trunk/Master/texmf-dist/tex/generic/tikz-ext/pgflibraryext.shapes.heatmark.code.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/generic/tikz-ext/pgflibraryext.shapes.rectangleroundedcorners.code.tex
===================================================================
--- trunk/Master/texmf-dist/tex/generic/tikz-ext/pgflibraryext.shapes.rectangleroundedcorners.code.tex (rev 0)
+++ trunk/Master/texmf-dist/tex/generic/tikz-ext/pgflibraryext.shapes.rectangleroundedcorners.code.tex 2022-11-03 21:03:19 UTC (rev 64920)
@@ -0,0 +1,318 @@
+\pgfset{
+ rectangle with rounded corners north west radius/.initial=.5\pgflinewidth,
+ rectangle with rounded corners north east radius/.initial=.5\pgflinewidth,
+ rectangle with rounded corners south west radius/.initial=.5\pgflinewidth,
+ rectangle with rounded corners south east radius/.initial=.5\pgflinewidth,
+ rectangle with rounded corners radius/.style={
+ /pgf/rectangle with rounded corners north west radius={#1},
+ /pgf/rectangle with rounded corners north east radius={#1},
+ /pgf/rectangle with rounded corners south west radius={#1},
+ /pgf/rectangle with rounded corners south east radius={#1}}
+}%
+\pgfdeclareshape{rectangle with rounded corners}{%
+ \savedmacro\rectanglewithroundedcornersparameter{%
+ %
+ % width = max(text width + 2 * inner xseps, minimum width) + 2 * outer xseps
+ \pgf at x=\wd\pgfnodeparttextbox
+ \pgfmathsetlength\pgf at xc{\pgfkeysvalueof{/pgf/inner xsep}}%
+ \advance\pgf at x by 2\pgf at xc
+ \pgfmathsetlength\pgf at xc{\pgfkeysvalueof{/pgf/minimum width}}%
+ \ifdim\pgf at x<\pgf at xc
+ \pgf at x=\pgf at xc
+ \fi
+ %
+ \pgfmathsetlength\pgf at xc{\pgfkeysvalueof{/pgf/outer xsep}}%
+ \edef\outerxsep{\the\pgf at xc}%
+ \addtosavedmacro\outerxsep
+ \advance\pgf at x by 2\pgf at xc
+ \pgf at x=.5\pgf at x
+ \edef\halfwidth{\the\pgf at x}%
+ \addtosavedmacro\halfwidth
+ %
+ % height = max(text height + text depth + 2 * inner yseps, minimum height) + 2 * outer yseps
+ \pgf at y=\ht\pgfnodeparttextbox
+ \advance\pgf at y by \dp\pgfnodeparttextbox
+ \pgfmathsetlength\pgf at yc{\pgfkeysvalueof{/pgf/inner ysep}}%
+ \advance\pgf at y by 2\pgf at yc
+ \pgfmathsetlength\pgf at yc{\pgfkeysvalueof{/pgf/minimum height}}%
+ \ifdim\pgf at y<\pgf at yc
+ \pgf at y=\pgf at yc
+ \fi
+ %
+ \pgfmathsetlength\pgf at yc{\pgfkeysvalueof{/pgf/outer ysep}}%
+ \edef\outerysep{\the\pgf at yc}%
+ \addtosavedmacro\outerysep
+ \advance\pgf at y by 2\pgf at yc
+ \pgf at y=.5\pgf at y
+ \edef\halfheight{\the\pgf at y}%
+ \addtosavedmacro\halfheight
+ %
+ % \centerpoint
+ \pgf at x=.5\wd\pgfnodeparttextbox
+ \pgf at y=.5\ht\pgfnodeparttextbox
+ \advance\pgf at y by -.5\dp\pgfnodeparttextbox
+ \pgfextract at process\centerpoint{}%
+ \addtosavedmacro\centerpoint
+ %
+ \pgfmathsetlengthmacro\northwestradius{\pgfkeysvalueof{/pgf/rectangle with rounded corners north west radius}}
+ \pgfmathsetlengthmacro\northeastradius{\pgfkeysvalueof{/pgf/rectangle with rounded corners north east radius}}
+ \pgfmathsetlengthmacro\southwestradius{\pgfkeysvalueof{/pgf/rectangle with rounded corners south west radius}}
+ \pgfmathsetlengthmacro\southeastradius{\pgfkeysvalueof{/pgf/rectangle with rounded corners south east radius}}
+ \addtosavedmacro\northwestradius
+ \addtosavedmacro\northeastradius
+ \addtosavedmacro\southwestradius
+ \addtosavedmacro\southeastradius
+ }%
+ \anchor{center}{%
+ \rectanglewithroundedcornersparameter
+ \centerpoint
+ }
+ \anchor{west}{%
+ \rectanglewithroundedcornersparameter
+ \centerpoint
+ \advance\pgf at x by -\halfwidth
+ }
+ \anchor{east}{%
+ \rectanglewithroundedcornersparameter
+ \centerpoint
+ \advance\pgf at x by \halfwidth
+ }
+ \anchor{north}{%
+ \rectanglewithroundedcornersparameter
+ \centerpoint
+ \advance\pgf at y by \halfheight
+ }
+ \anchor{south}{%
+ \rectanglewithroundedcornersparameter
+ \centerpoint
+ \advance\pgf at y by -\halfheight
+ }
+ \anchor{mid}{%
+ \rectanglewithroundedcornersparameter
+ \centerpoint
+ \pgfmathsetlength\pgf at y{+.5ex}%
+ }
+ \anchor{mid west}{%
+ \csname pgf at anchor@rectangle with rounded corners at west\endcsname
+ \pgfmathsetlength\pgf at y{+.5ex}%
+ }
+ \anchor{mid east}{%
+ \csname pgf at anchor@rectangle with rounded corners at east\endcsname
+ \pgfmathsetlength\pgf at y{+.5ex}%
+ }
+ \anchor{base}{%
+ \rectanglewithroundedcornersparameter
+ \centerpoint
+ \pgf at y=0pt
+ }
+ \anchor{base west}{%
+ \csname pgf at anchor@rectangle with rounded corners at west\endcsname
+ \pgf at y=0pt
+ }
+ \anchor{base east}{%
+ \csname pgf at anchor@rectangle with rounded corners at east\endcsname
+ \pgf at y=0pt
+ }
+ \anchor{north west}{%
+ \csname pgf at anchor@rectangle with rounded corners at north west center\endcsname
+ \ifdim\northwestradius=0pt
+ \else
+ \pgf at process{\pgfpointadd{}{\pgfpointpolar{135}{\northwestradius+\outerxsep and \northwestradius+\outerysep}}}%
+ \fi
+ }
+ \anchor{north west center}{%
+ \rectanglewithroundedcornersparameter
+ \pgf at x=-\halfwidth
+ \pgf at y=\halfheight
+ \ifdim\northwestradius=0pt
+ \else
+ \advance\pgf at x by \outerxsep
+ \advance\pgf at x by \northwestradius
+ \advance\pgf at y by -\outerysep
+ \advance\pgf at y by -\northwestradius
+ \fi
+ \pgf at process{\pgfpointadd{}{\centerpoint}}%
+ }
+ \anchor{north east}{%
+ \csname pgf at anchor@rectangle with rounded corners at north east center\endcsname
+ \ifdim\northeastradius=0pt
+ \else
+ \pgf at process{\pgfpointadd{}{\pgfpointpolar{45}{\northeastradius+\outerxsep and \northeastradius+\outerysep}}}%
+ \fi
+ }
+ \anchor{north east center}{%
+ \rectanglewithroundedcornersparameter
+ \pgf at x=\halfwidth
+ \pgf at y=\halfheight
+ \ifdim\northeastradius=0pt
+ \else
+ \advance\pgf at x by -\outerxsep
+ \advance\pgf at x by -\northeastradius
+ \advance\pgf at y by -\outerysep
+ \advance\pgf at y by -\northeastradius
+ \fi
+ \pgf at process{\pgfpointadd{}{\centerpoint}}%
+ }
+ \anchor{south west}{%
+ \csname pgf at anchor@rectangle with rounded corners at south west center\endcsname
+ \ifdim\southwestradius=0pt
+ \else
+ \pgf at process{\pgfpointadd{}{\pgfpointpolar{225}{\southwestradius+\outerxsep and \southwestradius+\outerysep}}}%
+ \fi
+ }
+ \anchor{south west center}{%
+ \rectanglewithroundedcornersparameter
+ \pgf at x=-\halfwidth
+ \pgf at y=-\halfheight
+ \ifdim\southwestradius=0pt
+ \else
+ \advance\pgf at x by \outerxsep
+ \advance\pgf at x by \southwestradius
+ \advance\pgf at y by \outerysep
+ \advance\pgf at y by \southwestradius
+ \fi
+ \pgf at process{\pgfpointadd{}{\centerpoint}}%
+ }
+ \anchor{south east}{%
+ \csname pgf at anchor@rectangle with rounded corners at south east center\endcsname
+ \ifdim\southeastradius=0pt
+ \else
+ \pgf at process{\pgfpointadd{}{\pgfpointpolar{315}{\southeastradius+\outerxsep and \southeastradius+\outerysep}}}%
+ \fi
+ }
+ \anchor{south east center}{%
+ \rectanglewithroundedcornersparameter
+ \pgf at x=\halfwidth
+ \pgf at y=-\halfheight
+ \ifdim\southeastradius=0pt
+ \else
+ \advance\pgf at x by -\outerxsep
+ \advance\pgf at x by -\southeastradius
+ \advance\pgf at y by \outerysep
+ \advance\pgf at y by \southeastradius
+ \fi
+ \pgf at process{\pgfpointadd{}{\centerpoint}}%
+ }
+ \anchor{below north west}{%
+ \csname pgf at anchor@rectangle with rounded corners at north west center\endcsname
+ \advance\pgf at x by -\northwestradius
+ \advance\pgf at x by -\outerxsep
+ }
+ \anchor{above south west}{%
+ \csname pgf at anchor@rectangle with rounded corners at south west center\endcsname
+ \advance\pgf at x by -\southwestradius
+ \advance\pgf at x by -\outerxsep
+ }
+ \anchor{below north east}{%
+ \csname pgf at anchor@rectangle with rounded corners at north east center\endcsname
+ \advance\pgf at x by \northeastradius
+ \advance\pgf at x by \outerxsep
+ }
+ \anchor{above south east}{%
+ \csname pgf at anchor@rectangle with rounded corners at south east center\endcsname
+ \advance\pgf at x by \southeastradius
+ \advance\pgf at x by \outerxsep
+ }
+ \anchor{right north west}{%
+ \csname pgf at anchor@rectangle with rounded corners at north west center\endcsname
+ \advance\pgf at y by \northwestradius
+ \advance\pgf at y by \outerysep
+ }
+ \anchor{right south west}{%
+ \csname pgf at anchor@rectangle with rounded corners at south west center\endcsname
+ \advance\pgf at y by -\southwestradius
+ \advance\pgf at y by -\outerysep
+ }
+ \anchor{left north east}{%
+ \csname pgf at anchor@rectangle with rounded corners at north east center\endcsname
+ \advance\pgf at y by \northeastradius
+ \advance\pgf at y by \outerysep
+ }
+ \anchor{left south east}{%
+ \csname pgf at anchor@rectangle with rounded corners at south east center\endcsname
+ \advance\pgf at y by -\southeastradius
+ \advance\pgf at y by -\outerysep
+ }
+ \backgroundpath{%
+ \rectanglewithroundedcornersparameter
+ %
+ \pgf at xa=\halfwidth
+ \advance\pgf at xa by -\outerxsep
+ \edef\HalfWidth{\the\pgf at xa}%
+ %
+ \pgf at ya=\halfheight
+ \advance\pgf at ya by -\outerysep
+ \edef\HalfHeight{\the\pgf at ya}%
+ %
+ \pgftransformshift{\centerpoint}%
+ %
+ \pgfpathmoveto{\pgfqpoint{\HalfWidth}{0pt}}%
+ \pgfpathlineto{\pgfpoint {+\HalfWidth}{\HalfHeight-\northeastradius}}%
+ \pgfpatharc{0}{90}{\northeastradius}%
+ \pgfpathlineto{\pgfpoint{-\HalfWidth+\northwestradius}{+\HalfHeight}}
+ \pgfpatharc{90}{180}{\northwestradius}%
+ \pgfpathlineto{\pgfpoint{+-\HalfWidth}{-\HalfHeight+\southwestradius}}%
+ \pgfpatharc{180}{270}{\southwestradius}%
+ \pgfpathlineto{\pgfpoint{\HalfWidth-\southeastradius}{+-\HalfHeight}}%
+ \pgfpatharc{270}{360}{\southeastradius}%
+ \pgfpathclose
+ \pgftransformshift{\pgfqpointscale{-1}{\centerpoint}}%
+ }%
+ \anchorborder{%
+ \pgfextract at process\externalpoint{}%
+ \ifdim\pgf at x=0pt
+ \ifdim\pgf at y<0pt
+ \csname pgf at anchor@rectangle with rounded corners at south\endcsname
+ \else
+ \csname pgf at anchor@rectangle with rounded corners at north\endcsname
+ \fi
+ \else
+ \ifdim\pgf at y=0pt
+ \ifdim\pgf at x<0pt
+ \csname pgf at anchor@rectangle with rounded corners at west\endcsname
+ \else
+ \csname pgf at anchor@rectangle with rounded corners at east\endcsname
+ \fi
+ \else
+ \rectanglewithroundedcornersparameter
+ \pgfmathanglebetweenpoints{\pgfpointorigin}{\externalpoint}%
+ \let\angle\pgfmathresult
+ \pgf at xa=\pgf at x
+ \pgf at ya=\pgf at y
+ \pgfextract at process\externalPoint{\pgfpointadd{}{\centerpoint}}%
+ \ifdim\pgf at xa<0pt
+ \ifdim\pgf at ya<0pt
+ % south west
+ \pgf at sh@rwrc at anchorborder{above south west}{right south west}{south west}{180}{270}{\southwestradius}%
+ \else
+ % north west
+ \pgf at sh@rwrc at anchorborder{right north west}{below north west}{north west}{90}{180}{\northwestradius}%
+ \fi
+ \else
+ \ifdim\pgf at ya<0pt
+ % south east
+ \pgf at sh@rwrc at anchorborder{left south east}{above south east}{south east}{270}{360}{\southeastradius}%
+ \else
+ % north east
+ \pgf at sh@rwrc at anchorborder{below north east}{left north east}{north east}{0}{90}{\northeastradius}%
+ \fi
+ \fi
+ \fi
+ \fi
+ }
+}
+\def\pgf at sh@rwrc at anchorborder#1#2#3#4#5#6{%
+ \pgfmathanglebetweenpoints{\centerpoint}{\csname pgf at anchor@rectangle with rounded corners@#1\endcsname}%
+ \let\angleA\pgfmathresult
+ \pgfmathanglebetweenpoints{\centerpoint}{\csname pgf at anchor@rectangle with rounded corners@#2\endcsname}%
+ \let\angleB\pgfmathresult
+ \if\ifdim\angle pt>\angleA pt 0\else1\fi\ifdim\angle pt<\angleB pt 0\else 2\fi
+ \pgfmathpointintersectionoflineandarc{\externalPoint}{\centerpoint}
+ {\csname pgf at anchor@rectangle with rounded corners@#3 center\endcsname}
+ {#4}{#5}{#6+\outerxsep and #6+\outerysep}%
+ \else
+ \pgf at process{\pgfpointadd{\pgfpointborderrectangle{\externalpoint}{\pgfqpoint{\halfwidth}{\halfheight}}}{\centerpoint}}%
+ \fi
+}
+
+\endinput
Property changes on: trunk/Master/texmf-dist/tex/generic/tikz-ext/pgflibraryext.shapes.rectangleroundedcorners.code.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/generic/tikz-ext/pgflibraryext.shapes.superellipse.code.tex
===================================================================
--- trunk/Master/texmf-dist/tex/generic/tikz-ext/pgflibraryext.shapes.superellipse.code.tex (rev 0)
+++ trunk/Master/texmf-dist/tex/generic/tikz-ext/pgflibraryext.shapes.superellipse.code.tex 2022-11-03 21:03:19 UTC (rev 64920)
@@ -0,0 +1,198 @@
+% Copyright 2022 by Qrrbrbirlbel
+%
+% This file may be distributed and/or modified
+%
+% 1. under the LaTeX Project Public License and/or
+% 2. under the GNU Free Documentation License.
+%
+\usepgflibrary{shapes.geometric,intersections}
+\pgfset{
+ superellipse x exponent/.initial=2.5,
+ superellipse y exponent/.initial=2.5,
+ superellipse step/.initial=4,
+ superellipse exponent/.style={/pgf/superellipse x exponent={#1},/pgf/superellipse y exponent={#1}}}
+
+% Evaluates the x-value of a superellipse around the center
+% #1 = t (0≤t≤90)
+% #2 = 2/m (x-exp)
+% #3 = a (x-rad)
+\pgfmathdeclarefunction{superellipsex}{3}{%
+ \pgfmathcos@{#1}%
+ \pgfmathpow@{\pgfmathresult}{#2}%
+ \pgfmathmultiply@{\pgfmathresult}{#3}}
+
+% Evaluates the y-value of a superellipse around the center
+% #1 = t (0≤t≤90)
+% #2 = 2/n (y-exp)
+% #3 = a (y-rad)
+\pgfmathdeclarefunction{superellipsey}{3}{%
+ \pgfmathsin@{#1}%
+ \pgfmathpow@{\pgfmathresult}{#2}%
+ \pgfmathmultiply@{\pgfmathresult}{#3}}
+
+% Evaluates the x- and y- value of superellipse around the center
+% #1 = t (0≤t≤90)
+% #2 = 2/m (x-exp)
+% #3 = 2/n (y-exp)
+% #4 = a (x-rad)
+% #5 = b (y-rad)
+\def\pgfmathsuperellipseXY#1#2#3#4#5{%
+ \begingroup
+ \pgfmathsuperellipsex@{#1}{#2}{#4}%
+ \let\pgfmath at temp\pgfmathresult
+ \pgfmathsuperellipsey@{#1}{#3}{#5}%
+ \edef\pgfmath at temp{\def\noexpand\pgfmathresultX{\pgfmath at temp}%
+ \def\noexpand\pgfmathresultY{\pgfmathresult}}%
+ \expandafter
+ \endgroup\pgfmath at temp}
+
+\pgfdeclareshape{superellipse}{%
+ \inheritsavedanchors[from=ellipse]
+ \inheritanchor[from=ellipse]{text}\inheritanchor[from=ellipse]{center}
+ \inheritanchor[from=ellipse]{mid}\inheritanchor[from=ellipse]{base}
+ \inheritanchor[from=ellipse]{north}\inheritanchor[from=ellipse]{south}
+ \inheritanchor[from=ellipse]{west}\inheritanchor[from=ellipse]{east}
+ \inheritanchor[from=ellipse]{mid west}\inheritanchor[from=ellipse]{base west}
+ \inheritanchor[from=ellipse]{mid east}\inheritanchor[from=ellipse]{base east}
+ \anchor{north east}{%
+ \pgf at process{\radius}%
+ \pgfmathpow@{.70710678118}{\xexponent}%
+ \pgf at x=\pgfmathresult\pgf at x
+ \pgfmathpow@{.70710678118}{\yexponent}%
+ \pgf at y=\pgfmathresult\pgf at y
+ \pgfpointadd{}{\centerpoint}%
+ }
+ \anchor{north west}{%
+ \pgf at process{\radius}%
+ \pgfmathpow@{.70710678118}{\xexponent}%
+ \pgf at x=-\pgfmathresult\pgf at x
+ \pgfmathpow@{.70710678118}{\yexponent}%
+ \pgf at y=\pgfmathresult\pgf at y
+ \pgfpointadd{}{\centerpoint}%
+ }
+ \anchor{south west}{%
+ \pgf at process{\radius}%
+ \pgfmathpow@{.70710678118}{\xexponent}%
+ \pgf at x=-\pgfmathresult\pgf at x
+ \pgfmathpow@{.70710678118}{\yexponent}%
+ \pgf at y=-\pgfmathresult\pgf at y
+ \pgfpointadd{}{\centerpoint}%
+ }
+ \anchor{south east}{%
+ \pgf at process{\radius}%
+ \pgfmathpow@{.70710678118}{\xexponent}%
+ \pgf at x=\pgfmathresult\pgf at x
+ \pgfmathpow@{.70710678118}{\yexponent}%
+ \pgf at y=-\pgfmathresult\pgf at y
+ \pgfpointadd{}{\centerpoint}%
+ }
+ \savedmacro\xexponent{%
+ \pgfmathreciprocal{\pgfkeysvalueof{/pgf/superellipse x exponent}}%
+ \pgfmathmultiply@{\pgfmathresult}{2}%
+ \let\xexponent\pgfmathresult
+ }
+ \savedmacro\yexponent{%
+ \pgfmathreciprocal{\pgfkeysvalueof{/pgf/superellipse y exponent}}%
+ \pgfmathmultiply@{\pgfmathresult}{2}%
+ \let\yexponent\pgfmathresult
+ }
+ \savedmacro\step{%
+ \pgfmathtruncatemacro\step{\pgfkeysvalueof{/pgf/superellipse step}}%
+ }
+ \backgroundpath{%
+ \pgf at process{\radius}%
+ \pgfmathsetmacro\xradius{\pgf at x-(\pgfkeysvalueof{/pgf/outer xsep})}%
+ \pgfmathsetmacro\yradius{\pgf at y-(\pgfkeysvalueof{/pgf/outer ysep})}%
+ \let\pgf at tempa\pgfutil at empty\let\pgf at tempb\pgfutil at empty
+ \let\pgf at tempc\pgfutil at empty\let\pgf at tempd\pgfutil at empty
+ \c at pgf@counta=\step
+ \pgfutil at loop
+ \ifnum\c at pgf@counta<90
+ \pgfmathsuperellipseXY{\the\c at pgf@counta}{\xexponent}{\yexponent}{\xradius}{\yradius}%
+ \edef\pgf at temp{\noexpand\pgfplotstreampoint{\noexpand\pgfqpoint{\pgfmathresultX pt}{\pgfmathresultY pt}}}%
+ \pgfutil at append@macrotomacro\pgf at tempa\pgf at temp
+ \edef\pgf at temp{\noexpand\pgfplotstreampoint{\noexpand\pgfqpoint{-\pgfmathresultX pt}{\pgfmathresultY pt}}}%
+ \pgfutil at prefix@macrotomacro\pgf at tempb\pgf at temp
+ \edef\pgf at temp{\noexpand\pgfplotstreampoint{\noexpand\pgfqpoint{-\pgfmathresultX pt}{-\pgfmathresultY pt}}}%
+ \pgfutil at append@macrotomacro\pgf at tempc\pgf at temp
+ \edef\pgf at temp{\noexpand\pgfplotstreampoint{\noexpand\pgfqpoint{\pgfmathresultX pt}{-\pgfmathresultY pt}}}%
+ \pgfutil at prefix@macrotomacro\pgf at tempd\pgf at temp
+ \advance\c at pgf@counta by\step
+ \pgfutil at repeat
+ \pgftransformshift{\centerpoint}%
+ \pgfplothandlerclosedcurve
+ \pgfplotstreamstart
+ \pgfplotstreampoint{\pgfqpoint{\xradius pt}{0pt}}% east
+ \pgf at tempa
+ \pgfplotstreampoint{\pgfqpoint{0pt}{\yradius pt}}% north
+ \pgf at tempb
+ \pgfplotstreampoint{\pgfqpoint{-\xradius pt}{0pt}}% west
+ \pgf at tempc
+ \pgfplotstreampoint{\pgfqpoint{0pt}{-\yradius pt}}% south
+ \pgf at tempd
+ \pgfplotstreamend
+ \pgftransformshift{\centerpoint\pgf at x=-\pgf at x\pgf at y=-\pgf at y}
+ }
+ \anchorborder{%
+ \pgfextract at process\externalpoint{}%
+ \ifdim\pgf at x=0pt % catch special case x = 0
+ \ifdim\pgf at y<0pt \pgf at anchor@superellipse at south\else\pgf at anchor@superellipse at north\fi
+ \else
+ \ifdim\pgf at y=0pt % catch special case y = 0
+ \ifdim\pgf at x<0pt \pgf at anchor@superellipse at west\else\pgf at anchor@superellipse at east\fi
+ \else % both are not zero
+ % save original direction
+ \pgf at xa=\pgf at x
+ \pgf at ya=\pgf at y
+ % make both positive, we're not looking at one quadrant
+ \ifdim\pgf at xa<0pt \pgf at x=-\pgf at x\fi
+ \ifdim\pgf at ya<0pt \pgf at y=-\pgf at y\fi
+ % save that point again
+ \pgfextract at process\externalpoint{}%
+ % we need to do the calculations without any transformations
+ % since we're using plots and \pgfpointborderrectangle
+ \pgftransformreset
+ \pgfintersectionofpaths{%
+ % from center to point on rectangle that encompasses superellipse
+ \pgf at relevantforpicturesizefalse
+ \pgfpathmoveto{\pgfpointorigin}%
+ \pgfpathlineto{\pgfpointborderrectangle{\externalpoint}{\radius}}%
+ }{%
+ \pgf at relevantforpicturesizefalse
+ \pgf at process{\radius}
+ \edef\xradius{\pgf at sys@tonumber\pgf at x}%
+ \edef\yradius{\pgf at sys@tonumber\pgf at y}%
+ \let\pgf at tempa\pgfutil at empty
+ \c at pgf@counta=\step
+ \pgfutil at loop
+ \ifnum\c at pgf@counta<90
+ \pgfmathsuperellipseXY{\the\c at pgf@counta}{\xexponent}{\yexponent}{\xradius}{\yradius}%
+ \edef\pgf at temp{\noexpand\pgfplotstreampoint{\noexpand\pgfqpoint{\pgfmathresultX pt}{\pgfmathresultY pt}}}%
+ \pgfutil at append@macrotomacro\pgf at tempa\pgf at temp
+ \advance\c at pgf@counta by\step
+ \pgfutil at repeat
+ % we're only using curveto since closedcurve
+ % messes with our other path
+ \pgfplothandlercurveto
+ \pgfplotstreamstart
+ \pgfplotstreampoint{\pgfqpoint{\xradius pt}{0pt}}% east
+ \pgf at tempa
+ \pgfplotstreampoint{\pgfqpoint{0pt}{\yradius pt}}% north
+ \pgfplotstreamend
+ }%
+ \ifnum\pgfintersectionsolutions>0 % only if a solution was found
+ \pgf at process{\pgfpointintersectionsolution{1}}%
+ \else % otherwise take the border on the rectangle (close enough?)
+ \pgf at process{\pgfpointborderrectangle{\externalpoint}{\radius}}%
+ \fi
+ \ifdim\pgf at xa<0pt \pgf at x=-\pgf at x\fi
+ \ifdim\pgf at ya<0pt \pgf at y=-\pgf at y\fi
+ \pgf at process{\pgfpointadd{}{\centerpoint}}%
+ \fi
+ \fi
+ }
+}
+\def\pgfutil at prefix@macrotomacro#1#2{%
+ \expandafter\expandafter\expandafter\def\expandafter\expandafter\expandafter%
+ #1\expandafter\expandafter\expandafter{\expandafter#2#1}}
+\endinput
Property changes on: trunk/Master/texmf-dist/tex/generic/tikz-ext/pgflibraryext.shapes.superellipse.code.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/generic/tikz-ext/pgflibraryext.shapes.uncenteredrectangle.code.tex
===================================================================
--- trunk/Master/texmf-dist/tex/generic/tikz-ext/pgflibraryext.shapes.uncenteredrectangle.code.tex (rev 0)
+++ trunk/Master/texmf-dist/tex/generic/tikz-ext/pgflibraryext.shapes.uncenteredrectangle.code.tex 2022-11-03 21:03:19 UTC (rev 64920)
@@ -0,0 +1,307 @@
+% Copyright 2022 by Qrrbrbirlbel
+%
+% This file may be distributed and/or modified
+%
+% 1. under the LaTeX Project Public License and/or
+% 2. under the GNU Free Documentation License.
+%
+\pgfutil at IfUndefined{pgfnodepartthreebox}{%
+ \csname newbox\endcsname\pgfnodepartleftbox
+ \csname newbox\endcsname\pgfnodepartrightbox
+}{%
+ \let\pgfnodepartleftbox\pgfnodeparttwobox
+ \let\pgfnodepartrightbox\pgfnodepartthreebox
+}
+\pgfset{
+ uncentered rectangle center yshift/.initial=,
+ uncentered rectangle center/@center/.initial=2,
+ uncentered rectangle center/.is choice,
+ uncentered rectangle center/real/.code=\pgfkeyssetvalue{/pgf/uncentered rectangle center/@center}{0},
+ uncentered rectangle center/left/.code=\pgfkeyssetvalue{/pgf/uncentered rectangle center/@center}{1},
+ uncentered rectangle center/text/.code=\pgfkeyssetvalue{/pgf/uncentered rectangle center/@center}{2},
+ uncentered rectangle center/right/.code=\pgfkeyssetvalue{/pgf/uncentered rectangle center/@center}{3}}
+
+\pgfdeclareshape{uncentered rectangle}{%
+ \nodeparts{text,left,right}%
+ \savedanchor\middleCenter{%
+ \pgf at x=.5\wd\pgfnodeparttextbox
+ %
+ \pgf at y=\dp\pgfnodeparttextbox
+ \ifdim\dp\pgfnodepartleftbox>\pgf at y
+ \pgf at y=\dp\pgfnodepartleftbox
+ \fi
+ \ifdim\dp\pgfnodepartrightbox>\pgf at y
+ \pgf at y=\dp\pgfnodepartrightbox
+ \fi
+ %
+ \pgf at ya=\ht\pgfnodeparttextbox
+ \ifdim\ht\pgfnodepartleftbox>\pgf at ya
+ \pgf at ya=\ht\pgfnodepartleftbox
+ \fi
+ \ifdim\ht\pgfnodepartrightbox>\pgf at ya
+ \pgf at ya=\ht\pgfnodepartrightbox
+ \fi
+ \advance\pgf at ya by -\pgf at y
+ \pgf at y=.5\pgf at ya
+ }%
+ \savedanchor\leftCenter{%
+ % y should be still the same as before
+ \pgf at x=-.5\wd\pgfnodepartleftbox
+ }%
+ \savedanchor\rightCenter{%
+ % y should be still the same as before
+ \pgf at x=.5\wd\pgfnodepartrightbox
+ \advance\pgf at x by \wd\pgfnodeparttextbox
+ }%
+ \savedanchor\realCenter{%
+ % y should be still the same as before
+ \pgf at x=-.5\wd\pgfnodepartleftbox
+ \advance\pgf at x by .5\wd\pgfnodeparttextbox
+ \advance\pgf at x by .5\wd\pgfnodepartrightbox
+ }%
+ \savedanchor\southwest{%
+ % total width
+ \pgf at xa=\wd\pgfnodepartleftbox
+ \advance\pgf at xa by\wd\pgfnodepartrightbox
+ \advance\pgf at xa by\wd\pgfnodeparttextbox
+ %
+ \pgfmathsetlength\pgf at xc{\pgfkeysvalueof{/pgf/inner xsep}}%
+ \advance\pgf at xa by 2\pgf at xc
+ \pgfmathsetlength\pgf at xb{\pgfkeysvalueof{/pgf/minimum width}}%
+ \ifdim\pgf at xb>\pgf at xa
+ \pgf at xa=\pgf at xb
+ \fi
+ % left side of shape
+ \advance\pgf at x by -.5\pgf at xa
+ \pgfmathsetlength\pgf at xa{\pgfkeysvalueof{/pgf/outer xsep}}%
+ \advance\pgf at x by -\pgf at xa
+ %
+ % total height
+ \pgf at ya=\dp\pgfnodepartleftbox
+ \ifdim\pgf at ya<\dp\pgfnodeparttextbox
+ \pgf at ya=\dp\pgfnodeparttextbox
+ \fi
+ \ifdim\pgf at ya<\dp\pgfnodepartrightbox
+ \pgf at ya=\dp\pgfnodepartrightbox
+ \fi
+ \pgf at yb=\ht\pgfnodepartleftbox
+ \ifdim\pgf at yb<\ht\pgfnodeparttextbox
+ \pgf at yb=\ht\pgfnodeparttextbox
+ \fi
+ \ifdim\pgf at yb<\ht\pgfnodepartrightbox
+ \pgf at yb=\ht\pgfnodepartrightbox
+ \fi
+ \advance\pgf at ya by \pgf at yb
+ %
+ \pgfmathsetlength\pgf at yc{\pgfkeysvalueof{/pgf/inner ysep}}%
+ \advance\pgf at ya by 2\pgf at yc
+ \pgfmathsetlength\pgf at yb{\pgfkeysvalueof{/pgf/minimum height}}%
+ \ifdim\pgf at yb>\pgf at ya
+ \pgf at ya=\pgf at yb
+ \fi
+ % lower side of the shape
+ \advance\pgf at y by -.5\pgf at ya
+ \pgfmathsetlength\pgf at ya{\pgfkeysvalueof{/pgf/outer ysep}}%
+ \advance\pgf at y by -\pgf at ya
+ }%
+ \savedanchor\northeast{%
+ % first, let's calculate the real center again:
+ %
+ \pgf at x=-.5\wd\pgfnodepartleftbox
+ \advance\pgf at x by .5\wd\pgfnodeparttextbox
+ \advance\pgf at x by .5\wd\pgfnodepartrightbox
+ %
+ \pgf at y=\dp\pgfnodeparttextbox
+ \ifdim\dp\pgfnodepartleftbox>\pgf at y
+ \pgf at y=\dp\pgfnodepartleftbox
+ \fi
+ \ifdim\dp\pgfnodepartrightbox>\pgf at y
+ \pgf at y=\dp\pgfnodepartrightbox
+ \fi
+ %
+ \pgf at ya=\ht\pgfnodeparttextbox
+ \ifdim\ht\pgfnodepartleftbox>\pgf at ya
+ \pgf at ya=\ht\pgfnodepartleftbox
+ \fi
+ \ifdim\ht\pgfnodepartrightbox>\pgf at ya
+ \pgf at ya=\ht\pgfnodepartrightbox
+ \fi
+ \advance\pgf at ya by -\pgf at y
+ \pgf at y=.5\pgf at ya
+ %
+ % now we can calculate the anchor
+ % total width
+ %
+ \pgf at xa=\wd\pgfnodepartleftbox
+ \advance\pgf at xa by\wd\pgfnodepartrightbox
+ \advance\pgf at xa by\wd\pgfnodeparttextbox
+ %
+ \pgfmathsetlength\pgf at xc{\pgfkeysvalueof{/pgf/inner xsep}}%
+ \advance\pgf at xa by 2\pgf at xc
+ \pgfmathsetlength\pgf at xb{\pgfkeysvalueof{/pgf/minimum width}}%
+ \ifdim\pgf at xb>\pgf at xa
+ \pgf at xa=\pgf at xb
+ \fi
+ % right side of shape
+ \advance\pgf at x by .5\pgf at xa
+ \pgfmathsetlength\pgf at xa{\pgfkeysvalueof{/pgf/outer xsep}}%
+ \advance\pgf at x by \pgf at xa
+ %
+ % total height
+ \pgf at ya=\dp\pgfnodepartleftbox
+ \ifdim\pgf at ya<\dp\pgfnodeparttextbox
+ \pgf at ya=\dp\pgfnodeparttextbox
+ \fi
+ \ifdim\pgf at ya<\dp\pgfnodepartrightbox
+ \pgf at ya=\dp\pgfnodepartrightbox
+ \fi
+ \pgf at yb=\ht\pgfnodepartleftbox
+ \ifdim\pgf at yb<\ht\pgfnodeparttextbox
+ \pgf at yb=\ht\pgfnodeparttextbox
+ \fi
+ \ifdim\pgf at yb<\ht\pgfnodepartrightbox
+ \pgf at yb=\ht\pgfnodepartrightbox
+ \fi
+ \advance\pgf at ya by \pgf at yb
+ %
+ \pgfmathsetlength\pgf at yc{\pgfkeysvalueof{/pgf/inner ysep}}%
+ \advance\pgf at ya by 2\pgf at yc
+ \pgfmathsetlength\pgf at yb{\pgfkeysvalueof{/pgf/minimum height}}%
+ \ifdim\pgf at yb>\pgf at ya
+ \pgf at ya=\pgf at yb
+ \fi
+ % upper side of the shape
+ \advance\pgf at y by .5\pgf at ya
+ \pgfmathsetlength\pgf at ya{\pgfkeysvalueof{/pgf/outer ysep}}%
+ \advance\pgf at y by \pgf at ya
+ }%
+ %
+ \anchor{center}{%
+ \ifcase\pgfkeysvalueof{/pgf/uncentered rectangle center/@center}\relax
+ \realCenter\or
+ \leftCenter\or
+ \middleCenter\or
+ \rightCenter\else
+ \realCenter
+ \fi
+ \pgfkeysgetvalue{/pgf/uncentered rectangle center yshift}\pgf at temp
+ \pgfutil at ifxempty\pgf at temp{% real center used
+ }{% calculate center
+ \pgfmathsetlength\pgf at y{\pgf at temp}%
+ }%
+ }%
+ \anchor{left} {\leftCenter \multiply\pgf at x by2 \pgf at y=0pt }
+ \anchor{right} {\middleCenter\multiply\pgf at x by2 \pgf at y=0pt }
+ \anchor{real center} {\realCenter}
+ \anchor{left center} {\leftCenter}
+ \anchor{right center}{\rightCenter}
+ \anchor{text center} {\middleCenter}
+ \anchor{south west} {\southwest}
+ \anchor{north east} {\northeast}
+ \anchor{mid}{%
+ \csname pgf at anchor@uncentered rectangle at center\endcsname
+ \pgfmathsetlength\pgf at y{.5ex}}%
+ \anchor{base}{%
+ \csname pgf at anchor@uncentered rectangle at center\endcsname
+ \pgf at y=0pt }%
+ \anchor{left mid} {\leftCenter \pgfmathsetlength\pgf at y{+.5ex}}
+ \anchor{text mid} {\middleCenter\pgfmathsetlength\pgf at y{+.5ex}}
+ \anchor{right mid} {\rightCenter \pgfmathsetlength\pgf at y{+.5ex}}
+ \anchor{real mid} {\realCenter \pgfmathsetlength\pgf at y{+.5ex}}
+ \anchor{left base} {\leftCenter \pgf at y=0pt }
+ \anchor{text base} {\middleCenter\pgf at y=0pt }
+ \anchor{right base} {\rightCenter \pgf at y=0pt }
+ \anchor{real base} {\realCenter \pgf at y=0pt }
+ \anchor{real south} {\pgf at anchor@rectangle at south}
+ \anchor{real north} {\pgf at anchor@rectangle at north}
+ \anchor{text north} {\pgf at anchor@rectangle at north\pgf at ya=\pgf at y\middleCenter\pgf at y=\pgf at ya}
+ \anchor{left north} {\pgf at anchor@rectangle at north\pgf at ya=\pgf at y\leftCenter \pgf at y=\pgf at ya}
+ \anchor{right north}{\pgf at anchor@rectangle at north\pgf at ya=\pgf at y\rightCenter \pgf at y=\pgf at ya}
+ \anchor{text south} {\pgf at anchor@rectangle at south\pgf at ya=\pgf at y\middleCenter\pgf at y=\pgf at ya}
+ \anchor{left south} {\pgf at anchor@rectangle at south\pgf at ya=\pgf at y\leftCenter \pgf at y=\pgf at ya}
+ \anchor{right south}{\pgf at anchor@rectangle at south\pgf at ya=\pgf at y\rightCenter \pgf at y=\pgf at ya}
+ \anchor{north}{%
+ \pgf at anchor@rectangle at north
+ \pgf at ya=\pgf at y
+ \csname pgf at anchor@uncentered rectangle at center\endcsname
+ \pgf at y=\pgf at ya
+ }
+ \anchor{south}{%
+ \pgf at anchor@rectangle at south
+ \pgf at ya=\pgf at y
+ \csname pgf at anchor@uncentered rectangle at center\endcsname
+ \pgf at y=\pgf at ya
+ }
+ %\anchor{base right}{\middleCenter\pgf at xa=2\pgf at x}% TODO
+ \anchor{real west}{%
+ \pgf at process{\northeast}%
+ \pgf at ya=.5\pgf at y
+ \pgf at process{\southwest}%
+ \pgf at y=.5\pgf at y
+ \advance\pgf at y by \pgf at ya
+ }%
+ \anchor{real east}{%
+ \pgf at process{\southwest}%
+ \pgf at ya=.5\pgf at y
+ \pgf at process{\northeast}%
+ \pgf at y=.5\pgf at y
+ \advance\pgf at y by \pgf at ya
+ }%
+ \anchor{west}{%
+ \pgf at process{\southwest}%
+ \pgf at xa=\pgf at x
+ \pgf at process{\csname pgf at anchor@uncentered rectangle at center\endcsname}%
+ \pgf at x=\pgf at xa
+ }%
+ \anchor{east}{%
+ \pgf at process{\northeast}%
+ \pgf at xa=\pgf at x
+ \pgf at process{\csname pgf at anchor@uncentered rectangle at center\endcsname}%
+ \pgf at x=\pgf at xa
+ }%
+ \inheritanchor[from=rectangle]{south west}
+ \inheritanchor[from=rectangle]{north west}
+ \inheritanchor[from=rectangle]{south east}
+ \inheritanchor[from=rectangle]{north east}
+ \inheritanchor[from=rectangle]{mid west}
+ \inheritanchor[from=rectangle]{mid east}
+ \inheritanchor[from=rectangle]{base west}
+ \inheritanchor[from=rectangle]{base east}
+ \inheritbackgroundpath[from=rectangle]
+ \anchorborder{%
+ % xa/ya is target
+ \pgf at xa=\pgf at x
+ \pgf at ya=\pgf at y
+ % xc/yc is "center"
+ \pgf at sh@reanchor{uncentered rectangle}{center}%
+ \pgf at xc=\pgf at x
+ \pgf at yc=\pgf at y
+ \ifdim\pgf at xa<0pt
+ % left side
+ \southwest
+ \advance\pgf at x by -\pgf at xc
+ \advance\pgf at y by -\pgf at yc
+ \pgf at x=-\pgf at x
+ \pgf at y=-\pgf at y
+ \edef\pgf at marshal{%
+ \noexpand\pgfpointborderrectangle
+ {\noexpand\pgfqpoint{\the\pgf at xa}{\the\pgf at ya}}
+ {\noexpand\pgfqpoint{\the\pgf at x}{\the\pgf at y}}%
+ }%
+ \else
+ % right side
+ \northeast
+ \advance\pgf at x by -\pgf at xc
+ \advance\pgf at y by -\pgf at yc
+ \edef\pgf at marshal{%
+ \noexpand\pgfpointborderrectangle
+ {\noexpand\pgfqpoint{\the\pgf at xa}{\the\pgf at ya}}
+ {\noexpand\pgfqpoint{\the\pgf at x}{\the\pgf at y}}%
+ }%
+ \fi
+ \pgf at process{\pgf at marshal}%
+ \advance\pgf at x by\pgf at xc
+ \advance\pgf at y by\pgf at yc
+ }%
+}
+\endinput
\ No newline at end of file
Property changes on: trunk/Master/texmf-dist/tex/generic/tikz-ext/pgflibraryext.shapes.uncenteredrectangle.code.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/generic/tikz-ext/pgflibraryext.transformations.mirror.code.tex
===================================================================
--- trunk/Master/texmf-dist/tex/generic/tikz-ext/pgflibraryext.transformations.mirror.code.tex (rev 0)
+++ trunk/Master/texmf-dist/tex/generic/tikz-ext/pgflibraryext.transformations.mirror.code.tex 2022-11-03 21:03:19 UTC (rev 64920)
@@ -0,0 +1,96 @@
+% Copyright 2022 by Qrrbrbirlbel
+%
+% This file may be distributed and/or modified
+%
+% 1. under the LaTeX Project Public License and/or
+% 2. under the GNU Free Documentation License.
+%
+\def\pgftransformxmirror#1{
+ \pgfmathparse{#1}%
+ \ifpgfmathunitsdeclared
+ \pgf at xa\pgfmathresult pt\relax
+ \multiply\pgf at xa2
+ \pgftransformcm{-1}{0}{0}{1}{\pgfqpoint{\pgf at xa}{0pt}}%
+ \else
+ \pgftransformmirror{\pgfqpointxy{\pgfmathresult}{0}}{\pgfpointadd{\pgfqpointxy{\pgfmathresult}{0}}{\pgfqpointxy{0}{1}}}%
+ \fi
+}
+\def\pgftransformymirror#1{
+ \pgfmathparse{#1}%
+ \ifpgfmathunitsdeclared
+ \pgf at ya\pgfmathresult pt\relax
+ \multiply\pgf at ya2
+ \pgftransformcm{1}{0}{0}{-1}{\pgfqpoint{0pt}{\pgf at ya}}%
+ \else
+ \edef\pgf at marshal{\noexpand\pgftransformmirror{\noexpand\pgfqpointxy{0}{\pgfmathresult}}%
+ {\noexpand\pgfpointadd{\noexpand\pgfqpointxy{0}{\pgfmathresult}}{\noexpand\pgfqpointxy{1}{0}}}}%
+ \pgf at marshal
+ \fi}
+\def\pgftransformmirror#1#2{%
+ \pgfextract at process\pgf at tempa{#1}%
+ \pgfpointnormalised{\pgfpointdiff{\pgf at tempa}{#2}}%
+ \pgf at xa=\pgf at sys@tonumber\pgf at y\pgf at x
+ \pgf at xb=\pgf at sys@tonumber\pgf at x\pgf at x
+ \pgf at yb=\pgf at sys@tonumber\pgf at y\pgf at y
+ \multiply\pgf at xa2
+ \pgf at xc=-\pgf at yb\advance\pgf at xc\pgf at xb
+ \pgf at yc=-\pgf at xb\advance\pgf at yc\pgf at yb
+ \edef\pgf at temp{{\the\pgf at xc}{+\the\pgf at xa}{+\the\pgf at xa}{+\the\pgf at yc}}%
+ \expandafter\pgf at transformcm\pgf at temp{\pgf at tempa}%
+ \pgftransformshift{\pgfpointscale{-1}{\pgf at tempa}}%
+}
+
+\def\pgfqtransformmirror#1{%
+ \pgfpointnormalised{#1}%
+ \pgf at xa=\pgf at sys@tonumber\pgf at y\pgf at x
+ \pgf at xb=\pgf at sys@tonumber\pgf at x\pgf at x
+ \pgf at yb=\pgf at sys@tonumber\pgf at y\pgf at y
+ \multiply\pgf at xa2
+ \pgf at xc=-\pgf at yb\advance\pgf at xc\pgf at xb
+ \pgf at yc=-\pgf at xb\advance\pgf at yc\pgf at yb
+ \edef\pgf at temp{{\the\pgf at xc}{+\the\pgf at xa}{+\the\pgf at xa}{+\the\pgf at yc}}%
+ \expandafter\pgf at transformcm\pgf at temp{\pgfpointorigin}%
+}
+
+% Using existant transformation (shift, rotate, yscale=-1, rotate back, shift back)
+\def\pgftransformxMirror#1{
+ \pgfmathparse{#1}%
+ \ifpgfmathunitsdeclared
+ \pgf at xa\pgfmathresult pt\relax
+ \multiply\pgf at xa2
+ \pgftransformcm{-1}{0}{0}{1}{\pgfqpoint{\pgf at xa}{0pt}}%
+ \else
+ \pgftransformMirror{\pgfqpointxy{\pgfmathresult}{0}}{\pgfpointadd{\pgfqpointxy{\pgfmathresult}{0}}{\pgfqpointxy{0}{1}}}%
+ \fi
+}
+\def\pgftransformyMirror#1{
+ \pgfmathparse{#1}%
+ \ifpgfmathunitsdeclared
+ \pgf at ya\pgfmathresult pt\relax
+ \multiply\pgf at ya2
+ \pgftransformcm{1}{0}{0}{-1}{\pgfqpoint{0pt}{\pgf at ya}}%
+ \else
+ \edef\pgf at marshal{\noexpand\pgftransformMirror{\noexpand\pgfqpointxy{0}{\pgfmathresult}}%
+ {\noexpand\pgfpointadd{\noexpand\pgfqpointxy{0}{\pgfmathresult}}{\noexpand\pgfqpointxy{1}{0}}}}%
+ \pgf at marshal
+ \fi}
+
+\def\pgftransformMirror#1#2{%
+ \pgfextract at process\pgf at tempa{#1}%
+ \pgfmathanglebetweenpoints{\pgf at tempa}{#2}%
+ \let\pgf at temp\pgfmathresult
+ \pgftransformshift{\pgf at tempa}%
+ \pgftransformrotate{\pgf at temp}%
+ \pgftransformyscale{-1}%
+ \pgftransformrotate{-\pgf at temp}%
+ \pgftransformshift{\pgfqpointscale{-1}{\pgf at tempa}}%
+}
+
+\def\pgfqtransformMirror#1{%
+ \pgfmathanglebetweenpoints{\pgfpointorigin}{#1}%
+ \let\pgf at temp\pgfmathresult
+ \pgftransformrotate{\pgf at temp}%
+ \pgftransformyscale{-1}%
+ \pgftransformrotate{-\pgf at temp}%
+}
+\endinput
\ No newline at end of file
Property changes on: trunk/Master/texmf-dist/tex/generic/tikz-ext/pgflibraryext.transformations.mirror.code.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/generic/tikz-ext/tikzlibraryext.calendar-plus.code.tex
===================================================================
--- trunk/Master/texmf-dist/tex/generic/tikz-ext/tikzlibraryext.calendar-plus.code.tex (rev 0)
+++ trunk/Master/texmf-dist/tex/generic/tikz-ext/tikzlibraryext.calendar-plus.code.tex 2022-11-03 21:03:19 UTC (rev 64920)
@@ -0,0 +1,93 @@
+% Copyright 2022 by Qrrbrbirlbel
+%
+% This file may be distributed and/or modified
+%
+% 1. under the LaTeX Project Public License and/or
+% 2. under the GNU Free Documentation License.
+%
+
+\usetikzlibrary{calendar}
+\pgfutil at usemodule{pgfcalendar-ext}
+
+% Shift between days
+
+\def\tikz at lib@cal at xshift{\pgfkeysvalueof{/tikz/day xshift}}
+\def\tikz at lib@cal at yshift{\pgfkeysvalueof{/tikz/day yshift}}
+\tikzset{day xshift/.initial=3ex,day yshift/.initial=3.5ex}
+
+% Shift between months
+
+\def\tikz at lib@cal at month@xshift{\pgfkeysvalueof{/tikz/month xshift}}
+\def\tikz at lib@cal at month@yshift{\pgfkeysvalueof{/tikz/month yshift}}
+\tikzset{month xshift/.initial=9ex,month yshift/.initial=9ex}
+
+% Internal option for storing the "width" of a calendar as a number of
+% days
+
+\def\tikz at lib@cal at width{\pgfkeysvalueof{/tikz/tikz at lib@cal at width}}
+\tikzset{tikz at lib@cal at width/.initial=1}
+
+% Weeks
+
+\def\tikzweekcode{\pgfkeysvalueof{/tikz/week code}}
+\def\tikzweektext{\pgfkeysvalueof{/tikz/week text}}
+
+\tikzset{
+ week code/.initial={%
+ \node[every week]{\pgfkeysvalueof{/tikz/week text}};},
+ week text/.initial={\%n=},
+ every week/.style=,
+ week label left/.style={
+ every week/.append style={
+ anchor=base east,
+ xshift=-1.25*\pgfkeysvalueof{/tikz/day xshift}},
+ execute before day scope=%
+ \ifdate{Monday, equals=\pgfcalendarbeginiso}{\tikzweekcode}{}}}
+
+%
+% Overwriting original \tikz at lib@cal at if@else at code
+%
+\def\tikz at lib@cal at if@else at code#1#2#3{%
+ \pgfutil at addto@macro\tikz at lib@cal at ifs{\ifdate{#1}{#2}{#3}}%
+ \tikz at lib@cal at scanner%
+}
+
+%
+% Overwriting original \tikz at lib@cal at stop
+%
+\def\tikz at lib@cal at stop{%
+ \pgftransformshift{\tikz at node@at}%
+ \expandafter\pgfcalendar\expandafter{\tikz at fig@name}{\tikz at lib@cal at start}{\tikz at lib@cal at end}%
+ {%
+ \tikz at before@day%
+ \scope%
+ \tikz at atbegin@day%
+ \let\pgfutil at addto@macro\pgfutil at secondoftwo
+ \tikz at lib@cal at ifs%
+ \tikzdaycode%
+ \tikz at atend@day%
+ \endscope%
+ \tikz at after@day%
+ }%
+ \endgroup%
+}
+
+\def\pgfutil at addto@macro#1#2{\expandafter\def\expandafter#1\expandafter{#1#2}}
+
+\pgfmathdeclarefunction{weeksinmonthofyear}{3}{% #1 = first weekday, #2 = month, #3 = year
+ \begingroup
+ \pgfmathlastdayinmonthofyear@{#2}{#3}%
+ \pgfmathadd@{#1}{\pgfmathresult}%
+ \pgfmathdivide@{\pgfmathresult}{7}%
+ \pgfmathceil@{\pgfmathresult}%
+ \pgfmathint@{\pgfmathresult}%
+ \pgfmathsmuggle\pgfmathresult
+ \endgroup
+}
+\pgfmathdeclarefunction{lastdayinmonthofyear}{2}{% #1 = month, #2 = year
+ \begingroup
+ \pgfcalendar at getlastYMX{#2}{#1}{\pgfutil at tempcnta}%
+ \edef\pgfmathresult{\the\pgfutil at tempcnta}%
+ \pgfmathsmuggle\pgfmathresult
+ \endgroup
+}
\ No newline at end of file
Property changes on: trunk/Master/texmf-dist/tex/generic/tikz-ext/tikzlibraryext.calendar-plus.code.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/generic/tikz-ext/tikzlibraryext.misc.code.tex
===================================================================
--- trunk/Master/texmf-dist/tex/generic/tikz-ext/tikzlibraryext.misc.code.tex (rev 0)
+++ trunk/Master/texmf-dist/tex/generic/tikz-ext/tikzlibraryext.misc.code.tex 2022-11-03 21:03:19 UTC (rev 64920)
@@ -0,0 +1,180 @@
+% Copyright 2022 by Qrrbrbirlbel
+%
+% This file may be distributed and/or modified
+%
+% 1. under the LaTeX Project Public License and/or
+% 2. under the GNU Free Documentation License.
+%
+\usepgflibrary{ext.pgfkeys-plus}%
+
+%% full arc
+%% https://tex.stackexchange.com/a/144297/16595
+%% The postfix operator R is added to PGFmath,
+%% it allows the use of angular segments.
+%% full arc = 10 makes it so that
+%% 1R = 36°
+%% 2R = 72°
+%% …
+%% 10R = 360°
+%% Calling the full arc key with an empty value
+%% makes 1R = 1°
+\pgfset{full arc/.code=%
+ \def\pgf at temp{#1}%
+ \ifx\pgfutil at empty\pgf at temp
+ \let\pgfmath at fullarc@factor\pgfutil at empty
+ \else
+ \pgfmathsetmacro\pgfmath at fullarc@factor{360/(#1)}%
+ \fi,full arc=}
+\pgfmathdeclareoperator{R}{full arc}{1}{postfix}{950}
+\pgfmathdeclarefunction{full arc}{1}{%
+ \begingroup
+ \pgfmath at x=#1pt\relax
+ \ifx\pgfmath at fullarc@factor\pgfutil at empty\else
+ \pgfmath at x\pgfmath at fullarc@factor\pgfmath at x
+ \fi
+ \pgfmath at returnone\pgfmath at x
+ \endgroup}
+
+%% foreach
+%% http://tex.stackexchange.com/a/126418/16595
+%% instead of \foreach \var in {start, start + delta, ..., end}
+%% this allows to use \foreach[use int={start to end step delta}] without(!) a list in {}
+%% the values start, end and delta are evaluated by PGFmath at the start of the loop.
+%% In addition to use int, there's also use float.
+\newif\iftikzext at pgf@foreach at no@list
+\pgfqkeys{/pgf/foreach}{
+ use int/.code={%
+ \tikzext at pgf@foreach at no@list at parse@to\pgfmathtruncatemacro#1\pgffor at stop
+ },
+ use float/.code={%
+ \tikzext at pgf@foreach at no@list at parse@to\pgfmathsetmacro#1\pgffor at stop
+ }
+}
+
+\def\tikzext at pgf@foreach at no@list at parse@to#1#2to#3\pgffor at stop{%
+ \tikzext at pgf@foreach at no@listtrue
+ #1\foreachStart{#2}%
+ \pgfutil at in@{step}{#3}
+ \ifpgfutil at in@
+ \tikzext at pgf@foreach at no@list at parse@step{#1}#3\pgffor at stop
+ \else
+ \tikzext at pgf@foreach at no@list at parse@step{#1}#3step1\pgffor at stop
+ \fi
+ \edef\tikzext at pgf@foreach at no@list at list{\foreachStart,\foreachSecond,...,\foreachEnd}%
+}
+\def\tikzext at pgf@foreach at no@list at parse@step#1#2step#3\pgffor at stop{%
+ #1\foreachEnd{#2}%
+ #1\foreachSecond{\foreachStart+#3}%
+}
+\def\pgffor at vars{% manually extended, better etoolbox
+ \pgfutil at ifnextchar i{\pgffor@@vars at end}{%
+ \pgfutil at ifnextchar[{\pgffor@@vars at opt}{%]
+ \pgfutil at ifnextchar/{\pgffor@@vars at slash@gobble}{%
+ \iftikzext at pgf@foreach at no@list\expandafter\pgfutil at firstoftwo\else
+ \expandafter\pgfutil at secondoftwo\fi
+ {\tikzext at pgf@foreach at no@listfalse\pgffor at macro@list\tikzext at pgf@foreach at no@list at list}
+ {\pgffor@@vars}}}}}%
+
+%% PGFmath
+%% strrepeat("x", 5) = "xxxxx"
+\pgfmathdeclarefunction{strrepeat}{2}{%
+ \begingroup\pgfmathint{#2}\pgfmath at count\pgfmathresult
+ \let\pgfmathresult\pgfutil at empty
+ \pgfutil at loop\ifnum\pgfmath at count>0\relax
+ \expandafter\def\expandafter\pgfmathresult\expandafter{\pgfmathresult#1}%
+ \advance\pgfmath at count-1\relax
+ \pgfutil at repeat\pgfmath at smuggleone\pgfmathresult\endgroup}
+
+%% isInString("foo", "foobar") = true (= 1)
+%% isInString("boo", "foobar") = false (= 0)
+\pgfmathdeclarefunction{isInString}{2}{%
+ \pgfutil at in@{#1}{#2}%
+ \ifpgfutil at in@\def\pgfmathresult{1}\else\def\pgfmathresult{0}\fi}
+
+%% strcat("foo", "bar") = "foobar" (can have more than two parameters)
+\pgfutil at IfUndefined{pgfmathstrcat@}{
+ \pgfmathdeclarefunction{strcat}{...}{%
+ \begingroup
+ \let\pgfmathresult\pgfutil at empty
+ \pgfmathstrcat@@#1\pgfmath at stop}
+ \def\pgfmathstrcat@@#1{%
+ \ifx\pgfmath at stop#1%
+ \def\pgfmath at next{\pgfmath at smuggleone\pgfmathresult\endgroup}
+ \else
+ \expandafter\def\expandafter\pgfmathresult\expandafter{\pgfmathresult#1}%
+ \let\pgfmath at next\pgfmathstrcat@@
+ \fi
+ \pgfmath at next}
+}{}
+
+% http://tex.stackexchange.com/questions/244569/bounding-lines-around-tax-nodes/244619#244619
+\pgfmathdeclarefunction{atanXY}{2}{\pgfmathatantwo@{#2}{#1}}
+\pgfmathdeclarefunction{atanYX}{2}{\pgfmathatantwo@{#1}{#2}}
+
+%% http://tex.stackexchange.com/a/132939/16595
+\tikzset{
+ @edges through/.code={{{% three braces to protect \pgfeov
+ \pgfutil at ifnextchar[{\pgfkeysvalueof{/tikz/@@edges through/. at cmd}}
+ {\pgfkeysvalueof{/tikz/@@edges through/. at cmd}[]}#1\pgfeov}}},
+ @@edges through/.style args={[#1]#2}{/tikz/insert path={edge[#1] (#2) (#2)}},
+ edges through/.style={/tikz/@edges through/.list={#1}}}
+\tikzset{
+ @edges to/.code={{{% three braces to protect \pgfeov
+ \pgfutil at ifnextchar[{\pgfkeysvalueof{/tikz/@@edges to/. at cmd}}
+ {\pgfkeysvalueof{/tikz/@@edges to/. at cmd}[]}#1\pgfeov}}},
+ @@edges to/.style args={[#1]#2}{/tikz/insert path={edge[#1] (#2)}},
+ edges to/.style={/tikz/@edges to/.list={#1}}}
+\tikzset{
+ @tos to/.code={{{% three braces to protect \pgfeov
+ \pgfutil at ifnextchar[{\pgfkeysvalueof{/tikz/@@tos to/. at cmd}}
+ {\pgfkeysvalueof{/tikz/@@tos to/. at cmd}[]}#1\pgfeov}}},
+ @@tos to/.style args={[#1]#2}{/tikz/insert path={to[#1] (#2)}},
+ tos to/.style={/tikz/@tos to/.list={#1}}}
+
+
+\pgfmathdeclarefunction{distancebetween}{2}{% only coordinates/nodes
+ \begingroup
+ \pgfpointdiff{\pgfpointanchor{#1}{center}}{\pgfpointanchor{#2}{center}}%
+ \edef\pgfmath at temp{{\pgf at sys@tonumber\pgf at x}{\pgf at sys@tonumber\pgf at y}}%
+ \expandafter\pgfmathveclen@\pgfmath at temp
+ \pgfmath at smuggleone\pgfmathresult
+ \endgroup}
+\pgfmathdeclarefunction{qdistancebetween}{1}{% only coordinates/nodes
+ \begingroup
+ \pgfpointdiff{\pgfpointorigin}{\pgfpointanchor{#1}{center}}%
+ \edef\pgfmath at temp{{\pgf at sys@tonumber\pgf at x}{\pgf at sys@tonumber\pgf at y}}%
+ \expandafter\pgfmathveclen@\pgfmath at temp
+ \pgfmath at smuggleone\pgfmathresult
+ \endgroup}
+
+\pgfmathdeclarefunction{qanglebetween}{1}{%
+ \pgfmathanglebetweenpoints{\pgfpointorigin}{\pgfpointanchor{#1}{center}}}
+
+\pgfmathdeclarefunction{anglebetween}{2}{%
+ \pgfmathanglebetweenpoints{\pgfpointanchor{#1}{center}}{\pgfpointanchor{#2}{center}}}
+
+\pgfmathdeclarefunction{isEmpty}{1}{%
+ \begingroup
+ \def\pgfmath at temp{#1}%
+ \pgfutil at ifxempty\pgfmath at temp{\def\pgfmathresult{1}}{\def\pgfmathresult{0}}%
+ \pgfmath at smuggleone\pgfmathresult
+ \endgroup}
+
+\pgfset{
+ declare constant/.code={%
+ \let\pgfmathdeclareconstant@@@\pgfutil at empty
+ \pgfkeysvalueof{/pgf/declare function/execute at begin function}%
+ \pgfmathdeclareconstant@#1@=@;\pgf at stop
+ \pgfkeysvalueof{/pgf/declare function/execute at end function}%
+ \pgfmathdeclareconstant@@@
+ }}
+\def\pgfmathdeclareconstant@{%
+ \pgfutil at ifnextchar x\pgfmathdeclareconstant@@\pgfmathdeclareconstant@@
+}
+\def\pgfmathdeclareconstant@@#1=#2;#3\pgf at stop{%
+ \edef\pgfmath at local@temp{#1}%
+ \pgfutil at ifx\pgfmath at local@temp\pgfmath at local@at{}{%
+ \pgfutil at g@addto at macro\pgfmathdeclareconstant@@@{\pgfmathdeclarepseudoconstant{#1}{\def\pgfmathresult{#2}}}%
+ \pgfmathdeclareconstant@#3\pgf at stop
+ }%
+}
\ No newline at end of file
Property changes on: trunk/Master/texmf-dist/tex/generic/tikz-ext/tikzlibraryext.misc.code.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/generic/tikz-ext/tikzlibraryext.node-families.code.tex
===================================================================
--- trunk/Master/texmf-dist/tex/generic/tikz-ext/tikzlibraryext.node-families.code.tex (rev 0)
+++ trunk/Master/texmf-dist/tex/generic/tikz-ext/tikzlibraryext.node-families.code.tex 2022-11-03 21:03:19 UTC (rev 64920)
@@ -0,0 +1,339 @@
+% Copyright 2022 by Qrrbrbirlbel
+%
+% This file may be distributed and/or modified
+%
+% 1. under the LaTeX Project Public License and/or
+% 2. under the GNU Free Documentation License.
+%
+
+\def\tikzext at nf@align at left#1{}
+\def\tikzext at nf@align at center#1{\kern.5#1}
+\def\tikzext at nf@align at right#1{\kern#1}
+
+\pgfqkeys{/tikz/node family}{
+ width/.initial=,
+ width/.append style={/pgf/minimum width=nf_width},
+ height/.initial=,
+ height/.append style={/pgf/minimum height=nf_height},
+ size/.code=\pgfqkeys{/tikz/node family}{width={#1},height={#1}},
+ text depth/.initial=,
+ text height/.initial=,
+ text width align/.is choice,
+ text width align/left/.code=\let\tikzext at nf@align at action\tikzext at nf@align at left,
+ text width align/center/.code=\let\tikzext at nf@align at action\tikzext at nf@align at center,
+ text width align/right/.code=\let\tikzext at nf@align at action\tikzext at nf@align at right,
+ text width align=center,
+ text width/.initial=,
+ text/.code=\pgfqkeys{/tikz/node family}{text depth={#1},text height={#1},text width={#1}},
+ prefix/.initial=\pgfpictureid-,
+}
+\tikzset{node family/.code=\pgfqkeys{/tikz/node family}{#1}}
+
+% #1 = family type + name
+\def\tikzext at nf@save#1{%
+ %\errmessage{#1}%
+ \immediate\write\pgfutil at auxout{%
+ \noexpand\expandafter\noexpand\gdef\noexpand\csname tikzext at nf@#1 at previous\endcsname
+ {\csname tikzext at nf@#1 at next\endcsname}%
+ }%
+}
+
+% #1 = value to set
+% #2 = family type
+% #3 = return dimen
+\def\tikzext at nf@getandset#1#2#3{%
+ % what's our family's name?
+ #3=0pt\relax
+ \pgfkeysgetvalue{/tikz/node family/#2}\tikzext at nf@familyname
+ \pgfutil at ifxempty\tikzext at nf@familyname{% no family to deal with
+ }{%
+ \edef\tikzext at nf@familyname{\pgfkeysvalueof{/tikz/node family/prefix}\tikzext at nf@familyname}%
+ % we need to save the value for the next run
+ \pgfutil at IfUndefined{tikzext at nf@#2@\tikzext at nf@familyname @next}{%
+ % first time: define first value and install hook at end of picture
+ \expandafter\xdef\csname tikzext at nf@#2@\tikzext at nf@familyname @next\endcsname{#1}%
+ \edef\tikz at temp{\noexpand\tikzext at nf@save{#2@\tikzext at nf@familyname}}%
+ %\expandafter\AtVeryEndDocument\expandafter{\tikz at temp}%
+ \expandafter\pgfutil at g@addto at macro\expandafter\tikz at atend@picture\expandafter{\tikz at temp}%
+ }{%
+ \ifdim\csname tikzext at nf@#2@\tikzext at nf@familyname @next\endcsname<#1\relax
+ \expandafter\xdef\csname tikzext at nf@#2@\tikzext at nf@familyname @next\endcsname{#1}%
+ \fi
+ }%
+ \pgfutil at IfUndefined{tikzext at nf@#2@\tikzext at nf@familyname @previous}{% first run, ignore
+ }{% set previous value
+ #3=\csname tikzext at nf@#2@\tikzext at nf@familyname @previous\endcsname\relax
+ }%
+ }%
+}
+
+\pgfdeclareshape{Rectangle}{%
+ \savedanchor\northeast{%
+ % Calculate x
+ %
+ % First, is width < minimum width?
+ \pgf at x=\the\wd\pgfnodeparttextbox%
+ \pgfmathsetlength\pgf at xc{\pgfkeysvalueof{/pgf/inner xsep}}%
+ \advance\pgf at x by 2\pgf at xc%
+ % Qrr: family width
+ \tikzext at nf@getandset{\the\pgf at x}{width}{\pgfutil at tempdima}%
+ \ifdim\pgf at x<\pgfutil at tempdima
+ \pgf at x=\pgfutil at tempdima
+ \fi
+ %
+ \pgfmathsetlength\pgf at xb{\pgfkeysvalueof{/pgf/minimum width}}%
+ \ifdim\pgf at x<\pgf at xb%
+ % yes, too small. Enlarge...
+ \pgf at x=\pgf at xb%
+ \fi%
+ % Now, calculate right border: .5\wd\pgfnodeparttextbox + .5 \pgf at x + outer sep
+ \pgf at x=.5\pgf at x%
+ \advance\pgf at x by.5\wd\pgfnodeparttextbox%
+ \pgfmathsetlength\pgf at xa{\pgfkeysvalueof{/pgf/outer xsep}}%
+ \advance\pgf at x by\pgf at xa%
+ % Calculate y
+ %
+ % First, is height+depth < minimum height?
+ \pgf at y=\ht\pgfnodeparttextbox%
+ \advance\pgf at y by\dp\pgfnodeparttextbox%
+ \pgfmathsetlength\pgf at yc{\pgfkeysvalueof{/pgf/inner ysep}}%
+ \advance\pgf at y by 2\pgf at yc%
+ % Qrr: family height
+ \tikzext at nf@getandset{\the\pgf at y}{height}{\pgfutil at tempdima}%
+ \ifdim\pgf at y<\pgfutil at tempdima
+ \pgf at y=\pgfutil at tempdima
+ \fi
+ %
+ \pgfmathsetlength\pgf at yb{\pgfkeysvalueof{/pgf/minimum height}}%
+ \ifdim\pgf at y<\pgf at yb%
+ % yes, too small. Enlarge...
+ \pgf at y=\pgf at yb%
+ \fi%
+ % Now, calculate upper border: .5\ht-.5\dp + .5 \pgf at y + outer sep
+ \pgf at y=.5\pgf at y%
+ \advance\pgf at y by-.5\dp\pgfnodeparttextbox%
+ \advance\pgf at y by.5\ht\pgfnodeparttextbox%
+ \pgfmathsetlength\pgf at ya{\pgfkeysvalueof{/pgf/outer ysep}}%
+ \advance\pgf at y by\pgf at ya%
+ }%
+
+ \savedanchor\southwest{%
+ % Calculate x
+ %
+ % First, is width < minimum width?
+ \pgf at x=\wd\pgfnodeparttextbox%
+ \pgfmathsetlength\pgf at xc{\pgfkeysvalueof{/pgf/inner xsep}}%
+ \advance\pgf at x by 2\pgf at xc%
+ % Qrr: family width
+ \tikzext at nf@getandset{\the\pgf at x}{width}{\pgfutil at tempdima}%
+ \ifdim\pgf at x<\pgfutil at tempdima
+ \pgf at x=\pgfutil at tempdima
+ \fi
+ %
+ \pgfmathsetlength\pgf at xb{\pgfkeysvalueof{/pgf/minimum width}}%
+ \ifdim\pgf at x<\pgf at xb%
+ % yes, too small. Enlarge...
+ \pgf at x=\pgf at xb%
+ \fi%
+ % Now, calculate left border: .5\wd\pgfnodeparttextbox - .5 \pgf at x - outer sep
+ \pgf at x=-.5\pgf at x%
+ \advance\pgf at x by.5\wd\pgfnodeparttextbox%
+ \pgfmathsetlength\pgf at xa{\pgfkeysvalueof{/pgf/outer xsep}}%
+ \advance\pgf at x by-\pgf at xa%
+ % Calculate y
+ %
+ % First, is height+depth < minimum height?
+ \pgf at y=\ht\pgfnodeparttextbox%
+ \advance\pgf at y by\dp\pgfnodeparttextbox%
+ \pgfmathsetlength\pgf at yc{\pgfkeysvalueof{/pgf/inner ysep}}%
+ \advance\pgf at y by 2\pgf at yc%
+ % Qrr: family height
+ \tikzext at nf@getandset{\the\pgf at y}{height}{\pgfutil at tempdima}%
+ \ifdim\pgf at y<\pgfutil at tempdima
+ \pgf at y=\pgfutil at tempdima
+ \fi
+ %
+ \pgfmathsetlength\pgf at yb{\pgfkeysvalueof{/pgf/minimum height}}%
+ \ifdim\pgf at y<\pgf at yb%
+ % yes, too small. Enlarge...
+ \pgf at y=\pgf at yb%
+ \fi%
+ % Now, calculate upper border: .5\ht-.5\dp - .5 \pgf at y - outer sep
+ \pgf at y=-.5\pgf at y%
+ \advance\pgf at y by-.5\dp\pgfnodeparttextbox%
+ \advance\pgf at y by.5\ht\pgfnodeparttextbox%
+ \pgfmathsetlength\pgf at ya{\pgfkeysvalueof{/pgf/outer ysep}}%
+ \advance\pgf at y by-\pgf at ya%
+ }%
+ \inheritbackgroundpath[from=rectangle]
+ \inheritbeforebackgroundpath[from=rectangle]
+ \inheritbehindforegroundpath[from=rectangle]
+ \inheritforegroundpath[from=rectangle]
+ \inheritbeforeforegroundpath[from=rectangle]
+ \inheritanchor[from=rectangle]{center}
+ \inheritanchor[from=rectangle]{mid}
+ \inheritanchor[from=rectangle]{base}
+ \inheritanchor[from=rectangle]{north}
+ \inheritanchor[from=rectangle]{south}
+ \inheritanchor[from=rectangle]{west}
+ \inheritanchor[from=rectangle]{mid west}
+ \inheritanchor[from=rectangle]{base west}
+ \inheritanchor[from=rectangle]{north west}
+ \inheritanchor[from=rectangle]{south west}
+ \inheritanchor[from=rectangle]{east}
+ \inheritanchor[from=rectangle]{mid east}
+ \inheritanchor[from=rectangle]{base east}
+ \inheritanchor[from=rectangle]{north east}
+ \inheritanchor[from=rectangle]{south east}
+ \inheritanchorborder[from=rectangle]
+}
+
+\pgfdeclareshape{Circle}{%
+ \savedanchor\centerpoint{% tex/generic/pgf/modules/pgfmoduleshapes.code.tex
+ \pgf at x=.5\wd\pgfnodeparttextbox
+ \pgf at y=.5\ht\pgfnodeparttextbox
+ \advance\pgf at y by-.5\dp\pgfnodeparttextbox
+ }%
+ \saveddimen\radius{% tex/generic/pgf/modules/pgfmoduleshapes.code.tex
+ % Calculate ``height radius''
+ \pgf at ya=.5\ht\pgfnodeparttextbox
+ \advance\pgf at ya by.5\dp\pgfnodeparttextbox
+ \pgfmathsetlength\pgf at yb{\pgfkeysvalueof{/pgf/inner ysep}}%
+ \advance\pgf at ya by\pgf at yb
+ % Calculate ``width radius''
+ \pgf at xa=.5\wd\pgfnodeparttextbox
+ \pgfmathsetlength\pgf at xb{\pgfkeysvalueof{/pgf/inner xsep}}%
+ \advance\pgf at xa by\pgf at xb
+ % Calculate length of radius vector:
+ \pgf at process{\pgfpointnormalised{\pgfqpoint{\pgf at xa}{\pgf at ya}}}%
+ \ifdim\pgf at x>\pgf at y
+ \c at pgf@counta=\pgf at x
+ \ifnum\c at pgf@counta=0\relax
+ \else
+ \divide\c at pgf@counta by 255\relax
+ \pgf at xa=16\pgf at xa\relax
+ \divide\pgf at xa by\c at pgf@counta
+ \pgf at xa=16\pgf at xa\relax
+ \fi
+ \else
+ \c at pgf@counta=\pgf at y
+ \ifnum\c at pgf@counta=0\relax
+ \else
+ \divide\c at pgf@counta by 255\relax
+ \pgf at ya=16\pgf at ya\relax
+ \divide\pgf at ya by\c at pgf@counta
+ \pgf at xa=16\pgf at ya\relax
+ \fi
+ \fi
+ \pgf at x=\pgf at xa%
+ % Qrr: check for families
+ \tikzext at nf@getandset{\the\dimexpr2\pgf at x\relax}{width}{\pgfutil at tempdima}%
+ \tikzext at nf@getandset{\the\dimexpr2\pgf at x\relax}{height}{\pgfutil at tempdimb}%
+ % Qrr: and adjust like minimum width and minimum height
+ \ifdim\pgf at x<.5\pgfutil at tempdima
+ \pgf at x=.5\pgfutil at tempdima
+ \fi
+ \ifdim\pgf at x<.5\pgfutil at tempdimb
+ \pgf at x=.5\pgfutil at tempdimb
+ \fi
+ % If necessary, adjust radius so that the size requirements are met:
+ \pgfmathsetlength{\pgf at xb}{\pgfkeysvalueof{/pgf/minimum width}}%
+ \pgfmathsetlength{\pgf at yb}{\pgfkeysvalueof{/pgf/minimum height}}%
+ \ifdim\pgf at x<.5\pgf at xb
+ \pgf at x=.5\pgf at xb
+ \fi
+ \ifdim\pgf at x<.5\pgf at yb
+ \pgf at x=.5\pgf at yb
+ \fi
+ % Now, add larger of outer separations.
+ \pgfmathsetlength{\pgf at xb}{\pgfkeysvalueof{/pgf/outer xsep}}%
+ \pgfmathsetlength{\pgf at yb}{\pgfkeysvalueof{/pgf/outer ysep}}%
+ \ifdim\pgf at xb<\pgf at yb
+ \advance\pgf at x by\pgf at yb
+ \else
+ \advance\pgf at x by\pgf at xb
+ \fi
+ }%
+ \inheritbackgroundpath[from=circle]
+ \inheritbeforebackgroundpath[from=circle]
+ \inheritbehindforegroundpath[from=circle]
+ \inheritforegroundpath[from=circle]
+ \inheritbeforeforegroundpath[from=circle]
+ \inheritanchor[from=circle]{center}
+ \inheritanchor[from=circle]{mid}
+ \inheritanchor[from=circle]{base}
+ \inheritanchor[from=circle]{north}
+ \inheritanchor[from=circle]{south}
+ \inheritanchor[from=circle]{west}
+ \inheritanchor[from=circle]{mid west}
+ \inheritanchor[from=circle]{base west}
+ \inheritanchor[from=circle]{north west}
+ \inheritanchor[from=circle]{south west}
+ \inheritanchor[from=circle]{east}
+ \inheritanchor[from=circle]{mid east}
+ \inheritanchor[from=circle]{base east}
+ \inheritanchor[from=circle]{north east}
+ \inheritanchor[from=circle]{south east}
+ \inheritanchorborder[from=circle]
+}
+
+\def\pgfutil at prefixto@macro#1#2{%
+ \def\pgf at temp{#2}%
+ \expandafter\expandafter\expandafter\def\expandafter\expandafter\expandafter#1%
+ \expandafter\expandafter\expandafter{\expandafter\pgf at temp#1}%
+}
+
+\pgfqkeys{/tikz/node family}{
+ setup shape/.code={%
+ \expandafter\pgfutil at prefixto@macro\csname pgf at sh@s@#1\endcsname{%
+ \tikzext at nf@getandset{\the\wd\pgfnodeparttextbox}{text width}{\pgfutil at tempdima}%
+ \ifdim\wd\pgfnodeparttextbox<\pgfutil at tempdima
+ \pgfutil at tempdimb=\pgfutil at tempdima
+ \advance\pgfutil at tempdimb-\wd\pgfnodeparttextbox
+ \setbox\pgfnodeparttextbox=\hbox to \pgfutil at tempdima{\tikzext at nf@align at action\pgfutil at tempdimb\unhbox\pgfnodeparttextbox}%
+ \fi
+ \tikzext at nf@getandset{\the\dp\pgfnodeparttextbox}{text depth}{\pgfutil at tempdima}%
+ \ifdim\dp\pgfnodeparttextbox<\pgfutil at tempdima
+ \dp\pgfnodeparttextbox=\pgfutil at tempdima
+ \fi
+ \tikzext at nf@getandset{\the\ht\pgfnodeparttextbox}{text height}{\pgfutil at tempdima}%
+ \ifdim\ht\pgfnodeparttextbox<\pgfutil at tempdima
+ \ht\pgfnodeparttextbox=\pgfutil at tempdima
+ \fi
+ }%
+ },
+ setup shape/.list={rectangle,circle,Rectangle,Circle}
+}
+
+%% nf functions
+\def\tikzext at nf@function at default{{\the\pgf at x}{\the\pgf at y}}
+\def\tikzext at nf@function at default@double{{\the\dimexpr2\pgf at x\relax}{\the\dimexpr2\pgf at y\relax}}
+\def\tikzext at nf@function at circle{{\the\pgf at x}{\the\pgf at x}}
+\def\tikzext at nf@function at circle@double{{\the\dimexpr2\pgf at x\relax}{\the\dimexpr2\pgf at x\relax}}
+
+\pgfmathdeclarefunction{nf_width}{0}{%
+ \begingroup
+ \pgfutil at IfUndefined{tikzext at nf@function@\pgf at sm@shape at name}{%
+ \let\tikzext at nf@function\tikzext at nf@function at default
+ }{%
+ \pgfutil at IfUndefined{tikzext at nf@function@\pgf at sm@shape at name @extra}{}{\csname tikzext at nf@function@\pgf at sm@shape at name @extra\endcsname}%
+ \expandafter\let\expandafter\tikzext at nf@function\csname tikzext at nf@function@\pgf at sm@shape at name\endcsname
+ }%
+ \tikzext at nf@getandset{\expandafter\pgfutil at firstoftwo\tikzext at nf@function}{width}{\pgfutil at tempdima}%
+ \edef\pgfmathresult{\pgf at sys@tonumber\pgfutil at tempdima}%
+ \pgfmath at smuggleone\pgfmathresult
+ \endgroup
+}
+\pgfmathdeclarefunction{nf_height}{0}{%
+ \begingroup
+ \pgfutil at IfUndefined{tikzext at nf@function@\pgf at sm@shape at name}{%
+ \let\tikzext at nf@function\tikzext at nf@function at default
+ }{%
+ \pgfutil at IfUndefined{tikzext at nf@function@\pgf at sm@shape at name @extra}{}{\csname tikzext at nf@function@\pgf at sm@shape at name @extra\endcsname}%
+ \expandafter\let\expandafter\tikzext at nf@function\csname tikzext at nf@function@\pgf at sm@shape at name\endcsname
+ }%
+ \tikzext at nf@getandset{\expandafter\pgfutil at secondoftwo\tikzext at nf@function}{height}{\pgfutil at tempdima}%
+ \edef\pgfmathresult{\pgf at sys@tonumber\pgfutil at tempdima}%
+ \pgfmath at smuggleone\pgfmathresult
+ \endgroup
+}
\ No newline at end of file
Property changes on: trunk/Master/texmf-dist/tex/generic/tikz-ext/tikzlibraryext.node-families.code.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/generic/tikz-ext/tikzlibraryext.node-families.shapes.geometric.code.tex
===================================================================
--- trunk/Master/texmf-dist/tex/generic/tikz-ext/tikzlibraryext.node-families.shapes.geometric.code.tex (rev 0)
+++ trunk/Master/texmf-dist/tex/generic/tikz-ext/tikzlibraryext.node-families.shapes.geometric.code.tex 2022-11-03 21:03:19 UTC (rev 64920)
@@ -0,0 +1,38 @@
+% Copyright 2022 by Qrrbrbirlbel
+%
+% This file may be distributed and/or modified
+%
+% 1. under the LaTeX Project Public License and/or
+% 2. under the GNU Free Documentation License.
+%
+
+\usetikzlibrary{ext.node-families,shapes.geometric}
+
+\let\tikzext at nf@function at ellipse \tikzext at nf@function at default@double
+\let\tikzext at nf@function at star \tikzext at nf@function at circle
+\let\tikzext at nf@function at diamond \tikzext at nf@function at default@double
+\let\tikzext at nf@function at star \tikzext at nf@function at circle@double
+\expandafter\let\csname tikzext at nf@function at regular polygon\endcsname
+ \tikzext at nf@function at circle@double
+\let\tikzext at nf@function at trapezium\tikzext at nf@function at default@double
+\def\tikzext at nf@function at semicircle {{\the\dimexpr2\pgf at x\relax}{\the\pgf at x}}
+\expandafter\def\csname tikzext at nf@function at isosceles triangle\endcsname
+ {{\the\dimexpr2\pgf at ya\relax}{\the\pgf at xa}}
+\def\tikzext at nf@function at kite {{\the\dimexpr2\pgf at xa\relax}{\the\dimexpr\pgf at ya+\pgf at yb\relax}}
+\def\tikzext at nf@function at dart {{\the\dimexpr2\pgf at ya\relax}{\the\pgf at xb}}
+\expandafter\def\csname tikzext at nf@function at circular sector\endcsname{{\the\pgf at xc}{\the\pgf at xa}}
+\def\tikzext at nf@function at cylinder{{\the\dimexpr2\pgfutil at tempdimb\relax}{\the\pgf at x}}
+
+\tikzset{node family/setup shape/.list={
+ ellipse,
+ star,
+ diamond,
+ regular polygon,
+ trapezium,
+ semicircle,
+ isosceles triangle,
+ kite,
+ dart,
+ circular sector,
+ cylinder
+}}
\ No newline at end of file
Property changes on: trunk/Master/texmf-dist/tex/generic/tikz-ext/tikzlibraryext.node-families.shapes.geometric.code.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/generic/tikz-ext/tikzlibraryext.paths.arcto.code.tex
===================================================================
--- trunk/Master/texmf-dist/tex/generic/tikz-ext/tikzlibraryext.paths.arcto.code.tex (rev 0)
+++ trunk/Master/texmf-dist/tex/generic/tikz-ext/tikzlibraryext.paths.arcto.code.tex 2022-11-03 21:03:19 UTC (rev 64920)
@@ -0,0 +1,326 @@
+% Copyright 2022 by Qrrbrbirlbel
+%
+% This file may be distributed and/or modified
+%
+% 1. under the LaTeX Project Public License and/or
+% 2. under the GNU Free Documentation License.
+%
+\tikzset{
+ arc to/.code=\pgfqkeys{/tikz/arc to}{#1},
+ arc to={
+ counter clockwise/.code=\pgfkeyssetvalue{/tikz/arc to/ccw flag}{1},
+ clockwise/.code=\pgfkeyssetvalue{/tikz/arc to/ccw flag}{0},
+ x radius/.code=\pgfkeyssetvalue{/tikz/x radius}{#1},
+ y radius/.code=\pgfkeyssetvalue{/tikz/y radius}{#1},
+ radius/.code=\pgfkeyssetvalue{/tikz/x radius}{#1}\pgfkeyssetvalue{/tikz/y radius}{#1},
+ large/.code=\pgfkeyssetvalue{/tikz/arc to/large flag}{1},
+ small/.code=\pgfkeyssetvalue{/tikz/arc to/large flag}{0},
+ % defaults
+ rotate/.initial=0, counter clockwise, small,
+ counter clockwise/.value forbidden,
+ clockwise/.value forbidden,
+ large/.value forbidden,
+ small/.value forbidden}}
+\def\tikz at arcA rc{\pgfutil at ifnextchar t%
+ {\tikz at flush@moveto\expandafter\expandafter\expandafter\tikz at arcB@cont\expandafter\pgfutil at gobble\pgfutil at gobble}
+ {\tikz at flush@moveto\tikz at arc@cont}}
+\def\tikz at arcB@cont{%
+ \pgfutil at ifnextchar[\tikz@@do at arcB{
+ \advance\tikz at expandcount by -10\relax% go down quickly
+ \ifnum\tikz at expandcount<0\relax%
+ \def\@next{\tikz@@do at arcB[]}%
+ \else%
+ \def\@next{\expandafter\tikz at arcB@cont}%
+ \fi%
+ \@next}}%
+\def\tikz@@do at arcB[#1]{%
+ \def\tikz at arcB@options{#1}%
+ \tikz at do@@arcB}
+\def\tikz at do@@arcB{%
+ \pgfutil at ifnextchar n{\tikz at collect@label at onpath\tikz at do@@arcB}
+ {\pgfutil at ifnextchar c{\tikz at collect@coordinate at onpath\tikz at do@@arcB}
+ {\pgfutil at ifnextchar p{\tikz at collect@pic at onpath\tikz at do@@arcB}
+ {\tikz at scan@one at point\tikz at do@arcB}}}}
+
+\def\tikz at do@arcB#1{%
+ \edef\tikz at timer@start{\noexpand\pgfqpoint{\the\tikz at lastx}{\the\tikz at lasty}}
+ \tikz at make@last at position{#1}%
+ \edef\tikz at timer@end{\noexpand\pgfqpoint{\the\tikz at lastx}{\the\tikz at lasty}}%
+ \iftikz at shapeborder
+ \edef\tikz at moveto@waiting{\tikz at shapeborder@name}%
+ \fi
+ \begingroup
+ \tikzset{every arc/.try,every arc to/.try,arc to/.expand once=\tikz at arcB@options}%
+ \pgfmathsetmacro\tikz at arc@x{\pgfkeysvalueof{/tikz/x radius}}%
+ \ifpgfmathunitsdeclared
+ \pgfmathsetmacro\tikz at arc@y{\pgfkeysvalueof{/tikz/y radius}}%
+ \ifpgfmathunitsdeclared
+ \tikzext at pgfpatharcto{\tikz at arc@x pt}{\tikz at arc@y pt}
+ {\pgfkeysvalueof{/tikz/arc to/rotate}}{\pgfkeysvalueof{/tikz/arc to/large flag}}
+ {\pgfkeysvalueof{/tikz/arc to/ccw flag}}{#1}%
+ \else
+ \tikzerror{You cannot mix dimensions and dimension values in an arc}%
+ \fi
+ \else
+ \pgfmathsetmacro\tikz at arc@y{\pgfkeysvalueof{/tikz/y radius}}%
+ \ifpgfmathunitsdeclared
+ \tikzerror{You cannot mix dimensions and dimension values in an arc}%
+ \else
+ \pgf at process{\pgfpointxy{\tikz at arc@x}{0}}%
+ \pgfmathveclen@{\pgf at sys@tonumber\pgf at x}{\pgf at sys@tonumber\pgf at y}%
+ \let\tikz at arc@x\pgfmathresult
+ \pgf at process{\pgfpointxy{0}{\tikz at arc@y}}%
+ \pgfmathveclen@{\pgf at sys@tonumber\pgf at x}{\pgf at sys@tonumber\pgf at y}%
+ \let\tikz at arc@y\pgfmathresult
+ \tikzext at pgfpatharcto{+\tikz at arc@x pt}{+\tikz at arc@y pt}
+ {\pgfkeysvalueof{/tikz/arc to/rotate}}{\pgfkeysvalueof{/tikz/arc to/large flag}}
+ {\pgfkeysvalueof{/tikz/arc to/ccw flag}}{#1}%
+ \fi
+ \fi
+ \endgroup
+ % check whether \pgf at marshall starts with \pgfpathlineto
+ \pgfutil at ifxempty\pgf at marshal{}{%
+ \edef\tikz at temp{\expandafter\expandafter\expandafter\noexpand\expandafter\pgfutil at firstgobblerest\pgf at marshal\relax}%
+ \expandafter\let\expandafter\tikz at temp\tikz at temp
+ \pgfutil at ifx\tikz at temp\pgfpathlineto{}{%
+ % getting rid of \pgfpatharcaxes inside \pgf at marshal
+ \expandafter\expandafter\expandafter\def\expandafter\expandafter\expandafter\pgf at marshal
+ \expandafter\expandafter\expandafter{\expandafter\pgfutil at gobble\pgf at marshal}%
+ % extracting the other four values needed for the timer
+ \edef\tikz at timer@start at angle{\expandafter\pgfutil at firstoffour\pgf at marshal}%
+ \edef\tikz at timer@end at angle{\expandafter\pgfutil at secondoffour\pgf at marshal}%
+ \pgfextract at process\tikz at timer@zero at axis{\expandafter\pgfutil at thirdoffour\pgf at marshal}%
+ \pgfextract at process\tikz at timer@ninety at axis{\expandafter\pgfutil at fourthoffour\pgf at marshal}%
+ %
+ \let\tikz at timer=\tikz at timer@arc
+ }%
+ }%
+ \tikz at scan@next at command
+}
+\def\pgfutil at firstoffour#1#2#3#4{#1}
+\def\pgfutil at secondoffour#1#2#3#4{#2}
+\def\pgfutil at thirdoffour#1#2#3#4{#3}
+\def\pgfutil at fourthoffour#1#2#3#4{#4}
+\def\pgfutil at firstgobblerest#1#2\relax{#1}
+
+% original from pgfcorepathconstruct.code.tex
+\def\tikzext at pgfpatharcto#1#2#3#4#5#6{%
+ {%
+ % The following code is based on the transformation described in svg
+ % 1.1 specification Section F.6.5
+ %
+ % Step 1: store the simple parameters (xa=x1 since TeX does not
+ % allow numbers in names)
+ %
+ \pgfmathsetmacro\pgf at arcto@rx{abs(#1)}%
+ \pgfmathsetmacro\pgf at arcto@ry{abs(#2)}%
+ \ifdim\pgf at arcto@rx pt=0pt% special rule: zero radius=straight line
+ \gdef\pgf at marshal{\pgfpathlineto{#6}}%
+ \else
+ \ifdim\pgf at arcto@ry pt=0pt% special rule: zero radius=straight line
+ \gdef\pgf at marshal{\pgfpathlineto{#6}}%
+ \else
+ \pgfmathsetmacro\pgf at arcto@phi{#3}%
+ \pgfmathsetmacro\pgf at arcto@fA{#4}%
+ \ifdim\pgf at arcto@fA pt=0pt
+ \else
+ \pgfmathsetmacro\pgf at arcto@fA{1.0}% Special rule: every non-zero value is 1.
+ \fi
+ \pgfmathsetmacro\pgf at arcto@fS{#5}%
+ \ifdim\pgf at arcto@fS pt=0pt
+ \else
+ \pgfmathsetmacro\pgf at arcto@fS{1.0}% Special rule: every non-zero value is 1.
+ \fi
+ \pgf at process{#6}%
+ \edef\pgf at arcto@xb{\the\pgf at x}%
+ \edef\pgf at arcto@yb{\the\pgf at y}%
+ %
+ % Step 2: x1,y1 is more complicated to compute: It is given by lastx
+ % and lasty, but these are transformed coordinates, we need the
+ % untransformed ones. So, we inverse the transformation (arghh...)
+ %
+ \pgftransforminvert%
+ \pgf at process{\pgfpointtransformed{\pgfqpoint{\pgf at path@lastx}{\pgf at path@lasty}}}%
+ \edef\pgf at arcto@xa{\the\pgf at x}%
+ \edef\pgf at arcto@ya{\the\pgf at y}%
+ \edef\pgf at temp@a{\pgf at arcto@xa,\pgf at arcto@ya}%
+ \edef\pgf at temp@b{\pgf at arcto@xb,\pgf at arcto@yb}%
+ \ifx\pgf at temp@a\pgf at temp@b% special rule: skip!
+ \global\let\pgf at marshal\pgfutil at empty
+ \else
+ %
+ % Ok, now we got all the parameters setup. Now comes the
+ % computation...
+ %
+ %
+ % Step 3: Start with a new coordinate system and rotate everything
+ % by the negated phi.
+ %
+ \pgftransformreset
+ \pgftransformrotate{-\pgf at arcto@phi}%
+ % Ok, using \pgfpointtransformed we now get transformed points...
+ %
+ % Step 4: Compute x1' and y1' (xaprime and yaprime)
+ %
+ \pgf at process{%
+ \pgfpointtransformed{\pgfpointscale{.5}{\pgfpointdiff
+ {\pgfqpoint{\pgf at arcto@xb}{\pgf at arcto@yb}}
+ {\pgfqpoint{\pgf at arcto@xa}{\pgf at arcto@ya}}%
+ }%
+ }%
+ }%
+ \edef\pgf at arcto@xaprime{\pgf at sys@tonumber\pgf at x}%
+ \edef\pgf at arcto@yaprime{\pgf at sys@tonumber\pgf at y}%
+ %
+ % Compute Lambda
+ %
+ \pgfmathsetmacro\pgf at arcto@frac at x{\pgf at arcto@xaprime/\pgf at arcto@rx}%
+ \pgfmathsetmacro\pgf at arcto@frac at y{\pgf at arcto@yaprime/\pgf at arcto@ry}%
+ \pgfmathsetmacro\pgf at arcto@lambda{
+ \pgf at arcto@frac at x*\pgf at arcto@frac at x+\pgf at arcto@frac at y*\pgf at arcto@frac at y
+ }%
+ \ifdim\pgf at arcto@lambda pt>1pt
+ \pgfmathsetmacro\pgf at arcto@sqrt at lambda{sqrt(\pgf at arcto@lambda)}%
+ \pgfmathsetmacro\pgf at arcto@rx{\pgf at arcto@sqrt at lambda*\pgf at arcto@rx}%
+ \pgfmathsetmacro\pgf at arcto@ry{\pgf at arcto@sqrt at lambda*\pgf at arcto@ry}%
+ \fi
+ %
+ % Do some scaling
+ %
+ \pgfmathsetmacro\pgf at arcto@xaprime at abs{abs(\pgf at arcto@xaprime)}%
+ \pgfmathsetmacro\pgf at arcto@yaprime at abs{abs(\pgf at arcto@yaprime)}%
+ \pgfmathmax@{\pgf at arcto@rx,\pgf at arcto@ry,\pgf at arcto@xaprime at abs,\pgf at arcto@yaprime at abs}%
+ \pgfmathsetmacro\pgf at arcto@scaling{20/\pgfmathresult}%
+ \pgfmathsetmacro\pgf at arcto@rx at scaled{\pgf at arcto@scaling*\pgf at arcto@rx}%
+ \pgfmathsetmacro\pgf at arcto@ry at scaled{\pgf at arcto@scaling*\pgf at arcto@ry}%
+ \pgfmathsetmacro\pgf at arcto@xaprime at scaled{\pgf at arcto@scaling*\pgf at arcto@xaprime}%
+ \pgfmathsetmacro\pgf at arcto@yaprime at scaled{\pgf at arcto@scaling*\pgf at arcto@yaprime}%
+ %
+ % Step 5: Now comes the messy computation of c1' and c2'.
+ %
+ \ifdim\pgf at arcto@rx pt>\pgf at arcto@ry pt
+ \pgfmathsetmacro\pgf at arcto@rx at over@ry{\pgf at arcto@rx/\pgf at arcto@ry}%
+ \pgfmathsetmacro\pgf at arcto@ry at over@rx{\pgf at arcto@ry/\pgf at arcto@rx}%
+ \pgfmathsetmacro\pgf at arcto@temp{\pgf at arcto@ry at over@rx*\pgf at arcto@xaprime at scaled}%
+ \pgfmathsetmacro\pgf at arcto@numerator{
+ \pgf at arcto@ry at scaled*\pgf at arcto@ry at scaled-
+ \pgf at arcto@yaprime at scaled*\pgf at arcto@yaprime at scaled-
+ \pgf at arcto@temp*\pgf at arcto@temp
+ }%
+ \pgfmathsetmacro\pgf at arcto@denominator{
+ \pgf at arcto@yaprime at scaled*\pgf at arcto@yaprime at scaled+
+ \pgf at arcto@temp*\pgf at arcto@temp
+ }%
+ \else
+ \pgfmathsetmacro\pgf at arcto@rx at over@ry{\pgf at arcto@rx/\pgf at arcto@ry}%
+ \pgfmathsetmacro\pgf at arcto@ry at over@rx{\pgf at arcto@ry/\pgf at arcto@rx}%
+ \pgfmathsetmacro\pgf at arcto@temp{\pgf at arcto@rx at over@ry*\pgf at arcto@yaprime at scaled}%
+ \pgfmathsetmacro\pgf at arcto@numerator{
+ \pgf at arcto@rx at scaled*\pgf at arcto@rx at scaled-
+ \pgf at arcto@xaprime at scaled*\pgf at arcto@xaprime at scaled-
+ \pgf at arcto@temp*\pgf at arcto@temp
+ }%
+ \pgfmathsetmacro\pgf at arcto@denominator{
+ \pgf at arcto@xaprime at scaled*\pgf at arcto@xaprime at scaled+
+ \pgf at arcto@temp*\pgf at arcto@temp
+ }%
+ \fi
+ \pgfmathsetmacro\pgf at arcto@frac{
+ \pgf at arcto@numerator/\pgf at arcto@denominator
+ }%
+ \ifdim\pgf at arcto@frac pt<0pt
+ \pgfmathsetmacro\pgf at arcto@factor{0}%
+ \else
+ \pgfmathsetmacro\pgf at arcto@factor{sqrt(\pgf at arcto@frac)}%
+ \fi
+ \ifx\pgf at arcto@fA\pgf at arcto@fS
+ \pgfmathsetmacro\pgf at arcto@factor{-\pgf at arcto@factor}%
+ \fi
+ \pgfmathsetmacro\pgf at arcto@cxprime{
+ \pgf at arcto@factor*\pgf at arcto@rx at over@ry*\pgf at arcto@yaprime
+ }%
+ \pgfmathsetmacro\pgf at arcto@cyprime{
+ -\pgf at arcto@factor*\pgf at arcto@ry at over@rx*\pgf at arcto@xaprime
+ }%
+ %
+ % Step 6: Ok, now compute cx,cy
+ %
+ \pgftransformreset
+ \pgftransformrotate{\pgf at arcto@phi}%
+ \pgf at process{%
+ \pgfpointtransformed{\pgfqpoint{\pgf at arcto@cxprime pt}{\pgf at arcto@cyprime pt}}%
+ }%
+ \edef\pgf at arcto@temp{\noexpand\pgfqpoint{\the\pgf at x}{\the\pgf at y}}%
+ \pgf at process{\pgfpointadd{\pgf at arcto@temp}{%
+ \pgfpointscale{.5}{%
+ \pgfpointadd
+ {\pgfqpoint{\pgf at arcto@xa}{\pgf at arcto@ya}}
+ {\pgfqpoint{\pgf at arcto@xb}{\pgf at arcto@yb}}}%
+ }%
+ }%
+ \edef\pgf at arcto@cx{\the\pgf at x}%
+ \edef\pgf at arcto@cy{\the\pgf at y}%
+ %
+ % Step 7: Compute start angle:
+ %
+ \pgfmathsetmacro\pgf at arcto@vec at x{(\pgf at arcto@xaprime-\pgf at arcto@cxprime)/\pgf at arcto@rx}%
+ \pgfmathsetmacro\pgf at arcto@vec at y{(\pgf at arcto@yaprime-\pgf at arcto@cyprime)/\pgf at arcto@ry}%
+ \pgfmathsetmacro\pgf at arcto@denominator{veclen(\pgf at arcto@vec at x,\pgf at arcto@vec at y)}%
+ \pgfmathsetmacro\pgf at arcto@frac{\pgf at arcto@vec at x/\pgf at arcto@denominator}%
+ \pgfmathsetmacro\pgf at arcto@theta at start{acos(\pgf at arcto@frac)}%
+ \ifdim\pgf at arcto@vec at y pt<0pt
+ \pgfmathsetmacro\pgf at arcto@theta at start{-\pgf at arcto@theta at start}%
+ \fi
+ %
+ % Step 8: Compute end angle:
+ %
+ \pgfmathsetmacro\pgf at arcto@vec at x{(-\pgf at arcto@xaprime-\pgf at arcto@cxprime)/\pgf at arcto@rx}%
+ \pgfmathsetmacro\pgf at arcto@vec at y{(-\pgf at arcto@yaprime-\pgf at arcto@cyprime)/\pgf at arcto@ry}%
+ \pgfmathsetmacro\pgf at arcto@denominator{veclen(\pgf at arcto@vec at x,\pgf at arcto@vec at y)}%
+ \pgfmathsetmacro\pgf at arcto@frac{\pgf at arcto@vec at x/\pgf at arcto@denominator}%
+ \pgfmathsetmacro\pgf at arcto@theta at end{acos(\pgf at arcto@frac)}%
+ \ifdim\pgf at arcto@vec at y pt<0pt
+ \pgfmathsetmacro\pgf at arcto@theta at end{-\pgf at arcto@theta at end}%
+ \fi
+ \pgfmathsetmacro\pgf at arcto@delta at theta{abs(\pgf at arcto@theta at start-\pgf at arcto@theta at end)}%
+ \ifdim\pgf at arcto@fA pt=0pt
+ \ifdim\pgf at arcto@delta at theta pt>180pt
+ % Ok, we need to adjust the angle!
+ \ifdim\pgf at arcto@theta at end pt>\pgf at arcto@theta at start pt
+ \pgfmathsetmacro\pgf at arcto@theta at end{\pgf at arcto@theta at end-360}%
+ \else
+ \pgfmathsetmacro\pgf at arcto@theta at end{\pgf at arcto@theta at end+360}%
+ \fi
+ \fi
+ \else
+ \ifdim\pgf at arcto@delta at theta pt<180pt
+ % Ok, we need to adjust the angle!
+ \ifdim\pgf at arcto@theta at end pt>\pgf at arcto@theta at start pt
+ \pgfmathsetmacro\pgf at arcto@theta at end{\pgf at arcto@theta at end-360}%
+ \else
+ \pgfmathsetmacro\pgf at arcto@theta at end{\pgf at arcto@theta at end+360}%
+ \fi
+ \fi
+ \fi
+ % Qrr:
+ % make sure direction is properly followed
+ \ifdim\pgf at arcto@fS pt=1pt
+ % counter clockwise
+ \ifdim\pgf at arcto@theta at end pt<\pgf at arcto@theta at start pt
+ \pgfmathsetmacro\pgf at arcto@theta at end{\pgf at arcto@theta at end+360}%
+ \fi
+ \else
+ % clockwise
+ \ifdim\pgf at arcto@theta at end pt>\pgf at arcto@theta at start pt
+ \pgfmathsetmacro\pgf at arcto@theta at end{\pgf at arcto@theta at end-360}%
+ \fi
+ \fi
+ \xdef\pgf at marshal{\noexpand
+ \pgfpatharcaxes{\pgf at arcto@theta at start}{\pgf at arcto@theta at end}
+ {\noexpand\pgfpointpolar{\pgf at arcto@phi}{\pgf at arcto@rx}}
+ {\noexpand\pgfpointpolar{\pgf at arcto@phi+90}{\pgf at arcto@ry}}%
+ }%
+ \fi\fi\fi
+ }%
+ \pgf at marshal
+}
\ No newline at end of file
Property changes on: trunk/Master/texmf-dist/tex/generic/tikz-ext/tikzlibraryext.paths.arcto.code.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/generic/tikz-ext/tikzlibraryext.paths.ortho.code.tex
===================================================================
--- trunk/Master/texmf-dist/tex/generic/tikz-ext/tikzlibraryext.paths.ortho.code.tex (rev 0)
+++ trunk/Master/texmf-dist/tex/generic/tikz-ext/tikzlibraryext.paths.ortho.code.tex 2022-11-03 21:03:19 UTC (rev 64920)
@@ -0,0 +1,693 @@
+% Copyright 2022 by Qrrbrbirlbel
+%
+% This file may be distributed and/or modified
+%
+% 1. under the LaTeX Project Public License and/or
+% 2. under the GNU Free Documentation License.
+%
+
+%% For the operators r-lr, r-rl, r-ud and r-du we need to check after TikZ found r
+\let\tikz at orig@rect\tikz at rect
+\def\tikz at rect{\pgfutil at ifnextchar e\tikz at orig@rect\tikzext at tikz@r}
+\def\tikzext at tikz@r -{%
+ \pgfutil at ifnextchar l\tikzext at tikz@lr at lineto{%
+ \pgfutil at ifnextchar r\tikzext at tikz@rl at lineto{%
+ \pgfutil at ifnextchar u\tikzext at tikz@ud at lineto{%
+ \pgfutil at ifnextchar d\tikzext at tikz@du at lineto\tikz at expand
+ }%
+ }%
+ }%
+}
+%% For the operator |-| we need to check after TikZ found |-
+\let\tikz at orig@vh at lineto@next\tikz at vh@lineto at next
+\def\tikz at vh@lineto at next{%
+ \pgfutil at ifnextchar|{\expandafter\tikzext at tikz@vhv at lineto\pgfutil at gobble}%
+ {\pgfutil at ifnextchar\tikz at activebar{\expandafter\tikzext at tikz@vhv at lineto\pgfutil at gobble}%
+ {\tikz at orig@vh at lineto@next}}}
+%% For the operator -|- we need to check after TikZ found -|
+\let\tikz at orig@hv at lineto\tikz at hv@lineto
+\def\tikz at hv@lineto{%
+ \pgfutil at ifnextchar-{\expandafter\tikzext at tikz@hvh at lineto\pgfutil at gobble}%
+ {\tikz at orig@hv at lineto}}
+
+%% |-|[<opts>] and -|-[<opts>] are allowed
+\def\tikzext at tikz@vhv at lineto{\pgfutil at ifnextchar[{\tikzext at tikz@collect at hvvh@options\tikzext at tikz@vhv at lineto@next}{\tikzext at tikz@collect at hvvh@options\tikzext at tikz@vhv at lineto@next[]}}
+\def\tikzext at tikz@hvh at lineto{\pgfutil at ifnextchar[{\tikzext at tikz@collect at hvvh@options\tikzext at tikz@hvh at lineto@next}{\tikzext at tikz@collect at hvvh@options\tikzext at tikz@hvh at lineto@next[]}}
+
+%% r-rl[<opts>], r-lr[<opts>], etc.
+\def\tikzext at tikz@rl at lineto rl{\pgfutil at ifnextchar[{\tikzext at tikz@collect at hvvh@options\tikzext at tikz@rl at lineto@next}{\tikzext at tikz@collect at hvvh@options\tikzext at tikz@rl at lineto@next[]}}
+\def\tikzext at tikz@lr at lineto lr{\pgfutil at ifnextchar[{\tikzext at tikz@collect at hvvh@options\tikzext at tikz@lr at lineto@next}{\tikzext at tikz@collect at hvvh@options\tikzext at tikz@lr at lineto@next[]}}
+\def\tikzext at tikz@du at lineto du{\pgfutil at ifnextchar[{\tikzext at tikz@collect at hvvh@options\tikzext at tikz@du at lineto@next}{\tikzext at tikz@collect at hvvh@options\tikzext at tikz@du at lineto@next[]}}
+\def\tikzext at tikz@ud at lineto ud{\pgfutil at ifnextchar[{\tikzext at tikz@collect at hvvh@options\tikzext at tikz@ud at lineto@next}{\tikzext at tikz@collect at hvvh@options\tikzext at tikz@ud at lineto@next[]}}
+
+%% TikZ interjects are done, the rest is independent:
+
+
+\newdimen\tikzext at tikz@udlr at distance
+\newdimen\tikzext at tikz@hvvh at distance
+\newif\iftikzext at tikz@hvvh at middle % checks whether spacing = 0 was selected
+\newif\iftikzext at tikz@hvvh at fromcenter
+\newif\iftikzext at ortho@preflush
+\tikzext at ortho@preflushtrue
+
+%%% HVVH/UDLR
+\tikzset{%
+ ortho/.code=\pgfqkeys{/tikz/ortho}{#1},
+ hvvh/.code=\pgfqkeys{/tikz/ortho}{#1},%
+ udlr/.code=\pgfqkeys{/tikz/ortho}{#1},%
+ ortho/.search also=/tikz,
+ ortho/middle 0 to 1/.style={/tikz/ortho/spacing=0},%
+ ortho/from center/.is if=tikzext at tikz@hvvh at fromcenter,%
+ ortho/spacing/.code=% spacing = 0 means that the middle part are the pos-itions 0 to 1,
+ % the first part is -1 to 0, the last part is to 2
+ \pgfmathint{#1}\let\tikzext at tikz@hvvh at timing@parts\pgfmathresult% in case they are calculations to be done
+ \ifcase\tikzext at tikz@hvvh at timing@parts\relax
+ \tikzext at tikz@hvvh at middletrue
+ \def\tikzext at tikz@hvvh at timing@parts{1}%
+ \def\tikzext at tikz@hvvh at timing@first{0}%
+ \def\tikzext at tikz@hvvh at timing@last{1}%
+ \def\tikzext at tikz@hvvh at timing@subtr{0}%
+ \def\tikzext at tikz@hvvh at timing@factor{1}%
+ \else % in all other cases n > 0 the kinks are at pos = 1/n and (n - 1)/n
+ \tikzext at tikz@hvvh at middlefalse
+ \pgfmathreciprocal{#1}\let\tikzext at tikz@hvvh at timing@first\pgfmathresult
+ \pgfmathsetmacro\tikzext at tikz@hvvh at timing@last{1-\pgfmathresult}%
+ \pgfmathreciprocal{#1-2}%
+ \let\tikzext at tikz@hvvh at timing@subtr\pgfmathresult
+ \pgfmathsetmacro\tikzext at tikz@hvvh at timing@factor{1+2*\pgfmathresult}%
+ \fi,%
+ ortho/ratio/.code=\pgfmathsetmacro\tikzext at tikz@hvvh at ratio{#1},%
+ % TODO: not possible to do distance in TikZ coordinate system
+ ortho/distance/.code=\pgfmathsetlength\tikzext at tikz@hvvh at distance{#1}\let\tikzext at tikz@hvvh at ratio\pgfutil at empty,%
+ ortho/udlr distance/.style={%
+ /tikz/ortho/ud distance={#1},%
+ /tikz/ortho/du distance={#1},%
+ /tikz/ortho/lr distance={#1},%
+ /tikz/ortho/rl distance={#1}},%
+ ortho/ud distance/.initial=+.5cm,%
+ ortho/du distance/.initial=+.5cm,%
+ ortho/lr distance/.initial=+.5cm,%
+ ortho/rl distance/.initial=+.5cm,%
+ ortho/ratio=.5,% default value
+ ortho/spacing=4,% default value
+}%
+
+%BEGIN_FOLD Timer
+\def\tikz at timer@hvhline{%
+ \pgf at process{\tikz at timer@start}\pgf at ya\pgf at y
+ \pgf at process{\tikz at timer@end}\pgf at yc\pgf at y
+ \pgf at process{\tikz at timer@middle}\pgf at xb\tikz at time pt%
+ \ifdim\tikz at time pt<\tikzext at tikz@hvvh at timing@first pt% first quarter
+ \iftikzext at tikz@hvvh at middle
+ \advance\pgf at xb1pt%
+ \else
+ \pgf at xb\tikzext at tikz@hvvh at timing@parts\pgf at xb
+ \fi
+ \edef\tikz at marshal{\noexpand\pgftransformlineattime{\pgf at sys@tonumber{\pgf at xb}}{\noexpand\tikz at timer@start}{%
+ \noexpand\pgfqpoint{\the\pgf at x}{\the\pgf at ya}}}%
+ \else
+ \ifdim\tikz at time pt>\tikzext at tikz@hvvh at timing@last pt% last quarter
+ \iftikzext at tikz@hvvh at middle
+ \advance\pgf at xb-1pt%
+ \else
+ \pgf at xb\tikzext at tikz@hvvh at timing@parts\pgf at xb
+ \fi
+ \advance\pgf at xb\dimexpr-\tikzext at tikz@hvvh at timing@parts pt+1pt\relax%
+ \edef\tikz at marshal{\noexpand\pgftransformlineattime{\pgf at sys@tonumber{\pgf at xb}}%
+ {\noexpand\pgfqpoint{\the\pgf at x}{\the\pgf at yc}}{\noexpand\tikz at timer@end}}%
+ \else% middle half
+ \pgf at xb\tikzext at tikz@hvvh at timing@factor\pgf at xb%
+ \advance\pgf at xb-\tikzext at tikz@hvvh at timing@subtr pt%
+ \edef\tikz at marshal{\noexpand\pgftransformlineattime{\pgf at sys@tonumber{\pgf at xb}}%
+ {\noexpand\pgfqpoint{\the\pgf at x}{\the\pgf at ya}}{\noexpand\tikz at timer@middle}}%
+ \fi\fi\tikz at marshal}
+\def\tikz at timer@vhvline{%
+ \pgf at process{\tikz at timer@start}\pgf at xa\pgf at x
+ \pgf at process{\tikz at timer@end}\pgf at xc\pgf at x
+ \pgf at process{\tikz at timer@middle}\pgf at xb\tikz at time pt%
+ \ifdim\tikz at time pt<\tikzext at tikz@hvvh at timing@first pt% first quarter
+ \iftikzext at tikz@hvvh at middle
+ \advance\pgf at xb1pt%
+ \else
+ \pgf at xb\tikzext at tikz@hvvh at timing@parts\pgf at xb
+ \fi
+ \edef\tikz at marshal{\noexpand\pgftransformlineattime{\pgf at sys@tonumber{\pgf at xb}}{\noexpand\tikz at timer@start}{%
+ \noexpand\pgfqpoint{\the\pgf at xa}{\the\pgf at y}}}%
+ \else
+ \ifdim\tikz at time pt>\tikzext at tikz@hvvh at timing@last pt% last quarter
+ \iftikzext at tikz@hvvh at middle
+ \advance\pgf at xb-1pt%
+ \else
+ \pgf at xb\tikzext at tikz@hvvh at timing@parts\pgf at xb
+ \fi
+ \advance\pgf at xb by\dimexpr-\tikzext at tikz@hvvh at timing@parts pt+1pt\relax%
+ \edef\tikz at marshal{\noexpand\pgftransformlineattime{\pgf at sys@tonumber{\pgf at xb}}%
+ {\noexpand\pgfqpoint{\the\pgf at xc}{\the\pgf at y}}{\noexpand\tikz at timer@end}}%
+ \else% middle half
+ \pgf at xb=\tikzext at tikz@hvvh at timing@factor\pgf at xb
+ \advance\pgf at xb by-\tikzext at tikz@hvvh at timing@subtr pt%
+ \edef\tikz at marshal{\noexpand\pgftransformlineattime{\pgf at sys@tonumber{\pgf at xb}}%
+ {\noexpand\pgfqpoint{\the\pgf at xa}{\the\pgf at y}}{\noexpand\tikz at timer@middle}}%
+ \fi\fi\tikz at marshal}%
+
+%% collect options and nodes, coordinates and pics onpath
+\let\tikz at hvvh@currentoption\pgfutil at empty
+\def\tikzext at tikz@collect at hvvh@options#1[#2]{\edef\tikz at hvvh@currentoption{#2}#1}
+\def\tikzext at tikz@hvh at lineto@next{%
+ \pgfutil at ifnextchar n{\tikz at collect@label at onpath\tikzext at tikz@hvh at lineto@next}
+ {\pgfutil at ifnextchar c{\tikz at collect@coordinate at onpath\tikzext at tikz@hvh at lineto@next}%
+ {\pgfutil at ifnextchar p{\tikz at collect@pic at onpath\tikzext at tikz@hvh at lineto@next}{\tikz at scan@one at point\tikzext at tikz@@hvh at lineto}}}}%
+\def\tikzext at tikz@vhv at lineto@next{%
+ \pgfutil at ifnextchar n{\tikz at collect@label at onpath\tikzext at tikz@vhv at lineto@next}
+ {\pgfutil at ifnextchar c{\tikz at collect@coordinate at onpath\tikzext at tikz@vhv at lineto@next}%
+ {\pgfutil at ifnextchar p{\tikz at collect@pic at onpath\tikzext at tikz@vhv at lineto@next}{\tikz at scan@one at point\tikzext at tikz@@vhv at lineto}}}}%
+\def\tikzext at tikz@ud at lineto@next{%
+ \pgfutil at ifnextchar n{\tikz at collect@label at onpath\tikzext at tikz@ud at lineto@next}
+ {\pgfutil at ifnextchar c{\tikz at collect@coordinate at onpath\tikzext at tikz@ud at lineto@next}
+ {\pgfutil at ifnextchar p{\tikz at collect@pic at onpath\tikzext at tikz@ud at lineto@next}{\tikz at scan@one at point\tikzext at tikz@@ud at lineto}}}}%
+\def\tikzext at tikz@du at lineto@next{%
+ \pgfutil at ifnextchar n{\tikz at collect@label at onpath\tikzext at tikz@du at lineto@next}
+ {\pgfutil at ifnextchar c{\tikz at collect@coordinate at onpath\tikzext at tikz@du at lineto@next}
+ {\pgfutil at ifnextchar p{\tikz at collect@pic at onpath\tikzext at tikz@du at lineto@next}{\tikz at scan@one at point\tikzext at tikz@@du at lineto}}}}%
+\def\tikzext at tikz@lr at lineto@next{%
+ \pgfutil at ifnextchar n{\tikz at collect@label at onpath\tikzext at tikz@lr at lineto@next}
+ {\pgfutil at ifnextchar c{\tikz at collect@coordinate at onpath\tikzext at tikz@lr at lineto@next}
+ {\pgfutil at ifnextchar p{\tikz at collect@pic at onpath\tikzext at tikz@lr at lineto@next}{\tikz at scan@one at point\tikzext at tikz@@lr at lineto}}}}%
+\def\tikzext at tikz@rl at lineto@next{%
+ \pgfutil at ifnextchar n{\tikz at collect@label at onpath\tikzext at tikz@rl at lineto@next}
+ {\pgfutil at ifnextchar c{\tikz at collect@coordinate at onpath\tikzext at tikz@rl at lineto@next}
+ {\pgfutil at ifnextchar p{\tikz at collect@pic at onpath\tikzext at tikz@rl at lineto@next}{\tikz at scan@one at point\tikzext at tikz@@rl at lineto}}}}%
+
+\def\tikz at do@hvvh#1#2#3#4#5{%
+% #1 = first kink
+% #2 = second kink
+% #3 = end
+% #4 = timer
+% #5 = tikz at shapeborder@name
+ \pgfpathlineto{#1}%
+ \pgfpathlineto{#2}%
+ \pgfpathlineto{#3}%
+ \def\tikz at timer@middle{#2}%
+ \def\tikz at timer@end{#3}%
+ \let\tikz at timer#4
+ \edef\pgf at temp{#5}%
+ \ifx\pgf at temp\pgfutil at empty
+ \let\tikz at moveto@waiting\relax
+ \else
+ \let\tikz at moveto@waiting\pgf at temp
+ \fi
+ \tikz at scan@next at command}%
+
+%% -|- operator
+\def\tikzext at tikz@@hvh at lineto#1{%
+ \edef\tikz at timer@start{\noexpand\pgfqpoint{\the\tikz at lastx}{\the\tikz at lasty}}%
+ \pgf at xb=\tikz at lastx
+ \pgf at xc=\tikz at lastx
+ \pgf at yc=\tikz at lasty
+ \tikz at make@last at position{#1}%
+ \tikz at flush@moveto at toward{\pgfqpoint{\tikz at lastx}{\pgf at yc}}\pgf at xc\pgf at yc
+ \begingroup
+ \pgfqkeys{/tikz/ortho}{/tikz/style/.expand once=\tikz at hvvh@currentoption}%
+ \iftikz at shapeborder
+ \pgf at process{\pgfpointshapeborder{\tikz at shapeborder@name}{\pgfqpoint{\pgf at xb}{\tikz at lasty}}}%
+ \iftikzext at tikz@hvvh at fromcenter
+ \pgf at xc\pgf at xb
+ \fi
+ \pgfutil at ifxempty\tikzext at tikz@hvvh at ratio{%
+ \ifdim\tikzext at tikz@hvvh at distance<0pt\relax
+ \iftikzext at tikz@hvvh at fromcenter
+ \pgf at xc\tikz at lastx
+ \else
+ \pgf at xc\pgf at x
+ \fi
+ \fi
+ \ifdim\pgf at xb>\tikz at lastx
+ \tikzext at tikz@hvvh at distance-\tikzext at tikz@hvvh at distance
+ \fi
+ }{%
+ \iftikzext at tikz@hvvh at fromcenter
+ \tikzext at tikz@hvvh at distance\tikz at lastx
+ \else
+ \tikzext at tikz@hvvh at distance\pgf at x
+ \fi
+ \advance\tikzext at tikz@hvvh at distance-\pgf at xc
+ \tikzext at tikz@hvvh at distance\tikzext at tikz@hvvh at ratio\tikzext at tikz@hvvh at distance
+ }%
+ \advance\pgf at xc\tikzext at tikz@hvvh at distance
+ \edef\pgf at tempa{\noexpand\pgfqpoint{\the\pgf at xc}{\the\pgf at yc}}%
+ \edef\pgf at tempb{\noexpand\pgfqpoint{\the\pgf at xc}{\the\tikz at lasty}}%
+ \edef\pgf at temp{\pgfqpoint{\the\pgf at x}{\the\pgf at y}}%
+ \else
+ \let\tikz at shapeborder@name\pgfutil at empty
+ \iftikzext at tikz@hvvh at fromcenter
+ \pgf at xc\pgf at xb
+ \fi
+ \pgfutil at ifxempty\tikzext at tikz@hvvh at ratio{%
+ \ifdim\tikzext at tikz@hvvh at distance<0pt\relax
+ \pgf at xc\tikz at lastx
+ \fi
+ \ifdim\pgf at xb>\tikz at lastx
+ \tikzext at tikz@hvvh at distance-\tikzext at tikz@hvvh at distance
+ \fi
+ }{%
+ \tikzext at tikz@hvvh at distance\tikz at lastx
+ \advance\tikzext at tikz@hvvh at distance-\pgf at xc
+ \tikzext at tikz@hvvh at distance\tikzext at tikz@hvvh at ratio\tikzext at tikz@hvvh at distance
+ }%
+ \advance\pgf at xc\tikzext at tikz@hvvh at distance
+ \edef\pgf at tempa{\noexpand\pgfqpoint{\the\pgf at xc}{\the\pgf at yc}}%
+ \edef\pgf at tempb{\noexpand\pgfqpoint{\the\pgf at xc}{\the\tikz at lasty}}%
+ \edef\pgf at temp{\pgfqpoint{\the\tikz at lastx}{\the\tikz at lasty}}%
+ \fi%
+ \xdef\pgf at marshal{%
+ \noexpand\tikz at do@hvvh
+ {\expandafter\noexpand\pgf at tempa}%
+ {\expandafter\noexpand\pgf at tempb}%
+ {\expandafter\noexpand\pgf at temp}%
+ {\noexpand\tikz at timer@hvhline}{\tikz at shapeborder@name}}%
+ \endgroup
+ \pgf at marshal}%
+
+%% |-| operator
+\def\tikzext at tikz@@vhv at lineto#1{%
+ \edef\tikz at timer@start{\noexpand\pgfqpoint{\the\tikz at lastx}{\the\tikz at lasty}}%
+ \pgf at xc=\tikz at lastx
+ \pgf at yb=\tikz at lasty
+ \pgf at yc=\tikz at lasty
+ \tikz at make@last at position{#1}%
+ \tikz at flush@moveto at toward{\pgfqpoint{\pgf at xc}{\tikz at lasty}}\pgf at xc\pgf at yc
+ \begingroup
+ \pgfqkeys{/tikz/ortho}{/tikz/style/.expand once=\tikz at hvvh@currentoption}%
+ \iftikz at shapeborder
+ \pgf at process{\pgfpointshapeborder{\tikz at shapeborder@name}{\pgfqpoint{\tikz at lastx}{\pgf at yb}}}%
+ \iftikzext at tikz@hvvh at fromcenter
+ \pgf at yc\pgf at yb
+ \fi
+ \ifx\tikzext at tikz@hvvh at ratio\pgfutil at empty
+ \ifdim\tikzext at tikz@hvvh at distance<0pt\relax
+ \iftikzext at tikz@hvvh at fromcenter
+ \pgf at yc\tikz at lasty
+ \else
+ \pgf at yc\pgf at y
+ \fi
+ \fi
+ \ifdim\pgf at yb>\tikz at lasty
+ \tikzext at tikz@hvvh at distance-\tikzext at tikz@hvvh at distance
+ \fi
+ \else
+ \iftikzext at tikz@hvvh at fromcenter
+ \tikzext at tikz@hvvh at distance\tikz at lasty
+ \else
+ \tikzext at tikz@hvvh at distance\pgf at y
+ \fi
+ \advance\tikzext at tikz@hvvh at distance-\pgf at yc
+ \tikzext at tikz@hvvh at distance\tikzext at tikz@hvvh at ratio\tikzext at tikz@hvvh at distance
+ \fi
+ \advance\pgf at yc\tikzext at tikz@hvvh at distance
+ \edef\pgf at tempa{\noexpand\pgfqpoint{\the\pgf at xc}{\the\pgf at yc}}%
+ \edef\pgf at tempb{\noexpand\pgfqpoint{\the\tikz at lastx}{\the\pgf at yc}}%
+ \edef\pgf at temp{\pgfqpoint{\the\pgf at x}{\the\pgf at y}}%
+ \else
+ \let\tikz at shapeborder@name\pgfutil at empty
+ \iftikzext at tikz@hvvh at fromcenter
+ \pgf at yc\pgf at yb
+ \fi
+ \ifx\tikzext at tikz@hvvh at ratio\pgfutil at empty
+ \ifdim\tikzext at tikz@hvvh at distance<0pt\relax
+ \pgf at yc\tikz at lasty
+ \fi
+ \ifdim\pgf at yb>\tikz at lasty
+ \tikzext at tikz@hvvh at distance-\tikzext at tikz@hvvh at distance
+ \fi
+ \else
+ \tikzext at tikz@hvvh at distance\tikz at lasty
+ \advance\tikzext at tikz@hvvh at distance-\pgf at yc
+ \tikzext at tikz@hvvh at distance\tikzext at tikz@hvvh at ratio\tikzext at tikz@hvvh at distance
+ \fi
+ \advance\pgf at yc\tikzext at tikz@hvvh at distance
+ \edef\pgf at tempa{\noexpand\pgfqpoint{\the\pgf at xc}{\the\pgf at yc}}%
+ \edef\pgf at tempb{\noexpand\pgfqpoint{\the\tikz at lastx}{\the\pgf at yc}}%
+ \edef\pgf at temp{\pgfqpoint{\the\tikz at lastx}{\the\tikz at lasty}}%
+ \fi%
+ \xdef\pgf at marshal{%
+ \noexpand\tikz at do@hvvh
+ {\expandafter\noexpand\pgf at tempa}%
+ {\expandafter\noexpand\pgf at tempb}%
+ {\expandafter\noexpand\pgf at temp}%
+ {\noexpand\tikz at timer@vhvline}{\tikz at shapeborder@name}}%
+ \endgroup
+ \pgf at marshal}%
+
+%% r-ud operator
+\def\tikzext at tikz@@ud at lineto#1{%
+ \edef\tikz at timer@start{\noexpand\pgfqpoint{\the\tikz at lastx}{\the\tikz at lasty}}%
+ \pgf at xc\tikz at lastx
+ \pgf at yb\tikz at lasty
+ \advance\tikz at lasty1pt%
+ \let\pgf at temp\tikz at moveto@waiting
+ \tikz at flush@moveto at toward{\pgfqpoint{\tikz at lastx}{\tikz at lasty}}\pgf at xc\pgf at yc
+ \tikz at make@last at position{#1}%
+ \begingroup
+ \pgfqkeys{/tikz/ortho}{/tikz/style/.expand once=\tikz at hvvh@currentoption}%
+ \pgfmathsetlength\tikzext at tikz@udlr at distance{\pgfkeysvalueof{/tikz/ortho/ud distance}}%
+ \iftikz at shapeborder
+ \advance\pgf at y1pt%
+ \pgf at process{\pgfpointshapeborder{\tikz at shapeborder@name}{\pgfqpoint{\pgf at x}{\pgf at y}}}%
+ \iftikzext at tikz@hvvh at fromcenter
+ \pgf at yc\pgf at yb
+ \else\ifx\pgf at temp\relax
+ \pgf at yc\pgf at yb
+ \fi
+ \fi
+ \ifdim\pgf at yc<\pgf at y
+ \iftikzext at tikz@hvvh at fromcenter
+ \pgf at yc=\tikz at lasty
+ \else
+ \pgf at yc=\pgf at y
+ \fi
+ \fi
+ \advance\pgf at yc\tikzext at tikz@udlr at distance
+ \edef\pgf at temp{\noexpand\pgfqpoint{\the\pgf at x}{\the\pgf at y}}%
+ \else
+ \let\tikz at shapeborder@name\pgfutil at empty
+ \ifx\pgf at temp\relax\else
+ \iftikzext at tikz@hvvh at fromcenter\else
+ \pgf at yb\pgf at yc
+ \fi
+ \fi
+ \ifdim\pgf at yb<\tikz at lasty\pgf at yb\tikz at lasty\fi
+ \advance\pgf at yb\tikzext at tikz@udlr at distance
+ \pgf at yc\pgf at yb
+ \edef\pgf at temp{\noexpand\pgfqpoint{\the\tikz at lastx}{\the\tikz at lasty}}%
+ \fi
+ \xdef\pgf at marshal{%
+ \noexpand\tikz at do@hvvh
+ {\noexpand\pgfqpoint{\the\pgf at xc}{\the\pgf at yc}}%
+ {\noexpand\pgfqpoint{\the\tikz at lastx}{\the\pgf at yc}}%
+ {\expandafter\noexpand\pgf at temp}%
+ {\noexpand\tikz at timer@vhvline}{\tikz at shapeborder@name}}%
+ \endgroup
+ \pgf at marshal}%
+
+%% r-du operator
+\def\tikzext at tikz@@du at lineto#1{%
+ \edef\tikz at timer@start{\noexpand\pgfqpoint{\the\tikz at lastx}{\the\tikz at lasty}}%
+ \pgf at xc\tikz at lastx
+ \pgf at yb\tikz at lasty
+ \advance\tikz at lasty-1pt%
+ \let\pgf at temp\tikz at moveto@waiting
+ \tikz at flush@moveto at toward{\pgfqpoint{\tikz at lastx}{\tikz at lasty}}\pgf at xc\pgf at yc
+ \tikz at make@last at position{#1}%
+ \begingroup
+ \pgfqkeys{/tikz/ortho}{/tikz/style/.expand once=\tikz at hvvh@currentoption}%
+ \pgfmathsetlength\tikzext at tikz@udlr at distance{\pgfkeysvalueof{/tikz/ortho/du distance}}%
+ \iftikz at shapeborder
+ \advance\pgf at y-1pt%
+ \pgf at process{\pgfpointshapeborder{\tikz at shapeborder@name}{\pgfqpoint{\pgf at x}{\pgf at y}}}%
+ \iftikzext at tikz@hvvh at fromcenter
+ \pgf at yc\pgf at yb
+ \else\ifx\pgf at temp\relax
+ \pgf at yc\pgf at yb
+ \fi
+ \fi
+ \ifdim\pgf at yc>\pgf at y
+ \iftikzext at tikz@hvvh at fromcenter
+ \pgf at yc=\tikz at lasty
+ \else
+ \pgf at yc=\pgf at y
+ \fi
+ \fi
+ \advance\pgf at yc-\tikzext at tikz@udlr at distance
+ \edef\pgf at temp{\noexpand\pgfqpoint{\the\pgf at x}{\the\pgf at y}}%
+ \else
+ \let\tikz at shapeborder@name\pgfutil at empty
+ \ifx\pgf at temp\relax\else
+ \iftikzext at tikz@hvvh at fromcenter\else
+ \pgf at yb\pgf at yc
+ \fi
+ \fi
+ \ifdim\pgf at yb>\tikz at lasty\pgf at yb\tikz at lasty\fi
+ \advance\pgf at yb-\tikzext at tikz@udlr at distance
+ \pgf at yc\pgf at yb
+ \edef\pgf at temp{\noexpand\pgfqpoint{\the\tikz at lastx}{\the\tikz at lasty}}%
+ \fi
+ \xdef\pgf at marshal{%
+ \noexpand\tikz at do@hvvh
+ {\noexpand\pgfqpoint{\the\pgf at xc}{\the\pgf at yc}}%
+ {\noexpand\pgfqpoint{\the\tikz at lastx}{\the\pgf at yc}}%
+ {\expandafter\noexpand\pgf at temp}%
+ {\noexpand\tikz at timer@vhvline}{\tikz at shapeborder@name}}%
+ \endgroup
+ \pgf at marshal}%
+
+%% r-lr operator
+\def\tikzext at tikz@@lr at lineto#1{%
+ \edef\tikz at timer@start{\noexpand\pgfqpoint{\the\tikz at lastx}{\the\tikz at lasty}}%
+ \pgf at xb\tikz at lastx
+ \pgf at yc\tikz at lasty
+ \advance\tikz at lastx-1pt%
+ \let\pgf at temp\tikz at moveto@waiting
+ \tikz at flush@moveto at toward{\pgfqpoint{\tikz at lastx}{\tikz at lasty}}\pgf at xc\pgf at yc
+ \tikz at make@last at position{#1}%
+ \begingroup
+ \pgfqkeys{/tikz/ortho}{/tikz/style/.expand once=\tikz at hvvh@currentoption}%
+ \pgfmathsetlength\tikzext at tikz@udlr at distance{\pgfkeysvalueof{/tikz/ortho/lr distance}}%
+ \iftikz at shapeborder
+ \advance\pgf at x-1pt%
+ \pgf at process{\pgfpointshapeborder{\tikz at shapeborder@name}{\pgfqpoint{\pgf at x}{\pgf at y}}}%
+ \iftikzext at tikz@hvvh at fromcenter
+ \pgf at xc\pgf at xb
+ \else\ifx\pgf at temp\relax
+ \pgf at xc\pgf at xb
+ \fi
+ \fi
+ \ifdim\pgf at xc>\pgf at x
+ \iftikzext at tikz@hvvh at fromcenter
+ \pgf at xc=\tikz at lastx
+ \else
+ \pgf at xc=\pgf at x
+ \fi
+ \fi
+ \advance\pgf at xc-\tikzext at tikz@udlr at distance
+ \edef\pgf at temp{\noexpand\pgfqpoint{\the\pgf at x}{\the\pgf at y}}%
+ \else
+ \let\tikz at shapeborder@name\pgfutil at empty
+ \ifx\pgf at temp\relax\else
+ \iftikzext at tikz@hvvh at fromcenter\else
+ \pgf at xb\pgf at xc
+ \fi
+ \fi
+ \ifdim\pgf at xb>\tikz at lastx\pgf at xb\tikz at lastx\fi
+ \advance\pgf at xb-\tikzext at tikz@udlr at distance
+ \pgf at xc\pgf at xb
+ \edef\pgf at temp{\noexpand\pgfqpoint{\the\tikz at lastx}{\the\tikz at lasty}}%
+ \fi
+ \xdef\pgf at marshal{%
+ \noexpand\tikz at do@hvvh
+ {\noexpand\pgfqpoint{\the\pgf at xc}{\the\pgf at yc}}%
+ {\noexpand\pgfqpoint{\the\pgf at xc}{\the\tikz at lasty}}%
+ {\expandafter\noexpand\pgf at temp}%
+ {\noexpand\tikz at timer@hvhline}{\tikz at shapeborder@name}}%
+ \endgroup
+ \pgf at marshal}%
+
+%% r-rl operator
+\def\tikzext at tikz@@rl at lineto#1{%
+ \edef\tikz at timer@start{\noexpand\pgfqpoint{\the\tikz at lastx}{\the\tikz at lasty}}%
+ \pgf at xb\tikz at lastx
+ \pgf at yc\tikz at lasty
+ \advance\tikz at lastx1pt%
+ \let\pgf at temp\tikz at moveto@waiting
+ \tikz at flush@moveto at toward{\pgfqpoint{\tikz at lastx}{\tikz at lasty}}\pgf at xc\pgf at yc
+ \tikz at make@last at position{#1}%
+ \begingroup
+ \pgfqkeys{/tikz/udlr}{/tikz/ortho/.expand once=\tikz at hvvh@currentoption}%
+ \pgfmathsetlength\tikzext at tikz@udlr at distance{\pgfkeysvalueof{/tikz/ortho/rl distance}}%
+ \iftikz at shapeborder%
+ \advance\pgf at x1pt%
+ \pgf at process{\pgfpointshapeborder{\tikz at shapeborder@name}{\pgfqpoint{\pgf at x}{\pgf at y}}}%
+ \iftikzext at tikz@hvvh at fromcenter
+ \pgf at xc\pgf at xb
+ \else\ifx\pgf at temp\relax
+ \pgf at xc\pgf at xb
+ \fi
+ \fi
+ \ifdim\pgf at xc<\pgf at x
+ \iftikzext at tikz@hvvh at fromcenter
+ \pgf at xc=\tikz at lastx
+ \else
+ \pgf at xc=\pgf at x
+ \fi
+ \fi
+ \advance\pgf at xc\tikzext at tikz@udlr at distance
+ \edef\pgf at temp{\noexpand\pgfqpoint{\the\pgf at x}{\the\pgf at y}}%
+ \else
+ \let\tikz at shapeborder@name\pgfutil at empty%
+ \ifx\pgf at temp\relax\else
+ \iftikzext at tikz@hvvh at fromcenter\else
+ \pgf at xb\pgf at xc
+ \fi
+ \fi
+ \ifdim\pgf at xb<\tikz at lastx\pgf at xb\tikz at lastx\fi
+ \advance\pgf at xb\tikzext at tikz@udlr at distance
+ \pgf at xc\pgf at xb
+ \edef\pgf at temp{\noexpand\pgfqpoint{\the\tikz at lastx}{\the\tikz at lasty}}%
+ \fi
+ \xdef\pgf at marshal{%
+ \noexpand\tikz at do@hvvh
+ {\noexpand\pgfqpoint{\the\pgf at xc}{\the\pgf at yc}}%
+ {\noexpand\pgfqpoint{\the\pgf at xc}{\the\tikz at lasty}}%
+ {\expandafter\noexpand\pgf at temp}%
+ {\noexpand\tikz at timer@hvhline}{\tikz at shapeborder@name}}%
+ \endgroup
+ \pgf at marshal}%
+
+%% a few nice to haves, use with to or edge operator
+\tikzset{
+ node as new start/.is if=tikzext at ortho@preflush,
+ node as new start,
+ ortho/install shortcuts/.style={
+ *|/.style={only vertical second={#1}}, *|/.default=,
+ |*/.style={only vertical first={#1}}, |*/.default=,
+ *-/.style={only horizontal second={#1}}, *-/.default=,
+ -*/.style={only horizontal first={#1}}, -*/.default=,
+ |-/.style={to path={|-(\tikztotarget)\tikztonodes}},
+ -|/.style={to path={-|(\tikztotarget)\tikztonodes}},
+ -|-/.style=/tikz/horizontal vertical horizontal,
+ |-|/.style=/tikz/vertical horizontal vertical,
+ },
+ horizontal vertical/.style={to path={-| (\tikztotarget) \tikztonodes}},
+ vertical horizontal/.style={to path={|- (\tikztotarget) \tikztonodes}},
+ horizontal vertical horizontal/.style={to path={-|- (\tikztotarget) \tikztonodes}},
+ vertical horizontal vertical/.style={to path={|-| (\tikztotarget) \tikztonodes}},
+ only vertical second/.style={to path={
+ \pgfextra
+ \let\tikzext at ortho@anchor\pgfutil at empty
+ \let\tikzext at origtotarget\pgfutil at empty
+ \tikz at scan@one at point\pgfutil at firstofone(\tikztostart)\relax
+ \iftikz at shapeborder
+ \tikz at scan@one at point\pgfutil at firstofone(\tikztotarget)\relax
+ \ifdim\pgf at y>\tikz at lasty\relax
+ \edef\tikztostart{\tikztostart.north}%
+ \iftikz at shapeborder\def\tikzext at ortho@anchor{.south}\fi
+ \else
+ \edef\tikztostart{\tikztostart.south}%
+ \iftikz at shapeborder\def\tikzext at ortho@anchor{.north}\fi
+ \fi
+ \fi
+ \def\tikz at tempa{#1}%
+ \ifx\tikz at tempa\pgfutil at empty\else
+ \let\tikzext at origtotarget\tikztotarget
+ \edef\tikztotarget{[xshift={#1}]\tikztotarget\tikzext at ortho@anchor}%
+ \fi
+ \endpgfextra
+ [insert path/.expanded={
+ (perpendicular cs: horizontal line through={(\tikztostart)},
+ vertical line through={(\tikztotarget)}) -- (\tikztotarget)}] \tikztonodes
+ \pgfextra
+ \ifx\tikzext at origtotarget\pgfutil at empty\else
+ \iftikzext at ortho@preflush(\tikzext at origtotarget)\fi\fi\endpgfextra}},
+ only vertical second/.default=,
+ only horizontal second/.style={to path={
+ \pgfextra
+ \let\tikzext at ortho@anchor\pgfutil at empty
+ \let\tikzext at origtotarget\pgfutil at empty
+ \tikz at scan@one at point\pgfutil at firstofone(\tikztostart)\relax
+ \iftikz at shapeborder
+ \tikz at scan@one at point\pgfutil at firstofone(\tikztotarget)\relax
+ \ifdim\pgf at x>\tikz at lastx\relax
+ \edef\tikztostart{\tikztostart.east}%
+ \iftikz at shapeborder\def\tikzext at ortho@anchor{.west}\fi
+ \else
+ \edef\tikztostart{\tikztostart.west}%
+ \iftikz at shapeborder\def\tikzext at ortho@anchor{.east}\fi
+ \fi
+ \fi
+ \def\tikz at tempa{#1}%
+ \ifx\tikz at tempa\pgfutil at empty\else
+ \let\tikzext at origtotarget\tikztotarget
+ \edef\tikztotarget{[yshift={#1}]\tikztotarget\tikzext at ortho@anchor}%
+ \fi
+ \endpgfextra
+ [insert path/.expanded={
+ (perpendicular cs: vertical line through={(\tikztostart)},
+ horizontal line through={(\tikztotarget)}) -- (\tikztotarget)}] \tikztonodes
+ \pgfextra
+ \ifx\tikzext at origtotarget\pgfutil at empty\else
+ \iftikzext at ortho@preflush(\tikzext at origtotarget)\fi\fi\endpgfextra}},
+ only horizontal second/.default=,
+ only vertical first/.style={to path={
+ \pgfextra
+ \let\tikzext at ortho@anchor\pgfutil at empty
+ \let\tikzext at origtotarget\pgfutil at empty
+ \tikz at scan@one at point\pgfutil at firstofone(\tikztotarget)\relax
+ \pgf at ya=\pgf at y
+ \iftikz at shapeborder
+ \let\tikzext at origtotarget\tikztotarget
+ \tikz at scan@one at point\pgfutil at firstofone(\tikztostart)\relax
+ \ifdim\pgf at ya>\tikz at lasty\relax
+ \edef\tikztotarget{\tikztotarget.south}%
+ \iftikz at shapeborder\def\tikzext at ortho@anchor{.north}\fi
+ \else
+ \edef\tikztotarget{\tikztotarget.north}%
+ \iftikz at shapeborder\def\tikzext at ortho@anchor{.south}\fi
+ \fi
+ \fi
+ \def\tikz at tempa{#1}%
+ \ifx\tikz at tempa\pgfutil at empty\else
+ \edef\tikztostart{[xshift={#1}]\tikztostart\tikzext at ortho@anchor}%
+ \fi
+ \endpgfextra
+ [insert path/.expanded={(\tikztostart)}]
+ -- (perpendicular cs: vertical line through/.expanded={(\tikztostart)},
+ horizontal line through={(\tikztotarget)})
+ \tikztonodes
+ \pgfextra
+ \ifx\tikzext at origtotarget\pgfutil at empty\else
+ \iftikzext at ortho@preflush(\tikzext at origtotarget)\fi\fi\endpgfextra}},
+ only vertical first/.default=,
+ only horizontal first/.style={to path={
+ \pgfextra
+ \let\tikzext at ortho@anchor\pgfutil at empty
+ \let\tikzext at origtotarget\pgfutil at empty
+ \tikz at scan@one at point\pgfutil at firstofone(\tikztotarget)\relax
+ \pgf at xa=\pgf at x
+ \iftikz at shapeborder
+ \let\tikzext at origtotarget\tikztotarget
+ \tikz at scan@one at point\pgfutil at firstofone(\tikztostart)\relax
+ \ifdim\pgf at xa>\tikz at lastx\relax
+ \edef\tikztotarget{\tikztotarget.west}%
+ \iftikz at shapeborder\def\tikzext at ortho@anchor{.east}\fi
+ \else
+ \edef\tikztotarget{\tikztotarget.east}%
+ \iftikz at shapeborder\def\tikzext at ortho@anchor{.west}\fi
+ \fi
+ \fi
+ \def\tikz at tempa{#1}%
+ \ifx\tikz at tempa\pgfutil at empty\else
+ \edef\tikztostart{[yshift={#1}]\tikztostart\tikzext at ortho@anchor}%
+ \fi
+ \endpgfextra
+ [insert path/.expanded={(\tikztostart)}]
+ -- (perpendicular cs: horizontal line through/.expanded={(\tikztostart)},
+ vertical line through={(\tikztotarget)})
+ \tikztonodes \pgfextra
+ \ifx\tikzext at origtotarget\pgfutil at empty\else
+ \iftikzext at ortho@preflush(\tikzext at origtotarget)\fi\fi\endpgfextra}},
+ only horizontal first/.default=,
+ only vertical first to center/.style={to path={
+ \pgfextra
+ \let\tikzext at origtotarget\tikztotarget
+ \endpgfextra
+ (\tikztostart) -- (perpendicular cs: vertical line through={(\tikztostart)},
+ horizontal line through={(\tikztotarget)})
+ \tikztonodes \ifx\tikzext at origtotarget\pgfutil at empty\else\iftikzext at ortho@preflush(\tikzext at origtotarget)\fi\fi}},
+ only horizontal first to center/.style={to path={
+ \pgfextra
+ \let\tikzext at origtotarget\tikztotarget
+ \endpgfextra
+ (\tikztostart) -- (perpendicular cs: horizontal line through={(\tikztostart)},
+ vertical line through={(\tikztotarget)})
+ \tikztonodes \ifx\tikzext at origtotarget\pgfutil at empty\else\iftikzext at ortho@preflush(\tikzext at origtotarget)\fi\fi}}%
+}
+\endinput
\ No newline at end of file
Property changes on: trunk/Master/texmf-dist/tex/generic/tikz-ext/tikzlibraryext.paths.ortho.code.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/generic/tikz-ext/tikzlibraryext.paths.timer.code.tex
===================================================================
--- trunk/Master/texmf-dist/tex/generic/tikz-ext/tikzlibraryext.paths.timer.code.tex (rev 0)
+++ trunk/Master/texmf-dist/tex/generic/tikz-ext/tikzlibraryext.paths.timer.code.tex 2022-11-03 21:03:19 UTC (rev 64920)
@@ -0,0 +1,188 @@
+% Copyright 2022 by Qrrbrbirlbel
+%
+% This file may be distributed and/or modified
+%
+% 1. under the LaTeX Project Public License and/or
+% 2. under the GNU Free Documentation License.
+%
+\def\tikz at rectB#1{% originally from tikz.code.tex
+ \tikz at make@last at position{#1}%
+ \edef\tikz at timer@end{\noexpand\pgfqpoint{\the\tikz at lastx}{\the\tikz at lasty}}%
+ \let\tikz at timer\tikz at timer@rectangle% %% Timer: new timer
+ \tikz@@movetosave{\pgfqpoint{\pgf at xa}{\pgf at ya}}%
+ \tikz at path@lineto{\pgfqpoint{\pgf at xa}{\tikz at lasty}}%
+ \tikz at path@lineto{\pgfqpoint{\tikz at lastx}{\tikz at lasty}}%
+ \tikz at path@lineto{\pgfqpoint{\tikz at lastx}{\pgf at ya}}%
+ \iftikz at snaked
+ \tikz at path@lineto{\pgfqpoint{\pgf at xa}{\pgf at ya}}%
+ \fi
+ \pgfpathclose
+ \tikz@@movetosave{\pgfqpoint{\tikz at lastx}{\tikz at lasty}}%
+ \def\pgfstrokehook{}%
+ \let\tikz at tangent\relax
+ \tikz at scan@next at command
+}%
+
+\def\tikz@@sine#1{% originally from tikz.code.tex
+ \let\tikz at tangent\tikz at tangent@lookup
+ \tikz at flush@moveto
+ \edef\tikz at timer@start{\pgfqpoint{\the\tikz at lastx}{\the\tikz at lasty}}% %% Timer: save start position
+ \pgf at process{#1}%
+ \edef\tikz at timer@end{\pgfqpoint{\the\pgf at x}{\the\pgf at y}}% %% Timer: saver target position
+ \pgf at xc=\pgf at x
+ \pgf at yc=\pgf at y
+ \advance\pgf at xc by-\tikz at lastx
+ \advance\pgf at yc by-\tikz at lasty
+ \advance\tikz at lastx by\pgf at xc
+ \advance\tikz at lasty by\pgf at yc
+ \tikz at lastxsaved=\tikz at lastx
+ \tikz at lastysaved=\tikz at lasty
+ \tikz at updatecurrenttrue
+ \let\tikz at timer=\tikz at timer@sine% %% Timer: new timer
+ \pgfpathsine{\pgfqpoint{\pgf at xc}{\pgf at yc}}%
+ \tikz at scan@next at command
+}
+
+\def\tikz@@cosine#1{% originally from tikz.code.tex
+ \let\tikz at tangent\tikz at tangent@lookup
+ \tikz at flush@moveto
+ \edef\tikz at timer@start{\pgfqpoint{\the\tikz at lastx}{\the\tikz at lasty}}% %% Timer: save start position
+ \pgf at process{#1}%
+ \edef\tikz at timer@end{\pgfqpoint{\the\pgf at x}{\the\pgf at y}}% %% Timer: save target position
+ \pgf at xc=\pgf at x
+ \pgf at yc=\pgf at y
+ \advance\pgf at xc by-\tikz at lastx
+ \advance\pgf at yc by-\tikz at lasty
+ \advance\tikz at lastx by\pgf at xc
+ \advance\tikz at lasty by\pgf at yc
+ \tikz at lastxsaved=\tikz at lastx
+ \tikz at lastysaved=\tikz at lasty
+ \tikz at updatecurrenttrue
+ \let\tikz at timer=\tikz at timer@cosine% %% Timer: new timer
+ \pgfpathcosine{\pgfqpoint{\pgf at xc}{\pgf at yc}}%
+ \tikz at scan@next at command
+}
+
+\def\tikz at timer@rectangle{%
+ \pgfutil at tempdima\tikz at time pt
+ \ifdim\pgfutil at tempdima<.5pt\else % if we're at the return pos-ition we switch start and end
+ \advance\pgfutil at tempdima-.5pt
+ \let\pgf at tempa\tikz at timer@start
+ \let\tikz at timer@start\tikz at timer@end
+ \let\tikz at timer@end\pgf at tempa
+ \fi
+ \multiply\pgfutil at tempdima2
+ \edef\tikz at time{\strip at pt\pgfutil at tempdima}%
+ \tikz at timer@hvline}%
+
+\def\tikz at parabola@semifinal#1{%
+ \tikz at flush@moveto
+ % Save original start:
+ \edef\tikz at timer@start{\noexpand\pgfqpoint{\the\tikz at lastx}{\the\tikz at lasty}}% %% Timer: save start position
+ \pgf at xb=\tikz at lastx
+ \pgf at yb=\tikz at lasty
+ \tikz at make@last at position{#1}%
+ \edef\tikz at timer@end{\noexpand\pgfqpoint{\the\tikz at lastx}{\the\tikz at lasty}}% %% Timer: save target position
+ \pgf at xc=\tikz at lastx
+ \pgf at yc=\tikz at lasty
+ \begingroup% now calculate bend:
+ \let\tikz at after@path\pgfutil at empty
+ \expandafter\tikzset\expandafter{\tikz at parabola@option}%
+ \tikz at lastxsaved=\tikz at parabola@bend at factor\tikz at lastx
+ \tikz at lastysaved=\tikz at parabola@bend at factor\tikz at lasty
+ \advance\tikz at lastxsaved by\pgf at xb
+ \advance\tikz at lastysaved by\pgf at yb
+ \advance\tikz at lastxsaved by-\tikz at parabola@bend at factor\pgf at xb
+ \advance\tikz at lastysaved by-\tikz at parabola@bend at factor\pgf at yb
+ \expandafter\tikz at make@last at position\expandafter{\tikz at parabola@bend}%
+ \edef\tikz at timer@middle{{\the\tikz at lastx}{\the\tikz at lasty}}% %% Timer: save bend postion
+ % Calculate delta from bend
+ \advance\pgf at xc by-\tikz at lastx
+ \advance\pgf at yc by-\tikz at lasty
+ % Ok, now calculate delta to bend
+ \advance\tikz at lastx by-\pgf at xb
+ \advance\tikz at lasty by-\pgf at yb
+ \edef\tikz at marshall{%
+ \noexpand\let\noexpand\tikz at timer\noexpand\tikz at timer@parabola
+ \noexpand\edef\noexpand\tikz at timer@middle{\noexpand\pgfqpoint\tikz at timer@middle}%
+ \noexpand\pgfpathparabola{\noexpand\pgfqpoint{\the\tikz at lastx}{\the\tikz at lasty}}{\noexpand\pgfqpoint{\the\pgf at xc}{\the\pgf at yc}}%
+ }%
+ \expandafter\endgroup%
+ \tikz at marshall
+ \expandafter\tikz at scan@next at command\tikz at after@path%
+}%
+
+\def\tikz at timer@parabola{% following calculations, see \def of \pgfpathparabola in pgfcorepathconstruct.code.tex (l. 1261)
+ \ifdim\tikz at time pt<.5pt\relax % first part
+ \pgf at process{\tikz at timer@middle}%
+ \pgf at xc\pgf at x\pgf at yc\pgf at y
+ \pgf at xb\pgf at x\pgf at yb\pgf at y
+ \pgf at process{\tikz at timer@start}%
+ \advance\pgf at xc-\pgf at x\pgf at xc.1125\pgf at xc
+ \advance\pgf at xc\pgf at x % = start_x + .1125 (middle_x - start_x)
+ \advance\pgf at yc-\pgf at y\pgf at yc.225\pgf at yc
+ \advance\pgf at yc\pgf at y % = start_y + .225 (middle_y - start_y)
+ \advance\pgf at xb\pgf at x\pgf at xb.5\pgf at xb % = .5 (middle_x + start_x) = start_x + .5 (middle_x - start_x)
+ \pgf at xa=\tikz at time pt%
+ \pgf at xa=2\pgf at xa % = 2 * \tikz at time
+ \edef\tikz at marshall{\noexpand\pgftransformcurveattime{\strip at pt\pgf at xa}{\noexpand\tikz at timer@start}%
+ {\noexpand\pgfqpoint{\the\pgf at xc}{\the\pgf at yc}}%
+ {\noexpand\pgfqpoint{\the\pgf at xb}{\the\pgf at yb}}%
+ {\noexpand\tikz at timer@middle}}%
+ \else % second part
+ \pgf at process{\tikz at timer@end}%
+ \pgf at xc\pgf at x
+ \pgf at xb\pgf at x
+ \pgf at yb\pgf at y
+ \pgf at process{\tikz at timer@middle}%
+ \advance\pgf at xc\pgf at x\pgf at xc.5\pgf at xc % = .5 (end_x + middle_x) = middle_x + .5 (end_x - middle_x)
+ \advance\pgf at xb-\pgf at x\pgf at xb.8875\pgf at xb
+ \advance\pgf at xb\pgf at x % = middle_x + .8875 (end_x - middle_x)
+ \advance\pgf at yb-\pgf at y\pgf at yb.775\pgf at yb
+ \advance\pgf at yb\pgf at y % = middle_y + .775 (end_y - middle_y)
+ \pgf at xa=\tikz at time pt%
+ \advance\pgf at xa-.5pt%
+ \pgf at xa=2\pgf at xa % = 2 (\tikz at zime - .5)
+ \edef\tikz at marshall{\noexpand\pgftransformcurveattime{\strip at pt\pgf at xa}{\noexpand\tikz at timer@middle}%
+ {\noexpand\pgfqpoint{\the\pgf at xc}{\the\pgf at y}}%
+ {\noexpand\pgfqpoint{\the\pgf at xb}{\the\pgf at yb}}%
+ {\noexpand\tikz at timer@end}}%
+ \fi
+ \tikz at marshall
+}
+
+\def\tikz at timer@sine{% following calculations, see \def of \pgfpathsine in pgfcorepathconstruct.code.tex (l. 1315)
+ \pgf at process{\tikz at timer@end}%
+ \pgf at xc\pgf at x\pgf at yc\pgf at y
+ \pgf at xb\pgf at x\pgf at yb\pgf at y
+ \pgf at process{\tikz at timer@start}%
+ \advance\pgf at xc-\pgf at x\pgf at xc.3260\pgf at xc
+ \advance\pgf at xc\pgf at x % = start_x + .3260 (end_x - start_x)
+ \advance\pgf at yc-\pgf at y\pgf at yc.5120\pgf at yc
+ \advance\pgf at yc\pgf at y % = start_y + .5120 (end_y - start_y)
+ \advance\pgf at xb-\pgf at x\pgf at xb.6380\pgf at xb % = start_x + .6380 (end_x - start_x)
+ \advance\pgf at xb\pgf at x
+ \edef\tikz at marshall{\noexpand\pgftransformcurveattime{\tikz at time}{\noexpand\tikz at timer@start}%
+ {\noexpand\pgfqpoint{\the\pgf at xc}{\the\pgf at yc}}%
+ {\noexpand\pgfqpoint{\the\pgf at xb}{\the\pgf at yb}}%
+ {\noexpand\tikz at timer@end}}%
+ \tikz at marshall
+}
+\def\tikz at timer@cosine{% following calculations, see \def of \pgfpathcosine in pgfcorepathconstruct.code.tex (l. 1345)
+ \pgf at process{\tikz at timer@end}%
+ \pgf at xc\pgf at x\pgf at yc\pgf at y
+ \pgf at xb\pgf at x\pgf at yb\pgf at y
+ \pgf at process{\tikz at timer@start}%
+ \advance\pgf at xb-\pgf at x\pgf at xb.6740\pgf at xb
+ \advance\pgf at xb\pgf at x % = start_x + .6740 (end_x - start_x)
+ \advance\pgf at yb-\pgf at y\pgf at yb.4880\pgf at yb
+ \advance\pgf at yb\pgf at y % = start_y + .4880 (end_y - start_y)
+ \advance\pgf at xc-\pgf at x\pgf at xc.3620\pgf at xc % = start_x + .3620 (end_x - start_x)
+ \advance\pgf at xc\pgf at x
+ \edef\tikz at marshall{\noexpand\pgftransformcurveattime{\tikz at time}{\noexpand\tikz at timer@start}%
+ {\noexpand\pgfqpoint{\the\pgf at xc}{\the\pgf at y}}%
+ {\noexpand\pgfqpoint{\the\pgf at xb}{\the\pgf at yb}}%
+ {\noexpand\tikz at timer@end}}%
+ \tikz at marshall
+}
+\endinput
\ No newline at end of file
Property changes on: trunk/Master/texmf-dist/tex/generic/tikz-ext/tikzlibraryext.paths.timer.code.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/generic/tikz-ext/tikzlibraryext.patterns.images.code.tex
===================================================================
--- trunk/Master/texmf-dist/tex/generic/tikz-ext/tikzlibraryext.patterns.images.code.tex (rev 0)
+++ trunk/Master/texmf-dist/tex/generic/tikz-ext/tikzlibraryext.patterns.images.code.tex 2022-11-03 21:03:19 UTC (rev 64920)
@@ -0,0 +1,60 @@
+% Copyright 2022 by Qrrbrbirlbel
+%
+% This file may be distributed and/or modified
+%
+% 1. under the LaTeX Project Public License and/or
+% 2. under the GNU Free Documentation License.
+%
+% This is the TikZ library patterns.images
+% Load with \usetikzlibrary{patterns.images}
+%
+% Macro:
+% - \pgfSetupImageAsPattern[<opt arguments for \pgfdeclareimage>]{<name>}{<path/file>}
+%
+% Keys are:
+% - use image as pattern=<name>
+% - image as pattern=<opt arguments for \pgftext>
+
+\def\pgfsetupimageaspattern{\pgfutil at ifnextchar[\tikzext at pgfsetupimageaspattern{\tikzext at pgfsetupimageaspattern[]}}
+\def\tikzext at pgfsetupimageaspattern[#1]#2#3{% #1 = options
+ % #2 = image name
+ % #3 = file name
+ \pgfdeclareimage[#1]{tikzext at pgf@iap@#2}{#3}%
+ \sbox\pgfutil at tempboxa{\pgfuseimage{tikzext at pgf@iap@#2}}%
+ \expandafter\edef\csname tikzext at pgf@iap@#2@\endcsname{{\the\wd\pgfutil at tempboxa}{\the\ht\pgfutil at tempboxa}}%
+}
+\tikzset{
+ image as pattern/name/.initial=,
+ image as pattern/option/.style=,
+ image as pattern/options/.style={/tikz/image as pattern/option/.append style={#1}},
+ image as pattern/.default=,
+ image as pattern/.code={
+ \pgfqkeys{/tikz/image as pattern}{#1}%
+ \pgfkeysgetvalue{/tikz/image as pattern/name}\tikz at temp
+ \pgfutil at ifxempty\tikz at temp{%
+ \tikzerror{You need to specify a name for the ``image-pattern'' to be used.}%
+ }{%
+ \edef\tikz at tempa{\expandafter\expandafter\expandafter\pgfutil at firstoftwo\csname tikzext at pgf@iap@\tikz at temp @\endcsname}%
+ \edef\tikz at tempb{\expandafter\expandafter\expandafter\pgfutil at secondoftwo\csname tikzext at pgf@iap@\tikz at temp @\endcsname}%
+ \pgfkeysalso{/tikz/path picture={%
+ \pgf at process{\pgfpointanchor{path picture bounding box}{north east}}%
+ \pgf at xa\pgf at x\pgf at ya\pgf at y
+ \pgf at process{\pgfpointanchor{path picture bounding box}{south west}}%
+ \pgf at xb\pgf at x\pgf at yb\pgf at y\pgf at yc\pgf at yb
+ \pgfutil at loop
+ {%
+ \pgfutil at loop
+ \expandafter\pgftext\expandafter[/tikz/image as pattern/option,at=\pgfqpoint{\pgf at xb}{\pgf at yb}]{\pgfuseimage{tikzext at pgf@iap@\tikz at temp}}%
+ \ifdim\pgf at yb<\pgf at ya
+ \advance\pgf at yb\tikz at tempb
+ \pgfutil at repeat
+ }%
+ \ifdim\pgf at xb<\pgf at xa
+ \advance\pgf at xb\tikz at tempa
+ \pgf at yb\pgf at yc
+ \pgfutil at repeat
+ }}%
+ }
+ }
+}
+\endinput
Property changes on: trunk/Master/texmf-dist/tex/generic/tikz-ext/tikzlibraryext.patterns.images.code.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/generic/tikz-ext/tikzlibraryext.positioning-plus.code.tex
===================================================================
--- trunk/Master/texmf-dist/tex/generic/tikz-ext/tikzlibraryext.positioning-plus.code.tex (rev 0)
+++ trunk/Master/texmf-dist/tex/generic/tikz-ext/tikzlibraryext.positioning-plus.code.tex 2022-11-03 21:03:19 UTC (rev 64920)
@@ -0,0 +1,262 @@
+% This is the TikZ library positioning-plus
+% Load with \usetikzlibrary{positioning-plus}
+%
+% This small library extends TikZ options like 'above', 'left' or 'below right'
+% so that they can be used with an optional prefixed factor seperated by ':' (colon)
+%
+% The option 'left=.5:of somenode' will place
+% a new node .5cm (default 'node distance' is '1cm and 1cm') left to (somenode).
+% The option 'above right=.2 and .7:of someothernode' will place
+% a new node .2cm above and .7cm right of (someothernode).
+%
+% Additional the options 'xshift*' and 'yshift*' add an additional shift
+% as a factor of 'node distance'
+% Inspired by http://tex.stackexchange.com/a/117610/16595
+
+\usetikzlibrary{positioning}
+\usetikzlibrary{fit}
+
+\pgfdeclaregenericanchor{corner south east}{%
+ \pgf at sh@reanchor{#1}{south}%
+ \pgf at ya\pgf at y
+ \pgf at process{\pgf at sh@reanchor{#1}{east}}%
+ \pgf at y\pgf at ya
+}
+\pgfdeclaregenericanchor{corner north east}{%
+ \pgf at sh@reanchor{#1}{north}%
+ \pgf at ya\pgf at y
+ \pgf at process{\pgf at sh@reanchor{#1}{east}}%
+ \pgf at y\pgf at ya
+}
+\pgfdeclaregenericanchor{corner south west}{%
+ \pgf at sh@reanchor{#1}{south}%
+ \pgf at ya\pgf at y
+ \pgf at process{\pgf at sh@reanchor{#1}{west}}%
+ \pgf at y\pgf at ya
+}
+\pgfdeclaregenericanchor{corner north west}{%
+ \pgf at sh@reanchor{#1}{north}%
+ \pgf at ya\pgf at y
+ \pgf at process{\pgf at sh@reanchor{#1}{west}}%
+ \pgf at y\pgf at ya
+}
+
+\tikzset{corner above left/.code=\tikz at lib@place at handle@{#1}{corner south east}{-1}{1}{corner north west}{0.707106781}}
+\tikzset{corner above right/.code=\tikz at lib@place at handle@{#1}{corner south west}{1}{1}{corner north east}{0.707106781}}
+\tikzset{corner below left/.code=\tikz at lib@place at handle@{#1}{corner north east}{-1}{-1}{corner south west}{0.707106781}}
+\tikzset{corner below right/.code=\tikz at lib@place at handle@{#1}{corner north west}{1}{-1}{corner south east}{0.707106781}}
+
+\tikzset{corner north left/.code =\tikz at lib@place at handle@{#1}{corner north east}{-1}{0}{corner north west}{1}}
+\tikzset{corner north right/.code=\tikz at lib@place at handle@{#1}{corner north west}{1}{0}{corner north east}{1}}
+\tikzset{corner south left/.code =\tikz at lib@place at handle@{#1}{corner south east}{-1}{0}{corner south west}{1}}
+\tikzset{corner south right/.code=\tikz at lib@place at handle@{#1}{corner south west}{1}{0}{corner south east}{1}}
+
+\tikzset{corner west above/.code =\tikz at lib@place at handle@{#1}{corner south west}{0}{1}{corner north west}{1}}
+\tikzset{corner west below/.code=\tikz at lib@place at handle@{#1}{corner north west}{0}{-1}{corner south west}{1}}
+\tikzset{corner east above/.code =\tikz at lib@place at handle@{#1}{corner south east}{0}{1}{corner north east}{1}}
+\tikzset{corner east below/.code=\tikz at lib@place at handle@{#1}{corner north east}{0}{-1}{corner south east}{1}}
+
+\tikzset{north left/.code =\tikz at lib@place at handle@{#1}{north east}{-1}{0}{north west}{1}}
+\tikzset{north right/.code=\tikz at lib@place at handle@{#1}{north west}{1}{0}{north east}{1}}
+\tikzset{south left/.code =\tikz at lib@place at handle@{#1}{south east}{-1}{0}{south west}{1}}
+\tikzset{south right/.code=\tikz at lib@place at handle@{#1}{south west}{1}{0}{south east}{1}}
+
+\tikzset{west above/.code =\tikz at lib@place at handle@{#1}{south west}{0}{1}{north west}{1}}
+\tikzset{west below/.code=\tikz at lib@place at handle@{#1}{north west}{0}{-1}{south west}{1}}
+\tikzset{east above/.code =\tikz at lib@place at handle@{#1}{south east}{0}{1}{north east}{1}}
+\tikzset{east below/.code=\tikz at lib@place at handle@{#1}{north east}{0}{-1}{south east}{1}}
+
+\newif\iftikzext at tikz@lib at place@postransform
+\tikzset{node distance transformation/.is if=tikzext at tikz@lib at place@postransform}
+\def\tikz at lib@place at handle@@#1#2#3#4{%
+ \pgfutil at in@{of }{#1}%
+ \ifpgfutil at in@
+ \tikz at lib@place at of#1\tikz at stop{#4}%
+ \else
+ \edef\tikz at lib@place at nums{#1}%
+ \fi
+ \ifx\tikz at lib@place at nums\pgfutil at empty
+ % Ok, nothing to do, we have set the anchor and we are happy...
+ \else
+ \expandafter\tikz at lib@place at parse@nums\expandafter{\tikz at lib@place at nums}%
+ \pgf at x=#2\pgf at x
+ \pgf at y=#3\pgf at y
+ \iftikzext at tikz@lib at place@postransform
+ \pgf at pos@transform{\pgf at x}{\pgf at y}% change from original
+ \fi
+ \edef\tikz at lib@pos at call{\noexpand\pgftransformshift{\noexpand\pgfqpoint{\the\pgf at x}{\the\pgf at y}}}%
+ \fi
+}
+
+\def\tikz at lib@place at handle@#1#2#3#4#5#6{%
+ \pgfutil at in@{:}{#1}%
+ \ifpgfutil at in@
+ \tikzext at lib@place at handle@#1\tikz at stop
+ \ifx\pgf at temp\pgfutil at empty
+ \let\pgf at temp\tikz at node@distance
+ \fi
+ \pgfmathsetmacro\pgf at tempa{(\pgf at tempa)*#4}%
+ \pgfmathsetmacro\pgf at tempb{(\pgf at tempb)*#3}%
+ \edef\pgf at marshal{\noexpand\tikz at lib@place at handle@{\pgf at temp}{#2}{\pgf at tempb}{\pgf at tempa}{#5}{#6}}%
+ \pgf at marshal
+ \else
+ \def\tikz at anchor{#2}%
+ \let\tikz at do@auto at anchor=\relax
+ \edef\tikz at temp{#1}%
+ \def\tikz at lib@place at single@factor{#6}%
+ \expandafter\tikz at lib@place at handle@@\expandafter{\tikz at temp}{#3}{#4}{#5}%
+ \fi
+}
+\def\tikzext at lib@place at handle@#1:#2\tikz at stop{%
+ \pgfutil at in@{and}{#1}%
+ \ifpgfutil at in@
+ \tikzext at lib@place at handle@@#1\tikz at stop
+ \else
+ \tikzext at lib@place at handle@@#1and#1\tikz at stop
+ \fi
+ \def\pgf at temp{#2}%
+}
+\def\tikzext at lib@place at handle@@#1and#2\tikz at stop{%
+ \def\pgf at tempa{#1}%
+ \def\pgf at tempb{#2}%
+}
+\def\tikzext at xyshift@starred#1#2#3{%
+ \edef\tikz at marshal{\noexpand\pgfutil at in@{and}{\tikz at node@distance}}%
+ \tikz at marshal
+ \ifpgfutil at in@
+ \expandafter\tikzext at lib@place at handle@@\tikz at node@distance\tikz at stop
+ \else
+ \let#3\tikz at node@distance
+ \fi
+ \pgfmathparse{(#1)*#3}%
+ \ifpgfmathunitsdeclared
+ \if#2x%
+ \pgftransformshift{\pgfqpoint{\pgfmathresult pt}{0pt}}%
+ \else
+ \pgftransformshift{\pgfqpoint{0pt}{\pgfmathresult pt}}%
+ \fi
+ \else
+ \ifx#2x%
+ \pgf at process{\pgfqpointxy{\pgfmathresult}{0}}%
+ \else
+ \pgf at process{\pgfqpointxy{0}{\pgfmathresult}}%
+ \fi
+ \pgftransformshift{\pgfqpoint{\pgf at x}{\pgf at y}}%
+ \fi}
+\tikzset{
+ xshift*/.code=\tikzext at xyshift@starred{#1}x\pgf at tempb,
+ yshift*/.code=\tikzext at xyshift@starred{#1}y\pgf at tempa
+}
+
+\def\pgfutil at firstofmany#1#2\pgf at stop{#1}
+\def\pgfutil at secondofmany#1#2\pgf at stop{#2}
+\def\tikz at lib@place at of@#1#2#3{%
+ \def\pgf at tempa{fit bounding box}%
+ \edef\pgf at temp{\expandafter\pgfutil at firstofmany#2\pgf at stop}
+ \if\pgf at temp(%
+ \tikz at lib@place at fit@scan{#2}{0}%
+ \else\if\pgf at temp|%
+ \expandafter\tikz at lib@place at fit@scan\expandafter{\pgfutil at secondofmany#2\pgf at stop}{1}%
+ \else\ifx\pgf at temp\tikz at activebar
+ \expandafter\tikz at lib@place at fit@scan\expandafter{\pgfutil at secondofmany#2\pgf at stop}{1}%
+ \else\if\pgf at temp-%
+ \expandafter\tikz at lib@place at fit@scan\expandafter{\pgfutil at secondofmany#2\pgf at stop}{2}%
+ \else\if\pgf at temp+%
+ \expandafter\tikz at lib@place at fit@scan\expandafter{\pgfutil at secondofmany#2\pgf at stop}{3}%
+ \else
+ \def\pgf at tempa{#2}%
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi
+ \expandafter\tikz at scan@one at point\expandafter\tikz at lib@place at remember\expandafter(\pgf at tempa)%
+ \iftikz at shapeborder%
+ % Ok, this is relative to a border.
+ \iftikz at lib@ignore at size%
+ \edef\tikz at node@at{\noexpand\pgfpointanchor{\tikz at shapeborder@name}{center}}%
+ \def\tikz at anchor{center}%
+ \else%
+ \edef\tikz at node@at{\noexpand\pgfpointanchor{\tikz at shapeborder@name}{#3}}%
+ \fi%
+ \fi%
+ \edef\tikz at lib@place at nums{#1}%
+}
+\def\tikz at lib@place at fit@scan#1#2{%
+ \pgf at xb=-16000pt\relax%
+ \pgf at xa=16000pt\relax%
+ \pgf at yb=-16000pt\relax%
+ \pgf at ya=16000pt\relax%
+ \if\pgfutil at firstofmany#1\pgf at stop(%
+ \tikz at lib@fit at scan#1\pgf at stop%
+ \else
+ \tikz at lib@fit at scan(#1)\pgf at stop
+ \fi
+ \ifdim\pgf at xa>\pgf at xa
+ % shouldn't happen
+ \else
+ \expandafter\def\csname pgf at sh@ns at fit bounding box\endcsname{rectangle}%
+ \expandafter\edef\csname pgf at sh@np at fit bounding box\endcsname{%
+ \def\noexpand\southwest{\noexpand\pgfqpoint{\the\pgf at xa}{\the\pgf at ya}}%
+ \def\noexpand\northeast{\noexpand\pgfqpoint{\the\pgf at xb}{\the\pgf at yb}}%
+ }%
+ \expandafter\def\csname pgf at sh@nt at fit bounding box\endcsname{{1}{0}{0}{1}{0pt}{0pt}}%
+ \expandafter\def\csname pgf at sh@pi at fit bounding box\expandafter\endcsname\expandafter{\pgfpictureid}%
+ \ifcase#2\relax
+ \or % 1 = vertical
+ \pgf at y=\pgf at yb%
+ \advance\pgf at y by-\pgf at ya%
+ \edef\pgf at marshal{\noexpand\pgfset{minimum height={\the\pgf at y-2*(\noexpand\pgfkeysvalueof{/pgf/outer ysep})}}}%
+ \pgf at marshal
+ \or % 2 = horizontal
+ \pgf at x=\pgf at xb%
+ \advance\pgf at x by-\pgf at xa%
+ \edef\pgf at marshal{\noexpand\pgfset{minimum width={\the\pgf at x-2*(\noexpand\pgfkeysvalueof{/pgf/outer xsep})}}}%
+ \pgf at marshal
+ \or % 3 = both directions
+ \pgf at y=\pgf at yb%
+ \advance\pgf at y by-\pgf at ya%
+ \pgf at x=\pgf at xb%
+ \advance\pgf at x by-\pgf at xa%
+ \edef\pgf at marshal{\noexpand\pgfset{minimum height={\the\pgf at y-2*(\noexpand\pgfkeysvalueof{/pgf/outer ysep})},minimum width={\the\pgf at x-2*(\noexpand\pgfkeysvalueof{/pgf/outer xsep})}}}%
+ \pgf at marshal
+ \fi
+ \fi
+}
+\tikzset{
+ fit bounding box/.code={\tikz at lib@place at fit@scan{#1}{0}},
+ span vertical/.code={\tikz at lib@place at fit@scan{#1}{1}},
+ span horizontal/.code={\tikz at lib@place at fit@scan{#1}{2}},
+ span/.code={\tikz at lib@place at fit@scan{#1}{3}}}
+
+\pgfmathdeclarefunction{x_node_dist}{0}{%
+ \begingroup
+ \edef\pgfmath at temp{\noexpand\pgfutil at in@{and}{\tikz at node@distance}}%
+ \pgfmath at temp\ifpgfutil at in@
+ \expandafter\tikzext at lib@place at handle@@\tikz at node@distance\tikz at stop
+ \else
+ \let\pgf at tempb\tikz at node@distance
+ \fi
+ \pgfmathparse{\pgf at tempb}%
+ \pgfmath at smuggleone\pgfmathresult
+ \endgroup
+}
+\pgfmathdeclarefunction{y_node_dist}{0}{%
+ \begingroup
+ \edef\pgfmath at temp{\noexpand\pgfutil at in@{and}{\tikz at node@distance}}%
+ \pgfmath at temp\ifpgfutil at in@
+ \expandafter\tikzext at lib@place at handle@@\tikz at node@distance\tikz at stop
+ \else
+ \let\pgf at tempa\tikz at node@distance
+ \fi
+ \pgfmathparse{\pgf at tempa}%
+ \pgfmath at smuggleone\pgfmathresult
+ \endgroup
+}
+%\tikzdeclarecoordinatesystem{node distance}{%
+% \tikz at cs@nd#1\tikz at stop}
+%\def\tikz at cs@nd#1,#2\tikz at stop{%
+% \def\tikzext at xyshift@starred at action##1{\pgftransformshift{##1}}%
+% \tikzext at xyshift@starred{#1}x\pgf at tempb
+% \tikzext at xyshift@starred{#2}y\pgf at tempa}
+\endinput
Property changes on: trunk/Master/texmf-dist/tex/generic/tikz-ext/tikzlibraryext.positioning-plus.code.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/generic/tikz-ext/tikzlibraryext.scalepicture.code.tex
===================================================================
--- trunk/Master/texmf-dist/tex/generic/tikz-ext/tikzlibraryext.scalepicture.code.tex (rev 0)
+++ trunk/Master/texmf-dist/tex/generic/tikz-ext/tikzlibraryext.scalepicture.code.tex 2022-11-03 21:03:19 UTC (rev 64920)
@@ -0,0 +1,194 @@
+% Copyright 2022 by Qrrbrbirlbel
+%
+% This file may be distributed and/or modified
+%
+% 1. under the LaTeX Project Public License and/or
+% 2. under the GNU Free Documentation License.
+%
+\def\tikzext at scalepicture@savepicturesize{%
+ \pgf at process{%
+ \pgfpointdiff
+ {\pgfpointanchor{current bounding box}{south west}}
+ {\pgfpointanchor{current bounding box}{north east}}}%
+ \immediate\write\pgfutil at auxout{%
+ \noexpand\expandafter\gdef
+ \noexpand\csname tikzext at scalepicture@\pgfpictureid\endcsname{{\the\pgf at x}{\the\pgf at y}}%
+ }%
+ \let\tikzext at scalepicture@savepicturesize\relax
+}
+
+\def\tikzext at scalepicture@width{%
+ \expandafter\expandafter\expandafter\pgfutil at firstoftwo
+ \csname tikzext at scalepicture@\pgfpictureid\endcsname
+}
+\def\tikzext at scalepicture@height{%
+ \expandafter\expandafter\expandafter\pgfutil at secondoftwo
+ \csname tikzext at scalepicture@\pgfpictureid\endcsname
+}
+
+\def\tikzextpicturewidth{%
+ \pgfutil at IfUndefined{tikzext at scalepicture@\pgfpictureid}{0pt}{\tikzext at scalepicture@width}}
+\def\tikzextpictureheight{%
+ \pgfutil at IfUndefined{tikzext at scalepicture@\pgfpictureid}{0pt}{\tikzext at scalepicture@height}}
+\tikzset{
+ save picture size/.style={execute at end picture=\tikzext at scalepicture@savepicturesize},
+ save picture size/.value forbidden,
+ %%% keep aspect ratio
+ %% width and height
+ minimum picture size/.code 2 args={%
+ \tikzset{save picture size}%
+ \pgfutil at IfUndefined{tikzext at scalepicture@\pgfpictureid}{}{%
+ \pgfmathsetlength\pgf at xa{#1}%
+ \pgfmathsetlength\pgf at ya{#2}%
+ \def\tikz at tempa{0}%
+ \def\tikz at temp{0}%
+ \ifdim\tikzext at scalepicture@width<\pgf at xa
+ \pgfmathsetmacro\tikz at tempa{\pgf at xa/\tikzext at scalepicture@width}%
+ \fi
+ \ifdim\tikzext at scalepicture@height<\pgf at ya
+ \pgfmathsetmacro\tikz at temp{\pgf at ya/\tikzext at scalepicture@height}%
+ \fi
+ \ifdim\tikz at tempa pt>\tikz at temp pt
+ \let\tikz at temp\tikz at tempa
+ \fi
+ \ifdim\tikz at temp pt>0pt
+ \tikzset{scale/.expand once=\tikz at temp}%
+ \fi
+ }%
+ },
+ maximum picture size/.code 2 args={%
+ \tikzset{save picture size}%
+ \pgfutil at IfUndefined{tikzext at scalepicture@\pgfpictureid}{}{%
+ \pgfmathsetlength\pgf at xa{#1}%
+ \pgfmathsetlength\pgf at ya{#2}%
+ \def\tikz at tempa{0}%
+ \def\tikz at temp{0}%
+ \ifdim\tikzext at scalepicture@width>\pgf at xa
+ \pgfmathsetmacro\tikz at tempa{\pgf at xa/\tikzext at scalepicture@width}%
+ \fi
+ \ifdim\tikzext at scalepicture@height>\pgf at ya
+ \pgfmathsetmacro\tikz at temp{\pgf at ya/\tikzext at scalepicture@height}%
+ \fi
+ \ifdim\tikz at tempa pt<\tikz at temp pt
+ \let\tikz at temp\tikz at tempa
+ \fi
+ \ifdim\tikz at temp pt>0pt
+ \tikzset{scale/.expand once=\tikz at temp}%
+ \fi
+ }%
+ },
+ %%% keep aspect ratio
+ %% width
+ picture width/.code={%
+ \tikzset{save picture size}%
+ \pgfutil at IfUndefined{tikzext at scalepicture@\pgfpictureid}{}{%
+ \tikzset{scale={(#1)/\tikzext at scalepicture@width}}%
+ }%
+ },
+ minimum picture width/.code={%
+ \tikzset{save picture size}%
+ \pgfutil at IfUndefined{tikzext at scalepicture@\pgfpictureid}{}{%
+ \pgfmathsetlength\pgf at xa{#1}%
+ \ifdim\tikzext at scalepicture@width<\pgf at xa
+ \tikzset{scale={\pgf at xa/\tikzext at scalepicture@width}}
+ \fi
+ }%
+ },
+ maximum picture width/.code={%
+ \tikzset{save picture size}%
+ \pgfutil at IfUndefined{tikzext at scalepicture@\pgfpictureid}{}{%
+ \pgfmathsetlength\pgf at xa{#1}%
+ \ifdim\tikzext at scalepicture@width>\pgf at xa
+ \tikzset{scale={\pgf at xa/\tikzext at scalepicture@width}}
+ \fi
+ }%
+ },
+ %%% xscale only
+ %% width
+ picture width*/.code={%
+ \tikzset{save picture size}%
+ \pgfutil at IfUndefined{tikzext at scalepicture@\pgfpictureid}{}{%
+ \tikzset{xscale={(#1)/\tikzext at scalepicture@width}}%
+ }%
+ },
+ minimum picture width*/.code={%
+ \tikzset{save picture size}%
+ \pgfutil at IfUndefined{tikzext at scalepicture@\pgfpictureid}{}{%
+ \pgfmathsetlength\pgf at xa{#1}%
+ \ifdim\tikzext at scalepicture@width<\pgf at xa
+ \tikzset{xscale={\pgf at xa/\tikzext at scalepicture@width}}
+ \fi
+ }%
+ },
+ maximum picture width*/.code={%
+ \tikzset{save picture size}%
+ \pgfutil at IfUndefined{tikzext at scalepicture@\pgfpictureid}{}{%
+ \pgfmathsetlength\pgf at xa{#1}%
+ \ifdim\tikzext at scalepicture@width>\pgf at xa
+ \tikzset{xscale={\pgf at xa/\tikzext at scalepicture@width}}
+ \fi
+ }%
+ },
+ %%% keep aspect ratio
+ %% height
+ picture height/.code={%
+ \tikzset{save picture size}%
+ \pgfutil at IfUndefined{tikzext at scalepicture@\pgfpictureid}{}{%
+ \tikzset{yscale={(#1)/\tikzext at scalepicture@height}}%
+ }%
+ },
+ minimum picture height/.code={%
+ \tikzset{save picture size}%
+ \pgfutil at IfUndefined{tikzext at scalepicture@\pgfpictureid}{}{%
+ \pgfmathsetlength\pgf at ya{#1}%
+ \ifdim\tikzext at scalepicture@height<\pgf at ya
+ \tikzset{scale={\pgf at ya/\tikzext at scalepicture@height}}
+ \fi
+ }%
+ },
+ maximum picture height/.code={%
+ \tikzset{save picture size}%
+ \pgfutil at IfUndefined{tikzext at scalepicture@\pgfpictureid}{}{%
+ \pgfmathsetlength\pgf at ya{#1}%
+ \ifdim\tikzext at scalepicture@height<\pgf at ya
+ \tikzset{scale={\pgf at ya/\tikzext at scalepicture@height}}
+ \fi
+ }%
+ },
+ %%% yscale only
+ %% height
+ picture height*/.code={%
+ \tikzset{save picture size}%
+ \pgfutil at IfUndefined{tikzext at scalepicture@\pgfpictureid}{}{%
+ \tikzset{yscale={(#1)/\tikzext at scalepicture@height}}%
+ }%
+ },
+ minimum picture height*/.code={%
+ \tikzset{save picture size}%
+ \pgfutil at IfUndefined{tikzext at scalepicture@\pgfpictureid}{}{%
+ \pgfmathsetlength\pgf at ya{#1}%
+ \ifdim\tikzext at scalepicture@height<\pgf at ya
+ \tikzset{yscale={\pgf at ya/\tikzext at scalepicture@height}}
+ \fi
+ }%
+ },
+ maximum picture height*/.code={%
+ \tikzset{save picture size}%
+ \pgfutil at IfUndefined{tikzext at scalepicture@\pgfpictureid}{}{%
+ \pgfmathsetlength\pgf at ya{#1}%
+ \ifdim\tikzext at scalepicture@height<\pgf at ya
+ \tikzset{yscale={\pgf at ya/\tikzext at scalepicture@height}}
+ \fi
+ }%
+ },
+ %%% xscale or yscale
+ picture size*/.code 2 args={% #1 = width, #2 = height
+ \tikzset{save picture size}%
+ \pgfutil at IfUndefined{tikzext at scalepicture@\pgfpictureid}{}{%
+ \tikzset{
+ xscale={(#1)/\tikzext at scalepicture@width},
+ yscale={(#2)/\tikzext at scalepicture@height}}%
+ }%
+ },
+}
+\endinput
\ No newline at end of file
Property changes on: trunk/Master/texmf-dist/tex/generic/tikz-ext/tikzlibraryext.scalepicture.code.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/generic/tikz-ext/tikzlibraryext.topaths.arcthrough.code.tex
===================================================================
--- trunk/Master/texmf-dist/tex/generic/tikz-ext/tikzlibraryext.topaths.arcthrough.code.tex (rev 0)
+++ trunk/Master/texmf-dist/tex/generic/tikz-ext/tikzlibraryext.topaths.arcthrough.code.tex 2022-11-03 21:03:19 UTC (rev 64920)
@@ -0,0 +1,50 @@
+% Copyright 2022 by Qrrbrbirlbel
+%
+% This file may be distributed and/or modified
+%
+% 1. under the LaTeX Project Public License and/or
+% 2. under the GNU Free Documentation License.
+%
+
+\pgfqkeys{/tikz/arc through}{
+ .unknown/.code=\pgfkeyssetevalue{/tikz/arc through/through}{\pgfkeyscurrentname},
+ through/.initial={(0,0)},
+ center suffix/.initial=,
+ clockwise/.code=%
+ \def\tikz at arcthrough@clockwise{%
+ \pgfmathsubtract@{\pgfkeysvalueof{/tikz/end angle}}{360}%
+ \pgfkeyssetevalue{/tikz/end angle}{+\pgfmathresult}},
+ counter clockwise/.code=\let\tikz at arcthrough@clockwise\relax,
+ clockwise/.value forbidden, counter clockwise/.value forbidden, counter clockwise}
+\tikzset{
+ arc through/.code={%
+ \tikzset{every arc through/.try}%
+ \pgfqkeys{/tikz/arc through}{#1}%
+ \pgfkeysgetvalue{/tikz/arc through/through}\tikz at temp
+ \pgfextract at process\pgf at tostart{\tikz at scan@one at point\pgfutil at firstofone(\tikztostart)\relax}%
+ \expandafter\pgfextract at process\expandafter\pgf at tothrough\expandafter
+ {\expandafter\tikz at scan@one at point\expandafter\pgfutil at firstofone\tikz at temp\relax}%
+ \pgfextract at process\pgf at totarget{\tikz at scan@one at point\pgfutil at firstofone(\tikztotarget)\relax}%
+ \pgfextract at process\pgf at topointMidA{\pgfpointlineattime{.5}{\pgf at tostart}{\pgf at tothrough}}%
+ \pgfextract at process\pgf at topointMidB{\pgfpointlineattime{.5}{\pgf at totarget}{\pgf at tothrough}}%
+ \pgfextract at process\pgf at tocenter{%
+ \pgfpointintersectionoflines
+ {\pgf at topointMidA}{\pgfmathrotatepointaround{\pgf at tothrough}{\pgf at topointMidA}{90}}%
+ {\pgf at topointMidB}{\pgfmathrotatepointaround{\pgf at tothrough}{\pgf at topointMidB}{90}}}%
+ \pgfcoordinate{arc through center\pgfkeysvalueof{/tikz/arc through/center suffix}}{\pgf at tocenter}%
+ \pgfpointdiff{\pgf at tocenter}{\pgf at tostart}%
+ \pgfmathveclen@{\pgfmath at tonumber\pgf at x}{\pgfmath at tonumber\pgf at y}%
+ \pgfkeyssetevalue{/tikz/x radius}{+\pgfmathresult pt}%
+ \pgfkeyssetevalue{/tikz/y radius}{+\pgfmathresult pt}%
+ \pgfmathanglebetweenpoints{\pgf at tocenter}{\pgf at totarget}%
+ \pgfkeyssetevalue{/tikz/end angle}{+\pgfmathresult}%
+ \pgfmathanglebetweenpoints{\pgf at tocenter}{\pgf at tostart}%
+ \ifdim\pgfmathresult pt>\pgfkeysvalueof{/tikz/end angle}pt\relax
+ \pgfmathsubtract@{\pgfmathresult}{360}%
+ \fi
+ \pgfkeyssetevalue{/tikz/start angle}{+\pgfmathresult}%
+ \tikz at arcthrough@clockwise
+ \pgfkeyslet{/tikz/delta angle}\pgfutil at empty
+ \def\tikz at to@path{arc[]\tikztonodes}%
+ }%
+}
Property changes on: trunk/Master/texmf-dist/tex/generic/tikz-ext/tikzlibraryext.topaths.arcthrough.code.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/generic/tikz-ext/tikzlibraryext.transformations.mirror.code.tex
===================================================================
--- trunk/Master/texmf-dist/tex/generic/tikz-ext/tikzlibraryext.transformations.mirror.code.tex (rev 0)
+++ trunk/Master/texmf-dist/tex/generic/tikz-ext/tikzlibraryext.transformations.mirror.code.tex 2022-11-03 21:03:19 UTC (rev 64920)
@@ -0,0 +1,130 @@
+% Copyright 2022 by Qrrbrbirlbel
+%
+% This file may be distributed and/or modified
+%
+% 1. under the LaTeX Project Public License and/or
+% 2. under the GNU Free Documentation License.
+%
+\usepgflibrary{ext.transformations.mirror}
+\tikzset{
+ mirror/.code={%
+ \pgfutil at in@{--}{#1}%
+ \ifpgfutil at in@
+ \tikzext at trans@mirror#1\tikz at stop
+ \else
+ \tikz at addtransform{\tikz at scan@one at point\pgfqtransformmirror#1\relax}%
+ \fi},
+ ymirror/.code={\pgfutil at ifnextchar(\tikzext at trans@ymirror at coordinate\tikzext at trans@ymirror at simple#1\tikz at stop},
+ xmirror/.code={\pgfutil at ifnextchar(\tikzext at trans@xmirror at coordinate\tikzext at trans@xmirror at simple#1\tikz at stop},
+ mirror x/.code={%
+ \pgfextract at process\tikz at temp{\tikz at scan@one at point\pgfutil at firstofone#1\relax}%
+ \edef\tikz at marshal{%
+ \noexpand\tikz at addtransform{%
+ \noexpand\pgftransformmirror
+ {\expandafter\noexpand\tikz at temp}
+ {\noexpand\pgfpointadd{\expandafter\noexpand\tikz at temp}
+ {\noexpand\pgfqpointxy{0}{1}}}}}%
+ \tikz at marshal
+ },
+ mirror y/.code={%
+ \pgfextract at process\tikz at temp{\tikz at scan@one at point\pgfutil at firstofone#1\relax}%
+ \edef\tikz at marshal{%
+ \noexpand\tikz at addtransform{%
+ \noexpand\pgftransformmirror
+ {\expandafter\noexpand\tikz at temp}
+ {\noexpand\pgfpointadd{\expandafter\noexpand\tikz at temp}
+ {\noexpand\pgfqpointxy{1}{0}}}}}%
+ \tikz at marshal
+ },
+ mirror/.value required,
+ ymirror/.default=+0pt,
+ xmirror/.default=+0pt,
+ mirror x/.default={(0,0)},
+ mirror y/.default={(0,0)}%
+}
+\def\tikzext at trans@mirror#1--#2\tikz at stop{%
+ \tikz at addtransform{%
+ \pgftransformmirror{\tikz at scan@one at point\pgfutil at firstofone#1\relax}
+ {\tikz at scan@one at point\pgfutil at firstofone#2\relax}}}
+\def\tikzext at trans@xmirror at simple#1\tikz at stop{\tikz at addtransform{\pgftransformxmirror{#1}}}
+\def\tikzext at trans@ymirror at simple#1\tikz at stop{\tikz at addtransform{\pgftransformymirror{#1}}}
+\def\tikzext at trans@xmirror at coordinate#1\tikz at stop{%
+ \tikz at scan@one at point\pgfutil at firstofone#1\relax
+ \edef\tikz at marshal{%
+ \noexpand\tikz at addtransform{%
+ \noexpand\pgftransformxmirror{+\the\pgf at x}%
+ }%
+ }%
+ \tikz at marshal
+}
+\def\tikzext at trans@ymirror at coordinate#1\tikz at stop{%
+ \tikz at scan@one at point\pgfutil at firstofone#1\relax
+ \edef\tikz at marshal{%
+ \noexpand\tikz at addtransform{%
+ \noexpand\pgftransformymirror{+\the\pgf at y}%
+ }%
+ }%
+ \tikz at marshal
+}
+
+\tikzset{
+ Mirror/.code={%
+ \pgfutil at in@{--}{#1}%
+ \ifpgfutil at in@
+ \tikzext at trans@Mirror#1\tikz at stop
+ \else
+ \tikz at addtransform{\tikz at scan@one at point\pgfqtransformMirror#1\relax}%
+ \fi},
+ yMirror/.code={\pgfutil at ifnextchar(\tikzext at trans@yMirror at coordinate\tikzext at trans@yMirror at simple#1\tikz at stop},
+ xMirror/.code={\pgfutil at ifnextchar(\tikzext at trans@xMirror at coordinate\tikzext at trans@xMirror at simple#1\tikz at stop},
+ Mirror x/.code={%
+ \pgfextract at process\tikz at temp{\tikz at scan@one at point\pgfutil at firstofone#1\relax}%
+ \edef\tikz at marshal{%
+ \noexpand\tikz at addtransform{%
+ \noexpand\pgftransformMirror
+ {\expandafter\noexpand\tikz at temp}
+ {\noexpand\pgfpointadd{\expandafter\noexpand\tikz at temp}
+ {\noexpand\pgfqpointxy{0}{1}}}}}%
+ \tikz at marshal
+ },
+ Mirror y/.code={%
+ \pgfextract at process\tikz at temp{\tikz at scan@one at point\pgfutil at firstofone#1\relax}%
+ \edef\tikz at marshal{%
+ \noexpand\tikz at addtransform{%
+ \noexpand\pgftransformMirror
+ {\expandafter\noexpand\tikz at temp}
+ {\noexpand\pgfpointadd{\expandafter\noexpand\tikz at temp}
+ {\noexpand\pgfqpointxy{1}{0}}}}}%
+ \tikz at marshal
+ },
+ Mirror/.value required,
+ yMirror/.default=+0pt,
+ xMirror/.default=+0pt,
+ Mirror x/.default={(0,0)},
+ Mirror y/.default={(0,0)}%
+}
+\def\tikzext at trans@Mirror#1--#2\tikz at stop{%
+ \tikz at addtransform{%
+ \pgftransformMirror{\tikz at scan@one at point\pgfutil at firstofone#1\relax}
+ {\tikz at scan@one at point\pgfutil at firstofone#2\relax}}}
+\def\tikzext at trans@xMirror at simple#1\tikz at stop{\tikz at addtransform{\pgftransformxMirror{#1}}}
+\def\tikzext at trans@yMirror at simple#1\tikz at stop{\tikz at addtransform{\pgftransformyMirror{#1}}}
+\def\tikzext at trans@xMirror at coordinate#1\tikz at stop{%
+ \tikz at scan@one at point\pgfutil at firstofone#1\relax
+ \edef\tikz at marshal{%
+ \noexpand\tikz at addtransform{%
+ \noexpand\pgftransformxMirror{+\the\pgf at x}%
+ }%
+ }%
+ \tikz at marshal
+}
+\def\tikzext at trans@yMirror at coordinate#1\tikz at stop{%
+ \tikz at scan@one at point\pgfutil at firstofone#1\relax
+ \edef\tikz at marshal{%
+ \noexpand\tikz at addtransform{%
+ \noexpand\pgftransformyMirror{+\the\pgf at y}%
+ }%
+ }%
+ \tikz at marshal
+}
+\endinput
Property changes on: trunk/Master/texmf-dist/tex/generic/tikz-ext/tikzlibraryext.transformations.mirror.code.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Deleted: trunk/Master/texmf-dist/tex/latex/tikz-ext/pgfcalendar-ext.code.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tikz-ext/pgfcalendar-ext.code.tex 2022-11-03 20:29:02 UTC (rev 64919)
+++ trunk/Master/texmf-dist/tex/latex/tikz-ext/pgfcalendar-ext.code.tex 2022-11-03 21:03:19 UTC (rev 64920)
@@ -1,370 +0,0 @@
-% Copyright 2022 by Qrrbrbirlbel
-%
-% This file may be distributed and/or modified
-%
-% 1. under the LaTeX Project Public License and/or
-% 2. under the GNU Free Documentation License.
-%
-\pgfqkeys{/pgf/calendar}{
- style/.style={#1},
- yesterday/.value required,
- yesterday/.code={%
- \begingroup
- \pgfutil at tempcnta=\pgfcalendarifdatejulian\relax
- \advance\pgfutil at tempcnta by -1\relax
- \pgfcalendarjuliantodate{\pgfutil at tempcnta}{\pgfcalendarifdateyear}{\pgfcalendarifdatemonth}{\pgfcalendarifdateday}%
- \edef\pgfcalendarifdatejulian{\the\pgfutil at tempcnta}%
- \pgfcalendarjuliantoweekday\pgfutil at tempcnta\pgfutil at tempcntb
- \edef\pgfcalendarifdateweekday{\the\pgfutil at tempcntb}%
- \pgfcalendarjulianyeartoweek\pgfutil at tempcnta\pgfcalendarifdateyear\pgfutil at tempcntb
- \edef\pgfcalendarifdateweek{\the\pgfutil at tempcntb}%
- \pgfcalendar at launch@ifdate{#1}{%
- \def\pgf at cal@temp{\pgfcalendarmatchestrue}%
- }{%
- \let\pgf at cal@temp\pgfutil at empty
- }%
- \expandafter
- \endgroup\pgf at cal@temp
- },
- relative/.code 2 args={%
- \begingroup
- \pgfutil at tempcnta=\pgfcalendarifdatejulian\relax
- \advance\pgfutil at tempcnta by #1\relax
- \pgfcalendarjuliantodate{\pgfutil at tempcnta}{\pgfcalendarifdateyear}{\pgfcalendarifdatemonth}{\pgfcalendarifdateday}%
- \edef\pgfcalendarifdatejulian{\the\pgfutil at tempcnta}%
- \pgfcalendarjuliantoweekday\pgfutil at tempcnta\pgfutil at tempcntb
- \edef\pgfcalendarifdateweekday{\the\pgfutil at tempcntb}%
- \pgfcalendarjulianyeartoweek\pgfutil at tempcnta\pgfcalendarifdateyear\pgfutil at tempcntb
- \edef\pgfcalendarifdateweek{\the\pgfutil at tempcntb}%
- \pgfcalendar at launch@ifdate{#2}{%
- \def\pgf at cal@temp{\pgfcalendarmatchestrue}%
- }{%
- \let\pgf at cal@temp\pgfutil at empty
- }%
- \expandafter
- \endgroup\pgf at cal@temp
- },
- Jan/.code={\ifnum\pgfcalendarifdatemonth=1 \expandafter\pgfcalendarmatchestrue\fi},Jan/.value forbidden,
- Feb/.code={\ifnum\pgfcalendarifdatemonth=2 \expandafter\pgfcalendarmatchestrue\fi},Feb/.value forbidden,
- Mar/.code={\ifnum\pgfcalendarifdatemonth=3 \expandafter\pgfcalendarmatchestrue\fi},Mar/.value forbidden,
- Apr/.code={\ifnum\pgfcalendarifdatemonth=4 \expandafter\pgfcalendarmatchestrue\fi},Apr/.value forbidden,
- May/.code={\ifnum\pgfcalendarifdatemonth=5 \expandafter\pgfcalendarmatchestrue\fi},May/.value forbidden,
- Jun/.code={\ifnum\pgfcalendarifdatemonth=6 \expandafter\pgfcalendarmatchestrue\fi},Jun/.value forbidden,
- Jul/.code={\ifnum\pgfcalendarifdatemonth=7 \expandafter\pgfcalendarmatchestrue\fi},Jul/.value forbidden,
- Aug/.code={\ifnum\pgfcalendarifdatemonth=8 \expandafter\pgfcalendarmatchestrue\fi},Aug/.value forbidden,
- Sep/.code={\ifnum\pgfcalendarifdatemonth=9 \expandafter\pgfcalendarmatchestrue\fi},Sep/.value forbidden,
- Oct/.code={\ifnum\pgfcalendarifdatemonth=10 \expandafter\pgfcalendarmatchestrue\fi},Oct/.value forbidden,
- Nov/.code={\ifnum\pgfcalendarifdatemonth=11 \expandafter\pgfcalendarmatchestrue\fi},Nov/.value forbidden,
- Dec/.code={\ifnum\pgfcalendarifdatemonth=12 \expandafter\pgfcalendarmatchestrue\fi},Dec/.value forbidden,
- %
- leap year/.code={%
- \pgfutil at tempcnta=#1\relax
- \divide\pgfutil at tempcnta4
- \multiply\pgfutil at tempcnta4
- \ifnum\pgfutil at tempcnta=#1\relax
- \divide\pgfutil at tempcnta100
- \multiply\pgfutil at tempcnta100
- \ifnum\pgfutil at tempcnta=#1\relax
- \divide\pgfutil at tempcnta400
- \multiply\pgfutil at tempcnta400
- \ifnum\pgfutil at tempcnta=#1\relax
- \pgfcalendarmatchestrue
- \fi
- \else
- \pgfcalendarmatchestrue
- \fi
- \fi},
- leap year/.default=\pgfcalendarifdateyear,
- between days/.value required,
- between days/.code args={#1and#2}{%
- \pgfutil at tempcnta=#1\relax
- \ifnum\pgfcalendarifdateday<\pgfutil at tempcnta\else
- \pgfutil at tempcnta=#2\relax
- \ifnum\pgfcalendarifdateday>\pgfutil at tempcnta\else
- \pgfcalendarmatchestrue\fi\fi},
- week of month/.code={%
- \pgfutil at tempcnta=#1\relax
- \multiply\pgfutil at tempcnta7
- \ifnum\pgfcalendarifdateday>\pgfutil at tempcnta\else
- \advance\pgfutil at tempcnta-7
- \ifnum\pgfcalendarifdateday>\pgfutil at tempcnta
- \pgfcalendarmatchestrue
- \fi
- \fi},
- week of month'/.code={%
- \pgfcalendar at getlastYMX\pgfcalendarifdateyear\pgfcalendarifdatemonth\pgfutil at tempcnta
- \advance\pgfutil at tempcnta1
- \pgfutil at tempcntb=#1\relax
- \multiply\pgfutil at tempcntb7
- \advance\pgfutil at tempcnta-\pgfutil at tempcntb
- \ifnum\pgfcalendarifdateday<\pgfutil at tempcnta\else
- \advance\pgfutil at tempcnta+7
- \ifnum\pgfcalendarifdateday<\pgfutil at tempcnta
- \pgfcalendarmatchestrue
- \fi
- \fi},
- first/.code={\pgfutil at in@:{#1}\ifpgfutil at in@
- \pgfcalendar at ifdate@first{}#1\pgf at stop\else
- \pgfcalendar at ifdate@first{}1:#1\pgf at stop\fi},
- last/.code={\pgfutil at in@:{#1}\ifpgfutil at in@
- \pgfcalendar at ifdate@first'#1\pgf at stop\else
- \pgfcalendar at ifdate@first'1:#1\pgf at stop\fi},
- % logic
- not/.value required,
- not/.code=%
- \begingroup
- \let\pgf at cal@tempa\pgfutil at empty
- \pgfcalendar at launch@ifdate{#1}{}{\def\pgf at cal@tempa{\pgfcalendarmatchestrue}}%
- \expandafter\endgroup\pgf at cal@tempa,
- and/.value required,
- and/.code=% and = {<cond 1>, <cond 2>, <cond 3>, …}
- \begingroup
- \pgfcalendarmatchestrue
- \pgfqkeys{/pgf/calendar/and}{#1}%
- \ifpgfcalendarmatches % is it still true?
- \expandafter\pgfutil at firstoftwo
- \else
- \expandafter\pgfutil at secondoftwo
- \fi
- {\def\pgf at cal@temp{\pgfcalendarmatchestrue}}%
- {\let\pgf at cal@temp\pgfutil at empty}%
- \expandafter\endgroup\pgf at cal@temp,
- and/.unknown/.code=% only inside the group of and/.code
- \ifpgfcalendarmatches
- \expandafter\pgfutil at firstofone
- \else
- \expandafter\pgfutil at gobble
- \fi
- {%
- \begingroup
- \pgfcalendar at launch@ifdate{\pgfkeyscurrentname={#1}}%
- {\let\pgf at cal@temp\pgfutil at empty}{\def\pgf at cal@temp{\pgfcalendarmatchesfalse}}
- \expandafter\endgroup\pgf at cal@temp
- },%
- calendar week of month/.default=1,
- calendar week of month'/.default=1,
- calendar week of month/.code={%
- \begingroup
- \pgfutil at tempcnta=\pgfcalendarifdateday\relax
- \advance\pgfutil at tempcnta by 5
- \advance\pgfutil at tempcnta by -\pgfcalendarifdateweekday\relax
- \divide\pgfutil at tempcnta by 7
- \advance\pgfutil at tempcnta by -#1\relax
- \expandafter\endgroup\expandafter
- \ifnum\the\pgfutil at tempcnta=-1
- \pgfcalendarmatchestrue
- \fi},
- calendar week of month'/.code={%
- \begingroup
- \pgfcalendar at getlastYMX\pgfcalendarifdateyear\pgfcalendarifdatemonth\pgfutil at tempcnta
- \advance\pgfutil at tempcnta by -\pgfcalendarifdateday\relax
- \edef\pgfcalendarifdateday{\the\pgfutil at tempcnta}%
- \pgfutil at tempcnta=-\pgfcalendarifdateweekday\relax
- \advance\pgfutil at tempcnta by 5
- \edef\pgfcalendarifdateweekday{\the\pgfutil at tempcnta}%
- \let\pgf at cal@temp\pgfutil at empty
- \pgfcalendar at launch@ifdate{calendar week of month={#1}}{\def\pgf at cal@temp{\pgfcalendarmatchestrue}}{}%
- \expandafter\endgroup\pgf at cal@temp}}
-
-\def\pgfcalendar at ifdate@first#1#2:#3\pgf at stop{%
- \pgfqkeys{/pgf/calendar}{and={#3, week of month#1={#2}}}}
-\def\pgfcalendar at getlastYMX#1#2#3{% #1 = year, #2 = month, #3 := last day
- \begingroup
- \ifnum#2=2 % stupid February
- \pgfcalendarmatchesfalse
- \pgfqkeys{/pgf/calendar}{leap year={#1}}%
- \ifpgfcalendarmatches
- #3=29
- \else
- #3=28
- \fi
- \else
- #3=\ifcase#2\relax\or
- 31\or\or31\or30\or31\or30\or31\or31\or30\or31\or30\or31\fi
- \fi
- \edef\pgf at cal@temp{#3=\the#3\relax}
- \expandafter
- \endgroup\pgf at cal@temp}
-
-%
-% weeks
-%
-\def\pgfcalendar at week@setup#1{%
- \pgfutil at IfUndefined{pgfcalendar at week@#1}{%
- \begingroup
- \pgfcalendardatetojulian{#1-01-01}\pgfutil at tempcnta
- \pgfcalendarjuliantoweekday\pgfutil at tempcnta\pgfutil at tempcntb
- %
- % tempcnta holds the julian number for first day of the current year
- % tempcntb holds the weekday for the first day of the current year
- %
- % set tempcnta to the Monday of the week with first day of current year
- \advance\pgfutil at tempcnta by -\pgfutil at tempcntb
- %
- % if the first week starts at Fri, Sat or Sun, next week is the 1st week
- \ifnum\pgfutil at tempcntb>3\relax
- \advance\pgfutil at tempcnta by 7\relax
- \fi
- % setup macro for year with {Julian number for day of first week}{weekday of -01-01}
- \expandafter\xdef\csname pgfcalendar at week@#1\endcsname{{\the\pgfutil at tempcnta}{\the\pgfutil at tempcntb}}%
- \endgroup
- }{}%
-}
-
-\def\pgfcalendarjulianyeartoweek#1#2#3{\pgfcalendarjulianyeartoweek@{#1}{#2}{#3}{\iftrue}}
-\def\pgfcalendarjulianyeartoweek@#1#2#3#4{%
- % #1 = julian date (count)
- % #2 = year
- % #3 = count that holds the week at the end
- % #4 = \iftrue or \iffalse: whether week 53 needs to be checked (\iffalse when determing week from next year)
- \begingroup
- \pgfcalendar at week@setup{#2}%
- #3=#1\relax
- %
- % calculate difference of days between current date and start of week 1
- %
- \advance#3 by -\expandafter\expandafter\expandafter\pgfutil at firstoftwo\csname pgfcalendar at week@#2\endcsname\relax
- \ifnum#3<0\relax % whoops, we are in the week of the previous year
- \expandafter\pgfutil at firstoftwo
- \else
- \expandafter\pgfutil at secondoftwo
- \fi
- {% if first day of the year is Fri, Sat or Sun
- \ifnum\expandafter\expandafter\expandafter\pgfutil at secondoftwo\csname pgfcalendar at week@#2\endcsname>3\relax
- \expandafter\pgfutil at firstoftwo
- \else
- \expandafter\pgfutil at secondoftwo
- \fi
- {% we need to check the week of the previous year
- #3=#2\relax
- \advance#3 by -1
- \edef\pgf at cal@temp{\noexpand\pgfcalendarjulianyeartoweek@{#1}{\the#3}{#3}\noexpand\iffalse}%
- \pgf at cal@temp
- }{% yeah, it's weird
- \divide#3 by 7
- \advance#3 by 1
- }%
- }{%
- \divide#3 by 7
- \advance#3 by 1
- #4%
- \expandafter\pgfutil at firstofone
- \else
- \expandafter\pgfutil at gobble
- \fi
- {%
- \ifnum#3=53\relax % whoops, we are possibly in the first week of the next year
- \expandafter\pgfutil at firstofone
- \else
- \expandafter\pgfutil at gobble
- \fi
- {%
- \begingroup
- % check whether we're already in week 1 of the next year
- #3=#2\relax
- \advance#3 by 1
- \expandafter\pgfcalendar at week@setup\expandafter{\the#3}%
- \ifnum#1<\expandafter\expandafter\expandafter\pgfutil at firstoftwo\csname pgfcalendar at week@\the#3\endcsname\relax
- #3=53
- \else
- #3=1
- \fi
- \expandafter
- \endgroup\expandafter#3\the#3\relax
- }%
- }%
- }%
- \expandafter
- \endgroup\expandafter
- #3\the#3\relax
-}
-
-%
-% shorthands for weeks (n)
-%
-% n-: shortest
-% n=: shortest but prepends whitespace
-% n0: leading zero
-%
-\expandafter\def\csname pgfcalendar at shorthand@n-\endcsname{%
- \if0\pgfcalendarcurrentweek\else\pgfcalendarcurrentweek\fi}
-\expandafter\def\csname pgfcalendar at shorthand@n=\endcsname{%
- {\pgfutil at tempcnta=\pgfcalendarcurrentweek\relax\ifnum\pgfutil at tempcnta<10\relax\setbox0=\hbox{1}\kern\wd0\relax\fi\the\pgfutil at tempcnta}}
-\expandafter\def\csname pgfcalendar at shorthand@n0\endcsname{%
- \pgfcalendarcurrentweek}
-
-%
-% Overwriting original \pgfcalendar
-%
-\long\def\pgfcalendar#1#2#3#4{%
- \begingroup%
- % Setup local \ifdate
- \let\ifdate=\pgfcalendar at local@ifdate%
- % Let's start with computing start and end dates...
- \def\pgfcalendarprefix{#1}%
- \pgfcalendardatetojulian{#2}{\pgfcalendarcurrentjulian}%
- \edef\pgfcalendarbeginjulian{\the\pgfcalendarcurrentjulian}%
- \edef\pgfcalendarbeginiso{#2}%
- \pgfcalendardatetojulian{#3}{\pgfutil at tempcnta}%
- \edef\pgfcalendarendjulian{\the\pgfutil at tempcnta}%
- \advance\pgfutil at tempcnta by1\relax%
- \edef\pgfcalendarendjulianplus{\the\pgfutil at tempcnta}%
- \edef\pgfcalendarendiso{#3}%
- %
- % Start main loop
- %
- \loop%
- \ifnum\pgfcalendarcurrentjulian<\pgfcalendarendjulianplus\relax%
- % Setup information about current date
- \pgfcalendarjuliantodate{\pgfcalendarcurrentjulian}%
- {\pgfcalendarcurrentyear}{\pgfcalendarcurrentmonth}{\pgfcalendarcurrentday}%
- \pgfcalendarjuliantoweekday{\pgfcalendarcurrentjulian}{\pgfutil at tempcntb}%
- \edef\pgfcalendarcurrentweekday{\the\pgfutil at tempcntb}%
- \pgfcalendarjulianyeartoweek{\pgfcalendarcurrentjulian}{\pgfcalendarcurrentyear}{\pgfutil at tempcntb}%
- \edef\pgfcalendarcurrentweek{\ifnum\pgfutil at tempcntb<10 0\fi\the\pgfutil at tempcntb}%
- % Render:
- #4%
- % Advance day:
- \advance\pgfcalendarcurrentjulian by1\relax%
- \repeat%
- \endgroup%
-}
-
-%
-% Overwriting original \pgfcalendar at local@ifdate
-%
-\def\pgfcalendar at local@ifdate{%
- \let\pgfcalendarifdatejulian=\pgfcalendarcurrentjulian
- \let\pgfcalendarifdateyear=\pgfcalendarcurrentyear
- \let\pgfcalendarifdatemonth=\pgfcalendarcurrentmonth
- \let\pgfcalendarifdateday=\pgfcalendarcurrentday
- \let\pgfcalendarifdateweekday=\pgfcalendarcurrentweekday
- \let\pgfcalendarifdateweek=\pgfcalendarcurrentweek
- \pgfcalendar at launch@ifdate%
-}
-%
-% Overwritigin original \pgfcalendarifdate
-%
-\def\pgfcalendarifdate#1#2#3#4{%
- \pgfcalendardatetojulian{#1}{\pgfutil at tempcnta}%
- \pgfcalendarjuliantodate{\pgfutil at tempcnta}
- {\pgfcalendarifdateyear}{\pgfcalendarifdatemonth}{\pgfcalendarifdateday}%
- \edef\pgfcalendarifdatejulian{\the\pgfutil at tempcnta}%
- % Compute info about date
- \pgfcalendarjuliantoweekday{\pgfutil at tempcnta}{\pgfutil at tempcntb}%
- \edef\pgfcalendarifdateweekday{\the\pgfutil at tempcntb}%
- \pgfcalendarjulianyeartoweek{\pgfcalendarifdatejulian}{\pgfcalendarifdateyear}{\pgfutil at tempcntb}%
- \edef\pgfcalendarifdateweek{\ifnum\pgfutil at tempcntb<10 0\fi\the\pgfutil at tempcntb}%
- %
- \pgfcalendar at launch@ifdate{#2}{#3}{#4}%
-}
-
-\pgfqkeys{/pgf/calendar/week}{.value required,.code={\ifnum#1=\pgfcalendarifdateweek\relax\expandafter\pgfcalendarmatchestrue\fi}}
-
-% Overwriting shorthands of pgfcalendar
-\expandafter\def\csname pgfcalendar at shorthand@d-\endcsname{%
- \if0\pgfcalendarcurrentday\else\pgfcalendarcurrentday\fi}
-\expandafter\def\csname pgfcalendar at shorthand@m-\endcsname{%
- \if0\pgfcalendarcurrentmonth\else\pgfcalendarcurrentmonth\fi}
-
-\endinput
\ No newline at end of file
Deleted: trunk/Master/texmf-dist/tex/latex/tikz-ext/pgfcalendar-ext.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tikz-ext/pgfcalendar-ext.tex 2022-11-03 20:29:02 UTC (rev 64919)
+++ trunk/Master/texmf-dist/tex/latex/tikz-ext/pgfcalendar-ext.tex 2022-11-03 21:03:19 UTC (rev 64920)
@@ -1,13 +0,0 @@
-% Copyright 2022 by Qrrbrbirlbel
-%
-% This file may be distributed and/or modified
-%
-% 1. under the LaTeX Project Public License and/or
-% 2. under the GNU Free Documentation License.
-%
-
-\input pgfcalendar.tex
-\catcode`\@=11
-\input pgfcalendar-ext.code.tex
-\catcode`\@=\pgfcalendaratcode
-\endinput
Deleted: trunk/Master/texmf-dist/tex/latex/tikz-ext/pgfkeyslibraryext.pgfkeys-plus.code.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tikz-ext/pgfkeyslibraryext.pgfkeys-plus.code.tex 2022-11-03 20:29:02 UTC (rev 64919)
+++ trunk/Master/texmf-dist/tex/latex/tikz-ext/pgfkeyslibraryext.pgfkeys-plus.code.tex 2022-11-03 21:03:19 UTC (rev 64920)
@@ -1,139 +0,0 @@
-% Copyright 2022 by Qrrbrbirlbel
-%
-% This file may be distributed and/or modified
-%
-% 1. under the LaTeX Project Public License and/or
-% 2. under the GNU Free Documentation License.
-%
-
-\input pgfmath.tex
-
-%% Handlers
-%% .pgfmath evaluates values given to keys in PGFmath before handing them over.
-%% .pgfmath int truncates the result
-%% .pgfmath strcat concatenates the given values
-\pgfqkeys{/handlers}{
- .pgfmath/.code=%
- \begingroup
- \pgfmathparse{#1}%
- \expandafter\endgroup\expandafter
- \pgfkeys at exp@call\expandafter{\pgfmathresult},
- .pgfmath int/.code=%
- \begingroup
- \pgfmathint{#1}%
- \expandafter\endgroup\expandafter
- \pgfkeys at exp@call\expandafter{\pgfmathresult},
- .pgfmath wrap/.code 2 args={%
- \def\pgfkeys at temp##1{\def\pgfkeys at temp{#1}}%
- \begingroup
- \pgfmathparse{#2}%
- \expandafter\pgfkeys at temp\expandafter{\pgfmathresult}%
- \expandafter\endgroup\expandafter
- \pgfkeys at exp@call\expandafter{\pgfkeys at temp}%
- },
- .pgfmath if/.code n args={3}{%
- \begingroup
- \pgfmathifthenelse{#1}{"1"}{"0"}%
- \expandafter\endgroup\expandafter
- \ifcase\pgfmathresult\relax
- \expandafter\pgfutil at firstoftwo
- \else
- \expandafter\pgfutil at secondoftwo
- \fi
- {\pgfkeys at exp@call{#3}}%
- {\pgfkeys at exp@call{#2}}%
- },
- .if/.code n args={4}{%
- \if#1#2%
- \expandafter\pgfutil at firstoftwo
- \else
- \expandafter\pgfutil at secondoftwo
- \fi
- {\pgfkeys at exp@call{#3}}%
- {\pgfkeys at exp@call{#4}}%
- },
- .ifnum/.code n args={3}{%
- \ifnum#1\relax
- \expandafter\pgfutil at firstoftwo
- \else
- \expandafter\pgfutil at secondoftwo
- \fi
- {\pgfkeys at exp@call{#2}}%
- {\pgfkeys at exp@call{#3}}%
- },
- .ifdim/.code n args={3}{%
- \ifdim#1\relax
- \expandafter\pgfutil at firstoftwo
- \else
- \expandafter\pgfutil at secondoftwo
- \fi
- {\pgfkeys at exp@call{#2}}%
- {\pgfkeys at exp@call{#3}}%
- },
- .ifx/.code n args={4}{%
- \ifx#1#2%
- \expandafter\pgfutil at firstoftwo
- \else
- \expandafter\pgfutil at secondoftwo
- \fi
- {\pgfkeys at exp@call{#3}}%
- {\pgfkeys at exp@call{#4}}%
- },
- .ifxempty/.code n args={3}{%
- \edef\pgfkeys at temp{#1}%
- \pgfutil at ifxempty\pgfkeys at temp{\pgfkeys at exp@call{#2}}{\pgfkeys at exp@call{#3}}%
- },
- .ifempty/.code n args={3}{%
- \pgfutil at ifempty{#1}{\pgfkeys at exp@call{#2}}{\pgfkeys at exp@call{#3}}%
- },
- %% http://tex.stackexchange.com/a/144187/16595
- %% key/.List={(point-1),(point-2),(point-...),(point-6)} will call
- %% key=(point-1)(point-2)(point-3)(point-4)(point-5),(point-6)
- .List/.code=%
- \let\pgfkeys at global@temp\pgfutil at empty
- \foreach\pgfkeys at temp in{#1}{%
- \expandafter\pgfutil at g@addto at macro\expandafter\pgfkeys at global@temp\expandafter{\pgfkeys at temp}%
- }%
- \expandafter\pgfkeys at exp@call\expandafter{\pgfkeys at global@temp}%
-}
-
-\pgfqkeys{/utils}{
- if/.code n args={3}{%
- \begingroup
- \pgfmathifthenelse{#1}{"1"}{"0"}%
- \expandafter\endgroup\expandafter
- \ifcase\pgfmathresult\relax
- \expandafter\pgfutil at firstoftwo
- \else
- \expandafter\pgfutil at secondoftwo
- \fi
- {\pgfkeysalso{#3}}
- {\pgfkeysalso{#2}}%
- },
- TeX/if/.code n args={4}{%
- \if#1#2\expandafter\pgfutil at firstoftwo\else\expandafter\pgfutil at secondoftwo\fi
- {\pgfkeysalso{#3}}{\pgfkeysalso{#4}}%
- },
- TeX/ifnum/.code n args={3}{%
- \ifnum#1\relax\expandafter\pgfutil at firstoftwo\else\expandafter\pgfutil at secondoftwo\fi
- {\pgfkeysalso{#2}}{\pgfkeysalso{#3}}%
- },
- TeX/ifdim/.code n args={3}{%
- \ifdim#1\relax\expandafter\pgfutil at firstoftwo\else\expandafter\pgfutil at secondoftwo\fi
- {\pgfkeysalso{#2}}{\pgfkeysalso{#3}}%
- },
- TeX/ifx/.code n args={4}{%
- \ifx#1#2\relax\expandafter\pgfutil at firstoftwo\else\expandafter\pgfutil at secondoftwo\fi
- {\pgfkeysalso{#3}}{\pgfkeysalso{#4}}%
- },
- TeX/ifxempty/.code n args={3}{%
- \edef\pgfkeys at temp{#1}%
- \pgfutil at ifxempty\pgfkeys at temp{\pgfkeysalso{#2}}{\pgfkeysalso{#3}}%
- },
- TeX/ifempty/.code n args={3}{%
- \pgfutil at ifempty{#1}{\pgfkeysalso{#2}}{\pgfkeysalso{#3}}%
- },
- tex/.search also=/utils/TeX,
-}
-
-\endinput
\ No newline at end of file
Deleted: trunk/Master/texmf-dist/tex/latex/tikz-ext/pgflibraryext.pgfkeys-plus.code.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tikz-ext/pgflibraryext.pgfkeys-plus.code.tex 2022-11-03 20:29:02 UTC (rev 64919)
+++ trunk/Master/texmf-dist/tex/latex/tikz-ext/pgflibraryext.pgfkeys-plus.code.tex 2022-11-03 21:03:19 UTC (rev 64920)
@@ -1,11 +0,0 @@
-% Copyright 2022 by Qrrbrbirlbel
-%
-% This file may be distributed and/or modified
-%
-% 1. under the LaTeX Project Public License and/or
-% 2. under the GNU Free Documentation License.
-%
-
-\input pgfkeyslibraryext.pgfkeys-plus.code.tex
-
-\endinput
\ No newline at end of file
Deleted: trunk/Master/texmf-dist/tex/latex/tikz-ext/pgflibraryext.shapes.circlearrow.code.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tikz-ext/pgflibraryext.shapes.circlearrow.code.tex 2022-11-03 20:29:02 UTC (rev 64919)
+++ trunk/Master/texmf-dist/tex/latex/tikz-ext/pgflibraryext.shapes.circlearrow.code.tex 2022-11-03 21:03:19 UTC (rev 64920)
@@ -1,66 +0,0 @@
-% Copyright 2022 by Qrrbrbirlbel
-%
-% This file may be distributed and/or modified
-%
-% 1. under the LaTeX Project Public License and/or
-% 2. under the GNU Free Documentation License.
-%
-\pgfset{
- circle arrow start angle/.initial=,
- circle arrow end angle/.initial=,
- circle arrow delta angle/.initial=,
- circle arrow arrows/.initial=-,
- circle arrow/@turn left/.style={/pgf/circle arrow arrows=->,/pgf/circle arrow delta angle=340},
- circle arrow/@turn right/.style={/pgf/circle arrow arrows=<-,/pgf/circle arrow delta angle=340},
- circle arrow turn left north/.style = {/pgf/circle arrow/@turn left, /pgf/circle arrow start angle=100},
- circle arrow turn left east/.style = {/pgf/circle arrow/@turn left, /pgf/circle arrow start angle=10},
- circle arrow turn left south/.style = {/pgf/circle arrow/@turn left, /pgf/circle arrow start angle=280},
- circle arrow turn left west/.style = {/pgf/circle arrow/@turn left, /pgf/circle arrow start angle=190},
- circle arrow turn right north/.style = {/pgf/circle arrow/@turn right, /pgf/circle arrow start angle=100},
- circle arrow turn right east/.style = {/pgf/circle arrow/@turn right, /pgf/circle arrow start angle=10},
- circle arrow turn right south/.style = {/pgf/circle arrow/@turn right, /pgf/circle arrow start angle=280},
- circle arrow turn right west/.style = {/pgf/circle arrow/@turn right, /pgf/circle arrow start angle=190},
-}
-\pgfdeclareshape{circle arrow}{
- \inheritsavedanchors[from=circle]
- \inheritanchorborder[from=circle]
- \inheritanchor[from=circle]{north}
- \inheritanchor[from=circle]{north west}
- \inheritanchor[from=circle]{north east}
- \inheritanchor[from=circle]{center}
- \inheritanchor[from=circle]{west}
- \inheritanchor[from=circle]{east}
- \inheritanchor[from=circle]{mid}
- \inheritanchor[from=circle]{mid west}
- \inheritanchor[from=circle]{mid east}
- \inheritanchor[from=circle]{base}
- \inheritanchor[from=circle]{base west}
- \inheritanchor[from=circle]{base east}
- \inheritanchor[from=circle]{south}
- \inheritanchor[from=circle]{south west}
- \inheritanchor[from=circle]{south east}
- \backgroundpath{
- \pgfkeysgetvalue{/pgf/circle arrow start angle}\pgf at sh@circlearrow at s
- \pgfkeysgetvalue{/pgf/circle arrow end angle}\pgf at sh@circlearrow at e
- \pgfkeysgetvalue{/pgf/circle arrow delta angle}\pgf at sh@circlearrow at d
- \ifx\pgf at sh@circlearrow at s\pgfutil at empty%
- \pgfmathsetmacro\pgf at sh@circlearrow at s{\pgf at sh@circlearrow at e-\pgf at sh@circlearrow at d}%
- \else
- \ifx\pgf at sh@circlearrow at e\pgfutil at empty%
- \pgfmathsetmacro\pgf at sh@circlearrow at e{\pgf at sh@circlearrow at s+\pgf at sh@circlearrow at d}%
- \fi%
- \fi
- \pgfutil at tempdima=\radius
- \pgfmathsetlength{\pgf at xb}{\pgfkeysvalueof{/pgf/outer xsep}}%
- \pgfmathsetlength{\pgf at yb}{\pgfkeysvalueof{/pgf/outer ysep}}%
- \ifdim\pgf at xb<\pgf at yb
- \advance\pgfutil at tempdima by-\pgf at yb
- \else
- \advance\pgfutil at tempdima by-\pgf at xb
- \fi
- \pgfpathmoveto{\pgfpointadd{\centerpoint}{\pgfpointpolar{\pgf at sh@circlearrow at s}{\pgfutil at tempdima}}}%
- \pgfpatharc{\pgf at sh@circlearrow at s}{\pgf at sh@circlearrow at e}{\pgfutil at tempdima}%
- \pgfkeysgetvalue{/pgf/circle arrow arrows}\pgf at temp
- \expandafter\pgfsetarrows\expandafter{\pgf at temp}%
- }
-}
\ No newline at end of file
Deleted: trunk/Master/texmf-dist/tex/latex/tikz-ext/pgflibraryext.shapes.circlecrosssplit.code.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tikz-ext/pgflibraryext.shapes.circlecrosssplit.code.tex 2022-11-03 20:29:02 UTC (rev 64919)
+++ trunk/Master/texmf-dist/tex/latex/tikz-ext/pgflibraryext.shapes.circlecrosssplit.code.tex 2022-11-03 21:03:19 UTC (rev 64920)
@@ -1,292 +0,0 @@
-% Copyright 2022 by Qrrbrbirlbel
-%
-% This file may be distributed and/or modified
-%
-% 1. under the LaTeX Project Public License and/or
-% 2. under the GNU Free Documentation License.
-%
-\usepgflibrary{shapes.multipart}
-\let\pgfnodeparttrbox\pgfnodeparttwobox
-\let\pgfnodepartblbox\pgfnodepartthreebox
-\let\pgfnodepartbrbox\pgfnodepartfourbox
-\newif\ifpgfcirclecrosssplitcustomfill
-\pgfset{%
- circle cross split part fill/.code=%
- \def\pgf at lib@sh at ccs@list at fill{#1}%
- \pgfcirclecrosssplitcustomfilltrue,%
- circle cross split uses custom fill/.is if=pgfcirclecrosssplitcustomfill
-}
-\def\pgf at lib@sh at ccs@list at fill{none}%
-\pgfdeclareshape{circle cross split}{%
- \nodeparts{text,two,three,four}%
- \savedanchor\centerpoint{%
- \pgfmathsetlength\pgf at xa{\pgfkeysvalueof{/pgf/inner xsep}}%
- \pgfmathsetlength\pgf at ya{\pgfkeysvalueof{/pgf/inner ysep}}%
- \pgf at x =\wd\pgfnodeparttextbox
- \pgf at yb=\dp\pgfnodeparttextbox
- \pgf at y=\dp\pgfnodeparttwobox
- \ifdim\pgf at yb>\pgf at y
- \pgf at y=\pgf at yb
- \fi
- \advance\pgf at x\pgf at xa
- \advance\pgf at y-\pgf at ya
- \advance\pgf at x.5\pgflinewidth
- \advance\pgf at y-.5\pgflinewidth
- }%
- \savedanchor\twoanchor{%
- \pgfmathsetlength\pgf at xa{\pgfkeysvalueof{/pgf/inner xsep}}%
- \pgfmathsetlength\pgf at ya{\pgfkeysvalueof{/pgf/inner ysep}}%
- \advance\pgf at x.5\pgflinewidth
- \advance\pgf at x\pgf at xa
- \advance\pgf at y.5\pgflinewidth
- \advance\pgf at y\pgf at ya
- \pgf at yb\dp\pgfnodeparttextbox
- \pgf at yc\dp\pgfnodeparttwobox
- \ifdim\pgf at yb>\pgf at yc
- \pgf at yc\pgf at yb
- \fi
- \advance\pgf at y\pgf at yc
- }%
- \savedanchor\threeanchor{%
- \pgfmathsetlength\pgf at ya{\pgfkeysvalueof{/pgf/inner ysep}}%
- \pgf at x\wd\pgfnodeparttextbox
- \pgf at yb\dp\pgfnodeparttextbox
- \pgf at yc\dp\pgfnodeparttwobox
- \ifdim\pgf at yb>\pgf at yc
- \pgf at yc\pgf at yb
- \fi
- \advance\pgf at y-\pgf at yc
- \advance\pgf at y-2\pgf at ya
- \advance\pgf at y-\pgflinewidth
- \pgf at yb\ht\pgfnodepartthreebox
- \pgf at yc\ht\pgfnodepartfourbox
- \ifdim\pgf at yb>\pgf at yc
- \pgf at yc\pgf at yb
- \fi
- \advance\pgf at y-\pgf at yc
- \advance\pgf at x-\wd\pgfnodepartthreebox
- }%
- \saveddimen\radius{%
- % height (upper):
- \pgf at y=\ht\pgfnodeparttextbox
- \ifdim\pgf at y<\ht\pgfnodeparttwobox
- \pgf at y=\ht\pgfnodeparttwobox
- \fi
- \ifdim\dp\pgfnodeparttextbox>\dp\pgfnodeparttwobox
- \advance\pgf at y by\dp\pgfnodeparttextbox
- \else
- \advance\pgf at y by\dp\pgfnodeparttwobox
- \fi
- % height (lower):
- \pgf at yb\ht\pgfnodepartthreebox
- \ifdim\pgf at yb<\ht\pgfnodepartfourbox
- \pgf at yb=\ht\pgfnodepartfourbox
- \fi
- \pgf at yc=\dp\pgfnodepartthreebox
- \ifdim\pgf at yc<\dp\pgfnodepartfourbox
- \advance\pgf at yb by\dp\pgfnodepartfourbox
- \else
- \advance\pgf at yb by\pgf at yc
- \fi
- \ifdim\pgf at yc>\pgf at y
- \pgf at y=\pgf at yc
- \fi
- \pgfmathsetlength\pgf at ya{\pgfkeysvalueof{/pgf/inner ysep}}%
- \advance\pgf at y2\pgf at ya
- %
- \pgf at x\wd\pgfnodeparttextbox
- \pgf at xa\wd\pgfnodepartthreebox
- \pgf at xb\wd\pgfnodeparttwobox
- \pgf at xc\wd\pgfnodepartfourbox
- \ifdim\pgf at xa>\pgf at x
- \pgf at x\pgf at xa
- \fi
- \ifdim\pgf at xb>\pgf at x
- \pgf at x\pgf at xb
- \fi
- \ifdim\pgf at xc>\pgf at x
- \pgf at x\pgf at xc
- \fi
- \pgfmathsetlength\pgf at xa{\pgfkeysvalueof{/pgf/inner xsep}}%
- \advance\pgf at x by 2\pgf at xa
- \ifdim\pgf at y>\pgf at x
- \pgf at x=\pgf at y
- \fi
- \advance\pgf at x by\pgflinewidth
- %
- \pgf at xa=\pgf at x
- \pgf at ya=\pgf at y
- % from circle:
- \pgf at process{\pgfpointnormalised{}}%
- \ifdim\pgf at x>\pgf at y%
- \c at pgf@counta=\pgf at x%
- \ifnum\c at pgf@counta=0\relax%
- \else%
- \divide\c at pgf@counta by 255\relax%
- \pgf at xa=16\pgf at xa\relax%
- \divide\pgf at xa by\c at pgf@counta%
- \pgf at xa=16\pgf at xa\relax%
- \fi%
- \else%
- \c at pgf@counta=\pgf at y%
- \ifnum\c at pgf@counta=0\relax%
- \else%
- \divide\c at pgf@counta by 255\relax%
- \pgf at ya=16\pgf at ya\relax%
- \divide\pgf at ya by\c at pgf@counta%
- \pgf at xa=16\pgf at ya\relax%
- \fi%
- \fi%
- \pgf at x=\pgf at xa%
- %
- \pgfmathsetlength{\pgf at xb}{\pgfkeysvalueof{/pgf/minimum width}}%
- \pgfmathsetlength{\pgf at yb}{\pgfkeysvalueof{/pgf/minimum height}}%
- \ifdim\pgf at x<.5\pgf at xb
- \pgf at x=.5\pgf at xb
- \fi
- \ifdim\pgf at x<.5\pgf at yb
- \pgf at x=.5\pgf at yb
- \fi
- %
- \pgfmathsetlength{\pgf at xb}{\pgfkeysvalueof{/pgf/outer xsep}}%
- \pgfmathsetlength{\pgf at yb}{\pgfkeysvalueof{/pgf/outer ysep}}%
- \ifdim\pgf at xb<\pgf at yb
- \advance\pgf at x\pgf at yb
- \else
- \advance\pgf at x\pgf at xb
- \fi
- }%
- \inheritanchorborder[from=circle]%
- \inheritanchor[from=circle]{north}%
- \inheritanchor[from=circle]{north west}%
- \inheritanchor[from=circle]{north east}%
- \inheritanchor[from=circle]{center}%
- \inheritanchor[from=circle]{west}%
- \inheritanchor[from=circle]{east}%
- \inheritanchor[from=circle]{mid}%
- \inheritanchor[from=circle]{mid west}%
- \inheritanchor[from=circle]{mid east}%
- \inheritanchor[from=circle]{base}%
- \inheritanchor[from=circle]{base west}%
- \inheritanchor[from=circle]{base east}%
- \inheritanchor[from=circle]{south}%
- \inheritanchor[from=circle]{south west}%
- \inheritanchor[from=circle]{south east}%
- \anchor{two}{\twoanchor}%
- \anchor{three}{\threeanchor}%
- \anchor{four}{
- \threeanchor
- \pgf at ya=\pgf at y
- \twoanchor
- \pgf at y=\pgf at ya
- }%
- \anchor{lower base}{%
- \threeanchor
- \pgf at ya=\pgf at y
- \centerpoint
- \pgf at y=\pgf at ya
- }
- \anchor{lower base west}{%
- \threeanchor
- \pgf at ya=\pgf at y
- \centerpoint
- \pgf at y=\pgf at ya
- \advance\pgf at x by-\radius
- }
- \anchor{lower base east}{%
- \threeanchor
- \pgf at ya=\pgf at y
- \centerpoint
- \pgf at y=\pgf at ya
- \advance\pgf at x by\radius
- }
- \anchor{lower mid}{%
- \threeanchor
- \pgf at ya=\pgf at y
- \centerpoint
- \pgf at y=\pgf at ya
- \pgfmathsetlength\pgf at ya{+.5ex}%
- \advance\pgf at y by\pgf at ya
- }
- \anchor{lower mid west}{%
- \threeanchor
- \pgf at ya=\pgf at y
- \centerpoint
- \pgf at y=\pgf at ya
- \advance\pgf at x by-\radius
- \pgfmathsetlength\pgf at ya{+.5ex}%
- \advance\pgf at y by\pgf at ya
- }
- \anchor{lower mid east}{%
- \threeanchor
- \pgf at ya=\pgf at y
- \centerpoint
- \pgf at y=\pgf at ya
- \advance\pgf at x by\radius
- \pgfmathsetlength\pgf at ya{+.5ex}%
- \advance\pgf at y by\pgf at ya
- }
- \inheritbackgroundpath[from=circle]
- \beforebackgroundpath{%
- \pgfutil at tempdima=\radius
- \pgfmathsetlength{\pgf at xb}{\pgfkeysvalueof{/pgf/outer xsep}}%
- \pgfmathsetlength{\pgf at yb}{\pgfkeysvalueof{/pgf/outer ysep}}%
- \ifdim\pgf at xb<\pgf at yb
- \advance\pgfutil at tempdima by-\pgf at yb
- \else
- \advance\pgfutil at tempdima by-\pgf at xb
- \fi
- \advance\pgfutil at tempdima by-.5\pgflinewidth%
- \pgfsetshortenstart{0pt}%
- \pgfsetshortenend{0pt}%
- \pgfsetarrows{-}%
- \pgfpathmoveto
- {\pgfpointadd{\centerpoint}{\pgfqpoint{-\pgfutil at tempdima}{0pt}}}%
- \pgfpathlineto
- {\pgfpointadd{\centerpoint}{\pgfqpoint{\pgfutil at tempdima}{0pt}}}%
- \pgfpathmoveto
- {\pgfpointadd{\centerpoint}{\pgfqpoint{0pt}{-\pgfutil at tempdima}}}%
- \pgfpathlineto
- {\pgfpointadd{\centerpoint}{\pgfqpoint{0pt}{\pgfutil at tempdima}}}%
- \pgfusepathqstroke
- }%
- \behindbackgroundpath{%
- \pgfutil at tempdima=\radius
- \pgfmathsetlength{\pgf at xb}{\pgfkeysvalueof{/pgf/outer xsep}}%
- \pgfmathsetlength{\pgf at yb}{\pgfkeysvalueof{/pgf/outer ysep}}%
- \ifdim\pgf at xb<\pgf at yb
- \advance\pgfutil at tempdima by-\pgf at yb
- \else
- \advance\pgfutil at tempdima by-\pgf at xb
- \fi
- \advance\pgfutil at tempdima by-.5\pgflinewidth%
- \ifpgfcirclecrosssplitcustomfill%
- \pgf at lib@sh at rs@process at list{\pgf at lib@sh at ccs@list at fill}{4}%
- {%
- \pgfmathloop
- \ifnum\pgfmathcounter>4%
- \else%
- \pgf at lib@sh at getalpha\pgf at lib@sh at rs@number{\pgfmathcounter}%
- \edef\pgf at tempa
- {\csname pgf at lib@sh at rs@\pgf at lib@sh at rs@number @item\endcsname}%
- \ifx\pgf at tempa\pgf at lib@sh at rs@nonetext\else
- \pgfsetfillcolor{\pgf at tempa}%
- \ifcase\pgfmathcounter\or
- \def\pgf at lib@sh at ccs@angle{90}\or
- \def\pgf at lib@sh at ccs@angle{0}\or
- \def\pgf at lib@sh at ccs@angle{180}\else
- \def\pgf at lib@sh at ccs@angle{270}%
- \fi
- \pgfpathmoveto{\centerpoint}%
- \pgfpathlineto{\pgfpointadd{\centerpoint}
- {\pgfqpointpolar{\pgf at lib@sh at ccs@angle}{\pgfutil at tempdima}}}%
- \pgfpatharc{+\pgf at lib@sh at ccs@angle}{\pgf at lib@sh at ccs@angle+90}
- {+\pgfutil at tempdima}%
- \pgfpathclose
- \pgfusepathqfill
- \fi
- \repeatpgfmathloop
- }%
- \fi
- }%
-}
\ No newline at end of file
Deleted: trunk/Master/texmf-dist/tex/latex/tikz-ext/pgflibraryext.shapes.heatmark.code.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tikz-ext/pgflibraryext.shapes.heatmark.code.tex 2022-11-03 20:29:02 UTC (rev 64919)
+++ trunk/Master/texmf-dist/tex/latex/tikz-ext/pgflibraryext.shapes.heatmark.code.tex 2022-11-03 21:03:19 UTC (rev 64920)
@@ -1,181 +0,0 @@
-% Copyright 2022 by Qrrbrbirlbel
-%
-% This file may be distributed and/or modified
-%
-% 1. under the LaTeX Project Public License and/or
-% 2. under the GNU Free Documentation License.
-%
-\pgfset{
- heatmark arc width/.initial=+4pt,
- heatmark arc sep/.initial=+1pt,
- heatmark arc rings/.initial=3,
- heatmark arcs/.initial=3,
- heatmark arc sep angle/.initial=20,
- heatmark inner opacity/.initial=.8,
- heatmark outer opacity/.initial=.2
-}
-\pgfdeclareshape{heatmark}
-%
-% Draws a circle around the text
-%
-{
- \savedanchor\centerpoint{%
- \pgf at x=.5\wd\pgfnodeparttextbox%
- \pgf at y=.5\ht\pgfnodeparttextbox%
- \advance\pgf at y by-.5\dp\pgfnodeparttextbox%
- }
-
- \saveddimen\innerradius{%
- %
- % Caculate ``height radius''
- %
- \pgf at ya=.5\ht\pgfnodeparttextbox%
- \advance\pgf at ya by.5\dp\pgfnodeparttextbox%
- \pgfmathsetlength\pgf at yb{\pgfkeysvalueof{/pgf/inner ysep}}%
- \advance\pgf at ya by\pgf at yb%
- %
- % Caculate ``width radius''
- %
- \pgf at xa=.5\wd\pgfnodeparttextbox%
- \pgfmathsetlength\pgf at xb{\pgfkeysvalueof{/pgf/inner xsep}}%
- \advance\pgf at xa by\pgf at xb%
- %
- % Calculate length of radius vector:
- %
- \pgf at process{\pgfpointnormalised{\pgfqpoint{\pgf at xa}{\pgf at ya}}}%
- \ifdim\pgf at x>\pgf at y%
- \c at pgf@counta=\pgf at x%
- \ifnum\c at pgf@counta=0\relax%
- \else%
- \divide\c at pgf@counta by 255\relax%
- \pgf at xa=16\pgf at xa\relax%
- \divide\pgf at xa by\c at pgf@counta%
- \pgf at xa=16\pgf at xa\relax%
- \fi%
- \else%
- \c at pgf@counta=\pgf at y%
- \ifnum\c at pgf@counta=0\relax%
- \else%
- \divide\c at pgf@counta by 255\relax%
- \pgf at ya=16\pgf at ya\relax%
- \divide\pgf at ya by\c at pgf@counta%
- \pgf at xa=16\pgf at ya\relax%
- \fi%
- \fi%
- \pgf at x=\pgf at xa%
- %
- % If necessary, adjust radius so that the size requirements are
- % met:
- %
- \pgfmathsetlength{\pgf at xb}{\pgfkeysvalueof{/pgf/minimum width}}%
- \pgfmathsetlength{\pgf at yb}{\pgfkeysvalueof{/pgf/minimum height}}%
- \ifdim\pgf at x<.5\pgf at xb%
- \pgf at x=.5\pgf at xb%
- \fi%
- \ifdim\pgf at x<.5\pgf at yb%
- \pgf at x=.5\pgf at yb%
- \fi%
- }%
-
- \saveddimen\radius{%
- \pgfmathsetlength{\pgf at xb}{\pgfkeysvalueof{/pgf/outer xsep}}%
- \pgfmathsetlength{\pgf at yb}{\pgfkeysvalueof{/pgf/outer ysep}}%
- \ifdim\pgf at xb<\pgf at yb%
- \advance\pgf at x by\pgf at yb%
- \else%
- \advance\pgf at x by\pgf at xb%
- \fi%
- \pgfmathsetcount\c at pgf@counta{\pgfkeysvalueof{/pgf/heatmark arc rings}}%
- \pgfmathsetlength\pgf at xa{\pgfkeysvalueof{/pgf/heatmark arc width}+\pgfkeysvalueof{/pgf/heatmark arc sep}}%
- \multiply\pgf at xa\c at pgf@counta
- \advance\pgf at x\pgf at xa
- }%
- %
- % Anchors
- %
- \inheritanchor[from=circle]{north}
- \inheritanchor[from=circle]{north west}
- \inheritanchor[from=circle]{north east}
- \inheritanchor[from=circle]{center}
- \inheritanchor[from=circle]{west}
- \inheritanchor[from=circle]{east}
- \inheritanchor[from=circle]{mid}
- \inheritanchor[from=circle]{mid west}
- \inheritanchor[from=circle]{mid east}
- \inheritanchor[from=circle]{base}
- \inheritanchor[from=circle]{base west}
- \inheritanchor[from=circle]{base east}
- \inheritanchor[from=circle]{south}
- \inheritanchor[from=circle]{south west}
- \inheritanchor[from=circle]{south east}
- \inheritanchorborder[from=circle]
- %
- % Background path
- %
- \backgroundpath{
- \pgfutil at tempdima=\innerradius%
- \pgfpathcircle{\centerpoint}{\pgfutil at tempdima}%
- }%
- %
- %
- %
- \behindbackgroundpath{%
- \pgfmathsetcount\c at pgf@counta{\pgfkeysvalueof{/pgf/heatmark arc rings}}% heat arc rings
- \pgfmathsetcount\c at pgf@countb{\pgfkeysvalueof{/pgf/heatmark arcs}}% heat arcs
- \pgfmathsetlength\pgf at xa{\pgfkeysvalueof{/pgf/heatmark arc width}}% heat arc width
- \pgfmathsetlength\pgf at xb{\pgfkeysvalueof{/pgf/heatmark arc sep}}% heat arc sep
- %\pgfmathsetmacro\pgf at tempa{\pgfkeysvalueof{/pgf/heat arc sep angle}}% heat arc sep angle
- \pgfmathsetmacro\pgf at tempb{360/\c at pgf@countb-(\pgfkeysvalueof{/pgf/heatmark arc sep angle})}% heat arc
- \pgfmathsetmacro\pgf at tempc{\pgfkeysvalueof{/pgf/shape border rotate}}% heat rotate
- %
- \pgfmathsetmacro\pgf at tempd{\pgfkeysvalueof{/pgf/heatmark inner opacity}}% heat opacity high
- \ifnum\c at pgf@counta=1
- \def\tikzext at heatmark@opacity at seps{0}%
- \else
- \pgfmathsetmacro\tikzext at heatmark@opacity at seps
- {(\pgf at tempd-(\pgfkeysvalueof{/pgf/heatmark outer opacity}))%
- /(\c at pgf@counta-1)}%
- \fi
- \pgfutil at tempcnta=0
- \pgfutil at tempcntb=0
- \pgf at ya\innerradius\relax
- \pgftransformshift{\centerpoint}
- \pgfutil at loop % ring loop
- \advance\pgf at ya\pgf at xb % current radius + heat arc sep
- \pgf at yb\pgf at ya
- \advance\pgf at yb\pgf at xa % current radius + heat arc sep + heat arc width
- \pgfsetfillopacity{\pgf at tempd}%
- \begingroup
- \edef\pgf at marshal{\noexpand\pgfset{heatmark ring \the\numexpr\pgfutil at tempcnta+1\relax/.try}}%
- \pgf at marshal
- \csname tikz at options\endcsname
- {%
- \pgfutil at loop
- \pgfmathsetmacro\tikzext at heatmark@start at angle{\pgf at tempc-.5*\pgf at tempb+\pgfutil at tempcntb*(360/\c at pgf@countb)}%
- % path
- \begingroup
- \edef\pgf at marshal{\noexpand\pgfset{heatmark arc \the\numexpr\pgfutil at tempcntb+1\relax/.try}%
- \noexpand\pgfset{heatmark ring \the\numexpr\pgfutil at tempcnta+1\relax\space arc \the\numexpr\pgfutil at tempcntb+1\relax/.try}}%
- \pgf at marshal
- \csname tikz at options\endcsname
- \pgfpathmoveto{\pgfpointpolar{\tikzext at heatmark@start at angle}{\pgf at ya}}%
- \pgfpatharc{\tikzext at heatmark@start at angle}{\tikzext at heatmark@start at angle+\pgf at tempb}{\pgf at ya}%
- \pgfpathlineto{\pgfpointpolar{\tikzext at heatmark@start at angle+\pgf at tempb}{\pgf at yb}}%
- \pgfpatharc{\tikzext at heatmark@start at angle+\pgf at tempb}{\tikzext at heatmark@start at angle}{\pgf at yb}%
- \pgfpathclose
- \pgfusepathqfill
- \endgroup
- \advance\pgfutil at tempcntb\@ne
- \ifnum\pgfutil at tempcntb<\c at pgf@countb
- \pgfutil at repeat
- }%
- \endgroup
- \advance\pgfutil at tempcnta\@ne
- \ifnum\pgfutil at tempcnta<\c at pgf@counta
- \pgf at ya\pgf at yb
- \pgfmathsetmacro\pgf at tempd{\pgf at tempd-\tikzext at heatmark@opacity at seps}%
- \pgfutil at repeat
- \pgftransformshift{\pgfqpointscale{-1}{\centerpoint}}%
- }
-}
-\endinput
Deleted: trunk/Master/texmf-dist/tex/latex/tikz-ext/pgflibraryext.shapes.rectangleroundedcorners.code.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tikz-ext/pgflibraryext.shapes.rectangleroundedcorners.code.tex 2022-11-03 20:29:02 UTC (rev 64919)
+++ trunk/Master/texmf-dist/tex/latex/tikz-ext/pgflibraryext.shapes.rectangleroundedcorners.code.tex 2022-11-03 21:03:19 UTC (rev 64920)
@@ -1,318 +0,0 @@
-\pgfset{
- rectangle with rounded corners north west radius/.initial=.5\pgflinewidth,
- rectangle with rounded corners north east radius/.initial=.5\pgflinewidth,
- rectangle with rounded corners south west radius/.initial=.5\pgflinewidth,
- rectangle with rounded corners south east radius/.initial=.5\pgflinewidth,
- rectangle with rounded corners radius/.style={
- /pgf/rectangle with rounded corners north west radius={#1},
- /pgf/rectangle with rounded corners north east radius={#1},
- /pgf/rectangle with rounded corners south west radius={#1},
- /pgf/rectangle with rounded corners south east radius={#1}}
-}%
-\pgfdeclareshape{rectangle with rounded corners}{%
- \savedmacro\rectanglewithroundedcornersparameter{%
- %
- % width = max(text width + 2 * inner xseps, minimum width) + 2 * outer xseps
- \pgf at x=\wd\pgfnodeparttextbox
- \pgfmathsetlength\pgf at xc{\pgfkeysvalueof{/pgf/inner xsep}}%
- \advance\pgf at x by 2\pgf at xc
- \pgfmathsetlength\pgf at xc{\pgfkeysvalueof{/pgf/minimum width}}%
- \ifdim\pgf at x<\pgf at xc
- \pgf at x=\pgf at xc
- \fi
- %
- \pgfmathsetlength\pgf at xc{\pgfkeysvalueof{/pgf/outer xsep}}%
- \edef\outerxsep{\the\pgf at xc}%
- \addtosavedmacro\outerxsep
- \advance\pgf at x by 2\pgf at xc
- \pgf at x=.5\pgf at x
- \edef\halfwidth{\the\pgf at x}%
- \addtosavedmacro\halfwidth
- %
- % height = max(text height + text depth + 2 * inner yseps, minimum height) + 2 * outer yseps
- \pgf at y=\ht\pgfnodeparttextbox
- \advance\pgf at y by \dp\pgfnodeparttextbox
- \pgfmathsetlength\pgf at yc{\pgfkeysvalueof{/pgf/inner ysep}}%
- \advance\pgf at y by 2\pgf at yc
- \pgfmathsetlength\pgf at yc{\pgfkeysvalueof{/pgf/minimum height}}%
- \ifdim\pgf at y<\pgf at yc
- \pgf at y=\pgf at yc
- \fi
- %
- \pgfmathsetlength\pgf at yc{\pgfkeysvalueof{/pgf/outer ysep}}%
- \edef\outerysep{\the\pgf at yc}%
- \addtosavedmacro\outerysep
- \advance\pgf at y by 2\pgf at yc
- \pgf at y=.5\pgf at y
- \edef\halfheight{\the\pgf at y}%
- \addtosavedmacro\halfheight
- %
- % \centerpoint
- \pgf at x=.5\wd\pgfnodeparttextbox
- \pgf at y=.5\ht\pgfnodeparttextbox
- \advance\pgf at y by -.5\dp\pgfnodeparttextbox
- \pgfextract at process\centerpoint{}%
- \addtosavedmacro\centerpoint
- %
- \pgfmathsetlengthmacro\northwestradius{\pgfkeysvalueof{/pgf/rectangle with rounded corners north west radius}}
- \pgfmathsetlengthmacro\northeastradius{\pgfkeysvalueof{/pgf/rectangle with rounded corners north east radius}}
- \pgfmathsetlengthmacro\southwestradius{\pgfkeysvalueof{/pgf/rectangle with rounded corners south west radius}}
- \pgfmathsetlengthmacro\southeastradius{\pgfkeysvalueof{/pgf/rectangle with rounded corners south east radius}}
- \addtosavedmacro\northwestradius
- \addtosavedmacro\northeastradius
- \addtosavedmacro\southwestradius
- \addtosavedmacro\southeastradius
- }%
- \anchor{center}{%
- \rectanglewithroundedcornersparameter
- \centerpoint
- }
- \anchor{west}{%
- \rectanglewithroundedcornersparameter
- \centerpoint
- \advance\pgf at x by -\halfwidth
- }
- \anchor{east}{%
- \rectanglewithroundedcornersparameter
- \centerpoint
- \advance\pgf at x by \halfwidth
- }
- \anchor{north}{%
- \rectanglewithroundedcornersparameter
- \centerpoint
- \advance\pgf at y by \halfheight
- }
- \anchor{south}{%
- \rectanglewithroundedcornersparameter
- \centerpoint
- \advance\pgf at y by -\halfheight
- }
- \anchor{mid}{%
- \rectanglewithroundedcornersparameter
- \centerpoint
- \pgfmathsetlength\pgf at y{+.5ex}%
- }
- \anchor{mid west}{%
- \csname pgf at anchor@rectangle with rounded corners at west\endcsname
- \pgfmathsetlength\pgf at y{+.5ex}%
- }
- \anchor{mid east}{%
- \csname pgf at anchor@rectangle with rounded corners at east\endcsname
- \pgfmathsetlength\pgf at y{+.5ex}%
- }
- \anchor{base}{%
- \rectanglewithroundedcornersparameter
- \centerpoint
- \pgf at y=0pt
- }
- \anchor{base west}{%
- \csname pgf at anchor@rectangle with rounded corners at west\endcsname
- \pgf at y=0pt
- }
- \anchor{base east}{%
- \csname pgf at anchor@rectangle with rounded corners at east\endcsname
- \pgf at y=0pt
- }
- \anchor{north west}{%
- \csname pgf at anchor@rectangle with rounded corners at north west center\endcsname
- \ifdim\northwestradius=0pt
- \else
- \pgf at process{\pgfpointadd{}{\pgfpointpolar{135}{\northwestradius+\outerxsep and \northwestradius+\outerysep}}}%
- \fi
- }
- \anchor{north west center}{%
- \rectanglewithroundedcornersparameter
- \pgf at x=-\halfwidth
- \pgf at y=\halfheight
- \ifdim\northwestradius=0pt
- \else
- \advance\pgf at x by \outerxsep
- \advance\pgf at x by \northwestradius
- \advance\pgf at y by -\outerysep
- \advance\pgf at y by -\northwestradius
- \fi
- \pgf at process{\pgfpointadd{}{\centerpoint}}%
- }
- \anchor{north east}{%
- \csname pgf at anchor@rectangle with rounded corners at north east center\endcsname
- \ifdim\northeastradius=0pt
- \else
- \pgf at process{\pgfpointadd{}{\pgfpointpolar{45}{\northeastradius+\outerxsep and \northeastradius+\outerysep}}}%
- \fi
- }
- \anchor{north east center}{%
- \rectanglewithroundedcornersparameter
- \pgf at x=\halfwidth
- \pgf at y=\halfheight
- \ifdim\northeastradius=0pt
- \else
- \advance\pgf at x by -\outerxsep
- \advance\pgf at x by -\northeastradius
- \advance\pgf at y by -\outerysep
- \advance\pgf at y by -\northeastradius
- \fi
- \pgf at process{\pgfpointadd{}{\centerpoint}}%
- }
- \anchor{south west}{%
- \csname pgf at anchor@rectangle with rounded corners at south west center\endcsname
- \ifdim\southwestradius=0pt
- \else
- \pgf at process{\pgfpointadd{}{\pgfpointpolar{225}{\southwestradius+\outerxsep and \southwestradius+\outerysep}}}%
- \fi
- }
- \anchor{south west center}{%
- \rectanglewithroundedcornersparameter
- \pgf at x=-\halfwidth
- \pgf at y=-\halfheight
- \ifdim\southwestradius=0pt
- \else
- \advance\pgf at x by \outerxsep
- \advance\pgf at x by \southwestradius
- \advance\pgf at y by \outerysep
- \advance\pgf at y by \southwestradius
- \fi
- \pgf at process{\pgfpointadd{}{\centerpoint}}%
- }
- \anchor{south east}{%
- \csname pgf at anchor@rectangle with rounded corners at south east center\endcsname
- \ifdim\southeastradius=0pt
- \else
- \pgf at process{\pgfpointadd{}{\pgfpointpolar{315}{\southeastradius+\outerxsep and \southeastradius+\outerysep}}}%
- \fi
- }
- \anchor{south east center}{%
- \rectanglewithroundedcornersparameter
- \pgf at x=\halfwidth
- \pgf at y=-\halfheight
- \ifdim\southeastradius=0pt
- \else
- \advance\pgf at x by -\outerxsep
- \advance\pgf at x by -\southeastradius
- \advance\pgf at y by \outerysep
- \advance\pgf at y by \southeastradius
- \fi
- \pgf at process{\pgfpointadd{}{\centerpoint}}%
- }
- \anchor{below north west}{%
- \csname pgf at anchor@rectangle with rounded corners at north west center\endcsname
- \advance\pgf at x by -\northwestradius
- \advance\pgf at x by -\outerxsep
- }
- \anchor{above south west}{%
- \csname pgf at anchor@rectangle with rounded corners at south west center\endcsname
- \advance\pgf at x by -\southwestradius
- \advance\pgf at x by -\outerxsep
- }
- \anchor{below north east}{%
- \csname pgf at anchor@rectangle with rounded corners at north east center\endcsname
- \advance\pgf at x by \northeastradius
- \advance\pgf at x by \outerxsep
- }
- \anchor{above south east}{%
- \csname pgf at anchor@rectangle with rounded corners at south east center\endcsname
- \advance\pgf at x by \southeastradius
- \advance\pgf at x by \outerxsep
- }
- \anchor{right north west}{%
- \csname pgf at anchor@rectangle with rounded corners at north west center\endcsname
- \advance\pgf at y by \northwestradius
- \advance\pgf at y by \outerysep
- }
- \anchor{right south west}{%
- \csname pgf at anchor@rectangle with rounded corners at south west center\endcsname
- \advance\pgf at y by -\southwestradius
- \advance\pgf at y by -\outerysep
- }
- \anchor{left north east}{%
- \csname pgf at anchor@rectangle with rounded corners at north east center\endcsname
- \advance\pgf at y by \northeastradius
- \advance\pgf at y by \outerysep
- }
- \anchor{left south east}{%
- \csname pgf at anchor@rectangle with rounded corners at south east center\endcsname
- \advance\pgf at y by -\southeastradius
- \advance\pgf at y by -\outerysep
- }
- \backgroundpath{%
- \rectanglewithroundedcornersparameter
- %
- \pgf at xa=\halfwidth
- \advance\pgf at xa by -\outerxsep
- \edef\HalfWidth{\the\pgf at xa}%
- %
- \pgf at ya=\halfheight
- \advance\pgf at ya by -\outerysep
- \edef\HalfHeight{\the\pgf at ya}%
- %
- \pgftransformshift{\centerpoint}%
- %
- \pgfpathmoveto{\pgfqpoint{\HalfWidth}{0pt}}%
- \pgfpathlineto{\pgfpoint {+\HalfWidth}{\HalfHeight-\northeastradius}}%
- \pgfpatharc{0}{90}{\northeastradius}%
- \pgfpathlineto{\pgfpoint{-\HalfWidth+\northwestradius}{+\HalfHeight}}
- \pgfpatharc{90}{180}{\northwestradius}%
- \pgfpathlineto{\pgfpoint{+-\HalfWidth}{-\HalfHeight+\southwestradius}}%
- \pgfpatharc{180}{270}{\southwestradius}%
- \pgfpathlineto{\pgfpoint{\HalfWidth-\southeastradius}{+-\HalfHeight}}%
- \pgfpatharc{270}{360}{\southeastradius}%
- \pgfpathclose
- \pgftransformshift{\pgfqpointscale{-1}{\centerpoint}}%
- }%
- \anchorborder{%
- \pgfextract at process\externalpoint{}%
- \ifdim\pgf at x=0pt
- \ifdim\pgf at y<0pt
- \csname pgf at anchor@rectangle with rounded corners at south\endcsname
- \else
- \csname pgf at anchor@rectangle with rounded corners at north\endcsname
- \fi
- \else
- \ifdim\pgf at y=0pt
- \ifdim\pgf at x<0pt
- \csname pgf at anchor@rectangle with rounded corners at west\endcsname
- \else
- \csname pgf at anchor@rectangle with rounded corners at east\endcsname
- \fi
- \else
- \rectanglewithroundedcornersparameter
- \pgfmathanglebetweenpoints{\pgfpointorigin}{\externalpoint}%
- \let\angle\pgfmathresult
- \pgf at xa=\pgf at x
- \pgf at ya=\pgf at y
- \pgfextract at process\externalPoint{\pgfpointadd{}{\centerpoint}}%
- \ifdim\pgf at xa<0pt
- \ifdim\pgf at ya<0pt
- % south west
- \pgf at sh@rwrc at anchorborder{above south west}{right south west}{south west}{180}{270}{\southwestradius}%
- \else
- % north west
- \pgf at sh@rwrc at anchorborder{right north west}{below north west}{north west}{90}{180}{\northwestradius}%
- \fi
- \else
- \ifdim\pgf at ya<0pt
- % south east
- \pgf at sh@rwrc at anchorborder{left south east}{above south east}{south east}{270}{360}{\southeastradius}%
- \else
- % north east
- \pgf at sh@rwrc at anchorborder{below north east}{left north east}{north east}{0}{90}{\northeastradius}%
- \fi
- \fi
- \fi
- \fi
- }
-}
-\def\pgf at sh@rwrc at anchorborder#1#2#3#4#5#6{%
- \pgfmathanglebetweenpoints{\centerpoint}{\csname pgf at anchor@rectangle with rounded corners@#1\endcsname}%
- \let\angleA\pgfmathresult
- \pgfmathanglebetweenpoints{\centerpoint}{\csname pgf at anchor@rectangle with rounded corners@#2\endcsname}%
- \let\angleB\pgfmathresult
- \if\ifdim\angle pt>\angleA pt 0\else1\fi\ifdim\angle pt<\angleB pt 0\else 2\fi
- \pgfmathpointintersectionoflineandarc{\externalPoint}{\centerpoint}
- {\csname pgf at anchor@rectangle with rounded corners@#3 center\endcsname}
- {#4}{#5}{#6+\outerxsep and #6+\outerysep}%
- \else
- \pgf at process{\pgfpointadd{\pgfpointborderrectangle{\externalpoint}{\pgfqpoint{\halfwidth}{\halfheight}}}{\centerpoint}}%
- \fi
-}
-
-\endinput
Deleted: trunk/Master/texmf-dist/tex/latex/tikz-ext/pgflibraryext.shapes.superellipse.code.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tikz-ext/pgflibraryext.shapes.superellipse.code.tex 2022-11-03 20:29:02 UTC (rev 64919)
+++ trunk/Master/texmf-dist/tex/latex/tikz-ext/pgflibraryext.shapes.superellipse.code.tex 2022-11-03 21:03:19 UTC (rev 64920)
@@ -1,198 +0,0 @@
-% Copyright 2022 by Qrrbrbirlbel
-%
-% This file may be distributed and/or modified
-%
-% 1. under the LaTeX Project Public License and/or
-% 2. under the GNU Free Documentation License.
-%
-\usepgflibrary{shapes.geometric,intersections}
-\pgfset{
- superellipse x exponent/.initial=2.5,
- superellipse y exponent/.initial=2.5,
- superellipse step/.initial=4,
- superellipse exponent/.style={/pgf/superellipse x exponent={#1},/pgf/superellipse y exponent={#1}}}
-
-% Evaluates the x-value of a superellipse around the center
-% #1 = t (0≤t≤90)
-% #2 = 2/m (x-exp)
-% #3 = a (x-rad)
-\pgfmathdeclarefunction{superellipsex}{3}{%
- \pgfmathcos@{#1}%
- \pgfmathpow@{\pgfmathresult}{#2}%
- \pgfmathmultiply@{\pgfmathresult}{#3}}
-
-% Evaluates the y-value of a superellipse around the center
-% #1 = t (0≤t≤90)
-% #2 = 2/n (y-exp)
-% #3 = a (y-rad)
-\pgfmathdeclarefunction{superellipsey}{3}{%
- \pgfmathsin@{#1}%
- \pgfmathpow@{\pgfmathresult}{#2}%
- \pgfmathmultiply@{\pgfmathresult}{#3}}
-
-% Evaluates the x- and y- value of superellipse around the center
-% #1 = t (0≤t≤90)
-% #2 = 2/m (x-exp)
-% #3 = 2/n (y-exp)
-% #4 = a (x-rad)
-% #5 = b (y-rad)
-\def\pgfmathsuperellipseXY#1#2#3#4#5{%
- \begingroup
- \pgfmathsuperellipsex@{#1}{#2}{#4}%
- \let\pgfmath at temp\pgfmathresult
- \pgfmathsuperellipsey@{#1}{#3}{#5}%
- \edef\pgfmath at temp{\def\noexpand\pgfmathresultX{\pgfmath at temp}%
- \def\noexpand\pgfmathresultY{\pgfmathresult}}%
- \expandafter
- \endgroup\pgfmath at temp}
-
-\pgfdeclareshape{superellipse}{%
- \inheritsavedanchors[from=ellipse]
- \inheritanchor[from=ellipse]{text}\inheritanchor[from=ellipse]{center}
- \inheritanchor[from=ellipse]{mid}\inheritanchor[from=ellipse]{base}
- \inheritanchor[from=ellipse]{north}\inheritanchor[from=ellipse]{south}
- \inheritanchor[from=ellipse]{west}\inheritanchor[from=ellipse]{east}
- \inheritanchor[from=ellipse]{mid west}\inheritanchor[from=ellipse]{base west}
- \inheritanchor[from=ellipse]{mid east}\inheritanchor[from=ellipse]{base east}
- \anchor{north east}{%
- \pgf at process{\radius}%
- \pgfmathpow@{.70710678118}{\xexponent}%
- \pgf at x=\pgfmathresult\pgf at x
- \pgfmathpow@{.70710678118}{\yexponent}%
- \pgf at y=\pgfmathresult\pgf at y
- \pgfpointadd{}{\centerpoint}%
- }
- \anchor{north west}{%
- \pgf at process{\radius}%
- \pgfmathpow@{.70710678118}{\xexponent}%
- \pgf at x=-\pgfmathresult\pgf at x
- \pgfmathpow@{.70710678118}{\yexponent}%
- \pgf at y=\pgfmathresult\pgf at y
- \pgfpointadd{}{\centerpoint}%
- }
- \anchor{south west}{%
- \pgf at process{\radius}%
- \pgfmathpow@{.70710678118}{\xexponent}%
- \pgf at x=-\pgfmathresult\pgf at x
- \pgfmathpow@{.70710678118}{\yexponent}%
- \pgf at y=-\pgfmathresult\pgf at y
- \pgfpointadd{}{\centerpoint}%
- }
- \anchor{south east}{%
- \pgf at process{\radius}%
- \pgfmathpow@{.70710678118}{\xexponent}%
- \pgf at x=\pgfmathresult\pgf at x
- \pgfmathpow@{.70710678118}{\yexponent}%
- \pgf at y=-\pgfmathresult\pgf at y
- \pgfpointadd{}{\centerpoint}%
- }
- \savedmacro\xexponent{%
- \pgfmathreciprocal{\pgfkeysvalueof{/pgf/superellipse x exponent}}%
- \pgfmathmultiply@{\pgfmathresult}{2}%
- \let\xexponent\pgfmathresult
- }
- \savedmacro\yexponent{%
- \pgfmathreciprocal{\pgfkeysvalueof{/pgf/superellipse y exponent}}%
- \pgfmathmultiply@{\pgfmathresult}{2}%
- \let\yexponent\pgfmathresult
- }
- \savedmacro\step{%
- \pgfmathtruncatemacro\step{\pgfkeysvalueof{/pgf/superellipse step}}%
- }
- \backgroundpath{%
- \pgf at process{\radius}%
- \pgfmathsetmacro\xradius{\pgf at x-(\pgfkeysvalueof{/pgf/outer xsep})}%
- \pgfmathsetmacro\yradius{\pgf at y-(\pgfkeysvalueof{/pgf/outer ysep})}%
- \let\pgf at tempa\pgfutil at empty\let\pgf at tempb\pgfutil at empty
- \let\pgf at tempc\pgfutil at empty\let\pgf at tempd\pgfutil at empty
- \c at pgf@counta=\step
- \pgfutil at loop
- \ifnum\c at pgf@counta<90
- \pgfmathsuperellipseXY{\the\c at pgf@counta}{\xexponent}{\yexponent}{\xradius}{\yradius}%
- \edef\pgf at temp{\noexpand\pgfplotstreampoint{\noexpand\pgfqpoint{\pgfmathresultX pt}{\pgfmathresultY pt}}}%
- \pgfutil at append@macrotomacro\pgf at tempa\pgf at temp
- \edef\pgf at temp{\noexpand\pgfplotstreampoint{\noexpand\pgfqpoint{-\pgfmathresultX pt}{\pgfmathresultY pt}}}%
- \pgfutil at prefix@macrotomacro\pgf at tempb\pgf at temp
- \edef\pgf at temp{\noexpand\pgfplotstreampoint{\noexpand\pgfqpoint{-\pgfmathresultX pt}{-\pgfmathresultY pt}}}%
- \pgfutil at append@macrotomacro\pgf at tempc\pgf at temp
- \edef\pgf at temp{\noexpand\pgfplotstreampoint{\noexpand\pgfqpoint{\pgfmathresultX pt}{-\pgfmathresultY pt}}}%
- \pgfutil at prefix@macrotomacro\pgf at tempd\pgf at temp
- \advance\c at pgf@counta by\step
- \pgfutil at repeat
- \pgftransformshift{\centerpoint}%
- \pgfplothandlerclosedcurve
- \pgfplotstreamstart
- \pgfplotstreampoint{\pgfqpoint{\xradius pt}{0pt}}% east
- \pgf at tempa
- \pgfplotstreampoint{\pgfqpoint{0pt}{\yradius pt}}% north
- \pgf at tempb
- \pgfplotstreampoint{\pgfqpoint{-\xradius pt}{0pt}}% west
- \pgf at tempc
- \pgfplotstreampoint{\pgfqpoint{0pt}{-\yradius pt}}% south
- \pgf at tempd
- \pgfplotstreamend
- \pgftransformshift{\centerpoint\pgf at x=-\pgf at x\pgf at y=-\pgf at y}
- }
- \anchorborder{%
- \pgfextract at process\externalpoint{}%
- \ifdim\pgf at x=0pt % catch special case x = 0
- \ifdim\pgf at y<0pt \pgf at anchor@superellipse at south\else\pgf at anchor@superellipse at north\fi
- \else
- \ifdim\pgf at y=0pt % catch special case y = 0
- \ifdim\pgf at x<0pt \pgf at anchor@superellipse at west\else\pgf at anchor@superellipse at east\fi
- \else % both are not zero
- % save original direction
- \pgf at xa=\pgf at x
- \pgf at ya=\pgf at y
- % make both positive, we're not looking at one quadrant
- \ifdim\pgf at xa<0pt \pgf at x=-\pgf at x\fi
- \ifdim\pgf at ya<0pt \pgf at y=-\pgf at y\fi
- % save that point again
- \pgfextract at process\externalpoint{}%
- % we need to do the calculations without any transformations
- % since we're using plots and \pgfpointborderrectangle
- \pgftransformreset
- \pgfintersectionofpaths{%
- % from center to point on rectangle that encompasses superellipse
- \pgf at relevantforpicturesizefalse
- \pgfpathmoveto{\pgfpointorigin}%
- \pgfpathlineto{\pgfpointborderrectangle{\externalpoint}{\radius}}%
- }{%
- \pgf at relevantforpicturesizefalse
- \pgf at process{\radius}
- \edef\xradius{\pgf at sys@tonumber\pgf at x}%
- \edef\yradius{\pgf at sys@tonumber\pgf at y}%
- \let\pgf at tempa\pgfutil at empty
- \c at pgf@counta=\step
- \pgfutil at loop
- \ifnum\c at pgf@counta<90
- \pgfmathsuperellipseXY{\the\c at pgf@counta}{\xexponent}{\yexponent}{\xradius}{\yradius}%
- \edef\pgf at temp{\noexpand\pgfplotstreampoint{\noexpand\pgfqpoint{\pgfmathresultX pt}{\pgfmathresultY pt}}}%
- \pgfutil at append@macrotomacro\pgf at tempa\pgf at temp
- \advance\c at pgf@counta by\step
- \pgfutil at repeat
- % we're only using curveto since closedcurve
- % messes with our other path
- \pgfplothandlercurveto
- \pgfplotstreamstart
- \pgfplotstreampoint{\pgfqpoint{\xradius pt}{0pt}}% east
- \pgf at tempa
- \pgfplotstreampoint{\pgfqpoint{0pt}{\yradius pt}}% north
- \pgfplotstreamend
- }%
- \ifnum\pgfintersectionsolutions>0 % only if a solution was found
- \pgf at process{\pgfpointintersectionsolution{1}}%
- \else % otherwise take the border on the rectangle (close enough?)
- \pgf at process{\pgfpointborderrectangle{\externalpoint}{\radius}}%
- \fi
- \ifdim\pgf at xa<0pt \pgf at x=-\pgf at x\fi
- \ifdim\pgf at ya<0pt \pgf at y=-\pgf at y\fi
- \pgf at process{\pgfpointadd{}{\centerpoint}}%
- \fi
- \fi
- }
-}
-\def\pgfutil at prefix@macrotomacro#1#2{%
- \expandafter\expandafter\expandafter\def\expandafter\expandafter\expandafter%
- #1\expandafter\expandafter\expandafter{\expandafter#2#1}}
-\endinput
Deleted: trunk/Master/texmf-dist/tex/latex/tikz-ext/pgflibraryext.shapes.uncenteredrectangle.code.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tikz-ext/pgflibraryext.shapes.uncenteredrectangle.code.tex 2022-11-03 20:29:02 UTC (rev 64919)
+++ trunk/Master/texmf-dist/tex/latex/tikz-ext/pgflibraryext.shapes.uncenteredrectangle.code.tex 2022-11-03 21:03:19 UTC (rev 64920)
@@ -1,307 +0,0 @@
-% Copyright 2022 by Qrrbrbirlbel
-%
-% This file may be distributed and/or modified
-%
-% 1. under the LaTeX Project Public License and/or
-% 2. under the GNU Free Documentation License.
-%
-\pgfutil at IfUndefined{pgfnodepartthreebox}{%
- \csname newbox\endcsname\pgfnodepartleftbox
- \csname newbox\endcsname\pgfnodepartrightbox
-}{%
- \let\pgfnodepartleftbox\pgfnodeparttwobox
- \let\pgfnodepartrightbox\pgfnodepartthreebox
-}
-\pgfset{
- uncentered rectangle center yshift/.initial=,
- uncentered rectangle center/@center/.initial=2,
- uncentered rectangle center/.is choice,
- uncentered rectangle center/real/.code=\pgfkeyssetvalue{/pgf/uncentered rectangle center/@center}{0},
- uncentered rectangle center/left/.code=\pgfkeyssetvalue{/pgf/uncentered rectangle center/@center}{1},
- uncentered rectangle center/text/.code=\pgfkeyssetvalue{/pgf/uncentered rectangle center/@center}{2},
- uncentered rectangle center/right/.code=\pgfkeyssetvalue{/pgf/uncentered rectangle center/@center}{3}}
-
-\pgfdeclareshape{uncentered rectangle}{%
- \nodeparts{text,left,right}%
- \savedanchor\middleCenter{%
- \pgf at x=.5\wd\pgfnodeparttextbox
- %
- \pgf at y=\dp\pgfnodeparttextbox
- \ifdim\dp\pgfnodepartleftbox>\pgf at y
- \pgf at y=\dp\pgfnodepartleftbox
- \fi
- \ifdim\dp\pgfnodepartrightbox>\pgf at y
- \pgf at y=\dp\pgfnodepartrightbox
- \fi
- %
- \pgf at ya=\ht\pgfnodeparttextbox
- \ifdim\ht\pgfnodepartleftbox>\pgf at ya
- \pgf at ya=\ht\pgfnodepartleftbox
- \fi
- \ifdim\ht\pgfnodepartrightbox>\pgf at ya
- \pgf at ya=\ht\pgfnodepartrightbox
- \fi
- \advance\pgf at ya by -\pgf at y
- \pgf at y=.5\pgf at ya
- }%
- \savedanchor\leftCenter{%
- % y should be still the same as before
- \pgf at x=-.5\wd\pgfnodepartleftbox
- }%
- \savedanchor\rightCenter{%
- % y should be still the same as before
- \pgf at x=.5\wd\pgfnodepartrightbox
- \advance\pgf at x by \wd\pgfnodeparttextbox
- }%
- \savedanchor\realCenter{%
- % y should be still the same as before
- \pgf at x=-.5\wd\pgfnodepartleftbox
- \advance\pgf at x by .5\wd\pgfnodeparttextbox
- \advance\pgf at x by .5\wd\pgfnodepartrightbox
- }%
- \savedanchor\southwest{%
- % total width
- \pgf at xa=\wd\pgfnodepartleftbox
- \advance\pgf at xa by\wd\pgfnodepartrightbox
- \advance\pgf at xa by\wd\pgfnodeparttextbox
- %
- \pgfmathsetlength\pgf at xc{\pgfkeysvalueof{/pgf/inner xsep}}%
- \advance\pgf at xa by 2\pgf at xc
- \pgfmathsetlength\pgf at xb{\pgfkeysvalueof{/pgf/minimum width}}%
- \ifdim\pgf at xb>\pgf at xa
- \pgf at xa=\pgf at xb
- \fi
- % left side of shape
- \advance\pgf at x by -.5\pgf at xa
- \pgfmathsetlength\pgf at xa{\pgfkeysvalueof{/pgf/outer xsep}}%
- \advance\pgf at x by -\pgf at xa
- %
- % total height
- \pgf at ya=\dp\pgfnodepartleftbox
- \ifdim\pgf at ya<\dp\pgfnodeparttextbox
- \pgf at ya=\dp\pgfnodeparttextbox
- \fi
- \ifdim\pgf at ya<\dp\pgfnodepartrightbox
- \pgf at ya=\dp\pgfnodepartrightbox
- \fi
- \pgf at yb=\ht\pgfnodepartleftbox
- \ifdim\pgf at yb<\ht\pgfnodeparttextbox
- \pgf at yb=\ht\pgfnodeparttextbox
- \fi
- \ifdim\pgf at yb<\ht\pgfnodepartrightbox
- \pgf at yb=\ht\pgfnodepartrightbox
- \fi
- \advance\pgf at ya by \pgf at yb
- %
- \pgfmathsetlength\pgf at yc{\pgfkeysvalueof{/pgf/inner ysep}}%
- \advance\pgf at ya by 2\pgf at yc
- \pgfmathsetlength\pgf at yb{\pgfkeysvalueof{/pgf/minimum height}}%
- \ifdim\pgf at yb>\pgf at ya
- \pgf at ya=\pgf at yb
- \fi
- % lower side of the shape
- \advance\pgf at y by -.5\pgf at ya
- \pgfmathsetlength\pgf at ya{\pgfkeysvalueof{/pgf/outer ysep}}%
- \advance\pgf at y by -\pgf at ya
- }%
- \savedanchor\northeast{%
- % first, let's calculate the real center again:
- %
- \pgf at x=-.5\wd\pgfnodepartleftbox
- \advance\pgf at x by .5\wd\pgfnodeparttextbox
- \advance\pgf at x by .5\wd\pgfnodepartrightbox
- %
- \pgf at y=\dp\pgfnodeparttextbox
- \ifdim\dp\pgfnodepartleftbox>\pgf at y
- \pgf at y=\dp\pgfnodepartleftbox
- \fi
- \ifdim\dp\pgfnodepartrightbox>\pgf at y
- \pgf at y=\dp\pgfnodepartrightbox
- \fi
- %
- \pgf at ya=\ht\pgfnodeparttextbox
- \ifdim\ht\pgfnodepartleftbox>\pgf at ya
- \pgf at ya=\ht\pgfnodepartleftbox
- \fi
- \ifdim\ht\pgfnodepartrightbox>\pgf at ya
- \pgf at ya=\ht\pgfnodepartrightbox
- \fi
- \advance\pgf at ya by -\pgf at y
- \pgf at y=.5\pgf at ya
- %
- % now we can calculate the anchor
- % total width
- %
- \pgf at xa=\wd\pgfnodepartleftbox
- \advance\pgf at xa by\wd\pgfnodepartrightbox
- \advance\pgf at xa by\wd\pgfnodeparttextbox
- %
- \pgfmathsetlength\pgf at xc{\pgfkeysvalueof{/pgf/inner xsep}}%
- \advance\pgf at xa by 2\pgf at xc
- \pgfmathsetlength\pgf at xb{\pgfkeysvalueof{/pgf/minimum width}}%
- \ifdim\pgf at xb>\pgf at xa
- \pgf at xa=\pgf at xb
- \fi
- % right side of shape
- \advance\pgf at x by .5\pgf at xa
- \pgfmathsetlength\pgf at xa{\pgfkeysvalueof{/pgf/outer xsep}}%
- \advance\pgf at x by \pgf at xa
- %
- % total height
- \pgf at ya=\dp\pgfnodepartleftbox
- \ifdim\pgf at ya<\dp\pgfnodeparttextbox
- \pgf at ya=\dp\pgfnodeparttextbox
- \fi
- \ifdim\pgf at ya<\dp\pgfnodepartrightbox
- \pgf at ya=\dp\pgfnodepartrightbox
- \fi
- \pgf at yb=\ht\pgfnodepartleftbox
- \ifdim\pgf at yb<\ht\pgfnodeparttextbox
- \pgf at yb=\ht\pgfnodeparttextbox
- \fi
- \ifdim\pgf at yb<\ht\pgfnodepartrightbox
- \pgf at yb=\ht\pgfnodepartrightbox
- \fi
- \advance\pgf at ya by \pgf at yb
- %
- \pgfmathsetlength\pgf at yc{\pgfkeysvalueof{/pgf/inner ysep}}%
- \advance\pgf at ya by 2\pgf at yc
- \pgfmathsetlength\pgf at yb{\pgfkeysvalueof{/pgf/minimum height}}%
- \ifdim\pgf at yb>\pgf at ya
- \pgf at ya=\pgf at yb
- \fi
- % upper side of the shape
- \advance\pgf at y by .5\pgf at ya
- \pgfmathsetlength\pgf at ya{\pgfkeysvalueof{/pgf/outer ysep}}%
- \advance\pgf at y by \pgf at ya
- }%
- %
- \anchor{center}{%
- \ifcase\pgfkeysvalueof{/pgf/uncentered rectangle center/@center}\relax
- \realCenter\or
- \leftCenter\or
- \middleCenter\or
- \rightCenter\else
- \realCenter
- \fi
- \pgfkeysgetvalue{/pgf/uncentered rectangle center yshift}\pgf at temp
- \pgfutil at ifxempty\pgf at temp{% real center used
- }{% calculate center
- \pgfmathsetlength\pgf at y{\pgf at temp}%
- }%
- }%
- \anchor{left} {\leftCenter \multiply\pgf at x by2 \pgf at y=0pt }
- \anchor{right} {\middleCenter\multiply\pgf at x by2 \pgf at y=0pt }
- \anchor{real center} {\realCenter}
- \anchor{left center} {\leftCenter}
- \anchor{right center}{\rightCenter}
- \anchor{text center} {\middleCenter}
- \anchor{south west} {\southwest}
- \anchor{north east} {\northeast}
- \anchor{mid}{%
- \csname pgf at anchor@uncentered rectangle at center\endcsname
- \pgfmathsetlength\pgf at y{.5ex}}%
- \anchor{base}{%
- \csname pgf at anchor@uncentered rectangle at center\endcsname
- \pgf at y=0pt }%
- \anchor{left mid} {\leftCenter \pgfmathsetlength\pgf at y{+.5ex}}
- \anchor{text mid} {\middleCenter\pgfmathsetlength\pgf at y{+.5ex}}
- \anchor{right mid} {\rightCenter \pgfmathsetlength\pgf at y{+.5ex}}
- \anchor{real mid} {\realCenter \pgfmathsetlength\pgf at y{+.5ex}}
- \anchor{left base} {\leftCenter \pgf at y=0pt }
- \anchor{text base} {\middleCenter\pgf at y=0pt }
- \anchor{right base} {\rightCenter \pgf at y=0pt }
- \anchor{real base} {\realCenter \pgf at y=0pt }
- \anchor{real south} {\pgf at anchor@rectangle at south}
- \anchor{real north} {\pgf at anchor@rectangle at north}
- \anchor{text north} {\pgf at anchor@rectangle at north\pgf at ya=\pgf at y\middleCenter\pgf at y=\pgf at ya}
- \anchor{left north} {\pgf at anchor@rectangle at north\pgf at ya=\pgf at y\leftCenter \pgf at y=\pgf at ya}
- \anchor{right north}{\pgf at anchor@rectangle at north\pgf at ya=\pgf at y\rightCenter \pgf at y=\pgf at ya}
- \anchor{text south} {\pgf at anchor@rectangle at south\pgf at ya=\pgf at y\middleCenter\pgf at y=\pgf at ya}
- \anchor{left south} {\pgf at anchor@rectangle at south\pgf at ya=\pgf at y\leftCenter \pgf at y=\pgf at ya}
- \anchor{right south}{\pgf at anchor@rectangle at south\pgf at ya=\pgf at y\rightCenter \pgf at y=\pgf at ya}
- \anchor{north}{%
- \pgf at anchor@rectangle at north
- \pgf at ya=\pgf at y
- \csname pgf at anchor@uncentered rectangle at center\endcsname
- \pgf at y=\pgf at ya
- }
- \anchor{south}{%
- \pgf at anchor@rectangle at south
- \pgf at ya=\pgf at y
- \csname pgf at anchor@uncentered rectangle at center\endcsname
- \pgf at y=\pgf at ya
- }
- %\anchor{base right}{\middleCenter\pgf at xa=2\pgf at x}% TODO
- \anchor{real west}{%
- \pgf at process{\northeast}%
- \pgf at ya=.5\pgf at y
- \pgf at process{\southwest}%
- \pgf at y=.5\pgf at y
- \advance\pgf at y by \pgf at ya
- }%
- \anchor{real east}{%
- \pgf at process{\southwest}%
- \pgf at ya=.5\pgf at y
- \pgf at process{\northeast}%
- \pgf at y=.5\pgf at y
- \advance\pgf at y by \pgf at ya
- }%
- \anchor{west}{%
- \pgf at process{\southwest}%
- \pgf at xa=\pgf at x
- \pgf at process{\csname pgf at anchor@uncentered rectangle at center\endcsname}%
- \pgf at x=\pgf at xa
- }%
- \anchor{east}{%
- \pgf at process{\northeast}%
- \pgf at xa=\pgf at x
- \pgf at process{\csname pgf at anchor@uncentered rectangle at center\endcsname}%
- \pgf at x=\pgf at xa
- }%
- \inheritanchor[from=rectangle]{south west}
- \inheritanchor[from=rectangle]{north west}
- \inheritanchor[from=rectangle]{south east}
- \inheritanchor[from=rectangle]{north east}
- \inheritanchor[from=rectangle]{mid west}
- \inheritanchor[from=rectangle]{mid east}
- \inheritanchor[from=rectangle]{base west}
- \inheritanchor[from=rectangle]{base east}
- \inheritbackgroundpath[from=rectangle]
- \anchorborder{%
- % xa/ya is target
- \pgf at xa=\pgf at x
- \pgf at ya=\pgf at y
- % xc/yc is "center"
- \pgf at sh@reanchor{uncentered rectangle}{center}%
- \pgf at xc=\pgf at x
- \pgf at yc=\pgf at y
- \ifdim\pgf at xa<0pt
- % left side
- \southwest
- \advance\pgf at x by -\pgf at xc
- \advance\pgf at y by -\pgf at yc
- \pgf at x=-\pgf at x
- \pgf at y=-\pgf at y
- \edef\pgf at marshal{%
- \noexpand\pgfpointborderrectangle
- {\noexpand\pgfqpoint{\the\pgf at xa}{\the\pgf at ya}}
- {\noexpand\pgfqpoint{\the\pgf at x}{\the\pgf at y}}%
- }%
- \else
- % right side
- \northeast
- \advance\pgf at x by -\pgf at xc
- \advance\pgf at y by -\pgf at yc
- \edef\pgf at marshal{%
- \noexpand\pgfpointborderrectangle
- {\noexpand\pgfqpoint{\the\pgf at xa}{\the\pgf at ya}}
- {\noexpand\pgfqpoint{\the\pgf at x}{\the\pgf at y}}%
- }%
- \fi
- \pgf at process{\pgf at marshal}%
- \advance\pgf at x by\pgf at xc
- \advance\pgf at y by\pgf at yc
- }%
-}
-\endinput
\ No newline at end of file
Deleted: trunk/Master/texmf-dist/tex/latex/tikz-ext/pgflibraryext.transformations.mirror.code.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tikz-ext/pgflibraryext.transformations.mirror.code.tex 2022-11-03 20:29:02 UTC (rev 64919)
+++ trunk/Master/texmf-dist/tex/latex/tikz-ext/pgflibraryext.transformations.mirror.code.tex 2022-11-03 21:03:19 UTC (rev 64920)
@@ -1,96 +0,0 @@
-% Copyright 2022 by Qrrbrbirlbel
-%
-% This file may be distributed and/or modified
-%
-% 1. under the LaTeX Project Public License and/or
-% 2. under the GNU Free Documentation License.
-%
-\def\pgftransformxmirror#1{
- \pgfmathparse{#1}%
- \ifpgfmathunitsdeclared
- \pgf at xa\pgfmathresult pt\relax
- \multiply\pgf at xa2
- \pgftransformcm{-1}{0}{0}{1}{\pgfqpoint{\pgf at xa}{0pt}}%
- \else
- \pgftransformmirror{\pgfqpointxy{\pgfmathresult}{0}}{\pgfpointadd{\pgfqpointxy{\pgfmathresult}{0}}{\pgfqpointxy{0}{1}}}%
- \fi
-}
-\def\pgftransformymirror#1{
- \pgfmathparse{#1}%
- \ifpgfmathunitsdeclared
- \pgf at ya\pgfmathresult pt\relax
- \multiply\pgf at ya2
- \pgftransformcm{1}{0}{0}{-1}{\pgfqpoint{0pt}{\pgf at ya}}%
- \else
- \edef\pgf at marshal{\noexpand\pgftransformmirror{\noexpand\pgfqpointxy{0}{\pgfmathresult}}%
- {\noexpand\pgfpointadd{\noexpand\pgfqpointxy{0}{\pgfmathresult}}{\noexpand\pgfqpointxy{1}{0}}}}%
- \pgf at marshal
- \fi}
-\def\pgftransformmirror#1#2{%
- \pgfextract at process\pgf at tempa{#1}%
- \pgfpointnormalised{\pgfpointdiff{\pgf at tempa}{#2}}%
- \pgf at xa=\pgf at sys@tonumber\pgf at y\pgf at x
- \pgf at xb=\pgf at sys@tonumber\pgf at x\pgf at x
- \pgf at yb=\pgf at sys@tonumber\pgf at y\pgf at y
- \multiply\pgf at xa2
- \pgf at xc=-\pgf at yb\advance\pgf at xc\pgf at xb
- \pgf at yc=-\pgf at xb\advance\pgf at yc\pgf at yb
- \edef\pgf at temp{{\the\pgf at xc}{+\the\pgf at xa}{+\the\pgf at xa}{+\the\pgf at yc}}%
- \expandafter\pgf at transformcm\pgf at temp{\pgf at tempa}%
- \pgftransformshift{\pgfpointscale{-1}{\pgf at tempa}}%
-}
-
-\def\pgfqtransformmirror#1{%
- \pgfpointnormalised{#1}%
- \pgf at xa=\pgf at sys@tonumber\pgf at y\pgf at x
- \pgf at xb=\pgf at sys@tonumber\pgf at x\pgf at x
- \pgf at yb=\pgf at sys@tonumber\pgf at y\pgf at y
- \multiply\pgf at xa2
- \pgf at xc=-\pgf at yb\advance\pgf at xc\pgf at xb
- \pgf at yc=-\pgf at xb\advance\pgf at yc\pgf at yb
- \edef\pgf at temp{{\the\pgf at xc}{+\the\pgf at xa}{+\the\pgf at xa}{+\the\pgf at yc}}%
- \expandafter\pgf at transformcm\pgf at temp{\pgfpointorigin}%
-}
-
-% Using existant transformation (shift, rotate, yscale=-1, rotate back, shift back)
-\def\pgftransformxMirror#1{
- \pgfmathparse{#1}%
- \ifpgfmathunitsdeclared
- \pgf at xa\pgfmathresult pt\relax
- \multiply\pgf at xa2
- \pgftransformcm{-1}{0}{0}{1}{\pgfqpoint{\pgf at xa}{0pt}}%
- \else
- \pgftransformMirror{\pgfqpointxy{\pgfmathresult}{0}}{\pgfpointadd{\pgfqpointxy{\pgfmathresult}{0}}{\pgfqpointxy{0}{1}}}%
- \fi
-}
-\def\pgftransformyMirror#1{
- \pgfmathparse{#1}%
- \ifpgfmathunitsdeclared
- \pgf at ya\pgfmathresult pt\relax
- \multiply\pgf at ya2
- \pgftransformcm{1}{0}{0}{-1}{\pgfqpoint{0pt}{\pgf at ya}}%
- \else
- \edef\pgf at marshal{\noexpand\pgftransformMirror{\noexpand\pgfqpointxy{0}{\pgfmathresult}}%
- {\noexpand\pgfpointadd{\noexpand\pgfqpointxy{0}{\pgfmathresult}}{\noexpand\pgfqpointxy{1}{0}}}}%
- \pgf at marshal
- \fi}
-
-\def\pgftransformMirror#1#2{%
- \pgfextract at process\pgf at tempa{#1}%
- \pgfmathanglebetweenpoints{\pgf at tempa}{#2}%
- \let\pgf at temp\pgfmathresult
- \pgftransformshift{\pgf at tempa}%
- \pgftransformrotate{\pgf at temp}%
- \pgftransformyscale{-1}%
- \pgftransformrotate{-\pgf at temp}%
- \pgftransformshift{\pgfqpointscale{-1}{\pgf at tempa}}%
-}
-
-\def\pgfqtransformMirror#1{%
- \pgfmathanglebetweenpoints{\pgfpointorigin}{#1}%
- \let\pgf at temp\pgfmathresult
- \pgftransformrotate{\pgf at temp}%
- \pgftransformyscale{-1}%
- \pgftransformrotate{-\pgf at temp}%
-}
-\endinput
\ No newline at end of file
Deleted: trunk/Master/texmf-dist/tex/latex/tikz-ext/tikzlibraryext.calendar-plus.code.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tikz-ext/tikzlibraryext.calendar-plus.code.tex 2022-11-03 20:29:02 UTC (rev 64919)
+++ trunk/Master/texmf-dist/tex/latex/tikz-ext/tikzlibraryext.calendar-plus.code.tex 2022-11-03 21:03:19 UTC (rev 64920)
@@ -1,93 +0,0 @@
-% Copyright 2022 by Qrrbrbirlbel
-%
-% This file may be distributed and/or modified
-%
-% 1. under the LaTeX Project Public License and/or
-% 2. under the GNU Free Documentation License.
-%
-
-\usetikzlibrary{calendar}
-\pgfutil at usemodule{pgfcalendar-ext}
-
-% Shift between days
-
-\def\tikz at lib@cal at xshift{\pgfkeysvalueof{/tikz/day xshift}}
-\def\tikz at lib@cal at yshift{\pgfkeysvalueof{/tikz/day yshift}}
-\tikzset{day xshift/.initial=3ex,day yshift/.initial=3.5ex}
-
-% Shift between months
-
-\def\tikz at lib@cal at month@xshift{\pgfkeysvalueof{/tikz/month xshift}}
-\def\tikz at lib@cal at month@yshift{\pgfkeysvalueof{/tikz/month yshift}}
-\tikzset{month xshift/.initial=9ex,month yshift/.initial=9ex}
-
-% Internal option for storing the "width" of a calendar as a number of
-% days
-
-\def\tikz at lib@cal at width{\pgfkeysvalueof{/tikz/tikz at lib@cal at width}}
-\tikzset{tikz at lib@cal at width/.initial=1}
-
-% Weeks
-
-\def\tikzweekcode{\pgfkeysvalueof{/tikz/week code}}
-\def\tikzweektext{\pgfkeysvalueof{/tikz/week text}}
-
-\tikzset{
- week code/.initial={%
- \node[every week]{\pgfkeysvalueof{/tikz/week text}};},
- week text/.initial={\%n=},
- every week/.style=,
- week label left/.style={
- every week/.append style={
- anchor=base east,
- xshift=-1.25*\pgfkeysvalueof{/tikz/day xshift}},
- execute before day scope=%
- \ifdate{Monday, equals=\pgfcalendarbeginiso}{\tikzweekcode}{}}}
-
-%
-% Overwriting original \tikz at lib@cal at if@else at code
-%
-\def\tikz at lib@cal at if@else at code#1#2#3{%
- \pgfutil at addto@macro\tikz at lib@cal at ifs{\ifdate{#1}{#2}{#3}}%
- \tikz at lib@cal at scanner%
-}
-
-%
-% Overwriting original \tikz at lib@cal at stop
-%
-\def\tikz at lib@cal at stop{%
- \pgftransformshift{\tikz at node@at}%
- \expandafter\pgfcalendar\expandafter{\tikz at fig@name}{\tikz at lib@cal at start}{\tikz at lib@cal at end}%
- {%
- \tikz at before@day%
- \scope%
- \tikz at atbegin@day%
- \let\pgfutil at addto@macro\pgfutil at secondoftwo
- \tikz at lib@cal at ifs%
- \tikzdaycode%
- \tikz at atend@day%
- \endscope%
- \tikz at after@day%
- }%
- \endgroup%
-}
-
-\def\pgfutil at addto@macro#1#2{\expandafter\def\expandafter#1\expandafter{#1#2}}
-
-\pgfmathdeclarefunction{weeksinmonthofyear}{3}{% #1 = first weekday, #2 = month, #3 = year
- \begingroup
- \pgfmathlastdayinmonthofyear@{#2}{#3}%
- \pgfmathadd@{#1}{\pgfmathresult}%
- \pgfmathdivide@{\pgfmathresult}{7}%
- \pgfmathceil@{\pgfmathresult}%
- \pgfmathint@{\pgfmathresult}%
- \pgfmathsmuggle\pgfmathresult
- \endgroup
-}
-\pgfmathdeclarefunction{lastdayinmonthofyear}{2}{% #1 = month, #2 = year
- \begingroup
- \pgfcalendar at getlastYMX{#2}{#1}{\pgfutil at tempcnta}%
- \edef\pgfmathresult{\the\pgfutil at tempcnta}%
- \pgfmathsmuggle\pgfmathresult
- \endgroup
-}
\ No newline at end of file
Deleted: trunk/Master/texmf-dist/tex/latex/tikz-ext/tikzlibraryext.misc.code.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tikz-ext/tikzlibraryext.misc.code.tex 2022-11-03 20:29:02 UTC (rev 64919)
+++ trunk/Master/texmf-dist/tex/latex/tikz-ext/tikzlibraryext.misc.code.tex 2022-11-03 21:03:19 UTC (rev 64920)
@@ -1,180 +0,0 @@
-% Copyright 2022 by Qrrbrbirlbel
-%
-% This file may be distributed and/or modified
-%
-% 1. under the LaTeX Project Public License and/or
-% 2. under the GNU Free Documentation License.
-%
-\usepgflibrary{ext.pgfkeys-plus}%
-
-%% full arc
-%% https://tex.stackexchange.com/a/144297/16595
-%% The postfix operator R is added to PGFmath,
-%% it allows the use of angular segments.
-%% full arc = 10 makes it so that
-%% 1R = 36°
-%% 2R = 72°
-%% …
-%% 10R = 360°
-%% Calling the full arc key with an empty value
-%% makes 1R = 1°
-\pgfset{full arc/.code=%
- \def\pgf at temp{#1}%
- \ifx\pgfutil at empty\pgf at temp
- \let\pgfmath at fullarc@factor\pgfutil at empty
- \else
- \pgfmathsetmacro\pgfmath at fullarc@factor{360/(#1)}%
- \fi,full arc=}
-\pgfmathdeclareoperator{R}{full arc}{1}{postfix}{950}
-\pgfmathdeclarefunction{full arc}{1}{%
- \begingroup
- \pgfmath at x=#1pt\relax
- \ifx\pgfmath at fullarc@factor\pgfutil at empty\else
- \pgfmath at x\pgfmath at fullarc@factor\pgfmath at x
- \fi
- \pgfmath at returnone\pgfmath at x
- \endgroup}
-
-%% foreach
-%% http://tex.stackexchange.com/a/126418/16595
-%% instead of \foreach \var in {start, start + delta, ..., end}
-%% this allows to use \foreach[use int={start to end step delta}] without(!) a list in {}
-%% the values start, end and delta are evaluated by PGFmath at the start of the loop.
-%% In addition to use int, there's also use float.
-\newif\iftikzext at pgf@foreach at no@list
-\pgfqkeys{/pgf/foreach}{
- use int/.code={%
- \tikzext at pgf@foreach at no@list at parse@to\pgfmathtruncatemacro#1\pgffor at stop
- },
- use float/.code={%
- \tikzext at pgf@foreach at no@list at parse@to\pgfmathsetmacro#1\pgffor at stop
- }
-}
-
-\def\tikzext at pgf@foreach at no@list at parse@to#1#2to#3\pgffor at stop{%
- \tikzext at pgf@foreach at no@listtrue
- #1\foreachStart{#2}%
- \pgfutil at in@{step}{#3}
- \ifpgfutil at in@
- \tikzext at pgf@foreach at no@list at parse@step{#1}#3\pgffor at stop
- \else
- \tikzext at pgf@foreach at no@list at parse@step{#1}#3step1\pgffor at stop
- \fi
- \edef\tikzext at pgf@foreach at no@list at list{\foreachStart,\foreachSecond,...,\foreachEnd}%
-}
-\def\tikzext at pgf@foreach at no@list at parse@step#1#2step#3\pgffor at stop{%
- #1\foreachEnd{#2}%
- #1\foreachSecond{\foreachStart+#3}%
-}
-\def\pgffor at vars{% manually extended, better etoolbox
- \pgfutil at ifnextchar i{\pgffor@@vars at end}{%
- \pgfutil at ifnextchar[{\pgffor@@vars at opt}{%]
- \pgfutil at ifnextchar/{\pgffor@@vars at slash@gobble}{%
- \iftikzext at pgf@foreach at no@list\expandafter\pgfutil at firstoftwo\else
- \expandafter\pgfutil at secondoftwo\fi
- {\tikzext at pgf@foreach at no@listfalse\pgffor at macro@list\tikzext at pgf@foreach at no@list at list}
- {\pgffor@@vars}}}}}%
-
-%% PGFmath
-%% strrepeat("x", 5) = "xxxxx"
-\pgfmathdeclarefunction{strrepeat}{2}{%
- \begingroup\pgfmathint{#2}\pgfmath at count\pgfmathresult
- \let\pgfmathresult\pgfutil at empty
- \pgfutil at loop\ifnum\pgfmath at count>0\relax
- \expandafter\def\expandafter\pgfmathresult\expandafter{\pgfmathresult#1}%
- \advance\pgfmath at count-1\relax
- \pgfutil at repeat\pgfmath at smuggleone\pgfmathresult\endgroup}
-
-%% isInString("foo", "foobar") = true (= 1)
-%% isInString("boo", "foobar") = false (= 0)
-\pgfmathdeclarefunction{isInString}{2}{%
- \pgfutil at in@{#1}{#2}%
- \ifpgfutil at in@\def\pgfmathresult{1}\else\def\pgfmathresult{0}\fi}
-
-%% strcat("foo", "bar") = "foobar" (can have more than two parameters)
-\pgfutil at IfUndefined{pgfmathstrcat@}{
- \pgfmathdeclarefunction{strcat}{...}{%
- \begingroup
- \let\pgfmathresult\pgfutil at empty
- \pgfmathstrcat@@#1\pgfmath at stop}
- \def\pgfmathstrcat@@#1{%
- \ifx\pgfmath at stop#1%
- \def\pgfmath at next{\pgfmath at smuggleone\pgfmathresult\endgroup}
- \else
- \expandafter\def\expandafter\pgfmathresult\expandafter{\pgfmathresult#1}%
- \let\pgfmath at next\pgfmathstrcat@@
- \fi
- \pgfmath at next}
-}{}
-
-% http://tex.stackexchange.com/questions/244569/bounding-lines-around-tax-nodes/244619#244619
-\pgfmathdeclarefunction{atanXY}{2}{\pgfmathatantwo@{#2}{#1}}
-\pgfmathdeclarefunction{atanYX}{2}{\pgfmathatantwo@{#1}{#2}}
-
-%% http://tex.stackexchange.com/a/132939/16595
-\tikzset{
- @edges through/.code={{{% three braces to protect \pgfeov
- \pgfutil at ifnextchar[{\pgfkeysvalueof{/tikz/@@edges through/. at cmd}}
- {\pgfkeysvalueof{/tikz/@@edges through/. at cmd}[]}#1\pgfeov}}},
- @@edges through/.style args={[#1]#2}{/tikz/insert path={edge[#1] (#2) (#2)}},
- edges through/.style={/tikz/@edges through/.list={#1}}}
-\tikzset{
- @edges to/.code={{{% three braces to protect \pgfeov
- \pgfutil at ifnextchar[{\pgfkeysvalueof{/tikz/@@edges to/. at cmd}}
- {\pgfkeysvalueof{/tikz/@@edges to/. at cmd}[]}#1\pgfeov}}},
- @@edges to/.style args={[#1]#2}{/tikz/insert path={edge[#1] (#2)}},
- edges to/.style={/tikz/@edges to/.list={#1}}}
-\tikzset{
- @tos to/.code={{{% three braces to protect \pgfeov
- \pgfutil at ifnextchar[{\pgfkeysvalueof{/tikz/@@tos to/. at cmd}}
- {\pgfkeysvalueof{/tikz/@@tos to/. at cmd}[]}#1\pgfeov}}},
- @@tos to/.style args={[#1]#2}{/tikz/insert path={to[#1] (#2)}},
- tos to/.style={/tikz/@tos to/.list={#1}}}
-
-
-\pgfmathdeclarefunction{distancebetween}{2}{% only coordinates/nodes
- \begingroup
- \pgfpointdiff{\pgfpointanchor{#1}{center}}{\pgfpointanchor{#2}{center}}%
- \edef\pgfmath at temp{{\pgf at sys@tonumber\pgf at x}{\pgf at sys@tonumber\pgf at y}}%
- \expandafter\pgfmathveclen@\pgfmath at temp
- \pgfmath at smuggleone\pgfmathresult
- \endgroup}
-\pgfmathdeclarefunction{qdistancebetween}{1}{% only coordinates/nodes
- \begingroup
- \pgfpointdiff{\pgfpointorigin}{\pgfpointanchor{#1}{center}}%
- \edef\pgfmath at temp{{\pgf at sys@tonumber\pgf at x}{\pgf at sys@tonumber\pgf at y}}%
- \expandafter\pgfmathveclen@\pgfmath at temp
- \pgfmath at smuggleone\pgfmathresult
- \endgroup}
-
-\pgfmathdeclarefunction{qanglebetween}{1}{%
- \pgfmathanglebetweenpoints{\pgfpointorigin}{\pgfpointanchor{#1}{center}}}
-
-\pgfmathdeclarefunction{anglebetween}{2}{%
- \pgfmathanglebetweenpoints{\pgfpointanchor{#1}{center}}{\pgfpointanchor{#2}{center}}}
-
-\pgfmathdeclarefunction{isEmpty}{1}{%
- \begingroup
- \def\pgfmath at temp{#1}%
- \pgfutil at ifxempty\pgfmath at temp{\def\pgfmathresult{1}}{\def\pgfmathresult{0}}%
- \pgfmath at smuggleone\pgfmathresult
- \endgroup}
-
-\pgfset{
- declare constant/.code={%
- \let\pgfmathdeclareconstant@@@\pgfutil at empty
- \pgfkeysvalueof{/pgf/declare function/execute at begin function}%
- \pgfmathdeclareconstant@#1@=@;\pgf at stop
- \pgfkeysvalueof{/pgf/declare function/execute at end function}%
- \pgfmathdeclareconstant@@@
- }}
-\def\pgfmathdeclareconstant@{%
- \pgfutil at ifnextchar x\pgfmathdeclareconstant@@\pgfmathdeclareconstant@@
-}
-\def\pgfmathdeclareconstant@@#1=#2;#3\pgf at stop{%
- \edef\pgfmath at local@temp{#1}%
- \pgfutil at ifx\pgfmath at local@temp\pgfmath at local@at{}{%
- \pgfutil at g@addto at macro\pgfmathdeclareconstant@@@{\pgfmathdeclarepseudoconstant{#1}{\def\pgfmathresult{#2}}}%
- \pgfmathdeclareconstant@#3\pgf at stop
- }%
-}
\ No newline at end of file
Deleted: trunk/Master/texmf-dist/tex/latex/tikz-ext/tikzlibraryext.node-families.code.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tikz-ext/tikzlibraryext.node-families.code.tex 2022-11-03 20:29:02 UTC (rev 64919)
+++ trunk/Master/texmf-dist/tex/latex/tikz-ext/tikzlibraryext.node-families.code.tex 2022-11-03 21:03:19 UTC (rev 64920)
@@ -1,339 +0,0 @@
-% Copyright 2022 by Qrrbrbirlbel
-%
-% This file may be distributed and/or modified
-%
-% 1. under the LaTeX Project Public License and/or
-% 2. under the GNU Free Documentation License.
-%
-
-\def\tikzext at nf@align at left#1{}
-\def\tikzext at nf@align at center#1{\kern.5#1}
-\def\tikzext at nf@align at right#1{\kern#1}
-
-\pgfqkeys{/tikz/node family}{
- width/.initial=,
- width/.append style={/pgf/minimum width=nf_width},
- height/.initial=,
- height/.append style={/pgf/minimum height=nf_height},
- size/.code=\pgfqkeys{/tikz/node family}{width={#1},height={#1}},
- text depth/.initial=,
- text height/.initial=,
- text width align/.is choice,
- text width align/left/.code=\let\tikzext at nf@align at action\tikzext at nf@align at left,
- text width align/center/.code=\let\tikzext at nf@align at action\tikzext at nf@align at center,
- text width align/right/.code=\let\tikzext at nf@align at action\tikzext at nf@align at right,
- text width align=center,
- text width/.initial=,
- text/.code=\pgfqkeys{/tikz/node family}{text depth={#1},text height={#1},text width={#1}},
- prefix/.initial=\pgfpictureid-,
-}
-\tikzset{node family/.code=\pgfqkeys{/tikz/node family}{#1}}
-
-% #1 = family type + name
-\def\tikzext at nf@save#1{%
- %\errmessage{#1}%
- \immediate\write\pgfutil at auxout{%
- \noexpand\expandafter\noexpand\gdef\noexpand\csname tikzext at nf@#1 at previous\endcsname
- {\csname tikzext at nf@#1 at next\endcsname}%
- }%
-}
-
-% #1 = value to set
-% #2 = family type
-% #3 = return dimen
-\def\tikzext at nf@getandset#1#2#3{%
- % what's our family's name?
- #3=0pt\relax
- \pgfkeysgetvalue{/tikz/node family/#2}\tikzext at nf@familyname
- \pgfutil at ifxempty\tikzext at nf@familyname{% no family to deal with
- }{%
- \edef\tikzext at nf@familyname{\pgfkeysvalueof{/tikz/node family/prefix}\tikzext at nf@familyname}%
- % we need to save the value for the next run
- \pgfutil at IfUndefined{tikzext at nf@#2@\tikzext at nf@familyname @next}{%
- % first time: define first value and install hook at end of picture
- \expandafter\xdef\csname tikzext at nf@#2@\tikzext at nf@familyname @next\endcsname{#1}%
- \edef\tikz at temp{\noexpand\tikzext at nf@save{#2@\tikzext at nf@familyname}}%
- %\expandafter\AtVeryEndDocument\expandafter{\tikz at temp}%
- \expandafter\pgfutil at g@addto at macro\expandafter\tikz at atend@picture\expandafter{\tikz at temp}%
- }{%
- \ifdim\csname tikzext at nf@#2@\tikzext at nf@familyname @next\endcsname<#1\relax
- \expandafter\xdef\csname tikzext at nf@#2@\tikzext at nf@familyname @next\endcsname{#1}%
- \fi
- }%
- \pgfutil at IfUndefined{tikzext at nf@#2@\tikzext at nf@familyname @previous}{% first run, ignore
- }{% set previous value
- #3=\csname tikzext at nf@#2@\tikzext at nf@familyname @previous\endcsname\relax
- }%
- }%
-}
-
-\pgfdeclareshape{Rectangle}{%
- \savedanchor\northeast{%
- % Calculate x
- %
- % First, is width < minimum width?
- \pgf at x=\the\wd\pgfnodeparttextbox%
- \pgfmathsetlength\pgf at xc{\pgfkeysvalueof{/pgf/inner xsep}}%
- \advance\pgf at x by 2\pgf at xc%
- % Qrr: family width
- \tikzext at nf@getandset{\the\pgf at x}{width}{\pgfutil at tempdima}%
- \ifdim\pgf at x<\pgfutil at tempdima
- \pgf at x=\pgfutil at tempdima
- \fi
- %
- \pgfmathsetlength\pgf at xb{\pgfkeysvalueof{/pgf/minimum width}}%
- \ifdim\pgf at x<\pgf at xb%
- % yes, too small. Enlarge...
- \pgf at x=\pgf at xb%
- \fi%
- % Now, calculate right border: .5\wd\pgfnodeparttextbox + .5 \pgf at x + outer sep
- \pgf at x=.5\pgf at x%
- \advance\pgf at x by.5\wd\pgfnodeparttextbox%
- \pgfmathsetlength\pgf at xa{\pgfkeysvalueof{/pgf/outer xsep}}%
- \advance\pgf at x by\pgf at xa%
- % Calculate y
- %
- % First, is height+depth < minimum height?
- \pgf at y=\ht\pgfnodeparttextbox%
- \advance\pgf at y by\dp\pgfnodeparttextbox%
- \pgfmathsetlength\pgf at yc{\pgfkeysvalueof{/pgf/inner ysep}}%
- \advance\pgf at y by 2\pgf at yc%
- % Qrr: family height
- \tikzext at nf@getandset{\the\pgf at y}{height}{\pgfutil at tempdima}%
- \ifdim\pgf at y<\pgfutil at tempdima
- \pgf at y=\pgfutil at tempdima
- \fi
- %
- \pgfmathsetlength\pgf at yb{\pgfkeysvalueof{/pgf/minimum height}}%
- \ifdim\pgf at y<\pgf at yb%
- % yes, too small. Enlarge...
- \pgf at y=\pgf at yb%
- \fi%
- % Now, calculate upper border: .5\ht-.5\dp + .5 \pgf at y + outer sep
- \pgf at y=.5\pgf at y%
- \advance\pgf at y by-.5\dp\pgfnodeparttextbox%
- \advance\pgf at y by.5\ht\pgfnodeparttextbox%
- \pgfmathsetlength\pgf at ya{\pgfkeysvalueof{/pgf/outer ysep}}%
- \advance\pgf at y by\pgf at ya%
- }%
-
- \savedanchor\southwest{%
- % Calculate x
- %
- % First, is width < minimum width?
- \pgf at x=\wd\pgfnodeparttextbox%
- \pgfmathsetlength\pgf at xc{\pgfkeysvalueof{/pgf/inner xsep}}%
- \advance\pgf at x by 2\pgf at xc%
- % Qrr: family width
- \tikzext at nf@getandset{\the\pgf at x}{width}{\pgfutil at tempdima}%
- \ifdim\pgf at x<\pgfutil at tempdima
- \pgf at x=\pgfutil at tempdima
- \fi
- %
- \pgfmathsetlength\pgf at xb{\pgfkeysvalueof{/pgf/minimum width}}%
- \ifdim\pgf at x<\pgf at xb%
- % yes, too small. Enlarge...
- \pgf at x=\pgf at xb%
- \fi%
- % Now, calculate left border: .5\wd\pgfnodeparttextbox - .5 \pgf at x - outer sep
- \pgf at x=-.5\pgf at x%
- \advance\pgf at x by.5\wd\pgfnodeparttextbox%
- \pgfmathsetlength\pgf at xa{\pgfkeysvalueof{/pgf/outer xsep}}%
- \advance\pgf at x by-\pgf at xa%
- % Calculate y
- %
- % First, is height+depth < minimum height?
- \pgf at y=\ht\pgfnodeparttextbox%
- \advance\pgf at y by\dp\pgfnodeparttextbox%
- \pgfmathsetlength\pgf at yc{\pgfkeysvalueof{/pgf/inner ysep}}%
- \advance\pgf at y by 2\pgf at yc%
- % Qrr: family height
- \tikzext at nf@getandset{\the\pgf at y}{height}{\pgfutil at tempdima}%
- \ifdim\pgf at y<\pgfutil at tempdima
- \pgf at y=\pgfutil at tempdima
- \fi
- %
- \pgfmathsetlength\pgf at yb{\pgfkeysvalueof{/pgf/minimum height}}%
- \ifdim\pgf at y<\pgf at yb%
- % yes, too small. Enlarge...
- \pgf at y=\pgf at yb%
- \fi%
- % Now, calculate upper border: .5\ht-.5\dp - .5 \pgf at y - outer sep
- \pgf at y=-.5\pgf at y%
- \advance\pgf at y by-.5\dp\pgfnodeparttextbox%
- \advance\pgf at y by.5\ht\pgfnodeparttextbox%
- \pgfmathsetlength\pgf at ya{\pgfkeysvalueof{/pgf/outer ysep}}%
- \advance\pgf at y by-\pgf at ya%
- }%
- \inheritbackgroundpath[from=rectangle]
- \inheritbeforebackgroundpath[from=rectangle]
- \inheritbehindforegroundpath[from=rectangle]
- \inheritforegroundpath[from=rectangle]
- \inheritbeforeforegroundpath[from=rectangle]
- \inheritanchor[from=rectangle]{center}
- \inheritanchor[from=rectangle]{mid}
- \inheritanchor[from=rectangle]{base}
- \inheritanchor[from=rectangle]{north}
- \inheritanchor[from=rectangle]{south}
- \inheritanchor[from=rectangle]{west}
- \inheritanchor[from=rectangle]{mid west}
- \inheritanchor[from=rectangle]{base west}
- \inheritanchor[from=rectangle]{north west}
- \inheritanchor[from=rectangle]{south west}
- \inheritanchor[from=rectangle]{east}
- \inheritanchor[from=rectangle]{mid east}
- \inheritanchor[from=rectangle]{base east}
- \inheritanchor[from=rectangle]{north east}
- \inheritanchor[from=rectangle]{south east}
- \inheritanchorborder[from=rectangle]
-}
-
-\pgfdeclareshape{Circle}{%
- \savedanchor\centerpoint{% tex/generic/pgf/modules/pgfmoduleshapes.code.tex
- \pgf at x=.5\wd\pgfnodeparttextbox
- \pgf at y=.5\ht\pgfnodeparttextbox
- \advance\pgf at y by-.5\dp\pgfnodeparttextbox
- }%
- \saveddimen\radius{% tex/generic/pgf/modules/pgfmoduleshapes.code.tex
- % Calculate ``height radius''
- \pgf at ya=.5\ht\pgfnodeparttextbox
- \advance\pgf at ya by.5\dp\pgfnodeparttextbox
- \pgfmathsetlength\pgf at yb{\pgfkeysvalueof{/pgf/inner ysep}}%
- \advance\pgf at ya by\pgf at yb
- % Calculate ``width radius''
- \pgf at xa=.5\wd\pgfnodeparttextbox
- \pgfmathsetlength\pgf at xb{\pgfkeysvalueof{/pgf/inner xsep}}%
- \advance\pgf at xa by\pgf at xb
- % Calculate length of radius vector:
- \pgf at process{\pgfpointnormalised{\pgfqpoint{\pgf at xa}{\pgf at ya}}}%
- \ifdim\pgf at x>\pgf at y
- \c at pgf@counta=\pgf at x
- \ifnum\c at pgf@counta=0\relax
- \else
- \divide\c at pgf@counta by 255\relax
- \pgf at xa=16\pgf at xa\relax
- \divide\pgf at xa by\c at pgf@counta
- \pgf at xa=16\pgf at xa\relax
- \fi
- \else
- \c at pgf@counta=\pgf at y
- \ifnum\c at pgf@counta=0\relax
- \else
- \divide\c at pgf@counta by 255\relax
- \pgf at ya=16\pgf at ya\relax
- \divide\pgf at ya by\c at pgf@counta
- \pgf at xa=16\pgf at ya\relax
- \fi
- \fi
- \pgf at x=\pgf at xa%
- % Qrr: check for families
- \tikzext at nf@getandset{\the\dimexpr2\pgf at x\relax}{width}{\pgfutil at tempdima}%
- \tikzext at nf@getandset{\the\dimexpr2\pgf at x\relax}{height}{\pgfutil at tempdimb}%
- % Qrr: and adjust like minimum width and minimum height
- \ifdim\pgf at x<.5\pgfutil at tempdima
- \pgf at x=.5\pgfutil at tempdima
- \fi
- \ifdim\pgf at x<.5\pgfutil at tempdimb
- \pgf at x=.5\pgfutil at tempdimb
- \fi
- % If necessary, adjust radius so that the size requirements are met:
- \pgfmathsetlength{\pgf at xb}{\pgfkeysvalueof{/pgf/minimum width}}%
- \pgfmathsetlength{\pgf at yb}{\pgfkeysvalueof{/pgf/minimum height}}%
- \ifdim\pgf at x<.5\pgf at xb
- \pgf at x=.5\pgf at xb
- \fi
- \ifdim\pgf at x<.5\pgf at yb
- \pgf at x=.5\pgf at yb
- \fi
- % Now, add larger of outer separations.
- \pgfmathsetlength{\pgf at xb}{\pgfkeysvalueof{/pgf/outer xsep}}%
- \pgfmathsetlength{\pgf at yb}{\pgfkeysvalueof{/pgf/outer ysep}}%
- \ifdim\pgf at xb<\pgf at yb
- \advance\pgf at x by\pgf at yb
- \else
- \advance\pgf at x by\pgf at xb
- \fi
- }%
- \inheritbackgroundpath[from=circle]
- \inheritbeforebackgroundpath[from=circle]
- \inheritbehindforegroundpath[from=circle]
- \inheritforegroundpath[from=circle]
- \inheritbeforeforegroundpath[from=circle]
- \inheritanchor[from=circle]{center}
- \inheritanchor[from=circle]{mid}
- \inheritanchor[from=circle]{base}
- \inheritanchor[from=circle]{north}
- \inheritanchor[from=circle]{south}
- \inheritanchor[from=circle]{west}
- \inheritanchor[from=circle]{mid west}
- \inheritanchor[from=circle]{base west}
- \inheritanchor[from=circle]{north west}
- \inheritanchor[from=circle]{south west}
- \inheritanchor[from=circle]{east}
- \inheritanchor[from=circle]{mid east}
- \inheritanchor[from=circle]{base east}
- \inheritanchor[from=circle]{north east}
- \inheritanchor[from=circle]{south east}
- \inheritanchorborder[from=circle]
-}
-
-\def\pgfutil at prefixto@macro#1#2{%
- \def\pgf at temp{#2}%
- \expandafter\expandafter\expandafter\def\expandafter\expandafter\expandafter#1%
- \expandafter\expandafter\expandafter{\expandafter\pgf at temp#1}%
-}
-
-\pgfqkeys{/tikz/node family}{
- setup shape/.code={%
- \expandafter\pgfutil at prefixto@macro\csname pgf at sh@s@#1\endcsname{%
- \tikzext at nf@getandset{\the\wd\pgfnodeparttextbox}{text width}{\pgfutil at tempdima}%
- \ifdim\wd\pgfnodeparttextbox<\pgfutil at tempdima
- \pgfutil at tempdimb=\pgfutil at tempdima
- \advance\pgfutil at tempdimb-\wd\pgfnodeparttextbox
- \setbox\pgfnodeparttextbox=\hbox to \pgfutil at tempdima{\tikzext at nf@align at action\pgfutil at tempdimb\unhbox\pgfnodeparttextbox}%
- \fi
- \tikzext at nf@getandset{\the\dp\pgfnodeparttextbox}{text depth}{\pgfutil at tempdima}%
- \ifdim\dp\pgfnodeparttextbox<\pgfutil at tempdima
- \dp\pgfnodeparttextbox=\pgfutil at tempdima
- \fi
- \tikzext at nf@getandset{\the\ht\pgfnodeparttextbox}{text height}{\pgfutil at tempdima}%
- \ifdim\ht\pgfnodeparttextbox<\pgfutil at tempdima
- \ht\pgfnodeparttextbox=\pgfutil at tempdima
- \fi
- }%
- },
- setup shape/.list={rectangle,circle,Rectangle,Circle}
-}
-
-%% nf functions
-\def\tikzext at nf@function at default{{\the\pgf at x}{\the\pgf at y}}
-\def\tikzext at nf@function at default@double{{\the\dimexpr2\pgf at x\relax}{\the\dimexpr2\pgf at y\relax}}
-\def\tikzext at nf@function at circle{{\the\pgf at x}{\the\pgf at x}}
-\def\tikzext at nf@function at circle@double{{\the\dimexpr2\pgf at x\relax}{\the\dimexpr2\pgf at x\relax}}
-
-\pgfmathdeclarefunction{nf_width}{0}{%
- \begingroup
- \pgfutil at IfUndefined{tikzext at nf@function@\pgf at sm@shape at name}{%
- \let\tikzext at nf@function\tikzext at nf@function at default
- }{%
- \pgfutil at IfUndefined{tikzext at nf@function@\pgf at sm@shape at name @extra}{}{\csname tikzext at nf@function@\pgf at sm@shape at name @extra\endcsname}%
- \expandafter\let\expandafter\tikzext at nf@function\csname tikzext at nf@function@\pgf at sm@shape at name\endcsname
- }%
- \tikzext at nf@getandset{\expandafter\pgfutil at firstoftwo\tikzext at nf@function}{width}{\pgfutil at tempdima}%
- \edef\pgfmathresult{\pgf at sys@tonumber\pgfutil at tempdima}%
- \pgfmath at smuggleone\pgfmathresult
- \endgroup
-}
-\pgfmathdeclarefunction{nf_height}{0}{%
- \begingroup
- \pgfutil at IfUndefined{tikzext at nf@function@\pgf at sm@shape at name}{%
- \let\tikzext at nf@function\tikzext at nf@function at default
- }{%
- \pgfutil at IfUndefined{tikzext at nf@function@\pgf at sm@shape at name @extra}{}{\csname tikzext at nf@function@\pgf at sm@shape at name @extra\endcsname}%
- \expandafter\let\expandafter\tikzext at nf@function\csname tikzext at nf@function@\pgf at sm@shape at name\endcsname
- }%
- \tikzext at nf@getandset{\expandafter\pgfutil at secondoftwo\tikzext at nf@function}{height}{\pgfutil at tempdima}%
- \edef\pgfmathresult{\pgf at sys@tonumber\pgfutil at tempdima}%
- \pgfmath at smuggleone\pgfmathresult
- \endgroup
-}
\ No newline at end of file
Deleted: trunk/Master/texmf-dist/tex/latex/tikz-ext/tikzlibraryext.node-families.shapes.geometric.code.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tikz-ext/tikzlibraryext.node-families.shapes.geometric.code.tex 2022-11-03 20:29:02 UTC (rev 64919)
+++ trunk/Master/texmf-dist/tex/latex/tikz-ext/tikzlibraryext.node-families.shapes.geometric.code.tex 2022-11-03 21:03:19 UTC (rev 64920)
@@ -1,38 +0,0 @@
-% Copyright 2022 by Qrrbrbirlbel
-%
-% This file may be distributed and/or modified
-%
-% 1. under the LaTeX Project Public License and/or
-% 2. under the GNU Free Documentation License.
-%
-
-\usetikzlibrary{ext.node-families,shapes.geometric}
-
-\let\tikzext at nf@function at ellipse \tikzext at nf@function at default@double
-\let\tikzext at nf@function at star \tikzext at nf@function at circle
-\let\tikzext at nf@function at diamond \tikzext at nf@function at default@double
-\let\tikzext at nf@function at star \tikzext at nf@function at circle@double
-\expandafter\let\csname tikzext at nf@function at regular polygon\endcsname
- \tikzext at nf@function at circle@double
-\let\tikzext at nf@function at trapezium\tikzext at nf@function at default@double
-\def\tikzext at nf@function at semicircle {{\the\dimexpr2\pgf at x\relax}{\the\pgf at x}}
-\expandafter\def\csname tikzext at nf@function at isosceles triangle\endcsname
- {{\the\dimexpr2\pgf at ya\relax}{\the\pgf at xa}}
-\def\tikzext at nf@function at kite {{\the\dimexpr2\pgf at xa\relax}{\the\dimexpr\pgf at ya+\pgf at yb\relax}}
-\def\tikzext at nf@function at dart {{\the\dimexpr2\pgf at ya\relax}{\the\pgf at xb}}
-\expandafter\def\csname tikzext at nf@function at circular sector\endcsname{{\the\pgf at xc}{\the\pgf at xa}}
-\def\tikzext at nf@function at cylinder{{\the\dimexpr2\pgfutil at tempdimb\relax}{\the\pgf at x}}
-
-\tikzset{node family/setup shape/.list={
- ellipse,
- star,
- diamond,
- regular polygon,
- trapezium,
- semicircle,
- isosceles triangle,
- kite,
- dart,
- circular sector,
- cylinder
-}}
\ No newline at end of file
Deleted: trunk/Master/texmf-dist/tex/latex/tikz-ext/tikzlibraryext.paths.arcto.code.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tikz-ext/tikzlibraryext.paths.arcto.code.tex 2022-11-03 20:29:02 UTC (rev 64919)
+++ trunk/Master/texmf-dist/tex/latex/tikz-ext/tikzlibraryext.paths.arcto.code.tex 2022-11-03 21:03:19 UTC (rev 64920)
@@ -1,326 +0,0 @@
-% Copyright 2022 by Qrrbrbirlbel
-%
-% This file may be distributed and/or modified
-%
-% 1. under the LaTeX Project Public License and/or
-% 2. under the GNU Free Documentation License.
-%
-\tikzset{
- arc to/.code=\pgfqkeys{/tikz/arc to}{#1},
- arc to={
- counter clockwise/.code=\pgfkeyssetvalue{/tikz/arc to/ccw flag}{1},
- clockwise/.code=\pgfkeyssetvalue{/tikz/arc to/ccw flag}{0},
- x radius/.code=\pgfkeyssetvalue{/tikz/x radius}{#1},
- y radius/.code=\pgfkeyssetvalue{/tikz/y radius}{#1},
- radius/.code=\pgfkeyssetvalue{/tikz/x radius}{#1}\pgfkeyssetvalue{/tikz/y radius}{#1},
- large/.code=\pgfkeyssetvalue{/tikz/arc to/large flag}{1},
- small/.code=\pgfkeyssetvalue{/tikz/arc to/large flag}{0},
- % defaults
- rotate/.initial=0, counter clockwise, small,
- counter clockwise/.value forbidden,
- clockwise/.value forbidden,
- large/.value forbidden,
- small/.value forbidden}}
-\def\tikz at arcA rc{\pgfutil at ifnextchar t%
- {\tikz at flush@moveto\expandafter\expandafter\expandafter\tikz at arcB@cont\expandafter\pgfutil at gobble\pgfutil at gobble}
- {\tikz at flush@moveto\tikz at arc@cont}}
-\def\tikz at arcB@cont{%
- \pgfutil at ifnextchar[\tikz@@do at arcB{
- \advance\tikz at expandcount by -10\relax% go down quickly
- \ifnum\tikz at expandcount<0\relax%
- \def\@next{\tikz@@do at arcB[]}%
- \else%
- \def\@next{\expandafter\tikz at arcB@cont}%
- \fi%
- \@next}}%
-\def\tikz@@do at arcB[#1]{%
- \def\tikz at arcB@options{#1}%
- \tikz at do@@arcB}
-\def\tikz at do@@arcB{%
- \pgfutil at ifnextchar n{\tikz at collect@label at onpath\tikz at do@@arcB}
- {\pgfutil at ifnextchar c{\tikz at collect@coordinate at onpath\tikz at do@@arcB}
- {\pgfutil at ifnextchar p{\tikz at collect@pic at onpath\tikz at do@@arcB}
- {\tikz at scan@one at point\tikz at do@arcB}}}}
-
-\def\tikz at do@arcB#1{%
- \edef\tikz at timer@start{\noexpand\pgfqpoint{\the\tikz at lastx}{\the\tikz at lasty}}
- \tikz at make@last at position{#1}%
- \edef\tikz at timer@end{\noexpand\pgfqpoint{\the\tikz at lastx}{\the\tikz at lasty}}%
- \iftikz at shapeborder
- \edef\tikz at moveto@waiting{\tikz at shapeborder@name}%
- \fi
- \begingroup
- \tikzset{every arc/.try,every arc to/.try,arc to/.expand once=\tikz at arcB@options}%
- \pgfmathsetmacro\tikz at arc@x{\pgfkeysvalueof{/tikz/x radius}}%
- \ifpgfmathunitsdeclared
- \pgfmathsetmacro\tikz at arc@y{\pgfkeysvalueof{/tikz/y radius}}%
- \ifpgfmathunitsdeclared
- \tikzext at pgfpatharcto{\tikz at arc@x pt}{\tikz at arc@y pt}
- {\pgfkeysvalueof{/tikz/arc to/rotate}}{\pgfkeysvalueof{/tikz/arc to/large flag}}
- {\pgfkeysvalueof{/tikz/arc to/ccw flag}}{#1}%
- \else
- \tikzerror{You cannot mix dimensions and dimension values in an arc}%
- \fi
- \else
- \pgfmathsetmacro\tikz at arc@y{\pgfkeysvalueof{/tikz/y radius}}%
- \ifpgfmathunitsdeclared
- \tikzerror{You cannot mix dimensions and dimension values in an arc}%
- \else
- \pgf at process{\pgfpointxy{\tikz at arc@x}{0}}%
- \pgfmathveclen@{\pgf at sys@tonumber\pgf at x}{\pgf at sys@tonumber\pgf at y}%
- \let\tikz at arc@x\pgfmathresult
- \pgf at process{\pgfpointxy{0}{\tikz at arc@y}}%
- \pgfmathveclen@{\pgf at sys@tonumber\pgf at x}{\pgf at sys@tonumber\pgf at y}%
- \let\tikz at arc@y\pgfmathresult
- \tikzext at pgfpatharcto{+\tikz at arc@x pt}{+\tikz at arc@y pt}
- {\pgfkeysvalueof{/tikz/arc to/rotate}}{\pgfkeysvalueof{/tikz/arc to/large flag}}
- {\pgfkeysvalueof{/tikz/arc to/ccw flag}}{#1}%
- \fi
- \fi
- \endgroup
- % check whether \pgf at marshall starts with \pgfpathlineto
- \pgfutil at ifxempty\pgf at marshal{}{%
- \edef\tikz at temp{\expandafter\expandafter\expandafter\noexpand\expandafter\pgfutil at firstgobblerest\pgf at marshal\relax}%
- \expandafter\let\expandafter\tikz at temp\tikz at temp
- \pgfutil at ifx\tikz at temp\pgfpathlineto{}{%
- % getting rid of \pgfpatharcaxes inside \pgf at marshal
- \expandafter\expandafter\expandafter\def\expandafter\expandafter\expandafter\pgf at marshal
- \expandafter\expandafter\expandafter{\expandafter\pgfutil at gobble\pgf at marshal}%
- % extracting the other four values needed for the timer
- \edef\tikz at timer@start at angle{\expandafter\pgfutil at firstoffour\pgf at marshal}%
- \edef\tikz at timer@end at angle{\expandafter\pgfutil at secondoffour\pgf at marshal}%
- \pgfextract at process\tikz at timer@zero at axis{\expandafter\pgfutil at thirdoffour\pgf at marshal}%
- \pgfextract at process\tikz at timer@ninety at axis{\expandafter\pgfutil at fourthoffour\pgf at marshal}%
- %
- \let\tikz at timer=\tikz at timer@arc
- }%
- }%
- \tikz at scan@next at command
-}
-\def\pgfutil at firstoffour#1#2#3#4{#1}
-\def\pgfutil at secondoffour#1#2#3#4{#2}
-\def\pgfutil at thirdoffour#1#2#3#4{#3}
-\def\pgfutil at fourthoffour#1#2#3#4{#4}
-\def\pgfutil at firstgobblerest#1#2\relax{#1}
-
-% original from pgfcorepathconstruct.code.tex
-\def\tikzext at pgfpatharcto#1#2#3#4#5#6{%
- {%
- % The following code is based on the transformation described in svg
- % 1.1 specification Section F.6.5
- %
- % Step 1: store the simple parameters (xa=x1 since TeX does not
- % allow numbers in names)
- %
- \pgfmathsetmacro\pgf at arcto@rx{abs(#1)}%
- \pgfmathsetmacro\pgf at arcto@ry{abs(#2)}%
- \ifdim\pgf at arcto@rx pt=0pt% special rule: zero radius=straight line
- \gdef\pgf at marshal{\pgfpathlineto{#6}}%
- \else
- \ifdim\pgf at arcto@ry pt=0pt% special rule: zero radius=straight line
- \gdef\pgf at marshal{\pgfpathlineto{#6}}%
- \else
- \pgfmathsetmacro\pgf at arcto@phi{#3}%
- \pgfmathsetmacro\pgf at arcto@fA{#4}%
- \ifdim\pgf at arcto@fA pt=0pt
- \else
- \pgfmathsetmacro\pgf at arcto@fA{1.0}% Special rule: every non-zero value is 1.
- \fi
- \pgfmathsetmacro\pgf at arcto@fS{#5}%
- \ifdim\pgf at arcto@fS pt=0pt
- \else
- \pgfmathsetmacro\pgf at arcto@fS{1.0}% Special rule: every non-zero value is 1.
- \fi
- \pgf at process{#6}%
- \edef\pgf at arcto@xb{\the\pgf at x}%
- \edef\pgf at arcto@yb{\the\pgf at y}%
- %
- % Step 2: x1,y1 is more complicated to compute: It is given by lastx
- % and lasty, but these are transformed coordinates, we need the
- % untransformed ones. So, we inverse the transformation (arghh...)
- %
- \pgftransforminvert%
- \pgf at process{\pgfpointtransformed{\pgfqpoint{\pgf at path@lastx}{\pgf at path@lasty}}}%
- \edef\pgf at arcto@xa{\the\pgf at x}%
- \edef\pgf at arcto@ya{\the\pgf at y}%
- \edef\pgf at temp@a{\pgf at arcto@xa,\pgf at arcto@ya}%
- \edef\pgf at temp@b{\pgf at arcto@xb,\pgf at arcto@yb}%
- \ifx\pgf at temp@a\pgf at temp@b% special rule: skip!
- \global\let\pgf at marshal\pgfutil at empty
- \else
- %
- % Ok, now we got all the parameters setup. Now comes the
- % computation...
- %
- %
- % Step 3: Start with a new coordinate system and rotate everything
- % by the negated phi.
- %
- \pgftransformreset
- \pgftransformrotate{-\pgf at arcto@phi}%
- % Ok, using \pgfpointtransformed we now get transformed points...
- %
- % Step 4: Compute x1' and y1' (xaprime and yaprime)
- %
- \pgf at process{%
- \pgfpointtransformed{\pgfpointscale{.5}{\pgfpointdiff
- {\pgfqpoint{\pgf at arcto@xb}{\pgf at arcto@yb}}
- {\pgfqpoint{\pgf at arcto@xa}{\pgf at arcto@ya}}%
- }%
- }%
- }%
- \edef\pgf at arcto@xaprime{\pgf at sys@tonumber\pgf at x}%
- \edef\pgf at arcto@yaprime{\pgf at sys@tonumber\pgf at y}%
- %
- % Compute Lambda
- %
- \pgfmathsetmacro\pgf at arcto@frac at x{\pgf at arcto@xaprime/\pgf at arcto@rx}%
- \pgfmathsetmacro\pgf at arcto@frac at y{\pgf at arcto@yaprime/\pgf at arcto@ry}%
- \pgfmathsetmacro\pgf at arcto@lambda{
- \pgf at arcto@frac at x*\pgf at arcto@frac at x+\pgf at arcto@frac at y*\pgf at arcto@frac at y
- }%
- \ifdim\pgf at arcto@lambda pt>1pt
- \pgfmathsetmacro\pgf at arcto@sqrt at lambda{sqrt(\pgf at arcto@lambda)}%
- \pgfmathsetmacro\pgf at arcto@rx{\pgf at arcto@sqrt at lambda*\pgf at arcto@rx}%
- \pgfmathsetmacro\pgf at arcto@ry{\pgf at arcto@sqrt at lambda*\pgf at arcto@ry}%
- \fi
- %
- % Do some scaling
- %
- \pgfmathsetmacro\pgf at arcto@xaprime at abs{abs(\pgf at arcto@xaprime)}%
- \pgfmathsetmacro\pgf at arcto@yaprime at abs{abs(\pgf at arcto@yaprime)}%
- \pgfmathmax@{\pgf at arcto@rx,\pgf at arcto@ry,\pgf at arcto@xaprime at abs,\pgf at arcto@yaprime at abs}%
- \pgfmathsetmacro\pgf at arcto@scaling{20/\pgfmathresult}%
- \pgfmathsetmacro\pgf at arcto@rx at scaled{\pgf at arcto@scaling*\pgf at arcto@rx}%
- \pgfmathsetmacro\pgf at arcto@ry at scaled{\pgf at arcto@scaling*\pgf at arcto@ry}%
- \pgfmathsetmacro\pgf at arcto@xaprime at scaled{\pgf at arcto@scaling*\pgf at arcto@xaprime}%
- \pgfmathsetmacro\pgf at arcto@yaprime at scaled{\pgf at arcto@scaling*\pgf at arcto@yaprime}%
- %
- % Step 5: Now comes the messy computation of c1' and c2'.
- %
- \ifdim\pgf at arcto@rx pt>\pgf at arcto@ry pt
- \pgfmathsetmacro\pgf at arcto@rx at over@ry{\pgf at arcto@rx/\pgf at arcto@ry}%
- \pgfmathsetmacro\pgf at arcto@ry at over@rx{\pgf at arcto@ry/\pgf at arcto@rx}%
- \pgfmathsetmacro\pgf at arcto@temp{\pgf at arcto@ry at over@rx*\pgf at arcto@xaprime at scaled}%
- \pgfmathsetmacro\pgf at arcto@numerator{
- \pgf at arcto@ry at scaled*\pgf at arcto@ry at scaled-
- \pgf at arcto@yaprime at scaled*\pgf at arcto@yaprime at scaled-
- \pgf at arcto@temp*\pgf at arcto@temp
- }%
- \pgfmathsetmacro\pgf at arcto@denominator{
- \pgf at arcto@yaprime at scaled*\pgf at arcto@yaprime at scaled+
- \pgf at arcto@temp*\pgf at arcto@temp
- }%
- \else
- \pgfmathsetmacro\pgf at arcto@rx at over@ry{\pgf at arcto@rx/\pgf at arcto@ry}%
- \pgfmathsetmacro\pgf at arcto@ry at over@rx{\pgf at arcto@ry/\pgf at arcto@rx}%
- \pgfmathsetmacro\pgf at arcto@temp{\pgf at arcto@rx at over@ry*\pgf at arcto@yaprime at scaled}%
- \pgfmathsetmacro\pgf at arcto@numerator{
- \pgf at arcto@rx at scaled*\pgf at arcto@rx at scaled-
- \pgf at arcto@xaprime at scaled*\pgf at arcto@xaprime at scaled-
- \pgf at arcto@temp*\pgf at arcto@temp
- }%
- \pgfmathsetmacro\pgf at arcto@denominator{
- \pgf at arcto@xaprime at scaled*\pgf at arcto@xaprime at scaled+
- \pgf at arcto@temp*\pgf at arcto@temp
- }%
- \fi
- \pgfmathsetmacro\pgf at arcto@frac{
- \pgf at arcto@numerator/\pgf at arcto@denominator
- }%
- \ifdim\pgf at arcto@frac pt<0pt
- \pgfmathsetmacro\pgf at arcto@factor{0}%
- \else
- \pgfmathsetmacro\pgf at arcto@factor{sqrt(\pgf at arcto@frac)}%
- \fi
- \ifx\pgf at arcto@fA\pgf at arcto@fS
- \pgfmathsetmacro\pgf at arcto@factor{-\pgf at arcto@factor}%
- \fi
- \pgfmathsetmacro\pgf at arcto@cxprime{
- \pgf at arcto@factor*\pgf at arcto@rx at over@ry*\pgf at arcto@yaprime
- }%
- \pgfmathsetmacro\pgf at arcto@cyprime{
- -\pgf at arcto@factor*\pgf at arcto@ry at over@rx*\pgf at arcto@xaprime
- }%
- %
- % Step 6: Ok, now compute cx,cy
- %
- \pgftransformreset
- \pgftransformrotate{\pgf at arcto@phi}%
- \pgf at process{%
- \pgfpointtransformed{\pgfqpoint{\pgf at arcto@cxprime pt}{\pgf at arcto@cyprime pt}}%
- }%
- \edef\pgf at arcto@temp{\noexpand\pgfqpoint{\the\pgf at x}{\the\pgf at y}}%
- \pgf at process{\pgfpointadd{\pgf at arcto@temp}{%
- \pgfpointscale{.5}{%
- \pgfpointadd
- {\pgfqpoint{\pgf at arcto@xa}{\pgf at arcto@ya}}
- {\pgfqpoint{\pgf at arcto@xb}{\pgf at arcto@yb}}}%
- }%
- }%
- \edef\pgf at arcto@cx{\the\pgf at x}%
- \edef\pgf at arcto@cy{\the\pgf at y}%
- %
- % Step 7: Compute start angle:
- %
- \pgfmathsetmacro\pgf at arcto@vec at x{(\pgf at arcto@xaprime-\pgf at arcto@cxprime)/\pgf at arcto@rx}%
- \pgfmathsetmacro\pgf at arcto@vec at y{(\pgf at arcto@yaprime-\pgf at arcto@cyprime)/\pgf at arcto@ry}%
- \pgfmathsetmacro\pgf at arcto@denominator{veclen(\pgf at arcto@vec at x,\pgf at arcto@vec at y)}%
- \pgfmathsetmacro\pgf at arcto@frac{\pgf at arcto@vec at x/\pgf at arcto@denominator}%
- \pgfmathsetmacro\pgf at arcto@theta at start{acos(\pgf at arcto@frac)}%
- \ifdim\pgf at arcto@vec at y pt<0pt
- \pgfmathsetmacro\pgf at arcto@theta at start{-\pgf at arcto@theta at start}%
- \fi
- %
- % Step 8: Compute end angle:
- %
- \pgfmathsetmacro\pgf at arcto@vec at x{(-\pgf at arcto@xaprime-\pgf at arcto@cxprime)/\pgf at arcto@rx}%
- \pgfmathsetmacro\pgf at arcto@vec at y{(-\pgf at arcto@yaprime-\pgf at arcto@cyprime)/\pgf at arcto@ry}%
- \pgfmathsetmacro\pgf at arcto@denominator{veclen(\pgf at arcto@vec at x,\pgf at arcto@vec at y)}%
- \pgfmathsetmacro\pgf at arcto@frac{\pgf at arcto@vec at x/\pgf at arcto@denominator}%
- \pgfmathsetmacro\pgf at arcto@theta at end{acos(\pgf at arcto@frac)}%
- \ifdim\pgf at arcto@vec at y pt<0pt
- \pgfmathsetmacro\pgf at arcto@theta at end{-\pgf at arcto@theta at end}%
- \fi
- \pgfmathsetmacro\pgf at arcto@delta at theta{abs(\pgf at arcto@theta at start-\pgf at arcto@theta at end)}%
- \ifdim\pgf at arcto@fA pt=0pt
- \ifdim\pgf at arcto@delta at theta pt>180pt
- % Ok, we need to adjust the angle!
- \ifdim\pgf at arcto@theta at end pt>\pgf at arcto@theta at start pt
- \pgfmathsetmacro\pgf at arcto@theta at end{\pgf at arcto@theta at end-360}%
- \else
- \pgfmathsetmacro\pgf at arcto@theta at end{\pgf at arcto@theta at end+360}%
- \fi
- \fi
- \else
- \ifdim\pgf at arcto@delta at theta pt<180pt
- % Ok, we need to adjust the angle!
- \ifdim\pgf at arcto@theta at end pt>\pgf at arcto@theta at start pt
- \pgfmathsetmacro\pgf at arcto@theta at end{\pgf at arcto@theta at end-360}%
- \else
- \pgfmathsetmacro\pgf at arcto@theta at end{\pgf at arcto@theta at end+360}%
- \fi
- \fi
- \fi
- % Qrr:
- % make sure direction is properly followed
- \ifdim\pgf at arcto@fS pt=1pt
- % counter clockwise
- \ifdim\pgf at arcto@theta at end pt<\pgf at arcto@theta at start pt
- \pgfmathsetmacro\pgf at arcto@theta at end{\pgf at arcto@theta at end+360}%
- \fi
- \else
- % clockwise
- \ifdim\pgf at arcto@theta at end pt>\pgf at arcto@theta at start pt
- \pgfmathsetmacro\pgf at arcto@theta at end{\pgf at arcto@theta at end-360}%
- \fi
- \fi
- \xdef\pgf at marshal{\noexpand
- \pgfpatharcaxes{\pgf at arcto@theta at start}{\pgf at arcto@theta at end}
- {\noexpand\pgfpointpolar{\pgf at arcto@phi}{\pgf at arcto@rx}}
- {\noexpand\pgfpointpolar{\pgf at arcto@phi+90}{\pgf at arcto@ry}}%
- }%
- \fi\fi\fi
- }%
- \pgf at marshal
-}
\ No newline at end of file
Deleted: trunk/Master/texmf-dist/tex/latex/tikz-ext/tikzlibraryext.paths.ortho.code.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tikz-ext/tikzlibraryext.paths.ortho.code.tex 2022-11-03 20:29:02 UTC (rev 64919)
+++ trunk/Master/texmf-dist/tex/latex/tikz-ext/tikzlibraryext.paths.ortho.code.tex 2022-11-03 21:03:19 UTC (rev 64920)
@@ -1,693 +0,0 @@
-% Copyright 2022 by Qrrbrbirlbel
-%
-% This file may be distributed and/or modified
-%
-% 1. under the LaTeX Project Public License and/or
-% 2. under the GNU Free Documentation License.
-%
-
-%% For the operators r-lr, r-rl, r-ud and r-du we need to check after TikZ found r
-\let\tikz at orig@rect\tikz at rect
-\def\tikz at rect{\pgfutil at ifnextchar e\tikz at orig@rect\tikzext at tikz@r}
-\def\tikzext at tikz@r -{%
- \pgfutil at ifnextchar l\tikzext at tikz@lr at lineto{%
- \pgfutil at ifnextchar r\tikzext at tikz@rl at lineto{%
- \pgfutil at ifnextchar u\tikzext at tikz@ud at lineto{%
- \pgfutil at ifnextchar d\tikzext at tikz@du at lineto\tikz at expand
- }%
- }%
- }%
-}
-%% For the operator |-| we need to check after TikZ found |-
-\let\tikz at orig@vh at lineto@next\tikz at vh@lineto at next
-\def\tikz at vh@lineto at next{%
- \pgfutil at ifnextchar|{\expandafter\tikzext at tikz@vhv at lineto\pgfutil at gobble}%
- {\pgfutil at ifnextchar\tikz at activebar{\expandafter\tikzext at tikz@vhv at lineto\pgfutil at gobble}%
- {\tikz at orig@vh at lineto@next}}}
-%% For the operator -|- we need to check after TikZ found -|
-\let\tikz at orig@hv at lineto\tikz at hv@lineto
-\def\tikz at hv@lineto{%
- \pgfutil at ifnextchar-{\expandafter\tikzext at tikz@hvh at lineto\pgfutil at gobble}%
- {\tikz at orig@hv at lineto}}
-
-%% |-|[<opts>] and -|-[<opts>] are allowed
-\def\tikzext at tikz@vhv at lineto{\pgfutil at ifnextchar[{\tikzext at tikz@collect at hvvh@options\tikzext at tikz@vhv at lineto@next}{\tikzext at tikz@collect at hvvh@options\tikzext at tikz@vhv at lineto@next[]}}
-\def\tikzext at tikz@hvh at lineto{\pgfutil at ifnextchar[{\tikzext at tikz@collect at hvvh@options\tikzext at tikz@hvh at lineto@next}{\tikzext at tikz@collect at hvvh@options\tikzext at tikz@hvh at lineto@next[]}}
-
-%% r-rl[<opts>], r-lr[<opts>], etc.
-\def\tikzext at tikz@rl at lineto rl{\pgfutil at ifnextchar[{\tikzext at tikz@collect at hvvh@options\tikzext at tikz@rl at lineto@next}{\tikzext at tikz@collect at hvvh@options\tikzext at tikz@rl at lineto@next[]}}
-\def\tikzext at tikz@lr at lineto lr{\pgfutil at ifnextchar[{\tikzext at tikz@collect at hvvh@options\tikzext at tikz@lr at lineto@next}{\tikzext at tikz@collect at hvvh@options\tikzext at tikz@lr at lineto@next[]}}
-\def\tikzext at tikz@du at lineto du{\pgfutil at ifnextchar[{\tikzext at tikz@collect at hvvh@options\tikzext at tikz@du at lineto@next}{\tikzext at tikz@collect at hvvh@options\tikzext at tikz@du at lineto@next[]}}
-\def\tikzext at tikz@ud at lineto ud{\pgfutil at ifnextchar[{\tikzext at tikz@collect at hvvh@options\tikzext at tikz@ud at lineto@next}{\tikzext at tikz@collect at hvvh@options\tikzext at tikz@ud at lineto@next[]}}
-
-%% TikZ interjects are done, the rest is independent:
-
-
-\newdimen\tikzext at tikz@udlr at distance
-\newdimen\tikzext at tikz@hvvh at distance
-\newif\iftikzext at tikz@hvvh at middle % checks whether spacing = 0 was selected
-\newif\iftikzext at tikz@hvvh at fromcenter
-\newif\iftikzext at ortho@preflush
-\tikzext at ortho@preflushtrue
-
-%%% HVVH/UDLR
-\tikzset{%
- ortho/.code=\pgfqkeys{/tikz/ortho}{#1},
- hvvh/.code=\pgfqkeys{/tikz/ortho}{#1},%
- udlr/.code=\pgfqkeys{/tikz/ortho}{#1},%
- ortho/.search also=/tikz,
- ortho/middle 0 to 1/.style={/tikz/ortho/spacing=0},%
- ortho/from center/.is if=tikzext at tikz@hvvh at fromcenter,%
- ortho/spacing/.code=% spacing = 0 means that the middle part are the pos-itions 0 to 1,
- % the first part is -1 to 0, the last part is to 2
- \pgfmathint{#1}\let\tikzext at tikz@hvvh at timing@parts\pgfmathresult% in case they are calculations to be done
- \ifcase\tikzext at tikz@hvvh at timing@parts\relax
- \tikzext at tikz@hvvh at middletrue
- \def\tikzext at tikz@hvvh at timing@parts{1}%
- \def\tikzext at tikz@hvvh at timing@first{0}%
- \def\tikzext at tikz@hvvh at timing@last{1}%
- \def\tikzext at tikz@hvvh at timing@subtr{0}%
- \def\tikzext at tikz@hvvh at timing@factor{1}%
- \else % in all other cases n > 0 the kinks are at pos = 1/n and (n - 1)/n
- \tikzext at tikz@hvvh at middlefalse
- \pgfmathreciprocal{#1}\let\tikzext at tikz@hvvh at timing@first\pgfmathresult
- \pgfmathsetmacro\tikzext at tikz@hvvh at timing@last{1-\pgfmathresult}%
- \pgfmathreciprocal{#1-2}%
- \let\tikzext at tikz@hvvh at timing@subtr\pgfmathresult
- \pgfmathsetmacro\tikzext at tikz@hvvh at timing@factor{1+2*\pgfmathresult}%
- \fi,%
- ortho/ratio/.code=\pgfmathsetmacro\tikzext at tikz@hvvh at ratio{#1},%
- % TODO: not possible to do distance in TikZ coordinate system
- ortho/distance/.code=\pgfmathsetlength\tikzext at tikz@hvvh at distance{#1}\let\tikzext at tikz@hvvh at ratio\pgfutil at empty,%
- ortho/udlr distance/.style={%
- /tikz/ortho/ud distance={#1},%
- /tikz/ortho/du distance={#1},%
- /tikz/ortho/lr distance={#1},%
- /tikz/ortho/rl distance={#1}},%
- ortho/ud distance/.initial=+.5cm,%
- ortho/du distance/.initial=+.5cm,%
- ortho/lr distance/.initial=+.5cm,%
- ortho/rl distance/.initial=+.5cm,%
- ortho/ratio=.5,% default value
- ortho/spacing=4,% default value
-}%
-
-%BEGIN_FOLD Timer
-\def\tikz at timer@hvhline{%
- \pgf at process{\tikz at timer@start}\pgf at ya\pgf at y
- \pgf at process{\tikz at timer@end}\pgf at yc\pgf at y
- \pgf at process{\tikz at timer@middle}\pgf at xb\tikz at time pt%
- \ifdim\tikz at time pt<\tikzext at tikz@hvvh at timing@first pt% first quarter
- \iftikzext at tikz@hvvh at middle
- \advance\pgf at xb1pt%
- \else
- \pgf at xb\tikzext at tikz@hvvh at timing@parts\pgf at xb
- \fi
- \edef\tikz at marshal{\noexpand\pgftransformlineattime{\pgf at sys@tonumber{\pgf at xb}}{\noexpand\tikz at timer@start}{%
- \noexpand\pgfqpoint{\the\pgf at x}{\the\pgf at ya}}}%
- \else
- \ifdim\tikz at time pt>\tikzext at tikz@hvvh at timing@last pt% last quarter
- \iftikzext at tikz@hvvh at middle
- \advance\pgf at xb-1pt%
- \else
- \pgf at xb\tikzext at tikz@hvvh at timing@parts\pgf at xb
- \fi
- \advance\pgf at xb\dimexpr-\tikzext at tikz@hvvh at timing@parts pt+1pt\relax%
- \edef\tikz at marshal{\noexpand\pgftransformlineattime{\pgf at sys@tonumber{\pgf at xb}}%
- {\noexpand\pgfqpoint{\the\pgf at x}{\the\pgf at yc}}{\noexpand\tikz at timer@end}}%
- \else% middle half
- \pgf at xb\tikzext at tikz@hvvh at timing@factor\pgf at xb%
- \advance\pgf at xb-\tikzext at tikz@hvvh at timing@subtr pt%
- \edef\tikz at marshal{\noexpand\pgftransformlineattime{\pgf at sys@tonumber{\pgf at xb}}%
- {\noexpand\pgfqpoint{\the\pgf at x}{\the\pgf at ya}}{\noexpand\tikz at timer@middle}}%
- \fi\fi\tikz at marshal}
-\def\tikz at timer@vhvline{%
- \pgf at process{\tikz at timer@start}\pgf at xa\pgf at x
- \pgf at process{\tikz at timer@end}\pgf at xc\pgf at x
- \pgf at process{\tikz at timer@middle}\pgf at xb\tikz at time pt%
- \ifdim\tikz at time pt<\tikzext at tikz@hvvh at timing@first pt% first quarter
- \iftikzext at tikz@hvvh at middle
- \advance\pgf at xb1pt%
- \else
- \pgf at xb\tikzext at tikz@hvvh at timing@parts\pgf at xb
- \fi
- \edef\tikz at marshal{\noexpand\pgftransformlineattime{\pgf at sys@tonumber{\pgf at xb}}{\noexpand\tikz at timer@start}{%
- \noexpand\pgfqpoint{\the\pgf at xa}{\the\pgf at y}}}%
- \else
- \ifdim\tikz at time pt>\tikzext at tikz@hvvh at timing@last pt% last quarter
- \iftikzext at tikz@hvvh at middle
- \advance\pgf at xb-1pt%
- \else
- \pgf at xb\tikzext at tikz@hvvh at timing@parts\pgf at xb
- \fi
- \advance\pgf at xb by\dimexpr-\tikzext at tikz@hvvh at timing@parts pt+1pt\relax%
- \edef\tikz at marshal{\noexpand\pgftransformlineattime{\pgf at sys@tonumber{\pgf at xb}}%
- {\noexpand\pgfqpoint{\the\pgf at xc}{\the\pgf at y}}{\noexpand\tikz at timer@end}}%
- \else% middle half
- \pgf at xb=\tikzext at tikz@hvvh at timing@factor\pgf at xb
- \advance\pgf at xb by-\tikzext at tikz@hvvh at timing@subtr pt%
- \edef\tikz at marshal{\noexpand\pgftransformlineattime{\pgf at sys@tonumber{\pgf at xb}}%
- {\noexpand\pgfqpoint{\the\pgf at xa}{\the\pgf at y}}{\noexpand\tikz at timer@middle}}%
- \fi\fi\tikz at marshal}%
-
-%% collect options and nodes, coordinates and pics onpath
-\let\tikz at hvvh@currentoption\pgfutil at empty
-\def\tikzext at tikz@collect at hvvh@options#1[#2]{\edef\tikz at hvvh@currentoption{#2}#1}
-\def\tikzext at tikz@hvh at lineto@next{%
- \pgfutil at ifnextchar n{\tikz at collect@label at onpath\tikzext at tikz@hvh at lineto@next}
- {\pgfutil at ifnextchar c{\tikz at collect@coordinate at onpath\tikzext at tikz@hvh at lineto@next}%
- {\pgfutil at ifnextchar p{\tikz at collect@pic at onpath\tikzext at tikz@hvh at lineto@next}{\tikz at scan@one at point\tikzext at tikz@@hvh at lineto}}}}%
-\def\tikzext at tikz@vhv at lineto@next{%
- \pgfutil at ifnextchar n{\tikz at collect@label at onpath\tikzext at tikz@vhv at lineto@next}
- {\pgfutil at ifnextchar c{\tikz at collect@coordinate at onpath\tikzext at tikz@vhv at lineto@next}%
- {\pgfutil at ifnextchar p{\tikz at collect@pic at onpath\tikzext at tikz@vhv at lineto@next}{\tikz at scan@one at point\tikzext at tikz@@vhv at lineto}}}}%
-\def\tikzext at tikz@ud at lineto@next{%
- \pgfutil at ifnextchar n{\tikz at collect@label at onpath\tikzext at tikz@ud at lineto@next}
- {\pgfutil at ifnextchar c{\tikz at collect@coordinate at onpath\tikzext at tikz@ud at lineto@next}
- {\pgfutil at ifnextchar p{\tikz at collect@pic at onpath\tikzext at tikz@ud at lineto@next}{\tikz at scan@one at point\tikzext at tikz@@ud at lineto}}}}%
-\def\tikzext at tikz@du at lineto@next{%
- \pgfutil at ifnextchar n{\tikz at collect@label at onpath\tikzext at tikz@du at lineto@next}
- {\pgfutil at ifnextchar c{\tikz at collect@coordinate at onpath\tikzext at tikz@du at lineto@next}
- {\pgfutil at ifnextchar p{\tikz at collect@pic at onpath\tikzext at tikz@du at lineto@next}{\tikz at scan@one at point\tikzext at tikz@@du at lineto}}}}%
-\def\tikzext at tikz@lr at lineto@next{%
- \pgfutil at ifnextchar n{\tikz at collect@label at onpath\tikzext at tikz@lr at lineto@next}
- {\pgfutil at ifnextchar c{\tikz at collect@coordinate at onpath\tikzext at tikz@lr at lineto@next}
- {\pgfutil at ifnextchar p{\tikz at collect@pic at onpath\tikzext at tikz@lr at lineto@next}{\tikz at scan@one at point\tikzext at tikz@@lr at lineto}}}}%
-\def\tikzext at tikz@rl at lineto@next{%
- \pgfutil at ifnextchar n{\tikz at collect@label at onpath\tikzext at tikz@rl at lineto@next}
- {\pgfutil at ifnextchar c{\tikz at collect@coordinate at onpath\tikzext at tikz@rl at lineto@next}
- {\pgfutil at ifnextchar p{\tikz at collect@pic at onpath\tikzext at tikz@rl at lineto@next}{\tikz at scan@one at point\tikzext at tikz@@rl at lineto}}}}%
-
-\def\tikz at do@hvvh#1#2#3#4#5{%
-% #1 = first kink
-% #2 = second kink
-% #3 = end
-% #4 = timer
-% #5 = tikz at shapeborder@name
- \pgfpathlineto{#1}%
- \pgfpathlineto{#2}%
- \pgfpathlineto{#3}%
- \def\tikz at timer@middle{#2}%
- \def\tikz at timer@end{#3}%
- \let\tikz at timer#4
- \edef\pgf at temp{#5}%
- \ifx\pgf at temp\pgfutil at empty
- \let\tikz at moveto@waiting\relax
- \else
- \let\tikz at moveto@waiting\pgf at temp
- \fi
- \tikz at scan@next at command}%
-
-%% -|- operator
-\def\tikzext at tikz@@hvh at lineto#1{%
- \edef\tikz at timer@start{\noexpand\pgfqpoint{\the\tikz at lastx}{\the\tikz at lasty}}%
- \pgf at xb=\tikz at lastx
- \pgf at xc=\tikz at lastx
- \pgf at yc=\tikz at lasty
- \tikz at make@last at position{#1}%
- \tikz at flush@moveto at toward{\pgfqpoint{\tikz at lastx}{\pgf at yc}}\pgf at xc\pgf at yc
- \begingroup
- \pgfqkeys{/tikz/ortho}{/tikz/style/.expand once=\tikz at hvvh@currentoption}%
- \iftikz at shapeborder
- \pgf at process{\pgfpointshapeborder{\tikz at shapeborder@name}{\pgfqpoint{\pgf at xb}{\tikz at lasty}}}%
- \iftikzext at tikz@hvvh at fromcenter
- \pgf at xc\pgf at xb
- \fi
- \pgfutil at ifxempty\tikzext at tikz@hvvh at ratio{%
- \ifdim\tikzext at tikz@hvvh at distance<0pt\relax
- \iftikzext at tikz@hvvh at fromcenter
- \pgf at xc\tikz at lastx
- \else
- \pgf at xc\pgf at x
- \fi
- \fi
- \ifdim\pgf at xb>\tikz at lastx
- \tikzext at tikz@hvvh at distance-\tikzext at tikz@hvvh at distance
- \fi
- }{%
- \iftikzext at tikz@hvvh at fromcenter
- \tikzext at tikz@hvvh at distance\tikz at lastx
- \else
- \tikzext at tikz@hvvh at distance\pgf at x
- \fi
- \advance\tikzext at tikz@hvvh at distance-\pgf at xc
- \tikzext at tikz@hvvh at distance\tikzext at tikz@hvvh at ratio\tikzext at tikz@hvvh at distance
- }%
- \advance\pgf at xc\tikzext at tikz@hvvh at distance
- \edef\pgf at tempa{\noexpand\pgfqpoint{\the\pgf at xc}{\the\pgf at yc}}%
- \edef\pgf at tempb{\noexpand\pgfqpoint{\the\pgf at xc}{\the\tikz at lasty}}%
- \edef\pgf at temp{\pgfqpoint{\the\pgf at x}{\the\pgf at y}}%
- \else
- \let\tikz at shapeborder@name\pgfutil at empty
- \iftikzext at tikz@hvvh at fromcenter
- \pgf at xc\pgf at xb
- \fi
- \pgfutil at ifxempty\tikzext at tikz@hvvh at ratio{%
- \ifdim\tikzext at tikz@hvvh at distance<0pt\relax
- \pgf at xc\tikz at lastx
- \fi
- \ifdim\pgf at xb>\tikz at lastx
- \tikzext at tikz@hvvh at distance-\tikzext at tikz@hvvh at distance
- \fi
- }{%
- \tikzext at tikz@hvvh at distance\tikz at lastx
- \advance\tikzext at tikz@hvvh at distance-\pgf at xc
- \tikzext at tikz@hvvh at distance\tikzext at tikz@hvvh at ratio\tikzext at tikz@hvvh at distance
- }%
- \advance\pgf at xc\tikzext at tikz@hvvh at distance
- \edef\pgf at tempa{\noexpand\pgfqpoint{\the\pgf at xc}{\the\pgf at yc}}%
- \edef\pgf at tempb{\noexpand\pgfqpoint{\the\pgf at xc}{\the\tikz at lasty}}%
- \edef\pgf at temp{\pgfqpoint{\the\tikz at lastx}{\the\tikz at lasty}}%
- \fi%
- \xdef\pgf at marshal{%
- \noexpand\tikz at do@hvvh
- {\expandafter\noexpand\pgf at tempa}%
- {\expandafter\noexpand\pgf at tempb}%
- {\expandafter\noexpand\pgf at temp}%
- {\noexpand\tikz at timer@hvhline}{\tikz at shapeborder@name}}%
- \endgroup
- \pgf at marshal}%
-
-%% |-| operator
-\def\tikzext at tikz@@vhv at lineto#1{%
- \edef\tikz at timer@start{\noexpand\pgfqpoint{\the\tikz at lastx}{\the\tikz at lasty}}%
- \pgf at xc=\tikz at lastx
- \pgf at yb=\tikz at lasty
- \pgf at yc=\tikz at lasty
- \tikz at make@last at position{#1}%
- \tikz at flush@moveto at toward{\pgfqpoint{\pgf at xc}{\tikz at lasty}}\pgf at xc\pgf at yc
- \begingroup
- \pgfqkeys{/tikz/ortho}{/tikz/style/.expand once=\tikz at hvvh@currentoption}%
- \iftikz at shapeborder
- \pgf at process{\pgfpointshapeborder{\tikz at shapeborder@name}{\pgfqpoint{\tikz at lastx}{\pgf at yb}}}%
- \iftikzext at tikz@hvvh at fromcenter
- \pgf at yc\pgf at yb
- \fi
- \ifx\tikzext at tikz@hvvh at ratio\pgfutil at empty
- \ifdim\tikzext at tikz@hvvh at distance<0pt\relax
- \iftikzext at tikz@hvvh at fromcenter
- \pgf at yc\tikz at lasty
- \else
- \pgf at yc\pgf at y
- \fi
- \fi
- \ifdim\pgf at yb>\tikz at lasty
- \tikzext at tikz@hvvh at distance-\tikzext at tikz@hvvh at distance
- \fi
- \else
- \iftikzext at tikz@hvvh at fromcenter
- \tikzext at tikz@hvvh at distance\tikz at lasty
- \else
- \tikzext at tikz@hvvh at distance\pgf at y
- \fi
- \advance\tikzext at tikz@hvvh at distance-\pgf at yc
- \tikzext at tikz@hvvh at distance\tikzext at tikz@hvvh at ratio\tikzext at tikz@hvvh at distance
- \fi
- \advance\pgf at yc\tikzext at tikz@hvvh at distance
- \edef\pgf at tempa{\noexpand\pgfqpoint{\the\pgf at xc}{\the\pgf at yc}}%
- \edef\pgf at tempb{\noexpand\pgfqpoint{\the\tikz at lastx}{\the\pgf at yc}}%
- \edef\pgf at temp{\pgfqpoint{\the\pgf at x}{\the\pgf at y}}%
- \else
- \let\tikz at shapeborder@name\pgfutil at empty
- \iftikzext at tikz@hvvh at fromcenter
- \pgf at yc\pgf at yb
- \fi
- \ifx\tikzext at tikz@hvvh at ratio\pgfutil at empty
- \ifdim\tikzext at tikz@hvvh at distance<0pt\relax
- \pgf at yc\tikz at lasty
- \fi
- \ifdim\pgf at yb>\tikz at lasty
- \tikzext at tikz@hvvh at distance-\tikzext at tikz@hvvh at distance
- \fi
- \else
- \tikzext at tikz@hvvh at distance\tikz at lasty
- \advance\tikzext at tikz@hvvh at distance-\pgf at yc
- \tikzext at tikz@hvvh at distance\tikzext at tikz@hvvh at ratio\tikzext at tikz@hvvh at distance
- \fi
- \advance\pgf at yc\tikzext at tikz@hvvh at distance
- \edef\pgf at tempa{\noexpand\pgfqpoint{\the\pgf at xc}{\the\pgf at yc}}%
- \edef\pgf at tempb{\noexpand\pgfqpoint{\the\tikz at lastx}{\the\pgf at yc}}%
- \edef\pgf at temp{\pgfqpoint{\the\tikz at lastx}{\the\tikz at lasty}}%
- \fi%
- \xdef\pgf at marshal{%
- \noexpand\tikz at do@hvvh
- {\expandafter\noexpand\pgf at tempa}%
- {\expandafter\noexpand\pgf at tempb}%
- {\expandafter\noexpand\pgf at temp}%
- {\noexpand\tikz at timer@vhvline}{\tikz at shapeborder@name}}%
- \endgroup
- \pgf at marshal}%
-
-%% r-ud operator
-\def\tikzext at tikz@@ud at lineto#1{%
- \edef\tikz at timer@start{\noexpand\pgfqpoint{\the\tikz at lastx}{\the\tikz at lasty}}%
- \pgf at xc\tikz at lastx
- \pgf at yb\tikz at lasty
- \advance\tikz at lasty1pt%
- \let\pgf at temp\tikz at moveto@waiting
- \tikz at flush@moveto at toward{\pgfqpoint{\tikz at lastx}{\tikz at lasty}}\pgf at xc\pgf at yc
- \tikz at make@last at position{#1}%
- \begingroup
- \pgfqkeys{/tikz/ortho}{/tikz/style/.expand once=\tikz at hvvh@currentoption}%
- \pgfmathsetlength\tikzext at tikz@udlr at distance{\pgfkeysvalueof{/tikz/ortho/ud distance}}%
- \iftikz at shapeborder
- \advance\pgf at y1pt%
- \pgf at process{\pgfpointshapeborder{\tikz at shapeborder@name}{\pgfqpoint{\pgf at x}{\pgf at y}}}%
- \iftikzext at tikz@hvvh at fromcenter
- \pgf at yc\pgf at yb
- \else\ifx\pgf at temp\relax
- \pgf at yc\pgf at yb
- \fi
- \fi
- \ifdim\pgf at yc<\pgf at y
- \iftikzext at tikz@hvvh at fromcenter
- \pgf at yc=\tikz at lasty
- \else
- \pgf at yc=\pgf at y
- \fi
- \fi
- \advance\pgf at yc\tikzext at tikz@udlr at distance
- \edef\pgf at temp{\noexpand\pgfqpoint{\the\pgf at x}{\the\pgf at y}}%
- \else
- \let\tikz at shapeborder@name\pgfutil at empty
- \ifx\pgf at temp\relax\else
- \iftikzext at tikz@hvvh at fromcenter\else
- \pgf at yb\pgf at yc
- \fi
- \fi
- \ifdim\pgf at yb<\tikz at lasty\pgf at yb\tikz at lasty\fi
- \advance\pgf at yb\tikzext at tikz@udlr at distance
- \pgf at yc\pgf at yb
- \edef\pgf at temp{\noexpand\pgfqpoint{\the\tikz at lastx}{\the\tikz at lasty}}%
- \fi
- \xdef\pgf at marshal{%
- \noexpand\tikz at do@hvvh
- {\noexpand\pgfqpoint{\the\pgf at xc}{\the\pgf at yc}}%
- {\noexpand\pgfqpoint{\the\tikz at lastx}{\the\pgf at yc}}%
- {\expandafter\noexpand\pgf at temp}%
- {\noexpand\tikz at timer@vhvline}{\tikz at shapeborder@name}}%
- \endgroup
- \pgf at marshal}%
-
-%% r-du operator
-\def\tikzext at tikz@@du at lineto#1{%
- \edef\tikz at timer@start{\noexpand\pgfqpoint{\the\tikz at lastx}{\the\tikz at lasty}}%
- \pgf at xc\tikz at lastx
- \pgf at yb\tikz at lasty
- \advance\tikz at lasty-1pt%
- \let\pgf at temp\tikz at moveto@waiting
- \tikz at flush@moveto at toward{\pgfqpoint{\tikz at lastx}{\tikz at lasty}}\pgf at xc\pgf at yc
- \tikz at make@last at position{#1}%
- \begingroup
- \pgfqkeys{/tikz/ortho}{/tikz/style/.expand once=\tikz at hvvh@currentoption}%
- \pgfmathsetlength\tikzext at tikz@udlr at distance{\pgfkeysvalueof{/tikz/ortho/du distance}}%
- \iftikz at shapeborder
- \advance\pgf at y-1pt%
- \pgf at process{\pgfpointshapeborder{\tikz at shapeborder@name}{\pgfqpoint{\pgf at x}{\pgf at y}}}%
- \iftikzext at tikz@hvvh at fromcenter
- \pgf at yc\pgf at yb
- \else\ifx\pgf at temp\relax
- \pgf at yc\pgf at yb
- \fi
- \fi
- \ifdim\pgf at yc>\pgf at y
- \iftikzext at tikz@hvvh at fromcenter
- \pgf at yc=\tikz at lasty
- \else
- \pgf at yc=\pgf at y
- \fi
- \fi
- \advance\pgf at yc-\tikzext at tikz@udlr at distance
- \edef\pgf at temp{\noexpand\pgfqpoint{\the\pgf at x}{\the\pgf at y}}%
- \else
- \let\tikz at shapeborder@name\pgfutil at empty
- \ifx\pgf at temp\relax\else
- \iftikzext at tikz@hvvh at fromcenter\else
- \pgf at yb\pgf at yc
- \fi
- \fi
- \ifdim\pgf at yb>\tikz at lasty\pgf at yb\tikz at lasty\fi
- \advance\pgf at yb-\tikzext at tikz@udlr at distance
- \pgf at yc\pgf at yb
- \edef\pgf at temp{\noexpand\pgfqpoint{\the\tikz at lastx}{\the\tikz at lasty}}%
- \fi
- \xdef\pgf at marshal{%
- \noexpand\tikz at do@hvvh
- {\noexpand\pgfqpoint{\the\pgf at xc}{\the\pgf at yc}}%
- {\noexpand\pgfqpoint{\the\tikz at lastx}{\the\pgf at yc}}%
- {\expandafter\noexpand\pgf at temp}%
- {\noexpand\tikz at timer@vhvline}{\tikz at shapeborder@name}}%
- \endgroup
- \pgf at marshal}%
-
-%% r-lr operator
-\def\tikzext at tikz@@lr at lineto#1{%
- \edef\tikz at timer@start{\noexpand\pgfqpoint{\the\tikz at lastx}{\the\tikz at lasty}}%
- \pgf at xb\tikz at lastx
- \pgf at yc\tikz at lasty
- \advance\tikz at lastx-1pt%
- \let\pgf at temp\tikz at moveto@waiting
- \tikz at flush@moveto at toward{\pgfqpoint{\tikz at lastx}{\tikz at lasty}}\pgf at xc\pgf at yc
- \tikz at make@last at position{#1}%
- \begingroup
- \pgfqkeys{/tikz/ortho}{/tikz/style/.expand once=\tikz at hvvh@currentoption}%
- \pgfmathsetlength\tikzext at tikz@udlr at distance{\pgfkeysvalueof{/tikz/ortho/lr distance}}%
- \iftikz at shapeborder
- \advance\pgf at x-1pt%
- \pgf at process{\pgfpointshapeborder{\tikz at shapeborder@name}{\pgfqpoint{\pgf at x}{\pgf at y}}}%
- \iftikzext at tikz@hvvh at fromcenter
- \pgf at xc\pgf at xb
- \else\ifx\pgf at temp\relax
- \pgf at xc\pgf at xb
- \fi
- \fi
- \ifdim\pgf at xc>\pgf at x
- \iftikzext at tikz@hvvh at fromcenter
- \pgf at xc=\tikz at lastx
- \else
- \pgf at xc=\pgf at x
- \fi
- \fi
- \advance\pgf at xc-\tikzext at tikz@udlr at distance
- \edef\pgf at temp{\noexpand\pgfqpoint{\the\pgf at x}{\the\pgf at y}}%
- \else
- \let\tikz at shapeborder@name\pgfutil at empty
- \ifx\pgf at temp\relax\else
- \iftikzext at tikz@hvvh at fromcenter\else
- \pgf at xb\pgf at xc
- \fi
- \fi
- \ifdim\pgf at xb>\tikz at lastx\pgf at xb\tikz at lastx\fi
- \advance\pgf at xb-\tikzext at tikz@udlr at distance
- \pgf at xc\pgf at xb
- \edef\pgf at temp{\noexpand\pgfqpoint{\the\tikz at lastx}{\the\tikz at lasty}}%
- \fi
- \xdef\pgf at marshal{%
- \noexpand\tikz at do@hvvh
- {\noexpand\pgfqpoint{\the\pgf at xc}{\the\pgf at yc}}%
- {\noexpand\pgfqpoint{\the\pgf at xc}{\the\tikz at lasty}}%
- {\expandafter\noexpand\pgf at temp}%
- {\noexpand\tikz at timer@hvhline}{\tikz at shapeborder@name}}%
- \endgroup
- \pgf at marshal}%
-
-%% r-rl operator
-\def\tikzext at tikz@@rl at lineto#1{%
- \edef\tikz at timer@start{\noexpand\pgfqpoint{\the\tikz at lastx}{\the\tikz at lasty}}%
- \pgf at xb\tikz at lastx
- \pgf at yc\tikz at lasty
- \advance\tikz at lastx1pt%
- \let\pgf at temp\tikz at moveto@waiting
- \tikz at flush@moveto at toward{\pgfqpoint{\tikz at lastx}{\tikz at lasty}}\pgf at xc\pgf at yc
- \tikz at make@last at position{#1}%
- \begingroup
- \pgfqkeys{/tikz/udlr}{/tikz/ortho/.expand once=\tikz at hvvh@currentoption}%
- \pgfmathsetlength\tikzext at tikz@udlr at distance{\pgfkeysvalueof{/tikz/ortho/rl distance}}%
- \iftikz at shapeborder%
- \advance\pgf at x1pt%
- \pgf at process{\pgfpointshapeborder{\tikz at shapeborder@name}{\pgfqpoint{\pgf at x}{\pgf at y}}}%
- \iftikzext at tikz@hvvh at fromcenter
- \pgf at xc\pgf at xb
- \else\ifx\pgf at temp\relax
- \pgf at xc\pgf at xb
- \fi
- \fi
- \ifdim\pgf at xc<\pgf at x
- \iftikzext at tikz@hvvh at fromcenter
- \pgf at xc=\tikz at lastx
- \else
- \pgf at xc=\pgf at x
- \fi
- \fi
- \advance\pgf at xc\tikzext at tikz@udlr at distance
- \edef\pgf at temp{\noexpand\pgfqpoint{\the\pgf at x}{\the\pgf at y}}%
- \else
- \let\tikz at shapeborder@name\pgfutil at empty%
- \ifx\pgf at temp\relax\else
- \iftikzext at tikz@hvvh at fromcenter\else
- \pgf at xb\pgf at xc
- \fi
- \fi
- \ifdim\pgf at xb<\tikz at lastx\pgf at xb\tikz at lastx\fi
- \advance\pgf at xb\tikzext at tikz@udlr at distance
- \pgf at xc\pgf at xb
- \edef\pgf at temp{\noexpand\pgfqpoint{\the\tikz at lastx}{\the\tikz at lasty}}%
- \fi
- \xdef\pgf at marshal{%
- \noexpand\tikz at do@hvvh
- {\noexpand\pgfqpoint{\the\pgf at xc}{\the\pgf at yc}}%
- {\noexpand\pgfqpoint{\the\pgf at xc}{\the\tikz at lasty}}%
- {\expandafter\noexpand\pgf at temp}%
- {\noexpand\tikz at timer@hvhline}{\tikz at shapeborder@name}}%
- \endgroup
- \pgf at marshal}%
-
-%% a few nice to haves, use with to or edge operator
-\tikzset{
- node as new start/.is if=tikzext at ortho@preflush,
- node as new start,
- ortho/install shortcuts/.style={
- *|/.style={only vertical second={#1}}, *|/.default=,
- |*/.style={only vertical first={#1}}, |*/.default=,
- *-/.style={only horizontal second={#1}}, *-/.default=,
- -*/.style={only horizontal first={#1}}, -*/.default=,
- |-/.style={to path={|-(\tikztotarget)\tikztonodes}},
- -|/.style={to path={-|(\tikztotarget)\tikztonodes}},
- -|-/.style=/tikz/horizontal vertical horizontal,
- |-|/.style=/tikz/vertical horizontal vertical,
- },
- horizontal vertical/.style={to path={-| (\tikztotarget) \tikztonodes}},
- vertical horizontal/.style={to path={|- (\tikztotarget) \tikztonodes}},
- horizontal vertical horizontal/.style={to path={-|- (\tikztotarget) \tikztonodes}},
- vertical horizontal vertical/.style={to path={|-| (\tikztotarget) \tikztonodes}},
- only vertical second/.style={to path={
- \pgfextra
- \let\tikzext at ortho@anchor\pgfutil at empty
- \let\tikzext at origtotarget\pgfutil at empty
- \tikz at scan@one at point\pgfutil at firstofone(\tikztostart)\relax
- \iftikz at shapeborder
- \tikz at scan@one at point\pgfutil at firstofone(\tikztotarget)\relax
- \ifdim\pgf at y>\tikz at lasty\relax
- \edef\tikztostart{\tikztostart.north}%
- \iftikz at shapeborder\def\tikzext at ortho@anchor{.south}\fi
- \else
- \edef\tikztostart{\tikztostart.south}%
- \iftikz at shapeborder\def\tikzext at ortho@anchor{.north}\fi
- \fi
- \fi
- \def\tikz at tempa{#1}%
- \ifx\tikz at tempa\pgfutil at empty\else
- \let\tikzext at origtotarget\tikztotarget
- \edef\tikztotarget{[xshift={#1}]\tikztotarget\tikzext at ortho@anchor}%
- \fi
- \endpgfextra
- [insert path/.expanded={
- (perpendicular cs: horizontal line through={(\tikztostart)},
- vertical line through={(\tikztotarget)}) -- (\tikztotarget)}] \tikztonodes
- \pgfextra
- \ifx\tikzext at origtotarget\pgfutil at empty\else
- \iftikzext at ortho@preflush(\tikzext at origtotarget)\fi\fi\endpgfextra}},
- only vertical second/.default=,
- only horizontal second/.style={to path={
- \pgfextra
- \let\tikzext at ortho@anchor\pgfutil at empty
- \let\tikzext at origtotarget\pgfutil at empty
- \tikz at scan@one at point\pgfutil at firstofone(\tikztostart)\relax
- \iftikz at shapeborder
- \tikz at scan@one at point\pgfutil at firstofone(\tikztotarget)\relax
- \ifdim\pgf at x>\tikz at lastx\relax
- \edef\tikztostart{\tikztostart.east}%
- \iftikz at shapeborder\def\tikzext at ortho@anchor{.west}\fi
- \else
- \edef\tikztostart{\tikztostart.west}%
- \iftikz at shapeborder\def\tikzext at ortho@anchor{.east}\fi
- \fi
- \fi
- \def\tikz at tempa{#1}%
- \ifx\tikz at tempa\pgfutil at empty\else
- \let\tikzext at origtotarget\tikztotarget
- \edef\tikztotarget{[yshift={#1}]\tikztotarget\tikzext at ortho@anchor}%
- \fi
- \endpgfextra
- [insert path/.expanded={
- (perpendicular cs: vertical line through={(\tikztostart)},
- horizontal line through={(\tikztotarget)}) -- (\tikztotarget)}] \tikztonodes
- \pgfextra
- \ifx\tikzext at origtotarget\pgfutil at empty\else
- \iftikzext at ortho@preflush(\tikzext at origtotarget)\fi\fi\endpgfextra}},
- only horizontal second/.default=,
- only vertical first/.style={to path={
- \pgfextra
- \let\tikzext at ortho@anchor\pgfutil at empty
- \let\tikzext at origtotarget\pgfutil at empty
- \tikz at scan@one at point\pgfutil at firstofone(\tikztotarget)\relax
- \pgf at ya=\pgf at y
- \iftikz at shapeborder
- \let\tikzext at origtotarget\tikztotarget
- \tikz at scan@one at point\pgfutil at firstofone(\tikztostart)\relax
- \ifdim\pgf at ya>\tikz at lasty\relax
- \edef\tikztotarget{\tikztotarget.south}%
- \iftikz at shapeborder\def\tikzext at ortho@anchor{.north}\fi
- \else
- \edef\tikztotarget{\tikztotarget.north}%
- \iftikz at shapeborder\def\tikzext at ortho@anchor{.south}\fi
- \fi
- \fi
- \def\tikz at tempa{#1}%
- \ifx\tikz at tempa\pgfutil at empty\else
- \edef\tikztostart{[xshift={#1}]\tikztostart\tikzext at ortho@anchor}%
- \fi
- \endpgfextra
- [insert path/.expanded={(\tikztostart)}]
- -- (perpendicular cs: vertical line through/.expanded={(\tikztostart)},
- horizontal line through={(\tikztotarget)})
- \tikztonodes
- \pgfextra
- \ifx\tikzext at origtotarget\pgfutil at empty\else
- \iftikzext at ortho@preflush(\tikzext at origtotarget)\fi\fi\endpgfextra}},
- only vertical first/.default=,
- only horizontal first/.style={to path={
- \pgfextra
- \let\tikzext at ortho@anchor\pgfutil at empty
- \let\tikzext at origtotarget\pgfutil at empty
- \tikz at scan@one at point\pgfutil at firstofone(\tikztotarget)\relax
- \pgf at xa=\pgf at x
- \iftikz at shapeborder
- \let\tikzext at origtotarget\tikztotarget
- \tikz at scan@one at point\pgfutil at firstofone(\tikztostart)\relax
- \ifdim\pgf at xa>\tikz at lastx\relax
- \edef\tikztotarget{\tikztotarget.west}%
- \iftikz at shapeborder\def\tikzext at ortho@anchor{.east}\fi
- \else
- \edef\tikztotarget{\tikztotarget.east}%
- \iftikz at shapeborder\def\tikzext at ortho@anchor{.west}\fi
- \fi
- \fi
- \def\tikz at tempa{#1}%
- \ifx\tikz at tempa\pgfutil at empty\else
- \edef\tikztostart{[yshift={#1}]\tikztostart\tikzext at ortho@anchor}%
- \fi
- \endpgfextra
- [insert path/.expanded={(\tikztostart)}]
- -- (perpendicular cs: horizontal line through/.expanded={(\tikztostart)},
- vertical line through={(\tikztotarget)})
- \tikztonodes \pgfextra
- \ifx\tikzext at origtotarget\pgfutil at empty\else
- \iftikzext at ortho@preflush(\tikzext at origtotarget)\fi\fi\endpgfextra}},
- only horizontal first/.default=,
- only vertical first to center/.style={to path={
- \pgfextra
- \let\tikzext at origtotarget\tikztotarget
- \endpgfextra
- (\tikztostart) -- (perpendicular cs: vertical line through={(\tikztostart)},
- horizontal line through={(\tikztotarget)})
- \tikztonodes \ifx\tikzext at origtotarget\pgfutil at empty\else\iftikzext at ortho@preflush(\tikzext at origtotarget)\fi\fi}},
- only horizontal first to center/.style={to path={
- \pgfextra
- \let\tikzext at origtotarget\tikztotarget
- \endpgfextra
- (\tikztostart) -- (perpendicular cs: horizontal line through={(\tikztostart)},
- vertical line through={(\tikztotarget)})
- \tikztonodes \ifx\tikzext at origtotarget\pgfutil at empty\else\iftikzext at ortho@preflush(\tikzext at origtotarget)\fi\fi}}%
-}
-\endinput
\ No newline at end of file
Deleted: trunk/Master/texmf-dist/tex/latex/tikz-ext/tikzlibraryext.paths.timer.code.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tikz-ext/tikzlibraryext.paths.timer.code.tex 2022-11-03 20:29:02 UTC (rev 64919)
+++ trunk/Master/texmf-dist/tex/latex/tikz-ext/tikzlibraryext.paths.timer.code.tex 2022-11-03 21:03:19 UTC (rev 64920)
@@ -1,188 +0,0 @@
-% Copyright 2022 by Qrrbrbirlbel
-%
-% This file may be distributed and/or modified
-%
-% 1. under the LaTeX Project Public License and/or
-% 2. under the GNU Free Documentation License.
-%
-\def\tikz at rectB#1{% originally from tikz.code.tex
- \tikz at make@last at position{#1}%
- \edef\tikz at timer@end{\noexpand\pgfqpoint{\the\tikz at lastx}{\the\tikz at lasty}}%
- \let\tikz at timer\tikz at timer@rectangle% %% Timer: new timer
- \tikz@@movetosave{\pgfqpoint{\pgf at xa}{\pgf at ya}}%
- \tikz at path@lineto{\pgfqpoint{\pgf at xa}{\tikz at lasty}}%
- \tikz at path@lineto{\pgfqpoint{\tikz at lastx}{\tikz at lasty}}%
- \tikz at path@lineto{\pgfqpoint{\tikz at lastx}{\pgf at ya}}%
- \iftikz at snaked
- \tikz at path@lineto{\pgfqpoint{\pgf at xa}{\pgf at ya}}%
- \fi
- \pgfpathclose
- \tikz@@movetosave{\pgfqpoint{\tikz at lastx}{\tikz at lasty}}%
- \def\pgfstrokehook{}%
- \let\tikz at tangent\relax
- \tikz at scan@next at command
-}%
-
-\def\tikz@@sine#1{% originally from tikz.code.tex
- \let\tikz at tangent\tikz at tangent@lookup
- \tikz at flush@moveto
- \edef\tikz at timer@start{\pgfqpoint{\the\tikz at lastx}{\the\tikz at lasty}}% %% Timer: save start position
- \pgf at process{#1}%
- \edef\tikz at timer@end{\pgfqpoint{\the\pgf at x}{\the\pgf at y}}% %% Timer: saver target position
- \pgf at xc=\pgf at x
- \pgf at yc=\pgf at y
- \advance\pgf at xc by-\tikz at lastx
- \advance\pgf at yc by-\tikz at lasty
- \advance\tikz at lastx by\pgf at xc
- \advance\tikz at lasty by\pgf at yc
- \tikz at lastxsaved=\tikz at lastx
- \tikz at lastysaved=\tikz at lasty
- \tikz at updatecurrenttrue
- \let\tikz at timer=\tikz at timer@sine% %% Timer: new timer
- \pgfpathsine{\pgfqpoint{\pgf at xc}{\pgf at yc}}%
- \tikz at scan@next at command
-}
-
-\def\tikz@@cosine#1{% originally from tikz.code.tex
- \let\tikz at tangent\tikz at tangent@lookup
- \tikz at flush@moveto
- \edef\tikz at timer@start{\pgfqpoint{\the\tikz at lastx}{\the\tikz at lasty}}% %% Timer: save start position
- \pgf at process{#1}%
- \edef\tikz at timer@end{\pgfqpoint{\the\pgf at x}{\the\pgf at y}}% %% Timer: save target position
- \pgf at xc=\pgf at x
- \pgf at yc=\pgf at y
- \advance\pgf at xc by-\tikz at lastx
- \advance\pgf at yc by-\tikz at lasty
- \advance\tikz at lastx by\pgf at xc
- \advance\tikz at lasty by\pgf at yc
- \tikz at lastxsaved=\tikz at lastx
- \tikz at lastysaved=\tikz at lasty
- \tikz at updatecurrenttrue
- \let\tikz at timer=\tikz at timer@cosine% %% Timer: new timer
- \pgfpathcosine{\pgfqpoint{\pgf at xc}{\pgf at yc}}%
- \tikz at scan@next at command
-}
-
-\def\tikz at timer@rectangle{%
- \pgfutil at tempdima\tikz at time pt
- \ifdim\pgfutil at tempdima<.5pt\else % if we're at the return pos-ition we switch start and end
- \advance\pgfutil at tempdima-.5pt
- \let\pgf at tempa\tikz at timer@start
- \let\tikz at timer@start\tikz at timer@end
- \let\tikz at timer@end\pgf at tempa
- \fi
- \multiply\pgfutil at tempdima2
- \edef\tikz at time{\strip at pt\pgfutil at tempdima}%
- \tikz at timer@hvline}%
-
-\def\tikz at parabola@semifinal#1{%
- \tikz at flush@moveto
- % Save original start:
- \edef\tikz at timer@start{\noexpand\pgfqpoint{\the\tikz at lastx}{\the\tikz at lasty}}% %% Timer: save start position
- \pgf at xb=\tikz at lastx
- \pgf at yb=\tikz at lasty
- \tikz at make@last at position{#1}%
- \edef\tikz at timer@end{\noexpand\pgfqpoint{\the\tikz at lastx}{\the\tikz at lasty}}% %% Timer: save target position
- \pgf at xc=\tikz at lastx
- \pgf at yc=\tikz at lasty
- \begingroup% now calculate bend:
- \let\tikz at after@path\pgfutil at empty
- \expandafter\tikzset\expandafter{\tikz at parabola@option}%
- \tikz at lastxsaved=\tikz at parabola@bend at factor\tikz at lastx
- \tikz at lastysaved=\tikz at parabola@bend at factor\tikz at lasty
- \advance\tikz at lastxsaved by\pgf at xb
- \advance\tikz at lastysaved by\pgf at yb
- \advance\tikz at lastxsaved by-\tikz at parabola@bend at factor\pgf at xb
- \advance\tikz at lastysaved by-\tikz at parabola@bend at factor\pgf at yb
- \expandafter\tikz at make@last at position\expandafter{\tikz at parabola@bend}%
- \edef\tikz at timer@middle{{\the\tikz at lastx}{\the\tikz at lasty}}% %% Timer: save bend postion
- % Calculate delta from bend
- \advance\pgf at xc by-\tikz at lastx
- \advance\pgf at yc by-\tikz at lasty
- % Ok, now calculate delta to bend
- \advance\tikz at lastx by-\pgf at xb
- \advance\tikz at lasty by-\pgf at yb
- \edef\tikz at marshall{%
- \noexpand\let\noexpand\tikz at timer\noexpand\tikz at timer@parabola
- \noexpand\edef\noexpand\tikz at timer@middle{\noexpand\pgfqpoint\tikz at timer@middle}%
- \noexpand\pgfpathparabola{\noexpand\pgfqpoint{\the\tikz at lastx}{\the\tikz at lasty}}{\noexpand\pgfqpoint{\the\pgf at xc}{\the\pgf at yc}}%
- }%
- \expandafter\endgroup%
- \tikz at marshall
- \expandafter\tikz at scan@next at command\tikz at after@path%
-}%
-
-\def\tikz at timer@parabola{% following calculations, see \def of \pgfpathparabola in pgfcorepathconstruct.code.tex (l. 1261)
- \ifdim\tikz at time pt<.5pt\relax % first part
- \pgf at process{\tikz at timer@middle}%
- \pgf at xc\pgf at x\pgf at yc\pgf at y
- \pgf at xb\pgf at x\pgf at yb\pgf at y
- \pgf at process{\tikz at timer@start}%
- \advance\pgf at xc-\pgf at x\pgf at xc.1125\pgf at xc
- \advance\pgf at xc\pgf at x % = start_x + .1125 (middle_x - start_x)
- \advance\pgf at yc-\pgf at y\pgf at yc.225\pgf at yc
- \advance\pgf at yc\pgf at y % = start_y + .225 (middle_y - start_y)
- \advance\pgf at xb\pgf at x\pgf at xb.5\pgf at xb % = .5 (middle_x + start_x) = start_x + .5 (middle_x - start_x)
- \pgf at xa=\tikz at time pt%
- \pgf at xa=2\pgf at xa % = 2 * \tikz at time
- \edef\tikz at marshall{\noexpand\pgftransformcurveattime{\strip at pt\pgf at xa}{\noexpand\tikz at timer@start}%
- {\noexpand\pgfqpoint{\the\pgf at xc}{\the\pgf at yc}}%
- {\noexpand\pgfqpoint{\the\pgf at xb}{\the\pgf at yb}}%
- {\noexpand\tikz at timer@middle}}%
- \else % second part
- \pgf at process{\tikz at timer@end}%
- \pgf at xc\pgf at x
- \pgf at xb\pgf at x
- \pgf at yb\pgf at y
- \pgf at process{\tikz at timer@middle}%
- \advance\pgf at xc\pgf at x\pgf at xc.5\pgf at xc % = .5 (end_x + middle_x) = middle_x + .5 (end_x - middle_x)
- \advance\pgf at xb-\pgf at x\pgf at xb.8875\pgf at xb
- \advance\pgf at xb\pgf at x % = middle_x + .8875 (end_x - middle_x)
- \advance\pgf at yb-\pgf at y\pgf at yb.775\pgf at yb
- \advance\pgf at yb\pgf at y % = middle_y + .775 (end_y - middle_y)
- \pgf at xa=\tikz at time pt%
- \advance\pgf at xa-.5pt%
- \pgf at xa=2\pgf at xa % = 2 (\tikz at zime - .5)
- \edef\tikz at marshall{\noexpand\pgftransformcurveattime{\strip at pt\pgf at xa}{\noexpand\tikz at timer@middle}%
- {\noexpand\pgfqpoint{\the\pgf at xc}{\the\pgf at y}}%
- {\noexpand\pgfqpoint{\the\pgf at xb}{\the\pgf at yb}}%
- {\noexpand\tikz at timer@end}}%
- \fi
- \tikz at marshall
-}
-
-\def\tikz at timer@sine{% following calculations, see \def of \pgfpathsine in pgfcorepathconstruct.code.tex (l. 1315)
- \pgf at process{\tikz at timer@end}%
- \pgf at xc\pgf at x\pgf at yc\pgf at y
- \pgf at xb\pgf at x\pgf at yb\pgf at y
- \pgf at process{\tikz at timer@start}%
- \advance\pgf at xc-\pgf at x\pgf at xc.3260\pgf at xc
- \advance\pgf at xc\pgf at x % = start_x + .3260 (end_x - start_x)
- \advance\pgf at yc-\pgf at y\pgf at yc.5120\pgf at yc
- \advance\pgf at yc\pgf at y % = start_y + .5120 (end_y - start_y)
- \advance\pgf at xb-\pgf at x\pgf at xb.6380\pgf at xb % = start_x + .6380 (end_x - start_x)
- \advance\pgf at xb\pgf at x
- \edef\tikz at marshall{\noexpand\pgftransformcurveattime{\tikz at time}{\noexpand\tikz at timer@start}%
- {\noexpand\pgfqpoint{\the\pgf at xc}{\the\pgf at yc}}%
- {\noexpand\pgfqpoint{\the\pgf at xb}{\the\pgf at yb}}%
- {\noexpand\tikz at timer@end}}%
- \tikz at marshall
-}
-\def\tikz at timer@cosine{% following calculations, see \def of \pgfpathcosine in pgfcorepathconstruct.code.tex (l. 1345)
- \pgf at process{\tikz at timer@end}%
- \pgf at xc\pgf at x\pgf at yc\pgf at y
- \pgf at xb\pgf at x\pgf at yb\pgf at y
- \pgf at process{\tikz at timer@start}%
- \advance\pgf at xb-\pgf at x\pgf at xb.6740\pgf at xb
- \advance\pgf at xb\pgf at x % = start_x + .6740 (end_x - start_x)
- \advance\pgf at yb-\pgf at y\pgf at yb.4880\pgf at yb
- \advance\pgf at yb\pgf at y % = start_y + .4880 (end_y - start_y)
- \advance\pgf at xc-\pgf at x\pgf at xc.3620\pgf at xc % = start_x + .3620 (end_x - start_x)
- \advance\pgf at xc\pgf at x
- \edef\tikz at marshall{\noexpand\pgftransformcurveattime{\tikz at time}{\noexpand\tikz at timer@start}%
- {\noexpand\pgfqpoint{\the\pgf at xc}{\the\pgf at y}}%
- {\noexpand\pgfqpoint{\the\pgf at xb}{\the\pgf at yb}}%
- {\noexpand\tikz at timer@end}}%
- \tikz at marshall
-}
-\endinput
\ No newline at end of file
Deleted: trunk/Master/texmf-dist/tex/latex/tikz-ext/tikzlibraryext.patterns.images.code.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tikz-ext/tikzlibraryext.patterns.images.code.tex 2022-11-03 20:29:02 UTC (rev 64919)
+++ trunk/Master/texmf-dist/tex/latex/tikz-ext/tikzlibraryext.patterns.images.code.tex 2022-11-03 21:03:19 UTC (rev 64920)
@@ -1,60 +0,0 @@
-% Copyright 2022 by Qrrbrbirlbel
-%
-% This file may be distributed and/or modified
-%
-% 1. under the LaTeX Project Public License and/or
-% 2. under the GNU Free Documentation License.
-%
-% This is the TikZ library patterns.images
-% Load with \usetikzlibrary{patterns.images}
-%
-% Macro:
-% - \pgfSetupImageAsPattern[<opt arguments for \pgfdeclareimage>]{<name>}{<path/file>}
-%
-% Keys are:
-% - use image as pattern=<name>
-% - image as pattern=<opt arguments for \pgftext>
-
-\def\pgfsetupimageaspattern{\pgfutil at ifnextchar[\tikzext at pgfsetupimageaspattern{\tikzext at pgfsetupimageaspattern[]}}
-\def\tikzext at pgfsetupimageaspattern[#1]#2#3{% #1 = options
- % #2 = image name
- % #3 = file name
- \pgfdeclareimage[#1]{tikzext at pgf@iap@#2}{#3}%
- \sbox\pgfutil at tempboxa{\pgfuseimage{tikzext at pgf@iap@#2}}%
- \expandafter\edef\csname tikzext at pgf@iap@#2@\endcsname{{\the\wd\pgfutil at tempboxa}{\the\ht\pgfutil at tempboxa}}%
-}
-\tikzset{
- image as pattern/name/.initial=,
- image as pattern/option/.style=,
- image as pattern/options/.style={/tikz/image as pattern/option/.append style={#1}},
- image as pattern/.default=,
- image as pattern/.code={
- \pgfqkeys{/tikz/image as pattern}{#1}%
- \pgfkeysgetvalue{/tikz/image as pattern/name}\tikz at temp
- \pgfutil at ifxempty\tikz at temp{%
- \tikzerror{You need to specify a name for the ``image-pattern'' to be used.}%
- }{%
- \edef\tikz at tempa{\expandafter\expandafter\expandafter\pgfutil at firstoftwo\csname tikzext at pgf@iap@\tikz at temp @\endcsname}%
- \edef\tikz at tempb{\expandafter\expandafter\expandafter\pgfutil at secondoftwo\csname tikzext at pgf@iap@\tikz at temp @\endcsname}%
- \pgfkeysalso{/tikz/path picture={%
- \pgf at process{\pgfpointanchor{path picture bounding box}{north east}}%
- \pgf at xa\pgf at x\pgf at ya\pgf at y
- \pgf at process{\pgfpointanchor{path picture bounding box}{south west}}%
- \pgf at xb\pgf at x\pgf at yb\pgf at y\pgf at yc\pgf at yb
- \pgfutil at loop
- {%
- \pgfutil at loop
- \expandafter\pgftext\expandafter[/tikz/image as pattern/option,at=\pgfqpoint{\pgf at xb}{\pgf at yb}]{\pgfuseimage{tikzext at pgf@iap@\tikz at temp}}%
- \ifdim\pgf at yb<\pgf at ya
- \advance\pgf at yb\tikz at tempb
- \pgfutil at repeat
- }%
- \ifdim\pgf at xb<\pgf at xa
- \advance\pgf at xb\tikz at tempa
- \pgf at yb\pgf at yc
- \pgfutil at repeat
- }}%
- }
- }
-}
-\endinput
Deleted: trunk/Master/texmf-dist/tex/latex/tikz-ext/tikzlibraryext.positioning-plus.code.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tikz-ext/tikzlibraryext.positioning-plus.code.tex 2022-11-03 20:29:02 UTC (rev 64919)
+++ trunk/Master/texmf-dist/tex/latex/tikz-ext/tikzlibraryext.positioning-plus.code.tex 2022-11-03 21:03:19 UTC (rev 64920)
@@ -1,262 +0,0 @@
-% This is the TikZ library positioning-plus
-% Load with \usetikzlibrary{positioning-plus}
-%
-% This small library extends TikZ options like 'above', 'left' or 'below right'
-% so that they can be used with an optional prefixed factor seperated by ':' (colon)
-%
-% The option 'left=.5:of somenode' will place
-% a new node .5cm (default 'node distance' is '1cm and 1cm') left to (somenode).
-% The option 'above right=.2 and .7:of someothernode' will place
-% a new node .2cm above and .7cm right of (someothernode).
-%
-% Additional the options 'xshift*' and 'yshift*' add an additional shift
-% as a factor of 'node distance'
-% Inspired by http://tex.stackexchange.com/a/117610/16595
-
-\usetikzlibrary{positioning}
-\usetikzlibrary{fit}
-
-\pgfdeclaregenericanchor{corner south east}{%
- \pgf at sh@reanchor{#1}{south}%
- \pgf at ya\pgf at y
- \pgf at process{\pgf at sh@reanchor{#1}{east}}%
- \pgf at y\pgf at ya
-}
-\pgfdeclaregenericanchor{corner north east}{%
- \pgf at sh@reanchor{#1}{north}%
- \pgf at ya\pgf at y
- \pgf at process{\pgf at sh@reanchor{#1}{east}}%
- \pgf at y\pgf at ya
-}
-\pgfdeclaregenericanchor{corner south west}{%
- \pgf at sh@reanchor{#1}{south}%
- \pgf at ya\pgf at y
- \pgf at process{\pgf at sh@reanchor{#1}{west}}%
- \pgf at y\pgf at ya
-}
-\pgfdeclaregenericanchor{corner north west}{%
- \pgf at sh@reanchor{#1}{north}%
- \pgf at ya\pgf at y
- \pgf at process{\pgf at sh@reanchor{#1}{west}}%
- \pgf at y\pgf at ya
-}
-
-\tikzset{corner above left/.code=\tikz at lib@place at handle@{#1}{corner south east}{-1}{1}{corner north west}{0.707106781}}
-\tikzset{corner above right/.code=\tikz at lib@place at handle@{#1}{corner south west}{1}{1}{corner north east}{0.707106781}}
-\tikzset{corner below left/.code=\tikz at lib@place at handle@{#1}{corner north east}{-1}{-1}{corner south west}{0.707106781}}
-\tikzset{corner below right/.code=\tikz at lib@place at handle@{#1}{corner north west}{1}{-1}{corner south east}{0.707106781}}
-
-\tikzset{corner north left/.code =\tikz at lib@place at handle@{#1}{corner north east}{-1}{0}{corner north west}{1}}
-\tikzset{corner north right/.code=\tikz at lib@place at handle@{#1}{corner north west}{1}{0}{corner north east}{1}}
-\tikzset{corner south left/.code =\tikz at lib@place at handle@{#1}{corner south east}{-1}{0}{corner south west}{1}}
-\tikzset{corner south right/.code=\tikz at lib@place at handle@{#1}{corner south west}{1}{0}{corner south east}{1}}
-
-\tikzset{corner west above/.code =\tikz at lib@place at handle@{#1}{corner south west}{0}{1}{corner north west}{1}}
-\tikzset{corner west below/.code=\tikz at lib@place at handle@{#1}{corner north west}{0}{-1}{corner south west}{1}}
-\tikzset{corner east above/.code =\tikz at lib@place at handle@{#1}{corner south east}{0}{1}{corner north east}{1}}
-\tikzset{corner east below/.code=\tikz at lib@place at handle@{#1}{corner north east}{0}{-1}{corner south east}{1}}
-
-\tikzset{north left/.code =\tikz at lib@place at handle@{#1}{north east}{-1}{0}{north west}{1}}
-\tikzset{north right/.code=\tikz at lib@place at handle@{#1}{north west}{1}{0}{north east}{1}}
-\tikzset{south left/.code =\tikz at lib@place at handle@{#1}{south east}{-1}{0}{south west}{1}}
-\tikzset{south right/.code=\tikz at lib@place at handle@{#1}{south west}{1}{0}{south east}{1}}
-
-\tikzset{west above/.code =\tikz at lib@place at handle@{#1}{south west}{0}{1}{north west}{1}}
-\tikzset{west below/.code=\tikz at lib@place at handle@{#1}{north west}{0}{-1}{south west}{1}}
-\tikzset{east above/.code =\tikz at lib@place at handle@{#1}{south east}{0}{1}{north east}{1}}
-\tikzset{east below/.code=\tikz at lib@place at handle@{#1}{north east}{0}{-1}{south east}{1}}
-
-\newif\iftikzext at tikz@lib at place@postransform
-\tikzset{node distance transformation/.is if=tikzext at tikz@lib at place@postransform}
-\def\tikz at lib@place at handle@@#1#2#3#4{%
- \pgfutil at in@{of }{#1}%
- \ifpgfutil at in@
- \tikz at lib@place at of#1\tikz at stop{#4}%
- \else
- \edef\tikz at lib@place at nums{#1}%
- \fi
- \ifx\tikz at lib@place at nums\pgfutil at empty
- % Ok, nothing to do, we have set the anchor and we are happy...
- \else
- \expandafter\tikz at lib@place at parse@nums\expandafter{\tikz at lib@place at nums}%
- \pgf at x=#2\pgf at x
- \pgf at y=#3\pgf at y
- \iftikzext at tikz@lib at place@postransform
- \pgf at pos@transform{\pgf at x}{\pgf at y}% change from original
- \fi
- \edef\tikz at lib@pos at call{\noexpand\pgftransformshift{\noexpand\pgfqpoint{\the\pgf at x}{\the\pgf at y}}}%
- \fi
-}
-
-\def\tikz at lib@place at handle@#1#2#3#4#5#6{%
- \pgfutil at in@{:}{#1}%
- \ifpgfutil at in@
- \tikzext at lib@place at handle@#1\tikz at stop
- \ifx\pgf at temp\pgfutil at empty
- \let\pgf at temp\tikz at node@distance
- \fi
- \pgfmathsetmacro\pgf at tempa{(\pgf at tempa)*#4}%
- \pgfmathsetmacro\pgf at tempb{(\pgf at tempb)*#3}%
- \edef\pgf at marshal{\noexpand\tikz at lib@place at handle@{\pgf at temp}{#2}{\pgf at tempb}{\pgf at tempa}{#5}{#6}}%
- \pgf at marshal
- \else
- \def\tikz at anchor{#2}%
- \let\tikz at do@auto at anchor=\relax
- \edef\tikz at temp{#1}%
- \def\tikz at lib@place at single@factor{#6}%
- \expandafter\tikz at lib@place at handle@@\expandafter{\tikz at temp}{#3}{#4}{#5}%
- \fi
-}
-\def\tikzext at lib@place at handle@#1:#2\tikz at stop{%
- \pgfutil at in@{and}{#1}%
- \ifpgfutil at in@
- \tikzext at lib@place at handle@@#1\tikz at stop
- \else
- \tikzext at lib@place at handle@@#1and#1\tikz at stop
- \fi
- \def\pgf at temp{#2}%
-}
-\def\tikzext at lib@place at handle@@#1and#2\tikz at stop{%
- \def\pgf at tempa{#1}%
- \def\pgf at tempb{#2}%
-}
-\def\tikzext at xyshift@starred#1#2#3{%
- \edef\tikz at marshal{\noexpand\pgfutil at in@{and}{\tikz at node@distance}}%
- \tikz at marshal
- \ifpgfutil at in@
- \expandafter\tikzext at lib@place at handle@@\tikz at node@distance\tikz at stop
- \else
- \let#3\tikz at node@distance
- \fi
- \pgfmathparse{(#1)*#3}%
- \ifpgfmathunitsdeclared
- \if#2x%
- \pgftransformshift{\pgfqpoint{\pgfmathresult pt}{0pt}}%
- \else
- \pgftransformshift{\pgfqpoint{0pt}{\pgfmathresult pt}}%
- \fi
- \else
- \ifx#2x%
- \pgf at process{\pgfqpointxy{\pgfmathresult}{0}}%
- \else
- \pgf at process{\pgfqpointxy{0}{\pgfmathresult}}%
- \fi
- \pgftransformshift{\pgfqpoint{\pgf at x}{\pgf at y}}%
- \fi}
-\tikzset{
- xshift*/.code=\tikzext at xyshift@starred{#1}x\pgf at tempb,
- yshift*/.code=\tikzext at xyshift@starred{#1}y\pgf at tempa
-}
-
-\def\pgfutil at firstofmany#1#2\pgf at stop{#1}
-\def\pgfutil at secondofmany#1#2\pgf at stop{#2}
-\def\tikz at lib@place at of@#1#2#3{%
- \def\pgf at tempa{fit bounding box}%
- \edef\pgf at temp{\expandafter\pgfutil at firstofmany#2\pgf at stop}
- \if\pgf at temp(%
- \tikz at lib@place at fit@scan{#2}{0}%
- \else\if\pgf at temp|%
- \expandafter\tikz at lib@place at fit@scan\expandafter{\pgfutil at secondofmany#2\pgf at stop}{1}%
- \else\ifx\pgf at temp\tikz at activebar
- \expandafter\tikz at lib@place at fit@scan\expandafter{\pgfutil at secondofmany#2\pgf at stop}{1}%
- \else\if\pgf at temp-%
- \expandafter\tikz at lib@place at fit@scan\expandafter{\pgfutil at secondofmany#2\pgf at stop}{2}%
- \else\if\pgf at temp+%
- \expandafter\tikz at lib@place at fit@scan\expandafter{\pgfutil at secondofmany#2\pgf at stop}{3}%
- \else
- \def\pgf at tempa{#2}%
- \fi
- \fi
- \fi
- \fi
- \fi
- \expandafter\tikz at scan@one at point\expandafter\tikz at lib@place at remember\expandafter(\pgf at tempa)%
- \iftikz at shapeborder%
- % Ok, this is relative to a border.
- \iftikz at lib@ignore at size%
- \edef\tikz at node@at{\noexpand\pgfpointanchor{\tikz at shapeborder@name}{center}}%
- \def\tikz at anchor{center}%
- \else%
- \edef\tikz at node@at{\noexpand\pgfpointanchor{\tikz at shapeborder@name}{#3}}%
- \fi%
- \fi%
- \edef\tikz at lib@place at nums{#1}%
-}
-\def\tikz at lib@place at fit@scan#1#2{%
- \pgf at xb=-16000pt\relax%
- \pgf at xa=16000pt\relax%
- \pgf at yb=-16000pt\relax%
- \pgf at ya=16000pt\relax%
- \if\pgfutil at firstofmany#1\pgf at stop(%
- \tikz at lib@fit at scan#1\pgf at stop%
- \else
- \tikz at lib@fit at scan(#1)\pgf at stop
- \fi
- \ifdim\pgf at xa>\pgf at xa
- % shouldn't happen
- \else
- \expandafter\def\csname pgf at sh@ns at fit bounding box\endcsname{rectangle}%
- \expandafter\edef\csname pgf at sh@np at fit bounding box\endcsname{%
- \def\noexpand\southwest{\noexpand\pgfqpoint{\the\pgf at xa}{\the\pgf at ya}}%
- \def\noexpand\northeast{\noexpand\pgfqpoint{\the\pgf at xb}{\the\pgf at yb}}%
- }%
- \expandafter\def\csname pgf at sh@nt at fit bounding box\endcsname{{1}{0}{0}{1}{0pt}{0pt}}%
- \expandafter\def\csname pgf at sh@pi at fit bounding box\expandafter\endcsname\expandafter{\pgfpictureid}%
- \ifcase#2\relax
- \or % 1 = vertical
- \pgf at y=\pgf at yb%
- \advance\pgf at y by-\pgf at ya%
- \edef\pgf at marshal{\noexpand\pgfset{minimum height={\the\pgf at y-2*(\noexpand\pgfkeysvalueof{/pgf/outer ysep})}}}%
- \pgf at marshal
- \or % 2 = horizontal
- \pgf at x=\pgf at xb%
- \advance\pgf at x by-\pgf at xa%
- \edef\pgf at marshal{\noexpand\pgfset{minimum width={\the\pgf at x-2*(\noexpand\pgfkeysvalueof{/pgf/outer xsep})}}}%
- \pgf at marshal
- \or % 3 = both directions
- \pgf at y=\pgf at yb%
- \advance\pgf at y by-\pgf at ya%
- \pgf at x=\pgf at xb%
- \advance\pgf at x by-\pgf at xa%
- \edef\pgf at marshal{\noexpand\pgfset{minimum height={\the\pgf at y-2*(\noexpand\pgfkeysvalueof{/pgf/outer ysep})},minimum width={\the\pgf at x-2*(\noexpand\pgfkeysvalueof{/pgf/outer xsep})}}}%
- \pgf at marshal
- \fi
- \fi
-}
-\tikzset{
- fit bounding box/.code={\tikz at lib@place at fit@scan{#1}{0}},
- span vertical/.code={\tikz at lib@place at fit@scan{#1}{1}},
- span horizontal/.code={\tikz at lib@place at fit@scan{#1}{2}},
- span/.code={\tikz at lib@place at fit@scan{#1}{3}}}
-
-\pgfmathdeclarefunction{x_node_dist}{0}{%
- \begingroup
- \edef\pgfmath at temp{\noexpand\pgfutil at in@{and}{\tikz at node@distance}}%
- \pgfmath at temp\ifpgfutil at in@
- \expandafter\tikzext at lib@place at handle@@\tikz at node@distance\tikz at stop
- \else
- \let\pgf at tempb\tikz at node@distance
- \fi
- \pgfmathparse{\pgf at tempb}%
- \pgfmath at smuggleone\pgfmathresult
- \endgroup
-}
-\pgfmathdeclarefunction{y_node_dist}{0}{%
- \begingroup
- \edef\pgfmath at temp{\noexpand\pgfutil at in@{and}{\tikz at node@distance}}%
- \pgfmath at temp\ifpgfutil at in@
- \expandafter\tikzext at lib@place at handle@@\tikz at node@distance\tikz at stop
- \else
- \let\pgf at tempa\tikz at node@distance
- \fi
- \pgfmathparse{\pgf at tempa}%
- \pgfmath at smuggleone\pgfmathresult
- \endgroup
-}
-%\tikzdeclarecoordinatesystem{node distance}{%
-% \tikz at cs@nd#1\tikz at stop}
-%\def\tikz at cs@nd#1,#2\tikz at stop{%
-% \def\tikzext at xyshift@starred at action##1{\pgftransformshift{##1}}%
-% \tikzext at xyshift@starred{#1}x\pgf at tempb
-% \tikzext at xyshift@starred{#2}y\pgf at tempa}
-\endinput
Deleted: trunk/Master/texmf-dist/tex/latex/tikz-ext/tikzlibraryext.scalepicture.code.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tikz-ext/tikzlibraryext.scalepicture.code.tex 2022-11-03 20:29:02 UTC (rev 64919)
+++ trunk/Master/texmf-dist/tex/latex/tikz-ext/tikzlibraryext.scalepicture.code.tex 2022-11-03 21:03:19 UTC (rev 64920)
@@ -1,194 +0,0 @@
-% Copyright 2022 by Qrrbrbirlbel
-%
-% This file may be distributed and/or modified
-%
-% 1. under the LaTeX Project Public License and/or
-% 2. under the GNU Free Documentation License.
-%
-\def\tikzext at scalepicture@savepicturesize{%
- \pgf at process{%
- \pgfpointdiff
- {\pgfpointanchor{current bounding box}{south west}}
- {\pgfpointanchor{current bounding box}{north east}}}%
- \immediate\write\pgfutil at auxout{%
- \noexpand\expandafter\gdef
- \noexpand\csname tikzext at scalepicture@\pgfpictureid\endcsname{{\the\pgf at x}{\the\pgf at y}}%
- }%
- \let\tikzext at scalepicture@savepicturesize\relax
-}
-
-\def\tikzext at scalepicture@width{%
- \expandafter\expandafter\expandafter\pgfutil at firstoftwo
- \csname tikzext at scalepicture@\pgfpictureid\endcsname
-}
-\def\tikzext at scalepicture@height{%
- \expandafter\expandafter\expandafter\pgfutil at secondoftwo
- \csname tikzext at scalepicture@\pgfpictureid\endcsname
-}
-
-\def\tikzextpicturewidth{%
- \pgfutil at IfUndefined{tikzext at scalepicture@\pgfpictureid}{0pt}{\tikzext at scalepicture@width}}
-\def\tikzextpictureheight{%
- \pgfutil at IfUndefined{tikzext at scalepicture@\pgfpictureid}{0pt}{\tikzext at scalepicture@height}}
-\tikzset{
- save picture size/.style={execute at end picture=\tikzext at scalepicture@savepicturesize},
- save picture size/.value forbidden,
- %%% keep aspect ratio
- %% width and height
- minimum picture size/.code 2 args={%
- \tikzset{save picture size}%
- \pgfutil at IfUndefined{tikzext at scalepicture@\pgfpictureid}{}{%
- \pgfmathsetlength\pgf at xa{#1}%
- \pgfmathsetlength\pgf at ya{#2}%
- \def\tikz at tempa{0}%
- \def\tikz at temp{0}%
- \ifdim\tikzext at scalepicture@width<\pgf at xa
- \pgfmathsetmacro\tikz at tempa{\pgf at xa/\tikzext at scalepicture@width}%
- \fi
- \ifdim\tikzext at scalepicture@height<\pgf at ya
- \pgfmathsetmacro\tikz at temp{\pgf at ya/\tikzext at scalepicture@height}%
- \fi
- \ifdim\tikz at tempa pt>\tikz at temp pt
- \let\tikz at temp\tikz at tempa
- \fi
- \ifdim\tikz at temp pt>0pt
- \tikzset{scale/.expand once=\tikz at temp}%
- \fi
- }%
- },
- maximum picture size/.code 2 args={%
- \tikzset{save picture size}%
- \pgfutil at IfUndefined{tikzext at scalepicture@\pgfpictureid}{}{%
- \pgfmathsetlength\pgf at xa{#1}%
- \pgfmathsetlength\pgf at ya{#2}%
- \def\tikz at tempa{0}%
- \def\tikz at temp{0}%
- \ifdim\tikzext at scalepicture@width>\pgf at xa
- \pgfmathsetmacro\tikz at tempa{\pgf at xa/\tikzext at scalepicture@width}%
- \fi
- \ifdim\tikzext at scalepicture@height>\pgf at ya
- \pgfmathsetmacro\tikz at temp{\pgf at ya/\tikzext at scalepicture@height}%
- \fi
- \ifdim\tikz at tempa pt<\tikz at temp pt
- \let\tikz at temp\tikz at tempa
- \fi
- \ifdim\tikz at temp pt>0pt
- \tikzset{scale/.expand once=\tikz at temp}%
- \fi
- }%
- },
- %%% keep aspect ratio
- %% width
- picture width/.code={%
- \tikzset{save picture size}%
- \pgfutil at IfUndefined{tikzext at scalepicture@\pgfpictureid}{}{%
- \tikzset{scale={(#1)/\tikzext at scalepicture@width}}%
- }%
- },
- minimum picture width/.code={%
- \tikzset{save picture size}%
- \pgfutil at IfUndefined{tikzext at scalepicture@\pgfpictureid}{}{%
- \pgfmathsetlength\pgf at xa{#1}%
- \ifdim\tikzext at scalepicture@width<\pgf at xa
- \tikzset{scale={\pgf at xa/\tikzext at scalepicture@width}}
- \fi
- }%
- },
- maximum picture width/.code={%
- \tikzset{save picture size}%
- \pgfutil at IfUndefined{tikzext at scalepicture@\pgfpictureid}{}{%
- \pgfmathsetlength\pgf at xa{#1}%
- \ifdim\tikzext at scalepicture@width>\pgf at xa
- \tikzset{scale={\pgf at xa/\tikzext at scalepicture@width}}
- \fi
- }%
- },
- %%% xscale only
- %% width
- picture width*/.code={%
- \tikzset{save picture size}%
- \pgfutil at IfUndefined{tikzext at scalepicture@\pgfpictureid}{}{%
- \tikzset{xscale={(#1)/\tikzext at scalepicture@width}}%
- }%
- },
- minimum picture width*/.code={%
- \tikzset{save picture size}%
- \pgfutil at IfUndefined{tikzext at scalepicture@\pgfpictureid}{}{%
- \pgfmathsetlength\pgf at xa{#1}%
- \ifdim\tikzext at scalepicture@width<\pgf at xa
- \tikzset{xscale={\pgf at xa/\tikzext at scalepicture@width}}
- \fi
- }%
- },
- maximum picture width*/.code={%
- \tikzset{save picture size}%
- \pgfutil at IfUndefined{tikzext at scalepicture@\pgfpictureid}{}{%
- \pgfmathsetlength\pgf at xa{#1}%
- \ifdim\tikzext at scalepicture@width>\pgf at xa
- \tikzset{xscale={\pgf at xa/\tikzext at scalepicture@width}}
- \fi
- }%
- },
- %%% keep aspect ratio
- %% height
- picture height/.code={%
- \tikzset{save picture size}%
- \pgfutil at IfUndefined{tikzext at scalepicture@\pgfpictureid}{}{%
- \tikzset{yscale={(#1)/\tikzext at scalepicture@height}}%
- }%
- },
- minimum picture height/.code={%
- \tikzset{save picture size}%
- \pgfutil at IfUndefined{tikzext at scalepicture@\pgfpictureid}{}{%
- \pgfmathsetlength\pgf at ya{#1}%
- \ifdim\tikzext at scalepicture@height<\pgf at ya
- \tikzset{scale={\pgf at ya/\tikzext at scalepicture@height}}
- \fi
- }%
- },
- maximum picture height/.code={%
- \tikzset{save picture size}%
- \pgfutil at IfUndefined{tikzext at scalepicture@\pgfpictureid}{}{%
- \pgfmathsetlength\pgf at ya{#1}%
- \ifdim\tikzext at scalepicture@height<\pgf at ya
- \tikzset{scale={\pgf at ya/\tikzext at scalepicture@height}}
- \fi
- }%
- },
- %%% yscale only
- %% height
- picture height*/.code={%
- \tikzset{save picture size}%
- \pgfutil at IfUndefined{tikzext at scalepicture@\pgfpictureid}{}{%
- \tikzset{yscale={(#1)/\tikzext at scalepicture@height}}%
- }%
- },
- minimum picture height*/.code={%
- \tikzset{save picture size}%
- \pgfutil at IfUndefined{tikzext at scalepicture@\pgfpictureid}{}{%
- \pgfmathsetlength\pgf at ya{#1}%
- \ifdim\tikzext at scalepicture@height<\pgf at ya
- \tikzset{yscale={\pgf at ya/\tikzext at scalepicture@height}}
- \fi
- }%
- },
- maximum picture height*/.code={%
- \tikzset{save picture size}%
- \pgfutil at IfUndefined{tikzext at scalepicture@\pgfpictureid}{}{%
- \pgfmathsetlength\pgf at ya{#1}%
- \ifdim\tikzext at scalepicture@height<\pgf at ya
- \tikzset{yscale={\pgf at ya/\tikzext at scalepicture@height}}
- \fi
- }%
- },
- %%% xscale or yscale
- picture size*/.code 2 args={% #1 = width, #2 = height
- \tikzset{save picture size}%
- \pgfutil at IfUndefined{tikzext at scalepicture@\pgfpictureid}{}{%
- \tikzset{
- xscale={(#1)/\tikzext at scalepicture@width},
- yscale={(#2)/\tikzext at scalepicture@height}}%
- }%
- },
-}
-\endinput
\ No newline at end of file
Deleted: trunk/Master/texmf-dist/tex/latex/tikz-ext/tikzlibraryext.topaths.arcthrough.code.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tikz-ext/tikzlibraryext.topaths.arcthrough.code.tex 2022-11-03 20:29:02 UTC (rev 64919)
+++ trunk/Master/texmf-dist/tex/latex/tikz-ext/tikzlibraryext.topaths.arcthrough.code.tex 2022-11-03 21:03:19 UTC (rev 64920)
@@ -1,50 +0,0 @@
-% Copyright 2022 by Qrrbrbirlbel
-%
-% This file may be distributed and/or modified
-%
-% 1. under the LaTeX Project Public License and/or
-% 2. under the GNU Free Documentation License.
-%
-
-\pgfqkeys{/tikz/arc through}{
- .unknown/.code=\pgfkeyssetevalue{/tikz/arc through/through}{\pgfkeyscurrentname},
- through/.initial={(0,0)},
- center suffix/.initial=,
- clockwise/.code=%
- \def\tikz at arcthrough@clockwise{%
- \pgfmathsubtract@{\pgfkeysvalueof{/tikz/end angle}}{360}%
- \pgfkeyssetevalue{/tikz/end angle}{+\pgfmathresult}},
- counter clockwise/.code=\let\tikz at arcthrough@clockwise\relax,
- clockwise/.value forbidden, counter clockwise/.value forbidden, counter clockwise}
-\tikzset{
- arc through/.code={%
- \tikzset{every arc through/.try}%
- \pgfqkeys{/tikz/arc through}{#1}%
- \pgfkeysgetvalue{/tikz/arc through/through}\tikz at temp
- \pgfextract at process\pgf at tostart{\tikz at scan@one at point\pgfutil at firstofone(\tikztostart)\relax}%
- \expandafter\pgfextract at process\expandafter\pgf at tothrough\expandafter
- {\expandafter\tikz at scan@one at point\expandafter\pgfutil at firstofone\tikz at temp\relax}%
- \pgfextract at process\pgf at totarget{\tikz at scan@one at point\pgfutil at firstofone(\tikztotarget)\relax}%
- \pgfextract at process\pgf at topointMidA{\pgfpointlineattime{.5}{\pgf at tostart}{\pgf at tothrough}}%
- \pgfextract at process\pgf at topointMidB{\pgfpointlineattime{.5}{\pgf at totarget}{\pgf at tothrough}}%
- \pgfextract at process\pgf at tocenter{%
- \pgfpointintersectionoflines
- {\pgf at topointMidA}{\pgfmathrotatepointaround{\pgf at tothrough}{\pgf at topointMidA}{90}}%
- {\pgf at topointMidB}{\pgfmathrotatepointaround{\pgf at tothrough}{\pgf at topointMidB}{90}}}%
- \pgfcoordinate{arc through center\pgfkeysvalueof{/tikz/arc through/center suffix}}{\pgf at tocenter}%
- \pgfpointdiff{\pgf at tocenter}{\pgf at tostart}%
- \pgfmathveclen@{\pgfmath at tonumber\pgf at x}{\pgfmath at tonumber\pgf at y}%
- \pgfkeyssetevalue{/tikz/x radius}{+\pgfmathresult pt}%
- \pgfkeyssetevalue{/tikz/y radius}{+\pgfmathresult pt}%
- \pgfmathanglebetweenpoints{\pgf at tocenter}{\pgf at totarget}%
- \pgfkeyssetevalue{/tikz/end angle}{+\pgfmathresult}%
- \pgfmathanglebetweenpoints{\pgf at tocenter}{\pgf at tostart}%
- \ifdim\pgfmathresult pt>\pgfkeysvalueof{/tikz/end angle}pt\relax
- \pgfmathsubtract@{\pgfmathresult}{360}%
- \fi
- \pgfkeyssetevalue{/tikz/start angle}{+\pgfmathresult}%
- \tikz at arcthrough@clockwise
- \pgfkeyslet{/tikz/delta angle}\pgfutil at empty
- \def\tikz at to@path{arc[]\tikztonodes}%
- }%
-}
Deleted: trunk/Master/texmf-dist/tex/latex/tikz-ext/tikzlibraryext.transformations.mirror.code.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tikz-ext/tikzlibraryext.transformations.mirror.code.tex 2022-11-03 20:29:02 UTC (rev 64919)
+++ trunk/Master/texmf-dist/tex/latex/tikz-ext/tikzlibraryext.transformations.mirror.code.tex 2022-11-03 21:03:19 UTC (rev 64920)
@@ -1,130 +0,0 @@
-% Copyright 2022 by Qrrbrbirlbel
-%
-% This file may be distributed and/or modified
-%
-% 1. under the LaTeX Project Public License and/or
-% 2. under the GNU Free Documentation License.
-%
-\usepgflibrary{ext.transformations.mirror}
-\tikzset{
- mirror/.code={%
- \pgfutil at in@{--}{#1}%
- \ifpgfutil at in@
- \tikzext at trans@mirror#1\tikz at stop
- \else
- \tikz at addtransform{\tikz at scan@one at point\pgfqtransformmirror#1\relax}%
- \fi},
- ymirror/.code={\pgfutil at ifnextchar(\tikzext at trans@ymirror at coordinate\tikzext at trans@ymirror at simple#1\tikz at stop},
- xmirror/.code={\pgfutil at ifnextchar(\tikzext at trans@xmirror at coordinate\tikzext at trans@xmirror at simple#1\tikz at stop},
- mirror x/.code={%
- \pgfextract at process\tikz at temp{\tikz at scan@one at point\pgfutil at firstofone#1\relax}%
- \edef\tikz at marshal{%
- \noexpand\tikz at addtransform{%
- \noexpand\pgftransformmirror
- {\expandafter\noexpand\tikz at temp}
- {\noexpand\pgfpointadd{\expandafter\noexpand\tikz at temp}
- {\noexpand\pgfqpointxy{0}{1}}}}}%
- \tikz at marshal
- },
- mirror y/.code={%
- \pgfextract at process\tikz at temp{\tikz at scan@one at point\pgfutil at firstofone#1\relax}%
- \edef\tikz at marshal{%
- \noexpand\tikz at addtransform{%
- \noexpand\pgftransformmirror
- {\expandafter\noexpand\tikz at temp}
- {\noexpand\pgfpointadd{\expandafter\noexpand\tikz at temp}
- {\noexpand\pgfqpointxy{1}{0}}}}}%
- \tikz at marshal
- },
- mirror/.value required,
- ymirror/.default=+0pt,
- xmirror/.default=+0pt,
- mirror x/.default={(0,0)},
- mirror y/.default={(0,0)}%
-}
-\def\tikzext at trans@mirror#1--#2\tikz at stop{%
- \tikz at addtransform{%
- \pgftransformmirror{\tikz at scan@one at point\pgfutil at firstofone#1\relax}
- {\tikz at scan@one at point\pgfutil at firstofone#2\relax}}}
-\def\tikzext at trans@xmirror at simple#1\tikz at stop{\tikz at addtransform{\pgftransformxmirror{#1}}}
-\def\tikzext at trans@ymirror at simple#1\tikz at stop{\tikz at addtransform{\pgftransformymirror{#1}}}
-\def\tikzext at trans@xmirror at coordinate#1\tikz at stop{%
- \tikz at scan@one at point\pgfutil at firstofone#1\relax
- \edef\tikz at marshal{%
- \noexpand\tikz at addtransform{%
- \noexpand\pgftransformxmirror{+\the\pgf at x}%
- }%
- }%
- \tikz at marshal
-}
-\def\tikzext at trans@ymirror at coordinate#1\tikz at stop{%
- \tikz at scan@one at point\pgfutil at firstofone#1\relax
- \edef\tikz at marshal{%
- \noexpand\tikz at addtransform{%
- \noexpand\pgftransformymirror{+\the\pgf at y}%
- }%
- }%
- \tikz at marshal
-}
-
-\tikzset{
- Mirror/.code={%
- \pgfutil at in@{--}{#1}%
- \ifpgfutil at in@
- \tikzext at trans@Mirror#1\tikz at stop
- \else
- \tikz at addtransform{\tikz at scan@one at point\pgfqtransformMirror#1\relax}%
- \fi},
- yMirror/.code={\pgfutil at ifnextchar(\tikzext at trans@yMirror at coordinate\tikzext at trans@yMirror at simple#1\tikz at stop},
- xMirror/.code={\pgfutil at ifnextchar(\tikzext at trans@xMirror at coordinate\tikzext at trans@xMirror at simple#1\tikz at stop},
- Mirror x/.code={%
- \pgfextract at process\tikz at temp{\tikz at scan@one at point\pgfutil at firstofone#1\relax}%
- \edef\tikz at marshal{%
- \noexpand\tikz at addtransform{%
- \noexpand\pgftransformMirror
- {\expandafter\noexpand\tikz at temp}
- {\noexpand\pgfpointadd{\expandafter\noexpand\tikz at temp}
- {\noexpand\pgfqpointxy{0}{1}}}}}%
- \tikz at marshal
- },
- Mirror y/.code={%
- \pgfextract at process\tikz at temp{\tikz at scan@one at point\pgfutil at firstofone#1\relax}%
- \edef\tikz at marshal{%
- \noexpand\tikz at addtransform{%
- \noexpand\pgftransformMirror
- {\expandafter\noexpand\tikz at temp}
- {\noexpand\pgfpointadd{\expandafter\noexpand\tikz at temp}
- {\noexpand\pgfqpointxy{1}{0}}}}}%
- \tikz at marshal
- },
- Mirror/.value required,
- yMirror/.default=+0pt,
- xMirror/.default=+0pt,
- Mirror x/.default={(0,0)},
- Mirror y/.default={(0,0)}%
-}
-\def\tikzext at trans@Mirror#1--#2\tikz at stop{%
- \tikz at addtransform{%
- \pgftransformMirror{\tikz at scan@one at point\pgfutil at firstofone#1\relax}
- {\tikz at scan@one at point\pgfutil at firstofone#2\relax}}}
-\def\tikzext at trans@xMirror at simple#1\tikz at stop{\tikz at addtransform{\pgftransformxMirror{#1}}}
-\def\tikzext at trans@yMirror at simple#1\tikz at stop{\tikz at addtransform{\pgftransformyMirror{#1}}}
-\def\tikzext at trans@xMirror at coordinate#1\tikz at stop{%
- \tikz at scan@one at point\pgfutil at firstofone#1\relax
- \edef\tikz at marshal{%
- \noexpand\tikz at addtransform{%
- \noexpand\pgftransformxMirror{+\the\pgf at x}%
- }%
- }%
- \tikz at marshal
-}
-\def\tikzext at trans@yMirror at coordinate#1\tikz at stop{%
- \tikz at scan@one at point\pgfutil at firstofone#1\relax
- \edef\tikz at marshal{%
- \noexpand\tikz at addtransform{%
- \noexpand\pgftransformyMirror{+\the\pgf at y}%
- }%
- }%
- \tikz at marshal
-}
-\endinput
Added: trunk/Master/texmf-dist/tex/plain/tikz-ext/pgfcalendar-ext.tex
===================================================================
--- trunk/Master/texmf-dist/tex/plain/tikz-ext/pgfcalendar-ext.tex (rev 0)
+++ trunk/Master/texmf-dist/tex/plain/tikz-ext/pgfcalendar-ext.tex 2022-11-03 21:03:19 UTC (rev 64920)
@@ -0,0 +1,13 @@
+% Copyright 2022 by Qrrbrbirlbel
+%
+% This file may be distributed and/or modified
+%
+% 1. under the LaTeX Project Public License and/or
+% 2. under the GNU Free Documentation License.
+%
+
+\input pgfcalendar.tex
+\catcode`\@=11
+\input pgfcalendar-ext.code.tex
+\catcode`\@=\pgfcalendaratcode
+\endinput
Property changes on: trunk/Master/texmf-dist/tex/plain/tikz-ext/pgfcalendar-ext.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/tlpkg/libexec/ctan2tds
===================================================================
--- trunk/Master/tlpkg/libexec/ctan2tds 2022-11-03 20:29:02 UTC (rev 64919)
+++ trunk/Master/tlpkg/libexec/ctan2tds 2022-11-03 21:03:19 UTC (rev 64920)
@@ -1384,7 +1384,6 @@
'ticket', "&MAKEflatten",
'ticollege', "&MAKEflatten",
'tikz-among-us',"&MAKEflatten",
- 'tikz-ext', " &MAKEflatten",
'tikz-kalender',"&MAKEflatten",
'tikz-karnaugh',"&MAKEflatten",
'tikz-ladder', "&MAKEflatten",
@@ -1767,6 +1766,7 @@
'tex-ps' => '&POSTtex_ps',
'thumbpdf' => '&POST_preserve_man',
'tikz-cd' => '&POSTtikz_cd',
+ 'tikz-ext' => '&POSTtikz_ext',
'tipa-de' => '&POST_rmsymlink',
'tkz-berge' => '&POSTtkz_berge',
'tlcockpit' => '&POST_do_man',
@@ -2371,7 +2371,6 @@
'thubeamer', 'thulogo.pdf|' . $standardtex,
'ticket', '\.tdf|' . $standardtex,
'tikz-cd', 'tikz-cd.sty|tikzlibrarycd.code.tex', # not pgfmanual.sty
- 'tikz-ext', 'pgfcalendar-ext\.tex$|' . $standardtex,
'tikz-qtree', '(pgf|tikz-)(subpic|q?tree(-compat)?)\.(tex|sty)',
'tikz-sfc', '\.code\.tex$',
'tikz-trackschematic', '\.code\.tex$|tic\.sty$', # not *documentation.sty
@@ -7385,6 +7384,16 @@
&mv_with_mkdir ("latex/tikz-cd/tikzlibrary*tex", "generic/tikz-cd/");
}
+sub POSTtikz_ext {
+ print "POST$package - per-format subdirs\n"
+ &xmkdir ("$DEST/tex/generic", "$DEST/tex/latex", "$DEST/tex/plain");
+ &SYSTEM ("$MV tex/generic $DEST/tex/generic/$package");
+ &SYSTEM ("$MV tex/latex $DEST/tex/latex/$package");
+ &SYSTEM ("$MV tex/plain $DEST/tex/plain/$package");
+ &SYSTEM ("$MV doc/* .");
+ &SYSTEM ($RMDIR_EMPTY);
+}
+
sub POSTtkz_berge {
print "POST$package - latex/* to runtime\n";
&mv_with_mkdir ("latex/*", "$DEST/tex/latex/$package");
More information about the tex-live-commits
mailing list.