如何管理 hyperref 生成的 PDF 书签的格式?

如何管理 hyperref 生成的 PDF 书签的格式?

我有一本书,里面有许多空白的带编号章节标题,我正在用它们hyperref在我的 PDF 索引中生成书签。我希望这些书签包含“章节”一词以及编号。请考虑以下示例:

\documentclass[a4paper, oneside, final, fontsize=12]{report}

\usepackage[bookmarks=true,colorlinks=true,linkcolor=black]{hyperref} % appearance of links

% toc and index formatting
\usepackage{titletoc}
\titlecontents{chapter}[0pt]
        {}
        {\chaptername\ \thecontentslabel\quad} % Numbered format
        {} % Numberless format
        {}
\hypersetup{bookmarksnumbered}

\begin{document}

\vbox{\tableofcontents}

\chapter{}

\chapter{}

\end{document}

我想要生成的 PDF 索引将包含:

第 1 2 章

第 2 3

上述代码片段产生的结果如下:

1 2

2 3

我正在考虑类似的事情titletoc,但实际上任何解决方案都很棒!

答案1

为了在章节号前偷偷添加一些内容,您可以更新\Hy@writebookmark其第二个参数的处理方式。第二个参数是写入目录的部分,在这种情况下,它将仅\chapter{}\numberline{<chapnum>}

在此处输入图片描述

\documentclass{report}

\usepackage[bookmarks=true]{hyperref}

\hypersetup{bookmarksnumbered}

\begin{document}

\tableofcontents

\makeatletter
\let\oldHy@writebookmark\Hy@writebookmark
\renewcommand{\Hy@writebookmark}[2]{%
  \oldHy@writebookmark{#1}{Chapter #2}%
}
\makeatother

\chapter{}

\chapter{}

\end{document}

另一种方法可能是区分此更改是否与 PDF 设置特别相关。因此,我们可以根据以下方式chapter将计数器表示(由给出的)更改为条件:\thechapter\texorpdfstring

\renewcommand{\thechapter}{\texorpdfstring{}{Chapter }\arabic{chapter}}

上述内容应代替上面的\makeatletter...\makeatother结构。

上述解决方案也应在

\usepackage[numbered]{bookmark}

相关内容