PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Formatierung in subfig



Cerebellum
01-06-2012, 15:44
Hallo,

mein Problem ist leider etwas spezieller. Ich habe quadratische jpg-Bilder, die allerdings alle eine unterschiedliche Pixelabmessung besitzen. Ich möchte diese Bilder in einer subfig-Abb. nebeneinander anordnen und habe versucht, über [width=0.25\textwidth] eine einheitliche Breite (und damit auch Höhe, die Bilder sind ja Quadrate) zu erzwingen. Leider steht immer noch ca. 1mm über, und die Zwischenräume zwischen den Bildern sind auch verschieden. Nicht groß, aber groß genug, dass man es sieht. Liegt das an den Bildern oder gibt es eine elegantere Möglichkeit, das zu ändern?

Vielen Dank!



\documentclass[draft]{scrreprt}

\usepackage{subfig}
\usepackage{geometry}
\usepackage{graphicx}

\begin{document}

\begin{figure}
\subfloat[Zellkern]{\includegraphics[width=0.25\textwidth]{Bild1}} \hspace{4pt}
\subfloat[Zellmembran]{\includegraphics[width=0.25\textwidth]{Bild2}} \hspace{4pt}


\end{figure}

\end{document}


Die entsprechenden Bilder kann ich euch leider nicht zur Verfügung stellen, geheim :(

hakaze
01-06-2012, 16:29
Hallo Kleinhirn,
mir ist nicht so ganz klar, wo bei 2 Abbildungen verschiedene Abstände sein können oder wo es 1 mm über stehen kann.

Wenn du deine Abbildungen nicht posten willst (kann ich nachvollziehen), benutze doch
\rule{0.25\textwidth}{0.25\textwidth} an Stelle von includegraphics, um "quadratische Bilder" im Minimalbeispiel zu erzeugen.

rstuby
01-06-2012, 16:43
Hmmm, ich schätze mal, dass bei zweimal \rule mit exakt den gleichen Abmessungen sowieso nix übersteht. Vielleicht könnte man sich selber Testbilder basteln, wenn Cerebellum uns die exakten Pixelabmessungen seiner Originale mitteilt? Die sind ja wohl nicht geheim :-)

Cerebellum
01-06-2012, 16:45
Ok, ich habe das Beispiel wirklich sehr minimiert, tschuldigung. Ich habe insgesamt 20 Bilder in einer figure-Umgebung, also 5 Zeilen á 4 Bilder.
Wenn ich für jede subfloat das gleiche Bild nehme, sieht alles toll aus. (Deswegen würde auch dein rule-Vorschlag das Problem nicht lösen). Meine Bilder sind nun leider mal 170 Pixel breit, mal 300 Pixel. Ich möchte sie aber alle in der gleichen (absoluten) Breite haben.
Ich weiß nicht, ob es sinnvoll ist (und überhaupt funktionieren würde), die größeren Bilder mit einem Bildbearbeitungsprogramm "runterzubrechen"?

hakaze
01-06-2012, 16:47
@rstuby:
Du meinst, es könnte ein Interpolationsfehler sein, wenn verschiedene Pixelmaße auf die gleiche Länge skaliert werden?

Dann ist es vielleicht nur ein Darstellungs-/Rendering-Problem im PDF-Reader. Da würde ich mal einen Testausdruck der Seite machen, ob es da dann auch noch (so gravierend) auffällt.

@cerebellum:
Bei 4 Bilder pro Zeile solltest du aber auch den Skalierungsfaktor kleiner als 0.25\textwidth wählen. Sonst ja kein "Platz" mehr für die Zwischenräume.

Cerebellum
01-06-2012, 16:52
@hakaze
Ja, ich bin mittlerweile bei 0.22\textwidth. Auch im Testausdruck fällt der Unterschied zu stark auf, als dass ich mich damit zufrieden geben könnte. Ich dachte auch an einen Skalierungsfehler, sehe aber keine Möglichkeit, den zu beheben...

hakaze
01-06-2012, 17:20
Das ist echt merkwürdig. Ich habe mal dieses Bild aus der Wikipedia (http://de.wikipedia.org/w/index.php?title=Datei:The_Earth_seen_from_Apollo_1 7.jpg&filetimestamp=20101017074211) auf 170x170 bzw. 300x300 Pixel skaliert und damit sehe ich auch keine Fehler in meinem Testdokument:
\documentclass[]{scrreprt}

\usepackage[]{subfig}
\usepackage{geometry}
\usepackage{graphicx,lipsum}

\begin{document}
\lipsum[2]

% Berechne Platz für subpics = textwidth - 3x Zwischenraum
\newlength{\EchteTextwidth}
\setlength{\EchteTextwidth}{\textwidth}
\addtolength{\EchteTextwidth}{-12pt}
\begin{figure}[htb]
\subfloat[Zellkern]{\includegraphics[width=0.25\EchteTextwidth]{170px.jpg}}\hspace{4pt}%
\subfloat[Zellmembran]{\includegraphics[width=0.25\EchteTextwidth]{300px.jpg}}\hspace{4pt}%
\subfloat[Zelldings]{\includegraphics[width=0.25\EchteTextwidth]{170px.jpg}}\hspace{4pt}%
\subfloat[Zelltod]{\includegraphics[width=0.25\EchteTextwidth]{300px.jpg}}%

\subfloat[Zellkern]{\includegraphics[width=0.25\EchteTextwidth]{300px.jpg}}\hspace{4pt}%
\subfloat[Zellmembran]{\includegraphics[width=0.25\EchteTextwidth]{170px.jpg}}\hspace{4pt}%
\subfloat[Zelldings]{\includegraphics[width=0.25\EchteTextwidth]{300px.jpg}}\hspace{4pt}%
\subfloat[Zelltod]{\includegraphics[width=0.25\EchteTextwidth]{170px.jpg}}%

\subfloat[Zellkern]{\includegraphics[width=0.25\EchteTextwidth]{170px.jpg}}\hspace{4pt}%
\subfloat[Zellmembran]{\includegraphics[width=0.25\EchteTextwidth]{300px.jpg}}\hspace{4pt}%
\subfloat[Zelldings]{\includegraphics[width=0.25\EchteTextwidth]{170px.jpg}}\hspace{4pt}%
\subfloat[Zelltod]{\includegraphics[width=0.25\EchteTextwidth]{300px.jpg}}%
\end{figure}

\lipsum[2]
\end{document}Wie du siehst habe ich die etwas mit der Berechnung der Breite gespielt. Auch die Prozentzeichen am Zeilenende und die Leerzeilen scheinen signifikant zu sein. Scheinbar werden die Bilder wie "Worte" behandelt, und mit zusätzlichen Weissräumen klappt der "Zeilenumbruch" nicht wie gewünscht.