texlive[64670] Master/texmf-dist: tikz-ext (10oct22)

commits+karl at tug.org commits+karl at tug.org
Mon Oct 10 22:21:28 CEST 2022


Revision: 64670
          http://tug.org/svn/texlive?view=revision&revision=64670
Author:   karl
Date:     2022-10-10 22:21:28 +0200 (Mon, 10 Oct 2022)
Log Message:
-----------
tikz-ext (10oct22)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/latex/tikz-ext/README.md
    trunk/Master/texmf-dist/doc/latex/tikz-ext/tikz-ext-manual-en-calendar.tex
    trunk/Master/texmf-dist/doc/latex/tikz-ext/tikz-ext-manual-en-library-paths.ortho.tex
    trunk/Master/texmf-dist/doc/latex/tikz-ext/tikz-ext-manual-en-main-body.tex
    trunk/Master/texmf-dist/doc/latex/tikz-ext/tikz-ext-manual.bib
    trunk/Master/texmf-dist/doc/latex/tikz-ext/tikz-ext-manual.pdf
    trunk/Master/texmf-dist/doc/latex/tikz-ext/tikz-ext-manual.tex
    trunk/Master/texmf-dist/tex/latex/tikz-ext/pgfcalendar-ext.code.tex
    trunk/Master/texmf-dist/tex/latex/tikz-ext/tikzlibraryext.node-families.code.tex
    trunk/Master/texmf-dist/tex/latex/tikz-ext/tikzlibraryext.paths.arcto.code.tex
    trunk/Master/texmf-dist/tex/latex/tikz-ext/tikzlibraryext.paths.ortho.code.tex

Modified: trunk/Master/texmf-dist/doc/latex/tikz-ext/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tikz-ext/README.md	2022-10-09 23:50:16 UTC (rev 64669)
+++ trunk/Master/texmf-dist/doc/latex/tikz-ext/README.md	2022-10-10 20:21:28 UTC (rev 64670)
@@ -30,7 +30,7 @@
    * `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

Modified: trunk/Master/texmf-dist/doc/latex/tikz-ext/tikz-ext-manual-en-calendar.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tikz-ext/tikz-ext-manual-en-calendar.tex	2022-10-09 23:50:16 UTC (rev 64669)
+++ trunk/Master/texmf-dist/doc/latex/tikz-ext/tikz-ext-manual-en-calendar.tex	2022-10-10 20:21:28 UTC (rev 64670)
@@ -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 @@
     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})

Modified: trunk/Master/texmf-dist/doc/latex/tikz-ext/tikz-ext-manual-en-library-paths.ortho.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tikz-ext/tikz-ext-manual-en-library-paths.ortho.tex	2022-10-09 23:50:16 UTC (rev 64669)
+++ trunk/Master/texmf-dist/doc/latex/tikz-ext/tikz-ext-manual-en-library-paths.ortho.tex	2022-10-10 20:21:28 UTC (rev 64670)
@@ -33,7 +33,7 @@
     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 @@
 \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 @@
 \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 @@
   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,7 +98,7 @@
   \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}
 
@@ -105,56 +105,52 @@
 \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.
+\begin{key}{/tikz/ortho/udlr distance=\meta{length}}
+  Sets all the previous distances to the same value \meta{length}.
 \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|.
-\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 @@
 
 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}

Modified: trunk/Master/texmf-dist/doc/latex/tikz-ext/tikz-ext-manual-en-main-body.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tikz-ext/tikz-ext-manual-en-main-body.tex	2022-10-09 23:50:16 UTC (rev 64669)
+++ trunk/Master/texmf-dist/doc/latex/tikz-ext/tikz-ext-manual-en-main-body.tex	2022-10-10 20:21:28 UTC (rev 64670)
@@ -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 @@
 \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 @@
 \end{multicols}
 \printindex
 
+\makeatletter
+\def\url#1{%
+  \in@{/16595}{#1}%
+  \ifin@
+    \hyper at linkurl{\expandafter\Hurl\expandafter{\strip at url#1\relax}}{#1}%
+  \else
+    \hyper at linkurl{\Hurl{#1}}{#1}%
+  \fi
+}
+\def\strip at url#1/16595\relax{#1}
+\makeatother
 \printbibliography[heading=bibintoc]
 %\typeout{Examples: \the\codeexamplecount}%
 \end{document}
\ No newline at end of file

Modified: trunk/Master/texmf-dist/doc/latex/tikz-ext/tikz-ext-manual.bib
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tikz-ext/tikz-ext-manual.bib	2022-10-09 23:50:16 UTC (rev 64669)
+++ trunk/Master/texmf-dist/doc/latex/tikz-ext/tikz-ext-manual.bib	2022-10-10 20:21:28 UTC (rev 64670)
@@ -296,4 +296,27 @@
   year       = {2013},
 }
 
+'
+ at 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},
+}
+
+ at 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;}

Modified: trunk/Master/texmf-dist/doc/latex/tikz-ext/tikz-ext-manual.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/tikz-ext/tikz-ext-manual.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tikz-ext/tikz-ext-manual.tex	2022-10-09 23:50:16 UTC (rev 64669)
+++ trunk/Master/texmf-dist/doc/latex/tikz-ext/tikz-ext-manual.tex	2022-10-10 20:21:28 UTC (rev 64670)
@@ -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}

Modified: trunk/Master/texmf-dist/tex/latex/tikz-ext/pgfcalendar-ext.code.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tikz-ext/pgfcalendar-ext.code.tex	2022-10-09 23:50:16 UTC (rev 64669)
+++ trunk/Master/texmf-dist/tex/latex/tikz-ext/pgfcalendar-ext.code.tex	2022-10-10 20:21:28 UTC (rev 64670)
@@ -26,6 +26,24 @@
         \expandafter
       \endgroup\pgf at cal@temp
     },
+    relative/.code 2 args={%
+      \begingroup
+        \pgfutil at tempcnta=\pgfcalendarifdatejulian\relax
+        \advance\pgfutil at tempcnta by #1\relax
+        \pgfcalendarjuliantodate{\pgfutil at tempcnta}{\pgfcalendarifdateyear}{\pgfcalendarifdatemonth}{\pgfcalendarifdateday}%
+        \edef\pgfcalendarifdatejulian{\the\pgfutil at tempcnta}%
+        \pgfcalendarjuliantoweekday\pgfutil at tempcnta\pgfutil at tempcntb
+        \edef\pgfcalendarifdateweekday{\the\pgfutil at tempcntb}%
+        \pgfcalendarjulianyeartoweek\pgfutil at tempcnta\pgfcalendarifdateyear\pgfutil at tempcntb
+        \edef\pgfcalendarifdateweek{\the\pgfutil at tempcntb}%
+        \pgfcalendar at launch@ifdate{#2}{%
+          \def\pgf at cal@temp{\pgfcalendarmatchestrue}%
+        }{%
+          \let\pgf at cal@temp\pgfutil at empty
+        }%
+      \expandafter
+    \endgroup\pgf at cal@temp
+    },
     Jan/.code={\ifnum\pgfcalendarifdatemonth=1 \expandafter\pgfcalendarmatchestrue\fi},Jan/.value forbidden,
     Feb/.code={\ifnum\pgfcalendarifdatemonth=2 \expandafter\pgfcalendarmatchestrue\fi},Feb/.value forbidden,
     Mar/.code={\ifnum\pgfcalendarifdatemonth=3 \expandafter\pgfcalendarmatchestrue\fi},Mar/.value forbidden,
@@ -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 at tempcnta
-      \pgfcalendardatetojulian{#2}\pgfutil at tempcntb
-      \advance\pgfutil at tempcntb by -\pgfutil at tempcnta
-      \ifnum\pgfutil at tempcntb#3#4\relax
-        \pgfcalendarmatchestrue
-      \fi},
-    weekday before or same/.code args={#1and#2}{%
-      \pgfcalendarjuliantoweekday{#1}\pgfutil at tempcnta
-      \pgfcalendarjuliantoweekday{#2}\pgfutil at tempcntb
-      \ifnum\pgfutil at tempcntb<\pgfutil at tempcnta
-        \pgfcalendarmatchestrue
-      \fi
-    },
     leap year/.code={%
         \pgfutil at tempcnta=#1\relax
         \divide\pgfutil at tempcnta4
@@ -71,6 +75,7 @@
             \fi
         \fi},
     leap year/.default=\pgfcalendarifdateyear,
+    between days/.value required,
     between days/.code args={#1and#2}{%
         \pgfutil at tempcnta=#1\relax
         \ifnum\pgfcalendarifdateday<\pgfutil at tempcnta\else
@@ -135,8 +140,31 @@
           \pgfcalendar at launch@ifdate{\pgfkeyscurrentname={#1}}%
           {\let\pgf at cal@temp\pgfutil at empty}{\def\pgf at cal@temp{\pgfcalendarmatchesfalse}}
         \expandafter\endgroup\pgf at cal@temp
-      }%
-}
+      },%
+    calendar week of month/.default=1,
+    calendar week of month'/.default=1,
+    calendar week of month/.code={%
+      \begingroup
+        \pgfutil at tempcnta=\pgfcalendarifdateday\relax
+        \advance\pgfutil at tempcnta by 5
+        \advance\pgfutil at tempcnta by -\pgfcalendarifdateweekday\relax
+        \divide\pgfutil at tempcnta by 7
+        \advance\pgfutil at tempcnta by -#1\relax
+        \expandafter\endgroup\expandafter
+      \ifnum\the\pgfutil at tempcnta=-1
+        \pgfcalendarmatchestrue
+      \fi},
+    calendar week of month'/.code={%
+      \begingroup
+        \pgfcalendar at getlastYMX\pgfcalendarifdateyear\pgfcalendarifdatemonth\pgfutil at tempcnta
+        \advance\pgfutil at tempcnta by -\pgfcalendarifdateday\relax
+        \edef\pgfcalendarifdateday{\the\pgfutil at tempcnta}%
+        \pgfutil at tempcnta=-\pgfcalendarifdateweekday\relax
+        \advance\pgfutil at tempcnta by 5
+        \edef\pgfcalendarifdateweekday{\the\pgfutil at tempcnta}%
+        \let\pgf at cal@temp\pgfutil at empty
+        \pgfcalendar at launch@ifdate{calendar week of month={#1}}{\def\pgf at cal@temp{\pgfcalendarmatchestrue}}{}%
+      \expandafter\endgroup\pgf at cal@temp}}
 
 \def\pgfcalendar at ifdate@first#1#2:#3\pgf at stop{%
     \pgfqkeys{/pgf/calendar}{and={#3, week of month#1={#2}}}}
@@ -178,9 +206,8 @@
         \advance\pgfutil at tempcnta by 7\relax
       \fi
       % setup macro for year with {Julian number for day of first week}{weekday of -01-01}
-      \edef\pgf at cal@temp{\def\expandafter\noexpand\csname pgfcalendar at week@#1\endcsname
-        {{\the\pgfutil at tempcnta}{\the\pgfutil at tempcntb}}}%
-      \expandafter\endgroup\pgf at cal@temp
+      \expandafter\xdef\csname pgfcalendar at week@#1\endcsname{{\the\pgfutil at tempcnta}{\the\pgfutil at 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 at cal@temp{\noexpand\pgfcalendarjulianyeartoweek@#1{\the#3}#3\noexpand\iffalse}%
+        \edef\pgf at cal@temp{\noexpand\pgfcalendarjulianyeartoweek@{#1}{\the#3}{#3}\noexpand\iffalse}%
         \pgf at cal@temp
       }{% yeah, it's weird
         \divide#3 by 7
         \advance#3 by 1        
-      }
+      }%
     }{%
       \divide#3 by 7
       \advance#3 by 1
@@ -315,6 +342,22 @@
   \let\pgfcalendarifdateweek=\pgfcalendarcurrentweek
   \pgfcalendar at launch@ifdate%
 }
+%
+% Overwritigin original \pgfcalendarifdate
+%
+\def\pgfcalendarifdate#1#2#3#4{%
+  \pgfcalendardatetojulian{#1}{\pgfutil at tempcnta}%
+  \pgfcalendarjuliantodate{\pgfutil at tempcnta}
+    {\pgfcalendarifdateyear}{\pgfcalendarifdatemonth}{\pgfcalendarifdateday}%
+  \edef\pgfcalendarifdatejulian{\the\pgfutil at tempcnta}%
+  % Compute info about date
+  \pgfcalendarjuliantoweekday{\pgfutil at tempcnta}{\pgfutil at tempcntb}%
+  \edef\pgfcalendarifdateweekday{\the\pgfutil at tempcntb}%
+  \pgfcalendarjulianyeartoweek{\pgfcalendarifdatejulian}{\pgfcalendarifdateyear}{\pgfutil at tempcntb}%
+  \edef\pgfcalendarifdateweek{\ifnum\pgfutil at tempcntb<10 0\fi\the\pgfutil at tempcntb}%
+  %
+  \pgfcalendar at launch@ifdate{#2}{#3}{#4}%
+}
 
 \pgfqkeys{/pgf/calendar/week}{.value required,.code=\ifnum#1=\pgfcalendarifdateweek\relax\expandafter\pgfcalendarmatchestrue\fi}
 

Modified: trunk/Master/texmf-dist/tex/latex/tikz-ext/tikzlibraryext.node-families.code.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tikz-ext/tikzlibraryext.node-families.code.tex	2022-10-09 23:50:16 UTC (rev 64669)
+++ trunk/Master/texmf-dist/tex/latex/tikz-ext/tikzlibraryext.node-families.code.tex	2022-10-10 20:21:28 UTC (rev 64670)
@@ -290,7 +290,7 @@
       \ifdim\wd\pgfnodeparttextbox<\pgfutil at tempdima
         \pgfutil at tempdimb=\pgfutil at tempdima
         \advance\pgfutil at tempdimb-\wd\pgfnodeparttextbox
-        \setbox\pgfnodeparttextbox=\hbox to \pgfutil at tempdima{\tikzext at nf@align at action\pgfutil at tempdimb\box\pgfnodeparttextbox}%
+        \setbox\pgfnodeparttextbox=\hbox to \pgfutil at tempdima{\tikzext at nf@align at action\pgfutil at tempdimb\unhbox\pgfnodeparttextbox}%
       \fi
       \tikzext at nf@getandset{\the\dp\pgfnodeparttextbox}{text depth}{\pgfutil at tempdima}%
       \ifdim\dp\pgfnodeparttextbox<\pgfutil at tempdima

Modified: trunk/Master/texmf-dist/tex/latex/tikz-ext/tikzlibraryext.paths.arcto.code.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tikz-ext/tikzlibraryext.paths.arcto.code.tex	2022-10-09 23:50:16 UTC (rev 64669)
+++ trunk/Master/texmf-dist/tex/latex/tikz-ext/tikzlibraryext.paths.arcto.code.tex	2022-10-10 20:21:28 UTC (rev 64670)
@@ -55,7 +55,7 @@
     \ifpgfmathunitsdeclared
       \pgfmathsetmacro\tikz at arc@y{\pgfkeysvalueof{/tikz/y radius}}%
       \ifpgfmathunitsdeclared
-        \pgfpatharcto{\tikz at arc@x pt}{\tikz at arc@y pt}
+        \tikzext at pgfpatharcto{\tikz at arc@x pt}{\tikz at arc@y pt}
                      {\pgfkeysvalueof{/tikz/arc to/rotate}}{\pgfkeysvalueof{/tikz/arc to/large flag}}
                      {\pgfkeysvalueof{/tikz/arc to/ccw flag}}{#1}%
       \else
@@ -72,7 +72,7 @@
         \pgf at process{\pgfpointxy{0}{\tikz at arc@y}}%
         \pgfmathveclen@{\pgf at sys@tonumber\pgf at x}{\pgf at sys@tonumber\pgf at y}%
         \let\tikz at arc@y\pgfmathresult
-        \pgfpatharcto{+\tikz at arc@x pt}{+\tikz at arc@y pt}
+        \tikzext at pgfpatharcto{+\tikz at arc@x pt}{+\tikz at arc@y pt}
                      {\pgfkeysvalueof{/tikz/arc to/rotate}}{\pgfkeysvalueof{/tikz/arc to/large flag}}
                      {\pgfkeysvalueof{/tikz/arc to/ccw flag}}{#1}%
       \fi
@@ -101,4 +101,226 @@
 \def\pgfutil at secondoffour#1#2#3#4{#2}
 \def\pgfutil at thirdoffour#1#2#3#4{#3}
 \def\pgfutil at fourthoffour#1#2#3#4{#4}
-\def\pgfutil at firstgobblerest#1#2\relax{#1}
\ No newline at end of file
+\def\pgfutil at firstgobblerest#1#2\relax{#1}
+
+% original from pgfcorepathconstruct.code.tex
+\def\tikzext at pgfpatharcto#1#2#3#4#5#6{%
+  {%
+    % The following code is based on the transformation described in svg
+    % 1.1 specification Section F.6.5
+    %
+    % Step 1: store the simple parameters (xa=x1 since TeX does not
+    % allow numbers in names)
+    %
+    \pgfmathsetmacro\pgf at arcto@rx{abs(#1)}%
+    \pgfmathsetmacro\pgf at arcto@ry{abs(#2)}%
+    \ifdim\pgf at arcto@rx pt=0pt% special rule: zero radius=straight line
+      \gdef\pgf at marshal{\pgfpathlineto{#6}}%
+    \else
+    \ifdim\pgf at arcto@ry pt=0pt% special rule: zero radius=straight line
+      \gdef\pgf at marshal{\pgfpathlineto{#6}}%
+    \else
+    \pgfmathsetmacro\pgf at arcto@phi{#3}%
+    \pgfmathsetmacro\pgf at arcto@fA{#4}%
+    \ifdim\pgf at arcto@fA pt=0pt
+    \else
+      \pgfmathsetmacro\pgf at arcto@fA{1.0}%  Special rule: every non-zero value is 1.
+    \fi
+    \pgfmathsetmacro\pgf at arcto@fS{#5}%
+    \ifdim\pgf at arcto@fS pt=0pt
+    \else
+      \pgfmathsetmacro\pgf at arcto@fS{1.0}%  Special rule: every non-zero value is 1.
+    \fi
+    \pgf at process{#6}%
+    \edef\pgf at arcto@xb{\the\pgf at x}%
+    \edef\pgf at arcto@yb{\the\pgf at y}%
+    %
+    % Step 2: x1,y1 is more complicated to compute: It is given by lastx
+    % and lasty, but these are transformed coordinates, we need the
+    % untransformed ones. So, we inverse the transformation (arghh...)
+    %
+    \pgftransforminvert%
+    \pgf at process{\pgfpointtransformed{\pgfqpoint{\pgf at path@lastx}{\pgf at path@lasty}}}%
+    \edef\pgf at arcto@xa{\the\pgf at x}%
+    \edef\pgf at arcto@ya{\the\pgf at y}%
+    \edef\pgf at temp@a{\pgf at arcto@xa,\pgf at arcto@ya}%
+    \edef\pgf at temp@b{\pgf at arcto@xb,\pgf at arcto@yb}%
+    \ifx\pgf at temp@a\pgf at temp@b% special rule: skip!
+      \global\let\pgf at marshal\pgfutil at empty
+    \else
+    %
+    % Ok, now we got all the parameters setup. Now comes the
+    % computation...
+    %
+    %
+    % Step 3: Start with a new coordinate system and rotate everything
+    % by the negated phi.
+    %
+    \pgftransformreset
+    \pgftransformrotate{-\pgf at arcto@phi}%
+    % Ok, using \pgfpointtransformed we now get transformed points...
+    %
+    % Step 4: Compute x1' and y1' (xaprime and yaprime)
+    %
+    \pgf at process{%
+      \pgfpointtransformed{\pgfpointscale{.5}{\pgfpointdiff
+          {\pgfqpoint{\pgf at arcto@xb}{\pgf at arcto@yb}}
+          {\pgfqpoint{\pgf at arcto@xa}{\pgf at arcto@ya}}%
+        }%
+      }%
+    }%
+    \edef\pgf at arcto@xaprime{\pgf at sys@tonumber\pgf at x}%
+    \edef\pgf at arcto@yaprime{\pgf at sys@tonumber\pgf at y}%
+    %
+    % Compute Lambda
+    %
+    \pgfmathsetmacro\pgf at arcto@frac at x{\pgf at arcto@xaprime/\pgf at arcto@rx}%
+    \pgfmathsetmacro\pgf at arcto@frac at y{\pgf at arcto@yaprime/\pgf at arcto@ry}%
+    \pgfmathsetmacro\pgf at arcto@lambda{
+      \pgf at arcto@frac at x*\pgf at arcto@frac at x+\pgf at arcto@frac at y*\pgf at arcto@frac at y
+    }%
+    \ifdim\pgf at arcto@lambda pt>1pt
+      \pgfmathsetmacro\pgf at arcto@sqrt at lambda{sqrt(\pgf at arcto@lambda)}%
+      \pgfmathsetmacro\pgf at arcto@rx{\pgf at arcto@sqrt at lambda*\pgf at arcto@rx}%
+      \pgfmathsetmacro\pgf at arcto@ry{\pgf at arcto@sqrt at lambda*\pgf at arcto@ry}%
+    \fi
+    %
+    % Do some scaling
+    %
+    \pgfmathsetmacro\pgf at arcto@xaprime at abs{abs(\pgf at arcto@xaprime)}%
+    \pgfmathsetmacro\pgf at arcto@yaprime at abs{abs(\pgf at arcto@yaprime)}%
+    \pgfmathmax@{\pgf at arcto@rx,\pgf at arcto@ry,\pgf at arcto@xaprime at abs,\pgf at arcto@yaprime at abs}%
+    \pgfmathsetmacro\pgf at arcto@scaling{20/\pgfmathresult}%
+    \pgfmathsetmacro\pgf at arcto@rx at scaled{\pgf at arcto@scaling*\pgf at arcto@rx}%
+    \pgfmathsetmacro\pgf at arcto@ry at scaled{\pgf at arcto@scaling*\pgf at arcto@ry}%
+    \pgfmathsetmacro\pgf at arcto@xaprime at scaled{\pgf at arcto@scaling*\pgf at arcto@xaprime}%
+    \pgfmathsetmacro\pgf at arcto@yaprime at scaled{\pgf at arcto@scaling*\pgf at arcto@yaprime}%
+    %
+    % Step 5: Now comes the messy computation of c1' and c2'.
+    %
+    \ifdim\pgf at arcto@rx pt>\pgf at arcto@ry pt
+      \pgfmathsetmacro\pgf at arcto@rx at over@ry{\pgf at arcto@rx/\pgf at arcto@ry}%
+      \pgfmathsetmacro\pgf at arcto@ry at over@rx{\pgf at arcto@ry/\pgf at arcto@rx}%
+      \pgfmathsetmacro\pgf at arcto@temp{\pgf at arcto@ry at over@rx*\pgf at arcto@xaprime at scaled}%
+      \pgfmathsetmacro\pgf at arcto@numerator{
+        \pgf at arcto@ry at scaled*\pgf at arcto@ry at scaled-
+        \pgf at arcto@yaprime at scaled*\pgf at arcto@yaprime at scaled-
+        \pgf at arcto@temp*\pgf at arcto@temp
+      }%
+      \pgfmathsetmacro\pgf at arcto@denominator{
+        \pgf at arcto@yaprime at scaled*\pgf at arcto@yaprime at scaled+
+        \pgf at arcto@temp*\pgf at arcto@temp
+      }%
+    \else
+      \pgfmathsetmacro\pgf at arcto@rx at over@ry{\pgf at arcto@rx/\pgf at arcto@ry}%
+      \pgfmathsetmacro\pgf at arcto@ry at over@rx{\pgf at arcto@ry/\pgf at arcto@rx}%
+      \pgfmathsetmacro\pgf at arcto@temp{\pgf at arcto@rx at over@ry*\pgf at arcto@yaprime at scaled}%
+      \pgfmathsetmacro\pgf at arcto@numerator{
+        \pgf at arcto@rx at scaled*\pgf at arcto@rx at scaled-
+        \pgf at arcto@xaprime at scaled*\pgf at arcto@xaprime at scaled-
+        \pgf at arcto@temp*\pgf at arcto@temp
+      }%
+      \pgfmathsetmacro\pgf at arcto@denominator{
+        \pgf at arcto@xaprime at scaled*\pgf at arcto@xaprime at scaled+
+        \pgf at arcto@temp*\pgf at arcto@temp
+      }%
+    \fi
+    \pgfmathsetmacro\pgf at arcto@frac{
+      \pgf at arcto@numerator/\pgf at arcto@denominator
+    }%
+    \ifdim\pgf at arcto@frac pt<0pt
+      \pgfmathsetmacro\pgf at arcto@factor{0}%
+    \else
+      \pgfmathsetmacro\pgf at arcto@factor{sqrt(\pgf at arcto@frac)}%
+    \fi
+    \ifx\pgf at arcto@fA\pgf at arcto@fS
+      \pgfmathsetmacro\pgf at arcto@factor{-\pgf at arcto@factor}%
+    \fi
+    \pgfmathsetmacro\pgf at arcto@cxprime{
+      \pgf at arcto@factor*\pgf at arcto@rx at over@ry*\pgf at arcto@yaprime
+    }%
+    \pgfmathsetmacro\pgf at arcto@cyprime{
+      -\pgf at arcto@factor*\pgf at arcto@ry at over@rx*\pgf at arcto@xaprime
+    }%
+    %
+    % Step 6: Ok, now compute cx,cy
+    %
+    \pgftransformreset
+    \pgftransformrotate{\pgf at arcto@phi}%
+    \pgf at process{%
+      \pgfpointtransformed{\pgfqpoint{\pgf at arcto@cxprime pt}{\pgf at arcto@cyprime pt}}%
+    }%
+    \edef\pgf at arcto@temp{\noexpand\pgfqpoint{\the\pgf at x}{\the\pgf at y}}%
+    \pgf at process{\pgfpointadd{\pgf at arcto@temp}{%
+        \pgfpointscale{.5}{%
+          \pgfpointadd
+          {\pgfqpoint{\pgf at arcto@xa}{\pgf at arcto@ya}}
+          {\pgfqpoint{\pgf at arcto@xb}{\pgf at arcto@yb}}}%
+      }%
+    }%
+    \edef\pgf at arcto@cx{\the\pgf at x}%
+    \edef\pgf at arcto@cy{\the\pgf at y}%
+    %
+    % Step 7: Compute start angle:
+    %
+    \pgfmathsetmacro\pgf at arcto@vec at x{(\pgf at arcto@xaprime-\pgf at arcto@cxprime)/\pgf at arcto@rx}%
+    \pgfmathsetmacro\pgf at arcto@vec at y{(\pgf at arcto@yaprime-\pgf at arcto@cyprime)/\pgf at arcto@ry}%
+    \pgfmathsetmacro\pgf at arcto@denominator{veclen(\pgf at arcto@vec at x,\pgf at arcto@vec at y)}%
+    \pgfmathsetmacro\pgf at arcto@frac{\pgf at arcto@vec at x/\pgf at arcto@denominator}%
+    \pgfmathsetmacro\pgf at arcto@theta at start{acos(\pgf at arcto@frac)}%
+    \ifdim\pgf at arcto@vec at y pt<0pt
+      \pgfmathsetmacro\pgf at arcto@theta at start{-\pgf at arcto@theta at start}%
+    \fi
+    %
+    % Step 8: Compute end angle:
+    %
+    \pgfmathsetmacro\pgf at arcto@vec at x{(-\pgf at arcto@xaprime-\pgf at arcto@cxprime)/\pgf at arcto@rx}%
+    \pgfmathsetmacro\pgf at arcto@vec at y{(-\pgf at arcto@yaprime-\pgf at arcto@cyprime)/\pgf at arcto@ry}%
+    \pgfmathsetmacro\pgf at arcto@denominator{veclen(\pgf at arcto@vec at x,\pgf at arcto@vec at y)}%
+    \pgfmathsetmacro\pgf at arcto@frac{\pgf at arcto@vec at x/\pgf at arcto@denominator}%
+    \pgfmathsetmacro\pgf at arcto@theta at end{acos(\pgf at arcto@frac)}%
+    \ifdim\pgf at arcto@vec at y pt<0pt
+      \pgfmathsetmacro\pgf at arcto@theta at end{-\pgf at arcto@theta at end}%
+    \fi
+    \pgfmathsetmacro\pgf at arcto@delta at theta{abs(\pgf at arcto@theta at start-\pgf at arcto@theta at end)}%
+    \ifdim\pgf at arcto@fA pt=0pt
+      \ifdim\pgf at arcto@delta at theta pt>180pt
+        % Ok, we need to adjust the angle!
+        \ifdim\pgf at arcto@theta at end pt>\pgf at arcto@theta at start pt
+          \pgfmathsetmacro\pgf at arcto@theta at end{\pgf at arcto@theta at end-360}%
+        \else
+          \pgfmathsetmacro\pgf at arcto@theta at end{\pgf at arcto@theta at end+360}%
+        \fi
+      \fi
+    \else
+      \ifdim\pgf at arcto@delta at theta pt<180pt
+        % Ok, we need to adjust the angle!
+        \ifdim\pgf at arcto@theta at end pt>\pgf at arcto@theta at start pt
+          \pgfmathsetmacro\pgf at arcto@theta at end{\pgf at arcto@theta at end-360}%
+        \else
+          \pgfmathsetmacro\pgf at arcto@theta at end{\pgf at arcto@theta at end+360}%
+        \fi
+      \fi
+    \fi
+    % Qrr:
+    % make sure direction is properly followed
+    \ifdim\pgf at arcto@fS pt=1pt
+      % counter clockwise
+      \ifdim\pgf at arcto@theta at end pt<\pgf at arcto@theta at start path
+        \pgfmathsetmacro\pgf at arcto@theta at end{\pgf at arcto@theta at end+360}%
+      \fi
+    \else
+      % clockwise
+      \ifdim\pgf at arcto@theta at end pt>\pgf at arcto@theta at start path
+        \pgfmathsetmacro\pgf at arcto@theta at end{\pgf at arcto@theta at end-360}%
+      \fi
+    \fi
+    \xdef\pgf at marshal{\noexpand
+      \pgfpatharcaxes{\pgf at arcto@theta at start}{\pgf at arcto@theta at end}
+      {\noexpand\pgfpointpolar{\pgf at arcto@phi}{\pgf at arcto@rx}}
+      {\noexpand\pgfpointpolar{\pgf at arcto@phi+90}{\pgf at arcto@ry}}%
+    }%
+    \fi\fi\fi
+  }%
+  \pgf at marshal
+}
\ No newline at end of file

Modified: trunk/Master/texmf-dist/tex/latex/tikz-ext/tikzlibraryext.paths.ortho.code.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tikz-ext/tikzlibraryext.paths.ortho.code.tex	2022-10-09 23:50:16 UTC (rev 64669)
+++ trunk/Master/texmf-dist/tex/latex/tikz-ext/tikzlibraryext.paths.ortho.code.tex	2022-10-10 20:21:28 UTC (rev 64670)
@@ -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 at tikz@hvvh at 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 at tikz@hvvh at fromcenter,%
+  ortho/spacing/.code=% spacing = 0 means that the middle part are the pos-itions 0 to 1,
   %                                           the first part is -1 to 0, the last part is to 2
     \pgfmathint{#1}\let\tikzext at tikz@hvvh at timing@parts\pgfmathresult% in case they are calculations to be done
     \ifcase\tikzext at tikz@hvvh at timing@parts\relax
@@ -76,20 +75,20 @@
       \let\tikzext at tikz@hvvh at timing@subtr\pgfmathresult
       \pgfmathsetmacro\tikzext at tikz@hvvh at timing@factor{1+2*\pgfmathresult}%
     \fi,%
-  hvvh/ratio/.code=\pgfmathsetmacro\tikzext at tikz@hvvh at ratio{#1},%
+  ortho/ratio/.code=\pgfmathsetmacro\tikzext at tikz@hvvh at ratio{#1},%
   % TODO: not possible to do distance in TikZ coordinate system
-  hvvh/distance/.code=\pgfmathsetlength\tikzext at tikz@hvvh at distance{#1}\let\tikzext at tikz@hvvh at ratio\pgfutil at 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 at tikz@hvvh at distance{#1}\let\tikzext at tikz@hvvh at ratio\pgfutil at empty,%
+  ortho/udlr distance/.style={%
+    /tikz/ortho/ud distance={#1},%
+    /tikz/ortho/du distance={#1},%
+    /tikz/ortho/lr distance={#1},%
+    /tikz/ortho/rl distance={#1}},%
+  ortho/ud distance/.initial=+.5cm,%
+  ortho/du distance/.initial=+.5cm,%
+  ortho/lr distance/.initial=+.5cm,%
+  ortho/rl distance/.initial=+.5cm,%
+  ortho/ratio=.5,% default value
+  ortho/spacing=4,% default value
 }%
 
 %BEGIN_FOLD Timer
@@ -207,7 +206,7 @@
   \tikz at make@last at position{#1}%
   \tikz at flush@moveto at toward{\pgfqpoint{\tikz at lastx}{\pgf at yc}}\pgf at xc\pgf at yc
   \begingroup
-    \pgfqkeys{/tikz/hvvh}{/tikz/style/.expand once=\tikz at hvvh@currentoption}%
+    \pgfqkeys{/tikz/ortho}{/tikz/style/.expand once=\tikz at hvvh@currentoption}%
     \iftikz at shapeborder
       \pgf at process{\pgfpointshapeborder{\tikz at shapeborder@name}{\pgfqpoint{\pgf at xb}{\tikz at lasty}}}%
       \iftikzext at tikz@hvvh at fromcenter
@@ -277,7 +276,7 @@
   \tikz at make@last at position{#1}%
   \tikz at flush@moveto at toward{\pgfqpoint{\pgf at xc}{\tikz at lasty}}\pgf at xc\pgf at yc
   \begingroup
-    \pgfqkeys{/tikz/hvvh}{/tikz/style/.expand once=\tikz at hvvh@currentoption}%
+    \pgfqkeys{/tikz/ortho}{/tikz/style/.expand once=\tikz at hvvh@currentoption}%
     \iftikz at shapeborder
       \pgf at process{\pgfpointshapeborder{\tikz at shapeborder@name}{\pgfqpoint{\tikz at lastx}{\pgf at yb}}}%
       \iftikzext at tikz@hvvh at fromcenter
@@ -348,8 +347,8 @@
   \tikz at flush@moveto at toward{\pgfqpoint{\tikz at lastx}{\tikz at lasty}}\pgf at xc\pgf at yc
   \tikz at make@last at position{#1}%
   \begingroup
-    \pgfqkeys{/tikz/udlr}{/tikz/style/.expand once=\tikz at hvvh@currentoption}%
-    \pgfmathsetlength\tikzext at tikz@udlr at distance{\pgfkeysvalueof{/tikz/udlr/ud distance}}%
+    \pgfqkeys{/tikz/ortho}{/tikz/style/.expand once=\tikz at hvvh@currentoption}%
+    \pgfmathsetlength\tikzext at tikz@udlr at distance{\pgfkeysvalueof{/tikz/ortho/ud distance}}%
     \iftikz at shapeborder
       \advance\pgf at y1pt%
       \pgf at process{\pgfpointshapeborder{\tikz at shapeborder@name}{\pgfqpoint{\pgf at x}{\pgf at y}}}%
@@ -399,8 +398,8 @@
   \tikz at flush@moveto at toward{\pgfqpoint{\tikz at lastx}{\tikz at lasty}}\pgf at xc\pgf at yc
   \tikz at make@last at position{#1}%
   \begingroup
-    \pgfqkeys{/tikz/udlr}{/tikz/style/.expand once=\tikz at hvvh@currentoption}%
-    \pgfmathsetlength\tikzext at tikz@udlr at distance{\pgfkeysvalueof{/tikz/udlr/du distance}}%
+    \pgfqkeys{/tikz/ortho}{/tikz/style/.expand once=\tikz at hvvh@currentoption}%
+    \pgfmathsetlength\tikzext at tikz@udlr at distance{\pgfkeysvalueof{/tikz/ortho/du distance}}%
     \iftikz at shapeborder
       \advance\pgf at y-1pt%
       \pgf at process{\pgfpointshapeborder{\tikz at shapeborder@name}{\pgfqpoint{\pgf at x}{\pgf at y}}}%
@@ -450,8 +449,8 @@
   \tikz at flush@moveto at toward{\pgfqpoint{\tikz at lastx}{\tikz at lasty}}\pgf at xc\pgf at yc
   \tikz at make@last at position{#1}%
   \begingroup
-    \pgfqkeys{/tikz/udlr}{/tikz/style/.expand once=\tikz at hvvh@currentoption}%
-    \pgfmathsetlength\tikzext at tikz@udlr at distance{\pgfkeysvalueof{/tikz/udlr/lr distance}}%
+    \pgfqkeys{/tikz/ortho}{/tikz/style/.expand once=\tikz at hvvh@currentoption}%
+    \pgfmathsetlength\tikzext at tikz@udlr at distance{\pgfkeysvalueof{/tikz/ortho/lr distance}}%
     \iftikz at shapeborder
       \advance\pgf at x-1pt%
       \pgf at process{\pgfpointshapeborder{\tikz at shapeborder@name}{\pgfqpoint{\pgf at x}{\pgf at y}}}%
@@ -501,8 +500,8 @@
   \tikz at flush@moveto at toward{\pgfqpoint{\tikz at lastx}{\tikz at lasty}}\pgf at xc\pgf at yc
   \tikz at make@last at position{#1}%
   \begingroup
-    \pgfqkeys{/tikz/udlr}{/tikz/style/.expand once=\tikz at hvvh@currentoption}%
-    \pgfmathsetlength\tikzext at tikz@udlr at distance{\pgfkeysvalueof{/tikz/udlr/rl distance}}%
+    \pgfqkeys{/tikz/udlr}{/tikz/ortho/.expand once=\tikz at hvvh@currentoption}%
+    \pgfmathsetlength\tikzext at tikz@udlr at distance{\pgfkeysvalueof{/tikz/ortho/rl distance}}%
     \iftikz at shapeborder%
       \advance\pgf at x1pt%
       \pgf at process{\pgfpointshapeborder{\tikz at shapeborder@name}{\pgfqpoint{\pgf at x}{\pgf at y}}}%
@@ -546,6 +545,16 @@
 \tikzset{
   node as new start/.is if=tikzext at ortho@preflush,
   node as new start,
+  ortho/install shortcuts/.style={
+    *|/.style={only vertical second={#1}},   *|/.default=,
+    |*/.style={only vertical first={#1}},    |*/.default=,
+    *-/.style={only horizontal second={#1}}, *-/.default=,
+    -*/.style={only horizontal first={#1}},  -*/.default=,
+    |-/.style={to path={|-(\tikztotarget)\tikztonodes}},
+    -|/.style={to path={-|(\tikztotarget)\tikztonodes}},
+    -|-/.style=/tikz/horizontal vertical horizontal,
+    |-|/.style=/tikz/vertical horizontal vertical,
+  },
   horizontal vertical/.style={to path={-| (\tikztotarget) \tikztonodes}},
   vertical horizontal/.style={to path={|- (\tikztotarget) \tikztonodes}},
   horizontal vertical horizontal/.style={to path={-|- (\tikztotarget) \tikztonodes}},
@@ -611,10 +620,11 @@
       \let\tikzext at ortho@anchor\pgfutil at empty
       \let\tikzext at origtotarget\pgfutil at empty
       \tikz at scan@one at point\pgfutil at firstofone(\tikztotarget)\relax
+      \pgf at ya=\pgf at y
       \iftikz at shapeborder
         \let\tikzext at origtotarget\tikztotarget
         \tikz at scan@one at point\pgfutil at firstofone(\tikztostart)\relax
-        \ifdim\pgf at y>\tikz at lasty\relax
+        \ifdim\pgf at ya>\tikz at lasty\relax
           \edef\tikztotarget{\tikztotarget.south}%
           \iftikz at shapeborder\def\tikzext at ortho@anchor{.north}\fi
         \else
@@ -640,10 +650,11 @@
       \let\tikzext at ortho@anchor\pgfutil at empty
       \let\tikzext at origtotarget\pgfutil at empty
       \tikz at scan@one at point\pgfutil at firstofone(\tikztotarget)\relax
+      \pgf at xa=\pgf at x
       \iftikz at shapeborder
         \let\tikzext at origtotarget\tikztotarget
         \tikz at scan@one at point\pgfutil at firstofone(\tikztostart)\relax
-        \ifdim\pgf at x>\tikz at lastx\relax
+        \ifdim\pgf at xa>\tikz at lastx\relax
           \edef\tikztotarget{\tikztotarget.west}%
           \iftikz at shapeborder\def\tikzext at ortho@anchor{.east}\fi
         \else



More information about the tex-live-commits mailing list.