summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/generic/pgf/text-en/pgfmanual-en-library-shadows.tex
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/doc/generic/pgf/text-en/pgfmanual-en-library-shadows.tex')
-rw-r--r--Master/texmf-dist/doc/generic/pgf/text-en/pgfmanual-en-library-shadows.tex278
1 files changed, 278 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/generic/pgf/text-en/pgfmanual-en-library-shadows.tex b/Master/texmf-dist/doc/generic/pgf/text-en/pgfmanual-en-library-shadows.tex
new file mode 100644
index 00000000000..2ca29e963f0
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/pgf/text-en/pgfmanual-en-library-shadows.tex
@@ -0,0 +1,278 @@
+% Copyright 2007 by Till Tantau and Mark Wibrow
+%
+% This file may be distributed and/or modified
+%
+% 1. under the LaTeX Project Public License and/or
+% 2. under the GNU Free Documentation License.
+%
+% See the file doc/generic/pgf/licenses/LICENSE for more details.
+
+\section{Shadow Library}
+\label{section-libs-shadows}
+
+\begin{pgflibrary}{shadows}
+ This library defines styles that help adding a (partly) transparent
+ shadow to a path or node.
+\end{pgflibrary}
+
+
+\subsection{Overview}
+
+A \emph{shadow} is usually a black or gray area that is drawn behind a
+path or a node, thereby adding visual depth to a picture. The shadows
+library defines options that make it easy to add shadows to
+paths. Internally, these options are based on using the |preaction|
+option to use a path twice: Once for drawing the shadow (slightly
+shifted) and once for actually using the path.
+
+Note that you can only add shadows to \emph{paths}, not to whole
+scopes.
+
+In addition to the general |shadow| option, there exist special
+options like |circular shadow|. These can only (sensibly) be used with
+a special kind of path (for |circular shadow|, a circle) and, thus,
+there are not as general. The advantage is, however, that they are
+more visually pleasing since these shadows blend smoothly with the
+background. Note that these special shadows use fadings, which few
+printers will support.
+
+
+\subsection{The General Shadow Option}
+
+The shadows are internally created by using a single option called
+|general shadow|. The different options like |drop shadow| or
+|copy shadow| only differ in the commands that they preset.
+
+You will not need to use this option directly under normal
+circumstances.
+
+
+\begin{key}{/tikz/general shadow=\meta{shadow options} (default \normalfont empty)}
+ This option should be given to a |\path| or a |node|. It has the
+ following effect: Before the path is used normally, it is used once
+ with the \meta{shadow options} in force. Furthermore, when the path
+ is ``preused'' in this way, it is shifted and scaled a little bit.
+
+ In detail, the following happens: A |preaction| is used to
+ paint the path in a special manner before it is actually
+ painted. This ``special'' manner is as follows: The options in
+ \meta{shadow options} are used for painting this path. Typically,
+ the \meta{shadow options} will contain options like |fill=black| to
+ create, say, a black shadow. Furthermore, after the \meta{shadow
+ options} have been setup, the following extra canvas
+ transformations are applied to the path: It is scaled by
+ |shadow scale| (with the origin of scaling at the path's center) and
+ it is shifted by |shadow xshift| and |shadow yshift|.
+
+ Note that since scaling and shifting is done using canvas
+ transformations, shadows are not taken into account when the
+ picture's bounding box is computed.
+\begin{codeexample}[]
+\tikz [even odd rule]
+ \draw [general shadow={fill=red}] (0,0) circle (.5) (0.5,0) circle (.5);
+\end{codeexample}
+
+ \begin{key}{/tikz/shadow scale=\meta{factor} (initially 1)}
+ Shadows are scaled by this amount.
+\begin{codeexample}[]
+\tikz [even odd rule]
+ \draw [general shadow={fill=red,shadow scale=1.25}]
+ (0,0) circle (.5) (0.5,0) circle (.5);
+\end{codeexample}
+ \end{key}
+ \begin{key}{/tikz/shadow xshift=\meta{factor} (initially 0pt)}
+ Shadows are shifted horizontally by this amount.
+\begin{codeexample}[]
+\tikz [even odd rule]
+ \draw [general shadow={fill=red,shadow xshift=-5pt}]
+ (0,0) circle (.5) (0.5,0) circle (.5);
+\end{codeexample}
+ \end{key}
+ \begin{key}{/tikz/shadow yshift=\meta{factor} (initially 0pt)}
+ Shadows are shifted vertically by this amount.
+ \end{key}
+\end{key}
+
+
+
+\subsection{Shadows for Arbitrary Paths and Shapes}
+
+\subsubsection{Drop Shadows}
+
+\begin{key}{/tikz/drop shadow=\meta{shadow options} (default \normalfont empty)}
+ This option adds a drop shadow to a path or node. |\path| or a
+ |node|. It uses the |general shadow| and passes the \meta{shadow
+ options} to it plus, before them, the following extra options:
+\begin{codeexample}[code only]
+ shadow scale=1, shadow xshift=.5ex, shadow yshift=-.5ex,
+ opacity=.5, fill=black!50, every shadow
+\end{codeexample}
+
+\begin{codeexample}[]
+\tikz [even odd rule]
+ \filldraw [drop shadow,fill=white] (0,0) circle (.5) (0.5,0) circle (.5);
+\end{codeexample}
+\begin{codeexample}[]
+\begin{tikzpicture}
+ \foreach \i in {1,...,4}
+ \node[starburst,drop shadow,fill=white,draw] at (0,\i) {Burst \i};
+\end{tikzpicture}
+\end{codeexample}
+
+\begin{codeexample}[]
+\begin{tikzpicture}
+ \draw [help lines] (0,0) grid (3,2);
+ \filldraw [drop shadow={opacity=0.25},fill=white]
+ (1,.5) circle (.5) (1.5,.5) circle (.5);
+
+ \filldraw [drop shadow={opacity=1},fill=white]
+ (1,2) circle (.5) (1.5,2) circle (.5);
+\end{tikzpicture}
+\end{codeexample}
+\end{key}
+
+\begin{stylekey}{/tikz/every shadow (initially \normalfont empty)}
+ This style is executed in addition to any \meta{shadow options} for
+ each shadow. Use this style to reconfigure the way shadows are
+ drawn.
+\begin{codeexample}[]
+\begin{tikzpicture}[every shadow/.style={opacity=.8,fill=blue!50!black}]
+ \filldraw [drop shadow,fill=white] (0,0) circle (.5) (0.5,0) circle (.5);
+\end{tikzpicture}
+\end{codeexample}
+\end{stylekey}
+
+
+
+\subsubsection{Copy Shadows}
+
+A \emph{copy shadow} is not really a shadow. Rather, it looks like
+another copy of the path drawn behind the path and a little bit
+offset. This creates the visual impression of having multiple copies
+of the path/object present.
+
+\begin{key}{/tikz/copy shadow=\meta{shadow options} (default \normalfont empty)}
+ This shadow installs the following default options:
+\begin{codeexample}[code only]
+ shadow scale=1, shadow xshift=.5ex, shadow yshift=-.5ex, every shadow
+\end{codeexample}
+ Furthermore, the options |fill=|\meta{fill color} and
+ |draw=|\meta{draw color} are also set, where the \meta{fill color}
+ and \meta{draw color} are the fill and draw colors used for the main
+ path.
+\begin{codeexample}[]
+\begin{tikzpicture}
+ \node [copy shadow,fill=blue!20,draw=blue,thick] {Hello World!};
+
+ \node at (0,-1) [copy shadow={shadow xshift=1ex,shadow yshift=1ex},
+ fill=blue!20,draw=blue,thick]
+ {Hello World!};
+
+ \node at (0,-2) [copy shadow={opacity=.5},tape,
+ fill=blue!20,draw=blue,thick]
+ {Hello World!};
+
+ % We have to repeat the left color since shadings are not
+ % automatically applied to shadows
+ \node at (0,-3) [copy shadow={left color=blue!50},
+ left color=blue!50,draw=blue,thick]
+ {Hello World!};
+\end{tikzpicture}
+\end{codeexample}
+\end{key}
+
+\begin{key}{/tikz/double copy shadow=\meta{shadow options} (default \normalfont empty)}
+ This shadow works like a |copy shadow|, only the shadow is added
+ twice, the first time with the double |xshift| and |yshift|.
+\begin{codeexample}[]
+\begin{tikzpicture}
+ \node [double copy shadow,fill=blue!20,draw=blue,thick] {Hello World!};
+
+ \node at (0,-1) [double copy shadow={shadow xshift=1ex,shadow yshift=1ex},
+ fill=blue!20,draw=blue,thick]
+ {Hello World!};
+
+ \node at (0,-2) [double copy shadow={opacity=.5},tape,
+ fill=blue!20,draw=blue,thick]
+ {Hello World!};
+
+ \node at (0,-3) [double copy shadow={left color=blue!50},
+ left color=blue!50,draw=blue,thick]
+ {Hello World!};
+\end{tikzpicture}
+\end{codeexample}
+\end{key}
+
+
+\subsection{Shadows for Special Paths and Nodes}
+
+The shadows in this section should normally be added only to paths
+that have a special shape. They will look strange with other shapes.
+
+\begin{key}{/tikz/circular drop shadow=\meta{shadow options}}
+ This shadow works like a drop shadow, only it adds a circular
+ fading to the shadow. This means that the shadow will fade out at
+ the border. The following options are preset for this shadow:
+\begin{codeexample}[code only]
+ shadow scale=1.1, shadow xshift=.3ex, shadow yshift=-.3ex,
+ fill=black, path fading={circle with fuzzy edge 15 percent},
+ every shadow,
+\end{codeexample}
+
+\begin{codeexample}[]
+\begin{tikzpicture}
+ \foreach \i in {1,...,8}
+ \node[circle,circular drop shadow,draw=blue,fill=blue!20,thick]
+ at (\i*45:1) {Circle \i};
+\end{tikzpicture}
+\end{codeexample}
+\end{key}
+
+
+\begin{key}{/tikz/circular glow=\meta{shadow options}}
+ This shadow works much like the |circular shadow|, only it is not
+ shifted. This creates a visual effect of a ``glow'' behind the
+ circle. The following options are preset for this shadow:
+\begin{codeexample}[code only]
+ shadow scale=1.25, shadow xshift=0pt, shadow yshift=0pt,
+ fill=black, path fading={circle with fuzzy edge 15 percent},
+ every shadow,
+\end{codeexample}
+
+\begin{codeexample}[]
+\begin{tikzpicture}
+ \foreach \i in {1,...,8}
+ \node[circle,circular glow,fill=red!20,draw=red,thick]
+ at (\i*45:1) {Circle \i};
+\end{tikzpicture}
+\end{codeexample}
+\begin{codeexample}[]
+\begin{tikzpicture}
+ \foreach \i in {1,...,8}
+ \node[circle,circular glow={fill=white},fill=red!20,draw=red,thick]
+ at (\i*45:1) {Circle \i};
+\end{tikzpicture}
+\end{codeexample}
+\begin{codeexample}[]
+\begin{tikzpicture}
+ \foreach \i in {1,...,8}
+ \node[circle,circular glow={fill=green},fill=black,text=green!50!black]
+ at (\i*45:1) {Circle \i};
+\end{tikzpicture}
+\end{codeexample}
+ An especially interesting effect can be achieved by only using the
+ glow and not filling the path:
+\begin{codeexample}[]
+\begin{tikzpicture}
+ \foreach \i in {1,...,8}
+ \node[circle,circular glow={fill=red!\i0}]
+ at (\i*45:1) {Circle \i};
+\end{tikzpicture}
+\end{codeexample}
+\end{key}
+
+
+%%% Local Variables:
+%%% mode: latex
+%%% TeX-master: "pgfmanual-pdftex-version"
+%%% End: