Rahmen um Grafik und Listing nicht gleich breit

Tabellen und Grafiken erstellen und anordnen


Crys
Forum-Century
Forum-Century
Beiträge: 202
Registriert: So 16. Okt 2011, 20:34
Wohnort: localhost:1337

Rahmen um Grafik und Listing nicht gleich breit

Beitrag von Crys »

\documentclass[demo]{scrartcl}
\usepackage{calc}
\usepackage{showframe}
\usepackage{graphicx}
\setlength{\parindent}{0pt}

\usepackage{listings}
\lstset{frame=single, captionpos=b}

\begin{document}

\begin{figure}[tbp!]
    \fbox{%
		\parbox{\textwidth-2\fboxsep-2\fboxrule}{
			\centering
			\includegraphics[width=.5\textwidth]{hinweisboxen}
		}%
	}
	\caption{Bild mittig und der Rahmen stimmt}
\end{figure}

\begin{figure}[tbp!]
    \fbox{
		\parbox{\textwidth-2\fboxsep-2\fboxrule}{
			\centering
			\includegraphics[width=.5\textwidth]{hinweisboxen}
		}
	}
	\caption{Bild nicht mittig und der Rahmen ist nach rechts verschoben}
\end{figure}

\begin{lstlisting}[caption=Der Rahmen ist breiter als der Bild Rahmen]
\begin{figure}[tbp!]
    \includegraphics[width=\textwidth]{logo_sence}
\end{figure}
\end{lstlisting}

\end{document}
1.) Ich möchte das der Rahmen um meine Bilder und den Quelltexten gleich breit ist. Wie bekomme ich das hin?

2.) Wieso ist der Rahmen in Abb. 2 nach rechts verschoben, nur weil ich keine % nach den Klammern gemacht habe?
Ich sehe oft das man % nach Klammern macht, verstehe aber nicht wieso, weil in der selben Zeile steht ja nichts mehr und nur das wird ja auskommentiert!?

3.) Kann man den Rahmen um Bilder einfacher definieren?
Das ist halt schon ein 4-Zeiler. Gibt es da kein einfachen Parameter oder Paket, dass das für einen übernimmt?

Studi
Forum-Century
Forum-Century
Beiträge: 185
Registriert: So 5. Jan 2014, 20:18

Beitrag von Studi »

1. Setze framesep auf 0:
\begin{lstlisting}[caption=...,framesep=0pt]
bzw.
\lstset{frame=single, captionpos=b.framesep=0pt}

2. Ein Zeilenende wirkt wie ein Leerzeichen, so kann man das verhindern. Siehe: Was sollen die Kommentar-Zeichen (%) am Ende der Zeilen?

3. Mach Dir notfalls selber ein Makro zum Abkürzen. Es gibt einige Rahmenpakete (wie framed, mdframed), doch die bringen eher viele Features und komfortables Einstellen, als Deinen Bedarf zufällig genau zu treffen, denke ich. Anschauen lohnt sich aber, auch wenn man am Ende sich ein angepasstes kleines Makro macht, was einen Paketbefehl verwendet. Oder wie gesagt, mach Dir Makro oder Umgebung selbst.


Studi

Crys
Forum-Century
Forum-Century
Beiträge: 202
Registriert: So 16. Okt 2011, 20:34
Wohnort: localhost:1337

Beitrag von Crys »

Vielen Dank. Perfekte Antworten 8)


Eine letzte Frage habe ich noch:
Den Rahmen um die Listings finde ich ansprechender, wenn "framesep=3pt" ist. Wie kann man den Rahmen um die Bilder auch so angleichen?
Wenn ich mit den Breitenangaben spiele, dann verschiebt sich das nur nach rechts ...

Studi
Forum-Century
Forum-Century
Beiträge: 185
Registriert: So 5. Jan 2014, 20:18

Beitrag von Studi »

Du könntest \fboxsep verändern (mit \setlength). Doch dann nicht den Wert wieder in der parbox abziehen. Ggf. Grafik mit \makebox-Trick zentrieren auf volle (Über-)Breite.

Antworten