如何创建所有段落的列表?

如何创建所有段落的列表?

我想要生成文档中所有段落标题的列表,其结果将类似于以下内容。

\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如果文档中没有\paragraphs 或尚未写入 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}

相关内容