![从目录中省略特定的小节?](https://linux22.com/image/263853/%E4%BB%8E%E7%9B%AE%E5%BD%95%E4%B8%AD%E7%9C%81%E7%95%A5%E7%89%B9%E5%AE%9A%E7%9A%84%E5%B0%8F%E8%8A%82%EF%BC%9F.png)
是否可以从目录中省略单个特定的小节,同时在正文中保持其编号不变,并保留其他小节的列出?
(我正在使用该amsart
课程。)
答案1
以下代码提供了一个\addsubsection
类似于\subsection
(星号版本,可选参数)的宏,该宏使用该\qrr@gobblenexttocentry
宏来抑制写入文件的内容.toc
。
当。。。的时候hyperref
包中使用的这一行包含五个参数,因此需要\ifcsname
检查。
如果要隐藏的子节与其前一个子节之间没有一个字符,则此方法无效。(但为什么要这样做呢?)
参考
代码
\documentclass{amsart}
%\usepackage{hyperref}% works with or without hyperref
\makeatletter
\ifcsname phantomsection\endcsname
\newcommand*{\qrr@gobblenexttocentry}[5]{}
\else
\newcommand*{\qrr@gobblenexttocentry}[4]{}
\fi
\newcommand*{\addsubsection}{%
\addtocontents{toc}{\protect\qrr@gobblenexttocentry}%
\subsection}
\makeatother
\usepackage{lipsum}
\begin{document}
\tableofcontents
\section{section name}
\lipsum[1]
\subsection{I'm here.}
\lipsum[1]
\addsubsection{I'm gone.}
\lipsum[1]
\subsection{I'm there.}
\lipsum[1]
\end{document}
输出
答案2
在下面的代码中,中间放置的任何内容\ignorethis...\endignorethis
都会被忽略,\TOCstop
只需将这\TOCstart
两个命令写入.toc
文件中即可。
\documentclass{article}
\protected\def\ignorethis#1\endignorethis{}
\let\endignorethis\relax
\def\TOCstop{\addtocontents{toc}{\ignorethis}}
\def\TOCstart{\addtocontents{toc}{\endignorethis}}
\begin{document}
\tableofcontents
\section{FOO}
\subsection{BAR}
\TOCstop
\subsection{BAZ}
\TOCstart
\subsection{BAR}
\end{document}