Grafiken einfügen in Latex

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: Grafiken einfügen in Latex

von Gast » Do 8. Nov 2018, 11:11

Da bisher niemand weitere Kommentare dazu geschrieben hat, hier ein paar Anmerkungen zum Code von Ichmachsso von gestern.
\noindent\hspace*{-3pt} %nur damit das erste Text da ist wo es soll
sieht nach einer Ad-hoc-Lösung aus, um den Absatzeinzug zu unterbinden. Im Allgemeinen geht es gegen die Idee von guter LaTeX-Praxis, ein Befehlskonstrukt mitzuschleppen, das man dann zum Beginn jedes Absatzes ausführen muss, um irgendwelche Korrekturen vorzunehmen. Solche Dinge sollte man durch globale Optionen und Definitionen einmal in der Präambel beheben. Die 3pt im \hspace* sehen übrigens für mich nach einer magic number aus, zumindest ist nicht klar, warum es nicht auch 4pt oder 2pt sein können. Wenn man den Effekt mit und ohne \hspace*{-3pt} vergleicht, sieht man auch eine leichte Unregelmäßigkeit zur Beginn der ersten Zeile.

Wenn man keinen Absatzeinzug möchte, muss man sich überlegen, wie neue Absätze dann gekennzeichnet werden sollen und sollte https://komascript.de/faq_parindent lesen. Es gibt globale Möglichkeiten, das zu lösen und Konstrukte wie \noindent\hspace*{-3pt} geben nicht nur eine unschöne Ausgabe (die leichte Unregelmäßigkiet in der ersten Zeile gegenüber einem normalen \noindent), sie sind unhandlich und stehen der Philosophie gegenüber, dass Layout-Entscheidungen an einer zentralen Stelle geändert werden können sollten. Mit der Standardklasse article kann eine Absatzkennzeichung über vertikalen Leerraum statt Einzug mit dem Paket parskip erreicht werden, die KOMA-Klassen haben da eigene Optionen für und das parskip sollte nicht verwendet werden. Auf keinen Fall sollte man aber für diesen Effekt immer \noindent\hspace*{-3pt} herumschleppen.

Der Kommentar "nur damit das erste Text da ist wo es soll" mag darauf hindeuten, dass man sich der Tatsache, dass der Code nicht für den normalen Einsatz gedacht ist, bewusst ist, das wird mir aber nicht deutlich genug, daher möchte ich ausdrücklich vor der Nutzung dieser Konstruktion abraten.

Ferner wird im Codebeispiel an einigen Stellen \\ genutzt, um Umbrüche in einer Zeile zu erzeugen. Das ist ebenfalls verpönt (siehe z.B. https://tex.stackexchange.com/q/82664/35864 bei TeX.SX siehe auch https://tex.stackexchange.com/q/138/35864). Innerhalb eines Absatzes sollte man selbst keine Zeilenumbrüche erzeugen und das Umbrechen und die Worttrennung TeX überlassen. Neue Absätze sollte man mittels einer ganzen Leerzeile im Code (oder \par) deutlich machen.

Es ist mir wieder nicht ganz klar, ob der Autor sich bewusst ist, dass es keine gute Idee ist, \\ innerhalb eines Textblocks zu nutzen und das hier nur für ein Beispiel billigend in Kauf nimmt, oder ob \\ hier als Mittel der Wahl angepriesen wird. Ich möchte ausdrücklich von \\ in Fließtext abraten. Außerhalb von Tabellen und Gleichungen sollte \\ eigentlich nie auftreten (müssen; vielleicht braucht man es mal als ultima ratio, um einen schlechteren Umbruch zu vermeiden, aber es sollte sicherlich nicht Standard sein und in einem Absatz neun mal verwendet werden).

Im Beispiel erzeugen die jeweils letzten \\ im Absatz übrigens eine Badbox-Warnung.

Nun zum Kern des Vorschlages, nämlich [H]. [H] würde ich nur sehr spärlich nutzen, da es Gleitumgebungen das Gleiten fast vollständig austreibt. Siehe https://tex.stackexchange.com/q/132106/35864 bei TeX.SX. An der Stelle könnte man dann gleich so ehrlich sein und keine Gleitumgebung mehr nutzen. Das Problem mit H ist, dass man dadurch eine große, unbewegliche Box bekommen kann, die Seitenumbrüche erschwert oder unansehnlich macht.
In
\documentclass[12pt,titlepage]{article}
\usepackage{graphicx}
\usepackage{float}
%\usepackage{parskip}

% nur für das Beispiel
\usepackage{kantlipsum}
\usepackage{duckuments}

\begin{document}
\kant[1-2]

\begin{figure}[H]
\centering
\includegraphics[width=\textwidth]{example-image-duck}
\caption{A Duck}
\label{fig:duck}
\end{figure}

\kant[3]
\end{document}
muss das untere Drittel der ersten Seite leer bleiben, da das Bild da nicht mehr hin passt. (Es stellt sich heraus, dass der gesamte Text meines Beispiels genau auf eine Seite passen würde.)

Eventuell ist ein solches Verhalten hier ja gewünscht. Wenn man nämlich möchte, dass der Text, der im Code vor dem Bild ist, vor dem Bild landet und der dahinter dahinter landet, dann wird einem gar nichts anderes übrig bleiben, als sich mit so etwas abzufinden. Es mag auch ein, dass das eine der angedeuteten Einschränkungen der Lösung ist, aber ich möchte deutlich darauf hinweisen, dass H diese Nachteile haben kann. Da TeX die Funktion von Gleitumgebungen anbietet, die dafür sorgen, dass Text gleichmäßig auf Seiten verteilt wird und gute Seitenumbrüche und -enden ermöglicht, sollte man sich sehr gut überlegen, ob man das über Bord werfen möchte.

Der Drang, das Bild genau hier einfügen zu wollen, kommt wohl von WYSIWYG-Textverarbeitunsgprogrammen, wo genau das beim Einfügen von Bildern häufig gängige Praxis ist. Wer sich aber in professionell gesetztem Büchern und Zeitschriften umsieht, wird feststellen, dass das Bild nicht immer hier ist, sondern mit Bedacht und Rücksicht auf den umschließenden Text positioniert ist. Sicherlich ist die Positionierung von Gleitumgebungen in TeX manchmal nicht nur einfach ungewöhnlich sondern so ungünstig, dass sie unakzeptabel wird. Dann muss man sich von Fall zu Fall überlegen, wie man für Besserung sorgen kann. Die komplette Kapitulation vor Gleitumgebungen und das Unterbinden der Bewegung ist eine Möglichkeit, sollte aber gut durchdacht sein und sollte nicht als Standardlösung angesehen werden.

Die ungünstige Reihenfolge von \label und \caption wäre mir gar nicht aufgefallen, aber es sollte natürlich \caption{...}\label{...} sein, damit TeX auf die richtige Stelle verweist. Wenn wir schon beim \label sind, fig:Abbildung 2.5 ist meiner Meinung nach ein recht ungünstiges Label. Leerzeichen würde ich vermeiden wollen, obwohl sie grundsätzlich funktionieren können. Außerdem nutze ich immer nur Kleinschreibung, damit ich nicht durcheinander komme. Mein größtes Problem mit fig:Abbildung 2.5 ist aber, dass es absolut nichtssagend ist: Idealerweise sollten Label kurze und prägnante Kennungen für Bilder sein, die man sich merken und dann im \ref gut nutzen kann. "Abbildung 2.5" ist problematisch wenn Bilder hinzugefügt und entfernt werden, dann ist das Bild womöglich gar nicht mehr das fünfte Bild in Abschnitt zwei und trägt gar nicht die Nummer 2.5.

Wieder kann es sein, dass diese etwas unschöne Praxis für ein Beispiel billigend in Kauf genommen wurde, aber es wäre schade, wenn das Beispiel zur Verbreitung dieser Praxis führen würde.

von Gast » Mi 7. Nov 2018, 15:20

Danke @Bartman und @Johannes_B
falls ihr mich auf den Fehler mit Caption und Lable aufmerksam machen wolltet. Ich habe in meinem Dokument nur gelablet weil üben wollte, ref habe ich nicht verwendet, deswegen ist mir der Fehler gar nicht aufgefallen.
Grüße ich.

von Bartman » Mi 7. Nov 2018, 14:53

Sein Verweis führt zwar nicht zum einem vollständigen Beispiel, aber es dürfte nicht so schwer sein, nach der Lektüre einer LaTeX-Einführung, die nötigen Ergänzungen vorzunehmen. Die Reihenfolge von \caption und \label ist wichtig. Anstelle des Befehls \noindent stecke ich gerne die minipage-Umgebung in eine center-Umgebung.

von Johannes_B » Mi 7. Nov 2018, 14:48

Tut mir Leid. Ich sitze gerade mit dem Telephon auf einer Parkbank.
Wenn heute Abend noch keiner eine Begründung geschrieben hat, tippe ich selbst kurz was zusammen.

Wie anders

von Ichmachsso » Mi 7. Nov 2018, 14:41

Hallo, Johannes_B,

Kann man dich bitten ein vollstäniges Beispiel auszuspucken wenn du eine bessere Lösung hast? Meine funktioniert auch und stundenlang zu versuchen alle details der Figure umgebung zu verstehen wenn ich sie dahin zwingen kann wo ich sie will erscheint mir auch nicht sehr schlau.
Einfach nur zu sagen diese Lösung ist nicht gut und kein konstrukives Gegenbeispiel zu nennen und Gründe dafür zu nennen ist einfach nicht hilfreich.
Für einen Guten Lösungsvorschlag bin ich jedoch weiterhin offen.

MFG ich.

von Johannes_B » Mi 7. Nov 2018, 14:33

Das ist nicht gut. Keiner sollte das so machen.

Wie wäre es hiermit?

von Ichmachsso » Mi 7. Nov 2018, 14:22

Hallo,
ich löse alle meine Probleme mit den Bildern meist so.
\documentclass[12pt,titlepage]{article}
\usepackage{graphicx}
\usepackage{float} %erlaubt [H] bei figure, table, sonstwo
\begin{document}
\noindent\hspace*{-3pt} %nur damit das erste Text da ist wo es soll
TextTextTextTextTextTextTextTextTextTextText\\ TextTextTextTextTextTextTextTextTextTextText\\
TextTextTextTextTextTextTextTextTextTextText\\
TextTextTextTextTextTextTextTextTextTextText\\ TextTextTextTextTextTextTextTextTextTextText\\
TextTextTextTextTextTextTextTextTextTextText\\
TextTextTextTextTextTextHirnTextTextTextText\\ TextTextTextTextTextTextTextTextTextTextText\\
TextTextTextTextTextTextTextTextTextTextText\\
\begin{figure}[H]
\centering
\includegraphics[width=\textwidth]{Bild.png}
\label{fig:Abbilung 2.5}
\caption{yolo}
\end{figure}
\noindent\hspace*{-3pt}
TextTextTextTextTextTextTextTextTextTextText\\ TextTextTextTextTextTextTextTextTextTextText\\
TextTextTextTextTextTextTextTextTextTextText\\
TextTextTextTextTextTextTextTextTextTextText\\ TextTextTextHeiliTextTextTextTextTextTextText\\
TextTextTextTextTextTextTextTextTextTextText\\
TextTextTextTextTextTextTextTextTextTextText\\ TextTextTextTextTextTextTextTextTextTextText\\
TextTextTextTextTextTextTextTextTextTextText\\
TextTextTextTextTextTextTextTextTextTextText\\ TextMistTextTextTextTextTextTextTextTextText\\
TextTextTextTextTextTextTextTextTextTextText\\
\end{document}
Ich denke das ist nicht das maximale was man rauschlagen kann, aber für das was du möchtest sollte es reichen!
MFG ich.

von cauchy » So 13. Mai 2018, 15:28

ich weiß dass meine lösung nicht korrekt sind . ich habe mich auch bemüht alternativen auszuprobieren , jedoch ohne erfolg.

wie soll ich euere meinung nach vorgehen?

mfg cauchy

von Bartman » So 13. Mai 2018, 14:15

Dein Beispiel dürfte mit dem Inhalt des optionalen Arguments von \includegraphics in einem Minimalbeispiel zu Fehlermeldungen führen.

Lies bitte in einer LaTeX-Einführung, wie Abbildungen eingefügt werden können.

von Johannes_B » So 13. Mai 2018, 10:39

Deine Vorgehensweise klingt ja schon mal abenteuerlich.

Weißt du, was die figure-Umgebung macht? Falls nicht, schau mal zu https://texwelt.de/wissen/fragen/3427/w ... -verwenden

Nach oben