我知道这个标题有点重复,但到目前为止我还没有找到任何解决方案。
我目前正在创建自己的 beamer 模板。它看起来很基础,但我希望它能按如下方式工作:当我创建一个部分时,幻灯片会在左侧看到其标题,并在其上写上部分标题(及其编号)。然后,如果我创建一个子部分,标题会发生变化,因此子部分的名称(和编号)会显示在与部分标题相同的高度,但在左侧(我想会有某个\hfill
地方)。然后,仅在小节中,我想在第一个栏上方的另一个栏中添加它的名称和编号。
现在,我检查了多个页面,其中有一个几乎解决了我的问题:根据部分和小节环境在框架中显示投影仪标题...但差不多了。关键是我不完全理解代码,所以定制它来实现我的目标变得非常困难。
这是我尝试使其工作的实际代码:
\usepackage{environ,substr}
\newif\ifinsertsection
\newif\ifinsertsubsection
\newif\ifinsertsubsubsection
\setbeamertemplate{headline}{
\ifinsertsection
\leavevmode
\begin{beamercolorbox}[wd=\paperwidth,ht=8ex]{sec_subsec}
\raggedright
\hspace*{2em}
{\color{main_bg}{\large\thesection.~\insertsection}}
\vspace{0.15cm}
\end{beamercolorbox}
\fi
\ifinsertsubsection
\leavevmode
\begin{beamercolorbox}[wd=\paperwidth,ht=8ex]{sec_subsec}
\raggedright % justification à droite
\hspace*{2em}% marge à gauche du titre dans le headline
{\color{main_bg}{\large\thesection.~\insertsection
\hfill %justification à gauche
\small\thesection.\thesubsection.~\insertsubsection}}
\vspace{0.15cm}%
\end{beamercolorbox}
\fi
\ifinsertsubsubsection
\leavevmode
\begin{beamercolorbox}[wd=\paperwidth,ht=5ex]{subsubsec}
\raggedright
\hspace*{4em}
{\color{main_bg}{\small\thesection.\thesubsection.\thesubsubsection.~\insertsubsubsection}}
\vspace{0.08cm}
\end{beamercolorbox}
\fi
\vspace{0.5cm}
}
\NewEnviron{beamersection}[2][]{%
\IfSubStringInString{\detokenize{\subsubsection}}{\detokenize\expandafter{\BODY}}{\insertsubsubsectiontrue}{}
\insertsubsectiontrue
\if\relax\detokenize{#2}\relax
\section{#2}
\else
\section[#1]{#2}
\fi
\par\BODY
}
\begin{document}
\begin{beamersection}{Section 1}
\frame{
You are in section 1
}
\subsection{Subsection 1}
\frame{
You are in section 1, subsection 1
}
\subsubsection{Subsubsection 1}
\frame{
You are in subsubsection 1
}
\subsection{Subsection 2}
\frame{
You are in section 1, subsection 2
}
\end{beamersection}
\end{document}
在这里我希望右上角的 1.0. 和整个灰色区域消失。然后在第 1 部分中创建一个子部分
当然,我希望它能适用于我需要的尽可能多的部分/子部分/子子部分。提前致谢,我很抱歉文字太长,但我相信它至少解释得很好。