我有一个主文档,其中包含一个次要文档目录。我使用上半部分中给出的示例这个答案。
我的辅助目录不使用章节编号。我猜想这是因为我还没有定义必要的位toca
,但我不确定这些位是什么。
如何为我的二级目录启用章节编号?
这是一个最小的、可工作的例子:
\documentclass{report}
\usepackage{tocloft}
\makeatletter
\newcommand\tableofcontentsA{%
\@starttoc{toca}%
}
\makeatother
\begin{document}
\tableofcontents
\section{Main introduction}
\section{Example Document-2 Table of Contents}
% These are all defined in the same page, so disable page numbering \cftpagenumbersoff{chapter}
\cftpagenumbersoff{section}
\cftpagenumbersoff{subsection}
\addcontentsline{toca}{chapter}{Introduction}
\addcontentsline{toca}{section}{foo}
\addcontentsline{toca}{section}{bar}
\addcontentsline{toca}{chapter}{baz}
\addcontentsline{toca}{section}{barbar}
\tableofcontentsA
\section{Main Conclusion}
\end{document}
以下是它产生的结果:
我想要更多类似的东西:
1 - Main intro
2 - Example ToC
1 - Intro
1.1 - foo
1.2 - bar
2 - Baz
2.1 - barbar
3 - Main Conclusion
答案1
以下是我的做法:
\documentclass{report}
\usepackage{tocloft}
\makeatletter
\newcommand\tableofcontentsA{%
\indent
\@starttoc{toca}%
}
\makeatother
\newcounter{tocachap}
\setcounter{tocachap}{0}
\newcounter{tocasect}[tocachap]
\setcounter{tocasect}{0}
\renewcommand{\thetocasect}{\thetocachap.\arabic{tocasect}}
\newcommand{\addchap}[1]{\refstepcounter{tocachap}
\cftaddtitleline{toca}{tocachap}{\indent\textbf{\thetocachap \hspace{1em}#1 \\[0.2em]}}{}
\par}
\newcommand{\addsect}[1]{\refstepcounter{tocasect}
\cftaddtitleline{toca}{tocasect}{\indent\thetocasect \hspace{0.5em}#1 \\[0.2em]}{}
\par}
\renewcommand{\thesection}{\arabic{section}}
\begin{document}
\tableofcontents
\section{Main introduction}
\section{Example Document-2 Table of Contents}
\addchap{Introduction}
\addsect{foo}
\addsect{bar}
\addchap{baz}
\addsect{barbar}
\tableofcontentsA
\section{Main Conclusion}
\end{document}
它产生以下输出:
注 1可以为子部分创建一个命令。
笔记2由于章节计数器的重新定义,您不应在文档中使用任何章节,因为它可能会创建令人困惑的主目录。