Problema con las reglas al mostrar un archivo csv en forma tabular

Problema con las reglas al mostrar un archivo csv en forma tabular

Estoy intentando mostrar valores de un archivo csv dentro de una tabla. Para hacerlo, estoy usando la macro \csvreader. Me gustaría que la tabla me gustara de esta manera:

resultado deseado

con a toprule, el encabezado de las columnas, a midrule, los valores sin línea y a bottomrule.

Aquí está el código que hice

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

Para cada línea, muestro la información de la fila csv, luego inserto un archivo \\. Con este código obtengo el siguiente resultado

resultado

con una línea vacía adicional. Intenté eliminar el que \\está delante de \bottomrule, pero aparece el error Misclaced \noalign. \bottomrule->\noalign.

¿Cómo podría eliminar esta línea adicional?

Respuesta1

Usar la opción late after line=\\resuelve este problema:

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

ingrese la descripción de la imagen aquí

información relacionada