Vim beamer:动态帧标题

Vim beamer: dynamic frame title

我正在尝试在 Latex Beamer 中创建一个新命令,以自动添加与部分和小节相关的框架标题和副标题。通常,我的命令如下所示:

\newcommand {\myframe}[1] {
    \begin{frame}
    if in a section {
        \frametitle{\secname}
    }
    if in a subsection {
        \framesubtitle{\subsecname}
    }
    #1
    \end{frame}
}

如何检测框架是在节还是小节中?

您可以向 \section\subsection 命令添加条件,您可以使用它们在 \myframe 宏中进行测试:

\documentclass{beamer}

\let\Tiny\tiny% http://tex.stackexchange.com/a/94159/5764

\newif\ifinsection
\newif\ifinsubsection

\let\oldsection\section
\renewcommand{\section}{%
  \global\insectiontrue% In section
  \global\insubsectionfalse% Not in subsection
  \oldsection}
\let\oldsubsection\subsection
\renewcommand{\subsection}{%
  %\global\insectionfalse% No in section
  \global\insubsectiontrue% In subsection
  \oldsubsection}

\newcommand {\myframe}[1] {%
  \begin{frame}
  \ifinsection\frametitle{\secname}\fi
  \ifinsubsection\framesubtitle{\subsecname}\fi
  #1
  \end{frame}
}

\begin{document}

\begin{frame}
  \frametitle{A frame}
\end{frame}

\section{A section}

\myframe{Some content}

\subsection{A subsection}

\myframe{Some content}

\end{document}