当与例如类appendix
一起使用包时,在目录中使用章节样式的附录条目和书签。scrbook
\addappheadtotoc
我该如何改变这种情况,以便附录条目在目录和书签中都提升到部分级别?
这是一个最小的工作示例:
\RequirePackage[l2tabu,orthodox]{nag}
\documentclass[a4paper,11pt]{scrbook}
\usepackage[toc,title,page]{appendix}
\usepackage{bookmark,hyperref}
\begin{document}
\frontmatter%
\tableofcontents%
\mainmatter%
\part{p}
\chapter{c}
\section{s}
\part{p}
\chapter{c}
\section{s}
\appendices%
\chapter{c}
\section{s}
\backmatter%
\end{document}
答案1
尝试一下 MWE 的这个修订版本。
% appintocprob.tex SE 577653
\RequirePackage[l2tabu,orthodox]{nag}
\documentclass[a4paper,11pt]{scrbook}
\usepackage[toc,title,page]{appendix}
%\providecommand{\addappheadtotoc}{% no change
\renewcommand{\addappheadtotoc}{% new simple version
\phantomsection
\addcontentsline{toc}{part}{\appendixtocname}%
}
\usepackage{bookmark,hyperref}
\begin{document}
\frontmatter%
\tableofcontents%
\mainmatter%
\part{p}
\chapter{c}
\section{s}
\part{p}
\chapter{c}
\section{s}
\appendices%
\chapter{c}
\section{s}
\backmatter%
\end{document}
注意 的重新定义\addappheadtotoc
。这是一个非常简单的重新定义,我使用part
代替chapter
。 的原始定义\addappheadttotoc
要复杂得多,因为它涉及许多潜在情况,因此此重新定义实际上仅适用于您的使用。
答案2
使用 KOMA-Script 类,scrbook
您不需要包appendix
。您可以使用
\appendix
\addpart{\appendixname}
在文档中。
或者你可以\appendixmore
在序言中定义:
\documentclass{scrbook}% paper=a4 and fontsize=11pt are default
\usepackage{bookmark,hyperref}
\newcommand*{\appendixmore}{\addpart{\appendixname}}% <- added
\begin{document}
\frontmatter
\tableofcontents
\mainmatter
\part{p}
\chapter{c}
\section{s}
\part{p}
\chapter{c}
\section{s}
\appendix% <- changed
\chapter{c}
\section{s}
\end{document}
或者你可以重新定义\appendix
:
\documentclass{scrbook}% paper=a4 and fontsize=11pt are default
\usepackage{bookmark,hyperref}
\newcommand*{\originalappendix}{}
\let\originalappendix\appendix
\renewcommand*{\appendix}{\originalappendix\addpart{\appendixname}}
\begin{document}
\frontmatter
\tableofcontents
\mainmatter
\part{p}
\chapter{c}
\section{s}
\part{p}
\chapter{c}
\section{s}
\appendix% <- changed
\chapter{c}
\section{s}
\end{document}