Anzeige:
Ergebnis 1 bis 9 von 9

Thema: Problem mit Captions und floatrow

  1. #1
    Registrierter Benutzer
    Registriert seit
    01.02.2008
    Ort
    Dresden
    Beiträge
    21

    Problem mit Captions und floatrow

    Hallo,

    ich versuche gerade, 2 Abbildungen nebeneinander zu kriegen. (Muss sein, weil Latex sie sonst sehr unschön platziert).

    Ich habe das floatrow package gefunden. Die Doku ist mir leider etwas wirr geschrieben, deswegen verstehe ich nicht, was ich falsch mache. Ich bin auch noch ziemliche Anfängerin, was Latex betrifft.

    Das Problem ist, dass die Captions nicht in der Breite angepasst werden:Beispiel (Wie man schön sieht, sind beide Captions sogar weiter als die textbreite)

    Hier ist ein Minimalbeispiel:

    Code:
    \documentclass[12pt,a4paper,oneside,idxtotoc,normalheadings,bibtotoc]{scrbook}
    \listfiles
    
    \usepackage[font=small, labelfont=bf, format=plain, labelsep=period, justification=centerlast, width=.9\textwidth]{caption} 
    \captionsetup{font+=it}
    \captionsetup[figure]{position=below,belowskip=5pt,aboveskip=5pt}
    \usepackage{graphicx}
    \usepackage[floatrowsep=qquad]{floatrow}
    
    \begin{document}
    
    \begin{figure}[htb]
    \begin{floatrow}
    %
    \ffigbox[\FBwidth]{
    	\centering
    		\includegraphics[width=0.4\textwidth]{bilder/kap3/ngoBal.png}}
    		{\caption{Balance. Laaanger langer langer langer langer langer langer langer Text. Und noch ein bischen länger. }
    	\label{fig:ngoBal}}
    	%
    \ffigbox[\FBwidth]{
    	\centering
    		\includegraphics[width=0.4\textwidth]{bilder/kap3/ngoEM.png}}
    		{\caption{Beispiel für visuelles Gleichgewicht. Laaanger langer langer langer langer langer langer langer Text.} 
    	\label{fig:ngoEM}}
    \end{floatrow}
    \end{figure}
    
    \end{document}
    Hängt es mit meiner Caption-Definition zusammen? Die möchte ich aber eigentlich nicht mehr ändern. Floatrow soll außerdem mit Caption zusammenarbeiten. (dachte ich)

    Ich hoffe wirklich, dass das irgendwie behebbar ist, sonst sieht das Layout nicht so prickelnd aus..
    Geändert von Nini (14-11-2008 um 19:34 Uhr)

  2. #2
    Registrierter Benutzer Avatar von mechanicus
    Registriert seit
    10.07.2008
    Ort
    Hamburg
    Beiträge
    3.944
    Hallo,

    wenn du die Option width=0.9\textwidth dem Paket caption gibst, dann macht er das auch.
    Code:
    \documentclass[12pt,a4paper,oneside,idxtotoc,normalheadings,bibtotoc]{scrbook}
    \listfiles
    
    \usepackage[font=small, labelfont=bf, format=plain, labelsep=period, justification=centerlast, width=.9\textwidth]{caption} 
    \captionsetup{font+=it}
    \captionsetup[figure]{position=below,belowskip=5pt,aboveskip=5pt}
    \usepackage[demo]{graphicx}
    \usepackage[floatrowsep=qquad]{floatrow}
    
    \begin{document}
    
    \begin{figure}[htb]
    \begin{floatrow}
    %
    \captionsetup{width=0.4\textwidth}
    \ffigbox[\FBwidth]{
    	\centering
    		\includegraphics[width=0.4\textwidth]{duck}}
    		{\caption{Balance. Laaanger langer langer langer langer langer langer langer Text. Und noch ein bischen länger. }
    	\label{fig:ngoBal}}
    	%
    \ffigbox[\FBwidth]{
    	\centering
    		\includegraphics[width=0.4\textwidth]{duck}}
    		{\caption{Beispiel für visuelles Gleichgewicht. Laaanger langer langer langer langer langer langer langer Text.} 
    	\label{fig:ngoEM}}
    \end{floatrow}
    \end{figure}
    
    \end{document}

  3. #3
    Registrierter Benutzer
    Registriert seit
    01.02.2008
    Ort
    Dresden
    Beiträge
    21
    Das ist interessant. Gibt es dann eine andere Möglichkeit, das besser zu definieren? 0.9 sieht besser aus als 1.0. Kann ich was anderes als \textwidth angeben, damit es immer klappt?

    Ich bin wohl davon ausgegangen, dass das angepasst wird, oder das floatrow die Breite wie subfigure (im Gegensatz zu subfloat) ignoriert. (ups)

    Denn ich gebe der Floatbox ja das Argument [\FBwidth] mit. Laut Doku soll das die Captionbreite an die Bildbreite anpassen.

    Aber danke schonmal, das macht das ganze wieder anschaubar!!

    P.S. \usepackage[demo]{graphicx} ?
    Ignoriert mit demo Graphics die Bilder?

  4. #4
    Registrierter Benutzer Avatar von mechanicus
    Registriert seit
    10.07.2008
    Ort
    Hamburg
    Beiträge
    3.944
    Hallo,

    Zitat Zitat von Nini Beitrag anzeigen
    Das ist interessant. Gibt es dann eine andere Möglichkeit, das besser zu definieren? 0.9 sieht besser aus als 1.0. Kann ich was anderes als \textwidth angeben, damit es immer klappt?
    in den Dokumentationen habe ich nichts weiter gefunden. Vielleicht schaut ja der Paketauthor von caption hier vorbei.

    Zitat Zitat von Nini Beitrag anzeigen
    Denn ich gebe der Floatbox ja das Argument [\FBwidth] mit. Laut Doku soll das die Captionbreite an die Bildbreite anpassen.
    Das tut es auch, ohne die option width.

    Zitat Zitat von Nini Beitrag anzeigen
    P.S. \usepackage[demo]{graphicx} ?
    Ignoriert mit demo Graphics die Bilder?
    Hiermit wird einfach ein Rechteck ausgegeben, so dass man für solche Minimalbeispiele einfach einen Platzhalter hat und nicht extra ein Bild mitschicken muss.

    Gruß
    Marco

  5. #5
    Registrierter Benutzer
    Registriert seit
    01.02.2008
    Ort
    Dresden
    Beiträge
    21
    Hallo,

    vielen Dank für die Mühe! Diese Option ist wirklich nützlich, wieder was gelernt.

    Zitat Zitat von mechanicus Beitrag anzeigen
    Das tut es auch, ohne die option width.
    Das verstehe ich nicht ganz. Wenn ich die Breite auf 0.4 setze, wie in deinem Beispiel, setzt er die Bildunterschrift ja so breit wie die Grafik?
    Wenn ich 0.2 mache, macht er es wiederum entsprechend schmal.

    Oder ist es einfach Zufall, dass es mit 0.4 perfekt aussieht?

  6. #6
    Registrierter Benutzer Avatar von mechanicus
    Registriert seit
    10.07.2008
    Ort
    Hamburg
    Beiträge
    3.944
    Zitat Zitat von Nini Beitrag anzeigen
    Oder ist es einfach Zufall, dass es mit 0.4 perfekt aussieht?
    Wie meinst du das? Ich habe einfach die Graphik und die caption auf diese Größe gesetzt.
    Code:
    \captionsetup{width=0.4\textwidth}
    ...
    \includegraphics[width=0.4\textwidth]{duck}}
    Gruß
    Marco

  7. #7
    Registrierter Benutzer Avatar von sommerfee
    Registriert seit
    02.07.2006
    Beiträge
    1.603
    Zitat Zitat von Nini Beitrag anzeigen
    Denn ich gebe der Floatbox ja das Argument [\FBwidth] mit. Laut Doku soll das die Captionbreite an die Bildbreite anpassen.
    Ich verstehe das auch so: \captionsetup{width=...} ist eine globale Einstellung; und auch ich würde erwarten, daß die vom floatrow-Paket lokal überschrieben wird. Es sieht so aus, aus würde die Breitenangabe lediglich die Breite der Box angeben, in der die caption gesetzt wird. Solange aber die Einstellung "width=..." nicht überschrieben wird - sei es manuell oder vom floatrow-Paket - setzt das caption-Paket die caption ganz brutal in dieser Breite, egal in welchem Kontext, von dem weiß ja das caption-Paket nichts.

    Also ein Bug im floatrow-Paket? Zumindest eine Unschönheit, finde ich.

    Ich würde das ebenso wie mechanicus ausbügeln, indem ich in die betreffenen Abbildungen die Breitenangabe manuell zurücksetze, z.B.:
    Code:
    \begin{figure}[htb]
    \captionsetup{margin=0pt}
    \begin{floatrow}
    ...
    (oder aber mit \captionsetup{width=...} wie von mechanicus vorgeschlagen)

    Liebe Grüße,
    Axel
    Geändert von sommerfee (15-11-2008 um 09:06 Uhr)

  8. #8
    Registrierter Benutzer
    Registriert seit
    01.02.2008
    Ort
    Dresden
    Beiträge
    21
    Danke auch dir für die Antwort. Schön, dass ich nicht die einzige bin, die das so erwartet hätte. Deine Erklärung klingt logisch.
    Jetzt habe ich das mit der Breite auch endlich verstanden.
    Habe es selbst gemerkt, als ich die Bildbreite auf 0.45 vergrößert habe, aber die Caption dann zu schmal wurde.

    Code:
    \captionsetup{margin=0pt}
    scheint aber besser zu sein. Ich habe es ausprobiert, damit klappt es astrein, wenn ich die eine Abbildung auf 0.3 verkleinere und die andere auf 0.5 vergrößere, die Captions sitzen perfekt. (oder liegen? es ist ja ein Layout. ) Endlich so, wie es in der Doku gezeigt war.

    Ich dachte aber immer, margin bezieht sich auf die Ränder der Caption? Wieso setzt das die Breite zurück?

    Edit: tolles Forum übrigens!
    Geändert von Nini (15-11-2008 um 17:06 Uhr)

  9. #9
    Registrierter Benutzer Avatar von sommerfee
    Registriert seit
    02.07.2006
    Beiträge
    1.603
    Zitat Zitat von Nini Beitrag anzeigen
    Ich dachte aber immer, margin bezieht sich auf die Ränder der Caption? Wieso setzt das die Breite zurück?
    "margin=" und "width=" sind Einstellungen, die sich gegenseitig überschreiben. D.h. man kann entweder einen Rand angeben, dann ist die Breite der caption automatisch der verfügbare Platz - 2* Rand. Oder aber man gibt eine feste Breite an, dann wird diese Einstellung verwendet. Beides zusammen geht (noch) nicht.

    Liebe Grüße,
    Axel

Lesezeichen

Berechtigungen

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