PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Wrapfigure - Grafik zu groß für "Box"?



TMA
26-08-2011, 10:39
Hallo,

ich binde ein Bild ein, dieses soll auf die Wrapfigure herunterskaliert werden

Binde ich nun das Bild ein mit:




\begin{wrapfigure}{5}{0.4\textwidth}
\centering
{\includegraphics{Bilder/ueber_red.pdf}}
\caption{Überlappungsbereich bei der Berechnung der Standardabweichung}
\label{abb:Ueblapp}
\end{wrapfigure}


so bleibt die Grafik so groß wie im Orginal - ist also so groß wie eine Seite, und wird NICHT herunterskaliert.

Wie realisiere ich das?

Danke!

tral
26-08-2011, 10:58
Hallo,

indem du bei \includegraphics die Breite angibst:



\includegraphics[width=.4\textwidth]{Bilder/ueber_red.pdf}


Christian.

TMA
26-08-2011, 12:58
Servus,

das sieht schon sehr gut aus, nur dass die die Wrapfigure immer ans Ende des Chapters gestellt wird auf ne separate Seite... und nicht vom Text umflossen wird. Woran liegt das? Das ist sogar so extrem, dass im Text erst Abbilung 4.6 - 4.10 kommen und erst DANACH die Wrapfigure als 4.5 (dann auch falsch durchnummeriert)

Die Wrapfigure steht mittem im Text, in etwa so


Der Grundgedanke dabei ist, dass bei der Berechnung des Makro-Statistik-Fensters große Überlappungsbereiche vorhanden sind. Abbildung \ref{abb:Ueblapp} verdeutlicht, dass bei unabhängiger Berechnung zweier benachbarter Fenster ein Großteil der Berechnungen doppelt durchgeführt werden.

\begin{wrapfigure}{5}{0.4\textwidth}
\centering
{\includegraphics[width=.4\textwidth]{Bilder/ueber_red.pdf}}
\caption{Überlappungsbereich bei der Berechnung der Standardabweichung}
\label{abb:Ueblapp}
\end{wrapfigure}


Daher wurde eine eigene Implementierung vorgenommen, diese ist im Anhang \ref{anhang:std2_own} enthalten und nutzt das vorherige Ergebnis aus, indem die nächste Spalte bzw. Zeile addiert wird und die vorherige abgezogen wird. \\

rstuby
26-08-2011, 13:11
Hab mal versucht, aus deinen Angaben ein Minimalbeispiel zu bauen (ist wohl nicht ganz minimal geworden...), kann das Problem aber nicht nachvollziehen. Die Wrapfigure wird richtig nummeriert und umflossen.


\documentclass{scrartcl}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{graphicx}
\usepackage{wrapfig}
\usepackage[ngerman]{babel}
\usepackage{blindtext}

\begin{document}

\section{Ein Abschnitt}

Der Grundgedanke dabei ist, dass bei der Berechnung des Makro-Statistik-Fensters große Überlappungsbereiche vorhanden sind. Abbildung \ref{abb:Ueblapp} verdeutlicht, dass bei unabhängiger Berechnung zweier benachbarter Fenster ein Großteil der Berechnungen doppelt durchgeführt werden.

\begin{wrapfigure}{5}{0.4\textwidth}
\centering
{\rule{.4\textwidth}{5cm}}
\caption{Überlappungsbereich bei der Berechnung der Standardabweichung}
\label{abb:Ueblapp}
\end{wrapfigure}


Daher wurde eine eigene Implementierung vorgenommen, diese ist im Anhang enthalten und nutzt das vorherige Ergebnis aus, indem die nächste Spalte bzw. Zeile addiert wird und die vorherige abgezogen wird.

\begin{figure}
Ein Bild
\caption{Eine Bildbeschriftung}
\end{figure}
\blindtext
\begin{figure}
Ein Bild
\caption{Eine Bildbeschriftung}
\end{figure}
\blindtext
\begin{figure}
Ein Bild
\caption{Eine Bildbeschriftung}
\end{figure}
\blindtext
\begin{figure}
Ein Bild
\caption{Eine Bildbeschriftung}
\end{figure}
\blindtext
\section{ein Abschnitt}
\begin{figure}
Ein Bild
\caption{Eine Bildbeschriftung}
\end{figure}
\blindtext
\begin{figure}
Ein Bild
\caption{Eine Bildbeschriftung}
\end{figure}
\blindtext
\begin{figure}
Ein Bild
\caption{Eine Bildbeschriftung}
\end{figure}
\blindtext
\begin{figure}
Ein Bild
\caption{Eine Bildbeschriftung}
\end{figure}
\blindtext
\end{document}

rstuby
26-08-2011, 13:14
Ist deine Grafik vielleicht zu hoch, um in den Text zu passen? Wenn ich die Höhe meiner schwarzen Box im MB von 5cm auf 19cm ändere, kann ich das Problem nachvollziehen. Dann kriege ich aber auch eine overfull \vbox-Meldung.

UPD: Offenbar passiert das schon, wenn die Grafik nur deutlich zu hoch ist, um genau in dieser Position noch auf die Seite zu passen. Bei meinem MB liegt die Grenze bei 14-15cm.
Anscheinend kann wrapfig nicht so gut gleiten wie eine normale figure-Ungebung, sondern steht entweder am angegebenen Ort im Text oder am Schluss des Abschnitts?
Auch [htbp] scheint hier nicht zu helfen.

TMA
26-08-2011, 13:51
Ich habs mal deutlich kleiner gemacht (als ich es haben will, aber nur zu Demonstrationszwecken) und hoffe, dass mit dem Anhang klar ist was ich meine

und Danke!

rstuby
26-08-2011, 13:53
Tschuldigung, aber ich mach hier kein Zip-Archiv mit einer sonstwie großen Masterarbeit auf. Mach ein Minimalbeispiel. Ich habe dir doch schon eine Vorgabe gegeben.

TMA
26-08-2011, 13:56
Es ist genau eine Seite... kann mal schauen wie klein ichs mache, aber vom Prinzip her ändert sich nichts

edit: habs nochmal kleiner gemacht, nun ist aber eingetreten was ich vermeiden wollte:

nun fängt er an die Grafik zu umschließen - woran liegt das??

TMA
26-08-2011, 14:00
anbei der neue Anhang

rstuby
26-08-2011, 14:00
Was heißt, es ändert sich nichts? ERsetze das Bild durch eine schwarze Box mit \rule und poste den Code hier mit der Code-Ungebung in einer Form, dass man ihn gleich in den eigenen Editor kopieren und ausprobieren kann, das ist etwas GANZ anderes, als mit ein zip-Archiv herunterzuladen und damit herumzufuhrwerken.
Du musst auf unsere Faulheit usw. eingehen, denn wir haben die Fäden in der Hand, da wir nicht verpflichtet sind zu helfen :-)

rstuby
26-08-2011, 14:08
Hmmm... hab mir das Beispiel aus dem Zip-Archiv doch mal angesehen.
Da verstehe ich aber nicht, was daran dein Problem ist. Das Bild steht doch in dem Absatz, in den du es gestellt hast, und wird auch umflossen.

TMA
26-08-2011, 14:14
Und ich hab nen Minimalbeispiel versucht zu erstellen. Das Problem ist wohl, dass der Code sauber ist aber mein Tex (MikTex) das aus irgendwelchen Gründen ans Ende des "Chapters" immer stelltm, d.h. die Wrapfigure kommt dann statt auf seite 20 auf Seite 32 oder so... Wenn ich daraus nen Minimalbeispiel mache und Text rausstreiche, fängt er auch irgendwann damit an, mir den Text zu umschließen.

Hab nochmal nen Screenshot gemacht, wies bei mir rauskommt. Scheint wohl an Texlive / Miktex zu liegen.

Und wegen Faulheit hast du Recht, ist meine Aufgabe :)

Habs nun im Code umgestellt, nun scheints zu gehen

rstuby
26-08-2011, 14:18
Moment! Ich glaube, ich habe kapiert, was dein Problem mit meiner Forderung nach einem Minimalbeispiel ist! Du hast offenbar noch nichts zum Thema "Minimalbeispiele erstellen" gelesen (guck mal das Thema Fehlersuche an, das immer hier im Forum oben hängt). Deshalb denkst du wahrscheinlich, das Ausgabe-PDF sollte minimal sein und nicht der Code bzw. der Aufwand, diesen Code auszuprobieren.

Aber deine Experimente haben ja dennoch gezeigt, dass meine Vermutung richtig war: ob das Bild korrekt umflossen wird oder ob es an das Ende des Abschnitts geschoben wird, hängt von seiner Höhe ab.

So klein wie in deinem letzten Beispiel kannst du es natürlich nicht echt machen, das verstehe ich auch. Aber vielleicht ist es dann sinnvoller, es als normale Abbildung einzubinden und nicht als wrapfigure?

UPD: Ein Minimalbeispiel zu erstellen und dann anstatt des codes einen screenshot des Ergebnisses hier hereinzustellen bringt nix. Das können wir ja wieder nicht ausprobieren.

Und um im Minimalbeispiel viel Text zu erzeugen, gibt es \usepackage{blindtext}. Habe ich oben ja auch benutzt. Da erzeugt man mit einer einzigen, leicht kopierbaren Codezeile \blindtext einen ganzen Absatz Text.

TMA
26-08-2011, 14:22
Nein nein nein, Moment - also erstmal zum Thema Minimalbeispiel: ja sorry da habe ich gepennt.
Zum Thema: Schau dir mal das letzte Bild an (PDF.png). da siehst du dass die schwarze Box, meine Grafik, HINTER den Text platziert wird, obwohl sie im Code dazwischen steht.
Und das, obwohl die Grafik klein ist. Wird das Dokuemnt größer (50 Seiten), verschiebt sich diese Box bis ans Ende der Chapters - keine Ahnung wieso.
Platziere ich die Box (gleiche Bildgröße) etwas weiter vorne im Code, macht MikTex genau das was ich erwarte.

Oder habe ich deine Erklärung falsch verstanden?

rstuby
26-08-2011, 14:25
Ich weiß ja nicht, wie dein letzter Code aussieht. Meiner Vermutung nach hängt es davon ab, wie viel Platz auf der gegebenen Seite noch frei ist, aber du kannst mich gerne eines Besseren belehren.

TMA
26-08-2011, 14:31
Der letzte Code ist identisch mit der ERSTEN Zip Datei, bei der du gemeint hast dass
"Das Bild steht doch in dem Absatz, in den du es gestellt hast, und wird auch umflossen."



\documentclass[pdftex, a4paper]{scrreprt}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage[pdftex]{graphicx} %?
\usepackage{color}
\usepackage{wrapfig}
\usepackage{caption}

\begin{document}

\section{Praktische Umsetzung}
Der erste Schritt lässt sich relativ leicht beschleunigen, indem die 2d-Faltungen in 1d-Faltungen separiert werden. Dies hat zwei Vorteile:
\begin{enumerate}
\item bei steigender Filtergröße steigt der Rechenaufwand deutlich langsamer ($2n$ statt $n^2$)
\item es kann ausgenutzt werden, dass die Filter ähnlich aufgebaut sind. So kann aus einer Faltung mit dem Lx-Filter das Zwischenergebnis genutzt werden, um im nächsten Schritt sämtlichen mit Lx beginnenden Filter zu berechnen (LxLx, LxEx, LxRx ...)
\end{enumerate}
Ein Profiling \ref{Anhang:Profiling} zeigt eine Reduktion des Rechenaufwands den Faktor 2 bis 4 (Filtergrößenabhängig), zeigt sich jedoch auch, dass ein Großteil der Rechenzeit zur Berechnung der Standardabweichung verwendet wird. Somit musste eine Möglichkeit gefunden werden, diesen Schritt zu beschleunigen.\\
Bei der Lösung nach einem schnelleren Berechnung der Standardabweichung (Energie) wurde sowohl nach einer verbesserten Programmierung als auch nach einer mathematischen Verbesserung gesucht. Bei einer verbesserten Programmierung ist allerdings zu beachten, dass Matlab als Plattform beibehalten werden sollte, da ein Umstieg einen zu hohen Aufwand mit sich gebracht hätte. Zuerst wurde nach einer verbesserten Programmierung gesucht, weil diese universell für sämtliche Sliding-Windows Probleme anwendbar gewesen wäre. Da es sich bei Sliding-Windows um häufig eingesetzte Verfahren in der Bildverarbeitung handelt, existieren in Matlab verschiedene Möglichkeiten diese zu optimieren (bsxfun, arrayfun, colfilt, nlfilt, filter, filter2, blcproc). Allerdings zeigt sich, dass keine dieser Funktionen in der Lage ist, den Algorithmus erheblich zu beschleunigen. Dies liegt zum einen darin, dass der Algorithmus "von Haus aus" relativ rechenintensiv ist, aber vorallem daran, dass Matlab nicht in der Lage ist derartige Algorithmen effizient zu implementieren. \\
Daher wurde des Weiteren eine eigene Implementierung von std2 getestet.
Der Grundgedanke dabei ist, dass bei der Berechnung des Makro-Statistik-Fensters große Überlappungsbereiche vorhanden sind. Abbildung \ref{abb:Ueblapp} verdeutlicht, dass bei unabhängiger Berechnung zweier benachbarter Fenster ein Großteil der Berechnungen doppelt durchgeführt werden.

\begin{wrapfigure}{5}{0.4\textwidth}
\centering
{\rule{.4\textwidth}{5cm}}
\caption{Überlappungsbereich bei der Berechnung der Standardabweichung}
\label{abb:Ueblapp}
\end{wrapfigure}


Daher wurde eine eigene Implementierung vorgenommen, diese ist im Anhang \ref{anhang:std2_own} enthalten und nutzt das vorherige Ergebnis aus, indem die nächste Spalte bzw. Zeile addiert wird und die vorherige abgezogen wird. \\
Mit dieser Implementierung ist es möglich, die Rechenzeit bei einem 15x15 Fenster auf ca. 1/10 verglichen mit der unabhängigen Berechnung zu reduzieren. Dies stellt zwar einen erhebliche Verbesserung dar, jedoch ist die absolute Berechnungsdauer mit 60 Sekunden weiterhin zu hoch. Da somit Verbesserungen bei der Implementierung nicht mehr möglich waren, wurde im nächsten Schritt nach einer mathematischen Verbesserung gesucht, um eine schnelle Berechnungsdauer zu ermöglichen. Hierfür ist es notwendig zu wissen, wann Matlab schnell, und wann langsam ist.

\end{document}


Wenn ich das übersetze (MikTex), kommt die oben genannte Sitaution... und bei dir wohl nicht, richtig?

rstuby
26-08-2011, 14:39
Nein, das hatte ich zur zweiten Zip-Datei gemeint.
Dies ist ein schönes Minimalbeispiel, zeigt aber meiner Ansicht nach das, was ich schon vermutet hatte. Die wrapfigure-Umgebung steht ja im Code beim Absatz "Daher wurde...", der ziemlich weit unten auf der Seite steht. Und da ist nicht mehr genug Platz für die Abbildung (mit Beschriftung). Anscheinend kann wrapfigure seine Inhalte nicht so gut gleiten lassen wie figure, sondern schiebt sie in solchen Fällen dann gleich bis ans Abschnittsende.

TMA
26-08-2011, 14:56
Dann bedank ich mich :)

rstuby
26-08-2011, 14:58
Also falls nicht noch ein großer Experte kommt und eine gute Idee, z.B. eine Alternative zu wrapfigure, hat, würde ich sagen: entweder auf die wrabfigure verzichten und einfach eine normale Abbildung setzen oder aber erst einmal weiter schreiben und dann ganz zum Schluss bei der Endredaktion sehen, wo auf der Seite das Bild zu liegen kommt, ob es darauf passt oder weggeschoben wird, und es eventuell von Hand ein-zwei Absätze weiter nach oben setzen. Oder nach unten, so dass es auf die nächste Seite kommt.