-
Rolf Niepraschk authoredRolf Niepraschk authored
ptbposter.cls 19.81 KiB
% Rolf Niepraschk, Rolf.Niepraschk@ptb.de
\setcounter{errorcontextlines}{100} \listfiles
\NeedsTeXFormat{LaTeX2e}[1999/12/01]
\ProvidesClass{ptbposter}
[2017/10/27 v0.6c 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
\newdimen\PTB@maxtitleheight % Maximale Höhe des Titels
\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*\PTB@title@justification{\relax}
\newcommand*\centerTitel{\global\let\PTB@title@justification=\centering}
\newcommand*\PTB@authors@justification{\relax}
\newcommand*\centerAuthors{\global\let\PTB@authors@justification=\centering}
\newcommand*\PTB@title@series{\relax}
\newcommand*\boldTitel{\global\let\PTB@title@series=\bfseries}
\newcommand*\PTB@scaleTitleFontSize[1]{%
\PTB@tempdima=\PTB@default@tfsize
\PTB@tempdima=#1\PTB@tempdima
\PTB@tempdimb=1.14\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.
\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}
\AddToShipoutPictureFG*{% 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}%
}%
}%
}%
}%
\def\PTB@tempa{\parbox[c]{\PTB@framewidth}{% Komplette Titeldefinition
\PTB@title@justification\PTB@title@series\sffamily\titleFontSize
\microtypesetup{protrusion=false}\@title}}%
\begingroup
\@tempcnta=\@ne \@tempcntb=10499 %
\loop\ifnum\@tempcnta<25 % Finden der ersten passenden titleFontSize
\multiply\@tempcntb 10000 \divide\@tempcntb by 10500 % jeweils um 5% kleiner
\PTB@scaleTitleFontSize{0.\the\@tempcntb}% 1:0.9999, 2:0.9522, 3:0.9068, ...
%\typeout{\the\@tempcnta\space XXX: \titleFontSize, 0.\the\@tempcntb}%
\setbox\z@ \hbox{\PTB@tempa}%
\ifdim\dimexpr\ht\z@+\dp\z@>\PTB@maxtitleheight
\advance\@tempcnta\@ne % weiter, wenn zu gross
\else
\@tempcnta=999 % Abbruch
\fi
\repeat
\endgroup
\PTB@tempdima=-0.127\PTB@scale@base
\put(\PTB@leftmargin,\PTB@tempdima){\PTB@tempa}% Titel
\PTB@tempdima=-0.172\PTB@scale@base
\def\and{, }%
\put(\PTB@leftmargin,\PTB@tempdima){\parbox[b]{\PTB@framewidth}{% Autoren
\PTB@authors@justification\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){}}%
}
\AddToShipoutPictureFG*{% 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}%
\setlength\PTB@maxtitleheight{0.057\PTB@scale@base}% HUGO
\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