Grafiken einfügen in Latex

Wer eine gutes How-To hat. Bitte hier hinein.


Gast

Beitrag von Gast »

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.

Antworten