在准备文档时,手动修改 LaTeX 表格是一件不太好玩的事情。当然,有不少工具承诺可以简化这一过程。事实上,我已经记不清所有可用的工具了,我想把你的宝贵经验写成一篇大文章。其中一些工具在操作 LaTeX 表格的工具(HTML 到 LaTeX),但我觉得还有很多。
我建议有人用字母列表开始概述(以便我可以接受这个答案并且它保持在顶部),并且每个人都用“社区维基”条目回复,每个工具一个回复,并将该工具插入列表中。
就我个人而言,我使用 Excel2LaTeX,但我不喜欢必须启动 Windows 才能生成 LaTeX 代码。我正在考虑使用该xlrd
库将其重写为独立的 Python 工具,但我不太愿意重新发明轮子。
答案1
通常,我会有这样的用例:将给定的数据表转换为“合适的” LaTeX 表。
通常,我的数据是数字类型,需要数字格式化,可能需要在小数点对齐,并且在大多数情况下,它需要基本的后处理(如商、差、梯度)。
由于我经常需要这样的东西,我编写了一些生成 .tex 文件的 C++ 脚本。它很有用 - 但我很早就意识到它是不够的;它不够灵活,而且 - 就像任何外部工具一样 - 由于涉及许多工具而产生了不必要的复杂性。
我的解决方案是 LaTeX 包pgfplotstable. 这是一个 LaTeX 表格发电机,即它通过一组可配置的规则明确地将输入数据转换为类似于的东西\begin{tabular}....\end{tabular}
。
免责声明:我编写了该包。
其特点包括:
- 数据+格式分离
- 以外部数据文件(带有可自定义分隔符的 CSV)或内联表(文件内部
.tex
)形式的数据 - 中心格式定义(例如在序言中或以样式形式)
- 充分发挥 LaTeX 的强大功能来格式化数字
- 也支持简单的文本列
- 简单支持交替行颜色(
colortbl
) - 简单支持标准 LaTeX 表格包(
booktabs
,,,,,... )longtable
colortbl
multirow
\multicolumn
pgf
可以使用强大的数学引擎生成包含后处理数据的全新列- 可以将单列输出转换为双列输出
- 完全用 TeX 编写(不需要外部工具)
- 高度可定制
- 有一个手动的并给出大量的例子。
您可能需要检查上面提到的链接及其示例,看看它是否符合您的需要。
答案2
我本来不愿意发布这个不起眼的工具,但还是把它发布出来了。
excel2data工具
excel2datatool
是我编写的 Java 应用程序,用于帮助我完成个人项目。由于它对我很有用,而且我相信它对于其他用途来说足够通用,所以我决定将其公开。存储库托管在GitHub。
整个想法是读取 Microsoft Excel 格式并生成.csv
++ .tex
。datatool
有些人可能会认为这个应用程序基本上是一个 CSV 转换器。好吧,它是,但由于我必须用 编写一个补充.tex
文件\DTLloaddb
,所以我决定自动执行这些步骤。
该应用程序不依赖于 Microsoft Excel。它支持这两种格式,xls
并且xlsx
开箱即用。使用起来非常简单,在 Windows 和 Mac 中双击excel2datatool.jar
即可,java -jar excel2datatool
在 Linux 中运行即可。代码符合 Java 5、6、7 和 OpenJDK 6 标准。
优点
- 不需要 Microsoft Excel 或其他办公工具。
- 它支持开箱即用的两种格式
xls
。xlsx
- 可在所有主流操作系统上运行。
- LaTeX 文件生成是可选的,因此您可以将其用作普通 CSV 转换器。
缺点
- 我编写了该应用程序。
- 由于它不依赖于外部应用程序,因此有效载荷相当大(9.5Mb)。
- LaTeX 文件将包含最基本的
datatool
用法,\DTLloaddb
没有高级命令。 - 没有命令行界面。
- 有些人可能不喜欢拖放样式。
- 该应用程序会尽力解析 Excel 文件,但可能有一些更复杂的文件无法正确转换。
答案3
Excel 转 LaTeX
Excel 插件,可将电子表格的各个部分转换为等效的 LaTeX 表。
自由的。
加拿大运输安全管理局:http://www.ctan.org/tex-archive/support/excel2latex/
来源:https://github.com/krlmlr/Excel2LaTeX
优点
- 支持大多数 Excel 格式。
- 粗体和斜体(如果应用于整个单元格)
- 左对齐、右对齐、居中对齐和一般对齐(按单元格或按列)
- 垂直和水平边框(每个单元格或每列、单或双)
- 字体颜色(使用
xcolor
包) - 填充颜色(使用
colortbl
包) - 旋转(使用
rotating
包) multirow
合并单元格(如果需要,使用包)- 可以将
\
、$
、_
、^
、%
、&
和转换#
为适当的宏,或将其保留在原处 - 支持
booktabs
包 - 在不可用时使用
bigstrut
包booktabs
- 可以
tabular
用table
环境模板包围环境 - 将输出复制到剪贴板或导出到
.tex
文件以供包含使用\include
- 将表格规范保存到 Excel 工作表,然后一次性导出所有表格
- 可配置:只需单击一次即可重复转换相同范围
缺点
- 需要 Windows 或 OS X 和 Excel 进行转换
答案4
莱克斯
莱克斯有一个相对不错的表格编辑器。通过选择查看->查看源代码,可以直接看到生成的 LaTeX 代码并轻松复制粘贴(并且学习) 即可。此外,还可以轻松地通过 LaTeX 排版结果,以了解表格的实际外观。其他好处包括内置对booktabs
和 的支持longtable
。
生成的 LaTeX 源文件的直接表示帮助我真正了解了 LaTeX 表格的精髓。如今,我已经熟练掌握了 LyX,但很少使用 LyX 来做这个。
您甚至可以按照以下步骤将从 Excel 复制的表格粘贴到 LyX 中指示:
- 在 LyX 中,插入一个与 Excel 中尺寸相同的表格。
- 将鼠标光标放在表格左上角的单元格中。
- 从 LyX 的菜单中选择
Edit → Paste Special → Plain Text, Join Lines
。