Anordnungsmöglichkeiten Bildertafel Thema ist als GELÖST markiert

Tabellen und Grafiken erstellen und anordnen


MarSchl
Forum-Anfänger
Forum-Anfänger
Beiträge: 12
Registriert: Mo 18. Jul 2022, 18:48

Anordnungsmöglichkeiten Bildertafel

Beitrag von MarSchl »

Liebe Leute,

ich komme alleine wieder nicht weiter und suche Hilfe.
Ich bin beim Gestalten von Bildertafeln im Anhang meiner Arbeit.

Bei - von Natur aus - gleich hohen Bildern funktionert das mit verschachtelten Minipages super.

Also nach dem Schema:
Begin Seite
Begin Obere (Über)Minipage[ganze Seitenbreite]{
(Unter)Minipage[0.3\Seitenbreite]{Bild mit Captionof} alle Bilder mit \height=z.B. 0.3\textheight
\hfill
(Unter)Minipage[0.3\Seitenbreite]{Bild mit Captionof}
\hfill
(Unter)Minipage[0.3\Seitenbreite]{Bild mit Captionof}
Ende Obere (Über)Minipage

Begin Untere (Über) Minipage
(Unter)Minipage[0.5\Seitenbreite]{Bild mit Captionof} alle Bilder mit \height=z.B. 0.3\textheight
\hfill
(Unter)Minipage[0.5\Seitenbreite]{Bild mit Captionof}
Ende Untere (Über) Minipage
Ende Seite

Aber es kommt doch sehr oft vor, dass die Bilder nicht gleich hoch sind. Dann lässt sich das zwar über die \height-Option von \includegraphics regeln. Aber dann gibt es Probleme mit dem horizontalen Abstand der Minipages zueinander. Weil die ja eine - wenn auch relative - Breitenangabe benötigen. Also Problem ist vielleicht das falsche Wort... Ästhetisches Defizit trifft es besser.

EDIT: Es geht mir darum, dass Bilder mit verschiedenen Proportionen, bei gleicher Höhe nebeneinander mit Bildunterschrift im gleichen Abstand stehen können.

Welche Lösung stelle ich mir vor:
Eine Modifizierung der Minipage-Umgebung, sodass man keine Breite angeben muss, aber dafür eine relative Höhe angeben kann.
Oder:
Eine Modifizierung der parbox, sodass sie in Zusammenhang mit captionof keine Fehler ausgibt.

Wer hat eine Idee?
\documentclass[
pagesize=auto,
paper=a4,
BCOR=1.25cm,
DIV=11,
fontsize=12,
]{scrreprt}

\usepackage{fontspec}

\usepackage{graphicx}

\usepackage[format=plain, font=small, figurename=Abb. , justification=RaggedRight]{caption}
\DeclareCaptionLabelSeparator{colona}{: \\ }
\captionsetup[figure]{labelsep=colona}

\usepackage[colorlinks=true, linkcolor=black, urlcolor=black]{hyperref}

\begin{document}

\LARGE{Überschrift}

Variante mit verschachtelten Minipages

\noindent\begin{minipage}{\textwidth}
	\captionsetup{type=figure}
	\begin{minipage}[t]{0.32\textwidth}
		\includegraphics[angle=90, height=0.3\textheight, keepaspectratio]{example-image-a}
		\captionof{figure}{Bild 1}\label{A:1}
	\end{minipage}
	\hfill	
	\begin{minipage}[t]{0.32\textwidth}
		\includegraphics[angle=90, height=0.3\textheight, keepaspectratio]{example-image-golden}
		\captionof{figure}{Bild 2}\label{A:2}
	\end{minipage}	
	\hfill	
	\begin{minipage}[t]{0.32\textwidth}
		\includegraphics[angle=90, height=0.3\textheight, keepaspectratio]{example-grid-100x100pt}
		\captionof{figure}{Bild 3}\label{A:3}
	\end{minipage}	
\end{minipage}

\vfill

\noindent\begin{minipage}[t]{\textwidth}
\centering
\captionsetup{type=figure}
\includegraphics[width=\textwidth, height=0.4\textheight]{example-image-b}
\captionof{figure}{Bild 4}\label{A:4}
\end{minipage}

\newpage

Variante mit parbox

\noindent\begin{minipage}{\textwidth}
	\parbox  [0.5\textheight]{\textwidth} { % Die größere Höhe soll eigentlich auch die caption erfassen. Das führt leider zu Fehlern und es kommt keine Ausgabe zu stande
		\includegraphics[height=0.26\textheight, keepaspectratio]{example-image-golden}
		\hfill
		\includegraphics[angle=90, height=0.26\textheight, keepaspectratio]{example-image-c}
	}
	\parbox [t] [0.5\textheight]{\textwidth}{ % Versuch, die Captions ohne Fehler darunter zu ordnen. Leider erfolglos...
		\captionof{figure}{Bild 5}\label{A:5}
		%\hfill
		\captionof{figure}{Bild 6}\label{A:6}
	}
\end{minipage}

\newpage

Variante ohne verschachtelte Minipages und ohne parbox

\noindent\begin{minipage}{\textwidth}
		\captionsetup{type=figure}
		{\includegraphics[height=0.26\textheight, keepaspectratio]{example-image-golden}
		\captionof{figure}{Bild 5}}
		\hfill
		{\includegraphics[angle=90, height=0.26\textheight, keepaspectratio]{example-image-c}
		\captionof{figure}{Bild 6}\label{A:6}}
\end{minipage}

\end{document}



Zuletzt geändert von MarSchl am Sa 6. Aug 2022, 18:49, insgesamt 1-mal geändert.

ich meine ja nur

Re: Anordnungsmöglichkeiten Bildertafel

Beitrag von ich meine ja nur »

Wenn du minipages gleicher Breite nebeneinander setzt, die Bilder darin aber nicht über die gesamte Breite gehen, dann hast du natürlich das Problem, dass dadurch innerhalb der minipages zusätzliche Abstände entstehen. Wenn also die Abstände gleich sein sollen, dann müssen die Bilder in der Breite die minipages auch ausfüllen, beispielsweise:
\documentclass[
pagesize=auto,
paper=a4,
BCOR=1.25cm,
DIV=11,
fontsize=12,
]{scrreprt}

\usepackage{fontspec}

\usepackage{graphicx}

\usepackage[format=plain, font=small, figurename=Abb. , justification=RaggedRight]{caption}
\DeclareCaptionLabelSeparator{colona}{: \\ }
\captionsetup[figure]{labelsep=colona}

\usepackage[colorlinks=true, linkcolor=black, urlcolor=black]{hyperref}

\begin{document}

\section*{Überschrift}% ACHTUNG: \LARGE hat kein Argument und taugt auch nicht, um eine Überschrift zu setzen!

Variante mit verschachtelten Minipages

\noindent\begin{minipage}{\textwidth}
	\begin{minipage}[t]{0.32\textwidth}
		\includegraphics[angle=90, width=\linewidth, keepaspectratio]{example-image-a}
		\captionof{figure}{Bild 1}\label{A:1}
	\end{minipage}
	\hfill	
	\begin{minipage}[t]{0.32\textwidth}
		\includegraphics[angle=90, width=\linewidth, keepaspectratio]{example-image-golden}
		\captionof{figure}{Bild 2}\label{A:2}
	\end{minipage}	
	\hfill	
	\begin{minipage}[t]{0.32\textwidth}
		\includegraphics[angle=90, width=\linewidth, keepaspectratio]{example-grid-100x100pt}
		\captionof{figure}{Bild 3}\label{A:3}
	\end{minipage}	
\end{minipage}


\end{document}
Wenn du unbedingt gleiche Höhe haben willst, dann musst du die Breite ermitteln oder ein Paket wie subcaption verwenden.

MarSchl
Forum-Anfänger
Forum-Anfänger
Beiträge: 12
Registriert: Mo 18. Jul 2022, 18:48

Re: Anordnungsmöglichkeiten Bildertafel

Beitrag von MarSchl »

Habe jetzt selbst meine Lösung gefunden.

Und zwar mittels der Definition neuer Breiten. Maximal drei pro (Über)Minipage - in diesem Fall.
Die müssen in der Präambel eingeführt werden und können vor jedem Gebrauch neu definiert werden:
1) Die Bilder, die in die (Unter)Minipages kommen, werden mit \settowidth ausgemessen. Und zwar unter Maßgabe der voraussichtlichen Höhe - height=0.26\textheight in beiden Fällen.
(Bei 0.3\textheight waren die Bilder bei der ersten Variante zu breit, deshalb musste ich die Höhe minimieren.)

2) Die (Unter)Minipages bekommen dann als Breitenangaben die entsprechend neudefinierten Breiten, die zuvor aus den Bildern gemessen worden, die dann in die (Unter)Minipages hinein kommen.

3) Pro (Über)Minipage müssen soviele neue Längen definiert werden, wie (Unter)Minipages in die (Über)Minipage hinein sollen.

Es ist zwar umständlich aber platzsparend und trotzdem schick.
Ich hoffe, das hilft auch anderen.
\documentclass[
pagesize=auto,
paper=a4,
BCOR=1.25cm,
DIV=11,
fontsize=12,
]{scrreprt}

\usepackage{fontspec}

\usepackage{graphicx}

\usepackage[format=plain, font=small, figurename=Abb. , justification=RaggedRight]{caption}
\DeclareCaptionLabelSeparator{colona}{: \\ }
\captionsetup[figure]{labelsep=colona}

\usepackage[colorlinks=true, linkcolor=black, urlcolor=black]{hyperref}

\newlength{\eins}

\newlength{\zwei}

\newlength{\drei}

\newlength{\vier}

\begin{document}

\LARGE{Überschrift}

Variante mit verschachtelten Minipages

\settowidth{\eins}{\includegraphics[angle=90, height=0.26\textheight, keepaspectratio]{example-image-a}}
\settowidth{\zwei}{\includegraphics[angle=90, height=0.26\textheight, keepaspectratio]{example-image-golden}}
\settowidth{\drei}{\includegraphics[angle=90, height=0.26\textheight, keepaspectratio]{example-grid-100x100pt}}

\noindent\begin{minipage}{\textwidth}
	\captionsetup{type=figure}
	\begin{minipage}[t]{\eins}
		\includegraphics[angle=90, height=0.26\textheight, keepaspectratio]{example-image-a}
		\captionof{figure}{Bild 1}\label{A:1}
	\end{minipage}
	\hfill	
	\begin{minipage}[t]{\zwei}
		\includegraphics[angle=90, height=0.26\textheight, keepaspectratio]{example-image-golden}
		\captionof{figure}{Bild 2}\label{A:2}
	\end{minipage}	
	\hfill	
	\begin{minipage}[t]{\drei}
		\includegraphics[angle=90, height=0.26\textheight, keepaspectratio]{example-grid-100x100pt}
		\captionof{figure}{Bild 3}\label{A:3}
	\end{minipage}	
\end{minipage}

\vfill

\noindent\begin{minipage}[t]{\textwidth}
\centering
\captionsetup{type=figure}
\includegraphics[width=\textwidth, height=0.4\textheight]{example-image-b}
\captionof{figure}{Bild 4}\label{A:4}
\end{minipage}

\newpage

\settowidth{\eins}{\includegraphics[height=0.26\textheight, keepaspectratio]{example-image-golden}}
\settowidth{\zwei}{\includegraphics[angle=90, height=0.26\textheight, keepaspectratio]{example-image-c}}

\noindent\begin{minipage}{\textwidth}
	\begin{minipage}[t]{\eins}
        \includegraphics[height=0.26\textheight, keepaspectratio]{example-image-golden}
		\captionof{figure}{Bild 5}\label{A:5}
	\end{minipage}
	\hfill
	\begin{minipage}[t]{\zwei}	
		\includegraphics[angle=90, height=0.26\textheight, keepaspectratio]{example-image-c}
		\captionof{figure}{Bild 6}\label{A:6}
	\end{minipage}
\end{minipage}

\end{document}

Antworten