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=left
kü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 inserted
Fehler. color = white
funktioniert, 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}
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}