通过命令行将 MS Word .doc 转换为 LaTeX

通过命令行将 MS Word .doc 转换为 LaTeX

有许多使用文本编辑器软件(主要是 Windows 下)进行转换的指南.doc.tex并且这种流行使得搜索基于命令的转换方法变得困难。

我正在寻找一个命令行来将 MS Word 转换为 LaTeX。这将是 Linux 服务器上运行的 PHP 脚本的一部分。我的意思是 PHP 执行的 shell 命令。

答案1

反词将 .doc 文件转换为 .tex 文件,效果相当不错。它不仅会尽力保留内容,还会保留格式。它非常适合您想要进行的批处理。

编辑:有几个人私下问我 Antiword 中的 LaTeX 开关和 Antiword 的最新版本。最新版本确实是 0.37。至于 LaTeX 输出,我想我搞混了一点。我使用 Antiword 进行格式化的 ASCII 输出。我认为它可以进行 PostScript 输出,但不能进行 LaTeX 输出。正如 Jon 所观察到的,您可以使用 pandoc 将格式良好的 ASCII 转换为 LaTeX。但是,威盛(wv 和 wv2)能够输出 LaTeX。需要注意的是,wvWare 已被 AbiWord 取代,但可用于批处理(我不知道 AbiWord 是否可以从命令行使用)。它比 Antiword(自 2004 年以来一直处于休眠状态)还年轻一些(自 2006 年以来一直处于休眠状态)。

最后有一个工具叫卡特多克这对于批处理非常有用,但不会保留格式(但对于提取内容非常有用并且支持 MS Excel 格式)。

答案2

这个答案特定于 OS X......

命令行实用程序textutil

OS X 中有一个名为的命令行实用程序textutil,它可以在常见的文档格式之间进行转换:

Word docx 转 txt

$ textutil -convert txt worddoc.docx

txt 转 Word docx

$ textutil -convert docx mytextdoc.txt

txt 转换为 Word,使用 Times New Roman 12pt

$ textutil -convert docx -font "Times New Roman" -fontsize 12 blah.txt

还适用于 html、rtf、doc、odt 和其他格式……

textutil与 Pandoc结合使用 word2latex 和 latex2word

如果你使用潘多克结合使用,textutil您可以获得不错的 Word 到 LaTeX 和 LaTeX 到 Word 的往返体验。要获得 docx 支持,您需要最新版本的 Pandoc (1.9+)。

word2latex

$ textutil -convert html worddoc.docx -stdout | pandoc -s -f html -t latex -o latexdoc.tex

latex2word

$ pandoc -t docx -f latex -o backtoword.docx latexdoc.tex

答案3

很大程度上取决于 Word 文档格式的复杂程度。我曾经非常成功地rtf2latex2e,可将 RTF 格式的文本转换为 LaTeX。它具有与 RTF 格式匹配的不同级别。我主要使用它的“最小 LaTeX 标记模式”,这对于随后将手动编辑的文档来说是理想的选择(我理解这与您需要的条件不同。)

答案4

一个多平台解决方案正在开发中。Rob Oakes 正在 LyX 中实现此功能。一旦实现,我认为在命令行上使用它将会很简单。但是,(1) 我不确定您是否想为这个转换安装一个相当大的应用程序,并且 (2) 这项工作目前处于 alpha 阶段。Rob 正在寻找测试人员。他主要在寻找 .doc 文件进行测试。他刚刚更新了他的工具支持的功能: http://marc.info/?l=lyx-users&m=133070969217214&w=2 以下是已实现的功能列表(从 URL 复制):

  1. 将 Word 段落和字符样式转换为 LyX 段落和字符样式。对于未定义的字符样式,它会将其条目写入本地布局(包括基本的 LaTeX 命令)。
  2. 导入 Word 表格,包括合并行或合并列的表格。它还将尽力处理表格边框。
  3. 枚举和分项列表。
  4. 从 Word 文档导入图像。(它会跳过嵌入的对象,例如 Excel 中的图表。)
  5. 使用自定义模板,您可以微调导入文档。我为 article.cls 和 book.cls 创建了模板。我可能还会为 memoir.cls 创建一个模板。

相关内容