Ausrichtung meherer Bilder nebeneinander

Tabellen und Grafiken erstellen und anordnen


volkerr
Forum-Newbie
Forum-Newbie
Beiträge: 7
Registriert: Sa 13. Aug 2011, 13:49

Ausrichtung meherer Bilder nebeneinander

Beitrag von volkerr »

Hallo,

ich habe mal eine Frage zu einem Problem mit dem ich zur Zeit kämpfe. Ich möchte vier unterschiedlich große Bilder nebeneinander darstellen. Dabei sollen die Bilder an iherer Mitte ausgerichtet sein, die jeweiligen Captions aber am untersten. Ist sowas möglich? Ich kenne die Packete Subcaption und Subfig. Mit Subcaption bekomme ich es hin, dass die Caption oben und die Bilder am oberen Rand ausgerichtet sind. Leider aber nicht das was ich wünsche.
So siehts aus:
[/code]
\documentclass[a4paper,11pt,titlepage]{article}
\usepackage{caption}
\usepackage{subcaption}
%\captionsetup[sub]{position=top} %um Position der Subcaptions zu ändern

\begin{document}

\begin{figure}
\centering
\subcaptionbox{}
{\includegraphics[scale=0.65]{Bild 1}}\hfill
\subcaptionbox{}
{\includegraphics[scale=0.65]{Bild 2}}\hfill
\subcaptionbox{}
{\includegraphics[scale=0.65]{Bild 3}}\hfill
\subcaptionbox{}
{\includegraphics[scale=0.65]{Bild 4}}
\caption{}
\label{}
\end{figure}

\end{document}
[/code]

[/code]

Hagbard Celine
Forum-Century
Forum-Century
Beiträge: 152
Registriert: Mi 23. Feb 2011, 22:13
Wohnort: Halle (Saale)

Beitrag von Hagbard Celine »

Hallo Volker,
das ist zwar keine elegante Lösung, aber du kannst du Bilder vier minipage-Umgebungen stecken, die du jeweils an ihrer Mitte ausrichtest. Dann packst du darunter vier minipage-Umgebungen gleicher Breiten, die du am oberen Rand ausrichtest und in die du die zugehörigen captions steckst.
Etwa so:
\begin{figure}
\begin{minipage}[c]{\widthof{\includegraphics[scale=0.65]{Bild1}}}
   \includegraphics[scale=0.65]{Bild1}
\end{minipage}
\hfill
\begin{minipage}[c]{\widthof{\includegraphics[scale=0.65]{Bild2}}}
   \includegraphics[scale=0.65]{Bild2}
\end{minipage}
\hfill
\begin{minipage}[c]{\widthof{\includegraphics[scale=0.65]{Bild3}}}
   \includegraphics[scale=0.65]{Bild3}
\end{minipage}
\hfill
\begin{minipage}[c]{\widthof{\includegraphics[scale=0.65]{Bild4}}}
   \includegraphics[scale=0.65]{Bild4}
\end{minipage}

\begin{minipage}[t]{\widthof{\includegraphics[scale=0.65]{Bild1}}}
   \caption{Bildunterschrift1}
\end{minipage}
\hfill
\begin{minipage}[t]{\widthof{\includegraphics[scale=0.65]{Bild1}}}
   \caption{Bildunterschrift2}
\end{minipage}
\hfill
\begin{minipage}[t]{\widthof{\includegraphics[scale=0.65]{Bild1}}}
   \caption{Bildunterschrift3}
\end{minipage}
\hfill
\begin{minipage}[t]{\widthof{\includegraphics[scale=0.65]{Bild1}}}
   \caption{Bildunterschrift4}
\end{minipage}
\end{figure}
Ich habe allerdings nicht ausprobiert, ob das genau so funktioniert. Es hat bei mir aber schon mal geklappt, dass ich damit Bilder unten und Unterschriften oben ausgerichtet habe, ob das mittig problemlos geht, weiß ich nicht.

Schönes Wochenende,
Jonas

volkerr
Forum-Newbie
Forum-Newbie
Beiträge: 7
Registriert: Sa 13. Aug 2011, 13:49

Beitrag von volkerr »

Hi,

danke für die Antwort. Ich hab deinen Vorschlag versucht und es funktioniert leider nicht. Ich hab auch recht schnell aufgegeben den Fehler zu suchen weil ich deinen Code nicht verstehe. Du bindest irgendwie jede Grafik zweimal ein, soll das so? Und auch da, wo dann nur die Bildunterschriften stehen bindest du nochmal ein Bild ein. Warum? Tut mir Leid, dass ich solch Fragen stelle, aber ich bin noch recht grün hinter den Ohren was Latex angeht.
(Und grau auf dem Kopf durch Word :wink: )

Gruß, Volker

Hagbard Celine
Forum-Century
Forum-Century
Beiträge: 152
Registriert: Mi 23. Feb 2011, 22:13
Wohnort: Halle (Saale)

Beitrag von Hagbard Celine »

Ja, da habe ich schon etwas zu weit (oder nicht weit genug) gedacht.
Ich binde die Grafiken nur jeweils einmal ein. Der Befehl \widthof sorgt in definiert in diesem Fall die Breite der minipages. Als Argument hat er das jeweilige Bild, damit die betreffende minipage genauso breit ist, wie das Bild und du nicht von Hand rumprobieren musst, wie breit sie sein muss. Ich habe aber vergessen, zu erwähnen, dass du dafür das Paket calc einbinden musst.
Folgender Code funktioniert bei mir (die verschiedenen scale-Faktoren sind nur, weil ich vier mal das gleiche Bild verwendet habe):
\documentclass{scrartcl}
\usepackage{graphicx}
\usepackage{calc}

\begin{document}

\begin{figure}
	\begin{minipage}[c]{\widthof{\includegraphics[scale=0.05]{Bild1}}}
		\includegraphics[scale=0.05]{Bild1}
	\end{minipage}
	\hfill
	\begin{minipage}[c]{\widthof{\includegraphics[scale=0.1]{Bild2}}}
		\includegraphics[scale=0.1]{Bild2}
	\end{minipage}
	\hfill
	\begin{minipage}[c]{\widthof{\includegraphics[scale=0.08]{Bild3}}}
		\includegraphics[scale=0.08]{Bild3}
	\end{minipage}
	\hfill
	\begin{minipage}[c]{\widthof{\includegraphics[scale=0.15]{Bild4}}}
		\includegraphics[scale=0.15]{Bild4}
	\end{minipage}

	\begin{minipage}[t]{\widthof{\includegraphics[scale=0.05]{Bild1}}}
		\caption{Bildunterschrift1}
	\end{minipage}
	\hfill
	\begin{minipage}[t]{\widthof{\includegraphics[scale=0.1]{Bild2}}}
		\caption{Bildunterschrift2}
	\end{minipage}
	\hfill
	\begin{minipage}[t]{\widthof{\includegraphics[scale=0.08]{Bild3}}}
		\caption{Bildunterschrift3}
	\end{minipage}
	\hfill
	\begin{minipage}[t]{\widthof{\includegraphics[scale=0.15]{Bild4}}}
		\caption{Bildunterschrift4}
	\end{minipage}
\end{figure}

\end{document}
Allerdings ergibt sich bei mir das Problem, dass die captions zu breit (breiter als die minipages, in denen sie sich befinden) werden. Warum das so ist, weiß ich (noch) nicht. Wenn du also zufälligerweise kurze captions haben solltest, sollte es bei dir klappen, wenn nicht, probiere ich noch mal.
Viele Grüße,
Jonas

PS: Es sollte doch funktionieren, man muss nur babel für die Silbentrennung einbinden (und nicht zuuu schmale Bilder verwenden)...

volkerr
Forum-Newbie
Forum-Newbie
Beiträge: 7
Registriert: Sa 13. Aug 2011, 13:49

Beitrag von volkerr »

Hi,

wir kommen der Sache näher. Die Bilder sind jetzt schön zentriert. Er zeigt mir aber ein Error bezüglich der Captions an. Ich kann die erste Caption darstellen (die dann aber mittig unter dem gesamten Bild), danach aber keine mehr. Wenn ich jedem einzelnen Bild eine Unterschrift geben krieg ich ab dem zweiten diesen Fehler:

! Package floatrow Error: Caption(s) lost.

Meine Captions sind ansonsten kurz und sollten nicht über die Bilder hinaus ragen.

Aber auf jeden Fall schonmal danke bis hierher.

Hagbard Celine
Forum-Century
Forum-Century
Beiträge: 152
Registriert: Mi 23. Feb 2011, 22:13
Wohnort: Halle (Saale)

Beitrag von Hagbard Celine »

Das liegt offenbar am Paket floatrow. Ich kenne das nicht und habe auf die Schnelle nur gesehen, dass es das float-Paket ergänzt. Vielleicht brauchst du floatrow gar nicht und float reicht aus. Mit float funktioniert der Code, mit floatrow nicht.

volkerr
Forum-Newbie
Forum-Newbie
Beiträge: 7
Registriert: Sa 13. Aug 2011, 13:49

Beitrag von volkerr »

Hey, hey :)

ich habs geschafft. Ich habe jetzt statt eine Caption für die einzelnen Bilder zu nehmen subcaptions verwendet. Funktioniert und sieht so aus wie es soll.
Ganz großes Dankeschön.
Und bis zum nächsten Mal :wink:

Volker

sommerfee
Forum-Century
Forum-Century
Beiträge: 219
Registriert: Sa 12. Jul 2008, 08:02

Beitrag von sommerfee »

Das floatrow-Paket definiert figure und table so um, daß die Beschriftung fixiert wird (also unabhängig von der Position von \caption im Quelltext), dies hat aber den Nachteil, daß nur eine \caption pro figure- oder table-Umgebung erlaubt ist.

Man kann dem floatrow-Paket aber beibringen, dies entweder bei allen figure-Umgebungen nicht zu tun, oder aber nur bei bestimmten. Die Befehle habe ich nicht im Kopf, sind aber in der floatrow-Anleitung zu finden.

Was ich nicht verstehe: Das floatrow-Paket bietet mächtige Befehle und Umgebungen um genau das zu erreichen, was du möchtest, und was jetzt händisch zusammengebastelt ist. Warum benutzt du also nicht einfach die Möglichkeiten des floatrow-Paketes?

volkerr
Forum-Newbie
Forum-Newbie
Beiträge: 7
Registriert: Sa 13. Aug 2011, 13:49

Beitrag von volkerr »

Hab ich versucht. Floatrow bietet die Option mit dem saveboxe Kommando in die man das große Bild reinschreibt. Alle anderen Bilder sollen dann an der Box ausgerichtet werden. Das klappt auch mit zwei Bildern. Die sind dann aber sehr weit auseinander, auch wenn ich alle Platzhalterbefehle und alles andere wegnehme. Und wenn ich dann ein drittes Bild oder ein viertes dazunehme wird nur noch das erste angezeigt. Ich weiß nicht ob ich da was falsch gemacht habe, eigentlich habe ich den Code aus der Dokumentation eins zu eins übernommen.
Aber weil ich auch nach längerer Suche keinen Fehler finden konnte und ich wie gesagt auch nicht nicht so sehr geübt bin hab ich mich dazu entschieden hier hilfe zu suchen.
Wenn du eine elegantere Lösung kennst wäre ich ganz Ohr. Denn so toll es auch ist, dass es jetzt funktioniert, muss ich eingestehen, dass die jetzt verwendete Option sehr umfangreich ist.

Gruß, Volker.

Antworten