我想要生成文档中所有段落标题的列表,其结果将类似于以下内容。
\documentclass{book}
\begin{document}
\chapter{chapter}
\section{section}
\subsection{subsection}
\subsubsection{subsubsection}
\paragraph{Foo}
\paragraph{Bar}
\paragraph{Baz}
...
\chapter{Summary}
\begin{enumerate}
\item Foo
\item Bar
\item Baz
\end{enumerate}
\end{document}
答案1
如果您未在文档的其他地方使用目录,则可以对其进行处理以实现所需目的。下面的示例处理目录以搜索特定于的条目paragraph
,并仅将其标题(忽略页码)设置为列表的一部分enumerate
。
为了避免出现空列表的问题,\item
如果文档中没有\paragraph
s 或尚未写入 ToC,则会设置一个。
\documentclass{article}
\setcounter{tocdepth}{5}% Add paragraphs to ToC
\newcommand{\printparagraphtitles}{%
\section{Summary}
\begin{enumerate}
% Update the way \contentsline works in order to capture on paragraphs
\renewcommand{\contentsline}[3]{%
\ifnum\pdfstrcmp{##1}{paragraph}=0
\item ##2
\fi
}
\InputIfFileExists{\jobname.toc}{}{}% Insert the regular ToC
\ifnum\value{enumi}=0 \item\fi% If you don't have any paragraphs
\end{enumerate}
}
\begin{document}
\paragraph{Foo}
\paragraph{Bar}
\paragraph{Baz}
\printparagraphtitles
\end{document}