如何将Latex文档转换为Microsoft Word 2003?

31

我需要找到一种快速将 LaTeX 文档转换成 Microsoft Word 2003 文档的方法。

目前,我在 Ubuntu 上使用 Kile 编辑 LaTeX 文档。

我可以按照以下方式进行转换:

latex filename.tex
tex4ht filename.tex
mk4ht oolatex filename.tex

那么我必须在OpenOffice中打开生成的filename.odt文档并另存为Word文档。

有没有什么办法可以一步完成这个操作?

我可以编写一个程序来运行前三行,但更感兴趣的是将odt转换为doc而不使用openoffice。

如果我能找到一种直接从filename.tex转换为filename.doc的方法,那就更好了。

8个回答

17

所有声称可以将LaTeX文档转换成某种文字处理格式的程序都会丢失一些原始信息,但显然你愿意接受这种情况。

这里有一个可能适合你目的的技巧:如果latex2rtf转换得足够好(我不知道它与你正在使用的转换器相比如何),只需将其输出从whatever.rtf重命名为whatever.doc,Word就能够正常打开它。现在,如果文档的接收者想要编辑它,她可能会注意到它实际上并不处于通常的Word格式中,但是,嘿,Word总是表现得很奇怪。

另一个技巧是将TeX的输出转换为页面图像,并逐个嵌入到Word文档中——这样可以保留TeX的精确布局,但显然对于除打印之外的任何用途都是无用的(打印质量可能比直接打印原件还要差),但从技术上讲,它是一个Word文档。


1
谢谢,我认为latex2rtf是解决方案。 我发现你可以使用abiword将rtf转换为doc。 转换似乎还不错,所以我想出了以下bash脚本:#!/bin/bash base=${1%%.*} latex2rtf $1 abiword --to=doc $base.rtf rm $base.rtf用法是./tex2doc.sh phdthesisnotes.tex - joshuascotton

3

我没有使用过它,所以无法对其发表评论,但这似乎是您正在寻找的东西:tex2wordLaTeX-to-Word(后者看起来更好)。


啊!支持Word宏中的输入语言。很棒,但如果他需要导出文件而没有Word,这并没有太大帮助。我们拭目以待。 - dmckee --- ex-moderator kitten
我可能忽略了某些东西,但我猜他有Word。只是不知道如何在其中获取.tex文件。你的理解是什么?他想将.tex转换为.doc,但没有Word吗? - Rook
从前,当我没有Word时,我需要发送一个Word格式的文档。你同样也可能是对的,这些工具无论如何都很酷。 - dmckee --- ex-moderator kitten
我有一台备用计算机上安装了 Word,但问题实际上是想在运行 Linux 而非 Windows 的主要计算机上让它正常工作。我将尝试使用 WINE 来实现您的建议。 - joshuascotton
@joshuascotton - 如果你使用了的话,能否让我们知道效果如何?我从未使用过,但第二个链接看起来像是一个成熟的产品,我很想知道它在普通的.tex文档上的表现如何。如果它运行良好,那么就像得到了最好的两个世界。 - Rook
不幸的是,它们都必须在Word中运行,而这正是我想避免的。我目前正在为大学作业使用LaTeX进行写作,但我需要将其转换为Word文档,而不使用Microsoft Word。 - joshuascotton

3

如果您在OpenOffice中打开它(使用OOoLaTex),并另存为.doc文件,会发生什么?

正如Tormod所说,希望可以只需一步:可能像这里一样使用命令行从OOo进行操作。


如果你仔细阅读问题,你会注意到他已经知道这种可能性,但希望在一个步骤中完成该过程。 - Tormod Fjeldskår
好的,我会扩展我的回答。 - boj
1
OOoLatex 只能转换 LaTeX 片段,而不能转换整个文档。 - joshuascotton

2
我正在使用tex4ht生成一个HTML文件。我在Word中打开生成的.html文件,然后保存为.docx文件。效果很好。
基于这个,还有latex2docx项目。

1
针对OSX用户。我发现了这个软件,对我很有用。它是tex4ht的GUI界面。http://www.simpletex4ht.free.fr/ - nilsi

1

我尝试了许多免费的解决方案,但我的LaTeX文档太复杂了。最终,商业可用的GrindEQ表现得最好。如果你只需要做一次,可以使用演示版本。


0
如果您想在一行命令中使用这些命令,可以编写一个单独的Bash脚本:
  • 创建一个名为tex2odt.sh的新文件
  • 写入以下内容:

    #!/bin/bash
    latex $1.tex
    tex4ht $1.tex
    mk4ht oolatex $1.tex
    
  • 使文件可执行:chmod +x tex2odt.sh

  • 使用tex文件的名称(不包括扩展名)调用脚本:tex2odt.sh 要转换的文件
希望这仍然有所帮助。
Namastê。

0

我刚刚安装了GrindEQ,但它没有转换我的任何图像。我怀疑它忽略了\graphicspath。latex2rtf不喜欢\autoref。

oolatex(tex4ht)无法为我转换jpg图像,尽管它们在MikTeX 2.9下的latex和pdflatex下都可以正常工作。其他图像未按\centering要求居中。

oolatex和GrindEQ通过将其嵌入主文本并使用略微不同的字体来平整\marginpar。latex2rtf简单地忽略了\marginpar。

我想对于比较复杂的文档来说,没有完美的工具:(


我刚刚注意到GrindEQ忽略了\begin{description},它通过创建一个带有描述的单独段落并完全忽略所有术语本身来实现。 - mlt

0

Lyx将一些命令行操作隐藏起来,这样你就可以直接导出ODT文件(假设你的路径上安装了tex4ht),这可能会为你节省一些按键。我会很惊讶如果Kile没有类似的输出助手。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接