texlive[57444] Master: tikz-bbox (16jan21)

commits+karl at tug.org commits+karl at tug.org
Sat Jan 16 23:26:49 CET 2021


Revision: 57444
          http://tug.org/svn/texlive?view=revision&revision=57444
Author:   karl
Date:     2021-01-16 23:26:49 +0100 (Sat, 16 Jan 2021)
Log Message:
-----------
tikz-bbox (16jan21)

Modified Paths:
--------------
    trunk/Master/tlpkg/bin/tlpkg-ctan-check
    trunk/Master/tlpkg/tlpsrc/collection-pictures.tlpsrc

Added Paths:
-----------
    trunk/Master/texmf-dist/doc/latex/tikz-bbox/
    trunk/Master/texmf-dist/doc/latex/tikz-bbox/README.txt
    trunk/Master/texmf-dist/doc/latex/tikz-bbox/pgfmanual-en-library-bbox.tex
    trunk/Master/texmf-dist/doc/latex/tikz-bbox/pgfmanual4bbox.pdf
    trunk/Master/texmf-dist/doc/latex/tikz-bbox/pgfmanual4bbox.tex
    trunk/Master/texmf-dist/tex/latex/tikz-bbox/
    trunk/Master/texmf-dist/tex/latex/tikz-bbox/pgflibrarybbox.code.tex
    trunk/Master/tlpkg/tlpsrc/tikz-bbox.tlpsrc

Added: trunk/Master/texmf-dist/doc/latex/tikz-bbox/README.txt
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tikz-bbox/README.txt	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/tikz-bbox/README.txt	2021-01-16 22:26:49 UTC (rev 57444)
@@ -0,0 +1,24 @@
+tikz-bbox
+=========
+
+Copyright 2021 by marmotghost.
+v0.1
+
+This file may be distributed and/or modified under the 
+LaTeX project public license (LPPL), version 1.3c
+see
+https://www.latex-project.org/lppl/lppl-1-3c/
+
+
+The built-in determination of the bounding box in TikZ is not entirely accurate.
+This is because, for Bezier curves, it is the smallest box that contains all
+control points, which is in general larger than the box that just contains the
+curve. This library determines the exact bounding box of the curve.
+
+In order to load this library in a LaTeX document, you need to add 
+
+\usetikzlibrary{bbox}
+
+to the preamble after loading the tikz package. While this library might
+possibly work with TeX or ConTeXt, this has never been tested. This library
+loads and uses the fpu library. 


Property changes on: trunk/Master/texmf-dist/doc/latex/tikz-bbox/README.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/tikz-bbox/pgfmanual-en-library-bbox.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tikz-bbox/pgfmanual-en-library-bbox.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/tikz-bbox/pgfmanual-en-library-bbox.tex	2021-01-16 22:26:49 UTC (rev 57444)
@@ -0,0 +1,181 @@
+% Copyright 2021 by marmotghost
+% v0.1
+%
+% This file may be distributed and/or modified under the 
+% LaTeX project public license (LPPL), version 1.3c
+% see
+% https://www.latex-project.org/lppl/lppl-1-3c/
+%
+% It has been claimed that the license of this library had been changed so that this
+% library is no longer part of pgf. This claim is a lie. There was no license change
+% at all. Now, in 2021, the license got changed to LaTeX project public license
+% (LPPL), version 1.3c.
+
+\section{Bounding Boxes for B\'ezier Curves}
+
+
+\begin{pgflibrary}{bbox}
+    This library provides methods to determine tight bounding boxes for
+    B\'ezier curves. This library loads and uses the
+	|fpu| library. While this library might
+	possibly work with |TeX| or |ConTeXt|, this has never been tested.
+\end{pgflibrary}
+
+\subsection{Bounding box without the library}
+
+\tikzname\ determines the bounding box of (cubic) Bezier curves by establishing the
+smallest rectangle that contains the end point and the two control points of the
+curve.
+
+\begin{codeexample}[width=5cm]
+\begin{tikzpicture}[%
+	bullet/.style={circle,fill,
+		inner sep=1pt}]
+ \draw (0,0) .. controls (-1,1) 
+ 	and (1,2) .. (2,0);
+ \draw (current bounding box.south west) 
+ 	rectangle 
+  (current bounding box.north east);
+ \draw[red,dashed] 
+ 	(0,0) -- (-1,1) 
+	node[bullet,label=above:{$(x_a,y_a)$}]{}
+    (2,0) -- (1,2) 
+	node[bullet,label=above:{$(x_b,y_b)$}]{};
+ \path (0,0) 
+ 	node[bullet,label=below:{$(x_0,y_0)$}]{}
+ 	(2,0) 
+	node[bullet,label=below:{$(x_1,y_1)$}]{};
+\end{tikzpicture}
+\end{codeexample}
+
+As one can see from this illustration, this may lead to drastic overestimates of
+the bounding box.
+
+\subsection{Computing the bounding box}
+
+Establishing the precise bounding box has been discussed in various places, the
+following discussion uses in part the results from
+\url{https://pomax.github.io/bezierinfo/}. What is a cubic B\'ezier curve? A
+cubic B\'ezier curve running from $(x_0,y_0)$ to $(x_1,y_1)$ with control points
+$(x_a,y_a)$ and $(x_b,y_b)$ can be parametrized by
+\begin{equation}
+ \gamma(t)~=~
+ \begin{pmatrix} x(t)\\ y(t) \end{pmatrix}~=~
+ \begin{pmatrix}t^3 x_{1}+3 t^2 (1-t) x_{b}+(1-t)^3
+   x_{0}+3 t (1-t)^2 x_{a}\\
+   t^3 y_{1}+3
+   t^2 (1-t) y_{b}+(1-t)^3 y_{0}+3 t (1-t)^2
+   y_{a}\end{pmatrix}\;,\label{eq:gammaBezier}
+\end{equation}
+where $t$ runs from $0$ to $1$ (and $\gamma(0)=(x_0,y_0)$ and
+$\gamma(1)=(x_1,y_1)$). Surely, the bounding box has to contain
+$(x_0,y_0)$ and $(x_1,y_1)$. If the functions $x(t)$ and $y(t)$ have extrema in
+the interval $[0,1]$, then the bounding box will in general be larger than that.
+In order to determine the extrema of the curve, all
+we need to find the extrema of the functions $x(t)$ and $y(t)$ for $0\le t\le
+1$. That is, we need to find the solutions of the quadratic equations
+\begin{equation}
+ \frac{\mathrm{d}x}{\mathrm{d}t}(t)~=~0\quad\text{and}\quad
+ \frac{\mathrm{d}y}{\mathrm{d}t}(t)~=~0\;.
+\end{equation}
+% (*parametrization of x:*)
+% myx = x0 (1 - t)^3 + 3 xa (1 - t)^2 t + 3 xb (1 - t) t^2 +  x1 t^3 
+% (*d1\ne0 condition for t1 and t2 to exist*)
+% === (*case d1\ne0*) == 
+% d1 =  x0 - x1 - 3 xa + 3 xb
+% (*square root, d2=0 \[Rule] only one solution,d2<0 \[Rule] no solution*)
+% d2 =  x0*x1 - x1*xa + xa*xa - x0*xb - xa xb +  xb*xb 
+% (*first t*)
+% t1 = (x0 - 2*xa + xb - sqrt(d2))/(x0 - x1 - 3*xa + 3*xb)
+%    = (x0 - 2*xa + xb - sqrt(d2))/d1
+% (*second t*)
+% t2 = (x0 - 2*xa + xb + sqrt(d2))/(x0 - x1 - 3*xa + 3*xb)
+%    = (x0 - 2*xa + xb + sqrt(d2))/d1
+% === (*case d1=0*) == 
+% (*2nd condition for extra condition: d3\ne0*)
+% d3 = x1 + xa - 2 xb
+% (*third t*)
+% t3 = (x1 + 2*xa -  3*xb)/(2*d3)% d3 = x1 + 3 xa - 3 xb - x0
+Let's discuss $x$ first. If the discriminant
+\begin{equation}
+ d~:=~x_0\,x_1 - x_1\,x_a + x_a\,x_a - x_0\,x_b - x_a x_b +  x_b\,x_b
+\end{equation}
+is greater than 0, there are two solutions
+\begin{equation}
+ t_\pm~=~\frac{x_{0}-2x_{a}+x_{b}\pm\sqrt{d}}{%
+ 	x_{0}-x_{1}-3(x_{a}- x_{b})} \;.
+\end{equation}  
+If the denominator $x_{0}-x_{1}-3(x_{a}- x_{b})$  vanishes, one may use the
+l'Hospital rule to determine the solutions.
+In this case, we need to make sure that the bounding box contains, say
+$(x(t_-),y_0)$ and $(x(t_+),y_0)$. If $d\le0$, the bounding box does not need to
+be increased in the $x$ direction. On the other hand, if there are solutions,
+one needs include the points $\bigl(x(t_\pm),y_0\bigr)$ with $x(t)$ from
+\eqref{eq:gammaBezier} in the bounding box. 
+
+The analogous statements apply to $y(t)$. 
+
+\subsection{Using the library}
+
+\begin{key}{/pgf/bezier bounding box=\meta{boolean} (default true)}
+    Turn the tight bounding box algorithm on and off. The initial value is
+	|false|.
+
+	\emph{Caveat:} As can be seen from the derivations, the necessary
+	computations involve the squaring of lengths and taking ratios of lengths,
+	which can easily lead to |dimension too large| errors. The library uses
+	|fpu| to account for that, but errors may still occur.
+\end{key}
+
+
+\begin{codeexample}[width=5cm]
+\begin{tikzpicture}[bezier bounding box,%
+	bullet/.style={circle,fill,
+		inner sep=1pt}]
+ \draw (0,0) .. controls (-1,1) 
+ 	and (1,2) .. (2,0);
+ \draw (current bounding box.south west) 
+ 	rectangle 
+  (current bounding box.north east);
+ \draw[red,dashed] 
+ 	(0,0) -- (-1,1) 
+	node[bullet,label=above:{$(x_a,y_a)$}]{}
+    (2,0) -- (1,2) 
+	node[bullet,label=above:{$(x_b,y_b)$}]{};
+ \path (0,0) 
+ 	node[bullet,label=below:{$(x_0,y_0)$}]{}
+ 	(2,0) 
+	node[bullet,label=below:{$(x_1,y_1)$}]{};
+\end{tikzpicture}
+\end{codeexample}
+
+A few comments are in order. 
+\begin{enumerate}
+\item For paths with arrow heads one may need to load the \texttt{bending}
+ library. This is because otherwise the quick arrow head distorts the path, and
+ this happens after the bounding box has been computed. Even worse, arrow heads
+ could get deformed.
+\item If you shorten a path by some negative length, the bounding box will not
+ be accurate either. However, this has nothing to do with curves, it also
+ applies to straight lines. So this is not specific to the |bbox| library but
+ something that one may want to keep in mind.
+\item Let us also note that the computations can lead to |Dimension too large|
+ errors. These errors do not come directly from the computations done by the
+ library, which uses |fpu| for its computations, but from the aftermath. Many of
+ these problems can be avoided by using the |fpu| library also for computing
+ reciprocals, which can be achieved using the key 
+ |/pgf/fpu/install only={reciprocal}|. This allows one to fix many 
+ |Dimension too large| errors in  other libraries, which are not related to the
+ present one, and also fixes inaccuracies of (inverse) transformations when the
+ scale factors are not integer.
+\end{enumerate}
+
+\subsection{Reporting a bug}
+
+This library is maintained at the GitHub repository
+\href{https://github.com/marmotghost/tikz-bbox}{tikz-bbox}, where issues can get
+reported. The author is also active on the noncommercial \TeX\ Q\,\&\,A site
+\href{https://topanswers.xyz/tex}{topanswers.xyz/tex}, where requests that are not
+issues in the strict sense can be discussed.
+
+\endinput


Property changes on: trunk/Master/texmf-dist/doc/latex/tikz-bbox/pgfmanual-en-library-bbox.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/tikz-bbox/pgfmanual4bbox.pdf
===================================================================
(Binary files differ)

Index: trunk/Master/texmf-dist/doc/latex/tikz-bbox/pgfmanual4bbox.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tikz-bbox/pgfmanual4bbox.pdf	2021-01-16 22:25:10 UTC (rev 57443)
+++ trunk/Master/texmf-dist/doc/latex/tikz-bbox/pgfmanual4bbox.pdf	2021-01-16 22:26:49 UTC (rev 57444)

Property changes on: trunk/Master/texmf-dist/doc/latex/tikz-bbox/pgfmanual4bbox.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/pdf
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/tikz-bbox/pgfmanual4bbox.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tikz-bbox/pgfmanual4bbox.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/tikz-bbox/pgfmanual4bbox.tex	2021-01-16 22:26:49 UTC (rev 57444)
@@ -0,0 +1,26 @@
+\documentclass[a4paper]{ltxdoc}
+\usepackage[version=latest]{pgf}
+\usepackage{xkeyval,calc,listings,tikz,fp,amsmath,amssymb}
+\usepackage[T1]{fontenc}%
+\usepackage{makeidx}
+\makeindex
+\usepackage{hyperref}
+\hypersetup{%
+        colorlinks=true,
+        linkcolor=blue,
+        filecolor=blue,
+        urlcolor=blue,
+        citecolor=blue,
+        pdfborder=0 0 0,
+}
+\makeatletter          % see https://tex.stackexchange.com/q/33946
+\input{pgfmanual.code} % 
+\makeatother           % 
+\input{pgfmanual-en-macros.tex} % link from
+% /usr/local/texlive/2019/texmf-dist/doc/generic/pgf/macros/pgfmanual-en-macros.tex
+% or the equivalent on your installation
+\def\pgfautoxrefs{1}
+\usetikzlibrary{bbox}
+\begin{document}
+\input{pgfmanual-en-library-bbox.tex}
+\end{document}


Property changes on: trunk/Master/texmf-dist/doc/latex/tikz-bbox/pgfmanual4bbox.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/latex/tikz-bbox/pgflibrarybbox.code.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tikz-bbox/pgflibrarybbox.code.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/tikz-bbox/pgflibrarybbox.code.tex	2021-01-16 22:26:49 UTC (rev 57444)
@@ -0,0 +1,120 @@
+% Copyright 2021 by marmotghost
+% v0.1
+%
+% This file may be distributed and/or modified under the 
+% LaTeX project public license (LPPL), version 1.3c
+% see
+% https://www.latex-project.org/lppl/lppl-1-3c/
+
+
+\usepgflibrary{fpu}
+\global\let\pgf at bbox@lt at curveto@normal\pgf at lt@curveto
+\global\let\pgf at bbox@nlt at curveto@normal\pgf at nlt@curveto
+
+\pgfqkeys{/pgf}{bezier bounding box/.is if=pgf at bbox@switch@}
+
+
+\def\pgf at bbox@switch at false{%
+  \let\pgf at lt@curveto \pgf at bbox@lt at curveto@normal
+  \let\pgf at nlt@curveto\pgf at bbox@nlt at curveto@normal
+}
+
+\def\pgf at bbox@switch at true{%
+  \let\pgf at lt@curveto \pgf at bbox@curveto
+  \let\pgf at nlt@curveto\pgf at bbox@curveto
+}
+\def\pgf at bbox@curveto#1#2#3#4#5#6{%
+\begingroup
+\pgfkeys{/pgf/fpu,/pgf/fpu/output format=fixed}%
+  % extrema in x
+  % first discriminant d1, must be \ne 0
+  \pgfmathsetmacro{\pgf at temp@a}{(\pgf at path@lastx)-(#5)-3*(#1)+3*(#3)}%
+  \pgfmathtruncatemacro{\pgf at temp@c}{(abs(\pgf at temp@a)>0.1?1:0)}%
+  \ifnum\pgf at temp@c=1\relax
+	% second discriminant d2, must be \ge 0
+	\pgfmathsetmacro{\pgf at temp@b}{(\pgf at path@lastx)*(#5)-(#5)*(#1)+(#1)*(#1)-(\pgf at path@lastx)*(#3)-(#1)*(#3)+(#3)*(#3)}%
+	\pgfmathtruncatemacro{\pgf at temp@c}{sign(\pgf at temp@b)}%
+	\ifnum\pgf at temp@c<0
+	\else
+	  \pgfmathsetmacro{\pgf at temp@b}{sqrt(abs(\pgf at temp@b))}%
+	  \pgfmathsetmacro{\pgf at temp@c}{max(0,min(1,((\pgf at path@lastx)-2*(#1)+(#3)-\pgf at temp@b)/\pgf at temp@a))}%	 
+	  \pgfmathparse{(\pgf at path@lastx)*pow((1-\pgf at temp@c),3)+3*(#1)*pow((1-\pgf at temp@c),2)*\pgf at temp@c+3*(#3)*(1-\pgf at temp@c)*\pgf at temp@c*\pgf at temp@c+(#5)*\pgf at temp@c*\pgf at temp@c*\pgf at temp@c}%
+	  \pgfutil at tempdimb=\pgfmathresult pt\relax%
+      \pgf at protocolsizes{\pgfutil at tempdimb}{\pgf at path@lasty}%
+	  \pgfmathsetmacro{\pgf at temp@c}{max(0,min(1,((\pgf at path@lastx)-2*(#1)+(#3)+\pgf at temp@b)/\pgf at temp@a))}%	 
+	  \pgfmathparse{(\pgf at path@lastx)*pow((1-\pgf at temp@c),3)+3*(#1)*pow((1-\pgf at temp@c),2)*\pgf at temp@c+3*(#3)*(1-\pgf at temp@c)*\pgf at temp@c*\pgf at temp@c+(#5)*\pgf at temp@c*\pgf at temp@c*\pgf at temp@c}%
+	  \pgfutil at tempdimb=\pgfmathresult pt\relax%
+      \pgf at protocolsizes{\pgfutil at tempdimb}{\pgf at path@lasty}%
+	\fi
+  \else
+    % third discriminant d3, must be \ne 0
+    \pgfmathsetmacro{\pgf at temp@b}{abs((#5)+(#1)-2*(#3))}%
+	\pgfmathtruncatemacro{\pgf at temp@c}{(abs(\pgf at temp@b)>0.1?1:0)}%
+	\ifnum\pgf at temp@c=1\relax
+	  \pgfmathsetmacro{\pgf at temp@c}{((#5)+2*(#1)-3*(#3))/((#5)+(#1)-2*(#3))}%
+	  \pgfmathparse{(\pgf at path@lastx)*pow((1-\pgf at temp@c),3)+3*(#1)*pow((1-\pgf at temp@c),2)*\pgf at temp@c+3*(#3)*(1-\pgf at temp@c)*\pgf at temp@c*\pgf at temp@c+(#5)*\pgf at temp@c*\pgf at temp@c*\pgf at temp@c}%
+	  \pgfutil at tempdimb=\pgfmathresult pt\relax%
+      \pgf at protocolsizes{\pgfutil at tempdimb}{\pgf at path@lasty}%
+	\fi
+  \fi
+  % 0/0
+  \pgfmathsetmacro{\pgf at temp@a}{(#5)+(#1)-2*(#3)}%
+  \pgfmathtruncatemacro{\pgf at temp@b}{(abs(\pgf at temp@a)>0.1?1:0)}%
+  \ifnum\pgf at temp@b=1\relax
+    \pgfmathsetmacro{\pgf at temp@c}{max(0,min(1,((#5)+2*(#1)-3*(#3))/(2*\pgf at temp@a)))}%
+  \else	
+    \pgfmathsetmacro{\pgf at temp@c}{0.5}%
+  \fi	
+  \pgfmathparse{(\pgf at path@lastx)*pow((1-\pgf at temp@c),3)+3*(#1)*pow((1-\pgf at temp@c),2)*\pgf at temp@c+3*(#3)*(1-\pgf at temp@c)*\pgf at temp@c*\pgf at temp@c+(#5)*\pgf at temp@c*\pgf at temp@c*\pgf at temp@c}%
+  \pgfutil at tempdimb=\pgfmathresult pt\relax%
+  \pgf at protocolsizes{\pgfutil at tempdimb}{\pgf at path@lasty}%
+%  
+% y code
+  % first discriminant d1, must be \ne 0
+  \pgfmathsetmacro{\pgf at temp@a}{(\pgf at path@lasty)-(#6)-3*(#2)+3*(#4)}%
+  \pgfmathtruncatemacro{\pgf at temp@c}{(abs(\pgf at temp@a)>0.1?1:0)}%
+  \ifnum\pgf at temp@c=1\relax
+	% second discriminant d2, must be \ge 0
+	\pgfmathsetmacro{\pgf at temp@b}{(\pgf at path@lasty)*(#6)-(#6)*(#2)+(#2)*(#2)-(\pgf at path@lasty)*(#4)-(#2)*(#4)+(#4)*(#4)}%
+	\pgfmathtruncatemacro{\pgf at temp@c}{sign(\pgf at temp@b)}%
+	\ifnum\pgf at temp@c<0
+	\else
+	  \pgfmathsetmacro{\pgf at temp@b}{sqrt(abs(\pgf at temp@b))}%
+	  \pgfmathsetmacro{\pgf at temp@c}{max(0,min(1,((\pgf at path@lasty)-2*(#2)+(#4)-\pgf at temp@b)/\pgf at temp@a))}%	 
+	  \pgfmathparse{(\pgf at path@lasty)*pow((1-\pgf at temp@c),3)+3*(#2)*pow((1-\pgf at temp@c),2)*\pgf at temp@c+3*(#4)*(1-\pgf at temp@c)*\pgf at temp@c*\pgf at temp@c+(#6)*\pgf at temp@c*\pgf at temp@c*\pgf at temp@c}%
+	  \pgfutil at tempdimb=\pgfmathresult pt\relax%
+      \pgf at protocolsizes{\pgf at path@lastx}{\pgfutil at tempdimb}%
+	  \pgfmathsetmacro{\pgf at temp@c}{max(0,min(1,((\pgf at path@lasty)-2*(#2)+(#4)+\pgf at temp@b)/\pgf at temp@a))}%	 
+	  \pgfmathparse{(\pgf at path@lasty)*pow((1-\pgf at temp@c),3)+3*(#2)*pow((1-\pgf at temp@c),2)*\pgf at temp@c+3*(#4)*(1-\pgf at temp@c)*\pgf at temp@c*\pgf at temp@c+(#6)*\pgf at temp@c*\pgf at temp@c*\pgf at temp@c}%
+	  \pgfutil at tempdimb=\pgfmathresult pt\relax%
+      \pgf at protocolsizes{\pgf at path@lastx}{\pgfutil at tempdimb}%
+	\fi
+  \else
+    % third discriminant d3, must be \ne 0
+    \pgfmathsetmacro{\pgf at temp@b}{abs((#6)+(#2)-2*(#4))}%
+	\pgfmathtruncatemacro{\pgf at temp@c}{(abs(\pgf at temp@b)>0.1?1:0)}%
+	\ifnum\pgf at temp@c=1\relax
+	  \pgfmathsetmacro{\pgf at temp@c}{((#6)+2*(#2)-3*(#4))/((#6)+(#2)-2*(#4))}%
+	  \pgfmathparse{(\pgf at path@lasty)*pow((1-\pgf at temp@c),3)+3*(#2)*pow((1-\pgf at temp@c),2)*\pgf at temp@c+3*(#4)*(1-\pgf at temp@c)*\pgf at temp@c*\pgf at temp@c+(#6)*\pgf at temp@c*\pgf at temp@c*\pgf at temp@c}%
+	  \pgfutil at tempdimb=\pgfmathresult pt\relax%
+      \pgf at protocolsizes{\pgf at path@lastx}{\pgfutil at tempdimb}%
+	\fi
+  \fi
+  % 0/0
+  \pgfmathsetmacro{\pgf at temp@a}{(#6)+(#2)-2*(#4)}%
+  \pgfmathtruncatemacro{\pgf at temp@b}{(abs(\pgf at temp@a)>0.1?1:0)}%
+  \ifnum\pgf at temp@b=1\relax
+    \pgfmathsetmacro{\pgf at temp@c}{max(0,min(1,((#6)+2*(#2)-3*(#4))/(2*\pgf at temp@a)))}%
+  \else	
+    \pgfmathsetmacro{\pgf at temp@c}{0.5}%
+  \fi	
+  \pgfmathparse{(\pgf at path@lasty)*pow((1-\pgf at temp@c),3)+3*(#2)*pow((1-\pgf at temp@c),2)*\pgf at temp@c+3*(#4)*(1-\pgf at temp@c)*\pgf at temp@c*\pgf at temp@c+(#6)*\pgf at temp@c*\pgf at temp@c*\pgf at temp@c}%
+  \pgfutil at tempdimb=\pgfmathresult pt\relax%
+  \pgf at protocolsizes{\pgf at path@lastx}{\pgfutil at tempdimb}%
+%  
+  \pgf at protocolsizes{\pgf at path@lastx}{\pgf at path@lasty}%
+  \pgf at protocolsizes{#5}{#6}%
+  \endgroup
+  \pgfsyssoftpath at curveto{\the#1}{\the#2}{\the#3}{\the#4}{\the#5}{\the#6}%
+}
+\endinput


Property changes on: trunk/Master/texmf-dist/tex/latex/tikz-bbox/pgflibrarybbox.code.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/tlpkg/bin/tlpkg-ctan-check
===================================================================
--- trunk/Master/tlpkg/bin/tlpkg-ctan-check	2021-01-16 22:25:10 UTC (rev 57443)
+++ trunk/Master/tlpkg/bin/tlpkg-ctan-check	2021-01-16 22:26:49 UTC (rev 57444)
@@ -743,7 +743,7 @@
     threadcol threeddice threeparttable threeparttablex
     thuaslogos thucoursework thumb thumbpdf thumbs thumby thuthesis
     ticket ticollege
-    tikz-3dplot tikz-among-us tikz-bayesnet
+    tikz-3dplot tikz-among-us tikz-bayesnet tikz-bbox
     tikz-cd tikz-dependency tikz-dimline
     tikz-feynhand tikz-feynman tikz-imagelabels tikz-inet
     tikz-kalender tikz-karnaugh tikz-ladder tikz-lake-fig tikz-layers

Modified: trunk/Master/tlpkg/tlpsrc/collection-pictures.tlpsrc
===================================================================
--- trunk/Master/tlpkg/tlpsrc/collection-pictures.tlpsrc	2021-01-16 22:25:10 UTC (rev 57443)
+++ trunk/Master/tlpkg/tlpsrc/collection-pictures.tlpsrc	2021-01-16 22:26:49 UTC (rev 57444)
@@ -25,9 +25,9 @@
 depend callouts
 depend celtic
 depend chemfig
-depend combinedgraphics
 depend circuit-macros
 depend circuitikz
+depend combinedgraphics
 depend curve
 depend curve2e
 depend curves
@@ -35,8 +35,8 @@
 depend diagmac2
 depend ditaa
 depend doc-pictex
+depend dot2texi
 depend dottex
-depend dot2texi
 depend dpcircling
 depend dratex
 depend drs
@@ -124,8 +124,8 @@
 depend pxpgfmark
 depend pxpic
 depend qcircuit
+depend qrcode
 depend quantikz
-depend qrcode
 depend randbild
 depend randomwalk
 depend realhats
@@ -133,12 +133,12 @@
 depend rviewport
 depend sa-tikz
 depend schemabloc
-depend scsnowman
 depend scratch
 depend scratch3
+depend scsnowman
 depend setdeck
+depend signchart
 depend simpleoptics
-depend signchart
 depend smartdiagram
 depend spath3
 depend spectralsequences
@@ -147,10 +147,10 @@
 depend table-fct
 depend texdraw
 depend ticollege
-depend tipfr
 depend tikz-3dplot
 depend tikz-among-us
 depend tikz-bayesnet
+depend tikz-bbox
 depend tikz-cd
 depend tikz-dependency
 depend tikz-dimline
@@ -183,10 +183,10 @@
 depend tikzmark
 depend tikzmarmots
 depend tikzorbital
+depend tikzpackets
 depend tikzpagenodes
-depend tikzpackets
+depend tikzpeople
 depend tikzpfeile
-depend tikzpeople
 depend tikzposter
 depend tikzscale
 depend tikzsymbols
@@ -193,7 +193,7 @@
 depend tikztosvg
 depend tile-graphic
 depend timing-diagrams
-depend tqft
+depend tipfr
 depend tkz-base
 depend tkz-doc
 depend tkz-euclide
@@ -200,6 +200,7 @@
 depend tkz-fct
 depend tkz-orm
 depend tkz-tab
+depend tqft
 depend tsemlines
 depend tufte-latex
 depend utfsym

Added: trunk/Master/tlpkg/tlpsrc/tikz-bbox.tlpsrc
===================================================================


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