
Я хочу иметь такой длинный стол:
\begin{center}
\begin{longtable}{|p{2cm}|p{3cm}|p{7cm}|p{3cm}|}
\caption{my caption}
\hline
1 & 2 & 3 & 4\\
\hline
\hline
1 & 2 & 3 & 4\\
\hline
1 & 2 & 3 & 4\\
\hline
.
.
.
1 & 2 & 3 & 4\\
\hline
\label{variability_impl_mech}
\end{longtable}
\end{center}
но когда я пытаюсь скомпилировать это, я получаю эту ошибку: !Misplaced \noalign
когда я пишу подпись после последней \hline, это работает нормально. Я хочу, чтобы подпись была сверху моей таблицы, но появляется эта ошибка.
решение1
\begin{longtable}{|p{2cm}|p{3cm}|p{7cm}|p{3cm}|}
\caption{my caption}\\ %%%%<===
\hline
и вам следует поставить \label
после \caption
, это имеет больше смысла.
решение2
Другой способ: использовать голову и первую голову:
\documentclass{article}
\usepackage{longtable}
\begin{document}
\begin{longtable}{|p{2cm}|p{3cm}|p{7cm}|p{3cm}|}
\caption{my caption}
\label{variability_impl_mech}
\endfirsthead
\endhead
\hline
1 & 2 & 3 & 4\\
%\hline
\hline
1 & 2 & 3 & 4\\
\hline
1 & 2 & 3 & 4\\
\hline
.
.
.
1 & 2 & 3 & 4\\
\hline
\end{longtable}
\end{document}
решение3
У меня возникла проблема с этим, так как я генерирую свои таблицы с помощью библиотеки pandas из python. Вот таким образом.
print(tabla_1.to_latex(index = False, longtable=True))
Но проблема в том, что pandas генерирует мои длинные таблицы следующим образом:
\begin{longtable}{lrrr}
\toprule
Nombre & No datos & P. rango & total\_isnull \\
\midrule
Поэтому я попытался поставить \label
and \caption
перед \toprule
, но это никогда не компилируется. Поэтому моим решением было изменить \toprule
for \hline
и тогда у вас будет ваша компиляция, например:
\begin{longtable}{lrrr}
\label{YourLabel}
\Caption{YourCaption}
\hline
Nombre & No datos & P. rango & total\_isnull \\
\midrule