我有一本书,里面有许多空白的带编号章节标题,我正在用它们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}