我正在尝试在Latex Beamer中创建一个新命令,以自动添加框架标题和副标题,并尊重部分和子部分。通常,我的命令看起来像:
\newcommand {\myframe}[1] {
\begin{frame}
if in a section {
\frametitle{\secname}
}
if in a subsection {
\framesubtitle{\subsecname}
}
#1
\end{frame}
}
如何检测框架是在部分还是子部分?
答案 0 :(得分:0)
您可以在\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}