summaryrefslogtreecommitdiff
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
parentfba37f2abc84c6491ce81bef9e233dd9bfdabfaa (diff)
hackthefootline (5aug17)
git-svn-id: svn://tug.org/texlive/trunk@44959 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r--Master/texmf-dist/doc/latex/hackthefootline/README.md6
-rw-r--r--Master/texmf-dist/doc/latex/hackthefootline/hackthefootline-doc.pdfbin0 -> 72902 bytes
-rw-r--r--Master/texmf-dist/doc/latex/hackthefootline/hackthefootline-doc.tex324
-rw-r--r--Master/texmf-dist/tex/latex/hackthefootline/hackthefootline.sty414
-rwxr-xr-xMaster/tlpkg/bin/tlpkg-ctan-check3
-rw-r--r--Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc1
-rw-r--r--Master/tlpkg/tlpsrc/hackthefootline.tlpsrc0
7 files changed, 747 insertions, 1 deletions
diff --git a/Master/texmf-dist/doc/latex/hackthefootline/README.md b/Master/texmf-dist/doc/latex/hackthefootline/README.md
new file mode 100644
index 00000000000..12a04ec2b32
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/hackthefootline/README.md
@@ -0,0 +1,6 @@
+# hackthefootline
+Version 2017/08/04
+
+Provides arbitrary footline selection for LaTeX beamer's standard themes.
+
+This work is licensed under the LPPL 1.3c or any later version.
diff --git a/Master/texmf-dist/doc/latex/hackthefootline/hackthefootline-doc.pdf b/Master/texmf-dist/doc/latex/hackthefootline/hackthefootline-doc.pdf
new file mode 100644
index 00000000000..7eb6d60c843
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/hackthefootline/hackthefootline-doc.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/hackthefootline/hackthefootline-doc.tex b/Master/texmf-dist/doc/latex/hackthefootline/hackthefootline-doc.tex
new file mode 100644
index 00000000000..2af404db4cf
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/hackthefootline/hackthefootline-doc.tex
@@ -0,0 +1,324 @@
+%% This is file 'hackthefootline-doc.tex', 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 (other themes may also work, of course)
+%%
+%% -------------------------------------------------------------------------------------------
+%%
+%% 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.
+%%
+%% -------------------------------------------------------------------------------------------
+
+% !TeX spellcheck = en_GB
+
+% !TeX document-id = {681db40e-7a84-4428-b4f4-84e230e3ba79}
+% !TeX program=lualatex
+% !TeX TXS-program:compile=txs:///lualatex/[--shell-escape]
+
+
+\documentclass[11pt]{ltxdoc}
+
+\usepackage[charter]{mathdesign}
+\usepackage[no-math]{fontspec}
+\usepackage{polyglossia}
+\setdefaultlanguage{english}
+
+\usepackage{csquotes}
+\usepackage{hologo}
+\usepackage{hyperref}
+\usepackage{minted}
+ \newcommand{\ltxcmd}[1]{\mintinline{LaTeX}{#1}}
+\usepackage[english]{selnolig}
+\usepackage{tikz}
+
+\parindent 0pt
+
+\setmainfont{Noto Serif}
+\setsansfont[Scale=MatchLowercase]{Source Sans Pro}
+\setmonofont[Scale=MatchLowercase]{OCR A Extended}[AutoFakeBold=1.75,AutoFakeSlant=0.225]
+
+\usepackage[left=4.50cm,right=2.75cm,top=3.25cm,bottom=2.75cm,nohead]{geometry}
+
+\hyphenation{}
+
+
+\title{The \texttt{\bfseries hackthefootline} package \\ {\large\url{https://github.com/SFr682k/hackthefootline}}}
+\author{Sebastian Friedl \\ \href{mailto:sfr682k@t-online.de}{\ttfamily sfr682k@t-online.de}}
+\date{2017/08/04}
+
+\hypersetup{pdftitle={The hackthefootline package},pdfauthor={Sebastian Friedl}}
+
+\begin{document}
+ \maketitle
+ \thispagestyle{empty}
+
+ \begin{center} \itshape
+ Dedicated to all the \LaTeX\ beamer users \dots
+
+ \medskip
+ \dots who load two different themes in the same presentation \\ or redefine commands to obtain the desired footline \dots
+
+ \medskip
+ \dots and the other guys just using \mintinline{LaTeX}{\setbeamertemplate{footline}}
+ \end{center}
+
+ \medskip
+ \begin{abstract}
+ \hspace{-1.5em}%
+ Provides arbitrary footline selection for \LaTeX\ beamer's standard themes (and maybe other themes) by \enquote{hacking} it. \\
+ In this content, \enquote{hacking} means to redefine the footline provided by theme with one of the footline templates provided by this package.
+ \end{abstract}
+
+
+ \tableofcontents
+
+ \clearpage
+
+
+
+ \subsection*{Dependencies and other requirements}
+ \addcontentsline{toc}{subsection}{Dependencies and other requirements}
+ \emph{Load the \texttt{hackthefootline} package only in \LaTeX\ beamer documents!} \\
+ The package itself depends on the following other packages:
+
+ \medskip
+ \DescribeMacro{appendixnumber-}\DescribeMacro{beamer}
+ The \texttt{appendixnumberbeamer} package implements a simple solution for appendix frames not being calculated into the total number of frames
+
+ \medskip
+ \DescribeMacro{etoolbox}
+ Provides access on \hologo{eTeX} primitives
+
+ \medskip
+ \DescribeMacro{calc}
+ Required for basic calculations
+
+ \medskip
+ \DescribeMacro{numprint}
+ Prints out numbers, counters and lengths
+
+ \bigskip
+ The dependencies can be removed completely by passing some options to the package. See section \ref{packageoptions} for further details.
+
+
+ \subsection*{License}
+ \begin{small}
+ \addcontentsline{toc}{subsection}{License}
+ \textcopyright\ 2017 Sebastian Friedl
+
+ \smallskip
+ 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.
+
+ \smallskip
+ The latest version of this license is available at \url{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.
+
+ \smallskip
+ This work has the LPPL maintenace status \enquote*{maintained}. The current maintainer of this work is Sebastian Friedl. \\
+ This work consists of the following files:
+ \begin{itemize} \itemsep 0pt
+ \item \texttt{hackthefootline.sty} and
+ \item \texttt{hackthefootline-doc.tex}
+ \end{itemize}
+ \end{small}
+
+
+ \subsection*{Acknowledgement}
+ \addcontentsline{toc}{subsection}{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.
+
+
+ \subsection*{Notice: Behaviour inside the presentation's appendix}
+ \addcontentsline{toc}{subsection}{Notice: Behaviour inside the presentation's appendix}
+ By default, this package \emph{does not count appendix frames} into the total number of frames and resets the counter for frame numbers to 1 as soon as the \ltxcmd{\appendix} command is used. \\
+ Also, frame numbers won't be displayed on frames inside the appendix.
+
+ \medskip
+ This behaviour can be avoided by passing the \texttt{countappendixframes} option to the package.
+
+
+
+ \clearpage
+
+
+ % DOCUMENTATION PART ------------------------------------------------------------------------------------------------------------------------
+
+ \section{Using the package}
+ The \mintinline{LaTeX}{\usepackage[<Options>]{hackthefootline}} command loads the package\footnote{To do so, the package has to be installed in a way \LaTeX\ is able to find it}. The complete list of options can be found in section \ref{packageoptions}.
+
+ \medskip
+ At least, you have to pass the \emph{footline's number of columns} as an option to the package \textit{(available: \texttt{onecol}, \texttt{twocols} or \texttt{threecols})}. If you don't do so, the footline gets removed.
+
+
+ \section{Package options} \label{packageoptions}
+ The \texttt{hackthefootline} package provides the following options:
+
+ \medskip
+ \DescribeMacro{onecol}
+ The \enquote{initial footline hack} produces a one--column footline
+
+ \medskip
+ \DescribeMacro{twocols}
+ The \enquote{initial footline hack} produces a two--column footline
+
+ \medskip
+ \DescribeMacro{threecols}
+ The \enquote{initial footline hack} produces a three--column footline
+
+ \medskip
+ \DescribeMacro{countappendix-}\DescribeMacro{frames}
+ If the \texttt{countappendixframes} option is passed to the package, appendix frames are counted into the total number of frames. \\
+ \textit{Removes following dependencies: \texttt{appendixnumberbeamer}, \texttt{etoolbox}}
+
+ \medskip
+ \DescribeMacro{nofun}
+ Doesn't support frame numbers being shown as \enquote{percent of presentation} \\
+ \textit{Removes following dependencies: \texttt{calc}, \texttt{numprint}}
+
+
+ \section{Default configurations}
+ \subsection*{One--column footline}
+ \begin{tikzpicture}
+ \draw (-.5\textwidth,1.25ex) rectangle (.5\textwidth,-1.25ex);
+ \node[right] at (-.5\textwidth,0) {Short author, short institute:~~~~Short title};
+ \node[left] at ( .5\textwidth,0) {1 / 1};
+ \end{tikzpicture}
+
+ \subsection*{Two--column footline}
+ \begin{tikzpicture}
+ \draw (-.5\textwidth,1.25ex) rectangle (0,-1.25ex);
+ \draw ( .5\textwidth,1.25ex) rectangle (0,-1.25ex);
+ \node[left] at (0,0) {Short author};
+ \node[right] at (0,0) {Short title};
+ \end{tikzpicture}
+
+ \subsection*{Three-column footline}
+ \begin{tikzpicture}
+ \draw (-.5000\textwidth,1.25ex) rectangle (-.1667\textwidth,-1.25ex);
+ \draw (-.1667\textwidth,1.25ex) rectangle ( .1667\textwidth,-1.25ex);
+ \draw ( .1667\textwidth,1.25ex) rectangle ( .5000\textwidth,-1.25ex);
+ \node[right] at (-.5\textwidth,0) {Short auth. (short inst.)};
+ \node at (0, 0) {Short title};
+ \node[left] at ( .5\textwidth,0) {Short date~~~~1/1};
+ \end{tikzpicture}
+
+
+ \section{Defined templates}
+ The \texttt{hackthefootline} package defines templates with a variety of styles to provide easy personalisation. All defined templates are listed in table \ref{deftemplates}. Switching between different styles of a template is described in section \ref{switchingtemplates}.
+
+ \begin{table} \centering\renewcommand{\arraystretch}{1.25}
+ \begin{tabular}{lll}
+ Template & Style & Switching command \\ \hline\hline
+ \textbf{Title} & \textit{Short title} & \ltxcmd{\htfshorttitle} \\
+ & \textit{Long presentation title} & \ltxcmd{\htflongtitle} \\
+ & \texttt{no title} & \ltxcmd{\htfnotitle} \\ \hline
+ \textbf{Author/Inst.} & \textit{Short author} & \ltxcmd{\htfonlyauthor} \\
+ & \textit{Short institute} & \ltxcmd{\htfonlyinstitute} \\
+ & \textit{Short author (short inst.)} & \ltxcmd{\htfinstitutepths} \\
+ & \textit{Short inst. (short author)} & \ltxcmd{\htfauthorpths} \\
+ & \textit{Short author, short inst.} & \ltxcmd{\htfauthinst} \\
+ & \texttt{no author/inst.} & \ltxcmd{\htfnoauthinst} \\ \hline
+ \textbf{Date} & \textit{Short date} & \ltxcmd{\htfshortdate} \\
+ & \textit{Long date} & \ltxcmd{\htflongdate} \\
+ & \texttt{no date} & \ltxcmd{\htfnodate} \\ \hline
+ \textbf{Frame nr.} & \textit{1} & \ltxcmd{\htfcounterframenrs} \\
+ & \textit{1 / 5} & \ltxcmd{\htffractionframenrs} \\
+ & \textit{42\,\%} & \ltxcmd{\htfpercentframenrs} \\
+ & \texttt{no frame numbers} & \ltxcmd{\htfnoframenrs} \\ \hline
+ \textbf{Separators:} & \textit{Author: Title} & \ltxcmd{\htfcolonsep} \\
+ & \textit{Author, Title} & \ltxcmd{\htfcommasep} \\
+ & \textit{Author~~~~Title} & \ltxcmd{\htfsepspace}
+ \end{tabular}
+
+ \caption{Defined templates and styles}
+ \label{deftemplates}
+ \end{table}
+
+ \section{Switching styles} \label{switchingtemplates}
+ The styles of the templates at the initial hack are selected depending on the footline's default settings. \\
+ You are able to switch styles inside the \texttt{document} environment by \dots
+ \begin{enumerate}
+ \item changing the current settings using the commands listed in table~\ref{deftemplates} \textit{\textbf{and}}
+ %
+ \item applying the settings with the \ltxcmd{\hackthefootline} command. \par
+ \textbf{Your changes to the footline's settings only apply when executing this command.}
+ \end{enumerate}
+
+ \textit{Example:} \vspace{-.75em}
+ \begin{minted}[gobble=2,tabsize=4]{LaTeX}
+ \htflongdate % Changes current settings ...
+ \htfauthinst
+ \hackthefootline % ... and applies the changes
+ \end{minted}
+
+ \bigskip
+ If a template is not shown in the current configuration (e.~g. the frame number in the two--column footline), just switch the style:
+
+ \medskip
+ \begin{tikzpicture}
+ \draw (-.5\textwidth,1.25ex) rectangle (0,-1.25ex);
+ \draw ( .5\textwidth,1.25ex) rectangle (0,-1.25ex);
+ \node[left] at (0,0) {Short author};
+ \node[right] at (0,0) {Short title};
+ \end{tikzpicture}
+ \vspace{-1.5em}
+ \begin{minted}[gobble=2,tabsize=4]{LaTeX}
+ \htfcounterframenrs
+ \hackthefootline
+ \end{minted}
+ \begin{tikzpicture}
+ \draw (-.5\textwidth,1.25ex) rectangle (0,-1.25ex);
+ \draw ( .5\textwidth,1.25ex) rectangle (0,-1.25ex);
+ \node[left] at (0, 0) {Short author};
+ \node[right] at (0, 0) {Short title};
+ \node[left] at ( .5\textwidth,0) {1};
+ \end{tikzpicture}
+
+
+ \bigskip\bigskip
+ Also, a template shown in the current configuration can be \enquote{removed} by switching the style:
+
+ \medskip
+ \begin{tikzpicture}
+ \draw (-.5\textwidth,1.25ex) rectangle (0,-1.25ex);
+ \draw ( .5\textwidth,1.25ex) rectangle (0,-1.25ex);
+ \node[left] at (0, 0) {Short author};
+ \node[right] at (0, 0) {Short title};
+ \node[left] at ( .5\textwidth,0) {1};
+ \end{tikzpicture}
+ \vspace{-1.5em}
+ \begin{minted}[gobble=2,tabsize=4]{LaTeX}
+ \htfnoauthinst
+ \hackthefootline
+ \end{minted}
+ \begin{tikzpicture}
+ \draw (-.5\textwidth,1.25ex) rectangle (0,-1.25ex);
+ \draw ( .5\textwidth,1.25ex) rectangle (0,-1.25ex);
+ \node[right] at (0, 0) {Short title};
+ \node[left] at ( .5\textwidth,0) {1};
+ \end{tikzpicture}
+
+ \vfill
+ \thispagestyle{empty}
+ \listoftables
+\end{document}
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
diff --git a/Master/tlpkg/bin/tlpkg-ctan-check b/Master/tlpkg/bin/tlpkg-ctan-check
index c25cf132fdb..ec314d77217 100755
--- a/Master/tlpkg/bin/tlpkg-ctan-check
+++ b/Master/tlpkg/bin/tlpkg-ctan-check
@@ -309,7 +309,8 @@ my @TLP_working = qw(
grid grid-system gridset grotesq grundgesetze
gsemthesis gtl gtrlib-largetrees gtrcrd
gu guitar guitarchordschemes guitlogo gzt
- h2020proposal hacm halloweenmath handout hands hang hanging hanoi
+ h2020proposal hackthefootline hacm halloweenmath
+ handout hands hang hanging hanoi
happy4th har2nat hardwrap harmony harnon-cv harpoon
harvard harveyballs harvmac hatching hausarbeit-jura havannah
hc he-she hep hepnames
diff --git a/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc b/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc
index 69e9584b5d6..ab5495e880b 100644
--- a/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc
+++ b/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc
@@ -496,6 +496,7 @@ depend grid-system
depend gridset
depend guitlogo
depend halloweenmath
+depend hackthefootline
depend handout
depend hang
depend hanging
diff --git a/Master/tlpkg/tlpsrc/hackthefootline.tlpsrc b/Master/tlpkg/tlpsrc/hackthefootline.tlpsrc
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/Master/tlpkg/tlpsrc/hackthefootline.tlpsrc