Die Frage
Gibt es eine Möglichkeit, ein ganzes Dokument automatisch zu skalieren und auf eine A0-Seite zu bringen? Die Arbeit, für die dies geschehen soll, liegt sowohl als LaTeX-Code als auch als PDF-Ausgabe vor. Natürlich weiß ich, dass es auch manuell möglich ist, aber ich würde eine LaTeX-Lösung bevorzugen.
Ein kleiner Hintergrund
An unserer Uni wurde eine neue Seitenbegrenzung für Masterarbeiten eingeführt. Dies kommt bei Lehrenden und Studierenden nicht gerade gut an. Als kleinen Scherz haben wir versucht, eine komplette Masterarbeit (ca. 200 Seiten) auf einem A0-Plakat zu platzieren, im Flur aufzuhängen und eine Lupe daneben zu stellen mit einem Zettel: „Neue Seitenbegrenzung eingeführt: Maximal 1 Seite für alle anstehenden Masterarbeiten!“
Das Endergebnis
Da einige von Ihnen danach gefragt haben: Unten sehen Sie ein Bild des Endergebnisses. (Ich habe einige der vertraulichen Informationen „professionell entfernt“.)
Wir haben das Poster bei meiner Abschlusspräsentation gezeigt und es hat allen sehr gut gefallen! Jetzt hängt es neben meinem Büro und erregt immer noch ab und zu Aufmerksamkeit.
Antwort1
Sie können verwenden pdfpages
. Im folgenden Beispiel test2.pdf
hat 178 Seiten und ceil(sqrt(178)) = 14.
Der Zweck dieser delta
Option besteht eigentlich darin, zusätzlichen Leerraum zwischen den einzelnen Seiten einzufügen. Wenn Sie die Option auf negative Werte setzen, haben Sie vermutlich den Effekt, dass sich die einzelnen Seiten ein wenig überlappen. Es wird also nichts abgeschnitten, aber der Effekt ist derselbe – weniger Leerraum. Um geeignete Werte zu finden, ist etwas Ausprobieren erforderlich, und es hängt von den Rändern des Original-PDFs ab.
\documentclass{article}
\usepackage[a0paper,margin=0cm]{geometry}
\usepackage{pdfpages}
\begin{document}
\includepdf[pages=-,nup=14x14,delta=-2cm -3cm]{test2.pdf}
\end{document}
Antwort2
Auf Nachfrage im Kommentarbereich wurde ich aufgefordert, Einzelheiten zu meinem Kommentar mitzuteilen:
Ich hatte eine ähnliche Situation in unserer Organisation, als sie eines Tages darauf bestanden, dass jeder Bericht in Times Roman geschrieben werden müsse (nicht in meiner geliebten Palatino), aber Abbildungen in anderen Schriftarten erlaubten. Also reichte ich meinen Bericht ein, in dem jede Seite meines Palatino-Manuskripts leicht auf die Größe einer ganzseitigen Abbildung verkleinert war, mit der Überschrift „Abbildung xx: Seite xx, wie der Autor sie gerne hätte“. Die Überschrift war natürlich in Times Roman. Die einzige andere Times Roman war eine ein Absatz lange Einleitung auf Seite 1, in der die Times-Roman-Vorschrift lächerlich gemacht und das nachfolgende Layout erklärt wurde
Aber ich würde mich schuldig fühlen, wenn ich nicht versuchen würde, zuerst die Frage des OP so zu beantworten, wie sie ist. Dies ist also eine Antwort aus zwei Teilen: zuerst die Frage des OP; dann die Ausarbeitung meines Kommentars.
TEIL 1
Obwohl es einiges an Feinabstimmung erfordern würde, da es keine Floats akzeptiert, ist die Methode beiSo passen Sie den Text in Latex an einen bestimmten Platz einkönnte diesbezüglich angepasst werden:
\documentclass{article}
\usepackage{scalerel}
\usepackage{caption}
\usepackage[a0paper,margin=0.5cm]{geometry}
\usepackage{fp}
\usepackage{lipsum}
\usepackage{stackengine}
\newcount\boxheight
\newcount\boxwidth
\newlength\constrainedwidth
\newsavebox\testbox
\newlength\currentwidth
\newcommand\aspect[1]{%
\boxheight=\ht#1\relax%
\boxwidth=\wd#1\relax%
\FPdiv\testaspect{\the\boxheight}{\the\boxwidth}%
%\testaspect\\% COMMENT THIS LINE TO REMOVE ASPECT-RATIO PRINTS
}
% TARGET-HEIGHT, TARGET-WIDTH, CONTENT, GUESS>NATURAL-WIDTH, dWIDTH
\newcommand\constraintext[5]{%
\def\svfboxsep{\the\fboxsep}%
\setlength\fboxsep{0pt}%
\setlength\constrainedwidth{#2}%
\sbox\testbox{\rule{#2}{#1}}%
%TARGET ASPECT RATIO\\% COMMENT THIS LINE TO REMOVE COMMENT
%V\\% COMMENT THIS LINE TO REMOVE COMMENT
\aspect{\testbox}%
\edef\aspectratio{\testaspect}%
\constrainsize{#1}{\aspectratio}{#3}{#4}{#5}%
\setlength\fboxsep{\svfboxsep}%
}
\newcommand\constrainsize[5]{%
\sbox{\testbox}{\fbox{\begin{minipage}[b]{#4}{#3}\end{minipage}}}%
\aspect{\testbox}%
\FPiflt{\testaspect}{#2}%
\setlength{\currentwidth}{#4}%
\addtolength{\currentwidth}{-#5}%
\constrainsize{#1}{#2}{#3}{\currentwidth}{#5}%
\else
\setlength\constrainedwidth{#1}%
\FPdiv\result{1.0}{#2}%
%RESET ANY OTHER COUNTERS, TO AVOID ITERATION CREEP
\setcounter{section}{0}%
\setcounter{figure}{0}%
% CHANGE \framebox TO \makebox TO REMOVE FRAME
\makebox[\result\constrainedwidth]{\hfill%
\scaleto{\begin{minipage}[b]{\currentwidth}{#3}\end{minipage}}{#1}%
\hfill%
}%
\fi%
}
\parindent 0in
\begin{document}
\centering\constraintext{46in}{32in}{%
\section{Test Section}
\lipsum[1-10]
\section{The Next Section}
\lipsum[11-17]
{\centering\par\rule{2in}{2in}\captionof{figure}{My caption}\par}
\lipsum[1-25]
{\centering\par\rule{3in}{1in}\captionof{figure}{My caption}\par}
\lipsum[1-15]
\section {Conclusions}
\lipsum[16-20]
}{60in}{.2in}
\end{document}
Teil 2
Ohne das gesamte Dokument aufzulisten, ist der Code, der für diesen Teil der Aufgabe erforderlich ist, unkompliziert. Ich habe mein gewünschtes Dokument in Palatino erstellt und Adobe jede Seite in einer eigenen Datei mit Namen f2_1.pdf
, f2_2.pdf
usw. ausgeben lassen. Der folgende Code hat die richtigen Seiten erfasst und einen Abbildungs-Wrapper darum gelegt (unter Verwendung der meines boxhandler
Pakets \bxfigure
). Der Code scheint zweimal wiederholt zu werden, da der erste Block für die Beschriftung von Seiten mit römischen Zahlen und der zweite Block für die Beschriftung von Abbildungen mit arabischen Zahlen vorgesehen ist.
\section{A Meta-Report in Times-Roman Font}
This report is composed, by bureaucratic decree, in 12-point Times-Roman
font. The author has been informed that Palatino font, despite its
increased legibility, does not possess ``curly'' quotes and, therefore,
``is just too different in appearance from the standard font'' that ARL
employs. Efforts to obtain a local variance to this standard, though
granted regularly in the past to a number of authors, have been
presently denied to this author
[Text gelöscht]
\newcounter{pnum}\newcounter{fnum}\newcounter{countindex}
\setcounter{pnum}{\thefigure}\addtocounter{pnum}{3}
\setcounter{fnum}{\thefigure}\addtocounter{fnum}{5}
\setcounter{countindex}{0}
\def\blahblah{, as the author would have liked it to appear, in Palatino font}
\whiledo{\value{countindex} < 2}{
\bxfigure[h] {Page \roman{pnum}\blahblah}
{\fbox{\includegraphics[scale=0.89,trim=47 36 46 60]{f2_\arabic{fnum}}}}
\clearpage
\addtocounter{pnum}{1}
\addtocounter{fnum}{1}
\addtocounter{countindex}{1}
}
\addtocounter{pnum}{-4}
\setcounter{countindex}{0}
\whiledo{\value{countindex} < 40}{
\bxfigure[h] {Page \arabic{pnum}\blahblah}
{\fbox{\includegraphics[scale=0.89,trim=48 36 46 60]{f2_\arabic{fnum}}}}
\clearpage
\addtocounter{pnum}{1}
\addtocounter{fnum}{1}
\addtocounter{countindex}{1}
}
Es versteht sich von selbst, dass der Herausgeber den Text zwar amüsant fand, er ihn jedoch nicht ohne Änderungen zur Veröffentlichung annahm.
Antwort3
Man könnte den LaTeX-Quelltext der Arbeit so anpassen, dass er auf A0-Papier in vier Spalten gesetzt wird, die jeweils die Breite eines A4-Blattes haben. Für einen besseren Satz, also eine geringere Anzahl von Zeichen pro Zeile, könnte man die Spaltenanzahl sogar noch erhöhen.
\documentclass{article}
\usepackage[a0paper, margin = 2.5cm]{geometry}
\usepackage[english]{babel}
\usepackage{microtype}
\usepackage{multicol}
\setlength{\columnsep}{1.5cm}
\usepackage[math]{blindtext}
\title{I Like Big Sheets of Paper}
\author{Zw\"ahnia}
\begin{document}
\maketitle
\begin{multicols}{4}
\tableofcontents
\Blinddocument
\Blinddocument
\end{multicols}
\end{document}
Antwort4
Zusätzlich zu Torbjørns Lösung gibt es pgfpages
eine, die dasselbe ohne Verwendung eines externen PDFs tun kann. Allerdings müssen Sie dafür möglicherweise Ihr eigenes Layout-Makro schreiben. Es ist nicht so schwer.
Übrigens: Interessante Idee. Wenn es fertig ist, poste ein Bild davon, könnte interessant aussehen.