问题描述
我希望将.tex文件转换为.odt文件。你能建议一个好的step-by-step解决方案吗?
最佳解决方法
信不信由你,复杂的文档和包含的大量软件包,使用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
文件。看看this answer,看看如何使用LibreOffice的转换过滤器。
从评论讨论编辑:
虽然上面的方法有效,但令人非常失望的是,我发现生成一个完全可靠的文档的唯一方法是在Adobe Acrobat Pro上使用LaTeX的PDF输出。
次佳解决方法
存储库中有一个工具可将LaTeX更改为openoffice.org的XML格式:tex4ht
TeX4ht is a highly configurable TeX-based authoring system for producing hypertext. It interacts with TeX-based applications through style files and postprocessors, leaving the processing of the source files to the native TeX compiler. Consequently, TeX4ht can handle the features of TeX-based systems in general, and of LaTeX in particular.
TeX4ht can be used both for authoring HTML using TeX/LaTeX input files, or for converting existing TeX input files (in any format) into HTML, with (usually) only minor modifications. Other varieties of hypertext can also be produced, including XML, XHTML, MathML and the Openoffice.org format of XML.
命令行…
-
latex filename.tex
-
bibtex filename.aux
-
mk4ht oolatex filename.tex
最终应该与openoffice.org/libreoffice兼容的文件。
第三种解决方法
另一种解决方案由包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 is a Haskell library for converting from one markup format to another, and a command-line tool that uses this library. It can read
- markdown and
- subsets of
- reStructuredText,
- HTML, and
- LaTeX
and it can write
- plain text,
- markdown,
- reStructuredText,
- HTML, -LaTeX, -ConTeXt,
- RTF,
- DocBook XML,
- OpenDocument XML,
- ODT,
- GNU Texinfo,
- MediaWiki markup,
- EPUB,
- Textile,
- groff man pages,
- Emacs Org-mode, and
- Slidy or
- S5 HTML slide shows.
第四种方法
它可以分两步完成。转到http://latex2rtf.sourceforge.net/并使用提供的工具首先从Latex转换为RTF,然后从RTF转换为ODT。
希望能帮助到你。
第五种方法
如果安装了tex4ht软件包,则命令oolatex filename
将.tex转换为.odt(有关tex4ht的更多信息,请参阅here)。
另一种方法是latex2rtf包,使用RTF作为中间格式。