domingo, 24 de julio de 2005
Por hell_hot a las 15:00 | LaTeX
En el segundo artículo se avanzaba el contenido de este texto, por lo que, sin más dilación, abordemos el final de la presentación. Como bien comentamos hace una semana, Euclides también pretende mostrar poco a poco el contenido del algoritmo de Eratóstenes para la búsqueda de números primos. Aquí nos encontramos con una dificultad que impide emplear el método seguido hasta el momento. Si tecleamos el comando \pause dentro del entorno verbatim, directamente obtendremos por pantalla dicha sentencia, en vez de “pausar” la presentación, tal y como deseamos.
Existen múltiples soluciones, más o menos complicadas, a este problema. Euclides opta por escoger un entorno que Beamer posee para resolver estos casos, a saber, el entorno “semiverbatim”. Como ya hicimos en el segundo artículo, mostremos un ejemplo para visualizar mejor su utilidad:
\begin{frame}[fragile]
\frametitle{Un algoritmo para buscar números primos}
\begin{semiverbatim}
\uncover<1->{\alert<0>{int main (void)}}
\uncover<1->{\alert<0>{\{}}
\uncover<1->{\alert<1>{ \alert<4>{std::}vector is_prime(100,true)}}
\uncover<1->{\alert<1>{ for (int i = 2; i < 100; i++)}}
\uncover<2->{\alert<2>{ if (is_prime[i]))}}
\uncover<2->{\alert<0>{ \{}}
\uncover<3->{\alert<3>{ \alert<4>{std::}cout << i << " ";}}
\uncover<3->{\alert<3>{ for (int j = 1; j < 100;}}
\uncover<3->{\alert<3>{ is_prime [j] = false, j+=i);}}
\uncover<2->{\alert<0>{ \}}}
\uncover<1->{\alert<0>{ return 0;}}
\uncover<1->{\alert<0>{\}}}
\end{semiverbatim}
\visible<4->{N\'otese el uso de \alert{\texttt{std::}}.}
\end{frame}
Aunque a primera vista parezca ininteligible el nuevo frame, si le prestamos dos minutos de nuestro tiempo nos daremos cuenta de la sencillez que encierra. El comando \uncover y el uso de “overlays”, no es nuevo para nosotros. Quizá echar un vistazo al output de la presentación nos ayude a entender mejor el código fuente que la genera. En la primera transparencia que se genera a partir de este frame (y en las restantes, ya que en la especificación del “overlay” introducimos después del número un signo –) aparece el principio y el final del código, mientras que el restante se va desvelando en las dos siguientes transparencias.
Euclides introduce también “overlays” en el comando \alert a su antojo, destacando en cada transparencia el texto que estima conveniente. Finalmente, como novedad en este frame, aparece el comando \visible, que es muy similar al comando \uncover, pero con una pequeña diferencia que depende del estilo que introduzcamos en nuestra presentación. Como a las mejoras visuales está dedicado el siguiente (y último) artículo de esta serie, aplazaremos la explicación hasta entonces.
La presentación empieza a convencer enormemente a Euclides, y nuestro amigo ya cree que pocas modificaciones serán necesarias. Sin embargo, le haría ilusión que al comenzar una nueva subsección, apareciese una transparencia que mostrará el índice de contenidos, destacando especialmente dicha subsección. Aunque a primera vista parece harto costoso realizar dicha empresa, tal tarea se soluciona introduciendo en el preámbulo el siguiente código:
\AtBeginSubsection[]{
\begin{frame}
\frametitle{Esquema}
\tableofcontents[currentsection,currentsubsection]
\end{frame}
}
La lectura del código ya es de por si bastante explicativa. Quizá merezca un comentario la sentencia que acompaña la declaración del frame y que, en nuestro caso, posee escasa utilidad, ya que su cometido es mostrar dicho frame solamente cuando estemos operando bajo la clase beamer.
Finalmente, Euclides decide introducir referencias en su ponencia, para quien desee ampliar información sobre alguna cuestión en concreto de su presentación. Así pues, escribe el siguiente frame:
%
\section*{Referencias}
\begin{frame}
\frametitle{Referencias}
\begin{thebibliography}{10}
\bibitem{Goldback1742}[Goldback, 1742]
Christian Goldback.
\newblock \emph{Carta a Leonhard Euler}, 1742
\end{thebibliography}
\end{frame}
El asterisco detrás del comando \section se introduce para que dicha sección no aparezca en el índice de contenidos. El resto del código es muy similar al usado en LaTeX para introducir bibliografía, por lo omitiremos los comentarios. Se ha introducido la referencia a Goldback ya que la cuestión abierta que aparecía en la última transparencia fue suscitada por él en una carta a Euler. Así pues, para enlazar ambas transparencias, reescribimos la mencionada transparencia, de manera que quede:
\begin{frame}
\frametitle{¿Qué debemos hacer?}
\begin{block}{Cuestiones resueltas}
¿Existe un número primo máximo? \alert{No}
\end{block}\vspace{1cm}
\begin{block}{Cuestiones abiertas}
¿Todo número impar es suma de dos primos?
\cite{Goldback1742}
\end{block}
\end{frame}
Euclides considera que el contenido ya cumple los exigentes requisitos que él mismo se había impuesto. Resta únicamente modificar el aspecto visual de la presentación, tema al que dedicaremos el último artículo de esta colección.
Comentarios
- Fecha: domingo, 24 de julio de 2005
- Hora: 16:09
- Autor: hell_hot
Acabo de subir el código fuente correspondiente a la tercera entrega. Está en la categoría de ficheros, en el único artículo que hay publicado dentro.