Problem mit Regeln bei der Anzeige einer CSV-Datei in einer Tabelle

Problem mit Regeln bei der Anzeige einer CSV-Datei in einer Tabelle

Ich versuche, Werte aus einer CSV-Datei in einer Tabelle anzuzeigen. Dazu verwende ich das Makro \csvreader. Ich möchte, dass die Tabelle folgendermaßen aussieht:

erwünschtes Ergebnis

mit einem toprule, den Spaltenköpfen, einem midrule, den Werten ohne Zeile und einem bottomrule.

Hier ist der Code, den ich erstellt habe

\begin{tabular}{*{4}{c}}%
    \toprule
    \textbf{Mesh} & $h$ & \textbf{nDof $\P_1$} & \textbf{nDof $\P_2$}\\
    \midrule
    \csvreader[head to column names]{fig/meshInformation3D.csv}{}
    {\texttt{\mesh} & \pgfmathprintnumber{\hAvg} & \pgfmathprintnumber{\nDofPUn} & \pgfmathprintnumber{\nDofPDeux}\\}
    \\\bottomrule
\end{tabular}

Für jede Zeile zeige ich die Informationen der CSV-Zeile an und füge dann eine ein \\. Mit diesem Code erhalte ich das folgende Ergebnis

Ergebnis

mit einer zusätzlichen Leerzeile. Ich habe versucht, das \\vor dem zu entfernen \bottomrule, aber es führte zu dem Fehler Misclaced \noalign. \bottomrule->\noalign.

Wie kann ich diese zusätzliche Zeile entfernen?

Antwort1

Die Verwendung der Option late after line=\\löst dieses Problem:

\documentclass{article}
\usepackage{pgf}
\usepackage{amssymb}
\usepackage{csvsimple}
\usepackage{booktabs}

\begin{filecontents}[noheader]{mylist.csv}
mesh, hAvg, nDofPUn, nDofPDeux 
M0  , 0.86, 47384  , 327000    
M1  , 0.74, 68993  , 473000    
\end{filecontents}

\begin{document}
\begin{tabular}{*{4}{c}}%
    \toprule
    \textbf{Mesh} & $h$ & \textbf{nDof $\mathbb{P}_1$} & \textbf{nDof $\mathbb{P}_2$} \\
    \midrule
    \csvreader[head to column names, late after line=\\]{mylist.csv}{}{
        \texttt{\mesh} & 
        \pgfmathprintnumber{\hAvg} & 
        \pgfmathprintnumber{\nDofPUn} & 
        \pgfmathprintnumber{\nDofPDeux}
    }
    \bottomrule
\end{tabular}
\end{document}

Bildbeschreibung hier eingeben

verwandte Informationen