使用 renewcommand 重新定义图像高度

使用 renewcommand 重新定义图像高度

我已将其定义\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}

在此处输入图片描述

相关内容