我正在用法语撰写我的论文 - 请参阅下面的一个最小工作示例 - 我需要一份摘要,它实际上是一个简洁的目录,仅包含部分、章节和节;我还需要在论文末尾提供一个包含小节的详尽目录。
我之所以使用,\shorttableofcontents
是因为如果我使用\tableofcontents
两次,其中一个就会被渲染空白的。
我希望\chapter{附录}仅包含在第二个toc
但在中没有提及它\shorttableofcontents
,无论我怎么尝试,它似乎都不起作用,而且我找不到类似情况的问题。
\documentclass[oneside, a4paper, 12pt]{book}
\usepackage{shorttoc}
\usepackage{times}
\usepackage{titlesec}
\usepackage{anyfontsize}
\usepackage[french]{babel}
\usepackage{booktabs}
\usepackage{sectsty}
\usepackage{arabtex}
\usepackage{utf8}
\usepackage{enumerate}
\setcode{utf8}
\begin{document}
\shorttableofcontents{Summary}{1}
\frontmatter
\chapter{General Introduction}
\mainmatter
\chapter{CH1}
\chapter{CH2}
\chapter{CH3}
\backmatter
\chapter{Appendices}
\setcounter{tocdepth}{3}
\tableofcontents
\end{document}
答案1
该解决方案取自
简短目录(部分、章节和节,但不包括附录)
完成目录
\documentclass[oneside, a4paper, 12pt]{book}
\usepackage{shorttoc}
\usepackage{times}
\usepackage{titlesec}
\usepackage{anyfontsize}
\usepackage[french]{babel}
\usepackage{booktabs}
\usepackage{sectsty}
% \usepackage{arabtex}
% \usepackage{utf8}
\usepackage{enumerate}
% ****************************** added <<<<<<<<<<<
%https://tex.stackexchange.com/a/65003/161015
\usepackage{xpatch}
\newtoggle{onlyshorttoc}
\makeatletter
\patchcmd{\@startshorttoc}{\bgroup}{\bgroup\toggletrue{onlyshorttoc}}{}{}
\makeatother
% ******************************
\begin{document}
\shorttableofcontents{Summary}{1}
\frontmatter
\chapter{General Introduction}
\mainmatter
\part{PI}
\chapter{CH1}
\section{SCH1}
\subsection{SSCH1}
\chapter{CH2}
\section{SCH2}
\subsection{SSCH2}
\part{PII}
\chapter{CH3}
\section{SCH3}
\subsection{SSCH3}
\addtocontents{toc}{\protect\iftoggle{onlyshorttoc}{\setcounter{tocdepth}{-1}}{}} % added <<<<<<<<<<
\backmatter
\chapter{App First}
\chapter{App Second}
\setcounter{tocdepth}{3} % added <<<<<<<<<<
\tableofcontents
\end{document}
首先在代码中添加一个布尔值,并将其设置为 true shottoc
。
然后,在附录之前,.toc
如果布尔值为真,则在文件中添加一个命令来设置目录的深度 = -1(不显示章节和较低级别)。