summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2024-09-22 03:02:52 +0000
committerNorbert Preining <norbert@preining.info>2024-09-22 03:02:52 +0000
commitce03ab0e429459e18e9549c8421bceba428523f7 (patch)
tree91e65766201cfebc25a9ca15a8fd60958dc2e3bd
parent0036267b48bf0b5315c4fdf48a18c59c291ee796 (diff)
CTAN sync 202409220302
-rw-r--r--FILES.byname140
-rw-r--r--FILES.byname.gzbin2675351 -> 2675701 bytes
-rw-r--r--FILES.last07days285
-rw-r--r--biblio/ctan-bibdata/ctan.bib21
-rw-r--r--fonts/libertinus-fonts/CONTRIBUTING.md2
-rw-r--r--fonts/libertinus-fonts/FONTLOG.txt19
-rw-r--r--fonts/libertinus-fonts/README.md2
-rw-r--r--fonts/libertinus-fonts/documentation/Sample.pdfbin202681 -> 133717 bytes
-rw-r--r--fonts/libertinus-fonts/documentation/preview.pdfbin72604 -> 0 bytes
-rw-r--r--fonts/libertinus-fonts/otf/LibertinusKeyboard-Regular.otfbin53984 -> 56716 bytes
-rw-r--r--fonts/libertinus-fonts/otf/LibertinusMath-Regular.otfbin522244 -> 588848 bytes
-rw-r--r--fonts/libertinus-fonts/otf/LibertinusMono-Regular.otfbin59028 -> 59264 bytes
-rw-r--r--fonts/libertinus-fonts/otf/LibertinusSans-Bold.otfbin275464 -> 290244 bytes
-rw-r--r--fonts/libertinus-fonts/otf/LibertinusSans-Italic.otfbin289112 -> 298720 bytes
-rw-r--r--fonts/libertinus-fonts/otf/LibertinusSans-Regular.otfbin256824 -> 267824 bytes
-rw-r--r--fonts/libertinus-fonts/otf/LibertinusSerif-Bold.otfbin279844 -> 293908 bytes
-rw-r--r--fonts/libertinus-fonts/otf/LibertinusSerif-BoldItalic.otfbin238532 -> 259176 bytes
-rw-r--r--fonts/libertinus-fonts/otf/LibertinusSerif-Italic.otfbin318424 -> 332052 bytes
-rw-r--r--fonts/libertinus-fonts/otf/LibertinusSerif-Regular.otfbin298384 -> 337132 bytes
-rw-r--r--fonts/libertinus-fonts/otf/LibertinusSerif-Semibold.otfbin276512 -> 291640 bytes
-rw-r--r--fonts/libertinus-fonts/otf/LibertinusSerif-SemiboldItalic.otfbin328672 -> 343148 bytes
-rw-r--r--fonts/libertinus-fonts/otf/LibertinusSerifDisplay-Regular.otfbin254808 -> 263688 bytes
-rw-r--r--fonts/libertinus-fonts/otf/LibertinusSerifInitials-Regular.otfbin84356 -> 125540 bytes
-rw-r--r--fonts/libertinus-fonts/preview.svg324
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/MANIFEST.md301
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/README.md127
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/ctan.ann11
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/ctan.note3
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-blueprint.pdfbin0 -> 1355 bytes
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-dev-impl.pdfbin0 -> 656010 bytes
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-doc.pdfbin0 -> 463334 bytes
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-doc.tex1094
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-example169transp.pdfbin0 -> 280401 bytes
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-example169transp.tex65
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-example43dark.pdfbin0 -> 282846 bytes
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-example43dark.tex66
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-exampleSimple.pdfbin0 -> 30349 bytes
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-exampleSimple.tex8
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-layout.pdfbin0 -> 7446 bytes
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-logo.pdfbin0 -> 1455 bytes
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-safetybox.pdf70
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-user-cmds.pdfbin0 -> 229912 bytes
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham.dtx8842
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham.ins75
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham.pdfbin0 -> 1055055 bytes
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/section-Beamer.tex379
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/section-Conclusion.tex37
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/section-Gotham.tex398
-rw-r--r--macros/latex/contrib/easybook/README.md2
-rw-r--r--macros/latex/contrib/easybook/easybook.dtx16
-rw-r--r--macros/latex/contrib/easybook/easybook.pdfbin639213 -> 639129 bytes
-rw-r--r--macros/latex/contrib/easybook/easybook.tex4
-rw-r--r--systems/texlive/tlnet/tlpkg/TeXLive/TLWinGoo.pm7
-rw-r--r--systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl15
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb311
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb.md52
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha5122
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc16
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb.xzbin2596444 -> 2596812 bytes
-rw-r--r--timestamp2
-rw-r--r--usergrps/usergrps/bg.html4
-rw-r--r--usergrps/usergrps/br.html4
-rw-r--r--usergrps/usergrps/cn.html4
-rw-r--r--usergrps/usergrps/ct.html4
-rw-r--r--usergrps/usergrps/cz.html4
-rw-r--r--usergrps/usergrps/de.html4
-rw-r--r--usergrps/usergrps/dk.html4
-rw-r--r--usergrps/usergrps/ee.html4
-rw-r--r--usergrps/usergrps/es.html4
-rw-r--r--usergrps/usergrps/fr.html4
-rw-r--r--usergrps/usergrps/gr.html4
-rw-r--r--usergrps/usergrps/hu.html4
-rw-r--r--usergrps/usergrps/ie.html4
-rw-r--r--usergrps/usergrps/in.html303
-rw-r--r--usergrps/usergrps/index.html3
-rw-r--r--usergrps/usergrps/is.html4
-rw-r--r--usergrps/usergrps/it.html4
-rw-r--r--usergrps/usergrps/kh.html4
-rw-r--r--usergrps/usergrps/kr.html4
-rw-r--r--usergrps/usergrps/labels.pdfbin10642 -> 10642 bytes
-rw-r--r--usergrps/usergrps/lt.html4
-rw-r--r--usergrps/usergrps/lugs.html69
-rw-r--r--usergrps/usergrps/lugs.pdfbin47422 -> 47503 bytes
-rw-r--r--usergrps/usergrps/lugs.tex8
-rw-r--r--usergrps/usergrps/mx.html4
-rw-r--r--usergrps/usergrps/nl.html4
-rw-r--r--usergrps/usergrps/no.html4
-rw-r--r--usergrps/usergrps/pl.html4
-rw-r--r--usergrps/usergrps/pt.html4
-rw-r--r--usergrps/usergrps/tw.html4
-rw-r--r--usergrps/usergrps/us.html6
-rw-r--r--usergrps/usergrps/uy.html4
-rw-r--r--usergrps/usergrps/vn.html4
-rw-r--r--usergrps/usergrps/za.html4
94 files changed, 12603 insertions, 540 deletions
diff --git a/FILES.byname b/FILES.byname
index 07434653b3..ce7410079d 100644
--- a/FILES.byname
+++ b/FILES.byname
@@ -2147,12 +2147,12 @@
2024/09/14 | 1837 | biblio/citation-style-language/README.md
2024/09/14 | 12878 | biblio/citation-style-language/vancouver.csl
2024/09/14 | 4575789 | biblio/citation-style-language.zip
-2024/09/20 | 1678 | biblio/ctan-bibdata/biblatex-ctan/ctan.bbx
+2024/09/21 | 1678 | biblio/ctan-bibdata/biblatex-ctan/ctan.bbx
2022/10/08 | 127 | biblio/ctan-bibdata/biblatex-ctan/ctan.cbx
-2024/09/20 | 2889297 | biblio/ctan-bibdata/ctan.bib
-2024/09/20 | 3708800 | biblio/ctan-bibdata/ctan.pdf
+2024/09/21 | 2889298 | biblio/ctan-bibdata/ctan.bib
+2024/09/21 | 3708800 | biblio/ctan-bibdata/ctan.pdf
2023/01/16 | 1489 | biblio/ctan-bibdata/README
-2024/09/20 | 4125985 | biblio/ctan-bibdata.zip
+2024/09/21 | 4125996 | biblio/ctan-bibdata.zip
2023/02/23 | 3126 | biblio/pbibtex/pbibtex-base/cpp.awk
2023/02/23 | 1009 | biblio/pbibtex/pbibtex-base/generate.sh
2023/02/23 | 22362 | biblio/pbibtex/pbibtex-base/jabbrv.bst
@@ -5514,7 +5514,7 @@
1990/10/02 | 5440 | dviware/vutex/vaxvms.hlp
1990/10/02 | 812 | dviware/vutex/vaxvms.ins
1990/10/02 | 127576 | dviware/vutex/vutex.web
-2024/09/20 | 71886 | FILES.last07days
+2024/09/21 | 69074 | FILES.last07days
2021/07/24 | 1139410 | fonts/aboensis/Aboensis.glyphs
2021/07/24 | 18907382 | fonts/aboensis/aboensis.pdf
2021/07/24 | 137860 | fonts/aboensis/Aboensis-Regular.otf
@@ -71636,35 +71636,34 @@
2020/05/06 | 82 | fonts/libertinus/Changes
2020/05/06 | 15920 | fonts/libertinus/doc/libertinus-doc.pdf
2019/11/25 | 851 | fonts/libertinus/doc/libertinus-doc.tex
-2021/02/26 | 908 | fonts/libertinus-fonts/AUTHORS.txt
-2021/02/26 | 1402 | fonts/libertinus-fonts/CONTRIBUTING.md
-2021/02/26 | 1054 | fonts/libertinus-fonts/CONTRIBUTORS.txt
-2021/02/26 | 17103 | fonts/libertinus-fonts/documentation/Design-Guidelines.md
-2021/02/26 | 6472 | fonts/libertinus-fonts/documentation/Features.md
-2021/02/26 | 13026 | fonts/libertinus-fonts/documentation/libertinus.css
-2021/02/26 | 160836 | fonts/libertinus-fonts/documentation/Math-Sample.pdf
-2021/02/26 | 91660 | fonts/libertinus-fonts/documentation/Opentype-Features.pdf
-2021/02/26 | 72604 | fonts/libertinus-fonts/documentation/preview.pdf
-2021/02/26 | 202681 | fonts/libertinus-fonts/documentation/Sample.pdf
-2021/02/26 | 17017 | fonts/libertinus-fonts/FONTLOG.txt
-2021/02/26 | 4426 | fonts/libertinus-fonts/OFL.txt
-2021/02/26 | 53984 | fonts/libertinus-fonts/otf/LibertinusKeyboard-Regular.otf
-2021/02/26 | 522244 | fonts/libertinus-fonts/otf/LibertinusMath-Regular.otf
-2021/02/26 | 59028 | fonts/libertinus-fonts/otf/LibertinusMono-Regular.otf
-2021/02/26 | 275464 | fonts/libertinus-fonts/otf/LibertinusSans-Bold.otf
-2021/02/26 | 289112 | fonts/libertinus-fonts/otf/LibertinusSans-Italic.otf
-2021/02/26 | 256824 | fonts/libertinus-fonts/otf/LibertinusSans-Regular.otf
-2021/02/26 | 238532 | fonts/libertinus-fonts/otf/LibertinusSerif-BoldItalic.otf
-2021/02/26 | 279844 | fonts/libertinus-fonts/otf/LibertinusSerif-Bold.otf
-2021/02/26 | 254808 | fonts/libertinus-fonts/otf/LibertinusSerifDisplay-Regular.otf
-2021/02/26 | 84356 | fonts/libertinus-fonts/otf/LibertinusSerifInitials-Regular.otf
-2021/02/26 | 318424 | fonts/libertinus-fonts/otf/LibertinusSerif-Italic.otf
-2021/02/26 | 298384 | fonts/libertinus-fonts/otf/LibertinusSerif-Regular.otf
-2021/02/26 | 328672 | fonts/libertinus-fonts/otf/LibertinusSerif-SemiboldItalic.otf
-2021/02/26 | 276512 | fonts/libertinus-fonts/otf/LibertinusSerif-Semibold.otf
-2021/02/26 | 510229 | fonts/libertinus-fonts/preview.svg
-2021/02/26 | 6624 | fonts/libertinus-fonts/README.md
-2021/02/26 | 3278864 | fonts/libertinus-fonts.zip
+2024/09/21 | 908 | fonts/libertinus-fonts/AUTHORS.txt
+2024/09/21 | 1402 | fonts/libertinus-fonts/CONTRIBUTING.md
+2024/09/21 | 1054 | fonts/libertinus-fonts/CONTRIBUTORS.txt
+2024/09/21 | 17103 | fonts/libertinus-fonts/documentation/Design-Guidelines.md
+2024/09/21 | 6472 | fonts/libertinus-fonts/documentation/Features.md
+2024/09/21 | 13026 | fonts/libertinus-fonts/documentation/libertinus.css
+2024/09/21 | 160836 | fonts/libertinus-fonts/documentation/Math-Sample.pdf
+2024/09/21 | 91660 | fonts/libertinus-fonts/documentation/Opentype-Features.pdf
+2024/09/21 | 133717 | fonts/libertinus-fonts/documentation/Sample.pdf
+2024/09/21 | 17712 | fonts/libertinus-fonts/FONTLOG.txt
+2024/09/21 | 4426 | fonts/libertinus-fonts/OFL.txt
+2024/09/21 | 56716 | fonts/libertinus-fonts/otf/LibertinusKeyboard-Regular.otf
+2024/09/21 | 588848 | fonts/libertinus-fonts/otf/LibertinusMath-Regular.otf
+2024/09/21 | 59264 | fonts/libertinus-fonts/otf/LibertinusMono-Regular.otf
+2024/09/21 | 290244 | fonts/libertinus-fonts/otf/LibertinusSans-Bold.otf
+2024/09/21 | 298720 | fonts/libertinus-fonts/otf/LibertinusSans-Italic.otf
+2024/09/21 | 267824 | fonts/libertinus-fonts/otf/LibertinusSans-Regular.otf
+2024/09/21 | 259176 | fonts/libertinus-fonts/otf/LibertinusSerif-BoldItalic.otf
+2024/09/21 | 293908 | fonts/libertinus-fonts/otf/LibertinusSerif-Bold.otf
+2024/09/21 | 263688 | fonts/libertinus-fonts/otf/LibertinusSerifDisplay-Regular.otf
+2024/09/21 | 125540 | fonts/libertinus-fonts/otf/LibertinusSerifInitials-Regular.otf
+2024/09/21 | 332052 | fonts/libertinus-fonts/otf/LibertinusSerif-Italic.otf
+2024/09/21 | 337132 | fonts/libertinus-fonts/otf/LibertinusSerif-Regular.otf
+2024/09/21 | 343148 | fonts/libertinus-fonts/otf/LibertinusSerif-SemiboldItalic.otf
+2024/09/21 | 291640 | fonts/libertinus-fonts/otf/LibertinusSerif-Semibold.otf
+2024/09/21 | 510242 | fonts/libertinus-fonts/preview.svg
+2024/09/21 | 6650 | fonts/libertinus-fonts/README.md
+2024/09/21 | 3458262 | fonts/libertinus-fonts.zip
2020/05/06 | 847 | fonts/libertinus/latex/libertinus.sty
2023/09/21 | 2508 | fonts/libertinus-otf/Changes
2023/09/21 | 1351180 | fonts/libertinus-otf/doc/libertinus-otf-doc.pdf
@@ -226618,6 +226617,31 @@
2024/02/07 | 35149 | macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/LICENSE.md
2024/02/07 | 4142 | macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/README.md
2024/02/07 | 265999 | macros/latex/contrib/beamer-contrib/themes/beamertheme-focus.zip
+2024/09/20 | 513 | macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/ctan.ann
+2024/09/20 | 108 | macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/ctan.note
+2024/09/20 | 1355 | macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-blueprint.pdf
+2024/09/20 | 656010 | macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-dev-impl.pdf
+2024/09/20 | 463334 | macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-doc.pdf
+2024/09/20 | 48849 | macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-doc.tex
+2024/09/20 | 321151 | macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham.dtx
+2024/09/20 | 280401 | macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-example169transp.pdf
+2024/09/20 | 1718 | macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-example169transp.tex
+2024/09/20 | 282846 | macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-example43dark.pdf
+2024/09/20 | 1740 | macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-example43dark.tex
+2024/09/20 | 30349 | macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-exampleSimple.pdf
+2024/09/20 | 158 | macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-exampleSimple.tex
+2024/09/20 | 2898 | macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham.ins
+2024/09/20 | 7446 | macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-layout.pdf
+2024/09/20 | 1455 | macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-logo.pdf
+2024/09/20 | 1055055 | macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham.pdf
+2024/09/20 | 1291 | macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-safetybox.pdf
+2024/09/20 | 229912 | macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-user-cmds.pdf
+2024/09/20 | 7710 | macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/MANIFEST.md
+2024/09/20 | 5259 | macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/README.md
+2024/09/20 | 10944 | macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/section-Beamer.tex
+2024/09/20 | 961 | macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/section-Conclusion.tex
+2024/09/20 | 13947 | macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/section-Gotham.tex
+2024/09/21 | 2945095 | macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham.zip
2007/02/01 | 3862 | macros/latex/contrib/beamer-contrib/themes/beamerthemeJLTree.sty
2021/04/05 | 1633 | macros/latex/contrib/beamer-contrib/themes/beamerthemelalic/beamercolorthemelalic.sty
2021/04/05 | 108 | macros/latex/contrib/beamer-contrib/themes/beamerthemelalic/beamerfontthemelalic.sty
@@ -233336,12 +233360,12 @@
2008/02/10 | 19110 | macros/latex/contrib/ean13isbn/License.txt
2021/01/24 | 422 | macros/latex/contrib/ean13isbn/README
2021/01/24 | 322624 | macros/latex/contrib/ean13isbn.zip
-2024/09/16 | 91046 | macros/latex/contrib/easybook/easybook.dtx
+2024/09/22 | 90986 | macros/latex/contrib/easybook/easybook.dtx
2024/01/04 | 2081 | macros/latex/contrib/easybook/easybook.ins
-2024/09/16 | 639213 | macros/latex/contrib/easybook/easybook.pdf
-2024/09/16 | 109578 | macros/latex/contrib/easybook/easybook.tex
-2024/09/16 | 913 | macros/latex/contrib/easybook/README.md
-2024/09/16 | 692327 | macros/latex/contrib/easybook.zip
+2024/09/22 | 639129 | macros/latex/contrib/easybook/easybook.pdf
+2024/09/22 | 109578 | macros/latex/contrib/easybook/easybook.tex
+2024/09/22 | 913 | macros/latex/contrib/easybook/README.md
+2024/09/21 | 692217 | macros/latex/contrib/easybook.zip
2009/06/17 | 82589 | macros/latex/contrib/easy/doc/docbib.pdf
2009/06/17 | 78378 | macros/latex/contrib/easy/doc/docbmat.pdf
2009/06/17 | 99132 | macros/latex/contrib/easy/doc/doceqn.pdf
@@ -313312,8 +313336,8 @@
2019/02/28 | 9192 | systems/texlive/tlnet/archive/keyreader.r28195.tar.xz
2019/02/28 | 33556 | systems/texlive/tlnet/archive/keystroke.doc.r17992.tar.xz
2019/02/28 | 6820 | systems/texlive/tlnet/archive/keystroke.r17992.tar.xz
-2024/09/18 | 525344 | systems/texlive/tlnet/archive/keytheorems.doc.r72310.tar.xz
-2024/09/18 | 14480 | systems/texlive/tlnet/archive/keytheorems.r72310.tar.xz
+2024/09/21 | 530224 | systems/texlive/tlnet/archive/keytheorems.doc.r72331.tar.xz
+2024/09/21 | 15400 | systems/texlive/tlnet/archive/keytheorems.r72331.tar.xz
2019/02/28 | 314328 | systems/texlive/tlnet/archive/keyval2e.doc.r23698.tar.xz
2019/02/28 | 3228 | systems/texlive/tlnet/archive/keyval2e.r23698.tar.xz
2023/01/01 | 902524 | systems/texlive/tlnet/archive/keyvaltable.doc.r65416.tar.xz
@@ -318218,8 +318242,8 @@
2019/02/28 | 292656 | systems/texlive/tlnet/archive/simplecv.doc.r35537.tar.xz
2019/02/28 | 2112 | systems/texlive/tlnet/archive/simplecv.r35537.tar.xz
2019/02/28 | 5844 | systems/texlive/tlnet/archive/simplecv.source.r35537.tar.xz
-2024/09/14 | 2567148 | systems/texlive/tlnet/archive/simpleicons.doc.r72275.tar.xz
-2024/09/14 | 3518976 | systems/texlive/tlnet/archive/simpleicons.r72275.tar.xz
+2024/09/21 | 2588912 | systems/texlive/tlnet/archive/simpleicons.doc.r72330.tar.xz
+2024/09/21 | 3551892 | systems/texlive/tlnet/archive/simpleicons.r72330.tar.xz
2019/02/28 | 224844 | systems/texlive/tlnet/archive/simpleinvoice.doc.r45673.tar.xz
2019/02/28 | 2420 | systems/texlive/tlnet/archive/simpleinvoice.r45673.tar.xz
2023/10/03 | 142696 | systems/texlive/tlnet/archive/simplekv.doc.r68439.tar.xz
@@ -321189,16 +321213,16 @@
2020/07/18 | 47816 | systems/texlive/tlnet/archive/zztex.doc.r55862.tar.xz
2020/07/18 | 101724 | systems/texlive/tlnet/archive/zztex.r55862.tar.xz
2024/07/20 | 125851 | systems/texlive/tlnet/install-tl
-2024/09/20 | 5752895 | systems/texlive/tlnet/install-tl-unx.tar.gz
-2024/09/20 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
-2024/09/20 | 488 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
+2024/09/21 | 5753036 | systems/texlive/tlnet/install-tl-unx.tar.gz
+2024/09/21 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
+2024/09/21 | 488 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
2024/04/13 | 5743 | systems/texlive/tlnet/install-tl-windows.bat
-2024/09/20 | 27715476 | systems/texlive/tlnet/install-tl-windows.exe
-2024/09/20 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
-2024/09/20 | 488 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
-2024/09/20 | 34425914 | systems/texlive/tlnet/install-tl.zip
-2024/09/20 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
-2024/09/20 | 488 | systems/texlive/tlnet/install-tl.zip.sha512.asc
+2024/09/21 | 27715479 | systems/texlive/tlnet/install-tl-windows.exe
+2024/09/21 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
+2024/09/21 | 488 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
+2024/09/21 | 34425914 | systems/texlive/tlnet/install-tl.zip
+2024/09/21 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
+2024/09/21 | 488 | systems/texlive/tlnet/install-tl.zip.sha512.asc
2024/03/13 | 1229 | systems/texlive/tlnet/README.md
2024/03/13 | 0 | systems/texlive/tlnet/TEXLIVE_2024
2024/01/02 | 9011 | systems/texlive/tlnet/tlpkg/gpg/pubring.gpg
@@ -321250,12 +321274,12 @@
2023/02/21 | 20371 | systems/texlive/tlnet/tlpkg/TeXLive/TLCrypto.pm
2024/05/02 | 5898 | systems/texlive/tlnet/tlpkg/TeXLive/TLDownload.pm
2023/04/08 | 28167 | systems/texlive/tlnet/tlpkg/TeXLive/TLPaper.pm
-2024/09/20 | 19604714 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
-2024/09/20 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
+2024/09/21 | 19604715 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
+2024/09/21 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
2024/06/22 | 87725 | systems/texlive/tlnet/tlpkg/TeXLive/TLPDB.pm
-2024/09/20 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
-2024/09/20 | 488 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
-2024/09/20 | 2594956 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
+2024/09/21 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
+2024/09/21 | 488 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
+2024/09/21 | 2596444 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
2023/02/20 | 58928 | systems/texlive/tlnet/tlpkg/TeXLive/TLPOBJ.pm
2023/06/11 | 42749 | systems/texlive/tlnet/tlpkg/TeXLive/TLPSRC.pm
2023/02/21 | 16138 | systems/texlive/tlnet/tlpkg/TeXLive/TLTREE.pm
@@ -332972,7 +332996,7 @@
2014/07/05 | 611 | systems/win32/yandy/README
2014/07/05 | 1004628 | systems/win32/yandy/yandy-src.tar.xz
2014/07/05 | 1012416 | systems/win32/yandy.zip
-2024/09/21 | 186 | timestamp
+2024/09/22 | 186 | timestamp
2002/08/26 | 61898 | usergrps/dante/antrag.pdf
2002/08/26 | 118217 | usergrps/dante/antrag.ps
2021/11/11 | 917 | usergrps/dante/dtk/doc/beispiel.bib
diff --git a/FILES.byname.gz b/FILES.byname.gz
index 83b30b7aad..17de38a3e1 100644
--- a/FILES.byname.gz
+++ b/FILES.byname.gz
Binary files differ
diff --git a/FILES.last07days b/FILES.last07days
index 2c649d31c7..59e2a547c1 100644
--- a/FILES.last07days
+++ b/FILES.last07days
@@ -1,32 +1,90 @@
+2024/09/22 | 913 | macros/latex/contrib/easybook/README.md
+2024/09/22 | 90986 | macros/latex/contrib/easybook/easybook.dtx
+2024/09/22 | 639129 | macros/latex/contrib/easybook/easybook.pdf
+2024/09/22 | 109578 | macros/latex/contrib/easybook/easybook.tex
+2024/09/21 | 91660 | fonts/libertinus-fonts/documentation/Opentype-Features.pdf
+2024/09/21 | 908 | fonts/libertinus-fonts/AUTHORS.txt
+2024/09/21 | 692217 | macros/latex/contrib/easybook.zip
+2024/09/21 | 6650 | fonts/libertinus-fonts/README.md
+2024/09/21 | 6472 | fonts/libertinus-fonts/documentation/Features.md
+2024/09/21 | 59264 | fonts/libertinus-fonts/otf/LibertinusMono-Regular.otf
+2024/09/21 | 588848 | fonts/libertinus-fonts/otf/LibertinusMath-Regular.otf
+2024/09/21 | 5753036 | systems/texlive/tlnet/install-tl-unx.tar.gz
+2024/09/21 | 56716 | fonts/libertinus-fonts/otf/LibertinusKeyboard-Regular.otf
+2024/09/21 | 530224 | systems/texlive/tlnet/archive/keytheorems.doc.r72331.tar.xz
+2024/09/21 | 510242 | fonts/libertinus-fonts/preview.svg
+2024/09/21 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
+2024/09/21 | 488 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
+2024/09/21 | 488 | systems/texlive/tlnet/install-tl.zip.sha512.asc
+2024/09/21 | 488 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
+2024/09/21 | 488 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
+2024/09/21 | 4426 | fonts/libertinus-fonts/OFL.txt
+2024/09/21 | 4125996 | biblio/ctan-bibdata.zip
+2024/09/21 | 3708800 | biblio/ctan-bibdata/ctan.pdf
+2024/09/21 | 3551892 | systems/texlive/tlnet/archive/simpleicons.r72330.tar.xz
+2024/09/21 | 3458262 | fonts/libertinus-fonts.zip
+2024/09/21 | 34425914 | systems/texlive/tlnet/install-tl.zip
+2024/09/21 | 343148 | fonts/libertinus-fonts/otf/LibertinusSerif-SemiboldItalic.otf
+2024/09/21 | 337132 | fonts/libertinus-fonts/otf/LibertinusSerif-Regular.otf
+2024/09/21 | 332052 | fonts/libertinus-fonts/otf/LibertinusSerif-Italic.otf
+2024/09/21 | 298720 | fonts/libertinus-fonts/otf/LibertinusSans-Italic.otf
+2024/09/21 | 2945095 | macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham.zip
+2024/09/21 | 293908 | fonts/libertinus-fonts/otf/LibertinusSerif-Bold.otf
+2024/09/21 | 291640 | fonts/libertinus-fonts/otf/LibertinusSerif-Semibold.otf
+2024/09/21 | 290244 | fonts/libertinus-fonts/otf/LibertinusSans-Bold.otf
+2024/09/21 | 2889298 | biblio/ctan-bibdata/ctan.bib
+2024/09/21 | 27715479 | systems/texlive/tlnet/install-tl-windows.exe
+2024/09/21 | 267824 | fonts/libertinus-fonts/otf/LibertinusSans-Regular.otf
+2024/09/21 | 263688 | fonts/libertinus-fonts/otf/LibertinusSerifDisplay-Regular.otf
+2024/09/21 | 2596444 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
+2024/09/21 | 259176 | fonts/libertinus-fonts/otf/LibertinusSerif-BoldItalic.otf
+2024/09/21 | 2588912 | systems/texlive/tlnet/archive/simpleicons.doc.r72330.tar.xz
+2024/09/21 | 19604715 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
+2024/09/21 | 17712 | fonts/libertinus-fonts/FONTLOG.txt
+2024/09/21 | 17103 | fonts/libertinus-fonts/documentation/Design-Guidelines.md
+2024/09/21 | 1678 | biblio/ctan-bibdata/biblatex-ctan/ctan.bbx
+2024/09/21 | 160836 | fonts/libertinus-fonts/documentation/Math-Sample.pdf
+2024/09/21 | 15400 | systems/texlive/tlnet/archive/keytheorems.r72331.tar.xz
+2024/09/21 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
+2024/09/21 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
+2024/09/21 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
+2024/09/21 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
+2024/09/21 | 1402 | fonts/libertinus-fonts/CONTRIBUTING.md
+2024/09/21 | 133717 | fonts/libertinus-fonts/documentation/Sample.pdf
+2024/09/21 | 13026 | fonts/libertinus-fonts/documentation/libertinus.css
+2024/09/21 | 125540 | fonts/libertinus-fonts/otf/LibertinusSerifInitials-Regular.otf
+2024/09/21 | 1054 | fonts/libertinus-fonts/CONTRIBUTORS.txt
2024/09/20 | 9900 | systems/texlive/tlnet/archive/se2thesis.r72325.tar.xz
+2024/09/20 | 961 | macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/section-Conclusion.tex
2024/09/20 | 957 | support/sqltex/src/Makefile.am
2024/09/20 | 8560648 | systems/texlive/tlnet/archive/tlgs.windows.r72323.tar.xz
2024/09/20 | 8010415 | support/sqltex.zip
+2024/09/20 | 7710 | macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/MANIFEST.md
2024/09/20 | 7593 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
+2024/09/20 | 7446 | macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-layout.pdf
2024/09/20 | 712 | fonts/simpleicons/tfm/SimpleIcons--simpleiconsonethree.tfm
+2024/09/20 | 656010 | macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-dev-impl.pdf
2024/09/20 | 6468850 | fonts/simpleicons.zip
2024/09/20 | 593076 | systems/texlive/tlnet/archive/se2thesis.doc.r72325.tar.xz
2024/09/20 | 586 | macros/latex/contrib/univie-ling/doc/templates/template-handout-deutsch.tex
2024/09/20 | 5859147 | macros/latex/contrib/univie-ling.zip
2024/09/20 | 585576 | systems/texlive/tlnet/archive/sim-os-menus.doc.r72326.tar.xz
-2024/09/20 | 5752895 | systems/texlive/tlnet/install-tl-unx.tar.gz
2024/09/20 | 565 | macros/latex/contrib/univie-ling/doc/templates/template-handout-english.tex
2024/09/20 | 549145 | macros/latex/contrib/keytheorems.zip
2024/09/20 | 5455 | support/sqltex/man/sqltex.man
+2024/09/20 | 5259 | macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/README.md
2024/09/20 | 5231 | macros/latex/contrib/univie-ling/doc/templates/template-expose-deutsch.tex
+2024/09/20 | 513 | macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/ctan.ann
2024/09/20 | 5096 | systems/texlive/tlnet/archive/acronym.r72324.tar.xz
2024/09/20 | 5080 | systems/texlive/tlnet/archive/sim-os-menus.r72326.tar.xz
2024/09/20 | 50120 | support/sqltex/doc/SQLTeX.tex
-2024/09/20 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
-2024/09/20 | 488 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
-2024/09/20 | 488 | systems/texlive/tlnet/install-tl.zip.sha512.asc
-2024/09/20 | 488 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
-2024/09/20 | 488 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
+2024/09/20 | 48849 | macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-doc.tex
2024/09/20 | 4737 | macros/latex/contrib/univie-ling/doc/templates/template-expose-english.tex
2024/09/20 | 4727 | macros/latex/contrib/univie-ling/doc/templates/template-thesis-deutsch.tex
2024/09/20 | 465859 | macros/latex/contrib/univie-ling/doc/univie-ling-thesis.pdf
2024/09/20 | 4649 | macros/latex/contrib/univie-ling/doc/univie-ling.tex
2024/09/20 | 464590 | macros/latex/contrib/univie-ling/doc/univie-ling-expose.pdf
+2024/09/20 | 463334 | macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-doc.pdf
2024/09/20 | 462028 | macros/latex/contrib/univie-ling/doc/univie-ling-paper.pdf
2024/09/20 | 457853 | macros/latex/contrib/univie-ling/doc/univie-ling-poster.pdf
2024/09/20 | 454295 | macros/latex/contrib/univie-ling/doc/univie-ling-handout.pdf
@@ -34,14 +92,12 @@
2024/09/20 | 4367 | macros/latex/contrib/univie-ling/doc/templates/template-paper-deutsch.tex
2024/09/20 | 42891 | support/sqltex/src/sqltex
2024/09/20 | 4268 | macros/latex/contrib/univie-ling/doc/templates/template-thesis-english.tex
-2024/09/20 | 4125985 | biblio/ctan-bibdata.zip
2024/09/20 | 3965 | macros/latex/contrib/univie-ling/doc/templates/template-paper-english.tex
2024/09/20 | 3924 | fonts/simpleicons/enc/simpleiconsone.enc
2024/09/20 | 3918 | fonts/simpleicons/enc/simpleiconsfive.enc
2024/09/20 | 3800 | macros/latex/contrib/univie-ling/doc/templates/template-poster-deutsch.tex
2024/09/20 | 3757 | fonts/simpleicons/enc/simpleiconsthree.enc
2024/09/20 | 3735 | fonts/simpleicons/enc/simpleiconsoneone.enc
-2024/09/20 | 3708800 | biblio/ctan-bibdata/ctan.pdf
2024/09/20 | 3681 | fonts/simpleicons/enc/simpleiconsonezero.enc
2024/09/20 | 3666 | macros/latex/contrib/univie-ling/doc/templates/template-poster-english.tex
2024/09/20 | 3661 | macros/latex/contrib/univie-ling/biblatex-univie-ling/univie-ling.cbx
@@ -58,24 +114,26 @@
2024/09/20 | 353904 | macros/latex/contrib/univie-ling/doc/univie-ling-wlg.pdf
2024/09/20 | 3478 | fonts/simpleicons/enc/simpleiconsonetwo.enc
2024/09/20 | 347337 | macros/latex/contrib/univie-ling/doc/templates/template-thesis-deutsch.pdf
-2024/09/20 | 34425914 | systems/texlive/tlnet/install-tl.zip
2024/09/20 | 343435 | macros/latex/contrib/univie-ling/doc/templates/template-thesis-english.pdf
2024/09/20 | 3398 | fonts/simpleicons/enc/simpleiconssix.enc
2024/09/20 | 33946 | macros/latex/contrib/univie-ling/doc/univie-ling-paper.tex
+2024/09/20 | 321151 | macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham.dtx
2024/09/20 | 31363 | macros/latex/contrib/univie-ling/tex/univie-ling-poster.cls
2024/09/20 | 311719 | support/sqltex/doc/SQLTeX.pdf
2024/09/20 | 308314 | fonts/simpleicons/tex/simpleiconsglyphs-pdftex.tex
2024/09/20 | 30591 | macros/latex/contrib/univie-ling/doc/univie-ling-expose.tex
2024/09/20 | 303 | support/sqltex/doc/Makefile.am
+2024/09/20 | 30349 | macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-exampleSimple.pdf
2024/09/20 | 30255 | macros/latex/contrib/univie-ling/doc/univie-ling-handout.tex
2024/09/20 | 301052 | fonts/simpleicons/tex/simpleiconsglyphs-xeluatex.tex
2024/09/20 | 298940 | systems/texlive/tlnet/archive/acronym.doc.r72324.tar.xz
2024/09/20 | 29882 | macros/latex/contrib/univie-ling/tex/univie-ling-handout.cls
-2024/09/20 | 2889297 | biblio/ctan-bibdata/ctan.bib
+2024/09/20 | 2898 | macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham.ins
2024/09/20 | 2858 | fonts/simpleicons/enc/simpleiconsonethree.enc
+2024/09/20 | 282846 | macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-example43dark.pdf
2024/09/20 | 28114 | macros/latex/contrib/univie-ling/tex/univie-ling-thesis.cls
+2024/09/20 | 280401 | macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-example169transp.pdf
2024/09/20 | 279 | fonts/simpleicons/tex/usimpleiconsonethree.fd
-2024/09/20 | 27715476 | systems/texlive/tlnet/install-tl-windows.exe
2024/09/20 | 27607 | support/sqltex/aclocal.m4
2024/09/20 | 27601 | macros/latex/contrib/univie-ling/tex/univie-ling-paper.cls
2024/09/20 | 274 | fonts/simpleicons/tex/usimpleiconsonezero.fd
@@ -89,7 +147,6 @@
2024/09/20 | 259 | fonts/simpleicons/tex/usimpleiconsnine.fd
2024/09/20 | 259 | fonts/simpleicons/tex/usimpleiconsfour.fd
2024/09/20 | 259 | fonts/simpleicons/tex/usimpleiconsfive.fd
-2024/09/20 | 2594956 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
2024/09/20 | 2577307 | fonts/simpleicons/doc/simpleicons.pdf
2024/09/20 | 254 | fonts/simpleicons/tex/usimpleiconstwo.fd
2024/09/20 | 254 | fonts/simpleicons/tex/usimpleiconssix.fd
@@ -100,6 +157,7 @@
2024/09/20 | 24425 | macros/latex/contrib/univie-ling/biblatex-univie-ling/univie-ling.bbx
2024/09/20 | 24040 | support/sqltex/Makefile.in
2024/09/20 | 2306267 | fonts/simpleicons/type1/SimpleIcons.pfb
+2024/09/20 | 229912 | macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-user-cmds.pdf
2024/09/20 | 227180 | macros/latex/contrib/univie-ling/doc/templates/template-poster-deutsch.pdf
2024/09/20 | 2258 | macros/latex/contrib/univie-ling/doc/templates/template-wlg-article.tex
2024/09/20 | 224983 | macros/latex/contrib/univie-ling/doc/templates/template-poster-english.pdf
@@ -108,21 +166,22 @@
2024/09/20 | 2072 | support/sqltex/src/SQLTeX_r.dat
2024/09/20 | 201366 | macros/latex/contrib/univie-ling/doc/templates/template-handout-deutsch.pdf
2024/09/20 | 200967 | macros/latex/contrib/univie-ling/doc/templates/template-handout-english.pdf
-2024/09/20 | 19604714 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
2024/09/20 | 18352 | macros/latex/contrib/univie-ling/doc/univie-ling-wlg.tex
2024/09/20 | 183196 | fonts/simpleicons/doc/bindings.tex
2024/09/20 | 1813 | fonts/simpleicons/doc/simpleicons.tex
2024/09/20 | 17768 | systems/texlive/tlnet/archive/acronym.source.r72324.tar.xz
2024/09/20 | 1745 | fonts/simpleicons/tex/simpleicons.sty
+2024/09/20 | 1740 | macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-example43dark.tex
2024/09/20 | 172486 | macros/latex/contrib/univie-ling/doc/templates/template-paper-deutsch.pdf
-2024/09/20 | 1678 | biblio/ctan-bibdata/biblatex-ctan/ctan.bbx
+2024/09/20 | 1718 | macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-example169transp.tex
2024/09/20 | 167577 | macros/latex/contrib/univie-ling/doc/templates/template-paper-english.pdf
-2024/09/20 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
-2024/09/20 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
+2024/09/20 | 158 | macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-exampleSimple.tex
2024/09/20 | 1476 | fonts/simpleicons/map/simpleicons.map
-2024/09/20 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
-2024/09/20 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
+2024/09/20 | 1455 | macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-logo.pdf
+2024/09/20 | 13947 | macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/section-Gotham.tex
+2024/09/20 | 1355 | macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-blueprint.pdf
2024/09/20 | 132635 | macros/latex/contrib/univie-ling/doc/templates/template-expose-deutsch.pdf
+2024/09/20 | 1291 | macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-safetybox.pdf
2024/09/20 | 127866 | macros/latex/contrib/univie-ling/doc/templates/template-expose-english.pdf
2024/09/20 | 1236 | fonts/simpleicons/tfm/SimpleIcons--simpleiconsnine.tfm
2024/09/20 | 12344 | macros/latex/contrib/univie-ling/README
@@ -143,6 +202,9 @@
2024/09/20 | 11075 | support/sqltex/man/Makefile.in
2024/09/20 | 110585 | support/sqltex/configure
2024/09/20 | 11013 | support/sqltex/doc/Makefile.in
+2024/09/20 | 10944 | macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/section-Beamer.tex
+2024/09/20 | 108 | macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/ctan.note
+2024/09/20 | 1055055 | macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham.pdf
2024/09/19 | 9692 | macros/latex/contrib/se2thesis/CHANGELOG.md
2024/09/19 | 9469 | macros/latex/contrib/acronym/CHANGES
2024/09/19 | 9102 | macros/latex/contrib/se2thesis/se2fonts.dtx
@@ -187,7 +249,6 @@
2024/09/18 | 64828 | systems/texlive/tlnet/archive/tableof.doc.r72313.tar.xz
2024/09/18 | 6336 | systems/texlive/tlnet/archive/iaria.source.r72309.tar.xz
2024/09/18 | 5336 | systems/texlive/tlnet/archive/iaria-lite.source.r72308.tar.xz
-2024/09/18 | 525344 | systems/texlive/tlnet/archive/keytheorems.doc.r72310.tar.xz
2024/09/18 | 4736 | systems/texlive/tlnet/archive/cs-techrep.r72306.tar.xz
2024/09/18 | 429036 | systems/texlive/tlnet/archive/profmaquette.doc.r72312.tar.xz
2024/09/18 | 424750 | macros/latex/required/babel/base/babel.pdf
@@ -217,7 +278,6 @@
2024/09/18 | 1828388 | systems/texlive/tlnet/archive/tagpdf.doc.r72314.tar.xz
2024/09/18 | 174484 | systems/texlive/tlnet/archive/changelog.doc.r72305.tar.xz
2024/09/18 | 1648 | systems/texlive/tlnet/archive/iaria-lite.r72308.tar.xz
-2024/09/18 | 14480 | systems/texlive/tlnet/archive/keytheorems.r72310.tar.xz
2024/09/18 | 13002 | macros/latex/contrib/sim-os-menus/doc/sim-os-menus-doc-fr.tex
2024/09/18 | 12712 | systems/texlive/tlnet/archive/tableof.source.r72313.tar.xz
2024/09/18 | 11902 | macros/latex/contrib/sim-os-menus/doc/sim-os-menus-doc.tex
@@ -279,8 +339,6 @@
2024/09/17 | 106378 | macros/latex/contrib/profmaquette/doc/profmaquette-doc.zip
2024/09/17 | 102132 | systems/texlive/tlnet/archive/penlight.r72301.tar.xz
2024/09/16 | 950 | macros/latex/contrib/tagpdf/ex-formula-problem.tex
-2024/09/16 | 913 | macros/latex/contrib/easybook/README.md
-2024/09/16 | 91046 | macros/latex/contrib/easybook/easybook.dtx
2024/09/16 | 8439 | macros/latex/contrib/tagpdf/tagpdfdocu-patches.sty
2024/09/16 | 8281 | macros/latex/contrib/tagpdf/global-ex.png
2024/09/16 | 827 | macros/latex/contrib/tagpdf/ex-softhyphen.tex
@@ -294,10 +352,8 @@
2024/09/16 | 7309 | macros/latex/contrib/tagpdf/tagpdf-space.dtx
2024/09/16 | 700 | macros/latex/contrib/tagpdf/ex-spaceglyph-listings.tex
2024/09/16 | 698 | macros/latex/contrib/tagpdf/ex-tagpdf-template.tex
-2024/09/16 | 692327 | macros/latex/contrib/easybook.zip
2024/09/16 | 6626 | macros/latex/contrib/tagpdf/ex-attribute-luatex.pdf
2024/09/16 | 653152 | systems/texlive/tlnet/archive/panneauxroute.doc.r72287.tar.xz
-2024/09/16 | 639213 | macros/latex/contrib/easybook/easybook.pdf
2024/09/16 | 60301 | macros/latex/contrib/tagpdf/pac2024-report.png
2024/09/16 | 51750 | macros/latex/contrib/proflycee/tex/proflycee-tools-probas.tex
2024/09/16 | 48184 | macros/latex/contrib/tagpdf/tagpdf-backend.dtx
@@ -363,7 +419,6 @@
2024/09/16 | 1160 | macros/latex/contrib/tagpdf/ex-AF-file.tex
2024/09/16 | 1136355 | macros/latex/contrib/tagpdf/tagpdf.pdf
2024/09/16 | 109685 | macros/latex/contrib/ocgx2/ocgx2.sty
-2024/09/16 | 109578 | macros/latex/contrib/easybook/easybook.tex
2024/09/16 | 10661 | macros/latex/contrib/proflycee/tex/ProfLycee.sty
2024/09/16 | 1063 | macros/latex/contrib/tagpdf/ex-list.tex
2024/09/16 | 101085 | macros/latex/contrib/media9/pdfbase.sty
@@ -677,183 +732,3 @@
2024/09/15 | 10277659 | systems/win32/miktex/tm/packages/profcollege__doc.tar.lzma
2024/09/15 | 1015865 | systems/win32/miktex/tm/packages/quran__doc.tar.lzma
2024/09/15 | 10018 | systems/win32/miktex/tm/packages/suanpan-l3__source.tar.lzma
-2024/09/14 | 9753 | macros/latex/contrib/iaria-lite/template/iaria-lite-example-neumann.tex
-2024/09/14 | 9736 | biblio/citation-style-language/citeproc-context.lua
-2024/09/14 | 968969 | macros/latex/contrib/fvextra.zip
-2024/09/14 | 9408 | biblio/citation-style-language/citeproc-unicode.lua
-2024/09/14 | 9190 | biblio/citation-style-language/citeproc-node-choose.lua
-2024/09/14 | 916979 | macros/latex/contrib/fvextra/fvextra.pdf
-2024/09/14 | 91616 | biblio/citation-style-language/citeproc-bibtex-data.lua
-2024/09/14 | 862 | info/dtk-bibliography/dtk-bibliography.tex
-2024/09/14 | 8549244 | systems/texlive/tlnet/archive/pdfmanagement-testphase.doc.r72270.tar.xz
-2024/09/14 | 846 | macros/latex/contrib/iaria-lite/iaria-lite.ins
-2024/09/14 | 846 | macros/latex/contrib/cs-techrep/cs-techrep.ins
-2024/09/14 | 84580 | biblio/citation-style-language/apa.csl
-2024/09/14 | 8222 | biblio/citation-style-language/american-political-science-association.csl
-2024/09/14 | 821 | macros/latex/contrib/iaria/iaria.ins
-2024/09/14 | 8128 | biblio/citation-style-language/elsevier-harvard.csl
-2024/09/14 | 7815 | biblio/citation-style-language/citeproc-node-style.lua
-2024/09/14 | 7380 | biblio/citation-style-language/citeproc-node-text.lua
-2024/09/14 | 7284 | systems/texlive/tlnet/archive/collection-latexextra.r72273.tar.xz
-2024/09/14 | 70723 | biblio/citation-style-language/citeproc-output.lua
-2024/09/14 | 7011 | biblio/citation-style-language/citeproc-node-locale.lua
-2024/09/14 | 6813 | biblio/citation-style-language/citeproc-node-sort.lua
-2024/09/14 | 664 | info/dtk-bibliography/README.md
-2024/09/14 | 6267 | biblio/citation-style-language/citeproc-ir-node.lua
-2024/09/14 | 6237 | macros/luatex/latex/gitinfo-lua/scripts/gitinfo-lua-cmd.lua
-2024/09/14 | 617 | biblio/citation-style-language/citeproc-lua.1
-2024/09/14 | 615 | macros/latex/contrib/fvextra/README
-2024/09/14 | 5834 | biblio/citation-style-language/nature.csl
-2024/09/14 | 562424 | info/dtk-bibliography/dtk-bibliography.bib
-2024/09/14 | 54924 | systems/texlive/tlnet/archive/pdfmanagement-testphase.r72270.tar.xz
-2024/09/14 | 52817 | biblio/citation-style-language/citeproc-node-citation.lua
-2024/09/14 | 5211 | biblio/citation-style-language/citation-style-language.sty
-2024/09/14 | 520 | info/dtk-bibliography/dtk-authoryear.dbx
-2024/09/14 | 500 | macros/latex/contrib/iaria-lite/COPYING
-2024/09/14 | 500 | macros/latex/contrib/iaria/COPYING
-2024/09/14 | 500 | macros/latex/contrib/cs-techrep/COPYING
-2024/09/14 | 4969 | biblio/citation-style-language/citation-style-language-compatible.sty
-2024/09/14 | 49224 | biblio/citation-style-language/chicago-fullnote-bibliography.csl
-2024/09/14 | 4834 | info/dtk-bibliography/dtk-logos.sty
-2024/09/14 | 47674 | biblio/citation-style-language/chicago-note-bibliography.csl
-2024/09/14 | 4583426 | install/biblio/citation-style-language.tds.zip
-2024/09/14 | 4575789 | biblio/citation-style-language.zip
-2024/09/14 | 454 | biblio/citation-style-language/citeproc.lua
-2024/09/14 | 4178 | biblio/citation-style-language/citeproc-cli.lua
-2024/09/14 | 41096 | biblio/citation-style-language/citeproc-engine.lua
-2024/09/14 | 392763 | macros/latex/contrib/pas-tableur/doc/pas-tableur.pdf
-2024/09/14 | 37255 | biblio/citation-style-language/citeproc-node-names.lua
-2024/09/14 | 364 | macros/latex/contrib/iaria-lite/docstrip.cfg
-2024/09/14 | 364 | macros/latex/contrib/cs-techrep/docstrip.cfg
-2024/09/14 | 35929 | macros/latex/contrib/iaria-lite/template/cpn_all_all.bib
-2024/09/14 | 3518976 | systems/texlive/tlnet/archive/simpleicons.r72275.tar.xz
-2024/09/14 | 351184 | info/dtk-bibliography.zip
-2024/09/14 | 344 | macros/latex/contrib/iaria/docstrip.cfg
-2024/09/14 | 3381 | macros/luatex/latex/gitinfo-lua/tex/gitinfo-lua.sty
-2024/09/14 | 336600 | macros/latex/contrib/fvextra/fvextra.dtx
-2024/09/14 | 329 | macros/luatex/latex/gitinfo-lua/doc/gitinfo-lua-init.lua
-2024/09/14 | 32985 | biblio/citation-style-language/citeproc-util.lua
-2024/09/14 | 3213 | biblio/citation-style-language/citeproc-node-label.lua
-2024/09/14 | 31837 | biblio/citation-style-language/citeproc-manager.lua
-2024/09/14 | 3040 | systems/texlive/tlnet/archive/mlacls.r72271.tar.xz
-2024/09/14 | 3028620 | systems/texlive/tlnet/archive/mlacls.doc.r72271.tar.xz
-2024/09/14 | 293724 | macros/latex/contrib/pas-tableur.zip
-2024/09/14 | 289553 | info/dtk-bibliography/dtk-bibliography.pdf
-2024/09/14 | 2863 | macros/luatex/latex/gitinfo-lua/scripts/gitinfo-lua-recorder.lua
-2024/09/14 | 28457 | biblio/citation-style-language/csl-locales-ru-RU.xml
-2024/09/14 | 2808 | systems/texlive/tlnet/archive/ezedits.r72273.tar.xz
-2024/09/14 | 27538 | macros/latex/contrib/cs-techrep/cs-techrep.dtx
-2024/09/14 | 27141 | biblio/citation-style-language/csl-locales-hi-IN.xml
-2024/09/14 | 27120 | biblio/citation-style-language/csl-locales-bg-BG.xml
-2024/09/14 | 265 | biblio/citation-style-language/citeproc-lua.lua
-2024/09/14 | 263 | biblio/citation-style-language/citation-style-language-data.sty
-2024/09/14 | 26325 | biblio/citation-style-language/csl-locales-it-IT.xml
-2024/09/14 | 26314 | biblio/citation-style-language/csl-locales-en-US.xml
-2024/09/14 | 26220 | biblio/citation-style-language/csl-locales-th-TH.xml
-2024/09/14 | 25960 | biblio/citation-style-language/csl-locales-lv-LV.xml
-2024/09/14 | 25818 | biblio/citation-style-language/csl-locales-el-GR.xml
-2024/09/14 | 2567148 | systems/texlive/tlnet/archive/simpleicons.doc.r72275.tar.xz
-2024/09/14 | 25561 | biblio/citation-style-language/citation-style-language-bib.sty
-2024/09/14 | 25487 | biblio/citation-style-language/csl-locales-pt-BR.xml
-2024/09/14 | 25460 | biblio/citation-style-language/csl-locales-lt-LT.xml
-2024/09/14 | 25355 | biblio/citation-style-language/csl-locales-pt-PT.xml
-2024/09/14 | 25210 | biblio/citation-style-language/csl-locales-es-MX.xml
-2024/09/14 | 25139 | biblio/citation-style-language/csl-locales-fr-FR.xml
-2024/09/14 | 25122 | biblio/citation-style-language/csl-locales-en-GB.xml
-2024/09/14 | 25063 | biblio/citation-style-language/csl-locales-nl-NL.xml
-2024/09/14 | 25058 | biblio/citation-style-language/csl-locales-fa-IR.xml
-2024/09/14 | 2503 | biblio/citation-style-language/citeproc-yaml.lua
-2024/09/14 | 24889 | biblio/citation-style-language/csl-locales-fr-CA.xml
-2024/09/14 | 24841 | biblio/citation-style-language/csl-locales-sr-RS.xml
-2024/09/14 | 24690 | biblio/citation-style-language/csl-locales-de-AT.xml
-2024/09/14 | 24689 | biblio/citation-style-language/csl-locales-km-KH.xml
-2024/09/14 | 24653 | biblio/citation-style-language/csl-locales-mn-MN.xml
-2024/09/14 | 24612 | biblio/citation-style-language/csl-locales-de-DE.xml
-2024/09/14 | 24534 | biblio/citation-style-language/csl-locales-he-IL.xml
-2024/09/14 | 24518 | biblio/citation-style-language/csl-locales-vi-VN.xml
-2024/09/14 | 24514 | biblio/citation-style-language/csl-locales-ja-JP.xml
-2024/09/14 | 24419 | biblio/citation-style-language/csl-locales-sv-SE.xml
-2024/09/14 | 24388 | biblio/citation-style-language/csl-locales-de-CH.xml
-2024/09/14 | 24357 | biblio/citation-style-language/csl-locales-id-ID.xml
-2024/09/14 | 24342 | biblio/citation-style-language/csl-locales-ro-RO.xml
-2024/09/14 | 24337 | biblio/citation-style-language/csl-locales-tr-TR.xml
-2024/09/14 | 24329 | biblio/citation-style-language/csl-locales-fi-FI.xml
-2024/09/14 | 24286 | biblio/citation-style-language/csl-locales-cy-GB.xml
-2024/09/14 | 24286 | biblio/citation-style-language/csl-locales-cs-CZ.xml
-2024/09/14 | 24283 | biblio/citation-style-language/csl-locales-eu.xml
-2024/09/14 | 24281 | biblio/citation-style-language/csl-locales-sk-SK.xml
-2024/09/14 | 24184 | biblio/citation-style-language/csl-locales-is-IS.xml
-2024/09/14 | 24174 | biblio/citation-style-language/csl-locales-da-DK.xml
-2024/09/14 | 24169 | biblio/citation-style-language/csl-locales-hu-HU.xml
-2024/09/14 | 24149 | biblio/citation-style-language/csl-locales-pl-PL.xml
-2024/09/14 | 24138 | biblio/citation-style-language/csl-locales-af-ZA.xml
-2024/09/14 | 24120 | biblio/citation-style-language/csl-locales-ko-KR.xml
-2024/09/14 | 24114 | biblio/citation-style-language/csl-locales-es-CL.xml
-2024/09/14 | 240 | biblio/citation-style-language/DEPENDS.txt
-2024/09/14 | 24066 | biblio/citation-style-language/csl-locales-hr-HR.xml
-2024/09/14 | 240563 | biblio/citation-style-language/citation-style-language-doc.pdf
-2024/09/14 | 24042 | biblio/citation-style-language/csl-locales-sl-SI.xml
-2024/09/14 | 24039 | biblio/citation-style-language/csl-locales-es-ES.xml
-2024/09/14 | 24026 | macros/latex/contrib/customenvs/doc/customenvs-doc-en.tex
-2024/09/14 | 24016 | biblio/citation-style-language/csl-locales-ca-AD.xml
-2024/09/14 | 24007 | biblio/citation-style-language/csl-locales-la.xml
-2024/09/14 | 23966 | biblio/citation-style-language/csl-locales-et-EE.xml
-2024/09/14 | 23895 | biblio/citation-style-language/citeproc-latex-data.lua
-2024/09/14 | 23846 | biblio/citation-style-language/chicago-author-date.csl
-2024/09/14 | 23517 | biblio/citation-style-language/citation-style-language-doc.tex
-2024/09/14 | 2349 | macros/latex/contrib/fvextra/fvextra.ins
-2024/09/14 | 2341 | biblio/citation-style-language/citeproc-nodes.lua
-2024/09/14 | 23399 | biblio/citation-style-language/csl-locales-uk-UA.xml
-2024/09/14 | 22529 | biblio/citation-style-language/csl-locales-ar.xml
-2024/09/14 | 22167 | biblio/citation-style-language/citation-style-language-cite.sty
-2024/09/14 | 21785 | biblio/citation-style-language/csl-locales-zh-TW.xml
-2024/09/14 | 21701 | biblio/citation-style-language/csl-locales-zh-CN.xml
-2024/09/14 | 21434 | biblio/citation-style-language/citeproc-element.lua
-2024/09/14 | 213959 | macros/latex/contrib/customenvs/doc/customenvs-doc-en.pdf
-2024/09/14 | 21305 | biblio/citation-style-language/csl-locales-nb-NO.xml
-2024/09/14 | 21251 | biblio/citation-style-language/csl-locales-nn-NO.xml
-2024/09/14 | 2118 | biblio/citation-style-language/citeproc-node-layout.lua
-2024/09/14 | 2082 | macros/latex/contrib/iaria-lite/README
-2024/09/14 | 2051 | biblio/citation-style-language/citeproc-node-number.lua
-2024/09/14 | 20346 | macros/luatex/latex/gitinfo-lua/doc/gitinfo-lua.tex
-2024/09/14 | 1972 | macros/latex/contrib/iaria/README
-2024/09/14 | 19423 | biblio/citation-style-language/citeproc-latex-parser.lua
-2024/09/14 | 190900 | macros/latex/contrib/cs-techrep/cs-techrep.pdf
-2024/09/14 | 1869 | info/dtk-bibliography/dtk-authoryear.bbx
-2024/09/14 | 18589 | macros/latex/contrib/iaria-lite/template/cpn_supervised_all.bib
-2024/09/14 | 1837 | biblio/citation-style-language/README.md
-2024/09/14 | 1814 | macros/luatex/latex/gitinfo-lua/README.md
-2024/09/14 | 1810 | macros/latex/contrib/cs-techrep/README
-2024/09/14 | 175722 | macros/latex/contrib/iaria/iaria.pdf
-2024/09/14 | 174380 | macros/latex/contrib/iaria-lite/iaria-lite.pdf
-2024/09/14 | 17413 | biblio/citation-style-language/ieee.csl
-2024/09/14 | 16647 | biblio/citation-style-language/citeproc-bibtex-parser.lua
-2024/09/14 | 16289 | macros/latex/contrib/iaria/iaria.dtx
-2024/09/14 | 16107 | biblio/citation-style-language/modern-humanities-research-association.csl
-2024/09/14 | 157 | macros/luatex/latex/gitinfo-lua/doc/latexmkrc
-2024/09/14 | 14834 | macros/latex/contrib/pas-tableur/latex/pas-tableur.sty
-2024/09/14 | 14783110 | biblio/citation-style-language/citeproc-journal-data.lua
-2024/09/14 | 14320 | biblio/citation-style-language/citeproc-node-date.lua
-2024/09/14 | 142941 | macros/latex/contrib/iaria-lite/template/iaria-lite-example-neumann.pdf
-2024/09/14 | 142156 | systems/texlive/tlnet/archive/ezedits.doc.r72273.tar.xz
-2024/09/14 | 141908 | systems/texlive/tlnet/archive/pdfmanagement-testphase.source.r72270.tar.xz
-2024/09/14 | 138416 | macros/luatex/latex/gitinfo-lua.zip
-2024/09/14 | 13688 | biblio/citation-style-language/citation-style-language-init.sty
-2024/09/14 | 13292 | macros/latex/contrib/iaria-lite/iaria-lite.dtx
-2024/09/14 | 13238 | macros/latex/contrib/pas-tableur/doc/pas-tableur.tex
-2024/09/14 | 1293 | macros/latex/contrib/pas-tableur/README.txt
-2024/09/14 | 12878 | biblio/citation-style-language/vancouver.csl
-2024/09/14 | 12830 | biblio/citation-style-language/citeproc-bibtex2csl.lua
-2024/09/14 | 1246 | biblio/citation-style-language/citeproc-node-group.lua
-2024/09/14 | 124467 | macros/luatex/latex/gitinfo-lua/doc/gitinfo-lua.pdf
-2024/09/14 | 11594 | biblio/citation-style-language/modern-language-association.csl
-2024/09/14 | 11496 | biblio/citation-style-language/citeproc-node-bibliography.lua
-2024/09/14 | 11480 | biblio/citation-style-language/american-sociological-association.csl
-2024/09/14 | 11282 | macros/latex/contrib/fvextra/CHANGELOG.md
-2024/09/14 | 10993 | biblio/citation-style-language/american-medical-association.csl
-2024/09/14 | 10723 | biblio/citation-style-language/harvard-cite-them-right.csl
-2024/09/14 | 10588 | biblio/citation-style-language/american-chemical-society.csl
-2024/09/14 | 10488 | systems/texlive/tlnet/archive/mlacls.source.r72271.tar.xz
-2024/09/14 | 1040 | macros/luatex/latex/gitinfo-lua/doc/git-scenario.sh
-2024/09/14 | 10187 | macros/luatex/latex/gitinfo-lua/scripts/gitinfo-lua.lua
-2024/09/14 | 10002 | biblio/citation-style-language/CHANGELOG.md
diff --git a/biblio/ctan-bibdata/ctan.bib b/biblio/ctan-bibdata/ctan.bib
index 518ef9ea1f..53fc54d807 100644
--- a/biblio/ctan-bibdata/ctan.bib
+++ b/biblio/ctan-bibdata/ctan.bib
@@ -1,7 +1,7 @@
%% bib file of all CTAN packages
%% (C) Herbert Voß
%%
-%% created at 21-09-2024, 02:00:04
+%% created at 22-09-2024, 02:00:03
%%
%% This file is provided under the terms of the LPPL v1.3 or
@@ -6201,6 +6201,17 @@
url = {https://ctan.org/pkg/beamertheme-focus},
}
+@manual{ctan-beamertheme-gotham,
+ title = {The \texttt{beamertheme-gotham} package},
+ subtitle = {A versatile and extendable beamer theme based on Metropolis},
+ author = {Romain NOËL},
+ date = {2024-09-21},
+ version = {1.1.0.b},
+ license = {lppl1.3c,cc-by-sa-4},
+ mirror = {https://mirror.ctan.org/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham},
+ url = {https://ctan.org/pkg/beamertheme-gotham},
+}
+
@manual{ctan-beamertheme-light,
title = {The \texttt{beamertheme-light} package},
subtitle = {A minimal beamer style},
@@ -20976,8 +20987,8 @@
title = {The \texttt{easybook} package},
subtitle = {Easily typesetting Chinese theses or books},
author = {Qu Yi},
- date = {2024-09-16},
- version = {2024dq},
+ date = {2024-09-21},
+ version = {2024ds},
license = {lppl1.3c},
mirror = {https://mirror.ctan.org/macros/latex/contrib/easybook},
url = {https://ctan.org/pkg/easybook},
@@ -40270,8 +40281,8 @@
title = {The \texttt{libertinus-fonts} package},
subtitle = {The Libertinus font family},
author = {Khaled Hosny and Caleb Maclennan},
- date = {2021-02-26},
- version = {7.040},
+ date = {2024-09-21},
+ version = {7.050},
license = {ofl},
mirror = {https://mirror.ctan.org/fonts/libertinus-fonts},
url = {https://ctan.org/pkg/libertinus-fonts},
diff --git a/fonts/libertinus-fonts/CONTRIBUTING.md b/fonts/libertinus-fonts/CONTRIBUTING.md
index 17ae82c3b8..44d895fd4a 100644
--- a/fonts/libertinus-fonts/CONTRIBUTING.md
+++ b/fonts/libertinus-fonts/CONTRIBUTING.md
@@ -14,7 +14,7 @@ A remote CI runner will also automatically run `fontship` for all PRs on this re
You can even download and review the fonts it builds after each push.
Hovever this is cumbersome for actual font development and we recomend checking your work with local feedback.
-Note that FontForge adds unnessesary clutter to its source files on each save that **must** be removed before committing.
+Note that FontForge adds unnecessary clutter to its source files on each save that **must** be removed before committing.
After modifying the `.sfd` files, and before committing the changes, you can automatically clean them up with:
fontship make normalize
diff --git a/fonts/libertinus-fonts/FONTLOG.txt b/fonts/libertinus-fonts/FONTLOG.txt
index 1bcdf5e333..18b209d7be 100644
--- a/fonts/libertinus-fonts/FONTLOG.txt
+++ b/fonts/libertinus-fonts/FONTLOG.txt
@@ -45,9 +45,22 @@ https://github.com/alerque/libertinus
ChangeLog
---------
-unreleased (GIT) <Libertinus> Version HEAD
-
-26 February (Caleb Maclennan) <Libertinus> Version 7.040
+21 September 2024 (Caleb Maclennan) <Libertinus> Version 7.050
+- Redo Hebrew vowel marks
+- Add (for Hebrew) uniE801-3, uniFB29, shin variants, letters with dagesh,
+ letters with rafe, patah, ganuv, hireqmem and holamalef
+- Add circledotted with anchors for Hebrew vowels
+- Correct spacing for uni01DD
+- Add missing above marks to lowercase L in Serif family
+- Add above marks and aboveMark base marks to Serif Semibold
+- Add lowercase e and r with stroke to Serif family
+- Overhaul math font glyphs for style consistency
+- Add U+FB29 (Hebrew alternative plus sign) to all families
+- Add U+29B9 and U+29BA glyphs to Libertinus Math
+- Add U+2B33, long leftwards squiggle arrow to Math family
+- Add Dutch-specific i_j and I_J digraphs
+
+26 February 2021 (Caleb Maclennan) <Libertinus> Version 7.040
- Add 29 more specialty arrow glyphs to Math family
- Rebuild with new sfdLib release to fix Spiro curve issues in uni2639
- Correct Q.u side bearings to match Q in Sans & Serif families
diff --git a/fonts/libertinus-fonts/README.md b/fonts/libertinus-fonts/README.md
index ab5eef2e25..5b5e648b23 100644
--- a/fonts/libertinus-fonts/README.md
+++ b/fonts/libertinus-fonts/README.md
@@ -2,7 +2,7 @@
[![Latest Release](https://img.shields.io/github/v/release/alerque/libertinus?label=Download%20Release&logo=Github)](https://github.com/alerque/libertinus/releases/latest)
[![All Releases](https://img.shields.io/github/downloads/alerque/libertinus/total?label=Downloads)](https://github.com/alerque/libertinus/releases)
-[![Fontship Build Status](https://img.shields.io/github/workflow/status/alerque/libertinus/Fontship?label=Fontship&logo=data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTQyLjgiIGhlaWdodD0iMTA2LjgiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZmlsbC1ydWxlPSJldmVub2RkIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTEwLjEzIDBhMy4wOTQgMy4wOTQgMCAwMC0zLjA4MyAyLjgyNEwuMDE0IDgzLjIzNGEzLjA5MyAzLjA5MyAwIDAwMy4wODIgMy4zNjNoOS43MjZjLS4xMzYuNjc1LS4yNSAxLjM1Ni0uMzEgMi4wNTMtLjg2NCA5Ljg3MyA2LjcxMyAxOC4xOCAxNi42IDE4LjE4IDkuODg4IDAgMTguNDQtNy44NzUgMTkuMzEtMTcuNzUuMDc0LS44NDIuMDcxLTEuNjcuMDMtMi40ODhoNDUuNDNhMTguMDM5IDE4LjAzOSAwIDAwLS4zMTUgMi4wNTNjLS44NjUgOS44OCA2LjcxMyAxOC4xOSAxNi42MSAxOC4xOSA5Ljg5NSAwIDE4LjQ1LTcuODczIDE5LjMxLTE3Ljc1YTE3LjI4IDE3LjI4IDAgMDAtLjAyNC0zLjA3OGg2Ljk1N3YuMDAyYy41NTQuMDEyLjc5NC4wMSAxLjQ4NC4wMjcgMi4wMjcuMTA3IDMuMzMzLjE2IDMuOTIuMTYuMzIgMCAuNTM0LS4wNTMuNjQxLS4xNi4xNi0uMTA2LjI0LS4yNC4yNC0uNC4wNTMtLjIxMy4wOC0uNTU5LjA4LTEuMDM5IDAtLjUzMy0uMDUzLS44ODEtLjE2LTEuMDQxLS4xMDctLjE2LS4zNzQtLjI0LS44LS4yNGgtLjExbC44Ni05LjgxNGMxLjIxNy0xMy45Mi0zLjE1NS0yNy4zNS0xMi4xOS0zNy4yNmwtMy41NzUtMy45MTZhMi41MDYgMi41MDYgMCAwMC0xLjg1LS44MTdoLTIxLjQybDIuNDYzLTI4LjE1YTMuMDkzIDMuMDkzIDAgMDAtMy4wOC0zLjM2M3oiIGNsaXAtcnVsZT0ibm9uemVybyIgY29sb3I9IiMwMDAiIGZpbGw9IiNGRkYiIGZpbGwtcnVsZT0ibm9uemVybyIgc3Ryb2tlPSIjRkZGIiBzdHlsZT0iZm9udC1mZWF0dXJlLXNldHRpbmdzOm5vcm1hbDtmb250LXZhcmlhbnQtYWx0ZXJuYXRlczpub3JtYWw7Zm9udC12YXJpYW50LWNhcHM6bm9ybWFsO2ZvbnQtdmFyaWFudC1lYXN0LWFzaWFuOm5vcm1hbDtmb250LXZhcmlhbnQtbGlnYXR1cmVzOm5vcm1hbDtmb250LXZhcmlhbnQtbnVtZXJpYzpub3JtYWw7Zm9udC12YXJpYW50LXBvc2l0aW9uOm5vcm1hbDtmb250LXZhcmlhdGlvbi1zZXR0aW5nczpub3JtYWw7aW5saW5lLXNpemU6MDtpc29sYXRpb246YXV0bzttaXgtYmxlbmQtbW9kZTpub3JtYWw7c2hhcGUtbWFyZ2luOjA7c2hhcGUtcGFkZGluZzowO3RleHQtZGVjb3JhdGlvbi1jb2xvcjojMDAwO3RleHQtZGVjb3JhdGlvbi1saW5lOm5vbmU7dGV4dC1kZWNvcmF0aW9uLXN0eWxlOnNvbGlkO3RleHQtaW5kZW50OjA7dGV4dC1vcmllbnRhdGlvbjptaXhlZDt0ZXh0LXRyYW5zZm9ybTpub25lO3doaXRlLXNwYWNlOm5vcm1hbCIvPjxwYXRoIGQ9Ik0xMi45NiA2LjE4NmwtNi40OTQgNzQuMjNoODYuNThsNi40OTQtNzQuMjN6IiBmaWxsPSIjRkZGIiBzdHJva2U9IiNGRkYiLz48L3N2Zz4=)](https://github.com/alerque/libertinus/actions?workflow=Fontship)
+[![Fontship Build Status](https://img.shields.io/github/actions/workflow/status/alerque/libertinus/fontship.yml?branch=master&label=Fontship&logo=data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTQyLjgiIGhlaWdodD0iMTA2LjgiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZmlsbC1ydWxlPSJldmVub2RkIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTEwLjEzIDBhMy4wOTQgMy4wOTQgMCAwMC0zLjA4MyAyLjgyNEwuMDE0IDgzLjIzNGEzLjA5MyAzLjA5MyAwIDAwMy4wODIgMy4zNjNoOS43MjZjLS4xMzYuNjc1LS4yNSAxLjM1Ni0uMzEgMi4wNTMtLjg2NCA5Ljg3MyA2LjcxMyAxOC4xOCAxNi42IDE4LjE4IDkuODg4IDAgMTguNDQtNy44NzUgMTkuMzEtMTcuNzUuMDc0LS44NDIuMDcxLTEuNjcuMDMtMi40ODhoNDUuNDNhMTguMDM5IDE4LjAzOSAwIDAwLS4zMTUgMi4wNTNjLS44NjUgOS44OCA2LjcxMyAxOC4xOSAxNi42MSAxOC4xOSA5Ljg5NSAwIDE4LjQ1LTcuODczIDE5LjMxLTE3Ljc1YTE3LjI4IDE3LjI4IDAgMDAtLjAyNC0zLjA3OGg2Ljk1N3YuMDAyYy41NTQuMDEyLjc5NC4wMSAxLjQ4NC4wMjcgMi4wMjcuMTA3IDMuMzMzLjE2IDMuOTIuMTYuMzIgMCAuNTM0LS4wNTMuNjQxLS4xNi4xNi0uMTA2LjI0LS4yNC4yNC0uNC4wNTMtLjIxMy4wOC0uNTU5LjA4LTEuMDM5IDAtLjUzMy0uMDUzLS44ODEtLjE2LTEuMDQxLS4xMDctLjE2LS4zNzQtLjI0LS44LS4yNGgtLjExbC44Ni05LjgxNGMxLjIxNy0xMy45Mi0zLjE1NS0yNy4zNS0xMi4xOS0zNy4yNmwtMy41NzUtMy45MTZhMi41MDYgMi41MDYgMCAwMC0xLjg1LS44MTdoLTIxLjQybDIuNDYzLTI4LjE1YTMuMDkzIDMuMDkzIDAgMDAtMy4wOC0zLjM2M3oiIGNsaXAtcnVsZT0ibm9uemVybyIgY29sb3I9IiMwMDAiIGZpbGw9IiNGRkYiIGZpbGwtcnVsZT0ibm9uemVybyIgc3Ryb2tlPSIjRkZGIiBzdHlsZT0iZm9udC1mZWF0dXJlLXNldHRpbmdzOm5vcm1hbDtmb250LXZhcmlhbnQtYWx0ZXJuYXRlczpub3JtYWw7Zm9udC12YXJpYW50LWNhcHM6bm9ybWFsO2ZvbnQtdmFyaWFudC1lYXN0LWFzaWFuOm5vcm1hbDtmb250LXZhcmlhbnQtbGlnYXR1cmVzOm5vcm1hbDtmb250LXZhcmlhbnQtbnVtZXJpYzpub3JtYWw7Zm9udC12YXJpYW50LXBvc2l0aW9uOm5vcm1hbDtmb250LXZhcmlhdGlvbi1zZXR0aW5nczpub3JtYWw7aW5saW5lLXNpemU6MDtpc29sYXRpb246YXV0bzttaXgtYmxlbmQtbW9kZTpub3JtYWw7c2hhcGUtbWFyZ2luOjA7c2hhcGUtcGFkZGluZzowO3RleHQtZGVjb3JhdGlvbi1jb2xvcjojMDAwO3RleHQtZGVjb3JhdGlvbi1saW5lOm5vbmU7dGV4dC1kZWNvcmF0aW9uLXN0eWxlOnNvbGlkO3RleHQtaW5kZW50OjA7dGV4dC1vcmllbnRhdGlvbjptaXhlZDt0ZXh0LXRyYW5zZm9ybTpub25lO3doaXRlLXNwYWNlOm5vcm1hbCIvPjxwYXRoIGQ9Ik0xMi45NiA2LjE4NmwtNi40OTQgNzQuMjNoODYuNThsNi40OTQtNzQuMjN6IiBmaWxsPSIjRkZGIiBzdHJva2U9IiNGRkYiLz48L3N2Zz4=)](https://github.com/alerque/libertinus/actions?workflow=Fontship)
![Sample of Libertinus Font Faces](preview.svg)
diff --git a/fonts/libertinus-fonts/documentation/Sample.pdf b/fonts/libertinus-fonts/documentation/Sample.pdf
index 89690aa2be..1d0371b23b 100644
--- a/fonts/libertinus-fonts/documentation/Sample.pdf
+++ b/fonts/libertinus-fonts/documentation/Sample.pdf
Binary files differ
diff --git a/fonts/libertinus-fonts/documentation/preview.pdf b/fonts/libertinus-fonts/documentation/preview.pdf
deleted file mode 100644
index 980e3cd731..0000000000
--- a/fonts/libertinus-fonts/documentation/preview.pdf
+++ /dev/null
Binary files differ
diff --git a/fonts/libertinus-fonts/otf/LibertinusKeyboard-Regular.otf b/fonts/libertinus-fonts/otf/LibertinusKeyboard-Regular.otf
index f3db274d7f..56d94b110a 100644
--- a/fonts/libertinus-fonts/otf/LibertinusKeyboard-Regular.otf
+++ b/fonts/libertinus-fonts/otf/LibertinusKeyboard-Regular.otf
Binary files differ
diff --git a/fonts/libertinus-fonts/otf/LibertinusMath-Regular.otf b/fonts/libertinus-fonts/otf/LibertinusMath-Regular.otf
index 8e32720df0..397144f190 100644
--- a/fonts/libertinus-fonts/otf/LibertinusMath-Regular.otf
+++ b/fonts/libertinus-fonts/otf/LibertinusMath-Regular.otf
Binary files differ
diff --git a/fonts/libertinus-fonts/otf/LibertinusMono-Regular.otf b/fonts/libertinus-fonts/otf/LibertinusMono-Regular.otf
index f4a7c2ad6c..3482354bec 100644
--- a/fonts/libertinus-fonts/otf/LibertinusMono-Regular.otf
+++ b/fonts/libertinus-fonts/otf/LibertinusMono-Regular.otf
Binary files differ
diff --git a/fonts/libertinus-fonts/otf/LibertinusSans-Bold.otf b/fonts/libertinus-fonts/otf/LibertinusSans-Bold.otf
index f31b680e2f..facc80ed9b 100644
--- a/fonts/libertinus-fonts/otf/LibertinusSans-Bold.otf
+++ b/fonts/libertinus-fonts/otf/LibertinusSans-Bold.otf
Binary files differ
diff --git a/fonts/libertinus-fonts/otf/LibertinusSans-Italic.otf b/fonts/libertinus-fonts/otf/LibertinusSans-Italic.otf
index 145ad03888..bbd602a37c 100644
--- a/fonts/libertinus-fonts/otf/LibertinusSans-Italic.otf
+++ b/fonts/libertinus-fonts/otf/LibertinusSans-Italic.otf
Binary files differ
diff --git a/fonts/libertinus-fonts/otf/LibertinusSans-Regular.otf b/fonts/libertinus-fonts/otf/LibertinusSans-Regular.otf
index b7b64340b7..f0afa096ab 100644
--- a/fonts/libertinus-fonts/otf/LibertinusSans-Regular.otf
+++ b/fonts/libertinus-fonts/otf/LibertinusSans-Regular.otf
Binary files differ
diff --git a/fonts/libertinus-fonts/otf/LibertinusSerif-Bold.otf b/fonts/libertinus-fonts/otf/LibertinusSerif-Bold.otf
index 4e2d9b8232..3ab7ed7167 100644
--- a/fonts/libertinus-fonts/otf/LibertinusSerif-Bold.otf
+++ b/fonts/libertinus-fonts/otf/LibertinusSerif-Bold.otf
Binary files differ
diff --git a/fonts/libertinus-fonts/otf/LibertinusSerif-BoldItalic.otf b/fonts/libertinus-fonts/otf/LibertinusSerif-BoldItalic.otf
index 7187f1d4e5..07fe49f281 100644
--- a/fonts/libertinus-fonts/otf/LibertinusSerif-BoldItalic.otf
+++ b/fonts/libertinus-fonts/otf/LibertinusSerif-BoldItalic.otf
Binary files differ
diff --git a/fonts/libertinus-fonts/otf/LibertinusSerif-Italic.otf b/fonts/libertinus-fonts/otf/LibertinusSerif-Italic.otf
index 401e80b78d..2a73d29ff9 100644
--- a/fonts/libertinus-fonts/otf/LibertinusSerif-Italic.otf
+++ b/fonts/libertinus-fonts/otf/LibertinusSerif-Italic.otf
Binary files differ
diff --git a/fonts/libertinus-fonts/otf/LibertinusSerif-Regular.otf b/fonts/libertinus-fonts/otf/LibertinusSerif-Regular.otf
index 70a08cd2c4..11328f58fe 100644
--- a/fonts/libertinus-fonts/otf/LibertinusSerif-Regular.otf
+++ b/fonts/libertinus-fonts/otf/LibertinusSerif-Regular.otf
Binary files differ
diff --git a/fonts/libertinus-fonts/otf/LibertinusSerif-Semibold.otf b/fonts/libertinus-fonts/otf/LibertinusSerif-Semibold.otf
index c6f330ae62..232e4e56cd 100644
--- a/fonts/libertinus-fonts/otf/LibertinusSerif-Semibold.otf
+++ b/fonts/libertinus-fonts/otf/LibertinusSerif-Semibold.otf
Binary files differ
diff --git a/fonts/libertinus-fonts/otf/LibertinusSerif-SemiboldItalic.otf b/fonts/libertinus-fonts/otf/LibertinusSerif-SemiboldItalic.otf
index 626825c1dc..c471d4407c 100644
--- a/fonts/libertinus-fonts/otf/LibertinusSerif-SemiboldItalic.otf
+++ b/fonts/libertinus-fonts/otf/LibertinusSerif-SemiboldItalic.otf
Binary files differ
diff --git a/fonts/libertinus-fonts/otf/LibertinusSerifDisplay-Regular.otf b/fonts/libertinus-fonts/otf/LibertinusSerifDisplay-Regular.otf
index 947e10ae12..1f62ee408a 100644
--- a/fonts/libertinus-fonts/otf/LibertinusSerifDisplay-Regular.otf
+++ b/fonts/libertinus-fonts/otf/LibertinusSerifDisplay-Regular.otf
Binary files differ
diff --git a/fonts/libertinus-fonts/otf/LibertinusSerifInitials-Regular.otf b/fonts/libertinus-fonts/otf/LibertinusSerifInitials-Regular.otf
index 128ef1b568..680fbff13b 100644
--- a/fonts/libertinus-fonts/otf/LibertinusSerifInitials-Regular.otf
+++ b/fonts/libertinus-fonts/otf/LibertinusSerifInitials-Regular.otf
Binary files differ
diff --git a/fonts/libertinus-fonts/preview.svg b/fonts/libertinus-fonts/preview.svg
index ef55ac6f1c..4c5956181b 100644
--- a/fonts/libertinus-fonts/preview.svg
+++ b/fonts/libertinus-fonts/preview.svg
@@ -176,7 +176,7 @@
<symbol id="font_2_46">
<path d="M .34300003 .099 C .30800004 .063 .275 .037 .22000003 .037 C .18600002 .037 .136 .057000005 .106000009 .106 C .08700001 .13700001 .076000008 .18500002 .076000008 .24000001 L .344 .24400002 C .35500003 .24400002 .36200003 .25100003 .36200003 .261 C .36200003 .34100003 .32900004 .42900003 .19600001 .42900003 C .106000009 .42900003 0 .34800003 0 .20300001 C 0 .15 .014000002 .097 .045000007 .061000006 C .07700001 .023000002 .127 0 .19600001 0 C .268 0 .32500003 .033000005 .36300005 .083000008 C .36 .093 .35400004 .098000008 .34300003 .099 M .07900001 .269 C .097 .377 .16000001 .40600003 .19600001 .40600003 C .24200002 .40600003 .286 .367 .286 .287 C .286 .278 .282 .274 .272 .274 L .07900001 .269 Z "/>
</symbol>
-<symbol id="font_2_8aa">
+<symbol id="font_2_8a8">
<path d="M .509 .099000018 C .387 .14700002 .283 .14700002 .254 .14700002 C .244 .14700002 .23300003 .14600002 .22400002 .14500001 C .22700002 .14700002 .23100002 .15 .23400001 .15200001 C .275 .18100003 .321 .20600002 .354 .21500002 C .444 .22600001 .515 .27 .563 .33800004 C .60300007 .39500005 .623 .467 .623 .55100008 C .623 .758 .48300005 .88000008 .304 .88000008 C .20500002 .88000008 .12100001 .833 .066 .758 C .022 .698 0 .619 0 .532 C 0 .35000003 .119 .23100002 .271 .21400002 C .24800001 .20400001 .22600003 .19300002 .20600002 .17800002 C .16100002 .14600002 .12400001 .107000019 .096 .069000009 L .134 .050000013 C .143 .06300001 .15300001 .076000008 .164 .088000018 C .18200001 .10200001 .202 .107000019 .21000001 .107000019 C .276 .107000019 .33200003 .08900002 .444 .043000014 C .51600006 .013000011 .584 0 .66400006 0 C .763 0 .859 .03500001 .919 .091000009 L .90300008 .10800001 C .84000006 .073000017 .764 .052000017 .716 .052000017 C .644 .052000017 .595 .066000018 .509 .099000018 M .291 .856 C .423 .856 .533 .734 .533 .532 C .533 .35300005 .444 .23600002 .33 .23600002 C .20800002 .23600002 .09 .35700003 .09 .549 C .09 .759 .20000002 .856 .291 .856 Z "/>
</symbol>
<symbol id="font_2_56">
@@ -251,7 +251,7 @@
<use xlink:href="#font_2_35" transform="matrix(27.673888,0,0,-27.673888,20.124678,64.47174)"/>
<use xlink:href="#font_2_49" transform="matrix(27.673888,0,0,-27.673888,38.02969,64.47174)"/>
<use xlink:href="#font_2_46" transform="matrix(27.673888,0,0,-27.673888,52.669179,64.610118)"/>
-<use xlink:href="#font_2_8aa" transform="matrix(27.673888,0,0,-27.673888,71.65347,70.476978)"/>
+<use xlink:href="#font_2_8a8" transform="matrix(27.673888,0,0,-27.673888,71.65347,70.476978)"/>
<use xlink:href="#font_2_56" transform="matrix(27.673888,0,0,-27.673888,90.41636,64.69314)"/>
<use xlink:href="#font_2_4a" transform="matrix(27.673888,0,0,-27.673888,104.61307,64.47174)"/>
<use xlink:href="#font_2_44" transform="matrix(27.673888,0,0,-27.673888,112.27873,64.610118)"/>
@@ -472,7 +472,7 @@
<symbol id="font_4_46">
<path d="M .363 .119 C .326 .074 .289 .056000007 .25100003 .056000007 C .17300001 .056000007 .115 .13100001 .115 .22900002 L .115 .255 L .358 .255 C .382 .255 .397 .262 .397 .276 C .397 .361 .36200003 .45400004 .215 .45400004 C .11000001 .45400004 0 .361 0 .20800002 C 0 .098000008 .060000004 0 .21200001 0 C .28100003 0 .351 .023000002 .388 .098000008 L .363 .119 M .12000001 .29500003 C .134 .397 .19300002 .412 .21400002 .412 C .241 .412 .282 .386 .282 .306 C .282 .3 .282 .297 .28 .29500003 L .12000001 .29500003 Z "/>
</symbol>
-<symbol id="font_4_84f">
+<symbol id="font_4_84d">
<path d="M .34100003 .18300002 C .335 .184 .32900004 .184 .323 .185 L .32700003 .185 C .52900007 .185 .657 .324 .657 .52400007 C .657 .723 .503 .85300007 .326 .85300007 C .136 .85300007 0 .702 0 .50600007 C 0 .321 .126 .202 .291 .187 L .254 .155 C .231 .15100001 .164 .125 .13700001 .079 C .14700002 .074 .16600001 .060000004 .17600002 .055000009 C .19600001 .101 .24100003 .112 .256 .112 C .29000003 .112 .418 .086 .55 .038000004 C .638 .0059999974 .72700008 0 .81000009 0 C .91400006 0 1.016 .039000006 1.0780001 .097 L 1.0610001 .12100001 C .99500009 .084 .915 .066 .86500009 .066 C .78900006 .066 .68700006 .082 .595 .111 C .495 .143 .40800003 .157 .31800003 .16100002 C .321 .17 .33100004 .18300002 .34100003 .18300002 M .314 .81200006 C .42700003 .81200006 .52500006 .708 .52500006 .505 C .52500006 .33100004 .448 .22600001 .347 .22600001 C .229 .22600001 .13100001 .335 .13100001 .523 C .13100001 .727 .229 .81200006 .314 .81200006 Z "/>
</symbol>
<symbol id="font_4_56">
@@ -547,7 +547,7 @@
<use xlink:href="#font_4_35" transform="matrix(27.673888,0,0,-27.673888,20.263049,130.80815)"/>
<use xlink:href="#font_4_49" transform="matrix(27.673888,0,0,-27.673888,36.95041,130.80815)"/>
<use xlink:href="#font_4_46" transform="matrix(27.673888,0,0,-27.673888,52.724527,131.02954)"/>
-<use xlink:href="#font_4_84f" transform="matrix(27.673888,0,0,-27.673888,72.456,136.14922)"/>
+<use xlink:href="#font_4_84d" transform="matrix(27.673888,0,0,-27.673888,72.456,136.14922)"/>
<use xlink:href="#font_4_56" transform="matrix(27.673888,0,0,-27.673888,92.29818,131.0849)"/>
<use xlink:href="#font_4_4a" transform="matrix(27.673888,0,0,-27.673888,107.823238,130.80815)"/>
<use xlink:href="#font_4_44" transform="matrix(27.673888,0,0,-27.673888,115.79331,131.02954)"/>
@@ -903,7 +903,7 @@
<symbol id="font_7_46">
<path d="M .13 .20900002 C .256 .23600002 .32800005 .26500003 .36200003 .298 C .39300005 .327 .39300005 .361 .39300005 .379 C .39300005 .414 .35200004 .449 .27100004 .449 C .077 .449 0 .279 0 .15200001 C 0 .067 .026 0 .146 0 C .21300003 0 .291 .033000005 .35000003 .109000008 C .34500004 .120000008 .33 .134 .31800003 .134 C .261 .076 .23000002 .060000004 .18200001 .060000004 C .143 .060000004 .12900001 .108 .12900001 .17500001 C .12900001 .18 .12900001 .20100002 .13 .20900002 M .28000004 .38 C .28000004 .29 .19000003 .256 .137 .24700003 C .171 .388 .20900002 .40800003 .24800003 .40800003 C .26900003 .40800003 .28000004 .4 .28000004 .38 Z "/>
</symbol>
-<symbol id="font_7_66e">
+<symbol id="font_7_671">
<path d="M .432 .13700001 C .32700003 .17600002 .254 .16500002 .215 .16000001 C .206 .15800002 .19800002 .157 .19300002 .157 C .183 .157 .174 .157 .16499999 .15600002 C .16800002 .15800002 .171 .16000001 .174 .16200002 C .21400002 .18900001 .255 .20800002 .28800003 .21900001 C .498 .23300001 .65200009 .41300003 .65200009 .632 C .65200009 .788 .544 .88600006 .391 .88600006 C .29500003 .88600006 .20300001 .84300008 .134 .77400007 C .062 .702 .003000006 .59800007 .003000006 .46900005 C .003000006 .33400003 .08800001 .24600002 .20199999 .22400002 C .17500001 .21200001 .14900002 .19900002 .12800002 .18500002 C .078 .15100001 .035000005 .127 0 .08700001 L .06000001 .050000013 C .072000008 .06400001 .084000017 .07800001 .09600001 .09200001 C .115 .10700001 .13300002 .11300001 .141 .11300001 C .20500002 .11300001 .26500003 .096000019 .365 .048000009 C .428 .017000005 .50500008 0 .58300009 0 C .68000009 0 .78200009 .039000006 .85200008 .098000008 L .8370001 .12200001 C .76800009 .08500001 .6930001 .074 .6470001 .074 C .57600006 .074 .51100006 .10800001 .432 .13700001 M .37100003 .8440001 C .452 .8440001 .507 .778 .507 .651 C .507 .444 .409 .26000003 .289 .26000003 C .204 .26000003 .148 .33 .148 .45400004 C .148 .559 .187 .67800006 .22100002 .737 C .264 .81200006 .31800003 .8440001 .37100003 .8440001 Z "/>
</symbol>
<symbol id="font_7_56">
@@ -978,7 +978,7 @@
<use xlink:href="#font_7_35" transform="matrix(27.673888,0,0,-27.673888,22.83672,230.43315)"/>
<use xlink:href="#font_7_49" transform="matrix(27.673888,0,0,-27.673888,39.85617,230.65454)"/>
<use xlink:href="#font_7_46" transform="matrix(27.673888,0,0,-27.673888,56.239107,230.65454)"/>
-<use xlink:href="#font_7_66e" transform="matrix(27.673888,0,0,-27.673888,75.05734,236.68746)"/>
+<use xlink:href="#font_7_671" transform="matrix(27.673888,0,0,-27.673888,75.05734,236.68746)"/>
<use xlink:href="#font_7_56" transform="matrix(27.673888,0,0,-27.673888,94.45675,230.65454)"/>
<use xlink:href="#font_7_4a" transform="matrix(27.673888,0,0,-27.673888,113.053607,230.65454)"/>
<use xlink:href="#font_7_44" transform="matrix(27.673888,0,0,-27.673888,121.16205,230.65454)"/>
@@ -1120,37 +1120,37 @@
<use xlink:href="#font_8_49" transform="matrix(27.673888,0,0,-27.673888,37.22715,263.66914)"/>
<use xlink:href="#font_8_46" transform="matrix(27.673888,0,0,-27.673888,51.11944,263.86286)"/>
<use xlink:href="#font_8_87e" transform="matrix(27.673888,0,0,-27.673888,71.04463,268.5674)"/>
-<use xlink:href="#font_8_56" transform="matrix(27.673888,0,0,-27.673888,91.24657,263.86286)"/>
-<use xlink:href="#font_8_4a" transform="matrix(27.673888,0,0,-27.673888,106.27348,263.66914)"/>
-<use xlink:href="#font_8_44" transform="matrix(27.673888,0,0,-27.673888,112.30639,263.86286)"/>
-<use xlink:href="#font_8_4c" transform="matrix(27.673888,0,0,-27.673888,125.36846,263.66914)"/>
-<use xlink:href="#font_8_23" transform="matrix(27.673888,0,0,-27.673888,146.56667,263.66914)"/>
-<use xlink:href="#font_8_53" transform="matrix(27.673888,0,0,-27.673888,163.171,263.66914)"/>
-<use xlink:href="#font_8_50" transform="matrix(27.673888,0,0,-27.673888,171.69455,263.86286)"/>
-<use xlink:href="#font_8_58" transform="matrix(27.673888,0,0,-27.673888,184.83966,263.6968)"/>
-<use xlink:href="#font_8_4f" transform="matrix(27.673888,0,0,-27.673888,206.31459,263.66914)"/>
-<use xlink:href="#font_8_27" transform="matrix(27.673888,0,0,-27.673888,228.6751,263.66914)"/>
-<use xlink:href="#font_8_50" transform="matrix(27.673888,0,0,-27.673888,241.073,263.86286)"/>
-<use xlink:href="#font_8_59" transform="matrix(27.673888,0,0,-27.673888,254.35646,263.66914)"/>
-<use xlink:href="#font_8_2b" transform="matrix(27.673888,0,0,-27.673888,272.04005,268.34605)"/>
-<use xlink:href="#font_8_56" transform="matrix(27.673888,0,0,-27.673888,284.07823,263.86286)"/>
-<use xlink:href="#font_8_4e" transform="matrix(27.673888,0,0,-27.673888,298.91145,263.66914)"/>
-<use xlink:href="#font_8_51" transform="matrix(27.673888,0,0,-27.673888,321.24427,270.08949)"/>
-<use xlink:href="#font_8_54" transform="matrix(27.673888,0,0,-27.673888,334.61073,263.86286)"/>
-<use xlink:href="#font_8_30" transform="matrix(27.673888,0,0,-27.673888,353.0139,263.86286)"/>
-<use xlink:href="#font_8_57" transform="matrix(27.673888,0,0,-27.673888,372.91139,263.66914)"/>
-<use xlink:href="#font_8_46" transform="matrix(27.673888,0,0,-27.673888,385.9181,263.86286)"/>
-<use xlink:href="#font_8_53" transform="matrix(27.673888,0,0,-27.673888,399.672,263.66914)"/>
-<use xlink:href="#font_8_35" transform="matrix(27.673888,0,0,-27.673888,414.64356,263.66914)"/>
-<use xlink:href="#font_8_49" transform="matrix(27.673888,0,0,-27.673888,431.41395,263.66914)"/>
-<use xlink:href="#font_8_46" transform="matrix(27.673888,0,0,-27.673888,445.30628,263.86286)"/>
-<use xlink:href="#font_8_2d" transform="matrix(27.673888,0,0,-27.673888,466.44914,263.66914)"/>
-<use xlink:href="#font_8_42" transform="matrix(27.673888,0,0,-27.673888,479.31748,263.86286)"/>
-<use xlink:href="#font_8_5b" transform="matrix(27.673888,0,0,-27.673888,491.93675,263.66914)"/>
-<use xlink:href="#font_8_5a" transform="matrix(27.673888,0,0,-27.673888,503.67048,270.14485)"/>
-<use xlink:href="#font_8_25" transform="matrix(27.673888,0,0,-27.673888,526.41836,263.66914)"/>
-<use xlink:href="#font_8_50" transform="matrix(27.673888,0,0,-27.673888,544.51718,263.86286)"/>
-<use xlink:href="#font_8_48" transform="matrix(27.673888,0,0,-27.673888,558.18807,270.14485)"/>
+<use xlink:href="#font_8_56" transform="matrix(27.673888,0,0,-27.673888,92.159809,263.86286)"/>
+<use xlink:href="#font_8_4a" transform="matrix(27.673888,0,0,-27.673888,107.18672,263.66914)"/>
+<use xlink:href="#font_8_44" transform="matrix(27.673888,0,0,-27.673888,113.21963,263.86286)"/>
+<use xlink:href="#font_8_4c" transform="matrix(27.673888,0,0,-27.673888,126.2817,263.66914)"/>
+<use xlink:href="#font_8_23" transform="matrix(27.673888,0,0,-27.673888,147.4799,263.66914)"/>
+<use xlink:href="#font_8_53" transform="matrix(27.673888,0,0,-27.673888,164.08425,263.66914)"/>
+<use xlink:href="#font_8_50" transform="matrix(27.673888,0,0,-27.673888,172.60779,263.86286)"/>
+<use xlink:href="#font_8_58" transform="matrix(27.673888,0,0,-27.673888,185.7529,263.6968)"/>
+<use xlink:href="#font_8_4f" transform="matrix(27.673888,0,0,-27.673888,207.22783,263.66914)"/>
+<use xlink:href="#font_8_27" transform="matrix(27.673888,0,0,-27.673888,229.58834,263.66914)"/>
+<use xlink:href="#font_8_50" transform="matrix(27.673888,0,0,-27.673888,241.98624,263.86286)"/>
+<use xlink:href="#font_8_59" transform="matrix(27.673888,0,0,-27.673888,255.2697,263.66914)"/>
+<use xlink:href="#font_8_2b" transform="matrix(27.673888,0,0,-27.673888,272.9533,268.34605)"/>
+<use xlink:href="#font_8_56" transform="matrix(27.673888,0,0,-27.673888,284.9915,263.86286)"/>
+<use xlink:href="#font_8_4e" transform="matrix(27.673888,0,0,-27.673888,299.82466,263.66914)"/>
+<use xlink:href="#font_8_51" transform="matrix(27.673888,0,0,-27.673888,322.15748,270.08949)"/>
+<use xlink:href="#font_8_54" transform="matrix(27.673888,0,0,-27.673888,335.52397,263.86286)"/>
+<use xlink:href="#font_8_30" transform="matrix(27.673888,0,0,-27.673888,353.9271,263.86286)"/>
+<use xlink:href="#font_8_57" transform="matrix(27.673888,0,0,-27.673888,373.8246,263.66914)"/>
+<use xlink:href="#font_8_46" transform="matrix(27.673888,0,0,-27.673888,386.83137,263.86286)"/>
+<use xlink:href="#font_8_53" transform="matrix(27.673888,0,0,-27.673888,400.58528,263.66914)"/>
+<use xlink:href="#font_8_35" transform="matrix(27.673888,0,0,-27.673888,415.55683,263.66914)"/>
+<use xlink:href="#font_8_49" transform="matrix(27.673888,0,0,-27.673888,432.3272,263.66914)"/>
+<use xlink:href="#font_8_46" transform="matrix(27.673888,0,0,-27.673888,446.21949,263.86286)"/>
+<use xlink:href="#font_8_2d" transform="matrix(27.673888,0,0,-27.673888,467.36238,263.66914)"/>
+<use xlink:href="#font_8_42" transform="matrix(27.673888,0,0,-27.673888,480.2307,263.86286)"/>
+<use xlink:href="#font_8_5b" transform="matrix(27.673888,0,0,-27.673888,492.84999,263.66914)"/>
+<use xlink:href="#font_8_5a" transform="matrix(27.673888,0,0,-27.673888,504.5837,270.14485)"/>
+<use xlink:href="#font_8_25" transform="matrix(27.673888,0,0,-27.673888,527.3316,263.66914)"/>
+<use xlink:href="#font_8_50" transform="matrix(27.673888,0,0,-27.673888,545.4304,263.86286)"/>
+<use xlink:href="#font_8_48" transform="matrix(27.673888,0,0,-27.673888,559.10128,270.14485)"/>
<use xlink:href="#font_1_2d" transform="matrix(16.604332,0,0,-27.673888,963.2984,263.64149)"/>
<use xlink:href="#font_1_4a" transform="matrix(16.604332,0,0,-27.673888,974.4565,263.64149)"/>
<use xlink:href="#font_1_43" transform="matrix(16.604332,0,0,-27.673888,983.7217,264.0289)"/>
@@ -1175,7 +1175,7 @@
<path d="M .091000009 .21800001 C .34900005 .22800002 .36700005 .334 .36700005 .372 C .36700005 .41500003 .34000004 .449 .26600004 .449 C .089 .449 0 .279 0 .15300001 C 0 .071 .051 0 .135 0 C .219 0 .29400004 .037 .333 .092 C .328 .103 .32600004 .13000001 .324 .143 L .31700004 .14400001 C .28900004 .094000007 .22000002 .048000006 .172 .048000006 C .128 .048000006 .089 .087000008 .089 .17600002 C .089 .18500002 .091000009 .21000001 .091000009 .21800001 M .292 .374 C .292 .289 .21300002 .257 .096 .252 C .131 .387 .19500001 .41300003 .24300002 .41300003 C .277 .41300003 .292 .4 .292 .374 Z "/>
</symbol>
<symbol id="font_9_8a5">
-<path d="M .42500005 .22500001 C .44400005 .236 .46300004 .25 .48000006 .26500003 C .55200007 .329 .63 .45600004 .63 .60300007 C .63 .75100007 .536 .845 .384 .845 C .303 .845 .22600001 .814 .16300002 .76100006 C .074 .68700006 0 .566 0 .41400004 C 0 .266 .097 .177 .243 .177 C .277 .177 .30900003 .18100001 .34 .18900001 C .455 .103 .56000009 .052 .7340001 0 C .75600007 .015000001 .8000001 .038000004 .84000006 .056999998 L .8410001 .063 C .65 .088 .49500004 .16700001 .42500005 .22500001 M .361 .801 C .47 .801 .528 .74300006 .528 .62100008 C .528 .505 .484 .374 .43600003 .31 C .39200003 .252 .33600004 .22100002 .272 .22100002 C .174 .22100002 .105000007 .289 .105000007 .418 C .105000007 .55200007 .167 .683 .22 .737 C .264 .78200009 .31300003 .801 .361 .801 Z "/>
+<path d="M .33900003 .18900001 C .45400004 .103 .56000009 .052 .7340001 0 C .75600007 .015000001 .8000001 .038000004 .84000006 .056999998 L .8410001 .063 C .65 .088 .49500004 .16700001 .42500005 .22500001 C .44400005 .237 .46300004 .25 .48000006 .26500003 C .55200007 .329 .63 .45600004 .63 .60300007 C .63 .75100007 .536 .845 .384 .845 C .303 .845 .22600001 .814 .16300002 .76100006 C .074 .686 0 .566 0 .41400004 C 0 .266 .097 .177 .243 .177 C .277 .177 .30900003 .18100001 .33900003 .18900001 M .36200003 .801 C .47100006 .801 .528 .7440001 .528 .62200006 C .528 .505 .483 .374 .43600003 .31 C .39200003 .252 .33600004 .22100002 .272 .22100002 C .174 .22100002 .105000007 .28800003 .105000007 .418 C .105000007 .55200007 .167 .683 .22 .737 C .264 .78200009 .314 .801 .36200003 .801 Z "/>
</symbol>
<symbol id="font_9_56">
<path d="M .26400004 .074 L .266 .074 L .257 .010000001 C .257 .008 .259 .0070000009 .26500003 .0070000009 C .279 .009000001 .286 .010000001 .30100004 .010000001 C .31300003 .010000001 .33200003 .009000001 .344 .0070000009 L .34700004 .010000001 C .34800003 .053000004 .35500003 .127 .37100003 .202 L .38300003 .259 C .39900003 .334 .411 .386 .431 .439 L .431 .442 C .431 .442 .416 .439 .381 .439 C .34700004 .439 .33400003 .442 .33400003 .442 L .33100004 .439 C .328 .382 .319 .335 .303 .259 L .275 .12900001 C .243 .098000008 .192 .055000005 .148 .055000005 C .09900001 .055000005 .08 .071 .09900001 .16000001 L .120000008 .259 C .136 .334 .148 .386 .16800002 .439 L .16800002 .442 C .16800002 .442 .153 .439 .118 .439 C .08400001 .439 .07100001 .442 .07100001 .442 L .068 .439 C .065 .382 .05600001 .335 .040000008 .259 L .014000006 .136 C 0 .069000009 .012000002 0 .105000007 0 C .14600002 0 .19500003 .014 .26400004 .074 Z "/>
@@ -1250,37 +1250,37 @@
<use xlink:href="#font_9_49" transform="matrix(27.673888,0,0,-27.673888,36.839715,296.88026)"/>
<use xlink:href="#font_9_46" transform="matrix(27.673888,0,0,-27.673888,51.340837,297.07398)"/>
<use xlink:href="#font_9_8a5" transform="matrix(27.673888,0,0,-27.673888,70.657199,301.97227)"/>
-<use xlink:href="#font_9_56" transform="matrix(27.673888,0,0,-27.673888,89.91822,297.07398)"/>
-<use xlink:href="#font_9_4a" transform="matrix(27.673888,0,0,-27.673888,103.782848,296.88026)"/>
-<use xlink:href="#font_9_44" transform="matrix(27.673888,0,0,-27.673888,111.00572,297.07398)"/>
-<use xlink:href="#font_9_4c" transform="matrix(27.673888,0,0,-27.673888,121.660167,296.88026)"/>
-<use xlink:href="#font_9_23" transform="matrix(27.673888,0,0,-27.673888,142.0835,296.88026)"/>
-<use xlink:href="#font_9_53" transform="matrix(27.673888,0,0,-27.673888,157.85762,296.88026)"/>
-<use xlink:href="#font_9_50" transform="matrix(27.673888,0,0,-27.673888,167.34976,297.07398)"/>
-<use xlink:href="#font_9_58" transform="matrix(27.673888,0,0,-27.673888,181.71251,296.90794)"/>
-<use xlink:href="#font_9_4f" transform="matrix(27.673888,0,0,-27.673888,198.87032,296.88026)"/>
-<use xlink:href="#font_9_27" transform="matrix(27.673888,0,0,-27.673888,220.31758,296.88026)"/>
-<use xlink:href="#font_9_50" transform="matrix(27.673888,0,0,-27.673888,233.13059,297.07398)"/>
-<use xlink:href="#font_9_59" transform="matrix(27.673888,0,0,-27.673888,244.94734,296.88026)"/>
-<use xlink:href="#font_9_2b" transform="matrix(27.673888,0,0,-27.673888,261.96678,301.55717)"/>
-<use xlink:href="#font_9_56" transform="matrix(27.673888,0,0,-27.673888,275.25025,297.07398)"/>
-<use xlink:href="#font_9_4e" transform="matrix(27.673888,0,0,-27.673888,288.61674,296.88026)"/>
-<use xlink:href="#font_9_51" transform="matrix(27.673888,0,0,-27.673888,308.0438,303.3006)"/>
-<use xlink:href="#font_9_54" transform="matrix(27.673888,0,0,-27.673888,322.5726,297.07398)"/>
-<use xlink:href="#font_9_30" transform="matrix(27.673888,0,0,-27.673888,341.39085,297.07398)"/>
-<use xlink:href="#font_9_57" transform="matrix(27.673888,0,0,-27.673888,361.09468,296.88026)"/>
-<use xlink:href="#font_9_46" transform="matrix(27.673888,0,0,-27.673888,371.47236,297.07398)"/>
-<use xlink:href="#font_9_53" transform="matrix(27.673888,0,0,-27.673888,383.12306,296.88026)"/>
-<use xlink:href="#font_9_35" transform="matrix(27.673888,0,0,-27.673888,401.47087,296.88026)"/>
-<use xlink:href="#font_9_49" transform="matrix(27.673888,0,0,-27.673888,414.44993,296.88026)"/>
-<use xlink:href="#font_9_46" transform="matrix(27.673888,0,0,-27.673888,428.95103,297.07398)"/>
-<use xlink:href="#font_9_2d" transform="matrix(27.673888,0,0,-27.673888,448.12904,296.88026)"/>
-<use xlink:href="#font_9_42" transform="matrix(27.673888,0,0,-27.673888,461.21876,297.07398)"/>
-<use xlink:href="#font_9_5b" transform="matrix(27.673888,0,0,-27.673888,473.22923,296.88026)"/>
-<use xlink:href="#font_9_5a" transform="matrix(27.673888,0,0,-27.673888,485.40574,303.35597)"/>
-<use xlink:href="#font_9_25" transform="matrix(27.673888,0,0,-27.673888,507.07438,296.88026)"/>
-<use xlink:href="#font_9_50" transform="matrix(27.673888,0,0,-27.673888,525.47756,297.07398)"/>
-<use xlink:href="#font_9_48" transform="matrix(27.673888,0,0,-27.673888,537.0175,303.38365)"/>
+<use xlink:href="#font_9_56" transform="matrix(27.673888,0,0,-27.673888,90.00124,297.07398)"/>
+<use xlink:href="#font_9_4a" transform="matrix(27.673888,0,0,-27.673888,103.86587,296.88026)"/>
+<use xlink:href="#font_9_44" transform="matrix(27.673888,0,0,-27.673888,111.088748,297.07398)"/>
+<use xlink:href="#font_9_4c" transform="matrix(27.673888,0,0,-27.673888,121.74319,296.88026)"/>
+<use xlink:href="#font_9_23" transform="matrix(27.673888,0,0,-27.673888,142.16652,296.88026)"/>
+<use xlink:href="#font_9_53" transform="matrix(27.673888,0,0,-27.673888,157.94065,296.88026)"/>
+<use xlink:href="#font_9_50" transform="matrix(27.673888,0,0,-27.673888,167.43279,297.07398)"/>
+<use xlink:href="#font_9_58" transform="matrix(27.673888,0,0,-27.673888,181.79553,296.90794)"/>
+<use xlink:href="#font_9_4f" transform="matrix(27.673888,0,0,-27.673888,198.95334,296.88026)"/>
+<use xlink:href="#font_9_27" transform="matrix(27.673888,0,0,-27.673888,220.4006,296.88026)"/>
+<use xlink:href="#font_9_50" transform="matrix(27.673888,0,0,-27.673888,233.21361,297.07398)"/>
+<use xlink:href="#font_9_59" transform="matrix(27.673888,0,0,-27.673888,245.03037,296.88026)"/>
+<use xlink:href="#font_9_2b" transform="matrix(27.673888,0,0,-27.673888,262.0498,301.55717)"/>
+<use xlink:href="#font_9_56" transform="matrix(27.673888,0,0,-27.673888,275.33326,297.07398)"/>
+<use xlink:href="#font_9_4e" transform="matrix(27.673888,0,0,-27.673888,288.69978,296.88026)"/>
+<use xlink:href="#font_9_51" transform="matrix(27.673888,0,0,-27.673888,308.12684,303.3006)"/>
+<use xlink:href="#font_9_54" transform="matrix(27.673888,0,0,-27.673888,322.65565,297.07398)"/>
+<use xlink:href="#font_9_30" transform="matrix(27.673888,0,0,-27.673888,341.47389,297.07398)"/>
+<use xlink:href="#font_9_57" transform="matrix(27.673888,0,0,-27.673888,361.17768,296.88026)"/>
+<use xlink:href="#font_9_46" transform="matrix(27.673888,0,0,-27.673888,371.5554,297.07398)"/>
+<use xlink:href="#font_9_53" transform="matrix(27.673888,0,0,-27.673888,383.2061,296.88026)"/>
+<use xlink:href="#font_9_35" transform="matrix(27.673888,0,0,-27.673888,401.5539,296.88026)"/>
+<use xlink:href="#font_9_49" transform="matrix(27.673888,0,0,-27.673888,414.53297,296.88026)"/>
+<use xlink:href="#font_9_46" transform="matrix(27.673888,0,0,-27.673888,429.03407,297.07398)"/>
+<use xlink:href="#font_9_2d" transform="matrix(27.673888,0,0,-27.673888,448.21205,296.88026)"/>
+<use xlink:href="#font_9_42" transform="matrix(27.673888,0,0,-27.673888,461.3018,297.07398)"/>
+<use xlink:href="#font_9_5b" transform="matrix(27.673888,0,0,-27.673888,473.31227,296.88026)"/>
+<use xlink:href="#font_9_5a" transform="matrix(27.673888,0,0,-27.673888,485.48878,303.35597)"/>
+<use xlink:href="#font_9_25" transform="matrix(27.673888,0,0,-27.673888,507.1574,296.88026)"/>
+<use xlink:href="#font_9_50" transform="matrix(27.673888,0,0,-27.673888,525.56057,297.07398)"/>
+<use xlink:href="#font_9_48" transform="matrix(27.673888,0,0,-27.673888,537.1005,303.38365)"/>
<use xlink:href="#font_1_2d" transform="matrix(16.604332,0,0,-27.673888,888.9112,296.8526)"/>
<use xlink:href="#font_1_4a" transform="matrix(16.604332,0,0,-27.673888,900.0693,296.8526)"/>
<use xlink:href="#font_1_43" transform="matrix(16.604332,0,0,-27.673888,909.3345,297.24003)"/>
@@ -1691,68 +1691,68 @@
<symbol id="font_d_9">
<path d="M 0 .46000005 C 0 .24000001 .105000007 .083 .266 0 L .282 .027999998 C .136 .124 .082 .259 .082 .46000005 C .082 .65900006 .136 .79300007 .282 .89000007 L .266 .916 C .105000007 .834 0 .67800006 0 .46000005 Z "/>
</symbol>
-<symbol id="font_d_aaf">
+<symbol id="font_d_acc">
<path d="M .18 .319 L .21600002 .22100002 L .122 .083000008 C .111999999 .068 .101 .064 .094000007 .064 C .086 .064 .075 .066 .067 .07 C .058 .074 .048 .076 .038000004 .076 C .016 .076 0 .060000004 0 .038000004 C 0 .012000001 .035000005 0 .058 0 C .092 0 .116000007 .015000001 .16000001 .078 L .23 .17800002 L .268 .056000007 C .28100003 .016 .291 0 .32500003 0 C .36 0 .404 .019000002 .435 .071 C .43100003 .08 .42200003 .088 .411 .09 C .38500003 .057000005 .372 .049000004 .361 .049000004 C .352 .049000004 .345 .062000004 .337 .086 L .283 .24700003 L .359 .359 C .375 .382 .39900003 .386 .40600003 .386 C .414 .386 .42700003 .38300003 .43600003 .37600003 C .44300003 .37 .45900003 .366 .469 .366 C .483 .366 .50100007 .386 .50100007 .409 C .50100007 .43400003 .474 .449 .451 .449 C .40100003 .449 .368 .432 .319 .361 L .269 .289 L .24100001 .377 C .22400002 .42900003 .21300002 .449 .18800001 .449 C .165 .449 .091000009 .40800003 .056 .382 C .057000005 .37100003 .060999998 .359 .069 .351 C .081 .357 .114 .373 .135 .373 C .14800002 .373 .158 .37 .16300002 .361 C .16700001 .35300002 .17400001 .337 .18 .319 Z "/>
</symbol>
<symbol id="font_d_c">
<path d="M .25200004 .012 C .26400004 0 .29000003 0 .30200003 .012 L .30200003 .252 L .54200008 .252 C .554 .264 .554 .29 .54200008 .30200003 L .30200003 .30200003 L .30200003 .54200008 C .29000003 .554 .26400004 .554 .25200004 .54200008 L .25200004 .30200003 L .012000002 .30200003 C 0 .29 0 .264 .012000002 .252 L .25200004 .252 L .25200004 .012 Z "/>
</symbol>
-<symbol id="font_d_d2d">
+<symbol id="font_d_d4a">
<path d="M .354 .201 L .5220001 .446 C .51000007 .446 .494 .441 .48 .441 C .46600003 .441 .45000003 .446 .43600003 .446 L .35500003 .30400003 L .35500003 .314 C .35500003 .402 .333 .45400004 .26500003 .45400004 C .18 .45400004 .053999999 .39200003 .011 .208 C .003999999 .179 0 .152 0 .127 C 0 .049000004 .038000004 0 .128 0 C .19200002 0 .244 .041 .313 .14 L .312 .101 L .312 .093 C .312 .030000002 .329 0 .363 0 C .403 0 .432 .026 .46800003 .08900001 L .44500003 .098000008 C .42200003 .068 .41 .061000006 .386 .061000006 C .366 .061000006 .35300002 .08900001 .35300002 .14 L .35300002 .143 L .354 .201 M .25100003 .42000003 C .304 .42000003 .315 .358 .315 .272 C .315 .266 .314 .26000003 .314 .25300003 L .314 .23200001 L .29 .191 C .23600002 .095000009 .18300002 .034 .14100002 .034 C .095 .034 .077 .072000008 .077 .13000001 C .077 .268 .15600002 .42000003 .25100003 .42000003 Z "/>
</symbol>
<symbol id="font_d_a">
<path d="M .28200004 .46000005 C .28200004 .67800006 .177 .834 .016 .916 L 0 .89000007 C .146 .79300007 .2 .65900006 .2 .46000005 C .2 .259 .146 .124 0 .027999998 L .016 0 C .177 .083 .28200004 .24000001 .28200004 .46000005 Z "/>
</symbol>
<use xlink:href="#font_d_9" transform="matrix(27.673888,0,0,-27.673888,209.92053,523.6196)"/>
-<use xlink:href="#font_d_aaf" transform="matrix(27.673888,0,0,-27.673888,219.13404,518.41848)"/>
+<use xlink:href="#font_d_acc" transform="matrix(27.673888,0,0,-27.673888,219.13404,518.41848)"/>
<use xlink:href="#font_d_c" transform="matrix(27.673888,0,0,-27.673888,240.99642,518.6122)"/>
-<use xlink:href="#font_d_d2d" transform="matrix(27.673888,0,0,-27.673888,264.32548,518.4738)"/>
+<use xlink:href="#font_d_d4a" transform="matrix(27.673888,0,0,-27.673888,264.32548,518.4738)"/>
<use xlink:href="#font_d_a" transform="matrix(27.673888,0,0,-27.673888,280.19679,523.6196)"/>
-<symbol id="font_d_aa5">
+<symbol id="font_d_ac2">
<path d="M .344 .134 L .382 .293 C .39000003 .328 .395 .351 .395 .36900003 C .395 .42900003 .368 .449 .329 .449 C .277 .449 .23400001 .428 .142 .32 L .14100002 .321 L .14400001 .33 C .157 .367 .165 .41 .165 .425 C .165 .439 .158 .446 .14500001 .446 C .113 .446 .066 .44 .019 .433 C .012 .425 .014 .414 .020000002 .405 L .060000004 .402 C .072000008 .40100003 .078 .39200003 .078 .382 C .078 .374 .075 .359 .069 .331 L .012999998 .082 C .007999999 .062000004 0 .037 0 .027000003 C 0 .011000001 .011 0 .042999999 0 C .081 0 .08 .044000005 .089 .082 L .127 .24800001 C .19000001 .33 .24500002 .389 .28100003 .389 C .30200003 .389 .316 .384 .316 .35300002 C .316 .34100003 .31 .313 .303 .285 L .26500003 .125 C .257 .093 .24800001 .052000006 .24800001 .033000005 C .24800001 .014 .259 0 .289 0 C .337 0 .38500003 .034 .43100003 .093 C .428 .102000009 .42200003 .11 .40800003 .11 C .382 .08 .35300002 .060000004 .343 .060000004 C .336 .060000004 .333 .065000008 .333 .077 C .333 .086 .338 .108 .344 .134 Z "/>
</symbol>
-<use xlink:href="#font_d_aa5" transform="matrix(22.139166,0,0,-22.139166,289.63444,503.5853)"/>
+<use xlink:href="#font_d_ac2" transform="matrix(22.139166,0,0,-22.139166,289.63444,503.5853)"/>
<symbol id="font_d_1e">
<path d="M .012000002 .049999998 C 0 .038000004 0 .0119999949 .012000002 0 L .54200008 0 C .554 .0119999949 .554 .038000004 .54200008 .049999998 L .012000002 .049999998 M .012000002 .25 C 0 .23800002 0 .212 .012000002 .2 L .54200008 .2 C .554 .212 .554 .23800002 .54200008 .25 L .012000002 .25 Z "/>
</symbol>
<use xlink:href="#font_d_1e" transform="matrix(27.673888,0,0,-27.673888,309.9923,514.40579)"/>
-<use xlink:href="#font_d_aa5" transform="matrix(22.139166,0,0,-22.139166,347.21778,485.52699)"/>
-<symbol id="font_d_e51">
+<use xlink:href="#font_d_ac2" transform="matrix(22.139166,0,0,-22.139166,347.21778,485.52699)"/>
+<symbol id="font_d_e6e">
<path d="M .498 .651 L 0 0 L 1.0040001 0 L 1.063 .34300003 L 1.02 .34800003 C 1.017 .337 .954 .09800002 .80700007 .09800002 L .171 .09800002 L .628 .6930001 L .62900009 .694 L .24000001 1.2770001 L .78200009 1.2770001 C .90200009 1.2770001 .96500006 1.1060001 .9760001 1.067 L 1.019 1.074 L .98800006 1.353 L .031000004 1.353 L .498 .651 Z "/>
</symbol>
-<use xlink:href="#font_d_e51" transform="matrix(27.673888,0,0,-27.673888,337.27955,529.6669)"/>
-<symbol id="font_d_aa2">
+<use xlink:href="#font_d_e6e" transform="matrix(27.673888,0,0,-27.673888,337.27955,529.6669)"/>
+<symbol id="font_d_abf">
<path d="M .012999998 .082 C .007999999 .062000004 0 .037 0 .027000003 C 0 .011000001 .009 0 .041 0 C .079 0 .079 .045 .087000008 .082 L .123 .24400002 C .13100001 .24700003 .13800001 .24700003 .14500001 .24700003 C .15300001 .24700003 .16000001 .24000001 .165 .23100002 C .18300002 .19900002 .19400002 .14800002 .21400002 .103 C .24700003 .031000004 .272 0 .313 0 C .347 0 .382 .031000004 .414 .087000008 C .407 .095 .403 .1 .39200003 .1 C .372 .071 .351 .052000006 .34 .052000006 C .321 .052000006 .314 .07 .304 .09 C .276 .14500001 .263 .18400002 .24900003 .21200001 C .23300003 .24300002 .22700002 .257 .19400002 .266 L .19400002 .27 L .246 .316 C .29500003 .36 .322 .37800003 .342 .37800003 C .368 .37800003 .364 .364 .398 .364 C .412 .364 .444 .38300003 .444 .414 C .444 .442 .42200003 .449 .395 .449 C .363 .449 .30200003 .411 .23 .347 L .19000001 .313 C .17300001 .298 .15200001 .282 .13100001 .282 L .20300001 .593 C .21800001 .658 .22800002 .698 .22800002 .698 C .22800002 .70500007 .22500001 .708 .21600002 .708 C .18900001 .698 .117000009 .685 .076 .68200007 L .073 .658 C .073 .65500006 .074 .653 .078 .653 L .109000008 .651 C .122 .651 .13000001 .64500007 .13000001 .623 C .13000001 .61200007 .128 .595 .123 .573 L .012999998 .082 Z "/>
</symbol>
<symbol id="font_d_11">
<path d="M .18900001 0 C .266 0 .38300003 .078 .38300003 .313 C .38300003 .412 .35900004 .497 .315 .555 C .289 .59000006 .24700001 .62 .193 .62 C .094 .62 0 .50200006 0 .304 C 0 .19700001 .033000005 .097 .088 .042000005 C .116 .014 .15 0 .18900001 0 M .193 .58500006 C .21000001 .58500006 .22600001 .579 .238 .568 C .26900003 .542 .296 .46600003 .296 .33200003 C .296 .24000001 .293 .17700002 .279 .126 C .257 .044000005 .208 .035 .19000001 .035 C .097 .035 .087 .20600002 .087 .293 C .087 .53900006 .148 .58500006 .193 .58500006 Z "/>
</symbol>
-<use xlink:href="#font_d_aa2" transform="matrix(22.139166,0,0,-22.139166,334.75389,549.4936)"/>
+<use xlink:href="#font_d_abf" transform="matrix(22.139166,0,0,-22.139166,334.75389,549.4936)"/>
<use xlink:href="#font_d_1e" transform="matrix(22.139166,0,0,-22.139166,346.04487,546.28347)"/>
<use xlink:href="#font_d_11" transform="matrix(22.139166,0,0,-22.139166,360.21397,549.4936)"/>
-<symbol id="font_d_ee5">
+<symbol id="font_d_f02">
<path d="M 0 1.3050001 C 0 .67999997 .198 .23299998 .37 0 L .40400005 .020999909 C .24300002 .30599994 .111 .712 .111 1.303 C .111 1.893 .24500002 2.303 .40600003 2.588 L .371 2.6090003 C .198 2.374 0 1.928 0 1.3050001 Z "/>
</symbol>
-<symbol id="font_d_eed">
+<symbol id="font_d_f0a">
<path d="M .40600003 1.3050001 C .40600003 1.928 .208 2.374 .035 2.6090003 L 0 2.588 C .161 2.303 .29500003 1.893 .29500003 1.303 C .29500003 .712 .163 .30599994 .0020000004 .020999909 L .036000004 0 C .208 .23299998 .40600003 .67999997 .40600003 1.3050001 Z "/>
</symbol>
-<use xlink:href="#font_d_ee5" transform="matrix(27.673888,0,0,-27.673888,376.74354,547.0455)"/>
-<use xlink:href="#font_d_aa5" transform="matrix(27.673888,0,0,-27.673888,389.82014,502.36564)"/>
-<use xlink:href="#font_d_aa2" transform="matrix(27.673888,0,0,-27.673888,389.6396,537.7934)"/>
-<use xlink:href="#font_d_eed" transform="matrix(27.673888,0,0,-27.673888,403.5875,547.0455)"/>
-<use xlink:href="#font_d_aaf" transform="matrix(27.673888,0,0,-27.673888,417.83958,518.41848)"/>
-<use xlink:href="#font_d_aa2" transform="matrix(22.139166,0,0,-22.139166,432.70109,507.98533)"/>
-<use xlink:href="#font_d_d2d" transform="matrix(27.673888,0,0,-27.673888,444.90904,518.4738)"/>
-<symbol id="font_d_80d">
+<use xlink:href="#font_d_f02" transform="matrix(27.673888,0,0,-27.673888,376.74354,547.0455)"/>
+<use xlink:href="#font_d_ac2" transform="matrix(27.673888,0,0,-27.673888,389.82014,502.36564)"/>
+<use xlink:href="#font_d_abf" transform="matrix(27.673888,0,0,-27.673888,389.6396,537.7934)"/>
+<use xlink:href="#font_d_f0a" transform="matrix(27.673888,0,0,-27.673888,403.5875,547.0455)"/>
+<use xlink:href="#font_d_acc" transform="matrix(27.673888,0,0,-27.673888,417.83958,518.41848)"/>
+<use xlink:href="#font_d_abf" transform="matrix(22.139166,0,0,-22.139166,432.70109,507.98533)"/>
+<use xlink:href="#font_d_d4a" transform="matrix(27.673888,0,0,-27.673888,444.90904,518.4738)"/>
+<symbol id="font_d_828">
<path d="M .012000002 .050000013 C 0 .037999989 0 .0119999949 .012000002 0 L .54200008 0 C .554 .0119999949 .554 .037999989 .54200008 .050000013 L .012000002 .050000013 Z "/>
</symbol>
-<use xlink:href="#font_d_aa5" transform="matrix(22.139166,0,0,-22.139166,460.3511,507.98533)"/>
-<use xlink:href="#font_d_80d" transform="matrix(22.139166,0,0,-22.139166,471.3764,502.56123)"/>
-<use xlink:href="#font_d_aa2" transform="matrix(22.139166,0,0,-22.139166,485.12483,507.98533)"/>
+<use xlink:href="#font_d_ac2" transform="matrix(22.139166,0,0,-22.139166,460.3511,507.98533)"/>
+<use xlink:href="#font_d_828" transform="matrix(22.139166,0,0,-22.139166,471.3764,502.56123)"/>
+<use xlink:href="#font_d_abf" transform="matrix(22.139166,0,0,-22.139166,485.12483,507.98533)"/>
<symbol id="font_d_5d">
<path d="M .044 0 L .044 .917 L 0 .917 L 0 0 L .044 0 Z "/>
</symbol>
-<symbol id="font_d_ed5">
+<symbol id="font_d_ef2">
<path d="M 0 1.2670001 C .088 1.2670001 .125 1.248 .125 1.085 C .125 .90500006 .031999999 .622 .031999999 .439 C .031999999 .111 .179 0 .30300004 0 L .30300004 .038999976 C .22900002 .038999976 .127 .122999969 .127 .38700003 C .127 .61300006 .21800001 .74600008 .21800001 1.014 C .21800001 1.2210001 .14500001 1.2870001 .078999999 1.302 L .078999999 1.3080001 C .14500001 1.33 .219 1.4020001 .219 1.6330001 C .219 1.8690001 .12900001 2.0500003 .12900001 2.2270003 C .12900001 2.5030003 .22900002 2.573 .30300004 2.573 L .30300004 2.611 C .179 2.611 .034 2.5100003 .034 2.18 C .034 1.9940001 .125 1.7080001 .125 1.523 C .125 1.362 .088 1.343 0 1.342 L 0 1.2670001 Z "/>
</symbol>
<symbol id="font_d_d">
@@ -1761,73 +1761,73 @@
<symbol id="font_d_1d">
<path d="M .060000007 .28900004 L .53900006 .522 C .551 .534 .551 .566 .53900006 .578 L .009000003 .32000003 C .0030000024 .31400005 0 .29900003 0 .28900004 C 0 .28000004 .0030000024 .26400004 .009000003 .25800003 L .53900006 0 C .551 .012 .551 .044 .53900006 .056 L .060000007 .28900004 Z "/>
</symbol>
-<symbol id="font_d_85e">
+<symbol id="font_d_879">
<path d="M .49100007 .40900005 L .012000002 .176 C 0 .164 0 .132 .012000002 .120000008 L .54200008 .37800003 C .54800006 .384 .55100008 .40000005 .55100008 .40900005 C .55100008 .41900004 .54800006 .43400003 .54200008 .44 L .012000002 .698 C 0 .686 0 .654 .012000002 .642 L .49100007 .40900005 M .012000002 .05 C 0 .038 0 .0119999949 .012000002 0 L .54200008 0 C .554 .0119999949 .554 .038 .54200008 .05 L .012000002 .05 Z "/>
</symbol>
-<symbol id="font_d_802">
+<symbol id="font_d_81d">
<path d="M .31500004 0 C .411 .23400001 .561 .601 .561 .601 C .564 .60700008 .565 .61 .565 .61200007 C .565 .615 .56 .61600008 .549 .61600008 L .0040000008 .61600008 C .0010000002 .615 0 .614 0 .61200007 C 0 .61 .0010000002 .60700008 .0040000008 .601 C .0040000008 .601 .158 .23400001 .25700004 0 L .31500004 0 M .26600004 .080000009 L .053000004 .59000006 L .47100003 .59000006 L .26600004 .080000009 Z "/>
</symbol>
-<symbol id="font_d_8b3">
+<symbol id="font_d_8ce">
<path d="M 0 .054000006 C 0 .023999989 .024 0 .054 0 C .08400001 0 .10800001 .023999989 .10800001 .054000006 C .10800001 .08400001 .08400001 .107999999 .054 .107999999 C .024 .107999999 0 .08400001 0 .054000006 Z "/>
</symbol>
-<symbol id="font_d_d44">
+<symbol id="font_d_d61">
<path d="M .18300002 .252 C .122 .259 .101 .31 .101 .384 C .101 .42000003 .106 .46100004 .113 .50600007 L .142 .66400006 C .143 .67300006 .13700001 .67700007 .127 .67700007 C .097 .67700007 .076 .65500006 .0020000004 .64000007 L 0 .61 C .016 .614 .025 .615 .035000005 .615 C .049000004 .615 .072000008 .61300006 .072000008 .58800008 C .072000008 .58500006 .072000008 .582 .071 .579 L .057000005 .49800004 C .049000004 .453 .042999999 .41000004 .042999999 .37300004 C .042999999 .287 .074 .22700002 .17500001 .22500001 C .14600002 .11900001 .114 .052 .094000007 .018000007 L .101 0 L .16900002 .031000004 C .20000002 .106000009 .21800001 .21800001 .21900001 .22500001 C .315 .24400002 .389 .328 .421 .40600003 L .48600004 .56700006 C .50600007 .615 .535 .637 .56900009 .671 L .56400009 .67300006 C .54100009 .666 .52900007 .66400006 .51500007 .66400006 C .508 .66400006 .48100005 .66700008 .472 .671 C .463 .64400008 .437 .574 .423 .53900006 L .388 .45400004 C .343 .34300003 .294 .27400003 .22500001 .252 C .255 .45400004 .334 .7260001 .351 .77700009 L .404 .933 L .358 .92300006 L .329 .9250001 C .264 .587 .21900001 .38500003 .18300002 .252 Z "/>
</symbol>
-<symbol id="font_d_d46">
+<symbol id="font_d_d63">
<path d="M .256 .38000003 C .162 .38000003 .044000005 .30100004 .021 .17700002 C 0 .07000001 .067 0 .163 0 C .31800003 0 .41700004 .18000002 .44800005 .33800004 C .48000003 .49800004 .41800005 .62700006 .29400004 .62700006 C .221 .62700006 .153 .6 .147 .56700006 C .143 .55 .153 .539 .172 .539 C .19 .539 .209 .557 .223 .575 C .23 .584 .244 .595 .293 .595 C .38000003 .595 .39000003 .44600005 .37500004 .365 C .37100003 .34800003 .36800004 .335 .36400003 .32500003 C .34000004 .36300005 .30400003 .38000003 .256 .38000003 M .27100004 .34200005 C .31500004 .34200005 .34000004 .30800004 .35200004 .28900004 C .31800003 .17900002 .25300003 .033000005 .171 .033000005 C .116000007 .033000005 .08500001 .096 .095000009 .14900002 C .11400001 .24400002 .19500001 .34200005 .27100004 .34200005 Z "/>
</symbol>
<use xlink:href="#font_d_5d" transform="matrix(27.673888,0,0,-27.673888,276.92494,615.8668)"/>
-<use xlink:href="#font_d_aaf" transform="matrix(27.673888,0,0,-27.673888,280.9118,610.65176)"/>
+<use xlink:href="#font_d_acc" transform="matrix(27.673888,0,0,-27.673888,280.9118,610.65176)"/>
<use xlink:href="#font_d_5d" transform="matrix(27.673888,0,0,-27.673888,297.57215,615.8668)"/>
<use xlink:href="#font_d_1e" transform="matrix(27.673888,0,0,-27.673888,309.98954,606.63906)"/>
-<use xlink:href="#font_d_ed5" transform="matrix(27.673888,0,0,-27.673888,335.9992,639.30648)"/>
-<use xlink:href="#font_d_80d" transform="matrix(27.673888,0,0,-27.673888,347.23399,584.7217)"/>
-<use xlink:href="#font_d_aaf" transform="matrix(27.673888,0,0,-27.673888,364.41947,591.5018)"/>
+<use xlink:href="#font_d_ef2" transform="matrix(27.673888,0,0,-27.673888,335.9992,639.30648)"/>
+<use xlink:href="#font_d_828" transform="matrix(27.673888,0,0,-27.673888,347.23399,584.7217)"/>
+<use xlink:href="#font_d_acc" transform="matrix(27.673888,0,0,-27.673888,364.41947,591.5018)"/>
<use xlink:href="#font_d_d" transform="matrix(27.673888,0,0,-27.673888,380.02754,594.90567)"/>
-<use xlink:href="#font_d_aaf" transform="matrix(27.673888,0,0,-27.673888,413.15318,591.5018)"/>
+<use xlink:href="#font_d_acc" transform="matrix(27.673888,0,0,-27.673888,413.15318,591.5018)"/>
<use xlink:href="#font_d_1d" transform="matrix(27.673888,0,0,-27.673888,436.62065,592.0276)"/>
<use xlink:href="#font_d_11" transform="matrix(27.673888,0,0,-27.673888,461.94224,591.5018)"/>
-<use xlink:href="#font_d_aaf" transform="matrix(27.673888,0,0,-27.673888,364.4201,631.35177)"/>
+<use xlink:href="#font_d_acc" transform="matrix(27.673888,0,0,-27.673888,364.4201,631.35177)"/>
<use xlink:href="#font_d_d" transform="matrix(27.673888,0,0,-27.673888,380.02818,634.7556)"/>
-<use xlink:href="#font_d_aaf" transform="matrix(27.673888,0,0,-27.673888,413.1538,631.35177)"/>
-<use xlink:href="#font_d_85e" transform="matrix(27.673888,0,0,-27.673888,436.53828,633.53799)"/>
+<use xlink:href="#font_d_acc" transform="matrix(27.673888,0,0,-27.673888,413.1538,631.35177)"/>
+<use xlink:href="#font_d_879" transform="matrix(27.673888,0,0,-27.673888,436.53828,633.53799)"/>
<use xlink:href="#font_d_11" transform="matrix(27.673888,0,0,-27.673888,461.9429,631.35177)"/>
-<use xlink:href="#font_d_802" transform="matrix(27.673888,0,0,-27.673888,234.10153,695.29446)"/>
-<use xlink:href="#font_d_8b3" transform="matrix(27.673888,0,0,-27.673888,257.45829,689.5936)"/>
-<use xlink:href="#font_d_802" transform="matrix(27.673888,0,0,-27.673888,268.30647,695.29446)"/>
-<use xlink:href="#font_d_d44" transform="matrix(27.673888,0,0,-27.673888,284.6894,701.7978)"/>
+<use xlink:href="#font_d_81d" transform="matrix(27.673888,0,0,-27.673888,234.10153,695.29446)"/>
+<use xlink:href="#font_d_8ce" transform="matrix(27.673888,0,0,-27.673888,257.45829,689.5936)"/>
+<use xlink:href="#font_d_81d" transform="matrix(27.673888,0,0,-27.673888,268.30647,695.29446)"/>
+<use xlink:href="#font_d_d61" transform="matrix(27.673888,0,0,-27.673888,284.6894,701.7978)"/>
<use xlink:href="#font_d_1e" transform="matrix(27.673888,0,0,-27.673888,309.9833,691.5585)"/>
-<use xlink:href="#font_d_d46" transform="matrix(27.673888,0,0,-27.673888,337.71357,675.52108)"/>
+<use xlink:href="#font_d_d63" transform="matrix(27.673888,0,0,-27.673888,337.71357,675.52108)"/>
<symbol id="font_d_13">
<path d="M .009000003 .47000004 C .009000003 .44900004 .028000005 .43100003 .049000004 .43100003 C .06600001 .43100003 .096 .44900004 .096 .47100003 C .096 .47900004 .09400001 .485 .09200001 .492 C .09 .499 .08400001 .508 .08400001 .516 C .08400001 .541 .11 .577 .18300002 .577 C .21900003 .577 .27000005 .552 .27000005 .45600004 C .27000005 .39200003 .24700003 .34000004 .18800001 .28000004 L .11400001 .20700002 C .016000003 .107 0 .059000005 0 0 C 0 0 .051000008 .002 .083000008 .002 L .25800003 .002 C .29000003 .002 .33600004 0 .33600004 0 C .34900005 .053000004 .35900004 .128 .36 .158 C .35400004 .16300002 .34100003 .165 .33100004 .16300002 C .314 .092 .297 .067 .26100005 .067 L .083000008 .067 C .083000008 .115 .15200001 .18300002 .157 .18800001 L .25800003 .28500004 C .315 .34000004 .35800005 .38400004 .35800005 .46000005 C .35800005 .568 .27000005 .612 .18900001 .612 C .07800001 .612 .009000003 .53 .009000003 .47000004 Z "/>
</symbol>
<use xlink:href="#font_d_13" transform="matrix(22.139166,0,0,-22.139166,352.0401,664.8804)"/>
-<use xlink:href="#font_d_d44" transform="matrix(27.673888,0,0,-27.673888,363.12013,681.72006)"/>
+<use xlink:href="#font_d_d61" transform="matrix(27.673888,0,0,-27.673888,363.12013,681.72006)"/>
<path transform="matrix(2.7777777,0,0,-2.7777777,200,200.00559)" stroke-width=".6475" stroke-linecap="butt" stroke-miterlimit="10" stroke-linejoin="miter" fill="none" stroke="#000000" d="M 49.547 -175.713 L 64.591 -175.713 "/>
-<use xlink:href="#font_d_d46" transform="matrix(27.673888,0,0,-27.673888,338.6552,716.86557)"/>
-<use xlink:href="#font_d_aaf" transform="matrix(27.673888,0,0,-27.673888,352.38148,716.8379)"/>
+<use xlink:href="#font_d_d63" transform="matrix(27.673888,0,0,-27.673888,338.6552,716.86557)"/>
+<use xlink:href="#font_d_acc" transform="matrix(27.673888,0,0,-27.673888,352.38148,716.8379)"/>
<use xlink:href="#font_d_13" transform="matrix(22.139166,0,0,-22.139166,367.95124,708.02487)"/>
<use xlink:href="#font_d_c" transform="matrix(27.673888,0,0,-27.673888,390.19233,695.7649)"/>
-<use xlink:href="#font_d_d46" transform="matrix(27.673888,0,0,-27.673888,416.37745,675.52108)"/>
+<use xlink:href="#font_d_d63" transform="matrix(27.673888,0,0,-27.673888,416.37745,675.52108)"/>
<use xlink:href="#font_d_13" transform="matrix(22.139166,0,0,-22.139166,430.70124,664.8804)"/>
-<use xlink:href="#font_d_d44" transform="matrix(27.673888,0,0,-27.673888,441.78126,681.72006)"/>
+<use xlink:href="#font_d_d61" transform="matrix(27.673888,0,0,-27.673888,441.78126,681.72006)"/>
<path transform="matrix(2.7777777,0,0,-2.7777777,200,200.00559)" stroke-width=".6475" stroke-linecap="butt" stroke-miterlimit="10" stroke-linejoin="miter" fill="none" stroke="#000000" d="M 77.866 -175.713 L 92.91 -175.713 "/>
-<symbol id="font_d_ab0">
+<symbol id="font_d_acd">
<path d="M .303 .23400001 C .323 .266 .44500003 .453 .47300003 .51900008 C .488 .554 .50000008 .59000006 .50000008 .62600007 C .50000008 .65400007 .48600004 .67300006 .448 .67300006 C .419 .67300006 .40100003 .66 .40100003 .63600006 C .40100003 .63000008 .404 .62 .407 .61600008 C .42200003 .59300008 .428 .572 .428 .55600008 C .428 .512 .387 .43700005 .352 .38300003 C .352 .38300003 .301 .29900003 .275 .26200003 L .269 .26500003 C .263 .381 .256 .47500003 .22600001 .59900006 C .21200001 .652 .19900002 .67300006 .17400001 .67300006 C .15 .67300006 .077 .632 .042000005 .606 C .042999999 .595 .047 .583 .055 .57500007 C .067 .58100005 .1 .597 .12 .597 C .13300002 .597 .143 .59400007 .14800002 .58500006 C .15300001 .577 .158 .56100007 .16400002 .54300007 C .19400002 .44100005 .22500001 .19800002 .21300002 .172 C .172 .105000007 .13000001 .061000006 .116000007 .061000006 C .106 .061000006 .087000008 .074 .081 .07900001 C .074 .08500001 .053999999 .09300001 .045999998 .09300001 C .025 .09300001 0 .073 0 .04200001 C 0 .009000003 .044 0 .060999998 0 C .114 0 .19300002 .065 .25800003 .164 L .303 .23400001 Z "/>
</symbol>
-<use xlink:href="#font_d_d46" transform="matrix(27.673888,0,0,-27.673888,417.333,716.86557)"/>
-<use xlink:href="#font_d_ab0" transform="matrix(27.673888,0,0,-27.673888,431.03157,723.03689)"/>
+<use xlink:href="#font_d_d63" transform="matrix(27.673888,0,0,-27.673888,417.333,716.86557)"/>
+<use xlink:href="#font_d_acd" transform="matrix(27.673888,0,0,-27.673888,431.03157,723.03689)"/>
<use xlink:href="#font_d_13" transform="matrix(22.139166,0,0,-22.139166,446.60124,708.02487)"/>
<use xlink:href="#font_d_c" transform="matrix(27.673888,0,0,-27.673888,468.85343,695.7649)"/>
-<use xlink:href="#font_d_d46" transform="matrix(27.673888,0,0,-27.673888,495.04133,675.52108)"/>
+<use xlink:href="#font_d_d63" transform="matrix(27.673888,0,0,-27.673888,495.04133,675.52108)"/>
<use xlink:href="#font_d_13" transform="matrix(22.139166,0,0,-22.139166,509.3651,664.8804)"/>
-<use xlink:href="#font_d_d44" transform="matrix(27.673888,0,0,-27.673888,520.4451,681.72006)"/>
+<use xlink:href="#font_d_d61" transform="matrix(27.673888,0,0,-27.673888,520.4451,681.72006)"/>
<path transform="matrix(2.7777777,0,0,-2.7777777,200,200.00559)" stroke-width=".6475" stroke-linecap="butt" stroke-miterlimit="10" stroke-linejoin="miter" fill="none" stroke="#000000" d="M 106.185 -175.713 L 121.228 -175.713 "/>
-<symbol id="font_d_ab1">
+<symbol id="font_d_ace">
<path d="M .384 .45600004 C .361 .43 .34600003 .42400003 .33 .42400003 C .312 .42400003 .298 .428 .25100003 .43800003 C .20300001 .446 .17300001 .451 .14500001 .451 C .11000001 .451 .065 .386 .048 .32700003 C .055 .32000003 .064 .319 .075 .319 C .096 .365 .113 .375 .15900001 .375 C .20400001 .375 .24200003 .366 .271 .366 C .285 .366 .293 .366 .303 .368 L .062 .10300001 C .042000005 .080000009 .003999999 .033 0 .019000002 C .0030000006 .012 .007999999 .0069999999 .014 .006 C .022000002 .0029999996 .029000001 .0009999992 .037 0 C .059 .037 .084 .053000004 .094000007 .053000004 C .11100001 .053000004 .13800001 .047 .17000002 .027 C .19500001 .012 .22800002 .0019999995 .256 .0019999995 C .299 .0019999995 .33200003 .027 .379 .135 C .373 .142 .366 .145 .354 .145 C .316 .08400001 .287 .079 .259 .079 C .20800002 .079 .21400002 .11400001 .122 .11400001 C .19200002 .192 .30200003 .30400003 .358 .374 C .38300003 .404 .403 .425 .41300003 .441 L .384 .45600004 Z "/>
</symbol>
-<use xlink:href="#font_d_d46" transform="matrix(27.673888,0,0,-27.673888,497.19966,716.86557)"/>
-<use xlink:href="#font_d_ab1" transform="matrix(27.673888,0,0,-27.673888,510.89823,716.89328)"/>
+<use xlink:href="#font_d_d63" transform="matrix(27.673888,0,0,-27.673888,497.19966,716.86557)"/>
+<use xlink:href="#font_d_ace" transform="matrix(27.673888,0,0,-27.673888,510.89823,716.89328)"/>
<use xlink:href="#font_d_13" transform="matrix(22.139166,0,0,-22.139166,524.0596,708.02487)"/>
<symbol id="font_d_12">
<path d="M .19900002 .124000009 L .19900002 .47100003 C .19900002 .531 .2 .592 .202 .605 C .202 .61 .2 .61 .19600003 .61 C .141 .576 .088 .551 0 .51 C .002000004 .499 .0060000049 .48900003 .015000001 .48300005 C .061000006 .502 .083000008 .508 .10200001 .508 C .119 .508 .12200001 .48400004 .12200001 .45000003 L .12200001 .124000009 C .12200001 .041 .09500001 .036000004 .025000006 .033 C .019000002 .027 .019000002 .006 .025000006 0 C .074 .001 .110000018 .002 .16400002 .002 C .21200003 .002 .23600002 .001 .286 0 C .292 .006 .292 .027 .286 .033 C .216 .036000004 .19900002 .041 .19900002 .124000009 Z "/>
@@ -1835,81 +1835,81 @@
<use xlink:href="#font_d_1e" transform="matrix(27.673888,0,0,-27.673888,309.9895,772.8224)"/>
<use xlink:href="#font_d_12" transform="matrix(27.673888,0,0,-27.673888,372.32685,760.561)"/>
<path transform="matrix(2.7777777,0,0,-2.7777777,200,200.00559)" stroke-width=".6475" stroke-linecap="butt" stroke-miterlimit="10" stroke-linejoin="miter" fill="none" stroke="#000000" d="M 49.547 -204.969 L 77.387 -204.969 "/>
-<symbol id="font_d_aa9">
+<symbol id="font_d_ac6">
<path d="M .13200002 .29500003 L .14000002 .33 C .14900002 .36900003 .157 .404 .157 .421 C .157 .43600003 .14900002 .446 .136 .446 C .104 .446 .063 .439 .016 .433 C .009 .425 .011 .414 .016999999 .405 L .057000005 .402 C .069 .40100003 .075 .39200003 .075 .382 C .075 .373 .075 .359 .068 .331 L .012999998 .082 C .007999999 .061000006 0 .043 0 .027000003 C 0 .011000001 .009 0 .038000004 0 C .073 0 .074 .043 .084 .082 L .113 .19900002 C .16100002 .286 .21700002 .379 .24000003 .379 C .25 .379 .255 .374 .261 .367 C .268 .359 .28100003 .34600003 .29500003 .34600003 C .322 .34600003 .34 .375 .34 .402 C .34 .423 .32500003 .449 .28800003 .449 C .23800002 .449 .18 .387 .136 .294 L .13200002 .29500003 Z "/>
</symbol>
-<use xlink:href="#font_d_aa9" transform="matrix(27.673888,0,0,-27.673888,338.18403,798.1045)"/>
+<use xlink:href="#font_d_ac6" transform="matrix(27.673888,0,0,-27.673888,338.18403,798.1045)"/>
<use xlink:href="#font_d_13" transform="matrix(22.139166,0,0,-22.139166,349.29847,789.29147)"/>
<use xlink:href="#font_0_54" transform="matrix(27.673888,0,0,-27.673888,365.7672,798.1045)"/>
<use xlink:href="#font_0_4a" transform="matrix(27.673888,0,0,-27.673888,375.89588,797.8831)"/>
<use xlink:href="#font_0_4f" transform="matrix(27.673888,0,0,-27.673888,383.2848,797.8831)"/>
-<symbol id="font_d_d34">
+<symbol id="font_d_d51">
<path d="M .022000002 .356 C .0069999995 .29000003 0 .235 0 .189 C 0 .048 .064 0 .124000009 0 C .19800002 0 .333 .082 .396 .356 C .41 .418 .416 .47000004 .416 .51400008 C .416 .65800008 .351 .71000006 .294 .71000006 C .20200002 .71000006 .077 .5960001 .022000002 .356 M .328 .372 L .098000008 .372 C .128 .50100007 .20200002 .67600008 .28 .67600008 C .32500003 .67600008 .347 .61300006 .347 .52700009 C .347 .481 .34 .42700003 .328 .372 M .32 .338 C .286 .193 .20900002 .034 .13700001 .034 C .091000009 .034 .071 .09900001 .071 .183 C .071 .231 .078 .285 .09 .338 L .32 .338 Z "/>
</symbol>
-<symbol id="font_d_ef5">
+<symbol id="font_d_f12">
<path d="M .266 0 L .266 .04399997 L .095000009 .04399997 L .095000009 2.566 L .266 2.566 L .266 2.6100002 L 0 2.6100002 L 0 0 L .266 0 Z "/>
</symbol>
-<use xlink:href="#font_d_d34" transform="matrix(27.673888,0,0,-27.673888,402.8979,798.15988)"/>
-<use xlink:href="#font_d_ef5" transform="matrix(27.673888,0,0,-27.673888,421.46583,805.4787)"/>
+<use xlink:href="#font_d_d51" transform="matrix(27.673888,0,0,-27.673888,402.8979,798.15988)"/>
+<use xlink:href="#font_d_f12" transform="matrix(27.673888,0,0,-27.673888,421.46583,805.4787)"/>
<use xlink:href="#font_0_54" transform="matrix(27.673888,0,0,-27.673888,436.59498,776.8351)"/>
<use xlink:href="#font_0_4a" transform="matrix(27.673888,0,0,-27.673888,446.72364,776.6137)"/>
<use xlink:href="#font_0_4f" transform="matrix(27.673888,0,0,-27.673888,454.11256,776.6137)"/>
-<use xlink:href="#font_d_d34" transform="matrix(27.673888,0,0,-27.673888,473.72569,776.89047)"/>
-<use xlink:href="#font_d_d46" transform="matrix(27.673888,0,0,-27.673888,494.45243,760.81)"/>
+<use xlink:href="#font_d_d51" transform="matrix(27.673888,0,0,-27.673888,473.72569,776.89047)"/>
+<use xlink:href="#font_d_d63" transform="matrix(27.673888,0,0,-27.673888,494.45243,760.81)"/>
<path transform="matrix(2.7777777,0,0,-2.7777777,200,200.00559)" stroke-width=".6475" stroke-linecap="butt" stroke-miterlimit="10" stroke-linejoin="miter" fill="none" stroke="#000000" d="M 104.08 -204.969 L 112.638 -204.969 "/>
-<symbol id="font_d_ee3">
+<symbol id="font_d_f00">
<path d="M 0 1.066 C 0 .556 .17200002 .19099999 .34200005 0 L .367 .023000002 C .21100003 .254 .09800001 .58400008 .09800001 1.0630001 C .09800001 1.542 .21100003 1.8730002 .367 2.104 L .34200005 2.127 C .17300001 1.9380002 0 1.5730001 0 1.066 Z "/>
</symbol>
-<use xlink:href="#font_d_d46" transform="matrix(27.673888,0,0,-27.673888,489.19413,796.23776)"/>
-<use xlink:href="#font_d_aa9" transform="matrix(27.673888,0,0,-27.673888,502.92039,796.2101)"/>
-<use xlink:href="#font_d_ee3" transform="matrix(27.673888,0,0,-27.673888,518.5855,798.79537)"/>
-<use xlink:href="#font_d_aa9" transform="matrix(27.673888,0,0,-27.673888,530.51187,776.8351)"/>
+<use xlink:href="#font_d_d63" transform="matrix(27.673888,0,0,-27.673888,489.19413,796.23776)"/>
+<use xlink:href="#font_d_ac6" transform="matrix(27.673888,0,0,-27.673888,502.92039,796.2101)"/>
+<use xlink:href="#font_d_f00" transform="matrix(27.673888,0,0,-27.673888,518.5855,798.79537)"/>
+<use xlink:href="#font_d_ac6" transform="matrix(27.673888,0,0,-27.673888,530.51187,776.8351)"/>
<use xlink:href="#font_d_13" transform="matrix(22.139166,0,0,-22.139166,541.6262,766.2248)"/>
-<use xlink:href="#font_d_d46" transform="matrix(27.673888,0,0,-27.673888,555.558,756.785)"/>
-<use xlink:href="#font_d_d44" transform="matrix(27.673888,0,0,-27.673888,569.2566,762.98397)"/>
+<use xlink:href="#font_d_d63" transform="matrix(27.673888,0,0,-27.673888,555.558,756.785)"/>
+<use xlink:href="#font_d_d61" transform="matrix(27.673888,0,0,-27.673888,569.2566,762.98397)"/>
<path transform="matrix(2.7777777,0,0,-2.7777777,200,200.00559)" stroke-width=".6475" stroke-linecap="butt" stroke-miterlimit="10" stroke-linejoin="miter" fill="none" stroke="#000000" d="M 127.971 -204.969 L 138.81 -204.969 "/>
-<symbol id="font_d_eeb">
+<symbol id="font_d_f08">
<path d="M .367 1.066 C .367 1.5730001 .194 1.9380002 .025000003 2.127 L 0 2.104 C .156 1.8730002 .26900003 1.542 .26900003 1.0630001 C .26900003 .58400008 .156 .254 0 .023000002 L .025000003 0 C .19500001 .19099999 .367 .556 .367 1.066 Z "/>
</symbol>
-<use xlink:href="#font_d_d46" transform="matrix(27.673888,0,0,-27.673888,558.7246,796.23776)"/>
-<use xlink:href="#font_d_aa9" transform="matrix(27.673888,0,0,-27.673888,572.45089,796.2101)"/>
-<use xlink:href="#font_d_eeb" transform="matrix(27.673888,0,0,-27.673888,590.12039,798.79537)"/>
+<use xlink:href="#font_d_d63" transform="matrix(27.673888,0,0,-27.673888,558.7246,796.23776)"/>
+<use xlink:href="#font_d_ac6" transform="matrix(27.673888,0,0,-27.673888,572.45089,796.2101)"/>
+<use xlink:href="#font_d_f08" transform="matrix(27.673888,0,0,-27.673888,590.12039,798.79537)"/>
<use xlink:href="#font_d_c" transform="matrix(27.673888,0,0,-27.673888,610.10897,777.0288)"/>
-<use xlink:href="#font_d_d46" transform="matrix(27.673888,0,0,-27.673888,642.60519,760.81)"/>
+<use xlink:href="#font_d_d63" transform="matrix(27.673888,0,0,-27.673888,642.60519,760.81)"/>
<path transform="matrix(2.7777777,0,0,-2.7777777,200,200.00559)" stroke-width=".6475" stroke-linecap="butt" stroke-miterlimit="10" stroke-linejoin="miter" fill="none" stroke="#000000" d="M 157.036 -204.969 L 166.351 -204.969 "/>
-<use xlink:href="#font_d_d46" transform="matrix(27.673888,0,0,-27.673888,636.29409,796.23776)"/>
-<use xlink:href="#font_d_d34" transform="matrix(27.673888,0,0,-27.673888,650.0203,796.26547)"/>
-<use xlink:href="#font_d_ee3" transform="matrix(27.673888,0,0,-27.673888,667.78829,798.79537)"/>
+<use xlink:href="#font_d_d63" transform="matrix(27.673888,0,0,-27.673888,636.29409,796.23776)"/>
+<use xlink:href="#font_d_d51" transform="matrix(27.673888,0,0,-27.673888,650.0203,796.26547)"/>
+<use xlink:href="#font_d_f00" transform="matrix(27.673888,0,0,-27.673888,667.78829,798.79537)"/>
<use xlink:href="#font_0_54" transform="matrix(27.673888,0,0,-27.673888,685.10336,776.8351)"/>
<use xlink:href="#font_0_4a" transform="matrix(27.673888,0,0,-27.673888,695.23196,776.6137)"/>
<use xlink:href="#font_0_4f" transform="matrix(27.673888,0,0,-27.673888,702.62088,776.6137)"/>
-<use xlink:href="#font_d_d34" transform="matrix(27.673888,0,0,-27.673888,722.234,776.89047)"/>
-<use xlink:href="#font_d_d46" transform="matrix(27.673888,0,0,-27.673888,737.70248,756.785)"/>
-<use xlink:href="#font_d_d44" transform="matrix(27.673888,0,0,-27.673888,751.42868,762.98397)"/>
+<use xlink:href="#font_d_d51" transform="matrix(27.673888,0,0,-27.673888,722.234,776.89047)"/>
+<use xlink:href="#font_d_d63" transform="matrix(27.673888,0,0,-27.673888,737.70248,756.785)"/>
+<use xlink:href="#font_d_d61" transform="matrix(27.673888,0,0,-27.673888,751.42868,762.98397)"/>
<path transform="matrix(2.7777777,0,0,-2.7777777,200,200.00559)" stroke-width=".6475" stroke-linecap="butt" stroke-miterlimit="10" stroke-linejoin="miter" fill="none" stroke="#000000" d="M 193.543 -204.969 L 204.382 -204.969 "/>
-<use xlink:href="#font_d_d46" transform="matrix(27.673888,0,0,-27.673888,739.8191,796.23776)"/>
-<use xlink:href="#font_d_d34" transform="matrix(27.673888,0,0,-27.673888,753.5453,796.26547)"/>
-<use xlink:href="#font_d_eeb" transform="matrix(27.673888,0,0,-27.673888,772.2676,798.79537)"/>
+<use xlink:href="#font_d_d63" transform="matrix(27.673888,0,0,-27.673888,739.8191,796.23776)"/>
+<use xlink:href="#font_d_d51" transform="matrix(27.673888,0,0,-27.673888,753.5453,796.26547)"/>
+<use xlink:href="#font_d_f08" transform="matrix(27.673888,0,0,-27.673888,772.2676,798.79537)"/>
<use xlink:href="#font_d_c" transform="matrix(27.673888,0,0,-27.673888,792.25619,777.0288)"/>
<use xlink:href="#font_d_12" transform="matrix(27.673888,0,0,-27.673888,839.64907,760.561)"/>
<path transform="matrix(2.7777777,0,0,-2.7777777,200,200.00559)" stroke-width=".6475" stroke-linecap="butt" stroke-miterlimit="10" stroke-linejoin="miter" fill="none" stroke="#000000" d="M 222.609 -204.969 L 240.798 -204.969 "/>
<use xlink:href="#font_0_54" transform="matrix(27.673888,0,0,-27.673888,819.68667,796.2101)"/>
<use xlink:href="#font_0_4a" transform="matrix(27.673888,0,0,-27.673888,829.8153,795.9887)"/>
<use xlink:href="#font_0_4f" transform="matrix(27.673888,0,0,-27.673888,837.2042,795.9887)"/>
-<use xlink:href="#font_d_d34" transform="matrix(27.673888,0,0,-27.673888,856.8173,796.26547)"/>
-<use xlink:href="#font_d_d46" transform="matrix(27.673888,0,0,-27.673888,875.608,756.785)"/>
+<use xlink:href="#font_d_d51" transform="matrix(27.673888,0,0,-27.673888,856.8173,796.26547)"/>
+<use xlink:href="#font_d_d63" transform="matrix(27.673888,0,0,-27.673888,875.608,756.785)"/>
<use xlink:href="#font_d_13" transform="matrix(22.139166,0,0,-22.139166,889.93179,746.14706)"/>
-<use xlink:href="#font_d_d44" transform="matrix(27.673888,0,0,-27.673888,901.0118,762.98397)"/>
+<use xlink:href="#font_d_d61" transform="matrix(27.673888,0,0,-27.673888,901.0118,762.98397)"/>
<path transform="matrix(2.7777777,0,0,-2.7777777,200,200.00559)" stroke-width=".6475" stroke-linecap="butt" stroke-miterlimit="10" stroke-linejoin="miter" fill="none" stroke="#000000" d="M 243.189 -204.969 L 258.232 -204.969 "/>
-<symbol id="font_d_d42">
+<symbol id="font_d_d5f">
<path d="M .20200002 .64900007 L .19000001 .6700001 C .142 .648 .034 .56500008 .01 .462 C .003999999 .43300004 0 .407 0 .38200004 C 0 .29000003 .049000004 .23200001 .158 .22500001 C .13800001 .14000002 .12500002 .076000008 .12500002 .03400001 L .18100001 0 L .19600001 .018000007 C .19100002 .032000007 .18800001 .048000009 .18800001 .069000009 C .18800001 .103000018 .19500001 .15 .21300002 .22500001 C .275 .23100002 .437 .277 .48200003 .47200004 C .48700003 .49600003 .49000005 .51900008 .49000005 .541 C .49000005 .61600008 .45700003 .67700007 .37600003 .67700007 C .25100003 .67700007 .22400002 .50900009 .22000002 .49500004 L .165 .254 C .093 .261 .07 .30400003 .07 .36400003 C .07 .453 .109000008 .582 .20200002 .64900007 M .21800001 .25500003 L .277 .51100006 C .301 .612 .331 .638 .366 .638 C .402 .638 .417 .605 .417 .554 C .417 .458 .372 .27600003 .21800001 .25500003 Z "/>
</symbol>
-<use xlink:href="#font_d_d46" transform="matrix(27.673888,0,0,-27.673888,876.69967,798.13217)"/>
-<use xlink:href="#font_d_d42" transform="matrix(27.673888,0,0,-27.673888,890.4259,804.3311)"/>
+<use xlink:href="#font_d_d63" transform="matrix(27.673888,0,0,-27.673888,876.69967,798.13217)"/>
+<use xlink:href="#font_d_d5f" transform="matrix(27.673888,0,0,-27.673888,890.4259,804.3311)"/>
<use xlink:href="#font_d_13" transform="matrix(22.139166,0,0,-22.139166,905.6901,789.29147)"/>
-<symbol id="font_d_efd">
+<symbol id="font_d_f1a">
<path d="M .26600004 0 L .26600004 2.6100002 L 0 2.6100002 L 0 2.566 L .17100002 2.566 L .17100002 .04399997 L 0 .04399997 L 0 0 L .26600004 0 Z "/>
</symbol>
-<use xlink:href="#font_d_efd" transform="matrix(27.673888,0,0,-27.673888,922.4598,805.4787)"/>
+<use xlink:href="#font_d_f1a" transform="matrix(27.673888,0,0,-27.673888,922.4598,805.4787)"/>
</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..a7334244cd
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/MANIFEST.md
@@ -0,0 +1,301 @@
+# 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-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
+
+
+## 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.
+
+### CTAN files
+
+* MANIFEST.md
+* README.md
+* ctan.ann
+* ctan.note
+* gotham-blueprint.pdf
+* 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-layout.pdf
+* gotham-logo.pdf
+* gotham-safetybox.pdf
+* gotham-user-cmds.pdf
+* gotham.dtx
+* gotham.ins
+* gotham.pdf
+* section-Beamer.tex
+* section-Conclusion.tex
+* section-Gotham.tex
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..82fa92e641
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/README.md
@@ -0,0 +1,127 @@
+# 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/gotham"><img src="https%3A%2F%2Fctan.org%2Fjson%2F2.0%2Fpkg%2Fgotham&query=%24.version.number&logo=latex&label=CTAN"/></a>
+ <a href="https://gitlab.com/RomainNOEL/beamertheme-gotham/-/release/"><img src="https://img.shields.io/badge/Latest_Release-%{latest_tag}-blue"/></a>
+ <a href="https://gitlab.com/RomainNOEL/beamertheme-gotham/-/pipelines?page=1&scope=all&ref=main"><img src="https://gitlab.com/RomainNOEL/beamertheme-gotham/badges/main/pipeline.svg"/></a>
+ <a href="https://gitlab.com/RomainNOEL/beamertheme-gotham/-/blob/main/LICENSE.txt"><img src="https://img.shields.io/badge/License-LPPL_1.3c--Clause-blue.svg"/></a>
+ <a href="https://gitlab.com/RomainNOEL/beamertheme-gotham/-/artifacts/"><img src="https://img.shields.io/badge/Documentation-PDF_online-green"/></a>
+ <a href="https://gitlab.com/RomainNOEL/beamertheme-gotham/-/blob/main/Authors.md"><img src="https://www.repostatus.org/badges/latest/active.svg"/></a>
+</p>
+
+
+## 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 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` 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` implementation on top of the good-looking `Metropolis` theme.
+
+
+## See it in action
+Here are some screenshot of what you can obtain:
+
+<img src="support/gotham-example169transp-1.png" width="700">
+
+<img src="support/gotham-example43dark-1.png" width="700">
+
+An `pdf` example/demo result is available [here](https://gitlab.com/RomainNOEL/beamertheme-gotham/-/artifacts/), and the `tex` source file to build it is available [here](/examples/section-Gotham.tex).
+
+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="700">
+
+
+## Some of the features included
+- `l3build` a build system for LaTeX that unpack the sources, build the documentation and examples, run unit tests, check tags, prepare for CTAN publishing, etc...
+- `expl3`
+- dark, light and transparent theme
+- can adapt to 16:9 and 4:3 screen format
+- progress bar
+- **can mix** themes
+
+
+## Documentation
+The complete `pdf` documentation can be found through an [artefact](https://gitlab.com/RomainNOEL/beamertheme-gotham/-/artifacts/).
+
+
+## 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://overleaf.com) .
+
+### 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 [Overleaf project](https://overleaf.com) and have fun.
+
+
+## License
+The LaTeX Project Public License [(LPPL)](/LICENSE.txt)
+
+
+## Project status
+The status of the project is "maintained".
+However, if you have a bit of free time and good will to help the maintenance, it will be very appreciated and welcomed. \ 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..e34df0a4c6
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/ctan.ann
@@ -0,0 +1,11 @@
+# [Gotham](https://gitlab.com/RomainNOEL/beamertheme-gotham) announcement
+
+This `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.
+
+## Features
+- 16:9 and 4:3 compatible
+- supports different background color (dark and light)
+- can adapt beamertemplate to declared context
+- extend color set
+- improved progress bars
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
new file mode 100644
index 0000000000..04975af210
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-blueprint.pdf
Binary files differ
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
new file mode 100644
index 0000000000..1038810b5b
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-dev-impl.pdf
Binary files differ
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
new file mode 100644
index 0000000000..3f6105497a
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-doc.pdf
Binary files differ
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..4072ea2504
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-doc.tex
@@ -0,0 +1,1094 @@
+\documentclass{l3doc}
+ \usepackage[T1]{fontenc}
+ \usepackage{pdfpages}
+ \usepackage{standalone}
+ % \usepackage{gotham}
+ % \usepackage{readprov}
+ % \ReadPackageInfos{beamerthemegotham}
+ \edef\GothamVersion{v1.1.0.b} %{\fileversion}
+ \edef\GothamDate{2024-09-20} %{\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]{default: #1}%{\underline{#1}}
+ \newenvironment{DescribeGothamOption}[3]{
+ \DescribeOption{#1} % from l3doc
+ \begin{minipage}[t]{\textwidth}
+ \textit{\textbf{\textcolor{tSec}{#2}}}\dotfill\,\defopt{#3}\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}{standout template}
+ {gotham, <your-name>}{default}{
+ Set 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}{default}{
+ 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,
+ 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 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}
+
+
+\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}{\sectionhoffset}
+ length controlling 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.
+ \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}{\gothamHposLeftRotFooter, \gothamHposRightRotFooter, \gothamVposLeftRotFooter, \gothamVposRightRotFooter}
+ length controlling the horizontal and vertical positioning of the left and right elements of the rotated footer.
+ \end{variable}
+
+ \begin{variable}{\gothamFootlineRuleLeftPadding}
+ length controlling the horizontal space between the left border of the page and the left side of the rule.
+ \end{variable}
+
+ \begin{variable}{\gothamFootlineRuleHeight, \gothamFootlineRuleLength}
+ Dimensions controlling the height and the length of the rule used to delimit the 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{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 calc package (that can be replaced by xfp or just fp).
+ \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} license.
+
+
+\end{document}
+% EoF
+
+
+% \begin{documentation}
+% \begin{macro|function|variable}{\nameMacro}
+% \begin{syntax}
+% \cs{nameMacro}\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}
+% Description of |nameMacro| which xxx.
+% \end{macro|function|variable}
+% \end{documentation}
+%%%%
+% \begin{implementation}
+% \begin{macro|function|variable}{\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
+% \UnitTested % NOT FOR VARIABLES OF FUNCTIONS
+% \TestFiles{gotham-test-xxx} % NOT FOR VARIABLES
+% \begin{macrocode}
+
+% \end{macrocode}
+% \end{macro|function|variable}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{macro}{\nameMacro}
+% Description
+% \UnitTested
+% \TestFiles{gotham-test-048}
+% \begin{macrocode}
+
+% \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
new file mode 100644
index 0000000000..c3056abee7
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-example169transp.pdf
Binary files differ
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..71bd8cf1e9
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-example169transp.tex
@@ -0,0 +1,65 @@
+\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}
+ \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
new file mode 100644
index 0000000000..449e20c327
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-example43dark.pdf
Binary files differ
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..af6e53c6ab
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-example43dark.tex
@@ -0,0 +1,66 @@
+\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}
+ \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
new file mode 100644
index 0000000000..7ba8cef0e9
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-exampleSimple.pdf
Binary files differ
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
new file mode 100644
index 0000000000..1965c272c9
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-layout.pdf
Binary files differ
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
new file mode 100644
index 0000000000..96d82f5bf3
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-logo.pdf
Binary files differ
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
+xAJ1 =Ż@cҤ,FBTq3.Le`DB
+Iޗ 8^VYzox٥}қ7ό$dh1#=>E56CV)h|VML { 1]Ɋ7Z ީ\Z 3U!X(OĬ8<NG!Wk鬄adZ{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
new file mode 100644
index 0000000000..bbef48867e
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham-user-cmds.pdf
Binary files differ
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..969a479257
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham.dtx
@@ -0,0 +1,8842 @@
+% \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}{2024/09/20}{1.1.0.b}{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.1.0.b} %{\fileversion}
+ \edef\GothamDate{2024-09-20} %{\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]{default: #1}%{\underline{#1}}
+ % \DescribeGothamOption{optionName}{possible values}{default value}{descrption}
+ \newenvironment{DescribeGothamOption}[3]{
+ \DescribeOption{#1} % from l3doc
+ \begin{minipage}[t]{\textwidth}
+ \textit{\textbf{\textcolor{tSec}{#2}}}\dotfill\,\defopt{#3}\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}{2024/09/20}{1.1.0.b}{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}
+\newcommand{\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}
+ }{
+ % 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}
+ }{
+ % 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}
+ }{
+ % 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{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{page~number~in~head/foot}{size=\scriptsize}
+
+\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}{2024/09/20}{1.1.0.b}{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.
+}
+% \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{colorBG}{colorPale}
+\colorlet{colorFG}{colorDark}
+\colorlet{colorFrametitle}{colorA}
+\colorlet{colorStandout}{colorA}
+\colorlet{colorStandin}{colorPale}
+\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}
+ % dark
+ \setbeamercolor{palette~primary}{% reversed color compared to normal text
+ use=normal~text,
+ fg=normal~text.bg,
+ bg=normal~text.fg
+ }
+}
+% \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}
+ % light
+ \setbeamercolor{palette~primary}{
+ % reversed color compared to normal text
+ use=normal~text,
+ fg=normal~text.bg,
+ bg=normal~text.fg
+ }
+}
+% \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}
+% \newcommand{\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}
+ % like light background.
+ \setbeamercolor{palette~primary}{
+ % reversed color compared to normal text
+ use=normal~text,
+ fg=colorBG,
+ bg=normal~text.fg
+ }
+}
+% \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=palette~primary,
+ parent=palette~primary,
+ 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{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,}
+% \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}{2024/09/20}{1.1.0.b}{gotham inner theme}
+\RequirePackage{expl3}
+\RequirePackage{xparse}
+\RequirePackage{calc}
+\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}
+ \colorlet{colorFrametitle}{purple}
+ \colorlet{colorTitlepage}{purple}
+ \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, noframenumbering]{\titlepage}
+ \fi
+}
+\def\titlepage{
+ \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\usebeamertemplate*{title}\fi
+ \ifx\insertsubtitle\@empty\else\usebeamertemplate*{subtitle}\fi
+ \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.35\paperheight]{\textwidth}
+ % \vspace{\baselineskip}
+ \usebeamerfont{title}
+ \usebeamercolor[fg]{frametitle}
+ \inserttitle
+ \end{minipage}
+
+ \newline
+ \begin{minipage}[t][0.1\paperheight]{\textwidth}
+ \usebeamerfont{subtitle}
+ \usebeamercolor[fg]{frametitle}
+ \insertsubtitle
+ \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*{-1.5\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]{palette~primary}{
+ %true : empty background (transparent)
+ \setbeamercolor{background~canvas}{
+ use=palette~primary,
+ bg=palette~primary.fg
+ }
+ }{
+ %false : background not empty (dark or light)
+ \setbeamercolor{background~canvas}{
+ use=palette~primary,
+ bg=palette~primary.bg
+ }
+ }
+ \setbeamercolor{local~structure}{
+ fg=palette~primary.bg
+ }
+ \usebeamercolor[fg]{palette~primary}
+}
+% \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 ...}
+% \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 template
+ standout~template .usage:n = { general },
+ standout~template .default:n = { gotham },
+ standout~template .code:n = { \__gotham_set_prop_template:nn{background~canvas/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_prop_template:nn{background~canvas/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}
+% 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{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{implementation}
+% \begin{function}{\__gotham_inner_disable_partpage:, \__gotham_inner_enable_partpage:}
+% Commands to disable or enable the display of a 'part page' frame at the begining of every new part.
+% It replaces the |\newcommand{\gotham@disablepartpage}| and | \newcommand{\gotham@enablepartpage}|
+% \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
+ \frame[c, noframenumbering, part]{\partpage}
+ \fi
+
+ \ifbool{partContent}{
+ % true
+ \begin{frame}[noframenumbering, tocpart]
+ \frametitle{\partContentName}
+ \tableofcontents[part=\thepart]
+ \end{frame}
+ }{
+ % else empty
+ }
+ }
+}
+% \end{macrocode}
+% \end{function}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{function}{\__gotham_inner_disable_sectionpage:, \__gotham_inner_enable_sectionpage:}
+% Commands to disable or enable the display of a 'section page' frame at the begining of every new section.
+% It replaces the |\newcommand{\gotham@disablesectionpage}| and | \newcommand{\gotham@enablesectionpage}|
+% \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
+ \frame[c, noframenumbering, section]{\sectionpage}
+ \fi
+
+ \ifbool{sectionContent}{
+ % true
+ \begin{frame}[noframenumbering, tocsec]
+ \frametitle{\secContentName}
+ {\tableofcontents[currentsection, currentsubsection,
+ hideothersubsections,
+ sectionstyle=show/shaded,
+ ]
+ }
+ \end{frame}
+ }{
+ % else empty
+ }
+ }
+}
+% \end{macrocode}
+% \end{function}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{function}{\__gotham_inner_disable_subsectionpage:, \__gotham_inner_enable_subsectionpage:}
+% Commands to disable or enable the display of a 'subsection page' frame at the begining of every new subsection.
+% It replaces the |\newcommand{\gotham@disablesubsectionpage}| and | \newcommand{\gotham@enablesubsectionpage}|
+% \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
+ \frame[c, noframenumbering, subsec]{\subsectionpage}
+ \fi
+
+ \ifbool{subsectionContent}{
+ % true
+ \begin{frame}[noframenumbering, tocsubsec]
+ \frametitle{\subsecContentName}
+ {\tableofcontents[currentsection, currentsubsection,
+ %currentsubsubsection,
+ hideothersubsections,
+ sectionstyle=show/shaded,
+ subsectionstyle=show/shaded/hide,
+ subsubsectionstyle=show/show/hide,
+ ]
+ }
+ \end{frame}
+ }{
+ % else empty
+ }
+ }
+}
+% \end{macrocode}
+% \end{function}
+% \end{implementation}
+
+% \begin{implementation}
+% \begin{function}{\__gotham_inner_disable_subsubsectionpage:, \__gotham_inner_enable_subsubsectionpage:}
+% Commands to disable or enable the display of a 'subsubsection page' frame at the begining of every new subsubsection.
+% It replaces the |\newcommand{\gotham@disablesubsubsectionpage}| and | \newcommand{\gotham@enablesubsubsectionpage}|
+% \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
+ \frame[c, noframenumbering, subsubsec]{\subsubsectionpage}
+ \fi
+ }
+}
+% \end{macrocode}
+% \end{function}
+% \end{implementation}
+
+% \begin{documentation}
+% \begin{variable}{\gotham@progressonsectionpage@linewidth}
+% Variables used to defined the progress bar in section pages.
+% If the vertical size of the bar want to be changed, the command |\setlength{\gotham@progressonsectionpage@linewidth}{<0.4pt>}| can be used.
+% \end{variable}
+% \end{documentation}
+%%%%%%
+% \begin{implementation}
+% \begin{variable}{\gotham@progressonsectionpage@linewidth}
+% 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{\gotham@progressonsectionpage@linewidth}
+\setlength{\gotham@progressonsectionpage@linewidth}{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{\gotham@progressonsectionpage@linewidth+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, \gotham@progressonsectionpage@linewidth);
+ \fill[fg] (0,0) rectangle (\gotham@progressonsectionpage, \gotham@progressonsectionpage@linewidth);
+ \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, \gotham@progressonsectionpage@linewidth);
+ \fill[fg] (0,0) rectangle (\gotham@progressonsectionpage, \gotham@progressonsectionpage@linewidth);
+ \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.
+% \UnitTested
+% \TestFiles{gotham-test-042}
+% \begin{macrocode}
+\defbeamertemplate{section~in~toc}{gotham~bullet}{
+ \hspace*{0.4cm}\tikz[baseline=-0.5ex]\node[section~number]{\textbf{\small\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}\\\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};\\[-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};\\[-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, text=background]{\usebeamerfont*{toc~subtitle}\textbf{\inserttocsectionnumber}};
+ \ \tikz[baseline=-0.5ex]\node[section, text=colorExample!20]{\usebeamerfont*{toc~title} \inserttocsection};\\[-0.35cm]
+ \hspace*{1.3cm}{\usebeamercolor*[fg]{footer} \rule{0.6\paperwidth}{0.2pt}\\\nointerlineskip}
+}
+\defbeamertemplate{subsection~in~toc~shaded}{gotham~bullet}{
+ \hspace*{0.55cm}\tikz[baseline=-0.5ex]\node[subsection~number,fill=colorBackElement!20]{};
+ \hspace*{0.5cm}\tikz[baseline=-0.5ex]\node[subsection, text=colorBackElement!20]{};\\[-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};\\[-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.
+% \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
+ \\
+}
+% \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.
+% \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{subsection~in~toc}[gotham~simple]
+ \setbeamertemplate{subsubsection~in~toc}[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{subsection~in~toc}[gotham~bullet]
+ \setbeamertemplate{subsubsection~in~toc}[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{subsection~in~toc}[gotham~simple]
+ \setbeamertemplate{subsubsection~in~toc}[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{subsection~in~toc}[gotham~simple]
+ \setbeamertemplate{subsubsection~in~toc}[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{subsection~in~toc}[gotham~simple]
+ \setbeamertemplate{subsubsection~in~toc}[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{subsection~in~toc}[gotham~bullet]
+ \setbeamertemplate{subsubsection~in~toc}[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{subsection~in~toc}[gotham~bullet]
+ \setbeamertemplate{subsubsection~in~toc}[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{subsection~in~toc}[gotham~bullet]
+ \setbeamertemplate{subsubsection~in~toc}[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}
+\newcommand{\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}{2024/09/20}{1.1.0.b}{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}
+ \colorlet{colorFrametitle}{purple}
+ \colorlet{colorTitlepage}{purple}
+ \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}
+\setlength{\sidebarRightHOffset}{-2.5ex}
+\newlength{\sidebarLeftHOffset}
+\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
+\newcommand{\gothamRightFiligrane}{
+ % left empty intentionally
+ % \rotatebox{90}{gotham right filigrane pattern}
+
+}
+\newcommand{\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}{\gotham@frametitle@toppadding, \gotham@frametitle@bottompadding, \gotham@frametitle@leftpadding, \gotham@frametitle@rightpadding}
+% Dimensions controlling the top, bottom, left and right padding in the frametitle.
+% \end{variable}
+% \end{documentation}
+%%%%%%
+% \begin{implementation}
+% \begin{variable}{\gotham@frametitle@toppadding, \gotham@frametitle@bottompadding, \gotham@frametitle@leftpadding, \gotham@frametitle@rightpadding}
+% 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{\gotham@frametitle@toppadding}
+\setlength{\gotham@frametitle@toppadding}{2.2ex}
+\newlength{\gotham@frametitle@bottompadding}
+\setlength{\gotham@frametitle@bottompadding}{2.2ex}
+\newlength{\gotham@frametitle@leftpadding}
+\setlength{\gotham@frametitle@leftpadding}{2.2ex}
+\newlength{\gotham@frametitle@rightpadding}
+\setlength{\gotham@frametitle@rightpadding}{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}
+\newcommand{\gotham@frametitlestrut@start}{
+ \rule{0pt}{\gotham@frametitle@toppadding +
+ \totalheightof{
+ \ifcsdef{gotham@frametitleformat}{\gotham@frametitleformat{X}}{X}
+ }
+ }
+}
+\newcommand{\gotham@frametitlestrut@end}{
+ \rule[-\gotham@frametitle@bottompadding]{0pt}{\gotham@frametitle@bottompadding}
+}
+% \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}
+\newcommand{\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}
+\newcommand{\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=\gotham@frametitle@leftpadding,
+ rightskip=\gotham@frametitle@rightpadding,
+ ]{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=\gotham@frametitle@leftpadding,
+ rightskip=\gotham@frametitle@rightpadding,
+ ]{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=\gotham@frametitle@leftpadding,
+ rightskip=\gotham@frametitle@rightpadding,
+ ]{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}{\gothamFootlineOffset, \gothamFootlineHeight, \gothamFootlineDepth}
+% Lengths controlling the position of |footline|.
+% |\gothamFootlineOffset| is controlling space between to bottom of the text (or the footnote) and the footline.
+% |\gothamFootlineOffset| 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{\gothamFootlineOffset}{-2.0ex}|.
+% 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}{\gothamFootlineOffset, \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{\gothamFootlineOffset}
+\setlength{\gothamFootlineOffset}{-0.5ex}
+
+\newlength{\gothamFootlineHeight}
+\setlength{\gothamFootlineHeight}{1.5ex}
+\newlength{\gothamFootlineDepth}
+\setlength{\gothamFootlineDepth}{0.1ex}
+% \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*{\gothamFootlineOffset}
+ \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}}~
+ \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}
+\setlength{\gothamLeftFooterPadding}{2.0ex}
+\newlength{\gothamRightFooterPadding}
+\setlength{\gothamRightFooterPadding}{3.5ex}
+\newlength{\gothamFooterHOffset}
+\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}
+
+\newlength{\gothamHposLeftRotFooter}
+\newlength{\gothamHposRightRotFooter}
+\newlength{\gothamVposLeftRotFooter}
+% horizontal position (in picture env) for the rotated footer.
+\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}
+\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}
+ \rule{\gothamFootlineRuleLength}{\gothamFootlineRuleHeight}
+ \vspace*{
+ \dimexpr \gothamFootlineHeight -0.25em\relax
+ }
+ % Horizontal stretch to ensure proper spacing
+ \hss
+ }
+ }
+ \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 \
+ \hfill \ \insertshorttitle
+ % make sure that the vertical space is constant: strut.
+ \gotham@strut
+ \hfill \
+ \hfill \
+ % \ifbool{rotateFooter}{
+ \bool_if:NTF \l_gotham_RotateFooter {
+ % rotateFooter true
+ \settowidth{\hlenRightRotFooter}{\hspace{\gothamRightFooterPadding}\usebeamertemplate{page~number~in~head/foot}}
+ \addtolength{\hlenRightRotFooter}{\gothamHposRightRotFooter}
+ \begin{picture}(0,0)(0,0)
+ \put(\hlenRightRotFooter,\gothamVposRightRotFooter){\rotatebox{90}{\insertshortauthor}}
+ \end{picture}
+ }{
+ % rotateFooter false
+ \insertshortauthor
+ %\hspace{-7em}
+ }
+ % 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| 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}
+\setlength{\gothamCircleNumberingVshift}{1.4mm}
+\newlength{\gothamCircleNumberingHshift}
+\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}{\gotham@frametitle@toppadding+\gotham@frametitle@bottompadding+\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}{\gotham@frametitle@toppadding+\gotham@frametitle@bottompadding+\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
+\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}{\gotham@frametitle@toppadding+\gotham@frametitle@bottompadding+\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}{\gotham@frametitle@toppadding+\gotham@frametitle@bottompadding+\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}{\gotham@frametitle@toppadding+\gotham@frametitle@bottompadding+\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}{\gotham@frametitle@toppadding+\gotham@frametitle@bottompadding+\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}
+\newcommand{\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}
+\newcommand{\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{xparse}
+% \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 %%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%
+%
+\providecommand\ifratio[3]{%
+ \ifnum#1=169%
+ \ifdim\beamer@paperwidth=16.00cm\relax%
+ \ifdim\beamer@paperheight=9.00cm\relax%
+ #2%
+ \else%
+ #3%
+ \fi%
+ \else%
+ #3%
+ \fi%
+ \else%
+ \ifnum#1=43%
+ \ifdim\beamer@paperwidth=12.80cm\relax%
+ \ifdim\beamer@paperheight=9.60cm\relax%
+ #2%
+ \else%
+ #3%
+ \fi%
+ \else%
+ #3%
+ \fi%
+ \fi%
+ \fi%
+}
+\providecommand\ifscreenratio[2]{%
+ \ifdim\beamer@paperwidth=16.00cm\relax%
+ \ifdim\beamer@paperheight=9.00cm\relax%
+ #1%
+ \fi%
+ \fi%
+ \ifdim\beamer@paperwidth=12.80cm\relax%
+ \ifdim\beamer@paperheight=9.60cm\relax%
+ #2%
+ \fi%
+ \fi%
+}
+% \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}
+\newcommand{\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{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
new file mode 100644
index 0000000000..83effd4537
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/gotham.pdf
Binary files differ
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..dd7a5e78fa
--- /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..ec4c8a37de
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/section-Conclusion.tex
@@ -0,0 +1,37 @@
+\documentclass[aspectratio=169]{beamer}
+% \usetheme{gotham}
+
+ \usepackage{appendixnumberbeamer}
+ \usepackage[scale=2]{ccicons}
+ \newcommand{\themename}{\textbf{\textsc{Gotham}}}
+
+
+\begin{document}
+
+\section{Conclusion}
+
+ \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}
+
+ \begin{standoutenv}
+ \begin{frame}[fragile]
+ The final slide using the standout style with command:
+ \begin{verbatim}
+ \begin{frame}[standout]{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..eb9b4bef0d
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham/section-Gotham.tex
@@ -0,0 +1,398 @@
+\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}
+
+ \newcommand{\themename}{\textbf{\textsc{Gotham}}}
+
+
+\begin{document}
+
+\section{Gotham Theme}
+
+ % FRAME
+ \begin{frame}[fragile]{Gotham}
+
+ 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 Vogelgesang (and some other Beamer themes).
+
+ Yet, \themename{} is highly extendable and versatile.
+ \bigskip
+
+ First, enable the theme by classically loading it:
+
+ \begin{verbatim}
+ \documentclass{beamer}
+ \usetheme{gotham}
+ \end{verbatim}
+
+ Then, the all customization can be performed at any moment in the presentation using:
+
+ \begin{verbatim}
+ \gothamset{<option>=...}
+ \end{verbatim}
+ \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 \verb|\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 \verb|\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{shape frametitle=smallcaps, format frametitle=titlecase}
+ % FRAME
+ \begin{frame}{Titles: Small caps and titlecase}
+ This frame uses the title format options: \texttt{shape frametitle=smallcaps, 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 small caps 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=upper, shape frametitle=italic}
+ % FRAME
+ \begin{frame}{Titles: Upper and italic}
+ This frame uses the title format options: \texttt{format frametitle=upper, shape frametitle=smallcaps}.
+
+ \begin{alertblock}{Potential problems}
+ As this title format also uses small caps you face the same problems as with the \texttt{smallcaps} title format.
+ Additionally this format can cause some other problems.
+ Please refer to the documentation if you consider using it.
+
+
+ \end{alertblock}
+ \end{frame}
+ }
+
+ {
+ \gothamset{format frametitle=lower}
+ % FRAME
+ \begin{frame}{Titles: LOWER and regular}
+ This frame uses the title format options: \texttt{format frametitle=lower, 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{verbatim} \gothamset{background=dark | light | transparent} \end{verbatim}
+ \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{verbatim}\gothamset{
+ block=native}\end{verbatim}
+
+ \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{verbatim}\gothamset{
+ block=transparent}\end{verbatim}
+
+ \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{verbatim}\gothamset{
+ block=fill}\end{verbatim}
+
+ \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}
+
+ % FRAME
+ \begin{frame}[fragile]{Color customization}
+ The colors can be changed using:
+ \begin{verbatim}
+ \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{verbatim}
+ \end{frame}
+
+
+\subsection{Inner}
+
+ % FRAME
+ \begin{frame}[fragile]{Title page}
+ \themename{} offers the possibility to adapt the title page layout (printed with \verb|\maketitle| or \verb|\titlepage|).
+ This can be achieved using:
+
+ \begin{verbatim} \defbeamertemplate{title page}{your name}{your defintion}
+ \gothamset{title page= your name}\end{verbatim}
+
+ \themename{} also predefined several templates such as:
+ \verb$gotham normal | gotham splitvert | gotham dividedpic$ \verb$| gotham reversed$
+ \end{frame}
+
+ % FRAME
+ \begin{frame}[fragile]{Table of contents}
+ \themename{} come with the possibility to apply different style for your table of contents (ToC) page.
+ You can define your own ToC style as it follows:
+ \begin{verbatim}
+ \defbeamertemplate{toc page}{your name}{your def}
+ \gothamset{tocframe template= your name}
+ \end{verbatim}
+ Then, referring to this template using the frame option \verb|[toc]| in your presentation:
+ \begin{verbatim}
+ \begin{frame}[toc]{Table of contents}
+ \tableofcontents%[hideallsubsections]
+ \end{frame }\end{verbatim}
+
+ Or using one of the \themename{} predefined template, such as: \verb$gotham simple | gotham bullet$
+ \end{frame}
+
+ % FRAME
+ \begin{frame}[fragile]{Sections}
+ \themename{} provides a multiple options to tune sections (respectively \verb|part|, \verb|section|, \verb|subsection| and \verb|subsubsection|).
+ Thus, using the setting controls:
+
+ The section command \verb|\section{Elements}| from Beamer will appear very differently.
+ The section page will appear or disappear thanks to: \verb$\gothamset{sectionframe default=<on|off>}$, while its layout (when appearing) is controlled by:
+ \begin{verbatim}
+ \defbeamertemplate{part|sub|subsub|section frame}
+ {your name}{your def}
+ \gothamset{sectionframe template= your name}\end{verbatim}
+
+ \themename{} predefined template are: \verb$gotham progressbar | gotham simple |$ \verb$gotham splitvert progressbar |$ \verb$gotham splitvert simple | gotham progressvert$
+ \end{frame}
+
+ % FRAME
+ \begin{frame}[fragile]{Sections contents}
+ After the section page, you can (de)activate a page with table of contents in the section using \verb$\gothamset{sectiontocframe default=<on|off>}$, and its layout is controlled by:
+ \begin{verbatim}
+ \defbeamertemplate{toc subsection frame}{your name}{your def}
+ \gothamset{sectionframe template= your name}
+ \end{verbatim}
+
+ \themename{} predefined template are: \verb$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{verbatim} \defbeamertemplate{background}{watermark/your name}{your def}
+ \gothamset{watermark template= your name}\end{verbatim}
+
+ Then, this watermark can be turn on locally using \verb|\begin{frame}[watermark]| or globally with \verb|\gothamset{watermark default= on}| .
+ \end{frame}
+
+ % FRAME
+ \begin{standinenv}
+ \begin{frame}[fragile]{Standin}
+
+ \themename{} comes with 2 environments/specials layouts named \verb|standin| and \verb|standout|.
+ These specials layouts can be used to emphasize some content or last slide\textellipsis
+
+ This layout can be turn on using \verb|\begin{frame}[standin]| or using the dedicated environment (\verb|\begin{standinenv}\begin{frame}...\end{frame}\end{standinenv}|).
+
+ Note that the background can also be tuned using:
+ \begin{verbatim} \defbeamertemplate{background canvas}{standin/name}{your def}
+ \gothamset{standin template= name}\end{verbatim}
+
+ \end{frame}
+ \end{standinenv}
+
+ % FRAME
+ \begin{frame}[fragile, standout, watermark]{Standout}
+ Here is an example of standout (working as standin), that 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{verbatim}\setbeamertemplate{frame footer}{My custom footer}\end{verbatim}
+
+ Even after redefining (or not) your frame footer template, you can locally remove it with the frame option \verb|\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 \verb|shortdate|, \verb|shorttitle| and \verb|shortauthor|.
+ So by filling these fields in your document setup, you will see them appear in your footer:
+ \begin{verbatim} \title[your shorttitle]{Your title}
+ \date[shortdate]{\today}
+ \author[your shortauthor name]{John DOE} \end{verbatim}
+
+ Since, we always need some extra space on some frames that would like to overlay a bit the footer, \themename{}'s footer offers also possibility to be put on side locally using \verb|\begin{frame}[rotateFooter]|, or globally with
+ \begin{verbatim} \gothamset{rotateFooter default=on} \end{verbatim}
+ If it has set globally, it can be deactivated locally with the frame option \verb|\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, \verb|\gothamRightFiligrane| and \verb|\gothamLeftFiligrane|, that can be redefined to customize what to display in the edgings (a.k.a. filigrane, a.k.a. sidebar).
+ As example, one could do:
+ \begin{verbatim}
+ \renewcommand{\gothamRightFiligrane}{%
+ \rotatebox{90}{gotham right filigrane pattern}
+ }\end{verbatim}
+
+ Then, to set if it should be displayed or not, globally \begin{verbatim} \gothamset{edging default=on} \end{verbatim}
+ or locally with the frame option \verb|\begin{frame}[edging]| or \verb|\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 \verb|\usepackage{changepage}| in your preamble).
+ You can also suppress the edging (\verb|[noedging]|) and footer (\verb|[nofooter]|) or even more radically footline (\verb|[nofootline]|).
+
+ Here is an example combining them:
+ \begin{verbatim}
+ \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{verbatim}
+ \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 \verb|\subframetitle| and frame continuation (with \verb|[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 \verb|\logo{}| free for your extra logos.
+
+ So, one can have both logos using:
+ \begin{verbatim}
+ \renewcommand{\gothamInstituteLogoSquare}[1][4ex]{
+ \includegraphics[height=#1]{gotham-logo.pdf}
+ }
+ \logo{extra LOGO}
+ \end{verbatim}
+ \end{frame}
+ }
+
+ \author[]{Romain NOËL}
+ {%
+ \gothamset{progressbar position=foot, numbering= totalframenumber}
+ % 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{verbatim}
+ \gothamset{numbering= totalframenumber, progressbar position=foot}
+ \end{verbatim}
+
+ Numbering available options are: \verb$none | framenumber | totalframenumber | appendixframenumber | pagenumber | totalpagenumber | circle$
+
+ Progressbar position available options are: \verb$none | head | frametitle | foot | circlehead$
+ \end{frame}
+ }
+
+
+\end{document}
+%EoF \ No newline at end of file
diff --git a/macros/latex/contrib/easybook/README.md b/macros/latex/contrib/easybook/README.md
index 15624c6c87..94a9310b85 100644
--- a/macros/latex/contrib/easybook/README.md
+++ b/macros/latex/contrib/easybook/README.md
@@ -1,5 +1,5 @@
# The `easybook` document class
-Easily typesetting Chinese theses or books (v2024dq)
+Easily typesetting Chinese theses or books (v2024ds)
## Abstract
`easybook` is a pure academic template created based on the `ctexbook` book document class. It also has the functions of `book` and `article` document class. Combined with the general framework design of the theses of many universities in China, providing multiple commands and interfaces allows users to easily customize the theses templates. Its basic macro package `easybase` can also be used with `ctex` and standard document classes.
diff --git a/macros/latex/contrib/easybook/easybook.dtx b/macros/latex/contrib/easybook/easybook.dtx
index 1c833d2042..b7e193e55a 100644
--- a/macros/latex/contrib/easybook/easybook.dtx
+++ b/macros/latex/contrib/easybook/easybook.dtx
@@ -14,7 +14,7 @@
% This work has the LPPL maintenance status `maintained'.
%<class|package>\NeedsTeXFormat{LaTeX2e}[2021/11/15]
%<*class>
-\ProvidesExplClass{easybook}{2024/09/16}{2024dq}
+\ProvidesExplClass{easybook}{2024/09/16}{2024ds}
{Easily typesetting Chinese theses or books}
\bool_new:N \l__eb_compile_draft_bool
@@ -301,7 +301,7 @@
%</class>
%<*package>
\RequirePackage{etoolbox}
-\ProvidesExplPackage{easybase}{2024/09/16}{2024dq}
+\ProvidesExplPackage{easybase}{2024/09/16}{2024ds}
{Easily typesetting Chinese theses or books}
\cs_generate_variant:Nn \dim_set:Nn { NV }
@@ -702,18 +702,18 @@
}
\cs_set:Npn \markdouble #1 { \markboth{#1}{\ifbool{@twoside}{#1}{}} }
-\cs_new:Npn \eb@level@markdouble #1#2
+\cs_new_protected:Npn \eb@level@markdouble #1#2
{ \markdouble{\use:c { eb@mark@#1@whole }{#2}} }
-\cs_new:Npn \eb@level@markright #1#2
+\cs_new_protected:Npn \eb@level@markright #1#2
{ \markright{\use:c { eb@mark@#1@whole }{#2}} }
\cs_gset:Npn \chaptermark #1 { \eb@level@markdouble{chapter}{#1} }
-\cs_gset:Npn \sectionmark #1
+\cs_gset:Npx \sectionmark #1
{
\bool_if:NTF \l__eb_class_mode_book_bool
{ \eb@level@markright{section}{#1} }
{ \eb@level@markdouble{section}{#1} }
}
-\cs_gset:Npn \subsectionmark #1
+\cs_gset:Npx \subsectionmark #1
{
\bool_if:NF \l__eb_class_mode_book_bool
{ \eb@level@markright{subsection}{#1} }
@@ -2850,15 +2850,13 @@
}
%</package>
%<*tcolorbox>
-\ProvidesExplFile{eb-tcolorbox.cfg}{2024/09/16}{2024dq}
+\ProvidesExplFile{eb-tcolorbox.cfg}{2024/09/16}{2024ds}
{Customization of tcolorbox for easybook}
\cs_set_protected:Npn \addtotcbstyle #1#2
{ \tcbset{#1/.append~style = {#2}} }
\cs_set_protected:Npn \deftcbstyle #1#2
{ \tcbset{#1/.style = {#2}} }
-\cs_new_protected:Npn \tcbappstyle
- { \@ifstar{\deftcbstyle}{\addtotcbstyle} }
\deftcbstyle{tc-easyboxi}
{
diff --git a/macros/latex/contrib/easybook/easybook.pdf b/macros/latex/contrib/easybook/easybook.pdf
index 0b8ae4ddc3..4f3cdceca5 100644
--- a/macros/latex/contrib/easybook/easybook.pdf
+++ b/macros/latex/contrib/easybook/easybook.pdf
Binary files differ
diff --git a/macros/latex/contrib/easybook/easybook.tex b/macros/latex/contrib/easybook/easybook.tex
index 6199add63b..351cca692d 100644
--- a/macros/latex/contrib/easybook/easybook.tex
+++ b/macros/latex/contrib/easybook/easybook.tex
@@ -23,8 +23,8 @@
name = easybook,
color-scheme = blue,
title = EASYBOOK使用手册,
- version = v2024dq,
- date = 2024/09/16,
+ version = v2024ds,
+ date = 2024/09/22,
authors = 瞿毅,
info = 简便地排版中文学位论文或书籍,
email = toquyi@163.com,
diff --git a/systems/texlive/tlnet/tlpkg/TeXLive/TLWinGoo.pm b/systems/texlive/tlnet/tlpkg/TeXLive/TLWinGoo.pm
index 363f5fc0da..619227cdb2 100644
--- a/systems/texlive/tlnet/tlpkg/TeXLive/TLWinGoo.pm
+++ b/systems/texlive/tlnet/tlpkg/TeXLive/TLWinGoo.pm
@@ -1,4 +1,4 @@
-# $Id: TLWinGoo.pm 69646 2024-01-31 18:17:20Z karl $
+# $Id: TLWinGoo.pm 72335 2024-09-21 09:54:18Z preining $
# TeXLive::TLWinGoo.pm - Windows goop.
# Copyright 2008-2024 Siep Kroonenberg, Norbert Preining
# This file is licensed under the GNU General Public License version 2
@@ -13,7 +13,7 @@
package TeXLive::TLWinGoo;
-my $svnrev = '$Revision: 69646 $';
+my $svnrev = '$Revision: 72335 $';
my $_modulerevision;
if ($svnrev =~ m/: ([0-9]+) /) {
$_modulerevision = $1;
@@ -463,6 +463,7 @@ sub adjust_reg_path_for_texlive {
debug("Warning: [pdf]tex program not found in $tlbindir\n")
if (!is_a_texdir($tlbindir));
my $path = ($mode eq 'system') ? get_system_path() : get_user_path();
+ debug("TLWinGoo: adjust_reg_path_for_texlive: current path before adjusting = $path\n");
$tlbindir =~ s!/!\\!g;
my $tlbindir_short = uc(short_name($tlbindir));
my ($d, $d_short, @newpath);
@@ -490,7 +491,7 @@ sub adjust_reg_path_for_texlive {
}
}
if (@newpath) {
- debug("TLWinGoo: adjust_reg_path_for_texlive: calling setenv_reg in $mode\n");
+ debug("TLWinGoo: adjust_reg_path_for_texlive: calling setenv_reg in $mode with new path = ", join(';', @newpath), "\n");
setenv_reg("Path", join(';', @newpath), $mode);
} else {
debug("TLWinGoo: adjust_reg_path_for_texlive: calling unsetenv_reg in $mode\n");
diff --git a/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl b/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
index 94fc52d111..e84e7d1dae 100644
--- a/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
+++ b/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
@@ -5,7 +5,6 @@ $mirrors = {
},
'South Africa' => {
'https://mirror.ufs.ac.za/ctan/' => 1,
- 'https://za.mirrors.cicku.me/ctan/' => 1,
},
},
'Asia' => {
@@ -14,7 +13,6 @@ $mirrors = {
'https://mirror.nyist.edu.cn/CTAN/' => 1,
'https://mirrors.aliyun.com/CTAN/' => 1,
'https://mirrors.bfsu.edu.cn/CTAN/' => 1,
- 'https://mirrors.cloud.tencent.com/CTAN/' => 1,
'https://mirrors.cqu.edu.cn/CTAN/' => 1,
'https://mirrors.hust.edu.cn/CTAN/' => 1,
'https://mirrors.jlu.edu.cn/CTAN/' => 1,
@@ -46,7 +44,6 @@ $mirrors = {
'https://ftp.jaist.ac.jp/pub/CTAN/' => 1,
'https://ftp.kddilabs.jp/CTAN/' => 1,
'https://ftp.yz.yamagata-u.ac.jp/pub/CTAN/' => 1,
- 'https://jp.mirrors.cicku.me/ctan/' => 1,
},
'Korea' => {
'http://ftp.ktug.org/tex-archive/' => 1,
@@ -56,15 +53,8 @@ $mirrors = {
'https://mirror.kakao.com/CTAN/' => 1,
'https://mirror.navercorp.com/CTAN/' => 1,
},
- 'Saudi Arabia' => {
- 'https://sa.mirrors.cicku.me/ctan/' => 1,
- },
- 'Singapore' => {
- 'https://sg.mirrors.cicku.me/ctan/' => 1,
- },
'Taiwan' => {
'https://ctan.mirror.twds.com.tw/tex-archive/' => 1,
- 'https://tw.mirrors.cicku.me/ctan/' => 1,
},
'Thailand' => {
'https://mirror.kku.ac.th/CTAN/' => 1,
@@ -134,7 +124,6 @@ $mirrors = {
'https://ftp.snt.utwente.nl/pub/software/tex/' => 1,
'https://mirror.koddos.net/CTAN/' => 1,
'https://mirror.lyrahosting.com/CTAN/' => 1,
- 'https://nl.mirrors.cicku.me/ctan/' => 1,
},
'Norway' => {
'https://ctan.uib.no/' => 1,
@@ -173,7 +162,6 @@ $mirrors = {
},
'United Kingdom' => {
'https://anorien.csc.warwick.ac.uk/mirrors/CTAN/' => 1,
- 'https://gb.mirrors.cicku.me/ctan/' => 1,
'https://mirror.apps.cam.ac.uk/pub/tex-archive/' => 1,
},
},
@@ -200,18 +188,15 @@ $mirrors = {
'https://mirror.math.princeton.edu/pub/CTAN/' => 1,
'https://mirrors.mit.edu/CTAN/' => 1,
'https://mirrors.rit.edu/CTAN/' => 1,
- 'https://us.mirrors.cicku.me/ctan/' => 1,
},
},
'Oceania' => {
'Australia' => {
- 'https://au.mirrors.cicku.me/ctan/' => 1,
'https://mirror.aarnet.edu.au/pub/CTAN/' => 1,
},
},
'South America' => {
'Brazil' => {
- 'https://br.mirrors.cicku.me/ctan/' => 1,
'https://linorg.usp.br/CTAN/' => 1,
},
'Chile' => {
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb b/systems/texlive/tlnet/tlpkg/texlive.tlpdb
index c768805e97..7d1ffdec65 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb
@@ -26,11 +26,11 @@ depend container_split_src_files/1
depend frozen/0
depend minrelease/2016
depend release/2024
-depend revision/72331
+depend revision/72342
name 00texlive.image
category TLCore
-revision 72273
+revision 72340
shortdesc TeX Live files only in the source repository
longdesc The files here are not copied by the installer and containers
longdesc are not built for them; they exist only in the source
@@ -40,7 +40,7 @@ longdesc IgnorePatterns in the check_files routine in tlmgr.pl augment
longdesc this list. Those are not included in the source/ tarball. For
longdesc information on the 00texlive prefix see
longdesc 00texlive.installation(.tlpsrc)
-runfiles size=14524
+runfiles size=14526
.mkisofsrc
autorun.inf
texmf-dist/README
@@ -710,6 +710,7 @@ runfiles size=14524
tlpkg/tlpsrc/beamertheme-detlevcm.tlpsrc
tlpkg/tlpsrc/beamertheme-epyt.tlpsrc
tlpkg/tlpsrc/beamertheme-focus.tlpsrc
+ tlpkg/tlpsrc/beamertheme-gotham.tlpsrc
tlpkg/tlpsrc/beamertheme-light.tlpsrc
tlpkg/tlpsrc/beamertheme-metropolis.tlpsrc
tlpkg/tlpsrc/beamertheme-npbt.tlpsrc
@@ -4095,6 +4096,7 @@ runfiles size=14524
tlpkg/tlpsrc/spotcolor.tlpsrc
tlpkg/tlpsrc/spreadtab.tlpsrc
tlpkg/tlpsrc/spverbatim.tlpsrc
+ tlpkg/tlpsrc/sqltex.tlpsrc
tlpkg/tlpsrc/sr-vorl.tlpsrc
tlpkg/tlpsrc/srbook-mem.tlpsrc
tlpkg/tlpsrc/srbtiks.tlpsrc
@@ -4948,7 +4950,7 @@ depend setting_available_architectures:aarch64-linux amd64-freebsd amd64-netbsd
name 00texlive.installer
category TLCore
-revision 72328
+revision 72342
shortdesc TeX Live standalone installer package
longdesc This package defines the files to go into the installer
longdesc archives (install-tl-unx.tar.gz, install-tl.zip) built by the
@@ -35162,6 +35164,65 @@ catalogue-license gpl3
catalogue-topics presentation
catalogue-version 3.4.0
+name beamertheme-gotham
+category Package
+revision 72340
+shortdesc A versatile and extendable beamer theme based on Metropolis
+relocated 1
+longdesc This package provides a modern, minimal-ish, versatile and
+longdesc extendable yet robust Beamer theme using LaTeX3 with some
+longdesc gathered or borrowed lines of code. It uses the l3build system
+longdesc to both build and verify (Test-Driven Development) the
+longdesc delivered code. "Gotham" tries to bring higher flexibility
+longdesc thanks to LaTeX3 implementation on top of the good-looking
+longdesc Metropolis theme.
+containersize 19752
+containerchecksum 024e33b589216977c7e873e45ab5a32b00e2ea7f92dbd25d2498874f8fa77c6d1cb6fbcf803a80ea10d5770d55dc163d8f89f1c1a4c54676697b9894e2ced4cc
+doccontainersize 2249440
+doccontainerchecksum febbc1d29129d886685ce1b17edc466167d5b32678a0d021337a4010c799da19004c5a6b43b99d0e5ad9adec094e43ed2a1266b382662d9b0e48c05008c05fbd
+docfiles size=773
+ RELOC/doc/latex/beamertheme-gotham/MANIFEST.md
+ RELOC/doc/latex/beamertheme-gotham/README.md details="Readme"
+ RELOC/doc/latex/beamertheme-gotham/ctan.ann
+ RELOC/doc/latex/beamertheme-gotham/ctan.note
+ RELOC/doc/latex/beamertheme-gotham/gotham-blueprint.pdf
+ RELOC/doc/latex/beamertheme-gotham/gotham-dev-impl.pdf
+ RELOC/doc/latex/beamertheme-gotham/gotham-dev-impl.tex
+ RELOC/doc/latex/beamertheme-gotham/gotham-doc.pdf details="User manual"
+ RELOC/doc/latex/beamertheme-gotham/gotham-doc.tex
+ RELOC/doc/latex/beamertheme-gotham/gotham-example169transp.pdf details="Example of use (transparent)"
+ RELOC/doc/latex/beamertheme-gotham/gotham-example169transp.tex
+ RELOC/doc/latex/beamertheme-gotham/gotham-example43dark.pdf details="Example of use (dark)"
+ RELOC/doc/latex/beamertheme-gotham/gotham-example43dark.tex
+ RELOC/doc/latex/beamertheme-gotham/gotham-exampleSimple.pdf details="Example of use (simple)"
+ RELOC/doc/latex/beamertheme-gotham/gotham-exampleSimple.tex
+ RELOC/doc/latex/beamertheme-gotham/gotham-layout.pdf
+ RELOC/doc/latex/beamertheme-gotham/gotham-logo.pdf
+ RELOC/doc/latex/beamertheme-gotham/gotham-safetybox.pdf
+ RELOC/doc/latex/beamertheme-gotham/gotham-user-cmds.pdf
+ RELOC/doc/latex/beamertheme-gotham/gotham-user-cmds.tex
+ RELOC/doc/latex/beamertheme-gotham/gotham.pdf details="Complete package documentation"
+ RELOC/doc/latex/beamertheme-gotham/section-Beamer.tex
+ RELOC/doc/latex/beamertheme-gotham/section-Conclusion.tex
+ RELOC/doc/latex/beamertheme-gotham/section-Gotham.tex
+srccontainersize 39900
+srccontainerchecksum 6fb2b7b99eb69e5c3c1c574817231f1621f41988fa446d830ad3bc4dc14db814c637d159aec8b38b028dbff6eb247d4e67e702d8d0761b15aeeb488465c78fc4
+srcfiles size=80
+ RELOC/source/latex/beamertheme-gotham/gotham.dtx
+ RELOC/source/latex/beamertheme-gotham/gotham.ins
+runfiles size=44
+ RELOC/tex/latex/beamertheme-gotham/beamercolorthemegotham.sty
+ RELOC/tex/latex/beamertheme-gotham/beamerfontthemegotham.sty
+ RELOC/tex/latex/beamertheme-gotham/beamerinnerthemegotham.sty
+ RELOC/tex/latex/beamertheme-gotham/beamerouterthemegotham.sty
+ RELOC/tex/latex/beamertheme-gotham/beamerthemegotham.sty
+catalogue-contact-bugs https://gitlab.com/RomainNOEL/beamertheme-gotham/issues/
+catalogue-contact-repository https://gitlab.com/RomainNOEL/beamertheme-gotham/
+catalogue-ctan /macros/latex/contrib/beamer-contrib/themes/beamertheme-gotham
+catalogue-license lppl1.3c cc-by-sa-4
+catalogue-topics presentation expl3
+catalogue-version 1.1.0.b
+
name beamertheme-light
category Package
revision 49867
@@ -70787,7 +70848,7 @@ containerchecksum 72f0c141b94a844e67d6ce7850b17faa3e77fc621ddab7807595b42bd3a664
name collection-binextra
category Collection
-revision 70681
+revision 72338
shortdesc TeX auxiliary programs
relocated 1
longdesc Myriad additional TeX-related support programs. Includes
@@ -70873,6 +70934,7 @@ depend pythontex
depend runtexshebang
depend seetexk
depend spix
+depend sqltex
depend srcredact
depend sty2dtx
depend synctex
@@ -70903,8 +70965,8 @@ depend web
depend xindex
depend xindy
depend xpdfopen
-containersize 1016
-containerchecksum 0110465d7d795c242f33ff2f6214a1d4f844f73bd37d7d8063b1087103c4aa14df388b7ac5893c1f151af7decf46a42ea8679514b8b97ad9a0ae8c5335ec4ea2
+containersize 1012
+containerchecksum e3802a6b8c5d229be4519f7f717ceb27d68ac5d8d6c566475a39734e919f7a7d71e9ead1e7e32cfa0d5889fc7ce52f5e6ef6fa5d4198424294b32ff76008f35d
name collection-context
category Collection
@@ -72416,7 +72478,7 @@ containerchecksum e2186a4295eb854d56e838deaae8330e47ced975d28ad83b51d8ada6955a5a
name collection-latexextra
category Collection
-revision 72273
+revision 72340
shortdesc LaTeX additional packages
relocated 1
longdesc A very large collection of add-on packages for LaTeX.
@@ -72504,6 +72566,7 @@ depend beamertheme-cuerna
depend beamertheme-detlevcm
depend beamertheme-epyt
depend beamertheme-focus
+depend beamertheme-gotham
depend beamertheme-light
depend beamertheme-metropolis
depend beamertheme-npbt
@@ -73992,8 +74055,8 @@ depend zref-vario
depend zugferd
depend zwgetfdate
depend zwpagelayout
-containersize 7284
-containerchecksum 89775ff9703c00e2268d7dda19a38d26a969c6ac12aa7aee54d69866c546d20049e1704e94a9a923a1cd28cb1c84989531ef0fac11c363fb7bf9474e8551c3ee
+containersize 7280
+containerchecksum 02b31e12331fb327eec574de0b3f7de775de89d42098a533cd35c979f925c9dae064c8a5af8a377ddd45bd413a75a6aa2fa23cf047e7e9e641c80ae4b40c70eb
name collection-latexrecommended
category Collection
@@ -195233,7 +195296,7 @@ catalogue-version 0.02
name libertinus-fonts
category Package
-revision 57948
+revision 72339
shortdesc The Libertinus font family
relocated 1
longdesc This is a fork of the Linux Libertine and Linux Biolinum fonts
@@ -195244,11 +195307,11 @@ longdesc forked from Linux Libertine. Libertinus Sans: forked from Linux
longdesc Biolinum. Libertinus Mono: forked from Linux Libertine Mono.
longdesc Libertinus Math: an OpenType math font for use in OpenType
longdesc math-capable applications like LuaTeX, XeTeX or MS Word 2007+.
-containersize 1659740
-containerchecksum 5deeffa40e2399169a7ec16fec4d417c27350cb5ccb7f59eb1638172758e88167d24470d889b311760b0739b9fa0251e2389f7ccda0e4e8e2ce3a454406f13be
-doccontainersize 553012
-doccontainerchecksum 410edfda953b321c9fa53e99854eea206177e4486c0fdd6ae3cc20eddb31111f28f17dfd725c5f2dc573d82ba5daa1f75c544709accae84292cff45d52b10c18
-docfiles size=279
+containersize 1795884
+containerchecksum 436e92e8fff1004e39375cebf1bab9b276306fc25ba84b2e5cd75fe315ba98967c47123b0aa7c130b7afb0c906f689a4b5e1935b1b9b349a97e53e58b3b062a5
+doccontainersize 498296
+doccontainerchecksum 3000312e2472cf4f71e22489ba2063e1e0e03a8bb2c255ca2fd0a1b3d62cbf4f15f0117e995255f39cc9784591b30481e0eb9046fe99c3a2aea7b86a3981b672
+docfiles size=244
RELOC/doc/fonts/libertinus-fonts/AUTHORS.txt
RELOC/doc/fonts/libertinus-fonts/CONTRIBUTING.md
RELOC/doc/fonts/libertinus-fonts/CONTRIBUTORS.txt
@@ -195261,9 +195324,8 @@ docfiles size=279
RELOC/doc/fonts/libertinus-fonts/README.md details="Readme"
RELOC/doc/fonts/libertinus-fonts/Sample.pdf details="Font samples"
RELOC/doc/fonts/libertinus-fonts/libertinus.css
- RELOC/doc/fonts/libertinus-fonts/preview.pdf
RELOC/doc/fonts/libertinus-fonts/preview.svg
-runfiles size=871
+runfiles size=936
RELOC/fonts/opentype/public/libertinus-fonts/LibertinusKeyboard-Regular.otf
RELOC/fonts/opentype/public/libertinus-fonts/LibertinusMath-Regular.otf
RELOC/fonts/opentype/public/libertinus-fonts/LibertinusMono-Regular.otf
@@ -195285,7 +195347,7 @@ catalogue-contact-repository https://github.com/alerque/libertinus
catalogue-ctan /fonts/libertinus-fonts
catalogue-license ofl
catalogue-topics font font-body font-proportional font-mono font-serif font-sans font-multilingual font-maths font-otf
-catalogue-version 7.040
+catalogue-version 7.050
name libertinus-otf
category Package
@@ -306732,6 +306794,193 @@ catalogue-license lppl
catalogue-topics verbatim
catalogue-version 1.0
+name sqltex
+category Package
+revision 72338
+shortdesc An SQL Preprocessor for LaTeX
+longdesc SQLTeX is a preprocessor that enables the use of SQL statements
+longdesc in LaTeX. The SQLTeX perl script reads an input file containing
+longdesc the LaTeX source with SQL commands, and writes a LaTeX file in
+longdesc which the SQL commands have been replaced by the values from
+longdesc their execution. It is possible to select a field for
+longdesc substitution in your LaTeX document, or to be used as input in
+longdesc another SQL command. (When an SQL command returns multiple
+longdesc fields and/or rows, the values can only be used within the
+longdesc document.) The default is to use MySQL databases, but Pg,
+longdesc Sybase, Oracle, Ingres, mSQL and PostgreSQL are also supported.
+depend sqltex.ARCH
+containersize 12848
+containerchecksum 5d509b6ccb67f81778208a758716ba89e4e9a7c9ff3aa0f031488f44b62b0af7b84961befa1e0300f87a0a5c9819b4998ebfe8b2d9dc2376392d45296ceec90f
+doccontainersize 319512
+doccontainerchecksum aa26169fa8ecc6ffc78fc9d9f8b395b54ff9db297906800d0f27087d7b01538b10e8f006447207f8ffb6e54361e9947f141811f52b3fe1dcca7cb7df1086a97d
+docfiles size=90
+ texmf-dist/doc/support/sqltex/SQLTeX.pdf details="Package documentation"
+ texmf-dist/doc/support/sqltex/SQLTeX.tex
+srccontainersize 6952096
+srccontainerchecksum 9635c98f9a6b1d1d99dc00fc07d81728d80b4b9dca121b38a9b9a1bf47c25a5906f708c8d3b0e707ddc045cd562e041a6f1f9db930ce12f9b22af9b970fb368a
+srcfiles size=2987
+ texmf-dist/source/support/sqltex/Makefile.am
+ texmf-dist/source/support/sqltex/Makefile.in
+ texmf-dist/source/support/sqltex/README.md
+ texmf-dist/source/support/sqltex/SQLTeX.exe
+ texmf-dist/source/support/sqltex/aclocal.m4
+ texmf-dist/source/support/sqltex/aclocal/ax_prog_perl_modules.m4
+ texmf-dist/source/support/sqltex/configure
+ texmf-dist/source/support/sqltex/configure.ac
+ texmf-dist/source/support/sqltex/doc/Makefile.am
+ texmf-dist/source/support/sqltex/doc/Makefile.in
+ texmf-dist/source/support/sqltex/install-sh
+ texmf-dist/source/support/sqltex/man/Makefile.am
+ texmf-dist/source/support/sqltex/man/Makefile.in
+ texmf-dist/source/support/sqltex/man/sqltex.man
+ texmf-dist/source/support/sqltex/missing
+ texmf-dist/source/support/sqltex/src/Makefile.am
+ texmf-dist/source/support/sqltex/src/Makefile.in
+runfiles size=13
+ texmf-dist/scripts/sqltex/SQLTeX.cfg
+ texmf-dist/scripts/sqltex/SQLTeX_r.dat
+ texmf-dist/scripts/sqltex/sqltex
+catalogue-contact-repository https://github.com/oveas/sqltex
+catalogue-ctan /support/sqltex
+catalogue-license lppl
+catalogue-topics db-access
+catalogue-version 3.0
+
+name sqltex.aarch64-linux
+category Package
+revision 72338
+shortdesc aarch64-linux files of sqltex
+containersize 336
+containerchecksum 80008e0a5bc9c891b8d91ecabb7810b2dc7fe86965c64ba6b15b165687196026b7d57ef282ffd31a6aebcc78581bac977c2d741ab0919d9d2791afa7ef335e1a
+binfiles arch=aarch64-linux size=1
+ bin/aarch64-linux/sqltex
+
+name sqltex.amd64-freebsd
+category Package
+revision 72338
+shortdesc amd64-freebsd files of sqltex
+containersize 336
+containerchecksum 1d25b30f9857e4f13fa2c0290a9e0715f9ca69d3891c0c4997d29b3c9ad0f5ff756f87f5a883a54cf4f3ca1d935109fda7f127e8720d182e24eea50c13a9727f
+binfiles arch=amd64-freebsd size=1
+ bin/amd64-freebsd/sqltex
+
+name sqltex.amd64-netbsd
+category Package
+revision 72338
+shortdesc amd64-netbsd files of sqltex
+containersize 336
+containerchecksum 7f5df0241a5a88116eb581e33a667329150372e23d16311d34fb4ca92d566dfa651d7118ffd6018b3a6e31d982f23c0c25a9b00a6b4e1c25c5089690227d528d
+binfiles arch=amd64-netbsd size=1
+ bin/amd64-netbsd/sqltex
+
+name sqltex.armhf-linux
+category Package
+revision 72338
+shortdesc armhf-linux files of sqltex
+containersize 336
+containerchecksum 2bed96b4f1f7a98eb94655c43cc6e7491c4afcb65209dbb81e0cc08f45a3e575d20f566d6068148824879c696b6ccdafb243f870a07ef169e1256e2ddefb970f
+binfiles arch=armhf-linux size=1
+ bin/armhf-linux/sqltex
+
+name sqltex.i386-freebsd
+category Package
+revision 72338
+shortdesc i386-freebsd files of sqltex
+containersize 336
+containerchecksum 7e06cebb853bc65f853125c1e04f7260eb242a1e000a315b9cfaf71f4505d93fc18467f9146306db97e3a3317c64bc8aa17d2199e83139b101e16dd124a08097
+binfiles arch=i386-freebsd size=1
+ bin/i386-freebsd/sqltex
+
+name sqltex.i386-linux
+category Package
+revision 72338
+shortdesc i386-linux files of sqltex
+containersize 332
+containerchecksum d282dd170dac6ca219d76e64ee9fafbc87593e2ec6d798bd07cc3413f43468743b5df7ee19d0437b29b75e195eff696139524a15f9452d09e7e6b2fde93e4fee
+binfiles arch=i386-linux size=1
+ bin/i386-linux/sqltex
+
+name sqltex.i386-netbsd
+category Package
+revision 72338
+shortdesc i386-netbsd files of sqltex
+containersize 332
+containerchecksum 0933e01c6bbe95eedf1b69dc8d5b05e61a522b309e13d977771e4d426d3d1023161cb264fc80c3d2e01ea4e4e301eb7f29c5fef26f46f9880220b0fb4ec6d042
+binfiles arch=i386-netbsd size=1
+ bin/i386-netbsd/sqltex
+
+name sqltex.i386-solaris
+category Package
+revision 72338
+shortdesc i386-solaris files of sqltex
+containersize 332
+containerchecksum 732d7525140fb53df3205ccd8ff648b80e6f294ab1cf9b76e63d0b1456f6dcf4f3e5513d3b4aa0704f85bd21d58ba7682f7e087c04117b1157946f0fcfd41d33
+binfiles arch=i386-solaris size=1
+ bin/i386-solaris/sqltex
+
+name sqltex.universal-darwin
+category Package
+revision 72338
+shortdesc universal-darwin files of sqltex
+containersize 336
+containerchecksum b70b5cf9eda35f373f7add1466ee95f776962c88cb738f903eea29a4907a577abca18a1aec548cff477d85b6723ae10c65e00dbd6c52b86d48a40e62fb40ed1f
+binfiles arch=universal-darwin size=1
+ bin/universal-darwin/sqltex
+
+name sqltex.windows
+category Package
+revision 72338
+shortdesc windows files of sqltex
+containersize 2304
+containerchecksum 8958e3455a507f8e065998d56e518e39d821c9ebbc383254465998fb4b72c65fa097e7c2e59c44daf76ffb06c8a6df4148783b66e8b85c1e50eed8c649083e87
+binfiles arch=windows size=2
+ bin/windows/sqltex.exe
+
+name sqltex.x86_64-cygwin
+category Package
+revision 72338
+shortdesc x86_64-cygwin files of sqltex
+containersize 336
+containerchecksum 39373d80c287ed12071ff2dd68e51721f9c265f96ee805254898ae92ba2ceee1d2901c8f5322bc617a0380c7c44d6927a8f1fb41bc004966742194951a16445b
+binfiles arch=x86_64-cygwin size=1
+ bin/x86_64-cygwin/sqltex
+
+name sqltex.x86_64-darwinlegacy
+category Package
+revision 72338
+shortdesc x86_64-darwinlegacy files of sqltex
+containersize 344
+containerchecksum c9c201e5f53629f5578001a0b3114f867a7e830af0057b7246519f8fe37ce9f93657497d7460cfdc12b9694871f10ed9f38aa7dea5ff465f52ca9763436a99ee
+binfiles arch=x86_64-darwinlegacy size=1
+ bin/x86_64-darwinlegacy/sqltex
+
+name sqltex.x86_64-linux
+category Package
+revision 72338
+shortdesc x86_64-linux files of sqltex
+containersize 336
+containerchecksum 53b5c71ec6ee0ecaf6ca23bd050df5aa4e1709350c94eb184b32ea08e6abd8c28afc991e2b099e0c0237c5ce9fb8d0b9e771bc7330b39193a1d2bfb3b9ab512e
+binfiles arch=x86_64-linux size=1
+ bin/x86_64-linux/sqltex
+
+name sqltex.x86_64-linuxmusl
+category Package
+revision 72338
+shortdesc x86_64-linuxmusl files of sqltex
+containersize 340
+containerchecksum 5c58b920bfdc8a4aaa03b3e3df31c2f5e75b24b9a36a3b2139fc2e78fd18e9a0d88ec521f3acddffe9d110cfb9f8d9eb19e7478ca07a605e320469cdeb108f4c
+binfiles arch=x86_64-linuxmusl size=1
+ bin/x86_64-linuxmusl/sqltex
+
+name sqltex.x86_64-solaris
+category Package
+revision 72338
+shortdesc x86_64-solaris files of sqltex
+containersize 336
+containerchecksum 89f759c83048704939905bd0ca1f517bd90eb1b4b1c79ad56b383d47c0356dbc77bb374c0b451146130f8fe519fc51862c728ca68dd2638ce8d47206f2ddd9cc
+binfiles arch=x86_64-solaris size=1
+ bin/x86_64-solaris/sqltex
+
name sr-vorl
category Package
revision 59333
@@ -329508,7 +329757,7 @@ docfiles size=376
name texlive-scripts
category TLCore
-revision 72328
+revision 72342
shortdesc TeX Live infrastructure programs
longdesc Includes install-tl, tl-portable, rungs, etc.; not needed for
longdesc tlmgr to run but still ours. Not included in tlcritical.
@@ -329516,10 +329765,10 @@ depend texlive-scripts.ARCH
depend texlive.infra
execute addMap mathpple.map
postaction shortcut type=menu name="TeX Live command-line" cmd=TEXDIR/tlpkg/installer/tl-cmd.bat
-containersize 114460
-containerchecksum 1a454d5d670e39e22002cf12eb33e219cae64ba50e315aa787e6050af562769b1e8a7295441bf77d28f6a83a25a89df818791d40a18014382c1b8a9ab20f972e
-doccontainersize 436980
-doccontainerchecksum 1e05cb48ad25fbf31b0e01232bccc510958967ee045f1c443e10f106f3020085eb5d00ba9ffa608ae5adfde1cece66ca091ec071a7e027e1ccb35c8a84bf09b7
+containersize 114400
+containerchecksum 0cf85777d55e139934881256c38a5b437526aa432729fa81308ee8067f36aa6a018c9d1e9ea7656b836e9b5ed424f8a798a0db36522d6a6535e1a632562d6e1f
+doccontainersize 436976
+doccontainerchecksum 673daa8231d948b66ebc9b6fbf598eac6ab68708500e94298fed26ce4bcb32ec287d92dc1ccc86bc143340893bf025be3dfe355ca8c6d023c84e43145613589b
docfiles size=566
doc.html
texmf-dist/doc/man/man1/fmtutil-sys.1
@@ -356179,7 +356428,7 @@ catalogue-topics font font-body font-sans font-proportional font-otf font-type1
name univie-ling
category Package
-revision 71883
+revision 72341
shortdesc Papers, theses and research proposals in (Applied) Linguistics at Vienna University
relocated 1
longdesc This bundle provides LaTeX2e classes, BibLaTeX files, and
@@ -356193,11 +356442,11 @@ longdesc context. The classes can also be used for General and
longdesc Historical Linguistics as well as for other fields of study at
longdesc Vienna University. In this case, however, some settings may
longdesc have to be adjusted.
-containersize 165488
-containerchecksum f2c61129301cf0de95c0679978d41741bfe5441cf1ca9ed56234e9090cfa682f3ceae0cd6b8aeeb2db2946570853705710bb24e7e6676d739016cbf5d73f110f
-doccontainersize 3794148
-doccontainerchecksum b316ed856c5bd1b4ddd2c5aa07576b2bd4c48c94133cbaf6d7e9419bac6c0a2e854b307a00be1a7830b8d422dd57c32a540e8c348d97176613b3c7ce59d8d0a5
-docfiles size=1384
+containersize 165760
+containerchecksum 95d259a237a0161b22cb983cb92e03dbac4bed34410687ece33384ee8be839dc56ab49ae86b5b6836819f03ad940708a2ace1ecfe2a5309a0a6afc444b6e4cd6
+doccontainersize 3996428
+doccontainerchecksum 3a111911a4f2d931bcde2ff28ea1fe10be2442688d7da65fd592ab70c79d9e68b05c987cb97bcd727a3e9dbfad511d95c33c31dc81228f6bf51c3a8e2741a0c6
+docfiles size=1467
RELOC/doc/latex/univie-ling/README details="Readme"
RELOC/doc/latex/univie-ling/templates/template-expose-deutsch.pdf
RELOC/doc/latex/univie-ling/templates/template-expose-deutsch.tex
@@ -356257,7 +356506,7 @@ catalogue-contact-repository https://github.com/jspitz/univie-ling
catalogue-ctan /macros/latex/contrib/univie-ling
catalogue-license lppl1.3
catalogue-topics linguistic class dissertation article-like misc-paper std-conform
-catalogue-version 2.7
+catalogue-version 2.8
name unizgklasa
category Package
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5 b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
index da29520c7c..2bdfba3c09 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
@@ -1 +1 @@
-da81fdc12b1d3e9cf71f65a43d09a70d texlive.tlpdb
+4f07b69b9c0eaf0430956379625d8c9b texlive.tlpdb
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512 b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
index 3950dd260d..b0a9974fae 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
@@ -1 +1 @@
-51f2a44d1407a33a2366294738da6993e7ef0cd8bed549a80fe1665570b591a569df3d6a0b7be8c3ecb22f3f5501586dd35f5bf1862da3d2a9930c3114e178c8 texlive.tlpdb
+ee15258da30fb4fc7081bbb9799319b40086f1cb8ceaf7fb97450f47351c09ef9d2b0b935469761ba9a273a212b64a1a8b2a1180b9baa28232cab062995b25e0 texlive.tlpdb
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
index 531222b073..076ee2ad5a 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
@@ -1,11 +1,11 @@
-----BEGIN PGP SIGNATURE-----
-iQEzBAEBCgAdFiEE2PL4YFeoV+QqiBBqTOGHfhlDjHAFAmbuCZkACgkQTOGHfhlD
-jHBX5Qf+JV6bIzqrNWsL/ayNEpy/cUWqGNvTOio1L2dvMKWjjhKgc555NcH2S8p4
-5DGjlJRosTKwRzorDow1iD2PTE4Z+xdoN/Qcjz2WX4E9GsBere4tBgQkYNUhMops
-qJZUuDFw0+Htbhwfu1Wm+DWrQVXTchRvie8Ja3u0Lsvj2OLsQMb2vrvdv5Q8GcJ8
-RpVXYW/UK+ilEpc5N+9vWJCjtCbpt2iBVieYPV/wDviGDGmUDvTdD/qcMkaVkk/H
-zTzRsrlQ3Ea+z4Vg19tUs51KKAK7HcS+gcnqtekbzwmGU/1IW5bGN4dFl9LriL8f
-pbw/nLbSabmHNzornPztri5j5znp7A==
-=3S8V
+iQEzBAEBCgAdFiEE2PL4YFeoV+QqiBBqTOGHfhlDjHAFAmbvXcUACgkQTOGHfhlD
+jHCPBwf+MKJDgXDvN54JYud0C/B6pVS4n9mjG0z/jXIf7xygfmT69k0fWplQF7+k
+LzKJefDplpuztS5POBKbE3lshB1OKIKzGUqCZW2ed9ZmdsWXsl3DAEB945DIZOEK
+Pc/vSQeEMHikwBl8JuF/Cg1kTRmmBBPrMcBOCdCxM7E9nOQlTJfZ8BwRVEcbdg+d
+eZjCa1QUAaZBNSJuVJd787cFGQ7VxzDMaWy9jzaJBKBQQv+2J7SSRJo59gjdJPFD
+331yQe/8l2O320Z3misXmFkLf3Kvh/xTIRe0P/2uM51gfQNrcp0tSea8o8070I3P
+5GX053l0mFDof2TolHFkSyrOwC12vA==
+=6itM
-----END PGP SIGNATURE-----
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
index bf102d42fc..940c4875e0 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
Binary files differ
diff --git a/timestamp b/timestamp
index 5279eb0141..456ad3393f 100644
--- a/timestamp
+++ b/timestamp
@@ -2,4 +2,4 @@
# The source CTAN of this site's material:
dante.ctan.org
# The year-month-day-hour-minute of this site's material:
-2024-09-21-02-02
+2024-09-22-02-02
diff --git a/usergrps/usergrps/bg.html b/usergrps/usergrps/bg.html
index dcd55d01e9..65be26f0ee 100644
--- a/usergrps/usergrps/bg.html
+++ b/usergrps/usergrps/bg.html
@@ -58,6 +58,7 @@
<a href="gr.html">gr</a>
<a href="hu.html">hu</a>
<a href="ie.html">ie</a>
+<a href="in.html">in</a>
<a href="is.html">is</a>
<a href="it.html">it</a>
<a href="kh.html">kh</a>
@@ -232,6 +233,7 @@ Bulgaria
<a href="gr.html">gr</a>
<a href="hu.html">hu</a>
<a href="ie.html">ie</a>
+<a href="in.html">in</a>
<a href="is.html">is</a>
<a href="it.html">it</a>
<a href="kh.html">kh</a>
@@ -303,7 +305,7 @@ Bulgaria
<p id="copyright">&copy; NTG - last changed on
-2024-08-05 15:51:16 CEST
+2024-09-21 17:30:58 CEST
</div></body></html>
diff --git a/usergrps/usergrps/br.html b/usergrps/usergrps/br.html
index a8fe6865ca..4491c8c583 100644
--- a/usergrps/usergrps/br.html
+++ b/usergrps/usergrps/br.html
@@ -58,6 +58,7 @@
<a href="gr.html">gr</a>
<a href="hu.html">hu</a>
<a href="ie.html">ie</a>
+<a href="in.html">in</a>
<a href="is.html">is</a>
<a href="it.html">it</a>
<a href="kh.html">kh</a>
@@ -224,6 +225,7 @@
<a href="gr.html">gr</a>
<a href="hu.html">hu</a>
<a href="ie.html">ie</a>
+<a href="in.html">in</a>
<a href="is.html">is</a>
<a href="it.html">it</a>
<a href="kh.html">kh</a>
@@ -295,7 +297,7 @@
<p id="copyright">&copy; NTG - last changed on
-2024-08-05 15:51:16 CEST
+2024-09-21 17:30:58 CEST
</div></body></html>
diff --git a/usergrps/usergrps/cn.html b/usergrps/usergrps/cn.html
index 8392cbe273..4ca6f7a1ab 100644
--- a/usergrps/usergrps/cn.html
+++ b/usergrps/usergrps/cn.html
@@ -58,6 +58,7 @@
<a href="gr.html">gr</a>
<a href="hu.html">hu</a>
<a href="ie.html">ie</a>
+<a href="in.html">in</a>
<a href="is.html">is</a>
<a href="it.html">it</a>
<a href="kh.html">kh</a>
@@ -238,6 +239,7 @@ China
<a href="gr.html">gr</a>
<a href="hu.html">hu</a>
<a href="ie.html">ie</a>
+<a href="in.html">in</a>
<a href="is.html">is</a>
<a href="it.html">it</a>
<a href="kh.html">kh</a>
@@ -309,7 +311,7 @@ China
<p id="copyright">&copy; NTG - last changed on
-2024-08-05 15:51:16 CEST
+2024-09-21 17:30:59 CEST
</div></body></html>
diff --git a/usergrps/usergrps/ct.html b/usergrps/usergrps/ct.html
index dc7ff4503f..1edc9ae308 100644
--- a/usergrps/usergrps/ct.html
+++ b/usergrps/usergrps/ct.html
@@ -58,6 +58,7 @@
<a href="gr.html">gr</a>
<a href="hu.html">hu</a>
<a href="ie.html">ie</a>
+<a href="in.html">in</a>
<a href="is.html">is</a>
<a href="it.html">it</a>
<a href="kh.html">kh</a>
@@ -227,6 +228,7 @@ Spain
<a href="gr.html">gr</a>
<a href="hu.html">hu</a>
<a href="ie.html">ie</a>
+<a href="in.html">in</a>
<a href="is.html">is</a>
<a href="it.html">it</a>
<a href="kh.html">kh</a>
@@ -298,7 +300,7 @@ Spain
<p id="copyright">&copy; NTG - last changed on
-2024-08-05 15:51:16 CEST
+2024-09-21 17:30:59 CEST
</div></body></html>
diff --git a/usergrps/usergrps/cz.html b/usergrps/usergrps/cz.html
index 678bb6ac56..eec52218f5 100644
--- a/usergrps/usergrps/cz.html
+++ b/usergrps/usergrps/cz.html
@@ -58,6 +58,7 @@
<a href="gr.html">gr</a>
<a href="hu.html">hu</a>
<a href="ie.html">ie</a>
+<a href="in.html">in</a>
<a href="is.html">is</a>
<a href="it.html">it</a>
<a href="kh.html">kh</a>
@@ -234,6 +235,7 @@ Czech Republic
<a href="gr.html">gr</a>
<a href="hu.html">hu</a>
<a href="ie.html">ie</a>
+<a href="in.html">in</a>
<a href="is.html">is</a>
<a href="it.html">it</a>
<a href="kh.html">kh</a>
@@ -305,7 +307,7 @@ Czech Republic
<p id="copyright">&copy; NTG - last changed on
-2024-08-05 15:51:16 CEST
+2024-09-21 17:30:59 CEST
</div></body></html>
diff --git a/usergrps/usergrps/de.html b/usergrps/usergrps/de.html
index 9c5372532a..36d27501ba 100644
--- a/usergrps/usergrps/de.html
+++ b/usergrps/usergrps/de.html
@@ -58,6 +58,7 @@
<a href="gr.html">gr</a>
<a href="hu.html">hu</a>
<a href="ie.html">ie</a>
+<a href="in.html">in</a>
<a href="is.html">is</a>
<a href="it.html">it</a>
<a href="kh.html">kh</a>
@@ -237,6 +238,7 @@ Germany
<a href="gr.html">gr</a>
<a href="hu.html">hu</a>
<a href="ie.html">ie</a>
+<a href="in.html">in</a>
<a href="is.html">is</a>
<a href="it.html">it</a>
<a href="kh.html">kh</a>
@@ -308,7 +310,7 @@ Germany
<p id="copyright">&copy; NTG - last changed on
-2024-08-05 15:51:16 CEST
+2024-09-21 17:30:59 CEST
</div></body></html>
diff --git a/usergrps/usergrps/dk.html b/usergrps/usergrps/dk.html
index d23e4d92d0..6caf3bfab6 100644
--- a/usergrps/usergrps/dk.html
+++ b/usergrps/usergrps/dk.html
@@ -58,6 +58,7 @@
<a href="gr.html">gr</a>
<a href="hu.html">hu</a>
<a href="ie.html">ie</a>
+<a href="in.html">in</a>
<a href="is.html">is</a>
<a href="it.html">it</a>
<a href="kh.html">kh</a>
@@ -224,6 +225,7 @@
<a href="gr.html">gr</a>
<a href="hu.html">hu</a>
<a href="ie.html">ie</a>
+<a href="in.html">in</a>
<a href="is.html">is</a>
<a href="it.html">it</a>
<a href="kh.html">kh</a>
@@ -295,7 +297,7 @@
<p id="copyright">&copy; NTG - last changed on
-2024-08-05 15:51:16 CEST
+2024-09-21 17:30:59 CEST
</div></body></html>
diff --git a/usergrps/usergrps/ee.html b/usergrps/usergrps/ee.html
index dd2954e105..5917b5a4cf 100644
--- a/usergrps/usergrps/ee.html
+++ b/usergrps/usergrps/ee.html
@@ -58,6 +58,7 @@
<a href="gr.html">gr</a>
<a href="hu.html">hu</a>
<a href="ie.html">ie</a>
+<a href="in.html">in</a>
<a href="is.html">is</a>
<a href="it.html">it</a>
<a href="kh.html">kh</a>
@@ -226,6 +227,7 @@ EE 2444 Estonia
<a href="gr.html">gr</a>
<a href="hu.html">hu</a>
<a href="ie.html">ie</a>
+<a href="in.html">in</a>
<a href="is.html">is</a>
<a href="it.html">it</a>
<a href="kh.html">kh</a>
@@ -297,7 +299,7 @@ EE 2444 Estonia
<p id="copyright">&copy; NTG - last changed on
-2024-08-05 15:51:16 CEST
+2024-09-21 17:30:59 CEST
</div></body></html>
diff --git a/usergrps/usergrps/es.html b/usergrps/usergrps/es.html
index f919fe4ab4..50c372ebca 100644
--- a/usergrps/usergrps/es.html
+++ b/usergrps/usergrps/es.html
@@ -58,6 +58,7 @@
<a href="gr.html">gr</a>
<a href="hu.html">hu</a>
<a href="ie.html">ie</a>
+<a href="in.html">in</a>
<a href="is.html">is</a>
<a href="it.html">it</a>
<a href="kh.html">kh</a>
@@ -226,6 +227,7 @@ Spain
<a href="gr.html">gr</a>
<a href="hu.html">hu</a>
<a href="ie.html">ie</a>
+<a href="in.html">in</a>
<a href="is.html">is</a>
<a href="it.html">it</a>
<a href="kh.html">kh</a>
@@ -297,7 +299,7 @@ Spain
<p id="copyright">&copy; NTG - last changed on
-2024-08-05 15:51:16 CEST
+2024-09-21 17:30:59 CEST
</div></body></html>
diff --git a/usergrps/usergrps/fr.html b/usergrps/usergrps/fr.html
index d233548ddb..479fceab5d 100644
--- a/usergrps/usergrps/fr.html
+++ b/usergrps/usergrps/fr.html
@@ -58,6 +58,7 @@
<a href="gr.html">gr</a>
<a href="hu.html">hu</a>
<a href="ie.html">ie</a>
+<a href="in.html">in</a>
<a href="is.html">is</a>
<a href="it.html">it</a>
<a href="kh.html">kh</a>
@@ -227,6 +228,7 @@ FRANCE
<a href="gr.html">gr</a>
<a href="hu.html">hu</a>
<a href="ie.html">ie</a>
+<a href="in.html">in</a>
<a href="is.html">is</a>
<a href="it.html">it</a>
<a href="kh.html">kh</a>
@@ -298,7 +300,7 @@ FRANCE
<p id="copyright">&copy; NTG - last changed on
-2024-08-05 15:51:16 CEST
+2024-09-21 17:30:59 CEST
</div></body></html>
diff --git a/usergrps/usergrps/gr.html b/usergrps/usergrps/gr.html
index 6a1a8312ad..73b6c844f1 100644
--- a/usergrps/usergrps/gr.html
+++ b/usergrps/usergrps/gr.html
@@ -58,6 +58,7 @@
<a href="gr.html">gr</a>
<a href="hu.html">hu</a>
<a href="ie.html">ie</a>
+<a href="in.html">in</a>
<a href="is.html">is</a>
<a href="it.html">it</a>
<a href="kh.html">kh</a>
@@ -226,6 +227,7 @@ Greece
<a href="gr.html">gr</a>
<a href="hu.html">hu</a>
<a href="ie.html">ie</a>
+<a href="in.html">in</a>
<a href="is.html">is</a>
<a href="it.html">it</a>
<a href="kh.html">kh</a>
@@ -297,7 +299,7 @@ Greece
<p id="copyright">&copy; NTG - last changed on
-2024-08-05 15:51:16 CEST
+2024-09-21 17:30:59 CEST
</div></body></html>
diff --git a/usergrps/usergrps/hu.html b/usergrps/usergrps/hu.html
index 95c68755b0..6638407d86 100644
--- a/usergrps/usergrps/hu.html
+++ b/usergrps/usergrps/hu.html
@@ -58,6 +58,7 @@
<a href="gr.html">gr</a>
<a href="hu.html">hu</a>
<a href="ie.html">ie</a>
+<a href="in.html">in</a>
<a href="is.html">is</a>
<a href="it.html">it</a>
<a href="kh.html">kh</a>
@@ -240,6 +241,7 @@ Hungary
<a href="gr.html">gr</a>
<a href="hu.html">hu</a>
<a href="ie.html">ie</a>
+<a href="in.html">in</a>
<a href="is.html">is</a>
<a href="it.html">it</a>
<a href="kh.html">kh</a>
@@ -311,7 +313,7 @@ Hungary
<p id="copyright">&copy; NTG - last changed on
-2024-08-05 15:51:16 CEST
+2024-09-21 17:30:59 CEST
</div></body></html>
diff --git a/usergrps/usergrps/ie.html b/usergrps/usergrps/ie.html
index d1f8f4b6fc..951ba8c467 100644
--- a/usergrps/usergrps/ie.html
+++ b/usergrps/usergrps/ie.html
@@ -58,6 +58,7 @@
<a href="gr.html">gr</a>
<a href="hu.html">hu</a>
<a href="ie.html">ie</a>
+<a href="in.html">in</a>
<a href="is.html">is</a>
<a href="it.html">it</a>
<a href="kh.html">kh</a>
@@ -226,6 +227,7 @@ Ireland
<a href="gr.html">gr</a>
<a href="hu.html">hu</a>
<a href="ie.html">ie</a>
+<a href="in.html">in</a>
<a href="is.html">is</a>
<a href="it.html">it</a>
<a href="kh.html">kh</a>
@@ -297,7 +299,7 @@ Ireland
<p id="copyright">&copy; NTG - last changed on
-2024-08-05 15:51:16 CEST
+2024-09-21 17:30:59 CEST
</div></body></html>
diff --git a/usergrps/usergrps/in.html b/usergrps/usergrps/in.html
new file mode 100644
index 0000000000..db1d055c18
--- /dev/null
+++ b/usergrps/usergrps/in.html
@@ -0,0 +1,303 @@
+
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<link rel="stylesheet" type="text/css" href="/ntg.css">
+<link rel="icon" type="image/png" href="/graphics/ntgcolor.png">
+<meta http-equiv="Content-type" content="text/html; charset=UTF-8">
+<meta name="robots" content="index, follow">
+<meta name="description" content="Nederlandstalige TeX Gebruikersgroep">
+<meta name="keywords" content="TeX LaTeX ConTeXt Metafont MetaPost typesetting NTG gebruikersgroep">
+<meta name="DC.Title" content="Nederlandstalige TeX Gebruikersgroep">
+ <script>
+ var onloadCallback = function() {
+ grecaptcha.render('html_element', {
+ 'sitekey' : '6Ld57aUeAAAAAEap5BV04RW0JiI_aAchmBTfhQ3v'
+ });
+ };
+ </script>
+
+<title>TeX User Groups around the world</title>
+</head>
+<body>
+<div id="everything">
+<div id="header">
+<a href="/indexe.html" title="NTG homepage">
+<img src="/graphics/ntglogo.png" alt="NTG Home"></a>
+<p>Dutch language Oriented TeX Users Group</p>
+</div>
+<div id="notheader">
+<div id="main">
+<script> function goBack() { window.history.back(); } </script>
+
+<h1>TeX User Groups around the world</h1>
+
+ <h2>Indian TeX Usergroup</h2>
+ <ul>
+ <li>Changes won't be instant, but are mailed to the maintainer when you click the submit button at the bottom
+ <li>Use either TeX notation or accented characters for accents.
+ <li>Enter phone numbers starting with +, then the country code et
+ cetera,<br>
+ no whitespace, hyphens or other punctuation.
+ </ul>
+ <form id="lugform" method="post" action="/cgi-bin/lugs.rb" name="lugform">
+ <div>
+ <input type="hidden" value="in" name="code"> Links to other
+ User Group correction forms:<br>
+ <b>
+<a href="bg.html">bg</a>
+<a href="br.html">br</a>
+<a href="cn.html">cn</a>
+<a href="ct.html">ct</a>
+<a href="cz.html">cz</a>
+<a href="de.html">de</a>
+<a href="dk.html">dk</a>
+<a href="ee.html">ee</a>
+<a href="es.html">es</a>
+<a href="fr.html">fr</a>
+<a href="gr.html">gr</a>
+<a href="hu.html">hu</a>
+<a href="ie.html">ie</a>
+<a href="in.html">in</a>
+<a href="is.html">is</a>
+<a href="it.html">it</a>
+<a href="kh.html">kh</a>
+<a href="kr.html">kr</a>
+<a href="lt.html">lt</a>
+<a href="mx.html">mx</a>
+<a href="nl.html">nl</a>
+<a href="no.html">no</a>
+<a href="pl.html">pl</a>
+<a href="pt.html">pt</a>
+<a href="tw.html">tw</a>
+<a href="us.html">us</a>
+<a href="uy.html">uy</a>
+<a href="vn.html">vn</a>
+<a href="za.html">za</a>
+<a href="index.html">home</a></b>
+
+ <table id="luginfo">
+<tr>
+ <th colspan="4" class="lug">in -
+ (website unknown)
+<tr>
+ <td class="r">full name
+ <td>
+ <textarea class="lug" cols="20" rows="2" name="full">Indian TeX Usergroup
+ </textarea>
+ <td class="r">periodical
+ <td>
+ <textarea class="lug" cols="20" rows="2" name="publ">
+ </textarea>
+<tr>
+ <td class="r">short name
+ <td><input class="lug" value="TUGIndia" name="short">
+ <td class="r">editor
+ <td><input class="lug" value="" name="editor">
+<tr>
+ <td class="r"> language(s)
+ <td><input class="lug" value="en" name="lang">
+ <td class="r">editor email
+ <td><input class="lug" value="" name="eemail">
+<tr>
+ <td class="r">members
+ <td><input class="lug" value="" name="members">
+ <td>
+ <td>
+<tr>
+ <td class="r">email
+ <td><input class="lug" value="" name="email">
+ <td class="r">bank
+ <td><input class="lug" value="" name="bank">
+<tr>
+ <td class="r">web site
+ <td><input class="lug" value="" name="www">
+ <td class="r">bank account
+ <td><input class="lug" value="" name="bacc">
+<tr>
+ <td class="r">mailing list
+ <td><input class="lug" value="" name="list">
+ <td class="r">swift code
+ <td><input class="lug" value="" name="bcode">
+<tr>
+ <td class="r">subscribe at
+ <td><input class="lug" value="" name="subscr">
+ <td class="r">routing no/BIC
+ <td><input class="lug" value="" name="brout">
+<tr>
+ <td class="tr">address
+ <td>
+ <textarea class="lug" cols="20" rows="6" name=
+ "addr">
+ </textarea>
+ <td class="tr">bank address
+ <td>
+ <textarea class="lug" cols="20" rows="6" name=
+ "baddr">
+ </textarea>
+<tr>
+ <td>
+ <th colspan="3" class="lug">contact addresses
+<tr>
+ <td>&nbsp;
+ <th>policy matters
+ <th>general matters
+ <th>finance / member admin
+<tr>
+ <td class="r">position
+ <td><input class="lug" value="" name="ppos">
+ <td><input class="lug" value="" name="gpos">
+ <td><input class="lug" value="" name="fpos">
+<tr>
+ <td class="r">name
+ <td><input class="lug" value="" name="pname">
+ <td><input class="lug" value="" name="gname">
+ <td><input class="lug" value="" name="fname">
+<tr>
+ <td class="tr">address
+ <td>
+ <textarea class="lug" cols="20" rows="6" name=
+ "paddr">
+ </textarea>
+ <td>
+ <textarea class="lug" cols="20" rows="6" name=
+ "gaddr">
+ </textarea>
+ <td>
+ <textarea class="lug" cols="20" rows="6" name=
+ "faddr">
+ </textarea>
+<tr>
+ <td class="r">email
+ <td><input class="lug" value="" name="pemail">
+ <td><input class="lug" value="" name="gemail">
+ <td><input class="lug" value="" name="femail">
+<tr>
+ <td class="r">phone
+ <td><input class="lug" value="" name="pphone">
+ <td><input class="lug" value="" name="gphone">
+ <td><input class="lug" value="" name="fphone">
+<tr>
+ <td class="r">fax
+ <td><input class="lug" value="" name="pfax">
+ <td><input class="lug" value="" name="gfax">
+ <td><input class="lug" value="" name="ffax">
+<tr>
+ <th>
+ <th>
+ <th class="r"> <a href="lugs/in">download data</a>
+ <th>
+<tr>
+ <td>
+ <th colspan="3" class="lug">submission of corrected data; enter your
+ email address and password first!
+<tr>
+ <td>
+ <td class="r">password
+ <td><input class="lug" name="password">
+ <td><small>obtain from wybo at ntg.nl</small>
+<tr>
+ <td>
+ <td class="r">your email address
+ <td><input class="lug" name="submitemail">
+ <td><small>needed in case we have questions</small>
+<tr>
+ <td>
+ <td>
+ <td colspan="2"><div id="html_element"></div>
+<tr>
+ <td>
+ <td>
+ <td><input class="lug" type="submit" value="submit corrected data">
+ </table>
+ <p>Links to other User Group correction forms:<br>
+ <b>
+<a href="bg.html">bg</a>
+<a href="br.html">br</a>
+<a href="cn.html">cn</a>
+<a href="ct.html">ct</a>
+<a href="cz.html">cz</a>
+<a href="de.html">de</a>
+<a href="dk.html">dk</a>
+<a href="ee.html">ee</a>
+<a href="es.html">es</a>
+<a href="fr.html">fr</a>
+<a href="gr.html">gr</a>
+<a href="hu.html">hu</a>
+<a href="ie.html">ie</a>
+<a href="in.html">in</a>
+<a href="is.html">is</a>
+<a href="it.html">it</a>
+<a href="kh.html">kh</a>
+<a href="kr.html">kr</a>
+<a href="lt.html">lt</a>
+<a href="mx.html">mx</a>
+<a href="nl.html">nl</a>
+<a href="no.html">no</a>
+<a href="pl.html">pl</a>
+<a href="pt.html">pt</a>
+<a href="tw.html">tw</a>
+<a href="us.html">us</a>
+<a href="uy.html">uy</a>
+<a href="vn.html">vn</a>
+<a href="za.html">za</a>
+<a href="index.html">home</a></b>
+
+ </div>
+ </form>
+ <script src="https://www.google.com/recaptcha/api.js?onload=onloadCallback&render=explicit" async defer></script>
+</div>
+<ul id="leftbar">
+ <li><a href="/membersonly-en.html" title="NTG members only">members only</a>
+ <li><a href="/news-en.html" title="News">news</a>
+ <li>about TeX
+ <ul>
+ <li><a href="/watistex.html" title="All about TeX?">about TeX</a>
+ <li><a href="/watislatex.html" title="All about LaTeX?">about LaTeX</a>
+ <li><a href="/watiscontext.html" title="All about ConTeXt?">about ConTeXt</a>
+ <li><a href="/watismf.html" title="All about Metafont?">about Metafont</a>
+ <li><a href="/watismp.html" title="All about MetaPost?">about MetaPost</a>
+ <li><a href="/software.html" title="TeX software">software</a>
+ <li><a href="/faq.html" title="Frequently Asked Questions">FAQ's</a>
+ <li><a href="/literatuur/index.html" title="Literature">literature</a>
+ </ul>
+ <li>about NTG
+ <ul>
+ <li><a href="/doelstelling.html" title="Objectives">objectives</a>
+ <li><a href="/activiteiten.html" title="Activities">activities</a>
+ <li><a href="/bestuur.html" title="Board">board</a>
+ <li><a href="/statuten.html" title="Statutes">statutes</a>
+ <li><a href="/newmember-en.html" title="Membership">membership</a>
+ <li><a href="/privacy-en.html" title="Privacy policy">privacy policy</a>
+ </ul>
+ <li>international
+ <ul>
+ <li><a href="/lug/index.html" title="local TeX user groups">local user groups</a>
+ <li><a href="/conferenties.html" title="conferences">conferences</a>
+ </ul>
+ <li>publications
+ <ul>
+ <li><a href="/maps.html" title="NTG magazine MAPS">MAPS</a>
+ <li><a href="/publicaties.html" title="magazine worldwide">international</a>
+ </ul>
+ <li>events
+ <ul>
+ <li><a href="/bijeen/" title="NTG meetings">NTG meetings</a>
+ <li><a href="https://texcalendar.dante.de/" title="international calendar">TeX calendar</a>
+ </ul>
+ <li>contact
+ <ul>
+ <li><a href="/lug/nl.html" title="addresses">addresses</a>
+ <li><a href="/mail.html" title="mailing lists">mailing lists</a>
+ </ul>
+ <li><a href="/links.html" title="links">links</a>
+ <li><a href="/index.html" title="in Dutch">in Dutch</a>
+</ul>
+</div>
+<p id="copyright">&copy; NTG - last changed on
+
+
+2024-09-21 17:30:59 CEST
+</div></body></html>
+
+
diff --git a/usergrps/usergrps/index.html b/usergrps/usergrps/index.html
index 8d3f3647fa..1a7120cd33 100644
--- a/usergrps/usergrps/index.html
+++ b/usergrps/usergrps/index.html
@@ -47,6 +47,7 @@
<tr><td>gr<td><a href="gr.html">Greece</a>
<tr><td>hu<td><a href="hu.html">Hungary</a>
<tr><td>ie<td><a href="ie.html">Ireland</a>
+<tr><td>in<td><a href="in.html">India</a>
<tr><td>is<td><a href="is.html">Iceland</a>
<tr><td>it<td><a href="it.html">Italy</a>
<tr><td>kh<td><a href="kh.html">Cambodia</a>
@@ -170,7 +171,7 @@ the cell.
<p id="copyright">&copy; NTG - last changed on
-2024-08-05 15:51:17 CEST
+2024-09-21 17:30:59 CEST
</div></body></html>
diff --git a/usergrps/usergrps/is.html b/usergrps/usergrps/is.html
index ff1cbc4d16..408bd03bed 100644
--- a/usergrps/usergrps/is.html
+++ b/usergrps/usergrps/is.html
@@ -58,6 +58,7 @@
<a href="gr.html">gr</a>
<a href="hu.html">hu</a>
<a href="ie.html">ie</a>
+<a href="in.html">in</a>
<a href="is.html">is</a>
<a href="it.html">it</a>
<a href="kh.html">kh</a>
@@ -226,6 +227,7 @@ Iceland
<a href="gr.html">gr</a>
<a href="hu.html">hu</a>
<a href="ie.html">ie</a>
+<a href="in.html">in</a>
<a href="is.html">is</a>
<a href="it.html">it</a>
<a href="kh.html">kh</a>
@@ -297,7 +299,7 @@ Iceland
<p id="copyright">&copy; NTG - last changed on
-2024-08-05 15:51:16 CEST
+2024-09-21 17:30:59 CEST
</div></body></html>
diff --git a/usergrps/usergrps/it.html b/usergrps/usergrps/it.html
index 36b32de540..eb003302c9 100644
--- a/usergrps/usergrps/it.html
+++ b/usergrps/usergrps/it.html
@@ -58,6 +58,7 @@
<a href="gr.html">gr</a>
<a href="hu.html">hu</a>
<a href="ie.html">ie</a>
+<a href="in.html">in</a>
<a href="is.html">is</a>
<a href="it.html">it</a>
<a href="kh.html">kh</a>
@@ -227,6 +228,7 @@ Via Claudio 21
<a href="gr.html">gr</a>
<a href="hu.html">hu</a>
<a href="ie.html">ie</a>
+<a href="in.html">in</a>
<a href="is.html">is</a>
<a href="it.html">it</a>
<a href="kh.html">kh</a>
@@ -298,7 +300,7 @@ Via Claudio 21
<p id="copyright">&copy; NTG - last changed on
-2024-08-05 15:51:16 CEST
+2024-09-21 17:30:59 CEST
</div></body></html>
diff --git a/usergrps/usergrps/kh.html b/usergrps/usergrps/kh.html
index 4d60d1d224..d090d6cd66 100644
--- a/usergrps/usergrps/kh.html
+++ b/usergrps/usergrps/kh.html
@@ -58,6 +58,7 @@
<a href="gr.html">gr</a>
<a href="hu.html">hu</a>
<a href="ie.html">ie</a>
+<a href="in.html">in</a>
<a href="is.html">is</a>
<a href="it.html">it</a>
<a href="kh.html">kh</a>
@@ -226,6 +227,7 @@ Cambodia
<a href="gr.html">gr</a>
<a href="hu.html">hu</a>
<a href="ie.html">ie</a>
+<a href="in.html">in</a>
<a href="is.html">is</a>
<a href="it.html">it</a>
<a href="kh.html">kh</a>
@@ -297,7 +299,7 @@ Cambodia
<p id="copyright">&copy; NTG - last changed on
-2024-08-05 15:51:16 CEST
+2024-09-21 17:30:59 CEST
</div></body></html>
diff --git a/usergrps/usergrps/kr.html b/usergrps/usergrps/kr.html
index 9ecc4198c4..353465cbc1 100644
--- a/usergrps/usergrps/kr.html
+++ b/usergrps/usergrps/kr.html
@@ -58,6 +58,7 @@
<a href="gr.html">gr</a>
<a href="hu.html">hu</a>
<a href="ie.html">ie</a>
+<a href="in.html">in</a>
<a href="is.html">is</a>
<a href="it.html">it</a>
<a href="kh.html">kh</a>
@@ -238,6 +239,7 @@ Republic of Korea
<a href="gr.html">gr</a>
<a href="hu.html">hu</a>
<a href="ie.html">ie</a>
+<a href="in.html">in</a>
<a href="is.html">is</a>
<a href="it.html">it</a>
<a href="kh.html">kh</a>
@@ -309,7 +311,7 @@ Republic of Korea
<p id="copyright">&copy; NTG - last changed on
-2024-08-05 15:51:16 CEST
+2024-09-21 17:30:59 CEST
</div></body></html>
diff --git a/usergrps/usergrps/labels.pdf b/usergrps/usergrps/labels.pdf
index f7b694427c..21522ed156 100644
--- a/usergrps/usergrps/labels.pdf
+++ b/usergrps/usergrps/labels.pdf
Binary files differ
diff --git a/usergrps/usergrps/lt.html b/usergrps/usergrps/lt.html
index 9f95622f2d..cf2ec257a5 100644
--- a/usergrps/usergrps/lt.html
+++ b/usergrps/usergrps/lt.html
@@ -58,6 +58,7 @@
<a href="gr.html">gr</a>
<a href="hu.html">hu</a>
<a href="ie.html">ie</a>
+<a href="in.html">in</a>
<a href="is.html">is</a>
<a href="it.html">it</a>
<a href="kh.html">kh</a>
@@ -226,6 +227,7 @@ Lithuania
<a href="gr.html">gr</a>
<a href="hu.html">hu</a>
<a href="ie.html">ie</a>
+<a href="in.html">in</a>
<a href="is.html">is</a>
<a href="it.html">it</a>
<a href="kh.html">kh</a>
@@ -297,7 +299,7 @@ Lithuania
<p id="copyright">&copy; NTG - last changed on
-2024-08-05 15:51:16 CEST
+2024-09-21 17:30:59 CEST
</div></body></html>
diff --git a/usergrps/usergrps/lugs.html b/usergrps/usergrps/lugs.html
index 04d5eff337..18ac329162 100644
--- a/usergrps/usergrps/lugs.html
+++ b/usergrps/usergrps/lugs.html
@@ -66,6 +66,7 @@ correction forms:
<a href="gr.html">gr</a>
<a href="hu.html">hu</a>
<a href="ie.html">ie</a>
+<a href="in.html">in</a>
<a href="is.html">is</a>
<a href="it.html">it</a>
<a href="kh.html">kh</a>
@@ -103,6 +104,7 @@ in this document.
<a href="#gr">gr</a>
<a href="#hu">hu</a>
<a href="#ie">ie</a>
+<a href="#in">in</a>
<a href="#is">is</a>
<a href="#it">it</a>
<a href="#kh">kh</a>
@@ -147,6 +149,7 @@ in this document.
<a href="#gr">gr</a>
<a href="#hu">hu</a>
<a href="#ie">ie</a>
+<a href="#in">in</a>
<a href="#is">is</a>
<a href="#it">it</a>
<a href="#kh">kh</a>
@@ -189,6 +192,7 @@ in this document.
<a href="#gr">gr</a>
<a href="#hu">hu</a>
<a href="#ie">ie</a>
+<a href="#in">in</a>
<a href="#is">is</a>
<a href="#it">it</a>
<a href="#kh">kh</a>
@@ -241,6 +245,7 @@ in this document.
<a href="#gr">gr</a>
<a href="#hu">hu</a>
<a href="#ie">ie</a>
+<a href="#in">in</a>
<a href="#is">is</a>
<a href="#it">it</a>
<a href="#kh">kh</a>
@@ -282,6 +287,7 @@ in this document.
<a href="#gr">gr</a>
<a href="#hu">hu</a>
<a href="#ie">ie</a>
+<a href="#in">in</a>
<a href="#is">is</a>
<a href="#it">it</a>
<a href="#kh">kh</a>
@@ -345,6 +351,7 @@ in this document.
<a href="#gr">gr</a>
<a href="#hu">hu</a>
<a href="#ie">ie</a>
+<a href="#in">in</a>
<a href="#is">is</a>
<a href="#it">it</a>
<a href="#kh">kh</a>
@@ -412,6 +419,7 @@ in this document.
<a href="#gr">gr</a>
<a href="#hu">hu</a>
<a href="#ie">ie</a>
+<a href="#in">in</a>
<a href="#is">is</a>
<a href="#it">it</a>
<a href="#kh">kh</a>
@@ -456,6 +464,7 @@ in this document.
<a href="#gr">gr</a>
<a href="#hu">hu</a>
<a href="#ie">ie</a>
+<a href="#in">in</a>
<a href="#is">is</a>
<a href="#it">it</a>
<a href="#kh">kh</a>
@@ -493,6 +502,7 @@ in this document.
<a href="#gr">gr</a>
<a href="#hu">hu</a>
<a href="#ie">ie</a>
+<a href="#in">in</a>
<a href="#is">is</a>
<a href="#it">it</a>
<a href="#kh">kh</a>
@@ -547,6 +557,7 @@ in this document.
<a href="#gr">gr</a>
<a href="#hu">hu</a>
<a href="#ie">ie</a>
+<a href="#in">in</a>
<a href="#is">is</a>
<a href="#it">it</a>
<a href="#kh">kh</a>
@@ -600,6 +611,7 @@ in this document.
<a href="#gr">gr</a>
<a href="#hu">hu</a>
<a href="#ie">ie</a>
+<a href="#in">in</a>
<a href="#is">is</a>
<a href="#it">it</a>
<a href="#kh">kh</a>
@@ -642,6 +654,7 @@ in this document.
<a href="#gr">gr</a>
<a href="#hu">hu</a>
<a href="#ie">ie</a>
+<a href="#in">in</a>
<a href="#is">is</a>
<a href="#it">it</a>
<a href="#kh">kh</a>
@@ -696,6 +709,7 @@ in this document.
<a href="#gr">gr</a>
<a href="#hu">hu</a>
<a href="#ie">ie</a>
+<a href="#in">in</a>
<a href="#is">is</a>
<a href="#it">it</a>
<a href="#kh">kh</a>
@@ -725,6 +739,42 @@ in this document.
<tr><td class="tr">address: <td>Silmaril Consultants<br>Cork T12 WEX9<br>Ireland
<tr><td class="r">email: <td>peter@silmaril.ie
<tr><td class="r">phone: <td>+353 86 824 5333
+<tr id="in"><td colspan="2"><b>
+<a href="#bg">bg</a>
+<a href="#br">br</a>
+<a href="#cn">cn</a>
+<a href="#ct">ct</a>
+<a href="#cz">cz</a>
+<a href="#de">de</a>
+<a href="#dk">dk</a>
+<a href="#ee">ee</a>
+<a href="#es">es</a>
+<a href="#fr">fr</a>
+<a href="#gr">gr</a>
+<a href="#hu">hu</a>
+<a href="#ie">ie</a>
+<a href="#in">in</a>
+<a href="#is">is</a>
+<a href="#it">it</a>
+<a href="#kh">kh</a>
+<a href="#kr">kr</a>
+<a href="#lt">lt</a>
+<a href="#mx">mx</a>
+<a href="#nl">nl</a>
+<a href="#no">no</a>
+<a href="#pl">pl</a>
+<a href="#pt">pt</a>
+<a href="#tw">tw</a>
+<a href="#us">us</a>
+<a href="#uy">uy</a>
+<a href="#vn">vn</a>
+<a href="#za">za</a>
+<b>
+
+<tr><th class="kop"><img src="images/in.png" width="48" alt="flag"><th class="kop">in - India
+<tr><td class="r">short name: <td>TUGIndia
+<tr><td class="r">full name: <td>Indian TeX Usergroup
+<tr><td class="r">language: <td>en
<tr id="is"><td colspan="2"><b>
<a href="#bg">bg</a>
<a href="#br">br</a>
@@ -739,6 +789,7 @@ in this document.
<a href="#gr">gr</a>
<a href="#hu">hu</a>
<a href="#ie">ie</a>
+<a href="#in">in</a>
<a href="#is">is</a>
<a href="#it">it</a>
<a href="#kh">kh</a>
@@ -783,6 +834,7 @@ in this document.
<a href="#gr">gr</a>
<a href="#hu">hu</a>
<a href="#ie">ie</a>
+<a href="#in">in</a>
<a href="#is">is</a>
<a href="#it">it</a>
<a href="#kh">kh</a>
@@ -839,6 +891,7 @@ in this document.
<a href="#gr">gr</a>
<a href="#hu">hu</a>
<a href="#ie">ie</a>
+<a href="#in">in</a>
<a href="#is">is</a>
<a href="#it">it</a>
<a href="#kh">kh</a>
@@ -877,6 +930,7 @@ in this document.
<a href="#gr">gr</a>
<a href="#hu">hu</a>
<a href="#ie">ie</a>
+<a href="#in">in</a>
<a href="#is">is</a>
<a href="#it">it</a>
<a href="#kh">kh</a>
@@ -932,6 +986,7 @@ in this document.
<a href="#gr">gr</a>
<a href="#hu">hu</a>
<a href="#ie">ie</a>
+<a href="#in">in</a>
<a href="#is">is</a>
<a href="#it">it</a>
<a href="#kh">kh</a>
@@ -974,6 +1029,7 @@ in this document.
<a href="#gr">gr</a>
<a href="#hu">hu</a>
<a href="#ie">ie</a>
+<a href="#in">in</a>
<a href="#is">is</a>
<a href="#it">it</a>
<a href="#kh">kh</a>
@@ -1015,6 +1071,7 @@ in this document.
<a href="#gr">gr</a>
<a href="#hu">hu</a>
<a href="#ie">ie</a>
+<a href="#in">in</a>
<a href="#is">is</a>
<a href="#it">it</a>
<a href="#kh">kh</a>
@@ -1077,6 +1134,7 @@ in this document.
<a href="#gr">gr</a>
<a href="#hu">hu</a>
<a href="#ie">ie</a>
+<a href="#in">in</a>
<a href="#is">is</a>
<a href="#it">it</a>
<a href="#kh">kh</a>
@@ -1120,6 +1178,7 @@ in this document.
<a href="#gr">gr</a>
<a href="#hu">hu</a>
<a href="#ie">ie</a>
+<a href="#in">in</a>
<a href="#is">is</a>
<a href="#it">it</a>
<a href="#kh">kh</a>
@@ -1179,6 +1238,7 @@ in this document.
<a href="#gr">gr</a>
<a href="#hu">hu</a>
<a href="#ie">ie</a>
+<a href="#in">in</a>
<a href="#is">is</a>
<a href="#it">it</a>
<a href="#kh">kh</a>
@@ -1221,6 +1281,7 @@ in this document.
<a href="#gr">gr</a>
<a href="#hu">hu</a>
<a href="#ie">ie</a>
+<a href="#in">in</a>
<a href="#is">is</a>
<a href="#it">it</a>
<a href="#kh">kh</a>
@@ -1261,6 +1322,7 @@ in this document.
<a href="#gr">gr</a>
<a href="#hu">hu</a>
<a href="#ie">ie</a>
+<a href="#in">in</a>
<a href="#is">is</a>
<a href="#it">it</a>
<a href="#kh">kh</a>
@@ -1297,7 +1359,7 @@ in this document.
<tr><td class="r">phone: <td>+15032239994
<tr><td class="r">fax: <td>+18153013568
<tr><td class="h3" colspan="2">Secretary
-<tr><td class="r">name: <td>Jim Hefferon
+<tr><td class="r">name: <td>Klaus Hoeppner
<tr><td class="r">email: <td>secretary@tug.org
<tr><td class="h3" colspan="2">Treasurer
<tr><td class="r">name: <td>Karl Berry
@@ -1316,6 +1378,7 @@ in this document.
<a href="#gr">gr</a>
<a href="#hu">hu</a>
<a href="#ie">ie</a>
+<a href="#in">in</a>
<a href="#is">is</a>
<a href="#it">it</a>
<a href="#kh">kh</a>
@@ -1356,6 +1419,7 @@ in this document.
<a href="#gr">gr</a>
<a href="#hu">hu</a>
<a href="#ie">ie</a>
+<a href="#in">in</a>
<a href="#is">is</a>
<a href="#it">it</a>
<a href="#kh">kh</a>
@@ -1399,6 +1463,7 @@ in this document.
<a href="#gr">gr</a>
<a href="#hu">hu</a>
<a href="#ie">ie</a>
+<a href="#in">in</a>
<a href="#is">is</a>
<a href="#it">it</a>
<a href="#kh">kh</a>
@@ -1482,7 +1547,7 @@ in this document.
<p id="copyright">&copy; NTG - last changed on
-2024-08-05 15:51:17 CEST
+2024-09-21 17:30:59 CEST
</div></body></html>
diff --git a/usergrps/usergrps/lugs.pdf b/usergrps/usergrps/lugs.pdf
index d2dd7c6347..3bc9795279 100644
--- a/usergrps/usergrps/lugs.pdf
+++ b/usergrps/usergrps/lugs.pdf
Binary files differ
diff --git a/usergrps/usergrps/lugs.tex b/usergrps/usergrps/lugs.tex
index e43f3c00b1..5d795fc2e7 100644
--- a/usergrps/usergrps/lugs.tex
+++ b/usergrps/usergrps/lugs.tex
@@ -277,6 +277,12 @@
\item[phone] +353 86 824 5333
\end{mylist}
\begin{mylist}
+\head{in}{India}
+\item[short name] TUGIndia
+\item[full name] Indian TeX Usergroup
+\item[language] en
+\end{mylist}
+\begin{mylist}
\head{is}{Iceland}
\item[short name] ÍsTeX
\item[full name] Vefur íslenskra TeX notenda
@@ -499,7 +505,7 @@
\item[phone] +15032239994
\item[fax] +18153013568
\subhead{Secretary}
-\item[name] Jim Hefferon
+\item[name] Klaus Hoeppner
\item[email] secretary@tug.org
\subhead{Treasurer}
\item[name] Karl Berry
diff --git a/usergrps/usergrps/mx.html b/usergrps/usergrps/mx.html
index d8567a238b..653dbff89a 100644
--- a/usergrps/usergrps/mx.html
+++ b/usergrps/usergrps/mx.html
@@ -58,6 +58,7 @@
<a href="gr.html">gr</a>
<a href="hu.html">hu</a>
<a href="ie.html">ie</a>
+<a href="in.html">in</a>
<a href="is.html">is</a>
<a href="it.html">it</a>
<a href="kh.html">kh</a>
@@ -227,6 +228,7 @@ Mexico
<a href="gr.html">gr</a>
<a href="hu.html">hu</a>
<a href="ie.html">ie</a>
+<a href="in.html">in</a>
<a href="is.html">is</a>
<a href="it.html">it</a>
<a href="kh.html">kh</a>
@@ -298,7 +300,7 @@ Mexico
<p id="copyright">&copy; NTG - last changed on
-2024-08-05 15:51:16 CEST
+2024-09-21 17:30:59 CEST
</div></body></html>
diff --git a/usergrps/usergrps/nl.html b/usergrps/usergrps/nl.html
index ee3e4fa56d..56c28243af 100644
--- a/usergrps/usergrps/nl.html
+++ b/usergrps/usergrps/nl.html
@@ -58,6 +58,7 @@
<a href="gr.html">gr</a>
<a href="hu.html">hu</a>
<a href="ie.html">ie</a>
+<a href="in.html">in</a>
<a href="is.html">is</a>
<a href="it.html">it</a>
<a href="kh.html">kh</a>
@@ -230,6 +231,7 @@ The Netherlands
<a href="gr.html">gr</a>
<a href="hu.html">hu</a>
<a href="ie.html">ie</a>
+<a href="in.html">in</a>
<a href="is.html">is</a>
<a href="it.html">it</a>
<a href="kh.html">kh</a>
@@ -301,7 +303,7 @@ The Netherlands
<p id="copyright">&copy; NTG - last changed on
-2024-08-05 15:51:16 CEST
+2024-09-21 17:30:59 CEST
</div></body></html>
diff --git a/usergrps/usergrps/no.html b/usergrps/usergrps/no.html
index 0d69ac69b1..b04a3cbf6c 100644
--- a/usergrps/usergrps/no.html
+++ b/usergrps/usergrps/no.html
@@ -58,6 +58,7 @@
<a href="gr.html">gr</a>
<a href="hu.html">hu</a>
<a href="ie.html">ie</a>
+<a href="in.html">in</a>
<a href="is.html">is</a>
<a href="it.html">it</a>
<a href="kh.html">kh</a>
@@ -227,6 +228,7 @@ Norway
<a href="gr.html">gr</a>
<a href="hu.html">hu</a>
<a href="ie.html">ie</a>
+<a href="in.html">in</a>
<a href="is.html">is</a>
<a href="it.html">it</a>
<a href="kh.html">kh</a>
@@ -298,7 +300,7 @@ Norway
<p id="copyright">&copy; NTG - last changed on
-2024-08-05 15:51:16 CEST
+2024-09-21 17:30:59 CEST
</div></body></html>
diff --git a/usergrps/usergrps/pl.html b/usergrps/usergrps/pl.html
index 58b510e198..08b8bf946f 100644
--- a/usergrps/usergrps/pl.html
+++ b/usergrps/usergrps/pl.html
@@ -58,6 +58,7 @@
<a href="gr.html">gr</a>
<a href="hu.html">hu</a>
<a href="ie.html">ie</a>
+<a href="in.html">in</a>
<a href="is.html">is</a>
<a href="it.html">it</a>
<a href="kh.html">kh</a>
@@ -234,6 +235,7 @@ Poland
<a href="gr.html">gr</a>
<a href="hu.html">hu</a>
<a href="ie.html">ie</a>
+<a href="in.html">in</a>
<a href="is.html">is</a>
<a href="it.html">it</a>
<a href="kh.html">kh</a>
@@ -305,7 +307,7 @@ Poland
<p id="copyright">&copy; NTG - last changed on
-2024-08-05 15:51:16 CEST
+2024-09-21 17:30:59 CEST
</div></body></html>
diff --git a/usergrps/usergrps/pt.html b/usergrps/usergrps/pt.html
index c6960579ad..4978496fb7 100644
--- a/usergrps/usergrps/pt.html
+++ b/usergrps/usergrps/pt.html
@@ -58,6 +58,7 @@
<a href="gr.html">gr</a>
<a href="hu.html">hu</a>
<a href="ie.html">ie</a>
+<a href="in.html">in</a>
<a href="is.html">is</a>
<a href="it.html">it</a>
<a href="kh.html">kh</a>
@@ -228,6 +229,7 @@ Portugal
<a href="gr.html">gr</a>
<a href="hu.html">hu</a>
<a href="ie.html">ie</a>
+<a href="in.html">in</a>
<a href="is.html">is</a>
<a href="it.html">it</a>
<a href="kh.html">kh</a>
@@ -299,7 +301,7 @@ Portugal
<p id="copyright">&copy; NTG - last changed on
-2024-08-05 15:51:16 CEST
+2024-09-21 17:30:59 CEST
</div></body></html>
diff --git a/usergrps/usergrps/tw.html b/usergrps/usergrps/tw.html
index fc99920ae0..d1dfd34ccb 100644
--- a/usergrps/usergrps/tw.html
+++ b/usergrps/usergrps/tw.html
@@ -58,6 +58,7 @@
<a href="gr.html">gr</a>
<a href="hu.html">hu</a>
<a href="ie.html">ie</a>
+<a href="in.html">in</a>
<a href="is.html">is</a>
<a href="it.html">it</a>
<a href="kh.html">kh</a>
@@ -224,6 +225,7 @@
<a href="gr.html">gr</a>
<a href="hu.html">hu</a>
<a href="ie.html">ie</a>
+<a href="in.html">in</a>
<a href="is.html">is</a>
<a href="it.html">it</a>
<a href="kh.html">kh</a>
@@ -295,7 +297,7 @@
<p id="copyright">&copy; NTG - last changed on
-2024-08-05 15:51:16 CEST
+2024-09-21 17:30:59 CEST
</div></body></html>
diff --git a/usergrps/usergrps/us.html b/usergrps/usergrps/us.html
index 5effa54791..e8c1f3368f 100644
--- a/usergrps/usergrps/us.html
+++ b/usergrps/usergrps/us.html
@@ -58,6 +58,7 @@
<a href="gr.html">gr</a>
<a href="hu.html">hu</a>
<a href="ie.html">ie</a>
+<a href="in.html">in</a>
<a href="is.html">is</a>
<a href="it.html">it</a>
<a href="kh.html">kh</a>
@@ -152,7 +153,7 @@ USA
<tr>
<td class="r">name
<td><input class="lug" value="Arthur Rosendahl" name="pname">
- <td><input class="lug" value="Jim Hefferon" name="gname">
+ <td><input class="lug" value="Klaus Hoeppner" name="gname">
<td><input class="lug" value="Karl Berry" name="fname">
<tr>
<td class="tr">address
@@ -226,6 +227,7 @@ USA
<a href="gr.html">gr</a>
<a href="hu.html">hu</a>
<a href="ie.html">ie</a>
+<a href="in.html">in</a>
<a href="is.html">is</a>
<a href="it.html">it</a>
<a href="kh.html">kh</a>
@@ -297,7 +299,7 @@ USA
<p id="copyright">&copy; NTG - last changed on
-2024-08-05 15:51:16 CEST
+2024-09-21 17:30:59 CEST
</div></body></html>
diff --git a/usergrps/usergrps/uy.html b/usergrps/usergrps/uy.html
index 22f21ddac6..f500430208 100644
--- a/usergrps/usergrps/uy.html
+++ b/usergrps/usergrps/uy.html
@@ -58,6 +58,7 @@
<a href="gr.html">gr</a>
<a href="hu.html">hu</a>
<a href="ie.html">ie</a>
+<a href="in.html">in</a>
<a href="is.html">is</a>
<a href="it.html">it</a>
<a href="kh.html">kh</a>
@@ -224,6 +225,7 @@
<a href="gr.html">gr</a>
<a href="hu.html">hu</a>
<a href="ie.html">ie</a>
+<a href="in.html">in</a>
<a href="is.html">is</a>
<a href="it.html">it</a>
<a href="kh.html">kh</a>
@@ -295,7 +297,7 @@
<p id="copyright">&copy; NTG - last changed on
-2024-08-05 15:51:16 CEST
+2024-09-21 17:30:59 CEST
</div></body></html>
diff --git a/usergrps/usergrps/vn.html b/usergrps/usergrps/vn.html
index e614b725b1..5d291b906f 100644
--- a/usergrps/usergrps/vn.html
+++ b/usergrps/usergrps/vn.html
@@ -58,6 +58,7 @@
<a href="gr.html">gr</a>
<a href="hu.html">hu</a>
<a href="ie.html">ie</a>
+<a href="in.html">in</a>
<a href="is.html">is</a>
<a href="it.html">it</a>
<a href="kh.html">kh</a>
@@ -232,6 +233,7 @@ Việt Nam
<a href="gr.html">gr</a>
<a href="hu.html">hu</a>
<a href="ie.html">ie</a>
+<a href="in.html">in</a>
<a href="is.html">is</a>
<a href="it.html">it</a>
<a href="kh.html">kh</a>
@@ -303,7 +305,7 @@ Việt Nam
<p id="copyright">&copy; NTG - last changed on
-2024-08-05 15:51:17 CEST
+2024-09-21 17:30:59 CEST
</div></body></html>
diff --git a/usergrps/usergrps/za.html b/usergrps/usergrps/za.html
index 8f707fe6e4..c5d71f7499 100644
--- a/usergrps/usergrps/za.html
+++ b/usergrps/usergrps/za.html
@@ -58,6 +58,7 @@
<a href="gr.html">gr</a>
<a href="hu.html">hu</a>
<a href="ie.html">ie</a>
+<a href="in.html">in</a>
<a href="is.html">is</a>
<a href="it.html">it</a>
<a href="kh.html">kh</a>
@@ -227,6 +228,7 @@ South Africa
<a href="gr.html">gr</a>
<a href="hu.html">hu</a>
<a href="ie.html">ie</a>
+<a href="in.html">in</a>
<a href="is.html">is</a>
<a href="it.html">it</a>
<a href="kh.html">kh</a>
@@ -298,7 +300,7 @@ South Africa
<p id="copyright">&copy; NTG - last changed on
-2024-08-05 15:51:17 CEST
+2024-09-21 17:30:59 CEST
</div></body></html>