我第一次尝试使用 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}