如何制作书签中的附录

如何制作书签中的附录

我遇到了一个问题,因为我想让我的附录看起来像部分。

我已经找到了一种针对目录执行此操作的解决方案,即\chapter在附录环境中的命令之前使用此代码:

\makeatletter
\addtocontents{toc}{\let\protect\l@chapter\protect\l@section}
\makeatother

现在,我想让书签“实现”这一点。当我打开 PDF 文件时,附录出现在章节级别,但附录的标题也出现在章节级别。

我所有的书签都来自该hyperref包,所以我想我无法使用该bookmark包来寻找解决方案。

有什么办法可以让它看起来像书签中章节附录的一部分吗?

这是我在 LaTeX 程序中使用的代码:

\begin{appendices}
 \makeatletter
 \addtocontents{toc}{\let\protect\l@chapter\protect\l@section}
 \makeatother
 \chapter{Appendix1}
 \chapter{Appendix2}
 ...
 \end{appendices}

我已经尝试过使用该\section函数代替\chapter,但是它似乎不起作用。

答案1

方法通过\bookmarksetupnext

使用这个包bookmark可以实现以下功能:

\bookmarksetupnext{level=-1}
\addappheadtotoc

覆盖“附录”的书签设置,并将其移至更高级别,即部分级别。然后附录章节将成为“部分”附录的子级。

\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}

该示例基于 Werner 的回答

方法通过\toclevel@<section>

包在宏中hyperref配置书签级别\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}
...

这些宏可以重新定义:

\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}

备注:您可以bookmark同时使用该套件以hyperref获取更快更新的书签和更多功能。

答案2

也许你正在寻找这样的内容:

在此处输入图片描述

\documentclass{report}
\usepackage{appendix,bookmark,xpatch}% http://ctan.org/pkg/{appendix,bookmark,xpatch}
\begin{document}
\tableofcontents
\chapter{A chapter}
\section{A section}
\chapter{Another chapter}
\section{A section}
\begin{appendices}
\makeatletter
\addappheadtotoc
\addtocontents{toc}{\let\protect\l@chapter\protect\l@section}
% \xpatchcmd{<cmd>}{<search>}{<replace>}{<success>}{<failure>}
\xpatchcmd{\Hy@org@chapter}{{toc}{chapter}}{{toc}{section}}{}{}%
\xpatchcmd{\Hy@org@chapter}{{toc}{chapter}}{{toc}{section}}{}{}%
\makeatother
\chapter{Appendix1}
\chapter{Appendix2}
 ...
\end{appendices}
\end{document}

缺失的拼图由xpatch包裹。它用于修补\@chapter存储在\Hy@org@chapter(由hyperref和/或bookmark)。

本质上,该补丁将 ToC 条目从 更改chaptersection

该解决方案适用于hyperrefbookmark

相关内容