标题中的子部分大小不会改变标题高度

标题中的子部分大小不会改变标题高度

我想更改页眉中章节和子章节标题的字体大小。对于章节标题,它工作正常,页眉会自动增加其高度(如 Beamer 手册中所述),但如果我对子章节尝试同样的事情,我会得到以下结果。

Subsection height problem

有什么方法可以设置小节标题的块高度,以便大小节标题能够适合?

我不需要该框具有完全相同的尺寸,因为我可能无论如何都会使用 tkiz 创建背景。因此,如果无法设置尺寸,是否有某种方法可以将标题向下移动一点?

\documentclass{beamer}
\setbeamerfont*{section in head/foot}{size=\huge}
\setbeamerfont*{subsection in head/foot}{size=\huge}
\usetheme{Berlin} 

\begin{document}
    \section{Section 1}
    \subsection{Subsection 1}
    \begin{frame}{Frame}
        Content
    \end{frame}
\end{document}

\subsection{\huge Subsection 1}当我尝试而不是 时,我得到了相同的输出\setbeamerfont*

答案1

主题Berlin在内部使用miniframes外部主题;此外部主题明确设置了所用颜色框的高度为subsection in head/foot2.5ex深度为1.125ex。因此,更改子部分的字体大小不会增加此框的高度和深度,并且会产生您注意到的不良效果。

要改变这种行为,可以使这个框的高度和深度字体大小感知,通过根据具有所需字体大小的某些适当字符的高度和深度设置它们的值,就像我在下面的示例代码中所做的那样。

\usetheme还要注意,我改变了和的顺序,\setbeamerfont因此您不必在里面声明字体大小\subsection

\documentclass[compress]{beamer}
\usetheme[]{Berlin} 
\setbeamerfont*{section in head/foot}{size=\huge}
\setbeamerfont*{subsection in head/foot}{size=\huge}

\newlength\SubHt
\settoheight\SubHt{\usebeamerfont{subsection in head/foot}S}
\newlength\SubDh
\settodepth\SubDh{\usebeamerfont{subsection in head/foot}g}

\makeatletter
\setbeamertemplate{headline}
{%
  \begin{beamercolorbox}[colsep=1.5pt]{upper separation line head}
  \end{beamercolorbox}
  \begin{beamercolorbox}{section in head/foot}
    \vskip2pt\insertnavigation{\paperwidth}\vskip2pt
  \end{beamercolorbox}%
  \ifbeamer@theme@subsection%
    \begin{beamercolorbox}[colsep=1.5pt]{middle separation line head}
    \end{beamercolorbox}
    \begin{beamercolorbox}[ht=1.5\SubHt,dp=1.5\SubDh,%defaults: ht=2.5ex,  dp=1.125ex
      leftskip=.3cm,rightskip=.3cm plus1fil]{subsection in head/foot}
      \usebeamerfont{subsection in head/foot}\insertsubsectionhead
    \end{beamercolorbox}%
  \fi%
  \begin{beamercolorbox}[colsep=1.5pt]{lower separation line head}
  \end{beamercolorbox}
}
\makeatother

\begin{document}
    \section{Section 1}\subsection{Subsection g1}
    \begin{frame}{Frame}
        Content    
    \end{frame}
\end{document}

enter image description here

答案2

您可以更改 beamerfont headline

代码

\documentclass{beamer}
\setbeamerfont{headline}{size=\huge}
\usetheme{Berlin} 

\begin{document}
    \section{Section 1}
    \subsection{Subsection 1}
    \begin{frame}{Frame}
        Content
    \end{frame}
\end{document}

输出

enter image description here

相关内容