
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:
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.