% Rolf Niepraschk, Rolf.Niepraschk@ptb.de \setcounter{errorcontextlines}{100} \listfiles \NeedsTeXFormat{LaTeX2e}[1999/12/01] \ProvidesClass{ptbposter} [2016/09/28 v0.4b PTB-Poster-Klasse (RN)] \newif\ifPTB@useCMYK \PTB@useCMYKfalse % vorerst \newdimen\PTB@topmargin % Abstand zum Rahmen \newdimen\PTB@leftmargin % Abstand zum Rahmen \newdimen\PTB@default@fsize@base % Bezugsgröße für Standardschriftgröße im Textbereich \newdimen\PTB@default@fsize % Standardschriftgröße im Textbereich (\normalsize) \newdimen\PTB@default@tfsize % Standardschriftgröße für den Titel \newdimen\PTB@default@afsize % Standardschriftgröße für die Autoren \newdimen\PTB@default@ffsize % 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@scale@base % Bezugsgröße für papierabhängige Größenberechnung \newcommand*\authorFontSize{} \newcommand*\footFontSize{} \newcommand*\titleFontSize{} \newcommand\PTB@tempa{} \newcommand\PTB@tempb{} \newcommand\PTB@tempc{} \newcommand\PTB@tempd{} \newcommand\PTB@tempe{} \newcommand\PTB@tempf{} \let\PTB@tempdima=\@ovxx \let\PTB@tempdimb=\@ovyy \let\PTB@tempdimc=\@ovdx \newcounter{PTB@tempcnta} \newcounter{PTB@tempcntb} \newif\ifPTB@landscape \PTB@landscapefalse \newif\ifPTB@XeOrLua \PTB@XeOrLuafalse \newif\ifPTB@serif \PTB@seriffalse \RequirePackage{ifluatex,ifxetex} \ifxetex\PTB@XeOrLuatrue\else\ifluatex\PTB@XeOrLuatrue\fi\fi \DeclareOption{sanserif}{% noch experimentell! Besser: luaTeX/xeTeX + OTF \PTB@seriffalse } \DeclareOption{serif}{% \PTB@seriftrue } \DeclareOption*{\PassOptionsToClass{\CurrentOption}{scrartcl}} \ExecuteOptions{portrait,serif} \ProcessOptions\relax \RequirePackage{hyphsubst}% Trennregeln austauschen \HyphSubstIfExists{ngerman-x-latest}{% \HyphSubstLet{ngerman}{ngerman-x-latest}}{} \HyphSubstIfExists{german-x-latest}{% \HyphSubstLet{german}{german-x-latest}}{} \RequirePackage{etoolbox} \preto\@classoptionslist{a0paper,portrait,ngerman,} % Ohne Sprachangabe "deutsch" verwenden. Bessere Lösung? \LoadClass[% %,headings=normal %,parskip=half ]{scrartcl} \@ifundefined{changefontsizes}{% \ClassError{ptbposter}{% Deine Version von KOMA-Script ist ungeeignet (vermutlich stark veraltet)! }{% Installiere die aktuelle Version von KOMA-Script. }% }{} \RequirePackage{amsmath} \newcommand*\LogoFont{} \ifPTB@XeOrLua \RequirePackage[no-math]{fontspec} \RequirePackage{unicode-math} \setromanfont[Ligatures=TeX]{TeX Gyre Pagella} \setsansfont[Ligatures=TeX]{TeX Gyre Heros} \let\LogoFont=\sffamily %\setmonofont[Scale=0.88]{DejaVu Sans Mono} %%%\setmonofont[Scale=1.05]{Latin Modern Mono} \setmonofont{AnonymousPro-Regular}[% Extension = .ttf, BoldFont = AnonymousPro-Bold, ItalicFont = AnonymousPro-Italic, BoldItalicFont = AnonymousPro-BoldItalic, Scale = MatchLowercase ] %%%\setmonofont[Scale=MatchLowercase]{Anonymous Pro}% %%% Fehler "This font using the "seac" command for accented characters" %%% Behoben in "XeTeX 3.14159265-2.6-0.99992 "! \ifPTB@serif \setmathfont[math-style=ISO,bold-style=ISO]{TeXGyrePagellaMath-Regular} \else \setmathfont[math-style=ISO,bold-style=ISO]{Asana Math} \setmathfont[range=\mathup,Scale=MatchLowercase]{TeXGyreHeros-Regular} \setmathfont[range=\mathit,Scale=MatchLowercase]{TeXGyreHeros-Italic} \setmathfont[range=\mathbfup,Scale=MatchLowercase]{TeXGyreHeros-Bold} \setmathfont[range=\mathbfit,Scale=MatchLowercase]{TeXGyreHeros-BoldItalic} \setmathfont[range=\mathsfup,Scale=MatchLowercase]{TeXGyreHeros-Regular} \setmathfont[range=\mathsfit,Scale=MatchLowercase]{TeXGyreHeros-Italic} \setmathfont[range=\mathbfsfup,Scale=MatchLowercase]{TeXGyreHeros-Bold} \setmathfont[range=\mathbfsfit,Scale=MatchLowercase]{TeXGyreHeros-BoldItalic} \setmathfont[range=\mathpunct]{TeXGyreHeros-Regular} \fi \else \RequirePackage[utf8]{inputenc} \RequirePackage[T1]{fontenc} \RequirePackage{textcomp} \RequirePackage{tgpagella,qpxmath} \RequirePackage{tgheros} \let\LogoFont=\sffamily %\RequirePackage[scaled=.88]{DejaVuSansMono} %%%\RequirePackage[scaled=1.05]{zlmtt}% ist lmodern! \RequirePackage[ttdefault=true,scale=1.034]{AnonymousPro} \ifPTB@serif\else\RequirePackage{sfmath}\fi \fi \ifPTB@serif \renewcommand*\familydefault{\rmdefault} \else \renewcommand*\familydefault{\sfdefault} \fi \RequirePackage[verbose]{geometry}% Papiergröße steht bereits fest (Standard: A0) \ifdim\paperheight>\paperwidth \setlength\PTB@scale@base{\paperheight} \PTB@landscapefalse \else \setlength\PTB@scale@base{\paperwidth} \PTB@landscapetrue \fi \setlength\PTB@default@fsize@base{0.0130170299199\PTB@scale@base}% 11pt bei A4 \setlength\PTB@default@afsize{0.0157550946737\PTB@scale@base}% 53.3pt bei A0 \setlength\PTB@default@tfsize{0.0315101893474\PTB@scale@base}% 106.6pt bei A0 \setlength\PTB@default@ffsize{0.00567538119577\PTB@scale@base}% 19.2pt bei A0 \newcommand*\scaleFontSizes[1]{% \global\PTB@default@fsize=#1\PTB@default@fsize@base } \newcommand*\scaleTitleFontSize[1]{% \PTB@tempdima=\PTB@default@tfsize \PTB@tempdima=#1\PTB@tempdima \PTB@tempdimb=1.2\PTB@tempdima \xdef\titleFontSize{\noexpand\@setfontsize \noexpand\titleFontSize{\the\PTB@tempdima}{\the\PTB@tempdimb}}% } \scaleFontSizes{1}% wird ggf. in Präambel noch mal geändert. \scaleTitleFontSize{1}% wird ggf. in Präambel noch mal geändert. \edef\authorFontSize{\noexpand\@setfontsize\noexpand\authorFontSize{% \the\PTB@default@afsize}{\the\dimexpr1.2\PTB@default@afsize}} \edef\footFontSize{\noexpand\@setfontsize\noexpand\footFontSize{% \the\PTB@default@ffsize}{\the\dimexpr1.2\PTB@default@ffsize}} \RequirePackage[svgnames]{xcolor} \RequirePackage{multicol,graphicx} \ifxetex\else \RequirePackage[% ,factor=1500 ,protrusion=true ,expansion=true ,verbose=true ,final=true ,letterspace=100 ,babel=true ]{microtype} \fi \RequirePackage{babel} \AtEndOfClass{% \shorthandon{"}% \@tempswafalse \iflanguage{ngerman}{\@tempswatrue}{% \iflanguage{german}{\@tempswatrue}{}% } \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@final@paper{} \newcommand*\scaletoPaper[1]{\gdef\PTB@final@paper{#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} \fi \RequirePackage[texcoord]{eso-pic} \RequirePackage{pict2e,picture,ifdraft,booktabs} \RequirePackage{varwidth,qrcode} \AddToShipoutPictureBG*{% Kopf (relativ zur oberen Blattkante) \PTB@tempdima=-0.077\PTB@scale@base \put(\PTB@leftmargin,\PTB@tempdima){% \parbox[b]{.401\PTB@scale@base}{% \textcolor{PTBcolor}{% TODO: Tikz-Grafik erzeugen (autom.?) und verwenden \includegraphics[width=.379\linewidth]{ptbposter-logo-A.mps}}% \hfill \raisebox{.0025\PTB@scale@base}{% %\includegraphics[width=.612\linewidth]{ptbposter-logo-B.mps}% \resizebox{.61\linewidth}{!}{% \hspace{-.2ex}% \begin{varwidth}[b]{\linewidth}% \LogoFont\bfseries Physikalisch-Technische Bundesanstalt\\ Braunschweig und Berlin\\ \mdseries Nationales Metrologieinstitut \end{varwidth}% }% }% }% }% \PTB@tempdima=-0.125\PTB@scale@base \put(\PTB@leftmargin,\PTB@tempdima){\parbox[c]{\textwidth}{% \sffamily\titleFontSize\@title}}% \PTB@tempdima=-0.159798150044\PTB@scale@base \def\and{, }% \put(\PTB@leftmargin,\PTB@tempdima){\sffamily\authorFontSize\@author}% % hier wird \@thanks gefüllt \PTB@tempdima=0.00168208578994\PTB@scale@base \linethickness{\PTB@tempdima}\color{PTBcolor}% \PTB@tempdima=-0.0883095039717\PTB@scale@base \put(\PTB@leftmargin,\PTB@tempdima){% \line(1,0){\dimexpr\paperwidth-2\PTB@leftmargin}}% % blauer Rahmen \put(\PTB@leftmargin,\dimexpr-\textheight-2\PTB@textvsep-\PTB@topmargin)% {\framebox(\dimexpr\textwidth+2\PTB@texthsep,% \dimexpr\textheight+2\PTB@textvsep){}}% } \AddToShipoutPictureBG*{% Fuß (relativ zur unteren Kante des Textbereichs) \AtTextLowerLeft{% \put(-\PTB@texthsep,-\PTB@textvsep){% \PTB@tempdimb=0.000420521447484\PTB@scale@base \linethickness{\PTB@tempdimb}\normalcolor \PTB@tempdima=-0.0420521447484\PTB@scale@base \put(-.5\@wholewidth,\PTB@tempdima){% \PTB@tempdima=0.0386879731686\PTB@scale@base \PTB@tempdimb=0.00168208578994\PTB@scale@base \ifx\PTB@qrcode\@empty \color{PTBcolor}\framebox(\PTB@tempdima,\PTB@tempdima){}% \else \raisebox{0.7\height}{% \qrcode[height=\PTB@tempdima,tight]{\PTB@qrcode}}% \fi \color{PTBcolor} \hspace{\PTB@tempdimb}\raisebox{-\@wholewidth}{% \rule{\dimexpr\PTB@tempdima+2\@wholewidth}% {\dimexpr\PTB@tempdima+2\@wholewidth}}% \hspace{\PTB@tempdimb}\framebox(\PTB@tempdima,\PTB@tempdima){}% } \PTB@tempdimb=-0.00841042894969\PTB@scale@base \footFontSize\sffamily\normalcolor \PTB@tempdima=0.122792262665\PTB@scale@base \put(\PTB@tempdima,\PTB@tempdimb){% \begin{tabular}[t]{@{}l@{}} Physikalisch-Technische Bundesanstalt \\ Braunschweig und Berlin \\[\f@baselineskip] \ifx\first@author\@empty\else \textbf{\first@author}\\\fi \ifx\PTB@department\@empty\else \PTB@department\\\fi \ifx\PTB@workingGroup\@empty\else \PTB@workingGroup\\\fi \end{tabular}% } \PTB@tempdima=0.263246426125\PTB@scale@base \put(\PTB@tempdima,\PTB@tempdimb){% \begin{tabular}[t]{@{}ll@{}} \ifx\PTB@street\@empty\else\multicolumn{2}{@{}l@{}}{\PTB@street}\\\fi \ifx\PTB@location\@empty\else\multicolumn{2}{@{}l@{}}{\PTB@location}\\\fi \ifx\PTB@phone\@empty\else Telefon:&\PTB@phone\\\fi \ifx\PTB@fax\@empty\else Fax:&\PTB@fax\\\fi \ifx\PTB@email\@empty\else E-Mail:&\href{mailto:\PTB@email}{\PTB@email}\\\fi \multicolumn{2}{@{}l@{}}{\href{http://www.ptb.de/}{www.ptb.de}} \end{tabular}% } \PTB@tempdima=0.378469302736\PTB@scale@base \put(\PTB@tempdima,\PTB@tempdimb){% \begin{tabular}[t]{@{}l@{}} \@thanks % wurde bei der Ausführung von \@author gefüllt. \end{tabular}% } } } } % ===== 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 %\show\@thefnmark \@footnotemark} \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 \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{$\m@th\circ$} \renewcommand*\labelitemii{\textbullet} \renewcommand*\labelitemiii{$\m@th\diamond$} \renewcommand*\labelitemiv{$\m@th\triangleright$}% \newcommand*\PTB@scaletoPaper[1]{% \begingroup \c@PTB@tempcnta=\paperheight \iso@paper{#1}% \c@PTB@tempcntb=\paperheight \c@PTB@tempcnta=\dimexpr \c@PTB@tempcntb sp * 1000 / \c@PTB@tempcnta % \global\mag\c@PTB@tempcnta \endgroup } \AtBeginDocument{% % Skalierungen in der Präambel sind passiert. %%%\makeatletter\input{ptbposter-size.clo}\makeatother %%%\makeatletter\input{ptbposter.patch}\makeatother% weiter vorn! Test auf Version \changefontsizes{\the\PTB@default@fsize}% \KOMAoptions{headings=normal,parskip=half} \normalsize \setlength\PTB@texthsep{.75em}% \setlength\PTB@textvsep{.75em}% \ifx\@author\@empty \setlength\PTB@topmargin{0.152\PTB@scale@base}% \else \setlength\PTB@topmargin{0.180824222418\PTB@scale@base}% \fi \ifPTB@landscape \setlength\PTB@framewidth{0.950378471315\PTB@scale@base}% 3215pt (1130mm) bei A0 \ifx\@author\@empty \setlength\PTB@frameheight{0.490824222418\PTB@scale@base}% 1565pt (550mm) bei A0 \else \setlength\PTB@frameheight{0.462\PTB@scale@base}% 1565pt (550mm) bei A0 \fi \else \setlength\PTB@framewidth{0.656013458076\PTB@scale@base}% 2219pt (780mm) bei A0 \ifx\@author\@empty \setlength\PTB@frameheight{0.769\PTB@scale@base}% 2504pt (880mm) bei A0 \else \setlength\PTB@frameheight{0.740117747573\PTB@scale@base}% 2504pt (880mm) bei A0 \fi \fi \setlength\PTB@leftmargin{0.5\dimexpr\paperwidth-\PTB@framewidth}% \edef\PTB@tempa{% \noexpand\newgeometry{% columnsep=1.5em,hcentering,% top=\the\dimexpr\PTB@topmargin+\PTB@textvsep,% textwidth=\the\dimexpr\PTB@framewidth-2\PTB@texthsep,% textheight=\the\dimexpr\PTB@frameheight-2\PTB@textvsep}% \noexpand\normalsize }% \iftrue \PTB@tempa \else \paperwidth=2392.87677pt % \paperheight=3383.03267pt % \textwidth=2175.25656pt % \textheight=2437.77509pt % \oddsidemargin=36.54012pt % \evensidemargin=36.54012pt % \topmargin=535.06314pt % \headheight=17.0pt % \headsep=20.40001pt % \topskip=11.0pt % \footskip=47.6pt % \marginparwidth=59.7508pt % \marginparsep=12.8401pt % \columnsep=88.06537pt % \fi \ifx\PTB@final@paper\@empty\else\PTB@scaletoPaper{\PTB@final@paper}\fi \setlength\emergencystretch{3em}% \@ifpackageloaded{multicol}{% \def\setemergencystretch#1#2{}% }{}% \RequirePackage{paralist} \newcommand*\PTB@begin@list[1]{% %\PTB@tempdima=\parindent %\PTB@tempdimb=\parskip \@nameuse{#1}% %\parindent=\PTB@tempdima %\parskip=\PTB@tempdimb } \def\enumerate{% \PTB@begin@list{compactenum}% } \def\itemize{% \PTB@begin@list{compactitem}% } \def\description{% \PTB@begin@list{compactdesc}% } \let\enditemize\endcompactitem \let\endenumerate\endcompactenum \let\enddescription\endcompactdesc \pltopsep=\medskipamount \plitemsep=\medskipamount \setlength\leftmargini{1.5em} \setlength\leftmarginii{1.1em} \setlength\leftmarginiii{1.1em} \setlength\leftmarginiv{1.1em} \setlength\labelsep{.5em} } \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} } \setcounter{secnumdepth}{-2} \renewcommand*\maketitle[1][1]{} \renewcommand*\tableofcontents{} \pagestyle{empty} \raggedbottom \endinput