目录
1.将Excel表格转化为Latex表格——采用Excel2LaTeX
2.How to center the table in 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做表格时的一些笔记整理