diff options
Diffstat (limited to 'macros/latex/contrib/beamer-contrib/themes')
105 files changed, 17548 insertions, 659 deletions
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/LICENSE.txt b/macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/LICENSE.txt new file mode 100644 index 0000000000..2244313901 --- /dev/null +++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/LICENSE.txt @@ -0,0 +1,416 @@ +The LaTeX Project Public License +=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- + +LPPL Version 1.3c 2008-05-04 + +Copyright 1999 2002-2008 LaTeX3 Project + Everyone is allowed to distribute verbatim copies of this + license document, but modification of it is not allowed. + + +PREAMBLE +======== + +The LaTeX Project Public License (LPPL) is the primary license under +which the LaTeX kernel and the base LaTeX packages are distributed. + +You may use this license for any work of which you hold the copyright +and which you wish to distribute. This license may be particularly +suitable if your work is TeX-related (such as a LaTeX package), but +it is written in such a way that you can use it even if your work is +unrelated to TeX. + +The section `WHETHER AND HOW TO DISTRIBUTE WORKS UNDER THIS LICENSE', +below, gives instructions, examples, and recommendations for authors +who are considering distributing their works under this license. + +This license gives conditions under which a work may be distributed +and modified, as well as conditions under which modified versions of +that work may be distributed. + +We, the LaTeX3 Project, believe that the conditions below give you +the freedom to make and distribute modified versions of your work +that conform with whatever technical specifications you wish while +maintaining the availability, integrity, and reliability of +that work. If you do not see how to achieve your goal while +meeting these conditions, then read the document `cfgguide.tex' +and `modguide.tex' in the base LaTeX distribution for suggestions. + + +DEFINITIONS +=========== + +In this license document the following terms are used: + + `Work' + Any work being distributed under this License. + + `Derived Work' + Any work that under any applicable law is derived from the Work. + + `Modification' + Any procedure that produces a Derived Work under any applicable + law -- for example, the production of a file containing an + original file associated with the Work or a significant portion of + such a file, either verbatim or with modifications and/or + translated into another language. + + `Modify' + To apply any procedure that produces a Derived Work under any + applicable law. + + `Distribution' + Making copies of the Work available from one person to another, in + whole or in part. Distribution includes (but is not limited to) + making any electronic components of the Work accessible by + file transfer protocols such as FTP or HTTP or by shared file + systems such as Sun's Network File System (NFS). + + `Compiled Work' + A version of the Work that has been processed into a form where it + is directly usable on a computer system. This processing may + include using installation facilities provided by the Work, + transformations of the Work, copying of components of the Work, or + other activities. Note that modification of any installation + facilities provided by the Work constitutes modification of the Work. + + `Current Maintainer' + A person or persons nominated as such within the Work. If there is + no such explicit nomination then it is the `Copyright Holder' under + any applicable law. + + `Base Interpreter' + A program or process that is normally needed for running or + interpreting a part or the whole of the Work. + + A Base Interpreter may depend on external components but these + are not considered part of the Base Interpreter provided that each + external component clearly identifies itself whenever it is used + interactively. Unless explicitly specified when applying the + license to the Work, the only applicable Base Interpreter is a + `LaTeX-Format' or in the case of files belonging to the + `LaTeX-format' a program implementing the `TeX language'. + + + +CONDITIONS ON DISTRIBUTION AND MODIFICATION +=========================================== + +1. Activities other than distribution and/or modification of the Work +are not covered by this license; they are outside its scope. In +particular, the act of running the Work is not restricted and no +requirements are made concerning any offers of support for the Work. + +2. You may distribute a complete, unmodified copy of the Work as you +received it. Distribution of only part of the Work is considered +modification of the Work, and no right to distribute such a Derived +Work may be assumed under the terms of this clause. + +3. You may distribute a Compiled Work that has been generated from a +complete, unmodified copy of the Work as distributed under Clause 2 +above, as long as that Compiled Work is distributed in such a way that +the recipients may install the Compiled Work on their system exactly +as it would have been installed if they generated a Compiled Work +directly from the Work. + +4. If you are the Current Maintainer of the Work, you may, without +restriction, modify the Work, thus creating a Derived Work. You may +also distribute the Derived Work without restriction, including +Compiled Works generated from the Derived Work. Derived Works +distributed in this manner by the Current Maintainer are considered to +be updated versions of the Work. + +5. If you are not the Current Maintainer of the Work, you may modify +your copy of the Work, thus creating a Derived Work based on the Work, +and compile this Derived Work, thus creating a Compiled Work based on +the Derived Work. + +6. If you are not the Current Maintainer of the Work, you may +distribute a Derived Work provided the following conditions are met +for every component of the Work unless that component clearly states +in the copyright notice that it is exempt from that condition. Only +the Current Maintainer is allowed to add such statements of exemption +to a component of the Work. + + a. If a component of this Derived Work can be a direct replacement + for a component of the Work when that component is used with the + Base Interpreter, then, wherever this component of the Work + identifies itself to the user when used interactively with that + Base Interpreter, the replacement component of this Derived Work + clearly and unambiguously identifies itself as a modified version + of this component to the user when used interactively with that + Base Interpreter. + + b. Every component of the Derived Work contains prominent notices + detailing the nature of the changes to that component, or a + prominent reference to another file that is distributed as part + of the Derived Work and that contains a complete and accurate log + of the changes. + + c. No information in the Derived Work implies that any persons, + including (but not limited to) the authors of the original version + of the Work, provide any support, including (but not limited to) + the reporting and handling of errors, to recipients of the + Derived Work unless those persons have stated explicitly that + they do provide such support for the Derived Work. + + d. You distribute at least one of the following with the Derived Work: + + 1. A complete, unmodified copy of the Work; + if your distribution of a modified component is made by + offering access to copy the modified component from a + designated place, then offering equivalent access to copy + the Work from the same or some similar place meets this + condition, even though third parties are not compelled to + copy the Work along with the modified component; + + 2. Information that is sufficient to obtain a complete, + unmodified copy of the Work. + +7. If you are not the Current Maintainer of the Work, you may +distribute a Compiled Work generated from a Derived Work, as long as +the Derived Work is distributed to all recipients of the Compiled +Work, and as long as the conditions of Clause 6, above, are met with +regard to the Derived Work. + +8. The conditions above are not intended to prohibit, and hence do not +apply to, the modification, by any method, of any component so that it +becomes identical to an updated version of that component of the Work as +it is distributed by the Current Maintainer under Clause 4, above. + +9. Distribution of the Work or any Derived Work in an alternative +format, where the Work or that Derived Work (in whole or in part) is +then produced by applying some process to that format, does not relax or +nullify any sections of this license as they pertain to the results of +applying that process. + +10. a. A Derived Work may be distributed under a different license + provided that license itself honors the conditions listed in + Clause 6 above, in regard to the Work, though it does not have + to honor the rest of the conditions in this license. + + b. If a Derived Work is distributed under a different license, that + Derived Work must provide sufficient documentation as part of + itself to allow each recipient of that Derived Work to honor the + restrictions in Clause 6 above, concerning changes from the Work. + +11. This license places no restrictions on works that are unrelated to +the Work, nor does this license place any restrictions on aggregating +such works with the Work by any means. + +12. Nothing in this license is intended to, or may be used to, prevent +complete compliance by all parties with all applicable laws. + + +NO WARRANTY +=========== + +There is no warranty for the Work. Except when otherwise stated in +writing, the Copyright Holder provides the Work `as is', without +warranty of any kind, either expressed or implied, including, but not +limited to, the implied warranties of merchantability and fitness for a +particular purpose. The entire risk as to the quality and performance +of the Work is with you. Should the Work prove defective, you assume +the cost of all necessary servicing, repair, or correction. + +In no event unless required by applicable law or agreed to in writing +will The Copyright Holder, or any author named in the components of the +Work, or any other party who may distribute and/or modify the Work as +permitted above, be liable to you for damages, including any general, +special, incidental or consequential damages arising out of any use of +the Work or out of inability to use the Work (including, but not limited +to, loss of data, data being rendered inaccurate, or losses sustained by +anyone as a result of any failure of the Work to operate with any other +programs), even if the Copyright Holder or said author or said other +party has been advised of the possibility of such damages. + + +MAINTENANCE OF THE WORK +======================= + +The Work has the status `author-maintained' if the Copyright Holder +explicitly and prominently states near the primary copyright notice in +the Work that the Work can only be maintained by the Copyright Holder +or simply that it is `author-maintained'. + +The Work has the status `maintained' if there is a Current Maintainer +who has indicated in the Work that they are willing to receive error +reports for the Work (for example, by supplying a valid e-mail +address). It is not required for the Current Maintainer to acknowledge +or act upon these error reports. + +The Work changes from status `maintained' to `unmaintained' if there +is no Current Maintainer, or the person stated to be Current +Maintainer of the work cannot be reached through the indicated means +of communication for a period of six months, and there are no other +significant signs of active maintenance. + +You can become the Current Maintainer of the Work by agreement with +any existing Current Maintainer to take over this role. + +If the Work is unmaintained, you can become the Current Maintainer of +the Work through the following steps: + + 1. Make a reasonable attempt to trace the Current Maintainer (and + the Copyright Holder, if the two differ) through the means of + an Internet or similar search. + + 2. If this search is successful, then enquire whether the Work + is still maintained. + + a. If it is being maintained, then ask the Current Maintainer + to update their communication data within one month. + + b. If the search is unsuccessful or no action to resume active + maintenance is taken by the Current Maintainer, then announce + within the pertinent community your intention to take over + maintenance. (If the Work is a LaTeX work, this could be + done, for example, by posting to comp.text.tex.) + + 3a. If the Current Maintainer is reachable and agrees to pass + maintenance of the Work to you, then this takes effect + immediately upon announcement. + + b. If the Current Maintainer is not reachable and the Copyright + Holder agrees that maintenance of the Work be passed to you, + then this takes effect immediately upon announcement. + + 4. If you make an `intention announcement' as described in 2b. above + and after three months your intention is challenged neither by + the Current Maintainer nor by the Copyright Holder nor by other + people, then you may arrange for the Work to be changed so as + to name you as the (new) Current Maintainer. + + 5. If the previously unreachable Current Maintainer becomes + reachable once more within three months of a change completed + under the terms of 3b) or 4), then that Current Maintainer must + become or remain the Current Maintainer upon request provided + they then update their communication data within one month. + +A change in the Current Maintainer does not, of itself, alter the fact +that the Work is distributed under the LPPL license. + +If you become the Current Maintainer of the Work, you should +immediately provide, within the Work, a prominent and unambiguous +statement of your status as Current Maintainer. You should also +announce your new status to the same pertinent community as +in 2b) above. + + +WHETHER AND HOW TO DISTRIBUTE WORKS UNDER THIS LICENSE +====================================================== + +This section contains important instructions, examples, and +recommendations for authors who are considering distributing their +works under this license. These authors are addressed as `you' in +this section. + +Choosing This License or Another License +---------------------------------------- + +If for any part of your work you want or need to use *distribution* +conditions that differ significantly from those in this license, then +do not refer to this license anywhere in your work but, instead, +distribute your work under a different license. You may use the text +of this license as a model for your own license, but your license +should not refer to the LPPL or otherwise give the impression that +your work is distributed under the LPPL. + +The document `modguide.tex' in the base LaTeX distribution explains +the motivation behind the conditions of this license. It explains, +for example, why distributing LaTeX under the GNU General Public +License (GPL) was considered inappropriate. Even if your work is +unrelated to LaTeX, the discussion in `modguide.tex' may still be +relevant, and authors intending to distribute their works under any +license are encouraged to read it. + +A Recommendation on Modification Without Distribution +----------------------------------------------------- + +It is wise never to modify a component of the Work, even for your own +personal use, without also meeting the above conditions for +distributing the modified component. While you might intend that such +modifications will never be distributed, often this will happen by +accident -- you may forget that you have modified that component; or +it may not occur to you when allowing others to access the modified +version that you are thus distributing it and violating the conditions +of this license in ways that could have legal implications and, worse, +cause problems for the community. It is therefore usually in your +best interest to keep your copy of the Work identical with the public +one. Many works provide ways to control the behavior of that work +without altering any of its licensed components. + +How to Use This License +----------------------- + +To use this license, place in each of the components of your work both +an explicit copyright notice including your name and the year the work +was authored and/or last substantially modified. Include also a +statement that the distribution and/or modification of that +component is constrained by the conditions in this license. + +Here is an example of such a notice and statement: + + %% pig.dtx + %% Copyright 2005 M. Y. Name + % + % This work may be distributed and/or modified under the + % conditions of the LaTeX Project Public License, either version 1.3 + % of this license or (at your option) any later version. + % The latest version of this license is in + % http://www.latex-project.org/lppl.txt + % and version 1.3 or later is part of all distributions of LaTeX + % version 2005/12/01 or later. + % + % This work has the LPPL maintenance status `maintained'. + % + % The Current Maintainer of this work is M. Y. Name. + % + % This work consists of the files pig.dtx and pig.ins + % and the derived file pig.sty. + +Given such a notice and statement in a file, the conditions +given in this license document would apply, with the `Work' referring +to the three files `pig.dtx', `pig.ins', and `pig.sty' (the last being +generated from `pig.dtx' using `pig.ins'), the `Base Interpreter' +referring to any `LaTeX-Format', and both `Copyright Holder' and +`Current Maintainer' referring to the person `M. Y. Name'. + +If you do not want the Maintenance section of LPPL to apply to your +Work, change `maintained' above into `author-maintained'. +However, we recommend that you use `maintained', as the Maintenance +section was added in order to ensure that your Work remains useful to +the community even when you can no longer maintain and support it +yourself. + +Derived Works That Are Not Replacements +--------------------------------------- + +Several clauses of the LPPL specify means to provide reliability and +stability for the user community. They therefore concern themselves +with the case that a Derived Work is intended to be used as a +(compatible or incompatible) replacement of the original Work. If +this is not the case (e.g., if a few lines of code are reused for a +completely different task), then clauses 6b and 6d shall not apply. + + +Important Recommendations +------------------------- + + Defining What Constitutes the Work + + The LPPL requires that distributions of the Work contain all the + files of the Work. It is therefore important that you provide a + way for the licensee to determine which files constitute the Work. + This could, for example, be achieved by explicitly listing all the + files of the Work near the copyright notice of each file or by + using a line such as: + + % This work consists of all files listed in manifest.txt. + + in that place. In the absence of an unequivocal list it might be + impossible for the licensee to determine what is considered by you + to comprise the Work and, in such a case, the licensee would be + entitled to make reasonable conjectures as to which files comprise + the Work. + diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/README.md b/macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/README.md new file mode 100644 index 0000000000..c4b213ef28 --- /dev/null +++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/README.md @@ -0,0 +1,5 @@ +# `beamertheme-edmaths` Beamer Theme + +A beamer presentation theme which follows the [university's brand guidelines](https://communications-marketing.ed.ac.uk/marketing/brand). See also the [_documentation_](https://foggalong.github.io/edinburgh-math-latex/beamertheme-edmaths-docs.pdf) and a [_compiled example_](https://foggalong.github.io/edinburgh-math-latex/example-presentation.pdf). To use, place the files and store them either with your .tex file(s) or in any directory that's findable by LaTeX (e.g. `$TEXINPUTS`). + +For more information on the wider project, including the report and thesis stylesheet, [see GitHub](https://github.com/Foggalong/edinburgh-math-latex). The beamer theme [beamerthemeedmaths.sty](beamerthemeedmaths.sty) is provided under the [LaTeX Project Public License v1.3c](https://choosealicense.com/licenses/lppl-1.3c/) (LPPL) while the example [example-presentation.tex](example-presentation.tex) is provided under the [BSD Zero Clause License](https://choosealicense.com/licenses/0bsd/) (0BSD). diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/beamerthemeedmaths.sty b/macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/beamerthemeedmaths.sty new file mode 100644 index 0000000000..ded67b3d59 --- /dev/null +++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/beamerthemeedmaths.sty @@ -0,0 +1,167 @@ +%% Package `edmaths' v0.99 +%% File beamerthemeedmaths.sty +%% Copyright 2024 Josh Fogg +%% +%% beamerthemeedmaths.sty is a LaTeX style file for typesetting presentations +%% for the School of Mathematics at the University of Edinburgh, part of the +%% more general `edmaths' package. See README.md for usage instructions. +%% +%% This work may be distributed and/or modified under the conditions of the +%% LaTeX Project Public License, either version 1.3 of this license or (at +%% your option) any later version. +%% +%% The latest version of this license is in http://latex-project.org/lppl.txt +%% and version 1.3 or later is part of all distributions of LaTeX version +%% 2005/12/01 or later. +%% +%% This work has the LPPL maintenance status `maintained' and the current +%% maintainer of this work is Josh Fogg. Originally written by Saturnino Luz +%% for the Usher Institute and made generic to UoE by Ben Brown. +%% +%% This work consists of the files beamerthemeedmaths.sty, but in addition +%% requires images `white-tied-in' and `edinburgh-logo' to compile. The images +%% distributed with this work in the `edmaths' package are registered trademarks; +%% they are not to be used as part of derived or independent works without the +%% permission of The University of Edinburgh. This does not affect use as part +%% of compiled LaTeX documents using this style for the university. + +\ProvidesPackage{beamerthemeedmaths}[2024-08-30 Edinburgh maths beamer theme v0.99] +\RequirePackage{amsfonts,graphicx,lmodern,mathptmx} + +% Colour definitions to choose between +\definecolor{UoEblue}{RGB}{0,50,95} % #00325F +\definecolor{UoEcyan}{RGB}{69, 126, 129} % #457E81 +\definecolor{UoEgreen}{RGB}{156, 154, 0} % #9C9A00 +\definecolor{UoEgray}{RGB}{.392, .329, .329} % VARIES +\definecolor{UoEorange}{RGB}{204, 89, 17} % #CC5911 + +% Define colour command for use through rest of theme +\newcommand{\beamer@UoE@color}{UoEblue} +\DeclareOptionBeamer{colour}{\def\beamer@UoE@color{#1}} + +% Change title height to fit styling +\newdimen\beamer@UoE@titleheight +\beamer@UoE@titleheight=10ex +\DeclareOptionBeamer{theight}{\beamer@UoE@titleheight=#1} + +% Resolution is 9:5 (approx), as in ppt template +\geometry{paperwidth=25.40cm, paperheight=19.05cm} + +\ProcessOptionsBeamer + +\newcommand\crule[3][\beamer@UoE@color]{\textcolor{#1}{\rule{#2}{#3}}} + +\setbeamerfont{title}{series=\bfseries,size=\fontsize{32}{36}}% +\setbeamerfont{subtitle}{size=\fontsize{24}{28}} +\setbeamerfont{author}{size={\fontsize{20}{24}}} +\setbeamerfont{institute}{size=\fontsize{22}{26}} +\setbeamerfont{pagexofy}{size=\tiny} +\setbeamerfont{caption}{size=\Large} +\setbeamerfont{frametitle}{family=\sffamily,series=\bfseries,size={\fontsize{23}{26}}} +\setbeamerfont{itemize item}{family=\sffamily,size={\fontsize{16}{18}}} +\setbeamerfont{itemize subitem}{family=\sffamily,size={\fontsize{16}{18}}} +\setbeamertemplate{itemize/enumerate body begin}{\fontsize{16}{19}\selectfont} +\setbeamertemplate{itemize/enumerate subbody begin}{\fontsize{16}{19}\selectfont} +\AtBeginDocument{\fontsize{18}{19}\selectfont} + +%\setbeamertemplate{items}[ball] +\setbeamertemplate{navigation symbols}{} +\pgfdeclareimage[width=14.69cm]{white-tied-in}{images/white-tied-in} +\pgfdeclareimage[width=4.65cm]{edinburgh-logo}{images/edinburgh-logo} +\pgfdeclareimage[width=1.25cm]{little=u}{images/edinburgh-logo} +\setbeamerfont{alerted text}{series=\bfseries} +\setbeamercolor{alerted text}{fg=\beamer@UoE@color!80!black} +\setbeamercolor{title}{fg=black} +\setbeamercolor{normal text}{fg=black} +\setbeamertemplate{itemize item}{\color{\beamer@UoE@color}$\bullet$} +\setbeamertemplate{itemize subitem}{\color{\beamer@UoE@color}$\circ$} + + +\newcommand{\SetUoETitleMargin}[1]{\beamer@UoE@titleheight=#1} +\newcommand{\SetUoETitleHeight}[1]{\beamer@UoE@titleheight=#1} + + +\newlength\barheight\setlength\barheight{\paperheight} +\divide\barheight by 12 + + +\setbeamertemplate{title page}{ + \raggedright + % TITLE + {\usebeamerfont{title}\textcolor{white}\inserttitle\par~} + % SUBTITLE + \ifx\insertsubtitle\@empty + \else% + \\[1ex] + {\usebeamerfont{subtitle}\textcolor{white}\insertsubtitle} + \fi + \\[6ex] + % AUTHOR + {\usebeamerfont{author}\textcolor{white}\insertauthor} + \ifx\insertinstitute\@empty + \else% + \\[3ex] + {\\\usebeamerfont{institute}\textcolor{white}\insertinstitute} + \fi + % DATE + \ifx\insertdate\empty + \else% + \\[1ex] + \usebeamerfont{date}\textcolor{white}{\insertdate} + \fi +} + + +\setbeamertemplate{background}{ + \setlength{\unitlength}{1cm} + \begin{picture}(25.4,19.05)(0,0) + % on first slide add UoE text logo across bottom left + \ifnum\c@framenumber=1% + \put(-.1, 0){\crule[\beamer@UoE@color]{25.4cm}{19.05cm}} + \put(0.44, 0.1){\pgfuseimage{white-tied-in}} + % on ever other slide add UoE logo at top of blue sidebar + \else% + \put(23.5, 0){\crule[\beamer@UoE@color]{1.80cm}{19.05cm}} + \put(23.65, 17.3){\includegraphics[width=1.45cm,height=1.45cm]{images/edinburgh-logo}} + \fi% + % add slide numbering to bottom right + \ifnum\c@framenumber<10% + \put(23.7,0.3){\centering\Large\color{white}{\phantom{0}\insertframenumber/\inserttotalframenumber}} + \else + \put(23.7,0.3){\centering\Large\color{white}{\insertframenumber/\inserttotalframenumber}} + \fi% + \end{picture} +} + + +% Default slide formatting +\setbeamertemplate{frametitle}{ + % if not the starting fram, add a top margin + \ifnum\c@framenumber=1% + \empty% + \else + \vspace*{\beamer@UoE@titleheight} + \fi + % use the title colour from this class + \usebeamercolor[fg]{title} + % handle situation where there's no subtitle + \ifx\insertframesubtitle\@empty + \usebeamerfont{frametitle}{\insertframetitle} + \else + \usebeamerfont{frametitle}{\insertframetitle:~{\normalfont\insertframesubtitle}} + \fi + % ensures spacing after the title + \vspace*{1em} +} + +%\newcommand{\UoEsettitleheight}[1]{\makeatletter\beamer@UoE@titleheight=#1\makeatother} +\setbeamersize{text margin left=2cm,text margin right=2.5cm} + +% Ensures images are compressed when brought in by PDF +\pdfcompresslevel=9 +\pdfobjcompresslevel=3 + +%%% Local Variables: +%%% mode: latex +%%% TeX-master: "sample" +%%% End: diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/docs/beamertheme-edmaths-docs.pdf b/macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/docs/beamertheme-edmaths-docs.pdf Binary files differnew file mode 100644 index 0000000000..feed9074f7 --- /dev/null +++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/docs/beamertheme-edmaths-docs.pdf diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/docs/beamertheme-edmaths-docs.tex b/macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/docs/beamertheme-edmaths-docs.tex new file mode 100644 index 0000000000..e14f44e0a0 --- /dev/null +++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/docs/beamertheme-edmaths-docs.tex @@ -0,0 +1,231 @@ +\documentclass[12pt]{article} + +% This is documentation for the `edmaths` LaTeX package, maintained by +% Josh Fogg for the University of Edinburgh. This file closely builds on +% that provided Alan Munn for the MSU Thesis Class, `msu-thesis`. The +% original documentation is licensed under LaTeX Project Public License +% (LPPL) version 1.3 or later, and this documentation is licensed under +% the LLP version 1.3c. For more information, see the GitHub repository: +% https://github.com/Foggalong/edinburgh-math-latex + +\def\msuversion{0.99} +\def\msudate{2024-08-30} +\title{\textbf{Using the \pkg{beamertheme-edmaths} Beamer Theme}} +\author{\textbf{Josh Fogg}\\School of Mathematics\\The University of Edinburgh\\\texttt{\href{mailto:j.fogg@ed.ac.uk}{j.fogg@ed.ac.uk}}} +\date{Version \msuversion\\\msudate} + +% basic formatting tweaks +\usepackage[lmargin=2cm,rmargin=2cm,tmargin=3cm,bmargin=2cm]{geometry} +\usepackage[colorlinks=true]{hyperref} +\usepackage{enumitem} +\usepackage{graphicx} + +% use same fourier font available through edmaths +\usepackage{cmap} +\usepackage{fourier} +\usepackage[T1]{fontenc} +\usepackage{microtype} + +% setup syntax highlighting +\usepackage{highlightlatex} +\definecolor{whiteF0}{HTML}{F0F0F0} +\lstset{ + % external padding + aboveskip=.4em, + belowskip=-.2em, + xleftmargin=.03\textwidth, + xrightmargin=.03\textwidth, + % basic formatting + backgroundcolor=\color{whiteF0}, + showstringspaces=false, + columns=fixed, + basewidth=.5em, + basicstyle={\fontfamily{zlmtt}\selectfont}, + breaklines=true +} + + +% change new paragraph behaviour to no-indent and a linebreak +\usepackage[parfill]{parskip} + + +\newcommand\pkg[1]{\href{https://www.ctan.org/pkg/#1}{\color{teal}\lstinline{#1}}} +\newcommand\key[1]{{\color{orange}\lstinline|#1|}} + + +\begin{document} +\maketitle +\thispagestyle{empty} + +\section{Introduction} + +This is theme for \pkg{beamer}, used to creating presentations for the \href{https://www.maths.ed.ac.uk/}{School of Mathematics} at the \href{https://www.ed.ac.uk/}{University of Edinburgh}. It's designed as an accompaniment to \pkg{edmaths} and provides an easy way to generate a presentation in \LaTeX{} which aligns the university brand guidelines. This means you can focus on your actual writing, rather than worrying about font spacing, margins sizes, {\it etc}. + +\section{Initial Setup} + +This theme is designed to work with \pkg{beamer}, which should be available with any \TeX{} distribution. It can be used with any \LaTeX{} engine, including pdfLaTeX, XeLaTeX, or LuaLaTeX. While it should work with any reasonably up-to-date \TeX{} distribution, it is tested with 2020 and later. + +The essential steps to setup are then: +\begin{enumerate} + \item Choose a document class using \lstinline|\documentclass[<options>]{beamer}|, with \key{<options>} being defined in the full \pkg{beamer} documentation. + \item Apply the theme using \lstinline|\usetheme{edmaths}|. + \item Use \lstinline|\title[Short Title]{Full Title}|| to define the title (the \key{Short Title} is optional). + \item Set the optional \lstinline|\subtitle{...}| if desired. + \item Set the \lstinline|\author{...}| and \lstinline|\date{...}|. +\end{enumerate} +These steps {\bf must} be done in exactly this order or the compiler will throw errors. + +Unlike \pkg{edmaths}, this theme does not automatically load the standard suite of \LaTeX{} math packages ({\it e.g.\/} \pkg{amsmath}) so you may wish to load those. Instead it loads \pkg{amsfonts}, \pkg{graphicx}, \pkg{lmodern}, and \pkg{mathptmx} which are necessary for the theme. + +The basic package has no other special requirements, but if you have certain additional packages installed then you can use some fancifying options (see below). + +\section{Package Options} + +When loading \pkg{beamertheme-edmaths} with +\begin{lstlisting} +\usetheme[<options>]{edmaths} +\end{lstlisting} +we can supply additional \key{<options>} as a comma-separated list of the following keywords. + +\subsection{Colour} + +The default theme is styled around University of Edinburgh {\bf\color[HTML]{00325F} blue (\lstinline|#00325F|)}. It's also available in three other official brand colour-scheme variations by specifying at most one of: +\begin{itemize} + \item \key{colour=UoEorange} for {\bf\color[HTML]{CC5911} orange (\lstinline|#CC5911|)}, + \item \key{colour=UoEgreen} for {\bf\color[HTML]{9C9A00} green (\lstinline|#9C9A00|)}, + \item \key{colour=UoEcyan} for {\bf\color[HTML]{457E81} cyan (\lstinline|#457E81|)}. +\end{itemize} +In theory other off-brand colours could be applied using \pkg{xcolor} and the same syntax, but this isn't officially supported so results may vary. + +\subsection{Title Height} + +By default the title height is \key{10ex}. This can be modified by specifying \key{theight=<x>}, where \key{<x>} is the desired height in a \LaTeX{} compatible unit. + +\section{Usage} + +Once \pkg{beamertheme-edmaths} is set up, a simple example of how it might be put together in \pkg{beamer} is in the listing below. A more complicated example is packaged with \pkg{beamertheme-edmaths} and \href{https://github.com/Foggalong/edinburgh-math-latex/blob/main/example-presentation.tex}{available here}. What this looks like compiled can be \href{https://foggalong.github.io/edinburgh-math-latex/example-presentation.pdf}{viewed here}. + +\subsection{Overleaf} + +As a student or staff member at the University of Edinburgh you have access to \href{https://www.ed.ac.uk/information-services/computing/desktop-personal/software/main-software-deals/other-software/overleaf}{Overleaf Professional}! Do make use of this, it alleviates many of the headaches which come with using \LaTeX{} across multiple computers, which you surely will.. + +\subsection{Archiving your presentation for the future} + +The current version of \pkg{beamertheme-edmaths} satisfies the brand guidelines at any one time. Given these change, you may find that if you need to recompile your presentation later that the formatting changes. To avoid this, save an archived version of the \href{https://github.com/Foggalong/edinburgh-math-latex/blob/main/beamerthemeedmaths.sty}{\lstinline|beamerthemeedmaths.sty|} file in the same folder as your slides. You only need to do this once you have completely finished your presentation however; there's no need to do it during the writing process. + +\begin{lstlisting}[caption={Example usage of \pkg{beamertheme-edmaths}.}] +\documentclass{beamer} +\usetheme{edmaths} + +\title[Short Title]{A Long and verbose title} +\subtitle{and a sub-title} % optional +\author{Dr Benway} +\institute{The Mental Institute} % optional +\date{Feb 1935} + +\begin{document} + +\maketitle + +\begin{frame}{Words of Advice for Young People}\label{sec:Advice} + People often ask me if I have any words of \alert{advice} for + young people\ldots \\[2ex] \pause + \begin{itemize} + \item<1-> \alert{Never} interfere in a \alert{boy-and-girl} + fight + \item<2-> Any \alert{old soul} is worth saving \\ + \uncover<3->{at \alert{least to} a priest}, + \begin{itemize} + \item<4-> But \alert{not} every soul is \alert{worth + buying}. + \end{itemize} + \item<5-> \ldots + \end{itemize} +\end{frame} + +\begin{frame}{Conclusions}\label{sec:what?} + \begin{itemize} + \item<2-> What \alert{are} we doing here? + \item<4-> What? + \item<2-> Answers: + \begin{itemize} + \item<3-> We are here \alert{to go}. + \end{itemize} + \end{itemize} +\end{frame} + +\end{document} +\end{lstlisting} + +\section{Speaker Notes} + +There are various solutions for writing notes to accompany LaTeX presentations made with \pkg{beamer}. In each of these use the relevant command {\it after} the slide you wish to annotate. + +\subsection{Beamer's \texttt{note}} + +Core \pkg{beamer} itself actually comes with a command, \lstinline|\note|, which can be used for writing notes that are then included as separate `notes' pages in the complied PDF. Exactly how these are handled is controlled through the document class arguments + +\begin{lstlisting} +\documentclass[notes]{beamer} % print frame + notes +\documentclass[notes=only]{beamer} % only notes +\documentclass{beamer} % only frames +\end{lstlisting} + +and then notes are added with + +\begin{lstlisting} +\begin{frame} + ... +\end{frame} +\note{Some wonderful note.} +\end{lstlisting} + +These have the upside that you have full access to \LaTeX{} formatting when writing your speaker notes, but the downside that they can be cumbersome to work with when presenting. Multiple complications are needed to get notes and presentations in separate PDF files. + +\subsection{PDFPC's \texttt{note}} + +\href{https://pdfpc.github.io/}{PDFPC} is a presenter console with multi-monitor support for PDF files. There's an official package, \pkg{pdfpc}, for adding meta-data to presentation files which are compatible with their presenter console. The screenshot in Figure~\ref{fig:pdfpc} shows how the console looks when viewing the example presentation. + +\begin{figure} + \includegraphics[width=\textwidth]{pdfpc-screenshot.png} + \caption{Speaker notes in PDFPC.}\label{fig:pdfpc} +\end{figure} + +To use this add + +\begin{lstlisting} +\usepackage[overridenote=true]{pdfpc} +\end{lstlisting} +and then it's just \lstinline|\note{Some wonderful note.}| as before. + +These will then be included as ``comments'' within the complied PDF which PDFPC displays as notes in the presenter console. These have the upside that they're smoother to work with when presenting, but the downside that the only formatting supported is \lstinline|\\| for newlines. + +\subsection{Brandt's \texttt{pnote}} + +There are two packages called \pkg{pdfpc-latex-notes}, one by \href{https://github.com/cebe/pdfpc-latex-notes}{Carsten Brandt} and a fork by \href{https://github.com/p4pyru5/pdfpc-latex-notes}{p4pyru5}. These both generate PDFPC compatible notes using \lstinline|\pnote{Some wonderful note.}|. They served as the inspiration for PDFPC's official solution, but each come with their own (varying support for formatting, wider integration, {\it etc\/}). + +\subsection{Usher's \texttt{bnote}} + +The original version of the University of Edinburgh \pkg{beamer} template by \href{https://www.ed.ac.uk/profile/saturnino-luz}{Saturnino Luz} at the \href{https://www.ed.ac.uk/usher}{Usher Institute} included its own package, \pkg{beamernotes}, for generating a PDFPC compatible notes file. + +To use it save \href{https://github.com/Foggalong/edinburgh-math-latex/blob/4ac2ffb765a7d9dc420396dd10bdafcc0c561398/beamernotes.sty}{\texttt{beamernotes.sty}} either to your \LaTeX{} path or local to your project. Then add + +\begin{lstlisting} +\usepackage{beamernotes} +\end{lstlisting} + +to your document header and use + +\begin{lstlisting} +\bnote{Some wonderful note.} +\end{lstlisting} + +to write your notes. This solution had the upside that your notes were included in a separate file still automatically read by PDFPC, but the downside that all formatting was lost {\it including} the ability to write newlines. + +\section{Acknowledgements} + +The original \pkg{beamertheme-edmaths} was written by \href{https://www.ed.ac.uk/profile/saturnino-luz}{Saturnino Luz} for \href{https://www.ed.ac.uk/usher}{Usher}, then modified by \href{https://github.com/bencwbrown}{Ben Brown} with general university branding. Both are freely provided under the terms of the \href{https://choosealicense.com/licenses/lppl-1.3c/}{\LaTeX{} Project Public License v1.3c} and from 2020 onwards have been maintained by \href{https://www.maths.ed.ac.uk/~jfogg/}{Josh Fogg} (me). + +If you have any issues using \pkg{beamertheme-edmaths} don't hesitate to get in touch either by \href{mailto:j.fogg@ed.ac.uk}{email} or on \href{https://github.com/Foggalong/edinburgh-math-latex/issues/new?assignees=&labels=pres&projects=&template=beamer-issue.md&title=}{GitHub}. Feel free pop me a message just to say hi too, it always makes my day! + +\end{document}
\ No newline at end of file diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/docs/pdfpc-screenshot.png b/macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/docs/pdfpc-screenshot.png Binary files differnew file mode 100644 index 0000000000..59cc944e2f --- /dev/null +++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/docs/pdfpc-screenshot.png diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/example-presentation.tex b/macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/example-presentation.tex new file mode 100644 index 0000000000..1f67be3c55 --- /dev/null +++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/example-presentation.tex @@ -0,0 +1,82 @@ +%% This file is an example of using beamerthemeedmaths.sty to style a Beamer +%% presentation. While the style is LPPL 1.3 licensed, this example is given +%% under a 0BSD license (https://choosealicense.com/licenses/0bsd), meaning +%% it can be freely used, copied, modified, and/or redistributed with or +%% without attribution. For instructions on using the style, see the README.md +%% file or https://github.com/Foggalong/edinburgh-math-latex. + +\documentclass[notes]{beamer} +\usetheme{edmaths} +\usepackage{lipsum} +\usepackage[overridenote=true]{pdfpc} + +\pdfcompresslevel=9 +\pdfobjcompresslevel=3 + +\title[Insert Title (short version of title)]{Title of Presentation} +\subtitle{Insert Subtitle (Optional)} % Optional +\author{Author Name} +\date{n\textsuperscript{th} Month YYYY} + +\begin{document} + + +\begin{frame} + \titlepage{} +\end{frame} +\note{ + This generates notes for pdfpc. \\ + \\ + These notes also appear + on the handout/article versions. +} + + +\begin{frame}[t]{Header title bold}\label{sec:Slide1} + Main body text Sans. Here is a way to \alert{highlight text}. + \begin{itemize} + \item Bullet points + \item Sub-lists\ldots + \begin{itemize} + \item subitem + \end{itemize} + \item \lipsum[2] + \end{itemize} +\end{frame} +\note{ + This is a note for the first slide. Mention how something happens. +} + + +\begin{frame}{Inserting a figure, some maths\ldots} + Example of a reference to another part of the presentation (slide~\ref{sec:Slide1}). Also an example of a slide not vertically aligned to top.\newline + + \begin{itemize} + \item Here's a figure: + \begin{figure}[h] + \centering + \colorbox{blue}{\includegraphics[width=.13\linewidth]{images/edinburgh-logo}} + \caption{The University of Edinburgh's logo}\label{fig:edinburgh-logo} + \end{figure} + \item And here's a famous equation: + \begin{eqnarray} + \label{eq:schroedinger} + i\hbar {\frac{\partial}{\partial t}}|\psi (t)\rangle ={\hat{H}}|\psi (t)\rangle + \end{eqnarray} + \end{itemize} +\end{frame} + + +\begin{frame}[t]{References} + The stylesheet {\bf\texttt{edmaths.sty}} provides a styling for LaTeX{} documents which satisfies University of Edinburgh requirements~\cite{koeppe2007}. \newline + + \lipsum[4]\newline + + References can be added to the bottom of slides, or on a new slide. + \vfill + \bibliography{example-references} + \bibliographystyle{ieeetr} +\end{frame} + + +\end{document} diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/example-references.bib b/macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/example-references.bib new file mode 100644 index 0000000000..cd65755781 --- /dev/null +++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/example-references.bib @@ -0,0 +1,10 @@ + This is an example biblography used in example-presentation.tex and + example-report.tex, examples of the edmaths Beamer and report styles + respectively. When creating a biblography you might find these bibtex + templates useful: https://verbosus.com/bibtex-style-examples.html + +@misc{koeppe2007, + title = {Package `edmaths'}, + author = {Thomas Koeppe}, + year = {2007} +} diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/images/LICENSE.md b/macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/images/LICENSE.md new file mode 100644 index 0000000000..ef516053f4 --- /dev/null +++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/images/LICENSE.md @@ -0,0 +1,5 @@ +# Copyright Notice + +The images `edinburgh-logo` and `white-tied-in` are copyright © The University of Edinburgh 2024. They must not be used as part of derived or independent works without the explicit permission of The University of Edinburgh. Please note that this **does not** affect use as part of compiled LaTeX documents using this stylesheet for the university. + +The University of Edinburgh is a charitable body, registered in Scotland, with registration number SC005336, VAT Registration Number GB 592 9507 00, and is acknowledged by the UK authorities as a “Recognised body†which has been granted degree awarding powers. diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/images/edinburgh-logo.pdf b/macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/images/edinburgh-logo.pdf Binary files differnew file mode 100644 index 0000000000..f35a67f63f --- /dev/null +++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/images/edinburgh-logo.pdf diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/images/edinburgh-logo.svg b/macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/images/edinburgh-logo.svg new file mode 100644 index 0000000000..a4470b6219 --- /dev/null +++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/images/edinburgh-logo.svg @@ -0,0 +1,8 @@ +<svg width="86.7" height="87.2" version="1.1" viewBox="0 0 86.7 87.2" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"> +<style type="text/css"> + .st0{clip-path:url(#SVGID_2_);} + .st1{fill:none;stroke:#FFFFFF;stroke-width:3;stroke-miterlimit:1;} + .st2{fill:#FFFFFF;} + .st3{fill:none;stroke:#FFFFFF;stroke-miterlimit:1;} +</style> +<path class="st2" d="m73.6 41c0-0.6-0.2-1.2-0.2-1.8-0.1-0.6-0.1-1.3-0.2-1.9-0.4-1.7-0.8-3.3-1.4-4.9-0.1-0.2-0.2-0.4-0.3-0.7-0.2-0.5-0.4-0.9-0.6-1.3-0.1-0.1-0.1-0.3-0.2-0.4-0.2-0.4-0.3-0.8-0.5-1.2-0.1-0.2-0.3-0.4-0.4-0.7-0.1-0.2-0.2-0.5-0.3-0.7-0.4-0.7-0.9-1.3-1.3-1.9-0.2-0.2-0.3-0.4-0.5-0.6s-0.4-0.5-0.6-0.7-0.4-0.3-0.5-0.5c-0.1-0.1-0.1-0.2-0.2-0.4s-0.3-0.3-0.4-0.4l-0.2-0.2c-0.2-0.2-0.4-0.5-0.6-0.7s-0.4-0.4-0.6-0.5l-0.6-0.6c-0.3-0.2-0.5-0.4-0.8-0.6s-0.5-0.5-0.8-0.7c-0.2-0.1-0.4-0.2-0.5-0.3-0.2-0.2-0.4-0.3-0.7-0.5-0.2-0.1-0.3-0.3-0.5-0.4-0.1-0.1-0.2-0.1-0.4-0.2s-0.3-0.2-0.5-0.3c-0.5-0.3-1.1-0.6-1.7-0.9-0.2-0.1-0.4-0.3-0.6-0.4-0.4-0.2-0.7-0.4-1.1-0.5-0.3-0.1-0.6-0.2-0.9-0.4-0.1-0.1-0.3-0.2-0.4-0.2s-0.2-0.1-0.3-0.1c-0.2-0.1-0.4-0.2-0.5-0.2-0.6-0.2-1.1-0.3-1.7-0.5-0.3-0.1-0.6-0.2-0.8-0.3-0.6-0.2-1.2-0.3-1.8-0.4l-1.2-0.3c-0.3 0-0.5-0.1-0.8-0.1-0.4-0.1-0.9-0.2-1.4-0.2h-0.5c-0.1 0-0.2 0-0.4-0.1h-0.7c-0.5 0-1.1-0.1-1.7-0.1-0.2 0.1-0.5 0-0.8 0h-0.9-0.2-0.6c-0.1 0-0.2 0.1-0.3 0.1h-0.3-0.3-0.2c-0.1 0-0.3 0-0.4 0.1-0.3 0-0.7 0-0.9 0.2h-0.2c-0.2 0-0.4 0-0.6 0.1-0.5 0-0.9 0.2-1.3 0.3-0.4 0-0.7 0-0.9 0.2-0.2 0-0.4 0-0.5 0.1-0.3 0-0.6 0.2-0.8 0.3s-0.3 0.1-0.5 0.1c-0.3 0-0.6 0.2-0.8 0.3s-0.3 0.1-0.5 0.2c-0.9 0.4-1.8 0.8-2.7 1.3-0.2 0.1-0.3 0.2-0.4 0.3-1.1 0.5-2.1 1.1-3 1.9-0.3 0.2-0.5 0.4-0.8 0.6l-0.4 0.4c-0.3 0.2-0.5 0.4-0.8 0.6-0.5 0.4-1 0.9-1.5 1.4-0.3 0.3-0.6 0.5-0.9 0.8-0.1 0.1-0.2 0.2-0.3 0.4l-0.4 0.4c-0.2 0.2-0.4 0.5-0.6 0.7s-0.4 0.4-0.5 0.6c-0.1 0.1-0.2 0.2-0.2 0.3-0.3 0.4-0.6 0.7-0.9 1.1l-0.6 0.9c-0.3 0.3-0.6 0.8-0.8 1.2-0.1 0.1-0.1 0.2-0.2 0.4-0.2 0.3-0.4 0.6-0.5 0.9-0.2 0.3-0.3 0.7-0.4 1-0.1 0.1-0.1 0.2-0.2 0.4-0.2 0.3-0.3 0.6-0.4 0.9-0.1 0.2-0.1 0.4-0.2 0.6l-0.3 0.6c-0.1 0.2-0.1 0.4-0.2 0.7-0.1 0.2-0.2 0.5-0.3 0.7-0.4 1.4-0.8 2.9-1.1 4.4 0 0.3-0.1 0.6-0.1 0.9s-0.2 0.7-0.2 1 0 0.6-0.1 0.8c0 0.2 0 0.4-0.1 0.6v3.6c0 0.6 0.1 1.2 0.2 1.7v0.7c0.1 0.8 0.2 1.6 0.3 2.3 0.1 0.2 0.1 0.4 0.2 0.6 0.1 0.6 0.3 1.2 0.4 1.8 0.1 0.1 0.1 0.3 0.2 0.4 0 0.1 0.1 0.3 0.1 0.4 0.2 0.6 0.5 1.3 0.7 1.9 0.1 0.2 0.2 0.5 0.3 0.7s0.1 0.3 0.2 0.5l0.6 1.2c0.2 0.3 0.4 0.6 0.5 1 0.1 0.1 0.1 0.2 0.1 0.4l0.2 0.2c0.1 0.1 0.1 0.3 0.2 0.4 0.2 0.3 0.3 0.5 0.5 0.8 0.1 0.2 0.2 0.3 0.3 0.5 0.2 0.2 0.3 0.4 0.5 0.6 0.1 0.2 0.2 0.3 0.3 0.5 0.2 0.3 0.4 0.5 0.6 0.8 0.2 0.2 0.4 0.4 0.5 0.7 0.2 0.2 0.4 0.5 0.7 0.7 0.2 0.2 0.3 0.5 0.6 0.7 0.3 0.3 0.6 0.6 0.9 0.8l0.4 0.4c0.2 0.2 0.5 0.4 0.8 0.6 0.2 0.2 0.5 0.4 0.7 0.7 0.2 0.1 0.3 0.3 0.5 0.4 0.2 0.2 0.4 0.4 0.6 0.5 0.3 0.2 0.5 0.4 0.8 0.6l0.6 0.3c0.2 0.1 0.4 0.3 0.6 0.4s0.4 0.2 0.6 0.4c0.8 0.5 1.6 0.9 2.4 1.3 0.4 0.2 0.7 0.4 1.1 0.5s0.7 0.3 1.1 0.4c0.1 0 0.3 0.1 0.4 0.1 0.3 0.1 0.7 0.3 1 0.4 0.1 0 0.2 0.1 0.3 0.1 0.3 0.1 0.6 0.3 0.9 0.3 0.4 0.1 0.8 0.1 1.1 0.2 0.6 0.1 1.1 0.3 1.7 0.4h0.6c0.3 0 0.6 0.1 0.8 0.1h0.7c0.1 0 0.3 0 0.4 0.1h0.4c0.3 0.1 0.7 0.1 1 0.2h0.5 0.3c0.3 0 0.7 0 1 0.1h0.6c0.4 0 0.8-0.1 1.1-0.1h0.5c0.2 0 0.5-0.1 0.7-0.1l2.4-0.3c0.3-0.1 0.5-0.1 0.8-0.2s0.7-0.1 1-0.2c0.2 0 0.3-0.1 0.5-0.2 0.3-0.1 0.5-0.2 0.8-0.2 0.1 0 0.2-0.1 0.4-0.1 0.2-0.1 0.4-0.1 0.6-0.1 0.4-0.1 0.8-0.3 1.2-0.4 0.2-0.1 0.5-0.2 0.7-0.3s0.5-0.2 0.7-0.3c0.1 0 0.1-0.1 0.2-0.1 0.2-0.1 0.5-0.2 0.7-0.3 0.3-0.2 0.5-0.3 0.8-0.5 0.1-0.1 0.3-0.1 0.4-0.2 0.4-0.2 0.8-0.5 1.2-0.7 0.3-0.2 0.7-0.4 1-0.6s0.6-0.5 0.9-0.7 0.6-0.5 1-0.7l0.2-0.2c0.1 0 0.2-0.1 0.2-0.1 0.3-0.2 0.5-0.5 0.8-0.7l0.6-0.6c0.2-0.2 0.4-0.4 0.7-0.6 0.1-0.1 0.1-0.2 0.2-0.3 0.2-0.2 0.4-0.3 0.5-0.5 0.1-0.1 0.2-0.3 0.3-0.4 0.4-0.4 0.8-0.8 1.1-1.2 0.3-0.3 0.5-0.6 0.8-1 0.2-0.2 0.4-0.5 0.5-0.8l0.3-0.3c0.3-0.4 0.6-0.8 0.9-1.2 0.1-0.1 0.1-0.3 0.2-0.4s0.1-0.2 0.2-0.3 0.1-0.2 0.2-0.4c0.2-0.3 0.4-0.7 0.6-1s0.3-0.5 0.5-0.8c0.1-0.3 0.2-0.5 0.3-0.8s0.3-0.6 0.4-0.8c0.4-1.2 0.9-2.4 1.2-3.6 0-0.1 0.1-0.3 0.1-0.4 0.1-0.5 0.2-0.9 0.3-1.4 0-0.2 0.1-0.5 0.1-0.7 0.1-0.4 0.1-0.8 0.2-1.2 0-0.3 0-0.6 0.1-1 0-0.1 0-0.2 0.1-0.4v-0.8c0-0.1 0.1-0.3 0.1-0.4v-0.6c0.1-1.7 0.2-3 0.1-4.2m-36.3-25.8c0.3 0 0.5-0.1 0.7-0.2 0.4-0.1 0.8-0.2 1.2-0.2h0.9c0.4 0 0.8-0.1 1.2-0.2h0.5c0.2 0 0.4 0 0.6-0.1h1.2c0.2 0 0.5 0 0.7 0.1 0.2 0 0.4 0.1 0.5 0.1h0.8 0.4 0.5c0.2 0 0.4 0.1 0.7 0.1h0.3c0.1 0 0.2 0.1 0.3 0.1s0.2 0.1 0.4 0.1c0.5 0.1 1 0.1 1.5 0.2h0.1c0 0.1-0.8 0-1 0h-0.3-0.7-0.3-0.4-0.3c-0.3 0-0.8-0.1-1.1 0-0.3 0-0.6 0-0.9-0.1-0.1 0-0.4-0.1-0.5 0h-0.4c-0.2 0-0.3-0.1-0.5 0-0.1 0-0.2 0-0.3 0.1h-2.1c-0.1 0-0.3 0-0.4-0.1h-1c-0.2 0-0.7-0.1-0.8 0-0.5 0.1-1 0.1-1.5 0.1zm-3.8 1.1c0.1 0 0.3-0.2 0.4-0.2s0.2-0.1 0.3-0.1c0.1-0.1 0.2-0.1 0.3-0.1 0.3-0.1 0.7-0.2 1-0.3h0.7 0.9 0.5 0.8 1.1c1.3 0 2.6 0.1 3.9 0.1h0.6 0.9c1.5 0 3-0.1 4.5 0h1.5 0.6c0.4 0.1 0.8 0.4 1.2 0.5 0.2 0 0.8 0.1 1 0.3h-0.1-0.2-0.6c-0.2 0-0.4-0.1-0.6-0.1h-0.6-0.3-0.6-0.4-0.6c-0.3 0-1-0.1-1.2 0-0.1 0-0.3-0.1-0.4 0-0.2 0-0.3 0-0.5-0.1h-0.6-0.4-0.5-0.5-1.4-0.5-0.3-0.3c-0.4 0-0.8-0.1-1.2-0.1h-1.4c-0.2 0-0.6-0.1-0.7 0h-1.1-0.4-0.2-1.5-0.2-0.6-0.3c-0.6 0.2-1.3 0.2-2 0.1zm-2.1 0.9c0.1-0.1 0.2-0.1 0.2-0.2 0.7-0.4 1.6-0.2 2.4-0.2h1.4 0.4 0.8 2.9 0.6 0.8 0.3 0.3 0.4c0.5 0 0.9 0.1 1.4 0.1 0.2 0 0.5-0.1 0.7-0.1 0.6 0 1.2 0.1 1.8 0.1 0.3 0 0.6-0.1 0.9-0.1h1.5 0.8 3.3c0.2 0 0.3 0.1 0.5 0.1s0.5 0 0.7-0.1c0.3 0 0.8 0.1 1.1 0 0.4 0 0.7 0.2 1 0.4 0.3 0.1 0.7 0.2 0.9 0.4v0.1h-0.1-0.5-0.6-0.2c-0.2 0-0.9-0.1-1 0h-0.4-0.7c-0.2 0-0.4-0.1-0.6 0h-0.6-0.9c-0.3 0-0.8-0.1-1.1 0h-0.2-0.7-0.3c-0.2 0-0.5-0.1-0.7 0h-0.6-0.4-1-0.4-1.1-0.4-0.9-1.1-0.3-0.9-0.4-0.2-0.3c-1.2 0-2.3-0.1-3.5-0.1h-0.5c-0.1 0-0.3-0.1-0.4 0h-0.7-1.5c-0.2 0-0.8-0.1-0.9 0h-0.7-0.2c-0.3 0-0.5-0.1-0.8-0.1 0-0.1 0.6-0.3 0.7-0.3m-2.7 1.5c0-0.1 0.2-0.1 0.2-0.2 0.1-0.1 0.3-0.2 0.4-0.2 0.1-0.1 0.3-0.2 0.4-0.2 0.4-0.1 1.1-0.1 1.5-0.1h1.3 1.1 0.4c0.7-0.1 1.5 0 2.2 0h1.1c0.5 0 0.9 0.1 1.4 0.1h0.8c0.4 0 0.7-0.1 1.1-0.1 0.8 0 1.6 0.1 2.3 0.1h0.3 0.4 0.6 0.7 0.8c0.5 0 1 0.1 1.6 0.1 0.2 0 0.4-0.1 0.7-0.1h0.5 0.2c0.1 0 0.3 0.1 0.4 0.1h0.6 0.8c0.2 0 0.4-0.1 0.6 0h0.9 0.5 1.8 0.8 1.7 0.8c0.1 0 0.2 0.1 0.3 0.2 0.2 0.2 0.5 0.3 0.7 0.5 0 0.1-0.4 0.1-0.5 0.2h-0.4-0.4-0.5-0.3-1.1-0.4-0.4-0.2-2.7c-0.2 0-0.6-0.1-0.8 0h-0.5c-0.2 0-0.6-0.1-0.8 0h-0.4c-0.2 0-0.5-0.1-0.7 0h-0.5c-0.2 0-0.4-0.1-0.5 0h-0.2-1.2-0.5c-0.2 0-0.7-0.1-0.9 0h-0.3c-0.2 0-0.4-0.1-0.6 0h-0.4-1.8c-0.3 0-0.8-0.1-1.1 0h-0.2c-0.2 0-0.5 0-0.7-0.1h-1.7c-0.2 0-0.3-0.1-0.5-0.1h-1.1-0.3-1.7-0.9c-0.2 0-0.6-0.1-0.8 0h-0.3-0.3-0.8-0.4-0.3c-0.3 0-0.6 0-1-0.1-0.3 0-0.6 0-0.8-0.1v0m-1.7 1.2s0.2-0.1 0.2-0.2c0.3-0.2 0.5-0.3 0.8-0.5 0.2-0.1 0.4-0.1 0.6-0.1s0.5 0 0.7 0.1h1.4 0.7 0.7 0.6c0.3 0 0.6 0.1 1 0.1 0.5 0 1-0.1 1.4 0h0.4 1.1 2.1 1.6 1.1 0.4c0.3 0 0.6 0.1 0.9 0.1 0.4 0 0.8-0.1 1.2-0.1 0.3 0 0.6 0 1 0.1h1 0.4 0.4 0.9 1.5c0.3 0 0.6 0 0.9-0.1h2.1 0.4 2.2c0.3 0 0.7-0.1 1 0 0.4 0 0.7 0.1 1.1 0.1 0.3 0 0.7-0.1 1-0.1 0.2 0 0.4 0 0.6-0.1 0.3 0 0.6 0 0.8 0.1 0.1 0 0.2 0.2 0.3 0.2s0.1 0.1 0.2 0.1c0.2 0.1 0.3 0.3 0.5 0.4l-0.1 0.1h-0.6c-0.2 0-0.4-0.1-0.6 0h-0.2-1.3-1.2-0.4-0.3-0.6-0.7-0.6c-0.2 0-0.3-0.1-0.5 0h-1.5-0.5-0.3-1.1-0.4c-0.4 0-1-0.1-1.3 0h-0.7-1.8c-0.2 0-0.6-0.1-0.8 0h-0.3-0.9-2.5-1.3-0.4-0.4-0.8-0.2-0.8-0.4-1.2c-0.1 0-0.3-0.1-0.4 0h-1.7c-0.1 0-0.3-0.1-0.4 0h-0.3-2.1c-0.3 0-1-0.1-1.2 0h-0.2-1.1c-0.3-0.1-0.7-0.1-1.1-0.2zm-1.7 1.2c0.1 0 0.1-0.1 0.2-0.1 0.2-0.1 0.7-0.6 0.9-0.6h1.2 0.7 0.7 1.2c0.8 0 1.5 0.1 2.2 0.1h0.5 1.2c0.2 0 0.4 0 0.6 0.1h0.7 0.7c0.6 0 1.1-0.1 1.7-0.1h0.8 0.4 0.8c0.4 0 0.9 0.1 1.3 0.1h0.7 0.8 0.4 0.3 0.4 1 0.3c0.2 0 0.4 0 0.6 0.1h0.8 0.5 1.1 0.6 1.1 0.5 0.4 0.7c0.5 0 1 0.1 1.5 0.1 0.9 0 1.7-0.1 2.6-0.1h0.8 0.5 1.3c0.3 0 0.6 0 0.9 0.1 0.2 0 0.4 0 0.5-0.1h0.5c0.3 0 0.6 0 1 0.1 0.1 0 0.8 0.5 0.8 0.7h-0.1-0.6c-0.4 0-0.9-0.1-1.2 0.1h-0.2-0.4c-0.3 0-0.8-0.1-1 0-0.2 0-0.4 0-0.6-0.1h-1.2c-0.2 0-0.6-0.1-0.8 0h-2.4-1.1-0.4-0.9c-0.2 0-0.4-0.1-0.5 0h-0.8-0.3-0.2-1-0.4c-0.2 0-0.9-0.1-1 0-0.2 0-0.7-0.1-0.8 0h-0.2c-0.3 0-0.6-0.1-1-0.1h-0.3c-0.3 0-0.7-0.1-1 0h-0.2c-0.2 0-0.6-0.2-0.8-0.1h-1-0.3c-0.2 0-0.6-0.1-0.8 0h-0.2-1.2-0.4-0.7-0.4-0.3c-0.1 0-0.3 0-0.4 0.1h-0.4c-0.2 0-0.6-0.2-0.8-0.1h-1-0.3-0.3-0.2c-0.5 0-0.9 0-1.3-0.1h-0.3-1.3c-0.2 0-0.6-0.1-0.8 0h-0.4c-0.1 0-0.4-0.1-0.5 0h-0.2-1.2-0.4c-0.8-0.1-1.3-0.1-1.9-0.1zm47 22c0 0.1-0.1 0.1-0.2 0.1h-0.4c-0.2 0-0.5-0.1-0.6 0h-2.4c-0.2 0-0.6-0.1-0.7 0-0.2 0-0.7-0.1-0.8 0-0.2 0-0.4-0.1-0.6 0h-0.9-1.3v0.4h0.2 0.7 0.5 0.8 2.8 1.3 0.7 0.5 0.3c0.1 0 0 0.7 0 0.8h-0.4c-0.2 0-0.7-0.1-0.8 0h-0.5-0.7-1.3-0.3-1.5c-0.2 0-0.5-0.1-0.7 0h-0.7c-0.1 0-0.3-0.1-0.5 0h-0.3v-0.1 0.5h0.1 0.6 0.6 1.1 0.5 0.8 0.3 0.5 0.3 0.3 0.6 0.8c0.2 0 1.1-0.1 1.3 0.1 0.1 0.1 0 0.7 0 0.8 0 0-0.2 0-0.3 0.1h-0.2-1.2-0.4-1.2-0.3-0.3-0.4-0.8c-0.1 0-0.3-0.1-0.5 0h-2-0.2v0.4h0.2 1.4 0.5c0.8 0 1.5 0.1 2.3 0.1h0.9 1.9 0.4c0 0.2 0 0.6-0.1 0.7-0.1 0-0.2 0-0.2 0.1-0.2 0-0.6-0.1-0.7 0h-0.3-0.2c-0.7 0-1.5-0.1-2.2-0.1-0.2 0-0.5-0.1-0.7 0-0.2 0-0.6-0.1-0.7 0h-1.8-0.6v0.4c0.1-0.1 0.5 0 0.7 0h1.6c0.3 0 0.8 0 1.1-0.1 0.4 0 0.7 0 1.1 0.1h1 1c0.3 0 0.7-0.1 1 0 0.2 0 0.1 0.6 0 0.7s-0.2 0.1-0.2 0.1h-0.2-1.5c-0.2 0-0.5-0.1-0.7 0h-0.7-1.7-0.5-0.4c-0.5 0-1 0-1.5-0.1v0.4h0.1 1.1 0.5 0.4 0.6c0.3 0 1 0.1 1.2 0h0.4 0.7 1.4c0.2 0 0.7 0 0.8 0.1 0.1 0 0 0.6 0 0.7 0 0-0.1 0-0.1 0.1-0.2 0-1-0.1-1.1 0h-0.6-0.8-0.4c-0.1 0-0.3 0-0.4 0.1-0.2 0-0.3 0-0.5-0.1h-0.8-0.4c-0.1 0-0.3 0-0.4-0.1h-1.3-0.3v0.4h0.8 0.5 1.6c0.4 0 1 0.1 1.4 0h0.8 0.4 0.4 1.4c0 0.2 0 0.4-0.1 0.5 0 0.1-0.1 0.2-0.1 0.3h-0.7-0.6-0.8-0.6c-0.2 0-0.5-0.1-0.7 0h-0.3c-0.3 0-0.6 0-0.8-0.1-0.8 0-1.6-0.1-2.4-0.1v0.4h0.2 0.3 1 0.9 0.8c0.5 0 1 0.1 1.4 0.1 0.3 0 0.6-0.1 0.9-0.1 0.2 0 1.2-0.1 1.3 0.1 0.1 0.1 0 0.2 0 0.3 0 0.2-0.1 0.4-0.2 0.5-0.5 0-1.1-0.1-1.6 0h-0.3c-0.2 0-1-0.1-1.1 0h-0.7c-0.2 0-0.4-0.1-0.6 0-0.2 0-0.5-0.1-0.7 0-0.6 0-1.1-0.1-1.7-0.1v0.4h1.1c0.3 0 0.7 0.1 1.1 0.1h1.8 0.5 0.3 0.3c0.3 0 1.3 0 1.4 0.1s0 0.2 0 0.3-0.1 0.2-0.2 0.3h-0.4-0.3-0.2c-0.2 0-0.7-0.1-0.8 0h-0.3-1.1-0.4c-0.2 0-0.4-0.1-0.6 0-0.2 0-1.8 0-2.2-0.1v0.5c0.2 0 0.3-0.1 0.5-0.1h2 0.5 1 0.5 0.8 0.3c0.2 0 0.4 0 0.6 0.1 0 0.1-0.2 0.6-0.3 0.7-0.1 0-0.2 0.1-0.3 0.1h-0.8-0.4-0.3-0.2-0.8c-0.1 0-0.3-0.1-0.4 0h-0.2-0.8c-0.2 0-0.5-0.1-0.7 0h-0.3c-0.1 0-0.6 0-0.7-0.1v0.5c0.1-0.1 0.9-0.1 1.1-0.1h0.4 1 0.6 0.5 0.9c0.2 0 0.8-0.1 1.1 0 0.1 0.1-0.1 0.4-0.1 0.4-0.1 0.1-0.1 0.3-0.3 0.3h-0.2c-0.2 0-0.3 0-0.5-0.1h-1-0.3c-0.2 0-0.6-0.1-0.8 0h-0.2-0.5-0.4-1.3v0.5c0.2 0 0.3-0.1 0.4-0.1h0.9 0.4 1.8 0.8 0.5c0.1 0 0.2 0 0.3 0.1s-0.1 0.6-0.2 0.6l-0.2 0.2h-0.6c-0.2 0-0.6-0.1-0.8 0h-0.7-0.6c-0.2 0-0.4-0.1-0.6 0h-1.4v0.4h0.4 0.6c0.2 0 0.4 0 0.6-0.1 0.3 0 0.6 0 0.9 0.1h0.7c0.3 0 0.6 0.1 0.9 0 0.2 0 0.4 0.1 0.6 0.1 0 0.2-0.3 0.7-0.5 0.8h-0.6c-0.3 0-1-0.1-1.2 0h-1.5c-0.2 0-0.5 0-0.7-0.1v0.4h0.7 0.4c0.4 0 0.7 0.1 1.1 0.1h1.1c0.2 0 0.4 0 0.5 0.1 0 0-0.4 0.8-0.7 0.8s-0.9 0-1.2-0.1c-0.5 0-0.9 0-1.4-0.1h-0.7v0.4c0.8 0 1.7 0 2.4 0.1 0.2 0 0.4 0 0.7 0.1v0.1c-0.1 0-0.1 0.1-0.1 0.1-0.5 0.3-0.7 0.7-0.9 0.7-0.1 0-0.2 0-0.2 0.1-0.2 0-0.6-0.1-0.7-0.1-0.2 0-0.6-0.1-0.8 0h-0.8v0.4h1.2 0.5 0.7c0 0.2-0.4 0.7-0.6 0.7h-0.4-1.4v0.4h0.3c0.2 0 1.1 0 1.1 0.1 0.1 0.2-0.4 0.6-0.5 0.7h-0.9c0 0.2-0.1 0.3-0.1 0.4h0.7c0 0.2-0.8 0.9-1 1h-0.1c-0.4 0.6-0.9 1.1-1.7 1.7-0.6 0.5-1.3 0.9-2 1.2h0.1c0.4 0-0.5 0.6-0.6 0.6h-0.9-0.1c-0.6 0.2-1.3 0.4-2 0.5h0.5 0.6 0.3 0.4 0.4v0.1c-0.2 0.2-0.4 0.3-0.6 0.4-0.1 0.1-0.2 0.2-0.4 0.3-0.1 0-0.2 0.1-0.4 0.1h-0.3-2c-0.2 0-0.7-0.1-0.9 0-0.3 0-0.6-0.1-0.8 0h-0.6c-0.4 0-0.7-0.1-1.1-0.1h-0.2-1.7c-0.2 0-0.5 0.1-0.7 0.1-0.7 0.1-1.2 0.2-1.7 0.4h1.7 1.2 2.9 1c0.2 0 0.3 0 0.5-0.1h2.2c-0.1 0-0.3 0.2-0.4 0.2-0.3 0.1-0.6 0.3-0.9 0.4-0.2 0.1-0.4 0.2-0.6 0.2-0.4 0.1-0.8 0-1.2 0h-0.4-0.5-0.6c-0.2 0-0.5-0.1-0.7 0h-1.2-0.6-0.4-0.7c-0.2 0-0.8-0.1-1 0-0.5 0-1.3-0.1-1.9-0.1-0.2 0.2-0.4 0.3-0.5 0.5h0.8c0.7-0.1 1.5 0 2.3 0h1.2 0.7 0.4c0.2 0.1 0.7 0 0.9 0 0.4 0 0.8 0.1 1.1 0.1 0.2 0 0.4 0 0.5-0.1h0.7-0.1c-0.3 0.1-0.5 0.2-0.8 0.3-0.1 0.1-0.3 0.1-0.4 0.2-0.2 0.1-0.4 0.1-0.6 0.2h-0.8-0.5-0.4-0.4-0.2-0.7c-0.1 0-0.4-0.1-0.5 0h-0.4-0.6-0.3-0.4-0.2c-0.2 0-0.8-0.1-1 0h-0.4-0.8c-0.1 0.1-0.1 0.3-0.2 0.4 0.6-0.1 1.4 0 1.9 0s1 0 1.5-0.1c0.2 0 0.4 0 0.6-0.1h1.1 1.1c-0.3 0-0.6 0.2-0.9 0.2-0.2 0-0.4 0-0.6 0.1-0.3 0-0.6 0.1-0.9 0.2h-0.2c-0.2 0-0.3 0-0.5 0.1-0.1 0-0.5 0.1-0.6 0.1h-0.5-0.7-0.2-1.2c-0.6 0-1.2 0.1-2 0h-0.2c-0.3-0.1-0.7-0.1-1-0.2h-0.5c-0.2 0-0.4-0.1-0.7-0.1h-0.6c-1.1-0.2-2.3-0.3-3.3-0.6-0.2 0-0.6-0.1-0.7-0.2 0.5 0.1 1.1 0.1 1.6 0.1s0.9 0.1 1.4 0.1h0.4 0.4 0.6 0.4c0.2 0 0.3 0.1 0.5 0.1h1.4c-0.1-0.2-0.2-0.3-0.3-0.5h-0.7c-0.2 0-0.4-0.1-0.6 0h-1.3c-0.2 0-0.3-0.1-0.5 0-0.4 0-0.8-0.1-1.3-0.1h-1.8c-0.2 0-0.4-0.1-0.6-0.1h-0.4c-0.2 0-0.4-0.1-0.5-0.1-0.1-0.1-0.2-0.1-0.4-0.1s-0.4-0.1-0.6-0.1-0.4-0.1-0.6-0.2c-0.1 0-0.2-0.1-0.3-0.1h0.3 1.2c0.3 0 0.6 0 0.9-0.1h1.2c0.2 0 0.3 0 0.5 0.1 0.3 0 0.6-0.1 0.9-0.1 0.4 0 0.9 0.1 1.3 0.1h1.5 0.9c-0.1-0.1-0.3-0.2-0.5-0.4h-0.4-0.3c-0.3 0-0.6 0-0.9-0.1h-0.3c-0.1 0-0.3-0.1-0.5 0h-1-0.4-1c-0.2 0-0.5-0.1-0.7-0.1s-0.4 0-0.5 0.1h-0.7c-0.7 0-1.5 0-2.1-0.1-0.3 0-0.6 0-0.8-0.1-0.4-0.1-0.8-0.5-1.2-0.7v-0.1h1.3c0.2 0 0.5 0.1 0.7 0.1h0.9 0.7 0.4 0.7 2.1 1.6 0.2 0.4c-0.4-0.2-0.9-0.3-1.4-0.4h-0.2-1.1-0.4-0.3-1.1-0.7-0.6-1.4-0.5-0.7c-0.2 0-0.3-0.1-0.5-0.1-0.3 0-0.7 0-1-0.1s-0.5-0.3-0.7-0.4c-0.1-0.1-0.3-0.1-0.3-0.3 0.6 0 1.3 0 1.9 0.1h1.3 0.6c-1.1-0.1-2-0.3-2.8-0.4h-0.4-0.5-0.2c-0.4 0-0.7-0.1-0.9-0.3l-0.2-0.2h0.3c-1.2-0.4-2.1-1-2.9-1.7-0.5-0.5-0.9-1.1-1.2-1.8h-0.2c-0.2 0-0.7-0.6-0.8-0.8 0 0 0.2 0 0.2-0.1h0.5c0-0.1 0-0.2-0.1-0.3h-1c-0.1 0-0.7-0.6-0.7-0.7v-0.1h0.5 1v-0.4h-0.2-0.3c-0.1 0-0.5-0.1-0.6 0h-0.2-0.7c-0.2-0.1-0.6-0.6-0.6-0.8h0.2 0.5c0.2 0 0.5 0 0.7-0.1h1v-0.4h-0.3-0.4-0.4-0.5-0.3c-0.1 0-0.2 0-0.3 0.1-0.2 0-0.4 0-0.5-0.1-0.1 0-0.5-0.6-0.4-0.7s0.7-0.1 0.8-0.1h2.3v-0.4h-0.9-0.3c-0.2 0-0.5-0.1-0.6 0-0.2 0-0.7-0.1-0.9 0h-0.4c-0.1 0-0.2 0-0.3-0.1s-0.1-0.2-0.2-0.3c-0.1-0.2-0.3-0.4-0.3-0.7 0.2 0 0.4 0.1 0.7 0.1h0.6 1 0.5c0.3 0 0.7 0.1 1 0h0.3v-0.4h-0.8-0.3-1.2-0.4-0.6-0.3-0.4c-0.1 0-0.2 0-0.3-0.1-0.2-0.1-0.4-0.6-0.5-0.8 0 0 0.1 0 0.1-0.1 0.4 0 0.7 0.1 1.1 0.1h0.3 0.3 0.6c0.2 0 0.4-0.1 0.7 0 0.2 0 0.3 0.1 0.5 0.1s0.7-0.1 1 0v-0.4h-0.2-3-0.4-0.6-0.3c-0.1 0-0.3 0-0.4-0.1-0.2-0.1-0.3-0.5-0.3-0.7h0.6 0.5 0.9 0.4 0.4c0.3 0 0.7 0 1 0.1h0.5c0.3 0 0.6 0.1 1 0.1v-0.5h-0.1-1-1c-0.2 0-0.3 0-0.5-0.1h-0.9c-0.2 0-0.5-0.1-0.6 0h-1.2c0-0.1-0.1-0.1-0.1-0.2-0.1-0.1-0.2-0.4-0.1-0.5l0.1-0.1h0.9 0.6 0.4 0.3 0.8 1.3c0.3 0 0.8 0.1 1.1 0.1v-0.4c-0.5 0-1.7-0.1-1.9 0h-0.9-1.1c-0.2 0-0.4 0-0.6-0.1h-0.4c-0.1 0-0.3-0.1-0.4 0h-0.2c-0.1 0-0.2 0-0.3-0.1s-0.3-0.6-0.2-0.7c0.3-0.2 0.9 0 1.3-0.1 0.4 0 0.7 0 1.1 0.1h0.8c0.1 0 0.3 0 0.4 0.1h1.9 0.7v-0.5h-0.3-1-0.5-1.2c-0.1 0-0.4-0.1-0.5 0h-0.8c-0.2 0-0.8-0.1-1 0-0.2 0-0.4 0-0.5-0.1-0.2 0-0.6 0-0.8-0.1-0.1-0.1-0.1-0.2-0.1-0.4 0-0.1-0.1-0.2-0.1-0.2 0.1-0.1 0.7-0.1 0.9-0.1h0.7 1.3 0.3 0.8 0.6 0.5 1.1 0.5v-0.4h-0.5-0.3-0.5-1.1-0.6-0.6c-0.2 0-0.6-0.1-0.8 0-0.3 0-0.5 0-0.8-0.1-0.3 0-1.3 0.1-1.5-0.1-0.1-0.1-0.2-0.6-0.2-0.7h0.5c0.4 0 0.8 0 1.2 0.1 0.1 0 0.2 0 0.3 0.1h1c0.3 0 0.5-0.1 0.8-0.1h0.6 0.5 1c0.2 0 0.9-0.1 1.2 0v-0.4h-0.3-0.8-0.6-0.2c-0.3 0-0.8-0.1-1 0h-0.5c-0.3 0-0.8-0.1-1 0-0.3 0-0.7-0.1-0.9 0-0.2 0-0.8-0.1-1 0-0.2 0-0.8 0-0.9-0.1s-0.1-0.2-0.1-0.3-0.1-0.2 0-0.3h0.1 0.6 1.5 0.6c1.1 0.1 2.2 0 3.4 0h1.1v-0.4h-0.5-1c-0.2 0-0.4 0-0.5 0.1h-0.3c-0.3 0-1.1-0.1-1.3 0-0.2 0-0.4-0.1-0.7-0.1-0.8 0-1.7 0-2.5-0.1-0.1 0-0.4 0-0.5-0.1s-0.1-0.5-0.1-0.7h1.6c0.3 0 0.7 0.1 0.9 0 0.4 0 0.9 0.1 1.3 0.1h0.6c0.3 0 0.5 0 0.8 0.1 0.1 0 0.2-0.1 0.4-0.1h0.7 0.2 0.8v-0.4h-0.4-0.5-0.9-0.5c-0.1 0-0.7-0.1-0.8 0h-0.5c-0.1 0-0.3-0.1-0.4 0-0.5 0-0.9-0.1-1.4-0.1h-0.4-0.7c-0.2 0-0.8 0-0.9-0.2-0.1-0.1-0.1-0.2-0.1-0.3s0-0.3 0.1-0.3c0.2-0.1 0.5 0 0.8 0h2.1 0.6 0.7 0.3 1 0.4 1.2 0.5v-0.4h-1c-0.2 0-0.7-0.1-0.9 0-0.2 0-0.7-0.1-0.8 0h-0.5-1.1-0.6c-0.2 0-0.7-0.1-0.9 0-0.3 0-0.6-0.1-0.9-0.1h-0.2-0.3c-0.6 0-0.6-0.1-0.6-0.7h0.1 0.4c0.3 0 0.9 0.1 1.2 0h0.7 0.7 0.5 0.3 1.6 0.4 0.5 0.4 1v-0.4h-0.5-0.7-0.4-0.6c-0.2 0-0.4-0.1-0.5 0h-0.7-3.2-0.6c-0.1 0-0.2 0-0.3-0.1-0.1 0-0.2 0-0.3-0.1s-0.1-0.6-0.1-0.8c0.2 0 0.4 0 0.5-0.1 0.3 0 0.8 0.1 1.1 0h0.4 0.3 0.7 0.5 0.5 0.4 3.5v-0.4h-0.6-1.2-0.5c-0.2 0-0.4-0.1-0.5 0h-1.7-0.3-1.6c-0.2 0-0.4-0.1-0.5 0h-0.2c-0.2 0-0.5 0-0.7-0.1-0.1-0.1-0.1-0.6 0-0.7s0.1-0.1 0.2-0.1c0.8 0 1.6 0 2.4 0.1h0.6 2 0.4 0.3 1.4 0.5v-0.4c-0.2 0-0.4-0.1-0.6 0h-2.6c-0.2 0-0.7-0.1-0.8 0h-3.1c-0.2 0-0.5 0-0.8-0.1 0-0.1 0-0.2-0.1-0.3 0-0.2 0-0.4 0.1-0.5 1.1 0 2.2 0.1 3.3 0.1h0.4c0.3 0 0.6 0.1 1 0.1h0.4 0.9c0.2 0 1.5 0 2 0.1v-0.5h-0.3-0.5-0.4-1.2-0.4-1.1-1.6c-0.2 0-0.6-0.1-0.7 0h-0.6c-0.4 0-0.7-0.1-1.1-0.1 0-0.2 0-0.7 0.1-0.7h0.4 0.3 0.4 1 0.8 1 1.8 2v-0.4h-0.2-0.4c-0.1 0-0.3-0.1-0.4 0-0.2 0-0.5-0.1-0.7 0-0.4 0-0.7 0-1-0.1h-0.4-0.5c-0.2 0-0.5-0.1-0.6 0h-0.8-0.4-0.9c-0.1 0-0.3-0.1-0.4 0h-0.9v-0.1c0-0.2 0-0.7 0.2-0.7h1.2 0.6 1.5 0.8 0.3c0.2 0 0.4 0 0.6 0.1h2.4v-0.4h-0.6-2.3c-0.3 0-0.9-0.1-1.1 0-0.1 0-0.3-0.1-0.4 0h-0.2-1c-0.4 0-0.7-0.1-1.1-0.1h-0.3c-0.2 0-0.5 0-0.7-0.1-0.1 0 0-0.1 0-0.1 0.1-0.5 0.1-0.6 0.7-0.6h0.4 0.5c0.3 0 0.7 0 1.1 0.1h0.5c1.5 0 3.1 0 4.6 0.1v-0.4h-0.3-1.2-0.6-0.5c-0.2 0-0.5-0.1-0.7 0-0.4 0-0.9 0-1.3-0.1h-0.4c-0.2 0-0.7-0.1-0.8 0h-1.6v-0.1c0-0.2 0-0.6 0.2-0.6 0.2-0.1 0.5-0.1 0.7-0.1h1 0.3c0.8 0.1 1.6 0.1 2.4 0.1h0.7 1 0.5 0.8v-0.4h-0.3-0.5-1.4c-0.1 0-0.4-0.1-0.5 0h-2.9-1.2c-0.2 0-0.3 0-0.4-0.1 0-0.1 0.1-0.5 0.2-0.6 0.1 0 0.1-0.1 0.2-0.1 0.6 0 1.2 0 1.8 0.1h0.7c0.1 0 0.3-0.1 0.4 0 0.8 0 1.6 0.1 2.4 0.1h0.7 0.9v-0.4h-0.6-0.4-1.5c-0.2 0-0.5-0.1-0.6 0-0.6 0-1.2 0-1.8-0.1-0.2 0-0.6-0.1-0.7 0h-0.2c-0.4 0-0.7-0.1-1.1-0.1 0-0.2 0.1-0.6 0.3-0.7 0.1-0.1 0.2 0 0.2-0.1 0.1 0 0.2 0 0.4 0.1h0.4 0.6 0.7c0.5 0 1 0.1 1.5 0.1h1.8 1.1v-0.4c-0.3 0-0.7 0-0.9 0.1h-0.5-0.5-0.3-0.6-0.3-1.9c-0.2 0-0.6-0.1-0.8 0-0.2 0-0.8 0-0.9-0.1s0.1-0.6 0.1-0.6c0.1-0.1 0.2-0.1 0.3-0.1 0.3 0 0.6 0.1 1 0.1h1 0.3 0.6 0.7 0.9 1.6v-0.4h-0.5c-0.2 0-0.7-0.1-0.9 0-0.1 0-0.3-0.1-0.4 0h-0.3c-0.4 0-0.7-0.1-1.1-0.1h-0.4-0.6-0.3-0.3c-0.3 0-1 0.1-1.2-0.1 0-0.2 0.2-0.6 0.3-0.7 0.5 0 1 0.1 1.5 0.1h1.4c0.1 0 0.3 0 0.4 0.1h0.6 0.4 1.1 0.5v-0.4h-0.3-1.3-1.1c-0.2 0-0.6-0.1-0.8 0-0.1 0-0.2 0-0.3 0.1-0.2 0-0.5-0.1-0.7-0.1h-1.1c0-0.2 0.1-0.3 0.2-0.5 0-0.1 0-0.2 0.1-0.3 0-0.1 0.1-0.1 0.2-0.1h1 0.6c0.5 0 1 0.1 1.4 0.1h0.9c0.5 0 1 0 1.4 0.1v-0.4c-0.2 0.1-1.1 0.1-1.3 0-0.2 0-0.5-0.1-0.6 0h-0.6-0.4-1.6c-0.2 0-0.4-0.1-0.6-0.1 0-0.3 0.2-0.6 0.3-0.8 0.2 0 0.4 0.1 0.6 0h1.5 0.4 1.7c0.3 0 0.5 0.1 0.8 0.1v-0.4h-0.2c-0.2 0-0.5-0.1-0.7 0h-1.2c-0.2 0-0.6-0.1-0.7 0h-0.2c-0.3 0-0.7 0-1-0.1-0.2 0-0.4 0-0.6-0.1v-0.1c0-0.1 0.2-0.5 0.3-0.6 0 0 0.1-0.1 0.2-0.1h1.3 1.7 1.2v-0.4h-0.3-0.5c-0.2 0-0.6-0.1-0.8 0-0.2 0-0.5-0.1-0.7 0-0.3 0-0.7-0.1-0.9 0h-0.4-0.4c0-0.1 0.3-0.7 0.4-0.8 0.2-0.1 0.6 0 0.8 0h1.2 0.7 0.3 0.5 0.1v-0.4h-0.1c-0.2 0-0.4 0-0.5 0.1h-0.4c-0.2 0-0.4-0.1-0.6 0h-0.2-0.2-0.4-0.9c-0.1 0 0-0.2 0-0.2 0.1-0.1 0.3-0.5 0.4-0.6s0.3-0.1 0.4-0.1h0.6 1 0.4 0.4v-0.4h-0.2-0.8-0.3c-0.2 0-0.6-0.1-0.8 0h-0.3c0-0.2 0.1-0.3 0.2-0.4s0.1-0.3 0.3-0.3h0.3 1 0.5 0.3v-0.4c-0.2 0-0.5-0.1-0.7 0h-0.2c-0.2 0-0.5 0-0.6-0.1 0-0.2 0.3-0.3 0.4-0.4s0.2-0.3 0.3-0.4h0.9v-0.3h-0.5v-0.1s0.5-0.6 0.6-0.7c0.2-0.4 1.5-1.4 1.7-1.6 0.2-0.1 0.4-0.3 0.6-0.4 0.3-0.1 0.7 0 1.1 0h1.4 1.3 0.8 2.9 0.3 0.6c0.6 0 1.2-0.1 1.8 0 0.7 0 1.4 0.1 2.1 0.1 0.4 0 0.8-0.1 1.2 0 0.3 0 0.5 0.1 0.8 0.1h2.1 1.4 0.4 0.7 0.4 0.3 0.5c0.2 0 0.4 0.1 0.6 0.1h0.6 2.3 0.8c0.5 0 0.9-0.1 1.4-0.1s0.9 0.1 1.4 0h0.7 0.5 2.1 1.9 0.4c0.5 0 1 0.1 1.6 0 0.2 0 0.4-0.1 0.7-0.1 0.2 0 0.4 0 0.6-0.1h1.3c0.2 0 0.5-0.1 0.7 0 0.1 0 0.2 0.1 0.2 0.2 0.4 0.3 1.3 1.1 2 1.8v0.1h0.1c0.2 0.1 0.5 0.4 0.4 0.5 0 0.1-0.2 0.1-0.3 0.1h-0.3v0.4c0.3 0 0.6 0 0.9 0.1 0.2 0.1 0.6 0.6 0.6 0.8h-0.2c-0.1 0-1 0-1.3-0.1v0.4h1.7 0.3c0.1 0.1 0.2 0.3 0.3 0.4 0 0.1 0.2 0.2 0.1 0.3 0 0.1-0.1 0.1-0.1 0.1h-1.3-0.4-0.6v1.7h1.8c0.3 0 0.7 0 0.9 0.1 0.1 0.1 0.4 0.6 0.5 0.8 0 0-0.1 0-0.1 0.1-0.2 0-0.7-0.1-0.8 0h-0.5c-0.2 0-0.5-0.1-0.7 0h-0.2c-0.3 0-0.6 0-0.9-0.1v0.4c0.8 0 1.8 0.1 2.6 0.1 0.2 0 0.9-0.1 1 0s0.1 0.2 0.2 0.3c0 0.1 0.1 0.1 0.1 0.2s0.1 0.2 0.1 0.3c-0.1 0-0.1 0-0.2 0.1-0.3 0-0.8-0.1-1-0.1h-0.2-0.5-1.3-0.5-0.4v0.4h0.4 0.8 0.5 1.9 0.7c0.2 0.1 0.2 0.3 0.3 0.4s0.1 0.2 0 0.3h-0.3c-0.2 0-0.5-0.1-0.6 0h-0.3c-0.2 0-0.6-0.1-0.7 0h-0.8-0.3-0.7-0.3-0.4v0.4c0.3-0.1 0.7-0.1 0.9-0.1h0.1c0.4 0.1 0.8 0 1.1 0h2.1c0.2 0 0.4-0.1 0.5 0s0.3 0.5 0.3 0.7c0.1 0-0.2 0.1-0.2 0.1h-0.7c-0.2 0-0.5-0.1-0.7 0h-0.9-0.2c-0.2 0-0.8-0.1-0.9 0h-1.4v0.4h0.5 1c0.3 0 0.5 0.1 0.8 0.1h0.7 1.4 0.5 0.4c0.1 0 0.3 0.7 0.3 0.8-0.2 0.1-0.7 0-0.9 0h-0.4-0.2-0.5c-0.2 0-0.6-0.1-0.8-0.1-0.1 0-0.2 0-0.3 0.1h-1-0.4c-0.2 0-0.4-0.1-0.6 0h-0.6v0.3h0.7 0.4 0.5 1.9c0.4 0 1 0.1 1.4 0 0.2 0.1 0.9-0.1 1 0.1 0.1 0.1 0.1 0.3 0.2 0.5s0.1 0.2-0.1 0.3h-1.2c-0.2 0-0.5-0.1-0.6 0h-0.7-0.3-0.5-0.6-0.3c-0.3 0-0.7-0.1-0.9 0h-0.7v0.4c0.3-0.1 1 0 1.2 0h1.2 0.8 0.6 0.5c0.4 0 0.8 0 1.2-0.1h0.3c0.2 0 0.4 0 0.5 0.1s0.3 0.6 0.1 0.7-0.5 0-0.7 0h-1.6-0.6-0.4c-0.2 0-0.8-0.1-1 0h-0.5c-0.2 0-0.4-0.1-0.6 0-0.4 0-0.7-0.1-1.1-0.1v0.4h0.5 0.9 1.7 0.3 0.3 0.9 0.4 0.5 0.6c0.1 0 0.3 0 0.4 0.1 0.2 0.1 0.2 0.5 0.3 0.7h-0.3-0.1-0.3-1.2-0.4-0.3-1.1c-0.2 0-0.4-0.1-0.6 0h-0.7-1-1v0.4h0.2 0.6 1.1 0.8 0.6 0.8 0.8 0.6c0.2 0 0.6 0.1 0.8 0 0.2 0 0.4 0 0.6 0.1 0.1 0.1 0.2 0.5 0.2 0.7 0 0-0.1 0-0.1 0.1h-0.5-0.6-2-0.8c-0.2 0-0.8-0.1-1 0h-1.5-0.5-0.3v0.4h0.4c0.5-0.1 0.9 0 1.4 0h2c0.4 0 0.9 0.1 1.2 0 0.3 0 2.1 0 2.3 0.1 0.1 0.2 0.1 0.5 0.1 0.7 0 0-0.1 0-0.2 0.1h-1.3c-0.1 0-0.3-0.1-0.4 0h-0.5c-0.2 0-0.7-0.1-0.9 0h-0.6-2.2c-0.2 0-0.4-0.1-0.5 0-0.1 0-0.7 0-0.9-0.1v0.4h0.6 0.5 0.6 0.5 1.8 0.4c0.5 0 1 0.1 1.5 0h0.5c0.2 0 1 0 1.1 0.1s0.2 0.5 0.2 0.7h-0.1-0.6c-0.2 0-0.5-0.1-0.7 0h-0.6-0.3c-0.4 0-0.7-0.1-1-0.1h-1.2-0.3-0.4-0.8c-0.1 0-0.3-0.1-0.4 0h-1.2v0.5c-0.8-0.2-0.6-0.2-0.4-0.2 0.3 0 0.5 0.1 0.8 0.1h0.8c0.3 0 0.6 0 0.9-0.1h3.3c0.2 0 1.3 0 1.4 0.1s0 0.2 0 0.3 0.1 0.3 0 0.4c-0.1 0.2-0.8 0-1 0.1h-0.3-0.9c-0.2 0-0.5-0.1-0.6 0-0.2 0-0.8-0.1-0.9 0-0.2 0-0.5-0.1-0.7 0h-1.4-0.4-0.5-0.4-0.4v0.4c0.3-0.1 0.8 0 1.1 0h0.6 1.2 0.7 1.3 2.2c0.3 0 0.5 0 0.8 0.1 0 0.2 0.2 0.6 0 0.7-0.1 0-0.2 0-0.2 0.1-0.2 0-0.4 0-0.6 0.1h-0.9-0.3-0.4c-0.3 0-0.7-0.1-1 0-0.3 0-0.6-0.1-0.9 0h-0.7c-0.2 0-0.6-0.1-0.7 0h-0.7-0.4-1v0.4h0.1c0.5 0 1-0.1 1.6-0.1h1.1c0.2 0 0.3 0.1 0.5 0h0.4 1.8 1.3 0.4c0.1 0 0.6 0 0.7 0.1v0.3c-0.3-0.1-0.3 0-0.4 0.1"/><path class="st2" d="m62.9 28.8v-0.8-0.8-0.4-1.2-1.8c0-0.2 0-0.4-0.1-0.6h-0.4-0.4-0.6c-0.4 0-0.9-0.1-1.3 0h-0.8-0.4-0.4-0.4c-0.2 0-0.3-0.1-0.5-0.1h-0.7-0.5-0.7c-0.3 0-0.7 0-1-0.1h-0.6c-0.2 0-0.3-0.1-0.5-0.1h-1.4-0.3-1.5-0.7-3.3-0.6-1.2-0.6c-0.3 0-0.5 0-0.8-0.1h-0.7-0.8c-0.4 0-0.7 0.1-1.1 0.1h-1.2-1.9-0.6-1.4-0.8c-0.2 0-0.4-0.1-0.7-0.1h-0.8-0.6-1.9-1.5-0.9-1.4c-0.5 0-1 0.1-1.5 0-0.4-0.1-0.9 0-1.3 0h-0.1c-0.1 0.2 0 0.5 0 0.7v0.8 1.2 1 2.8 0.5 0.8 1.1 3.3c0 0.2 0 0.5-0.1 0.7v0.8 0.4 1.9 0.8c0 0.3-0.1 0.6-0.1 0.9v0.7 0.6 1.1 0.5 0.6 0.7 0.9c0 0.4-0.1 0.8-0.1 1.2v0.4 0.8 0.7c0 1.8-0.1 3.5-0.1 5.2v1.2 1.9 0.4c0 0.6-0.1 1.3-0.1 1.9v0.5c0 0.9 0 1.7 0.2 2.5 0.1 0.2 0.1 0.3 0.2 0.5 0.1 0.3 0.2 0.7 0.4 1 0.3 0.4 0.6 0.8 1 1.1 0.1 0 0.1 0.1 0.2 0.1 0.1 0.1 0.2 0.1 0.3 0.2 0.2 0.1 0.3 0.1 0.5 0.2s0.5 0.2 0.7 0.3 0.5 0.1 0.7 0.2c0.4 0.1 0.9 0.3 1.4 0.4s0.9 0.1 1.4 0.2c1.4 0.2 2.8 0.4 4.2 0.5h0.9c0.4 0 0.8 0.1 1.2 0.1l1.2 0.3c0.2 0 0.4 0.1 0.6 0.1s0.4 0.1 0.6 0.1c0.2 0.1 0.4 0.2 0.5 0.2 0.2 0.1 0.3 0.1 0.5 0.2 0.8 0.3 1.5 0.9 2.2 1.5 0.2 0.3 0.4 0.5 0.6 0.8 0.1 0.2 0.2 0.3 0.3 0.5 0 0 0 0.1 0.1 0.1 0.3-0.8 0.7-1.5 1.3-2.1 0.2-0.2 0.5-0.3 0.8-0.5s0.6-0.5 1-0.5c0.2-0.1 0.4-0.1 0.5-0.2 0.2-0.1 0.5-0.2 0.8-0.2 0.1 0 0.2-0.1 0.2-0.1 0.1-0.1 0.3-0.1 0.4-0.1h0.2c0.1 0 0.1-0.1 0.2 0 0.1 0 0.2-0.1 0.3-0.1 0.1-0.1 0.2-0.1 0.3-0.1 0.1-0.1 0.2-0.1 0.3-0.1h0.2c0.1-0.1 0.2-0.1 0.3-0.1h0.2 0.2 0.2 0.2c0.1-0.1 0.4 0 0.5 0h0.2 0.3c0.2-0.1 0.4 0 0.6 0h0.2c0.2-0.1 0.4-0.1 0.6-0.1 0.1 0 0.2-0.1 0.3-0.1s0.2-0.1 0.3-0.1h0.2c0.1-0.1 0.3 0 0.4 0s0.2-0.1 0.3-0.1c0.1-0.1 0.3 0 0.5 0 0.1-0.1 0.5-0.2 0.7-0.2 0.1 0 0.2-0.1 0.3-0.1h0.2c0.2-0.1 0.3-0.1 0.6-0.1 0.1-0.1 0.3-0.1 0.4-0.1 0.1-0.1 0.4-0.2 0.5-0.2s0.2-0.1 0.2-0.1c0.3-0.1 0.6-0.2 0.9-0.3s0.7-0.3 1-0.4c0.2-0.1 0.3-0.1 0.5-0.2 0.3-0.1 0.5-0.3 0.7-0.5 0.1-0.1 0.3-0.2 0.4-0.3 0.2-0.2 0.4-0.3 0.6-0.6s0.4-0.8 0.5-1.1c0-0.2 0.1-0.4 0.1-0.6s0.1-0.4 0.1-0.5v-0.9-1-0.3-0.5-1.7-1.4-0.6-0.3-0.8-1.6-2.2c0-0.2 0-0.4 0.1-0.6v-1.1c0-0.2 0-0.3 0.1-0.5 0-0.3-0.1-0.6-0.1-0.9 0-0.8 0.1-1.5 0.1-2.3 0-0.3-0.1-0.6-0.1-0.8v-0.6-0.3-0.5-0.3-0.8c0-0.5 0-1.1 0.1-1.6v-0.4-0.3-0.6-0.8-0.7-0.3c0-0.5-0.1-1-0.1-1.5v-0.8-0.4c0-0.3 0-0.7-0.1-1v-0.6-0.8-0.7-0.7-0.4c-0.2 0-0.2-0.3-0.2-0.7m-0.7 9.7v0.2 0.4 0.4 2.2 0.3 0.4 0.3 0.3 0.3 0.6c0 0.3 0.1 0.6 0.1 0.9v0.4 0.3 0.4 0.2 0.5c0 1.7 0 3.4-0.1 5.1v1.8 0.5 2.1c0 0.2-0.1 0.4-0.1 0.6s0.1 0.3 0.1 0.5 0 0.3-0.1 0.5v0.2 0.2 0.3 0.7 0.3 0.6c0 0.6 0 1.2-0.1 1.8v0.4c0 0.3-0.2 0.6-0.3 0.9-0.3 0.5-0.9 0.9-1.4 1.2-0.3 0.2-0.5 0.4-0.8 0.5-0.3 0.2-0.7 0.3-1.1 0.4s-0.9 0.3-1.3 0.4c-0.2 0-0.3 0.1-0.5 0.1-0.5 0.1-0.9 0.2-1.4 0.3h-0.3c-0.3 0.1-0.6 0.1-1 0.2-0.4 0-0.7 0.1-1.1 0.1s-0.8 0.1-1.2 0.1h-1c-0.3 0-0.5 0.1-0.8 0.1h-0.5c-0.6 0.1-1.2 0.3-1.9 0.4-0.3 0.1-0.7 0.1-1 0.2-0.2 0.1-0.3 0.1-0.5 0.2-0.1 0-0.3 0.1-0.4 0.1-0.9 0.5-1.7 1.1-2.3 1.9-0.1 0.1-0.1 0.2-0.2 0.3 0 0-0.2 0.1-0.2 0.2h-0.1c-0.1-0.1-0.2-0.2-0.2-0.3-0.3-0.3-0.5-0.6-0.8-0.8-0.2-0.2-0.5-0.3-0.8-0.5-0.1-0.1-0.3-0.2-0.4-0.3-0.2-0.1-0.5-0.2-0.7-0.4-0.3-0.1-0.7-0.2-1-0.4-0.2-0.1-0.4-0.1-0.7-0.2-0.1 0-0.2-0.1-0.3-0.1-0.4-0.1-0.7-0.1-1-0.2-0.1 0-0.2-0.1-0.4-0.1h-0.4c-0.3 0-0.5-0.1-0.8-0.1h-0.8c-0.1 0-0.3-0.1-0.4-0.1h-1c-0.7-0.1-1.4-0.2-2-0.3-0.3 0-0.6 0-1-0.1-0.3 0-0.7-0.1-1-0.2-0.4-0.1-0.8-0.1-1.2-0.2-0.5-0.1-1-0.4-1.5-0.6-0.7-0.3-1.5-0.8-1.9-1.5-0.6-1-0.6-2.4-0.6-3.7 0-0.2-0.1-0.3 0-0.5 0-0.1 0-0.3 0.1-0.4v-0.4-1-0.8-0.3-0.3-0.7c0-0.5 0.1-1 0.1-1.5 0-1.2 0-2.3 0.1-3.4v-0.5-1c0-0.3 0.1-0.6 0.1-0.9v-3.8c0-0.3 0-0.6 0.1-0.9v-0.7-2.1-1c0-0.2 0-0.5 0.1-0.7v-1.4-3.2c0-0.1 0-0.3 0.1-0.4v-0.2-0.7-1.9-1.1c0-0.2 0-0.3 0.1-0.5v-0.5c0-0.2 0.1-0.3 0.1-0.5v-2-0.7-0.5-0.5c0-0.2-0.1-0.9 0.1-1.1 0.1-0.1 0.3 0 0.5 0 0.2-0.1 0.7 0 1 0 0.2-0.1 0.4 0 0.6 0h2c0.1-0.1 0.4 0 0.6 0 0.2-0.1 0.4 0 0.6 0h0.3c0.2-0.1 0.4 0 0.6 0 0.5 0 1 0.1 1.5 0.1 0.2-0.1 0.6 0 0.9 0 0.2-0.1 0.7 0 0.9 0h1.1c0.1-0.1 0.3 0 0.4 0h0.9c0.2-0.1 0.4 0 0.6 0h0.3c0.3 0 0.6 0.1 0.9 0.1 0.1-0.1 0.3 0 0.5 0h0.4 0.5c0.2-0.1 0.8 0 1.1 0h0.6 0.3 0.6 2.3 0.3 0.2c0.3-0.1 0.8 0.1 1.1 0.1h0.2 0.2c0.2-0.1 0.5 0 0.7 0h1.6c0.2 0 0.4 0.1 0.6 0.1h0.3c0.1-0.1 0.3 0 0.4 0h0.8 0.2c0.3-0.1 0.6 0 0.9-0.1 0.4 0 0.7 0.1 1 0.1h0.7 0.2c0.2-0.1 0.6 0 0.8 0h1c0.1-0.1 0.6 0 0.7 0h1.9c0.2 0 0.4 0 0.5 0.1h0.4 0.3 1 1.5s0.3-0.1 0.3 0v1.5 1.5 2.8c-0.1 1.7 0 3.3 0 5v0.7c0 0.3-0.1 0.6 0 0.9v0.4 1.1c-0.4 0-0.4 0.2-0.4 0.5"/><path class="st2" d="m46.5 61.8c-0.1-0.3-0.2-0.5-0.2-0.7 0-0.1 0-0.2-0.1-0.3 0-0.1-0.1-0.1-0.2-0.1-0.1 0.1-0.2 0.1-0.2 0.2 0 0.2 0.1 0.4 0.2 0.6s0.2 0.5 0.3 0.8c0.1 0.2 0.1 0.3 0.2 0.5 0.1 0.1 0.3 0.3 0.5 0.2 0.1 0 0-0.2-0.1-0.3-0.2-0.3-0.3-0.6-0.4-0.9"/><path class="st2" d="m35.7 48.8c0.1-0.2 0.2-0.4 0.3-0.5s0.2-0.2 0.3-0.2c0.1-0.1 0.2-0.2 0.3-0.4 0.1-0.1 0.2-0.1 0.2-0.2 0.1-0.3 0.1-1 0.1-1.3v-0.9-0.6-1.2-0.6c0-0.5 0.1-1.1 0-1.6v-1.5-0.5-0.4-1-0.5-0.8c0-0.2 0.1-0.5 0-0.7-0.2 0.1-1 0.9-1 1.2-0.1 0.2 0 0.6 0 0.9 0 0.4-0.1 0.8-0.1 1.2v0.3 0.6c0 0.3-0.1 0.6-0.1 1v0.6 0.6 0.8c0 0.4-0.1 0.9-0.1 1.3 0 0.3 0 0.6 0.1 0.8 0 0.2-0.1 0.5-0.1 0.7s0.1 0.4 0 0.6c0 0.3-0.1 0.6-0.1 0.9 0.2 0.4 0.2 0.9 0.2 1.4"/><path class="st2" d="m49.8 49.1c0-0.3-0.2-0.5-0.4-0.7-0.1-0.1-0.2-0.3-0.4-0.4-0.3-0.2-0.6-0.4-1-0.4h-0.6c-0.1 0.1-0.3 0-0.4 0.1-0.2 0.1-0.5 0.1-0.7 0.2-0.7 0.2-1.3 0.5-1.9 0.8-0.2 0.1-0.4 0.3-0.6 0.4s-0.3 0.4-0.6 0.5c-0.2 0-0.3-0.2-0.4-0.3-0.1 0-0.1-0.1-0.2-0.1-0.3-0.2-0.5-0.5-0.8-0.6-0.5-0.3-0.9-0.3-1.5-0.4-0.2 0-0.3-0.1-0.5-0.1-0.8-0.2-1.9-0.2-2.6 0.3-0.2 0.1-0.3 0.2-0.4 0.4-0.3 0.2-0.4 0.3-0.5 0.6 0 0.1-0.1 0.2-0.1 0.3 0.1 0.1 0.3 0.1 0.4 0.1 0.1-0.1 0.4 0 0.5 0h1.4c0.1-0.1 0.3-0.1 0.5-0.1h1 0.4c0.4 0 0.8 0.1 1.3 0.1h0.1 0.6c0.1 0 0.1 0 0.2 0.1s0 0.3 0.1 0.4c0.1 0.4 0.4 0.6 0.8 0.6 0.5 0 0.8-0.4 0.8-0.9v-0.2c0.1-0.1 0.2-0.1 0.4-0.1h0.2 0.2c0.1-0.1 0.5 0 0.7 0 0.1 0 0.2-0.1 0.3-0.1 0.2-0.1 0.4-0.1 0.6-0.1h0.2c0.2-0.1 0.4 0 0.6 0 0.2-0.1 0.4-0.1 0.6-0.1h1.7c-0.2-0.3 0-0.2 0-0.3"/><path class="st2" d="m37.3 46.6v0.7h0.3c0.1 0 0.2-0.1 0.3-0.1s0.2-0.1 0.3 0h0.2c0.3-0.1 0.9 0 1.2 0.1s0.6 0 0.9 0.1c0.4 0.1 0.9 0.3 1.3 0.5 0.1 0.1 0.8 0.6 0.8 0.6 0.2-0.3 0.2-0.6 0.2-0.9 0.1-0.4 0.1-0.8 0.1-1.2 0-0.6 0.1-1.2 0.1-1.9v-0.8-2.3c0-1.2 0.1-2.4 0-3.6 0-0.4 0-0.8-0.2-1.1-0.4-0.6-1-0.8-1.6-1-0.2-0.1-0.3-0.1-0.5-0.2-0.2 0-0.4-0.1-0.6-0.1-0.3-0.1-0.6-0.1-0.9-0.1h-1.3c-0.1 0.1-0.3 0-0.4 0.2s0 0.6 0 0.8v2.2 1.3c0 0.4-0.1 0.7-0.1 1.1 0 0.3 0.1 0.5 0.1 0.8v1.7c0 0.2 0 0.5-0.1 0.7v1.4c0 0.2 0 0.5-0.1 0.7-0.1 0 0 0.2 0 0.4m4.6-0.7c-0.4-0.2-0.9-0.4-1.4-0.5-0.2-0.1-0.3-0.1-0.5-0.1-0.3-0.1-0.5-0.1-0.8-0.2-0.3 0-0.6-0.1-0.9-0.1h-0.1c-0.2-0.1-0.2-0.6 0.1-0.6 0.2 0 0.4 0.1 0.6 0.1s0.4 0.1 0.6 0.1c0.2 0.1 0.3 0.1 0.5 0.2 0.5 0.2 0.9 0.3 1.3 0.5 0.1 0 0.2 0.1 0.3 0.1 0.3 0.1 0.6 0.4 0.8 0.6 0.1 0.1 0.2 0.1 0.2 0.2-0.3 0-0.5-0.2-0.7-0.3m0.6-2.9c-0.1 0-0.1 0 0 0-0.3 0.1-1-0.6-1.2-0.7-0.3-0.1-0.5-0.2-0.8-0.3-0.4-0.1-0.7-0.3-1.1-0.4-0.2 0-0.3 0-0.5-0.1-0.2 0-0.6 0-0.7-0.1-0.2-0.2-0.1-0.6 0.2-0.6 1.2 0.1 2.2 0.6 3.1 1.2 0.3 0.1 0.9 0.5 1.1 0.8-0.1 0.1 0 0.2-0.1 0.2m-4.4-5.4c0.4 0 0.7 0.1 1 0.2 0.1 0 0.2 0 0.3 0.1 0.2 0.1 0.4 0.2 0.6 0.2 0.2 0.1 0.4 0.1 0.6 0.2 0.1 0 0.2 0.1 0.3 0.1 0.3 0.1 0.5 0.2 0.8 0.4 0.2 0.1 1.1 0.6 0.9 0.8 0 0.1-0.1 0.1-0.2 0-0.2 0-0.3-0.2-0.4-0.2-0.2-0.1-0.3-0.2-0.5-0.3-0.8-0.4-1.8-0.7-2.7-0.9-0.3-0.1-0.6-0.1-0.8-0.2-0.1 0-0.1-0.3 0.1-0.4"/><path class="st2" d="m44.3 31c0.1 0 0.2-0.1 0.3-0.1 0.1-0.1 0.3-0.2 0.3-0.3 0.1-0.2-0.1-0.6-0.3-0.7h-0.2c0 0.2 0.1 0.2 0.1 0.4 0 0.1-0.1 0.2-0.2 0.3s-0.1 0.4 0 0.4"/><path class="st2" d="m44.9 28.4c-0.2-0.1-0.4-0.1-0.6-0.2s-0.3-0.2-0.5-0.2c-0.1 0-0.2 0.1-0.2 0.2 0 0.2 0.2 0.3 0.3 0.4s0.2 0.3 0.3 0.3 0.2-0.1 0.3-0.2 0.2-0.1 0.3-0.2c0.2 0 0.2-0.1 0.1-0.1"/><path class="st2" d="m43.7 32.2c0.2 0.1 0.6 0 0.6-0.2s-0.2-0.3-0.3-0.3c-0.1 0.1-0.5 0.4-0.3 0.5"/><path class="st2" d="m48.8 35.6c-0.1-0.1-0.3 0-0.4 0h-0.5c-0.2 0.1-0.4 0-0.7 0.1-1 0.2-1.9 0.3-2.7 0.8-0.2 0.1-0.4 0.2-0.6 0.4-0.1 0.1-0.1 0.3-0.1 0.5-0.1 0.5-0.1 0.9-0.1 1.4 0 0.2 0 0.5-0.1 0.7v1.1c0 0.1 0 0.3-0.1 0.4v1 1.5 1.5 0.4 0.2 0.7c0 0.7 0 1.5 0.2 2l0.1 0.1c0.3-0.1 0.6-0.3 0.8-0.5 0.2-0.1 0.5-0.2 0.8-0.3 0.3-0.2 0.4-0.3 0.8-0.3 0.1-0.1 0.4-0.1 0.6-0.1h0.2 0.2c0.3-0.1 0.9 0 1.2 0.1 0.1 0 0.3 0.1 0.4 0.1 0.1-0.4 0-0.9 0-1.3v-0.7-0.8-0.4-1-0.6-1.1-0.5-2-0.6-1.5c0-0.2-0.1-0.3-0.1-0.5v-0.6c0.1-0.1 0.1-0.2 0.1-0.2m-4.8 6.8c0.6-0.6 1.5-0.9 2.2-1.2 0.2-0.1 0.5-0.3 0.8-0.3 0.1-0.1 0.3-0.2 0.4-0.2 0.2 0 0.3 0.1 0.3 0.3s-0.1 0.3-0.2 0.4c-0.2 0.2-0.5 0.2-0.8 0.3s-0.6 0.2-0.9 0.3c-0.2 0.1-0.4 0.1-0.6 0.2-0.4 0.1-0.7 0.3-1 0.5-0.1 0.1-0.2 0.2-0.4 0.2h-0.1c0-0.3 0.2-0.5 0.3-0.5m3.7 2.1c-0.2 0.1-0.5 0.1-0.8 0.2-0.2 0-0.5 0.1-0.7 0.2-0.8 0.2-1.4 0.5-2.1 0.9-0.1 0-0.3 0.3-0.4 0.1-0.1-0.1 0.1-0.2 0.2-0.3 0.3-0.2 0.5-0.4 0.8-0.6s0.6-0.4 1-0.5c0.1-0.1 0.2-0.1 0.3-0.2 0.4-0.2 0.9-0.3 1.3-0.4 0.1 0 0.3 0 0.4 0.1 0.3 0.1 0.2 0.4 0 0.5m0.1-6.5c-0.1 0.1-0.3 0.1-0.4 0.1-0.3 0.1-0.6 0.2-0.9 0.3-0.4 0.1-0.8 0.3-1.2 0.5-0.3 0.2-0.5 0.3-0.8 0.5 0 0-0.4 0.2-0.4 0.1 0-0.3 0.4-0.5 0.6-0.6 0.1-0.1 0.2-0.1 0.3-0.2 0.3-0.2 0.6-0.3 0.8-0.5 0.3-0.1 0.6-0.2 0.9-0.3 0.1-0.1 0.2-0.1 0.3-0.1 0.1-0.1 0.3-0.1 0.4-0.1h0.3c0.3 0 0.2 0.2 0.1 0.3"/><path class="st2" d="m43.2 30.7c-0.1 0-0.1 0-0.2-0.1-0.1 0-0.2 0.1-0.2 0.2v0.3c0 0.2 0 0.4 0.1 0.5s0.1 0.1 0.2 0.1 0.1 0.1 0.2 0.1c0.2 0 0.6-0.3 0.6-0.5-0.1 0-0.6-0.5-0.7-0.6"/><path class="st2" d="m50.6 38.5c0-0.2-0.1-0.5-0.1-0.7v-0.4-0.3h-0.1c-0.1 0.5 0 1.1 0 1.6 0 0.2-0.1 0.4-0.1 0.6v0.3 0.3c-0.1 0-0.2 0-0.2-0.1v-0.5-0.3c0-0.6 0.1-1.3 0.1-1.9v-0.3-0.2h-0.1c0 0.5-0.1 0.9-0.1 1.3 0 0.1 0 0.2-0.1 0.2h-0.1c-0.1-0.4-0.1-0.8-0.1-1.2 0-0.2 0-0.4-0.1-0.6-0.1 0.1-0.1 0.3-0.1 0.5v0.7c0 0.2 0.1 0.5 0 0.7-0.1 1.5-0.1 3-0.1 4.6v0.9c0 0.3-0.1 0.5-0.1 0.8v1.2c0 0.4-0.1 0.8 0 1.2 0 0.1 0 0.2 0.1 0.2 0.1-0.2 0.1-0.5 0.1-0.7 0-0.4 0.1-0.8 0.1-1.3 0-0.3-0.1-0.6 0-0.9 0 0 0-0.1 0.1 0 0.1 0 0.1 0.2 0.1 0.3 0.1 0.3 0 0.6 0 1v0.8 0.9 0.4c0 0.1 0 0.3 0.2 0.3v-1.4-0.6c0-0.2 0-0.4 0.1-0.6 0-0.1 0-0.3 0.1-0.4 0-0.2-0.1-0.4-0.1-0.6v-0.9-0.5c0-0.1 0.1-0.1 0.1-0.1 0.1 0.1 0.2 0.2 0.2 0.3v1.1 0.3c0 0.3 0.1 0.6 0.1 0.9v0.4 1.6c0 0.4 0 0.8 0.1 1.2v0.2h0.1c0.1-0.2 0.1-0.5 0.1-0.8s0.1-0.6 0-1c0-0.2-0.1-0.4-0.1-0.6s0.1-0.4 0.1-0.6c0-0.3-0.1-0.6-0.1-1 0-0.3 0-0.7 0.1-1v-0.8-0.3c0-0.2 0-0.3 0.1-0.5v-0.8-1.3c-0.3-0.7-0.3-1.1-0.3-1.6m-0.9 4.1s-0.2 0.2-0.2 0.1v-0.3-0.8-1c0-0.3 0-0.6 0.1-0.8 0.1 0 0.1 0.1 0.2 0.2 0.1 0.3 0 0.6 0 0.9-0.1 0.6 0 1.3-0.1 1.7m0-3.8c-0.2 0-0.2-0.2-0.1-0.3 0.1 0 0.2 0.3 0.1 0.3m0.4 3.2c-0.1-0.2-0.1-0.4-0.1-0.7s-0.1-0.6 0.1-0.9c0.1 0 0.1 0 0.2 0.1 0.1 0.2 0.1 1.5-0.2 1.5"/><path class="st2" d="m46.7 56.2h0.3 0.7 0.2c-0.2-0.3-0.6-0.6-0.9-0.9l-2.1-2.1c-0.1-0.1-0.3-0.3-0.5-0.4l-0.7-0.7c-0.1-0.1-0.3-0.3-0.5-0.4v0.1c-0.1 0-0.2 0.1-0.3 0.2-0.3 0.3-0.5 0.6-0.8 0.8l-2.4 2.4c-0.1 0.1-1 1-1 1.1 0.6 0.1 1.3 0 1.9 0h0.7c0.1 0 0.3 0 0.4 0.1v0.1c-0.1 0.1-1.2 1.4-1.2 1.4v0.1h2.2 0.1c-0.1-0.2-0.2-0.3-0.3-0.5-0.2-0.2-0.4-0.5-0.5-0.8 0-0.1-0.1-0.2 0-0.2 0.1-0.3 1.4-0.1 1.7-0.1 0.2-0.1 0.6 0 0.8 0 0.3 0 0.7-0.1 1.1 0 0.1 0 0.1 0.1 0.1 0.2 0 0.2-0.5 0.9-0.6 1.2 0 0.1-0.1 0.1-0.1 0.2h1.2 0.7 0.1c0-0.2-0.7-1-0.8-1.2-0.1-0.1-0.2-0.2-0.2-0.3 0-0.4 0.4-0.3 0.7-0.3"/><path class="st2" d="m44.1 57.8c0.2-0.1 0.8-1 0.8-1.2h-0.4c-0.1 0-0.1 0.1-0.2 0.1-0.1 0.1-0.7 0.9-0.7 1 0.2 0.1 0.4 0.1 0.5 0.1"/><path class="st2" d="m40.3 56.6c-0.2 0.2-1.2 0.9-1.2 1.1h0.5c0.2-0.1 1-0.9 1-1.1h-0.3"/><path class="st2" d="m48.7 57.7c0-0.5 0-1-0.4-1.2-0.1 0.3-0.1 0.7-0.1 1.1v1.6 0.3h-2.5-1.1c-0.7 0-1.4-0.1-2.1-0.1-0.5 0-1 0.1-1.5 0.1-0.3 0-2.4-0.2-2.5 0v0.1c0.2 0.3 0.5 0.2 0.9 0.2h0.2 0.2 0.6 1 0.3c0.1-0.1 0.6 0 0.8 0h0.2 1.1c0.2-0.1 0.5 0 0.7 0h1.4c0.1-0.1 0.3 0 0.5 0 0.2-0.1 0.4 0 0.6 0h1.2 0.2v-0.1c0.1-0.2 0-0.5 0-0.8 0-0.2 0-0.3 0.1-0.5 0.3-0.1 0.3-0.4 0.2-0.7"/><path class="st2" d="m48.7 64.4v-0.4-0.3c-0.1-0.1-0.2-0.1-0.4-0.1l-0.1 0.1v0.6 2c0.1 0 0.4 0 0.4-0.2 0.1-0.2 0.1-0.8 0-1.1 0-0.1 0-0.3 0.1-0.6"/><path class="st2" d="m56.4 64.8c-0.5-0.5-1-1-1.5-1.4-0.6-0.6-1.2-1.3-1.9-1.9-0.2-0.2-0.5-0.4-0.7-0.7l-0.3-0.3c-0.9-1-2-1.9-2.9-2.8-0.1 0.4 0 0.8 0 1.2v0.8 0.7c-0.1 0.2-1.5 0.2-1.8 0.2-0.1 0-0.5 0-0.6 0.1v0.1c0.1 0.4 0.3 0.8 0.4 1.1 0.1 0.2 0.2 0.9 0.4 1.1 0.1 0.1 0.6 0.1 0.7 0.1 0.1-0.1 0.5 0 0.6 0 0.3-0.1 0.2 0.5 0.2 0.6v0.5c0 0.3-0.1 2 0.1 2.1 0.1 0.1 0.5 0 0.7 0 0.1 0 0.2-0.1 0.3-0.1 0.1-0.1 0.4 0 0.5 0h0.2c0.1-0.1 0.4 0 0.6 0 0.1 0 0.4-0.1 0.4-0.1 0.1 0 0.2 0.1 0.3 0.1h0.3c0.2-0.1 0.5-0.1 0.8-0.1h0.2c0.1-0.1 0.3 0 0.5 0h0.2 0.2c0.1-0.1 0.2 0 0.3-0.1 0.1 0 0.3-0.1 0.4-0.1 0.2 0 0.4-0.1 0.7-0.1 0.1-0.1 0.4-0.1 0.5-0.1s0.2-0.1 0.3-0.1c0 0 0.2-0.1 0.2-0.2 0-0.4-0.2-0.5-0.3-0.6"/><path class="st2" d="m61.8 38.9v-0.3-0.3-0.6-1-0.9-1.8c0-0.2 0.1-0.7-0.1-0.9-0.1 0.2-0.4 0.4-0.6 0.6-0.7 0.8-1.5 1.5-2.3 2.3-0.5 0.5-1 1.1-1.5 1.6-0.3 0.2-0.5 0.5-0.8 0.8l-0.7 0.7c-0.2 0.2-0.4 0.3-0.5 0.5s-0.3 0.3-0.4 0.5l-1.8 1.8c-0.2 0.2-0.4 0.5-0.6 0.7s-0.6 0.5-0.7 0.7v0.1c0 0.1 1.3 1.4 1.5 1.6 1 1 2.1 2 3.1 3 0.1 0.1 0.2 0.2 0.2 0.3 0.2 0.1 0.3 0.3 0.4 0.4 0.2 0.2 0.3 0.4 0.5 0.5 1 1.1 2.1 2.1 3.2 3.2 0.1 0.1 1 1.1 1.1 1.1 0.2 0 0.1-0.9 0.1-1.1v-0.5-0.4c0-0.1 0-0.2 0.1-0.4 0-0.2-0.1-0.4 0-0.6v-0.3-1.2-0.7-0.4-0.5-0.7-0.2c0-0.2 0-0.4 0.1-0.7 0-0.4 0-0.7-0.1-1.1 0-0.3 0.1-0.6 0.1-0.9 0-0.2 0-0.4-0.1-0.6v-0.3-1-0.4c0-0.3 0-0.5-0.1-0.8v-1.5c-0.1-0.1-0.1-0.2-0.1-0.3"/><path class="st2" d="m48.2 25.8c-0.1 0.1-0.1 0.2-0.2 0.3s-0.1 0.2-0.2 0.3c-0.1 0.2-0.3 0.2-0.4 0.4-0.1 0.1-0.1 0.3-0.3 0.4-0.3 0.2-0.5 0.5-0.6 0.8 0 0.1-0.1 0.1-0.1 0.2 0 0-0.1 0.1 0 0.1 0 0.1 0.1 0.2 0.2 0.3 0.2 0.2 0.3 0.4 0.3 0.7 0 0.2 0.1 0.4 0.1 0.6s-0.1 0.4-0.2 0.6c0 0.1 0 0.3-0.1 0.4s-0.1 0.2-0.2 0.3-0.1 0.2-0.2 0.3c-0.2 0.3-0.5 0.4-0.8 0.6-0.1 0.1-0.2 0.2-0.4 0.3s-0.4 0.1-0.6 0.3c-0.2 0.1-0.3 0.3-0.4 0.5-0.1 0.1-0.2 0.1-0.3 0.2-0.1 0.2 0 0.3 0 0.5 0 0.1 0 0.2-0.1 0.3v0.6 0.2c0.2-0.1 0.4-0.4 0.6-0.6l2.8-2.8c0.2-0.2 0.3-0.4 0.5-0.6 0.3-0.3 0.7-0.6 1-1 0.1-0.1 0.2-0.3 0.3-0.4l0.3-0.3c0.2-0.2 0.4-0.4 0.6-0.5 0.5-0.5 1-1.1 1.5-1.6 0.1-0.1 0.3-0.2 0.4-0.4l1.7-1.7c0.3-0.3 0.7-0.6 0.9-0.9-0.2 0.1-0.5 0.1-0.8 0h-0.2c-0.2 0-0.4 0.1-0.6 0.1s-0.5-0.1-0.7-0.1h-0.6c-0.1 0.1-0.2 0-0.4 0.1h-0.9-0.5l-0.2 0.2c-0.2 0.2-0.3 0.4-0.5 0.6-0.1 0.1-0.1 0.2-0.2 0.2-0.1 0.1-0.2 0.1-0.3 0.2l-0.2 0.2c0.2 0 0.1 0 0 0.1"/><path class="st2" d="m46.4 26.4c-0.1 0.2-0.4 0.3-0.4 0.6v0.3h0.1c0.2-0.3 0.6-0.7 0.3-0.9"/><path class="st2" d="m45.9 30.6s0.1 0.1 0.1 0c0.2-0.1 0.3-0.3 0.3-0.5-0.1 0.2-0.4 0.3-0.4 0.5"/><path class="st2" d="m45.7 28.6-0.2 0.2v1c0 0.1 0.1 0.1 0.2 0.1s0.1-0.1 0.2-0.1c0.3-0.3 0.2-0.6 0.1-0.9-0.1-0.2-0.1-0.3-0.3-0.3"/><path class="st2" d="m45 31.6c0.1 0.1 0.5-0.1 0.5-0.2-0.1-0.1-0.2-0.1-0.3-0.1s-0.3 0.2-0.2 0.3"/><path class="st2" d="m46.9 25.6c-0.1 0.1-0.2 0.3 0 0.4 0.1 0 0.2 0.1 0.2 0 0.1-0.1 0.2-0.3 0.3-0.4 0.2-0.2 0.9-1.2 1.2-1.2v-0.1c-0.2 0-0.4 0-0.6-0.1l-0.2 0.2c-0.1 0.1-0.2 0.3-0.3 0.4s-0.2 0.2-0.3 0.2-0.1 0.1-0.2 0.1c-0.1 0.3-0.1 0.4-0.1 0.5"/><path class="st2" d="m45.2 26.3c-0.1 0.1-0.4 0.6-0.4 0.7h0.1c0.2 0.1 0.4 0 0.5-0.1s0.1-0.3 0.3-0.4l0.6-0.6c0.1-0.1 0.1-0.2 0.2-0.3s0.2-0.3 0.3-0.4 0.2-0.3 0.3-0.4 0.2-0.2 0.2-0.4h-0.3c-0.1 0.1-0.3 0.1-0.3 0.2-0.1 0.1-0.1 0.3-0.2 0.4s-0.3 0.2-0.4 0.3-0.1 0.3-0.1 0.4-0.1 0.1-0.2 0.2c0 0.1 0 0.2-0.1 0.2-0.3 0.1-0.4 0.1-0.5 0.2"/><path class="st2" d="m43.7 26.6v0.3c0.3-0.1 0.6-0.5 0.8-0.8 0.1-0.1 0.1-0.3 0.2-0.4s0.1-0.2 0.2-0.3c0.1-0.3 0.3-0.7 0.5-1h0.1v-0.1h-0.4c-0.2 0.1-0.9 0-1 0.1s-0.1 0.3-0.1 0.4-0.2 0.2-0.2 0.3c-0.1 0.2 0.1 0.4 0.1 0.6s-0.1 0.3-0.1 0.4c-0.1 0.3-0.1 0.4-0.1 0.5"/><path class="st2" d="m43.1 28.6c-0.1 0-0.4 0.4-0.4 0.4 0 0.2 0.2 1 0.4 1s0.4-0.2 0.5-0.3 0.3-0.2 0.4-0.4-0.5-0.6-0.6-0.7h-0.3"/><path class="st2" d="m42.7 30.4c0.1-0.3-0.6-0.8-0.8-0.9-0.2 0.2-0.1 0.2-0.2 0.4 0 0.1-0.1 0.2-0.1 0.2-0.1 0.2 0.1 0.6 0.2 0.7s0.1 0.1 0.2 0.1 0.3-0.2 0.4-0.3c0.2 0 0.3-0.1 0.3-0.2"/><path class="st2" d="m42.3 31.8c-0.1-0.1-0.1-0.2-0.2-0.3 0 0-0.1 0-0.2-0.1-0.3 0.5 0.1 0.6 0.5 0.7h0.1c0-0.1-0.1-0.2-0.2-0.3"/><path class="st2" d="m41 29.6c0.1 0 0.2-0.1 0.3-0.2 0.3-0.4 0.1-0.7-0.3-1-0.1 0-0.3 0.3-0.3 0.3 0 0.1 0.1 0.2 0.1 0.3 0 0.3-0.1 0.7 0.2 0.6"/><path class="st2" d="m41.9 28.7c0.2 0 0.9-0.5 0.8-0.7-0.1-0.1-0.2-0.1-0.3-0.1-0.3 0.1-0.5 0.2-0.8 0.2h-0.2v0.1c0.1 0.2 0.2 0.5 0.5 0.5"/><path class="st2" d="m41.2 31.6c0.1 0 0.5-0.3 0.5-0.4s-0.5-0.6-0.6-0.7h-0.2c-0.1 0.3 0 0.7 0.1 1 0.1 0.1 0.1 0.2 0.2 0.1"/><path class="st2" d="m42.1 26c0.1 0.2 0.5 1.3 0.9 1.3v-0.8c0-0.4 0.1-0.8 0.1-1.2 0-0.1 0-0.2 0.1-0.3 0-0.1 0-0.2-0.1-0.3v-0.3c-0.2 0-0.6 0-0.8-0.1-0.2 0-0.5 0-0.6 0.1-0.3 0.3 0.1 1 0.2 1.3 0 0.1 0.1 0.1 0.2 0.3"/><path class="st2" d="m41.5 27.2h0.3c0.1 0 0.1-0.2 0.1-0.3s0-0.3-0.1-0.4-0.1-0.2-0.2-0.4-0.2-0.4-0.3-0.7-0.3-0.9-0.6-1.1c-0.1-0.1-0.3 0-0.5 0-0.1 0.1-0.6 0.1-0.6 0.2-0.1 0.2 1.8 2.6 1.9 2.7"/><path class="st2" d="m38.1 24.6c0.1 0.2 0.3 0.3 0.5 0.5 0.1 0.2 0.2 0.4 0.3 0.5s0.3 0.1 0.4 0.3c0.2 0.2 0.4 0.5 0.5 0.8l0.3 0.3c0.2 0.2 0.3 0.4 0.5 0.5 0.1 0.1 0.3 0.1 0.4 0.1 0 0 0-0.1 0.1-0.1-0.1-0.2-0.3-0.4-0.4-0.6-0.1-0.1-0.2-0.1-0.3-0.2 0-0.1-0.1-0.1-0.1-0.2-0.1-0.1-0.2-0.3-0.3-0.4l-0.4-0.4c-0.1-0.1-0.1-0.3-0.2-0.4-0.2-0.2-0.3-0.5-0.6-0.7-0.1-0.1-0.3-0.2-0.5-0.2 0 0-0.2 0-0.2 0.2"/><path class="st2" d="m33.1 25.2 2.2 2.2c0.9 0.8 1.7 1.7 2.6 2.5 0.1 0.1 0.2 0.2 0.3 0.4l0.8 0.8c0.5 0.5 1 0.9 1.5 1.4 0.2 0.3 0.5 0.5 0.7 0.8 0.3 0.3 0.7 0.6 1 0.9 0.2 0.2 0.6 0.7 0.8 0.7 0-0.2-0.1-0.6-0.1-0.8v-0.3c0-0.1 0-0.2-0.1-0.3l-0.3-0.3c-0.1-0.1-0.2-0.3-0.3-0.4-0.2-0.2-0.4-0.2-0.6-0.3-0.1-0.1-0.3-0.2-0.4-0.3-0.1 0-0.2-0.1-0.3-0.1-0.1-0.1-0.1-0.2-0.2-0.3s-0.2-0.1-0.3-0.2-0.1-0.3-0.2-0.5c-0.1-0.1-0.1-0.3-0.2-0.4 0-0.1-0.1-0.3-0.1-0.4 0-0.2 0-0.4 0.1-0.6 0-0.1 0-0.2 0.1-0.4 0.1-0.3 0.2-0.5 0.5-0.8 0.1-0.1 0.2-0.2 0.3-0.2-0.1-0.2-0.2-0.3-0.4-0.5-0.1-0.1-0.2-0.1-0.2-0.2-0.1-0.1-0.2-0.3-0.4-0.5s-0.5-0.4-0.7-0.7l-1.4-1.4c-0.2-0.2-0.4-0.4-0.6-0.5s-0.4 0.1-0.6 0.1c-0.1 0-0.2 0-0.3-0.1h-0.7-0.5-0.6c-0.2 0.1-0.6 0-0.8 0h-1.1c-0.3 0.1 0.3 0.4 0.5 0.7"/><path class="st2" d="m40.2 29.6c0 0.2-0.1 0.7 0.2 0.6 0.4-0.1 0-0.5-0.2-0.6"/><path class="st2" d="m30 48.2c0.3-0.3 0.5-0.6 0.8-0.8 0.4-0.4 0.8-0.8 1.3-1.2l0.9-0.9c0.1-0.1 0.2-0.3 0.3-0.4 0.4-0.3 0.9-0.8 1.2-1.2 0-0.1 0.1-0.1 0.1-0.2 0.1-0.3-1.9-2.2-2.2-2.5-0.5-0.5-1-1-1.5-1.6-0.5-0.5-1.1-1-1.6-1.5-0.1-0.1-0.2-0.2-0.2-0.3-0.2-0.2-0.5-0.4-0.7-0.6-0.1-0.1-0.2-0.2-0.3-0.4-0.3-0.4-0.7-0.7-1-1l-0.5-0.5c-0.5-0.4-0.9-0.9-1.4-1.3-0.2-0.2-0.4-0.5-0.7-0.6v1 0.3 0.6 0.5 0.4 2 0.5c0 0.3 0 0.6-0.1 1v2 0.9 1.2 0.6 0.4 1.5 0.5 0.9 0.6 1.4 0.5 1.4 1.7 0.6s0.1 0.2 0.1 0.1c0.1-0.2 0.4-0.4 0.6-0.6 0.6-0.5 1.1-1.1 1.7-1.6 0.4-0.4 0.7-0.8 1.1-1.1 0.7-0.6 1.4-1.3 2.1-1.9-0.1-0.3 0-0.4 0-0.4"/><path class="st2" d="m39.7 62.4c0.1-0.4 0.3-0.8 0.5-1.2 0.1-0.2 0.2-0.5 0.2-0.8h-1.2c-0.2 0-0.7 0-0.9-0.1-0.1-0.1-0.1-0.2-0.2-0.3-0.1-0.2-0.2-0.3-0.3-0.5s0-0.4 0-0.7v-1c0-0.2 0.1-0.8 0-1-0.2 0.2-0.3 0.4-0.5 0.5l-1.8 1.8c-0.4 0.4-0.9 0.9-1.3 1.4-0.7 0.7-1.5 1.4-2.2 2.1-0.1 0.1-0.2 0.3-0.3 0.4l-0.4 0.4c-0.3 0.3-0.6 0.5-0.9 0.8l-0.6 0.6c-0.2 0.2-0.5 0.4-0.6 0.6v0.1c0.2 0.1 0.5 0.1 0.8 0.1 0.3 0.1 0.6 0.1 1 0.2h0.4c0.1 0 0.2 0 0.3 0.1 0.2 0 0.4 0.1 0.7 0.1s0.5 0 0.8 0.1c0.6 0.1 1.2 0.2 1.8 0.2h0.4c0.3 0 0.6 0.1 0.8 0.1 0.1 0 0.3 0 0.4 0.1h0.6c0.2 0 0.4 0.1 0.6 0.1 0.1 0 0.1-0.1 0.1-0.2 0.1-0.3 0-0.8 0-1.1v-2.1c0-0.1 0-0.1 0.1-0.2s0.9 0 1.1 0h0.2c0.1 0 0.2 0 0.3-0.1 0-0.1 0-0.3 0.1-0.5"/><path class="st2" d="m42.2 67.7h0.3v-1.2c0-0.4 0-1 0.2-1.3 0.2-0.4 0.3-0.7 0.8-0.7 0.1 0 0.1 0 0.1-0.1 0-0.3-0.5-0.4-0.7-0.4-0.1 0-0.2 0.1-0.4 0.1-0.8 0.4-0.7 1.6-0.7 2.4 0 0.1 0 0.5-0.1 0.6-0.2 0.2-2 0.1-2.4 0.1 0.2 0.1 0.4 0.1 0.6 0.2s0.5 0.3 0.8 0.3h1 0.5"/><path class="st2" d="m44.1 67.3c0-0.1-0.1-0.2-0.1-0.3v-1.4-0.6c0-0.1-0.1-0.1-0.1-0.1-0.2 0.1-0.3 0.1-0.5 0.2-0.1 0.1-0.2 0.4-0.2 0.5s-0.1 0.3-0.1 0.5v0.8 0.4 0.4 0.4 0.2h-0.9c-0.1 0-0.2 0-0.3 0.1h-0.1c0.2 0.1 0.5 0.3 0.7 0.4 0.2 0.2 0.3 0.4 0.5 0.5 0.1-0.3 0.4-0.5 0.6-0.7l0.3-0.3c0.2-0.2 0.4-0.3 0.5-0.5-0.2-0.2-0.2-0.4-0.3-0.5"/><path class="st2" d="m44.6 67c0 0.2 0.1 0.4 0.2 0.5 0.2-0.1 0.5-0.2 0.7-0.3 0.1 0 0.2-0.1 0.3-0.1v-0.1h-0.9-0.3"/><path class="st2" d="m6.3 37.7c-0.6-0.2-0.7-0.6-0.5-1.3l0.2-0.9 4.3 1c0.7 0.2 0.8 0.4 0.7 0.8h0.2l0.4-2h-0.2c-0.1 0.5-0.3 0.6-1 0.4l-4.3-1 0.2-0.9c0.2-0.9 0.6-1 1.1-1v-0.1l-1.3-0.3v0.2c0.1 0.2 0.1 0.4 0 0.9l-0.7 2.9c-0.1 0.2-0.1 0.4-0.2 0.5s-0.1 0.2-0.2 0.3v0.2l1.3 0.3"/><path class="st2" d="m8.7 29.2 3.2 1.6c0.7 0.3 0.7 0.6 0.5 1l0.2 0.1 0.9-1.9-0.2-0.1c-0.2 0.4-0.5 0.5-1.1 0.2l-1.5-0.7 1.4-2.8 1.5 0.7c0.7 0.3 0.7 0.6 0.5 1l0.2 0.1 0.9-1.8-0.2-0.2c-0.2 0.4-0.5 0.5-1.1 0.2l-3.2-1.6c-0.6-0.3-0.8-0.5-0.5-1h-0.2l-0.9 1.8 0.2 0.1c0.2-0.4 0.5-0.5 1.1-0.2l1.5 0.7-1.4 2.8-1.5-0.6c-0.7-0.3-0.7-0.6-0.5-1l-0.2-0.1-0.9 1.9 0.2 0.1c0.2-0.5 0.5-0.6 1.1-0.3"/><path class="st2" d="m18.7 20.2-0.1 0.1c0.4 0.7 0.3 0.9-0.3 1.6l-0.6 0.8c-0.2 0.2-0.4 0.3-0.6 0.1l-1.6-1.3 0.9-1.1c0.4-0.5 0.5-0.5 0.9-0.3l0.1-0.1-1.1-0.9-0.1 0.1c0.3 0.4 0.3 0.5 0 0.8l-1 1.2-1.9-1.6 1.1-1.3c0.4-0.5 0.6-0.6 1.1-0.3l0.1-0.1-0.6-0.5-2.6 3.2 0.1 0.1c0.3-0.4 0.6-0.4 1.1 0.1l2.8 2.3c0.6 0.5 0.6 0.7 0.3 1.1l0.1 0.1 2.6-3.2-0.7-0.9"/><path class="st2" d="m27 15.3c0.7-0.4 1-0.9 1.2-1.8l0.4 0.7 1.2-0.7-0.1-0.1c-0.4 0.2-0.6 0.2-1-0.5l-1.7-3.1c-0.3-0.6-0.3-0.9 0.1-1.1l-0.1-0.1-1.8 1 0.1 0.1c0.4-0.2 0.7-0.1 1 0.5l1.7 3c0 0.7-0.4 1.3-1 1.6-0.8 0.5-1.6 0.2-2-0.6l-1.4-2.5c-0.4-0.6-0.3-0.9 0.1-1.1l-0.1-0.1-1.8 1 0.2 0.1c0.4-0.2 0.6-0.2 1 0.5l1.4 2.5c0.5 0.8 1.4 1.3 2.6 0.7"/><path class="st2" d="m36.7 5.7v-0.2l-1.7 0.4v0.2c0.5-0.1 0.7 0 0.9 0.7l0.8 3.2-4.6-3.4-1.4 0.4v0.2c0.7-0.1 0.9 0.2 1.1 0.8l0.8 3.2c0.2 0.8 0 1-0.4 1.1v0.2l1.8-0.4v-0.2c-0.5 0.1-0.8 0-0.9-0.6l-1-3.9 5.2 3.8h0.2l-1.2-4.5c-0.3-0.6-0.2-0.9 0.4-1"/><path class="st2" d="m41.1 6.2 0.2 3.6c0 0.7-0.1 0.9-0.6 0.9v0.2l2.1-0.1v-0.2c-0.5 0-0.7-0.2-0.7-0.9l-0.2-3.6c0-0.7 0.1-0.9 0.6-0.9v-0.2l-2.1 0.1v0.2c0.5 0 0.6 0.2 0.7 0.9"/><path class="st2" d="m51.3 5.9v-0.2l-1.7-0.2v0.2c0.5 0.1 0.6 0.4 0.3 0.9l-1.8 3.4-0.9-3.9c-0.1-0.5 0.1-0.7 0.5-0.6v-0.2l-2-0.3v0.2c0.5 0.1 0.6 0.4 0.8 1.1l1.1 4.8h0.2l2.3-4.3c0.4-0.6 0.7-0.9 1.2-0.9"/><path class="st2" d="m55.3 12.7-0.9-0.3c-0.4-0.2-0.4-0.3-0.3-0.6l0.7-1.9 1.3 0.5c0.6 0.2 0.6 0.3 0.6 0.8l0.2 0.1 0.4-1.3-0.2-0.1c-0.2 0.4-0.4 0.4-0.8 0.3l-1.5-0.6 0.8-2.3 1.6 0.6c0.6 0.2 0.8 0.3 0.7 1h0.1l0.4-0.9-3.9-1.4-0.1 0.2c0.5 0.2 0.5 0.4 0.3 1.1l-1.2 3.4c-0.3 0.6-0.5 0.7-0.9 0.5l-0.1 0.2 3.9 1.4 0.6-0.9-0.2-0.1c-0.5 0.6-0.7 0.6-1.5 0.3"/><path class="st2" d="m61 15.7c-0.4-0.3-0.4-0.5 0-1.1l0.9-1.3 0.4 0.3c0.9 0.6 0.4 1.9 0.6 3.5l1 0.6 0.1-0.1c-0.8-0.6 0-2.4-0.5-3.5 0.8 0.2 1.4 0 1.8-0.5 0.4-0.6 0.3-1.6-0.8-2.3l-2-1.3-0.1 0.1c0.4 0.3 0.5 0.5 0.1 1.1l-2 3c-0.4 0.6-0.7 0.6-1 0.4l-0.1 0.1 1.7 1.1zm2.4-4.8 0.5 0.3c0.7 0.5 0.9 1.2 0.5 1.9-0.4 0.6-1 0.9-1.9 0.4l-0.6-0.4 1.5-2.2"/><path class="st2" d="m66 19.6c0.1 0.1 0.3 0.7 0.7 1.1 0.6 0.6 1.7 0.6 2.3 0 0.3-0.3 0.5-0.6 0.5-1.2 0-1.2-0.8-2.4-0.1-3.1 0.4-0.4 0.9-0.3 1.3 0.1s0.6 1.1 0.1 1.7l0.1 0.1 1-0.9-0.1-0.1c-0.1 0.1-0.2 0.1-0.2 0-0.2-0.2-0.2-0.5-0.6-1-0.7-0.7-1.5-0.7-2.1-0.1-0.3 0.3-0.5 0.7-0.5 1.2 0 0.9 0.7 2.3 0 3-0.4 0.4-1.1 0.4-1.5-0.1-0.4-0.4-0.7-1.2 0-2l-0.1-0.1-1.1 1.1 0.1 0.1c0 0.1 0.1 0.1 0.2 0.2"/><path class="st2" d="m69.9 24-0.1 0.1 1.2 1.7 0.1-0.1c-0.3-0.4-0.2-0.7 0.4-1.1l2.9-2c0.6-0.4 0.8-0.4 1.1 0l0.1-0.1-1.2-1.7-0.1 0.1c0.3 0.4 0.2 0.6-0.4 1.1l-2.9 2c-0.6 0.4-0.9 0.3-1.1 0"/><path class="st2" d="m77.6 26.5 0.3 0.8-4 1.8c-0.7 0.3-0.9 0.2-1.1-0.2l-0.1 0.1 0.8 1.8 0.2-0.1c-0.2-0.4-0.1-0.6 0.5-0.9l4-1.8 0.4 0.8c0.4 0.8 0.2 1.1-0.2 1.4v0.1l1.2-0.5-0.1-0.2c-0.2-0.1-0.4-0.3-0.6-0.7l-1.3-2.7c-0.1-0.2-0.2-0.4-0.2-0.5v-0.4l-0.1-0.2-1.2 0.5 0.1 0.2c0.7-0.2 1.1 0 1.4 0.7"/><path class="st2" d="m81.2 36.4h-0.2c0.1 0.5-0.3 0.5-0.8 0.4l-1.6-0.6 1.5-1.5c0.3-0.3 0.5-0.3 0.7 0.3h0.2l-0.5-2.2h-0.2c0.1 0.4 0 0.6-0.5 1.2l-1.6 1.6-1.8 0.4c-0.8 0.2-0.9-0.1-1-0.5h-0.2l0.4 2h0.2c-0.1-0.5 0.1-0.7 0.8-0.8l1.8-0.4 2.3 0.8c0.6 0.2 0.7 0.3 0.8 0.8h0.2l-0.5-1.5"/><path class="st2" d="m10 56.3c1.6-0.5 2.5-2.1 2-3.8s-2.1-2.6-3.7-2.1-2.5 2.1-2.1 3.8c0.5 1.7 2.1 2.6 3.8 2.1m-3.6-2.1c-0.4-1.2 0.5-2.4 2.1-2.9s2.9 0.1 3.3 1.4c0.3 1.1-0.4 2.3-2.1 2.8-1.4 0.4-2.9 0.1-3.3-1.3"/><path class="st2" d="m13.8 58.1c0.2 0.4 0.2 0.7-0.5 1l-3.1 1.8c-0.6 0.4-0.9 0.3-1.1-0.1l-0.2 0.1 1 1.8 0.1-0.1c-0.2-0.4-0.1-0.7 0.5-1l1.5-0.8 0.8 1.3c0.2 0.3 0.1 0.6-0.3 0.9l0.1 0.1 1.4-0.8-0.1-0.1c-0.4 0.2-0.7 0.2-0.9-0.2l-0.7-1.3 2.1-1.2 0.7 1.3c0.3 0.5 0.4 0.7-0.2 1.2h0.1l0.9-0.5-1.9-3.4h-0.2"/><path class="st2" d="m20.8 67.6c0.4 0.3 0.4 0.6-0.1 1.1l-2.3 2.8c-0.5 0.6-0.7 0.6-1.1 0.3l-0.1 0.1 3.2 2.6 0.9-0.7-0.1-0.1c-0.7 0.4-0.9 0.3-1.6-0.3l-0.8-0.6c-0.2-0.2-0.3-0.4-0.1-0.6l1.3-1.6 1.1 0.9c0.5 0.4 0.5 0.5 0.3 0.9l0.1 0.1 0.9-1.1-0.1-0.1c-0.4 0.3-0.5 0.3-0.8 0l-1.2-1 1.6-1.9 1.3 1c0.5 0.4 0.6 0.6 0.3 1.1l0.1 0.1 0.6-0.7-3.2-2.6-0.2 0.3"/><path class="st2" d="m29.3 73.2-2.4-1.1-0.1 0.2c0.4 0.2 0.5 0.5 0.2 1.1l-1.5 3.2c-0.3 0.6-0.6 0.7-1 0.6l-0.1 0.2 2.5 1.1c2 0.9 3.4 0.1 4-1.2 0.7-1.4 0.4-3.2-1.6-4.1m0.9 3.6c-0.7 1.4-1.8 2-3.1 1.4l-0.6-0.2c-0.5-0.2-0.6-0.5-0.2-1.3l1.8-3.8 1 0.5c1.6 0.7 1.7 2.2 1.1 3.4"/><path class="st2" d="m35.2 75.5c0.5 0.1 0.6 0.3 0.4 1l-0.7 3.5c-0.2 0.7-0.4 0.9-0.8 0.7v0.2l2 0.4v-0.2c-0.5-0.1-0.6-0.4-0.4-1l0.8-3.5c0.1-0.7 0.4-0.8 0.8-0.7v-0.2l-2-0.4-0.1 0.2"/><path class="st2" d="m44.9 76.3v0.2c0.5 0 0.7 0.2 0.7 0.9v3.4l-3.6-4.5h-1.5v0.2c0.7 0.1 0.9 0.4 0.9 1.1v3.4c0 0.8-0.2 1-0.7 1v0.2h1.7v-0.2c-0.5 0-0.8-0.2-0.8-0.8l-0.1-4 4.1 4.9h0.4v-4.7c0-0.7 0.2-0.9 0.7-0.9v-0.2h-1.8"/><path class="st2" d="m53.6 77.6c0.7-0.5 0.9-1 0.8-1.6-0.2-0.7-1-1.2-2.3-0.8l-2.1 0.6v0.2c0.5-0.1 0.7 0 0.9 0.7l0.9 3.4c0.2 0.7 0.1 0.9-0.4 1v0.2l2.5-0.7c1-0.3 1.6-1 1.4-1.8-0.1-0.8-0.8-1.3-1.7-1.2m-2.2-2 0.6-0.2c0.9-0.2 1.5 0.1 1.7 0.8s-0.2 1.3-1 1.5l-0.7 0.2zm2.4 4.8-0.5 0.1c-0.4 0.1-0.6 0-0.8-0.8l-0.4-1.6 0.5-0.1c1-0.3 1.7 0.1 2 0.9 0.2 0.8-0.3 1.3-0.8 1.5"/><path class="st2" d="m64.2 74.7-1.8-3.1c-0.4-0.6-0.3-0.9 0.1-1.1l-0.1-0.1-1.7 1 0.1 0.1c0.4-0.2 0.7-0.1 1 0.5l1.7 3c0 0.7-0.4 1.3-0.9 1.6-0.8 0.5-1.6 0.2-2-0.6l-1.6-2.4c-0.4-0.6-0.3-0.9 0.1-1.1l-0.1-0.1-1.8 1 0.1 0.1c0.4-0.2 0.6-0.2 1 0.5l1.4 2.4c0.5 0.9 1.5 1.4 2.7 0.7 0.7-0.4 1-0.9 1.2-1.8l0.4 0.7 1.2-0.7-0.1-0.1c-0.3 0.2-0.5 0.2-0.9-0.5"/><path class="st2" d="m69.1 68.3c0.4-0.8 0.3-1.4-0.2-1.8-0.5-0.5-1.5-0.6-2.4 0.3l-1.6 1.7 0.1 0.1c0.3-0.3 0.6-0.4 1.1 0.2l2.6 2.5c0.6 0.5 0.5 0.8 0.2 1.1l0.1 0.1 1.4-1.5-0.1-0.1c-0.3 0.3-0.6 0.3-1.1-0.2l-1.2-1.1 0.3-0.3c0.7-0.7 1.9 0 3.6 0.1l0.8-0.8-0.1-0.1c-0.7 0.6-2.3-0.5-3.5-0.2m-0.8 0.6-0.5 0.5-1.8-1.8 0.4-0.4c0.6-0.6 1.4-0.7 1.9-0.1 0.5 0.4 0.7 1.1 0 1.8"/><path class="st2" d="m75.8 59.8-0.1-0.1-1.2 2 0.1 0.1 0.1-0.2c0.2-0.4 0.5-0.4 1.1 0l0.5 0.3c0.4 0.3 0.2 0.8 0 1.1-0.7 1.2-2.3 1.4-3.7 0.5-1.3-0.8-1.8-2.1-1.1-3.1 0.4-0.7 1.3-1.3 2.3-0.8l0.1-0.1-1.4-0.9-0.1 0.2c0.1 0.1 0.1 0.2 0 0.4-0.2 0.4-0.6 0.5-1 1.2-0.7 1.2-0.6 3.1 1.2 4.2 1.1 0.7 2.9 0.8 4.2-1.4 0.1-0.2 0.6-1.1 0.7-1.4l-1.3-0.8c-0.5-0.5-0.7-0.7-0.4-1.2"/><path class="st2" d="m79.9 51.7-3.4-1c-0.7-0.2-0.8-0.4-0.7-0.9h-0.2l-0.6 2 0.2 0.1c0.1-0.5 0.4-0.6 1.1-0.4l1.6 0.5-0.9 3-1.6-0.5c-0.7-0.2-0.8-0.5-0.7-0.9h-0.2l-0.6 2h0.2c0.1-0.5 0.4-0.6 1.1-0.4l3.4 1c0.7 0.2 0.8 0.4 0.7 0.9h0.2l0.6-2h-0.2c-0.1 0.5-0.4 0.6-1.1 0.4l-1.5-0.5 0.9-3 1.6 0.5c0.7 0.2 0.8 0.4 0.7 0.9h0.2l0.6-2h-0.2c-0.2 0.4-0.5 0.5-1.2 0.3"/><path class="st2" d="m7 44.1c0 0.3 0.2 0.5 0.5 0.5s0.5-0.2 0.5-0.5-0.2-0.5-0.5-0.5-0.5 0.2-0.5 0.5"/><path class="st2" d="m79.7 44.1c0-0.3-0.2-0.5-0.5-0.5s-0.5 0.2-0.5 0.5 0.2 0.5 0.5 0.5 0.5-0.3 0.5-0.5"/></svg> diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/images/white-tied-in.pdf b/macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/images/white-tied-in.pdf Binary files differnew file mode 100644 index 0000000000..39bb707e73 --- /dev/null +++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/images/white-tied-in.pdf diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/images/white-tied-in.svg b/macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/images/white-tied-in.svg new file mode 100644 index 0000000000..6089f29ef7 --- /dev/null +++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-edmaths/images/white-tied-in.svg @@ -0,0 +1,8 @@ +<svg width="342.4" height="97.2" version="1.1" viewBox="0 0 342.4 97.2" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"> +<style type="text/css"> + .st0{clip-path:url(#SVGID_2_);} + .st1{fill:none;stroke:#FFFFFF;stroke-width:3;stroke-miterlimit:1;} + .st2{fill:#FFFFFF;} + .st3{fill:none;stroke:#FFFFFF;stroke-miterlimit:1;} +</style> +<g transform="translate(10,10)"><path class="st2" d="m107.6 17.3h-2.8v14c0 1.1 0.1 1.8 0.4 2.2s0.8 0.6 1.6 0.6v0.5h-6.4v-0.5c0.8 0 1.3-0.2 1.6-0.7 0.3-0.4 0.4-1.2 0.4-2.2v-13.9h-2.6c-1.3 0-2.2 0.2-2.8 0.6s-0.9 1.1-1 2h-0.5v-4.2h0.5c0.5 0.5 1.4 0.7 2.7 0.7h9.5c1.4 0 2.3-0.2 2.9-0.7h0.6v4.2h-0.4c-0.2-1-0.6-1.7-1.2-2.1-0.5-0.3-1.3-0.5-2.5-0.5"/><path class="st2" d="m128.4 31.2v-5.3h-9.9v5.3c0 1.1 0.2 1.8 0.5 2.2s0.9 0.6 1.7 0.6v0.5h-6.7v-0.5c0.8 0 1.3-0.2 1.6-0.6s0.4-1.2 0.4-2.2v-11.4c0-1.1-0.1-1.9-0.4-2.3s-0.8-0.6-1.6-0.6v-0.5h6.6v0.5c-0.8 0-1.3 0.2-1.7 0.7-0.3 0.4-0.5 1.2-0.5 2.2v5.2h9.9v-5.2c0-1.1-0.1-1.9-0.4-2.3s-0.8-0.6-1.6-0.6v-0.5h6.5v0.5c-0.8 0-1.3 0.2-1.6 0.6s-0.4 1.2-0.4 2.3v11.3c0 1.1 0.1 1.8 0.4 2.3 0.3 0.4 0.8 0.6 1.6 0.6v0.5h-6.5v-0.5c0.8 0 1.3-0.2 1.6-0.6s0.5-1.1 0.5-2.2"/><path class="st2" d="m147 23.3h0.5v4.4h-0.5c-0.2-0.8-0.4-1.3-0.7-1.5s-0.9-0.3-1.8-0.3h-4.5v6.5c0 0.5 0.1 0.8 0.3 1s0.5 0.3 1 0.3h3.2c1.1 0 1.9-0.1 2.4-0.2 0.4-0.1 0.8-0.4 1.1-0.7s0.6-0.9 1-1.6h0.5l-0.8 3.4h-13.1v-0.5c0.8 0 1.4-0.2 1.6-0.6 0.3-0.4 0.4-1.2 0.4-2.2v-11.5c0-1.1-0.1-1.9-0.4-2.3s-0.8-0.6-1.6-0.6v-0.5h13.1v3h-0.3c-0.2-0.9-0.4-1.4-0.8-1.7s-1.1-0.4-2.3-0.4h-5.3v7.8h5.1c0.7 0 1.2-0.1 1.4-0.4 0.2-0.2 0.4-0.7 0.5-1.4"/><path class="st2" d="m172.9 30.8v-11c0-1.1-0.1-1.8-0.4-2.2s-0.8-0.6-1.5-0.7v-0.5h6.4v0.5c-0.8 0-1.3 0.2-1.6 0.6s-0.4 1.2-0.4 2.3v11.3c0 1.1 0.1 1.8 0.4 2.2s0.8 0.6 1.6 0.6v0.5h-4.5v-2.4c-1.7 2-3.7 3-6.1 3-1.9 0-3.4-0.6-4.5-1.7s-1.7-2.7-1.7-4.5v-8.9c0-1.1-0.1-1.8-0.4-2.3-0.3-0.4-0.8-0.6-1.6-0.6v-0.5h6.6v0.5c-0.8 0-1.4 0.2-1.7 0.6s-0.4 1.2-0.4 2.2v9.2c0 1.5 0.4 2.7 1.2 3.5 0.8 0.9 2 1.3 3.4 1.3 2.2 0 3.9-1 5.2-3"/><path class="st2" d="m193.7 16.9v-0.5h5.5v0.5c-0.9 0-1.5 0.2-1.8 0.6s-0.5 1.2-0.5 2.2v14.8h-0.6l-12.9-15.8v12.8c0 0.9 0.2 1.5 0.5 1.9 0.4 0.4 1 0.6 1.8 0.6v0.5h-5.5v-0.5c0.9 0 1.5-0.2 1.8-0.7s0.5-1.3 0.5-2.4v-10.6c0-1.1-0.2-2-0.6-2.5s-1.1-0.8-2.1-0.9v-0.5h4.7l11.4 14.1v-10.6c0-1.1-0.2-1.9-0.5-2.3s-0.8-0.7-1.7-0.7"/><path class="st2" d="m208.3 16.4v0.5c-0.8 0-1.3 0.2-1.6 0.6s-0.4 1.2-0.4 2.3v11.3c0 1.1 0.1 1.8 0.4 2.3 0.3 0.4 0.8 0.6 1.6 0.6v0.5h-6.5v-0.5c0.8 0 1.3-0.2 1.6-0.6s0.4-1.2 0.4-2.3v-11.3c0-1.1-0.1-1.9-0.4-2.3s-0.8-0.6-1.6-0.6v-0.5h6.5"/><path class="st2" d="m228.4 16.4v0.6c-1.3 0-2.4 1.2-3.3 3.5l-5.4 14.3h-0.5l-5.6-14.7c-0.5-1.4-1-2.2-1.4-2.6s-0.9-0.5-1.6-0.6v-0.5h6.6v0.5c-1.1 0-1.6 0.4-1.6 1.2 0 0.3 0.1 0.6 0.2 0.9l4.4 11.7 4.2-11.3c0.2-0.5 0.3-0.9 0.3-1.3 0-0.9-0.5-1.3-1.6-1.3v-0.5h5.3"/><path class="st2" d="m241.7 23.3h0.5v4.4h-0.5c-0.2-0.8-0.4-1.3-0.7-1.5s-0.9-0.3-1.8-0.3h-4.5v6.5c0 0.5 0.1 0.8 0.3 1s0.5 0.3 1 0.3h3.2c1.1 0 1.9-0.1 2.4-0.2 0.4-0.1 0.8-0.4 1.1-0.7s0.6-0.9 1-1.6h0.5l-0.8 3.4h-13.1v-0.5c0.8 0 1.4-0.2 1.6-0.6 0.3-0.4 0.4-1.2 0.4-2.2v-11.5c0-1.1-0.1-1.9-0.4-2.3s-0.8-0.6-1.6-0.6v-0.5h13.1v3h-0.3c-0.2-0.9-0.5-1.4-0.8-1.7s-1.1-0.4-2.3-0.4h-5.2v7.8h5.1c0.7 0 1.2-0.1 1.4-0.4 0.1-0.2 0.3-0.7 0.4-1.4"/><path class="st2" d="m252.8 17.1h-1.9v8.3h2.2c1.3 0 2.4-0.4 3.1-1.1 0.8-0.8 1.1-1.8 1.1-3s-0.4-2.2-1.3-3c-0.7-0.8-1.8-1.2-3.2-1.2zm-0.4 9.1h-1.5v5c0 1.1 0.2 1.8 0.5 2.2s0.8 0.6 1.6 0.6v0.5h-6.5v-0.5c0.8 0 1.4-0.2 1.6-0.6 0.3-0.4 0.4-1.2 0.4-2.2v-11.4c0-1.1-0.1-1.8-0.4-2.2s-0.8-0.6-1.6-0.6v-0.5h7.4c1.8 0 3.3 0.4 4.4 1.3s1.7 2 1.7 3.4c0 2.2-1.2 3.7-3.8 4.5 0.5 0.4 1.1 0.8 1.6 1.4s1.2 1.6 2.1 3.1c0.9 1.6 1.7 2.6 2.2 3.1s1.1 0.8 1.7 0.8v0.5h-3.7c-0.8-0.9-1.7-2.3-2.8-4.1-1.2-1.9-2.1-3.1-2.7-3.6-0.7-0.5-1.4-0.7-2.2-0.7"/><path class="st2" d="m274.5 16.1h0.5v4.3h-0.5c-0.1-1.2-0.6-2.1-1.3-2.8s-1.6-1-2.8-1c-1 0-1.8 0.2-2.4 0.7s-0.9 1.2-0.9 2 0.2 1.5 0.7 2.1 1.6 1.4 3.2 2.4c1.9 1.1 3.2 2.1 3.9 3s1 1.8 1 2.9c0 1.4-0.5 2.6-1.5 3.7-1 1-2.2 1.5-3.7 1.5-0.8 0-1.9-0.2-3.2-0.7-0.5-0.2-0.9-0.3-1-0.3-0.3 0-0.5 0.2-0.7 0.7h-0.5v-4.9h0.5c0 1.4 0.5 2.4 1.3 3.3s1.9 1.2 3.1 1.2c1.1 0 2-0.3 2.7-0.9s1-1.4 1-2.4c0-0.7-0.3-1.4-0.8-2.1s-1.7-1.5-3.4-2.6c-1.4-0.9-2.4-1.6-2.8-2.1-0.5-0.5-0.8-1.1-1.1-1.7s-0.3-1.3-0.3-2c0-1.4 0.5-2.5 1.4-3.4s2.1-1.3 3.6-1.3c0.8 0 1.7 0.2 2.6 0.5 0.4 0.1 0.8 0.2 0.9 0.2s0.2 0 0.3-0.1c0.1 0.2 0.2 0.1 0.2-0.2"/><path class="st2" d="m285.6 16.4v0.5c-0.8 0-1.3 0.2-1.6 0.6s-0.4 1.2-0.4 2.3v11.3c0 1.1 0.2 1.8 0.4 2.3 0.3 0.4 0.8 0.6 1.6 0.6v0.5h-6.5v-0.5c0.8 0 1.3-0.2 1.6-0.6s0.4-1.2 0.4-2.3v-11.3c0-1.1-0.1-1.9-0.4-2.3s-0.8-0.6-1.6-0.6v-0.5h6.5"/><path class="st2" d="m300.1 17.3h-2.8v14c0 1.1 0.1 1.8 0.4 2.2s0.8 0.6 1.6 0.6v0.5h-6.4v-0.5c0.8 0 1.3-0.2 1.6-0.7 0.3-0.4 0.4-1.2 0.4-2.2v-13.9h-2.6c-1.3 0-2.2 0.2-2.8 0.6s-0.9 1.1-1 2h-0.5v-4.2h0.5c0.5 0.5 1.4 0.7 2.7 0.7h9.5c1.4 0 2.3-0.2 2.9-0.7h0.6v4.2h-0.4c-0.2-1-0.6-1.7-1.2-2.1s-1.4-0.5-2.5-0.5"/><path class="st2" d="m319.6 19-4.1 6.4v5.7c0 1.1 0.1 1.9 0.4 2.3s0.8 0.6 1.6 0.6v0.5h-6.6v-0.5c0.9 0 1.5-0.2 1.8-0.7 0.3-0.4 0.4-1.2 0.4-2.2v-5.7l-3.9-6c-0.6-1-1.2-1.7-1.6-2s-1-0.5-1.7-0.5v-0.5h7.1v0.5c-1.2 0-1.9 0.3-1.9 0.9 0 0.3 0.1 0.6 0.4 1l3.6 5.5 2.9-4.6c0.4-0.7 0.6-1.3 0.6-1.8 0-0.7-0.4-1-1.2-1v-0.5h5v0.5c-0.7 0-1.2 0.2-1.6 0.4s-0.7 0.9-1.2 1.7"/><path class="st2" d="m99.5 58.8c1 0 1.9-0.6 2.7-1.9s1.2-2.8 1.2-4.6c0-0.8-0.2-1.5-0.6-2s-0.9-0.8-1.6-0.8c-1 0-1.9 0.6-2.7 1.9s-1.2 2.8-1.2 4.5c0 0.9 0.2 1.6 0.6 2.1 0.5 0.5 1 0.8 1.6 0.8zm2.6-10.2c0.8 0 1.6 0.4 2.2 1.1s1 1.6 1 2.5c0 1.7-0.6 3.4-1.9 5s-2.8 2.5-4.5 2.5c-1 0-1.8-0.3-2.4-1s-0.9-1.6-0.9-2.7c0-1.9 0.7-3.6 2-5.1 1.3-1.6 2.8-2.3 4.5-2.3"/><path class="st2" d="m113.1 48.9-0.1 0.9h-2.2l-1.8 9.2c-0.5 2.5-1 4.3-1.5 5.5s-1.4 2-2.4 2.6-2.1 0.9-3.3 0.9c-1.6 0-2.8-0.3-3.7-0.9l0.5-2.2h0.5c0.3 1.6 1.3 2.4 2.8 2.4 1.1 0 2.1-0.4 3-1.2s1.6-2.7 2.1-5.7l2-10.7h-2.2l0.1-0.9h2.2l0.8-3.8c0.4-2 1.1-3.5 2-4.2 0.9-0.8 2.1-1.2 3.3-1.2 0.6 0 1.3 0.1 2.2 0.4l0.1-0.4h0.6l-0.6 2.9h-0.5c-0.1-1.5-0.8-2.3-2-2.3-1.5 0-2.6 1.3-3.1 3.9l-1 4.7h2.2"/><path class="st2" d="m135 48.1h0.5v4.4h-0.5c-0.2-0.8-0.4-1.3-0.7-1.5s-0.9-0.3-1.8-0.3h-4.5v6.5c0 0.5 0.1 0.8 0.3 1s0.5 0.3 1 0.3h3.2c1.1 0 1.9-0.1 2.4-0.2 0.4-0.1 0.8-0.4 1.1-0.7s0.6-0.9 1-1.6h0.5l-0.8 3.4h-13.1v-0.5c0.8 0 1.4-0.2 1.6-0.6 0.3-0.4 0.4-1.2 0.4-2.2v-11.5c0-1.1-0.1-1.9-0.4-2.3s-0.8-0.6-1.6-0.6v-0.5h13.1v3h-0.3c-0.2-0.9-0.5-1.4-0.8-1.7s-1.1-0.4-2.3-0.4h-5.2v7.8h5.1c0.7 0 1.2-0.1 1.4-0.4 0.1-0.3 0.3-0.7 0.4-1.4"/><path class="st2" d="m147.8 41.9h-3.5v13.4c0 1.3 0.2 2.2 0.5 2.6s0.9 0.7 1.9 0.7h1.9c2.2 0 4-0.7 5.3-2.2s1.9-3.4 1.9-5.9c0-2.6-0.7-4.8-2.1-6.3s-3.4-2.3-5.9-2.3zm-7.9 17.5v-0.5c0.8 0 1.3-0.2 1.6-0.6s0.4-1.2 0.4-2.2v-11.5c0-1.1-0.1-1.8-0.4-2.3-0.3-0.4-0.8-0.6-1.6-0.6v-0.5h8.4c3.1 0 5.6 0.9 7.5 2.6 1.9 1.8 2.8 4 2.8 6.7s-0.9 4.8-2.6 6.4-4.2 2.4-7.4 2.4h-8.7"/><path class="st2" d="m167.5 41.2v0.5c-0.8 0-1.3 0.2-1.6 0.6s-0.4 1.2-0.4 2.3v11.3c0 1.1 0.1 1.8 0.4 2.3 0.3 0.4 0.8 0.6 1.6 0.6v0.5h-6.5v-0.5c0.8 0 1.3-0.2 1.6-0.6s0.4-1.2 0.4-2.3v-11.3c0-1.1-0.1-1.9-0.4-2.3s-0.8-0.6-1.6-0.6v-0.5h6.5"/><path class="st2" d="m183.7 41.7v-0.5h5.5v0.5c-0.9 0-1.5 0.2-1.8 0.6s-0.5 1.2-0.5 2.2v14.8h-0.6l-12.9-15.8v12.8c0 0.9 0.2 1.5 0.6 1.9s1 0.6 1.8 0.6v0.5h-5.5v-0.5c0.9 0 1.5-0.2 1.8-0.7s0.5-1.3 0.5-2.4v-10.6c0-1.1-0.2-2-0.6-2.5s-1.1-0.8-2.1-0.9v-0.5h4.7l11.4 14.1v-10.6c0-1.1-0.2-1.9-0.5-2.3-0.4-0.5-1-0.7-1.8-0.7"/><path class="st2" d="m197.3 50.3h-1.7v5.3c0 1.2 0.1 2 0.4 2.4s0.8 0.6 1.5 0.6h1.5c1.1 0 1.9-0.4 2.6-1.1s1-1.7 1-2.8c0-1.4-0.5-2.4-1.4-3.3-1-0.7-2.3-1.1-3.9-1.1zm-1.7-8.4v7.7h1.9c1.3 0 2.4-0.3 3.1-1s1.2-1.6 1.2-2.8-0.4-2.2-1.1-2.9c-0.8-0.7-1.8-1-3.2-1zm3.9 17.5h-8.4v-0.5c0.8 0 1.3-0.2 1.6-0.6s0.4-1.2 0.4-2.3v-11.4c0-1.1-0.1-1.9-0.4-2.3s-0.8-0.6-1.6-0.6v-0.5h6.9c2 0 3.5 0.4 4.6 1.2s1.7 1.9 1.7 3.2c0 2-1.2 3.3-3.7 4.1v0.1c1.4 0.3 2.5 0.9 3.4 1.8s1.3 2 1.3 3.3-0.5 2.4-1.6 3.2c-1 0.8-2.4 1.3-4.2 1.3"/><path class="st2" d="m221.6 55.5v-10.9c0-1.1-0.1-1.8-0.4-2.2s-0.8-0.6-1.5-0.7v-0.5h6.4v0.5c-0.8 0-1.3 0.2-1.6 0.6s-0.4 1.2-0.4 2.3v11.3c0 1.1 0.1 1.8 0.4 2.2s0.8 0.6 1.6 0.6v0.5h-4.5v-2.5c-1.7 2-3.7 3-6.1 3-1.9 0-3.4-0.6-4.5-1.7s-1.7-2.7-1.7-4.5v-8.9c0-1.1-0.1-1.8-0.4-2.3-0.3-0.4-0.8-0.6-1.6-0.6v-0.5h6.6v0.5c-0.8 0-1.4 0.2-1.7 0.6s-0.4 1.2-0.4 2.2v9.2c0 1.5 0.4 2.7 1.2 3.5 0.8 0.9 2 1.3 3.4 1.3 2.1 0.1 3.9-0.9 5.2-3"/><path class="st2" d="m235.1 41.9h-1.9v8.3h2.2c1.3 0 2.4-0.4 3.1-1.1 0.8-0.8 1.1-1.8 1.1-3s-0.4-2.2-1.3-3c-0.7-0.8-1.8-1.2-3.2-1.2zm-0.4 9h-1.5v5c0 1.1 0.2 1.8 0.5 2.2s0.8 0.6 1.6 0.6v0.5h-6.5v-0.5c0.8 0 1.3-0.2 1.6-0.6s0.4-1.2 0.4-2.2v-11.4c0-1.1-0.1-1.8-0.4-2.2s-0.8-0.6-1.6-0.6v-0.5h7.4c1.8 0 3.3 0.4 4.4 1.3s1.6 2 1.6 3.4c0 2.2-1.2 3.7-3.8 4.5 0.6 0.4 1.1 0.8 1.6 1.4s1.2 1.6 2.1 3.1c1 1.6 1.7 2.6 2.2 3.1s1.1 0.8 1.7 0.8v0.5h-3.7c-0.8-0.9-1.7-2.3-2.8-4.1-1.2-1.9-2.1-3.1-2.7-3.6-0.6-0.4-1.3-0.7-2.1-0.7"/><path class="st2" d="m264.1 51.5v0.5c-0.8 0-1.4 0.2-1.7 0.6s-0.5 1-0.5 1.9v4.9c-0.4 0.1-1.2 0.2-2.4 0.3s-2.1 0.1-2.7 0.1c-3.4 0-6-0.8-7.8-2.5-1.9-1.7-2.8-3.8-2.8-6.5 0-1.9 0.4-3.6 1.2-5.1s2-2.7 3.4-3.6 3-1.3 4.7-1.3c1 0 2.1 0.2 3.2 0.5 0.7 0.2 1.3 0.3 1.7 0.3 0.5 0 0.9-0.2 1-0.6h0.6v5.4h-0.5c-0.2-1.5-0.9-2.7-2-3.6s-2.5-1.3-4-1.3c-1.9 0-3.5 0.8-4.7 2.3s-1.8 3.5-1.8 5.9c0 2.7 0.7 4.9 2.1 6.6 1.4 1.8 3.2 2.6 5.4 2.6 2 0 3.1-0.6 3.1-1.9v-2c0-1.1-0.1-1.9-0.4-2.3s-0.8-0.7-1.6-0.7h-0.7v-0.5h7.2"/><path class="st2" d="m280 55.9v-5.3h-9.9v5.3c0 1.1 0.2 1.8 0.5 2.2s0.9 0.6 1.6 0.6v0.5h-6.6v-0.5c0.8 0 1.3-0.2 1.6-0.6s0.4-1.2 0.4-2.2v-11.3c0-1.1-0.1-1.9-0.4-2.3s-0.8-0.6-1.6-0.6v-0.5h6.6v0.5c-0.8 0-1.3 0.2-1.6 0.7-0.3 0.4-0.5 1.2-0.5 2.2v5.2h9.9v-5.2c0-1.1-0.1-1.9-0.4-2.3s-0.8-0.6-1.6-0.6v-0.5h6.5v0.5c-0.8 0-1.3 0.2-1.6 0.6s-0.4 1.2-0.4 2.3v11.3c0 1.1 0.1 1.8 0.4 2.3 0.3 0.4 0.8 0.6 1.6 0.6v0.5h-6.5v-0.5c0.8 0 1.3-0.2 1.6-0.6 0.2-0.4 0.4-1.2 0.4-2.3"/><path class="st2" d="m68.6 36c0-0.6-0.2-1.2-0.2-1.8-0.1-0.6-0.1-1.3-0.2-1.9-0.4-1.7-0.8-3.3-1.4-4.9-0.1-0.2-0.2-0.4-0.3-0.7-0.2-0.5-0.4-0.9-0.6-1.3-0.1-0.1-0.1-0.3-0.2-0.4-0.2-0.4-0.3-0.8-0.5-1.2-0.1-0.2-0.3-0.4-0.4-0.7-0.1-0.2-0.2-0.5-0.3-0.7-0.4-0.7-0.9-1.3-1.3-1.9-0.2-0.2-0.3-0.4-0.5-0.6s-0.4-0.5-0.6-0.7-0.4-0.3-0.5-0.5c-0.1-0.1-0.1-0.2-0.2-0.4s-0.3-0.3-0.4-0.4l-0.2-0.2c-0.2-0.2-0.4-0.5-0.6-0.7s-0.4-0.4-0.6-0.5l-0.6-0.6c-0.3-0.2-0.5-0.4-0.8-0.6s-0.5-0.5-0.8-0.7c-0.2-0.1-0.4-0.2-0.5-0.3-0.2-0.2-0.4-0.3-0.7-0.5-0.2-0.1-0.3-0.3-0.5-0.4-0.1-0.1-0.2-0.1-0.4-0.2s-0.3-0.2-0.5-0.3c-0.5-0.3-1.1-0.6-1.7-0.9-0.2-0.1-0.4-0.3-0.6-0.4-0.4-0.2-0.7-0.4-1.1-0.5-0.3-0.1-0.6-0.2-0.9-0.4-0.1-0.1-0.3-0.2-0.4-0.2s-0.2-0.1-0.3-0.1c-0.2-0.1-0.4-0.2-0.5-0.2-0.6-0.2-1.1-0.3-1.7-0.5-0.3-0.1-0.6-0.2-0.8-0.3-0.6-0.2-1.2-0.3-1.8-0.4l-1.2-0.3c-0.3 0-0.5-0.1-0.8-0.1-0.4-0.1-0.9-0.2-1.4-0.2h-0.5c-0.1 0-0.2 0-0.4-0.1h-0.7c-0.5 0-1.1-0.1-1.7-0.1-0.2 0.1-0.5 0-0.8 0h-0.9-0.2-0.6c-0.1 0-0.2 0.1-0.3 0.1h-0.3-0.3-0.2c-0.1 0-0.3 0-0.4 0.1-0.3 0-0.7 0-0.9 0.2h-0.2c-0.2 0-0.4 0-0.6 0.1-0.5 0-0.9 0.2-1.3 0.3-0.4 0-0.7 0-0.9 0.2-0.2 0-0.4 0-0.5 0.1-0.3 0-0.6 0.2-0.8 0.3s-0.3 0.1-0.5 0.1c-0.3 0-0.6 0.2-0.8 0.3s-0.3 0.1-0.5 0.2c-0.9 0.4-1.8 0.8-2.7 1.3-0.2 0.1-0.3 0.2-0.4 0.3-1.1 0.5-2.1 1.1-3 1.9-0.3 0.2-0.5 0.4-0.8 0.6l-0.4 0.4c-0.3 0.2-0.5 0.4-0.8 0.6-0.5 0.4-1 0.9-1.5 1.4-0.3 0.3-0.6 0.5-0.9 0.8-0.1 0.1-0.2 0.2-0.3 0.4l-0.4 0.4c-0.2 0.2-0.4 0.5-0.6 0.7s-0.4 0.4-0.5 0.6c-0.1 0.1-0.2 0.2-0.2 0.3-0.3 0.4-0.6 0.7-0.9 1.1l-0.6 0.9c-0.3 0.3-0.6 0.8-0.8 1.2-0.1 0.1-0.1 0.2-0.2 0.4-0.2 0.3-0.4 0.6-0.5 0.9-0.2 0.3-0.3 0.7-0.4 1-0.1 0.1-0.1 0.2-0.2 0.4-0.2 0.3-0.3 0.6-0.4 0.9-0.1 0.2-0.1 0.4-0.2 0.6l-0.3 0.6c-0.1 0.2-0.1 0.4-0.2 0.7-0.1 0.2-0.2 0.5-0.3 0.7-0.4 1.4-0.8 2.9-1.1 4.4 0 0.3-0.1 0.6-0.1 0.9s-0.2 0.7-0.2 1 0 0.6-0.1 0.8c0 0.2 0 0.4-0.1 0.6v3.6c0 0.6 0.1 1.2 0.2 1.7v0.7c0.1 0.8 0.2 1.6 0.3 2.3 0.1 0.2 0.1 0.4 0.2 0.6 0.1 0.6 0.3 1.2 0.4 1.8 0.1 0.1 0.1 0.3 0.2 0.4 0 0.1 0.1 0.3 0.1 0.4 0.2 0.6 0.5 1.3 0.7 1.9 0.1 0.2 0.2 0.5 0.3 0.7s0.1 0.3 0.2 0.5l0.6 1.2c0.2 0.3 0.4 0.6 0.5 1 0.1 0.1 0.1 0.2 0.1 0.4l0.2 0.2c0.1 0.1 0.1 0.3 0.2 0.4 0.2 0.3 0.3 0.5 0.5 0.8 0.1 0.2 0.2 0.3 0.3 0.5 0.2 0.2 0.3 0.4 0.5 0.6 0.1 0.2 0.2 0.3 0.3 0.5 0.2 0.3 0.4 0.5 0.6 0.8 0.2 0.2 0.4 0.4 0.5 0.7 0.2 0.2 0.4 0.5 0.7 0.7 0.2 0.2 0.3 0.5 0.6 0.7 0.3 0.3 0.6 0.6 0.9 0.8l0.4 0.4c0.2 0.2 0.5 0.4 0.8 0.6 0.2 0.2 0.5 0.4 0.7 0.7 0.2 0.1 0.3 0.3 0.5 0.4 0.2 0.2 0.4 0.4 0.6 0.5 0.3 0.2 0.5 0.4 0.8 0.6l0.6 0.3c0.2 0.1 0.4 0.3 0.6 0.4s0.4 0.2 0.6 0.4c0.8 0.5 1.6 0.9 2.4 1.3 0.4 0.2 0.7 0.4 1.1 0.5s0.7 0.3 1.1 0.4c0.1 0 0.3 0.1 0.4 0.1 0.3 0.1 0.7 0.3 1 0.4 0.1 0 0.2 0.1 0.3 0.1 0.3 0.1 0.6 0.3 0.9 0.3 0.4 0.1 0.8 0.1 1.1 0.2 0.6 0.1 1.1 0.3 1.7 0.4h0.6c0.3 0 0.6 0.1 0.8 0.1h0.7c0.1 0 0.3 0 0.4 0.1h0.4c0.3 0.1 0.7 0.1 1 0.2h0.5 0.3c0.3 0 0.7 0 1 0.1h0.6c0.4 0 0.8-0.1 1.1-0.1h0.5c0.2 0 0.5-0.1 0.7-0.1l2.4-0.3c0.3-0.1 0.5-0.1 0.8-0.2s0.7-0.1 1-0.2c0.2 0 0.3-0.1 0.5-0.2 0.3-0.1 0.5-0.2 0.8-0.2 0.1 0 0.2-0.1 0.4-0.1 0.2-0.1 0.4-0.1 0.6-0.1 0.4-0.1 0.8-0.3 1.2-0.4 0.2-0.1 0.5-0.2 0.7-0.3s0.5-0.2 0.7-0.3c0.1 0 0.1-0.1 0.2-0.1 0.2-0.1 0.5-0.2 0.7-0.3 0.3-0.2 0.5-0.3 0.8-0.5 0.1-0.1 0.3-0.1 0.4-0.2 0.4-0.2 0.8-0.5 1.2-0.7 0.3-0.2 0.7-0.4 1-0.6s0.6-0.5 0.9-0.7 0.6-0.5 1-0.7l0.2-0.2c0.1 0 0.2-0.1 0.2-0.1 0.3-0.2 0.5-0.5 0.8-0.7l0.6-0.6c0.2-0.2 0.4-0.4 0.7-0.6 0.1-0.1 0.1-0.2 0.2-0.3 0.2-0.2 0.4-0.3 0.5-0.5 0.1-0.1 0.2-0.3 0.3-0.4 0.4-0.4 0.8-0.8 1.1-1.2 0.3-0.3 0.5-0.6 0.8-1 0.2-0.2 0.4-0.5 0.5-0.8l0.3-0.3c0.3-0.4 0.6-0.8 0.9-1.2 0.1-0.1 0.1-0.3 0.2-0.4s0.1-0.2 0.2-0.3 0.1-0.2 0.2-0.4c0.2-0.3 0.4-0.7 0.6-1s0.3-0.5 0.5-0.8c0.1-0.3 0.2-0.5 0.3-0.8s0.3-0.6 0.4-0.8c0.4-1.2 0.9-2.4 1.2-3.6 0-0.1 0.1-0.3 0.1-0.4 0.1-0.5 0.2-0.9 0.3-1.4 0-0.2 0.1-0.5 0.1-0.7 0.1-0.4 0.1-0.8 0.2-1.2 0-0.3 0-0.6 0.1-1 0-0.1 0-0.2 0.1-0.4v-0.8c0-0.1 0.1-0.3 0.1-0.4v-0.6c0.1-1.7 0.2-3 0.1-4.2m-36.3-25.8c0.3 0 0.5-0.1 0.7-0.2 0.4-0.1 0.8-0.2 1.2-0.2h0.9c0.4 0 0.8-0.1 1.2-0.2h0.5c0.2 0 0.4 0 0.6-0.1h1.2c0.2 0 0.5 0 0.7 0.1 0.2 0 0.4 0.1 0.5 0.1h0.8 0.4 0.5c0.2 0 0.4 0.1 0.7 0.1h0.3c0.1 0 0.2 0.1 0.3 0.1s0.2 0.1 0.4 0.1c0.5 0.1 1 0.1 1.5 0.2h0.1c0 0.1-0.8 0-1 0h-0.3-0.7-0.3-0.4-0.3c-0.3 0-0.8-0.1-1.1 0-0.3 0-0.6 0-0.9-0.1-0.1 0-0.4-0.1-0.5 0h-0.4c-0.2 0-0.3-0.1-0.5 0-0.1 0-0.2 0-0.3 0.1h-2.1c-0.1 0-0.3 0-0.4-0.1h-1c-0.2 0-0.7-0.1-0.8 0-0.5 0.1-1 0.1-1.5 0.1zm-3.8 1.1c0.1 0 0.3-0.2 0.4-0.2s0.2-0.1 0.3-0.1c0.1-0.1 0.2-0.1 0.3-0.1 0.3-0.1 0.7-0.2 1-0.3h0.7 0.9 0.5 0.8 1.1c1.3 0 2.6 0.1 3.9 0.1h0.6 0.9c1.5 0 3-0.1 4.5 0h1.5 0.6c0.4 0.1 0.8 0.4 1.2 0.5 0.2 0 0.8 0.1 1 0.3h-0.1-0.2-0.6c-0.2 0-0.4-0.1-0.6-0.1h-0.6-0.3-0.6-0.4-0.6c-0.3 0-1-0.1-1.2 0-0.1 0-0.3-0.1-0.4 0-0.2 0-0.3 0-0.5-0.1h-0.6-0.4-0.5-0.5-1.4-0.5-0.3-0.3c-0.4 0-0.8-0.1-1.2-0.1h-1.4c-0.2 0-0.6-0.1-0.7 0h-1.1-0.4-0.2-1.5-0.2-0.6-0.3c-0.6 0.2-1.3 0.2-2 0.1zm-2.1 0.9c0.1-0.1 0.2-0.1 0.2-0.2 0.7-0.4 1.6-0.2 2.4-0.2h1.4 0.4 0.8 2.9 0.6 0.8 0.3 0.3 0.4c0.5 0 0.9 0.1 1.4 0.1 0.2 0 0.5-0.1 0.7-0.1 0.6 0 1.2 0.1 1.8 0.1 0.3 0 0.6-0.1 0.9-0.1h1.5 0.8 3.3c0.2 0 0.3 0.1 0.5 0.1s0.5 0 0.7-0.1c0.3 0 0.8 0.1 1.1 0 0.4 0 0.7 0.2 1 0.4 0.3 0.1 0.7 0.2 0.9 0.4v0.1h-0.1-0.5-0.6-0.2c-0.2 0-0.9-0.1-1 0h-0.4-0.7c-0.2 0-0.4-0.1-0.6 0h-0.6-0.9c-0.3 0-0.8-0.1-1.1 0h-0.2-0.7-0.3c-0.2 0-0.5-0.1-0.7 0h-0.6-0.4-1-0.4-1.1-0.4-0.9-1.1-0.3-0.9-0.4-0.2-0.3c-1.2 0-2.3-0.1-3.5-0.1h-0.5c-0.1 0-0.3-0.1-0.4 0h-0.7-1.5c-0.2 0-0.8-0.1-0.9 0h-0.7-0.2c-0.3 0-0.5-0.1-0.8-0.1 0-0.1 0.6-0.3 0.7-0.3m-2.7 1.5c0-0.1 0.2-0.1 0.2-0.2 0.1-0.1 0.3-0.2 0.4-0.2 0.1-0.1 0.3-0.2 0.4-0.2 0.4-0.1 1.1-0.1 1.5-0.1h1.3 1.1 0.4c0.7-0.1 1.5 0 2.2 0h1.1c0.5 0 0.9 0.1 1.4 0.1h0.8c0.4 0 0.7-0.1 1.1-0.1 0.8 0 1.6 0.1 2.3 0.1h0.3 0.4 0.6 0.7 0.8c0.5 0 1 0.1 1.6 0.1 0.2 0 0.4-0.1 0.7-0.1h0.5 0.2c0.1 0 0.3 0.1 0.4 0.1h0.6 0.8c0.2 0 0.4-0.1 0.6 0h0.9 0.5 1.8 0.8 1.7 0.8c0.1 0 0.2 0.1 0.3 0.2 0.2 0.2 0.5 0.3 0.7 0.5 0 0.1-0.4 0.1-0.5 0.2h-0.4-0.4-0.5-0.3-1.1-0.4-0.4-0.2-2.7c-0.2 0-0.6-0.1-0.8 0h-0.5c-0.2 0-0.6-0.1-0.8 0h-0.4c-0.2 0-0.5-0.1-0.7 0h-0.5c-0.2 0-0.4-0.1-0.5 0h-0.2-1.2-0.5c-0.2 0-0.7-0.1-0.9 0h-0.3c-0.2 0-0.4-0.1-0.6 0h-0.4-1.8c-0.3 0-0.8-0.1-1.1 0h-0.2c-0.2 0-0.5 0-0.7-0.1h-1.7c-0.2 0-0.3-0.1-0.5-0.1h-1.1-0.3-1.7-0.9c-0.2 0-0.6-0.1-0.8 0h-0.3-0.3-0.8-0.4-0.3c-0.3 0-0.6 0-1-0.1-0.3 0-0.6 0-0.8-0.1v0m-1.7 1.2s0.2-0.1 0.2-0.2c0.3-0.2 0.5-0.3 0.8-0.5 0.2-0.1 0.4-0.1 0.6-0.1s0.5 0 0.7 0.1h1.4 0.7 0.7 0.6c0.3 0 0.6 0.1 1 0.1 0.5 0 1-0.1 1.4 0h0.4 1.1 2.1 1.6 1.1 0.4c0.3 0 0.6 0.1 0.9 0.1 0.4 0 0.8-0.1 1.2-0.1 0.3 0 0.6 0 1 0.1h1 0.4 0.4 0.9 1.5c0.3 0 0.6 0 0.9-0.1h2.1 0.4 2.2c0.3 0 0.7-0.1 1 0 0.4 0 0.7 0.1 1.1 0.1 0.3 0 0.7-0.1 1-0.1 0.2 0 0.4 0 0.6-0.1 0.3 0 0.6 0 0.8 0.1 0.1 0 0.2 0.2 0.3 0.2s0.1 0.1 0.2 0.1c0.2 0.1 0.3 0.3 0.5 0.4l-0.1 0.1h-0.6c-0.2 0-0.4-0.1-0.6 0h-0.2-1.3-1.2-0.4-0.3-0.6-0.7-0.6c-0.2 0-0.3-0.1-0.5 0h-1.5-0.5-0.3-1.1-0.4c-0.4 0-1-0.1-1.3 0h-0.7-1.8c-0.2 0-0.6-0.1-0.8 0h-0.3-0.9-2.5-1.3-0.4-0.4-0.8-0.2-0.8-0.4-1.2c-0.1 0-0.3-0.1-0.4 0h-1.7c-0.1 0-0.3-0.1-0.4 0h-0.3-2.1c-0.3 0-1-0.1-1.2 0h-0.2-1.1c-0.3-0.1-0.7-0.1-1.1-0.2zm-1.7 1.2c0.1 0 0.1-0.1 0.2-0.1 0.2-0.1 0.7-0.6 0.9-0.6h1.2 0.7 0.7 1.2c0.8 0 1.5 0.1 2.2 0.1h0.5 1.2c0.2 0 0.4 0 0.6 0.1h0.7 0.7c0.6 0 1.1-0.1 1.7-0.1h0.8 0.4 0.8c0.4 0 0.9 0.1 1.3 0.1h0.7 0.8 0.4 0.3 0.4 1 0.3c0.2 0 0.4 0 0.6 0.1h0.8 0.5 1.1 0.6 1.1 0.5 0.4 0.7c0.5 0 1 0.1 1.5 0.1 0.9 0 1.7-0.1 2.6-0.1h0.8 0.5 1.3c0.3 0 0.6 0 0.9 0.1 0.2 0 0.4 0 0.5-0.1h0.5c0.3 0 0.6 0 1 0.1 0.1 0 0.8 0.5 0.8 0.7h-0.1-0.6c-0.4 0-0.9-0.1-1.2 0.1h-0.2-0.4c-0.3 0-0.8-0.1-1 0-0.2 0-0.4 0-0.6-0.1h-1.2c-0.2 0-0.6-0.1-0.8 0h-2.4-1.1-0.4-0.9c-0.2 0-0.4-0.1-0.5 0h-0.8-0.3-0.2-1-0.4c-0.2 0-0.9-0.1-1 0-0.2 0-0.7-0.1-0.8 0h-0.2c-0.3 0-0.6-0.1-1-0.1h-0.3c-0.3 0-0.7-0.1-1 0h-0.2c-0.2 0-0.6-0.2-0.8-0.1h-1-0.3c-0.2 0-0.6-0.1-0.8 0h-0.2-1.2-0.4-0.7-0.4-0.3c-0.1 0-0.3 0-0.4 0.1h-0.4c-0.2 0-0.6-0.2-0.8-0.1h-1-0.3-0.3-0.2c-0.5 0-0.9 0-1.3-0.1h-0.3-1.3c-0.2 0-0.6-0.1-0.8 0h-0.4c-0.1 0-0.4-0.1-0.5 0h-0.2-1.2-0.4c-0.8-0.1-1.3-0.1-1.9-0.1zm47 22c0 0.1-0.1 0.1-0.2 0.1h-0.4c-0.2 0-0.5-0.1-0.6 0h-2.4c-0.2 0-0.6-0.1-0.7 0-0.2 0-0.7-0.1-0.8 0-0.2 0-0.4-0.1-0.6 0h-0.9-1.3v0.4h0.2 0.7 0.5 0.8 2.8 1.3 0.7 0.5 0.3c0.1 0 0 0.7 0 0.8h-0.4c-0.2 0-0.7-0.1-0.8 0h-0.5-0.7-1.3-0.3-1.5c-0.2 0-0.5-0.1-0.7 0h-0.7c-0.1 0-0.3-0.1-0.5 0h-0.3v-0.1 0.5h0.1 0.6 0.6 1.1 0.5 0.8 0.3 0.5 0.3 0.3 0.6 0.8c0.2 0 1.1-0.1 1.3 0.1 0.1 0.1 0 0.7 0 0.8 0 0-0.2 0-0.3 0.1h-0.2-1.2-0.4-1.2-0.3-0.3-0.4-0.8c-0.1 0-0.3-0.1-0.5 0h-2-0.2v0.4h0.2 1.4 0.5c0.8 0 1.5 0.1 2.3 0.1h0.9 1.9 0.4c0 0.2 0 0.6-0.1 0.7-0.1 0-0.2 0-0.2 0.1-0.2 0-0.6-0.1-0.7 0h-0.3-0.2c-0.7 0-1.5-0.1-2.2-0.1-0.2 0-0.5-0.1-0.7 0-0.2 0-0.6-0.1-0.7 0h-1.8-0.6v0.4c0.1-0.1 0.5 0 0.7 0h1.6c0.3 0 0.8 0 1.1-0.1 0.4 0 0.7 0 1.1 0.1h1 1c0.3 0 0.7-0.1 1 0 0.2 0 0.1 0.6 0 0.7s-0.2 0.1-0.2 0.1h-0.2-1.5c-0.2 0-0.5-0.1-0.7 0h-0.7-1.7-0.5-0.4c-0.5 0-1 0-1.5-0.1v0.4h0.1 1.1 0.5 0.4 0.6c0.3 0 1 0.1 1.2 0h0.4 0.7 1.4c0.2 0 0.7 0 0.8 0.1 0.1 0 0 0.6 0 0.7 0 0-0.1 0-0.1 0.1-0.2 0-1-0.1-1.1 0h-0.6-0.8-0.4c-0.1 0-0.3 0-0.4 0.1-0.2 0-0.3 0-0.5-0.1h-0.8-0.4c-0.1 0-0.3 0-0.4-0.1h-1.3-0.3v0.4h0.8 0.5 1.6c0.4 0 1 0.1 1.4 0h0.8 0.4 0.4 1.4c0 0.2 0 0.4-0.1 0.5 0 0.1-0.1 0.2-0.1 0.3h-0.7-0.6-0.8-0.6c-0.2 0-0.5-0.1-0.7 0h-0.3c-0.3 0-0.6 0-0.8-0.1-0.8 0-1.6-0.1-2.4-0.1v0.4h0.2 0.3 1 0.9 0.8c0.5 0 1 0.1 1.4 0.1 0.3 0 0.6-0.1 0.9-0.1 0.2 0 1.2-0.1 1.3 0.1 0.1 0.1 0 0.2 0 0.3 0 0.2-0.1 0.4-0.2 0.5-0.5 0-1.1-0.1-1.6 0h-0.3c-0.2 0-1-0.1-1.1 0h-0.7c-0.2 0-0.4-0.1-0.6 0-0.2 0-0.5-0.1-0.7 0-0.6 0-1.1-0.1-1.7-0.1v0.4h1.1c0.3 0 0.7 0.1 1.1 0.1h1.8 0.5 0.3 0.3c0.3 0 1.3 0 1.4 0.1s0 0.2 0 0.3-0.1 0.2-0.2 0.3h-0.4-0.3-0.2c-0.2 0-0.7-0.1-0.8 0h-0.3-1.1-0.4c-0.2 0-0.4-0.1-0.6 0-0.2 0-1.8 0-2.2-0.1v0.5c0.2 0 0.3-0.1 0.5-0.1h2 0.5 1 0.5 0.8 0.3c0.2 0 0.4 0 0.6 0.1 0 0.1-0.2 0.6-0.3 0.7-0.1 0-0.2 0.1-0.3 0.1h-0.8-0.4-0.3-0.2-0.8c-0.1 0-0.3-0.1-0.4 0h-0.2-0.8c-0.2 0-0.5-0.1-0.7 0h-0.3c-0.1 0-0.6 0-0.7-0.1v0.5c0.1-0.1 0.9-0.1 1.1-0.1h0.4 1 0.6 0.5 0.9c0.2 0 0.8-0.1 1.1 0 0.1 0.1-0.1 0.4-0.1 0.4-0.1 0.1-0.1 0.3-0.3 0.3h-0.2c-0.2 0-0.3 0-0.5-0.1h-1-0.3c-0.2 0-0.6-0.1-0.8 0h-0.2-0.5-0.4-1.3v0.5c0.2 0 0.3-0.1 0.4-0.1h0.9 0.4 1.8 0.8 0.5c0.1 0 0.2 0 0.3 0.1s-0.1 0.6-0.2 0.6l-0.2 0.2h-0.6c-0.2 0-0.6-0.1-0.8 0h-0.7-0.6c-0.2 0-0.4-0.1-0.6 0h-1.4v0.4h0.4 0.6c0.2 0 0.4 0 0.6-0.1 0.3 0 0.6 0 0.9 0.1h0.7c0.3 0 0.6 0.1 0.9 0 0.2 0 0.4 0.1 0.6 0.1 0 0.2-0.3 0.7-0.5 0.8h-0.6c-0.3 0-1-0.1-1.2 0h-1.5c-0.2 0-0.5 0-0.7-0.1v0.4h0.7 0.4c0.4 0 0.7 0.1 1.1 0.1h1.1c0.2 0 0.4 0 0.5 0.1 0 0-0.4 0.8-0.7 0.8s-0.9 0-1.2-0.1c-0.5 0-0.9 0-1.4-0.1h-0.7v0.4c0.8 0 1.7 0 2.4 0.1 0.2 0 0.4 0 0.7 0.1v0.1c-0.1 0-0.1 0.1-0.1 0.1-0.5 0.3-0.7 0.7-0.9 0.7-0.1 0-0.2 0-0.2 0.1-0.2 0-0.6-0.1-0.7-0.1-0.2 0-0.6-0.1-0.8 0h-0.8v0.4h1.2 0.5 0.7c0 0.2-0.4 0.7-0.6 0.7h-0.4-1.4v0.4h0.3c0.2 0 1.1 0 1.1 0.1 0.1 0.2-0.4 0.6-0.5 0.7h-0.9c0 0.2-0.1 0.3-0.1 0.4h0.7c0 0.2-0.8 0.9-1 1h-0.1c-0.4 0.6-0.9 1.1-1.7 1.7-0.6 0.5-1.3 0.9-2 1.2h0.1c0.4 0-0.5 0.6-0.6 0.6h-0.9-0.1c-0.6 0.2-1.3 0.4-2 0.5h0.5 0.6 0.3 0.4 0.4v0.1c-0.2 0.2-0.4 0.3-0.6 0.4-0.1 0.1-0.2 0.2-0.4 0.3-0.1 0-0.2 0.1-0.4 0.1h-0.3-2c-0.2 0-0.7-0.1-0.9 0-0.3 0-0.6-0.1-0.8 0h-0.6c-0.4 0-0.7-0.1-1.1-0.1h-0.2-1.7c-0.2 0-0.5 0.1-0.7 0.1-0.7 0.1-1.2 0.2-1.7 0.4h1.7 1.2 2.9 1c0.2 0 0.3 0 0.5-0.1h2.2c-0.1 0-0.3 0.2-0.4 0.2-0.3 0.1-0.6 0.3-0.9 0.4-0.2 0.1-0.4 0.2-0.6 0.2-0.4 0.1-0.8 0-1.2 0h-0.4-0.5-0.6c-0.2 0-0.5-0.1-0.7 0h-1.2-0.6-0.4-0.7c-0.2 0-0.8-0.1-1 0-0.5 0-1.3-0.1-1.9-0.1-0.2 0.2-0.4 0.3-0.5 0.5h0.8c0.7-0.1 1.5 0 2.3 0h1.2 0.7 0.4c0.2 0.1 0.7 0 0.9 0 0.4 0 0.8 0.1 1.1 0.1 0.2 0 0.4 0 0.5-0.1h0.7-0.1c-0.3 0.1-0.5 0.2-0.8 0.3-0.1 0.1-0.3 0.1-0.4 0.2-0.2 0.1-0.4 0.1-0.6 0.2h-0.8-0.5-0.4-0.4-0.2-0.7c-0.1 0-0.4-0.1-0.5 0h-0.4-0.6-0.3-0.4-0.2c-0.2 0-0.8-0.1-1 0h-0.4-0.8c-0.1 0.1-0.1 0.3-0.2 0.4 0.6-0.1 1.4 0 1.9 0s1 0 1.5-0.1c0.2 0 0.4 0 0.6-0.1h1.1 1.1c-0.3 0-0.6 0.2-0.9 0.2-0.2 0-0.4 0-0.6 0.1-0.3 0-0.6 0.1-0.9 0.2h-0.2c-0.2 0-0.3 0-0.5 0.1-0.1 0-0.5 0.1-0.6 0.1h-0.5-0.7-0.2-1.2c-0.6 0-1.2 0.1-2 0h-0.2c-0.3-0.1-0.7-0.1-1-0.2h-0.5c-0.2 0-0.4-0.1-0.7-0.1h-0.6c-1.1-0.2-2.3-0.3-3.3-0.6-0.2 0-0.6-0.1-0.7-0.2 0.5 0.1 1.1 0.1 1.6 0.1s0.9 0.1 1.4 0.1h0.4 0.4 0.6 0.4c0.2 0 0.3 0.1 0.5 0.1h1.4c-0.1-0.2-0.2-0.3-0.3-0.5h-0.7c-0.2 0-0.4-0.1-0.6 0h-1.3c-0.2 0-0.3-0.1-0.5 0-0.4 0-0.8-0.1-1.3-0.1h-1.8c-0.2 0-0.4-0.1-0.6-0.1h-0.4c-0.2 0-0.4-0.1-0.5-0.1-0.1-0.1-0.2-0.1-0.4-0.1s-0.4-0.1-0.6-0.1-0.4-0.1-0.6-0.2c-0.1 0-0.2-0.1-0.3-0.1h0.3 1.2c0.3 0 0.6 0 0.9-0.1h1.2c0.2 0 0.3 0 0.5 0.1 0.3 0 0.6-0.1 0.9-0.1 0.4 0 0.9 0.1 1.3 0.1h1.5 0.9c-0.1-0.1-0.3-0.2-0.5-0.4h-0.4-0.3c-0.3 0-0.6 0-0.9-0.1h-0.3c-0.1 0-0.3-0.1-0.5 0h-1-0.4-1c-0.2 0-0.5-0.1-0.7-0.1s-0.4 0-0.5 0.1h-0.7c-0.7 0-1.5 0-2.1-0.1-0.3 0-0.6 0-0.8-0.1-0.4-0.1-0.8-0.5-1.2-0.7v-0.1h1.3c0.2 0 0.5 0.1 0.7 0.1h0.9 0.7 0.4 0.7 2.1 1.6 0.2 0.4c-0.4-0.2-0.9-0.3-1.4-0.4h-0.2-1.1-0.4-0.3-1.1-0.7-0.6-1.4-0.5-0.7c-0.2 0-0.3-0.1-0.5-0.1-0.3 0-0.7 0-1-0.1s-0.5-0.3-0.7-0.4c-0.1-0.1-0.3-0.1-0.3-0.3 0.6 0 1.3 0 1.9 0.1h1.3 0.6c-1.1-0.1-2-0.3-2.8-0.4h-0.4-0.5-0.2c-0.4 0-0.7-0.1-0.9-0.3l-0.2-0.2h0.3c-1.2-0.4-2.1-1-2.9-1.7-0.5-0.5-0.9-1.1-1.2-1.8h-0.2c-0.2 0-0.7-0.6-0.8-0.8 0 0 0.2 0 0.2-0.1h0.5c0-0.1 0-0.2-0.1-0.3h-1c-0.1 0-0.7-0.6-0.7-0.7v-0.1h0.5 1v-0.4h-0.2-0.3c-0.1 0-0.5-0.1-0.6 0h-0.2-0.7c-0.2-0.1-0.6-0.6-0.6-0.8h0.2 0.5c0.2 0 0.5 0 0.7-0.1h1v-0.4h-0.3-0.4-0.4-0.5-0.3c-0.1 0-0.2 0-0.3 0.1-0.2 0-0.4 0-0.5-0.1-0.1 0-0.5-0.6-0.4-0.7s0.7-0.1 0.8-0.1h2.3v-0.4h-0.9-0.3c-0.2 0-0.5-0.1-0.6 0-0.2 0-0.7-0.1-0.9 0h-0.4c-0.1 0-0.2 0-0.3-0.1s-0.1-0.2-0.2-0.3c-0.1-0.2-0.3-0.4-0.3-0.7 0.2 0 0.4 0.1 0.7 0.1h0.6 1 0.5c0.3 0 0.7 0.1 1 0h0.3v-0.4h-0.8-0.3-1.2-0.4-0.6-0.3-0.4c-0.1 0-0.2 0-0.3-0.1-0.2-0.1-0.4-0.6-0.5-0.8 0 0 0.1 0 0.1-0.1 0.4 0 0.7 0.1 1.1 0.1h0.3 0.3 0.6c0.2 0 0.4-0.1 0.7 0 0.2 0 0.3 0.1 0.5 0.1s0.7-0.1 1 0v-0.4h-0.2-3-0.4-0.6-0.3c-0.1 0-0.3 0-0.4-0.1-0.2-0.1-0.3-0.5-0.3-0.7h0.6 0.5 0.9 0.4 0.4c0.3 0 0.7 0 1 0.1h0.5c0.3 0 0.6 0.1 1 0.1v-0.5h-0.1-1-1c-0.2 0-0.3 0-0.5-0.1h-0.9c-0.2 0-0.5-0.1-0.6 0h-1.2c0-0.1-0.1-0.1-0.1-0.2-0.1-0.1-0.2-0.4-0.1-0.5l0.1-0.1h0.9 0.6 0.4 0.3 0.8 1.3c0.3 0 0.8 0.1 1.1 0.1v-0.4c-0.5 0-1.7-0.1-1.9 0h-0.9-1.1c-0.2 0-0.4 0-0.6-0.1h-0.4c-0.1 0-0.3-0.1-0.4 0h-0.2c-0.1 0-0.2 0-0.3-0.1s-0.3-0.6-0.2-0.7c0.3-0.2 0.9 0 1.3-0.1 0.4 0 0.7 0 1.1 0.1h0.8c0.1 0 0.3 0 0.4 0.1h1.9 0.7v-0.5h-0.3-1-0.5-1.2c-0.1 0-0.4-0.1-0.5 0h-0.8c-0.2 0-0.8-0.1-1 0-0.2 0-0.4 0-0.5-0.1-0.2 0-0.6 0-0.8-0.1-0.1-0.1-0.1-0.2-0.1-0.4 0-0.1-0.1-0.2-0.1-0.2 0.1-0.1 0.7-0.1 0.9-0.1h0.7 1.3 0.3 0.8 0.6 0.5 1.1 0.5v-0.4h-0.5-0.3-0.5-1.1-0.6-0.6c-0.2 0-0.6-0.1-0.8 0-0.3 0-0.5 0-0.8-0.1-0.3 0-1.3 0.1-1.5-0.1-0.1-0.1-0.2-0.6-0.2-0.7h0.5c0.4 0 0.8 0 1.2 0.1 0.1 0 0.2 0 0.3 0.1h1c0.3 0 0.5-0.1 0.8-0.1h0.6 0.5 1c0.2 0 0.9-0.1 1.2 0v-0.4h-0.3-0.8-0.6-0.2c-0.3 0-0.8-0.1-1 0h-0.5c-0.3 0-0.8-0.1-1 0-0.3 0-0.7-0.1-0.9 0-0.2 0-0.8-0.1-1 0-0.2 0-0.8 0-0.9-0.1s-0.1-0.2-0.1-0.3-0.1-0.2 0-0.3h0.1 0.6 1.5 0.6c1.1 0.1 2.2 0 3.4 0h1.1v-0.4h-0.5-1c-0.2 0-0.4 0-0.5 0.1h-0.3c-0.3 0-1.1-0.1-1.3 0-0.2 0-0.4-0.1-0.7-0.1-0.8 0-1.7 0-2.5-0.1-0.1 0-0.4 0-0.5-0.1s-0.1-0.5-0.1-0.7h1.6c0.3 0 0.7 0.1 0.9 0 0.4 0 0.9 0.1 1.3 0.1h0.6c0.3 0 0.5 0 0.8 0.1 0.1 0 0.2-0.1 0.4-0.1h0.7 0.2 0.8v-0.4h-0.4-0.5-0.9-0.5c-0.1 0-0.7-0.1-0.8 0h-0.5c-0.1 0-0.3-0.1-0.4 0-0.5 0-0.9-0.1-1.4-0.1h-0.4-0.7c-0.2 0-0.8 0-0.9-0.2-0.1-0.1-0.1-0.2-0.1-0.3s0-0.3 0.1-0.3c0.2-0.1 0.5 0 0.8 0h2.1 0.6 0.7 0.3 1 0.4 1.2 0.5v-0.4h-1c-0.2 0-0.7-0.1-0.9 0-0.2 0-0.7-0.1-0.8 0h-0.5-1.1-0.6c-0.2 0-0.7-0.1-0.9 0-0.3 0-0.6-0.1-0.9-0.1h-0.2-0.3c-0.6 0-0.6-0.1-0.6-0.7h0.1 0.4c0.3 0 0.9 0.1 1.2 0h0.7 0.7 0.5 0.3 1.6 0.4 0.5 0.4 1v-0.4h-0.5-0.7-0.4-0.6c-0.2 0-0.4-0.1-0.5 0h-0.7-3.2-0.6c-0.1 0-0.2 0-0.3-0.1-0.1 0-0.2 0-0.3-0.1s-0.1-0.6-0.1-0.8c0.2 0 0.4 0 0.5-0.1 0.3 0 0.8 0.1 1.1 0h0.4 0.3 0.7 0.5 0.5 0.4 3.5v-0.4h-0.6-1.2-0.5c-0.2 0-0.4-0.1-0.5 0h-1.7-0.3-1.6c-0.2 0-0.4-0.1-0.5 0h-0.2c-0.2 0-0.5 0-0.7-0.1-0.1-0.1-0.1-0.6 0-0.7s0.1-0.1 0.2-0.1c0.8 0 1.6 0 2.4 0.1h0.6 2 0.4 0.3 1.4 0.5v-0.4c-0.2 0-0.4-0.1-0.6 0h-2.6c-0.2 0-0.7-0.1-0.8 0h-3.1c-0.2 0-0.5 0-0.8-0.1 0-0.1 0-0.2-0.1-0.3 0-0.2 0-0.4 0.1-0.5 1.1 0 2.2 0.1 3.3 0.1h0.4c0.3 0 0.6 0.1 1 0.1h0.4 0.9c0.2 0 1.5 0 2 0.1v-0.5h-0.3-0.5-0.4-1.2-0.4-1.1-1.6c-0.2 0-0.6-0.1-0.7 0h-0.6c-0.4 0-0.7-0.1-1.1-0.1 0-0.2 0-0.7 0.1-0.7h0.4 0.3 0.4 1 0.8 1 1.8 2v-0.4h-0.2-0.4c-0.1 0-0.3-0.1-0.4 0-0.2 0-0.5-0.1-0.7 0-0.4 0-0.7 0-1-0.1h-0.4-0.5c-0.2 0-0.5-0.1-0.6 0h-0.8-0.4-0.9c-0.1 0-0.3-0.1-0.4 0h-0.9v-0.1c0-0.2 0-0.7 0.2-0.7h1.2 0.6 1.5 0.8 0.3c0.2 0 0.4 0 0.6 0.1h2.4v-0.4h-0.6-2.3c-0.3 0-0.9-0.1-1.1 0-0.1 0-0.3-0.1-0.4 0h-0.2-1c-0.4 0-0.7-0.1-1.1-0.1h-0.3c-0.2 0-0.5 0-0.7-0.1-0.1 0 0-0.1 0-0.1 0.1-0.5 0.1-0.6 0.7-0.6h0.4 0.5c0.3 0 0.7 0 1.1 0.1h0.5c1.5 0 3.1 0 4.6 0.1v-0.4h-0.3-1.2-0.6-0.5c-0.2 0-0.5-0.1-0.7 0-0.4 0-0.9 0-1.3-0.1h-0.4c-0.2 0-0.7-0.1-0.8 0h-1.6v-0.1c0-0.2 0-0.6 0.2-0.6 0.2-0.1 0.5-0.1 0.7-0.1h1 0.3c0.8 0.1 1.6 0.1 2.4 0.1h0.7 1 0.5 0.8v-0.4h-0.3-0.5-1.4c-0.1 0-0.4-0.1-0.5 0h-2.9-1.2c-0.2 0-0.3 0-0.4-0.1 0-0.1 0.1-0.5 0.2-0.6 0.1 0 0.1-0.1 0.2-0.1 0.6 0 1.2 0 1.8 0.1h0.7c0.1 0 0.3-0.1 0.4 0 0.8 0 1.6 0.1 2.4 0.1h0.7 0.9v-0.4h-0.6-0.4-1.5c-0.2 0-0.5-0.1-0.6 0-0.6 0-1.2 0-1.8-0.1-0.2 0-0.6-0.1-0.7 0h-0.2c-0.4 0-0.7-0.1-1.1-0.1 0-0.2 0.1-0.6 0.3-0.7 0.1-0.1 0.2 0 0.2-0.1 0.1 0 0.2 0 0.4 0.1h0.4 0.6 0.7c0.5 0 1 0.1 1.5 0.1h1.8 1.1v-0.4c-0.3 0-0.7 0-0.9 0.1h-0.5-0.5-0.3-0.6-0.3-1.9c-0.2 0-0.6-0.1-0.8 0-0.2 0-0.8 0-0.9-0.1s0.1-0.6 0.1-0.6c0.1-0.1 0.2-0.1 0.3-0.1 0.3 0 0.6 0.1 1 0.1h1 0.3 0.6 0.7 0.9 1.6v-0.4h-0.5c-0.2 0-0.7-0.1-0.9 0-0.1 0-0.3-0.1-0.4 0h-0.3c-0.4 0-0.7-0.1-1.1-0.1h-0.4-0.6-0.3-0.3c-0.3 0-1 0.1-1.2-0.1 0-0.2 0.2-0.6 0.3-0.7 0.5 0 1 0.1 1.5 0.1h1.4c0.1 0 0.3 0 0.4 0.1h0.6 0.4 1.1 0.5v-0.4h-0.3-1.3-1.1c-0.2 0-0.6-0.1-0.8 0-0.1 0-0.2 0-0.3 0.1-0.2 0-0.5-0.1-0.7-0.1h-1.1c0-0.2 0.1-0.3 0.2-0.5 0-0.1 0-0.2 0.1-0.3 0-0.1 0.1-0.1 0.2-0.1h1 0.6c0.5 0 1 0.1 1.4 0.1h0.9c0.5 0 1 0 1.4 0.1v-0.4c-0.2 0.1-1.1 0.1-1.3 0-0.2 0-0.5-0.1-0.6 0h-0.6-0.4-1.6c-0.2 0-0.4-0.1-0.6-0.1 0-0.3 0.2-0.6 0.3-0.8 0.2 0 0.4 0.1 0.6 0h1.5 0.4 1.7c0.3 0 0.5 0.1 0.8 0.1v-0.4h-0.2c-0.2 0-0.5-0.1-0.7 0h-1.2c-0.2 0-0.6-0.1-0.7 0h-0.2c-0.3 0-0.7 0-1-0.1-0.2 0-0.4 0-0.6-0.1v-0.1c0-0.1 0.2-0.5 0.3-0.6 0 0 0.1-0.1 0.2-0.1h1.3 1.7 1.2v-0.4h-0.3-0.5c-0.2 0-0.6-0.1-0.8 0-0.2 0-0.5-0.1-0.7 0-0.3 0-0.7-0.1-0.9 0h-0.4-0.4c0-0.1 0.3-0.7 0.4-0.8 0.2-0.1 0.6 0 0.8 0h1.2 0.7 0.3 0.5 0.1v-0.4h-0.1c-0.2 0-0.4 0-0.5 0.1h-0.4c-0.2 0-0.4-0.1-0.6 0h-0.2-0.2-0.4-0.9c-0.1 0 0-0.2 0-0.2 0.1-0.1 0.3-0.5 0.4-0.6s0.3-0.1 0.4-0.1h0.6 1 0.4 0.4v-0.4h-0.2-0.8-0.3c-0.2 0-0.6-0.1-0.8 0h-0.3c0-0.2 0.1-0.3 0.2-0.4s0.1-0.3 0.3-0.3h0.3 1 0.5 0.3v-0.4c-0.2 0-0.5-0.1-0.7 0h-0.2c-0.2 0-0.5 0-0.6-0.1 0-0.2 0.3-0.3 0.4-0.4s0.2-0.3 0.3-0.4h0.9v-0.3h-0.5v-0.1s0.5-0.6 0.6-0.7c0.2-0.4 1.5-1.4 1.7-1.6 0.2-0.1 0.4-0.3 0.6-0.4 0.3-0.1 0.7 0 1.1 0h1.4 1.3 0.8 2.9 0.3 0.6c0.6 0 1.2-0.1 1.8 0 0.7 0 1.4 0.1 2.1 0.1 0.4 0 0.8-0.1 1.2 0 0.3 0 0.5 0.1 0.8 0.1h2.1 1.4 0.4 0.7 0.4 0.3 0.5c0.2 0 0.4 0.1 0.6 0.1h0.6 2.3 0.8c0.5 0 0.9-0.1 1.4-0.1s0.9 0.1 1.4 0h0.7 0.5 2.1 1.9 0.4c0.5 0 1 0.1 1.6 0 0.2 0 0.4-0.1 0.7-0.1 0.2 0 0.4 0 0.6-0.1h1.3c0.2 0 0.5-0.1 0.7 0 0.1 0 0.2 0.1 0.2 0.2 0.4 0.3 1.3 1.1 2 1.8v0.1h0.1c0.2 0.1 0.5 0.4 0.4 0.5 0 0.1-0.2 0.1-0.3 0.1h-0.3v0.4c0.3 0 0.6 0 0.9 0.1 0.2 0.1 0.6 0.6 0.6 0.8h-0.2c-0.1 0-1 0-1.3-0.1v0.4h1.7 0.3c0.1 0.1 0.2 0.3 0.3 0.4 0 0.1 0.2 0.2 0.1 0.3 0 0.1-0.1 0.1-0.1 0.1h-1.3-0.4-0.6v1.7h1.8c0.3 0 0.7 0 0.9 0.1 0.1 0.1 0.4 0.6 0.5 0.8 0 0-0.1 0-0.1 0.1-0.2 0-0.7-0.1-0.8 0h-0.5c-0.2 0-0.5-0.1-0.7 0h-0.2c-0.3 0-0.6 0-0.9-0.1v0.4c0.8 0 1.8 0.1 2.6 0.1 0.2 0 0.9-0.1 1 0s0.1 0.2 0.2 0.3c0 0.1 0.1 0.1 0.1 0.2s0.1 0.2 0.1 0.3c-0.1 0-0.1 0-0.2 0.1-0.3 0-0.8-0.1-1-0.1h-0.2-0.5-1.3-0.5-0.4v0.4h0.4 0.8 0.5 1.9 0.7c0.2 0.1 0.2 0.3 0.3 0.4s0.1 0.2 0 0.3h-0.3c-0.2 0-0.5-0.1-0.6 0h-0.3c-0.2 0-0.6-0.1-0.7 0h-0.8-0.3-0.7-0.3-0.4v0.4c0.3-0.1 0.7-0.1 0.9-0.1h0.1c0.4 0.1 0.8 0 1.1 0h2.1c0.2 0 0.4-0.1 0.5 0s0.3 0.5 0.3 0.7c0.1 0-0.2 0.1-0.2 0.1h-0.7c-0.2 0-0.5-0.1-0.7 0h-0.9-0.2c-0.2 0-0.8-0.1-0.9 0h-1.4v0.4h0.5 1c0.3 0 0.5 0.1 0.8 0.1h0.7 1.4 0.5 0.4c0.1 0 0.3 0.7 0.3 0.8-0.2 0.1-0.7 0-0.9 0h-0.4-0.2-0.5c-0.2 0-0.6-0.1-0.8-0.1-0.1 0-0.2 0-0.3 0.1h-1-0.4c-0.2 0-0.4-0.1-0.6 0h-0.6v0.3h0.7 0.4 0.5 1.9c0.4 0 1 0.1 1.4 0 0.2 0.1 0.9-0.1 1 0.1 0.1 0.1 0.1 0.3 0.2 0.5s0.1 0.2-0.1 0.3h-1.2c-0.2 0-0.5-0.1-0.6 0h-0.7-0.3-0.5-0.6-0.3c-0.3 0-0.7-0.1-0.9 0h-0.7v0.4c0.3-0.1 1 0 1.2 0h1.2 0.8 0.6 0.5c0.4 0 0.8 0 1.2-0.1h0.3c0.2 0 0.4 0 0.5 0.1s0.3 0.6 0.1 0.7-0.5 0-0.7 0h-1.6-0.6-0.4c-0.2 0-0.8-0.1-1 0h-0.5c-0.2 0-0.4-0.1-0.6 0-0.4 0-0.7-0.1-1.1-0.1v0.4h0.5 0.9 1.7 0.3 0.3 0.9 0.4 0.5 0.6c0.1 0 0.3 0 0.4 0.1 0.2 0.1 0.2 0.5 0.3 0.7h-0.3-0.1-0.3-1.2-0.4-0.3-1.1c-0.2 0-0.4-0.1-0.6 0h-0.7-1-1v0.4h0.2 0.6 1.1 0.8 0.6 0.8 0.8 0.6c0.2 0 0.6 0.1 0.8 0 0.2 0 0.4 0 0.6 0.1 0.1 0.1 0.2 0.5 0.2 0.7 0 0-0.1 0-0.1 0.1h-0.5-0.6-2-0.8c-0.2 0-0.8-0.1-1 0h-1.5-0.5-0.3v0.4h0.4c0.5-0.1 0.9 0 1.4 0h2c0.4 0 0.9 0.1 1.2 0 0.3 0 2.1 0 2.3 0.1 0.1 0.2 0.1 0.5 0.1 0.7 0 0-0.1 0-0.2 0.1h-1.3c-0.1 0-0.3-0.1-0.4 0h-0.5c-0.2 0-0.7-0.1-0.9 0h-0.6-2.2c-0.2 0-0.4-0.1-0.5 0-0.1 0-0.7 0-0.9-0.1v0.4h0.6 0.5 0.6 0.5 1.8 0.4c0.5 0 1 0.1 1.5 0h0.5c0.2 0 1 0 1.1 0.1s0.2 0.5 0.2 0.7h-0.1-0.6c-0.2 0-0.5-0.1-0.7 0h-0.6-0.3c-0.4 0-0.7-0.1-1-0.1h-1.2-0.3-0.4-0.8c-0.1 0-0.3-0.1-0.4 0h-1.2v0.5c-0.8-0.2-0.6-0.2-0.4-0.2 0.3 0 0.5 0.1 0.8 0.1h0.8c0.3 0 0.6 0 0.9-0.1h3.3c0.2 0 1.3 0 1.4 0.1s0 0.2 0 0.3 0.1 0.3 0 0.4c-0.1 0.2-0.8 0-1 0.1h-0.3-0.9c-0.2 0-0.5-0.1-0.6 0-0.2 0-0.8-0.1-0.9 0-0.2 0-0.5-0.1-0.7 0h-1.4-0.4-0.5-0.4-0.4v0.4c0.3-0.1 0.8 0 1.1 0h0.6 1.2 0.7 1.3 2.2c0.3 0 0.5 0 0.8 0.1 0 0.2 0.2 0.6 0 0.7-0.1 0-0.2 0-0.2 0.1-0.2 0-0.4 0-0.6 0.1h-0.9-0.3-0.4c-0.3 0-0.7-0.1-1 0-0.3 0-0.6-0.1-0.9 0h-0.7c-0.2 0-0.6-0.1-0.7 0h-0.7-0.4-1v0.4h0.1c0.5 0 1-0.1 1.6-0.1h1.1c0.2 0 0.3 0.1 0.5 0h0.4 1.8 1.3 0.4c0.1 0 0.6 0 0.7 0.1v0.3c-0.3-0.1-0.3 0-0.4 0.1"/><path class="st2" d="m57.9 23.8v-0.8-0.8-0.4-1.2-1.8c0-0.2 0-0.4-0.1-0.6h-0.4-0.4-0.6c-0.4 0-0.9-0.1-1.3 0h-0.8-0.4-0.4-0.4c-0.2 0-0.3-0.1-0.5-0.1h-0.7-0.5-0.7c-0.3 0-0.7 0-1-0.1h-0.6c-0.2 0-0.3-0.1-0.5-0.1h-1.4-0.3-1.5-0.7-3.3-0.6-1.2-0.6c-0.3 0-0.5 0-0.8-0.1h-0.7-0.8c-0.4 0-0.7 0.1-1.1 0.1h-1.2-1.9-0.6-1.4-0.8c-0.2 0-0.4-0.1-0.7-0.1h-0.8-0.6-1.9-1.5-0.9-1.4c-0.5 0-1 0.1-1.5 0-0.4-0.1-0.9 0-1.3 0h-0.1c-0.1 0.2 0 0.5 0 0.7v0.8 1.2 1 2.8 0.5 0.8 1.1 3.3c0 0.2 0 0.5-0.1 0.7v0.8 0.4 1.9 0.8c0 0.3-0.1 0.6-0.1 0.9v0.7 0.6 1.1 0.5 0.6 0.7 0.9c0 0.4-0.1 0.8-0.1 1.2v0.4 0.8 0.7c0 1.8-0.1 3.5-0.1 5.2v1.2 1.9 0.4c0 0.6-0.1 1.3-0.1 1.9v0.5c0 0.9 0 1.7 0.2 2.5 0.1 0.2 0.1 0.3 0.2 0.5 0.1 0.3 0.2 0.7 0.4 1 0.3 0.4 0.6 0.8 1 1.1 0.1 0 0.1 0.1 0.2 0.1 0.1 0.1 0.2 0.1 0.3 0.2 0.2 0.1 0.3 0.1 0.5 0.2s0.5 0.2 0.7 0.3 0.5 0.1 0.7 0.2c0.4 0.1 0.9 0.3 1.4 0.4s0.9 0.1 1.4 0.2c1.4 0.2 2.8 0.4 4.2 0.5h0.9c0.4 0 0.8 0.1 1.2 0.1l1.2 0.3c0.2 0 0.4 0.1 0.6 0.1s0.4 0.1 0.6 0.1c0.2 0.1 0.4 0.2 0.5 0.2 0.2 0.1 0.3 0.1 0.5 0.2 0.8 0.3 1.5 0.9 2.2 1.5 0.2 0.3 0.4 0.5 0.6 0.8 0.1 0.2 0.2 0.3 0.3 0.5 0 0 0 0.1 0.1 0.1 0.3-0.8 0.7-1.5 1.3-2.1 0.2-0.2 0.5-0.3 0.8-0.5s0.6-0.5 1-0.5c0.2-0.1 0.4-0.1 0.5-0.2 0.2-0.1 0.5-0.2 0.8-0.2 0.1 0 0.2-0.1 0.2-0.1 0.1-0.1 0.3-0.1 0.4-0.1h0.2c0.1 0 0.1-0.1 0.2 0 0.1 0 0.2-0.1 0.3-0.1 0.1-0.1 0.2-0.1 0.3-0.1 0.1-0.1 0.2-0.1 0.3-0.1h0.2c0.1-0.1 0.2-0.1 0.3-0.1h0.2 0.2 0.2 0.2c0.1-0.1 0.4 0 0.5 0h0.2 0.3c0.2-0.1 0.4 0 0.6 0h0.2c0.2-0.1 0.4-0.1 0.6-0.1 0.1 0 0.2-0.1 0.3-0.1s0.2-0.1 0.3-0.1h0.2c0.1-0.1 0.3 0 0.4 0s0.2-0.1 0.3-0.1c0.1-0.1 0.3 0 0.5 0 0.1-0.1 0.5-0.2 0.7-0.2 0.1 0 0.2-0.1 0.3-0.1h0.2c0.2-0.1 0.3-0.1 0.6-0.1 0.1-0.1 0.3-0.1 0.4-0.1 0.1-0.1 0.4-0.2 0.5-0.2s0.2-0.1 0.2-0.1c0.3-0.1 0.6-0.2 0.9-0.3s0.7-0.3 1-0.4c0.2-0.1 0.3-0.1 0.5-0.2 0.3-0.1 0.5-0.3 0.7-0.5 0.1-0.1 0.3-0.2 0.4-0.3 0.2-0.2 0.4-0.3 0.6-0.6s0.4-0.8 0.5-1.1c0-0.2 0.1-0.4 0.1-0.6s0.1-0.4 0.1-0.5v-0.9-1-0.3-0.5-1.7-1.4-0.6-0.3-0.8-1.6-2.2c0-0.2 0-0.4 0.1-0.6v-1.1c0-0.2 0-0.3 0.1-0.5 0-0.3-0.1-0.6-0.1-0.9 0-0.8 0.1-1.5 0.1-2.3 0-0.3-0.1-0.6-0.1-0.8v-0.6-0.3-0.5-0.3-0.8c0-0.5 0-1.1 0.1-1.6v-0.4-0.3-0.6-0.8-0.7-0.3c0-0.5-0.1-1-0.1-1.5v-0.8-0.4c0-0.3 0-0.7-0.1-1v-0.6-0.8-0.7-0.7-0.4c-0.2 0-0.2-0.3-0.2-0.7m-0.7 9.7v0.2 0.4 0.4 2.2 0.3 0.4 0.3 0.3 0.3 0.6c0 0.3 0.1 0.6 0.1 0.9v0.4 0.3 0.4 0.2 0.5c0 1.7 0 3.4-0.1 5.1v1.8 0.5 2.1c0 0.2-0.1 0.4-0.1 0.6s0.1 0.3 0.1 0.5 0 0.3-0.1 0.5v0.2 0.2 0.3 0.7 0.3 0.6c0 0.6 0 1.2-0.1 1.8v0.4c0 0.3-0.2 0.6-0.3 0.9-0.3 0.5-0.9 0.9-1.4 1.2-0.3 0.2-0.5 0.4-0.8 0.5-0.3 0.2-0.7 0.3-1.1 0.4s-0.9 0.3-1.3 0.4c-0.2 0-0.3 0.1-0.5 0.1-0.5 0.1-0.9 0.2-1.4 0.3h-0.3c-0.3 0.1-0.6 0.1-1 0.2-0.4 0-0.7 0.1-1.1 0.1s-0.8 0.1-1.2 0.1h-1c-0.3 0-0.5 0.1-0.8 0.1h-0.5c-0.6 0.1-1.2 0.3-1.9 0.4-0.3 0.1-0.7 0.1-1 0.2-0.2 0.1-0.3 0.1-0.5 0.2-0.1 0-0.3 0.1-0.4 0.1-0.9 0.5-1.7 1.1-2.3 1.9-0.1 0.1-0.1 0.2-0.2 0.3 0 0-0.2 0.1-0.2 0.2h-0.1c-0.1-0.1-0.2-0.2-0.2-0.3-0.3-0.3-0.5-0.6-0.8-0.8-0.2-0.2-0.5-0.3-0.8-0.5-0.1-0.1-0.3-0.2-0.4-0.3-0.2-0.1-0.5-0.2-0.7-0.4-0.3-0.1-0.7-0.2-1-0.4-0.2-0.1-0.4-0.1-0.7-0.2-0.1 0-0.2-0.1-0.3-0.1-0.4-0.1-0.7-0.1-1-0.2-0.1 0-0.2-0.1-0.4-0.1h-0.4c-0.3 0-0.5-0.1-0.8-0.1h-0.8c-0.1 0-0.3-0.1-0.4-0.1h-1c-0.7-0.1-1.4-0.2-2-0.3-0.3 0-0.6 0-1-0.1-0.3 0-0.7-0.1-1-0.2-0.4-0.1-0.8-0.1-1.2-0.2-0.5-0.1-1-0.4-1.5-0.6-0.7-0.3-1.5-0.8-1.9-1.5-0.6-1-0.6-2.4-0.6-3.7 0-0.2-0.1-0.3 0-0.5 0-0.1 0-0.3 0.1-0.4v-0.4-1-0.8-0.3-0.3-0.7c0-0.5 0.1-1 0.1-1.5 0-1.2 0-2.3 0.1-3.4v-0.5-1c0-0.3 0.1-0.6 0.1-0.9v-3.8c0-0.3 0-0.6 0.1-0.9v-0.7-2.1-1c0-0.2 0-0.5 0.1-0.7v-1.4-3.2c0-0.1 0-0.3 0.1-0.4v-0.2-0.7-1.9-1.1c0-0.2 0-0.3 0.1-0.5v-0.5c0-0.2 0.1-0.3 0.1-0.5v-2-0.7-0.5-0.5c0-0.2-0.1-0.9 0.1-1.1 0.1-0.1 0.3 0 0.5 0 0.2-0.1 0.7 0 1 0 0.2-0.1 0.4 0 0.6 0h2c0.1-0.1 0.4 0 0.6 0 0.2-0.1 0.4 0 0.6 0h0.3c0.2-0.1 0.4 0 0.6 0 0.5 0 1 0.1 1.5 0.1 0.2-0.1 0.6 0 0.9 0 0.2-0.1 0.7 0 0.9 0h1.1c0.1-0.1 0.3 0 0.4 0h0.9c0.2-0.1 0.4 0 0.6 0h0.3c0.3 0 0.6 0.1 0.9 0.1 0.1-0.1 0.3 0 0.5 0h0.4 0.5c0.2-0.1 0.8 0 1.1 0h0.6 0.3 0.6 2.3 0.3 0.2c0.3-0.1 0.8 0.1 1.1 0.1h0.2 0.2c0.2-0.1 0.5 0 0.7 0h1.6c0.2 0 0.4 0.1 0.6 0.1h0.3c0.1-0.1 0.3 0 0.4 0h0.8 0.2c0.3-0.1 0.6 0 0.9-0.1 0.4 0 0.7 0.1 1 0.1h0.7 0.2c0.2-0.1 0.6 0 0.8 0h1c0.1-0.1 0.6 0 0.7 0h1.9c0.2 0 0.4 0 0.5 0.1h0.4 0.3 1 1.5s0.3-0.1 0.3 0v1.5 1.5 2.8c-0.1 1.7 0 3.3 0 5v0.7c0 0.3-0.1 0.6 0 0.9v0.4 1.1c-0.4 0-0.4 0.2-0.4 0.5"/><path class="st2" d="m41.5 56.8c-0.1-0.3-0.2-0.5-0.2-0.7 0-0.1 0-0.2-0.1-0.3 0-0.1-0.1-0.1-0.2-0.1-0.1 0.1-0.2 0.1-0.2 0.2 0 0.2 0.1 0.4 0.2 0.6s0.2 0.5 0.3 0.8c0.1 0.2 0.1 0.3 0.2 0.5 0.1 0.1 0.3 0.3 0.5 0.2 0.1 0 0-0.2-0.1-0.3-0.2-0.3-0.3-0.6-0.4-0.9"/><path class="st2" d="m30.7 43.8c0.1-0.2 0.2-0.4 0.3-0.5s0.2-0.2 0.3-0.2c0.1-0.1 0.2-0.2 0.3-0.4 0.1-0.1 0.2-0.1 0.2-0.2 0.1-0.3 0.1-1 0.1-1.3v-0.9-0.6-1.2-0.6c0-0.5 0.1-1.1 0-1.6v-1.5-0.5-0.4-1-0.5-0.8c0-0.2 0.1-0.5 0-0.7-0.2 0.1-1 0.9-1 1.2-0.1 0.2 0 0.6 0 0.9 0 0.4-0.1 0.8-0.1 1.2v0.3 0.6c0 0.3-0.1 0.6-0.1 1v0.6 0.6 0.8c0 0.4-0.1 0.9-0.1 1.3 0 0.3 0 0.6 0.1 0.8 0 0.2-0.1 0.5-0.1 0.7s0.1 0.4 0 0.6c0 0.3-0.1 0.6-0.1 0.9 0.2 0.4 0.2 0.9 0.2 1.4"/><path class="st2" d="m44.8 44.1c0-0.3-0.2-0.5-0.4-0.7-0.1-0.1-0.2-0.3-0.4-0.4-0.3-0.2-0.6-0.4-1-0.4h-0.6c-0.1 0.1-0.3 0-0.4 0.1-0.2 0.1-0.5 0.1-0.7 0.2-0.7 0.2-1.3 0.5-1.9 0.8-0.2 0.1-0.4 0.3-0.6 0.4s-0.3 0.4-0.6 0.5c-0.2 0-0.3-0.2-0.4-0.3-0.1 0-0.1-0.1-0.2-0.1-0.3-0.2-0.5-0.5-0.8-0.6-0.5-0.3-0.9-0.3-1.5-0.4-0.2 0-0.3-0.1-0.5-0.1-0.8-0.2-1.9-0.2-2.6 0.3-0.2 0.1-0.3 0.2-0.4 0.4-0.3 0.2-0.4 0.3-0.5 0.6 0 0.1-0.1 0.2-0.1 0.3 0.1 0.1 0.3 0.1 0.4 0.1 0.1-0.1 0.4 0 0.5 0h1.4c0.1-0.1 0.3-0.1 0.5-0.1h1 0.4c0.4 0 0.8 0.1 1.3 0.1h0.1 0.6c0.1 0 0.1 0 0.2 0.1s0 0.3 0.1 0.4c0.1 0.4 0.4 0.6 0.8 0.6 0.5 0 0.8-0.4 0.8-0.9v-0.2c0.1-0.1 0.2-0.1 0.4-0.1h0.2 0.2c0.1-0.1 0.5 0 0.7 0 0.1 0 0.2-0.1 0.3-0.1 0.2-0.1 0.4-0.1 0.6-0.1h0.2c0.2-0.1 0.4 0 0.6 0 0.2-0.1 0.4-0.1 0.6-0.1h1.7c-0.2-0.3 0-0.2 0-0.3"/><path class="st2" d="m32.3 41.6v0.7h0.3c0.1 0 0.2-0.1 0.3-0.1s0.2-0.1 0.3 0h0.2c0.3-0.1 0.9 0 1.2 0.1s0.6 0 0.9 0.1c0.4 0.1 0.9 0.3 1.3 0.5 0.1 0.1 0.8 0.6 0.8 0.6 0.2-0.3 0.2-0.6 0.2-0.9 0.1-0.4 0.1-0.8 0.1-1.2 0-0.6 0.1-1.2 0.1-1.9v-0.8-2.3c0-1.2 0.1-2.4 0-3.6 0-0.4 0-0.8-0.2-1.1-0.4-0.6-1-0.8-1.6-1-0.2-0.1-0.3-0.1-0.5-0.2-0.2 0-0.4-0.1-0.6-0.1-0.3-0.1-0.6-0.1-0.9-0.1h-1.3c-0.1 0.1-0.3 0-0.4 0.2s0 0.6 0 0.8v2.2 1.3c0 0.4-0.1 0.7-0.1 1.1 0 0.3 0.1 0.5 0.1 0.8v1.7c0 0.2 0 0.5-0.1 0.7v1.4c0 0.2 0 0.5-0.1 0.7-0.1 0 0 0.2 0 0.4m4.6-0.7c-0.4-0.2-0.9-0.4-1.4-0.5-0.2-0.1-0.3-0.1-0.5-0.1-0.3-0.1-0.5-0.1-0.8-0.2-0.3 0-0.6-0.1-0.9-0.1h-0.1c-0.2-0.1-0.2-0.6 0.1-0.6 0.2 0 0.4 0.1 0.6 0.1s0.4 0.1 0.6 0.1c0.2 0.1 0.3 0.1 0.5 0.2 0.5 0.2 0.9 0.3 1.3 0.5 0.1 0 0.2 0.1 0.3 0.1 0.3 0.1 0.6 0.4 0.8 0.6 0.1 0.1 0.2 0.1 0.2 0.2-0.3 0-0.5-0.2-0.7-0.3m0.6-2.9c-0.1 0-0.1 0 0 0-0.3 0.1-1-0.6-1.2-0.7-0.3-0.1-0.5-0.2-0.8-0.3-0.4-0.1-0.7-0.3-1.1-0.4-0.2 0-0.3 0-0.5-0.1-0.2 0-0.6 0-0.7-0.1-0.2-0.2-0.1-0.6 0.2-0.6 1.2 0.1 2.2 0.6 3.1 1.2 0.3 0.1 0.9 0.5 1.1 0.8-0.1 0.1 0 0.2-0.1 0.2m-4.4-5.4c0.4 0 0.7 0.1 1 0.2 0.1 0 0.2 0 0.3 0.1 0.2 0.1 0.4 0.2 0.6 0.2 0.2 0.1 0.4 0.1 0.6 0.2 0.1 0 0.2 0.1 0.3 0.1 0.3 0.1 0.5 0.2 0.8 0.4 0.2 0.1 1.1 0.6 0.9 0.8 0 0.1-0.1 0.1-0.2 0-0.2 0-0.3-0.2-0.4-0.2-0.2-0.1-0.3-0.2-0.5-0.3-0.8-0.4-1.8-0.7-2.7-0.9-0.3-0.1-0.6-0.1-0.8-0.2-0.1 0-0.1-0.3 0.1-0.4"/><path class="st2" d="m39.3 26c0.1 0 0.2-0.1 0.3-0.1 0.1-0.1 0.3-0.2 0.3-0.3 0.1-0.2-0.1-0.6-0.3-0.7h-0.2c0 0.2 0.1 0.2 0.1 0.4 0 0.1-0.1 0.2-0.2 0.3s-0.1 0.4 0 0.4"/><path class="st2" d="m39.9 23.4c-0.2-0.1-0.4-0.1-0.6-0.2s-0.3-0.2-0.5-0.2c-0.1 0-0.2 0.1-0.2 0.2 0 0.2 0.2 0.3 0.3 0.4s0.2 0.3 0.3 0.3 0.2-0.1 0.3-0.2 0.2-0.1 0.3-0.2c0.2 0 0.2-0.1 0.1-0.1"/><path class="st2" d="m38.7 27.2c0.2 0.1 0.6 0 0.6-0.2s-0.2-0.3-0.3-0.3c-0.1 0.1-0.5 0.4-0.3 0.5"/><path class="st2" d="m43.8 30.6c-0.1-0.1-0.3 0-0.4 0h-0.5c-0.2 0.1-0.4 0-0.7 0.1-1 0.2-1.9 0.3-2.7 0.8-0.2 0.1-0.4 0.2-0.6 0.4-0.1 0.1-0.1 0.3-0.1 0.5-0.1 0.5-0.1 0.9-0.1 1.4 0 0.2 0 0.5-0.1 0.7v1.1c0 0.1 0 0.3-0.1 0.4v1 1.5 1.5 0.4 0.2 0.7c0 0.7 0 1.5 0.2 2l0.1 0.1c0.3-0.1 0.6-0.3 0.8-0.5 0.2-0.1 0.5-0.2 0.8-0.3 0.3-0.2 0.4-0.3 0.8-0.3 0.1-0.1 0.4-0.1 0.6-0.1h0.2 0.2c0.3-0.1 0.9 0 1.2 0.1 0.1 0 0.3 0.1 0.4 0.1 0.1-0.4 0-0.9 0-1.3v-0.7-0.8-0.4-1-0.6-1.1-0.5-2-0.6-1.5c0-0.2-0.1-0.3-0.1-0.5v-0.6c0.1-0.1 0.1-0.2 0.1-0.2m-4.8 6.8c0.6-0.6 1.5-0.9 2.2-1.2 0.2-0.1 0.5-0.3 0.8-0.3 0.1-0.1 0.3-0.2 0.4-0.2 0.2 0 0.3 0.1 0.3 0.3s-0.1 0.3-0.2 0.4c-0.2 0.2-0.5 0.2-0.8 0.3s-0.6 0.2-0.9 0.3c-0.2 0.1-0.4 0.1-0.6 0.2-0.4 0.1-0.7 0.3-1 0.5-0.1 0.1-0.2 0.2-0.4 0.2h-0.1c0-0.3 0.2-0.5 0.3-0.5m3.7 2.1c-0.2 0.1-0.5 0.1-0.8 0.2-0.2 0-0.5 0.1-0.7 0.2-0.8 0.2-1.4 0.5-2.1 0.9-0.1 0-0.3 0.3-0.4 0.1-0.1-0.1 0.1-0.2 0.2-0.3 0.3-0.2 0.5-0.4 0.8-0.6s0.6-0.4 1-0.5c0.1-0.1 0.2-0.1 0.3-0.2 0.4-0.2 0.9-0.3 1.3-0.4 0.1 0 0.3 0 0.4 0.1 0.3 0.1 0.2 0.4 0 0.5m0.1-6.5c-0.1 0.1-0.3 0.1-0.4 0.1-0.3 0.1-0.6 0.2-0.9 0.3-0.4 0.1-0.8 0.3-1.2 0.5-0.3 0.2-0.5 0.3-0.8 0.5 0 0-0.4 0.2-0.4 0.1 0-0.3 0.4-0.5 0.6-0.6 0.1-0.1 0.2-0.1 0.3-0.2 0.3-0.2 0.6-0.3 0.8-0.5 0.3-0.1 0.6-0.2 0.9-0.3 0.1-0.1 0.2-0.1 0.3-0.1 0.1-0.1 0.3-0.1 0.4-0.1h0.3c0.3 0 0.2 0.2 0.1 0.3"/><path class="st2" d="m38.2 25.7c-0.1 0-0.1 0-0.2-0.1-0.1 0-0.2 0.1-0.2 0.2v0.3c0 0.2 0 0.4 0.1 0.5s0.1 0.1 0.2 0.1 0.1 0.1 0.2 0.1c0.2 0 0.6-0.3 0.6-0.5-0.1 0-0.6-0.5-0.7-0.6"/><path class="st2" d="m45.6 33.5c0-0.2-0.1-0.5-0.1-0.7v-0.4-0.3h-0.1c-0.1 0.5 0 1.1 0 1.6 0 0.2-0.1 0.4-0.1 0.6v0.3 0.3c-0.1 0-0.2 0-0.2-0.1v-0.5-0.3c0-0.6 0.1-1.3 0.1-1.9v-0.3-0.2h-0.1c0 0.5-0.1 0.9-0.1 1.3 0 0.1 0 0.2-0.1 0.2h-0.1c-0.1-0.4-0.1-0.8-0.1-1.2 0-0.2 0-0.4-0.1-0.6-0.1 0.1-0.1 0.3-0.1 0.5v0.7c0 0.2 0.1 0.5 0 0.7-0.1 1.5-0.1 3-0.1 4.6v0.9c0 0.3-0.1 0.5-0.1 0.8v1.2c0 0.4-0.1 0.8 0 1.2 0 0.1 0 0.2 0.1 0.2 0.1-0.2 0.1-0.5 0.1-0.7 0-0.4 0.1-0.8 0.1-1.3 0-0.3-0.1-0.6 0-0.9 0 0 0-0.1 0.1 0 0.1 0 0.1 0.2 0.1 0.3 0.1 0.3 0 0.6 0 1v0.8 0.9 0.4c0 0.1 0 0.3 0.2 0.3v-1.4-0.6c0-0.2 0-0.4 0.1-0.6 0-0.1 0-0.3 0.1-0.4 0-0.2-0.1-0.4-0.1-0.6v-0.9-0.5c0-0.1 0.1-0.1 0.1-0.1 0.1 0.1 0.2 0.2 0.2 0.3v1.1 0.3c0 0.3 0.1 0.6 0.1 0.9v0.4 1.6c0 0.4 0 0.8 0.1 1.2v0.2h0.1c0.1-0.2 0.1-0.5 0.1-0.8s0.1-0.6 0-1c0-0.2-0.1-0.4-0.1-0.6s0.1-0.4 0.1-0.6c0-0.3-0.1-0.6-0.1-1 0-0.3 0-0.7 0.1-1v-0.8-0.3c0-0.2 0-0.3 0.1-0.5v-0.8-1.3c-0.3-0.7-0.3-1.1-0.3-1.6m-0.9 4.1s-0.2 0.2-0.2 0.1v-0.3-0.8-1c0-0.3 0-0.6 0.1-0.8 0.1 0 0.1 0.1 0.2 0.2 0.1 0.3 0 0.6 0 0.9-0.1 0.6 0 1.3-0.1 1.7m0-3.8c-0.2 0-0.2-0.2-0.1-0.3 0.1 0 0.2 0.3 0.1 0.3m0.4 3.2c-0.1-0.2-0.1-0.4-0.1-0.7s-0.1-0.6 0.1-0.9c0.1 0 0.1 0 0.2 0.1 0.1 0.2 0.1 1.5-0.2 1.5"/><path class="st2" d="m41.7 51.2h0.3 0.7 0.2c-0.2-0.3-0.6-0.6-0.9-0.9l-2.1-2.1c-0.1-0.1-0.3-0.3-0.5-0.4l-0.7-0.7c-0.1-0.1-0.3-0.3-0.5-0.4v0.1c-0.1 0-0.2 0.1-0.3 0.2-0.3 0.3-0.5 0.6-0.8 0.8l-2.4 2.4c-0.1 0.1-1 1-1 1.1 0.6 0.1 1.3 0 1.9 0h0.7c0.1 0 0.3 0 0.4 0.1v0.1c-0.1 0.1-1.2 1.4-1.2 1.4v0.1h2.2 0.1c-0.1-0.2-0.2-0.3-0.3-0.5-0.2-0.2-0.4-0.5-0.5-0.8 0-0.1-0.1-0.2 0-0.2 0.1-0.3 1.4-0.1 1.7-0.1 0.2-0.1 0.6 0 0.8 0 0.3 0 0.7-0.1 1.1 0 0.1 0 0.1 0.1 0.1 0.2 0 0.2-0.5 0.9-0.6 1.2 0 0.1-0.1 0.1-0.1 0.2h1.2 0.7 0.1c0-0.2-0.7-1-0.8-1.2-0.1-0.1-0.2-0.2-0.2-0.3 0-0.4 0.4-0.3 0.7-0.3"/><path class="st2" d="m39.1 52.8c0.2-0.1 0.8-1 0.8-1.2h-0.4c-0.1 0-0.1 0.1-0.2 0.1-0.1 0.1-0.7 0.9-0.7 1 0.2 0.1 0.4 0.1 0.5 0.1"/><path class="st2" d="m35.3 51.6c-0.2 0.2-1.2 0.9-1.2 1.1h0.5c0.2-0.1 1-0.9 1-1.1h-0.3"/><path class="st2" d="m43.7 52.7c0-0.5 0-1-0.4-1.2-0.1 0.3-0.1 0.7-0.1 1.1v1.6 0.3h-2.5-1.1c-0.7 0-1.4-0.1-2.1-0.1-0.5 0-1 0.1-1.5 0.1-0.3 0-2.4-0.2-2.5 0v0.1c0.2 0.3 0.5 0.2 0.9 0.2h0.2 0.2 0.6 1 0.3c0.1-0.1 0.6 0 0.8 0h0.2 1.1c0.2-0.1 0.5 0 0.7 0h1.4c0.1-0.1 0.3 0 0.5 0 0.2-0.1 0.4 0 0.6 0h1.2 0.2v-0.1c0.1-0.2 0-0.5 0-0.8 0-0.2 0-0.3 0.1-0.5 0.3-0.1 0.3-0.4 0.2-0.7"/><path class="st2" d="m43.7 59.4v-0.4-0.3c-0.1-0.1-0.2-0.1-0.4-0.1l-0.1 0.1v0.6 2c0.1 0 0.4 0 0.4-0.2 0.1-0.2 0.1-0.8 0-1.1 0-0.1 0-0.3 0.1-0.6"/><path class="st2" d="m51.4 59.8c-0.5-0.5-1-1-1.5-1.4-0.6-0.6-1.2-1.3-1.9-1.9-0.2-0.2-0.5-0.4-0.7-0.7l-0.3-0.3c-0.9-1-2-1.9-2.9-2.8-0.1 0.4 0 0.8 0 1.2v0.8 0.7c-0.1 0.2-1.5 0.2-1.8 0.2-0.1 0-0.5 0-0.6 0.1v0.1c0.1 0.4 0.3 0.8 0.4 1.1 0.1 0.2 0.2 0.9 0.4 1.1 0.1 0.1 0.6 0.1 0.7 0.1 0.1-0.1 0.5 0 0.6 0 0.3-0.1 0.2 0.5 0.2 0.6v0.5c0 0.3-0.1 2 0.1 2.1 0.1 0.1 0.5 0 0.7 0 0.1 0 0.2-0.1 0.3-0.1 0.1-0.1 0.4 0 0.5 0h0.2c0.1-0.1 0.4 0 0.6 0 0.1 0 0.4-0.1 0.4-0.1 0.1 0 0.2 0.1 0.3 0.1h0.3c0.2-0.1 0.5-0.1 0.8-0.1h0.2c0.1-0.1 0.3 0 0.5 0h0.2 0.2c0.1-0.1 0.2 0 0.3-0.1 0.1 0 0.3-0.1 0.4-0.1 0.2 0 0.4-0.1 0.7-0.1 0.1-0.1 0.4-0.1 0.5-0.1s0.2-0.1 0.3-0.1c0 0 0.2-0.1 0.2-0.2 0-0.4-0.2-0.5-0.3-0.6"/><path class="st2" d="m56.8 33.9v-0.3-0.3-0.6-1-0.9-1.8c0-0.2 0.1-0.7-0.1-0.9-0.1 0.2-0.4 0.4-0.6 0.6-0.7 0.8-1.5 1.5-2.3 2.3-0.5 0.5-1 1.1-1.5 1.6-0.3 0.2-0.5 0.5-0.8 0.8l-0.7 0.7c-0.2 0.2-0.4 0.3-0.5 0.5s-0.3 0.3-0.4 0.5l-1.8 1.8c-0.2 0.2-0.4 0.5-0.6 0.7s-0.6 0.5-0.7 0.7v0.1c0 0.1 1.3 1.4 1.5 1.6 1 1 2.1 2 3.1 3 0.1 0.1 0.2 0.2 0.2 0.3 0.2 0.1 0.3 0.3 0.4 0.4 0.2 0.2 0.3 0.4 0.5 0.5 1 1.1 2.1 2.1 3.2 3.2 0.1 0.1 1 1.1 1.1 1.1 0.2 0 0.1-0.9 0.1-1.1v-0.5-0.4c0-0.1 0-0.2 0.1-0.4 0-0.2-0.1-0.4 0-0.6v-0.3-1.2-0.7-0.4-0.5-0.7-0.2c0-0.2 0-0.4 0.1-0.7 0-0.4 0-0.7-0.1-1.1 0-0.3 0.1-0.6 0.1-0.9 0-0.2 0-0.4-0.1-0.6v-0.3-1-0.4c0-0.3 0-0.5-0.1-0.8v-1.5c-0.1-0.1-0.1-0.2-0.1-0.3"/><path class="st2" d="m43.2 20.8c-0.1 0.1-0.1 0.2-0.2 0.3s-0.1 0.2-0.2 0.3c-0.1 0.2-0.3 0.2-0.4 0.4-0.1 0.1-0.1 0.3-0.3 0.4-0.3 0.2-0.5 0.5-0.6 0.8 0 0.1-0.1 0.1-0.1 0.2 0 0-0.1 0.1 0 0.1 0 0.1 0.1 0.2 0.2 0.3 0.2 0.2 0.3 0.4 0.3 0.7 0 0.2 0.1 0.4 0.1 0.6s-0.1 0.4-0.2 0.6c0 0.1 0 0.3-0.1 0.4s-0.1 0.2-0.2 0.3-0.1 0.2-0.2 0.3c-0.2 0.3-0.5 0.4-0.8 0.6-0.1 0.1-0.2 0.2-0.4 0.3s-0.4 0.1-0.6 0.3c-0.2 0.1-0.3 0.3-0.4 0.5-0.1 0.1-0.2 0.1-0.3 0.2-0.1 0.2 0 0.3 0 0.5 0 0.1 0 0.2-0.1 0.3v0.6 0.2c0.2-0.1 0.4-0.4 0.6-0.6l2.8-2.8c0.2-0.2 0.3-0.4 0.5-0.6 0.3-0.3 0.7-0.6 1-1 0.1-0.1 0.2-0.3 0.3-0.4l0.3-0.3c0.2-0.2 0.4-0.4 0.6-0.5 0.5-0.5 1-1.1 1.5-1.6 0.1-0.1 0.3-0.2 0.4-0.4l1.7-1.7c0.3-0.3 0.7-0.6 0.9-0.9-0.2 0.1-0.5 0.1-0.8 0h-0.2c-0.2 0-0.4 0.1-0.6 0.1s-0.5-0.1-0.7-0.1h-0.6c-0.1 0.1-0.2 0-0.4 0.1h-0.9-0.5l-0.2 0.2c-0.2 0.2-0.3 0.4-0.5 0.6-0.1 0.1-0.1 0.2-0.2 0.2-0.1 0.1-0.2 0.1-0.3 0.2l-0.2 0.2c0.2 0 0.1 0 0 0.1"/><path class="st2" d="m41.4 21.4c-0.1 0.2-0.4 0.3-0.4 0.6v0.3h0.1c0.2-0.3 0.6-0.7 0.3-0.9"/><path class="st2" d="m40.9 25.6s0.1 0.1 0.1 0c0.2-0.1 0.3-0.3 0.3-0.5-0.1 0.2-0.4 0.3-0.4 0.5"/><path class="st2" d="m40.7 23.6-0.2 0.2v1c0 0.1 0.1 0.1 0.2 0.1s0.1-0.1 0.2-0.1c0.3-0.3 0.2-0.6 0.1-0.9-0.1-0.2-0.1-0.3-0.3-0.3"/><path class="st2" d="m40 26.6c0.1 0.1 0.5-0.1 0.5-0.2-0.1-0.1-0.2-0.1-0.3-0.1s-0.3 0.2-0.2 0.3"/><path class="st2" d="m41.9 20.6c-0.1 0.1-0.2 0.3 0 0.4 0.1 0 0.2 0.1 0.2 0 0.1-0.1 0.2-0.3 0.3-0.4 0.2-0.2 0.9-1.2 1.2-1.2v-0.1c-0.2 0-0.4 0-0.6-0.1l-0.2 0.2c-0.1 0.1-0.2 0.3-0.3 0.4s-0.2 0.2-0.3 0.2-0.1 0.1-0.2 0.1c-0.1 0.3-0.1 0.4-0.1 0.5"/><path class="st2" d="m40.2 21.3c-0.1 0.1-0.4 0.6-0.4 0.7h0.1c0.2 0.1 0.4 0 0.5-0.1s0.1-0.3 0.3-0.4l0.6-0.6c0.1-0.1 0.1-0.2 0.2-0.3s0.2-0.3 0.3-0.4 0.2-0.3 0.3-0.4 0.2-0.2 0.2-0.4h-0.3c-0.1 0.1-0.3 0.1-0.3 0.2-0.1 0.1-0.1 0.3-0.2 0.4s-0.3 0.2-0.4 0.3-0.1 0.3-0.1 0.4-0.1 0.1-0.2 0.2c0 0.1 0 0.2-0.1 0.2-0.3 0.1-0.4 0.1-0.5 0.2"/><path class="st2" d="m38.7 21.6v0.3c0.3-0.1 0.6-0.5 0.8-0.8 0.1-0.1 0.1-0.3 0.2-0.4s0.1-0.2 0.2-0.3c0.1-0.3 0.3-0.7 0.5-1h0.1v-0.1h-0.4c-0.2 0.1-0.9 0-1 0.1s-0.1 0.3-0.1 0.4-0.2 0.2-0.2 0.3c-0.1 0.2 0.1 0.4 0.1 0.6s-0.1 0.3-0.1 0.4c-0.1 0.3-0.1 0.4-0.1 0.5"/><path class="st2" d="m38.1 23.6c-0.1 0-0.4 0.4-0.4 0.4 0 0.2 0.2 1 0.4 1s0.4-0.2 0.5-0.3 0.3-0.2 0.4-0.4-0.5-0.6-0.6-0.7h-0.3"/><path class="st2" d="m37.7 25.4c0.1-0.3-0.6-0.8-0.8-0.9-0.2 0.2-0.1 0.2-0.2 0.4 0 0.1-0.1 0.2-0.1 0.2-0.1 0.2 0.1 0.6 0.2 0.7s0.1 0.1 0.2 0.1 0.3-0.2 0.4-0.3c0.2 0 0.3-0.1 0.3-0.2"/><path class="st2" d="m37.3 26.8c-0.1-0.1-0.1-0.2-0.2-0.3 0 0-0.1 0-0.2-0.1-0.3 0.5 0.1 0.6 0.5 0.7h0.1c0-0.1-0.1-0.2-0.2-0.3"/><path class="st2" d="m36 24.6c0.1 0 0.2-0.1 0.3-0.2 0.3-0.4 0.1-0.7-0.3-1-0.1 0-0.3 0.3-0.3 0.3 0 0.1 0.1 0.2 0.1 0.3 0 0.3-0.1 0.7 0.2 0.6"/><path class="st2" d="m36.9 23.7c0.2 0 0.9-0.5 0.8-0.7-0.1-0.1-0.2-0.1-0.3-0.1-0.3 0.1-0.5 0.2-0.8 0.2h-0.2v0.1c0.1 0.2 0.2 0.5 0.5 0.5"/><path class="st2" d="m36.2 26.6c0.1 0 0.5-0.3 0.5-0.4s-0.5-0.6-0.6-0.7h-0.2c-0.1 0.3 0 0.7 0.1 1 0.1 0.1 0.1 0.2 0.2 0.1"/><path class="st2" d="m37.1 21c0.1 0.2 0.5 1.3 0.9 1.3v-0.8c0-0.4 0.1-0.8 0.1-1.2 0-0.1 0-0.2 0.1-0.3 0-0.1 0-0.2-0.1-0.3v-0.3c-0.2 0-0.6 0-0.8-0.1-0.2 0-0.5 0-0.6 0.1-0.3 0.3 0.1 1 0.2 1.3 0 0.1 0.1 0.1 0.2 0.3"/><path class="st2" d="m36.5 22.2h0.3c0.1 0 0.1-0.2 0.1-0.3s0-0.3-0.1-0.4-0.1-0.2-0.2-0.4-0.2-0.4-0.3-0.7-0.3-0.9-0.6-1.1c-0.1-0.1-0.3 0-0.5 0-0.1 0.1-0.6 0.1-0.6 0.2-0.1 0.2 1.8 2.6 1.9 2.7"/><path class="st2" d="m33.1 19.6c0.1 0.2 0.3 0.3 0.5 0.5 0.1 0.2 0.2 0.4 0.3 0.5s0.3 0.1 0.4 0.3c0.2 0.2 0.4 0.5 0.5 0.8l0.3 0.3c0.2 0.2 0.3 0.4 0.5 0.5 0.1 0.1 0.3 0.1 0.4 0.1 0 0 0-0.1 0.1-0.1-0.1-0.2-0.3-0.4-0.4-0.6-0.1-0.1-0.2-0.1-0.3-0.2 0-0.1-0.1-0.1-0.1-0.2-0.1-0.1-0.2-0.3-0.3-0.4l-0.4-0.4c-0.1-0.1-0.1-0.3-0.2-0.4-0.2-0.2-0.3-0.5-0.6-0.7-0.1-0.1-0.3-0.2-0.5-0.2 0 0-0.2 0-0.2 0.2"/><path class="st2" d="m28.1 20.2 2.2 2.2c0.9 0.8 1.7 1.7 2.6 2.5 0.1 0.1 0.2 0.2 0.3 0.4l0.8 0.8c0.5 0.5 1 0.9 1.5 1.4 0.2 0.3 0.5 0.5 0.7 0.8 0.3 0.3 0.7 0.6 1 0.9 0.2 0.2 0.6 0.7 0.8 0.7 0-0.2-0.1-0.6-0.1-0.8v-0.3c0-0.1 0-0.2-0.1-0.3l-0.3-0.3c-0.1-0.1-0.2-0.3-0.3-0.4-0.2-0.2-0.4-0.2-0.6-0.3-0.1-0.1-0.3-0.2-0.4-0.3-0.1 0-0.2-0.1-0.3-0.1-0.1-0.1-0.1-0.2-0.2-0.3s-0.2-0.1-0.3-0.2-0.1-0.3-0.2-0.5c-0.1-0.1-0.1-0.3-0.2-0.4 0-0.1-0.1-0.3-0.1-0.4 0-0.2 0-0.4 0.1-0.6 0-0.1 0-0.2 0.1-0.4 0.1-0.3 0.2-0.5 0.5-0.8 0.1-0.1 0.2-0.2 0.3-0.2-0.1-0.2-0.2-0.3-0.4-0.5-0.1-0.1-0.2-0.1-0.2-0.2-0.1-0.1-0.2-0.3-0.4-0.5s-0.5-0.4-0.7-0.7l-1.4-1.4c-0.2-0.2-0.4-0.4-0.6-0.5s-0.4 0.1-0.6 0.1c-0.1 0-0.2 0-0.3-0.1h-0.7-0.5-0.6c-0.2 0.1-0.6 0-0.8 0h-1.1c-0.3 0.1 0.3 0.4 0.5 0.7"/><path class="st2" d="m35.2 24.6c0 0.2-0.1 0.7 0.2 0.6 0.4-0.1 0-0.5-0.2-0.6"/><path class="st2" d="m25 43.2c0.3-0.3 0.5-0.6 0.8-0.8 0.4-0.4 0.8-0.8 1.3-1.2l0.9-0.9c0.1-0.1 0.2-0.3 0.3-0.4 0.4-0.3 0.9-0.8 1.2-1.2 0-0.1 0.1-0.1 0.1-0.2 0.1-0.3-1.9-2.2-2.2-2.5-0.5-0.5-1-1-1.5-1.6-0.5-0.5-1.1-1-1.6-1.5-0.1-0.1-0.2-0.2-0.2-0.3-0.2-0.2-0.5-0.4-0.7-0.6-0.1-0.1-0.2-0.2-0.3-0.4-0.3-0.4-0.7-0.7-1-1l-0.5-0.5c-0.5-0.4-0.9-0.9-1.4-1.3-0.2-0.2-0.4-0.5-0.7-0.6v1 0.3 0.6 0.5 0.4 2 0.5c0 0.3 0 0.6-0.1 1v2 0.9 1.2 0.6 0.4 1.5 0.5 0.9 0.6 1.4 0.5 1.4 1.7 0.6s0.1 0.2 0.1 0.1c0.1-0.2 0.4-0.4 0.6-0.6 0.6-0.5 1.1-1.1 1.7-1.6 0.4-0.4 0.7-0.8 1.1-1.1 0.7-0.6 1.4-1.3 2.1-1.9-0.1-0.3 0-0.4 0-0.4"/><path class="st2" d="m34.7 57.4c0.1-0.4 0.3-0.8 0.5-1.2 0.1-0.2 0.2-0.5 0.2-0.8h-1.2c-0.2 0-0.7 0-0.9-0.1-0.1-0.1-0.1-0.2-0.2-0.3-0.1-0.2-0.2-0.3-0.3-0.5s0-0.4 0-0.7v-1c0-0.2 0.1-0.8 0-1-0.2 0.2-0.3 0.4-0.5 0.5l-1.8 1.8c-0.4 0.4-0.9 0.9-1.3 1.4-0.7 0.7-1.5 1.4-2.2 2.1-0.1 0.1-0.2 0.3-0.3 0.4l-0.4 0.4c-0.3 0.3-0.6 0.5-0.9 0.8l-0.6 0.6c-0.2 0.2-0.5 0.4-0.6 0.6v0.1c0.2 0.1 0.5 0.1 0.8 0.1 0.3 0.1 0.6 0.1 1 0.2h0.4c0.1 0 0.2 0 0.3 0.1 0.2 0 0.4 0.1 0.7 0.1s0.5 0 0.8 0.1c0.6 0.1 1.2 0.2 1.8 0.2h0.4c0.3 0 0.6 0.1 0.8 0.1 0.1 0 0.3 0 0.4 0.1h0.6c0.2 0 0.4 0.1 0.6 0.1 0.1 0 0.1-0.1 0.1-0.2 0.1-0.3 0-0.8 0-1.1v-2.1c0-0.1 0-0.1 0.1-0.2s0.9 0 1.1 0h0.2c0.1 0 0.2 0 0.3-0.1 0-0.1 0-0.3 0.1-0.5"/><path class="st2" d="m37.2 62.7h0.3v-1.2c0-0.4 0-1 0.2-1.3 0.2-0.4 0.3-0.7 0.8-0.7 0.1 0 0.1 0 0.1-0.1 0-0.3-0.5-0.4-0.7-0.4-0.1 0-0.2 0.1-0.4 0.1-0.8 0.4-0.7 1.6-0.7 2.4 0 0.1 0 0.5-0.1 0.6-0.2 0.2-2 0.1-2.4 0.1 0.2 0.1 0.4 0.1 0.6 0.2s0.5 0.3 0.8 0.3h1 0.5"/><path class="st2" d="m39.1 62.3c0-0.1-0.1-0.2-0.1-0.3v-1.4-0.6c0-0.1-0.1-0.1-0.1-0.1-0.2 0.1-0.3 0.1-0.5 0.2-0.1 0.1-0.2 0.4-0.2 0.5s-0.1 0.3-0.1 0.5v0.8 0.4 0.4 0.4 0.2h-0.9c-0.1 0-0.2 0-0.3 0.1h-0.1c0.2 0.1 0.5 0.3 0.7 0.4 0.2 0.2 0.3 0.4 0.5 0.5 0.1-0.3 0.4-0.5 0.6-0.7l0.3-0.3c0.2-0.2 0.4-0.3 0.5-0.5-0.2-0.2-0.2-0.4-0.3-0.5"/><path class="st2" d="m39.6 62c0 0.2 0.1 0.4 0.2 0.5 0.2-0.1 0.5-0.2 0.7-0.3 0.1 0 0.2-0.1 0.3-0.1v-0.1h-0.9-0.3"/><path class="st2" d="m1.3 32.7c-0.6-0.2-0.7-0.6-0.5-1.3l0.2-0.9 4.3 1c0.7 0.2 0.8 0.4 0.7 0.8h0.2l0.4-2h-0.2c-0.1 0.5-0.3 0.6-1 0.4l-4.3-1 0.2-0.9c0.2-0.9 0.6-1 1.1-1v-0.1l-1.3-0.3v0.2c0.1 0.2 0.1 0.4 0 0.9l-0.7 2.9c-0.1 0.2-0.1 0.4-0.2 0.5s-0.1 0.2-0.2 0.3v0.2l1.3 0.3"/><path class="st2" d="m3.7 24.2 3.2 1.6c0.7 0.3 0.7 0.6 0.5 1l0.2 0.1 0.9-1.9-0.2-0.1c-0.2 0.4-0.5 0.5-1.1 0.2l-1.5-0.7 1.4-2.8 1.5 0.7c0.7 0.3 0.7 0.6 0.5 1l0.2 0.1 0.9-1.8-0.2-0.2c-0.2 0.4-0.5 0.5-1.1 0.2l-3.2-1.6c-0.6-0.3-0.8-0.5-0.5-1h-0.2l-0.9 1.8 0.2 0.1c0.2-0.4 0.5-0.5 1.1-0.2l1.5 0.7-1.4 2.8-1.5-0.6c-0.7-0.3-0.7-0.6-0.5-1l-0.2-0.1-0.9 1.9 0.2 0.1c0.2-0.5 0.5-0.6 1.1-0.3"/><path class="st2" d="m13.7 15.2-0.1 0.1c0.4 0.7 0.3 0.9-0.3 1.6l-0.6 0.8c-0.2 0.2-0.4 0.3-0.6 0.1l-1.6-1.3 0.9-1.1c0.4-0.5 0.5-0.5 0.9-0.3l0.1-0.1-1.1-0.9-0.1 0.1c0.3 0.4 0.3 0.5 0 0.8l-1 1.2-1.9-1.6 1.1-1.3c0.4-0.5 0.6-0.6 1.1-0.3l0.1-0.1-0.6-0.5-2.6 3.2 0.1 0.1c0.3-0.4 0.6-0.4 1.1 0.1l2.8 2.3c0.6 0.5 0.6 0.7 0.3 1.1l0.1 0.1 2.6-3.2-0.7-0.9"/><path class="st2" d="m22 10.3c0.7-0.4 1-0.9 1.2-1.8l0.4 0.7 1.2-0.7-0.1-0.1c-0.4 0.2-0.6 0.2-1-0.5l-1.7-3.1c-0.3-0.6-0.3-0.9 0.1-1.1l-0.1-0.1-1.8 1 0.1 0.1c0.4-0.2 0.7-0.1 1 0.5l1.7 3c0 0.7-0.4 1.3-1 1.6-0.8 0.5-1.6 0.2-2-0.6l-1.4-2.5c-0.4-0.6-0.3-0.9 0.1-1.1l-0.1-0.1-1.8 1 0.2 0.1c0.4-0.2 0.6-0.2 1 0.5l1.4 2.5c0.5 0.8 1.4 1.3 2.6 0.7"/><path class="st2" d="m31.7 0.7v-0.2l-1.7 0.4v0.2c0.5-0.1 0.7 0 0.9 0.7l0.8 3.2-4.6-3.4-1.4 0.4v0.2c0.7-0.1 0.9 0.2 1.1 0.8l0.8 3.2c0.2 0.8 0 1-0.4 1.1v0.2l1.8-0.4v-0.2c-0.5 0.1-0.8 0-0.9-0.6l-1-3.9 5.2 3.8h0.2l-1.2-4.5c-0.3-0.6-0.2-0.9 0.4-1"/><path class="st2" d="m36.1 1.2 0.2 3.6c0 0.7-0.1 0.9-0.6 0.9v0.2l2.1-0.1v-0.2c-0.5 0-0.7-0.2-0.7-0.9l-0.2-3.6c0-0.7 0.1-0.9 0.6-0.9v-0.2l-2.1 0.1v0.2c0.5 0 0.6 0.2 0.7 0.9"/><path class="st2" d="m46.3 0.9v-0.2l-1.7-0.2v0.2c0.5 0.1 0.6 0.4 0.3 0.9l-1.8 3.4-0.9-3.9c-0.1-0.5 0.1-0.7 0.5-0.6v-0.2l-2-0.3v0.2c0.5 0.1 0.6 0.4 0.8 1.1l1.1 4.8h0.2l2.3-4.3c0.4-0.6 0.7-0.9 1.2-0.9"/><path class="st2" d="m50.3 7.7-0.9-0.3c-0.4-0.2-0.4-0.3-0.3-0.6l0.7-1.9 1.3 0.5c0.6 0.2 0.6 0.3 0.6 0.8l0.2 0.1 0.4-1.3-0.2-0.1c-0.2 0.4-0.4 0.4-0.8 0.3l-1.5-0.6 0.8-2.3 1.6 0.6c0.6 0.2 0.8 0.3 0.7 1h0.1l0.4-0.9-3.9-1.4-0.1 0.2c0.5 0.2 0.5 0.4 0.3 1.1l-1.2 3.4c-0.3 0.6-0.5 0.7-0.9 0.5l-0.1 0.2 3.9 1.4 0.6-0.9-0.2-0.1c-0.5 0.6-0.7 0.6-1.5 0.3"/><path class="st2" d="m56 10.7c-0.4-0.3-0.4-0.5 0-1.1l0.9-1.3 0.4 0.3c0.9 0.6 0.4 1.9 0.6 3.5l1 0.6 0.1-0.1c-0.8-0.6 0-2.4-0.5-3.5 0.8 0.2 1.4 0 1.8-0.5 0.4-0.6 0.3-1.6-0.8-2.3l-2-1.3-0.1 0.1c0.4 0.3 0.5 0.5 0.1 1.1l-2 3c-0.4 0.6-0.7 0.6-1 0.4l-0.1 0.1 1.7 1.1zm2.4-4.8 0.5 0.3c0.7 0.5 0.9 1.2 0.5 1.9-0.4 0.6-1 0.9-1.9 0.4l-0.6-0.4 1.5-2.2"/><path class="st2" d="m61 14.6c0.1 0.1 0.3 0.7 0.7 1.1 0.6 0.6 1.7 0.6 2.3 0 0.3-0.3 0.5-0.6 0.5-1.2 0-1.2-0.8-2.4-0.1-3.1 0.4-0.4 0.9-0.3 1.3 0.1s0.6 1.1 0.1 1.7l0.1 0.1 1-0.9-0.1-0.1c-0.1 0.1-0.2 0.1-0.2 0-0.2-0.2-0.2-0.5-0.6-1-0.7-0.7-1.5-0.7-2.1-0.1-0.3 0.3-0.5 0.7-0.5 1.2 0 0.9 0.7 2.3 0 3-0.4 0.4-1.1 0.4-1.5-0.1-0.4-0.4-0.7-1.2 0-2l-0.1-0.1-1.1 1.1 0.1 0.1c0 0.1 0.1 0.1 0.2 0.2"/><path class="st2" d="m64.9 19-0.1 0.1 1.2 1.7 0.1-0.1c-0.3-0.4-0.2-0.7 0.4-1.1l2.9-2c0.6-0.4 0.8-0.4 1.1 0l0.1-0.1-1.2-1.7-0.1 0.1c0.3 0.4 0.2 0.6-0.4 1.1l-2.9 2c-0.6 0.4-0.9 0.3-1.1 0"/><path class="st2" d="m72.6 21.5 0.3 0.8-4 1.8c-0.7 0.3-0.9 0.2-1.1-0.2l-0.1 0.1 0.8 1.8 0.2-0.1c-0.2-0.4-0.1-0.6 0.5-0.9l4-1.8 0.4 0.8c0.4 0.8 0.2 1.1-0.2 1.4v0.1l1.2-0.5-0.1-0.2c-0.2-0.1-0.4-0.3-0.6-0.7l-1.3-2.7c-0.1-0.2-0.2-0.4-0.2-0.5v-0.4l-0.1-0.2-1.2 0.5 0.1 0.2c0.7-0.2 1.1 0 1.4 0.7"/><path class="st2" d="m76.2 31.4h-0.2c0.1 0.5-0.3 0.5-0.8 0.4l-1.6-0.6 1.5-1.5c0.3-0.3 0.5-0.3 0.7 0.3h0.2l-0.5-2.2h-0.2c0.1 0.4 0 0.6-0.5 1.2l-1.6 1.6-1.8 0.4c-0.8 0.2-0.9-0.1-1-0.5h-0.2l0.4 2h0.2c-0.1-0.5 0.1-0.7 0.8-0.8l1.8-0.4 2.3 0.8c0.6 0.2 0.7 0.3 0.8 0.8h0.2l-0.5-1.5"/><path class="st2" d="m5 51.3c1.6-0.5 2.5-2.1 2-3.8s-2.1-2.6-3.7-2.1-2.5 2.1-2.1 3.8c0.5 1.7 2.1 2.6 3.8 2.1m-3.6-2.1c-0.4-1.2 0.5-2.4 2.1-2.9s2.9 0.1 3.3 1.4c0.3 1.1-0.4 2.3-2.1 2.8-1.4 0.4-2.9 0.1-3.3-1.3"/><path class="st2" d="m8.8 53.1c0.2 0.4 0.2 0.7-0.5 1l-3.1 1.8c-0.6 0.4-0.9 0.3-1.1-0.1l-0.2 0.1 1 1.8 0.1-0.1c-0.2-0.4-0.1-0.7 0.5-1l1.5-0.8 0.8 1.3c0.2 0.3 0.1 0.6-0.3 0.9l0.1 0.1 1.4-0.8-0.1-0.1c-0.4 0.2-0.7 0.2-0.9-0.2l-0.7-1.3 2.1-1.2 0.7 1.3c0.3 0.5 0.4 0.7-0.2 1.2h0.1l0.9-0.5-1.9-3.4h-0.2"/><path class="st2" d="m15.8 62.6c0.4 0.3 0.4 0.6-0.1 1.1l-2.3 2.8c-0.5 0.6-0.7 0.6-1.1 0.3l-0.1 0.1 3.2 2.6 0.9-0.7-0.1-0.1c-0.7 0.4-0.9 0.3-1.6-0.3l-0.8-0.6c-0.2-0.2-0.3-0.4-0.1-0.6l1.3-1.6 1.1 0.9c0.5 0.4 0.5 0.5 0.3 0.9l0.1 0.1 0.9-1.1-0.1-0.1c-0.4 0.3-0.5 0.3-0.8 0l-1.2-1 1.6-1.9 1.3 1c0.5 0.4 0.6 0.6 0.3 1.1l0.1 0.1 0.6-0.7-3.2-2.6-0.2 0.3"/><path class="st2" d="m24.3 68.2-2.4-1.1-0.1 0.2c0.4 0.2 0.5 0.5 0.2 1.1l-1.5 3.2c-0.3 0.6-0.6 0.7-1 0.6l-0.1 0.2 2.5 1.1c2 0.9 3.4 0.1 4-1.2 0.7-1.4 0.4-3.2-1.6-4.1m0.9 3.6c-0.7 1.4-1.8 2-3.1 1.4l-0.6-0.2c-0.5-0.2-0.6-0.5-0.2-1.3l1.8-3.8 1 0.5c1.6 0.7 1.7 2.2 1.1 3.4"/><path class="st2" d="m30.2 70.5c0.5 0.1 0.6 0.3 0.4 1l-0.7 3.5c-0.2 0.7-0.4 0.9-0.8 0.7v0.2l2 0.4v-0.2c-0.5-0.1-0.6-0.4-0.4-1l0.8-3.5c0.1-0.7 0.4-0.8 0.8-0.7v-0.2l-2-0.4-0.1 0.2"/><path class="st2" d="m39.9 71.3v0.2c0.5 0 0.7 0.2 0.7 0.9v3.4l-3.6-4.5h-1.5v0.2c0.7 0.1 0.9 0.4 0.9 1.1v3.4c0 0.8-0.2 1-0.7 1v0.2h1.7v-0.2c-0.5 0-0.8-0.2-0.8-0.8l-0.1-4 4.1 4.9h0.4v-4.7c0-0.7 0.2-0.9 0.7-0.9v-0.2h-1.8"/><path class="st2" d="m48.6 72.6c0.7-0.5 0.9-1 0.8-1.6-0.2-0.7-1-1.2-2.3-0.8l-2.1 0.6v0.2c0.5-0.1 0.7 0 0.9 0.7l0.9 3.4c0.2 0.7 0.1 0.9-0.4 1v0.2l2.5-0.7c1-0.3 1.6-1 1.4-1.8-0.1-0.8-0.8-1.3-1.7-1.2m-2.2-2 0.6-0.2c0.9-0.2 1.5 0.1 1.7 0.8s-0.2 1.3-1 1.5l-0.7 0.2zm2.4 4.8-0.5 0.1c-0.4 0.1-0.6 0-0.8-0.8l-0.4-1.6 0.5-0.1c1-0.3 1.7 0.1 2 0.9 0.2 0.8-0.3 1.3-0.8 1.5"/><path class="st2" d="m59.2 69.7-1.8-3.1c-0.4-0.6-0.3-0.9 0.1-1.1l-0.1-0.1-1.7 1 0.1 0.1c0.4-0.2 0.7-0.1 1 0.5l1.7 3c0 0.7-0.4 1.3-0.9 1.6-0.8 0.5-1.6 0.2-2-0.6l-1.6-2.4c-0.4-0.6-0.3-0.9 0.1-1.1l-0.1-0.1-1.8 1 0.1 0.1c0.4-0.2 0.6-0.2 1 0.5l1.4 2.4c0.5 0.9 1.5 1.4 2.7 0.7 0.7-0.4 1-0.9 1.2-1.8l0.4 0.7 1.2-0.7-0.1-0.1c-0.3 0.2-0.5 0.2-0.9-0.5"/><path class="st2" d="m64.1 63.3c0.4-0.8 0.3-1.4-0.2-1.8-0.5-0.5-1.5-0.6-2.4 0.3l-1.6 1.7 0.1 0.1c0.3-0.3 0.6-0.4 1.1 0.2l2.6 2.5c0.6 0.5 0.5 0.8 0.2 1.1l0.1 0.1 1.4-1.5-0.1-0.1c-0.3 0.3-0.6 0.3-1.1-0.2l-1.2-1.1 0.3-0.3c0.7-0.7 1.9 0 3.6 0.1l0.8-0.8-0.1-0.1c-0.7 0.6-2.3-0.5-3.5-0.2m-0.8 0.6-0.5 0.5-1.8-1.8 0.4-0.4c0.6-0.6 1.4-0.7 1.9-0.1 0.5 0.4 0.7 1.1 0 1.8"/><path class="st2" d="m70.8 54.8-0.1-0.1-1.2 2 0.1 0.1 0.1-0.2c0.2-0.4 0.5-0.4 1.1 0l0.5 0.3c0.4 0.3 0.2 0.8 0 1.1-0.7 1.2-2.3 1.4-3.7 0.5-1.3-0.8-1.8-2.1-1.1-3.1 0.4-0.7 1.3-1.3 2.3-0.8l0.1-0.1-1.4-0.9-0.1 0.2c0.1 0.1 0.1 0.2 0 0.4-0.2 0.4-0.6 0.5-1 1.2-0.7 1.2-0.6 3.1 1.2 4.2 1.1 0.7 2.9 0.8 4.2-1.4 0.1-0.2 0.6-1.1 0.7-1.4l-1.3-0.8c-0.5-0.5-0.7-0.7-0.4-1.2"/><path class="st2" d="m74.9 46.7-3.4-1c-0.7-0.2-0.8-0.4-0.7-0.9h-0.2l-0.6 2 0.2 0.1c0.1-0.5 0.4-0.6 1.1-0.4l1.6 0.5-0.9 3-1.6-0.5c-0.7-0.2-0.8-0.5-0.7-0.9h-0.2l-0.6 2h0.2c0.1-0.5 0.4-0.6 1.1-0.4l3.4 1c0.7 0.2 0.8 0.4 0.7 0.9h0.2l0.6-2h-0.2c-0.1 0.5-0.4 0.6-1.1 0.4l-1.5-0.5 0.9-3 1.6 0.5c0.7 0.2 0.8 0.4 0.7 0.9h0.2l0.6-2h-0.2c-0.2 0.4-0.5 0.5-1.2 0.3"/><path class="st2" d="m2 39.1c0 0.3 0.2 0.5 0.5 0.5s0.5-0.2 0.5-0.5-0.2-0.5-0.5-0.5-0.5 0.2-0.5 0.5"/><path class="st2" d="m74.7 39.1c0-0.3-0.2-0.5-0.5-0.5s-0.5 0.2-0.5 0.5 0.2 0.5 0.5 0.5 0.5-0.3 0.5-0.5"/></g></svg> diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/MANIFEST.md b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/MANIFEST.md new file mode 100644 index 0000000000..0d419a6ef9 --- /dev/null +++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/MANIFEST.md @@ -0,0 +1,278 @@ +# Manifest for gotham + +This file is a listing of all files considered to be part of this package. +It is automatically generated with `l3build manifest`. + + +## Repository manifest + +The following groups list the files included in the development repository of the package. +Files listed with a ‘†’ marker are included in the TDS but not CTAN files, and files listed +with ‘‡’ are included in both. + +### Source files + +These are source files for a number of purposes, including the `unpack` process which +generates the installation files of the package. Additional files included here will also +be installed for processing such as testing. + +* gotham.dtx ‡ +* gotham.ins ‡ +* gotham-logo.pdf ‡ +* gotham-layout.pdf ‡ +* gotham-blueprint.pdf ‡ +* gotham-safetybox.pdf ‡ + +### Text files + +Plain text files included as documentation or metadata. + +* MANIFEST.md ‡ +* README.md ‡ + +### Derived files + +The files created by ‘unpacking’ the package sources. This typically includes +`.sty` and `.cls` files created from DocStrip `.dtx` files. + +* beamercolorthemegotham.sty †+* beamerfontthemegotham.sty †+* beamerinnerthemegotham.sty †+* beamerouterthemegotham.sty †+* beamerthemegotham.sty †+* gotham-blueprint.pdf ‡ +* gotham-layout.pdf ‡ +* gotham-logo.pdf ‡ +* gotham-safetybox.pdf ‡ + +### Support files + +These files are used for unpacking, typesetting, or checking purposes. + +* gotham-example169transp-1.png +* gotham-example43dark-1.png +* gotham-exampleSimple-1.png +* gotham-logo.png +* gotham-test-035-a.png +* gotham-test-035-b.png + +### Test files + +These files form the test suite for the package. `.lvt` or `.lte` files are the individual +unit tests, and `.tlg` are the stored output for ensuring changes to the package produce +the same output. These output files are sometimes shared and sometime specific for +different engines (pdfTeX, XeTeX, LuaTeX, etc.). + +* gotham-test-001.lvt +* gotham-test-035.lvt +* gotham-test-037.lvt +* gotham-test-040.lvt +* gotham-test-043.lvt +* gotham-test-044.lvt +* gotham-test-045.lvt +* gotham-test-1002.lvt +* gotham-test-1002b.lvt +* gotham-test-1003.lvt +* gotham-test-1003b.lvt +* gotham-test-1004.lvt +* gotham-test-1005.lvt +* gotham-test-1006.lvt +* gotham-test-1007.lvt +* gotham-test-1007b.lvt +* gotham-test-1008.lvt +* gotham-test-1009.lvt +* gotham-test-1010.lvt +* gotham-test-1011.lvt +* gotham-test-1012.lvt +* gotham-test-1013.lvt +* gotham-test-1014.lvt +* gotham-test-1015.lvt +* gotham-test-1016.lvt +* gotham-test-1017.lvt +* gotham-test-1018.lvt +* gotham-test-1019.lvt +* gotham-test-1020.lvt +* gotham-test-1021.lvt +* gotham-test-1022.lvt +* gotham-test-1024.lvt +* gotham-test-1025.lvt +* gotham-test-1026.lvt +* gotham-test-1027.lvt +* gotham-test-1028.lvt +* gotham-test-1031.lvt +* gotham-test-1032.lvt +* gotham-test-1037.lvt +* gotham-test-1038.lvt +* gotham-test-001.lve +* gotham-test-035.luatex.tlg +* gotham-test-035.tlg +* gotham-test-035.xetex.tlg +* gotham-test-037.luatex.tlg +* gotham-test-037.tlg +* gotham-test-037.xetex.tlg +* gotham-test-040.luatex.tlg +* gotham-test-040.tlg +* gotham-test-040.xetex.tlg +* gotham-test-043.luatex.tlg +* gotham-test-043.tlg +* gotham-test-043.xetex.tlg +* gotham-test-044.luatex.tlg +* gotham-test-044.tlg +* gotham-test-044.xetex.tlg +* gotham-test-045.luatex.tlg +* gotham-test-045.tlg +* gotham-test-045.xetex.tlg +* gotham-test-1002.luatex.tlg +* gotham-test-1002.tlg +* gotham-test-1002.xetex.tlg +* gotham-test-1002b.luatex.tlg +* gotham-test-1002b.tlg +* gotham-test-1002b.xetex.tlg +* gotham-test-1003.luatex.tlg +* gotham-test-1003.tlg +* gotham-test-1003.xetex.tlg +* gotham-test-1003b.luatex.tlg +* gotham-test-1003b.tlg +* gotham-test-1003b.xetex.tlg +* gotham-test-1004.luatex.tlg +* gotham-test-1004.tlg +* gotham-test-1004.xetex.tlg +* gotham-test-1005.luatex.tlg +* gotham-test-1005.tlg +* gotham-test-1005.xetex.tlg +* gotham-test-1006.luatex.tlg +* gotham-test-1006.tlg +* gotham-test-1006.xetex.tlg +* gotham-test-1007.luatex.tlg +* gotham-test-1007.tlg +* gotham-test-1007.xetex.tlg +* gotham-test-1007b.luatex.tlg +* gotham-test-1007b.tlg +* gotham-test-1007b.xetex.tlg +* gotham-test-1008.luatex.tlg +* gotham-test-1008.tlg +* gotham-test-1008.xetex.tlg +* gotham-test-1009.luatex.tlg +* gotham-test-1009.tlg +* gotham-test-1009.xetex.tlg +* gotham-test-1010.luatex.tlg +* gotham-test-1010.tlg +* gotham-test-1010.xetex.tlg +* gotham-test-1011.luatex.tlg +* gotham-test-1011.tlg +* gotham-test-1011.xetex.tlg +* gotham-test-1012.luatex.tlg +* gotham-test-1012.tlg +* gotham-test-1012.xetex.tlg +* gotham-test-1013.luatex.tlg +* gotham-test-1013.tlg +* gotham-test-1013.xetex.tlg +* gotham-test-1014.luatex.tlg +* gotham-test-1014.tlg +* gotham-test-1014.xetex.tlg +* gotham-test-1015.luatex.tlg +* gotham-test-1015.tlg +* gotham-test-1015.xetex.tlg +* gotham-test-1016.luatex.tlg +* gotham-test-1016.tlg +* gotham-test-1016.xetex.tlg +* gotham-test-1017.luatex.tlg +* gotham-test-1017.tlg +* gotham-test-1017.xetex.tlg +* gotham-test-1018.luatex.tlg +* gotham-test-1018.tlg +* gotham-test-1018.xetex.tlg +* gotham-test-1019.luatex.tlg +* gotham-test-1019.tlg +* gotham-test-1019.xetex.tlg +* gotham-test-1020.luatex.tlg +* gotham-test-1020.tlg +* gotham-test-1020.xetex.tlg +* gotham-test-1021.luatex.tlg +* gotham-test-1021.tlg +* gotham-test-1021.xetex.tlg +* gotham-test-1022.luatex.tlg +* gotham-test-1022.tlg +* gotham-test-1022.xetex.tlg +* gotham-test-1024.luatex.tlg +* gotham-test-1024.tlg +* gotham-test-1024.xetex.tlg +* gotham-test-1025.luatex.tlg +* gotham-test-1025.tlg +* gotham-test-1025.xetex.tlg +* gotham-test-1026.luatex.tlg +* gotham-test-1026.tlg +* gotham-test-1026.xetex.tlg +* gotham-test-1027.luatex.tlg +* gotham-test-1027.tlg +* gotham-test-1027.xetex.tlg +* gotham-test-1028.luatex.tlg +* gotham-test-1028.tlg +* gotham-test-1028.xetex.tlg +* gotham-test-1031.luatex.tlg +* gotham-test-1031.tlg +* gotham-test-1031.xetex.tlg +* gotham-test-1032.luatex.tlg +* gotham-test-1032.tlg +* gotham-test-1032.xetex.tlg +* gotham-test-1037.luatex.tlg +* gotham-test-1037.tlg +* gotham-test-1037.xetex.tlg +* gotham-test-1038.luatex.tlg +* gotham-test-1038.tlg +* gotham-test-1038.xetex.tlg + + +## TDS manifest + +The following groups list the files included in the TeX Directory Structure used to install +the package into a TeX distribution. + +### Source files (TDS) + +All files included in the `gotham/source` directory. + +* gotham.dtx +* gotham.ins + +### TeX files (TDS) + +All files included in the `gotham/tex` directory. + +* beamercolorthemegotham.sty +* beamerfontthemegotham.sty +* beamerinnerthemegotham.sty +* beamerouterthemegotham.sty +* beamerthemegotham.sty +* gotham-blueprint.pdf +* gotham-layout.pdf +* gotham-logo.pdf +* gotham-safetybox.pdf + +### Doc files (TDS) + +All files included in the `gotham/doc` directory. + +* MANIFEST.md +* README.md +* ctan.ann +* ctan.note +* gotham-dev-impl.pdf +* gotham-doc.pdf +* gotham-doc.tex +* gotham-example169transp.pdf +* gotham-example169transp.tex +* gotham-example43dark.pdf +* gotham-example43dark.tex +* gotham-exampleSimple.pdf +* gotham-exampleSimple.tex +* gotham-user-cmds.pdf +* gotham.pdf +* section-Beamer.tex +* section-Conclusion.tex +* section-Gotham.tex + + +## CTAN manifest + +The following group lists the files included in the CTAN package. diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/README.md b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/README.md new file mode 100644 index 0000000000..d659207e8d --- /dev/null +++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/README.md @@ -0,0 +1,132 @@ +# Gotham Beamer Theme + +<!-- Logo --> +<p align="center"> + <a href="https://gitlab.com/RomainNOEL/beamertheme-gotham"> + <img src="support/gotham-logo.png" width="100" alt="Gotham logo"> + </a> +</p> + +<!-- BADGES --> +<p align="center"> + <a href="https://ctan.org/pkg/beamertheme-gotham"><img src="https://img.shields.io/ctan/v/beamertheme-gotham?logo=LaTeX&logoColor=%23008080&color=%23008080"/></a> + <a href="https://gitlab.com/RomainNOEL/beamertheme-gotham/-/release/"><img src="https://img.shields.io/badge/Latest_Release-v1.2.1-FC6D26?logo=Gitlab&logoColor=%#FC6D26"/></a> + <a href="https://gitlab.com/RomainNOEL/beamertheme-gotham/-/pipelines?page=1&scope=all&ref=main"><img src="https://img.shields.io/gitlab/pipeline-status/RomainNOEL%2Fbeamertheme-gotham?branch=main&logo=githubactions&label=pipeline"/></a> + <a href="https://gitlab.com/RomainNOEL/beamertheme-gotham/-/blob/main/LICENSE.txt"><img src="https://img.shields.io/badge/License-LPPL_1.3c-blue?logo=opensourceinitiative"/></a> + <a href="https://gitlab.com/api/v4/projects/52144864/jobs/artifacts/main/raw/gotham.pdf?job=deploy-files"><img src="https://img.shields.io/badge/Documentation-PDF_online-green?logo=readthedocs"/></a> + <a href="https://www.repostatus.org/lifecycle"><img src="https://img.shields.io/badge/repo_status-active-FC6D26?logo=framework&color=#F10001"/></a> +</p> +<!-- Latest_Release-v1.2.1 Date: 2025-02-11 --> + + +## What is Gotham ? +This `Gotham` package is a modern, minimal-ish, versatile and extendable theme for your `Beamer` presentations using `LaTeX(3)`. + + +## Table of Contents +[[_TOC_]] + + +## Why this package ? +ONCE UPON THE TIME, I was adapting `Metropolis` [Beamer](https://ctan.org/pkg/beamer) theme to get my institutional templates. +Indeed, `Metropolis` Beamer theme is a great work that is very convenient and well appreciated by many. + +BUT, [`Metropolis`](https://ctan.org/pkg/beamertheme-metropolis) seems not maintained anymore and is not flexible enough. +Moreover, `Metropolis` (or its successor initiative Moloch) and Beamer in some extends are not very flexible. +For example, it requires cumbersome modifications to apply a different background for your section frames. + +SO, `Gotham` tries to bring that kind of flexibility and [`LaTeX3`](https://www.latex-project.org/latex3/) implementation on top of the good-looking `Metropolis` theme. + + +## Some of the features included +- :gear: `l3build` a build system for LaTeX testing and deployment, etc... +- :hammer_and_wrench: `expl3` compliant +- :first_quarter_moon: dark, light and transparent background +- :movie_camera: can adapt to 16:9 and 4:3 screen format +- :stopwatch: multiple progress bar style +- :shopping_cart: **can mix** themes + + +## See it in action +Here are some screenshot of what you can obtain: + +| Example using a transparent background in 16/9 | Example using a transparent background in 4/3 | +:-------------------------:|:-------------------------: +| <img src="support/gotham-example169transp-1.png" width="475"> | <img src="support/gotham-example43dark-1.png" width="375"> | + +A deeper taste of how `Gotham` can render is available through the **`pdf` example/demo** that can be found [here](https://gitlab.com/api/v4/projects/52144864/jobs/artifacts/main/raw/gotham-example169transp.pdf?job=deploy-files), and the `tex` source file to build it is available [here](https://gitlab.com/RomainNOEL/beamertheme-gotham/-/blob/main/examples/gotham-example169transp.tex?ref_type=heads). + +The following code shows a **minimal example** of a Beamer presentation using Gotham. +```latex +\documentclass{beamer} +\usetheme{gotham} +\title{A minimal example} +\date{\today} +\author{Romain NOEL} +\institute{Centre for Modern Beamer Themes} +\begin{document} + \maketitle + \section{First Section} + \begin{frame}{First Frame} + Hello, world! + \end{frame} +\end{document} +``` +is yielding the following: + +<img src="support/gotham-exampleSimple-1.png" width="500"> + + +## Documentation +The complete `pdf` documentation can be found through an [artefact](https://gitlab.com/api/v4/projects/52144864/jobs/artifacts/main/raw/gotham.pdf?job=deploy-files). + + +## How to install ? +Several possibilities are available and tested: +- download the `.sty` released zip files, +- build from sources using `l3build`, +- download or update from [CTAN](https://ctan.org/pkg/beamertheme-gotham), +- fork a example from [Overleaf](https://www.overleaf.com/read/ybdcnjxjrwgq#3ae7f9) . + +### Download from release +The zip file containing the `.sty` files is downloadable through our latest [release link](https://gitlab.com/RomainNOEL/beamertheme-gotham/-/releases/) + +### Build from sources +You can also install the theme from sources, in which case you need a working LaTeX installation with `l3build` installed. +Then just follow these steps: +```bash +git clone https://gitlab.com/RomainNOEL/beamertheme-gotham.git +cd beamertheme-gotham +l3build install +``` + +Additionally you can use the other `l3build` target: +- `l3build unpack` builds the theme style files. +- `l3build doc` builds this documentation manual and the examples. +- `l3build check` builds the theme and manual. +- `l3build install` installs the theme into your local texmf folder. +- **STOP** unless you want remove it. +- `l3build uninstall` removes the theme from your local texmf folder. +- `l3build clean` removes the files generated by `l3build`. + +### Download from CTAN +The CTAN repository is available through the Gotham [package](https://ctan.org/pkg/beamertheme-gotham), so you can install it using your favorite LaTeX package manager. For example, with `tlmgr`: +```bash +tlmgr install beamertheme-gotham +``` + +### Fork from Overleaf example +If you want to play with it before installing, you can fork this Gotham example on [Overleaf](https://www.overleaf.com/read/ybdcnjxjrwgq#3ae7f9) and have fun. + +If you want to go further and have examples about how to adapt Gotham to obtain custom theme for your institution, visit this Overleaf example [adaptation](https://www.overleaf.com/read/vxnjgfmyvccj). + + +## License +The LaTeX Project Public License, version 1.3c [(LPPL1.3c)](/LICENSE.txt) + + +## Project status & contribution +The status of the project is "maintained". +The changelog file is tracking the [changes](https://gitlab.com/RomainNOEL/beamertheme-gotham/-/blob/main/CHANGELOG.md?ref_type=heads) made across versions. +However, if you have a bit of free time and good will to help the maintenance, it will be very appreciated and welcomed. +If you intend to contribute to this project, you can read the dedicated [document](https://gitlab.com/RomainNOEL/beamertheme-gotham/-/blob/main/CONTRIBUTING.md?ref_type=heads).
\ No newline at end of file diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/ctan.ann b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/ctan.ann new file mode 100644 index 0000000000..1e339a4766 --- /dev/null +++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/ctan.ann @@ -0,0 +1,18 @@ +# [Gotham](https://gitlab.com/RomainNOEL/beamertheme-gotham) announcement + +The `Gotham` package is a modern, minimal-ish, versatile and extendable theme for your `Beamer` presentations using `LaTeX(3)`. +`Gotham` tries to bring higher flexibility thanks to `LaTeX3` implementation on top of the good-looking `Metropolis` theme. + + + +## Version: 1.2.1.c Date: 2025-02-11 + +### Fixes +- spacing vertical and horizontal between subsections toc. +- spacing vertical for sections with `gotham bullet` toc leading to an error with `minted` package ([https://gitlab.com/RomainNOEL/beamertheme-gotham/-/issues/4]). +- use of `minted` instead of `listings` for code highlighting in examples. + +### News +- add `\partpageOptions`, `\sectionpageOptions`, `\subsectionpageOptions`, `\subsubsectionpageOptions` controlling the frame options of parts and sections pages... +- add `\partpageTocOptions`, `\sectionpageTocOptions`, `\subsectionpageTocOptions`, `\subsubsectionpageTocOptions` controlling the frame options of the table of contents for parts and sections... +- add `\partTocOptions`, `\sectionTocOptions`, `\subsectionTocOptions`, `\subsubsectionTocOptions` controlling the options of table of contents for parts and sections...
\ No newline at end of file diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/ctan.note b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/ctan.note new file mode 100644 index 0000000000..ff43a42640 --- /dev/null +++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/ctan.note @@ -0,0 +1,3 @@ +Please see the file `gotham-exampleSimple.tex` in: +doc/latex/gotham/examples/gotham-exampleSimple.tex +Thanks
\ No newline at end of file diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-blueprint.pdf b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-blueprint.pdf Binary files differnew file mode 100644 index 0000000000..04975af210 --- /dev/null +++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-blueprint.pdf diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-dev-impl.pdf b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-dev-impl.pdf Binary files differnew file mode 100644 index 0000000000..8620fef1b9 --- /dev/null +++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-dev-impl.pdf diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-doc.pdf b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-doc.pdf Binary files differnew file mode 100644 index 0000000000..646b7e6603 --- /dev/null +++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-doc.pdf diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-doc.tex b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-doc.tex new file mode 100644 index 0000000000..720d370ace --- /dev/null +++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-doc.tex @@ -0,0 +1,1275 @@ +\documentclass{l3doc} + \usepackage[T1]{fontenc} + \usepackage{pdfpages} + \usepackage{standalone} + % \usepackage{gotham} + % \usepackage{readprov} + % \ReadPackageInfos{beamerthemegotham} + \edef\GothamVersion{v1.2.1.c} %{\fileversion} + \edef\GothamDate{2025-02-11} %{\filedate} + + + \usepackage{parskip} + \usepackage{setspace} + \usepackage{xspace} + \onehalfspacing + + \usepackage{xcolor} + \definecolor{tPrim}{HTML}{00707F} % Green-Blue + \definecolor{tSec}{HTML}{5FA4B0} % Green-Blue light + \definecolor{tAccent}{HTML}{F07F3C} % Orange + \definecolor{tGrey}{HTML}{E6E6E1} % Grey-Beige + + \usepackage{listings} + \lstset{% + language=[LaTeX]{TeX}, + basicstyle=\ttfamily, + keywordstyle=\color{tPrim}\bfseries, + commentstyle=\color{tSec}, + stringstyle=\color{tSec}, + backgroundcolor=\color{white}, + numbers=none, + numberstyle=\tiny\ttfamily, + stepnumber=2, + showspaces=false, + showstringspaces=false, + showtabs=false, + frame=none, + framerule=1pt, + tabsize=2, + rulesep=5em, + captionpos=b, + breaklines=true, + breakatwhitespace=false, + framexleftmargin=0em, + framexrightmargin=0em, + xleftmargin=0em, + xrightmargin=0em, + aboveskip=1em, + belowskip=1em, + morekeywords={\usetheme,\institute,\maketitle,\subtitle, + \gothamset, + \colorlet,\setbeamercolor, + plain,\defbeamertemplate + }, + } + \lstMakeShortInline| + + \usepackage{hyperref} + + \setlength{\fboxsep}{0pt}% + \usepackage{subcaption} % for subfigures + \usepackage{cleveref} % for references + + \providecommand{\defopt}[1]{\underline{#1}}%{default: #1}%{\underline{#1}} + \NewDocumentEnvironment{DescribeGothamOption}{ o m m m }{ + \DescribeOption{#2} % from l3doc + \IfNoValueTF{#1}{ + % true => left empty intentionally + }{ + \DescribeOption{% add extra info like added or updated dates to mimic 'function' env. + \rule[2.5ex]{\linewidth}{0.3pt} + \\[-3.5ex] + {\scriptsize #1 \hfill\ } + } + } + \begin{minipage}[t]{\textwidth} + \textit{\textbf{\textcolor{tSec}{#3}}}\dotfill\,\defopt{#4}\par + \begingroup + \vspace{0.5em} + }{ + \par + \endgroup + \end{minipage} + } + + +%% ===================================================================== +\title{\textsc{Gotham}\\ A modern, minimal-ish, versatile and extendable theme for Beamer} +\author{Romain NOEL \\ \url{romainoel@free.fr}} +\date{\GothamVersion~---~\GothamDate} + +\providecommand{\themename}{\textbf{\textsc{Gotham}}\xspace} + +%% ===================================================================== + + +\begin{document} +\maketitle +\tableofcontents + + +%% ------------------------------------ +\section{Introduction} + Beamer is an awesome way to make presentations with \LaTeX, but its theme selection is surprisingly sparse. + The stock themes share an aesthetic that can be a little cluttered, while the few distinctive custom themes available are often specialized for a particular corporate or institutional brand. + + The goal of \themename is to provide a simple, modern Beamer theme suitable for anyone to use. + It tries to minimize noise and maximize space for content; some visual flourishes are offered as options. + + The final product provides a modern, elegant and versatile theme with a high degree of customization. + So it can easily be used to build a particular corporate or institutional brand theme on top of it. + + The implementation of this theme is strongly inspired from the excellent \href{https://github.com/matze/mtheme}{\textsc{Metropolis}} theme by Matthias Vogelgesang, from which it borrows numerous options. + \themename's codebase lives on + \href{https://gitlab.com/RomainNOEL/beamertheme-gotham} {Gitlab}. + \newline + If you have issues, find mistakes in the manual or want to help make the theme even better, please get in touch there. + Any feature request, issue report or merge requests are welcome. + + +%% ------------------------------------ +\section{Getting Started} +\subsection{Installing from CTAN} + The latest stable version of \themename is available on + \href{https://ctan.org/pkg/beamertheme-gotham}{CTAN} and should now be part of the usual \TeX\ distributions (\TeX\ Live, Mac\TeX\ , Mik\TeX\ ), under the name \textit{beamertheme-gotham}. + It means that if your distribution is kept up-to-date, the package should normally be already installed on your system. + If this is not the case, consider updating the packages of your Tex distribution. + + For \TeX\ Live and Mac\TeX\ users, this usually means running + \begin{lstlisting} + tlmgr update --all + \end{lstlisting} + or if administrative privileges are required + \begin{lstlisting} + sudo tlmgr update --all + \end{lstlisting} + + For Mik\TeX\ users, please refer to \href{https://miktex.org/howto/update-miktex}{the official Mik\TeX\ documentation}. + + +\subsection{Installing from Gitlab} + If you want to use the cutting-edge development version of \themename, you can install it manually by following these steps: + \begin{description} + \item[Download the source] from + \href{https://gitlab.com/RomainNOEL/beamertheme-gotham}{\themename repository} + using |git clone| or as a + \href{https://gitlab.com/RomainNOEL/beamertheme-gotham/-/archive/master/beamertheme-gotham-master.zip}{zip archive} + of the latest development version. + \item[Compile the style files] by running |l3build unpack| inside the downloaded directory. + (Or run \LaTeX{} directly on |source/gothamtheme.ins|.) + \item[Move the resulting |*.sty| files] to the folder containing your presentation. + To use \themename with many presentations, run + |l3build install| or move the |*.sty| files to a folder in your \TeX{} path instead. + \item[Use the theme] by declaring \lstinline|\usetheme{gotham}| in the preamble of your document. + \end{description} + + \themename uses the l3build system to offer the following installation options for advanced users: + \begin{description} + \item[|l3build unpack|] builds the theme style files. + \item[|l3build doc|] builds this documentation manual and the examples. + \item[|l3build check|] builds the theme and manual. + \item[|l3build clean|] removes the files generated by |l3build|. + \item[|l3build install|] installs the theme into your local texmf folder. + \item[|l3build uninstall|] removes the theme from your local texmf folder. + \end{description} + + +% \subsection{Overleaf} +% \themename is therefore automatically supported for new documents. +% If you want to switch older documents to use the \themename theme, you need to \href{https://www.overleaf.com/blog/new-feature-select-your-tex-live-compiler-version}{select +% TexLive 2021 or higher as your TeX Live version} (this may cause issues with other packages used in your presentation). + +% In addition to that, a template project was created and is publicly available in the \href{https://www.overleaf.com/latex/templates/gotham-beamer-theme/wjyyzvdzqkgf}{Overleaf Gallery} to bootstrap your presentation. + + +%% ------------------------------------ +\subsection{A Minimal Example} + The following code shows a minimal example of a Beamer presentation using \themename, and the output generated is given on \cref{fig-minimal}. + + \begin{lstlisting} + \documentclass{beamer} + \usetheme{gotham} % Loads Gotham theme + \title{A minimal example} + \subtitle{using Gotham theme} + \date{\today} + \author{John DOE} + \institute{Your university or company} + + \begin{document} + \maketitle + \section{First Section} + \begin{frame}{First Frame} + Hello world ! + \end{frame} + \end{document} + \end{lstlisting} + + \begin{figure}[htp] + \centering + \fbox{\includegraphics[width=0.7\textwidth]{gotham-exampleSimple.pdf}} + \caption{A simple example.} + \label{fig-minimal} + \end{figure} + + +\subsection{Dependencies} + \themename depends on the |beamer| class and the following standard packages: + \begin{itemize} + \item |tikz| + \item |expl3| + \item |xfp| + \item |etoolbox| + \item |ifxetex| + \item |ifluatex| + \end{itemize} + + For best results, we recommend installing the fonts + \href{https://github.com/mozilla/Fira}{|Fira Sans|} and |Fira Mono| and compiling with \themename using XeLaTeX or LuaTeX. + These are optional dependencies; \themename is compatible with (e.g.) pdf\LaTeX\ and will fall back to standard fonts if |Fira Sans| or |Fira Mono| is not installed. + + The packaged name of |Fira Sans| is |Fira Sans OT| in some Linux distributions; this case is automatically handled by \themename. + + +%% ------------------------------------ +\section{Customization} +\subsection{Package options} + \themename provides a number of options, which can be set using a key=value interface. + The primary way to set options is to provide a comma-separated list of option-value pairs when loading \themename in the preamble: + \begin{lstlisting}[gobble=2] + \usetheme[option1=value1, option2=value2, ...]{gotham} + \end{lstlisting} + + Options can be changed at any time --- even mid-presentation ! --- with the |\gothamset| command. + \begin{lstlisting}[gobble=2] + \gothamset{option1=newvalue1, option2=newvalue2, ...} + \end{lstlisting} + + The list of options is structured as shown in the following example. + + \begin{DescribeGothamOption}{option key} + {list of possible values}{default} + A short description of the option. + \end{DescribeGothamOption} + + As \themename implementation is heavily inspired from the excellent + \href{https://github.com/matze/mtheme}{\textsc{Metropolis}} theme by Matthias Vogelgesang, many of \textsc{Metropolis} options are also available in \themename. + + +\subsubsection{Font theme} + \DescribeOption{format title} + % \begin{DescribeGothamOption}{format title} + % {regular, lower, upper, titlecase}{regular}{ + % A short description of the option. + % \end{DescribeGothamOption} + \DescribeOption{format subtitle} + % \begin{DescribeGothamOption}{format subtitle} + % {regular, lower, upper, titlecase}{regular}{ + % A short description of the option. + % \end{DescribeGothamOption} + \DescribeOption{format frametitle} + % \begin{DescribeGothamOption}{format frametitle} + % {regular, lower, upper, titlecase}{regular}{ + % A short description of the option. + % \end{DescribeGothamOption} + \DescribeOption{format framesubtitle} + % \begin{DescribeGothamOption}{format framesubtitle} + % {regular, lower, upper, titlecase}{regular}{ + % A short description of the option. + % \end{DescribeGothamOption} + \DescribeOption{format part} + % \begin{DescribeGothamOption}{format part} + % {regular, lower, upper, titlecase}{regular}{ + % A short description of the option. + % \end{DescribeGothamOption} + \DescribeOption{format section} + % \begin{DescribeGothamOption}{format section} + % {regular, lower, upper, titlecase}{regular}{ + % A short description of the option. + % \end{DescribeGothamOption} + \begin{DescribeGothamOption}{format subsection} + {regular, lower, upper, titlecase}{regular} + Individually controls the format/case of titles, subtitles, frametitle, framesubtitles, part, section and subsection titles. + \vspace{6em} + \end{DescribeGothamOption} + + \DescribeOption{shape title} + % \begin{DescribeGothamOption}{shape title} + % {regular, italic, smallcaps}{regular}{ + % A short description of the option. + % \end{DescribeGothamOption} + \DescribeOption{shape subtitle} + % \begin{DescribeGothamOption}{shape subtitle} + % {regular, italic, smallcaps}{regular}{ + % A short description of the option. + % }\end{DescribeGothamOption} + \DescribeOption{shape frametitle} + % \begin{DescribeGothamOption}{shape frametitle} + % {regular, italic, smallcaps}{regular}{ + % A short description of the option. + % }\end{DescribeGothamOption} + \DescribeOption{shape framesubtitle} + % \begin{DescribeGothamOption}{shape framesubtitle} + % {regular, italic, smallcaps}{regular}{ + % A short description of the option. + % }\end{DescribeGothamOption} + \DescribeOption{shape part} + % \begin{DescribeGothamOption}{shape part} + % {regular, italic, smallcaps}{regular}{ + % A short description of the option. + % }\end{DescribeGothamOption} + \DescribeOption{shape section} + % \begin{DescribeGothamOption}{shape section} + % {regular, italic, smallcaps}{regular}{ + % A short description of the option. + % }\end{DescribeGothamOption} + \begin{DescribeGothamOption}{shape subsection} + {regular, italic, smallcaps}{regular}{ + Individually controls the shape/series of titles, subtitles, frametitle, framesubtitles, part, section and subsection titles. + \vspace{6em} + }\end{DescribeGothamOption} + + \begin{figure}[htb] + \centering + \begin{subfigure}[b]{0.475\textwidth} + \centering + \includegraphics[width=\linewidth]{gotham-test-035-a.png} + \caption{Example of |format~frametitle=titlecase, shape~frametitle=smallcaps, format~framesubtitle= lower, shape~framesubtitle=regular|.} + \label{fig-035-a} + \end{subfigure} + \begin{subfigure}[b]{0.475\textwidth} + \centering + \includegraphics[width=\linewidth]{gotham-test-035-b.png} + \caption{Example of |format~frametitle=lower, shape~frametitle=italic, format~framesubtitle= regular, shape~framesubtitle=italic|.} + \label{fig-035-b} + \end{subfigure} + \caption{Examples of format and shape settings.} + \label{fig-035} + \end{figure} + + +\subsubsection{Color theme} + The included \themename color theme is used by default, but its colors can be easily changed to suit your tastes. + All of the theme's styles are defined in terms of a few main colors: + \begin{itemize} + \item |colorA| The primary theme color, used for frametitle, standout and text if the appropriate options are selected. + \end{itemize} + + An easy way to customize the theme is to redefine these colors using: + \begin{lstlisting} + \colorlet{colorPale}{gPaleYell} % BG in light/normal mode + \colorlet{colorDark}{gDarkBlack} % FG in light/normal mode + \colorlet{colorA}{gDarkTeal} % frametitle, standin.out, + \colorlet{colorAreversed}{gLightTeal} % frametitle, standin.in, + \colorlet{colorB}{gMidGrey} % gray BG : progress bar, blocks + \colorlet{colorC}{gDeepYellOr} % progress bar + \colorlet{colorD}{gLightOrange} % alert + \colorlet{colorE}{gLightGreen} % example + \end{lstlisting} + + \begin{DescribeGothamOption}{background}{light, dark, transparent}{transparent}{ + Controls weather the color of all headings (title page, frame title, etc.) should be in black (|default|) or in a slightly darker shade of the theme color |theme|. + }\end{DescribeGothamOption} + + \begin{DescribeGothamOption}{colorset} + {red, anthracite}{anthracite}{% blue, green, orange, teal, + Predefined set colors (|colorA, colorB, ...|) leading to different ambiances. + }\end{DescribeGothamOption} + + \begin{DescribeGothamOption}{block}{native, transparent, fill}{native}{ + Optionally adds a light grey background to block environments like |theorem| and |example|. + }\end{DescribeGothamOption} + + +\subsubsection{Inner theme} + \begin{DescribeGothamOption}{title page} + {gotham~normal, gotham~reversed, gotham~dividedpic, gotham~splitvert, <your-name>}{gotham~normal}{ + By setting this option you can change the title page according predefined style or even set your own template. + If you want to use your own template, this latter should be previously defined with: + \lstinline|\defbeamertemplate{title page}{<your-name>}{<your-defintion>}|. + }\end{DescribeGothamOption} + + \begin{DescribeGothamOption}{watermark default} + {on, off}{off}{ + Enable or disable the watermark background template by default (ie. without using |\begin{frame}[watermark]|). + }\end{DescribeGothamOption} + + \begin{DescribeGothamOption}{watermark template} + {gotham~draft, <your-name>}{gotham~draft}{ + Set the watermark background template to use when the |watermark| option is activated (by default or locally). + If you want to use your own template, this latter should be previously defined with: + \lstinline|\defbeamertemplate{background}{watermark/<your-name>}{<your-defintion>}|. + }\end{DescribeGothamOption} + + + \DescribeOption{standin template} + % \begin{DescribeGothamOption}{standin template} + % {list of possible values}{default}{ + % A short description of the option. + % }\end{DescribeGothamOption} + \begin{DescribeGothamOption}[added=2024-11-11]{standout template} + {gotham, <your-name>}{gotham}{ + Set the standin and stantout template to use when the |standin| or |stantout| frame option is activated. + If you want to use your own template, this latter should be previously defined with: + \lstinline|\defbeamertemplate{standout}{<your-name>}{<your-defintion>}|. + }\end{DescribeGothamOption} + + \DescribeOption{standin BG template} + % \begin{DescribeGothamOption}{standin BG template} + % {list of possible values}{default}{ + % A short description of the option. + % }\end{DescribeGothamOption} + \begin{DescribeGothamOption}[updated=2024-11-11]{standout BG template} + {gotham, <your-name>}{gotham}{ + Since most of the time the standin and standout are only varying from their backgrounds, \themename{} offers the possibility to change only and simply these local background through this option. + This option sets the standin and stantout background template to use when the |standin| or |stantout| frame option is activated. + If you want to use your own template, this latter should be previously defined with: + \lstinline|\defbeamertemplate{background}{standin/<your-name>}{<your-defintion>}|. + }\end{DescribeGothamOption} + + + \DescribeOption{partframe default} + % \begin{DescribeGothamOption}{partframe default} + % {list of possible values}{default}{ + % A short description of the option. + % }\end{DescribeGothamOption} + \DescribeOption{sectionframe default} + % \begin{DescribeGothamOption}{sectionframe default} + % {list of possible values}{default}{ + % A short description of the option. + % }\end{DescribeGothamOption} + \DescribeOption{subsectionframe default} + % \begin{DescribeGothamOption}{subsectionframe default} + % {list of possible values}{default}{ + % A short description of the option. + % }\end{DescribeGothamOption} + \begin{DescribeGothamOption}{subsubsectionframe default} + {on, off}{on}{ + Enable or disable the display of the part frame (section, subsection and subsubsection respectively) at each part (other respectively) increment. + \vspace{1em} + }\end{DescribeGothamOption} + + \DescribeOption{partframe template} + % \begin{DescribeGothamOption}{partframe template} + % {list of possible values}{default}{ + % A short description of the option. + % }\end{DescribeGothamOption} + \DescribeOption{sectionframe template} + % \begin{DescribeGothamOption}{sectionframe template} + % {list of possible values}{default}{ + % A short description of the option. + % }\end{DescribeGothamOption} + \DescribeOption{subsectionframe~template} + % \begin{DescribeGothamOption}{subsectionframe template} + % {list of possible values}{default}{ + % A short description of the option. + % }\end{DescribeGothamOption} + \begin{DescribeGothamOption}{subsubsectionframe~template} + {gotham progressbar, gotham simple, gotham splitvert progressbar, gotham splitvert simple, gotham progressvert}{gotham progressbar}{ + Set the frame template to use when the |part| (or |section|, |subsection|, |subsubsection| respectively) frame option is activated (ie. using |\begin{frame}[part]|). + If you want to use your own template, before giving its name to this option, your template should be defined with: + \lstinline|\defbeamertemplate{part frame}{<your-name>}{<your-defintion>}|. + % \vspace{3em} + }\end{DescribeGothamOption} + + + \begin{DescribeGothamOption}{tocframe template} + {gotham simple, gotham bullet, <your-name>}{gotham bullet}{ + Set the table of contents template to use when the |toc| option is activated. + If you want to use your own template, this latter should be previously defined with: + % \lstinline| + \begin{lstlisting}[gobble=6] + \defbeamertemplate{part in toc}{<your-name>}{<your-defintion>} + \defbeamertemplate{section in toc}{<your-name>}{<your-defintion>} + \defbeamertemplate{subsection in toc shaded}{<your-name>}{<your-defintion>} + \defbeamertemplate{subsubsection in toc shaded}{<your-name>}{<your-defintion>} + \defbeamertemplate{background canvas}{toc/<your-name>}{<your-definition>} + \defbeamertemplate{toc page}{<your-name>}{<your-defintion, set them now by exmaple>} + \end{lstlisting} + % |. + }\end{DescribeGothamOption} + + \DescribeOption{parttocframe default} + % \begin{DescribeGothamOption}{parttocframe default} + % {list of possible values}{default}{ + % A short description of the option. + % }\end{DescribeGothamOption} + \DescribeOption{sectiontocframe default} + % \begin{DescribeGothamOption}{sectiontocframe default} + % {list of possible values}{default}{ + % A short description of the option. + % }\end{DescribeGothamOption} + \DescribeOption{subsectiontocframe default} + % \begin{DescribeGothamOption}{subsectiontocframe default} + % {list of possible values}{default}{ + % A short description of the option. + % }\end{DescribeGothamOption} + \begin{DescribeGothamOption}{subsubsectiontocframe~default} + {on, off}{on}{ + Enable or disable the display of the table of content frame after the part frame (section, subsection and subsubsection respectively) at each part (other respectively) increment. + \vspace{1em} + }\end{DescribeGothamOption} + + \DescribeOption{parttocframe template} + % \begin{DescribeGothamOption}{parttocframe template} + % {list of possible values}{default}{ + % A short description of the option. + % }\end{DescribeGothamOption} + \DescribeOption{sectiontocframe template} + % \begin{DescribeGothamOption}{sectiontocframe template} + % {list of possible values}{default}{ + % A short description of the option. + % }\end{DescribeGothamOption} + \DescribeOption{subsectiontocframe~template} + % \begin{DescribeGothamOption}{subsectiontocframe template} + % {list of possible values}{default}{ + % A short description of the option. + % }\end{DescribeGothamOption} + \begin{DescribeGothamOption}{subsubsectiontocframe~tem..} + {gotham simple, gotham bullet, <your-name>}{gotham bullet}{ + Set the frame template to use when the table of contents at each new |part| (or |section|, |subsection|, |subsubsection| respectively). + This new frame is internally using the |tocpart| frame option to activate the frame template. + If you want to use your own template, before giving its name to this option, your template should be defined with: + \lstinline|\defbeamertemplate{part frame}{<your-name>}{<your-defintion>}|. + % \vspace{3em} + }\end{DescribeGothamOption} + + % \begin{figure}[h!] + % \begin{subfigure}[b]{0.3\textwidth} + % \fbox{\includegraphics[width=\textwidth]{screenshots/layout_example-04.jpg}} + % \caption*{plain (default)} + % \end{subfigure} + % \hspace{\fill} + % \begin{subfigure}[b]{0.3\textwidth} + % \fbox{\includegraphics[width=\textwidth]{screenshots/layout_example-05.jpg}} + % \caption*{style1} + % \end{subfigure} + % \hspace{\fill} + % \begin{subfigure}[b]{0.3\textwidth} + % \fbox{\includegraphics[width=\textwidth]{screenshots/layout_example-06.jpg}} + % \caption*{style2} + % \end{subfigure} + % \end{figure} + + +\subsubsection{Outer theme} + \DescribeOption{sidebar~canvas~right~template} + % \begin{DescribeGothamOption}{subsectiontocframe template} + % {list of possible values}{default}{ + % A short description of the option. + % }\end{DescribeGothamOption} + \begin{DescribeGothamOption}{sidebar~canvas~left~template} + {~gotham~filigrane, empty, <your-name>}{gotham~filigrane}{ + Setting templates for left and right sidebar canvas which are activated when giving the frame option |\begin{frame}[edging]|. + If you want to use your own template, before giving its name to this option, your template should be defined with: + \lstinline|\defbeamertemplate{sidebar canvas right}{default/<your-name>}{<your-defintion>}| + }\end{DescribeGothamOption} + + \begin{DescribeGothamOption}{edging default} + {on, off}{off}{ + The option |edging default=on| can enable the |sidebar canvas right| (and |sidebar canvas left|) templates on every frame; but it can still be turned off for specific frames when using the frame option |\begin{frame}[noedging]|. + }\end{DescribeGothamOption} + + \begin{DescribeGothamOption}{frametitle template} + {gotham~subsameline, gotham~subnewline, <your-name>}{gotham~subsameline}{ + Option to set the frametitle template. + \themename{} offers one template that adds the subtitle on the same line (|gotham~subsameline|) and one that adds the subtitle on a new line (|gotham~subnewline|). + If you want to use your own template, before giving its name to this option, your template should be defined with: + \lstinline|\defbeamertemplate{frametitle}{default/<your-name>}{<your-defintion>}| + }\end{DescribeGothamOption} + + \begin{DescribeGothamOption}{framesubtitle template} + {gotham~subnewline, <your-name>}{gotham~subnewline}{ + Setting the template to use when the subtitle is on a new line. + If you want to use your own template, before giving its name to this option, your template should be defined with: + \lstinline|\defbeamertemplate{framesubtitle}{default/<your-name>}{<your-defintion>}| + }\end{DescribeGothamOption} + + \begin{DescribeGothamOption}{frametitle continuation template} + {gotham, beamer, tot, <your-name>}{gotham}{ + Setting the template that is used in the frametitle when a frame too long and is continued/broke into several frames (using the frame option |allowframebreaks|). + If you want to use your own template, before giving its name to this option, your template should be defined with: + \lstinline|\defbeamertemplate{frametitle continuation}{default/<your-name>}{<your-defintion>}| + }\end{DescribeGothamOption} + + \begin{DescribeGothamOption}{numbering}{none, framenumber, totalframenumber, appendixframenumber, pagenumber, totalpagenumber, circle}{none}{ + Setting the template with the frame number at the bottom right of each slide. + }\end{DescribeGothamOption} + + \begin{DescribeGothamOption}{footer template} + {gotham, <your-name>}{gotham}{ + Setting the template that appears in the footer of the frame. + |gotham| footer print the |shortdate| at right, the |shorttitle| in the middle and the |shortauthor| at left. + Since in 16/9 the height is precious, |gotham| template also offers the possibility to rotate |shortdate| and |shortauthor| so they appear on sides. + If you want to use your own template, before giving its name to this option, your template should be defined with: + \lstinline|\defbeamertemplate{frame footer}{default/<your-name>}{<your-defintion>}| + }\end{DescribeGothamOption} + + \begin{DescribeGothamOption}{rotateFooter default} + {on, off}{off}{ + Enable or disable the |rotateFooter| frame option by default (ie. without using |\begin{frame}[rotateFooter]| on every frame). + If the option is activated, it can be deactivated locally using the frame option |\begin{frame}[noRotateFooter]|. + }\end{DescribeGothamOption} + + \begin{DescribeGothamOption}{mini frames shape} + {default (bullet from beamer), tick, box, gotham minibullet, gotham box, gotham minibox, <your-name>}{gotham~minibullet}{ + Setting the shape of the mini frames to use, if the mini frame bundle refers to it (which is usually the case). + If you want to use your own template, before giving its name to this option, your template should be defined with: + % \lstinline|\defbeamertemplate{frame~footer}{default/<your-name>}{<your-defintion>}| + \begin{lstlisting}[gobble=6] + \defbeamertemplate{mini frame}{<your-name>}{ + <your-defintion> + }[action]{ + \setbeamersize{mini frame size=.1cm, mini frame offset=.05cm} + } + \defbeamertemplate{mini frame in current subsection}{<your-name>}{ + <your-defintion> + } + \end{lstlisting} + }\end{DescribeGothamOption} + + \begin{DescribeGothamOption}{mini frames bundle} + {gotham~mini, beamer, gotham~nano <your-name>}{gotham~mini}{ + Setting the set of symbols used in the mini frame navigation. + If you want to use your own template, before giving its name to this option, your template should be defined with: + % \lstinline|\defbeamertemplate{frame~footer}{default/<your-name>}{<your-defintion>}| + \begin{lstlisting}[gobble=6] + \defbeamertemplate{miniframe~home}{<your-name>}{<your-def>} + \defbeamertemplate{miniframe~current~slide}{<your-name>}{<your-def>} + \defbeamertemplate{miniframe~done~current~section}{<your-name>}{<your-def>} + \defbeamertemplate{miniframe~todo~current~section}{<your-name>}{<your-def>} + \defbeamertemplate{miniframe~done~other~section}{<your-name>}{<your-def>} + \defbeamertemplate{miniframe~todo~other~section}{<your-name>}{<your-def>} + \defbeamertemplate{miniframe~part}{<your-name>}{<your-def>} + \defbeamertemplate{miniframe~section~current}{<your-name>}{<your-def>} + \defbeamertemplate{miniframe~section~done}{<your-name>}{<your-def>} + \defbeamertemplate{miniframe~section~todo}{<your-name>}{<your-def>} + \defbeamertemplate{miniframe~subsection~current}{<your-name>}{<your-def>} + \defbeamertemplate{miniframe~subsection~todo}{<your-name>}{<your-def>} + \defbeamertemplate{miniframe~subsection~done}{<your-name>}{<your-def>} + \end{lstlisting} + }\end{DescribeGothamOption} + + \begin{DescribeGothamOption}{mini frames compress} + {on, off}{on}{ + A shortcut for the beamer option |compress| that affects the mini frames. + }\end{DescribeGothamOption} + + \begin{DescribeGothamOption}{mini frames nav spreading} + {spreading, centering, left, right}{spreading}{ + Controls how the mini frame should spread in the navigation bar. + }\end{DescribeGothamOption} + + \begin{DescribeGothamOption}{mini frames nav sectioning} + {none, section, secsubsection}{none}{ + Setting the |section in head/foot| template that is used on top of the mini frame navigation bar. + }\end{DescribeGothamOption} + + \begin{DescribeGothamOption}{mini frames nav position} + {none, head, foot, left, right}{none}{ + Setting where the mini frame navigation bar should appear. + }\end{DescribeGothamOption} + + \begin{DescribeGothamOption}{progressbar position} + {none, head, frametitle, foot, circlehead, left, right}{none}{ + Setting where the progressbar should appear. + The different positions are pretty obvious from their name, except for |circlehead|. + This latter option is putting a circular progressbar around the frametitle-logo (from frametitle template defined with gotham theme). + It worth noting that by doing so, the frametitle is using the command |\gothamInstituteLogoCircle| instead of |\gothamInstituteLogoSquare| which is used otherwise. + }\end{DescribeGothamOption} + + \begin{DescribeGothamOption}{progressbar style} + {rectangle, rounded box, moving circle, fixed circle}{rectangle}{ + Setting how the progressbar should appear. + |rectangle| option is using sharp rectangle for the progressbar, while |rounded box| is using rounded box and adds the percentage of progression at its right. + |moving circle| and |fixed circle| are concerning the option |progressbar position=circle| only. + |moving circle| add the number of the frame in a circle moving (following) the progression of the bar, while |fixed circle| put this framenumber constantly at the right of the circular progressbar. + }\end{DescribeGothamOption} + + \begin{DescribeGothamOption}{progressbar advancement} + {tlbr, brlt}{tlbr}{ + Defines in which direction the progressbar should evolve. + |tlbr| is the shortcut for: starting from the top left corner, it goes bottom then right, ie. anti-clockwise. + |brtl| is the shortcut for: starting from the bottom right corner, it goes top then left, ie. clockwise. + }\end{DescribeGothamOption} + + \begin{DescribeGothamOption}{progressbar mfn} + {on, off}{off}{ + Enable or disable the display of the mini frame navigation bar within the progressbar. + }\end{DescribeGothamOption} + + +\subsection{Setup all the options} + \begin{lstlisting} + \gothamset{ + % from font theme + format title, shape title, + format subtitle, shape subtitle, + format frametitle, shape frametitle, + format framesubtitle, shape framesubtitle, + format part, shape part, + format section, shape section, + format subsection, shape subsection, + % from color theme + background, + block, + colorset, + % from inner theme + title page, + watermark template, watermark default, + standout template, standin template, + standout BG template, standin BG template, + partframe template, partframe default, + sectionframe template, sectionframe default, + subsectionframe template, subsectionframe default, + subsubsectionframe template, subsubsectionframe default, + tocframe template, + parttocframe template, parttocframe default, + sectiontocframe template, sectiontocframe default, + subsectiontocframe template, subsectiontocframe default, + %subsubsectiontocframe template, subsubsectiontocframe default, + % from outer theme + sidebar canvas right template, sidebar canvas left template, + edging default, + frametitle template, framesubtitle template, frametitle continuation template, + numbering, + rotateFooter default, + footer template, + mini frames shape, mini frames bundle, mini frames compress, mini frames nav spreading, + progressbar position, progressbar style, progressbar advancement, progressbar mfn, + } + \end{lstlisting} + + +\subsection{Frame options} + Frame options are affecting the templates used on the current frame through the following syntax: + \begin{lstlisting} + \begin{frame}[option] ... \end{frame} + \end{lstlisting} + Below a description of the different frame options brought by \themename{}. + + \DescribeOption{noBGC} + Apply an empty |background canvas| template. + + \DescribeOption{watermark} + \DescribeOption{nowatermark} + Apply (with |watermark|) or deactivated (|nowatermark| when \lstinline|\gothamset{watermark default=on}| was given) the |background| template, through %\\ + \lstinline|\defbeamertemplate{background}{watermark/<your-name>}{<your-def>}| and %\\ + \lstinline|\gothamset{watermark template=<your-name>}|. + + \DescribeOption{standout} + \DescribeOption{standin} + Apply the |standin| (and |standout| respectively) templates through the definition + \lstinline|\defbeamertemplate{standin}{<your-name>}{<your-def>}| and the option \lstinline|\gothamset{standin BG template=<your-name>}|. + + \DescribeOption{toc} + Appy the |toc| template defined by \lstinline|\gothamset{tocframe template=<your-name>}|. + + \DescribeOption{edging} + \DescribeOption{noedging} + Apply (with |edging|) or deactivated (|noedging| when \lstinline|\gothamset{edging default=on}| was given) the |sidebar canvas left| (and right respectively) template, through + \lstinline|\defbeamertemplate{sidebar canvas left}{default/<your-name>}{<your-def>}| (and right) + and the option + \lstinline|\gothamset{sidebar canvas left template=<your-name>}| (and right). + + \DescribeOption{nologo} + \DescribeOption{nofootline} + \DescribeOption{nofooter} + Apply empty |logo| (and |footline|, |footer| respectively) templates. + This can be convenient when extra space is needed. + \vspace{1em} + + \DescribeOption{rotateFooter} + \DescribeOption{noRotateFooter} + Enable or disable the rotation of the elements in the |footer|. + This can be convenient when extra space is needed in 16/9 mode especially. + + \DescribeOption{part} + \DescribeOption{section} + \DescribeOption{subsec} + \DescribeOption{subsubsec} + Apply \lstinline|\usebeamertemplate{part frame}|, (|section frame|, |subsection frame| and |subsubsection frame| respectively) templates. + This makes more sense for internal use, but can be reused everywhere else. + \vspace{2em} + + \DescribeOption{tocpart} + \DescribeOption{tocsec} + \DescribeOption{tocsubsec} + \DescribeOption{tocsubsubsec} + Apply \lstinline|\usebeamertemplate{toc part frame}|, (|toc section frame|, |toc subsection frame| and |toc subsubsection frame| respectively) templates. + This makes more for internal use, but can be reused everywhere else. + \vspace{1em} + + +%% ------------------------------------ +\subsection{Commands for Customization} + \themename{} defines some commands that can be used as hooks, ie., that can be redefined when needed. + + \begin{function}{\gothamInstituteLogoCircle[1][4ex]} + \begin{arguments} + \item |height| of the picture. + \end{arguments} + Command to include the circular logo of your institute in the frametitle when using \lstinline|\gothamset{progressbar position=circlehead}|. + For example, you redefine this command through: + \begin{lstlisting}[gobble=6] + \renewcommand{\gothamInstituteLogoCircle}[1][4ex]{ + \includegraphics[height=#1]{<your-logo-circular>} + } + \end{lstlisting} + \end{function} + + \begin{function}{\gothamInstituteLogoSquare[1][4ex]} + \begin{arguments} + \item |height| of the picture. + \end{arguments} + Command to include the circular logo of your institute in the frametitle. + For example, you redefine this command through: + \begin{lstlisting}[gobble=6] + \renewcommand{\gothamInstituteLogoSquare}[1][4ex]{ + \includegraphics[height=#1]{<your-logo-square>} + } + \end{lstlisting} + \end{function} + + \begin{function}{\gothamFrameSubtitleSep} + Command defining the separator used between the frametitle and the subtitle. + \end{function} + + \begin{function}{\gothamRightFiligrane, \gothamLeftFiligrane} + Commands that are used by default in the |sidebar canvas right| (and left). + This avoids the redefinition of the whole templates, especially since the |sidebar canvas right| is containing elements by default in Beamer theme (like the |logo|). + \end{function} + + \begin{function}{\gothamtitlepagelogo} + % \begin{arguments} + % \item |height| of the picture. + % \end{arguments} + The command to insert the institute logo(s) on title page. + For example, you redefine this command through: + \begin{lstlisting}[gobble=6] + \renewcommand{\gothamtitlepagelogo}{ + \includegraphics[height=#1]{<your-logo-on-titlepage>} + } + \end{lstlisting} + \end{function} + + \begin{function}{\gothamtitlepagebg} + % \begin{arguments} + % \item |height| of the picture. + % \end{arguments} + The command to insert the background title page. + For example, you redefine this command through: + \begin{lstlisting}[gobble=6] + \renewcommand{\gothamtitlepagebg}{ + \includegraphics[height=#1]{<your-background-on-titlepage>} + } + \end{lstlisting} + \end{function} + + \begin{function}{\partContentName, \secContentName, \subsecContentName} + % \begin{arguments} + % \item |height| of the picture. + % \end{arguments} + The command to change the title of frames containing part's (or section or subsection) table of contents. + For example, you redefine this command through: + \begin{lstlisting}[gobble=6] + \renewcommand{\partContentName}{Part's agenda} + \end{lstlisting} + \end{function} + + \begin{function}[added = 2025-01-06]{\partpageOptions, \sectionpageOptions, \subsectionpageOptions, \subsubsectionpageOptions} + % \begin{arguments} + % \item |height| of the picture. + % \end{arguments} + The commands to change the options of frames containing part's title (or section or subsection) at its start. + For example, you redefine this command through: + \begin{lstlisting}[gobble=6] + \renewcommand{\partpageOptions}{plain} + \end{lstlisting} + \end{function} + + \begin{function}[added = 2025-01-06]{\partpageTocOptions, \sectionpageTocOptions, \subsectionpageTocOptions}%, \subsubsectionpageTocOptions + % \begin{arguments} + % \item |height| of the picture. + % \end{arguments} + The command to change the options of frames containing part's (or section or subsection) table of contents. + For example, you redefine this command through: + \begin{lstlisting}[gobble=6] + \renewcommand{\partpageTocOptions}{nofooter} + \end{lstlisting} + \end{function} + + \begin{function}[added = 2025-01-06]{\partTocOptions, \sectionTocOptions, \subsectionTocOptions}%, \subsubsectionTocOptions + % \begin{arguments} + % \item |height| of the picture. + % \end{arguments} + The command to change the options for part's (or section or subsection) table of contents at the beginning of this part. + For example, you redefine this command through: + \begin{lstlisting}[gobble=6] + \renewcommand{\sectionTocOptions}{ + currentsection, hideallsubsections + } + \end{lstlisting} + \end{function} + + \begin{variable}{gothamZerosectionframes} + Boolean variable to flag if they are frame in a zeroth section. + This variable helps to adapt the spreading of |mini frames nav| bar. + This variable is automatically set if the spread is set correctly at the beginning of the presention. + If the spreading or the mini frame nav is disable at the zeroth section then reactivated latter, it might create unwanted spreading. + In such situation the variable has to be set manually to correct the spreading. + You change its value with |\booltrue{gothamZerosectionframes}|. + \end{variable} + + \begin{variable}{darkBG, transparentBG} + A boolean variables that are true with the background mode. + It can be useful when you want to apply different codes according to the background you are on. + You can use it as in the following example: + \begin{lstlisting}[gobble=6] + \ifbool{darkBG}{code to apply on dark background}{other code for light or transparent backgrounds} + \end{lstlisting} + \end{variable} + + \begin{function}[updated=2024-11-11]{\gothamHookFooter} + % \begin{arguments} + % \item |height| of the picture. + % \end{arguments} + The command to add elements (like a logo) in the footer without redefining it completely. + For example, you redefine this command through: + \begin{lstlisting}[gobble=6] + \renewcommand{\gothamHookFooter}{ + \usebeamertemplate{instituteLogo} + } + \end{lstlisting} + \end{function} + + \begin{function}[updated=2024-11-11]{\gothamHookPostColorBGSet} + % \begin{arguments} + % \item |height| of the picture. + % \end{arguments} + The command to change the colors that are related to the background color setting (ie. frametitle, standin, standout and titlepage). + For example, you redefine this command through: + \begin{lstlisting}[gobble=6] + \renewcommand{\gothamHookPostColorBGSet}{ + \colorlet{colorFrametitle}{yourColor} + \colorlet{colorStandout}{yourColor} + \colorlet{colorStandin}{yourColor} + \colorlet{colorTitlepage}{yourColor} + \setbeamercolor{frametitle}{fg=yourRed, bg=} + } + \end{lstlisting} + \end{function} + + +\subsection{Color Customization} + The included \themename color theme is used by default, but its colors can be easily changed to suit your tastes. + All of the theme's styles are defined in terms of three Beamer colors: + \begin{itemize} + \item |normal text| (dark fg, light bg) + \item |alerted text| (colored fg, should be visible against dark or light) + \item |example text| (colored fg, should be visible against dark or light) + \end{itemize} + + An easy way to customize the theme is to redefine these colors using + \begin{lstlisting} + \setbeamercolor{ ... }{ fg= ... , bg= ... } + \end{lstlisting} + in your preamble. + For greater customization, you can redefine any of the other stock Beamer colors. + In addition to the stock colors the theme defines a number of \themename specific colors, which can also be redefined to your liking. + + \begin{lstlisting} + \setbeamercolor{progress bar}{ ... } + \setbeamercolor{title separator}{ ... } + \setbeamercolor{progress bar in head/foot}{ ... } + \setbeamercolor{progress bar in section page}{ ... } + \end{lstlisting} + + +\subsection{Font Customization} + The default font for \themename is |Fira|. + This can be easily changed using the standard font selection commands of the \textsf{fontspec} package. + So if you prefer, for example, the \href{http://font.ubuntu.com}{|Ubuntu|} font family, just add the following two commands after loading the \themename theme. + + \begin{lstlisting} + \setsansfont{Ubuntu} + \setmonofont{Ubuntu Mono} + \end{lstlisting} + + If you are expecting to present in a large room or with an underpowered projector, you may want to change the font to a heavier weight of Fira to maximize readability. + + \begin{lstlisting} + \setsansfont[BoldFont={Fira Sans SemiBold}]{Fira Sans Book} + \end{lstlisting} + + +\subsubsection{Old style figures} + The regular \textsf{fontspec} mechanism for changing glyph appearance also applies to this theme. + If you want to have old style figures in the text but regular lined figures for math, you could add the following to your preamble: + \begin{lstlisting} + \usefonttheme{professionalfonts} % required for mathspec + \usepackage{mathspec} + \setsansfont[BoldFont={Fira Sans}, + Numbers={OldStyle}]{Fira Sans Light} + \setmathsfont(Digits)[Numbers={Lining, Proportional}]{Fira Sans Light} + \end{lstlisting} + + +% \subsection{Backgrounds available} +% xx + + +\subsection{Length Customization} + \begin{variable}{\gothamFrametitleToppading, + \gothamFrametitleBottompading, + \gothamFrametitleLeftpading, + \gothamFrametitleRightpading} + Lengths controling the padding around the frametitle. + \end{variable} + + \begin{variable}{\gothamFramesubtitleStrutend} + Lengths controling the padding around the frametitle. + \end{variable} + + \begin{variable}{\sidebarRightHOffset, \sidebarLeftHOffset} + Length controling the horizontal and vertical offset in order to position |\gothamRightFiligrane| (respectively |\gothamLeftFiligrane|) when using the default sidebar canvas (right and left) from \themename. + \end{variable} + + \begin{variable}{\gothamFootlineRuleLeftPadding, \gothamFootlineRuleHeight, \gothamFootlineRuleLength} + |\gothamFootlineRuleLeftPadding| is controlling the horizontal space between the left border of the page and the left side of the rule. + |\gothamFootlineRuleHeight| controls the height and | \gothamFootlineRuleLength| the length of the rule used to delimit the footer. + \end{variable} + + \begin{variable}[updated=2024-11-11]{\gothamFootlineHRightOffset, \gothamFootlineVOffset, \gothamFootlineHeight, \gothamFootlineDepth} + |\gothamFootlineHRightOffset| is controlling the horizontal space between the right border of the page and the side of the footline. + |\gothamFootlineVOffset| is controlling space between to bottom of the text (or the footnote) and the footline. + |\gothamFootlineHeight| and |\gothamFootlineDepth| are controlling the height and depth of the footline baseline. + \end{variable} + + \begin{variable}{\gothamLeftFooterPadding, \gothamRightFooterPadding, \gothamFooterHOffset} + |\gothamLeftFooterPadding| is controlling the horizontal space between the left border of the page and the side of the footer. + |\gothamRightFooterPadding| is controlling the horizontal space between the right the footer and the page number. + |\gothamFooterHOffset| is controlling the horizontal space between the footer and the bottom of the page (or the progressbar). + \end{variable} + + \begin{variable}{\gothamHposLeftRotFooter, \gothamHposRightRotFooter, \gothamVposLeftRotFooter, \gothamVposRightRotFooter} + Lengths that are controlling the horizontal and vertical positioning of the left and right elements of the rotated footer. + \end{variable} + + \begin{variable}{\gothamProgressCircHeight, \gothamCounterCircleRadius, \gothamProgressCircBorderWidth} + Lengths controlling the aspect of |progress circle|. + |\gothamProgressCircHeight| is controlling the inner height of the circle (related to its diameter). + |\gothamCounterCircleRadius| is controlling the size of the counter circle containing the frame number. + |\gothamProgressCircBorderWidth| is controlling width of the progress circle. + \end{variable} + + \begin{variable}{\gothamProgressHeadFootLineheight} + |\gothamProgressHeadFootLineheight| is controlling the height of the progress bar in "normal" frames (or its width when it is put in side bars). + \end{variable} + + \begin{variable}{\gothamCircleNumberingVshift, \gothamCircleNumberingHshift} + Lengths controlling the vertical and horizontal positioning of the |circle| frame numbering template. + \end{variable} + + \begin{variable}{\sectionhoffset, \gothamProgressSectionHeight} + |\sectionhoffset| controls the horizontal offset of the (section title + progress bar) block. + Can be useful when extra stuff wants to be displayed on sides of the block. + The default value is 0pt. + + |\gothamProgressSectionHeight| controls the height of the progress bar used in part/section/subsection/subsubsection frames (when progress bar are used). + \end{variable} + + \begin{figure}[htp] + \centering + \fbox{\includegraphics[width=0.7\textwidth]{gotham-layout.pdf}} + \caption{The layout used by \themename.} + \end{figure} + + +%% ------------------------------------ +\section{Tips \& Tricks} +\subsection{Backup Slides} + Speakers will often include extra slides at the end of their presentation to refer to during audience questions. + One easy way to do this is to include the \verb|appendixnumberbeamer| package in your preamble and call \verb|\appendix| before your backup slides. + + \themename will automatically turn off slide numbering for slides in the appendix. + + +\subsection{Sources of inspiration} + Many Beamer themes have been used as sources of inspiration to build \themename{}: + \begin{itemize} + \item \url{https://github.com/matze/mtheme} for dark/light theme and standout page. + \item \url{https://github.com/hamaluik/Beamer-Theme-Execushares} and + \\ \url{https://github.com/pcafrica/focus-beamertheme} for titlepage and sectionpage. + \item \url{https://github.com/LukasPietzschmann/awesome-beamer} for titlepage. + \item \url{https://github.com/luistar/unina-beamer/tree/master} and + \\ \url{https://github.com/jkjaer/aauLatexTemplates/tree/master/aauBeamer/aausimple} for circlehead progress bar. + \item \url{https://github.com/povanberg/flux-beamer} for toc. + \item \url{https://github.com/fliptanedo/FlipBeamerTheme} for numbering circled fraction. + \item \url{https://gitlab.com/RomainNOEL/latex3_template_pkg} for LateX3 template. + \end{itemize} + + +%% ------------------------------------ +\section{Known Issues} + +\subsection{Title formats} +\label{sec:titleformats} + Be aware that not every font supports small caps, so the |smallcaps| or |upper| options may not work if you use a font other than |Fira Sans|. + In particular, the Computer Modern sans-serif typeface, which is used when \themename is compiled with pdf\LaTeX, does not have a small-caps variant. + + The title format options |upper| and |smallcaps| are quite nice from an aesthetic point of view, but their use of |\MakeLowercase| and + |\MakeUppercase| can cause unexpected problems. + For example: + \begin{itemize} + \item Some commands, like |\\|, do not work inside |\MakeLowercase| and |\MakeUppercase|. + (See \href{https://github.com/matze/mtheme/issues/125}{\#125}) + \item Only alphabetic characters are affected by |\MakeLowercase|, so numerals and punctuation remain at full height. + This can spoil some of the aesthetic benefits of |upper|. + (See \href{https://github.com/matze/mtheme/issues/33}{\#33}) + \item |\MakeLowercase| and |\MakeUppercase| apply to math mode and |\scshape| does not. + This can easily introduce mathematical errors that are hard to catch. + \item It is impossible to typeset symbols which are encoded as uppercase letters in a different font. + In particular, |\mathbb| and |\mathcal| letters will be replaced by other math glyphs. + (See \href{https://github.com/matze/mtheme/issues/153}{\#153}) + \end{itemize} + + The |smallcaps| and |upper| options are safe to use if your titles contain only alphabetic characters and do not require the expansion of any macros. + + +\subsection{Interactions with other color themes} + \themename can be used along with any other Beamer color theme, such as |crane| or |seahorse|. + If you wish to do this, it is usually best to include the \themename subpackages individually so the \themename color theme is never loaded. + This will prevent conflicts between the \themename color theme and your preferred theme. + + For example, overriding the color theme as follows may not work as expected because |\usetheme{gotham}| loads the \themename color theme, which defines a relationship between the frametitle background and the primary palette of the theme. + Since |seahorse| assumes a different relationship between its palettes, the result is a grey, rather than periwinkle, frametitle background. + + \begin{lstlisting} + \usetheme{gotham} + \usecolortheme{seahorse} + \end{lstlisting} + + The correct colors are chosen if the \themename outer, inner, and font themes are loaded seperately: + \begin{lstlisting} + \useoutertheme{gotham} + \useinnertheme{gotham} + \usefonttheme{gotham} + \usecolortheme{seahorse} % or your preferred color theme + \end{lstlisting} + + Please note that \themename may not use all the colors defined in your favourite Beamer color theme. + In particular, \themename does not set a background color for the title; this will cause issues when using color themes like |whale| which set a white foreground for the title. + + +\subsection{Notes on second screen} + If you use the |[show notes on second screen]| option built into Beamer and compile with XeLaTeX, text on slides following the first section slide may be rendered in white instead of the regular color. + This is due to \href{http://tex.stackexchange.com/questions/288408/}{a bug} in Beamer or XeLaTeX itself. + You can work around it either by compiling with LuaTeX or by adding the following code to your preamble to reset the text color on each slide. + + \begin{lstlisting} + \makeatletter + \def\beamer@framenotesbegin{% at beginning of slide + \usebeamercolor[fg]{normal text} + \gdef\beamer@noteitems{}% + \gdef\beamer@notes{}% + } + \makeatother + \end{lstlisting} + + +\subsection{Standout frames with labels} + Because the |standout| frame option creates a group to restrict the colour change to a single slide, labels defined after calling |standout| will stay local to the group. + In other words, the following may result in a ``label undefined'' error. + \begin{lstlisting} + \begin{frame}[standout, label=conclusion]{Conclusion} + Awesome slide + \end{frame} + \end{lstlisting} + + To fix this problem, change the order of the keys in the frame. + \begin{lstlisting} + \begin{frame}[label=conclusion, standout]{Conclusion} + Awesome slide + \end{frame} + \end{lstlisting} + + This error can be unwittingly triggered if you export your slides from Emacs Org mode, which automatically adds labels after frame options. + Alex Branham \href{https://github.com/matze/mtheme/issues/203}{offers} the following solution for Org mode users, using |org-set-property|. + + \begin{lstlisting} + * Start of a frame + :PROPERTIES: + :BEAMER_opt: label=conclusion,standout + :END: + \end{lstlisting} + + +\subsection{Standout frames with Pandoc} + With Pandoc versions prior 1.17.2 it was not possible to create standout frames because Pandoc only supported a specific list of frame attributes thus ignoring additional attributes such as |{.standout}|. + + +\subsection{Other issues} + \begin{itemize} + \item |enumitem| is not working with Beamer. + \end{itemize} + + +\subsection*{Todo} + List of thing that could be improved (any volunteer welcome): + \begin{itemize} + \item Reduce the number of @ . + \item Rename a lot of length with gotham at the beginning of their name. + \item Turn internal length into \_dim. + \item Improve documentation. + \item Add a hexagonal, wavy and add lengths on the blueprint layout backgrounds. + \item Remove colors from tests inner and outer. + \item Replace the |\setbeamertemplate{yy}[default/xx]| by |\__gotham_inner_set_template:nn{title~page}| or merge them because the default values in dict/template are interesting but |\__gotham_inner_set_template| are simpler. + \item add colorset more "blue-ish", "green-ish" ... from colorA etc. + \item add Gotham to lists of Awesome Beamer themes. + \end{itemize} + + +\section{License} + \themename is licensed under the terms of the + % \href{https://creativecommons.org/licenses/by-sa/4.0/}{Creative Commons Attribution-ShareAlike 4.0} + \href{https://www.latex-project.org/lppl/lppl-1-3c/}{LaTeX project public license (LPPL) 1.3c} + license. + + +\end{document} +% EoF + + +% \begin{documentation} +% \begin{macro|function|variable}[updated|added=2025-02-25]{\nameMacro} +% \begin{syntax} +% \cs{nameMacro}\oarg{option1=value1, ...}\marg{tempkg} +% \textrm{where the options are (default marked as} \defopt{default}\textrm{):} +% \meta{footer template} = \oarg{\defopt{tempkg} \textbar ... } +% \end{syntax} +% Description of |nameMacro| which xxx. +% \end{macro|function|variable} +% \end{documentation} +%%%% +% \begin{implementation} +% \begin{macro|function|variable}[updated|added=2025-02-25]{\nameMacro} +% \begin{arguments} +% \item |width| Name of the option to add, this name should also correspond to the name of the environment followed by the suffix 'env'. +% \end{arguments} +% Description +% \changes{v1.0.1}{2025-02-25}{original version} +% \UnitTested % NOT FOR VARIABLES OF FUNCTIONS +% \TestFiles{tempkg-test-xxx} % NOT FOR VARIABLES +% \begin{macrocode} +%% MY CODE +% \end{macrocode} +% \end{macro|function|variable} +% \end{implementation} + + + +% \begin{implementation} +% \begin{macro}[updated|added=2025-02-25]{\nameMacro} +% \begin{arguments} +% \item |width| Name of the option to add, this name should also correspond to the name of the environment followed by the suffix 'env'. +% \end{arguments} +% Description +% \changes{v1.0.1}{2025-02-25}{original version} +% \UnitTested % NOT FOR VARIABLES OF FUNCTIONS +% \TestFiles{tempkg-test-xxx} % NOT FOR VARIABLES +% \begin{macrocode} +%% MY CODE +% \end{macrocode} +% \end{macro} +% \end{implementation}
\ No newline at end of file diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-example169transp.pdf b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-example169transp.pdf Binary files differnew file mode 100644 index 0000000000..56c726c6e2 --- /dev/null +++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-example169transp.pdf diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-example169transp.tex b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-example169transp.tex new file mode 100644 index 0000000000..29155f4c1b --- /dev/null +++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-example169transp.tex @@ -0,0 +1,77 @@ +\documentclass[aspectratio=169, 10pt]{beamer} +\usetheme{gotham} + + \gothamset{ + numbering= framenumber, + % tocframe template= gotham simple, + parttocframe default=off, + sectiontocframe default=off, + subsectiontocframe default=off, + } + + \usepackage{standalone} + \usepackage{tikz} + \usepackage{pgfplots} + \usepackage{tabularray} % Typeset tabulars and arrays (contains equivalent of longtable, booktabs and dcolumn at least) + \UseTblrLibrary{booktabs} % to load extra commands from booktabs + \usepackage{changepage} + \usepackage{appendixnumberbeamer} + \newcommand{\famName}[1]{\textsc{#1}} + \usepackage{minted} + \definecolor{codeback}{rgb}{0.90,0.91,0.92} + \definecolor{codebackdark}{rgb}{0.10,0.11,0.12} + \usemintedstyle{emacs} + \setmintedinline[tex]{bgcolor=codeback} + \setminted[tex]{ + autogobble, + bgcolor=codeback, + tabsize=4, + extrakeywords={usetheme,institute,maketitle,subtitle,gothamset,colorlet,setbeamercolor,plain,defbeamertemplate} + } + + \usepackage[scale=2]{ccicons} + % \usepackage{pgfplots} + \usepgfplotslibrary{dateplot} + + \newcommand{\themename}{\textbf{\textsc{Gotham}}} + + +\title[]{Gotham} +\subtitle{A Modern, versatile and extendable theme for Beamer} +\date[]{\today} +\author[]{Romain NOËL} +\institute{Center for modern beamer themes} +% \titlegraphic{\hfill\includegraphics[height=1.5cm]{logo.pdf}} + + +\begin{document} + +\maketitle + + \begin{frame}[toc]{Table of contents}% + \tableofcontents%[hideallsubsections] + \end{frame} + + +%%%%%%%%%%%%%%%%%%%% +%%% MAINMATTER %%% +%%%%%%%%%%%%%%%%%%%% +\input{section-Beamer.tex} + +\input{section-Gotham.tex} + +\input{section-Conclusion.tex} + + +\appendix + + \begin{frame}[fragile]{Backup slides} + Sometimes, it is useful to add slides at the end of your presentation to refer to during audience questions. + + The best way to do this is to include \verb|\usepackage{appendixnumberbeamer}| in your preamble and call \verb|\appendix| before your backup slides. + + \themename{} will automatically turn off slide numbering and progress bars for slides in the appendix. + \end{frame} + + +\end{document}
\ No newline at end of file diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-example43dark.pdf b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-example43dark.pdf Binary files differnew file mode 100644 index 0000000000..77c68978b8 --- /dev/null +++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-example43dark.pdf diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-example43dark.tex b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-example43dark.tex new file mode 100644 index 0000000000..e072f9fe77 --- /dev/null +++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-example43dark.tex @@ -0,0 +1,78 @@ +\documentclass[aspectratio=43, 10pt]{beamer} +\usetheme{gotham} + + \gothamset{ + background=dark, + numbering= framenumber, + % tocframe template= gotham simple, + parttocframe default=off, + sectiontocframe default=off, + subsectiontocframe default=off, + } + + \usepackage{standalone} + \usepackage{tikz} + \usepackage{pgfplots} + \usepackage{tabularray} % Typeset tabulars and arrays (contains equivalent of longtable, booktabs and dcolumn at least) + \UseTblrLibrary{booktabs} % to load extra commands from booktabs + \usepackage{changepage} + \usepackage{appendixnumberbeamer} + \newcommand{\famName}[1]{\textsc{#1}} + \usepackage{minted} + \definecolor{codeback}{rgb}{0.90,0.91,0.92} + \definecolor{codebackdark}{rgb}{0.10,0.11,0.12} + \usemintedstyle{emacs} + \setmintedinline[tex]{bgcolor=codeback} + \setminted[tex]{ + autogobble, + bgcolor=codeback, + tabsize=4, + extrakeywords={usetheme,institute,maketitle,subtitle,gothamset,colorlet,setbeamercolor,plain,defbeamertemplate} + } + + \usepackage[scale=2]{ccicons} + % \usepackage{pgfplots} + \usepgfplotslibrary{dateplot} + + \newcommand{\themename}{\textbf{\textsc{Gotham}}} + + +\title[]{Gotham} +\subtitle{A Modern, versatile and extendable theme for Beamer} +\date[]{\today} +\author[]{Romain NOËL} +\institute{Center for modern beamer themes} +% \titlegraphic{\hfill\includegraphics[height=1.5cm]{logo.pdf}} + + +\begin{document} + +\maketitle + + \begin{frame}[toc]{Table of contents}% + \tableofcontents%[hideallsubsections] + \end{frame} + + +%%%%%%%%%%%%%%%%%%%% +%%% MAINMATTER %%% +%%%%%%%%%%%%%%%%%%%% +\input{section-Beamer.tex} + +\input{section-Gotham.tex} + +\input{section-Conclusion.tex} + + +\appendix + + \begin{frame}[fragile]{Backup slides} + Sometimes, it is useful to add slides at the end of your presentation to refer to during audience questions. + + The best way to do this is to include \verb|\usepackage{appendixnumberbeamer}| in your preamble and call \verb|\appendix| before your backup slides. + + \themename{} will automatically turn off slide numbering and progress bars for slides in the appendix. + \end{frame} + + +\end{document}
\ No newline at end of file diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-exampleSimple.pdf b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-exampleSimple.pdf Binary files differnew file mode 100644 index 0000000000..cedf317dda --- /dev/null +++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-exampleSimple.pdf diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-exampleSimple.tex b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-exampleSimple.tex new file mode 100644 index 0000000000..ae9db4f712 --- /dev/null +++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-exampleSimple.tex @@ -0,0 +1,8 @@ +\documentclass{beamer} +\usetheme{gotham} + +\begin{document} + \begin{frame}{Frame With a Title} + This is a simple frame. + \end{frame} +\end{document}
\ No newline at end of file diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-layout.pdf b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-layout.pdf Binary files differnew file mode 100644 index 0000000000..1965c272c9 --- /dev/null +++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-layout.pdf diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-logo.pdf b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-logo.pdf Binary files differnew file mode 100644 index 0000000000..96d82f5bf3 --- /dev/null +++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-logo.pdf diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-safetybox.pdf b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-safetybox.pdf new file mode 100644 index 0000000000..acb1efd917 --- /dev/null +++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-safetybox.pdf @@ -0,0 +1,70 @@ +%PDF-1.5 +%µí®û +4 0 obj +<< /Length 5 0 R + /Filter /FlateDecode +>> +stream +xœ•AJ„1…÷=Å»@cÒ¤ýÓÂ,F—âBTq3.æú¦ÿLe`DB +IÞ—ä 8^–¥VYzoxÙ¥}¦ÎÒ›àþ7ÏŒ÷¯$d²hÁ1î’à#=>Eã56ØCVä)h|V•ªéðML{ú1]ÉŠ“šÁŒ¤´7òZ Þ©™\Zµþ 3‰UˆŠ!X¨(º³Oõ•Ä¬Ò8öÍÅÊ<NG!Wk±é¬„aÅd縶ÑZ{1v8%òêŠ9>× ÿAª‘¹#‡KÜ}0g¦¨’³œ™Ûô
Óqa$ +endstream +endobj +5 0 obj + 231 +endobj +3 0 obj +<< + /ExtGState << + /a0 << /CA 1 /ca 1 >> + >> +>> +endobj +2 0 obj +<< /Type /Page % 1 + /Parent 1 0 R + /MediaBox [ 0 0 453.542999 255.117996 ] + /Contents 4 0 R + /Group << + /Type /Group + /S /Transparency + /I true + /CS /DeviceRGB + >> + /Resources 3 0 R +>> +endobj +1 0 obj +<< /Type /Pages + /Kids [ 2 0 R ] + /Count 1 +>> +endobj +6 0 obj +<< /Producer (cairo 1.16.0 (https://cairographics.org)) + /Creator <FEFF0049006E006B0073006300610070006500200031002E0031002E00320020002800680074007400700073003A002F002F0069006E006B00730063006100700065002E006F007200670029> + /CreationDate (D:20240630140843+02'00) +>> +endobj +7 0 obj +<< /Type /Catalog + /Pages 1 0 R +>> +endobj +xref +0 8 +0000000000 65535 f +0000000649 00000 n +0000000417 00000 n +0000000345 00000 n +0000000015 00000 n +0000000323 00000 n +0000000714 00000 n +0000000997 00000 n +trailer +<< /Size 8 + /Root 7 0 R + /Info 6 0 R +>> +startxref +1049 +%%EOF diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-user-cmds.pdf b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-user-cmds.pdf Binary files differnew file mode 100644 index 0000000000..03229dc762 --- /dev/null +++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-user-cmds.pdf diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham.dtx b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham.dtx new file mode 100644 index 0000000000..e88a13ea34 --- /dev/null +++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham.dtx @@ -0,0 +1,9159 @@ +% \iffalse meta-comment +% +% Copyright (C) 2023-20** by Romain NOEL <romainoel@free.fr> +% ----------------------------------------------------------- +% +% This file 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 in: +% +% http://www.latex-project.org/lppl.txt +% +% and version 1.3c or later is part of all distributions of LaTeX +% version 2006/05/20 or later. +% +% \fi +% +% \iffalse +%<*driver> +\ProvidesFile{gotham.dtx} +%</driver> +%<*internal> +\input expl3-generic \relax +%</internal> +%<class>\NeedsTeXFormat{LaTeX3e} +%<package>\ProvidesExplPackage{beamerthemegotham}{2025-02-11}{1.2.1.c}{A modern, minimal-ish, versatile and extendable yet robust theme for Beamer} +%<author>Romain NOEL</author> +%<maintainer>Romain NOEL</maintainer> +%<url>https://gitlab.com/RomainNOEL/beamertheme-gotham</url> +%<desc> +% A modern, minimal-ish, versatile and extendable yet robust theme for Beamer. It uses l3build system to both build and verify (Test-Driven Development) the delivered code. +% </desc> +% +%<*driver> +\documentclass{l3doc} + \usepackage[T1]{fontenc} + \usepackage{pdfpages} + \usepackage{standalone} + % \usepackage{gotham} + % \usepackage{readprov} + % \ReadPackageInfos{beamerthemegotham} + \edef\GothamVersion{v1.2.1.c} %{\fileversion} + \edef\GothamDate{2025-02-11} %{\filedate} + + \usepackage{parskip} + \usepackage{setspace} + \usepackage{xspace} + \onehalfspacing + + \usepackage{xcolor} + \definecolor{tPrim}{HTML}{00707F} % Green-Blue + \definecolor{tSec}{HTML}{5FA4B0} % Green-Blue light + \definecolor{tAccent}{HTML}{F07F3C} % Orange + \definecolor{tGrey}{HTML}{E6E6E1} % Grey-Beige + + % \usepackage{fancyvrb} + \usepackage{listings} + \lstset{% + language=[LaTeX]{TeX}, + basicstyle=\ttfamily, + keywordstyle=\color{tPrim}\bfseries, + commentstyle=\color{tSec}, + stringstyle=\color{tSec}, + backgroundcolor=\color{white}, + numbers=none, + numberstyle=\tiny\ttfamily, + stepnumber=2, + showspaces=false, + showstringspaces=false, + showtabs=false, + frame=none, + framerule=1pt, + tabsize=2, + rulesep=5em, + captionpos=b, + breaklines=true, + breakatwhitespace=false, + framexleftmargin=0em, + framexrightmargin=0em, + xleftmargin=0em, + xrightmargin=0em, + aboveskip=1em, + belowskip=1em, + morekeywords={usetheme,institute,maketitle,@gotham@titleformat,% + plain,gothamset,setbeamercolor,defbeamertemplate}, + } + \lstMakeShortInline| + + \usepackage{hyperref} + + \setlength{\fboxsep}{0pt}% + \usepackage{subcaption} % For subfigures + \usepackage{cleveref} % for references + + \providecommand{\defopt}[1]{\underline{#1}}%{default: #1}%{\underline{#1}} + \NewDocumentEnvironment{DescribeGothamOption}{ o m m m }{ + \DescribeOption{#2} % from l3doc + \IfNoValueTF{#1}{ + % true => left empty intentionally + }{ + \DescribeOption{% add extra info like added or updated dates to mimic 'function' env. + \rule[2.5ex]{\linewidth}{0.3pt} + \\[-3.5ex] + {\scriptsize #1 \hfill\ } + } + } + \begin{minipage}[t]{\textwidth} + \textit{\textbf{\textcolor{tSec}{#3}}}\dotfill\,\defopt{#4}\par + \begingroup + \vspace{0.5em} + }{ + \par + \endgroup + \end{minipage} + } + + + %% ===================================================================== + \title{\textsc{Gotham}\\ A modern, minimal-ish, versatile and extendable theme for Beamer} + \author{Romain NOEL \\ \url{romainoel@free.fr}} + \date{\GothamVersion~---~\GothamDate} + + \providecommand{\themename}{\textbf{\textsc{Gotham}}\xspace} + + %% ===================================================================== + + + %% l3doc commands + \EnableCrossrefs + \CodelineIndex + \RecordChanges +\begin{document} +\input{gotham-doc.tex} + \clearpage +%\section{A simple example} +% \includepdf[pages=-, +% pagecommand=\section{A simple example}, +% width=0.7\textwidth] +% {gotham-exampleSimple.pdf} +\section{Commands description for users} + \EnableDocumentation + \DisableImplementation + \DocInput{\jobname.dtx} + \newpage +\section{Package implementation for developers} + \EnableImplementation + \DisableDocumentation + \GetFileInfo{\jobname.sty} + \DocInput{\jobname.dtx} + \PrintChanges +\end{document} +%</driver> +% +%<*devImpl> +\documentclass{l3doc} + \usepackage[T1]{fontenc} + \usepackage{pdfpages} + \usepackage{standalone} + %\usepackage{gotham} + \providecommand{\defopt}[1]{\underline{#1}} + % l3doc commands + \EnableCrossrefs + \CodelineIndex + \RecordChanges +\begin{document} +\section{Commands description for users} + \EnableImplementation + \DisableDocumentation + \DocInput{gotham.dtx} +\end{document} +%</devImpl> +% +% +%<*userCmd> +\documentclass{l3doc} + \usepackage[T1]{fontenc} + \usepackage{pdfpages} + \usepackage{standalone} + %\usepackage{gotham} + \providecommand{\defopt}[1]{\underline{#1}} + % l3doc commands + \EnableCrossrefs + \CodelineIndex + \RecordChanges +\begin{document} +\section{Package implementation for developers} + \EnableDocumentation + \DisableImplementation + \DocInput{gotham.dtx} +\end{document} +%</userCmd> +% +% \fi +% +% +%\begin{implementation} +% \begin{macrocode} +%<*font> +\ProvidesExplPackage{beamerfontthemegotham}{2025-02-11}{1.2.1.c}{gotham font theme} +\RequirePackage{expl3} +% \RequirePackage{xparse} +% \RequirePackage{etoolbox} +\RequirePackage{ifxetex} +\RequirePackage{ifluatex} +% \end{macrocode} +% \end{implementation} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%% FONT %%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% \begin{implementation} +% \begin{variable}{font messages} +% Definition of the messages that are used and reused by font theme. +% \changes{v0.2.0}{2024-01-25}{New} +% \begin{macrocode} +\msg_new:nnn { gotham } { font-not-found } +{ + Could~not~find~font~'#1'.\c_space_tl +} + +\msg_new:nnn { gotham } { fonts-not-available } +{ + No~suitable~fonts~found.~Using~fallback~fonts. +} + +\msg_new:nnn { gotham } { compiler-xe-or-lua } +{ + You~need~to~compile~with~XeLaTeX~or~LuaLaTeX~to~use~the~Fira~fonts. +} +% \end{macrocode} +% \end{variable} +% \end{implementation} + +% \begin{implementation} +% \begin{variable}{\g_gotham_fontsnotfound_int:n} +% Counter for the number of font not found. +% \begin{macrocode} +\int_new:N \g_gotham_fontsnotfound_int +% \end{macrocode} +% \end{variable} +% \end{implementation} + +% \begin{implementation} +% \begin{function}{\checkfont:n} +% \begin{arguments} +% \item Name of the font. +% \end{arguments} +% Command to check if one font exist. +% \TestFiles{gotham-test-035} +% \TestMissing{a isolated unit test would be nice.} +% \begin{macrocode} +\cs_new_protected:Nn \checkfont:n +{ + \fontspec_font_if_exist:nF { #1 } + { + % false: check with regular postfix. + \fontspec_font_if_exist:nF { #1~Regular } + { + % false: raise a warning and increment the number of font not found. + \int_incr:N \g_gotham_fontsnotfound_int + \msg_warning:nnn { gotham } { font-not-found } { #1 } + } + } +} +% \end{macrocode} +% \end{function} +% \end{implementation} + +% \begin{documentation} +% \begin{function}{\iffontsavailable} +% \begin{syntax} +% \cs{iffontsavailable} \marg{list of fonts' names} \marg{True code} \marg{False code} +% \end{syntax} +% If all fonts in \marg{list of fonts' names} are font then \marg{True code} is executed else \marg{False code}. +% \end{function} +% \end{documentation} +% \begin{implementation} +% \begin{function}{\iffontsavailable} +% Command to check if a list of font is available. +% \TestFiles{gotham-test-035} +% \TestMissing{a isolated unit test would be nice.} +% \begin{macrocode} +\providecommand{\iffontsavailable}[3] +{ + \int_zero:N \g_gotham_fontsnotfound_int + \clist_map_function:nN { #1 } \checkfont:n + \int_compare:nTF { \g_gotham_fontsnotfound_int = 0 } + {% True + #2 + }{% False + #3 + } +} +% \end{macrocode} +% \end{function} +% \end{implementation} + +% \begin{implementation} +% \begin{macro}{Load fonts if available} +% If fontspec is loadable (ie. if xelatex or lualatex), then load available fonts, otherwise raise a warning and go on. +% \UnitTested +% \TestFiles{gotham-test-035} +% \begin{macrocode} +\ifboolexpr{bool~{xetex}~or~bool~{luatex}}{ + % if fontspec loaded pass option otherwise load fontspec. + \@ifpackageloaded{fontspec}{ + \PassOptionsToPackage{no-math}{fontspec} + }{ + \RequirePackage[no-math]{fontspec} + } + % + % We search for regular, italic, light, light italic, fonts under the default |Fira Sans| names. + \iffontsavailable{FiraSans-Light.otf, + FiraSans-LightItalic.otf, + FiraSans-Regular.otf, + FiraSans-Italic.otf} + { + \setsansfont[ItalicFont={FiraSans-LightItalic.otf}, + BoldFont={FiraSans-Regular.otf}, + BoldItalicFont={FiraSans-Italic.otf}] + {FiraSans-Light.otf} + \renewcommand{\ttdefault}{lmtt} % Latin Modern Typewriter + }{ + % If this fails, the suffix OT --- used by some Linux distributions --- will be tried. + \iffontsavailable{FiraSans~Light~OT, + FiraSans~LightItalic~OT, + FiraSans~Regular~OT, + FiraSans~Italic~OT} + { + \setsansfont[ItalicFont={Fira~Sans~LightItalic~OT}, + BoldFont={Fira~Sans~Regular~OT}, + BoldItalicFont={Fira~Sans~Italic~OT}] + {Fira~Sans~Light~OT} + \renewcommand{\ttdefault}{lmtt} % Latin Modern Typewriter + }{ + % If this also fails, a warning will be displayed and the standard fonts will be used. + \msg_warning:nn { gotham } { fonts-not-available }% + } + } + % + % We search for regular, mono, and mono bold fonts under the default |Fira Mono| names. + \iffontsavailable{FiraMono-Medium.otf, FiraMono-Bold.otf}{ + \setmonofont[BoldFont={FiraMono-Medium.otf}]{FiraMono-Bold.otf} + }{ + % If this fails, the suffix OT --- used by some Linux distributions --- will be tried. + \iffontsavailable{Fira~Mono~Medium~OT, Fira~Mono~Bold~OT}{ + \setmonofont[BoldFont={Fira~Mono~Medium~OT}]{Fira~Mono~Bold~OT} + \renewcommand{\ttdefault}{lmtt} % Latin Modern Typewriter + }{ + % If this also fails, a warning will be displayed and the standard fonts will be used. + \msg_warning:nn { gotham } { fonts-not-available } + } + } + % + % Add a feature for numbers in tables. + \AtBeginEnvironment{tabular}{ + \addfontfeature{Numbers={Monospaced}} + } +}{ + % If compiled with pdf\LaTeX{}, then apply a dirty patch (that will not do the job but suppress warnings) and raise a warning. + \msg_warning:nn { gotham } { compiler-xe-or-lua } + \DeclareFontShape{OT1}{cmss}{bx}{sc}{<-> cmbcsc10}{} + \DeclareFontShape{OT1}{cmss}{bx}{it}{<->sub*cmss/m/sl}{} +} +% \end{macrocode} +% \end{macro} +% \end{implementation} + +% \begin{implementation} +% \begin{macro}{\setbeamerfont{title}, general font definitions} +% Set all needed font environment variables:shape, size, series. +% Remark: Case is missing. +% \UnitTested +% \TestFiles{gotham-test-035, gotham-test-036} +% \TestMissing{block, caption, description, bibio} +% \begin{macrocode} +\setbeamerfont{title}{size=\Large, series=\bfseries} +\setbeamerfont*{subtitle}{size=\large} +\setbeamerfont{author}{size=\small} +\setbeamerfont{date}{size=\small} + +\setbeamerfont{section~title}{size=\Large, series=\bfseries} +\setbeamerfont{subsection~title}{size=\large, series=\bfseries} +\setbeamerfont{subsubsection~title}{size=\normalsize, series=\bfseries} + +\setbeamerfont{frametitle}{size=\large, series=\bfseries} +\setbeamerfont{frametitleToc}{size=\LARGE, series=\bfseries} +\setbeamerfont{frametitleSection}{size*={60}{1}, series=\bfseries} + +\setbeamerfont{page~number~in~head/foot}{size=\footnotesize} +\setbeamerfont{footline}{size=\scriptsize} + +\setbeamerfont{block~title}{size=\normalsize, series=\bfseries} +\setbeamerfont{block~title~alerted}{size=\normalsize, series=\bfseries} +\setbeamerfont{caption}{size=\small} +\setbeamerfont{caption~name}{series=\bfseries} +\setbeamerfont{description~item}{series=\bfseries} + +\setbeamerfont{bibliography~entry~author}{size=\normalsize, series=\normalfont} +\setbeamerfont{bibliography~entry~title}{size=\normalsize, series=\bfseries} +\setbeamerfont{bibliography~entry~location}{size=\normalsize, series=\normalfont} +\setbeamerfont{bibliography~entry~note}{size=\small, series=\normalfont} +\setbeamerfont{standout}{size=\Large, series=\bfseries} +% \end{macrocode} +% \end{macro} +% \end{implementation} + +% \begin{implementation} +% \begin{function}{\__gotham_title_format:n, titles formats} +% Pre-hooks that will be inserted to control case format of titles in addition with the fonts set. +% \TestFiles{gotham-test-035, gotham-test-036} +% \TestMissing{format of framesubtitle, part and subsection are not tested (and not working) yet.} +% \begin{macrocode} +\def\gotham@titleformat#1{#1} +\def\gotham@subtitleformat#1{#1} +\def\gotham@parttitleformat#1{#1} +\def\gotham@sectiontitleformat#1{#1} +\def\gotham@subsectiontitleformat#1{#1} +\def\gotham@frametitleformat#1{#1} +\def\gotham@framesubtitleformat#1{#1} +% IF ONE DAY: I can patch beamer with expl3, I will use the following commands instead. +% %% \cs_new:Npn \__gotham_unchanged:n #1 {#1} +% %% \cs_new:Npn \__gotham_title_format:n #1 {#1} +% %% \cs_new:Npn \__gotham_subtitle_format:n #1 {#1} +% %% \cs_new:Npn \__gotham_part_title_format:n #1 {#1} +% %% \cs_new:Npn \__gotham_section_title_format:n #1 {#1} +% %% \cs_new:Npn \__gotham_subsection_title_format:n #1 {#1} +% %% \cs_new:Npn \__gotham_frametitle_format:n #1 {#1} +% %% \cs_new:Npn \__gotham_framesubtitle_format:n #1 {#1} +% \end{macrocode} +% \end{function} +% \end{implementation} + +% \begin{implementation} +% \begin{macro}{\beamer@title,\beamer@subtitle,\sectionentry} +% Since, case feature is not available in |setbeamerfont|; to make the uppercase, lowercase and title-case macros work in the title, subtitle, etc., we have to patch the appropriate |beamer| commands that set their values. +% This solution was suggested by Enrico Gregorio in an answer to \href{http://tex.stackexchange.com/questions/112526/}{this StackExchange question}. +% Remark: patchcmd from etoolbox (or other), is not compatible with expl3. +% \UnitTested +% \TestFiles{gotham-test-035, gotham-test-036} +% \TestMissing{format of framesubtitle, part and subsection are not tested (and not working) yet.} +% \begin{macrocode} +\ExplSyntaxOff +\patchcmd{\beamer@title} + {\def\inserttitle{#2}} + {\def\inserttitle{\gotham@titleformat{#2}}} + % {\def\inserttitle{ \__gotham_title_format:n{#2} }} + {} + {\PackageError{beamerfontthemegotham}{Patching~title~failed}\@ehc} +\patchcmd{\beamer@subtitle} + {\def\insertsubtitle{#2}} + {\def\insertsubtitle{{\gotham@subtitleformat{#2}}}} + % {\def\insertsubtitle{ \__gotham_subtitle_format:n{#2} }} + {} + {\PackageError{beamerfontthemegotham}{Patching~subtitle~failed}\@ehc} +\patchcmd{\sectionentry} % beamerbasenavigation.sty l.335 + {\def\insertsectionhead{#2}} + {\def\insertsectionhead{\gotham@sectiontitleformat{#2}}} + {} + {\PackageError{beamerfontthemegotham}{Patching~section~title~failed}\@ehc}% +% +%% NOT WORKING YET! +%% \patchcmd{\subsectionentry} % beamerbasenavigation.sty l.384 +%% {\def\insertsubsectionhead{##5}} +%% {\def\insertsubsectionhead{\gotham@subsectiontitleformat{##5}}} +%% {} +%% {\PackageError{beamerfontthemegotham}{Patching~subsection~title~failed}\@ehc}% +% +\@tempswafalse +\patchcmd{\beamer@section} % beamerbasesection.sty l. 209 + {\def\insertsectionhead{\hyperlink{Navigation\the\c@page}{#1}}} + {\def\insertsectionhead{\hyperlink{Navigation\the\c@page}{\gotham@sectiontitleformat{#1}}}} + % \__gotham_section_title_format:n{#2} + {\@tempswatrue} + {} +\patchcmd{\beamer@section} % beamerbasesection.sty l. 209 + {\edef\insertsectionhead{\noexpand\hyperlink{Navigation\the\c@page}{\unexpanded{#1}}}} + {\edef\insertsectionhead{\noexpand\hyperlink{Navigation\the\c@page}{\noexpand\gotham@sectiontitleformat{\unexpanded{#1}}}}} + % \exp_not:N \__gotham_section_title_format:n {#1} + {\@tempswatrue} + {} +\if@tempswa\else + {\PackageError{beamerfontthemegotham}{Patching~section~title~failed}\@ehc} +\fi +\@tempswafalse +% +%% NOT WORKING YET ! +%% \patchcmd{\beamer@subsection} % beamerbasesection.sty l. 209 +%% {\def\insertsubsectionhead{\hyperlink{Navigation\the\c@page}{#1}}} +%% {\def\insertsubsectionhead{\hyperlink{Navigation\the\c@page}\gotham@subsectiontitleformat{#1}}} +%% % \__gotham_subsection_title_format:n{#2} +%% {\@tempswatrue} +%% {} +%% \patchcmd{\beamer@subsection} % beamerbasesection.sty l. 209 +%% {\protected@edef\insertsubsectionhead{\noexpand\hyperlink{Navigation\the\c@page}{#1}}} +%% {\protected@edef\insertsubsectionhead{\noexpand\hyperlink{Navigation\the\c@page}{\noexpand\gotham@subsectiontitleformat{#1}}}} +%% % \exp_not:N \__gotham_subsection_title_format:n {#1} +%% {\@tempswatrue} +%% {} +%% \if@tempswa\else +%% {\PackageError{beamerfontthemegotham}{Patching~subsection~title~failed}\@ehc} +%% \fi% +%% \@tempswafalse +% +% +% Similarly, to make the |\MakeLowercase| and |\MakeUppercase| macros work in the frame title we have to patch |\beamer@@frametitle|. +\providecommand{\beamer@insertframetitlecontinuation}{ + \usebeamertemplate*{frametitle~continuation} +} +\patchcmd{\beamer@@frametitle} % beamerbaselocalstructure.sty l. 32 + {\gdef\insertframetitle{{% + #2% + \ifnum\beamer@autobreakcount>0 + \relax{}\space% + \beamer@insertframetitlecontinuation% + \fi% + }}% + } + {\gdef\insertframetitle{{% + \gotham@frametitleformat{#2}% + % \__gotham_frametitle_format:n {#2} + \ifnum\beamer@autobreakcount>0 + \relax{}\space% + \beamer@insertframetitlecontinuation% + \fi% + }}% + } + {} + {\PackageWarning{beamerfontthemegotham}{Patching~frametitle~failed}\@ehc} +% +%% NOT WORKING YET ! +%% \patchcmd{\framesubtitle} % beamerbaselocalstructure.sty l.55 +%% {\only#2{\ifblank{#1}{}{\gdef\insertframesubtitle{{#1}}\beamer@aftersubtitle}}} +%% {\only{#2}{\ifblank{#1}{}{\gdef\insertframesubtitle{{#1}}\beamer@aftersubtitle}}} +%% {} +%% {\PackageWarning{beamerfontthemegotham}{Patching~framesubtitle~failed}\@ehc} +% +\ExplSyntaxOn +% \end{macrocode} +% \end{macro} +% \end{implementation} + +% \begin{documentation} +% \begin{function}{\usefonttheme} +% \begin{syntax} +% \cs{usefonttheme}\oarg{option1=value1, ...}\marg{gotham} +% \textrm{where the options are (default marked as} \defopt{default}\textrm{):} +% \meta{title format} = \oarg{\defopt{textregular} \textbar lower \textbar upper \textbar titlecase} +% \meta{title shape} = \oarg{\defopt{textregular} \textbar smallcaps \textbar italic} +% \meta{subtitle format} = \oarg{\defopt{textregular} \textbar lower \textbar upper \textbar titlecase} +% \meta{subtitle shape} = \oarg{\defopt{textregular} \textbar smallcaps \textbar italic} +% \meta{frametitle format} = \oarg{\defopt{textregular} \textbar lower \textbar upper \textbar titlecase} +% \meta{frametitle shape} = \oarg{\defopt{textregular} \textbar smallcaps \textbar italic} +% \meta{framesubtitle format} = \oarg{\defopt{textregular} \textbar lower \textbar upper \textbar titlecase} +% \meta{framesubtitle shape} = \oarg{\defopt{textregular} \textbar smallcaps \textbar italic} +% \meta{part format} = \oarg{\defopt{textregular} \textbar lower \textbar upper \textbar titlecase} +% \meta{part shape} = \oarg{\defopt{textregular} \textbar smallcaps \textbar italic} +% \meta{section format} = \oarg{\defopt{textregular} \textbar lower \textbar upper \textbar titlecase} +% \meta{section shape} = \oarg{\defopt{textregular} \textbar smallcaps \textbar italic} +% \meta{subsection format} = \oarg{\defopt{textregular} \textbar lower \textbar upper \textbar titlecase} +% \meta{subsection shape} = \oarg{\defopt{textregular} \textbar smallcaps \textbar italic} +% \end{syntax} +% The 'package' (usefonttheme) options can control both shape and format of title (of the presentation), subtitle, part title, section title, subsection title, frametitle and framesubtitle. +% \end{function} +% \end{documentation} +%%%% +% \begin{implementation} +% \begin{macro}{font key -- interface} +% Controls the format and shape of the title (of the presentation), subtitle, part title, section title, subsection title, frametitle and framesubtitle. +% \UnitTested +% \TestFiles{gotham-test-035, gotham-test-036} +% \TestMissing{format of framesubtitle, part and subsection are not tested (and not working) yet.} +% \begin{macrocode} +\keys_define:nn { gotham / font } +{ + % format title + format~title .choice:, + format~title .usage:n = { general }, + format~title .default:n = { regular }, + format~title / regular .code:n = + { + \let\gotham@titleformat\@empty + % \cs_set_eq:NN \__gotham_title_format:n \__gotham_unchanged:n + }, + format~title / lower .code:n = + { + \let\gotham@titleformat \text_lowercase:n %\lowercase + % \cs_set_eq:NN \__gotham_title_format:n \text_lowercase:n + \PackageWarning{ gotham } { Be~aware~that~format~title=lower~can~lead~to~problems. } + }, + format~title / upper .code:n = + { + \let\gotham@titleformat \text_uppercase:n %\uppercase + % \cs_set_eq:NN \__gotham_title_format:n \text_uppercase:n + \PackageWarning{ gotham } { Be~aware~that~format~title=upper~can~lead~to~problems. } + }, + format~title / titlecase .code:n = + { + \let\gotham@titleformat \text_titlecase_all:n %\MakeTitlecase + % \cs_set_eq:NN \__gotham_title_format:n \text_titlecase_all:n + \PackageWarning{ gotham } { Be~aware~that~format~title=titlecase~can~lead~to~problems. } + }, + format~title / unknown .code:n = { \PackageWarning{ gotham } { The~choice~'\l_keys_value_tl'~is~unknown~for~the~(known)~option~'\l_keys_key_tl',~so~being~ignored. }{helping~message: format~title / unknown } }, +} +\keys_define:nn { gotham / font } +{ + % shape title + shape~title .choice:, + shape~title .usage:n = { general }, + shape~title .default:n = { regular }, + shape~title / regular .code:n = + { + \setbeamerfont{title}{shape=\normalfont} + }, + shape~title / smallcaps .code:n = + { + \setbeamerfont{title}{shape=\scshape} + }, + shape~title / italic .code:n = + { + \setbeamerfont{title}{shape=\itshape} + }, + shape~title / unknown .code:n = { \PackageWarning{ gotham } { The~choice~'\l_keys_value_tl'~is~unknown~for~the~(known)~option~'\l_keys_key_tl',~so~being~ignored. }{helping~message: shape~title / unknown} }, +} + +\keys_define:nn { gotham / font } +{ + % format subtitle + format~subtitle .choice:, + format~subtitle .usage:n = { general }, + format~subtitle .default:n = { regular }, + format~subtitle / regular .code:n = + { + \let\gotham@subtitleformat\@empty + % \cs_set_eq:NN \__gotham_subtitle_format:n \__gotham_unchanged:n + }, + format~subtitle / lower .code:n = + { + \let\gotham@subtitleformat \text_lowercase:n %\lowercase + % \cs_set_eq:NN \__gotham_subtitle_format:n \text_lowercase:n + \PackageWarning{ gotham } { Be~aware~that~format~subtitle=lower~can~lead~to~problems. } + }, + format~subtitle / upper .code:n = + { + \let\gotham@subtitleformat \text_uppercase:n %\uppercase + \cs_set_eq:NN \__gotham_subtitle_format:n \text_uppercase:n + \PackageWarning{ gotham } { Be~aware~that~format~subtitle=upper~can~lead~to~problems. } + }, + format~subtitle / titlecase .code:n = + { + \let\gotham@subtitleformat \text_titlecase_all:n %\MakeTitlecase + % \cs_set_eq:NN \__gotham_subtitle_format:n \text_titlecase_all:n %\MakeTitlecase + \PackageWarning{ gotham } { Be~aware~that~format~subtitle=titlecase~can~lead~to~problems. } + }, + format~subtitle / unknown .code:n = { \PackageWarning{ gotham } { The~choice~'\l_keys_value_tl'~is~unknown~for~the~(known)~option~'\l_keys_key_tl',~so~being~ignored. }{helping~message: format~subtitle / unknown} }, +} +\keys_define:nn { gotham / font } +{ + % shape subtitle + shape~subtitle .choice:, + shape~subtitle .usage:n = { general }, + shape~subtitle .default:n = { regular }, + shape~subtitle / regular .code:n = + { + \setbeamerfont{subtitle}{shape=\normalfont} + }, + shape~subtitle / smallcaps .code:n = + { + \setbeamerfont{subtitle}{shape=\scshape} + }, + shape~subtitle / italic .code:n = + { + \setbeamerfont{subtitle}{shape=\itshape} + }, + shape~subtitle / unknown .code:n = { \PackageWarning{ gotham } { The~choice~'\l_keys_value_tl'~is~unknown~for~the~(known)~option~'\l_keys_key_tl',~so~being~ignored. }{helping~message: shape~subtitle / unknown} }, +} + +\keys_define:nn { gotham / font } +{ + % format frametitle + format~frametitle .choice:, + format~frametitle .usage:n = { general }, + format~frametitle .default:n = { regular }, + format~frametitle / regular .code:n = + { + \let\gotham@frametitleformat\@empty + % \cs_set_eq:NN \__gotham_frametitle_format:n \__gotham_unchanged:n + }, + format~frametitle / lower .code:n = + { + \let\gotham@frametitleformat \text_lowercase:n %\lowercase + % \cs_set_eq:NN \__gotham_frametitle_format:n \text_lowercase:n + \PackageWarning{ gotham } { Be~aware~that~format~frametitle=lower~can~lead~to~problems. } + }, + format~frametitle / upper .code:n = + { + \let\gotham@frametitleformat \text_uppercase:n %\uppercase + % \cs_set_eq:NN \__gotham_frametitle_format:n \text_uppercase:n + \PackageWarning{ gotham } { Be~aware~that~format~frametitle=upper~can~lead~to~problems. } + }, + format~frametitle / titlecase .code:n = + { + \let\gotham@frametitleformat \text_titlecase_all:n %\Maketitlecase + % \cs_set_eq:NN \__gotham_frametitle_format:n \text_titlecase_all:n %\MakeTitlecase + \PackageWarning{ gotham } { Be~aware~that~format~frametitle=titlecase~can~lead~to~problems. } + }, + format~frametitle / unknown .code:n = { \PackageWarning{ gotham } { The~choice~'\l_keys_value_tl'~is~unknown~for~the~(known)~option~'\l_keys_key_tl',~so~being~ignored. }{helping~message: format~frametitle / unknown} }, +} +\keys_define:nn { gotham / font } +{ + % shape frametitle + shape~frametitle .choice:, + shape~frametitle .usage:n = { general }, + shape~frametitle .default:n = { regular }, + shape~frametitle / regular .code:n = + { + \setbeamerfont{frametitle}{shape=\normalfont} + }, + shape~frametitle / smallcaps .code:n = + { + \setbeamerfont{frametitle}{shape=\scshape} + }, + shape~frametitle / italic .code:n = + { + \setbeamerfont{frametitle}{shape=\itshape} + }, + shape~frametitle / unknown .code:n = { \PackageWarning{ gotham } { The~choice~'\l_keys_value_tl'~is~unknown~for~the~(known)~option~'\l_keys_key_tl',~so~being~ignored. }{helping~message: shape~frametitle / unknown} }, +} + +\keys_define:nn { gotham / font } +{ + % format framesubtitle + format~framesubtitle .choice:, + format~framesubtitle .usage:n = { general }, + format~framesubtitle .default:n = { regular }, + format~framesubtitle / regular .code:n = + { + \let\gotham@framesubtitleformat\@empty + % \cs_set_eq:NN \__gotham_framesubtitle_format:n \__gotham_unchanged:n + }, + format~framesubtitle / lower .code:n = + { + \let\gotham@framesubtitleformat \text_lowercase:n %\lowercase + % \cs_set_eq:NN \__gotham_framesubtitle_format:n \text_lowercase:n + \PackageWarning{ gotham } { Be~aware~that~format~framesubtitle=lower~can~lead~to~problems. } + }, + format~framesubtitle / upper .code:n = + { + \let\gotham@framesubtitleformat \text_uppercase:n %\uppercase + % \cs_set_eq:NN \__gotham_framesubtitle_format:n \text_uppercase:n + \PackageWarning{ gotham } { Be~aware~that~format~framesubtitle=upper~can~lead~to~problems. } + }, + format~framesubtitle / titlecase .code:n = + { + \let\gotham@framesubtitleformat \text_titlecase_all:n %\Maketitlecase + % \cs_set_eq:NN \__gotham_framesubtitle_format:n \text_titlecase_all:n %\Maketitlecase + \PackageWarning{ gotham } { Be~aware~that~format~framesubtitle=titlecase~can~lead~to~problems. } + }, + format~framesubtitle / unknown .code:n = { \PackageWarning{ gotham } { The~choice~'\l_keys_value_tl'~is~unknown~for~the~(known)~option~'\l_keys_key_tl',~so~being~ignored. }{helping~message: format~framesubtitle / unknown} }, +} +\keys_define:nn { gotham / font } +{ + % shape framesubtitle + shape~framesubtitle .choice:, + shape~framesubtitle .usage:n = { general }, + shape~framesubtitle .default:n = { regular }, + shape~framesubtitle / regular .code:n = + { + \setbeamerfont{framesubtitle}{shape=\normalfont} + }, + shape~framesubtitle / smallcaps .code:n = + { + \setbeamerfont{framesubtitle}{shape=\scshape} + }, + shape~framesubtitle / italic .code:n = + { + \setbeamerfont{framesubtitle}{shape=\itshape} + }, + shape~framesubtitle / unknown .code:n = { \PackageWarning{ gotham } { The~choice~'\l_keys_value_tl'~is~unknown~for~the~(known)~option~'\l_keys_key_tl',~so~being~ignored. }{helping~message: shape~framesubtitle / unknown} }, +} + +\keys_define:nn { gotham / font } +{ + % format part + format~part .choice:, + format~part .usage:n = { general }, + format~part .default:n = { regular }, + format~part / regular .code:n = + { + \let\gotham@parttitleformat\@empty + % \cs_set_eq:NN \__gotham_part_title_format:n \text_titlecase:n + }, + format~part / lower .code:n = + { + \let\gotham@parttitleformat \text_lowercase:n %\lowercase + % \cs_set_eq:NN \__gotham_part_title_format:n \text_lowercase:n + \PackageWarning{ gotham } { Be~aware~that~format~part=lower~can~lead~to~problems. } + }, + format~part / upper .code:n = + { + \let\gotham@parttitleformat \text_uppercase:n %\uppercase + % \cs_set_eq:NN \__gotham_part_title_format:n \text_uppercase:n + \PackageWarning{ gotham } { Be~aware~that~format~part=upper~can~lead~to~problems. } + }, + format~part / titlecase .code:n = + { + \let\gotham@parttitleformat\text_titlecase_all:n %\Maketitlecase + % \cs_set_eq:NN \__gotham_part_title_format:n \text_titlecase:n + \PackageWarning{ gotham } { Be~aware~that~format~part=titlecase~can~lead~to~problems. } + }, + format~part / unknown .code:n = { \PackageWarning{ gotham } { The~choice~'\l_keys_value_tl'~is~unknown~for~the~(known)~option~'\l_keys_key_tl',~so~being~ignored. }{helping~message: format~part / unknown} }, +} +\keys_define:nn { gotham / font } +{ + % shape part + shape~part .choice:, + shape~part .usage:n = { general }, + shape~part .default:n = { regular }, + shape~part / regular .code:n = + { + \setbeamerfont{part~title}{shape=\normalfont} + }, + shape~part / smallcaps .code:n = + { + \setbeamerfont{part~title}{shape=\scshape} + }, + shape~part / italic .code:n = + { + \setbeamerfont{part~title}{shape=\itshape} + }, + shape~part / unknown .code:n = { \PackageWarning{ gotham } { The~choice~'\l_keys_value_tl'~is~unknown~for~the~(known)~option~'\l_keys_key_tl',~so~being~ignored. }{helping~message: shape~part / unknown} }, +} + +\keys_define:nn { gotham / font } +{ + % format section + format~section .choice:, + format~section .usage:n = { general }, + format~section .default:n = { regular }, + format~section / regular .code:n = + { + \let\gotham@sectiontitleformat\@empty + % \cs_set_eq:NN \__gotham_section_title_format:n \__gotham_unchanged:n + }, + format~section / lower .code:n = + { + \let\gotham@sectiontitleformat \text_lowercase:n %\lowercase + % \cs_set_eq:NN \__gotham_section_title_format:n \text_lowercase:n + \PackageWarning{ gotham } { Be~aware~that~format~section=lower~can~lead~to~problems. } + }, + format~section / upper .code:n = + { + \let\gotham@sectiontitleformat \text_uppercase:n %\uppercase + % \cs_set_eq:NN \__gotham_section_title_format:n \text_uppercase:n + \PackageWarning{ gotham } { Be~aware~that~format~section=upper~can~lead~to~problems. } + }, + format~section / titlecase .code:n = + { + \let\gotham@sectiontitleformat \text_titlecase_all:n %\Maketitlecase + % \cs_set_eq:NN \__gotham_section_title_format:n \text_titlecase_all:n + \PackageWarning{ gotham } { Be~aware~that~format~section=titlecase~can~lead~to~problems. } + }, + format~section / unknown .code:n = { \PackageWarning{ gotham } { The~choice~'\l_keys_value_tl'~is~unknown~for~the~(known)~option~'\l_keys_key_tl',~so~being~ignored. }{helping~message: format~section / unknown} }, +} +\keys_define:nn { gotham / font } +{ + % shape section + shape~section .choice:, + shape~section .usage:n = { general }, + shape~section .default:n = { regular }, + shape~section / regular .code:n = + { + \setbeamerfont{section~title}{shape=\normalfont} + }, + shape~section / smallcaps .code:n = + { + \setbeamerfont{section~title}{shape=\scshape} + }, + shape~section / italic .code:n = + { + \setbeamerfont{section~title}{shape=\itshape} + }, + shape~section / unknown .code:n = { \PackageWarning{ gotham } { The~choice~'\l_keys_value_tl'~is~unknown~for~the~(known)~option~'\l_keys_key_tl',~so~being~ignored. }{helping~message: shape~section / unknown} }, +} + +\keys_define:nn { gotham / font } +{ + % format subsection + format~subsection .choice:, + format~subsection .usage:n = { general }, + format~subsection .default:n = { regular }, + format~subsection / regular .code:n = + { + \let\gotham@subsectiontitleformat\@empty + % \cs_set_eq:NN \__gotham_subsection_title_format:n \__gotham_unchanged:n + }, + format~subsection / lower .code:n = + { + \let\gotham@subsectiontitleformat \text_lowercase:n %\lowercase + % \cs_set_eq:NN \__gotham_subsection_title_format:n \text_lowercase:n + \PackageWarning{ gotham } { Be~aware~that~format~subsection=lower~can~lead~to~problems. } + }, + format~subsection / upper .code:n = + { + \let\gotham@subsectiontitleformat \text_uppercase:n %\uppercase + % \cs_set_eq:NN \__gotham_subsection_title_format:n \text_uppercase:n + \PackageWarning{ gotham } { Be~aware~that~format~subsection=upper~can~lead~to~problems. } + }, + format~subsection / titlecase .code:n = + { + \let\gotham@subsectiontitleformat\text_titlecase_all:n %\Maketitlecase + % \cs_set_eq:NN \__gotham_subsection_title_format:n \text_titlecase_all:n + \PackageWarning{ gotham } { Be~aware~that~format~subsection=titlecase~can~lead~to~problems. } + }, + format~subsection / unknown .code:n = { \PackageWarning{ gotham } { The~choice~'\l_keys_value_tl'~is~unknown~for~the~(known)~option~'\l_keys_key_tl',~so~being~ignored. }{helping~message: format~subsection / unknown} }, +} +\keys_define:nn { gotham / font } +{ + % shape subsection + shape~subsection .choice:, + shape~subsection .usage:n = { general }, + shape~subsection .default:n = { regular }, + shape~subsection / regular .code:n = + { + \setbeamerfont{subsection~title}{shape=\normalfont} + }, + shape~subsection / smallcaps .code:n = + { + \setbeamerfont{subsection~title}{shape=\scshape} + }, + shape~subsection / italic .code:n = + { + \setbeamerfont{subsection~title}{shape=\itshape} + }, + shape~subsection / unknown .code:n = { \PackageWarning{ gotham } { The~choice~'\l_keys_value_tl'~is~unknown~for~the~(known)~option~'\l_keys_key_tl',~so~being~ignored. }{helping~message: shape~subsection / unknown} }, +} +% \end{macrocode} +% \end{macro} +% \end{implementation} + +% \begin{implementation} +% \begin{macro}{Default font keys} +% Apply default key options. +% \UnitTested +% \TestFiles{gotham-test-035} +% \begin{macrocode} +% when no value is given, default is called. +\keys_set:nn { gotham / font } { + format~title, shape~title, + format~subtitle, shape~subtitle, + format~frametitle, shape~frametitle, + format~framesubtitle, shape~framesubtitle, + format~part, shape~part, + format~section, shape~section, + format~subsection, shape~subsection, +} +% \end{macrocode} +% \end{macro} +% \end{implementation} + +% \begin{implementation} +% \begin{macro}{Process font keys} +% Process package options. +% \UnitTested +% \TestFiles{gotham-test-035} +% \begin{macrocode} +\ProcessKeyOptions[ gotham / font ] +% \end{macrocode} +% \end{macro} +% \end{implementation} +% +% \begin{implementation} +% \begin{macrocode} +%\endinput +%</font> +% \end{macrocode} +% \end{implementation} +% +% +% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +% +%\begin{implementation} +% \begin{macrocode} +%<*color> +\ProvidesExplPackage{beamercolorthemegotham}{2025-02-11}{1.2.1.c}{Gotham color theme} +\RequirePackage{expl3} +% \RequirePackage{xparse} +\RequirePackage{xcolor} +% \end{macrocode} +% \end{implementation} +% +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%% COLOR %%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% \begin{implementation} +% \begin{variable}{\definecolor[named]{gAnthracite}, colors definition} +% Definition of the Gotham colors. +% \begin{macrocode} +\definecolor[named]{gLightOrange}{HTML}{EB811B} +\definecolor[named]{gLightGreen}{HTML}{14B03D} +\definecolor[named]{gDeepBlue}{RGB}{42, 42, 255} +\definecolor[named]{gDeepYellOr}{RGB}{255, 204, 0} +\definecolor[named]{gAnthracite}{HTML}{2d3e50} +\definecolor[named]{gLightTeal}{RGB}{172, 195, 210} +\definecolor[named]{gPaleYell}{RGB}{255, 255, 240} +\definecolor[named]{gDarkBlack}{gray}{0.1} +\definecolor[named]{gDarkGrey}{gray}{0.25} +\definecolor[named]{gMidGrey}{gray}{0.5} +\definecolor[named]{gLightGrey}{gray}{0.9} +% \end{macrocode} +% \end{variable} +% \end{implementation} + +% \begin{documentation} +% \begin{variable}{\colorlet{colorPale}, set gotham palette colors} +% \begin{syntax} +% \cs{colorlet} \marg{colorPale} \marg{gPaleYell} +% \cs{colorlet} \marg{colorDark} \marg{gDarkBlack} +% \cs{colorlet} \marg{colorA} \marg{gAnthracite} +% \cs{colorlet} \marg{colorAreversed} \marg{gLightTeal} +% \cs{colorlet} \marg{colorB} \marg{gMidGrey} +% \cs{colorlet} \marg{colorC} \marg{gDeepYellOr} +% \cs{colorlet} \marg{colorD} \marg{gLightOrange} +% \cs{colorlet} \marg{colorE} \marg{gLightGreen} +% \end{syntax} +% Setup the colors use for presentations: +% \begin{itemize} +% \item |colorPale| is used for BG in light mode +% \item |colorDark| is used for FG in light mode +% \item |colorA| is used for frametitle and standout BG in light mode +% \item |colorAreversed| is used for frametitle and standout BG in dark mode +% \item |colorB| is used for progress bar and blocks BG +% \item |colorC| is used for progress bar FG +% \item |colorD| is used for alert FG/BG depending on the block mode +% \item |colorE| is used for example FG/BG depending on the block mode +% \end{itemize} +% \end{variable} +% \end{documentation} +%%%%%% +% \begin{implementation} +% \begin{variable}{\colorlet{colorPale}, set gotham palette colors} +% A set Gotham palette: a list of color variables easily adapted. +% \begin{macrocode} +% Define the color palette +\@ifundefined{\string\color@colorAreversed}{ + % default colorset. + \colorlet{colorPale}{gPaleYell} % BG in light/normal mode + \colorlet{colorDark}{gDarkBlack} % FG in light/normal mode + \colorlet{colorA}{gAnthracite} % frametitle, standin.out, + \colorlet{colorAreversed}{gLightTeal} % frametitle, standin.in, + \colorlet{colorB}{gMidGrey} % gray BG : progress bar, blocks + \colorlet{colorC}{gDeepYellOr} % progress bar + \colorlet{colorD}{gLightOrange} % alert + \colorlet{colorE}{gLightGreen} % example +}{ + % else nothing to do, colors are already defined. +} +\providecommand{\gothamHookPostColorBGSet}{} +% \end{macrocode} +% \end{variable} +% \end{implementation} + +% \begin{implementation} +% \begin{function}{\__gotham_color_set_style_anthracite:} +% Command to activate anthracite colorset. +% \TestFiles{gotham-test-1037} +% \begin{macrocode} +\cs_new_protected:Nn \__gotham_color_set_style_anthracite:{ + \colorlet{colorPale}{gPaleYell} % BG in light/normal mode + \colorlet{colorDark}{gDarkBlack} % FG in light/normal mode + \colorlet{colorA}{gAnthracite} % frametitle, standin.out, + \colorlet{colorAreversed}{gLightTeal} % frametitle, standin.in, + \colorlet{colorB}{gMidGrey} % gray BG : progress bar, blocks + \colorlet{colorC}{gDeepYellOr} % progress bar + \colorlet{colorD}{gLightOrange} % alert + \colorlet{colorE}{gLightGreen} % example +} +% \end{macrocode} +% \end{function} +% \end{implementation} + +% \begin{implementation} +% \begin{function}{\__gotham_color_set_style_red:} +% Command to activate red colorset. +% \TestFiles{gotham-test-1037} +% \begin{macrocode} +\cs_new_protected:Nn \__gotham_color_set_style_red:{ + \colorlet{colorPale}{gPaleYell} % BG in light/normal mode + \colorlet{colorDark}{gDarkBlack} % FG in light/normal mode + \colorlet{colorA}{red} % frametitle, standin.out, + \colorlet{colorAreversed}{gLightTeal} % frametitle, standin.in, + \colorlet{colorB}{gMidGrey} % gray BG : progress bar, blocks + \colorlet{colorC}{gDeepYellOr} % progress bar + \colorlet{colorD}{gLightOrange} % alert + \colorlet{colorE}{gLightGreen} % example +} +% \end{macrocode} +% \end{function} +% \end{implementation} + +% \begin{documentation} +% \begin{variable}{\colorlet{colorBG}{colorPale}, set functional colors} +% \begin{syntax} +% \cs{colorlet} \marg{colorBG} \marg{colorPale} +% \cs{colorlet} \marg{colorFG} \marg{colorDark} +% \cs{colorlet} \marg{colorFrametitle} \marg{colorA} +% \cs{colorlet} \marg{colorStandout} \marg{colorA} +% \cs{colorlet} \marg{colorStandin} \marg{colorA} +% \cs{colorlet} \marg{colorTitlepage} \marg{colorA} +% \cs{colorlet} \marg{colorFiligrane} \marg{colorB} +% \cs{colorlet} \marg{colorBackElement} \marg{colorB} +% \cs{colorlet} \marg{colorProgBar} \marg{colorC} +% \cs{colorlet} \marg{colorAlert} \marg{colorD} +% \cs{colorlet} \marg{colorExample} \marg{colorE} +% \end{syntax} +% Setup the default color aliases used in the presentation theme definitions. +% These aliases are partly redefined by dark/light/transparent modes. +% \end{variable} +% \end{documentation} +%%%%%% +% \begin{implementation} +% \begin{variable}{\colorlet{colorBG}{colorPale}, set functional colors} +% A set of variable easily adapted. +% \begin{macrocode} +% Define the color palette +\colorlet{colorFG}{colorDark} +\colorlet{colorBG}{colorPale} +\colorlet{colorStandin}{colorPale} +\colorlet{colorStandout}{colorA} +\colorlet{colorFrametitle}{colorA} +\colorlet{colorTitlepage}{colorA} +\colorlet{colorFiligrane}{colorB} +\colorlet{colorBackElement}{colorB} +\colorlet{colorProgBar}{colorC} +\colorlet{colorAlert}{colorD} +\colorlet{colorExample}{colorE} +% \end{macrocode} +% \end{variable} +% \end{implementation} + +% \begin{implementation} +% \begin{variable}{\providebool{darkBG}, \providebool{transparentBG}} +% Variable to track color setup. +% \begin{macrocode} +% \providebool{reversedColor} +% \boolfalse{reversedColor} +\providebool{darkBG} +\boolfalse{darkBG} +\providebool{transparentBG} +\booltrue{transparentBG} +% \end{macrocode} +% \end{variable} +% \end{implementation} + +% \begin{implementation} +% \begin{function}{\__gotham_color_set_darkBG:} +% Command to activate dark mode +% \TestFiles{gotham-test-037} +% \begin{macrocode} +\cs_new_protected:Nn \__gotham_color_set_darkBG:{ + \setbeamercolor{normal~text}{% + fg=colorBG, + bg=colorFG, + }% + \usebeamercolor[fg]{normal~text}% + \booltrue{darkBG}% + \boolfalse{transparentBG} + \colorlet{colorFrametitle}{colorAreversed} + \colorlet{colorStandout}{colorAreversed} + \colorlet{colorStandin}{colorFG} + \colorlet{colorTitlepage}{colorAreversed} + % %%% adapt and reload + % \colorlet{colorBG}{colorPale} + % \colorlet{colorFG}{colorDark} + % \colorlet{colorFiligrane}{colorB} + % \colorlet{colorBackElement}{colorB} + % \colorlet{colorProgBar}{colorC} + % \colorlet{colorAlert}{colorD} + % \colorlet{colorExample}{colorE} + %%% dark + \setbeamercolor{primary~palette}{% reversed color compared to normal text + use=normal~text, + fg=normal~text.bg, + bg=normal~text.fg + } + \gothamHookPostColorBGSet{} +} +% \end{macrocode} +% \end{function} +% \end{implementation} + +% \begin{implementation} +% \begin{function}{\__gotham_color_set_lightBG:} +% Command to activate light background. +% \TestFiles{gotham-test-037} +% \begin{macrocode} +\cs_new_protected:Nn \__gotham_color_set_lightBG:{ + \setbeamercolor{normal~text}{ + fg=colorFG, + bg=colorBG + } + \usebeamercolor[fg]{normal~text} + \boolfalse{darkBG} + \boolfalse{transparentBG} + \colorlet{colorFrametitle}{colorA} + \colorlet{colorStandout}{colorA} + \colorlet{colorStandin}{colorBG} + \colorlet{colorTitlepage}{colorA} + % %%% adapt and reload + % \colorlet{colorBG}{colorPale} + % \colorlet{colorFG}{colorDark} + % \colorlet{colorFiligrane}{colorB} + % \colorlet{colorBackElement}{colorB} + % \colorlet{colorProgBar}{colorC} + % \colorlet{colorAlert}{colorD} + % \colorlet{colorExample}{colorE} + %%% light + \setbeamercolor{primary~palette}{ + % reversed color compared to normal text + use=normal~text, + fg=normal~text.bg, + bg=normal~text.fg + } + \gothamHookPostColorBGSet{} +} +% \end{macrocode} +% \end{function} +% \end{implementation} + +% \begin{implementation} +% \begin{function}{\__gotham_color_set_transparentBG:} +% Command to activate transparent background. +% \TestFiles{gotham-test-037} +% \begin{macrocode} +% \providecommand{\gotham@colors@transparent}{ +\cs_new_protected:Nn \__gotham_color_set_transparentBG:{ + \setbeamercolor{normal~text}{ + fg=colorFG, + bg=, + } + \usebeamercolor[fg]{normal~text} + \boolfalse{darkBG} + \booltrue{transparentBG} + \colorlet{colorFrametitle}{colorA} + \colorlet{colorStandout}{colorA} + {\usebeamercolor[bg]{normal~text}\colorlet{colorStandin}{bg}}% this is not working because the colorlet is not kept outside of the {} environment... + % \usebeamercolor{normal~text} % reset % NOT working neither + \colorlet{colorStandin}{colorBG} % since the two previous lines are not working, let define it like light-bg + \colorlet{colorTitlepage}{colorA} + % %%% adapt and reload + % \colorlet{colorBG}{colorPale} + % \colorlet{colorFG}{colorDark} + % \colorlet{colorFiligrane}{colorB} + % \colorlet{colorBackElement}{colorB} + % \colorlet{colorProgBar}{colorC} + % \colorlet{colorAlert}{colorD} + % \colorlet{colorExample}{colorE} + %%% like light background. + \setbeamercolor{primary~palette}{ + % reversed color compared to normal text + use=normal~text, + fg=colorBG, + bg=normal~text.fg + } + \gothamHookPostColorBGSet{} +} +% \end{macrocode} +% \end{function} +% \end{implementation} + +% \begin{implementation} +% \begin{function}{\__gotham_color_set_transparent_block:} +% Command to activate transparent block. +% \TestFiles{gotham-test-037} +% \begin{macrocode} +\cs_new_protected:Nn \__gotham_color_set_transparent_block:{ + \setbeamercolor{block~title}{ + use=normal~text, + fg=normal~text.fg, + bg= + } + \setbeamercolor{block~body}{ + bg= + } + \setbeamercolor{alerted~text}{ + fg=colorAlert + } + \setbeamercolor{example~text}{ + fg=colorExample + } + \setbeamercolor{block~title~example}{ + use={block~title, example~text}, + bg=block~title.bg, + fg=example~text.fg + } + \setbeamercolor{block~title~alerted}{ + use={block~title, alerted~text}, + bg=block~title.bg, + fg=alerted~text.fg + } +} +% \end{macrocode} +% \end{function} +% \end{implementation} + +% \begin{implementation} +% \begin{function}{\__gotham_color_set_fill_block:} +% Command to activate fill block. +% \TestFiles{gotham-test-037} +% \begin{macrocode} +\cs_new_protected:Nn \__gotham_color_set_fill_block:{ + \setbeamercolor{block~title}{ + fg=colorBackElement!10!normal~text.fg, + bg=colorBackElement!135!fg + } + \setbeamercolor{block~body}{ + use={block~title, normal~text}, + bg=block~title.bg!50!normal~text.bg + } + \setbeamercolor{alerted~text}{ + fg=colorAlert + } + \setbeamercolor{example~text}{ + fg=colorExample + } + \setbeamercolor{block~title~example}{ + use={block~title, example~text}, + bg=block~title.bg, + fg=example~text.fg + } + \setbeamercolor{block~title~alerted}{ + use={block~title, alerted~text}, + bg=block~title.bg, + fg=alerted~text.fg + } +}% \end{macrocode} +% \end{function} +% \end{implementation} + +% \begin{implementation} +% \begin{function}{\__gotham_color_set_native_block:} +% Command to activate native block. +% \TestFiles{gotham-test-037} +% \begin{macrocode} +\cs_new_protected:Nn \__gotham_color_set_native_block:{ + \setbeamercolor{block~title}{ + fg=colorPale, + bg=colorBackElement!90!fg + } + \setbeamercolor{block~body}{ + use={block~title, normal~text}, + bg=block~title.bg!50!normal~text.bg + } + \setbeamercolor{alerted~text}{ + fg=colorAlert + } + % With native block, we have to let alerted text with a visible color (not pale) to keep alert visible (cf test-1005). + % So, we have to create an extra color: alertedBlock~text. + \setbeamercolor{alertedBlock~text}{ + fg=colorPale + } + \setbeamercolor{example~text}{ + fg=colorPale + } + \setbeamercolor{block~title~alerted}{ + use={block~title, alertedBlock~text}, + bg=colorAlert, + fg=alertedBlock~text.fg + } + \setbeamercolor{block~title~example}{ + use={block~title, example~text}, + bg=colorExample, + fg=example~text.fg + } +} +% \end{macrocode} +% \end{function} +% \end{implementation} + +% \begin{implementation} +% \begin{macro}{Gotham color adaptation} +% Set colors variable from Gotham color setup that needs specific adaptation, i.e. |structure| as mentioned in Beamer documentation and |progress bar| since it is a new feature. +% \UnitTested +% \TestFiles{gotham-test-037} +% \begin{macrocode} +\setbeamercolor{structure}{use=normal~text, fg=normal~text.fg} +\setbeamercolor{progress~bar}{ + use=alerted~text, + fg=colorProgBar, + bg=alerted~text.fg!50!black!30 +} +% \end{macrocode} +% \end{macro} +% \end{implementation} + +% \begin{implementation} +% \begin{macro}{Usual color env} +% Set colors variable from Gotham color setup. +% The titles and structural elements (e.g. |itemize| bullets) are set in the same color as |normal text|. +% This would ideally done by setting |normal text| as a parent style, which we do to set |titlelike|, but this doesn't work for |structure| as its foreground is set explicitly in |beamercolorthemedefault.sty|. +% \UnitTested +% \TestFiles{gotham-test-037} +% \begin{macrocode} +\setbeamercolor{titlelike}{use=normal~text, parent=normal~text} +\setbeamercolor{author}{use=normal~text, parent=normal~text} +\setbeamercolor{date}{use=normal~text, parent=normal~text} +\setbeamercolor{institute}{use=normal~text, parent=normal~text} +\setbeamercolor{frametitle}{ + use=primary~palette, + parent=primary~palette, + bg=colorFrametitle +} +% The Gotham inner or outer themes optionally display progress bars in various locations. +% Their color is set by |progress bar| but the two different kinds can be customized separately. +% The horizontal rule on the title page is also set based on the progress bar color and can be customized with |title separator|. +\setbeamercolor{title~separator}{ + use=progress~bar, + parent=progress~bar +} +\setbeamercolor{progress~bar~in~head/foot}{% + use=progress~bar, + parent=progress~bar +} +\setbeamercolor{progress~bar~in~part~page}{ + use=progress~bar, + parent=progress~bar +} +\setbeamercolor{progress~bar~in~section~page}{ + use=progress~bar, + parent=progress~bar +} +\setbeamercolor{progress~bar~in~splitvert}{ + use=progress~bar, + parent=progress~bar +} +% \setbeamercolor{progress~bar~in~subsection~page}{ +% use=progress~bar, +% parent=progress~bar +% } +% \setbeamercolor{progress~bar~in~subsubsection~page}{ +% use=progress~bar, +% parent=progress~bar +% } +% +% Blocks +\setbeamercolor{block~body~alerted}{use=block~body, parent=block~body} +\setbeamercolor{block~body~example}{use=block~body, parent=block~body} +% +% Footnote +\setbeamercolor{footnote}{fg=normal~text.fg!90} +\setbeamercolor{footnote~mark}{fg=.} +% +% Bibliography +% +% We also reset the bibliography colors in order to pick up the surrounding colors at the time of use. +% This prevents us having to set the correct color in normal and standout mode. +% \setbeamercolor{bibliography entry author}{fg=, bg=} +% \setbeamercolor{bibliography entry title}{fg=, bg=} +% \setbeamercolor{bibliography entry location}{fg=, bg=} +% \setbeamercolor{bibliography entry note}{fg=, bg=} +% \end{macrocode} +% \end{macro} +% \end{implementation} + +% \begin{implementation} +% \begin{macro}{new color environments} +% Set up colors for the the new beamer environment used by the theme. +% \UnitTested +% \TestFiles{gotham-test-037} +% \begin{macrocode} +% \setbeamercolor{frametitleSection}{use=primary~palette, bg=, fg=primary~palette.bg} +\setbeamercolor{frametitleSection}{use=structure,fg=structure.bg} + +\setbeamercolor{standout}{use=primary~palette, bg=colorStandout, fg=primary~palette.bg} +\setbeamercolor{standin}{use=normal~text, bg=colorStandin, fg=normal~text.fg} + +\setbeamercolor{section~in~toc}{use=normal~text, parent=normal~text,} +\setbeamercolor{subsection~in~toc}{use=normal~text, parent=normal~text,} +\setbeamercolor{subsubsection~in~toc}{use=normal~text, parent=normal~text,} +\setbeamercolor{footlineRule}{use=normal~text, parent=normal~text,} +% \end{macrocode} +% \end{macro} +% \end{implementation} + +% \begin{documentation} +% \begin{function}{\usecolortheme} +% \begin{syntax} +% \cs{usecolortheme}\oarg{option1=value1, ...}\marg{gotham} +% \textrm{where the options are (default marked as} \defopt{default}\textrm{):} +% \meta{background} = \oarg{\defopt{transparent} \textbar light \textbar dark} +% \meta{block} = \oarg{\defopt{native} \textbar fill \textbar transparent} +% \meta{colorset} = \oarg{\defopt{anthracite} \textbar red } +% \end{syntax} +% The 'package' (usecolortheme) options can control color mode (dark, ligh or transparent background) and the block (native or fill or transparent). +% Block environments such as |theorem| and |example| have no background color by default. +% The option |block=fill| sets a background color based on the background and foreground of |normal text|. +% The option |block=transparent| reverts the block environments to an empty background, which can be useful if changing colors mid-presentation. +% The option |colorset=red| changes the colorset used to define a color theme. +% \end{function} +% \end{documentation} +%%%% +% \begin{implementation} +% \begin{macro}{color key -- interface} +% Controls the background mode (dark, ligh or transparent background) and the block (fill or transparent) and colorset (anthracite, red, blue, green, etc). +% \UnitTested +% \TestFiles{gotham-test-037} +% \begin{macrocode} +\keys_define:nn { gotham / color } +{ + % block + block .choice:, + block .usage:n = { general }, + block .default:n = { native }, + block / native .code:n = { \__gotham_color_set_native_block: }, + block / transparent .code:n = { \__gotham_color_set_transparent_block: }, + block / fill .code:n = { \__gotham_color_set_fill_block: }, + block / unknown .code:n = { \PackageWarning{ gotham } { The~choice~'\l_keys_value_tl'~is~unknown~for~the~(known)~option~'\l_keys_key_tl',~so~being~ignored. }{helping~message: block / unknown} }, +} + +\keys_define:nn { gotham / color } +{ + % background + background .choice:, + background .usage:n = { general }, + background .default:n = { transparent }, + background / transparent .code:n = { \__gotham_color_set_transparentBG: }, + background / light .code:n = { \__gotham_color_set_lightBG: }, + background / dark .code:n = { \__gotham_color_set_darkBG: }, + background / unknown .code:n = { \PackageWarning{ gotham } { The~choice~'\l_keys_value_tl'~is~unknown~for~the~(known)~option~'\l_keys_key_tl',~so~being~ignored. }{helping~message: background / unknown} }, +} + +\keys_define:nn { gotham / color } +{ + % colorset + colorset .choice:, + colorset .usage:n = { general }, + colorset .default:n = { anthracite }, + colorset / anthracite .code:n = { \__gotham_color_set_style_anthracite: }, + colorset / red .code:n = { \__gotham_color_set_style_red: }, + % colorset / blue .code:n = { }, + % colorset / green .code:n = { }, + % colorset / orange .code:n = { }, + % colorset / teal .code:n = { }, + colorset / unknown .code:n = { \PackageWarning{ gotham } { The~choice~'\l_keys_value_tl'~is~unknown~for~the~(known)~option~'\l_keys_key_tl',~so~being~ignored. }{helping~message: colorset / unknown} }, +} +% \end{macrocode} +% \end{macro} +% \end{implementation} + +% \begin{implementation} +% \begin{macro}{Default color keys} +% Apply default key options. +% \UnitTested +% \TestFiles{gotham-test-037} +% \begin{macrocode} +% when no value is given, default is called. +\keys_set:nn { gotham / color } { background, block, colorset } +% \end{macrocode} +% \end{macro} +% \end{implementation} + +% \begin{implementation} +% \begin{macro}{Process color keys} +% Process package options. +% \UnitTested +% \TestFiles{gotham-test-037} +% \begin{macrocode} +\ProcessKeyOptions[ gotham / color ] +\mode<all> +% \end{macrocode} +% \end{macro} +% \end{implementation} +% +% +% \begin{implementation} +% \begin{macrocode} +%\endinput +%</color> +% \end{macrocode} +% \end{implementation} +% +% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +% +% +%\begin{implementation} +% \begin{macrocode} +%<*inner> +\ProvidesExplPackage{beamerinnerthemegotham}{2025-02-11}{1.2.1.c}{gotham inner theme} +\RequirePackage{expl3} +% \RequirePackage{xparse} +\RequirePackage{calc} +% \RequirePackage{xfp} +\RequirePackage{tikz} +% \end{macrocode} +% \end{implementation} +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%% INNER %%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% \begin{implementation} +% A |beamer| inner theme dictates the style of the frame elements traditionally set in the ``body'' of each slide. These include: +% \begin{itemize} +% \item title page; +% \item backgrounds; +% \item standin/out; +% \item part, section etc, pages; +% \item table of content pages (including for sections...); +% \item environement elements: \begin{itemize} +% \item itemize, enumerate, and description environments; +% \item block environments including theorems and proofs; +% \item figures and tables; and +% \item footnotes and plain text. +% \end{itemize} +% \end{itemize} +% \end{implementation} +% +% + +%%% Titlepage %%% +%%%%%%%%%%%%%%%%%%% +% +% \begin{implementation} +% \begin{macro}{Compitibility mode for colors} +% FROM COLOR THEME: useful to provide this recall when the inner theme is loaded without the color theme. +% \begin{macrocode} +\@ifundefined{\string\color@colorProgBar}{ + \providebool{darkBG} \boolfalse{darkBG} + \providebool{transparentBG} \booltrue{transparentBG} + \colorlet{colorBG}{white} + \colorlet{colorFG}{black} + \colorlet{colorFrametitle}{purple} + \colorlet{colorStandout}{purple} + \colorlet{colorStandin}{purple} + \colorlet{colorTitlepage}{purple} + \colorlet{colorFiligrane}{gray} + \colorlet{colorBackElement}{gray} + \colorlet{colorProgBar}{orange} + \colorlet{colorAlert}{red} + \colorlet{colorExample}{green} + \setbeamercolor{progress~bar}{ + use=alerted~text, + fg=colorProgBar, + bg=alerted~text.fg!50!black!30 + } + \setbeamercolor{progress~bar~in~head/foot}{% + use=progress~bar, + parent=progress~bar + } + \setbeamercolor{progress~bar~in~part~page}{ + use=progress~bar, + parent=progress~bar + } + \setbeamercolor{progress~bar~in~section~page}{ + use=progress~bar, + parent=progress~bar + } + \setbeamercolor{progress~bar~in~splitvert}{ + use=progress~bar, + parent=progress~bar + } + \setbeamercolor{frametitleSection}{use=primary~palette, bg=, fg=primary~palette.bg} + \setbeamercolor{standout}{use=primary~palette, bg=colorStandout, fg=primary~palette.bg} + \setbeamercolor{standin}{use=normal~text, bg=colorStandin, fg=normal~text.fg} + \setbeamercolor{section~in~toc}{use=normal~text, parent=normal~text,} + \setbeamercolor{subsection~in~toc}{use=normal~text, parent=normal~text,} + \setbeamercolor{subsubsection~in~toc}{use=normal~text, parent=normal~text,} +}{ + % else the colors are defined: this is fine. +} +% \end{macrocode} +% \end{macro} +% \end{implementation} + +% \begin{implementation} +% \begin{macro}{\maketitle,\titlepage} +% Normal people should use |\maketitle| or |\titlepage| instead of using the |title page| beamer template directly. +% Beamer already defines these macros, but we patch them here to make the title page |[plain]| by default, remove |\@thanks|, and ensure the title frame number doesn't count. +% Inserts the title frame, or causes the current frame to use the |title page| template. +% \UnitTested +% \TestFiles{gotham-test-038} +% \begin{macrocode} +\def\maketitle{ + \ifbeamer@inframe + \titlepage + \else + \frame[plain, c, noframenumbering]{\titlepage} + \fi +} +\def\titlepage{ + % \setkeys{beamerframe}{c} % no effect + % \setkeys{beamerframe}{plain} % no effect + % \setbeamertemplate{footline}[empty] % no effect + % \setkeys{beamerframe}{nofootline} % create error of unclosed env + \usebeamertemplate{title~page} +} +% \end{macrocode} +% \end{macro} +% \end{implementation} + +% \begin{implementation} +% \begin{macro}{\defbeamertemplate{title~graphic}{gotham}} +% Definition of elements templates that will be used in titlepage. +% \UnitTested +% \TestFiles{gotham-test-038} +% \begin{macrocode} +\defbeamertemplate*{title~graphic}{gotham}{ + % \vbox to 0pt {% %%%%% MODIFIED ! + \vbox{ + % \vspace*{2em} %%%%% COMMENT ADDED ! + \inserttitlegraphic + } + \nointerlineskip +} +\defbeamertemplate*{title}{gotham}{ + %\raggedright% %%%%% COMMENT ADDED ! + \linespread{1.0} + \inserttitle + \par + \vspace*{0.5em} +} +\defbeamertemplate*{subtitle}{gotham}{ + %\raggedright% %%%%% COMMENT ADDED ! + \insertsubtitle + \par + \vspace*{0.5em} +} +\defbeamertemplate*{author}{gotham}{ + \vspace*{1.em} + \insertauthor + \par + \vspace*{0.25em} +} +\defbeamertemplate*{date}{gotham}{ + \insertdate + \par +} +\defbeamertemplate*{institute}{gotham}{ + \vspace*{3mm} + \insertinstitute + \par +} +% \end{macrocode} +% \end{macro} +% \end{implementation} + +% \begin{implementation} +% \begin{variable}{\l__gotham_titleseparator_width_dim, \l__gotham_titleseparator_height_dim, \l__gotham_title_width_dim, \l__gotham_subtitle_width_dim, \l__gotham_title_max_width_dim} +% Define the new lengths that will be used for titlepage templates. +% \begin{macrocode} +\dim_new:N \l__gotham_titleseparator_width_dim +\dim_set:Nn \l__gotham_titleseparator_width_dim {\textwidth} +\dim_new:N \l__gotham_titleseparator_height_dim +\dim_set:Nn \l__gotham_titleseparator_height_dim {2pt} +% \newlength{\titlewidth} +% \newlength{\subtitlewidth} +% \newlength{\maxwidth} +\dim_new:N \l__gotham_title_width_dim +\dim_new:N \l__gotham_subtitle_width_dim +\dim_new:N \l__gotham_title_max_width_dim +% \end{macrocode} +% \end{variable} +% \end{implementation} + +% \begin{implementation} +% \begin{variable}{\defbeamertemplate*{title~separator}{gotham}} +% Define a new template for ``line'' displayed on some titlepage templates. +% \begin{macrocode} +\defbeamertemplate*{title~separator}{gotham}{ + \begin{tikzpicture} + % \fill[fg] (0,0) rectangle (\gotham@titleseparator@linewidth, \gotham@titleseparator@lineheight); + \fill[fg] (0,0) rectangle + (\dim_use:N \l__gotham_titleseparator_width_dim, + \dim_use:N \l__gotham_titleseparator_height_dim); + \end{tikzpicture} + \par +} +% \end{macrocode} +% \end{variable} +% \end{implementation} + +% \begin{documentation} +% \begin{variable}{\gothamtitlepagelogo} +% The command to insert the institute logo on title page. +% This command is left empty by default, to be redefined by users +% \end{variable} +% \end{documentation} +%%%% +% \begin{implementation} +% \begin{variable}{\gothamtitlepagelogo} +% \UnitTested +% \TestFiles{gotham-test-038} +% \begin{macrocode} +\providecommand{\gothamtitlepagelogo}{} +% \end{macrocode} +% \end{variable} +% \end{implementation} + +% \begin{documentation} +% \begin{variable}{\gothamtitlepagebg} +% The command to insert the background title page +% This command is left empty by default, to be redefined by users +% \end{variable} +% \end{documentation} +%%%%% +% \begin{implementation} +% \begin{variable}{\gothamtitlepagebg} +% \UnitTested +% \TestFiles{gotham-test-038} +% \begin{macrocode} +\providecommand{\gothamtitlepagebg}{} +% \end{macrocode} +% \end{variable} +% \end{implementation} + +% \begin{implementation} +% \begin{macro}{\defbeamertemplate{title~page}{gotham~normal}} +% Template for the normal gotham title page. +% Each element is only typeset if it is defined by the user. +% If |\subtitle| is empty, for example, it won't leave a blank space on the title slide. +% \UnitTested +% \TestFiles{gotham-test-038} +% \begin{macrocode} + +% Beamer's definition of |\insertauthor| is always nonempty, so we have to test another macro initialized by |\author{...}| to see if the user has defined an author. +% This solution was suggested by Sam Carter in an answer to \href{https://tex.stackexchange.com/questions/241306/}{this Stack Exchange question}. + +\defbeamertemplate{title~page}{gotham~normal}{ + \ifx\insertframetitle\@empty\else\vspace*{-3em}\fi + \begin{picture}(0,0) + % The text: title, author, institute, etc. + \put(-30,-125){\noindent + \fcolorbox{normal~text.bg}{normal~text.bg}{ + \begin{minipage}[b][\paperheight]{\paperwidth} + \parbox[c][0pt][c]{0pt}{\gothamtitlepagebg} + \centering + \vfill + \ifx\inserttitle\@empty\else + \parbox{0.9\textwidth}{\centering + \usebeamertemplate*{title} + }\\[1.ex] + \fi + \ifx\insertsubtitle\@empty\else + \parbox{0.9\textwidth}{\centering + \usebeamertemplate*{subtitle} + }\\[2.ex] + \fi + % \hspace*{-0pt} + \usebeamertemplate*{title~separator} + % from above patch + \expandafter\ifblank\expandafter{\beamer@andstripped}{ + % empty author + \vspace*{1.em} + }{ + \usebeamertemplate*{author} + } + % \ifx\insertauthor\empty Empty~Author\else TT \fi + \ifx\insertdate\@empty\else\usebeamertemplate*{date}\fi + \ifx\insertinstitute\@empty\else{\parbox{0.9\textwidth}{\raggedright\usebeamertemplate*{institute}} }\fi + \vfill + \vbox{} + \end{minipage} + } + % end third argument of fcolorobx + } + + % the institute logo on title page + \put(234,-120){ + \gothamtitlepagelogo + } + + % the extra logos on title page (\inserttitlegraphic) + \put(-27,-123){ + \noindent\vbox{ + \begin{minipage}[b][0.96\paperheight]{0.899\textwidth} + \ifx\inserttitlegraphic\@empty\else\usebeamertemplate*{title~graphic}\fi + \end{minipage} + } + } + \end{picture} +} +% \end{macrocode} +% \end{macro} +% \end{implementation} + +% \begin{implementation} +% \begin{macro}{\defbeamertemplate{title~page}{gotham~reversed}} +% With a similarly layout to gotham normal, but this template inverses the background and foreground colors compared to the color mode chose (dark, light or transparent). +% \UnitTested +% \TestFiles{gotham-test-038} +% \begin{macrocode} +\defbeamertemplate{title~page}{gotham~reversed}{ + \begin{picture}(0,0) + % The background picture + \put(-28,-128){\gothamtitlepagebg} + + % The text: title, author, institute, etc. + \put(-4,-125){\noindent + % \fcolorbox{declared-color-frame}{declared-color-background}{text} + \ifbool{darkBG}{ + % Dark true + \setbeamercolor{normal~text}{fg=colorFG, } + \fcolorbox{colorPale}{colorPale}% reversed + }{ + % Light + \setbeamercolor{normal~text}{fg=colorBG, } + \fcolorbox{colorTitlepage}{colorTitlepage}% reversed + }% end if + { + % begin third argument of fcolorobx + %\fcolorbox{normal~text.fg}{normal~text.fg}{ + \begin{minipage}[b][\paperheight]{\textwidth} + \centering + \vfill + \ifx\inserttitle\@empty\else\usebeamertemplate*{title}\fi + \ifx\insertsubtitle\@empty\else\usebeamertemplate*{subtitle}\fi + \usebeamertemplate*{title~separator} + \expandafter\ifblank\expandafter{\beamer@andstripped}{ + % empty author + \vspace*{1.em} + }{ + \usebeamertemplate*{author} + } + \ifx\insertdate\@empty\else\usebeamertemplate*{date}\fi + \ifx\insertinstitute\@empty\else{\parbox{0.9\textwidth}{\raggedright\usebeamertemplate*{institute}} }\fi + \vfill + \vbox{} + \end{minipage} + } + % end third argument of fcolorobx + } + + % the institute logo on title page + \put(234,-120){ + \gothamtitlepagelogo + } + + % the extra logos on title page (\inserttitlegraphic) + \put(-27,-123){ + \noindent\vbox{ + \begin{minipage}[b][0.96\paperheight]{0.899\textwidth} + \ifx\inserttitlegraphic\@empty\else\usebeamertemplate*{title~graphic}\fi + \end{minipage} + } + } + \end{picture} +} +% \end{macrocode} +% \end{macro} +% \end{implementation} + + +% \begin{implementation} +% \begin{macro}{defbeamertemplate{title~page}{gotham~dividedpic}} +% This title page template is inspired from \url{https://github.com/LukasPietzschmann/awesome-beamer} +% \UnitTested +% \TestFiles{gotham-test-038} +% \begin{macrocode} +\defbeamertemplate{title~page}{gotham~dividedpic}{ + \long\def\tmpEmpty{} + \def\titlecontent{\usebeamerfont{title}\usebeamercolor[fg]{title}\inserttitle} + \def\subtitlecontent{\usebeamerfont{subtitle}\usebeamercolor[fg]{subtitle}\insertsubtitle} + \settowidth\l__gotham_title_width_dim\titlecontent + \settowidth\l__gotham_subtitle_width_dim\subtitlecontent + \setlength\l__gotham_title_max_width_dim{\ifdim\l__gotham_title_width_dim>\l__gotham_subtitle_width_dim\l__gotham_title_width_dim\else\l__gotham_subtitle_width_dim\fi} + % \thispagestyle{navigation@titlepage} + \begin{minipage}{.55\textwidth} + \raggedright + \titlecontent\\ + \subtitlecontent\\ + % \textcolor{accent}{\rule{\ifdim\l__gotham_title_max_width_dim<.55\textwidth\l__gotham_title_max_width_dim\else.55\textwidth\fi}{\smile@linewidth}}\\[2em] + \textcolor{colorProgBar}{\rule{\ifdim\l__gotham_title_max_width_dim<.55\textwidth\l__gotham_title_max_width_dim\else.55\textwidth\fi}{\dim_use:N \l__gotham_titleseparator_height_dim}}\\[2em] + \usebeamerfont{author}\usebeamercolor[fg]{author} + \insertauthor\\ + % \ifx\insertauthor\empty\else + \expandafter\ifblank\expandafter{\beamer@andstripped}{ + % empty author + \vspace*{1.em} + }{ + \usebeamerfont{author}\usebeamercolor[fg]{author} + \insertshortauthor + \vspace{2em} + } + % \fi + \ifx\insertinstitute\@empty\else{ + \usebeamertemplate*{institute}\vspace{2em} + }\fi + \insertdate + \end{minipage} + + % \ifdefined\@background + \begin{tikzpicture}[remember~picture, overlay] + \clip (current~page.south~east) + -- (current~page.north~east) + -- ++(-5.1, 0) + -- ++(-3, -\paperheight) + -- cycle; + + \ifx\gothamtitlepagebg\tmpEmpty + \fill[ + % path~fading=title~page~picture~fading, + % left~color=\ifbool{darkBG}{colorDark!200}{colorPale!100}, + right~color=colorTitlepage!100,%\ifbool{darkBG}{colorPale!100}{colorDark!100}, + % fading~angle=-15, + ] + (current~page.south~east) + rectangle + ++(\dimexpr-0.55\paperwidth, \dimexpr\paperheight+1cm); + \else + \node[ + anchor=south~east, + inner~sep=0, + outer~sep=0 + ] at (current~page.south~east) { + % \includegraphics[height=\paperheight]{\@background} + \gothamtitlepagebg + }; + \fi + \end{tikzpicture} +} +% \end{macrocode} +% \end{macro} +% \end{implementation} + + +% \begin{implementation} +% \begin{macro}{defbeamertemplate{title~page}{gotham~splitvert}} +% This title page template is inspired from \url{https://github.com/pcafrica/focus-beamertheme} +% \UnitTested +% \TestFiles{gotham-test-038} +% \begin{macrocode} +\defbeamertemplate{title~page}{gotham~splitvert}{ + % \IfEmpty{\insertframetitle}{ + \ifx\beamer@frametitle\@empty + \vspace*{-0.5\paperheight} + \else %}{ + \vspace*{-0.63\paperheight} + \fi %} + { + \usebeamercolor{frametitle}\colorlet{gotham@@tempColor}{bg}% + \begin{tikzpicture}[overlay, remember~picture] + \fill[color=gotham@@tempColor] (current~page.north~west) rectangle ([shift = {(0, -0.45\paperheight)}] current~page.north~east); + \end{tikzpicture} + } + + % \vspace{1.65\baselineskip} + \begin{minipage}[b][0.5\paperheight]{\textwidth} + % \vspace{\baselineskip} + \vbox{} + \vfill + { + \usebeamerfont{title} + \usebeamercolor[fg]{frametitle} + \inserttitle + } + \ifx\insertsubtitle\@empty\else + \\[1ex] + { + \usebeamerfont{subtitle} + \usebeamercolor[fg]{frametitle} + \insertsubtitle + } + \fi + \vspace{1.\baselineskip} + \end{minipage} + + + % Set the title graphic in a zero-height box, so that + % the position of other elements is not affected. + \ifx\inserttitlegraphic\@empty\else + \newline + \vspace*{-1.65\baselineskip} + % {\vfuzz=9999pt\vbox~to~0pt { + {\parbox[c][0pt][c]{\textwidth}{ + \raggedleft + \inserttitlegraphic + % \usebeamertemplate*{title~graphic} + }} + \fi + + % \ifx\insertauthor\empty\else + \expandafter\ifblank\expandafter{\beamer@andstripped}{ + % empty author + \vspace*{1.em} + }{ + \newline + \begin{minipage}[t]{\textwidth} + % \usebeamercolor{normal~text} + % \usebeamerfont{author} + % \insertauthor + \vspace*{-0.65\baselineskip} + \usebeamertemplate*{author} + \end{minipage} + } + % \fi + + \ifx\insertinstitute\@empty\else + \newline + \vspace*{-1.65\baselineskip} + \begin{minipage}[t]{\textwidth} + % \usebeamerfont{institute} + % \insertinstitute + \usebeamertemplate*{institute} + \end{minipage} + \fi + + \ifx\insertdate\@empty\else + \newline + \begin{minipage}[t]{\textwidth} + \vspace*{2.65\baselineskip} + % \usebeamerfont{date} + % \insertdate + \usebeamertemplate*{date} + \end{minipage} + \vspace*{-3.15\baselineskip} + \fi +} +% \end{macrocode} +% \end{macro} +% \end{implementation} + + +% \begin{documentation} +% \begin{function}{\__gotham_set_template:nn} +% \begin{syntax} +% \cs{__gotham_set_template:nn} \marg{element} \marg{option} +% \end{syntax} +% Function that test if a beamertemplate with the given element and option name exists. If it exists then it is set (applied), otherwise an error is raised. +% \end{function} +% \end{documentation} +%%%%%% +% \begin{implementation} +% \begin{function}{\__gotham_set_template:nn} +% \begin{arguments} +% \item element name (from beamer doc) in other word, the name the template category +% \item prefined option (from beamer doc) +% \end{arguments} +% Function to set a beamertemplate with an option if it exists, otherwise an error is raised. +% Unfortunatly, (as far as I know) it not possible to test if the element name exists independtly from the prefined option. +% \TestFiles{gotham-test-038} +% \begin{macrocode} +\cs_if_exist:NTF \__gotham_set_template:nn {}{ + % If it doesn't exist, then create it. + + % Define the command to set template if it exists. + \cs_new_protected:Nn \__gotham_set_template:nn + { + \cs_if_exist:cTF {beamer@@tmpop@#1@#2} { + \setbeamertemplate{#1}[#2] + }{ + \PackageError{beamerinnerthemegotham} + {The~beamer~template~named~'#1'~with~the~option~'#2'~does~not~exist} + {helping~message unknown setbeamertemplate option} + } + } +} +% \end{macrocode} +% \end{function} +% \end{implementation} + +% \begin{documentation} +% \begin{function}{\useinnertheme} +% \begin{syntax} +% \cs{useinnertheme}\oarg{option1=value1, ...}\marg{gotham} +% \textrm{where the options are (default marked as} \defopt{default}\textrm{):} +% \meta{title page} = \oarg{\defopt{gotham normal} \textbar gotham splitvert \textbar gotham dividedpic \textbar gotham reversed} +% \end{syntax} +% The 'package' (useinnertheme) options can set different title page templates. +% \end{function} +% \end{documentation} +%%%% +% \begin{implementation} +% \begin{macro}{inner key -- interface} +% Controls for the title page templates. +% \UnitTested +% \TestFiles{gotham-test-038} +% \begin{macrocode} +\keys_define:nn { gotham / inner } +{ + % title~page + title~page .usage:n = { general }, + title~page .default:n = { gotham~normal }, + title~page .code:n = { \__gotham_set_template:nn{title~page}{#1} }, +} +% \end{macrocode} +% \end{macro} +% \end{implementation} + + + +%% Backgrounds %%% +%%%%%%%%%%%%%%%%%% + +% \begin{implementation} +% \begin{macrocode} +% Background lengths +% \newlength{\imageBGoffset} +% \setlength{\imageBGoffset}{\paperwidth} +% \addtolength{\imageBGoffset}{-8.5mm} +% \end{macrocode} +% \end{implementation} + +% \begin{documentation} +% \begin{variable}{\l__gotham_template_name_prop} +% Dictionary/map of template elements and predefined option according to the context. +% Naming convention: template/What/Who, i.e. Name: key=background~canvas/watermark, value = gotham~draft +% \end{variable} +% \end{documentation} +%%%%%% +% \begin{implementation} +% \begin{variable}{\l__gotham_template_name_prop} +% Dictionary/map of template elements and predefined option according to the context. +% Naming convention: template/What/Who, i.e. Name: key=background~canvas/watermark, value = gotham~draft +% \begin{macrocode} +\prop_if_exist:NTF \l__gotham_template_name_prop +{}{ + % if not defined than define it. + \prop_new:N \l__gotham_template_name_prop +} +% \end{macrocode} +% \end{variable} +% \end{implementation} + + +% \begin{documentation} +% \begin{function}{\defbeamertemplate{background}{name}{def}} +% \begin{syntax} +% \cs{defbeamertemplate} \marg{background canvas} \marg{chosen name} \marg{definition} +% \end{syntax} +% The |background canvas| and the |background| beamer templates can be redifined by users if wanted/needed. +% By default these templates are empty (except the color in background canvas when it not transparent). +% \end{function} +% \end{documentation} +%%%%%% +% \begin{implementation} +% \begin{macro}{\defbeamertemplate{background~canvas}{empty}{def}} +% empty background canvas that contains color, that can be used to reset background. +% \UnitTested +% \TestFiles{gotham-test-038} +% \begin{macrocode} +\defbeamertemplate{background~canvas}{empty}{% empty background style has a color. + % \ifbeamercolorempty[bg]{background}{}{\color{bg}\vrule width\paperwidth height\paperheight}% copied beamer default here + \hspace*{28pt} + \begin{beamercolorbox}[wd=\paperwidth, + ht=\paperheight, + ]{background} + % nothing to write, only a background color + \end{beamercolorbox} +}% +\defbeamertemplate{background}{empty}{}% +% \end{macrocode} +% \end{macro} +% \end{implementation} + + +% \begin{implementation} +% \begin{macro}{\defbeamertemplate{background}{watermark/gotham~draft}{def}} +% Background that contains a watermakr stamp with the word: DRAFT. +% \UnitTested +% \TestFiles{gotham-test-038} +% \begin{macrocode} +\defbeamertemplate{background}{watermark/gotham~draft}{ + \begin{tikzpicture}[overlay,remember~picture] + \node[color=red, opacity=0.3, scale=5, rotate=45] at ([shift={(0,0)}]current~page.center) {DRAFT}; + \end{tikzpicture} +} +% Add the template to the prop (dictionary) +\prop_put:Nnn \l__gotham_template_name_prop {background/watermark} {gotham~draft} +% \end{macrocode} +% \end{macro} +% \end{implementation} + +% \begin{implementation} +% \begin{function}{\__gotham_add_beamerframe_key:n} +% \begin{arguments} +% \item Name of the option to add, this name should also correspond to the name of the environment followed by the suffix 'env'. +% \end{arguments} +% Function to add an option of a frame using an environment. +% For example, if the name 'optionA' is the argument given to the function, an frame option named 'optionA' will be added, and this option will surround the frame with the environment named 'optionAenv'. +% So, the environment 'optionA' must have been declared before. +% \TestFiles{gotham-test-038} +% \begin{macrocode} +\seq_if_exist:NTF \l__gotham_frameoption_tmp_seq {}{ + % Define the sequence of frameoptions environments to close + \seq_new:N \l__gotham_frameoption_tmp_seq +} + +\cs_if_exist:NTF \__gotham_add_beamerframe_key:n {}{ + % if it doesn't exist, then create it. + + % Define the command to add frameoptions + \cs_new_protected:Nn \__gotham_add_beamerframe_key:n { + \define@key{beamerframe}{ #1 }[true]{ + \begin{#1env} + \seq_put_left:Nn \l__gotham_frameoption_tmp_seq { \end{#1env} } + } + } + + % At the end of frames close the opened environments. + \apptocmd{\beamer@reseteecodes}{ + % Join elements in the queue without separator then output the result + \seq_use:Nn \l__gotham_frameoption_tmp_seq {} + % clear working queue + \seq_clear:N \l__gotham_frameoption_tmp_seq + }{}{} +} +% \end{macrocode} +% \end{function} +% \end{implementation} + +% \begin{documentation} +% \begin{function}{\begin{frame}[noBGC]} +% Add a frame option |noBGC| to display an empty background canvas. +% \end{function} +% \end{documentation} +%%%%%% +% \begin{implementation} +% \begin{macro}{\begin{frame}[noBCG]} +% Add a frame option |noBGC| to display an empty background canvas. +% To do it, we must add a global boolean variable, capture the option at the begin of the frame and patch the end of the frame. +% \UnitTested +% \TestFiles{gotham-test-038} +% \begin{macrocode} + +\newenvironment{noBGCenv}{ + \setbeamertemplate{background~canvas}[empty] +}{} +\__gotham_add_beamerframe_key:n {noBGC} +% \end{macrocode} +% \end{macro} +% \end{implementation} + +% \begin{documentation} +% \begin{variable}{\l_gotham_defaultWatermark} +% Boolean to triggering if watermark should be displayed by default (without giving the frame option). +% The variable is |false| by default. +% \end{variable} +% \end{documentation} +%%%%%% +% \begin{implementation} +% \begin{macro}{\l_gotham_defaultWatermark} +% Boolean variable to display the watermark by default (or not). +% \UnitTested +% \TestFiles{gotham-test-038} +% \begin{macrocode} +\bool_new:N \l_gotham_defaultWatermark +\bool_set_false:N \l_gotham_defaultWatermark +% At every new frame, reset the options to default (unless some options/keys are given) +\BeforeBeginEnvironment{frame}{ + \bool_if:NTF \l_gotham_defaultWatermark { + \setbeamertemplate{background}[watermark/\prop_item:Nn \l__gotham_template_name_prop {background/watermark}] + }{% false + \setbeamertemplate{background}[empty] + } +} +% \end{macrocode} +% \end{macro} +% \end{implementation} + +% \begin{documentation} +% \begin{function}{\begin{frame}[watermark]} +% Add a frame option |watermark| to display watermark in background. +% \end{function} +% \end{documentation} +%%%%%% +% \begin{implementation} +% \begin{macro}{\begin{frame}[watermark]} +% Add a frame option |watermark| to display an empty background canvas. +% To do it, we must add a global boolean variable, capture the option at the begin of the frame and patch the end of the frame. +% \UnitTested +% \TestFiles{gotham-test-038} +% \begin{macrocode} +% bool to trigger the add of watermark in background +\newenvironment{watermarkenv}{ + \setbeamertemplate{background}[ + watermark/\prop_item:Nn \l__gotham_template_name_prop {background/watermark} + ] +}{} +\__gotham_add_beamerframe_key:n {watermark} +% \end{macrocode} +% \end{macro} +% \end{implementation} + +% \begin{documentation} +% \begin{function}{\begin{frame}[nowatermark]} +% Add a frame option |nowatermark| to do not display nowatermark in background. +% \end{function} +% \end{documentation} +%%%%%% +% \begin{implementation} +% \begin{macro}{\begin{frame}[nowatermark]} +% Add a frame option |nowatermark| to do not display an empty background canvas. +% To do it, we must add a global boolean variable, capture the option at the begin of the frame and patch the end of the frame. +% \UnitTested +% \TestFiles{gotham-test-038} +% \begin{macrocode} +% bool to trigger the add of nowatermark in background +\newenvironment{nowatermarkenv}{ + \setbeamertemplate{background}[empty] +}{} +\__gotham_add_beamerframe_key:n {nowatermark} +% \end{macrocode} +% \end{macro} +% \end{implementation} + +% \begin{implementation} +% \begin{variable}{\l__gotham_tmpa_seq, \l__gotham_tmpa_tl, \l__gotham_tmpb_tl} +% tmp variables +% \begin{macrocode} +\seq_if_exist:NTF \l__gotham_tmpa_seq +{}{ + % sequence + \seq_new:N \l__gotham_tmpa_seq +} +\tl_if_exist:NTF \l__gotham_tmpa_tl +{}{ + % token list A + \tl_new:N \l__gotham_tmpa_tl +} +\tl_if_exist:NTF \l__gotham_tmpb_tl +{}{ + % token list B + \tl_new:N \l__gotham_tmpb_tl +} +% \end{macrocode} +% \end{variable} +% \end{implementation} + +% \begin{implementation} +% \begin{function}{\__gotham_set_prop_template:nn} +% \begin{arguments} +% \item element name (from beamer doc) in other word, the name the template category +% \item prefined option (from beamer doc) +% \end{arguments} +% Function that store in a map the name a template use later. +% The following naming convention is used: Template/What/Who~Name: watermark/gotham~draft. +% The means for example that if a beamer template is defined using +% |\defbeamertemplate{background}{watermark/gotham~draft}{...}|, +% then the function has to be call using +% |\__gotham_set_prop_template{background/watermark}{gotham~draft}|, +% that will filled internally the map using the l3 command +% |\prop_put:Nnn \l__gotham_template_name_prop {background/watermark}{gotham~draft}|. +% If the template name given as input does not exist, an error is raised. +% \TestFiles{gotham-test-039} +% \begin{macrocode} +\cs_if_exist:NTF \__gotham_set_prop_template:nn {}{ + % if it doesn't exist, then create it. + \cs_new_protected:Nn \__gotham_set_prop_template:nn + { + % Check if the first argument contains a / + \tl_if_in:nnTF { #1 } { / } + { + % Split the first around the / + \seq_set_split:Nnn \l__gotham_tmpa_seq { / } { #1 } + \tl_set:Nn \l__gotham_tmpa_tl { \seq_item:Nn \l__gotham_tmpa_seq { 1 } } + \tl_set:Nn \l__gotham_tmpb_tl { \seq_item:Nn \l__gotham_tmpa_seq { 2 } } + % Check if template exist + \cs_if_exist:cTF {beamer@@tmpop@\exp_not:V \l__gotham_tmpa_tl @\exp_not:V \l__gotham_tmpb_tl /#2} { + % set the value in the map, so it can be called later. + \prop_put:Nnn \l__gotham_template_name_prop {#1} {#2} + % \setbeamertemplate{#1}[#2] + }{ + \PackageError{beamerthemegotham} + {The~beamer~template~named~'\l__gotham_tmpa_tl'~with~the~option~'\l__gotham_tmpb_tl/#2'~does~not~exist} + {helping~message} + } + }{% false -> error + \PackageError{beamerthemegotham} + {% + When~using~'\c_backslash_str\cs_to_str:N \__gotham_set_prop_template'~the~first~argument~should~contain~a~'/'~to~respect~the~naming~convention~used~(Template/what/Who~name),~but~you~gave~'#1'.~ + As~example:~if~'\c_backslash_str defbeamertemplate{background}{watermark/gotham~draft}'...,~then~use~'\c_backslash_str\cs_to_str:N \__gotham_set_prop_template{background/watermark}{gotham~draft}' + }{helping~message} + } + } +} +% \end{macrocode} +% \end{function} +% \end{implementation} + +% \begin{documentation} +% \begin{function}{\useinnertheme} +% \begin{syntax} +% \cs{useinnertheme}\oarg{option1=value1, ...}\marg{gotham} +% \textrm{where the options are (default marked as} \defopt{default}\textrm{):} +% \meta{watermark default} = \oarg{\defopt{off} \textbar on } +% \meta{watermark template} = \oarg{\defopt{gotham draft} \textbar ...} +% \end{syntax} +% The 'package' (useinnertheme) options can control |background| (and |background canvas|) templates according to situations. +% Block environments such as |theorem| and |example| have no background color by default. +% The option |watermark default=on| can enable the |watermark template| on every frame; but it can still be turned off for specific frames when using the frame option |nowatermark|. +% \end{function} +% \end{documentation} +%%%% +% \begin{implementation} +% \begin{macro}{inner key -- interface} +% Controls the inner settings for background and watermark). +% \UnitTested +% \TestFiles{gotham-test-037} +% \begin{macrocode} +\keys_define:nn { gotham / inner }{ + % watermark template + watermark~template .usage:n = { general }, + watermark~template .default:n = { gotham~draft }, + watermark~template .code:n = { \__gotham_set_prop_template:nn{background/watermark}{#1} }, +} +\keys_define:nn { gotham / inner }{ + % watermark default + watermark~default .choice:, + watermark~default .usage:n = { general }, + watermark~default .default:n = { false }, + + watermark~default / true .code:n = { \bool_set_true:N \l_gotham_defaultWatermark }, + watermark~default / on .code:n = { \bool_set_true:N \l_gotham_defaultWatermark }, + watermark~default / enable .code:n = { \bool_set_true:N \l_gotham_defaultWatermark }, + + watermark~default / false .code:n = { \bool_set_false:N \l_gotham_defaultWatermark }, + watermark~default / off .code:n = { \bool_set_false:N \l_gotham_defaultWatermark }, + watermark~default / disable .code:n = { \bool_set_false:N \l_gotham_defaultWatermark }, + + watermark~default / unknown .code:n = { \PackageWarning{ gotham } { The~choice~'#1'~is~unknown~for~the~(known)~option~'watermark~default',~so~being~ignored. }{helping~message: watermark~default / unknown} }, +} +% \end{macrocode} +% \end{macro} +% \end{implementation} + + +%%%% Stand IN/OUT %%%% +%%%%%%%%%%%%%%%%%%%%%%%% + +% \begin{documentation} +% \begin{function}{\begin{frame}[c]} +% Add a frame option |c| for enhanced vertically centered text in the frame. +% \end{function} +% \end{documentation} +%%%%%% +% \begin{implementation} +% \begin{macro}{\begin{frame}[c]} +% Add a frame option |c| for improved vertically centered text in the frame. +% By default, Beamer frames offer the |c| option to \textit{almost} vertically center the text, but the placement is a little too high. +% To fix this, we redefine the |c| option to equalize |\beamer@frametopskip| and |\beamer@framebottomskip|. +% This solution was suggested by Enrico Gregorio in an answer to \href{http://tex.stackexchange.com/questions/247826/}{this Stack Exchange question}. +% \UnitTested +% \TestFiles{gotham-test-039} +% \begin{macrocode} +\define@key{beamerframe}{c}[true]{ + \beamer@frametopskip=0pt~plus~1fill\relax + \beamer@framebottomskip=0pt~plus~1fill\relax + \beamer@frametopskipautobreak=0pt~plus~.4\paperheight\relax + \beamer@framebottomskipautobreak=0pt~plus~.6\paperheight\relax + \def\beamer@initfirstlineunskip{} +} +% \end{macrocode} +% \end{macro} +% \end{implementation} + +% \begin{implementation} +% \begin{macro}{\defbeamertemplate{background~canvas}{standout/gotham}} +% Definition of the background canvas template used by the standout frame of gotham theme. +% \UnitTested +% \TestFiles{gotham-test-040} +% \begin{macrocode} +\defbeamertemplate{background~canvas}{standout/gotham}{ + % copied from beamer default + \ifbeamercolorempty[bg]{standout}{ + % if the background standout color is transparent, do nothing. + }{ + \usebeamercolor[bg]{standout}\color{bg} + \vrule~width\paperwidth~height\paperheight + } +} +% Add the template to the prop (dictionary) of background template to use according to the situation +\prop_put:Nnn \l__gotham_template_name_prop {background~canvas/standout} {gotham} +% \end{macrocode} +% \end{macro} +% \end{implementation} + +% \begin{implementation} +% \begin{macro}{\defbeamertemplate{standout}{gotham}} +% Definition of the standout template used by the standout frame of gotham theme. +% This includes background canvas template, fonts and colors. +% \UnitTested +% \TestFiles{gotham-test-040} +% \begin{macrocode} +\defbeamertemplate*{standout}{gotham}{ + % \setkeys{beamerframe}{c} + % \setkeys{beamerframe}{noframenumbering} + % \centering + + \setbeamertemplate{background~canvas}[standout/\prop_item:Nn \l__gotham_template_name_prop {background~canvas/standout}] + % \usebeamertemplate{background~canvas}%[standout/gotham] + \usebeamerfont{standout} + % if the background color is switched, then change foreground (font) color. + \ifbeamercolorempty[bg]{primary~palette}{ + %true : empty background (transparent) + \setbeamercolor{background~canvas}{ + use=primary~palette, + bg=primary~palette.fg + } + }{ + %false : background not empty (dark or light) + \setbeamercolor{background~canvas}{ + use=primary~palette, + bg=primary~palette.bg + } + } + \setbeamercolor{local~structure}{fg=primary~palette.bg} + \usebeamercolor[fg]{primary~palette} +} +% \end{macrocode} +% \end{macro} +% \end{implementation} + +% \begin{documentation} +% \begin{function}{\begin{frame}[standout]} +% Add a frame option |standout| to display the standout frame template. +% \end{function} +% \end{documentation} +%%%%%% +% \begin{implementation} +% \begin{macro}{\begin{frame}[standout]} +% Add a frame option |standout| to display the standout frame template. +% To do it, we must add a global boolean variable, capture the option at the begin of the frame and patch the end of the frame. +% \UnitTested +% \TestFiles{gotham-test-040} +% \begin{macrocode} +\newenvironment{standoutenv}{ + \usebeamertemplate{standout} +}{} +\__gotham_add_beamerframe_key:n {standout} +% \end{macrocode} +% \end{macro} +% \end{implementation} + +% \begin{implementation} +% \begin{macro}{\defbeamertemplate{background~canvas}{standin/gotham}} +% Definition of the background canvas template used by the standin frame of gotham theme. +% \UnitTested +% \TestFiles{gotham-test-040} +% \begin{macrocode} +\defbeamertemplate{background~canvas}{standin/gotham}{ + \ifbeamercolorempty[bg]{standin}{ + % if the background standin color is transparent, do nothing. + }{ + % Uncomment this if-condition to have a 'light' background in 'transparent' color-mode. + \ifbool{transparentBG}{ + % \color{} is not possible so, it is better to do nothing for transparent bg than creating a transparent vrule. + }{ + \usebeamercolor[bg]{standin}\color{bg} + \vrule~width\paperwidth~height\paperheight + } + } +} +% Add the template to the prop (dictionary) of background template to use according to the situation +\prop_put:Nnn \l__gotham_template_name_prop {background~canvas/standin} {gotham} +% \end{macrocode} +% \end{macro} +% \end{implementation} + +% \begin{implementation} +% \begin{macro}{\defbeamertemplate{standout}{gotham}} +% Definition of the standout template used by the standout frame of gotham theme. +% This includes background canvas template, fonts and colors. +% \UnitTested +% \TestFiles{gotham-test-040} +% \begin{macrocode} +\defbeamertemplate*{standin}{gotham}{ + % + % \setkeys{beamerframe}{c} + % \setkeys{beamerframe}{noframenumbering} + % \centering + \setbeamertemplate{background~canvas}[standin/\prop_item:Nn \l__gotham_template_name_prop {background~canvas/standin}] + % \usebeamertemplate{background~canvas}%[standin/gotham] + \usebeamerfont{standin} + % + % Uncomment this if-condition to have a 'light' frametitle in 'transparent' color-mode. + % \ifbeamercolorempty[bg]{normal~text}{ + % %true : empty background (transparent) + % \setbeamercolor{frametitle}{ + % use=normal~text, + % bg=colorBG, + % fg=normal~text.fg + % } + % }{ + % false + \setbeamercolor{frametitle}{ + use=normal~text, + bg=normal~text.bg, + fg=normal~text.fg + } + % } + % \setbeamercolor{frametitle}{ + % use=normal~text, + % bg=normal~text.bg, + % fg=normal~text.fg + % } +} +% \end{macrocode} +% \end{macro} +% \end{implementation} + +% \begin{documentation} +% \begin{function}{\begin{frame}[standin]} +% Add a frame option |standin| to display the standin frame template. +% \end{function} +% \end{documentation} +%%%%%% +% \begin{implementation} +% \begin{macro}{\begin{frame}[standin]} +% Add a frame option |standin| to display the standin frame template. +% To do it, we must add a global boolean variable, capture the option at the begin of the frame and patch the end of the frame. +% \UnitTested +% \TestFiles{gotham-test-040} +% \begin{macrocode} +\newenvironment{standinenv}{ + \usebeamertemplate{standin} +}{} +\__gotham_add_beamerframe_key:n {standin} +% \end{macrocode} +% \end{macro} +% \end{implementation} + +% \begin{documentation} +% \begin{function}{\useinnertheme} +% \begin{syntax} +% \cs{useinnertheme}\oarg{option1=value1, ...}\marg{gotham} +% \textrm{where the options are (default marked as} \defopt{default}\textrm{):} +% \meta{standin template} = \oarg{\defopt{gotham} \textbar ...} +% \meta{standout template} = \oarg{\defopt{gotham} \textbar ...} +% \meta{standin BG template} = \oarg{\defopt{gotham} \textbar ...} +% \meta{standout BG template} = \oarg{\defopt{gotham} \textbar ...} +% \end{syntax} +% The 'package' (useinnertheme) options can control |standout| (and |standin|) templates. +% These templates are activated when giving the frame option |\begin{frame}[standin]| and |standout|. +% \end{function} +% \end{documentation} +%%%% +% \begin{implementation} +% \begin{macro}{inner key -- interface} +% Controls the inner settings for standout and standin. +% \UnitTested +% \TestFiles{gotham-test-037} +% \begin{macrocode} +\keys_define:nn { gotham / inner } +{ + % standout BG template + standout~BG~template .usage:n = { general }, + standout~BG~template .default:n = { gotham }, + standout~BG~template .code:n = { + \__gotham_set_prop_template:nn{background~canvas/standout}{#1} + }, +} +\keys_define:nn { gotham / inner } +{ + % standin BG template + standin~BG~template .usage:n = { general }, + standin~BG~template .default:n = { gotham }, + standin~BG~template .code:n = { + \__gotham_set_prop_template:nn{background~canvas/standin}{#1} + }, +} +\keys_define:nn { gotham / inner } +{ + % standout template + standout~template .usage:n = { general }, + standout~template .default:n = { gotham }, + standout~template .code:n = { + \__gotham_set_template:nn{standout}{#1} + }, +} +\keys_define:nn { gotham / inner } +{ + % standin template + standin~template .usage:n = { general }, + standin~template .default:n = { gotham }, + standin~template .code:n = { + \__gotham_set_template:nn{standin}{#1} + }, +} +% \end{macrocode} +% \end{macro} +% \end{implementation} + + +%%%% Sections %%%% +%%%%%%%%%%%%%%%%%%%%%%% + +% \begin{documentation} +% \begin{function}{\begin{frame}[part]} +% Add a frame option |part| to display the part frame template. +% \end{function} +% \end{documentation} +%%%%%% +% \begin{implementation} +% \begin{macro}{\begin{frame}[part]} +% Add a frame option |part| to display the part frame template. +% To do it, we must add a global boolean variable, capture the option at the begin of the frame and patch the end of the frame. +% \UnitTested +% \TestFiles{gotham-test-041} +% \begin{macrocode} +\bool_new:N \l_gotham_partframe +\bool_set_false:N \l_gotham_partframe +\define@key{beamerframe}{part}[true]{ + \bool_set_true:N \l_gotham_partframe + \begingroup + \usebeamertemplate{part~frame} +} +\apptocmd{\beamer@reseteecodes}{ + \bool_if:NTF \l_gotham_partframe { + \endgroup + \bool_set_false:N \l_gotham_partframe + }{} +}{}{} +% \define@key{beamerframe}{part}[true]{ +% \thispagestyle{navigation@part} +% } +% \def\ps@navigation@part{ +% \usebeamertemplate{part~frame} +% \@nameuse{ps@navigation} +% } +% \end{macrocode} +% \end{macro} +% \end{implementation} + +% \begin{documentation} +% \begin{function}{\begin{frame}[section]} +% Add a frame option |section| to display the section frame template. +% \end{function} +% \end{documentation} +%%%%%% +% \begin{implementation} +% \begin{macro}{\begin{frame}[section]} +% Add a frame option |section| to display the section frame template. +% To do it, we must add a global boolean variable, capture the option at the begin of the frame and patch the end of the frame. +% \UnitTested +% \TestFiles{gotham-test-041} +% \begin{macrocode} +\bool_new:N \l_gotham_sectionframe +\bool_set_false:N \l_gotham_sectionframe +\define@key{beamerframe}{section}[true]{ + \bool_set_true:N \l_gotham_sectionframe + \begingroup + \usebeamertemplate{section~frame} +} +\apptocmd{\beamer@reseteecodes}{ + \bool_if:NTF \l_gotham_sectionframe { + \endgroup + \bool_set_false:N \l_gotham_sectionframe + }{} +}{}{} +% \define@key{beamerframe}{section}[true]{ +% \thispagestyle{navigation@section} +% } +% \def\ps@navigation@section{ +% \usebeamertemplate{section~frame} +% \@nameuse{ps@navigation} +% } +% \end{macrocode} +% \end{macro} +% \end{implementation} + +% \begin{documentation} +% \begin{function}{\begin{frame}[subsection]} +% Add a frame option |subsection| to display the subsection frame template. +% \end{function} +% \end{documentation} +%%%%%% +% \begin{implementation} +% \begin{macro}{\begin{frame}[subsection]} +% Add a frame option |subsection| to display the subsection frame template. +% To do it, we must add a global boolean variable, capture the option at the begin of the frame and patch the end of the frame. +% \UnitTested +% \TestFiles{gotham-test-041} +% \begin{macrocode} +\bool_new:N \l_gotham_subsectionframe +\bool_set_false:N \l_gotham_subsectionframe +\define@key{beamerframe}{subsec}[true]{ + \bool_set_true:N \l_gotham_subsectionframe + \begingroup + \usebeamertemplate{subsection~frame} +} +\apptocmd{\beamer@reseteecodes}{ + \bool_if:NTF \l_gotham_subsectionframe { + \endgroup + \bool_set_false:N \l_gotham_subsectionframe + }{} +}{}{} +% \define@key{beamerframe}{subsec}[true]{ +% \thispagestyle{navigation@subsec} +% } +% \def\ps@navigation@subsec{ +% \usebeamertemplate{subsection~frame} +% \@nameuse{ps@navigation} +% } +% \end{macrocode} +% \end{macro} +% \end{implementation} + +% \begin{documentation} +% \begin{function}{\begin{frame}[subsubsection]} +% Add a frame option |subsubsection| to display the subsubsection frame template. +% \end{function} +% \end{documentation} +%%%%%% +% \begin{implementation} +% \begin{macro}{\begin{frame}[subsubsection]} +% Add a frame option |subsubsection| to display the subsubsection frame template. +% To do it, we must add a global boolean variable, capture the option at the begin of the frame and patch the end of the frame. +% \UnitTested +% \TestFiles{gotham-test-041} +% \begin{macrocode} +\bool_new:N \l_gotham_subsubsectionframe +\bool_set_false:N \l_gotham_subsubsectionframe +\define@key{beamerframe}{subsubsec}[true]{ + \bool_set_true:N \l_gotham_subsubsectionframe + \begingroup + \usebeamertemplate{subsubsection~frame} +} +\apptocmd{\beamer@reseteecodes}{ + \bool_if:NTF \l_gotham_subsubsectionframe { + \endgroup + \bool_set_false:N \l_gotham_subsubsectionframe + }{} +}{}{} +% \define@key{beamerframe}{subsubsec}[true]{ +% \thispagestyle{navigation@subsubsec} +% } +% \def\ps@navigation@subsubsec{ +% \usebeamertemplate{subsubsection~frame} +% \@nameuse{ps@navigation} +% } +% \end{macrocode} +% \end{macro} +% \end{implementation} + +% \begin{documentation} +% \begin{variable}{\partContentName, \secContentName, \subsecContentName} +% Commands containing the 'table of contents' title for part, section and subection (if theses ToC frames are enabled). +% An option for subsubsection is not useful (at least up to understanding of the moment) because we do not display frame with the content of a subsubsection since it is the small unity we are working with. +% \end{variable} +% \end{documentation} +%%%%%% +% \begin{implementation} +% \begin{variable}{\providebool{partContent}, \partContentName} +% Boolean variable to enable the table of contents of the part, and the command containing the 'table of contents' title. +% \begin{macrocode} +% repeated from BeamerExtra +\providebool{partContent} +\booltrue{partContent} +\providecommand{\partContentName}{Part~content} +% \end{macrocode} +% \end{variable} +% \end{implementation} +% \begin{implementation} +% \begin{variable}{\providebool{secContent}, \secContentName} +% Boolean variable to enable the table of contents of the section, and the command containing the 'table of contents' title. +% \begin{macrocode} +\providebool{sectionContent} +\booltrue{sectionContent} +\providecommand{\secContentName}{Section~content} +% \end{macrocode} +% \end{variable} +% \end{implementation} +% \begin{implementation} +% \begin{variable}{\providebool{subsectionContent}, \subsecContentName} +% Boolean variable to enable the table of contents of the subsection, and the command containing the 'table of contents' title. +% \begin{macrocode} +\providebool{subsectionContent} +\booltrue{subsectionContent} +\providecommand{\subsecContentName}{Subsection~content} +% \end{macrocode} +% \end{variable} +% \end{implementation} +% \begin{implementation} +% \begin{variable}{\providebool{subsubsectionContent}, \subsubsecContentName} +% Boolean variable to enable the table of contents of the subsubsection, and the command containing the 'table of contents' title. +% \begin{macrocode} +% Subsubsection is not useful (at least up to understanding of the moment) because we do not display frame with the content of a subsubsection since it is the small unity we are working with. +\providebool{subsubsectionContent} +\booltrue{subsubsectionContent} +\providecommand{\subsubsecContentName}{Subsubsection~content} +% \end{macrocode} +% \end{variable} +% \end{implementation} + +% \begin{implementation} +% \begin{macro}{\defbeamertemplate{part~title}{gotham}, \defbeamertemplate{section~title}{gotham}, \defbeamertemplate{subsection~title}{gotham}, \defbeamertemplate{subsection~title}{gotham}} +% Definitions of templates controling how will appear the name/title of the parts, sections, subsections and subsubsections. +% \UnitTested +% \TestFiles{gotham-test-041} +% \begin{macrocode} +\def\partname{\translate{Part}} +\defbeamertemplate*{part~title}{gotham}{ + \usebeamercolor[fg]{part~title} + \usebeamerfont{part~title} + \partname \ \insertromanpartnumber + \\[1.75ex] + \insertpart +} +\defbeamertemplate*{section~title}{gotham}{ + \usebeamercolor[fg]{section~title} + \usebeamerfont{section~title} + \insertsectionnumber.~ + \insertsectionhead +} +\defbeamertemplate*{subsection~title}{gotham}{ + \usebeamercolor[fg]{subsection~title} + \usebeamerfont{subsection~title} + \insertsectionnumber.\insertsubsectionnumber.~ + \insertsubsectionhead +} +\def\subsubsectionname{\translate{Subsubsection}} +\def\insertsubsubsectionnumber{\arabic{subsubsection}} +\def\subsubsectionpage{\usebeamertemplate*{subsubsection~page}} +\defbeamertemplate*{subsubsection~title}{gotham}{ + \usebeamercolor[fg]{subsubsection~title} + \usebeamerfont{subsubsection~title} + \insertsectionnumber.\insertsubsectionnumber.\insertsubsubsectionnumber.~ + \insertsubsubsectionhead +} +% \end{macrocode} +% \end{macro} +% \end{implementation} + +% \begin{documentation} +% \begin{variable}[added=2025-01-06]{\partpageOptions, \sectionpageOptions, \subsectionpageOptions, \subsubsectionpageOptions} +% Variable commands that contain the coma-separated list of options which are given to the partpage (respectively to the section, subsection and subsubsection). +% \end{variable} +% \end{documentation} +%%%% +% \begin{implementation} +% \begin{variable}[added=2025-01-06]{\partpageOptions, \sectionpageOptions, \subsectionpageOptions, \subsubsectionpageOptions} +% Options used in |\begin{frame}[\partpageOptions,part]{\partpage}...| . +% TESTED in gotham-test-1039 +% \changes{v1.2.1}{2025-01-06}{newly introduced} +% \begin{macrocode} +\providecommand{\partpageOptions}{noframenumbering} +\providecommand{\sectionpageOptions}{noframenumbering} +\providecommand{\subsectionpageOptions}{noframenumbering} +\providecommand{\subsubsectionpageOptions}{noframenumbering} +% \end{macrocode} +% \end{variable} +% \end{implementation} + +% \begin{documentation} +% \begin{variable}[added=2025-01-06]{\partpageTocOptions, \sectionpageTocOptions, \subsectionpageTocOptions, \subsubsectionpageTocOptions} +% Variable commands that contain the coma-separated list of options which are given to the table of contents page at the begin of a part (respectively to the section, subsection and subsubsection). +% \end{variable} +% \end{documentation} +%%%% +% \begin{implementation} +% \begin{variable}[added=2025-01-06]{\partpageTocOptions, \sectionpageTocOptions, \subsectionpageTocOptions, \subsubsectionpageTocOptions} +% Options used in |\begin{frame}[\partpageTocOptions,tocpart]{toc part page...}| . +% TESTED in gotham-test-1039 +% \changes{v1.2.1}{2025-01-06}{newly introduced} +% \begin{macrocode} +\providecommand{\partpageTocOptions}{noframenumbering} +\providecommand{\sectionpageTocOptions}{noframenumbering} +\providecommand{\subsectionpageTocOptions}{noframenumbering} +% \providecommand{\subsubsectionpageTocOptions}{noframenumbering} +% \end{macrocode} +% \end{variable} +% \end{implementation} + +% \begin{documentation} +% \begin{variable}[added=2025-01-06]{\partTocOptions, \sectionTocOptions, \subsectionTocOptions, \subsubsectionTocOptions} +% Variable commands that contain the coma-separated list of options which are given to the table of content at the beginning of a part (respectively to the section, subsection and subsubsection). +% \end{variable} +% \end{documentation} +%%%% +% \begin{implementation} +% \begin{variable}[added=2025-01-06]{\partTocOptions, \sectionTocOptions, \subsectionTocOptions, \subsubsectionTocOptions} +% Options used in |\tableofcontents[\partTocOptions]| . +% TESTED in gotham-test-1039 +% \changes{v1.2.1}{2025-01-06}{newly introduced} +% \begin{macrocode} +\providecommand{\partTocOptions}{} +\providecommand{\sectionTocOptions}{ + currentsection, currentsubsection, + hideothersubsections, + sectionstyle=show/shaded, +} +\providecommand{\subsectionTocOptions}{ + currentsection, currentsubsection, + % currentsubsubsection, + hideothersubsections, + sectionstyle=show/shaded, + subsectionstyle=show/shaded/hide, + subsubsectionstyle=show/show/hide, +} +% \providecommand{\subsubsectionTocOptions}{} +% \end{macrocode} +% \end{variable} +% \end{implementation} + +% \begin{implementation} +% \begin{function}[updated=2025-01-06]{\__gotham_inner_disable_partpage:, \__gotham_inner_enable_partpage:} +% Commands to disable or enable the display of a 'part page' frame at the beginning of every new part. +% \changes{v1.2.1}{2025-01-06}{includes new variables} +% \TestFiles{gotham-test-041} +% \begin{macrocode} +\cs_new_protected:Nn \__gotham_inner_disable_partpage: +{ + \AtBeginPart{ + % intentionally empty + } +} + +\cs_new_protected:Nn \__gotham_inner_enable_partpage: +{ + \AtBeginPart{ + \ifbeamer@inframe + \partpage + \else + \ifdefempty{\partpageOptions}{ + % empty command + \frame[c, part]{\partpage} + }{ + % non-empty command + \frame[c, \expandafter\partpageOptions, part]{\partpage} + } + \fi + + \ifbool{partContent}{ + % true + \ifdefempty{\partpageTocOptions}{ + % empty command + \begin{frame}[tocpart] + }{ + % non-empty command + \begin{frame}[tocpart, \expandafter\partpageTocOptions] + } + \ifdefempty{\partContentName}{}{\frametitle{\partContentName}} + \ifdefempty{\partTocOptions}{ + % empty command + \tableofcontents[part=\thepart] + }{ + % non-empty command + \expandafter\tableofcontents[part=\thepart, \expandafter\partTocOptions] + } + \end{frame} + }{ + % else empty + } + } +} +% \end{macrocode} +% \end{function} +% \end{implementation} + +% \begin{implementation} +% \begin{function}[updated=2025-01-06]{\__gotham_inner_disable_sectionpage:, \__gotham_inner_enable_sectionpage:} +% Commands to disable or enable the display of a 'section page' frame at the beginning of every new section. +% \changes{v1.2.1}{2025-01-06}{includes new variables} +% \TestFiles{gotham-test-041} +% \begin{macrocode} +\cs_new_protected:Nn \__gotham_inner_disable_sectionpage: +{ + \AtBeginSection{ + % intentionally empty + } +} + +\cs_new_protected:Nn \__gotham_inner_enable_sectionpage: +{ + \AtBeginSection{ + \ifbeamer@inframe + \sectionpage + \else + \ifdefempty{\sectionpageOptions}{ + % empty command + \frame[c, section]{\sectionpage} + }{ + % non-empty command + \frame[c, \expandafter\sectionpageOptions, section]{\sectionpage} + } + \fi + + \ifbool{sectionContent}{ + % true + \ifdefempty{\sectionpageTocOptions}{ + % empty command + \begin{frame}[tocsec] + }{ + % non-empty command + \begin{frame}[\expandafter\sectionpageTocOptions, tocsec] + } + \ifdefempty{\secContentName}{}{\frametitle{\secContentName}} + { + \expandafter\tableofcontents\expandafter[\sectionTocOptions] + } + \end{frame} + }{ + % else empty + } + } +} +% \end{macrocode} +% \end{function} +% \end{implementation} + +% \begin{implementation} +% \begin{function}[updated=2025-01-06]{\__gotham_inner_disable_subsectionpage:, \__gotham_inner_enable_subsectionpage:} +% Commands to disable or enable the display of a 'subsection page' frame at the beginning of every new subsection. +% \changes{v1.2.1}{2025-01-06}{includes new variables} +% \TestFiles{gotham-test-041} +% \begin{macrocode} +\cs_new_protected:Nn \__gotham_inner_disable_subsectionpage: +{ + \AtBeginSubsection{ + % intentionally empty + } +} + +\cs_new_protected:Nn \__gotham_inner_enable_subsectionpage: +{ + \AtBeginSubsection{ + \ifbeamer@inframe + \subsectionpage + \else + \ifdefempty{\subsectionpageOptions}{ + % empty command + \frame[c, subsec]{\subsectionpage} + }{ + % non-empty command + \frame[c, \expandafter\subsectionpageOptions, subsec]{\subsectionpage} + } + \fi + + \ifbool{subsectionContent}{ + % true + \ifdefempty{\subsectionpageTocOptions}{ + % empty command + \begin{frame}[tocsubsec] + }{ + % non-empty command + \begin{frame}[\expandafter\subsectionpageTocOptions, tocsubsec] + } + \ifdefempty{\subsecContentName}{}{\frametitle{\subsecContentName}} + { + \expandafter\tableofcontents\expandafter[\subsectionTocOptions] + } + \end{frame} + }{ + % else empty + } + } +} +% \end{macrocode} +% \end{function} +% \end{implementation} + +% \begin{implementation} +% \begin{function}[updated=2025-01-06]{\__gotham_inner_disable_subsubsectionpage:, \__gotham_inner_enable_subsubsectionpage:} +% Commands to disable or enable the display of a 'subsubsection page' frame at the beginning of every new subsubsection. +% \changes{v1.2.1}{2025-01-06}{includes new variables} +% \TestFiles{gotham-test-041} +% \begin{macrocode} +\cs_new_protected:Nn \__gotham_inner_disable_subsubsectionpage: +{ + \AtBeginSubsubsection{ + % intentionally empty + } +} + +\cs_new_protected:Nn \__gotham_inner_enable_subsubsectionpage: +{ + \AtBeginSubsubsection{ + \ifbeamer@inframe + \subsubsectionpage + \else + \ifdefempty{\subsubsectionpageOptions}{ + % empty command + \frame[c, subsubsec]{\subsubsectionpage} + }{ + % non-empty command + \frame[c, \expandafter\subsubsectionpageOptions, subsubsec]{\subsubsectionpage} + } + \fi + + % I don't think anyone will use this for now. But, just in case I keep it commented. + % \ifbool{subsubsectionContent}{ + % % true + % \ifdefempty{\subsubsectionpageTocOptions}{ + % % empty command + % \begin{frame}[tocsubsubsec] + % }{ + % % non-empty command + % \begin{frame}[\expandafter\subsubsectionpageTocOptions, tocsubsubsec] + % } + % \ifdefempty{\subsubsecContentName}{}{\frametitle{\subsubsecContentName}} + % { + % \expandafter\tableofcontents\expandafter[\subsubsectionTocOptions] + % } + % \end{frame} + % }{ + % % else empty + % } + } +} +% \end{macrocode} +% \end{function} +% \end{implementation} + +% \begin{documentation} +% \begin{variable}{\gothamProgressSectionHeight} +% Variables used to defined the progress bar in section pages. +% If the vertical size of the bar want to be changed, the command |\setlength{\gothamProgressSectionHeight}{<0.4pt>}| can be used. +% \end{variable} +% \end{documentation} +%%%%%% +% \begin{implementation} +% \begin{variable}{\gothamProgressSectionHeight} +% Variables used to defined the progress bar in section pages. +% \begin{macrocode} +% horizontal size of the bar (used internally and set to |\textwidth|. +\newlength{\gotham@progressonsectionpage} +% vertical size of the bar +\newlength{\gothamProgressSectionHeight} +\setlength{\gothamProgressSectionHeight}{3pt} +% \end{macrocode} +% \end{variable} +% \end{implementation} + +% \begin{implementation} +% \begin{macro}{\defbeamertemplate{progress~bar~in~section~page}{empty}, \defbeamertemplate{progress~bar~in~section~page}{display}} +% Templates to disable or enable the display of the progress bar in section pages. +% \UnitTested +% \TestFiles{gotham-test-041} +% \begin{macrocode} +\defbeamertemplate{progress~bar~in~section~page}{empty}{ + \vspace{\gothamProgressSectionHeight+1ex} +} + +\def\inserttotalframenumber{100} +\defbeamertemplate{progress~bar~in~section~page}{display}{ + \setlength{\gotham@progressonsectionpage}{ + \textwidth * \ratio{\insertframenumber~pt}{\inserttotalframenumber~pt} + } + \begin{tikzpicture} + \fill[bg] (0,0) rectangle (\textwidth, \gothamProgressSectionHeight); + \fill[fg] (0,0) rectangle (\gotham@progressonsectionpage, \gothamProgressSectionHeight); + \end{tikzpicture} +} +% \end{macrocode} +% \end{macro} +% \end{implementation} + +% \begin{documentation} +% \begin{variable}{\sectionhoffset} +% length controlling the horizontal offset of the (section title + progress bar) block. +% Can be useful when extra stuff want to be display on sides of the block. +% The default value is 0. +% \end{variable} +% \end{documentation} +%%%%%% +% \begin{implementation} +% \begin{variable}{\sectionhoffset} +% length controlling the horizontal offset of the (section title + progress bar) block. +% \begin{macrocode} +\newlength{\sectionhoffset} +\setlength{\sectionhoffset}{0pt} +% \end{macrocode} +% \end{variable} +% \end{implementation} + +% \begin{implementation} +% \begin{macro}{\defbeamertemplate*{part|section|subsection|subsubsection~page}{progressbar/simple}} +% Template of part \textbar section \textbar subsection \textbar subsubsection pages shared by 'progressbar' and 'simple' style. +% These pages contain what is inside the part \textbar section \textbar subsection \textbar subsubsection frame (without background and frametitle). +% \UnitTested +% \TestFiles{gotham-test-041} +% \begin{macrocode} +\defbeamertemplate{part~page}{progressbar/simple}{ + %\frametitle{toto section} + \centering + \hspace*{\sectionhoffset} + \begin{minipage}{22em} + % \raggedright + \centering + \usebeamertemplate*{part~title}\\[-1ex] + \usebeamertemplate*{progress~bar~in~section~page} + \par + \end{minipage} + \par + \vspace{\baselineskip} +} +\defbeamertemplate{section~page}{progressbar/simple}{ + %\frametitle{toto section} + \centering + \hspace*{\sectionhoffset} + \begin{minipage}{22em} + \raggedright + \usebeamertemplate*{section~title}\\[-1ex] + \usebeamertemplate*{progress~bar~in~section~page} + \par + \end{minipage} + \par + \vspace{\baselineskip} +} +\defbeamertemplate{subsection~page}{progressbar/simple}{ + %\frametitle{toto section} + \centering + \hspace*{\sectionhoffset} + \begin{minipage}{22em} + \raggedright + \usebeamertemplate*{section~title}\\[-1ex] + \usebeamertemplate*{progress~bar~in~section~page} + \par + \usebeamertemplate*{subsection~title} + \end{minipage} + \par + \vspace{\baselineskip} +} +\defbeamertemplate{subsubsection~page}{progressbar/simple}{ + % \frametitle{toto section} + \centering + \hspace*{\sectionhoffset} + \begin{minipage}{22em} + \raggedright + \usebeamertemplate*{section~title}\\[-1ex] + \usebeamertemplate*{progress~bar~in~section~page} + \par + \usebeamertemplate*{subsection~title} + \par + \usebeamertemplate*{subsubsection~title} + \end{minipage} + \par + \vspace{\baselineskip} +} +% \end{macrocode} +% \end{macro} +% \end{implementation} + +% \begin{implementation} +% \begin{macro}{\defbeamertemplate{background~canvas}{part|section|subsection|subsubsection/gotham}} +% Background canvas template of part \textbar section \textbar subsection \textbar subsubsection pages. +% \UnitTested +% \TestFiles{gotham-test-041} +% \begin{macrocode} +\defbeamertemplate{background~canvas}{part/gotham}{ + \ifbeamercolorempty[bg]{normal~text}{}{\color{bg}\vrule width\paperwidth height\paperheight} +} +\defbeamertemplate{background~canvas}{section/gotham}{ + \setbeamertemplate{background~canvas}[part/gotham] + \usebeamertemplate{background~canvas} +} +\defbeamertemplate{background~canvas}{subsection/gotham}{ + \setbeamertemplate{background~canvas}[part/gotham] + \usebeamertemplate{background~canvas} +} +\defbeamertemplate{background~canvas}{subsubsection/gotham}{ + \setbeamertemplate{background~canvas}[part/gotham] + \usebeamertemplate{background~canvas} +} +% \end{macrocode} +% \end{macro} +% \end{implementation} + +% \begin{implementation} +% \begin{macro}{\defbeamertemplate{part|section|subsection|subsubsection~frame}{gotham~simple}} +% Template for part \textbar section \textbar subsection \textbar subsubsection frames with 'gotham simple' style. +% \UnitTested +% \TestFiles{gotham-test-041} +% \begin{macrocode} +\defbeamertemplate{part~frame}{gotham~simple}{ + \setbeamertemplate{background~canvas}[part/gotham] + \setbeamercolor{frametitle}{ + use={frametitleSection, normal~text}, + bg=frametitleSection.fg, + fg=normal~text.fg + } + \setbeamertemplate{progress~bar~in~section~page}[empty] + \setbeamertemplate{part~page}[progressbar/simple] + % \usebeamertemplate*{part~page}% activated automatically +} + +\defbeamertemplate{section~frame}{gotham~simple}{ + \setbeamertemplate{background~canvas}[section/gotham] + \setbeamercolor{frametitle}{ + use={frametitleSection, normal~text}, + bg=frametitleSection.fg, + fg=normal~text.fg + } + \setbeamertemplate{progress~bar~in~section~page}[empty] + \setbeamertemplate{section~page}[progressbar/simple] + % \usebeamertemplate*{section~page}% activated automatically +} + +\defbeamertemplate{subsection~frame}{gotham~simple}{ + \setbeamertemplate{background~canvas}[subsection/gotham] + \setbeamercolor{frametitle}{ + use={frametitleSection, normal~text}, + bg=frametitleSection.fg, + fg=normal~text.fg + } + \setbeamertemplate{progress~bar~in~section~page}[empty] + \setbeamertemplate{subsection~page}[progressbar/simple] + % \usebeamertemplate*{subsection~page}% activated automatically +} + +\defbeamertemplate{subsubsection~frame}{gotham~simple}{ + \setbeamertemplate{background~canvas}[subsubsection/gotham] + \setbeamercolor{frametitle}{ + use={frametitleSection, normal~text}, + bg=frametitleSection.fg, + fg=normal~text.fg + } + \setbeamertemplate{progress~bar~in~section~page}[empty] + \setbeamertemplate{subsubsection~page}[progressbar/simple] + % \usebeamertemplate*{subsubsection~page}% activated automatically +} +% \end{macrocode} +% \end{macro} +% \end{implementation} + +% \begin{implementation} +% \begin{macro}{\defbeamertemplate{part|section|subsection|subsubsection~frame}{gotham~progressbar}} +% Template for part \textbar section \textbar subsection \textbar subsubsection frames with 'gotham progressbar' style. +% \UnitTested +% \TestFiles{gotham-test-041} +% \begin{macrocode} +\defbeamertemplate{part~frame}{gotham~progressbar}{ + \setbeamertemplate{background~canvas}[part/gotham] + \setbeamercolor{frametitle}{ + use={frametitleSection, normal~text}, + bg=frametitleSection.fg, + fg=normal~text.fg + } + \setbeamertemplate{progress~bar~in~section~page}[display] + \setbeamertemplate{part~page}[progressbar/simple] + % \usebeamertemplate*{part~page}% activated automatically +} + +\defbeamertemplate{section~frame}{gotham~progressbar}{ + \setbeamertemplate{background~canvas}[section/gotham] + \setbeamercolor{frametitle}{ + use={frametitleSection, normal~text}, + bg=frametitleSection.fg, + fg=normal~text.fg + } + \setbeamertemplate{progress~bar~in~section~page}[display] + \setbeamertemplate{section~page}[progressbar/simple] + % \usebeamertemplate*{section~page}% activated automatically +} + +\defbeamertemplate{subsection~frame}{gotham~progressbar}{ + \setbeamertemplate{background~canvas}[subsection/gotham] + \setbeamercolor{frametitle}{ + use={frametitleSection, normal~text}, + bg=frametitleSection.fg, + fg=normal~text.fg + } + \setbeamertemplate{progress~bar~in~section~page}[display] + \setbeamertemplate{subsection~page}[progressbar/simple] + % \usebeamertemplate*{subsection~page}% activated automatically +} + +\defbeamertemplate{subsubsection~frame}{gotham~progressbar}{ + \setbeamertemplate{background~canvas}[subsubsection/gotham] + \setbeamercolor{frametitle}{ + use={frametitleSection, normal~text}, + bg=frametitleSection.fg, + fg=normal~text.fg + } + \setbeamertemplate{progress~bar~in~section~page}[display] + \setbeamertemplate{subsubsection~page}[progressbar/simple] + % \usebeamertemplate*{subsubsection~page}% activated automatically +} +% \end{macrocode} +% \end{macro} +% \end{implementation} + +% \begin{implementation} +% \begin{macro}{\defbeamertemplate*{progress~bar~in~splitvert}{empty|dispay}} +% Internal template to display or disable (empty) the progressbar used in 'splitvert' (split vertically) style. +% \UnitTested +% \TestFiles{gotham-test-041} +% \begin{macrocode} +\defbeamertemplate{progress~bar~in~splitvert}{empty}{ + \vspace{-0.5ex} +} + +\defbeamertemplate*{progress~bar~in~splitvert}{display}{ + % \nointerlineskip + \setlength{\gotham@progressonsectionpage}{ + \paperwidth * \ratio{\insertframenumber pt}{\inserttotalframenumber pt} + } + \begin{tikzpicture} + \fill[bg] (0,0) rectangle (\paperwidth, \gothamProgressSectionHeight); + \fill[fg] (0,0) rectangle (\gotham@progressonsectionpage, \gothamProgressSectionHeight); + \end{tikzpicture} +} +% \end{macrocode} +% \end{macro} +% \end{implementation} + +% \begin{implementation} +% \begin{macro}{\defbeamertemplate{part|section|subsection|subsubsection page}{gotham splitvert progressbar/simple}, \defbeamertemplate{part|section|subsection|subsubsection frame}{gotham splitvert progressbar}, \defbeamertemplate{part|section|subsection|subsubsection frame}{gotham splitvert simple}} +% Templates for part \textbar section \textbar subsection \textbar subsubsection pages that are common for 'gotham splitvert progressbar' and 'gotham splitvert simple' styles (which implies part \textbar section \textbar subsection \textbar subsubsection frames). +% \UnitTested +% \TestFiles{gotham-test-041} +% \begin{macrocode} +% Part page splitvert. +\defbeamertemplate{part~page}{gotham~splitvert~progressbar/simple}{ + % \frametitle{part!} + % \IfEmpty{\insertframetitle}{ + \ifx\beamer@frametitle\@empty + \vspace*{-0.05\paperheight} + \else %}{ + \vspace*{-0.165\paperheight} + \fi %} + { + \usebeamercolor{frametitle}\colorlet{gotham@@tempColor}{bg} + \begin{tikzpicture}[overlay, remember~picture] + \fill[color=gotham@@tempColor] (current~page.north~west) rectangle ([shift = {(0, -0.45\paperheight)}] current~page.north~east); + \end{tikzpicture} + } + + % \hspace*{\sectionhoffset} + \begin{minipage}[b][0.45\paperheight]{\textwidth} + \centering + \usebeamertemplate*{part~title} + \end{minipage} + \\[-0.1\baselineskip] + \hspace*{-1.0cm}\noindent + \usebeamertemplate*{progress~bar~in~splitvert} + + \newline + \begin{minipage}[t][0.5\paperheight]{\textwidth} + % \vspace{0.5\baselineskip} + % \usebeamerfont{subsection~ttitle} + % \usebeamercolor[bg]{frametitle} + % empty + \end{minipage} +} +\defbeamertemplate{part~frame}{gotham~splitvert~progressbar}{ + \setbeamertemplate{background~canvas}[part/gotham] + % \setbeamercolor{frametitle}{} + % \setlength{\sectionhoffset}{1cm} + \setbeamercolor{part~title}{use=frametitle, fg=frametitle.fg} + \setbeamertemplate{progress~bar~in~splitvert}[display] + \setbeamertemplate{part~page}[gotham~splitvert~progressbar/simple] + % \usebeamertemplate*{part~page}% activated automatically +} +\defbeamertemplate{part~frame}{gotham~splitvert~simple}{ + \setbeamertemplate{background~canvas}[part/gotham] + % \setbeamercolor{frametitle}{} + % \setlength{\sectionhoffset}{1cm} + \setbeamercolor{part~title}{use=frametitle, fg=frametitle.fg} + \setbeamertemplate{progress~bar~in~splitvert}[empty] + \setbeamertemplate{part~page}[gotham~splitvert~progressbar/simple] + % \usebeamertemplate*{part~page}% activated automatically +} + +% Section page splitvert. +\defbeamertemplate{section~page}{gotham~splitvert~progressbar/simple}{ + % \frametitle{section!} + % \IfEmpty{\insertframetitle}{ + \ifx\beamer@frametitle\@empty + \vspace*{-0.05\paperheight} + \else %}{ + \vspace*{-0.165\paperheight} + \fi %} + { + \usebeamercolor{frametitle}\colorlet{gotham@@tempColor}{bg} + \begin{tikzpicture}[overlay, remember~picture] + \fill[color=gotham@@tempColor] (current~page.north~west) rectangle ([shift = {(0, -0.45\paperheight)}] current~page.north~east); + \end{tikzpicture} + } + + \hspace*{\sectionhoffset} + \begin{minipage}[b][0.45\paperheight]{\textwidth} + \usebeamertemplate*{section~title} + \end{minipage} + \\[-0.1\baselineskip] + \hspace*{-1.0cm}\noindent + \usebeamertemplate*{progress~bar~in~splitvert} + + \newline + \hspace*{\sectionhoffset} + \begin{minipage}[t][0.5\paperheight]{\textwidth} + % \vspace{0.5\baselineskip} + \usebeamerfont{subsection~title} + \usebeamercolor[bg]{frametitle} + % empty + \end{minipage} +} +\defbeamertemplate{section~frame}{gotham~splitvert~progressbar}{ + \setbeamertemplate{background~canvas}[section/gotham] + % \setbeamercolor{frametitle}{} + \setlength{\sectionhoffset}{1cm} + \setbeamercolor{section~title}{use=frametitle, fg=frametitle.fg} + \setbeamertemplate{progress~bar~in~splitvert}[display] + \setbeamertemplate{section~page}[gotham~splitvert~progressbar/simple] + % \usebeamertemplate*{section~page}% activated automatically +} +\defbeamertemplate{section~frame}{gotham~splitvert~simple}{ + \setbeamertemplate{background~canvas}[section/gotham] + % \setbeamercolor{frametitle}{} + \setlength{\sectionhoffset}{1cm} + \setbeamercolor{section~title}{use=frametitle, fg=frametitle.fg} + \setbeamertemplate{progress~bar~in~splitvert}[empty] + \setbeamertemplate{section~page}[gotham~splitvert~progressbar/simple] + % \usebeamertemplate*{section~page}% activated automatically +} + +% Subsection page splitvert. +\defbeamertemplate{subsection~page}{gotham~splitvert~progressbar/simple}{ + % \frametitle{subsection!} + % \IfEmpty{\insertframetitle}{ + \ifx\beamer@frametitle\@empty + \vspace*{-0.05\paperheight} + \else %}{ + \vspace*{-0.165\paperheight} + \fi %} + { + \usebeamercolor{frametitle}\colorlet{gotham@@tempColor}{bg} + \begin{tikzpicture}[overlay, remember~picture] + \fill[color=gotham@@tempColor] (current~page.north~west) rectangle ([shift = {(0, -0.45\paperheight)}] current~page.north~east); + \end{tikzpicture} + } + + \hspace*{\sectionhoffset} + \begin{minipage}[b][0.45\paperheight]{\textwidth} + \usebeamertemplate*{section~title} + \end{minipage} + \\[-0.1\baselineskip] + \hspace*{-1.0cm}\noindent + \usebeamertemplate*{progress~bar~in~splitvert} + + \newline + \hspace*{\sectionhoffset} + \begin{minipage}[t][0.5\paperheight]{\textwidth} + % \vspace{0.5\baselineskip} + \usebeamerfont{subsection~title} + \usebeamercolor[bg]{frametitle} + \usebeamertemplate*{subsection~title} + % \par + % \vspace{1em}%phantom subsection + \end{minipage} +} +\defbeamertemplate{subsection~frame}{gotham~splitvert~progressbar}{ + \setbeamertemplate{background~canvas}[subsection/gotham] + % \setbeamercolor{frametitle}{} + \setlength{\sectionhoffset}{1cm} + \setbeamercolor{section~title}{use=frametitle, fg=frametitle.fg} + \setbeamercolor{subsection~title}{use=frametitle, fg=frametitle.bg} + \setbeamertemplate{progress~bar~in~splitvert}[display] + \setbeamertemplate{subsection~page}[gotham~splitvert~progressbar/simple] + % \usebeamertemplate*{subsection~page}% activated automatically +} +\defbeamertemplate{subsection~frame}{gotham~splitvert~simple}{ + \setbeamertemplate{background~canvas}[subsection/gotham] + % \setbeamercolor{frametitle}{} + \setlength{\sectionhoffset}{1cm} + \setbeamercolor{section~title}{use=frametitle, fg=frametitle.fg} + \setbeamercolor{subsection~title}{use=frametitle, fg=frametitle.bg} + \setbeamertemplate{progress~bar~in~splitvert}[empty] + \setbeamertemplate{subsection~page}[gotham~splitvert~progressbar/simple] + % \usebeamertemplate*{subsection~page}% activated automatically +} + +% Subsubection page splitvert. +\defbeamertemplate{subsubsection~page}{gotham~splitvert~progressbar/simple}{ + % \frametitle{subsubsection!} + % \IfEmpty{\insertframetitle}{ + \ifx\beamer@frametitle\@empty + \vspace*{-0.05\paperheight} + \else %}{ + \vspace*{-0.165\paperheight} + \fi %} + { + \usebeamercolor{frametitle}\colorlet{gotham@@tempColor}{bg} + \begin{tikzpicture}[overlay, remember~picture] + \fill[color=gotham@@tempColor] (current~page.north~west) rectangle ([shift = {(0, -0.45\paperheight)}] current~page.north~east); + \end{tikzpicture} + } + + \hspace*{\sectionhoffset} + \begin{minipage}[b][0.45\paperheight]{\textwidth} + \usebeamertemplate*{section~title} + \end{minipage} + \\[-0.1\baselineskip] + \hspace*{-1.0cm}\noindent + \usebeamertemplate*{progress~bar~in~splitvert} + + \newline + \hspace*{\sectionhoffset} + \begin{minipage}[t][0.5\paperheight]{\textwidth} + % \vspace{0.5\baselineskip} + \usebeamerfont{subsubsection~title} + \usebeamercolor[bg]{frametitle} + \usebeamertemplate*{subsection~title} + \par + \usebeamertemplate*{subsubsection~title} + \end{minipage} +} +\defbeamertemplate{subsubsection~frame}{gotham~splitvert~progressbar}{ + \setbeamertemplate{background~canvas}[subsubsection/gotham] + % \setbeamercolor{frametitle}{} + \setlength{\sectionhoffset}{1cm} + \setbeamercolor{section~title}{use=frametitle, fg=frametitle.fg} + \setbeamercolor{subsection~title}{use=frametitle, fg=frametitle.bg} + \setbeamercolor{subsubsection~title}{use=frametitle, fg=frametitle.bg} + \setbeamertemplate{progress~bar~in~splitvert}[display] + \setbeamertemplate{subsubsection~page}[gotham~splitvert~progressbar/simple] + % \usebeamertemplate*{subsubsection~page}% activated automatically +} +\defbeamertemplate{subsubsection~frame}{gotham~splitvert~simple}{ + \setbeamertemplate{background~canvas}[subsubsection/gotham] + % \setbeamercolor{frametitle}{} + \setlength{\sectionhoffset}{1cm} + \setbeamercolor{section~title}{use=frametitle, fg=frametitle.fg} + \setbeamercolor{subsection~title}{use=frametitle, fg=frametitle.bg} + \setbeamercolor{subsubsection~title}{use=frametitle, fg=frametitle.bg} + \setbeamertemplate{progress~bar~in~splitvert}[empty] + \setbeamertemplate{subsubsection~page}[gotham~splitvert~progressbar/simple] + % \usebeamertemplate*{subsubsection~page}% activated automatically +} +% \end{macrocode} +% \end{macro} +% \end{implementation} + + +% \begin{implementation} +% \begin{macro}{\defbeamertemplate{part|section|subsection|subsubsection page}{gotham progressvert}, \defbeamertemplate{part|section|subsection|subsubsection frame}{gotham progressvert}} +% Templates for part \textbar section \textbar subsection \textbar subsubsection pages for 'gotham progressvert'. +% \UnitTested +% \TestFiles{gotham-test-041} +% \begin{macrocode} + +% Part page progressvert. +\defbeamertemplate{part~page}{gotham~progressvert}{ + % \frametitle{part!} + % \IfEmpty{\insertframetitle}{ + \ifx\beamer@frametitle\@empty + \vspace*{-0.05\paperheight} + \else %}{ + \vspace*{-0.165\paperheight} + \fi %} + \setlength{\gotham@progressonsectionpage}{ + \paperheight * \ratio{\insertframenumber pt}{\inserttotalframenumber pt} + } + { + \usebeamercolor{frametitle}\colorlet{gotham@@tempColor}{bg} + \colorlet{gotham@@tempColorB}{fg} + \begin{tikzpicture}[overlay, remember~picture] + \fill[color=gotham@@tempColor] + ([shift={(0,0)}] current~page.north~west) -- + ([shift={(0,-\gotham@progressonsectionpage)}] current~page.north~west) -- + ([shift={(0,-\gotham@progressonsectionpage)}] current~page.north~east) -- + ([shift={(0,0)}] current~page.north~east) + --cycle; + \node[color=gotham@@tempColorB, align=left, text~width=0.8\textwidth] at ([shift={(\sectionhoffset,0)}] current~page.center) { + {\usebeamerfont{part~title} + \partname \ \insertromanpartnumber + \\[1.75ex] + \insertpart + } + }; + + \clip + ([shift={(0,0)}] current~page.south~west) -- + ([shift={(0,\paperheight-\gotham@progressonsectionpage)}] current~page.south~west) -- + ([shift={(0,\paperheight-\gotham@progressonsectionpage)}] current~page.south~east) -- + ([shift={(0,0)}] current~page.south~east) + --cycle; + + \fill[color=gotham@@tempColorB] + ([shift={(0,0)}]current~page.south~west) -- + ([shift={(0,\paperheight-\gotham@progressonsectionpage)}] current~page.south~west) -- + ([shift={(0,\paperheight-\gotham@progressonsectionpage)}] current~page.south~east) -- + ([shift={(0,0)}] current~page.south~east) + --cycle; + \node[color=gotham@@tempColor, align=left, text~width=0.8\textwidth] at ([shift={(\sectionhoffset,0)}] current~page.center) { + {\usebeamerfont{part~title} + \partname \ \insertromanpartnumber + \\ + \insertpart + } + }; + \end{tikzpicture} + } +} +\defbeamertemplate{part~frame}{gotham~progressvert}{ + \setbeamertemplate{background~canvas}[part/gotham] + % \setbeamercolor{frametitle}{} + \setlength{\sectionhoffset}{1cm} + % \setbeamercolor{section~title}{use=frametitle, fg=frametitle.bg} + % \setbeamercolor{subsection~title}{use=frametitle, fg=frametitle.bg} + % \setbeamercolor{part~title}{use=frametitle, fg=frametitle.bg} + % \setbeamertemplate{progress~bar~in~splitvert}[display] + \setbeamertemplate{part~page}[gotham~progressvert] + % \usebeamertemplate*{section~page}% activated automatically +} + +% Section page progressvert. +\defbeamertemplate{section~page}{gotham~progressvert}{ + % \frametitle{section!} + % \IfEmpty{\insertframetitle}{ + \ifx\beamer@frametitle\@empty + \vspace*{-0.05\paperheight} + \else %}{ + \vspace*{-0.165\paperheight} + \fi %} + \setlength{\gotham@progressonsectionpage}{ + \paperheight * \ratio{\insertframenumber pt}{\inserttotalframenumber pt} + } + { + \usebeamercolor{frametitle}\colorlet{gotham@@tempColor}{bg} + \colorlet{gotham@@tempColorB}{fg} + \begin{tikzpicture}[overlay, remember~picture] + \fill[color=gotham@@tempColor] + ([shift={(0,0)}] current~page.north~west) -- + ([shift={(0,-\gotham@progressonsectionpage)}] current~page.north~west) -- + ([shift={(0,-\gotham@progressonsectionpage)}] current~page.north~east) -- + ([shift={(0,0)}] current~page.north~east) + --cycle; + \node[color=gotham@@tempColorB, align=left, text~width=0.8\textwidth] at ([shift={(\sectionhoffset,0)}] current~page.center) { + {\usebeamerfont{section~title} + \insertsectionnumber.~ + \insertsectionhead} + }; + + \clip + ([shift={(0,0)}] current~page.south~west) -- + ([shift={(0,\paperheight-\gotham@progressonsectionpage)}] current~page.south~west) -- + ([shift={(0,\paperheight-\gotham@progressonsectionpage)}] current~page.south~east) -- + ([shift={(0,0)}] current~page.south~east) + --cycle; + + \fill[color=gotham@@tempColorB] + ([shift={(0,0)}]current~page.south~west) -- + ([shift={(0,\paperheight-\gotham@progressonsectionpage)}] current~page.south~west) -- + ([shift={(0,\paperheight-\gotham@progressonsectionpage)}] current~page.south~east) -- + ([shift={(0,0)}] current~page.south~east) + --cycle; + \node[color=gotham@@tempColor, align=left, text~width=0.8\textwidth] at ([shift={(\sectionhoffset,0)}] current~page.center) { + {\usebeamerfont{section~title} + \insertsectionnumber.~ + \insertsectionhead} + }; + \end{tikzpicture} + } +} +\defbeamertemplate{section~frame}{gotham~progressvert}{ + \setbeamertemplate{background~canvas}[section/gotham] + % \setbeamercolor{frametitle}{} + \setlength{\sectionhoffset}{1cm} + % \setbeamercolor{section~title}{use=frametitle, fg=frametitle.bg} + % \setbeamercolor{subsection~title}{use=frametitle, fg=frametitle.bg} + % \setbeamercolor{section~title}{use=frametitle, fg=frametitle.bg} + % \setbeamertemplate{progress~bar~in~splitvert}[display] + \setbeamertemplate{section~page}[gotham~progressvert] + % \usebeamertemplate*{section~page}% activated automatically +} + +% Subection page progressvert. +\defbeamertemplate{subsection~page}{gotham~progressvert}{ + % \frametitle{subsection!} + % \IfEmpty{\insertframetitle}{ + \ifx\beamer@frametitle\@empty + \vspace*{-0.05\paperheight} + \else %}{ + \vspace*{-0.165\paperheight} + \fi %} + \setlength{\gotham@progressonsectionpage}{ + \paperheight * \ratio{\insertframenumber pt}{\inserttotalframenumber pt} + } + { + \usebeamercolor{frametitle}\colorlet{gotham@@tempColor}{bg} + \colorlet{gotham@@tempColorB}{fg} + \begin{tikzpicture}[overlay, remember~picture] + \fill[color=gotham@@tempColor] + ([shift={(0,0)}] current~page.north~west) -- + ([shift={(0,-\gotham@progressonsectionpage)}] current~page.north~west) -- + ([shift={(0,-\gotham@progressonsectionpage)}] current~page.north~east) -- + ([shift={(0,0)}] current~page.north~east) + --cycle; + \node[color=gotham@@tempColorB, align=left, text~width=0.8\textwidth] at ([shift={(\sectionhoffset,0)}] current~page.center) { + {\usebeamerfont{section~title} + \insertsectionnumber.~ + \insertsectionhead} + \\ + {\usebeamerfont{subsection~title} + \insertsectionnumber.\insertsubsectionnumber.~ + \insertsubsectionhead} + }; + + \clip + ([shift={(0,0)}] current~page.south~west) -- + ([shift={(0,\paperheight-\gotham@progressonsectionpage)}] current~page.south~west) -- + ([shift={(0,\paperheight-\gotham@progressonsectionpage)}] current~page.south~east) -- + ([shift={(0,0)}] current~page.south~east) + --cycle; + + \fill[color=gotham@@tempColorB] + ([shift={(0,0)}]current~page.south~west) -- + ([shift={(0,\paperheight-\gotham@progressonsectionpage)}] current~page.south~west) -- + ([shift={(0,\paperheight-\gotham@progressonsectionpage)}] current~page.south~east) -- + ([shift={(0,0)}] current~page.south~east) + --cycle; + \node[color=gotham@@tempColor, align=left, text~width=0.8\textwidth] at ([shift={(\sectionhoffset,0)}] current~page.center) { + {\usebeamerfont{section~title} + \insertsectionnumber.~ + \insertsectionhead} + \\ + {\usebeamerfont{subsection~title} + \insertsectionnumber.\insertsubsectionnumber.~ + \insertsubsectionhead} + }; + \end{tikzpicture} + } +} +\defbeamertemplate{subsection~frame}{gotham~progressvert}{ + \setbeamertemplate{background~canvas}[subsection/gotham] + % \setbeamercolor{frametitle}{} + \setlength{\sectionhoffset}{1cm} + % \setbeamercolor{section~title}{use=frametitle, fg=frametitle.bg} + % \setbeamercolor{subsection~title}{use=frametitle, fg=frametitle.bg} + % \setbeamercolor{subsection~title}{use=frametitle, fg=frametitle.bg} + % \setbeamertemplate{progress~bar~in~splitvert}[display] + \setbeamertemplate{subsection~page}[gotham~progressvert] + % \usebeamertemplate*{subsection~page}% activated automatically +} + +% Subsubection page progressvert. +\defbeamertemplate{subsubsection~page}{gotham~progressvert}{ + % \frametitle{subsubsection!} + % \IfEmpty{\insertframetitle}{ + \ifx\beamer@frametitle\@empty + \vspace*{-0.05\paperheight} + \else %}{ + \vspace*{-0.165\paperheight} + \fi %} + \setlength{\gotham@progressonsectionpage}{ + \paperheight * \ratio{\insertframenumber pt}{\inserttotalframenumber pt} + } + { + \usebeamercolor{frametitle}\colorlet{gotham@@tempColor}{bg} + \colorlet{gotham@@tempColorB}{fg} + \begin{tikzpicture}[overlay, remember~picture] + \fill[color=gotham@@tempColor] + ([shift={(0,0)}] current~page.north~west) -- + ([shift={(0,-\gotham@progressonsectionpage)}] current~page.north~west) -- + ([shift={(0,-\gotham@progressonsectionpage)}] current~page.north~east) -- + ([shift={(0,0)}] current~page.north~east) + --cycle; + \node[color=gotham@@tempColorB, align=left, text~width=0.8\textwidth] at ([shift={(\sectionhoffset,0)}] current~page.center) { + {\usebeamerfont{section~title} + \insertsectionnumber.~ + \insertsectionhead} + \\ + {\usebeamerfont{subsection~title} + \insertsectionnumber.\insertsubsectionnumber.~ + \insertsubsectionhead} + \\ + {\usebeamerfont{subsubsection~title} + \insertsectionnumber.\insertsubsectionnumber.\insertsubsubsectionnumber.~ + \insertsubsubsectionhead} + }; + + \clip + ([shift={(0,0)}] current~page.south~west) -- + ([shift={(0,\paperheight-\gotham@progressonsectionpage)}] current~page.south~west) -- + ([shift={(0,\paperheight-\gotham@progressonsectionpage)}] current~page.south~east) -- + ([shift={(0,0)}] current~page.south~east) + --cycle; + + \fill[color=gotham@@tempColorB] + ([shift={(0,0)}]current~page.south~west) -- + ([shift={(0,\paperheight-\gotham@progressonsectionpage)}] current~page.south~west) -- + ([shift={(0,\paperheight-\gotham@progressonsectionpage)}] current~page.south~east) -- + ([shift={(0,0)}] current~page.south~east) + --cycle; + \node[color=gotham@@tempColor, align=left, text~width=0.8\textwidth] at ([shift={(\sectionhoffset,0)}] current~page.center) { + {\usebeamerfont{section~title} + \insertsectionnumber.~ + \insertsectionhead} + \\ + {\usebeamerfont{subsection~title} + \insertsectionnumber.\insertsubsectionnumber.~ + \insertsubsectionhead} + \\ + {\usebeamerfont{subsubsection~title} + \insertsectionnumber.\insertsubsectionnumber.\insertsubsubsectionnumber.~ + \insertsubsubsectionhead} + }; + \end{tikzpicture} + } +} +\defbeamertemplate{subsubsection~frame}{gotham~progressvert}{ + \setbeamertemplate{background~canvas}[subsubsection/gotham] + % \setbeamercolor{frametitle}{} + \setlength{\sectionhoffset}{1cm} + % \setbeamercolor{section~title}{use=frametitle, fg=frametitle.bg} + % \setbeamercolor{subsection~title}{use=frametitle, fg=frametitle.bg} + % \setbeamercolor{subsubsection~title}{use=frametitle, fg=frametitle.bg} + % \setbeamertemplate{progress~bar~in~splitvert}[display] + \setbeamertemplate{subsubsection~page}[gotham~progressvert] + % \usebeamertemplate*{subsubsection~page}% activated automatically +} +% \end{macrocode} +% \end{macro} +% \end{implementation} + + +% \begin{documentation} +% \begin{function}{\useinnertheme} +% \begin{syntax} +% \cs{useinnertheme}\oarg{option1=value1, ...}\marg{gotham} +% \textrm{where the options are (default marked as} \defopt{default}\textrm{):} +% \meta{partframe template} = \oarg{\defopt{gotham progressbar} \textbar gotham simple \textbar gotham splitvert progressbar \textbar gotham splitvert simple \textbar gotham progressvert \textbar ...} +% \meta{partframe default} = \oarg{\defopt{on} \textbar off} +% \meta{sectionframe template} = \oarg{\defopt{gotham progressbar} \textbar gotham simple \textbar gotham splitvert progressbar \textbar gotham splitvert simple \textbar gotham progressvert \textbar ...} +% \meta{sectionframe default} = \oarg{\defopt{on} \textbar off} +% \meta{subsectionframe template} = \oarg{\defopt{gotham progressbar} \textbar gotham simple \textbar gotham splitvert progressbar \textbar gotham splitvert simple \textbar gotham progressvert \textbar ...} +% \meta{subsectionframe default} = \oarg{\defopt{on} \textbar off} +% \meta{subsubframe template} = \oarg{\defopt{gotham progressbar} \textbar gotham simple \textbar gotham splitvert progressbar \textbar gotham splitvert simple \textbar gotham progressvert \textbar ...} +% \meta{subsubframe default} = \oarg{\defopt{on} \textbar off} +% \end{syntax} +% The 'package' (useinnertheme) options can control |partframe templates| (or |sectionframe|, |subsectionframe| and |subsubsectionframe| respectively), which define the style of the partframe (or |sectionframe|, |subsectionframe| and |subsubsectionframe| respectively) displayed at every new beginning of sectioning. +% These templates can be disabled (or re-enabled) by default using the option |partframe default| (or |sectionframe|, |subsectionframe| and |subsubsectionframe| respectively). +% \end{function} +% \end{documentation} +%%%% +% \begin{implementation} +% \begin{macro}{inner key -- interface} +% Controls the inner settings for partframe (or |sectionframe|, |subsectionframe| and |subsubsectionframe| respectively) and standin. +% \UnitTested +% \TestFiles{gotham-test-041} +% \begin{macrocode} +\keys_define:nn { gotham / inner }{ + % partframe template + partframe~template .usage:n = { general }, + partframe~template .default:n = { gotham~progressbar }, + partframe~template .code:n = { \__gotham_set_template:nn{part~frame}{#1} } +} +\keys_define:nn { gotham / inner } +{ + % partframe default + partframe~default .choice:, + partframe~default .usage:n = { general }, + partframe~default .default:n = { true }, + + partframe~default / true .code:n = { \__gotham_inner_enable_partpage: }, + partframe~default / on .code:n = { \__gotham_inner_enable_partpage: }, + partframe~default / enable .code:n = { \__gotham_inner_enable_partpage: }, + + partframe~default / false .code:n = { \__gotham_inner_disable_partpage: }, + partframe~default / off .code:n = { \__gotham_inner_disable_partpage: }, + partframe~default / disable .code:n = { \__gotham_inner_disable_partpage: }, + + partframe~default / unknown .code:n = { \PackageWarning{ gotham } { The~choice~'#1'~is~unknown~for~the~(known)~option~'partframe~default',~so~being~ignored. }{helping~message: partframe~default / unknown} }, +} + +\keys_define:nn { gotham / inner }{ + % sectionframe template + sectionframe~template .usage:n = { general }, + sectionframe~template .default:n = { gotham~progressbar }, + sectionframe~template .code:n = { \__gotham_set_template:nn{section~frame}{#1} } +} +\keys_define:nn { gotham / inner } +{ + % sectionframe default + sectionframe~default .choice:, + sectionframe~default .usage:n = { general }, + sectionframe~default .default:n = { true }, + + sectionframe~default / true .code:n = { \__gotham_inner_enable_sectionpage: }, + sectionframe~default / on .code:n = { \__gotham_inner_enable_sectionpage: }, + sectionframe~default / enable .code:n = { \__gotham_inner_enable_sectionpage: }, + + sectionframe~default / false .code:n = { \__gotham_inner_disable_sectionpage: }, + sectionframe~default / off .code:n = { \__gotham_inner_disable_sectionpage: }, + sectionframe~default / disable .code:n = { \__gotham_inner_disable_sectionpage: }, + + sectionframe~default / unknown .code:n = { \PackageWarning{ gotham } { The~choice~'#1'~is~unknown~for~the~(known)~option~'sectionframe~default',~so~being~ignored. }{helping~message: sectionframe~default / unknown} }, +} + +\keys_define:nn { gotham / inner }{ + % subsectionframe template + subsectionframe~template .usage:n = { general }, + subsectionframe~template .default:n = { gotham~progressbar }, + subsectionframe~template .code:n = { \__gotham_set_template:nn{subsection~frame}{#1} } +} +\keys_define:nn { gotham / inner } +{ + % subsectionframe default + subsectionframe~default .choice:, + subsectionframe~default .usage:n = { general }, + subsectionframe~default .default:n = { true }, + + subsectionframe~default / true .code:n = { \__gotham_inner_enable_subsectionpage: }, + subsectionframe~default / on .code:n = { \__gotham_inner_enable_subsectionpage: }, + subsectionframe~default / enable .code:n = { \__gotham_inner_enable_subsectionpage: }, + + subsectionframe~default / false .code:n = { \__gotham_inner_disable_subsectionpage: }, + subsectionframe~default / off .code:n = { \__gotham_inner_disable_subsectionpage: }, + subsectionframe~default / disable .code:n = { \__gotham_inner_disable_subsectionpage: }, + + subsectionframe~default / unknown .code:n = { \PackageWarning{ gotham } { The~choice~'#1'~is~unknown~for~the~(known)~option~'subsectionframe~default',~so~being~ignored. }{helping~message: subsectionframe~default / unknown} }, +} + +\keys_define:nn { gotham / inner }{ + % subsubsectionframe template + subsubsectionframe~template .usage:n = { general }, + subsubsectionframe~template .default:n = { gotham~progressbar }, + subsubsectionframe~template .code:n = { \__gotham_set_template:nn{subsubsection~frame}{#1} } +} +\keys_define:nn { gotham / inner } +{ + % subsubsectionframe default + subsubsectionframe~default .choice:, + subsubsectionframe~default .usage:n = { general }, + subsubsectionframe~default .default:n = { true }, + + subsubsectionframe~default / true .code:n = { \__gotham_inner_enable_subsubsectionpage: }, + subsubsectionframe~default / on .code:n = { \__gotham_inner_enable_subsubsectionpage: }, + subsubsectionframe~default / enable .code:n = { \__gotham_inner_enable_subsubsectionpage: }, + + subsubsectionframe~default / false .code:n = { \__gotham_inner_disable_subsubsectionpage: }, + subsubsectionframe~default / off .code:n = { \__gotham_inner_disable_subsubsectionpage: }, + subsubsectionframe~default / disable .code:n = { \__gotham_inner_disable_subsubsectionpage: }, + + subsubsectionframe~default / unknown .code:n = { \PackageWarning{ gotham } { The~choice~'#1'~is~unknown~for~the~(known)~option~'subsubsectionframe~default',~so~being~ignored. }{helping~message: subsubsectionframe~default / unknown} }, +} +% \end{macrocode} +% \end{macro} +% \end{implementation} + + +%%%% Table of Content %%%% +%%%%%%%%%%%%%%%%%%%%%%%%%% + +% \begin{implementation} +% \begin{macro}{\tikzset{section~number/.style={}} } +% Definition of how sections, subsections and subsubsections' numbers will appear in 'gotham bullet' style for tables of contents. +% \UnitTested +% \TestFiles{gotham-test-042} +% \begin{macrocode} +\tikzset{section~number/.style={ + circle, + fill=colorAlert, + minimum~size=0.4em, + text=colorAlert!10, + inner~sep=1.5pt, + }, + section/.style={ + draw=none, + rectangle, + minimum~height=1em, + minimum~width=0.8\textwidth, + text~width=0.8\textwidth, + text=fg, + align=left + }, + subsection~number/.style={ + circle, + fill=colorBackElement!50, + inner~sep=0pt, + minimum~size=0.15cm, + }, + subsection/.style={ + draw=none, + rectangle, + minimum~height=1em, + minimum~width=0.8\textwidth, + text~width=0.8\textwidth, + text=fg!80, + align=left + }, + subsubsection~number/.style={ + circle, + fill=colorBackElement!50, + inner~sep=0pt, + minimum~size=0.06cm, + }, + subsubsection/.style={ + draw=none, + rectangle, + minimum~height=1em, + minimum~width=0.8\textwidth, + text~width=0.8\textwidth, + text=fg!80, + align=left + }, +} +% \end{macrocode} +% \end{macro} +% \end{implementation} + +% \begin{implementation} +% \begin{macro}{\defbeamertemplate{section~in~toc}{gotham~bullet}} +% Template definitions for |gotham bullet| style of ToC that appear in section \textbar subsection \textbar subsubsection frame. +% \changes{v1.2.1}{2025-02-10}{adapt shaded subsection in toc} +% \UnitTested +% \TestFiles{gotham-test-042} +% \begin{macrocode} +\defbeamertemplate{section~in~toc}{gotham~bullet}{ + \hspace*{0.4cm}\tikz[baseline=-0.5ex]\node[section~number]{\textbf{\inserttocsectionnumber}}; + \ \tikz[baseline=-0.5ex]\node[section]{\usebeamerfont*{toc~title}\inserttocsection};\\[-0.35cm] + \hspace*{1.13cm}{\usebeamercolor*[fg]{footer} \rule{0.6\paperwidth}{0.2pt}{\par\vskip-0.35\baselineskip}\nointerlineskip} +} +\defbeamertemplate{subsection~in~toc}{gotham~bullet}{ + \hspace*{0.53cm}\tikz[baseline=-0.5ex]\node[subsection~number]{}; + \hspace*{0.5cm}\tikz[baseline=-0.5ex]\node[subsection]{\usebeamerfont*{toc~subtitle}\inserttocsubsection \gotham@strut};\\[-0.2cm] +} +\defbeamertemplate{subsubsection~in~toc}{gotham~bullet}{ + \hspace*{0.58cm}\tikz[baseline=-0.5ex]\node[subsubsection~number]{}; + \hspace*{0.69cm}\tikz[baseline=-0.5ex]\node[subsubsection]{\usebeamerfont*{toc~subtitle}\inserttocsubsubsection \gotham@strut};\\[-0.2cm] +} +% Shaded for sections already done in the presentation. +\defbeamertemplate{section~in~toc~shaded}{gotham~bullet}{ + \hspace*{0.4cm}\tikz[baseline=-0.5ex]\node[section~number, fill=colorBackElement!40]{\usebeamerfont*{toc~subtitle}\textbf{\inserttocsectionnumber}}; + \ \tikz[baseline=-0.5ex]\node[section, text=colorBackElement!20]{\usebeamerfont*{toc~title}\inserttocsection};\\[-0.35cm] + \hspace*{1.13cm}{\usebeamercolor*[fg]{footer} \rule{0.6\paperwidth}{0.2pt}{\par\vskip-0.35\baselineskip}\nointerlineskip} +} +\defbeamertemplate{subsection~in~toc~shaded}{gotham~bullet}{ + \hspace*{0.53cm}\tikz[baseline=-0.5ex]\node[subsection~number,fill=colorBackElement!20]{}; + \hspace*{0.5cm}\tikz[baseline=-0.5ex]\node[subsection, text=colorBackElement!20]{\usebeamerfont*{toc~subtitle}\inserttocsubsection \gotham@strut};\\[-0.2cm] +} +\defbeamertemplate{subsubsection~in~toc~shaded}{gotham~bullet}{ + \hspace*{0.58cm}\tikz[baseline=-0.5ex]\node[subsubsection~number,fill=colorBackElement!20]{}; + \hspace*{0.69cm}\tikz[baseline=-0.5ex]\node[subsubsection,text=colorBackElement!20]{\usebeamerfont*{toc~subtitle}\inserttocsubsubsection \gotham@strut};\\[-0.2cm] +} +% \end{macrocode} +% \end{macro} +% \end{implementation} + +% \begin{implementation} +% \begin{macro}{\defbeamertemplate{section~in~toc}{gotham~bullet}} +% Template definitions for |gotham simple| style of ToC that appear in section \textbar subsection \textbar subsubsection frame. +% \changes{v1.2.1}{2025-01-06}{adapt shaded subsection in toc} +% \UnitTested +% \TestFiles{gotham-test-042} +% \begin{macrocode} +\defbeamertemplate{part~in~toc}{gotham~simple}{ + {{\inserttocpartnumber}.}~\inserttocpart + \\ +} +\defbeamertemplate{section~in~toc}{gotham~simple}{ + {{\inserttocsectionnumber}.}~\inserttocsection + \\ +} +\defbeamertemplate{subsection~in~toc}{gotham~simple}{ + \quad{{\inserttocsectionnumber}.\inserttocsubsectionnumber.}~\inserttocsubsection + \\ +} +\defbeamertemplate{subsubsection~in~toc}{gotham~simple}{ + \qquad{{\inserttocsectionnumber}.\inserttocsubsectionnumber.\inserttocsubsubsectionnumber.}~\inserttocsubsubsection + \\ +} +\defbeamertemplate{section~in~toc~shaded}{gotham~simple}{ + \begin{colormixin}{20!parent.bg} + {{\inserttocsectionnumber}.}~\inserttocsection + \end{colormixin} + \\ +} +\defbeamertemplate{subsection~in~toc~shaded}{gotham~simple}{ + \begin{colormixin}{20!parent.bg} + \quad{{\inserttocsectionnumber}.\inserttocsubsectionnumber.}~\inserttocsubsection + \end{colormixin} + \\ +} +\defbeamertemplate{subsubsection~in~toc~shaded}{gotham~simple}{ + \begin{colormixin}{20!parent.bg} + \qquad{{\inserttocsectionnumber}.\inserttocsubsectionnumber.\inserttocsubsubsectionnumber.}~\inserttocsubsubsection + \end{colormixin} + \\ +} +% \end{macrocode} +% \end{macro} +% \end{implementation} + +% \begin{implementation} +% \begin{macro}{\defbeamertemplate{background~canvas}{toc/gotham~simple}, \defbeamertemplate{toc~page}{gotham~simple|bullet}} +% Definition of toc page style named gotham simple and gotham bullet, used for table of content pages. +% Both are using a dedicated background canvas. +% \changes{v1.2.1}{2025-01-05}{add shaded subsection in toc setup} +% \UnitTested +% \TestFiles{gotham-test-042} +% \begin{macrocode} +\defbeamertemplate{background~canvas}{toc/gotham~simple}{ + \ifbeamercolorempty[bg]{standin}{}{ + \color{bg}\vrule width\paperwidth height\paperheight + } +} +\defbeamertemplate{toc~page}{gotham~simple}{ + \setbeamertemplate{part~in~toc}[gotham~simple] + \setbeamertemplate{section~in~toc}[gotham~simple] + \setbeamertemplate{section~in~toc~shaded}[gotham~simple] + \setbeamertemplate{subsection~in~toc}[gotham~simple] + \setbeamertemplate{subsection~in~toc~shaded}[gotham~simple] + \setbeamertemplate{subsubsection~in~toc}[gotham~simple] + \setbeamertemplate{subsubsection~in~toc~shaded}[gotham~simple] + \setbeamertemplate{background~canvas}[toc/gotham~simple] +} +\defbeamertemplate{toc~page}{gotham~bullet}{ + \setbeamertemplate{part~in~toc}[gotham~bullet] + \setbeamertemplate{section~in~toc}[gotham~bullet] + \setbeamertemplate{section~in~toc~shaded}[gotham~bullet] + \setbeamertemplate{subsection~in~toc}[gotham~bullet] + \setbeamertemplate{subsection~in~toc~shaded}[gotham~bullet] + \setbeamertemplate{subsubsection~in~toc}[gotham~bullet] + \setbeamertemplate{subsubsection~in~toc~shaded}[gotham~bullet] + \setbeamertemplate{background~canvas}[toc/gotham~simple] +} +% \end{macrocode} +% \end{macro} +% \end{implementation} + +% \begin{documentation} +% \begin{function}{\begin{frame}[toc]} +% Add a frame option |toc| to display the toc frame template. +% \end{function} +% \end{documentation} +%%%%%% +% \begin{implementation} +% \begin{macro}{\begin{frame}[toc]} +% Add a frame option |toc| to display the toc frame template. +% To do it, we must add a global boolean variable, capture the option at the begin of the frame and patch the end of the frame. +% \UnitTested +% \TestFiles{gotham-test-042} +% \begin{macrocode} +\newenvironment{tocenv}{ + \usebeamertemplate{toc~page} +}{} +\__gotham_add_beamerframe_key:n {toc} +% \end{macrocode} +% \end{macro} +% \end{implementation} + +% \begin{implementation} +% \begin{macro}{\defbeamertemplate{background~canvas}{toc~part|section|subsection~gotham}} +% Defintion of the background canvas used by the toc in part\,\textbar\,section\,\textbar\,subsection. +% \UnitTested +% \TestFiles{gotham-test-042} +% \begin{macrocode} +\defbeamertemplate{background~canvas}{toc~part~gotham}{ + \ifbeamercolorempty[bg]{normal~text}{}{\color{bg}\vrule width\paperwidth height\paperheight} +} +\defbeamertemplate{background~canvas}{toc~section~gotham}{ + \ifbeamercolorempty[bg]{normal~text}{}{\color{bg}\vrule width\paperwidth height\paperheight} +} +\defbeamertemplate{background~canvas}{toc~subsection~gotham}{ + \ifbeamercolorempty[bg]{normal~text}{}{\color{bg}\vrule width\paperwidth height\paperheight} +} +% \end{macrocode} +% \end{macro} +% \end{implementation} + +% \begin{implementation} +% \begin{macro}{\defbeamertemplate{toc~part~frame}{gotham~simple}} +% Definition of the toc in part\,\textbar\,section\,\textbar\,subsection templates for gotham simple style. +% \UnitTested +% \TestFiles{gotham-test-042} +% \begin{macrocode} +\defbeamertemplate{toc~part~frame}{gotham~simple}{ + \setbeamertemplate{part~in~toc}[gotham~simple] + \setbeamertemplate{section~in~toc}[gotham~simple] + \setbeamertemplate{section~in~toc~shaded}[gotham~simple] + \setbeamertemplate{subsection~in~toc}[gotham~simple] + \setbeamertemplate{subsection~in~toc~shaded}[gotham~simple] + \setbeamertemplate{subsubsection~in~toc}[gotham~simple] + \setbeamertemplate{subsubsection~in~toc~shaded}[gotham~simple] + \setbeamertemplate{background~canvas}[toc~part~gotham] + \setbeamertemplate{frametitle}[toc~gotham] + % \usebeamertemplate*{part~page}% already included +} +\defbeamertemplate{toc~section~frame}{gotham~simple}{ + \setbeamertemplate{part~in~toc}[gotham~simple] + \setbeamertemplate{section~in~toc}[gotham~simple] + \setbeamertemplate{section~in~toc~shaded}[gotham~simple] + \setbeamertemplate{subsection~in~toc}[gotham~simple] + \setbeamertemplate{subsection~in~toc~shaded}[gotham~simple] + \setbeamertemplate{subsubsection~in~toc}[gotham~simple] + \setbeamertemplate{subsubsection~in~toc~shaded}[gotham~simple] + \setbeamertemplate{background~canvas}[toc~section~gotham] + \setbeamertemplate{frametitle}[toc~gotham]% + % \usebeamertemplate*{section~page}% already included +} +\defbeamertemplate{toc~subsection~frame}{gotham~simple}{ + \setbeamertemplate{part~in~toc}[gotham~simple] + \setbeamertemplate{section~in~toc}[gotham~simple] + \setbeamertemplate{section~in~toc~shaded}[gotham~simple] + \setbeamertemplate{subsection~in~toc}[gotham~simple] + \setbeamertemplate{subsection~in~toc~shaded}[gotham~simple] + \setbeamertemplate{subsubsection~in~toc}[gotham~simple] + \setbeamertemplate{subsubsection~in~toc~shaded}[gotham~simple] + \setbeamertemplate{background~canvas}[toc~subsection~gotham] + \setbeamertemplate{frametitle}[toc~gotham] + % \usebeamertemplate*{subsection~page}% already included +} +% \end{macrocode} +% \end{macro} +% \end{implementation} + +% \begin{implementation} +% \begin{macro}{\defbeamertemplate{toc~part~frame}{gotham~bullet}} +% Definition of the toc in part\,\textbar\,section\,\textbar\,subsection templates for gotham bullet style. +% \UnitTested +% \TestFiles{gotham-test-042} +% \begin{macrocode} +\defbeamertemplate{toc~part~frame}{gotham~bullet}{ + \setbeamertemplate{part~in~toc}[gotham~bullet] + \setbeamertemplate{section~in~toc}[gotham~bullet] + \setbeamertemplate{section~in~toc~shaded}[gotham~bullet] + \setbeamertemplate{subsection~in~toc}[gotham~bullet] + \setbeamertemplate{subsection~in~toc~shaded}[gotham~bullet] + \setbeamertemplate{subsubsection~in~toc}[gotham~bullet] + \setbeamertemplate{subsubsection~in~toc~shaded}[gotham~bullet] + \setbeamertemplate{background~canvas}[toc~part~gotham] + \setbeamertemplate{frametitle}[toc~gotham] + % \usebeamertemplate*{part~page}% already included +} +\defbeamertemplate{toc~section~frame}{gotham~bullet}{ + \setbeamertemplate{part~in~toc}[gotham~bullet] + \setbeamertemplate{section~in~toc}[gotham~bullet] + \setbeamertemplate{section~in~toc~shaded}[gotham~bullet] + \setbeamertemplate{subsection~in~toc}[gotham~bullet] + \setbeamertemplate{subsection~in~toc~shaded}[gotham~bullet] + \setbeamertemplate{subsubsection~in~toc}[gotham~bullet] + \setbeamertemplate{subsubsection~in~toc~shaded}[gotham~bullet] + \setbeamertemplate{background~canvas}[toc~section~gotham] + \setbeamertemplate{frametitle}[toc~gotham]% + % \usebeamertemplate*{section~page}% already included +} +\defbeamertemplate{toc~subsection~frame}{gotham~bullet}{ + \setbeamertemplate{part~in~toc}[gotham~bullet] + \setbeamertemplate{section~in~toc}[gotham~bullet] + \setbeamertemplate{section~in~toc~shaded}[gotham~bullet] + \setbeamertemplate{subsection~in~toc}[gotham~bullet] + \setbeamertemplate{subsection~in~toc~shaded}[gotham~bullet] + \setbeamertemplate{subsubsection~in~toc}[gotham~bullet] + \setbeamertemplate{subsubsection~in~toc~shaded}[gotham~bullet] + \setbeamertemplate{background~canvas}[toc~subsection~gotham] + \setbeamertemplate{frametitle}[toc~gotham] + % \usebeamertemplate*{subsection~page}% already included +} +% \end{macrocode} +% \end{macro} +% \end{implementation} + +% \begin{documentation} +% \begin{function}{\begin{frame}[tocpart]} +% Add a frame option |tocpart| to display the tocpart frame template. +% \end{function} +% \end{documentation} +%%%%%% +% \begin{implementation} +% \begin{macro}{\begin{frame}[tocpart]} +% Add a frame option |tocpart| to display the tocpart frame template. +% To do it, we must add a global boolean variable, capture the option at the begin of the frame and patch the end of the frame. +% \UnitTested +% \TestFiles{gotham-test-042} +% \begin{macrocode} +\bool_new:N \l_gotham_tocpartframe +\bool_set_false:N \l_gotham_tocpartframe +\define@key{beamerframe}{tocpart}[true]{ + \bool_set_true:N \l_gotham_tocpartframe + \begingroup + \usebeamertemplate{toc~part~frame} +} +\apptocmd{\beamer@reseteecodes}{ + \bool_if:NTF \l_gotham_tocpartframe { + \endgroup + \bool_set_false:N \l_gotham_tocpartframe + }{} +}{}{} +% \define@key{beamerframe}{tocpart}[true]{ +% \thispagestyle{navigation@tocpart} +% } +% \def\ps@navigation@tocpart{ +% \usebeamertemplate{toc~part~frame} +% \@nameuse{ps@navigation} +% } +% \end{macrocode} +% \end{macro} +% \end{implementation} + +% \begin{documentation} +% \begin{function}{\begin{frame}[tocsec]} +% Add a frame option |tocsec| to display the tocsec frame template. +% \end{function} +% \end{documentation} +%%%%%% +% \begin{implementation} +% \begin{macro}{\begin{frame}[tocsec]} +% Add a frame option |tocsec| to display the tocsec frame template. +% To do it, we must add a global boolean variable, capture the option at the begin of the frame and patch the end of the frame. +% \UnitTested +% \TestFiles{gotham-test-042} +% \begin{macrocode} +\bool_new:N \l_gotham_tocsectionframe +\bool_set_false:N \l_gotham_tocsectionframe +\define@key{beamerframe}{tocsec}[true]{ + \bool_set_true:N \l_gotham_tocsectionframe + \begingroup + \usebeamertemplate{toc~section~frame} +} +\apptocmd{\beamer@reseteecodes}{ + \bool_if:NTF \l_gotham_tocsectionframe { + \endgroup + \bool_set_false:N \l_gotham_tocsectionframe + }{} +}{}{} +% \define@key{beamerframe}{tocsec}[true]{ +% \thispagestyle{navigation@tocsec} +% } +% \def\ps@navigation@tocsec{ +% \usebeamertemplate{toc~section~frame} +% \@nameuse{ps@navigation} +% } +% \end{macrocode} +% \end{macro} +% \end{implementation} + +% \begin{documentation} +% \begin{function}{\begin{frame}[tocsubsec]} +% Add a frame option |tocsubsec| to display the tocsubsec frame template. +% \end{function} +% \end{documentation} +%%%%%% +% \begin{implementation} +% \begin{macro}{\begin{frame}[tocsubsec]} +% Add a frame option |tocsubsec| to display the tocsubsec frame template. +% To do it, we must add a global boolean variable, capture the option at the begin of the frame and patch the end of the frame. +% \UnitTested +% \TestFiles{gotham-test-042} +% \begin{macrocode} +\bool_new:N \l_gotham_tocsubsectionframe +\bool_set_false:N \l_gotham_tocsubsectionframe +\define@key{beamerframe}{tocsubsec}[true]{ + \bool_set_true:N \l_gotham_tocsubsectionframe + \begingroup + \usebeamertemplate{toc~subsection~frame} +} +\apptocmd{\beamer@reseteecodes}{ + \bool_if:NTF \l_gotham_tocsubsectionframe { + \endgroup + \bool_set_false:N \l_gotham_tocsubsectionframe + }{} +}{}{} +% \define@key{beamerframe}{tocsubsec}[true]{ +% \thispagestyle{navigation@tocsubsec} +% } +% \def\ps@navigation@tocsubsec{ +% \usebeamertemplate{toc~subsection~frame} +% \@nameuse{ps@navigation} +% } +% \end{macrocode} +% \end{macro} +% \end{implementation} + +% \begin{documentation} +% \begin{function}{\begin{frame}[tocsubsubsec]} +% Add a frame option |tocsubsubsec| to display the tocsubsubsec frame template. +% \end{function} +% \end{documentation} +%%%%%% +% \begin{implementation} +% \begin{macro}{\begin{frame}[tocsubsubsec]} +% Add a frame option |tocsubsubsec| to display the tocsubsubsec frame template. +% To do it, we must add a global boolean variable, capture the option at the begin of the frame and patch the end of the frame. +% \UnitTested +% \TestFiles{gotham-test-042} +% \begin{macrocode} +\bool_new:N \l_gotham_tocsubsubsectionframe +\bool_set_false:N \l_gotham_tocsubsubsectionframe +\define@key{beamerframe}{tocsubsubsec}[true]{ + \bool_set_true:N \l_gotham_tocsubsubsectionframe + \begingroup + \usebeamertemplate{toc~subsubsection~frame} +} +\apptocmd{\beamer@reseteecodes}{ + \bool_if:NTF \l_gotham_tocsubsubsectionframe { + \endgroup + \bool_set_false:N \l_gotham_tocsubsubsectionframe + }{} +}{}{} +% \define@key{beamerframe}{tocsubsubsec}[true]{ +% \thispagestyle{navigation@tocsubsubsec} +% } +% \def\ps@navigation@tocsubsubsec{ +% \usebeamertemplate{toc~subsubsection~frame} +% \@nameuse{ps@navigation} +% } +% \end{macrocode} +% \end{macro} +% \end{implementation} + +% \begin{documentation} +% \begin{function}{\useinnertheme} +% \begin{syntax} +% \cs{useinnertheme}\oarg{option1=value1, ...}\marg{gotham} +% \textrm{where the options are (default marked as} \defopt{default}\textrm{):} +% \meta{tocframe template} = \oarg{\defopt{gotham bullet} \textbar gotham simple \textbar ...} +% \meta{parttocframe template default} = \oarg{\defopt{gotham simple} \textbar gotham bullet} +% \meta{parttocframe default} = \oarg{\defopt{on} \textbar off} +% \meta{sectocframe template default} = \oarg{\defopt{gotham simple} \textbar gotham bullet} +% \meta{sectocframe default} = \oarg{\defopt{on} \textbar off} +% \meta{subsectocframe template default} = \oarg{\defopt{gotham simple} \textbar gotham bullet} +% \meta{subsectocframe default} = \oarg{\defopt{on} \textbar off} +% \end{syntax} +% The 'package' (useinnertheme) options can control |parttocframe templates| (or |sectocframe| and |subsectocframe| respectively), which define the style of the table of content for partframe (or |sectionframe|, and |subsectionframe| respectively) displayed at every new beginning of sectioning. +% These templates can be disabled (or re-enabled) by default using the option |parttocframe default| (or |sectocframe| and |subssectocframe| respectively). +% \end{function} +% \end{documentation} +%%%% +% \begin{implementation} +% \begin{macro}{inner key -- interface} +% Controls the inner settings for |parttocframe| (or |sectocframe|, |subsectocframe| respectively). +% \UnitTested +% \TestFiles{gotham-test-041} +% \begin{macrocode} +\keys_define:nn { gotham / inner } +{ + % TOC style + tocframe~template .usage:n = { general }, + tocframe~template .default:n = { gotham~bullet }, + tocframe~template .code:n = { \__gotham_set_template:nn{toc~page}{#1} } +} + +\keys_define:nn { gotham / inner }{ + % parttocframe template + parttocframe~template .usage:n = { general }, + parttocframe~template .default:n = { gotham~simple }, + parttocframe~template .code:n = { \__gotham_set_template:nn{toc~part~frame}{#1} } +} +\keys_define:nn { gotham / inner } +{ + % parttocframe default + parttocframe~default .choice:, + parttocframe~default .usage:n = { general }, + parttocframe~default .default:n = { true }, + + parttocframe~default / true .code:n = { \booltrue{partContent} }, + parttocframe~default / on .code:n = { \booltrue{partContent} }, + parttocframe~default / enable .code:n = { \booltrue{partContent} }, + + parttocframe~default / false .code:n = { \boolfalse{partContent} }, + parttocframe~default / off .code:n = { \boolfalse{partContent} }, + parttocframe~default / disable .code:n = { \boolfalse{partContent} }, + + parttocframe~default / unknown .code:n = { \PackageWarning{ gotham } { The~choice~'#1'~is~unknown~for~the~(known)~option~'parttocframe~default',~so~being~ignored. }{helping~message: parttocframe~default / unknown} }, +} + +\keys_define:nn { gotham / inner }{ + % sectiontocframe template + sectiontocframe~template .usage:n = { general }, + sectiontocframe~template .default:n = { gotham~simple }, + sectiontocframe~template .code:n = { \__gotham_set_template:nn{toc~section~frame}{#1} } +} +\keys_define:nn { gotham / inner } +{ + % sectiontocframe default + sectiontocframe~default .choice:, + sectiontocframe~default .usage:n = { general }, + sectiontocframe~default .default:n = { true }, + + sectiontocframe~default / true .code:n = { \booltrue{sectionContent} }, + sectiontocframe~default / on .code:n = { \booltrue{sectionContent} }, + sectiontocframe~default / enable .code:n = { \booltrue{sectionContent} }, + + sectiontocframe~default / false .code:n = { \boolfalse{sectionContent} }, + sectiontocframe~default / off .code:n = { \boolfalse{sectionContent} }, + sectiontocframe~default / disable .code:n = { \boolfalse{sectionContent} }, + + sectiontocframe~default / unknown .code:n = { \PackageWarning{ gotham } { The~choice~'#1'~is~unknown~for~the~(known)~option~'sectiontocframe~default',~so~being~ignored. }{helping~message: sectiontocframe~default / unknown} }, +} + +\keys_define:nn { gotham / inner }{ + % subsectiontocframe template + subsectiontocframe~template .usage:n = { general }, + subsectiontocframe~template .default:n = { gotham~simple }, + subsectiontocframe~template .code:n = { \__gotham_set_template:nn{toc~subsection~frame}{#1} } +} +\keys_define:nn { gotham / inner } +{ + % subsectiontocframe default + subsectiontocframe~default .choice:, + subsectiontocframe~default .usage:n = { general }, + subsectiontocframe~default .default:n = { true }, + + subsectiontocframe~default / true .code:n = { \booltrue{subsectionContent} }, + subsectiontocframe~default / on .code:n = { \booltrue{subsectionContent} }, + subsectiontocframe~default / enable .code:n = { \booltrue{subsectionContent} }, + + subsectiontocframe~default / false .code:n = { \boolfalse{subsectionContent} }, + subsectiontocframe~default / off .code:n = { \boolfalse{subsectionContent} }, + subsectiontocframe~default / disable .code:n = { \boolfalse{subsectionContent} }, + + subsectiontocframe~default / unknown .code:n = { \PackageWarning{ gotham } { The~choice~'#1'~is~unknown~for~the~(known)~option~'subsectiontocframe~default',~so~being~ignored. }{helping~message: subsectiontocframe~default / unknown} }, +} +% \end{macrocode} +% \end{macro} +% \end{implementation} + + +%% Environments styles %%% +%%%%%%%%%%%%%%%%%%%%%%%%%% + +% \begin{implementation} +% \begin{variable}{\gotham@blocksep, \gotham@blockadjust} +% |blocksep| and |blockadjust| lengths used in |\gotham@block| definition. +% While |gotham@strut| is a command to ensure verticale spacing equivalent to a line. +% \begin{macrocode} +\newlength{\gotham@blocksep} +\newlength{\gotham@blockadjust} +\setlength{\gotham@blocksep}{0.75ex} +\setlength{\gotham@blockadjust}{0.25ex} +\providecommand{\gotham@strut}{ + \vphantom{ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz (/)} +} +% \end{macrocode} +% \end{variable} +% \end{implementation} + +% \begin{implementation} +% \begin{variable}{\gotham@parskip, \linespread} +% length parskip defined by gotham and the linespread are adjusted. +% \begin{macrocode} + \newlength{\gotham@parskip} + \setlength{\gotham@parskip}{0.5em} + \setlength{\parskip}{\gotham@parskip} + \linespread{1.15} +% \end{macrocode} +% \end{variable} +% \end{implementation} + +% \begin{implementation} +% \begin{macro}{\newcommand{\gotham@block}[1]} +% The three different block environments differ only in their colours. +% Rather than repeat the essentially the same template three times, we use the auxiliary macro |\gotham@block| to define all three templates. +% \UnitTested +% \TestFiles{gotham-test-043} +% \begin{macrocode} +\providecommand{\gotham@block}[1]{ + \par\vskip\medskipamount + \setlength{\parskip}{0pt} + + % If a background color is defined for the block title or body, we need to add a little bit of padding to the corresponding box. + % Ideally, this would be accomplished by setting |colsep=0.75ex|, which is intended to add ``color separation space'' only when the box has a colored background. + % Unfortunately, |colsep| also adds this separation if the background color is inherited, even if the inherited color is actually empty. + % (The technical reason for this boils down to the fact that the |\ifx| directive does not expand macros.) + % + % To achieve the correct spacing for |alertblock|s and |exampleblock|s as well as for normal blocks, we have to begin the |beamercolorbox| differently based on whether |block title| has an empty background. + % + % If the |block title| background is empty, or the user has explicitly removed the background from (e.g.) |block title alerted|, we just need to set a rightskip for a nice ragged-right block title. + \ifbeamercolorempty[bg]{block~title#1}{% + \begin{beamercolorbox}[rightskip=0pt~plus~4em]{block~title#1} + }{ + \ifbeamercolorempty[bg]{block~title}{ + \begin{beamercolorbox}[rightskip=0pt~plus~4em]{block~title#1} + } + % Otherwise, if the |block title| has a background, we set the padding based on |\gotham@blockskip|. + % However, we have to visually compensate for the |\gotham@strut| added to the block title (see below) by subtracting |\gotham@blockadjust| from the top and bottom padding. + % + { + \begin{beamercolorbox}[ + sep=\dimexpr\gotham@blocksep-\gotham@blockadjust\relax, + leftskip=\gotham@blockadjust, + rightskip=\dimexpr\gotham@blockadjust~plus~4em\relax, + ]{block~title#1} + } + } + % We can now set the contents of the |block title|. + % The zero-width but positive-height box |\gotham@strut| ensures that the block title box has a consistent height, even if it lacks punctuation, ascenders, or descenders. + % + \usebeamerfont*{block~title#1} + \gotham@strut + \insertblocktitle + \gotham@strut + \end{beamercolorbox} + % Next, we typeset the |block body|. + % This the code is similar to, but simpler than, the |block title| code since we don't need to adjust for any struts. + \nointerlineskip + \ifbeamercolorempty[bg]{block~body#1}{ + \begin{beamercolorbox}[vmode]{block~body#1} + }{ + \ifbeamercolorempty[bg]{block~body}{ + \begin{beamercolorbox}[vmode]{block~body#1} + }{ + \begin{beamercolorbox}[sep=\gotham@blocksep, vmode]{block~body#1} + \vspace{-\gotham@parskip} + } + } + \usebeamerfont{block~body#1} + \setlength{\parskip}{\gotham@parskip} +} +% This concludes the auxiliary macro |\gotham@block|. +% \end{macrocode} +% \end{macro} +% \end{implementation} + +% \begin{documentation} +% \begin{function}{\begin{block}, \begin{alertblock}, \begin{exampleblock}} +% Three boxed environment are defined by default: |block|, |alertblock| and |exampleblock|. +% The style of blocks can be changed using |\setbeamertemplate{blocks}[rounded][shadow=true]|. +% \end{function} +% \end{documentation} +%%%% +% \begin{implementation} +% \begin{macro}{\defbeamertemplate{block~begin}{gotham}} +% We could define the block beamer templates using the auxiliary macro |\gotham@block|.... +% Yet, following the precious advice from Sam Carter \url{https://github.com/jolars/moloch/issues/6}, we should keep beamer blocks. +% But of course, one can go back to metropolis style using the commented lines here. +% \UnitTested +% \TestFiles{gotham-test-043} +% \begin{macrocode} +% \defbeamertemplate*{block~begin}{gotham}{\gotham@block{}} +% \defbeamertemplate*{block~alerted~begin}{gotham}{\gotham@block{~alerted}} +% \defbeamertemplate*{block~example~begin}{gotham}{\gotham@block{~example}} +% \defbeamertemplate*{block~end}{gotham}{\end{beamercolorbox}\vspace*{0.2ex}} +% \defbeamertemplate*{block~alerted~end}{gotham}{\end{beamercolorbox}\vspace*{0.2ex}} +% \defbeamertemplate*{block~example~end}{gotham}{\end{beamercolorbox}\vspace*{0.2ex}} +% \end{macrocode} +% \end{macro} +% \end{implementation} + +% \begin{documentation} +% \begin{function}{\begin{itemize}} +% Three level of itemize environment are defined by default with decreasing size: |circle|, |triangle| and |square|. +% \end{function} +% \end{documentation} +%%%% +% \begin{implementation} +% \begin{macro}{\defbeamertemplate{block~begin}{gotham}} +% We define the block beamer templates using the auxiliary macro |\gotham@block|. +% \UnitTested +% \TestFiles{gotham-test-043} +% \begin{macrocode} +\defbeamertemplate*{itemize~item}{gotham}{%\textbullet} + \large + \setbeamertemplate{itemize~item}[circle] + \usebeamertemplate{itemize~item} +} +\defbeamertemplate*{itemize~subitem}{gotham}{%$\blacktriangleright$ + \scriptsize + \setbeamertemplate{itemize~subitem}[triangle] + \usebeamertemplate{itemize~subitem} +} +\defbeamertemplate*{itemize~subsubitem}{gotham}{%square or - + \Tiny + $\blacksquare$ % \textbf{-} + % \setbeamertemplate{itemize~subsubitem}[square] + % \usebeamertemplate{itemize~subsubitem} % not working because the size of the square is hardcoded. +} + +%% TRY: enumitem package, enumitem and beamer are incompatible. +% \setitemize{label=\usebeamerfont*{itemize~item} +% \usebeamercolor[fg]{itemize~item} +% \usebeamertemplate{itemize~item}} +%% I tried to redefine everything to make them compatible, but it breaks the [alert] environment... So, I gave up. + +% \end{macrocode} +% \end{macro} +% \end{implementation} + +% \begin{documentation} +% \begin{function}{\defbeamertemplate{caption}, \defbeamertemplate{footnote}} +% Gotham defines float captions with a numbered style and footnotes with traditional style (color can be tuned with |\setbeamercolor{footnote}|). +% \end{function} +% \end{documentation} +%%%%%% +% \begin{implementation} +% \begin{macro}{\defbeamertemplate{caption}, \defbeamertemplate{footnote}} +% Templates definitions for caption and footnote. +% \TestMissing{explanation} +% \UnitTested +% \TestFiles{gotham-test-043} +% \begin{macrocode} +\defbeamertemplate*{caption~label~separator}{gotham}{:~} +\setbeamertemplate{caption}[numbered] +\defbeamertemplate*{footnote}{gotham}{ + \parindent~0em\noindent + \raggedright + \usebeamercolor{footnote}\hbox~to~0.8em{\hfil\insertfootnotemark}\insertfootnotetext\par +} +% \end{macrocode} +% \end{macro} +% \end{implementation} + +% \begin{implementation} +% \begin{macro}{Default inner keys} +% Apply default key options. +% \UnitTested +% \TestFiles{gotham-test-043} +% \begin{macrocode} +% when no value is given, default is called. +\keys_set:nn { gotham / inner } { + title~page, + watermark~template, watermark~default, + standout~template, standin~template, + partframe~template, partframe~default, + sectionframe~template, sectionframe~default, + subsectionframe~template, subsectionframe~default, + subsubsectionframe~template, subsubsectionframe~default, + tocframe~template, + parttocframe~template, parttocframe~default, + sectiontocframe~template, sectiontocframe~default, + subsectiontocframe~template, subsectiontocframe~default, + % subsubsectiontocframe~template, subsubsectiontocframe~default, +} +% \end{macrocode} +% \end{macro} +% \end{implementation} + +% \begin{implementation} +% \begin{macro}{Process inner keys} +% Process package options. +% \UnitTested +% \TestFiles{gotham-test-043} +% \begin{macrocode} +\ProcessKeyOptions[ gotham / inner ] +% \mode<all> +% \end{macrocode} +% \end{macro} +% \end{implementation} + + +% \begin{implementation} +% \begin{macrocode} +%\endinput +%</inner> +% \end{macrocode} +% \end{implementation} +% +% +% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +% +% +%\begin{implementation} +% \begin{macrocode} +%<*outer> +\ProvidesExplPackage{beamerouterthemegotham}{2025-02-11}{1.2.1.c}{gotham outer theme} +\RequirePackage{expl3} +\RequirePackage{xfp} +\RequirePackage{calc} +\RequirePackage{tikz} +% \end{macrocode} +% \end{implementation} +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%% OUTER %%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% +% \begin{implementation} +% \begin{macro}{Compitibility mode for colors} +% FROM COLOR THEME: useful to provide this recall when the inner theme is loaded without the color theme. +% \begin{macrocode} +\@ifundefined{\string\color@colorProgBar}{ + \providebool{darkBG} \boolfalse{darkBG} + \providebool{transparentBG} \booltrue{transparentBG} + \colorlet{colorBG}{white} + \colorlet{colorFG}{black} + \colorlet{colorFrametitle}{purple} + \colorlet{colorStandout}{purple} + \colorlet{colorStandin}{purple} + \colorlet{colorTitlepage}{purple} + \colorlet{colorFiligrane}{gray} + \colorlet{colorBackElement}{gray} + \colorlet{colorProgBar}{orange} + \colorlet{colorAlert}{red} + \colorlet{colorExample}{green} + \setbeamercolor{progress~bar}{ + use=alerted~text, + fg=colorProgBar, + bg=alerted~text.fg!50!black!30 + } + \setbeamercolor{progress~bar~in~head/foot}{% + use=progress~bar, + parent=progress~bar + } + \setbeamercolor{progress~bar~in~part~page}{ + use=progress~bar, + parent=progress~bar + } + \setbeamercolor{progress~bar~in~section~page}{ + use=progress~bar, + parent=progress~bar + } + \setbeamercolor{progress~bar~in~splitvert}{ + use=progress~bar, + parent=progress~bar + } + \setbeamercolor{frametitleSection}{use=primary~palette, bg=, fg=primary~palette.bg} + \setbeamercolor{standout}{use=primary~palette, bg=colorStandout, fg=primary~palette.bg} + \setbeamercolor{standin}{use=normal~text, bg=colorStandin, fg=normal~text.fg} + \setbeamercolor{section~in~toc}{use=normal~text, parent=normal~text,} + \setbeamercolor{subsection~in~toc}{use=normal~text, parent=normal~text,} + \setbeamercolor{subsubsection~in~toc}{use=normal~text, parent=normal~text,} +}{ + % else the colors are defined: this is fine. +} +% \end{macrocode} +% \end{macro} +% \end{implementation} + +% \begin{documentation} +% \begin{variable}{\l__gotham_template_name_prop} +% Dictionary/map of template elements and predefined option according to the context. +% Naming convention: template/What/Who, i.e. Name: key=background~canvas/watermark, value = gotham~draft +% \end{variable} +% \end{documentation} +%%%%%% +% \begin{implementation} +% \begin{variable}{\l__gotham_template_name_prop} +% Dictionary/map of template elements and predefined option according to the context. +% Naming convention: template/What/Who, i.e. Name: key=background~canvas/watermark, value = gotham~draft +% \begin{macrocode} +\prop_if_exist:NTF \l__gotham_template_name_prop +{}{ + % if not defined than define it. + \prop_new:N \l__gotham_template_name_prop +} +% \end{macrocode} +% \end{variable} +% \end{implementation} + +% \begin{implementation} +% \begin{variable}{\l__gotham_tmpa_seq, \l__gotham_tmpa_tl, \l__gotham_tmpb_tl} +% tmp variables +% \begin{macrocode} +\seq_if_exist:NTF \l__gotham_tmpa_seq +{}{ + % sequence + \seq_new:N \l__gotham_tmpa_seq +} +\tl_if_exist:NTF \l__gotham_tmpa_tl +{}{ + % token list A + \tl_new:N \l__gotham_tmpa_tl +} +\tl_if_exist:NTF \l__gotham_tmpb_tl +{}{ + % token list B + \tl_new:N \l__gotham_tmpb_tl +} +% \end{macrocode} +% \end{variable} +% \end{implementation} + +% \begin{implementation} +% \begin{function}{\__gotham_set_prop_template:nn} +% \begin{arguments} +% \item element name (from beamer doc) in other word, the name the template category +% \item prefined option (from beamer doc) +% \end{arguments} +% Function that store in a map the name a template use later. +% The following naming convention is used: Template/What/Who~Name: watermark/gotham~draft. +% The means for example that if a beamer template is defined using +% |\defbeamertemplate{background}{watermark/gotham~draft}{...}|, +% then the function has to be call using +% |\__gotham_set_prop_template{background/watermark}{gotham~draft}|, +% that will filled internally the map using the l3 command +% |\prop_put:Nnn \l__gotham_template_name_prop {background/watermark}{gotham~draft}|. +% If the template name given as input does not exist, an error is raised. +% \TestFiles{gotham-test-044} +% \begin{macrocode} +\cs_if_exist:NTF \__gotham_set_prop_template:nn {}{ + % if it doesn't exist, then create it. + \cs_new_protected:Nn \__gotham_set_prop_template:nn + { + % Check if the first argument contains a / + \tl_if_in:nnTF { #1 } { / } + { + % Split the first around the / + \seq_set_split:Nnn \l__gotham_tmpa_seq { / } { #1 } + \tl_set:Nn \l__gotham_tmpa_tl { \seq_item:Nn \l__gotham_tmpa_seq { 1 } } + \tl_set:Nn \l__gotham_tmpb_tl { \seq_item:Nn \l__gotham_tmpa_seq { 2 } } + % Check if template exist + \cs_if_exist:cTF {beamer@@tmpop@\exp_not:V \l__gotham_tmpa_tl @\exp_not:V \l__gotham_tmpb_tl /#2} { + % set the value in the map, so it can be called later. + \prop_put:Nnn \l__gotham_template_name_prop {#1} {#2} + % \setbeamertemplate{#1}[#2] + }{ + \PackageError{beamerthemegotham} + {The~beamer~template~named~'\l__gotham_tmpa_tl'~with~the~option~'\l__gotham_tmpb_tl/#2'~does~not~exist} + {helping~message} + } + }{% false -> error + \PackageError{beamerthemegotham} + { + When~using~'\c_backslash_str\cs_to_str:N \__gotham_set_prop_template'~the~first~argument~should~contain~a~'/'~to~respect~the~naming~convention~used~(Template/what/Who~name),~but~you~gave~'#1'.~ + As~example:~if~'\c_backslash_str defbeamertemplate{background}{watermark/gotham~draft}'...,~then~use~'\c_backslash_str\cs_to_str:N \__gotham_set_prop_template{background/watermark}{gotham~draft}' + }{helping~message} + } + } +} +% \end{macrocode} +% \end{function} +% \end{implementation} + +% \begin{implementation} +% \begin{function}{\__gotham_add_beamerframe_key:n} +% \begin{arguments} +% \item Name of the option to add, this name should also correspond to the name of the environment followed by the suffix 'env'. +% \end{arguments} +% Function to add an option of a frame using an environment. +% For example, if the name 'optionA' is the argument given to the function, an frame option named 'optionA' will be added, and this option will surround the frame with the environment named 'optionAenv'. +% So, the environment 'optionA' must have been declared before. +% \TestFiles{gotham-test-038} +% \begin{macrocode} +\seq_if_exist:NTF \l__gotham_frameoption_tmp_seq {}{ + % Define the sequence of frameoptions environments to close + \seq_new:N \l__gotham_frameoption_tmp_seq +} + +\cs_if_exist:NTF \__gotham_add_beamerframe_key:n {}{ + % if it doesn't exist, then create it. + + % Define the command to add frameoptions + \cs_new_protected:Nn \__gotham_add_beamerframe_key:n { + \define@key{beamerframe}{ #1 }[true]{ + \begin{#1env} + \seq_put_left:Nn \l__gotham_frameoption_tmp_seq { \end{#1env} } + } + } + + % At the end of frames close the opened environments. + \apptocmd{\beamer@reseteecodes}{ + % Join elements in the queue without separator then output the result + \seq_use:Nn \l__gotham_frameoption_tmp_seq {} + % clear working queue + \seq_clear:N \l__gotham_frameoption_tmp_seq + }{}{} +} +% \end{macrocode} +% \end{function} +% \end{implementation} + +% \begin{documentation} +% \begin{function}{\__gotham_set_template:nn} +% \begin{syntax} +% \cs{__gotham_set_template:nn} \marg{element} \marg{option} +% \end{syntax} +% Function that test if a beamertemplate with the given element and option name exists. If it exists then it is set (applied), otherwise an error is raised. +% \end{function} +% \end{documentation} +%%%%%% +% \begin{implementation} +% \begin{function}{\__gotham_set_template:nn} +% \begin{arguments} +% \item element name (from beamer doc) in other word, the name the template category +% \item prefined option (from beamer doc) +% \end{arguments} +% Function to set a beamertemplate with an option if it exists, otherwise an error is raised. +% Unfortunatly, (as far as I know) it not possible to test if the element name exists independtly from the prefined option. +% \TestFiles{gotham-test-038} +% \begin{macrocode} +\cs_if_exist:NTF \__gotham_set_template:nn {}{ + % If it doesn't exist, then create it. + + % Define the command to set template if it exists. + \cs_new_protected:Nn \__gotham_set_template:nn + { + \cs_if_exist:cTF {beamer@@tmpop@#1@#2} { + \setbeamertemplate{#1}[#2] + }{ + \PackageError{beamerinnerthemegotham} + {The~beamer~template~named~'#1'~with~the~option~'#2'~does~not~exist} + {helping~message unknown setbeamertemplate option} + } + } +} +% \end{macrocode} +% \end{function} +% \end{implementation} + + +%%% Sidebars %%% +%%%%%%%%%%%%%%%% + +% \begin{documentation} +% \begin{variable}{\sidebarRightHOffset, \sidebarLeftHOffset} +% Length controling the horizontal offset in order to position |\gothamRightFiligrane| (respectively |\gothamLeftFiligrane|) when using the default sidebar canvas (right and left) from gotham. +% \end{variable} +% \end{documentation} +%%%%%% +% \begin{implementation} +% \begin{variable}{\sidebarRightHOffset, \sidebarLeftHOffset} +% lengths between borders (right and left) and the commands (|\gothamRightFiligrane| and |\gothamleftFiligrane|) used inside |\setbeamertemplate{sidebar~canvas~right}[default/gotham~filigrane]| (left respectively). +% \UnitTested +% \TestFiles{gotham-test-044} +% \begin{macrocode} +% sidebar lengths +\newlength{\sidebarRightHOffset} +\newlength{\sidebarLeftHOffset} +\setlength{\sidebarRightHOffset}{-2.5ex} +\setlength{\sidebarLeftHOffset}{+0.5ex} +% \end{macrocode} +% \end{variable} +% \end{implementation} + +% \begin{documentation} +% \begin{function}{\gothamRightFiligrane, \gothamLeftFiligrane} +% Commands used internally by |\setbeamertemplate{sidebar~canvas~right}[default/gotham~filigrane]| (left respectively), that are empty by default. +% But these commands can be simply redefined to custom watermarks (filigrane) in sidebars. +% \end{function} +% \end{documentation} +%%%%%% +% \begin{implementation} +% \begin{macro}{\gothamRightFiligrane, \gothamLeftFiligrane} +% Commands used internally by |\setbeamertemplate{sidebar~canvas~right}[default/gotham~filigrane]| (left respectively), that are empty by default. +% But these commands can be simply redefined to custom watermarks (filigrane) in sidebars. +% \UnitTested +% \TestFiles{gotham-test-044} +% \begin{macrocode} +% Command to add filigrane/edging in sidebar +\providecommand{\gothamRightFiligrane}{ + % left empty intentionally + % \rotatebox{90}{gotham right filigrane pattern} +} +\providecommand{\gothamLeftFiligrane}{ + % left empty intentionally + % \rotatebox{-90}{\hspace*{5em} gotham left filigrane pattern} +} +% \end{macrocode} +% \end{macro} +% \end{implementation} + +% \begin{implementation} +% \begin{macro}{\defbeamertemplate{sidebar~canvas~right}{}, \defbeamertemplate{sidebar~canvas~left}{}} +% Definitions of |\defbeamertemplate{sidebar~canvas~right}| (respectively |\defbeamertemplate{sidebar~canvas~left}|) that are used by gotham by default. +% \UnitTested +% \TestFiles{gotham-test-044} +% \begin{macrocode} +\defbeamertemplate{sidebar~right}{default/beamer}{ + \vfill + \llap{\insertlogo\hskip0.1cm} + \vskip2pt + \llap{\usebeamertemplate***{navigation~symbols}\hskip0.1cm} + \vskip2pt +} +\defbeamertemplate{sidebar~right}{default/empty}{} +\defbeamertemplate{sidebar~canvas~right}{default/empty}{} +\defbeamertemplate{sidebar~canvas~right}{default/gotham~filigrane}{ + % pull to the left otherwise, the filigrane is outside of the frame. + \hspace*{\sidebarRightHOffset} + \gothamRightFiligrane +} +\defbeamertemplate{sidebar~left}{default/empty}{} +\defbeamertemplate{sidebar~canvas~left}{default/empty}{} +\defbeamertemplate{sidebar~canvas~left}{default/gotham~filigrane}{ + \hspace*{\sidebarLeftHOffset} + \gothamLeftFiligrane +} +% Add the template to the prop (dictionary) of background template to use according to the situation +\prop_put:Nnn \l__gotham_template_name_prop {sidebar~canvas~left/default} {gotham~filigrane} +\prop_put:Nnn \l__gotham_template_name_prop {sidebar~canvas~right/default} {gotham~filigrane} +\prop_put:Nnn \l__gotham_template_name_prop {sidebar~left/default} {empty} +\prop_put:Nnn \l__gotham_template_name_prop {sidebar~right/default} {beamer} +% \end{macrocode} +% \end{macro} +% \end{implementation} + +% \begin{documentation} +% \begin{variable}{\l_gotham_defaultEdging} +% Boolean to triggering if edging should be displayed by default (without giving the frame option). +% The variable is |false| by default. +% \end{variable} +% \end{documentation} +%%%%%% +% \begin{implementation} +% \begin{macro}{\l_gotham_defaultEdging} +% Boolean variable to display the edging by default (or not). +% \UnitTested +% \TestFiles{gotham-test-044} +% \begin{macrocode} +\bool_new:N \l_gotham_defaultEdging +\bool_set_false:N \l_gotham_defaultEdging +% At every new frame, reset the options to default (unless some options/keys are given) +\BeforeBeginEnvironment{frame}{ + \bool_if:NTF \l_gotham_defaultEdging { + \setbeamertemplate{sidebar~canvas~left}[default/\prop_item:Nn \l__gotham_template_name_prop {sidebar~canvas~left/default}] + \setbeamertemplate{sidebar~canvas~right}[default/\prop_item:Nn \l__gotham_template_name_prop {sidebar~canvas~right/default}] + }{ + % false + \setbeamertemplate{sidebar~canvas~left}[default/empty] + \setbeamertemplate{sidebar~canvas~right}[default/empty] + } +} +% \end{macrocode} +% \end{macro} +% \end{implementation} + +% \begin{documentation} +% \begin{function}{\begin{frame}[edging]} +% Add a frame option |edging| to display edging in sidebar canvas. +% \end{function} +% \end{documentation} +%%%%%% +% \begin{implementation} +% \begin{macro}{\begin{frame}[edging]} +% Add a frame option |edging| to display an empty sidebar canvas canvas. +% To do it, we must add a global boolean variable, capture the option at the begin of the frame and patch the end of the frame. +% \UnitTested +% \TestFiles{gotham-test-044} +% \begin{macrocode} +% bool to trigger the add of edging in sidebar canvas +\newenvironment{edgingenv}{ + \setbeamertemplate{sidebar~canvas~left}[ + default/\prop_item:Nn \l__gotham_template_name_prop {sidebar~canvas~left/default} + ] + \setbeamertemplate{sidebar~canvas~right}[ + default/\prop_item:Nn \l__gotham_template_name_prop {sidebar~canvas~right/default} + ] +}{} +\__gotham_add_beamerframe_key:n {edging} +% \end{macrocode} +% \end{macro} +% \end{implementation} + +% \begin{documentation} +% \begin{function}{\begin{frame}[noedging]} +% Add a frame option |noedging| to do not display noedging in sidebar canvas. +% \end{function} +% \end{documentation} +%%%%%% +% \begin{implementation} +% \begin{macro}{\begin{frame}[noedging]} +% Add a frame option |noedging| to do not display an empty sidebar canvas canvas. +% To do it, we must add a global boolean variable, capture the option at the begin of the frame and patch the end of the frame. +% \UnitTested +% \TestFiles{gotham-test-044} +% \begin{macrocode} +% bool to trigger the add of noedging in sidebar canvas +\newenvironment{noedgingenv}{ + \setbeamertemplate{sidebar~canvas~left}[default/empty] + \setbeamertemplate{sidebar~canvas~right}[default/empty] +}{} +\__gotham_add_beamerframe_key:n {noedging} +% \end{macrocode} +% \end{macro} +% \end{implementation} + +% \begin{documentation} +% \begin{function}{\useoutertheme} +% \begin{syntax} +% \cs{useoutertheme}\oarg{option1=value1, ...}\marg{gotham} +% \textrm{where the options are (default marked as} \defopt{default}\textrm{):} +% \meta{edging default} = \oarg{\defopt{off} \textbar on } +% \meta{sidebar canvas left template} = \oarg{\defopt{gotham} \textbar ...} +% \meta{sidebar canvas right template} = \oarg{\defopt{gotham filigrane} \textbar empty \textbar ...} +% \end{syntax} +% The 'package' (useoutertheme) options can control |sidebar canvas right| (and |sidebar canvas left|) templates. +% These templates are activated when giving the frame option |\begin{frame}[edging]|. +% The option |edging default=on| can enable the |sidebar canvas right| (and |sidebar canvas left|) templates on every frame; but it can still be turned off for specific frames when using the frame option |noedging|. +% \end{function} +% \end{documentation} +%%%% +% \begin{implementation} +% \begin{macro}{outer key -- interface} +% Controls the outer settings for sidebar canvas right and sidebar canvas left. +% \UnitTested +% \TestFiles{gotham-test-044} +% \begin{macrocode} +\keys_define:nn { gotham / outer } +{ + % sidebar~canvas~right template + sidebar~canvas~right~template .usage:n = { general }, + sidebar~canvas~right~template .default:n = { gotham~filigrane }, + sidebar~canvas~right~template .code:n = { \__gotham_set_prop_template:nn{sidebar~canvas~right/default}{#1} }, +} +\keys_define:nn { gotham / outer } +{ + % sidebar~canvas~left template + sidebar~canvas~left~template .usage:n = { general }, + sidebar~canvas~left~template .default:n = { gotham~filigrane }, + sidebar~canvas~left~template .code:n = { \__gotham_set_prop_template:nn{sidebar~canvas~left/default}{#1} }, +} +\keys_define:nn { gotham / outer }{ + % edging default + edging~default .choice:, + edging~default .usage:n = { general }, + edging~default .default:n = { false }, + + edging~default / true .code:n = { \bool_set_true:N \l_gotham_defaultEdging }, + edging~default / on .code:n = { \bool_set_true:N \l_gotham_defaultEdging }, + edging~default / enable .code:n = { \bool_set_true:N \l_gotham_defaultEdging }, + + edging~default / false .code:n = { \bool_set_false:N \l_gotham_defaultEdging }, + edging~default / off .code:n = { \bool_set_false:N \l_gotham_defaultEdging }, + edging~default / disable .code:n = { \bool_set_false:N \l_gotham_defaultEdging }, + + edging~default / unknown .code:n = { \PackageWarning{ gotham } { The~choice~'#1'~is~unknown~for~the~(known)~option~'edging~default',~so~being~ignored. }{helping~message: edging~default / unknown} }, +} +% \end{macrocode} +% \end{macro} +% \end{implementation} + + +%%% Navigation \& Logo %%% +%%%%%%%%%%%%%%%%%%%%%%%%%% + +% \begin{documentation} +% \begin{function}{\defbeamertemplate{navigation~symbols}{empty} } +% By default the navigation symbols are disable. +% \end{function} +% \end{documentation} +%%%%%% +% \begin{implementation} +% \begin{macro}{\defbeamertemplate*{navigation~symbols}{empty} } +% Apply the empty navigation symbol template by default. +% \UnitTested +% \TestFiles{gotham-test-045} +% \begin{macrocode} +\defbeamertemplate*{navigation~symbols}{empty}{} +% \end{macrocode} +% \end{macro} +% \end{implementation} + +% \begin{documentation} +% \begin{function}{\defbeamertemplate{navigation~symbols}{default} } +% Navigation symbols can be turned on using |\setbeamertemplate{navigation symbols}[default]|. +% \end{function} +% \end{documentation} +%%%%%% +% \begin{implementation} +% \begin{macro}{\defbeamertemplate{navigation~symbols}{horizontal} } +% From Beamer default theme. +% \UnitTested +% \TestFiles{gotham-test-045} +% \begin{macrocode} +% \setbeamertemplate{navigation~symbols}[vertical] +% \setbeamertemplate{navigation~symbols}[only~frame~symbol] +% \setbeamertemplate{navigation~symbols}[default]% = horizontal +% \defbeamertemplate{navigation~symbols}{horizontal}{ +% \usebeamercolor[fg]{navigation~symbols} +% \insertslidenavigationsymbol +% \insertframenavigationsymbol +% \insertsubsectionnavigationsymbol +% \insertsectionnavigationsymbol +% \insertdocnavigationsymbol +% \insertbackfindforwardnavigationsymbol +% } +% \end{macrocode} +% \end{macro} +% \end{implementation} + +% \begin{implementation} +% \begin{macro}{\defbeamertemplate{logo}{empty}} +% Template used sometimes to have no logo on specific frames. +% \UnitTested +% \TestFiles{gotham-test-045} +% \begin{macrocode} +\defbeamertemplate{logo}{empty}{} +% \end{macrocode} +% \end{macro} +% \end{implementation} + +% \begin{documentation} +% \begin{function}{\begin{frame}[nologo]} +% Add a frame option |nologo|, if you do not want your logo to be displayed. +% \end{function} +% \end{documentation} +%%%%%% +% \begin{implementation} +% \begin{macro}{\begin{frame}[nologo]} +% Add a frame option |nologo|, if you do not want your logo to be displayed. +% To do it, we must add a global boolean variable, capture the option at the begin of the frame and patch the end of the frame. +% \UnitTested +% \TestFiles{gotham-test-045} +% \begin{macrocode} +% bool to trigger the add of nologo action on frame. +\newenvironment{nologoenv}{ + \setbeamertemplate{logo}[empty] +}{} +\__gotham_add_beamerframe_key:n {nologo} +% \end{macrocode} +% \end{macro} +% \end{implementation} + + +%%% Headline \& Frametitle %%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%% Headline %%% + +% \begin{implementation} +% \begin{macro}{\defbeamertemplate{headline}{default/gotham}} +% The headline template is empty by default by can be changed when using progress bar or the current section. +% \UnitTested +% \TestFiles{gotham-test-046, gotham-test-046b, gotham-test-047} +% \begin{macrocode} +\defbeamertemplate{headline}{default/gotham}{} +\prop_put:Nnn \l__gotham_template_name_prop {headline/default} {gotham} +% \end{macrocode} +% \end{macro} +% \end{implementation} + +% \begin{implementation} +% \begin{macro}{\defbeamertemplate{headline}{default/gotham~section}} +% The headline template used to print the current section name and subection. +% This template is used with |circlehead| progress bar +% \UnitTested +% \TestFiles{gotham-test-046, gotham-test-046b, gotham-test-047} +% \begin{macrocode} +\defbeamertemplate{headline}{default/gotham~section}{ + \begin{beamercolorbox}[wd=1.0\paperwidth, ht=2.5ex, dp=1.4ex, left]{headfoot} + \usebeamerfont{section~in~head/foot}\hspace*{3.5ex} + \usebeamertemplate{section~in~head/foot} + \end{beamercolorbox} +} +% \end{macrocode} +% \end{macro} +% \end{implementation} + + +%%% Frametitle %%% + +% \begin{documentation} +% \begin{variable}{\gothamFrametitleToppading, \gothamFrametitleBottompading, \gothamFrametitleLeftpading, \gothamFrametitleRightpading} +% Dimensions controlling the top, bottom, left and right padding in the frametitle. +% \end{variable} +% \end{documentation} +%%%%%% +% \begin{implementation} +% \begin{variable}{\gothamFrametitleToppading, \gothamFrametitleBottompading, \gothamFrametitleLeftpading, \gothamFrametitleRightpading} +% Dimensions of lengths used in the frametitle: top, bottom, left and right padding. +% All of them are equal to 2.2ex by default. +% \begin{macrocode} +\newlength{\gothamFrametitleToppading} +\newlength{\gothamFrametitleBottompading} +\newlength{\gothamFrametitleLeftpading} +\newlength{\gothamFrametitleRightpading} +\setlength{\gothamFrametitleToppading}{2.2ex} +\setlength{\gothamFrametitleBottompading}{2.2ex} +\setlength{\gothamFrametitleLeftpading}{2.2ex} +\setlength{\gothamFrametitleRightpading}{2.2ex} +% \gotham@strut from inner +\providecommand{\gotham@strut}{ + \vphantom{ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz (/)} +} +% \end{macrocode} +% \end{variable} +% \end{implementation} + +% \begin{implementation} +% \begin{macro}{\gotham@frametitlestrut@start, \gotham@frametitlestrut@end} +% Commands used to control the space over and under the title in frametitle. +% \UnitTested +% \TestFiles{gotham-test-046, gotham-test-046b, gotham-test-047} +% \begin{macrocode} +\providecommand{\gotham@frametitlestrut@start}{ + \rule{0pt}{\gothamFrametitleToppading + + \totalheightof{ + \ifcsdef{gotham@frametitleformat}{\gotham@frametitleformat{X}}{X} + } + } +} +\providecommand{\gotham@frametitlestrut@end}{ + \rule[-\gothamFrametitleBottompading]{0pt}{\gothamFrametitleBottompading} +} +% \end{macrocode} +% \end{macro} +% \end{implementation} + +% \begin{documentation} +% \begin{function}{\gothamInstituteLogoSquare[height]} +% \begin{syntax} +% \cs{height} \oarg{height of the logo use in inclugraphics (4ex by default)} +% \end{syntax} +% Command to set the image logo to include. +% \end{function} +% \end{documentation} +%%%%%% +% \begin{implementation} +% \begin{function}{\gothamInstituteLogoSquare[height] \defbeamertemplate{includeLogo}{default/gotham~square}} +% \begin{syntax} +% \cs{gothamInstituteLogoSquare} \oarg{height} +% \end{syntax} +% Command to include the desired logo and a template used to add it to the frametitle. +% For example your can do |\renewcommand{\gothamInstituteLogoSquare}[1][4ex]{\includegraphics[height=#1]{gotham-logo.pdf}}|. +% \TestFiles{gotham-test-046, gotham-test-047} +% \begin{macrocode} +\providecommand{\gothamInstituteLogoSquare}[1][4ex]{ + %\includegraphics[height=#1]{gotham-logo.pdf} +} +\defbeamertemplate{includeLogo}{default/gotham~square}{ + \gothamInstituteLogoSquare +} +\prop_put:Nnn \l__gotham_template_name_prop {includeLogo/default} {gotham~square} +% \end{macrocode} +% \end{function} +% \end{implementation} + +% \begin{implementation} +% \begin{macro}{\defbeamertemplate{includeLogo}{default/gotham~circle}} +% Template used in frametitle when the option |progress bar= circlehead| is activated. +% \UnitTested +% \TestFiles{gotham-test-046b} +% \begin{macrocode} +\defbeamertemplate{includeLogo}{default/gotham~circle}{ + \gothamProgressCircle +} +% \end{macrocode} +% \end{macro} +% \end{implementation} + +% \begin{implementation} +% \begin{macro}{\defbeamertemplate{includeLogo}{default/gotham~circle}} +% Template to make sure the logo will remain centered and to do not change the height of the line when included. +% This template is used to include logo in frametitle. +% \UnitTested +% \TestFiles{gotham-test-046b} +% \begin{macrocode} +\defbeamertemplate{instituteLogo}{default/gotham}{ + % \raisebox{lift}[height][depth]{text} + \raisebox{0pt}[0pt][0pt]{ + \raisebox{.5\fontcharht\font`E-0.5\height}{ + % \setbeamertemplate{}[] + \setbeamertemplate{includeLogo}[default/\prop_item:Nn \l__gotham_template_name_prop {includeLogo/default}] + \usebeamertemplate{includeLogo} + } + } +} +\prop_put:Nnn \l__gotham_template_name_prop {instituteLogo/default} {gotham} +% \end{macrocode} +% \end{macro} +% \end{implementation} + +% \begin{documentation} +% \begin{function}{\gothamFrameSubtitleSep} +% Command that can be redefined to control the separator between the title of the frame and its subtitle. +% For example if a default Beamer style is desired, one can use |\renewcommand{\gothamFrameSubtitleSep}{\\[-.42em]}|. +% By default it is a hyphen. +% \end{function} +% \end{documentation} +%%%%%% +% \begin{implementation} +% \begin{function}{\gothamFrameSubtitleSep} +% Hyphen used as separator between title of the frame and its subtitle (within frametitle template). +% \TestFiles{ gotham-test-047} +% \begin{macrocode} +\providecommand{\gothamFrameSubtitleSep}{ + % \\[-.42em] % if newline (as default Beamer) + % or if same line with a -- separator. + \ ---~ +} +% \end{macrocode} +% \end{function} +% \end{implementation} + +% \begin{documentation} +% \begin{variable}{\gothamFramesubtitleStrutend} +% Variable vertical length used to adapte the bottom padding when a subtitle is given. +% \end{variable} +% \end{documentation} +%%%%%% +% \begin{implementation} +% \begin{variable}{\gothamFramesubtitleStrutend} +% Length used in |vspace| at the end of framesubtitle. +% \begin{macrocode} +\newlength{\gothamFramesubtitleStrutend} +\setlength{\gothamFramesubtitleStrutend}{0pt} +% \setlength{\gothamFramesubtitleStrutend}{-1.25ex} %% When \newcommand{\gothamFrameSubtitleSep}{\\[-.42em]} +% \end{macrocode} +% \end{variable} +% \end{implementation} + +% \begin{implementation} +% \begin{macro}{\defbeamertemplate{frametitle}{default/gotham~subsameline}} +% Template for frametitle include subtitle on the same line and a logo a flushed left. +% \UnitTested +% \TestFiles{gotham-test-047} +% \begin{macrocode} +\defbeamertemplate{frametitle}{default/gotham~subsameline}{ + \nointerlineskip + \begin{beamercolorbox}[ + wd=\paperwidth, + sep=0pt, + leftskip=\gothamFrametitleLeftpading, + rightskip=\gothamFrametitleRightpading, + ]{frametitle} + \gotham@frametitlestrut@start + \insertframetitle + \ifx\insertframesubtitle\@empty + %% if subtitle to the frame is empty + \else + %% if not empty: add subtitle + {\usebeamerfont{framesubtitle}\usebeamercolor[fg]{framesubtitle}\gothamFrameSubtitleSep \insertframesubtitle} + \vspace*{\gothamFramesubtitleStrutend} + \fi + \nolinebreak + %% Add logo + \hfill{ + \setbeamertemplate{instituteLogo}[default/\prop_item:Nn \l__gotham_template_name_prop {instituteLogo/default}] + \usebeamertemplate{instituteLogo} + } + \gotham@frametitlestrut@end + \end{beamercolorbox} +} +\prop_put:Nnn \l__gotham_template_name_prop {frametitle/default} {gotham~subsameline} +% \end{macrocode} +% \end{macro} +% \end{implementation} + +% \begin{implementation} +% \begin{macro}{\defbeamertemplate{framesubtitle}{default/gotham~subnewline}} +% Template for framesubtitle include subtitle on the same line and a logo a flushed left. +% \UnitTested +% \TestFiles{gotham-test-047} +% \begin{macrocode} +\dim_new:N \l__gotham_framesubtitle_subnewline_strutend_dim +\defbeamertemplate{framesubtitle}{default/gotham~subnewline}{ + \nointerlineskip + \begin{beamercolorbox}[ + wd=\paperwidth, + sep=0pt, + leftskip=\gothamFrametitleLeftpading, + rightskip=\gothamFrametitleRightpading, + ]{frametitle} + % put the subtitle in a raisebox to have no influence on the result. + \raisebox{0pt}[0pt][0pt]{ + \raisebox{-0.3ex}{ + { \usebeamerfont{framesubtitle}\usebeamercolor[fg]{framesubtitle}\insertframesubtitle} + } + } + % add 1ex to take into account the subtitle height. + \dim_set:Nn \l__gotham_framesubtitle_subnewline_strutend_dim {1.ex+\gothamFramesubtitleStrutend} + \vspace{\l__gotham_framesubtitle_subnewline_strutend_dim} + \end{beamercolorbox} +} +\prop_put:Nnn \l__gotham_template_name_prop {framesubtitle/default} {gotham~subnewline} +% \end{macrocode} +% \end{macro} +% \end{implementation} + +% \begin{implementation} +% \begin{macro}{\defbeamertemplate{framesubtitle}{default/gotham~subnewline}} +% Template for frametitle and a logo a flushed left then the subtitle on a new line. +% \UnitTested +% \TestFiles{gotham-test-047} +% \begin{macrocode} +\defbeamertemplate{frametitle}{default/gotham~subnewline}{ + \nointerlineskip + \begin{beamercolorbox}[ + wd=\paperwidth, + sep=0pt, + leftskip=\gothamFrametitleLeftpading, + rightskip=\gothamFrametitleRightpading, + ]{frametitle} + \gotham@frametitlestrut@start + \insertframetitle + \nolinebreak + \hfill{ + \setbeamertemplate{instituteLogo}[default/\prop_item:Nn \l__gotham_template_name_prop {instituteLogo/default}] + \usebeamertemplate{instituteLogo} + } + \gotham@frametitlestrut@end + \end{beamercolorbox} + %% End of the frametitle box, start then use the subtitle template if needed. + \ifx\insertframesubtitle\@empty + %% if subtitle to the frame is not empty + \else + % reduce vertical space to have a 1pt overlap, so no white line appears with vectorial viewers. + \vspace*{-1pt} + % add the subtitle + \setbeamertemplate{framesubtitle}[default/\prop_item:Nn \l__gotham_template_name_prop {framesubtitle/default}] + % \setbeamertemplate{framesubtitle}%[framesubtitle/default] + \usebeamertemplate{framesubtitle} + \fi +} +% \end{macrocode} +% \end{macro} +% \end{implementation} + +% \begin{documentation} +% \begin{function}{\useoutertheme} +% \begin{syntax} +% \cs{useoutertheme}\oarg{option1=value1, ...}\marg{gotham} +% \textrm{where the options are (default marked as} \defopt{default}\textrm{):} +% \meta{frametitle template} = \oarg{\defopt{gotham subsameline} \textbar gotham subnewline \textbar ... } +% \meta{framesubtitle template} = \oarg{\defopt{gotham subnewline} \textbar ...} +% \end{syntax} +% The 'package' (useoutertheme) options can control |frametitle| (and |framesubtitle|) templates. +% \end{function} +% \end{documentation} +%%%% +% \begin{implementation} +% \begin{macro}{outer key -- interface} +% Controls the outer settings for frametitle and framesubtitle. +% \UnitTested +% \TestFiles{gotham-test-047} +% \begin{macrocode} +\keys_define:nn { gotham / outer }{ + % frametitle template + frametitle~template .usage:n = { general }, + frametitle~template .default:n = { gotham~subsameline }, + frametitle~template .code:n = { + \__gotham_set_prop_template:nn{frametitle/default}{#1} + \setbeamertemplate{frametitle}[default/\prop_item:Nn \l__gotham_template_name_prop {frametitle/default}] + } +} +\keys_define:nn { gotham / outer }{ + % frametitle template + framesubtitle~template .usage:n = { general }, + framesubtitle~template .default:n = { gotham~subnewline }, + framesubtitle~template .code:n = { + \__gotham_set_prop_template:nn{framesubtitle/default}{#1} + \setbeamertemplate{framesubtitle}[default/\prop_item:Nn \l__gotham_template_name_prop {framesubtitle/default}] + } +} +% \end{macrocode} +% \end{macro} +% \end{implementation} + + +%%% Continuation %%% + +% \begin{implementation} +% \begin{macro}{\defbeamertemplate{frametitle~continuation}{default/beamer}} +% Template for numerotation of frametitle when a frame are continuing on sevral pages (allowed with the beamer option |allowframebreaks|). +% Beamer theme (by default) is using roman number with uppercase. +% \UnitTested +% \TestFiles{gotham-test-047} +% \begin{macrocode} +\defbeamertemplate{frametitle~continuation}{default/beamer}{ + \usebeamerfont{frametitle} + { + \MakeUppercase{\romannumeral \insertcontinuationcount} + } +} +% \end{macrocode} +% \end{macro} +% \end{implementation} + +% \begin{implementation} +% \begin{macro}{\defbeamertemplate{frametitle~continuation}{default/tot}} +% Template for numerotation of frametitle when a frame are continuing on sevral pages (allowed with the beamer option |allowframebreaks|). +% This template is using arabic number slash over the total number of page for this frame. +% \UnitTested +% \TestFiles{gotham-test-047} +% \begin{macrocode} +\defbeamertemplate{frametitle~continuation}{default/tot}{ + \usebeamerfont{frametitle} + { + \textmd{% + [\insertcontinuationcount + \,/\,% + \the\numexpr\beamer@endpageofframe+1-\beamer@startpageofframe + ]% + }% + } +} +% \end{macrocode} +% \end{macro} +% \end{implementation} + +% \begin{implementation} +% \begin{macro}{\defbeamertemplate{frametitle~continuation}{default/gotham}} +% Template for numerotation of frametitle when a frame are continuing on sevral pages (allowed with the beamer option |allowframebreaks|). +% Gotham theme (by default) is using roman number with lowercase. +% \UnitTested +% \TestFiles{gotham-test-047} +% \begin{macrocode} +\defbeamertemplate{frametitle~continuation}{default/gotham}{ + \usebeamerfont{frametitle} + { + %\small + (\romannumeral \insertcontinuationcount) + } +} +\prop_put:Nnn \l__gotham_template_name_prop {frametitle~continuation/default} {gotham} +% \end{macrocode} +% \end{macro} +% \end{implementation} + +% \begin{documentation} +% \begin{function}{\useoutertheme} +% \begin{syntax} +% \cs{useoutertheme}\oarg{option1=value1, ...}\marg{gotham} +% \textrm{where the options are (default marked as} \defopt{default}\textrm{):} +% \meta{frametitle continuation template} = \oarg{\defopt{gotham} \textbar tot \textbar beamer \textbar ... } +% \end{syntax} +% The 'package' (useoutertheme) options can control |frametitle continuation| templates. +% \end{function} +% \end{documentation} +%%%% +% \begin{implementation} +% \begin{macro}{outer key -- interface} +% Controls the outer settings for frametitle continuation. +% \UnitTested +% \TestFiles{gotham-test-047} +% \begin{macrocode} +\keys_define:nn { gotham / outer }{ + % frametitle template + frametitle~continuation~template .usage:n = { general }, + frametitle~continuation~template .default:n = { gotham }, + frametitle~continuation~template .code:n = { + \__gotham_set_prop_template:nn{frametitle~continuation/default}{#1} + \setbeamertemplate{frametitle~continuation}[default/\prop_item:Nn \l__gotham_template_name_prop {frametitle~continuation/default}] + } +} +% \end{macrocode} +% \end{macro} +% \end{implementation} + + +%%% Footer \& Footline %%% +%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%% Footline %%% + +% \begin{implementation} +% \begin{macro}{\defbeamertemplate{footline}{empty}} +% Empty footline template used when the option nofootline is given. +% \UnitTested +% \TestFiles{gotham-test-048} +% \begin{macrocode} +\defbeamertemplate{footline}{empty}{} +% \end{macrocode} +% \end{macro} +% \end{implementation} + +% \begin{documentation} +% \begin{function}{\begin{frame}[nofootline]} +% Add a frame option |nofootline| to do not display nofootline. +% \end{function} +% \end{documentation} +%%%%%% +% \begin{implementation} +% \begin{macro}{\begin{frame}[nofootline]} +% Add a frame option |nofootline| to do not display an empty footline. +% To do it, we must add a global boolean variable, capture the option at the begin of the frame and patch the end of the frame. +% \UnitTested +% \TestFiles{gotham-test-048} +% \begin{macrocode} +% bool to trigger the add of nofootline in frame. +\newenvironment{nofootlineenv}{ + \setbeamertemplate{footline}[empty] +}{} +\__gotham_add_beamerframe_key:n {nofootline} +% \end{macrocode} +% \end{macro} +% \end{implementation} + +% \begin{documentation} +% \begin{variable}[updated=2024-11-11]{\gothamFootlineVOffset, \gothamFootlineHRightOffset,\gothamFootlineHeight, \gothamFootlineDepth} +% Lengths controlling the position of |footline|. +% |\gothamFootlineVOffset| is controlling vertical space between to bottom of the text (or the footnote) and the footline. +% |\gothamFootlineVOffset| is by default -0.5ex, to have more space in the frame but if the footer is not really used, the space can be even more optimized using |\setlength{\gothamFootlineVOffset}{-2.0ex}|. +% |\gothamFootlineHRightOffset| is horizontal space between the right corner and the footline. +% Obviously, it can be back to "normal" setting it to 0pt. +% |\gothamFootlineHeight| and |\gothamFootlineDepth| are controlling the heigth of the footline and the position of the text within. +% \end{variable} +% \end{documentation} +%%%%%% +% \begin{implementation} +% \begin{variable}[updated=2024-11-11]{\gothamFootlineVOffset, \gothamFootlineHeight, \gothamFootlineDepth} +% Lengths used in |footline| template. +% \begin{macrocode} +% Footline lengths +% space between to bottom of the text (or the footnote) and the footline +\newlength{\gothamFootlineVOffset} +\newlength{\gothamFootlineHeight} +\newlength{\gothamFootlineDepth} +\newlength{\gothamFootlineHRightOffset} + +\setlength{\gothamFootlineVOffset}{-0.5ex} +\setlength{\gothamFootlineDepth}{0.1ex} +\setlength{\gothamFootlineHeight}{1.5ex} +\setlength{\gothamFootlineHRightOffset}{\spaceskip} +% \end{macrocode} +% \end{variable} +% \end{implementation} + +% \begin{implementation} +% \begin{macro}{\defbeamertemplate*{footline}{default/gotham}} +% Template that is activate by default since this footline is relatively generic. +% \UnitTested +% \TestFiles{gotham-test-048} +% \begin{macrocode} +\defbeamertemplate*{footline}{default/gotham}{ + % new line to adjust the footline position. + \vspace*{\gothamFootlineVOffset} + \begin{beamercolorbox}[ + wd=\textwidth, + sep=0pt, + leftskip=3ex, + rightskip=3ex, + ht={\gothamFootlineHeight}, + dp={\gothamFootlineDepth}, + ]{footline} + \usebeamerfont{page number in head/foot} + \ifbeamertemplateempty{frame~footer}{ + %executed if empty + \hfill \ \gotham@strut + }{ + %⟨executed otherwise⟩ + \usebeamertemplate*{frame~footer} + } + \hspace{\gothamRightFooterPadding} + {\usebeamertemplate{page~number~in~head/foot}} + \hspace*{\gothamFootlineHRightOffset} + \end{beamercolorbox} +} +\prop_put:Nnn \l__gotham_template_name_prop {footline/default} {gotham} +% \end{macrocode} +% \end{macro} +% \end{implementation} + + +%%% Footer %%% + +% \begin{documentation} +% \begin{variable}{\gothamLeftFooterPadding, \gothamRightFooterPadding, \gothamFooterHOffset} +% Lengths controlling the position of |footer|. +% |\gothamFooterHOffset| is controlling the horizontal space between the footer and the bottom of the page (or the progressbar). +% |\gothamLeftFooterPadding| and |\gothamLeftFooterPadding| are controlling the space between the left and right side of the footer and the border of the page. +% \end{variable} +% \end{documentation} +%%%%%% +% \begin{implementation} +% \begin{variable}{\gothamLeftFooterPadding, \gothamRightFooterPadding, \gothamFooterHOffset} +% Lengths used in |footer| template for positioning left right and bottom. +% \begin{macrocode} +\newlength{\gothamLeftFooterPadding} +\newlength{\gothamRightFooterPadding} +\newlength{\gothamFooterHOffset} +\setlength{\gothamLeftFooterPadding}{2.0ex} +\setlength{\gothamRightFooterPadding}{3.5ex} +\setlength{\gothamFooterHOffset}{0pt} +% \end{macrocode} +% \end{variable} +% \end{implementation} + +% \begin{implementation} +% \begin{macro}{\defbeamertemplate{frame~footer}{none}} +% Footer template used when nothing is put as footer but it will create undesired results. +% \UnitTested +% \TestFiles{gotham-test-048} +% \begin{macrocode} +\defbeamertemplate{frame~footer}{none}{} +% \end{macrocode} +% \end{macro} +% \end{implementation} + +% \begin{implementation} +% \begin{macro}{\defbeamertemplate{frame~footer}{empty}} +% Footer template used when |nofooter| option is given and it presevers spacing to have nice results. +% \UnitTested +% \TestFiles{gotham-test-048} +% \begin{macrocode} +\defbeamertemplate{frame~footer}{empty}{ + \hspace{\gothamLeftFooterPadding} + \hfill \ + \gotham@strut + % decrease space between progress bar and footer + \vspace*{\gothamFooterHOffset} +} +% \end{macrocode} +% \end{macro} +% \end{implementation} + +% \begin{documentation} +% \begin{function}{\begin{frame}[nofooter]} +% Add a frame option |nofooter| to do not display nofooter. +% \end{function} +% \end{documentation} +%%%%%% +% \begin{implementation} +% \begin{macro}{\begin{frame}[nofooter]} +% Add a frame option |nofooter| to do not display an empty footer. +% To do it, we must add a global boolean variable, capture the option at the begin of the frame and patch the end of the frame. +% \UnitTested +% \TestFiles{gotham-test-048} +% \begin{macrocode} +% bool to trigger the add of nofooter in frame. +\newenvironment{nofooterenv}{ + \setbeamertemplate{frame~footer}[empty] +}{} +\__gotham_add_beamerframe_key:n {nofooter} +% \end{macrocode} +% \end{macro} +% \end{implementation} + +% \begin{documentation} +% \begin{variable}{\l_gotham_defaultRotateFooter} +% Boolean to triggering if rotated footer should be displayed by default (without giving the frame option). +% The variable is |false| by default. +% \end{variable} +% \end{documentation} +%%%%%% +% \begin{implementation} +% \begin{macro}{\l_gotham_defaultRotateFooter} +% Boolean variable to display the rotated footer by default (or not). +% \UnitTested +% \TestFiles{gotham-test-048} +% \begin{macrocode} +\bool_new:N \l_gotham_defaultRotateFooter +\bool_set_false:N \l_gotham_defaultRotateFooter +\bool_new:N \l_gotham_RotateFooter +\bool_set_false:N \l_gotham_RotateFooter +% At every new frame, reset the options to default (unless some options/keys are given) +\BeforeBeginEnvironment{frame}{ + \bool_if:NTF \l_gotham_defaultRotateFooter { + \bool_set_true:N \l_gotham_RotateFooter + }{% false + \bool_set_false:N \l_gotham_RotateFooter + } +} +% \end{macrocode} +% \end{macro} +% \end{implementation} + +% \begin{documentation} +% \begin{function}{\begin{frame}[rotateFooter]} +% Add a frame option |rotateFooter| to display rotated footer. +% \end{function} +% \end{documentation} +%%%%%% +% \begin{implementation} +% \begin{macro}{\begin{frame}[rotateFooter]} +% Add a frame option |rotateFooter| to display a rotated footer. +% To do it, we must add a global boolean variable, capture the option at the begin of the frame and patch the end of the frame. +% \UnitTested +% \TestFiles{gotham-test-048} +% \begin{macrocode} +% bool to trigger +% Capture new options/keys for frames +\define@key{beamerframe}{rotateFooter}[true]{ + \bool_set_true:N \l_gotham_RotateFooter +} +% \end{macrocode} +% \end{macro} +% \end{implementation} + +% \begin{documentation} +% \begin{function}{\begin{frame}[noRotateFooter]} +% Add a frame option |noRotateFooter| to display a none-RotateFooter. +% \end{function} +% \end{documentation} +%%%%%% +% \begin{implementation} +% \begin{macro}{\begin{frame}[noRotateFooter]} +% Add a frame option |noRotateFooter| to display a none-rotated footer. +% To do it, we must add a global boolean variable, capture the option at the begin of the frame and patch the end of the frame. +% \UnitTested +% \TestFiles{gotham-test-048} +% \begin{macrocode} +% Capture new options/keys for frames +\define@key{beamerframe}{noRotateFooter}[true]{ + \bool_set_false:N \l_gotham_RotateFooter +} +% \end{macrocode} +% \end{macro} +% \end{implementation} + +% \begin{documentation} +% \begin{function}{\useoutertheme} +% \begin{syntax} +% \cs{useoutertheme}\oarg{option1=value1, ...}\marg{gotham} +% \textrm{where the options are (default marked as} \defopt{default}\textrm{):} +% \meta{rotateFooter default} = \oarg{\defopt{off} \textbar on } +% \end{syntax} +% The option |rotateFooter default=on| can enable the rotation of the footer on every frame; but it can all be turned on for specific frames when using the frame option |\begin{frame}[rotateFooter]|. +% \end{function} +% \end{documentation} +%%%% +% \begin{implementation} +% \begin{macro}{outer key -- interface} +% Controls the outer settings for sidebar canvas right and sidebar canvas left. +% \UnitTested +% \TestFiles{gotham-test-048} +% \begin{macrocode} +\keys_define:nn { gotham / outer }{ + % rotateFooter default + rotateFooter~default .choice:, + rotateFooter~default .usage:n = { general }, + rotateFooter~default .default:n = { false }, + + rotateFooter~default / true .code:n = { \bool_set_true:N \l_gotham_defaultRotateFooter }, + rotateFooter~default / on .code:n = { \bool_set_true:N \l_gotham_defaultRotateFooter }, + rotateFooter~default / enable .code:n = { \bool_set_true:N \l_gotham_defaultRotateFooter }, + + rotateFooter~default / false .code:n = { \bool_set_false:N \l_gotham_defaultRotateFooter }, + rotateFooter~default / off .code:n = { \bool_set_false:N \l_gotham_defaultRotateFooter }, + rotateFooter~default / disable .code:n = { \bool_set_false:N \l_gotham_defaultRotateFooter }, + + rotateFooter~default / unknown .code:n = { \PackageWarning{ gotham } { The~choice~'#1'~is~unknown~for~the~(known)~option~'rotateFooter~default',~so~being~ignored. }{helping~message: rotateFooter~default / unknown} }, +} +% \end{macrocode} +% \end{macro} +% \end{implementation} + +% \begin{documentation} +% \begin{variable}{\gothamFootlineRuleLeftPadding, \gothamFootlineRuleHeight, \gothamFootlineRuleLength, \gothamHposLeftRotFooter, \gothamHposRightRotFooter, \gothamVposLeftRotFooter, \gothamVposRightRotFooter} +% Lengths controlling the position of |footer|. +% |\gothamFootlineRuleLeftPadding| is controlling the horizontal space between the left border of the page and the left side of the rule. +% |\gothamFootlineRuleHeight| is controlling the height of the rule use to delimit the footer. +% |\gothamFootlineRuleLength| is controlling the length of the rule use to delimit the footer. +% |\gothamHposLeftRotFooter| is controlling the horizontal positioning of the left part of the rotatated footer. +% |\gothamHposRightRotFooter| is controlling the horizontal positioning of the right part of the rotatated footer. +% |\gothamVposLeftRotFooter| is controlling the vertical positioning of the left part of the rotatated footer. +% |\gothamVposRightRotFooter| is controlling the vertical positioning of the right part of the rotatated footer. +% +% \end{variable} +% \end{documentation} +%%%%%% +% \begin{implementation} +% \begin{variable}{\gothamFootlineRuleLeftPadding, \gothamFootlineRuleHeight, \gothamFootlineRuleLength, \gothamHposLeftRotFooter, \gothamHposRightRotFooter, \gothamVposLeftRotFooter, \gothamVposRightRotFooter} +% Lengths used in |footer| template. +% \begin{macrocode} +\newlength{\gothamFootlineRuleLeftPadding} +\newlength{\gothamFootlineRuleHeight} +\newlength{\gothamFootlineRuleLength} + +\setlength{\gothamFootlineRuleLeftPadding}{7mm} +\setlength{\gothamFootlineRuleHeight}{0.0pt} +% \setlength{\gothamFootlineRuleHeight}{0.5pt} % This is nice also but have a cleaner default, I turned it to 0. +\setlength{\gothamFootlineRuleLength}{15mm} + +% horizontal position (in picture env) for the rotated footer. +\newlength{\gothamHposLeftRotFooter} +\newlength{\gothamHposRightRotFooter} +\newlength{\gothamVposLeftRotFooter} +\newlength{\gothamVposRightRotFooter} + +\setlength{\gothamHposLeftRotFooter}{-7pt} +\setlength{\gothamHposRightRotFooter}{2pt} +\setlength{\gothamVposLeftRotFooter}{15pt} +\setlength{\gothamVposRightRotFooter}{15pt} +% \end{macrocode} +% \end{variable} +% \end{implementation} + +% \begin{implementation} +% \begin{variable}{\hlenRightRotFooter, \hlenLeftRotFooter} +% Temporary variables for the horizontal length of the rotated footer +% \begin{macrocode} +% Not used yet because I need to have a latex3 settowidth equivalent. +% I will maybe take inspiration from https://tex.stackexchange.com/questions/492367/does-expl3-have-alternative-to-settowidth-and-settoheight +% \dim_new:N \l__gotham_HLen_rightRotFooter_dim +% \dim_new:N \l__gotham_HLen_leftRotFooter_dim +\newlength{\hlenRightRotFooter} +\newlength{\hlenLeftRotFooter} +% \end{macrocode} +% \end{variable} +% \end{implementation} + +% \begin{implementation} +% \begin{macro}{\defbeamertemplate{frame~footer}{default/gotham}} +% Template for frame footer used by gotham, allowing a rotated footer. +% \UnitTested +% \TestFiles{gotham-test-048} +% \begin{macrocode} +\providecommand{\gothamHookFooter}{} +\defbeamertemplate{frame~footer}{default/gotham}{ + %%% Add a ruler but wihtout affecting the dimensions of the footline + \vbox to 0pt{ + % Vertical stretch to ensure proper spacing + \vss + \hbox to 0pt{ + \hspace*{\gothamFootlineRuleLeftPadding} + % \usebeamercolor{frametitle} + % \color{frametitle.bg} + \usebeamercolor{footlineRule} + \color{footlineRule.fg} + \rule{\gothamFootlineRuleLength}{\gothamFootlineRuleHeight} + \vspace*{ + \dimexpr \gothamFootlineHeight -0.25em\relax + } + % Horizontal stretch to ensure proper spacing + \hss + } + } + %%% Add Hook + \gothamHookFooter{} + %%% Add short date + \hspace{\gothamLeftFooterPadding} + \settowidth{\hlenLeftRotFooter}{\hspace{-\gothamLeftFooterPadding}} + \addtolength{\hlenLeftRotFooter}{\gothamHposLeftRotFooter} + % \ifbool{rotateFooter}{ + \bool_if:NTF \l_gotham_RotateFooter { + % rotateFooter true + \begin{picture}(0,0)(0,0) + \put(\hlenLeftRotFooter,\gothamVposLeftRotFooter){\rotatebox{90}{\insertshortdate}} + \end{picture} + }{ + % rotateFooter false + \insertshortdate + } + \hfill \ + %%% Add short title + \hfill \ \insertshorttitle + % make sure that the vertical space is constant: strut. + \gotham@strut + \hfill \ + \hfill \ + %%% Add short author + \bool_if:NTF \l_gotham_RotateFooter { + % rotateFooter true + \settowidth{\hlenRightRotFooter}{\hspace{\gothamRightFooterPadding}\usebeamertemplate{page~number~in~head/foot}\hspace*{\gothamFootlineHRightOffset}} + \addtolength{\hlenRightRotFooter}{\gothamHposRightRotFooter} + \begin{picture}(0,0)(0,0) + \put(\hlenRightRotFooter,\gothamVposRightRotFooter){\rotatebox{90}{\insertshortauthor}} + \end{picture} + }{ + % rotateFooter false + \insertshortauthor + } + %%% Decrease space between progress bar and footer + \vspace*{\gothamFooterHOffset} +} +\prop_put:Nnn \l__gotham_template_name_prop {frame~footer/default} {gotham} +% \end{macrocode} +% \end{macro} +% \end{implementation} + +% \begin{documentation} +% \begin{function}{\useoutertheme} +% \begin{syntax} +% \cs{useoutertheme}\oarg{option1=value1, ...}\marg{gotham} +% \textrm{where the options are (default marked as} \defopt{default}\textrm{):} +% \meta{footer template} = \oarg{\defopt{gotham} \textbar ... } +% \end{syntax} +% The option |footer template| can which template to use as a footer. +% \end{function} +% \end{documentation} +%%%% +% \begin{implementation} +% \begin{macro}{outer key -- interface} +% Controls the outer settings for footer template. +% \UnitTested +% \TestFiles{gotham-test-048} +% \begin{macrocode} +\keys_define:nn { gotham / outer }{ + % footer template + footer~template .usage:n = { general }, + footer~template .default:n = { gotham }, + footer~template .code:n = { + \__gotham_set_prop_template:nn{frame~footer/default}{#1} + \setbeamertemplate{frame~footer}[ + default/\prop_item:Nn \l__gotham_template_name_prop {frame~footer/default} + ] + } +} +% \end{macrocode} +% \end{macro} +% \end{implementation} + + +%%% Numbering %%% +%%%%%%%%%%%%%%%%% + +% \begin{implementation} +% \begin{macro}{\inserttotalframenumber} +% We defined the number of total frame, if not defined or equal to 0 because of the first compilation, we set it to avoid arthimetical errors +% \UnitTested +% \TestFiles{gotham-test-046} +% \begin{macrocode} +% +\def\inserttotalframenumber{100} +% \end{macrocode} +% \end{macro} +% \end{implementation} + +% \begin{implementation} +% \begin{macro}{\defbeamertemplate{page~number~in~head/foot}{none}} +% Template to do not numbering the current frame. +% \UnitTested +% \TestFiles{gotham-test-048} +% \begin{macrocode} +\defbeamertemplate{page~number~in~head/foot}{none}{ } +% \end{macrocode} +% \end{macro} +% \end{implementation} + +% \begin{documentation} +% \begin{variable}{\gothamCircleNumberingVshift, \gothamCircleNumberingHshift} +% Variable lengths controling the vertical and horizontal positioning of the |circle| frame numbering template. +% \end{variable} +% \end{documentation} +%%%% +% \begin{implementation} +% \begin{variable}{\gothamCircleNumberingVshift, \gothamCircleNumberingHshift} +% Length used in |raisebox| and |hspace| in |circle| frame numbering. +% \begin{macrocode} +\newlength{\gothamCircleNumberingVshift} +\newlength{\gothamCircleNumberingHshift} +\setlength{\gothamCircleNumberingVshift}{1.4mm} +\setlength{\gothamCircleNumberingHshift}{2.6mm} +% \end{macrocode} +% \end{variable} +% \end{implementation} + +% \begin{implementation} +% \begin{macro}{\defbeamertemplate{page~number~in~head/foot}{circle}} +% Template to add, in a circle, the number of the current frame over (slash) the total number of frames. +% \UnitTested +% \TestFiles{gotham-test-048} +% \begin{macrocode} +\defbeamertemplate{page~number~in~head/foot}{circle}{ + % horizontal space between the circle and the right part of the footer (email). + \hspace{+2em} + % \raisebox{lift}[height][depth]{text} => lift here = vertical space between the bottom of the page (or the progress bar) and the center of the circle + \raisebox{\gothamCircleNumberingVshift}[0pt][0pt]{ + \begin{tikzpicture}[remember~picture, overlay] + \coordinate (circleCenter); + + \usebeamercolor{frametitle} + + \draw[fill, color=frametitle.bg] (circleCenter) circle (6mm); + \draw[fill, color=frametitle.fg] (circleCenter) circle (5mm); + \node[color=frametitle.bg] at (circleCenter) + {\small$^{\insertframenumber}\negmedspace/\negthinspace\sb{\inserttotalframenumber}$} + ; + \end{tikzpicture} + % horizontal space between the right border of the page and the center of the circle. + \hspace{\gothamCircleNumberingHshift} + } +} +% \end{macrocode} +% \end{macro} +% \end{implementation} + +% \begin{documentation} +% \begin{function}{\useoutertheme} +% \begin{syntax} +% \cs{useoutertheme}\oarg{option1=value1, ...}\marg{gotham} +% \textrm{where the options are (default marked as} \defopt{default}\textrm{):} +% \meta{numbering} = \oarg{\defopt{none} \textbar framenumber \textbar totalframenumber \textbar appendixframenumber \textbar pagenumber \textbar totalpagenumber \textbar circle \textbar ... } +% \meta{framesubtitle template} = \oarg{\defopt{gotham subnewline} \textbar ...} +% \end{syntax} +% The 'package' (useoutertheme) options can control |frame numbering| templates used in |footer| template. +% \end{function} +% \end{documentation} +%%%% +% \begin{implementation} +% \begin{macro}{outer key -- interface} +% Controls the outer settings for frame numbering. +% \UnitTested +% \TestFiles{gotham-test-048} +% \begin{macrocode} +\keys_define:nn { gotham / outer }{ + % numbering + numbering .choice:, + numbering .usage:n = { general }, + numbering .default:n = { none }, + + % \__gotham_set_template:nn{title~page}{#1} + numbering / none .code:n = { \setbeamertemplate{page~number~in~head/foot}[none] }, + numbering / framenumber .code:n = { \setbeamertemplate{page~number~in~head/foot}[framenumber] }, + numbering / totalframenumber .code:n = {\setbeamertemplate{page~number~in~head/foot}[totalframenumber] }, + numbering / appendixframenumber .code:n = {\setbeamertemplate{page~number~in~head/foot}[appendixframenumber] }, + numbering / pagenumber .code:n = { \setbeamertemplate{page~number~in~head/foot}[pagenumber] }, + numbering / totalpagenumber .code:n = {\setbeamertemplate{page~number~in~head/foot}[totalpagenumber] }, + numbering / circle .code:n = {\setbeamertemplate{page~number~in~head/foot}[circle] }, + + numbering / unknown .code:n = { \PackageWarning{ gotham } { The~choice~'#1'~is~unknown~for~the~(known)~option~'numbering',~so~being~ignored. }{helping~message} }, +} +% \end{macrocode} +% \end{macro} +% \end{implementation} + + +%%% MiniFrames \& Progress bar %%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%% MiniFrames %%% + +% \begin{implementation} +% \begin{macro}{\defbeamertemplate{section~in~head/foot}{default/beamer}} +% Template control how the section appears by default when sections are add to the headline or footline. +% \UnitTested +% \TestFiles{gotham-test-048} +% \begin{macrocode} +\defbeamertemplate{section~in~head/foot}{default/beamer}{ + \insertsectionhead +} +\defbeamertemplate{section~in~head/foot~shaded}{default/beamer}{ + \color{fg!50!bg}\usebeamertemplate{section~in~head/foot} +} + +% \defbeamertemplate{includeLogo}{default/gotham~square}{ +\prop_put:Nnn \l__gotham_template_name_prop {section~in~head/foot~shaded/default} {beamer} +% \defbeamertemplate{includeLogo}{default/gotham~square}{ +\prop_put:Nnn \l__gotham_template_name_prop {section~in~head/foot/default} {beamer} +% \end{macrocode} +% \end{macro} +% \end{implementation} + +% \begin{implementation} +% \begin{macro}{\defbeamertemplate{section~in~head/foot}{default/gotham~secSubsec}} +% Template for section and subsection in headline. +% \UnitTested +% \TestFiles{gotham-test-048} +% \begin{macrocode} +\defbeamertemplate{section~in~head/foot}{default/gotham~secSubsec}{ + \insertsectionhead + \ifx\insertsubsection\empty\else + \ifdefempty{\subsecname}{\relax}{ + \ \textbar\ \insertsubsectionhead + } + \fi +} +\defbeamertemplate{section~in~head/foot~shaded}{default/gotham~secSubsec}{ + \insertsectionhead +} +% \end{macrocode} +% \end{macro} +% \end{implementation} + +% \begin{implementation} +% \begin{macro}{\defbeamertemplate{section~in~head/foot}{default/empty}} +% Empty template for section in headline, compensating the height of a line. +% \UnitTested +% \TestFiles{gotham-test-048} +% \begin{macrocode} +\defbeamertemplate{section~in~head/foot}{default/empty}{ + \vspace{3.875ex} +} +\defbeamertemplate{section~in~head/foot~shaded}{default/empty}{ + \vspace{3.875ex} +} +% \end{macrocode} +% \end{macro} +% \end{implementation} + +% \begin{implementation} +% \begin{variable}{\gotham@temp@heightFrametitle, \gotham@temp@PaperheightFrametitle} +% Temporary length variables to compute the height of the frametitle and the height of the paper minus the frametitle. +% \begin{macrocode} +\newlength{\gotham@temp@heightFrametitle} +\newlength{\gotham@temp@PaperheightFrametitle} +% \end{macrocode} +% \end{variable} +% \end{implementation} + +% \begin{implementation} +% \begin{macro}{\defbeamertemplate*{mini~nav~progress~head/foot left right}{gotham~miniframes~theme}} +% Template to insert the navigation bar (using miniframes) that can be added to headline (or footline) left sidebar or righ sidebar. +% \UnitTested +% \TestFiles{gotham-test-048} +% \begin{macrocode} +\defbeamertemplate*{mini~nav~progress~head/foot}{gotham~miniframes~theme} +{ + %,ht=1.75ex,dp=2.75ex + \begin{beamercolorbox}[ignorebg]{section~in~head/foot} + \hfuzz=\paperwidth + \insertnavigation{\paperwidth} + % \dohead + \vspace{0.05cm} + \end{beamercolorbox} +} +\defbeamertemplate*{mini~nav~progress~left}{gotham~miniframes~theme} +{ + \settoheight{\gotham@temp@heightFrametitle}{\gotham@strut} + \addtolength{\gotham@temp@heightFrametitle}{\gothamFrametitleToppading+\gothamFrametitleBottompading+\gothamProgressHeadFootLineheight} + + \setlength{\gotham@temp@PaperheightFrametitle}{\paperheight-\gotham@temp@heightFrametitle-\gothamFootlineHeight-\gothamFootlineDepth-\gothamProgressHeadFootLineheight} + + \vspace{-0.6\paperheight} + \rotatebox{90}{ + %,ht=1.75ex,dp=2.75ex + \begin{beamercolorbox}[ignorebg]{section~in~head/foot} + \hfuzz=\gotham@temp@PaperheightFrametitle + \insertnavigation{\gotham@temp@PaperheightFrametitle} + % \dohead + % \vspace{0.05cm} + \end{beamercolorbox} + } +} +\defbeamertemplate*{mini~nav~progress~right}{gotham~miniframes~theme} +{ + \settoheight{\gotham@temp@heightFrametitle}{\gotham@strut} + \addtolength{\gotham@temp@heightFrametitle}{\gothamFrametitleToppading+\gothamFrametitleBottompading+\gothamProgressHeadFootLineheight} + + \setlength{\gotham@temp@PaperheightFrametitle}{\paperheight-\gotham@temp@heightFrametitle-\gothamFootlineHeight-\gothamFootlineDepth-\gothamProgressHeadFootLineheight} + + \vspace{\gotham@temp@heightFrametitle} + \hspace{-2.3em} + \rotatebox{-90}{ + %,ht=1.75ex,dp=2.75ex + \begin{beamercolorbox}[ignorebg]{section~in~head/foot} + \hfuzz=\gotham@temp@PaperheightFrametitle + \insertnavigation{\gotham@temp@PaperheightFrametitle} + % \dohead + % \vspace{0.05cm} + \end{beamercolorbox} + } +} +% \end{macrocode} +% \end{macro} +% \end{implementation} + +%% Select the bullets shape +% \begin{implementation} +% \begin{macro}{\defbeamertemplate{mini~frame}{gotham~box}} +% Template to add a new shape for miniframes |gotham box|. +% \UnitTested +% \TestFiles{gotham-test-048} +% \begin{macrocode} +\defbeamertemplate{mini~frame}{gotham~box} +{ + \begin{pgfpicture}{0pt}{0pt}{.1cm}{.1cm} + \pgfpathrectangle{\pgfpointorigin}{\pgfpoint{0.1cm}{0.1cm}} + \pgfusepath{fill,stroke} + \end{pgfpicture} +}[action]{ + \setbeamersize{mini~frame~size=.14cm, mini~frame~offset=.05cm} +} +% +\defbeamertemplate{mini~frame~in~current~subsection}{gotham~box} +{ + \begin{pgfpicture}{0pt}{0pt}{.1cm}{.1cm} + \pgfpathrectangle{\pgfpointorigin}{\pgfpoint{0.1cm}{0.1cm}} + \pgfusepath{stroke} + \end{pgfpicture} +} +% \end{macrocode} +% \end{macro} +% \end{implementation} + +% \begin{implementation} +% \begin{macro}{\defbeamertemplate{mini~frame}{gotham~minibox}} +% Template to add a new shape for miniframes |gotham minibox|. +% \UnitTested +% \TestFiles{gotham-test-048} +% \begin{macrocode} +\defbeamertemplate{mini~frame}{gotham~minibox} +{ + \begin{pgfpicture}{0pt}{0pt}{.05cm}{.05cm} + \pgfpathrectangle{\pgfpointorigin}{\pgfpoint{0.05cm}{0.05cm}} + \pgfusepath{fill,stroke} + \end{pgfpicture} +}[action]{ + \setbeamersize{mini~frame~size=.08cm, mini~frame~offset=.05cm} +} +% +\defbeamertemplate{mini~frame~in~current~subsection}{gotham~minibox} +{ + \begin{pgfpicture}{0pt}{0pt}{.05cm}{.05cm} + \pgfpathrectangle{\pgfpointorigin}{\pgfpoint{0.05cm}{0.05cm}} + \pgfusepath{stroke} + \end{pgfpicture} +} +% \end{macrocode} +% \end{macro} +% \end{implementation} + +% \begin{implementation} +% \begin{macro}{\defbeamertemplate{mini~frame}{gotham~minibullet}} +% Template to add a new shape for miniframes |gotham minibullet|. +% \UnitTested +% \TestFiles{gotham-test-048} +% \begin{macrocode} +\defbeamertemplate{mini~frame}{gotham~minibullet} +{ + \beamer@xelatex@fixminiframes + \begin{pgfpicture}{0pt}{0pt}{0.05cm}{0.05cm} + \pgfpathcircle{\pgfpoint{0.03cm}{0.03cm}}{0.03cm} + \pgfusepath{fill,stroke} + \end{pgfpicture} +}[action]{ + \setbeamersize{mini~frame~size=.09cm, mini~frame~offset=.05cm} +} +% +\defbeamertemplate{mini~frame~in~current~subsection}{gotham~minibullet} +{ + \beamer@xelatex@fixminiframes + \begin{pgfpicture}{0pt}{0pt}{0.05cm}{0.05cm} + \pgfpathcircle{\pgfpoint{0.03cm}{0.03cm}}{0.03cm} + \pgfusepath{stroke} + \end{pgfpicture} +} +% \end{macrocode} +% \end{macro} +% \end{implementation} + +% \begin{documentation} +% \begin{function}{\useoutertheme} +% \begin{syntax} +% \cs{useoutertheme}\oarg{option1=value1, ...}\marg{gotham} +% \textrm{where the options are (default marked as} \defopt{default}\textrm{):} +% \meta{mini frames shape} = \oarg{\defopt{gotham minibullet} \textbar default (bullet from beamer) \textbar tick \textbar box \textbar gotham box \textbar gotham minibox \textbar ... } +% \meta{framesubtitle template} = \oarg{\defopt{gotham subnewline} \textbar ...} +% \end{syntax} +% The 'package' (useoutertheme) options can control |frame numbering| templates used in |footer| template. +% \end{function} +% \end{documentation} +%%%% +% \begin{implementation} +% \begin{macro}{outer key -- interface} +% Controls the outer settings for mini frames shape template. +% \UnitTested +% \TestFiles{gotham-test-048} +% \begin{macrocode} +\keys_define:nn { gotham / outer }{ + %% mini~frames~shape + % mini~frames~shape .choice:, + mini~frames~shape .usage:n = { general }, + mini~frames~shape .default:n = { gotham~minibullet }, + % \__gotham_set_template:nn{title~page}{#1} + mini~frames~shape .code:n = { + % \__gotham_set_template:nn{mini~frames}{#1}% This can not work since this is an alias, so go back to normal + \setbeamertemplate{mini~frames}[#1] + }, + % mini~frames~shape / unknown .code:n = { \PackageWarning{ gotham } { The~choice~'#1'~is~unknown~for~the~(known)~option~'numbering',~so~being~ignored. }{helping~message} }, +} +% \end{macrocode} +% \end{macro} +% \end{implementation} + +% \begin{implementation} +% \begin{macro}{\defbeamertemplate*{miniframe~home}} +% Template to adapt Beamer to the internal modification brought by Gotham: differientiation between slide to come and those done, idem for section, subsection... +% \UnitTested +% \TestFiles{gotham-test-048} +% \begin{macrocode} +\defbeamertemplate*{miniframe~home}{beamer}{ + % $\equiv$ +} +\defbeamertemplate*{miniframe~current~slide}{beamer}{ + \usebeamertemplate{mini~frame} +} +\defbeamertemplate*{miniframe~done~current~section}{beamer}{ + \usebeamertemplate{mini~frame~in~current~subsection} +} +\defbeamertemplate*{miniframe~todo~current~section}{beamer}{ + \usebeamertemplate{mini~frame~in~current~subsection} +} +\defbeamertemplate*{miniframe~done~other~section}{beamer}{ + \usebeamertemplate{mini~frame~in~other~subsection} +} +\defbeamertemplate*{miniframe~todo~other~section}{beamer}{ + \usebeamertemplate{mini~frame~in~other~subsection} +} +% Templates about should appear sectioning in mini frame. +% \defbeamertemplate*{miniframe~part}{beamer}{} +\defbeamertemplate*{miniframe~section~current}{beamer}{} +\defbeamertemplate*{miniframe~section~done}{beamer}{} +\defbeamertemplate*{miniframe~section~todo}{beamer}{} +\defbeamertemplate*{miniframe~subsection~current}{beamer}{} +\defbeamertemplate*{miniframe~subsection~todo}{beamer}{} +\defbeamertemplate*{miniframe~subsection~done}{beamer}{} +% \defbeamertemplate*{miniframe~subsubsection}{beamer}{} +\defbeamertemplate*{miniframe~section~done~in~other~section}{default}[1][50] +{ + \color{fg!#1!bg}\usebeamertemplate{miniframe~section~done} +} +\defbeamertemplate*{miniframe~section~todo~in~other~section}{default}[1][50] +{ + \color{fg!#1!bg}\usebeamertemplate{miniframe~section~todo} +} +\defbeamertemplate*{miniframe~subsection~done~in~other~section}{default}[1][50] +{ + \color{fg!#1!bg}\usebeamertemplate{miniframe~subsection~done} +} +\defbeamertemplate*{miniframe~subsection~todo~in~other~section}{default}[1][50] +{ + \color{fg!#1!bg}\usebeamertemplate{miniframe~subsection~todo} +} +% \end{macrocode} +% \end{macro} +% \end{implementation} + +% \begin{implementation} +% \begin{macro}{\defbeamertemplate{miniframe~home}{gotham~mini}} +% Templates for miniframes using a Gotham style inspired by a miniaturization than the one from Beamer. +% \UnitTested +% \TestFiles{gotham-test-048} +% \begin{macrocode} +\defbeamertemplate{miniframe~home}{gotham~mini}{ + \resizebox{0.85\beamer@boxsize}{\beamer@boxsize}{$\equiv$} + % \scalebox{0.5}[0.95]{$\equiv$} +} +\defbeamertemplate{miniframe~current~slide}{gotham~mini}{ + \usebeamercolor[fg]{alerted~text} + \usebeamertemplate{mini~frame} +} +\defbeamertemplate{miniframe~done~current~section}{gotham~mini}{ + \usebeamertemplate{mini~frame} +} +\defbeamertemplate{miniframe~todo~current~section}{gotham~mini}{ + \usebeamertemplate{mini~frame~in~current~subsection} +} +\defbeamertemplate{miniframe~done~other~section}{gotham~mini}[1][50]{ + \color{fg!#1!bg}\usebeamertemplate{mini~frame} +} +\defbeamertemplate{miniframe~todo~other~section}{gotham~mini}[1][50]{ + \color{fg!#1!bg}\usebeamertemplate{mini~frame~in~other~subsection} +} +% Templates about should appear sectioning in mini frame. +% \defbeamertemplate{miniframe~part}{gotham~mini}[1][]{ +% p +% } +\defbeamertemplate{miniframe~section~current}{gotham~mini}{ + \fontsize{3pt}{0pt}\selectfont + % \color{blue} + \tl_use:N \l__gotham_minif_tmpa_tl + \hspace{1.pt} +} +\defbeamertemplate{miniframe~section~done}{gotham~mini}{ + \fontsize{3pt}{0pt}\selectfont + % \color{green} + \tl_use:N \l__gotham_minif_tmpa_tl + \hspace{1.pt} +} +\defbeamertemplate{miniframe~section~todo}{gotham~mini}{ + \fontsize{3pt}{0pt}\selectfont + % \color{red} + \tl_use:N \l__gotham_minif_tmpa_tl + \hspace{1.pt} +} +\defbeamertemplate{miniframe~subsection~current}{gotham~mini}{ + \usebeamercolor[fg]{alerted~text} + \hspace{-0.15pt} + \resizebox{\beamer@boxsize}{!}{\hspace{-0.75pt}$\blacklozenge$} +} +\defbeamertemplate{miniframe~subsection~todo}{gotham~mini}{ + \hspace{-0.15pt} + \resizebox{\beamer@boxsize}{!}{\hspace{-0.75pt}$\lozenge$} +} +\defbeamertemplate{miniframe~subsection~done}{gotham~mini}{ + \hspace{-0.15pt} + \resizebox{\beamer@boxsize}{!}{\hspace{-0.75pt}$\blacklozenge$} +} +% \defbeamertemplate{miniframe~subsubsection}{gotham~mini}{ +% d +% } +% \end{macrocode} +% \end{macro} +% \end{implementation} + +% \begin{implementation} +% \begin{macro}{\defbeamertemplate{miniframe~home}{gotham~nano}} +% Template for Gotham mini frame style using even less space. +% \UnitTested +% \TestFiles{gotham-test-048} +% \begin{macrocode} +\defbeamertemplate{miniframe~home}{gotham~nano}{ + % \resizebox{\beamer@boxsize}{!}{$\equiv$} + \scalebox{0.5}[0.95]{$\equiv$} +} +\defbeamertemplate{miniframe~current~slide}{gotham~nano}{ + o +} +\defbeamertemplate{miniframe~done~current~section}{gotham~nano}{ + x +} +\defbeamertemplate{miniframe~todo~current~section}{gotham~nano}{ + $\cdot$ +} +\defbeamertemplate{miniframe~done~other~section}{gotham~nano}{ + x +} +\defbeamertemplate{miniframe~todo~other~section}{gotham~nano}{ + $\cdot$ +} +% Templates about should appear sectioning in mini frame. +% \defbeamertemplate{miniframe~part}{gotham~nano}[1][]{ +% p +% } +\defbeamertemplate{miniframe~section~current}{gotham~nano}{ + \tl_use:N \l__gotham_minif_tmpa_tl +} +\defbeamertemplate{miniframe~section~done}{gotham~nano}{ + \tl_use:N \l__gotham_minif_tmpa_tl +} +\defbeamertemplate{miniframe~section~todo}{gotham~nano}{ + \tl_use:N \l__gotham_minif_tmpa_tl +} +\defbeamertemplate{miniframe~subsection~current}{gotham~nano}{ + \usebeamercolor[fg]{alerted~text}$\diamond$ +} +\defbeamertemplate{miniframe~subsection~todo}{gotham~nano}{ + $\diamond$ +} +\defbeamertemplate{miniframe~subsection~done}{gotham~nano}{ + $\diamond$ +} +% \end{macrocode} +% \end{macro} +% \end{implementation} + +% \begin{implementation} +% \begin{macro}{\defbeamertemplateparent{mini~frames~bundle}} +% Define a parent template to set the 6 templates at once. +% \UnitTested +% \TestFiles{gotham-test-048} +% \begin{macrocode} +\defbeamertemplateparent{mini~frames~bundle} +{ miniframe~home, miniframe~current~slide, + miniframe~done~current~section, miniframe~todo~current~section, miniframe~done~other~section, miniframe~todo~other~section, + miniframe~section~current, miniframe~section~done, miniframe~section~todo, + miniframe~subsection~current, miniframe~subsection~done, miniframe~subsection~todo, +}{} +%\setbeamertemplate{mini~frames~bundle}[gotham~mini]%[beamer]%[gotham~nano]% +% \end{macrocode} +% \end{macro} +% \end{implementation} + +% \begin{documentation} +% \begin{function}{\useoutertheme} +% \begin{syntax} +% \cs{useoutertheme}\oarg{option1=value1, ...}\marg{gotham} +% \textrm{where the options are (default marked as} \defopt{default}\textrm{):} +% \meta{mini frames bundle} = \oarg{\defopt{gotham minibullet} \textbar default (bullet from beamer) \textbar tick \textbar box \textbar gotham box \textbar gotham minibox \textbar ... } +% \meta{framesubtitle template} = \oarg{\defopt{gotham subnewline} \textbar ...} +% \end{syntax} +% The 'package' (useoutertheme) options can control |mini frame| templates. +% \end{function} +% \end{documentation} +%%%% +% \begin{implementation} +% \begin{macro}{outer key -- interface} +% Controls the outer settings for mini frames bundle template. +% \UnitTested +% \TestFiles{gotham-test-050} +% \begin{macrocode} +\keys_define:nn { gotham / outer }{ + %% mini~frames~bundle + % mini~frames~bundle .choice:, + mini~frames~bundle .usage:n = { general }, + mini~frames~bundle .default:n = { gotham~mini }, + % \__gotham_set_template:nn{title~page}{#1} + mini~frames~bundle .code:n = { + % \__gotham_set_template:nn{mini~frames}{#1}% This can not work since this is an alias, so go back to normal + \setbeamertemplate{mini~frames~bundle}[#1] + }, + % mini~frames~bundle / unknown .code:n = { \PackageWarning{ gotham } { The~choice~'#1'~is~unknown~for~the~(known)~option~'numbering',~so~being~ignored. }{helping~message} }, +} +% \end{macrocode} +% \end{macro} +% \end{implementation} + + +%%% MiniFrames Navigation %%% + +% \begin{documentation} +% \begin{function}{\useoutertheme} +% \begin{syntax} +% \cs{useoutertheme}\oarg{option1=value1, ...}\marg{gotham} +% \textrm{where the options are (default marked as} \defopt{default}\textrm{):} +% \meta{mini frames compress} = \oarg{\defopt{on} \textbar off } +% \end{syntax} +% The 'package' (useoutertheme) options can control |compress| option in mini frames. +% \end{function} +% \end{documentation} +%%%% +% \begin{implementation} +% \begin{macro}{outer key -- interface} +% Controls the outer settings for mini frames compress template. +% \UnitTested +% \TestFiles{gotham-test-050} +% \begin{macrocode} +\keys_define:nn { gotham / outer }{ + % mini~frames~compress default + mini~frames~compress .choice:, + mini~frames~compress .usage:n = { general }, + mini~frames~compress .default:n = { true }, + + mini~frames~compress / true .code:n = { \beamer@compresstrue }, + mini~frames~compress / on .code:n = { \beamer@compresstrue }, + mini~frames~compress / enable .code:n = { \beamer@compresstrue }, + + mini~frames~compress / false .code:n = { \beamer@compressfalse }, + mini~frames~compress / off .code:n = { \beamer@compressfalse }, + mini~frames~compress / disable .code:n = { \beamer@compressfalse }, + + mini~frames~compress / unknown .code:n = { \PackageWarning{ gotham } { The~choice~'#1'~is~unknown~for~the~(known)~option~'mini~frames~compress',~so~being~ignored. }{helping~message: mini~frames~compress / unknown} }, +} +% \end{macrocode} +% \end{macro} +% \end{implementation} + +% \begin{implementation} +% \begin{variable}{\l__gotham_minif_tmpa_tl, \gotham@temp@MiniframeSubsecDim, \gotham@temp@lastSec} +% Temporary variables used for the store dimension of the miniframe subsection, check if the last section treated and the pass the value of the section to the section template. +% \begin{macrocode} +\newlength{\gotham@temp@MiniframeSubsecDim} +\newlength{\gotham@temp@MiniframeSecDim} +\def\gotham@temp@lastSec{-1} +\tl_new:N \l__gotham_minif_tmpa_tl +\tl_new:N \l__gotham_minif_tmpb_tl +% \end{macrocode} +% \end{variable} +% \end{implementation} + +% \begin{implementation} +% \begin{function}{\renewcommand{\slideentry}} +% Redefinition of the slideentry command from Beamer in order to add home page symbol, section symbol, subsection symbol to come and done. +% \TestFiles{gotham-test-048} +% \begin{macrocode} +% definition from Beamerbasenavigation.sty +% \def\slideentry#1#2#3#4#5#6{% +\renewcommand{\slideentry}[6]{% + %section number, subsection number, slide number, first/last frame, page number, part number + \ifnum#6=\c@part\ifnum#3>0%\ifnum#6=\c@part\ifnum#1>0\ifnum#3>0 MODIF + \ifbeamer@compress% + \advance\beamer@xpos by1\relax% + \else% + \ifnum#2=0% + \beamer@ypos@offset=1\relax% + \fi% + \beamer@xpos=#3\relax% + \beamer@ypos=#2\relax% + \advance\beamer@ypos by \beamer@ypos@offset\relax% + \fi% + %% Add section number and subsection symbol to miniframes. + %% MODIF below, inspired from https://tex.stackexchange.com/questions/722523 + \ifnum#3=1%\c@subsectionslide=#3 % if =1, so it has been reset => new section or subsection + \ifnum#1>0\ifnum#2<2% => there no subsection in this section. + \ifnum\gotham@temp@lastSec=#1% + % this means, that we already went through: there no subsec, then the first subsec has been defined. + \else% + \tl_set:Nn \l__gotham_minif_tmpa_tl {#1} + \settowidth{\gotham@temp@MiniframeSecDim}{\usebeamertemplate{miniframe~section~current}}% + % \addtolength{\gotham@temp@MiniframeSecDim}{1.5pt} + \hbox to 0pt{% + \beamer@tempdim=-\beamer@vboxoffset% + \advance\beamer@tempdim by-\beamer@boxsize% + \multiply\beamer@tempdim by\beamer@ypos% + \advance\beamer@tempdim by -.05cm% + \raise\beamer@tempdim\hbox{% + \beamer@tempdim=\beamer@boxsize% + \multiply\beamer@tempdim by\beamer@xpos% + \advance\beamer@tempdim by -\beamer@boxsize% + \advance\beamer@tempdim by -\gotham@temp@MiniframeSecDim% NEW + \advance\beamer@tempdim by 1pt% + \kern\beamer@tempdim% + \global\beamer@section@min@dim\beamer@tempdim% + \hbox{\beamer@link(#4){% + % \usebeamertemplate{miniframe~section}% + % if not first page then check if it is the current section. + \ifnum\c@section=#1% + % check if it is the current slide + \ifnum\c@subsectionslide=#3% + \usebeamertemplate{miniframe~section~current} + \else% + \ifnum\c@subsectionslide<#3 + \usebeamertemplate{miniframe~section~todo} + \else% + \usebeamertemplate{miniframe~section~done} + \fi% + \fi% + \else% \ifnum\c@section=#1% + \ifnum\c@section<#1 + \usebeamertemplate{miniframe~section~todo~in~other~section} + \else% + \usebeamertemplate{miniframe~section~done~in~other~section} + \fi% + \fi% \ifnum\c@section=#1 + }}% + }% + }% + \def\gotham@temp@lastSec{#1}% + \fi% + \fi\fi% + \ifnum#2>0% + % Check if the miniframe subsection template is empty + \ifbeamertemplateempty{miniframe~subsection~current}{ + % do nothing + }{ + \tl_set:Nn \l__gotham_minif_tmpb_tl {#2} + \settowidth{\gotham@temp@MiniframeSubsecDim}{}%\usebeamertemplate{miniframe~subsection~current}}% + \addtolength{\gotham@temp@MiniframeSubsecDim}{+1.\beamer@boxsize}% + \advance\beamer@xpos by1\relax% + \hbox to 0pt{% + \beamer@tempdim=-\beamer@vboxoffset% + \advance\beamer@tempdim by-\beamer@boxsize% + \multiply\beamer@tempdim by\beamer@ypos% + \advance\beamer@tempdim by -.05cm% + \raise\beamer@tempdim\hbox{% + \beamer@tempdim=\beamer@boxsize% + \multiply\beamer@tempdim by\beamer@xpos% + \advance\beamer@tempdim by -\beamer@boxsize% + \advance\beamer@tempdim by -\gotham@temp@MiniframeSubsecDim% NEW + \advance\beamer@tempdim by 1pt% + \kern\beamer@tempdim% + \global\beamer@section@min@dim\beamer@tempdim% + \hbox{\beamer@link(#4){% + % \usebeamertemplate{miniframe~subsection~current}% + % if not first page then check if it is the current section. + \ifnum\c@section=#1% + % check if it is the current subsection + \ifnum\c@subsection=#2% + % check if it is the current slide + \ifnum\c@subsectionslide=#3% + \usebeamertemplate{miniframe~subsection~current} + \else% + \ifnum\c@subsectionslide<#3 + \usebeamertemplate{miniframe~subsection~todo} + \else% + \usebeamertemplate{miniframe~subsection~done} + \fi% + \fi% + \else% \ifnum\c@subsection=#2% + \ifnum\c@subsection<#2 + \usebeamertemplate{miniframe~subsection~todo} + \else% + \usebeamertemplate{miniframe~subsection~done} + \fi% + \fi% \ifnum\c@subsection=#2% + \else% \ifnum\c@section=#1% + \ifnum\c@section<#1 + \usebeamertemplate{miniframe~subsection~todo~in~other~section} + \else% + \usebeamertemplate{miniframe~subsection~done~in~other~section} + \fi% + \fi% \ifnum\c@section=#1 + }}% \hbox{\beamer@link + }% raisebox + }% hbox + }% end if template empty + \fi% \ifnum#2>0 + \else + \ifbeamer@compress% + % \advance\beamer@xpos by1\relax% + \else% + \ifbeamertemplateempty{miniframe~subsection~current}{ + % NEW + % do nothing + }{ + \advance\beamer@xpos by 1\relax% + } + \fi% + \fi% \ifnum#3=1 + + %% end of modif to add section number and subsection symbol. + \hbox to 0pt{% + \beamer@tempdim=-\beamer@vboxoffset% + \advance\beamer@tempdim by-\beamer@boxsize% + \multiply\beamer@tempdim by\beamer@ypos% + \advance\beamer@tempdim by -.05cm% + \raise\beamer@tempdim\hbox{% + \beamer@tempdim=\beamer@boxsize% + \multiply\beamer@tempdim by\beamer@xpos% + \advance\beamer@tempdim by -\beamer@boxsize% + \advance\beamer@tempdim by 1pt% + \kern\beamer@tempdim + \global\beamer@section@min@dim\beamer@tempdim + \hbox{\beamer@link(#4){% + \usebeamerfont{mini~frame}% + % \ifnum\c@section=#1% + % \ifnum\c@subsection=#2% + % \usebeamercolor[fg]{mini~frame}% + % \ifnum\c@subsectionslide=#3% + % \usebeamertemplate{mini~frame}%\beamer@minislidehilight% + % \else% + % \usebeamertemplate{mini~frame~in~current~subsection}%\beamer@minisliderowhilight% + % \fi% + % \else% + % \usebeamercolor{mini~frame}% + % %\color{fg!50!bg}% + % \usebeamertemplate{mini~frame~in~other~subsection}%\beamer@minislide% + % \fi% + % \else% + % \usebeamercolor{mini~frame}% + % %\color{fg!50!bg}% + % \usebeamertemplate{mini~frame~in~other~subsection}%\beamer@minislide% + % \fi% + %% + %% CHANGE FROM HERE: I rewrote this part. + % If first page (ie. 1/1) + \def\gotham@temp@i{1/1} + \def\gotham@temp@ii{#4} + \ifx\gotham@temp@i\gotham@temp@ii + % If first page (ie. title page) then apply a special mini frame + \usebeamertemplate{miniframe~home} + \else + % if not first page then check if it is the current section. + \ifnum\c@section=#1% + % check if it is the current subsection + \ifnum\c@subsection=#2% + \usebeamercolor[fg]{mini~frame}% + % check if it is the current slide + \ifnum\c@subsectionslide=#3% + \usebeamertemplate{miniframe~current~slide} + % \usebeamertemplate{mini~frame}% \beamer@minislidehilight% + \else% + % \usebeamertemplate{mini~frame~in~current~subsection}% \beamer@minisliderowhilight% + \ifnum\c@subsectionslide<#3 + \usebeamertemplate{miniframe~todo~current~section} + \else% + \usebeamertemplate{miniframe~done~current~section} + \fi% + \fi% + \else% \ifnum\c@subsection=#2% + \usebeamercolor{mini~frame}% + % \usebeamertemplate{mini~frame~in~other~subsection}% \beamer@minislide% + \ifnum\c@subsection<#2 + \usebeamertemplate{miniframe~todo~other~section} + \else% + \usebeamertemplate{miniframe~done~other~section} + \fi% + \fi% \ifnum\c@subsection=#2% + \else% \ifnum\c@section=#1% + \usebeamercolor{mini~frame}% + % \usebeamertemplate{mini~frame~in~other~subsection}% \beamer@minislide% + \ifnum\c@section<#1 + \usebeamertemplate{miniframe~todo~other~section} + \else% + \usebeamertemplate{miniframe~done~other~section} + \fi% + \fi% \ifnum\c@section=#1 + \fi% \ifx\gotham@temp@i\gotham@temp@ii + }}}\hskip-10cm plus 1fil% + }\fi% \ifnum#1>0\ifnum#3>0% + \else% \ifnum#6=\c@part + \fakeslideentry{#1}{#2}{#3}{#4}{#5}{#6}% + \fi\ignorespaces% + % \def\gotham@temp@lastSec{-1}% +}% +% \end{macrocode} +% \end{function} +% \end{implementation} + +% \begin{documentation} +% \begin{variable}{gothamZerosectionframes} +% Boolean variable to flag if they are frame in a zeroth section. +% This variable helps to adapt the spreading of |mini frames nav| bar. +% This variable is automatically set if the spread is set correctly at the beginning of the presention. +% If the spreading or the mini frame nav is disable at the zeroth section then reactivated latter, it might create unwanted spreading. +% In such situation the variable has to be set manually to correct the spreading. +% \end{variable} +% \end{documentation} +%%%% +% \begin{implementation} +% \begin{variable}{gothamZerosectionframes} +% Boolean variable to flag if they are frame in a zeroth section. +% \begin{macrocode} +\providebool{gothamZerosectionframes} +\boolfalse{gothamZerosectionframes} +% \end{macrocode} +% \end{variable} +% \end{implementation} + +% \begin{implementation} +% \begin{macro}{\insertnavigation,\sectionentry} +% Patches for |\insertnavigation| and |\sectionentry| to be able to adapt with spreading values. +% \UnitTested +% \TestFiles{gotham-test-048} +% \begin{macrocode} +\providecommand{\gothamInsertNavlength}{ + % spreading by default + \ifbool{gothamZerosectionframes}{ + %true + % spreading + \hskip-0.5ex~plus~1fill + }{ + %false + \hskip-1.875ex~plus-1fill + }% +} +\providecommand{\gothamPatchInsertNav}{ + % Don't patch for now + \box\beamer@sectionbox\hfil\hskip.3cm +} +\providecommand{\gothamPatchSectionentry}{ + % Don't patch for now + \hskip1.875ex~plus~1fill +} +\providecommand{\gothamPatchSectionbox}{ + % Don't patch for now + \ht\beamer@sectionbox=1.875ex + \dp\beamer@sectionbox=0.75ex +} +\ExplSyntaxOff + % To let the 0-th section appear. + \patchcmd{\insertnavigation}{\hskip-1.875ex plus-1fill}{% + \ifnum\value{section}=0% + \ifnum\value{framenumber}>0% + \hskip-0ex% + \global\booltrue{gothamZerosectionframes}% + \fi\fi% + \gothamInsertNavlength% + }{}{} + %% Remove hfill between sections => flush right bullet bar, if not corrected. + \patchcmd{\sectionentry}{\hskip1.875ex plus 1fill}{\gothamPatchSectionentry}{}{} + %% Centering the bullet bar + \patchcmd{\insertnavigation}{\box\beamer@sectionbox\hfil\hskip.3cm}{\gothamPatchInsertNav}{}{} + % Patch size of sectionbox + \patchcmd{\insertnavigation}{\ht\beamer@sectionbox=1.875ex% + \dp\beamer@sectionbox=0.75ex% + }{ + \gothamPatchSectionbox + }{}{} + \patchcmd{\sectionentry}{\ht\beamer@sectionbox=1.875ex% + \dp\beamer@sectionbox=0.75ex% + }{ + \gothamPatchSectionbox + }{}{} +\ExplSyntaxOn +% \end{macrocode} +% \end{macro} +% \end{implementation} + +% \begin{documentation} +% \begin{function}{\useoutertheme} +% \begin{syntax} +% \cs{useoutertheme}\oarg{option1=value1, ...}\marg{gotham} +% \textrm{where the options are (default marked as} \defopt{default}\textrm{):} +% \meta{mini frames nav spreading} = \oarg{\defopt{centering} \textbar spreading \textbar left \textbar right } +% \end{syntax} +% The 'package' (useoutertheme) options can control spreading of the mini frames navigation. +% \end{function} +% \end{documentation} +%%%% +% \begin{implementation} +% \begin{macro}{outer key -- interface} +% Controls the outer settings for mini frames navigation spreading. +% \UnitTested +% \TestFiles{gotham-test-051} +% \begin{macrocode} +\keys_define:nn { gotham / outer }{ + % mini~frames~nav~spreading default + mini~frames~nav~spreading .choice:, + mini~frames~nav~spreading .usage:n = { general }, + mini~frames~nav~spreading .default:n = { spreading }, + + mini~frames~nav~spreading / spreading .code:n = { + % + \renewcommand{\gothamInsertNavlength}{ + \ifbool{gothamZerosectionframes}{ + %true + % spreading + \hskip-0.5ex + }{ + %false + \hskip-1.875ex~plus-1fill + }% + } + % No other patch needed, but renewcommand if it has been modified previously. + \renewcommand{\gothamPatchInsertNav}{ + % Don't patch for now + \box\beamer@sectionbox\hfil\hskip.3cm + } + \renewcommand{\gothamPatchSectionentry}{ + % Don't patch for now + \hskip1.875ex~plus~1fill + } + }, + mini~frames~nav~spreading / centering .code:n = { + % + \renewcommand{\gothamInsertNavlength}{ + \ifbool{gothamZerosectionframes}{ + %true + % centering +patch sectionenty +patch insertnav @sectionbox + \hskip-0.5ex~plus~1fill + }{ + %false + % \patchcmd{\insertnavigation}{\hskip-1.875ex plus-1fill}{\hfill}{}{} + \hfill + }% + } + % Centering the bullet bar + % \patchcmd{\insertnavigation}{\box\beamer@sectionbox\hfil\hskip.3cm}{ \box\beamer@sectionbox\hfill\hskip.3cm}{}{} + \renewcommand{\gothamPatchInsertNav}{ + \box\beamer@sectionbox\hfill\hskip.3cm + } + %% Remove hfill between sections => flush right bullet bar, if not corrected. + % \patchcmd{\sectionentry}{\hskip1.875ex plus 1fill}{\hskip 3.5ex}{}{} + \renewcommand{\gothamPatchSectionentry}{ + \hskip~3.5ex + } + }, + mini~frames~nav~spreading / left .code:n = { + % + \renewcommand{\gothamInsertNavlength}{ + \ifbool{gothamZerosectionframes}{ + %true + % flush left +patch sectionenty + \hskip-0.5ex + }{ + %false + % no patch + \hskip-1.875ex plus-1fill + }% + } + % Centering the bullet bar : NO + % no patch + \renewcommand{\gothamPatchInsertNav}{ + \box\beamer@sectionbox\hfil\hskip.3cm + } + %% Remove hfill between sections => flush right bullet bar, if not corrected. + % \patchcmd{\sectionentry}{\hskip1.875ex plus 1fill}{\hskip 3.5ex}{}{} + \renewcommand{\gothamPatchSectionentry}{ + \hskip~3.5ex + } + }, + mini~frames~nav~spreading / right .code:n = { + % + \renewcommand{\gothamInsertNavlength}{ + \ifbool{gothamZerosectionframes}{ + %true + % flush right +patch sectionenty + \hskip-0.5ex~plus~1fill + }{ + %false + % no patch + \hskip-1.875ex plus-1fill + }% + } + % Centering the bullet bar : NO + % no patch + \renewcommand{\gothamPatchInsertNav}{ + \box\beamer@sectionbox\hfil\hskip.3cm + } + %% Remove hfill between sections => flush right bullet bar, if not corrected. + % \patchcmd{\sectionentry}{\hskip1.875ex plus 1fill}{\hskip 3.5ex}{}{} + \renewcommand{\gothamPatchSectionentry}{ + \hskip~3.5ex + } + }, + mini~frames~nav~spreading / unknown .code:n = { \PackageWarning{ gotham } { The~choice~'#1'~is~unknown~for~the~(known)~option~'mini~frames~nav~spreading',~so~being~ignored. }{helping~message: mini~frames~nav~spreading / unknown} }, +} +% \end{macrocode} +% \end{macro} +% \end{implementation} + +% \begin{documentation} +% \begin{function}{\useoutertheme} +% \begin{syntax} +% \cs{useoutertheme}\oarg{option1=value1, ...}\marg{gotham} +% \textrm{where the options are (default marked as} \defopt{default}\textrm{):} +% \meta{mini frames nav sectioning} = \oarg{\defopt{on} \textbar off } +% \end{syntax} +% The 'package' (useoutertheme) options can control navigation sectioning option in mini frames. +% \end{function} +% \end{documentation} +%%%% +% \begin{implementation} +% \begin{macro}{outer key -- interface} +% Controls the outer settings for mini frames navigation sectioning template. +% \UnitTested +% \TestFiles{gotham-test-051} +% \begin{macrocode} +\keys_define:nn { gotham / outer }{ + % mini~frames~nav~sectioning default + mini~frames~nav~sectioning .choice:, + mini~frames~nav~sectioning .usage:n = { general }, + mini~frames~nav~sectioning .default:n = { secsubsection }, + + mini~frames~nav~sectioning / none .code:n = { + % + \__gotham_set_template:nn{section~in~head/foot~shaded}{default/empty} + \__gotham_set_template:nn{section~in~head/foot}{default/empty} + \renewcommand{\gothamPatchSectionbox}{ + % patch to set section box height to 0. + \ht\beamer@sectionbox=0pt + \dp\beamer@sectionbox=0pt + } + }, + mini~frames~nav~sectioning / section .code:n = { + % + \__gotham_set_template:nn{section~in~head/foot~shaded}{default} %from Beamer + \__gotham_set_template:nn{section~in~head/foot}{default} %from Beamer + }, + mini~frames~nav~sectioning / secsubsection .code:n = { + % + \__gotham_set_template:nn{section~in~head/foot~shaded}{default/gotham~secSubsec} + \__gotham_set_template:nn{section~in~head/foot}{default/gotham~secSubsec} + }, + + mini~frames~nav~sectioning / unknown .code:n = { \PackageWarning{ gotham } { The~choice~'#1'~is~unknown~for~the~(known)~option~'mini~frames~nav~sectioning',~so~being~ignored. }{helping~message: mini~frames~nav~sectioning / unknown} }, +} +% \end{macrocode} +% \end{macro} +% \end{implementation} + +% \begin{documentation} +% \begin{function}{\useoutertheme} +% \begin{syntax} +% \cs{useoutertheme}\oarg{option1=value1, ...}\marg{gotham} +% \textrm{where the options are (default marked as} \defopt{default}\textrm{):} +% \meta{mini frames nav position} = \oarg{\defopt{none} \textbar head \textbar foot \textbar left \textbar right} +% \end{syntax} +% The 'package' (useoutertheme) options can control navigation position option in mini frames. +% \end{function} +% \end{documentation} +%%%% +% \begin{implementation} +% \begin{macro}{outer key -- interface} +% Controls the outer settings for mini frames navigation position template. +% \UnitTested +% \TestFiles{gotham-test-051} +% \begin{macrocode} +\tl_new:N \l__gotham_out_tmp_mfnposi_tl +\tl_new:N \l__gotham_out_tmp_pbar_tl +\keys_define:nn { gotham / outer }{ + % mini~frames~nav~position default + mini~frames~nav~position .choice:, + mini~frames~nav~position .usage:n = { general }, + mini~frames~nav~position .default:n = { none }, + + mini~frames~nav~position / none .code:n = { + % + % reset if it has modified by another progressbar strategy + % \__gotham_set_prop_template:nn{sidebar~canvas~right/default}{#1} + \tl_set:Nn \l__gotham_out_tmp_mfnposi_tl {none} + + % head + \tl_if_eq:VnTF \l__gotham_out_tmp_pbar_tl {head} { + % True: nothing to do it is already occupied. + }{ + \setbeamertemplate{headline}[default/\prop_item:Nn \l__gotham_template_name_prop {headline/default}] + } + % frametitle + % \tl_if_eq:VnTF \l__gotham_out_tmp_pbar_tl {frametitle} { + % % True: nothing to do it is already occupied. + % }{ + % \setbeamertemplate{frametitle}[default/\prop_item:Nn \l__gotham_template_name_prop {frametitle/default}] + % } + % foot + \tl_if_eq:VnTF \l__gotham_out_tmp_pbar_tl {footline} { + % True: nothing to do it is already occupied. + }{ + \setbeamertemplate{footline}[default/\prop_item:Nn \l__gotham_template_name_prop {footline/default}] + } + % left + \tl_if_eq:VnTF \l__gotham_out_tmp_pbar_tl {left} { + % True: nothing to do it is already occupied. + }{ + \setbeamertemplate{sidebar~left}[default/\prop_item:Nn \l__gotham_template_name_prop {sidebar~left/default}] + } + % right + \tl_if_eq:VnTF \l__gotham_out_tmp_pbar_tl {right} { + % True: nothing to do it is already occupied. + }{ + \setbeamertemplate{sidebar~right}[default/\prop_item:Nn \l__gotham_template_name_prop {sidebar~right/default}] + } + }, + mini~frames~nav~position / head .code:n = { + % + \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {head} { + % True: nothing to do it is already done. + }{ + % False : remember that choice in order to do not apply it several time and add to beamer template. + \tl_set:Nn \l__gotham_out_tmp_mfnposi_tl {head} + + \tl_if_eq:VnTF \l__gotham_out_tmp_pbar_tl {head} { + % True: nothing to do it is already occupied. + }{ + \setbeamertemplate{headline}[default/\prop_item:Nn \l__gotham_template_name_prop {headline/default}] + } + % \tl_if_eq:VnTF \l__gotham_out_tmp_pbar_tl {frametitle} { + % % True: nothing to do it is already occupied. + % }{ + % \setbeamertemplate{frametitle}[default/\prop_item:Nn \l__gotham_template_name_prop {frametitle/default}] + % } + \tl_if_eq:VnTF \l__gotham_out_tmp_pbar_tl {footline} { + % True: nothing to do it is already occupied. + }{ + \setbeamertemplate{footline}[default/\prop_item:Nn \l__gotham_template_name_prop {footline/default}] + } + \tl_if_eq:VnTF \l__gotham_out_tmp_pbar_tl {left} { + % True: nothing to do it is already occupied. + }{ + \setbeamertemplate{sidebar~left}[default/\prop_item:Nn \l__gotham_template_name_prop {sidebar~left/default}] + } + \tl_if_eq:VnTF \l__gotham_out_tmp_pbar_tl {right} { + % True: nothing to do it is already occupied. + }{ + \setbeamertemplate{sidebar~right}[default/\prop_item:Nn \l__gotham_template_name_prop {sidebar~right/default}] + } + + % + \addtobeamertemplate{headline}{}{ + \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {head} { + \usebeamertemplate*{mini~nav~progress~head/foot} + }{} + } + } + }, + mini~frames~nav~position / foot .code:n = { + % + \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {foot} { + % True: nothing to do it is already done. + }{ + % False : remember that choice in order to do not apply it several time and add to beamer template. + \tl_set:Nn \l__gotham_out_tmp_mfnposi_tl {foot} + + \tl_if_eq:VnTF \l__gotham_out_tmp_pbar_tl {head} { + % True: nothing to do it is already occupied. + }{ + \setbeamertemplate{headline}[default/\prop_item:Nn \l__gotham_template_name_prop {headline/default}] + } + % \tl_if_eq:VnTF \l__gotham_out_tmp_pbar_tl {frametitle} { + % % True: nothing to do it is already occupied. + % }{ + % \setbeamertemplate{frametitle}[default/\prop_item:Nn \l__gotham_template_name_prop {frametitle/default}] + % } + \tl_if_eq:VnTF \l__gotham_out_tmp_pbar_tl {footline} { + % True: nothing to do it is already occupied. + }{ + \setbeamertemplate{footline}[default/\prop_item:Nn \l__gotham_template_name_prop {footline/default}] + } + \tl_if_eq:VnTF \l__gotham_out_tmp_pbar_tl {left} { + % True: nothing to do it is already occupied. + }{ + \setbeamertemplate{sidebar~left}[default/\prop_item:Nn \l__gotham_template_name_prop {sidebar~left/default}] + } + \tl_if_eq:VnTF \l__gotham_out_tmp_pbar_tl {right} { + % True: nothing to do it is already occupied. + }{ + \setbeamertemplate{sidebar~right}[default/\prop_item:Nn \l__gotham_template_name_prop {sidebar~right/default}] + } + + \addtobeamertemplate{footline}{}{ + \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {foot} { + \usebeamertemplate*{mini~nav~progress~head/foot} + }{} + } + } + }, + mini~frames~nav~position / left .code:n = { + % + \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {left} { + % True: nothing to do it is already done. + }{ + % False : remember that choice in order to do not apply it several time and add to beamer template. + \tl_set:Nn \l__gotham_out_tmp_mfnposi_tl {left} + + \tl_if_eq:VnTF \l__gotham_out_tmp_pbar_tl {head} { + % True: nothing to do it is already occupied. + }{ + \setbeamertemplate{headline}[default/\prop_item:Nn \l__gotham_template_name_prop {headline/default}] + } + % \tl_if_eq:VnTF \l__gotham_out_tmp_pbar_tl {frametitle} { + % % True: nothing to do it is already occupied. + % }{ + % \setbeamertemplate{frametitle}[default/\prop_item:Nn \l__gotham_template_name_prop {frametitle/default}] + % } + \tl_if_eq:VnTF \l__gotham_out_tmp_pbar_tl {footline} { + % True: nothing to do it is already occupied. + }{ + \setbeamertemplate{footline}[default/\prop_item:Nn \l__gotham_template_name_prop {footline/default}] + } + \tl_if_eq:VnTF \l__gotham_out_tmp_pbar_tl {left} { + % True: nothing to do it is already occupied. + }{ + \setbeamertemplate{sidebar~left}[default/\prop_item:Nn \l__gotham_template_name_prop {sidebar~left/default}] + } + \tl_if_eq:VnTF \l__gotham_out_tmp_pbar_tl {right} { + % True: nothing to do it is already occupied. + }{ + \setbeamertemplate{sidebar~right}[default/\prop_item:Nn \l__gotham_template_name_prop {sidebar~right/default}] + } + + % + \addtobeamertemplate{sidebar~left}{}{ + \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {left} { + \usebeamertemplate*{mini~nav~progress~left} + }{} + } + } + }, + mini~frames~nav~position / right .code:n = { + % + \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {right} { + % True: nothing to do it is already done. + }{ + % False : remember that choice in order to do not apply it several time and add to beamer template. + \tl_set:Nn \l__gotham_out_tmp_mfnposi_tl {right} + + \tl_if_eq:VnTF \l__gotham_out_tmp_pbar_tl {head} { + % True: nothing to do it is already occupied. + }{ + \setbeamertemplate{headline}[default/\prop_item:Nn \l__gotham_template_name_prop {headline/default}] + } + % \tl_if_eq:VnTF \l__gotham_out_tmp_pbar_tl {frametitle} { + % % True: nothing to do it is already occupied. + % }{ + % \setbeamertemplate{frametitle}[default/\prop_item:Nn \l__gotham_template_name_prop {frametitle/default}] + % } + \tl_if_eq:VnTF \l__gotham_out_tmp_pbar_tl {footline} { + % True: nothing to do it is already occupied. + }{ + \setbeamertemplate{footline}[default/\prop_item:Nn \l__gotham_template_name_prop {footline/default}] + } + \tl_if_eq:VnTF \l__gotham_out_tmp_pbar_tl {left} { + % True: nothing to do it is already occupied. + }{ + \setbeamertemplate{sidebar~left}[default/\prop_item:Nn \l__gotham_template_name_prop {sidebar~left/default}] + } + \tl_if_eq:VnTF \l__gotham_out_tmp_pbar_tl {right} { + % True: nothing to do it is already occupied. + }{ + \setbeamertemplate{sidebar~right}[default/\prop_item:Nn \l__gotham_template_name_prop {sidebar~right/default}] + } + + % + \addtobeamertemplate{sidebar~right}{}{ + \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {right} { + \usebeamertemplate*{mini~nav~progress~right} + }{} + } + } + }, + + mini~frames~nav~position / unknown .code:n = { \PackageWarning{ gotham } { The~choice~'#1'~is~unknown~for~the~(known)~option~'mini~frames~nav~position',~so~being~ignored. }{helping~message: mini~frames~nav~position / unknown} }, +} +% \end{macrocode} +% \end{macro} +% \end{implementation} + + +%%% Progress bar %%% + +% \begin{documentation} +% \begin{variable}{\gothamProgressHeadFootLineheight} +% Variable vertical length defining the height of the progressbar. +% \end{variable} +% \end{documentation} +%%%%%% +% \begin{implementation} +% \begin{variable}{\gothamProgressHeadFootLineheight} +% Lengths used in tikz rectangle. +% \begin{macrocode} +\newlength{\gotham@progressinheadfoot} +\newlength{\gothamProgressHeadFootLineheight} +\setlength{\gothamProgressHeadFootLineheight}{1.2ex} +% \end{macrocode} +% \end{variable} +% \end{implementation} + +% \begin{documentation} +% \begin{variable}{\l_gotham_ProgCircleMoving_bool, \l_gotham_progbar_advancement_tlbr_bool, \l_gotham_pmfn_bool} +% Boolean variables controlling the direction of progression and if the current frame number is moving with the progression. +% \end{variable} +% \end{documentation} +%%%%%% +% \begin{implementation} +% \begin{variable}{\l_gotham_ProgCircleMoving_bool, \l_gotham_progbar_advancement_tlbr_bool, \l_gotham_pmfn_bool} +% Boolean variables controlling the direction of progression and if the current frame number is moving with the progression and if the miniframes navigation should be printed inside the progress bar. +% \begin{macrocode} +\bool_new:N \l_gotham_ProgCircleMoving_bool +\bool_set_true:N \l_gotham_ProgCircleMoving_bool + +\bool_new:N \l_gotham_progbar_advancement_tlbr_bool +\bool_set_true:N \l_gotham_progbar_advancement_tlbr_bool + +\bool_new:N \l_gotham_pmfn_bool +\bool_set_false:N \l_gotham_pmfn_bool +% \end{macrocode} +% \end{variable} +% \end{implementation} + +% \begin{implementation} +% \begin{function}{\__gotham_rectangle_box_progressbar:n} +% \begin{arguments} +% \item |width| of the progress bar. +% \end{arguments} +% Command to draw a rectangular progress bar that can go from left to right or the opposite and that can include a navigation miniframes bar. +% \TestFiles{gotham-test-048} +% \begin{macrocode} +% #1: 'linewidth' +\cs_new_protected:Npn \__gotham_rectangle_box_progressbar:n #1 +{ + % + \setlength{\gotham@progressinheadfoot}{ + #1 * \ratio{\insertframenumber pt}{\inserttotalframenumber pt} + } + + % + \begin{beamercolorbox}[wd=#1]{progress~bar~in~head/foot} + \begin{tikzpicture} + \usebeamercolor{progress~bar~in~head/foot} + + % gray rectangle in the background. + \fill[color=progress~bar~in~head/foot.bg] + (0pt, 0pt) rectangle ++ (#1, \gothamProgressHeadFootLineheight) + ; + + \bool_if:NTF \l_gotham_progbar_advancement_tlbr_bool { + % from left to right + % orange rectangle progressing + \fill[color=progress~bar~in~head/foot.fg] + (0pt, 0pt) rectangle ++ (\gotham@progressinheadfoot, \gothamProgressHeadFootLineheight) + ; + }{ + % from right to left + % orange rectangle progressing + \fill[color=progress~bar~in~head/foot.fg] + (#1, \gothamProgressHeadFootLineheight) rectangle ++ (-\gotham@progressinheadfoot, -\gothamProgressHeadFootLineheight) + ; + } + + \bool_if:NTF \l_gotham_pmfn_bool { + % progress miniframes navigation is on. + \node at (#1/2, \gothamProgressHeadFootLineheight/2) + [text~height=0.1pt, text~depth=0.05pt, inner~sep=0pt] %draw=red, + { + \usebeamercolor[fg]{normal~text} + % \fontsize{3.5pt}{0pt}\selectfont + \raisebox{0.5\gothamProgressHeadFootLineheight+1.4pt}[0pt][0pt]{ + %\dohead + \hfuzz=#1 + \insertnavigation{#1} + } + } + ; + }{ + % false + % nothing to do since progress miniframes navigation is off. + } + \end{tikzpicture} + \end{beamercolorbox} +} +% \end{macrocode} +% \end{function} +% \end{implementation} + +% \begin{implementation} +% \begin{macro}{\defbeamertemplate{progress~bar~in~head/foot}{gotham~rectangle}} +% template displaying the progress bar in head, frametitle or footline. +% \UnitTested +% \TestFiles{gotham-test-046, gotham-test-046b, gotham-test-047, gotham-test-048} +% \begin{macrocode} +\defbeamertemplate{progress~bar~in~head/foot}{gotham~rectangle}{ + \nointerlineskip + \__gotham_rectangle_box_progressbar:n {\paperwidth} +} +% \end{macrocode} +% \end{macro} +% \end{implementation} + +% \begin{implementation} +% \begin{macro}{\defbeamertemplate{progress~bar~in~left/right}{gotham~rectangle}} +% template displaying the progress bar in left or right. +% \UnitTested +% \TestFiles{gotham-test-046, gotham-test-046b, gotham-test-047,gotham-test-048} +% \begin{macrocode} +\defbeamertemplate{progress~bar~in~left}{gotham~rectangle}{ + \nointerlineskip + + \settoheight{\gotham@temp@heightFrametitle}{\gotham@strut} + \addtolength{\gotham@temp@heightFrametitle}{\gothamFrametitleToppading+\gothamFrametitleBottompading+\gothamProgressHeadFootLineheight} + + \setlength{\gotham@temp@PaperheightFrametitle}{\paperheight-\gotham@temp@heightFrametitle-\gothamFootlineHeight-\gothamFootlineDepth-0.25\baselineskip} + + \vspace{0.12275\paperheight} + \rotatebox{90}{ + \__gotham_rectangle_box_progressbar:n {\gotham@temp@PaperheightFrametitle} + } +} +\defbeamertemplate{progress~bar~in~right}{gotham~rectangle}{ + \nointerlineskip + + \settoheight{\gotham@temp@heightFrametitle}{\gotham@strut} + \addtolength{\gotham@temp@heightFrametitle}{\gothamFrametitleToppading+\gothamFrametitleBottompading+\gothamProgressHeadFootLineheight} + + \setlength{\gotham@temp@PaperheightFrametitle}{\paperheight-\gotham@temp@heightFrametitle-\gothamFootlineHeight-\gothamFootlineDepth-0.25\baselineskip} + + \hspace{-\gothamProgressHeadFootLineheight} + \vspace{\gotham@temp@heightFrametitle-27.75pt} + \rotatebox{-90}{ + \__gotham_rectangle_box_progressbar:n {\gotham@temp@PaperheightFrametitle} + } +} +% \end{macrocode} +% \end{macro} +% \end{implementation} + +% \begin{implementation} +% \begin{function}{\__gotham_rounded_box_progressbar:nnnn} +% \begin{arguments} +% \item |width| Name of the option to add, this name should also correspond to the name of the environment followed by the suffix 'env'. +% \item |ratio progressbar/extra command| +% \item |colorbox name| +% \item |extra command| +% \end{arguments} +% Command to draw a rounded box progress bar that can go from left to right or the opposite and that can include a navigation miniframes bar. +% The fourth argument is a command to control what to display at the right side of the rounded box. +% \TestFiles{gotham-test-048} +% \begin{macrocode} +% #1: 'linewidth' +% #2: ratio of the progress bar +% #3: colorbox name +% #4: command for percent of progress +\cs_new_protected:Npn \__gotham_rounded_box_progressbar:nnnn #1#2#3#4 +{ + \setlength{\gotham@progressinheadfoot}{ + #2#1 * \ratio{\insertframenumber pt}{\inserttotalframenumber pt} + } + + % 1.035\gothamProgressHeadFootLineheight is to include the border inside the box. + \begin{beamercolorbox}[wd=#1, ht=1.035\gothamProgressHeadFootLineheight]{#3} + \;\hfill + %\tikzexternaldisable% + \begin{tikzpicture}[rounded~corners=0.5\gothamProgressHeadFootLineheight, very~thin] + \usebeamercolor{progress~bar~in~head/foot} + + % gray rectangle in the background. + \shade[top~color=progress~bar~in~head/foot.bg!65, bottom~color=progress~bar~in~head/foot.bg!65, middle~color=progress~bar~in~head/foot.bg] + (0pt, 0pt) rectangle ++ (#2#1, \gothamProgressHeadFootLineheight) + ; + + \bool_if:NTF \l_gotham_progbar_advancement_tlbr_bool { + % from left to right + % orange rectangle progressing + \shade[draw=progress~bar~in~head/foot.fg, top~color=progress~bar~in~head/foot.fg!70, bottom~color=progress~bar~in~head/foot.fg!70, middle~color=progress~bar~in~head/foot.fg] + (0pt, 0pt) rectangle ++ (\gotham@progressinheadfoot, \gothamProgressHeadFootLineheight) + ; + }{ + % from right to left + % orange rectangle progressing + \shade[draw=progress~bar~in~head/foot.fg, top~color=progress~bar~in~head/foot.fg!70, bottom~color=progress~bar~in~head/foot.fg!70, middle~color=progress~bar~in~head/foot.fg] + (#2#1, \gothamProgressHeadFootLineheight) rectangle ++ (-\gotham@progressinheadfoot, -\gothamProgressHeadFootLineheight) + ; + } + + \bool_if:NTF \l_gotham_pmfn_bool { + % progress miniframes navigation is on. + \node at (#2#1/2, \gothamProgressHeadFootLineheight/2) + [text~height=0.1pt, text~depth=0.05pt, inner~sep=0pt] %draw=red, + { + \usebeamercolor[fg]{normal~text} + % \fontsize{3.5pt}{0pt}\selectfont + \raisebox{0.5\gothamProgressHeadFootLineheight+1.4pt}[0pt][0pt]{ + \hfuzz=#2#1 + %\dohead + \insertnavigation{#2#1} + } + } + ; + }{ + % false + % nothing to do since progress miniframes navigation is off. + } + \end{tikzpicture} + #4 + \hfill \; + \end{beamercolorbox} +} +% \cs_generate_variant:Nn \__gotham_rounded_box_progressbar:nnnn { Nnnn } +% \end{macrocode} +% \end{function} +% \end{implementation} + +% \begin{implementation} +% \begin{macro}{\defbeamertemplate{progress~bar~in~head/foot}{gotham~rounded~box}} +% template displaying the progress bar in head, frametitle or footline. +% \UnitTested +% \TestFiles{gotham-test-046, gotham-test-046b, gotham-test-047,gotham-test-048} +% \begin{macrocode} +\defbeamertemplate{progress~bar~in~head/foot}{gotham~rounded~box}{ + \nointerlineskip + \__gotham_rounded_box_progressbar:nnnn {\paperwidth}{0.93}{footline}{ + \hfill + \raisebox{0.5\gothamProgressHeadFootLineheight-1.75pt}[0pt][0pt]{ + \fontsize{5pt}{0pt}\selectfont + \usebeamercolor[fg]{normal~text} + \fp_eval:n {round(\insertframenumber*100/\inserttotalframenumber,0)}\,\% + } + } + % \__gotham_rounded_box_progressbar:nnnn {\paperwidth}{0.53}{progress~bar~in~head/foot}{} +} +% \end{macrocode} +% \end{macro} +% \end{implementation} + +% \begin{implementation} +% \begin{macro}{\defbeamertemplate{progress~bar~in~left/right}{gotham~rounded~box}} +% template displaying the progress bar in left or right sidebar. +% \UnitTested +% \TestFiles{gotham-test-046, gotham-test-046b, gotham-test-047,gotham-test-048} +% \begin{macrocode} +\defbeamertemplate{progress~bar~in~left}{gotham~rounded~box}{ + \nointerlineskip + + \settoheight{\gotham@temp@heightFrametitle}{\gotham@strut} + \addtolength{\gotham@temp@heightFrametitle}{\gothamFrametitleToppading+\gothamFrametitleBottompading+\gothamProgressHeadFootLineheight} + + \setlength{\gotham@temp@PaperheightFrametitle}{\paperheight-\gotham@temp@heightFrametitle-\gothamFootlineHeight-\gothamFootlineDepth-0.25\baselineskip} + + \vspace{0.12275\paperheight} + % \hspace{\gothamProgressHeadFootLineheight} + \rotatebox{90}{ + \__gotham_rounded_box_progressbar:nnnn {\gotham@temp@PaperheightFrametitle}{0.89}{footline}{ + \hfill + \raisebox{0.5\gothamProgressHeadFootLineheight-1.75pt}[0pt][0pt]{ + \fontsize{5pt}{0pt}\selectfont + \fp_eval:n {round(\insertframenumber*100/\inserttotalframenumber,0)}\,\% + } + } + } +} +\defbeamertemplate{progress~bar~in~right}{gotham~rounded~box}{ + \nointerlineskip + + \settoheight{\gotham@temp@heightFrametitle}{\gotham@strut} + \addtolength{\gotham@temp@heightFrametitle}{\gothamFrametitleToppading+\gothamFrametitleBottompading+\gothamProgressHeadFootLineheight} + + \setlength{\gotham@temp@PaperheightFrametitle}{\paperheight-\gotham@temp@heightFrametitle-\gothamFootlineHeight-\gothamFootlineDepth-0.25\baselineskip} + + \hspace{-\gothamProgressHeadFootLineheight-0.2pt} + \vspace{\gotham@temp@heightFrametitle-27.75pt} + \rotatebox{-90}{ + \__gotham_rounded_box_progressbar:nnnn {\gotham@temp@PaperheightFrametitle}{0.89}{footline}{ + \hfill + \raisebox{0.5\gothamProgressHeadFootLineheight-1.75pt}[0pt][0pt]{ + \fontsize{5pt}{0pt}\selectfont + \fp_eval:n {round(\insertframenumber*100/\inserttotalframenumber,0)}\,\% + } + } + } +} +% \end{macrocode} +% \end{macro} +% \end{implementation} + +% \begin{documentation} +% \begin{variable}{\gothamProgressCircHeight, \gothamCounterCircleRadius, \gothamProgressCircBorderWidth} +% Lengths controlling the aspect of |progress circle|. +% |\gothamProgressCircHeight| is controlling the inner height of the circle (related to its diameter). +% |\gothamCounterCircleRadius| is controlling the size of the counter circle containing the frame number. +% |\gothamProgressCircBorderWidth| is controlling width of the progress circle. +% \end{variable} +% \end{documentation} +%%%%%% +% \begin{implementation} +% \begin{variable}{\gothamProgressCircHeight, \gothamCounterCircleRadius, \gothamProgressCircBorderWidth} +% Lengths used in tikz rectangle. +% \begin{macrocode} +%the height of the header is 1.8 times the lineheight of the frame title +\newlength{\gothamProgressCircHeight} +\setlength{\gothamProgressCircHeight}{1.8\baselineskip} +%\setlength{\gothamProgressCircHeight}{2\baselineskip} +\newlength{\gothamCounterCircleRadius} +\setlength{\gothamCounterCircleRadius}{1.12ex} +% width of the border +\newlength{\gothamProgressCircBorderWidth} +\setlength{\gothamProgressCircBorderWidth}{1.65mm} + +%% Induced length used internally, but can still be tuned manually by inspired people. +% radius of the logo +\newlength{\gothamProgressCircLogoRadius} +\setlength{\gothamProgressCircLogoRadius}{1.2\gothamProgressCircHeight/2} +% inner radius of border of the logo frame +\newlength{\gothamProgressCircLogoInnerRadius} +\setlength{\gothamProgressCircLogoInnerRadius}{1.1\gothamProgressCircLogoRadius} +% radius of the outer border of the logo frame +\newlength{\gothamProgressCircLogoOuterRadius} +\setlength{\gothamProgressCircLogoOuterRadius}{\gothamProgressCircLogoInnerRadius+\gothamProgressCircBorderWidth} +% radius of the counters +\newlength{\gothamCounterRadius} +\setlength{\gothamCounterRadius}{\gothamProgressCircLogoInnerRadius/2+\gothamProgressCircLogoOuterRadius/2} +% \end{macrocode} +% \end{variable} +% \end{implementation} + +% \begin{implementation} +% \begin{variable}{\l_gotham_ratio_progresscircle_fp, \l_gotham_angle_counterradius_fp} +% angle ratio of the progress in degree and angle of the counter circle intercepted by the half of the border. +% \begin{macrocode} +% \fp_new:N \l_gotham_ratio_progress_fp +\fp_new:N \l_gotham_ratio_progresscircle_fp +% the angle token by the counter radius +\fp_new:N \l_gotham_angle_counterradius_fp +% requires xfp for asind +\fp_set:Nn \l_gotham_angle_counterradius_fp { + \fpeval{ 2* asind (\gothamCounterCircleRadius / (2*\gothamCounterRadius)) } +} +% \end{macrocode} +% \end{variable} +% \end{implementation} + +% \begin{documentation} +% \begin{function}{\gothamInstituteLogoCircle[#1]} +% \begin{syntax} +% \cs{gothamInstituteLogoCircle} \oarg{height (4ex)} +% \end{syntax} +% Command that have to be redefined in order to include your circular logo. +% For example your can do |\renewcommand{\gothamInstituteLogoCircle}[1][4ex]{\includegraphics[height=#1]{gotham-logo.pdf}}|. +% \end{function} +% \end{documentation} +%%%%%% +% \begin{implementation} +% \begin{function}{\gothamInstituteLogoCircle[#1]} +% \begin{arguments} +% \item |height| of the picture +% \end{arguments} +% Command to be redefined by users. +% \TestFiles{ gotham-test-046b} +% \begin{macrocode} +\providecommand{\gothamInstituteLogoCircle}[1][4ex]{ + \includegraphics[height=#1]{gotham-logo.pdf} +} +% \end{macrocode} +% \end{function} +% \end{implementation} + +% \begin{implementation} +% \begin{function}{\gothamProgressCircle} +% Internal command plotting the circle progress and that is used internal in the instituteLogo template within the frametitle template. +% \TestFiles{ gotham-test-046b} +% \begin{macrocode} +\providecommand{\gothamProgressCircle}{ + % \tikzexternaldisable + \begin{tikzpicture}[remember~picture,overlay] + % Load colors + \usebeamercolor{standin} + \usebeamercolor{frametitle} + \usebeamercolor{progress~bar~in~head/foot} + + % Define center + \coordinate (localCenter); + % draw the outer circle + \fill[fill=progress~bar~in~head/foot.bg] (localCenter) circle (\gothamProgressCircLogoOuterRadius); + % draw the inner circle + \fill[fill=frametitle.bg] (localCenter) circle (\gothamProgressCircLogoInnerRadius); + \node at (localCenter) {\gothamInstituteLogoCircle[1.9\gothamProgressCircLogoRadius]}; + + %% draw progress circle/bar + \bool_if:NTF \l_gotham_ProgCircleMoving_bool { + % the circular counter with a moving counter + + %% compute the angle for the progress circle + \bool_if:NTF \l_gotham_progbar_advancement_tlbr_bool { + \fp_set:Nn \l_gotham_ratio_progresscircle_fp {-(360)*\insertframenumber/\inserttotalframenumber } + }{ + %\else% clockwise rotation + \fp_set:Nn \l_gotham_ratio_progresscircle_fp {(360)*(\insertframenumber/\inserttotalframenumber)} + } + %\fi + + % draw the arc progress bar + \draw[ + color=progress~bar~in~head/foot.fg, + line~width=0.6*\gothamProgressCircBorderWidth + ] + (localCenter) + ++ + ([ + xshift=\gothamCounterRadius + ]localCenter) + arc[ + radius=\gothamCounterRadius, + start~angle=0, + end~angle={\fp_eval:n \l_gotham_ratio_progresscircle_fp} + ] + ; + + % draw a point at the beginning of the progress circle + \fill[fill=frametitle.bg] + ([ + xshift={\gothamCounterRadius} + ]localCenter.center) + circle (0.3*\gothamProgressCircBorderWidth) + ; + % place the current frame number + \node[ + % fill=standin.bg, draw=progress~bar~in~head/foot.bg, thick, circle, minimum~width={\gothamCounterCircleRadius}, text~width={0pt} + ] + (pagenumframe) at ( + [rotate= + {\fp_eval:n {\l_gotham_ratio_progresscircle_fp}}, + xshift=\gothamCounterRadius + ]localCenter) {} + ; + \filldraw[ + draw=progress~bar~in~head/foot.bg, + fill=standin.bg, + thick, + ] + (pagenumframe) circle (\gothamCounterCircleRadius) + ; + % place the frame number in another node to avoid unwanted rescaling. + \node[at=(pagenumframe.center), anchor=center] { + {\usebeamercolor[fg]{standin}\tiny\insertframenumber} + }; + }{ + %\else gothamProgCircleMoving + % the circular counter with a fixed counter + + %% compute the angle for the progress circle + \bool_if:NTF \l_gotham_progbar_advancement_tlbr_bool { + \fp_set:Nn \l_gotham_ratio_progresscircle_fp {-(360-2\l_gotham_angle_counterradius_fp)*\insertframenumber/\inserttotalframenumber -\l_gotham_angle_counterradius_fp} + }{ + %\else% clockwise rotation + \fp_set:Nn \l_gotham_ratio_progresscircle_fp {(360-2\l_gotham_angle_counterradius_fp)*(\insertframenumber/\inserttotalframenumber) +\l_gotham_angle_counterradius_fp} + } + %\fi + + % draw the arc progress bar + \draw[ + color=progress~bar~in~head/foot.fg, + line~width=0.6*\gothamProgressCircBorderWidth + ] + (localCenter) + ++ + ([rotate={\fp_eval:n {\l_gotham_angle_counterradius_fp}}, + xshift=\gothamCounterRadius + ]localCenter) + arc[ + radius=\gothamCounterRadius, + start~angle={\fp_eval:n \l_gotham_angle_counterradius_fp}, + end~angle={\fp_eval:n \l_gotham_ratio_progresscircle_fp} + ] + ; + + % draw a point at the end of the progress circle + \fill[fill=frametitle.bg] + ([ + rotate={\fp_eval:n {\l_gotham_ratio_progresscircle_fp}}, xshift={\gothamCounterRadius} + ]localCenter.center) + circle (0.3*\gothamProgressCircBorderWidth) + ; + % place the total number of frames + \node[] (leftick) + at ([xshift={\gothamProgressCircLogoOuterRadius+1.25ex}]localCenter) {} + ; + %% draw a line ticks + \draw[ + color=frametitle.fg, + fill=frametitle.fg, + ] + ([xshift=\gothamProgressCircLogoOuterRadius,yshift={-0.05ex}] localCenter) + rectangle ([yshift={0.05ex}] leftick) + ; + \node[ at=(leftick), anchor=west, inner~sep = 1pt,] + {\usebeamercolor[fg]{frametitle}\tiny\inserttotalframenumber} + ; + % place the current frame number + \node[ + % fill=standin.bg, draw=progress~bar~in~head/foot.bg, thick, circle, minimum~width={\gothamCounterCircleRadius}, text~width={0pt} + ] + (pagenumframe) at ([xshift=\gothamCounterRadius]localCenter) {} + ; + \filldraw[ + draw=progress~bar~in~head/foot.bg, + fill=standin.bg, + thick, + ] + (pagenumframe) circle (\gothamCounterCircleRadius) + ; + % place the frame number in another node to avoid unwanted rescaling. + \node[at=(pagenumframe.center), anchor=center] { + {\usebeamercolor[fg]{standin}\tiny\insertframenumber} + }; + } + %\fi gothamProgCircleMoving + \end{tikzpicture} + \bool_if:NTF \l_gotham_ProgCircleMoving_bool { + % nothing + \hspace{\gothamProgressCircLogoOuterRadius+0.75ex} + }{ + % else + % extra space to compensate the total number of frame + \hspace{\gothamProgressCircLogoOuterRadius+3ex} + } + % \tikzexternalenable +} +% \end{macrocode} +% \end{function} +% \end{implementation} + +% \begin{documentation} +% \begin{function}{\useoutertheme} +% \begin{syntax} +% \cs{useoutertheme}\oarg{option1=value1, ...}\marg{gotham} +% \textrm{where the options are (default marked as} \defopt{default}\textrm{):} +% \meta{progressbar~position} = \oarg{\defopt{foot} \textbar none \textbar head \textbar circlehead \textbar ... } +% \end{syntax} +% The 'package' (useoutertheme) options can control |progress bar| templates that be placed in the head (over the frametitle), frametitle (under it), below the footer or the circlehead (around the logo in the frametitle). +% \end{function} +% \end{documentation} +%%%% +% \begin{implementation} +% \begin{macro}{outer key -- interface} +% Controls the outer settings for progress bar. +% \UnitTested +% \TestFiles{gotham-test-048} +% \begin{macrocode} +% token list to remember what is the current state +% \tl_new:N \l__gotham_out_tmp_pbar_tl +\keys_define:nn { gotham / outer }{ + % progressbar~position default + progressbar~position .choice:, + progressbar~position .usage:n = { general }, + progressbar~position .default:n = { none }, + + progressbar~position / none .code:n = { + % reset if it has modified by another progressbar~position strategy + % \__gotham_set_prop_template:nn{sidebar~canvas~right/default}{#1} + \tl_set:Nn \l__gotham_out_tmp_pbar_tl {none} + + % head + \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {head} { + % True: nothing to do it is already occupied. + }{ + \setbeamertemplate{headline}[default/\prop_item:Nn \l__gotham_template_name_prop {headline/default}] + } + % frametitle + % \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {frametitle} { + % % True: nothing to do it is already occupied. + % }{ + \setbeamertemplate{frametitle}[default/\prop_item:Nn \l__gotham_template_name_prop {frametitle/default}] + % } + % foot + \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {foot} { + % True: nothing to do it is already occupied. + }{ + \setbeamertemplate{footline}[default/\prop_item:Nn \l__gotham_template_name_prop {footline/default}] + } + % left + \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {left} { + % True: nothing to do it is already occupied. + }{ + \setbeamertemplate{sidebar~left}[default/\prop_item:Nn \l__gotham_template_name_prop {sidebar~left/default}] + } + % right + \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {right} { + % True: nothing to do it is already occupied. + }{ + \setbeamertemplate{sidebar~right}[default/\prop_item:Nn \l__gotham_template_name_prop {sidebar~right/default}] + } + + % logo + \__gotham_set_prop_template:nn{includeLogo/default}{gotham~square} + % section in head + \setbeamertemplate{section~in~head/foot~shaded}[default/\prop_item:Nn \l__gotham_template_name_prop {section~in~head/foot~shaded/default}] + \setbeamertemplate{section~in~head/foot}[default/\prop_item:Nn \l__gotham_template_name_prop {section~in~head/foot/default}] + }, + progressbar~position / head .code:n = { + \tl_if_eq:VnTF \l__gotham_out_tmp_pbar_tl {head} { + % True: nothing to do it is already done. + } { + % False : remember that choice in order to do not apply it several time and add to beamer template. + \tl_set:Nn \l__gotham_out_tmp_pbar_tl {head} + + \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {head} { + % True: nothing to do it is already occupied. + }{ + \setbeamertemplate{headline}[default/\prop_item:Nn \l__gotham_template_name_prop {headline/default}] + } + % \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {frametitle} { + % % True: nothing to do it is already occupied. + % }{ + \setbeamertemplate{frametitle}[default/\prop_item:Nn \l__gotham_template_name_prop {frametitle/default}] + % } + \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {foot} { + % True: nothing to do it is already occupied. + }{ + \setbeamertemplate{footline}[default/\prop_item:Nn \l__gotham_template_name_prop {footline/default}] + } + \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {left} { + % True: nothing to do it is already occupied. + }{ + \setbeamertemplate{sidebar~left}[default/\prop_item:Nn \l__gotham_template_name_prop {sidebar~left/default}] + } + \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {right} { + % True: nothing to do it is already occupied. + }{ + \setbeamertemplate{sidebar~right}[default/\prop_item:Nn \l__gotham_template_name_prop {sidebar~right/default}] + } + + % + \addtobeamertemplate{headline}{}{ + \tl_if_eq:VnTF \l__gotham_out_tmp_pbar_tl {head} { + \usebeamertemplate*{progress~bar~in~head/foot} + }{} + } + } + }, + progressbar~position / frametitle .code:n = { + \tl_if_eq:VnTF \l__gotham_out_tmp_pbar_tl {frametitle} { + % True: nothing to do it is already done. + } { + % False : remember that choice in order to do not apply it several time and add to beamer template. + \tl_set:Nn \l__gotham_out_tmp_pbar_tl {frametitle} + + \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {head} { + % True: nothing to do it is already occupied. + }{ + \setbeamertemplate{headline}[default/\prop_item:Nn \l__gotham_template_name_prop {headline/default}] + } + % \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {frametitle} { + % % True: nothing to do it is already occupied. + % }{ + \setbeamertemplate{frametitle}[default/\prop_item:Nn \l__gotham_template_name_prop {frametitle/default}] + % } + \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {foot} { + % True: nothing to do it is already occupied. + }{ + \setbeamertemplate{footline}[default/\prop_item:Nn \l__gotham_template_name_prop {footline/default}] + } + \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {left} { + % True: nothing to do it is already occupied. + }{ + \setbeamertemplate{sidebar~left}[default/\prop_item:Nn \l__gotham_template_name_prop {sidebar~left/default}] + } + \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {right} { + % True: nothing to do it is already occupied. + }{ + \setbeamertemplate{sidebar~right}[default/\prop_item:Nn \l__gotham_template_name_prop {sidebar~right/default}] + } + + % + \addtobeamertemplate{frametitle}{}{ + \tl_if_eq:VnTF \l__gotham_out_tmp_pbar_tl {frametitle} { + \usebeamertemplate*{progress~bar~in~head/foot} + }{} + } + } + }, + progressbar~position / foot .code:n = { + \tl_if_eq:VnTF \l__gotham_out_tmp_pbar_tl {footline} { + % True: nothing to do it is already done. + } { + % False : remember that choice in order to do not apply it several time and add to beamer template. + \tl_set:Nn \l__gotham_out_tmp_pbar_tl {footline} + + \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {head} { + % True: nothing to do it is already occupied. + }{ + \setbeamertemplate{headline}[default/\prop_item:Nn \l__gotham_template_name_prop {headline/default}] + } + % \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {frametitle} { + % % True: nothing to do it is already occupied. + % }{ + \setbeamertemplate{frametitle}[default/\prop_item:Nn \l__gotham_template_name_prop {frametitle/default}] + % } + \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {foot} { + % True: nothing to do it is already occupied. + }{ + \setbeamertemplate{footline}[default/\prop_item:Nn \l__gotham_template_name_prop {footline/default}] + } + \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {left} { + % True: nothing to do it is already occupied. + }{ + \setbeamertemplate{sidebar~left}[default/\prop_item:Nn \l__gotham_template_name_prop {sidebar~left/default}] + } + \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {right} { + % True: nothing to do it is already occupied. + }{ + \setbeamertemplate{sidebar~right}[default/\prop_item:Nn \l__gotham_template_name_prop {sidebar~right/default}] + } + + % + \addtobeamertemplate{footline}{}{ + \tl_if_eq:VnTF \l__gotham_out_tmp_pbar_tl {footline} { + \usebeamertemplate*{progress~bar~in~head/foot} + }{} + } + } + }, + progressbar~position / circlehead .code:n = { + \tl_if_eq:VnTF \l__gotham_out_tmp_pbar_tl {circlehead} { + % True: nothing to do it is already done. + } { + % False : remember that choice in order to do not apply it several time and add to beamer template. + \tl_set:Nn \l__gotham_out_tmp_pbar_tl {circlehead} + + % + %%%\prop_put:Nnn \l__gotham_template_name_SAVE_prop {includeLogo/default} {gotham~square} % not needed after all. + \__gotham_set_prop_template:nn{includeLogo/default}{gotham~circle} + \__gotham_set_template:nn{section~in~head/foot~shaded}{default/gotham~secSubsec} + \__gotham_set_template:nn{section~in~head/foot}{default/gotham~secSubsec} + % \__gotham_set_template:nn{headline}{default/gotham~section} + % \setbeamertemplate{headline}[default/gotham~section] + + \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {head} { + % True: it is already occupied, so let's emulate the gotham section + \addtobeamertemplate{headline}{}{ + \tl_if_eq:VnTF \l__gotham_out_tmp_pbar_tl {circlehead} { + \begin{beamercolorbox}[wd=1.0\paperwidth, ht=2.5ex, dp=1.4ex, left]{headfoot} + \usebeamerfont{section~in~head/foot}\hspace*{3.5ex} + \usebeamertemplate{section~in~head/foot} + \end{beamercolorbox} + }{} + } + }{ + % \setbeamertemplate{headline}[default/\prop_item:Nn \l__gotham_template_name_prop {headline/default}] + \__gotham_set_template:nn{headline}{default/gotham~section} + } + % \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {frametitle} { + % % True: nothing to do it is already occupied. + % }{ + \setbeamertemplate{frametitle}[default/\prop_item:Nn \l__gotham_template_name_prop {frametitle/default}] + % } + \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {foot} { + % True: nothing to do it is already occupied. + }{ + \setbeamertemplate{footline}[default/\prop_item:Nn \l__gotham_template_name_prop {footline/default}] + } + \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {left} { + % True: nothing to do it is already occupied. + }{ + \setbeamertemplate{sidebar~left}[default/\prop_item:Nn \l__gotham_template_name_prop {sidebar~left/default}] + } + \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {right} { + % True: nothing to do it is already occupied. + }{ + \setbeamertemplate{sidebar~right}[default/\prop_item:Nn \l__gotham_template_name_prop {sidebar~right/default}] + } + } + }, + progressbar~position / left .code:n = { + \tl_if_eq:VnTF \l__gotham_out_tmp_pbar_tl {left} { + % True: nothing to do it is already done. + } { + % False : remember that choice in order to do not apply it several time and add to beamer template. + \tl_set:Nn \l__gotham_out_tmp_pbar_tl {left} + + \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {head} { + % True: nothing to do it is already occupied. + }{ + \setbeamertemplate{headline}[default/\prop_item:Nn \l__gotham_template_name_prop {headline/default}] + } + % \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {frametitle} { + % % True: nothing to do it is already occupied. + % }{ + \setbeamertemplate{frametitle}[default/\prop_item:Nn \l__gotham_template_name_prop {frametitle/default}] + % } + \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {foot} { + % True: nothing to do it is already occupied. + }{ + \setbeamertemplate{footline}[default/\prop_item:Nn \l__gotham_template_name_prop {footline/default}] + } + \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {left} { + % True: nothing to do it is already occupied. + }{ + \setbeamertemplate{sidebar~left}[default/\prop_item:Nn \l__gotham_template_name_prop {sidebar~left/default}] + } + \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {right} { + % True: nothing to do it is already occupied. + }{ + \setbeamertemplate{sidebar~right}[default/\prop_item:Nn \l__gotham_template_name_prop {sidebar~right/default}] + } + + % + \addtobeamertemplate{sidebar~left}{}{ + \tl_if_eq:VnTF \l__gotham_out_tmp_pbar_tl {left} { + \usebeamertemplate*{progress~bar~in~left} + }{} + } + } + }, + progressbar~position / right .code:n = { + \tl_if_eq:VnTF \l__gotham_out_tmp_pbar_tl {right} { + % True: nothing to do it is already done. + } { + % False : remember that choice in order to do not apply it several time and add to beamer template. + \tl_set:Nn \l__gotham_out_tmp_pbar_tl {right} + + \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {head} { + % True: nothing to do it is already occupied. + }{ + \setbeamertemplate{headline}[default/\prop_item:Nn \l__gotham_template_name_prop {headline/default}] + } + % \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {frametitle} { + % % True: nothing to do it is already occupied. + % }{ + \setbeamertemplate{frametitle}[default/\prop_item:Nn \l__gotham_template_name_prop {frametitle/default}] + % } + \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {foot} { + % True: nothing to do it is already occupied. + }{ + \setbeamertemplate{footline}[default/\prop_item:Nn \l__gotham_template_name_prop {footline/default}] + } + \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {left} { + % True: nothing to do it is already occupied. + }{ + \setbeamertemplate{sidebar~left}[default/\prop_item:Nn \l__gotham_template_name_prop {sidebar~left/default}] + } + \tl_if_eq:VnTF \l__gotham_out_tmp_mfnposi_tl {right} { + % True: nothing to do it is already occupied. + }{ + \setbeamertemplate{sidebar~right}[default/\prop_item:Nn \l__gotham_template_name_prop {sidebar~right/default}] + } + + % + \addtobeamertemplate{sidebar~right}{}{ + \tl_if_eq:VnTF \l__gotham_out_tmp_pbar_tl {right} { + \usebeamertemplate*{progress~bar~in~right} + }{} + } + } + }, + + progressbar~position / unknown .code:n = { \PackageWarning{ gotham } { The~choice~'#1'~is~unknown~for~the~(known)~option~'progressbar~position',~so~being~ignored. }{helping~message: progressbar~position / unknown} }, +} +% \end{macrocode} +% \end{macro} +% \end{implementation} + +% \begin{documentation} +% \begin{function}{\useoutertheme} +% \begin{syntax} +% \cs{useoutertheme}\oarg{option1=value1, ...}\marg{gotham} +% \textrm{where the options are (default marked as} \defopt{default}\textrm{):} +% \meta{progressbar style} = \oarg{\defopt{rectangle} \textbar rounded box \textbar moving circle \textbar fixed circle } +% \end{syntax} +% The 'package' (useoutertheme) options can control |progress bar style| templates that . +% \end{function} +% \end{documentation} +%%%% +% \begin{implementation} +% \begin{macro}{outer key -- interface} +% Controls the outer settings for progress bar style. +% \UnitTested +% \TestFiles{gotham-test-049} +% \begin{macrocode} +% token list to remember what is the current state +\keys_define:nn { gotham / outer }{ + % progressbar~style default + progressbar~style .choice:, + progressbar~style .usage:n = { general }, + progressbar~style .default:n = { rectangle }, + + progressbar~style / rectangle .code:n = { + % + % \defbeamertemplate*{progress~bar~in~head/foot}{gotham~rectangle} + \__gotham_set_template:nn{progress~bar~in~head/foot}{gotham~rectangle} + \__gotham_set_template:nn{progress~bar~in~left}{gotham~rectangle} + \__gotham_set_template:nn{progress~bar~in~right}{gotham~rectangle} + }, + + progressbar~style / rounded~box .code:n = { + % + \__gotham_set_template:nn{progress~bar~in~head/foot}{gotham~rounded~box} + \__gotham_set_template:nn{progress~bar~in~left}{gotham~rounded~box} + \__gotham_set_template:nn{progress~bar~in~right}{gotham~rounded~box} + }, + + progressbar~style / moving~circle .code:n = { + % + \bool_set_true:N \l_gotham_ProgCircleMoving_bool + }, + + progressbar~style / fixed~circle .code:n = { + % + \bool_set_false:N \l_gotham_ProgCircleMoving_bool + }, + + progressbar~style / unknown .code:n = { \PackageWarning{ gotham } { The~choice~'#1'~is~unknown~for~the~(known)~option~'progressbar~style',~so~being~ignored. }{helping~message: progressbar~style / unknown} }, +} +% \end{macrocode} +% \end{macro} +% \end{implementation} + +% \begin{documentation} +% \begin{function}{\useoutertheme} +% \begin{syntax} +% \cs{useoutertheme}\oarg{option1=value1, ...}\marg{gotham} +% \textrm{where the options are (default marked as} \defopt{default}\textrm{):} +% \meta{progressbar~advancement} = \oarg{\defopt{tlbr} \textbar brlt } +% \end{syntax} +% The 'package' (useoutertheme) options can control |progress bar| advandement: tlbr) from top left corner to the bottom and right or brlt) from the bottom right to the left and top. +% \end{function} +% \end{documentation} +%%%% +% \begin{implementation} +% \begin{macro}{outer key -- interface} +% Controls the outer settings for progress bar style. +% \UnitTested +% \TestFiles{gotham-test-049} +% \begin{macrocode} +% token list to remember what is the current state +\keys_define:nn { gotham / outer }{ + % progressbar~advancement default + progressbar~advancement .choice:, + progressbar~advancement .usage:n = { general }, + progressbar~advancement .default:n = { tlbr }, + + progressbar~advancement / tlbr .code:n = { + % + \bool_set_true:N \l_gotham_progbar_advancement_tlbr_bool + }, + progressbar~advancement / TLBR .code:n = { + % + \bool_set_true:N \l_gotham_progbar_advancement_tlbr_bool + }, + + progressbar~advancement / brlt .code:n = { + % + \bool_set_false:N \l_gotham_progbar_advancement_tlbr_bool + }, + progressbar~advancement / BRLT .code:n = { + % + \bool_set_false:N \l_gotham_progbar_advancement_tlbr_bool + }, + + progressbar~advancement / unknown .code:n = { \PackageWarning{ gotham } { The~choice~'#1'~is~unknown~for~the~(known)~option~'progressbar~advancement',~so~being~ignored. }{helping~message: progressbar~advancement / unknown} }, +} +% \end{macrocode} +% \end{macro} +% \end{implementation} + +% \begin{documentation} +% \begin{function}{\useoutertheme} +% \begin{syntax} +% \cs{useoutertheme}\oarg{option1=value1, ...}\marg{gotham} +% \textrm{where the options are (default marked as} \defopt{default}\textrm{):} +% \meta{progressbar mfn} = \oarg{\defopt{off} \textbar on } +% \end{syntax} +% The 'package' (useoutertheme) options can control if the progress bar includes a miniframe navigation. +% \end{function} +% \end{documentation} +%%%% +% \begin{implementation} +% \begin{macro}{outer key -- interface} +% Controls the outer settings for progress bar style. +% \UnitTested +% \TestFiles{gotham-test-049} +% \begin{macrocode} +% token list to remember what is the current state +\keys_define:nn { gotham / outer }{ + % progressbar~mfn default + progressbar~mfn .choice:, + progressbar~mfn .usage:n = { general }, + progressbar~mfn .default:n = { off }, + + progressbar~mfn / true .code:n = { + \bool_set_true:N \l_gotham_pmfn_bool + + \__gotham_set_template:nn{section~in~head/foot~shaded}{default/empty} + \__gotham_set_template:nn{section~in~head/foot}{default/empty} + \renewcommand{\gothamPatchSectionbox}{ + % patch to set section box height to 0. + \ht\beamer@sectionbox=0.ex + \dp\beamer@sectionbox=0.ex + } + }, + progressbar~mfn / on .code:n = { + \bool_set_true:N \l_gotham_pmfn_bool + + \__gotham_set_template:nn{section~in~head/foot~shaded}{default/empty} + \__gotham_set_template:nn{section~in~head/foot}{default/empty} + \renewcommand{\gothamPatchSectionbox}{ + % patch to set section box height to 0. + \ht\beamer@sectionbox=0.ex + \dp\beamer@sectionbox=0.ex + } + }, + progressbar~mfn / enable .code:n = { + \bool_set_true:N \l_gotham_pmfn_bool + + \__gotham_set_template:nn{section~in~head/foot~shaded}{default/empty} + \__gotham_set_template:nn{section~in~head/foot}{default/empty} + \renewcommand{\gothamPatchSectionbox}{ + % patch to set section box height to 0. + \ht\beamer@sectionbox=0.ex + \dp\beamer@sectionbox=0.ex + } + }, + + progressbar~mfn / false .code:n = { \bool_set_false:N \l_gotham_pmfn_bool }, + progressbar~mfn / off .code:n = { \bool_set_false:N \l_gotham_pmfn_bool }, + progressbar~mfn / disable .code:n = { \bool_set_false:N \l_gotham_pmfn_bool }, + + progressbar~mfn / unknown .code:n = { \PackageWarning{ gotham } { The~choice~'#1'~is~unknown~for~the~(known)~option~'progressbar~mfn',~so~being~ignored. }{helping~message: progressbar~mfn / unknown} }, +} +% \end{macrocode} +% \end{macro} +% \end{implementation} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% \begin{implementation} +% \begin{macro}{Default outer keys} +% Apply default key options. +% \UnitTested +% \TestFiles{gotham-test-048} +% \begin{macrocode} +% when no value is given, default is called. +\keys_set:nn { gotham / outer } { + sidebar~canvas~right~template, sidebar~canvas~left~template, + edging~default, + frametitle~template, framesubtitle~template, frametitle~continuation~template, + numbering, + rotateFooter~default, + footer~template, + mini~frames~shape, mini~frames~bundle, + mini~frames~compress, + mini~frames~nav~spreading, + mini~frames~nav~sectioning, + mini~frames~nav~position, + progressbar~position, progressbar~style, progressbar~advancement, progressbar~mfn, +} +% \end{macrocode} +% \end{macro} +% \end{implementation} + +% \begin{implementation} +% \begin{macro}{Process outer keys} +% Process package options. +% \UnitTested +% \TestFiles{gotham-test-048} +% \begin{macrocode} +\ProcessKeyOptions[ gotham / outer ] +% \mode<all> +% \end{macrocode} +% \end{macro} +% \end{implementation} + +% +% +% \begin{implementation} +% \begin{macrocode} +%\endinput +%</outer> +% \end{macrocode} +% \end{implementation} +% +% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +% +% +%\begin{implementation} +% \begin{macrocode} +%<*package> +\RequirePackage{expl3} +% \RequirePackage{ifxetex} +% \RequirePackage{ifluatex} +% \RequirePackage{etoolbox} +% \RequirePackage{xcolor} +% \RequirePackage{tikz} +% \RequirePackage{calc} % I think I can remove it with a bit of work +% \RequirePackage{xfp} +% \end{macrocode} +% \end{implementation} +% +% \begin{implementation} +% \begin{macrocode} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%% PACKAGE %%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% +% \end{macrocode} +% \end{implementation} +% +% Most options are passed off to the component sub-packages. +% \begin{implementation} +% \begin{macrocode} + +% +\usefonttheme{gotham} +\usecolortheme{gotham} +\useinnertheme{gotham} +\useoutertheme{gotham} +% +% +% + +%%%%% Setting keys %%%%% + +% set new counter for how many time the lookup is used +\int_new:N \l_gotham_lookup_cnt +\int_set:Nn \l_gotham_lookup_cnt {0} + +\seq_const_from_clist:Nn \c__gotham_load_submodules_seq { font, color, inner, outer } + +\cs_new_protected:Npn \__gotham_lookup_keymodules:nn #1#2 +{ + \int_incr:N \l_gotham_lookup_cnt + % \int_show:n \l_gotham_lookup_cnt + + % if lookup counter is lower than the number of submodules-1 [before it was +1, not completely clear to me], do nothing (let the other submodules do their job), otherwise lookup in the submodules + \if_int_compare:w \l_gotham_lookup_cnt < 2 + %true : do nothing + \else: + % \int_show:n \l_gotham_lookup_cnt + \seq_map_inline:Nn \c__gotham_load_submodules_seq + { + \keys_if_exist:nnT { gotham / ##1 } {#1} + { + % missing feature in l3keys, we have no better way to detect an omitted value, so we have to guess that all empty values are in fact omitted values. + \tl_if_empty:nTF {#2} + { \keys_set:nn { gotham / ##1 } { #1 } } + { \keys_set:nn { gotham / ##1 } { #1 = {#2} } } + \prg_break: + } + } + \msg_error:nnn { gotham } { unknown-key } {#1} + \prg_break_point: + \fi: +} +\cs_generate_variant:Nn \__gotham_lookup_keymodules:nn { Vn } +\msg_new:nnn { gotham } { unknown-key } { Unknown~ key~ #1~ encountered. } + +% Property list for all groups. +\prop_new:N \l__gotham_all_all_user_keys_prop +\prop_const_from_keyval:Nn \c__gotham_all_pkg_keys_prop {} + +\keys_define:nn { gotham / all / all } +{ + unknown .code:n = + {\__gotham_lookup_keymodules:Vn \l_keys_key_str {#1}} +} + +% Set default keys/options from keyval +% \__gotham_set_default_from_keyval: variant, keyval, group command +\cs_new_protected:Npn \__gotham_set_default_from_keyval:nnn #1 #2 #3 +{ %% + % Check if keyvalues have been given. + \tl_if_novalue:nTF {#2} + { % no user keys given so _user_keys_prop is taking pkg prop + \prop_set_eq:cc { l__gotham_#3_#1_user_keys_prop } { c__gotham_#3_pkg_keys_prop } + }{ % user key given and put it in prop + \prop_put_from_keyval:cn { l__gotham_#3_#1_user_keys_prop } {#2} + }% end if + % + % xx + \__gotham_set_default_auxi:cnn { l__gotham_#3_#1_user_keys_prop } {#1} {#3} + % + % xx + \keys_set:nn { gotham/#3/#1 } { default } +} +% +% prop-key-val, variant, group command +\cs_new_protected:Npn \__gotham_set_default_auxi:Nnn #1 #2 #3 +{ + \__gotham_set_default_auxii:fnn { \prop_to_keyval:N #1 } {#2} {#3} +} +\cs_generate_variant:Nn \__gotham_set_default_auxi:Nnn { c } +% +% key-val, variant, group command +\cs_new_protected:Npn \__gotham_set_default_auxii:nnn #1 #2 #3 +{ + \keys_define:nn { gotham/#3/#2 } { default .meta:n = {#1} } +} +\cs_generate_variant:Nn \__gotham_set_default_auxii:nnn { f } +% +% +% (re)set keys/options by default for a group of commands. +% \gothamset m:options:#1 +\DeclareDocumentCommand{\gothamset}{ m } +{ + \__gotham_set_default_from_keyval:nnn { all } {#1} { all } + \keys_set:nn { gotham/all/all } { default } +} + +\def\gotham@plaintitleformat#1{#1} +\providecommand{\mreducelistspacing}{\vspace{-\topsep}} + +\ProcessOptionsBeamer +\keys_define:nn { gotham / font } +{ + unknown .code:n = + {\__gotham_lookup_keymodules:Vn \l_keys_key_str {#1}} +} +\keys_define:nn { gotham / color } +{ + unknown .code:n = + {\__gotham_lookup_keymodules:Vn \l_keys_key_str {#1}} +} +\keys_define:nn { gotham / inner } +{ + unknown .code:n = + {\__gotham_lookup_keymodules:Vn \l_keys_key_str {#1}} +} +\keys_define:nn { gotham / outer } +{ + unknown .code:n = + {\__gotham_lookup_keymodules:Vn \l_keys_key_str {#1}} +} + +\ProcessKeyOptions[ gotham / font ] +\ProcessKeyOptions[ gotham / color ] +\ProcessKeyOptions[ gotham / inner ] +\ProcessKeyOptions[ gotham / outer ] + +% +% \end{macrocode} +% \end{implementation} + +% \begin{documentation} +% \begin{function}{\gothamreset} +% \begin{syntax} +% \cs{gothamreset} +% \end{syntax} +% Command to reset gotham to default. Mainly useful when other theme have left some definitions. +% \end{function} +% \end{documentation} +%%%%%% +% \begin{implementation} +% \begin{function}{\gothamreset} +% \begin{arguments} +% \item |height| of the picture +% \end{arguments} +% Command to be redefined by users. +% \TestFiles{ gotham-test-046b} +% \begin{macrocode} +\DeclareDocumentCommand{\gothamreset}{m}{ + % commands + \renewcommand{\gothamInstituteLogoSquare}[1][4ex]{ } + \renewcommand{\gothamInstituteLogoCircle}[1][4ex]{ } + \renewcommand{\gothamHookPostColorBGSet}{ + \colorlet{colorStandout}{colorA} + \colorlet{colorFrametitle}{colorA} + \colorlet{colorProgBar}{colorC} + \setbeamercolor{frametitle}{ + use=primary~palette, + parent=primary~palette, + bg=colorFrametitle, + fg=colorBG + } + \setbeamercolor{standout}{bg=colorStandout, fg=colorPale} + } + \renewcommand{\gothamtitlepagelogo}{} + \renewcommand{\gothamtitlepagebg}{} + \renewcommand{\gothamRightFiligrane}{} + \renewcommand{\gothamLeftFiligrane}{} + \renewcommand{\gothamHookFooter}{} + + % lengths + \setlength{\gothamProgressSectionHeight}{3pt} + \setlength{\sectionhoffset}{0pt} + \setlength{\sidebarRightHOffset}{-2.5ex} + \setlength{\sidebarLeftHOffset}{+0.5ex} + \setlength{\gothamFrametitleToppading}{2.2ex} + \setlength{\gothamFrametitleBottompading}{2.2ex} + \setlength{\gothamFrametitleLeftpading}{2.2ex} + \setlength{\gothamFrametitleRightpading}{2.2ex} + \setlength{\gothamFramesubtitleStrutend}{0pt} + \setlength{\gothamFootlineVOffset}{-0.5ex} + \setlength{\gothamFootlineDepth}{0.1ex} + \setlength{\gothamFootlineHeight}{1.5ex} + \setlength{\gothamFootlineHRightOffset}{\spaceskip} + \setlength{\gothamHposLeftRotFooter}{-7pt} + \setlength{\gothamHposRightRotFooter}{2pt} + \setlength{\gothamVposLeftRotFooter}{15pt} + \setlength{\gothamVposRightRotFooter}{15pt} + \setlength{\gothamLeftFooterPadding}{2.0ex} + \setlength{\gothamRightFooterPadding}{3.5ex} + \setlength{\gothamFooterHOffset}{0pt} + \setlength{\gothamFootlineRuleLeftPadding}{7mm} + \setlength{\gothamFootlineRuleHeight}{0.0pt} + \setlength{\gothamFootlineRuleLength}{15mm} + \setlength{\gothamProgressCircHeight}{1.8\baselineskip} + \setlength{\gothamCounterCircleRadius}{1.12ex} + \setlength{\gothamProgressCircBorderWidth}{1.65mm} + \setlength{\gothamCircleNumberingVshift}{1.4mm} + \setlength{\gothamCircleNumberingHshift}{2.6mm} + \setlength{\gothamProgressHeadFootLineheight}{1.2ex} + + % options to default + \keys_set:nn { gotham/all/all } { default } +} +% \end{macrocode} +% \end{function} +% \end{implementation} + +% \begin{implementation} +% \begin{macrocode} +%\endinput +%</package> +% \end{macrocode} +% \end{implementation} +% +% +\endinput +% +% \Finale diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham.ins b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham.ins new file mode 100644 index 0000000000..6bccc22ba9 --- /dev/null +++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham.ins @@ -0,0 +1,75 @@ +%% +%% Copyright (C) 2008 by Romain NOËL <romainoel@free.fr> +%% +%% This file 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 in: +%% +%% http://www.latex-project.org/lppl.txt +%% +%% and version 1.3c or later is part of all distributions of LaTeX +%% version 2006/05/20 or later. +%% + +\input docstrip.tex +\keepsilent +\askforoverwritefalse +\preamble + +Copyright (C) 2023-20** by Romain NOËL <romainoel@free.fr> + +This work may be distributed and/or modified under the +conditions of the LaTeX Project Public License, either version 1.3 +of this license or (at your option) any later version. +The latest version of this license is in +http://www.latex-project.org/lppl.txt +and version 1.3 or later is part of all distributions of LaTeX +version 2005/12/01 or later. + +This work has the LPPL maintenance status `maintained'. + +The Current Maintainer of this work is Romain NOËL. +Contributors: Romain NOËL (2023-20**) + +\endpreamble + +\postamble + +Adapted from classic "A model .dtx file" by Joseph Wright +https://www.texdev.net/2009/10/06/a-model-dtx-file/ +\endpostamble + +\usedir{tex/latex/gotham} +\generate{ + \file{beamerthemegotham.sty}{\from{gotham.dtx}{package}}% + \file{beamerfontthemegotham.sty}{\from{gotham.dtx}{font}}% + \file{beamercolorthemegotham.sty}{\from{gotham.dtx}{color}}% + \file{beamerinnerthemegotham.sty}{\from{gotham.dtx}{inner}}% + \file{beamerouterthemegotham.sty}{\from{gotham.dtx}{outer}}% + \nopreamble\nopostamble + \file{gotham-user-cmds.tex}{\from{gotham.dtx}{userCmd}}% + \file{gotham-dev-impl.tex}{\from{gotham.dtx}{devImpl}}% +} + + +\obeyspaces +\Msg{*************************************************************} +\Msg{* *} +\Msg{* To finish the installation you have to move the following *} +\Msg{* file into a directory searched by TeX: *} +\Msg{* *} +\Msg{* beamercolorthemegotham.sty *} +\Msg{* beamerfontthemegotham.sty *} +\Msg{* beamerinnerthemegotham.sty *} +\Msg{* beamerouterthemegotham.sty *} +\Msg{* beamerthemegotham.sty *} +\Msg{* *} +\Msg{* To produce the documentation run the file gotham.dtx *} +\Msg{* through LaTeX. *} +\Msg{* *} +\Msg{* Happy TeXing! *} +\Msg{* *} +\Msg{*************************************************************} + +\endbatchfile
\ No newline at end of file diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham.pdf b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham.pdf Binary files differnew file mode 100644 index 0000000000..772c89767d --- /dev/null +++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham.pdf diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/section-Beamer.tex b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/section-Beamer.tex new file mode 100644 index 0000000000..fa7c9de01b --- /dev/null +++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/section-Beamer.tex @@ -0,0 +1,379 @@ +\documentclass[aspectratio=169]{beamer} + + \usepackage{standalone} + \usepackage{tikz} + \usepackage{pgfplots} + + \usepackage{tabularray} % Typeset tabulars and arrays (contains equivalent of longtable, booktabs and dcolumn at least) + \UseTblrLibrary{booktabs} % to load extra commands from booktabs + + \usepackage{natbib} +\begin{filecontents*}[overwrite]{pres.bib} +@article{Knuth92, + author = "D.E. Knuth", + title = "Two notes on notation", + journal = "Amer. Math. Monthly", + volume = "99", + year = "1992", + pages = "403--422", +} + +@book{ConcreteMath, + author = "R.L. Graham and D.E. Knuth and O. Patashnik", + title = "Concrete mathematics", + publisher = "Addison-Wesley", + address = "Reading, MA", + year = "1989" +} + +@unpublished{Simpson, + author = "H. Simpson", + title = "Proof of the {R}iemann {H}ypothesis", + note = "preprint (2003), available at \texttt{http://www.math.drofnats.edu/riemann.ps}", + year = "2003" +} + +@incollection{Er01, + author = "P. Erd{\H o}s", + title = "A selection of problems and results in combinatorics", + booktitle = "Recent trends in combinatorics (Matrahaza, 1995)", + publisher = "Cambridge Univ. Press", + address = "Cambridge", + pages = "1--6", + year = "1995" +} + +@article{greenwade93, + author = "George D. Greenwade", + title = "The {C}omprehensive {T}ex {A}rchive {N}etwork ({CTAN})", + year = "1993", + journal = "TUGBoat", + volume = "14", + number = "3", + pages = "342--351" +} +\end{filecontents*} + + +\begin{document} + +\section{Introduction: Beamer} + + % FRAME + \begin{frame}[fragile]{Title page} + The Title page is printed using the command: + \begin{verbatim} \maketitle\end{verbatim} + + The element printed on this page are defined in the preamble by + \begin{verbatim} + \title[]{Gotham} + \subtitle{A Modern, versatile and extendable theme for Beamer} + \date[]{\today} + \author[]{Romain NOËL} + \institute{Center for modern beamer themes} + \titlegraphic{\hfill\includegraphics[height=1.5cm, draft]{Title_logo.pdf}} + \end{verbatim} + \end{frame} + + % FRAME + \begin{frame}[fragile]{Plain Slide} + The usual page is printed and defined using the command: + \begin{verbatim} + \begin{frame}{Title on top of the frame} + contenu... + \end{frame } + \end{verbatim} + + Note that the logo printed on this page are defined in the preamble by + \begin{verbatim} + \logo{\includegraphics[height=1.5cm, draft]{logo.pdf}} + \end{verbatim} + \end{frame} + + % FRAME + \begin{frame}[fragile]{Sections} + Sections group slides of the same topic + + \begin{verbatim} \section{Elements}\end{verbatim} + \end{frame} + + % FRAME + \begin{frame}[fragile]{Typography} + \begin{verbatim} + The theme provides sensible defaults to + \emph{emphasize} text, \alert{accent} parts + or show \textbf{bold} results. + \end{verbatim} + + \begin{center}becomes\end{center} + + The theme provides sensible defaults to \emph{emphasize} text, + \alert{accent} parts or show \textbf{bold} results. + \end{frame} + + % FRAME + \begin{frame}{Font feature test} + \begin{itemize} + \item Regular + \item \textit{Italic} + \item \textsc{Small Caps} + \item \textbf{Bold} + \item \textbf{\textit{Bold Italic}} + \item \textbf{\textsc{Bold Small Caps}} + \item \texttt{Monospace} + \item \texttt{\textit{Monospace Italic}} + \item \texttt{\textbf{Monospace Bold}} + \item \texttt{\textbf{\textit{Monospace Bold Italic}}} + \end{itemize} + \end{frame} + + % FRAME + \begin{frame}{Lists} + \begin{columns}[T,onlytextwidth] + \column{0.33\textwidth} + Items + \begin{itemize} + \item Milk \item Eggs \item Potatoes + \begin{itemize} + \item Milk \item Eggs \item Potatoes + \begin{itemize} + \item Milk + \end{itemize} + \end{itemize} + \end{itemize} + + \column{0.33\textwidth} + Enumerations + \begin{enumerate} + \item First, \item Second and \item Last. + \end{enumerate} + + \column{0.33\textwidth} + Descriptions + \begin{description} + \item[PowerPoint] Meeh. \item[Beamer] Yeeeha. + \end{description} + \end{columns} + + \vspace{2em} + Then, something below the columns, that be long enough to recover all the line-width. + \end{frame} + + % FRAME + \begin{frame}{Animation} + \begin{itemize}[<+- | alert@+>] + \item \alert<4>{This is\only<4>{ really} important} + \item Now this + \item And now this + \end{itemize} + \end{frame} + + % FRAME from https://www.edpif.org/documents/latex/intermediate/beamer/latex-int-beamer_handout.pdf + \begin{frame}[fragile]{Commands controlling overlay} + Beamer defines a bunch of commands intended to control overlays: + \verb$\only<...>{text}$ Throws away \verb$text$ content on slides not in \verb$<...>$ + \verb$\onslide<...>{text}$ Same, but when hidden \verb$text$ still takes space. + \verb$\visible<...>{text}$ Same. + \verb$\uncover<...>{text}$ Same, but also handle transparency. + \verb$\invisible<...>{text}$ Opposite of \verb$\visible$ + \verb$\alt<...>{text1}{text2}$ Alternates between \verb$text1$ and \verb$text2$ for\verb$ <...>$. + \verb$\temporal<...>{before}{inside}{after}$ Alternate between three texts depending on slide index before, inside or after the range of \verb$<...>$. + For the commands \verb$\only$ and \verb$\alt$ the \verb$<...>$ can also be after the text. + Then \verb$\only$ can be used to make commands \verb$<...>$-aware (§9.3) like in: + \verb$\newcommand{\myblue}{\only{\color{blue}}}$ + \verb$\myblue<2> This text is blue only on slide 2.$ + Finally, \verb$\only$ and \verb$\onslide$ without text argument work as toogles. + Much more options, described in §9.4 to 9.6 + \end{frame} + + % FRAME from https://www.edpif.org/documents/latex/intermediate/beamer/latex-int-beamer_handout.pdf + \begin{frame}[fragile]{Action specifications} + Inside \verb$<...>$ it is possible to add some action specifications + Action are specified after the slide range \& a | and followed by @ and the target slide or range. + For example one can write: + \verb$\item<3-|alert@4> Shown from slide 3 on, alerted on slide 4.$ + which set the \verb$\alert$ for item 3 only in slide 4. + Actions can be defined for \verb$\item$, \verb$\action$, \verb$\begin{actionenv}\verb$ + and the block environments and the possible actions are by default, + alert, uncover, only, visible, invisible, but other can be + defined by the user. See manual § 9.6.3 + Simple example using uncover with specified transparency: + \begin{verbatim} + \setbeamercovered{transparent=30} + \begin{itemize}[<+-|uncover@+>] + \item first + \item second + \item third + \end{itemize} + \end{verbatim} + \end{frame} + + % FRAME + \begin{frame}{Figures} + \begin{figure} + \centering + \newcounter{density} + \setcounter{density}{20} + \begin{tikzpicture} + \def\couleur{alerted text.fg} + \path[coordinate] (0,0) coordinate(A) + ++( 90:5cm) coordinate(B) + ++(0:5cm) coordinate(C) + ++(-90:5cm) coordinate(D); + \draw[fill=\couleur!\thedensity] (A) -- (B) -- (C) --(D) -- cycle; + \foreach \x in {1,...,40}{% + \pgfmathsetcounter{density}{\thedensity+20} + \setcounter{density}{\thedensity} + \path[coordinate] coordinate(X) at (A){}; + \path[coordinate] (A) -- (B) coordinate[pos=.10](A) + -- (C) coordinate[pos=.10](B) + -- (D) coordinate[pos=.10](C) + -- (X) coordinate[pos=.10](D); + \draw[fill=\couleur!\thedensity] (A)--(B)--(C)-- (D) -- cycle; + } + \end{tikzpicture} + \caption{Rotated square with Tikz package from + \href{http://www.texample.net/tikz/examples/rotated-polygons/}{texample.net}.} + \end{figure} + \end{frame} + + % FRAME + \begin{frame}{Tables} + \begin{table} + \centering + \caption{Largest cities in the world (source: Wikipedia)} + \begin{tabular}{@{} lr @{}} + \toprule + City & Population\\ + \midrule + Mexico City & 20,116,842\\ + Shanghai & 19,210,000\\ + Peking & 15,796,450\\ + Istanbul & 14,160,467\\ + \bottomrule + \end{tabular} + \end{table} + \end{frame} + + % FRAME + \begin{frame}{Blocks} + Three different block environments are pre-defined. + + \begin{block}{Default} + Block content. + \end{block} + + \begin{alertblock}{Alert} + Block content. + \end{alertblock} + + \begin{exampleblock}{Example} + Block content. + \end{exampleblock} + \end{frame} + + % FRAME + \begin{frame}{Math} + \begin{equation} + e = \lim_{n\to \infty} \left(1 + \frac{1}{n}\right)^n + \end{equation} + \end{frame} + + % FRAME + \begin{frame}{Line plots} + \begin{figure} + \centering + \begin{tikzpicture} + \begin{axis}[ + width=0.9\textwidth, + height=6cm, + ] + + \addplot {sin(deg(x))}; + \addplot+[samples=100] {sin(deg(2*x))}; + + \end{axis} + \end{tikzpicture} + \caption{A nice sinus plot with Tikz.} + \end{figure} + \end{frame} + + % FRAME + \begin{frame}{Bar charts} + \begin{figure} + \centering + \begin{tikzpicture} + \begin{axis}[ + ybar, + xlabel={Foo}, + ylabel={Bar}, + width=0.9\textwidth, + height=6cm, + nodes near coords, + nodes near coords align={vertical}, + ] + + \addplot plot coordinates {(1, 20) (2, 25) (3, 22.4) (4, 12.4)}; + \addplot plot coordinates {(1, 18) (2, 24) (3, 23.5) (4, 13.2)}; + \addplot plot coordinates {(1, 10) (2, 19) (3, 25) (4, 15.2)}; + + \legend{lorem, ipsum, dolor} + + \end{axis} + \end{tikzpicture} + \caption{A nice bar chart with Tikz.} + \end{figure} + \end{frame} + + % FRAME + \begin{frame}{Quotes} + \begin{quote} + Veni, Vidi, Vici + \end{quote} + from Julius Caesar. + \end{frame} + + % FRAME + \begin{frame}[fragile]{References} + Some references to showcase \verb|[allowframebreaks]| on next slide~\cite{Knuth92,ConcreteMath,Simpson,Er01,greenwade93} + \end{frame} + + % % FRAME + % \begin{frame}{References} + % \bibliography{pres} + % \bibliographystyle{abbrv} + % \end{frame} + + % FRAME + \begin{frame}[allowframebreaks]{References} + \begin{thebibliography}{1} + + \bibitem{Er01} + P.~Erd{\H o}s. + \newblock A selection of problems and results in combinatorics. + \newblock In {\em Recent trends in combinatorics (Matrahaza, 1995)}, pages 1--6. Cambridge Univ. Press, Cambridge, 1995. + + \bibitem{ConcreteMath} + R.~Graham, D.~Knuth, and O.~Patashnik. + \newblock {\em Concrete mathematics}. + \newblock Addison-Wesley, Reading, MA, 1989. + + \bibitem{greenwade93} + G.~D. Greenwade. + \newblock The {C}omprehensive {T}ex {A}rchive {N}etwork ({CTAN}). + \newblock {\em TUGBoat}, 14(3):342--351, 1993. + + \bibitem{Knuth92} + D.~Knuth. + \newblock Two notes on notation. + \newblock {\em Amer. Math. Monthly}, 99:403--422, 1992. + + \bibitem{Simpson} + H.~Simpson. + \newblock Proof of the {R}iemann {H}ypothesis. + \newblock preprint (2003), available at \texttt{http://www.math.drofnats.edu/riemann.ps}, 2003. + + \end{thebibliography} + \end{frame} + +\end{document} diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/section-Conclusion.tex b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/section-Conclusion.tex new file mode 100644 index 0000000000..6495a72d43 --- /dev/null +++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/section-Conclusion.tex @@ -0,0 +1,39 @@ +\documentclass[aspectratio=169]{beamer} +\usetheme{gotham} + + \usepackage{appendixnumberbeamer} + \usepackage[scale=2]{ccicons} + \newcommand{\themename}{\textbf{\textsc{Gotham}}} + + +\begin{document} + +\section{Conclusion} + + % FRAME + \begin{frame}{Summary} + Get the source of this theme and the demo presentation from + + \begin{center}\url{https://gitlab.com/RomainNOEL/beamertheme-gotham}\end{center} + + The theme \emph{itself} is licensed under a \href{http://creativecommons.org/licenses/by-sa/4.0/}{Creative Commons Attribution-ShareAlike 4.0 International License}. + \begin{center} \ccbysa \end{center} + \end{frame} + + % FRAME + \begin{standoutenv} + \begin{frame}[fragile] + The final slide using the standout style with command: + \begin{verbatim} + \begin{frame}[standout, plain]{Thank You !} + Questions ? + \end{frame } + \end{verbatim} + + \begin{center} + Et voilà ! + \end{center} + \end{frame} + \end{standoutenv} + +\end{document} diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/section-Gotham.tex b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/section-Gotham.tex new file mode 100644 index 0000000000..4c237c99d4 --- /dev/null +++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/section-Gotham.tex @@ -0,0 +1,419 @@ +\documentclass[aspectratio=169]{beamer} +\usetheme{gotham} + + \usepackage{standalone} + \usepackage{tikz} + \usepackage{pgfplots} + \usepackage{tabularray} % Typeset tabulars and arrays (contains equivalent of longtable, booktabs and dcolumn at least) + \UseTblrLibrary{booktabs} % to load extra commands from booktabs + \usepackage{changepage} + \usepackage{minted} + \definecolor{codeback}{rgb}{0.90,0.91,0.92} + \definecolor{codebackdark}{rgb}{0.10,0.11,0.12} + + \newcommand{\famName}[1]{\textsc{#1}} + \newcommand{\themename}{\textbf{\textsc{Gotham}}} + + +\begin{document} + +\section{Gotham Theme} + + % FRAME + \begin{frame}[fragile]{Gotham package} + + The \themename{} theme is a Beamer theme with a minimal-ish visual style largely inspired by the \href{https://github.com/matze/mtheme}{\textsc{Metropolis} Beamer Theme} by Matthias \famName{Vogelgesang} (and some other Beamer themes). + + Yet, \themename{} is highly extendable and versatile. + \bigskip + + First, enable the theme by classically loading it: + + \begin{minted}{tex} + \documentclass{beamer} + \usetheme{gotham} + \end{minted} + + Then, all the customization can be performed at any moment in the presentation using: + + \begin{minted}{tex} + \gothamset{<option>=...} + \end{minted} + \end{frame} + + +\subsection{Fonts} + + % FRAME + \begin{frame}[fragile]{Gotham title formats} + Note, that you have to have Mozilla's \emph{Fira Sans} font and XeTeX or LuaTeX installed to enjoy this wonderful typography. + + \begin{columns}[T,onlytextwidth] + \column{0.49\textwidth} + \themename{} supports 4 different title formats \mintinline{tex}|\gothamset{format frametitle=}| + \begin{itemize} + \item regular + \item \MakeLowercase{Lower} + \item \MakeUppercase{Upper} + \item \MakeTitlecase{Title Case} + \end{itemize} + \column{0.49\textwidth} + \themename{} supports 3 different title shape \mintinline{tex}|\gothamset{shape frametitle=...}|: + \begin{itemize} + \item regular + \item \textsc{Small caps} + \item \textit{italic} + \end{itemize} + \end{columns} + + \vspace{2em} + They can either be set at once for every title type or individually. + \end{frame} + + { \gothamset{format frametitle=upper, shape frametitle=italic} + % FRAME + \begin{frame}{Titles: Upper and italic} + This frame uses the title format options: \mintinline{tex}|format frametitle=upper|, \mintinline{tex}|shape frametitle=italic|. + \end{frame} + } + + { \gothamset{shape frametitle=smallcaps, format frametitle=titlecase} + % FRAME + \begin{frame}{Titles: Small caps and titlecase} + This frame uses the title format options: \mintinline{tex}|shape frametitle=smallcaps|, \mintinline{tex}|format frametitle=titlecase|. + + \begin{alertblock}{Potential Problems} + Be aware that not every font supports small caps. + If for example you typeset your presentation with pdfTeX and the Computer Modern Sans Serif font, every text in \mintinline{tex}{smallcaps} will be typeset with the Computer Modern Serif font instead. + Please refer to the documentation if you consider using it. + + As a rule of thumb: just use it for plaintext-only titles. + \end{alertblock} + \end{frame} + } + + { \gothamset{format frametitle=lower} + % FRAME + \begin{frame}{Titles: LOWER and regular} + This frame uses the title format options: \mintinline{tex}{format frametitle=lower}, \mintinline{tex}{shape frametitle=regular}. + \end{frame} + } + + +\subsection{Colors} + + { \gothamset{background=dark} + % FRAME + \begin{frame}[fragile]{Presentation style via background color} + The color mode (a.k.a. background color) can be changed using: + \begin{minted}[bgcolor=codebackdark]{tex} + \gothamset{background=dark | light | transparent} + \end{minted} + \end{frame} + } + + % FRAME + \begin{frame}[fragile]{Blocks} + Three different block environments are pre-defined and may be styled with an optional background color. + + \begin{columns}[T,onlytextwidth] + \column{0.3\textwidth} + \begin{minted}{tex} + \gothamset{ + block=native} + \end{minted} + + \gothamset{block=native} + \begin{block}{Default} + Block content. + \end{block} + + \begin{alertblock}{Alert} + Block content. + \end{alertblock} + + \begin{exampleblock}{Example} + Block content. + \end{exampleblock} + + \column{0.3\textwidth} + + \gothamset{block=transparent} + \begin{minted}{tex} + \gothamset{ + block=transparent} + \end{minted} + + \begin{block}{Default} + Block content. + \end{block} + + \begin{alertblock}{Alert} + Block content. + \end{alertblock} + + \begin{exampleblock}{Example} + Block content. + \end{exampleblock} + + \column{0.3\textwidth} + + \gothamset{block=fill} + \begin{minted}{tex} + \gothamset{ + block=fill} + \end{minted} + + \begin{block}{Default} + Block content. + \end{block} + + \begin{alertblock}{Alert} + Block content. + \end{alertblock} + + \begin{exampleblock}{Example} + Block content. + \end{exampleblock} + + \end{columns} + \end{frame} + + {\gothamset{colorset=red} + % FRAME + \begin{frame}[fragile]{Color customization} + The color theme can be used only in preamble with \mintinline{tex}|\usecolortheme{wolverine}| and without guarantees on the visual aspect. + + \themename{} offers predefined color setup at any time through \mintinline{tex}|\gothamset{colorset=red}| + + Otherwise, the colors can be changed manually using: + \begin{minted}{tex} + \colorlet{colorPale}{gPaleYell} % BG in light/normal mode + \colorlet{colorDark}{gDarkBlack} % FG in light/normal mode + \colorlet{colorA}{gDarkTeal} % frametitle, standin.out, + \colorlet{colorAreversed}{gLightTeal} % frametitle, standin.in, + \colorlet{colorB}{gMidGrey} % gray BG : progress bar, blocks + \colorlet{colorC}{gDeepYellOr} % progress bar + \colorlet{colorD}{gLightOrange} % alert + \colorlet{colorE}{gLightGreen} % example + \end{minted} + \end{frame} + } + + +\subsection{Inner} + + % FRAME + \begin{frame}[fragile]{Title page} + \themename{} offers the possibility to adapt the title page layout (printed with \mintinline{tex}|\maketitle| or \mintinline{tex}|\titlepage|). + This can be achieved using: + \begin{minted}{tex} + \defbeamertemplate{title page}{your name}{your defintion} + \gothamset{title page= your name} + \end{minted} + + \themename{} also predefined several templates such as: + \mintinline{tex}$gotham normal$ | \mintinline{tex}$gotham splitvert$ | \mintinline{tex}$gotham dividedpic$ | \mintinline{tex}$gotham reversed$ + \end{frame} + + % FRAME + \begin{frame}[fragile]{Table of contents} + \themename{} comes with the possibility to apply different styles for your table of contents (ToC) page. + You can define your own ToC style as it follows: + \begin{minted}{tex} + \defbeamertemplate{toc page}{your name}{your def} + \gothamset{tocframe template= your name} + \end{minted} + Then, referring to this template using the frame option \mintinline{tex}|[toc]| in your presentation: + \begin{minted}{tex} + \begin{frame}[toc]{Table of contents} + \tableofcontents%[hideallsubsections] + \end{frame } + \end{minted} + + Or using one of the \themename{} predefined templates, such as: \mintinline{tex}$gotham simple | gotham bullet$ + \end{frame} + + % FRAME + \begin{frame}[fragile]{Sections} + \themename{} provides a multiple options to tune sections (respectively \mintinline{tex}|part|, \mintinline{tex}|section|, \mintinline{tex}|subsection| and \mintinline{tex}|subsubsection|). + + The section command \mintinline{tex}|\section{Elements}| from Beamer will appear very different. + The section page will appear or disappear thanks to: \mintinline{tex}$\gothamset{sectionframe default=<on|off>}$, while its layout (when appearing) is controlled by: + \begin{minted}{tex} + \defbeamertemplate{part|sub|subsub|section frame} + {your name}{your def} + \gothamset{sectionframe template= your name} + \end{minted} + + \themename{} predefined template are: \mintinline{tex}$gotham progressbar | gotham simple |$ \mintinline{tex}$gotham splitvert progressbar |$ \mintinline{tex}$gotham splitvert simple | gotham progressvert$ + \end{frame} + + % FRAME + \begin{frame}[fragile]{Sections contents} + After the section page, you can (de)activate a page with a table of contents for the section using \mintinline{tex}$\gothamset{sectiontocframe default=<on|off>}$, and its layout is controlled by: + \begin{minted}{tex} + \defbeamertemplate{toc subsection frame}{your name}{your def} + \gothamset{sectionframe template= your name} + \end{minted} + + \themename{} predefined template are: \mintinline{tex}$gotham simple | gotham bullet$ + \end{frame} + + % FRAME + \begin{frame}[fragile, watermark]{Watermark} + + With \themename{} you can locally or globally add watermark to your slides by using: + \begin{minted}{tex} + \defbeamertemplate{background}{watermark/your name}{your def} + \gothamset{watermark template= your name} + \end{minted} + + Then, this watermark can be turned on locally using \mintinline{tex}|\begin{frame}[watermark]| or globally with \mintinline{tex}|\gothamset{watermark default= on}| . + \end{frame} + + % FRAME + \begin{standinenv} + \begin{frame}[fragile]{Standin} + + \themename{} comes with 2 environments/special layouts named \mintinline{tex}|standin| and \mintinline{tex}|standout|. + These special layouts can be used to emphasize some content or last slide\textellipsis + + This layout can be turned on using \mintinline{tex}|\begin{frame}[standin]| or using the dedicated environment (\mintinline{tex}|\begin{standinenv}\begin{frame}...\end{frame}\end{standinenv}|). + + Note that the background can also be tuned using: + \begin{minted}{tex} + \defbeamertemplate{background canvas}{standin/name}{your def} + \gothamset{standin BG template= name} + \end{minted} + + \end{frame} + \end{standinenv} + + % FRAME + \begin{frame}[standout, watermark]{Standout} + Here is an example of standout (working as standin), which can be combined with a watermark. + + Another difference, apart the obvious color change is the font size and series. + \end{frame} + + +\subsection{Outer} + + {\setbeamertemplate{frame footer}{My custom footer} + % FRAME + \begin{frame}[fragile]{Frame footer} + \themename{} defines a custom Beamer template to add a text to the footer. + It can be set via + \begin{minted}{tex} + \setbeamertemplate{frame footer}{My custom footer} + \end{minted} + + Even after redefining (or not) your frame footer template, you can locally remove it with the frame option \mintinline{tex}|\begin{frame}[nofooter]|. + \end{frame} + } + + \title[your shorttitle]{Gotham} + \date[shortdate]{\today} + \author[your shortauthor name]{Romain NOËL} + % FRAME + \begin{frame}[fragile, rotateFooter]{rotateFooter} + The default footer from \themename{}, it displays the \mintinline{tex}|shortdate|, \mintinline{tex}|shorttitle| and \mintinline{tex}|shortauthor|. + So by filling these fields in your document setup, you will see them appear in your footer: + \begin{minted}{tex} + \title[your shorttitle]{Your title} + \date[shortdate]{\today} + \author[your shortauthor name]{John DOE} + \end{minted} + + Since we always need some extra space on some frames that would like to overlay a bit the footer, \themename{}'s footer also offers possibility to be put locally on the side using \mintinline{tex}|\begin{frame}[rotateFooter]|, or globally with + \begin{minted}{tex} + \gothamset{rotateFooter default=on} + \end{minted} + If it has set globally, it can be deactivated locally with the frame option \mintinline{tex}|\begin{frame}[norotateFooter]|. + \end{frame} + + \title[]{Gotham} + \date[]{\today} + \renewcommand{\gothamRightFiligrane}{% + \rotatebox{90}{gotham right filigrane pattern} + } + % FRAME + \begin{frame}[edging, fragile]{Edging} + \themename{} has two hook commands, \mintinline{tex}|\gothamRightFiligrane| and \mintinline{tex}|\gothamLeftFiligrane|, that can be redefined to customize what to display in the edgings (a.k.a. filigrane, a.k.a. sidebar). + As an example, one could do: + \begin{minted}{tex} + \renewcommand{\gothamRightFiligrane}{% + \rotatebox{90}{gotham right filigrane pattern} + } + \end{minted} + + Then, to set if it should be displayed or not, globally + \begin{minted}{tex} + \gothamset{edging default=on} + \end{minted} + or locally with the frame option \mintinline{tex}|\begin{frame}[edging]| or \mintinline{tex}|\begin{frame}[noedging]|. + \end{frame} + + % FRAME + % \begin{nofootlineenv} + \begin{frame}[fragile,noedging,nofooter]{Really wide contents} + \begin{adjustwidth}{-2em}{-2em} + If you want a really wide content in your frame, you can change the size of your margin (requires \mintinline{tex}|\usepackage{changepage}| in your preamble). + You can also suppress the edging (\mintinline{tex}|[noedging]|) and footer (\mintinline{tex}|[nofooter]|) or even more radically footline (\mintinline{tex}|[nofootline]|). + + Here is an example combining them: + \begin{minted}{tex} + \begin{frame}[noedging,nofootline]{extended frame} + \begin{adjustwidth}{-2em}{-2em}% 2em extra to the left and 2em for right margin. + wide content + \end{adjustwidth} + \end{frame } + \end{minted} + \end{adjustwidth} + \end{frame} + % \end{nofootlineenv} + + {% + \renewcommand{\gothamInstituteLogoSquare}[1][4ex]{% + \includegraphics[height=#1]{gotham-logo.pdf} + } + \logo{extra LOGO} + % FRAME + \begin{frame}[fragile]{Frametitle} + \framesubtitle{with a subtitle} + The frametile template brought by \themename{} is relatively classic: it supports \mintinline{tex}|\subframetitle| and frame continuation (with \mintinline{tex}|[allowframebreaks]|) through templates that can be tuned. + Nevertheless, it the frametitle template also includes a hook for your institute logo in the top right corner, leaving the command \mintinline{tex}|\logo{}| free for your extra logos. + + So, one can have both logos using: + \begin{minted}{tex} + \renewcommand{\gothamInstituteLogoSquare}[1][4ex]{ + \includegraphics[height=#1]{gotham-logo.pdf} + } + \logo{extra LOGO} + \end{minted} + \end{frame} + } + + \author[]{Romain NOËL} + {\gothamset{progressbar position=left, progressbar style= rounded box, progressbar advancement= brlt, numbering= circle} + % FRAME + \begin{frame}[fragile]{Numbering and progressbar} + + \themename{} theme can numbering your frames in the bottom right corner using different styles. + You can also decide to use a progression bar to indicate how much of your presentation remains. + + The setup of numbering and progression bar can be performed through: + \begin{minted}{tex} + \gothamset{numbering= totalframenumber, progressbar position=foot} + \end{minted} + + Numbering available options are: \mintinline{tex}$none | framenumber | totalframenumber | appendixframenumber | pagenumber $ \mintinline{tex}$| totalpagenumber | circle$ + + Progressbar position available options are: \mintinline{tex}$none | head | frametitle | foot | circlehead | left | right$ + \end{frame} + } + + +\end{document} +%EoF
\ No newline at end of file diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-light/README b/macros/latex/contrib/beamer-contrib/themes/beamertheme-light/README index 780eaab92f..d6df2f1415 100644 --- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-light/README +++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-light/README @@ -5,8 +5,9 @@ A usage guide is given in beamertheme-light-example.pdf. Please send enhancements and corrections to: Fabien Vergnet, f.j.vergnet@gmail.com, or -Vivien Goepp, vivien.goepp@gmail.com +Vivien Goepp, vivien.goepp@gmail.com, or +निरंजन, hi.niranjan@pm.me -2019/01/29 -Package version 1.0 +2024/12/09 +Package version 1.2 This package is licensed under the General Public License version 3 (GPL3). diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-light/beamertheme-light-example.pdf b/macros/latex/contrib/beamer-contrib/themes/beamertheme-light/beamertheme-light-example.pdf Binary files differindex 0a0fc47686..07e8fe943f 100644 --- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-light/beamertheme-light-example.pdf +++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-light/beamertheme-light-example.pdf diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-light/beamertheme-light-example.tex b/macros/latex/contrib/beamer-contrib/themes/beamertheme-light/beamertheme-light-example.tex index 95c794a14f..84da12364b 100644 --- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-light/beamertheme-light-example.tex +++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-light/beamertheme-light-example.tex @@ -1,12 +1,18 @@ +%%%%% Example for ``beamerthemelight'': a colored beamer theme %%%%% +%%%%% Authors: Fabien Vergnet and Vivien Goepp %%%%% +%%%%% Contact: f.j.vergnet@gmail.com and vivien.goepp@gmail.com %%%%% +%%%%% Special thanks to: निरंजन <hi.niranjan@pm.me> %%%%% +%%%%% Repository: https://github.com/goepp/beamertheme-light/ %%%%% +%%%%% Package version 1.2 (18/12/2024) %%%%% +%%%%% License: GNU General Public License, version 3 \documentclass[10pt, compress]{beamer} - -\usepackage[english]{babel} -\usepackage[green]{beamertheme-light} - +\usepackage{fontspec} +\newfontfamily\mrfnt[Script=Devanagari,Renderer=HarfBuzz]{Mukta-Regular.ttf} +\usetheme{light} \title[The package \texttt{light}]{Colored beamer layout \\ with \texttt{beamertheme-light}} -\author[F. Vergnet and V. Goepp]{F. Vergnet$^\dagger$ and V. Goepp$^{\ddagger}$} -\institute{$\dagger$ : LMO, Universit\'e Paris-Sud, Universit\'e Paris-Saclay, \\ $\ddagger$ : MAP5, Universit\'e Paris-Descartes} -\date{Package version 1.0 (29/01/2019)} +\author[F. Vergnet and V. Goepp and {\mrfnt निरंजन}]{F. Vergnet$^\dagger$ \and V. Goepp$^{\ddagger}$ \and {\mrfnt निरंजन}$^{\ast}$} +\institute{$\dagger$ : LMO, Universit\'e Paris-Sud, Universit\'e Paris-Saclay, \\ $\ddagger$ : MAP5, Universit\'e Paris-Descartes,\\$\ast$: {\mrfnt मà¥à¤‚बई विदà¥à¤¯à¤¾à¤ªà¥€à¤ , कालिना}} +\date{Package version 1.2 (2024/12/18)} \begin{document} diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-light/beamertheme-light.sty b/macros/latex/contrib/beamer-contrib/themes/beamertheme-light/beamertheme-light.sty index c2ceecc4b4..2a3a28fc43 100644 --- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-light/beamertheme-light.sty +++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-light/beamertheme-light.sty @@ -1,115 +1,16 @@ %%%%% Package ``beamertheme-light'': a colored beamer theme %%%%% %%%%% Authors: Fabien Vergnet and Vivien Goepp %%%%% %%%%% Contact: f.j.vergnet@gmail.com and vivien.goepp@gmail.com %%%%% -%%%%% Package version 1.0 (29/01/2019) %%%%% - -\NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{light}[2019/01/29 Beamer style package] - -\mode<presentation> - -%%%%% Define colors %%%%% -% Defaut: -\definecolor{vertfonce}{rgb}{0.20,0.43,0.09} -% Blue: -\definecolor{frenchblue}{rgb}{0.0, 0.45, 0.73} -\definecolor{sanddune}{rgb}{0.59, 0.44, 0.09} -% Purple: -\definecolor{darkmagenta}{rgb}{0.55, 0.0, 0.55} -\definecolor{byzantium}{rgb}{0.44, 0.16, 0.39} -\definecolor{sanddune}{rgb}{0.59, 0.44, 0.09} -% Beige: -\definecolor{darkpastelred}{rgb}{0.76, 0.23, 0.13} -\definecolor{desertsand}{rgb}{0.93, 0.79, 0.69} - -%%%%% Define body and title colors %%%%% -%% Foreground colors -\newcommand{\wordcolor}{vertfonce} % Text color -%% Optional colors -\DeclareOption{blue}{\renewcommand{\wordcolor}{frenchblue}} -\DeclareOption{red}{\renewcommand{\wordcolor}{darkpastelred}} -\DeclareOption{purple}{\renewcommand{\wordcolor}{darkmagenta}} -\DeclareOption*{\PackageWarning{descartes}{Unknown ‘\CurrentOption’}} -\ProcessOptions\relax - -%% Background colors -\newcommand{\strbg}{white!90!black} % Structure background color -\DeclareOption{blue}{\renewcommand{\strbg}{sanddune!15!white}} -\DeclareOption{red}{\renewcommand{\strbg}{desertsand!30!white}} -\DeclareOption{purple}{\renewcommand{\strbg}{byzantium!25!white}} -\DeclareOption*{\PackageWarning{descartes}{Unknown ‘\CurrentOption’}} -\ProcessOptions\relax - -%% Set colors -\setbeamercolor{title in head/foot}{fg=\wordcolor,bg=white!90!black} -\setbeamercolor{structure}{fg=\wordcolor,bg=\strbg} -\setbeamercolor{title}{fg=\wordcolor,bg=white} - -%%%%% Define title frame %%%%% -\defbeamertemplate*{title page}{customized}[1][] -{ - \vspace{1cm} - \usebeamerfont{title}\usebeamercolor[fg]{title}\center{\huge \inserttitle}\par - \center{\rule{0.6666\paperwidth}{0.02cm}\par} - \bigskip - \usebeamerfont{author}\usebeamercolor[black]{author}{\large \insertauthor}\\ - \bigskip - \usebeamerfont{institute}{\small \insertinstitute}\par - \bigskip - \vspace{1cm} - \usebeamerfont{date}{\small \insertdate}\par +%%%%% Special thanks to: निरंजन <hi.niranjan@pm.me> %%%%% +%%%%% Repository: https://github.com/goepp/beamertheme-light/ %%%%% +%%%%% Package version 1.2 (18/12/2024) %%%%% +%%%%% License: GNU General Public License, version 3 +\ProvidesPackage{beamertheme-light}[2024/12/09 v1.2] +\usetheme{light} +\PackageWarningNoLine{beamertheme-light}{% + You have issued \string usepackage{beamertheme-light}. + This method\MessageBreak of loading the "light" theme is + deprecated. Kindly use the\MessageBreak standard + \usetheme{light} command% } -%%%%% End define title frame %%%%% - -%%%%% Define footline %%%%% -\setbeamertemplate{footline} -{ - \leavevmode% - \hbox{% - \begin{beamercolorbox}[wd =.45\paperwidth, ht = 2.25ex, dp = 1ex, center]{author in head/foot}% - \usebeamerfont{author in head/foot}\colorbox{structure.bg}{\makebox[0.45\paperwidth]{\insertshortauthor}} - \end{beamercolorbox}% - \begin{beamercolorbox}[wd =.45\paperwidth, ht = 2.25ex, dp = 1ex, center]{title in head/foot}% - \usebeamerfont{title in head/foot}\colorbox{structure.bg}{\makebox[0.45\paperwidth]{\insertshorttitle}} - \end{beamercolorbox}% - \begin{beamercolorbox}[wd=.10\paperwidth, ht = 2.25ex, dp = 1ex, right]{date in head/foot}% - \usebeamerfont{date in head/foot}\colorbox{structure.bg}{\makebox[0.10\paperwidth]{ - \insertframenumber{} / \inserttotalframenumber\hspace*{2ex}}} - \end{beamercolorbox}}% - \vskip0pt% -} -%%%%% End define footline %%%%% - -%%%%% Define command for the "Thank you" frame -\newcommand{\thankframe}[1]{ -\setbeamercolor{background canvas}{fg = title.fg,bg = title.fg!50!black} -\setbeamertemplate{footline}{} -\begin{frame} - \center{\Huge \textcolor{white}{#1}} -\end{frame} -\setbeamercolor{structure}{fg = \wordcolor, bg = \strbg} -\setbeamercolor{background canvas}{fg = black,bg = white} -} -%%%%% End define command for the "Thank you" frame - -%% Rounded block (for definition, prop, theorems, etc...) -\setbeamertemplate{blocks}[rounded][shadow = true] - -%% No navigation symbols -\setbeamertemplate{navigation symbols}{} - -%% Redefine itemize -\setbeamercolor{item}{fg = title.fg, bg = title.fg} -\setbeamertemplate{itemize item}{{\tiny{\textbullet}}} - -%% Redefine the way the legend of a figure is written -\setbeamertemplate{caption}{\raggedright\scriptsize{\insertcaption}\par} - -%% To have "[number]" before any reference in bibliography -\setbeamertemplate{bibliography item}[text] - -%% Remove 1 from the counter (title frame is 0) -\addtocounter{framenumber}{-1} - -\mode -<all> +\endinput diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-light/beamerthemelight.sty b/macros/latex/contrib/beamer-contrib/themes/beamertheme-light/beamerthemelight.sty new file mode 100644 index 0000000000..34e5f972ea --- /dev/null +++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-light/beamerthemelight.sty @@ -0,0 +1,113 @@ +%%%%% Theme ``beamerthemelight'': a colored beamer theme %%%%% +%%%%% Authors: Fabien Vergnet and Vivien Goepp %%%%% +%%%%% Contact: f.j.vergnet@gmail.com and vivien.goepp@gmail.com %%%%% +%%%%% Special thanks to: निरंजन <hi.niranjan@pm.me> %%%%% +%%%%% Repository: https://github.com/goepp/beamertheme-light/ %%%%% +%%%%% Package version 1.2 (18/12/2024) %%%%% +%%%%% License: GNU General Public License, version 3 +\mode<presentation> + +%%%%% Define colors %%%%% +% Defaut: +\definecolor{vertfonce}{rgb}{0.20,0.43,0.09} +% Blue: +\definecolor{frenchblue}{rgb}{0.0, 0.45, 0.73} +\definecolor{sanddune}{rgb}{0.59, 0.44, 0.09} +% Purple: +\definecolor{darkmagenta}{rgb}{0.55, 0.0, 0.55} +\definecolor{byzantium}{rgb}{0.44, 0.16, 0.39} +\definecolor{sanddune}{rgb}{0.59, 0.44, 0.09} +% Beige: +\definecolor{darkpastelred}{rgb}{0.76, 0.23, 0.13} +\definecolor{desertsand}{rgb}{0.93, 0.79, 0.69} + +%%%%% Define body and title colors %%%%% +%% Foreground colors +\newcommand{\light@wordcolor}{vertfonce} % Text color +%% Optional colors +\DeclareOption{blue}{\renewcommand{\light@wordcolor}{frenchblue}} +\DeclareOption{red}{\renewcommand{\light@wordcolor}{darkpastelred}} +\DeclareOption{purple}{\renewcommand{\light@wordcolor}{darkmagenta}} +\DeclareOption*{\PackageWarning{descartes}{Unknown ‘\CurrentOption’}} +\ProcessOptions\relax + +%% Background colors +\newcommand{\light@strbg}{white!90!black} % Structure background color +\DeclareOption{blue}{\renewcommand{\light@strbg}{sanddune!15!white}} +\DeclareOption{red}{\renewcommand{\light@strbg}{desertsand!30!white}} +\DeclareOption{purple}{\renewcommand{\light@strbg}{byzantium!25!white}} +\DeclareOption*{\PackageWarning{descartes}{Unknown ‘\CurrentOption’}} +\ProcessOptions\relax + +%% Set colors +\setbeamercolor{title in head/foot}{fg=\light@wordcolor,bg=white!90!black} +\setbeamercolor{structure}{fg=\light@wordcolor,bg=\light@strbg} +\setbeamercolor{title}{fg=\light@wordcolor,bg=white} + +%%%%% Define title frame %%%%% +\defbeamertemplate*{title page}{customized}[1][]% +{% + \vspace{1cm}% + \usebeamerfont{title}\usebeamercolor[fg]{title}\center{\huge \inserttitle}\par + \center{\rule{0.6666\paperwidth}{0.02cm}\par}% + \bigskip + \usebeamerfont{author}\usebeamercolor[black]{author}{\large \insertauthor}\\% + \bigskip + \usebeamerfont{institute}{\small \insertinstitute}\par + \bigskip + \vspace{1cm}% + \usebeamerfont{date}{\small \insertdate}\par +} +%%%%% End define title frame %%%%% + +%%%%% Define footline %%%%% +\setbeamertemplate{footline}% +{% + \leavevmode + \hbox{% + \begin{beamercolorbox}[wd =.45\paperwidth, ht = 2.25ex, dp = 1ex, center]{author in head/foot}% + \usebeamerfont{author in head/foot}\colorbox{structure.bg}{\makebox[0.45\paperwidth]{\insertshortauthor}}% + \end{beamercolorbox}% + \begin{beamercolorbox}[wd =.45\paperwidth, ht = 2.25ex, dp = 1ex, center]{title in head/foot}% + \usebeamerfont{title in head/foot}\colorbox{structure.bg}{\makebox[0.45\paperwidth]{\insertshorttitle}}% + \end{beamercolorbox}% + \begin{beamercolorbox}[wd=.10\paperwidth, ht = 2.25ex, dp = 1ex, right]{date in head/foot}% + \usebeamerfont{date in head/foot}\colorbox{structure.bg}{\makebox[0.10\paperwidth]{% + \insertframenumber{} / \inserttotalframenumber\hspace*{2ex}}}% + \end{beamercolorbox}}% + \vskip0pt\relax +} +%%%%% End define footline %%%%% + +%%%%% Define command for the "Thank you" frame +\newcommand{\thankframe}[1]{% +\setbeamercolor{background canvas}{fg = title.fg,bg = title.fg!50!black}% +\setbeamertemplate{footline}{}% +\begin{frame}% + \center{\Huge \textcolor{white}{#1}}% +\end{frame}% +\setbeamercolor{structure}{fg = \light@wordcolor, bg = \light@strbg}% +\setbeamercolor{background canvas}{fg = black,bg = white}% +} +%%%%% End define command for the "Thank you" frame + +%% Rounded block (for definition, prop, theorems, etc...) +\setbeamertemplate{blocks}[rounded][shadow = true] + +%% No navigation symbols +\setbeamertemplate{navigation symbols}{} + +%% Redefine itemize +\setbeamercolor{item}{fg = title.fg, bg = title.fg} +\setbeamertemplate{itemize item}{{\tiny{\textbullet}}} + +%% Redefine the way the legend of a figure is written +\setbeamertemplate{caption}{\raggedright\scriptsize{\insertcaption}\par} + +%% To have "[number]" before any reference in bibliography +\setbeamertemplate{bibliography item}[text] + +%% Remove 1 from the counter (title frame is 0) +\addtocounter{framenumber}{-1} + +\mode<all> diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-mirage/LICENSE b/macros/latex/contrib/beamer-contrib/themes/beamertheme-mirage/LICENSE new file mode 100644 index 0000000000..2244313901 --- /dev/null +++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-mirage/LICENSE @@ -0,0 +1,416 @@ +The LaTeX Project Public License +=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- + +LPPL Version 1.3c 2008-05-04 + +Copyright 1999 2002-2008 LaTeX3 Project + Everyone is allowed to distribute verbatim copies of this + license document, but modification of it is not allowed. + + +PREAMBLE +======== + +The LaTeX Project Public License (LPPL) is the primary license under +which the LaTeX kernel and the base LaTeX packages are distributed. + +You may use this license for any work of which you hold the copyright +and which you wish to distribute. This license may be particularly +suitable if your work is TeX-related (such as a LaTeX package), but +it is written in such a way that you can use it even if your work is +unrelated to TeX. + +The section `WHETHER AND HOW TO DISTRIBUTE WORKS UNDER THIS LICENSE', +below, gives instructions, examples, and recommendations for authors +who are considering distributing their works under this license. + +This license gives conditions under which a work may be distributed +and modified, as well as conditions under which modified versions of +that work may be distributed. + +We, the LaTeX3 Project, believe that the conditions below give you +the freedom to make and distribute modified versions of your work +that conform with whatever technical specifications you wish while +maintaining the availability, integrity, and reliability of +that work. If you do not see how to achieve your goal while +meeting these conditions, then read the document `cfgguide.tex' +and `modguide.tex' in the base LaTeX distribution for suggestions. + + +DEFINITIONS +=========== + +In this license document the following terms are used: + + `Work' + Any work being distributed under this License. + + `Derived Work' + Any work that under any applicable law is derived from the Work. + + `Modification' + Any procedure that produces a Derived Work under any applicable + law -- for example, the production of a file containing an + original file associated with the Work or a significant portion of + such a file, either verbatim or with modifications and/or + translated into another language. + + `Modify' + To apply any procedure that produces a Derived Work under any + applicable law. + + `Distribution' + Making copies of the Work available from one person to another, in + whole or in part. Distribution includes (but is not limited to) + making any electronic components of the Work accessible by + file transfer protocols such as FTP or HTTP or by shared file + systems such as Sun's Network File System (NFS). + + `Compiled Work' + A version of the Work that has been processed into a form where it + is directly usable on a computer system. This processing may + include using installation facilities provided by the Work, + transformations of the Work, copying of components of the Work, or + other activities. Note that modification of any installation + facilities provided by the Work constitutes modification of the Work. + + `Current Maintainer' + A person or persons nominated as such within the Work. If there is + no such explicit nomination then it is the `Copyright Holder' under + any applicable law. + + `Base Interpreter' + A program or process that is normally needed for running or + interpreting a part or the whole of the Work. + + A Base Interpreter may depend on external components but these + are not considered part of the Base Interpreter provided that each + external component clearly identifies itself whenever it is used + interactively. Unless explicitly specified when applying the + license to the Work, the only applicable Base Interpreter is a + `LaTeX-Format' or in the case of files belonging to the + `LaTeX-format' a program implementing the `TeX language'. + + + +CONDITIONS ON DISTRIBUTION AND MODIFICATION +=========================================== + +1. Activities other than distribution and/or modification of the Work +are not covered by this license; they are outside its scope. In +particular, the act of running the Work is not restricted and no +requirements are made concerning any offers of support for the Work. + +2. You may distribute a complete, unmodified copy of the Work as you +received it. Distribution of only part of the Work is considered +modification of the Work, and no right to distribute such a Derived +Work may be assumed under the terms of this clause. + +3. You may distribute a Compiled Work that has been generated from a +complete, unmodified copy of the Work as distributed under Clause 2 +above, as long as that Compiled Work is distributed in such a way that +the recipients may install the Compiled Work on their system exactly +as it would have been installed if they generated a Compiled Work +directly from the Work. + +4. If you are the Current Maintainer of the Work, you may, without +restriction, modify the Work, thus creating a Derived Work. You may +also distribute the Derived Work without restriction, including +Compiled Works generated from the Derived Work. Derived Works +distributed in this manner by the Current Maintainer are considered to +be updated versions of the Work. + +5. If you are not the Current Maintainer of the Work, you may modify +your copy of the Work, thus creating a Derived Work based on the Work, +and compile this Derived Work, thus creating a Compiled Work based on +the Derived Work. + +6. If you are not the Current Maintainer of the Work, you may +distribute a Derived Work provided the following conditions are met +for every component of the Work unless that component clearly states +in the copyright notice that it is exempt from that condition. Only +the Current Maintainer is allowed to add such statements of exemption +to a component of the Work. + + a. If a component of this Derived Work can be a direct replacement + for a component of the Work when that component is used with the + Base Interpreter, then, wherever this component of the Work + identifies itself to the user when used interactively with that + Base Interpreter, the replacement component of this Derived Work + clearly and unambiguously identifies itself as a modified version + of this component to the user when used interactively with that + Base Interpreter. + + b. Every component of the Derived Work contains prominent notices + detailing the nature of the changes to that component, or a + prominent reference to another file that is distributed as part + of the Derived Work and that contains a complete and accurate log + of the changes. + + c. No information in the Derived Work implies that any persons, + including (but not limited to) the authors of the original version + of the Work, provide any support, including (but not limited to) + the reporting and handling of errors, to recipients of the + Derived Work unless those persons have stated explicitly that + they do provide such support for the Derived Work. + + d. You distribute at least one of the following with the Derived Work: + + 1. A complete, unmodified copy of the Work; + if your distribution of a modified component is made by + offering access to copy the modified component from a + designated place, then offering equivalent access to copy + the Work from the same or some similar place meets this + condition, even though third parties are not compelled to + copy the Work along with the modified component; + + 2. Information that is sufficient to obtain a complete, + unmodified copy of the Work. + +7. If you are not the Current Maintainer of the Work, you may +distribute a Compiled Work generated from a Derived Work, as long as +the Derived Work is distributed to all recipients of the Compiled +Work, and as long as the conditions of Clause 6, above, are met with +regard to the Derived Work. + +8. The conditions above are not intended to prohibit, and hence do not +apply to, the modification, by any method, of any component so that it +becomes identical to an updated version of that component of the Work as +it is distributed by the Current Maintainer under Clause 4, above. + +9. Distribution of the Work or any Derived Work in an alternative +format, where the Work or that Derived Work (in whole or in part) is +then produced by applying some process to that format, does not relax or +nullify any sections of this license as they pertain to the results of +applying that process. + +10. a. A Derived Work may be distributed under a different license + provided that license itself honors the conditions listed in + Clause 6 above, in regard to the Work, though it does not have + to honor the rest of the conditions in this license. + + b. If a Derived Work is distributed under a different license, that + Derived Work must provide sufficient documentation as part of + itself to allow each recipient of that Derived Work to honor the + restrictions in Clause 6 above, concerning changes from the Work. + +11. This license places no restrictions on works that are unrelated to +the Work, nor does this license place any restrictions on aggregating +such works with the Work by any means. + +12. Nothing in this license is intended to, or may be used to, prevent +complete compliance by all parties with all applicable laws. + + +NO WARRANTY +=========== + +There is no warranty for the Work. Except when otherwise stated in +writing, the Copyright Holder provides the Work `as is', without +warranty of any kind, either expressed or implied, including, but not +limited to, the implied warranties of merchantability and fitness for a +particular purpose. The entire risk as to the quality and performance +of the Work is with you. Should the Work prove defective, you assume +the cost of all necessary servicing, repair, or correction. + +In no event unless required by applicable law or agreed to in writing +will The Copyright Holder, or any author named in the components of the +Work, or any other party who may distribute and/or modify the Work as +permitted above, be liable to you for damages, including any general, +special, incidental or consequential damages arising out of any use of +the Work or out of inability to use the Work (including, but not limited +to, loss of data, data being rendered inaccurate, or losses sustained by +anyone as a result of any failure of the Work to operate with any other +programs), even if the Copyright Holder or said author or said other +party has been advised of the possibility of such damages. + + +MAINTENANCE OF THE WORK +======================= + +The Work has the status `author-maintained' if the Copyright Holder +explicitly and prominently states near the primary copyright notice in +the Work that the Work can only be maintained by the Copyright Holder +or simply that it is `author-maintained'. + +The Work has the status `maintained' if there is a Current Maintainer +who has indicated in the Work that they are willing to receive error +reports for the Work (for example, by supplying a valid e-mail +address). It is not required for the Current Maintainer to acknowledge +or act upon these error reports. + +The Work changes from status `maintained' to `unmaintained' if there +is no Current Maintainer, or the person stated to be Current +Maintainer of the work cannot be reached through the indicated means +of communication for a period of six months, and there are no other +significant signs of active maintenance. + +You can become the Current Maintainer of the Work by agreement with +any existing Current Maintainer to take over this role. + +If the Work is unmaintained, you can become the Current Maintainer of +the Work through the following steps: + + 1. Make a reasonable attempt to trace the Current Maintainer (and + the Copyright Holder, if the two differ) through the means of + an Internet or similar search. + + 2. If this search is successful, then enquire whether the Work + is still maintained. + + a. If it is being maintained, then ask the Current Maintainer + to update their communication data within one month. + + b. If the search is unsuccessful or no action to resume active + maintenance is taken by the Current Maintainer, then announce + within the pertinent community your intention to take over + maintenance. (If the Work is a LaTeX work, this could be + done, for example, by posting to comp.text.tex.) + + 3a. If the Current Maintainer is reachable and agrees to pass + maintenance of the Work to you, then this takes effect + immediately upon announcement. + + b. If the Current Maintainer is not reachable and the Copyright + Holder agrees that maintenance of the Work be passed to you, + then this takes effect immediately upon announcement. + + 4. If you make an `intention announcement' as described in 2b. above + and after three months your intention is challenged neither by + the Current Maintainer nor by the Copyright Holder nor by other + people, then you may arrange for the Work to be changed so as + to name you as the (new) Current Maintainer. + + 5. If the previously unreachable Current Maintainer becomes + reachable once more within three months of a change completed + under the terms of 3b) or 4), then that Current Maintainer must + become or remain the Current Maintainer upon request provided + they then update their communication data within one month. + +A change in the Current Maintainer does not, of itself, alter the fact +that the Work is distributed under the LPPL license. + +If you become the Current Maintainer of the Work, you should +immediately provide, within the Work, a prominent and unambiguous +statement of your status as Current Maintainer. You should also +announce your new status to the same pertinent community as +in 2b) above. + + +WHETHER AND HOW TO DISTRIBUTE WORKS UNDER THIS LICENSE +====================================================== + +This section contains important instructions, examples, and +recommendations for authors who are considering distributing their +works under this license. These authors are addressed as `you' in +this section. + +Choosing This License or Another License +---------------------------------------- + +If for any part of your work you want or need to use *distribution* +conditions that differ significantly from those in this license, then +do not refer to this license anywhere in your work but, instead, +distribute your work under a different license. You may use the text +of this license as a model for your own license, but your license +should not refer to the LPPL or otherwise give the impression that +your work is distributed under the LPPL. + +The document `modguide.tex' in the base LaTeX distribution explains +the motivation behind the conditions of this license. It explains, +for example, why distributing LaTeX under the GNU General Public +License (GPL) was considered inappropriate. Even if your work is +unrelated to LaTeX, the discussion in `modguide.tex' may still be +relevant, and authors intending to distribute their works under any +license are encouraged to read it. + +A Recommendation on Modification Without Distribution +----------------------------------------------------- + +It is wise never to modify a component of the Work, even for your own +personal use, without also meeting the above conditions for +distributing the modified component. While you might intend that such +modifications will never be distributed, often this will happen by +accident -- you may forget that you have modified that component; or +it may not occur to you when allowing others to access the modified +version that you are thus distributing it and violating the conditions +of this license in ways that could have legal implications and, worse, +cause problems for the community. It is therefore usually in your +best interest to keep your copy of the Work identical with the public +one. Many works provide ways to control the behavior of that work +without altering any of its licensed components. + +How to Use This License +----------------------- + +To use this license, place in each of the components of your work both +an explicit copyright notice including your name and the year the work +was authored and/or last substantially modified. Include also a +statement that the distribution and/or modification of that +component is constrained by the conditions in this license. + +Here is an example of such a notice and statement: + + %% pig.dtx + %% Copyright 2005 M. Y. Name + % + % This work may be distributed and/or modified under the + % conditions of the LaTeX Project Public License, either version 1.3 + % of this license or (at your option) any later version. + % The latest version of this license is in + % http://www.latex-project.org/lppl.txt + % and version 1.3 or later is part of all distributions of LaTeX + % version 2005/12/01 or later. + % + % This work has the LPPL maintenance status `maintained'. + % + % The Current Maintainer of this work is M. Y. Name. + % + % This work consists of the files pig.dtx and pig.ins + % and the derived file pig.sty. + +Given such a notice and statement in a file, the conditions +given in this license document would apply, with the `Work' referring +to the three files `pig.dtx', `pig.ins', and `pig.sty' (the last being +generated from `pig.dtx' using `pig.ins'), the `Base Interpreter' +referring to any `LaTeX-Format', and both `Copyright Holder' and +`Current Maintainer' referring to the person `M. Y. Name'. + +If you do not want the Maintenance section of LPPL to apply to your +Work, change `maintained' above into `author-maintained'. +However, we recommend that you use `maintained', as the Maintenance +section was added in order to ensure that your Work remains useful to +the community even when you can no longer maintain and support it +yourself. + +Derived Works That Are Not Replacements +--------------------------------------- + +Several clauses of the LPPL specify means to provide reliability and +stability for the user community. They therefore concern themselves +with the case that a Derived Work is intended to be used as a +(compatible or incompatible) replacement of the original Work. If +this is not the case (e.g., if a few lines of code are reused for a +completely different task), then clauses 6b and 6d shall not apply. + + +Important Recommendations +------------------------- + + Defining What Constitutes the Work + + The LPPL requires that distributions of the Work contain all the + files of the Work. It is therefore important that you provide a + way for the licensee to determine which files constitute the Work. + This could, for example, be achieved by explicitly listing all the + files of the Work near the copyright notice of each file or by + using a line such as: + + % This work consists of all files listed in manifest.txt. + + in that place. In the absence of an unequivocal list it might be + impossible for the licensee to determine what is considered by you + to comprise the Work and, in such a case, the licensee would be + entitled to make reasonable conjectures as to which files comprise + the Work. + diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-mirage/README.md b/macros/latex/contrib/beamer-contrib/themes/beamertheme-mirage/README.md new file mode 100644 index 0000000000..34495c7bab --- /dev/null +++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-mirage/README.md @@ -0,0 +1,22 @@ +# "Mirage" beamer theme “蜃楼†beamer 主题 + +A beamer theme inspired by the [album art](https://www.instagram.com/juncenart/p/C5LuwoSrBnW/?img_index=2) of Zhou Shen's song [_Mirage_](https://open.spotify.com/track/1PR9aOkY0dyRRL81YXv9a4). + +Two modes are available: the default with a dark look; and a `light` mode is available. Sample .tex files for beamer presentations and posters are provided. + + +基于周深《[åæ·±](https://y.qq.com/n/ryqq/albumDetail/003szpvI3LMhQ7)[代è¯](https://music.163.com/#/album?id=190605791)》专辑的先行曲[《蜃楼》æŒæ›²å°é¢](http://xhslink.com/a/oF7IHZ0uUYkY)二创的beamer主题。 + +两ç§æ¨¡å¼å¯é€‰ï¼šé»˜è®¤æ¨¡å¼é¢œè‰²æ·±æ²‰ï¼Œ`light`模å¼é¢œè‰²è¾ƒæµ…。详细使用方法å¯å‚考示范.tex文档。 + +```latex +\usetheme{Mirage} +% or +\usetheme[light]{Mirage} +``` + +## Maintainer å®åŒ…维护 +LianTze Lim æž—èŽ²æž (liantze@gmail.com) + +## License 许å¯åè®® +[LaTeX Project Public License (LPPL 1.3c)](https://www.latex-project.org/lppl/lppl-1-3c/)
\ No newline at end of file diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-mirage/beamertheme-mirage-doc.pdf b/macros/latex/contrib/beamer-contrib/themes/beamertheme-mirage/beamertheme-mirage-doc.pdf Binary files differnew file mode 100644 index 0000000000..28cd951367 --- /dev/null +++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-mirage/beamertheme-mirage-doc.pdf diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-mirage/beamertheme-mirage-doc.tex b/macros/latex/contrib/beamer-contrib/themes/beamertheme-mirage/beamertheme-mirage-doc.tex new file mode 100644 index 0000000000..538ef481fc --- /dev/null +++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-mirage/beamertheme-mirage-doc.tex @@ -0,0 +1,170 @@ +\documentclass{article} +\usepackage{xeCJK} +\usepackage[lining,tabular]{carlito} +\usepackage{caladea} +\usepackage{microtype} +\usepackage{titling} +\pretitle{\begin{center}\LARGE\bfseries} +\posttitle{\par\end{center}} +\usepackage[a4paper,columnsep=3em,margin=0.5in,footskip=2em]{geometry} +\usepackage{fancyvrb} +\usepackage{paracol} +\usepackage{hologo} +\usepackage{graphicx} +\usepackage{pgffor} +\usepackage{enumitem} +\setlist{leftmargin=*} +\usepackage[colorlinks]{hyperref} + +\title{``Mirage'' Beamer Theme “蜃楼â€beamer主题} +\author{LianTze Lim 林莲æž} +\date{v1.1.1: 2025-01-19\\\url{https://github.com/liantze/beamerthemeMirage}} + +\begin{document} +\maketitle + +\begin{paracol}{2} +\begin{abstract} +A beamer theme inspired by the +\href{https://www.instagram.com/juncenart/p/C5LuwoSrBnW/?img_index=2}{album art} of Zhou Shen's song \href{https://open.spotify.com/track/1PR9aOkY0dyRRL81YXv9a4}{\emph{Mirage}}, +the lead single from his album \href{https://open.spotify.com/album/6IcyslRZfwWzpdhnFML6cd}{\emph{Shenself}}. +\end{abstract} + +\switchcolumn + +\renewcommand*{\abstractname}{摘è¦} +\begin{abstract} +基于周深《\href{https://y.qq.com/n/ryqq/albumDetail/003szpvI3LMhQ7}{åæ·±}\href{https://music.163.com/\#/album?id=190605791}{代è¯}》专辑的先行曲\href{http://xhslink.com/a/oF7IHZ0uUYkY}{《蜃楼》æŒæ›²å°é¢},二创的beamer主题。 +\end{abstract} +\end{paracol} + +\begin{center} +\includegraphics[page=1,width=.495\hsize]{mirage-beamer-zh.pdf} +\includegraphics[page=5,width=.495\hsize]{mirage-beamer-zh.pdf} +\end{center} + +\begin{paracol}{2} +\section{Basic Usage} + +Two modes are available: the default has a dark look, while the +\texttt{light} mode may be more suitable for printouts. + +\switchcolumn + +\section{基本用法} + +两ç§æ¨¡å¼å¯é€‰ï¼šé»˜è®¤æ¨¡å¼é¢œè‰²æ·±æ²‰ï¼Œ\texttt{light}模å¼é¢œè‰²è¾ƒæµ…,较适åˆåˆ—å°ã€‚详细使用方法å¯å‚考示范 .tex 文档。 + +\end{paracol} + +\begin{center} +\begin{BVerbatim} +\usetheme{Mirage} OR \usetheme[light]{Mirage} +\end{BVerbatim} +\end{center} + + +\begin{paracol}{2} +The English sample files \texttt{*-en.tex} can be compiled with \hologo{pdfLaTeX}, \hologo{XeLaTeX} or \hologo{LuaLaTeX}; but compile the Chinese sample files \texttt{*-zh.tex} with \hologo{XeLaTeX}. Compile twice to get the correct total number of frames in the footer. + +\switchcolumn + +英文示范文档 \texttt{*-en.tex} å¯ç”¨ \hologo{pdfLaTeX}, \hologo{XeLaTeX} 或 \hologo{LuaLaTeX} +编译。ä¸æ–‡ç¤ºèŒƒæ–‡æ¡£ \texttt{*-zh.tex} 请用ä¸æ–‡ç¼–译。页脚里的幻ç¯ç‰‡å¸§æ•°éœ€å¤šæ¬¡ç¼–译æ‰èƒ½æ£ç¡®æ˜¾ç¤ºã€‚ + +\switchcolumn* +\setlength{\fboxsep}{0pt} + +\begin{center} +\foreach \n in {1,...,6} {\fbox{\includegraphics[page=\n,width=.49\hsize]{mirage-beamer-zh.pdf}} } +\end{center} + +\switchcolumn + +\begin{center} +\foreach \n in {1,...,6} {\fbox{\includegraphics[page=\n,width=.49\hsize]{mirage-beamer-en.pdf}} } +\end{center} + +\switchcolumn* + + +\section{Posters} + +With some modificatons, the Mirage theme can be used for creating posters the \texttt{beamerposter} package. See sample files \texttt{mirage-poster-en.tex} and \texttt{mirage-poster-zh.tex} for examples. + +\switchcolumn + +\section{海报} + +“蜃楼â€ä¸»é¢˜ä¹Ÿå¯ä»¥å’Œ\texttt{beamerposter}æé…使用制作海报(一些设置需些许修改),请å‚ç…§\texttt{mirage-poster-zh.tex}åŠ\texttt{mirage-poster-en.tex}. + +\switchcolumn* + +\begin{center} +\fbox{\includegraphics[width=.8\hsize]{mirage-poster-en.pdf}} +\end{center} + +\switchcolumn + +\begin{center} +\fbox{\includegraphics[width=.8\hsize]{mirage-poster-zh.pdf}} +\end{center} + +\switchcolumn* + +\section{Some simple customisationoptions} + +\begin{itemize} +\item The Mirage theme itself doesn't set any body fonts, so you can load your own preferred fonts in your \texttt{.tex} files. + +\item The sample \texttt{.tex} files load the font packages \texttt{caladea}, \texttt{carlito}, \texttt{newtxsf} for the English (\hologo{pdfLaTeX}) samples, and \texttt{Fira Math} for the Chinese (\hologo{XeLaTeX}) samples. You can change these as you like. + +\item \texttt{pullquote} used in frame 4 is a custom environment. You can change its beamer font and color, or re-define the \verb|\MiragePullquoteOpen| marker (see frame 4). + +\item Other markers that can be \verb|\renewcommand|: +\begin{itemize}[nosep] + \item \verb|\MirageFrametitlePrefix| + \item \verb|\MirageProofPrefix| + \item \verb|\MirageTheoremPrefix| +\end{itemize} +for prefix icons of the frame title, \texttt{proof} block title and \texttt{theorem}-like block titles. (See commented code before frame 5.) + +\item The Mirage theme loads \texttt{fontawesome5}, so you can use +icons provided by this package. + +\item \verb|\MirageGlowRadius| is a length controlling the size of the glowy circle in the footline; especially useful when creating posters with \texttt{beamerposter}. +\end{itemize} + +\switchcolumn + +\section{一些å¯è°ƒæ•´çš„å…ƒç´ } +\begin{itemize} +\item “蜃楼â€æœ¬èº«å¹¶æ²¡æœ‰è®¾ç½®ä»»ä½•å—体,用户å¯ä»¥è‡ªè¡Œåœ¨\texttt{.tex}å¯¼è¨€æ›²åŠ è½½è‡ªå·±å–œæ¬¢çš„å®åŒ…或设置å—体。 + +\item 示范的 \texttt{.tex} æ¡£æ¡ˆå¯¼è¨€åŒºåŠ è½½äº†\texttt{caladea}ã€\texttt{carlito}〠\texttt{newtxsf} (ä»…é™è‹±æ–‡\hologo{pdfLaTeX}示范文档) ã€\texttt{Fira Math} (ä»…é™ä¸æ–‡\hologo{XeLaTeX}示范文档)。这些都是å¯ä»¥è‡ªè¡Œæ›´æ¢çš„ï¼ + +\item 第4帧幻ç¯ç‰‡é‡Œç”¨çš„\texttt{pullquote}环境是“蜃楼â€ä¸»é¢˜è‡ªå®šä¹‰çš„。它的beamer fontã€color都是å¯ä»¥æ›´æ¢çš„, 也å¯é‡æ–°å®šä¹‰å‰ç¼€è£…饰 \verb|\MiragePullquoteOpen| marker(详è§ç¬¬4帧幻ç¯ç‰‡ç¤ºèŒƒä»£ç )。 + +\item 其它å¯ä»¥ \verb|\renewcommand|的装饰: +\begin{itemize}[nosep] + \item \verb|\MirageFrametitlePrefix| + \item \verb|\MirageProofPrefix| + \item \verb|\MirageTheoremPrefix| +\end{itemize} +这些是frame titleã€\texttt{proof} block title 以åŠ\texttt{theorem}之类block titlesçš„å‰ç¼€è£…饰。(详è§ç¬¬5帧幻ç¯ç‰‡ä¹‹å‰çš„注释) + +\item “蜃楼â€ä¸»é¢˜å·²åŠ è½½\texttt{fontawesome5}å®åŒ…,å¯ä»¥å°½æƒ…使用æ¤å®åŒ…æ供的符å·ã€‚ + +\item \verb|\MirageGlowRadius| 是用æ¥æŽ§åˆ¶é¡µè„šçš„å°å…‰çƒåŠå¾„çš„length;制作海报时å¯ä»¥é…Œé‡åŠ 大。 +\end{itemize} + +\end{paracol} + +\section{Revision History} +\begin{description} +\item[v1.0 (2024/04/14)] Initial commit. +\item[v1.01 (2024/09/18)] Adds beamerposter example and some updates for some easier customisations. +\item[v1.1 (2024/10/24)] Reorganises sample .tex files and documentations; submitted to CTAN. +\item[v1.1.1 (2025/01/19)] Bug fix: added missing second argument to \verb|\addtobeamertemplate{frametitle}|. +\end{description} +\end{document}
\ No newline at end of file diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-mirage/beamerthemeMirage.sty b/macros/latex/contrib/beamer-contrib/themes/beamertheme-mirage/beamerthemeMirage.sty new file mode 100644 index 0000000000..d5df979116 --- /dev/null +++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-mirage/beamerthemeMirage.sty @@ -0,0 +1,166 @@ +% beamerthemeMirage.sty v1.1.1 2025/01/19 +% by LianTze Lim (liantze@gmail.com) +% A beamer theme inspired by Zhou Shen's `Mirage' song poster +% 基于周深《å深代è¯ã€‹å…ˆè¡Œæ›²ã€Šèœƒæ¥¼ã€‹æŒæ›²æµ·æŠ¥è‰²è°ƒçš„beamer主题 +\ProvidesPackage{beamerthemeMirage} + +\newif\ifMirage@light +\DeclareOptionBeamer{light}{\Mirage@lighttrue} +\ProcessOptionsBeamer + +\RequirePackage{regexpatch} +\RequirePackage[fixed]{fontawesome5} +\RequirePackage{relsize} + +\definecolor{MirageGray0}{RGB}{30,30,30} +\definecolor{MirageGray1}{RGB}{48,48,48} +\definecolor{MirageGray2}{RGB}{140,140,140} +\definecolor{MirageGray3}{RGB}{60,66,71} +\definecolor{MiragePink}{RGB}{212,183,183} +\definecolor{MirageBlue}{RGB}{156,185,220} + +\ifMirage@light + \setbeamercolor{normal text}{fg=MirageGray3,bg=white} + \setbeamercolor{structure}{fg=MirageBlue!80!MirageGray0} + \setbeamercolor{item}{fg=MirageBlue!50!MirageGray0} +\else + \setbeamercolor{normal text}{bg=MirageGray3,fg=white} + \setbeamercolor{structure}{fg=MirageBlue} + \setbeamercolor{item}{fg=MirageBlue!70!MirageGray0} +\fi +\setbeamercolor{alerted text}{fg=MiragePink!60!red!80!MirageGray0} +\setbeamercolor{section in head/foot}{fg=structure!80} +\setbeamercolor{page number in head/foot}{fg=structure!80} + +\xpatchcmd{\beamerboxesrounded}{#2}{\vspace*{0.5ex}#2\vspace*{0.5ex}}{}{} +\xpatchcmd{\beamerboxesrounded}{\vskip2pt}{\vskip0.5ex}{}{} +\pretocmd{\endbeamerboxesrounded}{\par\vspace*{0.5ex}}{}{} +\usetheme[compress]{Singapore} +\setbeamertemplate{blocks}[rounded] + +\setbeamerfont{block title}{family=\rmfamily,series=\bfseries} + +\ifMirage@light + \setbeamercolor{block body}{bg=MirageBlue!90,fg=MirageBlue!40!black} +\else + \setbeamercolor{block body}{fg=MirageBlue,bg=MirageBlue!40!black} +\fi +\setbeamercolor{block title}{fg=MirageBlue!90,bg=MirageBlue!30!black} + +\setbeamercolor{block body example}{fg=MirageGray3,bg=MirageBlue!40} +\setbeamercolor{block title example}{bg=MirageBlue!90,fg=MirageBlue!30!black} + +\setbeamercolor{block body alerted}{fg=MirageGray3,bg=MiragePink!30} +\ifMirage@light + \setbeamercolor{block title alerted}{fg=MiragePink!60!red!80!MirageGray0,bg=MiragePink!80} +\else + \setbeamercolor{block title alerted}{fg=MiragePink!60!red!80!MirageGray0,bg=MiragePink} +\fi + +\newcommand{\MirageProofPrefix}{\faEllipsisH} +\newcommand{\MirageTheoremPrefix}{\faChevronCircleRight} + +\addtobeamertemplate{proof begin}{% + \let\oldinsertproofname\insertproofname% + \def\insertproofname{{\color{block title.fg!50!block title.bg}\relsize{-1}\MirageProofPrefix}\oldinsertproofname}% +}{} + +\addtobeamertemplate{theorem begin}{% + \let\oldinserttheoremname\inserttheoremname% + \def\inserttheoremname{{\color{block title.fg!50!block title.bg}\relsize{-1}\MirageTheoremPrefix}\oldinserttheoremname}% +}{} + + +\ifMirage@light + \setbeamercolor{pullquote}{fg=MiragePink!90!normal text.fg} +\else + \setbeamercolor{pullquote}{fg=MiragePink} +\fi +\setbeamerfont{pullquote}{family=\rmfamily,size=\Large,shape=\itshape} +\newcommand{\MiragePullquoteOpen}{\faQuoteLeft} +\newcommand{\MiragePullquoteClose}{\faQuoteRight} +\newenvironment{pullquote}{% + \usebeamercolor{pullquote}% + \color{pullquote.fg!15!normal text.bg}\hrule width \hsize height 0.15ex\vskip2ex% + \begin{beamercolorbox}[colsep=1ex,leftskip=1em]{pullquote}% + \usebeamerfont{pullquote}% + \raisebox{0pt}[0pt][0pt]{\makebox[0pt]{\color{pullquote.fg!30!normal text.bg}\hskip-1em\huge\MiragePullquoteOpen}}% + \ignorespaces% +}{% + \end{beamercolorbox}% + \vskip2ex\hrule width \hsize height 0.15ex% +} + + +\setbeamertemplate{itemize items}[circle] +\setbeamertemplate{navigation symbols}{} +\setbeamertemplate{frametitle continuation}[from second] +\ifMirage@light + \pgfdeclareverticalshading{mirage@headfade}{\the\paperwidth}{% + color(0ex)=(white);% + color(0.2ex)=(MirageBlue);% + color(1.3ex)=(MiragePink);% + color(1.7ex)=(white)% + } +\else + \pgfdeclareverticalshading{mirage@headfade}{\the\paperwidth}{% + color(0ex)=(MirageGray0);% + color(0.2ex)=(MirageBlue);% + color(1.3ex)=(MiragePink);% + color(1.7ex)=(MirageGray1)% + } +\fi +\addtobeamertemplate{headline}{}{% + \vskip1ex% + \pgfpathrectangle{\pgfpoint{0pt}{0pt}}{\pgfpoint{\paperwidth}{1.7ex}} + \pgfuseshading{mirage@headfade} + \vskip-2ex% +}{} + +\RequirePackage{tikz} +\usetikzlibrary{shadows} + +\pgfdeclareradialshading{tikz@lib@fade@circle@50}{\pgfpointorigin}{ + color(0pt)=(pgftransparent!0); color(20bp)=(pgftransparent!0); + color(25bp)=(pgftransparent!100); color(80bp)=(pgftransparent!100)}% +\pgfdeclarefading{circle with fuzzy edge 50 percent}{\pgfuseshading{tikz@lib@fade@circle@50}}% + +\newcommand{\MirageFootlineContents}{\insertframenumber{} of \inserttotalframenumber{}} +\newlength{\MirageGlowRadius} +\setlength{\MirageGlowRadius}{0.2ex} +\newbox{\Mirage@smalleclipse} +\AddToHook{begindocument/before}{ + \savebox{\Mirage@smalleclipse}{% + \usebeamercolor{normal text}% + \tikz{\node[anchor=center,circle,circular glow={fill=MiragePink,shadow scale=2.5, path fading={circle with fuzzy edge 50 percent}},draw=normal text.fg,fill=normal text.fg,outer sep=0pt,inner sep=\MirageGlowRadius](O){};% + \draw[line width=0.1ex,draw=normal text.fg](0.3ex,0pt) -- ++(0.75\paperwidth,0pt);% + }% + }% +} + +\setbeamertemplate{footline}{% + \begin{beamercolorbox}[ht=2.5ex,dp=1ex,right,sep=0.5ex]{page number in head/foot}% + \leavevmode\usebox{\Mirage@smalleclipse}% + \vskip-1ex% + \MirageFootlineContents\hspace*{1ex}% + \end{beamercolorbox}% +}{} + +\setbeamertemplate{frametitle}[default][left] +\AddToHook{begindocument}{ +\ifdefined\addfontfeatures + \setbeamerfont{title}{family=\rmfamily\addfontfeatures{LetterSpace=5}} +\else + \RequirePackage[letterspace=50]{microtype} + \setbeamerfont{title}{family=\rmfamily\lsstyle} +\fi +} +\setbeamerfont{title}{size=\LARGE,series=\bfseries} +\setbeamerfont{frametitle}{family=\rmfamily,size=\Large,series=\bfseries} + +\newcommand{\MirageFrametitlePrefix}{\faBorderStyle} +\addtobeamertemplate{frametitle}{% + \let\oldinsertframetitle\insertframetitle% + \renewcommand{\insertframetitle}{{\relsize{-1}\color{frametitle.fg!50!frametitle.bg}\MirageFrametitlePrefix}\oldinsertframetitle}% +}{} + diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-mirage/mirage-beamer-en.pdf b/macros/latex/contrib/beamer-contrib/themes/beamertheme-mirage/mirage-beamer-en.pdf Binary files differnew file mode 100644 index 0000000000..b4d7004b70 --- /dev/null +++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-mirage/mirage-beamer-en.pdf diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-mirage/mirage-beamer-en.tex b/macros/latex/contrib/beamer-contrib/themes/beamertheme-mirage/mirage-beamer-en.tex new file mode 100644 index 0000000000..91c4fc06fa --- /dev/null +++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-mirage/mirage-beamer-en.tex @@ -0,0 +1,138 @@ +\documentclass[aspectratio=1610]{beamer} +% This can be compiled with pdflatex. +% Load fontspec so that you can load OTF/TTF fonts if you want to; but then you must compile with xelatex or lualatex! +% \usepackage{fontspec} + +% beamerthemeMirage.sty v1.0 2024/04/14 +% by LianTze Lim (liantze@gmail.com) +% A beamer theme inspired by Zhou Shen's `Mirage' song poster +% \usetheme{Mirage} % Default = dark mode +\usetheme[light]{Mirage} % Alternative light mode + +% The glowy light in the footnline +% \setlength{\MirageGlowRadius}{0.25ex} + +% Mirage theme loads the fontawesome5 package + +\title{Mirage Theme} +\subtitle{Inspired by the song poster of the lead single, \emph{Mirage}} +\author{LianTze Lim} +\institute{The full album \emph{Shenself} now available on all major music platforms} +\date{2024/10/22} + +\usepackage{iftex} + +% These fonts will work with pdflatex, xelatex, lualatex +\usepackage[lining,tabular]{carlito} +\usepackage{caladea} + +\ifboolexpr{bool{xetex} or bool{luatex}}{ + % Unicode-math and TTF/OTF fonts will only work with xelatex, lualatex + \usepackage{unicode-math} + % \setmathfont{STIX Two Math} + % \setmathfont{Erewhon Math} + \setmathfont{Fira Math} +}{% Sans math font in pdflatex: + \usepackage[T1]{fontenc} + \usepackage{newtxsf} +} + + +\begin{document} + +\frame{\maketitle} + +\section{Intro} +\begin{frame} +\frametitle{Introduction} + +\begin{itemize} + \item Behold the mechanical dove \faDove{} flying through the air + \item How might its eyes be lit \faEye[regular] that it appears lifelike + +\begin{enumerate} + \item Are digital dawns and dusks \faCloudSun{} more colourful? \faCloudMoon + \item Are bionic lovers \faGrinHearts{} more faithful? \faGrin*[regular] +\end{enumerate} + + \item Push this one door open \faDoorOpen{} and there are thousands more \faDoorClosed{\small\faDoorClosed}{\footnotesize\faDoorClosed}{\scriptsize\faDoorClosed}{\tiny\faDoorClosed} +\end{itemize} + +\end{frame} + +\subsection{Lists} +\begin{frame} +\frametitle{The ancient gaze from aeons ago} + \begin{enumerate} + \item How might it discern if this moment is fantasy or real + \begin{enumerate} + \item Is man-made talent true inherent wisdom? + \begin{enumerate} + \item Do cloned bodies have souls? + \item Forever questioning, but ever without a conclusion + \end{enumerate} + \end{enumerate} + \item \alert{Can it be real} + \end{enumerate} + +\end{frame} + +\section{Blocks} + +\begin{frame}[c] +\frametitle{The Heavenward Staircase of Wisdom is ever endless} +\begin{columns} +\begin{column}[b]{.35\textwidth} +\begin{pullquote} + Can it be real\\ + The world is a mirage +\end{pullquote} +\end{column} + +\begin{column}[t]{.65\textwidth} +\setbeamercolor{pullquote}{fg=MirageBlue} +\renewcommand{\MiragePullquoteOpen}{«} +\begin{pullquote} +Amidst barren hills of electronic fantasies\\ +I search for oases of truth\\ +Though as small as mayflies\\ +I dare gaze at the galaxies +\end{pullquote} +\end{column} +\end{columns} +\end{frame} + + +% \renewcommand{\MirageFrametitlePrefix}{\faDove} +% \renewcommand{\MirageProofPrefix}{\faCheckSquare[regular]} +% \renewcommand{\MirageTheoremPrefix}{\faCogs} + +\begin{frame}[allowframebreaks]{Blocks blocks blocks 123} + + \begin{exampleblock}{Gosh I've no idea what I'm writing, do you?} + Now solve $x = \frac{-b \pm \sqrt{b^2 -4ac}}{2a}$. This should be easy, right? + \end{exampleblock} + + \begin{alertblock}{Gosh I've no idea what I'm writing, do you?} + \[ x = \frac{-b \pm \sqrt{b^2 -4ac}}{2a}, \quad\therefore \alpha \neq \Omega \] + \end{alertblock} + + \begin{block}{Gosh I've no idea what I'm writing, do you?} + \[ x = \frac{-b \pm \sqrt{b^2 -4ac}}{2a}, \quad\therefore \alpha \neq \Omega \] + \end{block} + + \begin{proof} + As everyone can clearly see, $1+1=2$. + \end{proof} + + \begin{theorem} + A wonderful thing is about to happen -- it \emph{will} eventually happen. + \end{theorem} + + \begin{definition} + A wonderful thing is about to happen -- it \emph{will} eventually happen. + \end{definition} +\end{frame} + + +\end{document} diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-mirage/mirage-beamer-zh.pdf b/macros/latex/contrib/beamer-contrib/themes/beamertheme-mirage/mirage-beamer-zh.pdf Binary files differnew file mode 100644 index 0000000000..edd2d751c9 --- /dev/null +++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-mirage/mirage-beamer-zh.pdf diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-mirage/mirage-beamer-zh.tex b/macros/latex/contrib/beamer-contrib/themes/beamertheme-mirage/mirage-beamer-zh.tex new file mode 100644 index 0000000000..08f8aeb104 --- /dev/null +++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-mirage/mirage-beamer-zh.tex @@ -0,0 +1,136 @@ +% ä¸æ–‡è¯·ç”¨ctexbeamer, 个人觉得行è·linespread宽一点看起æ¥æ¯”较舒æœã€‚XeLaTeX编译。 +\documentclass[aspectratio=1610,linespread=1.4,t]{ctexbeamer} + +% If this is an English-only deck, you don't need ctexbeamer nor the wider linespread +% \documentclass[aspectratio=1610,t]{beamer} +% But load fontspec so that you can load OTF/TTF fonts if you want to! +% \usepackage{fontspec} + +% beamerthemeMirage.sty v1.0 2024/04/14 +% by LianTze Lim (liantze@gmail.com) +% A beamer theme inspired by Zhou Shen's `Mirage' song poster +% 基于周深《å深代è¯ã€‹å…ˆè¡Œæ›²ã€Šèœƒæ¥¼ã€‹æŒæ›²æµ·æŠ¥è‰²è°ƒçš„beamer主题 +\usetheme{Mirage} % Default = dark mode +% \usetheme[light]{Mirage} % Alternative light mode + +% The glowy light in the footnline +% \setlength{\MirageGlowRadius}{0.25ex} + +% Mirage theme loads the fontawesome5 package + +\title{Mirage Theme 蜃楼} +\subtitle{æ¤ä¸»é¢˜ä¸ºåŸºäºŽã€Šèœƒæ¥¼ã€‹æŒæ›²æµ·æŠ¥çš„二创} +\author{林莲æž} +\institute{《å深代è¯ã€‹ä¸“辑已在å„大音ä¹å¹³å°ä¸Šçº¿} +\date{2024/10/22} + +% These fonts will work with pdflatex, xelatex, lualatex. If you're using ctexbeamer it's best to compile in xelatex. +\usepackage[lining,tabular]{carlito} +\usepackage{caladea} + +% But unicode-math and TTF/OTF fonts will only work with xelatex, lualatex +\usepackage{unicode-math} +% \setmathfont{STIX Two Math} +% \setmathfont{Erewhon Math} +\setmathfont{Fira Math} + +\begin{document} + +\frame{\maketitle} + +\section{Intro} +\begin{frame} +\frametitle{Introduction} + +\begin{itemize} + \item 看机械的白鸽\faDove{} 从空ä¸é£žè¿‡ + \item è¦å¦‚何点ç›\faEye[regular] 它æ‰å ªç§°é²œæ´» + +\begin{enumerate} + \item æ•°å—的晨æ˜\faCloudSun{} 是å¦æ›´ç¼¤çº·\faCloudMoon + \item 仿生的情人\faGrinHearts{} 是å¦æ›´å¿ è´ž\faGrin*[regular] +\end{enumerate} + + \item 推开一扇门\faDoorOpen{} 还有万åƒé‡é—¨\faDoorClosed{\small\faDoorClosed}{\footnotesize\faDoorClosed}{\scriptsize\faDoorClosed}{\tiny\faDoorClosed} +\end{itemize} + +\end{frame} + +\subsection{Lists} +\begin{frame} +\frametitle{é‚£æ¥è‡ªè¿‡åŽ» å¤è€çš„眼神} + \begin{enumerate} + \item 如何能辨认 æ¤åˆ»æ˜¯å¹»æ˜¯çœŸ + \begin{enumerate} + \item äººé€ çš„å¤©åˆ† 是å¦ç®—æ…§æ ¹ + \begin{enumerate} + \item 克隆的肉身 是å¦æœ‰çµé‚ + \item 永远在追问 å´ä»Žæ¥éƒ½æ²¡ç»“论 + \end{enumerate} + \end{enumerate} + \item \alert{Can it be real} + \end{enumerate} + +\end{frame} + +\section{其它示范} + +\begin{frame}[c] +\frametitle{智慧的天梯从æ¥éƒ½æ²¡å°½å¤´} +\begin{columns} +\begin{column}{.4\textwidth} +\begin{pullquote} + Can it be real\\ + The world is a mirage +\end{pullquote} +\end{column} + +\begin{column}{.53\textwidth} +\setbeamercolor{pullquote}{fg=MirageBlue} +\renewcommand{\MiragePullquoteOpen}{\hskip-.2\ccwd『} +\begin{pullquote} +在电幻的è’丘 寻真实的绿洲\\ +渺å°å¾—如蜉è£ã€€ä¹Ÿä»°æœ›ç€å®‡å®™ +\end{pullquote} +\end{column} +\end{columns} +\end{frame} + + +% \renewcommand{\MirageFrametitlePrefix}{\faDove} +% \renewcommand{\MirageProofPrefix}{\faCheckSquare[regular]} +% \renewcommand{\MirageTheoremPrefix}{\faCogs} + +\begin{frame}[allowframebreaks]{å„ç§block 123} + + \begin{exampleblock}{算了我也ä¸çŸ¥é“在写什么,do you?} + Now solve $x = \frac{-b \pm \sqrt{b^2 -4ac}}{2a}$. 对å„ä½åŒå¦æ¥è¯´åº”该挑战ä¸å¤§ã€‚ + \end{exampleblock} + +\begin{columns}[T] +\column{0.48\textwidth} + \begin{alertblock}{算了我也ä¸çŸ¥é“在写什么,do you?} + \[ x = \frac{-b \pm \sqrt{b^2 -4ac}}{2a}, \quad\therefore \alpha \neq \Omega \] + \end{alertblock} + +\column{0.48\textwidth} + \begin{block}{算了我也ä¸çŸ¥é“在写什么,do you?} + \[ x = \frac{-b \pm \sqrt{b^2 -4ac}}{2a}, \quad\therefore \alpha \neq \Omega \] + \end{block} +\end{columns} + + \begin{proof} + 显而易è§ï¼Œ$1+1=2$. + \end{proof} + + \begin{theorem} + 有一件很美好的事情将è¦å‘生,它终会å‘生。 + \end{theorem} + + \begin{definition} + 有一件很美好的事情将è¦å‘生,它终会å‘生。 + \end{definition} +\end{frame} + + +\end{document} diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-mirage/mirage-poster-en.pdf b/macros/latex/contrib/beamer-contrib/themes/beamertheme-mirage/mirage-poster-en.pdf Binary files differnew file mode 100644 index 0000000000..3efba7d947 --- /dev/null +++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-mirage/mirage-poster-en.pdf diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-mirage/mirage-poster-en.tex b/macros/latex/contrib/beamer-contrib/themes/beamertheme-mirage/mirage-poster-en.tex new file mode 100644 index 0000000000..ee26690d04 --- /dev/null +++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-mirage/mirage-poster-en.tex @@ -0,0 +1,172 @@ +\documentclass{beamer} + +\usepackage[size=a3,orientation=portrait,scale=1.4]{beamerposter} + +% (Mirage theme already loads fontawesome5) +% \usetheme{Mirage} +\usetheme[light]{Mirage} + +\usepackage{iftex} + +% These fonts will work with pdflatex, xelatex, lualatex +\usepackage[lining,tabular]{carlito} +\usepackage{caladea} + +\ifboolexpr{bool{xetex} or bool{luatex}}{ + % Unicode-math and TTF/OTF fonts will only work with xelatex, lualatex + \usepackage{unicode-math} + % \setmathfont{STIX Two Math} + % \setmathfont{Erewhon Math} + \setmathfont{Fira Math} +}{% Sans math font in pdflatex: + \usepackage[T1]{fontenc} + \usepackage{newtxsf} +} + + +% beamer slides -> poster = some adjustments needed +\setbeamerfont{headline}{size=\huge} +\setbeamerfont{footline}{size=\large} +\setbeamercolor{bibliography item}{fg=block body.fg} +\setbeamercolor{bibliography entry author}{fg=block body.fg} +\setbeamercolor{bibliography entry title}{fg=block body.fg} +\setbeamercolor{bibliography entry location}{fg=block body.fg} +\setbeamercolor{bibliography entry note}{fg=block body.fg} +\setlength{\MirageGlowRadius}{0.5ex} + +% _slightly_ more prominent colours for the headline... but not so much +\makeatletter +\ifMirage@light + \setbeamercolor{section in head/foot}{fg=structure!80!MirageGray0} + \setbeamercolor{page number in head/foot}{fg=structure!80!MirageGray0} +\else + \setbeamercolor{section in head/foot}{fg=structure!90} + \setbeamercolor{page number in head/foot}{fg=structure!90} +\fi +\makeatother +\setbeamerfont{title}{size=\Huge} +\setbeamerfont{author}{size=\large} +% might need some extra vertical space when using [t] +\addtobeamertemplate{headline}{}{\vspace*{1ex}} + +% yes I've sinned by abusing and re-defining \insertnavigation to quickly +% insert the title and author in the headline... +\renewcommand*{\insertnavigation}[1]{\centering\vspace*{-1ex}% + {\usebeamerfont{title}% + \insertshorttitle[width=0.95\hsize,respectlinebreaks,center]\par}% + \vspace*{0.5ex}% + {\usebeamerfont{author}% + \insertshortauthor[width=0.95\hsize,respectlinebreaks,center]\par}% +} + + +% adjust itemize/enumerate list indents if necessary +\setlength{\leftmarginii}{1.75em} +\setlength{\leftmarginiii}{2.5em} + +\usepackage{graphicx} +\usepackage[style=numeric,natbib]{biblatex} +\addbibresource{sample-refs.bib} + + +\title{Using the Mirage theme for posters} +\author{John Doe, Jane Smith and A.~N.~Other } +\renewcommand{\MirageFootlineContents}{Dept of XX, Uni of YY, other information as appropriate} + +\begin{document} + +\begin{frame} + +\begin{columns}[T] +\column{.47\textwidth} +\begin{block}{Introduction} + +\begin{itemize} + \item Behold the mechanical dove \faDove{} flying through the air + \item How might its eyes be lit \faEye[regular] that it appears lifelike + +\begin{enumerate} + \item Are digital dawns and dusks \faCloudSun{} more colourful? \faCloudMoon + \item Are bionic lovers \faGrinHearts{} more faithful? \faGrin*[regular] +\end{enumerate} + + \item Push this one door open \faDoorOpen{} and there are thousands more \faDoorClosed{\small\faDoorClosed}{\footnotesize\faDoorClosed}{\scriptsize\faDoorClosed}{\tiny\faDoorClosed} +\end{itemize} + +\end{block} + +\begin{block}{The ancient gaze from aeons ago} + \begin{enumerate} + \item How might it discern if this moment is fantasy or real + \begin{enumerate} + \item Is man-made talent true inherent wisdom? + \begin{enumerate} + \item Do cloned bodies have souls? + \item Forever questioning, but ever without a conclusion + \end{enumerate} + \end{enumerate} + \item \alert{Can it be real} + \end{enumerate} +\end{block} + +\begin{pullquote} + Can it be real\\ + The world is a mirage +\end{pullquote} + +\bigskip + +\setbeamercolor{pullquote}{fg=MirageBlue} +\renewcommand{\MiragePullquoteOpen}{«} +\begin{pullquote} +Amidst barren hills of electronic fantasies\\ +I search for oases of truth\\ +Though as small as mayflies\\ +I dare gaze at the galaxies +\end{pullquote} + +\column{.47\textwidth} +\begin{exampleblock}{Gosh I've no idea what I'm writing, do you?} +Now solve $x = \frac{-b \pm \sqrt{b^2 -4ac}}{2a}$. This should be easy, right? +\end{exampleblock} + +\begin{alertblock}{Gosh I've no idea what I'm writing, do you?} +\[ x = \frac{-b \pm \sqrt{b^2 -4ac}}{2a}, \quad\therefore \alpha \neq \Omega \] +\end{alertblock} + +\begin{block}{Gosh I've no idea what I'm writing, do you?} +\[ x = \frac{-b \pm \sqrt{b^2 -4ac}}{2a}, \quad\therefore \alpha \neq \Omega \] +\end{block} + +\begin{proof} +As everyone can clearly see, $1+1=2$. +\end{proof} + +\begin{theorem} +A wonderful thing is about to happen -- it \emph{will} eventually happen. +\end{theorem} + +\begin{definition} +A wonderful thing is about to happen -- it \emph{will} eventually happen. +\end{definition} + +\end{columns} + +\begin{block}{Superior Images and False Horizons \citep{Mirage-Greenler1980,AtmRefrac-Hyperphysics}} +\begin{center}\includegraphics[width=0.95\hsize]{miragesup.png}\end{center} +A superior image can be produced when warm air exists over cold water. Again, using the pattern from Greenler, the vertical scale and the curvature are greatly exaggerated to show the effect. Such images are often seen at great distances in the arctic region when the air is significantly warmer than the water. Since the geometry of the mirage images depends on the details of the temperature contour, a great variety of mirage images can be formed. + +Source: \url{http://hyperphysics.phy-astr.gsu.edu/hbase/atmos/mirage.html} +\end{block} + +\vfill + +\begin{block}{\refname} +\renewcommand*{\bibfont}{\small} +\addtolength{\bibitemsep}{-0.5ex} +\setlength{\biblabelsep}{0.25em} +\printbibliography[heading=none] +\end{block} + +\end{frame} +\end{document} diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-mirage/mirage-poster-zh.pdf b/macros/latex/contrib/beamer-contrib/themes/beamertheme-mirage/mirage-poster-zh.pdf Binary files differnew file mode 100644 index 0000000000..2852ddbfc4 --- /dev/null +++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-mirage/mirage-poster-zh.pdf diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-mirage/mirage-poster-zh.tex b/macros/latex/contrib/beamer-contrib/themes/beamertheme-mirage/mirage-poster-zh.tex new file mode 100644 index 0000000000..1f34757d1f --- /dev/null +++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-mirage/mirage-poster-zh.tex @@ -0,0 +1,164 @@ +% Just use beamer, not ctexbeamer, if you're not typesetting Chinese +% \documentclass{beamer} +\documentclass[linespread=1.4]{ctexbeamer} + +\usepackage[size=a3,orientation=portrait,scale=1.4]{beamerposter} + +% (Mirage theme already loads fontawesome5) +\usetheme{Mirage} +% \usetheme[light]{Mirage} + +% fonts +\usepackage[lining,tabular]{carlito} +\usepackage{caladea} +\usepackage{unicode-math} +\setmathfont{Erewhon Math} + + +% beamer slides -> poster = some adjustments needed +\setbeamerfont{headline}{size=\huge} +\setbeamerfont{footline}{size=\large} +\setbeamercolor{bibliography item}{fg=block body.fg} +\setbeamercolor{bibliography entry author}{fg=block body.fg} +\setbeamercolor{bibliography entry title}{fg=block body.fg} +\setbeamercolor{bibliography entry location}{fg=block body.fg} +\setbeamercolor{bibliography entry note}{fg=block body.fg} +\setlength{\MirageGlowRadius}{0.5ex} + +% _slightly_ more prominent colours for the headline... but not so much +\makeatletter +\ifMirage@light + \setbeamercolor{section in head/foot}{fg=structure!80!MirageGray0} + \setbeamercolor{page number in head/foot}{fg=structure!80!MirageGray0} +\else + \setbeamercolor{section in head/foot}{fg=structure!90} + \setbeamercolor{page number in head/foot}{fg=structure!90} +\fi +\makeatother +\setbeamerfont{title}{size=\Huge} +\setbeamerfont{author}{size=\large} +% might need some extra vertical space when using [t] +\addtobeamertemplate{headline}{}{\vspace*{1ex}} + +% yes I've sinned by abusing and re-defining \insertnavigation to quickly +% insert the title and author in the headline... +\renewcommand*{\insertnavigation}[1]{\centering\vspace*{-1ex}% + {\usebeamerfont{title}% + \insertshorttitle[width=0.95\hsize,respectlinebreaks,center]\par}% + \vspace*{0.5ex}% + {\usebeamerfont{author}% + \insertshortauthor[width=0.95\hsize,respectlinebreaks,center]\par}% +} + + +% adjust itemize/enumerate list indents if necessary +\setlength{\leftmarginii}{1.75em} +\setlength{\leftmarginiii}{2.5em} + +\usepackage{graphicx} +\usepackage[style=numeric,natbib]{biblatex} +\addbibresource{sample-refs.bib} + + +\title{当蜃楼Mirage主题拿æ¥åšæµ·æŠ¥} +\author{作者甲ã€ä½œè€…ä¹™ã€ä½œè€…丙} +\renewcommand{\MirageFootlineContents}{Dept of XX, Uni of YY, æŸæŸå¤§å¦ï¼Œå…¶å®ƒé€‚åˆèµ„讯} + +\begin{document} + +\begin{frame} + +\begin{columns}[T] +\column{.47\textwidth} +\begin{block}{Introduction} + +\begin{itemize} + \item 看机械的白鸽\faDove{} 从空ä¸é£žè¿‡ + \item è¦å¦‚何点ç›\faEye[regular] 它æ‰å ªç§°é²œæ´» + +\begin{enumerate} + \item æ•°å—的晨æ˜\faCloudSun{} 是å¦æ›´ç¼¤çº·\faCloudMoon + \item 仿生的情人\faGrinHearts{} 是å¦æ›´å¿ è´ž\faGrin*[regular] +\end{enumerate} + + \item 推开一扇门\faDoorOpen{} 还有万åƒé‡é—¨\faDoorClosed{\small\faDoorClosed}{\footnotesize\faDoorClosed}{\scriptsize\faDoorClosed}{\tiny\faDoorClosed} +\end{itemize} + +\end{block} + +\begin{block}{é‚£æ¥è‡ªè¿‡åŽ» å¤è€çš„眼神} + \begin{enumerate} + \item 如何能辨认 æ¤åˆ»æ˜¯å¹»æ˜¯çœŸ + \begin{enumerate} + \item äººé€ çš„å¤©åˆ† 是å¦ç®—æ…§æ ¹ + \begin{enumerate} + \item 克隆的肉身 是å¦æœ‰çµé‚ + \item 永远在追问 å´ä»Žæ¥éƒ½æ²¡ç»“论 + \end{enumerate} + \end{enumerate} + \item \alert{Can it be real} + \end{enumerate} +\end{block} + +\begin{pullquote} + Can it be real\\ + The world is a mirage +\end{pullquote} + +\bigskip + +\setbeamercolor{pullquote}{fg=MirageBlue} +\renewcommand{\MiragePullquoteOpen}{\hskip-.2\ccwd『} +\begin{pullquote} +在电幻的è’丘 寻真实的绿洲\\ +渺å°å¾—如蜉è£ã€€ä¹Ÿä»°æœ›ç€å®‡å®™ +\end{pullquote} + +\column{.47\textwidth} +\begin{exampleblock}{算了我也ä¸çŸ¥é“在写什么,do you?} +Now solve $x = \frac{-b \pm \sqrt{b^2 -4ac}}{2a}$. 对å„ä½åŒå¦æ¥è¯´åº”该挑战ä¸å¤§ã€‚ +\end{exampleblock} + +\begin{alertblock}{算了我也ä¸çŸ¥é“在写什么,do you?} +\[ x = \frac{-b \pm \sqrt{b^2 -4ac}}{2a}, \quad\therefore \alpha \neq \Omega \] +\end{alertblock} + +\begin{block}{算了我也ä¸çŸ¥é“在写什么,do you?} +\[ x = \frac{-b \pm \sqrt{b^2 -4ac}}{2a}, \quad\therefore \alpha \neq \Omega \] +\end{block} + +\begin{proof} +显而易è§ï¼Œ$1+1=2$. +\end{proof} + +\begin{theorem} +有一件很美好的事情将è¦å‘生,它终会å‘生。 +\end{theorem} + +\begin{definition} +有一件很美好的事情将è¦å‘生,它终会å‘生。 +\end{definition} + +\end{columns} + +\begin{block}{Superior Images and False Horizons \citep{Mirage-Greenler1980,AtmRefrac-Hyperphysics}} +\begin{center}\includegraphics[width=0.95\hsize]{miragesup.png}\end{center} +% locally change the linespread for this English-only paragraph. +\linespread{1}\selectfont +A superior image can be produced when warm air exists over cold water. Again, using the pattern from Greenler, the vertical scale and the curvature are greatly exaggerated to show the effect. Such images are often seen at great distances in the arctic region when the air is significantly warmer than the water. Since the geometry of the mirage images depends on the details of the temperature contour, a great variety of mirage images can be formed. + +Source: \url{http://hyperphysics.phy-astr.gsu.edu/hbase/atmos/mirage.html} +\end{block} + +\vfill + +\begin{block}{\refname} +% All English refs, so... +\renewcommand*{\bibfont}{\small\linespread{1}\selectfont} +\setlength{\biblabelsep}{0.25em} +\addtolength{\bibitemsep}{-0.5ex} +\printbibliography[heading=none] +\end{block} + +\end{frame} +\end{document} diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-mirage/miragesup.png b/macros/latex/contrib/beamer-contrib/themes/beamertheme-mirage/miragesup.png Binary files differnew file mode 100644 index 0000000000..fbab14be92 --- /dev/null +++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-mirage/miragesup.png diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-mirage/sample-refs.bib b/macros/latex/contrib/beamer-contrib/themes/beamertheme-mirage/sample-refs.bib new file mode 100644 index 0000000000..d4b9f9f524 --- /dev/null +++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-mirage/sample-refs.bib @@ -0,0 +1,16 @@ +@misc{AtmRefrac-Hyperphysics, + author={Carl Rod Nave}, + year={2000}, + title={Mirages and other atomospheric optic phenomena}, + url={http://hyperphysics.phy-astr.gsu.edu/hbase/atmos/mirage.html}, + urldate={2024-09-20}, + organization={HyperPhysics, Department of Physics and Astronomy, Georgia State University} +} +@inbook{Mirage-Greenler1980, + author={Greenler, Robert}, + title={Atmospheric refraction :mirages, twinkling stars, and the green flash}, + booktitle={Rainbows, Halos, and Glories}, + publisher={Cambridge University Press}, + year={1980}, + chapter={7} +}
\ No newline at end of file diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-rainbow/README.md b/macros/latex/contrib/beamer-contrib/themes/beamertheme-rainbow/README.md index c5c10200dd..1e9c7abf21 100644 --- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-rainbow/README.md +++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-rainbow/README.md @@ -1,12 +1,12 @@ # beamertheme-rainbow -[![GitHub](https://img.shields.io/github/license/samcarter/beamertheme-rainbow.svg?color=blue)](http://www.latex-project.org/lppl.txt) -[![GitHub tag (latest SemVer)](https://img.shields.io/github/tag/samcarter/beamertheme-rainbow.svg?label=current%20version)](https://github.com/samcarter/beamertheme-rainbow/releases/latest) -[![CTAN](https://img.shields.io/ctan/v/beamertheme-rainbow.svg)](https://ctan.org/pkg/beamertheme-rainbow) +[![License](https://img.shields.io/github/license/samcarter/beamertheme-rainbow.svg?color=blue)](https://www.latex-project.org/lppl.txt) +[![GitHub tag](https://img.shields.io/github/tag/samcarter/beamertheme-rainbow.svg?label=current%20version&color=blue)](https://github.com/samcarter/beamertheme-rainbow/releases/latest) +[![CTAN](https://img.shields.io/ctan/v/beamertheme-rainbow.svg?color=blue)](https://ctan.org/pkg/beamertheme-rainbow) A beamer colour theme which alternates theme colours on every frame. -This project is licensed under the LaTeX Project Public License v1.3c or later, see http://www.latex-project.org/lppl.txt . +This project is licensed under the LaTeX Project Public License v1.3c or later, see https://www.latex-project.org/lppl.txt . The project repository, including a bug tracker, can be found at https://github.com/samcarter/beamertheme-rainbow/issues . diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-rainbow/beamercolorthemerainbow.sty b/macros/latex/contrib/beamer-contrib/themes/beamertheme-rainbow/beamercolorthemerainbow.sty index f4f9a162ee..7fba487ba7 100644 --- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-rainbow/beamercolorthemerainbow.sty +++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-rainbow/beamercolorthemerainbow.sty @@ -1,4 +1,4 @@ -% !TeX root = test.tex +% !TeX root = ./testing/test.tex %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % The rainbow colour theme @@ -9,10 +9,10 @@ % https://github.com/samcarter/beamertheme-rainbow % % Released under the LaTeX Project Public License v1.3c or later -% See http://www.latex-project.org/lppl.txt +% See https://www.latex-project.org/lppl.txt % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ProvidesPackage{beamercolorthemerainbow}[2024/04/28 version v0.2 Beamer colour theme with alternating theme colours] +\ProvidesPackage{beamercolorthemerainbow}[2024/11/14 version v1.0 Beamer colour theme with alternating theme colours] \mode<presentation> @@ -36,7 +36,8 @@ % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \DeclareOptionBeamer{colors}{\def\rainbow@colors{#1}} -\ExecuteOptionsBeamer{colors={rainbow@0,rainbow@1,rainbow@2,rainbow@3,rainbow@4,rainbow@5}} +\DeclareOptionBeamer{auto}{\def\rainbow@auto{#1}} +\ExecuteOptionsBeamer{colors={rainbow@0,rainbow@1,rainbow@2,rainbow@3,rainbow@4,rainbow@5},auto=frame} \ProcessOptionsBeamer %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -50,18 +51,54 @@ \clist_new:N \l_rainbow_clist \clist_set:Nx \l_rainbow_clist \rainbow@colors -% setting colour based on frame number -\pretocmd{\beamer@@@frame}{ +\newcounter{rainbow@count} + +% macro to switch to next colour +\newcommand{\rainbow}{ + \addtocounter{rainbow@count}{1} \colorlet{beamer@structure@color}{ \clist_item:Nn \l_rainbow_clist { \int_eval:n { - \int_mod:nn { \insertframenumber }{ + \int_mod:nn { \value{rainbow@count} }{ \clist_count:N \l_rainbow_clist } + 1 } } } -}{}{} +} + +% switch colour at start of frame +\str_if_eq:eeT { \rainbow@auto } { frame } { + \pretocmd{\beamer@@@frame}{ + \ifnum\thepage>1 + \rainbow + \fi + }{}{} +} + +% switch colour at start of section +\str_if_eq:eeT { \rainbow@auto } { section } { + \AddToHook{cmd/section/before}{% + \ifnum\thepage>1 + \rainbow + \fi + } +} + +% switch colour at start of subsection +\str_if_eq:eeT { \rainbow@auto } { subsection } { + \AddToHook{cmd/subsection/before}{% + \ifnum\thepage>1 + \rainbow + \fi + } +} + +% initially use first colour from the list +\AtBeginDocument{ + \setcounter{rainbow@count}{-1} + \rainbow +} \ExplSyntaxOff diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-rainbow/beamertheme-rainbow-doc-settings.sty b/macros/latex/contrib/beamer-contrib/themes/beamertheme-rainbow/beamertheme-rainbow-doc-settings.sty index 777cedba6e..dbe497f34b 100644 --- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-rainbow/beamertheme-rainbow-doc-settings.sty +++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-rainbow/beamertheme-rainbow-doc-settings.sty @@ -21,7 +21,7 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \RequirePackage{xcolor} \definecolor{samyellow}{RGB}{246,193,65} -\definecolor{samorange}{RGB}{241,147,45} +\definecolor{samorange}{RGB}{241,147,45}% pgfplotsthemebeamer \definecolor{samred}{RGB}{191,26,46}% TikZbricks \definecolor{sammagenta}{RGB}{170,42,104}% TikZmarmots \definecolor{samviolet}{RGB}{136,46,114}% TikZlings @@ -68,67 +68,27 @@ \RequirePackage{inconsolata}% mono font with bold, but italic is missing % \RequirePackage[scale=0.85]{cascadia-code} % \AddToHook{cmd/ttfamily/before}{\fontseries{sl}} -\RequirePackage{iexec} +\usepackage{synthslant}% to fake slented comments in inconsolata %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % Listings % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\RequirePackage[ - cachedir=$TMPDIR/minted/ -]{minted} - -% smuggling custom pygmentize style in cache folder -% (a real pygmentise style would need installtion in some python folder) -\begin{filecontents*}[noheader]{./sam.pygstyle} -\makeatletter -\def\PYG@reset{\let\PYG@it=\relax \let\PYG@bf=\relax% - \let\PYG@ul=\relax \let\PYG@tc=\relax% - \let\PYG@bc=\relax \let\PYG@ff=\relax} -\def\PYG@tok#1{\csname PYG@tok@#1\endcsname} -\def\PYG@toks#1+{\ifx\relax#1\empty\else% - \PYG@tok{#1}\expandafter\PYG@toks\fi} -\def\PYG@do#1{\PYG@bc{\PYG@tc{\PYG@ul{% - \PYG@it{\PYG@bf{\PYG@ff{#1}}}}}}} -\def\PYG#1#2{\PYG@reset\PYG@toks#1+\relax+\PYG@do{#2}} - -% optional arguments -\expandafter\def\csname PYG@tok@na\endcsname{\def\PYG@tc##1{\textcolor{black}{##1}}} - -% macros -\expandafter\def\csname PYG@tok@k\endcsname{\def\PYG@tc##1{\textcolor{listingcolor}{\bfseries ##1}}} -% curly brakets -\expandafter\def\csname PYG@tok@nb\endcsname{\def\PYG@tc##1{\textcolor{listingcolor}{\bfseries ##1}}} - -% comments (italics won't work with the inconsolata font) -\expandafter\def\csname PYG@tok@c\endcsname{\def\PYG@tc##1{\textcolor{gray}{##1}}} - -\def\PYGZbs{\char`\\} -\def\PYGZus{\char`\_} -\def\PYGZob{\char`\{} -\def\PYGZcb{\char`\}} -\def\PYGZca{\char`\^} -\def\PYGZam{\char`\&} -\def\PYGZlt{\char`\<} -\def\PYGZgt{\char`\>} -\def\PYGZsh{\char`\#} -\def\PYGZpc{\char`\%} -\def\PYGZdl{\char`\$} -\def\PYGZhy{\char`\-} -\def\PYGZsq{\char`\'} -\def\PYGZdq{\char`\"} -\def\PYGZti{\char`\~} -% for compatibility with earlier versions -\def\PYGZat{@} -\def\PYGZlb{[} -\def\PYGZrb{]} -\makeatother -\end{filecontents*} - -\iexec{mkdir -p $TMPDIR/minted && mv sam.pygstyle $TMPDIR/minted/.} +\RequirePackage[cachedir=./.minted]{minted} + +\AddToHook{env/MintedVerbatim/before}{% + % optional arguments + \@namedef{PYG@tok@na}{\def\PYG@tc##1{\textcolor{black}{##1}}}% + % macros + \@namedef{PYG@tok@k}{\def\PYG@tc##1{\textcolor{listingcolor}{\bfseries ##1}}}% + % curly brakets + \@namedef{PYG@tok@nb}{\def\PYG@tc##1{\textcolor{listingcolor}{\bfseries ##1}}}% + % comments (italics won't work with the inconsolata font) + \@namedef{PYG@tok@c}{\def\PYG@tc##1{\textcolor{gray}{\textsynthslant{##1}}}}% +} -\usemintedstyle{sam} +\usemintedstyle{default} \setminted{ breaksymbolleft={}, tabsize=2, diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-rainbow/beamertheme-rainbow-doc.pdf b/macros/latex/contrib/beamer-contrib/themes/beamertheme-rainbow/beamertheme-rainbow-doc.pdf Binary files differindex 78442b5a99..faa5d375df 100644 --- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-rainbow/beamertheme-rainbow-doc.pdf +++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-rainbow/beamertheme-rainbow-doc.pdf diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-rainbow/beamertheme-rainbow-doc.tex b/macros/latex/contrib/beamer-contrib/themes/beamertheme-rainbow/beamertheme-rainbow-doc.tex index e5819e54b9..817d931703 100644 --- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-rainbow/beamertheme-rainbow-doc.tex +++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-rainbow/beamertheme-rainbow-doc.tex @@ -8,7 +8,7 @@ % https://github.com/samcarter/beamertheme-rainbow % % Released under the LaTeX Project Public License v1.3c or later -% See http://www.latex-project.org/lppl.txt +% See https://www.latex-project.org/lppl.txt % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % !TeX program = txs:///arara @@ -31,14 +31,12 @@ \url{https://github.com/samcarter/beamertheme-rainbow}\\ \url{https://www.ctan.org/pkg/beamertheme-rainbow} }{samcarter}} -\date{Version v0.2 \textendash{} 2024/04/28} +\date{Version v1.0 \textendash{} 2024/11/14} \usepackage[ themecolor=samlila ]{\jobname-settings} -\colorlet{orange}{samorange} - % rainbow text (based on the gradient-text package) %%%%%%%%%%%%%%%%% \makeatletter \ExplSyntaxOn @@ -94,14 +92,14 @@ \section{Introduction} \label{intro} -The rainbow beamer colour theme will bring more colours to your presentation. It works similarly to the structure beamer colour theme, but instead of having just one theme colour throughout the whole presentation, the rainbow beamer colour theme will cycle through a list of colors and change the theme colour on every frame. +The rainbow beamer colour theme will bring more colours to your presentation. It works similarly to the structure beamer colour theme, but instead of having just one theme colour throughout the whole presentation, the rainbow beamer colour theme will cycle through a list of colours and change the theme colour on every frame or (sub)section. By default, it will cycle through colours of the rainbow (hence the name), but a custom set of colours is also possible. -The package is included in \TeX{}Live and MiK\TeX\ and available from \textsc{CTAN} (\url{https://www.ctan.org/pkg/beamertheme-tcolorbox}). +The package is included in \texlive and \miktex and available from \CTAN (\url{https://www.ctan.org/pkg/beamertheme-tcolorbox}). The development version of this package is located at \url{https://github.com/samcarter/beamertheme-rainbow}. If you have any problems, ideas or other feedback, please make constructive use of the issue tracker. -Copyright \raisebox{0.2em}{\tiny\fontfamily{cmr}\selectfont\textcopyright} \texttt{samcarter}. Permission is granted to copy, distribute and\slash or modify this software under the terms of the LaTeX project public licence, version 1.3c or later \url{http://www.latex-project.org/lppl.txt}. +Copyright \raisebox{0.2em}{\tiny\fontfamily{cmr}\selectfont\textcopyright} \texttt{samcarter}. Permission is granted to copy, distribute and\slash or modify this software under the terms of the LaTeX project public licence, version 1.3c or later \url{https://www.latex-project.org/lppl.txt}. \section{Usage} @@ -131,19 +129,22 @@ This basic usage will colour frames in alternating rainbow colours: }, title={Basic example} } -\documentclass{beamer} - -\usetheme{Berkeley} -\usecolortheme{rainbow} - -\begin{document} - -% just for this test example -\ExplSyntaxOn -\prg_replicate:nn{6}{\frame{}} -\ExplSyntaxOff - -\end{document} + \documentclass{beamer} + + \usetheme{Berkeley} + \usecolortheme{rainbow} + + \begin{document} + + % just for this test example + \ExplSyntaxOn + \prg_replicate:nn{6}{ + \begin{frame} + \end{frame} + } + \ExplSyntaxOff + + \end{document} \end{tcblisting} As pretty as rainbow colours are, there might be some users who would like to choose their own colours. This can be done with the \saminline|colors={...}| option which accepts a comma separated list of colours. The colours can be predefined colours e.g. from the \saminline|xcolor| package, user-defined colours or (for more fun) from the \saminline|xkcdcolors| package. @@ -163,30 +164,114 @@ As pretty as rainbow colours are, there might be some users who would like to ch }, title={\strut Custom colours} } -\documentclass{beamer} - -\usetheme{Copenhagen} -\usepackage{xkcdcolors} -\definecolor{mycolor} - {RGB}{101,67,159} -\usecolortheme[ - colors={ - orange, - mycolor, - xkcdMediumBlue + \documentclass{beamer} + + \usetheme{Copenhagen} + \usepackage{xkcdcolors} + \definecolor{mycolor}{RGB}{101,67,159} + + \usecolortheme[ + colors={ + orange, + mycolor, + xkcdMediumBlue + } + ]{rainbow} + + \begin{document} + + % just for this test example + \ExplSyntaxOn + \prg_replicate:nn{6}{ + \begin{frame} + \frametitle{Title} + \end{frame} } -]{rainbow} + \ExplSyntaxOff + + \end{document} +\end{tcblisting} -\begin{document} +Changing the colour on every frame might be too frequent. For these use cases, the theme offers the option \saminline|auto=...|, which allows the user to control when automatic colour changes should happen. Possible values are \saminline|frame| (default), \saminline|section| and \saminline|subsection|. All other values will disable automatic colour changes. -% just for this test example -\ExplSyntaxOn -\prg_replicate:nn{6}{ - \frame{\frametitle{title}} +\begin{tcblisting}{ + listing and comment, + pdf comment, + freeze pdf, + compilable listing, + run pdflatex, + comment={ + \begin{tikzpicture} + \foreach \i in {1,...,3}{% + \node at (0.35*\i,-0.7*\i) {\includegraphics[page=\i,width=3.7cm]{beamertheme-rainbow-doc-listing-3.pdf}}; + } + \end{tikzpicture} + }, + title={\strut Automatic colour changing} } -\ExplSyntaxOff + \documentclass{beamer} + + \usetheme{Bergen} + \usecolortheme[ + colors={blue,red}, + auto=section + ]{rainbow} + + \begin{document} + + \begin{frame} + \end{frame} + + \section{Section} + \begin{frame} + \end{frame} + \begin{frame} + \end{frame} + + \end{document} +\end{tcblisting} -\end{document} +It is also possible to manually change to the next colour using the macro \saminline|\rainbow|: + +\begin{tcblisting}{ + listing and comment, + pdf comment, + freeze pdf, + compilable listing, + run pdflatex, + comment={ + \begin{tikzpicture} + \foreach \i in {1,...,3}{% + \node at (0.35*\i,-0.7*\i) {\includegraphics[page=\i,width=3.7cm]{beamertheme-rainbow-doc-listing-4.pdf}}; + } + \end{tikzpicture} + }, + title={\strut Manual colour changing} +} + \documentclass{beamer} + + \usetheme{Rochester} + \usecolortheme[ + colors={orange,teal}, + auto=none + ]{rainbow} + + \begin{document} + + \begin{frame} + \frametitle{Title} + \end{frame} + \begin{frame} + \frametitle{Title} + \end{frame} + + \rainbow + + \begin{frame} + \frametitle{Title} + \end{frame} + + \end{document} \end{tcblisting} \end{document} diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-simpledarkblue/README.md b/macros/latex/contrib/beamer-contrib/themes/beamertheme-simpledarkblue/README.md index 9da9fcca74..8cfc30ffff 100644 --- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-simpledarkblue/README.md +++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-simpledarkblue/README.md @@ -1,20 +1,17 @@ -# Simple Beamer Theme +# 🫠SimpleDarkBlue Beamer Theme -A simple and clear beamer template. +SimpleDarkBlue Beamer Theme provides a simple and clear LaTeX template for creating professional presentations. Featuring dark blue as its primary color, the theme prioritizes clarity and readability, making it an excellent choice for researchers, educators, and students. -**Website:** +> If you like this theme, you may also be interested in my other beamer theme, [ðŸƒSimplePlus](https://github.com/pm25/SimplePlus-BeamerTheme). -https://github.com/PM25/SimpleDarkBlue-BeamerTheme +## Links -**Lead author:** +Explore or download the SimpleDarkBlue Beamer Theme: -Pin-Yen Huang (pyhuang97@gmail.com) - -**Compiled sample document:** - -beamertheme-simpledarkblue-sample.pdf +- **[Overleaf](https://www.overleaf.com/latex/templates/simple-beamer-theme/cyjyxkdttqzs)** – Use it instantly with a web-based LaTeX editor. +- **[CTAN](https://ctan.org/pkg/beamertheme-simpledarkblue)** – Download and integrate it into your local LaTeX setup. +- **[Github](https://github.com/pm25/SimpleDarkBlue-BeamerTheme)** – View the source code. ## License -This is free and unencumbered software released into the public domain. -For more information, please see the file `LICENSE` or refer to <http://unlicense.org>. +This project is released under the **Unlicense License**, granting you complete freedom to use, modify, and distribute the template. For more details, see the [LICENSE](./LICENSE) file. diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-simpledarkblue/beamercolorthemeSimpleDarkBlue.sty b/macros/latex/contrib/beamer-contrib/themes/beamertheme-simpledarkblue/beamercolorthemeSimpleDarkBlue.sty index 06711c3d9e..de5a266000 100644 --- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-simpledarkblue/beamercolorthemeSimpleDarkBlue.sty +++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-simpledarkblue/beamercolorthemeSimpleDarkBlue.sty @@ -1,34 +1,39 @@ -% !TEX TS-program = xelatex -% !TEX encoding = UTF-8 Unicode +%------------------------------------------------------------- +% Package: beamertheme-SimpleDarkBlue +% Author: Pin-Yen Huang (pyhuang97@gmail.com) +% Version: 1.1, 2025-01-12 +% Link: https://github.com/pm25/SimpleDarkBlue-BeamerTheme +% This is free and unencumbered software released into the +% public domain; see <http://unlicense.org> for details. +%------------------------------------------------------------- -%---------------------------------------------------------------------------------------- -% File: beamercolorthemeSimpleDarkBlue.sty -% Author: Pin-Yen Huang (pyhuang97@gmail.com) -% link: https://github.com/PM25/SimpleDarkBlue-BeamerTheme -% This is free and unencumbered software released into the -% public domain; see <http://unlicense.org> for details. -%---------------------------------------------------------------------------------------- +%-------------------------------------- +% Color Settings +%-------------------------------------- -\definecolor{InvisibleRed}{rgb}{0.92, 0.9, 0.9} -\definecolor{InvisibleGreen}{rgb}{0.9, 0.92, 0.9} -\definecolor{InvisibleBlue}{rgb}{0.9, 0.9, 0.92} +% define custom colors +\definecolor{MutedRed}{rgb}{0.97, 0.92, 0.92} +\definecolor{MutedGreen}{rgb}{0.92, 0.97, 0.92} +\definecolor{MutedBlue}{rgb}{0.92, 0.92, 0.97} +\definecolor{MutedBlack}{rgb}{0.95, 0.95, 0.95} -\definecolor{LightBlue}{rgb}{0.4, 0.55, 0.65} +\definecolor{MediumRed}{rgb}{0.925, 0.345, 0.345} +\definecolor{MediumGreen}{rgb}{0.37, 0.7, 0.66} +\definecolor{MediumBlue}{rgb}{0.015, 0.315, 0.45} +\definecolor{MediumBlack}{rgb}{0.219, 0.259, 0.349} -\definecolor{MediumRed}{rgb}{0.92549, 0.34509, 0.34509} -\definecolor{MediumGreen}{rgb}{0.36862, 0.66666, 0.65882} -\definecolor{MediumBlue}{rgb}{0.01176, 0.31372, 0.43529} - -\definecolor{DarkBlue}{rgb}{0.05, 0.15, 0.3} +\definecolor{DarkBlue}{rgb}{0.05, 0.15, 0.35} +% set beamer color themes \usecolortheme[named=DarkBlue]{structure} -\setbeamercolor{palette primary}{bg=DarkBlue,fg=white} -\setbeamercolor{palette secondary}{bg=MediumBlue,fg=white} -\setbeamercolor{palette tertiary}{bg=LightBlue,fg=white} -\setbeamercolor{block title}{bg=MediumBlue} -\setbeamercolor{block body}{bg=InvisibleBlue} -\setbeamercolor{block title example}{bg=MediumGreen} -\setbeamercolor{block body example}{bg=InvisibleGreen} -\setbeamercolor{block title alerted}{bg=MediumRed} -\setbeamercolor{block body alerted}{bg=InvisibleRed}
\ No newline at end of file +% customize colors for elements +\setbeamercolor{title}{bg=DarkBlue,fg=white} +\setbeamercolor{frametitle}{bg=DarkBlue,fg=white} + +\setbeamercolor{block title}{fg=white,bg=MediumBlue} +\setbeamercolor{block body}{fg=black,bg=MutedBlue} +\setbeamercolor{block title example}{fg=white,bg=MediumGreen} +\setbeamercolor{block body example}{fg=black,bg=MutedGreen} +\setbeamercolor{block title alerted}{fg=white,bg=MediumRed} +\setbeamercolor{block body alerted}{fg=black,bg=MutedRed}
\ No newline at end of file diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-simpledarkblue/beamerfontthemeSimpleDarkBlue.sty b/macros/latex/contrib/beamer-contrib/themes/beamertheme-simpledarkblue/beamerfontthemeSimpleDarkBlue.sty index 00dd65f4d0..1ad490cf56 100644 --- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-simpledarkblue/beamerfontthemeSimpleDarkBlue.sty +++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-simpledarkblue/beamerfontthemeSimpleDarkBlue.sty @@ -1,15 +1,15 @@ -% !TEX TS-program = xelatex -% !TEX encoding = UTF-8 Unicode - -%---------------------------------------------------------------------------------------- -% File: beamerfontthemeSimpleDarkBlue.sty -% Author: Pin-Yen Huang (pyhuang97@gmail.com) -% link: https://github.com/PM25/SimpleDarkBlue-BeamerTheme -% This is free and unencumbered software released into the -% public domain; see <http://unlicense.org> for details. -%---------------------------------------------------------------------------------------- - -\mode<presentation> +%------------------------------------------------------------- +% Package: beamertheme-SimpleDarkBlue +% Author: Pin-Yen Huang (pyhuang97@gmail.com) +% Version: 1.1, 2025-01-12 +% Link: https://github.com/pm25/SimpleDarkBlue-BeamerTheme +% This is free and unencumbered software released into the +% public domain; see <http://unlicense.org> for details. +%------------------------------------------------------------- + +%-------------------------------------- +% Font Settings +%-------------------------------------- \setbeamerfont{structure}{family=\sffamily,series=\mdseries} @@ -17,19 +17,16 @@ \setbeamerfont{subtitle}{size=\normalsize,parent=title} \setbeamerfont{date}{size=\scriptsize,series=\mdseries,parent=structure} -\setbeamerfont{author}{size=\Large,series=\mdseries,parent=structure} +\setbeamerfont{author}{size=\large,series=\mdseries,parent=structure} \setbeamerfont{institute}{size=\scriptsize,series=\mdseries,parent=structure} -\setbeamerfont{section in toc}{size=\Large,parent=structure} +\setbeamerfont{section in toc}{size=\large,parent=structure} \setbeamerfont{section in head/foot}{size=\tiny,parent=structure} -\setbeamerfont{subsection in toc}{size=\large,parent={section in toc}} +\setbeamerfont{subsection in toc}{size=\small,parent={section in toc}} -\setbeamerfont{frametitle}{parent=structure,size=\LARGE} -\setbeamerfont{framesubtitle}{parent=frametitle,size=\Large} +\setbeamerfont{frametitle}{size=\Large,parent=structure} +\setbeamerfont{framesubtitle}{parent=frametitle,size=\large} \setbeamerfont{caption}{size=\footnotesize} \setbeamerfont{item}{parent=structure,series=\mdseries} -\setbeamerfont{block title}{size=\large,series=\mdseries,parent={structure,block body}} - -\mode -<all> +\setbeamerfont{block title}{size=\large,series=\mdseries,parent={structure,block body}}
\ No newline at end of file diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-simpledarkblue/beamerinnerthemeSimpleDarkBlue.sty b/macros/latex/contrib/beamer-contrib/themes/beamertheme-simpledarkblue/beamerinnerthemeSimpleDarkBlue.sty new file mode 100644 index 0000000000..e94505feb3 --- /dev/null +++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-simpledarkblue/beamerinnerthemeSimpleDarkBlue.sty @@ -0,0 +1,70 @@ +%------------------------------------------------------------- +% Package: beamertheme-SimpleDarkBlue +% Author: Pin-Yen Huang (pyhuang97@gmail.com) +% Version: 1.1, 2025-01-12 +% Link: https://github.com/pm25/SimpleDarkBlue-BeamerTheme +% This is free and unencumbered software released into the +% public domain; see <http://unlicense.org> for details. +%------------------------------------------------------------- + +%-------------------------------------- +% Inner Theme Settings +%-------------------------------------- + +\pgfdeclareverticalshading[lower.bg,upper.bg]{bmb@transition}{200cm}{% +color(0pt)=(lower.bg); color(2pt)=(lower.bg); color(4pt)=(lower.bg)} + +\setbeamersize{text margin left=2em,text margin right=2em} + +\setbeamertemplate{footline}[frame number] +\setbeamertemplate{navigation symbols}{} + +\setbeamertemplate{blocks}[rounded][shadow=true] + +\setbeamertemplate{enumerate items}[default] +\setbeamertemplate{enumerate subitem}[default] +\setbeamertemplate{itemize items}[circle] +\setbeamertemplate{itemize subitem}[circle] + +% table of contents (overview) settings +\setbeamertemplate{section in toc}[sections numbered] +\setbeamertemplate{subsection in toc}{% + \leavevmode + \leftskip=3.2em + \rlap{\hskip-2em\inserttocsectionnumber.\inserttocsubsectionnumber} + \inserttocsubsection\par +} + +% title page customization +\setbeamertemplate{title page}{% + \vspace{6em} + \begingroup + \centering + % ------------------------ + \begin{beamercolorbox}[sep=10pt,center,shadow=true,rounded=true]{title} + \usebeamerfont{title}\inserttitle\par% + \ifx\insertsubtitle\@empty% + \else% + \vskip0.25em% + {\usebeamerfont{subtitle}\usebeamercolor[fg]{subtitle}\insertsubtitle\par}% + \fi% + \end{beamercolorbox}% + \vskip0.5em\par + % ------------------------ + \begin{beamercolorbox}[sep=8pt,center]{author} + \usebeamerfont{author}\insertauthor + \end{beamercolorbox} + \vskip-1em + % ------------------------ + \begin{beamercolorbox}[sep=8pt,center]{institute} + \usebeamerfont{institute}\insertinstitute + \end{beamercolorbox} + % ------------------------ + \begin{beamercolorbox}[sep=8pt,center]{date} + \usebeamerfont{date}\insertdate + \end{beamercolorbox}\vskip0.5em + % ------------------------ + {\usebeamercolor[fg]{titlegraphic}\inserttitlegraphic\par} + \endgroup + \vfill +}
\ No newline at end of file diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-simpledarkblue/beamertheme-simpledarkblue-sample.pdf b/macros/latex/contrib/beamer-contrib/themes/beamertheme-simpledarkblue/beamertheme-simpledarkblue-sample.pdf Binary files differindex 658cfe5ed7..8b3e834332 100644 --- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-simpledarkblue/beamertheme-simpledarkblue-sample.pdf +++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-simpledarkblue/beamertheme-simpledarkblue-sample.pdf diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-simpledarkblue/beamertheme-simpledarkblue-sample.tex b/macros/latex/contrib/beamer-contrib/themes/beamertheme-simpledarkblue/beamertheme-simpledarkblue-sample.tex index 13c282eaae..fbdab971c7 100644 --- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-simpledarkblue/beamertheme-simpledarkblue-sample.tex +++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-simpledarkblue/beamertheme-simpledarkblue-sample.tex @@ -1,5 +1,5 @@ %---------------------------------------------------------------------------------------- -% PACKAGES AND THEMES +% PACKAGES AND THEMES %---------------------------------------------------------------------------------------- \documentclass[aspectratio=169,xcolor=dvipsnames]{beamer} @@ -10,25 +10,23 @@ \usepackage{booktabs} % Allows the use of \toprule, \midrule and \bottomrule in tables %---------------------------------------------------------------------------------------- -% TITLE PAGE +% TITLE PAGE %---------------------------------------------------------------------------------------- -\title[short title]{Simple Dark Blue Theme} % The short title appears at the bottom of every slide, the full title is only on the title page +\title{SimpleDarkBlue Beamer Theme} \subtitle{Subtitle} -\author[Pin-Yen] {Pin-Yen Huang} +\author{Pin-Yen Huang} -\institute[NTU] % Your institution as it will appear on the bottom of every slide, may be shorthand to save space +\institute { Department of Computer Science and Information Engineering \\ National Taiwan University % Your institution for the title page - \vskip 3pt } -\date{July 25, 2021} % Date, can be changed to a custom date - +\date{\today} % Date, can be changed to a custom date %---------------------------------------------------------------------------------------- -% PRESENTATION SLIDES +% PRESENTATION SLIDES %---------------------------------------------------------------------------------------- \begin{document} @@ -88,7 +86,7 @@ \item Example \end{enumerate} - \column{.5\textwidth} % Right column and width + \column{.45\textwidth} % Right column and width Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer lectus nisl, ultricies in feugiat rutrum, porttitor sit amet augue. Aliquam ut tortor mauris. Sed volutpat ante purus, quis accumsan dolor. \end{columns} @@ -142,20 +140,15 @@ %------------------------------------------------ \begin{frame}{References} - % Beamer does not support BibTeX so references must be inserted manually as below - \footnotesize{ - \begin{thebibliography}{99} - \bibitem[Smith, 2012]{p1} John Smith (2012) - \newblock Title of the publication - \newblock \emph{Journal Name} 12(3), 45 -- 678. - \end{thebibliography} - } + \footnotesize + \bibliography{reference.bib} + \bibliographystyle{apalike} \end{frame} %------------------------------------------------ \begin{frame} - \Huge{\centerline{The End}} + \Huge{\centerline{\textbf{The End}}} \end{frame} %---------------------------------------------------------------------------------------- diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-simpledarkblue/beamerthemeSimpleDarkBlue.sty b/macros/latex/contrib/beamer-contrib/themes/beamertheme-simpledarkblue/beamerthemeSimpleDarkBlue.sty index 33b883f5da..3a90f8f826 100644 --- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-simpledarkblue/beamerthemeSimpleDarkBlue.sty +++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-simpledarkblue/beamerthemeSimpleDarkBlue.sty @@ -1,31 +1,20 @@ -% !TEX TS-program = xelatex -% !TEX encoding = UTF-8 Unicode +%------------------------------------------------------------- +% Package: beamertheme-SimpleDarkBlue +% Author: Pin-Yen Huang (pyhuang97@gmail.com) +% Version: 1.1, 2025-01-12 +% Link: https://github.com/pm25/SimpleDarkBlue-BeamerTheme +% This is free and unencumbered software released into the +% public domain; see <http://unlicense.org> for details. +%------------------------------------------------------------- -%---------------------------------------------------------------------------------------- -% File: beamerthemeSimpleDarkBlue.sty -% Author: Pin-Yen Huang (pyhuang97@gmail.com) -% link: https://github.com/PM25/SimpleDarkBlue-BeamerTheme -% This is free and unencumbered software released into the -% public domain; see <http://unlicense.org> for details. -%---------------------------------------------------------------------------------------- +%-------------------------------------- +% Beamer Settings +%-------------------------------------- \mode<presentation> -% Settings -\usetheme{Madrid} -\useinnertheme{circles} -% \useoutertheme{simpleinfo} -% \useoutertheme{miniframes} % Alternatively: miniframes, infolines, split \usefonttheme{SimpleDarkBlue} \usecolortheme{SimpleDarkBlue} - -% \setbeamertemplate{footline} % To remove the footer line in all slides uncomment this line -\setbeamertemplate{footline}[page number] % To replace the footer line in all slides with a simple slide count uncomment this line -\setbeamertemplate{navigation symbols}{} % To remove the navigation symbols from the bottom of all slides uncomment this line -\setbeamertemplate{blocks}[rounded][shadow=true] -\setbeamertemplate{enumerate items}[default] -% table of contents (overview) -\setbeamertemplate{section in toc}[sections numbered] -\setbeamertemplate{subsection in toc}[default] +\useinnertheme{SimpleDarkBlue} \mode<all>
\ No newline at end of file diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-simpledarkblue/reference.bib b/macros/latex/contrib/beamer-contrib/themes/beamertheme-simpledarkblue/reference.bib new file mode 100644 index 0000000000..20a1e8119e --- /dev/null +++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-simpledarkblue/reference.bib @@ -0,0 +1,9 @@ +@article{p1, + author = {John Smith}, + title = {Title of the publication}, + journal = {Journal Name}, + year = {2012}, + volume = {12}, + number = {3}, + pages = {45--678} +}
\ No newline at end of file diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-simpleplus/README.md b/macros/latex/contrib/beamer-contrib/themes/beamertheme-simpleplus/README.md index b39a3a0290..beacd9c471 100644 --- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-simpleplus/README.md +++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-simpleplus/README.md @@ -1,24 +1,11 @@ -# SimplePlus Beamer Theme +# 🃠SimplePlus Beamer Theme -A simple and clean beamer template. +The **SimplePlus Beamer Theme** is a minimalist and elegant LaTeX template tailored for academic and scientific presentations. -**Website:** - -https://github.com/PM25/SimplePlus-BeamerTheme - -**Overleaf:** - -https://www.overleaf.com/latex/templates/simpleplus-beamertheme/wfmfjhdcrdfx - -**Author:** - -Pin-Yen Huang (pyhuang97@gmail.com) - -**Compiled sample document:** - -beamertheme-simpleplus-sample.pdf +- Overleaf: https://www.overleaf.com/latex/templates/simpleplus-beamertheme/wfmfjhdcrdfx +- CTAN: https://ctan.org/pkg/beamertheme-simpleplus +- Github: https://github.com/pm25/SimplePlus-BeamerTheme ## License -This is free and unencumbered software released into the public domain. -For more information, please see the file `LICENSE` or refer to <http://unlicense.org>.
\ No newline at end of file +This project is released under the **Unlicense License**, granting you complete freedom to use, modify, and distribute the template. For more details, see the [LICENSE](./LICENSE) file.
\ No newline at end of file diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-simpleplus/beamercolorthemeSimplePlus.sty b/macros/latex/contrib/beamer-contrib/themes/beamertheme-simpleplus/beamercolorthemeSimplePlus.sty index 906498e407..5ab1413ee0 100644 --- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-simpleplus/beamercolorthemeSimplePlus.sty +++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-simpleplus/beamercolorthemeSimplePlus.sty @@ -1,33 +1,37 @@ -% !TEX TS-program = xelatex -% !TEX encoding = UTF-8 Unicode +%------------------------------------------------------------- +% Package: beamertheme-SimplePlus +% Author: Pin-Yen Huang (pyhuang97@gmail.com) +% Version: 1.1, 2025-01-07 +% Link: https://github.com/pm25/SimplePlus-BeamerTheme +% This is free and unencumbered software released into the +% public domain; see <http://unlicense.org> for details. +%------------------------------------------------------------- -%---------------------------------------------------------------------------------------- -% Package: beamertheme-SimplePlus -% Author: Pin-Yen Huang (pyhuang97@gmail.com) -% Version: 1.0, 2021-12-16 -% Link: https://github.com/PM25/SimplePlus-BeamerTheme -% This is free and unencumbered software released into the -% public domain; see <http://unlicense.org> for details. -%---------------------------------------------------------------------------------------- +%-------------------------------------- +% Color Settings +%-------------------------------------- -% define color -\definecolor{InvisibleRed}{rgb}{0.97, 0.92, 0.92} -\definecolor{InvisibleGreen}{rgb}{0.92, 0.97, 0.92} -\definecolor{InvisibleBlue}{rgb}{0.92, 0.92, 0.97} +% define custom colors +\definecolor{MutedRed}{rgb}{0.97, 0.92, 0.92} +\definecolor{MutedGreen}{rgb}{0.92, 0.97, 0.92} +\definecolor{MutedBlue}{rgb}{0.92, 0.92, 0.97} +\definecolor{MutedBlack}{rgb}{0.95, 0.95, 0.95} \definecolor{MediumRed}{rgb}{0.925, 0.345, 0.345} \definecolor{MediumGreen}{rgb}{0.37, 0.7, 0.66} \definecolor{MediumBlue}{rgb}{0.015, 0.315, 0.45} +\definecolor{MediumBlack}{rgb}{0.219, 0.259, 0.349} -\definecolor{DarkBlue}{rgb}{0.05, 0.15, 0.35} +\definecolor{DarkBlue}{rgb}{0.05, 0.15, 0.35} -% set color +% set beamer color themes \usecolortheme[named=DarkBlue]{structure} +% customize colors for elements \setbeamercolor{titlelike}{parent=structure} -\setbeamercolor{block title}{bg=MediumBlue} -\setbeamercolor{block body}{bg=InvisibleBlue} -\setbeamercolor{block title example}{bg=MediumGreen} -\setbeamercolor{block body example}{bg=InvisibleGreen} -\setbeamercolor{block title alerted}{bg=MediumRed} -\setbeamercolor{block body alerted}{bg=InvisibleRed}
\ No newline at end of file +\setbeamercolor{block title}{fg=white,bg=MediumBlue} +\setbeamercolor{block body}{fg=black,bg=MutedBlue} +\setbeamercolor{block title example}{fg=white,bg=MediumGreen} +\setbeamercolor{block body example}{fg=black,bg=MutedGreen} +\setbeamercolor{block title alerted}{fg=white,bg=MediumRed} +\setbeamercolor{block body alerted}{fg=black,bg=MutedRed}
\ No newline at end of file diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-simpleplus/beamerfontthemeSimplePlus.sty b/macros/latex/contrib/beamer-contrib/themes/beamertheme-simpleplus/beamerfontthemeSimplePlus.sty index 9c57bc7cc3..840a09a679 100644 --- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-simpleplus/beamerfontthemeSimplePlus.sty +++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-simpleplus/beamerfontthemeSimplePlus.sty @@ -1,38 +1,32 @@ -% !TEX TS-program = xelatex -% !TEX encoding = UTF-8 Unicode - -%---------------------------------------------------------------------------------------- -% Package: beamertheme-SimplePlus -% Author: Pin-Yen Huang (pyhuang97@gmail.com) -% Version: 1.0, 2021-12-16 -% Link: https://github.com/PM25/SimplePlus-BeamerTheme -% This is free and unencumbered software released into the -% public domain; see <http://unlicense.org> for details. -%---------------------------------------------------------------------------------------- - -\mode<presentation> - -%%%%%%%%%%%% fonts +%------------------------------------------------------------- +% Package: beamertheme-SimplePlus +% Author: Pin-Yen Huang (pyhuang97@gmail.com) +% Version: 1.1, 2025-01-07 +% Link: https://github.com/pm25/SimplePlus-BeamerTheme +% This is free and unencumbered software released into the +% public domain; see <http://unlicense.org> for details. +%------------------------------------------------------------- + +%-------------------------------------- +% Font Settings +%-------------------------------------- \setbeamerfont{structure}{family=\sffamily,series=\mdseries} -\setbeamerfont{title}{size=\huge,series=\bfseries,parent=structure} +\setbeamerfont{title}{size=\LARGE,series=\bfseries,parent=structure} \setbeamerfont{subtitle}{size=\normalsize,parent=title} \setbeamerfont{date}{size=\scriptsize,series=\mdseries,parent=structure} \setbeamerfont{author}{size=\large,series=\mdseries,parent=structure} \setbeamerfont{institute}{size=\scriptsize,series=\mdseries,parent=structure} -\setbeamerfont{section in toc}{size=\Large,series=\bfseries,parent=structure} +\setbeamerfont{section in toc}{size=\large,series=\bfseries,parent=structure} \setbeamerfont{section in head/foot}{size=\tiny,parent=structure} \setbeamerfont{subsection in toc}{size=\small,series=\mdseries,parent={section in toc}} -\setbeamerfont{frametitle}{size=\LARGE,series=\bfseries,parent=structure} -\setbeamerfont{framesubtitle}{parent=frametitle,size=\Large} +\setbeamerfont{frametitle}{size=\Large,series=\bfseries,parent=structure} +\setbeamerfont{framesubtitle}{parent=frametitle,size=\large} \setbeamerfont{caption}{size=\footnotesize} \setbeamerfont{item}{parent=structure,series=\mdseries} -\setbeamerfont{block title}{size=\large,series=\mdseries,parent={structure,block body}} - -\mode -<all> +\setbeamerfont{block title}{size=\large,series=\mdseries,parent={structure,block body}}
\ No newline at end of file diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-simpleplus/beamerinnerthemeSimplePlus.sty b/macros/latex/contrib/beamer-contrib/themes/beamertheme-simpleplus/beamerinnerthemeSimplePlus.sty index 43ab163d18..f6475f0948 100644 --- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-simpleplus/beamerinnerthemeSimplePlus.sty +++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-simpleplus/beamerinnerthemeSimplePlus.sty @@ -1,60 +1,78 @@ -% !TEX TS-program = xelatex -% !TEX encoding = UTF-8 Unicode - -%---------------------------------------------------------------------------------------- -% Package: beamertheme-SimplePlus -% Author: Pin-Yen Huang (pyhuang97@gmail.com) -% Version: 1.0, 2021-12-16 -% Link: https://github.com/PM25/SimplePlus-BeamerTheme -% This is free and unencumbered software released into the -% public domain; see <http://unlicense.org> for details. -%---------------------------------------------------------------------------------------- +%------------------------------------------------------------- +% Package: beamertheme-SimplePlus +% Author: Pin-Yen Huang (pyhuang97@gmail.com) +% Version: 1.1, 2025-01-07 +% Link: https://github.com/pm25/SimplePlus-BeamerTheme +% This is free and unencumbered software released into the +% public domain; see <http://unlicense.org> for details. +%------------------------------------------------------------- -\pgfdeclareverticalshading[lower.bg,upper.bg]{bmb@transition}{200cm}{% - color(0pt)=(lower.bg); color(2pt)=(lower.bg); color(4pt)=(lower.bg)} +%-------------------------------------- +% Inner Theme Settings +%-------------------------------------- -\setbeamersize{text margin left=2em,text margin right=2em} +\pgfdeclareverticalshading[lower.bg,upper.bg]{bmb@transition}{200cm}{% +color(0pt)=(lower.bg); color(2pt)=(lower.bg); color(4pt)=(lower.bg)} -% table of contents (overview) -\setbeamertemplate{section in toc}[sections numbered] -\setbeamertemplate{subsection in toc}{\leavevmode\leftskip=3.2em\rlap{\hskip-2em\inserttocsectionnumber.\inserttocsubsectionnumber}\inserttocsubsection\par} +\setbeamersize{text margin left=2em,text margin right=2em} \setbeamertemplate{footline}[frame number] \setbeamertemplate{navigation symbols}{} + \setbeamertemplate{blocks}[rounded][shadow=false] + \setbeamertemplate{enumerate items}[default] +\setbeamertemplate{enumerate subitem}[default] +\setbeamertemplate{itemize items}[circle] +\setbeamertemplate{itemize subitem}[circle] + +% table of contents (overview) settings +\setbeamertemplate{section in toc}[sections numbered] +\setbeamertemplate{subsection in toc}{% + \leavevmode + \leftskip=3.2em + \rlap{\hskip-2em\inserttocsectionnumber.\inserttocsubsectionnumber} + \inserttocsubsection\par +} -\setbeamertemplate{frametitle}{\vspace*{0.5em}\bfseries\insertframetitle\par\vskip-6pt\hrulefill\vspace{-0.1em}} +% frame title customization +\setbeamertemplate{frametitle}{% + \vspace*{0.5em} + \bfseries\insertframetitle\par + \vskip-6pt + \hrulefill\vspace{-0.1em} +} -\setbeamertemplate{title page}{ - \vspace{7em} +% title page customization +\setbeamertemplate{title page}{% + \vspace{6em} \begingroup - \centering - % ------------------------ - \begin{beamercolorbox}[sep=8pt,center]{title} + \centering + % ------------------------ + \begin{beamercolorbox}[sep=10pt,center]{title} \usebeamerfont{title}\inserttitle\par% \ifx\insertsubtitle\@empty% \else% - \vskip0.25em% - {\usebeamerfont{subtitle}\usebeamercolor[fg]{subtitle}\insertsubtitle\par}% - \fi% - \end{beamercolorbox}% - \vskip0.5em\par - % ------------------------ - \begin{beamercolorbox}[sep=8pt,center]{author} + \vskip0.25em% + {\usebeamerfont{subtitle}\usebeamercolor[fg]{subtitle}\insertsubtitle\par}% + \fi% + \end{beamercolorbox}% + \vskip0.5em\par + % ------------------------ + \begin{beamercolorbox}[sep=8pt,center]{author} \usebeamerfont{author}\insertauthor - \end{beamercolorbox} - \vskip-1em - % ------------------------ - \begin{beamercolorbox}[sep=8pt,center]{institute} + \end{beamercolorbox} + \vskip-1em + % ------------------------ + \begin{beamercolorbox}[sep=8pt,center]{institute} \usebeamerfont{institute}\insertinstitute - \end{beamercolorbox} - % ------------------------ - \begin{beamercolorbox}[sep=8pt,center]{date} + \end{beamercolorbox} + % ------------------------ + \begin{beamercolorbox}[sep=8pt,center]{date} \usebeamerfont{date}\insertdate - \end{beamercolorbox}\vskip0.5em - % ------------------------ - {\usebeamercolor[fg]{titlegraphic}\inserttitlegraphic\par} + \end{beamercolorbox}\vskip0.5em + % ------------------------ + {\usebeamercolor[fg]{titlegraphic}\inserttitlegraphic\par} \endgroup \vfill }
\ No newline at end of file diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-simpleplus/beamertheme-simpleplus-sample.pdf b/macros/latex/contrib/beamer-contrib/themes/beamertheme-simpleplus/beamertheme-simpleplus-sample.pdf Binary files differindex 4f56de719a..db79862286 100644 --- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-simpleplus/beamertheme-simpleplus-sample.pdf +++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-simpleplus/beamertheme-simpleplus-sample.pdf diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-simpleplus/beamertheme-simpleplus-sample.tex b/macros/latex/contrib/beamer-contrib/themes/beamertheme-simpleplus/beamertheme-simpleplus-sample.tex index 17e105a5b8..f4751b3107 100644 --- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-simpleplus/beamertheme-simpleplus-sample.tex +++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-simpleplus/beamertheme-simpleplus-sample.tex @@ -1,6 +1,7 @@ %---------------------------------------------------------------------------------------- -% PACKAGES AND THEMES +% PACKAGES AND THEMES %---------------------------------------------------------------------------------------- + \documentclass[aspectratio=169,xcolor=dvipsnames]{beamer} \usetheme{SimplePlus} @@ -9,24 +10,23 @@ \usepackage{booktabs} % Allows the use of \toprule, \midrule and \bottomrule in tables %---------------------------------------------------------------------------------------- -% TITLE PAGE +% TITLE PAGE %---------------------------------------------------------------------------------------- -\title[short title]{Simple Beamer Theme} % The short title appears at the bottom of every slide, the full title is only on the title page +\title{Simple Beamer Theme} \subtitle{Subtitle} -\author[Pin-Yen] {Pin-Yen Huang} +\author{Pin-Yen Huang} -\institute[NTU] % Your institution as it will appear on the bottom of every slide, may be shorthand to save space +\institute { Department of Computer Science and Information Engineering \\ National Taiwan University % Your institution for the title page } -\date{Dec 16, 2021} % Date, can be changed to a custom date - +\date{\today} % Date, can be changed to a custom date %---------------------------------------------------------------------------------------- -% PRESENTATION SLIDES +% PRESENTATION SLIDES %---------------------------------------------------------------------------------------- \begin{document} @@ -86,7 +86,7 @@ \item Example \end{enumerate} - \column{.5\textwidth} % Right column and width + \column{.45\textwidth} % Right column and width Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer lectus nisl, ultricies in feugiat rutrum, porttitor sit amet augue. Aliquam ut tortor mauris. Sed volutpat ante purus, quis accumsan dolor. \end{columns} @@ -140,14 +140,9 @@ %------------------------------------------------ \begin{frame}{References} - % Beamer does not support BibTeX so references must be inserted manually as below - \footnotesize{ - \begin{thebibliography}{99} - \bibitem[Smith, 2012]{p1} John Smith (2012) - \newblock Title of the publication - \newblock \emph{Journal Name} 12(3), 45 -- 678. - \end{thebibliography} - } + \footnotesize + \bibliography{reference.bib} + \bibliographystyle{apalike} \end{frame} %------------------------------------------------ diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-simpleplus/beamerthemeSimplePlus.sty b/macros/latex/contrib/beamer-contrib/themes/beamertheme-simpleplus/beamerthemeSimplePlus.sty index 5ff53a743e..01c94d97aa 100644 --- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-simpleplus/beamerthemeSimplePlus.sty +++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-simpleplus/beamerthemeSimplePlus.sty @@ -1,21 +1,18 @@ -% !TEX TS-program = xelatex -% !TEX encoding = UTF-8 Unicode +%------------------------------------------------------------- +% Package: beamertheme-SimplePlus +% Author: Pin-Yen Huang (pyhuang97@gmail.com) +% Version: 1.1, 2025-01-07 +% Link: https://github.com/pm25/SimplePlus-BeamerTheme +% This is free and unencumbered software released into the +% public domain; see <http://unlicense.org> for details. +%------------------------------------------------------------- -%---------------------------------------------------------------------------------------- -% Package: beamertheme-SimplePlus -% Author: Pin-Yen Huang (pyhuang97@gmail.com) -% Version: 1.0, 2021-12-16 -% Link: https://github.com/PM25/SimplePlus-BeamerTheme -% This is free and unencumbered software released into the -% public domain; see <http://unlicense.org> for details. -%---------------------------------------------------------------------------------------- +%-------------------------------------- +% Beamer Settings +%-------------------------------------- \mode<presentation> -% Settings -\usetheme{Madrid} -\useinnertheme{circles} - \usefonttheme{SimplePlus} \usecolortheme{SimplePlus} \useinnertheme{SimplePlus} diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-simpleplus/reference.bib b/macros/latex/contrib/beamer-contrib/themes/beamertheme-simpleplus/reference.bib new file mode 100644 index 0000000000..20a1e8119e --- /dev/null +++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-simpleplus/reference.bib @@ -0,0 +1,9 @@ +@article{p1, + author = {John Smith}, + title = {Title of the publication}, + journal = {Journal Name}, + year = {2012}, + volume = {12}, + number = {3}, + pages = {45--678} +}
\ No newline at end of file diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-tcolorbox/README.md b/macros/latex/contrib/beamer-contrib/themes/beamertheme-tcolorbox/README.md index b8501189d6..0215359b46 100644 --- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-tcolorbox/README.md +++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-tcolorbox/README.md @@ -1,12 +1,12 @@ # beamertheme-tcolorbox -[![GitHub](https://img.shields.io/github/license/samcarter/beamertheme-tcolorbox.svg?color=blue)](http://www.latex-project.org/lppl.txt) -[![GitHub tag (latest SemVer)](https://img.shields.io/github/tag/samcarter/beamertheme-tcolorbox.svg?label=current%20version)](https://github.com/samcarter/beamertheme-tcolorbox/releases/latest) -[![CTAN](https://img.shields.io/ctan/v/beamertheme-tcolorbox.svg)](https://ctan.org/pkg/beamertheme-tcolorbox) +[![License](https://img.shields.io/github/license/samcarter/beamertheme-tcolorbox.svg?color=blue)](https://www.latex-project.org/lppl.txt) +[![GitHub tag](https://img.shields.io/github/tag/samcarter/beamertheme-tcolorbox.svg?label=current%20version&color=blue)](https://github.com/samcarter/beamertheme-tcolorbox/releases/latest) +[![CTAN](https://img.shields.io/ctan/v/beamertheme-tcolorbox.svg?color=blue)](https://ctan.org/pkg/beamertheme-tcolorbox) A beamer inner theme which reproduces standard beamer blocks using tcolorboxes. -This project is licensed under the LaTeX Project Public License v1.3c or later, see http://www.latex-project.org/lppl.txt . +This project is licensed under the LaTeX Project Public License v1.3c or later, see https://www.latex-project.org/lppl.txt . The project repository, including a bug tracker, can be found at https://github.com/samcarter/beamertheme-tcolorbox . diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-tcolorbox/beamerinnerthemetcolorbox.sty b/macros/latex/contrib/beamer-contrib/themes/beamertheme-tcolorbox/beamerinnerthemetcolorbox.sty index 9469f0591e..203e4d9c97 100644 --- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-tcolorbox/beamerinnerthemetcolorbox.sty +++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-tcolorbox/beamerinnerthemetcolorbox.sty @@ -1,4 +1,4 @@ -% !TeX root = test.tex +% !TeX root = ./testing/test.tex %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % The tcolorbox inner theme @@ -9,10 +9,10 @@ % https://github.com/samcarter/beamertheme-tcolorbox % % Released under the LaTeX Project Public License v1.3c or later -% See http://www.latex-project.org/lppl.txt +% See https://www.latex-project.org/lppl.txt % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ProvidesPackage{beamerinnerthemetcolorbox}[2024/04/29 version v0.7 Beamer blocks with tcolorboxes] +\ProvidesPackage{beamerinnerthemetcolorbox}[2025/02/01 version v0.9 Beamer blocks with tcolorboxes] \RequirePackage{tcolorbox} \tcbuselibrary{skins,hooks} diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-tcolorbox/beamertheme-tcolorbox-doc-settings.sty b/macros/latex/contrib/beamer-contrib/themes/beamertheme-tcolorbox/beamertheme-tcolorbox-doc-settings.sty index 777cedba6e..5cb08d5d21 100644 --- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-tcolorbox/beamertheme-tcolorbox-doc-settings.sty +++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-tcolorbox/beamertheme-tcolorbox-doc-settings.sty @@ -21,7 +21,7 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \RequirePackage{xcolor} \definecolor{samyellow}{RGB}{246,193,65} -\definecolor{samorange}{RGB}{241,147,45} +\definecolor{samorange}{RGB}{241,147,45}% pgfplotsthemebeamer \definecolor{samred}{RGB}{191,26,46}% TikZbricks \definecolor{sammagenta}{RGB}{170,42,104}% TikZmarmots \definecolor{samviolet}{RGB}{136,46,114}% TikZlings @@ -61,6 +61,7 @@ \RequirePackage{footnotehyper} \makesavenoteenv{tcolorbox} \RequirePackage[all]{nowidow} + \RequirePackage[hyphens]{url} \RequirePackage[colorlinks=true,breaklinks=true,allcolors=themecolor,hyperfootnotes=false]{hyperref} } \RequirePackage[T1]{fontenc} @@ -68,67 +69,28 @@ \RequirePackage{inconsolata}% mono font with bold, but italic is missing % \RequirePackage[scale=0.85]{cascadia-code} % \AddToHook{cmd/ttfamily/before}{\fontseries{sl}} -\RequirePackage{iexec} +\RequirePackage{synthslant}% to fake slanted comments in inconsolata +\RequirePackage{metalogox}% should be loaded after the fonts %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % Listings % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\RequirePackage[ - cachedir=$TMPDIR/minted/ -]{minted} - -% smuggling custom pygmentize style in cache folder -% (a real pygmentise style would need installtion in some python folder) -\begin{filecontents*}[noheader]{./sam.pygstyle} -\makeatletter -\def\PYG@reset{\let\PYG@it=\relax \let\PYG@bf=\relax% - \let\PYG@ul=\relax \let\PYG@tc=\relax% - \let\PYG@bc=\relax \let\PYG@ff=\relax} -\def\PYG@tok#1{\csname PYG@tok@#1\endcsname} -\def\PYG@toks#1+{\ifx\relax#1\empty\else% - \PYG@tok{#1}\expandafter\PYG@toks\fi} -\def\PYG@do#1{\PYG@bc{\PYG@tc{\PYG@ul{% - \PYG@it{\PYG@bf{\PYG@ff{#1}}}}}}} -\def\PYG#1#2{\PYG@reset\PYG@toks#1+\relax+\PYG@do{#2}} - -% optional arguments -\expandafter\def\csname PYG@tok@na\endcsname{\def\PYG@tc##1{\textcolor{black}{##1}}} - -% macros -\expandafter\def\csname PYG@tok@k\endcsname{\def\PYG@tc##1{\textcolor{listingcolor}{\bfseries ##1}}} -% curly brakets -\expandafter\def\csname PYG@tok@nb\endcsname{\def\PYG@tc##1{\textcolor{listingcolor}{\bfseries ##1}}} - -% comments (italics won't work with the inconsolata font) -\expandafter\def\csname PYG@tok@c\endcsname{\def\PYG@tc##1{\textcolor{gray}{##1}}} - -\def\PYGZbs{\char`\\} -\def\PYGZus{\char`\_} -\def\PYGZob{\char`\{} -\def\PYGZcb{\char`\}} -\def\PYGZca{\char`\^} -\def\PYGZam{\char`\&} -\def\PYGZlt{\char`\<} -\def\PYGZgt{\char`\>} -\def\PYGZsh{\char`\#} -\def\PYGZpc{\char`\%} -\def\PYGZdl{\char`\$} -\def\PYGZhy{\char`\-} -\def\PYGZsq{\char`\'} -\def\PYGZdq{\char`\"} -\def\PYGZti{\char`\~} -% for compatibility with earlier versions -\def\PYGZat{@} -\def\PYGZlb{[} -\def\PYGZrb{]} -\makeatother -\end{filecontents*} - -\iexec{mkdir -p $TMPDIR/minted && mv sam.pygstyle $TMPDIR/minted/.} +\RequirePackage[cachedir=./.minted]{minted} + +\AddToHook{env/MintedVerbatim/before}{% + % optional arguments + \@namedef{PYG@tok@na}{\def\PYG@tc##1{\textcolor{black}{##1}}}% + % macros + \@namedef{PYG@tok@k}{\def\PYG@tc##1{\textcolor{listingcolor}{\bfseries ##1}}}% + % curly brackets + \@namedef{PYG@tok@nb}{\def\PYG@tc##1{\textcolor{listingcolor}{\bfseries ##1}}}% + % comments (italics won't work with the inconsolata font) + \@namedef{PYG@tok@c}{\def\PYG@tc##1{\textcolor{gray}{\textsynthslant{##1}}}}% +} -\usemintedstyle{sam} +\usemintedstyle{default} \setminted{ breaksymbolleft={}, tabsize=2, @@ -196,4 +158,21 @@ \providecommand*{\tikzducks}{Ti\emph{k}Zducks\xspace} \providecommand*{\tikzlings}{Ti\emph{k}Zlings\xspace} \providecommand*{\tikzmarmots}{Ti\emph{k}Zmarmots\xspace} -\providecommand*{\ConTeXt}{C\kern-.0333emon\-\kern-.0667em\TeX\kern-.0333emt}
\ No newline at end of file +\providecommand*{\ConTeXt}{C\kern-.0333emon\-\kern-.0667em\TeX\kern-.0333emt} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% Doc blurb +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\newcommand{\packagename}[1]{\def\@packagename{#1}} + +\NewDocumentCommand\blurb{s}{% + This package is work in progress, therefore I would be happy to hear your feedback and ideas how to improve the package. The development version of the source code can be found at \url{https://github.com/samcarter/\@packagename}, including an issue tracker. + \IfBooleanF#1{% + A more stable version of the package can be found on \CTAN (\url{https://ctan.org/pkg/\@packagename}) and is included in both \texlive and \miktex as \texttt{\@packagename}. + }% + If you seek any other assistance (not bug reports/feature requests), I suggest asking at \url{https://topanswers.xyz/tex}. + + Copyright {\footnotesize\textcopyright} \texttt{samcarter}. Permission is granted to copy, distribute and\slash or modify this software under the terms of the LaTeX project public licence, version 1.3c or later \url{https://www.latex-project.org/lppl.txt}. +}
\ No newline at end of file diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-tcolorbox/beamertheme-tcolorbox-doc.pdf b/macros/latex/contrib/beamer-contrib/themes/beamertheme-tcolorbox/beamertheme-tcolorbox-doc.pdf Binary files differindex fe64e72639..44d09f90d4 100644 --- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-tcolorbox/beamertheme-tcolorbox-doc.pdf +++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-tcolorbox/beamertheme-tcolorbox-doc.pdf diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-tcolorbox/beamertheme-tcolorbox-doc.tex b/macros/latex/contrib/beamer-contrib/themes/beamertheme-tcolorbox/beamertheme-tcolorbox-doc.tex index c17e7fc17e..643890a7ff 100644 --- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-tcolorbox/beamertheme-tcolorbox-doc.tex +++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-tcolorbox/beamertheme-tcolorbox-doc.tex @@ -8,7 +8,7 @@ % https://github.com/samcarter/beamertheme-tcolorbox % % Released under the LaTeX Project Public License v1.3c or later -% See http://www.latex-project.org/lppl.txt +% See https://www.latex-project.org/lppl.txt % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % !TeX program = txs:///arara @@ -22,6 +22,10 @@ % arara: --> } \documentclass{scrartcl} +\usepackage[ + themecolor=samteal +]{\jobname-settings} + % meta %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \title{The tcolorbox beamer inner theme} \subtitle{A beamer inner theme to replicate standard beamer blocks with tcolorboxes} @@ -29,13 +33,10 @@ \texorpdfstring{ \texttt{samcarter}\\ \url{https://github.com/samcarter/beamertheme-tcolorbox}\\ - \url{https://www.ctan.org/pkg/beamertheme-tcolorbox} + \url{https://ctan.org/pkg/beamertheme-tcolorbox} }{samcarter}} -\date{Version v0.7 \textendash{} 2024/04/29} - -\usepackage[ - themecolor=samteal -]{\jobname-settings} +\date{Version v0.9 \textendash{} 2025/02/01} +\packagename{beamertheme-tcolorbox} \newcommand{\prefix}{./include} \tcbset{ @@ -53,10 +54,7 @@ Over the last decade of answering beamer problems and more recently also being o For all these cases, there is now an alternative to the default beamer blocks: The tcolorbox inner beamer theme will replace the usual beamer mechanism to draw blocks with tcolorboxes. The tcolorboxes will automatically adopt the look and feel (round vs.\ sharp corners and shadows) as well as the colours of the normal beamer blocks. -The package is included in \TeX{}Live and MiK\TeX\ and available from \textsc{CTAN} (\url{https://www.ctan.org/pkg/beamertheme-tcolorbox}). -The development version of this package is located at \url{https://github.com/samcarter/beamertheme-tcolorbox}. If you have any problems, ideas or other feedback, please make constructive use of the issue tracker. - -Copyright \raisebox{0.2em}{\tiny\fontfamily{cmr}\selectfont\textcopyright} \texttt{samcarter}. Permission is granted to copy, distribute and\slash or modify this software under the terms of the LaTeX project public licence, version 1.3c or later \url{http://www.latex-project.org/lppl.txt}. +\blurb \section{Usage} @@ -177,4 +175,14 @@ Beyond these two options, the users also has the myriads of options of the tcolo \end{document} \end{tcblisting} +\section{Using with \texttt{\textbackslash pause}} + +Using the \saminline|\pause| macro in pgf-based environments like a \saminline|tikzpicture| or a \saminline|tcolorbox| is known to cause problems like disappearing footlines. +There are some ways to avoid such problems: + +\begin{enumerate} +\item The best solution to problems with \saminline|\pause| is to not use \saminline|\pause|. Instead one can use overlays like \saminline|\only<...>{...}|, \saminline|\visible<...>{...}|, \saminline|\uncover<...>{...}| etc. +\item Alternatively, one could switch to another covered style for the presentation, e.g. by adding \saminline|\setbeamercovered{transparent=0}| to the preamble. +\end{enumerate} + \end{document} diff --git a/macros/latex/contrib/beamer-contrib/themes/beamerthemecelestia/README.md b/macros/latex/contrib/beamer-contrib/themes/beamerthemecelestia/README.md new file mode 100644 index 0000000000..f8d3d0be1c --- /dev/null +++ b/macros/latex/contrib/beamer-contrib/themes/beamerthemecelestia/README.md @@ -0,0 +1,17 @@ +# Celestia Beamer Theme + +## Description + +Celestia is a modern and elegant Beamer theme designed for academic and professional presentations. It offers a clean aesthetic with carefully chosen colors, typography, and layouts. + +## License + +Copyright 2025 Razik Ikhlef + +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 in + http://www.latex-project.org/lppl.txt +and version 1.3c or later is part of all distributions of LaTeX +version 2005/12/01 or later. diff --git a/macros/latex/contrib/beamer-contrib/themes/beamerthemecelestia/demo/Celestia-fr.pdf b/macros/latex/contrib/beamer-contrib/themes/beamerthemecelestia/demo/Celestia-fr.pdf Binary files differnew file mode 100644 index 0000000000..046414445f --- /dev/null +++ b/macros/latex/contrib/beamer-contrib/themes/beamerthemecelestia/demo/Celestia-fr.pdf diff --git a/macros/latex/contrib/beamer-contrib/themes/beamerthemecelestia/demo/Celestia-fr.tex b/macros/latex/contrib/beamer-contrib/themes/beamerthemecelestia/demo/Celestia-fr.tex new file mode 100644 index 0000000000..bd094ec698 --- /dev/null +++ b/macros/latex/contrib/beamer-contrib/themes/beamerthemecelestia/demo/Celestia-fr.tex @@ -0,0 +1,202 @@ +\documentclass[% + 10pt, + french, + aspectratio=1610, + xcolor=svgnames +]{beamer} + +\usetheme[ + decorative, + nocodebox, + frametitle=plain, + margin=3em, + soberblock +]{Celestia} + +\title{Le thème Celestia} +\subtitle{v1.0.0} +\author{Razik Ikhlef} +\date{\today} + +\begin{document} + +\begin{frame}[plain] + \titlepage +\end{frame} + +\begin{frame}[fragile]{Polices} + \begin{description}[mainfaceoptions] + \item[mainface] Police principale pour le texte et les titres (\alert{Literata} par défaut) + \item[mainfaceoptions] Options directement passées à \alert{fontspec} pour la police principale + \item[sansface] Police sans empattements pour les éléments structurels (\alert{Inter} par défaut) + \item[sansfaceoptions] Options passées à \alert{fontspec} pour la police sans empattements + \item[monoface] Police à chasse fixe pour le code (\alert{Roboto Mono} par défaut) + \item[monofaceoptions] Options passées à \alert{fontspec} pour la police à chasse fixe + \item[allserif] Utilise la police principale avec empattements pour les mathématiques + \end{description} + + \begin{exampleblock}{Exemple} + \begin{lstlisting}[style=latex] +\usetheme[ + mainface=EB Garamond, + mainfaceoptions={Scale=1.1}, + sansface=Montserrat, + monoface=Fira Code, + allserif +]{Celestia} + \end{lstlisting} + \end{exampleblock} +\end{frame} + +\begin{frame}[fragile]{Couleurs} + \begin{description}[codebackgroundcolor] + \item[maincolor] Couleur principale utilisée pour les titres et accents (code \alert{\LaTeX} svgname ou \alert{HTML} hexadécimal) + \item[accentcolor] Couleur secondaire pour les éléments spéciaux + \item[backgroundcolor] Couleur de fond des diapositives (\alert{F7F9FC} par défaut) + \item[codebackgroundcolor] Couleur de fond des blocs de code (\alert{F1F3F6} par défaut) + \item[mainblue] Couleur des blocs standards (\alert{045549} par défaut) + \item[maingreen] Couleur des blocs exemple (\alert{054924} par défaut) + \item[mainred] Couleur des blocs alerte (\alert{490445} par défaut) + \item[unicolor] Utilise la couleur principale pour tout le texte + \end{description} + + \begin{exampleblock}{Exemple} + \begin{lstlisting}[style=latex] +\usetheme[ + maincolor=045549, + accentcolor=E63946, + backgroundcolor=FAFAFA, + codebackgroundcolor=F5F5F5 +]{Celestia} + \end{lstlisting} + \end{exampleblock} +\end{frame} + +\begin{frame}[fragile]{Mise en page} + \begin{description}[centeredtitle] + \item[margin] Marge du contenu (\alert{2em} par défaut) + \item[frametitle] Style du titre (\alert{elegant}, \alert{plain}, \alert{centered}) + \item[decorative] Active les éléments décoratifs + \item[nodecorative] Désactive les éléments décoratifs + \item[centeredtitle] Centre le titre sur la page de titre + \item[titleright] Aligne le titre à droite + \end{description} + + \begin{exampleblock}{Exemple} + \begin{lstlisting}[style=latex] +\usetheme[ + margin=1.5em, + frametitle=centered, + decorative, + centeredtitle +]{Celestia} + \end{lstlisting} + \end{exampleblock} +\end{frame} + +\begin{frame}[fragile]{En-têtes} + \begin{description}[headweight] + \item[headstyle] Famille de police pour les titres : \alert{rmfamily} (avec empattements) ou \alert{sffamily} (sans empattements) + \item[headshape] Style des caractères : \alert{sc} (petites capitales), \alert{it} (italique), \alert{normal} + \item[headweight] Graisse des titres : \alert{bfseries} (gras) ou \alert{mdseries} (normal) + \end{description} + + \begin{exampleblock}{Exemple} + \begin{lstlisting}[style=latex] +\usetheme[ + headstyle=sffamily, + headshape=sc, + headweight=bfseries +]{Celestia} + \end{lstlisting} + \end{exampleblock} +\end{frame} + +\begin{frame}[fragile]{Code} + \begin{description}[nocodeframe] + \item[codebox] Active l'encadrement du code avec \alert{tcolorbox} (\alert{true} par défaut) + \item[nocodebox] Désactive complètement l'encadrement \alert{tcolorbox} du code + \item[nocodeframe] Conserve \alert{tcolorbox} mais sans bordure visible + \end{description} + + \begin{exampleblock}{Exemple} + \begin{lstlisting}[style=latex] +\usetheme[ + nocodebox, + nocodeframe +]{Celestia} + \end{lstlisting} + \end{exampleblock} +\end{frame} + +\begin{frame}[fragile]{Pied de page} + \begin{description}[quartercirclefooter] + \item[nofooter] Supprime entièrement le pied de page, sauf le numéro de diapositive + \item[quartercirclefooter] Affiche uniquement le numéro dans un quart de cercle en bas à droite + \item[fullbarfooter] Crée une barre complète avec auteur/titre/date et numéro dans un cercle + \end{description} + + \begin{exampleblock}{Exemple} + \begin{lstlisting}[style=latex] +\usetheme[ + quartercirclefooter +]{Celestia} + \end{lstlisting} + \end{exampleblock} +\end{frame} + +\begin{frame}[fragile]{Table des matières} + \begin{description}[twocolumntoc] + \item[compacttoc] Réduit l'espacement vertical entre les entrées de la table + \item[twocolumntoc] Répartit automatiquement les sections sur deux colonnes équilibrées + \end{description} + + \begin{exampleblock}{Exemple} + \begin{lstlisting}[style=latex] +\usetheme[ + compacttoc, + twocolumntoc +]{Celestia} + \end{lstlisting} + \end{exampleblock} +\end{frame} + +\begin{frame}{Blocs} + \begin{description}[exampleblock] + \item[block] Bloc standard pour le contenu normal + \item[exampleblock] Bloc pour les exemples + \item[alertblock] Bloc pour les alertes + \end{description} + + \begin{block}{Bloc standard}Contenu d'un bloc standard\end{block} + \begin{exampleblock}{Bloc exemple}Contenu d'un bloc exemple\end{exampleblock} + \begin{alertblock}{Bloc alerte}Contenu d'un bloc alerte\end{alertblock} +\end{frame} + +\begin{frame}[fragile]{Style des blocs} + \begin{description}[soberblock] + \item[soberblock] Le titre adopte la couleur principale du bloc (mainblue/maingreen/mainred) sur le fond général du document, tandis que le corps garde un fond légèrement teinté (10\%) + \item[softblock] Le titre et le corps partagent le même fond légèrement teinté (10\%), avec le titre dans la couleur principale correspondante + \end{description} + + \begin{exampleblock}{Exemple} + \begin{lstlisting}[style=latex] +\usetheme[ + soberblock % Titre coloré sur fond document +]{Celestia} + +% ou + +\usetheme[ + softblock % Titre coloré sur fond 10% +]{Celestia} + \end{lstlisting} + \end{exampleblock} + +\end{frame} + +\begin{frame}[standout]{Pages d'emphase} + L'option \emph{standout} transforme une diapositive en page d'emphase, idéale pour les moments clés de la présentation : citations marquantes, chiffres essentiels, messages à retenir +\end{frame} + +\end{document} diff --git a/macros/latex/contrib/beamer-contrib/themes/beamerthemecelestia/demo/Celestia.pdf b/macros/latex/contrib/beamer-contrib/themes/beamerthemecelestia/demo/Celestia.pdf Binary files differnew file mode 100644 index 0000000000..a5c2934799 --- /dev/null +++ b/macros/latex/contrib/beamer-contrib/themes/beamerthemecelestia/demo/Celestia.pdf diff --git a/macros/latex/contrib/beamer-contrib/themes/beamerthemecelestia/demo/Celestia.tex b/macros/latex/contrib/beamer-contrib/themes/beamerthemecelestia/demo/Celestia.tex new file mode 100644 index 0000000000..40c658d8c7 --- /dev/null +++ b/macros/latex/contrib/beamer-contrib/themes/beamerthemecelestia/demo/Celestia.tex @@ -0,0 +1,197 @@ +\documentclass[10pt,english,aspectratio=1610,xcolor=svgnames]{beamer} + +\usetheme[ + decorative, + nocodebox, + frametitle=plain, + margin=3em, + soberblock +]{Celestia} + +\title{The Celestia Theme} +\subtitle{v1.0.0} +\author{Razik Ikhlef} +\date{\today} + +\begin{document} + +\begin{frame}[plain] + \titlepage +\end{frame} + +\begin{frame}[fragile]{Fonts} + \begin{description}[mainfaceoptions] + \item[mainface] Main font for text and titles (\alert{Literata} by default) + \item[mainfaceoptions] Options directly passed to \alert{fontspec} for the main font + \item[sansface] Sans-serif font for structural elements (\alert{Inter} by default) + \item[sansfaceoptions] Options passed to \alert{fontspec} for the sans-serif font + \item[monoface] Monospace font for code (\alert{Roboto Mono} by default) + \item[monofaceoptions] Options passed to \alert{fontspec} for the monospace font + \item[allserif] Uses the main serif font for mathematics + \end{description} + + \begin{exampleblock}{Example} + \begin{lstlisting}[style=latex] +\usetheme[ + mainface=EB Garamond, + mainfaceoptions={Scale=1.1}, + sansface=Montserrat, + monoface=Fira Code, + allserif +]{Celestia} + \end{lstlisting} + \end{exampleblock} +\end{frame} + +\begin{frame}[fragile]{Colors} + \begin{description}[codebackgroundcolor] + \item[maincolor] Main color used for titles and accents (\alert{\LaTeX} svgname or \alert{HTML} hexadecimal code) + \item[accentcolor] Secondary color for special elements + \item[backgroundcolor] Slide background color (\alert{F7F9FC} by default) + \item[codebackgroundcolor] Code block background color (\alert{F1F3F6} by default) + \item[mainblue] Standard block color (\alert{045549} by default) + \item[maingreen] Example block color (\alert{054924} by default) + \item[mainred] Alert block color (\alert{490445} by default) + \item[unicolor] Uses the main color for all text + \end{description} + + \begin{exampleblock}{Example} + \begin{lstlisting}[style=latex] +\usetheme[ + maincolor=045549, + accentcolor=E63946, + backgroundcolor=FAFAFA, + codebackgroundcolor=F5F5F5 +]{Celestia} + \end{lstlisting} + \end{exampleblock} +\end{frame} + +\begin{frame}[fragile]{Layout} + \begin{description}[centeredtitle] + \item[margin] Content margin (\alert{2em} by default) + \item[frametitle] Title style (\alert{elegant}, \alert{plain}, \alert{centered}) + \item[decorative] Enables decorative elements + \item[nodecorative] Disables decorative elements + \item[centeredtitle] Centers the title on the title page + \item[titleright] Right-aligns the title + \end{description} + + \begin{exampleblock}{Example} + \begin{lstlisting}[style=latex] +\usetheme[ + margin=1.5em, + frametitle=centered, + decorative, + centeredtitle +]{Celestia} + \end{lstlisting} + \end{exampleblock} +\end{frame} + +\begin{frame}[fragile]{Headers} + \begin{description}[headweight] + \item[headstyle] Font family for titles: \alert{rmfamily} (serif) or \alert{sffamily} (sans-serif) + \item[headshape] Character style: \alert{sc} (small caps), \alert{it} (italic), \alert{normal} + \item[headweight] Title weight: \alert{bfseries} (bold) or \alert{mdseries} (normal) + \end{description} + + \begin{exampleblock}{Example} + \begin{lstlisting}[style=latex] +\usetheme[ + headstyle=sffamily, + headshape=sc, + headweight=bfseries +]{Celestia} + \end{lstlisting} + \end{exampleblock} +\end{frame} + +\begin{frame}[fragile]{Code} + \begin{description}[nocodeframe] + \item[codebox] Enables code framing with \alert{tcolorbox} (\alert{true} by default) + \item[nocodebox] Completely disables \alert{tcolorbox} code framing + \item[nocodeframe] Keeps \alert{tcolorbox} but without visible border + \end{description} + + \begin{exampleblock}{Example} + \begin{lstlisting}[style=latex] +\usetheme[ + nocodebox, + nocodeframe +]{Celestia} + \end{lstlisting} + \end{exampleblock} +\end{frame} + +\begin{frame}[fragile]{Footer} + \begin{description}[quartercirclefooter] + \item[nofooter] Completely removes the footer, except for the slide number + \item[quartercirclefooter] Displays only the number in a quarter circle at the bottom right + \item[fullbarfooter] Creates a complete bar with author/title/date and number in a circle + \end{description} + + \begin{exampleblock}{Example} + \begin{lstlisting}[style=latex] +\usetheme[ + quartercirclefooter +]{Celestia} + \end{lstlisting} + \end{exampleblock} +\end{frame} + +\begin{frame}[fragile]{Table of Contents} + \begin{description}[twocolumntoc] + \item[compacttoc] Reduces vertical spacing between table of contents entries + \item[twocolumntoc] Automatically distributes sections across two balanced columns + \end{description} + + \begin{exampleblock}{Example} + \begin{lstlisting}[style=latex] +\usetheme[ + compacttoc, + twocolumntoc +]{Celestia} + \end{lstlisting} + \end{exampleblock} +\end{frame} + +\begin{frame}{Blocks} + \begin{description}[exampleblock] + \item[block] Standard block for normal content + \item[exampleblock] Block for examples + \item[alertblock] Block for alerts + \end{description} + + \begin{block}{Standard block}Standard block content\end{block} + \begin{exampleblock}{Example block}Example block content\end{exampleblock} + \begin{alertblock}{Alert block}Alert block content\end{alertblock} +\end{frame} + +\begin{frame}[fragile]{Block Styles} + \begin{description}[soberblock] + \item[soberblock] The title adopts the main block color (mainblue/maingreen/mainred) on the document's general background, while the body keeps a slightly tinted background (10%) + \item[softblock] The title and body share the same slightly tinted background (10%), with the title in the corresponding main color + \end{description} + + \begin{exampleblock}{Example} + \begin{lstlisting}[style=latex] +\usetheme[ + soberblock % Colored title on document background +]{Celestia} + +% or + +\usetheme[ + softblock % Colored title on 10% background +]{Celestia} + \end{lstlisting} + \end{exampleblock} + +\end{frame} + +\begin{frame}[standout]{Standout Pages} + The \texttt{standout} option transforms a slide into a standout page, ideal for key moments in the presentation: striking quotes, essential figures, take-away messages +\end{frame} + +\end{document} diff --git a/macros/latex/contrib/beamer-contrib/themes/beamerthemecelestia/doc/beamerthemeCelestia-fr.pdf b/macros/latex/contrib/beamer-contrib/themes/beamerthemecelestia/doc/beamerthemeCelestia-fr.pdf Binary files differnew file mode 100644 index 0000000000..bbea23cdd0 --- /dev/null +++ b/macros/latex/contrib/beamer-contrib/themes/beamerthemecelestia/doc/beamerthemeCelestia-fr.pdf diff --git a/macros/latex/contrib/beamer-contrib/themes/beamerthemecelestia/doc/beamerthemeCelestia-fr.tex b/macros/latex/contrib/beamer-contrib/themes/beamerthemecelestia/doc/beamerthemeCelestia-fr.tex new file mode 100644 index 0000000000..97ae22ad6c --- /dev/null +++ b/macros/latex/contrib/beamer-contrib/themes/beamerthemecelestia/doc/beamerthemeCelestia-fr.tex @@ -0,0 +1,156 @@ +\documentclass[french]{neoschool} + +\title{Le thème Celestia} +\subtitle{v1.0.0} +\author{Razik Ikhlef} +\date{\today} + +\begin{document} + +\maketitle + +\section{Polices} +\begin{description} +\item[mainface] Police principale pour le texte et les titres (\textcolor{titleColor}{Literata} par défaut) +\item[mainfaceoptions] Options directement passées à \textcolor{titleColor}{fontspec} pour la police principale +\item[sansface] Police sans empattements pour les éléments structurels (\textcolor{titleColor}{Inter} par défaut) +\item[sansfaceoptions] Options passées à \textcolor{titleColor}{fontspec} pour la police sans empattements +\item[monoface] Police à chasse fixe pour le code (\textcolor{titleColor}{Roboto Mono} par défaut) +\item[monofaceoptions] Options passées à \textcolor{titleColor}{fontspec} pour la police à chasse fixe +\item[allserif] Utilise la police principale avec empattements pour les mathématiques +\end{description} + +\begin{code}{latex} +\usetheme[ + mainface=EB Garamond, + mainfaceoptions={Scale=1.1}, + sansface=Montserrat, + monoface=Fira Code, + allserif +]{Celestia} +\end{code} + +\section{Couleurs} +\begin{description} +\item[maincolor] Couleur principale utilisée pour les titres et accents (code \textcolor{titleColor}{LaTeX} svgname ou \textcolor{titleColor}{HTML} hexadécimal) +\item[accentcolor] Couleur secondaire pour les éléments spéciaux +\item[backgroundcolor] Couleur de fond des diapositives (\textcolor{titleColor}{F7F9FC} par défaut) +\item[codebackgroundcolor] Couleur de fond des blocs de code (\textcolor{titleColor}{F1F3F6} par défaut) +\item[mainblue] Couleur des blocs standards (\textcolor{titleColor}{045549} par défaut) +\item[maingreen] Couleur des blocs exemple (\textcolor{titleColor}{054924} par défaut) +\item[mainred] Couleur des blocs alerte (\textcolor{titleColor}{490445} par défaut) +\item[unicolor] Utilise la couleur principale pour tout le texte +\end{description} + +\begin{code}{latex} +\usetheme[ + maincolor=045549, + accentcolor=E63946, + backgroundcolor=FAFAFA, + codebackgroundcolor=F5F5F5 +]{Celestia} +\end{code} + +\section{Mise en page} +\begin{description} +\item[margin] Marge du contenu (\textcolor{titleColor}{2em} par défaut) +\item[frametitle] Style du titre (\textcolor{titleColor}{elegant}, \textcolor{titleColor}{plain}, \textcolor{titleColor}{centered}) +\item[decorative] Active les éléments décoratifs +\item[nodecorative] Désactive les éléments décoratifs +\item[centeredtitle] Centre le titre sur la page de titre +\item[titleright] Aligne le titre à droite +\end{description} + +\begin{code}{latex} +\usetheme[ + margin=1.5em, + frametitle=centered, + decorative, + centeredtitle +]{Celestia} +\end{code} + +\section{En-têtes} +\begin{description} +\item[headstyle] Famille de police pour les titres : \textcolor{titleColor}{rmfamily} (avec empattements) ou \textcolor{titleColor}{sffamily} (sans empattements) +\item[headshape] Style des caractères : \textcolor{titleColor}{sc} (petites capitales), \textcolor{titleColor}{it} (italique), \textcolor{titleColor}{normal} +\item[headweight] Graisse des titres : \textcolor{titleColor}{bfseries} (gras) ou \textcolor{titleColor}{mdseries} (normal) +\end{description} + +\begin{code}{latex} +\usetheme[ + headstyle=sffamily, + headshape=sc, + headweight=bfseries +]{Celestia} +\end{code} + +\section{Code} +\begin{description} +\item[codebox] Active l'encadrement du code avec \textcolor{titleColor}{tcolorbox} (\textcolor{titleColor}{true} par défaut) +\item[nocodebox] Désactive complètement l'encadrement \textcolor{titleColor}{tcolorbox} du code +\item[nocodeframe] Conserve \textcolor{titleColor}{tcolorbox} mais sans bordure visible +\end{description} + +\begin{code}{latex} +\usetheme[ + nocodebox, + nocodeframe +]{Celestia} +\end{code} + +\section{Pied de page} +\begin{description} +\item[nofooter] Supprime entièrement le pied de page, sauf le numéro de diapositive +\item[quartercirclefooter] Affiche uniquement le numéro dans un quart de cercle en bas à droite +\item[fullbarfooter] Crée une barre complète avec auteur/titre/date et numéro dans un cercle +\end{description} + +\begin{code}{latex} +\usetheme[ + quartercirclefooter +]{Celestia} +\end{code} + +\section{Table des matières} +\begin{description} +\item[compacttoc] Réduit l'espacement vertical entre les entrées de la table +\item[twocolumntoc] Répartit automatiquement les sections sur deux colonnes équilibrées +\end{description} + +\begin{code}{latex} +\usetheme[ + compacttoc, + twocolumntoc +]{Celestia} +\end{code} + +\section{Blocs} +\begin{description} +\item[block] Bloc standard pour le contenu normal +\item[exampleblock] Bloc pour les exemples +\item[alertblock] Bloc pour les alertes +\end{description} + +\section{Style des blocs} +\begin{description} +\item[soberblock] Le titre adopte la couleur principale du bloc (mainblue/maingreen/mainred) sur le fond général du document, tandis que le corps garde un fond légèrement teinté (10\%) +\item[softblock] Le titre et le corps partagent le même fond légèrement teinté (10\%), avec le titre dans la couleur principale correspondante +\end{description} + +\begin{code}{latex} +\usetheme[ + soberblock +]{Celestia} + +% ou + +\usetheme[ + softblock +]{Celestia} +\end{code} + +\section{Pages d'emphase} +L'option \texttt{standout} transforme une diapositive en page d'emphase, idéale pour les moments clés de la présentation~: citations marquantes, chiffres essentiels, messages à retenir. + +\end{document} diff --git a/macros/latex/contrib/beamer-contrib/themes/beamerthemecelestia/doc/beamerthemeCelestia.pdf b/macros/latex/contrib/beamer-contrib/themes/beamerthemecelestia/doc/beamerthemeCelestia.pdf Binary files differnew file mode 100644 index 0000000000..91857b9638 --- /dev/null +++ b/macros/latex/contrib/beamer-contrib/themes/beamerthemecelestia/doc/beamerthemeCelestia.pdf diff --git a/macros/latex/contrib/beamer-contrib/themes/beamerthemecelestia/doc/beamerthemeCelestia.tex b/macros/latex/contrib/beamer-contrib/themes/beamerthemecelestia/doc/beamerthemeCelestia.tex new file mode 100644 index 0000000000..c6edfe6455 --- /dev/null +++ b/macros/latex/contrib/beamer-contrib/themes/beamerthemecelestia/doc/beamerthemeCelestia.tex @@ -0,0 +1,156 @@ +\documentclass[english]{neoschool} + +\title{The Celestia Theme} +\subtitle{v1.0.0} +\author{Razik Ikhlef} +\date{\today} + +\begin{document} + +\maketitle + +\section{Fonts} +\begin{description} +\item[mainface] Main font for text and titles (\textcolor{titleColor}{Literata} by default) +\item[mainfaceoptions] Options directly passed to \textcolor{titleColor}{fontspec} for the main font +\item[sansface] Sans-serif font for structural elements (\textcolor{titleColor}{Inter} by default) +\item[sansfaceoptions] Options passed to \textcolor{titleColor}{fontspec} for the sans-serif font +\item[monoface] Monospace font for code (\textcolor{titleColor}{Roboto Mono} by default) +\item[monofaceoptions] Options passed to \textcolor{titleColor}{fontspec} for the monospace font +\item[allserif] Uses the main serif font for mathematics +\end{description} + +\begin{code}{latex} +\usetheme[ + mainface=EB Garamond, + mainfaceoptions={Scale=1.1}, + sansface=Montserrat, + monoface=Fira Code, + allserif +]{Celestia} +\end{code} + +\section{Colors} +\begin{description} +\item[maincolor] Main color used for titles and accents (\textcolor{titleColor}{LaTeX} svgname or \textcolor{titleColor}{HTML} hexadecimal code) +\item[accentcolor] Secondary color for special elements +\item[backgroundcolor] Slide background color (\textcolor{titleColor}{F7F9FC} by default) +\item[codebackgroundcolor] Code block background color (\textcolor{titleColor}{F1F3F6} by default) +\item[mainblue] Standard block color (\textcolor{titleColor}{045549} by default) +\item[maingreen] Example block color (\textcolor{titleColor}{054924} by default) +\item[mainred] Alert block color (\textcolor{titleColor}{490445} by default) +\item[unicolor] Uses the main color for all text +\end{description} + +\begin{code}{latex} +\usetheme[ + maincolor=045549, + accentcolor=E63946, + backgroundcolor=FAFAFA, + codebackgroundcolor=F5F5F5 +]{Celestia} +\end{code} + +\section{Layout} +\begin{description} +\item[margin] Content margin (\textcolor{titleColor}{2em} by default) +\item[frametitle] Title style (\textcolor{titleColor}{elegant}, \textcolor{titleColor}{plain}, \textcolor{titleColor}{centered}) +\item[decorative] Enables decorative elements +\item[nodecorative] Disables decorative elements +\item[centeredtitle] Centers the title on the title page +\item[titleright] Right-aligns the title +\end{description} + +\begin{code}{latex} +\usetheme[ + margin=1.5em, + frametitle=centered, + decorative, + centeredtitle +]{Celestia} +\end{code} + +\section{Headers} +\begin{description} +\item[headstyle] Font family for titles: \textcolor{titleColor}{rmfamily} (serif) or \textcolor{titleColor}{sffamily} (sans-serif) +\item[headshape] Character style: \textcolor{titleColor}{sc} (small caps), \textcolor{titleColor}{it} (italic), \textcolor{titleColor}{normal} +\item[headweight] Title weight: \textcolor{titleColor}{bfseries} (bold) or \textcolor{titleColor}{mdseries} (normal) +\end{description} + +\begin{code}{latex} +\usetheme[ + headstyle=sffamily, + headshape=sc, + headweight=bfseries +]{Celestia} +\end{code} + +\section{Code} +\begin{description} +\item[codebox] Enables code framing with \textcolor{titleColor}{tcolorbox} (\textcolor{titleColor}{true} by default) +\item[nocodebox] Completely disables \textcolor{titleColor}{tcolorbox} code framing +\item[nocodeframe] Keeps \textcolor{titleColor}{tcolorbox} but without visible border +\end{description} + +\begin{code}{latex} +\usetheme[ + nocodebox, + nocodeframe +]{Celestia} +\end{code} + +\section{Footer} +\begin{description} +\item[nofooter] Completely removes the footer, except for the slide number +\item[quartercirclefooter] Displays only the number in a quarter circle at the bottom right +\item[fullbarfooter] Creates a complete bar with author/title/date and number in a circle +\end{description} + +\begin{code}{latex} +\usetheme[ + quartercirclefooter +]{Celestia} +\end{code} + +\section{Table of Contents} +\begin{description} +\item[compacttoc] Reduces vertical spacing between table of contents entries +\item[twocolumntoc] Automatically distributes sections across two balanced columns +\end{description} + +\begin{code}{latex} +\usetheme[ + compacttoc, + twocolumntoc +]{Celestia} +\end{code} + +\section{Blocks} +\begin{description} +\item[block] Standard block for normal content +\item[exampleblock] Block for examples +\item[alertblock] Block for alerts +\end{description} + +\section{Block Styles} +\begin{description} +\item[soberblock] The title adopts the main block color on the document's general background, while the body keeps a slightly tinted background (10\%) +\item[softblock] The title and body share the same slightly tinted background (10\%), with the title in the corresponding main color +\end{description} + +\begin{code}{latex} +\usetheme[ + soberblock +]{Celestia} + +% or + +\usetheme[ + softblock +]{Celestia} +\end{code} + +\section{Standout Pages} +La commande \texttt{standout} transforme une diapositive en page spéciale, idéale pour les moments clés de la présentation : citations marquantes, chiffres essentiels, messages à retenir. + +\end{document} diff --git a/macros/latex/contrib/beamer-contrib/themes/beamerthemecelestia/latex/beamerthemeCelestia.sty b/macros/latex/contrib/beamer-contrib/themes/beamerthemecelestia/latex/beamerthemeCelestia.sty new file mode 100644 index 0000000000..fad9ba136f --- /dev/null +++ b/macros/latex/contrib/beamer-contrib/themes/beamerthemecelestia/latex/beamerthemeCelestia.sty @@ -0,0 +1,1144 @@ +% beamethemeCelestia.sty +% +% copyright (C) 2025 Razik Ikhlef +% razik.ikhlef@csilyon.fr +% +% The newest version of this beamer theme should always be available +% from the following web page: https://apps.edulatex.xyz/celestia/ + +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{beamerthemeCelestia}[2025/01/08 v1.0.0] + +\RequirePackage{iftex} +\RequirePackage{etoolbox} +\RequirePackage{kvoptions} +\RequirePackage{babel} +\RequirePackage[most]{tcolorbox} + +\RequirePackage{silence} +\WarningFilter{latexfont}{Font shape} +\renewcommand{\@font@warning}[1]{} + +%------------------ +% Theme options +%------------------ +\SetupKeyvalOptions{ + family=celestia, + prefix=celestia@ +} + +% Boolean declarations using kvoptions +\DeclareBoolOption{allserif} +\DeclareBoolOption{unicolor} +\DeclareBoolOption{standout} +\DeclareBoolOption{compacttoc} +\DeclareBoolOption{twocolumntoc} +\DeclareBoolOption{decorative} +\DeclareBoolOption{nodecorative} +\DeclareBoolOption{nofooter} +\DeclareBoolOption{quartercirclefooter} +\DeclareBoolOption{fullbarfooter} +\DeclareBoolOption{centeredtitle} +\DeclareBoolOption{titleright} +\DeclareBoolOption[true]{codebox} +\DeclareBoolOption{nocodebox} +\DeclareBoolOption{nocodeframe} +\DeclareBoolOption{soberblock} +\DeclareBoolOption{softblock} + +% String options with defaults +\DeclareStringOption[sffamily]{headstyle} % rmfamily, sffamily +\DeclareStringOption[normal]{headshape} % sc, it, normal +\DeclareStringOption[bfseries]{headweight} % bfseries, mdseries + +\DeclareStringOption[045549]{maincolor} +\DeclareStringOption[specialcolor]{accentcolor} +\DeclareStringOption{backgroundcolor} +\DeclareStringOption{codebackgroundcolor} +\DeclareStringOption[045549]{mainblue} +\DeclareStringOption[054924]{maingreen} +\DeclareStringOption[490445]{mainred} + +\DeclareStringOption[2em]{margin} +\DeclareStringOption[elegant]{frametitle} % centered, plain, plain centered + +\DeclareStringOption[Literata]{mainface} +\DeclareStringOption{mainfaceoptions} +\DeclareStringOption[Inter]{sansface} +\DeclareStringOption{sansfaceoptions} +\DeclareStringOption[Roboto Mono]{monoface} +\DeclareStringOption{monofaceoptions} + +% Process options +\ProcessKeyvalOptions* + +\ifcelestia@nodecorative + \setbool{celestia@decorative}{false} +\fi + +\ifcelestia@nocodebox + \setbool{celestia@codebox}{false} +\fi + +\def\celestia@bfseries{bfseries} +\def\celestia@mdseries{mdseries} + +%------------------ +% Engine detection and package loading +%------------------ +% Base packages for both engines +\RequirePackage{tikz} +\usetikzlibrary{backgrounds,calc,shapes,decorations.fractals} +\RequirePackage{multicol} + +% Engine-specific packages and settings +\ifluatex + \RequirePackage{fontspec} + \RequirePackage[T1]{fontenc} + \ifcelestia@allserif\RequirePackage{mathpazo}\else\RequirePackage{arev}\fi + + \defaultfontfeatures{Ligatures=TeX,Renderer=HarfBuzz} + + \IfFontExistsTF{\celestia@mainface}{ + \setmainfont[\celestia@mainfaceoptions]{\celestia@mainface} + }{ + \setmainfont{Source Serif Pro} + } + + \IfFontExistsTF{\celestia@sansface}{ + \setsansfont[\celestia@sansfaceoptions]{\celestia@sansface} + }{ + \setsansfont{Source Sans Pro} + } + + \IfFontExistsTF{\celestia@monoface}{ + \setmonofont[\celestia@monofaceoptions]{\celestia@monoface} + }{ + \setmonofont{Source Code Pro} + } + + \RequirePackage[ + protrusion=true, + expansion=true + ]{microtype} +\else + \RequirePackage[utf8]{inputenc} + \RequirePackage[T1]{fontenc} + \RequirePackage{sourceserifpro} + \RequirePackage{sourcesanspro} + \RequirePackage{roboto-mono} + \RequirePackage[ + protrusion=true, + expansion=true, + tracking=true, + kerning=true, + spacing=true, + factor=1100, + stretch=10, + shrink=10 + ]{microtype} +\fi + +\ifcelestia@allserif +\usefonttheme{serif} +\else +\usefonttheme[stillsansserifmath,stillsansseriftext]{serif} +\fi + +%------------------ +% Color definitions +%------------------ + +% Test if the color is a valid SVG name, otherwise use HTML code +\newcommand{\@testcolor}[2]{% + \ifcsname\string\color@#1\endcsname + \colorlet{#2}{#1}% + \else + \definecolor{#2}{HTML}{#1}% + \fi +} + +\@testcolor{\celestia@maincolor}{main} + +% Main color palette +\@testcolor{\celestia@mainblue}{mainblue} +\@testcolor{\celestia@maingreen}{maingreen} +\@testcolor{\celestia@mainred}{mainred} + +\definecolor{rulecolor}{HTML}{888888} +\definecolor{codeframecolor}{HTML}{95A5A6} + +\colorlet{specialcolor}{-main} +\ifx\celestia@headweight\celestia@bfseries +\colorlet{specialcolor}{specialcolor!45!black} +\definecolor{background}{HTML}{F7F9FC} +\else +\colorlet{specialcolor}{specialcolor!40!black} +\definecolor{background}{HTML}{F8FAFC} +\fi + +\@testcolor{\celestia@accentcolor}{accent} + +\ifx\celestia@backgroundcolor\@empty\else + \@testcolor{\celestia@backgroundcolor}{background} +\fi + +\definecolor{codebackground}{HTML}{F1F3F6} +\ifx\celestia@codebackgroundcolor\@empty\else + \@testcolor{\celestia@codebackgroundcolor}{codebackground} +\fi + +% Special colors based on options +\setbeamercolor{plain frametitle}{fg=main,bg=background} + +%------------------ +% Basic settings +%------------------ +\setbeamersize{text margin left=\celestia@margin,text margin right=\celestia@margin} +\setbeamertemplate{navigation symbols}{} + +%------------------ +% Font settings +%------------------ +% Main fonts settings +\setbeamerfont{subtitle}{series=\mdseries} +\setbeamerfont{date}{series=\mdseries,size=\small} + +\setbeamerfont{title}{size=\Large,% + series=\csname\celestia@headweight\endcsname,% + family=\csname\celestia@headstyle\endcsname,% + shape=\csname\celestia@headshape\endcsname} +\setbeamerfont{author}{size=\normalsize,% + series=\csname\celestia@headweight\endcsname,% + family=\csname\celestia@headstyle\endcsname,% + shape=\csname\celestia@headshape\endcsname} +\setbeamerfont{description item}{size=\normalsize,% + series=\csname\celestia@headweight\endcsname,% + family=\ifcelestia@allserif\rmfamily\else\sffamily\fi,% + } +\setbeamerfont{frametitle}{size=\large,% + series=\csname\celestia@headweight\endcsname,% + family=\csname\celestia@headstyle\endcsname,% + shape=\csname\celestia@headshape\endcsname,% + parent=structure} +\setbeamerfont{plain title}{size=\large,% + series=\csname\celestia@headweight\endcsname,% + family=\csname\celestia@headstyle\endcsname,% + shape=\csname\celestia@headshape\endcsname,% + parent=structure} +\setbeamerfont{section title}{size=\LARGE,% + series=\csname\celestia@headweight\endcsname,% + family=\csname\celestia@headstyle\endcsname,% + shape=\csname\celestia@headshape\endcsname,% + parent=structure} +\setbeamerfont{section in toc}{size=\large,% + series=\mdseries,% + family=\ifcelestia@allserif\rmfamily\else\sffamily\fi,% + shape=\normalfont,% + parent=structure} +\setbeamerfont{subsection title}{size=\Large,% + series=\csname\celestia@headweight\endcsname,% + family=\csname\celestia@headstyle\endcsname,% + shape=\csname\celestia@headshape\endcsname,% + parent=structure} +\setbeamerfont{subsection in toc}{size=\normalsize,% + series=\mdseries,% + family=\ifcelestia@allserif\rmfamily\else\sffamily\fi,% + shape=\normalfont,% + parent=structure} +\setbeamerfont{footline text}{size=\tiny,% + series=\mdseries,% + family=\csname\celestia@headstyle\endcsname,% + shape=\csname\celestia@headshape\endcsname,% + parent=structure} +\setbeamerfont{block title}{size=\normalsize,% + series=\csname\celestia@headweight\endcsname,% + family=\ifcelestia@allserif\rmfamily\else\sffamily\fi,% + parent=structure} + +% Special fonts +\setbeamerfont{caption}{size=\small} +\setbeamerfont{footnote}{size=\small} + +% Itemize markers +\newcommand{\celestiaCircle}{% + \raisebox{0.1ex}{\scalebox{1.2}{$\bullet$}}% +} +\newcommand{\celestiaSmallCircle}{% + \raisebox{0.2ex}{\scalebox{1}{$\circ$}}% +} +\newcommand{\celestiaDiamond}{% + \raisebox{0.2ex}{\scalebox{0.8}{$\diamond$}}% +} + +% Block margins and spacing +\setlength{\leftmargini}{2em} +\setlength{\leftmarginii}{1.5em} +\setlength{\leftmarginiii}{1.25em} + +%------------------ +% Color settings +%------------------ +% Basic structure colors +\usecolortheme[named=background]{structure} +\setbeamercolor{background canvas}{bg=background} +\ifcelestia@unicolor +\setbeamercolor{normal text}{fg=main} +\else +\setbeamercolor{normal text}{fg=black} +\fi +\usebeamercolor[fg]{normal text} + +% Title and section colors +\setbeamercolor{titlelike}{parent=structure} +\setbeamercolor{title}{fg=main} +% \setbeamercolor{subtitle}{parent={}} +% \setbeamercolor{subtitle}{fg=black} +\setbeamercolor{author}{fg=main} +\setbeamercolor{section title}{fg=main} +\setbeamercolor{subsection title}{fg=accent} +\setbeamercolor{frametitle}{bg=main,fg=background} + +% Navigation and structural elements +\setbeamercolor{item}{fg=main} +\setbeamercolor{description}{fg=main} +\setbeamercolor{section in toc}{fg=main} + +% Block colors with opacity control +\newcommand{\setblockopacity}[1][10]{% + \setbeamercolor{block title}{fg=background,bg=mainblue!90!white} + \setbeamercolor{block body}{bg=mainblue!#1!white} +} + +% Colors for different block types +\ifcelestia@soberblock + \setbeamercolor{block title}{fg=mainblue,bg=background} + \setbeamercolor{block body}{bg=mainblue!10!white} + \setbeamercolor{block title example}{fg=maingreen,bg=background} + \setbeamercolor{block body example}{bg=maingreen!10!white} + \setbeamercolor{block title alerted}{fg=mainred,bg=background} + \setbeamercolor{block body alerted}{bg=mainred!10!white} +\else + \ifcelestia@softblock + \setbeamercolor{block title}{fg=mainblue,bg=mainblue!10!white} + \setbeamercolor{block body}{bg=mainblue!10!white} + \setbeamercolor{block title example}{fg=maingreen,bg=maingreen!10!white} + \setbeamercolor{block body example}{bg=maingreen!10!white} + \setbeamercolor{block title alerted}{fg=mainred,bg=mainred!10!white} + \setbeamercolor{block body alerted}{bg=mainred!10!white} + \else + \setbeamertemplate{blocks}[rounded] + \setbeamercolor{block title}{fg=background,bg=mainblue!90!white} + \setbeamercolor{block body}{bg=mainblue!10!white} + \setbeamercolor{block title example}{fg=background,bg=maingreen!90!white} + \setbeamercolor{block body example}{bg=maingreen!10!white} + \setbeamercolor{block title alerted}{fg=background,bg=mainred!90!white} + \setbeamercolor{block body alerted}{bg=mainred!10!white} + \fi +\fi + +% Caption colors +\setbeamercolor{caption}{fg=main} +\setbeamercolor{caption name}{parent=caption} + +%------------------ +% Basic templates +%------------------ +% List settings +\setbeamertemplate{itemize/enumerate subbody begin}{\normalsize} + +% Itemize markers +\setbeamertemplate{itemize item}{\celestiaCircle} +\setbeamertemplate{itemize subitem}{\celestiaSmallCircle} +\setbeamertemplate{itemize subsubitem}{\celestiaDiamond} + +% Enumeration settings +% Level 1: Circled numbers with main color background +\setbeamertemplate{enumerate item}[circle] +\setbeamercolor{enumerate item}{fg=background,bg=main} + +% Level 2: Circled letters with white background +\setbeamertemplate{enumerate subitem}{% + \begin{tikzpicture}[baseline=(char.base)] + \node[circle, draw=main, inner sep=0.5pt, fill=white] (char) {\textcolor{main}{\alph{enumii}}}; + \end{tikzpicture}% +} +\setbeamercolor{enumerate subitem}{fg=main,bg=background} + +% Level 3: Numbers with parentheses +\setbeamertemplate{enumerate subsubitem}{% + (\insertsubsubenumlabel)% +} +\setbeamercolor{enumerate subsubitem}{fg=main} + +% Special commands for text formatting +\renewcommand{\texttt}[1]{\textcolor{accent}{{\ttfamily\csname\celestia@headweight\endcsname #1}}} +\def\verb{\relax\ifmmode\hbox\else\leavevmode\null\fi + \bgroup + \ttfamily\bfseries + \color{main} + \let\do\@makeother\dospecials + \verbatim@font\@noligs + \@ifstar\@verb\@sverb} +\renewcommand{\alert}[1]{{\csname\celestia@headweight\endcsname\textcolor{accent}{#1}}} + +% Caption template +\setbeamertemplate{caption}{% + \raggedright% + \insertcaption\par% +} + +% Hyperlink setup +\hypersetup{urlcolor=mainblue} + +% Additional spacing settings +\setlength{\parskip}{0.5ex} +\setlength{\itemsep}{0.5ex} + +%------------------ +% Table of contents +%------------------ +% Base TOC style +\setbeamertemplate{section in toc}[sections numbered] +\setbeamertemplate{subsection in toc}{% + \leavevmode\leftskip=3.2em% + \rlap{\hskip-2em\inserttocsectionnumber.\inserttocsubsectionnumber}% + \inserttocsubsection\par% +} + +% Compact TOC handling +\ifcelestia@compacttoc + \patchcmd{\beamer@sectionintoc} + {\vfill} + {\vskip\itemsep} + {} + {} +\fi + +% Two-column TOC handling +\NewDocumentCommand{\twocolumntoc}{ O{} O{} O{} }{% + \ifcelestia@twocolumntoc + \setlength{\columnsep}{2em} + \begin{multicols}{2} + \tableofcontents[sections={#1-\the\numexpr#2-1}] + \columnbreak + \tableofcontents[sections={#2-#3}] + \end{multicols} + \else + \tableofcontents + \fi +} + +%------------------ +% Frame title +%------------------ +% Define colors for different frame title styles +\setbeamercolor{elegant frametitle}{bg=main,fg=background} +\setbeamercolor{plain frametitle}{fg=main,bg=} +\setbeamercolor{centered frametitle}{bg=main,fg=background} +\setbeamercolor{plaincentered frametitle}{fg=main,bg=} + +% Elegant frame title (default) with decorative line +\defbeamertemplate{frametitle}{elegant}{% + \nointerlineskip% + \begin{beamercolorbox}[wd=\paperwidth,sep=0.5em]{elegant frametitle} + \usebeamerfont{frametitle}\insertframetitle% + \ifx\insertframesubtitle\@empty\else% + \par{\usebeamerfont{framesubtitle}\insertframesubtitle}% + \fi% + \end{beamercolorbox}% + \ifcelestia@quartercirclefooter\ifcelestia@nofooter\vskip-.5em\else\vskip-1em\fi\else\ifcelestia@fullbarfooter\vskip-1em\else\vskip-1em\fi\fi% + \begin{tikzpicture}[remember picture,overlay] + \draw[main,line width=0.3pt] + ([yshift=-1pt]current page.north west) -- + ([yshift=-1pt]current page.north east); + \ifcelestia@decorative + \fill[main,opacity=0.1] + ([xshift=1em]current page.north west) -- + ([xshift=3em]current page.north west) -- + ([xshift=2em,yshift=-1em]current page.north west) -- cycle; + \fi + \end{tikzpicture}% +} + +% Plain frame title (no background, left-aligned) +\defbeamertemplate{frametitle}{plain}{% + \nointerlineskip% + \begin{beamercolorbox}[wd=\paperwidth,sep=1em]{plain frametitle} + \usebeamerfont{plain title}\insertframetitle% + \ifx\insertframesubtitle\@empty\else% + \par{\usebeamerfont{framesubtitle}\insertframesubtitle}% + \fi% + \end{beamercolorbox}% + \ifcelestia@quartercirclefooter\ifcelestia@nofooter\vskip-.25em\else\vskip-.75em\fi\else\ifcelestia@fullbarfooter\vskip-1em\else\vskip-1em\fi\fi% +} + +% Centered frame title (like elegant but centered) +\defbeamertemplate{frametitle}{centered}{% + \nointerlineskip% + \begin{beamercolorbox}[wd=\paperwidth,sep=0.5em,center]{centered frametitle} + \usebeamerfont{frametitle}\insertframetitle% + \ifx\insertframesubtitle\@empty\else% + \par{\usebeamerfont{framesubtitle}\insertframesubtitle}% + \fi% + \end{beamercolorbox}% + \ifcelestia@quartercirclefooter\ifcelestia@nofooter\vskip-.25em\else\vskip-.75em\fi\else\ifcelestia@fullbarfooter\vskip-1em\else\vskip-1em\fi\fi% + \begin{tikzpicture}[remember picture,overlay] + \draw[main,line width=0.3pt] + ([yshift=-1pt]current page.north west) -- + ([yshift=-1pt]current page.north east); + \ifcelestia@decorative + \fill[main,opacity=0.1] + ([xshift=1em]current page.north west) -- + ([xshift=3em]current page.north west) -- + ([xshift=2em,yshift=-1em]current page.north west) -- cycle; + \fi + \end{tikzpicture}% +} + +% Plain centered frame title (no background, centered) +\defbeamertemplate{frametitle}{plaincentered}{% + \nointerlineskip% + \begin{beamercolorbox}[wd=\paperwidth,sep=1em,center]{plaincentered frametitle} + \usebeamerfont{plain title}\insertframetitle% + \ifx\insertframesubtitle\@empty\else% + \par{\usebeamerfont{framesubtitle}\insertframesubtitle}% + \fi% + \end{beamercolorbox}% + \ifcelestia@quartercirclefooter\ifcelestia@nofooter\vskip-.25em\else\vskip-0.75em\fi\else\ifcelestia@fullbarfooter\vskip-1em\else\vskip-1em\fi\fi% +} + +% Set the default style to elegant +\setbeamertemplate{frametitle}[\celestia@frametitle] + +%------------------ +% Frame continuation +%------------------ +\setbeamertemplate{frametitle continuation}{\usebeamerfont{frametitle}(\insertcontinuationcount)} + +%------------------ +% Footline +%------------------ + +\setbeamertemplate{footline}{% + \leavevmode% + \setbeamercolor{current author}{fg=main,bg=background}% + \setbeamercolor{current title}{fg=background,bg=main}% + \setbeamercolor{current date}{fg=main,bg=background}% + \setbeamercolor{current page}{fg=background,bg=main}% + \ifcelestia@nofooter% + \hfill\usebeamerfont{footline text}\textcolor{main}{\insertframenumber/\inserttotalframenumber}% + \hspace*{2em}% + \vspace*{1em}% + \else% + \ifcelestia@quartercirclefooter% + \begin{tikzpicture}[overlay] + \usebeamercolor[bg]{current title} + \draw[fill] (\paperwidth,0ex) circle (8ex); + \usebeamercolor[fg]{current title} + \node at (\paperwidth-3.25ex,3.25ex) {\footnotesize\insertframenumber}; + \end{tikzpicture} + \else% + \ifcelestia@fullbarfooter% + \hbox{% + \begin{beamercolorbox}[wd=.275\paperwidth,ht=2.75ex,dp=1.5ex,left]{current title}% + \usebeamerfont{footline text}\hspace{1em}\insertshortauthor% + \end{beamercolorbox}% + \begin{beamercolorbox}[wd=.45\paperwidth,ht=2.75ex,dp=1.5ex,center]{current title}% + \usebeamerfont{footline text}\insertshorttitle% + \end{beamercolorbox}% + \begin{beamercolorbox}[wd=.275\paperwidth,ht=2.75ex,dp=1.5ex,right]{current title}% + \usebeamerfont{footline text}\insertshortdate{}\hspace*{6.5em}% + \end{beamercolorbox}% + }% + \begin{tikzpicture}[overlay] + \usebeamercolor[fg]{title in head/foot} + \draw (.275\paperwidth,0) -- (.275\paperwidth,3.25ex); + \draw (.725\paperwidth,0) -- (.725\paperwidth,3.25ex); + \end{tikzpicture} + + \begin{tikzpicture}[overlay] + \usebeamercolor[bg]{current title} + \draw[fill] (\paperwidth-5ex,3.625ex) circle (6ex); + \usebeamercolor[fg]{current title} + \draw[fill] (\paperwidth-5ex,3.625ex) circle (5ex); + \usebeamercolor[bg]{current title} + \node at (\paperwidth-5ex,4ex) {{\footnotesize\mathversion{bold}${}^{\insertframenumber}/_{\inserttotalframenumber}$}}; + \end{tikzpicture} + \else% + \hbox{% + \begin{beamercolorbox}[wd=.3\paperwidth,ht=3ex,dp=1.5ex,center,sep=-1ex]{current author}% + \usebeamerfont{footline text}\insertshortauthor% + \end{beamercolorbox}% + \begin{beamercolorbox}[wd=.4\paperwidth,ht=3ex,dp=1.5ex,center,sep=-1ex]{current title}% + \usebeamerfont{footline text}\insertshorttitle% + \end{beamercolorbox}% + \begin{beamercolorbox}[wd=.2\paperwidth,ht=3ex,dp=1.5ex,center,sep=-1ex]{current date}% + \usebeamerfont{footline text}\insertshortdate% + \end{beamercolorbox}% + \begin{beamercolorbox}[wd=.1\paperwidth,ht=3ex,dp=1.5ex,center,sep=-1ex]{current page}% + \usebeamerfont{footline text}\insertframenumber/\inserttotalframenumber% + \end{beamercolorbox}% + }% + \fi% + \fi% + \fi% +} + +%------------------ +% Standout frames +%------------------ +\define@key{beamerframe}{standout}[true]{% + \booltrue{celestia@standout}% + \begingroup + % Center the frame and remove frame number + \setkeys{beamerframe}{c}% + \setkeys{beamerframe}{noframenumbering}% + + % Set the colors for standout frame + \setbeamercolor{background canvas}{bg=accent!10}% + \setbeamercolor{frametitle}{fg=background,bg=accent}% + \setbeamercolor{normal text}{fg=accent}% + \usebeamercolor[fg]{normal text}% + + \setbeamercolor{block title}{parent={}}% + \setbeamercolor{block title}{fg=mainblue,bg=accent!10}% + \setbeamercolor{block title example}{parent={}}% + \setbeamercolor{block title example}{fg=maingreen,bg=accent!10}% + \setbeamercolor{block title alerted}{parent={}}% + \setbeamercolor{block title alerted}{fg=mainred,bg=accent!10}% + + % Remove footline for standout frames + \setbeamertemplate{footline}{}% +} + +% Close the group at the end of the frame +\pretocmd{\beamer@reseteecodes}{% + \ifbool{celestia@standout}{% + \endgroup + \boolfalse{celestia@standout}% + }{}% +}{}{} + +% Format standout content +\AtBeginEnvironment{beamer@frameslide}{% + \ifbool{celestia@standout}{% + \centering + \bfseries + }{}% +} + +%------------------ +% Special pages +%------------------ +% Title page +\setbeamertemplate{title page}{% + \ifcelestia@nofooter\vskip3em\else\vskip2em\fi% + \vfill% + \begingroup + \def\titlealignment{left} + \ifcelestia@centeredtitle + \def\titlealignment{center}% + \fi + \ifcelestia@titleright + \def\titlealignment{right}% + \fi + \begin{beamercolorbox}[sep=8pt,wd=\textwidth,\titlealignment]{title} + \usebeamerfont{title}\inserttitle\par% + \ifx\insertsubtitle\@empty\else% + \vskip0.5em% + {\usebeamerfont{subtitle}\ifcelestia@unicolor\color{main}\else\color{black}\fi\insertsubtitle\par}% + \fi% + \vskip2pt% + {\color{rulecolor}\ifx\celestia@headwight\celestia@bfseries + \ifcelestia@centeredtitle + \rule{.5\linewidth}{1pt}% + \else + \rule{.95\linewidth}{1pt}% + \fi + \else + \ifcelestia@centeredtitle + \rule{.5\linewidth}{0.5pt}% + \else + \rule{.95\linewidth}{0.5pt}% + \fi + \fi}% + \end{beamercolorbox}% + \begin{beamercolorbox}[sep=8pt,wd=\textwidth,\titlealignment]{author} + \usebeamerfont{author}\insertauthor + \end{beamercolorbox}% + \vskip-8pt% + \begin{beamercolorbox}[sep=8pt,wd=\textwidth,\titlealignment]{institute} + \usebeamerfont{institute}\insertinstitute% + \end{beamercolorbox}% + \vskip-4pt% + \begin{beamercolorbox}[sep=8pt,wd=\textwidth,\titlealignment]{date} + \usebeamerfont{date}\insertdate% + \end{beamercolorbox}% + \endgroup + \vfill% +} + +% Apply background to title page +\ifcelestia@decorative +\addtobeamertemplate{title page}{% + \begin{tikzpicture}[remember picture,overlay] + \fill[background] (current page.south west) rectangle (current page.north east); + + \begin{scope} + \fill[accent!85!white,opacity=0.045] ([xshift=-1.4cm,yshift=-1.1cm]current page.north east) circle (0.55cm); + \fill[accent!78!white,opacity=0.055] ([xshift=-0.7cm,yshift=-1.6cm]current page.north east) circle (0.45cm); + + \fill[accent!88!white,opacity=0.04] ([xshift=-1.9cm,yshift=-0.8cm]current page.north east) circle (0.32cm); + \fill[accent!92!white,opacity=0.05] ([xshift=-1.2cm,yshift=-0.6cm]current page.north east) circle (0.25cm); + + \fill[accent!89!white,opacity=0.045] ([xshift=-0.5cm,yshift=-0.9cm]current page.north east) circle (0.2cm); + \end{scope} + + \shade[ball color=accent!5!white,opacity=0.2] + ([xshift=-1.3cm,yshift=-1.2cm]current page.north east) circle (0.5cm); + \end{tikzpicture}% +}{} +\fi + +%------------------ +% Section pages +%------------------ +\setbeamertemplate{section page}{% + \ifcelestia@decorative + \begin{tikzpicture}[remember picture,overlay] + \fill[accent!92!white,opacity=0.038] ([xshift=3.82cm,yshift=1.18cm]current page.center) circle (2.85cm); + \fill[accent!78!white,opacity=0.032] ([xshift=4.55cm,yshift=-0.73cm]current page.center) circle (2.15cm); + + \fill[accent!85!white,opacity=0.042] ([xshift=-3.23cm,yshift=2.85cm]current page.center) circle (1.62cm); + \fill[accent!72!white,opacity=0.034] ([xshift=-3.95cm,yshift=1.48cm]current page.center) circle (1.23cm); + + \fill[accent!88!white,opacity=0.022] ([xshift=2.25cm,yshift=3.45cm]current page.center) circle (0.92cm); + \fill[accent!84!white,opacity=0.028] ([xshift=-2.65cm,yshift=-2.15cm]current page.center) circle (1.08cm); + \fill[accent!76!white,opacity=0.019] ([xshift=1.85cm,yshift=-2.95cm]current page.center) circle (0.73cm); + \fill[accent!90!white,opacity=0.016] ([xshift=-1.52cm,yshift=1.78cm]current page.center) circle (0.48cm); + + \shade[ball color=accent!4.5!white,opacity=0.19] + ([xshift=2.82cm,yshift=-1.58cm]current page.center) circle (1.95cm); + \shade[ball color=accent!3.2!white,opacity=0.17] + ([xshift=-2.18cm,yshift=0.92cm]current page.center) circle (1.42cm); + + \fill[accent!88!white,opacity=0.022] ([xshift=3.48cm,yshift=-2.38cm]current page.center) circle (0.28cm); + \fill[accent!85!white,opacity=0.018] ([xshift=-3.12cm,yshift=-1.25cm]current page.center) circle (0.35cm); + \fill[accent!92!white,opacity=0.014] ([xshift=1.15cm,yshift=2.72cm]current page.center) circle (0.25cm); + \fill[accent!86!white,opacity=0.016] ([xshift=-2.85cm,yshift=0.95cm]current page.center) circle (0.32cm); + \fill[accent!90!white,opacity=0.012] ([xshift=2.95cm,yshift=0.85cm]current page.center) circle (0.22cm); + + \fill[accent!95!white,opacity=0.008] ([xshift=0.95cm,yshift=-2.45cm]current page.center) circle (0.18cm); + \fill[accent!93!white,opacity=0.009] ([xshift=-1.85cm,yshift=-1.65cm]current page.center) circle (0.15cm); + \end{tikzpicture} +\fi + +\begin{center} + \parbox{.95\textwidth}{% + \centering + \begin{tikzpicture}[overlay,remember picture] + \node[fill=main!3!white,opacity=0.11,inner sep=1.72cm,shape=circle] at ([yshift=-0.382\textheight]current page.north) {}; + \node[fill=main!4!white,opacity=0.13,inner sep=1.45cm,shape=circle] at ([yshift=-0.382\textheight]current page.north) {}; + \node[fill=main!5!white,opacity=0.15,inner sep=1.18cm,shape=circle] at ([yshift=-0.382\textheight]current page.north) {}; + \node[fill=main!6!white,opacity=0.17,inner sep=0.91cm,shape=circle] at ([yshift=-0.382\textheight]current page.north) {}; + \node[fill=main!7!white,opacity=0.19,inner sep=0.64cm,shape=circle] at ([yshift=-0.382\textheight]current page.north) {}; + \node[align=center,text width=.95\textwidth] at (0,0) { + \centering + {\usebeamercolor[fg]{section title}% + \usebeamerfont{section title}% + \insertsectionhead\par}% + }; + \end{tikzpicture} + } +\end{center} +} + +\setbeamertemplate{subsection page}{% + \begin{center} + \parbox{.95\textwidth}{% + \centering + \begin{tikzpicture}[overlay,remember picture] + \node[align=center,text width=.95\textwidth] at (0,0) { + \centering + {\usebeamercolor[fg]{subsection title}% + \usebeamerfont{subsection title}% + \insertsubsectionhead\par}% + }; + \end{tikzpicture} + } + \end{center} +} + +\AtBeginSection{% + \begin{frame}[noframenumbering,plain] + \sectionpage + \end{frame} +} + +\AtBeginSubsection{% + \begin{frame}[noframenumbering,plain] + \subsectionpage + \end{frame} +} + +%------------------ +% Math and Theorem Settings +%------------------ + +% Set basic theorem colors +\setbeamercolor{theorem text}{parent=normal text} +\setbeamercolor{theorem title}{parent=structure} + +% Define theorem environments +\theoremstyle{plain} +\newtheorem{proposition}[theorem]{\translate{Proposition}} + +\theoremstyle{remark} +\newtheorem{remark}[theorem]{\translate{Remark}} +% \newtheorem{note}[theorem]{\translate{Note}} + +% Set theorem templates to normal font +\setbeamertemplate{theorems}[normal font] + +% Math-specific commands for formatting +\newcommand{\mathterm}[1]{\textcolor{mainblue}{\mathbf{#1}}} +\newcommand{\mathdef}[1]{\textcolor{maingreen}{\mathit{#1}}} + +% Caption style +\setbeamertemplate{caption}{% + \raggedright + \insertcaption\par + } + +%------------------ +% Listings Settings +%------------------ + +\RequirePackage{listings} + +\AtEndPreamble{ + \colorlet{codeKeyword}{main} + \definecolor{codeString}{HTML}{333333} + \definecolor{codeComment}{HTML}{6A737D} + \colorlet{codeEmph}{accent} + \colorlet{codeNumber}{accent} + \definecolor{codeNumber}{HTML}{C84E3F} + + \ifcelestia@unicolor + \colorlet{codeIdentifier}{main} + \else + \colorlet{codeIdentifier}{black} + \fi + + \lstset{ + basicstyle=\ttfamily\footnotesize\color{codeIdentifier}, + keywordstyle=\color{codeKeyword}\csname\celestia@headweight\endcsname, + stringstyle=\color{codeString}, + commentstyle=\color{codeComment}, + emphstyle=\color{codeEmph}\csname\celestia@headweight\endcsname, + numberstyle=\color{codeNumber}, + numbersep=5pt, + columns=fullflexible, + breaklines=true, + showstringspaces=false, + inputencoding=utf8, + extendedchars=true, + escapeinside={(*@}{@*)}, + aboveskip=.25\baselineskip, + belowskip=.25\baselineskip, + literate={% + á}{{\'a}}1 {é}{{\'e}}1 {Ã}{{\'i}}1 {ó}{{\'o}}1 {ú}{{\'u}}1 + {Ã}{{\'A}}1 {É}{{\'E}}1 {Ã}{{\'I}}1 {Ó}{{\'O}}1 {Ú}{{\'U}}1 + {à }{{\`a}}1 {è}{{\`e}}1 {ì}{{\`i}}1 {ò}{{\`o}}1 {ù}{{\`u}}1 + {À}{{\`A}}1 {È}{{\`E}}1 {ÃŒ}{{\`I}}1 {Ã’}{{\`O}}1 {Ù}{{\`U}}1 + {ä}{{\"a}}1 {ë}{{\"e}}1 {ï}{{\"i}}1 {ö}{{\"o}}1 {ü}{{\"u}}1 + {Ä}{{\"A}}1 {Ë}{{\"E}}1 {Ã}{{\"I}}1 {Ö}{{\"O}}1 {Ãœ}{{\"U}}1 + {â}{{\^a}}1 {ê}{{\^e}}1 {î}{{\^i}}1 {ô}{{\^o}}1 {û}{{\^u}}1 + {Â}{{\^A}}1 {Ê}{{\^E}}1 {ÃŽ}{{\^I}}1 {Ô}{{\^O}}1 {Û}{{\^U}}1 + {Å“}{{\oe}}1 {Å’}{{\OE}}1 {æ}{{\ae}}1 {Æ}{{\AE}}1 {ß}{{\ss}}1 + {ẞ}{{\SS}}1 {ç}{{\c{c}}}1 {Ç}{{\c{C}}}1 {ø}{{\o}}1 {Ø}{{\O}}1 + {Ã¥}{{\aa}}1 {Ã…}{{\AA}}1 {ã}{{\~a}}1 {õ}{{\~o}}1 {Ã}{{\~A}}1 + {Õ}{{\~O}}1 {ñ}{{\~n}}1 {Ñ}{{\~N}}1 {¿}{{?`}}1 {¡}{{!`}}1 + {°}{{\textdegree}}1 {º}{{\textordmasculine}}1 {ª}{{\textordfeminine}}1 + {€}{{\euro}}1 {£}{{\pounds}}1 {©}{{\copyright}}1 {®}{{\textregistered}}1 + {«}{{\guillemotleft}}1 {»}{{\guillemotright}}1 {Ã}{{\DH}}1 {ð}{{\dh}}1 + {Ã}{{\'Y}}1 {ý}{{\'y}}1 {Þ}{{\TH}}1 {þ}{{\th}}1 {Ä‚}{{\u{A}}}1 + {ă}{{\u{a}}}1 {Ä„}{{\k{A}}}1 {Ä…}{{\k{a}}}1 {Ć}{{\'C}}1 {ć}{{\'c}}1 + {ÄŒ}{{\v{C}}}1 {Ä}{{\v{c}}}1 {ÄŽ}{{\v{D}}}1 {Ä}{{\v{d}}}1 {Ä}{{\DJ}}1 + {Ä‘}{{\dj}}1 {Ä–}{{\.{E}}}1 {Ä—}{{\.{e}}}1 {Ę}{{\k{E}}}1 {Ä™}{{\k{e}}}1 + {Äš}{{\v{E}}}1 {Ä›}{{\v{e}}}1 {Äž}{{\u{G}}}1 {ÄŸ}{{\u{g}}}1 {Ĩ}{{\~I}}1 + {Ä©}{{\~\i}}1 {Ä®}{{\k{I}}}1 {į}{{\k{i}}}1 {Ä°}{{\.{I}}}1 {ı}{{\i}}1 + {Ĺ}{{\'L}}1 {ĺ}{{\'l}}1 {Ľ}{{\v{L}}}1 {ľ}{{\v{l}}}1 {Å}{{\L{}}}1 + {Å‚}{{\l{}}}1 {Ń}{{\'N}}1 {Å„}{{\'n}}1 {Ň}{{\v{N}}}1 {ň}{{\v{n}}}1 + {Å}{{\H{O}}}1 {Å‘}{{\H{o}}}1 {Å”}{{\'{R}}}1 {Å•}{{\'{r}}}1 {Ř}{{\v{R}}}1 + {Å™}{{\v{r}}}1 {Åš}{{\'S}}1 {Å›}{{\'s}}1 {Åž}{{\c{S}}}1 {ÅŸ}{{\c{s}}}1 + {Å }{{\v{S}}}1 {Å¡}{{\v{s}}}1 {Ť}{{\v{T}}}1 {Å¥}{{\v{t}}}1 {Ũ}{{\~U}}1 + } + +\lstdefinelanguage{json}{% + keywords={true,false,null}, + sensitive=false, + morestring=[b]", + morecomment=[l]{//}, + morecomment=[s]{/*}{*/}, + literate= + *{0}{{{\color{codeComment}0}}}{1} + {1}{{{\color{codeComment}1}}}{1} + {2}{{{\color{codeComment}2}}}{1} + {3}{{{\color{codeComment}3}}}{1} + {4}{{{\color{codeComment}4}}}{1} + {5}{{{\color{codeComment}5}}}{1} + {6}{{{\color{codeComment}6}}}{1} + {7}{{{\color{codeComment}7}}}{1} + {8}{{{\color{codeComment}8}}}{1} + {9}{{{\color{codeComment}9}}}{1} + {:}{{{\color{codeKeyword}{:}}}}{1} + {,}{{{\color{codeKeyword}{,}}}}{1} + {\{}{{{\color{codeKeyword}{\{}}}}{1} + {\}}{{{\color{codeKeyword}{\}}}}}{1} + {[}{{{\color{codeKeyword}{[}}}}{1} + {]}{{{\color{codeKeyword}{]}}}}{1}, +} + +% YAML +\lstdefinelanguage{yaml}{% + keywords={true,false,null,yes,no,on,off}, + sensitive=false, + morestring=[b]", + morestring=[b]', + morecomment=[l]{\#}, + literate= + *{:}{{{\color{codeKeyword}{:}}}}{1} + {-}{{{\color{codeKeyword}{-}}}}{1} + {>}{{{\color{codeKeyword}{>}}}}{1} + {|}{{{\color{codeKeyword}{|}}}}{1}, +} + +% TOML +\lstdefinelanguage{toml}{% + keywords={true,false}, + sensitive=false, + morestring=[b]", + morestring=[b]', + morecomment=[l]{\#}, + literate= + *{=}{{{\color{codeKeyword}{=}}}}{1} + {[}{{{\color{codeKeyword}{[}}}}{1} + {]}{{{\color{codeKeyword}{]}}}}{1} + {.}{{{\color{codeKeyword}{.}}}}{1}, +} + +% CSV +\lstdefinelanguage{csv}{% + sensitive=false, + morestring=[b]", + morecomment=[l]{\#}, + literate= + *{,}{{{\color{codeKeyword}{,}}}}{1} + {;}{{{\color{codeKeyword}{;}}}}{1}, +} + +% Markdown +\lstdefinelanguage{markdown}{% + sensitive=false, + morecomment=[l]{\%}, + literate= + *{\#}{{{\color{codeKeyword}{\#}}}}{1} + {-}{{{\color{codeKeyword}{-}}}}{1} + {*}{{{\color{codeKeyword}{*}}}}{1} + {>}{{{\color{codeKeyword}{>}}}}{1} + {`}{{{\color{codeKeyword}{`}}}}{1} + {|}{{{\color{codeKeyword}{|}}}}{1} + {[}{{{\color{codeKeyword}{[}}}}{1} + {]}{{{\color{codeKeyword}{]}}}}{1} + {(}{{{\color{codeKeyword}{(}}}}{1} + {)}{{{\color{codeKeyword}{)}}}}{1}, +} + +%% Language-Specific Styles +%% ---------------------------------- +\lstdefinestyle{python}{% + language=Python, + morekeywords={% + @property,@classmethod,@staticmethod, + }, + emph={% + range,int,str,list,dict,set,bool,float, + tuple,super,type,print,len,sum,min,max, + enumerate,zip,map,filter,any,all,as,assert, + nonlocal,with,yield,self,True,False,None, + lambda,raise,await,async, + }, + morestring=[b]""", +} + +\lstdefinestyle{java}{% + language=Java, + morekeywords={% + @Override,@Deprecated,@SuppressWarnings, + @FunctionalInterface,@SafeVarargs, + var,record,sealed,permits, + public,private,protected,static,final, + abstract,interface,extends,implements + }, + morecomment=[s]{/*}{*/}, + morecomment=[l]//, + morestring=[b]", +} + +\lstdefinestyle{cpp}{% + language=C++, + morekeywords={% + nullptr,constexpr,override,final, + template,typename,concept,requires, + auto,decltype,noexcept,static_assert, + thread_local,alignas,alignof + }, + morecomment=[s]{/*}{*/}, + morecomment=[l]//, + morestring=[b]", +} + +\lstdefinestyle{javascript}{% + language=JavaScript, + morekeywords={% + let,const,var,function,class,extends, + static,get,set,new,this,super, + import,export,default,from,as, + async,await,yield,return, + undefined,null,true,false + }, + morecomment=[s]{/*}{*/}, + morecomment=[l]//, + morestring=[b]", + morestring=[b]', + morestring=[b]`, +} + +\lstdefinestyle{sql}{% + language=SQL, + morekeywords={% + CREATE,TABLE,INSERT,INTO,VALUES, + SELECT,FROM,WHERE,GROUP,BY,HAVING, + ORDER,LIMIT,JOIN,LEFT,RIGHT,INNER, + UPDATE,SET,DELETE,ALTER,DROP, + CONSTRAINT,PRIMARY,KEY,FOREIGN, + REFERENCES,CASCADE,INDEX + }, + sensitive=false, +} + +\lstdefinestyle{latex}{% + language=[latex]TeX, + texcsstyle=*\bfseries\color{codeKeyword}, + moretexcs = {usetheme,tableofcontents,index,footnote,sout,part,chapter,subsection,subsubsection,paragraph,maketitle,leqslant,geqslant,varnothing,includegraphics,draw,node,theoremstyle,newtcolorbox,tcbuselibrary,newtcbtheorem,SI,ang,ce,chemfig,norm,abs,deriv,R,N,Z,ProvidesPackage,color,ps,montitre,lstset,lstinline,lstinputlisting,definecolor,textcolor,colorlet,setlength,colorbox,fcolorbox,addplot,pgfplotsset,opadd,opsub,opmul,opdiv,opgcd,metre,second,squared,kelvin,coulomb,volt,per,opprint,legend,tkzDefPoint,tkzInterLL,tkzGetPoint,tkzDrawPolygon,tkzDrawSegments,tkzMarkRightAngles,tkzMarkSegments,tkzLabelPoints,boxed,boldsymbol,boldmath,multirow,addbibresource,printbibliography,bm,dfrac,meter,thead,makecell,euro,cellcolor,rowcolor,columncolor,base,repere,rog,ron,rond,derpart,drv,integrer,nuplet,anuplet,ensemble,E,V,suite,suitar,suitgeo,vect,norme,tr,rank,adj,sgn,im,di,intabfx,integrale,e,moinsinf,plusinf,sisetup,restoregeometry,newgeometry}, + emph={width,axis~lines,xlabel,ylabel,xmin,ymin,grid,domain,samples,displayshiftintermediary,colback,colframe,colbacktitle,coltitle,enhanced,,fonttitle,margin,leftmargin,publisher,year,carrysub,lastcarry,locale,xmax,ymax,coordinates,mark,style,hmargin,vmargin,top,bottom,left,right,showframe,includeheadfoot,opacity,fill,above,}, + morecomment=[l]{\%}, + morestring=[b]", + sensitive=true + } + +\lstdefinestyle{bash}{% + language=bash, + morekeywords={% + source, alias, bg, bind, break, builtin, cd, command, compgen, + complete, continue, declare, dirs, disown, echo, enable, eval, + exec, exit, export, fc, fg, getopts, hash, help, history, jobs, + kill, let, local, logout, mapfile, popd, printf, pushd, pwd, + read, readarray, readonly, return, set, shift, shopt, suspend, + test, times, trap, type, typeset, ulimit, umask, unalias, + unset, wait + }, + morestring=[b]", + morestring=[b]', + morestring=[b]\`, + morecomment=[l]{\#}, + literate= + *{\$}{{{\color{codeKeyword}{\$}}}}{1} + {|}{{{\color{codeKeyword}{|}}}}{1} + {>}{{{\color{codeKeyword}{>}}}}{1} + {<}{{{\color{codeKeyword}{<}}}}{1} + {&}{{{\color{codeKeyword}{\&}}}}{1}, +} + +\lstdefinestyle{assembly}{% + language=[x86]Assembler, + morekeywords={% + section, global, extern + }, + morecomment=[l]{;}, + morecomment=[l]{\#}, + literate= + *{,}{{{\color{codeKeyword}{,}}}}{1} + {:}{{{\color{codeKeyword}{:}}}}{1} + {[}{{{\color{codeKeyword}{[}}}}{1} + {]}{{{\color{codeKeyword}{]}}}}{1} + {\$}{{{\color{codeKeyword}{\$}}}}{1} + {\%}{{{\color{codeKeyword}{\%}}}}{1}, +} + +\lstdefinestyle{lisp}{% + language=Lisp, + morekeywords={% + setq, setf, loop, do, progn, when, unless + }, + literate= + *{(}{{{\color{codeKeyword}{(}}}}{1} + {)}{{{\color{codeKeyword}{)}}}}{1} + {'}{{{\color{codeKeyword}{'}}}}{1} + {`}{{{\color{codeKeyword}{`}}}}{1} + {,}{{{\color{codeKeyword}{,}}}}{1}, +} + +\lstdefinestyle{json}{% + language=json, +} + +\lstdefinestyle{yaml}{% + language=yaml, +} + +\lstdefinestyle{toml}{% + language=toml, +} + +\lstdefinestyle{csv}{% + language=csv, +} + +\lstdefinestyle{markdown}{% + language=markdown, +} + +} + +\newtcolorbox{lstbox}{ + enhanced, + boxrule=0.5pt, + colback=codebackground, + colframe=\ifcelestia@nocodeframe background\else codeframecolor\fi, + left=1ex, + right=1ex, + top=0pt, + bottom=0pt, + boxsep=0pt +} + +\ifcelestia@codebox + \BeforeBeginEnvironment{lstlisting}{\begin{lstbox}} + \AfterEndEnvironment{lstlisting}{\end{lstbox}} + + \let\oldlstinputlisting\lstinputlisting + \renewcommand{\lstinputlisting}[2][]{% + \begin{lstbox}% + \oldlstinputlisting[#1]{#2}% + \end{lstbox}% + } +\else + \BeforeBeginEnvironment{lstlisting}{} + \AfterEndEnvironment{lstlisting}{} +\fi + +% Mode declaration +\mode<all> diff --git a/macros/latex/contrib/beamer-contrib/themes/moloch/CHANGELOG.md b/macros/latex/contrib/beamer-contrib/themes/moloch/CHANGELOG.md index 1d90d7617c..b43a5a2bf2 100644 --- a/macros/latex/contrib/beamer-contrib/themes/moloch/CHANGELOG.md +++ b/macros/latex/contrib/beamer-contrib/themes/moloch/CHANGELOG.md @@ -1,5 +1,54 @@ # Changelog +## [0.6.0](https://github.com/jolars/moloch/compare/v0.5.0...v0.6.0) (2025-01-17) + + +### Features + +* add back highcontrast theme from metropolis ([3039994](https://github.com/jolars/moloch/commit/3039994e27a01d54d7a3cfa696318413161f5e15)) +* add new color theme based on the tomorrow color theme ([13e7300](https://github.com/jolars/moloch/commit/13e73007c6d29989684aa228f7f74d3bdcce526f)) +* add option to customize frame numbering of standout pages ([d6d0e3c](https://github.com/jolars/moloch/commit/d6d0e3c61565f06d1987c275e2460c9b61ef8ae3)), closes [#33](https://github.com/jolars/moloch/issues/33) +* deprecate `\mreducelistspacing` ([3d87ec2](https://github.com/jolars/moloch/commit/3d87ec2d8d4a81c09d13083aa61af2a36ce6dd1d)) +* redesign section and subsection pages ([#30](https://github.com/jolars/moloch/issues/30)) ([5a98c69](https://github.com/jolars/moloch/commit/5a98c69a3f07b5b36d5d2c5e5a117e25c472ad22)) +* use golden rule in top-bottom spacing of title page ([85eabc7](https://github.com/jolars/moloch/commit/85eabc7beef4296dcc7a7ac53eb0f7a785fe8c35)) + + +### Reverts + +* "feat: deprecate `\mreducelistspacing`" ([eb4bf54](https://github.com/jolars/moloch/commit/eb4bf54e734a64936903d18dbb6d1668d769fa01)) +* "test: remove standoutnumbering test" ([ce7540d](https://github.com/jolars/moloch/commit/ce7540d71caf490cbd3129345cd778b1519394d9)) + +## [0.5.0](https://github.com/jolars/moloch/compare/v0.4.0...v0.5.0) (2024-10-30) + + +### Features + +* replace `\vfill` with `\vfil` in title frame ([8f2a59e](https://github.com/jolars/moloch/commit/8f2a59e239cf0ae32f1a5c8fbf6ad739fa1cd328)) +* switch from fill to fil ([#21](https://github.com/jolars/moloch/issues/21)) ([873ae15](https://github.com/jolars/moloch/commit/873ae154824ed10d45f05c6efe4c4cc73eca1a22)) + + +### Bug Fixes + +* remove duplicated footnote color specifications ([#26](https://github.com/jolars/moloch/issues/26)) ([1306af5](https://github.com/jolars/moloch/commit/1306af5a73e0a030ece2ad9825496cc28507ad54)) +* remove extra space below progressbar section pages ([#27](https://github.com/jolars/moloch/issues/27)) ([e5be480](https://github.com/jolars/moloch/commit/e5be4806ab9b975be8e8f67434c80fd2155e30b2)) +* set use=block title in block body for fill ([e8921a6](https://github.com/jolars/moloch/commit/e8921a69642166ef22b9b27cd3633a735c22f153)), closes [#28](https://github.com/jolars/moloch/issues/28) +* tag files with date ([28003e7](https://github.com/jolars/moloch/commit/28003e7502ce420a0e24b96e27ba3d30b9b0ecbc)) + +## [0.4.0](https://github.com/jolars/moloch/compare/v0.3.0...v0.4.0) (2024-07-09) + + +### Features + +* add a small amount of vertical space before subtitle ([b224a9b](https://github.com/jolars/moloch/commit/b224a9b5067187e64a7669b61aee029447535729)) +* support memoize package (closes [#16](https://github.com/jolars/moloch/issues/16)) ([1ca26e8](https://github.com/jolars/moloch/commit/1ca26e857a331fcb29296c4987b69aea0db90fae)) +* support title format modifications ([#18](https://github.com/jolars/moloch/issues/18)) ([46a4f49](https://github.com/jolars/moloch/commit/46a4f49e8bb95798c2d6f3b69a1b96128d95cb8b)) + + +### Bug Fixes + +* add % at the end of some commands ([33b9833](https://github.com/jolars/moloch/commit/33b9833f21d3e0654fe2452d0b8ac8e8eb3a47bb)) +* convert raw command in manual to text ([ac305e9](https://github.com/jolars/moloch/commit/ac305e9b547ce44e0573f333adc4e6684eb88b68)) + ## [0.3.0](https://github.com/jolars/moloch/compare/v0.2.0...v0.3.0) (2024-03-06) diff --git a/macros/latex/contrib/beamer-contrib/themes/moloch/README.md b/macros/latex/contrib/beamer-contrib/themes/moloch/README.md index f3b7971303..c8d9b78f15 100644 --- a/macros/latex/contrib/beamer-contrib/themes/moloch/README.md +++ b/macros/latex/contrib/beamer-contrib/themes/moloch/README.md @@ -12,19 +12,23 @@ The fork was created for the following reasons: - To remove some of the more opinionated design choices, such as special handling of the Fira family of fonts. - To strip away some features that added complexity to the code base without achieving valuable functionality for the majority of users, such as special code block designs and the pgfplots theme. +[Here's a blog post](https://jolars.co/blog/2024-05-30-moloch/) in which I introduce the theme and write in more detail about the changes with respect to Metropolis. + Do not expect this theme to be backwards compatible with the Metropolis theme. +![Screenshot](https://raw.githubusercontent.com/jolars/moloch/main/assets/screenshot.svg) + ## Installation Moloch is on [CTAN](https://ctan.org/pkg/moloch), so you can install it using your favorite LaTeX package manager. For example, with `tlmgr`: -```sh +```bash tlmgr install moloch ``` You can also install the theme from source, in which case you need a working LaTeX installation with `l3build` installed. Then just follow these steps: -```sh +```bash git clone https://github.com/jolars/moloch.git cd moloch l3build install diff --git a/macros/latex/contrib/beamer-contrib/themes/moloch/beamercolorthememoloch-highcontrast.dtx b/macros/latex/contrib/beamer-contrib/themes/moloch/beamercolorthememoloch-highcontrast.dtx new file mode 100644 index 0000000000..624921f261 --- /dev/null +++ b/macros/latex/contrib/beamer-contrib/themes/moloch/beamercolorthememoloch-highcontrast.dtx @@ -0,0 +1,50 @@ +% \iffalse meta-comment ------------------------------------------------------- +% Copyright 2015 Matthias Vogelgesang and the LaTeX community. A full list of +% contributors can be found at +% +% https://github.com/matze/mtheme/graphs/contributors +% +% and the original template was based on the HSRM theme by Benjamin Weiss. +% +% This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 +% International License (https://creativecommons.org/licenses/by-sa/4.0/). +%% --------------------------------------------------------------------------- +%% Copyright 2025 Johan Larsson and contributors +% ------------------------------------------------------------------------- \fi +% \iffalse +%<*package> +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{beamercolorthememoloch-highcontrast}[2025-01-17 v0.5.0 Moloch color theme] % x-release-please-version +%</package> +% \fi +% \CheckSum{0} +% \StopEventually{} +% \iffalse +%<*package> +% ------------------------------------------------------------------------- \fi +% +\usecolortheme{moloch} + +\definecolor{mAlert}{HTML}{AD003D} +\definecolor{mExample}{HTML}{005580} + +\setbeamercolor{normal text}{% + fg=black, + bg=white +} +\setbeamercolor{alerted text}{% + fg=mAlert, +} +\setbeamercolor{example text}{% + fg=mExample, +} +% +% \begin{macrocode} +\mode<all> +% \end{macrocode} +% +% \iffalse +%</package> +% \fi +% \Finale +\endinput diff --git a/macros/latex/contrib/beamer-contrib/themes/moloch/beamercolorthememoloch-tomorrow.dtx b/macros/latex/contrib/beamer-contrib/themes/moloch/beamercolorthememoloch-tomorrow.dtx new file mode 100644 index 0000000000..41ecdf43e5 --- /dev/null +++ b/macros/latex/contrib/beamer-contrib/themes/moloch/beamercolorthememoloch-tomorrow.dtx @@ -0,0 +1,51 @@ +% \iffalse meta-comment ------------------------------------------------------- +% Copyright 2015 Matthias Vogelgesang and the LaTeX community. A full list of +% contributors can be found at +% +% https://github.com/matze/mtheme/graphs/contributors +% +% and the original template was based on the HSRM theme by Benjamin Weiss. +% +% This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 +% International License (https://creativecommons.org/licenses/by-sa/4.0/). +%% --------------------------------------------------------------------------- +%% Copyright 2024 Johan Larsson and contributors +% ------------------------------------------------------------------------- \fi +% \iffalse +%<*package> +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{beamercolorthememoloch-tomorrow}[2025-01-17 v0.5.0 Moloch color theme] % x-release-please-version +%</package> +% \fi +% \CheckSum{0} +% \StopEventually{} +% \iffalse +%<*package> +% ------------------------------------------------------------------------- \fi +% +\usecolortheme{moloch} + +\definecolor{tomorrowForeground}{HTML}{1d1f21} +\definecolor{tomorrowBackground}{RGB}{255,255,255} +\definecolor{tomorrowHeader}{HTML}{1d1f21} +\definecolor{tomorrowAlert}{HTML}{cc6666} +\definecolor{tomorrowExample}{HTML}{4271ae} +\definecolor{tomorrowProgress}{HTML}{8959a8} + +\setbeamercolor{normal text}{fg=tomorrowForeground,bg=tomorrowBackground} +\setbeamercolor{moloch accent}{fg=tomorrowAccent} +\setbeamercolor{frametitle}{bg=tomorrowHeader} +\setbeamercolor{alerted text}{fg=tomorrowAlert} +\setbeamercolor{example text}{fg=tomorrowExample} +\setbeamercolor{progress bar}{fg=tomorrowProgress} + +% +% \begin{macrocode} +\mode<all> +% \end{macrocode} +% +% \iffalse +%</package> +% \fi +% \Finale +\endinput diff --git a/macros/latex/contrib/beamer-contrib/themes/moloch/beamercolorthememoloch.dtx b/macros/latex/contrib/beamer-contrib/themes/moloch/beamercolorthememoloch.dtx index d6a14105ca..57e402027e 100644 --- a/macros/latex/contrib/beamer-contrib/themes/moloch/beamercolorthememoloch.dtx +++ b/macros/latex/contrib/beamer-contrib/themes/moloch/beamercolorthememoloch.dtx @@ -14,7 +14,7 @@ % \iffalse %<*package> \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{beamercolorthememoloch}[2024-03-06 v0.3.0 Moloch color theme] % x-release-please-version +\ProvidesPackage{beamercolorthememoloch}[2025-01-17 v0.6.0 Moloch color theme] % x-release-please-version %</package> % \fi % \CheckSum{0} @@ -23,11 +23,11 @@ %<*package> % ------------------------------------------------------------------------- \fi % -% \subsection{\themename color theme} +% \subsection{\themename Color Theme} % % % -% \subsubsection{Package dependencies} +% \subsubsection{Package Dependencies} % \begin{macrocode} \RequirePackage{pgfopts} % \end{macrocode} @@ -75,7 +75,7 @@ % % % -% \subsubsection{Base colors} +% \subsubsection{Base Colors} % % \begin{macrocode} \definecolor{mDarkBrown}{HTML}{604c38} @@ -86,7 +86,7 @@ % % % -% \subsubsection{Base styles} +% \subsubsection{Base Styles} % % All colors in \themename are derived from the definitions of |normal text|, % |alerted text|, and |example text|. @@ -115,7 +115,7 @@ % % % -% \subsubsection{Derived colors} +% \subsubsection{Derived Colors} % % The titles and structural elements (e.g. |itemize| bullets) are set in the % same color as |normal text|. This would ideally done by setting |normal text| @@ -127,7 +127,8 @@ \setbeamercolor{titlelike}{use=normal text, parent=normal text} \setbeamercolor{author}{use=normal text, parent=normal text} \setbeamercolor{date}{use=normal text, parent=normal text} -\setbeamercolor{institute}{use=normal text, fg=normal text.fg!80!normal text.bg} +\setbeamercolor{institute}{% + use=normal text, fg=normal text.fg!80!normal text.bg} \setbeamercolor{structure}{use=normal text, fg=normal text.fg} % \end{macrocode} % @@ -191,6 +192,7 @@ bg=normal text.bg!80!fg } \setbeamercolor{block body}{% + use=block title, bg=block title.bg!50!normal text.bg } \setbeamercolor{block title alerted}{% @@ -223,14 +225,6 @@ \setbeamercolor{footnote mark}{fg=.} % \end{macrocode} % -% -% Footnotes -% -% \begin{macrocode} -\setbeamercolor{footnote}{fg=normal text.fg!90} -\setbeamercolor{footnote mark}{fg=.} -% \end{macrocode} -% % We also reset the bibliography colors in order to pick up the surrounding % colors at the time of use. This prevents us having to set the correct color in % normal and standout mode. @@ -244,7 +238,7 @@ % % % -% \subsubsection{Process package options} +% \subsubsection{Process Package Options} % % \begin{macrocode} \moloch@color@setdefaults diff --git a/macros/latex/contrib/beamer-contrib/themes/moloch/beamerfontthememoloch.dtx b/macros/latex/contrib/beamer-contrib/themes/moloch/beamerfontthememoloch.dtx index 4748387c3c..efde2681b0 100644 --- a/macros/latex/contrib/beamer-contrib/themes/moloch/beamerfontthememoloch.dtx +++ b/macros/latex/contrib/beamer-contrib/themes/moloch/beamerfontthememoloch.dtx @@ -14,7 +14,7 @@ % \iffalse %<*package> \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{beamerfontthememoloch}[2024-03-06 v0.3.0 Moloch font theme] % x-release-please-version +\ProvidesPackage{beamerfontthememoloch}[2025-01-17 v0.6.0 Moloch color theme] % x-release-please-version %</package> % \fi % \CheckSum{0} @@ -27,9 +27,12 @@ % % A |beamer| font theme sets the style of the font used in the document. % +% +% % \subsubsection{Package dependencies} % % \begin{macrocode} +\RequirePackage{etoolbox} \RequirePackage{pgfopts} % \end{macrocode} % @@ -51,6 +54,188 @@ \setbeamerfont{standout}{size=\Large, series=\bfseries} % \end{macrocode} % +% +% +% \subsubsection{Title format options} +% +% \begin{macro}{titleformat title} +% Controls the format of the title. +% \begin{macrocode} +\pgfkeys{ + /moloch/font/titleformat title/.cd, + .is choice, + regular/.code={% + \let\moloch@titleformat\@empty% + \setbeamerfont{title}{shape=\normalfont}% + }, + smallcaps/.code={% + \let\moloch@titleformat\@empty% + \setbeamerfont{title}{shape=\scshape}% + }, + allsmallcaps/.code={% + \let\moloch@titleformat\lowercase% + \setbeamerfont{title}{shape=\scshape}% + \PackageNote{beamerthememoloch}{% + Be aware that titleformat title=allsmallcaps can + lead to problems} + }, + allcaps/.code={% + \let\moloch@titleformat\uppercase% + \setbeamerfont{title}{shape=\normalfont} + \PackageNote{beamerthememoloch}{% + Be aware that titleformat title=allcaps can lead to problems% + } + }, +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{titleformat subtitle} +% Control the format of the subtitle. +% \begin{macrocode} +\pgfkeys{ + /moloch/font/titleformat subtitle/.cd, + .is choice, + regular/.code={% + \let\moloch@subtitleformat\@empty% + \setbeamerfont{subtitle}{shape=\normalfont}% + }, + smallcaps/.code={% + \let\moloch@subtitleformat\@empty% + \setbeamerfont{subtitle}{shape=\scshape}% + }, + allsmallcaps/.code={% + \let\moloch@subtitleformat\MakeLowercase% + \setbeamerfont{subtitle}{shape=\scshape}% + \PackageNote{beamerthememoloch}{% + Be aware that titleformat subtitle=allsmallcaps + can lead to problems} + }, + allcaps/.code={% + \let\moloch@subtitleformat\MakeUppercase% + \setbeamerfont{subtitle}{shape=\normalfont}% + \PackageNote{beamerthememoloch}{% + Be aware that titleformat subtitle=allcaps can + lead to problems} + }, +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{titleformat section} +% Controls the format of the section title. +% \begin{macrocode} +\pgfkeys{ + /moloch/font/titleformat section/.cd, + .is choice, + regular/.code={% + \let\moloch@sectiontitleformat\@empty% + \setbeamerfont{section title}{shape=\normalfont}% + }, + smallcaps/.code={% + \let\moloch@sectiontitleformat\@empty% + \setbeamerfont{section title}{shape=\scshape}% + }, + allsmallcaps/.code={% + \let\moloch@sectiontitleformat\MakeLowercase% + \setbeamerfont{section title}{shape=\scshape}% + \PackageNote{beamerthememoloch}{% + Be aware that titleformat section=allsmallcaps + can lead to problems} + }, + allcaps/.code={% + \let\moloch@sectiontitleformat\MakeUppercase% + \setbeamerfont{section title}{shape=\normalfont}% + \PackageNote{beamerthememoloch}{% + Be aware that titleformat section=allcaps + can lead to problems} + }, +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{frametitleformat} +% Control the format of the frame title. +% \begin{macrocode} +\pgfkeys{ + /moloch/font/titleformat frame/.cd, + .is choice, + regular/.code={% + \let\moloch@frametitleformat\@empty% + \setbeamerfont{frametitle}{shape=\normalfont}% + }, + smallcaps/.code={% + \let\moloch@frametitleformat\@empty% + \setbeamerfont{frametitle}{shape=\scshape}% + }, + allsmallcaps/.code={% + \let\moloch@frametitleformat\MakeLowercase% + \setbeamerfont{frametitle}{shape=\scshape}% + \PackageNote{beamerthememoloch}{% + Be aware that titleformat frame=allsmallcaps + can lead to problems} + }, + allcaps/.code={% + \let\moloch@frametitleformat\MakeUppercase% + \setbeamerfont{frametitle}{shape=\normalfont} + \PackageNote{beamerthememoloch}{% + Be aware that titleformat frame=allcaps can lead to problems% + } + }, +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{titleformat aliases} +% Allows |titleformat title| et al. to be used in the |\usetheme| +% declaration, where \LaTeX{} automatically removes all spaces. +% \begin{macrocode} +\pgfkeys{ + /moloch/font/.cd, + titleformattitle/.code=\pgfkeysalso{titleformat title=#1}, + titleformatsubtitle/.code=\pgfkeysalso{titleformat subtitle=#1}, + titleformatsection/.code=\pgfkeysalso{titleformat section=#1}, + titleformatframe/.code=\pgfkeysalso{titleformat frame=#1}, +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\moloch@font@setdefaults} +% Sets default values for font theme options. +% \begin{macrocode} +\newcommand{\moloch@font@setdefaults}{ + \pgfkeys{/moloch/font/.cd, + titleformat title=regular, + titleformat subtitle=regular, + titleformat section=regular, + titleformat frame=regular, + } +} +% \end{macrocode} +% \end{macro} +% +% We first define hooks to change the case format of the titles. +% +% \begin{macrocode} +\def\moloch@titleformat#1{#1} +\def\moloch@subtitleformat#1{#1} +\def\moloch@sectiontitleformat#1{#1} +\def\moloch@frametitleformat#1{#1} +% \end{macrocode} +% +% To make the uppercase and lowercase macros work in the title, subtitle, etc., +% we have to patch the appropriate |beamer| commands that set their values. +% This solution was suggested by Enrico Gregorio in an answer to +% \href{http://tex.stackexchange.com/questions/112526/}{this StackExchange +% question}. +% +% +% \subsubsection{Process package options} +% +% \begin{macrocode} +\moloch@font@setdefaults +\ProcessPgfPackageOptions{/moloch/font} +% \end{macrocode} % \iffalse %</package> % \fi diff --git a/macros/latex/contrib/beamer-contrib/themes/moloch/beamerinnerthememoloch.dtx b/macros/latex/contrib/beamer-contrib/themes/moloch/beamerinnerthememoloch.dtx index 2b626d526d..aabf357c74 100644 --- a/macros/latex/contrib/beamer-contrib/themes/moloch/beamerinnerthememoloch.dtx +++ b/macros/latex/contrib/beamer-contrib/themes/moloch/beamerinnerthememoloch.dtx @@ -14,7 +14,7 @@ % \iffalse %<*package> \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{beamerinnerthememoloch}[2024-03-06 v0.3.0 Moloch inner theme] % x-release-please-version +\ProvidesPackage{beamerinnerthememoloch}[2025-01-17 v0.6.0 Moloch color theme] % x-release-please-version %</package> % \fi % \CheckSum{0} @@ -23,7 +23,7 @@ %<*package> % ------------------------------------------------------------------------- \fi % -% \subsection{\themename inner theme} +% \subsection{\themename Inner Theme} % % A |beamer| inner theme dictates the style of the frame elements traditionally % set in the ``body'' of each slide. These include: @@ -38,7 +38,7 @@ % % % -% \subsubsection{Package dependencies} +% \subsubsection{Package Dependencies} % % \begin{macrocode} \RequirePackage{keyval} @@ -89,13 +89,42 @@ % \end{macrocode} % \end{macro} % +% \begin{macro}{standoutnumbering} +% Whether or not to number standout pages. Option |none| means that +% standout pages are not numbered (do not count as frames). |hide| means +% that they do count as frames, but that the footer with the number is +% not shown. Option |show| means that they both count as frames and +% that the footer with a frame count is shown. +% \begin{macrocode} +\providebool{moloch@enableStandoutFooter} +\providebool{moloch@enableStandoutNumbering} +\pgfkeys{ + /moloch/inner/standoutnumbering/.cd, + .is choice, + none/.code={ + \boolfalse{moloch@enableStandoutNumbering} + \boolfalse{moloch@enableStandoutFooter} + }, + show/.code={ + \booltrue{moloch@enableStandoutNumbering} + \booltrue{moloch@enableStandoutFooter} + }, + hide/.code={ + \booltrue{moloch@enableStandoutNumbering} + \boolfalse{moloch@enableStandoutFooter} + } +} +% \end{macrocode} +% \end{macro} +% % \begin{macro}{\moloch@inner@setdefaults} % Set default values for inner theme options. % \begin{macrocode} \newcommand{\moloch@inner@setdefaults}{ \pgfkeys{/moloch/inner/.cd, sectionpage=progressbar, - subsectionpage=none + subsectionpage=none, + standoutnumbering=none } } % \end{macrocode} @@ -103,7 +132,7 @@ % % % -% \subsubsection{Title page} +% \subsubsection{Title Page} % % \begin{macro}{title page} % Template for the title page. Each element is only typset if it is defined @@ -111,9 +140,10 @@ % space on the title slide. % \begin{macrocode} \setbeamertemplate{title page}{ - \begin{minipage}[b][\paperheight]{\textwidth} + \begin{minipage}[c][\textheight]{\textwidth} \null% - \vfill% + \vspace{0pt plus 1.618fil}% + \vfil% \ifx\inserttitlegraphic\@empty\else\usebeamertemplate*{title graphic}\fi \ifx\inserttitle\@empty\else\usebeamertemplate*{title}\fi \ifx\insertsubtitle\@empty\else\usebeamertemplate*{subtitle}\fi @@ -123,7 +153,7 @@ } \ifx\insertinstitute\@empty\else\usebeamertemplate*{institute}\fi \ifx\insertdate\@empty\else\usebeamertemplate*{date}\fi - \vfill + \vspace{0pt plus 1fil}% \null \end{minipage}% } @@ -173,7 +203,7 @@ % \begin{macrocode} \setbeamertemplate{title}{ \raggedright% - \inserttitle% + \moloch@titleformat{\inserttitle}% \par% \vspace*{0.2em} } @@ -184,8 +214,9 @@ % Set the subtitle on the title page. % \begin{macrocode} \setbeamertemplate{subtitle}{ + \vspace*{0.1em} \raggedright% - \insertsubtitle% + \moloch@subtitleformat{\insertsubtitle}% \par% \vspace*{0.2em} } @@ -201,6 +232,7 @@ \setbeamertemplate{title separator}{ \tikzexternaldisable% \begin{tikzpicture} + \mmzUnmemoizable% \fill[fg] (0,0) rectangle (\textwidth, \moloch@titleseparator@linewidth); \end{tikzpicture}% \tikzexternalenable% @@ -245,9 +277,9 @@ % \end{macro} % % -% \subsubsection{Section page} +% \subsubsection{Section Page} % -% \begin{macro}{section page} +% \begin{macro}{section Page} % % Template for the section title slide at the beginning of each section. % @@ -256,13 +288,15 @@ \begin{center} \usebeamercolor[fg]{section title} \usebeamerfont{section title} - \insertsectionhead\par - \ifx\insertsubsectionhead\@empty\else - \usebeamercolor[fg]{subsection title} - \usebeamerfont{subsection title} - \insertsubsectionhead + \moloch@sectiontitleformat{\insertsectionhead}\par + \usebeamercolor[fg]{subsection title}% + \usebeamerfont{subsection title}% + \strut% + \ifx\insertsubsectionhead\@empty\else% + \insertsubsectionhead% \fi \end{center} + \vspace{\baselineskip - 1ex + 0.4pt} } \defbeamertemplate{section page}{progressbar}{ \centering @@ -270,17 +304,17 @@ \raggedright \usebeamercolor[fg]{section title} \usebeamerfont{section title} - \insertsectionhead\\[-1ex] + \moloch@sectiontitleformat{\insertsectionhead}\\[-0.5\baselineskip] \usebeamertemplate*{progress bar in section page} \par + \usebeamercolor[fg]{subsection title}% + \usebeamerfont{subsection title}% + \strut% \ifx\insertsubsectionhead\@empty\else% - \usebeamercolor[fg]{subsection title}% - \usebeamerfont{subsection title}% - \insertsubsectionhead + \insertsubsectionhead% \fi \end{minipage} \par - \vspace{\baselineskip} } \newcommand{\moloch@disablesectionpage}{ \AtBeginSection{ @@ -338,9 +372,10 @@ \setbeamertemplate{progress bar in section page}{ \pgfmathsetlength{\moloch@progressonsectionpage}{ \textwidth * min(1,\insertframenumber/\inserttotalframenumber) - } - \tikzexternaldisable + }% + \tikzexternaldisable% \begin{tikzpicture} + \mmzUnmemoizable% \fill[bg] (0,0) rectangle @@ -348,13 +383,14 @@ \fill[fg] (0,0) rectangle - (\moloch@progressonsectionpage, \moloch@progressonsectionpage@linewidth); - \end{tikzpicture} - \tikzexternalenable + (\moloch@progressonsectionpage, + \moloch@progressonsectionpage@linewidth); + \end{tikzpicture}% + \tikzexternalenable% } % \end{macrocode} % -% The above code assumes that |\insertframenumber| is less than or equal to +% The code above assumes that |\insertframenumber| is less than or equal to % |\inserttotalframenumber|. However, this is not true on the first compile; % in the absence of an |.aux| file, |\inserttotalframenumber| defaults to 1. % This behaviour could cause fatal errors for long presentations, as @@ -369,7 +405,7 @@ % \end{macrocode} % \end{macro} % -% \subsubsection{Lists and floats} +% \subsubsection{Lists and Floats} % % \begin{macrocode} \setbeamertemplate{itemize item}{\(\bullet\)} @@ -384,17 +420,15 @@ % \subsubsection{Footnotes} % \begin{macrocode} \setbeamertemplate{footnote}{% - \parindent 0em\noindent% - \raggedright - \usebeamercolor{footnote}% - \hbox to 0.8em{\hfil\insertfootnotemark}% - \insertfootnotetext\par% + \parindent 0em\noindent\raggedright \usebeamercolor{footnote}\hbox to + 0.8em{\hfil\insertfootnotemark}\insertfootnotetext%%% + \par% } % \end{macrocode} % % % -% \subsubsection{Text and spacing settings} +% \subsubsection{Text and Spacing Settings} % % % By default, Beamer frames offer the |c| option to \textit{almost} vertically @@ -406,8 +440,8 @@ % % \begin{macrocode} \define@key{beamerframe}{c}[true]{% centered - \beamer@frametopskip=0pt plus 1fill\relax% - \beamer@framebottomskip=0pt plus 1fill\relax% + \beamer@frametopskip=0pt plus 1fil\relax% + \beamer@framebottomskip=0pt plus 1fil\relax% \beamer@frametopskipautobreak=0pt plus .4\paperheight\relax% \beamer@framebottomskipautobreak=0pt plus .6\paperheight\relax% \def\beamer@initfirstlineunskip{}% @@ -416,7 +450,7 @@ % % % -% \subsubsection{Standout frames} +% \subsubsection{Standout Frames} % % \themename offers a custom frame format with large, centered text and an % inverted background. To use it, add the key |standout| to the frame: @@ -436,7 +470,8 @@ \booltrue{moloch@standout} \begingroup \setkeys{beamerframe}{c} - \setkeys{beamerframe}{noframenumbering} + \ifbool{moloch@enableStandoutNumbering}{}{% + \setkeys{beamerframe}{noframenumbering}} \ifbeamercolorempty[bg]{palette primary}{ \setbeamercolor{background canvas}{ use=palette primary, @@ -452,6 +487,11 @@ fg=palette primary.fg } \usebeamercolor[fg]{palette primary} + \setbeamercolor{page number in head/foot}{ + use=palette primary, + fg=palette primary.fg + } + \ifbool{moloch@enableStandoutFooter}{}{\setbeamertemplate{footline}{}} } % \end{macrocode} % @@ -485,7 +525,7 @@ % \end{macrocode} % \end{macro} % -% \subsubsection{Process package options} +% \subsubsection{Process Package Options} % % \begin{macrocode} \moloch@inner@setdefaults diff --git a/macros/latex/contrib/beamer-contrib/themes/moloch/beamerouterthememoloch.dtx b/macros/latex/contrib/beamer-contrib/themes/moloch/beamerouterthememoloch.dtx index a5d5910831..1769e39819 100644 --- a/macros/latex/contrib/beamer-contrib/themes/moloch/beamerouterthememoloch.dtx +++ b/macros/latex/contrib/beamer-contrib/themes/moloch/beamerouterthememoloch.dtx @@ -14,7 +14,7 @@ % \iffalse %<*package> \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{beamerouterthememoloch}[2024-03-06 v0.3.0 Moloch outer theme] % x-release-please-version +\ProvidesPackage{beamerouterthememoloch}[2025-01-17 v0.6.0 Moloch color theme] % x-release-please-version %</package> % \fi % \CheckSum{0} @@ -160,26 +160,48 @@ % Templates for the frame title, which is optionally underlined with a % progress bar. % \begin{macrocode} +\newlength{\moloch@frametitle@padding} +\setlength{\moloch@frametitle@padding}{2.2ex} +\newcommand{\moloch@frametitlestrut@start}{% + \rule{0pt}{\moloch@frametitle@padding +% + \totalheightof{% + \ifcsdef{moloch@frametitleformat}{\moloch@frametitleformat X}{X}% + }% + }% +} + +\newcommand{\moloch@frametitlestrut@end}{% + \vphantom{% + \rule[-\moloch@frametitle@padding]{0pt}{\moloch@frametitle@padding}% + } +} \defbeamertemplate{frametitle}{plain}{% \nointerlineskip% \begin{beamercolorbox}[% wd=\paperwidth,% - sep=1.1ex,% - leftskip=0.5ex,% - rightskip=\the\glueexpr 0.5ex plus 1fill\relax,% + leftskip=1.6ex,% + rightskip=\the\glueexpr 1.6ex plus 1fil\relax,% ]{frametitle}% \usebeamerfont{frametitle}% - \vbox{}\vskip-0.4ex% - \strut\insertframetitle\nolinebreak\strut\par% + \moloch@frametitlestrut@start% + \moloch@frametitleformat{\insertframetitle}% {% \ifx\insertframesubtitle\@empty% \else% - {\usebeamerfont{framesubtitle}\vspace{-0.8ex}\usebeamercolor[fg]{framesubtitle}\strut\insertframesubtitle\strut\par}% + {% + \par% + \usebeamerfont{framesubtitle}% + \vspace{-0.8ex}% + \usebeamercolor[fg]{framesubtitle}% + \insertframesubtitle% + }% \fi }% + \moloch@frametitlestrut@end% \end{beamercolorbox}% } -\setbeamertemplate{frametitle continuation}{\romannumeral\insertcontinuationcount} +\setbeamertemplate{frametitle continuation}{% + \romannumeral\insertcontinuationcount} % \end{macrocode} % \end{macro} % @@ -192,13 +214,14 @@ \newlength{\moloch@progressinheadfoot@linewidth} \setlength{\moloch@progressinheadfoot@linewidth}{0.4pt} \setbeamertemplate{progress bar in head/foot}{ - \nointerlineskip + \nointerlineskip% \pgfmathsetlength{\moloch@progressinheadfoot}{% \paperwidth * min(1,\insertframenumber/\inserttotalframenumber)% - } + }% \begin{beamercolorbox}[wd=\paperwidth]{progress bar in head/foot} - \tikzexternaldisable + \tikzexternaldisable% \begin{tikzpicture} + \mmzUnmemoizable% \fill[bg] (0,0) rectangle @@ -208,7 +231,7 @@ rectangle (\moloch@progressinheadfoot, \moloch@progressinheadfoot@linewidth); \end{tikzpicture} - \tikzexternalenable + \tikzexternalenable% \end{beamercolorbox} } % \end{macrocode} diff --git a/macros/latex/contrib/beamer-contrib/themes/moloch/beamerthememoloch.dtx b/macros/latex/contrib/beamer-contrib/themes/moloch/beamerthememoloch.dtx index fcebef5a81..5231d1c40f 100644 --- a/macros/latex/contrib/beamer-contrib/themes/moloch/beamerthememoloch.dtx +++ b/macros/latex/contrib/beamer-contrib/themes/moloch/beamerthememoloch.dtx @@ -12,7 +12,7 @@ % \iffalse %<*package> \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{beamerthememoloch}[2024-03-06 v0.3.0 Moloch Beamer theme] % x-release-please-version +\ProvidesPackage{beamerthememoloch}[2025-01-17 v0.6.0 Moloch color theme] % x-release-please-version %</package> % \fi % \CheckSum{0} @@ -21,7 +21,7 @@ %<*package> % ------------------------------------------------------------------------- \fi % -% \subsection{\themename parent theme} +% \subsection{\themename Parent Theme} % % The primary job of this package is to load the component sub-packages of the % \themename theme and route the theme options accordingly. It also @@ -29,7 +29,7 @@ % % % -% \subsubsection{Package dependencies} +% \subsubsection{Package Dependencies} % % \begin{macrocode} \RequirePackage{pgfopts} @@ -52,17 +52,72 @@ } % \end{macrocode} % +% \begin{macro}{titleformat plain} +% Controls the formatting of the text on standout ``plain'' frames. +% \begin{macrocode} +\pgfkeys{ + /moloch/titleformat plain/.cd, + .is choice, + regular/.code={% + \let\moloch@plaintitleformat\@empty% + \setbeamerfont{standout}{shape=\normalfont}% + }, + smallcaps/.code={% + \let\moloch@plaintitleformat\@empty% + \setbeamerfont{standout}{shape=\scshape}% + }, + allsmallcaps/.code={% + \let\moloch@plaintitleformat\MakeLowercase% + \setbeamerfont{standout}{shape=\scshape}% + }, + allcaps/.code={% + \let\moloch@plaintitleformat\MakeUppercase% + \setbeamerfont{standout}{shape=\normalfont}% + }, +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{titleformat} +% Sets a standard format for titles, subtitles, section titles, frame +% titles, and the text on standout ``plain'' frames. +% \begin{macrocode} +\pgfkeys{ + /moloch/titleformat/.code=\pgfkeysalso{ + font/titleformat title=#1, + font/titleformat subtitle=#1, + font/titleformat section=#1, + font/titleformat frame=#1, + titleformat plain=#1, + } +} +% \end{macrocode} +% \end{macro} +% +% Set default values for options. +% +% \begin{macrocode} +\newcommand{\moloch@setdefaults}{ + \pgfkeys{/moloch/.cd, + titleformat plain=regular, + } +} +% \end{macrocode} +% % To avoid generating externalized figures of the progressbar we have to disable % them with ``tikzexternalenable'' and ``tikzexternaldisable''. However, if the % ``external'' libray is not loaded we would get undefined control sequence % problems, hence we define them as no-ops if they are not defined yet. +% We do the same for the ``mmzUnmemoizable'' command from the memoize package, in +% order to avoid memoization of the progress bars. % % \begin{macrocode} \providecommand{\tikzexternalenable}{} \providecommand{\tikzexternaldisable}{} +\providecommand{\mmzUnmemoizable}{} % \end{macrocode} % -% \subsubsection{Component sub-packages} +% \subsubsection{Component Sub-Packages} % % Having processed the options, we can now load the component sub-packages of % the theme. @@ -74,7 +129,7 @@ \usefonttheme{moloch} % \end{macrocode} % -% \subsubsection{Custom commands} +% \subsubsection{Custom Commands} % % The parent theme defines custom commands as their proper usage may depend % on multiple sub-packages. @@ -95,9 +150,10 @@ % % % -% \subsubsection{Process package options} +% \subsubsection{Process Package Options} % % \begin{macrocode} +\moloch@setdefaults \ProcessPgfOptions{/moloch} % \end{macrocode} % diff --git a/macros/latex/contrib/beamer-contrib/themes/moloch/beamerthememoloch.ins b/macros/latex/contrib/beamer-contrib/themes/moloch/beamerthememoloch.ins index c7d3c3efc5..2ce3a79955 100644 --- a/macros/latex/contrib/beamer-contrib/themes/moloch/beamerthememoloch.ins +++ b/macros/latex/contrib/beamer-contrib/themes/moloch/beamerthememoloch.ins @@ -25,5 +25,9 @@ \generate{\file{beamerouterthememoloch.sty}{\from{beamerouterthememoloch.dtx}{package}}} \generate{\file{beamerfontthememoloch.sty}{\from{beamerfontthememoloch.dtx}{package}}} \generate{\file{beamercolorthememoloch.sty}{\from{beamercolorthememoloch.dtx}{package}}} +\generate{\file{beamercolorthememoloch-tomorrow.sty}{% + \from{beamercolorthememoloch-tomorrow.dtx}{package}}} +\generate{\file{beamercolorthememoloch-highcontrast.sty}{% + \from{beamercolorthememoloch-highcontrast.dtx}{package}}} \endbatchfile diff --git a/macros/latex/contrib/beamer-contrib/themes/moloch/moloch.pdf b/macros/latex/contrib/beamer-contrib/themes/moloch/moloch.pdf Binary files differindex 3607149cef..238f4873bc 100644 --- a/macros/latex/contrib/beamer-contrib/themes/moloch/moloch.pdf +++ b/macros/latex/contrib/beamer-contrib/themes/moloch/moloch.pdf diff --git a/macros/latex/contrib/beamer-contrib/themes/moloch/moloch.tex b/macros/latex/contrib/beamer-contrib/themes/moloch/moloch.tex index a9eb326933..2af2412ba5 100644 --- a/macros/latex/contrib/beamer-contrib/themes/moloch/moloch.tex +++ b/macros/latex/contrib/beamer-contrib/themes/moloch/moloch.tex @@ -11,6 +11,9 @@ %% --------------------------------------------------------------------------- %% Copyright 2024 Johan Larsson and contributors %% --------------------------------------------------------------------------- +\PassOptionsToPackage{unicode,pdfusetitle}{hyperref} +\PassOptionsToPackage{hyphens}{xurl} +\PassOptionsToPackage{dvipsnames}{xcolor} \documentclass{ltxdoc} @@ -18,7 +21,10 @@ \usepackage{setspace} \usepackage{xspace} \usepackage{xurl} -\onehalfspacing + +\usepackage{lmodern} +\usepackage{microtype} +\UseMicrotypeSet[protrusion]{basicmath} % disable protrusion for tt fonts \usepackage{enumitem} \setlist[itemize]{noitemsep} @@ -35,8 +41,8 @@ \lstset{% language=[LaTeX]{TeX}, basicstyle=\ttfamily, - keywordstyle=\color{mLightBrown}\bfseries, - commentstyle=\color{mLightGreen}, + keywordstyle=\color{MidnightBlue}\bfseries, + commentstyle=\color{Periwinkle}, stringstyle=\color{mLightGreen}, backgroundcolor=\color{mBackground}, numbers=none, @@ -58,22 +64,27 @@ xrightmargin=0em, aboveskip=1em, belowskip=1em, - morekeywords={usetheme,institute,maketitle,% - plain,setbeamercolor,molochset,setsansfont,setmonofont}, + morekeywords={ + usetheme, + institute, + maketitle, + @moloch@titleformat, + %plain, + setbeamercolor, + molochset, + setsansfont, + setmonofont + }, } \lstMakeShortInline| \usepackage{metalogo} -\usepackage[colorlinks=true, - linkcolor=mLightBrown, - menucolor=mLightBrown, - pagecolor=mLightBrown, - urlcolor=mLightBrown]{hyperref} +\usepackage[colorlinks=true,linkcolor=MidnightBlue,urlcolor=MidnightBlue]{hyperref} \newcommand{\DescribeOption}[4]{ \DescribeMacro{#1} \begin{minipage}[t]{\textwidth} - \textit{\textbf{\textcolor{mLightGreen}{#2}}}\dotfill\,#3\par + \textit{\textbf{\textcolor{JungleGreen}{#2}}}\dotfill\,#3\par \begingroup \vspace{0.5em}#4\par \endgroup @@ -82,24 +93,24 @@ \newcommand{\themename}{\textsf{moloch}\xspace} -\def\molochversion{0.3.0} % x-release-please-version +\def\molochversion{0.6.0} % x-release-please-version \usepackage{readprov} -% \ReadPackageInfos{beamerthememoloch} -\title{The \themename package (v\molochversion)} +\title{The \themename Package (v\molochversion)} \author{Johan Larsson \and Matthias Vogelgesang\footnote{Matthias wrote the original version of this manual for the Metropolis theme, which has since been modified by Johan Larsson.}} \date{\today} \begin{document} \maketitle -\tableofcontents +\hypersetup{linkcolor=black} +\tableofcontents +\hypersetup{linkcolor=MidnightBlue} \section{Introduction} - Beamer is a great way to make presentations with LaTeX, but its theme selection is surprisingly sparse. The stock themes share an aesthetic that can be a little cluttered, while the few distinctive custom themes available are @@ -114,7 +125,7 @@ slide or to the section slides. If you have any issues, find mistakes in the manual or want to help make the theme even better, please get in touch there. -\themename is a fork of the popular Metroplis theme by Matthias Vogelgesang. +\themename is a fork of the popular Metropolis theme by Matthias Vogelgesang. The motivation for the fork was to fix some longstanding bugs in Metropolis and also simplify the codebase to make it easier to maintain and less fragile to changes in the underlying Beamer code. @@ -166,10 +177,10 @@ The following code shows a minimal example of a Beamer presentation using \begin{lstlisting} \documentclass{beamer} \usetheme{moloch} -\title{A minimal example} +\title{A Minimal Example} \date{\today} \author{Johan Larsson} -\institute{Centre for Modern Beamer Themes} +\institute{Some University} \begin{document} \maketitle \section{First Section} @@ -179,7 +190,6 @@ The following code shows a minimal example of a Beamer presentation using \end{document} \end{lstlisting} - \subsection{Dependencies} \themename depends on the |beamer| class and the following standard packages: @@ -187,6 +197,7 @@ The following code shows a minimal example of a Beamer presentation using \begin{itemize} \item |tikz| \item |pgfopts| + \item |etoolbox| \item |calc| \end{itemize} \end{multicols} @@ -200,10 +211,9 @@ presentations, you can run the following command $ pandoc -t beamer -V theme:moloch -o output.pdf input.md \end{lstlisting} - \section{Customization} -\subsection{Package options} +\subsection{Package Options} The theme provides a number of options, which can be set using a key=value interface. The primary way to set options is to provide a comma-separated list @@ -224,7 +234,26 @@ The list of options is structured as shown in the following example. A short description of the option. } -\subsubsection{Inner theme} +\subsubsection{Main Theme} + +\DescribeOption{titleformat}% +{regular, smallcaps, allsmallcaps, allcaps} +{regular}{ + Changes the format of titles, subtitles, section titles, frame titles, and + the text on ``standout'' frames. The available options produce + Regular, \textsc{SmallCaps}, \textsc{\MakeLowercase{AllSmallCaps}}, or + \MakeUppercase{AllCaps} titles. Note that these commands do not + affect math and numbers, so may not work as you expect if your titles + contain these. +} + +\DescribeOption{titleformat plain}% +{regular, smallcaps, allsmallcaps, allcaps}% +{regular}{ + Changes the format of ``standout'' frames (see |titleformat|, above). +} + +\subsubsection{Inner Theme} \DescribeOption{sectionpage}{none, simple, progressbar}{progressbar}{ Adds a slide at the start of each section (|simple|) with an optional thin @@ -241,8 +270,16 @@ The list of options is structured as shown in the following example. on the section structure of your presentation. } +\DescribeOption{standoutnumbering}{none, hide, show}{none}{ + This option decides whether or not to count standout pages as + frames if frame counting. Option |none| (the default) means that + the standout frames are not counted. |hide| means that they are + counted but that there won't be any footer showing a frame number. + |show| means that they are counted and that the frame number + count is shown in the same fashion as for regular frames. +} -\subsubsection{Outer theme} +\subsubsection{Outer Theme} \DescribeOption{numbering}{none, counter, fraction}{}{ \emph{This option is deprecated and will be removed in a future version. @@ -258,7 +295,7 @@ The list of options is structured as shown in the following example. (|frametitle|). } -\subsubsection{Color theme} +\subsubsection{Color Theme} \DescribeOption{block}{transparent, fill}{transparent}{ Optionally adds a light grey background to block environments like |theorem| @@ -270,6 +307,18 @@ The list of options is structured as shown in the following example. of the reverse. } +\subsubsection{Font Theme} + +\DescribeMacro{titleformat title} +\DescribeMacro{titleformat subtitle} +\DescribeMacro{titleformat section} +\DescribeOption{titleformat frame}% +{regular, smallcaps, allsmallcaps, allcaps}% +{regular}{ + Individually controls the format of titles, subtitles, section titles, and + frame titles (see |titleformat|, above). +} + \subsection{Color Customization} The included \themename color theme is used by default, but its colors can be @@ -297,6 +346,8 @@ of \themename specific colors, which can also be redefined to your liking. \setbeamercolor{progress bar in section page}{ ... } \end{lstlisting} +\subsubsection{Themes} + For low-light situations \themename it might be helpful to use the |moloch-highcontrast| color theme. It is enabled like any other color theme: @@ -304,10 +355,17 @@ For low-light situations \themename it might be helpful to use the \usecolortheme{moloch-highcontrast} \end{lstlisting} +There is also a theme based on the +\href{tomorrow color theme}{https://github.com/chriskempson/tomorrow-theme}, +which you can enable like this: + +\begin{lstlisting} +\usecolortheme{moloch-tomorrow} +\end{lstlisting} \subsection{Commands} -\subsubsection{Standout frames} +\subsubsection{Standout Frames} The \themename inner theme offers a custom frame format with large, centered text and an inverted background---perfect for focusing attention on @@ -321,7 +379,19 @@ single sentence or image. To use it, add the key |standout| to the frame: \section{Known Issues} -\subsection{Interactions with other color themes} +\subsection{Title Formats} + +Be aware that not every font supports small caps, so the |smallcaps| or +|allsmallcaps| options may not work for all fonts. +In particular, the Computer Modern sans-serif typeface, which is used +by default when \themename is compiled with pdf\LaTeX, does not have a +small-caps variant. + +Note that title format options |allsmallcaps| and |allcaps| do not +affect the sizes of numerals, punctuation, and math symbol, and are +probably best avoided if your titles contain these characters. + +\subsection{Interactions with Other Color Themes} \themename can be used along with any other Beamer color theme, such as |crane| or |seahorse|. If you wish to do this, it is usually best to include @@ -329,11 +399,11 @@ the \themename subpackages individually so the \themename color theme is never loaded. This will prevent conflicts between the \themename color theme and your preferred theme. -For example, overriding the color theme as follows may not work as expected because |\usetheme{moloch}| loads the \themename color theme, which -defines a relationship between the frametitle background and the primary -palette of the theme. Since |seahorse| assumes a different relationship -between its palettes, the result is a grey, rather than periwinkle, -frametitle background. +For example, overriding the color theme as follows may not work as expected +because |\usetheme{moloch}| loads the \themename color theme, which defines a +relationship between the frametitle background and the primary palette of the +theme. Since |seahorse| assumes a different relationship between its palettes, +the result is a grey, rather than periwinkle, frametitle background. \begin{lstlisting} \usetheme{moloch} @@ -355,8 +425,7 @@ favourite Beamer color theme. In particular, \themename does not set a background color for the title; this will cause issues when using color themes like |whale| which set a white foreground for the title. - -\subsection{Notes on second screen} +\subsection{Notes on Second Screen} If you use the \verb+[show notes on second screen]+ option built in to Beamer and compile with \XeLaTeX, text on slides following the first section slide may @@ -370,14 +439,13 @@ on each slide. \makeatletter \def\beamer@framenotesbegin{% at beginning of slide \usebeamercolor[fg]{normal text} - \gdef\beamer@noteitems{}% - \gdef\beamer@notes{}% + \gdef\beamer@noteitems{}% + \gdef\beamer@notes{}% } \makeatother \end{lstlisting} - -\subsection{Standout frames with labels} +\subsection{Standout Frames with Labels} Because the |standout| frame option creates a group to restrict the colour change to a single slide, labels defined after calling |standout| will stay @@ -393,7 +461,7 @@ To fix this problem, change the order of the keys in the frame. \begin{lstlisting} \begin{frame}[label=conclusion, standout]{Conclusion} - Awesome slide + Awesome slide \end{frame} \end{lstlisting} @@ -409,14 +477,12 @@ solution for Org mode users, using |org-set-property|. :END: \end{lstlisting} +\subsection{Standout Frames with Pandoc} -\subsection{Standout frames with Pandoc} - -With Pandoc versions prior 1.17.2 it was not possible to create standout frames +With Pandoc versions prior to 1.17.2 it was not possible to create standout frames because Pandoc only supported a specific list of frame attributes thus ignoring additional attributes such as |{.standout}|. - \section{License} \themename is licensed under a @@ -426,7 +492,6 @@ This means that if you change the theme and re-distribute it, you must retain the copyright notice header and license it under the same CC-BY-SA license. This does not affect any presentations that you create with the theme. - \section{Implementation} \DocInput{beamerthememoloch.dtx} |