如何从 \shorttableofcontents 中删除某些章节但将其保留在 \tableofcontents 中

如何从 \shorttableofcontents 中删除某些章节但将其保留在 \tableofcontents 中

我正在用法语撰写我的论文 - 请参阅下面的一个最小工作示例 - 我需要一份摘要,它实际上是一个简洁的目录,仅包含部分、章节和节;我还需要在论文末尾提供一个包含小节的详尽目录。

我之所以使用,\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(不显示章节和较低级别)。

相关内容