PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Figures nebeneinander



greenmoon
27-12-2020, 16:51
Hi,

das Thema gibt es gefühlt mindestens tausend mal, aber ich hab bisher keine Lösung gefunden, die für mich funktioniert. Und zwar will ich zwei Bilder nebeneinander setzen, und die sollen automatisch so skaliert werden, dass beide Bilder dieselbe Höhe haben. Einfachster Ansatz


\begin{figure}
\centering
\includegraphics[width=.415\textwidth]{Bild1.png}%
\includegraphics[width=.585\textwidth]{Bild2.png}%
\caption{bla bla bla}
\end{figure}

wobei .415 und .585 durch ausprobieren bestimmt wurden, aber natürlich nicht exakt stimmen, wenn man wirklich reinzoomt. Meine Idee wäre diese Faktoren automatisch berechnen zu lassen. Vielleicht ist das auch dumm oder hässlich, das weiß ich noch nicht, würde das aber gerne ausprobieren.

Über google hab ich primär Ergebnisse gefunden um mit minipages Bilder auf der gleichen Höhe anfangen zu lässen, aber halt nicht auch zu enden. Das kann man natürlich auch hier über die größe der minipage regeln, aber auch das wäre dann ja wieder Handarbeit.


\begin{figure}
\begin{minipage}[t]{0.49\textwidth}
\includegraphics[width=1\linewidth]{Bild1.png}
\end{minipage}\hfill
\begin{minipage}[t]{0.49\textwidth}
\includegraphics[width=1\linewidth]{Bild2.png}
\end{minipage}
\caption{bla bla bla}
\label{fig:test}
\end{figure}


Edit: Dumm, ich kann einfach die gleiche Höhe vorgeben [height=5.8cm] statt der width. Wobei man dann jetzt die 5.8cm so anpassen muss, dass die gesamte Breite benutzt wird. So richtig zufrieden bin ich damit auch noch nicht

rais
28-12-2020, 22:10
Nun ja, ohne zu wissen, welche Dimensionen (oder vielmehr, in welchem Verhältnis x/y beide sein können), ganz zu schweigen von \linewidth, sagt mir zumindest eine Höhenangabe von 5,8 cm erstmal rein gar nix.
Wie dem auch sei, theoretisch könnte man beide Abbildungen mit gleicher Höhe (z. B. 1 cm) zusammen in eine Box packen (siehe \newbox, \sbox), dann die Breite dieser Box abfragen (siehe \wd) und die Zielbreite (\linewidth, bzw. \linewidth - <Abstand_zwischen_den_Bildern>) durch eben diese Breite teilen (siehe \divide) -- wobei das vermutlich nicht direkt umsetzbar ist...bei \divide ist der Divisor normalerweise ohne Einheit anzugeben (und die ermittelte Breite wäre hier in Punkt (pt))...hier könnte \strip@pt helfen (siehe source2e). Dann hättest Du quasi den Skalierungsfaktor, der nötig wäre, um die Höhe entsprechend anzupassen. `Quasi', weil der Quotient auch wieder eine Länge sein dürfte, eben in Punkt. Wobei, wenn die Dummybox von oben 1 cm hoch ist, reicht hier vllt eine Multiplikation (siehe \multply) mit 28,452755 (= 72.27 pt/in / 2.54 cm/in), um direkt auf die erforderliche Höhe zu kommen.

Wobei, wenn beide Bilder höher als breit sind, müsstest Du vermutlich noch abfangen, wenn die Höhe der Bilder \textheight - Abstand oben - Abstand unten - Abstand Abbildung/\caption - Höhe der \caption überschreitet.

Wenn dann auch noch beide Abbildungen mit unterschiedlichen Beschriftungen versehen werden sollen (siehe Pakete subfig, subcaption), müsstest Du auch noch die Breiten beider Abbildungen bei berechneter Höhe bestimmen...

VG

greenmoon
29-12-2020, 11:56
Nun ja, ohne zu wissen, welche Dimensionen (oder vielmehr, in welchem Verhältnis x/y beide sein können), ganz zu schweigen von \linewidth, sagt mir zumindest eine Höhenangabe von 5,8 cm erstmal rein gar nix.

Genau das ist das Problem :)

Vielen Dank für deine Antwort, das klingt nach einer sehr guten Anleitung um sich daraus eine Lösung zu bauen. Aber auch nach viel Aufwand für etwas, dass ich nur mal testen will. Ich denke daher, dass ich das erstmal nicht weiter verfolgen werde.