diff options
-rw-r--r-- | Master/texmf-dist/doc/latex/hackthefootline/README.md | 15 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/hackthefootline/doc/hackthefootline-doc.pdf | bin | 0 -> 165479 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/hackthefootline/doc/hackthefootline-doc.tex | 435 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/hackthefootline/doc/hackthefootline-examples.pdf | bin | 0 -> 86505 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/hackthefootline/doc/hackthefootline-examples.tex | 101 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/hackthefootline/hackthefootline-doc.pdf | bin | 72902 -> 0 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 | 388 |
8 files changed, 709 insertions, 554 deletions
diff --git a/Master/texmf-dist/doc/latex/hackthefootline/README.md b/Master/texmf-dist/doc/latex/hackthefootline/README.md index 12a04ec2b32..5ca0a825fcc 100644 --- a/Master/texmf-dist/doc/latex/hackthefootline/README.md +++ b/Master/texmf-dist/doc/latex/hackthefootline/README.md @@ -1,6 +1,17 @@ # hackthefootline -Version 2017/08/04 +## Arbitrary footline selection for LaTeX beamer's standard themes. -Provides arbitrary footline selection for LaTeX beamer's standard themes. +Some `beamer` themes provide footlines -- and some do not. +Now, if one wants to have a footline, he is restricted to the (outer) themes providing them or loads multiple themes. On top of that, these provided footlines are only configurable by redefining them as a whole, which is quite uncomfortable and yields many lines of additional code. +`hackthefootline` is a package taking over, defining and redefining different footlines, so they can be configured using key-value syntax. Also, it is possible (but *not* recommended) to switch between different footline types during a presentation. + + + +### Dependencies +`hackthefootline` depends on the `pgfkeys` package and -- obviously -- on the `beamer` class. + +Additional sophisticated features included also require `appendixnumberbeamer`, `etoolbox`, `calc` and `numprint`, but these four dependencies can be resolved by passing some options to the `hackthefootline` package. + +### License This work is licensed under the LPPL 1.3c or any later version. diff --git a/Master/texmf-dist/doc/latex/hackthefootline/doc/hackthefootline-doc.pdf b/Master/texmf-dist/doc/latex/hackthefootline/doc/hackthefootline-doc.pdf Binary files differnew file mode 100644 index 00000000000..6fe185b639a --- /dev/null +++ b/Master/texmf-dist/doc/latex/hackthefootline/doc/hackthefootline-doc.pdf diff --git a/Master/texmf-dist/doc/latex/hackthefootline/doc/hackthefootline-doc.tex b/Master/texmf-dist/doc/latex/hackthefootline/doc/hackthefootline-doc.tex new file mode 100644 index 00000000000..14f5ed168f5 --- /dev/null +++ b/Master/texmf-dist/doc/latex/hackthefootline/doc/hackthefootline-doc.tex @@ -0,0 +1,435 @@ +%% This is file 'hackthefootline-doc.tex', Version 2018-01-16 +%% 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, hackthefootline-examples.tex and +%% hackthefootline-doc.tex +%% +%% ------------------------------------------------------------------------------------------- +%% +%% The hackthefootline package is a tool providing arbitrary footline selection and +%% configuration 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[erewhon]{newtxmath} +\usepackage[no-math]{fontspec} +\usepackage{polyglossia} +\setdefaultlanguage{english} + +\usepackage{csquotes} +\usepackage{hologo} +\usepackage[pdfborder={0 0 0}, unicode]{hyperref} +\usepackage[english]{selnolig} +\usepackage{tikz} + +\newcommand{\DescribeOption}[3]{ + \DescribeMacro{#1} + \begin{minipage}[t]{\textwidth} + \textit{\textbf{#2}}\dotfill~\par + \begingroup + \vspace{0.5em}#3\par + \endgroup + \end{minipage}% + \bigskip\medskip% +} + + +\parindent 0pt + +\setmainfont{erewhon} +\setsansfont[Scale=MatchLowercase]{Source Sans Pro} +\setmonofont[Scale=MatchLowercase]{Hack} + +\usepackage[left=4.50cm,right=2.75cm,top=3.25cm,bottom=2.75cm,nohead]{geometry} + +\hyphenation{coun-ted} +\MakeShortVerb{"} + + +\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{2018/01/16} + +\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 "\setbeamertemplate" + \end{center} + + \medskip + \begin{abstract} + \noindent% + \textbf{Arbitrary footline selection and configuration for \LaTeX\ \texttt{beamer}'s standard themes.} + "hackthefootline" is a package taking over, defining and redefining different footlines, so they can be configured using key-value syntax. + \end{abstract} + + + \tableofcontents + + \clearpage + + + + \subsection*{Dependencies and other requirements} + \addcontentsline{toc}{subsection}{Dependencies and other requirements} + % + \DescribeMacro{beamer} + Since "hackthefootline" is designed to modify "beamer"'s footlines, it is incompatible to any other document class. Therefore, load this package only in "beamer" documents! + + \medskip + \DescribeMacro{pgfkeys} + "hackthefootline" heavily depends on the "pgfkeys" package for handling the whole key-value stuff. + + \bigskip + Also, additional sophisticated features require the following packages: + + \medskip + \DescribeMacro{appendixnumber-}\DescribeMacro{beamer} + The "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 + However, the four latter dependencies can be removed by using some package options. See section \ref{behavioropts} for further details. + + + \subsection*{License} + \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 "hackthefootline.sty" + \item "hackthefootline-examples.tex" and + \item "hackthefootline-doc.tex" + \end{itemize} + + + \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: Behavior inside the presentation's appendix} + \addcontentsline{toc}{subsection}{Notice: Behavior 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 "\appendix" command is used. Also, frame numbers won't be displayed on footlines inside the appendix. + + \medskip + This behavior can be suppressed by passing the \texttt{countappendixframes} option. + + + + \clearpage + + + + + % DOCUMENTATION PART ------------------------------------------------------------------------------------------------------------------------ + + \section{Using the package} + The "\usepackage[<Options>]{hackthefootline}" command loads the package\footnote{To do so, the package has to be installed in a location where \LaTeX\ is able to find it}. A list of all available options can be found in section \ref{packageoptions}. + + \medskip + \textbf{Important note:} You \emph{have} to pass the \emph{footline's number of columns} as an option to the package (available: "onecol", "twocols" or "threecols"). If you don't do so, the footline gets removed completely. \\ + See section \ref{examples-setup} for some examples. + + + + \section{Package options} \label{packageoptions} + \subsection{Options influencing the footline's configuration} + These options determine the number of columns being used for the footline. \\ + You \emph{have} to pass one of these options when loading "hackthefootline"; otherwise the footline will be removed completely. + + \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 + + \subsection{Options influencing the package's behavior} \label{behavioropts} + These options can be passed to disable additional features and remove dependencies on other packages. + + \medskip + \DescribeMacro{countappendix-}\DescribeMacro{frames} + If the "countappendixframes" option is passed to the package, appendix frames are counted into the total number of frames. \\ + \textit{Removes the following dependencies:} "appendixnumberbeamer", "etoolbox" + + \medskip + \DescribeMacro{nofun} + Doesn't support frame numbers being shown as \enquote{percent of presentation} \\ + \textit{Removes the following dependencies:} "calc", "numprint" + + + + \section{Configuring the footline} + The internal mechanisms of "hackthefootline" are using templates for displaying the provided information. + Each template is available in different styles, which can be switched using the provided key value syntax: + + \medskip + \DescribeMacro{\htfconfig} + Use "\htfconfig{key1=value1, key2=value2, …}" to modify the current configuration of the footline. Changes apply instantly. \\ + See section \ref{examples-switchtemplates} for examples. + + \bigskip + All available keys and values are listed below being depicted as follows: + + \medskip + \DescribeOption{key}{possible values}{Description of the values' effects} + + \medskip + \textbf{Annotations:} + \begin{itemize} + \item + The default values of the keys depend on the number of columns chosen when loading the package. See section \ref{defaultconfig} for further details. + \item + \textit{Templates not visible} in the default configuration have been hidden by setting the value of the according key to "none". Apply another value to this key and the template will show up. \\ + \textit{Templates visible} in the default configuration can be hidden by setting the value of the according key to "none" (there's only one exception: "atsep"). \\ + See section \ref{examples-switchtemplates} for examples. + \end{itemize} + + \bigskip + \DescribeOption{cols}{one, two, three, none}{% + The number of colums used for the footline: + \begin{description}\itemsep0pt + \item[one] + Use a footline consisting of a single column + \item[two] + Use a footline consisting of two columns + \item[three] + Use a footline consisting of three columns + \item[none] + Remove the footline completely + \end{description} + This key is provided although it is \emph{not} recommended to change its value within a document. + When initializing "hackthefootline" using a column option and switching to the "none" style, there will be a whitespace \enquote{reserved} for the footline left. \\ + The other way round, when initializing "hackthefootline" without a column option and switching to a footline, the footline will be cut off at half of its height. + } + + \DescribeOption{title}{short, long, none}{% + Sets the title type displayed in the footline: + \begin{description}\itemsep0pt + \item[short] + Show the short title given in the square braces of the \texttt{\textbackslash title} command. \\ + When no short title is given, the long title will be used. + \item[long] + Show the long title given in the curly braces of the \texttt{\textbackslash title} command. + \item[none] + Don't show any title inside the footline + \end{description}} + + \DescribeOption{authinst}{onlyauthor, onlyinst, instpths, authpths, both, none}{% + Influences the way author and institute are displayed: + \begin{description}\itemsep0pt + \item[onlyauthor] + Show only the author's name + \item[onlyinst] + Show only the institute's name + \item[instpths] + Show both, author and institute, but put the institute into parentheses + \item[authpths] + Show both, author and institute, but put the author into parentheses + \item[both] + Show both and separate them using a comma + \item[none] + Show neither author, nor institute + \end{description} + All templates use the values specified for short author / short institute. + } + + \DescribeOption{date}{short, long, none}{% + The date displayed in the footline: + \begin{description}\itemsep0pt + \item[short] + Show the short date + \item[long] + Show the long date + \item[none] + Do not show any date + \end{description}} + + \DescribeOption{framenrs}{counter, fraction, percent, none}{% + Controls the type of frame number shown in the footline: + \begin{description}\itemsep0pt + \item[counter] + Only show the number of the current frame + \item[fraction] + Show the number of the current frame as well as the total number of frames + \item[percent] + Display the current progress of the presentation displayed as a percent value \\ + When setting this value, make sure that you didn't pass the "nofun" option when loading the package, otherwise an error message will be thrown. + \item[none] + Do not show frame numbers + \end{description}} + + \DescribeOption{atsep}{colon, comma, space}{% + Sets the character used to separate author and title when using the "onecol" footline: + \begin{description}\itemsep0pt + \item[colon] + Use a colon as separator + \item[comma] + Use a comma as separator + \item[space] + Use a space as separator + \end{description}} + + + + \section{Default configurations} \label{defaultconfig}% TODO: Real pictures + Depending on the selected number of columns, the default configuration of the footlines is as follows: + + \subsection*{One--column footline} + "\htfconfig{%" \\ + " title=short, authinst=both," \\ + " date=none, framenrs=fraction, atsep=colon}" \\[\smallskipamount] + \includegraphics[page=1,width=\textwidth, trim=0 0 0 15, clip]{hackthefootline-examples} + + \subsection*{Two--column footline} + "\htfconfig{%" \\ + " title=short, authinst=onlyauthor," \\ + " date=none, framenrs=none}" \\[\smallskipamount] + \includegraphics[page=2,width=\textwidth, trim=0 0 0 15, clip]{hackthefootline-examples} + + \subsection*{Three-column footline} + "\htfconfig{%" \\ + " title=short, authinst=instpths," \\ + " date=short, framenrs=fraction}" \\[\smallskipamount] + \includegraphics[page=3,width=\textwidth, trim=0 0 0 15, clip]{hackthefootline-examples} + + + + % TODO: rewrite, more examples from "real" beamer documents + \section{Examples} + \subsection{Setting up \texttt{hackthefootline}}\label{examples-setup} + \paragraph{Example 1:} + "\usepackage[onecol]{hackthefootline}" \\ + \textit{Effect:} A one-column footline \\ + \includegraphics[page=1, width=\textwidth, trim=0 0 0 15, clip]{hackthefootline-examples} + + + \paragraph{Example 2:} + "\usepackage[twocols]{hackthefootline}" \\ + \textit{Effect:} A two-column footline \\ + \includegraphics[page=2, width=\textwidth, trim=0 0 0 15, clip]{hackthefootline-examples} + + \paragraph{Example 3:} + "\usepackage[threecols]{hackthefootline}" \\ + \textit{Effect:} A three-column footline \\ + \includegraphics[page=3, width=\textwidth, trim=0 0 0 15, clip]{hackthefootline-examples} + + \paragraph{Example 4:} + "\usepackage{hackthefootline}" \\ + \textit{Effect:} The footline gets removed + + + \subsection{Switching templates}\label{examples-switchtemplates} + This section assumes, that the "\usepackage[twocols]{hackthefootline}" command was used to load the "hackthefootline" package. \\[\medskipamount] + The preamble contains the following commands for setting the information about title, author, institute and date: \\[\smallskipamount] + "\title[Short Introduction]{%" \\ + " A short introduction on \texttt{hackthefootline}'s facilities}" \\ + "\author[S. Friedl]{Sebastian Friedl}" \\ + "\institute[Some Institute]{Some Institute far, far away}" \\ + "\date[2018/01/15]{January 15, 2018}" + + \medskip + We will start with step 1 and continue further on, each step is changing the result of the last one. + + \paragraph{Initial style:}~ \\ + \includegraphics[page=4, width=\textwidth, trim=0 0 0 15, clip]{hackthefootline-examples} + + \paragraph{Step 1:} Show fraction frame numbers \\ + \textit{Command:} "\htfconfig{framenrs=fraction}" \\ + \textit{Effect:} \\ + \includegraphics[page=5, width=\textwidth, trim=0 0 0 15, clip]{hackthefootline-examples} + + \paragraph{Step 2:} Show the short version of the date \\ + \textit{Command:} "\htfconfig{date=short}" \\ + \textit{Effect:} \\ + \includegraphics[page=6, width=\textwidth, trim=0 0 0 15, clip]{hackthefootline-examples} + + \paragraph{Step 3:} In addition to the author, show the insitute in parentheses \\ + \textit{Command:} "\htfconfig{authinst=instpths}" \\ + \textit{Effect:} \\ + \includegraphics[page=7, width=\textwidth, trim=0 0 0 15, clip]{hackthefootline-examples} + + \paragraph{Step 4:} Show the long, full title \\ + \textit{Command:} "\htfconfig{title=long}" \\ + \textit{Effect:} \\ + \includegraphics[page=8, width=\textwidth, trim=0 0 0 15, clip]{hackthefootline-examples} + + \paragraph{Step 5:} The right column is too full now. Remove the frame numbers \\ + \textit{Command:} "\htfconfig{framenrs=none}" \\ + \textit{Effect:} \\ + \includegraphics[page=9, width=\textwidth, trim=0 0 0 15, clip]{hackthefootline-examples} + + \paragraph{Step 6:} Switch to a one-column footline and remove the date \\ + \textit{Command:} "\htfconfig{cols=one, date=none}" \\ + \textit{Effect:} \\ + \includegraphics[page=10, width=\textwidth, trim=0 0 0 15, clip]{hackthefootline-examples} + + \paragraph{Step 7:} Remove the footline \\ + \textit{Command:} "\htfconfig{cols=none}" \\ + \textit{Effect:} No footline will be shown (but a space above the frame's bottom …) +\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/doc/latex/hackthefootline/doc/hackthefootline-examples.pdf b/Master/texmf-dist/doc/latex/hackthefootline/doc/hackthefootline-examples.pdf Binary files differnew file mode 100644 index 00000000000..178db6caf8f --- /dev/null +++ b/Master/texmf-dist/doc/latex/hackthefootline/doc/hackthefootline-examples.pdf diff --git a/Master/texmf-dist/doc/latex/hackthefootline/doc/hackthefootline-examples.tex b/Master/texmf-dist/doc/latex/hackthefootline/doc/hackthefootline-examples.tex new file mode 100644 index 00000000000..6536301c1bb --- /dev/null +++ b/Master/texmf-dist/doc/latex/hackthefootline/doc/hackthefootline-examples.tex @@ -0,0 +1,101 @@ +%% This is file 'hackthefootline-examples.tex', Version 2018-01-16 +%% 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, hackthefootline-examples.tex and +%% hackthefootline-doc.tex +%% +%% ------------------------------------------------------------------------------------------- +%% +%% The hackthefootline package is a tool providing arbitrary footline selection and +%% configuration 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. +%% +%% ------------------------------------------------------------------------------------------- + + +\documentclass[12pt]{beamer} + +\usepackage[utf8]{inputenc} +\usepackage[tabular]{sourcesanspro} +\usepackage{sourcecodepro} + +\usepackage[twocols]{hackthefootline} +\geometry{paperheight=1cm} + +\usecolortheme{whale} +\usefonttheme[onlysmall]{structurebold} +\setbeamertemplate{headline}{} +\setbeamertemplate{navigation symbols}{} + +\title{Examples for using the hackthefootline package} +\author{Sebastian Friedl <sfr682k@t-online.de>} + +\begin{document} + \title[Short title]{Title} + \author[Short author]{Author} + \institute[Short institute]{Institute} + \date[Short date]{Date} + + \htfconfig{cols=one, title=short, authinst=both, date=none, framenrs=fraction, atsep=colon} + \frame{} + \addtocounter{framenumber}{-1} + + \htfconfig{cols=two, title=short, authinst=onlyauthor, date=none, framenrs=none} + \frame{} + \addtocounter{framenumber}{-1} + + \htfconfig{cols=three, title=short, authinst=instpths, date=short, framenrs=fraction} + \frame{} + \addtocounter{framenumber}{-1} + + + \title[Short Introduction]{A short introduction on \texttt{hackthefootline}'s facilities} + \author[S. Friedl]{Sebastian Friedl} + \institute[Some Institute]{Some Institute far, far away} + \date[2018/01/15]{January 15, 2018} + \htfconfig{cols=two, title=short, authinst=onlyauthor, date=none, framenrs=none} + \frame{} + \addtocounter{framenumber}{-1} + + \htfconfig{framenrs=fraction} + \frame{} + \addtocounter{framenumber}{-1} + + \htfconfig{date=short} + \frame{} + \addtocounter{framenumber}{-1} + + \htfconfig{authinst=instpths} + \frame{} + \addtocounter{framenumber}{-1} + + \htfconfig{title=long} + \frame{} + \addtocounter{framenumber}{-1} + + \htfconfig{framenrs=none} + \frame{} + \addtocounter{framenumber}{-1} + + \htfconfig{cols=one, date=none} + \frame{} +\end{document} diff --git a/Master/texmf-dist/doc/latex/hackthefootline/hackthefootline-doc.pdf b/Master/texmf-dist/doc/latex/hackthefootline/hackthefootline-doc.pdf Binary files differdeleted file mode 100644 index 7eb6d60c843..00000000000 --- a/Master/texmf-dist/doc/latex/hackthefootline/hackthefootline-doc.pdf +++ /dev/null diff --git a/Master/texmf-dist/doc/latex/hackthefootline/hackthefootline-doc.tex b/Master/texmf-dist/doc/latex/hackthefootline/hackthefootline-doc.tex deleted file mode 100644 index 2af404db4cf..00000000000 --- a/Master/texmf-dist/doc/latex/hackthefootline/hackthefootline-doc.tex +++ /dev/null @@ -1,324 +0,0 @@ -%% 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 index 3b59d32441a..0882f0fbf07 100644 --- a/Master/texmf-dist/tex/latex/hackthefootline/hackthefootline.sty +++ b/Master/texmf-dist/tex/latex/hackthefootline/hackthefootline.sty @@ -1,4 +1,4 @@ -%% This is file 'hackthefootline.sty', Version 2017-08-04 +%% This is file 'hackthefootline.sty', Version 2018-01-16 %% Copyright 2017 Sebastian Friedl <sfr682k@t-online.de> %% %% This work may be distributed and/or modified under the conditions of the LaTeX Project @@ -10,12 +10,13 @@ %% 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 +%% This work consists of the files hackthefootline.sty, hackthefootline-examples.tex 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) +%% The hackthefootline package is a tool providing arbitrary footline selection and +%% configuration for LaTeX beamer's standard themes (it may work with other themes as well) %% %% ------------------------------------------------------------------------------------------- %% @@ -31,18 +32,17 @@ %% ------------------------------------------------------------------------------------------- -\ProvidesPackage{hackthefootline}[2017/08/04 hackthefootline: arbitrary footline selection for LaTeX beamer's standard themes] +\ProvidesPackage{hackthefootline}[2018/01/16 hackthefootline: Arbitrary footline selection and configuration for LaTeX beamer's standard themes] \mode<presentation> - +\RequirePackage{pgfkeys} \newcommand{\htfprintmessage}{% \typeout{} \typeout{========================================} - \typeout{FOOTLINE HACK PERFORMED} - \typeout{} - \typeout{hackthefootline package} - \typeout{Version 2017/08/04} + \typeout{THE FOOTLINE HAS BEEN TAKEN OVER} + \typeout{by the hackthefootline package} + \typeout{Version 2018/01/16} \typeout{} \typeout{(c) 2017 Sebastian Friedl} \typeout{Licensed under LPPL 1.3c or later} @@ -51,19 +51,24 @@ -% OPTION AND VARIABLES DECLARATION -------------------------------------------------------------------------------------------------------------- +% PACKAGE OPTIONS AND VARIABLES -- INCLUDES AUXILIARY STUFF ------------------------------------------------------------------------------------- -\newif\ifbeamer@htfonecolfootline -\beamer@htfonecolfootlinefalse -\DeclareOptionBeamer{onecol}{\beamer@htfonecolfootlinetrue} +% Check whether a column package option has been specified +\newif\ifbeamer@htfinitcolsetup +\beamer@htfinitcolsetupfalse -\newif\ifbeamer@htftwocolsfootline -\beamer@htftwocolsfootlinefalse -\DeclareOptionBeamer{twocols}{\beamer@htftwocolsfootlinetrue} - -\newif\ifbeamer@htfthreecolsfootline -\beamer@htfthreecolsfootlinefalse -\DeclareOptionBeamer{threecols}{\beamer@htfthreecolsfootlinetrue} +\DeclareOptionBeamer{onecol}{% + \beamer@htfinitcolsetuptrue% + \htfconfig{title=short, authinst=both, date=none, framenrs=fraction, atsep=colon}% + \AtBeginDocument{\htfconfig{cols=one}}\htfprintmessage} +\DeclareOptionBeamer{twocols}{% + \beamer@htfinitcolsetuptrue% + \htfconfig{title=short, authinst=onlyauthor, date=none, framenrs=none}% + \AtBeginDocument{\htfconfig{cols=two}}\htfprintmessage} +\DeclareOptionBeamer{threecols}{% + \beamer@htfinitcolsetuptrue% + \htfconfig{title=short, authinst=instpths, date=short, framenrs=fraction}% + \AtBeginDocument{\htfconfig{cols=three}}\htfprintmessage} \newif\ifbeamer@htfcountappendixframes \beamer@htfcountappendixframesfalse @@ -74,79 +79,25 @@ \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 +\newcommand{\htfcheckauthor}{\beamer@htfcheckauthtrue\beamer@htfcheckinstfalse} +\newcommand{\htfcheckinstit}{\beamer@htfcheckauthfalse\beamer@htfcheckinsttrue} +\newcommand{\htfcheckboth}{\beamer@htfcheckauthtrue\beamer@htfcheckinsttrue} +\newcommand{\htfchecknone}{\beamer@htfcheckauthfalse\beamer@htfcheckinstfalse} % 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 -} +\newif\ifbeamer@htfnotitle +\newif\ifbeamer@htfshowframenrs -\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 -} +% Auxiliary command creating a warning when using a footline without according package option +\newcommand{\htfcheckforinit}{% + \ifbeamer@htfinitcolsetup\else% + \PackageWarning{hackthefootline}{When using hacked footlines, please specify an according package option.} + \fi} @@ -159,7 +110,7 @@ % Removes frame numbers for appendix slides \apptocmd{\appendix}{% - \beamer@htfshowframenrsfalse + \htfconfig{framenrs=none} }{}{} \fi @@ -178,49 +129,39 @@ -% 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 ------------------------------------------------------------------------------------------------------------------------------------- +% Please **always** use \defbeamertemplate **without asterisk**!! -% TEMPLATES: DATE ------------------------------------------------------------------------------------------------------------------------------- +% Title +\defbeamertemplate{htf-title}{none}{} +\defbeamertemplate{htf-title}{short}{\insertshorttitle} +\defbeamertemplate{htf-title}{long}{\inserttitle} -\defbeamertemplate*{htf-date}{none}{} -\defbeamertemplate*{htf-date}{short}{\insertshortdate} -\defbeamertemplate*{htf-date}{long}{\insertdate} +% 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} +% 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} +% 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}} + \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}{~~~~~~~~~~} +% Author-Title-Seperator +\defbeamertemplate{htf-atsep}{colon}{:~~~~} +\defbeamertemplate{htf-atsep}{comma}{,~} +\defbeamertemplate{htf-atsep}{space}{~~~~~~~~~~} @@ -230,7 +171,7 @@ \defbeamertemplate*{footline}{htf-none}{} % One column -\defbeamertemplate*{footline}{htf-onecol}{% +\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}% @@ -239,8 +180,8 @@ \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 + \ifx\beamer@shorttitle\@empty\beamer@htfinsertsepfalse\fi + \ifbeamer@htfnotitle\beamer@htfinsertsepfalse\fi % \ifbeamer@htfinsertsep\usebeamertemplate{htf-atsep}\fi % @@ -261,7 +202,7 @@ \fi} % Two columns -\defbeamertemplate*{footline}{htf-twocols}{% +\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} @@ -273,7 +214,7 @@ \vskip0pt} % Three columns -\defbeamertemplate*{footline}{htf-threecols}{ +\defbeamertemplate{footline}{htf-threecols}{ \leavevmode% \hbox{% \begin{beamercolorbox}[wd=.333333\paperwidth,ht=2.25ex,dp=1ex,left,leftskip=.3cm]{author in head/foot}% @@ -297,118 +238,109 @@ -% 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} +% PGF KEYS STORING THE CURRENT FOOTLINE CONFIGURATION ------------------------------------------------------------------------------------------- +\pgfkeys{/hackthefootline/cols/.cd, + .is choice, .default=none, + one/.code={\setbeamertemplate{footline}[htf-onecol]}, + two/.code={\setbeamertemplate{footline}[htf-twocols]}, + three/.code={\setbeamertemplate{footline}[htf-threecols]}, + none/.code={% + \htfconfig{framenrs=none}% + \setbeamertemplate{footline}[htf-none]}, +} +\pgfkeys{/hackthefootline/title/.cd, + .is choice, .default=none, + short/.code={\setbeamertemplate{htf-title}[short]\beamer@htfnotitlefalse}, + long/.code={\setbeamertemplate{htf-title}[long]\beamer@htfnotitlefalse}, + none/.code={\setbeamertemplate{htf-title}[none]\beamer@htfnotitletrue}, +} -% HACKING COMMAND ------------------------------------------------------------------------------------------------------------------------------- +\pgfkeys{/hackthefootline/authinst/.cd, + .is choice, .default=none, + onlyauthor/.code={\setbeamertemplate{htf-authinst}[onlyauth]\htfcheckauthor}, + onlyinst/.code={\setbeamertemplate{htf-authinst}[onlyinst]\htfcheckinstit}, + instpths/.code={\setbeamertemplate{htf-authinst}[instpths]\htfcheckboth}, + authpths/.code={\setbeamertemplate{htf-authinst}[authpths]\htfcheckboth}, + both/.code={\setbeamertemplate{htf-authinst}[bothcmma]\htfcheckboth}, + none/.code={\setbeamertemplate{htf-authinst}[none]\htfchecknone}, +} -\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 +\pgfkeys{/hackthefootline/date/.cd, + .is choice, .default=none, + short/.code={\setbeamertemplate{htf-date}[short]}, + long/.code={\setbeamertemplate{htf-date}[long]}, + none/.code={\setbeamertemplate{htf-date}[none]} } +\pgfkeys{/hackthefootline/framenrs/.cd, + .is choice, .default=none, + counter/.code={\setbeamertemplate{htf-framenrs}[counter]\beamer@htfshowframenrstrue}, + fraction/.code={\setbeamertemplate{htf-framenrs}[fraction]\beamer@htfshowframenrstrue}, + percent/.code={% + \ifbeamer@htffunnystuff \setbeamertemplate{htf-framenrs}[percent]% + \else \PackageError{hackthefootline}{Do not pass the nofun option when using percent frame numbers!}{}% + \fi + \beamer@htfshowframenrstrue% + }, + none/.code={\setbeamertemplate{htf-framenrs}[none]\beamer@htfshowframenrsfalse}, +} +\pgfkeys{/hackthefootline/atsep/.cd, + .is choice, .default=colon, + colon/.code={\setbeamertemplate{htf-atsep}[colon]}, + comma/.code={\setbeamertemplate{htf-atsep}[comma]}, + space/.code={\setbeamertemplate{htf-atsep}[space]}, +} -% PERFORMS THE "INITIAL HACK" AT BEGINNING A DOCUMENT ------------------------------------------------------------------------------------------- +% Configruation Command +\newcommand{\htfconfig}[1]{\pgfkeys{/hackthefootline/.cd,#1}} + + + +% FORMER CONFIGURATION COMMANDS (OBSOLETE!!) ---------------------------------------------------------------------------------------------------- + +% These configuration commands have been introduced in the initial release of this package and were implemented very ineffective. +% Since using pgfkeys for switching the templates, the \htfconfig command has been introduced for easier footline configuration. +% All commands defined in this section obsolete now and should be replaced by \htfconfig, since they may be removed soon. + +% Obsolete commands for switching templates +\newcommand{\htfnotitle}{\htfObsoleteCMD\htfconfig{title=none}} +\newcommand{\htfshorttitle}{\htfObsoleteCMD\htfconfig{title=short}} +\newcommand{\htflongtitle}{\htfObsoleteCMD\htfconfig{title=none}} +\newcommand{\htfnoauthinst}{\htfObsoleteCMD\htfconfig{authinst=none}} +\newcommand{\htfonlyauthor}{\htfObsoleteCMD\htfconfig{authinst=onlyauthor}} +\newcommand{\htfonlyinstitute}{\htfObsoleteCMD\htfconfig{authinst=onlyinst}} +\newcommand{\htfinstitutepths}{\htfObsoleteCMD\htfconfig{authinst=instpths}} +\newcommand{\htfauthorpths}{\htfObsoleteCMD\htfconfig{authinst=authpths}} +\newcommand{\htfauthinst}{\htfObsoleteCMD\htfconfig{authinst=both}} +\newcommand{\htfnodate}{\htfObsoleteCMD\htfconfig{date=none}} +\newcommand{\htfshortdate}{\htfObsoleteCMD\htfconfig{date=short}} +\newcommand{\htflongdate}{\htfObsoleteCMD\htfconfig{date=long}} +\newcommand{\htfnoframenrs}{\htfObsoleteCMD\htfconfig{framenrs=none}} +\newcommand{\htfcounterframenrs}{\htfObsoleteCMD\htfconfig{framenrs=counter}} +\newcommand{\htffractionframenrs}{\htfObsoleteCMD\htfconfig{framenrs=fraction}} +\newcommand{\htfpercentframenrs}{\htfObsoleteCMD\htfconfig{framenrs=percent}} +\newcommand{\htfcolonsep}{\htfObsoleteCMD\htfconfig{atsep=colon}} +\newcommand{\htfcommasep}{\htfObsoleteCMD\htfconfig{atsep=comma}} +\newcommand{\htfsepspace}{\htfObsoleteCMD\htfconfig{atsep=space}} + +% This command was used to apply changes, but is useless now. +\newcommand{\hackthefootline}{% + \PackageWarning{hackthefootline}{% + The \protect\hackthefootline command is obsolete and may be removed soon. Consider using \noexpand\htfconfig instead}} -\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} +% A shorthand for printing an "this command is obsolete" warning +\newcommand{\htfObsoleteCMD}{% + \PackageWarning{hackthefootline}{% + The old \noexpand\htf... commands are obsolete and may be removed soon. Consider using \noexpand\htfconfig instead} +} % END OF FILE ----------------------------------------------------------------------------------------------------------------------------------- +\ProcessOptionsBeamer \mode<all> -\endinput +\endinput
\ No newline at end of file |