\tableofcontents 的额外代码(更新)

\tableofcontents 的额外代码(更新)

我希望我的\tableofcontents命令在开头包含这两个命令:\pagestyle{headings}\pdfbookmark[0]{Table of Contents}{contents}

我尝试使用该etoolbox软件包,并得到了类似这样的东西(灵感来自重新定义 \tableofcontents 以在目录后开始新页面):

\gappto\tableofcontents{\pagestyle{headings}\pdfbookmark[0]{Table of Contents}{contents}}

这是我的 MWE:

\documentclass[twoside]{scrbook}

\usepackage{etoolbox}
\usepackage[pdfpagelabels,hyperindex,hyperfigures]{hyperref}
\usepackage{kantlipsum}

\appto\frontmatter{\pagestyle{empty}} % Don't use page numbering in the frontmatter                                        
\appto\mainmatter{\pagestyle{headings}} % Use page numbering in the mainmatter

\gappto\tableofcontents{\pagestyle{headings}\pdfbookmark[0]{Table of Contents}{contents}}

\begin{document}

\frontmatter
    \addchap*{Publications}
    \kant
    \addchap*{Acknowledgments}

    \tableofcontents
    \listoffigures

\mainmatter %Just dummy text to fill the TOC
    \chapter{hola}
    \kant
    \chapter{hola2}
    \kant
    \chapter{hola3}
    \kant
    \chapter{hola4}
    \kant
    \chapter{hola5}
    \kant
    \chapter{hola6}
    \kant
    \chapter{hola7}
    \section{adas}
    \section{adasdas}
    \subsection{dasdsdfasdfasdf}
    \kant
        \chapter{hola2}
    \kant
    \chapter{hola3}
    \kant
    \chapter{hola4}
    \kant
    \chapter{hola5}
    \kant
    \chapter{hola6}
    \kant
    \chapter{hola7}
    \section{adas}
    \section{adasdas}
    \subsection{dasdsdfasdfasdf}
        \chapter{hola}
    \kant
    \chapter{hola2}
    \kant
    \chapter{hola3}
    \kant
    \chapter{hola4}
    \kant
    \chapter{hola5}
    \kant
    \chapter{hola6}
    \kant
    \chapter{hola7}
    \section{adas}
    \section{adasdas}
    \subsection{dasdsdfasdfasdf}
    \kant
        \chapter{hola2}
    \kant
    \chapter{hola3}
    \kant
    \chapter{hola4}
    \kant
    \chapter{hola5}
    \kant
    \chapter{hola6}
    \kant
    \chapter{hola7}
    \section{adas}
    \section{adasdas}
    \subsection{dasdsdfasdfasdf}

\end{document}

如果你运行它,你会注意到以下几件事:

  1. 该命令\pagestyle{headings}似乎在目录中不完全起作用:我确实获得了页码,但我缺少页眉上的标题背面页。

  2. pdf 的目录书签实际上指向背面页面,而不是右页一。

额外奖励\pagestyle{empty}:由于我在 的开头发出了\frontmatter,因此我得到了没有标题或页码的所有页面。但是,由于我使用了几个\addchap*{},因此这两页(毕竟是章节页)确实保留了它们的编号。我一直通过简单地在每个页面的开头键入来处理它\thispagestyle{empty},但我不确定是否有更好的方法来做到这一点。

答案1

\let\TOC\tableofcontents
\renewcommand\tableofcontents{\newpage\pagestyle{headings}\pdfbookmark[0]{Table of Contents}{contents}\TOC}

相关内容