我的目标是打印某个部分下的迷你目录,但这个迷你目录应该只打印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}