diff options
Diffstat (limited to 'macros/latex/contrib/beamer-contrib/themes/beamerthemeconcrete/clagrange/beamerthemeclagrange.sty')
-rw-r--r-- | macros/latex/contrib/beamer-contrib/themes/beamerthemeconcrete/clagrange/beamerthemeclagrange.sty | 379 |
1 files changed, 379 insertions, 0 deletions
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamerthemeconcrete/clagrange/beamerthemeclagrange.sty b/macros/latex/contrib/beamer-contrib/themes/beamerthemeconcrete/clagrange/beamerthemeclagrange.sty new file mode 100644 index 0000000000..9f2c17d4c3 --- /dev/null +++ b/macros/latex/contrib/beamer-contrib/themes/beamerthemeconcrete/clagrange/beamerthemeclagrange.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{beamerthemeclagrange}[2024-01-21 v2024B Beamer Theme cLagrange] + +\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 |