Anbei meine großartige Test-Tabelle, die aus dem Kontext eines Dokumentes gerissen wurde. Wie ihr seht, ist es mir nicht gelungen, ein funktionierendes Minimalbeispiel zu erstellen. Zu meiner Verwunderung ist dieses Code trotzdem auswertbar.

Ich dachte bei S[table-format=1.3] steht das 1.3 für cm? Ich glaube ich liege hiermit total falsch oder?

Jetzt zu meiner Frage: "Wie kann ich die Tabelle auf die ganze Seite-Breite vergrößern/anpassen bzw. wie könnte ich die einzelnen Spalten mit einer breiten-Angabe versehen? Ich möchte weiterhin den Spaltentyp S verwenden. Danke. (Ich hab sicherheitshalber alle nicht verwendeten usepackages drinnen gelassen)

Open in Online-Editor
\documentclass[11pt,a4paper,titlepage,bibtotoc]{scrreprt} 
\usepackage{longtable}
\usepackage{tikz,booktabs}
\usepackage{mwe}
\usepackage{pdflscape}
\usepackage{graphicx}
\usepackage[english,ngerman]{babel}
\usepackage[scaled]{uarial}
\renewcommand*\familydefault{\sfdefault} 
\usepackage[T1]{fontenc}
\usepackage{mdwlist}
\usepackage{listings}
\usepackage{textcomp}
\usepackage{lastpage}
\usepackage[automark,plainheadsepline,headsepline,footsepline,plainfootsepline]{scrpage2}
\usepackage{booktabs,caption} 
\usepackage{caption}
\usepackage{tabularx}
\usepackage{varwidth}       
\usepackage[copy-decimal-marker]{siunitx}
\def\tabularxcolumn#1{m{#1}}    
\newcolumntype{L}[1]{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{#1}}
\newcommand{\ltab}{\raggedright\arraybackslash} 
\newcommand{\ctab}{\centering\arraybackslash} 
\newcommand{\rtab}{\raggedleft\arraybackslash} 
\renewcommand*{\footfont}{\normalfont} 
\renewcommand*{\headfont}{\normalfont} 
\pagestyle{scrheadings}
\usepackage[latin1]{inputenc}
\usepackage[left=2.00cm, right=2.00cm, top=2.00cm, bottom=2.00cm,includeheadfoot]{geometry}
\renewcommand*\familydefault{\sfdefault}
\usepackage[automark,plainheadsepline,headsepline,footsepline,plainfootsepline]{scrpage2}
\setlength\LTleft{0pt}
\setlength\LTright{0pt}
\usepackage{hyperref}   
\newcommand\tabrotate[1]{\rotatebox{90}{#1\hspace{\tabcolsep}}} 
\ihead[{\includegraphics[height=14pt]{./Inputs/Daimler_Logo.png}}]{{\includegraphics[height=14pt]{./Inputs/Daimler_Logo.png}}}
\ohead[\Dep]{\Dep}
\ifoot[\jobname.pdf]{\jobname.pdf}
\cfoot[]{}
\ofoot[\pagemark~ / \hspace*{0.1mm} \pageref{LastPage}]{\pagemark~ / \hspace*{0.1mm} \pageref{LastPage}}
\begin{document}
\begin{minipage}{\textwidth}
\renewcommand{\arraystretch}{1}
\fontsize{8pt}{10pt}\selectfont
\noindent
\begin{tabular}{L{5cm} L{1.7 cm}|S[table-format=1.3]|S[table-format=1.3]|S[table-format=1.3]|S[table-format=1.3]|S[table-format=1.3]|S[table-format=1.3]} 
\textbf{Ueberschrift-Marke}\\
\hline
Auto& $\tau$ & 3 & 3  & 3  & 5 & 0.00  & 0.00\\
\hline
AUDI & $\tau$ & 3 & 3 & 3  & 4 & 0.00  & 0.00 \\
\hline
DACIA & $\tau$  & \multicolumn{3}{c|}{$Marke$} & \multicolumn{3}{c}{$Marke$} \\
\hline
PORSCHE &  $\tau$& 3 & 3  & 3  & & 0.00  & 0.00 \\
\hline
\end{tabular}
\end{minipage}
\end{document}

gefragt 23 Feb '16, 11:56

Tommy's gravatar image

Tommy
13347
Akzeptiert-Rate: 0%

bearbeitet 23 Feb '16, 11:57

1

Es sei ein weiteres Mal darauf hingewiesen, dass man für jede einzelne Frage ein einzelnes, darauf angepasstes Minimalbeispiel nach Anleitung erstellen sollte, indem eben nicht die ganzen unbenutzten Pakete noch drin sind! Dein Beispiel ist nicht einmal lauffähig, weil externe Dateien verwendet werden, die wir nicht haben.

(23 Feb '16, 12:47) saputello

table-format hat durchaus Auswirkungen auf die Breite der Tabellenspalte, allerdings anders als Du glaubst. Wie in der Anleitung zum Paket siunitx zu lesen ist, handelt es sich dabei um eine abkürzende Schreibweise für die Optionen table-figures-integer, table-figures-decimal und table-figures-exponent. Es werden also die Vor-, Nachkomma- und Exponentenstellen angegeben, für die eine Zahl formatiert werden soll. Damit beeinflussen diese Angaben nicht nur die Breite der Tabellenspalte, sondern auch die Position des Dezimalpunktes oder Dezimalkommas innerhalb der Spalte.

Folgendes Beispiel verdeutlicht die Auswirkungen:

Open in Online-Editor
\documentclass[a3paper]{article}
\usepackage{siunitx}
\newcounter{integer}
\newcounter{decimal}
\begin{document}
\makeatletter
\setcounter{integer}{1}
\@whilenum \value{integer}<10 \do {%
  \setcounter{decimal}{1}
  \@whilenum \value{decimal}<10 \do {%
    \texttt{table-format=\theinteger.\thedecimal}: 
    \fbox{\begin{tabular}{*3{S[table-format=\theinteger.\thedecimal]}}
      1,0 & 2,0 & 3,0 \\
    \end{tabular}}\par
    \stepcounter{decimal}%
  }%
  \stepcounter{integer}
}
\end{document}

Vergleicht man hier beispielsweise den Eintrag für table-format=1.1 mit dem für table-format=9.9, so fällt auf, dass der letzte natürlich viel breiter ist:

1.1 vs. 9.9

Beim Vergleich von beispielsweise table-format=1.4 mit table-format=4.1 sind die Spalten ­­­– wie zu erwarten – gleich breit, die Position des Dezimalpunktes ist aber unterschiedlich:

1.4 vs. 4.1

Das Paket siunitx bietet übrigens viele weitere Optionen, um die Formatierung der S-Spalteninhalte zu verändern. Daher wird dringend empfohlen, dessen Anleitung näher zu studieren.

Natürlich kann man table-format (und weitere Optionen) nutzen, um die Breite einer Tabelle zu beeinflussen. Das ist jedoch eher ein Nebeneffekt der Formatierungsmöglichkeiten und nicht ihr eigentlicher Zweck. Will man bei einer Tabelle mit S-Spalten eine bestimmte Breite erreichen und enthält die Tabelle keine Spalten, die besser geeignet sind, die zusätzliche Breite zu erhalten, so bietet sich die Verwendung einer tabular*-Umgebung an, wie sie in Clemens Antwort auf eine frühere, allgemeinere Frage erklärt wird. Im Extremfall könnte dies beispielsweise mit:

Open in Online-Editor
\documentclass[a4paper]{article}
\usepackage{siunitx}
\usepackage{showframe}
\begin{document}
\noindent\begin{tabular*}{\textwidth}{S@{\extracolsep{\fill}}*2S}
  1,0 & 2,0 & 3,0 \\
  1,0 & 2,0 & 3,0 \\
  1,0 & 2,0 & 3,0 \\
\end{tabular*}
\end{document}

Das folgende, sehr unschöne Ergebnis liefern:

alt text

Hat man andere Spalten, beispielsweise Textspalten, die sehr gut die Restbreite erhalten könnten, so wäre eher eine tabularx passend, bei der man eben jene anderen Spalten als X-Spalten ausführt:

Open in Online-Editor
\documentclass[a4paper]{article}
\usepackage{siunitx}
\usepackage{tabularx}
\usepackage{showframe}
\usepackage{mwe}
\begin{document}
\noindent\begin{tabularx}{\textwidth}{*3{S[table-format=1.1]}X}
  1,0 & 2,0 & 3,0 & \blindtext \\
  1,0 & 2,0 & 3,0 & \blindtext \\
  1,0 & 2,0 & 3,0 & \blindtext \\
\end{tabularx}
\end{document}

alt text

Es sei an dieser Stelle noch einmal darauf hingewiesen, dass tabularx nur mit X-Spalten sinnvoll ist. Außerdem sollte man vertikale Linien in Tabellen meiden und horizontale auf ein Mindestmaß reduzieren. Die Linien in obigen Beispielen stammen allesamt nicht von den Tabellen selbst, sondern dienen der Illustration der Tabellenbreite bzw. der Satzspiegelbreite.

Permanenter link

beantwortet 23 Feb '16, 13:10

saputello's gravatar image

saputello
11.1k174365
Akzeptiert-Rate: 51%

bearbeitet 23 Feb '16, 13:20

Deine Antwort
Vorschau umschalten

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

Per RSS:

Antworten

Antworten und Kommentare

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs fügen Sie einfach zwei Leerzeichen an die Stelle an der die neue Linie sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Frage-Themen:

×256

gestellte Frage: 23 Feb '16, 11:56

Frage wurde gesehen: 12,201 Mal

zuletzt geändert: 23 Feb '16, 13:20