一篇paper中难免会遇到各种各样的问题(包括表格、图片、公式等等)需要处理,最终要想达到我们要的效果还得经历多次的调整。在这个系列的博客中,我会将我遇到的一些比较棘手或是比较常用到的问题整合起来,分享给大家。

1 问题描述

有时候由于页面长度有限,所以表格不一定能完全在同一个页面中。在word中遇到这种情况时,word能够自动对表格进行跨页断行的操作(如下图所示)。

但在latex中,一个超过页面长度的长表格,使用平常的\begin{table}环境的话,就会出现如下情况,表格会一直延申到整个页面的底部,并且显示不全(如下图所示)。

2 解决办法

2.1 longtable

首先需要加上宏包\usepackage{longtable}

2.1.1 简单例子

第一种写法是直接将表格内容放置在longtable环境中,代码及效果图如下所示:

\begin{longtable}{cccc}
\caption{example}\label{tab1}\\% 表格内容\end{longtable}


可以很明显的看到,用longtable的方法,表格会自动换页,不会出现文章一开始的那种情况。虽然满足了自动换页这一点要求,但是通常一张跨页的表格需要在每一页的开头重复表头,所以我们来做一下改进。

2.1.2 加表头表尾

第二种写法也很简单,只是在第一种写法的基础上,在表格内容的前面加上一些表头的修饰操作。代码及效果图如下所示。

\begin{longtable}{cccccccc}
\caption{example}\label{tab1}\\
% 表格“首页”显示内容
\toprule
n1  & n2 & n3  & n4 & n1  & n2 & n3  & n4 \\
\midrule
\endfirsthead% “后续页面”表头显示内容
\multicolumn{8}{r}{Continued}\\
\toprule
n1  & n2 & n3  & n4 & n1  & n2 & n3  & n4  \\
%\midrule
\endhead% 表格“尾页前”,表格最后显示内容
%\bottomrule
\multicolumn{8}{c}{Continued on next page}\\
\endfoot% 表格“尾页”,表格最后显示内容
\bottomrule
\endlastfoot
\multicolumn{3}{c}{a} &d\\
\hline
1 & 2 & 3 &4 & 1 & 2 & 3 &4\\
\hline
a & b & c &d & a & b & c &d\\
\hline
1 & 2 & 3 &4 & 1 & 2 & 3 &4\\
\hline
a & b & c &d & a & b & c &d\\
\hline
1 & 2 & 3 &4 & 1 & 2 & 3 &4\\
\hline
a & b & c &d & a & b & c &d\\
\hline
1 & 2 & 3 &4 & 1 & 2 & 3 &4\\
\hline
a & b & c &d & a & b & c &d\\
\hline
1 & 2 & 3 &4 & 1 & 2 & 3 &4\\
\hline
a & b & c &d & a & b & c &d\\
\hline
1 & 2 & 3 &4 & 1 & 2 & 3 &4\\
\hline
a & b & c &d & a & b & c &d\\
\hline
1 & 2 & 3 &4 & 1 & 2 & 3 &4\\
\hline
a & b & c &d & a & b & c &d\\
\hline
1 & 2 & 3 &4 & 1 & 2 & 3 &4\\
\hline
a & b & c &d & a & b & c &d\\
\hline
1 & 2 & 3 &4 & 1 & 2 & 3 &4\\
\hline
a & b & c &d & a & b & c &d\\
\hline
1 & 2 & 3 &4 & 1 & 2 & 3 &4\\
\hline
a & b & c &d & a & b & c &d\\
\hline
1 & 2 & 3 &4 & 1 & 2 & 3 &4\\
\hline
a & b & c &d & a & b & c &d\\
\hline
1 & 2 & 3 &4 & 1 & 2 & 3 &4\\
\hline
1 & 2 & 3 &4 & 1 & 2 & 3 &4\\
\hline
a & b & c &d & a & b & c &d\\
\hline
1 & 2 & 3 &4 & 1 & 2 & 3 &4\\
\hline
a & b & c &d & a & b & c &d\\
\hline
1 & 2 & 3 &4 & 1 & 2 & 3 &4\\
\hline
a & b & c &d & a & b & c &d\\
\hline
1 & 2 & 3 &4 & 1 & 2 & 3 &4\\
\hline
a & b & c &d & a & b & c &d\\
\hline
1 & 2 & 3 &4 & 1 & 2 & 3 &4\\
\hline
a & b & c &d & a & b & c &d\\
\hline
1 & 2 & 3 &4 & 1 & 2 & 3 &4\\
\hline
a & b & c &d & a & b & c &d\\
\hline
1 & 2 & 3 &4 & 1 & 2 & 3 &4\\
\hline
a & b & c &d & a & b & c &d\\
\hline
1 & 2 & 3 &4 & 1 & 2 & 3 &4\\
\hline
a & b & c &d & a & b & c &d\\
\hline
1 & 2 & 3 &4 & 1 & 2 & 3 &4\\
\hline
a & b & c &d & a & b & c &d\\
\hline
1 & 2 & 3 &4 & 1 & 2 & 3 &4\\
\hline
a & b & c &d & a & b & c &d\\
\end{longtable}

  • \toprule\midrule\bottomrule为三线表booktabs的横线控制命令;
  • \endfirsthead前为表格首页的表头;
  • \endfirsthead\endhead的中间部分为后续页面的表头内容;
  • \endhead\endfoot的中间部分为除表格尾页外的其它页的表尾;
  • \endfoot\endlastfoot部分是最后一页的表尾。

2.1.3 使用longtable的注意事项

1. 不能用 twocolumn 双栏页面格式中
2. longtable环境不能放在table的浮动体内,否则只会在一页显示。

\begin{table}[!htp]\caption{example}\label{tab1}\begin{longtable}{cccc}
%表格内容\end{longtable}
\end{table}

如果我们如上面代码一样,把longtable环境不能放在table的浮动体内,看下面这张效果图你会发现,表格内容只显示一页,并且显示不完全。

2.2 supertabular(适用范围较广)

2.2.1 英文说明书

这份说明书对supertabular环境做了非常详细的介绍,包括每个关键字的说明,和需要注意的地方,语言简练易懂。
需要的可以点下面这个连接下载下来:
https://download.csdn.net/download/qq_42772652/81472990

2.2.2 基本框架

我们先按照说明书中的例子来讲解一下基本框架
首先要有宏包\usepackage{supertabular}

\begin{center}
\tablefirsthead{% %首页表头
\hline\multicolumn{1}{|c}{\tbsp Number} &\multicolumn{1}{c}{Number$^2$} &Number$^4$ &\multicolumn{1}{c|}{Number!} \\\hline}
\tablehead{% %后续页表头\hline\multicolumn{4}{|l|}{\small\sl continued from previous page}\\\hline\multicolumn{1}{|c}{\tbsp Number} &\multicolumn{1}{c}{Number$^2$} &Number$^4$ &\multicolumn{1}{c|}{Number!} \\\hline}
\tabletail{%除最后一页外的表尾\hline\multicolumn{4}{|r|}{\small\sl continued on next page}\\\hline}
\tablelasttail{\hline} %最后一页的表尾
\bottomcaption{This table is split across pages}
\begin{supertabular}{|r@{\hspace{6.5mm}}|r@{\hspace{5.5mm}}|r|r|}%表格内容\end{supertabular}
\end{center}

其实supertabular与longtable是大同小异的,同样由表头表尾及中间的内容来构成一张表格。其中:

  • \tablefirsthead为表格首页的表头;
  • \tablehead为后续页面的表头内容;
  • \tabletail为除表格尾页外的其它页的表尾;
  • \tablelasttail为最后一页的表尾。
    其他部分如果有看不懂的地方,可以参考一下这篇博客十秒完成你要的latex表格:超强工具分享+表格创建+合并行列+布局调整

2.2.3 简单例子

清楚了基本框架后,我们可以来看看说明书的例子,学会了简单例子之后,我会放上我的一个实例来一起学习一下。



表尾也是同样的道理,这里就不再赘述。

2.2.3 我的一个实例

\begin{center}
\tablefirsthead{%\multicolumn{2}{l}{\textbf{Table 6}}\\\multicolumn{2}{l}{Passengers demand in small case}\\
\hline}
\tablehead{%\hline\multicolumn{2}{l}{\small\sl continued from previous page}\\\hline}
\tabletail{%\hline\multicolumn{2}{r}{\small\sl continued on next page}\\\hline}
\tablelasttail{\hline}\begin{supertabular}{l|l}%表格内容\end{supertabular}
\end{center}

改动部分:
其实可以发现,我们在制作长表格的时候,表头部分是可以让我们随机应变的,其他表尾的部分还是没有动。

如果说后续页面的表头你不想加continued from previous page这句话,那么代码中你只需要像最后一页的表尾那样,写个横线的命令就行。

\tablehead{\hline}

在做这个长表格的过程中,我发现{\tabincell{c}{内容 \\ 内容}}在我的表格中不适用,用了tabincell后有各种各样的问题。但是用不了tabincell,仍然需要换行的操作的话,我想到的办法是直接新建一行。
(但是后来我用那个简单例子试验了一下,tabincell是适用的,大概是因为我那个表格太多页,也太大了)

如果你有其他的问题,可以在评论区底下留言,或者私信我都可以哈

Latex实例[2]:跨页表格制作方法, longtable和 supertabular相关推荐

  1. Microsoft Word文档续表设置方法,word跨页表格拆分方法

    一般如果一个表格跨了两页,一般规范的要求就是要加续表. 文档加入续表方法 下图所示就是表格跨页的情景. 步骤一:选中下面的一行表,右键点击拆分表格就好了. 注:注意跟拆分单元格的区别. 步骤二:在右边 ...

  2. Latex中表格过长如何实现跨页表格——跨页表格宏包longtable的使用?

    先看效果图如下所示: latex中表格跨页,需要用到超级表格,常用的超级表格有 supertabular 和 longtable 宏包.下面介绍longtable 的使用. 直接附上可在texlive ...

  3. Latex基于longtable环境设置跨页表格,且固定表格宽度、支持跨页标题显示

    文章目录 引入 1 完整latex代码 2 效果展示 3 参考文献 引入   最近写毕业大论文,需要用到跨页表格,以下展示成功测试后的结果. 1 完整latex代码   说明:   1)设置表格宽度: ...

  4. word怎么在下一页添加表头_简单!用2个小妙招,让Word跨页表格自动加表头!

    原标题:简单!用2个小妙招,让Word跨页表格自动加表头! 对于一些大型表格,往往会分多页显示,这就导致一个问题出现,当表格延伸到下一页之后,因为没有了表头(标题行),不阅读起来十分不方便. 因此,今 ...

  5. 解决Word跨页表格在WPS中显示不全(转)

    解决Word跨页表格在WPS中显示不全(转) Word跨页表格在WPS中会出现显示不全的现象.根据DOC文档中表格的不同(行列分布规则的表格:行列分布不规则的表格),解决此类问题要分两种情况: 一.处 ...

  6. wps表格粗线和细线区别_学术论文表格制作方法解读

    一.表格的精选 我记得我以前写论文的时候错误认为导师会青睐那种一篇文章中表格越多越好的文章,其实不然.如果用一两句话即可说明的内容就不必列表格:如果采用多组数据表说明同一现象,造成了表格本身的重复,应 ...

  7. 怎么在Word中制作表格?简单的Word表格制作方法分享

    提到表格,大家第一时间想到的就是Excel表格,因为Excel本身就是一个制作表格的工具,但是你知道吗?Word也可以制作表格,而且方法也很简单,那么怎么在Word中制作表格呢?下面小编就为大家分享五 ...

  8. 爱思唯尔Elsevier cas 跨页表格

    解决方案: 表格拆分,即把一个长表格拆分成两个表格,配合使用 \clearpage调整,第二个表格不需要设置\caption和\label.这样就可以简单实现跨页表格哦.下面是示例代码: \begin ...

  9. wps表格粗线和细线区别_wps表格粗线和细线区别_学术论文表格制作方法解读

    一.表格的精选 我记得我以前写论文的时候错误认为导师会青睐那种一篇文章中表格越多越好的文章,其实不然.如果用一两句话即可说明的内容就不必列表格:如果采用多组数据表说明同一现象,造成了表格本身的重复,应 ...

最新文章

  1. 裴礼文数学分析中的典型问题与方法第4章一元函数积分学练习
  2. 第一次团队作业——团队展示
  3. Aliyun OSS Nginx proxy module(阿里云OSS Nginx 签名代理模块)
  4. 如何用C代码生成二维码
  5. 华为云网络覆盖全球2500+站点,打造高品质、低成本接入体验
  6. 【机器学习】梯度下降原理
  7. 小证明题 编译原理--题目原型:
  8. springboot整合H2内存数据库,实现单元测试与数据库无关性
  9. JDK 动态代理与 CGLIB 动态代理,它俩真的不一样
  10. 韩国央行行长李柱烈:加密货币的波动给金融稳定带来风险
  11. Ms sql pivot unpivot
  12. oracle 基本dos命令,Oracle 常用 Dos命令
  13. CentOS随笔 - 4.CentOS7安装MySql 5.5.60(下载 tar 方式安装)
  14. 如果您能天天读上一遍,就能和老外对话了!
  15. 蓝桥杯 模块 低压音频功率放大器LM386
  16. 什么是CC攻击,CC攻击的防御方式有哪些
  17. 软件工程师欲发动DDoS攻击白宫网站 抗议特朗普就任总统
  18. html头像生成器,Personas – 免费的卡通风格头像生成器
  19. 我,晋升为阿里P9,越想越后怕...
  20. 工控安全与传统安全区别

热门文章

  1. 如果生活中有什么结解不开,那就打个蝴蝶结吧
  2. 从软件工程师到IT猎头:说说跳槽那点事
  3. 进入BeOS的花花世界 系列三
  4. Linux下的Curses库的下载与安装
  5. 最受欢迎的Python开源框架有哪些?
  6. 11个你不应该错过的JavaScript库
  7. 【Kaggle】Titanic - Machine Learning from Disaster(二)
  8. 单点登录CAS学习(一):初识单点登录
  9. ASIL-汽车安全完整性等级
  10. 芯盾时代人工智能全渠道业务安全防护方案:提供“业务+平台+建模服务”为核心的多场景反欺诈服务| 百万人学AI评选