Seite 1 von 1

Serifenlose Zahlen in Tabllen mit pgfplotstable

Verfasst: Di 8. Okt 2019, 13:17
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

Verfasst: Di 8. Okt 2019, 15:45
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.

Verfasst: Mi 9. Okt 2019, 09:56
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