diff options
author | Karl Berry <karl@freefriends.org> | 2017-08-05 20:55:42 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2017-08-05 20:55:42 +0000 |
commit | 180ddd3112dacd2d1cd160d1ccdd872050f0e635 (patch) | |
tree | 76b2db66582e174af34df0da09e90a455fb602a0 | |
parent | fba37f2abc84c6491ce81bef9e233dd9bfdabfaa (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.md | 6 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/hackthefootline/hackthefootline-doc.pdf | bin | 0 -> 72902 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/hackthefootline/hackthefootline-doc.tex | 324 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/hackthefootline/hackthefootline.sty | 414 | ||||
-rwxr-xr-x | Master/tlpkg/bin/tlpkg-ctan-check | 3 | ||||
-rw-r--r-- | Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc | 1 | ||||
-rw-r--r-- | Master/tlpkg/tlpsrc/hackthefootline.tlpsrc | 0 |
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 Binary files differnew file mode 100644 index 00000000000..7eb6d60c843 --- /dev/null +++ b/Master/texmf-dist/doc/latex/hackthefootline/hackthefootline-doc.pdf 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 |