Tabellenformatierung

Tabellen und Grafiken erstellen und anordnen


NTNU
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 54
Registriert: So 27. Jun 2010, 15:49

Tabellenformatierung

Beitrag von NTNU »

Hallo zusammen,

ich kämpfe seit gestern Abend ein bisschen mit einer Tabelle von mir. In meiner Tabelle gibt es eigentlich zwei "Datenblöcke" (siehe Minimalbeispiel) die ich unter Verwendung der
\cmidrule
von einander abgrenzen möchte. Leider wird die rechte Spalte innerhalb der linken
\multicolumn
ein wenig von den anderen beiden Spalten abgesetzt und ich weiß nicht warum, bzw. wie man es umgehen kann.

Ich habe jetzt mal den dreiteiligen Verlauf meiner Tabellenentstehung gepostet. Neben der Spaltenbreite habe ich zusätzlich das Gefühl, dass das Wort "data point" vertikal nicht vollständig zentriert ist, oder irre ich da? Habe auch schon versucht über die "fixup" Option des multirow Paketes zu spielen, kann dort jedoch keinen negativen Einzug (Wort sollte nach unten rücken) bewirken.

Vielleicht habt ihr ja Ideen, wie ich den Tabellengestaltungsprozess hier vereinfachen kann, bzw. ob ich bereits in der ersten Tabelle einen Fehler gemacht habe.

LG
\documentclass{scrbook}

\usepackage[ngerman]{babel}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{multirow}
\usepackage{booktabs}
\usepackage{siunitx}

\begin{document}

\chapter{Mein Kampf mit den Tabellen\ldots}


\begin{table}[htbp]
  \centering
  \captionabove{Erster Schritt ohne ``leere Spalten'', jedoch geht so die \emph{cmidrule} über alle Spalten und es gibt eine größere Spaltenbreite bei x\textsubscript{3} im Vergleich zu den beiden Vorherigen\ldots}
    \begin{tabular}{crrrccc}
    \toprule
    \multicolumn{1}{c}{\multirow{2}[0]{*}{\textbf{data point}}} & \multicolumn{3}{c}{\textbf{coded variables}} & \multicolumn{3}{c}{\textbf{natural variables}} \\ 
    \cmidrule{2-4}\cmidrule{5-7}
    \multicolumn{1}{c}{} & $x_{1}$ & $x_{2}$ & $x_{3}$ & $\xi_{1}$ & $\xi_{2}$ & $\xi_{3}$ \\
        \midrule
    \multicolumn{1}{l}{1} & \num{-1} & \num{-1} & \num{-1} & \num{2.00} & \num{0.00} & \num{0.00} \\
    \multicolumn{1}{l}{2} & \num{1} & \num{-1} & \num{-1} & \num{2.00} & \num{0.00} & \num{0.00} \\
    \multicolumn{1}{l}{3} & \num{-1} & \num{1} & \num{-1} & \num{0.00} & \num{5.00} & \num{0.00} \\
    \multicolumn{1}{l}{4} & \num{1} & \num{1} & \num{-1} & \num{2.00} & \num{5.00} & \num{0.00} \\
    \multicolumn{1}{l}{5} & \num{-1} & \num{-1} & \num{1} & \num{0.00} & \num{0.00} & $3.\overline{33}$ \\
    \multicolumn{1}{l}{6} & \num{1} & \num{-1} & \num{1} & \num{2.00} & \num{0.00} & $3.\overline{33}$ \\
    \multicolumn{1}{l}{7} & \num{-1} & \num{1} & \num{1} & \num{0.00} & \num{5.00} & $3.\overline{33}$ \\
    \multicolumn{1}{l}{8} & \num{1} & \num{1} & \num{1} & \num{2.00} & \num{5.00} & $3.\overline{33}$ \\
    \multicolumn{1}{l}{9} & \num{0} & \num{0} & \num{-1} & \num{1.00} & \num{2.50} & \num{0.00} \\
    \multicolumn{1}{l}{10} & \num{0} & \num{0} & \num{1} & \num{1.00} & \num{2.50} & $3.\overline{33}$ \\
    \multicolumn{1}{l}{11} & \num{0} & \num{-1} & \num{0} & \num{1.00} & \num{0.00} & $1.\overline{66}$ \\
    \multicolumn{1}{l}{12} & \num{0} & \num{1} & \num{0} & \num{1.00} & \num{5.00} & $1.\overline{66}$ \\
    \multicolumn{1}{l}{13} & \num{-1} & \num{0} & \num{0} & \num{0.00} & \num{2.50} & $1.\overline{66}$ \\
    \multicolumn{1}{l}{14} & \num{1} & \num{0} & \num{0} & \num{2.00} & \num{2.50} & $1.\overline{66}$ \\
    \multicolumn{1}{l}{15} & \num{0} & \num{0} & \num{0} & \num{1.00} & \num{2.50} & $1.\overline{66}$ \\
    \bottomrule
    \end{tabular}%
\end{table}%

\begin{table}[htbp]
  \centering
  \captionabove{Diesmal mit leeren Spalten dazwischen, damit ich eine optische Trennung der coded von den natural variables bekomme\ldots}
    \begin{tabular}{crrrrcccc}
    \toprule
    \multicolumn{1}{c}{\multirow{2}[0]{*}{\textbf{data point}}} & \multicolumn{1}{c}{} & \multicolumn{3}{c}{\textbf{coded variables}} &       & \multicolumn{3}{c}{\textbf{natural variables}} \\
    \cmidrule{3-5}\cmidrule{7-9}
    \multicolumn{1}{c}{} & \multicolumn{1}{c}{} & \multicolumn{1}{c}{$x_{1}$} & \multicolumn{1}{c}{$x_{2}$} & \multicolumn{1}{c}{$x_{3}$} &       & $\xi_{1}$ & $\xi_{2}$ & $\xi_{3}$ \\
        \midrule
    \multicolumn{1}{l}{1} & \multicolumn{1}{l}{} & \num{-1} & \num{-1} & \num{-1} &       & \num{2.00} & \num{0.00} & \num{0.00} \\
    \multicolumn{1}{l}{2} & \multicolumn{1}{l}{} & \num{1} & \num{-1} & \num{-1} &       & \num{2.00} & \num{0.00} & \num{0.00} \\
    \multicolumn{1}{l}{3} & \multicolumn{1}{l}{} & \num{-1} & \num{1} & \num{-1} &       & \num{0.00} & \num{5.00} & \num{0.00} \\
    \multicolumn{1}{l}{4} & \multicolumn{1}{l}{} & \num{1} & \num{1} & \num{-1} &       & \num{2.00} & \num{5.00} & \num{0.00} \\
    \multicolumn{1}{l}{5} & \multicolumn{1}{l}{} & \num{-1} & \num{-1} & \num{1} &       & \num{0.00} & \num{0.00} & $3.\overline{33}$ \\
    \multicolumn{1}{l}{6} & \multicolumn{1}{l}{} & \num{1} & \num{-1} & \num{1} &       & \num{2.00} & \num{0.00} & $3.\overline{33}$ \\
    \multicolumn{1}{l}{7} & \multicolumn{1}{l}{} & \num{-1} & \num{1} & \num{1} &       & \num{0.00} & \num{5.00} & $3.\overline{33}$ \\
    \multicolumn{1}{l}{8} & \multicolumn{1}{l}{} & \num{1} & \num{1} & \num{1} &       & \num{2.00} & \num{5.00} & $3.\overline{33}$ \\
    \multicolumn{1}{l}{9} & \multicolumn{1}{l}{} & \num{0} & \num{0} & \num{-1} &       & \num{1.00} & \num{2.50} & \num{0.00} \\
    \multicolumn{1}{l}{10} & \multicolumn{1}{l}{} & \num{0} & \num{0} & \num{1} &       & \num{1.00} & \num{2.50} & $3.\overline{33}$ \\
    \multicolumn{1}{l}{11} & \multicolumn{1}{l}{} & \num{0} & \num{-1} & \num{0} &       & \num{1.00} & \num{0.00} & $1.\overline{66}$ \\
    \multicolumn{1}{l}{12} & \multicolumn{1}{l}{} & \num{0} & \num{1} & \num{0} &       & \num{1.00} & \num{5.00} & $1.\overline{66}$ \\
    \multicolumn{1}{l}{13} & \multicolumn{1}{l}{} & \num{-1} & \num{0} & \num{0} &       & \num{0.00} & \num{2.50} & $1.\overline{66}$ \\
    \multicolumn{1}{l}{14} & \multicolumn{1}{l}{} & \num{1} & \num{0} & \num{0} &       & \num{2.00} & \num{2.50} & $1.\overline{66}$ \\
    \multicolumn{1}{l}{15} & \multicolumn{1}{l}{} & \num{0} & \num{0} & \num{0} &       & \num{1.00} & \num{2.50} & $1.\overline{66}$ \\
    \bottomrule
    \end{tabular}%
\end{table}%

\begin{table}[htbp]
  \centering
  \captionabove{So wie ich es mir letztendlich gebastelt habe, damit es zumindest Augenscheinlich passt. Leider sehr aufwändig\ldots}
    \begin{tabular}{cccrcrcrcccccccc}
    \toprule
    \multicolumn{1}{c}{\multirow{2}{*}{\textbf{data point}}} &       &    \multicolumn{7}{c}{\textbf{coded variables}}   &  \multicolumn{7}{c}{\textbf{natural variables}}   \\
    \cmidrule{4-8}\cmidrule{11-15}
     &       &       & $x_{1}$ &       & $x_{2}$ &       & $x_{3}$ &       &       & $\xi_{1}$ &       & $\xi_{2}$ &       & $\xi_{3}$  &  \\         
     \midrule
    1     &       &       & \num{-1} &       & \num{-1} &       & \num{-1} &       &       & \num{2.00} &       & \num{0.00} &       & \num{0.00} &  \\
    2     &       &       & \num{1} &       & \num{-1} &       & \num{-1} &       &       & \num{2.00} &       & \num{0.00} &       & \num{0.00} &  \\
    3     &       &       & \num{-1} &       & \num{1} &       & \num{-1} &       &       & \num{0.00} &       & \num{5.00} &       & \num{0.00} &  \\
    4     &       &       & \num{1} &       & \num{1} &       & \num{-1} &       &       & \num{2.00} &       & \num{5.00} &       & \num{0.00} &  \\
    5     &       &       & \num{-1} &       & \num{-1} &       & \num{1} &       &       & \num{0.00} &       & \num{0.00} &       & $3.\overline{33}$ &  \\
    6     &       &       & \num{1} &       & \num{-1} &       & \num{1} &       &       & \num{2.00} &       & \num{0.00} &       & $3.\overline{33}$ &  \\
    7     &       &       & \num{-1} &       & \num{1} &       & \num{1} &       &       & \num{0.00} &       & \num{5.00} &       & $3.\overline{33}$ &  \\
    8     &       &       & \num{1} &       & \num{1} &       & \num{1} &       &       & \num{2.00} &       & \num{5.00} &       & $3.\overline{33}$ &  \\
    9     &       &       & \num{0} &       & \num{0} &       & \num{-1} &       &       & \num{1.00} &       & \num{2.50} &       & \num{0.00} &  \\
    10    &       &       & \num{0} &       & \num{0} &       & \num{1} &       &       & \num{1.00} &       & \num{2.50} &       & $3.\overline{33}$ &  \\
    11    &       &       & \num{0} &       & \num{-1} &       & \num{0} &       &       & \num{1.00} &       & \num{0.00} &       & $1.\overline{66}$ &  \\
    12    &       &       & \num{0} &       & \num{1} &       & \num{0} &       &       & \num{1.00} &       & \num{5.00} &       & $1.\overline{66}$ &  \\
    13    &       &       & \num{-1} &       & \num{0} &       & \num{0} &       &       & \num{0.00} &       & \num{2.50} &       & $1.\overline{66}$ &  \\
    14    &       &       & \num{1} &       & \num{0} &       & \num{0} &       &       & \num{2.00} &       & \num{2.50} &       & $1.\overline{66}$ &  \\
    15    &       &       & \num{0} &       & \num{0} &       & \num{0} &       &       & \num{1.00} &       & \num{2.50} &       & $1.\overline{66}$ &  \\
    \bottomrule
    \end{tabular}%
\end{table}%

\end{document}
Dateianhänge
minimalbeispiel.pdf
(74.56 KiB) 330-mal heruntergeladen
minimalbeispiel.tex
(8.05 KiB) 365-mal heruntergeladen

Benutzeravatar
bloodworks
Moderator
Moderator
Beiträge: 1425
Registriert: Mo 19. Jan 2009, 10:52
Wohnort: /dev/null

Beitrag von bloodworks »

Geht einfacher
\documentclass{scrbook}

\usepackage[ngerman]{babel}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
%\usepackage{lmodern} % Überleg dir das
\usepackage{multirow}
\usepackage{booktabs}
\usepackage{siunitx}

\begin{document}

\chapter{Mein Kampf mit den Tabellen\ldots} % copmuter modern sans serif... iiiiii


\newcommand{\one}[1]{\multicolumn{1}{c}{$ #1 $}} \newcommand{\onec}[1]{\multicolumn{1}{r}{$ #1 $}} % Ich bin schreibfaul
\begin{table}[htbp]
  \centering
  \captionabove{Man lese die Anleitung\ldots}
    \begin{tabular}{SSSSSSS} % Siehe siunitx Anleitung
    \toprule
    \multicolumn{1}{c}{\multirow{2}{*}{\textbf{data point}}} &        \multicolumn{3}{c}{\textbf{coded variables}}   &  \multicolumn{3}{c}{\textbf{natural variables}}   \\
    \cmidrule(rl){2-4}\cmidrule(rl){5-7}
              & \one{x_{1} } &     \one{  x_{2} } &       \one{   x_{3} } &         \one{ \xi_{1}} &      \one{    \xi_{2}} &   \one{       \xi_{3} }   \\        
     \midrule 
    1      & -1 &        -1 &        -1 &        2.00 &        0.00 &   0.00   \\ 
    2       & 1 &        -1 &        -1 &        2.00 &        0.00 &        0.00   \\
    3     & -1 &        1 &        -1 &               0.00        & 5.00        & 0.00   \\
    4       & 1 &       1 &        -1 &              2.00        & 5.00        & 0.00   \\
    5          & -1 &        -1 &        1 &        0.00        & 0.00        & \onec{3.\overline{33}}   \\ % Ok das ist manuell nicht schön aber hilfreich. Vll kannst du überlegen den Bruch anzugeben. Das wäre sowieso besser
    6        & 1 &        -1 &        1 &       2.00        & 0.00        & \onec{3.\overline{33}}   \\
    7       & -1 &       1 &        1 &               0.00        & 5.00       & \onec{3.\overline{33}}    \\
    8          & 1 &        1 &        1 &               2.00        & 5.00      & \onec{3.\overline{33}}     \\
    9          & 0 &        0 &        -1 &               1.00        & 2.50        & 0.00   \\
    10       & 0 &        0 &        1 &              1.00       & 2.50        & \onec{3.\overline{33}}   \\
    11         & 0 &        -1 &        0 &               1.00        & 0.00        & \onec{1.\overline{66}}   \\
    12          & 0 &        1 &        0 &               1.00        & 5.00        & \onec{1.\overline{66}}  \\
    13          & -1 &        0 &        0 &               0.00        & 2.50        & \onec{1.\overline{66}}   \\
    14         & 1 &        0 &        0 &          2.00        & 2.50        & \onec{1.\overline{66}}   \\
    15       & 0 &        0 &        0 &               1.00        & 2.50        & \onec{1.\overline{66}}  \\
    \bottomrule
    \end{tabular}%
\end{table}%

\end{document} 
[1] Nützliche Webdokumente für Anfänger und Fortgeschrittene
[2]Minimalbeispiel | [3]FAQ
[4]Regelwerk | [5] Knigge
Wenn nicht anderst angegeben ist mein System: texlive 2012, pdflatex, x86-64, Snow Leopard utd.
Angehöriger der Liga zur Verwendung von texdoc
texdoc mathmode koma l2picfaq l2tabu lshort-en
Achtung: Aufforderungen ein Minimalbeispiel oder mehr Erklärungen zu einer Frage zu liefern sind keine persönlichen Angriffe. Sie dienen viel mehr dazu die Kommunikation zwischen Fragendem und potentiellen Helfern zu erleichtern und zu präzisieren.


Xenara
Forum-Meister
Forum-Meister
Beiträge: 682
Registriert: Mi 25. Nov 2009, 09:41

Beitrag von Xenara »

Du kannst die Möglichkeiten von siunitx nutzen, damit geht das sehr elegant. Etwas problematisch war die Verwendung von \overline, weil das nicht als Bestandteil der Zahl erkannt wird, sondern als Einheit und damit nicht mehr am Punkt ausgerichtet wird. Aber mit den eingefügten Optionen sollte das jetzt passen.
\documentclass{scrbook} 
\usepackage[ngerman]{babel} 
\usepackage[latin1]{inputenc} 
\usepackage[T1]{fontenc} 
\usepackage{multirow} 
\usepackage{booktabs} 
\usepackage{siunitx} 

\begin{document} 

\section{Vorschlag mit den Möglichkeiten von siunitx}

\begin{table}[htbp] 
  \centering 
  \captionabove{So ginge es auch:} 
    \begin{tabular}{*{7}{S[add-decimal-zero=false,table-align-text-post=false]}}
    % Hier gabs Probleme wegen dem \overline, da das logischerweise nicht als zur Zahl gehörig erkennt wird. 
    % add-decimal-zero=false, damit an einen Punkt keine 0 angehängt wird: "3." wird zu "3." statt "3.0"
    % Trotzdem ist dann zur "Einheit", dem $\overline...$ noch ein Abstand, daher
    % table-align-text-post=false, damit der "Text" direkt an die Zahl angehängt wird und nicht mit Abstand (mit Abstand werden die Einheiten eigentlich vertikal ausgerichtet)
    \toprule 
\multicolumn{1}{c}{\multirow{2}[0]{*}{\textbf{data point}}} &
\multicolumn{3}{c}{\textbf{coded variables}} 
& \multicolumn{3}{c}{\textbf{natural variables}} \\ 
\cmidrule{2-4}\cmidrule{5-7} 
& $x_{1}$ & $x_{2}$ & $x_{3}$ & $\xi_{1}$ & $\xi_{2}$ & $\xi_{3}$ \\ 
\midrule 
1 & 2&3&4&5&6&7\\
1 & -1 & -1 & -1 & 2.00 & 0.00 & 0.00 \\ 
2 & 1 & -1 & -1 & 2.00 & 0.00 & 0.00 \\ 
3 & -1 & 1 & -1 & 0.00 & 5.00 & 0.00 \\ 
4 & 1 & 1 & -1 & 2.00 & 5.00 & 0.00 \\ 
5 & -1 & -1 & 1 & 0.00 & 0.00 & 3.$\overline{33}$ \\ 
6 & 1 & -1 & 1 & 2.00 & 0.00 & 3.$\overline{33}$ \\ 
7 & -1 & 1 & 1 & 0.00 & 5.00 & 3.$\overline{33}$ \\ 
8 & 1 & 1 & 1 & 2.00 & 5.00 & 3.$\overline{33}$ \\ 
9 & 0 & 0 & -1 & 1.00 & 2.50 & 0.00 \\ 
10 & 0 & 0 & 1 & 1.00 & 2.50 & 3.$\overline{33}$ \\ 
11 & 0 & -1 & 0 & 1.00 & 0.00 & 1.$\overline{66}$ \\ 
12 & 0 & 1 & 0 & 1.00 & 5.00 & 1.$\overline{66}$ \\ 
13 & -1 & 0 & 0 & 0.00 & 2.50 & 1.$\overline{66}$ \\ 
14 & 1 & 0 & 0 & 2.00 & 2.50 & 1.$\overline{66}$ \\ 
15 & 0 & 0 & 0 & 1.00 & 2.50 & 1.$\overline{66}$ \\ 
    \bottomrule 
    \end{tabular}% 
\end{table}% 

\end{document} 
Edit: bloodworks war schneller, dafür kann man bei meinem Code das \overline ohne Extrabefehl eingeben und die Zahl wird dann trotzdem noch am Punkt ausgerichtet ;)

NTNU
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 54
Registriert: So 27. Jun 2010, 15:49

Beitrag von NTNU »

Danke schön ihr beiden.

@bloodworks:

Ich verstehe noch nicht, welchen Unterschied es macht wenn die Zeile (x1, x2,...) so wie du ebenfalls als multocolumn gesetzt werden. Wieso verschwindet dadurch die unregelmäßige Spaltenbreite?

Xenara
Forum-Meister
Forum-Meister
Beiträge: 682
Registriert: Mi 25. Nov 2009, 09:41

Beitrag von Xenara »

Die Spaltenbreite scheint nicht am multicolumn der Titelzeile zu liegen, sondern in der Art, wie es mit \underline gehandhabt wird, das war mir nicht aufgefallen.

Im folgenden Code sind Bloodworks und mein Vorschlag drin, ich hab meinen noch um die vorgegebene Spaltenbreite mit table-format ergänzt:
\documentclass{scrreprt} 
\usepackage[ngerman]{babel} 
\usepackage[latin1]{inputenc} 
\usepackage[T1]{fontenc} 
\usepackage{multirow} 
\usepackage{booktabs} 
\usepackage{siunitx} 

\begin{document} 

\section{Bloodworks}
\newcommand{\one}[1]{\multicolumn{1}{c}{$ #1 $}} \newcommand{\onec}[1]{\multicolumn{1}{r}{$ #1 $}} % Ich bin schreibfaul 
\begin{table}[htbp] 
  \centering 
  \captionabove{Man lese die Anleitung\ldots} 
    \begin{tabular}{SSSSSSS} % Siehe siunitx Anleitung 
    \toprule 
    \multicolumn{1}{c}{\multirow{2}{*}{\textbf{data point}}} &        \multicolumn{3}{c}{\textbf{coded variables}}   &  \multicolumn{3}{c}{\textbf{natural variables}}   \\ 
    \cmidrule(rl){2-4}\cmidrule(rl){5-7} 
              & \one{x_{1} } &     \one{  x_{2} } &       \one{   x_{3} } &         \one{ \xi_{1}} &      \one{    \xi_{2}} &   \one{       \xi_{3} }   \\         
     \midrule 
    1      & -1 &        -1 &        -1 &        2.00 &        0.00 &   0.00   \\ 
    2       & 1 &        -1 &        -1 &        2.00 &        0.00 &        0.00   \\ 
    3     & -1 &        1 &        -1 &               0.00        & 5.00        & 0.00   \\ 
    4       & 1 &       1 &        -1 &              2.00        & 5.00        & 0.00   \\ 
    5          & -1 &        -1 &        1 &        0.00        & 0.00        & \onec{3.\overline{33}}   \\ % Ok das ist manuell nicht schön aber hilfreich. Vll kannst du überlegen den Bruch anzugeben. Das wäre sowieso besser 
    6        & 1 &        -1 &        1 &       2.00        & 0.00        & \onec{3.\overline{33}}   \\ 
    7       & -1 &       1 &        1 &               0.00        & 5.00       & \onec{3.\overline{33}}    \\ 
    8          & 1 &        1 &        1 &               2.00        & 5.00      & \onec{3.\overline{33}}     \\ 
    9          & 0 &        0 &        -1 &               1.00        & 2.50        & 0.00   \\ 
    10       & 0 &        0 &        1 &              1.00       & 2.50        & \onec{3.\overline{33}}   \\ 
    11         & 0 &        -1 &        0 &               1.00        & 0.00        & \onec{1.\overline{66}}   \\ 
    12          & 0 &        1 &        0 &               1.00        & 5.00        & \onec{1.\overline{66}}  \\ 
    13          & -1 &        0 &        0 &               0.00        & 2.50        & \onec{1.\overline{66}}   \\ 
    14         & 1 &        0 &        0 &          2.00        & 2.50        & \onec{1.\overline{66}}   \\ 
    15       & 0 &        0 &        0 &               1.00        & 2.50        & \onec{1.\overline{66}}  \\ 
    \bottomrule 
    \end{tabular}% 
\end{table}% 

\clearpage
\section{Xenara}
\begin{table}[htbp] 
  \centering 
  \captionabove{Xenara:} 
    \begin{tabular}{*{7}{S[add-decimal-zero=false,table-align-text-post=false,table-format = 2.2]}}
    % Hier gabs Probleme wegen dem \overline, da das logischerweise nicht als zur Zahl gehörig erkennt wird. 
    % add-decimal-zero=false, damit an einen Punkt keine 0 angehängt wird: "3." wird zu "3." statt "3.0" 
    % Trotzdem ist dann zur "Einheit", dem $\overline...$ noch ein Abstand, daher 
    % table-align-text-post=false, damit der "Text" direkt an die Zahl angehängt wird und nicht mit Abstand (mit Abstand werden die Einheiten eigentlich vertikal ausgerichtet) 
    % table-format für die Spaltenbreite
    \toprule 
\multicolumn{1}{c}{\multirow{2}[0]{*}{\textbf{data point}}} & 
\multicolumn{3}{c}{\textbf{coded variables}} 
& \multicolumn{3}{c}{\textbf{natural variables}} \\ 
\cmidrule(lr){2-4}\cmidrule(lr){5-7} 
& $x_{1}$ & $x_{2}$ & $x_{3}$ & $\xi_{1}$ & $\xi_{2}$ & $\xi_{3}$ \\ 
\midrule 
1 & -1 & -1 & -1 & 2.00 & 0.00 & 0.00 \\ 
2 & 1 & -1 & -1 & 2.00 & 0.00 & 0.00 \\ 
3 & -1 & 1 & -1 & 0.00 & 5.00 & 0.00 \\ 
4 & 1 & 1 & -1 & 2.00 & 5.00 & 0.00 \\ 
5 & -1 & -1 & 1 & 0.00 & 0.00 & 3.$\overline{33}$ \\ 
6 & 1 & -1 & 1 & 2.00 & 0.00 & 3.$\overline{33}$ \\ 
7 & -1 & 1 & 1 & 0.00 & 5.00 & 3.$\overline{33}$ \\ 
8 & 1 & 1 & 1 & 2.00 & 5.00 & 3.$\overline{33}$ \\ 
9 & 0 & 0 & -1 & 1.00 & 2.50 & 0.00 \\ 
10 & 0 & 0 & 1 & 1.00 & 2.50 & 3.$\overline{33}$ \\ 
11 & 0 & -1 & 0 & 1.00 & 0.00 & 1.$\overline{66}$ \\ 
12 & 0 & 1 & 0 & 1.00 & 5.00 & 1.$\overline{66}$ \\ 
13 & -1 & 0 & 0 & 0.00 & 2.50 & 1.$\overline{66}$ \\ 
14 & 1 & 0 & 0 & 2.00 & 2.50 & 1.$\overline{66}$ \\ 
15 & 0 & 0 & 0 & 1.00 & 2.50 & 1.$\overline{66}$ \\ 
    \bottomrule 
    \end{tabular}% 
\end{table}% 

\end{document} 
 

NTNU
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 54
Registriert: So 27. Jun 2010, 15:49

Beitrag von NTNU »

Also mit der S-Spalte von siunitx funktionierts prima, danke schön.

Kann ich die Spaltenbreite denn irgendwie noch vorgeben, wenn ich die S-Spalte verwende? In der Anleitung hab ich dazu nichts gefunden. Irgendwie so wie in tabularx wäre schön :roll:.

Ich kann die S spalte ja leider nicht so einstellen wie eine p-Spalte?!

Xenara
Forum-Meister
Forum-Meister
Beiträge: 682
Registriert: Mi 25. Nov 2009, 09:41

Beitrag von Xenara »

Die Spaltenbreite ist in der Doku ziemlich versteckt, in den Kommentaren zum Code meines letzten Minimalbeispiels ist ein Hinweis dazu drin. Direkt einstellen im Stil von "2cm" lässt es sich nicht, aber über den Parameter "table-format" kann man (wenn ichs beim Überfliegen richtig verstanden habe) angeben, für wieviele Ziffern rechts und links des Kommazeichens Platz freigehalten werden soll. Zur Zeit ist dort "2.2" angegeben, du kannst das ja mal auf "4.4" oder so ändern.

Übrigens, aus eigener Erfahrung: Eine solche Tabelle sieht bescheiden aus, wenn man sie über die gesamte Seitenbreite streckt, es wird viel zu sehr auseinander gerissen.
\documentclass{scrreprt}
\usepackage[ngerman]{babel}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{multirow}
\usepackage{booktabs}
\usepackage{siunitx}

\begin{document}

\section{Xenara}
\begin{table}[htbp]
  \centering
  \captionabove{Xenara:}
    \begin{tabular}{*{7}{S[add-decimal-zero=false,table-align-text-post=false,table-format = 2.2]}}
    % Hier gabs Probleme wegen dem \overline, da das logischerweise nicht als zur Zahl gehörig erkennt wird.
    % add-decimal-zero=false, damit an einen Punkt keine 0 angehängt wird: "3." wird zu "3." statt "3.0"
    % Trotzdem ist dann zur "Einheit", dem $\overline...$ noch ein Abstand, daher
    % table-align-text-post=false, damit der "Text" direkt an die Zahl angehängt wird und nicht mit Abstand (mit Abstand werden die Einheiten eigentlich vertikal ausgerichtet)
    % table-format für die Spaltenbreite
    \toprule
\multicolumn{1}{c}{\multirow{2}[0]{*}{\textbf{data point}}} &
\multicolumn{3}{c}{\textbf{coded variables}}
& \multicolumn{3}{c}{\textbf{natural variables}} \\
\cmidrule(lr){2-4}\cmidrule(lr){5-7}
& $x_{1}$ & $x_{2}$ & $x_{3}$ & $\xi_{1}$ & $\xi_{2}$ & $\xi_{3}$ \\
\midrule
1 & -1 & -1 & -1 & 2.00 & 0.00 & 0.00 \\
2 & 1 & -1 & -1 & 2.00 & 0.00 & 0.00 \\
3 & -1 & 1 & -1 & 0.00 & 5.00 & 0.00 \\
4 & 1 & 1 & -1 & 2.00 & 5.00 & 0.00 \\
5 & -1 & -1 & 1 & 0.00 & 0.00 & 3.$\overline{33}$ \\
6 & 1 & -1 & 1 & 2.00 & 0.00 & 3.$\overline{33}$ \\
7 & -1 & 1 & 1 & 0.00 & 5.00 & 3.$\overline{33}$ \\
8 & 1 & 1 & 1 & 2.00 & 5.00 & 3.$\overline{33}$ \\
9 & 0 & 0 & -1 & 1.00 & 2.50 & 0.00 \\
10 & 0 & 0 & 1 & 1.00 & 2.50 & 3.$\overline{33}$ \\
11 & 0 & -1 & 0 & 1.00 & 0.00 & 1.$\overline{66}$ \\
12 & 0 & 1 & 0 & 1.00 & 5.00 & 1.$\overline{66}$ \\
13 & -1 & 0 & 0 & 0.00 & 2.50 & 1.$\overline{66}$ \\
14 & 1 & 0 & 0 & 2.00 & 2.50 & 1.$\overline{66}$ \\
15 & 0 & 0 & 0 & 1.00 & 2.50 & 1.$\overline{66}$ \\
    \bottomrule
    \end{tabular}%
\end{table}%

\end{document}
 

NTNU
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 54
Registriert: So 27. Jun 2010, 15:49

Beitrag von NTNU »

Danke Xenara,

damit ist zwar keine exakte aber dennoch eine ungefähre Einstellung möglich.
Übrigens, aus eigener Erfahrung: Eine solche Tabelle sieht bescheiden aus, wenn man sie über die gesamte Seitenbreite streckt, es wird viel zu sehr auseinander gerissen.
Ich weiß, war auch eher allg. Interesse, da dass zu 100 % später noch gekommen wäre :)

Antworten