在 TL 2013 中使用 hyperref 时,使用 \label 会导致 htlatex 出错

在 TL 2013 中使用 hyperref 时,使用 \label 会导致 htlatex 出错

在 TL 2013 中,新安装。添加\label以下内容会导致 htlatex 中出现错误

\documentclass[12pt]{article}%
\usepackage{hyperref}
\begin{document}
\begin{equation}  \label{eq1}
   x=y
\end{equation}
\end{document}

编译

htlatex note_on_lecture_2_21_2013.tex

(./note_on_lecture_2_21_2013.aux)
! Undefined control sequence.
\a:newlabel ...utoref\string \endcsname {\NR:Type 
                                                  }#1}
l.4 \begin{equation}  \label{eq1}

? 

删除hyperref会导致错误消失。保留 hyperref 也会使\label错误消失。

添加已发布的补丁这里没有帮助:

\documentclass[12pt]{article}%
\usepackage{hyperref}

\makeatletter
\catcode`\:=11 %
\AtBeginDocument{%
  \@ifpackageloaded{tex4ht}{%
    \def\no@sect#1#2#3#4#5#6[#7]#8{\gdef\NR:Title{\a:newlabel{#7}}%
        \gdef\NR:Type{#1}%
        \NR:no@sect{#1}{#2}{#3}{#4}{#5}{#6}[{#7}]{#8}%
    }
    \def\:tempc#1#2#3#4#5#6[#7]#8{%
       \gdef\NR:Title{\a:newlabel{#7}}%
       \gdef\NR:Type{#1}%
       \o:NR@sect:{#1}{#2}{#3}{#4}{#5}{#6}[{#7}]{#8}}
    \HLet\NR@sect\:tempc
  }{}%
}%
\@makeother\:
\makeatother

\begin{document}
\begin{equation}  \label{eq1}
x=y
\end{equation}
\end{document}

以相同的方式编译,会出现相同的错误。

(/usr/local/texlive/2013/texmf-dist/tex/generic/tex4ht/html4-math.4ht))
(./note_on_lecture_2_21_2013.aux)
! Undefined control sequence.
\a:newlabel ...utoref\string \endcsname {\NR:Type 
                                                  }#1}
l.23 \begin{equation}  \label{eq1}

?  

使用

>latex -v
pdfTeX 3.1415926-2.5-1.40.14 (TeX Live 2013)
kpathsea version 6.1.1

在 Linux mint 15 上。

答案1

它看起来像一个应该报告给 tex4ht 列表的错误,但这是解决此情况的方法:

\documentclass[12pt]{article}%
\usepackage{hyperref}
\expandafter\let\csname NR:Type\endcsname\relax
\begin{document}
\begin{equation}  \label{eq1}
   x=y
\end{equation}
\end{document}

相关内容