在表环境中使用 longtable 时出现问题

在表环境中使用 longtable 时出现问题

我在制作带有换行文本的长列表时遇到了问题。表格可能长达几页。我使用longtable并分配了每列的宽度,但只要我将其放入\begin{table} \end{table},它就不起作用。它会剪切表格。我想为表格制作一个标签,所以我把它放在表格环境中。

有没有办法自动调整宽度,这样我不需要手动分配值?

谢谢。

\begin{table}
\centering
\begin{longtable}{|p{6.5cm}|p{2.5cm}|p{2.5cm}|p{2.5cm}|}
\hline
Name                                      & Company     &  Catalog Number   &   Comments    \\ \hline
Small DNA FRAG Extract Kit-100PR          & VWR         &   97060-558 & \\ \hline
Acrylamide 40\% solution 500 mL           & VWR         &   97064-522 &  \\ \hline
Bis-acrylamide 2\% (w/v) solution 500 mL  & VWR         &   97063-948 &  \\ \hline
GeneRuler 100 bp DNA Ladder, 100-1,000 bp & Fermentas   &   SM0241  &    \\ \hline
Mini Vertical PAGE System                 & VWR         &   89032-300  &  \\ \hline
\end{longtable}
\label{tab:list}
\end{table}

答案1

table将其内容封装在一个不会跨页但可以“浮动”到方便位置的框中。longtable删除此框,可以跨页,并且不会浮动。因此,封装longtable在里面table会破坏整个目的。删除table环境。

longtable提供了一个\caption便利设施,因此您\label也可以添加一个。

一个样品

\documentclass{article}
\usepackage{longtable}
\begin{document}
\begin{longtable}{|p{6.5cm}|p{2.5cm}|p{2.5cm}|p{2.5cm}|}
\caption[An optional table caption]{A long table\label{tab:list}}\\
\hline
Name                                      & Company     &  Catalog Number   &   Comments    \\ \hline
Small DNA FRAG Extract Kit-100PR          & VWR         &   97060-558 & \\ \hline
Acrylamide 40\% solution 500 mL           & VWR         &   97064-522 &  \\ \hline
Bis-acrylamide 2\% (w/v) solution 500 mL  & VWR         &   97063-948 &  \\ \hline
GeneRuler 100 bp DNA Ladder, 100-1,000 bp & Fermentas   &   SM0241  &    \\ \hline
Mini Vertical PAGE System                 & VWR         &   89032-300  &  \\ \hline
\end{longtable}

A long table~\ref{tab:list} is here.

\end{document}

在此处输入图片描述

有关更多详细信息,请阅读longtable文档(如果您texdoc longtable从命令提示符/终端或从 tex 编辑器的帮助菜单运行,则可用)。

这是宽度更好的改进版本

\documentclass{article}
\usepackage{longtable,array,showframe}   %% Remove showframe
\begin{document}
\begin{longtable}{|>{\raggedright}m{0.4\textwidth}|
                   >{\raggedright}p{0.13\textwidth}|
                   >{\raggedright}p{0.15\textwidth}|
                   >{\raggedright\arraybackslash}p{0.13\textwidth}|}
\caption[An optional table caption]{A long table\label{tab:list}}\\
\hline
Name                                      & Company     &  Catalog Number   &   Comments    \\ \hline
Small DNA FRAG Extract Kit-100PR          & VWR         &   97060-558 & \\ \hline
Acrylamide 40\% solution 500 mL           & VWR         &   97064-522 &  \\ \hline
Bis-acrylamide 2\% (w/v) solution 500 mL  & VWR         &   97063-948 &  \\ \hline
GeneRuler 100 bp DNA Ladder, 100-1,000 bp & Fermentas   &   SM0241  &    \\ \hline
Mini Vertical PAGE System                 & VWR         &   89032-300  &  \\ \hline
\end{longtable}

A long table~\ref{tab:list} is here.

\end{document}

在此处输入图片描述

这是强制booktabs版本:

\documentclass{article}
\usepackage{longtable,array,booktabs,showframe}
\begin{document}
\begin{longtable}{>{\raggedright}m{0.4\textwidth}
                   >{\raggedright}p{0.13\textwidth}
                   >{\raggedright}p{0.15\textwidth}
                   >{\raggedright\arraybackslash}p{0.13\textwidth}}
\caption[An optional table caption]{A long table\label{tab:list}}\\
\toprule
Name                                      & Company     &  Catalog Number   &   Comments    \\ \midrule
Small DNA FRAG Extract Kit-100PR          & VWR         &   97060-558 & \\ 
Acrylamide 40\% solution 500 mL           & VWR         &   97064-522 &  \\ 
Bis-acrylamide 2\% (w/v) solution 500 mL  & VWR         &   97063-948 &  \\ 
GeneRuler 100 bp DNA Ladder, 100-1,000 bp & Fermentas   &   SM0241  &    \\ 
Mini Vertical PAGE System                 & VWR         &   89032-300  &  \\ \bottomrule
\end{longtable}

A long table~\ref{tab:list} is here.

\end{document}

在此处输入图片描述

答案2

另外,人们通常还会缩小表格字体大小,以确保它们适合table环境的页面宽度。虽然longtable支持captions,但它会忽略字体大小命令,例如\tiny\scriptsize。但是,longtable本身可以包装在字体大小环境中,从而确保所需的输出。

\begin{scriptsize}
    \begin{longtabu} to \textwidth {rllrrll}
        \caption[Largest cities by highest reduction target]{Each country's largest city, its location, and each countries highest promised reduction target.} \\
        \toprule
        \rowfont\bfseries & Country & Largest City & Latitude & Longitude & Highest   & Notes \\
        \rowfont\bfseries &         &              &          &           & Reduction & \\
        \rowfont\bfseries &         &              &          &           & Target    & \\ \midrule
        \endhead

        \\ \hline 
        \multicolumn{7}{r}{Continued on next page} \\
        \endfoot

        \bottomrule
        \endlastfoot

        1 & Cape Verde & Praia & 14.92 & -23.51 & 100\% & electricity sector \\ 
        2 & Papua New Guinea & Port Moresby & -9.48 & 147.15 & 100\% & for electricity generation \\ 
    \end{longtabu}
\end{scriptsize}

相关内容