Как настроить заголовок фрейма, подзаголовок, основной текст с точки зрения положения и шрифта

Как настроить заголовок фрейма, подзаголовок, основной текст с точки зрения положения и шрифта

Я пишу латексный шаблон для слайдов презентации с использованием beamerкласса.

Я хочу разработать стиль заголовка и подзаголовка произвольного кадра с точки зрения их цвета, размера шрифта и расположения. Я не знаю, как настроить параметры специально beamerдля объектов заголовка и подзаголовка, поэтому я определил два textblockв части \defbeamertemplate*.

И я также хочу разместить основной текст под 3.5 cmверхним краем слайда.

Ниже я представляю свой код. Результат не очень. Потому что если я добавлю больше контента в основной текст, первая строка основного текста сместится выше и перекроет строки заголовка и подзаголовка, см. два скриншота ниже.

Знаете ли вы, как сделать так, чтобы первая строка основного текста находилась 3.5 cmниже верхнего края слайда? Возможно, использование текстовых блоков для заголовка и подзаголовка совсем не элегантно. Любые предложения приветствуются.

\documentclass{beamer}

\usepackage[absolute,overlay]{textpos}

\defbeamertemplate*{frametitle}{}[1][]
{
    \begin{textblock*}{12cm}(0.5cm,1cm)
    {\color{gray} \fontsize{36}{43.2} \selectfont \insertframetitle}
    \end{textblock*}
    \begin{textblock*}{12cm}(0.5cm,2.5cm)
    {\color{gray} \fontsize{20}{24} \selectfont \insertframesubtitle}
    \end{textblock*}
}

\begin{document}

\begin{frame} 
\frametitle{Bulleting and Number} 
\framesubtitle{As An Example}    
This is line should be 3.5 cm below the top edge of the slide.
    \begin{itemize} 
    \item adfas
        \begin{itemize}
        \item afdfa
            \begin{itemize}
            \item adfadsfa
            \item adsfa
            \end{itemize}    
        \end{itemize}
    \end{itemize}

    This is how to add numbered list.
    \begin{enumerate}
        \item Use number
        \item Another number
        \begin{enumerate}[I]
            \item Use Letter
            \item Another letter
            \begin{enumerate}[a]
                \item Use 
                \item Use
            \end{enumerate}
        \end{enumerate}
    \end{enumerate}
\end{frame}

\end{document}

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

решение1

Вместо a textblockя бы пошел традиционным путем и поместил заголовок кадра внутрь a beamercolorbox. Чтобы отрегулировать вертикальное положение в соответствии с вашими требованиями, измените значения s \vskip.

\documentclass{beamer}

\usepackage[absolute,overlay]{textpos}

\setbeamerfont{frametitle}{size=\fontsize{36}{43.2}}
\setbeamerfont{framesubtitle}{size=\fontsize{20}{24}}
\setbeamercolor{frametitle}{fg=gray}
\setbeamercolor{framesubtitle}{fg=gray}

\makeatletter
\setbeamertemplate{frametitle}{%
  \ifbeamercolorempty[bg]{frametitle}{}{\nointerlineskip}%
  \@tempdima=\textwidth%
  \advance\@tempdima by\beamer@leftmargin%
  \advance\@tempdima by\beamer@rightmargin%
  \begin{beamercolorbox}[sep=0.5cm,left,wd=\the\@tempdima]{frametitle}
    \usebeamerfont{frametitle}%
    \vbox{}\vskip-0.25ex%
    \if@tempswa\else\csname beamer@fteleft\endcsname\fi%
    \strut\insertframetitle\strut\par%
    {%
      \ifx\insertframesubtitle\@empty%
      \else%
      {\usebeamerfont{framesubtitle}\usebeamercolor[fg]{framesubtitle}\insertframesubtitle\strut\par}%
      \fi
    }%
    \vskip-1ex%
    \if@tempswa\else\vskip-.3cm\fi% set inside beamercolorbox... evil here...
  \end{beamercolorbox}%
}
\makeatother

\begin{document}

\begin{frame} 
\frametitle{Bulleting and Number} 
\framesubtitle{As An Example}    
This is line should be 3.5 cm below the top edge of the slide.
    \begin{itemize} 
    \item adfas
        \begin{itemize}
        \item afdfa
            \begin{itemize}
            \item adfadsfa
            \item adsfa
            \end{itemize}    
        \end{itemize}
    \end{itemize}

    This is how to add numbered list.
    \begin{enumerate}
        \item Use number
        \item Another number
        \begin{enumerate}[I]
            \item Use Letter
            \item Another letter
            \begin{enumerate}[a]
                \item Use 
                \item Use
            \end{enumerate}
        \end{enumerate}
    \end{enumerate}
\end{frame}

\end{document}

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

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