Anzeige:
Ergebnis 1 bis 7 von 7

Thema: Tabelle mit verschieden formatierten Zeilen

  1. #1
    Registrierter Benutzer
    Registriert seit
    03.12.2008
    Beiträge
    7

    Tabelle mit verschieden formatierten Zeilen

    Hallo zusammen,

    Ich will gerade für meine Diplomarbeit eine Tabelle in Latex erstellen, und habe dabei folgende Zielsetzungen:

    1) Die Gesamtbreite der Tabelle soll der gesamten Seitenbreite entsprechen
    2) Die Zeilenüberschriften sollen zentriert sein
    3) Die Daten der Tabelle sollen zum teil zentriert sein, zum teil so ausgerichtet, dass die Dezimalpunkte untereinander stehen.

    Alles zusammen hab ich bisher noch nicht hinbekommen...

    Punkt 3) ist nicht so wichtig, es ist im Prinzip auch ok, wenn die Daten rechtsbündig sind, weil dann die Dezimalpunkte auch untereinander stehen...

    Ich habe die Tabelle mal folgendermassen versucht (wie gesagt, mit rechtsbündigen Datenfeldern):

    oben habe ich folgenden Spaltentyp definiert:
    \newcolumntype{Y}{>{\raggedleft\arraybackslash}X}

    dann die Tabelle folgendermassen:

    \begin{tabularx}{\textwidth}{|c|Y|Y|Y|Y|Y|Y|}

    \cline{3-6}
    \multicolumn{2}{c}{} & \multicolumn{4}{|c|}{Values per km$^2$} & \multicolumn{1}{c}{}\\
    \hline
    Ring area $Z_x$ & Surface area (km$^2$) & Number of trees (m) & Tree lengths (m) & Street lengths without trees (m) & Total street lengths (m) & Tree lengths / Total street lengths \\
    \hline
    1 & 0,12 & 51,46 & 2472 & 32906 & 35378 \\
    \hline
    2 & 0,35 & 40,03 & 1613 & 22779 & 24392 \\
    \hline
    3 & 0,58 & 30,88 & 3482 & 11599 & 15082 \\
    \hline
    4 & 0,82 & 15,93 & 1944 & 14460 & 16405 \\
    \hline

    \end{tabularx}

    Das sieht soweit nicht schlecht aus, ABER:
    Die Spaltenüberschriften sind ebenfalls rechtsbündig, das ist super hässlich. Wenn ich jetzt anfangen, jede Zelle meiner Spaltenüberschriften it \multicolumn{1}{c}{inhalt} formatiere, dann wird der Text in der Zelle nicht mehr umgebrochen und die Tabelle wird zu breit! Ich konnte in diesem Falle nicht mal mehr mit \newline manuell die Zelle umbrechen... ideal wäre übrigens ein automatischer Zeilenumbruch in der Spaltenüberschrift...

    Und, wie gesagt, wenn das mit der Dezimalpunktausrichtung der Spalten noch klappen würde, das wäre perfekt!!!

    Meint ihr, ihr könnt mir irgendwie helfen?

    LG,
    Thomas
    Geändert von Tomatito80 (03-12-2008 um 12:14 Uhr) Grund: Ich habe die Spaltendefinition vergessen

  2. #2
    Registrierter Benutzer Avatar von mechanicus
    Registriert seit
    10.07.2008
    Ort
    Hamburg
    Beiträge
    3.944
    Zitat Zitat von Tomatito80 Beitrag anzeigen
    1) Die Gesamtbreite der Tabelle soll der gesamten Seitenbreite entsprechen
    Warum?
    Zitat Zitat von Tomatito80 Beitrag anzeigen
    2) Die Zeilenüberschriften sollen zentriert sein
    Das wird wohl nicht anders gehen als jedes Mal multicolumn zu nutzen. Du kannst dir ja z. B. einen Befehl definieren, der das ganze kürzt:
    Code:
    \def\MC#1{\multicolumn{1}{@{}>{\Centering}X@{}}{#1}}
    ...
    \MC{Surface area (km$^2$)}
    Zitat Zitat von Tomatito80 Beitrag anzeigen
    3) Die Daten der Tabelle sollen zum teil zentriert sein, zum teil so ausgerichtet, dass die Dezimalpunkte untereinander stehen.
    Hierzu gibt es dcolumn. Aber wie du richtig erkannt hast, sind deine Daten alle gleich lang, alse reicht es aus, wenn sie rechtbündig sind.


    Du solltest dir auch überlegen, nicht soviele Linien zu nutzen. Schadet nur der Übersichtlichkeit.

    Du kannst deinen Code auch in ein Code-Fenster packen. Hierzu gehört auch, dass dein Beispiel lauffähig ist. (Minimalbeispiel)

    Gruß
    Marco

  3. #3
    Registrierter Benutzer
    Registriert seit
    03.12.2008
    Beiträge
    7
    Hallo Marcus,

    zuerst mal herzlichen Dank für deine schnelle Antwort. Ok, das mit multicolumn ist ganz gut, aber wie ich schon sagte, ich schaffe es nicht, dass dann innerhalb der multicolumn ein automatischer Zeilenumbruch geschieht. Hast du da eine Idee?

    Selbst der manuelle Zeilenumbruch funktioniert bei mir nicht... (zumindest nicht mit \newline)

    Grüsse,
    Thomas

    Minimalbeispiel:

    Code:
    %Schriftgröße, Layout, Papierformat, Art des Dokumentes
    \documentclass[12pt,oneside,a4paper]{scrbook}
    
    %Einstellungen der Seitenränder
    \usepackage[left=2cm,right=2cm,top=2cm,bottom=2cm,includeheadfoot]{geometry}
    
    %Silbentrennung ausschalten
    \usepackage[none]{hyphenat} 
    
    %Kopf- und Fußzeile
    \usepackage{fancyhdr}
    \pagestyle{fancy}
    \fancyhf{}
    
    \usepackage{tabularx}
    \usepackage{ragged2e}
    \usepackage{array}
    
    %Absatz nicht einruecken
    \setlength\parindent{0pt}
    
    %Fuer mathematische Definitionen
    \newtheorem{definition}{Definition} 
    
    \newcolumntype{Y}{>{\raggedleft\arraybackslash}X}
    
    \begin{document}
    
    {\footnotesize
    \begin{tabularx}{\textwidth}{|c|Y|Y|Y|Y|Y|Y|}
    
    \cline{3-6}
    \multicolumn{2}{c}{} & \multicolumn{4}{|c|}{Values per km$^2$} & \multicolumn{1}{c}{}\\
    \hline
    \multicolumn{1}{|c}{Ring area  $Z_x$} & \multicolumn{1}{|c}{Surface area (km$^2$)} & \multicolumn{1}{|c}{Number of trees (m)} & \multicolumn{1}{|c}{Tree lengths (m)} & \multicolumn{1}{|c}{Street lengths without trees (m)} & \multicolumn{1}{|c}{Total street lengths (m)} & \multicolumn{1}{|c|}{Tree lengths / Total street lengths} \\
    \hline
             1 &       0,12 &      51,46 &       2472 &      32906 &      35378 &     7,00\% \\
    \hline
             2 &       0,35 &      40,03 &       1613 &      22779 &      24392 &     6,60\% \\
    \hline
             3 &       0,58 &      30,88 &       3482 &      11599 &      15082 &    23,10\% \\
    \hline
             4 &       0,82 &      15,93 &       1944 &      14460 &      16405 &    11,90\% \\
    \hline
             5 &       1,05 &       4,77 &       2119 &      10512 &      12631 &    16,80\% \\
    \hline
             6 &       1,28 &      11,70 &       1664 &       7516 &       9181 &    18,10\% \\
    \hline 
         
    \end{tabularx}
    }
    
    
    \end{document}

  4. #4
    Registrierter Benutzer Avatar von mechanicus
    Registriert seit
    10.07.2008
    Ort
    Hamburg
    Beiträge
    3.944
    Zitat Zitat von Tomatito80 Beitrag anzeigen
    ich schaffe es nicht, dass dann innerhalb der multicolumn ein automatischer Zeilenumbruch geschieht. Hast du da eine Idee?
    Hallo,

    das liegt daren, dass du die Spaltendefinition c verwendest. Da ist kein Zeileumbruch möglich!
    Code:
    %Schriftgröße, Layout, Papierformat, Art des Dokumentes
    \documentclass[12pt,oneside,a4paper]{scrbook}
    
    %Einstellungen der Seitenränder
    \usepackage[left=2cm,right=2cm,top=2cm,bottom=2cm,includeheadfoot]{geometry}
    
    %Silbentrennung ausschalten
    \usepackage[none]{hyphenat} 
    
    %Kopf- und Fußzeile
    \usepackage{fancyhdr}
    \pagestyle{fancy}
    \fancyhf{}
    
    \usepackage{tabularx}
    \usepackage{ragged2e}
    \usepackage{array}
    \usepackage{calc}
    
    %Absatz nicht einruecken
    \setlength\parindent{0pt}
    
    %Fuer mathematische Definitionen
    \newtheorem{definition}{Definition} 
    
    \newcolumntype{Y}{>{\raggedleft\arraybackslash}X}
    
    \begin{document}
    
    {\footnotesize
    \begin{tabularx}{\textwidth}{|c|Y|Y|Y|Y|Y|Y|}
    
    \cline{3-6}
    \multicolumn{2}{c}{} & \multicolumn{4}{|c|}{Values per km$^2$} & \multicolumn{1}{c}{}\\
    \hline
    \multicolumn{1}{|X|}{Ring area  $Z_x$} & \multicolumn{1}{X|}{Surface area (km$^2$)} & \multicolumn{1}{X|}{Number of trees (m)} & \multicolumn{1}{X|}{Tree lengths (m)} & \multicolumn{1}{X|}{Street lengths without trees (m)} & \multicolumn{1}{X|}{Total street lengths (m)} & \multicolumn{1}{X|}{Tree lengths / Total street lengths} \\
    \hline
             1 &       0,12 &      51,46 &       2472 &      32906 &      35378 &     7,00\% \\
    \hline
             2 &       0,35 &      40,03 &       1613 &      22779 &      24392 &     6,60\% \\
    \hline
             3 &       0,58 &      30,88 &       3482 &      11599 &      15082 &    23,10\% \\
    \hline
             4 &       0,82 &      15,93 &       1944 &      14460 &      16405 &    11,90\% \\
    \hline
             5 &       1,05 &       4,77 &       2119 &      10512 &      12631 &    16,80\% \\
    \hline
             6 &       1,28 &      11,70 &       1664 &       7516 &       9181 &    18,10\% \\
    \hline 
         
    \end{tabularx}
    }
    
    
    \end{document}
    Du hast auch nicht den Ratschlag mit booktabs berücksichtigt.
    http://userpage.fu-berlin.de/~latex/...en/tabsatz.pdf

    Gruß
    Marco
    Geändert von mechanicus (03-12-2008 um 13:15 Uhr) Grund: Code Einfügen

  5. #5
    Registrierter Benutzer
    Registriert seit
    03.12.2008
    Beiträge
    7
    Hallo Marco

    Zuerst mal entschuldigung für die Misshandlung deines Namens...!

    Also, das mit den booktabs hat ja eher mit der übesichtlichkeit zu tun, aber ich möchte meine Tabelle vom Prinzip her schon so lassen, nur will ich eben gerne noch einen Zeilenumbruch!
    Zumindest kann ich da den Zusammenhang mit booktabs grad nicht erkennen (sorry, falls es doch einen geben sollte, ich bin ziemlicher Anfänger in Latex!!).

    Grüsse,
    Tomatito

  6. #6
    Registrierter Benutzer Avatar von mechanicus
    Registriert seit
    10.07.2008
    Ort
    Hamburg
    Beiträge
    3.944
    Zitat Zitat von Tomatito80 Beitrag anzeigen
    Also, das mit den booktabs hat ja eher mit der übesichtlichkeit zu tun
    Du hast recht, es ist für die Übersichtlichkeit, hast du das Beispiel von mir schon laufen lassen?

    Gruß
    Marco

  7. #7
    Registrierter Benutzer
    Registriert seit
    03.12.2008
    Beiträge
    7
    Hallo Marco,

    ja, danke, dein Beispiel ist in der Tat sehr gut! Ich habe derweil selbst nochmals nachgeforscht und folgendes gebastelt:

    Code:
    %Schriftgroesse, Layout, Papierformat, Art des Dokumentes
    \documentclass[12pt,oneside,a4paper]{scrbook}
    
    %Einstellungen der Seitenraender
    \usepackage[left=2cm,right=2cm,top=2cm,bottom=2cm,includeheadfoot]{geometry}
    
    %Silbentrennung ausschalten
    \usepackage[none]{hyphenat} 
    
    %Kopf- und Fußzeile
    \usepackage{fancyhdr}
    \pagestyle{fancy}
    \fancyhf{}
    
    \usepackage{tabularx}
    \usepackage{ragged2e}
    \usepackage{array}
    
    %Groesserer Zeilenabstand
    \linespread{1.25}
    
    \usepackage{amsmath}
    \usepackage{amssymb}
    
    %neue Tabellenspalte definieren
    \newcolumntype{C}[1]{>{\centering\arraybackslash}p{#1}}
    
    \begin{document}
    
    
    {\footnotesize
    \begin{tabular}
    {|>{\Centering}p{0.09\textwidth}|>{\RaggedLeft}p{0.12\textwidth}|>{\RaggedLeft}p{0.1\textwidth}|>{\RaggedLeft}p{0.12\textwidth}|>{\RaggedLeft}p{0.13\textwidth}|>{\RaggedLeft}p{0.11\textwidth}|>{\RaggedLeft}p{0.14\textwidth}|}
    \cline{3-6}
    \multicolumn{2}{c|}{} & \multicolumn{4}{c|}{Values per km$^2$} & \multicolumn{1}{c}{}\\
    \hline 				 
    \multicolumn{1}{|C{0.09\textwidth}|}{Ring area $Z_x$} & \multicolumn{1}{C{0.12\textwidth}|}{Surface area (km$^2$)} & \multicolumn{1}{C{0.1\textwidth}|}{Number of \newline trees (m)} & \multicolumn{1}{C{0.12\textwidth}|}{Tree lengths (m)} & \multicolumn{1}{C{0.13\textwidth}|}{Street lengths without trees (m)} & \multicolumn{1}{C{0.11\textwidth}|}{Total street lengths (m)} & \multicolumn{1}{C{0.14\textwidth}|}{(Tree lengths) / (Total street lengths)}\\
    \hline
             1 &       0,12 &      51,46 &       2472 &      32906 &      35378 &     7,00\% \\
    \hline
             2 &       0,35 &      40,03 &       1613 &      22779 &      24392 &     6,60\% \\
    \hline
             3 &       0,58 &      30,88 &       3482 &      11599 &      15082 &    23,10\% \\
    \hline
             4 &       0,82 &      15,93 &       1944 &      14460 &      16405 &    11,90\% \\
    \hline
    \end{tabular}  
    }
    \end{document}
    Gruesse,
    Thomas

Stichworte

Lesezeichen

Berechtigungen

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