答案1
防止长节标题被截断的最简单方法可能是使用 section 命令的可选参数,以便提供节标题的缩短版本以供页眉使用。目录仍将显示节标题的较长版本。
\documentclass{beamer}
\usetheme{copenhagen}
\begin{document}
\section{section heading}
\section[shortened section heading]{a very very long heading that would get cut off inside of a narrower beamercolorbox}
\begin{frame}
contents
\end{frame}
\end{document}
如果您坚持在标题中显示完整的部分标题,同时确保黑框确实占据了框架宽度的 50% 以上,您可能需要看看以下建议:
\documentclass{beamer}
\usetheme{copenhagen}
\makeatletter
\defbeamertemplate*{headline}{custom split theme}
{%
\leavevmode%
\@tempdimb=2.4375ex%
\ifnum\beamer@subsectionmax<\beamer@sectionmax%
\multiply\@tempdimb by\beamer@sectionmax%
\else%
\multiply\@tempdimb by\beamer@subsectionmax%
\fi%
\ifdim\@tempdimb>0pt%
\advance\@tempdimb by 1.825ex%
\begin{beamercolorbox}[wd=.75\paperwidth,ht=\@tempdimb]{section in head/foot}%
\vbox to\@tempdimb{\vfil\insertsectionnavigation{.75\paperwidth}\vfil}%
\end{beamercolorbox}%
\begin{beamercolorbox}[wd=.25\paperwidth,ht=\@tempdimb]{subsection in head/foot}%
\end{beamercolorbox}%
\fi%
}
\makeatother
\begin{document}
\section{section heading}
\section{a very very long heading that would get cut off inside of a narrower beamercolorbox}
\begin{frame}
contents
\end{frame}
\end{document}
附注:在copenhagen
内部使用split
外部主题的主题中,标题中的左侧框通常包含部分标题,而右侧框包含子部分标题。由于我大大减少了右侧框的宽度,现在它不再包含子部分标题。
答案2
这里我做了两件不同寻常的事情。我创建了一个占位符\section
来保留一个空白行。然后,我使用 来\Longstack
创建实际的章节标题,该标题占两行。
\documentclass{beamer}
\usepackage{stackengine}
\usetheme{copenhagen}
\setstackEOL{\\}
\begin{document}
\section{section heading}
\begin{frame}
contents section heading
\end{frame}
\section{~}% PLACEHOLDER
\section{\Longstack[r]{a very very long heading that would get cut off inside
\\ of a narrower beamercolorbox}}
\begin{frame}
contents long title
\end{frame}
\section{Next}
\begin{frame}
contents Next
\end{frame}
\section{Last}
\begin{frame}
contents Last
\end{frame}
\end{document}