]> git.siccegge.de Git - talk/attack-i2p-raid2013.git/blobdiff - beamerthemei4.sty
Include missing files
[talk/attack-i2p-raid2013.git] / beamerthemei4.sty
diff --git a/beamerthemei4.sty b/beamerthemei4.sty
new file mode 100644 (file)
index 0000000..d1eef55
--- /dev/null
@@ -0,0 +1,207 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% $Id$
+% 
+% a beamer style for i4
+%
+% Copyright 2009 by Daniel Lohmann (dl@cs.fau.de)
+%
+% This file may be distributed and/or modified
+%
+% 1. under the LaTeX Project Public License and/or
+% 2. under the GNU Public License.
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+\mode<presentation>
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% color setup 
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+  \definecolor{i4red}{rgb}{0.69,0.11,0.18}
+  \definecolor{i4blue}{rgb}{0.0,0.4,0.62}
+  \definecolor{i4gray}{rgb}{0.827,0.827,0.827}
+  \definecolor{darkred}{rgb}{0.8,0,0}
+  
+  % the "example green" beamer defines in the default colortheme
+  \colorlet{beamergreen}{green!50!black}
+
+  \setbeamercolor{structure}{fg=i4blue,bg={}}
+  \setbeamercolor{section in toc}{fg=black,bg={}}
+  \setbeamercolor{subsection in toc}{fg=black,bg={}}
+  \setbeamercolor{alerted text}{fg=i4red}
+  \setbeamercolor*{palette primary}{fg=black,bg=white}
+  \setbeamercolor*{palette secondary}{fg=i4blue,bg=white}
+  \setbeamercolor*{palette tertiary}{fg=i4red,bg=white}
+  \setbeamercolor*{palette quaternary}{fg=darkred,bg=gray!5!white}
+  \setbeamercolor{titlelike}{parent=structure}
+  \setbeamercolor{itemize subitem}{fg=i4red}
+  \setbeamercolor{page number in head/foot}{fg=i4red}
+  \setbeamercolor{sidebar left}{bg={}}
+  \setbeamercolor{footline}{parent=structure}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% background image setup
+%
+% This is the real trick :-) All graphical elements of the i4-layout are just
+% in the background image. To support the "plain"-option for frames, we actually
+% need two different background images (and probably a third one for the title
+% slide, don't know yet)
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+  \usebackgroundtemplate{
+    \ifbeamer@plainframe%
+      \includegraphics[width=\paperwidth]{beamerthemei4_bgplain}%
+    \else %
+      \includegraphics[width=\paperwidth]{beamerthemei4_bg}
+    \fi%
+  }
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% enumeration style and borders setup
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+  \setbeamersize{sidebar width left=1.07cm}
+  \setbeamersize{text margin left=0.5em}
+  \setbeamersize{text margin right=3.5mm}
+
+       % the top-level item symbol is rendered into the sidebar 
+  \setbeamertemplate{itemize item}{\raise.5pt\hbox{\vrule width 1ex height 1ex}\hspace{0.5em}}
+  \setbeamertemplate{itemize subitem}{\raise.5pt\hbox{\vrule width 0.8ex height 0.8ex}}
+  \setbeamertemplate{itemize subsubitem}{\raise.5ex\hbox{\vrule width 1ex height 0.2ex}}
+  \setbeamertemplate{headline}[default]
+  \setlength{\labelwidth}{2em}
+  \setlength{\labelsep}{0.5em}
+  \setlength{\leftmargini}{0em}
+  \setlength{\leftmarginii}{1em}
+  \setlength{\leftmarginiii}{1em}
+
+% the above looks nice on slides, but bad in block environments; hence we override
+% beamers original block envs to modify them
+
+  % command to be installed at the begin of every block environment
+  \newcommand{\beamerblock}{
+    \setbeamertemplate{itemize item}{\raise.5pt\hbox{\vrule width 0.8ex height 0.8ex}}
+    \setbeamertemplate{itemize subitem}{\raise.5pt\hbox{\vrule width 0.6ex height 0.6ex}}
+               \setlength{\leftmargini}{1.5em}
+    \setlength{\labelsep}{0.5em}
+       }
+
+  \renewenvironment{block}[1]{%
+    \begin{actionenv}%
+                       \beamerblock%
+      \def\insertblocktitle{#1}%
+      \par%
+      \usebeamertemplate{block begin}}
+    {\par%
+      \usebeamertemplate{block end}%
+    \end{actionenv}
+  }
+  \renewenvironment{alertblock}[1]{%
+    \begin{actionenv}%
+                       \beamerblock%
+      \def\insertblocktitle{#1}%
+      \par%
+      \mode<presentation>{%\usebeamerfont{block}%
+        \setbeamercolor{local structure}{parent=alerted text}}%
+      \usebeamertemplate{block alerted begin}}
+    {\par%
+      \usebeamertemplate{block alerted end}%
+    \end{actionenv}
+  }
+  \renewenvironment{exampleblock}[1]{%
+    \begin{actionenv}%
+                       \beamerblock%
+      \def\insertblocktitle{#1}%
+      \par%
+      \mode<presentation>{%\usebeamerfont{block}%
+        \setbeamercolor{local structure}{parent=example text}}%
+      \usebeamertemplate{block example begin}}
+    {\par%
+      \usebeamertemplate{block example end}%
+    \end{actionenv}
+  }
+
+  
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% footline definitions
+% 
+% The footline is one of the things that are heavily customizable in beamer using
+% outer themes. However, we skip (and do not support) all those fancy beamer 
+% themes here and just let beamer it render as text line. This gives us full 
+% control and easy adaptation, but some things (especially the vertical layout)
+% remain a bit hacky :-)
+%
+% To provide for more easy customization within presentations, the framenumbering
+% can be customized (and also locally surpressed) by overwriting the 
+% macro \InsertFrameNumber
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+  % default style for frame numbers 
+  \def\InsertFrameNumber{\insertframenumber\,--\,\inserttotalframenumber}
+  \setbeamertemplate{footline}[text line]{
+    % beamer has already set footline color/font here
+    %
+    % use raisebox to align footline with i4logo
+    \raisebox{2.5mm}{\vbox{
+      % insert a strut (invisible vertical line) to prevent line breaks
+      \rule{0mm}{3mm}
+      % here the real content starts
+      % print author and title
+      \insertshortauthor
+      \hspace{2em}
+      \insertshorttitle
+      % if a shortdate is given, print it in brackets after the title 
+      \ifx\insertshortdate\@empty
+      \else
+        ~(\insertshortdate)
+      \fi
+      \hspace{2em}
+      % if section/subsection are defined, print them (seperated by an em-dash)
+      \ifx\insertsection\@empty%
+      \else%
+        \insertsection%
+          \ifx\insertsubsection\@empty%
+          \else%
+            \,--\,\insertsubsection%
+          \fi
+        \fi
+      % print the remaining stuff right-aligned
+      \hfill
+      % print page number
+      {
+        \usebeamercolor[fg]{page number in head/foot}\usebeamerfont{page number in head/foot}    
+        \parbox[t]{0.7cm}{\centering{\InsertFrameNumber}}
+      }%
+    }}
+  }
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% frametitle setup 
+% 
+% This is probably the most hacky part of i4beamer We completely overwrite the  
+% code beamer uses to render the frame title, especially to get the vertical
+% spacing and alignment right, so it fits with the "background".
+%
+% The i4-Layout does not really offer space for subtitles. We support them 
+% anyway by printing them right-aligned.
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
+  \setbeamertemplate{frametitle}{
+    \usebeamerfont{frametitle}\usebeamercolor[fg]{frametitle}
+    \insertframetitle\strut
+    \ifx\insertframesubtitle\@empty
+    \else {%
+      \usebeamerfont{framesubtitle}\usebeamercolor[fg]{framesubtitle}
+      \hfill\insertframesubtitle\strut
+    }%
+    \fi
+    \par\vskip2pt
+  }
+
+\mode
+<all>