PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Abbildung mit oberer und unterer Begrenzung



josephine
03-07-2013, 07:03
Hallo zusammen,

ich würde gerne meine Abbildungen mit einer oberen und unteren Begrenzungslinie versehen. Zurzeit nutze ich \fbox, was mir allerdings einen kompletten Rahmen (oben, links, unten, rechts) setzt. Gibt es einen \fbox ähnlichen Befehl der mir den Rahmen nur oben und unten setzt? Hier mein MB:


\documentclass{scrbook}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}

\usepackage{graphicx}
\usepackage[format=hang,justification=justified,singlelinechec k=false]{caption} % format=hang sorgt für eine hängende Abbildungsbezeichnung, justification=justified sorgt für einen Blocksatz in der Abbildungsbeschriftung
\addtokomafont{caption}{\small\bfseries} % sorgt für small und fette Schriftart in der Abb.beschriftung
\addtokomafont{captionlabel}{\small\bfseries} % small und fette Schriftart für Abbildung xyz
\newcommand\Quelle[1]{\\[2mm]{Quelle: #1}} % Definiert einen neuen Befehl, damit der Abstand zwischen Quelle und Abbildung vergrößert werden kann

\usepackage{amsmath}
\usepackage{amsfonts}



\begin{document}

\begin{figure}[htbp]
\fbox{
{\begin{minipage}{1\textwidth}
\centering
\includegraphics[trim=15mm 115mm 15mm 128mm,clip,width=1\textwidth,draft=false]{images/platzhalter}
\end{minipage}}}
\textit{\small{\Quelle{Eigene Darstellung}}}
\caption{Beispielabbildung.}
\end{figure}

\end{document}

Vielen Dank.

klops
03-07-2013, 07:43
Wenn Du schon – löblicherweise – einen Befehl \Quelle definierst, solltest Du darin auch die komplette Formatierung der Quelle vornehmen. BTW: \small ist keine Anweisung mit Argument, sondern ein Umschalter, der bis zum Ende der aktuellen Gruppe reicht. Damit der aktuelle Absatz auch wirklich mit den Einstellungen von \small gesetzt wird, muss \small am Ende des Absatzes noch gültig sein. Das ist nicht der Fall, wenn \small in \textit steht. Deshalb im folgenden Beispiel umgekehrt und explizit mit \par am Anfang und Ende.

\documentclass{scrbook}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}

\usepackage[demo]{graphicx}
\usepackage[format=hang,justification=justified,singlelinechec k=false]{caption} % format=hang sorgt für eine hängende Abbildungsbezeichnung, justification=justified sorgt für einen Blocksatz in der Abbildungsbeschriftung
\addtokomafont{caption}{\small\bfseries} % sorgt für small und fette Schriftart in der Abb.beschriftung
\addtokomafont{captionlabel}{\small\bfseries} % small und fette Schriftart für Abbildung xyz
\newcommand\Quelle[1]{\par\vskip-\parskip\raggedleft\small\textit{Quelle: #1}\par} % Definiert einen neuen Befehl, damit der Abstand zwischen Quelle und Abbildung vergrößert werden kann
\newcommand*{\framerule}{%
\vskip-\parskip\vskip-\ht\strutbox
\noindent\rule{\linewidth}{\fboxrule}\par
}
\newcommand*{\frametoprule}{\framerule\vskip\fboxs ep}
\newcommand*{\framebottomrule}{\vskip\fboxsep\fram erule}

\usepackage{amsmath}
\usepackage{amsfonts}



\begin{document}

\begin{figure}
\centering
\frametoprule
\includegraphics[trim=15mm 115mm 15mm 128mm,clip,width=1\textwidth,draft=false]{images/platzhalter}
\Quelle{Eigene Darstellung}
\framebottomrule
\caption{Beispielabbildung.}
\end{figure}

\end{document}

Damit das als vollständiges Minimalbeispiel läuft, habe ich Option demo bei graphicx hinzugefügt. Die nimmst Du natürlich wieder heraus, wenn Du das mit Deiner eigenen Abbildung sehen willst.

Außerdem sollte man Platzierungsoptionen bei den Gleitumgebungen sparsam, also nicht von vorn herein bei jeder Gleitumgebung, verwenden (http://texwelt.de/wissen/fragen/85/warning-text-page-x-contains-only-floats/493). Siehe auch die Anmerkungen zur h-Option im verlinkten Beitrag.

esdd
03-07-2013, 07:56
Hallo,

alternativ kann man auch das Paket mdframed nutzen:

\documentclass{scrbook}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}

\usepackage{graphicx}
\usepackage[format=hang,justification=justified,singlelinechec k=false]{caption} % format=hang sorgt für eine hängende Abbildungsbezeichnung, justification=justified sorgt für einen Blocksatz in der Abbildungsbeschriftung
\addtokomafont{caption}{\small\bfseries} % sorgt für small und fette Schriftart in der Abb.beschriftung
\addtokomafont{captionlabel}{\small\bfseries} % small und fette Schriftart für Abbildung xyz
\newcommand\Quelle[1]{\par\vskip-\parskip\raggedleft\small\textit{Quelle: #1}\par} % Definiert einen neuen Befehl, damit der Abstand zwischen Quelle und Abbildung vergrößert werden kann

\usepackage{mdframed}
\mdfdefinestyle{tabelle}{leftline=false,rightline= false,nobreak}

\begin{document}

\begin{figure}[htbp]
\begin{mdframed}[style=tabelle]
\centering
\includegraphics{bild}
\Quelle{Eigene Darstellung}
\end{mdframed}
\caption{Beispielabbildung.}
\end{figure}

\end{document}
Gruß
Elke

josephine
03-07-2013, 09:29
Hallo Klops,

vielen Dank für deine Hilfe. Ich hab deinen Vorschlag mal bei mir umgesetzt. Dabei sind leider einige Probleme aufgetreten. Bspw. nutze ich den Befehl \Quelle auch unter meinen Tabellen. Sobald ich jedoch deine neu definierte Version von \Quelle verwende, wird diese umgebrochen (im MB wird "Eigene Darstellung" nach "Eigene" umgebrochen). Außerdem steht die Quelle dann viel zu dicht an der unteren Begrenzung der Tabelle, sprich an \bottomrule. Das Abstandsproblem ließe sich ja bspw. über
\bottomrule
\vskip 2mm
\Quelle{Eigene Darstellung} lösen, oder? Wie aber verhindert man den oben beschriebenen Zeilenumbruch?

Hier das MB:


\documentclass{scrbook}
%\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}

\usepackage[demo]{graphicx}
\usepackage[format=hang,justification=justified,singlelinechec k=false]{caption} % format=hang sorgt für eine hängende Abbildungsbezeichnung, justification=justified sorgt für einen Blocksatz in der Abbildungsbeschriftung
\addtokomafont{caption}{\small\bfseries} % sorgt für small und fette Schriftart in der Abb.beschriftung
\addtokomafont{captionlabel}{\small\bfseries} % small und fette Schriftart für Abbildung xyz
\newcommand\Quelle[1]{\par\vskip-\parskip\raggedright\small\textit{Quelle: #1}\par} % Definiert einen neuen Befehl, damit der Abstand zwischen Quelle und Abbildung vergrößert werden kann

\newcommand*{\framerule}{%
\vskip-\parskip\vskip-\ht\strutbox
\noindent\rule{\linewidth}{\fboxrule}\par
}
\newcommand*{\frametoprule}{\framerule\vskip\fboxs ep}
\newcommand*{\framebottomrule}{\vskip\fboxsep\fram erule}

\usepackage{booktabs}
\usepackage{tabularx}
\usepackage{tabu}



\begin{document}

\begin{figure}
\centering
\frametoprule
\includegraphics[trim=15mm 115mm 15mm 128mm,clip,width=1\textwidth,draft=false]{images/platzhalter}
\framebottomrule
\Quelle{Eigene Darstellung}
\caption{Beispielabbildung}
\end{figure}

\begin{table}
\captionsetup{singlelinecheck=true}
\caption{Beispielüberschrift}
\centering
\tabulinesep=2mm
\begin{tabu} to 1\linewidth{X[2,r,m]X[3,r,m]X[2,r,m]}
\toprule
Spalte 1 & Spalte 2 & Spalte 3 \\
\midrule
Zeile1 & > 0\,\% & test \\
Zeile2 & < 10\,\% & test \\
Zeile3 & < 10\,\% & test \\
Zeile4 & > 5\,\% & test \\
Zeile5 & < 10\,\% & test \\
\bottomrule
\Quelle{Eigene Darstellung}
\end{tabu}
\end{table}

\end{document}

Ehrlich gesagt, verstehe ich auch noch nicht ganz den Code, den du mir geschrieben hast. Ich versuche ihn mal zu erklären, so wie ich ihn verstehe. Also es geht um:
\newcommand*{\framerule}{%
\vskip-\parskip\vskip-\ht\strutbox
\noindent\rule{\linewidth}{\fboxrule}\par
}

Du definierst also einen neuen Befehl \framerule. Ok. Sehe ich es jetzt richtig, dass der Abstand oberhalb von \rule über
\vskip-\parskip\vskip-\ht\strutbox erzeugt wird? Könntest du mir den mal genauer erklären? Warum nicht einfach \vskip 2mm oder so ähnlich?

Außerdem würde ich gerne wisse, ob dein Vorschlag
\newcommand\Quelle[1]{\par\vskip-\parskip\raggedright\small\textit{Quelle: #1}\par}

dazu führt, dass nach der Abbildung ein Absatz eingefügt wird, der eine variable Länge aufweisen kann. Vergrößert Latex nicht den Absatzabstand, wenn beispielsweise lediglich eine Abbildung auf einer Seite steht und darüber hinaus kein Text? Ich möchte nämlich, dass der Abstand zwischen unterer Begrenzung einer Abbildung oder einer Tabelle und der Quellenangabe immer gleich groß ist.

Zu deiner Anmerkung bzgl. Gleitumgebung: Das heißt, ideal wäre es eigentlich die optionalen Parameter überhaupt nicht anzugeben, richtig? Also lediglich \begin{figure}.

Vielen Dank nochmals für deine Hilfe zu meiner ursprünglichen Frage und natürlich zu den vielen weiteren Anmerkungen, auf die ich ohne deinen Hinweis niemals alleine gekommen wäre.

VG

esdd
03-07-2013, 10:15
Verwende \Quelle erst nach \end{tabu}. In deinem Code wird die Quelle in der ersten Tabellenspalte ausgegeben und deshalb erfolgt der Zeilenumbruch.

josephine
03-07-2013, 16:06
Hi esdd,

sorry, mein Fehler. Na klar, kein Wunder. Vielen Dank.

Um den Abstand zwischen unterer Tabellenbegrenzung und Quelle herzustellen verwende ich nun



...
\bottomrule
\end{tabu}
\vskip 2mm
\Quelle{Eigene Darstellung}


Kann man das so machen oder ist das nicht Latex-konform?

Viele Grüße

klops
03-07-2013, 16:47
\newcommand\Quelle[2][0pt]{\par\vskip-\parskip\vskip#1{\raggedleft\small\textit{Quelle: #2}\par}}
Dann kannst Du einen eventuell gewünschten zusätzlichen Abstand per optionalem Argument erreichen, also beispielsweise:
\Quelle[1ex]{Das ist die Quelle}

Innerhalb von figure- oder table-Umgebungen werden vertikale Abstände übrigens nicht gedehnt.

josephine
03-07-2013, 20:25
Hallo klops,

ja, das ist eine gute Idee. Vielen Dank.

klops
03-07-2013, 20:45
Mir fällt gerade auf, dass da noch Gruppenklammern fehlen, um die Wirkung von \raggedleft zu begrenzen. Ich werde die direkt im Kommentar oben einfügen, damit künftige Leser nicht erst bist hier blättern müssen …