Anzeige:
Ergebnis 1 bis 11 von 11

Thema: Abbildungen immer mit \begin{figure}[H] setzen

  1. #1
    Registrierter Benutzer
    Registriert seit
    23.09.2009
    Beiträge
    18

    Abbildungen immer mit \begin{figure}[H] setzen

    Hallo Zusammen,

    ich such für den Vorspann eine Festlegung, dass Tabellen und Abbildungen als Gleitumgebung immer dort im PDF ausgegeben werden, wo ich diese gesetzt habe.

    Meine bisherige Lösung war
    Code:
    \floatplacement{figure}{H}
    \floatplacement{table}{H}
    Nun wird der Vorspann via \include in mehreren Dokumenten verwendet, wo es auch mal keine Bilder geben kann. In diesem Fall kommt es beim Generierung zum Fehler.

    Nun versuche ich den Befehle \figure so umzudefinieren, damit er immer mit [H] arbeitet. Für die Umdefinition für \figure hatte ich im Internet folgendes Beispiel gefunden, mit dem eine Grafik immer zentriert wird.
    Code:
    \renewenvironment{figure}[1][]{\@float{figure}\centering}{\end@float}
    Das Zentrieren klappt. Für meinen Zweck habe ich noch [H] ergänzt:
    Code:
    \renewenvironment{figure}[1][]{\@float{figure}[H]\centering}{\end@float}
    Dies hat jedoch keine Wirkung und führt auch nicht zum einen Fehler.

    Weiß jemand hierfür eine Lösung?

    Danke

  2. #2
    Registrierter Benutzer Avatar von Stefan_K
    Registriert seit
    05.04.2007
    Ort
    Hamburg
    Beiträge
    3.534

    Tabellen und Abbildungen ohne Gleiten

    Hallo,

    Zitat Zitat von msfox Beitrag anzeigen
    ich such für den Vorspann eine Festlegung, dass Tabellen und Abbildungen als Gleitumgebung immer dort im PDF ausgegeben werden, wo ich diese gesetzt habe.
    eine Bemerkung - es ist nicht sehr sinnvoll, alle Tabellen und Abbildungen als Gleitumgebungen zu deklarieren und anschließend das Gleiten vollständig unterbinden zu wollen.

    Unterbindet man das Gleiten, entstehenden schlimme Seitenaufteilungen und manuelle Nachkorrektur kann nötig sein.

    Ohne Gleiten braucht man gar keine Umgebung, kann einfach tabular, \includegraphics etc. in den Text setzen. Wenn es Dir um Bildunterschriften und Tabellenüberschriften geht, die kann man mit \captionof{figure}{Beschriftung} etc. setzen, wenn man das caption-Paket verwendet. Hierfür würde ich dann doch eine Umgebung für Bilder und Tabellen hernehmen: minipage.

    Viele Grüße,

    Stefan

  3. #3
    Registrierter Benutzer Avatar von mechanicus
    Registriert seit
    10.07.2008
    Ort
    Hamburg
    Beiträge
    3.944
    Zitat Zitat von msfox Beitrag anzeigen
    Weiß jemand hierfür eine Lösung?
    Klar -- wenn du ein Minimalbeispiel erstellst, was den Fehler auch zeigt.

    Code:
    \listfiles
    \RequirePackage{filecontents}
    \begin{filecontents*}{TesteinbindungA.tex}
    \chapter{Beispieldatei A}
    \blindtext
    \begin{figure}
    \rule{0.5\textwidth}{4cm}
    \end{figure}
    \blindtext
    \end{filecontents*}
    \begin{filecontents*}{TesteinbindungB.tex}
    \chapter{Beispieldatei B}
    \blindtext
    \blindtext
    \end{filecontents*}
    \documentclass[ngerman]{scrreprt}
    \usepackage[utf8]{inputenc}
    \usepackage{babel}
    \usepackage{blindtext}
    
    \usepackage{float}\floatplacement{figure}{H}
    
    \begin{document}
    \include{TesteinbindungA}
    \include{TesteinbindungB}
    \end{document}
    Das funktioniert -- also liegt der Fehler wohl woanders.

    Gruß
    Marco

  4. #4
    Registrierter Benutzer
    Registriert seit
    19.05.2009
    Beiträge
    4.045
    Nichtgleitende Gleitumgebung sind zwar eine schlechte Idee, aber die Defaultplazierungswerte stecken in \fps@... also müsste das hier gehen:

    Code:
    \makeatletter
    \renewcommand{\fps@figure}{H}
    \renewcommand{\fps@table}{H}
    \makeatother
    Nun wird der Vorspann via \include in mehreren Dokumenten verwendet,
    Verwende \include nicht in der Präambel. Nimm \input stattdessen. Benutze \include sowieso nur dann, wenn du weißt, dass \input nicht reicht.

  5. #5
    Registrierter Benutzer
    Registriert seit
    23.09.2009
    Beiträge
    18
    Sehr schön, vielen Dank. Die Lösung
    Code:
    \makeatletter
    \renewcommand{\fps@figure}{H}
    \renewcommand{\fps@table}{H}
    \makeatother
    hat funktioniert.

    Anmerkungen:
    - Ich habe ja auch \input statt \include im Verspann verwendet, nur hier falsch beschrieben.
    - Als WYSIWYM verwende ich Lyx, da ich Kollegen (noch) nicht direkt mit LaTex konfrontieren wollte. Hier kann man (im Standard) nur bei Gleitobjekten eine Beschriftung setzen.

  6. #6
    Registrierter Benutzer
    Registriert seit
    27.07.2010
    Beiträge
    14
    Mit dem picins Paket kannst Du den caption Befehl auch außerhalb einer Gleitumgebung verwenden. Meine Bilder binde ich so ein:

    \begin{minipage}{14cm}
    \begin{center}
    \includegraphics[width=]{Bilder/}
    \caption[]{}
    \label{fig:}
    \end{center}
    \end{minipage}

    Die Minipage verhindert daß zwischen Bild und Bildbeschriftung die Seite umgebrochen wird.

    Lyx halte ich übrigens für eine ganz schlechte Idee, wenn man mit LaTex arbeiten will. Dann lieber gleich TeXnicCenter und sich von vorneherein richtig mit den Befehlen vertraut machen. Man kommt ja auch bei Lyx nicht drumrum wenn man nicht grade das Standardformat verwenden will, das das Programm einem vorgibt.

  7. #7
    Registrierter Benutzer Avatar von sommerfee
    Registriert seit
    02.07.2006
    Beiträge
    1.603
    Zitat Zitat von Wollsocken Beitrag anzeigen
    Mit dem picins Paket kannst Du den caption Befehl auch außerhalb einer Gleitumgebung verwenden.
    Das wäre aber die Ausnutzung von sehr unsauberem Code des picins-Paketes (ich würde es sogar einen Bug nennen), beabsichtigt war dieser unhübsche Nebeneffekt vom Autor sicherlich nicht.

    (Und sobald man das caption-Paket lädt, ist dieser Nebeneffekt wieder futsch.)
    Geändert von sommerfee (01-08-2010 um 07:25 Uhr)

  8. #8
    Registrierter Benutzer
    Registriert seit
    27.07.2010
    Beiträge
    14
    Weiß ich und deshalb hab ich das caption Paket auch nicht geladen. Funktioniert sehr gut ohne - ich bin zufrieden.

  9. #9
    Registrierter Benutzer Avatar von sommerfee
    Registriert seit
    02.07.2006
    Beiträge
    1.603
    Der Nachteil an solchen "sportlichen" Lösungen ist, daß die Sportunfälle später bei mir landen. Da schnappt jemand diesen grob fahrlässigen "Tipp" auf, wundert sich z.B., daß es nicht mit dem subfig-Paket zusammen funktioniert (oder mit manchen Versionen des ctable-Paketes, oder zusammen mit hyperref/hypcap unhübsche Effekte gibt oder...), und da ich ja "Mr. Caption" bin, habe ich flugs eine Support-Email im Briefkasten.

    Mir ist auch nicht klar, welchen Vorteil diese "sportliche" Variante gegenüber der sauberen Variante, nämlich \captionof, haben soll. Ich sehe nur den Nachteil, daß solch eine "Lösung" langfristig gesehen mehr Probleme schafft als sie löst.
    Geändert von sommerfee (01-08-2010 um 07:56 Uhr)

  10. #10
    Registrierter Benutzer
    Registriert seit
    27.07.2010
    Beiträge
    14
    Die Lösung bereitet mir überhaupt keine Probleme.

    Es war nur ein Vorschlag, den niemand annehmen muß. Der msfox weiß ja jetzt um die beschriebenen Inkompatibilitäten Bescheid und wenn eine davon auf sein Projekt zutrifft, dann hat er ja noch andere Lösungsvorschläge zur Verfügung.
    Geändert von Wollsocken (02-08-2010 um 02:09 Uhr)

  11. #11
    Registrierter Benutzer Avatar von sommerfee
    Registriert seit
    02.07.2006
    Beiträge
    1.603
    Zitat Zitat von Wollsocken Beitrag anzeigen
    Der msfox weiß ja jetzt um die beschriebenen Inkompatibilitäten Bescheid und wenn eine davon auf sein Projekt zutrifft, dann hat er ja noch andere Lösungsvorschläge zur Verfügung.
    Welches sind denn die Inkompatibilitäten? Die müsste man ja alle wissen, um wissen zu können, ob sie auf das eigene Projekt zutreffen oder nicht.

    Liebe Grüße,
    Axel
    Geändert von sommerfee (03-08-2010 um 09:14 Uhr) Grund: Bescheuerten Absatz ersatzlos entfernt ;-)

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •