von bloodworks » Di 27. Sep 2011, 12:26
Hi das was jetzt kommt is n übler Hack, mir fällt aber momentan nichts besseres ein.
Ich musste n paar Umdefinierungen im outer theme vornehmen.
\documentclass{beamer}
\usepackage{filecontents}
\begin{filecontents}{beamerouterthemesmoothmod.sty}
% Mod same License as Org, no Support
%\ProvidesPackageRCS $Header: /home/vedranm/bitbucket/beamer/base/themes/outer/beamerouterthemesmoothbars.sty,v d02a7cf4d8ae 2010/06/17 09:11:41 rivanvx $ % Stimmt natürlich nicht -> da HAck
\newif\ifbeamer@sb@subsection
\DeclareOptionBeamer{subsection}[true]{\csname beamer@sb@subsection#1\endcsname}
\ExecuteOptionsBeamer{subsection=true}
\ProcessOptionsBeamer
\def\stopse{0} % Ok ich definiere irgendwie nen SChalter
\newcommand{\stopsections}{\def\stopse{1}} % das ist die Anwenderschwelle
\mode<presentation>
\setbeamercolor{frametitle}{parent=palette primary}
\setbeamercolor{subsection in head/foot}{parent=palette secondary}
\setbeamercolor{section in head/foot}{parent=palette quaternary}
\beamer@compresstrue
\AtBeginDocument{
{
\usebeamerfont*{headline}
\colorlet{global.bg}{bg}
\usebeamercolor{subsection in head/foot}
\usebeamercolor{section in head/foot}
\usebeamercolor{frametitle}
\ifbeamer@sb@subsection
\pgfdeclareverticalshading{beamer@barshade}{\the\paperwidth}{%
color(0ex)=(global.bg);%
color(1ex)=(subsection in head/foot.bg);%
color(3.25ex)=(subsection in head/foot.bg);%
color(4.25ex)=(section in head/foot.bg);%
color(9.75ex)=(section in head/foot.bg)%
}
\pgfdeclareverticalshading{beamer@aboveframetitle}{\the\paperwidth}{%
color(0ex)=(frametitle.bg);%
color(1ex)=(frametitle.bg);%
color(2ex)=(subsection in head/foot.bg)
}
\else
\pgfdeclareverticalshading{beamer@barshade}{\the\paperwidth}{%
color(0ex)=(global.bg);%
color(1ex)=(section in head/foot.bg);%
color(7ex)=(section in head/foot.bg)%
}
\pgfdeclareverticalshading{beamer@aboveframetitle}{\the\paperwidth}{%
color(0ex)=(frametitle.bg);%
color(1ex)=(frametitle.bg);%
color(2ex)=(section in head/foot.bg)
}
\fi
\pgfdeclareverticalshading{beamer@belowframetitle}{\the\paperwidth}{%
color(0ex)=(global.bg);%
color(1ex)=(frametitle.bg)
}
}
}
% Head
\defbeamertemplate*{headline}{smoothbars theme}
{%
\pgfuseshading{beamer@barshade}%
\ifbeamer@sb@subsection%
\vskip-9.75ex%
\else%
\vskip-7ex%
\fi%
\ifnum\stopse=0
\begin{beamercolorbox}[ignorebg,ht=2.25ex,dp=3.75ex]{section in head/foot}
\insertnavigation{\paperwidth}
\end{beamercolorbox}%
\else
\begin{beamercolorbox}[ignorebg,ht=2.25ex,dp=3.75ex]{section in head/foot}
\hfill \insertsubsubsection \hfill \vspace{0pt}
\end{beamercolorbox}%
\fi
}%
\defbeamertemplate*{frametitle}{smoothbars theme}
{%
\nointerlineskip%
\usebeamerfont{headline}%
\begin{beamercolorbox}[wd=\paperwidth,ht=1.5ex,dp=0ex,vmode]{empty}
\pgfuseshading{beamer@aboveframetitle}%
\end{beamercolorbox}%
\vskip-.5ex%
\nointerlineskip%
\begin{beamercolorbox}[wd=\paperwidth,leftskip=.3cm,rightskip=.3cm plus1fil,vmode]{frametitle}
\usebeamerfont*{frametitle}\insertframetitle%
\ifx\insertframesubtitle\@empty%
\strut\par%
\else
\par{\usebeamerfont*{framesubtitle}{\usebeamercolor[fg]{framesubtitle}\insertframesubtitle}\strut\par}%
\fi%%
\usebeamerfont{headline}%
\vskip.5ex
\end{beamercolorbox}%
\nointerlineskip
\begin{beamercolorbox}[wd=\paperwidth,ht=.5ex,dp=0ex]{empty}
\pgfuseshading{beamer@belowframetitle}%
\end{beamercolorbox}%
}
\mode
<all>
\end{filecontents}
\usepackage[latin1]{inputenc}
\useoutertheme[subsection=false]{smoothmod}
\useinnertheme[shadow=true]{rounded}
\usecolortheme{orchid}
\usecolortheme{whale}
\setbeamerfont{block title}{size={}}
%%%%%%%%%%%%%%%%%
% Ende eigener Frametitle
%%%%%%%%%%%%%%%%%
\begin{document}
\frame{\tableofcontents}
\section{BKA}
\begin{frame}{eins}
\framesubtitle{Unterlage1}
\end{frame}
\section{test}
\begin{frame}{zwei}
\framesubtitle{Unterlage2}
\end{frame}
\stopsections% damit schaltet man auf die "andere Sctionierung" um
\subsubsection*{Nicht drinn} % Ok das ist ja schließlich n Hack Du musst also subsubsection verwenden.
\frame{test}
\subsubsection*{auch net dirnn}
\frame{}
\end{document}
Hi das was jetzt kommt is n übler Hack, mir fällt aber momentan nichts besseres ein.
Ich musste n paar Umdefinierungen im outer theme vornehmen.
[code]
\documentclass{beamer}
\usepackage{filecontents}
\begin{filecontents}{beamerouterthemesmoothmod.sty}
% Mod same License as Org, no Support
%\ProvidesPackageRCS $Header: /home/vedranm/bitbucket/beamer/base/themes/outer/beamerouterthemesmoothbars.sty,v d02a7cf4d8ae 2010/06/17 09:11:41 rivanvx $ % Stimmt natürlich nicht -> da HAck
\newif\ifbeamer@sb@subsection
\DeclareOptionBeamer{subsection}[true]{\csname beamer@sb@subsection#1\endcsname}
\ExecuteOptionsBeamer{subsection=true}
\ProcessOptionsBeamer
\def\stopse{0} % Ok ich definiere irgendwie nen SChalter
\newcommand{\stopsections}{\def\stopse{1}} % das ist die Anwenderschwelle
\mode<presentation>
\setbeamercolor{frametitle}{parent=palette primary}
\setbeamercolor{subsection in head/foot}{parent=palette secondary}
\setbeamercolor{section in head/foot}{parent=palette quaternary}
\beamer@compresstrue
\AtBeginDocument{
{
\usebeamerfont*{headline}
\colorlet{global.bg}{bg}
\usebeamercolor{subsection in head/foot}
\usebeamercolor{section in head/foot}
\usebeamercolor{frametitle}
\ifbeamer@sb@subsection
\pgfdeclareverticalshading{beamer@barshade}{\the\paperwidth}{%
color(0ex)=(global.bg);%
color(1ex)=(subsection in head/foot.bg);%
color(3.25ex)=(subsection in head/foot.bg);%
color(4.25ex)=(section in head/foot.bg);%
color(9.75ex)=(section in head/foot.bg)%
}
\pgfdeclareverticalshading{beamer@aboveframetitle}{\the\paperwidth}{%
color(0ex)=(frametitle.bg);%
color(1ex)=(frametitle.bg);%
color(2ex)=(subsection in head/foot.bg)
}
\else
\pgfdeclareverticalshading{beamer@barshade}{\the\paperwidth}{%
color(0ex)=(global.bg);%
color(1ex)=(section in head/foot.bg);%
color(7ex)=(section in head/foot.bg)%
}
\pgfdeclareverticalshading{beamer@aboveframetitle}{\the\paperwidth}{%
color(0ex)=(frametitle.bg);%
color(1ex)=(frametitle.bg);%
color(2ex)=(section in head/foot.bg)
}
\fi
\pgfdeclareverticalshading{beamer@belowframetitle}{\the\paperwidth}{%
color(0ex)=(global.bg);%
color(1ex)=(frametitle.bg)
}
}
}
% Head
\defbeamertemplate*{headline}{smoothbars theme}
{%
\pgfuseshading{beamer@barshade}%
\ifbeamer@sb@subsection%
\vskip-9.75ex%
\else%
\vskip-7ex%
\fi%
\ifnum\stopse=0
\begin{beamercolorbox}[ignorebg,ht=2.25ex,dp=3.75ex]{section in head/foot}
\insertnavigation{\paperwidth}
\end{beamercolorbox}%
\else
\begin{beamercolorbox}[ignorebg,ht=2.25ex,dp=3.75ex]{section in head/foot}
\hfill \insertsubsubsection \hfill \vspace{0pt}
\end{beamercolorbox}%
\fi
}%
\defbeamertemplate*{frametitle}{smoothbars theme}
{%
\nointerlineskip%
\usebeamerfont{headline}%
\begin{beamercolorbox}[wd=\paperwidth,ht=1.5ex,dp=0ex,vmode]{empty}
\pgfuseshading{beamer@aboveframetitle}%
\end{beamercolorbox}%
\vskip-.5ex%
\nointerlineskip%
\begin{beamercolorbox}[wd=\paperwidth,leftskip=.3cm,rightskip=.3cm plus1fil,vmode]{frametitle}
\usebeamerfont*{frametitle}\insertframetitle%
\ifx\insertframesubtitle\@empty%
\strut\par%
\else
\par{\usebeamerfont*{framesubtitle}{\usebeamercolor[fg]{framesubtitle}\insertframesubtitle}\strut\par}%
\fi%%
\usebeamerfont{headline}%
\vskip.5ex
\end{beamercolorbox}%
\nointerlineskip
\begin{beamercolorbox}[wd=\paperwidth,ht=.5ex,dp=0ex]{empty}
\pgfuseshading{beamer@belowframetitle}%
\end{beamercolorbox}%
}
\mode
<all>
\end{filecontents}
\usepackage[latin1]{inputenc}
\useoutertheme[subsection=false]{smoothmod}
\useinnertheme[shadow=true]{rounded}
\usecolortheme{orchid}
\usecolortheme{whale}
\setbeamerfont{block title}{size={}}
%%%%%%%%%%%%%%%%%
% Ende eigener Frametitle
%%%%%%%%%%%%%%%%%
\begin{document}
\frame{\tableofcontents}
\section{BKA}
\begin{frame}{eins}
\framesubtitle{Unterlage1}
\end{frame}
\section{test}
\begin{frame}{zwei}
\framesubtitle{Unterlage2}
\end{frame}
\stopsections% damit schaltet man auf die "andere Sctionierung" um
\subsubsection*{Nicht drinn} % Ok das ist ja schließlich n Hack Du musst also subsubsection verwenden.
\frame{test}
\subsubsection*{auch net dirnn}
\frame{}
\end{document}
[/code]