summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/beamer-contrib/themes/beamertheme-trigon/source/beamerfontthemetrigon.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/beamer-contrib/themes/beamertheme-trigon/source/beamerfontthemetrigon.dtx')
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-trigon/source/beamerfontthemetrigon.dtx329
1 files changed, 329 insertions, 0 deletions
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-trigon/source/beamerfontthemetrigon.dtx b/macros/latex/contrib/beamer-contrib/themes/beamertheme-trigon/source/beamerfontthemetrigon.dtx
new file mode 100644
index 0000000000..fcc9ed34a3
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-trigon/source/beamerfontthemetrigon.dtx
@@ -0,0 +1,329 @@
+% \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{beamerfontthemetrigon}[2021/03/25 v0.5.0 Trigon font theme]
+%</package>
+% \fi
+% \CheckSum{0}
+% \StopEventually{}
+% \iffalse
+%<*package>
+% ------------------------------------------------------------------------- \fi
+%
+% \subsection{\themename font theme}
+% A |beamer| font theme sets the style of the font used in the document.
+%
+%
+% \subsubsection{Package dependencies}
+% \begin{macrocode}
+\RequirePackage{pgfopts}
+% \end{macrocode}
+%
+%
+%
+% \subsubsection{Title format options}
+%
+% \begin{macro}{titleformat title}
+% Controls the format of the title.
+% \begin{macrocode}
+\pgfkeys{
+ /trigon/font/titleformat title/.cd,
+ .is choice,
+ regular/.code={%
+ \let\trigon@titleformat\@empty%
+ \setbeamerfont{title}{shape=\normalfont}%
+ },
+ smallcaps/.code={%
+ \let\trigon@titleformat\@empty%
+ \setbeamerfont{title}{shape=\scshape}%
+ },
+ allsmallcaps/.code={%
+ \let\trigon@titleformat\lowercase%
+ \setbeamerfont{title}{shape=\scshape}%
+ \PackageWarning{beamerthemetrigon}{%
+ Be aware that titleformat title=allsmallcaps can lead to problems%
+ }
+ },
+ allcaps/.code={%
+ \let\trigon@titleformat\uppercase%
+ \setbeamerfont{title}{shape=\normalfont}
+ \PackageWarning{beamerthemetrigon}{%
+ Be aware that titleformat title=allcaps can lead to problems%
+ }
+ },
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{titleformat subtitle}
+% Controls the format of the subtitle.
+% \begin{macrocode}
+\pgfkeys{
+ /trigon/font/titleformat subtitle/.cd,
+ .is choice,
+ regular/.code={%
+ \let\trigon@subtitleformat\@empty%
+ \setbeamerfont{subtitle}{shape=\normalfont}%
+ },
+ smallcaps/.code={%
+ \let\trigon@subtitleformat\@empty%
+ \setbeamerfont{subtitle}{shape=\scshape}%
+ },
+ allsmallcaps/.code={%
+ \let\trigon@subtitleformat\lowercase%
+ \setbeamerfont{subtitle}{shape=\scshape}%
+ \PackageWarning{beamerthemetrigon}{%
+ Be aware that titleformat subtitle=allsmallcaps can lead to problems%
+ }
+ },
+ allcaps/.code={%
+ \let\trigon@subtitleformat\uppercase%
+ \setbeamerfont{subtitle}{shape=\normalfont}%
+ \PackageWarning{beamerthemetrigon}{%
+ Be aware that titleformat subtitle=allcaps can lead to problems%
+ }
+ },
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{titleformat section}
+% Controls the format of the section title.
+% \begin{macrocode}
+\pgfkeys{
+ /trigon/font/titleformat section/.cd,
+ .is choice,
+ regular/.code={%
+ \let\trigon@sectiontitleformat\@empty%
+ \setbeamerfont{section title}{shape=\normalfont}%
+ },
+ smallcaps/.code={%
+ \let\trigon@sectiontitleformat\@empty%
+ \setbeamerfont{section title}{shape=\scshape}%
+ },
+ allsmallcaps/.code={%
+ \let\trigon@sectiontitleformat\MakeLowercase%
+ \setbeamerfont{section title}{shape=\scshape}%
+ \PackageWarning{beamerthemetrigon}{%
+ Be aware that titleformat section=allsmallcaps can lead to problems%
+ }
+ },
+ allcaps/.code={%
+ \let\trigon@sectiontitleformat\MakeUppercase%
+ \setbeamerfont{section title}{shape=\normalfont}%
+ \PackageWarning{beamerthemetrigon}{%
+ Be aware that titleformat section=allcaps can lead to problems%
+ }
+ },
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{titleformat frame}
+% Controls the format of the frame title.
+% \begin{macrocode}
+\pgfkeys{
+ /trigon/font/titleformat frame/.cd,
+ .is choice,
+ regular/.code={%
+ \let\trigon@frametitleformat\@empty%
+ \setbeamerfont{frametitle}{shape=\normalfont}%
+ },
+ smallcaps/.code={%
+ \let\trigon@frametitleformat\@empty%
+ \setbeamerfont{frametitle}{shape=\scshape}%
+ },
+ allsmallcaps/.code={%
+ \let\trigon@frametitleformat\MakeLowercase%
+ \setbeamerfont{frametitle}{shape=\scshape}%
+ \PackageWarning{beamerthemetrigon}{%
+ Be aware that titleformat frame=allsmallcaps can lead to problems%
+ }
+ },
+ allcaps/.code={%
+ \let\trigon@frametitleformat\MakeUppercase%
+ \setbeamerfont{frametitle}{shape=\normalfont}
+ \PackageWarning{beamerthemetrigon}{%
+ Be aware that titleformat frame=allcaps can lead to problems%
+ }
+ },
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{titleformat aliases}
+% Allows |titleformat title| et al. to be used in the |\usetheme|
+% declaration, where \LaTeX{} automatically removes all spaces.
+% \begin{macrocode}
+\pgfkeys{
+ /trigon/font/.cd,
+ titleformattitle/.code=\pgfkeysalso{titleformat title=#1},
+ titleformatsubtitle/.code=\pgfkeysalso{titleformat subtitle=#1},
+ titleformatsection/.code=\pgfkeysalso{titleformat section=#1},
+ titleformatframe/.code=\pgfkeysalso{titleformat frame=#1},
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\trigon@font@setdefaults}
+% Sets default values for font theme options.
+% \begin{macrocode}
+\newcommand{\trigon@font@setdefaults}{
+ \pgfkeys{/trigon/font/.cd,
+ titleformat title=regular,
+ titleformat subtitle=regular,
+ titleformat section=regular,
+ titleformat frame=regular,
+ }
+}
+% \end{macrocode}
+% \end{macro}
+%
+% We first define hooks to change the case format of the titles.
+%
+% \begin{macrocode}
+\def\trigon@titleformat#1{#1}
+\def\trigon@subtitleformat#1{#1}
+\def\trigon@sectiontitleformat#1{#1}
+\def\trigon@frametitleformat#1{#1}
+% \end{macrocode}
+%
+% To make the uppercase and lowercase macros work in the title, subtitle, etc.,
+% we have to patch the appropriate |beamer| commands that set their values.
+% This solution was suggested by Enrico Gregorio in an answer to
+% \href{http://tex.stackexchange.com/questions/112526/}{this StackExchange
+% question}.
+%
+% \begin{macrocode}
+\patchcmd{\beamer@title}%
+ {\def\inserttitle{#2}}%
+ {\def\inserttitle{\trigon@titleformat{#2}}}%
+ {}%
+ {\PackageError{beamerfontthemetrigon}{Patching title failed}\@ehc}
+\patchcmd{\beamer@subtitle}%
+ {\def\insertsubtitle{#2}}%
+ {\def\insertsubtitle{\trigon@subtitleformat{#2}}}%
+ {}%
+ {\PackageError{beamerfontthemetrigon}{Patching subtitle failed}\@ehc}
+\patchcmd{\sectionentry}
+ {\def\insertsectionhead{#2}}
+ {\def\insertsectionhead{\trigon@sectiontitleformat{#2}}}
+ {}
+ {\PackageError{beamerfontthemetrigon}{Patching section title failed}\@ehc}
+\@tempswafalse
+\patchcmd{\beamer@section}
+ {\edef\insertsectionhead{\noexpand\hyperlink{Navigation\the\c@page}{\unexpanded{#1}}}}
+ {\edef\insertsectionhead{\noexpand\hyperlink{Navigation\the\c@page}{%
+ \noexpand\trigon@sectiontitleformat{\unexpanded{#1}}}}}
+ {\@tempswatrue}
+ {}
+\patchcmd{\beamer@section}
+ {\def\insertsectionhead{\hyperlink{Navigation\the\c@page}{#1}}}
+ {\def\insertsectionhead{\hyperlink{Navigation\the\c@page}{%
+ \trigon@sectiontitleformat{#1}}}}
+ {\@tempswatrue}
+ {}
+\patchcmd{\beamer@section}
+ {\protected@edef\insertsectionhead{\noexpand\hyperlink{Navigation\the\c@page}{#1}}}
+ {\protected@edef\insertsectionhead{\noexpand\hyperlink{Navigation\the\c@page}{%
+ \noexpand\trigon@sectiontitleformat{#1}}}}
+ {\@tempswatrue}
+ {}
+\if@tempswa\else
+ \PackageError{beamerfontthemetrigon}{Patching section title failed}\@ehc
+\fi
+\@tempswafalse
+\patchcmd{\beamer@subsection}
+ {\edef\insertsubsectionhead{\noexpand\hyperlink{Navigation\the\c@page}{\unexpanded{#1}}}}
+ {\edef\insertsubsectionhead{\noexpand\hyperlink{Navigation\the\c@page}{%
+ \noexpand\trigon@sectiontitleformat{\unexpanded{#1}}}}}
+ {\@tempswatrue}
+ {}
+\patchcmd{\beamer@subsection}
+ {\def\insertsubsectionhead{\hyperlink{Navigation\the\c@page}{#1}}}
+ {\def\insertsubsectionhead{\hyperlink{Navigation\the\c@page}{%
+ \trigon@sectiontitleformat{#1}}}}
+ {\@tempswatrue}
+ {}
+\patchcmd{\beamer@subsection}
+ {\protected@edef\insertsubsectionhead{\noexpand\hyperlink{Navigation\the\c@page}{#1}}}
+ {\protected@edef\insertsubsectionhead{\noexpand\hyperlink{Navigation\the\c@page}{%
+ \noexpand\trigon@sectiontitleformat{#1}}}}
+ {\@tempswatrue}
+ {}
+\if@tempswa\else
+ \PackageError{beamerfontthemetrigon}{Patching section title failed}\@ehc
+\fi
+% \end{macrocode}
+%
+% Similarly, to make the |\MakeLowercase| and |\MakeUppercase| macros work in
+% the frame title we have to patch |\beamer@@frametitle|.
+%
+% \begin{macrocode}
+\patchcmd{\beamer@@frametitle}
+ {{%
+ \gdef\insertframetitle{{#2\ifnum\beamer@autobreakcount>0\relax{}\space%
+ \usebeamertemplate*{frametitle continuation}\fi}}%
+ \gdef\beamer@frametitle{#2}%
+ \gdef\beamer@shortframetitle{#1}%
+ }}
+ {{%
+ \gdef\insertframetitle{{\trigon@frametitleformat{#2}\ifnum%
+ \beamer@autobreakcount>0\relax{}\space%
+ \usebeamertemplate*{frametitle continuation}\fi}}%
+ \gdef\beamer@frametitle{#2}%
+ \gdef\beamer@shortframetitle{#1}%
+ }}
+ {}
+ {\PackageError{beamerfontthemetrigon}{Patching frame title failed}\@ehc}
+% \end{macrocode}
+%
+%
+% \subsubsection{General font definitions}
+%
+% \begin{macrocode}
+\setbeamerfont{author} {size=\normalsize}
+\setbeamerfont{title} {size=\LARGE,series=\bfseries}
+\setbeamerfont{section title}{size=\LARGE,series=\mdseries}
+\setbeamerfont{date} {size=\small}
+\setbeamerfont*{subtitle} {size=\Large}
+\setbeamerfont{frametitle} {size=\LARGE}
+\setbeamerfont{framesubtitle}{size=\large}
+
+\setbeamerfont{alerted text} {size=\normalsize,series=\bfseries}
+\setbeamerfont{block title}{size=\normalsize,series=\bfseries}
+\setbeamerfont{block title alerted}{size=\normalsize,series=\bfseries}
+
+\setbeamerfont{section in toc}{size=\Large}
+\setbeamerfont{subsection in toc}{size=\large}
+\setbeamerfont{page number in head/foot}{size=\scriptsize}
+
+\setbeamerfont{description item}{series=\bfseries}
+\setbeamerfont{caption}{size=\small}
+\setbeamerfont{caption name}{series=\bfseries}
+% \end{macrocode}
+%
+% \subsubsection{Process package options}
+%
+% \begin{macrocode}
+\trigon@font@setdefaults
+\ProcessPgfPackageOptions{/trigon/font}
+% \end{macrocode}
+%
+% \iffalse
+%</package>
+% \fi
+% \Finale
+\endinput