summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/beamer-contrib
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2024-01-20 03:01:12 +0000
committerNorbert Preining <norbert@preining.info>2024-01-20 03:01:12 +0000
commit2fd07558ccd8d3c8e354f8ea0b342ef7ac1e87a3 (patch)
treedfa08a4c648cc5f7b4c8e5a55fcae40546d96d7d /macros/latex/contrib/beamer-contrib
parent849336321485cc972b028c23f8276fa6bdf4818e (diff)
CTAN sync 202401200301
Diffstat (limited to 'macros/latex/contrib/beamer-contrib')
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamerthemeconcrete/README.md90
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamerthemeconcrete/bernoulli/beamerthemebernoulli.sty605
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamerthemeconcrete/bernoulli/demo-bernoulli.pdfbin0 -> 128620 bytes
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamerthemeconcrete/bernoulli/demo-bernoulli.tex176
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamerthemeconcrete/dirichlet/beamerthemedirichlet.sty402
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamerthemeconcrete/dirichlet/demo-dirichlet.pdfbin0 -> 200517 bytes
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamerthemeconcrete/dirichlet/demo-dirichlet.tex171
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamerthemeconcrete/fermat/beamerthemefermat.sty433
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamerthemeconcrete/fermat/demo-fermat.pdfbin0 -> 152297 bytes
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamerthemeconcrete/fermat/demo-fermat.tex171
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamerthemeconcrete/gauss/beamerthemegauss.sty678
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamerthemeconcrete/gauss/demo-gauss.pdfbin0 -> 131046 bytes
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamerthemeconcrete/gauss/demo-gauss.tex175
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamerthemeconcrete/lagrange/beamerthemelagrange.sty379
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamerthemeconcrete/lagrange/demo-lagrange.pdfbin0 -> 22042 bytes
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamerthemeconcrete/lagrange/demo-lagrange.tex71
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamerthemeconcrete/mobius/beamerthememobius.sty291
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamerthemeconcrete/mobius/demo-mobius.pdfbin0 -> 153655 bytes
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamerthemeconcrete/mobius/demo-mobius.tex171
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamerthemeconcrete/riemann/beamerthemeriemann.sty945
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamerthemeconcrete/riemann/demo-riemann.pdfbin0 -> 98512 bytes
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamerthemeconcrete/riemann/demo-riemann.tex178
22 files changed, 4936 insertions, 0 deletions
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamerthemeconcrete/README.md b/macros/latex/contrib/beamer-contrib/themes/beamerthemeconcrete/README.md
new file mode 100644
index 0000000000..816f6206b3
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamerthemeconcrete/README.md
@@ -0,0 +1,90 @@
+# The `concrete` bundle: A collection of flat beamer themes for LaTeX presentations
+
+```
+Author: Jianrui Lyu <tolvjr@163.com>
+Website: https://github.com/lvjr/concrete
+License: The LaTeX Project Public License 1.3c
+```
+
+## 1\. Introduction
+
+The `concrete` bundle provides a collection of flat beamer themes for making LaTeX presentations, especially for academic and scientific presentations.
+
+It consists of the following seven beamer themes:
+
+- light background themes
+ - beamer theme bernoulli
+ - beamer theme fermat
+ - beamer theme lagrange
+ - beamer theme riemann
+- dark background themes
+ - beamer theme dirichlet
+ - beamer theme gauss
+ - beamer theme mobius
+
+## 2\. Usage
+
+After installing this bundle, you can write a document like this:
+
+```
+\documentclass[xcolor={rgb}]{beamer}
+\usetheme{bernoulli}
+\begin{document}
+
+\title{Beamer Theme Bernoulli}
+\subtitle{A nice theme for LaTeX presentations}
+\author{Author Name}
+\institute{Institute Name}
+
+\begin{frame}[plain]
+\titlepage
+\end{frame}
+
+\section{Section One}
+
+\subsection{Subsection One}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\subsection{Subsection Two}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\section{Section Two}
+
+\subsection{Subsection One}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\subsection{Subsection Two}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\end{document}
+```
+
+Note that you **NEED** to add `xcolor={rgb}` option in loading `beamer` class. You can also have a look at the demo files included in this bundle.
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamerthemeconcrete/bernoulli/beamerthemebernoulli.sty b/macros/latex/contrib/beamer-contrib/themes/beamerthemeconcrete/bernoulli/beamerthemebernoulli.sty
new file mode 100644
index 0000000000..2bb3d431d8
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamerthemeconcrete/bernoulli/beamerthemebernoulli.sty
@@ -0,0 +1,605 @@
+% -*- coding: utf-8 -*-
+% ----------------------------------------------------------------------------
+% Author: Jianrui Lyu <tolvjr@163.com>
+% Website: https://github.com/lvjr/concrete
+% License: The LaTeX Project Public License 1.3c
+% ----------------------------------------------------------------------------
+
+\ProvidesPackage{beamerthemebernoulli}[2024-01-19 v2024A Beamer Theme Bernoulli]
+
+\makeatletter
+
+% compatible with old versions of beamer
+\providecommand{\beamer@endinputifotherversion}[1]{}
+
+\RequirePackage{tikz,etoolbox,adjustbox}
+\usetikzlibrary{positioning}
+
+\mode<presentation>
+
+\setbeamersize{text margin left=8mm,text margin right=8mm}
+
+%% ----------------- background canvas and background ----------------
+
+\defbeamertemplate{background}{line}{%
+ \begin{tikzpicture}
+ \useasboundingbox (0,0) rectangle (\paperwidth,\paperheight);
+ \draw[xstep=\paperwidth,ystep=1mm,color=tcolor] (0,0) grid (\paperwidth,\paperheight);
+ \end{tikzpicture}%
+}
+
+\defbeamertemplate{background}{linear}{%
+ \begin{tikzpicture}
+ \useasboundingbox (0,0) rectangle (\paperwidth,\paperheight);
+ \draw[pattern=horizontal lines, pattern color=tcolor]
+ (0,0) rectangle (\paperwidth,\paperheight);
+ \end{tikzpicture}%
+}
+
+\defbeamertemplate{background}{lattice}{%
+ \begin{tikzpicture}
+ \useasboundingbox (0,0) rectangle (\paperwidth,\paperheight);
+ \draw[step=1mm,color=tcolor] (0,0) grid (\paperwidth,\paperheight);
+ \end{tikzpicture}%
+}
+
+% need "text badly ragged" option for correct space skips
+% see http://tex.stackexchange.com/a/132748/8956
+\gdef\my@background@title{%
+ \begin{tikzpicture}
+ \useasboundingbox (0,0) rectangle (\paperwidth,\paperheight);
+ \fill[fill=fcolor]
+ (0,0) rectangle (\paperwidth,\paperheight);
+ \node[above right,text width=0.76\paperwidth,text badly ragged,fill=white,
+ inner sep=0.02\paperwidth,minimum height=0.2\paperheight]
+ (one) at (0.1\paperwidth,0.5\paperheight) {%
+ \usebeamerfont{title}\usebeamercolor[fg]{title}\inserttitle
+ \ifx\insertsubtitle\@empty\else
+ \\[5pt]\usebeamerfont{subtitle}\usebeamercolor[fg]{subtitle}
+ \insertsubtitle\\
+ \fi
+ };
+ \node[below right,text width=0.76\paperwidth,text badly ragged,
+ inner sep=0.02\paperwidth,minimum height=0.2\paperheight]
+ (two) at (0.1\paperwidth,0.5\paperheight) {%
+ \usebeamerfont{author}\usebeamercolor[fg]{author}\insertauthor\\%
+ \ifx\insertinstitute\@empty\else
+ \usebeamerfont{institute}\usebeamercolor[fg]{institute}\insertinstitute\\%
+ \fi
+ \usebeamerfont{date}\usebeamercolor[fg]{date}\insertdate\\%
+ };
+ \fill[fcolor!70!white]
+ (one.north west) -- ++(-0.1\paperwidth,0.1\paperwidth) node[coordinate](nw){}
+ -- +(\paperwidth,0) node[coordinate](ne){} -- (one.north east) -- cycle;
+ \fill[fcolor!50!scolor]
+ (two.south west) -- ++(-0.1\paperwidth,-0.1\paperwidth) node[coordinate](sw){}
+ -- +(\paperwidth,0) node[coordinate](se){} -- (two.south east) -- cycle;
+ \fill[fcolor!70!scolor]
+ (one.north west) -- (two.south west) -- (sw) -- (nw) -- cycle
+ (one.north east) -- (two.south east) -- (se) -- (ne) -- cycle;
+ \draw<beamer:0>[thick,densely dashed,dcolor]
+ (one.north west) -- (one.south west) -- (one.south east) -- (one.north east) -- cycle
+ (two.north west) -- (two.south west) -- (two.south east) -- (two.north east);
+ \draw<beamer:0>[thick,dcolor]
+ (one.north west) -- (nw) -- (ne) -- (one.north east)
+ (two.south west) -- (sw) -- (se) -- (two.south east);
+ \draw<beamer:0>[very thick,dcolor] (sw) -- (nw) (se) -- (ne);
+ \end{tikzpicture}
+}
+
+\newcommand{\maincontents}{Main Contents}
+
+\gdef\my@background@section{%
+ \begin{tikzpicture}
+ \useasboundingbox (0,0) rectangle (\paperwidth,\paperheight);
+ \node[right,text width=0.76\paperwidth,text badly ragged,inner xsep=0.02\paperwidth,
+ inner ysep=0.04\paperwidth,minimum height=0.2\paperheight]
+ (main) at (0.1\paperwidth,0.5\paperheight) {%
+ \begin{minipage}{0.76\paperwidth}
+ \usebeamertemplate{section page content}%
+ \end{minipage}%
+ };
+ \path (main.north west) +(-0.1\paperwidth,0)
+ node[above right,minimum width=\paperwidth,minimum height=0.1\paperheight,
+ text width=0.76\paperwidth,inner xsep=0.12\paperwidth,
+ text badly ragged,fill=fcolor,text=dcolor] (top)
+ {\usebeamerfont{section in toc}\maincontents};
+ \path (main.south west) +(-0.1\paperwidth,0)
+ node[below right,minimum width=\paperwidth,minimum height=0.1\paperheight,
+ fill=fcolor!50!scolor] (bot) {};
+ \draw<beamer:0> (top.north west) -- (top.north east)
+ (top.south west) -- (top.south east);
+ \draw<beamer:0> (bot.north west) -- (bot.north east)
+ (bot.south west) -- (bot.south east);
+ \end{tikzpicture}
+}
+
+\gdef\my@background@subsection{%
+ \begin{tikzpicture}
+ \useasboundingbox (0,0) rectangle (\paperwidth,\paperheight);
+ \node[right,text width=0.76\paperwidth,text badly ragged,inner xsep=0.02\paperwidth,
+ inner ysep=0.04\paperwidth,minimum height=0.2\paperheight]
+ (main) at (0.1\paperwidth,0.5\paperheight) {%
+ \begin{minipage}{0.76\paperwidth}
+ \usebeamertemplate{subsection page content}%
+ \end{minipage}
+ };
+ \path (main.north west) +(-0.1\paperwidth,0)
+ node[above right,minimum width=\paperwidth,minimum height=0.08\paperheight,
+ text width=0.76\paperwidth,inner xsep=0.12\paperwidth,
+ text badly ragged,fill=fcolor,text=dcolor] (top)
+ {\usebeamerfont{subsection in toc}\maincontents};
+ \path (main.south west) +(-0.1\paperwidth,0)
+ node[below right,minimum width=\paperwidth,minimum height=0.08\paperheight,
+ fill=fcolor!50!scolor] (bot) {};
+ \draw<beamer:0> (top.north west) -- (top.north east)
+ (top.south west) -- (top.south east);
+ \draw<beamer:0> (bot.north west) -- (bot.north east)
+ (bot.south west) -- (bot.south east);
+ \end{tikzpicture}
+}
+
+%% -------------------------- title page -----------------------------
+
+\defbeamertemplate{title page}{snake}
+{%
+ \nointerlineskip
+ \begin{adjustbox}{width=\paperwidth,center}%
+ \my@background@title
+ \end{adjustbox}%
+}
+
+%% ----------------------- section and subsection --------------------
+
+\def\sectionintocskip{0.5em}
+\patchcmd{\beamer@sectionintoc}{\vskip1.5em}{\vskip\sectionintocskip}{}{}
+
+% create new template for section
+\defbeamertemplate{section}{simple}{%
+ \insertsectionnumber.\hspace*{1ex}\insertsection%
+}
+
+\defbeamertemplate{at begin section}{normal}{%
+ \frame{\sectionpage}
+}
+\defbeamertemplate{at begin section}{plain}{%
+ \frame[plain]{\sectionpage}
+}
+\AtBeginSection[]{\usebeamertemplate{at begin section}}
+
+\defbeamertemplate{section page}{snake}{%
+ \nointerlineskip
+ \begin{adjustbox}{width=\paperwidth,center}%
+ \my@background@section
+ \end{adjustbox}%
+}
+
+\defbeamertemplate{section page content}{simple}{
+ \begin{beamercolorbox}[wd=\textwidth,center]{section title}%
+ \usebeamerfont{section title}
+ \usebeamertemplate{section}%
+ \end{beamercolorbox}
+}
+\defbeamertemplate{section page content}{level}{
+ \tableofcontents[sectionstyle=show/shaded,subsectionstyle=hide]%
+}
+
+% create new template for subsection
+\defbeamertemplate{subsection}{simple}{%
+ \insertsectionnumber.\insertsubsectionnumber\hspace*{2ex}\insertsubsection%
+}
+
+\defbeamertemplate{at begin subsection}{normal}{%
+ \frame{\subsectionpage}
+}
+\defbeamertemplate{at begin subsection}{plain}{%
+ \frame[plain]{\subsectionpage}
+}
+\AtBeginSubsection[]{\usebeamertemplate{at begin subsection}}
+
+\defbeamertemplate{subsection page}{snake}{%
+ \nointerlineskip
+ \begin{adjustbox}{width=\paperwidth,center}%
+ \my@background@subsection
+ \end{adjustbox}%
+}
+
+\defbeamertemplate{subsection page content}{simple}{
+ \begin{beamercolorbox}[wd=\textwidth,center]{subsection title}%
+ \usebeamerfont{subsection title}%
+ \usebeamertemplate{subsection}%
+ \end{beamercolorbox}%
+}
+\defbeamertemplate{subsection page content}{level}{%
+ \tableofcontents[sectionstyle=hide,subsectionstyle=show/shaded/hide]%
+}
+\defbeamertemplate{subsection in toc}{triangle}{%
+ \leavevmode\leftskip=2.5em\scriptsize\raise1.25pt%
+ \rlap{\hskip-1.5em\donotcoloroutermaths$\blacktriangleright$}%
+ \normalsize\inserttocsubsection\par
+}
+
+%% ---------------------- headline and footline ----------------------
+
+\defbeamertemplate{footline left}{author}{%
+ \insertshortauthor
+}
+
+\defbeamertemplate{footline center}{title}{%
+ \insertshorttitle
+}
+
+\defbeamertemplate{footline right}{number}{%
+ \Acrobatmenu{GoToPage}{\insertframenumber{}/\inserttotalframenumber}%
+}
+\defbeamertemplate{footline right}{normal}{%
+ \hyperlinkframeendprev{$\vartriangle$}
+ \Acrobatmenu{GoToPage}{\insertframenumber{}/\inserttotalframenumber}
+ \hyperlinkframestartnext{$\triangledown$}%
+}
+
+\defbeamertemplate{footline}{simple}{%
+ \hbox{%
+ \begin{beamercolorbox}[wd=.2\paperwidth,ht=2.25ex,dp=1ex,left]{footline}%
+ \usebeamerfont{footline}\kern\beamer@leftmargin
+ \usebeamertemplate{footline left}%
+ \end{beamercolorbox}%
+ \begin{beamercolorbox}[wd=.6\paperwidth,ht=2.25ex,dp=1ex,center]{footline}%
+ \usebeamerfont{footline}\usebeamertemplate{footline center}%
+ \end{beamercolorbox}%
+ \begin{beamercolorbox}[wd=.2\paperwidth,ht=2.25ex,dp=1ex,right]{footline}%
+ \usebeamerfont{footline}\usebeamertemplate{footline right}%
+ \kern\beamer@rightmargin
+ \end{beamercolorbox}%
+ }%
+}
+
+\defbeamertemplate{footline}{sectioning}{%
+ % default height is 0.4pt, which is ignored by adobe reader, so we increase it by 0.2pt
+ {\usebeamercolor[fg]{separator line}\hrule height 0.6pt}%
+ \hbox{%
+ \begin{beamercolorbox}[wd=.8\paperwidth,ht=2.25ex,dp=1ex,left]{footline}%
+ \usebeamerfont{footline}\kern\beamer@leftmargin\insertshorttitle
+ \ifx\insertsection\@empty\else\qquad$\vartriangleright$\qquad\insertsection\fi
+ \ifx\insertsubsection\@empty\else\qquad$\vartriangleright$\qquad\insertsubsection\fi
+ \end{beamercolorbox}%
+ \begin{beamercolorbox}[wd=.2\paperwidth,ht=2.25ex,dp=1ex,right]{footline}%
+ \usebeamerfont{footline}\usebeamertemplate{footline right}%
+ \kern\beamer@rightmargin
+ \end{beamercolorbox}%
+ }%
+}
+
+% customize mini frames template to get both a progress and navigation bar
+
+\newcommand{\my@bigsize}{9}
+\newcommand{\my@medsize}{7}
+\newcommand{\my@smallsize}{5}
+\let\my@box@size=\my@bigsize
+
+\newlength{\my@tempsize}
+
+\newcounter{my@sectnum}
+
+\newcommand{\my@lastdigit}[1]{%
+ \loop\ifnum\value{#1}>9\addtocounter{#1}{-10}\repeat
+ \arabic{#1}%
+}
+
+\newcommand\my@fixedbox[2]{%
+ \makebox[#1]{\rule[-1ex]{0pt}{3.25ex}#2}%
+}
+
+\newcommand\my@colorbox[3]{%
+ {\setlength{\fboxsep}{0pt}\colorbox{#1}{\my@fixedbox{#2}{#3}}}%
+}
+
+\newcommand{\my@navbox}[1][]{%
+ % see http://tex.stackexchange.com/a/53091/8956
+ \if\relax\detokenize{#1}\relax
+ \def\my@tempbox{\my@fixedbox}%
+ \else
+ \def\my@tempbox{\my@colorbox{#1}}%
+ \fi
+ \ifx\my@box\my@bigbox
+ \def\my@temptext{\my@lastdigit{my@sectnum}}%
+ \fi
+ \ifx\my@box\my@medbox
+ \def\my@temptext{$\diamond$}%
+ \fi
+ \ifx\my@box\my@smallbox
+ \def\my@temptext{$-$}%
+ \fi
+ \my@tempbox{\my@tempsize}{\my@temptext}%
+}
+
+\defbeamertemplate{navigation box}{home}{%
+ \setlength{\my@tempsize}{\my@box@size pt}%
+ \my@colorbox{filler2}{\my@tempsize}{$\equiv$}%
+}
+
+\defbeamertemplate{navigation box}{done}{%
+ \setlength{\my@tempsize}{\my@box@size pt}%
+ \my@navbox[filler2]%
+}
+
+\defbeamertemplate{navigation box}{todo}{%
+ \setlength{\my@tempsize}{\my@box@size pt}%
+ \my@navbox
+}
+
+\newcommand{\my@bigbox}{\global\let\my@box@size=\my@bigsize\usebeamertemplate{navigation box}}
+\newcommand{\my@medbox}{\global\let\my@box@size=\my@medsize\usebeamertemplate{navigation box}}
+\newcommand{\my@smallbox}{\global\let\my@box@size=\my@smallsize\usebeamertemplate{navigation box}}
+\let\my@medbox@orig=\my@medbox
+\let\my@smallbox@orig=\my@smallbox
+\let\my@box=\my@bigbox
+
+\newcounter{my@subsectionnumber}
+\newcounter{my@normalframenumber}
+
+\AtBeginDocument{%
+ \pretocmd{\subsection}{\refstepcounter{my@subsectionnumber}}{}{}%
+ \patchcmd{\beamer@writeslidentry}{\addtocontents}{\stepcounter{my@normalframenumber}\addtocontents}{}{}%
+}
+
+\AtEndDocument{%
+ \immediate\write\@auxout{%
+ \noexpand\gdef\noexpand\my@totalsectionnumber{\the\c@section}%
+ \noexpand\gdef\noexpand\my@totalsubsectionnumber{\the\c@my@subsectionnumber}%
+ \noexpand\gdef\noexpand\my@normalframenumber{\the\c@my@normalframenumber}%
+ }%
+}
+
+\def\my@totalsectionnumber{0}
+\def\my@totalsubsectionnumber{0}
+\def\my@normalframenumber{50} % use it instead of \inserttotalframenumber
+
+\newlength{\my@progress@width}
+\setlength{\my@progress@width}{\dimexpr0.8\paperwidth-\beamer@leftmargin\relax}
+
+\newlength{\my@slidebox@width}
+
+\def\my@scale@subsection{1}
+\def\my@scale@slide{1}
+
+\newcommand{\my@adjustbox}{%
+ \ifnum\my@normalframenumber>80\relax
+ \gdef\my@scale@subsection{0.7}%
+ \else
+ \ifnum\my@normalframenumber>45\relax
+ \gdef\my@scale@subsection{0.9}%
+ \fi\fi
+ \pgfmathsetlength{\global\my@slidebox@width}{%
+ (\my@progress@width - 2pt - 1pt*\my@bigsize*(\my@totalsectionnumber+1)%
+ - 1pt*\my@medsize*\my@scale@subsection*\my@totalsubsectionnumber) / %
+ max(1,\my@normalframenumber-\my@totalsectionnumber-\my@totalsubsectionnumber-1)%
+ }%
+ \pgfmathsetlength{\global\my@slidebox@width}{%
+ min(\my@slidebox@width,1pt*\my@smallsize)%
+ }%
+ \gdef\my@scale@slide{\strip@pt\dimexpr
+ \my@slidebox@width/\my@smallsize
+ \relax}%
+ \gdef\my@medbox{\scalebox{\my@scale@subsection}[1]{\my@medbox@orig}}%
+ \gdef\my@smallbox{\scalebox{\my@scale@slide}[1]{\my@smallbox@orig}}%
+ % only adjust boxes once
+ \global\let\my@adjustbox=\relax
+}
+
+\renewcommand{\sectionentry}[5]{\global\let\my@box=\my@bigbox\setcounter{my@sectnum}{#1}}
+
+\pretocmd{\beamer@setuplinks}{\renewcommand{\beamer@subsectionentry}[5]{}}{}{}
+\apptocmd{\beamer@setuplinks}{\global\let\beamer@subsectionentry\mybeamer@subsectionentry}{}{}
+
+\newcommand{\mybeamer@subsectionentry}[5]{\global\let\my@box=\my@medbox}
+
+\renewcommand{\slideentry}[6]{%
+ \def\my@temp@i{1/1}%
+ \def\my@temp@ii{#4}%
+ \ifx\my@temp@i\my@temp@ii % title page
+ \setbeamertemplate{navigation box}[home]%
+ \else
+ \setbeamertemplate{navigation box}[done]%
+ \fi
+ \ifnum\c@section<#1%
+ \setbeamertemplate{navigation box}[todo]%
+ \else
+ \ifnum\c@section=#1\ifnum\c@subsection<#2%
+ \setbeamertemplate{navigation box}[todo]%
+ \else
+ \ifnum\c@subsection=#2\ifnum\c@subsectionslide<#3%
+ \setbeamertemplate{navigation box}[todo]%
+ \fi\fi
+ \fi\fi
+ \fi
+ \ifx\my@temp@i\my@temp@ii % title page
+ \beamer@link(#4){\my@bigbox}%
+ \else
+ \beamer@link(#4){\my@box}%
+ \fi
+ \global\let\my@box=\my@smallbox
+}
+
+\defbeamertemplate{footline}{progress}{%
+ % default height is 0.4pt, which is ignored by adobe reader, so we increase it by 0.2pt
+ {\usebeamercolor[fg]{separator line}\hrule height 0.6pt}%
+ \begin{beamercolorbox}[wd=\paperwidth,ht=2.25ex,dp=1ex]{footline}%
+ \usebeamerfont{footline}%
+ \kern\beamer@leftmargin
+ \my@adjustbox\dohead%
+ \hfill\usebeamertemplate{footline right}%
+ \kern\beamer@rightmargin
+ \end{beamercolorbox}%
+}
+
+%% ------------------------- frame title -----------------------------
+
+\newcommand{\insertframetitlemark}{}
+
+\defbeamertemplate{frametitle}{simple}[1][]
+{%
+ \nointerlineskip
+ \begin{beamercolorbox}[wd=\paperwidth,sep=0pt,leftskip=\beamer@leftmargin,%
+ rightskip=\beamer@rightmargin,#1]{frametitle}
+ \usebeamerfont{frametitle}%
+ \rule[-3.6mm]{0pt}{12mm}\insertframetitle
+ \ifx\insertframetitlemark\@empty\else\hfill
+ {\usebeamercolor{normal text}\color{fg!30!bg}\insertframetitlemark}%
+ \fi
+ \rule[-3.6mm]{0pt}{12mm}\par
+ \end{beamercolorbox}
+}
+
+%% ------------------- block and theorem -----------------------------
+
+\defbeamertemplate{theorem begin}{simple}
+{%
+ \upshape%\bfseries\inserttheoremheadfont
+ {\usebeamercolor[fg]{theoremname}%
+ \inserttheoremname\inserttheoremnumber
+ \ifx\inserttheoremaddition\@empty\else\ (\inserttheoremaddition)\fi%
+ %\inserttheorempunctuation
+ }%
+ \quad\normalfont
+}
+\defbeamertemplate{theorem end}{simple}{\par}
+
+\defbeamertemplate{proof begin}{simple}
+{%
+ %\bfseries
+ {\usebeamercolor[fg]{proofname}\insertproofname}%
+ \quad\normalfont
+}
+\defbeamertemplate{proof end}{simple}{\par}
+
+%% --------------------------- font theme ----------------------------
+
+\setbeamerfont{title}{size=\LARGE}
+\setbeamerfont{subtitle}{size=\large}
+\setbeamerfont{author}{size=\normalsize}
+\setbeamerfont{institute}{size=\normalsize}
+\setbeamerfont{date}{size=\normalsize}
+\setbeamerfont{section in toc}{size=\large}
+\setbeamerfont{subsection in toc}{size=\large}
+\setbeamerfont{frametitle}{size=\large}
+\setbeamerfont{block title}{size=\normalsize}
+
+\usefonttheme{professionalfonts}
+%\usepackage{arev}
+
+%\setlength{\parskip}{5pt plus 1pt minus 1pt}
+
+%% ---------------------------- color theme --------------------------
+
+% always use rgb colors in pdf files
+\substitutecolormodel{hsb}{rgb}
+
+\definecolor{red99}{Hsb}{0,0.9,0.9}
+\definecolor{yellow86}{Hsb}{60,0.8,0.6}
+\definecolor{cyan19}{Hsb}{180,0.1,0.9}
+\definecolor{cyan95}{Hsb}{189,0.88,0.49}
+\definecolor{blue77}{Hsb}{240,0.7,0.7}
+\definecolor{blue99}{Hsb}{240,0.9,0.9}
+\definecolor{magenta88}{Hsb}{300,0.8,0.8}
+
+\colorlet{text1}{black}
+\colorlet{back1}{white}
+\colorlet{accent1}{cyan95}
+\colorlet{accent2}{blue99}
+\colorlet{accent3}{red99}
+\colorlet{accent4}{yellow86}
+\colorlet{accent5}{magenta88}
+\colorlet{filler1}{accent1!40!back1}
+\colorlet{filler2}{accent2!40!back1}
+\colorlet{filler3}{accent3!40!back1}
+\colorlet{filler4}{accent4!40!back1}
+\colorlet{filler5}{accent5!40!back1}
+\colorlet{tcolor}{text1!10!back1} % texture color
+\colorlet{dcolor}{white} % draw color
+\colorlet{fcolor}{cyan95} % fill color
+\colorlet{scolor}{black} % shade color
+
+\setbeamercolor{normal text}{bg=back1,fg=text1}
+\setbeamercolor{structure}{fg=cyan95}
+\setbeamercolor{local structure}{fg=blue99}
+\setbeamercolor{footline}{bg=,fg=black}
+\setbeamercolor{title}{use=structure,fg=structure.fg}
+\setbeamercolor{subtitle}{fg=text1}
+\setbeamercolor{author}{fg=white}
+\setbeamercolor{institute}{fg=white}
+\setbeamercolor{date}{fg=white}
+\setbeamercolor{section in toc}{parent=title}
+\setbeamercolor{subsection in toc}{parent=title}
+\setbeamercolor{section in toc shaded}{parent=normal text}
+\setbeamercolor{subsection in toc shaded}{parent=normal text}
+\setbeamercolor{frametitle}{parent=title}
+\setbeamercolor{separator line}{fg=accent2}
+\setbeamercolor{theoremname}{parent=subtitle}
+\setbeamercolor{proofname}{parent=subtitle}
+\setbeamercolor{block title}{fg=accent1,bg=gray}
+\setbeamercolor{block body}{bg=lightgray}
+\setbeamercolor{block title example}{fg=accent2,bg=gray}
+\setbeamercolor{block body example}{bg=lightgray}
+\setbeamercolor{block title alerted}{fg=accent3,bg=gray}
+\setbeamercolor{block body alerted}{bg=lightgray}
+
+%% ------------------------ select templates -------------------------
+
+\setbeamertemplate{background canvas}[default]
+\setbeamertemplate{background}[line]
+\setbeamertemplate{footline}[progress]
+\setbeamertemplate{footline left}[author]
+\setbeamertemplate{footline center}[title]
+\setbeamertemplate{footline right}[number]
+\setbeamertemplate{title page}[snake]
+\setbeamertemplate{at begin section}[plain]
+\setbeamertemplate{at begin subsection}[plain]
+\setbeamertemplate{section page}[snake]
+\setbeamertemplate{section page content}[level]
+\setbeamertemplate{subsection page}[snake]
+\setbeamertemplate{subsection page content}[level]
+\setbeamertemplate{theorem begin}[default]
+\setbeamertemplate{theorem end}[default]
+\setbeamertemplate{proof begin}[default]
+\setbeamertemplate{proof end}[default]
+\setbeamertemplate{frametitle}[simple]
+\setbeamertemplate{navigation symbols}{}
+\setbeamertemplate{section}[simple]
+\setbeamertemplate{subsection}[simple]
+\setbeamertemplate{section in toc}[sections numbered]
+\setbeamertemplate{subsection in toc}[subsections numbered]
+\setbeamertemplate{section in toc shaded}[default][100]
+\setbeamertemplate{subsection in toc shaded}[default][100]
+\setbeamertemplate{itemize items}[default]
+\setbeamertemplate{enumerate items}[default]
+
+%% ----------------------- handout mode ------------------------------
+
+\mode<handout>{
+ \setbeamertemplate{background canvas}{}
+ \setbeamertemplate{background}{}
+ \setbeamertemplate{footline}[sectioning]
+ \colorlet{dcolor}{darkgray}
+ \colorlet{fcolor}{white}
+ \colorlet{scolor}{white}
+ \setbeamercolor{normal text}{fg=black, bg=white}
+ \setbeamercolor{title}{fg=accent1}
+ \setbeamercolor{subtitle}{fg=accent1!70!gray}
+ \setbeamercolor{author}{fg=black}
+ \setbeamercolor{institute}{fg=black}
+ \setbeamercolor{date}{fg=black}
+ \setbeamercolor{section in toc}{fg=accent1!90!gray}
+ \setbeamercolor{subsection in toc}{fg=accent1!80!gray}
+ \setbeamercolor{section in toc shaded}{fg=lightgray}
+ \setbeamercolor{subsection in toc shaded}{fg=lightgray}
+ \setbeamercolor{frametitle}{fg=accent1!70!gray,bg=}
+ \setbeamercolor{theoremname}{fg=accent1!60!gray}
+ \setbeamercolor{proofname}{fg=accent1!60!gray}
+ \setbeamercolor{footline}{bg=white,fg=black}
+}
+
+\mode
+<all>
+
+\makeatother
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamerthemeconcrete/bernoulli/demo-bernoulli.pdf b/macros/latex/contrib/beamer-contrib/themes/beamerthemeconcrete/bernoulli/demo-bernoulli.pdf
new file mode 100644
index 0000000000..6fb2d5bba5
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamerthemeconcrete/bernoulli/demo-bernoulli.pdf
Binary files differ
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamerthemeconcrete/bernoulli/demo-bernoulli.tex b/macros/latex/contrib/beamer-contrib/themes/beamerthemeconcrete/bernoulli/demo-bernoulli.tex
new file mode 100644
index 0000000000..08da497114
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamerthemeconcrete/bernoulli/demo-bernoulli.tex
@@ -0,0 +1,176 @@
+% -*- coding: utf-8 -*-
+
+\documentclass[11pt,xcolor={rgb}]{beamer}
+
+\usetheme{bernoulli}
+
+% remove these two lines to hide footlines in (sub)section pages
+\setbeamertemplate{at begin section}[normal]
+\setbeamertemplate{at begin subsection}[normal]
+
+\usepackage{arev}
+
+\begin{document}
+
+\title{Beamer Theme Bernoulli}
+\subtitle{A nice theme for LaTeX presentations}
+\author{Author Name}
+\institute{Institute Name}
+
+\begin{frame}[plain]
+\titlepage
+\end{frame}
+
+\section{Section One}
+
+\subsection{Subsection One}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\subsection{Subsection Two}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\subsection{Subsection Three}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\section{Section Two}
+
+\subsection{Subsection One}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\subsection{Subsection Two}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\subsection{Subsection Three}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\section{Section Three}
+
+\subsection{Subsection One}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\subsection{Subsection Two}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\subsection{Subsection Three}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\end{document}
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamerthemeconcrete/dirichlet/beamerthemedirichlet.sty b/macros/latex/contrib/beamer-contrib/themes/beamerthemeconcrete/dirichlet/beamerthemedirichlet.sty
new file mode 100644
index 0000000000..d9590b9b01
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamerthemeconcrete/dirichlet/beamerthemedirichlet.sty
@@ -0,0 +1,402 @@
+% -*- coding: utf-8 -*-
+% ----------------------------------------------------------------------------
+% Author: Jianrui Lyu <tolvjr@163.com>
+% Website: https://github.com/lvjr/concrete
+% License: The LaTeX Project Public License 1.3c
+% ----------------------------------------------------------------------------
+
+\ProvidesPackage{beamerthemedirichlet}[2024-01-19 v2024A Beamer Theme Dirichlet]
+
+\makeatletter
+
+% compatible with old versions of beamer
+\providecommand{\beamer@endinputifotherversion}[1]{}
+
+\RequirePackage{tikz,adjustbox}
+\usetikzlibrary{decorations.pathmorphing,calc}
+
+\mode<presentation>
+
+\setbeamersize{text margin left=8mm,text margin right=8mm}
+
+%% ----------------- background canvas and background ----------------
+
+\defbeamertemplate{background}{dirichlet}{%
+ \begin{tikzpicture}
+ \useasboundingbox (0,0) rectangle (\paperwidth,\paperheight);
+ \foreach \i in {0,16,...,128} \foreach \j in {0,16,...,96} {
+ \path[draw=blue77!90!black] (\i mm,\j mm) circle (16mm);
+ }
+ \end{tikzpicture}%
+}
+
+% need "text badly ragged" option for correct space skips
+% see http://tex.stackexchange.com/a/132748/8956
+\gdef\my@background@title
+{%
+ \begin{tikzpicture}
+ \useasboundingbox (0,0) rectangle (\paperwidth,\paperheight);
+ \path[fill=fcolor]
+ (0,0.25\paperheight) -- (0,0) -- (\paperwidth,0) -- (\paperwidth,0.25\paperheight)
+ decorate[decoration={snake,segment length=3.15mm}] { -- cycle };
+ \path[draw=dcolor,thick] (\paperwidth,0.25\paperheight)
+ decorate[decoration={snake,segment length=3.15mm}] { -- (0,0.25\paperheight) };
+ \path[fill=fcolor]
+ (0,0.85\paperheight) -- (0,\paperheight) -- (\paperwidth,\paperheight) -- (\paperwidth,0.85\paperheight)
+ decorate[decoration={snake,segment length=3.15mm}] { -- cycle };
+ \path[draw=dcolor,thick] (\paperwidth,0.85\paperheight)
+ decorate[decoration={snake,segment length=3.15mm}] { -- (0,0.85\paperheight) };
+ \node[text width=0.9\paperwidth,text badly ragged] at (0.5\paperwidth,0.925\paperheight) {%
+ \begin{minipage}[c][0.15\paperheight]{0.9\paperwidth}%
+ \centering
+ \usebeamerfont{date}\usebeamercolor[fg]{date}\insertdate
+ \end{minipage}
+ };
+ \node[text width=0.9\paperwidth,text badly ragged] at (0.5\paperwidth,0.55\paperheight) {%
+ \begin{minipage}[c][0.6\paperheight]{0.9\paperwidth}
+ \centering
+ \usebeamerfont{title}\usebeamercolor[fg]{title}\inserttitle
+ \ifx\insertsubtitle\@empty\else
+ \\[5pt]\usebeamerfont{subtitle}\usebeamercolor[fg]{subtitle}
+ \insertsubtitle
+ \fi
+ \end{minipage}
+ };
+ \node[text width=0.9\paperwidth,text badly ragged] at (0.5\paperwidth,0.125\paperheight) {%
+ \begin{minipage}[c][0.25\paperheight]{0.9\paperwidth}
+ \centering
+ \usebeamerfont{author}\usebeamercolor[fg]{author}\insertauthor\\[3pt]
+ \usebeamerfont{institute}\usebeamercolor[fg]{institute}\insertinstitute
+ \end{minipage}
+ };
+ \end{tikzpicture}
+}
+
+\gdef\my@background@section
+{%
+ \begin{tikzpicture}
+ \useasboundingbox (0,0) rectangle (\paperwidth,\paperheight);
+ \path[fill=fcolor]
+ (0,0.1\paperheight) -- (0,0) -- (\paperwidth,0) -- (\paperwidth,0.1\paperheight)
+ to[bend right=10] ($(0,0.1\paperheight)$);
+ \path[draw=dcolor,thick] (\paperwidth,0.1\paperheight) to[bend right=10] ($(0,0.1\paperheight)$);
+ \node[text width=\textwidth,text badly ragged] at (0.5\paperwidth,0.6\paperheight) {%
+ \begin{minipage}[c]{\textwidth}
+ \usebeamertemplate{section page content}%
+ \end{minipage}
+ };
+ \end{tikzpicture}
+}
+
+\gdef\my@background@subsection
+{%
+ \begin{tikzpicture}
+ \useasboundingbox (0,0) rectangle (\paperwidth,\paperheight);
+ \path[fill=fcolor]
+ (0,0.1\paperheight) -- (0,0) -- (\paperwidth,0) -- (\paperwidth,0.1\paperheight)
+ to[bend right=10] ($(0,0.1\paperheight)$);
+ \path[draw=dcolor,thick] (\paperwidth,0.1\paperheight) to[bend right=10] ($(0,0.1\paperheight)$);
+ \node[text width=\textwidth,text badly ragged] at (0.5\paperwidth,0.6\paperheight) {%
+ \begin{minipage}[c]{\textwidth}
+ \usebeamertemplate{subsection page content}%
+ \end{minipage}
+ };
+ \end{tikzpicture}
+}
+
+%% -------------------------- title page -----------------------------
+
+\defbeamertemplate{title page}{snake}
+{%
+ \nointerlineskip
+ \begin{adjustbox}{width=\paperwidth,center}%
+ \my@background@title
+ \end{adjustbox}%
+}
+
+%% ----------------------- section and subsection --------------------
+
+% create new template for section
+\defbeamertemplate{section}{simple}{%
+ \insertsectionnumber.\hspace*{1ex}\insertsection%
+}
+
+\AtBeginSection[]{\begin{frame}{\sectionpage}\end{frame}}
+
+\defbeamertemplate{section page}{snake}{%
+ \nointerlineskip
+ \begin{adjustbox}{width=\paperwidth,center}%
+ \my@background@section
+ \end{adjustbox}%
+}
+
+\defbeamertemplate{section page content}{simple}{
+ \begin{beamercolorbox}[wd=\textwidth,center]{section title}%
+ \usebeamerfont{section title}
+ \usebeamertemplate{section}%
+ \end{beamercolorbox}
+}
+
+% create new template for subsection
+\defbeamertemplate{subsection}{simple}{%
+ \insertsectionnumber.\insertsubsectionnumber\hspace*{2ex}\insertsubsection%
+}
+
+\AtBeginSubsection[]{\begin{frame}{\subsectionpage}\end{frame}}
+
+\defbeamertemplate{subsection page}{snake}{%
+ \nointerlineskip
+ \begin{adjustbox}{width=\paperwidth,center}%
+ \my@background@subsection
+ \end{adjustbox}%
+}
+
+\defbeamertemplate{subsection page content}{simple}{
+ \begin{beamercolorbox}[wd=\textwidth,center]{subsection title}%
+ \usebeamerfont{subsection title}%
+ \usebeamertemplate{subsection}%
+ \end{beamercolorbox}%
+}
+\defbeamertemplate{subsection page content}{dirichlet}{%
+ \noindent
+ \begin{minipage}{0.5\textwidth}
+ \usebeamerfont{section title}%
+ \usebeamertemplate{section}%
+ \end{minipage}%
+ \begin{minipage}{0.5\textwidth}
+ \tableofcontents[sectionstyle=hide,subsectionstyle=show/shaded/hide]
+ \end{minipage}%
+}
+
+\defbeamertemplate{subsection in toc}{dirichlet}{%
+ \leavevmode
+ \smash{\color{text1}\hspace{-1pt}\rule[-0.6em]{2pt}{2em}}\quad
+ $\circ$ \inserttocsubsection\par
+}
+
+%% ---------------------- headline and footline ----------------------
+
+\newif\ifmy@subsection \my@subsectionfalse
+
+\newcommand{\my@sectionentry}[5]{%
+ \hfill
+ \ifnum\c@section=#1%
+ \usebeamercolor{headline highlight}%
+ \else%
+ \usebeamercolor{headline}%
+ \fi%
+ \hyperlink{Navigation#3}{%
+ \colorbox{bg}{%
+ \hspace{0.2em}\rule[-1ex]{0pt}{3.25ex}\color{fg}#2\hspace{0.2em}%
+ }%
+ }%
+ \let\slideentry=\my@slideentry
+}
+
+\newcommand{\my@subsectionentry}[5]{\my@subsectiontrue}
+
+\newcommand{\my@slideentry}[6]{%
+ \ifmy@subsection
+ \usebeamercolor{headline}%
+ \def\my@box{$\circ$}%
+ \ifnum\c@section=#1%
+ \usebeamercolor{headline highlight}%
+ \ifnum\c@subsection=#2%
+ \def\my@box{$\bullet$}%
+ \fi
+ \fi
+ \beamer@link(#4){%
+ \colorbox{bg}{%
+ \rule[-1ex]{0pt}{3.25ex}\hspace{0.1em}\color{fg}\my@box\hspace{0.1em}%
+ }%
+ }%
+ \my@subsectionfalse
+ \fi
+}
+
+\defbeamertemplate{headline}{dirichlet}{%
+ \begin{beamercolorbox}[wd=\paperwidth,ht=2.25ex,dp=1ex]{headline}%
+ \usebeamerfont{headline}%
+ \kern\beamer@leftmargin
+ \setlength{\fboxsep}{0pt}%
+ \let\sectionentry=\my@sectionentry
+ \let\beamer@subsectionentry=\my@subsectionentry
+ \hskip 0pt plus -1fill\dohead
+ \hskip 0pt plus 9fill\relax
+ \Acrobatmenu{GoToPage}{\insertframenumber{}/\inserttotalframenumber}%
+ \kern\beamer@rightmargin
+ \end{beamercolorbox}%
+ % default height is 0.4pt, which is ignored by adobe reader, so we increase it by 0.2pt
+ {\color{dcolor}\hrule height 0.6pt}%
+}
+
+%% ------------------------- frame title -----------------------------
+
+\defbeamertemplate{frametitle}{simple}{%
+ \nointerlineskip
+ \begin{beamercolorbox}[wd=\paperwidth,sep=0pt,leftskip=\beamer@leftmargin,%
+ rightskip=\beamer@rightmargin]{frametitle}
+ \usebeamerfont{frametitle}%
+ \rule[-3.6mm]{0pt}{12mm}\insertframetitle\rule[-3.6mm]{0pt}{12mm}\par
+ \end{beamercolorbox}
+}
+
+%% ------------------- block and theorem -----------------------------
+
+\defbeamertemplate{theorem begin}{simple}
+{%
+ \upshape%\bfseries\inserttheoremheadfont
+ {\usebeamercolor[fg]{theoremname}%
+ \inserttheoremname\inserttheoremnumber
+ \ifx\inserttheoremaddition\@empty\else\ (\inserttheoremaddition)\fi%
+ %\inserttheorempunctuation
+ }%
+ \quad\normalfont
+}
+\defbeamertemplate{theorem end}{simple}{\par}
+
+\defbeamertemplate{proof begin}{simple}
+{%
+ %\bfseries
+ {\usebeamercolor[fg]{proofname}\insertproofname}%
+ \quad\normalfont
+}
+\defbeamertemplate{proof end}{simple}{\par}
+
+%% --------------------------- font theme ----------------------------
+
+\setbeamerfont{title}{size=\LARGE}
+\setbeamerfont{subtitle}{size=\large}
+\setbeamerfont{author}{size=\large}
+\setbeamerfont{institute}{size=\normalsize}
+\setbeamerfont{date}{size=\large}
+\setbeamerfont{section in toc}{size=\Large}
+\setbeamerfont{subsection in toc}{size=\large}
+\setbeamerfont{headline}{size=\scriptsize}
+\setbeamerfont{frametitle}{size=\large}
+\setbeamerfont{block title}{size=\normalsize}
+
+\usefonttheme{professionalfonts}
+%\usepackage{arev}
+
+%\setlength{\parskip}{5pt plus 1pt minus 1pt}
+
+%% ---------------------------- color theme --------------------------
+
+% always use rgb colors in pdf files
+\substitutecolormodel{hsb}{rgb}
+
+\definecolor{red69}{Hsb}{0,0.6,0.9}
+\definecolor{yellow69}{Hsb}{60,0.6,0.9}
+\definecolor{yellow99}{Hsb}{60,0.9,0.9}
+\definecolor{green69}{Hsb}{120,0.6,0.9}
+\definecolor{cyan69}{Hsb}{180,0.6,0.9}
+\definecolor{azure53}{Hsb}{210,0.5,0.3}
+\definecolor{blue77}{Hsb}{240,0.7,0.7}
+\definecolor{blue88}{Hsb}{240,0.8,0.8}
+\definecolor{blue97}{Hsb}{240,0.9,0.7}
+\definecolor{magenta69}{Hsb}{300,0.6,0.9}
+\definecolor{purple94}{Hsb}{330,0.9,0.4}
+
+\colorlet{text1}{white}
+\colorlet{back1}{blue77}
+\colorlet{accent1}{yellow69}
+\colorlet{accent2}{green69}
+\colorlet{accent3}{red69}
+\colorlet{accent4}{cyan69}
+\colorlet{accent5}{magenta69}
+\colorlet{filler1}{accent1!40!back1}
+\colorlet{filler2}{accent2!40!back1}
+\colorlet{filler3}{accent3!40!back1}
+\colorlet{filler4}{accent4!40!back1}
+\colorlet{filler5}{accent5!40!back1}
+\colorlet{dcolor}{white}
+\colorlet{fcolor}{azure53}
+
+\setbeamercolor{normal text}{bg=blue77,fg=white}
+\setbeamercolor{structure}{fg=yellow99}
+\setbeamercolor{local structure}{fg=accent2}
+\setbeamercolor{headline}{bg=azure53,fg=white}
+\setbeamercolor{headline highlight}{parent=headline,bg=purple94}
+\setbeamercolor{navigation symbols}{bg=purple94}
+\setbeamercolor{navigation symbols dimmed}{fg=purple94}
+\setbeamercolor{title}{use=structure,fg=structure.fg}
+\setbeamercolor{subtitle}{fg=white}
+\setbeamercolor{author}{fg=white}
+\setbeamercolor{institute}{fg=white}
+\setbeamercolor{date}{fg=white}
+\setbeamercolor{section in toc}{parent=title}
+\setbeamercolor{subsection in toc}{parent=title}
+\setbeamercolor{section in toc shaded}{parent=normal text}
+\setbeamercolor{subsection in toc shaded}{parent=normal text}
+\setbeamercolor{frametitle}{parent=title}
+\setbeamercolor{theoremname}{parent=subtitle}
+\setbeamercolor{proofname}{parent=subtitle}
+\setbeamercolor{block title}{fg=accent1,bg=back1!50!gray}
+\setbeamercolor{block body}{bg=back1!50!lightgray}
+\setbeamercolor{block title example}{fg=accent2,bg=back1!50!gray}
+\setbeamercolor{block body example}{bg=back1!50!lightgray}
+\setbeamercolor{block title alerted}{fg=accent3,bg=back1!50!gray}
+\setbeamercolor{block body alerted}{bg=back1!50!lightgray}
+
+%% ------------------------ select templates -------------------------
+
+\setbeamertemplate{background canvas}[default]
+\setbeamertemplate{background}[dirichlet]
+\setbeamertemplate{title page}[snake]
+\setbeamertemplate{section page}[snake]
+\setbeamertemplate{section page content}[simple]
+\setbeamertemplate{subsection page}[snake]
+\setbeamertemplate{subsection page content}[dirichlet]
+\setbeamertemplate{section}[simple]
+\setbeamertemplate{subsection}[simple]
+\setbeamertemplate{section in toc}[sections numbered]
+\setbeamertemplate{subsection in toc}[dirichlet]
+\setbeamertemplate{section in toc shaded}[default][100]
+\setbeamertemplate{subsection in toc shaded}[default][100]
+\setbeamertemplate{navigation symbols}{}
+\setbeamertemplate{headline}[dirichlet]
+\setbeamertemplate{frametitle}[simple]
+\setbeamertemplate{theorem begin}[default]
+\setbeamertemplate{theorem end}[default]
+\setbeamertemplate{proof begin}[default]
+\setbeamertemplate{proof end}[default]
+\setbeamertemplate{itemize items}[default]
+\setbeamertemplate{enumerate items}[default]
+
+%% ----------------------- handout mode ------------------------------
+
+\mode<handout>{
+ \setbeamertemplate{background canvas}{}
+ \setbeamertemplate{background}{}
+ \setbeamertemplate{subsection page content}[simple]
+ \colorlet{text1}{black}
+ \colorlet{back1}{white}
+ \colorlet{accent1}{blue!90!black}
+ \colorlet{accent2}{teal!70!black}
+ \colorlet{accent3}{red!50!black}
+ \colorlet{dcolor}{gray}
+ \colorlet{fcolor}{white}
+ \setbeamercolor{normal text}{fg=black, bg=white}
+ \setbeamercolor{title}{fg=blue}
+ \setbeamercolor{subtitle}{fg=black}
+ \setbeamercolor{author}{fg=black}
+ \setbeamercolor{institute}{fg=black}
+ \setbeamercolor{date}{fg=black}
+ \setbeamercolor{section in toc}{fg=blue!90!gray}
+ \setbeamercolor{subsection in toc}{fg=blue!80!gray}
+ \setbeamercolor{section in toc shaded}{fg=lightgray}
+ \setbeamercolor{subsection in toc shaded}{fg=lightgray}
+ \setbeamercolor{section title}{fg=blue!90!gray}
+ \setbeamercolor{subsection title}{fg=blue!80!gray}
+ \setbeamercolor{headline}{bg=white,fg=black}
+ \setbeamercolor{headline highlight}{fg=blue!90!gray,bg=white}
+ \setbeamercolor{frametitle}{fg=blue!70!gray,bg=}
+ \setbeamercolor{theoremname}{fg=blue!60!gray}
+ \setbeamercolor{proofname}{fg=blue!60!gray}
+}
+
+\mode
+<all>
+
+\makeatother
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamerthemeconcrete/dirichlet/demo-dirichlet.pdf b/macros/latex/contrib/beamer-contrib/themes/beamerthemeconcrete/dirichlet/demo-dirichlet.pdf
new file mode 100644
index 0000000000..ed4fba2bde
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamerthemeconcrete/dirichlet/demo-dirichlet.pdf
Binary files differ
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamerthemeconcrete/dirichlet/demo-dirichlet.tex b/macros/latex/contrib/beamer-contrib/themes/beamerthemeconcrete/dirichlet/demo-dirichlet.tex
new file mode 100644
index 0000000000..24cb9ca62e
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamerthemeconcrete/dirichlet/demo-dirichlet.tex
@@ -0,0 +1,171 @@
+% -*- coding: utf-8 -*-
+
+\documentclass[12pt,xcolor={rgb}]{beamer}
+
+\usetheme{dirichlet}
+
+\usepackage{arev}
+
+\begin{document}
+
+\title{Beamer Theme Dirichlet}
+\author{Author Name}
+\institute{Institute Name}
+
+\begin{frame}[plain]
+\titlepage
+\end{frame}
+
+\section{Section One}
+
+\subsection{Subsection One}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\subsection{Subsection Two}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\subsection{Subsection Three}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\section{Section Two}
+
+\subsection{Subsection One}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\subsection{Subsection Two}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\subsection{Subsection Three}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\section{Section Three}
+
+\subsection{Subsection One}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\subsection{Subsection Two}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\subsection{Subsection Three}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\end{document}
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamerthemeconcrete/fermat/beamerthemefermat.sty b/macros/latex/contrib/beamer-contrib/themes/beamerthemeconcrete/fermat/beamerthemefermat.sty
new file mode 100644
index 0000000000..f4130745a0
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamerthemeconcrete/fermat/beamerthemefermat.sty
@@ -0,0 +1,433 @@
+% -*- coding: utf-8 -*-
+% ----------------------------------------------------------------------------
+% Author: Jianrui Lyu <tolvjr@163.com>
+% Website: https://github.com/lvjr/concrete
+% License: The LaTeX Project Public License 1.3c
+% ----------------------------------------------------------------------------
+
+\ProvidesPackage{beamerthemefermat}[2024-01-19 v2024A Beamer Theme Fermat]
+
+\makeatletter
+
+% compatible with old versions of beamer
+\providecommand{\beamer@endinputifotherversion}[1]{}
+
+\RequirePackage{tikz,etoolbox,adjustbox,varwidth,multicol}
+\usetikzlibrary{decorations.pathmorphing}
+
+\mode<presentation>
+
+\setbeamersize{text margin left=8mm,text margin right=8mm}
+
+%% ----------------- background canvas and background ----------------
+
+\defbeamertemplate{background}{line}{%
+ \begin{tikzpicture}
+ \useasboundingbox (0,0) rectangle (\paperwidth,\paperheight);
+ \draw[xstep=\paperwidth,ystep=1mm,color=tcolor] (0,0) grid (\paperwidth,\paperheight);
+ \end{tikzpicture}%
+}
+
+\defbeamertemplate{background}{linear}{%
+ \begin{tikzpicture}
+ \useasboundingbox (0,0) rectangle (\paperwidth,\paperheight);
+ \draw[pattern=horizontal lines, pattern color=tcolor]
+ (0,0) rectangle (\paperwidth,\paperheight);
+ \end{tikzpicture}%
+}
+
+\defbeamertemplate{background}{lattice}{%
+ \begin{tikzpicture}
+ \useasboundingbox (0,0) rectangle (\paperwidth,\paperheight);
+ \draw[step=1mm,color=tcolor] (0,0) grid (\paperwidth,\paperheight);
+ \end{tikzpicture}%
+}
+
+% need "text badly ragged" option for correct space skips
+% see http://tex.stackexchange.com/a/132748/8956
+\gdef\my@background@title
+{%
+ \begin{tikzpicture}
+ \useasboundingbox (0,0) rectangle (\paperwidth,\paperheight);
+ \fill[draw=dcolor,fill=fcolor]
+ (0,0.25\paperheight) -- (0,0) -- (\paperwidth,0)
+ -- (\paperwidth,0.25\paperheight) decorate[decoration={snake,segment length=3.15mm}] { -- cycle };
+ \fill[draw=dcolor,fill=fcolor]
+ (0,0.85\paperheight) -- (0,\paperheight) -- (\paperwidth,\paperheight)
+ -- (\paperwidth,0.85\paperheight) decorate[decoration={snake,segment length=3.15mm}] { -- cycle };
+ \node[text width=0.9\paperwidth,text badly ragged] at (0.5\paperwidth,0.925\paperheight) {%
+ \begin{minipage}[c][0.15\paperheight]{0.9\paperwidth}%
+ \centering
+ \usebeamerfont{date}\usebeamercolor[fg]{date}\insertdate
+ \end{minipage}
+ };
+ \node[text width=0.9\paperwidth,text badly ragged] at (0.5\paperwidth,0.55\paperheight) {%
+ \begin{minipage}[c][0.6\paperheight]{0.9\paperwidth}
+ \centering
+ \usebeamerfont{title}\usebeamercolor[fg]{title}\inserttitle
+ \ifx\insertsubtitle\@empty\else
+ \\[5pt]\usebeamerfont{subtitle}\usebeamercolor[fg]{subtitle}
+ \insertsubtitle
+ \fi
+ \end{minipage}
+ };
+ \node[text width=0.9\paperwidth,text badly ragged] at (0.5\paperwidth,0.125\paperheight) {%
+ \begin{minipage}[c][0.25\paperheight]{0.9\paperwidth}
+ \centering
+ \usebeamerfont{author}\usebeamercolor[fg]{author}\insertauthor\\[3pt]
+ \usebeamerfont{institute}\usebeamercolor[fg]{institute}\insertinstitute
+ \end{minipage}
+ };
+ \end{tikzpicture}
+}
+
+\gdef\my@background@section
+{%
+ \begin{tikzpicture}
+ \useasboundingbox (0,0) rectangle (\paperwidth,\paperheight);
+ \fill[draw=dcolor,fill=fcolor]
+ (0,0.12\paperheight) -- (0,0) -- (\paperwidth,0)
+ -- (\paperwidth,0.12\paperheight) decorate[decoration={snake,segment length=3.15mm}] { -- cycle };
+ \fill[draw=dcolor,fill=fcolor]
+ (0,0.92\paperheight) -- (0,\paperheight) -- (\paperwidth,\paperheight)
+ -- (\paperwidth,0.92\paperheight) decorate[decoration={snake,segment length=3.15mm}] { -- cycle };
+ \node[text width=0.9\paperwidth,text badly ragged] at (0.5\paperwidth,0.52\paperheight) {%
+ \begin{minipage}[c]{0.9\paperwidth}
+ \usebeamertemplate{section page content}%
+ \end{minipage}
+ };
+ \end{tikzpicture}
+}
+
+\gdef\my@background@subsection
+{%
+ \begin{tikzpicture}
+ \useasboundingbox (0,0) rectangle (\paperwidth,\paperheight);
+ \fill[draw=dcolor,fill=fcolor]
+ (0,0.12\paperheight) -- (0,0) -- (\paperwidth,0)
+ -- (\paperwidth,0.12\paperheight) decorate[decoration={snake,segment length=3.15mm}] { -- cycle };
+ \fill[draw=dcolor,fill=fcolor]
+ (0,0.92\paperheight) -- (0,\paperheight) -- (\paperwidth,\paperheight)
+ -- (\paperwidth,0.92\paperheight) decorate[decoration={snake,segment length=3.15mm}] { -- cycle };
+ \node[text width=0.9\paperwidth,text badly ragged] at (0.5\paperwidth,0.52\paperheight) {%
+ \begin{minipage}[c]{0.9\paperwidth}
+ \usebeamertemplate{subsection page content}%
+ \end{minipage}
+ };
+ \end{tikzpicture}
+}
+
+%% -------------------------- title page -----------------------------
+
+\defbeamertemplate{title page}{snake}
+{%
+ \nointerlineskip
+ \begin{adjustbox}{width=\paperwidth,center}%
+ \my@background@title
+ \end{adjustbox}%
+}
+
+%% ----------------------- section and subsection --------------------
+
+\patchcmd{\@vwid@sift}{\PackageWarning{varwidth}{Failed to reprocess entire contents}}{}{}{}
+
+\def\sectionintocskip{0.5em}
+\patchcmd{\beamer@sectionintoc}{\vskip1.5em}{\vskip\sectionintocskip}{}{}
+% patch for centering toc with varwidth package
+\patchcmd{\beamer@sectionintoc}{%
+ \hbox{\vbox{%
+ \def\beamer@breakhere{\\}%
+ \beamer@tocact{\ifnum\c@section=#1\beamer@toc@cs\else\beamer@toc@os\fi}{section in toc}}}%
+}{%
+ \hbox{%
+ \def\beamer@breakhere{}%
+ \beamer@tocact{\ifnum\c@section=#1\beamer@toc@cs\else\beamer@toc@os\fi}{section in toc}}%
+}{}{}
+% patch for centering toc in pdflatex with varwidth package
+\let\my@beamer@subsectionintoc=\beamer@subsectionintoc
+\patchcmd{\my@beamer@subsectionintoc}{%
+ \def\beamer@breakhere{\\}%
+ \beamer@tocact{\ifnum\c@section=#1\ifnum\c@subsection=#2\beamer@toc@css\else\beamer@toc@oss\fi\else\beamer@toc@ooss\fi}
+ {subsection in toc}%
+}{%
+ \def\beamer@breakhere{}%
+ \ifnum\c@section=#1\ifnum\c@subsection=#2%
+ \vskip.5em\hbox{\beamer@tocact\beamer@toc@css{subsection in toc}}%
+ \else
+ \vskip.5em\hbox{\beamer@tocact\beamer@toc@oss{subsection in toc}}%
+ \fi\fi
+}{}{}
+
+% create new template for section
+\defbeamertemplate{section}{simple}{%
+ \insertsectionnumber.\hspace*{1ex}\insertsection%
+}
+
+\defbeamertemplate{at begin section}{normal}{%
+ \frame{\sectionpage}
+}
+\defbeamertemplate{at begin section}{plain}{%
+ \frame[plain]{\sectionpage}
+}
+\AtBeginSection[]{\usebeamertemplate{at begin section}}
+
+\defbeamertemplate{section page}{snake}{%
+ \nointerlineskip
+ \begin{adjustbox}{width=\paperwidth,center}%
+ \my@background@section
+ \end{adjustbox}%
+}
+
+\defbeamertemplate{section page content}{simple}{
+ \begin{beamercolorbox}[wd=\textwidth,center]{section title}%
+ \usebeamerfont{section title}
+ \usebeamertemplate{section}%
+ \end{beamercolorbox}
+}
+\defbeamertemplate{section page content}{level}{
+ \begin{center}
+ \begin{varwidth}{\textwidth}
+ \tableofcontents[sectionstyle=show/shaded,subsectionstyle=hide]
+ \end{varwidth}
+ \end{center}
+}
+\defbeamertemplate{section page content}{split}{
+ \begin{multicols}{2}
+ \tableofcontents[sectionstyle=show/shaded,subsectionstyle=shaded]
+ \end{multicols}
+}
+
+% create new template for subsection
+\defbeamertemplate{subsection}{simple}{%
+ \insertsectionnumber.\insertsubsectionnumber\hspace*{2ex}\insertsubsection%
+}
+
+\defbeamertemplate{at begin subsection}{normal}{%
+ \frame{\subsectionpage}
+}
+\defbeamertemplate{at begin subsection}{plain}{%
+ \frame[plain]{\subsectionpage}
+}
+\AtBeginSubsection[]{\usebeamertemplate{at begin subsection}}
+
+\defbeamertemplate{subsection page}{snake}{%
+ \nointerlineskip
+ \begin{adjustbox}{width=\paperwidth,center}%
+ \my@background@subsection
+ \end{adjustbox}%
+}
+
+\defbeamertemplate{subsection page content}{simple}{
+ \begin{beamercolorbox}[wd=\textwidth,center]{subsection title}%
+ \usebeamerfont{subsection title}%
+ \usebeamertemplate{subsection}%
+ \end{beamercolorbox}%
+}
+\defbeamertemplate{subsection page content}{level}{
+ \begin{center}
+ \let\beamer@subsectionintoc=\my@beamer@subsectionintoc
+ \begin{varwidth}{\textwidth}
+ \tableofcontents[sectionstyle=hide,subsectionstyle=show/shaded/hide]
+ \end{varwidth}
+ \end{center}
+}
+\defbeamertemplate{subsection page content}{split}{
+ \begin{multicols}{2}
+ \tableofcontents[sectionstyle=show/shaded,subsectionstyle=show/shaded]
+ \end{multicols}
+}
+
+\defbeamertemplate{subsection in toc}{triangle}{%
+ \leavevmode\leftskip=2.5em\scriptsize\raise1.25pt%
+ \rlap{\hskip-1.5em\donotcoloroutermaths$\blacktriangleright$}%
+ \normalsize\inserttocsubsection\par
+}
+
+%% ---------------------- headline and footline ----------------------
+
+\newif\ifmy@subsection \my@subsectionfalse
+
+\newcommand{\my@sectionentry}[5]{%
+ \hfill
+ \ifnum\c@section=#1%
+ \usebeamercolor{footline highlight}%
+ \else%
+ \usebeamercolor{footline}%
+ \fi%
+ \hyperlink{Navigation#3}{%
+ \colorbox{bg}{%
+ \hspace{0.2em}\rule[-1ex]{0pt}{3.25ex}\color{fg}#2\hspace{0.2em}%
+ }%
+ }%
+ \let\slideentry=\my@slideentry
+}
+
+\newcommand{\my@subsectionentry}[5]{\my@subsectiontrue}
+
+\newcommand{\my@slideentry}[6]{%
+ \ifmy@subsection
+ \usebeamercolor{footline}%
+ \def\my@box{$\circ$}%
+ \ifnum\c@section=#1%
+ \usebeamercolor{footline highlight}%
+ \ifnum\c@subsection=#2%
+ \def\my@box{$\bullet$}%
+ \fi
+ \fi
+ \beamer@link(#4){%
+ \colorbox{bg}{%
+ \rule[-1ex]{0pt}{3.25ex}\hspace{0.1em}\color{fg}\my@box\hspace{0.1em}%
+ }%
+ }%
+ \my@subsectionfalse
+ \fi
+}
+
+\defbeamertemplate{footline}{progress}{%
+ \begin{beamercolorbox}[wd=\paperwidth,ht=0.6pt,sep=0pt]{separator line}
+ \end{beamercolorbox}
+ \nointerlineskip
+ \begin{beamercolorbox}[wd=\paperwidth,ht=2.25ex,dp=1ex]{footline}%
+ \usebeamerfont{footline}%
+ \kern\beamer@leftmargin
+ \setlength{\fboxsep}{0pt}%
+ \let\sectionentry=\my@sectionentry
+ \let\beamer@subsectionentry=\my@subsectionentry
+ \hskip 0pt plus -1fill\dohead
+ \hskip 0pt plus 9fill\relax
+ \Acrobatmenu{GoToPage}{\insertframenumber{}/\inserttotalframenumber}%
+ \kern\beamer@rightmargin
+ \end{beamercolorbox}%
+}
+
+%% ------------------------- frame title -----------------------------
+
+\defbeamertemplate{frametitle}{simple}{%
+ \nointerlineskip
+ \begin{beamercolorbox}[wd=\paperwidth,sep=0pt,leftskip=\beamer@leftmargin,%
+ rightskip=\beamer@rightmargin]{frametitle}
+ \usebeamerfont{frametitle}%
+ \rule[-3.6mm]{0pt}{12mm}\insertframetitle\rule[-3.6mm]{0pt}{12mm}\par
+ \end{beamercolorbox}
+ \nointerlineskip
+ \begin{beamercolorbox}[wd=\paperwidth,ht=0.6pt,sep=0pt]{separator line}
+ \end{beamercolorbox}
+}
+
+%% --------------------------- font theme ----------------------------
+
+\setbeamerfont{title}{size=\LARGE}
+\setbeamerfont{subtitle}{size=\large}
+\setbeamerfont{author}{size=\large}
+\setbeamerfont{institute}{size=\normalsize}
+\setbeamerfont{date}{size=\large}
+\setbeamerfont{section in toc}{size=\large}
+\setbeamerfont{subsection in toc}{size=\large}
+\setbeamerfont{frametitle}{size=\large}
+\setbeamerfont{block title}{size=\normalsize}
+
+\usefonttheme{professionalfonts}
+%\usepackage{arev}
+
+%\setlength{\parskip}{5pt plus 1pt minus 1pt}
+
+%% ---------------------------- color theme --------------------------
+
+% always use rgb colors in pdf files
+\substitutecolormodel{hsb}{rgb}
+
+\definecolor{red99}{Hsb}{0,0.9,0.9}
+\definecolor{brown49}{Hsb}{30,0.4,0.9}
+\definecolor{yellow29}{Hsb}{60,0.2,0.9}
+\definecolor{yellow86}{Hsb}{60,0.8,0.6}
+\definecolor{cyan95}{Hsb}{180,0.9,0.5}
+\definecolor{blue77}{Hsb}{240,0.7,0.7}
+\definecolor{blue99}{Hsb}{240,0.9,0.9}
+\definecolor{magenta88}{Hsb}{300,0.8,0.8}
+
+\colorlet{text1}{black}
+\colorlet{back1}{white}
+\colorlet{accent1}{blue99}
+\colorlet{accent2}{cyan95}
+\colorlet{accent3}{red99}
+\colorlet{accent4}{yellow86}
+\colorlet{accent5}{magenta88}
+\colorlet{filler1}{accent1!40!back1}
+\colorlet{filler2}{accent2!40!back1}
+\colorlet{filler3}{accent3!40!back1}
+\colorlet{filler4}{accent4!40!back1}
+\colorlet{filler5}{accent5!40!back1}
+\colorlet{tcolor}{text1!10!back1}
+\colorlet{dcolor}{cyan95}
+\colorlet{fcolor}{brown49}
+
+\setbeamercolor{normal text}{bg=yellow29,fg=black}
+\setbeamercolor{structure}{fg=blue99}
+\setbeamercolor{local structure}{fg=cyan95}
+\setbeamercolor{footline}{bg=brown49,fg=black}
+\setbeamercolor{footline highlight}{parent=footline,bg=filler2}
+\setbeamercolor{separator line}{bg=accent2}
+\setbeamercolor{title}{use=structure,fg=structure.fg}
+\setbeamercolor{subtitle}{use={structure,normal text},fg=structure.fg!90!normal text.bg}
+\setbeamercolor{section in toc}{parent=title}
+\setbeamercolor{subsection in toc}{parent=subtitle}
+\setbeamercolor{section in toc shaded}{parent=normal text}
+\setbeamercolor{subsection in toc shaded}{parent=normal text}
+\setbeamercolor{frametitle}{fg=text1,bg=brown49}
+\setbeamercolor{theoremname}{parent=subtitle}
+\setbeamercolor{proofname}{parent=subtitle}
+\setbeamercolor{block title}{fg=accent1,bg=gray}
+\setbeamercolor{block body}{bg=lightgray}
+\setbeamercolor{block title example}{fg=accent2,bg=gray}
+\setbeamercolor{block body example}{bg=lightgray}
+\setbeamercolor{block title alerted}{fg=accent3,bg=gray}
+\setbeamercolor{block body alerted}{bg=lightgray}
+
+%% ------------------------ select templates -------------------------
+
+\setbeamertemplate{background canvas}[default]
+\setbeamertemplate{background}[line]
+\setbeamertemplate{footline}[progress]
+\setbeamertemplate{title page}[snake]
+\setbeamertemplate{at begin section}[plain]
+\setbeamertemplate{at begin subsection}[plain]
+\setbeamertemplate{section page}[snake]
+\setbeamertemplate{section page content}[level]
+\setbeamertemplate{subsection page}[snake]
+\setbeamertemplate{subsection page content}[level]
+\setbeamertemplate{frametitle}[simple]
+\setbeamertemplate{navigation symbols}{}
+\setbeamertemplate{section}[simple]
+\setbeamertemplate{subsection}[simple]
+\setbeamertemplate{section in toc}[sections numbered]
+\setbeamertemplate{subsection in toc}[subsections numbered]
+\setbeamertemplate{section in toc shaded}[default][100]
+\setbeamertemplate{subsection in toc shaded}[default][100]
+\setbeamertemplate{itemize items}[default]
+\setbeamertemplate{enumerate items}[default]
+
+%% ----------------------- handout mode ------------------------------
+
+\mode<handout>{
+ \setbeamertemplate{background canvas}{}
+ \setbeamertemplate{background}{}
+ \colorlet{dcolor}{darkgray}
+ \colorlet{fcolor}{white}
+ \setbeamercolor{normal text}{fg=black, bg=white}
+ \setbeamercolor{footline highlight}{bg=,fg=blue99}
+ \setbeamercolor{title}{fg=blue}
+ \setbeamercolor{subtitle}{fg=blue!70!gray}
+ \setbeamercolor{section in toc}{fg=blue!90!gray}
+ \setbeamercolor{subsection in toc}{fg=blue!80!gray}
+ \setbeamercolor{section in toc shaded}{fg=lightgray}
+ \setbeamercolor{subsection in toc shaded}{fg=lightgray}
+ \setbeamercolor{frametitle}{fg=blue!70!gray,bg=}
+ \setbeamercolor{theoremname}{fg=blue!60!gray}
+ \setbeamercolor{proofname}{fg=blue!60!gray}
+ \setbeamercolor{footline}{bg=white,fg=black}
+}
+
+\mode
+<all>
+
+\makeatother
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamerthemeconcrete/fermat/demo-fermat.pdf b/macros/latex/contrib/beamer-contrib/themes/beamerthemeconcrete/fermat/demo-fermat.pdf
new file mode 100644
index 0000000000..1ac68703d3
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamerthemeconcrete/fermat/demo-fermat.pdf
Binary files differ
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamerthemeconcrete/fermat/demo-fermat.tex b/macros/latex/contrib/beamer-contrib/themes/beamerthemeconcrete/fermat/demo-fermat.tex
new file mode 100644
index 0000000000..84d2f31213
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamerthemeconcrete/fermat/demo-fermat.tex
@@ -0,0 +1,171 @@
+% -*- coding: utf-8 -*-
+
+\documentclass[12pt,xcolor={rgb}]{beamer}
+
+\usetheme{fermat}
+
+\usepackage{arev}
+
+\begin{document}
+
+\title{Beamer Theme Fermat}
+\author{Author Name}
+\institute{Institute Name}
+
+\begin{frame}[plain]
+\titlepage
+\end{frame}
+
+\section{Section One}
+
+\subsection{Subsection One}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\subsection{Subsection Two}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\subsection{Subsection Three}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\section{Section Two}
+
+\subsection{Subsection One}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\subsection{Subsection Two}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\subsection{Subsection Three}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\section{Section Three}
+
+\subsection{Subsection One}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\subsection{Subsection Two}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\subsection{Subsection Three}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\end{document}
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamerthemeconcrete/gauss/beamerthemegauss.sty b/macros/latex/contrib/beamer-contrib/themes/beamerthemeconcrete/gauss/beamerthemegauss.sty
new file mode 100644
index 0000000000..b6acd9069a
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamerthemeconcrete/gauss/beamerthemegauss.sty
@@ -0,0 +1,678 @@
+% -*- coding: utf-8 -*-
+% ----------------------------------------------------------------------------
+% Author: Jianrui Lyu <tolvjr@163.com>
+% Website: https://github.com/lvjr/concrete
+% License: The LaTeX Project Public License 1.3c
+% ----------------------------------------------------------------------------
+
+\ProvidesPackage{beamerthemegauss}[2024-01-19 v2024A Beamer Theme Gauss]
+
+\makeatletter
+
+% compatible with old versions of beamer
+\providecommand{\beamer@endinputifotherversion}[1]{}
+
+\RequirePackage{tikz,etoolbox,fontawesome}
+
+% see https://github.com/xdanaux/fontawesome-latex/issues/12
+% but we don't need to fix it on TeX Live 2022
+%\ifxetex
+% \newfontfamily{\FA}{FontAwesome}[Extension=.otf]
+%\fi
+
+\usetikzlibrary{patterns}
+
+\mode<presentation>
+
+\setbeamersize{text margin left=10.5mm,text margin right=5.5mm}
+
+%% ----------------- background canvas and background ----------------
+
+\def\my@fa#1{#1\space}
+
+\defbeamertemplate{background canvas}{awesome}{%
+ \setlength{\fboxsep}{0pt}%
+ \noindent\colorbox{bg}{%
+ \usebeamertemplate{background texture}%
+ }%
+}
+
+\defbeamertemplate{background texture}{awesome}{%
+ \fontfamily{lmss}\fontsize{17pt}{22pt}\selectfont\color{tcolor}%
+ \hspace{0.008\paperwidth}%
+ \begin{minipage}[c][\paperheight][c]{0.984\paperwidth}
+ \my@fa\faAdjust
+ \my@fa\faAlignCenter
+ \my@fa\faAlignJustify
+ \my@fa\faAlignLeft
+ \my@fa\faAlignRight
+ \my@fa\faAngleDoubleDown
+ \my@fa\faAngleDoubleLeft
+ \my@fa\faAngleDoubleRight
+ \my@fa\faAngleDoubleUp
+ \my@fa\faAngleDown
+ \my@fa\faAngleLeft
+ \my@fa\faAngleRight
+ \my@fa\faAngleUp
+ \my@fa\faAreaChart
+ \my@fa\faArrowCircleODown
+ \my@fa\faArrowCircleOLeft
+ \my@fa\faArrowCircleORight
+ \my@fa\faArrowCircleOUp
+ \my@fa\faArrowDown
+ \my@fa\faArrowLeft
+ \my@fa\faArrowRight
+ \my@fa\faArrowUp
+ \my@fa\faArrows
+ \my@fa\faArrowsH
+ \my@fa\faArrowsV
+ \my@fa\faAsterisk
+ \my@fa\faAt
+ \my@fa\faBackward
+ \my@fa\faBan
+ \my@fa\faBarChart
+ \my@fa\faBars
+ \my@fa\faBold
+ \my@fa\faBolt
+ \my@fa\faBook
+ \my@fa\faBookmarkO
+ \my@fa\faBraille
+ \my@fa\faBullseye
+ \my@fa\faCalendarCheckO
+ \my@fa\faCalendarMinusO
+ \my@fa\faCalendarPlusO
+ \my@fa\faCalendarTimesO
+ \my@fa\faCaretDown
+ \my@fa\faCaretLeft
+ \my@fa\faCaretRight
+ \my@fa\faCaretSquareODown
+ \my@fa\faCaretSquareOLeft
+ \my@fa\faCaretSquareORight
+ \my@fa\faCaretSquareOUp
+ \my@fa\faCheck
+ \my@fa\faCheckCircleO
+ \my@fa\faCheckSquareO
+ \my@fa\faChevronDown
+ \my@fa\faChevronLeft
+ \my@fa\faChevronRight
+ \my@fa\faChevronUp
+ \my@fa\faCircleO
+ \my@fa\faCircleThin
+ \my@fa\faClone
+ \my@fa\faClose
+ \my@fa\faCode
+ \my@fa\faColumns
+ \my@fa\faCommentO
+ \my@fa\faCommentingO
+ \my@fa\faCompress
+ \my@fa\faCrosshairs
+ \my@fa\faDatabase
+ \my@fa\faDesktop
+ \my@fa\faDotCircleO
+ \my@fa\faEject
+ \my@fa\faEllipsisH
+ \my@fa\faEllipsisV
+ \my@fa\faEnvira
+ \my@fa\faEraser
+ \my@fa\faExchange
+ \my@fa\faExclamation
+ \my@fa\faExclamationCircle
+ \my@fa\faExpand
+ \my@fa\faEyedropper
+ \my@fa\faFa
+ \my@fa\faFighterJet
+ \my@fa\faFire
+ \my@fa\faFlagO
+ \my@fa\faFlash
+ \my@fa\faFlask
+ \my@fa\faFolderO
+ \my@fa\faFont
+ \my@fa\faForward
+ \my@fa\faFrownO
+ \my@fa\faGavel
+ \my@fa\faGbp
+ \my@fa\faGear
+ \my@fa\faGenderless
+ \my@fa\faGraduationCap
+ \my@fa\faGratipay
+ \my@fa\faHSquare
+ \my@fa\faHandODown
+ \my@fa\faHandOLeft
+ \my@fa\faHandORight
+ \my@fa\faHandOUp
+ \my@fa\faHandPaperO
+ \my@fa\faHandPeaceO
+ \my@fa\faHandPointerO
+ \my@fa\faHandScissorsO
+ \my@fa\faHashtag
+ \my@fa\faHeader
+ \my@fa\faHeartO
+ \my@fa\faHome
+ \my@fa\faHourglassHalf
+ \my@fa\faImage
+ \my@fa\faInfo
+ \my@fa\faInfoCircle
+ \my@fa\faItalic
+ \my@fa\faLaptop
+ \my@fa\faLeaf
+ \my@fa\faLemonO
+ \my@fa\faLevelDown
+ \my@fa\faLevelUp
+ \my@fa\faLightbulbO
+ \my@fa\faLineChart
+ \my@fa\faListOl
+ \my@fa\faListUl
+ \my@fa\faLocationArrow
+ \my@fa\faLongArrowDown
+ \my@fa\faLongArrowLeft
+ \my@fa\faLongArrowRight
+ \my@fa\faLongArrowUp
+ \my@fa\faMailForward
+ \my@fa\faMailReply
+ \my@fa\faMapO
+ \my@fa\faMehO
+ \my@fa\faMinus
+ \my@fa\faMinusCircle
+ \my@fa\faMinusSquareO
+ \my@fa\faMoonO
+ \my@fa\faMousePointer
+ \my@fa\faNeuter
+ \my@fa\faObjectGroup
+ \my@fa\faObjectUngroup
+ \my@fa\faPagelines
+ \my@fa\faPaintBrush
+ \my@fa\faPaperPlaneO
+ \my@fa\faPaperclip
+ \my@fa\faPauseCircleO
+ \my@fa\faPaw
+ \my@fa\faPencil
+ \my@fa\faPercent
+ \my@fa\faPhoto
+ \my@fa\faPieChart
+ \my@fa\faPlane
+ \my@fa\faPlayCircleO
+ \my@fa\faPlus
+ \my@fa\faPlusCircle
+ \my@fa\faPlusSquareO
+ \my@fa\faProductHunt
+ \my@fa\faPuzzlePiece
+ \my@fa\faQuestion
+ \my@fa\faQuestionCircle
+ \my@fa\faQuestionCircleO
+ \my@fa\faQuoteLeft
+ \my@fa\faQuoteRight
+ \my@fa\faRefresh
+ \my@fa\faRemove
+ \my@fa\faReorder
+ \my@fa\faReply
+ \my@fa\faRocket
+ \my@fa\faRotateLeft
+ \my@fa\faRotateRight
+ \my@fa\faScissors
+ \my@fa\faSearch
+ \my@fa\faSearchMinus
+ \my@fa\faSearchPlus
+ \my@fa\faShare
+ \my@fa\faSignal
+ \my@fa\faSmileO
+ \my@fa\faSort
+ \my@fa\faSortNumericAsc
+ \my@fa\faSortNumericDesc
+ \my@fa\faSpaceShuttle
+ \my@fa\faSquareO
+ \my@fa\faStar
+ \my@fa\faStarHalfO
+ \my@fa\faStarO
+ \my@fa\faStepBackward
+ \my@fa\faStepForward
+ \my@fa\faStickyNoteO
+ \my@fa\faStopCircle
+ \my@fa\faStopCircleO
+ \my@fa\faStrikethrough
+ \my@fa\faSubscript
+ \my@fa\faSunO
+ \my@fa\faSuperscript
+ \my@fa\faTable
+ \my@fa\faTag
+ \my@fa\faTasks
+ \my@fa\faTextHeight
+ \my@fa\faTextWidth
+ \my@fa\faTh
+ \my@fa\faThLarge
+ \my@fa\faThList
+ \my@fa\faThumbTack
+ \my@fa\faThumbsODown
+ \my@fa\faThumbsOUp
+ \my@fa\faTimes
+ \my@fa\faTimesCircle
+ \my@fa\faTimesCircleO
+ \my@fa\faTint
+ \my@fa\faToggleDown
+ \my@fa\faToggleLeft
+ \my@fa\faToggleRight
+ \my@fa\faToggleUp
+ \my@fa\faTree
+ \my@fa\faTv
+ \my@fa\faUnderline
+ \my@fa\faUniversity
+ \my@fa\faUnsorted
+ \my@fa\faUser
+ \my@fa\faWarning
+ \my@fa\faWon
+ \my@fa\faWrench
+ \end{minipage}
+}
+
+\defbeamertemplate{background texture}{line}{%
+ \begin{tikzpicture}[remember picture,overlay]
+ \draw[pattern=horizontal lines, pattern color=tcolor]
+ (current page.south east) rectangle (current page.north west);
+ \end{tikzpicture}%
+}
+\defbeamertemplate{background texture}{grid}{%
+ \begin{tikzpicture}[remember picture,overlay]
+ \draw[step=1mm,color=tcolor]
+ (current page.south east) grid (current page.north west);
+ \end{tikzpicture}%
+}
+
+\gdef\my@background@title{%
+}
+
+\gdef\my@background@section{%
+}
+
+\gdef\my@background@subsection{%
+}
+
+\newcommand{\my@fa@documentstart}{\hyperlinkdocumentstart{\rotatebox{-90}{\faStepBackward}}}
+\newcommand{\my@fa@sectionstart}{\hyperlinksectionstart{\rotatebox{-90}{\faBackward}}}
+\newcommand{\my@fa@subsectionstart}{\hyperlinksubsectionstart{\rotatebox{180}{\fontsize{9}{9}\selectfont\faSortDesc}}}
+\newcommand{\my@fa@frameendprev}{\hyperlinkframeendprev{\faArrowUp}}
+\newcommand{\my@fa@gotopage}{\Acrobatmenu{GoToPage}{\bfseries\insertframenumber}}
+\newcommand{\my@fa@framestartnext}{\hyperlinkframestartnext{\faArrowDown}}
+\newcommand{\my@fa@subsectionstartnext}{\hyperlinksubsectionstartnext{\fontsize{9}{9}\selectfont\faSortDesc}}
+\newcommand{\my@fa@sectionstartnext}{\hyperlinksectionstartnext{\rotatebox{-90}{\faForward}}}
+\newcommand{\my@fa@documentend}{\hyperlinkdocumentend{\rotatebox{-90}{\faStepForward}}}
+
+\gdef\my@background@normal{%
+ \begin{tikzpicture}[font=\fontsize{6}{6}\selectfont]
+ \useasboundingbox (0,0) rectangle (\paperwidth,\paperheight);
+ \path[draw=dcolor,fill=fcolor,opacity=0.4]
+ (0.03\paperwidth,0.05\paperheight) rectangle (0.97\paperwidth,0.95\paperheight)
+ (0.7,0.9\paperheight) circle (.2) node{\my@fa@documentstart}
+ (0.7,0.8\paperheight) circle (.2) node{\my@fa@sectionstart}
+ (0.7,0.7\paperheight) circle (.2) node{\my@fa@subsectionstart}
+ (0.7,0.6\paperheight) circle (.2) node{\my@fa@frameendprev}
+ (0.7,0.5\paperheight) circle (.2) node{\my@fa@gotopage}
+ (0.7,0.4\paperheight) circle (.2) node{\my@fa@framestartnext}
+ (0.7,0.3\paperheight) circle (.2) node{\my@fa@subsectionstartnext}
+ (0.7,0.2\paperheight) circle (.2) node{\my@fa@sectionstartnext}
+ (0.7,0.1\paperheight) circle (.2) node{\my@fa@documentend};
+ \end{tikzpicture}
+}
+
+\let\my@background=\my@background@title
+
+\defbeamertemplate{background}{circle}
+{%
+ \my@background
+ \global\let\my@background=\my@background@normal
+}
+
+%% -------------------------- title page -----------------------------
+
+\defbeamertemplate{title page}{circle}{%
+ \nointerlineskip\noindent
+ \hspace{-\beamer@leftmargin}%
+ \begin{tikzpicture}
+ \useasboundingbox (0,0) rectangle (\paperwidth,\paperheight);
+ \draw[fill=fcolor,opacity=0.4]
+ (0,0.85\paperheight) rectangle (\paperwidth,0.95\paperheight)
+ (0.05\paperwidth,0.9\paperheight) circle (.25)
+ (0.95\paperwidth,0.9\paperheight) circle (.25);
+ \node[text width=0.8\paperwidth,text badly ragged] at (0.5\paperwidth,0.9\paperheight) {%
+ \begin{minipage}[c]{0.8\paperwidth}
+ \centering
+ \usebeamerfont{date}\usebeamercolor[fg]{date}\insertdate
+ \end{minipage}
+ };
+ \draw[fill=fcolor,opacity=0.4]
+ (0,0.3\paperheight) rectangle (\paperwidth,0.8\paperheight)
+ (0.05\paperwidth,0.8\paperheight) circle (.25)
+ (0.05\paperwidth,0.7\paperheight) circle (.25)
+ (0.05\paperwidth,0.6\paperheight) circle (.25)
+ (0.05\paperwidth,0.5\paperheight) circle (.25)
+ (0.05\paperwidth,0.4\paperheight) circle (.25)
+ (0.05\paperwidth,0.3\paperheight) circle (.25)
+ (0.95\paperwidth,0.8\paperheight) circle (.25)
+ (0.95\paperwidth,0.7\paperheight) circle (.25)
+ (0.95\paperwidth,0.6\paperheight) circle (.25)
+ (0.95\paperwidth,0.5\paperheight) circle (.25)
+ (0.95\paperwidth,0.4\paperheight) circle (.25)
+ (0.95\paperwidth,0.3\paperheight) circle (.25);
+ \node[text width=0.8\paperwidth,text badly ragged] at (0.5\paperwidth,0.55\paperheight) {%
+ \begin{minipage}[c]{0.8\paperwidth}
+ \centering
+ \usebeamerfont{title}\usebeamercolor[fg]{title}\inserttitle
+ \ifx\insertsubtitle\@empty\else
+ \\\usebeamerfont{subtitle}\usebeamercolor[fg]{subtitle}
+ \insertsubtitle
+ \fi
+ \end{minipage}
+ };
+ \draw[fill=fcolor,opacity=0.4]
+ (0,0.05\paperheight) rectangle (\paperwidth,0.25\paperheight)
+ (0.05\paperwidth,0.2\paperheight) circle (.25)
+ (0.05\paperwidth,0.1\paperheight) circle (.25)
+ (0.95\paperwidth,0.2\paperheight) circle (.25)
+ (0.95\paperwidth,0.1\paperheight) circle (.25);
+ \node[text width=0.8\paperwidth,text badly ragged] at (0.5\paperwidth,0.15\paperheight) {%
+ \begin{minipage}[c]{0.8\paperwidth}
+ \centering
+ \usebeamerfont{author}\usebeamercolor[fg]{author}\insertauthor\\
+ \usebeamerfont{institute}\usebeamercolor[fg]{institute}\insertinstitute
+ \end{minipage}
+ };
+ \end{tikzpicture}
+}
+
+%% ----------------------- section and subsection --------------------
+
+\def\sectionintocskip{0.5em}
+\patchcmd{\beamer@sectionintoc}{\vskip1.5em}{\vskip\sectionintocskip}{}{}
+
+% create new template for section
+\defbeamertemplate{section}{simple}{%
+ \insertsectionnumber.\hspace*{1ex}\insertsection%
+}
+
+\defbeamertemplate{at begin section}{normal}{%
+ \global\let\my@background=\my@background@section
+ \frame{\sectionpage}
+}
+\defbeamertemplate{at begin section}{plain}{%
+ \global\let\my@background=\my@background@section
+ \frame[plain]{\sectionpage}
+}
+\AtBeginSection[]{\usebeamertemplate{at begin section}}
+
+\defbeamertemplate{section page}{simple}{
+ \begin{beamercolorbox}[wd=\textwidth,center]{section title}%
+ \usebeamerfont{section title}
+ \usebeamertemplate{section}%
+ \end{beamercolorbox}
+}
+
+\defbeamertemplate{section page}{circle}{%
+ \nointerlineskip\noindent
+ \hspace{-\beamer@leftmargin}%
+ \begin{tikzpicture}
+ \useasboundingbox (0,0) rectangle (\paperwidth,\paperheight);
+ \draw[fill=fcolor,opacity=0.4]
+ (0,0.25\paperheight) rectangle (\paperwidth,0.75\paperheight)
+ (1,0.7\paperheight) circle (.25)
+ (1,0.6\paperheight) circle (.25)
+ (1,0.5\paperheight) circle (.25)
+ (1,0.4\paperheight) circle (.25)
+ (1,0.3\paperheight) circle (.25);
+ \node[text width=0.8\paperwidth,right,text badly ragged] at (0.15\paperwidth,0.5\paperheight) {%
+ \tableofcontents[sectionstyle=show/shaded,subsectionstyle=hide]%
+ };
+ \end{tikzpicture}
+}
+
+% create new template for subsection
+\defbeamertemplate{subsection}{simple}{%
+ \insertsectionnumber.\insertsubsectionnumber\hspace*{2ex}\insertsubsection%
+}
+
+\defbeamertemplate{at begin subsection}{normal}{%
+ \global\let\my@background=\my@background@subsection
+ \frame{\subsectionpage}
+}
+\defbeamertemplate{at begin subsection}{plain}{%
+ \global\let\my@background=\my@background@subsection
+ \frame[plain]{\subsectionpage}
+}
+\AtBeginSubsection[]{\usebeamertemplate{at begin subsection}}
+
+\defbeamertemplate{subsection page}{simple}{
+ \begin{beamercolorbox}[wd=\textwidth,center]{subsection title}%
+ \usebeamerfont{subsection title}%
+ \usebeamertemplate{subsection}%
+ \end{beamercolorbox}%
+}
+
+\defbeamertemplate{subsection page}{circle}{%
+ \nointerlineskip\noindent
+ \hspace{-\beamer@leftmargin}%
+ \begin{tikzpicture}
+ \useasboundingbox (0,0) rectangle (\paperwidth,\paperheight);
+ \draw[fill=fcolor,opacity=0.4]
+ (0,0.25\paperheight) rectangle (\paperwidth,0.75\paperheight)
+ (1,0.7\paperheight) circle (.23)
+ (1,0.6\paperheight) circle (.23)
+ (1,0.5\paperheight) circle (.23)
+ (1,0.4\paperheight) circle (.23)
+ (1,0.3\paperheight) circle (.23);
+ \node[text width=0.8\paperwidth,right,text badly ragged] at (0.15\paperwidth,0.5\paperheight) {%
+ \begin{minipage}[c]{0.8\paperwidth}
+ \tableofcontents[sectionstyle=hide,subsectionstyle=show/shaded/hide]%
+ \end{minipage}
+ };
+ \end{tikzpicture}
+}
+
+%% ---------------------- headline and footline ----------------------
+
+\defbeamertemplate{footline left}{title}{%
+ \insertshorttitle
+}
+
+\defbeamertemplate{footline center}{author}{%
+ \insertshortauthor
+}
+
+\defbeamertemplate{footline right}{institute}{%
+ \insertshortinstitute
+}
+
+% make \footheight = 0pt
+\patchcmd{\beamer@calculateheadfoot}{\advance\footheight by 4pt}{}{}{}
+
+\defbeamertemplate{footline}{simple}{%
+ \smash{\raisebox{1ex}{\begin{beamercolorbox}[wd=\paperwidth,ht=2.25ex,dp=1ex]{footline}%
+ \kern0.03\paperwidth
+ \usebeamerfont{footline}%
+ \usebeamertemplate{footline left}%
+ \hspace{0pt plus 1 filll}%
+ \usebeamertemplate{footline center}%
+ \hspace{0pt plus 1 filll}%
+ \usebeamertemplate{footline right}%
+ \kern0.03\paperwidth
+ \end{beamercolorbox}}}%
+}
+
+%% ------------------------- frame title -----------------------------
+
+\defbeamertemplate{frametitle}{gauss}{%
+ \nointerlineskip\vskip0.05\paperheight\vskip0.4pt%
+ \usebeamerfont{frametitle}\usebeamercolor[fg]{frametitle}%
+ \rule[-1ex]{0pt}{3.25ex}\insertframetitle
+ \ifx\insertframesubtitle\@empty\else\hfill
+ \usebeamerfont{framesubtitle}\usebeamercolor[fg]{framesubtitle}%
+ \insertframesubtitle
+ \fi
+ \par\nointerlineskip\usebeamercolor[fg]{separator line}\rule{\textwidth}{0.4pt}%
+}
+
+%% ------------------- block and theorem -----------------------------
+
+\newcommand{\my@block@begin}[1][]{%
+ \par\medskip
+ \begin{beamercolorbox}[colsep=0.75ex]{block title#1}
+ \usebeamerfont*{block title#1}\insertblocktitle%
+ \end{beamercolorbox}%
+ {\parskip0pt\par}%
+ \nointerlineskip
+ \usebeamerfont{block body#1}%
+ \begin{beamercolorbox}[colsep=.75ex,vmode]{block body#1}%
+ \ifbeamercolorempty[bg]{block body#1}{\vskip-.25ex}{\vskip-.75ex}\vbox{}%
+}
+
+\newcommand{\my@block@end}{\end{beamercolorbox}\smallskip}
+
+\defbeamertemplate{block begin}{gauss}{\my@block@begin}
+
+\defbeamertemplate{block end}{gauss}{\my@block@end}
+
+\defbeamertemplate{block example begin}{gauss}{\my@block@begin[ example]}
+
+\defbeamertemplate{block example end}{gauss}{\my@block@end}
+
+\defbeamertemplate{block alerted begin}{gauss}{\my@block@begin[ alerted]}
+
+\defbeamertemplate{block alerted end}{gauss}{\my@block@end}
+
+%% --------------------------- font theme ----------------------------
+
+\setbeamerfont{title}{size=\LARGE}
+\setbeamerfont{subtitle}{size=\large}
+\setbeamerfont{author}{size=\large}
+\setbeamerfont{institute}{size=\normalsize}
+\setbeamerfont{date}{size=\large}
+\setbeamerfont{section in toc}{size=\large}
+\setbeamerfont{subsection in toc}{size=\large}
+\setbeamerfont{frametitle}{size=\large}
+\setbeamerfont{block title}{size=\normalsize}
+
+\usefonttheme{professionalfonts}
+%\usepackage{arev}
+
+\setlength{\parskip}{5pt plus 1pt minus 1pt}
+
+%% ---------------------------- color theme --------------------------
+
+% always use rgb colors in pdf files
+\substitutecolormodel{hsb}{rgb}
+
+\definecolor{red69}{Hsb}{0,0.6,0.9}
+\definecolor{red4x}{Hsb}{0,0.4,1.0}
+\definecolor{yellow69}{Hsb}{60,0.6,0.9}
+\definecolor{yellowxx}{Hsb}{60,1.0,1.0}
+\definecolor{green33}{Hsb}{120,0.3,0.3}
+\definecolor{green39}{Hsb}{120,0.3,0.9}
+\definecolor{green69}{Hsb}{120,0.6,0.9}
+\definecolor{cyan69}{Hsb}{180,0.6,0.9}
+\definecolor{magenta69}{Hsb}{300,0.6,0.9}
+\definecolor{magenta4x}{Hsb}{300,0.4,1.0}
+
+\colorlet{text1}{white}
+\colorlet{back1}{green33}
+\colorlet{accent1}{yellow69}
+\colorlet{accent2}{green69}
+\colorlet{accent3}{red4x}
+\colorlet{accent4}{cyan69}
+\colorlet{accent5}{magenta4x}
+\colorlet{filler1}{accent1!50!back1}
+\colorlet{filler2}{accent2!50!back1}
+\colorlet{filler3}{accent3!50!back1}
+\colorlet{filler4}{accent4!50!back1}
+\colorlet{filler5}{accent5!50!back1}
+\colorlet{tcolor}{green33!95!white}
+\colorlet{dcolor}{white}
+\colorlet{fcolor}{gray}
+
+\setbeamercolor{background canvas}{bg=green33,fg=white}
+\setbeamercolor{normal text}{bg=green33,fg=white}
+\setbeamercolor{structure}{fg=yellowxx}
+\setbeamercolor{local structure}{fg=accent2}
+\setbeamercolor{footline}{bg=,fg=white}
+\setbeamercolor{title}{use=structure,fg=structure.fg}
+\setbeamercolor{subtitle}{parent=normal text}
+\setbeamercolor{author}{fg=white}
+\setbeamercolor{institute}{fg=white}
+\setbeamercolor{date}{fg=white}
+\setbeamercolor{section in toc}{parent=title}
+\setbeamercolor{subsection in toc}{parent=title}
+\setbeamercolor{section in toc shaded}{parent=normal text}
+\setbeamercolor{subsection in toc shaded}{parent=normal text}
+\setbeamercolor{frametitle}{parent=title}
+\setbeamercolor{framesubtitle}{parent=subtitle}
+\setbeamercolor{separator line}{fg=white}
+\setbeamercolor{block title}{fg=accent1,bg=darkgray}
+\setbeamercolor{block body}{bg=gray}
+\setbeamercolor{block title example}{parent=block title,fg=accent2}
+\setbeamercolor{block body example}{parent=block body}
+\setbeamercolor{block title alerted}{parent=block title,fg=accent3}
+\setbeamercolor{block body alerted}{parent=block body}
+
+%% ------------------------ select templates -------------------------
+
+\setbeamertemplate{background canvas}[awesome]
+\setbeamertemplate{background texture}[awesome]
+\setbeamertemplate{background}[circle]
+\setbeamertemplate{footline}[simple]
+\setbeamertemplate{footline left}[title]
+\setbeamertemplate{footline center}[author]
+\setbeamertemplate{footline right}[institute]
+\setbeamertemplate{title page}[circle]
+\setbeamertemplate{at begin section}[plain]
+\setbeamertemplate{at begin subsection}[plain]
+\setbeamertemplate{section page}[circle]
+\setbeamertemplate{subsection page}[circle]
+\setbeamertemplate{block begin}[gauss]
+\setbeamertemplate{block end}[gauss]
+\setbeamertemplate{block example begin}[gauss]
+\setbeamertemplate{block example end}[gauss]
+\setbeamertemplate{block alerted begin}[gauss]
+\setbeamertemplate{block alerted end}[gauss]
+\setbeamertemplate{theorem begin}[default]
+\setbeamertemplate{theorem end}[default]
+\setbeamertemplate{proof begin}[default]
+\setbeamertemplate{proof end}[default]
+\setbeamertemplate{frametitle}[gauss]
+\setbeamertemplate{navigation symbols}{}
+\setbeamertemplate{section}[simple]
+\setbeamertemplate{subsection}[simple]
+\setbeamertemplate{section in toc}[sections numbered]
+\setbeamertemplate{subsection in toc}[subsections numbered]
+\setbeamertemplate{section in toc shaded}[default][100]
+\setbeamertemplate{subsection in toc shaded}[default][100]
+\setbeamertemplate{itemize items}[default]
+\setbeamertemplate{enumerate items}[default]
+
+%% ----------------------- handout mode ------------------------------
+
+\mode<handout>{
+ \setbeamertemplate{background canvas}{}
+ \setbeamertemplate{background texture}{}
+ \colorlet{accent1}{accent1!50!black}
+ \colorlet{accent2}{accent2!50!black}
+ \colorlet{accent3}{accent3!50!black}
+ \colorlet{accent4}{accent4!50!black}
+ \colorlet{accent5}{accent5!50!black}
+ \colorlet{dcolor}{darkgray}
+ \colorlet{fcolor}{white}
+ \setbeamercolor{normal text}{fg=black, bg=white}
+ \setbeamercolor{title}{fg=teal}
+ \setbeamercolor{subtitle}{fg=gray}
+ \setbeamercolor{author}{fg=black}
+ \setbeamercolor{institute}{fg=gray}
+ \setbeamercolor{date}{fg=black}
+ \setbeamercolor{section in toc}{fg=teal!90!gray}
+ \setbeamercolor{subsection in toc}{fg=teal!80!gray}
+ \setbeamercolor{section in toc shaded}{fg=lightgray}
+ \setbeamercolor{subsection in toc shaded}{fg=lightgray}
+ \setbeamercolor{frametitle}{fg=teal!70!gray,bg=white}
+ \setbeamercolor{separator line}{fg=darkgray}
+ \setbeamercolor{footline}{bg=white,fg=black}
+ \setbeamercolor{block title}{bg=}
+ \setbeamercolor{block body}{bg=}
+}
+
+\mode
+<all>
+
+\makeatother
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamerthemeconcrete/gauss/demo-gauss.pdf b/macros/latex/contrib/beamer-contrib/themes/beamerthemeconcrete/gauss/demo-gauss.pdf
new file mode 100644
index 0000000000..cabda048fc
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamerthemeconcrete/gauss/demo-gauss.pdf
Binary files differ
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamerthemeconcrete/gauss/demo-gauss.tex b/macros/latex/contrib/beamer-contrib/themes/beamerthemeconcrete/gauss/demo-gauss.tex
new file mode 100644
index 0000000000..25db3c6e76
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamerthemeconcrete/gauss/demo-gauss.tex
@@ -0,0 +1,175 @@
+% -*- coding: utf-8 -*-
+
+\documentclass[14pt,xcolor={rgb}]{beamer}
+
+\usetheme{gauss}
+
+% remove these two lines to hide footlines in (sub)section pages
+\setbeamertemplate{at begin section}[normal]
+\setbeamertemplate{at begin subsection}[normal]
+
+\usepackage{arev}
+
+\begin{document}
+
+\title{Beamer Theme Gauss}
+\author{Author Name}
+\institute{Institute Name}
+
+\begin{frame}[plain]
+\titlepage
+\end{frame}
+
+\section{Section One}
+
+\subsection{Subsection One}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\subsection{Subsection Two}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\subsection{Subsection Three}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\section{Section Two}
+
+\subsection{Subsection One}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\subsection{Subsection Two}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\subsection{Subsection Three}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\section{Section Three}
+
+\subsection{Subsection One}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\subsection{Subsection Two}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\subsection{Subsection Three}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\end{document}
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamerthemeconcrete/lagrange/beamerthemelagrange.sty b/macros/latex/contrib/beamer-contrib/themes/beamerthemeconcrete/lagrange/beamerthemelagrange.sty
new file mode 100644
index 0000000000..41440e174f
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamerthemeconcrete/lagrange/beamerthemelagrange.sty
@@ -0,0 +1,379 @@
+% -*- coding: utf-8 -*-
+% ----------------------------------------------------------------------------
+% Author: Jianrui Lyu <tolvjr@163.com>
+% Website: https://github.com/lvjr/concrete
+% License: The LaTeX Project Public License 1.3c
+% ----------------------------------------------------------------------------
+
+\ProvidesPackage{beamerthemelagrange}[2024-01-19 v2024A Beamer Theme Lagrange]
+
+\makeatletter
+
+% compatible with old versions of beamer
+\providecommand{\beamer@endinputifotherversion}[1]{}
+
+\RequirePackage{tikz,etoolbox,manfnt}
+\usetikzlibrary{calc}
+
+\mode<presentation>
+
+\@ifclasswith{beamer}{aspectratio=169}
+ {\setbeamersize{text margin left=5mm,text margin right=5mm}}
+ {\setbeamersize{text margin left=6mm,text margin right=6mm}}
+
+%% ----------------- background canvas and background ----------------
+
+\newcommand{\my@background@canvas@vector@narrow}{%
+ \begin{tikzpicture}
+ \useasboundingbox (0,0) rectangle (\paperwidth,\paperheight);
+ \draw[line width=4mm, rounded corners=4mm, corner1,
+ shading=axis,top color=corner2!80,bottom color=corner2!80,middle color=white,shading angle=-45]
+ (0,0) rectangle (\paperwidth,\paperheight);
+ \draw[line width=3.5mm, rounded corners=3.8mm, corner2]
+ (0,0) rectangle (\paperwidth,\paperheight);
+ \draw[draw=lightgray!50, step=4mm, xshift=6mm, yshift=6mm, opacity=0.5]
+ (0,0) grid ($(\paperwidth,\paperheight)-(12mm,12mm)$);
+ \end{tikzpicture}
+}
+
+\newcommand{\my@background@canvas@vector@wide}{%
+ \begin{tikzpicture}
+ \useasboundingbox (0,0) rectangle (\paperwidth,\paperheight);
+ \draw[line width=4mm, rounded corners=4mm, corner1,
+ shading=axis,top color=corner2!80,bottom color=corner2!80,middle color=white,shading angle=-45]
+ (0,0) rectangle (\paperwidth,\paperheight);
+ \draw[line width=3.5mm, rounded corners=3.8mm, corner2]
+ (0,0) rectangle (\paperwidth,\paperheight);
+ \draw[draw=lightgray!50, step=5mm, xshift=5mm, yshift=5mm, opacity=0.5]
+ (0,0) grid ($(\paperwidth,\paperheight)-(10mm,10mm)$);
+ \end{tikzpicture}
+}
+
+\newcommand{\my@background@canvas@raster@narrow}{%
+ \includegraphics<beamer>[width=\paperwidth,height=\paperheight]{backgroundn1}%
+ \includegraphics<handout>[width=\paperwidth,height=\paperheight]{backgroundn2}%
+}
+
+\newcommand{\my@background@canvas@raster@wide}{%
+ \includegraphics<beamer>[width=\paperwidth,height=\paperheight]{backgroundw1}%
+ \includegraphics<handout>[width=\paperwidth,height=\paperheight]{backgroundw2}%
+}
+
+\@ifclasswith{beamer}{aspectratio=169}{%
+ \let\my@background@canvas@vector=\my@background@canvas@vector@wide
+ \let\my@background@canvas@raster=\my@background@canvas@raster@wide
+}{%
+ \let\my@background@canvas@vector=\my@background@canvas@vector@narrow
+ \let\my@background@canvas@raster=\my@background@canvas@raster@narrow
+}
+
+\defbeamertemplate{background canvas}{vector}{%
+ \my@background@canvas@vector
+}
+
+\defbeamertemplate{background canvas}{raster}{%
+ \my@background@canvas@raster
+}
+
+\defbeamertemplate{background}{logo}[1][height=0.6\paperheight]{%
+ \parbox[c][\paperheight][c]{\paperwidth}{\centering\includegraphics[#1]{logo}}%
+}
+
+\@ifclasswith{beamer}{aspectratio=169}{%
+ \defbeamertemplate{background}{line}[1][\relax]{%
+ \begin{tikzpicture}
+ \useasboundingbox (0,0) rectangle (\paperwidth,\paperheight);
+ \draw[draw=accent2!50, #1, xshift=5mm, yshift=5mm, opacity=0.5]
+ (0,0) grid ($(\paperwidth,\paperheight)-(10mm,10mm)$);
+ %\insertbackgroundmark
+ \end{tikzpicture}%
+ }
+}{
+ \defbeamertemplate{background}{line}[1][\relax]{%
+ \begin{tikzpicture}
+ \useasboundingbox (0,0) rectangle (\paperwidth,\paperheight);
+ \draw[draw=accent2!50, #1, xshift=6mm, yshift=6mm, opacity=0.5]
+ (0,0) grid ($(\paperwidth,\paperheight)-(12mm,12mm)$);
+ %\insertbackgroundmark
+ \end{tikzpicture}%
+ }
+}
+
+\@ifclasswith{beamer}{aspectratio=169}{%
+ \defbeamertemplate{background}{lattice}[1][1mm]{%
+ \begin{tikzpicture}
+ \useasboundingbox (0,0) rectangle (\paperwidth,\paperheight);
+ \draw[draw=accent3!50, step=2.5mm, xshift=5mm, yshift=5mm, opacity=0.5]
+ (0,0) grid ($(\paperwidth,\paperheight)-(10mm,10mm)$);
+ %\insertbackgroundmark
+ \end{tikzpicture}%
+ }
+}{
+ \defbeamertemplate{background}{lattice}[1][1mm]{%
+ \begin{tikzpicture}
+ \useasboundingbox (0,0) rectangle (\paperwidth,\paperheight);
+ \draw[draw=accent3!50, step=2mm, xshift=6mm, yshift=6mm, opacity=0.5]
+ (0,0) grid ($(\paperwidth,\paperheight)-(12mm,12mm)$);
+ %\insertbackgroundmark
+ \end{tikzpicture}%
+ }
+}
+
+%% -------------------------- title page -----------------------------
+
+% add \occasion command
+\newcommand{\occasion}[1]{\def\insertoccasion{#1}}
+\occasion{}
+
+\newlength{\my@title@split@left}
+\newlength{\my@title@split@right}
+\@ifclasswith{beamer}{aspectratio=169}{
+ \setlength{\my@title@split@left}{0.618\textwidth}
+ \setlength{\my@title@split@right}{0.382\textwidth}
+}{
+ \setlength{\my@title@split@left}{0.54\textwidth}
+ \setlength{\my@title@split@right}{0.46\textwidth}
+}
+
+
+\defbeamertemplate{title page}{split}{%
+ \begin{minipage}[c][0.9\textheight]{\my@title@split@left}
+ \linespread{1}\raggedright
+ \vfill
+ \ifx\insertoccasion\@empty\else
+ \usebeamerfont*{occasion}\usebeamercolor[fg]{occasion}\insertoccasion\\[3pt]%
+ \fi
+ \usebeamerfont*{date}\usebeamercolor[fg]{date}\insertdate
+ \vspace{4pt}{\color{gray}\hrule}
+ \vfill\vfill
+ \usebeamerfont*{title}\usebeamercolor[fg]{title}\inserttitle
+ \ifx\insertsubtitle\@empty\else
+ \\[5pt]\usebeamerfont*{subtitle}\usebeamercolor[fg]{subtitle}\insertsubtitle
+ \fi%
+ \vfill\vfill{\color{gray}\hrule}\vspace{4pt}
+ \usebeamerfont*{author}\usebeamercolor[fg]{author}\insertauthor\\[3pt]%
+ \usebeamerfont*{institute}\usebeamercolor[fg]{institute}\insertinstitute
+ \vfill\vfill
+ \end{minipage}%
+ \begin{minipage}[c][0.9\textheight]{\my@title@split@right}
+ \hfill
+ \IfFileExists{titlepage.png}{%
+ \includegraphics[height=0.9\textheight]{titlepage}%
+ }{%
+ \begin{tikzpicture}[draw=gray,text=darkgray]
+ \draw[use as bounding box] (0,0) rectangle (0.5\paperheight,0.7\paperheight);
+ \draw (0,0) -- (0.5\paperheight,0.7\paperheight);
+ \draw (0,0.7\paperheight) -- (0.5\paperheight,0);
+ \node at (0.25\paperheight,0.35\paperheight) {titlepage.png};
+ \end{tikzpicture}%
+ }%
+ \end{minipage}
+}
+
+%% ----------------------- section and subsection --------------------
+
+\def\sectionintochideskip{10pt}
+\def\sectionintocshowskip{6pt}
+\patchcmd{\beamer@sectionintoc}{\vskip1.5em}{\vskip\sectionintochideskip}{}{}
+\patchcmd{\beamer@sectionintoc}{\vfill}{\vskip\sectionintocshowskip}{}{}
+
+\AtBeginSection[]{%
+ \begin{frame}
+ \tableofcontents[sectionstyle=show/shaded,subsectionstyle=hide]
+ \end{frame}
+}
+
+\defbeamertemplate{section in toc}{numbered}{%
+ \leavevmode\leftskip=8mm\inserttocsectionnumber.\hspace{0.6em}\inserttocsection\par
+}
+\defbeamertemplate{section in toc}{dbend}{%
+ \leavevmode\leftskip=8mm{\color{accent3}\tiny\textdbend\scriptsize\inserttocsectionnumber}%
+ \hspace{0.6em}\inserttocsection\par
+}
+
+\AtBeginSubsection[]{%
+ \begin{frame}
+ \tableofcontents[sectionstyle=show/hide,subsectionstyle=show/shaded/hide]
+ \end{frame}
+}
+
+\defbeamertemplate{subsection in toc}{numbered}{%
+ \vspace{6pt}\leavevmode\leftskip=12mm\inserttocsectionnumber.\inserttocsubsectionnumber
+ \hspace{0.8em}\inserttocsubsection\par
+}
+\defbeamertemplate{subsection in toc}{dbend}{%
+ \vspace{6pt}\leavevmode\leftskip=12mm{\color{accent3}\tiny\textdbend
+ \scriptsize\inserttocsectionnumber.\inserttocsubsectionnumber}%
+ \hspace{0.8em}\inserttocsubsection\par
+}
+
+%% ---------------- headline, footline and textheight ----------------
+
+% make \textheight = \paperheight - 12mm
+\patchcmd{\beamer@calculateheadfoot}{\advance\footheight by 4pt}{}{}{}
+
+% modify plain frames
+\def\beamer@frametemplate@plain{}
+
+\@ifclasswith{beamer}{aspectratio=169}{
+ \setbeamertemplate{headline}{\vspace{5mm}}
+ \setbeamertemplate{footline}{\vspace{5mm}}
+}{
+ \setbeamertemplate{headline}{\vspace{6mm}}
+ \setbeamertemplate{footline}{\vspace{6mm}}
+}
+
+% patch frames with t option
+\patchcmd{\KV@beamerframe@t}
+ {\beamer@frametopskip=.2cm plus .5\paperheight}
+ {\beamer@frametopskip=0mm}
+ {}{}
+
+%% ------------------------- frame title -----------------------------
+
+\defbeamertemplate{frametitle}{simple}[1][]{%
+ \nointerlineskip
+ \begin{beamercolorbox}[wd=\paperwidth,sep=0pt,leftskip=\beamer@leftmargin,%
+ rightskip=\beamer@rightmargin,#1]{frametitle}
+ \usebeamerfont{frametitle}%
+ \rule[-0.45em]{0pt}{1.5em}\insertframetitle\usebeamertemplate{frame number}%
+ \rule[-0.45em]{0pt}{1.5em}\par
+ \end{beamercolorbox}
+}
+
+\defbeamertemplate{frame number}{simple}{%
+ \usebeamercolor{normal text}%
+ \hfill{\color{fg!60!bg}\insertframenumber}%
+}
+
+%% ------------------- block and theorem -----------------------------
+
+% allow it to be modified by user
+\def\myinserttheoremaddition{\inserttheoremaddition}
+
+\defbeamertemplate{theorem begin}{simple}
+{%
+ \upshape%\bfseries\inserttheoremheadfont
+ {\usebeamercolor[fg]{theoremname}%
+ \inserttheoremname\inserttheoremnumber
+ \ifx\inserttheoremaddition\@empty\else
+ \ \usebeamercolor[fg]{local structure}(\myinserttheoremaddition)%
+ \fi%
+ %\inserttheorempunctuation
+ }%
+ \quad\normalfont
+}
+\defbeamertemplate{theorem end}{simple}{\par}
+
+\defbeamertemplate{proof begin}{simple}
+{%
+ %\bfseries
+ {\usebeamercolor[fg]{proofname}\insertproofname}%
+ \quad\normalfont
+}
+\defbeamertemplate{proof end}{simple}{\par}
+
+%% --------------------------- font theme ----------------------------
+
+\setbeamerfont{title}{size=\LARGE,series=\bfseries,family=\rmfamily}
+\setbeamerfont{subtitle}{size=\large}
+\setbeamerfont{occasion}{size=\normalsize}
+\setbeamerfont{date}{size=\normalsize}
+\setbeamerfont{author}{size=\normalsize}
+\setbeamerfont{institute}{size=\normalsize}
+\setbeamerfont{section in toc}{size=\Large}
+\setbeamerfont{subsection in toc}{size=\large}
+\setbeamerfont{frametitle}{size=\large}
+\setbeamerfont{block title}{size=\normalsize}
+
+\usefonttheme{professionalfonts}
+%\usepackage{arev}
+
+%% ---------------------------- color theme --------------------------
+
+% always use rgb colors in pdf files
+\substitutecolormodel{hsb}{rgb}
+
+\definecolor{redx5}{Hsb}{0,1,0.5}
+\definecolor{yellow86}{Hsb}{60,0.8,0.6}
+\definecolor{greenx3}{Hsb}{120,1,0.3}
+\definecolor{azurexx}{Hsb}{210,1,0.5}
+\definecolor{blue29}{Hsb}{240,0.2,0.9}
+\definecolor{magenta88}{Hsb}{300,0.8,0.8}
+
+\colorlet{text1}{black}
+\colorlet{back1}{white}
+\colorlet{accent1}{azurexx}
+\colorlet{accent2}{greenx3}
+\colorlet{accent3}{redx5}
+\colorlet{accent4}{yellow86}
+\colorlet{accent5}{magenta88}
+\colorlet{filler1}{accent1!40!back1}
+\colorlet{filler2}{accent2!40!back1}
+\colorlet{filler3}{accent3!40!back1}
+\colorlet{filler4}{accent4!40!back1}
+\colorlet{filler5}{accent5!40!back1}
+\colorlet{gray1}{black!20}
+\colorlet{gray2}{black!35}
+\colorlet{gray3}{black!50}
+\colorlet{gray4}{black!65}
+\colorlet{gray5}{black!80}
+\colorlet{corner1}{white}
+\colorlet{corner2}{blue29}
+
+\setbeamercolor{normal text}{bg=white,fg=black}
+\setbeamercolor{structure}{fg=accent3}
+\setbeamercolor{local structure}{fg=accent2}
+\setbeamercolor{footline}{bg=,fg=black}
+\setbeamercolor{title}{use=structure,fg=structure.fg}
+\setbeamercolor{subtitle}{fg=black}
+\setbeamercolor{occasion}{fg=accent1}
+\setbeamercolor{date}{fg=black}
+\setbeamercolor{author}{fg=accent2}
+\setbeamercolor{institute}{fg=black}
+\setbeamercolor{section in toc}{parent=occasion}
+\setbeamercolor{subsection in toc}{parent=author}
+\setbeamercolor{section in toc shaded}{parent=normal text}
+\setbeamercolor{subsection in toc shaded}{parent=normal text}
+\setbeamercolor{frametitle}{parent=title}
+\setbeamercolor{theoremname}{parent=occasion}
+\setbeamercolor{proofname}{parent=occasion}
+\setbeamercolor{block title}{fg=white,bg=accent1}
+\setbeamercolor{block body}{bg=lightgray}
+\setbeamercolor{block title example}{fg=white,bg=accent2}
+\setbeamercolor{block body example}{bg=lightgray}
+\setbeamercolor{block title alerted}{fg=white,bg=accent3}
+\setbeamercolor{block body alerted}{bg=lightgray}
+
+%% ------------------------ select templates -------------------------
+
+\setbeamertemplate{background canvas}[vector]
+\setbeamertemplate{title page}[split]
+\setbeamertemplate{theorem begin}[simple]
+\setbeamertemplate{theorem end}[simple]
+\setbeamertemplate{proof begin}[simple]
+\setbeamertemplate{proof end}[simple]
+\setbeamertemplate{frametitle}[simple]
+\setbeamertemplate{frame number}[simple]
+\setbeamertemplate{navigation symbols}{}
+\setbeamertemplate{section in toc}[dbend]
+\setbeamertemplate{subsection in toc}[dbend]
+\setbeamertemplate{subsubsection in toc}{}
+\setbeamertemplate{section in toc shaded}[default][100]
+\setbeamertemplate{subsection in toc shaded}[default][100]
+\setbeamertemplate{itemize items}[default]
+\setbeamertemplate{enumerate items}[default]
+
+%% ----------------------- handout mode ------------------------------
+
+\mode<handout>{
+ \colorlet{corner1}{lightgray}
+ \colorlet{corner2}{white}
+ \setbeamercolor{section in toc shaded}{fg=lightgray}
+ \setbeamercolor{subsection in toc shaded}{fg=lightgray}
+}
+
+\mode
+<all>
+
+\makeatother
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamerthemeconcrete/lagrange/demo-lagrange.pdf b/macros/latex/contrib/beamer-contrib/themes/beamerthemeconcrete/lagrange/demo-lagrange.pdf
new file mode 100644
index 0000000000..46628de736
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamerthemeconcrete/lagrange/demo-lagrange.pdf
Binary files differ
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamerthemeconcrete/lagrange/demo-lagrange.tex b/macros/latex/contrib/beamer-contrib/themes/beamerthemeconcrete/lagrange/demo-lagrange.tex
new file mode 100644
index 0000000000..59f793bcc4
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamerthemeconcrete/lagrange/demo-lagrange.tex
@@ -0,0 +1,71 @@
+% -*- coding: utf-8 -*-
+
+\documentclass[11pt,xcolor={rgb}]{beamer}
+
+\usetheme{lagrange}
+
+\usepackage{arev}
+
+\usepackage{listings}
+
+\lstset{
+ basicstyle=\ttfamily\color{accent2},
+ frame=single,
+}
+
+\begin{document}
+
+\title{Beamer Theme Lagrange}
+\author{Author Name}
+\institute{Institute Name}
+\occasion{Some Conference}
+
+\begin{frame}[plain]
+\titlepage
+\end{frame}
+
+\section{Introduction}
+
+\begin{frame}
+\frametitle{Introduction}
+Beamer theme Lagrange is inspired by these two themes
+\begin{itemize}
+ \item Pdfscreen theme Overlay4
+ \item Keynote theme Drafting
+\end{itemize}
+\end{frame}
+
+\section{First Example}
+
+\begin{frame}[fragile=singleslide]
+\frametitle{First Example}
+The following is a simple example
+\begin{lstlisting}
+\documentclass[xcolor={rgb}]{beamer}
+
+\usetheme{lagrange}
+
+\begin{document}
+
+\begin{frame}
+ Hello Beamer!
+\end{frame}
+
+\end{document}
+\end{lstlisting}
+Note that you \textcolor{accent3}{need to} use \lstinline!xcolor={rgb}! option for this theme.
+\end{frame}
+
+\section{Customization}
+
+\begin{frame}[fragile=singleslide]
+\frametitle{Customization}
+To change vertical spaces between lines in TOC pages,
+you could redefine these two commands:
+\begin{lstlisting}
+\renewcommand{\sectionintochideskip}{10pt}
+\renewcommand{\sectionintocshowskip}{6pt}
+\end{lstlisting}
+\end{frame}
+
+\end{document}
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamerthemeconcrete/mobius/beamerthememobius.sty b/macros/latex/contrib/beamer-contrib/themes/beamerthemeconcrete/mobius/beamerthememobius.sty
new file mode 100644
index 0000000000..7faf5b36c5
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamerthemeconcrete/mobius/beamerthememobius.sty
@@ -0,0 +1,291 @@
+% -*- coding: utf-8 -*-
+% ----------------------------------------------------------------------------
+% Author: Jianrui Lyu <tolvjr@163.com>
+% Website: https://github.com/lvjr/concrete
+% License: The LaTeX Project Public License 1.3c
+% ----------------------------------------------------------------------------
+
+\ProvidesPackage{beamerthememobius}[2024-01-19 v2024A Beamer Theme Mobius]
+
+\makeatletter
+
+% compatible with old versions of beamer
+\providecommand{\beamer@endinputifotherversion}[1]{}
+
+\RequirePackage{tikz,adjustbox}
+\usetikzlibrary{decorations.pathmorphing,calc}
+
+\mode<presentation>
+
+\setbeamersize{text margin left=8mm,text margin right=8mm}
+
+%% ----------------- background canvas and background ----------------
+
+\defbeamertemplate{background}{mobius}{%
+ \begin{tikzpicture}
+ \useasboundingbox (0,0) rectangle (\paperwidth,\paperheight);
+ \foreach \i in {0,16,...,128} \foreach \j in {0,16,...,96} {
+ \path[draw=purple94!90!black] (\i mm,\j mm) circle (16mm);
+ }
+ \end{tikzpicture}%
+}
+
+% need "text badly ragged" option for correct space skips
+% see http://tex.stackexchange.com/a/132748/8956
+\gdef\my@background@title{%
+ \begin{tikzpicture}
+ \useasboundingbox (0,0) rectangle (\paperwidth,\paperheight);
+ \path[fill=fcolor,opacity=0.4]
+ (0,0.3\paperheight) rectangle (\paperwidth,0.8\paperheight);
+ \path[draw=dcolor,thick] (0,0.3\paperheight) -- (\paperwidth,0.3\paperheight)
+ (0,0.8\paperheight) -- (\paperwidth,0.8\paperheight);
+ \node[text width=0.9\paperwidth,text badly ragged] at (0.5\paperwidth,0.55\paperheight) {%
+ \begin{minipage}[c][0.6\paperheight]{0.9\paperwidth}
+ \centering
+ \usebeamerfont{title}\usebeamercolor[fg]{title}\inserttitle
+ \ifx\insertsubtitle\@empty\else
+ \\[5pt]\usebeamerfont{subtitle}\usebeamercolor[fg]{subtitle}
+ \insertsubtitle
+ \fi
+ \end{minipage}
+ };
+ \path[fill=fcolor,draw=dcolor,thick,opacity=0.4]
+ (0.15\paperwidth,0) -- (0.5\paperwidth,0.35\paperheight) -- (0.85\paperwidth,0);
+ \node[text width=0.9\paperwidth,text badly ragged] at (0.5\paperwidth,0.15\paperheight) {%
+ \begin{minipage}[c][0.25\paperheight]{0.9\paperwidth}
+ \centering
+ \usebeamerfont{author}\usebeamercolor[fg]{author}\insertauthor\\[3pt]
+ \usebeamerfont{institute}\usebeamercolor[fg]{institute}\insertinstitute\\[3pt]
+ \usebeamerfont{date}\usebeamercolor[fg]{date}\insertdate
+ \end{minipage}
+ };
+ \end{tikzpicture}
+}
+
+\gdef\my@background@section{%
+ \begin{tikzpicture}
+ \useasboundingbox (0,0) rectangle (\paperwidth,\paperheight);
+ \path[fill=fcolor,thick,opacity=0.4]
+ (0,0.35\paperheight) rectangle (\paperwidth,0.75\paperheight);
+ \path[draw=dcolor,thick] (0,0.35\paperheight) -- (\paperwidth,0.35\paperheight)
+ (0,0.75\paperheight) -- (\paperwidth,0.75\paperheight);
+ \node[text width=\textwidth,text badly ragged] at (0.5\paperwidth,0.55\paperheight) {%
+ \begin{minipage}[c]{\textwidth}
+ \usebeamertemplate{section page content}%
+ \end{minipage}
+ };
+ \end{tikzpicture}
+}
+
+%% -------------------------- title page -----------------------------
+
+\defbeamertemplate{title page}{mobius}{%
+ \nointerlineskip
+ \begin{adjustbox}{width=\paperwidth,center}%
+ \my@background@title
+ \end{adjustbox}%
+}
+
+%% ----------------------- section and subsection --------------------
+
+% create new template for section
+\defbeamertemplate{section}{simple}{%
+ \insertsectionnumber.\hspace*{1ex}\insertsection%
+}
+
+\AtBeginSection[]{\begin{frame}[plain]{\sectionpage}\end{frame}}
+
+\defbeamertemplate{section page}{mobius}{%
+ \nointerlineskip
+ \begin{adjustbox}{width=\paperwidth,center}%
+ \my@background@section
+ \end{adjustbox}%
+}
+
+\defbeamertemplate{section page content}{simple}{
+ \begin{beamercolorbox}[wd=\textwidth,center]{section title}%
+ \usebeamerfont{section title}
+ \usebeamertemplate{section}%
+ \end{beamercolorbox}
+}
+
+%% ---------------------- headline and footline ----------------------
+
+\newif\ifmy@subsection \my@subsectionfalse
+
+\newcommand{\my@sectionentry}[5]{%
+ \hfill
+ \ifnum\c@section=#1%
+ \usebeamercolor{footline highlight}%
+ \else%
+ \usebeamercolor{footline}%
+ \fi%
+ \hyperlink{Navigation#3}{%
+ \colorbox{bg}{%
+ \hspace{0.2em}\rule[-1ex]{0pt}{3.25ex}\color{fg}#2\hspace{0.2em}%
+ }%
+ }%
+ \let\slideentry=\my@slideentry
+}
+
+\newcommand{\my@subsectionentry}[5]{\my@subsectiontrue}
+
+\newcommand{\my@slideentry}[6]{%
+ \ifmy@subsection
+ \usebeamercolor{footline}%
+ \def\my@box{$\circ$}%
+ \ifnum\c@section=#1%
+ \usebeamercolor{footline highlight}%
+ \ifnum\c@subsection=#2%
+ \def\my@box{$\bullet$}%
+ \fi
+ \fi
+ \beamer@link(#4){%
+ \colorbox{bg}{%
+ \rule[-1ex]{0pt}{3.25ex}\hspace{0.1em}\color{fg}\my@box\hspace{0.1em}%
+ }%
+ }%
+ \my@subsectionfalse
+ \fi
+}
+
+\defbeamertemplate{footline}{mobius}{%
+ % default height is 0.4pt, which is ignored by adobe reader, so we increase it by 0.2pt
+ {\color{dcolor}\hrule height 0.6pt}%
+ %\pgfsetfillopacity{0.6}%
+ \begin{beamercolorbox}[wd=\paperwidth,ht=2.25ex,dp=1ex]{footline}%
+ \usebeamerfont{footline}%
+ \kern\beamer@leftmargin
+ \setlength{\fboxsep}{0pt}%
+ \let\sectionentry=\my@sectionentry
+ \let\beamer@subsectionentry=\my@subsectionentry
+ \hskip 0pt plus -1fill\dohead
+ \hskip 0pt plus 9fill\relax
+ \Acrobatmenu{GoToPage}{\insertframenumber{}/\inserttotalframenumber}%
+ \kern\beamer@rightmargin
+ \end{beamercolorbox}%
+}
+
+%% ------------------------- frame title -----------------------------
+
+\defbeamertemplate{frametitle}{simple}[1][]{%
+ \nointerlineskip
+ \begin{beamercolorbox}[wd=\paperwidth,sep=0pt,leftskip=\beamer@leftmargin,%
+ rightskip=\beamer@rightmargin,#1]{frametitle}
+ \usebeamerfont{frametitle}%
+ \rule[-3.6mm]{0pt}{12mm}\insertframetitle\rule[-3.6mm]{0pt}{12mm}\par
+ \end{beamercolorbox}
+}
+
+%% --------------------------- font theme ----------------------------
+
+\setbeamerfont{title}{size=\LARGE}
+\setbeamerfont{subtitle}{size=\large}
+\setbeamerfont{author}{size=\large}
+\setbeamerfont{institute}{size=\normalsize}
+\setbeamerfont{date}{size=\normalsize}
+\setbeamerfont{section in toc}{size=\Large}
+\setbeamerfont{footline}{size=\scriptsize}
+\setbeamerfont{frametitle}{size=\large}
+\setbeamerfont{block title}{size=\normalsize}
+
+\usefonttheme{professionalfonts}
+%\usepackage{arev}
+
+%\setlength{\parskip}{5pt plus 1pt minus 1pt}
+
+%% ---------------------------- color theme --------------------------
+
+% always use rgb colors in pdf files
+\substitutecolormodel{hsb}{rgb}
+
+\definecolor{red69}{Hsb}{0,0.6,0.9}
+\definecolor{yellow69}{Hsb}{60,0.6,0.9}
+\definecolor{yellow99}{Hsb}{60,0.9,0.9}
+\definecolor{green69}{Hsb}{120,0.6,0.9}
+\definecolor{azure53}{Hsb}{210,0.5,0.3}
+\definecolor{blue77}{Hsb}{240,0.7,0.7}
+\definecolor{blue88}{Hsb}{240,0.8,0.8}
+\definecolor{blue97}{Hsb}{240,0.9,0.7}
+\definecolor{purple94}{Hsb}{330,0.9,0.4}
+\definecolor{purple63}{Hsb}{320,0.6,0.3}
+
+\colorlet{text1}{white}
+\colorlet{back1}{blue77}
+\colorlet{accent1}{yellow69}
+\colorlet{accent2}{green69}
+\colorlet{accent3}{black}
+\colorlet{filler1}{accent1!40!back1}
+\colorlet{filler2}{accent2!40!back1}
+\colorlet{filler3}{accent3!40!back1}
+\colorlet{dcolor}{white}
+\colorlet{fcolor}{azure53}
+
+\setbeamercolor{normal text}{bg=purple94,fg=white}
+\setbeamercolor{structure}{fg=yellow99}
+\setbeamercolor{local structure}{fg=accent2}
+\setbeamercolor{footline}{bg=purple63,fg=white}
+\setbeamercolor{footline highlight}{parent=footline,bg=filler2}
+\setbeamercolor{navigation symbols}{bg=purple94}
+\setbeamercolor{navigation symbols dimmed}{fg=purple94}
+\setbeamercolor{title}{use=structure,fg=structure.fg}
+\setbeamercolor{subtitle}{fg=white}
+\setbeamercolor{author}{use=local structure,fg=local structure.fg}
+\setbeamercolor{institute}{fg=white}
+\setbeamercolor{date}{fg=white}
+\setbeamercolor{section in toc}{parent=title}
+\setbeamercolor{section in toc shaded}{parent=normal text}
+\setbeamercolor{frametitle}{parent=title}
+\setbeamercolor{block title}{fg=accent1,bg=back1!50!gray}
+\setbeamercolor{block body}{bg=back1!50!lightgray}
+\setbeamercolor{block title example}{fg=accent2,bg=back1!50!gray}
+\setbeamercolor{block body example}{bg=back1!50!lightgray}
+\setbeamercolor{block title alerted}{fg=accent3,bg=back1!50!gray}
+\setbeamercolor{block body alerted}{bg=back1!50!lightgray}
+
+%% ------------------------ select templates -------------------------
+
+\setbeamertemplate{background canvas}[default]
+\setbeamertemplate{background}[mobius]
+\setbeamertemplate{title page}[mobius]
+\setbeamertemplate{section page}[mobius]
+\setbeamertemplate{section page content}[simple]
+\setbeamertemplate{section}[simple]
+\setbeamertemplate{section in toc}[sections numbered]
+\setbeamertemplate{section in toc shaded}[default][100]
+\setbeamertemplate{navigation symbols}{}
+\setbeamertemplate{footline}[mobius]
+\setbeamertemplate{frametitle}[simple]
+\setbeamertemplate{itemize items}[default]
+\setbeamertemplate{enumerate items}[default]
+
+%% ----------------------- handout mode ------------------------------
+
+\mode<handout>{
+ \setbeamertemplate{background canvas}{}
+ \setbeamertemplate{background}{}
+ \colorlet{text1}{black}
+ \colorlet{back1}{white}
+ \colorlet{accent1}{purple94}
+ \colorlet{accent2}{teal!70!black}
+ \colorlet{accent3}{blue77}
+ \colorlet{dcolor}{gray}
+ \colorlet{fcolor}{white}
+ \setbeamercolor{normal text}{fg=black, bg=white}
+ \setbeamercolor{structure}{fg=purple94}
+ \setbeamercolor{title}{fg=purple94}
+ \setbeamercolor{subtitle}{fg=black}
+ \setbeamercolor{author}{fg=accent2}
+ \setbeamercolor{institute}{fg=black}
+ \setbeamercolor{date}{fg=black}
+ \setbeamercolor{section in toc}{fg=purple94}
+ \setbeamercolor{section in toc shaded}{fg=lightgray}
+ \setbeamercolor{section title}{fg=purple94}
+ \setbeamercolor{footline}{bg=white,fg=black}
+ \setbeamercolor{footline highlight}{fg=accent2,bg=white}
+}
+
+\mode
+<all>
+
+\makeatother
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamerthemeconcrete/mobius/demo-mobius.pdf b/macros/latex/contrib/beamer-contrib/themes/beamerthemeconcrete/mobius/demo-mobius.pdf
new file mode 100644
index 0000000000..5260cfa1c6
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamerthemeconcrete/mobius/demo-mobius.pdf
Binary files differ
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamerthemeconcrete/mobius/demo-mobius.tex b/macros/latex/contrib/beamer-contrib/themes/beamerthemeconcrete/mobius/demo-mobius.tex
new file mode 100644
index 0000000000..ea5f47bac7
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamerthemeconcrete/mobius/demo-mobius.tex
@@ -0,0 +1,171 @@
+% -*- coding: utf-8 -*-
+
+\documentclass[12pt,xcolor={rgb}]{beamer}
+
+\usetheme{mobius}
+
+\usepackage{arev}
+
+\begin{document}
+
+\title{Beamer Theme Mobius}
+\author{Author Name}
+\institute{Institute Name}
+
+\begin{frame}[plain]
+\titlepage
+\end{frame}
+
+\section{Section One}
+
+\subsection{Subsection One}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\subsection{Subsection Two}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\subsection{Subsection Three}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\section{Section Two}
+
+\subsection{Subsection One}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\subsection{Subsection Two}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\subsection{Subsection Three}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\section{Section Three}
+
+\subsection{Subsection One}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\subsection{Subsection Two}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\subsection{Subsection Three}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\end{document}
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamerthemeconcrete/riemann/beamerthemeriemann.sty b/macros/latex/contrib/beamer-contrib/themes/beamerthemeconcrete/riemann/beamerthemeriemann.sty
new file mode 100644
index 0000000000..82f2fed151
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamerthemeconcrete/riemann/beamerthemeriemann.sty
@@ -0,0 +1,945 @@
+% -*- coding: utf-8 -*-
+% ----------------------------------------------------------------------------
+% Author: Jianrui Lyu <tolvjr@163.com>
+% Website: https://github.com/lvjr/concrete
+% License: The LaTeX Project Public License 1.3c
+% ----------------------------------------------------------------------------
+
+\ProvidesPackage{beamerthemeriemann}[2024-01-19 v2024A Beamer Theme Riemann]
+
+\makeatletter
+
+% compatible with old versions of beamer
+\providecommand{\beamer@endinputifotherversion}[1]{}
+
+\RequirePackage{tikz,etoolbox,adjustbox,calc}
+\usetikzlibrary{calc}
+
+\mode<presentation>
+
+\setbeamersize{text margin left=8mm,text margin right=8mm}
+
+%% ----------------- background canvas and background ----------------
+
+\newif\ifbackgroundmarkleft
+\newif\ifbackgroundmarkright
+
+\newcommand{\insertbackgroundmark}{
+ \ifbackgroundmarkleft
+ \foreach \x in {1,2,...,11} \draw[line width=0.2mm,markcolor]
+ (0,\x*\paperheight/12) ++(0.1mm,-0.5mm) rectangle +(1mm,1mm);
+ \fi
+ \ifbackgroundmarkright
+ \foreach \x in {1,2,...,11} \draw[line width=0.2mm,markcolor]
+ (\paperwidth,\x*\paperheight/12) ++(-1.1mm,-0.5mm) rectangle +(1mm,1mm);
+ \fi
+}
+
+\defbeamertemplate{background}{line}[1][]{%
+ \begin{tikzpicture}
+ \useasboundingbox (0,0) rectangle (\paperwidth,\paperheight);
+ \draw[xstep=\paperwidth,ystep=1mm,color=tcolor,#1] (0,0) grid (\paperwidth,\paperheight);
+ \insertbackgroundmark
+ \end{tikzpicture}%
+}
+
+\defbeamertemplate{background}{linear}{%
+ \begin{tikzpicture}
+ \useasboundingbox (0,0) rectangle (\paperwidth,\paperheight);
+ \draw[pattern=horizontal lines, pattern color=tcolor]
+ (0,0) rectangle (\paperwidth,\paperheight);
+ \insertbackgroundmark
+ \end{tikzpicture}%
+}
+
+\defbeamertemplate{background}{lattice}[1][1mm]{%
+ \begin{tikzpicture}
+ \useasboundingbox (0,0) rectangle (\paperwidth,\paperheight);
+ \draw[step=#1,color=tcolor,semithick] (0,0) grid (\paperwidth,\paperheight);
+ \insertbackgroundmark
+ \end{tikzpicture}%
+}
+
+\defbeamertemplate{background}{empty}{
+ \begin{tikzpicture}
+ \useasboundingbox (0,0) rectangle (\paperwidth,\paperheight);
+ \insertbackgroundmark
+ \end{tikzpicture}%
+}
+
+%% -------------------------- title page -----------------------------
+
+% add \occasion command
+\newcommand{\occasion}[1]{\def\insertoccasion{#1}}
+\occasion{}
+
+\defbeamertemplate{title page}{banner}{%
+ \nointerlineskip
+ \begin{adjustbox}{width=\paperwidth,center}%
+ \usebeamertemplate{title page content}%
+ \end{adjustbox}%
+}
+
+% need "text badly ragged" option for correct space skips
+% see http://tex.stackexchange.com/a/132748/8956
+\defbeamertemplate{title page content}{hexagon}{%
+ \begin{tikzpicture}
+ \useasboundingbox (0,0) rectangle (\paperwidth,\paperheight);
+ \path[draw=dcolor,fill=fcolor,opacity=0.8]
+ (0,0) rectangle (\paperwidth,\paperheight);
+ \node[text width=0.86\paperwidth,text badly ragged,inner ysep=1.5cm] (main) at (0.5\paperwidth,0.55\paperheight) {%
+ \begin{minipage}[c]{0.86\paperwidth}
+ \centering
+ \usebeamerfont{title}\usebeamercolor[fg]{title}\inserttitle
+ \ifx\insertsubtitle\@empty\else
+ \\[5pt]\usebeamerfont{subtitle}\usebeamercolor[fg]{subtitle}
+ \insertsubtitle
+ \fi
+ \end{minipage}
+ };
+ \node[rectangle,inner sep=0pt,minimum size=3mm,fill=dcolor,right] (a) at (0,0.55\paperheight) {};
+ \node[rectangle,inner sep=0pt,minimum size=3mm,fill=dcolor,left] (b) at (\paperwidth,0.55\paperheight) {};
+ \ifx\insertoccasion\@empty
+ \draw[thick,dcolor] (a.north east) -- (main.north west)
+ -- (main.north east) -- (b.north west);
+ \else
+ \node[text badly ragged] (occasion) at (main.north west -| 0.5\paperwidth,\paperheight) {
+ \usebeamerfont{occasion}\usebeamercolor[fg]{occasion}\insertoccasion
+ };
+ \draw[thick,dcolor] (a.north east) -- (main.north west) -- (occasion.west)
+ (b.north west) -- (main.north east) -- (occasion.east);
+ \fi
+ \node[text badly ragged] (date) at (main.south west -| 0.5\paperwidth,0) {
+ \usebeamerfont{date}\usebeamercolor[fg]{date}\insertdate
+ };
+ \draw[thick,dcolor] (a.south east) -- (main.south west) -- (date.west)
+ (b.south west) -- (main.south east) -- (date.east);
+ \node[below=4mm,text width=0.9\paperwidth,inner xsep=0.05\paperwidth,
+ text badly ragged,fill=white,draw=dcolor] at (date.south) {%
+ \begin{minipage}[c]{0.9\paperwidth}
+ \centering
+ \textcolor{accent2}{$\blacksquare$}\hspace{0.2em}%
+ \usebeamerfont{institute}\usebeamercolor[fg]{institute}\insertinstitute
+ \hspace{1em}\textcolor{accent2}{$\blacksquare$}\hspace{0.2em}%
+ \usebeamerfont{author}\usebeamercolor[fg]{author}\insertauthor
+ \end{minipage}
+ };
+ \end{tikzpicture}
+}
+
+\defbeamertemplate{title page content}{rectangle}{%
+ \begin{tikzpicture}
+ \useasboundingbox (0,0) rectangle (\paperwidth,\paperheight);
+ \path[draw=dcolor,fill=fcolor,opacity=0.8]
+ (0,0) rectangle (\paperwidth,\paperheight);
+ \node[text width=0.9\paperwidth,text badly ragged,inner ysep=1.5cm] (main) at (0.5\paperwidth,0.55\paperheight) {%
+ \begin{minipage}[c]{0.9\paperwidth}
+ \centering
+ \usebeamerfont{title}\usebeamercolor[fg]{title}\inserttitle
+ \ifx\insertsubtitle\@empty\else
+ \\[5pt]\usebeamerfont{subtitle}\usebeamercolor[fg]{subtitle}
+ \insertsubtitle
+ \fi
+ \end{minipage}
+ };
+ \node[rectangle,inner sep=0pt,outer sep=0pt,minimum size=3mm,fill=dcolor,below right,xshift=2pt]
+ (a) at (main.north west -| 0,0) {};
+ \node[rectangle,inner sep=0pt,outer sep=0pt,minimum size=3mm,fill=dcolor,below left,xshift=-2pt]
+ (b) at (main.north east -| \paperwidth,0) {};
+ \node[rectangle,inner sep=0pt,outer sep=0pt,minimum size=3mm,fill=dcolor,above right,xshift=2pt]
+ (c) at (main.south west -| 0,0) {};
+ \node[rectangle,inner sep=0pt,outer sep=0pt,minimum size=3mm,fill=dcolor,above left,xshift=-2pt]
+ (d) at (main.south east -| \paperwidth,0) {};
+ \coordinate (mw) at (main.west -| a.west);
+ \coordinate (me) at (main.east -| b.east);
+ \draw[thick,dcolor] (a.south east) -- (a.south west) -- (a.north west) -- (a.north east)
+ -- ++(0,-6mm) -- ++(-3mm,0) -- (mw)
+ (c.north east) -- (c.north west) -- (c.south west) -- (c.south east)
+ -- ++(0,6mm) -- ++(-3mm,0) -- (mw)
+ (b.south west) -- (b.south east) -- (b.north east) -- (b.north west)
+ -- ++(0,-6mm) -- ++(3mm,0) -- (me)
+ (d.north west) -- (d.north east) -- (d.south east) -- (d.south west)
+ -- ++(0,6mm) -- ++(3mm,0) -- (me);
+ \ifx\insertoccasion\@empty
+ \draw[thick,dcolor] (a.south east) -- ++(3mm,0) -- ++(0,3mm) -- (main.north)
+ (b.south west) -- ++(-3mm,0) -- ++(0,3mm) -- (main.north);
+ \else
+ \node[text badly ragged] (occasion) at (main.north west -| 0.5\paperwidth,\paperheight) {
+ \usebeamerfont{occasion}\usebeamercolor[fg]{occasion}\insertoccasion
+ };
+ \draw[thick,dcolor] (a.south east) -- ++(3mm,0) -- ++(0,3mm) -- (occasion.west)
+ (b.south west) -- ++(-3mm,0) -- ++(0,3mm) -- (occasion.east);
+ \fi
+ \node[text badly ragged] (date) at (main.south west -| 0.5\paperwidth,0) {
+ \usebeamerfont{date}\usebeamercolor[fg]{date}\insertdate
+ };
+ \draw[thick,dcolor] (c.north east) -- ++(3mm,0) -- ++(0,-3mm) -- (date.west)
+ (d.north west) -- ++(-3mm,0) -- ++(0,-3mm) -- (date.east);
+ \node[below=4mm,text width=0.9\paperwidth,inner xsep=0.05\paperwidth,
+ text badly ragged,fill=white,draw=dcolor] (author) at (date.south) {%
+ \begin{minipage}[c]{0.9\paperwidth}
+ \centering
+ \textcolor{accent2}{$\blacksquare$}\hspace{0.2em}%
+ \usebeamerfont{institute}\usebeamercolor[fg]{institute}\insertinstitute
+ \hspace{1em}\textcolor{accent2}{$\blacksquare$}\hspace{0.2em}%
+ \usebeamerfont{author}\usebeamercolor[fg]{author}\insertauthor
+ \end{minipage}
+ };
+ \end{tikzpicture}
+}
+
+\defbeamertemplate{title page content}{polygon}{%
+ \begin{tikzpicture}
+ \useasboundingbox (0,0) rectangle (\paperwidth,\paperheight);
+ \path[draw=dcolor,fill=fcolor,opacity=0.8]
+ (0,0) rectangle (\paperwidth,\paperheight);
+ \node[text width=0.82\paperwidth,text badly ragged,inner ysep=1.5cm] (main) at (0.5\paperwidth,0.55\paperheight) {%
+ \begin{minipage}[c]{0.82\paperwidth}
+ \centering
+ \usebeamerfont{title}\usebeamercolor[fg]{title}\inserttitle
+ \ifx\insertsubtitle\@empty\else
+ \\[5pt]\usebeamerfont{subtitle}\usebeamercolor[fg]{subtitle}
+ \insertsubtitle
+ \fi
+ \end{minipage}
+ };
+ \node[rectangle,inner sep=0pt,outer sep=0pt,minimum size=3mm,fill=dcolor,right,yshift=12pt]
+ (a) at (main.north west -| 0,0) {};
+ \node[rectangle,inner sep=0pt,outer sep=0pt,minimum size=3mm,fill=dcolor,left,yshift=12pt]
+ (b) at (main.north east -| \paperwidth,0) {};
+ \node[rectangle,inner sep=0pt,outer sep=0pt,minimum size=3mm,fill=dcolor,right,yshift=-12pt]
+ (c) at (main.south west -| 0,0) {};
+ \node[rectangle,inner sep=0pt,outer sep=0pt,minimum size=3mm,fill=dcolor,left,yshift=-12pt]
+ (d) at (main.south east -| \paperwidth,0) {};
+ \draw[thick,dcolor] (a.south east) -- (main.west) -- (c.north east)
+ (b.south west) -- (main.east) -- (d.north west);
+ \ifx\insertoccasion\@empty
+ \draw[thick,dcolor] (a.south east) -- (main.north west) -- (main.north east) -- (b.south west);
+ \else
+ \node[text badly ragged] (occasion) at (main.north west -| 0.5\paperwidth,\paperheight) {
+ \usebeamerfont{occasion}\usebeamercolor[fg]{occasion}\insertoccasion
+ };
+ \draw[thick,dcolor] (a.south east) -- (main.north west) -- (occasion.west)
+ (b.south west) -- (main.north east) -- (occasion.east);
+ \fi
+ \node[text badly ragged] (date) at (main.south west -| 0.5\paperwidth,0) {
+ \usebeamerfont{date}\usebeamercolor[fg]{date}\insertdate
+ };
+ \draw[thick,dcolor] (c.north east) -- (main.south west) -- (date.west)
+ (d.north west) -- (main.south east) -- (date.east);
+ \node[below=4mm,text width=0.9\paperwidth,inner xsep=0.026\paperwidth,
+ text badly ragged,fill=white,draw=dcolor] (author) at (date.south) {%
+ \begin{minipage}[c]{0.9\paperwidth}
+ \centering
+ \textcolor{accent2}{$\blacksquare$}\hspace{0.2em}%
+ \usebeamerfont{institute}\usebeamercolor[fg]{institute}\insertinstitute
+ \hspace{1em}\textcolor{accent2}{$\blacksquare$}\hspace{0.2em}%
+ \usebeamerfont{author}\usebeamercolor[fg]{author}\insertauthor
+ \end{minipage}
+ };
+ \path[fill=dcolor] (author.north west) -- (author.north west -| 0,0) -- (author.west)
+ -- (author.south west -| 0,0) -- (author.south west)
+ (author.north east) -- (author.north east -| \paperwidth,0) -- (author.east)
+ -- (author.south east -| \paperwidth,0) -- (author.south east);
+ \end{tikzpicture}
+}
+
+\defbeamertemplate{title page content}{hypotenuse}{%
+ \begin{tikzpicture}
+ \useasboundingbox (0,0) rectangle (\paperwidth,\paperheight);
+ \path[draw=dcolor,fill=fcolor,opacity=0.8]
+ (0,0) rectangle (\paperwidth,\paperheight);
+ \node[text width=0.82\paperwidth,text badly ragged,inner ysep=1.5cm] (main) at (0.5\paperwidth,0.55\paperheight) {%
+ \begin{minipage}[c]{0.82\paperwidth}
+ \centering
+ \usebeamerfont{title}\usebeamercolor[fg]{title}\inserttitle
+ \ifx\insertsubtitle\@empty\else
+ \\[5pt]\usebeamerfont{subtitle}\usebeamercolor[fg]{subtitle}
+ \insertsubtitle
+ \fi
+ \end{minipage}
+ };
+ \node[rectangle,inner sep=0pt,outer sep=0pt,minimum size=2.7mm,fill=dcolor] (a) at (main.north west) {};
+ \node[rectangle,inner sep=0pt,outer sep=0pt,minimum size=2.7mm,fill=dcolor,left] (b) at (main.north -| \paperwidth,0) {};
+ \node[rectangle,inner sep=0pt,outer sep=0pt,minimum size=2.7mm,fill=dcolor,right] (c) at (main.south -| 0,0) {};
+ \node[rectangle,inner sep=0pt,outer sep=0pt,minimum size=2.7mm,fill=dcolor] (d) at (main.south east) {};
+ \draw[thick,dcolor] ($(a.south west)+(0.4pt,0)$) -- ($(c.north east)+(-0.4pt,0)$)
+ ($(b.south west)+(0.4pt,0)$) -- ($(d.north east)+(-0.4pt,0)$);
+ \draw[thick,dcolor] ($(a.south east)+(-0.4pt,0)$) -- ($(c.north west)+(0.4pt,0)$)
+ ($(b.south east)+(-0.4pt,0)$) -- ($(d.north west)+(0.4pt,0)$);
+ \ifx\insertoccasion\@empty
+ \draw[thick,dcolor] (a.north west) -- (b.north east)
+ (a.south west) -- (b.south east);
+ \else
+ \node[text badly ragged] (occasion) at (main.north west -| 0.5\paperwidth,\paperheight) {
+ \usebeamerfont{occasion}\usebeamercolor[fg]{occasion}\insertoccasion
+ };
+ \draw[thick,dcolor] (a.north west) -- (a.north west -| occasion.north west)
+ (a.south west) -- (a.south west -| occasion.south west)
+ (b.north east) -- (b.north east -| occasion.north east)
+ (b.south east) -- (b.south east -| occasion.south east);
+ \fi
+ \node[text badly ragged] (date) at (main.south west -| 0.5\paperwidth,0) {
+ \usebeamerfont{date}\usebeamercolor[fg]{date}\insertdate
+ };
+ \draw[thick,dcolor] (c.north west) -- (c.north west -| date.north west)
+ (c.south west) -- (c.south west -| date.south west)
+ (d.north east) -- (d.north east -| date.north east)
+ (d.south east) -- (d.south east -| date.south east);
+ \node[below=4mm,text width=0.9\paperwidth,inner xsep=0.015\paperwidth,
+ text badly ragged,fill=white,draw=dcolor] (author) at (date.south) {%
+ \begin{minipage}[c]{0.9\paperwidth}
+ \centering
+ \textcolor{accent2}{$\blacksquare$}\hspace{0.2em}%
+ \usebeamerfont{institute}\usebeamercolor[fg]{institute}\insertinstitute
+ \hspace{1em}\textcolor{accent2}{$\blacksquare$}\hspace{0.2em}%
+ \usebeamerfont{author}\usebeamercolor[fg]{author}\insertauthor
+ \end{minipage}
+ };
+ \path[fill=dcolor] (author.north west) -- (author.south west) -- (author.south west -| 0,0)
+ (author.south east) -- (author.north east) -- (author.north west -| \paperwidth,0);
+ \end{tikzpicture}
+}
+
+% Several safe primes and Blum-Blum-Shub generator
+\newcommand{\my@composite}{43921} % 43921=167*263
+\newcounter{my@random@seed}
+\setcounter{my@random@seed}{43787}
+\newcommand{\next@random@seed}{%
+ \setcounter{my@random@seed}{\value{my@random@seed}*\value{my@random@seed}}%
+ \setcounter{my@random@seed}{\value{my@random@seed}-(\value{my@random@seed}/\my@composite)*\my@composite}%
+}
+
+\newlength{\my@title@height}
+
+\defbeamertemplate{title page content}{block}{%
+ \begin{tikzpicture}
+ \useasboundingbox (0,0) rectangle (\paperwidth,\paperheight);
+ \path[draw=dcolor,fill=fcolor,opacity=0.8] (0,0) rectangle (\paperwidth,\paperheight);
+ \path[step=4mm,draw=dcolor,ultra thick] (0,0) grid (\paperwidth,\paperheight);
+ \foreach \x in {0,1,...,31} \foreach \y in {0,1,...,23} {
+ \next@random@seed
+ \ifodd\value{my@random@seed}
+ \path[draw=dcolor,ultra thick,fill=fcolor2,opacity=0.8] (\x*\paperwidth/32,\y*\paperheight/24) rectangle +(4mm,4mm);
+ \fi
+ }
+ \ifx\insertsubtitle\@empty
+ \setlength{\my@title@height}{39.7mm}
+ \else
+ \setlength{\my@title@height}{47.7mm}
+ \fi
+ \node[minimum width=0.84\paperwidth,minimum height=\my@title@height,inner xsep=2mm,inner ysep=0mm,
+ opacity=0.95,text opacity=1,text badly ragged,fill=fcolor] (main) at (0.5\paperwidth,0.542\paperheight) {%
+ \begin{minipage}[c]{0.84\paperwidth}
+ \centering
+ \usebeamerfont{title}\usebeamercolor[fg]{title}\inserttitle
+ \ifx\insertsubtitle\@empty\else
+ \\[5pt]\usebeamerfont{subtitle}\usebeamercolor[fg]{subtitle}
+ \insertsubtitle
+ \fi
+ \end{minipage}
+ };
+ \ifx\insertoccasion\@empty\else
+ \node[text badly ragged,fill=fcolor,minimum height=7.8mm,draw=dcolor,very thick]
+ (occasion) at (main.north west -| 0.5\paperwidth,\paperheight) {
+ \usebeamerfont{occasion}\usebeamercolor[fg]{occasion}\insertoccasion
+ };
+ \fi
+ \node[text badly ragged,fill=fcolor,minimum height=7.8mm,draw=dcolor,very thick]
+ (date) at (main.south west -| 0.5\paperwidth,0) {
+ \usebeamerfont{date}\usebeamercolor[fg]{date}\insertdate
+ };
+ \node[below=4mm,minimum width=0.84\paperwidth,minimum height=7.6mm,inner xsep=2mm,inner ysep=0mm,
+ opacity=0.85,text opacity=1,text badly ragged,fill=white] at (date.south) {%
+ \begin{minipage}[c]{0.84\paperwidth}
+ \centering
+ \textcolor{accent2}{$\blacksquare$}\hspace{0.2em}%
+ \usebeamerfont{institute}\usebeamercolor[fg]{institute}\insertinstitute
+ \hspace{0.4em}\textcolor{accent2}{$\blacksquare$}\hspace{0.2em}%
+ \usebeamerfont{author}\usebeamercolor[fg]{author}\insertauthor
+ \end{minipage}
+ };
+ \end{tikzpicture}
+}
+
+%% ----------------------- section and subsection --------------------
+
+\newcounter{my@pgf@picture@count}
+
+\def\sectionintocskip{0.5pt plus 0.1fill}
+\patchcmd{\beamer@sectionintoc}{\vskip1.5em}{\vskip\sectionintocskip}{}{}
+
+\AtBeginSection[]{%
+ \begin{frame}%[plain]
+ \sectionpage
+ \end{frame}%
+}
+
+\defbeamertemplate{section name}{simple}{\insertsectionnumber.}
+
+\defbeamertemplate{section name}{chinese}[1][节]{第\CJKnumber{\insertsectionnumber}#1}
+
+\defbeamertemplate{section page}{single}{%
+ \centerline{%
+ \usebeamerfont{section name}%
+ \usebeamercolor[fg]{section name}%
+ \usebeamertemplate{section name}%
+ \hspace{0.8em}%
+ \usebeamerfont{section title}%
+ \usebeamercolor[fg]{section title}%
+ \insertsection
+ }%
+}
+
+\defbeamertemplate{section name in toc}{simple}{%
+ Section \inserttocsectionnumber
+}
+
+\defbeamertemplate{section name in toc}{full}{%
+ Section \ifnum\the\beamer@tempcount<10 0\fi\inserttocsectionnumber
+}
+
+\defbeamertemplate{section name in toc}{chinese}[1][节]{%
+ 第\CJKnumber{\inserttocsectionnumber}#1%
+}
+
+\newcounter{my@section@from}
+\newcounter{my@section@to}
+
+\defbeamertemplate{show sections in toc}{total}{%
+ \setcounter{my@section@from}{1}%
+ \setcounter{my@section@to}{50}%
+}
+
+% show at most five sections
+\defbeamertemplate{show sections in toc}{partial}{%
+ \setcounter{my@section@from}{\value{section}}%
+ \addtocounter{my@section@from}{-2}%
+ \setcounter{my@section@to}{\value{section}}%
+ \addtocounter{my@section@to}{2}%
+ \ifnum\my@totalsectionnumber>0%
+ \ifnum\value{my@section@to}>\my@totalsectionnumber
+ \setcounter{my@section@to}{\my@totalsectionnumber}%
+ \setcounter{my@section@from}{\value{my@section@to}}%
+ \addtocounter{my@section@from}{-4}%
+ \fi
+ \fi
+ \ifnum\value{my@section@from}<1\setcounter{my@section@from}{1}%
+ \setcounter{my@section@to}{\value{my@section@from}}%
+ \addtocounter{my@section@to}{4}%
+ \fi
+}
+
+% reset pgfid to get correct result with \tikzmark in second run
+\defbeamertemplate{section page}{fill}{%
+ \usebeamertemplate{show sections in toc}%
+ \setcounter{my@pgf@picture@count}{\the\pgf@picture@serial@count}%
+ \setlength{\parskip}{5pt minus 1pt}%
+ \tableofcontents[sectionstyle=show/shaded,subsectionstyle=hide,
+ sections={\arabic{my@section@from}-\arabic{my@section@to}}]%
+ \global\pgf@picture@serial@count=\value{my@pgf@picture@count}%
+ \unskip
+}
+
+\defbeamertemplate{section in toc}{fill}{%
+ \noindent
+ \begin{tikzpicture}
+ \node[text width=\textwidth,inner xsep=0pt,inner ysep=5pt,text badly ragged,fill=bg] (title) {%
+ \hspace{0.28\textwidth}\parbox{0.7\textwidth}{\inserttocsection\vphantom{g}}%
+ };
+ \path (title.south west) +(2pt,2pt) coordinate (sw)
+ (title.north west) +(0.25\textwidth,-2pt) coordinate (ne);
+ \path[fill=fg,overlay] (sw) rectangle (ne);
+ \node[inner xsep=0pt,text badly ragged,overlay] at ($(sw)!0.5!(ne)$) {%
+ \color{bg}\vphantom{g}\usebeamertemplate{section name in toc}%
+ };
+ \draw[line width=1pt,dcolor,overlay] ($(ne)+(2pt,2pt)$) -- ($(ne |- title.south)+(2pt,0)$);
+ \end{tikzpicture}%
+ \par
+}
+
+\AtBeginSubsection{%
+ \begin{frame}%[plain]
+ \setlength{\parskip}{0pt}%
+ \offinterlineskip
+ \subsectionpage
+ \end{frame}%
+}
+
+\defbeamertemplate{subsection name}{simple}{%
+ \insertsectionnumber.\insertsubsectionnumber
+}
+
+\defbeamertemplate{subsection page}{single}{%
+ \centerline{%
+ \usebeamerfont{subsection name}%
+ \usebeamercolor[fg]{subsection name}%
+ \usebeamertemplate{subsection name}%
+ \hspace{0.8em}%
+ \usebeamerfont{subsection title}%
+ \usebeamercolor[fg]{subsection title}%
+ \insertsubsection
+ }%
+}
+
+\defbeamertemplate{subsection name in toc}{empty}{}
+
+\newcounter{mysubseccnt}
+\defbeamertemplate{subsection name in toc}{alphabet}{%
+ \setcounter{mysubseccnt}{\inserttocsubsectionnumber}%
+ \Alph{mysubseccnt}%
+}
+
+\defbeamertemplate{subsection name in toc}{simple}{%
+ \inserttocsubsectionnumber
+}
+
+\defbeamertemplate{subsection name in toc}{full}{%
+ \inserttocsectionnumber.\inserttocsubsectionnumber
+}
+
+% reset pgfid to get correct result with \tikzmark in second run
+\defbeamertemplate{subsection page}{fill}{%
+ \setcounter{my@pgf@picture@count}{\the\pgf@picture@serial@count}%
+ \tableofcontents[sectionstyle=show/hide,subsectionstyle=show/shaded/hide]%
+ \global\pgf@picture@serial@count=\value{my@pgf@picture@count}%
+ \unskip
+}
+
+\defbeamertemplate{subsection in toc}{fill}{%
+ \vspace{1pt}\noindent%
+ \begin{tikzpicture}
+ \node[text width=\textwidth,inner xsep=0pt,inner ysep=5pt,text badly ragged,fill=bg] (title) {%
+ \hspace{0.28\textwidth}\parbox{0.7\textwidth}{\inserttocsubsection\vphantom{g}}%
+ };
+ \path (title.south west) +(2pt,2pt) coordinate (sw)
+ (title.north west) +(0.25\textwidth,-2pt) coordinate (ne);
+ \path[fill=fg,overlay] (sw) rectangle (ne);
+ \node[inner xsep=0pt,text badly ragged,overlay] at ($(sw)!0.5!(ne)$) {%
+ \color{bg}\vphantom{g}\usebeamertemplate{subsection name in toc}%
+ };
+ \draw[line width=1pt,dcolor,overlay] ($(ne)+(2pt,2pt)$) -- ($(ne |- title.south)+(2pt,0)$);
+ \end{tikzpicture}%
+ \par
+}
+
+% chinese sections and subsections
+\defbeamertemplate{section and subsection}{chinese}[1][节]{%
+ \setbeamertemplate{section name in toc}[chinese][#1]%
+ \setbeamertemplate{section name}[chinese][#1]%
+ \setbeamertemplate{subsection name in toc}[alphabet]%
+}
+
+%% ---------------------- headline and footline ----------------------
+
+% fix headline bug in old versions
+\@ifclasslater{beamer}{2017/01/23}{}{%
+ \patchcmd{\ps@empty}
+ {\raise\headheight\box\beamer@tempbox\box\@tempboxa}
+ {\raise\headheight\box\beamer@tempbox\raise\headheight\box\@tempboxa}
+ {}{}
+}
+
+\defbeamertemplate{headline mark}{line}{
+ \draw[overlay,color=white,line width=0.8pt] (0,0.5mm) -- (\paperwidth,0.5mm);
+}
+
+\defbeamertemplate{headline}{shading}{%
+ \begin{tikzpicture}
+ \fill[left color=accent2,right color=blue85] (0,0) rectangle (\paperwidth,1mm);
+ \usebeamertemplate{headline mark}
+ \end{tikzpicture}
+}
+
+\defbeamertemplate{headline}{border}{%
+ \begin{tikzpicture}
+ \path[use as bounding box] (0,0) rectangle (\paperwidth,1mm);
+ \fill[left color=accent2,right color=blue85] (0,0) rectangle (\paperwidth,0.8pt);
+ \end{tikzpicture}
+}
+
+\defbeamertemplate{headline}{phantom}{%
+ \begin{tikzpicture}
+ \path[use as bounding box] (0,0) rectangle (\paperwidth,1mm);
+ \end{tikzpicture}
+}
+
+\defbeamertemplate{footline left}{author}{%
+ \insertshortauthor
+}
+
+\defbeamertemplate{footline center}{title}{%
+ \insertshorttitle
+}
+
+\defbeamertemplate{footline right}{number}{%
+ \Acrobatmenu{GoToPage}{\insertframenumber{}/\inserttotalframenumber}%
+}
+\defbeamertemplate{footline right}{normal}{%
+ \hyperlinkframeendprev{$\vartriangle$}
+ \Acrobatmenu{GoToPage}{\insertframenumber{}/\inserttotalframenumber}
+ \hyperlinkframestartnext{$\triangledown$}%
+}
+
+\defbeamertemplate{footline}{simple}{%
+ \hbox{%
+ \begin{beamercolorbox}[wd=.2\paperwidth,ht=2.25ex,dp=1ex,left]{footline}%
+ \usebeamerfont{footline}\kern\beamer@leftmargin
+ \usebeamertemplate{footline left}%
+ \end{beamercolorbox}%
+ \begin{beamercolorbox}[wd=.6\paperwidth,ht=2.25ex,dp=1ex,center]{footline}%
+ \usebeamerfont{footline}\usebeamertemplate{footline center}%
+ \end{beamercolorbox}%
+ \begin{beamercolorbox}[wd=.2\paperwidth,ht=2.25ex,dp=1ex,right]{footline}%
+ \usebeamerfont{footline}\usebeamertemplate{footline right}%
+ \kern\beamer@rightmargin
+ \end{beamercolorbox}%
+ }%
+}
+
+\defbeamertemplate{footline separator}{shading}{%
+ \begin{tikzpicture}
+ \fill[left color=blue85,right color=accent2] (0,0) rectangle (\paperwidth,1pt);
+ \end{tikzpicture}
+}
+
+\defbeamertemplate{footline}{sectioning}{%
+ \usebeamertemplate{footline separator}%
+ \hbox{%
+ \begin{beamercolorbox}[wd=.8\paperwidth,ht=2.25ex,dp=1ex,left]{footline}%
+ \usebeamerfont{footline}\kern\beamer@leftmargin\insertshorttitle
+ \ifx\insertsection\@empty\else\qquad$\vartriangleright$\qquad\insertsection\fi
+ \ifx\insertsubsection\@empty\else\qquad$\vartriangleright$\qquad\insertsubsection\fi
+ \end{beamercolorbox}%
+ \begin{beamercolorbox}[wd=.2\paperwidth,ht=2.25ex,dp=1ex,right]{footline}%
+ \usebeamerfont{footline}\usebeamertemplate{footline right}%
+ \kern\beamer@rightmargin
+ \end{beamercolorbox}%
+ }%
+}
+
+% customize mini frames template to get a section navigation bar
+
+\defbeamertemplate{navigation box}{current}{%
+ \usebeamercolor{navigation box}%
+ \colorbox{bg}{%
+ \rule[-1ex]{0pt}{3.25ex}\color{white}\kern1.4pt\my@navibox\kern1.4pt%
+ }%
+}
+
+\defbeamertemplate{navigation box}{other}{%
+ %\colorbox{white}{%
+ \rule[-1ex]{0pt}{3.25ex}\color{black}\kern1.4pt\my@navibox\kern1.4pt%
+ %}%
+}
+
+\newcommand{\my@navibox@subsection}{$\blacksquare$}
+\newcommand{\my@navibox@frame}{$\square$}
+\let\my@navibox=\my@navibox@frame
+
+% optional navigation box for some special frame
+\newcommand{\my@navibox@frame@opt}{$\boxplus$}
+\newcommand{\my@change@navibox}{\let\my@navibox=\my@navibox@frame@opt}
+\newcommand{\changenavibox}{%
+ \addtocontents{nav}{\protect\headcommand{\protect\my@change@navibox}}%
+}
+
+\newcommand{\my@sectionentry@show}[5]{%
+ \ifnum\c@section=#1%
+ \setbeamertemplate{navigation box}[current]%
+ \else
+ \setbeamertemplate{navigation box}[other]%
+ \fi
+ \begingroup
+ \def\my@navibox{#1}%
+ \hyperlink{Navigation#3}{\usebeamertemplate{navigation box}}%
+ \endgroup
+}
+
+\newif\ifmy@hidesection
+
+\newcommand{\my@sectionentry@hide}[5]{\my@hidesectiontrue}
+
+\pretocmd{\beamer@setuplinks}{\renewcommand{\beamer@subsectionentry}[5]{}}{}{}
+\apptocmd{\beamer@setuplinks}{\global\let\beamer@subsectionentry\mybeamer@subsectionentry}{}{}
+
+\newcommand{\mybeamer@subsectionentry}[5]{\global\let\my@navibox=\my@navibox@subsection}
+
+\newcommand{\my@slideentry@empty}[6]{}
+
+\newcommand{\my@slideentry@section}[6]{%
+ \ifmy@hidesection
+ \my@hidesectionfalse
+ \else
+ \ifnum\c@section=#1%
+ \setbeamertemplate{navigation box}[other]%
+ \ifnum\c@subsection=#2\ifnum\c@subsectionslide=#3%
+ \setbeamertemplate{navigation box}[current]%
+ \fi\fi
+ \beamer@link(#4){\usebeamertemplate{navigation box}}%
+ \fi
+ \fi
+ \global\let\my@navibox=\my@navibox@frame
+}
+
+\newcommand{\my@slideentry@subsection}[6]{%
+ \ifmy@hidesection
+ \my@hidesectionfalse
+ \else
+ \ifnum\c@section=#1%
+ \ifboolexpr{test{\ifnumcomp{\c@subsection}{=}{#2}} or test{\ifnumcomp{#3}{=}{1}}}{%
+ \setbeamertemplate{navigation box}[other]%
+ \ifnum\c@subsection=#2\ifnum\c@subsectionslide=#3%
+ \setbeamertemplate{navigation box}[current]%
+ \fi\fi
+ \beamer@link(#4){\usebeamertemplate{navigation box}}%
+ }{}%
+ \fi
+ \fi
+ \global\let\my@navibox=\my@navibox@frame
+}
+
+\AtEndDocument{%
+ \immediate\write\@auxout{%
+ \noexpand\gdef\noexpand\my@totalsectionnumber{\the\c@section}%
+ }%
+}
+
+\def\my@totalsectionnumber{0}
+
+\defbeamertemplate{footline navigation}{section}{%
+ \setbeamercolor{navigation box}{bg=accent2}%
+ \let\sectionentry=\my@sectionentry@hide
+ \let\slideentry=\my@slideentry@section
+ \dohead
+}
+
+\defbeamertemplate{footline navigation}{subsection}{%
+ \setbeamercolor{navigation box}{bg=accent2}%
+ \let\sectionentry=\my@sectionentry@hide
+ \let\slideentry=\my@slideentry@subsection
+ \dohead
+}
+
+\defbeamertemplate{footline}{navigation}{%
+ \usebeamertemplate{footline separator}%
+ \begin{beamercolorbox}[wd=\paperwidth,ht=2.25ex,dp=1ex]{footline}%
+ \usebeamerfont{footline}%
+ \kern\beamer@leftmargin
+ \setlength{\fboxsep}{0pt}%
+ \setbeamercolor{navigation box}{bg=blue85}%
+ \ifnum\my@totalsectionnumber=0%
+ \insertshorttitle
+ \else
+ \let\sectionentry=\my@sectionentry@show
+ \let\slideentry=\my@slideentry@empty
+ \dohead
+ \fi
+ \hfill
+ \usebeamertemplate{footline navigation}%
+ \kern\beamer@rightmargin
+ \end{beamercolorbox}%
+}
+
+%% ------------------------- frame title -----------------------------
+
+% remove extra vertical space after frametitle
+\patchcmd{\endbeamer@frameslide}{\vskip0.25em}{\relax}{}{}
+
+\defbeamertemplate{frametitle}{simple}[1][]
+{%
+ \nointerlineskip
+ \begin{beamercolorbox}[wd=\paperwidth,sep=0pt,leftskip=\beamer@leftmargin,%
+ rightskip=\beamer@rightmargin,#1]{frametitle}
+ \usebeamerfont{frametitle}%
+ \rule[-3mm]{0pt}{10mm}\insertframetitle\rule[-3mm]{0pt}{10mm}\par
+ \end{beamercolorbox}
+}
+
+%% ------------------- block and theorem -----------------------------
+
+% allow it to be modified by user
+\def\myinserttheoremaddition{\inserttheoremaddition}
+
+\defbeamertemplate{theorem begin}{simple}
+{%
+ \upshape%\bfseries\inserttheoremheadfont
+ {\usebeamercolor[fg]{theoremname}%
+ \inserttheoremname\inserttheoremnumber
+ \ifx\inserttheoremaddition\@empty\else
+ \ \usebeamercolor[fg]{local structure}(\myinserttheoremaddition)%
+ \fi%
+ %\inserttheorempunctuation
+ }%
+ \quad\normalfont
+}
+\defbeamertemplate{theorem end}{simple}{\par}
+
+\defbeamertemplate{proof begin}{simple}
+{%
+ %\bfseries
+ \let\@addpunct=\@gobble
+ {\usebeamercolor[fg]{proofname}\insertproofname}%
+ \quad\normalfont
+}
+\defbeamertemplate{proof end}{simple}{\par}
+
+%% ---------------------- enumerate and itemize ----------------------
+
+\expandafter\patchcmd\csname beamer@@tmpop@enumerate item@square\endcsname
+ {height1.85ex depth.4ex}{height1.85ex depth.3ex}{}{}
+\expandafter\patchcmd\csname beamer@@tmpop@enumerate subitem@square\endcsname
+ {height1.85ex depth.4ex}{height1.85ex depth.3ex}{}{}
+\expandafter\patchcmd\csname beamer@@tmpop@enumerate subsubitem@square\endcsname
+ {height1.85ex depth.4ex}{height1.85ex depth.3ex}{}{}
+
+%% ------------------------ select templates -------------------------
+
+\setbeamertemplate{background canvas}[default]
+\setbeamertemplate{background}[line]
+\setbeamertemplate{headline}[shading]
+\setbeamertemplate{footline}[navigation]
+\setbeamertemplate{footline navigation}[section]
+\setbeamertemplate{footline separator}[shading]
+\setbeamertemplate{footline left}[author]
+\setbeamertemplate{footline center}[title]
+\setbeamertemplate{footline right}[number]
+\setbeamertemplate{title page}[banner]
+\setbeamertemplate{title page content}[hexagon]
+\setbeamertemplate{section page}[fill]
+\setbeamertemplate{show sections in toc}[partial]
+\setbeamertemplate{section name}[simple]
+\setbeamertemplate{section name in toc}[simple]
+\setbeamertemplate{section in toc}[fill]
+\setbeamertemplate{section in toc shaded}[default][50]
+\setbeamertemplate{subsection page}[fill]
+\setbeamertemplate{subsection name}[simple]
+\setbeamertemplate{subsection name in toc}[simple]
+\setbeamertemplate{subsection in toc}[fill]
+\setbeamertemplate{subsection in toc shaded}[default][50]
+\setbeamertemplate{theorem begin}[default]
+\setbeamertemplate{theorem end}[default]
+\setbeamertemplate{proof begin}[default]
+\setbeamertemplate{proof end}[default]
+\setbeamertemplate{frametitle}[simple]
+\setbeamertemplate{navigation symbols}{}
+\setbeamertemplate{itemize items}[square]
+\setbeamertemplate{enumerate items}[square]
+
+%% --------------------------- font theme ----------------------------
+
+\setbeamerfont{title}{size=\LARGE}
+\setbeamerfont{subtitle}{size=\large}
+\setbeamerfont{author}{size=\normalsize}
+\setbeamerfont{institute}{size=\normalsize}
+\setbeamerfont{date}{size=\normalsize}
+\setbeamerfont{occasion}{size=\normalsize}
+\setbeamerfont{section in toc}{size=\large}
+\setbeamerfont{subsection in toc}{size=\large}
+\setbeamerfont{frametitle}{size=\large}
+\setbeamerfont{block title}{size=\normalsize}
+\setbeamerfont{item projected}{size=\footnotesize}
+\setbeamerfont{subitem projected}{size=\scriptsize}
+\setbeamerfont{subsubitem projected}{size=\tiny}
+
+\usefonttheme{professionalfonts}
+%\usepackage{arev}
+
+%% ---------------------------- color theme --------------------------
+
+% always use rgb colors in pdf files
+\substitutecolormodel{hsb}{rgb}
+
+\definecolor{red99}{Hsb}{0,0.9,0.9}
+\definecolor{yellow5x}{Hsb}{60,0.5,1}
+\definecolor{yellow6x}{Hsb}{53,0.6,1}
+\definecolor{yellow86}{Hsb}{60,0.8,0.6}
+\definecolor{yellow99}{Hsb}{60,0.9,0.9}
+\definecolor{cyan95}{Hsb}{180,0.9,0.5}
+\definecolor{blue74}{Hsb}{240,0.7,0.4}
+\definecolor{blue77}{Hsb}{240,0.7,0.7}
+\definecolor{blue85}{Hsb}{230,0.8,0.5}
+\definecolor{blue99}{Hsb}{240,0.9,0.9}
+\definecolor{magenta88}{Hsb}{300,0.8,0.8}
+
+\colorlet{text1}{black}
+\colorlet{back1}{white}
+\colorlet{accent1}{blue99}
+\colorlet{accent2}{cyan95}
+\colorlet{accent3}{red99}
+\colorlet{accent4}{yellow86}
+\colorlet{accent5}{magenta88}
+\colorlet{filler1}{accent1!40!back1}
+\colorlet{filler2}{accent2!40!back1}
+\colorlet{filler3}{accent3!40!back1}
+\colorlet{filler4}{accent4!40!back1}
+\colorlet{filler5}{accent5!40!back1}
+\colorlet{gray1}{black!20}
+\colorlet{gray2}{black!35}
+\colorlet{gray3}{black!50}
+\colorlet{gray4}{black!65}
+\colorlet{gray5}{black!80}
+\colorlet{tcolor}{text1!10!back1}
+\colorlet{dcolor}{white}
+\colorlet{fcolor}{blue77}
+\colorlet{fcolor2}{gray3}
+\colorlet{markcolor}{gray}
+
+\setbeamercolor{normal text}{bg=white,fg=black}
+\setbeamercolor{structure}{fg=blue85}
+\setbeamercolor{local structure}{fg=cyan95}
+\setbeamercolor{footline}{bg=,fg=black}
+\setbeamercolor{title}{fg=yellow99}
+\setbeamercolor{subtitle}{fg=white}
+\setbeamercolor{author}{fg=black}
+\setbeamercolor{institute}{fg=black}
+\setbeamercolor{date}{fg=white}
+\setbeamercolor{occasion}{fg=white}
+\setbeamercolor{section name}{fg=blue85}
+\setbeamercolor{section in toc}{fg=yellow6x,bg=blue85}
+\setbeamercolor{section in toc shaded}{fg=white,bg=blue74}
+\setbeamercolor{subsection name}{parent=section name}
+\setbeamercolor{subsection in toc}{fg=yellow5x,bg=accent2}
+\setbeamercolor{subsection in toc shaded}{fg=white,bg=accent2!50!black}
+\setbeamercolor{frametitle}{parent=structure}
+\setbeamercolor{theoremname}{fg=blue77}
+\setbeamercolor{proofname}{fg=blue77}
+\setbeamercolor{block title}{fg=accent1,bg=gray}
+\setbeamercolor{block body}{bg=lightgray}
+\setbeamercolor{block title example}{fg=accent2,bg=gray}
+\setbeamercolor{block body example}{bg=lightgray}
+\setbeamercolor{block title alerted}{fg=accent3,bg=gray}
+\setbeamercolor{block body alerted}{bg=lightgray}
+
+%% ----------------------- handout mode ------------------------------
+
+\mode<handout>{
+ \setbeamertemplate{background canvas}{}
+ \setbeamertemplate{background}[empty]
+ \setbeamertemplate{headline}[phantom]
+ \setbeamertemplate{footline}[sectioning]
+ \setbeamertemplate{section page}[single]
+ \setbeamertemplate{subsection page}[single]
+ \setbeamerfont{subsection in toc}{size=\large}
+ \colorlet{dcolor}{darkgray}
+ \colorlet{fcolor}{white}
+ \colorlet{fcolor2}{gray1}
+ \setbeamercolor{normal text}{fg=black, bg=white}
+ \setbeamercolor{title}{fg=blue}
+ \setbeamercolor{subtitle}{fg=gray}
+ \setbeamercolor{occasion}{fg=black}
+ \setbeamercolor{date}{fg=black}
+ \setbeamercolor{section in toc}{fg=blue!90!gray,bg=}
+ \setbeamercolor{section in toc shaded}{fg=lightgray,bg=}
+ \setbeamercolor{subsection in toc}{fg=blue!80!gray}
+ \setbeamercolor{subsection in toc shaded}{fg=lightgray}
+ \setbeamercolor{frametitle}{fg=blue!70!gray,bg=}
+ \setbeamercolor{theoremname}{fg=blue!60!gray}
+ \setbeamercolor{proofname}{fg=blue!60!gray}
+ \setbeamercolor{footline}{bg=white,fg=black}
+}
+
+\mode
+<all>
+
+\makeatother
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamerthemeconcrete/riemann/demo-riemann.pdf b/macros/latex/contrib/beamer-contrib/themes/beamerthemeconcrete/riemann/demo-riemann.pdf
new file mode 100644
index 0000000000..982ad4d8d8
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamerthemeconcrete/riemann/demo-riemann.pdf
Binary files differ
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamerthemeconcrete/riemann/demo-riemann.tex b/macros/latex/contrib/beamer-contrib/themes/beamerthemeconcrete/riemann/demo-riemann.tex
new file mode 100644
index 0000000000..ad68361dca
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamerthemeconcrete/riemann/demo-riemann.tex
@@ -0,0 +1,178 @@
+% -*- coding: utf-8 -*-
+
+\documentclass[12pt,xcolor={rgb}]{beamer}
+
+\usetheme{riemann}
+
+\usepackage{arev}
+
+%% use these lines to get section numbers in Chinese
+%\usepackage[UTF8,noindent]{ctex}
+%\usepackage{CJKnumb}
+%\setbeamertemplate{section and subsection}[chinese]
+%\usebeamertemplate{section and subsection}
+
+\begin{document}
+
+\title{Beamer Theme Riemann}
+\author{Author Name}
+\institute{Institute Name}
+\occasion{Some Conference}
+
+\begin{frame}[plain]
+\titlepage
+\end{frame}
+
+\section{Section One}
+
+\subsection{Subsection One}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\subsection{Subsection Two}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\subsection{Subsection Three}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\section{Section Two}
+
+\subsection{Subsection One}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\subsection{Subsection Two}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\subsection{Subsection Three}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\section{Section Three}
+
+\subsection{Subsection One}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\subsection{Subsection Two}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\subsection{Subsection Three}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\begin{frame}{Frame Title}
+Frame \insertframenumber
+\end{frame}
+
+\end{document}