summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/hackthefootline
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2017-08-05 20:55:42 +0000
committerKarl Berry <karl@freefriends.org>2017-08-05 20:55:42 +0000
commit180ddd3112dacd2d1cd160d1ccdd872050f0e635 (patch)
tree76b2db66582e174af34df0da09e90a455fb602a0 /Master/texmf-dist/tex/latex/hackthefootline
parentfba37f2abc84c6491ce81bef9e233dd9bfdabfaa (diff)
hackthefootline (5aug17)
git-svn-id: svn://tug.org/texlive/trunk@44959 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/hackthefootline')
-rw-r--r--Master/texmf-dist/tex/latex/hackthefootline/hackthefootline.sty414
1 files changed, 414 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/hackthefootline/hackthefootline.sty b/Master/texmf-dist/tex/latex/hackthefootline/hackthefootline.sty
new file mode 100644
index 00000000000..3b59d32441a
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/hackthefootline/hackthefootline.sty
@@ -0,0 +1,414 @@
+%% This is file 'hackthefootline.sty', Version 2017-08-04
+%% Copyright 2017 Sebastian Friedl <sfr682k@t-online.de>
+%%
+%% This work may be distributed and/or modified under the conditions of the LaTeX Project
+%% Public License, either version 1.3c of this license or (at your option) any later version.
+%% The latest version of this license is available at
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3c or later is part of all distributions of LaTeX version 2008-05-04 or later
+%%
+%% This work has the LPPL maintenace status 'maintained'.
+%% The current maintainer of this work is Sebastian Friedl.
+%%
+%% This work consists of the files hackthefootline.sty and hackthefootline-doc.tex
+%%
+%% -------------------------------------------------------------------------------------------
+%%
+%% The hackthefootline package is a tool providing arbitrary footline selection for
+%% LaTeX beamer's standard themes (it may work with other themes as well)
+%%
+%% -------------------------------------------------------------------------------------------
+%%
+%% Please report bugs and other problems as well as suggestions for improvements
+%% to my email address (sfr682k@t-online.de).
+%%
+%% -------------------------------------------------------------------------------------------
+%%
+%% Acknowledgement:
+%% The basic layout of the two- and three-column footline is based on the original LaTeX
+%% beamer split and infolines outer themes written by Till Tantau.
+%%
+%% -------------------------------------------------------------------------------------------
+
+
+\ProvidesPackage{hackthefootline}[2017/08/04 hackthefootline: arbitrary footline selection for LaTeX beamer's standard themes]
+\mode<presentation>
+
+
+
+\newcommand{\htfprintmessage}{%
+ \typeout{}
+ \typeout{========================================}
+ \typeout{FOOTLINE HACK PERFORMED}
+ \typeout{}
+ \typeout{hackthefootline package}
+ \typeout{Version 2017/08/04}
+ \typeout{}
+ \typeout{(c) 2017 Sebastian Friedl}
+ \typeout{Licensed under LPPL 1.3c or later}
+ \typeout{========================================}
+ \typeout{}}
+
+
+
+% OPTION AND VARIABLES DECLARATION --------------------------------------------------------------------------------------------------------------
+
+\newif\ifbeamer@htfonecolfootline
+\beamer@htfonecolfootlinefalse
+\DeclareOptionBeamer{onecol}{\beamer@htfonecolfootlinetrue}
+
+\newif\ifbeamer@htftwocolsfootline
+\beamer@htftwocolsfootlinefalse
+\DeclareOptionBeamer{twocols}{\beamer@htftwocolsfootlinetrue}
+
+\newif\ifbeamer@htfthreecolsfootline
+\beamer@htfthreecolsfootlinefalse
+\DeclareOptionBeamer{threecols}{\beamer@htfthreecolsfootlinetrue}
+
+\newif\ifbeamer@htfcountappendixframes
+\beamer@htfcountappendixframesfalse
+\DeclareOptionBeamer{countappendixframes}{\beamer@htfcountappendixframestrue}
+
+\newif\ifbeamer@htffunnystuff
+\beamer@htffunnystufftrue
+\DeclareOptionBeamer{nofun}{\beamer@htffunnystufffalse}
+
+
+\ProcessOptionsBeamer
+
+
+% Show frame numbers?
+\newif\ifbeamer@htfshowframenrs
+\beamer@htfshowframenrstrue
+
+% Check for author and/or institute when inserting the separation symbol?
+\newif\ifbeamer@htfcheckauth
+\newif\ifbeamer@htfcheckinst
+\newif\ifbeamer@htfinsertsep
+\newcommand{\htfcheckauthor}{\beamer@htfcheckauthtrue \beamer@htfcheckinstfalse}
+\newcommand{\htfcheckinstit}{\beamer@htfcheckauthfalse \beamer@htfcheckinsttrue}
+\newcommand{\htfcheckboth}{ \beamer@htfcheckauthtrue \beamer@htfcheckinsttrue}
+\newcommand{\htfchecknone}{ \beamer@htfcheckauthfalse \beamer@htfcheckinstfalse}
+
+% Has the navigation bar been removed by the package?
+\newif\ifbeamer@navigationremoved
+\beamer@navigationremovedfalse
+
+% Variables
+\newif\ifbeamer@htfnotitle \newif\ifbeamer@htfshorttitle \newif\ifbeamer@htflongtitle
+\newif\ifbeamer@htfnoauthinst \newif\ifbeamer@htfonlyauthor \newif\ifbeamer@htfonlyinstitute
+\newif\ifbeamer@htfinstitutepths \newif\ifbeamer@htfauthorpths \newif\ifbeamer@htfauthinst
+\newif\ifbeamer@htfnodate \newif\ifbeamer@htfshortdate \newif\ifbeamer@htflongdate
+\newif\ifbeamer@htfnoframenrs \newif\ifbeamer@htfcounterframenrs \newif\ifbeamer@htffractionframenrs
+\newif\ifbeamer@htfpercentframenrs
+\newif\ifbeamer@htfcolonsep \newif\ifbeamer@htfcommasep \newif\ifbeamer@htfsepspace
+\newif\ifbeamer@htfnofootline
+
+
+
+% DEFAULT VALUES --------------------------------------------------------------------------------------------------------------------------------
+
+\beamer@htfnofootlinefalse
+\ifbeamer@htfonecolfootline\else
+ \ifbeamer@htftwocolsfootline\else
+ \ifbeamer@htfthreecolsfootline\else
+ \beamer@htfnofootlinetrue
+\fi \fi \fi
+
+\newcommand{\htfnofootlinedefault}{%
+ \beamer@htfnoframenrstrue \beamer@htfcounterframenrsfalse \beamer@htffractionframenrsfalse
+ \beamer@htfpercentframenrsfalse \beamer@htfshowframenrsfalse
+}
+
+\newcommand{\htfonecolfootlinedefault}{%
+ \beamer@htfnotitlefalse \beamer@htfshorttitletrue \beamer@htflongtitlefalse
+ \beamer@htfnoauthinstfalse \beamer@htfonlyauthorfalse \beamer@htfonlyinstitutefalse
+ \beamer@htfinstitutepthsfalse \beamer@htfauthorpthsfalse \beamer@htfauthinsttrue
+ \beamer@htfnodatetrue \beamer@htfshortdatefalse \beamer@htflongdatefalse
+ \beamer@htfnoframenrsfalse \beamer@htfcounterframenrsfalse \beamer@htffractionframenrstrue
+ \beamer@htfpercentframenrsfalse
+ \beamer@htfcolonseptrue \beamer@htfcommasepfalse \beamer@htfsepspacefalse
+}
+
+\newcommand{\htftwocolsfootlinedefault}{%
+ \beamer@htfnotitlefalse \beamer@htfshorttitletrue \beamer@htflongtitlefalse
+ \beamer@htfnoauthinstfalse \beamer@htfonlyauthortrue \beamer@htfonlyinstitutefalse
+ \beamer@htfinstitutepthsfalse \beamer@htfauthorpthsfalse \beamer@htfauthinstfalse
+ \beamer@htfnodatetrue \beamer@htfshortdatefalse \beamer@htflongdatefalse
+ \beamer@htfnoframenrstrue \beamer@htfcounterframenrsfalse \beamer@htffractionframenrsfalse
+ \beamer@htfpercentframenrsfalse
+}
+
+\newcommand{\htfthreecolsfootlinedefault}{%
+ \beamer@htfnotitlefalse \beamer@htfshorttitletrue \beamer@htflongtitlefalse
+ \beamer@htfnoauthinstfalse \beamer@htfonlyauthorfalse \beamer@htfonlyinstitutefalse
+ \beamer@htfinstitutepthstrue \beamer@htfauthorpthsfalse \beamer@htfauthinstfalse
+ \beamer@htfnodatefalse \beamer@htfshortdatetrue \beamer@htflongdatefalse
+ \beamer@htfnoframenrsfalse \beamer@htfcounterframenrsfalse \beamer@htffractionframenrstrue
+ \beamer@htfpercentframenrsfalse
+}
+
+
+
+% ACTIONS FOR NOT COUNTING APPENDIX FRAMES ------------------------------------------------------------------------------------------------------
+
+\ifbeamer@htfcountappendixframes\else
+ % Required packages
+ \RequirePackage{appendixnumberbeamer}
+ \RequirePackage{etoolbox}
+
+ % Removes frame numbers for appendix slides
+ \apptocmd{\appendix}{%
+ \beamer@htfshowframenrsfalse
+ }{}{}
+\fi
+
+
+
+% REQUIREMENTS FOR SOME "FUNNY STUFF" -----------------------------------------------------------------------------------------------------------
+
+\ifbeamer@htffunnystuff
+ % Frame numbering in %: requirements, package settings, variables, commands
+ \RequirePackage{calc}
+ \RequirePackage[addmissingzero,autolanguage,nosepfour]{numprint}
+ \npdefunit{percent}{\%}{1}
+ \newlength{\progress}
+ \newcommand{\updateprogress}{\setlength{\progress}{100pt*\ratio{\insertframenumber pt}{\inserttotalframenumber pt}}}
+\fi
+
+
+
+% TEMPLATES: TITLE ------------------------------------------------------------------------------------------------------------------------------
+
+\defbeamertemplate*{htf-title}{none}{}
+\defbeamertemplate*{htf-title}{short}{\insertshorttitle}
+\defbeamertemplate*{htf-title}{long}{\inserttitle}
+
+
+
+% TEMPLATES: AUTHOR / INSTITUTE -----------------------------------------------------------------------------------------------------------------
+
+\defbeamertemplate*{htf-authinst}{none}{}
+\defbeamertemplate*{htf-authinst}{onlyauth}{\insertshortauthor}
+\defbeamertemplate*{htf-authinst}{onlyinst}{\insertshortinstitute}
+\defbeamertemplate*{htf-authinst}{instpths}{\insertshortauthor\ifx\beamer@shortinstitute\@empty\else~~(\insertshortinstitute)\fi}
+\defbeamertemplate*{htf-authinst}{authpths}{\insertshortinstitute\ifx\beamer@shortauthor\@empty\else~~(\insertshortauthor)\fi}
+\defbeamertemplate*{htf-authinst}{bothcmma}{\insertshortauthor\ifx\beamer@shortinstitute\@empty\else,~\insertshortinstitute\fi}
+
+
+
+% TEMPLATES: DATE -------------------------------------------------------------------------------------------------------------------------------
+
+\defbeamertemplate*{htf-date}{none}{}
+\defbeamertemplate*{htf-date}{short}{\insertshortdate}
+\defbeamertemplate*{htf-date}{long}{\insertdate}
+
+
+
+% TEMPLATES: FRAME NUMBERS ----------------------------------------------------------------------------------------------------------------------
+
+\defbeamertemplate*{htf-framenrs}{none}{}
+\defbeamertemplate*{htf-framenrs}{counter}{\insertframenumber}
+\defbeamertemplate*{htf-framenrs}{fraction}{\insertframenumber~/~\inserttotalframenumber}
+\ifbeamer@htffunnystuff
+ \defbeamertemplate*{htf-framenrs}{percent}{\updateprogress\nprounddigits{0}\lenprint[percent]{\progress}}
+\fi
+
+
+
+% TEMPLATES: AUTHOR-TITLE-SEPERATOR -------------------------------------------------------------------------------------------------------------
+
+\defbeamertemplate*{htf-atsep}{colon}{:~~~~}
+\defbeamertemplate*{htf-atsep}{comma}{,~}
+\defbeamertemplate*{htf-atsep}{space}{~~~~~~~~~~}
+
+
+
+% FOOTLINE DEFINITIONS --------------------------------------------------------------------------------------------------------------------------
+
+% No footline
+\defbeamertemplate*{footline}{htf-none}{}
+
+% One column
+\defbeamertemplate*{footline}{htf-onecol}{%
+ \begin{beamercolorbox}[wd=\paperwidth,ht=2.25ex,dp=1ex,leftskip=.3cm,rightskip=.3cm]{palette primary}%
+ \usebeamerfont{author in head/foot}
+ \usebeamertemplate{htf-authinst}%
+ %
+ \beamer@htfinsertsepfalse
+ \ifbeamer@htfcheckauth\ifx\beamer@shortauthor\@empty\else\beamer@htfinsertseptrue\fi\fi
+ \ifbeamer@htfcheckinst\ifx\beamer@shortinstitute\@empty\else\beamer@htfinsertseptrue\fi\fi
+ %
+ \ifx\beamer@shorttitle\@empty \beamer@htfinsertsepfalse \fi
+ \ifbeamer@htfnotitle \beamer@htfinsertsepfalse \fi
+ %
+ \ifbeamer@htfinsertsep\usebeamertemplate{htf-atsep}\fi
+ %
+ \usebeamerfont{title in head/foot}
+ \usebeamertemplate{htf-title}
+ \hfill
+ \usebeamercolor{date in head/foot}
+ \usebeamertemplate{htf-date}
+ % Dummy space for frame numbers
+ \ifbeamer@htfshowframenrs \hspace{5.75em} \fi
+ \end{beamercolorbox}%
+ \ifbeamer@htfshowframenrs
+ \vspace{-3.25ex}
+ \hfill%
+ \begin{beamercolorbox}[wd=6.25em,ht=2.25ex,dp=1ex,right,rightskip=.3cm]{palette primary}
+ \usebeamertemplate{htf-framenrs}
+ \end{beamercolorbox}
+ \fi}
+
+% Two columns
+\defbeamertemplate*{footline}{htf-twocols}{%
+ \leavevmode%
+ \hbox{\begin{beamercolorbox}[wd=.5\paperwidth,ht=2.5ex,dp=1.125ex,leftskip=.3cm,rightskip=.3cm]{author in head/foot}%
+ \usebeamerfont{author in head/foot}\usebeamertemplate{htf-date}\hfill\usebeamertemplate{htf-authinst}
+ \end{beamercolorbox}%
+ \begin{beamercolorbox}[wd=.5\paperwidth,ht=2.5ex,dp=1.125ex,leftskip=.3cm,rightskip=.3cm]{title in head/foot}%
+ \usebeamerfont{title in head/foot}\usebeamertemplate{htf-title}\hfill
+ \ifbeamer@htfshowframenrs \usebeamertemplate{htf-framenrs} \fi
+ \end{beamercolorbox}}%
+ \vskip0pt}
+
+% Three columns
+\defbeamertemplate*{footline}{htf-threecols}{
+ \leavevmode%
+ \hbox{%
+ \begin{beamercolorbox}[wd=.333333\paperwidth,ht=2.25ex,dp=1ex,left,leftskip=.3cm]{author in head/foot}%
+ \usebeamerfont{author in head/foot}\usebeamertemplate{htf-authinst}
+ \end{beamercolorbox}%
+ \begin{beamercolorbox}[wd=.333333\paperwidth,ht=2.25ex,dp=1ex,center]{title in head/foot}%
+ \usebeamerfont{title in head/foot}\usebeamertemplate{htf-title}
+ \end{beamercolorbox}%
+ \begin{beamercolorbox}[wd=.333333\paperwidth,ht=2.25ex,dp=1ex,right,rightskip=.3cm]{date in head/foot}%
+ \usebeamerfont{date in head/foot}\usebeamertemplate{htf-date}%
+ % Dummy space for frame numbers
+ \ifbeamer@htfshowframenrs \hspace{5.75em} \fi
+ \end{beamercolorbox}%
+ \ifbeamer@htfshowframenrs%
+ \hspace{-6.25em}%
+ \begin{beamercolorbox}[wd=6.25em,ht=2.25ex,dp=1ex,right,rightskip=.3cm]{date in head/foot}%
+ \usebeamertemplate{htf-framenrs}
+ \end{beamercolorbox}%
+ \fi}%
+ \vskip0pt}
+
+
+
+% CONFIGURATION COMMANDS ------------------------------------------------------------------------------------------------------------------------
+
+% Internal commands setting all variables of a certain template to "false"
+\newcommand{\htfcleartitle}{%
+ \beamer@htfnotitlefalse \beamer@htfshorttitlefalse \beamer@htflongtitlefalse}
+\newcommand{\htfclearauthinst}{%
+ \beamer@htfnoauthinstfalse \beamer@htfonlyauthorfalse \beamer@htfonlyinstitutefalse
+ \beamer@htfinstitutepthsfalse \beamer@htfauthorpthsfalse \beamer@htfauthinstfalse}
+\newcommand{\htfcleardate}{%
+ \beamer@htfnodatefalse \beamer@htfshortdatefalse \beamer@htflongdatefalse}
+\newcommand{\htfclearframenrs}{%
+ \beamer@htfnoframenrsfalse \beamer@htfcounterframenrsfalse \beamer@htffractionframenrsfalse
+ \beamer@htfpercentframenrsfalse \beamer@htfshowframenrsfalse}
+\newcommand{\htfclearsep}{%
+ \beamer@htfcolonsepfalse \beamer@htfcommasepfalse \beamer@htfsepspacefalse}
+\newcommand{\htfclearfootline}{%
+ \beamer@htfonecolfootlinefalse \beamer@htftwocolsfootlinefalse \beamer@htfthreecolsfootlinefalse
+ \beamer@htfnofootlinefalse}
+
+% Commands switching the title template
+\newcommand{\htfnotitle}{ \htfcleartitle \beamer@htfnotitletrue}
+\newcommand{\htfshorttitle}{ \htfcleartitle \beamer@htfshorttitletrue}
+\newcommand{\htflongtitle}{ \htfcleartitle \beamer@htflongtitletrue}
+
+% Commands switching the author/institute template
+\newcommand{\htfnoauthinst}{ \htfclearauthinst \beamer@htfnoauthinsttrue}
+\newcommand{\htfonlyauthor}{ \htfclearauthinst \beamer@htfonlyauthortrue}
+\newcommand{\htfonlyinstitute}{ \htfclearauthinst \beamer@htfonlyinstitutetrue}
+\newcommand{\htfinstitutepths}{ \htfclearauthinst \beamer@htfinstitutepthstrue}
+\newcommand{\htfauthorpths}{ \htfclearauthinst \beamer@htfauthorpthstrue}
+\newcommand{\htfauthinst}{ \htfclearauthinst \beamer@htfauthinsttrue}
+
+% Commands switching the date template
+\newcommand{\htfnodate}{ \htfcleardate \beamer@htfnodatetrue}
+\newcommand{\htfshortdate}{ \htfcleardate \beamer@htfshortdatetrue}
+\newcommand{\htflongdate}{ \htfcleardate \beamer@htflongdatetrue}
+
+% Commands switching the frame numbering template
+\newcommand{\htfnoframenrs}{ \htfclearframenrs \beamer@htfnoframenrstrue}
+\newcommand{\htfcounterframenrs}{ \htfclearframenrs \beamer@htfcounterframenrstrue \beamer@htfshowframenrstrue}
+\newcommand{\htffractionframenrs}{ \htfclearframenrs \beamer@htffractionframenrstrue \beamer@htfshowframenrstrue}
+\newcommand{\htfpercentframenrs}{ \htfclearframenrs \beamer@htfpercentframenrstrue \beamer@htfshowframenrstrue}
+
+% Commands switching the author/title separator template
+\newcommand{\htfcolonsep}{ \htfclearsep \beamer@htfcolonseptrue}
+\newcommand{\htfcommasep}{ \htfclearsep \beamer@htfcommaseptrue}
+\newcommand{\htfsepspace}{ \htfclearsep \beamer@htfsepspacetrue}
+
+
+
+% HACKING COMMAND -------------------------------------------------------------------------------------------------------------------------------
+
+\newcommand{\hackthefootline}{%
+ \htfprintmessage
+
+ % Selects footline layout
+ \ifbeamer@htfonecolfootline \setbeamertemplate{footline}[htf-onecol]
+ \else \ifbeamer@htftwocolsfootline \setbeamertemplate{footline}[htf-twocols]
+ \else \ifbeamer@htfthreecolsfootline \setbeamertemplate{footline}[htf-threecols]
+ \else \setbeamertemplate{footline}[htf-none]
+ \fi \fi \fi
+
+ % Title
+ \ifbeamer@htfnotitle \setbeamertemplate{htf-title}[none] \fi
+ \ifbeamer@htfshorttitle \setbeamertemplate{htf-title}[short] \fi
+ \ifbeamer@htflongtitle \setbeamertemplate{htf-title}[long] \fi
+
+ % Author/Institute
+ \ifbeamer@htfnoauthinst \setbeamertemplate{htf-authinst}[none] \htfchecknone \fi
+ \ifbeamer@htfonlyauthor \setbeamertemplate{htf-authinst}[onlyauth] \htfcheckauthor \fi
+ \ifbeamer@htfonlyinstitute \setbeamertemplate{htf-authinst}[onlyinst] \htfcheckinstit \fi
+ \ifbeamer@htfinstitutepths \setbeamertemplate{htf-authinst}[instpths] \htfcheckboth \fi
+ \ifbeamer@htfauthorpths \setbeamertemplate{htf-authinst}[authpths] \htfcheckboth \fi
+ \ifbeamer@htfauthinst \setbeamertemplate{htf-authinst}[bothcmma] \htfcheckboth \fi
+
+ % Date
+ \ifbeamer@htfnodate \setbeamertemplate{htf-date}[none] \fi
+ \ifbeamer@htfshortdate \setbeamertemplate{htf-date}[short] \fi
+ \ifbeamer@htflongdate \setbeamertemplate{htf-date}[long] \fi
+
+ % Frame numbers
+ \ifbeamer@htfnoframenrs \setbeamertemplate{htf-framenrs}[none] \fi
+ \ifbeamer@htfcounterframenrs \setbeamertemplate{htf-framenrs}[counter] \fi
+ \ifbeamer@htffractionframenrs \setbeamertemplate{htf-framenrs}[fraction] \fi
+ \ifbeamer@htfpercentframenrs \ifbeamer@htffunnystuff \setbeamertemplate{htf-framenrs}[percent]
+ \else \PackageError{hackthefootline}{For using percent frame numbers don't pass the nofun option}{}
+ \fi \fi
+
+ % Author--Title--separators
+ \ifbeamer@htfcolonsep \setbeamertemplate{htf-atsep}[colon] \fi
+ \ifbeamer@htfcommasep \setbeamertemplate{htf-atsep}[comma] \fi
+ \ifbeamer@htfsepspace \setbeamertemplate{htf-atsep}[space] \fi
+}
+
+
+
+% PERFORMS THE "INITIAL HACK" AT BEGINNING A DOCUMENT -------------------------------------------------------------------------------------------
+
+\AtBeginDocument{
+ % Load default settings ...
+ \ifbeamer@htfonecolfootline \htfonecolfootlinedefault
+ \else \ifbeamer@htftwocolsfootline \htftwocolsfootlinedefault
+ \else \ifbeamer@htfthreecolsfootline \htfthreecolsfootlinedefault
+ \else \htfnofootlinedefault
+ \fi \fi \fi
+
+ % ... and perform the hack
+ \hackthefootline}
+
+
+
+% END OF FILE -----------------------------------------------------------------------------------------------------------------------------------
+
+\mode<all>
+\endinput