PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Latex verschiebt meine Bilder willkürlich



Clonelow
16-09-2007, 13:04
Hallo alle zusammen.

Ich bin ein relativer Neuling bei Latex, habe es aber immerhin hinbekommen eine komplette Arbeit mit allem drum und dran zu schreiben. Nun wollte mein Lektor aber, dass ich ein Bild verschiebe. und zwar hinter den Text, vor dem es vorher stand.
Außerdem sollte es eine ganze Seite groß werden. "Gut!", habe ich mir gedacht, "dann schreibe ich hinter meinem Text einfach ein \newpage und setze das Bild mit [width=1.0\textwidth] hinter den Text."

Aber nun geschieht folgendes: Latex setzt den Text der nachfolgenden subsection hinter meinen alten Text, schreibt die Seite bis zum Ende, um dann auf der nächsten Seite die Bilder zu zeigen.

Zum näheren Verständnis hier mal die Abfolge:

Vorher:

BILD
Text (subsection1)
Text (subsection2)

so soll es aussehen:

Text (subsection1) \newpage
BILD
Text (subsection2)

und so sieht es derzeit aus:

Text (subsection1)
Text (subsection2)
BILD


es wäre super wenn mir einer helfen könnte. Ich sitze da schon ziemlich ratlos vor.

Gruß,
Lukas.

Xenara
16-09-2007, 13:09
Wie hast du das Bild eingebunden? Mit figure? Das ist eine Gleitumgebung.
Wenn du es an einer exakten Stelle willst, nimm einfach minipage, da verschiebt sich nix.

Clonelow
16-09-2007, 13:13
ja ist mit figure. ich versuche mal mit minipage. wenn ich das hinbekomme.
Ist das standardmäßig in Miktex drin oder muss ich das noch extra laden?

e. hindman
16-09-2007, 13:15
Außerdem sollte es eine ganze Seite groß werden. "Gut!", habe ich mir gedacht, "dann schreibe ich hinter meinem Text einfach ein \newpage und setze das Bild mit [width=1.0\textwidth] hinter den Text."

Aber nun geschieht folgendes: Latex setzt den Text der nachfolgenden subsection hinter meinen alten Text, schreibt die Seite bis zum Ende, um dann auf der nächsten Seite die Bilder zu zeigen.

Mit width=\textwidth setzt du die Breite der Grafik auf gleich der Textbreite. Macht ein Bild nicht unbedingt eine ganze Seite groß. Aber egal :)

So wie sich das anhört, hast du dein Bild in eine figure-Umgebung gepackt. Damit hast du LaTeX die Möglichkeit gegeben, es dahin zu schieben, wo es den Text weniger stört.

Einfachste Lösung: nimm \usepackage{float} in den Header und setz vor das Bild die Zeile \begin{figure}[H].

Clonelow
16-09-2007, 13:18
ja ich benutze eine figure Umgebung. Dank für die schnelle Antwort. Für was steht denn das H?

Und benutze ich die neue Umgebung genause wie die alte figure Umgebung? Meine damit \caption etc....

e. hindman
16-09-2007, 13:20
Ja, alles andere lässt du genau so stehen, es ändert sich nur der Parameter zur Plazierung, also das in den eckigen Klammern. Das H bedeutet, dass die Gleitumgebung nicht gleiten darf, sondern da erscheinen muss, wo sie auch im Quelltext steht.
Weitere Möglichkeit wäre, erst garkeine Gleitumgebung zu verwenden, dann gleitet auch nix ;)

Clonelow
16-09-2007, 13:21
habs gerade probiert und es funktioniert super. Danke sehr. Das mit der minipage habe ich nicht richtig verstanden und bei einem Versuch hat der mir auch direkt mal über 20 Fehler produziert ;)

Danke wegen der schnellen Antworten.
Denn wie das immer so ist muss ich natürlich morgen abgeben und bin deswegen ziemlich im Stress.

Clonelow
16-09-2007, 13:24
noch einmal eine Frage:

Was bedeutet es eigentlich wenn in der eckigen Klammer [htbp] steht?

Xenara
16-09-2007, 13:24
Weitere Möglichkeit wäre, erst garkeine Gleitumgebung zu verwenden, dann gleitet auch nix ;)

Das wäre die minipage-Variante. Minipage ist afaik Standard:
\begin{minipage}{\textwidth}
\includegraphics[width=\textwidth]{dein Bild}
\end{minipage}

Solltest du einen Eintrag ins Abbildungsverzeichnis brauchen, hilft capt-of. (Frag bei Bedarf noch mal nach.)

EDIT:

htbp setzt die Prioritäten für die Bildpositionierung:
h here genau an dieser Stelle
t top oben auf der Seite
b bottom unten auf der Seite
p page setzt möglichst viele Bilder zusammen auf eine Bilder-Seite

Mit ! wird das verstärkt, z.B. [h!]

e. hindman
16-09-2007, 13:26
Gern geschehen, dafür sind Onlinecommunitys ja da ;)

e. hindman
16-09-2007, 13:29
@Xenara
Ne minipage braucht man dazu nicht zwingend, \capt-of kommt auch ohne zurecht.

Das "H" hat noch höhere Priorität als "!h", bei letzterem kann Latex immernoch anderer Meinung sein :)

Xenara
16-09-2007, 13:36
@ e. hindmann: Besteht ohne die minipage-Umgebung nicht die Gefahr, dass die Caption vom Bild getrennt wird (nächste Seite o.ä.)?
Und danke für den Tipp mit dem H, das wusste ich nicht.

Gibt es dann noch einen Grund, statt figure minipage zu verwenden?

(Bin grad mitten an meiner Diplomarbeit, da kann ich ein paar Tipps noch gut brauchen ;) )

e. hindman
16-09-2007, 13:43
Dass die caption vom Bild abgetrennt wird hab ich bisher noch nicht gesehen.

Wahrscheinlich ist "H" aber die bessere Lösung, die figure-Umgebung beeinflusst ja auch die Abstände zum Text darüber und darunter.

bischi
16-09-2007, 13:53
Vielleicht wär zu diesem Thema auch ein Blick ins l2picfaq.pdf hilfreich...

MfG Bischi

e. hindman
16-09-2007, 14:08
Ja, bischi wieder mit der l2picfaq :)

Aber da steht's mit minipage drin, also wird es wohl einen guten Grund dafür geben.
Zudem hab ich oben versehentlich \capt-of geschrieben, \captionof sollte verwendet werden.

bischi
16-09-2007, 14:29
Wenn du die minipage nicht drumherum packst, dann kann es sein, dass die caption auf die nächste Seite geschoben wird - was du ja wohl nicht willst ;)

MfG Bischi

bischi
16-09-2007, 14:31
Mit ! wird das verstärkt, z.B. [h!]
[h!] und [!h] bringen nichts - besser [!htbp] verwenden (!h heisst: Falls möglich, an aktueller Stelle - gelockerte Bedingungen. Falls es nicht geht, sollte man die Alternativen angeben!)

MfG Bischi

e. hindman
16-09-2007, 14:36
Wenn du die minipage nicht drumherum packst, dann kann es sein, dass die caption auf die nächste Seite geschoben wird - was du ja wohl nicht willst ;)
MfG Bischi

Genau, die Frage war ja ob es ohne minipage passieren kann oder ob die caption stabil mit dem Bild verbunden ist.

bischi
16-09-2007, 14:46
Genau, die Frage war ja ob es ohne minipage passieren kann oder ob die caption stabil mit dem Bild verbunden ist.
captionof kannst du auch ohne Bild verwenden ;)

MfG Bischi

e. hindman
16-09-2007, 20:44
:-P
... oder mit der Tabelle oder sonst nem Konstrukt. Ohne alles in die Gegend setzten wird hoffentlich keiner eine caption. Und wenn doch ist es ja egal, hat ja nix, wovon sie abgetrennt werden kann.

hoto
24-03-2010, 11:30
Sorry das ich das Thema noch mal Aufgreif. Aber ich habe quasi das selbe Problem. Nur das wenn ich ne minipage Umgebung verwende, ich keinen Eintrag ins Abbildungsverzeichnis bekomme. Den brauche ich aber. Ich möchte das die Grafik an der Stelle eingefügt wird, an der ich Sie im Code plaziere. Kann ich eine figure Umgebung in eine minipage packen? (habs probiert, compiler hat gemeckert...)

bischi
24-03-2010, 12:00
l2picfaq.pdf (captionof)

MfG Bischi

bobmalaria
24-03-2010, 12:12
hi,

lies mal den abschnitt im dir angeratenen l2picfaq. dauert 10 minuten und du bist dannach viel schlauer.

eine minipage um eine figure umgebung zu packen ist quatsch. soviel schon vorab. gewöhne dir lieber an, anständige platzierungsoptinen zu verwenden und deine bilder im text zu referenzieren. mit zunehmendem textanteil in einem kapitel verschieben sich die bilder auch nochmal, sodass es am ende meist ganz wie von selbst gut aussieht.

hoto
24-03-2010, 12:58
Danke für die schnellen Antworten! :)

Das l2picfaq.pdf hatte ich mir schon weitgehendst durchgelesen, allerdings finde ich die Variante capt-of und minipages zu verwenden etwas umständlich. Funktionieren tuts aber. :D

Ich glaube aber ein Package gefunden zu haben, dass genau mein Problem löst und zwar das Package "here"


Beispiel:

\usepackage{graphicx}
\usepackage{here}

\begin{figure}[H]
\centering
\fbox{
\includegraphics[width=0.75 \linewidth]{bild.ps}
}
\caption[Bild]{Bild blablabla}
\label{fig:bild
\end{figure}

Ich weiß jetzt nicht ob das irgendwelche Nachteile birgt, scheint das zu tun was ich möchte, denn die Grafik wird statisch platziert, habe ein Eintrag im Abbildungsverzeichnis und der Label stimmt.

@bobmalaria: Mein Dokument umfasst so um die 150 Seiten, ich bin Grad mit dem Feinschliff beschäftigt. Bei kleineren Dokumenten hat ich noch nie wirklich ein Problem mit der Platzierung und auch jetzt macht Latex das super. Bis auf 2-3 Grafiken, die sollen nicht da sein wo sie sind. ;)

voss
24-03-2010, 13:12
Das l2picfaq.pdf hatte ich mir schon weitgehendst durchgelesen, allerdings finde ich die Variante capt-of und minipages zu verwenden etwas umständlich. Funktionieren tuts aber. :D

man braucht dafür keine minipage ...



Ich glaube aber ein Package gefunden zu haben, dass genau mein Problem löst und zwar das Package "here"

Ich weiß jetzt nicht ob das irgendwelche Nachteile birgt, scheint das zu tun was ich möchte, denn die Grafik wird statisch platziert, habe ein Eintrag im Abbildungsverzeichnis und der Label stimmt.


das Paket ist völlig veraltet ... und man braucht es faktisch auch nicht ...

Herbert

hoto
24-03-2010, 13:39
Sorry dann find ich im PDF nicht was du meinst. Da steht das es die Option gibt bei der Positionierung [H] anzugeben, was die höchste Gewichtung von here ist. Oder aber wenn das nicht hilft (was es nicht tut) eine minipage zu verwenden.

Xenara
24-03-2010, 13:48
Das Paket "float" stellt auch einen Parameter H für "genau hier" zur Verfügung.
@ Profis: Hat float irgendwelche Nachteile? Ausser ein Paket mehr (als nötig) zu laden?

hoto
24-03-2010, 14:25
Soweit ich weiß wird aber auch bei Float umgebrochen wenn Latex ermittelt das selbst eine H Gewichtung nicht rechtfertigt das Objekt "hier" zu platzieren. Aber vielleicht gibt's für Float da ja noch andere Tricks.

Generell ist es meist schon schöner Latex die Grafiken platzieren zu lassen, denn so wirkt ein Dokument (aus meiner Sicht) homogener, aber es gibt halt Problemstellungen bei denen es z.B. notwendig ist eine Grafik zwischen zwei Textabschnitten zu Platzieren. :rolleyes:

Mal schauen ob jemand "die ultimative Lösung" hat. :eek:

bobmalaria
24-03-2010, 14:41
hi,

in solchen fällen kannst du immer noch mit dem placeins paket eine \FloatBarrier setzen. also eine schranke im wahrsten sinne des wortes. diese erzwingt dann, dass alle grafiken spätestens an diesem punkt gesetzt werden.

gruss

voss
24-03-2010, 14:57
Das Paket "float" stellt auch einen Parameter H für "genau hier" zur Verfügung.
@ Profis: Hat float irgendwelche Nachteile? Ausser ein Paket mehr (als nötig) zu laden?

ja. es passt zu keinem der anderen Pakete, wie caption, hyperref,
floatrow ...

Für solche Bildanordnungen definiert man sich einfach einen
neuen Befehl \BildH{bild}{Caption} und setzt es dann in eine
Box.

Herbert