diff options
author | Karl Berry <karl@freefriends.org> | 2012-10-24 23:26:56 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2012-10-24 23:26:56 +0000 |
commit | 26a54db94560dd44a149728ce558d1882d9f6beb (patch) | |
tree | a046dc146764e8fe388170e29a8371695f5da5f4 /Master/texmf-dist/tex/latex/tikzposter | |
parent | a9ba2a0633d4ead6ecf5ad4ba56e5dc3e386fc5b (diff) |
new package tikzposter (24oct12)
git-svn-id: svn://tug.org/texlive/trunk@28066 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/tikzposter')
-rw-r--r-- | Master/texmf-dist/tex/latex/tikzposter/tikzposter.cls | 454 |
1 files changed, 454 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/tikzposter/tikzposter.cls b/Master/texmf-dist/tex/latex/tikzposter/tikzposter.cls new file mode 100644 index 00000000000..8fa0780fe31 --- /dev/null +++ b/Master/texmf-dist/tex/latex/tikzposter/tikzposter.cls @@ -0,0 +1,454 @@ +%% +%% This is file `tikzposter.cls', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% tikzposter.dtx (with options: `tikzposter.cls') +%% +%% This is a generated file. +%% +%% Copyright (C) 2012 by Pascal Richter and Richard Barnard +%% +%% This file may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either +%% version 1.2 of this license or (at your option) any later +%% version. The latest version of this license is in: +%% +%% http://www.latex-project.org/lppl.txt +%% +%% and version 1.2 or later is part of all distributions of +%% LaTeX version 2012/09/01 or later. +%% + + + +\NeedsTeXFormat{LaTeX2e} +\ProvidesClass{tikzposter}[2012/09/01 v1.0 LaTeX document class for Posters] + + % Loading Packages +\usepackage{xkeyval} +\usepackage{calc} +\usepackage{ifthen} +\usepackage{ae} +\usepackage{xstring} +\usepackage{etoolbox} +\usepackage{tikz} + \usetikzlibrary{shapes,decorations,shadows,backgrounds,calc,fadings} + \usepgflibrary{arrows} + + % Parameter +\def\@institute{~} +\newif\ifTP@showlatexaffectionproof +\newdimen\TP@innermargin +\newdimen\TP@visibletextwidth +\newdimen\TP@visibletextheight +\newif\ifTP@IsBlockWithTitle +\newif\ifTP@hugefontsize + % Title parameter +\newdimen\TP@titleinnersep +\newdimen\TP@titletoblockverticalspace +\newdimen\TP@titlewidth +\def\TP@titleleftfig{} +\def\TP@titlerightfig{} +\newdimen\TP@titleleftfigheight{} +\newdimen\TP@titlerightfigheight{} +\newdimen\TP@titleleftfigwidth{} +\newdimen\TP@titlerightfigwidth{} +\newif\ifTP@titleHasLeftFig +\newif\ifTP@titleHasRightFig +\newif\ifTP@titleIsEmbedded +\newif\ifTP@titleIsSeparated + % Block parameter +\newdimen\TP@blockverticalspace +\newdimen\TP@blocktop +\newdimen\TP@blockbottom +\newdimen\TP@blockcenter +\newdimen\TP@blockwidth +\newif\ifTP@blockHasVariableWidth +\newdimen\TP@blockbodyinnersep +\newbox\TP@blocktitlebox +\newdimen\TP@blocktitleinnersep +\newdimen\TP@blocktitleheight +\newdimen\TP@blocktitletobodydist +\def\TP@blocktitleratio{} +\newdimen\TP@blocktitlewidth +\newdimen\TP@blocktitlemaxwidth +\newif\ifTP@blocktitleLeft +\newif\ifTP@blocktitleCenter +\newif\ifTP@blocktitleRight + % Column parameter +\newif\ifTP@columnEnvironment +\newif\ifTP@subcolumnEnvironment +\newdimen\TP@colspace +\newdimen\TP@coltop +\newdimen\TP@colbottom +\newdimen\TP@colcenter +\newdimen\colwidth +\newdimen\TP@subcolspace +\newdimen\TP@subcoltop +\newdimen\TP@subcolbottom +\newdimen\TP@subcolcenter +\newdimen\subcolwidth + + % Declaring options +\DeclareOptionX{12pt}{\TP@hugefontsizefalse \PassOptionsToClass{\CurrentOption}{extarticle}} +\DeclareOptionX{14pt}{\TP@hugefontsizefalse \PassOptionsToClass{\CurrentOption}{extarticle}} +\DeclareOptionX{17pt}{\TP@hugefontsizefalse \PassOptionsToClass{\CurrentOption}{extarticle}} +\DeclareOptionX{20pt}{\TP@hugefontsizefalse \PassOptionsToClass{\CurrentOption}{extarticle}} +\DeclareOptionX{25pt}{\TP@hugefontsizetrue} +\DeclareOptionX{fleqn}{\PassOptionsToClass{\CurrentOption}{extarticle}} +\DeclareOptionX{leqno} {\PassOptionsToClass{\CurrentOption}{extarticle}} +\DeclareOptionX{a0paper}{\PassOptionsToPackage{\CurrentOption}{geometry}} +\DeclareOptionX{a1paper}{\PassOptionsToPackage{\CurrentOption}{geometry}} +\DeclareOptionX{a2paper}{\PassOptionsToPackage{\CurrentOption}{geometry}} +\DeclareOptionX{landscape}{\PassOptionsToPackage{\CurrentOption}{geometry}} +\DeclareOptionX{portrait}{\PassOptionsToPackage{\CurrentOption}{geometry}} +\DeclareOptionX{margin}[20mm]{\PassOptionsToPackage{margin=#1}{geometry}} +\DeclareOptionX{innermargin}{\TP@innermargin=#1} +\DeclareOptionX{titleinnersep}{\TP@titleinnersep=#1} +\DeclareOptionX{titletoblockverticalspace}{\TP@titletoblockverticalspace=#1} +\DeclareOptionX{blocktitleinnersep}{\TP@blocktitleinnersep=#1} +\DeclareOptionX{blocktitlewidthratio}{\def\TP@blocktitleratio{#1}} +\DeclareOptionX{blocktitlemaxwidth}{\TP@blocktitlemaxwidth=#1} +\DeclareOptionX{blockbodyinnersep}{\TP@blockbodyinnersep=#1} +\DeclareOptionX{blockverticalspace}{\TP@blockverticalspace=#1} +\DeclareOptionX{colspace}{\TP@colspace=#1} +\DeclareOptionX{subcolspace}{\TP@subcolspace=#1} +\DeclareOptionX*{{\PackageWarning{tikzposter}{Unknown Option \CurrentOption.}}} + + % Executing options +\ExecuteOptionsX{ + 25pt, + a0paper, + portrait, + margin=20mm, + innermargin=15mm, + titleinnersep=8mm, + titletoblockverticalspace=20mm, + blocktitleinnersep=8mm, + blocktitlewidthratio=0.8, + blocktitlemaxwidth=25cm, + blockbodyinnersep=8mm, + blockverticalspace=15mm, + colspace=15mm, + subcolspace=8mm +} +\ProcessOptionsX \relax +\LoadClass{extarticle} +\RequirePackage{geometry} +\ifTP@hugefontsize + \input{a0size.sty} + \renewcommand{\tiny}{\fontsize{12}{14}\selectfont} + \renewcommand{\scriptsize}{\fontsize{14.4}{18}\selectfont} + \renewcommand{\footnotesize}{\fontsize{17.28}{22}\selectfont} + \renewcommand{\small}{\fontsize{20.74}{25}\selectfont} + \renewcommand{\normalsize}{\fontsize{24.88}{30}\selectfont} + \renewcommand{\large}{\fontsize{29.86}{37}\selectfont} + \renewcommand{\Large}{\fontsize{35.83}{45}\selectfont} + \renewcommand{\LARGE}{\fontsize{43}{54}\selectfont} + \renewcommand{\huge}{\fontsize{51.6}{64}\selectfont} + \renewcommand{\Huge}{\fontsize{61.92}{77}\selectfont} +\fi +\normalsize +\pagestyle{empty} +\setlength{\TP@visibletextwidth}{\textwidth-2\TP@innermargin} +\setlength{\TP@visibletextheight}{\textheight-2\TP@innermargin} + + % Color themes +\input{./tikzposter-colorthemes} +\gdef\usecolortheme#1{ + \ifcsname TP@colortheme#1\endcsname + \csname TP@colortheme#1\endcsname % call macro + \else + \IfFileExists{#1.tex}{ + \input{#1.tex} % load tex file + }{ \PackageWarning{tikzposter}{Unknown colortheme `#1'.} } + \fi +} + + % TikZ layout styles +\input{./tikzposter-layoutstyles} +\tikzstyle{TP@tikzstylebackground} = [inner sep=0pt, line width=0pt, color=framecolor, shading=axis, + top color=backgroundcolortop, bottom color=backgroundcolorbottom, middle color=backgroundcolormiddle] + + % Macro to set TikZ layout style +\gdef\settitlebodystyle#1{ + \pgfkeys@ifcsname pgfk@/tikz/TP@tikzstyle#1/.@cmd\endcsname + \tikzstyle{TP@tikzstyletitlebody}=[TP@tikzstyle#1] + \else + \tikzstyle{TP@tikzstyletitlebody}=[#1] + \fi +} +\gdef\setblocktitlestyle#1{ + \pgfkeys@ifcsname pgfk@/tikz/TP@tikzstyle#1/.@cmd\endcsname + \tikzstyle{TP@tikzstyleblocktitle}=[TP@tikzstyle#1] + \else + \tikzstyle{TP@tikzstyleblocktitle}=[#1] + \fi +} +\gdef\setblockbodystyle#1{ + \pgfkeys@ifcsname pgfk@/tikz/TP@tikzstyle#1/.@cmd\endcsname + \tikzstyle{TP@tikzstyleblockbody}=[TP@tikzstyle#1] + \else + \tikzstyle{TP@tikzstyleblockbody}=[#1] + \fi +} + + % Title layout +\gdef\institute#1{\gdef\@institute{#1}} +\gdef\tikzposterlatexaffectionproofon{\TP@showlatexaffectionprooftrue} +\gdef\tikzposterlatexaffectionproofoff{\TP@showlatexaffectionprooffalse} +\gdef\maketitle{ + \vbox{ + \centering + \color{titlefgcolor} + {\bfseries \Huge \sc \@title} + \\[1em] {\huge \@author} + \\[1em] {\LARGE \@institute} + } \normalsize +} + + % Default document settings +\TP@colorthemedefault +\TP@showlatexaffectionprooftrue +\settitlebodystyle{rounded} +\setblocktitlestyle{rounded} +\setblockbodystyle{rounded} + + % Document environment +\AtBeginDocument{% + \begin{center} + \begin{tikzpicture} + \shadedraw[TP@tikzstylebackground] (-0.5\textwidth, -0.5\textheight) rectangle (0.5\textwidth, 0.5\textheight); +} + +\AtEndDocument{% + \ifTP@showlatexaffectionproof + \node[anchor=south east] at (0.5\textwidth, -0.5\textheight){\footnotesize \LaTeX~TikZposter class}; + \fi + \end{tikzpicture} + \end{center} +} + + % Columns environment +\newenvironment{columns}{ + \TP@columnEnvironmenttrue + \setlength{\TP@colcenter}{-0.5\TP@visibletextwidth-\TP@colspace-\TP@blockbodyinnersep} + \global\TP@colcenter=\TP@colcenter + \global\TP@coltop=\TP@blocktop + \global\TP@colbottom=\TP@blocktop + \colwidth=0pt +}{ + \TP@columnEnvironmentfalse + \global\TP@blocktop=\TP@colbottom +} + + % Column +\gdef\column#1{ % #1: relative width + \ifTP@columnEnvironment + \normalsize + \setlength{\TP@blocktop}{\TP@coltop} + \setlength{\TP@colcenter}{\TP@colcenter+0.5\colwidth+\TP@blockbodyinnersep+\TP@colspace+\TP@blockbodyinnersep} + \setlength{\colwidth}{#1\TP@visibletextwidth+#1\TP@colspace-\TP@colspace-2\TP@blockbodyinnersep} + \setlength{\TP@colcenter}{\TP@colcenter+0.5\colwidth} + \fi +} + + % Subcolumns environment +\newenvironment{subcolumns}{ + \ifTP@columnEnvironment + \TP@subcolumnEnvironmenttrue + \setlength{\TP@subcolcenter}{\TP@colcenter-0.5\colwidth-\TP@blockbodyinnersep-\TP@subcolspace-\TP@blockbodyinnersep} + \global\TP@subcolcenter=\TP@subcolcenter + \global\TP@subcoltop=\TP@blocktop + \global\TP@subcolbottom=\TP@blocktop + \subcolwidth=0pt + \fi +}{ + \TP@subcolumnEnvironmentfalse + \global\TP@blocktop=\TP@subcolbottom +} + + % Subcolumn +\gdef\subcolumn#1{ % #1: relative width + \ifTP@subcolumnEnvironment + \normalsize + \setlength{\TP@blocktop}{\TP@subcoltop} + \setlength{\TP@subcolcenter}{\TP@subcolcenter+0.5\subcolwidth+\TP@blockbodyinnersep+\TP@subcolspace+\TP@blockbodyinnersep} + \setlength{\subcolwidth}{#1\colwidth+#1\TP@blockbodyinnersep+#1\TP@blockbodyinnersep + +#1\TP@subcolspace-\TP@subcolspace-2\TP@blockbodyinnersep} + \setlength{\TP@subcolcenter}{\TP@subcolcenter+0.5\subcolwidth} + \fi +} + +\define@key{titleblock}{left fig}{\IfFileExists{#1}{ \TP@titleHasLeftFigtrue \def\TP@titleleftfig{#1}}{\TP@titleHasLeftFigfalse}} +\define@key{titleblock}{left fig height}{\setlength\TP@titleleftfigheight{#1}} +\define@key{titleblock}{right fig}{\IfFileExists{#1}{ \TP@titleHasRightFigtrue \def\TP@titlerightfig{#1}}{\TP@titleHasRightFigfalse}} +\define@key{titleblock}{right fig height}{\setlength\TP@titlerightfigheight{#1}} +\define@boolkey{titleblock}{embedded}[true]{\ifKV@titleblock@embedded \TP@titleIsEmbeddedtrue \else \TP@titleIsEmbeddedfalse \fi} +\define@boolkey{titleblock}{separated}[true]{\ifKV@titleblock@separated \TP@titleIsSeparatedtrue \else \TP@titleIsSeparatedfalse \fi} +\presetkeys{titleblock}{left fig=, left fig height=10em, right fig=, right fig height=10em, embedded=false, separated=false}{} + +\newcommand\titleblock[1][]{ + \normalsize + \setkeys{titleblock}{#1} % #1: keys + % Set title width + \ifTP@titleIsEmbedded + \setlength\TP@titlewidth{\textwidth-2\TP@titleinnersep} + \else + \setlength\TP@titlewidth{\TP@visibletextwidth-2\TP@titleinnersep} + % Draw non-embedded background + \shadedraw [TP@tikzstylebackground] (-0.5\textwidth, -0.5\textheight) rectangle (0.5\textwidth, 0.5\textheight); + \fi + % Set left figure width + \ifTP@titleHasLeftFig + \settowidth{\TP@titleleftfigwidth}{\includegraphics[height=\TP@titleleftfigheight]{\TP@titleleftfig}} + \else + \TP@titleleftfigwidth=0pt + \fi + % Set right figure width + \ifTP@titleHasRightFig + \settowidth{\TP@titlerightfigwidth}{\includegraphics[height=\TP@titlerightfigheight]{\TP@titlerightfig}} + \else + \TP@titlerightfigwidth=0pt + \fi + % Title node + \ifthenelse{\boolean{TP@titleIsEmbedded}}{ + \node[draw, inner sep=\TP@titleinnersep, line width=0pt, anchor=north, color=framecolor, + minimum width=\TP@visibletextwidth-2\TP@titleinnersep, shading=axis, + top color=embeddedtitlebgcolortop, bottom color=embeddedtitlebgcolorbottom] + (title) at (0, 0.5\textheight) + }{ + \node[TP@tikzstyletitlebody, inner sep=\TP@titleinnersep, anchor=north, color=framecolor, + shading=axis, top color=titlebgcolortop, bottom color=titlebgcolorbottom] + (title) at (0, 0.5\TP@visibletextheight) + } + % Content of the node + { + \begin{minipage}{\TP@titlewidth} + % Left logo + \ifTP@titleHasLeftFig + \begin{minipage}{\TP@titleleftfigwidth} + \includegraphics[height=\TP@titleleftfigheight]{\TP@titleleftfig} + \end{minipage}% + \fi + % Make non-separated title + \begin{minipage}{\TP@titlewidth-\TP@titleleftfigwidth-\TP@titlerightfigwidth} + \centering \ifTP@titleIsSeparated ~ \else \maketitle \fi + \end{minipage}% + % Right logo + \ifTP@titleHasRightFig + \begin{minipage}{\TP@titlerightfigwidth} + \includegraphics[height=\TP@titlerightfigheight]{\TP@titlerightfig} + \end{minipage}% + \fi + \end{minipage}% + }; + % Draw embedded background + \ifTP@titleIsEmbedded + \draw let \p1 = (title.south) in node {\global\TP@blockbottom=\y1}; + \shadedraw [TP@tikzstylebackground] (-0.5\textwidth, -0.5\textheight) rectangle (0.5\textwidth, \TP@blockbottom); + \fi + % Make separated title + \ifTP@titleIsSeparated + \node[anchor=north] (title) at ($(title.south)-(0em,2em)$){ + \begin{minipage}{\TP@visibletextwidth} + \maketitle + \end{minipage}};% + \fi + % Set parameter + \draw let \p1 = (title.south) in node { + \setlength{\TP@blocktop}{\y1-\TP@titletoblockverticalspace} + \global\TP@blocktop=\TP@blocktop + }; +} + + % Block +\define@boolkey{block}{l}[true]{\ifKV@block@l \TP@blocktitleLefttrue \TP@blocktitleCenterfalse \TP@blocktitleRightfalse \fi} +\define@boolkey{block}{c}[true]{\ifKV@block@c \TP@blocktitleLeftfalse \TP@blocktitleCentertrue \TP@blocktitleRightfalse \fi} +\define@boolkey{block}{r}[true]{\ifKV@block@r \TP@blocktitleLeftfalse \TP@blocktitleCenterfalse \TP@blocktitleRighttrue \fi} +\define@key{block}{width}{\TP@blockHasVariableWidthtrue \setlength{\TP@blockwidth}{#1}} +\presetkeys{block}{}{} + +\newcommand\block[3][]{ % #1 keys #2 title #3 text + % Reset parameter + \normalsize + \TP@blockHasVariableWidthfalse + \TP@blocktitleLeftfalse + \TP@blocktitleCentertrue + \TP@blocktitleRightfalse + % Set block width and center + \ifTP@subcolumnEnvironment + \TP@blockwidth=\subcolwidth + \TP@blockcenter=\TP@subcolcenter + \else + \ifTP@columnEnvironment + \TP@blockwidth=\colwidth + \TP@blockcenter=\TP@colcenter + \else + \setlength\TP@blockwidth{\TP@visibletextwidth-2\TP@blockbodyinnersep} + \TP@blockcenter=0pt + \fi + \fi + % Set block width and title alignment + \setkeys{block}{#1} + % Check if block title is given and set height of title + \ifstrempty{#2}{ + \TP@IsBlockWithTitlefalse + \setlength{\TP@blocktitleheight}{0pt} + }{ + \TP@IsBlockWithTitletrue + \setlength\TP@blocktitlewidth{\minof{\TP@blockwidth*\real{\TP@blocktitleratio}}{\TP@blocktitlemaxwidth}} + \setbox\TP@blocktitlebox=\hbox{ + \pgfinterruptpicture + \parbox{\TP@blocktitlewidth}{ \bf \LARGE \centering #2} + \endpgfinterruptpicture} + \TP@blocktitleheight=\ht\TP@blocktitlebox + \advance\TP@blocktitleheight by \dp\TP@blocktitlebox + \addtolength{\TP@blocktitleheight}{2\TP@blocktitleinnersep} + } + % Block body + \node[TP@tikzstyleblockbody, text width=\TP@blockwidth, inner sep=\TP@blockbodyinnersep, anchor=north, + color=framecolor, fill=blockbodybgcolor] (block) + at (\TP@blockcenter, \TP@blocktop-0.5\TP@blocktitleheight)% + { + \setlength{\TP@blocktitletobodydist}{0.5\TP@blocktitleheight} + \vskip\TP@blocktitletobodydist + {\large \color{blockbodyfgcolor}#3} + \normalsize + }; + % Block title (if it is given) + \ifTP@IsBlockWithTitle + % Set title alignment + \ifTP@blocktitleLeft + \node[TP@tikzstyleblocktitle, inner sep=\TP@blocktitleinnersep, color=framecolor, fill=blocktitlebgcolor, text=blocktitlefgcolor] + at ($(block.north)+(-\TP@blockwidth/2+\TP@blocktitlewidth/2+2em,0)$) {\box\TP@blocktitlebox \normalsize}; + \fi + \ifTP@blocktitleCenter + \node[TP@tikzstyleblocktitle, inner sep=\TP@blocktitleinnersep, color=framecolor, fill=blocktitlebgcolor, text=blocktitlefgcolor] + at (block.north) {\box\TP@blocktitlebox \normalsize}; + \fi + \ifTP@blocktitleRight + \node[TP@tikzstyleblocktitle, inner sep=\TP@blocktitleinnersep, color=framecolor, fill=blocktitlebgcolor, text=blocktitlefgcolor] + at ($(block.north)+(\TP@blockwidth/2-\TP@blocktitlewidth/2-2em,0)$) {\box\TP@blocktitlebox \normalsize}; + \fi + \fi + % Set parameter + \draw let \p1 = (block.south) in node { + \setlength{\TP@blocktop}{\y1-\TP@blockverticalspace} + \global\TP@blocktop=\TP@blocktop + }; + \ifTP@subcolumnEnvironment + \setlength{\TP@subcolbottom}{\minof{\TP@subcolbottom}{\TP@blocktop}} + \global\TP@subcolbottom=\TP@subcolbottom + \else + \ifTP@columnEnvironment + \setlength{\TP@colbottom}{\minof{\TP@colbottom}{\TP@blocktop}} + \global\TP@colbottom=\TP@colbottom + \fi + \fi +} +\endinput +%% +%% End of file `tikzposter.cls'. |