Tabellenspalten an unterschiedlichen Kriterien ausrichten

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: Tabellenspalten an unterschiedlichen Kriterien ausrichten

von Bartman » Mi 12. Feb 2020, 14:38

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

von markusv » Mi 12. Feb 2020, 14:32

Bartman hat geschrieben:Auch die Einstellung labelsep=space?
\renewcommand*{\captionformat}{~}

von Bartman » Mi 12. Feb 2020, 14:14

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}

von markusv » Mi 12. Feb 2020, 13:52

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}

Off-Topic: Gratulation und Hinweis auf veraltetes Paket

von Gast » Mi 12. Feb 2020, 12:16

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.

Tabellenspalten an unterschiedlichen Kriterien ausrichten

von gzzhuj » Mi 12. Feb 2020, 11:19

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}

Nach oben