Anzeige:
Ergebnis 1 bis 7 von 7

Thema: Komplizierte Tabelle

  1. #1
    Registrierter Benutzer
    Registriert seit
    31.01.2007
    Beiträge
    31

    Komplizierte Tabelle

    Liebe Forengemeinde,

    ich bräuchte etwas (oder eher sehr) viel Hilfe bei der Erstellung einer etwas komplizierten Tabelle.
    Anbei eine Grafik, von der hoffentlich ersichtlich ist, was ich am Ende haben möchte:

    Und anbei ein Minimalbeispiel von dem ich zu starten versuche:
    Code:
    \documentclass[12pt,twoside, a4paper]{report}
    \usepackage[german]{babel}
    \usepackage{textcomp}
    
    \usepackage[T1]{fontenc}
    \usepackage[latin1]{inputenc}  
    
    \usepackage{booktabs}  
    \usepackage{longtable} 
    \usepackage{dcolumn} 
    
    \usepackage{rotating}
    \usepackage{tabularx}
    \usepackage{multirow} 
    
    \begin{document}
    
    \begin{tabular}{|l|l|l|}
    \multirow{3}{*}{\begin{sideways}A\end{sideways}} & B & C \\
     & D & E \\
     & F & G \\ 
    \end{tabular}
    
    \end{document}
    Leider komme ich trotz vieler Versuche nicht auf das gewünschte Resultat (ich scheitere immer wieder daran multicolumn und multirow korrekt ineinander zu verschachteln).

    Könnte jemand von Euch bitte versuchen, mir bei der Erstellung meiner Wunsch-Tabelle zu helfen? Über eine ausgearbeitete LaTeX-Vorlage (muss nicht komplett sein) würde ich mich genauso freuen wie über Tipps!
    Geändert von danm357 (03-09-2012 um 15:41 Uhr) Grund: Bild nicht eindeutig genug

  2. #2
    Registrierter Benutzer
    Registriert seit
    17.02.2010
    Beiträge
    685
    Wenn ich das richtig sehe, brauchst Du - mit Ausnahme des 'o' - gar kein
    multirow. Den Tabellenkopf kannst Du einfach mit drei Zeilen und
    entsprechend angeordneten multicolumn gestalten.


    Code:
    \documentclass[12pt,twoside, a4paper]{report}
    \usepackage[german]{babel}
    \usepackage{textcomp}
    
    \usepackage[T1]{fontenc}
    \usepackage[latin1]{inputenc}
    
    \usepackage{booktabs}
    \usepackage{longtable}
    \usepackage{dcolumn}
    
    \usepackage{longtable}
    \usepackage{booktabs}
    \usepackage{tabularx}
    \usepackage{multirow}
    
    \begin{document}
    
    \begin{tabular}{l|l|l|l|l|l|l|l|l|l|l|l|l|l}
     & & & & & \multicolumn{6}{c|}{F} & \multicolumn{3}{c}{G} \\
     A & B & C & D & E & \multicolumn{2}{c|}{H} &
        \multicolumn{2}{c|}{I} & \multicolumn{2}{c|}{J} &
        \multicolumn{2}{c|}{K} & L \\
     & & & & & M & N & O & P & Q & R & S & T & \\
     \hline
      a & b & c & d & e & f & g & h & i & j & k & l & m & n \\
    \end{tabular}
    
    \end{document}
    Geändert von LuPi (03-09-2012 um 15:28 Uhr) Grund: Beispiel ergänzt

  3. #3
    Registrierter Benutzer
    Registriert seit
    06.08.2008
    Beiträge
    1.015
    Hier mal ein Beispiel, dass Lupis Aussage verdeutlicht:
    Code:
    \documentclass[12pt,a4paper]{report}
    \usepackage[german]{babel}
    
    \usepackage[T1]{fontenc}
    \usepackage[utf8]{inputenc}  
    
    \usepackage{multirow} 
    
    \begin{document}
    
    \begin{tabular}{c|c|c|c|c|c|c|c|c|c|c|c|c|c|} 
      &   &   &   & \multirow{3}{*}{E}  & \multicolumn{6}{c|}{F} & \multicolumn{3}{c|}{g} \\
    A & B & C & D &  & \multicolumn{2}{c|}{H} & \multicolumn{2}{c|}{I} & \multicolumn{2}{c|}{J} & \multicolumn{2}{c|}{K} & \multirow{2}{*}{L} \\
      &   &   &   &   & M & N & O & P & Q & R & S & T &   \\ \hline
    a & b & c & d & e & f & g & h & i & j & k & l & m & n \\ \hline
    \multirow{2}{*}{o} & p & q & r & s & t & u & v & w & x & y & z & 1 & 2 \\
      & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 & 11 & 12 & 13 & 14 & 15 \\ \hline
    \end{tabular}
    
    \end{document}
    Wie du siehst, kann bei ungerader Zeilenzahl einfach die darüber und darunter liegenden Zellen leer lassen. Vergleiche A, B, C, D mit E, das tatsächlich (und eigentlich überflüssig) die multirow-Konstruktion verwendet.

    Bei multicolumn ist lediglich zu beachten, dass die Definitionen für vertikale Linien überschrieben werden. Deshalb musst man sich u.U. manuell im multicolumn-Befehl mit übergeben.

    PS. Du lädst diverse Pakete doppelt. Das ist keine gute Idee.

    EDIT. mal wieder zu langsam getippt...
    Geändert von hakaze (03-09-2012 um 15:52 Uhr)

  4. #4
    Registrierter Benutzer
    Registriert seit
    31.01.2007
    Beiträge
    31
    Vielen Dank LuPi und hakaze,

    erstmals Danke dafür, dass Ihr geantwortet habt.
    Leider habe ich meine Grafik nicht ganz eindeutig gemacht, aber nun an meine Fragestellung etwas besser angepasst (und auch das doppelte LaTeX-Pakte entfernt, danke für den Hinweis!)

    Natürlich kann man bei meinem ersten Bsp. die Zeilen über und unter A leer lassen. Aber wie mache ich es, wenn ich anstatt des A einen etwas längeren (gedrehten Text) habe, wie im aktuellen Bild? Ich denke, dann bin ich auf multirow angewiesen.
    Da dann in der gleichen Zeile auch noch ein multicolumn kommt, weiss ich leider immer noch nicht weiter, wie ich das managen soll.

    Aber vielleicht habt Ihr ja nun die richtige Lösung für mich parat ;-)

    Entschuldigt auf alle Fälle meine unglückliche Zeichnung von voring!
    Vielen Dank noch mal! Ich hoffe, nochmal von Euch zu hören!


    P.s.: hakaze, da warst Du aber viel schneller als ich! Danke, dass Du von selbst auf die geänderte Grafik reagiert und Deine Lösung angepasst hast! Echt sehr nett und hilfreich von Dir!! Besten Dank für diese schnelle Lösung!
    Geändert von danm357 (03-09-2012 um 15:52 Uhr) Grund: Antwort auf aktuellen Stand gebracht

  5. #5
    Registrierter Benutzer
    Registriert seit
    06.08.2008
    Beiträge
    1.015
    Überarbeitetes Beispiel mit gedrehten Textboxen (setzt Paket graphicx voraus):
    Code:
    \documentclass[12pt,a4paper]{report}
    \usepackage[german]{babel}
    
    \usepackage[T1]{fontenc}
    \usepackage[utf8]{inputenc}  
    
    \usepackage{graphicx,multirow} 
    
    \begin{document}
    
    \begin{tabular}{c|c|c|c|c|c|c|c|c|c|c|c|c|c|} 
    \multirow{3}{*}{\rotatebox{90}{text1}} & %
    \multirow{3}{*}{\rotatebox{90}{text2}} & %
    \multirow{3}{*}{\rotatebox{90}{text3}} & %
    \multirow{3}{*}{\rotatebox{90}{text4}} & %
    \multirow{3}{*}{\rotatebox{90}{text5}} & %
    \multicolumn{6}{c|}{F} & \multicolumn{3}{c|}{G} \\
      &   &   &   &   & \multicolumn{2}{c|}{H} & \multicolumn{2}{c|}{I} & \multicolumn{2}{c|}{J} & \multicolumn{2}{c|}{K} & \multirow{2}{*}{L} \\
      &   &   &   &   & M & N & O & P & Q & R & S & T &   \\ \hline
    a & b & c & d & e & f & g & h & i & j & k & l & m & n \\ \hline
    \multirow{2}{*}{\rotatebox{90}{text6}} & p & q & r & s & t & u & v & w & x & y & z & 1 & 2 \\
      & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 & 11 & 12 & 13 & 14 & 15 \\ \hline
      
    \end{tabular}
    
    \end{document}
    Wie man sieht, wird es für text6 ziemlich eng. Da musst du eventuell die übrigen Zeilenhöhen vergrößern.

  6. #6
    Registrierter Benutzer
    Registriert seit
    17.02.2010
    Beiträge
    685
    @hakaze: Oder text6 komprimieren? Aber das ist beides nicht optimal.
    Vielleicht ist text6 in Realität etwas kürzer ...



    Zugegebenermaßen weiß ich nicht so ganz, was Dir jetzt fehlt.
    Das Beispiel

    Code:
    \documentclass[12pt,twoside, a4paper]{report}
    \usepackage[german]{babel}
    \usepackage{textcomp}
    
    \usepackage[T1]{fontenc}
    \usepackage[latin1]{inputenc}
    
    \usepackage{booktabs}
    \usepackage{longtable}
    \usepackage{dcolumn}
    
    \usepackage{rotating}
    \usepackage{tabularx}
    \usepackage{multirow}
    
    \begin{document}
    
    \begin{tabular}{|l|l|l|}
    \multirow{3}{*}{\begin{sideways}A\end{sideways}} & \multicolumn{2}{c|}{ccc} \\
     & D & E \\
     & F & G \\
    \end{tabular}
    
    \end{document}
    läuft bei mir einwandfrei durch und liefert das erwartete Ergebnis.
    Geändert von LuPi (03-09-2012 um 15:56 Uhr) Grund: Zweiter Sieger ...

  7. #7
    Registrierter Benutzer
    Registriert seit
    31.01.2007
    Beiträge
    31
    Danke LuPi auch für Deine neue Antwort,

    Deine Lösung funktioniert natürlich auch sehr schön!

    Text6 zu komprimieren ist ein guter Vorschlag (da in Wahrheit text1 etc. alle verschiedene Längen haben). Diesen werde ich vermutlich für meine echte Tabelle anwenden.

    Besten Dank nochmals!

Stichworte

Lesezeichen

Berechtigungen

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