Radhakrishnan CV wrote, on 11-05-2011 08:16:
Attached is a newer version of nameref.4ht. In my tests, this version
seems to fix the problem of not only \autoref, but also \nameref which
was also broken. If this version passes your tests, I shall update the
literate sources and nameref.4ht in the SVN.
Look forward to hearing from you.
The following document when compiled with
htlatex test-nameref.tex "html,4"
generates wrong targets (but correct displayed text) for the subsection
and subsubsection references with the updated nameref.4ht. The targets
for the links are correct with
% nameref.4ht 2010-09-04-21:02 %
% Copyright (C) 2005--2010 Eitan M. Gurari %
distributed with MikTeX (but the displayed text is wrong).
% test-nameref.tex
\documentclass{book}
\usepackage{hyperref}
\setcounter{secnumdepth}{4}
\begin{document}
\chapter{Chapter}
\label{chap:chapter}
\section{Section}
\label{sec:section}
\subsection{Subsection}
\label{subsec:section}
\subsubsection{Subsubsection}
\label{subsubsec:section}
\begin{equation}
a\label{eq:a}
\end{equation}
\begin{figure}
\caption{Figure.}
\label{fig:test}
\end{figure}
\chapter{Second Chapter}
\autoref{eq:a}\\
\autoref{fig:test}\\
\autoref{chap:chapter}\\
\autoref{sec:section}\\
\autoref{subsec:section}\\
\autoref{subsubsec:section}\\
Equation~(\ref{eq:a})\\
Figure~\ref{fig:test}\\
Chapter~\ref{chap:chapter}\\
Section~\ref{sec:section}\\
Subsection~\ref{subsec:section}\\
Subsubsection~\ref{subsubsec:section}
\end{document}
I don't know if the fix is easy to make. I have tried to look in the
source files, but sadly, I have a hard time following what is going on.
Best regards,
Martin Heller
P.S.: I've sent this message to the tex4ht mailing list too (through the
gmane nntp interface). I don't know if this e-mail address redirects to
the mailing list too. If so, I apologize for the double posting.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% nameref.4ht 2011-01-30-16:01 %
% Copyright (C) 2005--2009 Eitan M. Gurari %
% 2009--2011 TeX Users Group %
% %
% This work may be distributed and/or modified under the %
% conditions of the LaTeX Project Public License, either %
% version 1.3c of this license or (at your option) any %
% later version. The latest version of this license is %
% in %
% http://www.latex-project.org/lppl.txt %
% and version 1.3c or later is part of all distributions %
% of LaTeX version 2005/12/01 or later. %
% %
% This work has the LPPL maintenance status "maintained".%
% %
% This Current Maintainer of this work %
% is the TeX4ht Project <[email protected]>. %
% %
% If you modify this program your changing its signature %
% with a directive of the following form will be %
% appreciated. %
% \message{signature} %
% %
% [email protected] %
% http://www.tug.org/tex4ht %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\immediate\write-1{version 2011-01-30-16:01}
\let\ltx@label\label
\def\prf:label{{\ifx \NR:Title\:UnDef \else \NR:Title\fi}%
{\ifx \NR:Type\:UnDef \else \NR:Type .1\fi}{}}%
\let\NR:StartSec\:StartSec
\let\NR:no@sect\no@sect
\def\no@sect#1#2#3#4#5#6[#7]#8{\gdef\NR:Title{\a:newlabel{#7}}%
\NR:no@sect{#1}{#2}{#3}{#4}{#5}{#6}[#7]{#8}}
\def\:StartSec#1#2#3{%
\gdef\NR:Title{\a:newlabel{#3}}%
\gdef\NR:Type{#1}%
\gdef\@currentlabelname{#3}%
\NR:StartSec{#1}{#2}{#3}%
}
\pend:defI\begin{\PushMacro\NR:Type \PushMacro\NR:Title}
\pend:defI\end{%
\PopMacro\NR:Type \PopMacro\NR:Title
\global\let\NR:Type\NR:Type
\global\let\NR:Title\NR:Title
}
\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
\def\:tempc#1#2#3#4#5{%
\gdef\NR:Title{\a:newlabel\ssect:ttl}%
\gdef\NR:Type{#1}%
\o:NR@ssect:{#1}{#2}{#3}{#4}{#5}%
\def\@currentlabelname{\ssect:ttl}}
\HLet\NR@ssect\:tempc
\def\:tempc[#1]#2{%
\gdef\NR:Title{\a:newlabel{#1}}%
\o:no@part:[{#1}]{#2}}
\HLet\no@part\:tempc
\def\:tempc#1{%
\gdef\NR:Title{\a:newlabel{#1}}%
\o:no@spart:{#1}}
\HLet\no@spart\:tempc
\def\:tempc[#1]#2{%
\gdef\NR:Title{\a:newlabel{#1}}%
\o:NR@chapter:[#1]{#2}}
\HLet\NR@chapter\:tempc
\def\:tempc#1{%
\gdef\NR:Title{\a:newlabel\sch:ttl}%
\o:NR@schapter:{#1}%
\def\@currentlabelname{\sch:ttl}}
\HLet\NR@schapter\:tempc
% \long\def\:tempc#1[#2]{%
% \gdef\NR:Type{#1}%
% \gdef\NR:Title{\a:newlabel{#2}}%
% \gdef\@currentlabelname{#2}%
% \o:NR@@caption:{#1}[{#2}]%
% }
% \HLet\NR@@caption\:tempc
\let\NR@@caption\@caption
\long\def\@caption#1[#2]{%
\NR@gettitle{#2}%
\NR@@caption{#1}[{#2}]}%
\AtBeginDocument{%
\@ifpackageloaded{listings}{%
\def\:tempc#1{%
\gdef\NR:Title{\a:newlabel{listing}}%
\gdef\NR:Type{lstlisting}%
\o:NROrg@lst@MakeCaption:{#1}%
\gdef\@currentlabelname{listing}}
\HLet\NROrg@lst@MakeCaption\:tempc
}{}%
}
\let\T:ref=\::ref
\def\::ref{\protect\T@ref}
\def\T@ref#1{%
\@safe@activestrue
\let\::ref \T:ref
\expandafter\@setref\csname r@#1\endcsname\@firstoffive{#1}%
\def\::ref{\protect\T@ref}%
\@safe@activesfalse
}
\def\tht:label#1{%
\@bsphack
\begingroup
\@onelevel@sanitize\@currentlabelname
\edef\@currentlabelname{%
\expandafter\strip@period\@currentlabelname.\relax\@@@%
}%
% \typeout{::::::::::::[\@currentlabelname]::::::::::::}%
\protected@write\@auxout{}{%
\string\newlabel{#1}{%
{\string\rEfLiNK{\cur:th\:currentlabel}
{\string\csname\space :autoref\string\endcsname
{\@@currentlabelname}\@currentlabel}%
}%
{\thepage}%
{\a:newlabel\@currentlabelname}%
{\@@currentlabelname.\@currentlabel}{}%
}%
}%
\endgroup
\@esphack
}%
\HLet\label\tht:label
\Configure{newlabel}
{\cur:th \:currentlabel}
{\string\csname\space%\string%\string\space
:autoref\string\endcsname {\@@currentlabelname}#1}
\ifx \@@currentlabelname\:UnDef
\let\@@currentlabelname\empty
\fi
\append:defI\refstepcounter{\def\@@currentlabelname{#1}}
\pend:def\eqnarray{\edef\@@currentlabelname{equation}}
\pend:def\equation{\edef\@@currentlabelname{equation}}
\pend:defI\section{\edef\@@currentlabelname{section}}
\pend:defI\subsection{\edef\@@currentlabelname{section}}
\pend:defI\subsubsection{\edef\@@currentlabelname{section}}
\ifx \figure\:UnDef \else
\pend:def\figure{\edef\@@currentlabelname{figure}}
\expandafter\pend:def\csname
figure*\endcsname{\edef\@@currentlabelname{figure}}
\fi
\ifx \table\:UnDef \else
\pend:def\table{\edef\@@currentlabelname{table}}
\expandafter\pend:def\csname
table*\endcsname{\edef\@@currentlabelname{table}}
\fi
\pend:defII\:thm{\edef\@@currentlabelname{##1}}
\pend:defIII\@setref{\edef\RefArg{##3}}
\append:defIII\@setref{\let\:autoref\:gobble}
\let\:autoref\:gobble
\Hinput{nameref}
\endinput
\documentclass{book}
\usepackage{hyperref}
\setcounter{secnumdepth}{4}
\begin{document}
\chapter{Chapter}
\label{chap:chapter}
\section{Section}
\label{sec:section}
\subsection{Subsection}
\label{subsec:section}
\subsubsection{Subsubsection}
\label{subsubsec:section}
\begin{equation}
a\label{eq:a}
\end{equation}
\begin{figure}
\caption{Figure.}
\label{fig:test}
\end{figure}
\chapter{Second Chapter}
Equation~\autoref{eq:a}\\
Figure~\autoref{fig:test}\\
Chapter~\autoref{chap:chapter}\\
Section~\autoref{sec:section}\\
Subsection~\autoref{subsec:section}\\
Subsubsection~\autoref{subsubsec:section}\\
\noindent
Equation~(\ref{eq:a})\\
Figure~\ref{fig:test}\\
Chapter~\ref{chap:chapter}\\
Section~\ref{sec:section}\\
Subsection~\ref{subsec:section}\\
Subsubsection~\ref{subsubsec:section}
\end{document}