PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Bilder nebeneinander, subfig funktioniert nicht



Ninawe
06-02-2014, 08:15
Hallo,
ich weiß das Thema ist sicher schon ausgelutscht, aber ich hab leider immernoch meine Probleme. Ich möchte in einem amsbook 2 Bilder nebeneinander haben, mit captions und am besten sowas wie Abb. 1.1.1 und Abb. 1.1.2 drunter.
Mit subfig -Paket setzt es mir die Bilder IMMER untereinander, was mir zu viel Platz verschwendet. Und mit der minipage und figureumgebung gemeinsam wird es seltsam verschoben und die captions zusammengequetscht. So wie hier.
https://lh6.googleusercontent.com/-rm-n8w-tgl0/UvNENsjgQ3I/AAAAAAAAA4k/qY-pFm8e3Gs/s650/test_bild.png
Hier mein Code:

\begin{figure}
\begin{minipage}[hbt]{4cm}
\centering
\renewcommand*\figurename{Abb.}
\includegraphics[width=5cm]{bilder/vorher.jpg}
\caption{Flächenstrahler}
\label{fig:flaechenstrahler}
\end{minipage}
\hfill
\begin{minipage}[hbt]{4cm}
\centering
\renewcommand*\figurename{Abb.}
\includegraphics[width=5cm]{bilder/nachher.jpg}
\caption{Temperaturbild eines Flächenstrahlers}
\label{fig:temp_flaechenstrahler}
\end{minipage}
\end{figure}

Kann mir bitte einer helfen?

sommerfee
06-02-2014, 13:58
Mit subfig -Paket setzt es mir die Bilder IMMER untereinander
Das glaube ich einfach 'mal ganz frech nicht. Also: Show me!


Kann mir bitte einer helfen?
Hast du ein lauffähiges(!) Beispiel für uns?

P.S.: amsbook hat einige Eigenarten, was die Behandlung von \caption angeht, u.a. betrifft dies auch die Ränder. subfig übernimmt die Randeinstellungen leider, so daß man sie explizit ausschalten muß, bei subcaption ist hingegen der Default "kein Rand". Wenn du mit minipages arbeitest, mußt du auch selber lokal unerwünschte Einstellungen via \captionsetup abstellen. Siehe auch caption-Dokumentation, Abschnitt über die AMS-Dokumentenklassen.

Ninawe
07-02-2014, 08:12
Ok, ich habs selber rausgefunden. Man muss bei subfigure noch ein \hfill zwischen die beiden Bilder setzen.:D Also nach dem ersten\end{subfigure}...Da soll man mal drauf kommen!

Studi
07-02-2014, 10:15
Das glaube ich nicht, dass ein \hfill das Untereinandersetzen verhindert. Das fügt nämlich einen elastischen horizontalen Zwischenraum ein, es wird also nicht weniger. Eher hast Du es zufällig anders gelöst, das kann man natürlich nur sagen, wenn Du die Codestelle zeigst bzw. wie sie vorher war.

Studi

Ninawe
07-02-2014, 10:30
Hallo,
hier das Beispiel, einmal mit der Minipage, dann mit dem Bild ohne hfill und mit hfill. Unten kann man die Testbilder runterladen.


\documentclass[german,11pt,twoside,a4paper,final,titlepage,openan y]{amsbook}
\usepackage[ngerman]{babel}
\usepackage[latin1]{inputenc}
\usepackage[pdftex]{graphicx}
\usepackage{mathrsfs,amssymb}
\usepackage{amsbsy,amsmath}
\usepackage{float}
\usepackage{subcaption}
\begin{document}

\begin{figure}
\begin{minipage}[hbt]{5cm}
\centering
\renewcommand*\figurename{Abb.}
\includegraphics[width=5cm]{bilder/testbild2.jpg}
\caption{Blabla}
\label{fig:Bild1}
\end{minipage}
\hfill
\begin{minipage}[hbt]{5cm}
\centering
\renewcommand*\figurename{Abb.}
\includegraphics[width=5cm]{bilder/testbild3.jpg}
\caption{Blablablablablablablablablabla}
\label{fig:Bild2}
\end{minipage}
\end{figure}

\begin{figure}[!htb]
\begin{subfigure}[c]{0.5\textwidth}{
\includegraphics[scale = 0.7]{bilder/testbild2.jpg}}
\subcaption{blablabla}
\end{subfigure}
\begin{subfigure}[c]{0.5\textwidth}{
\includegraphics[scale= 0.7]{bilder/testbild3.jpg}}
\subcaption{blablabla}
\end{subfigure}
\caption{Blablablablablbalblablabla}\label{fig:bla blabla}
\end{figure}

\begin{figure}[!htb]
\begin{subfigure}[c]{0.5\textwidth}{
\includegraphics[scale = 0.7]{bilder/testbild2.jpg}}
\subcaption{blablabla}
\end{subfigure}\hfill
\begin{subfigure}[c]{0.5\textwidth}{
\includegraphics[scale= 0.7]{bilder/testbild3.jpg}}
\subcaption{blablabla}
\end{subfigure}
\caption{Blablablablablbalblablabla}\label{fig:sto ergroessen}
\end{figure}

\end{document}

Bis jetzt hat es aber bei allen funktioniert. Bei einem meiner Bilder macht es einfach gar keinen Platz zwischen den Bildern sondern klebt die Kante an kante, das passt mir da aber ganz gut.
Keine Ahnung woher das jetzt so gut funktioniert, aber bis jetzt bin ich zufrieden!

FelixT
07-02-2014, 12:31
Du hast es tatsächlich mit \hfill beheben können, das ist jedoch ein Nebeneffekt. Du hast 2 Bilder mit 0.5\textwidth Breite drin, das ist exakt Textbreite. Ohne \hfill hast Du einen Zeilenumbruch im Quelltext, und das wirkt wie ein Leerzeichen. Dadurch wird es auf einmal zu breit, und ein Umbruch kommt vor der Abbildung. Mit \hfill hingegen wirkt der Zeilenumbruch nicht wie ein Leerzeichen, dadurch ist es wieder Textbreite.

Es hätte an der Stelle daher sogar % genügt statt \hfill, zum Auskommentieren des Zeilenumbruchs/Leerzeichens. Daher sieht man sowas öfter in Quelltexten, falls Du Dich sowas schonmal gefragt hättest.

Hier auch thematisiert: Was sollen die Kommentar-Zeichen (%) am Ende der Zeilen? (http://texwelt.de/wissen/fragen/16/was-sollen-die-kommentar-zeichen-am-ende-der-zeilen)

Felix

Ninawe
07-02-2014, 14:48
Super, danke für die Antwort! Hätte ich das ganze auch mit 0.45 textwidth beheben können, statt zweimal 0.5?

FelixT
07-02-2014, 15:00
Ja, 0.45\textwidth hätte es auch behoben. Dann ist auch \hfill zwischendrin gut, so wird der Zwischenraum gestreckt, so dass die Breite voll ausgenutzt wird. Deshalb wird \hfill auch gern genommen, so muss man nicht auf den Pixel genau rechnen, hat Symmetrie und gute Platzausnutzung. Oder man will eh was harmonisch mit gleichen Abständen auf der Seite aufteilen, etwa 3 Objekte mit jeweils einem \hfill dazwischen.

Felix