diff options
Diffstat (limited to 'macros/latex/contrib/modernposter/modernposter.cls')
-rw-r--r-- | macros/latex/contrib/modernposter/modernposter.cls | 221 |
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} +} |