summaryrefslogtreecommitdiff
path: root/aied2018/presentation/beamerposter.sty
diff options
context:
space:
mode:
Diffstat (limited to 'aied2018/presentation/beamerposter.sty')
-rw-r--r--aied2018/presentation/beamerposter.sty301
1 files changed, 301 insertions, 0 deletions
diff --git a/aied2018/presentation/beamerposter.sty b/aied2018/presentation/beamerposter.sty
new file mode 100644
index 0000000..7957e75
--- /dev/null
+++ b/aied2018/presentation/beamerposter.sty
@@ -0,0 +1,301 @@
+% Copyright 2007 by
+% Philippe Dreuw <dreuw@cs.rwth-aachen.de> and
+% Thomas Deselaers <deselaers@cs.rwth-aachen.de>
+%
+% This file may be distributed and/or modified
+%
+% 1. under the LaTeX Project Public License and/or
+% 2. under the GNU Public License.
+%
+%
+% ChangeLog:
+%
+% 1.10 - imrpoved PackageWarning and PackageInfo outputs
+% 1.09 - bugfixed the list indention problem, can be overwritten by user with the \setdefaultleftmargin command.
+% - added 'printer' option for external printer definition files
+% 1.08 - supports external printer definition files
+% - added grid mode option
+% - renamed beamer specific variables
+% - added font size normalization, so that scale=1.0 is the default font size for all DIN-A(n) sizes
+% 1.07 - bugfixed custom size handling, portrait or landscape settings are ignored now
+% 1.06 - added the type1cm package for scalable math fonts
+% 1.05 - added version check for xkeyval package
+% 1.04 - added custom size handling
+% 1.03 - improved predefined size handling
+% 1.02 - minor bugfixes
+% 1.01 - bugfixed size handling
+% 1.00 - first beamerposter release
+%
+\def\beamerposter@name{beamerposter}
+\def\beamerposter@version{1.10}
+\def\beamerposter@date{2009/09/02}
+\def\beamerposter@msg{latex-beamer poster extension}
+\def\beamerposter@releaseinfo{\beamerposter@date \space v.\beamerposter@version \space \beamerposter@msg}
+\def\beamerposter@Error#1#2{\PackageError{\beamerposter@name}{#1}{#2}}
+\def\beamerposter@Warning#1{\PackageWarning{\beamerposter@name}{#1}}
+\def\beamerposter@Info#1{\PackageInfo{\beamerposter@name}{#1}}
+
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{\beamerposter@name}[\beamerposter@releaseinfo]
+\RequirePackage{xkeyval}[2006/11/18]
+\RequirePackage{type1cm} %% get it from ftp://cam.ctan.org/tex-archive/macros/latex/contrib/type1cm.zip
+\RequirePackage{fp}
+%\RequirePackage{paralist}
+
+\newif\if@beamerposter@portrait
+\newif\if@beamerposter@customsize
+\newif\if@beamerposter@extern
+\newif\if@beamerposter@debug
+
+
+\DeclareOptionX{size}[a0]{
+ \beamerposter@Info{checking size input, please wait.}
+ \XKV@cc*+[\val\nr]{#1}{a0b,a0,a1,a2,a3,a4,custom}{%
+ \beamerposter@Info{the input \val\ \nr\ was correct, we proceed.}
+ \ifcase\nr\relax
+ %a0b
+ \edef\paperwidthValue{119}
+ \edef\paperheightValue{88}
+ \edef\textwidthValue{116}
+ \edef\textheightValue{88}
+ \edef\fontscale{1.0}
+ \or
+ %a0
+ \edef\paperwidthValue{118.82}
+ \edef\paperheightValue{83.96}
+ \edef\textwidthValue{117.82}
+ \edef\textheightValue{82.96}
+ \edef\fontscale{1.0}
+ \or
+ %a1
+ \edef\paperwidthValue{83.96}
+ \edef\paperheightValue{59.4}
+ \edef\textwidthValue{82.96}
+ \edef\textheightValue{58.4}
+ \edef\fontscale{0.70710678} % fontscale=(1/sqrt(2))^1
+ \or
+ %a2
+ \edef\paperwidthValue{59.4}
+ \edef\paperheightValue{41.98}
+ \edef\textwidthValue{58.4}
+ \edef\textheightValue{40.98}
+ \edef\fontscale{0.5} % fontscale=(1/sqrt(2))^2
+ \or
+ %a3
+ \edef\paperwidthValue{41.98}
+ \edef\paperheightValue{29.7}
+ \edef\textwidthValue{40.98}
+ \edef\textheightValue{28.7}
+ \edef\fontscale{0.35355339} % fontscale=(1/sqrt(2))^3
+ \or
+ %a4
+ \edef\paperwidthValue{29.7}
+ \edef\paperheightValue{21.0}
+ \edef\textwidthValue{28.7}
+ \edef\textheightValue{20.0}
+ \edef\fontscale{0.25} % fontscale=(1/sqrt(2))^4
+ \or
+ \@beamerposter@customsizetrue
+ \fi
+ }{%
+ \beamerposter@Warning{the input \val\ was incorrect and was ignored.}
+ }%
+ \beamerposter@Info{finished size input check.}
+}
+\DeclareOptionX{orientation}[portrait]{
+ \beamerposter@Info{checking orientation input, please wait.}
+ \XKV@cc*+[\val\nr]{#1}{portrait,landscape}{%
+ \beamerposter@Info{the input \val\ \nr\ was correct, we proceed.}
+ \ifcase\nr\relax
+ \@beamerposter@portraittrue
+ \or
+ \@beamerposter@portraitfalse
+ \fi
+ }{%
+ \beamerposter@Warning{the input \val\ was incorrect and was ignored.}
+ }%
+ \beamerposter@Info{finished orientation check.}
+}
+\DeclareOptionX{scale}[1.0]{\edef\myfontscale{#1}\beamerposter@Info{myfontscale=\myfontscale}}
+\DeclareOptionX{width}{\edef\customwidth{#1}\beamerposter@Info{custom poster width=\customwidth}}
+\DeclareOptionX{height}{\edef\customheight{#1}\beamerposter@Info{custom poster height=\customheight}}
+\DeclareOptionX{debug}{\beamerposter@Info{enabled debug mode}\@beamerposter@debugtrue}
+\DeclareOptionX{grid}{\beamerposter@Info{enabling grid}\beamertemplategridbackground[1cm]}% Display a grid to help align images
+\DeclareOptionX{printer}{\edef\printerToUse{#1}\@beamerposter@externtrue}
+\DeclareOptionX*{\beamerposter@Warning{Unknown option ignored: \CurrentOption}}
+%\DeclareOptionX*{\PassOptionsToClass{\CurrentOption}{beamer}}
+\ExecuteOptionsX{size=a0,scale=1.0}
+\ProcessOptionsX\relax
+
+%% enable debug mode for fp package (mainly for upn functions)
+\if@beamerposter@debug
+ \FPdebugtrue
+\fi
+
+%% normalize scale depending on poster size
+\FPupn{\myfontscale}{myfontscale fontscale * 2 round}
+
+%% swap sizes for portrait orientation
+\if@beamerposter@portrait
+ \newdimen\tmp
+ \setlength{\tmp}{\paperwidthValue cm}
+ \setlength{\paperwidth}{\paperheightValue cm}
+ \setlength{\paperheight}{\tmp}
+ \setlength{\tmp}{\textwidthValue cm}
+ \setlength{\textwidth}{\textheightValue cm}
+ \setlength{\textheight}{\tmp}
+\else
+ \setlength{\paperwidth}{\paperwidthValue cm}
+ \setlength{\paperheight}{\paperheightValue cm}
+ \setlength{\textwidth}{\textwidthValue cm}
+ \setlength{\textheight}{\textheightValue cm}
+\fi
+
+%% overwrite dimensions if custom size
+\if@beamerposter@customsize
+ \setlength{\paperwidth}{\customwidth cm}
+ \setlength{\paperheight}{\customheight cm}
+ \FPupn{\resulttextwidth}{1 customwidth -}
+ \FPupn{\resulttextheight}{1 customheight -}
+ \setlength{\textwidth}{\resulttextwidth cm}
+ \setlength{\textheight}{\resulttextheight cm}
+\fi
+
+%% Setting proper dimensions for a DIN A0 printer
+\setlength{\headheight}{0 cm}
+\setlength{\headsep}{0 cm}
+\setlength{\topmargin}{-12.7 mm} % -1in +1.47cm
+\setlength{\oddsidemargin}{-25.4 mm} % -1in +0.4cm
+
+%% For the page layout
+\beamerposter@Info{paperwidth=\the\paperwidth, paperheight=\the\paperheight}
+\beamerposter@Info{textwidth=\the\textwidth, textwidth=\the\textheight}
+\beamerposter@Info{fontscale=\fontscale, myfontscale=\myfontscale}
+\geometry{
+ paperwidth=\the\paperwidth,
+ paperheight=\the\paperheight,
+ hmargin=1cm,%
+ vmargin=0cm,%
+ head=0.5cm, %
+ headsep=0pt,%
+ foot=0.5cm %
+}
+
+%%
+%% printer definition file example 'rwth-glossy-uv.df':
+%% ----
+%% \typeout{beamerposter: RWTH RZ printer, glossy paper, UV resistant, maximum settings}
+%% \edef\printermaxwidthValue{108} %unit should be cm
+%% \newlength{\printermaxwidth}
+%% \setlength{\printermaxwidth}{\printermaxwidthValue cm}
+%% ----
+%%
+%% now load printer definitions from file (e.g. \usepackage[printer=rwth-glossy-uv.df]{beamerposter}")
+\if@beamerposter@extern
+ \InputIfFileExists{\printerToUse}{\typeout{load \printerToUse}}{\beamerposter@Error{\printerToUse\space not found!}{Please use another printer definition file}}
+ \ifx\printermaxwidthValue\@empty%
+ \relax%
+ \else%
+ %% @todo: calc poster ratios, scale to maximum printer size, and check if they still fit
+ %% this here is still very basic ...
+ \FPsub{\resultmaxwidth}{\printermaxwidthValue}{\paperwidthValue}
+ \FPifneg{\resultmaxwidth}
+ \beamerposter@Error{%
+ resultmaxwidth=\resultmaxwidth \MessageBreak
+ printermaxwidthValue=\printermaxwidthValue \MessageBreak
+ paperwidthValue=\paperwidthValue \MessageBreak
+ The specified poster dimensions might not be printable using
+ '\printerToUse'.
+ }{%
+ Try to reduce your poster dimension and have a look at the aspect ratio.
+ }
+ \else
+ \relax
+ \fi
+ \fi
+%\fi
+
+%% scalable vector fonts
+\edef\fontSizeX{12}\edef\fontSizeY{14}
+\FPupn{\resulttinyX}{myfontscale fontSizeX * 2 round}
+\FPupn{\resulttinyY}{myfontscale fontSizeY * 2 round}
+\renewcommand*{\tiny}{\fontsize{\resulttinyX}{\resulttinyY}\selectfont}
+
+\edef\fontSizeX{14.4}\edef\fontSizeY{18}
+\FPupn{\resultscriptsizeX}{myfontscale fontSizeX * 2 round}
+\FPupn{\resultscriptsizeY}{myfontscale fontSizeY * 2 round}
+\renewcommand*{\scriptsize}{\fontsize{\resultscriptsizeX}{\resultscriptsizeY}\selectfont}
+
+\edef\fontSizeX{17.28}\edef\fontSizeY{22}
+\FPupn{\resultfootnotesizeX}{myfontscale fontSizeX * 2 round}
+\FPupn{\resultfootnotesizeY}{myfontscale fontSizeY * 2 round}
+\renewcommand*{\footnotesize}{\fontsize{\resultfootnotesizeX}{\resultfootnotesizeY}\selectfont}
+
+\edef\fontSizeX{20.74}\edef\fontSizeY{25}
+\FPupn{\resultsmallX}{myfontscale fontSizeX * 2 round}
+\FPupn{\resultsmallY}{myfontscale fontSizeY * 2 round}
+\renewcommand*{\small}{\fontsize{\resultsmallX}{\resultsmallY}\selectfont}
+
+\edef\fontSizeX{24.88}\edef\fontSizeY{30}
+\FPupn{\resultnormalsizeX}{myfontscale fontSizeX * 2 round}
+\FPupn{\resultnormalsizeY}{myfontscale fontSizeY * 2 round}
+\renewcommand*{\normalsize}{\fontsize{\resultnormalsizeX}{\resultnormalsizeY}\selectfont}
+
+\edef\fontSizeX{29.86}\edef\fontSizeY{37}
+\FPupn{\resultlargeX}{myfontscale fontSizeX * 2 round}
+\FPupn{\resultlargeY}{myfontscale fontSizeY * 2 round}
+\renewcommand*{\large}{\fontsize{\resultlargeX}{\resultlargeY}\selectfont}
+
+\edef\fontSizeX{35.83}\edef\fontSizeY{45}
+\FPupn{\resultLargeX}{myfontscale fontSizeX * 2 round}
+\FPupn{\resultLargeY}{myfontscale fontSizeY * 2 round}
+\renewcommand*{\Large}{\fontsize{\resultLargeX}{\resultLargeY}\selectfont}
+
+\edef\fontSizeX{43}\edef\fontSizeY{54}
+\FPupn{\resultLARGEX}{myfontscale fontSizeX * 2 round}
+\FPupn{\resultLARGEY}{myfontscale fontSizeY * 2 round}
+\renewcommand*{\LARGE}{\fontsize{\resultLARGEX}{\resultLARGEY}\selectfont}
+
+\edef\fontSizeX{51.6}\edef\fontSizeY{64}
+\FPupn{\resulthugeX}{myfontscale fontSizeX * 2 round}
+\FPupn{\resulthugeY}{myfontscale fontSizeY * 2 round}
+\renewcommand*{\huge}{\fontsize{\resulthugeX}{\resulthugeY}\selectfont}
+
+\edef\fontSizeX{61.92}\edef\fontSizeY{77}
+\FPupn{\resultHugeX}{myfontscale fontSizeX * 2 round}
+\FPupn{\resultHugeY}{myfontscale fontSizeY * 2 round}
+\renewcommand*{\Huge}{\fontsize{\resultHugeX}{\resultHugeY}\selectfont}
+
+\edef\fontSizeX{74.3}\edef\fontSizeY{93}
+\FPupn{\resultveryHugeX}{myfontscale fontSizeX * 2 round}
+\FPupn{\resultveryHugeY}{myfontscale fontSizeY * 2 round}
+\newcommand*{\veryHuge}{\fontsize{\resultveryHugeX}{\resultveryHugeY}\selectfont}
+
+\edef\fontSizeX{89.16}\edef\fontSizeY{112}
+\FPupn{\resultVeryHugeX}{myfontscale fontSizeX * 2 round}
+\FPupn{\resultVeryHugeY}{myfontscale fontSizeY * 2 round}
+\newcommand*{\VeryHuge}{\fontsize{\resultVeryHugeX}{\resultVeryHugeY}\selectfont}
+
+\edef\fontSizeX{107}\edef\fontSizeY{134}
+\FPupn{\resultVERYHugeX}{myfontscale fontSizeX * 2 round}
+\FPupn{\resultVERYHugeY}{myfontscale fontSizeY * 2 round}
+\newcommand*{\VERYHuge}{\fontsize{\resultVERYHugeX}{\resultVERYHugeY}\selectfont}
+
+% set the normalfont (default)
+\renewcommand*{\normalfont}{\normalsize}
+
+% adapt list indention (e.g. itemize/enumeration/... see paralist docu)
+\edef\indentionLevelValuei{4} % 4em indention for first level for an A0 poster
+\edef\indentionLevelValueii{2.2} % etc. ...
+\edef\indentionLevelValueiii{1.87}
+\edef\indentionLevelValueiiii{1.7}
+\edef\indentionLevelValueiiiii{1}
+\edef\indentionLevelValueiiiiii{1}
+\FPupn{\indentionLevelValuei}{indentionLevelValuei fontscale * 2 round}
+\FPupn{\indentionLevelValueii}{indentionLevelValueii fontscale * 2 round}
+\FPupn{\indentionLevelValueiii}{indentionLevelValueiii fontscale * 2 round}
+\FPupn{\indentionLevelValueiiii}{indentionLevelValueiiii fontscale * 2 round}
+\FPupn{\indentionLevelValueiiiii}{indentionLevelValueiiiii fontscale * 2 round}
+\FPupn{\indentionLevelValueiiiiii}{indentionLevelValueiiiiii fontscale * 2 round}
+%\setdefaultleftmargin{\indentionLevelValuei em}{\indentionLevelValueii em}{\indentionLevelValueiii em}{\indentionLevelValueiiii em}{\indentionLevelValueiiiii em}{\indentionLevelValueiiiiii em}
+\setbeamersize{description width=\indentionLevelValuei em} % the description environment needs special treatment