texlive[64788] Master/texmf-dist: tikz-ext (23oct22)

commits+karl at tug.org commits+karl at tug.org
Sun Oct 23 22:36:18 CEST 2022


Revision: 64788
          http://tug.org/svn/texlive?view=revision&revision=64788
Author:   karl
Date:     2022-10-23 22:36:18 +0200 (Sun, 23 Oct 2022)
Log Message:
-----------
tikz-ext (23oct22)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/latex/tikz-ext/README.md
    trunk/Master/texmf-dist/doc/latex/tikz-ext/tikz-ext-manual-en-library-misc.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-en-main-preamble.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/tex/latex/tikz-ext/pgfcalendar-ext.code.tex
    trunk/Master/texmf-dist/tex/latex/tikz-ext/tikzlibraryext.misc.code.tex
    trunk/Master/texmf-dist/tex/latex/tikz-ext/tikzlibraryext.paths.arcto.code.tex

Added Paths:
-----------
    trunk/Master/texmf-dist/doc/latex/tikz-ext/tikz-ext-manual-en-pgf-shapes-uncentered.tex
    trunk/Master/texmf-dist/tex/latex/tikz-ext/pgfkeyslibraryext.pgfkeys-plus.code.tex
    trunk/Master/texmf-dist/tex/latex/tikz-ext/pgflibraryext.pgfkeys-plus.code.tex
    trunk/Master/texmf-dist/tex/latex/tikz-ext/pgflibraryext.shapes.uncenteredrectangle.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-23 00:37:47 UTC (rev 64787)
+++ trunk/Master/texmf-dist/doc/latex/tikz-ext/README.md	2022-10-23 20:36:18 UTC (rev 64788)
@@ -31,6 +31,7 @@
    * `ext.shapes.heatmark`
    * `ext.shapes.rectangleroundedcorners`
    * `ext.shapes.superellipse`
+   * `ext.shapes.uncenteredrectangle`
 
  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-library-misc.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tikz-ext/tikz-ext-manual-en-library-misc.tex	2022-10-23 00:37:47 UTC (rev 64787)
+++ trunk/Master/texmf-dist/doc/latex/tikz-ext/tikz-ext-manual-en-library-misc.tex	2022-10-23 20:36:18 UTC (rev 64788)
@@ -136,14 +136,38 @@
       (intersection of @--[shift=(vecB)]@ and B--A) coordinate (A);}
 \end{tikzpicture}
 \end{codeexample}
-\pagebreak
+
+\subsection{\pgfname for}
+
+Instead of |\foreach \var in {start, start + delta, ..., end}| one can use
+|\foreach \var[use int=start to end step delta]|.
+
+\begin{key}{/pgf/foreach/use int=\meta{start}|to|\meta{end}\opt{|step|\meta{delta}}}
+The values \meta{start}, \meta{end} and \meta{delta} are evaluates by \pgfname math at initialization.
+The part |step |\meta{delta} is optional (\meta{delta} = 1).
+\end{key}
+
+\begin{key}{/pgf/foreach/use float=\meta{start}|to|\meta{end}\opt{|step|\meta{delta}}}
+Same as above, however the results are not truncated.
+\end{key}
+
+%TODO: edges to and edges through
+%\pagebreak
+
 \subsection{\pgfname keys}
-%
+\begin{pgfkeyslibrary}{ext.pgfkeys-plus}
+  This extends \pgfname keys and adds helpful |/utils| keys as well as handlers.
+  This library gets loaded by the |ext.misc| library.%
+  \footnote{\texttt{\string\usepgfkeyslibrary} is an upcoming feature of \pgfname/\tikzname.
+    For now, you need to load \texttt{ext.misc}
+    or manually \texttt{\string\input} the file \texttt{pgfkeyslibraryext.pgfkeys-plus.code.tex}
+    with \texttt{@} being a letter.}
+\end{pgfkeyslibrary}
+
 \begin{multicols}{2}
-%
 \subsubsection{Conditionals}
 
-\begin{key}{/utils/if=\meta{cond}\meta{true}\opt{\meta{false}}}
+\begin{key}{/utils/if=\marg{cond}\marg{true}\opt{\marg{false}}}
   This key checks the conditional \meta{cond} and applies the styles \meta{true}
   if \meta{cond} is true, otherwise \meta{false}.
   \meta{cond} can be anything that \pgfname math understands.
@@ -155,7 +179,7 @@
 The following keys use \TeX' macros |\if|, |\ifx|, |\ifnum| and |\ifdim| for faster
 executions.
 
-\begin{key}{/utils/TeX/if=\meta{token A}\meta{token B}\meta{true}\opt{\meta{false}}}
+\begin{key}{/utils/TeX/if=\meta{token A}\meta{token B}\marg{true}\opt{\marg{false}}}
   This key checks via |\if| if \meta{token A} matches \meta{token B}
   and applies the styles \meta{true} if it does, otherwise \meta{false}.
   
@@ -163,21 +187,21 @@
   actually optional.
 \end{key}
 
-\begin{key}{/utils/TeX/ifx=\meta{token A}\meta{token B}\meta{true}\opt{\meta{false}}}
-  As above.
+\begin{key}{/utils/TeX/ifx=\meta{token A}\meta{token B}\marg{true}\opt{\marg{false}}}
+  As above but via |\ifx|.
 \end{key}
 
-\begin{key}{/utils/TeX/ifnum=\meta{num cond}\meta{true}\\opt{\meta{false}}}
+\begin{key}{/utils/TeX/ifnum=\marg{num cond}\marg{true}\opt{\marg{false}}}
   This key checks |\ifnum|\meta{num cond}
   and applies the styles \meta{true} if true, otherwise \meta{false}.
   A delimiting |\relax| will be inserted after \meta{num cond}.
   
-  As a side effect on how \pgfname keys parses argument, the \meta{false} argument is
+  As a side effect on how \pgfname keys parses arguments, the \meta{false} argument is
   actually optional.
 \end{key}
 
 \begin{key}{/utils/TeX/ifdim=\meta{dim cond}\meta{true}\opt{\meta{false}}}
-  As above.
+  As above but with |\ifdim|.
 \end{key}
 
 \begin{key}{/utils/TeX/ifempty=\meta{Text}\meta{true}\opt{\meta{false}}}
@@ -184,8 +208,11 @@
   This checks whether \meta{Text} is empty and applies styles \meta{true} if true,
   otherwise \meta{false}.
 \end{key}
+\begin{key}{/utils/TeX/ifxempty=\meta{Text}\meta{true}\opt{\meta{false}}}
+  This checks whether fully expanded \meta{Text} is empty and applies styles \meta{true} if true,
+  otherwise \meta{false}.
+\end{key}
 
-
 \subsubsection{Handlers}
 
 While already a lot of values given to keys are evaluated by \pgfname math at some point,
@@ -193,6 +220,10 @@
 
 \begin{handler}{{.pgfmath}|=|\meta{eval}}
   This handler evaluates \meta{eval} before it is handed to the key.
+  
+  This handler works almost the same as the |.evaluated|\indexHandlerO{.evaluated}
+  handler but it does its evaluation in a group so that the result will 
+  not overwrite any other results.
 \end{handler}
 
 \begin{handler}{{.pgfmath int}|=|\meta{eval}}
@@ -199,21 +230,48 @@
   As above but truncates the result.
 \end{handler}
 
-\begin{handler}{{.pgfmath strcat}|=|\meta{eval}}
-  As above but uses the |strcat| function.
+\begin{handler}{{.pgfmath wrap}|=|\marg{wrapper}\marg{eval}}
+  This feeds the result of \meta{eval} as |#1| to \meta{wrapper}.
   
-  In the example below, one could have used the |/pgf/foreach/evaluate| key from |\foreach|.
-\begin{codeexample}[width=3.7cm,preamble=\usetikzlibrary{misc}]
+  In the example below, one could have used the \referenceKeyandIndexO[/pgf/foreach/]{evaluate}
+  key from the |\foreach| loop.
+\begin{codeexample}[width=3.7cm,preamble=\usetikzlibrary{ext.pgfkeys-plus}]
 \tikz\foreach \i in {0,10,...,100}
 \draw[
-  line width=+.2cm,
-  color/.pgfmath strcat={"red!",sqrt(\i)*10,"!blue"}
+  line width=+.25cm,
+  % needs ## because its inside the \foreach body
+  color/.pgfmath wrap={red!##1!blue}{sqrt(\i)*10}
 ]
-  (0,\i/50) -- +(right:3);
+  (0,\i/40) -- +(right:3);
 \end{codeexample}
 \end{handler}
 
-\begin{handler}{{.List}|=|\meta{\meta{e1}, \meta{e2}, \dots, \meta{en}}}
+\begin{handler}{{.pgfmath if}|=|\marg{cond}\marg{true}\opt{\marg{false}}}
+  Evaluates \meta{cond} with \pgfname Math and returns \meta{true} or \meta{false} to the used key respectively.
+\end{handler}
+\begin{handler}{{.if}|=|\meta{token A}\meta{token B}\marg{true}\opt{\marg{false}}}
+  Checks via |\if| if \meta{token A} matches \meta{token B}
+  and applies the value \meta{true} if it does, otherwise \meta{false}.
+\end{handler}
+\begin{handler}{{.ifx}|=|\meta{token A}\meta{token B}\marg{true}\opt{\marg{false}}}
+  As above but via |\ifx|.
+\end{handler}
+\begin{handler}{{.ifnum}|=|\marg{ifnum cond}\marg{true}\opt{\marg{false}}}
+  Checks via |\ifnum| if \meta{ifnum cond}
+  and applies the value \meta{true} if it does, otherwise \meta{false}.
+\end{handler}
+\begin{handler}{{.ifdim}|=|\marg{ifdim cond}\marg{true}\opt{\marg{false}}}
+  As above but via |\ifdim|.
+\end{handler}
+\begin{handler}{{.ifxempty}|=|\marg{Text}\marg{true}\opt{\marg{false}}}
+  Checks whether a fully expanded \meta{Text} is empty
+  and applies the value \meta{true} if it does, otherwise \meta{false}.
+\end{handler}
+\begin{handler}{{.ifempty}|=|\marg{Text}\marg{true}\opt{\marg{false}}}
+  Checks whether \meta{Text} is empty
+  and applies the value \meta{true} if it does, otherwise \meta{false}.
+\end{handler}
+\begin{handler}{{.List}|=|\marg{\meta{e1}, \meta{e2}, \dots, \meta{en}}}
   This handler evaluates the given list with |\foreach| and concatenates the element and
   the result is then given to the used key.
 \end{handler}
@@ -221,7 +279,7 @@
 \begin{codeexample}[width=6cm,preamble=\usetikzlibrary{fit,ext.misc}]
 \begin{tikzpicture}[nodes={draw, dashed, inner sep=+10pt}]
   \foreach \point [count=\cnt] in {(0,0), (0,2), (2,0), (2,2), (3,3), (-1,-1)}
-    \fill \point circle[radius=.1] coordinate (point-\cnt);
+    \node[circle, fill, inner sep=1pt, text=white] (point-\cnt) at \point {\cnt};
   \node[gray, fit/.List={(point-1),(point-...),(point-4)}] {}; 
   \node[red,  fit/.List={(point-1),(point-...),(point-5)}] {}; 
   \node[blue, fit/.List={(point-1),(point-...),(point-6)}] {};
@@ -228,19 +286,4 @@
 \end{tikzpicture}
 \end{codeexample}
 
-\subsection{\pgfname for}
-
-Instead of |\foreach \var in {start, start + delta, ..., end}| one can use
-|\foreach \var[use int=start to end step delta]|.
-
-\begin{key}{/pgf/foreach/use int=\meta{start}|to|\meta{end}\opt{|step|\meta{delta}}}
-The values \meta{start}, \meta{end} and \meta{delta} are evaluates by \pgfname math at initialization.
-The part |step |\meta{delta} is optional (\meta{delta} = 1).
-\end{key}
-
-\begin{key}{/pgf/foreach/use float=\meta{start}|to|\meta{end}\opt{|step|\meta{delta}}}
-Same as above, however the results are not truncated.
-\end{key}
-
-%TODO: edges to and edges through
 \endinput
\ No newline at end of file

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-23 00:37:47 UTC (rev 64787)
+++ trunk/Master/texmf-dist/doc/latex/tikz-ext/tikz-ext-manual-en-library-paths.ortho.tex	2022-10-23 20:36:18 UTC (rev 64788)
@@ -128,7 +128,7 @@
   \end{key}
 \end{pathoperation}
 
-All distances can be set with on key.
+All distances can be set with one key.
 \begin{key}{/tikz/ortho/udlr distance=\meta{length}}
   Sets all the previous distances to the same value \meta{length}.
 \end{key}
@@ -192,8 +192,8 @@
   \pgfmanualbar-\pgfmanualbar & vertical horizontal vertical   \\
   \pgfmanualbar*              & only vertical first            \\
   *\pgfmanualbar              & only vertical second           \\
-  \pgfmanualbar*              & only vertical first            \\
-  *\pgfmanualbar              & only vertical second
+  -*                          & only horizontal first          \\
+  *-                          & only horizontal 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-23 00:37:47 UTC (rev 64787)
+++ trunk/Master/texmf-dist/doc/latex/tikz-ext/tikz-ext-manual-en-main-body.tex	2022-10-23 20:36:18 UTC (rev 64788)
@@ -8,7 +8,7 @@
 % 2. under the GNU Free Documentation License.
 %
 \newcommand*\tikzextname{Ti\textit kZ-Extensions}
-\newcommand*\tikzextversion{0.4}
+\newcommand*\tikzextversion{0.4.1}
 \begin{document}
 {\colorlet{blue}{black}% links shall be black
 \title{\bfseries The \tikzextname\space Package\\
@@ -125,6 +125,8 @@
 \include{tikz-ext-manual-en-pgf-shapes-heatmark}
 \include{tikz-ext-manual-en-pgf-shapes-rectround}
 \include{tikz-ext-manual-en-pgf-shapes-superellipse}
+\include{tikz-ext-manual-en-pgf-shapes-uncentered}
+
 \part{Utilities}
 
 \label{part:misc}
@@ -162,11 +164,19 @@
 %%% END
 \newcommand*{\addTikz}[1]{Added \tikzname\space library \texttt{ext.#1}.}
 \newcommand*{\addPGF}[1]{Added \pgfname\space library \texttt{ext.#1}.}
+\newcommand*{\addPGFkeys}[1]{Added \pgfname keys library \texttt{ext.#1}.}
 \newcommand*{\addShape}[2][]{Added shape \texttt{\ifx\\#1\\#2\else#1\fi}\\(\pgfname\space library \texttt{ext.shapes.#2}).}
 \part{Changelog, Index \& References}
 \section*{Changelog}\addcontentsline{toc}{section}{Changelog}
 \begin{multicols}{2}\raggedright
 \noindent
+Version 0.4.1
+\begin{itemize}
+\item Cleaned up directory structure of documentary.
+\item \addPGFkeys{pgfkeys-plus}
+\item \addShape[uncentered rectangle]{uncenteredrectangle}
+\item Fixed |ext.paths.arcto| -- again \cite{GH2}.
+\end{itemize}
 Version 0.4
 \begin{itemize}
 \item CTAN version of 0.3.1

Modified: trunk/Master/texmf-dist/doc/latex/tikz-ext/tikz-ext-manual-en-main-preamble.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tikz-ext/tikz-ext-manual-en-main-preamble.tex	2022-10-23 00:37:47 UTC (rev 64787)
+++ trunk/Master/texmf-dist/doc/latex/tikz-ext/tikz-ext-manual-en-main-preamble.tex	2022-10-23 20:36:18 UTC (rev 64788)
@@ -41,6 +41,21 @@
 \tracinglostchars=3
 
 \input{pgfmanual-en-macros}
+\newenvironment{pgfkeyslibrary}[1]{% from pgfmanual-en-macros
+  \begin{pgfmanualentry}%
+    \pgfmanualentryheadline{%
+      \pgfmanualpdflabel{#1}{}%
+      \textbf{pgfkeys Library} \texttt{\declare{#1}}}%
+    \index{#1@\protect\texttt{#1} pgfkeys library}%
+    \index{pgfkeys Libraries!#1@\protect\texttt{#1}}%
+    \vskip.25em
+    {{\ttfamily\char`\\usepgfkeyslibrary\char`\{\declare{#1}\char`\}\space\space \char`\%\space\space  \LaTeX\space and plain \TeX}}\\
+    {{\ttfamily\char`\\usepgfkeyslibrary[\declare{#1}]\space \char`\%\space\space Con\TeX t}}\\[.5em]%
+    \pgfmanualbody
+}%
+{%
+  \end{pgfmanualentry}%
+}
 
 \usepackage{unicode-math}
 \setmathfont[Scale=MatchUppercase]{libertinusmath-regular.otf}
@@ -105,10 +120,12 @@
   ext.shapes.circlecrosssplit,
   ext.shapes.rectangleroundedcorners,
   ext.shapes.superellipse,
+  ext.shapes.uncenteredrectangle,
   ext.topaths.arcthrough,
   ext.transformations.mirror,
   %
   calc,
+  cd,
   fit,
   matrix,
   shapes.geometric,

Added: trunk/Master/texmf-dist/doc/latex/tikz-ext/tikz-ext-manual-en-pgf-shapes-uncentered.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tikz-ext/tikz-ext-manual-en-pgf-shapes-uncentered.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/tikz-ext/tikz-ext-manual-en-pgf-shapes-uncentered.tex	2022-10-23 20:36:18 UTC (rev 64788)
@@ -0,0 +1,99 @@
+% !TeX spellcheck = en_US
+% !TeX root = tikz-ext-manual.tex
+% Copyright 2022 by Qrrbrbirlbel
+%
+% This file may be distributed and/or modified
+%
+% 1. under the LaTeX Project Public License and/or
+% 2. under the GNU Free Documentation License.
+%
+
+\section{Shape: Uncentered Rectangle}
+\begin{pgflibrary}{ext.shapes.uncenteredrectangle}
+  A rectangle that has a variable horizontal center with three node parts.
+  \inspiration{UncRectCD-Q,UncRectForest-Q}{UncRectCD-A,UncRectForest-A}
+\end{pgflibrary}
+\begin{shape}{uncentered rectangle}
+
+For some alignment problems, this shape could be useful.
+
+It has three node parts: the standard |text| part,
+the |left| part that is to the left of |text|
+and the |right| part that is to the right of |text|.
+
+When edges are to be connected with this shape, the
+following key changes to which inner center this shape will
+calculate the appropriate point on the border.
+\begin{key}{/pgf/uncentered rectangle center=\meta{left}\textrm{ or }\meta{text}\textrm{ or }\meta{right}\textrm{ or }\meta{real} (initially text)}
+  Sets the center that is to be used for connecting edges.
+  
+  This will also move the anchors |north|, |mid|, |base| and |south| along.
+  In the picture below, this are marked red.
+\end{key}
+
+For support of the \referenceLibraryandIndexO{cd} library of the |tikz-cd| package,
+this shape also supports a dynamic $y$ value for its anchors |center|, |west| and |east|.
+\begin{key}{/pgf/uncentered rectangle center yshift=\meta{dimension} (initially \{\})}
+  This determines the distance between the baseline and the |center| anchors.
+  
+  If \meta{dimension} is empty, the real center will be used which is the default.
+  
+  For use with |cd|, set this to |axis_height|.
+  Due to a bug with \referenceKeyandIndexO{execute at end node}
+  this needs a lot of fixing to be able to use in a commutative diagram, though.
+
+\tikzexternaldisable
+\catcode`\|=12
+\begin{codeexample}[leave comments, preamble=\usetikzlibrary{cd, ext.shapes.uncenteredrectangle}]
+\makeatletter
+\tikzcdset{
+  every diagram/.append style={
+    /pgf/uncentered rectangle center=text,
+    /tikz/math align/.style={
+      shape=uncentered rectangle,
+      /pgf/uncentered rectangle center yshift=axis_height,
+      commutative diagrams/math mode=false},
+    /tikz/math align left/.style={
+      math align,
+      /utils/exec={\def\mathalign####1=####2;{$####2$\nodepart{left}$####1={}$}}},
+    /tikz/math align right/.style={
+      math align,
+      /utils/exec={\def\mathalign####1=####2;{$####1$\nodepart{right}${}=####2$}}},
+    /tikz/matrix of math nodes/.style={
+      matrix of nodes,
+      nodes={
+        execute at begin node=\iftikzcd at mathmode$\fi,
+        execute at end node  =\iftikzcd at mathmode$\fi}}}}
+\makeatother
+\tikzcdset{install C shortcut/.code=\newcommand*\C[1]{C_{\%_{##1}}}}
+\begin{tikzcd}[
+  install C shortcut,
+  sep=tiny,
+  arrows={-, gray},
+  cells={font=\strut, inner xsep=.2ex, inner ysep=.1ex}
+]
+\C{1} \drar &         & |[math align right]| \mathalign m_{r_1} = \C{2}-C_\%; \dlar\\
+            & C_\% \\
+\C{2} \urar &         & |[math align right]| \mathalign m_{r_2} = \C{1}-C_\%; \ular
+\end{tikzcd}
+\end{codeexample}
+\end{key}
+\pagebreak
+\begin{codeexample}[preamble=\usepgflibrary{ext.shapes.uncenteredrectangle}]
+\begin{tikzpicture}[style north/.style=red, style south/.style=red, style center/.style=red, style base/.style=red, style mid/.style=red]
+\Huge
+\node[shape example, name=n, uncentered rectangle]
+  {centered \nodepart{left} Un \nodepart{right} \space Rectangle\vrule width 1pt height 2cm}
+  foreach \anchor/\pos in {
+   north west/above left, north/below, north east/above right, real north/above,  left north/above, right north/above, text north/above,
+         west/left,      center/above,       east/right,       real center/above, left center/above,right center/above,text center/below,
+     mid west/left,         mid/left,    mid east/right,       real mid/above,    left mid/above,   right mid/above,   text mid/above,
+    base west/left,        base/right,  base east/right,       real base/below,   left base/below,  right base/below,  text base/below,
+   south west/below left, south/above, south east/below right, real south/below,  left south/below, right south/below, text south/below,
+                             10/right,        130/below,                          left/left,        right/right,       text/right}{
+    plot[mark=x, only marks] coordinates {(n.\anchor)}
+    node[inner sep=.1em, style \anchor/.try, style/.expand once=\pos] {\tiny\ttfamily\anchor}};
+\end{tikzpicture}
+\end{codeexample}
+\end{shape}
+\endinput
\ No newline at end of file


Property changes on: trunk/Master/texmf-dist/doc/latex/tikz-ext/tikz-ext-manual-en-pgf-shapes-uncentered.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
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-23 00:37:47 UTC (rev 64787)
+++ trunk/Master/texmf-dist/doc/latex/tikz-ext/tikz-ext-manual.bib	2022-10-23 20:36:18 UTC (rev 64788)
@@ -319,4 +319,63 @@
   year       = {2022},
 }
 
+'
+ at Software{GH2,
+  abstract = {{clockwise/counter clockwise does not seem to work reliably}},
+  author   = {marmotghost},
+  month    = oct,
+  title    = {clockwise/counter clockwise does not seem to work reliably},
+  url      = {https://github.com/Qrrbrbirlbel/tikz-extensions/issues/2},
+  urldate  = {2022-10-23},
+  year     = {2022},
+}
+
+'
+ at Online{UncRectForest-Q,
+  author     = {projetmbc},
+  file       = {Snapshot:https\://tex.stackexchange.com/questions/661726/forest-automatic-setting-of-the-alignment-of-some-labels/661746#661746:text/html},
+  month      = oct,
+  title      = {forest - automatic setting of the alignment of some labels},
+  titleaddon = {{TeX} - {LaTeX} Stack Exchange},
+  url        = {https://tex.stackexchange.com/q/661726/16595},
+  urldate    = {2022-10-23},
+  year       = {2022},
+}
+
+ at Online{UncRectForest-A,
+  author     = {Qrrbrbirlbel},
+  file       = {Snapshot:https\://tex.stackexchange.com/questions/661726/forest-automatic-setting-of-the-alignment-of-some-labels/661746#661746:text/html},
+  month      = oct,
+  title      = {Answer to \enquote{forest - automatic setting of the alignment of some labels}},
+  titleaddon = {{TeX} - {LaTeX} Stack Exchange},
+  url        = {https://tex.stackexchange.com/a/661746/16595},
+  urldate    = {2022-10-23},
+  year       = {2022},
+}
+
+'
+ at Online{UncRectCD-Q,
+  author     = {Szymankiewicz, Michał},
+  file       = {Snapshot:https\://tex.stackexchange.com/questions/657432/how-to-draw-a-mixing-rule-chemistry/657449#657449:text/html},
+  month      = sep,
+  shorttitle = {How to draw a mixing rule?},
+  title      = {How to draw a mixing rule? \#chemistry},
+  titleaddon = {{TeX} - {LaTeX} Stack Exchange},
+  url        = {https://tex.stackexchange.com/q/657432/16595},
+  urldate    = {2022-10-23},
+  year       = {2022},
+}
+
+ at Online{UncRectCD-A,
+  author     = {Qrrbrbirlbel},
+  file       = {Snapshot:https\://tex.stackexchange.com/questions/657432/how-to-draw-a-mixing-rule-chemistry/657449#657449:text/html},
+  month      = sep,
+  shorttitle = {Answer to \enquote{How to draw a mixing rule?}},
+  title      = {Answer to \enquote{How to draw a mixing rule? \#chemistry}},
+  titleaddon = {{TeX} - {LaTeX} Stack Exchange},
+  url        = {https://tex.stackexchange.com/a/657449/16595},
+  urldate    = {2022-10-23},
+  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/tex/latex/tikz-ext/pgfcalendar-ext.code.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tikz-ext/pgfcalendar-ext.code.tex	2022-10-23 00:37:47 UTC (rev 64787)
+++ trunk/Master/texmf-dist/tex/latex/tikz-ext/pgfcalendar-ext.code.tex	2022-10-23 20:36:18 UTC (rev 64788)
@@ -359,7 +359,7 @@
   \pgfcalendar at launch@ifdate{#2}{#3}{#4}%
 }
 
-\pgfqkeys{/pgf/calendar/week}{.value required,.code=\ifnum#1=\pgfcalendarifdateweek\relax\expandafter\pgfcalendarmatchestrue\fi}
+\pgfqkeys{/pgf/calendar/week}{.value required,.code={\ifnum#1=\pgfcalendarifdateweek\relax\expandafter\pgfcalendarmatchestrue\fi}}
 
 % Overwriting shorthands of pgfcalendar
 \expandafter\def\csname pgfcalendar at shorthand@d-\endcsname{%

Added: trunk/Master/texmf-dist/tex/latex/tikz-ext/pgfkeyslibraryext.pgfkeys-plus.code.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tikz-ext/pgfkeyslibraryext.pgfkeys-plus.code.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/tikz-ext/pgfkeyslibraryext.pgfkeys-plus.code.tex	2022-10-23 20:36:18 UTC (rev 64788)
@@ -0,0 +1,139 @@
+% Copyright 2022 by Qrrbrbirlbel
+%
+% This file may be distributed and/or modified
+%
+% 1. under the LaTeX Project Public License and/or
+% 2. under the GNU Free Documentation License.
+%
+
+\input pgfmath.tex
+
+%% Handlers
+%% .pgfmath evaluates values given to keys in PGFmath before handing them over.
+%% .pgfmath int truncates the result
+%% .pgfmath strcat concatenates the given values
+\pgfqkeys{/handlers}{
+  .pgfmath/.code=%
+    \begingroup
+      \pgfmathparse{#1}%
+    \expandafter\endgroup\expandafter
+    \pgfkeys at exp@call\expandafter{\pgfmathresult},
+  .pgfmath int/.code=%
+    \begingroup
+      \pgfmathint{#1}%
+    \expandafter\endgroup\expandafter
+    \pgfkeys at exp@call\expandafter{\pgfmathresult},
+  .pgfmath wrap/.code 2 args={%
+    \def\pgfkeys at temp##1{\def\pgfkeys at temp{#1}}%
+    \begingroup
+      \pgfmathparse{#2}%
+      \expandafter\pgfkeys at temp\expandafter{\pgfmathresult}%
+    \expandafter\endgroup\expandafter
+    \pgfkeys at exp@call\expandafter{\pgfkeys at temp}%
+  },
+  .pgfmath if/.code n args={3}{%
+    \begingroup
+      \pgfmathifthenelse{#1}{"1"}{"0"}%
+    \expandafter\endgroup\expandafter
+    \ifcase\pgfmathresult\relax
+      \expandafter\pgfutil at firstoftwo
+    \else
+      \expandafter\pgfutil at secondoftwo
+    \fi
+    {\pgfkeys at exp@call{#3}}%
+    {\pgfkeys at exp@call{#2}}%
+  },
+  .if/.code n args={4}{%
+    \if#1#2%
+      \expandafter\pgfutil at firstoftwo
+    \else
+      \expandafter\pgfutil at secondoftwo
+    \fi
+    {\pgfkeys at exp@call{#3}}%
+    {\pgfkeys at exp@call{#4}}%
+  },
+  .ifnum/.code n args={3}{%
+    \ifnum#1\relax
+      \expandafter\pgfutil at firstoftwo
+    \else
+      \expandafter\pgfutil at secondoftwo
+    \fi
+    {\pgfkeys at exp@call{#2}}%
+    {\pgfkeys at exp@call{#3}}%
+  },
+  .ifdim/.code n args={3}{%
+    \ifdim#1\relax
+      \expandafter\pgfutil at firstoftwo
+    \else
+      \expandafter\pgfutil at secondoftwo
+    \fi
+    {\pgfkeys at exp@call{#2}}%
+    {\pgfkeys at exp@call{#3}}%
+  },
+  .ifx/.code n args={4}{%
+    \ifx#1#2%
+      \expandafter\pgfutil at firstoftwo
+    \else
+      \expandafter\pgfutil at secondoftwo
+    \fi
+    {\pgfkeys at exp@call{#3}}%
+    {\pgfkeys at exp@call{#4}}%
+  },
+  .ifxempty/.code n args={3}{%
+    \edef\pgfkeys at temp{#1}%
+    \pgfutil at ifxempty\pgfkeys at temp{\pgfkeys at exp@call{#2}}{\pgfkeys at exp@call{#3}}%
+  },
+  .ifempty/.code n args={3}{%
+    \pgfutil at ifempty{#1}{\pgfkeys at exp@call{#2}}{\pgfkeys at exp@call{#3}}%
+  },
+  %% http://tex.stackexchange.com/a/144187/16595
+  %% key/.List={(point-1),(point-2),(point-...),(point-6)} will call
+  %% key=(point-1)(point-2)(point-3)(point-4)(point-5),(point-6)
+  .List/.code=%
+    \let\pgfkeys at global@temp\pgfutil at empty
+    \foreach\pgfkeys at temp in{#1}{%
+        \expandafter\pgfutil at g@addto at macro\expandafter\pgfkeys at global@temp\expandafter{\pgfkeys at temp}%
+    }%
+    \expandafter\pgfkeys at exp@call\expandafter{\pgfkeys at global@temp}%
+}
+
+\pgfqkeys{/utils}{
+  if/.code n args={3}{%
+    \begingroup
+      \pgfmathifthenelse{#1}{"1"}{"0"}%
+    \expandafter\endgroup\expandafter
+    \ifcase\pgfmathresult\relax
+      \expandafter\pgfutil at firstoftwo
+    \else
+      \expandafter\pgfutil at secondoftwo
+    \fi
+    {\pgfkeysalso{#3}}
+    {\pgfkeysalso{#2}}%
+  },
+  TeX/if/.code n args={4}{%
+    \if#1#2\expandafter\pgfutil at firstoftwo\else\expandafter\pgfutil at secondoftwo\fi
+    {\pgfkeysalso{#3}}{\pgfkeysalso{#4}}%
+  },
+  TeX/ifnum/.code n args={3}{%
+    \ifnum#1\relax\expandafter\pgfutil at firstoftwo\else\expandafter\pgfutil at secondoftwo\fi
+    {\pgfkeysalso{#2}}{\pgfkeysalso{#3}}%
+  },
+  TeX/ifdim/.code n args={3}{%
+    \ifdim#1\relax\expandafter\pgfutil at firstoftwo\else\expandafter\pgfutil at secondoftwo\fi
+    {\pgfkeysalso{#2}}{\pgfkeysalso{#3}}%
+  },
+  TeX/ifx/.code n args={4}{%
+    \ifx#1#2\relax\expandafter\pgfutil at firstoftwo\else\expandafter\pgfutil at secondoftwo\fi
+    {\pgfkeysalso{#3}}{\pgfkeysalso{#4}}%
+  },
+  TeX/ifxempty/.code n args={3}{%
+    \edef\pgfkeys at temp{#1}%
+    \pgfutil at ifxempty\pgfkeys at temp{\pgfkeysalso{#2}}{\pgfkeysalso{#3}}%
+  },
+  TeX/ifempty/.code n args={3}{%
+    \pgfutil at ifempty{#1}{\pgfkeysalso{#2}}{\pgfkeysalso{#3}}%
+  },
+  tex/.search also=/utils/TeX,
+}
+
+\endinput
\ No newline at end of file


Property changes on: trunk/Master/texmf-dist/tex/latex/tikz-ext/pgfkeyslibraryext.pgfkeys-plus.code.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/latex/tikz-ext/pgflibraryext.pgfkeys-plus.code.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tikz-ext/pgflibraryext.pgfkeys-plus.code.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/tikz-ext/pgflibraryext.pgfkeys-plus.code.tex	2022-10-23 20:36:18 UTC (rev 64788)
@@ -0,0 +1,11 @@
+% Copyright 2022 by Qrrbrbirlbel
+%
+% This file may be distributed and/or modified
+%
+% 1. under the LaTeX Project Public License and/or
+% 2. under the GNU Free Documentation License.
+%
+
+\input pgfkeyslibraryext.pgfkeys-plus.code.tex
+
+\endinput
\ No newline at end of file


Property changes on: trunk/Master/texmf-dist/tex/latex/tikz-ext/pgflibraryext.pgfkeys-plus.code.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/latex/tikz-ext/pgflibraryext.shapes.uncenteredrectangle.code.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tikz-ext/pgflibraryext.shapes.uncenteredrectangle.code.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/tikz-ext/pgflibraryext.shapes.uncenteredrectangle.code.tex	2022-10-23 20:36:18 UTC (rev 64788)
@@ -0,0 +1,307 @@
+% Copyright 2022 by Qrrbrbirlbel
+%
+% This file may be distributed and/or modified
+%
+% 1. under the LaTeX Project Public License and/or
+% 2. under the GNU Free Documentation License.
+%
+\pgfutil at IfUndefined{pgfnodepartthreebox}{%
+  \newbox\pgfnodepartleftbox
+  \newbox\pgfnodepartrightbox
+}{%
+  \let\pgfnodepartleftbox\pgfnodeparttwobox
+  \let\pgfnodepartrightbox\pgfnodepartthreebox
+}
+\pgfset{
+  uncentered rectangle center yshift/.initial=,
+  uncentered rectangle center/@center/.initial=2,
+  uncentered rectangle center/.is choice,
+  uncentered rectangle center/real/.code=\pgfkeyssetvalue{/pgf/uncentered rectangle center/@center}{0},
+  uncentered rectangle center/left/.code=\pgfkeyssetvalue{/pgf/uncentered rectangle center/@center}{1},
+  uncentered rectangle center/text/.code=\pgfkeyssetvalue{/pgf/uncentered rectangle center/@center}{2},
+  uncentered rectangle center/right/.code=\pgfkeyssetvalue{/pgf/uncentered rectangle center/@center}{3}}
+
+\pgfdeclareshape{uncentered rectangle}{%
+  \nodeparts{text,left,right}%
+  \savedanchor\middleCenter{%
+    \pgf at x=.5\wd\pgfnodeparttextbox
+    %
+    \pgf at y=\dp\pgfnodeparttextbox
+    \ifdim\dp\pgfnodepartleftbox>\pgf at y
+      \pgf at y=\dp\pgfnodepartleftbox
+    \fi
+    \ifdim\dp\pgfnodepartrightbox>\pgf at y
+      \pgf at y=\dp\pgfnodepartrightbox
+    \fi
+    %
+    \pgf at ya=\ht\pgfnodeparttextbox
+    \ifdim\ht\pgfnodepartleftbox>\pgf at ya
+      \pgf at ya=\ht\pgfnodepartleftbox
+    \fi
+    \ifdim\ht\pgfnodepartrightbox>\pgf at ya
+      \pgf at ya=\ht\pgfnodepartrightbox
+    \fi
+    \advance\pgf at ya by -\pgf at y
+    \pgf at y=.5\pgf at ya
+  }%
+  \savedanchor\leftCenter{%
+    % y should be still the same as before
+    \pgf at x=-.5\wd\pgfnodepartleftbox
+  }%
+  \savedanchor\rightCenter{%
+    % y should be still the same as before
+    \pgf at x=.5\wd\pgfnodepartrightbox
+    \advance\pgf at x by \wd\pgfnodeparttextbox
+  }%
+  \savedanchor\realCenter{%
+    % y should be still the same as before
+    \pgf at x=-.5\wd\pgfnodepartleftbox
+    \advance\pgf at x by .5\wd\pgfnodeparttextbox
+    \advance\pgf at x by .5\wd\pgfnodepartrightbox
+  }%
+  \savedanchor\southwest{%
+    % total width
+    \pgf at xa=\wd\pgfnodepartleftbox
+    \advance\pgf at xa by\wd\pgfnodepartrightbox
+    \advance\pgf at xa by\wd\pgfnodeparttextbox
+    %
+    \pgfmathsetlength\pgf at xc{\pgfkeysvalueof{/pgf/inner xsep}}%
+    \advance\pgf at xa by 2\pgf at xc
+    \pgfmathsetlength\pgf at xb{\pgfkeysvalueof{/pgf/minimum width}}%
+    \ifdim\pgf at xb>\pgf at xa
+      \pgf at xa=\pgf at xb
+    \fi
+    % left side of shape
+    \advance\pgf at x by -.5\pgf at xa
+    \pgfmathsetlength\pgf at xa{\pgfkeysvalueof{/pgf/outer xsep}}%
+    \advance\pgf at x by -\pgf at xa
+    %
+    % total height
+    \pgf at ya=\dp\pgfnodepartleftbox
+    \ifdim\pgf at ya<\dp\pgfnodeparttextbox
+      \pgf at ya=\dp\pgfnodeparttextbox
+    \fi
+    \ifdim\pgf at ya<\dp\pgfnodepartrightbox
+      \pgf at ya=\dp\pgfnodepartrightbox
+    \fi
+    \pgf at yb=\ht\pgfnodepartleftbox
+    \ifdim\pgf at yb<\ht\pgfnodeparttextbox
+      \pgf at yb=\ht\pgfnodeparttextbox
+    \fi
+    \ifdim\pgf at yb<\ht\pgfnodepartrightbox
+      \pgf at yb=\ht\pgfnodepartrightbox
+    \fi
+    \advance\pgf at ya by \pgf at yb
+    %
+    \pgfmathsetlength\pgf at yc{\pgfkeysvalueof{/pgf/inner ysep}}%
+    \advance\pgf at ya by 2\pgf at yc
+    \pgfmathsetlength\pgf at yb{\pgfkeysvalueof{/pgf/minimum height}}%
+    \ifdim\pgf at yb>\pgf at ya
+      \pgf at ya=\pgf at yb
+    \fi
+    % lower side of the shape
+    \advance\pgf at y by -.5\pgf at ya
+    \pgfmathsetlength\pgf at ya{\pgfkeysvalueof{/pgf/outer ysep}}%
+    \advance\pgf at y by -\pgf at ya
+  }%
+  \savedanchor\northeast{%
+    % first, let's calculate the real center again:
+    %
+    \pgf at x=-.5\wd\pgfnodepartleftbox
+    \advance\pgf at x by .5\wd\pgfnodeparttextbox
+    \advance\pgf at x by .5\wd\pgfnodepartrightbox
+    %
+    \pgf at y=\dp\pgfnodeparttextbox
+    \ifdim\dp\pgfnodepartleftbox>\pgf at y
+      \pgf at y=\dp\pgfnodepartleftbox
+    \fi
+    \ifdim\dp\pgfnodepartrightbox>\pgf at y
+      \pgf at y=\dp\pgfnodepartrightbox
+    \fi
+    %
+    \pgf at ya=\ht\pgfnodeparttextbox
+    \ifdim\ht\pgfnodepartleftbox>\pgf at ya
+      \pgf at ya=\ht\pgfnodepartleftbox
+    \fi
+    \ifdim\ht\pgfnodepartrightbox>\pgf at ya
+      \pgf at ya=\ht\pgfnodepartrightbox
+    \fi
+    \advance\pgf at ya by -\pgf at y
+    \pgf at y=.5\pgf at ya
+    %
+    % now we can calculate the anchor
+    % total width
+    %
+    \pgf at xa=\wd\pgfnodepartleftbox
+    \advance\pgf at xa by\wd\pgfnodepartrightbox
+    \advance\pgf at xa by\wd\pgfnodeparttextbox
+    %
+    \pgfmathsetlength\pgf at xc{\pgfkeysvalueof{/pgf/inner xsep}}%
+    \advance\pgf at xa by 2\pgf at xc
+    \pgfmathsetlength\pgf at xb{\pgfkeysvalueof{/pgf/minimum width}}%
+    \ifdim\pgf at xb>\pgf at xa
+      \pgf at xa=\pgf at xb
+    \fi
+    % right side of shape
+    \advance\pgf at x by .5\pgf at xa
+    \pgfmathsetlength\pgf at xa{\pgfkeysvalueof{/pgf/outer xsep}}%
+    \advance\pgf at x by \pgf at xa
+    %
+    % total height
+    \pgf at ya=\dp\pgfnodepartleftbox
+    \ifdim\pgf at ya<\dp\pgfnodeparttextbox
+      \pgf at ya=\dp\pgfnodeparttextbox
+    \fi
+    \ifdim\pgf at ya<\dp\pgfnodepartrightbox
+      \pgf at ya=\dp\pgfnodepartrightbox
+    \fi
+    \pgf at yb=\ht\pgfnodepartleftbox
+    \ifdim\pgf at yb<\ht\pgfnodeparttextbox
+      \pgf at yb=\ht\pgfnodeparttextbox
+    \fi
+    \ifdim\pgf at yb<\ht\pgfnodepartrightbox
+      \pgf at yb=\ht\pgfnodepartrightbox
+    \fi
+    \advance\pgf at ya by \pgf at yb
+    %
+    \pgfmathsetlength\pgf at yc{\pgfkeysvalueof{/pgf/inner ysep}}%
+    \advance\pgf at ya by 2\pgf at yc
+    \pgfmathsetlength\pgf at yb{\pgfkeysvalueof{/pgf/minimum height}}%
+    \ifdim\pgf at yb>\pgf at ya
+      \pgf at ya=\pgf at yb
+    \fi
+    % upper side of the shape
+    \advance\pgf at y by .5\pgf at ya
+    \pgfmathsetlength\pgf at ya{\pgfkeysvalueof{/pgf/outer ysep}}%
+    \advance\pgf at y by \pgf at ya
+  }%
+  %
+  \anchor{center}{%
+    \ifcase\pgfkeysvalueof{/pgf/uncentered rectangle center/@center}\relax
+      \realCenter\or
+      \leftCenter\or
+      \middleCenter\or
+      \rightCenter\else
+      \realCenter
+    \fi
+    \pgfkeysgetvalue{/pgf/uncentered rectangle center yshift}\pgf at temp
+    \pgfutil at ifxempty\pgf at temp{% real center used
+    }{% calculate center
+      \pgfmathsetlength\pgf at y{\pgf at temp}%
+    }%
+  }%
+  \anchor{left}        {\leftCenter  \multiply\pgf at x by2 \pgf at y=0pt }
+  \anchor{right}       {\middleCenter\multiply\pgf at x by2 \pgf at y=0pt }
+  \anchor{real center} {\realCenter}
+  \anchor{left center} {\leftCenter}
+  \anchor{right center}{\rightCenter}
+  \anchor{text center} {\middleCenter}
+  \anchor{south west}  {\southwest}
+  \anchor{north east}  {\northeast}
+  \anchor{mid}{%
+    \csname pgf at anchor@uncentered rectangle at center\endcsname
+    \pgfmathsetlength\pgf at y{.5ex}}%
+  \anchor{base}{%
+    \csname pgf at anchor@uncentered rectangle at center\endcsname
+    \pgf at y=0pt }%
+  \anchor{left mid}   {\leftCenter  \pgfmathsetlength\pgf at y{+.5ex}}
+  \anchor{text mid}   {\middleCenter\pgfmathsetlength\pgf at y{+.5ex}}
+  \anchor{right mid}  {\rightCenter \pgfmathsetlength\pgf at y{+.5ex}}
+  \anchor{real mid}   {\realCenter  \pgfmathsetlength\pgf at y{+.5ex}}
+  \anchor{left base}  {\leftCenter  \pgf at y=0pt }
+  \anchor{text base}  {\middleCenter\pgf at y=0pt }
+  \anchor{right base} {\rightCenter \pgf at y=0pt }
+  \anchor{real base}  {\realCenter  \pgf at y=0pt }
+  \anchor{real south} {\pgf at anchor@rectangle at south}
+  \anchor{real north} {\pgf at anchor@rectangle at north}
+  \anchor{text north} {\pgf at anchor@rectangle at north\pgf at ya=\pgf at y\middleCenter\pgf at y=\pgf at ya}
+  \anchor{left north} {\pgf at anchor@rectangle at north\pgf at ya=\pgf at y\leftCenter  \pgf at y=\pgf at ya}
+  \anchor{right north}{\pgf at anchor@rectangle at north\pgf at ya=\pgf at y\rightCenter \pgf at y=\pgf at ya}
+  \anchor{text south} {\pgf at anchor@rectangle at south\pgf at ya=\pgf at y\middleCenter\pgf at y=\pgf at ya}
+  \anchor{left south} {\pgf at anchor@rectangle at south\pgf at ya=\pgf at y\leftCenter  \pgf at y=\pgf at ya}
+  \anchor{right south}{\pgf at anchor@rectangle at south\pgf at ya=\pgf at y\rightCenter \pgf at y=\pgf at ya}
+  \anchor{north}{%
+    \pgf at anchor@rectangle at north
+    \pgf at ya=\pgf at y
+    \csname pgf at anchor@uncentered rectangle at center\endcsname
+    \pgf at y=\pgf at ya
+  }
+  \anchor{south}{%
+    \pgf at anchor@rectangle at south
+    \pgf at ya=\pgf at y
+    \csname pgf at anchor@uncentered rectangle at center\endcsname
+    \pgf at y=\pgf at ya
+  }
+  %\anchor{base right}{\middleCenter\pgf at xa=2\pgf at x}% TODO
+  \anchor{real west}{%
+    \pgf at process{\northeast}%
+    \pgf at ya=.5\pgf at y
+    \pgf at process{\southwest}%
+    \pgf at y=.5\pgf at y
+    \advance\pgf at y by \pgf at ya
+  }%
+  \anchor{real east}{%
+    \pgf at process{\southwest}%
+    \pgf at ya=.5\pgf at y
+    \pgf at process{\northeast}%
+    \pgf at y=.5\pgf at y
+    \advance\pgf at y by \pgf at ya
+  }%
+  \anchor{west}{%
+    \pgf at process{\southwest}%
+    \pgf at xa=\pgf at x
+    \pgf at process{\csname pgf at anchor@uncentered rectangle at center\endcsname}%
+    \pgf at x=\pgf at xa
+  }%
+  \anchor{east}{%
+    \pgf at process{\northeast}%
+    \pgf at xa=\pgf at x
+    \pgf at process{\csname pgf at anchor@uncentered rectangle at center\endcsname}%
+    \pgf at x=\pgf at xa
+  }%
+  \inheritanchor[from=rectangle]{south west}
+  \inheritanchor[from=rectangle]{north west}
+  \inheritanchor[from=rectangle]{south east}
+  \inheritanchor[from=rectangle]{north east}
+  \inheritanchor[from=rectangle]{mid west}
+  \inheritanchor[from=rectangle]{mid east}
+  \inheritanchor[from=rectangle]{base west}
+  \inheritanchor[from=rectangle]{base east}
+  \inheritbackgroundpath[from=rectangle]
+  \anchorborder{%
+    % xa/ya is target
+    \pgf at xa=\pgf at x
+    \pgf at ya=\pgf at y
+    % xc/yc is "center"
+    \pgf at sh@reanchor{uncentered rectangle}{center}%
+    \pgf at xc=\pgf at x
+    \pgf at yc=\pgf at y
+    \ifdim\pgf at xa<0pt
+      % left side
+      \southwest
+      \advance\pgf at x by -\pgf at xc
+      \advance\pgf at y by -\pgf at yc
+      \pgf at x=-\pgf at x
+      \pgf at y=-\pgf at y
+      \edef\pgf at marshal{%
+        \noexpand\pgfpointborderrectangle
+          {\noexpand\pgfqpoint{\the\pgf at xa}{\the\pgf at ya}}
+          {\noexpand\pgfqpoint{\the\pgf at x}{\the\pgf at y}}%
+      }%
+    \else
+      % right side
+      \northeast
+      \advance\pgf at x by -\pgf at xc
+      \advance\pgf at y by -\pgf at yc
+      \edef\pgf at marshal{%
+        \noexpand\pgfpointborderrectangle
+          {\noexpand\pgfqpoint{\the\pgf at xa}{\the\pgf at ya}}
+          {\noexpand\pgfqpoint{\the\pgf at x}{\the\pgf at y}}%
+      }%
+    \fi
+    \pgf at process{\pgf at marshal}%
+    \advance\pgf at x by\pgf at xc
+    \advance\pgf at y by\pgf at yc
+  }%
+}
+\endinput
\ No newline at end of file


Property changes on: trunk/Master/texmf-dist/tex/latex/tikz-ext/pgflibraryext.shapes.uncenteredrectangle.code.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/tex/latex/tikz-ext/tikzlibraryext.misc.code.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tikz-ext/tikzlibraryext.misc.code.tex	2022-10-23 00:37:47 UTC (rev 64787)
+++ trunk/Master/texmf-dist/tex/latex/tikz-ext/tikzlibraryext.misc.code.tex	2022-10-23 20:36:18 UTC (rev 64788)
@@ -5,6 +5,8 @@
 % 1. under the LaTeX Project Public License and/or
 % 2. under the GNU Free Documentation License.
 %
+\usepgflibrary{ext.pgfkeys-plus}%
+
 %% full arc
 %% https://tex.stackexchange.com/a/144297/16595
 %% The postfix operator R is added to PGFmath,
@@ -73,28 +75,6 @@
          {\tikzext at pgf@foreach at no@listfalse\pgffor at macro@list\tikzext at pgf@foreach at no@list at list}
          {\pgffor@@vars}}}}}%
 
-%% Handlers
-%% .pgfmath evaluates values given to keys in PGFmath before handing them over.
-%% .pgfmath int truncates the result
-%% .pgfmath strcat concatenates the given values
-\pgfkeys{/handlers/.pgfmath/.code=\pgfmathparse{#1}\expandafter\pgfkeys at exp@call\expandafter{\pgfmathresult}}
-\pgfkeys{/handlers/.pgfmath int/.code=\pgfmathint{#1}\expandafter\pgfkeys at exp@call\expandafter{\pgfmathresult}}
-\pgfkeys{/handlers/.pgfmath strcat/.code=\pgfmathstrcat{#1}\expandafter\pgfkeys at exp@call\expandafter{\pgfmathresult}}
-
-%% http://tex.stackexchange.com/a/144187/16595
-%% key/.List={(point-1),(point-2),(point-...),(point-6)} will call
-%% key=(point-1)(point-2)(point-3)(point-4)(point-5),(point-6)
-\pgfkeys{/handlers/.List/.code={%
-    \let\pgfkeys at global@temp\pgfutil at empty
-    \foreach \pgfkeys at temp in{#1}{
-      \ifx\pgfkeys at global@temp\pgfutil at empty
-        \global\let\pgfkeys at global@temp\pgfkeys at temp
-      \else
-        \expandafter\pgfutil at g@addto at macro\expandafter\pgfkeys at global@temp\expandafter
-          {\pgfkeys at temp}%
-      \fi}%
-    \expandafter\pgfkeys at exp@call\expandafter{\pgfkeys at global@temp}}}
-
 %% PGFmath
 %% strrepeat("x", 5) = "xxxxx"
 \pgfmathdeclarefunction{strrepeat}{2}{%
@@ -175,62 +155,11 @@
 
 \pgfmathdeclarefunction{isEmpty}{1}{%
   \begingroup
-    \edef\pgfmath at temp{#1}%
+    \def\pgfmath at temp{#1}%
     \pgfutil at ifxempty\pgfmath at temp{\def\pgfmathresult{1}}{\def\pgfmathresult{0}}%                           
     \pgfmath at smuggleone\pgfmathresult
   \endgroup}
 
-\pgfqkeys{/utils}{
-  if/.code n args=3{%
-    \pgfmathparse{#1}%
-    \ifdim\pgfmathresult pt=0pt
-      \expandafter\pgfutil at firstoftwo
-    \else
-      \expandafter\pgfutil at secondoftwo
-    \fi
-    {\pgfkeysalso{#3}}%
-    {\pgfkeysalso{#2}}},
-  IF/.code args={(#1)#2}{%
-    \pgfmathparse{#1}%
-    \pgfutil at in@{else}{#2}%
-    \ifpgfutil at in@
-      \expandafter\pgfutil at firstoftwo
-    \else
-      \expandafter\pgfutil at secondoftwo
-    \fi
-    {\tikzext at misc@handle at else#2\pgf at stop}{\tikzext at misc@handle at else#2else\pgf at stop}%
-  },
-  TeX/if/.code n args={4}{%
-    \if#1#2\expandafter\pgfutil at firstoftwo\else\expandafter\pgfutil at secondoftwo\fi
-    {\pgfkeysalso{#3}}{\pgfkeysalso{#4}}%
-  },
-  TeX/ifnum/.code n args={3}{%
-    \ifnum#1\relax\expandafter\pgfutil at firstoftwo\else\expandafter\pgfutil at secondoftwo\fi
-    {\pgfkeysalso{#2}}{\pgfkeysalso{#3}}%
-  },
-  TeX/ifdim/.code n args={3}{%
-    \ifdim#1\relax\expandafter\pgfutil at firstoftwo\else\expandafter\pgfutil at secondoftwo\fi
-    {\pgfkeysalso{#2}}{\pgfkeysalso{#3}}%
-  },
-  TeX/ifx/.code n args={4}{%
-    \ifx#1#2\relax\expandafter\pgfutil at firstoftwo\else\expandafter\pgfutil at secondoftwo\fi
-    {\pgfkeysalso{#3}}{\pgfkeysalso{#4}}%
-  },
-  TeX/ifempty/.code n args={3}{%
-    \edef\pgfkeys at temp{#1}%
-    \pgfutil at ifxempty\pgfkeys at temp{\pgfkeysalso{#2}}{\pgfkeysalso{#3}}%
-  },
-  tex/.search also=/utils/TeX,
-}
-\def\tikzext at misc@handle at else#1else#2\pgf at stop{%
-  \ifdim\pgfmathresult pt=0pt
-    \expandafter\pgfutil at firstoftwo
-  \else
-    \expandafter\pgfutil at secondoftwo
-  \fi
-  {\pgfkeysalso{#2}}%
-  {\pgfkeysalso{#1}}}
-
 \pgfset{
   declare constant/.code={%
     \let\pgfmathdeclareconstant@@@\pgfutil at empty

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-23 00:37:47 UTC (rev 64787)
+++ trunk/Master/texmf-dist/tex/latex/tikz-ext/tikzlibraryext.paths.arcto.code.tex	2022-10-23 20:36:18 UTC (rev 64788)
@@ -306,12 +306,12 @@
     % 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
+      \ifdim\pgf at arcto@theta at end pt<\pgf at arcto@theta at start pt
         \pgfmathsetmacro\pgf at arcto@theta at end{\pgf at arcto@theta at end+360}%
       \fi
     \else
       % clockwise
-      \ifdim\pgf at arcto@theta at end pt>\pgf at arcto@theta at start path
+      \ifdim\pgf at arcto@theta at end pt>\pgf at arcto@theta at start pt
         \pgfmathsetmacro\pgf at arcto@theta at end{\pgf at arcto@theta at end-360}%
       \fi
     \fi



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