summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Master/texmf-dist/doc/latex/tikz-ext/README.md2
-rw-r--r--Master/texmf-dist/doc/latex/tikz-ext/tikz-ext-manual-en-calendar.tex22
-rw-r--r--Master/texmf-dist/doc/latex/tikz-ext/tikz-ext-manual-en-library-paths.ortho.tex60
-rw-r--r--Master/texmf-dist/doc/latex/tikz-ext/tikz-ext-manual-en-main-body.tex26
-rw-r--r--Master/texmf-dist/doc/latex/tikz-ext/tikz-ext-manual.bib23
-rw-r--r--Master/texmf-dist/doc/latex/tikz-ext/tikz-ext-manual.pdfbin525958 -> 534933 bytes
-rw-r--r--Master/texmf-dist/doc/latex/tikz-ext/tikz-ext-manual.tex12
-rw-r--r--Master/texmf-dist/tex/latex/tikz-ext/pgfcalendar-ext.code.tex85
-rw-r--r--Master/texmf-dist/tex/latex/tikz-ext/tikzlibraryext.node-families.code.tex2
-rw-r--r--Master/texmf-dist/tex/latex/tikz-ext/tikzlibraryext.paths.arcto.code.tex228
-rw-r--r--Master/texmf-dist/tex/latex/tikz-ext/tikzlibraryext.paths.ortho.code.tex77
11 files changed, 444 insertions, 93 deletions
diff --git a/Master/texmf-dist/doc/latex/tikz-ext/README.md b/Master/texmf-dist/doc/latex/tikz-ext/README.md
index bee9e3512a8..33ec46d366e 100644
--- a/Master/texmf-dist/doc/latex/tikz-ext/README.md
+++ b/Master/texmf-dist/doc/latex/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/Master/texmf-dist/doc/latex/tikz-ext/tikz-ext-manual-en-calendar.tex b/Master/texmf-dist/doc/latex/tikz-ext/tikz-ext-manual-en-calendar.tex
index 4f2300a4584..09bd261a217 100644
--- a/Master/texmf-dist/doc/latex/tikz-ext/tikz-ext-manual-en-calendar.tex
+++ b/Master/texmf-dist/doc/latex/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/Master/texmf-dist/doc/latex/tikz-ext/tikz-ext-manual-en-library-paths.ortho.tex b/Master/texmf-dist/doc/latex/tikz-ext/tikz-ext-manual-en-library-paths.ortho.tex
index a46f6be0234..ba78f47dcbe 100644
--- a/Master/texmf-dist/doc/latex/tikz-ext/tikz-ext-manual-en-library-paths.ortho.tex
+++ b/Master/texmf-dist/doc/latex/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/Master/texmf-dist/doc/latex/tikz-ext/tikz-ext-manual-en-main-body.tex b/Master/texmf-dist/doc/latex/tikz-ext/tikz-ext-manual-en-main-body.tex
index 1185cdb6d71..fd071e009ea 100644
--- a/Master/texmf-dist/doc/latex/tikz-ext/tikz-ext-manual-en-main-body.tex
+++ b/Master/texmf-dist/doc/latex/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/Master/texmf-dist/doc/latex/tikz-ext/tikz-ext-manual.bib b/Master/texmf-dist/doc/latex/tikz-ext/tikz-ext-manual.bib
index 7bb85bf7b24..5a13e91d41b 100644
--- a/Master/texmf-dist/doc/latex/tikz-ext/tikz-ext-manual.bib
+++ b/Master/texmf-dist/doc/latex/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/Master/texmf-dist/doc/latex/tikz-ext/tikz-ext-manual.pdf b/Master/texmf-dist/doc/latex/tikz-ext/tikz-ext-manual.pdf
index afeef21a22c..f4a31a8c6ad 100644
--- a/Master/texmf-dist/doc/latex/tikz-ext/tikz-ext-manual.pdf
+++ b/Master/texmf-dist/doc/latex/tikz-ext/tikz-ext-manual.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/tikz-ext/tikz-ext-manual.tex b/Master/texmf-dist/doc/latex/tikz-ext/tikz-ext-manual.tex
index 1f2400847a8..253944ca7db 100644
--- a/Master/texmf-dist/doc/latex/tikz-ext/tikz-ext-manual.tex
+++ b/Master/texmf-dist/doc/latex/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/Master/texmf-dist/tex/latex/tikz-ext/pgfcalendar-ext.code.tex b/Master/texmf-dist/tex/latex/tikz-ext/pgfcalendar-ext.code.tex
index b32ac9a3a68..90b42a0011d 100644
--- a/Master/texmf-dist/tex/latex/tikz-ext/pgfcalendar-ext.code.tex
+++ b/Master/texmf-dist/tex/latex/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/Master/texmf-dist/tex/latex/tikz-ext/tikzlibraryext.node-families.code.tex b/Master/texmf-dist/tex/latex/tikz-ext/tikzlibraryext.node-families.code.tex
index 699170d178d..c0ecda441ac 100644
--- a/Master/texmf-dist/tex/latex/tikz-ext/tikzlibraryext.node-families.code.tex
+++ b/Master/texmf-dist/tex/latex/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/Master/texmf-dist/tex/latex/tikz-ext/tikzlibraryext.paths.arcto.code.tex b/Master/texmf-dist/tex/latex/tikz-ext/tikzlibraryext.paths.arcto.code.tex
index 213fc1b74aa..c75f31b60a6 100644
--- a/Master/texmf-dist/tex/latex/tikz-ext/tikzlibraryext.paths.arcto.code.tex
+++ b/Master/texmf-dist/tex/latex/tikz-ext/tikzlibraryext.paths.arcto.code.tex
@@ -55,7 +55,7 @@
\ifpgfmathunitsdeclared
\pgfmathsetmacro\tikz@arc@y{\pgfkeysvalueof{/tikz/y radius}}%
\ifpgfmathunitsdeclared
- \pgfpatharcto{\tikz@arc@x pt}{\tikz@arc@y pt}
+ \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
@@ -72,7 +72,7 @@
\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}
+ \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
@@ -101,4 +101,226 @@
\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
+\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/Master/texmf-dist/tex/latex/tikz-ext/tikzlibraryext.paths.ortho.code.tex b/Master/texmf-dist/tex/latex/tikz-ext/tikzlibraryext.paths.ortho.code.tex
index e7a3b02ed7d..9740c39cc21 100644
--- a/Master/texmf-dist/tex/latex/tikz-ext/tikzlibraryext.paths.ortho.code.tex
+++ b/Master/texmf-dist/tex/latex/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