还在手写LaTeX表格?你可能需要这款神器

时间:2022-07-24
本文章向大家介绍还在手写LaTeX表格?你可能需要这款神器,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

既然你点进来看了,说明你也遇到了类似的问题,也经历过手写和调试LaTeX表格的痛苦,现在就让我们解决它。

LaTeX是一种排版工具(语言),我们可以通过编写文本文件来实现各种需要格式化的正文、公式、表格甚至是图像,通过LaTeX的工具直接编译生成pdf文件,而不用花过多的时间来调整文章的格式。但缺点是,当我们编写文件比较大时,往往这个编译过程是很费时间的,可能你改完了一个小地方,要等待编译完成才能看到改完的效果,非常不直观。

本文不是LaTeX软文,不打算推销LaTeX,但是用过的人都说好,用过的人也几乎都遇到过标题中的这个问题,有的可能自己采用某种方式解决了,有的可能仍旧处于“改文章->编译->查看结果->改文章->编译->查看结果->改文章 ...”这样的循环中。

我最常用的编写调试LaTeX的工具组合是Sublime+TeXLive+SumatraPDF,支持Vim模式,支持从Pdf文件双击跳转回tex源文件等操作。作为一个经常熬夜加班写论文的人,我也曾经在无数个月黑风高的夜晚,因为调试论文中的LaTex表格而手脚抽筋,难以入睡。

数学公式这么复杂的编辑过程,LaTeX配合Sublime及公式预览编辑器都能做到一边写公式一边预览了。对于表格来说,应该更简单直观才对呀,LaTex有没有原生提供一种方式来快速直观的制作和编辑复杂的表格呢?答案是没有。可能是由于LaTeX太老了,也可能是我见识太少,但是目前为止我还没有发现。

1. 我们对表格的需求

我们在做表格时会有哪些需求呢?

•多排表头•复杂文字断行•多个单元格合并•调整表格中的文字朝向•对表格的各个部分增加颜色以区分•表格中的一部分需要画网格线,其他部分又不想要网格线,而且还想用不同线型。•......

如果要完成一个比较大且复杂的表格,你用原生的LaTeX写一写试试?

如果以前你没有找到解决办法,那么你非常幸运,从看到本文开始就有了。可能有人尝试过一些在线的工具,但是我尝试完以后发现还是这个工具有效,毕竟可以依靠Excel的强大来随心所欲制作表格。

2. Excel的插件“Excel2LaTeX”

在实际工作生活中,我们做表格类型的数据记录时大家最常用的是微软提供的Excel(用WPS和其他工具的朋友就当我没说过)。这类工具提供一种所见即所得的方法来让我们可以直观的编辑和操作表格,能不能开发一种工具可以将Excel的表格直接导出为LaTeX语言呢?有,它就是Excel2LaTeX(下载方式见文末),一个可以将Excel表格转换为LaTeX的插件。

2.1 安装方式

下载安装时要注意,官方说明,Excel2LaTeX只支持Windows Excel200-2016,32bit和64bit的都支持,Mac Excel 2004, 2011和2016。其他版本的Excel可能存在问题,我电脑上使用的是Windows Excel2013和Excel2016,目前均可以使用。下面是安装步骤。

Step 1: 下载方式见文末。下载完成以后得到一个后缀名为.zip的压缩文件:

Step 2: 直接解压此文件,可以看到如下内容:

Step 3: 打开电脑里面的Excel软件,新建一个空白页面。在刚刚解压的文件夹中直接鼠标左键选择Excel2LaTeX.xla,并拖动到Excel的空白页面上即可:

Step 4: 如果Excel弹出如下界面,则点击“启用宏”即可。

然后就安装完成了,在Excel的菜单栏点击“加载项”,如果看到下面的插件名字,就说明安装成功了。

2.2 使用方法

使用方法也非常简单,首先通过Excel创建表格,填充数据,调整格式:

然后鼠标选中要转换的表格内容,点击菜单栏的 加载项->Convert Table to LaTeX:

然后会弹出下列窗口,其内容就是我们需要的LaTeX语句了,可以选择复制到剪贴板或者保存为文件。

2.3 实际效果

上述Demo生成的代码如下。另外,你可能需要如下代码里面所示的几个package,记得添加到你的.tex文件中:

documentclass{article}

usepackage{multirow}
usepackage{booktabs}
usepackage{bigstrut}
usepackage{hyperref}
usepackage[table]{xcolor}

begin{document}

% Table generated by Excel2LaTeX from sheet 'Sheet1'
begin{table}[htbp]
  centering
  caption{Add caption}
    begin{tabular}{|l|r|r|r|c|}
    toprule
    multicolumn{1}{|c|}{multirow{2}[4]{*}{Index}} & multicolumn{2}{c|}{textbf{Class 1}} & multicolumn{2}{c|}{textbf{Class 2}} \
cmidrule{2-5}          & multicolumn{1}{c|}{1} & multicolumn{1}{c|}{2} & multicolumn{1}{c|}{1} & 2 \
    midrule
    A     &       &       & multicolumn{1}{l|}{x1} &  \
cmidrule{1-3}cmidrule{5-5}    B     & multicolumn{1}{l|}{cellcolor[rgb]{ 1,  1,  0} tmp_1} &       & multicolumn{1}{l|}{x2} & multirow{3}[6]{*}{tmp_3} \
cmidrule{1-4}    C     &       & multicolumn{1}{l|}{cellcolor[rgb]{ .557,  .663,  .859} tmp_2} &       &  \
cmidrule{1-4}          &       &       &       &  \
    bottomrule
    end{tabular}%
  label{tab:addlabel}%
end{table}%


end{document}

编译完成的实际效果:

另附一些官方提供的Demo,此插件可以生成多种多样的表格,可谓神器。

3. 获取方式

•1. Github下载地址:https://github.com/krlmlr/Excel2LaTeX