[Tex/LaTex] Beamer template with different style options for frame Sidebars

beameroptional arguments

After looking at this post I'm sure something similar–having a different template style applied to particular frames–could be done with sidebars rather than with headers. As such I adapted the code, but unfortunately without success.

Here is what I came up with:

\documentclass[14pt]{beamer}
\usetheme{Frankfurt}
\usepackage{etoolbox}

\defbeamertemplate{sidebar left}{MyDefault}{%
    \setbeamersize{sidebar width left=0}
}

\defbeamertemplate{sidebar left}{Alternative}{%
    \setbeamersize{sidebar width left=1.75cm}
    \setbeamercolor{sidebar left}{bg=black, fg=green}
    \setbeamertemplate{sidebar left}{%
        \vspace*{\headheight}
        \vfill
        This
        \vfill
        Text
        \vfill
        Should
        \vfill
        Show
        \vfill
        In The
        \vfill
        Sidebar
        \vfill
    }
}



\BeforeBeginEnvironment{frame}{%
    \setbeamertemplate{sidebar left}[MyDefault]%
}

\makeatletter
\define@key{beamerframe}{Alternative}[true]{%
    \setbeamertemplate{sidebar left}[Alternative]%
}
\makeatother

\begin{document}
\begin{frame}
  Normal
\end{frame}
\begin{frame}[Alternative]
  Alternative
\end{frame}
\begin{frame}
  Normal
\end{frame}
\end{document}

The desire here being that the sidebar would only show up for frames marked with [Alternative] following the command to start the frame, and otherwise would not exist.

Thanks in advance.

Best Answer

Remaining Problem: Even if the side bar is empty on the normal slides, it still takes the space. Removing sidebar from a single beamer frame or Remove sidebar in Beamer might help.

\documentclass[14pt]{beamer}
\usetheme{Frankfurt}
\usepackage{etoolbox}

\setbeamersize{sidebar width left=1.75cm}

\defbeamertemplate{sidebar left}{Alternative}{%
        \vspace*{\headheight}
        This
        \vfill
        Text
        \vfill
        Should
        \vfill
        Show
        \vfill
        In The
        \vfill
        Sidebar
        \vfill
}

\BeforeBeginEnvironment{frame}{%
    \setbeamercolor{sidebar left}{bg=white, fg=green}
    \setbeamertemplate{sidebar left}{}%
}

\makeatletter
\define@key{beamerframe}{Alternative}[true]{%
    \setbeamercolor{sidebar left}{bg=black, fg=green}
    \setbeamertemplate{sidebar left}[Alternative]%
}
\makeatother

\begin{document}
    \begin{frame}
        Normal
    \end{frame}

    \begin{frame}[Alternative]
        Alternative
    \end{frame}

    \begin{frame}
        Normal
    \end{frame}

\end{document}

enter image description here