
다음과 같은 방법으로 프로젝트의 모든 섹션에 북마크를 추가합니다.
\section{Introduction}
\hypertarget{intro}{}
Some text.
나는 나중에 URL 링크에서 이 북마크를 사용합니다 https://example.com/my-document.pdf#intro
.
특정 섹션을 참조하는 URL을 만들 때마다 LaTeX 프로젝트로 돌아가 북마크 이름이 너무 많기 때문에 북마크 이름을 찾아야 합니다. 내 모든 북마크 목록을 갖고 싶습니다(이상적으로는 표시한 섹션 이름과 병치됨).
나는 모든 북마크 목록이 다음을 사용하여 생성될 수 있다는 것을 알고 있습니다.PDF정보명령줄에서. 그러나 필요한 북마크와 함께 LaTeX에서 추가했지만 나와 관련이 없는 모든 종류의 북마크를 얻습니다.
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"
그렇다면 내가 만든 북마크 목록을 생성하는 것이 가능합니까 \hypertarget
? 나는 명령줄 솔루션이나 LaTeX 매크로 중 무엇이든 만족할 것입니다.
답변1
나는 나 자신을 땜질하려고 노력했고 몇 가지를 생각해 냈습니다.더러운하지만 덕분에 작업 솔루션이 스레드그리고이 스레드. 더 나은 것을 생각해낼 수 있으면 좋겠지만 더 많은 경험이 필요합니다. 그래도 누군가가 좀 더 우아한 솔루션을 제공할 수 있기를 바랍니다.
내 더러운 해결책 :
\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}
그것은 나에게 이것을 제공합니다 :
최종 PDF를 컴파일하기 직전에 다음을 수행합니다.
- 북마크 목록 코드의 주석 처리를 해제하세요.
- PDF를 컴파일하여 북마크 목록 생성
- 북마크를 Excel에 복사합니다. (이 단계에는 많은 텍스트 편집이 필요합니다.)
- 북마크 목록 코드를 주석 처리하세요.
그런 다음 출판용 PDF를 편집합니다.