PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Bild mit Shadowbox Skalierungsproblem



loro
01-08-2010, 17:53
Servus zu sammen,
ich da mal ein hoffentlich kleines Problem und zwar habe ich als Vorgabe das jedes Bild einer Schattenbox eingebettet seien muss. Das habe ich ja auch hin bekommen, mein Problem ist, das die Bilder Unterschiedlich breit sind.
Kann Ich irgendwie die größe der Minipage \begin{minipage}{9.5cm} automatisch auf die Bildgöße+0.5cm setzen? Ich poste auch mal ein Minibeispiel, so wie ich das mit den Bildern Momentan mache.



%Schriftgröße, Layout, Papierformat, Art des Dokuments, KomaScript, %BCOR=Binderand aufschlag
\documentclass[12pt, DIV12, a4paper, oneside, headsepline, footsepline, headings=big, parskip=half, BCOR=12mm]{scrbook}


\usepackage[english, german, ngerman]{babel}% ngerman => neue Rechtsreibung
\usepackage[latin1]{inputenc} % Font Encoding, benoetigt fuer Umlaute
\usepackage[T1]{fontenc}
\usepackage{textcomp}
\usepackage{lmodern}
\usepackage{graphicx}
\usepackage[ngerman]{translator}
\usepackage[numbers,square]{natbib}
\usepackage[font=scriptsize,labelfont=bf, justification=raggedright, singlelinecheck=false]{caption}
\usepackage[usenames,dvipsnames]{color}
\usepackage[nohyperlinks]{acronym}
\usepackage[left=3cm, right=4cm,top=3cm, bottom=3cm]{geometry}
\usepackage{lmodern}
\usepackage{fancybox}
\usepackage{makeidx}
\usepackage[plainfootsepline]{scrpage2}
\usepackage{bookmark}


%Neue Farbe definieren
\definecolor{light-gray}{rgb}{0.7, 0.7, 0.7}

% „Abbildung“ umbenennen / Bildbeschriftung
\addto\captionsngerman{\renewcommand\figurename{Ab b.:}}

% Folgende Zeilen sollte ein zu großes Bild
% entsprechend passend skallieren so das es auf die Seite Passt
\makeatletter
\def\ScaleIfNeeded{%
\ifdim\Gin@nat@width>\linewidth
\linewidth
\else
\Gin@nat@width
\fi
}


\begin{document}

\chapter{Das Test Bild}

\begin{figure}[htb]
\begin{center}%
\color{light-gray}
\shadowbox{%
\begin{minipage}{9.5cm}%%
%An stelle von 9.5 die Bildgöße +0.5cm
\includegraphics[width=\ScaleIfNeeded]{test.jpg}%
\caption{Bildtext.... }%
\label{pic:bild}%
\end{minipage}}
\end{center}%
\end{figure}

\end{document}

esdd
02-08-2010, 13:39
Hallo,

Du kannst das Bild zunächst in einer Box speichern und dann deren Breite bestimmen. Hier ein Vorschlag:



\documentclass{scrbook}

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

\usepackage{graphicx}
\usepackage{color}
\usepackage{fancybox}
\usepackage[font=scriptsize,labelfont=bf, justification=raggedright, singlelinecheck=false]{caption}

\newsavebox\bildbox
\newlength\bildboxbreite
\newcommand\zusatzbreite{0.5cm}
\renewcaptionname{ngerman}{\figurename}{Abb.:}
\definecolor{light-gray}{rgb}{0.7, 0.7, 0.7}

% Folgende Zeilen sollte ein zu großes Bild
% entsprechend passend skallieren so das es auf die Seite Passt
\makeatletter
\def\ScaleIfNeeded{%
\ifdim\Gin@nat@width>\dimexpr\linewidth-\zusatzbreite-\shadowsize-2\fboxsep-0.5pt\relax
\dimexpr\linewidth-\zusatzbreite-\shadowsize-2\fboxsep-0.5pt\relax
\else
\Gin@nat@width
\fi
}

\begin{document}

\begin{figure}[htb]
\begin{center}%
\sbox\bildbox{\includegraphics[width=\ScaleIfNeeded]{test}}
\settowidth\bildboxbreite{\usebox\bildbox}
\addtolength\bildboxbreite{\zusatzbreite}
\color{light-gray}
\shadowbox{%
\begin{minipage}{\bildboxbreite}%
\usebox\bildbox
\caption{Bildtext.... }
\label{pic:bild}%
\end{minipage}}
\end{center}%
\end{figure}

\end{document}


Gruß
Elke

loro
02-08-2010, 16:47
Hi Elke, vielen Dank. Das funktioniert bei mir bestens :)