[PRESS-MEDIA]

Add the slides of yesterday's presentation of my Printing Stack Thesis as well.
Again, a PDF and the TeX source files are provided.

svn path=/trunk/; revision=67
This commit is contained in:
Colin Finck 2015-10-08 13:23:30 +00:00
parent 32c2354d82
commit 85b89a820b
17 changed files with 1167 additions and 0 deletions

View File

@ -0,0 +1,88 @@
% Copyright 2007 by Till Tantau
%
% This file may be distributed and/or modified
%
% 1. under the LaTeX Project Public License and/or
% 2. under the GNU Public License.
%
% See the file doc/licenses/LICENSE for more details.
\ProvidesPackageRCS $Header: beamercolorthemeeonerc.sty,v 1.4 2007/01/28 20:48:24 tantau Exp $
\mode<presentation>
%%
%% define colors
%%
\xdefinecolor{eonercred}{RGB}{219,62,52}
\xdefinecolor{ultralightred}{RGB}{250,220,216}
\xdefinecolor{verylightred}{RGB}{244,183,177}
\xdefinecolor{lightred}{RGB}{239,145,134}
\xdefinecolor{normalred}{RGB}{219,62,52}
\xdefinecolor{darkred}{RGB}{173,53,53}
\xdefinecolor{verydarkred}{RGB}{125,35,19}
% Main colors
\setbeamercolor*{normal text}{fg=black}
\setbeamercolor*{structure}{fg=eonercred}
\setbeamercolor*{palette primary}{use=structure,fg=structure.fg,bg=lightred}
\setbeamercolor*{palette secondary}{use=structure,fg=structure.fg,bg=verylightred}
\setbeamercolor*{palette tertiary}{use=structure,fg=structure.fg,bg=ultralightred}
\setbeamercolor*{palette quaternary}{use=structure,fg=structure.fg,bg=ultralightred}
% Outer structure
\setbeamercolor*{separation line}{bg=black} % Draw separation lines, part of default RWTH theme
\setbeamercolor{frametitle}{fg=black}
\setbeamercolor{title}{fg=eonerc}
\setbeamercolor{subtitle}{fg=black}
\setbeamercolor{author}{fg=black}
\setbeamercolor{date}{fg=black}
\setbeamercolor{section}{fg=black}
%%
%% settings for the title page
%%
\setbeamercolor{title in titlepage}{fg=eonercred}
\setbeamercolor{title}{fg=eonercred}
\setbeamercolor{block title}{fg=eonercred}
\setbeamercolor{title in head/foot}{fg=eonercred}
\setbeamercolor{text in footer}{fg=gray}
\setbeamercolor{subtitle}{fg=black}
\setbeamercolor{author in head/foot}{fg=black}
\setbeamercolor{institute in head/foot}{fg=eonercred}
%%
%% settings for the outer theme
%%
\setbeamercolor{framenumber in head/foot}{}
\setbeamercolor{frametitle}{fg=black}
\setbeamercolor{section}{fg=black}
%%
%% settings for the table of contents
%%
\setbeamercolor{section in toc}{fg=black}
\setbeamercolor{subsection in toc}{fg=black}
%%
%% settings for the inner theme (e.g. itemize)
%%
\setbeamercolor{enumerate item}{fg=eonercred}
\setbeamercolor{enumerate subitem}{fg=eonercred}
\setbeamercolor{enumerate subsubitem}{fg=eonercred}
\setbeamercolor{itemize item}{fg=eonercred}
\setbeamercolor{itemize subitem}{fg=eonercred}
\setbeamercolor{itemize subsubitem}{fg=eonercred}
\mode<all>

View File

@ -0,0 +1,32 @@
% Copyright 2007 by Till Tantau
%
% This file may be distributed and/or modified
%
% 1. under the LaTeX Project Public License and/or
% 2. under the GNU Public License.
%
% See the file doc/licenses/LICENSE for more details.
\ProvidesPackageRCS $Header: beamerfontthemeeonerc.sty,v 1.13 2007/01/28 20:48:29 tantau Exp $
\mode<presentation>
%%
%% settings for the title page
%%
\setbeamerfont{title in title page}{size=\Large, series=\bfseries}
\setbeamerfont{subtitle in title page}{size=\large, series=\bfseries}
\setbeamerfont{author in title page}{size=\normalsize, series=\bfseries}
\setbeamerfont{institute in title page}{size=\normalsize}
\setbeamerfont{date in title page}{size=\normalsize}
%%
%% settings for the header and footer (outer theme)
%%
\setbeamerfont{text in footer}{size*={9pt}{10.8pt}}
\setbeamerfont{framenumber}{size=\small}
\setbeamerfont{frametitle}{size=\large, series=\bfseries}
\setbeamerfont{section}{size=\Large, series=\bfseries}
\mode<all>

View File

@ -0,0 +1,181 @@
% Copyright 2007 by Till Tantau
%
% This file may be distributed and/or modified
%
% 1. under the LaTeX Project Public License and/or
% 2. under the GNU Public License.
%
% See the file doc/licenses/LICENSE for more details.
\ProvidesPackageRCS $Header: beamerinnerthemeeonerc.sty,v 1.4 2007/07/23 20:48:30 tantau Exp $
\RequirePackage{marvosym} % for \MVRightArrow (used in: itemize subitem)
\RequirePackage{calc}
\mode<presentation>
\defbeamertemplate{title page}{smallbanner}{
% The white bar, fills 1/3rd
\usebeamercolor{title page bar}
\begin{tikzpicture}[overlay, remember picture]
\iftoggle{titlebanner}{%
\coordinate (bannerPos) at ($(current page.north west)+(0.5\paperwidth,-0.1665\paperheight)$);
\node[
inner sep=0pt
] (picture) at (bannerPos) {\includegraphics[height=.333\paperheight,width=\paperwidth]{\printtitlebanner}};
}{%
\node [
fill=eonercred,
minimum width=\paperwidth,
minimum height=0.333\paperheight,
anchor=north west,
] (picture) at (current page.north west) {};
}
\coordinate (picture.south west) at ($(current page.north west)+(0, -0.333\paperheight)$);
\coordinate (titlePos) at ($(picture.south west)+(2em, -1.0cm)$);
\node [
anchor=west,
align=left,
text={eonercred},
font={\usebeamerfont{title in title page}},
] (title) at (titlePos) {\inserttitle};
\coordinate (subtitlePos) at ($(title.south west)+(0, -.3cm)$);
\node [
anchor=west,
align=left,
text={black},
font={\usebeamerfont{subtitle in title page}},
] (subtitle) at (subtitlePos) {\insertsubtitle};
\coordinate (authorPos) at ($(subtitle.south west)+(0, -.6cm)$);
\node [
anchor=west,
align=left,
text={black},
font={\usebeamerfont{author in title page}},
] (author) at (authorPos) {\insertauthor};
\end{tikzpicture}
% Print institute logo to the bottom of the page
\instlogobottom
}
\defbeamertemplate{title page}{bigbanner}{
% The white bar, fills 1/3rd
\usebeamercolor{title page bar}
\begin{tikzpicture}[overlay, remember picture]
\iftoggle{titlebanner}{%
\coordinate (bannerPos) at ($(current page.north west)+(0.5\paperwidth,-0.332\paperheight)$);
\node[
inner sep=0pt
] (picture) at (bannerPos) {\includegraphics[height=.666\paperheight,width=\paperwidth]{\printtitlebanner}};
}{%
\node [
fill=eonercred,
minimum width=\paperwidth,
minimum height=0.666\paperheight,
anchor=north west,
] (picture) at (current page.north west) {};
}
\coordinate (titlePos) at ($(picture.south west)+(2em, -1.0cm)$);
\iftoggle{subtitle}{%
\node [
anchor=west,
align=left,
text={eonercred},
font={\usebeamerfont{title in title page}},
] (title) at (titlePos) {\inserttitle{} -- \insertsubtitle{}};
}{%
\node [
anchor=west,
align=left,
text={eonercred},
font={\usebeamerfont{title in title page}},
] (title) at (titlePos) {\inserttitle{}};
}
\coordinate (authorPos) at ($(title.south west)+(0, -.3cm)$);
\node [
anchor=west,
align=left,
text={black},
font={\usebeamerfont{author in title page}},
] (author) at (authorPos) {\insertauthor};
\end{tikzpicture}
% Print institute logo to the bottom of the page
\instlogobottom
}
%%%
% Title page
%%%
\iftoggle{bigbanner}{%
\setbeamertemplate{title page}[bigbanner]{}
}{%
\setbeamertemplate{title page}[smallbanner]{}
}
%
% Itemize/Enumerate Layout
%
%1st Layer: Square
\defbeamertemplate{itemize item}{layerOne}{\printBulletLayerOne}
\setbeamertemplate{itemize item}[layerOne]
% 2nd Layer: Three bars
\defbeamertemplate{itemize subitem}{layerTwo}{\printBulletLayerTwo}
\setbeamertemplate{itemize subitem}[layerTwo]
\defbeamertemplate{enumerate subitem}{layerTwo}{\alph{enumii})}
\setbeamertemplate{enumerate subitem}[layerTwo]
% 3rd Layer: Two bars
\defbeamertemplate{itemize subsubitem}{layerThree}{\printBulletLayerThree}
\setbeamertemplate{itemize subsubitem}[layerThree]
\defbeamertemplate{enumerate subsubitem}{layerThree}{\roman{enumiii})}
\setbeamertemplate{enumerate subsubitem}[layerThree]
\AtBeginSection[] % Do nothing for \section*
{
\setbeamertemplate{navigation symbols}{}
\begin{frame}[plain]
\begin{columns}
\begin{column}{.05\paperwidth}
\end{column}
\begin{column}{.95\paperwidth}
\frametitle{~}
\vspace{3cm}
\begin {beamercolorbox}[sep=0pt]{section}
\usebeamerfont{section}\insertsection
\end {beamercolorbox}
\instlogobottom
\end{column}
\end{columns}
\end{frame}
}
\AtBeginDocument
{
\iflanguage{ngerman}{\pdfbookmark[2]{Titelseite}{title}}{}
\iflanguage{english}{\pdfbookmark[2]{Title page}{title}}{}
\frame{\titlepage}
}
%%
%% Table of Content Layout
%%
\defbeamertemplate{section in toc}{acssquare}{%
\hspace*{1em}{\printBulletLayerOne}~~\inserttocsection%
}
\setbeamertemplate{section in toc}[acssquare]
\defbeamertemplate{subsection in toc}{acsequiv}{%
\hspace*{1em}\small\vspace{.5ex}\leftskip=1.2em%
{\printBulletLayerTwo}~~\inserttocsubsection\par%
}
\setbeamertemplate{subsection in toc}[acsequiv]
\mode<all>

View File

@ -0,0 +1,119 @@
\ProvidesPackageRCS $Header: beamerouterthemeeonerc.sty,v 1.9 2007/07/16 20:48:30 tantau Exp $
\RequirePackage{calc} % needed for calculations of lengths
\mode<presentation>
\setbeamersize{sidebar width right=0mm} % no right sidebar.
\setbeamersize{text margin right=1.9em}
\setbeamersize{text margin left=.025\paperwidth}
% no sidebars
\defbeamertemplate*{sidebar right}{rwth theme}{}
\defbeamertemplate*{sidebar left}{rwth theme}{}
\defbeamertemplate*{frametitle}{rwth theme}[1][left]{}
%%
%% Definition of the headline
%%
\edef\sepLineDist{.025\paperwidth}
\edef\sepLineLength{\paperwidth-2*\sepLineDist}
\defbeamertemplate*{headline}{rwth theme}[1][left]
{
\ifnum \insertpagenumber=1
\else
\leavevmode%
% hbox is necessary for correct text positioning in frame
\hbox{%
\begin{beamercolorbox}[sep=0cm,ht=\headlineHeight, wd=\sepLineDist]{frametitle}
\end{beamercolorbox}%
}
% the actual footer definition
\begin{tikzpicture}[remember picture, overlay]
% bottom line
\draw [] (toplineStart) -- (toplineEnd);
\coordinate (titleHelper) at ($(current page.north west)!(toplineStart)!(current page.north east)$);
\coordinate (titleAnchor) at ($(titleHelper)!.5!(toplineStart)$);
\node [
anchor=west,
] at (titleAnchor) {\usebeamerfont{frametitle}\strut\insertframetitle};
\end{tikzpicture}
\fi
}
%%
%% Definition of the footline
%%
\iftoggle{shortpagenumbers}{%
\defbeamertemplate*{page numbering}{rwth theme}{%
\insertframenumber
}
}{%
\defbeamertemplate*{page numbering}{rwth theme}{%
\insertframenumber~\protect\iflanguage{ngerman}{von}{}\protect\iflanguage{english}{of}{}~\inserttotalframenumber
}
}
\newcommand{\nempty}[3]{\ifx#1\empty#3{}\else#2{}\fi}
\defbeamertemplate*{footer first line}{rwth theme}{%
\nempty{\insertshorttitle}{\insertshorttitle{}\enskip|\enskip}{}%
\nempty{\insertauthor}{\insertauthor{}\enskip|\enskip}{}%
\nempty{\insertshortinstitute}{\insertshortinstitute{}\enskip|\enskip}{}%
}
\defbeamertemplate*{footer second line}{rwth theme}{%
\insertdate
}
\edef\footlineTextDist{.01\paperwidth}
\defbeamertemplate*{footline}{rwth theme}
{
\ifnum \insertpagenumber=1
\else
\leavevmode%
% hbox is necessary for correct text positioning in frame
\hbox{%
\begin{beamercolorbox}[sep=0cm,ht=\footlineHeight, wd=\sepLineDist]{frametitle}
\end{beamercolorbox}%
}
% the actual footer definition
\begin{tikzpicture}[remember picture, overlay]
\draw [] (bottomlineStart) -- (bottomlineEnd);
% Page Numbering
\coordinate (pageNumberPosLot) at ($(current page.south east)!(bottomlineStart)!(current page.south west)$);
\coordinate (pageNumerAnchor) at ($(bottomlineStart)!(ercrwthLogo.north west)!(pageNumberPosLot)$);
\node [
text=gray,
anchor=north west,
outer sep=0,
inner sep=0
] (pageNumber) at (pageNumerAnchor) {\usebeamertemplate{page numbering}};
% Footer Text 1st line
\coordinate (firstLineAnchor) at ($(pageNumber.north east)+(\footlineTextDist, 0)$);
\node [
text=gray,
anchor=north west,
outer sep=0,
inner sep=0
] (footerFirstLine) at (firstLineAnchor) {\usebeamertemplate{footer first line}};
% Footer Text 2nd line
\coordinate (secondLineAnchor) at ($(intersection of footerFirstLine.north west--footerFirstLine.south west and ercrwthLogo.south west--ercrwthLogo.south east)$);
\node [
text=gray,
anchor=south west,
outer sep=0,
inner sep=0
] (footerSecondLine) at (secondLineAnchor) {\usebeamertemplate{footer second line}};
\end{tikzpicture}
\fi
% Print institute logo to the bottom of the page
\instlogobottom
}
\mode<all>

View File

@ -0,0 +1,166 @@
% Copyright 2007 by Till Tantau
% Copyright 2009 by Rainer Finocchiaro
% Copyright 2012 by Georg Wassen
%
% This file may be distributed and/or modified
%
% 1. under the LaTeX Project Public License and/or
% 2. under the GNU Public License.
%
% See the file doc/licenses/LICENSE for more details.
\ProvidesPackageRCS $Header: beamerthemeeonerc.sty,v 0.1 2012/12/13 wassen Exp $
\RequirePackage{xspace} % for \xspace
\RequirePackage{etoolbox}
\newtoggle{bigbanner}
\togglefalse{bigbanner}
\DeclareOption{bigbanner}{\toggletrue{bigbanner}}
\newtoggle{subtitle}
\togglefalse{subtitle}
\DeclareOption{subtitle}{\toggletrue{subtitle}}
\newtoggle{shortpagenumbers}
\DeclareOption{shortpagenumbers}{\toggletrue{shortpagenumbers}}
\ProcessOptions
%%
%% Use Arial as default font
%%
%\usepackage{helvet}
%\renewcommand{\familydefault}{phv}
%%
%% include RWTH logo (for header)
%%
\ifthenelse{\boolean{outputPrintVersion}}{
\logo{\includegraphics[height=5mm]{logos/eonerc_rwth}}
}{
\logo{\textcolor{white}{\rule{5mm}{5mm}}}
}
%%
%% add new commands to set web and email address
%% (and, optionally, institute logo
%%
\newcommand*{\webaddress}[1]{}
\newcommand*{\printwebaddress}{www.rwth-aachen.de}
\renewcommand*{\webaddress}[1]{\renewcommand*{\printwebaddress}{#1}}
\newcommand*{\email}[1]{}
\newcommand*{\printemail}{}
\renewcommand*{\email}[1]{\renewcommand*{\printemail}{\href{mailto:#1}{#1}\xspace}}
\newcommand*{\instlogo}[1]{}
\newcommand*{\printinstlogo}{}
\renewcommand*{\instlogo}[1]{\renewcommand*{\printinstlogo}{#1}}
\instlogo{\includegraphics[height=8mm]{logos/acs}}
\newtoggle{titlebanner}
\togglefalse{titlebanner}
\newcommand*{\titlebanner}[1]{}
\newcommand*{\printtitlebanner}{}
\renewcommand*{\titlebanner}[1]{\toggletrue{titlebanner}\renewcommand*{\printtitlebanner}{#1}}
\newcommand*{\instlogobottom}{
\begin{tikzpicture}[overlay, remember picture]
% bottom line
\coordinate(bottomlineStart) at ($(current page.south west)+(\sepLineDist, \footlineHeight)$);
\coordinate(bottomlineEnd) at ($(bottomlineStart)+(\sepLineLength, 0)$);
\coordinate(toplineStart) at ($(current page.north west)+(\sepLineDist, -\headlineHeight)$) -- +(\sepLineLength, 0);
\coordinate(toplineEnd) at ($(toplineStart)+(\sepLineLength, 0)$);
% RWTH logo
\coordinate (logoAnchorLot) at ($(current page.south west)!(bottomlineEnd)!(current page.south east)$);
\coordinate (logoAnchor) at ($(logoAnchorLot)!.5!(bottomlineEnd)$);
\node [anchor=east, outer sep=0, inner sep=0] (ercrwthLogo) at (logoAnchor) {\insertlogo};
\end{tikzpicture}
}
%%
%% the '\lastpage' command may be used to insert a 'running-out' slide
%%
\newcommand*{\lastpage}{
\begin{frame}[plain,t]
\begin{columns}
\begin{column}{.05\paperwidth}
\end{column}
\begin{column}{.95\paperwidth}
\hfill
\vspace{4cm}
\scriptsize
\protect\iflanguage{ngerman}{Vielen Dank f\"ur Ihre Aufmerksamkeit!}{}
\protect\iflanguage{english}{Thank you for your kind attention!}{}
\vspace{4ex}
\textbf{\insertauthor}\ifx\printemail\@empty\else{~--~{\color{eonercred}\printemail}}\fi
\vspace{2ex}
Institute for Automation of Complex Power Systems\\
E.ON Energy Research Center, RWTH Aachen University\\
Mathieustra{\ss}e 10\\
52074 Aachen
\vspace{2ex}
{\color{eonercred}\url{\printwebaddress}}
\instlogobottom
\end{column}
\end{columns}
\end{frame}
}
\mode<presentation>
% Define some lengths
\newlength{\bulletHeight}
\setlength{\bulletHeight}{5pt}
\newlength{\bulletWidth}
\setlength{\bulletWidth}{5pt}
\newlength{\footlineHeight}
\setlength{\footlineHeight}{.75cm}
\newlength{\headlineHeight}
\setlength{\headlineHeight}{1.25cm}
\newlength{\backgroundHeight}
\setlength{\backgroundHeight}{\paperheight}
\addtolength{\backgroundHeight}{-\headlineHeight}
\addtolength{\backgroundHeight}{-\footlineHeight}
%%
%% add some commands for itemize bullets
%%
\newcommand*{\bulletLayerOne}[1]{}
\newcommand*{\printBulletLayerOne}{}
\renewcommand*{\bulletLayerOne}[1]{\renewcommand*{\printBulletLayerOne}{#1}}
\bulletLayerOne{\includegraphics[height=\bulletHeight, width=\bulletWidth]{logos/bullet_layer_one}}
\newcommand*{\bulletLayerTwo}[1]{}
\newcommand*{\printBulletLayerTwo}{}
\renewcommand*{\bulletLayerTwo}[1]{\renewcommand*{\printBulletLayerTwo}{#1}}
\bulletLayerTwo{\includegraphics[height=\bulletHeight, width=\bulletWidth]{logos/bullet_layer_two}}
\newcommand*{\bulletLayerThree}[1]{}
\newcommand*{\printBulletLayerThree}{}
\renewcommand*{\bulletLayerThree}[1]{\renewcommand*{\printBulletLayerThree}{#1}}
\bulletLayerThree{\includegraphics[height=\bulletHeight, width=\bulletWidth]{logos/bullet_layer_three}}
\newcommand*{\bulletLayerFour}[1]{}
\newcommand*{\printBulletLayerFour}{}
\renewcommand*{\bulletLayerFour}[1]{\renewcommand*{\printBulletLayerFour}{#1}}
\bulletLayerFour{\color{eonercred}$\bullet$}
%%
%% include the other style files of the rwth theme
%%
\usefonttheme{eonerc} % beamerfontthemerwth.sty
\usecolortheme{eonerc} % beamercolorthemerwth.sty
\useoutertheme{eonerc} % beamerouterthemerwth.sty
\useinnertheme{eonerc} % beamerinnerthemerwth.sty
\mode<all>

View File

@ -0,0 +1,69 @@
%PDF-1.5
%µí®û
3 0 obj
<< /Length 4 0 R
/Filter /FlateDecode
>>
stream
xœ-DZ €@ À>Sx‚‰Æ`
øØ_BHtw—Ñk®Šz4MÊÔ<1A>»c܉þ±¤'…’§
ÃßûÀi½@ 
endstream
endobj
4 0 obj
69
endobj
2 0 obj
<<
/ExtGState <<
/a0 << /CA 1 /ca 1 >>
>>
>>
endobj
5 0 obj
<< /Type /Page
/Parent 1 0 R
/MediaBox [ 0 0 83.737999 67.703003 ]
/Contents 3 0 R
/Group <<
/Type /Group
/S /Transparency
/CS /DeviceRGB
>>
/Resources 2 0 R
>>
endobj
1 0 obj
<< /Type /Pages
/Kids [ 5 0 R ]
/Count 1
>>
endobj
6 0 obj
<< /Creator (cairo 1.10.2 (http://cairographics.org))
/Producer (cairo 1.10.2 (http://cairographics.org))
>>
endobj
7 0 obj
<< /Type /Catalog
/Pages 1 0 R
>>
endobj
xref
0 8
0000000000 65535 f
0000000466 00000 n
0000000182 00000 n
0000000015 00000 n
0000000161 00000 n
0000000254 00000 n
0000000531 00000 n
0000000658 00000 n
trailer
<< /Size 8
/Root 7 0 R
/Info 6 0 R
>>
startxref
710
%%EOF

View File

@ -0,0 +1,67 @@
%PDF-1.5
%µí®û
3 0 obj
<< /Length 4 0 R
/Filter /FlateDecode
>>
stream
xœuɱ €0 DÑ>Sܘmp2#P@jÂþ QB÷¿Þ(e*EOЪ*zøíLÄ4“0Ç<30>U< }Ã~£SXì½/\Òˆl
endstream
endobj
4 0 obj
83
endobj
2 0 obj
<<
/ExtGState <<
/a0 << /CA 1 /ca 1 >>
>>
>>
endobj
5 0 obj
<< /Type /Page
/Parent 1 0 R
/MediaBox [ 0 0 83.734001 67.703003 ]
/Contents 3 0 R
/Group <<
/Type /Group
/S /Transparency
/CS /DeviceRGB
>>
/Resources 2 0 R
>>
endobj
1 0 obj
<< /Type /Pages
/Kids [ 5 0 R ]
/Count 1
>>
endobj
6 0 obj
<< /Creator (cairo 1.10.2 (http://cairographics.org))
/Producer (cairo 1.10.2 (http://cairographics.org))
>>
endobj
7 0 obj
<< /Type /Catalog
/Pages 1 0 R
>>
endobj
xref
0 8
0000000000 65535 f
0000000480 00000 n
0000000196 00000 n
0000000015 00000 n
0000000175 00000 n
0000000268 00000 n
0000000545 00000 n
0000000672 00000 n
trailer
<< /Size 8
/Root 7 0 R
/Info 6 0 R
>>
startxref
724
%%EOF

Binary file not shown.

After

Width:  |  Height:  |  Size: 82 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 182 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 257 KiB

View File

@ -0,0 +1,12 @@
[FormatInfo]
Type=TeXnicCenterProjectInformation
Version=4
[ProjectInfo]
MainFile=slides.tex
UseBibTeX=0
UseMakeIndex=0
ActiveProfile=LaTeX ⇨ PDF
ProjectLanguage=en
ProjectDialect=US

View File

@ -0,0 +1,433 @@
%%
%% if lualatex is not used, compile to PDF 1.4 (compatibility to Adobe Acrobat)
%%
\RequirePackage{ifluatex}
\ifluatex
\else
\RequirePackage{pdf14}
\fi
\documentclass[aspectratio=1610]{beamer}
%%
%% E.ON ERC Beamer Theme (layout based on E.ON ERC PowerPoint template)
%% by Simon Pickartz, Institute for Automation of Complex Power Systems, 2014
%% spickartz@eonerc.rwth-aachen.de
%% based on RWTH Latex template
%% by Georg Wassen, Lehrstuhl für Betriebssysteme, 2013
%% wassen@lfbs.rwth-aachen.de
%%
%% The templates are derived from the beamer documentation and the provided
%% templates, hence, the same licence applies:
%%
%% ----------------------------------------------------------------
%% | This file may be distributed and/or modified |
%% | |
%% | 1. under the LaTeX Project Public License and/or |
%% | 2. under the GNU Public License. |
%% | |
%% | See the file doc/licenses/LICENSE for more details. |
%% ----------------------------------------------------------------
%%
%% Version 0.1 03/28/2014 Initial presentation using this theme
%% Version 0.2 04/01/2014 First version to be published in the institute
%%
\usepackage{ifthen}
% Whether to output the Print version (with RWTH logo) or the public version
\newboolean{outputPrintVersion}
\setboolean{outputPrintVersion}{false}
\usepackage[]{luainputenc}
\usepackage[english]{babel}
\usetheme[]{eonerc}
\usepackage[T1]{fontenc} % Font encoding
\usepackage{lmodern} % Select Linux Modern Fonts
\usepackage{graphicx} % needed to include graphics
\beamertemplatenavigationsymbolsempty % Disable navigation symbols
\usepackage{listings}
\usepackage{tikz}
\usetikzlibrary{calc,positioning,fit,matrix,shadows,chains,arrows,shapes,spy,fadings,shadings}
\usepackage{pgfplots}
\usetikzlibrary{pgfplots.units,shapes.symbols,shapes.arrows}
\tikzset{
cf_base/.style={font=\sffamily\footnotesize, node distance=12mm, fill=white},
cf_block/.style={cf_base, draw, rectangle, rounded corners, on grid, align=center},
cf_data/.style={cf_base, draw, cylinder, aspect=0.2, on grid, shape border rotate=90]},
cf_head/.style={font=\sffamily\bfseries\normalsize, on grid},
cf_impl/.style={cf_base, fill=yellow!40},
cf_label/.style={align=left, draw opacity=0, font=\sffamily\tiny},
cf_line/.style={cf_base, draw=black, -latex},
cf_skiplistitem/.style={cf_base, draw, rectangle split, rectangle split parts=#1, rectangle split empty part height=1.3ex, rectangle split empty part width=1ex, align=center},
cf_onslide/.code args={<#1>#2}{\only<#1>{\pgfkeysalso{#2}}},
cf_emphline/.style={line width=0.8pt},
cf_blackbox/.style={cf_base, draw, rectangle, on grid, align=center, color=white, fill=black, minimum height=25mm, minimum width=50mm}
}
\definecolor{windows_gray}{RGB}{212,208,200}
\definecolor{windows_blue}{RGB}{10,36,106}
\newcommand\myheading[1]{{\Large\bfseries#1}\par\bigskip}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% configure title page and author information
%%-------------------------------
%% You can always provide a short version: \title[short]{long title}
%% title -- Title of the presentation
%% The title appears on the first page and may contain
%% a line break: \\
%% The short title appears in the footer line
%% subtitle -- Appears below the title
%% titlegraphic -- Currently not supported
%% author -- Name of the author(s)
%% email -- E-Mail address of author (optional)
%% institute -- Name of the institution (e.g. chair)
%% webaddress -- Web address (default is www.rwth-aachen.de),
%% (see slide generated with \lastpage)
%% date -- Date of the presentation
%% (or use \date to insert the date of the PDF generation)
%% subject -- This is only for the PDF meta data
%% keywords -- This is only for the PDF meta data
%% logo -- Logo, don't change (given by coporate identity templates)
\title[Printing Stack for the ReactOS Operating System]{Analysis, Design and Implementation of a Printing Stack \\for the Open-Source ReactOS Operating System}
\titlebanner{pictures/title_small}
\subtitle{Bachelor Thesis Presentation}
\author{Colin Finck}
\email{colin.finck@rwth-aachen.de} % optionally
\institute[ACS]{Automation of Complex Power Systems}
\webaddress{www.eonerc.rwth-aachen.de} % overrides rwth-aachen.de
\date{October 7, 2015}
\subject{Analysis, Design and Implementation of a Printing Stack for the Open-Source ReactOS Operating System}
\keywords{ReactOS, Operating Systems, Printing, Reverse Engineering}
\begin{document}
\begin{frame}{Agenda}
\tableofcontents
\end{frame}
\section{Basics}
\subsection{The ReactOS Operating System}
\begin{frame}{The ReactOS Operating System}
\myheading{Goal: Open-Source Desktop Operating System for the Mass}
\begin{itemize}
\item Fully compatible to applications and drivers written for Microsoft Windows
\item Customizable
\item Trustworthy
\end{itemize}
\bigskip
\pause
But lacking Printing abilities prior to this work!
\end{frame}
\begin{frame}{The ReactOS Operating System}
\centering
\includegraphics{pictures/office2007ros}
\end{frame}
\subsection{Technical Terms}
\begin{frame}{Technical Terms}
\begin{itemize}
\item \textbf{API} \\
Official and documented interface to let a software developer make use of a component
\bigskip
\item \textbf{GDI} \\
Windows component for drawing text and graphics on the screen and on paper
\bigskip
\item \textbf{Spooler} \\
Buffers concurrent print requests from multiple applications and sends them,\\
one after another, to the Printer
\bigskip
\end{itemize}
\end{frame}
\subsection{Microsoft Windows Printing Stack}
\begin{frame}{Microsoft Windows Printing Stack}
\centering
\begin{tikzpicture}
\node [cf_block, cf_impl] (App) {Application};
\node [cf_block, below left = 15mm of App] (gdi32) {GDI};
\node [cf_block, cf_impl, below = 22mm of App] (winspool) {Spooler API};
\path [cf_line, dotted] (App) -- (gdi32);
\path [cf_line, dotted] (App) -- (winspool);
\path [cf_line] (gdi32) -- (winspool);
\uncover<2->{
\node [cf_block, cf_impl, below = of winspool] (spoolsv) {Spooler Server};
\path [cf_line] (winspool) -- (spoolsv);
}
\uncover<3->{
\node [cf_block, cf_impl, below = of spoolsv] (spoolss) {Spooler Router};
\path [cf_line] (spoolsv) -- (spoolss);
}
\uncover<4->{
\node [cf_block, cf_impl, below left = 12mm and 32mm of spoolss] (localspl) {Local Spooler};
\node [cf_block, below = of spoolss] (inetpp) {Internet Print Provider};
\node [cf_block, below right = 12mm and 40mm of spoolss] (win32spl) {LanMan Print Services};
\path [cf_line, dotted] (spoolss) -- (localspl);
\path [cf_line, dotted] (spoolss) -- (inetpp);
\path [cf_line, dotted] (spoolss) -- (win32spl);
}
\uncover<5->{
\node [cf_block, right = 80mm of spoolsv] (extern_spoolsv) {Spooler Server\\on another computer};
\node [cf_data, cf_impl, below = 13mm of localspl] (spoolfile) {Spool File};
\node [cf_block, below = 13mm of inetpp] (ippprinter) {IPP-capable Printer};
\path [cf_line] (localspl) -- (spoolfile);
\path [cf_line] (inetpp) -- (ippprinter);
\coordinate [left = 3mm of extern_spoolsv] (extern_spoolsv_anchor);
\path [draw] (win32spl) -- (win32spl |- ippprinter.north);
\path [draw] (win32spl |- ippprinter.north) -- (ippprinter.north -| extern_spoolsv_anchor);
\path [draw] (ippprinter.north -| extern_spoolsv_anchor) -- (extern_spoolsv_anchor);
\path [cf_line] (extern_spoolsv_anchor) -- (extern_spoolsv.west);
}
\end{tikzpicture}
\begin{tikzpicture}[remember picture, overlay]
\node [cf_base, align=right, xshift=130mm, yshift=-13mm] at (titleAnchor) {Implemented components\\in \colorbox{yellow!40}{yellow}};
\end{tikzpicture}
\end{frame}
\begin{frame}{Microsoft Windows Printing Stack}
\centering
\begin{tikzpicture}
\node [cf_data, cf_impl] (spoolfile) {Spool File};
\node [cf_block, cf_impl, right = 30mm of spoolfile] (winprint) {Print Processor};
\path [cf_line] (spoolfile.east) -- (winprint.west);
\uncover<2->{
\node [cf_block, cf_impl, below = 20mm of winprint] (spoolss) {Spooler Router};
\node [cf_block, cf_impl, below = of spoolss] (localspl) {Local Spooler};
\path [cf_line, dotted] (winprint) -- (spoolss);
\path [cf_label] (winprint) edge node [right] {For RAW datatype} (spoolss);
\path [cf_line] (spoolss) -- (localspl);
}
\uncover<3->{
\node [cf_block, cf_impl, below left = 12mm and 20mm of localspl] (localmon) {Local Port Monitor};
\node [cf_block, below right = 12mm and 20mm of localspl] (usbmon) {USB Port Monitor};
\path [cf_line, dotted] (localspl) -- (localmon);
\path [cf_line, dotted] (localspl) -- (usbmon);
}
\uncover<4->{
\node [cf_block, below = 24mm of localspl] (kernel32) {User-Mode Kernel API for accessing a port};
\node [cf_block, below = 10mm of kernel32] (printer) {Printer};
\path [cf_line] (localmon) -- (kernel32.north -| localmon);
\path [cf_line] (usbmon) -- (kernel32.north -| usbmon);
\path [cf_line] (kernel32) -- (printer);
}
\end{tikzpicture}
\begin{tikzpicture}[remember picture, overlay]
\node [cf_base, align=right, xshift=130mm, yshift=-13mm] at (titleAnchor) {Implemented components\\in \colorbox{yellow!40}{yellow}};
\end{tikzpicture}
\end{frame}
\subsection{Remote Procedure Calls (RPC)}
\begin{frame}{Remote Procedure Calls (RPC)}
\myheading{Call a function in another process, on another computer}
Here used for Spooler API $\rightarrow$ Spooler Server communication.
\bigskip
\begin{itemize}
\item Function call and parameter information are transmitted over the network
\item No network-specific code needs to be written
\end{itemize}
\bigskip
\pause
Remote function call as easy as a local one!
\bigskip
Example:\\
\footnotesize\texttt{\_RpcOpenPrinter(L"\textbackslash\textbackslash\textbackslash\textbackslash Computer\textbackslash\textbackslash Printer", \&hPrinter, Datatype, \&DevMode, AccessRequired);}
\end{frame}
\begin{frame}{Remote Procedure Calls (RPC)}
What's happening in the background:
\begin{enumerate}
\item \textbf{Marshalling:} Function name and parameters are packed into a message.
\item Message is transmitted over the network.
\item \textbf{Unmarshalling:} Function name and parameters are reconstructed out of the message.
\item The actual implemented function is called in the target application.
\end{enumerate}
\end{frame}
\section{Methods}
\subsection{Reverse Engineering Tools}
\begin{frame}{Reverse Engineering Tools}
\centering
\begin{tikzpicture}
\node [cf_blackbox] (spoolss) {Windows\\Spooler Router};
\node [cf_blackbox, below = 50mm of spoolss] (localspl) {Windows\\Local Spooler};
\path [cf_line] (spoolss) -- (localspl);
\node [cf_base, on grid, below left = 20mm and 15mm of spoolss] {Function Calls?};
\node [cf_base, on grid, below left = 30mm and 13mm of spoolss] {Parameters?};
\end{tikzpicture}
\end{frame}
\begin{frame}{Reverse Engineering Tools}
\myheading{Dependency Walker}
Reveals dependencies between modules and their imported and exported functions
\bigskip
\centering
\includegraphics{pictures/depends}
\begin{tikzpicture}[remember picture, overlay]
\node<2-> [cf_base, align=center, xshift=15mm, yshift=-30mm] at (titleAnchor) {Examining\\ \colorbox{windows_gray}{Local Spooler}};
\node<3-> [cf_base, align=center, xshift=138mm, yshift=-51mm] at (titleAnchor) {Found function\\ \colorbox{windows_blue}{\textcolor{white}{InitializePrintMonitor}}};
\end{tikzpicture}
\end{frame}
\begin{frame}{Reverse Engineering Tools}
\myheading{GNU strings}
Outputs all strings found in a binary file
\bigskip
\centering
\includegraphics{pictures/strings}
\end{frame}
\begin{frame}{Reverse Engineering Tools}
\myheading{API Monitor}
Monitors all calls done to system functions and their parameters
\bigskip
\centering
\includegraphics{pictures/apimon}
\end{frame}
\begin{frame}{Reverse Engineering Tools}
\centering
\begin{tikzpicture}
\node [cf_blackbox] (spoolss) {Windows\\Spooler Router};
\node [cf_blackbox, below = 50mm of spoolss] (localspl) {Windows\\Local Spooler};
\path [cf_line] (spoolss) -- (localspl);
\node [cf_base, on grid, below left = 20mm and 15mm of spoolss] {Function Calls?};
\node [cf_base, on grid, below left = 30mm and 13mm of spoolss] {Parameters?};
\node [cf_block, below = 8mm of localspl] {$\vcenter{\hbox{\includegraphics[height=2ex]{pictures/glass}}}$ GNU strings};
\node [cf_block, below right = 20mm and 20mm of spoolss] {$\vcenter{\hbox{\includegraphics[height=2ex]{pictures/glass}}}$ Dependency Walker};
\node [cf_block, below right = 30mm and 15mm of spoolss] {$\vcenter{\hbox{\includegraphics[height=2ex]{pictures/glass}}}$ API Monitor};
\end{tikzpicture}
\end{frame}
\section{Implementation}
\subsection{Skip Lists}
\begin{frame}{Skip Lists}
\centering
\begin{tikzpicture}[scale=1.2, every node/.append style={transform shape}]
\node[cf_skiplistitem=5] (H) {L4 \nodepart{two} L3 \nodepart{three} L2 \nodepart{four} L1 \nodepart{five} Head};
\node[cf_skiplistitem=2, right = of H.south, anchor = south] (5) {\nodepart{two} 5};
\node[cf_skiplistitem=3, right = of 5.south, anchor = south] (7) {\nodepart{three} 7};
\node[cf_skiplistitem=5, right = of 7.south, anchor = south] (10) {\nodepart{five} 10};
\node[cf_skiplistitem=4, right = of 10.south, anchor = south] (15) {\nodepart{four} 15};
\node[cf_skiplistitem=2, right = of 15.south, anchor = south] (16) {\nodepart{two} 16};
\node[cf_skiplistitem=2, right = of 16.south, anchor = south] (19) {\nodepart{two} 19};
\node[cf_skiplistitem=3, right = of 19.south, anchor = south] (23) {\nodepart{three} 23};
\path [cf_line, cf_onslide=<2->{draw=red, cf_emphline}] (H.one east) -- (10.one west |- H.one east);
\path [cf_line] (H.two east) -- (10.two west |- H.two east);
\path [cf_line] (H.three east) -- (7.one west |- H.three east);
\path [cf_line, cf_onslide=<3->{draw=blue, cf_emphline}] (H.four east) -- (5.one west |- H.four east);
\path [cf_line, cf_onslide=<3->{draw=blue, cf_emphline}] (5.one east) -- (7.two west |- 5.one east);
\path [cf_line] (7.one east) -- (10.three west |- 7.one east);
\path [cf_line, cf_onslide=<3->{draw=blue, cf_emphline}] (7.two east) -- (10.four west |- 7.two east);
\path [cf_line, cf_onslide=<2->{draw=red, cf_emphline}] (10.two east) -- (15.one west |- 10.two east);
\path [cf_line] (10.three east) -- (15.two west |- 10.three east);
\path [cf_line, cf_onslide=<3->{draw=blue, cf_emphline}] (10.four east) -- (15.three west |- 10.four east);
\path [cf_line] (15.two east) -- (23.one west |- 15.two east);
\path [cf_line] (15.three east) -- (16.one west |- 15.three east);
\path [cf_line] (16.one east) -- (19.one west |- 16.one east);
\path [cf_line] (19.one east) -- (23.two west |- 19.one east);
\path [cf_label, cf_onslide=<4->{red}] (H.one east) edge node [above] {3} (10.one west |- H.one east);
\path [cf_label] (H.two east) edge node [above] {3} (10.two west |- H.two east);
\path [cf_label] (H.three east) edge node [above] {2} (7.one west |- H.three east);
\path [cf_label] (H.four east) edge node [above] {1} (5.one west |- H.four east);
\path [cf_label] (5.one east) edge node [above] {1} (7.two west |- 5.one east);
\path [cf_label] (7.one east) edge node [above] {1} (10.three west |- 7.one east);
\path [cf_label] (7.two east) edge node [above] {1} (10.four west |- 7.two east);
\path [cf_label, cf_onslide=<4->{red}] (10.two east) edge node [above] {1} (15.one west |- 10.two east);
\path [cf_label] (10.three east) edge node [above] {1} (15.two west |- 10.three east);
\path [cf_label] (10.four east) edge node [above] {1} (15.three west |- 10.four east);
\path [cf_label] (15.two east) edge node [above] {3} (23.one west |- 15.two east);
\path [cf_label] (15.three east) edge node [above] {1} (16.one west |- 15.three east);
\path [cf_label] (16.one east) edge node [above] {1} (19.one west |- 16.one east);
\path [cf_label] (19.one east) edge node [above] {1} (23.two west |- 19.one east);
\end{tikzpicture}
\bigskip
\begin{itemize}
\item Fast insertions, deletions and lookups, \\ $\mathcal{O}(\log n)$ on average
\item Easy to implement
\item Extensible
\end{itemize}
\end{frame}
\begin{frame}{Skip Lists}
\myheading{Example: Data Structure with 1000 Elements}
\vspace{15mm}
\centering
\large Average Number Of Comparisons During A Lookup
\vspace{10mm}
\begin{tikzpicture}[scale=1.1]
\begin{axis}[
xbar,
xmin = 0,
width = 100mm,
height = 35mm,
enlarge x limits = {rel=0.13, upper},
ytick = {1,2},
yticklabels = {Linked List, Skip List},
enlarge y limits = 0.4,
nodes near coords,
y axis line style = { opacity = 0 },
axis x line = none,
tickwidth = 0
]
\addplot coordinates {(500,1) (10,2)};
\end{axis}
\end{tikzpicture}
\vspace{15mm}
\end{frame}
%%
%% the final slide (contact information) can be generated with the following
%% command
%%
\lastpage
\end{document}