
Quiero incluir una secuencia de imágenes en Beamer (aunque puede ser en otro tipo de documento). Algo similar a la opción.Album de fotosen LibreOffice y MS PowerPoint.
Lo que hice fue hacer una plantilla (que puedo modificar):
%s
\begin{frame}
\frametitle{%s}
\framesubtitle{%s}
\centering
\includegraphics[width=0.9\textwidth]{%s}
\end{frame}
Y luego uso un script de Python para generar el código para cada fotograma, así:
tex_file = open(filename + '.tex', 'a+')
for name in list_files:
print >> tex_file, s1 %(comment, title, subtitle, name)
tex_file.close()
Después de eso, simplemente uso un \include
en mi archivo principal para agregar la secuencia de imágenes.
Mi pregunta:¿Existe un paquete para esta tarea? o una mejor manera de hacerlo?
Respuesta1
Aquí hay una opción usandomultido
:
\documentclass{beamer}
\usepackage{multido}
\begin{document}
\multido{\i=1+1}{9}{%
\begin{frame}
\frametitle{Title: \i}
\framesubtitle{Subtitle: \i}
\centering
\includegraphics[width=.9\linewidth]{example-image-\i}
\end{frame}
}
\end{document}
La sintaxis es \multido{<var>=<start>+<inc>}{<times}{<stuff>}
la que define <var>
ser <start>
, incrementado <inc>
un total de <times>-1
veces (ya que el primer valor cuenta como una iteración), y con cada iteración se ejecuta <stuff>
. La \i
notación especial significa que <var>
será un i
número entero.
El ejemplo anterior supone cambios mínimos de un elemento al siguiente. Si, por ejemplo, tiene contenido variado para el título del marco, el subtítulo y cualquier comentario adicional por foto, entonces sería mucho mejor utilizar un enfoque similar a una lista. Por lo tanto, cualquiera de las técnicas mencionadas en¿Cómo iterar sobre una lista separada por comas?sería de ayuda.
Respuesta2
Tengo un archivo tex que escribí para producir una visualización de fotografías que hace algo como esto. Para mí, el objetivo es organizar una colección cambiante de fotografías en una cuadrícula que cubra la página. Utilizo tikz
tanto para recorrer las fotos, que se almacenan como una lista de nombres de archivos de imágenes separados por comas, como para colocar las fotos.
Mientras habla de generar la lista de nombres de archivos a través de Python, puede completar fácilmente una lista de variables como la que se usa a continuación.
Aquí hay una versión reducida:
\documentclass{article}
\usepackage{mwe}
\usepackage{graphicx}
\usepackage{tikz}
\def\MyImages{example-image-a,example-image-b,example-image-c}% list of images
\begin{document}
\newdimen\X
\begin{tikzpicture}[overlay,
picture/.style={draw,rectangle,anchor=#1,inner sep=0pt,outer sep=0pt}
]
\X=0mm
\foreach \Image in \MyImages {
\node[picture=north west] at (\X,-101.5mm)
{\includegraphics[width=49.5mm,height=35mm]{\Image}};
\global\advance\X by 49.5mm
}
\end{tikzpicture}
\end{document}
Esto produce:
Respuesta3
Esto es posible usando el \multiinclude
comando del paquete del proyector xmpmulti
.
Suponiendo que las imágenes se llamen fig-0.png
, fig-1.png
etc., la macro se puede usar así:
\documentclass{beamer}
\usepackage{xmpmulti}
\begin{document}
\begin{frame}
\multiinclude[<+->][format=png, graphics={width=\textwidth}]{fig}
\end{frame}
\end{document}