自定义框架标题下的下划线

自定义框架标题下的下划线

我希望框架标题的下划线与标题的长度完全相同,并且希望标题和线条能够有不同的颜色。目前,我有,

\documentclass{beamer}

\makeatletter

\setbeamertemplate{frametitle}
{
  \ifbeamercolorempty[bg]{frametitle}{}{\nointerlineskip}%
  \@tempdima=\textwidth%
  \advance\@tempdima by\beamer@leftmargin%
  \advance\@tempdima by\beamer@rightmargin%
  \begin{beamercolorbox}[sep=0.3cm,left, wd=\the\@tempdima]{frametitle}
    \vbox{}\vskip-1ex%
    \if@tempswa\else\csname beamer@fteleft\endcsname\fi%
    {\strut\color{blue}\bfseries\insertframetitle\strut\par%
    {%
      \ifx\insertframesubtitle\@empty%
      \else%
      {\usebeamerfont{framesubtitle}\usebeamercolor[fg]{framesubtitle}\insertframesubtitle\strut\par}%
      \fi
    }%
    \vskip-1.5ex%
    \rule{\dimexpr\paperwidth-0.6cm\relax}{0.4pt}}
    \if@tempswa\else\vskip-.3cm\fi% set inside beamercolorbox... evil here...
  \end{beamercolorbox}%
    %
}
\makeatother
\setbeamertemplate{itemize items}[circle]

\begin{document}

\begin{frame}{Frame title}

\begin{itemize}
    \item dd
    \item
\end{itemize}
\end{frame}


\end{document}

是否可以让下划线在框架标题停止时停止(这样线条只出现在单词下方而不是贯穿整个幻灯片)并且标题和线条具有不同的颜色?

任何意见,将不胜感激!

答案1

这是一种方法。规则长度取决于主标题。我在第一张幻灯片上展示了一个包含较长副标题的示例。我假设您不会使用副标题,因为您在问题中没有提到它。如果您希望规则长度更改遵循副标题,则需要相应地更改代码。

\documentclass{beamer}

\makeatletter

\setbeamertemplate{frametitle}
{
  \ifbeamercolorempty[bg]{frametitle}{}{\nointerlineskip}%
  \@tempdima=\textwidth%
  \settowidth{\@tempdimb}{\bfseries\insertframetitle}%
  \advance\@tempdima by\beamer@leftmargin%
  \advance\@tempdima by\beamer@rightmargin%
  \begin{beamercolorbox}[sep=0.3cm,left, wd=\the\@tempdima]{frametitle}
    \vbox{}\vskip-1ex%
    \if@tempswa\else\csname beamer@fteleft\endcsname\fi%
    {\strut\color{blue}\bfseries\insertframetitle\strut\par%
    {%
      \ifx\insertframesubtitle\@empty%
      \else%
      {\usebeamerfont{framesubtitle}\usebeamercolor[fg]{framesubtitle}\insertframesubtitle\strut\par}%
      \fi
    }%
    \vskip-1.5ex%
    \color{red}\rule{\@tempdimb}{0.4pt}}
    \if@tempswa\else\vskip-.3cm\fi% set inside beamercolorbox... evil here...
  \end{beamercolorbox}%
    %
}
\makeatother
\setbeamertemplate{itemize items}[circle]

\begin{document}

\begin{frame}{Frame title}{test very long sub title}

\begin{itemize}
    \item dd
    \item
\end{itemize}
\end{frame}

\begin{frame}{Testing of Longer Frame title}

\begin{itemize}
    \item dd
    \item
\end{itemize}
\end{frame}


\end{document}

在此处输入图片描述 在此处输入图片描述

相关内容