我已将其定义\secimage
为我的部分标题页上的图像:
\AtBeginSection[]{
\begin{frame}
\vfill
\begin{center}
%\centering
\includegraphics[width=4cm]{\secimage}\\
\begin{beamercolorbox}[sep=8pt,center,shadow=true,rounded=true]{title}
\usebeamerfont{title}\insertsectionhead\par%
\end{beamercolorbox}
\end{center}
\vfill
\end{frame}
}
对于每个部分,我使用 重新定义图像\renewcommand{\secimage}{figureofchoice}
。但在其中一个部分中,我还想重新定义宽度/高度。我尝试\renewcommand{\secimage}[heigth=4cm]{image}
按照 renewcommand 的文档定义选项,但出现编译错误。
如果有人能告诉我我做错了什么
答案1
以下代码建议更改您的符号。\renewcommand{\secimage}{<image>}
使用 而不是 ,\setsecimage{[<options>]{<image>}}
它允许您指定其他选项。
\newcommand{\setsecimage}[1]{\gdef\secimagedetail{#1}}% Store section image detail
\let\secimagedetail\relax% Default definition of section image detail
\AtBeginSection{
\begin{frame}
\vfill
\begin{center}
\ifx\secimagedetail\relax\else % If section image exists
\expandafter\includegraphics\secimagedetail \\
\fi
\begin{beamercolorbox}[sep=8pt,center,shadow=true,rounded=true]{title}
\usebeamerfont{title}\insertsectionhead\par%
\end{beamercolorbox}
\end{center}
\vfill
\end{frame}
\let\secimagedetail\relax% Remove section image detail
}
典型用法类似于
\setsecimage{[width=50pt]{example-image}}
\section{A section}
\section{Another section}
\setsecimage{{example-image}}
\section{Final section}
如果您的参数\setsecimage
中没有包含任何内容<options>
(对于上述代码的最后一部分),您仍然必须“双括号”该<image>
参数,如\setsecimage{{<image>}}
。
答案2
定义一个\setsecimage
与 语法相同的命令\includegraphics
。诀窍在于它重新定义了另一个宏。
\documentclass{beamer}
\AtBeginSection[]{
\begin{frame}
\vfill
\begin{center}
%\centering
\addsecimage\\
\begin{beamercolorbox}[sep=8pt,center,shadow=true,rounded=true]{title}
\usebeamerfont{title}\insertsectionhead\par%
\end{beamercolorbox}
\end{center}
\vfill
\end{frame}
}
\newcommand{\setsecimage}[2][width=4cm]{%
\renewcommand{\addsecimage}{\includegraphics[#1]{#2}}%
}
\newcommand{\addsecimage}{} % initialize
\begin{document}
\setsecimage{example-image}
\section{Normal}
\setsecimage[width=2cm]{example-image-a}
\section{Small}
\end{document}