From a4254bba63e96629b53142a328e78904d7e8312a Mon Sep 17 00:00:00 2001
From: Rolf Niepraschk <Rolf.Niepraschk@ptb.de>
Date: Tue, 20 Sep 2022 11:07:36 +0200
Subject: [PATCH] nur noch A0 direkt, sonst Skalierung (blowup)

---
 ptbposter/ptbposter-2018.clo | 32 +++++++-------
 ptbposter/ptbposter-2020.clo | 28 ++++++------
 ptbposter/ptbposter.cls      | 86 ++++++++++++++++++++++++++++++------
 3 files changed, 102 insertions(+), 44 deletions(-)

diff --git a/ptbposter/ptbposter-2018.clo b/ptbposter/ptbposter-2018.clo
index 865a437..5d9418a 100644
--- a/ptbposter/ptbposter-2018.clo
+++ b/ptbposter/ptbposter-2018.clo
@@ -1,16 +1,16 @@
 % Rolf Niepraschk, Rolf.Niepraschk@ptb.de
 
 \ProvidesFile{ptbposter-2018.clo}%
-  [2020/03/10 v0.1b `PTB-Poster' layout 2018 (RN/PTB)]
+  [2022/09/20 1.0.0 PTB-Poster layout 2018 (RN)]
   
 \typeout{*** LAYOUT 2018 ***}
 
-\setlength\PTB@default@fontsize@base{0.0130170299199\PTB@scale@base}% 11pt bei A4
-\setlength\PTB@default@author@fontsize{0.0157550946737\PTB@scale@base}%   53.3pt bei A0
-\setlength\PTB@default@title@fontsize@base{0.0315101893474\PTB@scale@base}%  106.6pt bei A0
-\setlength\PTB@default@foot@fontsize{0.00567538119577\PTB@scale@base}%  19.2pt bei A0
+\setlength\PTB@default@fontsize@base{0.0130170299199\PTB@scale@base}% 11pt (A4), 44pt (A0)
+\setlength\PTB@default@author@fontsize{0.0157550946737\PTB@scale@base}%   53.3pt (A0)
+\setlength\PTB@default@title@fontsize@base{0.0315101893474\PTB@scale@base}%  106.6pt (A0)
+\setlength\PTB@default@foot@fontsize{0.00567538119577\PTB@scale@base}%  19.2pt (A0)
 
-\ifPTB@XeOrLua
+\iftutex% LuaTeX oder XeTeX
   \setfontfamily\PTBdesignFont{texgyreheros}[
     Ligatures=TeX,
     Extension=.otf,
@@ -30,23 +30,23 @@
     \setlength\PTB@topmargin{0.180824222418\PTB@scale@base}%
   \fi
   \ifPTBlandscape
-    \setlength\PTB@framewidth{0.950378471315\PTB@scale@base}%  3215pt (1130mm) bei A0 
+    \setlength\PTB@framewidth{0.950378471315\PTB@scale@base}%  3215pt (1130mm) (A0) 
     \ifx\@author\@empty
-      \setlength\PTB@frameheight{0.490824222418\PTB@scale@base}% 1660pt  (584mm) bei A0
+      \setlength\PTB@frameheight{0.490824222418\PTB@scale@base}% 1660pt  (584mm) (A0)
     \else
-      \setlength\PTB@frameheight{0.462\PTB@scale@base}% 1563pt  (549mm) bei A0 
+      \setlength\PTB@frameheight{0.462\PTB@scale@base}% 1563pt  (549mm) (A0) 
     \fi
   \else
-    \setlength\PTB@framewidth{0.656013458076\PTB@scale@base}%  2219pt  (780mm) bei A0
+    \setlength\PTB@framewidth{0.656013458076\PTB@scale@base}%  2219pt  (780mm) (A0)
     \ifx\@author\@empty
-      \setlength\PTB@frameheight{0.769\PTB@scale@base}% 2602pt  (914mm) bei A0
+      \setlength\PTB@frameheight{0.769\PTB@scale@base}% 2602pt  (914mm) (A0)
     \else
-      \setlength\PTB@frameheight{0.740117747573\PTB@scale@base}% 2504pt  (880mm) bei A0
+      \setlength\PTB@frameheight{0.740117747573\PTB@scale@base}% 2504pt  (880mm) (A0)
     \fi
   \fi
 }
 
-\AddToShipoutPictureBG*{% Kopf (relativ zur oberen Blattkante)
+\PTB@AddToShipoutPictureBG{% relativ zur oberen linken Ecke des Blattes
   \PTB@tempdima=-0.077\PTB@scale@base
   \put(\PTB@leftmargin,\PTB@tempdima){%
     \parbox[b]{\PTB@framewidth}{% TODO: vereinfachen?
@@ -101,7 +101,7 @@
   \put(\PTB@leftmargin,\PTB@tempdima){\parbox[b]{\PTB@framewidth}{% Autoren
     \PTB@authors@justification\PTBdesignFont\authorFontSize\@author}}%
   % hier wird \@thanks gefüllt
-  \linethickness{\PTB@framethickness}\color{PTBcolor}%\color{PTBcolor}%
+  \linethickness{\PTB@framethickness}\color{PTBcolor}%
   \PTB@tempdima=-0.0883095039717\PTB@scale@base
   \put(\PTB@leftmargin,\PTB@tempdima){%
     \line(1,0){\dimexpr\paperwidth-2\PTB@leftmargin}}%
@@ -111,8 +111,8 @@
      \dimexpr\textheight+2\PTB@textvsep){\backgroundContent}}%
 }
 
-\AddToShipoutPictureFG*{% Fuß (relativ zur unteren Kante des Textbereichs)
-  \AtTextLowerLeft{%
+\PTB@AddToShipoutPictureFG{% relativ zur linken unteren Ecke des Textbereichs
+  \PTB@AtTextLowerLeft{%
     \put(-\PTB@texthsep,-\PTB@textvsep){%
       \PTB@tempdimb=0.000420521447484\PTB@scale@base
       \linethickness{\PTB@tempdimb}\normalcolor
diff --git a/ptbposter/ptbposter-2020.clo b/ptbposter/ptbposter-2020.clo
index 6e73d6d..70acbd3 100644
--- a/ptbposter/ptbposter-2020.clo
+++ b/ptbposter/ptbposter-2020.clo
@@ -1,16 +1,16 @@
 % Rolf Niepraschk, Rolf.Niepraschk@ptb.de
 
 \ProvidesFile{ptbposter-2020.clo}%
-  [2020/03/13 v0.1b `PTB-Poster' layout 2020 (RN/PTB)]
+  [2022/09/20 1.0.0 PTB-Poster layout 2020 (RN)]
 
 \typeout{*** LAYOUT 2020 ***}
 
-\setlength\PTB@default@fontsize@base{0.0118336635635\PTB@scale@base}% 10pt bei A4
-\setlength\PTB@default@author@fontsize{0.0157550946737\PTB@scale@base}%   53.3pt bei A0
-\setlength\PTB@default@title@fontsize@base{.0282849711986\PTB@scale@base}% 95.7pt bei A0
-\setlength\PTB@default@foot@fontsize{0.00567538119577\PTB@scale@base}%  19.2pt bei A0   
+\setlength\PTB@default@fontsize@base{0.0118336635635\PTB@scale@base}% 10pt (A4), 40pt (A0)
+\setlength\PTB@default@author@fontsize{0.0157550946737\PTB@scale@base}%   53.3pt (A0)
+\setlength\PTB@default@title@fontsize@base{.0282849711986\PTB@scale@base}% 95.7pt (A0)
+\setlength\PTB@default@foot@fontsize{0.00567538119577\PTB@scale@base}%  19.2pt (A0)   
 
-\ifPTB@XeOrLua
+\iftutex% LuaTeX oder XeTeX
   \setfontfamily\PTBdesignFont{UniversNextPro-Light}[%
     Ligatures=TeX,
     BoldFont=*,
@@ -31,15 +31,15 @@
 \AtEndPreamble{%
   \setlength\PTB@topmargin{0.193953\PTB@scale@base}%
   \ifPTBlandscape  % ???
-    \setlength\PTB@framewidth{0.950378471315\PTB@scale@base}%  3215pt (1130mm) bei A0 
-    \setlength\PTB@frameheight{0.447\PTB@scale@base}% 1563pt  (549mm) bei A0 
+    \setlength\PTB@framewidth{0.950378471315\PTB@scale@base}%  3215pt (1130mm) (A0) 
+    \setlength\PTB@frameheight{0.447\PTB@scale@base}% 1563pt  (549mm) (A0) 
   \else
-    \setlength\PTB@framewidth{0.656013458076\PTB@scale@base}%  2219pt  (780mm) bei A0
-    \setlength\PTB@frameheight{0.740117747573\PTB@scale@base}% 2504pt  (880mm) bei A0
+    \setlength\PTB@framewidth{0.656013458076\PTB@scale@base}%  2219pt  (780mm) (A0)
+    \setlength\PTB@frameheight{0.740117747573\PTB@scale@base}% 2504pt  (880mm) (A0)
   \fi
 }
 
-\AddToShipoutPictureBG*{% Kopf (relativ zur oberen Blattkante)
+\PTB@AddToShipoutPictureBG{% relativ zur oberen linken Ecke des Blattes
   \PTB@tempdima=-0.07\PTB@scale@base
   \put(\PTB@leftmargin,-0.07\PTB@scale@base){%
     \textcolor{PTBcolor}{\includegraphics[height=.04545\PTB@scale@base]%
@@ -89,8 +89,8 @@
       \dimexpr\textheight+2\PTB@textvsep){\backgroundContent}}%
 }
 
-\AddToShipoutPictureFG*{% Fuß (relativ zur unteren Kante des Textbereichs)
-  \AtTextLowerLeft{%
+\PTB@AddToShipoutPictureFG{% relativ zur linken unteren Ecke des Textbereichs
+  \PTB@AtTextLowerLeft{%
     \PTBdesignFont\footFontSize\normalcolor
     \PTB@tempdima=-\PTB@framethickness 
     \PTB@tempdimb=-0.0125\PTB@scale@base
@@ -124,7 +124,7 @@
         \end{tabular}%
       }
       \ifx\PTB@logo\@empty\else
-        \PTB@tempdimc=0.038875630234\PTB@scale@base% 131bp bei A0
+        \PTB@tempdimc=0.038875630234\PTB@scale@base% 131bp (A0)
         \PTB@tempdima=\dimexpr\PTB@framewidth-\PTB@tempdimc+\PTB@framethickness
         \sbox\PTB@tempboxa{\includegraphics[width=\PTB@tempdimc]{\PTB@logo}}% 
         \put(\PTB@tempdima,\PTB@tempdimb+\ht\strutbox){%
diff --git a/ptbposter/ptbposter.cls b/ptbposter/ptbposter.cls
index 85c5f6f..a6a43e4 100644
--- a/ptbposter/ptbposter.cls
+++ b/ptbposter/ptbposter.cls
@@ -3,7 +3,7 @@
 \setcounter{errorcontextlines}{100}  \listfiles
 
 \NeedsTeXFormat{LaTeX2e}[1999/12/01]
-\ProvidesClass{ptbposter}[2022/09/12 v1.0d PTB-Poster (RN)]
+\ProvidesClass{ptbposter}[2022/09/20 1.0.0 PTB-Poster (RN)]
     
 \newif\ifPTB@useCMYK \PTB@useCMYKfalse % vorerst 
 \newif\ifPTB@german@  \PTB@german@true
@@ -57,13 +57,14 @@
 \ifxetex\PTB@XeOrLuatrue\else\ifluatex\PTB@XeOrLuatrue\fi\fi
 
 \PassOptionsToPackage{pagesize=false}{typearea}
-\PassOptionsToPackage{paper=a0paper,onecolumn,portrait}{geometry}
+\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
@@ -93,19 +94,19 @@
   \global\let\PTB@authors@justification=\centering
 }
 \DeclareOption{a4paper}{%
-  \PassOptionsToPackage{\CurrentOption}{geometry}
+  \def\PTB@target@size{a4}
 }
 \DeclareOption{a3paper}{%
-  \PassOptionsToPackage{\CurrentOption}{geometry}
+  \def\PTB@target@size{a3}
 }
 \DeclareOption{a2paper}{%
-  \PassOptionsToPackage{\CurrentOption}{geometry}
+  \def\PTB@target@size{a2}
 }
 \DeclareOption{a1paper}{%
-  \PassOptionsToPackage{\CurrentOption}{geometry}
+  \def\PTB@target@size{a1}
 }
 \DeclareOption{a0paper}{%
-  \PassOptionsToPackage{\CurrentOption}{geometry}
+  \OptionNotUsed
 }
 \DeclareOption{landscape}{%
   \PassOptionsToPackage{\CurrentOption}{geometry}
@@ -134,7 +135,7 @@
 
 \LoadClass{scrartcl}
 
-\usepackage[verbose]{geometry}%
+\RequirePackage[verbose]{geometry}%
 
 \@ifundefined{changefontsizes}{%
   \ClassError{ptbposter}{%
@@ -144,6 +145,13 @@
   }%
 }{}
 
+\ifx\PTB@target@size\@empty\else
+  \RequirePackage{blowup}[2022/09/19]
+  \ClassNoteNoLine{ptbposter}{%
+    Scaling the sheet from size `a0' to size `\PTB@target@size'}%
+  \blowUp{target=\PTB@target@size}
+\fi
+
 \ifPTB@XeOrLua
   \input{ptbposter-new-engines.clo}
 \else
@@ -216,7 +224,58 @@
   \definecolor{PTBcolor}{RGB}{0,155,206}% 2019
 \fi
 
-\RequirePackage[texcoord]{eso-pic}
+% == 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}
 
@@ -377,18 +436,17 @@
 
 \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{.75em}%
-  \setlength\PTB@textvsep{.75em}%
+  \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 bei A4
-  \setlength\fboxrule{0.0004722\PTB@scale@base}% 0.4pt bei A4
+  \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{%
-- 
GitLab