Textfarbe in einem Knoten in einem Beamer-Stil

Textfarbe in einem Knoten in einem Beamer-Stil

Ich habe eine einfache .sty-Datei geschrieben, die auf dem Beamer-Theme „Metropolis“ + Fontspec + Fira-Schriftarten aufbaut. Mir gefällt die Idee, dass auf der Titelseite Autoren und Institutionen wie im MWE erscheinen, d. h. eine Zeile pro Autor(en)/Institution. Der Nachteil dieses Layouts ist, dass ich, wenn ich die Makros \author und \institution verwenden möchte, die Argumente mit einem \\Trennzeichen für Coauthors aus derselben Instanz übergeben muss. align=leftkümmert sich darum. Das Problem ist, dass der neue Absatz die Standardfarbe verwendet, also Schwarz, und nicht mehr \usebeamercolor[fg]{author}. Die Verwendung color = \usebeamercolor[fg]{author}in der Knotendefinition führt zu einem Missing \endcsname insertedFehler. color = whitefunktioniert, was ich jetzt mache, aber das bedeutet, dass die Farbe hart codiert werden muss, was besser vermieden werden sollte. Eine Lösung könnte darin bestehen, die Liste der Autoren wie in aufzuteilenTeilen Sie die \@authors-Liste bei \andund über die Autoren laufen, aber das sieht für das, was ich mache, übertrieben aus. Gibt es eine einfachere Möglichkeit, die Anwendung \usebeamercolor[fg]{author}auf alle Autoren anzuwenden?

MWE:

\documentclass[11pt, aspectratio=169]{beamer}  % 
\usetheme[]{metropolis}

% Requirement
\usepackage{tikz}
\usepackage{fontspec}

% colors
\definecolor{BGlightBlu}{HTML}{3461AA}

% Fonts
\newfontfamily{\RuLight}{Rubik Light}

% Settings
\setbeamercolor*{author}{fg = white}


% innertheme 

\defbeamertemplate*{title page}{thisStyle}[1][]
{%

\begin{tikzpicture}[remember picture,overlay]
  \draw[fill=BGlightBlu, BGlightBlu] (current page.south west) rectangle
   (current page.north east);

% Title
\node
[   align=left,
    xshift=.6cm,
    yshift = 1cm, 
    minimum width=0.8\textwidth,
    text width=0.7\textwidth,
    anchor = west, 
    font = {\RuLight \LARGE},
    text = white,
    execute at begin node=\setlength{\baselineskip}{0.7\baselineskip}
] (title) at (current page.west)
{
    \inserttitle
};

% Author 
\node
[   
    below=0.6cm,
    align=left,
    anchor = north west,
    xshift=.6cm,
    font={\RuLight \footnotesize},
    align=left,
%   color=white, %works
%     color = \usebeamercolor[fg]{author}, % 'Missing \endcsname' error
    execute at begin node=\setlength{\baselineskip}{01.2\baselineskip}
] (author) at (title.south west){  \usebeamercolor[fg]{author} \insertauthor
                        };  

% Inst
\node
[   
    xshift = 0.5\textwidth,
    below=0.6cm,
    align=left,
    anchor = north west,
    font={\RuLight \footnotesize},
    align=left,
    color=white,
    execute at begin node=\setlength{\baselineskip}{1.2\baselineskip}
] (inst) at (title.south west){ \insertinstitute };

\end{tikzpicture}
}

\title[]{The title is so long that it needs two lines}
\author[]{Me Myself  \\    My First Coauthor, My Second Coauthor}
\institute[]{My Place alone (MPA)  \\ Their place, together (TPT)} 


\begin{document}

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

\end{document}

Titelrahmen

Nun habe ich den Code in ein BgMWE.tex und ein beamerthemeMWE.sty aufgeteilt um den Fehler zu reproduzieren.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%  beamerthemeMWE.sty
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\mode<presentation>
\usetheme[]{metropolis}

% Requirement
\usepackage{tikz}

% Settings
\setbeamercolor*{author}{fg = red}

% innertheme 

\setbeamertemplate{background}{
  \begin{tikzpicture}
  \draw[fill=BGlightBlu, BGlightBlu] (current page.south west) rectangle
   (current page.north east);
  \ifnum\thepage>1\relax%
   \fill[white,opacity=1] (0,0) rectangle(\the\paperwidth,\the\paperheight);
   \fi
  \end{tikzpicture}
}

\defbeamertemplate*{title page}{MWE}[1][]
{%

\begin{tikzpicture}[remember picture,overlay]

% Title
\node
[   align=left,
    xshift=.6cm,
    yshift = 1cm, 
    minimum width=0.8\textwidth,
    text width=0.7\textwidth,
    anchor = west, 
    font = { \LARGE},
    text = white,
    execute at begin node=\setlength{\baselineskip}{0.7\baselineskip}
] (title) at (current page.west)
{
    \inserttitle
};

% Author 
\node
[   
    below=0.6cm,
    align=left,
    anchor = north west,
    xshift=.6cm,
    font={ \footnotesize},
    align=left,
    color = author.fg, % Here is the source of the error
    execute at begin node=\setlength{\baselineskip}{0.8\baselineskip}
] (author) at (title.south west){  \insertauthor
                        };  

% Inst
\node
[   
    xshift = 0.5\textwidth,
    below=0.6cm,
    align=left,
    anchor = north west,
    font={ \footnotesize},
    align=left,
    color=white,
    execute at begin node=\setlength{\baselineskip}{0.8\baselineskip}
] (inst) at (title.south west){ \insertinstitute };

\node[below=0.5cm,
     align=left,
     anchor = north west,
     font={ \large},
     color=white,
] (date) at (author.south west){ \insertdate};
\end{tikzpicture}[action]{%
{\usebeamercolor[fg]{author}}% just to initialize the colour
}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%  BgMWE.tex
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\documentclass[11pt, aspectratio=169]{beamer}  % 
\usetheme{MWE}


\title[]{The title is so long that it needs two lines}
\author[]{Me Myself  \\    My First Coauthor, My Second Coauthor}
\institute[]{My Place alone (MPA)  \\ Their place, together (TPT)} 


\begin{document}

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

\end{document}

Wenn ich MWE.tex kompiliere, erhalte ichMWE.tex:14: Package xcolor Error: Undefined color `author.fg'.

Type  H <return>  for immediate help.```

Antwort1

Sofern Sie zuvor die Autorenfarbe verwendet haben (eine einfache Farbe {\usebeamercolor[fg]{author}}reicht aus), können Sie auf die Vordergrundkomponente wie folgt zugreifen author.fg:

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%  BgMWE.tex
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\documentclass[11pt, aspectratio=169]{beamer}% 


\begin{filecontents*}[overwrite]{beamerthemeMWE.sty}
\mode<presentation>
\usetheme{moloch}% modern fork of the metropolis theme

% Requirement
\usepackage{tikz}

\definecolor{BGlightBlu}{HTML}{3461AA}

% Settings
\setbeamercolor*{author}{fg = red}

% innertheme 

\setbeamertemplate{background}{
  \begin{tikzpicture}
  \draw[fill=BGlightBlu, BGlightBlu] (current page.south west) rectangle
   (current page.north east);
  \ifnum\thepage>1\relax%
   \fill[white,opacity=1] (0,0) rectangle(\the\paperwidth,\the\paperheight);
   \fi
  \end{tikzpicture}
}

\defbeamertemplate*{title page}{MWE}[1][]
{%
\begin{tikzpicture}[remember picture,overlay]

% Title
\node
[   align=left,
    xshift=.6cm,
    yshift = 1cm, 
    minimum width=0.8\textwidth,
    text width=0.7\textwidth,
    anchor = west, 
    font = {\LARGE},
    text = white,
    execute at begin node=\setlength{\baselineskip}{0.7\baselineskip}
] (title) at (current page.west)
{\inserttitle};

% Author 
\node
[   
    below=0.6cm,
    align=left,
    anchor = north west,
    xshift=.6cm,
    font={\footnotesize},
    align=left,
    color = author.fg, % Here is the source of the error
    execute at begin node=\setlength{\baselineskip}{0.8\baselineskip}
] (author) at (title.south west){\insertauthor};

% Inst
\node
[   
    xshift = 0.5\textwidth,
    below=0.6cm,
    align=left,
    anchor = north west,
    font={\footnotesize},
    align=left,
    color=white,
    execute at begin node=\setlength{\baselineskip}{0.8\baselineskip}
] (inst) at (title.south west){\insertinstitute};

\node[below=0.5cm,
     align=left,
     anchor = north west,
     font={\large},
     color=white,
] (date) at (author.south west){\insertdate};
\end{tikzpicture}
}

{\usebeamercolor[fg]{author}}
\end{filecontents*}
\usetheme{MWE}


\title[]{The title is so long that it needs two lines}
\author[]{Me Myself  \\    My First Coauthor, My Second Coauthor}
\institute[]{My Place alone (MPA)  \\ Their place, together (TPT)} 


\begin{document}

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

\end{document}

Bildbeschreibung hier eingeben

verwandte Informationen