![使用部分内容填充列表](https://linux22.com/image/346081/%E4%BD%BF%E7%94%A8%E9%83%A8%E5%88%86%E5%86%85%E5%AE%B9%E5%A1%AB%E5%85%85%E5%88%97%E8%A1%A8.png)
我正在编写会议报告模板,想让这个过程更简单一些。有没有办法用部分名称填充逐项列表?
例子:
\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
然后引用部分编号。这确实需要一些规划:
您应该用数字标记每个部分,数字之间的步骤要一致。为了方便使用,如果您有三个部分,您可以将它们标记为
\label{section 1}
、\label{section 2}
和\label{section 3}
。您需要在 for 循环中写入节数。语法为: 节数为。
\foreach \n in {1,...,x}{Do something}
然后,将进行循环并假设一个从 1 到 x 的值。x
\n
将
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
,但我对这个答案很感兴趣!