Listet alle mit \hypertarget hinzugefügten Lesezeichen für benannte Ziele auf

Listet alle mit \hypertarget hinzugefügten Lesezeichen für benannte Ziele auf

Ich füge allen Abschnitten in meinem Projekt folgendermaßen Lesezeichen hinzu:

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

Some text.

Diese Lesezeichen verwende ich später in URL-Links https://example.com/my-document.pdf#intro.

Jedes Mal, wenn ich eine URL erstelle, die auf einen bestimmten Abschnitt verweist, muss ich zu meinem LaTeX-Projekt zurückkehren und den Namen des Lesezeichens nachschlagen, da ich zu viele davon habe. Ich hätte gerne eine Liste aller meiner Lesezeichen (idealerweise neben den Abschnittsnamen, die sie markieren).

Ich weiß, dass die Liste aller Lesezeichen generiert werden kann mitpdfinfoauf der Kommandozeile. Allerdings erhalte ich neben den Lesezeichen, die ich brauche, auch alle möglichen anderen Lesezeichen, die von LaTeX hinzugefügt wurden und für mich irrelevant sind:

   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"

Ist es also möglich, eine Liste der von mir erstellten Lesezeichen zu generieren \hypertarget? Mir reicht alles: die Kommandozeilenlösung oder ein LaTeX-Makro.

Antwort1

Ich habe selbst herumgebastelt und mir einiges ausgedachtschmutzigaber funktionierende Lösung dankdieser ThreadUnddieser Thread. Ich wünschte, ich könnte mir eine bessere ausdenken, aber ich brauche mehr Erfahrung. Hoffe immer noch, dass jemand eine elegantere Lösung anbieten könnte.

Meine schmutzige Lösung:

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

Es gibt mir Folgendes:

Bildbeschreibung hier eingeben

Kurz bevor ich mein endgültiges PDF kompiliere, mache ich Folgendes:

  • Entkommentieren Sie den Code für die Lesezeichenliste
  • Kompilieren Sie das PDF, um die Liste der Lesezeichen zu generieren
  • Kopieren Sie die Lesezeichen in Excel (dieser Schritt erfordert viel Textbearbeitung)
  • Kommentieren Sie den Code für die Lesezeichenliste aus.

Anschließend stelle ich das PDF zur Veröffentlichung zusammen.

verwandte Informationen