Incluir automaticamente uma sequência de imagens

Incluir automaticamente uma sequência de imagens

Quero incluir uma sequência de imagens no Beamer (embora possa ser em outro tipo de documento). Algo semelhante à opçãoÁlbum de fotono LibreOffice e no MS PowerPoint.

O que fiz foi criar um modelo (que posso modificar):

%s
\begin{frame}
    \frametitle{%s}
    \framesubtitle{%s}
    \centering
    \includegraphics[width=0.9\textwidth]{%s} 
\end{frame}

E então eu uso um script Python para gerar o código para cada quadro, assim:

tex_file = open(filename + '.tex', 'a+')
for name in list_files:
    print >> tex_file, s1 %(comment, title, subtitle, name)

tex_file.close()

Depois disso, basta usar um \includeno meu arquivo principal para adicionar a sequência de imagens.

Minha pergunta:Existe um pacote para esta tarefa? ou uma maneira melhor de fazer isso?

Responder1

Aqui está uma opção usandomultido:

insira a descrição da imagem aqui

\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}

A sintaxe é \multido{<var>=<start>+<inc>}{<times}{<stuff>}a que define <var>ser <start>, incrementada em <inc>um total de <times>-1vezes (já que o primeiro valor conta como uma iteração), e a cada iteração ele executa <stuff>. A \inotação especial significa que <var>será um inúmero inteiro.

O exemplo acima pressupõe alterações mínimas de um elemento para o outro. Se, por exemplo, você tiver conteúdo variado para o título do quadro, subtítulo e quaisquer comentários adicionais por foto, usar uma abordagem semelhante a uma lista seria muito melhor. Pois então, qualquer uma das técnicas mencionadas emComo iterar em uma lista separada por vírgula?seria útil.

Responder2

Eu tenho um arquivo tex que escrevi para produzir uma exibição de fotos que faz algo assim. Para mim, o objetivo é organizar uma coleção variável de fotos em uma grade que cobre a página. Eu uso tikztanto para fazer um loop nas fotos, que são armazenadas como uma lista separada por vírgulas de nomes de arquivos de imagens, quanto para colocar as fotos.

Como você está falando sobre como gerar a lista de nomes de arquivos via python, você pode facilmente preencher uma lista de variáveis ​​como a usada abaixo.

Aqui está uma versão reduzida:

\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}

Isso produz:

insira a descrição da imagem aqui

Responder3

insira a descrição da imagem aqui

Isso é possível usando o \multiincludecomando do xmpmultipacote do beamer.

Supondo que as imagens sejam chamadas fig-0.pngetc. fig-1.pnga macro pode ser usada assim:

\documentclass{beamer} 
\usepackage{xmpmulti} 

\begin{document}
\begin{frame}
\multiinclude[<+->][format=png, graphics={width=\textwidth}]{fig}
\end{frame} 
\end{document}

informação relacionada