minitoc 用于打印小节的星号版本

minitoc 用于打印小节的星号版本

我的目标是打印某个部分下的迷你目录,但这个迷你目录应该只打印subsection*自动并且不会出现在主目录中。作为参考,我使用以下内容:样本另一个样本

到目前为止我所收集到的信息是我可以使用的,比如说:

\startcontents[sections]
\printcontents[sections]{}{3}{} % allows printing of subsection* only

\subsection*{Test subsection not in ToC}
\addcontentsline{ptc}{subsection}{Test subsection in ToC now} % must be added manually unless a command is created that takes as argument the subsection.

但这一切似乎有点麻烦。

subsection*有人可以建议在某个部分下自动创建 minitoc级别吗?

为了完整起见,这里是 mwe:

\documentclass{article}
\usepackage{titletoc}
\begin{document}

\section*{Contents}
\startcontents[mytoc]
\printcontents[mytoc]{}{1}{}
\section{Test section in ToC}
\subsection*{Test subsection not in ToC}
\subsection{Test subsection in ToC}

\end{document}

答案1

你可以\subsection通过以下方式重新定义自动化xparse

在此处输入图片描述

\documentclass{article}

\usepackage{titletoc,lipsum}
\usepackage{xparse}
\let\oldsubsection\subsection
\RenewDocumentCommand{\subsection}{s o m}{%
  \IfBooleanTF{#1}
    {\oldsubsection*{#3}%
     \addcontentsline{ptc}{subsection}{#3}}
    {\IfValueTF{#2}
       {\oldsubsection[#2]{#3}}
       {\oldsubsection{#3}}}
}

\begin{document}

\section*{Contents}
\startcontents[mytoc]
\printcontents[mytoc]{}{2}{} % allows printing of subsection only

\clearpage

\section{Test section in ToC}\lipsum[1]
\subsection*{Test subsection now in ToC}\lipsum[2]
\subsection{Test subsection in ToC}\lipsum[3]

\end{document}

相关内容