我想将我的论文分为两个主要部分:“理论”和“实践”,这样:
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}