Anzeige:
Ergebnis 1 bis 14 von 14

Thema: Objekte (Texte, Grafiken, etc) nebeneinander setzen

  1. #1
    Registrierter Benutzer
    Registriert seit
    01.06.2010
    Beiträge
    239

    Objekte (Texte, Grafiken, etc) nebeneinander setzen

    Hey,

    wie Ihr seht, habe ich mal wieder ein paar Fragen zur Verwendung von Latex. ;-)

    Ich möchte in einem "normalen" einspaltigen Layout zwei Objekte nebeneinander anordnen (mit HTML/CSS war das so einfach...). Diese Objekte können Grafiken, Texte oder Tabellen sein. Ich habe den ganzen Abend rum probiert; mit minipage, wrapfigure... Aber das gewünschte Ergebnis kam leider nicht bei raus (zumal Gleitumgebungen in minipage eh nicht erlaubt sind).

    Die Umgebungen sollten rechts und links mit dem normalen Textfluss abschließen UND der nachfolgende Text soll erst nach der (nach unten) größeren Umgebung anfangen. Ich habe es nicht hin bekommen...

    Bei der Anordnung von einer Grafik neben einem Text wäre es natürlich am Besten, wenn die Größe der Grafik automatisch berechnet werden würde. Höhe des zu berücksichtigenden Textes=max. Höhe der Grafik.

    Ich hoffe Ihr versteht, was ich meine?
    Als Beispiel:
    Ordne ich eine Grafik mit wrapfigure rchts neben einem kurzen Text an (die Grafik ist höher), beginnt auch der nachfolgende Text die Grafik zu umfließen. Er soll aber erst am Ende der Grafik beginnen...

    Oh man, ich muss ins Bett...

    VG

  2. #2
    Registrierter Benutzer
    Registriert seit
    06.03.2010
    Ort
    St. Petersburg, Russland
    Beiträge
    2.468
    Zu deiner eigentlichen Frage kann ich dir nicht so schnell etwas sagen, aber:
    Du brauchst nicth unbedingt eine Gleitumgebung, um eine anständige Abbildung oder Tabelle darzustellen. Du kannst die caption auch mit dem \captionof-Befehl ohne Gleitungebung setzen. Evtl. brauchst du dafür \usepackage{caption}, ich glaube aber, die KOMA-Klassen laden das von selbst.

  3. #3
    Registrierter Benutzer
    Registriert seit
    01.06.2010
    Beiträge
    239
    Hallo und guten Morgen,

    ich habe ein kleines Minimalbeispiel gebastelt, welches die Problemstellung hoffentlich noch etwas verdeutlicht:
    Code:
    \documentclass[%
       11pt,
       a4paper,
    ]{scrreprt}
    \usepackage{wrapfig}
    \usepackage{blindtext}
    \usepackage[latin1]{inputenc} % Font Encoding, benoetigt für Umlaute
    \usepackage[ngerman]{babel}   % Spracheinstellung
    \usepackage[T1]{fontenc} 			% T1 Schrift Encoding
    \usepackage{graphicx}
    
    \begin{document}
    	\begin{wrapfigure}{L}{4cm}
    	\vspace*{-1.2em}
    		\includegraphics[width=4cm]{testa}
    		\caption{blabla}
    		\label{fig:testa}
    	\end{wrapfigure}
    	
    	Hier ein Text der um die Grafik fließen soll. Der Blindtext soll unter der Grafik beginnen.
    	
    	\blindtext
    \end{document}
    Vielen Dank für Eure Hilfe!

  4. #4
    Registrierter Benutzer
    Registriert seit
    06.03.2010
    Ort
    St. Petersburg, Russland
    Beiträge
    2.468
    Wenn es dir recht ist, dass die beiden nebeneinander stehenden Objekte an einer gemeinsamen Grundlinie ausgerichtet sind, versuch mal was in der Art:
    Code:
    \documentclass[%
       11pt,
       a4paper,
    ]{scrreprt}
    \usepackage{wrapfig}
    \usepackage{blindtext}
    \usepackage[utf8]{inputenc} % bei dir nicht aendern, ich habe alles auf utf8 eingestellt, deswegen brauche ich das
    \usepackage[ngerman]{babel}   % 
    \usepackage[T1]{fontenc} 			% 
    \usepackage{graphicx}
    \begin{document}
    \noindent\begin{minipage}[t]{0.3\textwidth}%
    		\rule{4cm}{4cm} % im Originaldokument durch \includegraphics usw. ersetzen
    		\captionof{figure}{blabla}%
    		\label{fig:testa}%
    \end{minipage}%
    \begin{minipage}[b]{0.69\textwidth}
    	Hier ein Text der um die Grafik fließen soll. Der Blindtext soll unter der Grafik beginnen.
    \end{minipage}	
    
    	\blindtext
    \end{document}
    Oder guck mal hier http://mrunix.de/forums/showthread.php?t=63849 die Idee mit columns.

  5. #5
    Registrierter Benutzer
    Registriert seit
    28.04.2011
    Beiträge
    105
    ganz einfach: Du brauchst subfigure. Hier mal ein kleiner Code:


    Code:
    \usepackage{subfigure}
    
    ...
    \begin{document}
    
    ...
    \begin{figure}[h]
    \centering       %wenn du das Gesamtkonstrukt in der mitte haben willst
    \begin{minipage}{0,45\textwidth}\subfigure[Bildunterschrift]{\label{key} \includegraphics[breite]{Pfad}\end{minipage}}
    \begin{minipage}{0,45\textwidth}\subfigure[Bildunterschrift2]{\label{key2} \includegraphics[breite]{Pfad2}\end{minipage}}
    \caption[für Verzeichnis]{Gesamtunterschrift}
    \label{}
    \end{figure}
    Wichtig ist, daß die Breite des Subfigures kleiner-gleich der von minipage ist und die Summe der Breiten der Minipages KLEINER (!!!) \textwidth ist.
    Die Subfigures erhalten die Nummerierung a) und b)

  6. #6
    Registrierter Benutzer
    Registriert seit
    01.06.2010
    Beiträge
    239
    Danke für eure Tipps! Beide sehr interessant. Da ich jetzt gerade Text und Grafiken habe, werde ich erst mal mit der Variante von rstuby arbeiten. Hier allerdings noch eine Frage zu:

    Die Grafik wird auf einer Grundlinie mit dem Text ausgerichtet, das ist auch - manchmal - gut so. allerdings wird die Caption unter dieser Linie erstellt. Ist nicht auch eine Top-Ausrichtung möglich?

  7. #7
    Registrierter Benutzer
    Registriert seit
    06.03.2010
    Ort
    St. Petersburg, Russland
    Beiträge
    2.468
    Probier mal alle Kombinationen von t, b und c durch. Bei mir war dieses das zufriedenstellendste Ergebnis von denen, die ich probiert habe.

  8. #8
    Registrierter Benutzer
    Registriert seit
    01.06.2010
    Beiträge
    239
    Mhh...

    Irgendwie auch nicht zufrieden stellend. Ist der Text deutlich kürzer, als die Grafik an Höhe einnimmt, wird er dennoch nicht oben mit der Grafik ausgerichtet...

    Gibts da keine Lösung oder ein gutes Paket? Ich kann doch nicht der Einzige sein, der dies umsetzen möchte?!

  9. #9
    Registrierter Benutzer
    Registriert seit
    28.04.2011
    Beiträge
    105
    Ach, jetzt verstehe ich Dein Problem.

    Ich nutze da eine quick-and-dirty-methode: Ich mache ein wrapfig, schreibe den Text daneben, und wenn dieser zu kurz ist, füge ich einfach so viele \newline ein, bis der nachfolgende Text unter das Bild rutscht.

    Ist zwar ein sehr unsauberer Weg, aber: Never change a running system!!!

    Ist natürlich nur sinnvoll, wenn Du die Bildgröße nie wieder verändern willst.

  10. #10
    Registrierter Benutzer
    Registriert seit
    01.06.2010
    Beiträge
    239
    Zitat Zitat von defcon Beitrag anzeigen
    Ist natürlich nur sinnvoll, wenn Du die Bildgröße nie wieder verändern willst.
    ... Oder sich der Text darüber verändert und alles verschiebt...

    Die Idee ist natürlich nicht schlecht, aber doch auch etwas unbefriedigend?! Viele Bücher werden doch mit LaTeX verfasst?! Wenn ich mir da die Anordnung von Text und Grafiken anschaue, sieht das irgendwie immer professioneller aus. Wie machen die sowas?

    Ich erinnere mich noch an die Verwendung von html und CSS. Dort gab es auch float Umgebungen; wenn man allerdings wollte, dass nachfolgende/r Text/Grafiken nicht mit "umfliessen", konnte man einfach beim nachfolgenden Container ein clear:both setzen und das Floating wurde beendet. Eine super Lösung...

  11. #11
    Registrierter Benutzer
    Registriert seit
    31.03.2010
    Beiträge
    1.039
    Zitat Zitat von rstuby Beitrag anzeigen
    Probier mal alle Kombinationen von t, b und c durch.
    Zusätzlich kann man die eine Abbildung mit Hilfe von \raisebox ganz (-\totalheight ist da als erstes Argument ganz praktisch) oder teilweise (da ist dann \dimexpr\ht\strutbox-\totalheight\relax eventuell nützlich) unter die Grundlinie verschieben.

  12. #12
    Registrierter Benutzer
    Registriert seit
    28.04.2011
    Beiträge
    105
    Zitat Zitat von Schweinebacke Beitrag anzeigen
    Zusätzlich kann man die eine Abbildung mit Hilfe von \raisebox ganz (-\totalheight ist da als erstes Argument ganz praktisch) oder teilweise (da ist dann \dimexpr\ht\strutbox-\totalheight\relax eventuell nützlich) unter die Grundlinie verschieben.


    Das sieht mir aber immernoch nach manueller Einstellung des Platzhalters aus. Dann kann ich auch /newlines einfügen...

  13. #13
    Registrierter Benutzer
    Registriert seit
    31.03.2010
    Beiträge
    1.039
    Ich denke schon, dass es einen Unterschied macht, ob die vertikale Ausrichtung mit Hilfe von automatisch bestimmten Längen wie \totalheight korrigiert wird und sich so der Größe der Abbildung automatisch anpasst, oder ob man manuell eine von der Größe der Abbildung abhängige Anzahl an Leerzeilen einfügt (da würde ich übrigens eher \vspace* empfehlen). Schließlich muss bei der \raisebox-Methode nichts am Code geändert werden, nur weil man eine Zeile mehr oder weniger Text hat oder die Abbildung etwas größer oder kleiner wird. Erst wenn der Text nicht mehr neben die Abbildung passt, bedarf es einer Änderung. Diesen signifikanten Unterschied müsste eigentlich jeder einsehen, der das mal ausprobiert hat.
    Code:
    \documentclass{scrreprt}
    \usepackage[ngerman]{babel}
    \usepackage{blindtext}
    \usepackage[demo]{graphicx}
    \begin{document}
    \begin{flushleft}
    \begin{minipage}[t]{0.3\linewidth}%
      \raisebox{\dimexpr\ht\strutbox-\totalheight}{%
        \includegraphics[width=\linewidth,height=4cm]{Test}%
      }
      \captionof{figure}{Das ist die Bildunterschrift}%
      \label{fig:testa}%
    \end{minipage}\hfill
    \begin{minipage}[t]{0.69\linewidth}
      Hier haben wir ein wenig Text, der neben der Abbildung stehen soll.
      Im Gegensatz dazu, soll dann der Blindtext wieder darunter stehen.
    \end{minipage}    
    \end{flushleft}
    \blindtext
    
    \begin{flushleft}
    \begin{minipage}[t]{0.3\linewidth}%
      \raisebox{\dimexpr\ht\strutbox-\totalheight}{%
        \includegraphics[width=\linewidth,height=3cm]{Test}%
      }
      \captionof{figure}{Das ist die Bildunterschrift}%
      \label{fig:testb}%
    \end{minipage}\hfill
    \begin{minipage}[t]{0.69\linewidth}
      Hier haben wir ein wenig Text, der neben der Abbildung stehen soll.
      Im Gegensatz dazu, soll dann der Blindtext wieder darunter stehen.
    \end{minipage}
    \end{flushleft}
    \blindtext
    
    Obwohl Abbildung~\ref{fig:testa} und Abbildung~\ref{fig:testb} unterschiedlich
    hoch sind, sind Text und Bild jedes mal in gleicher Weise oben ausgerichtet,
    ohne dass dazu der Code zur Ausrichtung angepasst werden muss.
    \end{document}

  14. #14
    Registrierter Benutzer
    Registriert seit
    28.04.2011
    Beiträge
    105
    Tja, hast Recht. Ich habe da wohl irgendwas in der Doku falsch verstanden.
    Außerdem funktionierte es bei mir nicht, wenn ich wrapfloats verwende. ist aber auch egal, ich mache es wie bisher...

Lesezeichen

Berechtigungen

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