htlatex 转换后,交叉引用和引文不会显示在 LibreOffice 中

htlatex 转换后,交叉引用和引文不会显示在 LibreOffice 中

当尝试将简单的 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"

结果输出:

.tex -> .odt -> .pdf -> .png

直接编译:

.tex -> .pdf -> .png

对生成的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>。要执行此部分,您需要将选项传递-cooxtpipest4ht程序。因此正确的命令行是:

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 脚本,因此您不需要记住那么多可怕的参数。

相关内容