longtable 表格列表标题问题

longtable 表格列表标题问题

我正在写一篇硕士论文,论文中使用了一个长表。我遇到了与表格列表 (LoT) 中长表标题相关的问题。下面显示的表 4.1 是一个长表,不方便用于 LoT 的论文格式。我希望长表的格式与 LoT 中的其他表格相同。我通过设置解决了普通表格和图形的相同问题\usepackage[caption=false]{subfig}。但是,它对长表不起作用。

表 3.5。标题.......

4.1 标题......

表 4.2。标题......

表 4.3。标题......

长表如下。提前感谢任何帮助。

\begin{center}
\begin{longtable}{ | c | p{3cm} | c | c | c |}
\caption{Basic properties of sensors during deployment.}  \label{table:basic-property-deployment}
\\  \hline
    \textbf{Sensors} & \textbf{Location} & \textbf{Threshold} & \textbf{Base Station} & \textbf{Resistance}\\ [6pt]
    \hline
    \endfirsthead
    \multicolumn{5}{c}%
   % \bigskip 
    {\tablename\ \thetable\ . Basic properties of sensors during deployment} \\
    \hline
     \textbf{Sensors} & \textbf{Location} & \textbf{Threshold} & \textbf{Base Station} & \textbf{Resistance}\\ [6pt]
     \hline
     \endhead
     \hline \multicolumn{5}{r}{\textit{Continued on next page}} \\
     \endfoot
     \hline
     \endlastfoot

     ROWS


\end{longtable}
\end{center}

答案1

如果您发布一份完整的文档来显示所有已加载的软件包,它总是有帮助的,但我猜测 longtable toc 是由

\def\LT@c@ption#1[#2]#3{%
  \LT@makecaption#1\fnum@table{#3}%
  \def\@tempa{#2}%
  \ifx\@tempa\@empty\else
     {\let\\\space
     \addcontentsline{lot}{table}{\protect\numberline{\thetable}{#2}}}%
  \fi}

所以如果你有

\makeatletter
\def\LT@c@ption#1[#2]#3{%
  \LT@makecaption#1\fnum@table{#3}%
  \def\@tempa{#2}%
  \ifx\@tempa\@empty\else
     {\let\\\space
     \addcontentsline{lot}{table}{\protect\numberline{Table \thetable.}{#2}}}%
  \fi}
\makeatother

然后Table会出现在目录中(或使用标题样式所使用的任何其他格式\addcontentsline

答案2

您可以在 .tex 文件的前奏中使用以下代码。它将同时更正longtables 的标题和 中的行list of tables。(基于以下答案大卫·卡莱尔, 当然)。

\setlength\LTcapwidth{\textwidth}

\makeatletter
  \def\LT@makecaption#1#2#3{%
    \LT@mcol\LT@cols c{\hbox to\z@{\hss\parbox[t]\LTcapwidth{%
    \vskip\abovecaptionskip
    \centering{
      \sbox\@tempboxa{#1{#2 }#3}%
      \ifdim\wd\@tempboxa>\hsize
        #1{#2. }#3%
      \else
        \hbox to\hsize{\hfil\box\@tempboxa\hfil}%
      \fi
      \endgraf\vskip\baselineskip}}%
    \hss}}}
\makeatother

\makeatletter
  \def\LT@c@ption#1[#2]#3{%
    \LT@makecaption#1\fnum@table{#3}%
    \def\@tempa{#2}%
    \ifx\@tempa\@empty\else
    {\let\\\space
      \addcontentsline{lot}{table}{\protect\numberline{Table \thetable.}{\ignorespaces #2}\vspace\baselineskip}%
    }%
    \fi
  }
\makeatother

相关内容