
\secimage
Als Bild habe ich auf meiner Abschnittstitelseite definiert :
\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}
}
Und für jeden Abschnitt definiere ich das Bild mit neu \renewcommand{\secimage}{figureofchoice}
. Aber in einem der Abschnitte möchte ich auch die Breite/Höhe neu definieren. Ich habe es \renewcommand{\secimage}[heigth=4cm]{image}
so versucht, wie die Dokumentation des renewcommand die Optionen definiert, aber ich habe einen Kompilierungsfehler.
Wenn mir jemand sagen könnte, was ich falsch mache
Antwort1
Der folgende Code schlägt eine Änderung Ihrer Notation vor. Anstelle von \renewcommand{\secimage}{<image>}
verwenden Sie , \setsecimage{[<options>]{<image>}}
wobei es Ihnen ermöglicht, zusätzliche Optionen anzugeben.
\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
}
mit einer typischen Verwendung ähnlich
\setsecimage{[width=50pt]{example-image}}
\section{A section}
\section{Another section}
\setsecimage{{example-image}}
\section{Final section}
Wenn Ihr \setsecimage
keine enthält <options>
(für den letzten Abschnitt im obigen Code), müssen Sie das <image>
Argument trotzdem in eine „doppelte Klammer“ setzen, wie in \setsecimage{{<image>}}
.
Antwort2
Definieren Sie einen \setsecimage
Befehl mit derselben Syntax wie \includegraphics
. Der Trick besteht darin, dass dadurch ein anderes Makro neu definiert wird.
\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}