summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/modernposter/modernposter.cls
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/modernposter/modernposter.cls')
-rw-r--r--macros/latex/contrib/modernposter/modernposter.cls221
1 files changed, 221 insertions, 0 deletions
diff --git a/macros/latex/contrib/modernposter/modernposter.cls b/macros/latex/contrib/modernposter/modernposter.cls
new file mode 100644
index 0000000000..f8a66b1e57
--- /dev/null
+++ b/macros/latex/contrib/modernposter/modernposter.cls
@@ -0,0 +1,221 @@
+% modernposter.cls
+%
+% This file is part of the modernposter LaTeX template
+%
+% Version 1.03.1 2018/04/03
+%
+% Copyright 2018 David Derler and other contributors. A list of contributors
+% can be found at https://github.com/derlerd/modernposter/graphs/contributors
+%
+% This work is licensed under the Creative Commons Attribution-ShareAlike 4.0
+% International license (cf. https://creativecommons.org/licenses/by-sa/4.0/)
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesClass{modernposter}[2018/04/03 v1.03.1 A modern LaTeX poster template. Color scheme inspired by metropolis beamer theme.]
+
+\LoadClass[portrait]{a0poster}
+
+%------------------------------------------------------------------------------
+% Color definitions
+%------------------------------------------------------------------------------
+\RequirePackage{xcolor}
+
+\definecolor{mDarkTeal}{HTML}{23373b}
+\definecolor{mDarkBrown}{HTML}{604c38}
+
+%------------------------------------------------------------------------------
+% Options
+%------------------------------------------------------------------------------
+\RequirePackage{pgfkeys}
+\RequirePackage{pgfopts}
+
+
+\pgfkeys{/modernposter/.cd,
+ hlcolor/.store in=\modernposter@hlcolor,
+ logo/.store in=\modernposter@logo,
+ hlcolor=FF8000}
+
+\ProcessPgfOptions{/modernposter}
+
+\pgfkeys{/modernposter/.cd,
+ logo/.code={\def\@logotrue{}},
+ helvet/.code={\def\@helvettrue{}},
+}
+
+\ProcessPgfOptions{/modernposter}
+
+\definecolor{hlcol}{HTML}{\modernposter@hlcolor}
+
+\newcommand{\highlight}[1]{\textcolor{hlcol}{#1}}
+
+%------------------------------------------------------------------------------
+% Lengths and sizes
+%------------------------------------------------------------------------------
+\RequirePackage{relsize}
+
+\newlength{\colheight}
+\newlength{\colwidth}
+\newlength{\coltextwidth}
+\newlength{\colsep}
+\newlength{\boxheight}
+\newlength{\boxlinewidth}
+
+%------------------------------------------------------------------------------
+% Tikz stuff
+%------------------------------------------------------------------------------
+\RequirePackage{tikz}
+\usetikzlibrary{positioning, backgrounds, shapes.misc}
+
+%------------------------------------------------------------------------------
+% Style
+%------------------------------------------------------------------------------
+\RequirePackage{enumitem}
+\RequirePackage{fontawesome}
+\RequirePackage{sfmath}
+\setlength{\itemindent}{10in}
+\setlist[itemize]{leftmargin=1in}
+\setlist[enumerate]{leftmargin=1in}
+
+\let\oldparboxrestore\@arrayparboxrestore
+\renewcommand{\@arrayparboxrestore}{
+ \oldparboxrestore
+ \parskip0.4em
+ }
+
+\let\faiconold\faicon
+\renewcommand{\faicon}[1]{{\rmfamily \faiconold{#1}}}
+
+\renewcommand{\labelitemi}{$\bullet$~~}
+\renewcommand{\labelitemii}{\faicon{angle-right}~~}
+
+\ifdefined\@helvettrue
+ \RequirePackage{helvet}
+ \renewcommand\familydefault{\sfdefault}
+\else
+ \RequirePackage[light,sfdefault]{FiraSans}
+\fi
+
+
+%------------------------------------------------------------------------------
+% Begin/End Document commands
+%------------------------------------------------------------------------------
+\RequirePackage{etoolbox}
+\AfterEndPreamble{
+ \setlength{\colheight}{111.6em}
+ \setlength{\colwidth}{\dimexpr0.4525\linewidth\relax}
+ \setlength{\coltextwidth}{\dimexpr\colwidth-2em\relax}
+ \setlength{\colsep}{\dimexpr0.01\linewidth\relax}
+ \setlength{\boxheight}{\dimexpr0.33\colheight\relax}
+ \setlength{\boxlinewidth}{1mm}
+ \begin{tikzpicture}[remember picture,
+ overlay,
+ every node/.style={inner sep=0,outer sep=0}]
+}
+
+\AtBeginDocument{
+ \ifdefined\@helvettrue\else
+ \def\bfseries@sf{m}
+ \SetSymbolFont{operators}{normal}{\math@encoding}{\math@sfdefault}{l}{n}
+ \SetSymbolFont{operators}{bold}{\math@encoding}{\math@sfdefault}{m}{n}
+ \DeclareSymbolFont{SFMath}{\math@encoding}{\math@sfdefault}{l}{sl}
+ \SetSymbolFont{SFMath}{normal}{\math@encoding}{\math@sfdefault}{l}{sl}
+ \SetSymbolFont{SFMath}{bold}{\math@encoding}{\math@sfdefault}{m}{\mathnormal@bold@shape}
+ \fi
+}
+
+\AtEndDocument{
+ \end{tikzpicture}
+}
+
+%------------------------------------------------------------------------------
+% Title commands
+%------------------------------------------------------------------------------
+\RequirePackage[hidelinks]{hyperref}
+
+\def\@email{}
+\newcommand{\email}[1]{\def\@email{#1}}
+
+\renewcommand{\maketitle}{
+ \node[text height=\paperheight,
+ text width=\paperwidth,
+ fill=black!10,
+ anchor=north west] at (current page.north west)
+ {};
+ \node[text height=15em,
+ text width=\paperwidth-15em,
+ fill=mDarkTeal,
+ anchor=north west] (header) at (current page.north west)
+ {};
+ \node[text width=\paperwidth,
+ text height=0.15em,
+ fill=hlcol,
+ yshift=-15em] (sep) at (current page.north)
+ {};
+ \ifdefined\@logotrue
+ \node[anchor=center,
+ xshift=7.5em] (logo) at (header.east)
+ {\includegraphics[width=13em, height=13em, keepaspectratio]{\modernposter@logo}};
+ \fi
+ \node[anchor=east,
+ yshift=3.4em,
+ xshift=-2.5em] (title) at (header.east)
+ {\veryHuge \color{white} \bf \@title};
+ \node[anchor=east,
+ yshift=-0.8em,
+ xshift=-2.5em] (authors) at (header.east)
+ {\veryHuge\smaller\smaller \color{white} \bf \@author};
+ \node[anchor=east,
+ yshift=-4.3em,
+ xshift=-2.5em] (email) at (header.east)
+ {\veryHuge\smaller\smaller \color{white} \bf\tt \href{mailto:\@email}{\@email}};
+}
+
+%------------------------------------------------------------------------------
+% Poster commands
+%------------------------------------------------------------------------------
+\RequirePackage{environ}
+
+\newcounter{numcols}
+\NewEnviron{postercolumn}{
+ \ifnum\value{numcols}=0
+ \node[text width=\colwidth,
+ xshift=4em,
+ below=3em of sep.west,
+ anchor=north west] (col1)
+ {~\\[\colsep]\BODY};
+ \else
+ \node[text width=\colwidth,
+ xshift=\colsep,
+ anchor=north west] at (col1.north east)
+ {~\\[\colsep]\BODY};
+ \fi
+ \stepcounter{numcols}
+}
+
+\newcommand{\posterbox}[3][\boxheight]{
+ \begin{tikzpicture}
+ \node[text width=\colwidth,
+ minimum height=#1,
+ rounded corners,
+ line width=\boxlinewidth,
+ draw=mDarkTeal,
+ fill=black!2] (content)
+ {};
+ \node[anchor=north west,
+ yshift=-6.2em,
+ xshift=1em] at (content.north west)
+ {\Large\parbox{\coltextwidth}{#3~}};
+ \node[text width=\colwidth,
+ fill=mDarkTeal,
+ text depth=1.4em,
+ text height=4em,
+ rounded corners,
+ align=center,
+ anchor=north west] (heading) at (content.north west)
+ {\Huge{\color{white} ~~\bf #2}};
+ \end{tikzpicture}\\[\colsep]
+}
+
+\newcommand{\doubleposterbox}[5][0.6]{
+ \posterbox[#1\boxheight]{#2}{#3}
+ \posterbox[\boxheight-#1\boxheight-\colsep-1.33\boxlinewidth]{#4}{#5}
+}