当尝试将简单的 LaTeX 文档转换为 LibreOffice/OpenOffice 时,交叉引用和引文不会显示在最终文档中。转换为 (X)HTML 时会显示,但这有其他缺点。如何正确设置转换为 LibreOffice?
我正在使用带有打包的 TeXlive 2012 和 LibreOffice 3.6 的 Ubuntu 12.10。
复制此操作所需的代码(如下所示)可以是下载或者使用 Git 签出. 要编译,请使用make texput.odt
。
texput.tex:
\documentclass{scrartcl}
\pagestyle{empty}
\bibliographystyle{plain}
\begin{document}
\section{First} \label{sec:first}
\cite{test}
\ref{sec:first}
\bibliography{texput}
\end{document}
texput.bib:
@article{test,
author = "Anyone",
title = "Something",
year = 2010,
}
编译命令,根据指示:
latexmk texput.tex
htlatex texput.tex "xhtml,ooffice,bib-" "ooffice/! -cmozhtf" "-coo -cvalidate"
结果输出:
直接编译:
对生成的content.xml
文件(texput.odt
实际上是一个 ZIP 存档)的分析显示了神秘的元素,我不确定它们是否是开放文档规范的一部分……删除开始和结束标记可以修复该问题,至少对于对该部分的引用而言。引用需要进一步修复。(如果我省略编译的开关,<t4htlink>
结果不会改变。)bib-
答案1
tex4ht
配置生成的输出openoffice
需要进行一些后处理,特别是对于文档超链接的正确功能而言。这种后处理由某种xslt
模板完成,称为xtpipes
。您可以在目录中找到这些模板
$texroot/texmf-dist/tex4ht/xtpipes
这些模板的后期处理在文件中配置
$texroot/texmf-dist/tex4ht/base/(unix | win, depending on your system)/tex4ht.env
在部分中<ooxtpipes>
。要执行此部分,您需要将选项传递-cooxtpipes
给t4ht
程序。因此正确的命令行是:
htlatex texput.tex "xhtml,ooffice,bib-" "ooffice/! -cmozhtf" " -cooxtpipes -coo -cvalidate"
为您提供更多信息:
选项"xhtml,ooffice,bib-"
被传递给 latex 编译,传递给负责编码和图像转换等的 "ooffice/! -cmozhtf"
应用程序,并传递给执行后处理的应用程序。tex4ht
" -cooxtpipes -coo -cvalidate"
t4ht
为了让生活更简单,你可以打电话
mk4ht oolatex filename
mk4ht
是具有用于调用命令的常用配置的 perl 脚本,因此您不需要记住那么多可怕的参数。