3

I'm using beamer with Copenhagen theme. I want to use a logo in the right-most corner of all slides. I achieved this using textblock and addtobeamertemplate facilities.

My question is, when I add more sections to my presentation, the banner height increases. When the banner heights increases, I want my logo gets bigger too. So, I need to know the height (see added image) programmatically.

Is that possible?

First slide

2

Here is a possible solution for this particular case. It completely redefines the headline to achieve the wanted effect. The headline is taken from the split outer theme. Note that subsections are not included, as your image shows, although they can be added with little effort.

Redefined header (to be inserted in the preamble):

\makeatletter
\setbeamertemplate{headline}
{%
  \leavevmode%
  \@tempdimb=2.4375ex%
  \multiply\@tempdimb by\beamer@sectionmax%
  \ifdim\@tempdimb>0pt%
    \advance\@tempdimb by 1.125ex%
    \begin{beamercolorbox}[wd=.5\paperwidth,ht=\@tempdimb]{section in head/foot}%
      \vbox to\@tempdimb{\vfil\insertsectionnavigation{.5\paperwidth}\vfil}%
    \end{beamercolorbox}%
    \begin{beamercolorbox}[wd=.5\paperwidth,ht=\@tempdimb]{subsection in head/foot}%
      \vbox to\@tempdimb{\vfil\hfill \includegraphics[height=0.8\@tempdimb]{logo.jpeg} \hspace{1mm}~\vfil}%
    \end{beamercolorbox}%
  \fi%
}
\makeatother

The height of the header is calculated from the total number of sections and stored in \@tempdimb. This height is used throughout the definition of the headline. In the code above the logo is included taking 80% of the height of the headline, so it will be automatically resized according to the total number of sections.

Example renderings

  • Two sections: image

  • Five sections: image5

1

You can simply access the height via \headheight, so to scale your logo:

\includegraphics[height=\headheight]{example-image} 

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.