使用部分内容填充列表

使用部分内容填充列表

我正在编写会议报告模板,想让这个过程更简单一些。有没有办法用部分名称填充逐项列表?

例子:

\section{Section1}
text
\section{Section2}
text

这将生成如下项目符号列表:

\begin{itemize}
   \item{Section1}
   \item{Section2}
\end{itemize}

这可能吗?这是为了生成我们在会议期间讨论的主题列表。谢谢!

答案1

简单的解决方案

我的第一个简单的建议就是只使用它\tableofcontents来创建目录,因为这要简单得多。


参考每个部分(乏味)

但是,如果你真的想要一个项目符号列表,您可以标记每个部分并在项目符号列表中引用它。

\section{Section1}
\label{section 1}
text

\section{Section2}
\label{section 2}
text

\begin{itemize}
    \item Section \ref{section 1}
    \item Section \ref{section 2}
\end{itemize}

参考每个部分的名称(繁琐)

以前的方法只引用节号,而不是名称。使用nameref允许你使用以下\nameref命令的包可以轻松解决这个问题:

\usepackage{nameref}

\section{Section 1 is really awesome}
\label{section 1}
text

\begin{itemize}
    \item \nameref{section 1}
\end{itemize}

使用 for 循环

标记每个部分并将其添加到 itemize 中非常繁琐。如果您有很多部分,可以使用包\foreach中的命令来节省一些时间pgffor。此命令允许您循环遍历从 x 到 y 的数字列表,并使用该数字执行某些操作,例如编写\item然后引用部分编号。这确实需要一些规划:

  1. 您应该用数字标记每个部分,数字之间的步骤要一致。为了方便使用,如果您有三个部分,您可以将它们标记为\label{section 1}\label{section 2}\label{section 3}

  2. 您需要在 for 循环中写入节数。语法为: 节数为。\foreach \n in {1,...,x}{Do something}然后,将进行循环并假设一个从 1 到 x 的值。x\n

  3. Do something被取代\item \nameref{section \n}

最后看起来应该有点像这样

\usepackage{nameref}
\usepackage{pgffor}

\section{Section 1 is really awesome}
\label{section 1}
Thobber gained a promotion.

\section{Section with a random name}
\label{section 2}
Thobber's friend joined the company.

\section{Final section where we celebrated the end of meeting}
\label{section 3}
Random cat pictures.

\begin{itemize}
    \foreach \n in {1,...,2}{
        \item \nameref{section \n}
        }
\end{itemize}

改进

您仍然需要手动控制 for 循环中的节的总数,并确保在标记节时不会犯错误。可以使用该totcount包来注册文档中存在的节的总数,但是我无法弄清楚如何使其与pgffor包同步工作,而且今天没有时间。

我仍然会选择\tableofcontents,但我对这个答案很感兴趣!

相关内容