diff options
Diffstat (limited to 'macros/latex/contrib/beamer-contrib')
11 files changed, 2084 insertions, 0 deletions
diff --git a/macros/latex/contrib/beamer-contrib/themes/moloch/CHANGELOG.md b/macros/latex/contrib/beamer-contrib/themes/moloch/CHANGELOG.md new file mode 100644 index 0000000000..8064aee6b3 --- /dev/null +++ b/macros/latex/contrib/beamer-contrib/themes/moloch/CHANGELOG.md @@ -0,0 +1,51 @@ +# Changelog + +## 0.1.0 (2024-01-15) + + +### ⚠ BREAKING CHANGES + +* remove \plain macro +* drop deprecated options +* remove appendix redefinition +* remove pgfplots theme +* remove high-contrast theme +* uncouple fira fonts from theme +* simplify blocks and remove blocks with background + +### Features + +* disable hyphenation in frame titles ([253234e](https://github.com/jolars/moloch/commit/253234e7b262d98e216dfadffddf29023f7af06f)) +* drop deprecated options ([548ede8](https://github.com/jolars/moloch/commit/548ede8413f1f0d5d2b762de9798f44351b2f81b)) +* group institute with author and subdue color ([0f3f6da](https://github.com/jolars/moloch/commit/0f3f6da5733f151368d181243d74055920074fc0)) +* increase minipage width for section pages ([160fe58](https://github.com/jolars/moloch/commit/160fe5854e87151f7b74faf29daf9969a1ef8328)) +* modify bullet symbols for itemize lists ([0042dcb](https://github.com/jolars/moloch/commit/0042dcb8b7caa4b4b277aaa779fd2fe62f8f2ec4)) +* modify example color to teal instead of light green ([1a2f157](https://github.com/jolars/moloch/commit/1a2f1573dc588c8e93ba6572c109620edde2d3c8)) +* remove \plain macro ([95f24ae](https://github.com/jolars/moloch/commit/95f24ae73ac72d9501de0760e48bbc0cacce797f)) +* remove appendix redefinition ([17edfad](https://github.com/jolars/moloch/commit/17edfad5975192df7561e6404bff14ba40726d2b)) +* remove high-contrast theme ([9932e55](https://github.com/jolars/moloch/commit/9932e55efcb3ed56e402301c8aec7a3583915dd9)) +* remove pgfplots theme ([c2f1bef](https://github.com/jolars/moloch/commit/c2f1bef3cc7b2a4c48bf2e4f3e7c0c857a54c6fa)) +* simplify blocks and remove blocks with background ([d5317d4](https://github.com/jolars/moloch/commit/d5317d4d05c06ac85f4cbaa7e4a17f493bc6cc32)) +* uncouple fira fonts from theme ([f960aba](https://github.com/jolars/moloch/commit/f960aba4ee56aabad24ab232a71e6673e00dc0db)) + + +### Bug Fixes + +* avoid overflow warnings from titlepage definition ([c1c5b85](https://github.com/jolars/moloch/commit/c1c5b85c301e0cd54213e15de8d5c606d0336059)) +* fix frametitle patchmd ([a302893](https://github.com/jolars/moloch/commit/a30289334007b497b24a111896cc68bcc08fbd42)) +* fix progress bar in inner theme too ([47dcf8d](https://github.com/jolars/moloch/commit/47dcf8df1ab26024e63e1f60ea59fd83a2210a2c)) +* fix reference to Knuth in demo ([fbfcc0b](https://github.com/jolars/moloch/commit/fbfcc0b7ad78bd3628b8f98b15f32a57aaf32d38)) +* insert missing parenthesis ([e72eaa9](https://github.com/jolars/moloch/commit/e72eaa9af24cdb1646e1785247c6579321cf6ad5)) +* metropolis -> moloch ([24cbc04](https://github.com/jolars/moloch/commit/24cbc0497a95e2a91f81fb996a0453dfb4bcdff0)) +* set maxium progressbar to 1 ([b401410](https://github.com/jolars/moloch/commit/b4014101fec3c12a5f5960817f97234511ac1aa5)) + + +### Reverts + +* "build: use alternative texlive action" ([5d32f73](https://github.com/jolars/moloch/commit/5d32f73e69a178665b3bc059e8973bc394eb3a4f)) +* "fix: avoid overflow warnings from titlepage definition" ([24c5409](https://github.com/jolars/moloch/commit/24c540998b637bd80f4318d3df603329bcade81f)) + + +### Miscellaneous Chores + +* remove newline ([cd97b2d](https://github.com/jolars/moloch/commit/cd97b2dcb6758f674ce173ff4c45e080d37b5374)) diff --git a/macros/latex/contrib/beamer-contrib/themes/moloch/LICENSE b/macros/latex/contrib/beamer-contrib/themes/moloch/LICENSE new file mode 100644 index 0000000000..795087c264 --- /dev/null +++ b/macros/latex/contrib/beamer-contrib/themes/moloch/LICENSE @@ -0,0 +1,427 @@ +Attribution-ShareAlike 4.0 International + +======================================================================= + +Creative Commons Corporation ("Creative Commons") is not a law firm and +does not provide legal services or legal advice. Distribution of +Creative Commons public licenses does not create a lawyer-client or +other relationship. Creative Commons makes its licenses and related +information available on an "as-is" basis. Creative Commons gives no +warranties regarding its licenses, any material licensed under their +terms and conditions, or any related information. Creative Commons +disclaims all liability for damages resulting from their use to the +fullest extent possible. + +Using Creative Commons Public Licenses + +Creative Commons public licenses provide a standard set of terms and +conditions that creators and other rights holders may use to share +original works of authorship and other material subject to copyright +and certain other rights specified in the public license below. The +following considerations are for informational purposes only, are not +exhaustive, and do not form part of our licenses. + + Considerations for licensors: Our public licenses are + intended for use by those authorized to give the public + permission to use material in ways otherwise restricted by + copyright and certain other rights. Our licenses are + irrevocable. Licensors should read and understand the terms + and conditions of the license they choose before applying it. + Licensors should also secure all rights necessary before + applying our licenses so that the public can reuse the + material as expected. Licensors should clearly mark any + material not subject to the license. This includes other CC- + licensed material, or material used under an exception or + limitation to copyright. More considerations for licensors: + wiki.creativecommons.org/Considerations_for_licensors + + Considerations for the public: By using one of our public + licenses, a licensor grants the public permission to use the + licensed material under specified terms and conditions. If + the licensor's permission is not necessary for any reason--for + example, because of any applicable exception or limitation to + copyright--then that use is not regulated by the license. Our + licenses grant only permissions under copyright and certain + other rights that a licensor has authority to grant. Use of + the licensed material may still be restricted for other + reasons, including because others have copyright or other + rights in the material. A licensor may make special requests, + such as asking that all changes be marked or described. + Although not required by our licenses, you are encouraged to + respect those requests where reasonable. More considerations + for the public: + wiki.creativecommons.org/Considerations_for_licensees + +======================================================================= + +Creative Commons Attribution-ShareAlike 4.0 International Public +License + +By exercising the Licensed Rights (defined below), You accept and agree +to be bound by the terms and conditions of this Creative Commons +Attribution-ShareAlike 4.0 International Public License ("Public +License"). To the extent this Public License may be interpreted as a +contract, You are granted the Licensed Rights in consideration of Your +acceptance of these terms and conditions, and the Licensor grants You +such rights in consideration of benefits the Licensor receives from +making the Licensed Material available under these terms and +conditions. + + +Section 1 -- Definitions. + + a. Adapted Material means material subject to Copyright and Similar + Rights that is derived from or based upon the Licensed Material + and in which the Licensed Material is translated, altered, + arranged, transformed, or otherwise modified in a manner requiring + permission under the Copyright and Similar Rights held by the + Licensor. For purposes of this Public License, where the Licensed + Material is a musical work, performance, or sound recording, + Adapted Material is always produced where the Licensed Material is + synched in timed relation with a moving image. + + b. Adapter's License means the license You apply to Your Copyright + and Similar Rights in Your contributions to Adapted Material in + accordance with the terms and conditions of this Public License. + + c. BY-SA Compatible License means a license listed at + creativecommons.org/compatiblelicenses, approved by Creative + Commons as essentially the equivalent of this Public License. + + d. Copyright and Similar Rights means copyright and/or similar rights + closely related to copyright including, without limitation, + performance, broadcast, sound recording, and Sui Generis Database + Rights, without regard to how the rights are labeled or + categorized. For purposes of this Public License, the rights + specified in Section 2(b)(1)-(2) are not Copyright and Similar + Rights. + + e. Effective Technological Measures means those measures that, in the + absence of proper authority, may not be circumvented under laws + fulfilling obligations under Article 11 of the WIPO Copyright + Treaty adopted on December 20, 1996, and/or similar international + agreements. + + f. Exceptions and Limitations means fair use, fair dealing, and/or + any other exception or limitation to Copyright and Similar Rights + that applies to Your use of the Licensed Material. + + g. License Elements means the license attributes listed in the name + of a Creative Commons Public License. The License Elements of this + Public License are Attribution and ShareAlike. + + h. Licensed Material means the artistic or literary work, database, + or other material to which the Licensor applied this Public + License. + + i. Licensed Rights means the rights granted to You subject to the + terms and conditions of this Public License, which are limited to + all Copyright and Similar Rights that apply to Your use of the + Licensed Material and that the Licensor has authority to license. + + j. Licensor means the individual(s) or entity(ies) granting rights + under this Public License. + + k. Share means to provide material to the public by any means or + process that requires permission under the Licensed Rights, such + as reproduction, public display, public performance, distribution, + dissemination, communication, or importation, and to make material + available to the public including in ways that members of the + public may access the material from a place and at a time + individually chosen by them. + + l. Sui Generis Database Rights means rights other than copyright + resulting from Directive 96/9/EC of the European Parliament and of + the Council of 11 March 1996 on the legal protection of databases, + as amended and/or succeeded, as well as other essentially + equivalent rights anywhere in the world. + + m. You means the individual or entity exercising the Licensed Rights + under this Public License. Your has a corresponding meaning. + + +Section 2 -- Scope. + + a. License grant. + + 1. Subject to the terms and conditions of this Public License, + the Licensor hereby grants You a worldwide, royalty-free, + non-sublicensable, non-exclusive, irrevocable license to + exercise the Licensed Rights in the Licensed Material to: + + a. reproduce and Share the Licensed Material, in whole or + in part; and + + b. produce, reproduce, and Share Adapted Material. + + 2. Exceptions and Limitations. For the avoidance of doubt, where + Exceptions and Limitations apply to Your use, this Public + License does not apply, and You do not need to comply with + its terms and conditions. + + 3. Term. The term of this Public License is specified in Section + 6(a). + + 4. Media and formats; technical modifications allowed. The + Licensor authorizes You to exercise the Licensed Rights in + all media and formats whether now known or hereafter created, + and to make technical modifications necessary to do so. The + Licensor waives and/or agrees not to assert any right or + authority to forbid You from making technical modifications + necessary to exercise the Licensed Rights, including + technical modifications necessary to circumvent Effective + Technological Measures. For purposes of this Public License, + simply making modifications authorized by this Section 2(a) + (4) never produces Adapted Material. + + 5. Downstream recipients. + + a. Offer from the Licensor -- Licensed Material. Every + recipient of the Licensed Material automatically + receives an offer from the Licensor to exercise the + Licensed Rights under the terms and conditions of this + Public License. + + b. Additional offer from the Licensor -- Adapted Material. + Every recipient of Adapted Material from You + automatically receives an offer from the Licensor to + exercise the Licensed Rights in the Adapted Material + under the conditions of the Adapter's License You apply. + + c. No downstream restrictions. You may not offer or impose + any additional or different terms or conditions on, or + apply any Effective Technological Measures to, the + Licensed Material if doing so restricts exercise of the + Licensed Rights by any recipient of the Licensed + Material. + + 6. No endorsement. Nothing in this Public License constitutes or + may be construed as permission to assert or imply that You + are, or that Your use of the Licensed Material is, connected + with, or sponsored, endorsed, or granted official status by, + the Licensor or others designated to receive attribution as + provided in Section 3(a)(1)(A)(i). + + b. Other rights. + + 1. Moral rights, such as the right of integrity, are not + licensed under this Public License, nor are publicity, + privacy, and/or other similar personality rights; however, to + the extent possible, the Licensor waives and/or agrees not to + assert any such rights held by the Licensor to the limited + extent necessary to allow You to exercise the Licensed + Rights, but not otherwise. + + 2. Patent and trademark rights are not licensed under this + Public License. + + 3. To the extent possible, the Licensor waives any right to + collect royalties from You for the exercise of the Licensed + Rights, whether directly or through a collecting society + under any voluntary or waivable statutory or compulsory + licensing scheme. In all other cases the Licensor expressly + reserves any right to collect such royalties. + + +Section 3 -- License Conditions. + +Your exercise of the Licensed Rights is expressly made subject to the +following conditions. + + a. Attribution. + + 1. If You Share the Licensed Material (including in modified + form), You must: + + a. retain the following if it is supplied by the Licensor + with the Licensed Material: + + i. identification of the creator(s) of the Licensed + Material and any others designated to receive + attribution, in any reasonable manner requested by + the Licensor (including by pseudonym if + designated); + + ii. a copyright notice; + + iii. a notice that refers to this Public License; + + iv. a notice that refers to the disclaimer of + warranties; + + v. a URI or hyperlink to the Licensed Material to the + extent reasonably practicable; + + b. indicate if You modified the Licensed Material and + retain an indication of any previous modifications; and + + c. indicate the Licensed Material is licensed under this + Public License, and include the text of, or the URI or + hyperlink to, this Public License. + + 2. You may satisfy the conditions in Section 3(a)(1) in any + reasonable manner based on the medium, means, and context in + which You Share the Licensed Material. For example, it may be + reasonable to satisfy the conditions by providing a URI or + hyperlink to a resource that includes the required + information. + + 3. If requested by the Licensor, You must remove any of the + information required by Section 3(a)(1)(A) to the extent + reasonably practicable. + + b. ShareAlike. + + In addition to the conditions in Section 3(a), if You Share + Adapted Material You produce, the following conditions also apply. + + 1. The Adapter's License You apply must be a Creative Commons + license with the same License Elements, this version or + later, or a BY-SA Compatible License. + + 2. You must include the text of, or the URI or hyperlink to, the + Adapter's License You apply. You may satisfy this condition + in any reasonable manner based on the medium, means, and + context in which You Share Adapted Material. + + 3. You may not offer or impose any additional or different terms + or conditions on, or apply any Effective Technological + Measures to, Adapted Material that restrict exercise of the + rights granted under the Adapter's License You apply. + + +Section 4 -- Sui Generis Database Rights. + +Where the Licensed Rights include Sui Generis Database Rights that +apply to Your use of the Licensed Material: + + a. for the avoidance of doubt, Section 2(a)(1) grants You the right + to extract, reuse, reproduce, and Share all or a substantial + portion of the contents of the database; + + b. if You include all or a substantial portion of the database + contents in a database in which You have Sui Generis Database + Rights, then the database in which You have Sui Generis Database + Rights (but not its individual contents) is Adapted Material, + including for purposes of Section 3(b); and + + c. You must comply with the conditions in Section 3(a) if You Share + all or a substantial portion of the contents of the database. + +For the avoidance of doubt, this Section 4 supplements and does not +replace Your obligations under this Public License where the Licensed +Rights include other Copyright and Similar Rights. + + +Section 5 -- Disclaimer of Warranties and Limitation of Liability. + + a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE + EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS + AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF + ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, + IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, + WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR + PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS, + ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT + KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT + ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU. + + b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE + TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, + NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, + INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES, + COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR + USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN + ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR + DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR + IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. + + c. The disclaimer of warranties and limitation of liability provided + above shall be interpreted in a manner that, to the extent + possible, most closely approximates an absolute disclaimer and + waiver of all liability. + + +Section 6 -- Term and Termination. + + a. This Public License applies for the term of the Copyright and + Similar Rights licensed here. However, if You fail to comply with + this Public License, then Your rights under this Public License + terminate automatically. + + b. Where Your right to use the Licensed Material has terminated under + Section 6(a), it reinstates: + + 1. automatically as of the date the violation is cured, provided + it is cured within 30 days of Your discovery of the + violation; or + + 2. upon express reinstatement by the Licensor. + + For the avoidance of doubt, this Section 6(b) does not affect any + right the Licensor may have to seek remedies for Your violations + of this Public License. + + c. For the avoidance of doubt, the Licensor may also offer the + Licensed Material under separate terms or conditions or stop + distributing the Licensed Material at any time; however, doing so + will not terminate this Public License. + + d. Sections 1, 5, 6, 7, and 8 survive termination of this Public + License. + + +Section 7 -- Other Terms and Conditions. + + a. The Licensor shall not be bound by any additional or different + terms or conditions communicated by You unless expressly agreed. + + b. Any arrangements, understandings, or agreements regarding the + Licensed Material not stated herein are separate from and + independent of the terms and conditions of this Public License. + + +Section 8 -- Interpretation. + + a. For the avoidance of doubt, this Public License does not, and + shall not be interpreted to, reduce, limit, restrict, or impose + conditions on any use of the Licensed Material that could lawfully + be made without permission under this Public License. + + b. To the extent possible, if any provision of this Public License is + deemed unenforceable, it shall be automatically reformed to the + minimum extent necessary to make it enforceable. If the provision + cannot be reformed, it shall be severed from this Public License + without affecting the enforceability of the remaining terms and + conditions. + + c. No term or condition of this Public License will be waived and no + failure to comply consented to unless expressly agreed to by the + Licensor. + + d. Nothing in this Public License constitutes or may be interpreted + as a limitation upon, or waiver of, any privileges and immunities + that apply to the Licensor or You, including from the legal + processes of any jurisdiction or authority. + + +======================================================================= + +Creative Commons is not a party to its public licenses. +Notwithstanding, Creative Commons may elect to apply one of its public +licenses to material it publishes and in those instances will be +considered the “Licensor.” The text of the Creative Commons public +licenses is dedicated to the public domain under the CC0 Public Domain +Dedication. Except for the limited purpose of indicating that material +is shared under a Creative Commons public license or as otherwise +permitted by the Creative Commons policies published at +creativecommons.org/policies, Creative Commons does not authorize the +use of the trademark "Creative Commons" or any other trademark or logo +of Creative Commons without its prior written consent including, +without limitation, in connection with any unauthorized modifications +to any of its public licenses or any other arrangements, +understandings, or agreements concerning use of licensed material. For +the avoidance of doubt, this paragraph does not form part of the public +licenses. + +Creative Commons may be contacted at creativecommons.org. diff --git a/macros/latex/contrib/beamer-contrib/themes/moloch/README.md b/macros/latex/contrib/beamer-contrib/themes/moloch/README.md new file mode 100644 index 0000000000..e5e0b235f2 --- /dev/null +++ b/macros/latex/contrib/beamer-contrib/themes/moloch/README.md @@ -0,0 +1,60 @@ +## Moloch + +[![CI](https://github.com/jolars/moloch/actions/workflows/ci.yml/badge.svg)](https://github.com/jolars/moloch/actions/workflows/ci.yml) + +Moloch is a simple Beamer theme suitable for anyone to use. It is +a fork of the [Metropolis Theme](https://github.com/matze/mtheme). + +The fork was created for the following reasons: + +- To fix some outstanding issues that had not been addressed for a long time. +- 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. + +Do not expect this theme to be backwards compatible with the Metropolis theme. + +## Installation + +A CTAN release is planned, but for now you can install the theme manually from source. You need a working LaTeX installation with `l3build` installed. Then just follow these steps: + +1. Clone the repository: `git clone https://github.com/jolars/moloch.git` +2. Install the package: `l3build install` + +## Usage + +The following code shows a minimal example of a Beamer presentation using +Moloch. + +```latex +\documentclass{beamer} +\usetheme{moloch} +\title{A minimal example} +\date{\today} +\author{Johan Larsson} +\institute{Centre for Modern Beamer Themes} +\begin{document} + \maketitle + \section{First Section} + \begin{frame}{First Frame} + Hello, world! + \end{frame} +\end{document} +``` + +## License + +The theme itself is licensed under a [Creative Commons Attribution-ShareAlike +4.0 International License](http://creativecommons.org/licenses/by-sa/4.0/). 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 the presentation that you create with the theme. + +## Contributing + +Contributions are welcome, but we are generally not interested in changes that can be easily added through the standard Beamer interface. + +Also, when writing commit messages, please use the [conventional commits format](https://www.conventionalcommits.org/en/v1.0.0/). + +## Versioning + +The project uses [semantic versioning](https://semver.org). diff --git a/macros/latex/contrib/beamer-contrib/themes/moloch/beamercolorthememoloch.dtx b/macros/latex/contrib/beamer-contrib/themes/moloch/beamercolorthememoloch.dtx new file mode 100644 index 0000000000..c6a41c2f18 --- /dev/null +++ b/macros/latex/contrib/beamer-contrib/themes/moloch/beamercolorthememoloch.dtx @@ -0,0 +1,212 @@ +% \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}[2024-01-15 v0.1.0 Moloch color theme] % x-release-please-version +%</package> +% \fi +% \CheckSum{0} +% \StopEventually{} +% \iffalse +%<*package> +% ------------------------------------------------------------------------- \fi +% +% \subsection{\themename color theme} +% +% +% +% \subsubsection{Package dependencies} +% \begin{macrocode} +\RequirePackage{pgfopts} +% \end{macrocode} +% +% +% +% \subsubsection{Options} +% +% +% \begin{macro}{colors} +% Provides the option to have a dark background and light foreground instead +% of the reverse. +% \begin{macrocode} +\pgfkeys{ + /moloch/color/background/.cd, + .is choice, + dark/.code=\moloch@colors@dark, + light/.code=\moloch@colors@light, +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\moloch@color@setdefaults} +% Sets default values for color theme options. +% \begin{macrocode} +\newcommand{\moloch@color@setdefaults}{ + \pgfkeys{/moloch/color/.cd, + background=light, + } +} +% \end{macrocode} +% \end{macro} +% +% +% +% \subsubsection{Base colors} +% +% \begin{macrocode} +\definecolor{mDarkBrown}{HTML}{604c38} +\definecolor{mDarkTeal}{HTML}{23373b} +\definecolor{mLightBrown}{HTML}{EB811B} +\definecolor{mLightGreen}{RGB}{0,128,128} +% \end{macrocode} +% +% +% +% \subsubsection{Base styles} +% +% All colors in \themename are derived from the definitions of |normal text|, +% |alerted text|, and |example text|. +% +% \begin{macrocode} +\newcommand{\moloch@colors@dark}{ + \setbeamercolor{normal text}{% + fg=black!2, + bg=mDarkTeal + } + \usebeamercolor[fg]{normal text} +} +\newcommand{\moloch@colors@light}{ + \setbeamercolor{normal text}{% + fg=mDarkTeal, + bg=black!2 + } +} +\setbeamercolor{alerted text}{% + fg=mLightBrown +} +\setbeamercolor{example text}{% + fg=mLightGreen +} +% \end{macrocode} +% +% +% +% \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| +% 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|. +% +% \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, fg=normal text.fg!80!normal text.bg} +\setbeamercolor{structure}{use=normal text, fg=normal text.fg} +% \end{macrocode} +% +% The “primary” palette should be used for the most important navigational +% elements, and possibly of other elements. \themename uses it for frame +% titles and slides. +% +% \begin{macrocode} +\setbeamercolor{palette primary}{% + use=normal text, + fg=normal text.bg, + bg=normal text.fg +} +\setbeamercolor{frametitle}{% + use=palette primary, + parent=palette primary +} +% \end{macrocode} +% +% The \themename 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|. +% +% \begin{macrocode} +\setbeamercolor{progress bar}{% + use=alerted text, + fg=alerted text.fg, + bg=alerted text.fg!50!black!30 +} +\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 section page}{ + use=progress bar, + parent=progress bar +} +% \end{macrocode} +% +% Block environments use alerted tex and example text for the title +% +% \begin{macrocode} +\setbeamercolor{block title alerted}{% + use={block title, alerted text}, + fg=alerted text.fg +} +\setbeamercolor{block title example}{% + use={block title, example text}, + fg=example text.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. +% +% \begin{macrocode} +\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} +% +% +% +% \subsubsection{Process package options} +% +% \begin{macrocode} +\moloch@color@setdefaults +\ProcessPgfPackageOptions{/moloch/color} +% \end{macrocode} +% +% \begin{macrocode} +\mode<all> +% \end{macrocode} +% +% \iffalse +%</package> +% \fi +% \Finale +\endinput diff --git a/macros/latex/contrib/beamer-contrib/themes/moloch/beamerfontthememoloch.dtx b/macros/latex/contrib/beamer-contrib/themes/moloch/beamerfontthememoloch.dtx new file mode 100644 index 0000000000..7b02600a14 --- /dev/null +++ b/macros/latex/contrib/beamer-contrib/themes/moloch/beamerfontthememoloch.dtx @@ -0,0 +1,61 @@ +% \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{beamerfontthememoloch}[2024-01-15 v0.1.0 Moloch font theme] % x-release-please-version +%</package> +% \fi +% \CheckSum{0} +% \StopEventually{} +% \iffalse +%<*package> +% ------------------------------------------------------------------------- \fi +% +% \subsection{\themename font theme} +% +% A |beamer| font theme sets the style of the font used in the document. +% +% \subsubsection{Package dependencies} +% +% \begin{macrocode} +\RequirePackage{pgfopts} +% \end{macrocode} +% +% \subsubsection{General font definitions} +% +% \begin{macrocode} +\setbeamerfont{title}{size=\Large, series=\bfseries} +\setbeamerfont{author}{size=\small} +\setbeamerfont{date}{size=\small} +\setbeamerfont{section title}{size=\Large, series=\bfseries} +\setbeamerfont{block title}{size=\normalsize, series=\bfseries} +\setbeamerfont{block title alerted}{size=\normalsize, series=\bfseries} +\setbeamerfont*{subtitle}{size=\large} +\setbeamerfont{frametitle}{size=\large, 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} +% +% \iffalse +%</package> +% \fi +% \Finale +\endinput diff --git a/macros/latex/contrib/beamer-contrib/themes/moloch/beamerinnerthememoloch.dtx b/macros/latex/contrib/beamer-contrib/themes/moloch/beamerinnerthememoloch.dtx new file mode 100644 index 0000000000..8ab2b31185 --- /dev/null +++ b/macros/latex/contrib/beamer-contrib/themes/moloch/beamerinnerthememoloch.dtx @@ -0,0 +1,513 @@ +% \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{beamerinnerthememoloch}[2024-01-15 v0.1.0 Moloch inner theme] % x-release-please-version +%</package> +% \fi +% \CheckSum{0} +% \StopEventually{} +% \iffalse +%<*package> +% ------------------------------------------------------------------------- \fi +% +% \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: +% +% \begin{itemize} +% \item title, part, and section pages; +% \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} +% +% +% +% \subsubsection{Package dependencies} +% +% \begin{macrocode} +\RequirePackage{keyval} +\RequirePackage{calc} +\RequirePackage{pgfopts} +\RequirePackage{tikz} +% \end{macrocode} +% +% +% +% \subsubsection{Options} +% +% \begin{macro}{sectionpage} +% Optionally add a slide marking the beginning of each section. +% \begin{macrocode} +\pgfkeys{ + /moloch/inner/sectionpage/.cd, + .is choice, + none/.code=\moloch@disablesectionpage, + simple/.code={% + \moloch@enablesectionpage% + \setbeamertemplate{section page}[simple]% + }, + progressbar/.code={% + \moloch@enablesectionpage% + \setbeamertemplate{section page}[progressbar]% + }, +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{subsectionpage} +% Optionally add a slide marking the beginning of each subsection. +% \begin{macrocode} +\pgfkeys{ + /moloch/inner/subsectionpage/.cd, + .is choice, + none/.code=\moloch@disablesubsectionpage, + simple/.code={% + \moloch@enablesubsectionpage% + \setbeamertemplate{section page}[simple]% + }, + progressbar/.code={% + \moloch@enablesubsectionpage% + \setbeamertemplate{section page}[progressbar]% + }, +} +% \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 + } +} +% \end{macrocode} +% \end{macro} +% +% +% +% \subsubsection{Title page} +% +% \begin{macro}{title page} +% Template for the title page. Each element is only typset if it is defined +% by the user. If |\subtitle| is empty, for example, it won't leave a blank +% space on the title slide. +% \begin{macrocode} +\setbeamertemplate{title page}{ + \begin{minipage}[b][\paperheight]{\textwidth} + \ifx\inserttitlegraphic\@empty\else\usebeamertemplate*{title graphic}\fi + \vfill% + \ifx\inserttitle\@empty\else\usebeamertemplate*{title}\fi + \ifx\insertsubtitle\@empty\else\usebeamertemplate*{subtitle}\fi + \usebeamertemplate*{title separator} + % \end{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 Enrico Gregorio in an + % answer to \href{https://tex.stackexchange.com/questions/241306/}{this + % Stack Exchange question}. + % + % \begin{macrocode} + \ifx\beamer@shortauthor\@empty\else\usebeamertemplate*{author}\fi + \ifx\insertinstitute\@empty\else\usebeamertemplate*{institute}\fi + \ifx\insertdate\@empty\else\usebeamertemplate*{date}\fi + \vfill + \null + \end{minipage} +} +% \end{macrocode} +% \end{macro}% +% +% 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. +% +% \begin{macro}{\maketitle} +% \begin{macro}{\titlepage} +% +% Inserts the title frame, or causes the current frame to use the +% |title page| template. +% +% \begin{macrocode} +\def\maketitle{% + \ifbeamer@inframe + \titlepage + \else + \frame[plain,noframenumbering]{\titlepage} + \fi +} +\def\titlepage{% + \usebeamertemplate{title page} +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{title graphic} +% Set the title graphic in a zero-height box, so it doesn't change the +% position of other elements. +% \begin{macrocode} +\setbeamertemplate{title graphic}{ + \vbox to 0pt { + \vspace*{2em} + \inserttitlegraphic% + }% + \nointerlineskip% +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{title} +% Set the title on the title page. +% \begin{macrocode} +\setbeamertemplate{title}{ + \raggedright% + \linespread{1.0}% + \inserttitle% + \par% + \vspace*{0.5em} +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{subtitle} +% Set the subtitle on the title page. +% \begin{macrocode} +\setbeamertemplate{subtitle}{ + \raggedright% + \insertsubtitle% + \par% + \vspace*{0.5em} +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{title separator} +% Template to set the title graphic in a zero-height box. (It won't +% change the position of other elements.) +% \begin{macrocode} +\newlength{\moloch@titleseparator@linewidth} +\setlength{\moloch@titleseparator@linewidth}{0.4pt} +\setbeamertemplate{title separator}{ + \tikzexternaldisable% + \begin{tikzpicture} + \fill[fg] (0,0) rectangle (\textwidth, \moloch@titleseparator@linewidth); + \end{tikzpicture}% + \tikzexternalenable% + \par% +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{author} +% Set the author on the title page. +% \begin{macrocode} +\setbeamertemplate{author}{ + \vspace*{2em} + \insertauthor% + \par% +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{institute} +% Set the institute on the title page. +% \begin{macrocode} +\setbeamertemplate{institute}{ + \vspace*{0.5em} + \insertinstitute% + \par% +} +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{date} +% Set the date on the title page. +% \begin{macrocode} +\setbeamertemplate{date}{ + \vspace*{1.5em} + \insertdate% + \par% +} +% \end{macrocode} +% \end{macro} +% +% +% \subsubsection{Section page} +% +% \begin{macro}{section page} +% +% Template for the section title slide at the beginning of each section. +% +% \begin{macrocode} +\defbeamertemplate{section page}{simple}{ + \begin{center} + \usebeamercolor[fg]{section title} + \usebeamerfont{section title} + \insertsectionhead\par + \ifx\insertsubsectionhead\@empty\else + \usebeamercolor[fg]{subsection title} + \usebeamerfont{subsection title} + \insertsubsectionhead + \fi + \end{center} +} +\defbeamertemplate{section page}{progressbar}{ + \centering + \begin{minipage}{0.7875\linewidth} + \raggedright + \usebeamercolor[fg]{section title} + \usebeamerfont{section title} + \insertsectionhead\\[-1ex] + \usebeamertemplate*{progress bar in section page} + \par + \ifx\insertsubsectionhead\@empty\else% + \usebeamercolor[fg]{subsection title}% + \usebeamerfont{subsection title}% + \insertsubsectionhead + \fi + \end{minipage} + \par + \vspace{\baselineskip} +} +\newcommand{\moloch@disablesectionpage}{ + \AtBeginSection{ + % intentionally empty + } +} +\newcommand{\moloch@enablesectionpage}{ + \AtBeginSection{ + \ifbeamer@inframe + \sectionpage + \else + \frame[plain,c,noframenumbering]{\sectionpage} + \fi + } +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{subsection page} +% +% Template for the subsection title slide that can optionally be added to +% at the beginning of each subsection. +% +% \begin{macrocode} +\setbeamertemplate{subsection page}{% + \usebeamertemplate*{section page} +} +\newcommand{\moloch@disablesubsectionpage}{ + \AtBeginSubsection{ + % intentionally empty + } +} +\newcommand{\moloch@enablesubsectionpage}{ + \AtBeginSubsection{ + \ifbeamer@inframe + \subsectionpage + \else + \frame[plain,c,noframenumbering]{\subsectionpage} + \fi + } +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{progress bar in section page} +% +% Template for the progress bar displayed by default on the section page. +% This code is duplicated in large part in the outer theme's template +% |progress bar in head/foot|. +% +% \begin{macrocode} +\newlength{\moloch@progressonsectionpage} +\newlength{\moloch@progressonsectionpage@linewidth} +\setlength{\moloch@progressonsectionpage@linewidth}{0.4pt} +\setbeamertemplate{progress bar in section page}{ + \pgfmathsetlength{\moloch@progressonsectionpage}{ + \textwidth * min(1,\insertframenumber/\inserttotalframenumber) + } + \tikzexternaldisable + \begin{tikzpicture} + \fill[bg] + (0,0) + rectangle + (\textwidth, \moloch@progressonsectionpage@linewidth); + \fill[fg] + (0,0) + rectangle + (\moloch@progressonsectionpage, \moloch@progressonsectionpage@linewidth); + \end{tikzpicture} + \tikzexternalenable +} +% \end{macrocode} +% +% The above code 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 +% |\moloch@progressonsectionpage| would exceed \TeX's maximum length +% (16383.99999pt, roughly 5.75 metres or 18.9 feet). +% To avoid this, we increase the default value for |\inserttotalframenumber|; +% presentations with over 4000 slides will still break on first compile, but +% users in that situation likely have deeper problems to solve. +% +% \begin{macrocode} +\def\inserttotalframenumber{100} +% \end{macrocode} +% \end{macro} +% +% \subsubsection{Lists and floats} +% +% \begin{macrocode} +\setbeamertemplate{itemize item}{\(\bullet\)} +\setbeamertemplate{itemize subitem}{\(\circ\)} +\setbeamertemplate{itemize subsubitem}{\textbullet} +\setbeamertemplate{caption label separator}{: } +\setbeamertemplate{caption}[numbered] +% \end{macrocode} +% +% +% +% \subsubsection{Footnotes} +% \begin{macrocode} +\setbeamertemplate{footnote}{% + \parindent 0em\noindent% + \raggedright + \usebeamercolor{footnote}% + \hbox to 0.8em{\hfil\insertfootnotemark}% + \insertfootnotetext\par% +} +% \end{macrocode} +% +% +% +% \subsubsection{Text and spacing settings} +% +% \begin{macrocode} +\newlength{\moloch@parskip} +\setlength{\moloch@parskip}{0.5em} +\setlength{\parskip}{\moloch@parskip} +\linespread{1.15} +% \end{macrocode} +% +% 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}. +% +% \begin{macrocode} +\define@key{beamerframe}{c}[true]{% centered + \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} +% +% +% +% \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: +% +% |\begin{frame}[standout] ... \end{frame}|. +% +% \begin{macro}{standout} +% +% Optional arguments to Beamer's frames are implemented using +% |\define@key| from the |keyval| package, which will execute code when the +% defined option is called. For the |standout| option, we begin a group, +% change the colors and set frame options. +% +% \begin{macrocode} +\providebool{moloch@standout} +\define@key{beamerframe}{standout}[true]{% + \booltrue{moloch@standout} + \begingroup + \setkeys{beamerframe}{c} + \setkeys{beamerframe}{noframenumbering} + \ifbeamercolorempty[bg]{palette primary}{ + \setbeamercolor{background canvas}{ + use=palette primary, + bg=-palette primary.fg + } + }{ + \setbeamercolor{background canvas}{ + use=palette primary, + bg=palette primary.bg + } + } + \setbeamercolor{local structure}{ + fg=palette primary.fg + } + \usebeamercolor[fg]{palette primary} +} +% \end{macrocode} +% +% Then we just have to close the group after the standout slide is finished +% in order to restore the colours and fonts for the rest of the +% presentation. Unfortunately, we cannot use \AfterEndEnvironment{frame} for +% this (see \url{http://tex.stackexchange.com/questions/226319/}). +% Instead, we prepend the |\endgroup| to |\beamer@reseteecodes|, which is run +% exactly once at the end of each slide. +% +% \begin{macrocode} +\pretocmd{\beamer@reseteecodes}{% + \ifbool{moloch@standout}{ + \endgroup + \boolfalse{moloch@standout} + }{} +}{}{} +% \end{macrocode} +% +% We set the fonts and the \centering alignment on the inner content, +% in such a way that the speaker's note layout isn't affected by the custom +% formatting. +% +% \begin{macrocode} +\AtBeginEnvironment{beamer@frameslide}{ + \ifbool{moloch@standout}{ + \centering + \usebeamerfont{standout} + }{} +} +% \end{macrocode} +% \end{macro} +% +% \subsubsection{Process package options} +% +% \begin{macrocode} +\moloch@inner@setdefaults +\ProcessPgfPackageOptions{/moloch/inner} +% \end{macrocode} +% +% \iffalse +%</package> +% \fi +% \Finale +\endinput diff --git a/macros/latex/contrib/beamer-contrib/themes/moloch/beamerouterthememoloch.dtx b/macros/latex/contrib/beamer-contrib/themes/moloch/beamerouterthememoloch.dtx new file mode 100644 index 0000000000..a684e47743 --- /dev/null +++ b/macros/latex/contrib/beamer-contrib/themes/moloch/beamerouterthememoloch.dtx @@ -0,0 +1,198 @@ +% \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{beamerouterthememoloch}[2024-01-15 v0.1.0 Moloch outer theme] % x-release-please-version +%</package> +% \fi +% \CheckSum{0} +% \StopEventually{} +% \iffalse +%<*package> +% ------------------------------------------------------------------------- \fi +% +% \subsection{\themename outer theme} +% +% A |beamer| outer theme dictates the style of the frame elements traditionally +% set outside the body of each slide: the head, footline, and frame title. +% +% +% +% \subsubsection{Package dependencies} +% +% \begin{macrocode} +\RequirePackage{calc} +\RequirePackage{pgfopts} +% \end{macrocode} +% +% +% +% \subsubsection{Options} +% +% \begin{macro}{progressbar} +% Adds a progress bar to the top, bottom, or frametitle of each slide. +% \begin{macrocode} +\pgfkeys{ + /moloch/outer/progressbar/.cd, + .is choice, + none/.code={% + \setbeamertemplate{headline}[plain] + \setbeamertemplate{frametitle}[plain] + \setbeamertemplate{footline}[plain] + }, + head/.code={\pgfkeys{/moloch/outer/progressbar=none} + \addtobeamertemplate{headline}{}{% + \usebeamertemplate*{progress bar in head/foot} + } + }, + frametitle/.code={\pgfkeys{/moloch/outer/progressbar=none} + \addtobeamertemplate{frametitle}{}{% + \usebeamertemplate*{progress bar in head/foot} + } + }, + foot/.code={\pgfkeys{/moloch/outer/progressbar=none} + \addtobeamertemplate{footline}{}{% + \usebeamertemplate*{progress bar in head/foot}% + } + }, +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\moloch@outer@setdefaults} +% Sets default values for outer theme options. +% \begin{macrocode} +\newcommand{\moloch@outer@setdefaults}{ + \pgfkeys{/moloch/outer/.cd, + progressbar=none, + } +} +% \end{macrocode}% +% \end{macro} +% +% +% +% \subsubsection{Head and footline} +% +% All good |beamer| presentations should already remove the navigation symbols, +% but \themename removes them automatically (just in case). +% +% \begin{macrocode} +\setbeamertemplate{navigation symbols}{} +% \end{macrocode} +% +% +% \begin{macro}{headline} +% \begin{macro}{footline} +% Templates for the head- and footline at the top and bottom of each frame. +% \begin{macrocode} +\defbeamertemplate{headline}{plain}{} +\defbeamertemplate{footline}{plain}{% + \begin{beamercolorbox}[ + leftskip=4pt,% + rightskip=5pt,% + wd=\textwidth,% + ]{footline}% + \usebeamercolor[fg]{page number in head/foot}% + \usebeamerfont{page number in head/foot}% + \usebeamertemplate*{frame footer}% + \hfill% + \usebeamertemplate*{page number in head/foot}\vskip4pt% + \end{beamercolorbox}% +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% +% +% \subsubsection{Frametitle} +% +% \begin{macro}{frametitle} +% 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{X}}% +} +\newcommand{\moloch@frametitlestrut@end}{% + \rule[-\moloch@frametitle@padding]{0pt}{\moloch@frametitle@padding} +} +\defbeamertemplate{frametitle}{plain}{% + \nointerlineskip% + \begin{beamercolorbox}[% + wd=\paperwidth,% + sep=0pt,% + leftskip=\moloch@frametitle@padding,% + rightskip=\the\glueexpr \moloch@frametitle@padding plus 1fill\relax,% + ]{frametitle}% + \moloch@frametitlestrut@start% + \insertframetitle% + \nolinebreak% + \moloch@frametitlestrut@end% + \end{beamercolorbox}% +} +\setbeamertemplate{frametitle continuation}{% + \usebeamerfont{frametitle} + \romannumeral \insertcontinuationcount +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{progress bar in head/foot} +% Template for the progress bar optionally displayed below the frame title +% on each page. Much of this code is duplicated in the inner theme's +% template |progress bar in section page|. +% \begin{macrocode} +\newlength{\moloch@progressinheadfoot} +\newlength{\moloch@progressinheadfoot@linewidth} +\setlength{\moloch@progressinheadfoot@linewidth}{0.4pt} +\setbeamertemplate{progress bar in head/foot}{ + \nointerlineskip + \pgfmathsetlength{\moloch@progressinheadfoot}{% + \paperwidth * min(1,\insertframenumber/\inserttotalframenumber)% + } + \begin{beamercolorbox}[wd=\paperwidth]{progress bar in head/foot} + \tikzexternaldisable + \begin{tikzpicture} + \fill[bg] + (0,0) + rectangle + (\paperwidth, \moloch@progressinheadfoot@linewidth); + \fill[fg] + (0,0) + rectangle + (\moloch@progressinheadfoot, \moloch@progressinheadfoot@linewidth); + \end{tikzpicture} + \tikzexternalenable + \end{beamercolorbox} +} +% \end{macrocode} +% \end{macro} +% +% \subsubsection{Process package options} +% +% \begin{macrocode} +\moloch@outer@setdefaults +\ProcessPgfPackageOptions{/moloch/outer} +% \end{macrocode} +% +% \iffalse +%</package> +% \fi +% \Finale +\endinput diff --git a/macros/latex/contrib/beamer-contrib/themes/moloch/beamerthememoloch.dtx b/macros/latex/contrib/beamer-contrib/themes/moloch/beamerthememoloch.dtx new file mode 100644 index 0000000000..345ed8d133 --- /dev/null +++ b/macros/latex/contrib/beamer-contrib/themes/moloch/beamerthememoloch.dtx @@ -0,0 +1,108 @@ +% \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/). +% ------------------------------------------------------------------------- \fi +% \iffalse +%<*package> +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{beamerthememoloch}[2024-01-15 v0.1.0 Moloch Beamer theme] % x-release-please-version +%</package> +% \fi +% \CheckSum{0} +% \StopEventually{} +% \iffalse +%<*package> +% ------------------------------------------------------------------------- \fi +% +% \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 +% provides some custom commands and environments for the user. +% +% +% +% \subsubsection{Package dependencies} +% +% \begin{macrocode} +\RequirePackage{pgfopts} +% \end{macrocode} +% +% +% +% \subsubsection{Options} +% +% Most options are passed off to the component sub-packages. +% +% \begin{macrocode} +\pgfkeys{/moloch/.cd, + .search also={ + /moloch/inner, + /moloch/outer, + /moloch/color, + /moloch/font, + } +} +% \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. +% +% \begin{macrocode} +\providecommand{\tikzexternalenable}{} +\providecommand{\tikzexternaldisable}{} +% \end{macrocode} +% +% \subsubsection{Component sub-packages} +% +% Having processed the options, we can now load the component sub-packages of +% the theme. +% +% \begin{macrocode} +\useinnertheme{moloch} +\useoutertheme{moloch} +\usecolortheme{moloch} +\usefonttheme{moloch} +% \end{macrocode} +% +% \subsubsection{Custom commands} +% +% The parent theme defines custom commands as their proper usage may depend +% on multiple sub-packages. +% +% \begin{macro}{\molochset} +% Allows the user to change options midway through a presentation. +% \begin{macrocode} +\newcommand{\molochset}[1]{\pgfkeys{/moloch/.cd,#1}} +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{\mreducelistspacing} +% \begin{macrocode} +\newcommand{\mreducelistspacing}{\vspace{-\topsep}} +% \end{macrocode} +% \end{macro} +% +% +% +% \subsubsection{Process package options} +% +% \begin{macrocode} +\ProcessPgfOptions{/moloch} +% \end{macrocode} +% +% \iffalse +%</package> +% \fi +% \Finale +\endinput diff --git a/macros/latex/contrib/beamer-contrib/themes/moloch/beamerthememoloch.ins b/macros/latex/contrib/beamer-contrib/themes/moloch/beamerthememoloch.ins new file mode 100644 index 0000000000..c7d3c3efc5 --- /dev/null +++ b/macros/latex/contrib/beamer-contrib/themes/moloch/beamerthememoloch.ins @@ -0,0 +1,29 @@ +%% --------------------------------------------------------------------------- +%% 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 +%% +%% Moloch is a fork of Metropolis, which aims to simplify the package and +%% fix some long-standing issues. +%% +%% --------------------------------------------------------------------------- + +\input docstrip.tex +\keepsilent +\askforoverwritefalse + +\generate{\file{beamerthememoloch.sty}{\from{beamerthememoloch.dtx}{package}}} +\generate{\file{beamerinnerthememoloch.sty}{\from{beamerinnerthememoloch.dtx}{package}}} +\generate{\file{beamerouterthememoloch.sty}{\from{beamerouterthememoloch.dtx}{package}}} +\generate{\file{beamerfontthememoloch.sty}{\from{beamerfontthememoloch.dtx}{package}}} +\generate{\file{beamercolorthememoloch.sty}{\from{beamercolorthememoloch.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 differnew file mode 100644 index 0000000000..0a6b90a384 --- /dev/null +++ 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 new file mode 100644 index 0000000000..94fd937a77 --- /dev/null +++ b/macros/latex/contrib/beamer-contrib/themes/moloch/moloch.tex @@ -0,0 +1,425 @@ +%% --------------------------------------------------------------------------- +%% 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 +%% --------------------------------------------------------------------------- + +\documentclass{ltxdoc} + +\usepackage{parskip} +\usepackage{setspace} +\usepackage{xspace} +\usepackage{xurl} +\onehalfspacing + +\usepackage{enumitem} +\setlist[itemize]{noitemsep} +\setlist[enumerate]{noitemsep} + +\usepackage{xcolor} +\definecolor{mDarkBrown}{HTML}{604c38} +\definecolor{mDarkTeal}{HTML}{23373b} +\definecolor{mLightBrown}{HTML}{EB811B} +\definecolor{mLightGreen}{HTML}{14B03D} +\definecolor{mBackground}{HTML}{FFFFFF} + +\usepackage{listings} +\lstset{% + language=[LaTeX]{TeX}, + basicstyle=\ttfamily, + keywordstyle=\color{mLightBrown}\bfseries, + commentstyle=\color{mLightGreen}, + stringstyle=\color{mLightGreen}, + backgroundcolor=\color{mBackground}, + 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,% + plain,setbeamercolor,molochset,setsansfont,setmonofont}, +} +\lstMakeShortInline| +\usepackage{metalogo} + +\usepackage[colorlinks=true, + linkcolor=mLightBrown, + menucolor=mLightBrown, + pagecolor=mLightBrown, + urlcolor=mLightBrown]{hyperref} + +\newcommand{\DescribeOption}[4]{ + \DescribeMacro{#1} + \begin{minipage}[t]{\textwidth} + \textit{\textbf{\textcolor{mLightGreen}{#2}}}\dotfill\,#3\par + \begingroup + \vspace{0.5em}#4\par + \endgroup + \end{minipage} +} + +\newcommand{\themename}{\textsf{moloch}\xspace} + +\def\molochversion{0.1.0} % x-release-please-version + +\usepackage{readprov} +% \ReadPackageInfos{beamerthememoloch} + +\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 + + +\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 +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; +the only visual flourish it offers is an (optional) progress bar added to each +slide or to the section slides. + +\themename's codebase is maintained at \url{https://github.com/jolars/moloch}. +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. +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. + +\section{Getting Started} + +\subsection{Installing from CTAN} + +For most users, we recommend installing \themename from +\href{https://www.ctan.org}{CTAN}. If you keep your \TeX\ distribution +up-to-date, chances are good that \themename is already installed. If it is +not, you need to update your packages. If your distribution is \TeX\ Live +(or Mac\TeX\ on OS X), the following command updates all packages. + +\begin{lstlisting} +tlmgr update --all +\end{lstlisting} + +If this results in an error, you may need to run it with administrative privileges: + +\begin{lstlisting} +sudo tlmgr update --all +\end{lstlisting} + +Mac\TeX\ on OS X also provides a graphical interface for |tlmgr| called +\TeX\ Live Utility. + +For any other distribution please refer to its documentation on how to update +your packages. + +\subsection{Installing from Source} + +If you want to use the development version of \themename, you can +install it manually. You only need a recent \LaTeX\ distribution +which includes \textbf{l3build}. Then simply follow the steps below. +\begin{description} + \item[Download the source] with a |git clone| of + \url{https://github.com/jolars/moloch} + + \item[Install the package] by running |l3build install| inside the downloaded + directory. +\end{description} + +\subsection{A Minimal Example} + +The following code shows a minimal example of a Beamer presentation using +\themename. + +\begin{lstlisting} +\documentclass{beamer} +\usetheme{moloch} +\title{A minimal example} +\date{\today} +\author{Johan Larsson} +\institute{Centre for Modern Beamer Themes} +\begin{document} + \maketitle + \section{First Section} + \begin{frame}{First Frame} + Hello, world! + \end{frame} +\end{document} +\end{lstlisting} + + +\subsection{Dependencies} + +\themename depends on the |beamer| class and the following standard packages: +\begin{multicols}{3} + \begin{itemize} + \item |tikz| + \item |pgfopts| + \item |calc| + \end{itemize} +\end{multicols} + +\subsection{Pandoc} + +To use this theme with \href{http://johnmacfarlane.net/pandoc/}{Pandoc}-based +presentations, you can run the following command + +\begin{lstlisting} +$ pandoc -t beamer -V theme:moloch -o output.pdf input.md +\end{lstlisting} + + +\section{Customization} + +\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 +of option-value pairs when loading \themename in the preamble: +\begin{lstlisting} +\usetheme[option1=value1, option2=value2, ...]{moloch} +\end{lstlisting} + +Options can be changed at any time---even mid-presentation---with the +|\molochset| macro. +\begin{lstlisting} +\molochset{option1=newvalue1, option2=newvalue2, ...} +\end{lstlisting} + +The list of options is structured as shown in the following example. + +\DescribeOption{option key}{list of possible values}{default}{ + A short description of the option. +} + +\subsubsection{Inner theme} + +\DescribeOption{sectionpage}{none, simple, progressbar}{progressbar}{ + Adds a slide at the start of each section (|simple|) with an optional thin + progress bar below the section title (|progressbar|). The |none| option + disables the section page. +} + +\DescribeOption{subsectionpage}{none, simple, progressbar}{none}{ + Optionally adds a slide at the start of each subsection. If enabled with + the |simple| or |progressbar| options, the style of the |section page| will + be updated to match the style of the |subsection page|. Note that section + slides and subsection slides can appear consecutively if both are enabled; + you may want to use this option together with |sectionpage=none| depending + on the section structure of your presentation. +} + + +\subsubsection{Outer theme} + +\DescribeOption{progressbar}{none, head, frametitle, foot}{none}{ + Optionally adds a progress bar to the top of each frame (|head|), + the bottom of each frame (|foot|), or directly below each frame title + (|frametitle|). +} + +\subsubsection{Color theme} + +\DescribeOption{background}{dark, light}{light}{ + Provides the option to have a dark background and light foreground instead + of the reverse. +} + +\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} + +For low-light situations \themename it might be helpful to use the +|moloch-highcontrast| color theme. It is enabled like any other color theme: + +\begin{lstlisting} +\usecolortheme{moloch-highcontrast} +\end{lstlisting} + + +\subsection{Commands} + +\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 +single sentence or image. To use it, add the key |standout| to the frame: + +\begin{lstlisting} +\begin{frame}[standout] + Thank you! +\end{frame} +\end{lstlisting} + +\section{Known Issues} + +\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{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} +\usecolortheme{seahorse} +\end{lstlisting} + +The correct colors are chosen if the \themename outer, inner, and font themes +are loaded seperately: + +\begin{lstlisting} +\useoutertheme{moloch} +\useinnertheme{moloch} +\usefonttheme{moloch} +\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 \verb+[show notes on second screen]+ option built in to Beamer and +compile with \XeLaTeX, text on slides following the first section slide may +be rendered in white instead of the regular colour. 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}|. + + +\section{License} + +\themename is licensed under a +\href{http://creativecommons.org/licenses/by-sa/4.0/}{Creative Commons + Attribution-ShareAlike 4.0 International License}. +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} +\DocInput{beamerinnerthememoloch.dtx} +\DocInput{beamerouterthememoloch.dtx} +\DocInput{beamerfontthememoloch.dtx} +\DocInput{beamercolorthememoloch.dtx} + +\end{document} |