summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/beamer-contrib/themes/beamerthemeconcrete/cfermat/beamerthemecfermat.sty
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/beamer-contrib/themes/beamerthemeconcrete/cfermat/beamerthemecfermat.sty')
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamerthemeconcrete/cfermat/beamerthemecfermat.sty433
1 files changed, 433 insertions, 0 deletions
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamerthemeconcrete/cfermat/beamerthemecfermat.sty b/macros/latex/contrib/beamer-contrib/themes/beamerthemeconcrete/cfermat/beamerthemecfermat.sty
new file mode 100644
index 0000000000..e66b1f5822
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamerthemeconcrete/cfermat/beamerthemecfermat.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{beamerthemecfermat}[2024-01-21 v2024B Beamer Theme cFermat]
+
+\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