
Я хочу включить последовательность изображений в Beamer (хотя это может быть и в другом типе документа). Что-то похожее на опциюФотоальбомв LibreOffice и MS PowerPoint.
Я сделал шаблон (который я могу изменять):
%s
\begin{frame}
\frametitle{%s}
\framesubtitle{%s}
\centering
\includegraphics[width=0.9\textwidth]{%s}
\end{frame}
Затем я использую скрипт Python для генерации кода для каждого кадра, например:
tex_file = open(filename + '.tex', 'a+')
for name in list_files:
print >> tex_file, s1 %(comment, title, subtitle, name)
tex_file.close()
После этого я просто использую его \include
в своем основном файле, чтобы добавить последовательность изображений.
Мой вопрос:Есть ли пакет для этой задачи? Или лучший способ ее выполнить?
решение1
Вот вариант использованияmultido
:
\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}
Синтаксис следующий: \multido{<var>=<start>+<inc>}{<times}{<stuff>}
который определяет , <var>
что будет <start>
, увеличивается на <inc>
общее количество <times>-1
раз (так как первое значение считается итерацией), и с каждой итерацией выполняется <stuff>
. Специальная \i
нотация означает, что это <var>
будет i
целое число.
В приведенном выше примере предполагается минимальное изменение одного элемента от другого. Если, например, у вас есть изменяемый контент для заголовка кадра, подзаголовка и любых дополнительных комментариев на основе каждой фотографии, то использование подхода типа списка будет намного лучше. Для этого любой из методов, упомянутых вКак выполнить итерацию по списку, разделенному запятыми?было бы полезно.
решение2
У меня есть tex-файл, который я написал для создания отображения фотографий, который делает что-то вроде этого. Для меня цель — организовать изменяющуюся коллекцию фотографий на сетке, покрывающей страницу. Я использую tikz
и цикл по фотографиям, которые хранятся в виде списка имен файлов изображений, разделенных запятыми, и размещение фотографий.
Поскольку вы говорите о создании списка имен файлов с помощью Python, вы можете легко заполнить список переменных, подобный тому, который используется ниже.
Вот урезанная версия:
\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}
Это производит:
решение3
Это возможно с помощью \multiinclude
команды из пакета beamer xmpmulti
.
Предположим, что изображения называются fig-0.png
и fig-1.png
т. д., макрос можно использовать следующим образом:
\documentclass{beamer}
\usepackage{xmpmulti}
\begin{document}
\begin{frame}
\multiinclude[<+->][format=png, graphics={width=\textwidth}]{fig}
\end{frame}
\end{document}