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.