diff options
Diffstat (limited to 'Master/texmf-dist/source/latex/beamertheme-trigon/beamerinnerthemetrigon.dtx')
-rw-r--r-- | Master/texmf-dist/source/latex/beamertheme-trigon/beamerinnerthemetrigon.dtx | 621 |
1 files changed, 621 insertions, 0 deletions
diff --git a/Master/texmf-dist/source/latex/beamertheme-trigon/beamerinnerthemetrigon.dtx b/Master/texmf-dist/source/latex/beamertheme-trigon/beamerinnerthemetrigon.dtx new file mode 100644 index 00000000000..c234dfc3433 --- /dev/null +++ b/Master/texmf-dist/source/latex/beamertheme-trigon/beamerinnerthemetrigon.dtx @@ -0,0 +1,621 @@ +% \iffalse meta-comment ------------------------------------------------------- +% Copyright (C) 2021 Thomas Lambert <trigon@thl.ovh> +% Other contributors to this theme are listed here: +% https://gitlab.com/thlamb/beamertheme-trigon/-/graphs/master +% +% The original template was heavily inspired by Metropolis from Matthias +% Vogelgesang. +% +% License CC-BY-SA 4.0 +% This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 +% International License (https://creativecommons.org/licenses/by-sa/4.0/) +% ------------------------------------------------------------------------- \fi +% \iffalse +%<*package> +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{beamerinnerthemetrigon}[2021/03/25 v0.5.0 Trigon inner theme] +%</package> +% \fi +% \CheckSum{0} +% \StopEventually{} +% \iffalse +%<*package> +% ------------------------------------------------------------------------- \fi +% +% \subsection{\themename inner theme} +% +% A |beamer| inner theme dictates the style of the frame elements traditionally +% set in the ``body'' of each slide. These include: +% +% \begin{itemize} +% \item title, part, and section pages; +% \item main background elements; +% \item itemize, enumerate, and description environments; +% \item block environments including theorems and proofs; +% \item figures and tables; and +% \item footnotes and plain text. +% \end{itemize} +% +% +% \subsubsection{Package dependencies} +% +% \begin{macrocode} +\RequirePackage{pgfopts} +\RequirePackage{tikz} +\usetikzlibrary{calc,3d} +% \end{macrocode} +% +% +% \subsubsection{Definitions} +% We define the command |\logobig| to specify the logo that needs to be applied +% displayed on the title frame. +% \begin{macrocode} +\def\logbig{} +\newcommand\biglogo[1]{ + \def\logbig{#1} +} +% \end{macrocode} +% +% +% \subsubsection{Options} +% +% \begin{macro}{sectionpage} +% Controls whereas a slide with the section title should be inserted at the +% beginning of the section or not. +% \begin{macrocode} +\pgfkeys{ + /trigon/inner/sectionpage/.cd, + .is choice, + none/.code=\trigon@disablesectionpage, + simple/.code=\trigon@enablesectionpage +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{slidestyle} +% Controls the layout that should be used for regular slides. +% \begin{macrocode} +\def\slidestyle{} +\pgfkeys{ + /trigon/inner/slidestyle/.cd, + .is choice, + blank/.code=\def\slidestyle{blank}, + style1/.code=\def\slidestyle{smallcornertriangle}, + cyber/.code=\def\slidestyle{cyberbottom} +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{titlestyle} +% Controls the layout that should be used for the title page. +% \begin{macrocode} +\def\titlestyle{} +\pgfkeys{ + /trigon/inner/titlestyle/.cd, + .is choice, + plain/.code=\def\titlestyle{bottomtrianglescolor}, + style1/.code=\def\titlestyle{titlesmallimage}, + style2/.code=\def\titlestyle{titlebigimage} +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{sectionstyle} +% Controls the layout that should be used for the title page. +% \begin{macrocode} +\def\sectionstyle{} +\pgfkeys{ + /trigon/inner/sectionstyle/.cd, + .is choice, + plain/.code=\def\sectionstyle{bottomtrianglescolor}, + style1/.code=\def\sectionstyle{bigtriangles}, + style2/.code=\def\sectionstyle{lefttriangles}, + style3/.code=\def\sectionstyle{bottomtrianglesbw} +} +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{\trigon@inner@setdefaults} +% Sets default values for the inner theme options. +% \begin{macrocode} +\newcommand{\trigon@inner@setdefaults}{ + \pgfkeys{/trigon/inner/.cd, + sectionpage=simple, + slidestyle=blank, + titlestyle=style2, + sectionstyle=plain + } +} +% \end{macrocode} +% \end{macro} +% +% +% \subsubsection{Backgrounds} +% +% First of all, we define a few commands in order easily create the triangles +% used as the main design elements of the theme. All these are defined with +% respect to the |\paperwidth| and |\paperheight| of the document, so that it +% fits the different aspect ratio possible. +% +% \begin{macro}{\leftTriangle} +% Defines a triangle with the base on the left side (pointing right). +% \begin{macrocode} +\newcommand{\leftTriangle}[2]{ + (#1,#2) + -- (0,{#2 + tan(30)*#1} ) + -- (0,{#2 - tan(30)*#1} ) + -- cycle; +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\righTriangle} +% Defines a triangle with the base on the right side (pointing left). +% \begin{macrocode} +\newcommand{\rightTriangle}[2]{ + (#1,#2) + -- (\the\paperwidth,{#2 + tan(30)*(\the\paperwidth-#1)} ) + -- (\the\paperwidth,{#2 - tan(30)*(\the\paperwidth-#1)} ) + -- cycle; +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\topTriangle} +% Defines a triangle with the base on the bottom side (pointing top). +% \begin{macrocode} +\newcommand{\topTriangle}[2]{ + (#1,#2) + -- ({#1 - tan(60)*#2},0) + -- ({#1 + tan(60)*#2},0) + -- cycle; +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\leftColorTriangle} +% Defines a colored triangle with the base on the left side (pointing right). +% \begin{macrocode} +\newcommand{\leftColorTriangle}[3]{ + \path[fill=#3] + \leftTriangle{#1}{#2} +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\righColorTriangle} +% Defines a colored triangle with the base on the right side (pointing left). +% \begin{macrocode} +\newcommand{\rightColorTriangle}[3]{ + \path[fill=#3] + \rightTriangle{#1}{#2} +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\topColorTriangle} +% Defines a colored triangle with the base on the bottom side (pointing top). +% \begin{macrocode} +\newcommand{\topColorTriangle}[3]{ + \path[fill=#3] + \topTriangle{#1}{#2} +} +% \end{macrocode} +% \end{macro} +% +% +% We then define the different backgrounds choices. +% +% \begin{macro}{blank} +% Blank slide background. +% \begin{macrocode} +\defbeamertemplate{background}{blank}{} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{smallcornertriangle} +% Background with a small triangle in bottom left corner (used for normal +% frames when the appropriate option is selected). +% \begin{macrocode} +\defbeamertemplate{background}{smallcornertriangle}{ + \begin{tikzpicture}[blend group=multiply] + \useasboundingbox (0,0) rectangle(\the\paperwidth,\the\paperheight); + \leftColorTriangle{0.62\paperwidth}{0}{tGrey!30} + \end{tikzpicture} +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{cyberbottom} +% Background with "mesh" effect on the bottom left corner (used for normal +% frames when the appropriate option is selected). +% \begin{macrocode} +\defbeamertemplate{background}{cyberbottom}{ +\tikzstyle{cyberVertex}=[scale=1,draw=tGrey!60,circle,fill=white] +\tikzstyle{cyberVertex2}=[scale=0.5,draw=tGrey!60,circle,fill=tGrey!60] +\tikzstyle{cyberEdge} = [draw,color=tGrey!60] +\begin{tikzpicture}[blend group=multiply] + \useasboundingbox (0,0) rectangle(\the\paperwidth,\the\paperheight); + \foreach \pos/\name in { + {(-0.05\paperwidth,0.75\paperheight)/0}, + {(0.02\paperwidth,0.53\paperheight)/1}, + {(-0.04\paperwidth,0.38\paperheight)/2}, + {(0.08\paperwidth,0.40\paperheight)/3}, + {(0.052\paperwidth,0.21\paperheight)/5}, + {(0.24\paperwidth,0.26\paperheight)/6}, + {(-0.08\paperwidth,-0.06\paperheight)/7}, + {(0.12\paperwidth,0.07\paperheight)/8}, + {(0.2\paperwidth,0.-0.08\paperheight)/9}, + {(0.38\paperwidth,0.06\paperheight)/10}, + {(0.56\paperwidth,-0.08\paperheight)/11}} + \node[cyberVertex] (\name) at \pos {}; + \foreach \pos/\name in { + {(-0.05\paperwidth,0.75\paperheight)/0}, + {(0.02\paperwidth,0.53\paperheight)/1}, + {(-0.04\paperwidth,0.38\paperheight)/2}, + {(0.08\paperwidth,0.40\paperheight)/3}, + {(0.052\paperwidth,0.21\paperheight)/5}, + {(0.24\paperwidth,0.26\paperheight)/6}, + {(-0.08\paperwidth,-0.06\paperheight)/7}, + {(0.12\paperwidth,0.07\paperheight)/8}, + {(0.2\paperwidth,0.-0.08\paperheight)/9}, + {(0.38\paperwidth,0.06\paperheight)/10}, + {(0.56\paperwidth,-0.08\paperheight)/11}} + \node[cyberVertex2] (\name_2) at \pos {}; + \foreach \source/ \dest in + {0/1,1/2,1/3,2/3,2/5,3/5,3/6,5/6,5/7,7/8,5/8,8/6,8/9,6/9,9/10,10/6,10/11} + \path[cyberEdge] (\source) -- (\dest); +\end{tikzpicture} +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{titlebigimage} +% Background for title page with a big image in the top left corener. +% \begin{macrocode} +\defbeamertemplate{background}{titlebigimage}{ + \begin{tikzpicture} + \useasboundingbox (0,0) rectangle(\the\paperwidth,\the\paperheight); + \begin{scope}[blend group=multiply] + \path[fill=tPrim]\leftTriangle{0.5\paperwidth}{0}; + \topColorTriangle{0.73\paperwidth}{0.70\paperheight}{tGrey!30}; + \ifx\inserttitlegraphic\@empty + \leftColorTriangle{0.73\paperwidth}{0.70\paperheight}{tPrim} + \else + \path[clip]\leftTriangle{0.73\paperwidth}{0.70\paperheight}; + \node[anchor=north west, inner sep=0pt, outer sep=0pt] at (0,\the\paperheight) {\inserttitlegraphic}; + \fi + \end{scope} + \path[fill=white]\rightTriangle{0.45\paperwidth}{\the\paperheight}; + \ifx\logbig\@empty \else + \node[anchor=north east,inner sep=0mm] at + (.96*\the\paperwidth,.96*\the\paperheight) {\includegraphics[width=0.28\textwidth]{\logbig}}; + \fi + \end{tikzpicture} +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{titlesmallimage} +% Background for the titlepage with a small image in the top left corner. +% \begin{macrocode} +\defbeamertemplate{background}{titlesmallimage}{ + \begin{tikzpicture}[blend group=multiply] + \useasboundingbox (0,0) rectangle(\the\paperwidth,\the\paperheight); + \leftColorTriangle{0.58\paperwidth}{0}{tGrey!30} + \ifx\logbig\@empty \else + \node[anchor=north east,inner sep=0mm] at (.94*\the\paperwidth,.94*\the\paperheight) {\includegraphics[width=0.33\textwidth]{\logbig}}; + \fi + \ifx\inserttitlegraphic\@empty + \leftColorTriangle{0.58\paperwidth}{\the\paperheight}{tPrim} + \else + \path[clip]\leftTriangle{0.58\paperwidth}{\the\paperheight}; + \node[anchor=north west, inner sep=0pt, outer sep=0pt] at (0,\the\paperheight) {\inserttitlegraphic}; + \fi + \end{tikzpicture} +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{bottomtrianglescolor} +% Background for title/section pages with two colored triangles in the +% bottom. +% \begin{macrocode} +\defbeamertemplate{background}{bottomtrianglescolor}{ + \begin{tikzpicture}[blend group=multiply] + \useasboundingbox (0,0) rectangle(\the\paperwidth,\the\paperheight); + \leftColorTriangle{0.62\paperwidth}{0}{tPrim} + \rightColorTriangle{0.38\paperwidth}{0}{tSec} + \end{tikzpicture} +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{bottomtrianglesbw} +% Background for title/section pages with two black and white triangles in +% the bottom. +% \begin{macrocode} +\defbeamertemplate{background}{bottomtrianglesbw}{ + \begin{tikzpicture}[blend group=multiply] + \useasboundingbox (0,0) rectangle(\the\paperwidth,\the\paperheight); + \leftColorTriangle{0.62\paperwidth}{0}{tPrim} + \rightColorTriangle{0.38\paperwidth}{0}{tGrey} + \end{tikzpicture} +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{bigtriangles} +% Background for section pages with a big triangle on the left. +% \begin{macrocode} +\defbeamertemplate{background}{bigtriangles}{ + \begin{tikzpicture}[blend group=multiply] + \useasboundingbox (0,0) rectangle(\the\paperwidth,\the\paperheight); + \leftColorTriangle{0.80\paperwidth}{0.62\paperheight}{tPrim} + \rightColorTriangle{0.68\paperwidth}{0.58\paperheight}{tGrey} + \end{tikzpicture} +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{lefttriangles} +% Background for section pages with small triangles on the left. +% \begin{macrocode} +\defbeamertemplate{background}{lefttriangles}{ + \begin{tikzpicture}[blend group=multiply] + \useasboundingbox (0,0) rectangle(\the\paperwidth,\the\paperheight); + \leftColorTriangle{0.52\paperwidth}{\the\paperheight}{tPrim} + \leftColorTriangle{0.775\paperwidth}{0}{tGrey} + \end{tikzpicture} +} +% \end{macrocode} +% \end{macro} +% +% Before anything, the regular frame background is selected. +% \begin{macrocode} +\setbeamertemplate{background}[\slidestyle] +% \end{macrocode} +% +% Finally, we need to set the backgrounds properly before creating the different +% frames, create the special frames (title, section) and restore the regular +% background afterwards. +% +% \begin{macro}{\titleframe} +% Sets the titleframe. +% \begin{macrocode} +\newcommand{\titleframe}{ + \setbeamertemplate{title page}[\titlestyle] + \setbeamertemplate{background}[\titlestyle] + \frame[plain,noframenumbering]{\titlepage} + \setbeamertemplate{background}[\slidestyle] +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\sectionframe} +% Sets the titleframe. +% \begin{macrocode} +\newcommand{\sectionframe}{ + \setbeamertemplate{section page}[\sectionstyle] + \setbeamertemplate{background}[\sectionstyle] + \frame[plain,noframenumbering]{\sectionpage} + \setbeamertemplate{background}[\slidestyle] +} +\newcommand{\trigon@disablesectionpage}{ + \AtBeginSection{ + % intentionally empty + } +} +\newcommand{\trigon@enablesectionpage}{ + \AtBeginSection{ + \sectionframe + } +} +% \end{macrocode} +% \end{macro} +% +% +% \subsubsection{Layout} +% The following macros define the proper position of the various elements of the +% frame, so the fit nicely with the different background selected. +% +% \begin{macro}{titlebigimage} +% Place the text on the title frame with a big image on the top left side. +% \begin{macrocode} +\defbeamertemplate{title page}{titlebigimage} +{ + \vskip140pt + \begin{flushright} + \begin{minipage}[t][][c]{0.5\textwidth}% + \centering + \usebeamerfont{title}\usebeamercolor[fg]{title} + \inserttitle\par + \end{minipage} + \ifx \insertsubtitle\@empty + \else + \vskip15pt + \begin{minipage}[t][][c]{0.5\textwidth}% + \centering + \usebeamerfont{subtitle}\insertsubtitle\par% + \end{minipage} + \fi + \vskip15pt + \begin{minipage}[t][][c]{0.5\textwidth}% + \centering + \usebeamerfont{author}\insertauthor% + \vskip10pt + \usebeamerfont{date}\insertdate% + \end{minipage} + \end{flushright} + \vfill +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{titlesmallimage} +% Place the text on the title frame with a small image on the top left side. +% \begin{macrocode} +\defbeamertemplate{title page}{titlesmallimage} +{ + \vskip140pt% + \begin{beamercolorbox}[wd=\textwidth,sep=4pt]{title page header} + \usebeamerfont{title}\usebeamercolor[fg]{title}\inserttitle\par% + \end{beamercolorbox}% + \ifx \insertsubtitle\@empty + \else + \vskip8pt + \begin{beamercolorbox}[wd=\textwidth,sep=4pt]{subtitle page header} + \usebeamerfont{subtitle}\insertsubtitle\par% + \end{beamercolorbox}% + \fi + \vskip10pt + \begin{beamercolorbox}[wd=\textwidth,sep=4pt]{author} + \usebeamerfont{author}\insertauthor% + \end{beamercolorbox} + \vskip2pt% + \begin{beamercolorbox}[wd=\textwidth,sep=4pt]{date} + \usebeamerfont{date}\insertdate% + \end{beamercolorbox} + \vfill +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{bottomtrianglescolor} +% Place the text on the title frame with two triangles on the bottom. +% \begin{macrocode} +\defbeamertemplate{title page}{bottomtrianglescolor} +{ + \vskip0pt + \begin{center} + \begin{minipage}[t][][t]{\textwidth} + \centering% + \ifx\logbig\@empty \else + \includegraphics[height=0.15\textheight]{\logbig} + \fi + \end{minipage} + \vskip15pt + \begin{minipage}[t][][c]{\textwidth}% + \centering + \usebeamerfont{title}\usebeamercolor[fg]{title} + \inserttitle\par + \end{minipage} + \ifx \insertsubtitle\@empty + \else + \vskip15pt + \begin{minipage}[t][][c]{\textwidth}% + \centering + \usebeamerfont{subtitle}\insertsubtitle\par% + \end{minipage} + \fi + \vskip20pt + \begin{minipage}[t][][c]{0.5\textwidth}% + \centering + \usebeamerfont{author}\insertauthor\\[0.3cm]% + \usebeamerfont{date}\insertdate + \end{minipage} + \end{center} + \vfill +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{bottomtrianglescolor} +% Place the text on the section frame with two colored triangles on the +% bottom. +% \begin{macrocode} +\defbeamertemplate{section page}{bottomtrianglescolor} +{ + \vskip40pt + \begin{center} + \begin{minipage}[t][][c]{\textwidth}% + \centering + \usebeamerfont{section title}\usebeamercolor[fg]{title} + \insertsectionhead\par + \end{minipage} + \end{center} + \vfill +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{bottomtrianglesbw} +% Place the text on the section frame with two black and white triangles on +% the bottom. +% \begin{macrocode} +\defbeamertemplate{section page}{bottomtrianglesbw} +{ + \vskip40pt + \begin{center} + \begin{minipage}[t][][c]{\textwidth}% + \centering + \usebeamerfont{section title}\usebeamercolor[fg]{title} + \insertsectionhead\par + \end{minipage} + \end{center} + \vfill +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{bigtriangles} +% Place the text on the section frame with two big triangles. +% \begin{macrocode} +\defbeamertemplate{section page}{bigtriangles} +{ + \vskip200pt + \begin{flushright} + \begin{minipage}[t]{0.62\textwidth}%7 + \usebeamerfont{section title}\usebeamercolor[fg]{title} + \raggedleft + \insertsectionhead\par + \end{minipage} + \end{flushright} + \vfill +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{lefttriangles} +% Place the text on the section frame with two small left triangles. +% \begin{macrocode} +\defbeamertemplate{section page}{lefttriangles} +{ + \vskip25pt + \begin{beamercolorbox}[wd=\textwidth,leftskip=100pt,sep=4pt]{section page header} + \usebeamerfont{section title}\usebeamercolor[fg]{title} + \insertsectionhead\par + \end{beamercolorbox}% + \vfill +} +% \end{macrocode} +% \end{macro} +% +% +% \subsubsection{Lists and floats} +% +% \begin{macrocode} +\setbeamertemplate{caption label separator}{: } +\setbeamertemplate{caption}[numbered] +% \end{macrocode} +% +% +% \subsubsection{Margins} +% The margins are defined as +% \begin{macrocode} +\setbeamersize{text margin left=.05\paperwidth, text margin right=.05\paperwidth} +% \end{macrocode} +% +% \subsubsection{Process package options} +% +% \begin{macrocode} +\trigon@inner@setdefaults +\ProcessPgfPackageOptions{/trigon/inner} +% \end{macrocode} +% +% \iffalse +%</package> +% \fi +% \Finale +\endinput |