文章目录
- 前言
- 如何制作长表格(超过一页)
- 遇到的问题
- arydshln包和longtable包的冲突
- longtable 小问题
- 小结
- 参考
前言
这两天学习不是很连贯,一些生活琐事拖慢了学习的节奏,接下来得加把劲了。。。
本文主要介绍我在制作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}
对应的虚线指令是:hdashlinenoalign{vskip 2mm}
就能画出很好看的虚线。
这个在begin{table} 环境下是兼容的,没问题的。
但是!
当我把table换成longtable的时候,一切都变了,疯狂报错: Undefined control sequence. ^^Itoprule
我当时研究了很久,各种查资料,但是都不知道为什么会得到这样的报错信息,且语焉不详,也不知道怎么来的(没有任何有关包冲突的提示)。
解决过程:
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
资源很丰富。
最后
以上就是坚强雪碧最近收集整理的关于LaTeX 制作(跨页)长表格的全部内容,更多相关LaTeX内容请搜索靠谱客的其他文章。
发表评论 取消回复