Method via \bookmarksetupnext
With package bookmark
the following is possible:
\bookmarksetupnext{level=-1}
\addappheadtotoc
overwrites the bookmark setting of "Appendices" and moves it a level higher to part level. Then the appendix chapters become children to the "part" appendices.
\documentclass{report}
\usepackage{appendix}
\usepackage{hyperref}
\usepackage{bookmark}
\begin{document}
\tableofcontents
\chapter{A chapter}
\section{A section}
\chapter{Another chapter}
\section{A section}
\begin{appendices}
\bookmarksetupnext{level=-1}
\addappheadtotoc
\makeatletter
\addtocontents{toc}{\let\protect\l@chapter\protect\l@section}
\makeatother
\chapter{Appendix1}
\chapter{Appendix2}
...
\end{appendices}
\end{document}
The example is based on the example in Werner's answer.
Method via \toclevel@<section>
Package hyperref
configures the bookmark levels in macros \toclevel@chapter
, \toclevel@section
:
...
\def\toclevel@chapter{0}
\def\toclevel@section{1}
\def\toclevel@subsection{2}
\def\toclevel@subsubsection{3}
\def\toclevel@paragraph{4}
\def\toclevel@subparagraph{5}
...
These macros can be redefined:
\begin{appendices}
\makeatletter
\addtocontents{toc}{\let\protect\l@chapter\protect\l@section}
\def\toclevel@chapter{1}
\def\toclevel@section{2}
\def\toclevel@subsection{3}
% ... (add deeper levels if needed)
\makeatother
\chapter{Appendix1}
\chapter{Appendix2}
...
\end{appendices}
Remark: You can use package bookmark
together with hyperref
getting faster updated bookmarks and more features.
After a little tinkering, plus a little inspiration from here and there, I've com up with a solution.
The bookmarksetupnext{level=part}
simply sets the next bookmark to have the part
level. There is no bookmark named "Appendices", and because the next bookmark is Appendix A, this appendix chapter will be changed to have the level of a part. Appendix B is still unchanged, so it remains at the chapter level and hence the bookmark will be a child of Appendix A.
Adding replacing the bookmarksetupnext{level=part}
with \pdfbookmark[-1]{Appendices}{bookmark:appendices}
solves this problem.
To add a table of contents (TOC) entry named "Appendices", a command like \cftaddtitleline{toc}{chapter}{Appendices}{}
can be used. This reuquired the tocloft
package. This command will reference the previous bookmark, so a bookmark must be added at the appropriate place. Adding the the following lines just before \begin{appendices}
will place create a TOC entry which points to the "Appendices" page. For a two-sided document, the \cleardoublepage
command should be used instead. The provided code omits the page number in the TOC entry. I chose to do this because the "Appendices" page is empty. The page number can be manually added in the last, empty brace.
\clearpage
\phantomsection
\pdfbookmark[-1]{Appendices}{bookmark:appendices}
\cftaddtitleline{toc}{chapter}{Appendices}{}
To lower the appendix chapters, sections and subsections by one level, the following code can be added before the first appendix chapter. With the default TOC depth of 2, the appendix subsections will be hidden from the TOC. To display these, increase the TOC depth as per usual by the command \setcounter{tocdepth}{3}
.
\makeatletter
\addtocontents{toc}{
\begingroup
\let\protect\l@chapter\protect\l@section
\let\protect\l@section\protect\l@subsection
\let\protect\l@subsection\protect\l@subsubsection
}
\makeatother
Below is a complete example. I've also added another part-level bookmark titled "Body", just to make the bookmarks in the PDF viewer line up properly. The "Body" bookmark points to the TOC.
\documentclass[11pt]{scrreprt}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[hidelinks]{hyperref}
\usepackage[numbered,open]{bookmark}
\usepackage[page]{appendix}
\usepackage{tocloft}
\usepackage{lipsum}
\renewcommand{\appendixpagename}{Appendices\thispagestyle{empty}}
\setcounter{tocdepth}{3}
\begin{document}
\pdfbookmark[-1]{Body}{bookmark:body}
\tableofcontents
\chapter{First chapter}
\lipsum[1-2]
\section{First section}
\lipsum[3-6]
\subsection{First subsection}
\lipsum[7-10]
\subsection{Second subsection}
\lipsum[11-14]
\section{Second section}
\lipsum[15-18]
\chapter{Second chapter}
\lipsum[19-22]
\clearpage
\phantomsection
\pdfbookmark[-1]{Appendices}{bookmark:appendices}
\cftaddtitleline{toc}{chapter}{Appendices}{}
\begin{appendices}
\makeatletter
\addtocontents{toc}{
\begingroup
\let\protect\l@chapter\protect\l@section
\let\protect\l@section\protect\l@subsection
\let\protect\l@subsection\protect\l@subsubsection
}
\makeatother
\chapter{First appendix}
\lipsum[23-24]
\section{First appendix section}
\lipsum[25-28]
\subsection{First appendix subsection}
\lipsum[29-32]
\subsection{Second appendix subsection}
\lipsum[33-36]
\section{Second appendix section}
\lipsum[37-40]
\chapter{Second appendix}
\lipsum[41-44]
\end{appendices}
\end{document}
The last question, on how to redefine bookmark styles, would be better to have as a separate question.
Best Answer
With package
bookmark
, the level of the next bookmark entry can be changed via\bookmarksetupnext
. In this case, the level of the appendix bookmark should behave as\part
(numeric value -1):Full example: