LaTeX 制作(跨页)长表格

前言

这两天学习不是很连贯,一些生活琐事拖慢了学习的节奏,接下来得加把劲了。。。

本文主要介绍我在制作Latex长表格遇到了一些神奇的问题(确实神奇,尤其是package之间的冲突,我是第一次碰到)。

如何制作长表格(超过一页)

首先在 \begin{document} 前添加:

%for long table
\usepackage{longtable}

%for table toprule line
\usepackage{booktabs}

备注: longtable 这个包是用来做长表格的,booktabs呢,则是提供了\toprule,\midrule 这样用来画表格横线的指令(感觉比\hline好用一点)。

然后在正文制作表格:

\begin{center}
\begin{longtable}{ccc}
	\caption{xxx}
	\label{tab:xxx} \\
	\toprule
	Name & Year & Targeted Language\\
	\midrule
	JAFF \cite{arcuri_automation_2008} & 2008/2011 & C \\
	Genprog \cite{le_goues_genprog:_2011} & 2009/2011 & C \\
	AutoFix-E \cite{wei_automated_2010} & 2010 & Eiffel \\
	%		3个
	
    ... (下面还要写很多行这样的数据,这里就不列出来了。肯定是超过一页A4的)
	\bottomrule
\end{longtable}
\end{center}

备注:

  • \begin{center} 是为了让整个表格居中;
  • \begin{longtable}{ccc} 是提供longtable的环境,在这里面写表格数据,可以制作出超过一页的表格;ccc是三列数据全部居中;
  • \caption,\label 就是标题,和标签,标签是方便文内引用;
  • \toprule,\midrule,\bottomrule 是画表格横线的

遇到的问题

arydshln包和longtable包的冲突

我之前想往表格加入虚线(dotted line),所以引入了arydshln这个包,即

%for table dotted line
%\usepackage{arydshln}

对应的虚线指令是:\hdashline\noalign{\vskip 2mm} 就能画出很好看的虚线。

这个在\begin{table} 环境下是兼容的,没问题的。

但是!
当我把table换成longtable的时候,一切都变了,疯狂报错: Undefined control sequence. ^^I\toprule

我当时研究了很久,各种查资料,但是都不知道为什么会得到这样的报错信息,且语焉不详,也不知道怎么来的(没有任何有关包冲突的提示)。

解决过程:
1)去网上找longtable的各种例子;
2)新建一个latex文档,把这些例子放进去,发现可以正确编译不报错;
3)然后把这些例子放进我的问题文章中,发现竟然报错了;
4)这时候开始思考,应该是我的包引用有问题。所以在我把%\usepackage{arydshln} 注释掉之后,编译通过,再无报错。

故解决。

小结:
没想到LaTex里面也会有这种包之间的冲突,而且是毫无征兆的。我之前看到longtable对booktabs的支持很好(所以可以用\toprule,兼容这样的指令),但是真的不知道会和其他包有冲突,而且错误提示完全没有指向根本原因。当时我还以为是TeXStudio的问题,,,也都去网上搜索了答案;后来以为是longtabs包的问题,还在miktex console上尝试卸载,但是没找到booktabs,后来才知道这个包在tools这个大包里面(我进行了重装,也没用);后来还尝试手动安装longtable这个包;但都不对。最后还是通过实践各种尝试得到问题的答案。

longtable 小问题

之前我在table环境里面,写标题\caption \label 这些是不需要在后面加\\的,但是这次没加,发现TeXstudio的编译过程就卡住了。没报错,就是卡住了一直没结果。

后来往 \label 后面加了\\ 才解决问题。

小结

本来昨天就想写的,还是耽误了。sorry

2019年9月1日22:33:41

参考

[1] LaTeX使用笔记:长表格longtable(附实例) sparkandshine.net/latex-use-notes-longtable-with-examples/
百度搜索第一名,还是比较详细的

[2] A longtable example https://www.overleaf.com/latex/examples/a-longtable-example/xxwzfxkxxjmc
overleaf提供的一个示例,可以参考。

[3] Multi-page tables using \longtable https://texblog.org/2011/05/15/multi-page-tables-using-longtable/
这里讲的也挺详细的,说了下:
在这里插入图片描述

[4] How to use longtable in latex? https://tex.stackexchange.com/questions/469892/how-to-use-longtable-in-latex
资源很丰富。

  • 35
    点赞
  • 114
    收藏
    觉得还不错? 一键收藏
  • 13
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值