如何对长表进行 \label 而不添加新行?

如何对长表进行 \label 而不添加新行?

我希望使用标签来标记一张长表\label{long_table_1}

但是,当我将其插入到页面底部时,它显示

在此处输入图片描述

请注意,表中又添加了另一行!

我也无法调整\label上面的最终内容\hline,因为这会引发错误。

有人能告诉我怎样才能制作\label一张长表而不像上面那样插入另一行吗?

示例代码:

\documentclass[12pt]{article}
%Preamble

\usepackage[margin=1in]{geometry}  
\usepackage[draft]{graphicx}       
\usepackage{amsmath}              
\usepackage{amsfonts}              
\usepackage{amsthm}                
\usepackage{amssymb}
\usepackage{mathrsfs}
\usepackage{upgreek}
\usepackage{hyperref}                
\usepackage{cancel}
\usepackage{graphicx}
\usepackage{subfig}
\usepackage{ragged2e}
\usepackage{longtable}
\usepackage{array}
\usepackage{changepage}
\usepackage{stackengine}
\stackMath
\usepackage{longtable}
\usepackage{supertabular}
\title{Table Problem}

\begin{document}
\maketitle
\tableofcontents
\newpage
{\bfseries Things I love about Mexico}
\begin{longtable}{ | m{5.5cm} | m{5.5cm} |}
    \hline 
    Princess Yagoda & Prince Khan\footnote{Tacos!}\\
    \hline
    \hline 
    
    {
    Uno
    } & Dos \\  
    \hline
    
    {
        Tres
    } & Quarto\\
    \hline 
    \label{The_Most_Important_Table_Ever}  %<---- Problem 
\end{longtable}
\end{document}

答案1

对于表格的引用,您首先应该有表格标题。标签应该跟在标题后面。longtable设计为使标题在表格中占有一席之地:

\documentclass[12pt]{article}
%Preamble

\usepackage[margin=1in]{geometry}
%\usepackage[draft]{graphicx}
%\usepackage{amsmath}
%\usepackage{amsfonts}
%\usepackage{amsthm}
%\usepackage{amssymb}
%\usepackage{mathrsfs}
%\usepackage{upgreek}
%\usepackage{cancel}
%\usepackage{graphicx}
%\usepackage{subfig}
%\usepackage{ragged2e}
%\usepackage{longtable}
\usepackage{array}
%\usepackage{changepage}
%\usepackage{stackengine}
%\stackMath
%\usepackage{makecell}
\usepackage{longtable}
%\usepackage{supertabular}

\usepackage[colorlinks=true,
            linkcolor={red},citecolor={red},
            ]{hyperref}
\renewcommand\arraystretch{1.3}

\title{Table Problem}

\begin{document}
\maketitle
%\tableofcontents
%\newpage
\begin{longtable}{ | m{5.5cm} | m{5.5cm} |}
\caption{Things I love about Mexico}
    \label{The_Most_Important_Table_Ever}\\  %<---- Problem
    \hline
Princess Yagoda & Prince Khan\footnote{Tacos!}\\
    \hline
    \hline
Uno             & Dos \\
    \hline
Tres            & Quarto\\
    \hline
\end{longtable}
see table \ref{The_Most_Important_Table_Ever}
\end{document}

上述 MWE 给出:

在此处输入图片描述

离题:在您的序言中,您有许多软件包加载了两次,hyperref必须在序言中最后加载(您的案例中没有出现一些例外情况),supertabular并且longtable最好不要在同一文档中使用。为了更好地查看表格,我将其增加到\arraystretch1.3。此外,我还注释了与您的问题无关的所有软件包。

答案2

实际上,这并不是真正\label产生假细胞的原因。任何事物\\在其他或类似的命令之后\hline将启动一个新单元,{}或者\relax例如。

您可以将\labelmore 或 less 放在表格中的任何地方,而不是您放置它的位置。如果没有\captionas 就很奇怪了,否则就没有与生成的数字相关的可见数字\ref,但它确实有效,如下所示。通常我会在普通表格中将 as放在\label参数中,但是:\caption

\documentclass[12pt]{article}
%Preamble

\usepackage[margin=1in]{geometry}  
\usepackage[draft]{graphicx}       
\usepackage{amsmath}              
\usepackage{amsfonts}              
\usepackage{amsthm}                
\usepackage{amssymb}
\usepackage{mathrsfs}
\usepackage{upgreek}
\usepackage{hyperref}                
\usepackage{cancel}
\usepackage{graphicx}
\usepackage{subfig}
\usepackage{ragged2e}
\usepackage{longtable}
\usepackage{array}
\usepackage{changepage}
\usepackage{stackengine}
\stackMath
\usepackage{longtable}
\usepackage{supertabular}
\title{Table Problem}

\begin{document}
\maketitle
\tableofcontents
\newpage
{\bfseries Things I love about Mexico}
\begin{longtable}{ | m{5.5cm} | m{5.5cm} |}
    \hline 
    Princess Yagoda & Prince Khan\footnote{Tacos!}\\
    \hline
    \hline 

    {
    Uno
    } & Dos\label{The_Most_Important_Table_Ever}  \\  
    \hline

    {
        Tres
    } & Quarto\\
    \hline 
\end{longtable}


see \ref{The_Most_Important_Table_Ever}
\end{document}

相关内容