summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2012-09-23 22:58:55 +0000
committerKarl Berry <karl@freefriends.org>2012-09-23 22:58:55 +0000
commit2dfcba056f6e83b4c2851c7d7ecf950507379c03 (patch)
treef2f54eaceccf65a0b3e5805f3cead83bf45403fa
parent78a3e48037a883dd5eec02cfc7d96a543049f666 (diff)
dynblocks (23sep12)
git-svn-id: svn://tug.org/texlive/trunk@27788 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r--Master/texmf-dist/doc/latex/dynblocks/README2
-rw-r--r--Master/texmf-dist/doc/latex/dynblocks/doc/dynblocks.pdfbin277196 -> 277870 bytes
-rw-r--r--Master/texmf-dist/doc/latex/dynblocks/doc/dynblocks.tex121
-rw-r--r--Master/texmf-dist/doc/latex/dynblocks/latex/dynblocks.sty81
4 files changed, 121 insertions, 83 deletions
diff --git a/Master/texmf-dist/doc/latex/dynblocks/README b/Master/texmf-dist/doc/latex/dynblocks/README
index 500792436e9..1ce27d49e70 100644
--- a/Master/texmf-dist/doc/latex/dynblocks/README
+++ b/Master/texmf-dist/doc/latex/dynblocks/README
@@ -3,7 +3,7 @@
%
% Copyright (C) 2012 Claudio Fiandrino
%
-% v0.1 - 2012/13/05
+% v0.2 - 2012/20/09
%
% * A simple way to create dynamic blocks *
%
diff --git a/Master/texmf-dist/doc/latex/dynblocks/doc/dynblocks.pdf b/Master/texmf-dist/doc/latex/dynblocks/doc/dynblocks.pdf
index 6168a43d7a5..9f4fd83d051 100644
--- a/Master/texmf-dist/doc/latex/dynblocks/doc/dynblocks.pdf
+++ b/Master/texmf-dist/doc/latex/dynblocks/doc/dynblocks.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/dynblocks/doc/dynblocks.tex b/Master/texmf-dist/doc/latex/dynblocks/doc/dynblocks.tex
index 4f7b33931f2..8b877e963ae 100644
--- a/Master/texmf-dist/doc/latex/dynblocks/doc/dynblocks.tex
+++ b/Master/texmf-dist/doc/latex/dynblocks/doc/dynblocks.tex
@@ -35,6 +35,7 @@
\newcommand*{\mbcmd}[1]{\texttt{[}\normalfont\texttt{#1}\texttt{]}}
\newcommand*{\meta}[1]{{\normalfont\ensuremath{\langle}\textit{#1}\ensuremath{\rangle}}}
\newcommand*{\marg}[1]{\texttt{\{\meta{#1}\}}}
+\newcommand*{\sarg}[1]{\texttt{<\meta{#1}>}}
\newcommand*{\mbarg}[1]{\texttt{[\meta{#1}]}}
\newcommand*{\cs}[1]{\texttt{\char92#1}}
@@ -42,8 +43,8 @@
\renewcommand\labelitemii{\color{DodgerBlue1!60}$\circ$}
\newcommand{\name}{\textsf{dynblocks}}
-\newcommand{\version}{0.1}
-\newcommand{\versiondate}{13/05/2012}
+\newcommand{\version}{0.2}
+\newcommand{\versiondate}{20/09/2012}
\author{Claudio Fiandrino \\ \footnotesize{\href{mailto:claudio.fiandrino@gmail.com}{claudio.fiandrino@gmail.com}}}
\title{The \name{} package \footnote{This package has version number \textit{v}\version{} of \versiondate{}}}
@@ -94,8 +95,8 @@ Using the package in basic mode allows to define a block with:
\item width equal to \cs{textwidth};
\item border color \cs{blue} and fill color \cs{blue!10}.
\end{itemize}
-thanks to the command \cs{opaqueblock}\marg{overlay spec}\mbarg{width}\marg{text}.
-Moreover, it is also possible to make it \emph{invisible} forcing colors to become \texttt{gray} by means of \cs{invblock}\marg{overlay spec}. For example, the following code, generates the two frames shown in figures \ref{fig:basic1} and \ref{fig:basic2}.
+thanks to the command \cs{opaqueblock}\sarg{overlay spec}\mbarg{width}\marg{text}.
+Moreover, it is also possible to make it \emph{invisible} forcing colors to become \texttt{gray} by means of \cs{invblock}\sarg{overlay spec}. For example, the following code, generates the two frames shown in figures \ref{fig:basic1} and \ref{fig:basic2}.
\medskip
\begin{lstlisting}[frame=lines]
\documentclass{beamer}
@@ -108,19 +109,19 @@ Moreover, it is also possible to make it \emph{invisible} forcing colors to beco
\begin{columns}[T]
\begin{column}{0.4\textwidth}
\begin{dynblock}
- \opaqueblock{1}[0.8\textwidth]{hello this is a dynamic block
+ \opaqueblock<1>[0.8\textwidth]{hello this is a dynamic block
with an itemize environment:
\begin{itemize}
\item hello
\item hello again
\end{itemize}
}
- \invblock{2-}
+ \invblock<2->
\end{dynblock}
\end{column}
\begin{column}{0.4\textwidth}
\begin{dynblock}
- \opaqueblock{2}{hello this is another dynamic block}
+ \opaqueblock<2>{hello this is another dynamic block}
\end{dynblock}
\end{column}
\end{columns}
@@ -132,18 +133,18 @@ Moreover, it is also possible to make it \emph{invisible} forcing colors to beco
\begin{figure}[ht]
\centering
\subfloat[First frame]{
-\includegraphics[scale=0.47]{./images/basic_1}
+\includegraphics[scale=0.45]{./images/basic_1}
\label{fig:basic1}%
}
\hspace*{0.25cm}
\subfloat[Second frame]{
-\includegraphics[scale=0.47]{./images/basic_2}
+\includegraphics[scale=0.45]{./images/basic_2}
\label{fig:basic2}%
}
\caption{The basic example}
\end{figure}
-In this example, it is possible to notice that the second \cs{opaqueblock} has not \texttt{width} specified; the default value is \cs{textwidth} but if the block is placed inside a \emph{column} environment it inherits the \texttt{width} given there. To set different values of \texttt{width}, it is necessary to specify the optional argument as did for the first \cs{opaqueblock} of the example.
+In this example, it is possible to notice that the second \cs{opaqueblock} has not \texttt{width} specified; the default value is \cs{textwidth}, but if the block is placed inside a \emph{column} environment it inherits the \texttt{width} given there. To set different values of \texttt{width}, it is necessary to specify the optional argument as did for the first \cs{opaqueblock} of the example.
The presence of an \cs{invblock} makes the first \cs{opaqueblock} invisible; this command needs to be placed immediately after an \cs{opaqueblock} because of two facts:
\begin{itemize}
@@ -161,7 +162,7 @@ Suppose, for instance, to modify the previous example in order to display the se
\begin{lstlisting}[frame=lines]
\begin{dynblock}
\setalignment{center}
-\opaqueblock{2}{hello this is another dynamic block}
+\opaqueblock<2>{hello this is another dynamic block}
\end{dynblock}
\end{lstlisting}
@@ -189,7 +190,7 @@ To change these values two commands have been introduced:
\end{itemize}
where \meta{opacity spec} is a value in the interval $[0 \, , \, 1]$. Also these commands can be set locally or in a global fashion in the preamble.
-Due to the opacity the usual \cs{alert} command is not more useful with \cs{invblock}s. The package provides a method to alert a word even in this case; the command to be used is \cs{dynalert}\marg{overlay spec}\marg{text}; notice that through the proper usage of \meta{overlay spec}, \cs{dynalert} must not fall inside a \cs{opaqueblock}. This is a limitation, but the purpose for which it has been developed is different.
+Due to the opacity the usual \cs{alert} command is not more useful with \cs{invblock}s. The package provides a method to alert a word even in this case; the command to be used is \cs{dynalert}\sarg{overlay spec}\marg{text}; notice that through the proper usage of \meta{overlay spec}, \cs{dynalert} must not fall inside a \cs{opaqueblock}. This is a limitation, but the purpose for which it has been developed is different.
Assume, for example, to modify the reference example such that the opacity of \cs{invblock} will be set to $0.1$; furthermore, for the first block, the word ``\emph{itemize}'' will be alerted with \cs{alert}, while ``\emph{dynamic block}'' with \cs{dynalert} and for the second block (that does not have the correspondent \cs{invblock}) it is shown what happens with a wrong usage of \cs{dynalert}. The code is:
\medskip
@@ -205,21 +206,21 @@ Assume, for example, to modify the reference example such that the opacity of \c
\begin{columns}[T]
\begin{column}{0.4\textwidth}
\begin{dynblock}
-\opaqueblock{1}[0.8\textwidth]{hello this is a
- \dynalert{2}{dynamic block} with an \alert<1,2>{itemize}
+\opaqueblock<1>[0.8\textwidth]{hello this is a
+ \dynalert<2>{dynamic block} with an \alert<1,2>{itemize}
environment:
\begin{itemize}
\item hello
\item hello again
\end{itemize}
}
-\invblock{2-}
+\invblock<2->
\end{dynblock}
\end{column}
\begin{column}{0.4\textwidth}
\begin{dynblock}
-\opaqueblock{2}{hello this is another
- \dynalert{2}{dynamic} block}
+\opaqueblock<2>{hello this is another
+ \dynalert<2>{dynamic} block}
\end{dynblock}
\end{column}
\end{columns}
@@ -231,12 +232,12 @@ Assume, for example, to modify the reference example such that the opacity of \c
\begin{figure}[ht]
\centering
\subfloat[First frame]{
-\includegraphics[scale=0.48]{./images/alert_1}
+\includegraphics[scale=0.45]{./images/alert_1}
\label{fig:alert1}%
}
\hspace*{0.1cm}
\subfloat[Second frame]{
-\includegraphics[scale=0.48]{./images/alert_2}
+\includegraphics[scale=0.45]{./images/alert_2}
\label{fig:alert2}%
}
\caption{Example with different opacity and alerts}
@@ -246,9 +247,9 @@ As it is possible to see from figures \ref{fig:alert1} and \ref{fig:alert2}, the
The suggested use, in conclusion, is:
\begin{itemize}
-\item \cs{alert} with \meta{overlay spec} equal to the one of the related \cs{opaqueblock};
+\item \cs{alert} with \meta{overlay spec} equal specified in the related \cs{opaqueblock};
\item \cs{dynalert} to highlight words inside an \cs{invblock};
-\item never do something like: \cs{dynalert}\mcmd{1,2}\mcmd{word} if the \cs{opaqueblock} is shown in \meta{overlay spec}$=1$ and the \cs{invblock} in \meta{overlay spec}$=2$.
+\item never do something like: \cs{dynalert}\texttt{<1,2>}\mcmd{word} if the \cs{opaqueblock} is shown in \meta{overlay spec}$=1$ and the \cs{invblock} in \meta{overlay spec}$=2$.
\end{itemize}
To change colors:
@@ -268,14 +269,14 @@ In this section the package's options are introduced with examples. They allow t
\subsection{The shadow and the rounded corners}\label{subse:shrc}
To load:
\begin{itemize}
-\item the shadow option use: \cs{usepackage}\mbcmd{shadow}\mcmd{dynblocks};
+\item the shadow option use: \cs{usepackage}\mbcmd{shadow}\mcmd{dynblocks}; it is possible to set the \emph{shadow opacity} by means of the following command: \cs{setshadowopacity}\marg{opacity spec} (default value $0.4$);
\item the option to have rounded corners for \emph{dynblocks} use: \\ \cs{usepackage}\mbcmd{roundedcorners}\mcmd{dynblocks}.
\end{itemize}
For example:
\begin{lstlisting}[frame=lines]
\documentclass{beamer}
-\usepackage[shadow, roundedcorners]{dynblocks}
+\usepackage[shadow,roundedcorners]{dynblocks}
\usetheme{Luebeck}
@@ -284,21 +285,21 @@ For example:
\begin{columns}[T]
\begin{column}{0.4\textwidth}
\begin{dynblock}
-\opaqueblock{1}[0.8\textwidth]{hello this is a
- \dynalert{2}{dynamic block} with an
+\opaqueblock<1>[0.8\textwidth]{hello this is a
+ \dynalert<2>{dynamic block} with an
\alert<1,2>{itemize} environment:
\begin{itemize}
\item hello
\item hello again
\end{itemize}
}
-\invblock{2-}
+\invblock<2->
\end{dynblock}
\end{column}
\begin{column}{0.4\textwidth}
\begin{dynblock}
\setalignment{center}
-\opaqueblock{2}{hello this is another dynamic block}
+\opaqueblock<2>{hello this is another dynamic block}
\end{dynblock}
\end{column}
\end{columns}
@@ -311,12 +312,12 @@ allows to get the frames shown in figures \ref{fig:shdrndc1} and \ref{fig:shdrnd
\begin{figure}[ht]
\centering
\subfloat[First frame]{
-\includegraphics[scale=0.48]{./images/shdrndc_1}
+\includegraphics[scale=0.45]{./images/shdrndc_1}
\label{fig:shdrndc1}%
}
\hspace*{0.1cm}
\subfloat[Second frame]{
-\includegraphics[scale=0.48]{./images/shdrndc_2}
+\includegraphics[scale=0.45]{./images/shdrndc_2}
\label{fig:shdrndc2}%
}
\caption{Example with \texttt{shadow} and \texttt{roundedcorners} options}
@@ -330,7 +331,7 @@ By activating this option it is possible to fully customize the \emph{dynblocks}
\item \cs{settopcolor}\marg{color spec} and \cs{setbottomcolor}\marg{color spec} for the \cs{vshadeblock}s (default values are \textit{white} and \textit{blue!10} respectively);
\item \cs{setleftcolor}\marg{color spec} and \cs{setrightcolor}\marg{color spec} for the \cs{oshadeblock}s (default values are \textit{white} and \textit{blue!10} respectively).
\end{itemize}
-As for the \texttt{shadow} and the \texttt{roundedcorners} options, to load the \texttt{customcolors} option use \cs{usepackage}\mbcmd{customcolors}\mcmd{dynblocks}.
+Similarly to the \texttt{shadow} and the \texttt{roundedcorners} options, to load the \texttt{customcolors} option use \cs{usepackage}\mbcmd{customcolors}\mcmd{dynblocks}.
In the following example, all \emph{dynblocks} types are used and it is possible to see how local and global setting work.
@@ -350,15 +351,15 @@ In the following example, all \emph{dynblocks} types are used and it is possible
\begin{columns}[T]
\begin{column}{0.4\textwidth}
\begin{dynblock}
-\opaqueblock{1}[0.8\textwidth]{hello this is a
- \dynalert{2}{dynamic block} with an
+\opaqueblock<1>[0.8\textwidth]{hello this is a
+ \dynalert<2>{dynamic block} with an
\alert<1,2>{itemize} environment:
\begin{itemize}
\item hello
\item hello again
\end{itemize}
}
-\invblock{2-}
+\invblock<2->
\end{dynblock}
\end{column}
\begin{column}{0.4\textwidth}
@@ -367,19 +368,19 @@ In the following example, all \emph{dynblocks} types are used and it is possible
% default settings since no
% \setinnercolor or \setoutercolor
% are there
-\fancyblock{2}{hello this is another dynamic block}
-\invblock{3-}
+\fancyblock<2>{hello this is another dynamic block}
+\invblock<3->
\end{dynblock}
\\[2ex]
\setbordercolor{orange} % local definition
% that overwrites the global one
\begin{dynblock}
-\vshadeblock{3}{replica: hello this a another dynamic block}
-\invblock{4-}
+\vshadeblock<3>{replica: hello this a another dynamic block}
+\invblock<4->
\end{dynblock}
\\[2ex]
\begin{dynblock}
-\oshadeblock{4}{replica 2: hello this a another dynamic block}
+\oshadeblock<4>{replica 2: hello this a another dynamic block}
\end{dynblock}
\end{column}
\end{columns}
@@ -399,22 +400,22 @@ The four frames obtained by this example are shown in figures \ref{fig:custcol1}
\begin{figure}[ht]
\centering
\subfloat[First frame]{
-\includegraphics[scale=0.47]{./images/custcol_1}
+\includegraphics[scale=0.45]{./images/custcol_1}
\label{fig:custcol1}%
}
\hspace*{0.25cm}
\subfloat[Second frame]{
-\includegraphics[scale=0.47]{./images/custcol_2}
+\includegraphics[scale=0.45]{./images/custcol_2}
\label{fig:custcol2}%
}
\\
\subfloat[Third frame]{
-\includegraphics[scale=0.47]{./images/custcol_3}
+\includegraphics[scale=0.45]{./images/custcol_3}
\label{fig:custcol3}%
}
\hspace*{0.25cm}
\subfloat[Fourth frame]{
-\includegraphics[scale=0.47]{./images/custcol_4}
+\includegraphics[scale=0.45]{./images/custcol_4}
\label{fig:custcol4}%
}
\caption{Example with \texttt{customcolor} option and all \emph{dynblocks} types}
@@ -455,21 +456,21 @@ For example:
\begin{columns}[T]
\begin{column}{0.4\textwidth}
\begin{dynblock}
-\opaqueblock{1}[0.8\textwidth]{hello this is a
-\dynalert{2}{dynamic block} with an
+\opaqueblock<1>[0.8\textwidth]{hello this is a
+\dynalert<2>{dynamic block} with an
\alert<1,2>{itemize} environment:
\begin{itemize}
\item hello
\item hello again
\end{itemize}
}
-\invblock{2-}
+\invblock<2->
\end{dynblock}
\end{column}
\begin{column}{0.4\textwidth}
\setalignment{center}
\begin{dynblock}
-\opaqueblock{2}{hello this is another dynamic block}
+\opaqueblock<2>{hello this is another dynamic block}
\end{dynblock}
\end{column}
\end{columns}
@@ -481,12 +482,12 @@ will lead to figures \ref{fig:cmbx1} and \ref{fig:cmbx2}.
\begin{figure}[ht]
\centering
\subfloat[First frame]{
-\includegraphics[scale=0.48]{./images/cmbx_1}
+\includegraphics[scale=0.45]{./images/cmbx_1}
\label{fig:cmbx1}%
}
\hspace*{0.1cm}
\subfloat[Second frame]{
-\includegraphics[scale=0.48]{./images/cmbx_2}
+\includegraphics[scale=0.45]{./images/cmbx_2}
\label{fig:cmbx2}%
}
\caption{Example with a theme that does not define structure color}
@@ -507,21 +508,21 @@ The result can be improved in the following way:
\begin{columns}[T]
\begin{column}{0.4\textwidth}
\begin{dynblock}
-\opaqueblock{1}[0.8\textwidth]{hello this is a
-\dynalert{2}{dynamic block} with an
+\opaqueblock<1>[0.8\textwidth]{hello this is a
+\dynalert<2>{dynamic block} with an
\alert<1,2>{itemize} environment:
\begin{itemize}
\item hello
\item hello again
\end{itemize}
}
-\invblock{2-}
+\invblock<2->
\end{dynblock}
\end{column}
\begin{column}{0.4\textwidth}
\setalignment{center}
\begin{dynblock}
-\opaqueblock{2}{hello this is another dynamic block}
+\opaqueblock<2>{hello this is another dynamic block}
\end{dynblock}
\end{column}
\end{columns}
@@ -534,12 +535,12 @@ obtaining as result the frames shown in figures \ref{fig:cmby1} and \ref{fig:cmb
\begin{figure}[ht]
\centering
\subfloat[First frame]{
-\includegraphics[scale=0.48]{./images/cmby_1}
+\includegraphics[scale=0.45]{./images/cmby_1}
\label{fig:cmby1}%
}
\hspace*{0.1cm}
\subfloat[Second frame]{
-\includegraphics[scale=0.48]{./images/cmby_2}
+\includegraphics[scale=0.45]{./images/cmby_2}
\label{fig:cmby2}%
}
\caption{Example of a theme with a posteriori structure color definition}
@@ -557,7 +558,7 @@ Here is another example:
\begin{document}
\begin{frame}{The frame title}
\begin{dynblock}
-\opaqueblock{1}{hello this is a
+\opaqueblock<1>{hello this is a
dynamic block with an
itemize environment:
\begin{itemize}
@@ -593,16 +594,16 @@ The decision of adopting the \emph{structure} as reference is due to the fact th
\begin{frame}{A title}
\begin{center}
\begin{dynblock}
-\opaqueblock{1}[0.6\textwidth]{hello this is a dynamic block
+\opaqueblock<1>[0.6\textwidth]{hello this is a dynamic block
with an itemize environment:
\begin{itemize}
\item hello
\item hello again
\end{itemize}
}
-\invblock{2-}
+\invblock<2->
\setalignment{center}
-\opaqueblock{2}{hello this is another dynamic block}
+\opaqueblock<2>{hello this is another dynamic block}
\end{dynblock}
\end{center}
\end{frame}
@@ -613,12 +614,12 @@ The two frames obtained as outcome are shown in figures \ref{fig:szeg1} and \ref
\begin{figure}
\centering
\subfloat[First frame]{
-\includegraphics[scale=0.48]{./images/szeg_1}
+\includegraphics[scale=0.45]{./images/szeg_1}
\label{fig:szeg1}%
}
\hspace*{0.1cm}
\subfloat[Second frame]{
-\includegraphics[scale=0.48]{./images/szeg_2}
+\includegraphics[scale=0.45]{./images/szeg_2}
\label{fig:szeg2}%
}
\caption{Example of a customized theme}
diff --git a/Master/texmf-dist/doc/latex/dynblocks/latex/dynblocks.sty b/Master/texmf-dist/doc/latex/dynblocks/latex/dynblocks.sty
index b483c7a3f11..8c52e8bed98 100644
--- a/Master/texmf-dist/doc/latex/dynblocks/latex/dynblocks.sty
+++ b/Master/texmf-dist/doc/latex/dynblocks/latex/dynblocks.sty
@@ -94,6 +94,9 @@
\def\setinvopacity#1{\def\@invopacity{#1}}
\def\@invopacity{0.4}
+\def\setshadowopacity#1{\def\@shadowopacity{#1}}
+\def\@shadowopacity{0.4}
+
%% Alignment
\def\setalignment#1{\def\@alignment{#1}}
@@ -123,8 +126,32 @@
\tikzset{oshadevisib/.style={rectangle,color=\thebordercol,left color=\@setleftcolor, right color=\@setrightcolor,text=black,draw,text opacity=\@visopacity, text width=#1,align=\@alignment}}
\tikzset{invisib/.style={rectangle,color=gray,fill=gray!10,text=black,draw,text opacity=\@invopacity, text width=#1,align=\@alignment}}
-%% Rounded corners
+%% Overlays
+\tikzset{
+ invisible/.style={opacity=0,text opacity=0},
+ visible on/.style={alt=#1{}{invisible}},
+ alt/.code args={<#1>#2#3}{%
+ \alt<#1>{\pgfkeysalso{#2}}{\pgfkeysalso{#3}}
+ },
+ }
+
+%% Shadow layer
+\pgfdeclarelayer{shadowback}
+\pgfsetlayers{shadowback,main}
+
+\pgfkeys{%
+ /tikz/on layer/.code={
+ \pgfonlayer{#1}\begingroup
+ \aftergroup\endpgfonlayer
+ \aftergroup\endgroup
+ },
+ /tikz/node on layer/.code={
+ \pgfonlayer{#1}\begingroup
+ \expandafter\def\expandafter\tikz@node@finish\expandafter{\expandafter\endgroup\expandafter\endpgfonlayer\tikz@node@finish}%
+ },
+}
+%% Rounded corners
\ifbool{rndcorners}{%true
\tikzset{visib/.append style={rounded corners}}
\tikzset{fancyvisib/.append style={rounded corners}}
@@ -134,54 +161,64 @@
}{%false
}
-%% Shadow
-\ifbool{shadowed}{%true
-\tikzset{visib/.append style={drop shadow,draw}}
-\tikzset{fancyvisib/.append style={drop shadow,draw}}
-\tikzset{vshadevisib/.append style={drop shadow,draw}}
-\tikzset{oshadevisib/.append style={drop shadow,draw}}
-\tikzset{invisib/.append style={drop shadow,draw}}
-}{%false
-}
-
%% Definition of user commands and environment
\newenvironment{dynblock}{\begin{tikzpicture}}{\end{tikzpicture}}
\newlength\intdimension
-\NewDocumentCommand{\opaqueblock}{m O{\textwidth} m}{%
+\NewDocumentCommand{\opaqueblock}{r<> O{\textwidth} m}{%
\setlength{\intdimension}{\z@}
\addtolength{\intdimension}{#2}
-\node<#1>[visib=#2] (X) {\begingroup #3 \endgroup};
+\ifbool{shadowed}{% true
+\node[visib=#2,visible on=<#1>,drop shadow={opacity=\@shadowopacity,on layer=shadowback,visible on=<#1->}] (X) {\begingroup #3 \endgroup};
+}{% false
+\node[visib=#2,visible on=<#1>] (X) {\begingroup #3 \endgroup};
+}
\savetext{mytext}{#3}
}
-\NewDocumentCommand{\fancyblock}{m O{\textwidth} m}{%
+\NewDocumentCommand{\fancyblock}{r<> O{\textwidth} m}{%
\setlength{\intdimension}{\z@}
\addtolength{\intdimension}{#2}
-\node<#1>[fancyvisib=#2] (X) {\begingroup #3 \endgroup};
+\ifbool{shadowed}{% true
+\node[fancyvisib=#2,visible on=<#1>,drop shadow={opacity=\@shadowopacity,on layer=shadowback,visible on=<#1->}] (X) {\begingroup #3 \endgroup};
+}{% false
+\node[fancyvisib=#2,visible on=<#1>] (X) {\begingroup #3 \endgroup};
+}
\savetext{mytext}{#3}
}
-\NewDocumentCommand{\vshadeblock}{m O{\textwidth} m}{%
+\NewDocumentCommand{\vshadeblock}{r<> O{\textwidth} m}{%
\setlength{\intdimension}{\z@}
\addtolength{\intdimension}{#2}
-\node<#1>[vshadevisib=#2] (X) {\begingroup #3 \endgroup};
+\ifbool{shadowed}{% true
+\node[vshadevisib=#2,visible on=<#1>,drop shadow={opacity=\@shadowopacity,on layer=shadowback,visible on=<#1->}] (X) {\begingroup #3 \endgroup};
+}{% false
+\node[vshadevisib=#2,visible on=<#1>] (X) {\begingroup #3 \endgroup};
+}
\savetext{mytext}{#3}
}
-\NewDocumentCommand{\oshadeblock}{m O{\textwidth} m}{%
+\NewDocumentCommand{\oshadeblock}{r<> O{\textwidth} m}{%
\setlength{\intdimension}{\z@}
\addtolength{\intdimension}{#2}
-\node<#1>[oshadevisib=#2] (X) {\begingroup #3 \endgroup};
+\ifbool{shadowed}{% true
+\node[oshadevisib=#2,visible on=<#1>,drop shadow={opacity=\@shadowopacity,on layer=shadowback,visible on=<#1->}] (X) {\begingroup #3 \endgroup};
+}{% false
+\node[oshadevisib=#2,visible on=<#1>] (X) {\begingroup #3 \endgroup};
+}
\savetext{mytext}{#3}
}
-\newcommand{\invblock}[1]{
-\node<#1>[invisib=\intdimension] (X) {\printthistext{\thethistext}};
+\NewDocumentCommand{\invblock}{r<>}{%
+\ifbool{shadowed}{% true
+\node[invisib=\intdimension,visible on=<#1>,drop shadow={opacity=\@shadowopacity,on layer=shadowback,visible on=<#1>}] (X) {\printthistext{\thethistext}};
+}{% false
+\node[invisib=\intdimension,visible on=<#1>] (X) {\printthistext{\thethistext}};
+}
}
-\newcommand{\dynalert}[2]{\alt<#1>{\pgfsetfillopacity{1}\myalert{#2}\pgfsetfillopacity{\@invopacity}}{#2}}
+\NewDocumentCommand{\dynalert}{r<> m}{\alt<#1>{\pgfsetfillopacity{1}\myalert{#2}\pgfsetfillopacity{\@invopacity}}{#2}}
\endinput