Mit Grafik Seite auffüllen

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: Mit Grafik Seite auffüllen

von Gast » Fr 23. Aug 2019, 09:00

PS: Man kann mit Sicherheit auch Beispiele konstruieren, bei denen die eingefügte Grafik unansehnlich klein wird. Also besser auch noch testen, dass die berechnete Höhe ein Mindestmaß erreicht und ggf. anderenfalls auf das Bild komplett verzichten.

von Gast » Fr 23. Aug 2019, 08:51

Auf den ersten Blick kann man sich soetwas zusammenbasteln. Der restliche Platz auf der Seite ist auf Low-Level-TeX-Ebene theoretisch \pagegoal-\pagetotal. Allerdings gilt das nur zwischen zwei Absätzen. Innerhalb eines Absatzes ist \pagetotal (die aktuelle Seitenfüllung) gar nicht bekannt. Versucht man nun aber mit diesem Wert das Problem zu lösen, fällt man schon im einfachsten Fall herein:
\documentclass{article}
\usepackage{showframe}% to visualize page areas
\usepackage{mwe}

\begin{document}
\Blindtext[3]

\includegraphics[height=\dimexpr\pagegoal-\pagetotal\relax]{example-image}
\end{document}
Fängt man an zu messen, sieht es zwar so aus, als müsste das Bild eigentlich noch auf die erste Seite passen, tut es aber nicht. Grund ist, dass die Zeile des Bildes ebenfalls eine Tiefe (Unterlänge unter der Grundlinie der Zeile) hat, obwohl das Bild selbst komplett über der Grundlinie liegt. Für den Umbruch ist das relevant. Also müssen wir den Wert auch noch abziehen:
\documentclass{article}
\usepackage{showframe}% to visualize page areas
\usepackage{mwe}

\begin{document}
\Blindtext[3]

\includegraphics[height=\dimexpr\pagegoal-\pagetotal-\dp\strutbox\relax]{example-image}
\end{document}
Jetzt soll die Grafik vermutlich nicht einfach so auf die Seite geklatscht werden, sondern beispielsweise zentriert:
\documentclass{article}
\usepackage{showframe}% to visualize page areas
\usepackage{mwe}

\begin{document}
\Blindtext[3]

\begin{center}
\includegraphics[height=\dimexpr\pagegoal-\pagetotal-\dp\strutbox\relax]{example-image}
\end{center}
\end{document}
Jetzt hat man allerdings noch das Problem, dass die Grafik eventuell zu breit wird, wenn man die Höhe komplett ausnützen will. Also braucht man auch noch eine Breitenbeschränkung:
\documentclass{article}
\usepackage{showframe}% to visualize page areas
\usepackage{mwe}

\begin{document}
\section{First}
\Blindtext[1]

\begin{center}
  \vfill
  \includegraphics[height=\dimexpr\pagegoal-\pagetotal\relax,width=\linewidth,keepaspectratio]{example-image}
%  \vfill% aktivieren, falls vertikale Zentrierung im Restbereich gewünscht.
\end{center}

\section{Next}
\Blindtext
\end{document}
Sobald allerdings auch noch eine Bildbeschriftung dazu soll, ist das nicht mehr so einfach zu machen. Dann muss man nämlich deren Platzbedarf ebenfalls berücksichtigen. Auch gibt es mit Sicherheit Fälle, in denen die Verwendung von \pagegoal-\pagetotal nicht das gewünschte Ergebnis bringt.

von Gast » Do 22. Aug 2019, 15:44

Mehr Kontext bitte.

Mit Grafik Seite auffüllen

von tobi_nambur » Do 22. Aug 2019, 15:10

Hallo liebes Forum,

ich arbeite an einem Booklet und häufig kommt nach der letzten Zeile ein größeres Bild das ich mit /includegraphic einfüge. Bisher definiere ich die Größe der Bilder selber mit width=12cm oder width=0.8/textwidth. Wenn sich die Länge des Abschnitts ändert und zu wenig Platz ist springt das Bild dann leider auf die nächste Seite, was sehr nervig ist.

Meine Frage:

Gibt es einen Befehl der mit dem Bild den restlichen Platz der Seite optimal auffüllen und trotzdem deren Seitenverhältnis beibehält?

Vielen Dank!

Nach oben