Tabellenspalten an unterschiedlichen Kriterien ausrichten

Tabellen und Grafiken erstellen und anordnen


gzzhuj
Forum-Newbie
Forum-Newbie
Beiträge: 1
Registriert: Mi 12. Feb 2020, 11:02

Tabellenspalten an unterschiedlichen Kriterien ausrichten

Beitrag von gzzhuj »

Hallo,

ich möchte, dass meine Tabelle die Ausrichtung der Zahlen anhand unterschiedlicher Kriterien vornimmt. Für die Spalten 3 und 4 ist mir das Ausrichten am Komma gelungen. In der ersten Spalte sind jedoch Bereiche angegeben. Hier hätte ich gern, dass die Spalten anhand der ... ausgerichtet werden. Leider habe ich im siunitx-Manual dafür keinen passenden Separator gefunden.
Außerdem wäre es schön, wenn die zweite Zeile schmaler würde...
Ich habe hier noch nie etwas gepostet, ich hoffe mein Beispiel funktioniert.

Code: Alles auswählen

\documentclass[a4paper,12pt,titlepage]{scrbook}
\usepackage[automark]{scrpage2}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{booktabs}
\usepackage[font={small,sf},labelfont=bf,labelsep=space,justification=raggedright]{caption}
\usepackage{siunitx}
\begin{document}

  \begin{table}[!htb]
	\caption[Tabellenname im IV]{Tabellenname im Text}
	\label{tab:zigzag}
	\centering
	\begin{tabular}{
			l|
			l
			S[table-format=3.1,table-comparator=true,table-number-alignment = left, table-space-text-post={***}]
			S[table-format=2.5,table-comparator=true,table-number-alignment = left, table-space-text-post={***}]
		}\hline
 {\textbf{Material}} & \textbf{gültiger Temperaturbereich in} \boldmath$^{\circ} C$&\boldmath$\lambda_0$ \textbf{in W/(mK)}&\textbf{B in }\boldmath$^{\circ} C$\\ \hline \hline
		\textbf{1} & -73...927 & 404,5 & -0,0723 \\
		\textbf{2} & 0...600 & -241,8 & -0,04678 \\ \hline
	\end{tabular}
\end{table}
\end{document}

Gast

Off-Topic: Gratulation und Hinweis auf veraltetes Paket

Beitrag von Gast »

gzzhuj hat geschrieben:Ich habe hier noch nie etwas gepostet, ich hoffe mein Beispiel funktioniert.
Ja, das ist sehr gut, für das erste Mal ist es sogar super!

Es sei allerdings darauf hingewiesen, dass scrpage2 schon seit einigen Jahren veraltet ist. Da der KOMA-Script-Autor angekündigt hat, veraltete Dinge nach und nach aus KOMA-Script zu entfernen, solltest du das dringend durch den offiziellen Nachfolger scrlayer-scrpage ersetzen.

Übrigens braucht man \usepackage[utf8]{inputenc} mit halbwegs aktuellen LaTeX-Installation auch nicht mehr, das es seit LaTeX 2018-04-01 Voreinstellung ist.

Außerdem sind a4paper und titlepage bei scrbook die Voreinstellung und können damit ebenfalls entfallen.

Sämtliche Einstellungen, die du mit caption vorgenommen hast, könnte man übrigens auch direkt mit KOMA-Script erledigen. Es spricht aber auch nichts gegen dier Verwendung von caption.

markusv
Forum-Meister
Forum-Meister
Beiträge: 850
Registriert: Do 3. Sep 2015, 17:20
Wohnort: Leipzig

Beitrag von markusv »

Tolles Minimalbeispiel!

Mein Vorschlag: Setze die Punkte als Spaltentrenner. Anbei mein MB mit einigen kleinen Sachen, die ich anders machen würde:

Code: Alles auswählen

\documentclass{scrbook}
\usepackage[T1]{fontenc}
\usepackage{booktabs}
\usepackage[locale=DE]{siunitx}
\begin{document}
  \begin{table}[htb]
   \caption[Tabellenname im IV]{Tabellenname im Text}
   \label{tab:zigzag}
   \centering\sisetup{detect-all,per-mode=symbol}
   \begin{tabular}{
         >{\bfseries}lS[table-format=-2.0]@{\,\dots\,}S[table-format=3.0,table-number-alignment=left]S[table-format=-3.1]S[table-format=-1.5]
      }\toprule
 Material &\multicolumn{2}{p{3cm}}{\bfseries gültiger Temp.-bereich in \si{\celsius}}&{\bfseries\boldmath$\lambda_0$ in \si{\watt\per\metre\per\kelvin}}&{\bfseries B in \si{\celsius}}\\ \midrule
      {1} & -73&927 & 404,5 & -0,0723 \\
      {2} & 0&600 & -241,8 & -0,04678 \\ \bottomrule
   \end{tabular}
\end{table}
\end{document}
Zuletzt geändert von markusv am Mi 12. Feb 2020, 14:26, insgesamt 1-mal geändert.
Wäre Microsoft Word für das Schreiben von Büchern entwickelt worden,
würde es Microsoft Book heißen.

Unkomplizierte und schnelle LaTeX-Hilfe, bspw. Erstellung von Vorlagen und Bewerbungen:
Help-LaTeX@web.de

Bartman
Forum-Meister
Forum-Meister
Beiträge: 2138
Registriert: Do 16. Jul 2009, 21:41
Wohnort: Hessische Provinz

Beitrag von Bartman »

Anonymous hat geschrieben:Sämtliche Einstellungen, die du mit caption vorgenommen hast, könnte man übrigens auch direkt mit KOMA-Script erledigen.
Auch die Einstellung labelsep=space?

@gzzhuj

Sollte die Ausrichtung am Dezimaltrennzeichen in der S-Spalte der Bereichsangabe nicht erwünscht sein, dann möchte ich die folgende Alternative vorschlagen:

Code: Alles auswählen

\documentclass[fontsize=12pt,captions=tableheading]{scrbook}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{booktabs}
\usepackage[font={small,sf},labelfont=bf,labelsep=space,justification=raggedright]{caption}
\usepackage[locale=DE, per-mode=symbol, detect-all]{siunitx}
\usepackage{array}
\usepackage{threeparttable}
\usepackage{etoolbox}% für \AtBeginEnvironment
\usepackage{showframe}

\AtBeginEnvironment{tablenotes}{\footnotesize}

\newcommand{\thead}[1]{\begin{tabular}[t]{@{}>{\bfseries}l@{}}#1\end{tabular}}

\begin{document}
\begin{table}[!htb]
    \centering
    \begin{threeparttable}
    \caption[Tabellenname im IV]{Tabellenname im Text}
    \label{tab:zigzag}
    \centering
    \sisetup{table-space-text-post={***}}
    \begin{tabular}{
        >{\bfseries}l
        >{$}r<{$}@{\,\dots\,}
        >{$}l<{$}
        S[table-format=3.1]
        S[table-format=2.5]
    }
    \toprule
    Material & 
    \multicolumn{2}{l}{\thead{gültiger Temperatur-\\bereich in \si{\celsius}}} &
    \boldmath$\lambda_0$ \textbf{in \si{\W\per\m\per\kelvin}} &
    \textbf{B in \si{\celsius}}\\ 
    \midrule
    1 & -73 & 927 & 404,5\tnote{***} & -0,0723 \\
    2 & 0 & 600 & -241,8 & -0,04678 \\ 
    \bottomrule
    \end{tabular}
    \begin{tablenotes}
    \item[***] Text
    \end{tablenotes}
    \end{threeparttable}
\end{table}
\end{document}
Zuletzt geändert von Bartman am Mi 12. Feb 2020, 14:33, insgesamt 1-mal geändert.

markusv
Forum-Meister
Forum-Meister
Beiträge: 850
Registriert: Do 3. Sep 2015, 17:20
Wohnort: Leipzig

Beitrag von markusv »

Bartman hat geschrieben:Auch die Einstellung labelsep=space?

Code: Alles auswählen

\renewcommand*{\captionformat}{~}
Wäre Microsoft Word für das Schreiben von Büchern entwickelt worden,
würde es Microsoft Book heißen.

Unkomplizierte und schnelle LaTeX-Hilfe, bspw. Erstellung von Vorlagen und Bewerbungen:
Help-LaTeX@web.de

Bartman
Forum-Meister
Forum-Meister
Beiträge: 2138
Registriert: Do 16. Jul 2009, 21:41
Wohnort: Hessische Provinz

Beitrag von Bartman »

@markusv Danke.

Code: Alles auswählen

\documentclass[fontsize=12pt,captions=tableheading]{scrbook}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{booktabs}
\usepackage[locale=DE, per-mode=symbol, detect-all]{siunitx}
\usepackage{array}
\usepackage{threeparttable}
\usepackage{etoolbox}% für \AtBeginEnvironment
\usepackage{showframe}

\AtBeginEnvironment{tablenotes}{\footnotesize}

\newcommand{\thead}[1]{\begin{tabular}[t]{@{}>{\bfseries}l@{}}#1\end{tabular}}

\setkomafont{caption}{\sffamily\small}
\setkomafont{captionlabel}{\bfseries}
\setcaptionalignment{l}
\renewcommand*{\captionformat}{~}

\begin{document}
\begin{table}[!htb]
    \centering
    \caption[Tabellenname im IV]{Tabellenname im Text}
    \label{tab:zigzag}
    \sisetup{table-space-text-post={***}}
    \begin{threeparttable}
    \begin{tabular}{
        >{\bfseries}l
        >{$}r<{$}@{\,\dots\,}
        >{$}l<{$}
        S[table-format=+3.1]% Vorzeichen ergänzt
        S[table-format=+1.5]% s. o.
    }
    \toprule
    Material &
    \multicolumn{2}{l}{\thead{gültiger Temperatur-\\bereich in \si{\celsius}}} &
    \boldmath$\lambda_0$ \textbf{in \si{\W\per\m\per\K}} &
    \textbf{B in \si{\celsius}}\\ 
    \midrule
    1 & -73 & 927 & 404,5\tnote{***} & -0,0723 \\
    2 & 0 & 600 & -241,8 & -0,04678 \\ 
    \bottomrule
    \end{tabular}
    \begin{tablenotes}
    \item[***] Text
    \end{tablenotes}
    \end{threeparttable}
\end{table}
\end{document}

Antworten