Serifenlose Zahlen in Tabllen mit pgfplotstable

Tabellen und Grafiken erstellen und anordnen


Benutzeravatar
lunen
Forum-Anfänger
Forum-Anfänger
Beiträge: 21
Registriert: Mi 18. Mai 2016, 23:37

Serifenlose Zahlen in Tabllen mit pgfplotstable

Beitrag von lunen »

Hallo,

ich habe folgendes Problem: wenn ich eine Tabelle mit pgfplotstable in mein Dokument integriere, sind die Zahlen in einer Serifenschrift. Da das gesamte restliche Dokument in einer serifenlosen Schrift formatiert ist, sieht das etwas komisch aus.
In der Doku heisst es:
/pgfplots/table/font={font name} (initially empty)
Assigns a font used for the complete table.
Jedoch funktioniert das mehr oder weniger nur für die Kopfzeile und merkwürdigerweise für die Zellen, in denen noch eine Fußnote eingefügt ist.
\documentclass[ngerman]{scrreprt} 
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel} 
\usepackage{amsmath}
\usepackage{booktabs}
\usepackage{tabularx}
\usepackage{chemmacros}
    \chemsetup{modules=all}
    \sisetup{%
        output-decimal-marker = {.},
        detect-weight, % Schrifttyp übernehmen
        detect-family, %Schriftart des Umgebungstextes übernehmen (mit/ohne Serifen)
        mode=text,
    }
\usepackage{upgreek}
\usepackage{chemgreek}
\usepackage{pgfplots,pgfplotstable}
\usepackage{filecontents}

\begin{filecontents*}{Succinat.csv}
pH soll,V(sa),V(HClO4),V(NaOH2)
1,10,95.0,0.0
2,10,9.5,0.0
\end{filecontents*}

\pgfplotsset{compat=1.15}
\pgfplotstableset{% definiere hier das Tabellenlayout "Proben"
Proben/.style={%
    font={\sffamily\selectfont},%funktioniert für kopfzeile
    col sep=comma,
    fixed,fixed zerofill,
    display columns/0/.style={
        font={\sffamily\selectfont},%keine änderung
        column name=\pH$_{soll}$,
        fixed zerofill,precision=2,
      },
    display columns/1/.style={
        font={\sffamily},%auch keine änderung
        column name={V(L)},
      },
    display columns/2/.style={
        font=\sffamily, %keine änderung
        column name={V(HClO$_4$)},
       fixed zerofill,precision=1,
      },
     display columns/3/.style={
        font=\sffamily\selectfont, %keine änderung
        column name={V(NaOH)\footnote{\label{fn:base}c(NaOH) = \SI{0.1}{\Molar}}},
       fixed zerofill,precision=1,
      },
    every head row/.style={before row=\toprule,after row=\midrule},
    every head row/.style={
		before row={\toprule},
		after row={
			 & \si{\milli\liter} &\si{\micro\liter}&\si{\micro\liter}\\ 
			\midrule}
			    },
    every last row/.style={after row=\bottomrule}
 }}

\renewcommand{\familydefault}{\sfdefault}%global serifenloser text

\begin{document}
Zahlen in einer händisch eingetrangenen Tabelle sind serifenlos:

\begin{minipage}[tp]{\linewidth}
\captionof{table}{Serifenlose Testtabelle.}
\centering
\begin{tabular}{cc}
    \toprule
    Text & Zahl \\
    \midrule
    196\footnote{\label{konzHClO4}c(HClO$_4$) = \SI{9.14}{\Molar}} & 280 \\
    0.88 & 1.89\\
    \bottomrule
\end{tabular}
\end{minipage} 
\bigskip

Zahlen in einer per \texttt{pgfplotstable} eingebundenen Tabelle sind nicht serifenlos. Nur solche, an denen nachträglich eine Fußnote angebracht wurde:

\begin{minipage}[tp]{\linewidth}
\captionof{table}{Nicht serifenlose Testtabelle.}
\centering
\pgfplotstabletypeset[Proben, %lade das Tabellenlayout "Proben"
    display columns/2/.style={
        column name={V(HClO$_4$)\footnote{c(HClO$_4$) = \SI{0.1}{\Molar}}},  %ändere nachträglich diese eine Kopfzeile
        precision=1},
        every row 0 column 2/.style={postproc cell content/.style={@cell content=##1\footnote{\label{konzHClO4}c(HClO$_4$) = \SI{9.14}{\Molar}}}},] %hänge hier explizit die Fußnote an
    {Succinat.csv}
\end{minipage} 
\end{document}
Hat jemand einen Ratschalg für mich?
Vielen Dank.
Liebe Grüße
Lunen
Warum nicht gleich mit Ether statt mit einem Keton, knallt noch besser; für die Entsorgung sollte man allerdings den Kampfmittelräumdienst kommen lassen

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

Beitrag von Bartman »

Du kannst die Schrift des mathematischen Modus für das ganze Dokument oder nur für ausgewählte Bereiche auf eine serifenlose Schrift umstellen.

Für die Begrenzung der Anpassung auf Deine erstellte Tabelle kannst Du
Proben/.style={%
    font={\sffamily\sansmath},%funktioniert für kopfzeile
einstellen, wenn Du das im Verweis erwähnte Paket sansmath lädst.

\selectfont wird meines Wissens beim Einsatz des Befehls \fontsize benötigt, aber nicht hier.

Für Summenformeln darfst Du übrigens den Befehl \ch von chemformula nutzen, welches bei dem geladenen chemmacros die Voreinstellung ist.

pgfplotstable lädt pgfplots.

Es ist außerdem möglich, die Zeichenfolge soll im Index aufrecht zu setzen, damit sie nicht wie das Produkt von vier Variablen aussieht. Da der mathematische Modus in diesem Fall nur für den Index benutzt wird, kannst Du diesen auch weglassen und \textsubscript nehmen.

Eventuell könnte Dich das Paket threeparttable interessieren, welches sich für Fußnoten in Tabellen eignet.

Benutzeravatar
lunen
Forum-Anfänger
Forum-Anfänger
Beiträge: 21
Registriert: Mi 18. Mai 2016, 23:37

Beitrag von lunen »

Hallo Bartman,

danke für deine Hilfe, sansmath tut genau das, was ich haben wollte.
Danke auch für den Hinweis mit pgfplotstables. Für das Minimalbeispiel habe ich die Formatierungen für die Summenformeln und Indices verzichtet.

Vielen Dank
Lunen
Warum nicht gleich mit Ether statt mit einem Keton, knallt noch besser; für die Entsorgung sollte man allerdings den Kampfmittelräumdienst kommen lassen

Antworten