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