texlive[48446] Master/texmf-dist: pgf-blur (21aug18)

commits+karl at tug.org commits+karl at tug.org
Tue Aug 21 23:47:22 CEST 2018


Revision: 48446
          http://tug.org/svn/texlive?view=revision&revision=48446
Author:   karl
Date:     2018-08-21 23:47:21 +0200 (Tue, 21 Aug 2018)
Log Message:
-----------
pgf-blur (21aug18)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/latex/pgf-blur/pgf-blur.pdf
    trunk/Master/texmf-dist/source/latex/pgf-blur/pgf-blur.dtx
    trunk/Master/texmf-dist/source/latex/pgf-blur/pgf-blur.ins
    trunk/Master/texmf-dist/tex/latex/pgf-blur/tikzlibraryshadows.blur.code.tex

Added Paths:
-----------
    trunk/Master/texmf-dist/doc/latex/pgf-blur/README.md

Removed Paths:
-------------
    trunk/Master/texmf-dist/doc/latex/pgf-blur/README

Deleted: trunk/Master/texmf-dist/doc/latex/pgf-blur/README
===================================================================
--- trunk/Master/texmf-dist/doc/latex/pgf-blur/README	2018-08-21 04:56:42 UTC (rev 48445)
+++ trunk/Master/texmf-dist/doc/latex/pgf-blur/README	2018-08-21 21:47:21 UTC (rev 48446)
@@ -1,15 +0,0 @@
-Package pgf-blur
-----------------
-
-Copyright 2012 Martin Giese, martingi at ifi.uio.no
-
-This file is under the LaTeX Project Public License 
-See CTAN archives in directory macros/latex/base/lppl.txt.
-See http://www.ctan.org/tex-archive/help/Catalogue/licenses.lppl.html
-for the details of that license.
-
-DESCRIPTION:
-  `pgf-blur' adds blurred/faded/fuzzy shadows to TikZ/PGF
-
-Run (pdf)latex on pgf-blur.dtx to produce a TikZ library file
-and the documentation.

Added: trunk/Master/texmf-dist/doc/latex/pgf-blur/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/pgf-blur/README.md	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/pgf-blur/README.md	2018-08-21 21:47:21 UTC (rev 48446)
@@ -0,0 +1,73 @@
+Package pgf-blur
+================
+
+The package adds blurred/faded/fuzzy shadows to PGF/TikZ pictures.
+It is configured as a TikZ/PGF library module. 
+
+Run (pdf)latex on pgf-blur.dtx to produce a TikZ library file
+and the documentation.
+
+Development
+-----------
+
+Martin Giese has stopped working on pgf-blur and pgf-blur is now
+developed at https://github.com/norbusan/pgf-blur
+
+Issues and Bugs
+---------------
+
+Please report issues to https://github.com/norbusan/pgf-blur/issues
+
+Currently (as of TL2018) multiple drop shadows can produce problems
+with xelatex (dvipdfmx) when including a pdf with drop shadows into
+another pdf. A typical error is
+
+	xdvipdfmx:fatal: Loop in object hierarchy detected. Broken PDF file?
+
+This will be fixed in TL2019 with an update to dvipdfmx. luatex and pdftex
+do not exhibit this problem.
+
+
+License and Copyright
+---------------------
+
+	Copyright 2012 Martin Giese, martingi at ifi.uio.no
+	Copyright 2012 Andrew Stacey
+	Copyright 2018 Norbert Preining, norbert at preining.info
+
+This file is under the LaTeX Project Public License 
+See CTAN archives in directory macros/latex/base/lppl.txt.
+See http://www.ctan.org/tex-archive/help/Catalogue/licenses.lppl.html
+for the details of that license.
+
+
+Details:
+
+The original version was developed by Martin Giese:
+
+	Copyright 2012 Martin Giese, martingi at ifi.uio.no
+
+who handed over maintainership to Norbert Preining in 2018
+
+Message-Id: <BDCE3150-A170-4AC9-B1E3-2903DA9D390F at ifi.uio.no>
+
+	Ich finde es gut, wenn sich jemand um die Verbesserung der package kümmern möchte.
+	Wenn du willst kannst du gerne die Rolle des Maintainers übernehmen.  Ich werde
+	selber wahrscheinlich keine Zeit mehr haben, mich darum zu kümmern.  So lange
+	die Doku einen Hinweis behält, dass die ursprüngliche Version von mir kam,
+	bin ich glücklich.
+
+Additions by Andrew Stacey are public domain, CC0, or LPPL
+
+	Copyright 2012 Andrew Stacey
+
+Message-ID: <cd8cae1b-c5c9-9fcc-8822-fff529375bb5 at mathforge.org>
+
+	"My additions to the pgf-blur code are hereby placed in the public domain to
+	the extent governable by law.  Explicitly, they are dually placed under the
+	CC0 licence and the LPPL licence."
+
+Current maintainership, uploads, etc
+
+	Copyright 2018 Norbert Preining, norbert at preining.info
+


Property changes on: trunk/Master/texmf-dist/doc/latex/pgf-blur/README.md
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/doc/latex/pgf-blur/pgf-blur.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/source/latex/pgf-blur/pgf-blur.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/pgf-blur/pgf-blur.dtx	2018-08-21 04:56:42 UTC (rev 48445)
+++ trunk/Master/texmf-dist/source/latex/pgf-blur/pgf-blur.dtx	2018-08-21 21:47:21 UTC (rev 48446)
@@ -11,6 +11,8 @@
 \askforoverwritefalse
 \preamble
 Copyright 2012 Martin Giese, martingi at ifi.uio.no
+Copyright 2012 Andrew Stacey
+Copyright 2018 Norbert Preining, norbert at preining.info
 
 This file is under the LaTeX Project Public License 
 See CTAN archives in directory macros/latex/base/lppl.txt.
@@ -67,7 +69,7 @@
 %</driver>
 %\fi
 %
-% \CheckSum{338}
+% \CheckSum{475}
 %
 % \CharacterTable
 %  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
@@ -88,17 +90,21 @@
 %
 % \changes{v1.00}{2012/04/20}{First public release. (mg)}
 % \changes{v1.01}{2012/04/24}{Remove antialiasing/clipping artefacts (mg)}
+% \changes{v1.02}{2018/08/21}{Fix multiple shadows, support inversion (as), changed maintainer (np)}
 %
 % \DoNotIndex{\!,\",\#,\$,\%,\&,\',\(,\+,\*,\,,\-,\.,\/,\:,\;,\<,\=,\>,\?}
 % \setcounter{IndexColumns}{2}
 %
 % \title{\textsf{pgf-blur} package \\ version \fileversion}
-% \author{Martin Giese\thanks{\protect\url{martingi at ifi.uio.no}}}
+% \author{Martin Giese}
 % \date{\filedate}
 % \maketitle
 %
 %\def\tikzname{Ti\emph{k}Z}
 %
+%\begin{center}
+%  Currently maintained by Norbert Preining\footnote{\protect\url{https://github.com/norbusan/pgf-blur}}
+%\end{center}
 %
 %\begin{center}
 %  \small \textbf{Acknowledgement}\\ This package evolved from a discussion
@@ -466,8 +472,8 @@
 % import the original shadow code for the offset and scale parameters.
 %    \begin{macrocode}
 %<*texfile>
-\def\fileversion{1.01}
-\def\filedate{2012/04/24}
+\def\fileversion{1.02}
+\def\filedate{2012/12/09}
 \message{ v\fileversion, \filedate}
 \usetikzlibrary{shadows}
 \usetikzlibrary{calc}
@@ -474,6 +480,19 @@
 %    \end{macrocode}
 %  \end{macro}
 %\end{macro}
+%\begin{macro}{\ifpgfbs at invert@fading}
+% An |\if| to control whether to invert the fading or not.
+%    \begin{macrocode}
+\newif\ifpgfbs at invert@fading
+%    \end{macrocode}
+%\end{macro}
+%\begin{macro}{\pgfbs at fading@count}
+% A |count| to make the names unique
+%    \begin{macrocode}
+\newcount\pgfbs at fading@count
+\pgfbs at fading@count=0\relax
+%    \end{macrocode}
+%\end{macro}
 %\begin{macro}{shadow blur radius}
 %\begin{macro}{shadow blur extra rounding}
 %\begin{macro}{shadow blur steps}
@@ -495,6 +514,7 @@
   /tikz/shadow blur extra rounding/.default=\pgfbs at radius,
   /tikz/shadow blur steps/.store in=\pgfbs at steps,
   /tikz/shadow blur steps=4,
+  /tikz/shadow blur invert/.is if=pgfbs at invert@fading,
   /tikz/shadow opacity/.store in=\pgfbs at opacity,
   /tikz/shadow opacity=40,
 %    \end{macrocode}
@@ -532,14 +552,19 @@
 %    \begin{macrocode}
   /tikz/render blur shadow/.code={
     \pgfbs at savebb
+    \global\advance\pgfbs at fading@count by 1\relax
     \pgfsyssoftpath at getcurrentpath{\pgfbs at input@path}%
     \pgfbs at compute@shadow at bbox
     \pgfbs at process@rounding{\pgfbs at input@path}{\pgfbs at fadepath}%
     \pgfbs at apply@canvas at transform
     \colorlet{pstb at shadow@color}{white!\pgfbs at opacity!black}%
-    \pgfdeclarefading{shadowfading}{\pgfbs at paint@fading}%
+    \ifpgfbs at invert@fading
+    \pgfdeclarefading{shadowfading-\the\pgfbs at fading@count}{\pgfbs at paint@invert at fading}%
+    \else
+    \pgfdeclarefading{shadowfading-\the\pgfbs at fading@count}{\pgfbs at paint@fading}%
+    \fi
     \pgfsetfillcolor{black}%
-    \pgfsetfading{shadowfading}%
+    \pgfsetfading{shadowfading-\the\pgfbs at fading@count}%
        {\pgftransformshift{\pgfpoint{\pgfbs at midx}{\pgfbs at midy}}}%
     \pgfbs at usebbox{fill}%
     \pgfbs at restorebb
@@ -658,7 +683,7 @@
 %\begin{macro}{\pgfbs at shadow@bbox}
 % This macro figures out the bounding box of the shadow: it's the
 % same as the bounding box of the current path, but enlarged by
-% the blur radius in each direction.  It also computes the
+% twice (for the inverse shadow) the blur radius in each direction.  It also computes the
 % coordinates of the center of the bounding box.  These are
 % stored in macros |\pgfbs@|\{|min|$\mid$|mid|$\mid$|max|\}\{|x|$\mid$|y|\}.
 % It also creates a soft path for the bounding box which is stored in
@@ -671,10 +696,10 @@
   \edef\pgfbs at maxy{\the\pgf at pathmaxy}%
   \pgfmathsetmacro\pgfbs at midx{0.5*(\pgfbs at minx + \pgfbs at maxx)}%
   \pgfmathsetmacro\pgfbs at midy{0.5*(\pgfbs at miny + \pgfbs at maxy)}%
-  \pgfmathsetmacro\pgfbs at minx{\pgfbs at minx - \pgfbs at radius}%
-  \pgfmathsetmacro\pgfbs at miny{\pgfbs at miny - \pgfbs at radius}%
-  \pgfmathsetmacro\pgfbs at maxx{\pgfbs at maxx + \pgfbs at radius}%
-  \pgfmathsetmacro\pgfbs at maxy{\pgfbs at maxy + \pgfbs at radius}%
+  \pgfmathsetmacro\pgfbs at minx{\pgfbs at minx - 2*\pgfbs at radius}%
+  \pgfmathsetmacro\pgfbs at miny{\pgfbs at miny - 2*\pgfbs at radius}%
+  \pgfmathsetmacro\pgfbs at maxx{\pgfbs at maxx + 2*\pgfbs at radius}%
+  \pgfmathsetmacro\pgfbs at maxy{\pgfbs at maxy + 2*\pgfbs at radius}%
   \pgfmathsetmacro\pgfbs at wd{\pgfbs at maxx - \pgfbs at minx}%
   \pgfmathsetmacro\pgfbs at ht{\pgfbs at maxy - \pgfbs at miny}%
   \pgfsyssoftpath at setcurrentpath\pgfutil at empty%
@@ -731,6 +756,19 @@
 }
 %    \end{macrocode}
 %\end{macro}
+%\begin{macro}{\pgfbs at usefadeandbbox}
+% This is similar to the previous macros, but it `uses' both the fading path and the bounding box
+% path.
+%    \begin{macrocode}
+\def\pgfbs at usefadeandbbox#1{%
+  \let\pgfbs at temppath\pgfbs at fadepath
+  \expandafter\expandafter\expandafter\def\expandafter\expandafter\expandafter\pgfbs at temppath\expandafter\expandafter\expandafter{\expandafter\pgfbs at temppath\pgfbs at shadow@bbox}%
+  \pgfsyssoftpath at setcurrentpath{\pgfbs at temppath}%
+  \pgfsyssoftpath at flushcurrentpath%
+  \pgfusepath{#1}%
+}
+%    \end{macrocode}
+%\end{macro}
 %\begin{macro}{\pgfbs at apply@canvas at transform}
 % This achieves the scaling and shifting of the shadow.  It is done by a
 % canvas transform to avoid iterating through a soft path and transforming
@@ -760,6 +798,7 @@
 %    \begin{macrocode}
 \def\pgfbs at paint@fading{
   \pgfpicture
+  \pgfsetbaseline{\pgf at picminy}%
     % fix bounding box.
     \pgfbs at set@fading at pic@bbox
     % compute increments for line width and opacity
@@ -806,6 +845,64 @@
     \pgfbs at usefadepath{stroke}
   \endpgfpicture
 }
+%    \end{macrocode}
+%\end{macro}
+%\begin{macro}{\pgfbs at paint@invert at fading}
+% This is an inverse fading.
+%    \begin{macrocode}
+\def\pgfbs at paint@invert at fading{
+  \pgfpicture
+  \pgfsetbaseline{\pgf at picminy}%
+    % fix bounding box.
+    \pgfbs at set@fading at pic@bbox
+    % compute increments for line width and opacity
+    \pgfmathsetmacro\pgfbs at op@step{50/\pgfbs at steps}
+    \pgfmathsetmacro\pgfbs at wth@step{4*\pgfbs at radius/(2*\pgfbs at steps-1)}
+    % draw the outer part of the fading, 
+    % starting with lightest, outermost line
+    \pgfsetroundjoin
+    \pgfmathsetmacro\pgfbs at max@i{\pgfbs at steps-2}
+    \pgfmathsetmacro\pgfbs at wth{2*\pgfbs at radius}
+    \pgfmathsetmacro\pgfbs at op{0.5*\pgfbs at op@step}
+    \foreach \pgfbs at i in {0,...,\pgfbs at max@i} {
+      \pgfsetlinewidth{\pgfbs at wth pt}
+      \pgfsetstrokecolor{black!\pgfbs at op!pstb at shadow@color}
+      \pgfbs at usefadepath{stroke}
+      \pgfmathsetmacro\pgfbs at wth{\pgfbs at wth-\pgfbs at wth@step}
+      \global\let\pgfbs at wth=\pgfbs at wth
+      \pgfmathsetmacro\pgfbs at op{\pgfbs at op+\pgfbs at op@step}
+      \global\let\pgfbs at op=\pgfbs at op
+    }
+    % clip to inside of path
+    \scope
+    \pgfseteorule
+    \pgfbs at usefadeandbbox{clip}
+    % fill inside with final darkest shadow color
+    \pgfsetfillcolor{pstb at shadow@color}
+    \pgfbs at usebbox{fill}
+    \endscope
+    \scope
+    \pgfbs at usefadepath{clip}
+    % draw the inner part of the fading,
+    % starting with the darkest, innermost line
+    \pgfmathsetmacro\pgfbs at wth{2*\pgfbs at radius}
+    \pgfmathsetmacro\pgfbs at op{100-0.5*\pgfbs at op@step}
+    \foreach \pgfbs at i in {0,...,\pgfbs at max@i} {
+      \pgfsetlinewidth{\pgfbs at wth pt}
+      \pgfsetstrokecolor{black!\pgfbs at op!pstb at shadow@color}
+      \pgfbs at usefadepath{stroke}
+      \pgfmathsetmacro\pgfbs at wth{\pgfbs at wth-\pgfbs at wth@step}
+      \global\let\pgfbs at wth=\pgfbs at wth
+      \pgfmathsetmacro\pgfbs at op{\pgfbs at op-\pgfbs at op@step}
+      \global\let\pgfbs at op=\pgfbs at op
+    }
+    \endscope
+    % a final stroke to hide clip/antialiasing artifcats
+    \pgfsetstrokecolor{black!50!pstb at shadow@color}
+    \pgfsetlinewidth{0.5*\pgfbs at wth@step}
+    \pgfbs at usefadepath{stroke}
+  \endpgfpicture
+}
 %</texfile>
 %    \end{macrocode}
 %\end{macro}

Modified: trunk/Master/texmf-dist/source/latex/pgf-blur/pgf-blur.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex/pgf-blur/pgf-blur.ins	2018-08-21 04:56:42 UTC (rev 48445)
+++ trunk/Master/texmf-dist/source/latex/pgf-blur/pgf-blur.ins	2018-08-21 21:47:21 UTC (rev 48446)
@@ -6,6 +6,8 @@
 %%
 %% pgf-blur.dtx  (with options: `install')
 %% Copyright 2012 Martin Giese, martingi at ifi.uio.no
+%% Copyright 2012 Andrew Stacey
+%% Copyright 2018 Norbert Preining, norbert at preining.info
 %% 
 %% This file is under the LaTeX Project Public License
 %% See CTAN archives in directory macros/latex/base/lppl.txt.
@@ -18,6 +20,8 @@
 \askforoverwritefalse
 \preamble
 Copyright 2012 Martin Giese, martingi at ifi.uio.no
+Copyright 2012 Andrew Stacey
+Copyright 2018 Norbert Preining, norbert at preining.info
 
 This file is under the LaTeX Project Public License
 See CTAN archives in directory macros/latex/base/lppl.txt.

Modified: trunk/Master/texmf-dist/tex/latex/pgf-blur/tikzlibraryshadows.blur.code.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/pgf-blur/tikzlibraryshadows.blur.code.tex	2018-08-21 04:56:42 UTC (rev 48445)
+++ trunk/Master/texmf-dist/tex/latex/pgf-blur/tikzlibraryshadows.blur.code.tex	2018-08-21 21:47:21 UTC (rev 48446)
@@ -6,6 +6,8 @@
 %%
 %% pgf-blur.dtx  (with options: `texfile')
 %% Copyright 2012 Martin Giese, martingi at ifi.uio.no
+%% Copyright 2012 Andrew Stacey
+%% Copyright 2018 Norbert Preining, norbert at preining.info
 %% 
 %% This file is under the LaTeX Project Public License
 %% See CTAN archives in directory macros/latex/base/lppl.txt.
@@ -15,11 +17,14 @@
 %% 
 
 
-\def\fileversion{1.01}
-\def\filedate{2012/04/24}
+\def\fileversion{1.02}
+\def\filedate{2012/12/09}
 \message{ v\fileversion, \filedate}
 \usetikzlibrary{shadows}
 \usetikzlibrary{calc}
+\newif\ifpgfbs at invert@fading
+\newcount\pgfbs at fading@count
+\pgfbs at fading@count=0\relax
 \tikzset{
   /tikz/shadow blur radius/.store in=\pgfbs at radius,
   /tikz/shadow blur radius=.4ex,
@@ -28,6 +33,7 @@
   /tikz/shadow blur extra rounding/.default=\pgfbs at radius,
   /tikz/shadow blur steps/.store in=\pgfbs at steps,
   /tikz/shadow blur steps=4,
+  /tikz/shadow blur invert/.is if=pgfbs at invert@fading,
   /tikz/shadow opacity/.store in=\pgfbs at opacity,
   /tikz/shadow opacity=40,
   /tikz/blur shadow/.style={
@@ -40,14 +46,19 @@
   },
   /tikz/render blur shadow/.code={
     \pgfbs at savebb
+    \global\advance\pgfbs at fading@count by 1\relax
     \pgfsyssoftpath at getcurrentpath{\pgfbs at input@path}%
     \pgfbs at compute@shadow at bbox
     \pgfbs at process@rounding{\pgfbs at input@path}{\pgfbs at fadepath}%
     \pgfbs at apply@canvas at transform
     \colorlet{pstb at shadow@color}{white!\pgfbs at opacity!black}%
-    \pgfdeclarefading{shadowfading}{\pgfbs at paint@fading}%
+    \ifpgfbs at invert@fading
+    \pgfdeclarefading{shadowfading-\the\pgfbs at fading@count}{\pgfbs at paint@invert at fading}%
+    \else
+    \pgfdeclarefading{shadowfading-\the\pgfbs at fading@count}{\pgfbs at paint@fading}%
+    \fi
     \pgfsetfillcolor{black}%
-    \pgfsetfading{shadowfading}%
+    \pgfsetfading{shadowfading-\the\pgfbs at fading@count}%
        {\pgftransformshift{\pgfpoint{\pgfbs at midx}{\pgfbs at midy}}}%
     \pgfbs at usebbox{fill}%
     \pgfbs at restorebb
@@ -120,10 +131,10 @@
   \edef\pgfbs at maxy{\the\pgf at pathmaxy}%
   \pgfmathsetmacro\pgfbs at midx{0.5*(\pgfbs at minx + \pgfbs at maxx)}%
   \pgfmathsetmacro\pgfbs at midy{0.5*(\pgfbs at miny + \pgfbs at maxy)}%
-  \pgfmathsetmacro\pgfbs at minx{\pgfbs at minx - \pgfbs at radius}%
-  \pgfmathsetmacro\pgfbs at miny{\pgfbs at miny - \pgfbs at radius}%
-  \pgfmathsetmacro\pgfbs at maxx{\pgfbs at maxx + \pgfbs at radius}%
-  \pgfmathsetmacro\pgfbs at maxy{\pgfbs at maxy + \pgfbs at radius}%
+  \pgfmathsetmacro\pgfbs at minx{\pgfbs at minx - 2*\pgfbs at radius}%
+  \pgfmathsetmacro\pgfbs at miny{\pgfbs at miny - 2*\pgfbs at radius}%
+  \pgfmathsetmacro\pgfbs at maxx{\pgfbs at maxx + 2*\pgfbs at radius}%
+  \pgfmathsetmacro\pgfbs at maxy{\pgfbs at maxy + 2*\pgfbs at radius}%
   \pgfmathsetmacro\pgfbs at wd{\pgfbs at maxx - \pgfbs at minx}%
   \pgfmathsetmacro\pgfbs at ht{\pgfbs at maxy - \pgfbs at miny}%
   \pgfsyssoftpath at setcurrentpath\pgfutil at empty%
@@ -149,6 +160,13 @@
   \pgfsyssoftpath at flushcurrentpath%
   \pgfusepath{#1}%
 }
+\def\pgfbs at usefadeandbbox#1{%
+  \let\pgfbs at temppath\pgfbs at fadepath
+  \expandafter\expandafter\expandafter\def\expandafter\expandafter\expandafter\pgfbs at temppath\expandafter\expandafter\expandafter{\expandafter\pgfbs at temppath\pgfbs at shadow@bbox}%
+  \pgfsyssoftpath at setcurrentpath{\pgfbs at temppath}%
+  \pgfsyssoftpath at flushcurrentpath%
+  \pgfusepath{#1}%
+}
 \def\pgfbs at apply@canvas at transform{
   \pgflowlevel{
     \pgftransformshift{\pgfpoint{\pgfbs at midx}{\pgfbs at midy}}
@@ -161,6 +179,7 @@
 }
 \def\pgfbs at paint@fading{
   \pgfpicture
+  \pgfsetbaseline{\pgf at picminy}%
     % fix bounding box.
     \pgfbs at set@fading at pic@bbox
     % compute increments for line width and opacity
@@ -207,6 +226,59 @@
     \pgfbs at usefadepath{stroke}
   \endpgfpicture
 }
+\def\pgfbs at paint@invert at fading{
+  \pgfpicture
+  \pgfsetbaseline{\pgf at picminy}%
+    % fix bounding box.
+    \pgfbs at set@fading at pic@bbox
+    % compute increments for line width and opacity
+    \pgfmathsetmacro\pgfbs at op@step{50/\pgfbs at steps}
+    \pgfmathsetmacro\pgfbs at wth@step{4*\pgfbs at radius/(2*\pgfbs at steps-1)}
+    % draw the outer part of the fading,
+    % starting with lightest, outermost line
+    \pgfsetroundjoin
+    \pgfmathsetmacro\pgfbs at max@i{\pgfbs at steps-2}
+    \pgfmathsetmacro\pgfbs at wth{2*\pgfbs at radius}
+    \pgfmathsetmacro\pgfbs at op{0.5*\pgfbs at op@step}
+    \foreach \pgfbs at i in {0,...,\pgfbs at max@i} {
+      \pgfsetlinewidth{\pgfbs at wth pt}
+      \pgfsetstrokecolor{black!\pgfbs at op!pstb at shadow@color}
+      \pgfbs at usefadepath{stroke}
+      \pgfmathsetmacro\pgfbs at wth{\pgfbs at wth-\pgfbs at wth@step}
+      \global\let\pgfbs at wth=\pgfbs at wth
+      \pgfmathsetmacro\pgfbs at op{\pgfbs at op+\pgfbs at op@step}
+      \global\let\pgfbs at op=\pgfbs at op
+    }
+    % clip to inside of path
+    \scope
+    \pgfseteorule
+    \pgfbs at usefadeandbbox{clip}
+    % fill inside with final darkest shadow color
+    \pgfsetfillcolor{pstb at shadow@color}
+    \pgfbs at usebbox{fill}
+    \endscope
+    \scope
+    \pgfbs at usefadepath{clip}
+    % draw the inner part of the fading,
+    % starting with the darkest, innermost line
+    \pgfmathsetmacro\pgfbs at wth{2*\pgfbs at radius}
+    \pgfmathsetmacro\pgfbs at op{100-0.5*\pgfbs at op@step}
+    \foreach \pgfbs at i in {0,...,\pgfbs at max@i} {
+      \pgfsetlinewidth{\pgfbs at wth pt}
+      \pgfsetstrokecolor{black!\pgfbs at op!pstb at shadow@color}
+      \pgfbs at usefadepath{stroke}
+      \pgfmathsetmacro\pgfbs at wth{\pgfbs at wth-\pgfbs at wth@step}
+      \global\let\pgfbs at wth=\pgfbs at wth
+      \pgfmathsetmacro\pgfbs at op{\pgfbs at op-\pgfbs at op@step}
+      \global\let\pgfbs at op=\pgfbs at op
+    }
+    \endscope
+    % a final stroke to hide clip/antialiasing artifcats
+    \pgfsetstrokecolor{black!50!pstb at shadow@color}
+    \pgfsetlinewidth{0.5*\pgfbs at wth@step}
+    \pgfbs at usefadepath{stroke}
+  \endpgfpicture
+}
 \endinput
 %%
 %% End of file `tikzlibraryshadows.blur.code.tex'.



More information about the tex-live-commits mailing list