% Rolf Niepraschk, Rolf.Niepraschk@ptb.de \setcounter{errorcontextlines}{100} \listfiles \NeedsTeXFormat{LaTeX2e}[1999/12/01] \ProvidesClass{ptbposter}[2022/09/21 1.0.2 PTB-Poster (RN)] \newif\ifPTB@useCMYK \PTB@useCMYKfalse % vorerst \newif\ifPTB@german@ \PTB@german@true \newdimen\PTB@topmargin % Abstand zum Rahmen \newdimen\PTB@leftmargin % Abstand zum Rahmen \newdimen\PTB@default@fontsize@base % Bezugsgröße für Standardschriftgröße im Textbereich \newdimen\PTB@default@title@fontsize@base % Bezugsgröße für Standardschriftgröße im Titel \newdimen\PTB@default@fsize % Standardschriftgröße im Textbereich (\normalsize) \newdimen\PTB@default@title@fontsize % Standardschriftgröße für den Titel \newdimen\PTB@default@author@fontsize % Standardschriftgröße für die Autoren \newdimen\PTB@default@foot@fontsize % Standardschriftgröße im Fußbereich \newdimen\PTB@texthsep % Abstand Textbereich zum blauen Rahmen \newdimen\PTB@textvsep % Abstand Textbereich zum blauen Rahmen \newdimen\PTB@framewidth % Breite des blauen Rahmens \newdimen\PTB@frameheight % Höhe des blauen Rahmens \newdimen\PTB@framethickness % Dicke des blauen Rahmens \newdimen\PTB@scale@base % Bezugsgröße für papierabhängige Größenberechnung \newdimen\PTB@maxtitleheight % Maximale Höhe des Titels \newcommand*\authorFontSize{} \newcommand*\footFontSize{} \newcommand*\titleFontSize{} \newcommand*\backgroundContent{} \newcommand\PTB@tempa{} \newcommand\PTB@tempb{} \newcommand\PTB@tempc{} \newcommand\PTB@tempd{} \newcommand\PTB@tempe{} \newcommand\PTB@tempf{} \newdimen\PTB@tempdima \newdimen\PTB@tempdimb \newdimen\PTB@tempdimc \newdimen\PTB@tempdimd \newcounter{PTB@tempcnta} \newcounter{PTB@tempcntb} \newbox\PTB@tempboxa \newif\ifPTBlandscape \PTBlandscapefalse \newif\ifSERIF \SERIFfalse \newif\ifMATHSERIF \MATHSERIFfalse \newif\ifFIRA \FIRAfalse \newif\ifPTB@logo@long@ \PTB@logo@long@true \PassOptionsToPackage{pagesize=false}{typearea} \PassOptionsToPackage{paper=a0paper,onecolumn,portrait,driver=none}{geometry} \newcommand*\PTB@title@justification{\relax} \newcommand*\PTB@authors@justification{\relax} \newcommand*\PTB@title@series{\relax} \newcommand*\PTB@layout{} \newcommand*\PTB@target@size{} \DeclareOption{sanserif}{% noch experimentell! Besser: LuaTeX/XeTeX + OTF \SERIFfalse } \DeclareOption{serif}{% \SERIFtrue } \DeclareOption{mathsanserif}{% \MATHSERIFfalse } \DeclareOption{mathserif}{% \MATHSERIFtrue } \DeclareOption{fira}{% \FIRAtrue } \DeclareOption{boldTitle}{% \global\let\PTB@title@series=\bfseries } \DeclareOption{centerTitle}{% \global\let\PTB@title@justification=\centering } \DeclareOption{raggedTitle}{% \global\let\PTB@title@justification=\raggedright } \DeclareOption{centerAuthors}{% \global\let\PTB@authors@justification=\centering } \DeclareOption{a4paper}{% \def\PTB@target@size{a4} } \DeclareOption{a3paper}{% \def\PTB@target@size{a3} } \DeclareOption{a2paper}{% \def\PTB@target@size{a2} } \DeclareOption{a1paper}{% \def\PTB@target@size{a1} } \DeclareOption{a0paper}{% \let\PTB@target@size=\@empty } \DeclareOption{landscape}{% \PTBlandscapetrue \PassOptionsToPackage{\CurrentOption}{geometry} } \DeclareOption{portrait}{% \PTBlandscapefalse \PassOptionsToPackage{\CurrentOption}{geometry} } \DeclareOption{shortPTBlogo}{% \PTB@logo@long@false } \DeclareOption{layout2018}{% \def\PTB@layout{0}% } \DeclareOption{layout2020}{% \def\PTB@layout{1}% } \DeclareOption*{\PassOptionsToPackage{\CurrentOption}{babel}} \ExecuteOptions{serif,raggedTitle,layout2020} \ProcessOptions\relax % The default language should be `ngerman', `english' should also be present. \def\@tempa{english}\def\@tempb{english,ngerman} \@for\CurrentOption:=\@classoptionslist\do{% \ifx\CurrentOption\@tempa \def\@tempb{ngerman}% Only add `english' if not already present. \fi }% \edef\@classoptionslist{\@tempb,\@classoptionslist} \LoadClass{scrartcl} \RequirePackage[verbose]{geometry}% \@ifundefined{changefontsizes}{% \ClassError{ptbposter}{% Deine Version von KOMA-Script ist ungeeignet (vermutlich stark veraltet)! }{% Installiere die aktuelle Version von KOMA-Script. }% }{} \ifx\PTB@target@size\@empty\else \RequirePackage{blowup}[2022/09/19] \ClassNoteNoLine{ptbposter}{% Scaling the sheet from size `a0' to size `\PTB@target@size'}% \ifPTBlandscape \blowUp{target=\PTB@target@size,landscape} \else \blowUp{target=\PTB@target@size} \fi \fi \iftutex% LuaTeX oder XeTeX \input{ptbposter-new-engines.clo} \else \input{ptbposter-old-engines.clo} \fi \let\eth=\relax \RequirePackage{amsmath,array,ragged2e} \RequirePackage[dvipsnames,svgnames,x11names]{xcolor} \RequirePackage{multicol,graphicx} \ifxetex\else \RequirePackage[% ,factor=1500 ,protrusion=true ,expansion=true ,verbose=true ,final=true ,letterspace=100 ,babel=true ]{microtype} \fi \providecommand*\microtypesetup[1]{} \RequirePackage{babel} \AtEndOfClass{% \shorthandon{"}% \PTB@german@false \iflanguage{ngerman}{\PTB@german@true}{% \iflanguage{german}{\PTB@german@true}{}% } \if@tempswa \defineshorthand{"`}{\guillemotright}% \defineshorthand{"'}{\guillemotleft}% \fi \RequirePackage[final,pdfpagelabels=false,% plainpages=false,hypertexnames=true,hyperfootnotes=false]{hyperref}% } \RequirePackage [autostyle=true,german=guillemets,maxlevel=3]{csquotes}% \newcommand*\PTB@qrcode{} \newcommand*\QRcode[1]{\gdef\PTB@qrcode{#1}} \newcommand*\PTB@location{38116~Braunschweig} \newcommand*\location[1]{\gdef\PTB@location{#1}} \newcommand*\PTB@street{Bundesallee~100} \newcommand*\street[1]{\gdef\PTB@street{#1}} \newcommand*\PTB@workingGroup{Arbeitsgruppe} \newcommand*\workingGroup[1]{\gdef\PTB@workingGroup{#1}} \newcommand*\PTB@department{Fachbereich} \newcommand*\department[1]{\gdef\PTB@department{#1}} \newcommand*\PTB@phone{} \newcommand*\phone[1]{\gdef\PTB@phone{#1}} \newcommand*\PTB@email{} \newcommand*\email[1]{\gdef\PTB@email{#1}} \newcommand*\PTB@fax{} \newcommand*\fax[1]{\gdef\PTB@fax{#1}} \newcommand*\PTB@logo{} \newcommand*\logo[1]{\gdef\PTB@logo{#1}} \ifPTB@useCMYK \definecolor{PTBcolor}{cmyk}{1,0.32549,0.12549,0.12549} % icc:model: Europe ISO Coated FOGRA27 \else %%%\definecolor{PTBcolor}{rgb}{0,0.67451,0.87451} %%%\definecolor{PTBcolor}{HTML}{00ACDF} \definecolor{PTBcolor}{RGB}{0,155,206}% 2019 \fi % == Emulieren einiger eso-pic-Befehle, um den Inhalt skalierbar zu machen == %%% TODO: eso-pic ändern? \RequirePackage{atbegshi} \newcommand\PTB@AtBeginShipoutUpperLeft[1]{% \AtBeginShipout{\AtBeginShipoutUpperLeft{#1}}% } \newcommand\PTB@AtBeginShipoutUpperLeftForeground[1]{% \AtBeginShipout{\AtBeginShipoutUpperLeftForeground{#1}}% } \newcommand\PTB@AddToShipoutPictureBG{% \@ifstar{\PTB@AtBeginShipoutUpperLeft}% {\PTB@AtBeginShipoutUpperLeft}% } \newcommand\PTB@AddToShipoutPictureFG{% \@ifstar{\PTB@AtBeginShipoutUpperLeftForeground}% {\PTB@AtBeginShipoutUpperLeftForeground}% } \newcommand\PTB@AtPageUpperLeft[1]{% \put(0,0){#1}% } \newcommand\PTB@AtPageLowerLeft[1]{% \put(0,-\paperheight){#1}% } \newcommand\PTB@AtPageCenter[1]{\PTB@AtPageUpperLeft{% \put(.5\paperwidth,-.5\paperheight){#1}}% } \newcommand\PTB@AtTextUpperLeft[1]{% \begingroup \@tempdima=1in\relax \if@twoside \ifodd\c@page \advance\@tempdima\oddsidemargin \else \advance\@tempdima\evensidemargin \fi \else \advance\@tempdima\oddsidemargin \fi \@tempdimb=-1in\relax \advance\@tempdimb-\topmargin \advance\@tempdimb-\headheight \advance\@tempdimb-\headsep \PTB@AtPageUpperLeft{% \put(\@tempdima,\@tempdimb){#1}% }% \endgroup } \newcommand\PTB@AtTextLowerLeft[1]{% \PTB@AtTextUpperLeft{\put(0,-\textheight){#1}}% } % -------------------------------------------------------------------- \RequirePackage{pict2e,picture,ifdraft,booktabs} \RequirePackage{varwidth,qrcode} % ===== Behandlung der Autoren (siehe ptb-abstracts.sty ) ===== \newcommand*\first@author{} \def\author#1{} \def\@author{} \renewcommand\footnotetext[2][]{% \textsuperscript{#1}\,#2\\ } \newcommand\PTB@dec@footnotemark[1][]{% \addtocounter{footnote}{-1}% \begingroup \edef\PTB@tempa{#1}% \ifx\PTB@tempa\@empty\footnotemark\else\footnotemark[#1]\fi \endgroup } \newcommand\PTB@fnmark[1]{% \begingroup \unrestored@protected@xdef\@thefnmark{#1}% \endgroup \@footnotemark} \newcommand\PTB@isnum[1]{% \if!\ifnum9<1#1!\else_\fi\expandafter\@firstoftwo \else\expandafter\@secondoftwo\fi}% \newcommand\Author{% \begingroup \@ifstar{\@tempswatrue\@Author}{\@tempswafalse\@Author}} \newcommand\@Author[2][]{% \PTB@tempf=[!],\PTB@tempb={Firstname} \def\PTB@tempf{#1}\def\PTB@tempb{#2}% TODO: ggf. weiterer Optionen in #1 \@@Author} \newcommand\@@Author[2][]{% \PTB@tempc=[alt. Firstname],\PTB@tempd={Surname} \def\PTB@tempc{#1}\def\PTB@tempd{#2}% TODO: \PTB@tempc unsinnig, oder? \@@@Author} \newcommand\@@@Author[1][]{% \PTB@tempe=[Address] \def\PTB@tempe{#1}% \ifx\PTB@tempd\@empty % Empty Surname = Addition to the previous author \g@addto@macro\@author{\PTB@fnmark{,}}% TODO: ??? \else \ifx\@author\@empty \xdef\@author{\PTB@tempb~\PTB@tempd}% \xdef\first@author{\PTB@tempb~\PTB@tempd}% \else \expandafter\g@addto@macro\expandafter\@author \expandafter{\expandafter\and\PTB@tempb~}% \expandafter\g@addto@macro\expandafter\@author \expandafter{\PTB@tempd}% I like it ;-( \fi \fi \if@tempswa % --> \Author* \g@addto@macro\@author{\PTB@dec@footnotemark}% \fi \def\reserved@a{!}% \ifx\PTB@tempf\reserved@a \xdef\first@author{\PTB@tempb~\PTB@tempd}% alternat. first author \fi \ifx\PTB@tempa\@empty\else \expandafter\g@addto@macro\expandafter\@author \expandafter{\expandafter\PTB@fnmark\expandafter{\PTB@tempa}}% \fi \ifx\PTB@tempe\@empty\else \if@tempswa \g@addto@macro\@author{\PTB@fnmark{,}}% \fi \PTB@isnum{\PTB@tempe}{% \expandafter\g@addto@macro\expandafter\@author% \expandafter{\expandafter\PTB@fnmark\expandafter{\PTB@tempe}}% }{% \expandafter\g@addto@macro\expandafter\@author% \expandafter{\expandafter\thanks\expandafter{\PTB@tempe}}% }% \fi \endgroup } \let\PTB@thanks\thanks \renewcommand\thanks[2][]{% \begingroup \def\PTB@tempa{#2}% \ifx\PTB@tempa\@empty \footnotemark[\value{footnote}]% \else \PTB@thanks{#2}% \fi \endgroup }% %\renewcommand*\labelitemi{\textbullet} %\renewcommand*\labelitemii{\Huge$\m@th\circ$} %\renewcommand*\labelitemii{\textasteriskcentered} %\renewcommand*\labelitemii{\textperiodcentered} %\renewcommand*\labelitemii{$\m@th\diamond$} %\renewcommand*\labelitemii{$\m@th\triangleright$}% \ifdim\paperheight>\paperwidth \setlength\PTB@scale@base{\paperheight} \PTBlandscapefalse \else \setlength\PTB@scale@base{\paperwidth} \PTBlandscapetrue \fi \RequirePackage{relsize}% ??? \renewcommand*\RSpercentTolerance{0}% \renewcommand*\RSlargest{5000pt}% important! \renewcommand*\RSsmallest{0pt} \newcommand*\scaleFontSizes[1]{% \global\PTB@default@fsize=#1\PTB@default@fontsize@base } \@onlypreamble\scaleFontSizes \newcommand*\scaleTitleFontSize[1]{% \global\PTB@default@title@fontsize=#1\PTB@default@title@fontsize@base } \@onlypreamble\scaleTitleFontSize \setlength\PTB@default@title@fontsize{0.0315101893474\PTB@scale@base}% 106.6pt bei A0 \newcommand*\PTB@scaleTitleFontSize[1]{% \PTB@tempdima=\PTB@default@title@fontsize \PTB@tempdima=#1\PTB@tempdima \PTB@tempdimb=1.14\PTB@tempdima \xdef\titleFontSize{\noexpand\@setfontsize \noexpand\titleFontSize{\the\PTB@tempdima}{\the\PTB@tempdimb}}% } \def\authorFontSize{\@setfontsize\authorFontSize{% \PTB@default@author@fontsize}{1.2\PTB@default@author@fontsize}} \def\footFontSize{\@setfontsize\footFontSize{% \PTB@default@foot@fontsize}{1.2\PTB@default@foot@fontsize}} \newcommand*\scaleFont[1]{% \PTB@tempdima=\f@size pt \PTB@tempdima=#1\PTB@tempdima \PTB@tempdimb=\f@baselineskip \PTB@tempdimb=#1\PTB@tempdimb \edef\f@size{\strip@pt\PTB@tempdima}% \edef\f@baselineskip{\the\PTB@tempdimb}% \fontsize{\f@size}{\f@baselineskip}% \selectfont } \ifcase \PTB@layout % 0 \input{ptbposter-2018.clo} \or % 1 \input{ptbposter-2020.clo} \fi \scaleFontSizes{1}% wird ggf. in Präambel noch mal geändert. \scaleTitleFontSize{1}% wird ggf. in Präambel noch mal geändert. \AtEndPreamble{% % Skalierungen in der Präambel sind passiert. \changefontsizes{\the\PTB@default@fsize}% \KOMAoptions{headings=normal,parskip=half} \normalsize \setlength\PTB@texthsep{0.0062164016879\PTB@scale@base}% 21.03029pt (A0) \setlength\PTB@textvsep{\PTB@texthsep}% 21.03029pt (A0) \setlength\PTB@maxtitleheight{0.057\PTB@scale@base}% \setlength\PTB@framethickness{0.00168208578994\PTB@scale@base}% \setlength\fboxsep{0.00355\PTB@scale@base} % 3pt (A4), 12pt (A0) \setlength\fboxrule{0.0004722\PTB@scale@base}% 0.4pt (A4), 1.6pt (A0) \setlength\PTB@leftmargin{0.5\dimexpr\paperwidth-\PTB@framewidth}% \PTB@tempdima=\dimexpr\PTB@leftmargin+\PTB@texthsep % \geometry{% verbose, top=\dimexpr\PTB@topmargin+\PTB@textvsep,% left=\PTB@tempdima, right=\PTB@tempdima, textheight=\dimexpr\PTB@frameheight-2\PTB@textvsep,% columnsep=1.5em,hcentering} \setlength\emergencystretch{3em}% \@ifpackageloaded{multicol}{% \def\setemergencystretch#1#2{}% }{}% \RequirePackage{enumitem} \setlist{leftmargin=.6em,labelsep=.3em,nosep,topsep=.5em,itemsep=.25em} \setlist[1]{labelindent=1em} } \KOMAoptions{captions=oneline} \newcommand*\ptb@figure{% \trivlist\item\relax \minipage{\linewidth}% \def\@captype{figure}% } \newcommand*\ptb@table{% \trivlist\item\relax \minipage{\linewidth}% \def\@captype{table}% } \newcommand*\ptb@endfigtab{% \endminipage \endtrivlist } \renewenvironment{figure}[1][]{% \ptb@figure }{\ptb@endfigtab} \renewenvironment{figure*}[1][]{% \ptb@figure }{\ptb@endfigtab} \renewenvironment{table}[1][]{% \ptb@table }{\ptb@endfigtab} \renewenvironment{table*}[1][]{% \ptb@table }{\ptb@endfigtab} \addtokomafont{caption}{\small} \addtokomafont{captionlabel}{\sffamily\bfseries} \setcapindent{1em} %\setcapwidth[l]{\linewidth} \AtBeginDocument{% \RedeclareSectionCommand[% style=section,% level=1,% indent=\z@,% beforeskip=-2ex \@plus -1ex \@minus -.2ex,% afterskip=0.4ex \@plus.2ex,% tocindent=0pt,% tocnumwidth=1.5em% ]{section} \RedeclareSectionCommand[% style=section,% level=2,% indent=\z@,% beforeskip=-1.2ex\@plus -1ex \@minus -.2ex,% afterskip=0.1ex \@plus .2ex,% tocindent=1.5em,% tocnumwidth=2.3em% ]{subsection} \RedeclareSectionCommand[% style=section,% level=3,% indent=\z@,% beforeskip=-1.2ex\@plus -1ex \@minus -.2ex,% afterskip=0.1ex \@plus .2ex,% tocindent=3.8em,% tocnumwidth=3.2em% ]{subsubsection} \RedeclareSectionCommand[% style=section,% level=4,% indent=\z@,% beforeskip=1.2ex \@plus1ex \@minus.2ex,% afterskip=-1em,% tocindent=7.0em,% tocnumwidth=4.1em% ]{paragraph} \RedeclareSectionCommand[% style=section,% level=5,% indent=\scr@parindent,% beforeskip=1.2ex \@plus1ex \@minus .2ex,% afterskip=-1em,% tocindent=10em,% tocnumwidth=5em% ]{subparagraph} } % non-floating figure/table \renewenvironment{figure}[1][]{% \def\@captype{figure}% \par\nobreak} {\par\nobreak} \renewenvironment{table}[1][]{% \def\@captype{table}% \par\nobreak} {\par\nobreak} \let\bib@heading=\relax % no head line for bibliography (\refname) \setcounter{secnumdepth}{-2} \renewcommand*\maketitle[1][1]{} \renewcommand*\tableofcontents{} \pagestyle{empty} \raggedbottom \endinput