Seite 1 von 1

Tabellenspalten an unterschiedlichen Kriterien ausrichten

Verfasst: Mi 12. Feb 2020, 11:19
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.

\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}

Off-Topic: Gratulation und Hinweis auf veraltetes Paket

Verfasst: Mi 12. Feb 2020, 12:16
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.

Verfasst: Mi 12. Feb 2020, 13:52
von markusv
Tolles Minimalbeispiel!

Mein Vorschlag: Setze die Punkte als Spaltentrenner. Anbei mein MB mit einigen kleinen Sachen, die ich anders machen würde:
\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}

Verfasst: Mi 12. Feb 2020, 14:14
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:
\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}

Verfasst: Mi 12. Feb 2020, 14:32
von markusv
Bartman hat geschrieben:Auch die Einstellung labelsep=space?
\renewcommand*{\captionformat}{~}

Verfasst: Mi 12. Feb 2020, 14:38
von Bartman
@markusv Danke.
\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}