[Tex/LaTex] How to edit Beamer theme CambridgeUS

beamerheader-footerhyperrefthemes

I have been using the beamer document class with the theme- cambridgeUS in lyx. The following code is the preamble. Now, I want to insert a hyperlink to a pdf file in all the pages by adding them in the header or the footer. The footer at present has the author, title and page number. How do I add the fourth? Or how can it be done with the header?

%\usecolortheme[named=Brown]{structure}
\usetheme{CambridgeUS}
%\usecolortheme{seahorse}
\setbeamertemplate{blocks}[rounded][shadow=true]
\setbeamertemplate{items}[ball]
%\setbeamertemplate{navigation symbols}{}
\setbeamercolor{title}{bg=red!65!black, fg=white}
\usepackage{hyperref}
%% Macro for inserting Page number in Warsaw theme
%\newcommand*\oldmacro{}%
%\let\oldmacro\insertshorttitle%
%\renewcommand*\insertshorttitle{%
%  \oldmacro\hfill%
%  \insertframenumber\,/\,\inserttotalframenumber}

\usepackage{ragged2e}\title{TE TM Hybrid Modes}
\author[Dr. James]{Dr. James}
\institute[IIT Madras]{ \\Department of Electrical Engineering\\Indian Institute of Technology Madras}
\pgfdeclareimage[height=1cm]{iitmlogo}{/home/melvinp/Dropbox/NPTEL/Lecture2/IITMLogo.pdf}
\logo{\pgfuseimage{iitmlogo}}

\date{}

\AtBeginDocument{\setlength{\abovedisplayskip}{0pt}}
\addtobeamertemplate{block begin}{\setlength{\abovedisplayskip}{0pt}}

%\AtBeginSubsection[]
%{
%  \begin{frame}<beamer>
 %   \frametitle{Layout}
  %  \tableofcontents[currentsection,currentsubsection]
 % \end{frame}
%}
%\justifying{

Thank You

Best Answer

The CambridgeUS theme uses the outer theme infolines. You can download the original file from CTAN and use it as a basis to make your own outer theme with an external link.

In this example the footer contains a fourth field with a link to the beamer user guide:

\mode<presentation>

\setbeamercolor*{author in head/foot}{parent=palette tertiary}
\setbeamercolor*{title in head/foot}{parent=palette secondary}
\setbeamercolor*{date in head/foot}{parent=palette primary}

\setbeamercolor*{section in head/foot}{parent=palette tertiary}
\setbeamercolor*{subsection in head/foot}{parent=palette primary}
% colors for the external link field
\setbeamercolor*{external link}{parent=palette secondary}

\defbeamertemplate*{footline}{withlink theme}
{
  \leavevmode%
  \hbox{%
  \begin{beamercolorbox}[wd=.25\paperwidth,ht=2.25ex,dp=1ex,center]{author in head/foot}%
    \usebeamerfont{author in head/foot}\insertshortauthor\expandafter\beamer@ifempty\expandafter{\beamer@shortinstitute}{}{~~(\insertshortinstitute)}
  \end{beamercolorbox}%
  \begin{beamercolorbox}[wd=.25\paperwidth,ht=2.25ex,dp=1ex,center]{title in head/foot}%
    \usebeamerfont{title in head/foot}\insertshorttitle
  \end{beamercolorbox}%
  \begin{beamercolorbox}[wd=.25\paperwidth,ht=2.25ex,dp=1ex,center]{date in head/foot}%
    \usebeamerfont{date in head/foot}\insertshortdate{}\hspace*{2em}
    \insertframenumber{} / \inserttotalframenumber 
  \end{beamercolorbox}%
  % this is a new field with an external link
  \begin{beamercolorbox}[wd=.25\paperwidth,ht=2.25ex,dp=1ex,right]{external link}%
    \usebeamerfont{author in head/foot}\href{http://mirror.ctan.org/macros/latex/contrib/beamer/doc/beameruserguide.pdf}{Link to manual}\hspace*{2ex}
  \end{beamercolorbox}}%
  \vskip0pt%
}

\defbeamertemplate*{headline}{withlink theme}
{
  \leavevmode%
  \hbox{%
  \begin{beamercolorbox}[wd=.5\paperwidth,ht=2.25ex,dp=1ex,right]{section in head/foot}%
    \usebeamerfont{section in head/foot}\insertsectionhead\hspace*{2ex}
  \end{beamercolorbox}%
  \begin{beamercolorbox}[wd=.5\paperwidth,ht=2.25ex,dp=1ex,left]{subsection in head/foot}%
    \usebeamerfont{subsection in head/foot}\hspace*{2ex}\insertsubsectionhead
  \end{beamercolorbox}}%
  \vskip0pt%
}

\setbeamersize{text margin left=1em,text margin right=1em}

\mode
<all>

Save this as beamerouterthemewithlink.sty and put it in your project folder or the local tex-mf tree. Then you can use it by adding this line in your tex file:

\useoutertheme{withlink}

beamerthemewithlink

Similarly, you could also modify the header by adding another beamercolorbox. Just make sure that the total width of all beamercolorboxes is equal to \textwidth.