PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : wrapfigure überlappt andere figure & nicht umflossen



ThotGor
06-09-2011, 23:14
Moin,

1) Die wrapfigure und die darauffolgende figure überlappen sich - in meinem Fall fehlt ein Stück der caption. welche Einstellung ist notwendig, damit unter der wrapfigure automatisch genügend Platz eingefügt wird, sodass eine darauffolgende Abbildung sich nicht übermäßig nah herankuschelt.

2) Ich vermute, dass das in Zusammenhang mit 1) steht: die mit wrapfigure eingefügte Graphik meint, sie müsse in dem folgenden Absatz auch etwas Platz beanspruchen, obwohl es an dieser Stelle eigentlich keinen Platz für sein Ego benötigt. Wie ist das zu lösen?

Und jetzt dürft ihr mich wegen dem folgenden Minimalbeispiel schlagen - ich bin hier leider nicht so oft aktiv, sodass mir die nötige Übung fehlt. Zum Beispiel habe ich in der Anleitung zum Erstellen von Minimalbeispielen keine Anleitung gefunden, wie ich anstatt meiner Bilder entsprechende Platzhalter einfüge. Da stand nur der Hinweis, man solle einfach \rule hinklatschen, was mir bei wrapfigure Schwierigkeiten bereitet hat. Wo steht's geschrieben?
Wenn es demjenigen, der hierauf antwortet nicht zu lästig ist, mir nochmal ein paar Hinweise zu meinem Minimalbeispiel zu geben, dann wäre ich über jede Hilfe sehr dankbar. ;-)

MfG

Theo ;)

Minimalbeispiel:



\documentclass[a4paper]{scrartcl}
\usepackage[ngerman]{babel}
\usepackage[ansinew]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{amsfonts}
\usepackage{bbm}
\usepackage{graphicx}
\usepackage{fancyhdr}
\usepackage{wrapfig}
\usepackage{geometry}
\usepackage[section]{placeins}
\geometry{a4paper,left=25mm,right=25mm, top=2.5cm, bottom=2.5cm}
\setlength{\parindent}{0.25cm}
\setlength{\parskip}{0.5ex}

\pagestyle{fancy}
\renewcommand{\headrulewidth}{0.5pt}
\lhead{\nouppercase{\rightmark}}\rhead{}
\renewcommand{\sectionmark}[1]{\markright{\thesection.\ #1}}
\renewcommand{\subsectionmark}[1]{}

\setlength{\parindent}{0pt}

\makeatletter
\let\c@figure\c@table
\makeatother

\begin{document}

\begin{wrapfigure}{r}{0.4\textwidth}
\centering
\includegraphics[width=0.4\textwidth]{IOinitial1}
\caption{\small Frontpanel: Initialisierung der ext. Spannungsquelle.}
\label{IOinitial1}
\end{wrapfigure}


\subsubsection*{(1) Initialsierung der Externen Spannungsquelle}

In den Abbildungen \ref{IOinitial1} und Abbildung \ref{IOinitial2} sieht man Frontpanel und Blockdiagramm zur Initialisierung der externen Spannungsquelle. Im Frontpanel ist zu erkennen, dass es Voreinstellungen f\"ur den Namen des externen Ger\"ats, sowie f\"ur Spannung (22 Volt) und Strom (20 AmpËre) Obergrenzen gibt. Im Blockdiagramm sieht man, dass sie die Linie f\"ur die Fehlermeldung bis zum Ende durchzieht und auch im Hauptprogramm (vergleiche Abbildung \ref{Blockdiagramm1}) weiter geht. Das SubVi zur Initialisierung der Externen Spannungsquelle war in \"ahnlicher Form vorgegeben und wurde von uns \"ubernommen.

\begin{figure}[htb]
\centering
\includegraphics[width=1\textwidth]{IOinitial2}
\caption{\small Initialisierung der externen Spannungsquelle.}
\label{IOinitial2}
\end{figure}

\subsubsection*{(2) Erzeugen und Aufnehmen vom Ton am Elvis-Board am Elvis-Board}
Hier sind nur die Blockdiagramme von Interesse.\\
\"Uber den DAQ-Assistenten war eine Kommunikation mit dem Elvis-Board m\"oglich. Der Einfachheit halber wurde von uns die M\"oglichkeit wahr genommen mit LabView ein Singal zu simulieren, f\"ur das eine Frequenz eingegeben werden konnte. Dies haben wir in einem SubVi (im Hauptprogramm "Lauti" genannt, siehe Abbildung \ref{Lauti2}) verwendet und das simulierte Signal dann an das Elvis-Board und somit den Lautsprecher weiter gegeben.\\

\end{document}

rstuby
07-09-2011, 07:41
Leider kann ich dir nicht helfen, was das Problem angeht. Mit \rule muss man eben mit der Höhe herumspielen, um das Problem zu demonstrieren:


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

\begin{document}

\begin{wrapfigure}{r}{0.4\textwidth}
\centering
\rule{.4\textwidth}{7cm}
\caption{\small Frontpanel: Initialisierung der ext. Spannungsquelle.}
\label{IOinitial1}
\end{wrapfigure}


\subsubsection*{(1) Initialsierung der Externen Spannungsquelle}

\blindtext

\begin{figure}[htb]
\centering
\rule{\textwidth}{3cm}
\caption{\small Initialisierung der externen Spannungsquelle.}
\end{figure}

\subsubsection*{(2) Erzeugen und Aufnehmen vom Ton am Elvis-Board am Elvis-Board}
\blindtext\blindtext


\end{document}

Ich habe auch noch ein paar nicht relevante Pakete und Befehle gefunden, die man herausnehmen kann, und das Problem wird weiterhin demonstriert.

Offtop: Typographisch ist es nur in Ausnahmefällen sinnvoll, \parskip während des Dokumentes zu verändern, \parindent sollte in jedem Fall gleich bleiben. Eigentlich sollte eines von beiden Null sein, d.H. Absätze werden entweder eingerückt oder mit Abständen voneinander getrennt, aber nicht beides. Wobei ich natürlich nicht weiß, was dir für Vorgaben gestellt werden.
Ein Zeilenumbruch mit \\ innerhalb eines normalen Textabsatzes, um einen Satz am Zeilenanfang zu beginnen (so eine Art "Unterabsatz" oder wie?), ist meines Erachtens auch typographisch äußerst fragwürdig. Der Befehl \\ ist mehr für Sonderfälle als für den normalen Textfluss gedacht.

UPD: Noch mal dein Beispiel angesehen - die beiden Definitionen von parindent waren ja beide im Vorspann. Du hast nichts im Dokument verändert, das nehme ich zurück. Auch ist der letzte und damit gültige Wert Null, was auch meinen Empfehlungen entsprach. Nimm den ersten raus, er ist sicher ein Relikt von irgendwas anderem und hat keinerlei Wirkung.

ThotGor
07-09-2011, 22:07
Ok, danke für die Anmerkungen zur Präambel und zum Minimalbeispiel. Ich werde die morgen nochmal prüfen. Allerdings eine Lösung für das Problem habe ich damit noch nicht. Es wäre schön, wenn ich da bald einen Tipp erhalte, weil der Abgabetermin bedrohlich näher rückt.

Greez, Theo

Xenara
08-09-2011, 08:37
Zum Beispiel habe ich in der Anleitung zum Erstellen von Minimalbeispielen keine Anleitung gefunden, wie ich anstatt meiner Bilder entsprechende Platzhalter einfüge. Da stand nur der Hinweis, man solle einfach \rule hinklatschen, was mir bei wrapfigure Schwierigkeiten bereitet hat. Wo steht's geschrieben?

Also, in der Anleitung (http://www.mrunix.de/forums/showthread.php?t=66921) hier im Forum ists beschrieben ... Unter "Hinweise und Tipps" -> "a) Bilder"
Welche Anleitung hattest du?

Zu deinem Problem:
wrapfigure scheint etwas tricky zu sein. Bei mir hat sie dafür gesorgt, dass der Text dauernd nur die Hälfte der Breite gebraucht hat und sonst ein paar lustige Effekte.
Mir scheint aber jedenfalls, dass dein Text auf jeden Fall zu kurz für die Abbildung ist.

Was du probieren kannst, ist, entweder die Höhe der wrapfigure zu spezifizieren (Anzahl der Zeilen):

\begin{wrapfigure}[20]{r}{0.4\textwidth}

oder einen Workaround (http://groups.google.com/group/de.comp.text.tex/browse_thread/thread/36432cb44889fd39) nutzen oder mit \vspace arbeiten und die figure so auf Abstand halten.

Das Einzige, was bei mir im MB funktioniert hat, war die Überschrift vor die wrapfigure zu setzen:


\documentclass[a4paper]{scrartcl}
\usepackage[ngerman]{babel}
\usepackage[ansinew]{inputenc}
\usepackage[T1]{fontenc}
%\usepackage{amsfonts}
%\usepackage{bbm}
\usepackage{graphicx}
%\usepackage{fancyhdr}
\usepackage{wrapfig}
%\usepackage{geometry}
%\usepackage[section]{placeins}
%\geometry{a4paper,left=25mm,right=25mm, top=2.5cm, bottom=2.5cm}
%\setlength{\parindent}{0.25cm}
%\setlength{\parskip}{0.5ex}

%\pagestyle{fancy}
%\renewcommand{\headrulewidth}{0.5pt}
%\lhead{\nouppercase{\rightmark}}\rhead{}
%\renewcommand{\sectionmark}[1]{\markright{\thesection.\ #1}}
%\renewcommand{\subsectionmark}[1]{}
%
%\setlength{\parindent}{0pt}
%
%\makeatletter
%\let\c@figure\c@table
%\makeatother

\makeatletter
\newcommand\wrapfill{\par
\ifx\parshape\WF@fudgeparshape
\nobreak
\vskip-\baselineskip
\vskip\c@WF@wrappedlines\baselineskip
\allowbreak
\WFclear
\fi
}
\makeatother

\usepackage{blindtext}

\begin{document}

\subsubsection*{(1) Initialsierung der Externen Spannungsquelle}

\begin{wrapfigure}{r}{0.4\textwidth}
\centering
\includegraphics[width=0.4\textwidth]{Testbild}
\caption{\small Frontpanel: Initialisierung der ext. Spannungsquelle.}
\label{IOinitial1}
\end{wrapfigure}


%\subsubsection*{(1) Initialsierung der Externen Spannungsquelle}

In den Abbildungen \ref{IOinitial1} und Abbildung \ref{IOinitial2} sieht man Frontpanel und Blockdiagramm zur Initialisierung der externen Spannungsquelle. Im Frontpanel ist zu erkennen, dass es Voreinstellungen f\"ur den Namen des externen Ger\"ats, sowie f\"ur Spannung (22 Volt) und Strom (20 AmpËre) Obergrenzen gibt. Im Blockdiagramm sieht man, dass sie die Linie f\"ur die Fehlermeldung bis zum Ende durchzieht und auch im Hauptprogramm (vergleiche Abbildung \ref{Blockdiagramm1}) weiter geht. Das SubVi zur Initialisierung der Externen Spannungsquelle war in \"ahnlicher Form vorgegeben und wurde von uns \"ubernommen.\wrapfill


\begin{figure}[htb]
\centering
\includegraphics[width=1\textwidth]{Testbild}
\caption{\small Initialisierung der externen Spannungsquelle.}
\label{IOinitial2}
\end{figure}

\subsubsection*{(2) Erzeugen und Aufnehmen vom Ton am Elvis-Board am Elvis-Board}

Hier sind nur die Blockdiagramme von Interesse.\\
\"Uber den DAQ-Assistenten war eine Kommunikation mit dem Elvis-Board m\"oglich. Der Einfachheit halber wurde von uns die M\"oglichkeit wahr genommen mit LabView ein Singal zu simulieren, f\"ur das eine Frequenz eingegeben werden konnte. Dies haben wir in einem SubVi (im Hauptprogramm "Lauti" genannt, siehe Abbildung \ref{Lauti2}) verwendet und das simulierte Signal dann an das Elvis-Board und somit den Lautsprecher weiter gegeben.\\


\end{document}

ThotGor
08-09-2011, 15:02
Dass sich wrapfigure so verhält, wenn man die Überschrift vor die Abbildung setzt, hatte ich auch schon bemerkt. Allerdings ist das nicht das gewünschte Ergebnis, da ich die Abbildung gern auf gleicher Höhe mit der Überschrift hätte, was eben nur zu erreichen ist, wenn man wrapfigure vor die Überschrift setzt. Und selbst wenn der Text nicht lang genug ist, müsste es doch eine Möglichkeit geben, dass eine nachfolgende figure die wrapfigure nicht überschneidet.
Gibt es denn keine andere Lösung?

Ich hatte die folgende Anleitung zu Minimalbeispielen (ist unter deinem Link zu finden...): http://www.minimalbeispiel.de/mini.html
Dort steht unter "Graphiken entfernen":

Eingefügte Bilder sind fast immer problematisch. Eigentlich müsste man sie weitergeben; meist sind sie aber sehr groß und enthalten womöglich vertrauliche Informationen. Ein Ablegen auf dem eigenen Webspace ist damit auch nicht möglich. Was also tun? Ganz einfach, wir ersetzen das Bild schlichtweg durch ein Rechteck, das mit \rule erzeugt wird.
Ich hätte mich allerdings mehr mit dem \rule Befehl beschäftigen können. So wie es rstuby vorgeschlagen hat, siehts schon ganz ähnlich zu meinem Original aus.

Xenara
08-09-2011, 17:04
Dann lies dir mal die von mir verlinkte Anleitung durch, dort sind auch andere Möglichkeiten beschrieben, Bilder einzubinden.

Ich hab als Grundlage rstubys Beispiel genommen.
Mit wrapfigure habe ich es nicht hinbekommen, mit picins mit einigem Pfusch, sieht aber so mal nicht so schlecht aus.



\documentclass[a4paper]{scrartcl}
\usepackage[ngerman]{babel}
\usepackage[ansinew]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{graphicx}
\usepackage{blindtext}
\usepackage{PicIns}


\begin{document}

\subsubsection*{(1) Initialsierung der Externen Spannungsquelle}
\clearpage

\piccaption{\small Frontpanel: Initialisierung der ext. Spannungsquelle.}
\parpic(.4\textwidth,7cm)[rf][c]{%
\centering
\rule{4cm}{7cm}
\label{IOinitial1}
}

\vspace*{-.95\baselineskip}

\subsubsection*{(1) Initialsierung der Externen Spannungsquelle}

\blindtext
\vspace*{4ex}

\begin{figure}[htb]
\centering
\rule{\textwidth}{3cm}
\caption{\small Initialisierung der externen Spannungsquelle.}
\end{figure}

\subsubsection*{(2) Erzeugen und Aufnehmen vom Ton am Elvis-Board am Elvis-Board}
\blindtext\blindtext

\end{document}

ThotGor
10-09-2011, 15:15
Hat sich das nochmal jemand angeschaut, um das Problem mit wrapfigure zu lösen?