Zwei Bilder mit zwei Rahmen nebeneinander Thema ist als GELÖST markiert

Tabellen und Grafiken erstellen und anordnen


gast84

Zwei Bilder mit zwei Rahmen nebeneinander

Beitrag von gast84 »

Guten Morgen zusammen,

ich habe eine LaTeX-Vorlage bekommen die ich anpassen muss. Es geht prinzipiell darum zwei Grafiken nebeneinander mit unterschiedlichen Beschriftungen anzeigen zu lassen. Beide sollen einen eigenen schwarzen Rahmen bekommen.

Das Problem ist, dass bei unterschiedlichen Bildgrößen auch die sichtbaren Rahmen unterschiedlich hoch sind. Hat jemand eine Idee wie ich das lösen kann?

Der Aufruf des folgenden Befehls ist:
\doublepicsmall
{Bild1}{Bildunterschrift1}{Label1}
{Bild2}{Bildunterschrift2}{Label2}

Gruß
Dennis
\newcommand{\doublepicsmall}[6]{%
\begin{figure}
   \parbox[tt]{62.5mm}{%
   \setlength{\fboxsep}{5mm}%
		\setlength\fboxrule{0.25pt}%
		\fbox{\includegraphics[width=62.5mm-2\fboxsep]{#1}}%
     \figcaption{#2}}%
     \label{#3}%
   \hspace{5mm}%
   \parbox[tt]{62.5mm}{%
	 \setlength{\fboxsep}{5mm}%
		\setlength\fboxrule{0.25pt}%
		\fbox{\includegraphics[width=62.5mm-2\fboxsep]{#4}}%
     \figcaption{#5}}
     \label{#6}%
\end{figure}
}

Epllus
Forum-Guru
Forum-Guru
Beiträge: 470
Registriert: So 23. Sep 2012, 17:31

Beitrag von Epllus »

Eine Möglichkeit könnte sein, eine fixe Höhe einzuführen:
\newcommand{\doublepicsmall}[6]{% 
\begin{figure} 
   \parbox[tt]{62.5mm}{% 
   \setlength{\fboxsep}{5mm}% 
      \setlength\fboxrule{0.25pt}% 
      \fbox{\includegraphics[width=62.5mm-2\fboxsep,height=10cm]{#1}}% 
     \figcaption{#2}}% 
     \label{#3}% 
   \hspace{5mm}% 
   \parbox[tt]{62.5mm}{% 
    \setlength{\fboxsep}{5mm}% 
      \setlength\fboxrule{0.25pt}% 
      \fbox{\includegraphics[width=62.5mm-2\fboxsep,height=10cm]{#4}}% 
     \figcaption{#5}} 
     \label{#6}% 
\end{figure} 
} 
Ungetestet wegen fehlendem Minimalbeispiel

Grüße
Epllus

gast84

Beitrag von gast84 »

Hallo Epllus,

danke für deinen Vorschlag! Ich reiche das Beispiel nach. Im Moment ist das Problem bei deiner Lösung, dass die Bilder auch in die Höhe skaliert werden. Lässt sich das vermeiden? Oder anders ausgedrückt: wie kann ich die Bilder auf die Breite skalieren und dabei das Seitenverhältnis beibehalten?

Gruß Dennis
\documentclass[a4paper, 10pt]{scrbook}

\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc}
\usepackage[ngerman]{babel}
\usepackage[demo]{graphicx}
\usepackage{nonfloat}
\usepackage{calc}

\newcommand{\doublepicsmall}[6]{%
\begin{figure}
   \parbox[tt]{62.5mm}{%
   \setlength{\fboxsep}{5mm}%
      \setlength\fboxrule{0.25pt}%
      \fbox{\includegraphics[width=62.5mm-2\fboxsep,height=10cm]{#1}}%
     \figcaption{#2}}%
     \label{#3}%
   \hspace{5mm}%
   \parbox[tt]{62.5mm}{%
    \setlength{\fboxsep}{5mm}%
      \setlength\fboxrule{0.25pt}%
      \fbox{\includegraphics[width=62.5mm-2\fboxsep,height=10cm]{#4}}%
     \figcaption{#5}}
     \label{#6}%
\end{figure}
}

\begin{document}

\doublepicsmall
	{Bild1}{Unterschrift 1}{fig:Bild1}
	{Bild2}{Unterschrift 2}{fig:Bild2}

\end{document}

Besserwisser

Beitrag von Besserwisser »

\includegraphics kennt dafür eine Option (irgendwas mit aspect). Schau einfach mal in die Anleitung zu graphicx.

BTW: Ich würde empfehlen, nicht mit absoluten Längen in mm, sondern für die Breite abhängig von \linewidth (oder \columnwidth oder \textwidth) und für die Höhe abhängig von ex, \baselineskip oder \textheight (oder ggf. ebenfalls \linewidth etc.) zu arbeiten.

gast84

Beitrag von gast84 »

Hallo,

wenn ich die Option
keepaspectratio
einfüge wird die Höhe des Rahmens wieder ignoriert. Es muss doch möglich sein einen festen Rahmen vozugeben und das Bild darin zu zentrieren ohne dass sich das Seitenverhältnis ändern!? :?

Gruß
Dennis

Noch so einer

Beitrag von Noch so einer »

Wenn Du einen Rahmen fester Höhe haben willst, in dem dann vertikal das Bild zentriert werden soll, dann solltest Du schlicht eine \parbox mit gewünschter Höhe (geht per optionalem Argument, siehe usrguide) und vertikal zentriertem Inhalt in die \fbox packen und erst in dieser \parbox dann \includegraphics verwenden.
\documentclass[a4paper, 10pt]{scrbook}

\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc}
\usepackage[ngerman]{babel}
\usepackage[demo]{graphicx}
\usepackage{nonfloat}
\usepackage{calc}

\newcommand{\doublepicsmall}[6]{%
\begin{figure}
   \parbox[tt]{62.5mm}{%
   \setlength{\fboxsep}{5mm}%
      \setlength\fboxrule{0.25pt}%
      \fbox{\includegraphics[width=\linewidth-2\fboxsep-2\fboxrule,height=10cm]{#1}}%
     \figcaption{#2}}%
     \label{#3}%
   \hspace{5mm}%
   \parbox[tt]{62.5mm}{%
    \setlength{\fboxsep}{5mm}%
      \setlength\fboxrule{0.25pt}%
      \fbox{\parbox[b][10cm][c]{\linewidth-2\fboxsep-2\fboxrule}{%
          \includegraphics[width=\linewidth,height=5cm]{#4}}}%
     \figcaption{#5}}
     \label{#6}%
\end{figure}
}

\begin{document}

\doublepicsmall
   {Bild1}{Unterschrift 1}{fig:Bild1}
   {Bild2}{Unterschrift 2}{fig:Bild2}

\end{document}
Ich habe bei der Gelegenheit auch noch die Breite korrigiert.

Besserwisser

Beitrag von Besserwisser »

Noch ein klein wenig optimiert:
\documentclass[a4paper,10pt]{scrbook}

\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc}
\usepackage[ngerman]{babel}
\usepackage[demo]{graphicx}
\usepackage{calc}

\newcommand{\doublepicsmall}[6]{%
\begin{figure}
   \parbox[tt]{(\linewidth-5mm)/2}{%
   \setlength{\fboxsep}{5mm}%
      \setlength\fboxrule{0.25pt}%
      \fbox{\includegraphics[width=\linewidth-2\fboxsep-2\fboxrule,height=10cm]{#1}}%
     \caption{#2}}%
     \label{#3}%
   \hfill
   \parbox[tt]{(\linewidth-5mm)/2}{%
    \setlength{\fboxsep}{5mm}%
      \setlength\fboxrule{0.25pt}%
      \fbox{\parbox[b][10cm][c]{\linewidth-2\fboxsep-2\fboxrule}{%
          \includegraphics[width=\linewidth,height=5cm]{#4}}}%
     \caption{#5}}
     \label{#6}%
\end{figure}
}

\begin{document}

\doublepicsmall
   {Bild1}{Unterschrift 1}{fig:Bild1}
   {Bild2}{Unterschrift 2}{fig:Bild2}

\end{document}
Übrigens: Linien mit einer Dicke von 0,4 Punkt sind bereits Haarlinien. 0,25 pt wären nur 0,003 in, also bei 300dpi gerade noch ein Pixel, aber auf dem Bildschirm je nach Viewer bereits wegoptimiert.

Benutzeravatar
u_fischer
Forum-Meister
Forum-Meister
Beiträge: 4297
Registriert: Do 22. Nov 2012, 11:09
Kontaktdaten:

Beitrag von u_fischer »

Ich würde \vphantom benutzen, um die Höhe des jeweiligen anderen Bildes in die \fbox zu bekommen:
\documentclass[a4paper, 10pt]{scrbook}

\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{graphicx}
\usepackage{nonfloat}
\usepackage{calc}
\usepackage{mwe} %example images
\newcommand{\doublepicsmall}[6]{%
\begin{figure}    
    \setlength{\fboxsep}{5mm}%
    \setlength\fboxrule{0.25pt}%
    \parbox{62.5mm}{%
    \fbox{\vphantom{\includegraphics[width=62.5mm-2\fboxsep]{#4}}%
                    \includegraphics[width=62.5mm-2\fboxsep]{#1}}%
    \figcaption{#2}%
    \label{#3}}%
    \hspace{5mm}%
    \parbox{62.5mm}{%
    \fbox{\vphantom{\includegraphics[width=62.5mm-2\fboxsep]{#1}}%
                    \includegraphics[width=62.5mm-2\fboxsep]{#4}}%
    \figcaption{#5}
    \label{#6}}%
\end{figure}
}

\begin{document}

\doublepicsmall
    {example-image-a}{Unterschrift 1}{fig:Bild1}
    {example-image-10x16}{Unterschrift 2}{fig:Bild2}

\end{document}

gast84

Beitrag von gast84 »

Das funktioniert, vielen Dank! :-)

rtztrzt

Beitrag von rtztrzt »

Incubus84 hat geschrieben:\usepackage{nonfloat}
Das nonfloat-Paket ist inkompatibel zu KOMA-Script, weil es dessen Abstand-\caption-zum-Bild-Algorithmus kaputt macht. Davon ab ergibt ein \figcaption innerhalb einer figure sowieso wenig Sinn...

Außerdem muß das \label mit in die \parbox, direkt hinter \caption.

Antworten