PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Wie kann man die Bilder selber positionieren?



gurkensalat
24-11-2011, 12:56
Hallo allerseits,

ich schreibe gerade an einem Latexdokument und binde auch Bilder ein, mit folgendem Code:

\begin{figure}
\centering
\includegraphics[scale=0.5]{bilder/bild.png}
\caption{Ein Bild}
\label{fig:bild}
\end{figure}
Nun habe ich ein paar Probleme damit. Latex setzt das Bild hin, wo es will, nämlich in ganz andere Kapitel, wo das Bild eigentlich hin soll. Das es das Bild vielleicht nicht genau an die Textstelle setzt, wo es hin soll, kann ich ja noch nachvollziehen, aber ein komplett anderes Kapitel geht mal gar nicht. Jedenfalls nicht in meinem Ermessen. Ich finde das ziemlich hässlich, weil es nur verwirrt.

Darum habe ich ein wenig gegoogelt und folgendes herausgefunden. Wenn man [h!tbp] hinzufügt, setzt es das Bild an die gewünschte Stelle (zumindest ist es eine Wunschäußerung), aber wirklich umgesetzt wird das nicht. Dann kommt es vor, dass einige Bilder schön in den Text mit eingebunden werden, andere aber eine komplette neue Seite spendiert bekommen, obwohl noch massig Platz für Text wäre. Auch ein [h!tb!p] hilft da nicht. das p steht ja für neue Seite. Latex macht was es will, und es nervt!
Das ganze ist ja damit begründet, dass das Textausrichten wohl vorgeht, aber wie gesagt, das sehe ich völlig anders, die Bilder sollten schon in den richtigen Kapitel sein und das ist nach meinem Ermessen deutlich wichtiger als Textausrichtung.
Gibt es also eine Möglichkeit, das ganze zu umgehen?

Mit folgendem Code kann man Bilder hinsetzen, wo man möchte, allerdings verdecken die dann den Text und man kann auch keine Bildunterschriften setzen:

\begin{picture}(x,y)(x',y')
\includegraphics[scale=0.5]{bilder/bild.png}
\end{picture}

Wäre für eure Hilfe wirklich dankbar.

EDIT: Gibt es einen Unterschied in der Darstellung des Bildes, wenn ich .png oder .jpg als Endung habe?

Julian25
24-11-2011, 13:06
Hallo,

versuch mal das hier. Das benutze ich.


\usepackage[section]{placeins} % Bilder fließen nicht außerhalb der Section

Gruß

bobmalaria
24-11-2011, 13:11
hi,

waere mein pc nicht abgestuerzt waere die antwort laenger :)

1) [!htb] verwenden

2) placeins verwenden untweder mit \usepackage[section]{placeins} oder nur den befehl \FloatBarrier setzen wo er benoetigt wird

3) ganz auf gleiten verzichten



\begin{center}
\includegraphics{}
\captionof{figure}{bild}
\end{center}


benoetigt paket caption, capt-of, oder KOMA klasse

beachte, dass das gleiten einen sinn hat und sie die position auch mit zunehmendem text noch veraendern kann. es ist dafuer gedacht die lesbarkeit zu erhoehen. deshalb ist es nicht ratsam alle bilder in den text zu zementieren.
mit dem palceins paket geht man wenigstens einen mittelweg der beschraenktes gleiten zulaesst.

gruss

ps: mit pdflatex ist es egal ob ein bild png jpg oder pdf ist. jpg ist eben nur fuer fotos geeignet. wenn du aus externen programmen grafiken einfuegst, dann nimm pdf oder png. das sind verlustfreiere formate

sommerfee
24-11-2011, 13:21
Ich empfehle nachdrücklich als Lektüre:

http://www.mrunix.de/forums/showthread.php?t=41452

gurkensalat
24-11-2011, 13:28
Vielen herzlichen Dank der Herr (@EDIT: oder frau, ich weiß es ned :) )
das war eine schnelle funktionierende Lösung.

Zum gleiten: Es mag sein, dass Latex supergeile Algorithmen anbietet etc, dem stimm ich schon zu. Aber es gibt eben auch stellen, wo mein Geschmack von dem des Algorithmenerfinders abweicht, wie hier bei den Bildern, dass sie irgendwo stehen, völlig zusammenhanglos in anderen Kapiteln. Der leser kennt sich dann nicht mehr aus. Ich schreibe erstmal den kompletten text fertig, korregiere ihn dann und wenn ich mir dann sicher bin, dass sich der text nicht mehr ändert, zementiere ich die bilder fest rein, weil das einfach schöner aussieht. ist aber geschmackssache. was mich halt wundert ist, dass das vielen leuten nicht gefällt (wenn man mal danach googled), aber dennoch nichts geändert wird. aber wurscht, es funzt jetzt wie gewünscht! danke dir!

rstuby
24-11-2011, 13:32
Mindestens seit es den Befehl \captionof gibt, ist jeder, der eine Gleitumgebung benutzt, ohne zu wollen, dass die Bilder oder Tabellen gleiten, selber schuld. Bleiben noch die, die im Prinzip schon wollen, dass es gleitet, aber bitte nicht aus dem Kapitel/section heraus. Für die gibt es \floatbarrier und placeins. Wo bitte wird "nichts geändert"?

rais
24-11-2011, 21:34
Moin moin,

Aber es gibt eben auch stellen, wo mein Geschmack von dem des Algorithmenerfinders abweicht, wie hier bei den Bildern, dass sie irgendwo stehen, völlig zusammenhanglos in anderen Kapiteln.
daß Gleitumgebungen über Kapitelgrenzen hinweg gleiten sollten, halte ich für ein Gerücht ...

Welche Klasse nutzt Du?

MfG

Peter Propeller
16-04-2012, 13:35
Hallo,
ich habe jetzt einige Zeit im Netz nach einer Möglichkeit gesucht, Bilder in LaTex frei zu positionieren.

Dabei bin ich i.d.R. auf die Aussage gestoßen, dass man das doch bitte LaTex überlassen soll, weil es das gut kann.
Das bestreite ich auch nicht.

Mein Problem ist nur jetzt, dass ich eine Bewerbung gebastelt habe und diese per Mail verschicken möchte, daher muss ich meine eingescannte Unterschrift unter die Grußformel setzen, LaTex ist da jedoch anderer Meinung und verschiebt die Unterschrift auf die nächste Seite. :D

Da ich noch nicht lange mit LaTex arbeite habe ich zuerst folgendes probiert, da ich es immer wieder gelesen habe:

\begin{figure}[h] % Oder auch [htbp], [H] und [h!]
\includegraphics[width=50mm]{Unterschrift}
\end{figure}

Das war aber alles wenig zielführend.

Jetzt habe ich es zwar hinbekommen, das Bild an die Position zu zwingen, an der ich es haben möchte:

\begin{picture}(0,0)
\put(-140,-120){\includegraphics[width=50mm]{Unterschrift}}
\end{picture}

Aber ich sehe selbst ein, dass das wenig elegant ist und jede Änderung im Dokument eine neue Positionierung des Bildes nach sich zieht.

Daher wüsste ich gerne, ob es eine Möglichkeit gibt Textpassagen als Anker für Bilder zu benutzen? In meinem Fall wäre es total super, das Bild an die Grußformel zu hängen, da diese beiden Komponenten untrennbar sind.

Vielen Grüße,

Peter

Curryhunter
16-04-2012, 13:50
Da du leider nur sehr wenig Informationen, vor allem hinsichtlich Dokumentenklasse und verwendeten Paketen bietest:
Sieh Dir doch einmal die scrlttr2-Klasse aus dem KOMA-Skript an. Hier wird die Unterschrift /Signatur per Befehl immer an die richtige Stelle gesetzt. Hier kann man dann natürlich auch die eigenhändige Unterschrift als Bild einfügen.

Grüße

rstuby
16-04-2012, 13:58
Also wenn du die figure-Ungebung einfach weglässt, wird das Bild im Prinzip wie ein übergroßer Buchstabe behandelt.
Du kannst es auch noch in eine Minipage packen, dann kannst du sie oben, unten oder zentriert ausrichten. Vielleicht reicht dir das ja schon, ansonsten müssen dir andere mit der genauen Positionierung weiterhelfen, darin bin ich nicht so fit.
Beispiele (mit \rule anstatt \includegraphics, um kein Bild haben zu müssen)
\documentclass{scrartcl}

\begin{document}
Mit Absatz zwischen Text und Unterschrift:

\rule{4cm}{1cm}

\bigskip

Mit Absatz und bestimmtem vertikalem Abstand:

\vspace{3ex}
\rule{4cm}{1cm}

\bigskip

Mit Absatz und bestimmtem vertikalem und horizontalem Abstand:

\vspace{3ex}
\hspace*{4em}
\rule{4cm}{1cm}
\bigskip

Ohne Absatz: \rule{4cm}{1cm}

\bigskip

Ohne Absatz, mit horizontalem Abstand:\hspace{4em} \rule{4cm}{1cm}

\bigskip

Mit zentrierter Minipage:
\begin{minipage}{4cm}
\rule{4cm}{1cm}
\end{minipage}

\bigskip

Mit zentrierter Minipage und Abstand:\hspace{4em}
\begin{minipage}{4cm}
\rule{4cm}{1cm}
\end{minipage}
\end{document}

png ist für Pixelgrafiken das beste Format. jpg ist verlustbehaftet und nur für Fotos geeignet. Bei Liniengrafiken bekommst du damit ganz schnell Artefakte an scharfen Rändern, die Farbe "läuft aus" und ähnliche unangenehme Sachen.

Peter Propeller
17-04-2012, 10:52
Vielen Dank für eure Hilfe!

Dann werde ich heute mal noch ein bisschen rumprobieren, aber gut zu wissen, dass das Unterfangen nicht aussichtslos ist.
Ich hatte schon eine solche Befürchtung, nach meiner Google-Recherche.

Wenn ich es hinbekomme, lasse ich es wissen. Wenn nicht vermutlich auch. :)

Was muss man denn eigentlich bei einem Post an Information mitgeben, damit man damit was anfangen kann? Reicht Dokumentklasse und Pakete?

Grüße,

Pete

rstuby
17-04-2012, 11:33
Ein Minimalbeispiel (lauffähiges Dokument, das man ausprobieren kann und das den Fehler bzw. das Problem demostriert) und dazu eine verständliche Beschreibung des Problems (falls Fehlermeldung: Wortlaut zitieren! Wer weiß, ob die jeder beim Ausprobieren kriegt oder ob bei deinem System irgendwas anders ist!) und wie du es gerne hättest.

Peter Propeller
17-04-2012, 12:37
Ok, danke!

Dann tue ich das doch gleich mal. Also mein Problem ist nach wie vor, dass meine Bild so wie im folgenden Beispiel auf die nächste Seite rutscht.



\documentclass[a4paper]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[ngermanb]{babel}
\usepackage[T1]{fontenc}
\usepackage{graphicx}
\usepackage{blindtext}

\begin{document}

\blindtext[5]

\includegraphics[width=50mm]{Unterschrift}

\end{document}


Mit der Figure-Umgebung und den Statements [htbp], [h], [h!] oder [H] hat sich auch nichts geändert. Mit einer Minipage habe ich es zwischenzeitlich auch versucht, ebenfalls mit dem gleichen Resultat.
Das einzige was funktioniert hat, aber auch keine befriedigende Lösung ist, mit put das Bild an fest Koordinaten im Dokument zu setzen.



\begin{document}

\blindtext[5]
\begin{picture}(0,0)
\put(-330,-60){\includegraphics[width=50mm]{Unterschrift}}
\end{picture}


\end{document}

Mir scheint das Problem zu sein, dass in dieser Dokumentklasse entweder die Ränder das Problem sind, oder der Platz für die Fußnote reserviert ist und deshalb unantastbar ist.
Kennt jemand eine Dokumentklasse, die nach unten keine Begrenzung (Rand oder Fußnote) besitzt?
Ich werde auch noch probieren, ob man die Abbildung nicht einfach in die Fußnote setzen kann und sie dann evtl an der richtigen Stelle ist, da ja ganz offensichtlich der letzte Satz der Flusstextes direkt über der Fußzeile steht.

Viele Grüße,

Pete

rstuby
17-04-2012, 12:39
Ach so, die php-Umgebung ist nicht so geeignet, weil da die Backslashes alle verschwinden. Benutze besser die [ CODE]...[ /CODE]-Ungebung (#-Button).
Für die anderen Helfer hier mit Backslashes und mit schwarzem Kasten anstatt Bild (das keiner hat):



\documentclass[a4paper]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[ngermanb]{babel}
\usepackage[T1]{fontenc}
\usepackage{graphicx}
\usepackage{blindtext}

\begin{document}

\blindtext[5]

\rule{5cm}{1cm}

\end{document}






\begin{document}

\blindtext[5]
\begin{picture}(0,0)
\put(-330,-60){\rule{5cm}{1cm}}
\end{picture}


\end{document}

Ich guck es mir gleich mal an.

Peter Propeller
17-04-2012, 12:42
Ok, danke für den Hinweis!

Habe es gar nicht bemerkt. Aber zukünftig, werde ich dann sauberer zitieren. :)

rstuby
17-04-2012, 12:48
Du hast schon Recht mit den Rändern. Du siehst ja auch, dass sich das Bild schon fast mit der Seitenzahl ins Gehege kommt. Es in die Fußzeile (nicht in eine Fußnote, sondern in die Fußzeile) zu setzen wäre eine Möglichkeit. Oder aber du benutzt \enlargethispage, um dir auf der einen Seite nach unten mehr Platz zu schaffen:
\begin{document}

\blindtext[5]

\enlargethispage{3cm}
\vspace{\baselineskip}
\noindent\rule{5cm}{1cm}

\end{document}

Peter Propeller
17-04-2012, 12:57
Ah, super vielen Dank!

Das mit dem erweitern der Seite klappt. :D

So ein schöner simpler Lösungsansatz, ich bin begeistert!