Enumere todos los marcadores agregados con \hypertarget para destinos nombrados

Enumere todos los marcadores agregados con \hypertarget para destinos nombrados

Agrego marcadores a todas las secciones de mi proyecto de la siguiente manera:

\section{Introduction}
\hypertarget{intro}{}

Some text.

Utilizo estos marcadores más adelante en enlaces URL https://example.com/my-document.pdf#intro.

Cada vez que creo una URL que hace referencia a una sección determinada, necesito volver a mi proyecto LaTeX y buscar el nombre del marcador, ya que tengo demasiados. Me gustaría tener una lista de todos mis marcadores (idealmente yuxtapuestos con los nombres de las secciones que marcan).

Sé que la lista de todos los marcadores se puede generar conpdfinfoen la línea de comando. Sin embargo, junto con los marcadores que necesito, LaTeX agrega todo tipo de otros marcadores que son irrelevantes para mí:

   1 [ XYZ   57  785 null      ] "Doc-Start"
   1 [ XYZ   56  823 null      ] "page.1"
   2 [ XYZ   57  711 null      ] "section.1"
   3 [ XYZ   57  751 null      ] "intro"
   5 [ XYZ   57  666 null      ] "lstlisting.-1"
   5 [ XYZ  104  668 null      ] "lstnumber.-1.1"
   6 [ XYZ   57  785 null      ] "subsection.1.1"

Entonces, ¿es posible generar una lista de marcadores creados por mí \hypertarget? Estaré contento con cualquiera: la solución de línea de comandos o una macro de LaTeX.

Respuesta1

Intenté juguetear conmigo mismo y se me ocurrieron algunassuciopero solución funcional gracias aeste hiloyeste hilo. Ojalá pudiera encontrar uno mejor, pero necesito más experiencia. Todavía espero que alguien pueda ofrecer una solución más elegante.

Mi solución sucia:

\documentclass{article}

% Corrects issues with compatibility of XeLaTeX
% and hyperref to create bookmarks
\special{dvipdfmx:config C 0x0010}

\usepackage{hyperref}
\usepackage{newfloat}% for listof
\usepackage{comment}

%\begin{comment}
    % temp code for list of bookmarks
    \DeclareFloatingEnvironment[fileext=bkmrk]{bookmark}
    \makeatletter
    \newcommand*{\currentname}{\@currentlabelname}
    \renewcommand*{\hypertarget}[2]{
      \addcontentsline{bkmrk}{bookmark}{\currentname \qquad | \qquad #1}%
    }
    \makeatother
    \AtBeginDocument{\listofbookmarks}
    % end of temp code
%\end{comment}


\begin{document}


\newpage
\section{First Section}
\hypertarget{first}{}

\newpage
\section{Second Section}
\hypertarget{second}{}

\newpage
\section{Third Section}
\hypertarget{third}{}

\end{document}

Me da esto:

ingrese la descripción de la imagen aquí

Justo antes de compilar mi PDF final, hago lo siguiente:

  • Descomentar el código para la lista de marcadores
  • Compile el PDF para generar la lista de marcadores.
  • Copie los marcadores en Excel (este paso requiere mucha edición de texto)
  • Comente el código para obtener la lista de marcadores.

Luego compilo el PDF para publicarlo.

información relacionada