在子节内调用当前节名称

在子节内调用当前节名称

我再次进入了 Beamer 演示文稿,并尝试获取框架标题以自动从子部分中打印该部分的标题。代码(附有我想要执行的操作的示例)如下所示:

\documentclass{beamer}
\mode<presentation>
\title[Title]{Title}
\author{My Name}
\institute{Where I am}
\date{September 2013}
\begin{document}
\begin{frame}
\section{SECTION NAME}
\subsection{Subsection Name}
\begin{frame}{"SECTION NAME": Title of Frame}
Content
\end{frame}

为了清楚起见,我希望引号中的“SECTION NAME”能够自动提取文本\section{SECTION NAME}

谢谢!

更新:

感谢 moewe,我们找到了解决方案。它来自本文。更新后的代码如下所示:

\documentclass{beamer}
\usepackage{nameref}
\mode<presentation>
\title[Title]{Title}
\author{My Name}
\institute{Where I am}
\date{September 2013}
\begin{document}
\begin{frame}
\section{SECTION NAME}\label{itsname}
\subsection{Subsection Name}
\begin{frame}{\label{itsname}: Title of Frame}
Content
\end{frame}

答案1

另一种方法是不使用\namerefwithout intensive labeling。这是可能的,因为节名称是从子节中调用的,因此可以使用其更高级别的计数器。

 \documentclass[]{beamer}

 \makeatletter
 \newcommand\newsection[1]{%
 \section{#1}    
 \@namedef{\thesection}{#1}         
 }

 \newcommand\newsec{% 
 \@nameuse{\thesection}
 }
 \makeatother

 \mode<presentation>
 \title[Title]{Title}
 \author{My Name}
 \institute{Where I am}
 \date{September 2013}

 \begin{document}
 \begin{frame}[t]
 \maketitle
 \end{frame}
 \begin{frame}[t]
 \tableofcontents
 \end{frame}
 \begin{frame}[t]
 \newsection{SECTION NAME}
 \subsection{Subsection Name}{\newsec: Title of Frame}

 Content
 \end{frame}
 \end{document}

对于横截面调用,则需要一个标签。需要做的就是进行以下微小修改。

 \makeatletter
 \newcommand\newsection[2]{%
 \section{#1}\label{#2}
 \@namedef{#2}{#1}
 }

 \newcommand\newsec[1]{% 
 \@nameuse{#1}
 }
 \makeatother

 \newsection{SECTION NAME}{tag}
 \subsection{Subsection Name}{\newsec{tag}: Title of Frame}

在此处输入图片描述

答案2

该类beamer提供宏,例如\insertsection和,\insertsubsection用于访问当前部分的名称。它们可以在模板中使用或手动使用。

\documentclass{beamer}

\begin{document}
\section{SECTION NAME}
\subsection{Subsection Name}
\begin{frame}{\insertsection: \insertsubsection}
    Content
\end{frame}
\end{document}

搜索手册来\insert查找更多这样的宏。

相关内容