PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Tabelle mit siunitx



DarkSeven
14-04-2016, 10:11
Hallo zusammen,

ich erstelle zurzeit meine Abschlussarbeit mit Latex und nutzte dafür Texworks. Zum erstellen von Tabellen und dem Ausrichten der Zahlen nach der Kommastelle, nutze ich siunitx. Das funktioniert soweit auch super für einfache Tabellen. Nun habe ich allerdings Tabellen die neben Zahlenwerten auch Text enthalten.

Unglücklicherweise enthält eine Spalte einen recht langen Text, "Line Contact, Full Area Metal" den ich nicht kürzen kann. Die Folge meine Tabelle wird unnötig in die breite gezogen. Normalerweise würde ich nun innerhalbe der Zelle eine neue Tabelle anlegen mit
& \begin{tabular}[c]{@{}l@{}}Line Contact, \\ Full Area Metal\end{tabular} & und somit einen umbrauch erzeugen, leider funktioniert das mit siunitx so nicht.

Ich hoffe ich konnte mein Problem verständlich darlegen. Ein Laufähiges Bsp. habe ich angefügt


\documentclass[a4paper, 12pt, headings=small] {scrreprt}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
% %Tabellenumgebung % % % %
\usepackage{longtable} % % lange Tabellen über mehrere Seiten
\usepackage{ltxtable} % % lange Tabellen mit fester Gesamtbreite
\usepackage{filecontents}
\usepackage{dcolumn}
\usepackage{booktabs}
\usepackage[locale=DE]{siunitx}
\usepackage{tabularx}
\usepackage{array}
\usepackage[table,xcdraw]{xcolor}
\usepackage{graphicx}


\newcommand{\sh}[1]{\multicolumn{3}{c}{#1}} % Ausrichtung der Überschiften/Text r=rechts l=links c=center
\newcommand{\sg}[1]{\multicolumn{4}{c}{#1}} % Ausrichtung der Überschiften/Text r=rechts l=links c=center
\newcommand{\sk}[1]{\multicolumn{1}{c}{#1}} % Ausrichtung der Überschiften/Text r=rechts l=links c=center

\begin{document}

\begin{table}
\centering
\caption {Verwendete Zellparameter des Analytischen Modells. Am Institut gemessene Parameter sind mit einem Asterisk gekennzeichnet. Literatur Werte sind entsprechend Nummeriert. }
\label{my-label}
\resizebox{\textwidth}{!}{%
\begin{tabular}{lSllSlc}%
% l %
% S [table-format=1.22**, table-number-alignment=center, table-unit-alignment=left]
% S [table-format=1.22**, table-number-alignment=center, table-unit-alignment=left]}
\toprule
\sh{\textbf{5 Busbar}} & \sg{\textbf{SmartWire}} \\

Name & \sk{Parameter}& Einheit & Name &\sk{Parameter} & Einheit & Quelle \\

\midrule


Wafer Typ & \sk{square}& - & Wafer Typ & \sk{square} & - &*\\
Wafer length & 15,6 & cm & Wafer length & 15,6 & cm &*\\
\\
\sh{\textbf{Front Side}} & \sg{\textbf{Front Side}} \\




\sh{\textbf{Rear Side}} & \sg{\textbf{Rear Side}} \\

\rowcolor[HTML]{ECF4FF}

Pattern &\sk{Line Contact, Full Area Metal}& - & Patern & \sk{Line Contact, Full Area Metal} &- & * \\


\bottomrule
\end{tabular}
}
\end{table}

\end{document}

klops
14-04-2016, 22:59
Unglücklicherweise enthält eine Spalte einen recht langen Text, "Line Contact, Full Area Metal" den ich nicht kürzen kann. Die Folge meine Tabelle wird unnötig in die breite gezogen. Normalerweise würde ich nun innerhalbe der Zelle eine neue Tabelle anlegen mit
& \begin{tabular}[c]{@{}l@{}}Line Contact, \\ Full Area Metal\end{tabular} & und somit einen umbrauch erzeugen, leider funktioniert das mit siunitx so nicht.

Doch:
\documentclass[a4paper, 12pt, headings=small] {scrreprt}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
% %Tabellenumgebung % % % %
\usepackage{longtable} % % lange Tabellen über mehrere Seiten
\usepackage{ltxtable} % % lange Tabellen mit fester Gesamtbreite
\usepackage{filecontents}
\usepackage{dcolumn}
\usepackage{booktabs}
\usepackage[locale=DE]{siunitx}
\usepackage{tabularx}
\usepackage{array}
\usepackage[table,xcdraw]{xcolor}
\usepackage{graphicx}


\newcommand{\sh}[1]{\multicolumn{3}{c}{#1}} % Ausrichtung der Überschiften/Text r=rechts l=links c=center
\newcommand{\sg}[1]{\multicolumn{4}{c}{#1}} % Ausrichtung der Überschiften/Text r=rechts l=links c=center
\newcommand{\sk}[1]{\multicolumn{1}{c}{#1}} % Ausrichtung der Überschiften/Text r=rechts l=links c=center

\begin{document}

\begin{table}
\centering
\caption {Verwendete Zellparameter des Analytischen Modells. Am Institut gemessene Parameter sind mit einem Asterisk gekennzeichnet. Literatur Werte sind entsprechend Nummeriert. }
\label{my-label}
\resizebox{\textwidth}{!}{%
\begin{tabular}{lSllSlc}%
% l %
% S [table-format=1.22**, table-number-alignment=center, table-unit-alignment=left]
% S [table-format=1.22**, table-number-alignment=center, table-unit-alignment=left]}
\toprule
\sh{\textbf{5 Busbar}} & \sg{\textbf{SmartWire}} \\

Name & \sk{Parameter}& Einheit & Name &\sk{Parameter} & Einheit & Quelle \\

\midrule


Wafer Typ & \sk{square}& - & Wafer Typ & \sk{square} & - &*\\
Wafer length & 15,6 & cm & Wafer length & 15,6 & cm &*\\
\\
\sh{\textbf{Front Side}} & \sg{\textbf{Front Side}} \\




\sh{\textbf{Rear Side}} & \sg{\textbf{Rear Side}} \\

\rowcolor[HTML]{ECF4FF}

Pattern &
\multicolumn{1}{c}{\begin{tabular}[t]{@{}c@{}}Line Contact\\Full Area Metal\end{tabular}} & - & Patern & \multicolumn{1}{c}{\begin{tabular}[t]{@{}c@{}}Line Contact\\Full Area Metal\end{tabular}} &- & * \\


\bottomrule
\end{tabular}
}
\end{table}

\end{document}

rais
14-04-2016, 22:59
warum nimmste keine p- oder m-Spalte im \multicolumn-Konstrukt für \sk?

VG

DarkSeven
20-04-2016, 11:07
Sorry, für die späte Antwort, ich habe das ganze etwas aus den Augen verloren nachdem ich mich mit einem anderen Kapitel beschäftigt habe.

@ klops: Danke für die Antwort es funktioniert :)