Lista todos os marcadores adicionados com \hypertarget para destinos nomeados

Lista todos os marcadores adicionados com \hypertarget para destinos nomeados

Eu adiciono marcadores a todas as seções do meu projeto da seguinte maneira:

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

Some text.

Eu uso esses marcadores posteriormente em links de URL https://example.com/my-document.pdf#intro.

Cada vez que crio uma URL referente a uma determinada seção, preciso voltar ao meu projeto LaTeX e procurar o nome do favorito, pois tenho muitos deles. Gostaria de ter uma lista de todos os meus favoritos (de preferência justapostos aos nomes das seções que eles marcam).

Eu sei que a lista de todos os favoritos pode ser gerada compdfinfona linha de comando. No entanto, junto com os marcadores de que preciso, recebo todos os tipos de outros marcadores adicionados pelo LaTeX e irrelevantes para mim:

   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"

Então é possível gerar uma lista de favoritos criados por mim com \hypertarget? Ficarei feliz com qualquer uma: a solução de linha de comando ou uma macro LaTeX.

Responder1

Eu tentei mexer em mim mesmo e descobri algunssujomas solução funcional graças aeste tópicoeeste tópico. Eu gostaria de poder encontrar um melhor, mas preciso de mais experiência. Ainda espero que alguém possa oferecer uma solução mais elegante.

Minha solução suja:

\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}

Isso me dá isso:

insira a descrição da imagem aqui

Pouco antes de compilar meu PDF final, faço o seguinte:

  • Remova o comentário do código da lista de favoritos
  • Compile o PDF para gerar a lista de favoritos
  • Copie os favoritos para o Excel (esta etapa requer muita edição de texto)
  • Comente o código da lista de favoritos

Depois compilo o PDF para publicação.

informação relacionada