根据图形标题或标签添加 PDF 书签

根据图形标题或标签添加 PDF 书签

我有几十个图形,我将使用以下代码组合将它们包含在一个 PDF 文件中:

% allpdfs.tex
\documentclass{article}
\usepackage{pdfpages}
\newcommand{\myimagelist}[2]{\includepdf[fitpaper=true]{#2}}

\begin{document}
\input{filelist}
\end{document}

我的文件列表包含 pdf 图形及其位置:

% filelist.tex
\myimagelist{some label}{some path/pdffile1}
\myimagelist{some other label}{some path/pdffile2}
% ....

我的问题是,如何修改第一个代码以根据我包含在其中包含的图形的标题或标签在 PDF 中包含书签?

答案1

选项link为每个包含的页面\includepdf添加一个链接<file name>.<page number>。这可用于指定书签链接的目标:

\documentclass{article}
\usepackage{pdfpages}
\usepackage{hyperref}
\usepackage{bookmark}

\bookmarksetup{
  numbered,
  open,
}

\newcommand*{\myimagelist}[2]{%
  \bookmark[
    dest={#2.1},% see option `linkname' of \includepdf
    keeplevel,
    rellevel=1,
  ]{#1 (\detokenize{#2})}%
  \includepdf[
    fitpaper,
    link,
    % linkname={#2},% see option `dest' of \bookmark
  ]{#2}%
}

\begin{document}

\section{Images}

\myimagelist{some label}{some path/pdffile1}
\myimagelist{some other label}{some path/pdffile2}

\end{document}

在上面的例子中,书签包含标签,文件名附加在括号中。也可以将文件名放在另一个书签中:

\newcommand*{\myimagelist}[2]{%
  \bookmark[
    dest={#2.1},% see option `linkname' of \includepdf
    keeplevel,
    rellevel=1,
  ]{#1}%
  \bookmark[
    dest={#2.1},% see option `linkname' of \includepdf
    keeplevel,
    rellevel=2,
  ]{\detokenize{#2}}%
  \includepdf[
    fitpaper,
    link,
    % linkname={#2},% see option `dest' of \bookmark
  ]{#2}%
}

我已将文件名放入\detokenize以避免麻烦_

相关内容