如何将目录一分为二?

如何将目录一分为二?

我想将我的论文分为两个主要部分:“理论”和“实践”,这样:

1)“理论”和“实践”作为主书签出现在pdf中;

2)比赛表被分成两部分,因此您可以在pdf中看到:

理论

比赛表(理论)

...

实践

比赛表(练习)

使用下面的代码。

    \begin{document}

    \frontmatter
    \title{Title}

    \maketitle

    % Here I want to place "Theory" that appears as a bookmark and it is placed in the pdf
    % before the first toc and embrace all the parts below up except "Practice"

    % Here I want to place the toc of "Theory"

    \mainmatter

    \chapter*{Preface\label{SecPreface}}

    \markboth{Preface}{Preface}

    %TCIMACRO{%
    %\TeXButton{AddToTableOfContents}{\addcontentsline{toc}{chapter}{Preface}}}%
    %BeginExpansion
    \addcontentsline{toc}{chapter}{Preface}%
    %EndExpansion

    \part{Part 1}

    \part{Part 2}

    \part{Part 3}

    %TCIMACRO{%
    %\TeXButton{settings TOC}{\cleardoublepage
    %\phantomsection
    %\addcontentsline{toc}{part}{Bibliography}} }%
    %BeginExpansion
    \cleardoublepage
    \phantomsection
    \addcontentsline{toc}{part}{Bibliography}
    %EndExpansion
    \bibliographystyle{apalike}
    \bibliography{finance}

    %TCIMACRO{%
    %\TeXButton{settings TOC}{\cleardoublepage
    %\phantomsection
    %\addcontentsline{toc}{part}{List of Figures}} }%
    %BeginExpansion
    \cleardoublepage
    \phantomsection
    \addcontentsline{toc}{part}{List of Figures}
    %EndExpansion
    %TCIMACRO{\TeXButton{List of Figures}{\listoffigures}}%
    %BeginExpansion
    \listoffigures%
    %EndExpansion

    \chapter*{Notation}

    \markboth{Notation}{Notation}

    \addcontentsline{toc}{part}{Notation}

    \bookmarksetup{startatroot}

    % Here I want to place "Practice" that appears as a bookmark and it is placed in the pdf
    % before the second toc and embrace all the parts below 

    % Here I want to place the toc of "Practice"

    \part{Case study 1}

    \part{Case study 2}

    \end{document}

答案1

以下是 OP 上一个问题的后续代码,以及\superparts等等。

有一个新的\localtableofcontents必须使用 \superpart.当然还有一些配置还有待\localcontentsname补充。

\documentclass{book}
\usepackage{xcolor}
\usepackage{xparse}
\usepackage{xpatch}

\newcounter{superpart}

\makeatletter
\newcommand{\superpart@@tocname}[1]{%
  \arabic{#1}toc%
}

\xpatchcmd{\@part}{%
  \addcontentsline{toc}{part}{\thepart\hspace{1em}#1}%
}{%
  \addcontentsline{toc}{part}{\thepart\hspace{1em}#1}%
  \addcontentsline{\superpart@@tocname{superpart}}{part}{\thepart\hspace{1em}#1}%
}{\typeout{Patched @part}}{}


\xpatchcmd{\@chapter}{%
  \addcontentsline{toc}{chapter}{% 
    \protect\numberline{\thechapter}#1}%
}{%
  \addcontentsline{toc}{chapter}{% 
    \protect\numberline{\thechapter}#1}%
  \addcontentsline{\superpart@@tocname{superpart}}{chapter}{%
    \protect\numberline{\thechapter}#1}%
}{\typeout{Patched chapter}}{}

\xpatchcmd{\@sect}{%
  \addcontentsline{toc}{#1}{%
    \ifnum #2>\c@secnumdepth \else
    \protect\numberline{\csname the#1\endcsname}%
    \fi
    #7}%
}{%
  \addcontentsline{toc}{#1}{%
    \ifnum #2>\c@secnumdepth \else
    \protect\numberline{\csname the#1\endcsname}%
    \fi
    #7}%
  \addcontentsline{\superpart@@tocname{superpart}}{#1}{%
    \ifnum #2>\c@secnumdepth \else
    \protect\numberline{\csname the#1\endcsname}%
    \fi
    #7}%
}{\typeout{Patched @sect}}{}


% This is the standard latex kernel \@starttoc, it's not necessary if `book.cls` is used, but for `memoir.cls` etc. 
\def\latex@starttoc#1{%
  \begingroup
  \makeatletter
  \@input{\jobname.#1}%
  \if@filesw
  \expandafter\newwrite\csname tf@#1\endcsname
  \immediate\openout \csname tf@#1\endcsname \jobname.#1\relax
  \fi
  \@nobreakfalse
  \endgroup
}



\newcommand{\localtableofcontents}{%
  \chapter*{\contentsname
    \@mkboth{%
      \MakeUppercase\contentsname}{\MakeUppercase\contentsname}}%
  \latex@starttoc{\superpart@@tocname{superpart}}% 
}
\makeatother

\NewDocumentCommand{\superpart}{om}{%
  \cleardoublepage%
  \refstepcounter{superpart}%
  \phantomsection%
  \hypertarget{superpart::\number\value{superpart}}{}%
  \IfValueTF{#1}{%
    \bookmark[startatroot,level=-2,bold,color=red,dest=superpart::\number\value{superpart}]{#1}%
  }{%
    \bookmark[startatroot,level=-2,bold,color=red,dest=superpart::\number\value{superpart}]{#2}%
  }%
}



\usepackage[bookmarksopen=true]{hyperref}
\usepackage{bookmark}


\begin{document}

\superpart{Theory}
\localtableofcontents 
\part{Number One}
\chapter{First chapter}
\part{Number Two}

\chapter{Second chapter}



\superpart{Practice}
\localtableofcontents
\part{Number Three}
\chapter{Three}
\part{Number Four}
\chapter{Four}


\end{document}

在此处输入图片描述

在此处输入图片描述

答案2

以下是两个解决方案:

使用 minitoc 包

\documentclass{book}
\usepackage{minitoc}

\usepackage{blindtext}

\begin{document}‎‎
\doparttoc

\part{Theory}
\renewcommand{\ptctitle}{\contentsname\ (Theory)}
\parttoc
\blinddocument
\blinddocument

\part{Practice}
\renewcommand{\ptctitle}{\contentsname\ (Practice)}
\parttoc

\blinddocument
\blinddocument
\end{document}

使用 titletoc (titlesec) 包 (已更新)

\documentclass{book}

\usepackage{titletoc}
\usepackage{hyperref}

\usepackage{blindtext}
\begin{document}
\tableofcontents


%---------------- Theory part
\part*{Theory}
\addcontentsline{toc}{part}{Theory}
\startcontents
\printcontents{}{-1}{%
       \chapter*{\contentsname\ (Theory)}%
       \markboth{\MakeUppercase{\contentsname\ (Theory)}}%
                {\MakeUppercase{\contentsname\ (Theory)}}}
%----------------

\part{Firstst theory test}
\blinddocument
\blinddocument

\part{Last theory test}
\blinddocument
\blinddocument


%---------------- Practice part
\stopcontents
\part*{Practice}
\addcontentsline{toc}{part}{Practice}
\startcontents
\printcontents{}{-1}{%
       \chapter*{\contentsname\ (Practice)}%
       \markboth{\MakeUppercase{\contentsname\ (Practice)}}%
                {\MakeUppercase{\contentsname\ (Practice)}}}
%---------------- 

\part{Firstst practice test}
\blinddocument
\blinddocument

\part{Last practice test}
\blinddocument
\blinddocument


\stopcontents

\end{document}

全球目录 在此处输入图片描述

理论目录 在此处输入图片描述

相关内容