没有表格环境的标签表

没有表格环境的标签表

我想给表格添加标签,但不将其放入表格环境中。来自我知道这行不通,但那里提供的解决方案也行不通,因为如果我将表格(tabularx)放在表格环境中,表格不会继续在下一页显示,而是会给出一个 vbox 溢出错误...您如何解决此类问题?谢谢您的帮助!

这是我使用的脚本:

\documentclass{article}
\usepackage{booktabs, tabularx, array}  

\newcolumntype{s}[1]{>{\hsize=#1\hsize}X}

\begin{document}    

\begin{tabularx}{\linewidth}{
        @{}
        s{0.5}
        s{2}
        >{\raggedright\arraybackslash}s{0.5}
        @{}
    }
\label{tab:primer}
    \caption[blabla]{blablabla}\\

    \toprule
    \textbf{Number} & \textbf{Sequence (5' $\rightarrow$ 3')} & \textbf{Application}\\[6pt]
    \midrule
    \endfirsthead

    \toprule
    \textbf{Number} & \textbf{Sequence (5' $\rightarrow$ 3')} & \textbf{Application}\\[6pt]
    \midrule
    \endhead

    1 & 2 & 3\\
\end{tabularx}
\end{document}

答案1

即使添加了必要的文档前言,您的代码片段也无法编译,原因有两个:

  1. 你有一个混合长桌表格型表格序言中的命令。标题是longtable,但列定义是tabularx
  2. 你把 放label错了地方。最好的地方是里面标题,即\caption[blabla]{blablabla\label{tab:primer}}\\

如果你要使用表格型,我建议你使用KOMA 脚本-class 并使用内部命令将标题设置在浮动之外,而不是标题-包裹。

如果你使用长桌,它有自己的标题命令(KOMA 脚本可以融入其中)。但是,如果没有其他包,则无法在 longtable 中使用 X-columns,例如三部分表或者板状的, 作为Zarko 建议我要补充的是板状的长桌表格型。您的代码将通过三处小改动进行编译:

  1. 代替表格型板状的在你的文档的序言中
  2. 按照上述方法将 移到\label内。您应该在末尾更改为以便在标题后留出一些空间caption\\\\[10pt]
  3. \begin{tabularx}随之改变\begin{xltabular}\end{tabularx}\end{xltabular}

以下是您的示例scrartcl-class。此表将不是在页面边界处换行。如果你需要这个功能,@Zarko 已经为你提供了一个可行的解决方案

在此处输入图片描述

\documentclass{scrartcl}
\usepackage{booktabs, array, tabularx}

\begin{document}

\captionaboveof{table}{blablabla%
     \label{tab:primer}%
     }

\newcolumntype{s}[1]{>{\hsize=#1\hsize}X}
\begin{tabularx}{\linewidth}{
        @{}
        s{0.5}
        s{2}
        >{\raggedright\arraybackslash}s{0.5}
        @{}
    }

    \toprule
    \textbf{Number} & \textbf{Sequence (5' $\rightarrow$ 3')} & \textbf{Application}\\[6pt]
    \midrule


    1 & 2 & 3\\
\end{tabularx}
\end{document}

答案2

我会使用,这是和xltabular的完美结合。它允许在表格环境中使用标题:longtabletabularx

\documentclass{article}
\usepackage[margin=25mm]{geometry}
\usepackage{ragged2e}
\usepackage{booktabs, makecell, xltabular}
\renewcommand\theadfont{\bfseries\small}
\newcolumntype{R}{>{\RaggedRight}X}
\newcolumntype{s}[1]{>{\hsize=#1\hsize}X}
\usepackage[skip=1ex]{caption}

\usepackage{lipsum}

\begin{document}
\begin{xltabular}{\linewidth}{@{}  c
                >{\hsize=1.6\hsize}R
                >{\hsize=0.4\hsize}R
                             @{} }
\caption[blabla]{blablabla}
\label{tab:primer}                  
\addtocounter{table}{-1}            \\
    \toprule
\thead{Number} 
    & \thead{Sequence ($5'\rightarrow 3'$)} 
        & \thead{Application}       \\ 
    \midrule
\endfirsthead
    \caption[]{blablabla (cont.)}   \\
\thead{Number}
    & \thead{Sequence ($5'\rightarrow 3'$)}
        & \thead{Application}       \\
    \midrule
    \addlinespace[-3pt]
\endhead
    \midrule[0.8pt]
\multicolumn{3}{r}{continue on the next page}     
\endfoot
    \bottomrule
\endlastfoot
 1  & 2 & 3                         \\
    \addlinespace
 2  & \lipsum[1-2]  &               \\
    \addlinespace
 3  & \lipsum[3]    &               \\
    \addlinespace
 4  & \lipsum[4]    &               \\
    \addlinespace
 5  & \lipsum[5]    &               \\
    \end{xltabular}
\end{document}

在此处输入图片描述

在此处输入图片描述

在此处输入图片描述

相关内容