texlive[72895] Master: anima (19nov24)
commits+karl at tug.org
commits+karl at tug.org
Tue Nov 19 21:34:14 CET 2024
Revision: 72895
https://tug.org/svn/texlive?view=revision&revision=72895
Author: karl
Date: 2024-11-19 21:34:14 +0100 (Tue, 19 Nov 2024)
Log Message:
-----------
anima (19nov24)
Modified Paths:
--------------
trunk/Master/tlpkg/bin/tlpkg-ctan-check
trunk/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc
Added Paths:
-----------
trunk/Master/texmf-dist/doc/latex/anima/
trunk/Master/texmf-dist/doc/latex/anima/README.txt
trunk/Master/texmf-dist/doc/latex/anima/anima-doc.pdf
trunk/Master/texmf-dist/doc/latex/anima/exemplo.tex
trunk/Master/texmf-dist/source/latex/anima/
trunk/Master/texmf-dist/source/latex/anima/anima.dtx
trunk/Master/texmf-dist/source/latex/anima/anima.ins
trunk/Master/texmf-dist/tex/latex/anima/
trunk/Master/texmf-dist/tex/latex/anima/anima.cls
trunk/Master/tlpkg/tlpsrc/anima.tlpsrc
Added: trunk/Master/texmf-dist/doc/latex/anima/README.txt
===================================================================
--- trunk/Master/texmf-dist/doc/latex/anima/README.txt (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/anima/README.txt 2024-11-19 20:34:14 UTC (rev 72895)
@@ -0,0 +1,12 @@
+----------------------------------------------------------------
+anima --- Class for creating slideshow with simple animations with TikZ
+E-mail: adriano_gsgs at hotmail.com
+Written by Adriano Gomes de Santana
+Released under the LaTeX Project Public License v1.3c or later
+See http://www.latex-project.org/lppl.txt
+----------------------------------------------------------------
+
+The idea for this package arose from noticing that including the |\pause| command from the |beamer| class within the |\foreach| loop command from the |tikz| package creates a sequence of frames, where each slide presents a step in the construction of the image. The purpose of the |anima| class is to provide macros that simplify the use of this effect for creating animated slide presentations.
+
+Although the functionality of this class can be compared to the transition effects of the |beamer| class, it is not a dependency of the |anima| class. However, the class makes extensive use of the image creation language provided by the |tikz| package. Lastly, it is worth noting a comparison between this class and the |animate| package. The |animate| package can create embedded animations within the document, while the |anima| class produces an animation where each frame corresponds to a page of the document. This distinction highlights the different design goals of the |anima| class.
+
Property changes on: trunk/Master/texmf-dist/doc/latex/anima/README.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/anima/anima-doc.pdf
===================================================================
(Binary files differ)
Index: trunk/Master/texmf-dist/doc/latex/anima/anima-doc.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/latex/anima/anima-doc.pdf 2024-11-19 20:33:29 UTC (rev 72894)
+++ trunk/Master/texmf-dist/doc/latex/anima/anima-doc.pdf 2024-11-19 20:34:14 UTC (rev 72895)
Property changes on: trunk/Master/texmf-dist/doc/latex/anima/anima-doc.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/pdf
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/anima/exemplo.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/anima/exemplo.tex (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/anima/exemplo.tex 2024-11-19 20:34:14 UTC (rev 72895)
@@ -0,0 +1,157 @@
+
+\documentclass{anima}
+
+\begin{document}
+
+\animaFrameTitle
+{PRESENTATIONS WITH ANIMATIONS IN \LaTeX}
+{Adriano G. Santana}
+{Toledo-PR}{\today}
+
+\begin{frame}[24]
+\animaExemplo
+\end{frame}
+
+\begin{frame}[3]
+
+\begin{block}[(-5.1,4.4)]{A CLOCK}[2.8cm]
+\end{block}
+
+\draw[-latex] (-5,1.8)--++({90-360*\um}:1.4);
+\draw[-latex] (-5,1.8) circle (1.4);
+
+\begin{alertblock}[(-5.1,0)]{DESCRIPTION}[2.8cm]
+4 - defines the counter;\\
+5 - initializes it to zero;\\
+7 - start of the loop;\\
+10 - drawing the pointer;\\
+14 - counter + 1;\\
+15 - stop condition
+\end{alertblock}
+
+\begin{exampleblock}[(2.9,4.4)]{CODE}[5cm]
+\normalsize\tt{%
+1 \textbackslash documentclass[multi=page]\{standalone\}\\
+2 \textbackslash usepakage\{pgf,tikz\}
+
+3 \qquad\textbackslash begin\{document\}
+
+4 \qquad\textbackslash newcount\textbackslash nFrame\\
+5 \qquad\textbackslash nFrame = 0\\
+6 \qquad\textbackslash def\textbackslash angulo\{90- 36*\textbackslash the\textbackslash nfram\}\\
+7 \qquad\textbackslash loop\\
+8 \qquad\qquad \textbackslash begin\{page\}\%\\
+9 \qquad\qquad \textbackslash begin\{tikzpicture\}\\
+10\qquad\qquad\qquad\textbackslash draw [->] (0,0)--(\{\textbackslash angulo\}:1);\\
+11\qquad\qquad\qquad\textbackslash draw (0,0) circle (1);\\
+12\qquad\qquad \textbackslash end\{tikzpicture\}\%\\
+13\qquad\qquad \textbackslash end\{page\}\\
+14\qquad\textbackslash advance \textbackslash nFrame +1\\
+15\qquad\textbackslash ifnum \textbackslash nFrame < 11 \textbackslash repeat\\
+16\textbackslash end\{documento\}}
+\end{exampleblock}
+\end{frame}
+
+\begin{frame}[12]
+
+\begin{block}[(-5.1,4.4)]{A CLOCK}[2.8cm]
+\end{block}
+
+\draw[-latex] (-5,1.8)--++({90-360*\um}:1.4);
+\draw[-latex] (-5,1.8) circle (1.4);
+
+\begin{alertblock}[(-5.1,0)]{DESCRIPTION}[2.8cm]
+1 - anima class;\\
+3 - \textbackslash um default counter\\
+4 - [10] defines the number of repetitions\\
+5 and 6 - same command as before
+\end{alertblock}
+
+\begin{exampleblock}[(2.9,4.4)]{CODE WITH ANIMA CLASS}[5cm]
+Of course, the same result can be achieved by creating a command with \textbf{\textbackslash newcommand} or \textbf{\textbackslash NewDocumentEnvironment}. This is exactly what the \textbf{anima} class does. With this class, the same result can be obtained with the following code. \\\vspace{.5cm}
+
+\tt{%
+1 \textbackslash documentclass\{frame\}\\
+
+2 \qquad\textbackslash begin\{document\}\\
+3 \qquad\textbackslash def\textbackslash angulo\{90- 360*\textbackslash um\}\\
+4 \qquad\qquad \textbackslash begin\{anima\}[10]\\
+5 \qquad\qquad\qquad\textbackslash draw [->] (0,0)--(\{\textbackslash angulo\}:1);\\
+6 \qquad\qquad\qquad\textbackslash draw (0,0) circle (1);\\
+7 \qquad\qquad \textbackslash end\{frame\}\\
+8 \textbackslash end\{documento\}}
+\end{exampleblock}
+\end{frame}
+
+\begin{frame}[3]
+\begin{block}{HOW WORKING}
+The environment named {\tt frame} produces a screen with a 16:9 aspect ratio, similar to modern computer, smartphone, and other device screens, with the point (0,0) at the center.
+\end{block}
+
+\draw[latex-latex] ({-8*\um},-3.5)--node[above]{16cm}({8*\um},-3.5);
+\draw[latex-latex] (-7,{-4.5*\um})--node[right]{9cm} (-7,{4.5*\um});
+\end{frame}
+
+\begin{frame}
+\begin{block}{HOW WORKING}
+The optional parameter {\tt{\color{animaColor1}[10]}} defines the number of frames in the animation. The command {\tt\textbackslash nFrame} is the counter responsible for the loop within the environment, ranging from 0 to the total number of frames minus 1. The command {\tt{\color{animaColor2}\textbackslash um}} spans the interval from 0 to 1, dividing it into {\tt \textbackslash nFrame} segments.
+
+We can insert any code within the \textbf{anima} environment that would typically be used in the \textbf{tikzpicture} environment of TikZ. Additional definitions can be included using the \textbf{scope} environment from TikZ itself.
+\end{block}
+\begin{exampleblock}{NEW EXAMPLE}
+\tt{%
+1 \textbackslash documentclass\{anima\}\\
+
+2 \qquad\textbackslash begin\{document\}\\
+3 \qquad\textbackslash def\textbackslash angulo\{90- 360*{\color{animaColor2}\textbackslash um}\}\\
+4 \qquad \textbackslash begin\{anima\}{\color{animaColor1}[10]}\\
+5 \qquad\qquad\textbackslash draw [->] (0,0)--(\{\textbackslash angulo\}:1);\\
+6 \qquad\qquad\textbackslash draw (0,0) circle (1);\\
+7 \qquad \textbackslash end\{anima\}\\
+8 \textbackslash end\{documento\}}
+\end{exampleblock}
+\end{frame}
+
+\begin{frame}
+\begin{block}{BLOCK, EXAMPLEBLOCK, ALERTBLOCK}
+To simplify the creation of slide presentations, the \textbf{block}, \textbf{alertblock}, and \textbf{exampleblock} environments from the \textbf{beamer} class have been recreated.\vspace{.5cm}
+
+{\tt%
+1- \textbackslash begin\{block\}\{Title\}\\
+2-\qquad Body text\\
+3- \textbackslash begin\{block\}\\
+}
+\end{block}
+\begin{alertblock}{Alignment}
+The first block starts at the top of the page, and subsequent blocks are aligned directly below it.
+\end{alertblock}
+\begin{exampleblock}{}
+A title is mandatory, even if left empty.
+\end{exampleblock}
+\end{frame}
+
+\begin{frame}
+\begin{block}[(-2,3)]{Basic Block Options}[5.5cm]
+{\tt%
+1- \textbackslash begin\{block\}{\color{animaColor2}[(-2,3)]}\{Title\}{\color{animaColor1}[5.5cm]}\\
+2-\qquad Body text\\
+3- \textbackslash begin\{block\}
+}\\
+
+If repositioning or resizing a block is necessary, there are two optional parameters to achieve this:
+
+{\tt\color{animaColor1}[(-2,3)]} - defines the position of the top center of the block;\\
+{\tt\color{animaColor2}[5.5cm]} - defines half the width of the block.
+\end{block}
+
+\draw[-latex,animaColor2] (-2,3.5)--node[above,animaColor2]{5.5cm}++(5.5,0);
+\draw[-latex,animaColor2] (-2,3.5)--node[above,animaColor2]{5.5cm}++(-5.5,0);
+\draw[animaColor2] (-2,3.3)--(-2,3.7);~
+\fill[animaColor1] (-2,3) circle (.2) node[above]{center block};
+
+\begin{exampleblock}{NEW BLOCK}[4cm]
+The next block is always vertically aligned with the previous one. Here, we only need to define its width to ensure it doesn't exceed the screen.
+\end{exampleblock}
+\end{frame}
+
+\end{document}
Property changes on: trunk/Master/texmf-dist/doc/latex/anima/exemplo.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/source/latex/anima/anima.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/anima/anima.dtx (rev 0)
+++ trunk/Master/texmf-dist/source/latex/anima/anima.dtx 2024-11-19 20:34:14 UTC (rev 72895)
@@ -0,0 +1,730 @@
+% \iffalse meta-comment
+% !TEX program = pdfLaTeX
+%
+%<*internal>
+\iffalse
+%</internal>
+%<*readme>
+----------------------------------------------------------------
+anima --- Class for creating slideshow with simple animations with TikZ
+E-mail: adriano_gsgs at hotmail.com
+Written by Adriano Gomes de Santana
+Released under the LaTeX Project Public License v1.3c or later
+See http://www.latex-project.org/lppl.txt
+----------------------------------------------------------------
+
+The idea for this package arose from noticing that including the |\pause| command from the |beamer| class within the |\foreach| loop command from the |tikz| package creates a sequence of frames, where each slide presents a step in the construction of the image. The purpose of the |anima| class is to provide macros that simplify the use of this effect for creating animated slide presentations.
+
+Although the functionality of this class can be compared to the transition effects of the |beamer| class, it is not a dependency of the |anima| class. However, the class makes extensive use of the image creation language provided by the |tikz| package. Lastly, it is worth noting a comparison between this class and the |animate| package. The |animate| package can create embedded animations within the document, while the |anima| class produces an animation where each frame corresponds to a page of the document. This distinction highlights the different design goals of the |anima| class.
+%</readme>
+%<*internal>
+\fi
+\def\nameofplainTeX{plain}
+\ifx\fmtname\nameofplainTeX\else
+ \expandafter\begingroup
+\fi
+%</internal>
+%<*install>
+\input docstrip.tex
+\keepsilent
+\askforoverwritefalse
+\preamble
+----------------------------------------------------------------
+anima --- Class for creating slideshow with simple animations with TikZ
+E-mail: adriano_gsgs at hotmail.com
+Written by Adriano Gomes de Santana
+Released under the LaTeX Project Public License v1.3c or later
+See http://www.latex-project.org/lppl.txt
+----------------------------------------------------------------
+
+\endpreamble
+\postamble
+
+Copyright (C) 2009 by Adriano Gomes de Santana <adriano_gsgs at hotmail.com>
+
+This work may be distributed and/or modified under the
+conditions of the LaTeX Project Public License (LPPL), either
+version 1.3c of this license or (at your option) any later
+version. The latest version of this license is in the file:
+
+http://www.latex-project.org/lppl.txt
+
+This work is "maintained" (as per LPPL maintenance status) by
+Adriano Gomes de Santana.
+
+This work consists of the file anima.dtx
+and the derived files anima.ins,
+ anima.pdf and
+ anima.cls.
+
+\endpostamble
+\usedir{tex/latex/anima}
+\generate{
+ \file{\jobname.cls}{\from{\jobname.dtx}{class}}
+}
+\nopreamble\nopostamble
+\usedir{tex/latex/anima}
+\generate{
+ \file{exemplo.tex}{\from{\jobname.dtx}{example}}
+}
+%</install>
+%<install>\endbatchfile
+%<*internal>
+\usedir{source/latex/anima}
+\generate{
+ \file{\jobname.ins}{\from{\jobname.dtx}{install}}
+}
+\nopreamble\nopostamble
+\usedir{doc/latex/anima}
+\generate{
+ \file{README.txt}{\from{\jobname.dtx}{readme}}
+}
+\ifx\fmtname\nameofplainTeX
+ \expandafter\endbatchfile
+\else
+ \expandafter\endgroup
+\fi
+%</internal>
+%<*driver>
+\documentclass{ltxdoc}
+\usepackage[T1]{fontenc}
+\usepackage{lmodern}
+\usepackage[numbered]{hypdoc}
+\usepackage{bookmark}
+\usepackage{amsmath}
+\usepackage{pgf,tikz}
+\usepackage{readprov}
+%\EnableCrossrefs
+%\CodelineIndex
+%\RecordChanges
+\begin{document}
+ \DocInput{\jobname.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \ProvidesFile{anima.dtx}[2024/11/18 v1.0 Classe Anima to Animations]
+% \GetFileInfo{\jobname.dtx}
+%
+%\title{
+% \textsf{anima} ---
+% Class for creating slideshow with simple animations with TikZ%
+% \thanks{
+% This file describes version \fileversion, last revised \filedate.
+% }
+%}
+%\author{Adriano Gomes de Santana\thanks{E-mail: adriano\_gsgs at hotmail.com}}
+%\date{Released \filedate}
+%
+%\maketitle
+%\tableofcontents
+%
+%\changes{v1.0}{2024/11/18}{First public release}
+%
+% \begin{abstract}
+% The idea for this package arose from noticing that including the |\pause| command from the |beamer| class within the |\foreach| loop command from the |tikz| package creates a sequence of frames, where each slide presents a step in the construction of the image. The purpose of the |anima| class is to provide macros that simplify the use of this effect for creating animated slide presentations.
+
+% Although the functionality of this class can be compared to the transition effects of the |beamer| class, it is not a dependency of the |anima| class. However, the class makes extensive use of the image creation language provided by the |tikz| package. Lastly, it is worth noting a comparison between this class and the |animate| package. The |animate| package can create embedded animations within the document, while the |anima| class produces an animation where each frame corresponds to a page of the document. This distinction highlights the different design goals of the |anima| class.
+% \end{abstract}
+% \section{Dependências}
+% This class depends on the |standalone| class and the |tikz| and |pgf| packages, as well as the other classes and packages on which these are dependent.
+%
+% \section{Funcionamento}
+% Like the |beamer| class, the |anima| class uses the |frame| environment to create slide presentations. The main difference is that this class focuses on using the |tikz| package to create a sequence of frames with images that form an animation as the slides transition sequentially.
+%
+% Each slide in the presentation is a frame with dimensions of 16 cm in width and 9 cm in height (i.e., in a 16:9 aspect ratio), which are commands within the |tikzpicture| environment. A standard document using the |anima| class follows this structure:
+%
+% \begin{macro}{\documentclass\{anima\}}
+% \begin{quote}
+% \cs{documentclass}|{anima}|\\
+% \cs{begin}|{document}|
+%
+% \cs{begin}|{frame}|\oarg{n}\\
+% \hspace*{24pt} content\\
+% \cs{end}|{frame}|\\
+% \cs{end}|{document}|
+% \end{quote}
+% \end{macro}
+%
+% In ``content,'' any valid commands from the |tikz| environment can be written, such as \cs{draw}, \cs{fill}, \cs{node}, \cs{begin|scope|}, \cs{end|scope|}, \cs{clip}, as well as their respective parameters. The origin, i.e., the point |(0,0)| of this environment, is located at the center of a frame measuring 16 cm in width and 9 cm in height. This means that the points |(-8,-4.5)|, |(-8,4.5)|, |(8,4.5)|, and |(8,-4.5)| are the vertices of this frame.
+%
+% \DescribeMacro{\begin\{frame\}\oarg{n}} The |frame| environment of the |anima| class has an optional parameter \oarg{n}, which specifies the number of frames the transition will include. If this parameter is not provided, the class will assume $n=1$. For example, if $n=5$ and the code in ``content'' is
+% \begin{quote}
+% \cs{draw}|(0,0) circle (1);|\\
+% \cs{draw}|[-latex](0,0)--({360*\um}:1);|
+% \end{quote}
+% Then the class will produce a sequence of 5 slides with the following figures centered:
+%\tikz{\draw (0,0) circle (.3);\draw[-latex] (0,0)--(0:.3);},
+%\tikz{\draw (0,0) circle (.3);\draw[-latex] (0,0)--(90:.3);},
+%\tikz{\draw (0,0) circle (.3);\draw[-latex] (0,0)--(180:.3);},
+%\tikz{\draw (0,0) circle (.3);\draw[-latex] (0,0)--(270:.3);} e
+%\tikz{\draw (0,0) circle (.3);\draw[-latex] (0,0)--(360:.3);}. By increasing or decreasing the value of $n$, the class will produce more or fewer frames, representing the animation of a pointer rotating counterclockwise within the circumference of radius 1.
+%
+% For a quick explanation of the |tikz| package commands and what is happening in the code:
+%\begin{itemize}
+% \item The \cs{draw} command draws shapes or lines on the screen based on the parameters provided immediately after it.
+% \item The sequence |(a,b) circle (c)| draws a circle centered at the point |(a,b)| with a radius of |c|.
+% \item The sequence |P--Q| draws a line from point |P| to point |Q|.
+%\end{itemize}
+%In |tikz|, a point can be represented by its Cartesian coordinates |(a,b)| or its polar coordinates |(t:r)|, where |t| is the angle (in degrees) and |r| is the distance from the origin (or the reference origin).
+%
+% \DescribeMacro{\um} The command |\um|, which appears in |({360*\um}:1)| in the code above (in Portuguese, "um" means "one"), is a function of the frame number of the transition, $i = 1, 2, \dots, n$, within the interval $[0,1]$.
+%
+%In summary, |\um| takes the value $0$ on the first frame and the value $1$ on the last frame, progressing through these values in equal intervals across each frame. Thus, in the example above, when $n = 5$, we have the following values for |360*\um|: $= 0$ on the first frame, $= 90$ on the second, $= 180$ on the third, $= 270$ on the fourth, and $= 360$ on the fifth and final frame.
+%
+% \DescribeMacro{\zero} Another useful command to be used in the |anima| class is the command \cs{zero}. This command is defined as |1-\um|. If the code |({360*\um}:1)| produces a pointer rotating counterclockwise in the previous example, replacing this part with |({360*\zero}:1)| will produce the same pointer, but rotating clockwise instead.
+%
+% The commands |\um| and |\zero| are very useful for creating various animations with |tikz|. We have already seen an example of rotation. Another possibility is to move a figure from a point $(a,b)$ to a point $(c,d)$. For example, the following code:
+% \begin{quote}
+% \cs{draw}|(2,3)--(4,4);|\\
+% \cs{fill}|({2*\zero+4*\um},{3*\zero+4*\um}) circle (.3);|
+% \end{quote}
+% will produce the effect of a sequence of figures.
+% \tikz[scale=.3]{\draw (2,3)--(4,4);\fill ({2*(3/3)+4*(0/3)},{3*(3/3)+4*(0/3)}) circle (.3);},
+% \tikz[scale=.3]{\draw (2,3)--(4,4);\fill ({2*(2/3)+4*(1/3)},{3*(2/3)+4*(1/3)}) circle (.3);},
+% \tikz[scale=.3]{\draw (2,3)--(4,4);\fill ({2*(1/3)+4*(2/3)},{3*(1/3)+4*(2/3)}) circle (.3);} e
+% \tikz[scale=.3]{\draw (2,3)--(4,4);\fill ({2*(0/3)+4*(3/3)},{3*(0/3)+4*(3/3)}) circle (.3);}.
+% The following code
+% \begin{quote}
+% \cs{fill}|[opacity={\zero}](0,0) circle (1);|
+% \end{quote}
+% will cause the figure to gradually disappear, as in the example.
+% \tikz[scale=.3]{\fill[opacity=1] (0,0) circle (1);},
+% \tikz[scale=.3]{\fill[opacity=.75] (0,0) circle (1);},
+% \tikz[scale=.3]{\fill[opacity=.5] (0,0) circle (1);},
+% \tikz[scale=.3]{\fill[opacity=.25] (0,0) circle (1);},
+% \tikz[scale=.3]{\fill[opacity=0] (0,0) circle (1);}. Já o código
+% \begin{quote}
+% \cs{begin}|{scope}[rotate around y={\um}]|\\
+% \hspace*{24pt} \cs{draw}|[-latex,red] (0,0) -- (1,0);|\\
+% \hspace*{24pt} \cs{draw}|[-latex,blue] (0,0) -- (0,1);|\\
+% \hspace*{24pt} \cs{draw}|[-latex,green] (0,0) -- (0,0,1);|\\
+% \cs{end}|{scope}|
+% \end{quote}
+% will produce
+% \tikz[scale=.6,rotate around y={0}]{
+% \draw[-latex,red] (0,0) -- (1,0);
+% \draw[-latex,blue] (0,0) -- (0,1);
+% \draw[-latex,green] (0,0) -- (0,0,1);
+%},
+% \tikz[scale=.6,rotate around y={30}]{
+ % \draw[-latex,red] (0,0) -- (1,0);
+ % \draw[-latex,blue] (0,0) -- (0,1);
+ % \draw[-latex,green] (0,0) -- (0,0,1);
+ %},
+% \tikz[scale=.6,rotate around y={60}]{
+ % \draw[-latex,red] (0,0) -- (1,0);
+ % \draw[-latex,blue] (0,0) -- (0,1);
+ % \draw[-latex,green] (0,0) -- (0,0,1);
+ %} e
+% \tikz[scale=.6,rotate around y={90}]{
+ % \draw[-latex,red] (0,0) -- (1,0);
+ % \draw[-latex,blue] (0,0) -- (0,1);
+ % \draw[-latex,green] (0,0) -- (0,0,1);
+ %}.
+%
+% In summary, it is easy to see the many animation possibilities that can be created with |tikz| using the commands |\um| and |\zero| in the |anima| class. At the end of this documentation, an implementation of a model with some other possibilities is presented.
+%
+% \section{Principais Comandos}
+%
+% \DescribeMacro{\uns\marg{a}\marg{b}\marg{c}}In addition to the commands |\um| and |\zero| presented earlier, there are several other commands implemented by the class to facilitate animation creation. One such command is |\uns|\marg{a}\marg{b}\marg{c}. This command is a function that divides the interval $[0,1]$ into three parts proportional to the ratio |a:b:c| and performs the animation in the intermediate part. The behavior of this command can be represented by its graph.
+%\begin{center}
+%\begin{tikzpicture}[scale=2]
+% \foreach \i in {-.4,0,...,2.4}
+% \draw (\i,-.05) -- (\i,.05);
+% \draw[-latex] (-.4,0)--(2.6,0);
+% \foreach \i in {-.2,0,...,1.2}
+% \draw (-.05,\i) -- (.05,\i);
+% \draw[-latex] (0,-.2)--(0,1.4);
+% \draw[blue,line width=.8pt] (0,0)--(.8,0)--(1.7,1)--(2,1);
+% \draw[latex-latex,red] (0,-.1)--node[below]{$a$} (.8,-.1);
+% \draw[latex-latex,red] (.8,-.1)--node[below]{$b$} (1.7,-.1);
+% \draw[latex-latex,red] (1.7,-.1)--node[below]{$c$} (2,-.1);
+%\end{tikzpicture}
+%\end{center}
+% This command was created to produce successive animations without the need to create the same slide multiple times using the |\um| command. For example, if we want a figure to move to the right and then consecutively to the left, we can use the following code:
+% \begin{quote}
+% \cs{fill}|[-latex,blue] ({\uns011},{\uns110}) circle (1);|\\
+% \end{quote}
+%
+% \DescribeMacro{\zeros\marg{a}\marg{b}\marg{c}} The command |\zeros| is defined as |1-\uns|. By substituting one command for the other, using the same parameters, we will always obtain the inverse animation.
+%
+% \DescribeMacro{block} Just like in the |beamer| class, in the |anima| class we have the |block| environment implemented to insert information such as text into the slide presentation. To use the |block| environment, we write the following code:
+% \begin{quote}
+% \cs{begin}|{block}|\oarg{post}\marg{Title}\oarg{width}\oarg{conf}\oarg{conf}\\
+% \hspace*{24pt} content\\
+% \cs{end}|{block}|
+%\end{quote}
+%
+% The mandatory parameter \marg{Title} is the title of the block, and it accepts a text value. The parameter \oarg{post} specifies the position of the top center of the |block|, and it must receive a point such as $(a,b)$ or $(t:r)$. Each new block inserted into the slide is placed directly below the previous one. The parameter \oarg{width} determines the length of the block. Finally, the \oarg{conf} and \oarg{conf} parameters are the configurations for the text of the title and the "content," respectively. Any valid parameters for the |\node| command from the |tikz| package can be used here.
+%
+% \DescribeMacro{alertblock}\DescribeMacro{exampleblock}\DescribeMacro{anotherblock} The environments |alertblock|, |exampleblock|, and |anotherblock| work similarly to the |block| environment, but with a different color scheme.
+%
+% \DescribeMacro{notitleblock} The |notitleblock| environment is similar to the |block| environment, but without the title bar.
+%
+% \DescribeMacro{\animaColorTheme\marg{c1}...\marg{c6}} The command \cs{animaColorTheme}\marg{c1}...\marg{c6} defines the color palette for the slide presentation. The colors should be inserted using their HTML codes, such as |FFFFFF| or |FF4500|, without the \# character. The parameter \marg{c1} defines the background color of the frame, and the second parameter \marg{c2} defines the primary color for texts and figures in the presentation. These first two colors can be used by the user with the names \it{boardColor} and \it{textColor}, respectively. The remaining colors are auxiliary colors that determine the colors for the |block|, |alertblock|, |exampleblock|, and |anotherblock| environments, respectively. These last four colors can be used under the names \it{animaColor1}, \it{animaColor2}, \it{animaColor3}, and \it{animaColor4}, respectively.
+%
+% \DescribeMacro{\animaFormatText\marg{conf}} The command |\animaFormatText|\marg{conf} is used to modify the formatting of the block titles.
+%
+%
+% \DescribeMacro{\animaFormatTitle\marg{conf}} The command |\animaFormatTitle|\marg{conf} is used to modify the formatting of the block content texts.
+%
+%
+% \DescribeMacro{\animaFrameTitle\marg{t}\marg{n}\marg{c}\marg{y}} The command |\animaFrameTitle|\marg{t}\marg{n}\marg{c}\marg{y} can be used to create a title slide for the presentation. In comparison with |beamer|, it is similar to the command |\makeframetitle|. The mandatory parameters \marg{t}, \marg{n}, \marg{c}, and \marg{y} are texts representing the "Title" of the presentation, the "Name" of the author, the "City" or location, and the "Year" or date.
+%
+%
+% \DescribeMacro{\animaBoardDimension\marg{w}\marg{h}} With the command |\animaBoardDimension|\marg{w}\marg{h}, it is possible to modify the dimensions of the presentation. The parameters \marg{w} and \marg{h} represent the width and height of the presentation, respectively.
+%
+% \DescribeMacro{\nFrame} The command \cs{nFrame} is the counter that indicates which frame of the animation is currently being displayed. The internal counter of the class is \cs{anima at FrameCount}.
+% \section{Implementation}
+% \begin{macrocode}
+%<*class>
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesClass{anima}[2024/11/12 Classe Anima para Animations]
+\LoadClass[multi=page]{standalone}
+
+\RequirePackage{pgf,tikz}[1994/06/01]
+\usetikzlibrary{positioning}
+
+\newcommand\animaFormatText{\large}
+\newcommand\animaFormatTitle{\large\bf}
+\newcommand{\animaFrameTitle}[4]{
+ \begin{anima}
+ \node (centro) at (0,0) {};
+ \begin{block}{\huge #1}
+ [(\anima at BoardWidth-.15)*1cm]
+ [above = of centro,anima at TextColor,align = center]
+ [node distance = 0.5cm, below = of a]
+ \\\Large #2
+ \end{block}
+ \node[
+ text width = {(2*\anima at BoardWidth-0.25)*1cm},
+ node distance = 3.5cm,
+ below = of centro]
+ {#3\hfill #4};
+ \end{anima}
+}
+
+
+% Dimensões do Slide
+\newcommand\animaBoardDimension[2]{
+ \def\anima at BoardWidth{(#1/2)}
+ \def\anima at BoardHeight{(#2/2)}
+}
+\animaBoardDimension{16}{9}
+
+% Definião de cores
+\newcommand{\animaColorTheme}[6]{
+ \definecolor{anima at BoardColor} {HTML}{#1}
+ \definecolor{boardColor} {HTML}{#1}
+ \definecolor{anima at TextColor} {HTML}{#2}
+ \definecolor{textColor} {HTML}{#2}
+ \definecolor{anima at Color1} {HTML}{#3}
+ \definecolor{animaColor1} {HTML}{#3}
+ \definecolor{anima at Color2} {HTML}{#4}
+ \definecolor{animaColor2} {HTML}{#4}
+ \definecolor{anima at Color3} {HTML}{#5}
+ \definecolor{animaColor3} {HTML}{#5}
+ \definecolor{anima at Color4} {HTML}{#6}
+ \definecolor{animaColor4} {HTML}{#6}
+}
+
+\def\animaColorThemeI{
+ \animaColorTheme{FFFFFF}
+ {000000}
+ {0000FF}
+ {FF0000}
+ {00FF00}
+ {FFFF00}
+}
+\def\animaColorThemeII{
+ \animaColorTheme{FFFFFF}
+ {660907}
+ {016BBF}
+ {FF0000}
+ {00FFFF}
+ {FFD16A}
+
+}
+
+\animaColorThemeI
+
+\newcommand\grade{
+ \draw[dotted, opacity=.2,line width = .3pt] %
+ ({-\anima at BoardWidth},{-\anima at BoardHeight}) grid %
+ ({\anima at BoardWidth},{\anima at BoardHeight});
+}
+
+% \end{macrocode}
+%\begin{macro}{\uns}
+% As próximas linhas implementam o comando |\uns{a}{b}{c}|. Este comando é uma função de [1,0] em [0,1] definida por partes da seguinte forma
+%$$\backslash uns(x)=\begin{cases}
+% 0 &\mbox{ se } x< \frac{a}{a+b+c}\\
+% 1 &\mbox{ se } x> \frac{a+b}{a+b+c}\\
+% \frac{a+b+c}{b}x-\frac{a}{b} &\mbox{ nos demais casos}
+%\end{cases}$$
+%\end{macro}
+% \begin{macrocode}
+\newcommand{\uns}[3]{
+ ((#1+#2+#3)<=0?1:(
+ (\um<(#1/(#1+#2+#3))?0:
+ (\um>((#1+#2)/(#1+#2+#3))?1:
+ (((#1+#2+#3)/#2)*\um-#1/#2)
+ )))
+}
+\newcommand{\zeros}[3]{(1-\uns{#1}{#2}{#3})}
+
+% Ambiente anima
+\newcount\anima at FrameCount
+\newcount\nFrame
+\NewDocumentEnvironment{anima}{+O{1} +b}{
+ \ifnum #1 = 1
+ \def\um{1}
+ \def\zero{0}
+ \begin{page}%
+ \begin{tikzpicture}[color=anima at TextColor,line width=1.5pt]
+ \clip ({-\anima at BoardWidth},{-\anima at BoardHeight})
+ rectangle ({\anima at BoardWidth},{\anima at BoardHeight});
+ \fill[color=anima at BoardColor]
+ ({-\anima at BoardWidth},{-\anima at BoardHeight})
+ rectangle ({\anima at BoardWidth},{\anima at BoardHeight});
+ \grade
+ \node (a) at \anima at PositionBlock{};
+ #2
+ \end{tikzpicture}%
+ \end{page}
+ \else
+ \anima at FrameCount = 0
+ \loop
+ \nFrame = \anima at FrameCount
+ \def\um{(\the\anima at FrameCount/(#1-1))}
+ \def\zero{(1-\um)}
+ \begin{page}%
+ \begin{tikzpicture}[color=anima at TextColor,line width=1.0pt]
+ \clip
+ ({-\anima at BoardWidth},{-\anima at BoardHeight}) rectangle
+ ({\anima at BoardWidth},{\anima at BoardHeight});
+ \fill[color=anima at BoardColor]
+ ({-\anima at BoardWidth},{-\anima at BoardHeight}) rectangle
+ ({\anima at BoardWidth},{\anima at BoardHeight});
+ \grade
+ \node (a) at \anima at PositionBlock {};
+ #2
+ \end{tikzpicture}%
+ \end{page}
+ \advance \anima at FrameCount +1
+ \ifnum \anima at FrameCount < #1 \repeat
+ \fi
+}{}
+
+\renewenvironment{frame}[1][1]{\begin{anima}[#1]}{\end{anima}}
+
+%comando textblock
+\def\anima at PositionBlock{(0,{\anima at BoardHeight})}
+\def\anima at WhidthBlock{\anima at BoardWidth*0.9875 cm}
+
+\NewDocumentEnvironment{block}
+{+O{a} +m +O{\anima at WhidthBlock} +O{} +O{} +b}
+{
+ \node[ draw,
+ bottom color = anima at Color1,
+ top color = anima at Color1!50!anima at BoardColor,
+ text width = {2*#3-0.25cm},
+ node distance = 0.0cm,
+ below = of {#1}, #4]
+ (a) {\animaFormatTitle\vphantom{bq} #2};
+ \node[ text width = {2*#3-0.25cm},
+ node distance = 0.0cm,
+ below = of a,#5]
+ (a) {\animaFormatText #6};
+}{}
+
+\NewDocumentEnvironment{alertblock}
+{+O{a} +m +O{\anima at WhidthBlock} +O{} +O{} +b}
+{
+ \node[ draw,
+ bottom color = anima at Color2,
+ top color = anima at Color2!50!anima at BoardColor,
+ text width = {2*#3-0.25cm},
+ node distance = 0.0cm,
+ below = of {#1}, #4]
+ (a) {\animaFormatTitle\vphantom{bq} #2};
+ \node[ text width = {2*#3-0.25cm},
+ node distance = 0.0cm,
+ below= of a,#5]
+ (a) {\animaFormatText #6};
+}{}
+
+\NewDocumentEnvironment{exampleblock}
+{+O{a} +m +O{\anima at WhidthBlock} +O{} +O{} +b}
+{
+ \node[ draw,
+ bottom color = anima at Color3,
+ top color = anima at Color3!50!anima at BoardColor,
+ text width = {2*#3-0.25cm},
+ node distance = 0.0cm,
+ below = of {#1}, #4]
+ (a) {\animaFormatTitle\vphantom{bq} #2};
+ \node[ text width = {2*#3-0.25cm},
+ node distance = 0.0cm,
+ below= of a,
+ #5]
+ (a) {\animaFormatText #6};
+}{}
+
+\NewDocumentEnvironment{anotherblock}
+{+O{a} +m +O{\anima at WhidthBlock} +O{} +O{} +b}
+{
+ \node[draw,
+ bottom color = anima at Color4,
+ top color = anima at Color4!50!anima at BoardColor,
+ text width = {2*#3-0.25cm},
+ node distance = 0.0cm,
+ below = of {#1}, #4]
+ (a) {\animaFormatTitle\vphantom{bq} #2};
+ \node[ text width = {2*#3-0.25cm},
+ node distance = 0.0cm,
+ below= of a,
+ #5]
+ (a) {\animaFormatText #6};
+}{}
+
+\NewDocumentEnvironment{notitleblock}
+ {+O{a} +O{\anima at WhidthBlock} +O{} +b}
+{
+ \node[ text width = {2*#2-0.25cm},
+ node distance = 0.0cm,
+ below= of a,
+ #3]
+ (a) {\animaFormatText #4};
+}{}
+
+\newcommand{\animaExemplo}{\large
+ \begin{block}[(0,4.2)]{LAYOUT EXAMPLE WITH BLOCK OF TITLE}[7.9cm]
+ \end{block}
+
+ \begin{exampleblock}[(-4,3)]{EXAMPLE BLOCK}[3.9cm]
+ A example of block with a equation
+ $$f(x)=2\sin(.57x)$$
+ \end{exampleblock}
+
+ \begin{alertblock}{ALERT BLOCK}[3.9cm]
+ \end{alertblock}
+
+ \begin{scope}[
+ shift={(4,-2)},
+ scale=1.3,
+ rotate around x= {360*\uns011},
+ rotate around y= {360*\uns110}]
+ \draw[animaColor1,-latex] (0,0)--(1,0)node[anchor=north]{$x$};
+ \draw[animaColor2,-latex] (0,0)--(0,1)node[anchor=east]{$y$};
+ \draw[animaColor4] (-1,-1,-1)--(1,-1,-1)--(1,1,-1)--(-1,1,-1)--cycle;
+ \draw[animaColor4] (-1,-1,1)--(1,-1,1)--(1,1,1)--(-1,1,1)--cycle;
+ \draw[animaColor4] (-1,-1,-1)--(-1,-1,1) (1,-1,-1)--(1,-1,1)
+ (1,1,-1)--(1,1,1) (-1,1,-1)--(-1,1,1);
+ \draw[anima at Color3,-latex] (0,0)--(0,0,1)node[anchor=south]{$z$};
+ \end{scope}
+
+ \node at (0,3) [anchor=north west]{
+ \begin{minipage}{7.25cm}\animaFormatText
+ {\color{textColor} Text in the color textColor}\\
+ {\color{animaColor1} Text in the color animaColor1}\\
+ {\color{animaColor2} Text in the color animaColor2}\\
+ {\color{animaColor3} Text in the color animaColor3}\\
+ {\color{animaColor4} Text in the color animaColor4}\\
+ \end{minipage}};
+
+ % Gráfico de Função da integral
+ \begin{scope}[shift={(-7,-4)},color=animaColor2]
+ % exios x e y=f(x)
+ \draw[-latex] (-.5,0)--(6,0)node[anchor=north]{$x$};
+ \draw[-latex] (0,-.5)--(0,3)node[anchor=east]{$f(x)$};
+ % Retângulos de soma de Riemann
+ \def\numero{\the\nFrame}
+ \foreach \i in {-1,0,...,\numero}{
+ \fill[color=animaColor4]
+ ({1.25+(\i+1)*(4/((\numero)+2))},0)--
+ ({1.25+(\i+2)*(4/((\numero)+2))},0)--
+ ({1.25+(\i+2)*(4/((\numero)+2))},{2*sin(.6*(1+(\i+2)
+ *(4/((\numero)+2))) r)})--
+ ({1.25+(\i+1)*(4/((\numero)+2))},{2*sin(.6*(1+(\i+2)
+ *(4/((\numero)+2))) r)})--
+ cycle;
+ % eixos x e y=f(x)
+ \draw[-latex] (-.5,0)--(6,0)node[anchor=north]{$x$};
+ \draw[-latex] (0,-.5)--(0,3)node[anchor=east]{$f(x)$};
+ % Gráfico da função (pede ser alterada)
+ \draw[color=animaColor3,domain=0:{5.7}] plot (\x,{2*sin(.57*\x r)});
+ \draw[color=animaColor1,domain=0:{5.7*\um}] plot (\x,{2*sin(.57*\x r)});
+ }
+ \end{scope}
+}
+% \end{macrocode}
+%
+%
+% \begin{macrocode}
+%</class>
+% \end{macrocode}
+%
+%\section{Exemplo}
+% \begin{macrocode}
+%<*example>
+\documentclass{anima}
+
+\begin{document}
+
+\animaFrameTitle
+ {PRESENTATIONS WITH ANIMATIONS IN \LaTeX}
+ {Adriano G. Santana}
+ {Toledo-PR}{\today}
+
+\begin{frame}[24]
+ \animaExemplo
+\end{frame}
+
+\begin{frame}[3]
+
+ \begin{block}[(-5.1,4.4)]{A CLOCK}[2.8cm]
+ \end{block}
+
+ \draw[-latex] (-5,1.8)--++({90-360*\um}:1.4);
+ \draw[-latex] (-5,1.8) circle (1.4);
+
+ \begin{alertblock}[(-5.1,0)]{DESCRIPTION}[2.8cm]
+ 4 - defines the counter;\\
+ 5 - initializes it to zero;\\
+ 7 - start of the loop;\\
+ 10 - drawing the pointer;\\
+ 14 - counter + 1;\\
+ 15 - stop condition
+ \end{alertblock}
+
+ \begin{exampleblock}[(2.9,4.4)]{CODE}[5cm]
+ \normalsize\tt{%
+ 1 \textbackslash documentclass[multi=page]\{standalone\}\\
+ 2 \textbackslash usepakage\{pgf,tikz\}
+
+ 3 \qquad\textbackslash begin\{document\}
+
+ 4 \qquad\textbackslash newcount\textbackslash nFrame\\
+ 5 \qquad\textbackslash nFrame = 0\\
+ 6 \qquad\textbackslash def\textbackslash angulo\{90- 36*\textbackslash the\textbackslash nfram\}\\
+ 7 \qquad\textbackslash loop\\
+ 8 \qquad\qquad \textbackslash begin\{page\}\%\\
+ 9 \qquad\qquad \textbackslash begin\{tikzpicture\}\\
+ 10\qquad\qquad\qquad\textbackslash draw [->] (0,0)--(\{\textbackslash angulo\}:1);\\
+ 11\qquad\qquad\qquad\textbackslash draw (0,0) circle (1);\\
+ 12\qquad\qquad \textbackslash end\{tikzpicture\}\%\\
+ 13\qquad\qquad \textbackslash end\{page\}\\
+ 14\qquad\textbackslash advance \textbackslash nFrame +1\\
+ 15\qquad\textbackslash ifnum \textbackslash nFrame < 11 \textbackslash repeat\\
+ 16\textbackslash end\{documento\}}
+ \end{exampleblock}
+\end{frame}
+
+\begin{frame}[12]
+
+ \begin{block}[(-5.1,4.4)]{A CLOCK}[2.8cm]
+ \end{block}
+
+ \draw[-latex] (-5,1.8)--++({90-360*\um}:1.4);
+ \draw[-latex] (-5,1.8) circle (1.4);
+
+ \begin{alertblock}[(-5.1,0)]{DESCRIPTION}[2.8cm]
+ 1 - anima class;\\
+ 3 - \textbackslash um default counter\\
+ 4 - [10] defines the number of repetitions\\
+ 5 and 6 - same command as before
+ \end{alertblock}
+
+ \begin{exampleblock}[(2.9,4.4)]{CODE WITH ANIMA CLASS}[5cm]
+ Of course, the same result can be achieved by creating a command with \textbf{\textbackslash newcommand} or \textbf{\textbackslash NewDocumentEnvironment}. This is exactly what the \textbf{anima} class does. With this class, the same result can be obtained with the following code. \\\vspace{.5cm}
+
+ \tt{%
+ 1 \textbackslash documentclass\{frame\}\\
+
+ 2 \qquad\textbackslash begin\{document\}\\
+ 3 \qquad\textbackslash def\textbackslash angulo\{90- 360*\textbackslash um\}\\
+ 4 \qquad\qquad \textbackslash begin\{anima\}[10]\\
+ 5 \qquad\qquad\qquad\textbackslash draw [->] (0,0)--(\{\textbackslash angulo\}:1);\\
+ 6 \qquad\qquad\qquad\textbackslash draw (0,0) circle (1);\\
+ 7 \qquad\qquad \textbackslash end\{frame\}\\
+ 8 \textbackslash end\{documento\}}
+ \end{exampleblock}
+\end{frame}
+
+\begin{frame}[3]
+ \begin{block}{HOW WORKING}
+ The environment named {\tt frame} produces a screen with a 16:9 aspect ratio, similar to modern computer, smartphone, and other device screens, with the point (0,0) at the center.
+ \end{block}
+
+ \draw[latex-latex] ({-8*\um},-3.5)--node[above]{16cm}({8*\um},-3.5);
+ \draw[latex-latex] (-7,{-4.5*\um})--node[right]{9cm} (-7,{4.5*\um});
+\end{frame}
+
+\begin{frame}
+ \begin{block}{HOW WORKING}
+ The optional parameter {\tt{\color{animaColor1}[10]}} defines the number of frames in the animation. The command {\tt\textbackslash nFrame} is the counter responsible for the loop within the environment, ranging from 0 to the total number of frames minus 1. The command {\tt{\color{animaColor2}\textbackslash um}} spans the interval from 0 to 1, dividing it into {\tt \textbackslash nFrame} segments.
+
+ We can insert any code within the \textbf{anima} environment that would typically be used in the \textbf{tikzpicture} environment of TikZ. Additional definitions can be included using the \textbf{scope} environment from TikZ itself.
+ \end{block}
+ \begin{exampleblock}{NEW EXAMPLE}
+ \tt{%
+ 1 \textbackslash documentclass\{anima\}\\
+
+ 2 \qquad\textbackslash begin\{document\}\\
+ 3 \qquad\textbackslash def\textbackslash angulo\{90- 360*{\color{animaColor2}\textbackslash um}\}\\
+ 4 \qquad \textbackslash begin\{anima\}{\color{animaColor1}[10]}\\
+ 5 \qquad\qquad\textbackslash draw [->] (0,0)--(\{\textbackslash angulo\}:1);\\
+ 6 \qquad\qquad\textbackslash draw (0,0) circle (1);\\
+ 7 \qquad \textbackslash end\{anima\}\\
+ 8 \textbackslash end\{documento\}}
+ \end{exampleblock}
+\end{frame}
+
+\begin{frame}
+ \begin{block}{BLOCK, EXAMPLEBLOCK, ALERTBLOCK}
+ To simplify the creation of slide presentations, the \textbf{block}, \textbf{alertblock}, and \textbf{exampleblock} environments from the \textbf{beamer} class have been recreated.\vspace{.5cm}
+
+ {\tt%
+ 1- \textbackslash begin\{block\}\{Title\}\\
+ 2-\qquad Body text\\
+ 3- \textbackslash begin\{block\}\\
+ }
+ \end{block}
+ \begin{alertblock}{Alignment}
+ The first block starts at the top of the page, and subsequent blocks are aligned directly below it.
+ \end{alertblock}
+ \begin{exampleblock}{}
+ A title is mandatory, even if left empty.
+ \end{exampleblock}
+\end{frame}
+
+\begin{frame}
+ \begin{block}[(-2,3)]{Basic Block Options}[5.5cm]
+ {\tt%
+ 1- \textbackslash begin\{block\}{\color{animaColor2}[(-2,3)]}\{Title\}{\color{animaColor1}[5.5cm]}\\
+ 2-\qquad Body text\\
+ 3- \textbackslash begin\{block\}
+ }\\
+
+ If repositioning or resizing a block is necessary, there are two optional parameters to achieve this:
+
+ {\tt\color{animaColor1}[(-2,3)]} - defines the position of the top center of the block;\\
+ {\tt\color{animaColor2}[5.5cm]} - defines half the width of the block.
+ \end{block}
+
+ \draw[-latex,animaColor2] (-2,3.5)--node[above,animaColor2]{5.5cm}++(5.5,0);
+ \draw[-latex,animaColor2] (-2,3.5)--node[above,animaColor2]{5.5cm}++(-5.5,0);
+ \draw[animaColor2] (-2,3.3)--(-2,3.7);~
+ \fill[animaColor1] (-2,3) circle (.2) node[above]{center block};
+
+ \begin{exampleblock}{NEW BLOCK}[4cm]
+ The next block is always vertically aligned with the previous one. Here, we only need to define its width to ensure it doesn't exceed the screen.
+ \end{exampleblock}
+\end{frame}
+
+\end{document}
+%</example>
+% \end{macrocode}
+%\Finale \PrintChanges \PrintIndex
\ No newline at end of file
Property changes on: trunk/Master/texmf-dist/source/latex/anima/anima.dtx
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/source/latex/anima/anima.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex/anima/anima.ins (rev 0)
+++ trunk/Master/texmf-dist/source/latex/anima/anima.ins 2024-11-19 20:34:14 UTC (rev 72895)
@@ -0,0 +1,44 @@
+\input docstrip.tex
+\keepsilent
+\askforoverwritefalse
+\preamble
+----------------------------------------------------------------
+anima --- Class for creating slideshow with simple animations with TikZ
+E-mail: adriano_gsgs at hotmail.com
+Written by Adriano Gomes de Santana
+Released under the LaTeX Project Public License v1.3c or later
+See http://www.latex-project.org/lppl.txt
+----------------------------------------------------------------
+
+\endpreamble
+\postamble
+
+Copyright (C) 2009 by Adriano Gomes de Santana <adriano_gsgs at hotmail.com>
+
+This work may be distributed and/or modified under the
+conditions of the LaTeX Project Public License (LPPL), either
+version 1.3c of this license or (at your option) any later
+version. The latest version of this license is in the file:
+
+http://www.latex-project.org/lppl.txt
+
+This work is "maintained" (as per LPPL maintenance status) by
+Adriano Gomes de Santana.
+
+This work consists of the file anima.dtx
+and the derived files anima.ins,
+ anima.pdf and
+ anima.cls.
+
+\endpostamble
+\usedir{tex/latex/anima}
+\generate{
+ \file{\jobname.cls}{\from{\jobname.dtx}{class}}
+}
+\nopreamble\nopostamble
+\usedir{tex/latex/anima}
+\generate{
+\file{exemplo.tex}{\from{\jobname.dtx}{example}}
+}
+\endbatchfile
+
Added: trunk/Master/texmf-dist/tex/latex/anima/anima.cls
===================================================================
--- trunk/Master/texmf-dist/tex/latex/anima/anima.cls (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/anima/anima.cls 2024-11-19 20:34:14 UTC (rev 72895)
@@ -0,0 +1,296 @@
+%%
+%% This is file `anima.cls',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% anima.dtx (with options: `class')
+%% ----------------------------------------------------------------
+%% anima --- Class for creating slideshow with simple animations with TikZ
+%% E-mail: adriano_gsgs at hotmail.com
+%% Written by Adriano Gomes de Santana
+%% Released under the LaTeX Project Public License v1.3c or later
+%% See http://www.latex-project.org/lppl.txt
+%% ----------------------------------------------------------------
+%%
+
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesClass{anima}[2024/11/12 Classe Anima para Animations]
+\LoadClass[multi=page]{standalone}
+
+\RequirePackage{pgf,tikz}[1994/06/01]
+\usetikzlibrary{positioning}
+
+\newcommand\animaFormatText{\large}
+\newcommand\animaFormatTitle{\large\bf}
+\newcommand{\animaFrameTitle}[4]{
+\begin{anima}
+\node (centro) at (0,0) {};
+\begin{block}{\huge #1}
+[(\anima at BoardWidth-.15)*1cm]
+[above = of centro,anima at TextColor,align = center]
+[node distance = 0.5cm, below = of a]
+\\\Large #2
+\end{block}
+\node[
+text width = {(2*\anima at BoardWidth-0.25)*1cm},
+node distance = 3.5cm,
+below = of centro]
+{#3\hfill #4};
+\end{anima}
+}
+
+\newcommand\animaBoardDimension[2]{
+\def\anima at BoardWidth{(#1/2)}
+\def\anima at BoardHeight{(#2/2)}
+}
+\animaBoardDimension{16}{9}
+
+\newcommand{\animaColorTheme}[6]{
+\definecolor{anima at BoardColor} {HTML}{#1}
+\definecolor{boardColor} {HTML}{#1}
+\definecolor{anima at TextColor} {HTML}{#2}
+\definecolor{textColor} {HTML}{#2}
+\definecolor{anima at Color1} {HTML}{#3}
+\definecolor{animaColor1} {HTML}{#3}
+\definecolor{anima at Color2} {HTML}{#4}
+\definecolor{animaColor2} {HTML}{#4}
+\definecolor{anima at Color3} {HTML}{#5}
+\definecolor{animaColor3} {HTML}{#5}
+\definecolor{anima at Color4} {HTML}{#6}
+\definecolor{animaColor4} {HTML}{#6}
+}
+
+\def\animaColorThemeI{
+\animaColorTheme{FFFFFF}
+{000000}
+{0000FF}
+{FF0000}
+{00FF00}
+{FFFF00}
+}
+\def\animaColorThemeII{
+\animaColorTheme{FFFFFF}
+{660907}
+{016BBF}
+{FF0000}
+{00FFFF}
+{FFD16A}
+
+}
+
+\animaColorThemeI
+
+\newcommand\grade{
+\draw[dotted, opacity=.2,line width = .3pt] %
+({-\anima at BoardWidth},{-\anima at BoardHeight}) grid %
+({\anima at BoardWidth},{\anima at BoardHeight});
+}
+
+\newcommand{\uns}[3]{
+((#1+#2+#3)<=0?1:(
+(\um<(#1/(#1+#2+#3))?0:
+(\um>((#1+#2)/(#1+#2+#3))?1:
+(((#1+#2+#3)/#2)*\um-#1/#2)
+)))
+}
+\newcommand{\zeros}[3]{(1-\uns{#1}{#2}{#3})}
+
+\newcount\anima at FrameCount
+\newcount\nFrame
+\NewDocumentEnvironment{anima}{+O{1} +b}{
+\ifnum #1 = 1
+\def\um{1}
+\def\zero{0}
+\begin{page}%
+\begin{tikzpicture}[color=anima at TextColor,line width=1.5pt]
+\clip ({-\anima at BoardWidth},{-\anima at BoardHeight})
+rectangle ({\anima at BoardWidth},{\anima at BoardHeight});
+\fill[color=anima at BoardColor]
+({-\anima at BoardWidth},{-\anima at BoardHeight})
+rectangle ({\anima at BoardWidth},{\anima at BoardHeight});
+\grade
+\node (a) at \anima at PositionBlock{};
+#2
+\end{tikzpicture}%
+\end{page}
+\else
+\anima at FrameCount = 0
+\loop
+\nFrame = \anima at FrameCount
+\def\um{(\the\anima at FrameCount/(#1-1))}
+\def\zero{(1-\um)}
+\begin{page}%
+\begin{tikzpicture}[color=anima at TextColor,line width=1.0pt]
+\clip
+({-\anima at BoardWidth},{-\anima at BoardHeight}) rectangle
+({\anima at BoardWidth},{\anima at BoardHeight});
+\fill[color=anima at BoardColor]
+({-\anima at BoardWidth},{-\anima at BoardHeight}) rectangle
+({\anima at BoardWidth},{\anima at BoardHeight});
+\grade
+\node (a) at \anima at PositionBlock {};
+#2
+\end{tikzpicture}%
+\end{page}
+\advance \anima at FrameCount +1
+\ifnum \anima at FrameCount < #1 \repeat
+\fi
+}{}
+
+\renewenvironment{frame}[1][1]{\begin{anima}[#1]}{\end{anima}}
+
+\def\anima at PositionBlock{(0,{\anima at BoardHeight})}
+\def\anima at WhidthBlock{\anima at BoardWidth*0.9875 cm}
+
+\NewDocumentEnvironment{block}
+{+O{a} +m +O{\anima at WhidthBlock} +O{} +O{} +b}
+{
+\node[ draw,
+bottom color = anima at Color1,
+top color = anima at Color1!50!anima at BoardColor,
+text width = {2*#3-0.25cm},
+node distance = 0.0cm,
+below = of {#1}, #4]
+(a) {\animaFormatTitle\vphantom{bq} #2};
+\node[ text width = {2*#3-0.25cm},
+node distance = 0.0cm,
+below = of a,#5]
+(a) {\animaFormatText #6};
+}{}
+
+\NewDocumentEnvironment{alertblock}
+{+O{a} +m +O{\anima at WhidthBlock} +O{} +O{} +b}
+{
+\node[ draw,
+bottom color = anima at Color2,
+top color = anima at Color2!50!anima at BoardColor,
+text width = {2*#3-0.25cm},
+node distance = 0.0cm,
+below = of {#1}, #4]
+(a) {\animaFormatTitle\vphantom{bq} #2};
+\node[ text width = {2*#3-0.25cm},
+node distance = 0.0cm,
+below= of a,#5]
+(a) {\animaFormatText #6};
+}{}
+
+\NewDocumentEnvironment{exampleblock}
+{+O{a} +m +O{\anima at WhidthBlock} +O{} +O{} +b}
+{
+\node[ draw,
+bottom color = anima at Color3,
+top color = anima at Color3!50!anima at BoardColor,
+text width = {2*#3-0.25cm},
+node distance = 0.0cm,
+below = of {#1}, #4]
+(a) {\animaFormatTitle\vphantom{bq} #2};
+\node[ text width = {2*#3-0.25cm},
+node distance = 0.0cm,
+below= of a,
+#5]
+(a) {\animaFormatText #6};
+}{}
+
+\NewDocumentEnvironment{anotherblock}
+{+O{a} +m +O{\anima at WhidthBlock} +O{} +O{} +b}
+{
+\node[draw,
+bottom color = anima at Color4,
+top color = anima at Color4!50!anima at BoardColor,
+text width = {2*#3-0.25cm},
+node distance = 0.0cm,
+below = of {#1}, #4]
+(a) {\animaFormatTitle\vphantom{bq} #2};
+\node[ text width = {2*#3-0.25cm},
+node distance = 0.0cm,
+below= of a,
+#5]
+(a) {\animaFormatText #6};
+}{}
+
+\NewDocumentEnvironment{notitleblock}
+{+O{a} +O{\anima at WhidthBlock} +O{} +b}
+{
+\node[ text width = {2*#2-0.25cm},
+node distance = 0.0cm,
+below= of a,
+#3]
+(a) {\animaFormatText #4};
+}{}
+
+\newcommand{\animaExemplo}{\large
+\begin{block}[(0,4.2)]{LAYOUT EXAMPLE WITH BLOCK OF TITLE}[7.9cm]
+\end{block}
+
+\begin{exampleblock}[(-4,3)]{EXAMPLE BLOCK}[3.9cm]
+A example of block with a equation
+$$f(x)=2\sin(.57x)$$
+\end{exampleblock}
+
+\begin{alertblock}{ALERT BLOCK}[3.9cm]
+\end{alertblock}
+
+\begin{scope}[
+shift={(4,-2)},
+scale=1.3,
+rotate around x= {360*\uns011},
+rotate around y= {360*\uns110}]
+\draw[animaColor1,-latex] (0,0)--(1,0)node[anchor=north]{$x$};
+\draw[animaColor2,-latex] (0,0)--(0,1)node[anchor=east]{$y$};
+\draw[animaColor4] (-1,-1,-1)--(1,-1,-1)--(1,1,-1)--(-1,1,-1)--cycle;
+\draw[animaColor4] (-1,-1,1)--(1,-1,1)--(1,1,1)--(-1,1,1)--cycle;
+\draw[animaColor4] (-1,-1,-1)--(-1,-1,1) (1,-1,-1)--(1,-1,1)
+(1,1,-1)--(1,1,1) (-1,1,-1)--(-1,1,1);
+\draw[anima at Color3,-latex] (0,0)--(0,0,1)node[anchor=south]{$z$};
+\end{scope}
+
+\node at (0,3) [anchor=north west]{
+\begin{minipage}{7.25cm}\animaFormatText
+{\color{textColor} Text in the color textColor}\\
+{\color{animaColor1} Text in the color animaColor1}\\
+{\color{animaColor2} Text in the color animaColor2}\\
+{\color{animaColor3} Text in the color animaColor3}\\
+{\color{animaColor4} Text in the color animaColor4}\\
+\end{minipage}};
+
+\begin{scope}[shift={(-7,-4)},color=animaColor2]
+\draw[-latex] (-.5,0)--(6,0)node[anchor=north]{$x$};
+\draw[-latex] (0,-.5)--(0,3)node[anchor=east]{$f(x)$};
+\def\numero{\the\nFrame}
+\foreach \i in {-1,0,...,\numero}{
+\fill[color=animaColor4]
+({1.25+(\i+1)*(4/((\numero)+2))},0)--
+({1.25+(\i+2)*(4/((\numero)+2))},0)--
+({1.25+(\i+2)*(4/((\numero)+2))},{2*sin(.6*(1+(\i+2)
+*(4/((\numero)+2))) r)})--
+({1.25+(\i+1)*(4/((\numero)+2))},{2*sin(.6*(1+(\i+2)
+*(4/((\numero)+2))) r)})--
+cycle;
+\draw[-latex] (-.5,0)--(6,0)node[anchor=north]{$x$};
+\draw[-latex] (0,-.5)--(0,3)node[anchor=east]{$f(x)$};
+\draw[color=animaColor3,domain=0:{5.7}] plot (\x,{2*sin(.57*\x r)});
+\draw[color=animaColor1,domain=0:{5.7*\um}] plot (\x,{2*sin(.57*\x r)});
+}
+\end{scope}
+}
+%%
+%% Copyright (C) 2009 by Adriano Gomes de Santana <adriano_gsgs at hotmail.com>
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License (LPPL), either
+%% version 1.3c of this license or (at your option) any later
+%% version. The latest version of this license is in the file:
+%%
+%% http://www.latex-project.org/lppl.txt
+%%
+%% This work is "maintained" (as per LPPL maintenance status) by
+%% Adriano Gomes de Santana.
+%%
+%% This work consists of the file anima.dtx
+%% and the derived files anima.ins,
+%% anima.pdf and
+%% anima.cls.
+%%
+%%
+%% End of file `anima.cls'.
Property changes on: trunk/Master/texmf-dist/tex/latex/anima/anima.cls
___________________________________________________________________
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 2024-11-19 20:33:29 UTC (rev 72894)
+++ trunk/Master/tlpkg/bin/tlpkg-ctan-check 2024-11-19 20:34:14 UTC (rev 72895)
@@ -42,7 +42,7 @@
amsaddr amscdx amscls amscls-doc amsfonts amslatex-primer
amsldoc-it amsldoc-vn
amsmath amsmath-it amsrefs amstex amsthdoc-it
- andika annee-scolaire animate annotate annotate-equations
+ andika annee-scolaire anima animate annotate annotate-equations
anonchap anonymous-acm anonymouspro answers
antanilipsum antique-spanish-units antiqua antomega antt anufinalexam
anyfontsize anysize
Added: trunk/Master/tlpkg/tlpsrc/anima.tlpsrc
===================================================================
Modified: trunk/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc
===================================================================
--- trunk/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc 2024-11-19 20:33:29 UTC (rev 72894)
+++ trunk/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc 2024-11-19 20:34:14 UTC (rev 72895)
@@ -37,6 +37,7 @@
depend altfont
depend altsubsup
depend amsaddr
+depend anima
depend animate
depend anonchap
depend answers
More information about the tex-live-commits
mailing list.