我尝试在 Beamer 中制作多张幻灯片,每张幻灯片包含 3 个图形和标题。我想循环遍历图形列表/数组并设置框架标题。图形文件的名称和框架的名称应该不同。
以下是尝试:
\def\fnames{red, green, blue}
\foreach \name in \fnames {%
\begin{frame}{\name}
\begin{columns}
\column{0.33\textwidth}
\includegraphics[width=4.cm]{./plots/tot\name _log.eps}
\column{0.33\textwidth}
\includegraphics[width=4.cm]{./plots/tot\name _log.eps}
\column{0.33\textwidth}
\includegraphics[width=4.cm]{./plots/tot\name _log.eps}
\end{columns}
\end{frame}%
}
问题是:是否可以从单独的列表或数组中设置框架的标题。因此,除了 fnames,我还想从以下位置获取它:
\def\tnames{white, gray, black}
答案1
您可以定义一个 PGF 数组并通过 访问它\pgfmathparse
,数组索引从 0 开始。a,b,c
为了方便起见,我使用了 。
编辑:添加了一般内容循环但在冗长程度上仍然不够经济。
\documentclass{beamer}
\usepackage{tikz,etoolbox}
\usepackage{mwe} %<- for dummy images
\begin{document}
\def\fnames{a,b,c}
\def\tnames{{"white","gray","black"}}
\foreach \x[count=\xcount from 0] in \fnames {%
\def\myframecontents{}
\foreach\y in{1,2,3}{
\gappto\myframecontents{%
\column{0.33\textwidth}%
\includegraphics[width=4.cm]{example-image-\x}%
}
}
\pgfmathparse{\tnames[\xcount]}
\begin{frame}{\pgfmathresult}
\begin{columns}
\myframecontents
\end{columns}
\end{frame}%
}
\end{document}