从使用 autoref/cleveref 的文档生成 HTML

从使用 autoref/cleveref 的文档生成 HTML

我有一个使用 hyperref 和 natbib 编写的现有文档,并尝试在已构建的 PDF 旁边生成一个网站。该文档是使用 autoref 引用和 natbib 作者年份引文编写的。

我正在使用 hevea 生成 HTML 版本,但在交叉引用方面遇到了问题。

如果我使用 hyperref,hevea 会遇到这些错误,并且内联引用和参考文献显示为 ??:

./text.aux:14: Giving up command: \addtokens
./text.aux:4: Giving up command: \AtBeginDocument
./text.aux:4: Giving up command: \HyperFirstAtBeginDocument
./text.tex:15: Giving up command: \input
./text.tex:15: Giving up command: \@readaux
./text.tex:15: Warning: Failure while reading .aux, reading .haux

(请注意,如果我使用hevea -fixbibhva制作.haux,natbib 将以其他方式失败,所以我想坚持使用该.aux文件。)

如果我使用 cleveref 而不是 hyperref,引用可以正常工作,但交叉引用仍然有 ??,其中应该生成“Figure”、“Section”等字词。

无论哪种情况,PDF 都可以编译成功。

我把我的文档精简到最精简的部分,如下所示,其中包含 Makefile、参考书目和其他资产这个要点。

\documentclass[english]{article}
\usepackage{hevea}
\usepackage{graphicx}
\usepackage[english]{babel}

%use one or the other of these
%\usepackage{hyperref}
%\newcommand{\Xref}[1]{\autoref{#1}}
\usepackage{cleveref}
\newcommand{\Xref}[1]{\Cref{#1}}

\usepackage[authoryear]{natbib}
\usepackage{trouble}

\begin{document}

\section{Introduction}\label{sec:intro}
This document has citations \cite{Ilg:2010vn}, using authoryear style
(\cite{Wertheimer:1912aa}, \cite{Wertheimer:2012aa};
\cite{Steinman:2000ap}). It should also have figure graphics and
internal references using cleveref or hyperref, such as the imminent reference
to \Xref{sec:graphics}.

\section{Section 2}\label{sec:graphics}

\begin{figure}
\includegraphics[height=2in,width=5in]{demo_carenv}
\caption{\label{fig:label} This is a figure, with a label.}
\end{figure}

\Xref{fig:label} has a picture in it, as was described in
\Xref{sec:intro} \cite{De-Valois:1991jt,Ramachandran:1990aa}.

\bibliographystyle{plain}
\bibliography{bib}

\end{document}

答案1

我发现您的文档存在一些小问题,经过一些小修复后,它可以用 pdflatex 和 tex4ht 编译:

%use one or the other of these
\usepackage{hyperref}
\newcommand{\Xref}[1]{\autoref{#1}}
%\usepackage{cleveref}

\autoref似乎效果更好tex4ht

\DeclareGraphicsExtensions{.png,.jpg,}

将其添加到序言中,这样可以直接包含pngjpg图像tex4ht

\bibliographystyle{plainnat}
\bibliography{bib}

您想要作者年份书目,但您使用的plain样式是数字。将其替换为plainnat

编译后的结果

htlatex sample.tex

在此处输入图片描述

相关内容