我在制作带有换行文本的长列表时遇到了问题。表格可能长达几页。我使用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
支持caption
s,但它会忽略字体大小命令,例如\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}