csvreader 没有显示任何内容

csvreader 没有显示任何内容

我第一次尝试使用 csvsimple 包。它与我的 .csv 文件和命令配合得很好,\csvautobooktabular但我无法使用它\csvreader。这是一个 MWE。有人能告诉我我的代码可能哪里错了吗?(我正在使用 Overleaf 来编译此代码)

\documentclass{article}

\usepackage[T1]{fontenc} 
\usepackage[french]{babel}
\usepackage{caption}
\usepackage[legacy]{csvsimple}
\usepackage{booktabs}

\usepackage{filecontents}
\begin{filecontents*}{data2.csv}
Echant.;Masse;Inc.;Volume;Inc.;Masse vol.;Inc.
;;masse;;volume;;masse vol.
[-];[g];[g];[ml];[ml];[kg/m3];[kg/m3]
Paul;23.4;0.1;7.52;0.01;3.11;0.02
1;43.5;0.1;13.9;0.1;3.13;0.03
3B;5.0;0.1;1.7;0.2;3.0;0.4
H12bc;4.7;0.1;1.6;0.2;2.9;0.4
\end{filecontents*}

\begin{document}

\begin{center}
\shorthandoff{;}
\csvautobooktabular[separator=semicolon]{data2.csv}
\shorthandon{;}
\captionof{table}{Exemple 1.}
\end{center}

\begin{center}
\shorthandoff{;}
\csvreader[ separator=semicolon,
            tabular=@{}ccccccc@{},
            table head=\toprule
            a & b & c & d & e & f & g \\ \midrule,
            table foot=\bottomrule
          ]
    {data2.csv}{}{}
\shorthandon{;}
\captionof{table}{Exemple 2.}
\end{center}

\end{document}

答案1

您需要告诉csvreader如何准确排版表格,例如像这样(这是一种非常明确的方式):

\documentclass{article}
\usepackage[T1]{fontenc} 
\usepackage[french]{babel}
\usepackage{caption}
\usepackage[legacy]{csvsimple}
\usepackage{booktabs}

\begin{filecontents*}{data2.csv}
Echant.;Masse;Inc.;Volume;Inc.;Masse vol.;Inc.
;;masse;;volume;;masse vol.
[-];[g];[g];[ml];[ml];[kg/m3];[kg/m3]
Paul;23.4;0.1;7.52;0.01;3.11;0.02
1;43.5;0.1;13.9;0.1;3.13;0.03
3B;5.0;0.1;1.7;0.2;3.0;0.4
H12bc;4.7;0.1;1.6;0.2;2.9;0.4
\end{filecontents*}

\begin{document}

\begin{center}
\shorthandoff{;}
\csvreader[ 
    separator=semicolon,
    tabular={ @{} *{8}{c} @{} },
    table head=\toprule
    Echant. & Masse & Inc. & Volume & Inc. & Masse vol. & Inc. \\ \midrule,
    table foot=\bottomrule
  ]
{data2.csv}{}{
    \csvcoli & 
    \csvcolii & 
    \csvcoliii & 
    \csvcoliv & 
    \csvcolv & 
    \csvcolvi &
    \csvcolvii  
}
\shorthandon{;}
\captionof{table}{Exemple 2.}
\end{center}

\end{document}

在此处输入图片描述

您也可以\csvlinetotablerow按照评论中的建议使用:

\documentclass{article}
\usepackage[T1]{fontenc} 
\usepackage[french]{babel}
\usepackage{caption}
\usepackage[legacy]{csvsimple}
\usepackage{booktabs}

\begin{filecontents*}{data2.csv}
Echant.;Masse;Inc.;Volume;Inc.;Masse vol.;Inc.
;;masse;;volume;;masse vol.
[-];[g];[g];[ml];[ml];[kg/m3];[kg/m3]
Paul;23.4;0.1;7.52;0.01;3.11;0.02
1;43.5;0.1;13.9;0.1;3.13;0.03
3B;5.0;0.1;1.7;0.2;3.0;0.4
H12bc;4.7;0.1;1.6;0.2;2.9;0.4
\end{filecontents*}

\begin{document}

\begin{center}
\shorthandoff{;}
\csvreader[ 
    separator=semicolon,
    tabular={ @{} *{8}{c} @{} },
    table head=\toprule
    Echant. & Masse & Inc. & Volume & Inc. & Masse vol. & Inc. \\ \midrule,
    table foot=\bottomrule
  ]
{data2.csv}{}{
    \csvlinetotablerow  
}
\shorthandon{;}
\captionof{table}{Exemple 2.}
\end{center}

\end{document}

相关内容