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