LaTeX学习 | (16)关于表格的那些事儿

目录

 

1.将Excel表格转化为Latex表格——采用Excel2LaTeX

2.How to center the table in Latex

Latex: 使 tabular 居中

3.latex设置表格每一列的宽度、表格内容居中

综述

方法

效果

注释

4.LaTeX 使用longtable制作(跨页)长表格

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

遇到的问题

arydshln包和longtable包的冲突

longtable 小问题

5.latex表格线的加粗及合并两行 标题换行

说明:


1.将Excel表格转化为Latex表格——采用Excel2LaTeX

原博客地址:https://blog.csdn.net/piaopiaopiaopiaopiao/article/details/17427199

用latex写表格很麻烦,发现可以自动从Excel生成latex表格的软件:Excel2LaTeX; 
另有 exceltex 貌似直接读取excel文件,从而可以动态更新(未测试)  

tex文件,excel表格,及Excel2LaTeX.xla见附件  

1、转换效果  
Excel中的原始表格如下:  
  

Excel2LaTeX支持两种方式的表格,转换结果如下 
不支持字体颜色及对齐方式╭(╯^╰)╮ 
支持黑体及斜体(该示例中未出现)\(^o^)/:  
  



2、下载及使用方法  
下载地址(下载.xla文件): http://www.ctan.org/tex-archive/support/excel2latex/  

使用方法: 双击下载的Excel2LaTeX.xla文件,即可完成Excel插件的安装;(注意移动xla文件后需要重新安装) 
重启Excel,即可在加载项一栏看到下图所示的按钮 

  

选中需要导出的表格,按下“Convert Table to Latex”按钮,弹出对话框如下,之后就可以将表格复制到剪切板了  




3、参考的网址  
最先在此看到Excel2LaTeX: http://blog.modelworks.ch/?p=153  
Excel2LaTeX: http://www.ctan.org/tex-archive/support/excel2latex/  
另一款软件exceltex: http://www.physik.uni-freiburg.de/~doerr/exceltex/index.en.html  

2.How to center the table in Latex

Latex: 使 tabular 居中

解决方法1

{
\centering
\begin{tabular} 
... 
\end{tabular}
} 

解决方法2:

\begin{center}
\begin{tabular}
...
\end{tabular}
\end{center}

3.latex设置表格每一列的宽度、表格内容居中

综述

有时候我们想要设置表格的宽度为确定值。
并且希望表格中的内容 上下左右 居中

方法

开头加入

\usepackage{array}
\newcolumntype{C}[1]{>{\centering}p{#1}}
\setlength{\parindent}{15pt}
\begin{center}
	\begin{tabular}{|m{4cm}<{\centering}|m{4.6cm}<{\centering}|m{2.6cm}<{\centering}|m{4cm}<{\centering}|}
		\hline  % 在表格最上方绘制横线
		Paper & Input & Output & Notes\\
		
		\hline
	\end{tabular}
\end{center}

效果

在这里插入图片描述

注释

m{4cm}:里面的数字用来调整表格长度,m表示居中,p为置顶,b为置底。{4cm}表示横向大小。

 

4.LaTeX 使用longtable制作(跨页)长表格

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

首先在 \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 后面加了\\ 才解决问题。

参考
[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
资源很丰富。

5.latex表格线的加粗及合并两行 标题换行

如何使用Latex制作三线表格?
https://jingyan.baidu.com/article/363872ec096bec6e4ba16f0f.html

\latex 居中与缩进
https://blog.csdn.net/lishoubox/article/details/7295947

转:https://blog.csdn.net/tina_lulu_21/article/details/7689321
Latex中插图中的标题的换行:
如果一副图像的标题(caption)过长,我们一般希望中间加入一个换行,把较长的文字放在标题的第二行。
那么在figure环境中的caption{}中如何断行呢?

此时不再是用\了,而是用\protect\,
例如\caption{short text \protect\ long text} 。

因为\是脆弱的,必须在其前面加上\protect

 

转:https://blog.csdn.net/loveaborn/article/details/9151505

在latex中要设置加粗的表格线,要使用如下包:

\usepackage{booktabs}

如下图中的表格,首行(\toprule[2pt]),中间行(\midrule[1pt])及未尾行(\bottomrule[2pt])加粗:

对于以上表格,合并两行使用

\multirow{2}*{男}

总的代码如下:

  • \ begin{ table}[h]

  • \centering

  • \ begin{tabular}{cc|c|c|c|c}

  • \toprule[ 2pt]

  • & &\textbf{ Min} &\textbf{ Max} &\textbf{M} &\textbf{SD}\\ \midrule[ 1pt]

  • \multirow{ 2}*{男} & 文科 & 1.00 & 5.00 & 2.55 & 1.36 \\

  • & 理科 & 1.00 & 4.00 & 1.86 & 0.95\\

  • \multirow{ 2}*{女} & 文科 & 1.00 & 5.00 & 2.48 & 1.29 \\

  • & 理科 & 1.00 & 5.00 & 2.10 & 1.28\\

  • \bottomrule[ 2pt]

  • \ end{tabular}

  • \caption{各类人群日常微博使用情况描述统计表}

  • \label{tab:wei1}

  • \ end{ table}

 

说明:

这些是自己再用LaTeX做表格时的一些笔记整理

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值