So passen Sie den Rahmentitel, den Untertitel und den Haupttext hinsichtlich Position und Schriftart an

So passen Sie den Rahmentitel, den Untertitel und den Haupttext hinsichtlich Position und Schriftart an

Ich schreibe mithilfe einer Klasse eine Latex-Vorlage für Präsentationsfolien beamer.

Ich möchte den Stil von Titel und Untertitel eines beliebigen Frames hinsichtlich Farbe, Schriftgröße und Position gestalten. Ich weiß nicht, wie ich die Parameter speziell beamerauf Titel- und Untertitelobjekte abstimmen kann, daher habe ich textblockim Teil von zwei definiert \defbeamertemplate*.

Und ich möchte den Haupttext auch 3.5 cmunterhalb der oberen Kante der Folie platzieren.

Ich stelle meinen Code unten vor. Das Ergebnis ist nicht schön. Denn wenn ich dem Haupttext mehr Inhalt hinzufüge, verschiebt sich die erste Zeile des Haupttextes nach oben und überlappt sich mit Titel- und Untertitelzeilen, siehe die beiden Screenshots unten.

Wissen Sie, wie Sie die erste Zeile des Haupttextes 3.5 cmunterhalb der oberen Kante der Folie halten können? Vielleicht ist die Verwendung von Textblöcken für Titel und Untertitel überhaupt nicht elegant. Jeder Vorschlag ist willkommen.

\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}

Bildbeschreibung hier eingeben Bildbeschreibung hier eingeben

Antwort1

Anstelle eines textblockwürde ich den traditionellen Beamer-Weg gehen und den Frametitle in ein setzen beamercolorbox. Um die vertikale Position Ihren Anforderungen anzupassen, ändern Sie die Werte des \vskips.

\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}

Bildbeschreibung hier eingeben

verwandte Informationen