summaryrefslogtreecommitdiff
path: root/graphics/pgf/contrib/tikz-ext
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2022-10-11 03:01:16 +0000
committerNorbert Preining <norbert@preining.info>2022-10-11 03:01:16 +0000
commit2713ec666b0e53418a839b97c48e0a9234fe5c98 (patch)
tree44f44c40d7cf3d6c2c0be9da7bfcf4dad97eb483 /graphics/pgf/contrib/tikz-ext
parent9c7942efff8183c8695ec824008847dd068dbfe7 (diff)
CTAN sync 202210110301
Diffstat (limited to 'graphics/pgf/contrib/tikz-ext')
-rw-r--r--graphics/pgf/contrib/tikz-ext/README.md2
-rw-r--r--graphics/pgf/contrib/tikz-ext/doc/generic/tikz-ext/tikz-ext-manual-en-calendar.tex (renamed from graphics/pgf/contrib/tikz-ext/doc/tikz-ext-manual-en-calendar.tex)22
-rw-r--r--graphics/pgf/contrib/tikz-ext/doc/generic/tikz-ext/tikz-ext-manual-en-intro.tex (renamed from graphics/pgf/contrib/tikz-ext/doc/tikz-ext-manual-en-intro.tex)0
-rw-r--r--graphics/pgf/contrib/tikz-ext/doc/generic/tikz-ext/tikz-ext-manual-en-library-calendar-plus.tex (renamed from graphics/pgf/contrib/tikz-ext/doc/tikz-ext-manual-en-library-calendar-plus.tex)0
-rw-r--r--graphics/pgf/contrib/tikz-ext/doc/generic/tikz-ext/tikz-ext-manual-en-library-misc.tex (renamed from graphics/pgf/contrib/tikz-ext/doc/tikz-ext-manual-en-library-misc.tex)0
-rw-r--r--graphics/pgf/contrib/tikz-ext/doc/generic/tikz-ext/tikz-ext-manual-en-library-node-families.tex (renamed from graphics/pgf/contrib/tikz-ext/doc/tikz-ext-manual-en-library-node-families.tex)0
-rw-r--r--graphics/pgf/contrib/tikz-ext/doc/generic/tikz-ext/tikz-ext-manual-en-library-paths.arcto.tex (renamed from graphics/pgf/contrib/tikz-ext/doc/tikz-ext-manual-en-library-paths.arcto.tex)0
-rw-r--r--graphics/pgf/contrib/tikz-ext/doc/generic/tikz-ext/tikz-ext-manual-en-library-paths.ortho.tex (renamed from graphics/pgf/contrib/tikz-ext/doc/tikz-ext-manual-en-library-paths.ortho.tex)60
-rw-r--r--graphics/pgf/contrib/tikz-ext/doc/generic/tikz-ext/tikz-ext-manual-en-library-paths.timer.tex (renamed from graphics/pgf/contrib/tikz-ext/doc/tikz-ext-manual-en-library-paths.timer.tex)0
-rw-r--r--graphics/pgf/contrib/tikz-ext/doc/generic/tikz-ext/tikz-ext-manual-en-library-patterns.images.tex (renamed from graphics/pgf/contrib/tikz-ext/doc/tikz-ext-manual-en-library-patterns.images.tex)0
-rw-r--r--graphics/pgf/contrib/tikz-ext/doc/generic/tikz-ext/tikz-ext-manual-en-library-positioning-plus.tex (renamed from graphics/pgf/contrib/tikz-ext/doc/tikz-ext-manual-en-library-positioning-plus.tex)0
-rw-r--r--graphics/pgf/contrib/tikz-ext/doc/generic/tikz-ext/tikz-ext-manual-en-library-topaths.arcthrough.tex (renamed from graphics/pgf/contrib/tikz-ext/doc/tikz-ext-manual-en-library-topaths.arcthrough.tex)0
-rw-r--r--graphics/pgf/contrib/tikz-ext/doc/generic/tikz-ext/tikz-ext-manual-en-library-trans.tex (renamed from graphics/pgf/contrib/tikz-ext/doc/tikz-ext-manual-en-library-trans.tex)0
-rw-r--r--graphics/pgf/contrib/tikz-ext/doc/generic/tikz-ext/tikz-ext-manual-en-main-body.tex (renamed from graphics/pgf/contrib/tikz-ext/doc/tikz-ext-manual-en-main-body.tex)26
-rw-r--r--graphics/pgf/contrib/tikz-ext/doc/generic/tikz-ext/tikz-ext-manual-en-main-preamble.tex (renamed from graphics/pgf/contrib/tikz-ext/doc/tikz-ext-manual-en-main-preamble.tex)0
-rw-r--r--graphics/pgf/contrib/tikz-ext/doc/generic/tikz-ext/tikz-ext-manual-en-pgf-shapes-circlearrow.tex (renamed from graphics/pgf/contrib/tikz-ext/doc/tikz-ext-manual-en-pgf-shapes-circlearrow.tex)0
-rw-r--r--graphics/pgf/contrib/tikz-ext/doc/generic/tikz-ext/tikz-ext-manual-en-pgf-shapes-circlecrosssplit.tex (renamed from graphics/pgf/contrib/tikz-ext/doc/tikz-ext-manual-en-pgf-shapes-circlecrosssplit.tex)0
-rw-r--r--graphics/pgf/contrib/tikz-ext/doc/generic/tikz-ext/tikz-ext-manual-en-pgf-shapes-heatmark.tex (renamed from graphics/pgf/contrib/tikz-ext/doc/tikz-ext-manual-en-pgf-shapes-heatmark.tex)0
-rw-r--r--graphics/pgf/contrib/tikz-ext/doc/generic/tikz-ext/tikz-ext-manual-en-pgf-shapes-rectround.tex (renamed from graphics/pgf/contrib/tikz-ext/doc/tikz-ext-manual-en-pgf-shapes-rectround.tex)0
-rw-r--r--graphics/pgf/contrib/tikz-ext/doc/generic/tikz-ext/tikz-ext-manual-en-pgf-shapes-superellipse.tex (renamed from graphics/pgf/contrib/tikz-ext/doc/tikz-ext-manual-en-pgf-shapes-superellipse.tex)0
-rw-r--r--graphics/pgf/contrib/tikz-ext/doc/generic/tikz-ext/tikz-ext-manual-en-pgf-trans.tex (renamed from graphics/pgf/contrib/tikz-ext/doc/tikz-ext-manual-en-pgf-trans.tex)0
-rw-r--r--graphics/pgf/contrib/tikz-ext/doc/generic/tikz-ext/tikz-ext-manual.bib (renamed from graphics/pgf/contrib/tikz-ext/doc/tikz-ext-manual.bib)23
-rw-r--r--graphics/pgf/contrib/tikz-ext/doc/generic/tikz-ext/tikz-ext-manual.pdf (renamed from graphics/pgf/contrib/tikz-ext/doc/tikz-ext-manual.pdf)bin525958 -> 534933 bytes
-rw-r--r--graphics/pgf/contrib/tikz-ext/doc/generic/tikz-ext/tikz-ext-manual.tex (renamed from graphics/pgf/contrib/tikz-ext/doc/tikz-ext-manual.tex)12
-rw-r--r--graphics/pgf/contrib/tikz-ext/tex/generic/tikz-ext/pgfcalendar-ext.code.tex (renamed from graphics/pgf/contrib/tikz-ext/pgfcalendar-ext.code.tex)85
-rw-r--r--graphics/pgf/contrib/tikz-ext/tex/generic/tikz-ext/pgflibraryext.shapes.circlearrow.code.tex (renamed from graphics/pgf/contrib/tikz-ext/pgflibraryext.shapes.circlearrow.code.tex)0
-rw-r--r--graphics/pgf/contrib/tikz-ext/tex/generic/tikz-ext/pgflibraryext.shapes.circlecrosssplit.code.tex (renamed from graphics/pgf/contrib/tikz-ext/pgflibraryext.shapes.circlecrosssplit.code.tex)0
-rw-r--r--graphics/pgf/contrib/tikz-ext/tex/generic/tikz-ext/pgflibraryext.shapes.heatmark.code.tex (renamed from graphics/pgf/contrib/tikz-ext/pgflibraryext.shapes.heatmark.code.tex)0
-rw-r--r--graphics/pgf/contrib/tikz-ext/tex/generic/tikz-ext/pgflibraryext.shapes.rectangleroundedcorners.code.tex (renamed from graphics/pgf/contrib/tikz-ext/pgflibraryext.shapes.rectangleroundedcorners.code.tex)0
-rw-r--r--graphics/pgf/contrib/tikz-ext/tex/generic/tikz-ext/pgflibraryext.shapes.superellipse.code.tex (renamed from graphics/pgf/contrib/tikz-ext/pgflibraryext.shapes.superellipse.code.tex)0
-rw-r--r--graphics/pgf/contrib/tikz-ext/tex/generic/tikz-ext/pgflibraryext.transformations.mirror.code.tex (renamed from graphics/pgf/contrib/tikz-ext/pgflibraryext.transformations.mirror.code.tex)0
-rw-r--r--graphics/pgf/contrib/tikz-ext/tex/generic/tikz-ext/tikzlibraryext.calendar-plus.code.tex (renamed from graphics/pgf/contrib/tikz-ext/tikzlibraryext.calendar-plus.code.tex)0
-rw-r--r--graphics/pgf/contrib/tikz-ext/tex/generic/tikz-ext/tikzlibraryext.misc.code.tex (renamed from graphics/pgf/contrib/tikz-ext/tikzlibraryext.misc.code.tex)0
-rw-r--r--graphics/pgf/contrib/tikz-ext/tex/generic/tikz-ext/tikzlibraryext.node-families.code.tex (renamed from graphics/pgf/contrib/tikz-ext/tikzlibraryext.node-families.code.tex)2
-rw-r--r--graphics/pgf/contrib/tikz-ext/tex/generic/tikz-ext/tikzlibraryext.node-families.shapes.geometric.code.tex (renamed from graphics/pgf/contrib/tikz-ext/tikzlibraryext.node-families.shapes.geometric.code.tex)0
-rw-r--r--graphics/pgf/contrib/tikz-ext/tex/generic/tikz-ext/tikzlibraryext.paths.arcto.code.tex326
-rw-r--r--graphics/pgf/contrib/tikz-ext/tex/generic/tikz-ext/tikzlibraryext.paths.ortho.code.tex (renamed from graphics/pgf/contrib/tikz-ext/tikzlibraryext.paths.ortho.code.tex)77
-rw-r--r--graphics/pgf/contrib/tikz-ext/tex/generic/tikz-ext/tikzlibraryext.paths.timer.code.tex (renamed from graphics/pgf/contrib/tikz-ext/tikzlibraryext.paths.timer.code.tex)0
-rw-r--r--graphics/pgf/contrib/tikz-ext/tex/generic/tikz-ext/tikzlibraryext.patterns.images.code.tex (renamed from graphics/pgf/contrib/tikz-ext/tikzlibraryext.patterns.images.code.tex)0
-rw-r--r--graphics/pgf/contrib/tikz-ext/tex/generic/tikz-ext/tikzlibraryext.positioning-plus.code.tex (renamed from graphics/pgf/contrib/tikz-ext/tikzlibraryext.positioning-plus.code.tex)0
-rw-r--r--graphics/pgf/contrib/tikz-ext/tex/generic/tikz-ext/tikzlibraryext.topaths.arcthrough.code.tex (renamed from graphics/pgf/contrib/tikz-ext/tikzlibraryext.topaths.arcthrough.code.tex)0
-rw-r--r--graphics/pgf/contrib/tikz-ext/tex/generic/tikz-ext/tikzlibraryext.transformations.mirror.code.tex (renamed from graphics/pgf/contrib/tikz-ext/tikzlibraryext.transformations.mirror.code.tex)0
-rw-r--r--graphics/pgf/contrib/tikz-ext/tex/latex/tikz-ext/pgfcalendar-ext.sty (renamed from graphics/pgf/contrib/tikz-ext/pgfcalendar-ext.sty)0
-rw-r--r--graphics/pgf/contrib/tikz-ext/tex/plain/tikz-ext/pgfcalendar-ext.tex (renamed from graphics/pgf/contrib/tikz-ext/pgfcalendar-ext.tex)0
-rw-r--r--graphics/pgf/contrib/tikz-ext/tikzlibraryext.paths.arcto.code.tex104
45 files changed, 545 insertions, 194 deletions
diff --git a/graphics/pgf/contrib/tikz-ext/README.md b/graphics/pgf/contrib/tikz-ext/README.md
index bee9e3512a..33ec46d366 100644
--- a/graphics/pgf/contrib/tikz-ext/README.md
+++ b/graphics/pgf/contrib/tikz-ext/README.md
@@ -30,7 +30,7 @@ These are
* `ext.shapes.circlecrosssplit`
* `ext.shapes.heatmark`
* `ext.shapes.rectangleroundedcorners`
- * `ext.shapes.superellopse`
+ * `ext.shapes.superellipse`
These were developed in response to questions on tex.stackexchange.com.
Some of these can be find by searching for my [user id](https://tex.stackexchange.com/search?q=user%3A16595+%22my+library%22). \ No newline at end of file
diff --git a/graphics/pgf/contrib/tikz-ext/doc/tikz-ext-manual-en-calendar.tex b/graphics/pgf/contrib/tikz-ext/doc/generic/tikz-ext/tikz-ext-manual-en-calendar.tex
index 4f2300a458..09bd261a21 100644
--- a/graphics/pgf/contrib/tikz-ext/doc/tikz-ext-manual-en-calendar.tex
+++ b/graphics/pgf/contrib/tikz-ext/doc/generic/tikz-ext/tikz-ext-manual-en-calendar.tex
@@ -13,7 +13,7 @@
\begin{package}{calendar-ext}
This package adds week numbers and more conditionals to the \pgfname\space package |pgfcalendar|.
(Despite the code example above, this package is not set up to work with Con\TeX t.)
- \inspiration{WeekNum-Q,CalCond-Q}{WeekNum-A,CalCond-A}
+ \inspiration{WeekNum-Q,CalCond-Q,CalFullWeek-Q}{WeekNum-A,CalCond-A,CalFullWeek-A}
\end{package}
%This package extends the |pgfcalendar| package.
@@ -43,12 +43,30 @@ The following tests are added.
This test passes when all \meta{tests} pass.
\itemcalendaroption{not}|=|\marg{tests}
This test passes when \meta{tests} do not pass.
+\itemcalendaroption{week of month}|=|\meta{num}
+ This test passes when the date is in \meta{num}th week of the month.
+ The first week of the month start at day~1 and ends with day~7.
+\itemcalendaroption{week of month'}|=|\meta{num}
+ As above but counts from the last day of the month.
+ For a month with 31~days, this means the ``1st'' week starts at day~25 and ends with day~31.
+\itemcalendaroption{calendar week of month}|=|\meta{num}
+ This test passes when the date is in \meta{num}th calendar week of the month.
+ The first week starts at the first day of the month and ends at the next Sunday.
+\itemcalendaroption{calendar week of month'}|=|\meta{num}
+ As above but counts from the last day of the month.
+\begin{codeexample}[width=5cm,preamble=\usetikzlibrary{ext.calendar-plus}]
+\tikz
+ \calendar[
+ dates=2022-10-01 to 2022-10-31,
+ week list]
+ if (week of month=2) [red]
+ if (calendar week of month'=2) [blue];
+\end{codeexample}
\itemcalendaroption{yesterday}|=|\marg{tests}
This test passes when the previous day passes \meta{tests}.
\itemcalendaroption{week}|=|\meta{num}
This test passes when the current week of the year equals \marg{num}.
\end{itemize}
-
The shorthands for |d-| and |m-| are slightly changed so that they are
expandable. This makes it possible to use these shorthands inside of \pgfname math.
The shorthands for the week (see section~\ref{calendar:weeknumbering})
diff --git a/graphics/pgf/contrib/tikz-ext/doc/tikz-ext-manual-en-intro.tex b/graphics/pgf/contrib/tikz-ext/doc/generic/tikz-ext/tikz-ext-manual-en-intro.tex
index f9468175cb..f9468175cb 100644
--- a/graphics/pgf/contrib/tikz-ext/doc/tikz-ext-manual-en-intro.tex
+++ b/graphics/pgf/contrib/tikz-ext/doc/generic/tikz-ext/tikz-ext-manual-en-intro.tex
diff --git a/graphics/pgf/contrib/tikz-ext/doc/tikz-ext-manual-en-library-calendar-plus.tex b/graphics/pgf/contrib/tikz-ext/doc/generic/tikz-ext/tikz-ext-manual-en-library-calendar-plus.tex
index bdfd225f3c..bdfd225f3c 100644
--- a/graphics/pgf/contrib/tikz-ext/doc/tikz-ext-manual-en-library-calendar-plus.tex
+++ b/graphics/pgf/contrib/tikz-ext/doc/generic/tikz-ext/tikz-ext-manual-en-library-calendar-plus.tex
diff --git a/graphics/pgf/contrib/tikz-ext/doc/tikz-ext-manual-en-library-misc.tex b/graphics/pgf/contrib/tikz-ext/doc/generic/tikz-ext/tikz-ext-manual-en-library-misc.tex
index 163097e6a1..163097e6a1 100644
--- a/graphics/pgf/contrib/tikz-ext/doc/tikz-ext-manual-en-library-misc.tex
+++ b/graphics/pgf/contrib/tikz-ext/doc/generic/tikz-ext/tikz-ext-manual-en-library-misc.tex
diff --git a/graphics/pgf/contrib/tikz-ext/doc/tikz-ext-manual-en-library-node-families.tex b/graphics/pgf/contrib/tikz-ext/doc/generic/tikz-ext/tikz-ext-manual-en-library-node-families.tex
index d4b274511c..d4b274511c 100644
--- a/graphics/pgf/contrib/tikz-ext/doc/tikz-ext-manual-en-library-node-families.tex
+++ b/graphics/pgf/contrib/tikz-ext/doc/generic/tikz-ext/tikz-ext-manual-en-library-node-families.tex
diff --git a/graphics/pgf/contrib/tikz-ext/doc/tikz-ext-manual-en-library-paths.arcto.tex b/graphics/pgf/contrib/tikz-ext/doc/generic/tikz-ext/tikz-ext-manual-en-library-paths.arcto.tex
index 8ed660b3a3..8ed660b3a3 100644
--- a/graphics/pgf/contrib/tikz-ext/doc/tikz-ext-manual-en-library-paths.arcto.tex
+++ b/graphics/pgf/contrib/tikz-ext/doc/generic/tikz-ext/tikz-ext-manual-en-library-paths.arcto.tex
diff --git a/graphics/pgf/contrib/tikz-ext/doc/tikz-ext-manual-en-library-paths.ortho.tex b/graphics/pgf/contrib/tikz-ext/doc/generic/tikz-ext/tikz-ext-manual-en-library-paths.ortho.tex
index a46f6be023..ba78f47dcb 100644
--- a/graphics/pgf/contrib/tikz-ext/doc/tikz-ext-manual-en-library-paths.ortho.tex
+++ b/graphics/pgf/contrib/tikz-ext/doc/generic/tikz-ext/tikz-ext-manual-en-library-paths.ortho.tex
@@ -33,7 +33,7 @@ the path operations \verb!|-|! and \verb!-|-!.
This operation means ``first horizontal, then vertical and then horizontal again''.
\end{pathoperation}
}
-\begin{key}{/tikz/hvvh/ratio=\meta{ratio} (initially 0.5)}
+\begin{key}{/tikz/ortho/ratio=\meta{ratio} (initially 0.5)}
This sets the ratio for the middle part of the Zig-Zag connection.
For values $\meta{ratio} < 0$ and $\meta{ratio} > 1$ the Zig-Zag lines will
@@ -47,7 +47,7 @@ the path operations \verb!|-|! and \verb!-|-!.
\end{codeexample}
\end{key}
%TODO: hvvh/distance needs fixing, maybe?
-\begin{key}{/tikz/hvvh/distance=\meta{distance}}
+\begin{key}{/tikz/ortho/distance=\meta{distance}}
This sets the distance between the start point
and the middle part of the Zig-Zag connection.
@@ -64,7 +64,7 @@ the path operations \verb!|-|! and \verb!-|-!.
\end{tikzpicture}
\end{codeexample}
\end{key}
-\begin{key}{/tikz/hvvh/from center=\opt{\meta{true or false}} (default true)}
+\begin{key}{/tikz/ortho/from center=\opt{\meta{true or false}} (default true)}
When nodes get connected the placement of the middle part of the Zig-Zag
and the Zig-Zig (see below) connections will be calculated from the border
of these nodes.
@@ -79,7 +79,7 @@ these can be configured through the following keys.
foreach \p in {0.0, 0.25, 0.5, 0.75, 1.0}{
node [pos=\p] {\p}};
\end{codeexample}
-\begin{key}{/tikz/hvvh/spacing=\meta{number} (initially 4)}
+\begin{key}{/tikz/ortho/spacing=\meta{number} (initially 4)}
Unless $\meta{number} = 0$ is set
\begin{itemize}
\item |pos = 0| will be at the start,\indexKeyO{pos}
@@ -98,63 +98,59 @@ these can be configured through the following keys.
\item |pos = .5| will still be in the middle of the middle part of the connection.
\end{itemize}
\end{key}
-\begin{key}{/tikz/hvvh/middle 0 to 1}
+\begin{key}{/tikz/ortho/middle 0 to 1}
This is an alias for |spacing = 0|.
\end{key}
\subsection{Zig-Zig}
\begin{pathoperation}{r-ud}{\opt{\oarg{options}}\meta{coordinate or cycle}}
This operation means ``first up, then horizontal and then down''.
- \begin{key}{/tikz/udlr/ud distance=\meta{length} (initially .5cm)}
+ \begin{key}{/tikz/ortho/ud distance=\meta{length} (initially .5cm)}
This sets the distance between the start and the horizontal line to \meta{length}.
\end{key}
\end{pathoperation}
\begin{pathoperation}{r-du}{\opt{\oarg{options}}\meta{coordinate or cycle}}
This operation means ``first down, then horizontal and then up''.
- \begin{key}{/tikz/udlr/du distance=\meta{length} (initially .5cm)}
+ \begin{key}{/tikz/ortho/du distance=\meta{length} (initially .5cm)}
This sets the distance between the start and the horizontal line to \meta{length}.
\end{key}
\end{pathoperation}
\begin{pathoperation}{r-lr}{\opt{\oarg{options}}\meta{coordinate or cycle}}
This operation means ``left down, then vertical and then right''.
- \begin{key}{/tikz/udlr/lr distance=\meta{length} (initially .5cm)}
+ \begin{key}{/tikz/ortho/lr distance=\meta{length} (initially .5cm)}
This sets the distance between the start and the vertical line to \meta{length}.
\end{key}
\end{pathoperation}
\begin{pathoperation}{r-rl}{\opt{\oarg{options}}\meta{coordinate or cycle}}
This operation means ``first right, then vertical and then down''.
- \begin{key}{/tikz/udlr/rl distance=\meta{length} (initially .5cm)}
+ \begin{key}{/tikz/ortho/rl distance=\meta{length} (initially .5cm)}
This sets the distance between the start and the vertical line to \meta{length}.
\end{key}
\end{pathoperation}
All distances can be set with on key.
-\begin{key}{/tikz/udlr/distance=\meta{length}}
- Sets all distances in the |/tikz/udlr| namespace.
-\end{key}
-
-\begin{key}{/tikz/udlr/from center=\opt{\meta{true or false}} (initially false, default true)}
- This is an alias for |/tikz/hvvh/from center|.
+\begin{key}{/tikz/ortho/udlr distance=\meta{length}}
+ Sets all the previous distances to the same value \meta{length}.
\end{key}
\subsection{Even more Horizontal and Vertical Lines}
The following keys can be used to access vertical and horizontal line path operations.
\begin{stylekey}{/tikz/horizontal vertical}
- This installs \verb!to path = -| (\tikztotarget) \tikztonodes! that can be used with\indexKeyO{to path}
- the path operations |to| or |edge|.
+ This installs \verb!to path = -| (\tikztotarget) \tikztonodes!\indexKeyO{to path}
+ that can be used with the path operations |to| or |edge|.
\end{stylekey}
\begin{stylekey}{/tikz/vertical horizontal}
- This installs \verb!to path = |- (\tikztotarget) \tikztonodes! that can be used with
- the path operations |to| or |edge|.
+ This installs \verb!to path = |- (\tikztotarget) \tikztonodes!
+ that can be used with the path operations |to| or |edge|.
\end{stylekey}
\begin{stylekey}{/tikz/horizontal vertical horizontal}
- This installs \verb!to path = -|- (\tikztotarget) \tikztonodes! that can be used with
- the path operations |to| or |edge|.
+ This installs \verb!to path = -|- (\tikztotarget) \tikztonodes!
+ that can be used with the path operations |to| or |edge|.
\end{stylekey}
\begin{stylekey}{/tikz/vertical horizontal vertical}
- This installs \verb!to path = |-| (\tikztotarget) \tikztonodes! that can be used with
- the path operations |to| or |edge|.
+ This installs \verb!to path = |-| (\tikztotarget) \tikztonodes!
+ that can be used with the path operations |to| or |edge|.
\end{stylekey}
When connecting rectangular nodes, these keys could be useful as well.
@@ -183,3 +179,21 @@ it connects to the start point in the center (or at its border in case it is a n
The optional \meta{length} can be used to shift the line orthogonally to its direction.
\end{stylekey}
+
+\pagebreak
+Since all previous key are rather cumbersome, one can install shortcuts for these.
+\begin{stylekey}{/tikz/ortho/install shortcuts}
+Installs the following shortcuts:\\
+{\ttfamily
+\begin{tabular}{l@{\hspace{.5em}${}\to{}$\hspace{.5em}}l}
+ \pgfmanualbar- & vertical horizontal \\
+ -\pgfmanualbar & horizontal vertical \\
+ -\pgfmanualbar- & horizontal vertical horizontal \\
+ \pgfmanualbar-\pgfmanualbar & vertical horizontal vertical \\
+ \pgfmanualbar* & only vertical first \\
+ *\pgfmanualbar & only vertical second \\
+ \pgfmanualbar* & only vertical first \\
+ *\pgfmanualbar & only vertical second
+\end{tabular}
+}
+\end{stylekey}
diff --git a/graphics/pgf/contrib/tikz-ext/doc/tikz-ext-manual-en-library-paths.timer.tex b/graphics/pgf/contrib/tikz-ext/doc/generic/tikz-ext/tikz-ext-manual-en-library-paths.timer.tex
index 595a647917..595a647917 100644
--- a/graphics/pgf/contrib/tikz-ext/doc/tikz-ext-manual-en-library-paths.timer.tex
+++ b/graphics/pgf/contrib/tikz-ext/doc/generic/tikz-ext/tikz-ext-manual-en-library-paths.timer.tex
diff --git a/graphics/pgf/contrib/tikz-ext/doc/tikz-ext-manual-en-library-patterns.images.tex b/graphics/pgf/contrib/tikz-ext/doc/generic/tikz-ext/tikz-ext-manual-en-library-patterns.images.tex
index c3c38a8517..c3c38a8517 100644
--- a/graphics/pgf/contrib/tikz-ext/doc/tikz-ext-manual-en-library-patterns.images.tex
+++ b/graphics/pgf/contrib/tikz-ext/doc/generic/tikz-ext/tikz-ext-manual-en-library-patterns.images.tex
diff --git a/graphics/pgf/contrib/tikz-ext/doc/tikz-ext-manual-en-library-positioning-plus.tex b/graphics/pgf/contrib/tikz-ext/doc/generic/tikz-ext/tikz-ext-manual-en-library-positioning-plus.tex
index 56c81376aa..56c81376aa 100644
--- a/graphics/pgf/contrib/tikz-ext/doc/tikz-ext-manual-en-library-positioning-plus.tex
+++ b/graphics/pgf/contrib/tikz-ext/doc/generic/tikz-ext/tikz-ext-manual-en-library-positioning-plus.tex
diff --git a/graphics/pgf/contrib/tikz-ext/doc/tikz-ext-manual-en-library-topaths.arcthrough.tex b/graphics/pgf/contrib/tikz-ext/doc/generic/tikz-ext/tikz-ext-manual-en-library-topaths.arcthrough.tex
index 1d9e5ba9df..1d9e5ba9df 100644
--- a/graphics/pgf/contrib/tikz-ext/doc/tikz-ext-manual-en-library-topaths.arcthrough.tex
+++ b/graphics/pgf/contrib/tikz-ext/doc/generic/tikz-ext/tikz-ext-manual-en-library-topaths.arcthrough.tex
diff --git a/graphics/pgf/contrib/tikz-ext/doc/tikz-ext-manual-en-library-trans.tex b/graphics/pgf/contrib/tikz-ext/doc/generic/tikz-ext/tikz-ext-manual-en-library-trans.tex
index 97011bc4d0..97011bc4d0 100644
--- a/graphics/pgf/contrib/tikz-ext/doc/tikz-ext-manual-en-library-trans.tex
+++ b/graphics/pgf/contrib/tikz-ext/doc/generic/tikz-ext/tikz-ext-manual-en-library-trans.tex
diff --git a/graphics/pgf/contrib/tikz-ext/doc/tikz-ext-manual-en-main-body.tex b/graphics/pgf/contrib/tikz-ext/doc/generic/tikz-ext/tikz-ext-manual-en-main-body.tex
index 1185cdb6d7..fd071e009e 100644
--- a/graphics/pgf/contrib/tikz-ext/doc/tikz-ext-manual-en-main-body.tex
+++ b/graphics/pgf/contrib/tikz-ext/doc/generic/tikz-ext/tikz-ext-manual-en-main-body.tex
@@ -8,7 +8,7 @@
% 2. under the GNU Free Documentation License.
%
\newcommand*\tikzextname{Ti\textit kZ-Extensions}
-\newcommand*\tikzextversion{0.3}
+\newcommand*\tikzextversion{0.4}
\begin{document}
{\colorlet{blue}{black}% links shall be black
\title{\bfseries The \tikzextname\space Package\\
@@ -167,6 +167,19 @@ These libraries (should) work with both \pgfname\space and \tikzname.
\section*{Changelog}\addcontentsline{toc}{section}{Changelog}
\begin{multicols}{2}\raggedright
\noindent
+Version 0.4
+\begin{itemize}
+\item CTAN version of 0.3.1
+\end{itemize}
+Version 0.3.1
+\begin{itemize}
+\item Fixed |ext.paths.ortho| keys |only vertical first| and |only horizontal first|.
+\item Moved all (except the |to path|s) to namespace |/tikz/ortho|.
+ |/tikz/hvvh| and |/tikz/udlr| are considered deprecated.
+\item Fixed |\pgfcalendarjulianyeartoweek|.
+\item Added more calendar tests.
+\item Added directory structure.
+\end{itemize}
Version 0.3
\begin{itemize}
\item \addShape[circle arrow]{circlearrow}
@@ -199,6 +212,17 @@ Version 0.1
\end{multicols}
\printindex
+\makeatletter
+\def\url#1{%
+ \in@{/16595}{#1}%
+ \ifin@
+ \hyper@linkurl{\expandafter\Hurl\expandafter{\strip@url#1\relax}}{#1}%
+ \else
+ \hyper@linkurl{\Hurl{#1}}{#1}%
+ \fi
+}
+\def\strip@url#1/16595\relax{#1}
+\makeatother
\printbibliography[heading=bibintoc]
%\typeout{Examples: \the\codeexamplecount}%
\end{document} \ No newline at end of file
diff --git a/graphics/pgf/contrib/tikz-ext/doc/tikz-ext-manual-en-main-preamble.tex b/graphics/pgf/contrib/tikz-ext/doc/generic/tikz-ext/tikz-ext-manual-en-main-preamble.tex
index 494d63e012..494d63e012 100644
--- a/graphics/pgf/contrib/tikz-ext/doc/tikz-ext-manual-en-main-preamble.tex
+++ b/graphics/pgf/contrib/tikz-ext/doc/generic/tikz-ext/tikz-ext-manual-en-main-preamble.tex
diff --git a/graphics/pgf/contrib/tikz-ext/doc/tikz-ext-manual-en-pgf-shapes-circlearrow.tex b/graphics/pgf/contrib/tikz-ext/doc/generic/tikz-ext/tikz-ext-manual-en-pgf-shapes-circlearrow.tex
index e26711bb35..e26711bb35 100644
--- a/graphics/pgf/contrib/tikz-ext/doc/tikz-ext-manual-en-pgf-shapes-circlearrow.tex
+++ b/graphics/pgf/contrib/tikz-ext/doc/generic/tikz-ext/tikz-ext-manual-en-pgf-shapes-circlearrow.tex
diff --git a/graphics/pgf/contrib/tikz-ext/doc/tikz-ext-manual-en-pgf-shapes-circlecrosssplit.tex b/graphics/pgf/contrib/tikz-ext/doc/generic/tikz-ext/tikz-ext-manual-en-pgf-shapes-circlecrosssplit.tex
index e7b2b9ba5a..e7b2b9ba5a 100644
--- a/graphics/pgf/contrib/tikz-ext/doc/tikz-ext-manual-en-pgf-shapes-circlecrosssplit.tex
+++ b/graphics/pgf/contrib/tikz-ext/doc/generic/tikz-ext/tikz-ext-manual-en-pgf-shapes-circlecrosssplit.tex
diff --git a/graphics/pgf/contrib/tikz-ext/doc/tikz-ext-manual-en-pgf-shapes-heatmark.tex b/graphics/pgf/contrib/tikz-ext/doc/generic/tikz-ext/tikz-ext-manual-en-pgf-shapes-heatmark.tex
index fa13cb0000..fa13cb0000 100644
--- a/graphics/pgf/contrib/tikz-ext/doc/tikz-ext-manual-en-pgf-shapes-heatmark.tex
+++ b/graphics/pgf/contrib/tikz-ext/doc/generic/tikz-ext/tikz-ext-manual-en-pgf-shapes-heatmark.tex
diff --git a/graphics/pgf/contrib/tikz-ext/doc/tikz-ext-manual-en-pgf-shapes-rectround.tex b/graphics/pgf/contrib/tikz-ext/doc/generic/tikz-ext/tikz-ext-manual-en-pgf-shapes-rectround.tex
index 78bab76925..78bab76925 100644
--- a/graphics/pgf/contrib/tikz-ext/doc/tikz-ext-manual-en-pgf-shapes-rectround.tex
+++ b/graphics/pgf/contrib/tikz-ext/doc/generic/tikz-ext/tikz-ext-manual-en-pgf-shapes-rectround.tex
diff --git a/graphics/pgf/contrib/tikz-ext/doc/tikz-ext-manual-en-pgf-shapes-superellipse.tex b/graphics/pgf/contrib/tikz-ext/doc/generic/tikz-ext/tikz-ext-manual-en-pgf-shapes-superellipse.tex
index 580ef0d93f..580ef0d93f 100644
--- a/graphics/pgf/contrib/tikz-ext/doc/tikz-ext-manual-en-pgf-shapes-superellipse.tex
+++ b/graphics/pgf/contrib/tikz-ext/doc/generic/tikz-ext/tikz-ext-manual-en-pgf-shapes-superellipse.tex
diff --git a/graphics/pgf/contrib/tikz-ext/doc/tikz-ext-manual-en-pgf-trans.tex b/graphics/pgf/contrib/tikz-ext/doc/generic/tikz-ext/tikz-ext-manual-en-pgf-trans.tex
index ccd378a6e7..ccd378a6e7 100644
--- a/graphics/pgf/contrib/tikz-ext/doc/tikz-ext-manual-en-pgf-trans.tex
+++ b/graphics/pgf/contrib/tikz-ext/doc/generic/tikz-ext/tikz-ext-manual-en-pgf-trans.tex
diff --git a/graphics/pgf/contrib/tikz-ext/doc/tikz-ext-manual.bib b/graphics/pgf/contrib/tikz-ext/doc/generic/tikz-ext/tikz-ext-manual.bib
index 7bb85bf7b2..5a13e91d41 100644
--- a/graphics/pgf/contrib/tikz-ext/doc/tikz-ext-manual.bib
+++ b/graphics/pgf/contrib/tikz-ext/doc/generic/tikz-ext/tikz-ext-manual.bib
@@ -296,4 +296,27 @@
year = {2013},
}
+'
+@Online{CalFullWeek-Q,
+ author = {jd6},
+ file = {Snapshot:https\://tex.stackexchange.com/questions/576673/full-weeks-in-tikz-calendar/660335#660335:text/html},
+ month = dec,
+ title = {Full weeks in Tikz Calendar},
+ titleaddon = {{TeX} - {LaTeX} Stack Exchange},
+ url = {https://tex.stackexchange.com/q/576673/16595},
+ urldate = {2022-10-09},
+ year = {2020},
+}
+
+@Online{CalFullWeek-A,
+ author = {Qrrbrbirlbel},
+ file = {Snapshot:https\://tex.stackexchange.com/questions/576673/full-weeks-in-tikz-calendar/660335#660335:text/html},
+ month = oct,
+ title = {Answer to \enquote{Full weeks in Tikz Calendar}},
+ titleaddon = {{TeX} - {LaTeX} Stack Exchange},
+ url = {https://tex.stackexchange.com/a/660335/16595},
+ urldate = {2022-10-09},
+ year = {2022},
+}
+
@Comment{jabref-meta: databaseType:bibtex;}
diff --git a/graphics/pgf/contrib/tikz-ext/doc/tikz-ext-manual.pdf b/graphics/pgf/contrib/tikz-ext/doc/generic/tikz-ext/tikz-ext-manual.pdf
index afeef21a22..f4a31a8c6a 100644
--- a/graphics/pgf/contrib/tikz-ext/doc/tikz-ext-manual.pdf
+++ b/graphics/pgf/contrib/tikz-ext/doc/generic/tikz-ext/tikz-ext-manual.pdf
Binary files differ
diff --git a/graphics/pgf/contrib/tikz-ext/doc/tikz-ext-manual.tex b/graphics/pgf/contrib/tikz-ext/doc/generic/tikz-ext/tikz-ext-manual.tex
index 1f2400847a..253944ca7d 100644
--- a/graphics/pgf/contrib/tikz-ext/doc/tikz-ext-manual.tex
+++ b/graphics/pgf/contrib/tikz-ext/doc/generic/tikz-ext/tikz-ext-manual.tex
@@ -11,12 +11,8 @@
%
\documentclass[a4paper,doc2,landscape]{ltxdoc}
-
\input{tikz-ext-manual-en-main-preamble.tex}
\usetikzlibrary{external}
-%\newif\iftikzextmanualexternalize
-%\tikzextmanualexternalizetrue
-%\iftikzextmanualexternalize
\tikzexternalize[
prefix=tikz/,
% mode=convert with system call,
@@ -24,9 +20,9 @@
%mode=list only,export=true,% simply skips EVERY picture -> good for debugging the text.
]
\tikzexternalenable
- \tikzifexternalizing{%
- \pgfkeys{/pdflinks/codeexample links=false}%
- }{}%
-%\fi
+% \tikzexternaldisable
+ \tikzifexternalizing{
+ \pgfkeys{/pdflinks/codeexample links=false}
+ }{}
\input{tikz-ext-manual-en-main-body.tex}
diff --git a/graphics/pgf/contrib/tikz-ext/pgfcalendar-ext.code.tex b/graphics/pgf/contrib/tikz-ext/tex/generic/tikz-ext/pgfcalendar-ext.code.tex
index b32ac9a3a6..90b42a0011 100644
--- a/graphics/pgf/contrib/tikz-ext/pgfcalendar-ext.code.tex
+++ b/graphics/pgf/contrib/tikz-ext/tex/generic/tikz-ext/pgfcalendar-ext.code.tex
@@ -26,6 +26,24 @@
\expandafter
\endgroup\pgf@cal@temp
},
+ relative/.code 2 args={%
+ \begingroup
+ \pgfutil@tempcnta=\pgfcalendarifdatejulian\relax
+ \advance\pgfutil@tempcnta by #1\relax
+ \pgfcalendarjuliantodate{\pgfutil@tempcnta}{\pgfcalendarifdateyear}{\pgfcalendarifdatemonth}{\pgfcalendarifdateday}%
+ \edef\pgfcalendarifdatejulian{\the\pgfutil@tempcnta}%
+ \pgfcalendarjuliantoweekday\pgfutil@tempcnta\pgfutil@tempcntb
+ \edef\pgfcalendarifdateweekday{\the\pgfutil@tempcntb}%
+ \pgfcalendarjulianyeartoweek\pgfutil@tempcnta\pgfcalendarifdateyear\pgfutil@tempcntb
+ \edef\pgfcalendarifdateweek{\the\pgfutil@tempcntb}%
+ \pgfcalendar@launch@ifdate{#2}{%
+ \def\pgf@cal@temp{\pgfcalendarmatchestrue}%
+ }{%
+ \let\pgf@cal@temp\pgfutil@empty
+ }%
+ \expandafter
+ \endgroup\pgf@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,
@@ -39,20 +57,6 @@
Nov/.code={\ifnum\pgfcalendarifdatemonth=11 \expandafter\pgfcalendarmatchestrue\fi},Nov/.value forbidden,
Dec/.code={\ifnum\pgfcalendarifdatemonth=12 \expandafter\pgfcalendarmatchestrue\fi},Dec/.value forbidden,
%
- difference between/.code args={#1and#2 #3 #4}{%
- \pgfcalendardatetojulian{#1}\pgfutil@tempcnta
- \pgfcalendardatetojulian{#2}\pgfutil@tempcntb
- \advance\pgfutil@tempcntb by -\pgfutil@tempcnta
- \ifnum\pgfutil@tempcntb#3#4\relax
- \pgfcalendarmatchestrue
- \fi},
- weekday before or same/.code args={#1and#2}{%
- \pgfcalendarjuliantoweekday{#1}\pgfutil@tempcnta
- \pgfcalendarjuliantoweekday{#2}\pgfutil@tempcntb
- \ifnum\pgfutil@tempcntb<\pgfutil@tempcnta
- \pgfcalendarmatchestrue
- \fi
- },
leap year/.code={%
\pgfutil@tempcnta=#1\relax
\divide\pgfutil@tempcnta4
@@ -71,6 +75,7 @@
\fi
\fi},
leap year/.default=\pgfcalendarifdateyear,
+ between days/.value required,
between days/.code args={#1and#2}{%
\pgfutil@tempcnta=#1\relax
\ifnum\pgfcalendarifdateday<\pgfutil@tempcnta\else
@@ -135,8 +140,31 @@
\pgfcalendar@launch@ifdate{\pgfkeyscurrentname={#1}}%
{\let\pgf@cal@temp\pgfutil@empty}{\def\pgf@cal@temp{\pgfcalendarmatchesfalse}}
\expandafter\endgroup\pgf@cal@temp
- }%
-}
+ },%
+ calendar week of month/.default=1,
+ calendar week of month'/.default=1,
+ calendar week of month/.code={%
+ \begingroup
+ \pgfutil@tempcnta=\pgfcalendarifdateday\relax
+ \advance\pgfutil@tempcnta by 5
+ \advance\pgfutil@tempcnta by -\pgfcalendarifdateweekday\relax
+ \divide\pgfutil@tempcnta by 7
+ \advance\pgfutil@tempcnta by -#1\relax
+ \expandafter\endgroup\expandafter
+ \ifnum\the\pgfutil@tempcnta=-1
+ \pgfcalendarmatchestrue
+ \fi},
+ calendar week of month'/.code={%
+ \begingroup
+ \pgfcalendar@getlastYMX\pgfcalendarifdateyear\pgfcalendarifdatemonth\pgfutil@tempcnta
+ \advance\pgfutil@tempcnta by -\pgfcalendarifdateday\relax
+ \edef\pgfcalendarifdateday{\the\pgfutil@tempcnta}%
+ \pgfutil@tempcnta=-\pgfcalendarifdateweekday\relax
+ \advance\pgfutil@tempcnta by 5
+ \edef\pgfcalendarifdateweekday{\the\pgfutil@tempcnta}%
+ \let\pgf@cal@temp\pgfutil@empty
+ \pgfcalendar@launch@ifdate{calendar week of month={#1}}{\def\pgf@cal@temp{\pgfcalendarmatchestrue}}{}%
+ \expandafter\endgroup\pgf@cal@temp}}
\def\pgfcalendar@ifdate@first#1#2:#3\pgf@stop{%
\pgfqkeys{/pgf/calendar}{and={#3, week of month#1={#2}}}}
@@ -178,9 +206,8 @@
\advance\pgfutil@tempcnta by 7\relax
\fi
% setup macro for year with {Julian number for day of first week}{weekday of -01-01}
- \edef\pgf@cal@temp{\def\expandafter\noexpand\csname pgfcalendar@week@#1\endcsname
- {{\the\pgfutil@tempcnta}{\the\pgfutil@tempcntb}}}%
- \expandafter\endgroup\pgf@cal@temp
+ \expandafter\xdef\csname pgfcalendar@week@#1\endcsname{{\the\pgfutil@tempcnta}{\the\pgfutil@tempcntb}}%
+ \endgroup
}{}%
}
@@ -211,12 +238,12 @@
{% we need to check the week of the previous year
#3=#2\relax
\advance#3 by -1
- \edef\pgf@cal@temp{\noexpand\pgfcalendarjulianyeartoweek@#1{\the#3}#3\noexpand\iffalse}%
+ \edef\pgf@cal@temp{\noexpand\pgfcalendarjulianyeartoweek@{#1}{\the#3}{#3}\noexpand\iffalse}%
\pgf@cal@temp
}{% yeah, it's weird
\divide#3 by 7
\advance#3 by 1
- }
+ }%
}{%
\divide#3 by 7
\advance#3 by 1
@@ -315,6 +342,22 @@
\let\pgfcalendarifdateweek=\pgfcalendarcurrentweek
\pgfcalendar@launch@ifdate%
}
+%
+% Overwritigin original \pgfcalendarifdate
+%
+\def\pgfcalendarifdate#1#2#3#4{%
+ \pgfcalendardatetojulian{#1}{\pgfutil@tempcnta}%
+ \pgfcalendarjuliantodate{\pgfutil@tempcnta}
+ {\pgfcalendarifdateyear}{\pgfcalendarifdatemonth}{\pgfcalendarifdateday}%
+ \edef\pgfcalendarifdatejulian{\the\pgfutil@tempcnta}%
+ % Compute info about date
+ \pgfcalendarjuliantoweekday{\pgfutil@tempcnta}{\pgfutil@tempcntb}%
+ \edef\pgfcalendarifdateweekday{\the\pgfutil@tempcntb}%
+ \pgfcalendarjulianyeartoweek{\pgfcalendarifdatejulian}{\pgfcalendarifdateyear}{\pgfutil@tempcntb}%
+ \edef\pgfcalendarifdateweek{\ifnum\pgfutil@tempcntb<10 0\fi\the\pgfutil@tempcntb}%
+ %
+ \pgfcalendar@launch@ifdate{#2}{#3}{#4}%
+}
\pgfqkeys{/pgf/calendar/week}{.value required,.code=\ifnum#1=\pgfcalendarifdateweek\relax\expandafter\pgfcalendarmatchestrue\fi}
diff --git a/graphics/pgf/contrib/tikz-ext/pgflibraryext.shapes.circlearrow.code.tex b/graphics/pgf/contrib/tikz-ext/tex/generic/tikz-ext/pgflibraryext.shapes.circlearrow.code.tex
index 9eb1c6ab09..9eb1c6ab09 100644
--- a/graphics/pgf/contrib/tikz-ext/pgflibraryext.shapes.circlearrow.code.tex
+++ b/graphics/pgf/contrib/tikz-ext/tex/generic/tikz-ext/pgflibraryext.shapes.circlearrow.code.tex
diff --git a/graphics/pgf/contrib/tikz-ext/pgflibraryext.shapes.circlecrosssplit.code.tex b/graphics/pgf/contrib/tikz-ext/tex/generic/tikz-ext/pgflibraryext.shapes.circlecrosssplit.code.tex
index 7bc2761fb4..7bc2761fb4 100644
--- a/graphics/pgf/contrib/tikz-ext/pgflibraryext.shapes.circlecrosssplit.code.tex
+++ b/graphics/pgf/contrib/tikz-ext/tex/generic/tikz-ext/pgflibraryext.shapes.circlecrosssplit.code.tex
diff --git a/graphics/pgf/contrib/tikz-ext/pgflibraryext.shapes.heatmark.code.tex b/graphics/pgf/contrib/tikz-ext/tex/generic/tikz-ext/pgflibraryext.shapes.heatmark.code.tex
index 477d0442da..477d0442da 100644
--- a/graphics/pgf/contrib/tikz-ext/pgflibraryext.shapes.heatmark.code.tex
+++ b/graphics/pgf/contrib/tikz-ext/tex/generic/tikz-ext/pgflibraryext.shapes.heatmark.code.tex
diff --git a/graphics/pgf/contrib/tikz-ext/pgflibraryext.shapes.rectangleroundedcorners.code.tex b/graphics/pgf/contrib/tikz-ext/tex/generic/tikz-ext/pgflibraryext.shapes.rectangleroundedcorners.code.tex
index 37baf7abbf..37baf7abbf 100644
--- a/graphics/pgf/contrib/tikz-ext/pgflibraryext.shapes.rectangleroundedcorners.code.tex
+++ b/graphics/pgf/contrib/tikz-ext/tex/generic/tikz-ext/pgflibraryext.shapes.rectangleroundedcorners.code.tex
diff --git a/graphics/pgf/contrib/tikz-ext/pgflibraryext.shapes.superellipse.code.tex b/graphics/pgf/contrib/tikz-ext/tex/generic/tikz-ext/pgflibraryext.shapes.superellipse.code.tex
index 9a89b5a8a6..9a89b5a8a6 100644
--- a/graphics/pgf/contrib/tikz-ext/pgflibraryext.shapes.superellipse.code.tex
+++ b/graphics/pgf/contrib/tikz-ext/tex/generic/tikz-ext/pgflibraryext.shapes.superellipse.code.tex
diff --git a/graphics/pgf/contrib/tikz-ext/pgflibraryext.transformations.mirror.code.tex b/graphics/pgf/contrib/tikz-ext/tex/generic/tikz-ext/pgflibraryext.transformations.mirror.code.tex
index 4d962ccb1c..4d962ccb1c 100644
--- a/graphics/pgf/contrib/tikz-ext/pgflibraryext.transformations.mirror.code.tex
+++ b/graphics/pgf/contrib/tikz-ext/tex/generic/tikz-ext/pgflibraryext.transformations.mirror.code.tex
diff --git a/graphics/pgf/contrib/tikz-ext/tikzlibraryext.calendar-plus.code.tex b/graphics/pgf/contrib/tikz-ext/tex/generic/tikz-ext/tikzlibraryext.calendar-plus.code.tex
index 195ecf9414..195ecf9414 100644
--- a/graphics/pgf/contrib/tikz-ext/tikzlibraryext.calendar-plus.code.tex
+++ b/graphics/pgf/contrib/tikz-ext/tex/generic/tikz-ext/tikzlibraryext.calendar-plus.code.tex
diff --git a/graphics/pgf/contrib/tikz-ext/tikzlibraryext.misc.code.tex b/graphics/pgf/contrib/tikz-ext/tex/generic/tikz-ext/tikzlibraryext.misc.code.tex
index 830b3513e5..830b3513e5 100644
--- a/graphics/pgf/contrib/tikz-ext/tikzlibraryext.misc.code.tex
+++ b/graphics/pgf/contrib/tikz-ext/tex/generic/tikz-ext/tikzlibraryext.misc.code.tex
diff --git a/graphics/pgf/contrib/tikz-ext/tikzlibraryext.node-families.code.tex b/graphics/pgf/contrib/tikz-ext/tex/generic/tikz-ext/tikzlibraryext.node-families.code.tex
index 699170d178..c0ecda441a 100644
--- a/graphics/pgf/contrib/tikz-ext/tikzlibraryext.node-families.code.tex
+++ b/graphics/pgf/contrib/tikz-ext/tex/generic/tikz-ext/tikzlibraryext.node-families.code.tex
@@ -290,7 +290,7 @@
\ifdim\wd\pgfnodeparttextbox<\pgfutil@tempdima
\pgfutil@tempdimb=\pgfutil@tempdima
\advance\pgfutil@tempdimb-\wd\pgfnodeparttextbox
- \setbox\pgfnodeparttextbox=\hbox to \pgfutil@tempdima{\tikzext@nf@align@action\pgfutil@tempdimb\box\pgfnodeparttextbox}%
+ \setbox\pgfnodeparttextbox=\hbox to \pgfutil@tempdima{\tikzext@nf@align@action\pgfutil@tempdimb\unhbox\pgfnodeparttextbox}%
\fi
\tikzext@nf@getandset{\the\dp\pgfnodeparttextbox}{text depth}{\pgfutil@tempdima}%
\ifdim\dp\pgfnodeparttextbox<\pgfutil@tempdima
diff --git a/graphics/pgf/contrib/tikz-ext/tikzlibraryext.node-families.shapes.geometric.code.tex b/graphics/pgf/contrib/tikz-ext/tex/generic/tikz-ext/tikzlibraryext.node-families.shapes.geometric.code.tex
index 58384960a8..58384960a8 100644
--- a/graphics/pgf/contrib/tikz-ext/tikzlibraryext.node-families.shapes.geometric.code.tex
+++ b/graphics/pgf/contrib/tikz-ext/tex/generic/tikz-ext/tikzlibraryext.node-families.shapes.geometric.code.tex
diff --git a/graphics/pgf/contrib/tikz-ext/tex/generic/tikz-ext/tikzlibraryext.paths.arcto.code.tex b/graphics/pgf/contrib/tikz-ext/tex/generic/tikz-ext/tikzlibraryext.paths.arcto.code.tex
new file mode 100644
index 0000000000..c75f31b60a
--- /dev/null
+++ b/graphics/pgf/contrib/tikz-ext/tex/generic/tikz-ext/tikzlibraryext.paths.arcto.code.tex
@@ -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@arcA rc{\pgfutil@ifnextchar t%
+ {\tikz@flush@moveto\expandafter\expandafter\expandafter\tikz@arcB@cont\expandafter\pgfutil@gobble\pgfutil@gobble}
+ {\tikz@flush@moveto\tikz@arc@cont}}
+\def\tikz@arcB@cont{%
+ \pgfutil@ifnextchar[\tikz@@do@arcB{
+ \advance\tikz@expandcount by -10\relax% go down quickly
+ \ifnum\tikz@expandcount<0\relax%
+ \def\@next{\tikz@@do@arcB[]}%
+ \else%
+ \def\@next{\expandafter\tikz@arcB@cont}%
+ \fi%
+ \@next}}%
+\def\tikz@@do@arcB[#1]{%
+ \def\tikz@arcB@options{#1}%
+ \tikz@do@@arcB}
+\def\tikz@do@@arcB{%
+ \pgfutil@ifnextchar n{\tikz@collect@label@onpath\tikz@do@@arcB}
+ {\pgfutil@ifnextchar c{\tikz@collect@coordinate@onpath\tikz@do@@arcB}
+ {\pgfutil@ifnextchar p{\tikz@collect@pic@onpath\tikz@do@@arcB}
+ {\tikz@scan@one@point\tikz@do@arcB}}}}
+
+\def\tikz@do@arcB#1{%
+ \edef\tikz@timer@start{\noexpand\pgfqpoint{\the\tikz@lastx}{\the\tikz@lasty}}
+ \tikz@make@last@position{#1}%
+ \edef\tikz@timer@end{\noexpand\pgfqpoint{\the\tikz@lastx}{\the\tikz@lasty}}%
+ \iftikz@shapeborder
+ \edef\tikz@moveto@waiting{\tikz@shapeborder@name}%
+ \fi
+ \begingroup
+ \tikzset{every arc/.try,every arc to/.try,arc to/.expand once=\tikz@arcB@options}%
+ \pgfmathsetmacro\tikz@arc@x{\pgfkeysvalueof{/tikz/x radius}}%
+ \ifpgfmathunitsdeclared
+ \pgfmathsetmacro\tikz@arc@y{\pgfkeysvalueof{/tikz/y radius}}%
+ \ifpgfmathunitsdeclared
+ \tikzext@pgfpatharcto{\tikz@arc@x pt}{\tikz@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@arc@y{\pgfkeysvalueof{/tikz/y radius}}%
+ \ifpgfmathunitsdeclared
+ \tikzerror{You cannot mix dimensions and dimension values in an arc}%
+ \else
+ \pgf@process{\pgfpointxy{\tikz@arc@x}{0}}%
+ \pgfmathveclen@{\pgf@sys@tonumber\pgf@x}{\pgf@sys@tonumber\pgf@y}%
+ \let\tikz@arc@x\pgfmathresult
+ \pgf@process{\pgfpointxy{0}{\tikz@arc@y}}%
+ \pgfmathveclen@{\pgf@sys@tonumber\pgf@x}{\pgf@sys@tonumber\pgf@y}%
+ \let\tikz@arc@y\pgfmathresult
+ \tikzext@pgfpatharcto{+\tikz@arc@x pt}{+\tikz@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@marshall starts with \pgfpathlineto
+ \pgfutil@ifxempty\pgf@marshal{}{%
+ \edef\tikz@temp{\expandafter\expandafter\expandafter\noexpand\expandafter\pgfutil@firstgobblerest\pgf@marshal\relax}%
+ \expandafter\let\expandafter\tikz@temp\tikz@temp
+ \pgfutil@ifx\tikz@temp\pgfpathlineto{}{%
+ % getting rid of \pgfpatharcaxes inside \pgf@marshal
+ \expandafter\expandafter\expandafter\def\expandafter\expandafter\expandafter\pgf@marshal
+ \expandafter\expandafter\expandafter{\expandafter\pgfutil@gobble\pgf@marshal}%
+ % extracting the other four values needed for the timer
+ \edef\tikz@timer@start@angle{\expandafter\pgfutil@firstoffour\pgf@marshal}%
+ \edef\tikz@timer@end@angle{\expandafter\pgfutil@secondoffour\pgf@marshal}%
+ \pgfextract@process\tikz@timer@zero@axis{\expandafter\pgfutil@thirdoffour\pgf@marshal}%
+ \pgfextract@process\tikz@timer@ninety@axis{\expandafter\pgfutil@fourthoffour\pgf@marshal}%
+ %
+ \let\tikz@timer=\tikz@timer@arc
+ }%
+ }%
+ \tikz@scan@next@command
+}
+\def\pgfutil@firstoffour#1#2#3#4{#1}
+\def\pgfutil@secondoffour#1#2#3#4{#2}
+\def\pgfutil@thirdoffour#1#2#3#4{#3}
+\def\pgfutil@fourthoffour#1#2#3#4{#4}
+\def\pgfutil@firstgobblerest#1#2\relax{#1}
+
+% original from pgfcorepathconstruct.code.tex
+\def\tikzext@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@arcto@rx{abs(#1)}%
+ \pgfmathsetmacro\pgf@arcto@ry{abs(#2)}%
+ \ifdim\pgf@arcto@rx pt=0pt% special rule: zero radius=straight line
+ \gdef\pgf@marshal{\pgfpathlineto{#6}}%
+ \else
+ \ifdim\pgf@arcto@ry pt=0pt% special rule: zero radius=straight line
+ \gdef\pgf@marshal{\pgfpathlineto{#6}}%
+ \else
+ \pgfmathsetmacro\pgf@arcto@phi{#3}%
+ \pgfmathsetmacro\pgf@arcto@fA{#4}%
+ \ifdim\pgf@arcto@fA pt=0pt
+ \else
+ \pgfmathsetmacro\pgf@arcto@fA{1.0}% Special rule: every non-zero value is 1.
+ \fi
+ \pgfmathsetmacro\pgf@arcto@fS{#5}%
+ \ifdim\pgf@arcto@fS pt=0pt
+ \else
+ \pgfmathsetmacro\pgf@arcto@fS{1.0}% Special rule: every non-zero value is 1.
+ \fi
+ \pgf@process{#6}%
+ \edef\pgf@arcto@xb{\the\pgf@x}%
+ \edef\pgf@arcto@yb{\the\pgf@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@process{\pgfpointtransformed{\pgfqpoint{\pgf@path@lastx}{\pgf@path@lasty}}}%
+ \edef\pgf@arcto@xa{\the\pgf@x}%
+ \edef\pgf@arcto@ya{\the\pgf@y}%
+ \edef\pgf@temp@a{\pgf@arcto@xa,\pgf@arcto@ya}%
+ \edef\pgf@temp@b{\pgf@arcto@xb,\pgf@arcto@yb}%
+ \ifx\pgf@temp@a\pgf@temp@b% special rule: skip!
+ \global\let\pgf@marshal\pgfutil@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@arcto@phi}%
+ % Ok, using \pgfpointtransformed we now get transformed points...
+ %
+ % Step 4: Compute x1' and y1' (xaprime and yaprime)
+ %
+ \pgf@process{%
+ \pgfpointtransformed{\pgfpointscale{.5}{\pgfpointdiff
+ {\pgfqpoint{\pgf@arcto@xb}{\pgf@arcto@yb}}
+ {\pgfqpoint{\pgf@arcto@xa}{\pgf@arcto@ya}}%
+ }%
+ }%
+ }%
+ \edef\pgf@arcto@xaprime{\pgf@sys@tonumber\pgf@x}%
+ \edef\pgf@arcto@yaprime{\pgf@sys@tonumber\pgf@y}%
+ %
+ % Compute Lambda
+ %
+ \pgfmathsetmacro\pgf@arcto@frac@x{\pgf@arcto@xaprime/\pgf@arcto@rx}%
+ \pgfmathsetmacro\pgf@arcto@frac@y{\pgf@arcto@yaprime/\pgf@arcto@ry}%
+ \pgfmathsetmacro\pgf@arcto@lambda{
+ \pgf@arcto@frac@x*\pgf@arcto@frac@x+\pgf@arcto@frac@y*\pgf@arcto@frac@y
+ }%
+ \ifdim\pgf@arcto@lambda pt>1pt
+ \pgfmathsetmacro\pgf@arcto@sqrt@lambda{sqrt(\pgf@arcto@lambda)}%
+ \pgfmathsetmacro\pgf@arcto@rx{\pgf@arcto@sqrt@lambda*\pgf@arcto@rx}%
+ \pgfmathsetmacro\pgf@arcto@ry{\pgf@arcto@sqrt@lambda*\pgf@arcto@ry}%
+ \fi
+ %
+ % Do some scaling
+ %
+ \pgfmathsetmacro\pgf@arcto@xaprime@abs{abs(\pgf@arcto@xaprime)}%
+ \pgfmathsetmacro\pgf@arcto@yaprime@abs{abs(\pgf@arcto@yaprime)}%
+ \pgfmathmax@{\pgf@arcto@rx,\pgf@arcto@ry,\pgf@arcto@xaprime@abs,\pgf@arcto@yaprime@abs}%
+ \pgfmathsetmacro\pgf@arcto@scaling{20/\pgfmathresult}%
+ \pgfmathsetmacro\pgf@arcto@rx@scaled{\pgf@arcto@scaling*\pgf@arcto@rx}%
+ \pgfmathsetmacro\pgf@arcto@ry@scaled{\pgf@arcto@scaling*\pgf@arcto@ry}%
+ \pgfmathsetmacro\pgf@arcto@xaprime@scaled{\pgf@arcto@scaling*\pgf@arcto@xaprime}%
+ \pgfmathsetmacro\pgf@arcto@yaprime@scaled{\pgf@arcto@scaling*\pgf@arcto@yaprime}%
+ %
+ % Step 5: Now comes the messy computation of c1' and c2'.
+ %
+ \ifdim\pgf@arcto@rx pt>\pgf@arcto@ry pt
+ \pgfmathsetmacro\pgf@arcto@rx@over@ry{\pgf@arcto@rx/\pgf@arcto@ry}%
+ \pgfmathsetmacro\pgf@arcto@ry@over@rx{\pgf@arcto@ry/\pgf@arcto@rx}%
+ \pgfmathsetmacro\pgf@arcto@temp{\pgf@arcto@ry@over@rx*\pgf@arcto@xaprime@scaled}%
+ \pgfmathsetmacro\pgf@arcto@numerator{
+ \pgf@arcto@ry@scaled*\pgf@arcto@ry@scaled-
+ \pgf@arcto@yaprime@scaled*\pgf@arcto@yaprime@scaled-
+ \pgf@arcto@temp*\pgf@arcto@temp
+ }%
+ \pgfmathsetmacro\pgf@arcto@denominator{
+ \pgf@arcto@yaprime@scaled*\pgf@arcto@yaprime@scaled+
+ \pgf@arcto@temp*\pgf@arcto@temp
+ }%
+ \else
+ \pgfmathsetmacro\pgf@arcto@rx@over@ry{\pgf@arcto@rx/\pgf@arcto@ry}%
+ \pgfmathsetmacro\pgf@arcto@ry@over@rx{\pgf@arcto@ry/\pgf@arcto@rx}%
+ \pgfmathsetmacro\pgf@arcto@temp{\pgf@arcto@rx@over@ry*\pgf@arcto@yaprime@scaled}%
+ \pgfmathsetmacro\pgf@arcto@numerator{
+ \pgf@arcto@rx@scaled*\pgf@arcto@rx@scaled-
+ \pgf@arcto@xaprime@scaled*\pgf@arcto@xaprime@scaled-
+ \pgf@arcto@temp*\pgf@arcto@temp
+ }%
+ \pgfmathsetmacro\pgf@arcto@denominator{
+ \pgf@arcto@xaprime@scaled*\pgf@arcto@xaprime@scaled+
+ \pgf@arcto@temp*\pgf@arcto@temp
+ }%
+ \fi
+ \pgfmathsetmacro\pgf@arcto@frac{
+ \pgf@arcto@numerator/\pgf@arcto@denominator
+ }%
+ \ifdim\pgf@arcto@frac pt<0pt
+ \pgfmathsetmacro\pgf@arcto@factor{0}%
+ \else
+ \pgfmathsetmacro\pgf@arcto@factor{sqrt(\pgf@arcto@frac)}%
+ \fi
+ \ifx\pgf@arcto@fA\pgf@arcto@fS
+ \pgfmathsetmacro\pgf@arcto@factor{-\pgf@arcto@factor}%
+ \fi
+ \pgfmathsetmacro\pgf@arcto@cxprime{
+ \pgf@arcto@factor*\pgf@arcto@rx@over@ry*\pgf@arcto@yaprime
+ }%
+ \pgfmathsetmacro\pgf@arcto@cyprime{
+ -\pgf@arcto@factor*\pgf@arcto@ry@over@rx*\pgf@arcto@xaprime
+ }%
+ %
+ % Step 6: Ok, now compute cx,cy
+ %
+ \pgftransformreset
+ \pgftransformrotate{\pgf@arcto@phi}%
+ \pgf@process{%
+ \pgfpointtransformed{\pgfqpoint{\pgf@arcto@cxprime pt}{\pgf@arcto@cyprime pt}}%
+ }%
+ \edef\pgf@arcto@temp{\noexpand\pgfqpoint{\the\pgf@x}{\the\pgf@y}}%
+ \pgf@process{\pgfpointadd{\pgf@arcto@temp}{%
+ \pgfpointscale{.5}{%
+ \pgfpointadd
+ {\pgfqpoint{\pgf@arcto@xa}{\pgf@arcto@ya}}
+ {\pgfqpoint{\pgf@arcto@xb}{\pgf@arcto@yb}}}%
+ }%
+ }%
+ \edef\pgf@arcto@cx{\the\pgf@x}%
+ \edef\pgf@arcto@cy{\the\pgf@y}%
+ %
+ % Step 7: Compute start angle:
+ %
+ \pgfmathsetmacro\pgf@arcto@vec@x{(\pgf@arcto@xaprime-\pgf@arcto@cxprime)/\pgf@arcto@rx}%
+ \pgfmathsetmacro\pgf@arcto@vec@y{(\pgf@arcto@yaprime-\pgf@arcto@cyprime)/\pgf@arcto@ry}%
+ \pgfmathsetmacro\pgf@arcto@denominator{veclen(\pgf@arcto@vec@x,\pgf@arcto@vec@y)}%
+ \pgfmathsetmacro\pgf@arcto@frac{\pgf@arcto@vec@x/\pgf@arcto@denominator}%
+ \pgfmathsetmacro\pgf@arcto@theta@start{acos(\pgf@arcto@frac)}%
+ \ifdim\pgf@arcto@vec@y pt<0pt
+ \pgfmathsetmacro\pgf@arcto@theta@start{-\pgf@arcto@theta@start}%
+ \fi
+ %
+ % Step 8: Compute end angle:
+ %
+ \pgfmathsetmacro\pgf@arcto@vec@x{(-\pgf@arcto@xaprime-\pgf@arcto@cxprime)/\pgf@arcto@rx}%
+ \pgfmathsetmacro\pgf@arcto@vec@y{(-\pgf@arcto@yaprime-\pgf@arcto@cyprime)/\pgf@arcto@ry}%
+ \pgfmathsetmacro\pgf@arcto@denominator{veclen(\pgf@arcto@vec@x,\pgf@arcto@vec@y)}%
+ \pgfmathsetmacro\pgf@arcto@frac{\pgf@arcto@vec@x/\pgf@arcto@denominator}%
+ \pgfmathsetmacro\pgf@arcto@theta@end{acos(\pgf@arcto@frac)}%
+ \ifdim\pgf@arcto@vec@y pt<0pt
+ \pgfmathsetmacro\pgf@arcto@theta@end{-\pgf@arcto@theta@end}%
+ \fi
+ \pgfmathsetmacro\pgf@arcto@delta@theta{abs(\pgf@arcto@theta@start-\pgf@arcto@theta@end)}%
+ \ifdim\pgf@arcto@fA pt=0pt
+ \ifdim\pgf@arcto@delta@theta pt>180pt
+ % Ok, we need to adjust the angle!
+ \ifdim\pgf@arcto@theta@end pt>\pgf@arcto@theta@start pt
+ \pgfmathsetmacro\pgf@arcto@theta@end{\pgf@arcto@theta@end-360}%
+ \else
+ \pgfmathsetmacro\pgf@arcto@theta@end{\pgf@arcto@theta@end+360}%
+ \fi
+ \fi
+ \else
+ \ifdim\pgf@arcto@delta@theta pt<180pt
+ % Ok, we need to adjust the angle!
+ \ifdim\pgf@arcto@theta@end pt>\pgf@arcto@theta@start pt
+ \pgfmathsetmacro\pgf@arcto@theta@end{\pgf@arcto@theta@end-360}%
+ \else
+ \pgfmathsetmacro\pgf@arcto@theta@end{\pgf@arcto@theta@end+360}%
+ \fi
+ \fi
+ \fi
+ % Qrr:
+ % make sure direction is properly followed
+ \ifdim\pgf@arcto@fS pt=1pt
+ % counter clockwise
+ \ifdim\pgf@arcto@theta@end pt<\pgf@arcto@theta@start path
+ \pgfmathsetmacro\pgf@arcto@theta@end{\pgf@arcto@theta@end+360}%
+ \fi
+ \else
+ % clockwise
+ \ifdim\pgf@arcto@theta@end pt>\pgf@arcto@theta@start path
+ \pgfmathsetmacro\pgf@arcto@theta@end{\pgf@arcto@theta@end-360}%
+ \fi
+ \fi
+ \xdef\pgf@marshal{\noexpand
+ \pgfpatharcaxes{\pgf@arcto@theta@start}{\pgf@arcto@theta@end}
+ {\noexpand\pgfpointpolar{\pgf@arcto@phi}{\pgf@arcto@rx}}
+ {\noexpand\pgfpointpolar{\pgf@arcto@phi+90}{\pgf@arcto@ry}}%
+ }%
+ \fi\fi\fi
+ }%
+ \pgf@marshal
+} \ No newline at end of file
diff --git a/graphics/pgf/contrib/tikz-ext/tikzlibraryext.paths.ortho.code.tex b/graphics/pgf/contrib/tikz-ext/tex/generic/tikz-ext/tikzlibraryext.paths.ortho.code.tex
index e7a3b02ed7..9740c39cc2 100644
--- a/graphics/pgf/contrib/tikz-ext/tikzlibraryext.paths.ortho.code.tex
+++ b/graphics/pgf/contrib/tikz-ext/tex/generic/tikz-ext/tikzlibraryext.paths.ortho.code.tex
@@ -51,14 +51,13 @@
%%% HVVH/UDLR
\tikzset{%
- hvvh/.code={\pgfqkeys{/tikz/hvvh}{#1}},%
- udlr/.code={\pgfqkeys{/tikz/udlr}{#1}},%
- hvvh/.search also=/tikz,%
- udlr/.search also=/tikz,%
- hvvh/middle 0 to 1/.style={hvvh/spacing=0},%
- hvvh/from center/.is if=tikzext@tikz@hvvh@fromcenter,%
- udlr/from center/.style={/tikz/hvvh/from center={#1}},
- hvvh/spacing/.code=% spacing = 0 means that the middle part are the pos-itions 0 to 1,
+ 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@tikz@hvvh@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@tikz@hvvh@timing@parts\pgfmathresult% in case they are calculations to be done
\ifcase\tikzext@tikz@hvvh@timing@parts\relax
@@ -76,20 +75,20 @@
\let\tikzext@tikz@hvvh@timing@subtr\pgfmathresult
\pgfmathsetmacro\tikzext@tikz@hvvh@timing@factor{1+2*\pgfmathresult}%
\fi,%
- hvvh/ratio/.code=\pgfmathsetmacro\tikzext@tikz@hvvh@ratio{#1},%
+ ortho/ratio/.code=\pgfmathsetmacro\tikzext@tikz@hvvh@ratio{#1},%
% TODO: not possible to do distance in TikZ coordinate system
- hvvh/distance/.code=\pgfmathsetlength\tikzext@tikz@hvvh@distance{#1}\let\tikzext@tikz@hvvh@ratio\pgfutil@empty,%
- udlr/distance/.style={%
- /tikz/udlr/ud distance={#1},%
- /tikz/udlr/du distance={#1},%
- /tikz/udlr/lr distance={#1},%
- /tikz/udlr/rl distance={#1}},%
- udlr/ud distance/.initial=+.5cm,%
- udlr/du distance/.initial=+.5cm,%
- udlr/lr distance/.initial=+.5cm,%
- udlr/rl distance/.initial=+.5cm,%
- hvvh/ratio=.5,% default value
- hvvh/spacing=4,% default value
+ ortho/distance/.code=\pgfmathsetlength\tikzext@tikz@hvvh@distance{#1}\let\tikzext@tikz@hvvh@ratio\pgfutil@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
@@ -207,7 +206,7 @@
\tikz@make@last@position{#1}%
\tikz@flush@moveto@toward{\pgfqpoint{\tikz@lastx}{\pgf@yc}}\pgf@xc\pgf@yc
\begingroup
- \pgfqkeys{/tikz/hvvh}{/tikz/style/.expand once=\tikz@hvvh@currentoption}%
+ \pgfqkeys{/tikz/ortho}{/tikz/style/.expand once=\tikz@hvvh@currentoption}%
\iftikz@shapeborder
\pgf@process{\pgfpointshapeborder{\tikz@shapeborder@name}{\pgfqpoint{\pgf@xb}{\tikz@lasty}}}%
\iftikzext@tikz@hvvh@fromcenter
@@ -277,7 +276,7 @@
\tikz@make@last@position{#1}%
\tikz@flush@moveto@toward{\pgfqpoint{\pgf@xc}{\tikz@lasty}}\pgf@xc\pgf@yc
\begingroup
- \pgfqkeys{/tikz/hvvh}{/tikz/style/.expand once=\tikz@hvvh@currentoption}%
+ \pgfqkeys{/tikz/ortho}{/tikz/style/.expand once=\tikz@hvvh@currentoption}%
\iftikz@shapeborder
\pgf@process{\pgfpointshapeborder{\tikz@shapeborder@name}{\pgfqpoint{\tikz@lastx}{\pgf@yb}}}%
\iftikzext@tikz@hvvh@fromcenter
@@ -348,8 +347,8 @@
\tikz@flush@moveto@toward{\pgfqpoint{\tikz@lastx}{\tikz@lasty}}\pgf@xc\pgf@yc
\tikz@make@last@position{#1}%
\begingroup
- \pgfqkeys{/tikz/udlr}{/tikz/style/.expand once=\tikz@hvvh@currentoption}%
- \pgfmathsetlength\tikzext@tikz@udlr@distance{\pgfkeysvalueof{/tikz/udlr/ud distance}}%
+ \pgfqkeys{/tikz/ortho}{/tikz/style/.expand once=\tikz@hvvh@currentoption}%
+ \pgfmathsetlength\tikzext@tikz@udlr@distance{\pgfkeysvalueof{/tikz/ortho/ud distance}}%
\iftikz@shapeborder
\advance\pgf@y1pt%
\pgf@process{\pgfpointshapeborder{\tikz@shapeborder@name}{\pgfqpoint{\pgf@x}{\pgf@y}}}%
@@ -399,8 +398,8 @@
\tikz@flush@moveto@toward{\pgfqpoint{\tikz@lastx}{\tikz@lasty}}\pgf@xc\pgf@yc
\tikz@make@last@position{#1}%
\begingroup
- \pgfqkeys{/tikz/udlr}{/tikz/style/.expand once=\tikz@hvvh@currentoption}%
- \pgfmathsetlength\tikzext@tikz@udlr@distance{\pgfkeysvalueof{/tikz/udlr/du distance}}%
+ \pgfqkeys{/tikz/ortho}{/tikz/style/.expand once=\tikz@hvvh@currentoption}%
+ \pgfmathsetlength\tikzext@tikz@udlr@distance{\pgfkeysvalueof{/tikz/ortho/du distance}}%
\iftikz@shapeborder
\advance\pgf@y-1pt%
\pgf@process{\pgfpointshapeborder{\tikz@shapeborder@name}{\pgfqpoint{\pgf@x}{\pgf@y}}}%
@@ -450,8 +449,8 @@
\tikz@flush@moveto@toward{\pgfqpoint{\tikz@lastx}{\tikz@lasty}}\pgf@xc\pgf@yc
\tikz@make@last@position{#1}%
\begingroup
- \pgfqkeys{/tikz/udlr}{/tikz/style/.expand once=\tikz@hvvh@currentoption}%
- \pgfmathsetlength\tikzext@tikz@udlr@distance{\pgfkeysvalueof{/tikz/udlr/lr distance}}%
+ \pgfqkeys{/tikz/ortho}{/tikz/style/.expand once=\tikz@hvvh@currentoption}%
+ \pgfmathsetlength\tikzext@tikz@udlr@distance{\pgfkeysvalueof{/tikz/ortho/lr distance}}%
\iftikz@shapeborder
\advance\pgf@x-1pt%
\pgf@process{\pgfpointshapeborder{\tikz@shapeborder@name}{\pgfqpoint{\pgf@x}{\pgf@y}}}%
@@ -501,8 +500,8 @@
\tikz@flush@moveto@toward{\pgfqpoint{\tikz@lastx}{\tikz@lasty}}\pgf@xc\pgf@yc
\tikz@make@last@position{#1}%
\begingroup
- \pgfqkeys{/tikz/udlr}{/tikz/style/.expand once=\tikz@hvvh@currentoption}%
- \pgfmathsetlength\tikzext@tikz@udlr@distance{\pgfkeysvalueof{/tikz/udlr/rl distance}}%
+ \pgfqkeys{/tikz/udlr}{/tikz/ortho/.expand once=\tikz@hvvh@currentoption}%
+ \pgfmathsetlength\tikzext@tikz@udlr@distance{\pgfkeysvalueof{/tikz/ortho/rl distance}}%
\iftikz@shapeborder%
\advance\pgf@x1pt%
\pgf@process{\pgfpointshapeborder{\tikz@shapeborder@name}{\pgfqpoint{\pgf@x}{\pgf@y}}}%
@@ -546,6 +545,16 @@
\tikzset{
node as new start/.is if=tikzext@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}},
@@ -611,10 +620,11 @@
\let\tikzext@ortho@anchor\pgfutil@empty
\let\tikzext@origtotarget\pgfutil@empty
\tikz@scan@one@point\pgfutil@firstofone(\tikztotarget)\relax
+ \pgf@ya=\pgf@y
\iftikz@shapeborder
\let\tikzext@origtotarget\tikztotarget
\tikz@scan@one@point\pgfutil@firstofone(\tikztostart)\relax
- \ifdim\pgf@y>\tikz@lasty\relax
+ \ifdim\pgf@ya>\tikz@lasty\relax
\edef\tikztotarget{\tikztotarget.south}%
\iftikz@shapeborder\def\tikzext@ortho@anchor{.north}\fi
\else
@@ -640,10 +650,11 @@
\let\tikzext@ortho@anchor\pgfutil@empty
\let\tikzext@origtotarget\pgfutil@empty
\tikz@scan@one@point\pgfutil@firstofone(\tikztotarget)\relax
+ \pgf@xa=\pgf@x
\iftikz@shapeborder
\let\tikzext@origtotarget\tikztotarget
\tikz@scan@one@point\pgfutil@firstofone(\tikztostart)\relax
- \ifdim\pgf@x>\tikz@lastx\relax
+ \ifdim\pgf@xa>\tikz@lastx\relax
\edef\tikztotarget{\tikztotarget.west}%
\iftikz@shapeborder\def\tikzext@ortho@anchor{.east}\fi
\else
diff --git a/graphics/pgf/contrib/tikz-ext/tikzlibraryext.paths.timer.code.tex b/graphics/pgf/contrib/tikz-ext/tex/generic/tikz-ext/tikzlibraryext.paths.timer.code.tex
index 3a4d30e68f..3a4d30e68f 100644
--- a/graphics/pgf/contrib/tikz-ext/tikzlibraryext.paths.timer.code.tex
+++ b/graphics/pgf/contrib/tikz-ext/tex/generic/tikz-ext/tikzlibraryext.paths.timer.code.tex
diff --git a/graphics/pgf/contrib/tikz-ext/tikzlibraryext.patterns.images.code.tex b/graphics/pgf/contrib/tikz-ext/tex/generic/tikz-ext/tikzlibraryext.patterns.images.code.tex
index aa732ab835..aa732ab835 100644
--- a/graphics/pgf/contrib/tikz-ext/tikzlibraryext.patterns.images.code.tex
+++ b/graphics/pgf/contrib/tikz-ext/tex/generic/tikz-ext/tikzlibraryext.patterns.images.code.tex
diff --git a/graphics/pgf/contrib/tikz-ext/tikzlibraryext.positioning-plus.code.tex b/graphics/pgf/contrib/tikz-ext/tex/generic/tikz-ext/tikzlibraryext.positioning-plus.code.tex
index 98de181c27..98de181c27 100644
--- a/graphics/pgf/contrib/tikz-ext/tikzlibraryext.positioning-plus.code.tex
+++ b/graphics/pgf/contrib/tikz-ext/tex/generic/tikz-ext/tikzlibraryext.positioning-plus.code.tex
diff --git a/graphics/pgf/contrib/tikz-ext/tikzlibraryext.topaths.arcthrough.code.tex b/graphics/pgf/contrib/tikz-ext/tex/generic/tikz-ext/tikzlibraryext.topaths.arcthrough.code.tex
index d90a2edc78..d90a2edc78 100644
--- a/graphics/pgf/contrib/tikz-ext/tikzlibraryext.topaths.arcthrough.code.tex
+++ b/graphics/pgf/contrib/tikz-ext/tex/generic/tikz-ext/tikzlibraryext.topaths.arcthrough.code.tex
diff --git a/graphics/pgf/contrib/tikz-ext/tikzlibraryext.transformations.mirror.code.tex b/graphics/pgf/contrib/tikz-ext/tex/generic/tikz-ext/tikzlibraryext.transformations.mirror.code.tex
index 026b39ab2f..026b39ab2f 100644
--- a/graphics/pgf/contrib/tikz-ext/tikzlibraryext.transformations.mirror.code.tex
+++ b/graphics/pgf/contrib/tikz-ext/tex/generic/tikz-ext/tikzlibraryext.transformations.mirror.code.tex
diff --git a/graphics/pgf/contrib/tikz-ext/pgfcalendar-ext.sty b/graphics/pgf/contrib/tikz-ext/tex/latex/tikz-ext/pgfcalendar-ext.sty
index a0f5ef3bc0..a0f5ef3bc0 100644
--- a/graphics/pgf/contrib/tikz-ext/pgfcalendar-ext.sty
+++ b/graphics/pgf/contrib/tikz-ext/tex/latex/tikz-ext/pgfcalendar-ext.sty
diff --git a/graphics/pgf/contrib/tikz-ext/pgfcalendar-ext.tex b/graphics/pgf/contrib/tikz-ext/tex/plain/tikz-ext/pgfcalendar-ext.tex
index 30c44187a4..30c44187a4 100644
--- a/graphics/pgf/contrib/tikz-ext/pgfcalendar-ext.tex
+++ b/graphics/pgf/contrib/tikz-ext/tex/plain/tikz-ext/pgfcalendar-ext.tex
diff --git a/graphics/pgf/contrib/tikz-ext/tikzlibraryext.paths.arcto.code.tex b/graphics/pgf/contrib/tikz-ext/tikzlibraryext.paths.arcto.code.tex
deleted file mode 100644
index 213fc1b74a..0000000000
--- a/graphics/pgf/contrib/tikz-ext/tikzlibraryext.paths.arcto.code.tex
+++ /dev/null
@@ -1,104 +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@arcA rc{\pgfutil@ifnextchar t%
- {\tikz@flush@moveto\expandafter\expandafter\expandafter\tikz@arcB@cont\expandafter\pgfutil@gobble\pgfutil@gobble}
- {\tikz@flush@moveto\tikz@arc@cont}}
-\def\tikz@arcB@cont{%
- \pgfutil@ifnextchar[\tikz@@do@arcB{
- \advance\tikz@expandcount by -10\relax% go down quickly
- \ifnum\tikz@expandcount<0\relax%
- \def\@next{\tikz@@do@arcB[]}%
- \else%
- \def\@next{\expandafter\tikz@arcB@cont}%
- \fi%
- \@next}}%
-\def\tikz@@do@arcB[#1]{%
- \def\tikz@arcB@options{#1}%
- \tikz@do@@arcB}
-\def\tikz@do@@arcB{%
- \pgfutil@ifnextchar n{\tikz@collect@label@onpath\tikz@do@@arcB}
- {\pgfutil@ifnextchar c{\tikz@collect@coordinate@onpath\tikz@do@@arcB}
- {\pgfutil@ifnextchar p{\tikz@collect@pic@onpath\tikz@do@@arcB}
- {\tikz@scan@one@point\tikz@do@arcB}}}}
-
-\def\tikz@do@arcB#1{%
- \edef\tikz@timer@start{\noexpand\pgfqpoint{\the\tikz@lastx}{\the\tikz@lasty}}
- \tikz@make@last@position{#1}%
- \edef\tikz@timer@end{\noexpand\pgfqpoint{\the\tikz@lastx}{\the\tikz@lasty}}%
- \iftikz@shapeborder
- \edef\tikz@moveto@waiting{\tikz@shapeborder@name}%
- \fi
- \begingroup
- \tikzset{every arc/.try,every arc to/.try,arc to/.expand once=\tikz@arcB@options}%
- \pgfmathsetmacro\tikz@arc@x{\pgfkeysvalueof{/tikz/x radius}}%
- \ifpgfmathunitsdeclared
- \pgfmathsetmacro\tikz@arc@y{\pgfkeysvalueof{/tikz/y radius}}%
- \ifpgfmathunitsdeclared
- \pgfpatharcto{\tikz@arc@x pt}{\tikz@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@arc@y{\pgfkeysvalueof{/tikz/y radius}}%
- \ifpgfmathunitsdeclared
- \tikzerror{You cannot mix dimensions and dimension values in an arc}%
- \else
- \pgf@process{\pgfpointxy{\tikz@arc@x}{0}}%
- \pgfmathveclen@{\pgf@sys@tonumber\pgf@x}{\pgf@sys@tonumber\pgf@y}%
- \let\tikz@arc@x\pgfmathresult
- \pgf@process{\pgfpointxy{0}{\tikz@arc@y}}%
- \pgfmathveclen@{\pgf@sys@tonumber\pgf@x}{\pgf@sys@tonumber\pgf@y}%
- \let\tikz@arc@y\pgfmathresult
- \pgfpatharcto{+\tikz@arc@x pt}{+\tikz@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@marshall starts with \pgfpathlineto
- \pgfutil@ifxempty\pgf@marshal{}{%
- \edef\tikz@temp{\expandafter\expandafter\expandafter\noexpand\expandafter\pgfutil@firstgobblerest\pgf@marshal\relax}%
- \expandafter\let\expandafter\tikz@temp\tikz@temp
- \pgfutil@ifx\tikz@temp\pgfpathlineto{}{%
- % getting rid of \pgfpatharcaxes inside \pgf@marshal
- \expandafter\expandafter\expandafter\def\expandafter\expandafter\expandafter\pgf@marshal
- \expandafter\expandafter\expandafter{\expandafter\pgfutil@gobble\pgf@marshal}%
- % extracting the other four values needed for the timer
- \edef\tikz@timer@start@angle{\expandafter\pgfutil@firstoffour\pgf@marshal}%
- \edef\tikz@timer@end@angle{\expandafter\pgfutil@secondoffour\pgf@marshal}%
- \pgfextract@process\tikz@timer@zero@axis{\expandafter\pgfutil@thirdoffour\pgf@marshal}%
- \pgfextract@process\tikz@timer@ninety@axis{\expandafter\pgfutil@fourthoffour\pgf@marshal}%
- %
- \let\tikz@timer=\tikz@timer@arc
- }%
- }%
- \tikz@scan@next@command
-}
-\def\pgfutil@firstoffour#1#2#3#4{#1}
-\def\pgfutil@secondoffour#1#2#3#4{#2}
-\def\pgfutil@thirdoffour#1#2#3#4{#3}
-\def\pgfutil@fourthoffour#1#2#3#4{#4}
-\def\pgfutil@firstgobblerest#1#2\relax{#1} \ No newline at end of file