如何将.tex转换为.odt?


43

我希望将.tex文件转换为.odt文件。
您能否提出一个好的分步解决方案?


3
@Naruto:我认为这是LaTeX文档。
内森·奥斯曼

4
请注意,对于以下所有答案:您的成功率将取决于所使用的乳胶包装,而数学的排版永远不会像乳胶中那样好。
David LeBauer 2011年

Answers:


20

不管你信不信,有复杂的文档和大量的包括包,我得到更好的结果LaTeX2HTML比LaTeX2RTF,Pandoc或TEX4ht程序。

latex2html texfile.tex -split 0 -no_navigation -info "" -address "" -html_version 4.0,unicode

这将生成一个具有相同texfile名称的文件夹,因此您将能够将生成的HTML转换为ODT:

libreoffice --headless --convert-to odt:"OpenDocument Text Flat XML" texfile/index.html

这将产生一个index.odt文件。看看这个答案,检查如何使用LibreOffice的转换过滤器。

根据评论讨论进行编辑:

尽管上述方法可行,但令我失望的是,我发现生成可靠的文档的唯一方法是使用Adobe Acrobat Pro上LaTeX的PDF输出。


1
对于带有许多其他软件包的复杂文档,LaTeX2HTML文件和命令失败。我试图将论文转换为HTML而不是ODT,以便将其提供给不熟悉LaTeX的人进行评论和更正。即使没有自定义命令,此工具也会失败。出于某种原因,Tikz软件包是主要的元凶之一。
rbaleksandar 2014年

@rbaleksandar没有理想的解决方案,特别是取决于您使用的软件包。我会为您推荐Pandoc。它不会保留所有格式,但是至少可以忽略某些结构并构建最终文档。
vmassuchetto

与分页符不兼容。
Hi-Angel

用这个问题提出的解决方案,文件永远是不完美的。非常令人失望的是,我发现生成完美文档的唯一方法是将LaTeX的PDF输出与Adobe Acrobat Pro一起使用。
vmassuchetto

这个命令给了我废话HTML和废话ODT。Pandoc更好。
jdpipe

25

存储库中有一个工具可将LaTeX更改为openoffice.org的XML格式:tex4ht 安装tex4ht

TeX4ht是一个高度可配置的基于TeX的创作系统,用于产生超文本。它通过样式文件和后处理器与基于TeX的应用程序进行交互,从而将源文件的处理留给本机TeX编译器进行。因此,TeX4ht通常可以处理基于TeX的系统的功能,尤其是LaTeX的功能。

TeX4ht既可以用于使用TeX / LaTeX输入文件编写HTML,也可以用于(通常)仅需很小的修改即可将现有的TeX输入文件(任何格式)转换为HTML。还可以产生其他各种超文本,包括XML,XHTML,MathML和XML的Openoffice.org格式。

命令行...

  1. latex filename.tex
  2. bibtex filename.aux
  3. mk4ht oolatex filename.tex

应该以openoffice.org/libreoffice兼容文件结尾。


2
谢谢。顺便说一句,该软件包的主要维护者似乎已于两年前不幸去世。
Tal Galili

2
该死的可惜:(
Rinzwind

我同意-我希望有一个更活跃的社区承担起继续这项工作的
责任

+1为命令行示例。我没有时间阅读文档,但是上面的示例很容易理解。
antmw1361 2013年

与分页符不兼容。
Hi-Angel

18

软件包pandoc提供了另一个解决方案 安装pandoc

例如,您可以执行以下操作:

pandoc -f latex -t odt -o output.odt input.tex

如果输入文件latin1像我的tex文件一样被编码,则解决方案是:

iconv -f ISO-8859-1 input.tex | pandoc -f latex -t odt -o output.odt

我报告了部分包装说明:

Pandoc是用于从一种标记格式转换为另一种标记格式的Haskell库,也是使用该库的命令行工具。它可以阅读

  • 降价和
  • 的子集
    • reStructuredText,
    • HTML和
    • 胶乳

它可以写

  • 纯文本,
  • 降价,
  • reStructuredText,
  • HTML,-LaTeX,-ConTeXt,
  • RTF,
  • DocBook XML,
  • OpenDocument XML,
  • ODT
  • GNU Texinfo,
  • MediaWiki标记,
  • EPUB,
  • 纺织品,
  • groff手册页,
  • Emacs组织模式,以及
  • 滑或
  • S5 HTML幻灯片放映。

至少1.1.4.0.4版不适用于分页符。
Hi-Angel

这对我来说效果很好...我有数字,标题,但没有书目,还有各种混合的方程式/符号。但是至少我很快得到了一些可以手动清除的文字。
jdpipe

8

可以分两步完成。转到http://latex2rtf.sourceforge.net/,并使用提供的工具首先从Latex转换为RTF,然后再从RTF转换为ODT。

希望能帮助到你。


根本不起作用😂举一个最小的例子,它挂了一分钟,CPU使用率达到100%。我认为它永远也不会结束工作,所以我打断了它。
Hi-Angel

好的,我设法使其正常工作-也许它不能与宏一起很好地工作-并且发现它也不适用于例如目录。所以不,不是一种选择。
Hi-Angel

6

如果您安装了tex4ht 安装tex4ht软件包,该命令oolatex filename会将.tex转换为.odt(有关tex4ht的更多信息,请参见此处)。

另一种方法是使用RTF作为中间格式的latex2rtf 安装latex2rtf软件包。


哦-对不起,还没有看到其他答复……
tohuwawohu 2011年

没问题,因为您添加了指向latex2rtf的链接,而在其他2个答案中都不存在;)
Rinzwind 2011年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.