Я пытаюсь реализовать эту таблицу в более крупном документе, но не могу этого сделать. Если я не использую \bottomrule, то все работает нормально, но когда я пытаюсь добавить эту строку, выдается ошибка «неуместно \noalign».
.tex-файл:
\documentclass{article}
\usepackage{csvsimple}
\usepackage{booktabs}
\usepackage{multirow}
\begin{document}
\begin{table}
\centering
\begin{tabular}{cccccc}
\toprule
\multirow{2}{*}{Substituent (R)} & \multicolumn{2}{c}{P} & \multicolumn{2}{c}{As} \\
\cmidrule(lr){2-3} \cmidrule(lr){4-5}
& C1 & C2 & C3 & C4 \\
\midrule
\csvreader{var.csv}{}{
\csvcoli & \csvcolii & \csvcolii & \csvcoliv & \csvcolv\\}
\bottomrule
\end{tabular}
\caption{Example table with bottom rule using csvsimple}
\end{table}
\end{document}
вар.csv:
A,B,C,D,E
1,2,3,0,2
5,6,7,6,7
Я попытался вставить \before Botrule, но перед строкой осталось большое пространство. Кроме того, если я не использую csvreader и просто набираю таблицу, тогда все в порядке, строка отображается так, как и должна. Но это не очень эффективно, поскольку мне приходится создавать несколько таблиц с большим количеством строк, поэтому их ввод будет занимать очень много времени. Заранее спасибо.
Вы можете использовать опцию late after line=\\
, чтобы начинать новые строки таблицы при чтении файла csv:
\documentclass{article}
\usepackage{csvsimple}
\usepackage{booktabs}
\usepackage{multirow}
\usepackage{array}
\begin{filecontents*}[overwrite]{var.csv}
A,B,C,D,E
1,2,3,0,2
5,6,7,6,7
\end{filecontents*}
\begin{document}
\begin{table}
\centering
\begin{tabular}{cccccc}
\toprule
\multirow{2}{*}{Substituent (R)} & \multicolumn{2}{c}{P} & \multicolumn{2}{c}{As} \\
\cmidrule(lr){2-3} \cmidrule(lr){4-5}
& C1 & C2 & C3 & C4 \\
\midrule
\csvreader[late after line=\\]{var.csv}{}{
\csvcoli & \csvcolii & \csvcolii & \csvcoliv & \csvcolv}
\bottomrule
\end{tabular}
\caption{Example table with bottom rule using csvsimple}
\end{table}
\end{document}