Vim beamer: динамический заголовок фрейма

Я пытаюсь создать новую команду в Latex Beamer для автоматического добавления заголовка и подзаголовка кадра с учетом раздела и подраздела. В целом моя команда будет выглядеть так:

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

Как я могу определить, находится ли фрейм в разделе или подразделе?


person vad    schedule 05.03.2016    source источник


Ответы (1)


Вы можете добавить условные выражения к командам \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}
person Werner    schedule 05.03.2016