[Beamer/Latex]:从不同部件获取\部件名称
嗨,我想在beamer演示中创建一些我自己的目录,其中将列出所有部分的所有部分 到目前为止,我想出了一个解决方案,在一张幻灯片中列出所有\table内容[Beamer/Latex]:从不同部件获取\部件名称,latex,beamer,Latex,Beamer,嗨,我想在beamer演示中创建一些我自己的目录,其中将列出所有部分的所有部分 到目前为止,我想出了一个解决方案,在一张幻灯片中列出所有\table内容 \begin{frame} \begin{multicols}{2} \setcounter{tocdepth}{1} \foreach\x in {1,...,\totvalue{part}}{% \vskip 0.4cm \tableofcontents
\begin{frame}
\begin{multicols}{2}
\setcounter{tocdepth}{1}
\foreach\x in {1,...,\totvalue{part}}{%
\vskip 0.4cm
\tableofcontents[part=\x]%
}%
\setcounter{tocdepth}{2}
\end{multicols}
\end{frame}
这里的问题是,我得到了每个部件的部分,但并没有列出部件名
有没有办法通过for cycle的索引\x访问零件名称?类似于\insertpart[\x]?好的,在我的一个同学的帮助下,我想出了解决问题的办法
\makeatletter
\AtBeginPart{
\write\@auxout{%
\noexpand\expandafter\noexpand\gdef\noexpand\csname
part\thepart name\noexpand\endcsname{\beamer@partname}}
}
\makeatother
\begin{document}
\frame{\maketitle}
\section*{Outline}
\begin{frame}{Outline of Presentation}
\begin{multicols}{2}
\setcounter{tocdepth}{1}
\foreach\x in {1,...,\totvalue{part}}{%
\medskip\expandafter\let\expandafter\partname
\csname part\x name\endcsname
\penalty-999
\textit{\partname}
\medskip
{\let\vfill=\relax\tableofcontents[part=\x]}\vfill
\penalty-999
}%
\setcounter{tocdepth}{2}
\end{multicols}
\end{frame}
不幸的是,我无法详细描述它是如何工作的,但基本上它在第一次运行pdflatex时会获取零件的名称,并将它们保存到.aux文件中。然后在第二次运行pdflatex时,它将正确地打印出来。然后将负惩罚添加到每个块中,这样partname就不会从剩余的part toc中分离出来
所以需要运行两次pdflatex才能正常工作,但它应该工作得很好。我设法创建了包含4个部分的目录
希望它能帮助别人