summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CTAN.sites4
-rw-r--r--FILES.byname109
-rw-r--r--FILES.byname.gzbin2644392 -> 2644392 bytes
-rw-r--r--FILES.last07days109
-rw-r--r--biblio/ctan-bibdata/ctan.bib14
-rw-r--r--macros/latex/contrib/abntexto/README4
-rw-r--r--macros/latex/contrib/abntexto/abntexto.cls56
-rw-r--r--macros/latex/contrib/abntexto/abntexto.pdfbin258189 -> 260747 bytes
-rw-r--r--macros/latex/contrib/abntexto/abntexto.tex2
-rw-r--r--macros/latex/contrib/fontscale/README.txt10
-rw-r--r--macros/latex/contrib/fontscale/fontscale-manual-table-classic.tex72
-rw-r--r--macros/latex/contrib/fontscale/fontscale-manual-table-font-steps.tex70
-rw-r--r--macros/latex/contrib/fontscale/fontscale-manual-table-modular-musical.tex70
-rw-r--r--macros/latex/contrib/fontscale/fontscale-manual.pdfbin129635 -> 129725 bytes
-rw-r--r--macros/latex/contrib/fontscale/fontscale-manual.tex764
-rw-r--r--macros/latex/contrib/fontscale/fontscale.sty2621
-rw-r--r--macros/latex/contrib/hulipsum/README2
-rw-r--r--macros/latex/contrib/hulipsum/hulipsum.dtx77
-rw-r--r--macros/latex/contrib/hulipsum/hulipsum.ins4
-rw-r--r--macros/latex/contrib/hulipsum/hulipsum.pdfbin145394 -> 156432 bytes
-rw-r--r--systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb177
-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.xzbin2564156 -> 2565004 bytes
-rw-r--r--timestamp2
27 files changed, 2117 insertions, 2074 deletions
diff --git a/CTAN.sites b/CTAN.sites
index 599a3b4e88..fec4dca3b6 100644
--- a/CTAN.sites
+++ b/CTAN.sites
@@ -22,10 +22,6 @@ by country):
URL: https://mirror.marwan.ma/ctan/
- ftp.sun.ac.za (South Africa)
- URL: ftp://ftp.sun.ac.za/CTAN/
- URL: http://ftp.sun.ac.za/ftp/CTAN/
-
mirror.ufs.ac.za (South Africa)
URL: rsync://mirror.ufs.ac.za/CTAN/
URL: https://mirror.ufs.ac.za/ctan/
diff --git a/FILES.byname b/FILES.byname
index 159e29aecb..2d6315289b 100644
--- a/FILES.byname
+++ b/FILES.byname
@@ -2081,12 +2081,12 @@
2024/03/12 | 1837 | biblio/citation-style-language/README.md
2024/03/12 | 12878 | biblio/citation-style-language/vancouver.csl
2024/03/12 | 4553440 | biblio/citation-style-language.zip
-2024/04/06 | 1678 | biblio/ctan-bibdata/biblatex-ctan/ctan.bbx
+2024/04/07 | 1678 | biblio/ctan-bibdata/biblatex-ctan/ctan.bbx
2022/10/08 | 127 | biblio/ctan-bibdata/biblatex-ctan/ctan.cbx
-2024/04/06 | 2859835 | biblio/ctan-bibdata/ctan.bib
-2024/04/06 | 3708800 | biblio/ctan-bibdata/ctan.pdf
+2024/04/07 | 2859792 | biblio/ctan-bibdata/ctan.bib
+2024/04/07 | 3708800 | biblio/ctan-bibdata/ctan.pdf
2023/01/16 | 1489 | biblio/ctan-bibdata/README
-2024/04/06 | 4120024 | biblio/ctan-bibdata.zip
+2024/04/07 | 4120019 | 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
@@ -5448,7 +5448,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/04/06 | 70027 | FILES.last07days
+2024/04/07 | 71707 | 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
@@ -223715,13 +223715,13 @@
2018/11/24 | 5396 | macros/latex/contrib/abntex2/tex/abntex2-options.bib
2018/11/25 | 6520886 | macros/latex/contrib/abntex2.zip
2023/10/12 | 743 | macros/latex/contrib/abntexto/abntexto.bib
-2023/11/13 | 27654 | macros/latex/contrib/abntexto/abntexto.cls
-2023/11/13 | 258189 | macros/latex/contrib/abntexto/abntexto.pdf
-2023/11/13 | 15728 | macros/latex/contrib/abntexto/abntexto.tex
+2024/04/06 | 28132 | macros/latex/contrib/abntexto/abntexto.cls
+2024/04/06 | 260747 | macros/latex/contrib/abntexto/abntexto.pdf
+2024/04/06 | 15728 | macros/latex/contrib/abntexto/abntexto.tex
2023/10/13 | 72206 | macros/latex/contrib/abntexto/exemplo.pdf
2023/10/13 | 6266 | macros/latex/contrib/abntexto/exemplo.tex
-2023/11/13 | 241 | macros/latex/contrib/abntexto/README
-2023/11/13 | 227632 | macros/latex/contrib/abntexto.zip
+2024/04/07 | 241 | macros/latex/contrib/abntexto/README
+2024/04/07 | 229180 | macros/latex/contrib/abntexto.zip
2020/04/28 | 715 | macros/latex/contrib/abnt/README.md
2020/06/07 | 122436 | macros/latex/contrib/abnt.zip
2022/11/06 | 245502 | macros/latex/contrib/abraces/abraces-doc.pdf
@@ -235337,14 +235337,14 @@
2014/03/23 | 1645 | macros/latex/contrib/fontaxes/README
2020/07/22 | 137019 | macros/latex/contrib/fontaxes.zip
2024/03/08 | 7169 | macros/latex/contrib/fontscale/beery.cls
-2024/03/31 | 129635 | macros/latex/contrib/fontscale/fontscale-manual.pdf
-2024/03/08 | 1012 | macros/latex/contrib/fontscale/fontscale-manual-table-classic.tex
-2024/03/08 | 787 | macros/latex/contrib/fontscale/fontscale-manual-table-font-steps.tex
-2024/03/08 | 1024 | macros/latex/contrib/fontscale/fontscale-manual-table-modular-musical.tex
-2024/03/31 | 20667 | macros/latex/contrib/fontscale/fontscale-manual.tex
-2024/03/31 | 49480 | macros/latex/contrib/fontscale/fontscale.sty
-2024/03/08 | 265 | macros/latex/contrib/fontscale/README.txt
-2024/04/01 | 143170 | macros/latex/contrib/fontscale.zip
+2024/04/07 | 129725 | macros/latex/contrib/fontscale/fontscale-manual.pdf
+2024/03/08 | 1048 | macros/latex/contrib/fontscale/fontscale-manual-table-classic.tex
+2024/03/08 | 822 | macros/latex/contrib/fontscale/fontscale-manual-table-font-steps.tex
+2024/03/08 | 1059 | macros/latex/contrib/fontscale/fontscale-manual-table-modular-musical.tex
+2024/04/07 | 20996 | macros/latex/contrib/fontscale/fontscale-manual.tex
+2024/04/07 | 51330 | macros/latex/contrib/fontscale/fontscale.sty
+2024/03/08 | 270 | macros/latex/contrib/fontscale/README.txt
+2024/04/07 | 143386 | macros/latex/contrib/fontscale.zip
2021/08/04 | 75970 | macros/latex/contrib/fontsize/fontsize.dtx
2021/08/04 | 384305 | macros/latex/contrib/fontsize/fontsize.pdf
2021/08/04 | 1511 | macros/latex/contrib/fontsize/README
@@ -238045,11 +238045,11 @@
2022/10/16 | 21740 | macros/latex/contrib/huaz/huaz.tex
2022/10/16 | 688 | macros/latex/contrib/huaz/README
2022/10/16 | 332295 | macros/latex/contrib/huaz.zip
-2020/11/03 | 174943 | macros/latex/contrib/hulipsum/hulipsum.dtx
-2020/11/01 | 1704 | macros/latex/contrib/hulipsum/hulipsum.ins
-2020/11/03 | 145394 | macros/latex/contrib/hulipsum/hulipsum.pdf
-2020/11/01 | 898 | macros/latex/contrib/hulipsum/README
-2020/11/03 | 207607 | macros/latex/contrib/hulipsum.zip
+2024/04/07 | 176844 | macros/latex/contrib/hulipsum/hulipsum.dtx
+2024/04/07 | 1704 | macros/latex/contrib/hulipsum/hulipsum.ins
+2024/04/07 | 156432 | macros/latex/contrib/hulipsum/hulipsum.pdf
+2024/04/07 | 898 | macros/latex/contrib/hulipsum/README
+2024/04/07 | 216269 | macros/latex/contrib/hulipsum.zip
2016/11/20 | 25418 | macros/latex/contrib/hustthesis/fig-example.pdf
2016/11/20 | 112410 | macros/latex/contrib/hustthesis/hustthesis.dtx
2016/11/20 | 201843 | macros/latex/contrib/hustthesis/hustthesis-en-example.pdf
@@ -305398,7 +305398,7 @@
2024/03/18 | 16452 | systems/texlive/tlnet/archive/beautybook.r70672.tar.xz
2024/02/26 | 858696 | systems/texlive/tlnet/archive/beautynote.doc.r70155.tar.xz
2024/02/26 | 5132 | systems/texlive/tlnet/archive/beautynote.r70155.tar.xz
-2024/02/23 | 922480 | systems/texlive/tlnet/archive/beebe.r70062.tar.xz
+2024/04/07 | 922444 | systems/texlive/tlnet/archive/beebe.r70870.tar.xz
2022/05/08 | 785552 | systems/texlive/tlnet/archive/begingreek.doc.r63255.tar.xz
2022/05/08 | 1808 | systems/texlive/tlnet/archive/begingreek.r63255.tar.xz
2022/05/08 | 7856 | systems/texlive/tlnet/archive/begingreek.source.r63255.tar.xz
@@ -305804,9 +305804,9 @@
2019/02/28 | 362388 | systems/texlive/tlnet/archive/bitelist.doc.r25779.tar.xz
2019/02/28 | 5352 | systems/texlive/tlnet/archive/bitelist.r25779.tar.xz
2019/02/28 | 6228 | systems/texlive/tlnet/archive/bitelist.source.r25779.tar.xz
-2024/03/27 | 735480 | systems/texlive/tlnet/archive/bithesis.doc.r70782.tar.xz
-2024/03/27 | 20156 | systems/texlive/tlnet/archive/bithesis.r70782.tar.xz
-2024/03/27 | 26840 | systems/texlive/tlnet/archive/bithesis.source.r70782.tar.xz
+2024/04/07 | 737020 | systems/texlive/tlnet/archive/bithesis.doc.r70873.tar.xz
+2024/04/07 | 20316 | systems/texlive/tlnet/archive/bithesis.r70873.tar.xz
+2024/04/07 | 27012 | systems/texlive/tlnet/archive/bithesis.source.r70873.tar.xz
2019/02/28 | 175700 | systems/texlive/tlnet/archive/bitpattern.doc.r39073.tar.xz
2019/02/28 | 2156 | systems/texlive/tlnet/archive/bitpattern.r39073.tar.xz
2019/02/28 | 6764 | systems/texlive/tlnet/archive/bitpattern.source.r39073.tar.xz
@@ -305873,9 +305873,9 @@
2019/02/28 | 363692 | systems/texlive/tlnet/archive/bondgraphs.doc.r36605.tar.xz
2019/02/28 | 2376 | systems/texlive/tlnet/archive/bondgraphs.r36605.tar.xz
2019/02/28 | 10308 | systems/texlive/tlnet/archive/bondgraphs.source.r36605.tar.xz
-2022/12/30 | 1785092 | systems/texlive/tlnet/archive/bookcover.doc.r65394.tar.xz
-2022/12/30 | 5880 | systems/texlive/tlnet/archive/bookcover.r65394.tar.xz
-2022/12/30 | 14064 | systems/texlive/tlnet/archive/bookcover.source.r65394.tar.xz
+2024/04/07 | 1807396 | systems/texlive/tlnet/archive/bookcover.doc.r70872.tar.xz
+2024/04/07 | 6580 | systems/texlive/tlnet/archive/bookcover.r70872.tar.xz
+2024/04/07 | 15044 | systems/texlive/tlnet/archive/bookcover.source.r70872.tar.xz
2019/02/28 | 209744 | systems/texlive/tlnet/archive/bookdb.doc.r37536.tar.xz
2019/02/28 | 7052 | systems/texlive/tlnet/archive/bookdb.r37536.tar.xz
2019/02/28 | 209440 | systems/texlive/tlnet/archive/bookest.doc.r15878.tar.xz
@@ -306683,7 +306683,7 @@
2024/03/15 | 2044 | systems/texlive/tlnet/archive/collection-fontsextra.r70633.tar.xz
2020/03/04 | 560 | systems/texlive/tlnet/archive/collection-fontsrecommended.r54074.tar.xz
2021/12/03 | 536 | systems/texlive/tlnet/archive/collection-fontutils.r61207.tar.xz
-2022/02/27 | 584 | systems/texlive/tlnet/archive/collection-formatsextra.r62226.tar.xz
+2024/04/07 | 576 | systems/texlive/tlnet/archive/collection-formatsextra.r70875.tar.xz
2024/02/27 | 636 | systems/texlive/tlnet/archive/collection-games.r70178.tar.xz
2023/10/08 | 608 | systems/texlive/tlnet/archive/collection-humanities.r68465.tar.xz
2023/12/14 | 484 | systems/texlive/tlnet/archive/collection-langarabic.r69111.tar.xz
@@ -310273,9 +310273,9 @@
2019/02/28 | 157728 | systems/texlive/tlnet/archive/includernw.doc.r47557.tar.xz
2019/02/28 | 3116 | systems/texlive/tlnet/archive/includernw.r47557.tar.xz
2020/03/24 | 179192 | systems/texlive/tlnet/archive/inconsolata.doc.r54512.tar.xz
-2023/12/09 | 1354536 | systems/texlive/tlnet/archive/inconsolata-nerd-font.doc.r69061.tar.xz
-2023/12/09 | 2419844 | systems/texlive/tlnet/archive/inconsolata-nerd-font.r69061.tar.xz
-2023/12/09 | 4956 | systems/texlive/tlnet/archive/inconsolata-nerd-font.source.r69061.tar.xz
+2024/04/07 | 1766584 | systems/texlive/tlnet/archive/inconsolata-nerd-font.doc.r70871.tar.xz
+2024/04/07 | 2604844 | systems/texlive/tlnet/archive/inconsolata-nerd-font.r70871.tar.xz
+2024/04/07 | 4988 | systems/texlive/tlnet/archive/inconsolata-nerd-font.source.r70871.tar.xz
2020/03/24 | 299536 | systems/texlive/tlnet/archive/inconsolata.r54512.tar.xz
2019/02/28 | 156688 | systems/texlive/tlnet/archive/index.doc.r24099.tar.xz
2019/02/28 | 11040 | systems/texlive/tlnet/archive/index.r24099.tar.xz
@@ -311049,14 +311049,14 @@
2019/02/28 | 344 | systems/texlive/tlnet/archive/latexindent.amd64-freebsd.r32150.tar.xz
2019/02/28 | 344 | systems/texlive/tlnet/archive/latexindent.amd64-netbsd.r32150.tar.xz
2019/02/28 | 344 | systems/texlive/tlnet/archive/latexindent.armhf-linux.r32150.tar.xz
-2024/03/29 | 1362244 | systems/texlive/tlnet/archive/latexindent.doc.r70798.tar.xz
+2024/04/07 | 1362124 | systems/texlive/tlnet/archive/latexindent.doc.r70874.tar.xz
2019/02/28 | 344 | systems/texlive/tlnet/archive/latexindent.i386-freebsd.r32150.tar.xz
2019/02/28 | 344 | systems/texlive/tlnet/archive/latexindent.i386-linux.r32150.tar.xz
2019/02/28 | 344 | systems/texlive/tlnet/archive/latexindent.i386-netbsd.r32150.tar.xz
2019/02/28 | 344 | systems/texlive/tlnet/archive/latexindent.i386-solaris.r32150.tar.xz
-2024/03/29 | 76232 | systems/texlive/tlnet/archive/latexindent.r70798.tar.xz
+2024/04/07 | 76228 | systems/texlive/tlnet/archive/latexindent.r70874.tar.xz
2021/02/25 | 344 | systems/texlive/tlnet/archive/latexindent.universal-darwin.r57908.tar.xz
-2024/03/29 | 6214700 | systems/texlive/tlnet/archive/latexindent.windows.r70798.tar.xz
+2024/04/07 | 3851776 | systems/texlive/tlnet/archive/latexindent.windows.r70874.tar.xz
2019/02/28 | 344 | systems/texlive/tlnet/archive/latexindent.x86_64-cygwin.r33557.tar.xz
2019/02/28 | 352 | systems/texlive/tlnet/archive/latexindent.x86_64-darwinlegacy.r43871.tar.xz
2019/02/28 | 348 | systems/texlive/tlnet/archive/latexindent.x86_64-linuxmusl.r46840.tar.xz
@@ -318164,13 +318164,12 @@
2019/02/28 | 340 | systems/texlive/tlnet/archive/xmltex.amd64-freebsd.r16472.tar.xz
2019/02/28 | 340 | systems/texlive/tlnet/archive/xmltex.amd64-netbsd.r30191.tar.xz
2019/02/28 | 340 | systems/texlive/tlnet/archive/xmltex.armhf-linux.r30015.tar.xz
-2023/11/22 | 280 | systems/texlive/tlnet/archive/xmltexconfig.r68933.tar.xz
-2024/02/20 | 17004 | systems/texlive/tlnet/archive/xmltex.doc.r70002.tar.xz
+2024/04/07 | 17004 | systems/texlive/tlnet/archive/xmltex.doc.r70875.tar.xz
2019/02/28 | 340 | systems/texlive/tlnet/archive/xmltex.i386-freebsd.r16472.tar.xz
2019/02/28 | 336 | systems/texlive/tlnet/archive/xmltex.i386-linux.r3006.tar.xz
2019/02/28 | 340 | systems/texlive/tlnet/archive/xmltex.i386-netbsd.r30191.tar.xz
2019/02/28 | 340 | systems/texlive/tlnet/archive/xmltex.i386-solaris.r8102.tar.xz
-2024/02/20 | 18244 | systems/texlive/tlnet/archive/xmltex.r70002.tar.xz
+2024/04/07 | 18236 | systems/texlive/tlnet/archive/xmltex.r70875.tar.xz
2021/02/25 | 340 | systems/texlive/tlnet/archive/xmltex.universal-darwin.r57908.tar.xz
2023/02/20 | 2384 | systems/texlive/tlnet/archive/xmltex.windows.r65891.tar.xz
2019/02/28 | 344 | systems/texlive/tlnet/archive/xmltex.x86_64-cygwin.r33557.tar.xz
@@ -318391,16 +318390,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/02/05 | 125030 | systems/texlive/tlnet/install-tl
-2024/04/06 | 5753009 | systems/texlive/tlnet/install-tl-unx.tar.gz
-2024/04/06 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
-2024/04/06 | 488 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
+2024/04/07 | 5750826 | systems/texlive/tlnet/install-tl-unx.tar.gz
+2024/04/07 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
+2024/04/07 | 488 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
2023/05/13 | 5083 | systems/texlive/tlnet/install-tl-windows.bat
-2024/04/06 | 27719573 | systems/texlive/tlnet/install-tl-windows.exe
-2024/04/06 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
-2024/04/06 | 488 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
-2024/04/06 | 34425335 | systems/texlive/tlnet/install-tl.zip
-2024/04/06 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
-2024/04/06 | 488 | systems/texlive/tlnet/install-tl.zip.sha512.asc
+2024/04/07 | 27720040 | systems/texlive/tlnet/install-tl-windows.exe
+2024/04/07 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
+2024/04/07 | 488 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
+2024/04/07 | 34425335 | systems/texlive/tlnet/install-tl.zip
+2024/04/07 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
+2024/04/07 | 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
@@ -318452,12 +318451,12 @@
2023/02/21 | 20371 | systems/texlive/tlnet/tlpkg/TeXLive/TLCrypto.pm
2024/01/31 | 5840 | systems/texlive/tlnet/tlpkg/TeXLive/TLDownload.pm
2023/04/08 | 28167 | systems/texlive/tlnet/tlpkg/TeXLive/TLPaper.pm
-2024/04/06 | 19413328 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
-2024/04/06 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
+2024/04/07 | 19412945 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
+2024/04/07 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
2024/03/10 | 87229 | systems/texlive/tlnet/tlpkg/TeXLive/TLPDB.pm
-2024/04/06 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
-2024/04/06 | 488 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
-2024/04/06 | 2561972 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
+2024/04/07 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
+2024/04/07 | 488 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
+2024/04/07 | 2564156 | 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
@@ -329864,7 +329863,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/04/07 | 186 | timestamp
+2024/04/08 | 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 1584b5986b..a4506c5af2 100644
--- a/FILES.byname.gz
+++ b/FILES.byname.gz
Binary files differ
diff --git a/FILES.last07days b/FILES.last07days
index a6f7acd743..930812b972 100644
--- a/FILES.last07days
+++ b/FILES.last07days
@@ -1,3 +1,48 @@
+2024/04/07 | 922444 | systems/texlive/tlnet/archive/beebe.r70870.tar.xz
+2024/04/07 | 898 | macros/latex/contrib/hulipsum/README
+2024/04/07 | 76228 | systems/texlive/tlnet/archive/latexindent.r70874.tar.xz
+2024/04/07 | 737020 | systems/texlive/tlnet/archive/bithesis.doc.r70873.tar.xz
+2024/04/07 | 6580 | systems/texlive/tlnet/archive/bookcover.r70872.tar.xz
+2024/04/07 | 576 | systems/texlive/tlnet/archive/collection-formatsextra.r70875.tar.xz
+2024/04/07 | 5750826 | systems/texlive/tlnet/install-tl-unx.tar.gz
+2024/04/07 | 51330 | macros/latex/contrib/fontscale/fontscale.sty
+2024/04/07 | 4988 | systems/texlive/tlnet/archive/inconsolata-nerd-font.source.r70871.tar.xz
+2024/04/07 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
+2024/04/07 | 488 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
+2024/04/07 | 488 | systems/texlive/tlnet/install-tl.zip.sha512.asc
+2024/04/07 | 488 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
+2024/04/07 | 488 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
+2024/04/07 | 4120019 | biblio/ctan-bibdata.zip
+2024/04/07 | 3851776 | systems/texlive/tlnet/archive/latexindent.windows.r70874.tar.xz
+2024/04/07 | 3708800 | biblio/ctan-bibdata/ctan.pdf
+2024/04/07 | 34425335 | systems/texlive/tlnet/install-tl.zip
+2024/04/07 | 2859792 | biblio/ctan-bibdata/ctan.bib
+2024/04/07 | 27720040 | systems/texlive/tlnet/install-tl-windows.exe
+2024/04/07 | 27012 | systems/texlive/tlnet/archive/bithesis.source.r70873.tar.xz
+2024/04/07 | 2604844 | systems/texlive/tlnet/archive/inconsolata-nerd-font.r70871.tar.xz
+2024/04/07 | 2564156 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
+2024/04/07 | 241 | macros/latex/contrib/abntexto/README
+2024/04/07 | 229180 | macros/latex/contrib/abntexto.zip
+2024/04/07 | 216269 | macros/latex/contrib/hulipsum.zip
+2024/04/07 | 20996 | macros/latex/contrib/fontscale/fontscale-manual.tex
+2024/04/07 | 20316 | systems/texlive/tlnet/archive/bithesis.r70873.tar.xz
+2024/04/07 | 19412945 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
+2024/04/07 | 18236 | systems/texlive/tlnet/archive/xmltex.r70875.tar.xz
+2024/04/07 | 1807396 | systems/texlive/tlnet/archive/bookcover.doc.r70872.tar.xz
+2024/04/07 | 176844 | macros/latex/contrib/hulipsum/hulipsum.dtx
+2024/04/07 | 1766584 | systems/texlive/tlnet/archive/inconsolata-nerd-font.doc.r70871.tar.xz
+2024/04/07 | 1704 | macros/latex/contrib/hulipsum/hulipsum.ins
+2024/04/07 | 17004 | systems/texlive/tlnet/archive/xmltex.doc.r70875.tar.xz
+2024/04/07 | 1678 | biblio/ctan-bibdata/biblatex-ctan/ctan.bbx
+2024/04/07 | 156432 | macros/latex/contrib/hulipsum/hulipsum.pdf
+2024/04/07 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
+2024/04/07 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
+2024/04/07 | 15044 | systems/texlive/tlnet/archive/bookcover.source.r70872.tar.xz
+2024/04/07 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
+2024/04/07 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
+2024/04/07 | 143386 | macros/latex/contrib/fontscale.zip
+2024/04/07 | 1362124 | systems/texlive/tlnet/archive/latexindent.doc.r70874.tar.xz
+2024/04/07 | 129725 | macros/latex/contrib/fontscale/fontscale-manual.pdf
2024/04/06 | 9859 | support/latexindent/LatexIndent/Lines.pm
2024/04/06 | 95406 | macros/latex/contrib/bookcover/bookcover.dtx
2024/04/06 | 9467855 | support/latexindent/bin/windows/latexindent.exe
@@ -27,17 +72,11 @@
2024/04/06 | 61245 | support/latexindent/documentation/latexindent-yaml-schema.json
2024/04/06 | 5907 | support/latexindent/LatexIndent/UTF8CmdLineArgsFileOperation.pm
2024/04/06 | 5857 | support/latexindent/LatexIndent/UnNamedGroupingBracesBrackets.pm
-2024/04/06 | 5753009 | systems/texlive/tlnet/install-tl-unx.tar.gz
2024/04/06 | 54872 | support/latexindent/LatexIndent/GetYamlSettings.pm
2024/04/06 | 5478 | support/latexindent/LatexIndent/KeyEqualsValuesBraces.pm
2024/04/06 | 5432 | support/latexindent/LatexIndent/Check.pm
2024/04/06 | 504604 | systems/texlive/tlnet/archive/profsio.doc.r70868.tar.xz
2024/04/06 | 4946 | support/latexindent/latexindent.pl
-2024/04/06 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
-2024/04/06 | 488 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
-2024/04/06 | 488 | systems/texlive/tlnet/install-tl.zip.sha512.asc
-2024/04/06 | 488 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
-2024/04/06 | 488 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
2024/04/06 | 4860 | support/latexindent/LatexIndent/BlankLines.pm
2024/04/06 | 443043 | support/latexindent/documentation/latexindent.tex
2024/04/06 | 44096 | support/latexindent/documentation/logo.png
@@ -46,25 +85,21 @@
2024/04/06 | 4394 | fonts/inconsolata-nerd-font/OFL.txt
2024/04/06 | 4388 | support/latexindent/LatexIndent/NamedGroupingBracesBrackets.pm
2024/04/06 | 434544 | systems/texlive/tlnet/archive/texlive-scripts.doc.r70863.tar.xz
-2024/04/06 | 4120024 | biblio/ctan-bibdata.zip
2024/04/06 | 39888 | systems/texlive/tlnet/archive/sjtutex.source.r70867.tar.xz
-2024/04/06 | 3708800 | biblio/ctan-bibdata/ctan.pdf
2024/04/06 | 3645472 | macros/latex/contrib/bookcover.zip
2024/04/06 | 35225 | support/latexindent/LatexIndent/Wrap.pm
2024/04/06 | 3517 | support/latexindent/LatexIndent/HorizontalWhiteSpace.pm
2024/04/06 | 3515 | support/latexindent/LatexIndent/Replacement.pm
2024/04/06 | 3466840 | systems/texlive/tlnet/archive/simpleicons.r70864.tar.xz
-2024/04/06 | 34425335 | systems/texlive/tlnet/install-tl.zip
2024/04/06 | 3353 | support/latexindent/LatexIndent/Tokens.pm
2024/04/06 | 3302 | macros/unicodetex/latex/bithesis/bithesis.ins
-2024/04/06 | 2859835 | biblio/ctan-bibdata/ctan.bib
-2024/04/06 | 27719573 | systems/texlive/tlnet/install-tl-windows.exe
+2024/04/06 | 28132 | macros/latex/contrib/abntexto/abntexto.cls
2024/04/06 | 27422 | support/latexindent/LatexIndent/Verbatim.pm
2024/04/06 | 2733 | support/latexindent/LatexIndent/Preamble.pm
2024/04/06 | 2712 | support/latexindent/LatexIndent/Switches.pm
2024/04/06 | 2671 | fonts/inconsolata-nerd-font/inconsolata-nerd-font.ins
2024/04/06 | 2649 | macros/unicodetex/latex/bithesis/contributing-zh.md
-2024/04/06 | 2561972 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
+2024/04/06 | 260747 | macros/latex/contrib/abntexto/abntexto.pdf
2024/04/06 | 25559 | support/latexindent/LatexIndent/Document.pm
2024/04/06 | 2532360 | systems/texlive/tlnet/archive/simpleicons.doc.r70864.tar.xz
2024/04/06 | 24449 | support/latexindent/LatexIndent/Arguments.pm
@@ -88,24 +123,19 @@
2024/04/06 | 2055448 | fonts/inconsolata-nerd-font/InconsolataLGCNerdFontMono-Regular.ttf
2024/04/06 | 2008 | support/latexindent/README
2024/04/06 | 1946 | macros/unicodetex/latex/bithesis/README.md
-2024/04/06 | 19413328 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
2024/04/06 | 19106 | fonts/inconsolata-nerd-font/LICENSE.txt
2024/04/06 | 18591 | support/latexindent/LatexIndent/ModifyLineBreaks.pm
2024/04/06 | 1824190 | fonts/inconsolata-nerd-font/inconsolata-nerd-font.pdf
2024/04/06 | 18136 | systems/texlive/tlnet/archive/profsio.r70868.tar.xz
2024/04/06 | 1705 | fonts/inconsolata-nerd-font/CHANGELOG.md
-2024/04/06 | 1678 | biblio/ctan-bibdata/biblatex-ctan/ctan.bbx
2024/04/06 | 1594968 | macros/latex/contrib/bookcover/bookcover.pdf
+2024/04/06 | 15728 | macros/latex/contrib/abntexto/abntexto.tex
2024/04/06 | 1558 | support/latexindent/latexindent-module-installer.pl
2024/04/06 | 15541804 | fonts/inconsolata-nerd-font.zip
2024/04/06 | 154544 | systems/texlive/tlnet/archive/sjtutex.r70867.tar.xz
2024/04/06 | 15448 | fonts/inconsolata-nerd-font/inconsolata-nerd-font.dtx
-2024/04/06 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
-2024/04/06 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
2024/04/06 | 152440 | systems/texlive/tlnet/archive/glossaries.source.r70866.tar.xz
2024/04/06 | 1500 | support/latexindent/LatexIndent/DoubleBackSlash.pm
-2024/04/06 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
-2024/04/06 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
2024/04/06 | 1405 | macros/latex/contrib/bookcover/bookcover.ins
2024/04/06 | 13935 | support/latexindent/LatexIndent/Special.pm
2024/04/06 | 13775 | support/latexindent/LatexIndent/LogFile.pm
@@ -607,7 +637,6 @@
2024/04/01 | 834540 | systems/win32/miktex/tm/packages/miktex-pdftex-bin-x64-2.9.tar.lzma
2024/04/01 | 83043 | systems/win32/miktex/tm/packages/miktex-fonts-bin-x64-2.9.tar.lzma
2024/04/01 | 828880 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma
-2024/04/01 | 825706 | info/install-latex-guide-zh-cn/install-latex-guide-zh-cn.pdf
2024/04/01 | 82202 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma
2024/04/01 | 82053 | systems/win32/miktex/tm/packages/miktex-lzma-bin-x64-2.9.tar.lzma
2024/04/01 | 81978 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma
@@ -789,7 +818,6 @@
2024/04/01 | 1456960 | systems/win32/miktex/tm/packages/miktex-dvisvgm-bin-x64-2.9.tar.lzma
2024/04/01 | 14535 | systems/win32/miktex/tm/packages/miktex-zzip-bin-x64-2.9.tar.lzma
2024/04/01 | 1442114 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma
-2024/04/01 | 143170 | macros/latex/contrib/fontscale.zip
2024/04/01 | 142876 | systems/win32/miktex/tm/packages/miktex-mktex-bin-x64-2.9.tar.lzma
2024/04/01 | 141878 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma
2024/04/01 | 138745 | systems/win32/miktex/tm/packages/miktex-dvips-bin-x64-2.9.tar.lzma
@@ -823,44 +851,3 @@
2024/04/01 | 103894 | systems/win32/miktex/tm/packages/miktex-lua53-bin-x64-2.9.tar.lzma
2024/04/01 | 103548 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma
2024/04/01 | 10220 | macros/latex/contrib/schule/latex/schule.sty
-2024/03/31 | 9564 | systems/texlive/tlnet/archive/ducksay.r70816.tar.xz
-2024/03/31 | 9462139 | systems/texlive/tlnet/update-tlmgr-r70814.sh
-2024/03/31 | 865849 | info/install-latex-guide-zh-cn.zip
-2024/03/31 | 82688 | systems/texlive/tlnet/archive/texlive.infra.aarch64-linux.r70811.tar.xz
-2024/03/31 | 81192 | graphics/pstricks/contrib/pst-func/tex/pst-func.tex
-2024/03/31 | 7962 | graphics/pstricks/contrib/pst-func/Changes
-2024/03/31 | 7767 | info/install-latex-guide-zh-cn/appendix/updateinfo.tex
-2024/03/31 | 763596 | systems/texlive/tlnet/archive/vectorlogos.doc.r70819.tar.xz
-2024/03/31 | 68720 | systems/texlive/tlnet/archive/proflycee.r70817.tar.xz
-2024/03/31 | 621 | graphics/pstricks/contrib/pst-func/latex/pst-func.sty
-2024/03/31 | 531092 | systems/texlive/tlnet/archive/pynotebook.doc.r70818.tar.xz
-2024/03/31 | 530476 | systems/texlive/tlnet/archive/ducksay.doc.r70816.tar.xz
-2024/03/31 | 49480 | macros/latex/contrib/fontscale/fontscale.sty
-2024/03/31 | 488 | systems/texlive/tlnet/update-tlmgr-r70814.sh.sha512.asc
-2024/03/31 | 488 | systems/texlive/tlnet/update-tlmgr-r70814.exe.sha512.asc
-2024/03/31 | 4681859 | systems/texlive/tlnet/update-tlmgr-r70814.exe
-2024/03/31 | 4402391 | graphics/pstricks/contrib/pst-func/doc/pst-func-doc.pdf
-2024/03/31 | 4137989 | graphics/pstricks/contrib/pst-func.zip
-2024/03/31 | 39730 | graphics/pstricks/contrib/pst-func/doc/pst-func-doc.data
-2024/03/31 | 377904 | systems/texlive/tlnet/archive/texlive.infra.amd64-netbsd.r70811.tar.xz
-2024/03/31 | 364852 | systems/texlive/tlnet/archive/texlive.infra.r70814.tar.xz
-2024/03/31 | 362788 | systems/texlive/tlnet/archive/texlive.infra.i386-netbsd.r70811.tar.xz
-2024/03/31 | 341532 | systems/texlive/tlnet/archive/vectorlogos.r70819.tar.xz
-2024/03/31 | 3412 | systems/texlive/tlnet/archive/pynotebook.r70818.tar.xz
-2024/03/31 | 308364 | systems/texlive/tlnet/archive/texlive.infra.universal-darwin.r70811.tar.xz
-2024/03/31 | 3083268 | systems/texlive/tlnet/archive/texlive.infra.windows.r70811.tar.xz
-2024/03/31 | 2723 | info/install-latex-guide-zh-cn/README.md
-2024/03/31 | 249907 | support/TeX4ht/source/ChangeLog
-2024/03/31 | 20984 | systems/texlive/tlnet/archive/ducksay.source.r70816.tar.xz
-2024/03/31 | 20667 | macros/latex/contrib/fontscale/fontscale-manual.tex
-2024/03/31 | 205184 | systems/texlive/tlnet/archive/texlive.infra.doc.r70814.tar.xz
-2024/03/31 | 1993216 | systems/texlive/tlnet/archive/proflycee.doc.r70817.tar.xz
-2024/03/31 | 1962904 | systems/texlive/tlnet/archive/luatex.doc.r70814.tar.xz
-2024/03/31 | 180096 | systems/texlive/tlnet/archive/texlive.infra.x86_64-cygwin.r70811.tar.xz
-2024/03/31 | 154 | systems/texlive/tlnet/update-tlmgr-r70814.exe.sha512
-2024/03/31 | 153 | systems/texlive/tlnet/update-tlmgr-r70814.sh.sha512
-2024/03/31 | 145484 | systems/texlive/tlnet/archive/texlive.infra.x86_64-linux.r70811.tar.xz
-2024/03/31 | 13620 | systems/texlive/tlnet/archive/luatex.r70814.tar.xz
-2024/03/31 | 129635 | macros/latex/contrib/fontscale/fontscale-manual.pdf
-2024/03/31 | 1188442 | support/TeX4ht/source/tex4ht-4ht.tex
-2024/03/31 | 110770 | graphics/pstricks/contrib/pst-func/doc/pst-func-doc.tex
diff --git a/biblio/ctan-bibdata/ctan.bib b/biblio/ctan-bibdata/ctan.bib
index 2df20ae580..cba08a21a6 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 07-04-2024, 02:00:04
+%% created at 08-04-2024, 02:00:03
%%
%% This file is provided under the terms of the LPPL v1.3 or
@@ -224,8 +224,8 @@
title = {The \texttt{abntexto} package},
subtitle = {LaTeX class for formatting academic papers in ABNT standards},
author = {Elayson Abreu},
- date = {2023-11-13},
- version = {3.1.0-beta},
+ date = {2024-04-07},
+ version = {3.1.1-beta},
license = {pd},
mirror = {https://mirror.ctan.org/macros/latex/contrib/abntexto},
url = {https://ctan.org/pkg/abntexto},
@@ -27162,8 +27162,8 @@
title = {The \texttt{fontscale} package},
subtitle = {A flexible interface for setting font sizes},
author = {Oliver Beery},
- date = {2024-04-01},
- version = {1.1.0},
+ date = {2024-04-07},
+ version = {1.1.1},
license = {lppl1.3c},
mirror = {https://mirror.ctan.org/macros/latex/contrib/fontscale},
url = {https://ctan.org/pkg/fontscale},
@@ -32734,8 +32734,8 @@
title = {The \texttt{hulipsum} package},
subtitle = {Hungarian dummy text (Lórum ipse)},
author = {Tibor Tómács},
- date = {2020-11-03},
- version = {1.1},
+ date = {2024-04-07},
+ version = {1.2},
license = {lppl1.3},
mirror = {https://mirror.ctan.org/macros/latex/contrib/hulipsum},
url = {https://ctan.org/pkg/hulipsum},
diff --git a/macros/latex/contrib/abntexto/README b/macros/latex/contrib/abntexto/README
index 8a02781587..eeaeb92ef6 100644
--- a/macros/latex/contrib/abntexto/README
+++ b/macros/latex/contrib/abntexto/README
@@ -1,6 +1,6 @@
Public Domain Software
-2023-11-13
-3.1.0-beta
+2024-06-04
+3.1.1-beta
Elayson Abreu
abntexto.classe@gmail.com
diff --git a/macros/latex/contrib/abntexto/abntexto.cls b/macros/latex/contrib/abntexto/abntexto.cls
index bdfd09ff5e..f7a74197fc 100644
--- a/macros/latex/contrib/abntexto/abntexto.cls
+++ b/macros/latex/contrib/abntexto/abntexto.cls
@@ -1,6 +1,6 @@
%! Public Domain Software
-%! 2023-11-13
-%! 3.1.0-beta
+%! 2024-04-06
+%! 3.1.1-beta
%! Elayson Abreu
%! abntexto.classe@gmail.com
@@ -30,7 +30,7 @@
% \begin{code}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesClass{abntexto}[2023-11-13 3.1.0-beta Preparation of works in ABNT standards]
+\ProvidesClass{abntexto}[2024-04-06 3.1.1-beta Preparation of works in ABNT standards]
\LoadClass{article}
\RequirePackage{geometry}
@@ -82,16 +82,21 @@
% A instrução |\textual| põe a numeração de página no topo direito nas páginas ímpares e no topo esquerdo em páginas pares. Além disso, |twoside| vai espelhar as margens horizontais.
+% O comando |\eletroniclayout| é útil para leitura do trabalho em {\em display} digital. Para ativar este {\em layout} basta escrever |\let\onesidelayout=\eletroniclayout| e |\let\twosidelayout=\eletroniclayout| no preâmbulo do documento.
+
% Por algum motivo, |\newgeometry| reseta |\baselineskip| e |\parindent|, então temos de repetir estas instruções.
-% \begin{code}
-\def\pretextual{%
- \let\@oddhead=\empty
- \let\@evenhead=\empty
- \let\@oddfoot=\empty
- \let\@evenfoot=\empty
+% \begin{code}
+\def\onesidelayout{%
+ \newgeometry{
+ twoside=false,
+ left = 3cm,
+ top = 3cm,
+ right = 2cm,
+ bottom = 2cm
+ }
}
-\def\textual{%
+\def\twosidelayout{%
\newgeometry{
twoside=true,
left = 3cm,
@@ -99,6 +104,26 @@
right = 2cm,
bottom = 2cm
}%
+}
+\def\eletroniclayout{%
+ \newgeometry{
+ twoside=false,
+ left = 2.5cm,
+ top = 3cm,
+ right = 2.5cm,
+ bottom = 2cm
+ }%
+}
+
+\def\pretextual{%
+ \onesidelayout
+ \let\@oddhead=\empty
+ \let\@evenhead=\empty
+ \let\@oddfoot=\empty
+ \let\@evenfoot=\empty
+}
+\def\textual{%
+ \twosidelayout
\spacing{1.5}%
\parindent=1.5cm
\def\@oddhead{\hfil\small\thepage}%
@@ -817,14 +842,7 @@
\spacing{1.5}
-\geometry{
- a4paper,
- twoside=false,
- left=3cm,
- top=3cm,
- right=2cm,
- bottom=2cm
-}
+\geometry{a4paper}
\frenchspacing
\parindent=0pt
@@ -880,4 +898,4 @@
\AddToHook{begindocument}{\pretextual}
\endinput
-% \end{code}
+% \end{code} \ No newline at end of file
diff --git a/macros/latex/contrib/abntexto/abntexto.pdf b/macros/latex/contrib/abntexto/abntexto.pdf
index a1f9ae0fac..c714fcc8d2 100644
--- a/macros/latex/contrib/abntexto/abntexto.pdf
+++ b/macros/latex/contrib/abntexto/abntexto.pdf
Binary files differ
diff --git a/macros/latex/contrib/abntexto/abntexto.tex b/macros/latex/contrib/abntexto/abntexto.tex
index 32dc5e19d7..a46c613c06 100644
--- a/macros/latex/contrib/abntexto/abntexto.tex
+++ b/macros/latex/contrib/abntexto/abntexto.tex
@@ -121,7 +121,7 @@
\par}
\vskip3in
-{\centering\large\ttfamily 3.1.0-beta\par}
+{\centering\large\ttfamily 3.1.1-beta\par}
\newpage
\nonum\notoc\section{Sumário}
diff --git a/macros/latex/contrib/fontscale/README.txt b/macros/latex/contrib/fontscale/README.txt
index 292cfada9b..f7cc1562b8 100644
--- a/macros/latex/contrib/fontscale/README.txt
+++ b/macros/latex/contrib/fontscale/README.txt
@@ -1,5 +1,5 @@
-Package: fontscale -- A user interface for setting document font sizes
-Copyright: 2024 (c) Oliver Beery <beeryoliver@gmail.com>
-CTAN: https://ctan.org/pkg/fontscale
-Repository: https://github.com/beeryoliver/fontscale
-License: The LaTeX Project Public License 1.3c
+Package: fontscale -- A user interface for setting document font sizes
+Copyright: 2024 (c) Oliver Beery <beeryoliver@gmail.com>
+CTAN: https://ctan.org/pkg/fontscale
+Repository: https://github.com/beeryoliver/fontscale
+License: The LaTeX Project Public License 1.3c
diff --git a/macros/latex/contrib/fontscale/fontscale-manual-table-classic.tex b/macros/latex/contrib/fontscale/fontscale-manual-table-classic.tex
index 56015bba68..d62f104635 100644
--- a/macros/latex/contrib/fontscale/fontscale-manual-table-classic.tex
+++ b/macros/latex/contrib/fontscale/fontscale-manual-table-classic.tex
@@ -1,37 +1,37 @@
-\ProvidesFile{fontscale-manual-table-classic.tex}[2024-03-08]
-
-\begin{table}
- \centering
- \caption
- {%
- The size of each font size command in \unit{pt} when using a classic typographic scale.%
- \label{table:classicscales}%
- }
- \bigskip
- \begin{tblr}
- {
- colspec=
- {
- l
- Q[si={table-format=3.2},c]
- Q[si={table-format=3.2},c]
- Q[si={table-format=3.2},c]
- }
- ,cell{1}{2-Z}={guard}
- }
- \toprule
- Command & \Key{classic-10pt} & \Key{classic-11pt} & \Key{classic-12pt} \\
- \midrule
- \cs{tiny} & 6 & 7 & 8 \\
- \cs{scriptsize} & 7 & 8 & 9 \\
- \cs{footnotesize} & 8 & 9 & 10 \\
- \cs{small} & 9 & 10 & 11 \\
- \cs{normalsize} & 10 & 11 & 12 \\
- \cs{large} & 11 & 12 & 14 \\
- \cs{Large} & 12 & 14 & 16 \\
- \cs{LARGE} & 14 & 16 & 18 \\
- \cs{huge} & 16 & 18 & 21 \\
- \cs{Huge} & 18 & 21 & 24 \\
- \bottomrule
- \end{tblr}
+\ProvidesFile{fontscale-manual-table-classic.tex}[2024-03-08]
+
+\begin{table}
+ \centering
+ \caption
+ {%
+ The size of each font size command in \unit{pt} when using a classic typographic scale.%
+ \label{table:classicscales}%
+ }
+ \bigskip
+ \begin{tblr}
+ {
+ colspec=
+ {
+ l
+ Q[si={table-format=3.2},c]
+ Q[si={table-format=3.2},c]
+ Q[si={table-format=3.2},c]
+ }
+ ,cell{1}{2-Z}={guard}
+ }
+ \toprule
+ Command & \Key{classic-10pt} & \Key{classic-11pt} & \Key{classic-12pt} \\
+ \midrule
+ \cs{tiny} & 6 & 7 & 8 \\
+ \cs{scriptsize} & 7 & 8 & 9 \\
+ \cs{footnotesize} & 8 & 9 & 10 \\
+ \cs{small} & 9 & 10 & 11 \\
+ \cs{normalsize} & 10 & 11 & 12 \\
+ \cs{large} & 11 & 12 & 14 \\
+ \cs{Large} & 12 & 14 & 16 \\
+ \cs{LARGE} & 14 & 16 & 18 \\
+ \cs{huge} & 16 & 18 & 21 \\
+ \cs{Huge} & 18 & 21 & 24 \\
+ \bottomrule
+ \end{tblr}
\end{table} \ No newline at end of file
diff --git a/macros/latex/contrib/fontscale/fontscale-manual-table-font-steps.tex b/macros/latex/contrib/fontscale/fontscale-manual-table-font-steps.tex
index 8392f99dbb..570d67d665 100644
--- a/macros/latex/contrib/fontscale/fontscale-manual-table-font-steps.tex
+++ b/macros/latex/contrib/fontscale/fontscale-manual-table-font-steps.tex
@@ -1,36 +1,36 @@
-\ProvidesFile{fontscale-manual-table-font-steps.tex}[2024-03-08]
-
-\begin{table}
- \centering
- \caption
- {%
- The step of each font size command.
- These are constants and cannot be changed.%
- \label{table:fontsteps}%
- }
- \bigskip
- \begin{tblr}
- {
- colspec=
- {
- l
- Q[si={table-format=3.2},c]
- }
- , cell{1}{2}={guard}
- }
- \toprule
- Command & Step \\
- \midrule
- \cs{tiny} & -4 \\
- \cs{scriptsize} & -3 \\
- \cs{footnotesize} & -2 \\
- \cs{small} & -1 \\
- \cs{normalsize} & 0 \\
- \cs{large} & 1 \\
- \cs{Large} & 2 \\
- \cs{LARGE} & 3 \\
- \cs{huge} & 4 \\
- \cs{Huge} & 5 \\
- \bottomrule
- \end{tblr}
+\ProvidesFile{fontscale-manual-table-font-steps.tex}[2024-03-08]
+
+\begin{table}
+ \centering
+ \caption
+ {%
+ The step of each font size command.
+ These are constants and cannot be changed.%
+ \label{table:fontsteps}%
+ }
+ \bigskip
+ \begin{tblr}
+ {
+ colspec=
+ {
+ l
+ Q[si={table-format=3.2},c]
+ }
+ , cell{1}{2}={guard}
+ }
+ \toprule
+ Command & Step \\
+ \midrule
+ \cs{tiny} & -4 \\
+ \cs{scriptsize} & -3 \\
+ \cs{footnotesize} & -2 \\
+ \cs{small} & -1 \\
+ \cs{normalsize} & 0 \\
+ \cs{large} & 1 \\
+ \cs{Large} & 2 \\
+ \cs{LARGE} & 3 \\
+ \cs{huge} & 4 \\
+ \cs{Huge} & 5 \\
+ \bottomrule
+ \end{tblr}
\end{table} \ No newline at end of file
diff --git a/macros/latex/contrib/fontscale/fontscale-manual-table-modular-musical.tex b/macros/latex/contrib/fontscale/fontscale-manual-table-modular-musical.tex
index 6fd10d9991..fad108d9e9 100644
--- a/macros/latex/contrib/fontscale/fontscale-manual-table-modular-musical.tex
+++ b/macros/latex/contrib/fontscale/fontscale-manual-table-modular-musical.tex
@@ -1,36 +1,36 @@
-\ProvidesFile{fontscale-manual-table-modular-musical.tex}[2024-03-08]
-
-\begin{table}
- \centering
- \caption
- {%
- The size of each font size command when using a modular or musical typographic scale with the initial settings.
- The font sizes are in \unit{pt} and rounded to two decimal places.%
- }
- \bigskip
- \begin{tblr}
- {
- colspec=
- {
- l
- Q[si={table-format=3.2},c]
- Q[si={table-format=3.2},c]
- }
- ,cell{1}{2-3}={guard}
- }
- \toprule
- Command & \Key{modular} & \Key{musical} \\
- \midrule
- \cs{tiny} & 6.24 & 5.74 \\
- \cs{scriptsize} & 7.02 & 6.60 \\
- \cs{footnotesize} & 7.90 & 7.58 \\
- \cs{small} & 8.89 & 8.71 \\
- \cs{normalsize} & 10 & 10 \\
- \cs{large} & 11.25 & 11.49 \\
- \cs{Large} & 12.66 & 13.20 \\
- \cs{LARGE} & 14.24 & 15.16 \\
- \cs{huge} & 16.02 & 17.41 \\
- \cs{Huge} & 18.02 & 20 \\
- \bottomrule
- \end{tblr}
+\ProvidesFile{fontscale-manual-table-modular-musical.tex}[2024-03-08]
+
+\begin{table}
+ \centering
+ \caption
+ {%
+ The size of each font size command when using a modular or musical typographic scale with the initial settings.
+ The font sizes are in \unit{pt} and rounded to two decimal places.%
+ }
+ \bigskip
+ \begin{tblr}
+ {
+ colspec=
+ {
+ l
+ Q[si={table-format=3.2},c]
+ Q[si={table-format=3.2},c]
+ }
+ ,cell{1}{2-3}={guard}
+ }
+ \toprule
+ Command & \Key{modular} & \Key{musical} \\
+ \midrule
+ \cs{tiny} & 6.24 & 5.74 \\
+ \cs{scriptsize} & 7.02 & 6.60 \\
+ \cs{footnotesize} & 7.90 & 7.58 \\
+ \cs{small} & 8.89 & 8.71 \\
+ \cs{normalsize} & 10 & 10 \\
+ \cs{large} & 11.25 & 11.49 \\
+ \cs{Large} & 12.66 & 13.20 \\
+ \cs{LARGE} & 14.24 & 15.16 \\
+ \cs{huge} & 16.02 & 17.41 \\
+ \cs{Huge} & 18.02 & 20 \\
+ \bottomrule
+ \end{tblr}
\end{table} \ No newline at end of file
diff --git a/macros/latex/contrib/fontscale/fontscale-manual.pdf b/macros/latex/contrib/fontscale/fontscale-manual.pdf
index 67af2fa36c..d45ffefea9 100644
--- a/macros/latex/contrib/fontscale/fontscale-manual.pdf
+++ b/macros/latex/contrib/fontscale/fontscale-manual.pdf
Binary files differ
diff --git a/macros/latex/contrib/fontscale/fontscale-manual.tex b/macros/latex/contrib/fontscale/fontscale-manual.tex
index bb08e2eff9..8dd13a5cbe 100644
--- a/macros/latex/contrib/fontscale/fontscale-manual.tex
+++ b/macros/latex/contrib/fontscale/fontscale-manual.tex
@@ -1,383 +1,383 @@
-\documentclass{beery}
-
-\begin{document}
-
-
-\section*
- {%
- \SetFontStep*{1}%
- The \pkg{fontscale} package%
- }
-
-A user interface for setting document font sizes
-
-Oliver Beery
-
-Version 1.1.0\quad{}31 March 2024
-
-
-\section{Introduction}
-\label{sec:intro}
-
-\subsection{About}
-\label{subsec:about}
-
-\listheading{The \pkg{fontscale} package provides the following functionalities:}
-\begin{itemize}
- \item
- Set document font sizes via a classic, modular, or musical typographic scale.
- \item
- Set arbitrary scales, sizes, and baselineskips for the standard font size commands \cs{tiny}, \cs{scriptsize}, \cs{footnotesize}, \cs{small}, \cs{normalsize}, \cs{large}, \cs{Large}, \cs{LARGE}, \cs{huge}, and \cs{Huge}.
- \item
- Set the font size settings mid\-/document or within a local group.
- \item
- Set the font size by setting the font step, scale, or size.
- \item
- Set the font size relative to the current font size.
- \item
- Use the current font step, scale, size, and baselineskip directly, for example, for printing or within calculations.
- \item
- Print sample text to test different font sizes.
- \item
- For advanced users, store the step, scale, size, and baselineskip of each font size command in \pkg{expl3} variables.
-\end{itemize}
-
-
-\subsection{Loading the package}
-\label{subsec:loading}
-
-This package requires the 10 October 2023 \pkg{l3kernel} update.
-Since this update is fairly recent, you may need to ensure that your \LaTeX{} installation is up\-/to\-/date before using this package.
-
-This package lets the user set arbitrary font sizes.
-This works with most fonts produced today, but, for historical reasons, the default Computer Modern font is available only in a number of fixed sizes.
-If you get a warning that Computer Modern is not available in the requested size, you may need to add the code \cs{RequirePackage{fix-cm}} before \cs{documentclass} to make Computer Modern available at arbitrary font sizes.
-
-\cs{usepackage}\marg{fontscale}
-\nopagebreak\newline
-\cs{fontscalesetup}\marg{\meta{keys}}
-
-Load the \pkg{fontscale} package via the usual command in the document preamble.
-This package has no package options.
-Instead, the package keys are set up via the command \cs{fontscalesetup}\marg{\meta{keys}}.
-\meta{keys} must receive a comma\-/separated list of keys and their associated values.
-The package keys are documented in \S\ref{sec:choosing} and \S\ref{sec:overwriting}.
-
-Many \LaTeX{} document classes have a font size option (\Key{10pt}, \Key{11pt}, \Key{12pt}, etc.\@) which not only changes the set of document font sizes, but also modifies additional settings such as the page layout and vertical spacing which were specifically designed to work with those font sizes.
-For this reason, you may want to set the document class font size option close to the value of \cs{normalsize} set by this package.
-
-Internally, this package sets up each font size command from \cs{tiny} to \cs{Huge} using the kernel command \cs{@setfontsize}\---they have no additional functionality beyond that of \cs{@setfontsize}.
-Unlike the standard document classes, the font size commands set up by this package do not change the vertical spacing for displayed math and list structures.
-If the user would like to add this functionality or perhaps other features to the font size commands, they can do so via hooks, which are documented in the \LaTeX{} kernel.
-
-
-\subsection{Terminology}
-\label{subsec:terminology}
-
-When using the \pkg{fontscale} package, each font size, including the standard font size commands from \cs{tiny} to \cs{Huge}, has a step, scale, size, and baselineskip.
-The latter two parameters are the familiar first and second arguments to the low\-/level font command \cs{fontsize}\marg{\meta{size}}\marg{\meta{baselineskip}}.
-The font scale is the relative font size; the ratio of the font size to \cs{normalsize}.
-The font step is the number of font size gradations from \cs{normalsize}, which has a step of \num{0}.
-Table~\ref{table:fontsteps} lists the font step of each font size command.
-
-\input{./fontscale-manual-table-font-steps.tex}
-
-
-\section{Choosing the typographic scale}
-\label{sec:choosing}
-
-\Key{typographic-scale}
- [classic-10pt, classic-11pt, classic-12pt, modular, musical]
- [classic-10pt]
-\newline
-\Key{modular/ratio}[\meta{number}][1.125]
-\newline
-\Key{musical/ratio}[\meta{number}][2]%
-\nopagebreak\newline
-\Key{musical/notes}[\meta{integer}][5]
-
-The key \Key{typographic\-/scale} sets the font sizes using a classic, modular, or musical typographic scale.
-These are common methods of choosing a set of document font sizes.
-The choice of typographic scale initializes to \Key{classic\-/10pt}.
-
-The key \Key{typographic\-/scale} can also be set in a condensed format via the keys \Key{classic\-/10pt}, \Key{classic\-/11pt}, \Key{classic\-/12pt}, \Key{modular}, or \Key{musical}, which set the key \Key{typographic\-/scale} to the corresponding value.
-
-The classic typographic scale consists of the traditional font sizes
-\numlist{6;7;8;9;10;11;12;14;16;18;21;24;36;48;60;72}.%
-\footnote{See \S{}3.1 of \textit{The Elements of Typographic Style} by Robert Bringhurst.}
-They have been used since the sixteenth century and are the default font sizes on most computer software.
-The keys \Key{classic-10pt, classic-11pt, classic-12pt} set the size of each font size command to values based on their position in the classic typographic scale.
-The size of \cs{normalsize} is the named point size.
-The sizes of the other font size commands are the adjacent font sizes in the scale.
-Table~\ref{table:classicscales} lists the size of each font size command when using a classic typographic scale.
-
-\input{./fontscale-manual-table-classic.tex}
-
-The key \Key{modular} sets the font sizes from \cs{tiny} to \cs{Huge} using a modular typographic scale.
-In a modular scale, each font size is a fixed ratio from the adjacent font sizes.%
-\footnote{\url{https://alistapart.com/article/more-meaningful-typography/}}
-Here, the base font size is the size of \cs{normalsize}, which can be set via the key \Key{normalsize/size}[\meta{size}], more documented in \S\ref{sec:overwriting}.
-If not set, \cs{normalsize} initializes to \qty{10}{pt}.
-The modular ratio can be set via the key \Key{modular\slash{}ratio}.
-The initial modular ratio is \num{1.125}.
-
-\input{./fontscale-manual-table-modular-musical.tex}
-
-The key \Key{musical} sets the font sizes according to their position in a musical typographic scale.
-The font size is calculated using the formula:%
-\footnote
- {%
- I have referenced this article by Spencer Mortensen:
- \newline
- \url{https://spencermortensen.com/articles/typographic-scale/}%
- }
-\[ f_i = f_0 \times r ^ { i / n } \]
-$f_0$ is the base font size, the size of \cs{normalsize}.
-$f_i$ is the font size with font step~$i$.
-$n$ is the number of notes in the musical scale\---the number of font size gradations or steps above \cs{normalsize}.
-$r$ is the ratio of the musical scale, the ratio of the highest to the lowest note $ f_n / f_0 $.
-(The modular typographic scale is actually a special case of the musical typographic scale where $n=1$.)
-
-The musical ratio~$r$ and the number of notes~$n$ can be set via the keys \Key{musical\slash{}ratio} and \Key{musical\slash{}notes}.
-The initial musical ratio\---\num{2}\---and the initial number of notes\---\num{5}\---are the same as that of the classic typographic scale.%
-\footnote{Ibid.}
-Conveniently, \cs{Huge} is \num{5} steps above \cs{normalsize}.
-The font size of \cs{normalsize}~$f_0$ can be set using the key \Key{normalsize/size}[\meta{size}], more documented in \S\ref{sec:overwriting}.
-When using a musical typographic scale, \cs{normalsize} initializes to \qty{10}{pt}.%
-\footnote {I have set the initial value to \qty{10}{pt} instead of the \qty{12}{pt} recommended by the Spencer Mortensen article because this matches the default settings of the standard \LaTeXe{} document classes.}
-
-\Key{baselineskip-size-ratio}[\meta{number}][1.2]
-\KeepNextPar*
-
-The key \Key{baselineskip\-/size\-/ratio} sets the ratio of the font baselineskip to the font size.
-By default, the font baselineskip of each font size command equals its font size times \Key{baselineskip\-/size\-/ratio}.
-Users should not adjust this value unless they really know what they are doing.
-When using increased line spacing, users should prefer the low\-/level font command \cs{linespread} or the \pkg{setspace} package.
-
-
-\section{Overwriting the typographic scale}
-\label{sec:overwriting}
-
-In some situations, users may need to explicitly set the scale, size, or baselineskip of a font size command, overwriting the value set by the keys in \S\ref{sec:choosing}.
-Note that the font steps and the scale of \cs{normalsize} are constants and cannot be changed.
-
-\Key{\meta{font size command}/scale}[\meta{number}]
-\KeepNextPar*
-
-The keys \Key{\meta{font size command}\slash{}scale} set the scale of \meta{font size command} to \meta{number}, ignoring the value set by the key \Key{typographic-scale}.
-The key \Key{normalsize\slash{}scale} is not defined.
-
-\Key{\meta{font size command}/size}[\meta{size}]
-\KeepNextPar*
-
-The keys \Key{\meta{font size command}\slash{}size} set the size of \meta{font size command} to \meta{size}, ignoring the values set by the keys \Key{typographic-scale} and \Key{\meta{font size command}\slash{}scale}.
-\meta{size} supplies a default unit of \unit{pt}.
-
-The package will issue a warning if the user sets the keys \Key{\meta{font size command}\slash{}size} and \Key{\meta{font size command}\slash{}scale} for the same \meta{font size command} since the latter key will be ignored.
-
-\Key{\meta{font size command}/baselineskip}[\meta{skip}]
-\KeepNextPar*
-
-The keys \Key{\meta{font size command}\slash{}baselineskip} set the font baselineskip of \meta{font size command} to \meta{skip} instead of calculating it from the size of \meta{font size command} and \Key{baselineskip\-/size\-/ratio}.
-\meta{skip} supplies a default unit of \unit{pt}.
-
-\Key{\meta{font size command}}[\meta{size}]
-\nopagebreak\newline
-\Key{\meta{font size command}}[\meta{size}/\meta{baselineskip}]
-
-The keys \Key{\meta{font size command}} set the keys \Key{\meta{font size command}\slash{}size} or \Key{\meta{font size command}\slash{}baselineskip} in a condensed format.
-The latter format resembles traditional typographic notation where the size and leading of a text can be expressed as, for example, $10/12$ or $11/13$.
-The number before/after the slash is the size/leading in \unit{pts}.
-
-\Key{ignore-order}[true, false][false]
-\KeepNextPar*
-
-The user should take care to ensure that the font sizes and font baselineskips remain in the correct order when directly setting the scales, sizes, or baselineskips of the different font size commands.
-The magnitudes of the sizes and baselineskips should be ordered from \cs{tiny} to \cs{normalsize} to \cs{Huge}.
-This is important for typographic and syntactic consistency.
-This package will issue a warning if they are not in the correct order.
-The user can disable this warning via the key \Key{ignore\-/order}[true] or just \Key{ignore\-/order}.
-
-
-\section{User commands}
-\label{sec:usercommands}
-
-\subsection{Expandable font parameters}
-\label{subsec:fontparameters}
-
-\cs{CurrentFontStep}
-\nopagebreak\newline
-\cs{CurrentFontScale}
-\newline
-\cs{CurrentFontSize}
-\nopagebreak\newline
-\cs{CurrentFontBaselineskip}
-
-These are fully expandable commands that expand to the current font step, scale, size, or baselineskip.
-They can be used for printing or within calculations.
-Caution: \cs{CurrentFontStep} will expand to nothing if the current step is undefined.
-
-Internally, \cs{CurrentFontStep}, \cs{CurrentFontScale}, and \cs{CurrentFontSize} use the kernel command \cs{f@size}.
-\cs{CurrentFontSize} expands to \texttt{f@size pt}.
-\cs{CurrentFontBaselineskip} expands to the kernel command \cs{f@baselineskip}.
-Note that the low\-/level font command \cs{fontsize}\marg{\meta{size}}\allowbreak\marg{\meta{baselineskip}} sets \cs{f@size} before expanding its second argument.
-This means that \cs{CurrentFontStep}, \cs{CurrentFontScale}, and \cs{CurrentFontSize} may need to be first expanded if used in \meta{baselineskip}.
-This package provides the command \cs{SetFontSizeBaselineskip} as an alternative to \cs{fontsize} + \cs{selectfont} that avoids this issue (\S\ref{subsec:fontsize}).
-
-\subsection{More font sizing commands}
-\label{subsec:fontsize}
-
-The \pkg{fontscale} package provides the commands \cs{SetFontStep}, \cs{SetFontScale}, \cs{SetFontSize}, \cs{ScaleFont}, and \cs{SetFontSizeBaselineskip} which set the font size in different ways.
-The first three commands have a starred version which sets the font size relative to the current font size.
-Internally, these commands all use the low\-/level font commands \cs{fontsize}\marg{\meta{size}}\allowbreak\marg{\meta{baselineskip}} and \cs{selectfont}.
-These commands should be used only in special cases.
-Generally, users should prefer the font size commands from \cs{tiny} to \cs{Huge} for typographic and syntactic consistency, although \cs{SetFontStep*}\marg{\meta{integer}} can use a font size command directly.
-
-\cs{SetFontStep}\marg{\meta{number}}
-\nopagebreak\newline
-\cs{SetFontStep*}\marg{\meta{number}}
-
-\cs{SetFontStep} sets the font size by setting the font step to \meta{number}.
-The starred version \cs{SetFontStep*} adds \meta{number} to the current font step.
-If the choice of typographic scale is not modular or musical, then the only valid values for \meta{number} are the integers from \num{-4} to \num{5}, corresponding to the font size commands from \cs{tiny} to \cs{Huge}.
-\cs{SetFontStep} will issue an error if the step is invalid.
-\cs{SetFontStep} sets the font baselineskip to the calculated font size \texttimes{} \Key{baselineskip\-/size\-/ratio}.
-If the step matches the step of any font size command, then that font size command will be used directly.
-
-\listheading{Examples:}
-\begin{itemize}
- \item
- For example, \cs{SetFontStep}\marg{-2} and \cs{SetFontStep}\marg{2} use \cs{footnotesize} and \cs{Large}.
- Note that it is typically better to use the equivalent font size command in place of \cs{SetFontStep}\marg{\meta{integer}}.
- \item
- If the current font size is \cs{normalsize}, \cs{SetFontStep*}\marg{1} and \cs{SetFontStep*}\marg{-1} use \cs{large} and \cs{small}.
- This is useful for moving up or down a note on the typographic scale.
- \item
- If the choice of typographic scale is modular or musical, \cs{SetFontStep*}\marg{-0.5} sets the font size and font baselineskip to values between that of \cs{normalsize} and \cs{small}.
- Otherwise, it produces an error.
-\end{itemize}
-
-\cs{SetFontScale}\marg{\meta{number}}
-\nopagebreak\newline
-\cs{SetFontScale*}\marg{\meta{number}}
-
-\cs{SetFontScale} sets the font size by setting the font scale to \meta{number}.
-The font baselineskip is set to the calculated font size \texttimes{} \Key{baselineskip\-/size\-/ratio}.
-The starred version \cs{SetFontScale*} adds \meta{number} to the current font scale.
-For example, \cs{SetFontScale}\marg{1.25} makes the font size 25\% larger than \cs{normalsize}.
-If the current font size is \cs{normalsize}, \cs{SetFontScale*}\marg{0.25} is equivalent to \cs{SetFontScale}\marg{1.25}.
-
-\cs{SetFontSize}\marg{\meta{size}}
-\nopagebreak\newline
-\cs{SetFontSize*}\marg{\meta{size}}
-
-\cs{SetFontSize} sets the font size to \meta{size}.
-\meta{size} supplies a default unit of \unit{pt}.
-The font baselineskip is set to the font size \texttimes{} \Key{baselineskip\-/size\-/ratio}.
-The starred version \cs{SetFontSize*} adds \meta{size} to the current size.
-For example, \cs{SetFontSize*}\marg{1} and \cs{SetFontSize*}\marg{-1pt} increase and decrease the current font size by a \unit{pt}.
-
-\cs{ScaleFont}\marg{\meta{number}}
-\KeepNextPar*
-
-Scales the current font size and the current font baselineskip by \meta{number}.
-\cs{ScaleFont} resembles the \cs{scalefont} command provided by the \pkg{scalefnt} package, except that it uses floating point calculations and clears the stretch and shrink components of the font baselineskip.
-For example, if the current font size and font baselineskip are \qty{10}{pt} and \qty{12}{pt}, using \cs{ScaleFont}\marg{0.8} will reduce them proportionally to \qty{8}{pt} and \qty{9.6}{pt}.
-
-\cs{SetFontSizeBaselineskip}\marg{\meta{size}}\marg{\meta{baselineskip}}
-\KeepNextPar*
-
-Sets the font size and font baselineskip to \meta{size} and \meta{baselineskip}.
-Both \meta{size} and \meta{baselineskip} supply a default unit of \unit{pt}.
-\cs{SetFontSizeBaselineskip} can be used as an alternative to \cs{fontsize} + \cs{selectfont} as it avoids the issue with \cs{f@size} discussed in \S\ref{subsec:fontparameters}
-\vfill\pagebreak%manual
-
-\subsection{Testing and debugging}
-\label{subsec:debug}
-
-The commands documented here are intended primarily for testing and debugging.
-I have used them often when developing this package so I think users will find them helpful.
-
-\cs{PrintFontParameters}
-\nopagebreak\newline
-\cs{PrintAllFontParameters}
-
-\cs{PrintFontParameters} prints the current step, scale, size, and baselineskip in this order in a comma\-/separated list of key = value pairs.
-If the current step is undefined (as explained for \cs{SetFontStep} in \S\ref{subsec:fontsize}), it will be left blank.
-\cs{PrintAllFontParameters} prints the step, scale, size, and baselineskip of each font size command.
-
-\cs{PrintSampleText}\oarg{\meta{text}}
-\nopagebreak\newline
-\cs{PrintSampleText*}\oarg{\meta{text}}
-
-\cs{PrintSampleText} prints \meta{text} in each font size ordered from \cs{tiny} to \cs{Huge} each followed by a paragraph break.
-The starred version \cs{PrintSampleText*} reverses the sizing order.
-The \meta{text} can be changed via the optional argument, but cannot contain \cs{par} tokens.
-The default \meta{text} is \enquote{The \texttt{fontscale} package: A user interface for setting document font sizes}.
-
-\cs{PrintFontSizeCommand}
-\KeepNextPar*
-
-\cs{PrintFontSizeCommand} tests whether the current font size and font baselineskip match that of any font size command.
-If so, it prints the name of that font size command.
-If not, it instead prints \enquote{UNDEFINED\@}.
-One useful way of printing example text is by using
-\cs{PrintSampleText}\allowbreak\oarg{\cs{PrintFontSizeCommand}:\textvisiblespace{}\cs{PrintFontParameters}}.
-
-\subsection
- {%
- \texorpdfstring
- {More on \cs{fontscalesetup}}
- {More on \textbackslash{}fontscalesetup}%
- }
-\label{subsec:fontscalesetup}
-
-\cs{fontscalesetup}\marg{\meta{keys}}
-\KeepNextPar*
-
-Sets and processes the \pkg{fontscale} package keys and uses \cs{normalsize}.
-\cs{fontscalesetup} can be applied mid\-/document or locally within the current \TeX{} group.
-The key \Key{reset} is also available.
-Its value must be either \texttt{initial} or \texttt{preamble}.
-The key \Key{reset}[initial] or just \Key{reset} sets all the keys to their initial values.
-The key \Key{reset}[preamble] sets all the keys to their values at the end of the preamble (or does nothing if used before the end of the preamble).
-
-
-\section{Programming}
-\label{sec:programming}
-
-This section is relevant to \LaTeX3 programmers.
-
-The user commands \cs{SetFontStep}, \cs{SetFontScale}, \cs{SetFontSize}, \cs{ScaleFont}, and \cs{SetFontSizeBaselineskip} are set up to work with \cs{text_purify:n}.
-\cs{text_purify:n} will correctly remove these commands and their arguments.
-This includes the starred versions \cs{SetFontStep*}, \cs{SetFontScale*}, and \cs{SetFontSize*}.
-
-This package does not provide any public \pkg{expl3} functions.
-
-This package provides some public \pkg{expl3} variables.
-The package stores in public variables the step, scale, size, and baselineskip of each font size command.
-These variables should not be modified directly.
-Instead, they should be modified only indirectly via the command \cs{fontscalesetup}.
-
-Each takes the form:
-
-\begingroup
- \ttfamily
- \textbackslash{}c\_fontscale\_\meta{font size command}\_step\_fp
- \nopagebreak\newline
- \textbackslash{}l\_fontscale\_\meta{font size command}\_scale\_fp
- \newline
- \textbackslash{}l\_fontscale\_\meta{font size command}\_size\_dim
- \nopagebreak\newline
- \textbackslash{}l\_fontscale\_\meta{font size command}\_baselineskip\_skip
-\endgroup
-
-Exception:
-\cs{l_fontscale_normalsize_scale_fp} is not defined.
-The scale of \cs{normalsize} is instead stored as the constant \cs{c_fontscale_normalsize_scale_fp}, which always equals \num{1}.
-
-The step, scale, size, and baselineskip of each font size command are also stored in property lists, one for each font size command:
-
-\texttt{\textbackslash{}l\_fontscale\_\meta{font size command}\_prop}
-
+\documentclass{beery}
+
+\begin{document}
+
+
+\section*
+ {%
+ \SetFontStep*{1}%
+ The \pkg{fontscale} package%
+ }
+
+A user interface for setting document font sizes
+
+Oliver Beery
+
+Version 1.1.1\quad{}7 April 2024
+
+
+\section{Introduction}
+\label{sec:intro}
+
+\subsection{About}
+\label{subsec:about}
+
+\listheading{The \pkg{fontscale} package provides the following functionalities:}
+\begin{itemize}
+ \item
+ Set document font sizes via a classic, modular, or musical typographic scale.
+ \item
+ Set arbitrary scales, sizes, and baselineskips for the standard font size commands \cs{tiny}, \cs{scriptsize}, \cs{footnotesize}, \cs{small}, \cs{normalsize}, \cs{large}, \cs{Large}, \cs{LARGE}, \cs{huge}, and \cs{Huge}.
+ \item
+ Set the font size settings mid\-/document or within a local group.
+ \item
+ Set the font size by setting the font step, scale, or size.
+ \item
+ Set the font size relative to the current font size.
+ \item
+ Use the current font step, scale, size, and baselineskip directly, for example, for printing or within calculations.
+ \item
+ Print sample text to test different font sizes.
+ \item
+ For advanced users, store the step, scale, size, and baselineskip of each font size command in \pkg{expl3} variables.
+\end{itemize}
+
+
+\subsection{Loading the package}
+\label{subsec:loading}
+
+This package requires the 10 October 2023 \pkg{l3kernel} update.
+Since this update is fairly recent, you may need to ensure that your \LaTeX{} installation is up\-/to\-/date before using this package.
+
+This package lets the user set arbitrary font sizes.
+This works with most fonts produced today, but, for historical reasons, the default Computer Modern font is available only in a number of fixed sizes.
+If you get a warning that Computer Modern is not available in the requested size, you may need to add the code \cs{RequirePackage{fix-cm}} before \cs{documentclass} to make Computer Modern available at arbitrary font sizes.
+
+\cs{usepackage}\marg{fontscale}
+\nopagebreak\newline
+\cs{fontscalesetup}\marg{\meta{keys}}
+
+Load the \pkg{fontscale} package via the usual command in the document preamble.
+This package has no package options.
+Instead, the package keys are set up via the command \cs{fontscalesetup}\marg{\meta{keys}}.
+\meta{keys} must receive a comma\-/separated list of keys and their associated values.
+The package keys are documented in \S\ref{sec:choosing} and \S\ref{sec:overwriting}.
+
+Many \LaTeX{} document classes have a font size option (\Key{10pt}, \Key{11pt}, \Key{12pt}, etc.\@) which not only changes the set of document font sizes, but also modifies additional settings such as the page layout and vertical spacing which were specifically designed to work with those font sizes.
+For this reason, you may want to set the document class font size option close to the value of \cs{normalsize} set by this package.
+
+Internally, this package sets up each font size command from \cs{tiny} to \cs{Huge} using the kernel command \cs{@setfontsize}\---they have no additional functionality beyond that of \cs{@setfontsize}.
+Unlike the standard document classes, the font size commands set up by this package do not change the vertical spacing for displayed math and list structures.
+If the user would like to add this functionality or perhaps other features to the font size commands, they can do so via hooks, which are documented in the \LaTeX{} kernel.
+
+
+\subsection{Terminology}
+\label{subsec:terminology}
+
+When using the \pkg{fontscale} package, each font size, including the standard font size commands from \cs{tiny} to \cs{Huge}, has a step, scale, size, and baselineskip.
+The latter two parameters are the familiar first and second arguments to the low\-/level font command \cs{fontsize}\marg{\meta{size}}\marg{\meta{skip}}.
+The font scale is the relative font size; the ratio of the font size to \cs{normalsize}.
+The font step is the number of font size gradations from \cs{normalsize}, which has a step of \num{0}.
+Table~\ref{table:fontsteps} lists the font step of each font size command.
+
+\input{./fontscale-manual-table-font-steps.tex}
+
+
+\section{Choosing the typographic scale}
+\label{sec:choosing}
+
+\Key{typographic-scale}
+ [classic-10pt, classic-11pt, classic-12pt, modular, musical]
+ [classic-10pt]
+\newline
+\Key{modular/ratio}[\meta{number}][1.125]
+\newline
+\Key{musical/ratio}[\meta{number}][2]%
+\nopagebreak\newline
+\Key{musical/notes}[\meta{integer}][5]
+
+The key \Key{typographic\-/scale} sets the font sizes using a classic, modular, or musical typographic scale.
+These are common methods of choosing a set of document font sizes.
+The choice of typographic scale initializes to \Key{classic\-/10pt}.
+
+The key \Key{typographic\-/scale} can also be set in a condensed format via the keys \Key{classic\-/10pt}, \Key{classic\-/11pt}, \Key{classic\-/12pt}, \Key{modular}, or \Key{musical}, which set the key \Key{typographic\-/scale} to the corresponding value.
+
+The classic typographic scale consists of the traditional font sizes
+\numlist{6;7;8;9;10;11;12;14;16;18;21;24;36;48;60;72}.%
+\footnote{See \S{}3.1 of \textit{The Elements of Typographic Style} by Robert Bringhurst.}
+They have been used since the sixteenth century and are the default font sizes on most computer software.
+The keys \Key{classic-10pt, classic-11pt, classic-12pt} set the size of each font size command to values based on their position in the classic typographic scale.
+The size of \cs{normalsize} is the named point size.
+The sizes of the other font size commands are the adjacent font sizes in the scale.
+Table~\ref{table:classicscales} lists the size of each font size command when using a classic typographic scale.
+
+\input{./fontscale-manual-table-classic.tex}
+
+The key \Key{modular} sets the font sizes from \cs{tiny} to \cs{Huge} using a modular typographic scale.
+In a modular scale, each font size is a fixed ratio from the adjacent font sizes.%
+\footnote{\url{https://alistapart.com/article/more-meaningful-typography/}}
+Here, the base font size is the size of \cs{normalsize}, which can be set via the key \Key{normalsize/size}[\meta{size}], more documented in \S\ref{sec:overwriting}.
+If not set, \cs{normalsize} initializes to \qty{10}{pt}.
+The modular ratio can be set via the key \Key{modular\slash{}ratio}.
+The initial modular ratio is \num{1.125}.
+
+\input{./fontscale-manual-table-modular-musical.tex}
+
+The key \Key{musical} sets the font sizes according to their position in a musical typographic scale.
+The font size is calculated using the formula:%
+\footnote
+ {%
+ I have referenced this article by Spencer Mortensen:
+ \newline
+ \url{https://spencermortensen.com/articles/typographic-scale/}%
+ }
+\[ f_i = f_0 \times r ^ { i / n } \]
+$f_0$ is the base font size, the size of \cs{normalsize}.
+$f_i$ is the font size with font step~$i$.
+$n$ is the number of notes in the musical scale\---the number of font size gradations or steps above \cs{normalsize}.
+$r$ is the ratio of the musical scale, the ratio of the highest to the lowest note $ f_n / f_0 $.
+(The modular typographic scale is actually a special case of the musical typographic scale where $n=1$.)
+
+The musical ratio~$r$ and the number of notes~$n$ can be set via the keys \Key{musical\slash{}ratio} and \Key{musical\slash{}notes}.
+The initial musical ratio\---\num{2}\---and the initial number of notes\---\num{5}\---are the same as that of the classic typographic scale.%
+\footnote{Ibid.}
+Conveniently, \cs{Huge} is \num{5} steps above \cs{normalsize}.
+The font size of \cs{normalsize}~$f_0$ can be set using the key \Key{normalsize/size}[\meta{size}], more documented in \S\ref{sec:overwriting}.
+When using a musical typographic scale, \cs{normalsize} initializes to \qty{10}{pt}.%
+\footnote {I have set the initial value to \qty{10}{pt} instead of the \qty{12}{pt} recommended by the Spencer Mortensen article because this matches the default settings of the standard \LaTeXe{} document classes.}
+
+\Key{baselineskip-size-ratio}[\meta{number}][1.2]
+\KeepNextPar*
+
+The key \Key{baselineskip\-/size\-/ratio} sets the ratio of the font baselineskip to the font size.
+By default, the font baselineskip of each font size command equals its font size times \Key{baselineskip\-/size\-/ratio}.
+Users should not adjust this value unless they really know what they are doing.
+When using increased line spacing, users should prefer the low\-/level font command \cs{linespread} or the \pkg{setspace} package.
+
+
+\section{Overwriting the typographic scale}
+\label{sec:overwriting}
+
+In some situations, users may need to explicitly set the scale, size, or baselineskip of a font size command, overwriting the value set by the keys in \S\ref{sec:choosing}.
+Note that the font steps and the scale of \cs{normalsize} are constants and cannot be changed.
+
+\Key{\meta{font size command}/scale}[\meta{number}]
+\KeepNextPar*
+
+The keys \Key{\meta{font size command}\slash{}scale} set the scale of \meta{font size command} to \meta{number}, ignoring the value set by the key \Key{typographic-scale}.
+The key \Key{normalsize\slash{}scale} is not defined.
+
+\Key{\meta{font size command}/size}[\meta{size}]
+\KeepNextPar*
+
+The keys \Key{\meta{font size command}\slash{}size} set the size of \meta{font size command} to \meta{size}, ignoring the values set by the keys \Key{typographic-scale} and \Key{\meta{font size command}\slash{}scale}.
+\meta{size} supplies a default unit of \unit{pt}.
+
+The package will issue a warning if the user sets the keys \Key{\meta{font size command}\slash{}size} and \Key{\meta{font size command}\slash{}scale} for the same \meta{font size command} since the latter key will be ignored.
+
+\Key{\meta{font size command}/baselineskip}[\meta{skip}]
+\KeepNextPar*
+
+The keys \Key{\meta{font size command}\slash{}baselineskip} set the font baselineskip of \meta{font size command} to \meta{skip} instead of calculating it from the size of \meta{font size command} and \Key{baselineskip\-/size\-/ratio}.
+\meta{skip} supplies a default unit of \unit{pt}.
+
+\Key{\meta{font size command}}[\meta{size}]
+\nopagebreak\newline
+\Key{\meta{font size command}}[\meta{size}/\meta{skip}]
+
+The keys \Key{\meta{font size command}} set the keys \Key{\meta{font size command}\slash{}size} or \Key{\meta{font size command}\slash{}baselineskip} in a condensed format.
+The latter format resembles traditional typographic notation where the size and leading of a text can be expressed as, for example, $10/12$ or $11/13$.
+The number before/after the slash is the size/leading in \unit{pts}.
+
+\Key{ignore-order}[true, false][false]
+\KeepNextPar*
+
+The user should take care to ensure that the font sizes and font baselineskips remain in the correct order when directly setting the scales, sizes, or baselineskips of the different font size commands.
+The magnitudes of the sizes and baselineskips should be ordered from \cs{tiny} to \cs{normalsize} to \cs{Huge}.
+This is important for typographic and syntactic consistency.
+This package will issue a warning if they are not in the correct order.
+The user can disable this warning via the key \Key{ignore\-/order}[true] or just \Key{ignore\-/order}.
+
+
+\section{User commands}
+\label{sec:usercommands}
+
+\subsection{Expandable font parameters}
+\label{subsec:fontparameters}
+
+\cs{CurrentFontStep}
+\nopagebreak\newline
+\cs{CurrentFontScale}
+\newline
+\cs{CurrentFontSize}
+\nopagebreak\newline
+\cs{CurrentFontBaselineskip}
+
+These are fully expandable commands that expand to the current font step, scale, size, or baselineskip.
+They can be used for printing or within calculations.
+Caution: \cs{CurrentFontStep} will expand to nothing if the current step is undefined.
+
+Internally, \cs{CurrentFontStep}, \cs{CurrentFontScale}, and \cs{CurrentFontSize} use the kernel command \cs{f@size}.
+\cs{CurrentFontSize} expands to \texttt{f@size pt}.
+\cs{CurrentFontBaselineskip} expands to the kernel command \cs{f@baselineskip}.
+Note that the low\-/level font command \cs{fontsize}\marg{\meta{size}}\allowbreak\marg{\meta{skip}} sets \cs{f@size} before expanding its second argument.
+This means that \cs{CurrentFontStep}, \cs{CurrentFontScale}, and \cs{CurrentFontSize} may need to be first expanded if used in \meta{skip}.
+This package provides the command \cs{SetFontSizeBaselineskip} as an alternative to \cs{fontsize} + \cs{selectfont} that avoids this issue (\S\ref{subsec:fontsize}).
+
+\subsection{More font sizing commands}
+\label{subsec:fontsize}
+
+The \pkg{fontscale} package provides the commands \cs{SetFontStep}, \cs{SetFontScale}, \cs{SetFontSize}, \cs{ScaleFont}, and \cs{SetFontSizeBaselineskip} which set the font size in different ways.
+The first three commands have a starred version which sets the font size relative to the current font size.
+Internally, these commands all use the low\-/level font commands \cs{fontsize}\marg{\meta{size}}\allowbreak\marg{\meta{skip}} and \cs{selectfont}.
+These commands should be used only in special cases.
+Generally, users should prefer the font size commands from \cs{tiny} to \cs{Huge} for typographic and syntactic consistency, although \cs{SetFontStep*}\marg{\meta{integer}} can use a font size command directly.
+
+\cs{SetFontStep}\marg{\meta{number}}
+\nopagebreak\newline
+\cs{SetFontStep*}\marg{\meta{number}}
+
+\cs{SetFontStep} sets the font size by setting the font step to \meta{number}.
+The starred version \cs{SetFontStep*} adds \meta{number} to the current font step.
+If the choice of typographic scale is not modular or musical, then the only valid values for \meta{number} are the integers from \num{-4} to \num{5}, corresponding to the font size commands from \cs{tiny} to \cs{Huge}.
+\cs{SetFontStep} will issue an error if the step is invalid.
+\cs{SetFontStep} sets the font baselineskip to the calculated font size \texttimes{} \Key{baselineskip\-/size\-/ratio}.
+If the step matches the step of any font size command, then that font size command will be used directly.
+
+\listheading{Examples:}
+\begin{itemize}
+ \item
+ For example, \cs{SetFontStep}\marg{-2} and \cs{SetFontStep}\marg{2} use \cs{footnotesize} and \cs{Large}.
+ Note that it is typically better to use the equivalent font size command in place of \cs{SetFontStep}\marg{\meta{integer}}.
+ \item
+ If the current font size is \cs{normalsize}, \cs{SetFontStep*}\marg{1} and \cs{SetFontStep*}\marg{-1} use \cs{large} and \cs{small}.
+ This is useful for moving up or down a note on the typographic scale.
+ \item
+ If the choice of typographic scale is modular or musical, \cs{SetFontStep*}\marg{-0.5} sets the font size and font baselineskip to values between that of \cs{normalsize} and \cs{small}.
+ Otherwise, it produces an error.
+\end{itemize}
+
+\cs{SetFontScale}\marg{\meta{number}}
+\nopagebreak\newline
+\cs{SetFontScale*}\marg{\meta{number}}
+
+\cs{SetFontScale} sets the font size by setting the font scale to \meta{number}.
+The font baselineskip is set to the calculated font size \texttimes{} \Key{baselineskip\-/size\-/ratio}.
+The starred version \cs{SetFontScale*} adds \meta{number} to the current font scale.
+For example, \cs{SetFontScale}\marg{1.25} makes the font size 25\% larger than \cs{normalsize}.
+If the current font size is \cs{normalsize}, \cs{SetFontScale*}\marg{0.25} is equivalent to \cs{SetFontScale}\marg{1.25}.
+
+\cs{SetFontSize}\marg{\meta{size}}
+\nopagebreak\newline
+\cs{SetFontSize*}\marg{\meta{size}}
+
+\cs{SetFontSize} sets the font size to \meta{size}.
+\meta{size} supplies a default unit of \unit{pt}.
+The font baselineskip is set to the font size \texttimes{} \Key{baselineskip\-/size\-/ratio}.
+The starred version \cs{SetFontSize*} adds \meta{size} to the current size.
+For example, \cs{SetFontSize*}\marg{1} and \cs{SetFontSize*}\marg{-1pt} increase and decrease the current font size by a \unit{pt}.
+
+\cs{ScaleFont}\marg{\meta{number}}
+\KeepNextPar*
+
+Scales the current font size and the current font baselineskip by a factor of \meta{number}.
+\cs{ScaleFont} resembles the \cs{scalefont} command provided by the \pkg{scalefnt} package, except that it uses floating point calculations and clears the stretch and shrink components of the font baselineskip.
+For example, if the current font size and font baselineskip are \qty{10}{pt} and \qty{12}{pt}, using \cs{ScaleFont}\marg{0.8} will reduce them proportionally to \qty{8}{pt} and \qty{9.6}{pt}.
+
+\cs{SetFontSizeBaselineskip}\marg{\meta{size}}\marg{\meta{skip}}
+\KeepNextPar*
+
+Sets the font size and font baselineskip to \meta{size} and \meta{skip}.
+Both \meta{size} and \meta{skip} supply a default unit of \unit{pt}.
+\cs{SetFontSizeBaselineskip} can be used as an alternative to \cs{fontsize} + \cs{selectfont} as it avoids the issue with \cs{f@size} discussed in \S\ref{subsec:fontparameters}
+\vfill\pagebreak%manual
+
+\subsection{Testing and debugging}
+\label{subsec:debug}
+
+The commands documented here are intended primarily for testing and debugging.
+I have used them often when developing this package so I think users will find them helpful.
+
+\cs{PrintFontParameters}
+\nopagebreak\newline
+\cs{PrintAllFontParameters}
+
+\cs{PrintFontParameters} prints the current step, scale, size, and baselineskip in this order in a comma\-/separated list of key = value pairs.
+If the current step is undefined (as explained for \cs{SetFontStep} in \S\ref{subsec:fontsize}), it will be left blank.
+\cs{PrintAllFontParameters} prints the step, scale, size, and baselineskip of each font size command.
+
+\cs{PrintSampleText}\oarg{\meta{text}}
+\nopagebreak\newline
+\cs{PrintSampleText*}\oarg{\meta{text}}
+
+\cs{PrintSampleText} prints \meta{text} in each font size ordered from \cs{tiny} to \cs{Huge} each followed by a paragraph break.
+The starred version \cs{PrintSampleText*} reverses the sizing order.
+The \meta{text} can be changed via the optional argument, but cannot contain \cs{par} tokens.
+The default \meta{text} is \enquote{The \texttt{fontscale} package: A user interface for setting document font sizes}.
+
+\cs{PrintFontSizeCommand}
+\KeepNextPar*
+
+\cs{PrintFontSizeCommand} tests whether the current font size and font baselineskip match that of any font size command.
+If so, it prints the name of that font size command.
+If not, it instead prints \enquote{UNDEFINED\@}.
+One useful way of printing example text is by using
+\cs{PrintSampleText}\allowbreak\oarg{\cs{PrintFontSizeCommand}:\textvisiblespace{}\cs{PrintFontParameters}}.
+
+\subsection
+ {%
+ \texorpdfstring
+ {More on \cs{fontscalesetup}}
+ {More on \textbackslash{}fontscalesetup}%
+ }
+\label{subsec:fontscalesetup}
+
+\cs{fontscalesetup}\marg{\meta{keys}}
+\KeepNextPar*
+
+Sets and processes the \pkg{fontscale} package keys and uses \cs{normalsize}.
+\cs{fontscalesetup} can be applied mid\-/document or locally within the current \TeX{} group.
+The key \Key{reset} is also available.
+Its value must be either \texttt{initial} or \texttt{preamble}.
+The key \Key{reset}[initial] or just \Key{reset} sets all the keys to their initial values.
+The key \Key{reset}[preamble] sets all the keys to their values at the end of the preamble (or does nothing if used before the end of the preamble).
+
+
+\section{Programming}
+\label{sec:programming}
+
+This section is relevant to \LaTeX3 programmers.
+
+The user commands \cs{SetFontStep}, \cs{SetFontScale}, \cs{SetFontSize}, \cs{ScaleFont}, and \cs{SetFontSizeBaselineskip} are set up to work with \cs{text_purify:n}.
+\cs{text_purify:n} will correctly remove these commands and their arguments.
+This includes the starred versions \cs{SetFontStep*}, \cs{SetFontScale*}, and \cs{SetFontSize*}.
+
+This package does not provide any public \pkg{expl3} functions.
+
+This package provides some public \pkg{expl3} variables.
+The package stores in public variables the step, scale, size, and baselineskip of each font size command.
+These variables should not be modified directly.
+Instead, they should be modified only indirectly via the command \cs{fontscalesetup}.
+
+Each takes the form:
+
+\begingroup
+ \ttfamily
+ \textbackslash{}c\_fontscale\_\meta{font size command}\_step\_fp
+ \nopagebreak\newline
+ \textbackslash{}l\_fontscale\_\meta{font size command}\_scale\_fp
+ \newline
+ \textbackslash{}l\_fontscale\_\meta{font size command}\_size\_dim
+ \nopagebreak\newline
+ \textbackslash{}l\_fontscale\_\meta{font size command}\_baselineskip\_skip
+\endgroup
+
+Exception:
+\cs{l_fontscale_normalsize_scale_fp} is not defined.
+The scale of \cs{normalsize} is instead stored as the constant \cs{c_fontscale_normalsize_scale_fp}, which always equals \num{1}.
+
+The step, scale, size, and baselineskip of each font size command are also stored in property lists, one for each font size command:
+
+\texttt{\textbackslash{}l\_fontscale\_\meta{font size command}\_prop}
+
\end{document} \ No newline at end of file
diff --git a/macros/latex/contrib/fontscale/fontscale.sty b/macros/latex/contrib/fontscale/fontscale.sty
index 2047438621..b89dccbb3c 100644
--- a/macros/latex/contrib/fontscale/fontscale.sty
+++ b/macros/latex/contrib/fontscale/fontscale.sty
@@ -1,1308 +1,1315 @@
-% Package : fontscale -- A user interface for setting document font sizes
-% Copyright : 2024 (c) Oliver Beery <beeryoliver@gmail.com>
-% CTAN : https://ctan.org/pkg/fontscale
-% Repository: https://github.com/beeryoliver/fontscale
-% License : The LaTeX Project Public License 1.3c
-
-% The 2022-06-01 LaTeX kernel update added \ProcessKeyOptions.
-\NeedsTeXFormat{LaTeX2e}[2022-06-01]
-\ProvidesExplPackage
- {fontscale}
- {2024-03-31}
- {1.1.0}
- {A user interface for setting document font sizes}
-
-% The 2023-10-10 l3kernel update added many 'e'-variants.
-\IfExplAtLeastTF { 2023-10-10 }
- { }
- {
- \msg_new:nnn { fontscale } { expl3-out-of-date }
- {
- The~ package~ could~ not~ load.~
- The~ fontscale~ package~ requires~
- L3~ programming~ layer~ version~ 2023-10-10~ or~ later.
- }
- \msg_critical:nn { fontscale } { expl3-out-of-date }
- }
-
-% SOME VARIABLES
-
-\fp_const:Nn \c_fontscale_tiny_step_fp { -4 }
-\fp_const:Nn \c_fontscale_scriptsize_step_fp { -3 }
-\fp_const:Nn \c_fontscale_footnotesize_step_fp { -2 }
-\fp_const:Nn \c_fontscale_small_step_fp { -1 }
-\fp_const:Nn \c_fontscale_normalsize_step_fp { 0 }
-\fp_const:Nn \c_fontscale_large_step_fp { 1 }
-\fp_const:Nn \c_fontscale_Large_step_fp { 2 }
-\fp_const:Nn \c_fontscale_LARGE_step_fp { 3 }
-\fp_const:Nn \c_fontscale_huge_step_fp { 4 }
-\fp_const:Nn \c_fontscale_Huge_step_fp { 5 }
-
-\fp_const:Nn \c_fontscale_normalsize_scale_fp { 1 }
-
-\seq_const_from_clist:Nn \c__fontscale_names_seq
- {
- tiny
- , scriptsize
- , footnotesize
- , small
- , normalsize
- , large
- , Large
- , LARGE
- , huge
- , Huge
- }
-\seq_const_from_clist:Nn \c__fontscale_names_other_seq
- {
- tiny
- , scriptsize
- , footnotesize
- , small
- , large
- , Large
- , LARGE
- , huge
- , Huge
- }
-
-\prop_new:N \l_fontscale_tiny_prop
-\prop_new:N \l_fontscale_scriptsize_prop
-\prop_new:N \l_fontscale_footnotesize_prop
-\prop_new:N \l_fontscale_small_prop
-\prop_new:N \l_fontscale_normalsize_prop
-\prop_new:N \l_fontscale_large_prop
-\prop_new:N \l_fontscale_Large_prop
-\prop_new:N \l_fontscale_LARGE_prop
-\prop_new:N \l_fontscale_huge_prop
-\prop_new:N \l_fontscale_Huge_prop
-
-\prop_put:Nnn \l_fontscale_tiny_prop { step } { -4 }
-\prop_put:Nnn \l_fontscale_scriptsize_prop { step } { -3 }
-\prop_put:Nnn \l_fontscale_footnotesize_prop { step } { -2 }
-\prop_put:Nnn \l_fontscale_small_prop { step } { -1 }
-\prop_put:Nnn \l_fontscale_normalsize_prop { step } { 0 }
-\prop_put:Nnn \l_fontscale_large_prop { step } { 1 }
-\prop_put:Nnn \l_fontscale_Large_prop { step } { 2 }
-\prop_put:Nnn \l_fontscale_LARGE_prop { step } { 3 }
-\prop_put:Nnn \l_fontscale_huge_prop { step } { 4 }
-\prop_put:Nnn \l_fontscale_Huge_prop { step } { 5 }
-
-\prop_put:Nnn \l_fontscale_normalsize_prop { scale } { 1 }
-
-\fp_new:N \l_fontscale_tiny_scale_fp
-\fp_new:N \l_fontscale_scriptsize_scale_fp
-\fp_new:N \l_fontscale_footnotesize_scale_fp
-\fp_new:N \l_fontscale_small_scale_fp
-\fp_new:N \l_fontscale_large_scale_fp
-\fp_new:N \l_fontscale_Large_scale_fp
-\fp_new:N \l_fontscale_LARGE_scale_fp
-\fp_new:N \l_fontscale_huge_scale_fp
-\fp_new:N \l_fontscale_Huge_scale_fp
-
-\dim_new:N \l_fontscale_tiny_size_dim
-\dim_new:N \l_fontscale_scriptsize_size_dim
-\dim_new:N \l_fontscale_footnotesize_size_dim
-\dim_new:N \l_fontscale_small_size_dim
-\dim_new:N \l_fontscale_normalsize_size_dim
-\dim_new:N \l_fontscale_large_size_dim
-\dim_new:N \l_fontscale_Large_size_dim
-\dim_new:N \l_fontscale_LARGE_size_dim
-\dim_new:N \l_fontscale_huge_size_dim
-\dim_new:N \l_fontscale_Huge_size_dim
-
-\skip_new:N \l_fontscale_tiny_baselineskip_skip
-\skip_new:N \l_fontscale_scriptsize_baselineskip_skip
-\skip_new:N \l_fontscale_footnotesize_baselineskip_skip
-\skip_new:N \l_fontscale_small_baselineskip_skip
-\skip_new:N \l_fontscale_normalsize_baselineskip_skip
-\skip_new:N \l_fontscale_large_baselineskip_skip
-\skip_new:N \l_fontscale_Large_baselineskip_skip
-\skip_new:N \l_fontscale_LARGE_baselineskip_skip
-\skip_new:N \l_fontscale_huge_baselineskip_skip
-\skip_new:N \l_fontscale_Huge_baselineskip_skip
-
-\fp_new:N \l__fontscale_normalsize_size_fp
-\str_new:N \l__fontscale_typographic_scale_str
-\tl_new:N \l__fontscale_keys_precompile_preamble_tl
-
-% Temporary variables
-\fp_new:N \l__fontscale_step_fp
-\tl_new:N \l__fontscale_step_tl
-\tl_new:N \l__fontscale_scale_tl
-\dim_new:N \l__fontscale_size_dim
-\skip_new:N \l__fontscale_baselineskip_skip
-
-% INITIAL FONT PARAMETERS
-
-\fp_set:Nn \l__fontscale_normalsize_size_fp { 10 }
-
-\dim_set:Nn \l_fontscale_tiny_size_dim { 6pt }
-\dim_set:Nn \l_fontscale_scriptsize_size_dim { 7pt }
-\dim_set:Nn \l_fontscale_footnotesize_size_dim { 8pt }
-\dim_set:Nn \l_fontscale_small_size_dim { 9pt }
-\dim_set:Nn \l_fontscale_normalsize_size_dim { 10pt }
-\dim_set:Nn \l_fontscale_large_size_dim { 11pt }
-\dim_set:Nn \l_fontscale_Large_size_dim { 12pt }
-\dim_set:Nn \l_fontscale_LARGE_size_dim { 14pt }
-\dim_set:Nn \l_fontscale_huge_size_dim { 16pt }
-\dim_set:Nn \l_fontscale_Huge_size_dim { 18pt }
-
-\fp_set:Nn \l_fontscale_tiny_scale_fp { 0.6 }
-\fp_set:Nn \l_fontscale_scriptsize_scale_fp { 0.7 }
-\fp_set:Nn \l_fontscale_footnotesize_scale_fp { 0.8 }
-\fp_set:Nn \l_fontscale_small_scale_fp { 0.9 }
-\fp_set:Nn \l_fontscale_large_scale_fp { 1.1 }
-\fp_set:Nn \l_fontscale_Large_scale_fp { 1.2 }
-\fp_set:Nn \l_fontscale_LARGE_scale_fp { 1.4 }
-\fp_set:Nn \l_fontscale_huge_scale_fp { 1.6 }
-\fp_set:Nn \l_fontscale_Huge_scale_fp { 1.8 }
-
-\skip_set:Nn \l_fontscale_tiny_baselineskip_skip { 7.2pt }
-\skip_set:Nn \l_fontscale_scriptsize_baselineskip_skip { 8.4pt }
-\skip_set:Nn \l_fontscale_footnotesize_baselineskip_skip { 9.6pt }
-\skip_set:Nn \l_fontscale_small_baselineskip_skip { 10.8pt }
-\skip_set:Nn \l_fontscale_normalsize_baselineskip_skip { 12 pt }
-\skip_set:Nn \l_fontscale_large_baselineskip_skip { 13.2pt }
-\skip_set:Nn \l_fontscale_Large_baselineskip_skip { 14.4pt }
-\skip_set:Nn \l_fontscale_LARGE_baselineskip_skip { 16.8pt }
-\skip_set:Nn \l_fontscale_huge_baselineskip_skip { 19.2pt }
-\skip_set:Nn \l_fontscale_Huge_baselineskip_skip { 21.6pt }
-
-\prop_put:Nnn \l_fontscale_tiny_prop { scale } { 0.6 }
-\prop_put:Nnn \l_fontscale_scriptsize_prop { scale } { 0.7 }
-\prop_put:Nnn \l_fontscale_footnotesize_prop { scale } { 0.8 }
-\prop_put:Nnn \l_fontscale_small_prop { scale } { 0.9 }
-\prop_put:Nnn \l_fontscale_large_prop { scale } { 1.1 }
-\prop_put:Nnn \l_fontscale_Large_prop { scale } { 1.2 }
-\prop_put:Nnn \l_fontscale_LARGE_prop { scale } { 1.4 }
-\prop_put:Nnn \l_fontscale_huge_prop { scale } { 1.6 }
-\prop_put:Nnn \l_fontscale_Huge_prop { scale } { 1.8 }
-
-\prop_put:Nnn \l_fontscale_tiny_prop { size } { 6pt }
-\prop_put:Nnn \l_fontscale_scriptsize_prop { size } { 7pt }
-\prop_put:Nnn \l_fontscale_footnotesize_prop { size } { 8pt }
-\prop_put:Nnn \l_fontscale_small_prop { size } { 9pt }
-\prop_put:Nnn \l_fontscale_normalsize_prop { size } { 10pt }
-\prop_put:Nnn \l_fontscale_large_prop { size } { 11pt }
-\prop_put:Nnn \l_fontscale_Large_prop { size } { 12pt }
-\prop_put:Nnn \l_fontscale_LARGE_prop { size } { 14pt }
-\prop_put:Nnn \l_fontscale_huge_prop { size } { 16pt }
-\prop_put:Nnn \l_fontscale_Huge_prop { size } { 18pt }
-
-\prop_put:Nnn \l_fontscale_tiny_prop { baselineskip } { 7.2pt }
-\prop_put:Nnn \l_fontscale_scriptsize_prop { baselineskip } { 8.4pt }
-\prop_put:Nnn \l_fontscale_footnotesize_prop { baselineskip } { 9.6pt }
-\prop_put:Nnn \l_fontscale_small_prop { baselineskip } { 10.8pt }
-\prop_put:Nnn \l_fontscale_normalsize_prop { baselineskip } { 12 pt }
-\prop_put:Nnn \l_fontscale_large_prop { baselineskip } { 13.2pt }
-\prop_put:Nnn \l_fontscale_Large_prop { baselineskip } { 14.4pt }
-\prop_put:Nnn \l_fontscale_LARGE_prop { baselineskip } { 16.8pt }
-\prop_put:Nnn \l_fontscale_huge_prop { baselineskip } { 19.2pt }
-\prop_put:Nnn \l_fontscale_Huge_prop { baselineskip } { 21.6pt }
-
-% SOME HELPER FUNCTIONS
-
-% Sets a dimen or skip variable, supplying a default unit of pt.
-\cs_new_protected:Npn \__fontscale_dim_set_with_default_unit:Nn #1#2
- { \@defaultunits #1 = \dimexpr #2 pt \relax \relax \@nnil }
-\cs_generate_variant:Nn \__fontscale_dim_set_with_default_unit:Nn { c }
-\cs_new_protected:Npn \__fontscale_skip_set_with_default_unit:Nn #1#2
- { \@defaultunits #1 = \glueexpr #2 pt \relax \@nnil }
-\cs_generate_variant:Nn \__fontscale_skip_set_with_default_unit:Nn { c }
-
-% MESSAGES
-
-\msg_new:nnn { fontscale } { key-font-scale-ignored }
- {
- Key~ #1 / scale~
- \msg_line_context: \c_space_tl
- ignored.~
- Setting~ the~ scale~ and~ size~ keys~ for~ the~ same~
- font~ size~ command~ ignores~ the~ scale~ key.
- }
-\msg_new:nnn { fontscale } { font-sizes-out-of-order }
- {
- The~ font~ sizes~
- \msg_line_context: \c_space_tl
- are~ not~ in~ the~ correct~ order.~
- The~ magnitude~ of~ the~ font~ sizes~ should~ be~ ordered~ from~
- \token_to_str:N \tiny \c_space_tl
- to~
- \token_to_str:N \normalsize \c_space_tl
- to~
- \token_to_str:N \Huge .
- }
-\msg_new:nnn { fontscale } { font-baselineskips-out-of-order }
- {
- The~ font~ baselineskips~
- \msg_line_context: \c_space_tl
- are~ not~ in~ the~ correct~ order.~
- The~ magnitude~ of~ the~ font~ baselineskips~ should~ be~ ordered~ from~
- \token_to_str:N \tiny \c_space_tl
- to~
- \token_to_str:N \normalsize \c_space_tl
- to~
- \token_to_str:N \Huge .
- }
-\msg_new:nnn { fontscale } { font-step-out-of-bounds }
- {
- The~ font~ step~
- \msg_line_context: \c_space_tl
- must~ be~ an~ integer~ from~ -4~ to~ 5,~
- unless~ the~ choice~ of~ typographic~ scale~ is~ modular~ or~ musical.
- }
-
-% DEFINE KEYS
-
-\keys_define:nn { fontscale }
- {
- reset .choices:nn = { initial , preamble }
- {
- \int_case:nn { \l_keys_choice_int }
- {
- { 1 } { \c__fontscale_keys_precompile_initial_tl }
- { 2 } { \l__fontscale_keys_precompile_preamble_tl }
- }
- }
- , reset .default:n = initial
-
- , ignore-order .bool_set:N = \l__fontscale_ignore_order_bool
- , ignore-order .default:n = true
-
- , baselineskip-size-ratio .fp_set:N =
- \l__fontscale_baselineskip_size_ratio_fp
- , baselineskip-size-ratio .value_required:n = true
-
- , typographic-scale .choices:nn =
- { classic-10pt , classic-11pt , classic-12pt , modular , musical }
- { \str_set:Nn \l__fontscale_typographic_scale_str {#1} }
- , typographic-scale .value_required:n = true
-
- , classic-10pt .meta:n = { typographic-scale = classic-10pt }
- , classic-10pt .value_forbidden:n = true
-
- , classic-11pt .meta:n = { typographic-scale = classic-11pt }
- , classic-11pt .value_forbidden:n = true
-
- , classic-12pt .meta:n = { typographic-scale = classic-12pt }
- , classic-12pt .value_forbidden:n = true
-
- , modular .meta:n = { typographic-scale = modular }
- , modular .value_forbidden:n = true
-
- , musical .meta:n = { typographic-scale = musical }
- , musical .value_forbidden:n = true
-
- , modular / ratio .fp_set:N = \l__fontscale_modular_ratio_fp
- , modular / ratio .value_required:n = true
- }
-\keys_define:nn { fontscale / musical }
- {
- ratio .fp_set:N = \l__fontscale_musical_ratio_fp
- , ratio .value_required:n = true
-
- , notes .int_set:N = \l__fontscale_musical_notes_int
- , notes .value_required:n = true
- }
-\keys_define:nn { fontscale / tiny }
- {
- scale .tl_set:N = \l__fontscale_tiny_scale_tl
- , scale .value_required:n = true
-
- , size .tl_set:N = \l__fontscale_tiny_size_tl
- , size .value_required:n = true
-
- , baselineskip .tl_set:N = \l__fontscale_tiny_baselineskip_tl
- , baselineskip .value_required:n = true
- }
-\keys_define:nn { fontscale / scriptsize }
- {
- scale .tl_set:N = \l__fontscale_scriptsize_scale_tl
- , scale .value_required:n = true
-
- , size .tl_set:N = \l__fontscale_scriptsize_size_tl
- , size .value_required:n = true
-
- , baselineskip .tl_set:N = \l__fontscale_scriptsize_baselineskip_tl
- , baselineskip .value_required:n = true
- }
-\keys_define:nn { fontscale / footnotesize }
- {
- scale .tl_set:N = \l__fontscale_footnotesize_scale_tl
- , scale .value_required:n = true
-
- , size .tl_set:N = \l__fontscale_footnotesize_size_tl
- , size .value_required:n = true
-
- , baselineskip .tl_set:N = \l__fontscale_footnotesize_baselineskip_tl
- , baselineskip .value_required:n = true
- }
-\keys_define:nn { fontscale / small }
- {
- scale .tl_set:N = \l__fontscale_small_scale_tl
- , scale .value_required:n = true
-
- , size .tl_set:N = \l__fontscale_small_size_tl
- , size .value_required:n = true
-
- , baselineskip .tl_set:N = \l__fontscale_small_baselineskip_tl
- , baselineskip .value_required:n = true
- }
-\keys_define:nn { fontscale / normalsize }
- {
- size .tl_set:N = \l__fontscale_normalsize_size_tl
- , size .value_required:n = true
-
- , baselineskip .tl_set:N = \l__fontscale_normalsize_baselineskip_tl
- , baselineskip .value_required:n = true
- }
-\keys_define:nn { fontscale / large }
- {
- scale .tl_set:N = \l__fontscale_large_scale_tl
- , scale .value_required:n = true
-
- , size .tl_set:N = \l__fontscale_large_size_tl
- , size .value_required:n = true
-
- , baselineskip .tl_set:N = \l__fontscale_large_baselineskip_tl
- , baselineskip .value_required:n = true
- }
-\keys_define:nn { fontscale / Large }
- {
- scale .tl_set:N = \l__fontscale_Large_scale_tl
- , scale .value_required:n = true
-
- , size .tl_set:N = \l__fontscale_Large_size_tl
- , size .value_required:n = true
-
- , baselineskip .tl_set:N = \l__fontscale_Large_baselineskip_tl
- , baselineskip .value_required:n = true
- }
-\keys_define:nn { fontscale / LARGE }
- {
- scale .tl_set:N = \l__fontscale_LARGE_scale_tl
- , scale .value_required:n = true
-
- , size .tl_set:N = \l__fontscale_LARGE_size_tl
- , size .value_required:n = true
-
- , baselineskip .tl_set:N = \l__fontscale_LARGE_baselineskip_tl
- , baselineskip .value_required:n = true
- }
-\keys_define:nn { fontscale / huge }
- {
- scale .tl_set:N = \l__fontscale_huge_scale_tl
- , scale .value_required:n = true
-
- , size .tl_set:N = \l__fontscale_huge_size_tl
- , size .value_required:n = true
-
- , baselineskip .tl_set:N = \l__fontscale_huge_baselineskip_tl
- , baselineskip .value_required:n = true
- }
-\keys_define:nn { fontscale / Huge }
- {
- scale .tl_set:N = \l__fontscale_Huge_scale_tl
- , scale .value_required:n = true
-
- , size .tl_set:N = \l__fontscale_Huge_size_tl
- , size .value_required:n = true
-
- , baselineskip .tl_set:N = \l__fontscale_Huge_baselineskip_tl
- , baselineskip .value_required:n = true
- }
-\keys_define:nn { fontscale }
- {
- tiny .code:n = \__fontscale_keys_name_code:n {#1}
- , tiny .value_required:n = true
-
- , scriptsize .code:n = \__fontscale_keys_name_code:n {#1}
- , scriptsize .value_required:n = true
-
- , footnotesize .code:n = \__fontscale_keys_name_code:n {#1}
- , footnotesize .value_required:n = true
-
- , small .code:n = \__fontscale_keys_name_code:n {#1}
- , small .value_required:n = true
-
- , normalsize .code:n = \__fontscale_keys_name_code:n {#1}
- , normalsize .value_required:n = true
-
- , large .code:n = \__fontscale_keys_name_code:n {#1}
- , large .value_required:n = true
-
- , Large .code:n = \__fontscale_keys_name_code:n {#1}
- , Large .value_required:n = true
-
- , LARGE .code:n = \__fontscale_keys_name_code:n {#1}
- , LARGE .value_required:n = true
-
- , huge .code:n = \__fontscale_keys_name_code:n {#1}
- , huge .value_required:n = true
-
- , Huge .code:n = \__fontscale_keys_name_code:n {#1}
- , Huge .value_required:n = true
- }
-\cs_new_protected:Npn \__fontscale_keys_name_code:n #1
- {
- \str_if_in:nnTF {#1} { / }
- { \__fontscale_keys_name_code_split:ww #1 \q_stop }
- { \tl_set:cn { l__fontscale_ \l_keys_key_str _size_tl } {#1} }
- }
-\cs_new_protected:Npn \__fontscale_keys_name_code_split:ww #1 / #2 \q_stop
- {
- \tl_set:cn { l__fontscale_ \l_keys_key_str _size_tl } {#1}
- \tl_set:cn { l__fontscale_ \l_keys_key_str _baselineskip_tl } {#2}
- }
-
-% PRE-COMPILE KEYS
-
-% Pre-compiles the keys with their initial values. The keys are pre-compiled
-% by hand for speed.
-\tl_const:Nn \c__fontscale_keys_precompile_initial_tl
- {
- \bool_set_false:N \l__fontscale_ignore_order_bool
- \fp_set:Nn \l__fontscale_baselineskip_size_ratio_fp { 1.2 }
- \str_set:Nn \l__fontscale_typographic_scale_str { classic-10pt }
- \fp_set:Nn \l__fontscale_modular_ratio_fp { 1.125 }
- \fp_set:Nn \l__fontscale_musical_ratio_fp { 2 }
- \int_set:Nn \l__fontscale_musical_notes_int { 5 }
-
- \tl_set:Nn \l__fontscale_tiny_scale_tl { \q_no_value }
- \tl_set:Nn \l__fontscale_scriptsize_scale_tl { \q_no_value }
- \tl_set:Nn \l__fontscale_footnotesize_scale_tl { \q_no_value }
- \tl_set:Nn \l__fontscale_small_scale_tl { \q_no_value }
- \tl_set:Nn \l__fontscale_large_scale_tl { \q_no_value }
- \tl_set:Nn \l__fontscale_Large_scale_tl { \q_no_value }
- \tl_set:Nn \l__fontscale_LARGE_scale_tl { \q_no_value }
- \tl_set:Nn \l__fontscale_huge_scale_tl { \q_no_value }
- \tl_set:Nn \l__fontscale_Huge_scale_tl { \q_no_value }
-
- \tl_set:Nn \l__fontscale_tiny_size_tl { \q_no_value }
- \tl_set:Nn \l__fontscale_scriptsize_size_tl { \q_no_value }
- \tl_set:Nn \l__fontscale_footnotesize_size_tl { \q_no_value }
- \tl_set:Nn \l__fontscale_small_size_tl { \q_no_value }
- \tl_set:Nn \l__fontscale_normalsize_size_tl { \q_no_value }
- \tl_set:Nn \l__fontscale_large_size_tl { \q_no_value }
- \tl_set:Nn \l__fontscale_Large_size_tl { \q_no_value }
- \tl_set:Nn \l__fontscale_LARGE_size_tl { \q_no_value }
- \tl_set:Nn \l__fontscale_huge_size_tl { \q_no_value }
- \tl_set:Nn \l__fontscale_Huge_size_tl { \q_no_value }
-
- \tl_set:Nn \l__fontscale_tiny_baselineskip_tl { \q_no_value }
- \tl_set:Nn \l__fontscale_scriptsize_baselineskip_tl { \q_no_value }
- \tl_set:Nn \l__fontscale_footnotesize_baselineskip_tl { \q_no_value }
- \tl_set:Nn \l__fontscale_small_baselineskip_tl { \q_no_value }
- \tl_set:Nn \l__fontscale_normalsize_baselineskip_tl { \q_no_value }
- \tl_set:Nn \l__fontscale_large_baselineskip_tl { \q_no_value }
- \tl_set:Nn \l__fontscale_Large_baselineskip_tl { \q_no_value }
- \tl_set:Nn \l__fontscale_LARGE_baselineskip_tl { \q_no_value }
- \tl_set:Nn \l__fontscale_huge_baselineskip_tl { \q_no_value }
- \tl_set:Nn \l__fontscale_Huge_baselineskip_tl { \q_no_value }
- }
-\c__fontscale_keys_precompile_initial_tl
-
-% Pre-compiles the keys with their values at the end of the preamble. The keys
-% are pre-compiled by hand for speed.
-\AddToHook { begindocument / before }
- { \__fontscale_keys_precompile_preamble: }
-\cs_new_protected:Npn \__fontscale_keys_precompile_preamble:
- {
- \tl_set:Ne \l__fontscale_keys_precompile_preamble_tl
- {
- \bool_if:NTF \l__fontscale_ignore_order_bool
- { \bool_set_true:N } { \bool_set_false:N }
- \l__fontscale_ignore_order_bool
- \fp_set:Nn \exp_not:N \l__fontscale_baselineskip_size_ratio_fp
- { \l__fontscale_baselineskip_size_ratio_fp }
- \str_set:Nn \exp_not:N \l__fontscale_typographic_scale_str
- { \l__fontscale_typographic_scale_str }
- \fp_set:Nn \exp_not:N \l__fontscale_modular_ratio_fp
- { \l__fontscale_modular_ratio_fp }
- \fp_set:Nn \exp_not:N \l__fontscale_musical_ratio_fp
- { \l__fontscale_musical_ratio_fp }
- \int_set:Nn \l__fontscale_musical_notes_int
- { \int_use:N \l__fontscale_musical_notes_int }
-
- \tl_set:Nn \exp_not:N \l__fontscale_tiny_scale_tl
- { \exp_not:o \l__fontscale_tiny_scale_tl }
- \tl_set:Nn \exp_not:N \l__fontscale_scriptsize_scale_tl
- { \exp_not:o \l__fontscale_scriptsize_scale_tl }
- \tl_set:Nn \exp_not:N \l__fontscale_footnotesize_scale_tl
- { \exp_not:o \l__fontscale_footnotesize_scale_tl }
- \tl_set:Nn \exp_not:N \l__fontscale_small_scale_tl
- { \exp_not:o \l__fontscale_small_scale_tl }
- \tl_set:Nn \exp_not:N \l__fontscale_large_scale_tl
- { \exp_not:o \l__fontscale_large_scale_tl }
- \tl_set:Nn \exp_not:N \l__fontscale_Large_scale_tl
- { \exp_not:o \l__fontscale_Large_scale_tl }
- \tl_set:Nn \exp_not:N \l__fontscale_LARGE_scale_tl
- { \exp_not:o \l__fontscale_LARGE_scale_tl }
- \tl_set:Nn \exp_not:N \l__fontscale_huge_scale_tl
- { \exp_not:o \l__fontscale_huge_scale_tl }
- \tl_set:Nn \exp_not:N \l__fontscale_Huge_scale_tl
- { \exp_not:o \l__fontscale_Huge_scale_tl }
-
- \tl_set:Nn \exp_not:N \l__fontscale_tiny_size_tl
- { \exp_not:o \l__fontscale_tiny_size_tl }
- \tl_set:Nn \exp_not:N \l__fontscale_scriptsize_size_tl
- { \exp_not:o \l__fontscale_scriptsize_size_tl }
- \tl_set:Nn \exp_not:N \l__fontscale_footnotesize_size_tl
- { \exp_not:o \l__fontscale_footnotesize_size_tl }
- \tl_set:Nn \exp_not:N \l__fontscale_small_size_tl
- { \exp_not:o \l__fontscale_small_size_tl }
- \tl_set:Nn \exp_not:N \l__fontscale_normalsize_size_tl
- { \exp_not:o \l__fontscale_normalsize_size_tl }
- \tl_set:Nn \exp_not:N \l__fontscale_large_size_tl
- { \exp_not:o \l__fontscale_large_size_tl }
- \tl_set:Nn \exp_not:N \l__fontscale_Large_size_tl
- { \exp_not:o \l__fontscale_Large_size_tl }
- \tl_set:Nn \exp_not:N \l__fontscale_LARGE_size_tl
- { \exp_not:o \l__fontscale_LARGE_size_tl }
- \tl_set:Nn \exp_not:N \l__fontscale_huge_size_tl
- { \exp_not:o \l__fontscale_huge_size_tl }
- \tl_set:Nn \exp_not:N \l__fontscale_Huge_size_tl
- { \exp_not:o \l__fontscale_Huge_size_tl }
-
- \tl_set:Nn \exp_not:N \l__fontscale_tiny_baselineskip_tl
- { \exp_not:o \l__fontscale_tiny_baselineskip_tl }
- \tl_set:Nn \exp_not:N \l__fontscale_scriptsize_baselineskip_tl
- { \exp_not:o \l__fontscale_scriptsize_baselineskip_tl }
- \tl_set:Nn \exp_not:N \l__fontscale_footnotesize_baselineskip_tl
- { \exp_not:o \l__fontscale_footnotesize_baselineskip_tl }
- \tl_set:Nn \exp_not:N \l__fontscale_small_baselineskip_tl
- { \exp_not:o \l__fontscale_small_baselineskip_tl }
- \tl_set:Nn \exp_not:N \l__fontscale_normalsize_baselineskip_tl
- { \exp_not:o \l__fontscale_normalsize_baselineskip_tl }
- \tl_set:Nn \exp_not:N \l__fontscale_large_baselineskip_tl
- { \exp_not:o \l__fontscale_large_baselineskip_tl }
- \tl_set:Nn \exp_not:N \l__fontscale_Large_baselineskip_tl
- { \exp_not:o \l__fontscale_Large_baselineskip_tl }
- \tl_set:Nn \exp_not:N \l__fontscale_LARGE_baselineskip_tl
- { \exp_not:o \l__fontscale_LARGE_baselineskip_tl }
- \tl_set:Nn \exp_not:N \l__fontscale_huge_baselineskip_tl
- { \exp_not:o \l__fontscale_huge_baselineskip_tl }
- \tl_set:Nn \exp_not:N \l__fontscale_Huge_baselineskip_tl
- { \exp_not:o \l__fontscale_Huge_baselineskip_tl }
- }
- }
-
-% PROCESS KEYS
-
-\NewDocumentCommand \fontscalesetup { m } { \__fontscale_keys_set:n {#1} }
-\cs_new_protected:Npn \__fontscale_keys_set:n #1
- {
- \keys_set:nn { fontscale } {#1}
- \__fontscale_keys_process:
- }
-\cs_new_protected:Npn \__fontscale_keys_process:
- {
- \__fontscale_keys_process_normalsize:
- \__fontscale_keys_process_other:
- \__fontscale_keys_process_other_props:
- \__fontscale_keys_process_check_order:
- }
-% Sets the size and baselineskip of \normalsize, stores them in a property
-% list, and uses \normalsize.
-\cs_new_protected:Npn \__fontscale_keys_process_normalsize:
- {
- \quark_if_no_value:NTF \l__fontscale_normalsize_size_tl
- {
- \dim_set:Nn \l_fontscale_normalsize_size_dim
- {
- \str_case:on \l__fontscale_typographic_scale_str
- {
- { classic-10pt } { 10pt }
- { classic-11pt } { 11pt }
- { classic-12pt } { 12pt }
- { modular } { 10pt }
- { musical } { 10pt }
- }
- }
- }
- {
- \__fontscale_dim_set_with_default_unit:Nn
- \l_fontscale_normalsize_size_dim { \l__fontscale_normalsize_size_tl }
- }
- \fp_set:Nn \l__fontscale_normalsize_size_fp
- { \l_fontscale_normalsize_size_dim }
- \quark_if_no_value:NTF \l__fontscale_normalsize_baselineskip_tl
- {
- \skip_set:Nn \l_fontscale_normalsize_baselineskip_skip
- {
- \fp_to_dim:n
- {
- \l__fontscale_normalsize_size_fp
- * \l__fontscale_baselineskip_size_ratio_fp
- }
- }
- }
- {
- \__fontscale_skip_set_with_default_unit:Nn
- \l_fontscale_normalsize_baselineskip_skip
- { \l__fontscale_normalsize_baselineskip_tl }
- }
- \prop_put:Nno \l_fontscale_normalsize_prop { size }
- { \dim_use:N \l_fontscale_normalsize_size_dim }
- \prop_put:Nno \l_fontscale_normalsize_prop { baselineskip }
- { \skip_use:N \l_fontscale_normalsize_baselineskip_skip }
- \normalsize
- }
-% Sets the size, scale, and baselineskip of the other font size commands and
-% stores them in property lists. Issues a warning if the user sets both the
-% scale and size keys for the same font size command.
-\cs_new_protected:Npn \__fontscale_keys_process_other_classic_xpt:n #1
- {
- \dim_set:cn { l_fontscale_#1_size_dim }
- {
- \str_case:nn {#1}
- {
- { tiny } { 6pt }
- { scriptsize } { 7pt }
- { footnotesize } { 8pt }
- { small } { 9pt }
- { large } { 11pt }
- { Large } { 12pt }
- { LARGE } { 14pt }
- { huge } { 16pt }
- { Huge } { 18pt }
- }
- }
- }
-\cs_new_protected:Npn \__fontscale_keys_process_other_classic_xipt:n #1
- {
- \dim_set:cn { l_fontscale_#1_size_dim }
- {
- \str_case:nn {#1}
- {
- { tiny } { 7pt }
- { scriptsize } { 8pt }
- { footnotesize } { 9pt }
- { small } { 10pt }
- { large } { 12pt }
- { Large } { 14pt }
- { LARGE } { 16pt }
- { huge } { 18pt }
- { Huge } { 21pt }
- }
- }
- }
-\cs_new_protected:Npn \__fontscale_keys_process_other_classic_xiipt:n #1
- {
- \dim_set:cn { l_fontscale_#1_size_dim }
- {
- \str_case:nn {#1}
- {
- { tiny } { 8pt }
- { scriptsize } { 9pt }
- { footnotesize } { 10pt }
- { small } { 11pt }
- { large } { 14pt }
- { Large } { 16pt }
- { LARGE } { 18pt }
- { huge } { 21pt }
- { Huge } { 24pt }
- }
- }
- }
-\cs_new_protected:Npn \__fontscale_keys_process_other_modular:n #1
- {
- \dim_set:cn { l_fontscale_#1_size_dim }
- {
- \fp_to_dim:n
- {
- \l__fontscale_normalsize_size_fp * \l__fontscale_modular_ratio_fp
- ^ \use:c { c_fontscale_#1_step_fp }
- }
- }
- }
-\cs_new_protected:Npn \__fontscale_keys_process_other_musical:n #1
- {
- \dim_set:cn { l_fontscale_#1_size_dim }
- {
- \fp_to_dim:n
- {
- \l__fontscale_normalsize_size_fp * \l__fontscale_musical_ratio_fp
- ^ ( \use:c { c_fontscale_#1_step_fp }
- / \l__fontscale_musical_notes_int )
- }
- }
- }
-\cs_new_protected:Npn \__fontscale_keys_process_other:
- {
- \cs_set_eq:Nc \__fontscale_keys_process_other_typographic_scale:n
- {
- \str_case:on \l__fontscale_typographic_scale_str
- {
- { classic-10pt } { __fontscale_keys_process_other_classic_xpt:n }
- { classic-11pt } { __fontscale_keys_process_other_classic_xipt:n }
- { classic-12pt } { __fontscale_keys_process_other_classic_xiipt:n }
- { modular } { __fontscale_keys_process_other_modular:n }
- { musical } { __fontscale_keys_process_other_musical:n }
- }
- }
- \seq_map_inline:Nn \c__fontscale_names_other_seq
- {
- \quark_if_no_value:cF { l__fontscale_##1_size_tl }
- {
- \__fontscale_dim_set_with_default_unit:cn
- { l_fontscale_##1_size_dim }
- { \use:c { l__fontscale_##1_size_tl } }
- \quark_if_no_value:cF { l__fontscale_##1_scale_tl }
- {
- \msg_warning:nnn { fontscale } { key-font-scale-ignored } {##1}
- }
- \prg_break:
- }
- \quark_if_no_value:cF { l__fontscale_##1_scale_tl }
- {
- \dim_set:cn { l_fontscale_##1_size_dim }
- {
- \fp_to_dim:n
- {
- \l__fontscale_normalsize_size_fp
- * ( \use:c { l__fontscale_##1_scale_tl } )
- }
- }
- \prg_break:
- }
- \prg_break:n
- { \__fontscale_keys_process_other_typographic_scale:n {##1} }
- \prg_break_point:
- \fp_set:cn { l_fontscale_##1_scale_fp }
- {
- \use:c { l_fontscale_##1_size_dim }
- / \l__fontscale_normalsize_size_fp
- }
- \quark_if_no_value:cTF { l__fontscale_##1_baselineskip_tl }
- {
- \skip_set:cn { l_fontscale_##1_baselineskip_skip }
- {
- \fp_to_dim:n
- {
- \use:c { l_fontscale_##1_size_dim }
- * \l__fontscale_baselineskip_size_ratio_fp
- }
- }
- }
- {
- \__fontscale_skip_set_with_default_unit:cn
- { l_fontscale_##1_baselineskip_skip }
- { \use:c { l__fontscale_##1_baselineskip_tl } }
- }
- }
- }
-\cs_new_protected:Npn \__fontscale_keys_process_other_props:
- {
- \prop_put:Nne \l_fontscale_tiny_prop { scale }
- { \fp_use:N \l_fontscale_tiny_scale_fp }
- \prop_put:Nne \l_fontscale_scriptsize_prop { scale }
- { \fp_use:N \l_fontscale_scriptsize_scale_fp }
- \prop_put:Nne \l_fontscale_footnotesize_prop { scale }
- { \fp_use:N \l_fontscale_footnotesize_scale_fp }
- \prop_put:Nne \l_fontscale_small_prop { scale }
- { \fp_use:N \l_fontscale_small_scale_fp }
- \prop_put:Nne \l_fontscale_large_prop { scale }
- { \fp_use:N \l_fontscale_large_scale_fp }
- \prop_put:Nne \l_fontscale_Large_prop { scale }
- { \fp_use:N \l_fontscale_Large_scale_fp }
- \prop_put:Nne \l_fontscale_LARGE_prop { scale }
- { \fp_use:N \l_fontscale_LARGE_scale_fp }
- \prop_put:Nne \l_fontscale_huge_prop { scale }
- { \fp_use:N \l_fontscale_huge_scale_fp }
- \prop_put:Nne \l_fontscale_Huge_prop { scale }
- { \fp_use:N \l_fontscale_Huge_scale_fp }
-
- \prop_put:Nno \l_fontscale_tiny_prop { size }
- { \dim_use:N \l_fontscale_tiny_size_dim }
- \prop_put:Nno \l_fontscale_scriptsize_prop { size }
- { \dim_use:N \l_fontscale_scriptsize_size_dim }
- \prop_put:Nno \l_fontscale_footnotesize_prop { size }
- { \dim_use:N \l_fontscale_footnotesize_size_dim }
- \prop_put:Nno \l_fontscale_small_prop { size }
- { \dim_use:N \l_fontscale_small_size_dim }
- \prop_put:Nno \l_fontscale_large_prop { size }
- { \dim_use:N \l_fontscale_large_size_dim }
- \prop_put:Nno \l_fontscale_Large_prop { size }
- { \dim_use:N \l_fontscale_Large_size_dim }
- \prop_put:Nno \l_fontscale_LARGE_prop { size }
- { \dim_use:N \l_fontscale_LARGE_size_dim }
- \prop_put:Nno \l_fontscale_huge_prop { size }
- { \dim_use:N \l_fontscale_huge_size_dim }
- \prop_put:Nno \l_fontscale_Huge_prop { size }
- { \dim_use:N \l_fontscale_Huge_size_dim }
-
- \prop_put:Nno \l_fontscale_tiny_prop { baselineskip }
- { \skip_use:N \l_fontscale_tiny_baselineskip_skip }
- \prop_put:Nno \l_fontscale_scriptsize_prop { baselineskip }
- { \skip_use:N \l_fontscale_scriptsize_baselineskip_skip }
- \prop_put:Nno \l_fontscale_footnotesize_prop { baselineskip }
- { \skip_use:N \l_fontscale_footnotesize_baselineskip_skip }
- \prop_put:Nno \l_fontscale_small_prop { baselineskip }
- { \skip_use:N \l_fontscale_small_baselineskip_skip }
- \prop_put:Nno \l_fontscale_large_prop { baselineskip }
- { \skip_use:N \l_fontscale_large_baselineskip_skip }
- \prop_put:Nno \l_fontscale_Large_prop { baselineskip }
- { \skip_use:N \l_fontscale_Large_baselineskip_skip }
- \prop_put:Nno \l_fontscale_LARGE_prop { baselineskip }
- { \skip_use:N \l_fontscale_LARGE_baselineskip_skip }
- \prop_put:Nno \l_fontscale_huge_prop { baselineskip }
- { \skip_use:N \l_fontscale_huge_baselineskip_skip }
- \prop_put:Nno \l_fontscale_Huge_prop { baselineskip }
- { \skip_use:N \l_fontscale_Huge_baselineskip_skip }
- }
-% Issues a warning if the font sizes or font baselineskips are not in the
-% correct order.
-\cs_new_protected:Npn \__fontscale_keys_process_check_order:
- {
- \bool_if:NF \l__fontscale_ignore_order_bool
- {
- \dim_compare:nF
- {
- \l_fontscale_tiny_size_dim
- < \l_fontscale_scriptsize_size_dim
- < \l_fontscale_footnotesize_size_dim
- < \l_fontscale_small_size_dim
- < \l_fontscale_normalsize_size_dim
- < \l_fontscale_large_size_dim
- < \l_fontscale_Large_size_dim
- < \l_fontscale_LARGE_size_dim
- < \l_fontscale_huge_size_dim
- < \l_fontscale_Huge_size_dim
- }
- { \msg_warning:nn { fontscale } { font-sizes-out-of-order } }
- \dim_compare:nF
- {
- \l_fontscale_tiny_baselineskip_skip
- < \l_fontscale_scriptsize_baselineskip_skip
- < \l_fontscale_footnotesize_baselineskip_skip
- < \l_fontscale_small_baselineskip_skip
- < \l_fontscale_normalsize_baselineskip_skip
- < \l_fontscale_large_baselineskip_skip
- < \l_fontscale_Large_baselineskip_skip
- < \l_fontscale_LARGE_baselineskip_skip
- < \l_fontscale_huge_baselineskip_skip
- < \l_fontscale_Huge_baselineskip_skip
- }
- { \msg_warning:nn { fontscale } { font-baselineskips-out-of-order } }
- }
- }
-
-% DOCUMENT COMMANDS
-
-% The internal functions of each font size command are not used elsewhere in
-% the code for compatibility with user-defined hooks
-% (e.g. \AddToHook{cmd/normalsize/after}{<user-defined-function>}).
-% Need \dim_use:N for compatibility with the microtype package.
-\DeclareDocumentCommand \tiny { } { \__fontscale_tiny: }
-\cs_new_protected:Npn \__fontscale_tiny:
- {
- \@setfontsize \tiny { \dim_use:N \l_fontscale_tiny_size_dim }
- \l_fontscale_tiny_baselineskip_skip
- }
-\DeclareDocumentCommand \scriptsize { } { \__fontscale_scriptsize: }
-\cs_new_protected:Npn \__fontscale_scriptsize:
- {
- \@setfontsize \scriptsize { \dim_use:N \l_fontscale_scriptsize_size_dim }
- \l_fontscale_scriptsize_baselineskip_skip
- }
-\DeclareDocumentCommand \footnotesize { } { \__fontscale_footnotesize: }
-\cs_new_protected:Npn \__fontscale_footnotesize:
- {
- \@setfontsize \footnotesize
- { \dim_use:N \l_fontscale_footnotesize_size_dim }
- \l_fontscale_footnotesize_baselineskip_skip
- }
-\DeclareDocumentCommand \small { } { \__fontscale_small: }
-\cs_new_protected:Npn \__fontscale_small:
- {
- \@setfontsize \small { \dim_use:N \l_fontscale_small_size_dim }
- \l_fontscale_small_baselineskip_skip
- }
-\DeclareDocumentCommand \normalsize { } { \__fontscale_normalsize: }
-\cs_new_protected:Npn \__fontscale_normalsize:
- {
- \@setfontsize \normalsize { \dim_use:N \l_fontscale_normalsize_size_dim }
- \l_fontscale_normalsize_baselineskip_skip
- }
-\DeclareDocumentCommand \large { } { \__fontscale_large: }
-\cs_new_protected:Npn \__fontscale_large:
- {
- \@setfontsize \large { \dim_use:N \l_fontscale_large_size_dim }
- \l_fontscale_large_baselineskip_skip
- }
-\DeclareDocumentCommand \Large { } { \__fontscale_Large: }
-\cs_new_protected:Npn \__fontscale_Large:
- {
- \@setfontsize \Large { \dim_use:N \l_fontscale_Large_size_dim }
- \l_fontscale_Large_baselineskip_skip
- }
-\DeclareDocumentCommand \LARGE { } { \__fontscale_LARGE: }
-\cs_new_protected:Npn \__fontscale_LARGE:
- {
- \@setfontsize \LARGE { \dim_use:N \l_fontscale_LARGE_size_dim }
- \l_fontscale_LARGE_baselineskip_skip
- }
-\DeclareDocumentCommand \huge { } { \__fontscale_huge: }
-\cs_new_protected:Npn \__fontscale_huge:
- {
- \@setfontsize \huge { \dim_use:N \l_fontscale_huge_size_dim }
- \l_fontscale_huge_baselineskip_skip
- }
-\DeclareDocumentCommand \Huge { } { \__fontscale_Huge: }
-\cs_new_protected:Npn \__fontscale_Huge:
- {
- \@setfontsize \Huge { \dim_use:N \l_fontscale_Huge_size_dim }
- \l_fontscale_Huge_baselineskip_skip
- }
-% Initializes to \normalsize.
-\normalsize
-
-\NewExpandableDocumentCommand \CurrentFontStep { }
- { \__fontscale_current_font_step: }
-\cs_new:Npn \__fontscale_current_font_step:
- {
- \dim_case:nnF { \f@size pt }
- {
- { \l_fontscale_tiny_size_dim } { -4 }
- { \l_fontscale_scriptsize_size_dim } { -3 }
- { \l_fontscale_footnotesize_size_dim } { -2 }
- { \l_fontscale_small_size_dim } { -1 }
- { \l_fontscale_normalsize_size_dim } { 0 }
- { \l_fontscale_large_size_dim } { 1 }
- { \l_fontscale_Large_size_dim } { 2 }
- { \l_fontscale_LARGE_size_dim } { 3 }
- { \l_fontscale_huge_size_dim } { 4 }
- { \l_fontscale_Huge_size_dim } { 5 }
- }
- {
- \str_case:on \l__fontscale_typographic_scale_str
- {
- { modular }
- {
- \fp_eval:n
- {
- ln ( \f@size / \l__fontscale_normalsize_size_fp )
- / ln ( \l__fontscale_modular_ratio_fp )
- }
- }
- { musical }
- {
- \fp_eval:n
- {
- \l__fontscale_musical_notes_int
- * ln ( \f@size / \l__fontscale_normalsize_size_fp )
- / ln ( \l__fontscale_musical_ratio_fp )
- }
- }
- }
- }
- }
-
-\NewExpandableDocumentCommand \CurrentFontScale { }
- { \__fontscale_current_font_scale: }
-\cs_new:Npn \__fontscale_current_font_scale:
- { \fp_eval:n { \f@size / \l__fontscale_normalsize_size_fp } }
-
-\NewExpandableDocumentCommand \CurrentFontSize { }
- { \__fontscale_current_font_size: }
-\cs_new:Npn \__fontscale_current_font_size: { \f@size pt }
-
-\NewExpandableDocumentCommand \CurrentFontBaselineskip { }
- { \__fontscale_current_font_baselineskip: }
-\cs_new:Npn \__fontscale_current_font_baselineskip: { \f@baselineskip }
-
-\NewDocumentCommand \SetFontStep { s m }
- {
- \IfBooleanTF #1
- { \__fontscale_add_font_step:n {#2} }
- { \__fontscale_set_font_step:n {#2} }
- }
-\cs_new_protected:Npn \__fontscale_set_font_step:n #1
- {
- \fp_set:Nn \l__fontscale_step_fp {#1}
- \__fontscale_set_font_step_aux:N \l__fontscale_step_fp
- }
-\cs_new_protected:Npn \__fontscale_set_font_step_aux:N #1
- {
- \token_case_meaning:NnF #1
- {
- \c_fontscale_tiny_step_fp { \tiny }
- \c_fontscale_scriptsize_step_fp { \scriptsize }
- \c_fontscale_footnotesize_step_fp { \footnotesize }
- \c_fontscale_small_step_fp { \small }
- \c_fontscale_normalsize_step_fp { \normalsize }
- \c_fontscale_large_step_fp { \large }
- \c_fontscale_Large_step_fp { \Large }
- \c_fontscale_LARGE_step_fp { \LARGE }
- \c_fontscale_huge_step_fp { \huge }
- \c_fontscale_Huge_step_fp { \Huge }
- }
- {
- \str_case:onTF \l__fontscale_typographic_scale_str
- {
- { modular }
- {
- \fontsize
- {
- \fp_to_dim:n
- {
- \l__fontscale_normalsize_size_fp
- * \l__fontscale_modular_ratio_fp ^ #1
- }
- }
- }
- { musical }
- {
- \fontsize
- {
- \fp_to_dim:n
- {
- \l__fontscale_normalsize_size_fp
- * \l__fontscale_musical_ratio_fp
- ^ ( #1 / \l__fontscale_musical_notes_int )
- }
- }
- }
- }
- {
- {
- \fp_to_dim:n
- { \f@size * \l__fontscale_baselineskip_size_ratio_fp }
- }
- \selectfont
- }
- { \msg_error:nn { fontscale } { font-step-out-of-bounds } }
- }
- }
-\cs_new_protected:Npn \__fontscale_add_font_step:n #1
- {
- \tl_set:Ne \l__fontscale_step_tl { \__fontscale_current_font_step: }
- \tl_if_empty:NTF \l__fontscale_step_tl
- { \msg_error:nn { fontscale } { font-step-out-of-bounds } }
- {
- \fp_set:Nn \l__fontscale_step_fp { (#1) + \l__fontscale_step_tl }
- \__fontscale_add_font_step_aux:N \l__fontscale_step_fp
- }
- }
-\cs_new_eq:NN \__fontscale_add_font_step_aux:N \__fontscale_set_font_step_aux:N
-
-\NewDocumentCommand \SetFontScale { s m }
- {
- \IfBooleanTF #1
- { \__fontscale_add_font_scale:n {#2} }
- { \__fontscale_set_font_scale:n {#2} }
- }
-\cs_new_protected:Npn \__fontscale_set_font_scale:n #1
- {
- \fontsize
- { \fp_to_dim:n { \l__fontscale_normalsize_size_fp * (#1) } }
- { \fp_to_dim:n { \f@size * \l__fontscale_baselineskip_size_ratio_fp } }
- \selectfont
- }
-\cs_new_protected:Npn \__fontscale_add_font_scale:n #1
- {
- \fontsize
- { \fp_to_dim:n { \l__fontscale_normalsize_size_fp * (#1) + \f@size } }
- { \fp_to_dim:n { \f@size * \l__fontscale_baselineskip_size_ratio_fp } }
- \selectfont
- }
-
-\NewDocumentCommand \SetFontSize { s m }
- {
- \IfBooleanTF #1
- { \__fontscale_add_font_size:n {#2} }
- { \__fontscale_set_font_size:n {#2} }
- }
-\cs_new_protected:Npn \__fontscale_set_font_size:n #1
- {
- \__fontscale_dim_set_with_default_unit:Nn \l__fontscale_size_dim {#1}
- \fontsize \l__fontscale_size_dim
- { \fp_to_dim:n { \f@size * \l__fontscale_baselineskip_size_ratio_fp } }
- \selectfont
- }
-\cs_new_protected:Npn \__fontscale_add_font_size:n #1
- {
- \__fontscale_dim_set_with_default_unit:Nn \l__fontscale_size_dim {#1}
- \dim_add:Nn \l__fontscale_size_dim { \f@size pt }
- \fontsize \l__fontscale_size_dim
- { \fp_to_dim:n { \f@size * \l__fontscale_baselineskip_size_ratio_fp } }
- \selectfont
- }
-
-\NewDocumentCommand \ScaleFont { m } { \__fontscale_scalefont:n {#1} }
-\cs_new_protected:Npn \__fontscale_scalefont:n #1
- {
- \fontsize
- { \fp_to_dim:n { \f@size * (#1) } }
- { \fp_to_dim:n { \dim_to_fp:n { \f@baselineskip } * (#1) } }
- \selectfont
- }
-
-\NewDocumentCommand \SetFontSizeBaselineskip { m m }
- { \__fontscale_set_font_size_baselineskip:nn {#1} {#2} }
-\cs_new_protected:Npn \__fontscale_set_font_size_baselineskip:nn #1#2
- {
- \__fontscale_dim_set_with_default_unit:Nn \l__fontscale_size_dim {#1}
- \__fontscale_skip_set_with_default_unit:Nn \l__fontscale_baselineskip_skip
- {#2}
- \fontsize \l__fontscale_size_dim \l__fontscale_baselineskip_skip
- \selectfont
- }
-
-\NewDocumentCommand \PrintFontParameters { }
- { \__fontscale_print_font_parameters: }
-\cs_new_protected:Npn \__fontscale_print_font_parameters:
- {
- step ~=~ \__fontscale_current_font_step: ,~
- scale ~=~ \__fontscale_current_font_scale: ,~
- size ~=~ \__fontscale_current_font_size: ,~
- baselineskip ~=~ \__fontscale_current_font_baselineskip:
- }
-
-\NewDocumentCommand \PrintAllFontParameters { }
- { \__fontscale_print_all_font_parameters: }
-\cs_new_protected:Npn \__fontscale_print_all_font_parameters:
- {
- \seq_map_inline:Nn \c__fontscale_names_seq
- {
- \prop_get:cnN { l_fontscale_##1_prop } { step } \l__fontscale_step_tl
- \prop_get:cnN { l_fontscale_##1_prop } { scale } \l__fontscale_scale_tl
- \token_to_str:c {##1} \@ \c_colon_str \c_space_tl
- step ~=~ \l__fontscale_step_tl ,~
- scale ~=~ \l__fontscale_scale_tl ,~
- size ~=~ \dim_use:c { l_fontscale_##1_size_dim } ,~
- baselineskip ~=~ \skip_use:c { l_fontscale_##1_baselineskip_skip }
- \str_if_eq:nnF {##1} { Huge } { \newline }
- }
- }
-
-\NewDocumentCommand \PrintSampleText
- { s O
- {
- The~ \texttt { fontscale }~ package \c_colon_str \c_space_tl
- A~ user~ interface~ for~ setting~ document~ font~ sizes
- }
- }
- {
- \IfBooleanTF #1
- { \__fontscale_print_sample_text_descending_order:n {#2} }
- { \__fontscale_print_sample_text_ascending_order:n {#2} }
- }
-\cs_new_protected:Npn \__fontscale_print_sample_text_ascending_order:n #1
- {
- { \tiny #1 \par }
- { \scriptsize #1 \par }
- { \footnotesize #1 \par }
- { \small #1 \par }
- { \normalsize #1 \par }
- { \large #1 \par }
- { \Large #1 \par }
- { \LARGE #1 \par }
- { \huge #1 \par }
- { \Huge #1 \par }
- }
-\cs_new_protected:Npn \__fontscale_print_sample_text_descending_order:n #1
- {
- { \Huge #1 \par }
- { \huge #1 \par }
- { \LARGE #1 \par }
- { \Large #1 \par }
- { \large #1 \par }
- { \normalsize #1 \par }
- { \small #1 \par }
- { \footnotesize #1 \par }
- { \scriptsize #1 \par }
- { \tiny #1 \par }
- }
-
-\NewDocumentCommand \PrintFontSizeCommand { } { \__fontscale_print_name: }
-\cs_new_protected:Npn \__fontscale_print_name:
- {
- \dim_case:nnF { \f@size pt }
- {
- { \l_fontscale_tiny_size_dim }
- {
- \skip_if_eq:nnTF { \f@baselineskip }
- { \l_fontscale_tiny_baselineskip_skip }
- { \token_to_str:N \tiny } { UNDEFINED \@ }
- }
- { \l_fontscale_scriptsize_size_dim }
- {
- \skip_if_eq:nnTF { \f@baselineskip }
- { \l_fontscale_scriptsize_baselineskip_skip }
- { \token_to_str:N \scriptsize } { UNDEFINED \@ }
- }
- { \l_fontscale_footnotesize_size_dim }
- {
- \skip_if_eq:nnTF { \f@baselineskip }
- { \l_fontscale_footnotesize_baselineskip_skip }
- { \token_to_str:N \footnotesize } { UNDEFINED \@ }
- }
- { \l_fontscale_small_size_dim }
- {
- \skip_if_eq:nnTF { \f@baselineskip }
- { \l_fontscale_small_baselineskip_skip }
- { \token_to_str:N \small } { UNDEFINED \@ }
- }
- { \l_fontscale_normalsize_size_dim }
- {
- \skip_if_eq:nnTF { \f@baselineskip }
- { \l_fontscale_normalsize_baselineskip_skip }
- { \token_to_str:N \normalsize } { UNDEFINED \@ }
- }
- { \l_fontscale_large_size_dim }
- {
- \skip_if_eq:nnTF { \f@baselineskip }
- { \l_fontscale_large_baselineskip_skip }
- { \token_to_str:N \large } { UNDEFINED \@ }
- }
- { \l_fontscale_Large_size_dim }
- {
- \skip_if_eq:nnTF { \f@baselineskip }
- { \l_fontscale_Large_baselineskip_skip }
- { \token_to_str:N \Large } { UNDEFINED \@ }
- }
- { \l_fontscale_LARGE_size_dim }
- {
- \skip_if_eq:nnTF { \f@baselineskip }
- { \l_fontscale_LARGE_baselineskip_skip }
- { \token_to_str:N \LARGE \@ } { UNDEFINED \@ }
- }
- { \l_fontscale_huge_size_dim }
- {
- \skip_if_eq:nnTF { \f@baselineskip }
- { \l_fontscale_huge_baselineskip_skip }
- { \token_to_str:N \huge } { UNDEFINED \@ }
- }
- { \l_fontscale_Huge_size_dim }
- {
- \skip_if_eq:nnTF { \f@baselineskip }
- { \l_fontscale_Huge_baselineskip_skip }
- { \token_to_str:N \Huge } { UNDEFINED \@ }
- }
- }
- { UNDEFINED \@ }
- }
-
-% TEXT PURIFY
-
-\cs_new:Npn \__fontscale_text_purify_equivalent:n #1
- {
- \bool_lazy_all:nT
- {
- { \tl_if_single_p:n {#1} }
- { \tl_if_single_token_p:n #1 }
- { \token_if_eq_meaning_p:NN #1 * }
- }
- { \use_none:n }
- }
-\text_declare_purify_equivalent:Nn \SetFontStep
- { \__fontscale_text_purify_equivalent:n }
-\text_declare_purify_equivalent:Nn \SetFontScale
- { \__fontscale_text_purify_equivalent:n }
-\text_declare_purify_equivalent:Nn \SetFontSize
- { \__fontscale_text_purify_equivalent:n }
-\text_declare_purify_equivalent:Nn \ScaleFont { \use_none:n }
+% Package : fontscale -- A user interface for setting document font sizes
+% Copyright : 2024 (c) Oliver Beery <beeryoliver@gmail.com>
+% CTAN : https://ctan.org/pkg/fontscale
+% Repository: https://github.com/beeryoliver/fontscale
+% License : The LaTeX Project Public License 1.3c
+
+% The 2022-06-01 LaTeX kernel update added \ProcessKeyOptions.
+\NeedsTeXFormat{LaTeX2e}[2022-06-01]
+\ProvidesExplPackage
+ {fontscale}
+ {2024-04-07}
+ {1.1.1}
+ {A user interface for setting document font sizes}
+
+% The 2023-10-10 l3kernel update added many 'e'-variants.
+\IfExplAtLeastTF { 2023-10-10 }
+ { }
+ {
+ \msg_new:nnn { fontscale } { expl3-out-of-date }
+ {
+ The~ package~ could~ not~ load.~
+ The~ fontscale~ package~ requires~
+ L3~ programming~ layer~ version~ 2023-10-10~ or~ later.
+ }
+ \msg_critical:nn { fontscale } { expl3-out-of-date }
+ }
+
+% SOME VARIABLES
+
+\fp_const:Nn \c_fontscale_tiny_step_fp { -4 }
+\fp_const:Nn \c_fontscale_scriptsize_step_fp { -3 }
+\fp_const:Nn \c_fontscale_footnotesize_step_fp { -2 }
+\fp_const:Nn \c_fontscale_small_step_fp { -1 }
+\fp_const:Nn \c_fontscale_normalsize_step_fp { 0 }
+\fp_const:Nn \c_fontscale_large_step_fp { 1 }
+\fp_const:Nn \c_fontscale_Large_step_fp { 2 }
+\fp_const:Nn \c_fontscale_LARGE_step_fp { 3 }
+\fp_const:Nn \c_fontscale_huge_step_fp { 4 }
+\fp_const:Nn \c_fontscale_Huge_step_fp { 5 }
+
+\fp_const:Nn \c_fontscale_normalsize_scale_fp { 1 }
+
+\tl_const:Nn \c__fontscale_names_tl
+ {
+ {tiny} {scriptsize} {footnotesize} {small} {normalsize}
+ {large} {Large} {LARGE} {huge} {Huge}
+ }
+\tl_const:Nn \c__fontscale_names_other_tl
+ {
+ {tiny} {scriptsize} {footnotesize} {small}
+ {large} {Large} {LARGE} {huge} {Huge}
+ }
+
+\prop_new:N \l_fontscale_tiny_prop
+\prop_new:N \l_fontscale_scriptsize_prop
+\prop_new:N \l_fontscale_footnotesize_prop
+\prop_new:N \l_fontscale_small_prop
+\prop_new:N \l_fontscale_normalsize_prop
+\prop_new:N \l_fontscale_large_prop
+\prop_new:N \l_fontscale_Large_prop
+\prop_new:N \l_fontscale_LARGE_prop
+\prop_new:N \l_fontscale_huge_prop
+\prop_new:N \l_fontscale_Huge_prop
+
+\prop_put:Nnn \l_fontscale_tiny_prop { step } { -4 }
+\prop_put:Nnn \l_fontscale_scriptsize_prop { step } { -3 }
+\prop_put:Nnn \l_fontscale_footnotesize_prop { step } { -2 }
+\prop_put:Nnn \l_fontscale_small_prop { step } { -1 }
+\prop_put:Nnn \l_fontscale_normalsize_prop { step } { 0 }
+\prop_put:Nnn \l_fontscale_large_prop { step } { 1 }
+\prop_put:Nnn \l_fontscale_Large_prop { step } { 2 }
+\prop_put:Nnn \l_fontscale_LARGE_prop { step } { 3 }
+\prop_put:Nnn \l_fontscale_huge_prop { step } { 4 }
+\prop_put:Nnn \l_fontscale_Huge_prop { step } { 5 }
+
+\prop_put:Nnn \l_fontscale_normalsize_prop { scale } { 1 }
+
+\fp_new:N \l_fontscale_tiny_scale_fp
+\fp_new:N \l_fontscale_scriptsize_scale_fp
+\fp_new:N \l_fontscale_footnotesize_scale_fp
+\fp_new:N \l_fontscale_small_scale_fp
+\fp_new:N \l_fontscale_large_scale_fp
+\fp_new:N \l_fontscale_Large_scale_fp
+\fp_new:N \l_fontscale_LARGE_scale_fp
+\fp_new:N \l_fontscale_huge_scale_fp
+\fp_new:N \l_fontscale_Huge_scale_fp
+
+\dim_new:N \l_fontscale_tiny_size_dim
+\dim_new:N \l_fontscale_scriptsize_size_dim
+\dim_new:N \l_fontscale_footnotesize_size_dim
+\dim_new:N \l_fontscale_small_size_dim
+\dim_new:N \l_fontscale_normalsize_size_dim
+\dim_new:N \l_fontscale_large_size_dim
+\dim_new:N \l_fontscale_Large_size_dim
+\dim_new:N \l_fontscale_LARGE_size_dim
+\dim_new:N \l_fontscale_huge_size_dim
+\dim_new:N \l_fontscale_Huge_size_dim
+
+\skip_new:N \l_fontscale_tiny_baselineskip_skip
+\skip_new:N \l_fontscale_scriptsize_baselineskip_skip
+\skip_new:N \l_fontscale_footnotesize_baselineskip_skip
+\skip_new:N \l_fontscale_small_baselineskip_skip
+\skip_new:N \l_fontscale_normalsize_baselineskip_skip
+\skip_new:N \l_fontscale_large_baselineskip_skip
+\skip_new:N \l_fontscale_Large_baselineskip_skip
+\skip_new:N \l_fontscale_LARGE_baselineskip_skip
+\skip_new:N \l_fontscale_huge_baselineskip_skip
+\skip_new:N \l_fontscale_Huge_baselineskip_skip
+
+\str_new:N \l__fontscale_typographic_scale_str
+\tl_new:N \l__fontscale_keys_precompile_preamble_tl
+
+% Used in floating point expressions for speed.
+\fp_new:N \l__fontscale_normalsize_size_fp
+\fp_new:N \l__fontscale_musical_notes_fp
+
+% Temporary variables
+\fp_new:N \l__fontscale_step_fp
+\tl_new:N \l__fontscale_step_tl
+\tl_new:N \l__fontscale_scale_tl
+\dim_new:N \l__fontscale_size_dim
+\skip_new:N \l__fontscale_baselineskip_skip
+
+% INITIAL FONT PARAMETERS
+
+\fp_set:Nn \l__fontscale_normalsize_size_fp { 10 }
+
+\dim_set:Nn \l_fontscale_tiny_size_dim { 6pt }
+\dim_set:Nn \l_fontscale_scriptsize_size_dim { 7pt }
+\dim_set:Nn \l_fontscale_footnotesize_size_dim { 8pt }
+\dim_set:Nn \l_fontscale_small_size_dim { 9pt }
+\dim_set:Nn \l_fontscale_normalsize_size_dim { 10pt }
+\dim_set:Nn \l_fontscale_large_size_dim { 11pt }
+\dim_set:Nn \l_fontscale_Large_size_dim { 12pt }
+\dim_set:Nn \l_fontscale_LARGE_size_dim { 14pt }
+\dim_set:Nn \l_fontscale_huge_size_dim { 16pt }
+\dim_set:Nn \l_fontscale_Huge_size_dim { 18pt }
+
+\fp_set:Nn \l_fontscale_tiny_scale_fp { 0.6 }
+\fp_set:Nn \l_fontscale_scriptsize_scale_fp { 0.7 }
+\fp_set:Nn \l_fontscale_footnotesize_scale_fp { 0.8 }
+\fp_set:Nn \l_fontscale_small_scale_fp { 0.9 }
+\fp_set:Nn \l_fontscale_large_scale_fp { 1.1 }
+\fp_set:Nn \l_fontscale_Large_scale_fp { 1.2 }
+\fp_set:Nn \l_fontscale_LARGE_scale_fp { 1.4 }
+\fp_set:Nn \l_fontscale_huge_scale_fp { 1.6 }
+\fp_set:Nn \l_fontscale_Huge_scale_fp { 1.8 }
+
+\skip_set:Nn \l_fontscale_tiny_baselineskip_skip { 7.2pt }
+\skip_set:Nn \l_fontscale_scriptsize_baselineskip_skip { 8.4pt }
+\skip_set:Nn \l_fontscale_footnotesize_baselineskip_skip { 9.6pt }
+\skip_set:Nn \l_fontscale_small_baselineskip_skip { 10.8pt }
+\skip_set:Nn \l_fontscale_normalsize_baselineskip_skip { 12 pt }
+\skip_set:Nn \l_fontscale_large_baselineskip_skip { 13.2pt }
+\skip_set:Nn \l_fontscale_Large_baselineskip_skip { 14.4pt }
+\skip_set:Nn \l_fontscale_LARGE_baselineskip_skip { 16.8pt }
+\skip_set:Nn \l_fontscale_huge_baselineskip_skip { 19.2pt }
+\skip_set:Nn \l_fontscale_Huge_baselineskip_skip { 21.6pt }
+
+\prop_put:Nnn \l_fontscale_tiny_prop { scale } { 0.6 }
+\prop_put:Nnn \l_fontscale_scriptsize_prop { scale } { 0.7 }
+\prop_put:Nnn \l_fontscale_footnotesize_prop { scale } { 0.8 }
+\prop_put:Nnn \l_fontscale_small_prop { scale } { 0.9 }
+\prop_put:Nnn \l_fontscale_large_prop { scale } { 1.1 }
+\prop_put:Nnn \l_fontscale_Large_prop { scale } { 1.2 }
+\prop_put:Nnn \l_fontscale_LARGE_prop { scale } { 1.4 }
+\prop_put:Nnn \l_fontscale_huge_prop { scale } { 1.6 }
+\prop_put:Nnn \l_fontscale_Huge_prop { scale } { 1.8 }
+
+\prop_put:Nnn \l_fontscale_tiny_prop { size } { 6pt }
+\prop_put:Nnn \l_fontscale_scriptsize_prop { size } { 7pt }
+\prop_put:Nnn \l_fontscale_footnotesize_prop { size } { 8pt }
+\prop_put:Nnn \l_fontscale_small_prop { size } { 9pt }
+\prop_put:Nnn \l_fontscale_normalsize_prop { size } { 10pt }
+\prop_put:Nnn \l_fontscale_large_prop { size } { 11pt }
+\prop_put:Nnn \l_fontscale_Large_prop { size } { 12pt }
+\prop_put:Nnn \l_fontscale_LARGE_prop { size } { 14pt }
+\prop_put:Nnn \l_fontscale_huge_prop { size } { 16pt }
+\prop_put:Nnn \l_fontscale_Huge_prop { size } { 18pt }
+
+\prop_put:Nnn \l_fontscale_tiny_prop { baselineskip } { 7.2pt }
+\prop_put:Nnn \l_fontscale_scriptsize_prop { baselineskip } { 8.4pt }
+\prop_put:Nnn \l_fontscale_footnotesize_prop { baselineskip } { 9.6pt }
+\prop_put:Nnn \l_fontscale_small_prop { baselineskip } { 10.8pt }
+\prop_put:Nnn \l_fontscale_normalsize_prop { baselineskip } { 12 pt }
+\prop_put:Nnn \l_fontscale_large_prop { baselineskip } { 13.2pt }
+\prop_put:Nnn \l_fontscale_Large_prop { baselineskip } { 14.4pt }
+\prop_put:Nnn \l_fontscale_LARGE_prop { baselineskip } { 16.8pt }
+\prop_put:Nnn \l_fontscale_huge_prop { baselineskip } { 19.2pt }
+\prop_put:Nnn \l_fontscale_Huge_prop { baselineskip } { 21.6pt }
+
+% SOME HELPER FUNCTIONS
+
+% Sets a dimen or skip variable, supplying a default unit of pt.
+\cs_new_protected:Npn \__fontscale_dim_set_with_default_unit:Nn #1#2
+ { \@defaultunits #1 = \dimexpr #2 pt \relax \relax \@nnil }
+\cs_generate_variant:Nn \__fontscale_dim_set_with_default_unit:Nn { c }
+\cs_new_protected:Npn \__fontscale_skip_set_with_default_unit:Nn #1#2
+ { \@defaultunits #1 = \glueexpr #2 pt \relax \@nnil }
+\cs_generate_variant:Nn \__fontscale_skip_set_with_default_unit:Nn { c }
+
+% MESSAGES
+
+\msg_new:nnn { fontscale } { key-font-scale-ignored }
+ {
+ Key~ #1 / scale~
+ \msg_line_context: \c_space_tl
+ ignored.~
+ Setting~ the~ scale~ and~ size~ keys~ for~ the~ same~
+ font~ size~ command~ ignores~ the~ scale~ key.
+ }
+\msg_new:nnn { fontscale } { font-sizes-out-of-order }
+ {
+ The~ font~ sizes~
+ \msg_line_context: \c_space_tl
+ are~ not~ in~ the~ correct~ order.~
+ The~ magnitude~ of~ the~ font~ sizes~ should~ be~ ordered~ from~
+ \token_to_str:N \tiny \c_space_tl
+ to~
+ \token_to_str:N \normalsize \c_space_tl
+ to~
+ \token_to_str:N \Huge .
+ }
+\msg_new:nnn { fontscale } { font-baselineskips-out-of-order }
+ {
+ The~ font~ baselineskips~
+ \msg_line_context: \c_space_tl
+ are~ not~ in~ the~ correct~ order.~
+ The~ magnitude~ of~ the~ font~ baselineskips~ should~ be~ ordered~ from~
+ \token_to_str:N \tiny \c_space_tl
+ to~
+ \token_to_str:N \normalsize \c_space_tl
+ to~
+ \token_to_str:N \Huge .
+ }
+\msg_new:nnn { fontscale } { font-step-out-of-bounds }
+ {
+ The~ font~ step~
+ \msg_line_context: \c_space_tl
+ must~ be~ an~ integer~ from~ -4~ to~ 5,~
+ unless~ the~ choice~ of~ typographic~ scale~ is~ modular~ or~ musical.
+ }
+
+% DEFINE KEYS
+
+\keys_define:nn { fontscale }
+ {
+ reset .choices:nn = { initial , preamble }
+ {
+ \int_case:nn { \l_keys_choice_int }
+ {
+ { 1 } { \c__fontscale_keys_precompile_initial_tl }
+ { 2 } { \l__fontscale_keys_precompile_preamble_tl }
+ }
+ }
+ , reset .default:n = initial
+
+ , ignore-order .bool_set:N = \l__fontscale_ignore_order_bool
+ , ignore-order .default:n = true
+
+ , baselineskip-size-ratio .fp_set:N =
+ \l__fontscale_baselineskip_size_ratio_fp
+ , baselineskip-size-ratio .value_required:n = true
+
+ , typographic-scale .choices:nn =
+ { classic-10pt , classic-11pt , classic-12pt , modular , musical }
+ { \str_set:Nn \l__fontscale_typographic_scale_str {#1} }
+ , typographic-scale .value_required:n = true
+
+ , classic-10pt .meta:n = { typographic-scale = classic-10pt }
+ , classic-10pt .value_forbidden:n = true
+
+ , classic-11pt .meta:n = { typographic-scale = classic-11pt }
+ , classic-11pt .value_forbidden:n = true
+
+ , classic-12pt .meta:n = { typographic-scale = classic-12pt }
+ , classic-12pt .value_forbidden:n = true
+
+ , modular .meta:n = { typographic-scale = modular }
+ , modular .value_forbidden:n = true
+
+ , musical .meta:n = { typographic-scale = musical }
+ , musical .value_forbidden:n = true
+
+ , modular / ratio .fp_set:N = \l__fontscale_modular_ratio_fp
+ , modular / ratio .value_required:n = true
+ }
+\keys_define:nn { fontscale / musical }
+ {
+ ratio .fp_set:N = \l__fontscale_musical_ratio_fp
+ , ratio .value_required:n = true
+
+ , notes .int_set:N = \l__fontscale_musical_notes_int
+ , notes .value_required:n = true
+ }
+\keys_define:nn { fontscale / tiny }
+ {
+ scale .tl_set:N = \l__fontscale_tiny_scale_tl
+ , scale .value_required:n = true
+
+ , size .tl_set:N = \l__fontscale_tiny_size_tl
+ , size .value_required:n = true
+
+ , baselineskip .tl_set:N = \l__fontscale_tiny_baselineskip_tl
+ , baselineskip .value_required:n = true
+ }
+\keys_define:nn { fontscale / scriptsize }
+ {
+ scale .tl_set:N = \l__fontscale_scriptsize_scale_tl
+ , scale .value_required:n = true
+
+ , size .tl_set:N = \l__fontscale_scriptsize_size_tl
+ , size .value_required:n = true
+
+ , baselineskip .tl_set:N = \l__fontscale_scriptsize_baselineskip_tl
+ , baselineskip .value_required:n = true
+ }
+\keys_define:nn { fontscale / footnotesize }
+ {
+ scale .tl_set:N = \l__fontscale_footnotesize_scale_tl
+ , scale .value_required:n = true
+
+ , size .tl_set:N = \l__fontscale_footnotesize_size_tl
+ , size .value_required:n = true
+
+ , baselineskip .tl_set:N = \l__fontscale_footnotesize_baselineskip_tl
+ , baselineskip .value_required:n = true
+ }
+\keys_define:nn { fontscale / small }
+ {
+ scale .tl_set:N = \l__fontscale_small_scale_tl
+ , scale .value_required:n = true
+
+ , size .tl_set:N = \l__fontscale_small_size_tl
+ , size .value_required:n = true
+
+ , baselineskip .tl_set:N = \l__fontscale_small_baselineskip_tl
+ , baselineskip .value_required:n = true
+ }
+\keys_define:nn { fontscale / normalsize }
+ {
+ size .tl_set:N = \l__fontscale_normalsize_size_tl
+ , size .value_required:n = true
+
+ , baselineskip .tl_set:N = \l__fontscale_normalsize_baselineskip_tl
+ , baselineskip .value_required:n = true
+ }
+\keys_define:nn { fontscale / large }
+ {
+ scale .tl_set:N = \l__fontscale_large_scale_tl
+ , scale .value_required:n = true
+
+ , size .tl_set:N = \l__fontscale_large_size_tl
+ , size .value_required:n = true
+
+ , baselineskip .tl_set:N = \l__fontscale_large_baselineskip_tl
+ , baselineskip .value_required:n = true
+ }
+\keys_define:nn { fontscale / Large }
+ {
+ scale .tl_set:N = \l__fontscale_Large_scale_tl
+ , scale .value_required:n = true
+
+ , size .tl_set:N = \l__fontscale_Large_size_tl
+ , size .value_required:n = true
+
+ , baselineskip .tl_set:N = \l__fontscale_Large_baselineskip_tl
+ , baselineskip .value_required:n = true
+ }
+\keys_define:nn { fontscale / LARGE }
+ {
+ scale .tl_set:N = \l__fontscale_LARGE_scale_tl
+ , scale .value_required:n = true
+
+ , size .tl_set:N = \l__fontscale_LARGE_size_tl
+ , size .value_required:n = true
+
+ , baselineskip .tl_set:N = \l__fontscale_LARGE_baselineskip_tl
+ , baselineskip .value_required:n = true
+ }
+\keys_define:nn { fontscale / huge }
+ {
+ scale .tl_set:N = \l__fontscale_huge_scale_tl
+ , scale .value_required:n = true
+
+ , size .tl_set:N = \l__fontscale_huge_size_tl
+ , size .value_required:n = true
+
+ , baselineskip .tl_set:N = \l__fontscale_huge_baselineskip_tl
+ , baselineskip .value_required:n = true
+ }
+\keys_define:nn { fontscale / Huge }
+ {
+ scale .tl_set:N = \l__fontscale_Huge_scale_tl
+ , scale .value_required:n = true
+
+ , size .tl_set:N = \l__fontscale_Huge_size_tl
+ , size .value_required:n = true
+
+ , baselineskip .tl_set:N = \l__fontscale_Huge_baselineskip_tl
+ , baselineskip .value_required:n = true
+ }
+\keys_define:nn { fontscale }
+ {
+ tiny .code:n = \__fontscale_keys_name_code:n {#1}
+ , tiny .value_required:n = true
+
+ , scriptsize .code:n = \__fontscale_keys_name_code:n {#1}
+ , scriptsize .value_required:n = true
+
+ , footnotesize .code:n = \__fontscale_keys_name_code:n {#1}
+ , footnotesize .value_required:n = true
+
+ , small .code:n = \__fontscale_keys_name_code:n {#1}
+ , small .value_required:n = true
+
+ , normalsize .code:n = \__fontscale_keys_name_code:n {#1}
+ , normalsize .value_required:n = true
+
+ , large .code:n = \__fontscale_keys_name_code:n {#1}
+ , large .value_required:n = true
+
+ , Large .code:n = \__fontscale_keys_name_code:n {#1}
+ , Large .value_required:n = true
+
+ , LARGE .code:n = \__fontscale_keys_name_code:n {#1}
+ , LARGE .value_required:n = true
+
+ , huge .code:n = \__fontscale_keys_name_code:n {#1}
+ , huge .value_required:n = true
+
+ , Huge .code:n = \__fontscale_keys_name_code:n {#1}
+ , Huge .value_required:n = true
+ }
+\cs_new_protected:Npn \__fontscale_keys_name_code:n #1
+ {
+ \str_if_in:nnTF {#1} { / }
+ { \__fontscale_keys_name_code_split:ww #1 \q_stop }
+ { \tl_set:cn { l__fontscale_ \l_keys_key_str _size_tl } {#1} }
+ }
+\cs_new_protected:Npn \__fontscale_keys_name_code_split:ww #1 / #2 \q_stop
+ {
+ \tl_set:cn { l__fontscale_ \l_keys_key_str _size_tl } {#1}
+ \tl_set:cn { l__fontscale_ \l_keys_key_str _baselineskip_tl } {#2}
+ }
+
+% PRE-COMPILE KEYS
+
+% Pre-compiles the keys with their initial values. The keys are pre-compiled
+% by hand for speed.
+\tl_const:Nn \c__fontscale_keys_precompile_initial_tl
+ {
+ \bool_set_false:N \l__fontscale_ignore_order_bool
+ \fp_set:Nn \l__fontscale_baselineskip_size_ratio_fp { 1.2 }
+ \str_set:Nn \l__fontscale_typographic_scale_str { classic-10pt }
+ \fp_set:Nn \l__fontscale_modular_ratio_fp { 1.125 }
+ \fp_set:Nn \l__fontscale_musical_ratio_fp { 2 }
+ \int_set:Nn \l__fontscale_musical_notes_int { 5 }
+
+ \tl_set:Nn \l__fontscale_tiny_scale_tl { \q_no_value }
+ \tl_set:Nn \l__fontscale_scriptsize_scale_tl { \q_no_value }
+ \tl_set:Nn \l__fontscale_footnotesize_scale_tl { \q_no_value }
+ \tl_set:Nn \l__fontscale_small_scale_tl { \q_no_value }
+ \tl_set:Nn \l__fontscale_large_scale_tl { \q_no_value }
+ \tl_set:Nn \l__fontscale_Large_scale_tl { \q_no_value }
+ \tl_set:Nn \l__fontscale_LARGE_scale_tl { \q_no_value }
+ \tl_set:Nn \l__fontscale_huge_scale_tl { \q_no_value }
+ \tl_set:Nn \l__fontscale_Huge_scale_tl { \q_no_value }
+
+ \tl_set:Nn \l__fontscale_tiny_size_tl { \q_no_value }
+ \tl_set:Nn \l__fontscale_scriptsize_size_tl { \q_no_value }
+ \tl_set:Nn \l__fontscale_footnotesize_size_tl { \q_no_value }
+ \tl_set:Nn \l__fontscale_small_size_tl { \q_no_value }
+ \tl_set:Nn \l__fontscale_normalsize_size_tl { \q_no_value }
+ \tl_set:Nn \l__fontscale_large_size_tl { \q_no_value }
+ \tl_set:Nn \l__fontscale_Large_size_tl { \q_no_value }
+ \tl_set:Nn \l__fontscale_LARGE_size_tl { \q_no_value }
+ \tl_set:Nn \l__fontscale_huge_size_tl { \q_no_value }
+ \tl_set:Nn \l__fontscale_Huge_size_tl { \q_no_value }
+
+ \tl_set:Nn \l__fontscale_tiny_baselineskip_tl { \q_no_value }
+ \tl_set:Nn \l__fontscale_scriptsize_baselineskip_tl { \q_no_value }
+ \tl_set:Nn \l__fontscale_footnotesize_baselineskip_tl { \q_no_value }
+ \tl_set:Nn \l__fontscale_small_baselineskip_tl { \q_no_value }
+ \tl_set:Nn \l__fontscale_normalsize_baselineskip_tl { \q_no_value }
+ \tl_set:Nn \l__fontscale_large_baselineskip_tl { \q_no_value }
+ \tl_set:Nn \l__fontscale_Large_baselineskip_tl { \q_no_value }
+ \tl_set:Nn \l__fontscale_LARGE_baselineskip_tl { \q_no_value }
+ \tl_set:Nn \l__fontscale_huge_baselineskip_tl { \q_no_value }
+ \tl_set:Nn \l__fontscale_Huge_baselineskip_tl { \q_no_value }
+ }
+\c__fontscale_keys_precompile_initial_tl
+
+% Pre-compiles the keys with their values at the end of the preamble. The keys
+% are pre-compiled by hand for speed.
+\AddToHook { begindocument / before }
+ { \__fontscale_keys_precompile_preamble: }
+\cs_new_protected:Npn \__fontscale_keys_precompile_preamble:
+ {
+ \tl_set:Ne \l__fontscale_keys_precompile_preamble_tl
+ {
+ \bool_if:NTF \l__fontscale_ignore_order_bool
+ { \bool_set_true:N } { \bool_set_false:N }
+ \l__fontscale_ignore_order_bool
+ \fp_set:Nn \exp_not:N \l__fontscale_baselineskip_size_ratio_fp
+ { \l__fontscale_baselineskip_size_ratio_fp }
+ \str_set:Nn \exp_not:N \l__fontscale_typographic_scale_str
+ { \l__fontscale_typographic_scale_str }
+ \fp_set:Nn \exp_not:N \l__fontscale_modular_ratio_fp
+ { \l__fontscale_modular_ratio_fp }
+ \fp_set:Nn \exp_not:N \l__fontscale_musical_ratio_fp
+ { \l__fontscale_musical_ratio_fp }
+ \int_set:Nn \l__fontscale_musical_notes_int
+ { \int_use:N \l__fontscale_musical_notes_int }
+
+ \tl_set:Nn \exp_not:N \l__fontscale_tiny_scale_tl
+ { \exp_not:o \l__fontscale_tiny_scale_tl }
+ \tl_set:Nn \exp_not:N \l__fontscale_scriptsize_scale_tl
+ { \exp_not:o \l__fontscale_scriptsize_scale_tl }
+ \tl_set:Nn \exp_not:N \l__fontscale_footnotesize_scale_tl
+ { \exp_not:o \l__fontscale_footnotesize_scale_tl }
+ \tl_set:Nn \exp_not:N \l__fontscale_small_scale_tl
+ { \exp_not:o \l__fontscale_small_scale_tl }
+ \tl_set:Nn \exp_not:N \l__fontscale_large_scale_tl
+ { \exp_not:o \l__fontscale_large_scale_tl }
+ \tl_set:Nn \exp_not:N \l__fontscale_Large_scale_tl
+ { \exp_not:o \l__fontscale_Large_scale_tl }
+ \tl_set:Nn \exp_not:N \l__fontscale_LARGE_scale_tl
+ { \exp_not:o \l__fontscale_LARGE_scale_tl }
+ \tl_set:Nn \exp_not:N \l__fontscale_huge_scale_tl
+ { \exp_not:o \l__fontscale_huge_scale_tl }
+ \tl_set:Nn \exp_not:N \l__fontscale_Huge_scale_tl
+ { \exp_not:o \l__fontscale_Huge_scale_tl }
+
+ \tl_set:Nn \exp_not:N \l__fontscale_tiny_size_tl
+ { \exp_not:o \l__fontscale_tiny_size_tl }
+ \tl_set:Nn \exp_not:N \l__fontscale_scriptsize_size_tl
+ { \exp_not:o \l__fontscale_scriptsize_size_tl }
+ \tl_set:Nn \exp_not:N \l__fontscale_footnotesize_size_tl
+ { \exp_not:o \l__fontscale_footnotesize_size_tl }
+ \tl_set:Nn \exp_not:N \l__fontscale_small_size_tl
+ { \exp_not:o \l__fontscale_small_size_tl }
+ \tl_set:Nn \exp_not:N \l__fontscale_normalsize_size_tl
+ { \exp_not:o \l__fontscale_normalsize_size_tl }
+ \tl_set:Nn \exp_not:N \l__fontscale_large_size_tl
+ { \exp_not:o \l__fontscale_large_size_tl }
+ \tl_set:Nn \exp_not:N \l__fontscale_Large_size_tl
+ { \exp_not:o \l__fontscale_Large_size_tl }
+ \tl_set:Nn \exp_not:N \l__fontscale_LARGE_size_tl
+ { \exp_not:o \l__fontscale_LARGE_size_tl }
+ \tl_set:Nn \exp_not:N \l__fontscale_huge_size_tl
+ { \exp_not:o \l__fontscale_huge_size_tl }
+ \tl_set:Nn \exp_not:N \l__fontscale_Huge_size_tl
+ { \exp_not:o \l__fontscale_Huge_size_tl }
+
+ \tl_set:Nn \exp_not:N \l__fontscale_tiny_baselineskip_tl
+ { \exp_not:o \l__fontscale_tiny_baselineskip_tl }
+ \tl_set:Nn \exp_not:N \l__fontscale_scriptsize_baselineskip_tl
+ { \exp_not:o \l__fontscale_scriptsize_baselineskip_tl }
+ \tl_set:Nn \exp_not:N \l__fontscale_footnotesize_baselineskip_tl
+ { \exp_not:o \l__fontscale_footnotesize_baselineskip_tl }
+ \tl_set:Nn \exp_not:N \l__fontscale_small_baselineskip_tl
+ { \exp_not:o \l__fontscale_small_baselineskip_tl }
+ \tl_set:Nn \exp_not:N \l__fontscale_normalsize_baselineskip_tl
+ { \exp_not:o \l__fontscale_normalsize_baselineskip_tl }
+ \tl_set:Nn \exp_not:N \l__fontscale_large_baselineskip_tl
+ { \exp_not:o \l__fontscale_large_baselineskip_tl }
+ \tl_set:Nn \exp_not:N \l__fontscale_Large_baselineskip_tl
+ { \exp_not:o \l__fontscale_Large_baselineskip_tl }
+ \tl_set:Nn \exp_not:N \l__fontscale_LARGE_baselineskip_tl
+ { \exp_not:o \l__fontscale_LARGE_baselineskip_tl }
+ \tl_set:Nn \exp_not:N \l__fontscale_huge_baselineskip_tl
+ { \exp_not:o \l__fontscale_huge_baselineskip_tl }
+ \tl_set:Nn \exp_not:N \l__fontscale_Huge_baselineskip_tl
+ { \exp_not:o \l__fontscale_Huge_baselineskip_tl }
+ }
+ }
+
+% PROCESS KEYS
+
+\NewDocumentCommand \fontscalesetup { m } { \__fontscale_keys_set:n {#1} }
+\cs_new_protected:Npn \__fontscale_keys_set:n #1
+ {
+ \keys_set:nn { fontscale } {#1}
+ \__fontscale_keys_process:
+ }
+\cs_new_protected:Npn \__fontscale_keys_process:
+ {
+ \__fontscale_keys_process_normalsize:
+ \__fontscale_keys_process_other:
+ \__fontscale_keys_process_other_props:
+ \__fontscale_keys_process_check_order:
+ }
+% Sets the size and baselineskip of \normalsize, stores them in a property
+% list, and uses \normalsize.
+\cs_new_protected:Npn \__fontscale_keys_process_normalsize:
+ {
+ \quark_if_no_value:NTF \l__fontscale_normalsize_size_tl
+ {
+ \dim_set:Nn \l_fontscale_normalsize_size_dim
+ {
+ \str_case:on \l__fontscale_typographic_scale_str
+ {
+ { classic-10pt } { 10pt }
+ { classic-11pt } { 11pt }
+ { classic-12pt } { 12pt }
+ { modular } { 10pt }
+ { musical } { 10pt }
+ }
+ }
+ }
+ {
+ \__fontscale_dim_set_with_default_unit:Nn
+ \l_fontscale_normalsize_size_dim { \l__fontscale_normalsize_size_tl }
+ }
+ \fp_set:Nn \l__fontscale_normalsize_size_fp
+ { \l_fontscale_normalsize_size_dim }
+ \quark_if_no_value:NTF \l__fontscale_normalsize_baselineskip_tl
+ {
+ \skip_set:Nn \l_fontscale_normalsize_baselineskip_skip
+ {
+ \fp_to_dim:n
+ {
+ \l__fontscale_normalsize_size_fp
+ * \l__fontscale_baselineskip_size_ratio_fp
+ }
+ }
+ }
+ {
+ \__fontscale_skip_set_with_default_unit:Nn
+ \l_fontscale_normalsize_baselineskip_skip
+ { \l__fontscale_normalsize_baselineskip_tl }
+ }
+ \prop_put:Nno \l_fontscale_normalsize_prop { size }
+ { \dim_use:N \l_fontscale_normalsize_size_dim }
+ \prop_put:Nno \l_fontscale_normalsize_prop { baselineskip }
+ { \skip_use:N \l_fontscale_normalsize_baselineskip_skip }
+ \normalsize
+ }
+% Sets the size, scale, and baselineskip of the other font size commands.
+% Issues a warning if the user sets both the scale and size keys for the same
+% font size command.
+\cs_new_protected:Npn \__fontscale_keys_process_other_classic_xpt:n #1
+ {
+ \dim_set:cn { l_fontscale_#1_size_dim }
+ {
+ \str_case:nn {#1}
+ {
+ { tiny } { 6pt }
+ { scriptsize } { 7pt }
+ { footnotesize } { 8pt }
+ { small } { 9pt }
+ { large } { 11pt }
+ { Large } { 12pt }
+ { LARGE } { 14pt }
+ { huge } { 16pt }
+ { Huge } { 18pt }
+ }
+ }
+ }
+\cs_new_protected:Npn \__fontscale_keys_process_other_classic_xipt:n #1
+ {
+ \dim_set:cn { l_fontscale_#1_size_dim }
+ {
+ \str_case:nn {#1}
+ {
+ { tiny } { 7pt }
+ { scriptsize } { 8pt }
+ { footnotesize } { 9pt }
+ { small } { 10pt }
+ { large } { 12pt }
+ { Large } { 14pt }
+ { LARGE } { 16pt }
+ { huge } { 18pt }
+ { Huge } { 21pt }
+ }
+ }
+ }
+\cs_new_protected:Npn \__fontscale_keys_process_other_classic_xiipt:n #1
+ {
+ \dim_set:cn { l_fontscale_#1_size_dim }
+ {
+ \str_case:nn {#1}
+ {
+ { tiny } { 8pt }
+ { scriptsize } { 9pt }
+ { footnotesize } { 10pt }
+ { small } { 11pt }
+ { large } { 14pt }
+ { Large } { 16pt }
+ { LARGE } { 18pt }
+ { huge } { 21pt }
+ { Huge } { 24pt }
+ }
+ }
+ }
+\cs_new_protected:Npn \__fontscale_keys_process_other_modular:n #1
+ {
+ \dim_set:cn { l_fontscale_#1_size_dim }
+ {
+ \fp_to_dim:n
+ {
+ \l__fontscale_normalsize_size_fp * \l__fontscale_modular_ratio_fp
+ ^ \use:c { c_fontscale_#1_step_fp }
+ }
+ }
+ }
+\cs_new_protected:Npn \__fontscale_keys_process_other_musical:n #1
+ {
+ \dim_set:cn { l_fontscale_#1_size_dim }
+ {
+ \fp_to_dim:n
+ {
+ \l__fontscale_normalsize_size_fp * \l__fontscale_musical_ratio_fp
+ ^ ( \use:c { c_fontscale_#1_step_fp }
+ / \l__fontscale_musical_notes_fp )
+ }
+ }
+ }
+\cs_new_protected:Npn \__fontscale_keys_process_other:
+ {
+ \str_case:on \l__fontscale_typographic_scale_str
+ {
+ { classic-10pt }
+ {
+ \cs_set_eq:NN \__fontscale_keys_process_other_typographic_scale:n
+ \__fontscale_keys_process_other_classic_xpt:n
+ }
+ { classic-11pt }
+ {
+ \cs_set_eq:NN \__fontscale_keys_process_other_typographic_scale:n
+ \__fontscale_keys_process_other_classic_xipt:n
+ }
+ { classic-12pt }
+ {
+ \cs_set_eq:NN \__fontscale_keys_process_other_typographic_scale:n
+ \__fontscale_keys_process_other_classic_xiipt:n
+ }
+ { modular }
+ {
+ \cs_set_eq:NN \__fontscale_keys_process_other_typographic_scale:n
+ \__fontscale_keys_process_other_modular:n
+ }
+ { musical }
+ {
+ \cs_set_eq:NN \__fontscale_keys_process_other_typographic_scale:n
+ \__fontscale_keys_process_other_musical:n
+ \fp_set:Nn \l__fontscale_musical_notes_fp
+ { \l__fontscale_musical_notes_int }
+ }
+ }
+ \tl_map_function:NN \c__fontscale_names_other_tl
+ \__fontscale_keys_process_other_aux:n
+ }
+\cs_new_protected:Npn \__fontscale_keys_process_other_aux:n #1
+ {
+ \quark_if_no_value:cF { l__fontscale_#1_size_tl }
+ {
+ \__fontscale_dim_set_with_default_unit:cn { l_fontscale_#1_size_dim }
+ { \use:c { l__fontscale_#1_size_tl } }
+ \quark_if_no_value:cF { l__fontscale_#1_scale_tl }
+ { \msg_warning:nnn { fontscale } { key-font-scale-ignored } {#1} }
+ \prg_break:
+ }
+ \quark_if_no_value:cF { l__fontscale_#1_scale_tl }
+ {
+ \dim_set:cn { l_fontscale_#1_size_dim }
+ {
+ \fp_to_dim:n
+ {
+ \l__fontscale_normalsize_size_fp
+ * ( \use:c { l__fontscale_#1_scale_tl } )
+ }
+ }
+ \prg_break:
+ }
+ \prg_break:n { \__fontscale_keys_process_other_typographic_scale:n {#1} }
+ \prg_break_point:
+ \fp_set:cn { l_fontscale_#1_scale_fp }
+ { \use:c { l_fontscale_#1_size_dim } / \l__fontscale_normalsize_size_fp }
+ \quark_if_no_value:cTF { l__fontscale_#1_baselineskip_tl }
+ {
+ \skip_set:cn { l_fontscale_#1_baselineskip_skip }
+ {
+ \fp_to_dim:n
+ {
+ \use:c { l_fontscale_#1_size_dim }
+ * \l__fontscale_baselineskip_size_ratio_fp
+ }
+ }
+ }
+ {
+ \__fontscale_skip_set_with_default_unit:cn
+ { l_fontscale_#1_baselineskip_skip }
+ { \use:c { l__fontscale_#1_baselineskip_tl } }
+ }
+ }
+% Puts the scale, size, and baselineskip of the other font size commands in
+% property lists.
+\cs_new_protected:Npn \__fontscale_keys_process_other_props:
+ {
+ \prop_put:Nne \l_fontscale_tiny_prop { scale }
+ { \fp_use:N \l_fontscale_tiny_scale_fp }
+ \prop_put:Nne \l_fontscale_scriptsize_prop { scale }
+ { \fp_use:N \l_fontscale_scriptsize_scale_fp }
+ \prop_put:Nne \l_fontscale_footnotesize_prop { scale }
+ { \fp_use:N \l_fontscale_footnotesize_scale_fp }
+ \prop_put:Nne \l_fontscale_small_prop { scale }
+ { \fp_use:N \l_fontscale_small_scale_fp }
+ \prop_put:Nne \l_fontscale_large_prop { scale }
+ { \fp_use:N \l_fontscale_large_scale_fp }
+ \prop_put:Nne \l_fontscale_Large_prop { scale }
+ { \fp_use:N \l_fontscale_Large_scale_fp }
+ \prop_put:Nne \l_fontscale_LARGE_prop { scale }
+ { \fp_use:N \l_fontscale_LARGE_scale_fp }
+ \prop_put:Nne \l_fontscale_huge_prop { scale }
+ { \fp_use:N \l_fontscale_huge_scale_fp }
+ \prop_put:Nne \l_fontscale_Huge_prop { scale }
+ { \fp_use:N \l_fontscale_Huge_scale_fp }
+
+ \prop_put:Nno \l_fontscale_tiny_prop { size }
+ { \dim_use:N \l_fontscale_tiny_size_dim }
+ \prop_put:Nno \l_fontscale_scriptsize_prop { size }
+ { \dim_use:N \l_fontscale_scriptsize_size_dim }
+ \prop_put:Nno \l_fontscale_footnotesize_prop { size }
+ { \dim_use:N \l_fontscale_footnotesize_size_dim }
+ \prop_put:Nno \l_fontscale_small_prop { size }
+ { \dim_use:N \l_fontscale_small_size_dim }
+ \prop_put:Nno \l_fontscale_large_prop { size }
+ { \dim_use:N \l_fontscale_large_size_dim }
+ \prop_put:Nno \l_fontscale_Large_prop { size }
+ { \dim_use:N \l_fontscale_Large_size_dim }
+ \prop_put:Nno \l_fontscale_LARGE_prop { size }
+ { \dim_use:N \l_fontscale_LARGE_size_dim }
+ \prop_put:Nno \l_fontscale_huge_prop { size }
+ { \dim_use:N \l_fontscale_huge_size_dim }
+ \prop_put:Nno \l_fontscale_Huge_prop { size }
+ { \dim_use:N \l_fontscale_Huge_size_dim }
+
+ \prop_put:Nno \l_fontscale_tiny_prop { baselineskip }
+ { \skip_use:N \l_fontscale_tiny_baselineskip_skip }
+ \prop_put:Nno \l_fontscale_scriptsize_prop { baselineskip }
+ { \skip_use:N \l_fontscale_scriptsize_baselineskip_skip }
+ \prop_put:Nno \l_fontscale_footnotesize_prop { baselineskip }
+ { \skip_use:N \l_fontscale_footnotesize_baselineskip_skip }
+ \prop_put:Nno \l_fontscale_small_prop { baselineskip }
+ { \skip_use:N \l_fontscale_small_baselineskip_skip }
+ \prop_put:Nno \l_fontscale_large_prop { baselineskip }
+ { \skip_use:N \l_fontscale_large_baselineskip_skip }
+ \prop_put:Nno \l_fontscale_Large_prop { baselineskip }
+ { \skip_use:N \l_fontscale_Large_baselineskip_skip }
+ \prop_put:Nno \l_fontscale_LARGE_prop { baselineskip }
+ { \skip_use:N \l_fontscale_LARGE_baselineskip_skip }
+ \prop_put:Nno \l_fontscale_huge_prop { baselineskip }
+ { \skip_use:N \l_fontscale_huge_baselineskip_skip }
+ \prop_put:Nno \l_fontscale_Huge_prop { baselineskip }
+ { \skip_use:N \l_fontscale_Huge_baselineskip_skip }
+ }
+% Issues a warning if the font sizes or font baselineskips are not in the
+% correct order.
+\cs_new_protected:Npn \__fontscale_keys_process_check_order:
+ {
+ \bool_if:NF \l__fontscale_ignore_order_bool
+ {
+ \dim_compare:nF
+ {
+ \l_fontscale_tiny_size_dim
+ < \l_fontscale_scriptsize_size_dim
+ < \l_fontscale_footnotesize_size_dim
+ < \l_fontscale_small_size_dim
+ < \l_fontscale_normalsize_size_dim
+ < \l_fontscale_large_size_dim
+ < \l_fontscale_Large_size_dim
+ < \l_fontscale_LARGE_size_dim
+ < \l_fontscale_huge_size_dim
+ < \l_fontscale_Huge_size_dim
+ }
+ { \msg_warning:nn { fontscale } { font-sizes-out-of-order } }
+ \dim_compare:nF
+ {
+ \l_fontscale_tiny_baselineskip_skip
+ < \l_fontscale_scriptsize_baselineskip_skip
+ < \l_fontscale_footnotesize_baselineskip_skip
+ < \l_fontscale_small_baselineskip_skip
+ < \l_fontscale_normalsize_baselineskip_skip
+ < \l_fontscale_large_baselineskip_skip
+ < \l_fontscale_Large_baselineskip_skip
+ < \l_fontscale_LARGE_baselineskip_skip
+ < \l_fontscale_huge_baselineskip_skip
+ < \l_fontscale_Huge_baselineskip_skip
+ }
+ { \msg_warning:nn { fontscale } { font-baselineskips-out-of-order } }
+ }
+ }
+
+% DOCUMENT COMMANDS
+
+% The internal functions of each font size command are not used elsewhere in
+% the code for compatibility with user-defined hooks
+% (e.g. \AddToHook{cmd/normalsize/after}{<user-defined-function>}).
+% Need \dim_use:N for compatibility with the microtype package.
+\DeclareDocumentCommand \tiny { } { \__fontscale_tiny: }
+\cs_new_protected:Npn \__fontscale_tiny:
+ {
+ \@setfontsize \tiny { \dim_use:N \l_fontscale_tiny_size_dim }
+ \l_fontscale_tiny_baselineskip_skip
+ }
+\DeclareDocumentCommand \scriptsize { } { \__fontscale_scriptsize: }
+\cs_new_protected:Npn \__fontscale_scriptsize:
+ {
+ \@setfontsize \scriptsize { \dim_use:N \l_fontscale_scriptsize_size_dim }
+ \l_fontscale_scriptsize_baselineskip_skip
+ }
+\DeclareDocumentCommand \footnotesize { } { \__fontscale_footnotesize: }
+\cs_new_protected:Npn \__fontscale_footnotesize:
+ {
+ \@setfontsize \footnotesize
+ { \dim_use:N \l_fontscale_footnotesize_size_dim }
+ \l_fontscale_footnotesize_baselineskip_skip
+ }
+\DeclareDocumentCommand \small { } { \__fontscale_small: }
+\cs_new_protected:Npn \__fontscale_small:
+ {
+ \@setfontsize \small { \dim_use:N \l_fontscale_small_size_dim }
+ \l_fontscale_small_baselineskip_skip
+ }
+\DeclareDocumentCommand \normalsize { } { \__fontscale_normalsize: }
+\cs_new_protected:Npn \__fontscale_normalsize:
+ {
+ \@setfontsize \normalsize { \dim_use:N \l_fontscale_normalsize_size_dim }
+ \l_fontscale_normalsize_baselineskip_skip
+ }
+\DeclareDocumentCommand \large { } { \__fontscale_large: }
+\cs_new_protected:Npn \__fontscale_large:
+ {
+ \@setfontsize \large { \dim_use:N \l_fontscale_large_size_dim }
+ \l_fontscale_large_baselineskip_skip
+ }
+\DeclareDocumentCommand \Large { } { \__fontscale_Large: }
+\cs_new_protected:Npn \__fontscale_Large:
+ {
+ \@setfontsize \Large { \dim_use:N \l_fontscale_Large_size_dim }
+ \l_fontscale_Large_baselineskip_skip
+ }
+\DeclareDocumentCommand \LARGE { } { \__fontscale_LARGE: }
+\cs_new_protected:Npn \__fontscale_LARGE:
+ {
+ \@setfontsize \LARGE { \dim_use:N \l_fontscale_LARGE_size_dim }
+ \l_fontscale_LARGE_baselineskip_skip
+ }
+\DeclareDocumentCommand \huge { } { \__fontscale_huge: }
+\cs_new_protected:Npn \__fontscale_huge:
+ {
+ \@setfontsize \huge { \dim_use:N \l_fontscale_huge_size_dim }
+ \l_fontscale_huge_baselineskip_skip
+ }
+\DeclareDocumentCommand \Huge { } { \__fontscale_Huge: }
+\cs_new_protected:Npn \__fontscale_Huge:
+ {
+ \@setfontsize \Huge { \dim_use:N \l_fontscale_Huge_size_dim }
+ \l_fontscale_Huge_baselineskip_skip
+ }
+% Initializes to \normalsize.
+\normalsize
+
+\NewExpandableDocumentCommand \CurrentFontStep { }
+ { \__fontscale_current_font_step: }
+\cs_new:Npn \__fontscale_current_font_step:
+ {
+ \dim_case:nnF { \f@size pt }
+ {
+ { \l_fontscale_tiny_size_dim } { -4 }
+ { \l_fontscale_scriptsize_size_dim } { -3 }
+ { \l_fontscale_footnotesize_size_dim } { -2 }
+ { \l_fontscale_small_size_dim } { -1 }
+ { \l_fontscale_normalsize_size_dim } { 0 }
+ { \l_fontscale_large_size_dim } { 1 }
+ { \l_fontscale_Large_size_dim } { 2 }
+ { \l_fontscale_LARGE_size_dim } { 3 }
+ { \l_fontscale_huge_size_dim } { 4 }
+ { \l_fontscale_Huge_size_dim } { 5 }
+ }
+ {
+ \str_case:on \l__fontscale_typographic_scale_str
+ {
+ { modular }
+ {
+ \fp_eval:n
+ {
+ ln ( \f@size / \l__fontscale_normalsize_size_fp )
+ / ln ( \l__fontscale_modular_ratio_fp )
+ }
+ }
+ { musical }
+ {
+ \fp_eval:n
+ {
+ \l__fontscale_musical_notes_fp
+ * ln ( \f@size / \l__fontscale_normalsize_size_fp )
+ / ln ( \l__fontscale_musical_ratio_fp )
+ }
+ }
+ }
+ }
+ }
+
+\NewExpandableDocumentCommand \CurrentFontScale { }
+ { \__fontscale_current_font_scale: }
+\cs_new:Npn \__fontscale_current_font_scale:
+ { \fp_eval:n { \f@size / \l__fontscale_normalsize_size_fp } }
+
+\NewExpandableDocumentCommand \CurrentFontSize { }
+ { \__fontscale_current_font_size: }
+\cs_new:Npn \__fontscale_current_font_size: { \f@size pt }
+
+\NewExpandableDocumentCommand \CurrentFontBaselineskip { }
+ { \__fontscale_current_font_baselineskip: }
+\cs_new:Npn \__fontscale_current_font_baselineskip: { \f@baselineskip }
+
+\NewDocumentCommand \SetFontStep { s m }
+ {
+ \IfBooleanTF #1
+ { \__fontscale_add_font_step:n {#2} }
+ { \__fontscale_set_font_step:n {#2} }
+ }
+\cs_new_protected:Npn \__fontscale_set_font_step:n #1
+ {
+ \fp_set:Nn \l__fontscale_step_fp {#1}
+ \__fontscale_set_font_step_aux:N \l__fontscale_step_fp
+ }
+\cs_new_protected:Npn \__fontscale_set_font_step_aux:N #1
+ {
+ \token_case_meaning:NnF #1
+ {
+ \c_fontscale_tiny_step_fp { \tiny }
+ \c_fontscale_scriptsize_step_fp { \scriptsize }
+ \c_fontscale_footnotesize_step_fp { \footnotesize }
+ \c_fontscale_small_step_fp { \small }
+ \c_fontscale_normalsize_step_fp { \normalsize }
+ \c_fontscale_large_step_fp { \large }
+ \c_fontscale_Large_step_fp { \Large }
+ \c_fontscale_LARGE_step_fp { \LARGE }
+ \c_fontscale_huge_step_fp { \huge }
+ \c_fontscale_Huge_step_fp { \Huge }
+ }
+ {
+ \str_case:onF \l__fontscale_typographic_scale_str
+ {
+ { modular }
+ {
+ \fontsize
+ {
+ \fp_to_dim:n
+ {
+ \l__fontscale_normalsize_size_fp
+ * \l__fontscale_modular_ratio_fp ^ #1
+ }
+ }
+ {
+ \fp_to_dim:n
+ { \f@size * \l__fontscale_baselineskip_size_ratio_fp }
+ }
+ \selectfont
+ }
+ { musical }
+ {
+ \fontsize
+ {
+ \fp_to_dim:n
+ {
+ \l__fontscale_normalsize_size_fp
+ * \l__fontscale_musical_ratio_fp
+ ^ ( #1 / \l__fontscale_musical_notes_fp )
+ }
+ }
+ {
+ \fp_to_dim:n
+ { \f@size * \l__fontscale_baselineskip_size_ratio_fp }
+ }
+ \selectfont
+ }
+ }
+ { \msg_error:nn { fontscale } { font-step-out-of-bounds } }
+ }
+ }
+\cs_new_protected:Npn \__fontscale_add_font_step:n #1
+ {
+ \tl_set:Ne \l__fontscale_step_tl { \__fontscale_current_font_step: }
+ \tl_if_empty:NTF \l__fontscale_step_tl
+ { \msg_error:nn { fontscale } { font-step-out-of-bounds } }
+ {
+ \fp_set:Nn \l__fontscale_step_fp { (#1) + \l__fontscale_step_tl }
+ \__fontscale_add_font_step_aux:N \l__fontscale_step_fp
+ }
+ }
+\cs_new_eq:NN \__fontscale_add_font_step_aux:N \__fontscale_set_font_step_aux:N
+
+\NewDocumentCommand \SetFontScale { s m }
+ {
+ \IfBooleanTF #1
+ { \__fontscale_add_font_scale:n {#2} }
+ { \__fontscale_set_font_scale:n {#2} }
+ }
+\cs_new_protected:Npn \__fontscale_set_font_scale:n #1
+ {
+ \fontsize
+ { \fp_to_dim:n { \l__fontscale_normalsize_size_fp * (#1) } }
+ { \fp_to_dim:n { \f@size * \l__fontscale_baselineskip_size_ratio_fp } }
+ \selectfont
+ }
+\cs_new_protected:Npn \__fontscale_add_font_scale:n #1
+ {
+ \fontsize
+ { \fp_to_dim:n { \l__fontscale_normalsize_size_fp * (#1) + \f@size } }
+ { \fp_to_dim:n { \f@size * \l__fontscale_baselineskip_size_ratio_fp } }
+ \selectfont
+ }
+
+\NewDocumentCommand \SetFontSize { s m }
+ {
+ \IfBooleanTF #1
+ { \__fontscale_add_font_size:n {#2} }
+ { \__fontscale_set_font_size:n {#2} }
+ }
+\cs_new_protected:Npn \__fontscale_set_font_size:n #1
+ {
+ \__fontscale_dim_set_with_default_unit:Nn \l__fontscale_size_dim {#1}
+ \fontsize \l__fontscale_size_dim
+ { \fp_to_dim:n { \f@size * \l__fontscale_baselineskip_size_ratio_fp } }
+ \selectfont
+ }
+\cs_new_protected:Npn \__fontscale_add_font_size:n #1
+ {
+ \__fontscale_dim_set_with_default_unit:Nn \l__fontscale_size_dim {#1}
+ \dim_add:Nn \l__fontscale_size_dim { \f@size pt }
+ \fontsize \l__fontscale_size_dim
+ { \fp_to_dim:n { \f@size * \l__fontscale_baselineskip_size_ratio_fp } }
+ \selectfont
+ }
+
+\NewDocumentCommand \ScaleFont { m } { \__fontscale_scalefont:n {#1} }
+\cs_new_protected:Npn \__fontscale_scalefont:n #1
+ {
+ \fontsize
+ { \fp_to_dim:n { \f@size * (#1) } }
+ { \fp_to_dim:n { \dim_to_fp:n { \f@baselineskip } * (#1) } }
+ \selectfont
+ }
+
+\NewDocumentCommand \SetFontSizeBaselineskip { m m }
+ { \__fontscale_set_font_size_baselineskip:nn {#1} {#2} }
+\cs_new_protected:Npn \__fontscale_set_font_size_baselineskip:nn #1#2
+ {
+ \__fontscale_dim_set_with_default_unit:Nn \l__fontscale_size_dim {#1}
+ \__fontscale_skip_set_with_default_unit:Nn \l__fontscale_baselineskip_skip
+ {#2}
+ \fontsize \l__fontscale_size_dim \l__fontscale_baselineskip_skip
+ \selectfont
+ }
+
+\NewDocumentCommand \PrintFontParameters { }
+ { \__fontscale_print_font_parameters: }
+\cs_new_protected:Npn \__fontscale_print_font_parameters:
+ {
+ step ~=~ \__fontscale_current_font_step: ,~
+ scale ~=~ \__fontscale_current_font_scale: ,~
+ size ~=~ \__fontscale_current_font_size: ,~
+ baselineskip ~=~ \__fontscale_current_font_baselineskip:
+ }
+
+\NewDocumentCommand \PrintAllFontParameters { }
+ { \__fontscale_print_all_font_parameters: }
+\cs_new_protected:Npn \__fontscale_print_all_font_parameters:
+ {
+ \tl_map_inline:Nn \c__fontscale_names_tl
+ {
+ \prop_get:cnN { l_fontscale_##1_prop } { step } \l__fontscale_step_tl
+ \prop_get:cnN { l_fontscale_##1_prop } { scale } \l__fontscale_scale_tl
+ \token_to_str:c {##1} \@ \c_colon_str \c_space_tl
+ step ~=~ \l__fontscale_step_tl ,~
+ scale ~=~ \l__fontscale_scale_tl ,~
+ size ~=~ \dim_use:c { l_fontscale_##1_size_dim } ,~
+ baselineskip ~=~ \skip_use:c { l_fontscale_##1_baselineskip_skip }
+ \str_if_eq:nnF {##1} { Huge } { \newline }
+ }
+ }
+
+\NewDocumentCommand \PrintSampleText
+ { s O
+ {
+ The~ \texttt { fontscale }~ package \c_colon_str \c_space_tl
+ A~ user~ interface~ for~ setting~ document~ font~ sizes
+ }
+ }
+ {
+ \IfBooleanTF #1
+ { \__fontscale_print_sample_text_descending_order:n {#2} }
+ { \__fontscale_print_sample_text_ascending_order:n {#2} }
+ }
+\cs_new_protected:Npn \__fontscale_print_sample_text_ascending_order:n #1
+ {
+ { \tiny #1 \par }
+ { \scriptsize #1 \par }
+ { \footnotesize #1 \par }
+ { \small #1 \par }
+ { \normalsize #1 \par }
+ { \large #1 \par }
+ { \Large #1 \par }
+ { \LARGE #1 \par }
+ { \huge #1 \par }
+ { \Huge #1 \par }
+ }
+\cs_new_protected:Npn \__fontscale_print_sample_text_descending_order:n #1
+ {
+ { \Huge #1 \par }
+ { \huge #1 \par }
+ { \LARGE #1 \par }
+ { \Large #1 \par }
+ { \large #1 \par }
+ { \normalsize #1 \par }
+ { \small #1 \par }
+ { \footnotesize #1 \par }
+ { \scriptsize #1 \par }
+ { \tiny #1 \par }
+ }
+
+\NewDocumentCommand \PrintFontSizeCommand { } { \__fontscale_print_name: }
+\cs_new_protected:Npn \__fontscale_print_name:
+ {
+ \dim_case:nnF { \f@size pt }
+ {
+ { \l_fontscale_tiny_size_dim }
+ {
+ \skip_if_eq:nnTF { \f@baselineskip }
+ { \l_fontscale_tiny_baselineskip_skip }
+ { \token_to_str:N \tiny } { UNDEFINED \@ }
+ }
+ { \l_fontscale_scriptsize_size_dim }
+ {
+ \skip_if_eq:nnTF { \f@baselineskip }
+ { \l_fontscale_scriptsize_baselineskip_skip }
+ { \token_to_str:N \scriptsize } { UNDEFINED \@ }
+ }
+ { \l_fontscale_footnotesize_size_dim }
+ {
+ \skip_if_eq:nnTF { \f@baselineskip }
+ { \l_fontscale_footnotesize_baselineskip_skip }
+ { \token_to_str:N \footnotesize } { UNDEFINED \@ }
+ }
+ { \l_fontscale_small_size_dim }
+ {
+ \skip_if_eq:nnTF { \f@baselineskip }
+ { \l_fontscale_small_baselineskip_skip }
+ { \token_to_str:N \small } { UNDEFINED \@ }
+ }
+ { \l_fontscale_normalsize_size_dim }
+ {
+ \skip_if_eq:nnTF { \f@baselineskip }
+ { \l_fontscale_normalsize_baselineskip_skip }
+ { \token_to_str:N \normalsize } { UNDEFINED \@ }
+ }
+ { \l_fontscale_large_size_dim }
+ {
+ \skip_if_eq:nnTF { \f@baselineskip }
+ { \l_fontscale_large_baselineskip_skip }
+ { \token_to_str:N \large } { UNDEFINED \@ }
+ }
+ { \l_fontscale_Large_size_dim }
+ {
+ \skip_if_eq:nnTF { \f@baselineskip }
+ { \l_fontscale_Large_baselineskip_skip }
+ { \token_to_str:N \Large } { UNDEFINED \@ }
+ }
+ { \l_fontscale_LARGE_size_dim }
+ {
+ \skip_if_eq:nnTF { \f@baselineskip }
+ { \l_fontscale_LARGE_baselineskip_skip }
+ { \token_to_str:N \LARGE \@ } { UNDEFINED \@ }
+ }
+ { \l_fontscale_huge_size_dim }
+ {
+ \skip_if_eq:nnTF { \f@baselineskip }
+ { \l_fontscale_huge_baselineskip_skip }
+ { \token_to_str:N \huge } { UNDEFINED \@ }
+ }
+ { \l_fontscale_Huge_size_dim }
+ {
+ \skip_if_eq:nnTF { \f@baselineskip }
+ { \l_fontscale_Huge_baselineskip_skip }
+ { \token_to_str:N \Huge } { UNDEFINED \@ }
+ }
+ }
+ { UNDEFINED \@ }
+ }
+
+% TEXT PURIFY
+
+\cs_new:Npn \__fontscale_text_purify_equivalent:n #1
+ {
+ \bool_lazy_all:nT
+ {
+ { \tl_if_single_p:n {#1} }
+ { \tl_if_single_token_p:n #1 }
+ { \token_if_eq_meaning_p:NN #1 * }
+ }
+ { \use_none:n }
+ }
+\text_declare_purify_equivalent:Nn \SetFontStep
+ { \__fontscale_text_purify_equivalent:n }
+\text_declare_purify_equivalent:Nn \SetFontScale
+ { \__fontscale_text_purify_equivalent:n }
+\text_declare_purify_equivalent:Nn \SetFontSize
+ { \__fontscale_text_purify_equivalent:n }
+\text_declare_purify_equivalent:Nn \ScaleFont { \use_none:n }
\text_declare_purify_equivalent:Nn \SetFontSizeBaselineskip { \use_none:nn } \ No newline at end of file
diff --git a/macros/latex/contrib/hulipsum/README b/macros/latex/contrib/hulipsum/README
index e336e94b2f..8ff9548c26 100644
--- a/macros/latex/contrib/hulipsum/README
+++ b/macros/latex/contrib/hulipsum/README
@@ -1,6 +1,6 @@
hulipsum.sty package
-Copyright 2018-2020 by Tibor Tomacs
+Copyright 2018-2024 by Tibor Tomacs
Hungarian dummy text (Lorum ipse) for demonstrating the textual elements of a document template
All paragraphs are taken with permission from http://www.lorumipse.hu/.
diff --git a/macros/latex/contrib/hulipsum/hulipsum.dtx b/macros/latex/contrib/hulipsum/hulipsum.dtx
index ce3527588b..02d257e3a9 100644
--- a/macros/latex/contrib/hulipsum/hulipsum.dtx
+++ b/macros/latex/contrib/hulipsum/hulipsum.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright 2018-2020 by Tibor Tomacs
+% Copyright 2018-2024 by Tibor Tomacs
%
% Hungarian dummy text (Lorum ipse) for demonstrating the textual elements of a document template
% All paragraphs are taken with permission from http://www.lorumipse.hu/.
@@ -24,15 +24,14 @@
%<*driver>
\ProvidesFile{hulipsum.dtx}
%</driver>
-%<package>\NeedsTeXFormat{LaTeX2e}[1999/12/01]
-%<package>\ProvidesPackage{hulipsum}[2020/11/03 v1.1 Hungarian dummy text (Lorum ipse)]
+%<package>\NeedsTeXFormat{LaTeX2e}[2022/06/20]
+%<package>\ProvidesPackage{hulipsum}[2024/04/07 v1.2 Hungarian dummy text (Lorum ipse)]
%
%<*driver>
\documentclass{ltxdoc}
\OnlyDescription
+\AddToHook{begindocument/before}[doc/hyperref]{\hypersetup{pdfstartview=FitH,colorlinks,allcolors=black}}
\usepackage[a4paper,margin=25mm]{geometry}
-\usepackage[pdfstartview=FitH,colorlinks,allcolors=black]{hyperref}
-\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[english]{babel}
\usepackage{listings,xcolor}
@@ -60,8 +59,8 @@ keepspaces]}
%
% \GetFileInfo{hulipsum.sty}
%
-% \title{The {\bfseries\sffamily hulipsum} package\\{\large v1.1 (2020/11/03)}}
-% \author{Tibor Tómács\\{\normalsize\url{tomacs.tibor@uni-eszterhazy.hu}}}
+% \title{The {\bfseries\sffamily hulipsum} package\\{\large v1.2 (2024/04/07)}}
+% \author{Tibor Tómács\\{\normalsize\url{tomacs.tibor@gmail.com}}}
% \date{}
% \maketitle
% \thispagestyle{empty}
@@ -104,13 +103,32 @@ keepspaces]}
%
% \verbinline|\hulipsumsave*[!<num1>!-!<num2>!]\hulipsumexp| is equivalent to \verbinline|\hulipsum*[!<num1>!-!<num2>!]|.
%
-% \item\commandinline|\hulipsumdocument|\\
-% It creates a blind document with title, author, date, table of contents, chapter, section, subsection, subsubsection, paragraph, subparagraph, figure, lists and bibliography.
-%
-% \item\commandinline|\hulipsumdocument[part]|\\
-% It works like \verbinline|\hulipsumdocument|, but it creates a part before the chapter and section.
-% \end{description}
+% \item\commandinline|\hulipsumdocument[!<options>!]|\\
+% It creates a blind document with title, author, date, table of contents, part, chapter, section, subsection, subsubsection, paragraph, subparagraph, figure, lists, equations and bibliography.
+%
+% The \commandinline|!<options>!| are:
+%
+% \begin{description}
+% \item \commandinline|maketitle=!<boolean>!| \hfill (default: \texttt{true})\\
+% Adds \verbinline|\maketitle| if the \commandinline|!<boolean>!| is \texttt{true}.
+%
+% \item \commandinline|tableofcontents=!<boolean>!| \hfill (default: \texttt{true})\\
+% Adds \verbinline|\tableofcontents| if the \commandinline|!<boolean>!| is \texttt{true}.
+%
+% \item \commandinline|part=!<boolean>!| \hfill (default: \texttt{false})\\
+% Adds \verbinline|\part{...}| before the chapter and section, if the \commandinline|!<boolean>!| is \texttt{true}.
%
+% \item \commandinline|abstract=!<boolean>!| \hfill (default: \texttt{true})\\
+% Adds an \texttt{abstract} environment if the \commandinline|!<boolean>!| is \texttt{true}.
+%
+% \item \commandinline|math=!<boolean>!| \hfill (default: \texttt{true})\\
+% Adds a mathematical equation if the \commandinline|!<boolean>!| is \texttt{true}.
+%
+% \item \commandinline|bibliography=!<boolean>!| \hfill (default: \texttt{true})\\
+% Adds \texttt{thebibliography} environment if the \commandinline|!<boolean>!| is \texttt{true}.
+% \end{description}
+% The \texttt{=true} can be omitted in the options. For example \verbinline|\hulipsumdocument[part,math=false]|.
+% \end{description}
% \StopEventually
%
% \begin{macrocode}
@@ -210,19 +228,29 @@ keepspaces]}
\newif\if@hulipsum@firstexpand@
\@hulipsum@firstexpand@true
-\newcommand{\hulipsumdocument}[1][]{%
+\newcommand{\hulipsumdocument}[1][]{
\if@hulipsum@firstexpand@
-\global\@hulipsum@firstexpand@false%
-\def\hulipsum@part{#1}%
-\def\hulipsum@partcheck{part}%
+\global\@hulipsum@firstexpand@false
+\begingroup
+\DeclareKeys{
+ maketitle.if=@hulipsum@maketitle,
+ tableofcontents.if=@hulipsum@tableofcontents,
+ part.if=@hulipsum@part,
+ abstract.if=@hulipsum@abstract,
+ math.if=@hulipsum@math,
+ bibliography.if=@hulipsum@bibliography}
+\SetKeys{maketitle,part=false,abstract,tableofcontents,math,bibliography,#1}
+\if@hulipsum@maketitle
\@ifundefined{title}{}{\title{L\'{o}rum ipse}}
\@ifundefined{author}{}{\author{Nyomasek Bob\'{o}}}
+\@ifundefined{supervisor}{}{\supervisor{Szel\'{e}s Gerg\H{o}\\ egyetemi docens}\author{Nyomasek Bob\'{o}\\ matematika szak}}
+\@ifundefined{institute}{}{\institute{Matematikai és Informatikai Intézet}}
+\@ifundefined{city}{}{\city{Eger}}
\@ifundefined{maketitle}{}{\maketitle}
-\@ifundefined{tableofcontents}{}{\tableofcontents}
-\@ifundefined{abstract}{}{\begin{abstract}\hulipsum[1]\end{abstract}}
-\ifx\hulipsum@part\hulipsum@partcheck%
-\@ifundefined{part}{}{\part{Borzaszt\'{o}an cog\'{a}lis pat\'{a}s}}
\fi
+\if@hulipsum@tableofcontents\@ifundefined{tableofcontents}{}{\tableofcontents}\fi
+\if@hulipsum@abstract\@ifundefined{abstract}{}{\begin{abstract}\hulipsum[1]\end{abstract}}\fi
+\if@hulipsum@part\@ifundefined{part}{}{\part{Borzaszt\'{o}an cog\'{a}lis pat\'{a}s}}\fi
\@ifundefined{chapter}{}{\chapter{Fog\'{a}s n\'{e}lk\"{u}l nem vark\'{a}l}}
\@ifundefined{section}{}{\section{A vandoba h\'{e}t matlan}}
\hulipsum[1-2]
@@ -274,12 +302,19 @@ keepspaces]}
\end{description}
\end{description}
\end{description}}
+\if@hulipsum@math
+$\mathrm{e}^x=\sum_{n=0}^\infty\frac{x^n}{n!}$ minden val\'{o}s $x$ eset\'{e}n.
+\[\mathrm{e}^x=\sum_{n=0}^\infty\frac{x^n}{n!}\quad\forall x\in\mathbf{R}.\]
+\fi
+\if@hulipsum@bibliography
\@ifundefined{thebibliography}{}{%
\begin{thebibliography}{1}
\bibitem{a} \textsc{Nyomasek Bob\'{o}}, \emph{L\'{o}rum ipse}, Handana Kiad\'{o}, 1980.
\bibitem{b} \textsc{Szel\'{e}s Gerg\H{o}}, \emph{A griszt\'{a}s talt\'{a}s kirg\'{e}szei}, \"{U}d\"{o}sv\'{e}ny Kiad\'{o}, 2010.
\end{thebibliography}}
\fi
+\endgroup
+\fi
}
\def\hulipsum@i{\g@addto@macro\hulipsumexp{L\'{o}rum ipse olyan borzaszt\'{o}an cog\'{a}lis pat\'{a}s, ami fog\'{a}s n\'{e}lk\"{u}l nem vark\'{a}l megfelel\H{o}en. A vandoba h\'{e}t matlan talmatos ferodika, amelynek kap\'{a}r\'{a}s\'{a}t az izma mig\'{a}lja. A vandoba bul\'{a}i k\"{o}z\"{u}l zsibulja meg az izm\'{a}t, a porn\'{a}t, valamint a m\H{u}v\'{e}st \'{e}s v\'{a}tog a vandoba bul\'{a}inak v\'{o}k\'{a}ir\'{o}l. V\'{o}k\'{a}ja a raktil proz\'{a}sa k\'{e}t emen k\"{o}z\"{o}tt. \'{E}vente legal\'{a}bb egyszer csetnyi pipecs\'{e}lnie az ement, azon fongnia a l\'{a}ltos kap\'{a}r\'{a}sr\'{o}l \'{e}s a ny\'{a}kuum b\"{o}ll\'{e}s\'{e}r\H{o}l. A vandoba ninti \'{e}s az emen el\'{e} red\H{o}zi a szamlan radalmakan \'{e}rv\'{e}st. Az ement az izma bamz\'{a}sban, a has\'{a}s szegeszk\'{e}j\'{e}vel log\'{a}lja \"{o}ssze, legal\'{a}bb 15 nappal annak poz\'{a}sa el\H{o}tt. Az ement \"{o}ssze kell log\'{a}lnia akkor is, ha azt az \'{o}d\'{a}s legal\'{a}bb egyes bamz\'{a}sban, a reszt\H{o} billet\'{e}vel h\'{a}sodja.}}
diff --git a/macros/latex/contrib/hulipsum/hulipsum.ins b/macros/latex/contrib/hulipsum/hulipsum.ins
index 749df0cfb5..eedd7fb45b 100644
--- a/macros/latex/contrib/hulipsum/hulipsum.ins
+++ b/macros/latex/contrib/hulipsum/hulipsum.ins
@@ -1,5 +1,5 @@
-% Copyright 2018-2020 by Tibor Tomacs
+% Copyright 2018-2024 by Tibor Tomacs
%
% Hungarian dummy text (Lorum ipse) for demonstrating the textual elements of a document template
% All paragraphs are taken with permission from http://www.lorumipse.hu/.
@@ -23,7 +23,7 @@
\preamble
This is a generated file.
-Copyright 2018-2020 by Tibor Tomacs
+Copyright 2018-2024 by Tibor Tomacs
Hungarian dummy text (Lorum ipse) for demonstrating the textual elements of a document template
All paragraphs are taken with permission from http://www.lorumipse.hu/.
diff --git a/macros/latex/contrib/hulipsum/hulipsum.pdf b/macros/latex/contrib/hulipsum/hulipsum.pdf
index 2a621923b4..c44bf76cb9 100644
--- a/macros/latex/contrib/hulipsum/hulipsum.pdf
+++ b/macros/latex/contrib/hulipsum/hulipsum.pdf
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl b/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
index e2af8cc859..2858414552 100644
--- a/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
+++ b/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
@@ -39,6 +39,7 @@ $mirrors = {
'https://ctan.yazd.ac.ir/' => 1,
},
'Japan' => {
+ 'http://ring.airnet.ne.jp/archives/text/CTAN/' => 1,
'https://ftp.jaist.ac.jp/pub/CTAN/' => 1,
'https://ftp.kddilabs.jp/CTAN/' => 1,
'https://ftp.yz.yamagata-u.ac.jp/pub/CTAN/' => 1,
@@ -92,7 +93,6 @@ $mirrors = {
'https://texlive.mycozy.space/' => 1,
},
'Germany' => {
- 'ftp://ftp.fu-berlin.de/tex/CTAN/' => 1,
'http://sendinnsky.selfhost.co/tex-archive/' => 1,
'http://vesta.informatik.rwth-aachen.de/ftp/pub/mirror/ctan/' => 1,
'https://ctan.ebinger.cc/tex-archive/' => 1,
@@ -147,6 +147,7 @@ $mirrors = {
'https://mirrors.nxthost.com/ctan/' => 1,
},
'Russia' => {
+ 'https://ctan.altspu.ru/' => 1,
'https://mirror.macomnet.net/pub/CTAN/' => 1,
'https://mirror.truenetwork.ru/CTAN/' => 1,
},
@@ -190,7 +191,6 @@ $mirrors = {
'https://ctan.mirrors.hoobly.com/' => 1,
'https://mirror.las.iastate.edu/tex-archive/' => 1,
'https://mirror.math.princeton.edu/pub/CTAN/' => 1,
- 'https://mirror.mwt.me/ctan/' => 1,
'https://mirrors.mit.edu/CTAN/' => 1,
'https://mirrors.rit.edu/CTAN/' => 1,
'https://us.mirrors.cicku.me/ctan/' => 1,
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb b/systems/texlive/tlnet/tlpkg/texlive.tlpdb
index cd41f43b19..dd3ddddbf4 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/70877
+depend revision/70884
name 00texlive.image
category TLCore
-revision 70877
+revision 70885
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
@@ -4880,7 +4880,7 @@ depend setting_available_architectures:aarch64-linux amd64-freebsd amd64-netbsd
name 00texlive.installer
category TLCore
-revision 70834
+revision 70879
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
@@ -8345,17 +8345,17 @@ catalogue-version 1.9.7
name abntexto
category Package
-revision 68837
+revision 70885
shortdesc LaTeX class for formatting academic papers in ABNT standards
relocated 1
longdesc This is a LaTeX class created for Brazilian students to
longdesc facilitate the use of standards from the Associacao Brasileira
longdesc de Normas Tecnicas (ABNT) in academic works like TCCs,
longdesc dissertations, theses.
-containersize 8164
-containerchecksum 9fb1177d1e97995fa8c7038e38fb827e491c2658af6844f62edb547f281120a9df873a98e509d3e67c577d46472c887ca96ce2e2436f748cba9086c6160f2986
-doccontainersize 203316
-doccontainerchecksum 3d3d58d077f3072e9bfd9bc11e68e17e4885af88864ef80de1010c331c429895c5e03df438d3a0652a8d31623dde5b1cb40daf0a709af6c3a2e90658d13c596c
+containersize 8264
+containerchecksum 6f3b7829a5050de1ae0e4458f471318926b097a8fcdcc19139676349aa6a345b25373a278f98a11169fbdf5435e72ded255857903ed77a83a26342181dc2ea8a
+doccontainersize 203956
+doccontainerchecksum 6038ac2a77969b1c22f126bbc77b49c5a1a89b349cdf209c1ef0d1e3ac5285955217ff1ca619a838fdc4eb145d5fa8a2dda5925e950ae8333c9b0a391d935794
docfiles size=90
RELOC/doc/latex/abntexto/README details="Readme"
RELOC/doc/latex/abntexto/abntexto.bib
@@ -8368,7 +8368,7 @@ runfiles size=7
catalogue-ctan /macros/latex/contrib/abntexto
catalogue-license pd
catalogue-topics class dissertation std-conform portuguese-br
-catalogue-version 3.1.0-beta
+catalogue-version 3.1.1-beta
name aboensis
category Package
@@ -25726,7 +25726,7 @@ catalogue-version 0.1c
name asymptote
category TLCore
-revision 70502
+revision 70885
shortdesc 2D and 3D TeX-Aware Vector Graphics Language
longdesc Asymptote is a powerful descriptive vector graphics language
longdesc for technical drawing, inspired by MetaPost but with an
@@ -25734,10 +25734,10 @@ longdesc improved C++-like syntax. Asymptote provides for figures the
longdesc same high-quality level of typesetting that LaTeX does for
longdesc scientific text.
depend asymptote.ARCH
-containersize 380428
-containerchecksum 099ce81cfa03a825838c7f5c185a543b28a4574b33377dfe6c50200a5cd1d0ef16fad38d2f235c7cab972d7e9c274a93edefd73b0f3f7676006ce0bbaa131a80
-doccontainersize 2345048
-doccontainerchecksum 8ce030a455a07bcb2cf4d46aa8462f38d47e99588d6b03d11a60badc121dbf7d4c8d6933ebd27c7267cc325edb45d9df9049396668cbc862b152a394666c8174
+containersize 380420
+containerchecksum bb4ca6dca3760f91463dc4cb3bd3793e93fe438388e16798e7e65a75c75f284c10057e8c175af8a2a32d5783b21abb9cf029428ea672f6a484c25121a84d0755
+doccontainersize 2345040
+doccontainerchecksum 2e27622f9b93e75245a8201c3525fda773d0954aa12103963e7853bc978f043445ed37042d6961ff974dafb86e7c71d94d298932295a74428d673c3b67842e6f
docfiles size=1308
texmf-dist/doc/asymptote/CAD.pdf details="Using Asymptote for 2D CAD"
texmf-dist/doc/asymptote/TeXShopAndAsymptote.pdf
@@ -26279,7 +26279,7 @@ catalogue-contact-repository https://github.com/vectorgraphics/asymptote
catalogue-ctan /graphics/asymptote
catalogue-license lgpl3
catalogue-topics graphics graphics-engn
-catalogue-version 2.88
+catalogue-version 2.89
name asymptote-by-example-zh-cn
category Package
@@ -131883,15 +131883,15 @@ catalogue-version 0.7.3
name fontscale
category Package
-revision 70831
+revision 70885
shortdesc A flexible interface for setting font sizes
relocated 1
longdesc This package provides an interface for selecting (arbitrary)
longdesc font sizes and associated values.
-containersize 6540
-containerchecksum 3d03308e852418fa513f766a4ab23071c035eb19b33596f0b6fee74a133ba720b1918b1a712d08fb63b936035dcc0ff5ce3d97ef2d0d869cae71ec7a1acb90a2
-doccontainersize 135232
-doccontainerchecksum ed9fb55cc77df889c524a13b815a9436d4dce36c713733dc16deb9f6526c39e65f1241fa5dd7fc327bcf3948282ee545efdd9af3406745f703d3a5e40768dc07
+containersize 6580
+containerchecksum 50e1f8016c5d9b35bf201ede8256a7068892951a67bcf5de6d3dc30f161178f92b97c96f4d2554445b9bdcf61feff7cd24e02c4a2bfc255440382d6d8250e8c9
+doccontainersize 135304
+doccontainerchecksum 5089a6816eb2ff0b0c801e032f2ab1f5077f7681d9966896ceb08f98f309fe9d7c5551e49b64dc35c4958b6a6b218ca0cf4cca983f31d9c25040df3e24441c60
docfiles size=44
RELOC/doc/latex/fontscale/README.txt details="Readme"
RELOC/doc/latex/fontscale/beery.cls
@@ -131907,7 +131907,7 @@ catalogue-contact-repository https://github.com/beeryoliver/fontscale
catalogue-ctan /macros/latex/contrib/fontscale
catalogue-license lppl1.3c
catalogue-topics expl3 font-sel
-catalogue-version 1.1.0
+catalogue-version 1.1.1
name fontsetup
category Package
@@ -132389,7 +132389,7 @@ catalogue-version 2.0.7
name footmisc
category Package
-revision 69890
+revision 70885
shortdesc A range of footnote options
relocated 1
longdesc A collection of ways to change the typesetting of footnotes.
@@ -132407,10 +132407,10 @@ longdesc packages, though those are both also portmanteau packages.
longdesc (Don't be seduced by fnpara, whose implementation is improved
longdesc by the present package.) The perpage option is also offered by
longdesc footnpag and by the rather more general-purpose perpage
-containersize 7688
-containerchecksum 605a5492200c6988794ae1ab4a2d683a77b017359256dee549052b99682a3c48b6b52cabad8a62443e2123f67dd51f0ceedbfca8dde664c2974361d7ae9622f0
-doccontainersize 514744
-doccontainerchecksum b547237bf9d48a5796a650c2c83ba71f17e93e5689769e7e6d1b7d5b91f082cc928a4c327d05755883c772eb20e19f91e4e87501fa3dc0a3bdc82167c4c211cd
+containersize 7692
+containerchecksum 209f43ddebaa6266ac6cc65a9dc6d0bd78f3be76955151e3417e94c6ab90edd94f2974609e83d232be85c0beb04456c3a350ce0412f6b779cfd1de24c40bd410
+doccontainersize 514740
+doccontainerchecksum 0c0bb9a04199aa1297b5de402ff773c4e928dcf541eb60516853de1193dc4f96c6d2bf096262cd6f300c72a742f20ba70179fc75c1edab36d9697be742cec751
docfiles size=156
RELOC/doc/latex/footmisc/README.md details="Readme"
RELOC/doc/latex/footmisc/changes.txt
@@ -132419,14 +132419,14 @@ docfiles size=156
RELOC/doc/latex/footmisc/footmisc-doc.pdf details="Package documentation"
RELOC/doc/latex/footmisc/footmisc-doc.tex
srccontainersize 22408
-srccontainerchecksum 04aefe5e4c5ab1bdcc6f282dea6a9ca97d3f543e7607244e0dae042fe1de51ecfcd2f662d7def9b761e77ac274622059ab975082f96b9daf8d62f508cc151477
+srccontainerchecksum 4ffc61f4ca836ae1857f1f308770ce3cc8125f8523c965114913016fa3e90e4d29fbd3bb9b10ebbe47471d410a454c8849f126760472f4473ba0bb9faf63a6c9
srcfiles size=22
RELOC/source/latex/footmisc/footmisc.dtx
RELOC/source/latex/footmisc/footmisc.ins
runfiles size=13
RELOC/tex/latex/footmisc/footmisc-2011-06-06.sty
RELOC/tex/latex/footmisc/footmisc.sty
-catalogue-also endnotes ftnright footmisx
+catalogue-also endnotes ftnright footmisx multifootnote
catalogue-contact-repository https://github.com/frankmittelbach/fmitex-footmisc
catalogue-ctan /macros/latex/contrib/footmisc
catalogue-license lppl1.3c
@@ -146699,7 +146699,7 @@ catalogue-version 0.01
name hershey-mp
category Package
-revision 64878
+revision 70885
shortdesc MetaPost support for the Hershey font file format
relocated 1
longdesc This package provides MetaPost support for reading jhf vector
@@ -146708,9 +146708,9 @@ longdesc of the late 1960s. The package does not include the actual font
longdesc files, which you can probably find in the software repository
longdesc of your operating system.
containersize 1684
-containerchecksum 8759bfc2237fc1954e3ea3a47355cd42c48479ce01d959cf0b072ffba4f26068e99f32737bf8669a509f53085b8d8e5c5b0b02f9a7fa6ba73a38bc996539d902
+containerchecksum a660377614522f159698d0577ec2fbb210e639787ed2267530d40e45c12f72f188f1e5000c7bd7865a7d1cb74627b5dcdcb8a44c3b17a1c7ff62b0c9ce0e430f
doccontainersize 273748
-doccontainerchecksum d869c70b0919380ae4d88d9cded20baf9a8cce0946550d1a3b80056f80bcf2eaa7fbffbe16a3101c2a04fda512ff1b9160786c05c279a78732e1909782cb2b23
+doccontainerchecksum 89b0baa7ffa7fb3c3b0b7ef000cbb4e2656dff839c846dda575e262f5ce7c4e62b9f737c9dc8c2e7b1c788e439c4b524f2ab7fb4e3685157a4aa8f3044b21413
docfiles size=77
RELOC/doc/metapost/hershey-mp/LICENSE
RELOC/doc/metapost/hershey-mp/README details="Readme"
@@ -146720,7 +146720,7 @@ runfiles size=1
RELOC/metapost/hershey-mp/hershey.mp
catalogue-contact-repository https://gitlab.com/renkema/hershey
catalogue-ctan /graphics/metapost/contrib/macros/hershey-mp
-catalogue-license other-free
+catalogue-license eupl
catalogue-topics mp-supp mp-use
catalogue-version 2022/1.0
@@ -149402,7 +149402,7 @@ catalogue-version 0.1
name hulipsum
category Package
-revision 56848
+revision 70885
shortdesc Hungarian dummy text (Lorum ipse)
relocated 1
longdesc Lorem ipsum is an improper Latin filler dummy text, cf. the
@@ -149414,16 +149414,16 @@ longdesc this package you can typeset 150 paragraphs of Lorum ipse. All
longdesc paragraphs are taken with permission from
longdesc http://www.lorumipse.hu. Thanks to Lorum Ipse Lab (Viktor Nagy
longdesc and David Takacs) for their work.
-containersize 55344
-containerchecksum 32e981937f3077fb1310205f17bd10c93ae20c98e098f766b0a90218d81c7708071aa4ca605bfc55da1614116cbd8299f9cf1853426dae04a99669839b2d5c83
-doccontainersize 146568
-doccontainerchecksum 862a91b902cc8bb0d71efe3933bd0a1b0f3aba1023586595d57cd45e15a0b961cc3c56a59315eee02337f89d35582497dd6894bf3ead060d2863823765211e1f
-docfiles size=37
+containersize 55636
+containerchecksum d31b1f9fca308f916df8590899afc53fe187f140359494816258c34c3af068dd62c60052a464552836cd373a1f74f50258127168178ac8d28d9012a38329a5a6
+doccontainersize 154600
+doccontainerchecksum c04d7552c8725340b1865267f01be840c31a77797e456dab6d0c813d5f35c143b777f54d1f621ecbf7617dc2383cf9e2a36b7b4ccfa84c472280588855df0f02
+docfiles size=40
RELOC/doc/latex/hulipsum/README details="Readme"
RELOC/doc/latex/hulipsum/hulipsum.pdf details="Package documentation"
-srccontainersize 56600
-srccontainerchecksum 6de61158c97297d4c76691f6aa2686d8ff88317de0dcc951a23e6aa93c63a4fecfdcabb74629e2e12ed7878a8a74987834f36faeae3c5fd661bacf99aa7f7962
-srcfiles size=44
+srccontainersize 57044
+srccontainerchecksum be8ce8dc5464732cc811d2d3a80892d5a0981875d4a6b270e1ea5cdb4edbc3782941f5a8cfd199d0a1c197143f96ae650575d98c2e0416323b7e74ea362c298b
+srcfiles size=45
RELOC/source/latex/hulipsum/hulipsum.dtx
RELOC/source/latex/hulipsum/hulipsum.ins
runfiles size=42
@@ -149431,7 +149431,7 @@ runfiles size=42
catalogue-ctan /macros/latex/contrib/hulipsum
catalogue-license lppl1.3
catalogue-topics dummy-gen macro-supp hungarian
-catalogue-version 1.1
+catalogue-version 1.2
name hustthesis
category Package
@@ -217825,7 +217825,7 @@ catalogue-version 0.96
name minim
category Package
-revision 70848
+revision 70885
shortdesc A modern plain format for the LuaTeX engine
relocated 1
longdesc This is a modern plain format for the LuaTeX engine, adding
@@ -217840,9 +217840,9 @@ longdesc for XMP (metadata) inclusion This package contains only their
longdesc shared lowest-level programming interface, along with their
longdesc combined format.
containersize 25344
-containerchecksum d5a077c74dfa7e408395969fcaefec4ba02c027f4b17ad960814a5d9683a8290872d149ab74217ed48490238330fd8910dd08868ba68d3097c8d1e1f0806ec29
+containerchecksum 788e48d9d623eee403c8ac4b0264360751b874fb10b87e39536571bd46d5bf5a9a2ee71d86022fb760daf6bfd0d1b2b1b34006994c6346a24b7989c351cac60e
doccontainersize 375300
-doccontainerchecksum 77eb9c0999427dcf58889033707bdec7d3d15996d53a15c1d8f354922f59102e0964954c6cc1eab7a4ed5d4f95c5eb924192612de4454a7998ca75b2e7badf6b
+doccontainerchecksum 6c34a4e1485da74ad33ac0d85d6faf485f5d3070934e5e4b816a5f4e0be49efac37d6994e4fbfc8bb24efc135640639e0d1d46ce615bb7453fbe70ecfd4ac833
docfiles size=107
RELOC/doc/luatex/minim/EUPL-1.2-EN.txt
RELOC/doc/luatex/minim/README details="Readme"
@@ -217866,21 +217866,21 @@ runfiles size=30
catalogue-also optex
catalogue-contact-repository https://gitlab.com/renkema/minim
catalogue-ctan /macros/luatex/generic/minim
-catalogue-license other-free
+catalogue-license eupl
catalogue-topics luatex format
catalogue-version 2024/1.6
name minim-hatching
category Package
-revision 62395
+revision 70885
shortdesc Create tiling patterns with the minim-mp MetaPost processor
relocated 1
longdesc This is a small proof-of-concept library of tiling patterns for
longdesc use with the minim-mp MetaPost processor.
containersize 2232
-containerchecksum 3d6720c4bbce847f1ca08279593398d162c80c14034ba6b8d168517ab30af883ce4fcc6cb0cea4dac0b0720be8fb8f67ddd131a026ed6ca5ea46182af1c41110
-doccontainersize 26048
-doccontainerchecksum 895a0b7731af0ea67e581ff4cc0208aca12d04ca862a15bc897d6e104a1bd9d7ef27f3a8c2a24c8533f16d0ceae1eab05a3dd923ae829529a223ba76d94485c1
+containerchecksum b487908c102e43777884e2414bf5ebd60bdebb5431481a312d26b6ed37d0e714fa16ffdbd6663fabddb366affab8070695182cd5ea74bb08c685669bbb24cb42
+doccontainersize 26052
+doccontainerchecksum bf3c5449c2fedf3c7737a07ac55b4655d2e8ffc20e1ea7d9c8e1c83d49d0d292db9a8e8bd11a171d61e0bd351fcfbb59aaee20d1ac1df1ba80f8cd955bb9e2d5
docfiles size=19
RELOC/doc/latex/minim-hatching/EUPL-1.2-EN.txt
RELOC/doc/latex/minim-hatching/README details="Readme"
@@ -217891,13 +217891,13 @@ runfiles size=2
catalogue-also minim hatching
catalogue-contact-repository https://gitlab.com/renkema/minim
catalogue-ctan /graphics/minim-hatching
-catalogue-license other-free
+catalogue-license eupl
catalogue-topics luatex graphics-subpic
catalogue-version 2022/1.1
name minim-math
category Package
-revision 69352
+revision 70885
shortdesc Extensive maths for LuaTeX
relocated 1
longdesc This package provides a simple and highly configurable way to
@@ -217906,9 +217906,9 @@ longdesc advantage of most of the engine's new capabilities in
longdesc mathematical typesetting. Also included are the proper settings
longdesc and definitions for almost all Unicode mathematical characters.
containersize 34080
-containerchecksum b733b6fb53b450bcb4afd2265f65e64b6087d08d385a746ea78720efedc4d1aa14bf6fba21fcfdbef7a331d1c657674caace33f9a213d34d0b56604a4d0067ff
-doccontainersize 100224
-doccontainerchecksum d3754968215fdee2a31db13934c22a06998f93a11b80ba46e30231176e1583a8df86dcc8ed91b582a8b6f1427d9bf121f0f43cf297edb3e4a79250b9d703cb76
+containerchecksum 7ccce42629a3d8782b46f72b1e851a229145453dd407d7379da40b72d3f1446729759c6329fb794c5f1084f19670f90684135b5d3444300d0cc1ccb9027b8cfc
+doccontainersize 100228
+doccontainerchecksum 65dc0ba7588e9a861a2fb41986c34e90b79abcf258e54d4aa2fe96b4d9232c41fede6ad9c5bde184b304a47f9b8af250269aa77f0ea781cb3f1f3f069e01498e
docfiles size=37
RELOC/doc/luatex/minim-math/EUPL-1.2-EN.txt
RELOC/doc/luatex/minim-math/README details="Readme"
@@ -217921,13 +217921,13 @@ runfiles size=93
catalogue-also minim
catalogue-contact-repository https://gitlab.com/renkema/minim
catalogue-ctan /macros/luatex/generic/minim-math
-catalogue-license other-free
+catalogue-license eupl
catalogue-topics luatex maths
catalogue-version 2024/1.4
name minim-mp
category Package
-revision 70847
+revision 70885
shortdesc Low-level mplib integration for LuaTeX
relocated 1
longdesc This package offers low-level mplib integration for LuaLaTeX
@@ -217938,9 +217938,9 @@ longdesc MetaPost. With the included minim-mp and minim-lamp format
longdesc files, you can even use Lua(La)TeX as a stand-alone MetaPost
longdesc compiler.
containersize 22564
-containerchecksum bd27a4a5e30b4d8df9959527aeb8986537dfd23c019c0bcb69c6b4af3c1354c225a93900dff1aee9313f8921375ece02676eef961e6f3b1ac94277b7e6966f86
+containerchecksum e639e207dd67b167955116f320ae6699f4cd73c00ab897531945a3b8526b4e670ea6121a98f5f7db0d32de6a19e7544b2fae1182d068b2e6dd527333c31dea35
doccontainersize 131668
-doccontainerchecksum 6379de6d4c1569aa0d4aeec99f69a4ddb84c16da8ce8f23c8a5ba43d5d60cd0a20ed1bfeb06357757c436aa6e5713c31ba47fa8623723ea8e4383bacaef4eb57
+doccontainerchecksum ed17a8df340984427d6781923fbc4de6457049d502985dff7b3650a0f7a76ced8466c21116b0498b4372a55c5c05aba92228f2f84cb7ad15e4a8988eed235fb1
docfiles size=45
RELOC/doc/luatex/minim-mp/EUPL-1.2-EN.txt
RELOC/doc/luatex/minim-mp/README details="Readme"
@@ -217958,23 +217958,23 @@ runfiles size=25
catalogue-also minim
catalogue-contact-repository https://gitlab.com/renkema/minim
catalogue-ctan /macros/luatex/generic/minim-mp
-catalogue-license other-free
+catalogue-license eupl
catalogue-topics luatex mp-supp mp-use
catalogue-version 2024/1.6
name minim-pdf
category Package
-revision 70311
+revision 70885
shortdesc Low-level PDF integration for LuaTeX
relocated 1
longdesc This package adds low-level support to plain LuaTeX for marking
longdesc up the structure of a PDF document. The implementation is
longdesc rather basic, but should allow you to make your PDFs fully
longdesc PDF/A-compliant.
-containersize 17504
-containerchecksum b949ae0e2e126843b626d2cdbc41cf6746d5ff646f37136a9d8a28b3374c8a246a10c419b8c4c6d782fe74d4070c1d20ba0405d28ee800bc747075ca0b9dc5bb
-doccontainersize 142708
-doccontainerchecksum 7f8a8ae00f24e494d5c0ca291b29bec7c124104a785fba807b89a833219362f9c8d6098005a079fb126a691b1c3ccd15cc5a9f3a9bd532f2678da22b73eddaaf
+containersize 17496
+containerchecksum 3208ca24379653b0df7bce800bd90b1fe14b33241f73d56227a5d7f1fd01620871910434a465b62453a647a9b5c207cce8b0c472b4bc9327b7e5138d5e2b9694
+doccontainersize 142704
+doccontainerchecksum 757fa04d352e060533c1e10aa6b67e344bfb836c71dfd02a32d2ccbbb3f80e248b228cc24fff48d55b553baff5002d8d54f2e153e12c8ba11c4a42fff2a4ee6f
docfiles size=49
RELOC/doc/luatex/minim-pdf/EUPL-1.2-EN.txt
RELOC/doc/luatex/minim-pdf/README details="Readme"
@@ -217987,22 +217987,22 @@ runfiles size=20
catalogue-also minim
catalogue-contact-repository https://gitlab.com/renkema/minim
catalogue-ctan /macros/luatex/generic/minim-pdf
-catalogue-license other-free
+catalogue-license eupl
catalogue-topics luatex tagged-pdf pdf-feat
catalogue-version 2024/1.5
name minim-xmp
category Package
-revision 69352
+revision 70885
shortdesc Embed XMP metadata in PDF with LuaTeX
relocated 1
longdesc This package enables the inclusion of XMP (eXtensible Metadata
longdesc Platform) data in the pdf output generated by (plain) LuaTeX.
longdesc The use of XMP is required by PDF standards such as PDF/A.
containersize 6392
-containerchecksum 4df50df08721b8c6cbc2314a36f08776766164c57fffa387d4804afae2fc1f35deb386f2c01e81da8a18b535c7103b7e07ffc51b37d4c621d8c5ac5248f4d960
-doccontainersize 61960
-doccontainerchecksum a6c524225e0e9c5ffe620950474ea7f0f16780d555e354a14885d81066228d350a14399a78cda455677fd116e752f3637e73ff3e9aa342ff4036363805d736cf
+containerchecksum 439c8b7434a7fb3125459c6ebec420715eb20b14bfd025673b3646c67b838b6afbe688795130b81001203900f413f3b2a1987e08ef105dea7763e2156becc1ae
+doccontainersize 61964
+doccontainerchecksum 3347cba4822fa23b7d167c9232a13f24d98cd563198f6e1b0ea472636b874f8fb87b00f92fbeee767015541bbeb9e2fd8f3019aa3cb01662e7cf3ac8ab2e141b
docfiles size=26
RELOC/doc/luatex/minim-xmp/EUPL-1.2-EN.txt
RELOC/doc/luatex/minim-xmp/README details="Readme"
@@ -218014,7 +218014,7 @@ runfiles size=7
catalogue-also minim hyperxmp
catalogue-contact-repository https://gitlab.com/renkema/minim
catalogue-ctan /macros/luatex/generic/minim-xmp
-catalogue-license other-free
+catalogue-license eupl
catalogue-topics luatex pdf-feat
catalogue-version 2024/1.3
@@ -221849,23 +221849,23 @@ catalogue-version 1.0
name moloch
category Package
-revision 70491
+revision 70885
shortdesc Beamer based on Metropolis theme
relocated 1
longdesc Moloch is a fork of the Metropolis Theme which fixes some
longdesc outstanding issues of this theme.
containersize 3988
-containerchecksum 17b208616adf028c42494980b5f3acc58e2161085d7be4a1ffc264c4b1fd754c69f9744411eae2ccc860dca6fe6924b828ce82b5e248a18b109aa203f608f448
-doccontainersize 283416
-doccontainerchecksum 50ebadfc70f61947f169d8e8e7b60c53be174525bb76f14b727528d066c41069d9e36016aeb60729c20870d2a8e936ffc2afd011e6ca9ff75442e66ae8776970
+containerchecksum c7d79db997d9aa1fd72d4103cddd800bdb3fad18792677a0b000efc9fd6dafe6c657c180429c198b5e2f23b9380759a9bbf04edb8350fac1c84523745dac3a7f
+doccontainersize 283412
+doccontainerchecksum f324f22978d6f2d61b1c84ed71bdf6e4ce5cfe6fa57675dc190ba030dc61ad282a43ff6ca717d85ef6201e17fff289e38f4fc574aaa18ea5bb53d2fb1981500c
docfiles size=80
RELOC/doc/latex/moloch/CHANGELOG.md
RELOC/doc/latex/moloch/LICENSE
RELOC/doc/latex/moloch/README.md details="Readme"
RELOC/doc/latex/moloch/moloch.pdf details="Package documentation"
RELOC/doc/latex/moloch/moloch.tex
-srccontainersize 7248
-srccontainerchecksum ac4cd0a972bf6568d0b0b9a2f2f3a36f958d2ee34b5dc731f4e1bf24ea2ea9b785fe46d73c15502278f92cfafb4b0caed50a32df171f96731ccdd20d851b73ae
+srccontainersize 7240
+srccontainerchecksum 1ca7a439f9c96f9c235a1524439a72b6eb5cd395b11374db90618e82e749e4bc2479ac855bb9f71f249e4b366e2e6fd39812a94268fde28bb1a45f50d5b6575a
srcfiles size=11
RELOC/source/latex/moloch/beamercolorthememoloch.dtx
RELOC/source/latex/moloch/beamerfontthememoloch.dtx
@@ -221879,6 +221879,7 @@ runfiles size=8
RELOC/tex/latex/moloch/beamerinnerthememoloch.sty
RELOC/tex/latex/moloch/beamerouterthememoloch.sty
RELOC/tex/latex/moloch/beamerthememoloch.sty
+catalogue-also beamertheme-metropolis
catalogue-contact-repository https://github.com/jolars/moloch
catalogue-contact-support https://github.com/jolars/moloch/discussions
catalogue-ctan /macros/latex/contrib/beamer-contrib/themes/moloch
@@ -280851,23 +280852,23 @@ catalogue-version 1.3b
name rectopma
category Package
-revision 70860
+revision 70885
shortdesc Recycle top matter
relocated 1
longdesc Saves the arguments of \author and \title for reference (after
longdesc \maketitle) in a document. (\maketitle simply disposes of the
longdesc information, in the standard classes and some others.)
-containersize 996
-containerchecksum f316a1c6091cab542bf334c473bc1ec446bef6d8371300434f2bc1e7f64752fa6be3ab2671c8de1ac384d071ea4ce48f35231535d7ffa4fdb567708506a7ffa1
+containersize 1000
+containerchecksum 607e25c32a6347a85c1a32c09f70187b1b69ff22e39c729feb9d8e7b8a3845d7deda59ad1ffd793c3b6f9f2c7e82d409c00e0999a9345c0ff03270c2ca39c084
doccontainersize 230780
-doccontainerchecksum 3c5f756f613913a41562319ed731c03a6c632684a6209c2c8bfb5a653a3fb34078da3e6788c2af8cb32d55ad0595aced0a4d5a44ed8c9bc492b71c189727b2e7
+doccontainerchecksum aab651b61b3f74ac522b63016202615a2c95c3865ff19784100dd1198d48c2c9cbcb553cc080b92a98427b9e02abc3316f1aedca449018e289375216183de98a
docfiles size=62
- RELOC/doc/latex/rectopma/README.txt
- RELOC/doc/latex/rectopma/TestTitle.pdf details="Package documentation (and usage example)"
+ RELOC/doc/latex/rectopma/README.txt details="Readme"
+ RELOC/doc/latex/rectopma/TestTitle.pdf details="Example of use"
RELOC/doc/latex/rectopma/TestTitle.tex
- RELOC/doc/latex/rectopma/rectopma.pdf
+ RELOC/doc/latex/rectopma/rectopma.pdf details="Package documentation"
srccontainersize 2536
-srccontainerchecksum 706a94f70968dbaaa96613420f02f3e03368f892f0ceec8232353201695a247111b174ef8ea8310a35cd91d71796e5cb5543a4390a35a320b5fcd45a77469b93
+srccontainerchecksum d79b1873905e79e903281a7071839564e626743ea0d913e2fd7a696d2803ce854a50cfd66ae668a0f56644be9ef61d660d68ce87a8c2235f45ca05bd6d7a0c25
srcfiles size=2
RELOC/source/latex/rectopma/rectopma.dtx
runfiles size=1
@@ -326148,7 +326149,7 @@ docfiles size=376
name texlive-scripts
category TLCore
-revision 70863
+revision 70879
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.
@@ -326157,9 +326158,9 @@ depend texlive.infra
execute addMap mathpple.map
postaction shortcut type=menu name="TeX Live command-line" cmd=TEXDIR/tlpkg/installer/tl-cmd.bat
containersize 114204
-containerchecksum 7c1db42f4a986acef016397d7e88950cbfc36f951d304daae2f2dea77aa9e628b89518d78ba17318e1428fca6c143b4f1084fb4e5ca51a7c01721777be27970a
+containerchecksum 7cd5cbee357b8111c08e3ce3233a7318fec2dfac4e3037b7d450806c69b95f4f7d9720b7e91712a3c4b6e415961ba64b1408a6948abe28a573866aa103992e1a
doccontainersize 434544
-doccontainerchecksum 1ceec79f7fef43253c304e14338a1f3b9ed0a029e6e6af06189806ca2dd3b99d618a5479474fb0a32a39a1fed86435e211e125b9ce3494fb67533c3b5e9b627a
+doccontainerchecksum d10e26c712daa7d084a1c3fc21181e9c47114cdbeec46078a7f028a186460c3b16f26d733432d07329bd31284a30300cc8efc122d6596b93e00622f08a90b91a
docfiles size=567
doc.html
texmf-dist/doc/man/man1/fmtutil-sys.1
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5 b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
index 29cd75466a..aedf3e4a87 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
@@ -1 +1 @@
-35d679087a94b6123e9b8b877e94c99a texlive.tlpdb
+5240836c8f3dd51e90b106ee13dba7ca texlive.tlpdb
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512 b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
index cb8563f2fd..2c3548b8de 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
@@ -1 +1 @@
-70113fb6f91d6aaa38dc2927e9a7e9c806f5c9e8517c96a5bf8e50d319b74bc8432bf5901887af55b279c553bbcf4c2fb068fbd125a1b3f51a163c6e4224e51d texlive.tlpdb
+5416cc8066cd90d8a5c743fa88849447091cc2bead65582c4c8ae3777b96e02cd18192a9198069b9a0afd07ae987c2144dc801077a4a1be0b8c92226ccaa7852 texlive.tlpdb
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
index fe96358744..92172cba24 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+QqiBBqTOGHfhlDjHAFAmYR4BoACgkQTOGHfhlD
-jHAh5wf/beHfp/wKCz8p5BxPtib0EFGHO180vUH9xm3BV4ySaxAxGkQe9fGWa2w/
-oJ6vn3mjujjBGDNCHZ/b7toNpW7XsyicTJ4LLkPnEf8EFJEoSF8daBZM5Nbk+jih
-kJlb1DImOBszBpjJGJg1HzYFM6SguWjPk5W9cXSCJzYYb4HY2MN369NvRPLF073B
-RYYgcmkK7mmWZIVi4eodp1JLjaGyMenwSFju3mmOkDv4pbPolucX7GdJbo57QIOu
-KkK0I3hljl3vPeWIsVn3iU7YiJwpx9qmc8pmok0Xu5Ew4pJSnrEfFlRb9kVqgduw
-EXVhNHTbWgh1S5jiDdmv/byc1pMQwA==
-=OZB4
+iQEzBAEBCgAdFiEE2PL4YFeoV+QqiBBqTOGHfhlDjHAFAmYTMHMACgkQTOGHfhlD
+jHClSgf9Htn/YXnk+OeK8Za2P3ZTiEPwJA4mleFLjrftHXsFajiwnr2Uzj+44sHU
+ol+kmLBwrbDUP9ea8kaWldZGka9XaADVSdBfvmwAzjDA7lnoa3e3d/XGO0F1mSNR
+vLJmpUpdDZNHLfIEBxGvSY+IT/g4BprlZd8pXLREEBL1hXw1LukSYrYfSZLnR6Fs
+NRJkfvv/u9z9+Zd6+AMiHtStvb/e4s6r9ymME82ckUIPL77CHFnLJMiQgEva1HPH
+i/9IvMFvtGMQdr6CbL2X9dBd1RXbubc0ivMYsqmaw/KxSCcN75usbHiWadVXBZeH
+6xW34Mvtvry3/JwiqBzKiW+44Z2GFA==
+=hPxl
-----END PGP SIGNATURE-----
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
index 8de6a815c1..d9a66b7d00 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 5eca787f2c..3ed07bee47 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-04-07-02-02
+2024-04-08-02-02