Beamer: сделать так, чтобы логотип из заголовка перекрывался с заголовком кадра

Beamer: сделать так, чтобы логотип из заголовка перекрывался с заголовком кадра

Цель

Я пытаюсь создать beamerтему, в которой вверху будет следующий макет:

________________________________________
|                       |               |
| Author & Insitute     | L O G O       |
|_______________________|_         _____|
|                         \_______/     |
| Frame Title                           |
|_______________________________________|
|                                       |
|  C O N T E N T   H E R E    . . .     |

т.е.перекрывающийся логотип.

Подходы

У меня есть три подхода, но ни один из них мне не помог:

  1. ПоложитеНазвание кадравЗаголовока затем попробуйте добиться желаемой компоновки с помощью beamercolorbox-- но я не только не добился компоновки, кажется, вы также не можете поместитьНазвание кадравЗаголовок.
  2. ИметьЗаголовоксодержат толькоИнформация об авторствеиЛоготип, но сделайте так, чтобы последний каким-то образом «перекрывался» со всем, что находится ниже, не выталкиваяНазвание кадравниз.
  3. СделатьЗаголовокпо вертикали больше, включая также область перекрытия, это будет означать, что также фон (если существует)Заголовокнужно было раскрасить в два цвета, потому что на самом деле это просто заняло частьНазвание кадрапо площади.

Три подхода, которые я попытался здесь проиллюстрировать:

Подход 1 Подход 1


Подход 2 Подход 2


Подход 3 Подход 3


МВЭ / Код

На данный момент я сделал следующее в плане кода:

main.tex:

\documentclass{beamer}

\usetheme{mytheme}

\title{The Title}
\author{S.~Author}
\institute{The Institute}

\usepackage{graphicx}
\pgfdeclareimage[height=0.5cm]{logo}{example-image}
\logo{\pgfuseimage{logo}}


\begin{document}

\begin{frame}[plain]
  \titlepage
\end{frame}

\begin{frame}{Outline}
  \tableofcontents
\end{frame}

\end{document}

и в моем местном TEXMF:tex/latex/beamertheme-mytheme/

beamerthememytheme.sty:

\mode<presentation>

\useinnertheme{mytheme}
\useoutertheme{mytheme}
\usecolortheme{mytheme}

\mode<all>

beamerouterthememytheme.sty:

\mode<presentation>

% background: transparent    
\setbeamercolor{background}{bg=}
% Grid overlay, to test alignment, 0.028 is given magic value
\setbeamertemplate{background}[grid][step=0.028\pagewidth]

\defbeamertemplate*{headline}{mytheme}
{%
    % either make headline contain
    %  1. both logo and frame title (not possible?)
    %  2. only logo, and let it somehow "grow" or "overlap" into the frame title
    %  3. only logo + some vertical space to make it seem like it's overlapping, but this would create more problems, probably.
}

\mode
<all>

Можете ли вы дать мне какие-либо указания, какой из этих подходов может быть лучшим (или если нет, то какой будет лучше)? Я пробовал искать, и, возможно, действительно есть решение этой проблемы, но я думаю, что мне не хватает терминологии, чтобы найти что-то полезное прямо сейчас.

решение1

Немного хакерски, но основная идея в том, чтобы логотип и цветные области были на заднем плане. Для следующего примера я использовалhttps://i.stack.imgur.com/XXQjl.pngкак изображение.

предостережение: кадры без заголовка все равно будут иметь серую линию

\documentclass{beamer}

\setbeamerfont{headline}{size=\normalfont}
\setbeamercolor{headline}{bg=white}

\setbeamertemplate{headline}{%
  \begin{beamercolorbox}[sep=0.3cm,left,wd=.67\paperwidth]{headline}
        \usebeamerfont{headline}%
        \insertshortauthor~\&~\insertshortinstitute 
  \end{beamercolorbox}%
}

\setbeamercolor{frametitle}{bg=}
\setbeamercolor{framesubtitle}{bg=gray!55!white}

\makeatletter
\setbeamertemplate{frametitle}{%
    \vspace*{-0.1cm}
  \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}
    \usebeamerfont{frametitle}%
    \vbox{}\vskip-1ex%
    \if@tempswa\else\csname beamer@fteleft\endcsname\fi%
    \strut\insertframetitle\strut\par%
   \end{beamercolorbox}
%    {%
      \ifx\insertframesubtitle\@empty%
      \else%
        \vskip-0.3cm%
        \begin{beamercolorbox}[sep=0.1cm,left,wd=\the\@tempdima]{framesubtitle} 
        {\hspace{0.2cm}\usebeamerfont{framesubtitle}\usebeamercolor[fg]{framesubtitle}\insertframesubtitle\strut\par}%
        \end{beamercolorbox}        
      \fi
%    }%
    \vskip-1ex%
    \if@tempswa\else\vskip-.3cm\fi% set inside beamercolorbox... evil here...
%  \end{beamercolorbox}%
}
\makeatother

\setbeamercolor{background}{bg=}
\setbeamertemplate{background}{\includegraphics[width=\paperwidth,height=.17\paperheight]{XXQjl}}

\logo{\includegraphics[width=.2\paperwidth]{example-image}}


\title{The Title}
\author{S.~Author}
\institute{The Institute}

\begin{document}

{
\setbeamertemplate{background}{}
\begin{frame}[plain]
  \titlepage
\end{frame}
}

\begin{frame}{Outline}
  \tableofcontents
\end{frame}

\begin{frame}
\frametitle{title}
\framesubtitle{subtitle}
\end{frame}

\end{document}

введите описание изображения здесь

Связанный контент