From b153d9b098596910fb2be9311f13c4415233c2a2 Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Sun, 4 Dec 2022 03:01:36 +0000 Subject: CTAN sync 202212040301 --- FILES.byname | 860 +++++++++++---------- FILES.byname.gz | Bin 2483843 -> 2484003 bytes FILES.last07days | 454 +++++++++-- biblio/ctan-bibdata/ctan.bib | 36 +- biblio/ctan-bibdata/ctan.pdf | Bin 3624853 -> 3626862 bytes macros/latex-dev/base/README.md | 2 +- macros/latex-dev/base/alltt.pdf | Bin 223831 -> 223831 bytes macros/latex-dev/base/cfgguide.pdf | Bin 264112 -> 264112 bytes macros/latex-dev/base/changes.txt | 77 +- macros/latex-dev/base/classes.pdf | Bin 560611 -> 560326 bytes macros/latex-dev/base/clsguide.pdf | Bin 414419 -> 414419 bytes macros/latex-dev/base/cmfonts.pdf | Bin 292160 -> 292160 bytes macros/latex-dev/base/cyrguide.pdf | Bin 257314 -> 257314 bytes macros/latex-dev/base/doc-code.pdf | Bin 1077527 -> 1075110 bytes macros/latex-dev/base/doc.dtx | 244 +++--- macros/latex-dev/base/doc.pdf | Bin 755064 -> 755547 bytes macros/latex-dev/base/docstrip.pdf | Bin 504553 -> 504178 bytes macros/latex-dev/base/encguide.pdf | Bin 1318126 -> 1318126 bytes macros/latex-dev/base/exscale.pdf | Bin 204711 -> 204711 bytes macros/latex-dev/base/fix-cm.pdf | Bin 287733 -> 287733 bytes macros/latex-dev/base/fntguide.pdf | Bin 517838 -> 517838 bytes macros/latex-dev/base/graphpap.pdf | Bin 161713 -> 161713 bytes macros/latex-dev/base/ifthen.pdf | Bin 221211 -> 221211 bytes macros/latex-dev/base/inputenc.pdf | Bin 318204 -> 318204 bytes macros/latex-dev/base/lamport-manual.pdf | Bin 170878 -> 170878 bytes macros/latex-dev/base/latexrelease.dtx | 11 +- macros/latex-dev/base/latexrelease.pdf | Bin 281906 -> 282115 bytes macros/latex-dev/base/latexsym.pdf | Bin 200760 -> 200760 bytes macros/latex-dev/base/lb2.pdf | Bin 252140 -> 252140 bytes macros/latex-dev/base/letter.pdf | Bin 337630 -> 337430 bytes macros/latex-dev/base/lgc2.pdf | Bin 215684 -> 215684 bytes macros/latex-dev/base/lppl.pdf | Bin 132382 -> 132382 bytes macros/latex-dev/base/ltclass.dtx | 23 +- macros/latex-dev/base/ltcmd.dtx | 46 +- macros/latex-dev/base/ltcmdhooks-code.pdf | Bin 719104 -> 719408 bytes macros/latex-dev/base/ltcmdhooks-doc.pdf | Bin 478606 -> 478686 bytes macros/latex-dev/base/ltdefns.dtx | 226 +++++- macros/latex-dev/base/ltfilehook-code.pdf | Bin 803024 -> 803060 bytes macros/latex-dev/base/ltfilehook-doc.pdf | Bin 547895 -> 547926 bytes macros/latex-dev/base/ltfinal.dtx | 34 +- macros/latex-dev/base/lthooks-code.pdf | Bin 1091409 -> 1091429 bytes macros/latex-dev/base/lthooks-doc.pdf | Bin 701468 -> 701473 bytes macros/latex-dev/base/ltluatex.pdf | Bin 325457 -> 324910 bytes macros/latex-dev/base/ltmarks-code.pdf | Bin 715524 -> 715658 bytes macros/latex-dev/base/ltmarks-doc.pdf | Bin 585896 -> 586024 bytes macros/latex-dev/base/ltmiscen.dtx | 10 +- macros/latex-dev/base/ltnews.pdf | Bin 1243036 -> 1255282 bytes macros/latex-dev/base/ltnews.tex | 2 +- macros/latex-dev/base/ltnews01.pdf | Bin 161518 -> 161518 bytes macros/latex-dev/base/ltnews02.pdf | Bin 159792 -> 159792 bytes macros/latex-dev/base/ltnews03.pdf | Bin 159332 -> 159332 bytes macros/latex-dev/base/ltnews04.pdf | Bin 152525 -> 152525 bytes macros/latex-dev/base/ltnews05.pdf | Bin 174494 -> 174494 bytes macros/latex-dev/base/ltnews06.pdf | Bin 142849 -> 142849 bytes macros/latex-dev/base/ltnews07.pdf | Bin 137811 -> 137811 bytes macros/latex-dev/base/ltnews08.pdf | Bin 155053 -> 155053 bytes macros/latex-dev/base/ltnews09.pdf | Bin 129570 -> 129570 bytes macros/latex-dev/base/ltnews10.pdf | Bin 169416 -> 169416 bytes macros/latex-dev/base/ltnews11.pdf | Bin 111948 -> 111948 bytes macros/latex-dev/base/ltnews12.pdf | Bin 156551 -> 156551 bytes macros/latex-dev/base/ltnews13.pdf | Bin 182225 -> 182225 bytes macros/latex-dev/base/ltnews14.pdf | Bin 170473 -> 170473 bytes macros/latex-dev/base/ltnews15.pdf | Bin 130309 -> 130309 bytes macros/latex-dev/base/ltnews16.pdf | Bin 138073 -> 138073 bytes macros/latex-dev/base/ltnews17.pdf | Bin 166228 -> 166228 bytes macros/latex-dev/base/ltnews18.pdf | Bin 38033 -> 38033 bytes macros/latex-dev/base/ltnews19.pdf | Bin 230028 -> 230028 bytes macros/latex-dev/base/ltnews20.pdf | Bin 318548 -> 318548 bytes macros/latex-dev/base/ltnews21.pdf | Bin 244867 -> 244867 bytes macros/latex-dev/base/ltnews22.pdf | Bin 317773 -> 317773 bytes macros/latex-dev/base/ltnews23.pdf | Bin 286591 -> 286591 bytes macros/latex-dev/base/ltnews24.pdf | Bin 265279 -> 265279 bytes macros/latex-dev/base/ltnews25.pdf | Bin 204935 -> 204935 bytes macros/latex-dev/base/ltnews26.pdf | Bin 379462 -> 379462 bytes macros/latex-dev/base/ltnews27.pdf | Bin 250592 -> 250592 bytes macros/latex-dev/base/ltnews28.pdf | Bin 376643 -> 376643 bytes macros/latex-dev/base/ltnews29.pdf | Bin 455107 -> 455107 bytes macros/latex-dev/base/ltnews30.pdf | Bin 511909 -> 511909 bytes macros/latex-dev/base/ltnews31.pdf | Bin 526323 -> 526323 bytes macros/latex-dev/base/ltnews32.pdf | Bin 546160 -> 546160 bytes macros/latex-dev/base/ltnews33.pdf | Bin 522412 -> 522412 bytes macros/latex-dev/base/ltnews34.pdf | Bin 508044 -> 508044 bytes macros/latex-dev/base/ltnews35.pdf | Bin 563089 -> 563089 bytes macros/latex-dev/base/ltnews36.pdf | Bin 517577 -> 517565 bytes macros/latex-dev/base/ltnews36.tex | 9 +- macros/latex-dev/base/ltnews37.pdf | Bin 0 -> 408962 bytes macros/latex-dev/base/ltnews37.tex | 378 +++++++++ macros/latex-dev/base/ltpara-code.pdf | Bin 667097 -> 667129 bytes macros/latex-dev/base/ltpara-doc.pdf | Bin 559976 -> 560008 bytes macros/latex-dev/base/ltshipout-code.pdf | Bin 818741 -> 820928 bytes macros/latex-dev/base/ltshipout-doc.pdf | Bin 563518 -> 565931 bytes macros/latex-dev/base/ltshipout.dtx | 51 +- macros/latex-dev/base/ltspace.dtx | 16 +- macros/latex-dev/base/ltvers.dtx | 31 +- macros/latex-dev/base/ltx3info.pdf | Bin 219349 -> 219349 bytes macros/latex-dev/base/ltxdoc.dtx | 11 +- macros/latex-dev/base/ltxdoc.pdf | Bin 242645 -> 243286 bytes macros/latex-dev/base/makeindx.pdf | Bin 165821 -> 165821 bytes macros/latex-dev/base/modguide.pdf | Bin 257804 -> 257804 bytes macros/latex-dev/base/nfssfont.pdf | Bin 211180 -> 211180 bytes macros/latex-dev/base/proc.pdf | Bin 227059 -> 227059 bytes macros/latex-dev/base/slides.pdf | Bin 375518 -> 375518 bytes macros/latex-dev/base/slifonts.pdf | Bin 234191 -> 234191 bytes macros/latex-dev/base/source2e.pdf | Bin 5769593 -> 5789493 bytes macros/latex-dev/base/syntonly.pdf | Bin 189704 -> 189819 bytes macros/latex-dev/base/tlc2.pdf | Bin 290615 -> 290615 bytes macros/latex-dev/base/tulm.pdf | Bin 162772 -> 162772 bytes macros/latex-dev/base/usrguide-historic.pdf | Bin 438515 -> 438515 bytes macros/latex-dev/base/usrguide.pdf | Bin 473980 -> 474808 bytes macros/latex-dev/base/usrguide.tex | 25 +- macros/latex-dev/base/utf8ienc.pdf | Bin 353237 -> 353428 bytes macros/latex-dev/base/webcomp.pdf | Bin 146198 -> 146198 bytes macros/latex-dev/required/firstaid/changes.txt | 10 + .../latex2e-first-aid-for-external-files.dtx | 40 +- .../latex2e-first-aid-for-external-files.pdf | Bin 268310 -> 271476 bytes .../biblatex-contrib/biblatex-publist/README | 4 + .../biblatex-publist/biblatex-publist.pdf | Bin 407139 -> 407279 bytes .../biblatex-publist/biblatex-publist.tex | 12 +- .../biblatex-contrib/biblatex-publist/publist.bbx | 61 +- .../biblatex-contrib/biblatex-publist/publist.cbx | 4 +- .../biblatex-contrib/biblatex-publist/publist.dbx | 2 +- macros/latex/contrib/ppt-slides/DEPENDS.txt | 13 +- macros/latex/contrib/ppt-slides/LICENSE.txt | 21 + macros/latex/contrib/ppt-slides/README.md | 9 +- macros/latex/contrib/ppt-slides/ppt-slides.dtx | 662 ++++++++++++++++ macros/latex/contrib/ppt-slides/ppt-slides.ins | 55 ++ macros/latex/contrib/ppt-slides/ppt-slides.pdf | Bin 229579 -> 885857 bytes macros/latex/contrib/ppt-slides/ppt-slides.sty | 227 ------ macros/latex/contrib/ppt-slides/ppt-slides.tex | 262 ------- .../contrib/ppt-slides/ppt-templates/ppt-9x6.tex | 1 + macros/latex/contrib/semantex/semantex.pdf | Bin 397454 -> 397760 bytes macros/latex/contrib/semantex/semantex.sty | 107 ++- macros/latex/contrib/semantex/semantex.tex | 62 +- macros/latex/contrib/semantex/stripsemantex.lua | 620 +++++++-------- macros/latex/contrib/semantex/stripsemantex.sty | 2 +- .../generic/pdfextra/examples/pdfextra-example.pdf | Bin 385350 -> 385337 bytes macros/luatex/generic/pdfextra/pdfextra-doc.pdf | Bin 245952 -> 232911 bytes macros/luatex/generic/pdfextra/pdfextra.opm | 20 +- macros/luatex/generic/pdfextra/pdfextra.tex | 30 +- macros/optex/README | 11 + macros/optex/base/alloc.opm | 5 +- macros/optex/base/basic-macros.opm | 22 +- macros/optex/base/bib-simple.opm | 49 +- macros/optex/base/cite-bib.opm | 2 +- macros/optex/base/doc.opm | 34 +- macros/optex/base/f-heros.opm | 17 +- macros/optex/base/f-iwona.opm | 26 + macros/optex/base/f-kurier.opm | 26 + macros/optex/base/f-lato.opm | 34 + macros/optex/base/fams-ini.opm | 19 +- macros/optex/base/fnotes.opm | 4 +- macros/optex/base/fonts-catalog.opm | 2 +- macros/optex/base/fonts-resize.opm | 72 +- macros/optex/base/fonts-select.opm | 25 +- macros/optex/base/graphics.opm | 12 +- macros/optex/base/hi-syntax.opm | 20 +- macros/optex/base/hyperlinks.opm | 6 +- macros/optex/base/if-macros.opm | 63 +- macros/optex/base/lang-data.opm | 24 +- macros/optex/base/lang-decl.opm | 16 +- macros/optex/base/languages.opm | 7 +- macros/optex/base/makeindex.opm | 6 +- macros/optex/base/math-preload.opm | 63 +- macros/optex/base/math-unicode.opm | 343 -------- macros/optex/base/more-macros.opm | 119 ++- macros/optex/base/multicolumns.opm | 7 +- macros/optex/base/optex.ini | 6 +- macros/optex/base/optex.lua | 107 ++- macros/optex/base/others.opm | 8 +- macros/optex/base/output.opm | 7 +- macros/optex/base/pdfuni-string.opm | 12 +- macros/optex/base/plain-macros.opm | 19 +- macros/optex/base/prefixed.opm | 178 +++-- macros/optex/base/ref-file.opm | 2 +- macros/optex/base/references.opm | 6 +- macros/optex/base/sections.opm | 27 +- macros/optex/base/table.opm | 14 +- macros/optex/base/unimath-codes.opm | 65 +- macros/optex/base/unimath-macros.opm | 404 ++++++++++ macros/optex/base/verbatim.opm | 10 +- macros/optex/doc/mte-doc.tex | 26 - macros/optex/doc/optex-doc.pdf | Bin 1437685 -> 1484007 bytes macros/optex/doc/optex-doc.tex | 2 +- macros/optex/doc/optex-math.tex | 33 +- macros/optex/doc/optex-techdoc.tex | 8 +- macros/optex/doc/optex-userdoc.tex | 32 +- macros/optex/pkg/math.opm | 639 +++++++++++++++ macros/optex/pkg/mte.opm | 32 +- macros/unicodetex/latex/njuthesis/njuthesis.dtx | 586 +++++++------- macros/unicodetex/latex/njuthesis/njuthesis.pdf | Bin 1200264 -> 1176569 bytes macros/xetex/latex/xduts/xduts.dtx | 263 +++++-- macros/xetex/latex/xduts/xduts.pdf | Bin 306469 -> 307600 bytes support/TeX4ht/source/ChangeLog | 6 + support/TeX4ht/source/tex4ht-4ht.tex | 6 +- .../texlive/tlnet/tlpkg/installer/ctan-mirrors.pl | 1 + systems/texlive/tlnet/tlpkg/texlive.tlpdb | 92 +-- systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5 | 2 +- systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512 | 2 +- .../texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc | 14 +- systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz | Bin 2431632 -> 2430876 bytes timestamp | 2 +- 201 files changed, 5691 insertions(+), 2724 deletions(-) create mode 100644 macros/latex-dev/base/ltnews37.pdf create mode 100644 macros/latex-dev/base/ltnews37.tex create mode 100644 macros/latex/contrib/ppt-slides/LICENSE.txt create mode 100644 macros/latex/contrib/ppt-slides/ppt-slides.dtx create mode 100644 macros/latex/contrib/ppt-slides/ppt-slides.ins delete mode 100644 macros/latex/contrib/ppt-slides/ppt-slides.sty delete mode 100644 macros/latex/contrib/ppt-slides/ppt-slides.tex create mode 100644 macros/optex/base/f-iwona.opm create mode 100644 macros/optex/base/f-kurier.opm create mode 100644 macros/optex/base/f-lato.opm delete mode 100644 macros/optex/base/math-unicode.opm create mode 100644 macros/optex/base/unimath-macros.opm delete mode 100644 macros/optex/doc/mte-doc.tex create mode 100644 macros/optex/pkg/math.opm diff --git a/FILES.byname b/FILES.byname index 736867116e..381b5b0363 100644 --- a/FILES.byname +++ b/FILES.byname @@ -2035,12 +2035,12 @@ 2022/09/23 | 1673 | biblio/citation-style-language/README.md 2022/09/23 | 11958 | biblio/citation-style-language/vancouver.csl 2022/09/23 | 591448 | biblio/citation-style-language.zip -2022/12/02 | 1678 | biblio/ctan-bibdata/biblatex-ctan/ctan.bbx +2022/12/03 | 1678 | biblio/ctan-bibdata/biblatex-ctan/ctan.bbx 2022/10/08 | 127 | biblio/ctan-bibdata/biblatex-ctan/ctan.cbx -2022/12/02 | 2747416 | biblio/ctan-bibdata/ctan.bib -2022/12/02 | 3624126 | biblio/ctan-bibdata/ctan.pdf +2022/12/03 | 2747422 | biblio/ctan-bibdata/ctan.bib +2022/12/03 | 3624853 | biblio/ctan-bibdata/ctan.pdf 2022/10/08 | 1415 | biblio/ctan-bibdata/README -2022/12/02 | 4017985 | biblio/ctan-bibdata.zip +2022/12/03 | 4018012 | biblio/ctan-bibdata.zip 2022/02/06 | 3110 | biblio/pbibtex/pbibtex-base/cpp.awk 2022/02/06 | 1009 | biblio/pbibtex/pbibtex-base/generate.sh 2022/02/06 | 22422 | biblio/pbibtex/pbibtex-base/jabbrv.bst @@ -5414,7 +5414,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 -2022/12/02 | 434321 | FILES.last07days +2022/12/03 | 429952 | 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 @@ -190513,9 +190513,9 @@ 2020/04/09 | 806385 | install/macros/latex/contrib/zhlipsum.tds.zip 2022/07/14 | 321454 | install/macros/latex/contrib/zhnumber.tds.zip 2022/05/28 | 1626594 | install/macros/latex/contrib/zref-clever.tds.zip -2022/10/31 | 39023437 | install/macros/latex-dev/latex-base-dev.tds.zip +2022/12/03 | 39466146 | install/macros/latex-dev/latex-base-dev.tds.zip 2022/10/31 | 2795153 | install/macros/latex-dev/required/latex-amsmath-dev.tds.zip -2022/10/31 | 274488 | install/macros/latex-dev/required/latex-firstaid-dev.tds.zip +2022/12/03 | 277960 | install/macros/latex-dev/required/latex-firstaid-dev.tds.zip 2022/10/31 | 3109665 | install/macros/latex-dev/required/latex-graphics-dev.tds.zip 2022/10/31 | 2303239 | install/macros/latex-dev/required/latex-lab-dev.tds.zip 2022/10/31 | 7339002 | install/macros/latex-dev/required/latex-tools-dev.tds.zip @@ -210485,13 +210485,13 @@ 2019/12/03 | 1387 | macros/latex/contrib/biblatex-contrib/biblatex-phys/phys.dbx 2019/12/03 | 655 | macros/latex/contrib/biblatex-contrib/biblatex-phys/README.md 2019/12/03 | 459931 | macros/latex/contrib/biblatex-contrib/biblatex-phys.zip -2022/10/24 | 407139 | macros/latex/contrib/biblatex-contrib/biblatex-publist/biblatex-publist.pdf -2022/10/24 | 60358 | macros/latex/contrib/biblatex-contrib/biblatex-publist/biblatex-publist.tex -2022/10/24 | 63183 | macros/latex/contrib/biblatex-contrib/biblatex-publist/publist.bbx -2022/10/24 | 3478 | macros/latex/contrib/biblatex-contrib/biblatex-publist/publist.cbx -2022/10/24 | 998 | macros/latex/contrib/biblatex-contrib/biblatex-publist/publist.dbx -2022/10/24 | 8724 | macros/latex/contrib/biblatex-contrib/biblatex-publist/README -2022/10/24 | 439729 | macros/latex/contrib/biblatex-contrib/biblatex-publist.zip +2022/12/03 | 407279 | macros/latex/contrib/biblatex-contrib/biblatex-publist/biblatex-publist.pdf +2022/12/03 | 60516 | macros/latex/contrib/biblatex-contrib/biblatex-publist/biblatex-publist.tex +2022/12/03 | 63700 | macros/latex/contrib/biblatex-contrib/biblatex-publist/publist.bbx +2022/12/03 | 3478 | macros/latex/contrib/biblatex-contrib/biblatex-publist/publist.cbx +2022/12/03 | 998 | macros/latex/contrib/biblatex-contrib/biblatex-publist/publist.dbx +2022/12/03 | 8827 | macros/latex/contrib/biblatex-contrib/biblatex-publist/README +2022/12/03 | 439953 | macros/latex/contrib/biblatex-contrib/biblatex-publist.zip 2022/01/09 | 41 | macros/latex/contrib/biblatex-contrib/biblatex-readbbl/Changes 2022/01/09 | 25895 | macros/latex/contrib/biblatex-contrib/biblatex-readbbl/doc/biblatex-readbbl.pdf 2022/01/09 | 5095 | macros/latex/contrib/biblatex-contrib/biblatex-readbbl/doc/biblatex-readbbl.tex @@ -228509,18 +228509,19 @@ 2005/09/04 | 335095 | macros/latex/contrib/ppr-prv/ppr-prv.pdf 2005/09/02 | 4261 | macros/latex/contrib/ppr-prv/README 2005/09/04 | 328544 | macros/latex/contrib/ppr-prv.zip -2022/09/19 | 174 | macros/latex/contrib/ppt-slides/DEPENDS.txt -2022/09/19 | 1420 | macros/latex/contrib/ppt-slides/ppt-schemes/ppt-dark-mono.tex -2022/09/19 | 1420 | macros/latex/contrib/ppt-slides/ppt-schemes/ppt-dark.tex -2022/09/19 | 1420 | macros/latex/contrib/ppt-slides/ppt-schemes/ppt-light-mono.tex -2022/09/19 | 1420 | macros/latex/contrib/ppt-slides/ppt-schemes/ppt-light.tex -2022/09/19 | 229579 | macros/latex/contrib/ppt-slides/ppt-slides.pdf -2022/09/19 | 5856 | macros/latex/contrib/ppt-slides/ppt-slides.sty -2022/09/19 | 8372 | macros/latex/contrib/ppt-slides/ppt-slides.tex -2022/09/19 | 3923 | macros/latex/contrib/ppt-slides/ppt-templates/ppt-9x6.tex -2022/09/19 | 1576 | macros/latex/contrib/ppt-slides/README.md -2022/09/19 | 94352 | macros/latex/contrib/ppt-slides/socrates.jpg -2022/09/19 | 323429 | macros/latex/contrib/ppt-slides.zip +2022/12/03 | 272 | macros/latex/contrib/ppt-slides/DEPENDS.txt +2022/12/03 | 1078 | macros/latex/contrib/ppt-slides/LICENSE.txt +2022/12/03 | 1420 | macros/latex/contrib/ppt-slides/ppt-schemes/ppt-dark-mono.tex +2022/12/03 | 1420 | macros/latex/contrib/ppt-slides/ppt-schemes/ppt-dark.tex +2022/12/03 | 1420 | macros/latex/contrib/ppt-slides/ppt-schemes/ppt-light-mono.tex +2022/12/03 | 1420 | macros/latex/contrib/ppt-slides/ppt-schemes/ppt-light.tex +2022/12/03 | 17914 | macros/latex/contrib/ppt-slides/ppt-slides.dtx +2022/12/03 | 2640 | macros/latex/contrib/ppt-slides/ppt-slides.ins +2022/12/03 | 885857 | macros/latex/contrib/ppt-slides/ppt-slides.pdf +2022/12/03 | 3989 | macros/latex/contrib/ppt-slides/ppt-templates/ppt-9x6.tex +2022/12/03 | 1620 | macros/latex/contrib/ppt-slides/README.md +2022/12/03 | 94352 | macros/latex/contrib/ppt-slides/socrates.jpg +2022/12/03 | 972411 | macros/latex/contrib/ppt-slides.zip 2007/08/13 | 4545 | macros/latex/contrib/pracjourn/pjsample.ltx 2006/11/16 | 122311 | macros/latex/contrib/pracjourn/pjsample.pdf 2007/08/25 | 50011 | macros/latex/contrib/pracjourn/pracjourn.dtx @@ -231013,12 +231014,12 @@ 2019/12/10 | 537307 | macros/latex/contrib/selinput/selinput.pdf 2019/12/11 | 541126 | macros/latex/contrib/selinput.zip 2022/09/24 | 1660 | macros/latex/contrib/semantex/README.md -2022/10/04 | 397454 | macros/latex/contrib/semantex/semantex.pdf -2022/10/04 | 298106 | macros/latex/contrib/semantex/semantex.sty -2022/09/27 | 181115 | macros/latex/contrib/semantex/semantex.tex -2022/09/22 | 12270 | macros/latex/contrib/semantex/stripsemantex.lua -2022/10/04 | 4736 | macros/latex/contrib/semantex/stripsemantex.sty -2022/10/04 | 454311 | macros/latex/contrib/semantex.zip +2022/12/03 | 397760 | macros/latex/contrib/semantex/semantex.pdf +2022/12/03 | 300363 | macros/latex/contrib/semantex/semantex.sty +2022/12/03 | 182031 | macros/latex/contrib/semantex/semantex.tex +2022/09/22 | 11960 | macros/latex/contrib/semantex/stripsemantex.lua +2022/12/03 | 4736 | macros/latex/contrib/semantex/stripsemantex.sty +2022/12/03 | 455242 | macros/latex/contrib/semantex.zip 2020/01/29 | 1014 | macros/latex/contrib/semantic-markup/README 2020/01/29 | 266707 | macros/latex/contrib/semantic-markup/semantic-markup.pdf 2020/01/29 | 4666 | macros/latex/contrib/semantic-markup/semantic-markup.sty @@ -238121,288 +238122,290 @@ 2022/04/18 | 501158 | macros/latex/contrib/zwpagelayout/zwpagelayout.pdf 2022/04/18 | 36154 | macros/latex/contrib/zwpagelayout/zwpagelayout.sty 2022/04/18 | 69553 | macros/latex/contrib/zwpagelayout/zwpagelayout.tex -2022/10/31 | 7104 | macros/latex-dev/base/alltt.dtx -2022/10/31 | 2890 | macros/latex-dev/base/alltt.ins -2022/10/31 | 223831 | macros/latex-dev/base/alltt.pdf -2022/10/31 | 3282 | macros/latex-dev/base/bugs.txt -2022/10/31 | 264112 | macros/latex-dev/base/cfgguide.pdf -2022/10/31 | 22720 | macros/latex-dev/base/cfgguide.tex -2022/10/31 | 42708 | macros/latex-dev/base/changes.old.txt -2022/10/31 | 392105 | macros/latex-dev/base/changes.txt -2022/10/31 | 156236 | macros/latex-dev/base/classes.dtx -2022/10/31 | 4087 | macros/latex-dev/base/classes.ins -2022/10/31 | 560611 | macros/latex-dev/base/classes.pdf -2022/10/31 | 414419 | macros/latex-dev/base/clsguide.pdf -2022/10/31 | 69315 | macros/latex-dev/base/clsguide.tex -2022/10/31 | 5273 | macros/latex-dev/base/cmextra.ins -2022/10/31 | 44410 | macros/latex-dev/base/cmfonts.fdd -2022/10/31 | 4324 | macros/latex-dev/base/cmfonts.ins -2022/10/31 | 292160 | macros/latex-dev/base/cmfonts.pdf -2022/10/31 | 257314 | macros/latex-dev/base/cyrguide.pdf -2022/10/31 | 17779 | macros/latex-dev/base/cyrguide.tex -2022/10/31 | 29965 | macros/latex-dev/base/doc-2016-02-15.sty -2022/10/31 | 30499 | macros/latex-dev/base/doc-2021-06-01.sty -2022/10/31 | 1077527 | macros/latex-dev/base/doc-code.pdf -2022/10/31 | 96 | macros/latex-dev/base/doc-code.tex -2022/10/31 | 241167 | macros/latex-dev/base/doc.dtx -2022/10/31 | 755064 | macros/latex-dev/base/doc.pdf -2022/10/31 | 170595 | macros/latex-dev/base/docstrip.dtx -2022/10/31 | 4273 | macros/latex-dev/base/docstrip.ins -2022/10/31 | 504553 | macros/latex-dev/base/docstrip.pdf -2022/10/31 | 4390 | macros/latex-dev/base/ec.ins -2022/10/31 | 1318126 | macros/latex-dev/base/encguide.pdf -2022/10/31 | 52813 | macros/latex-dev/base/encguide.tex -2022/10/31 | 7216 | macros/latex-dev/base/exscale.dtx -2022/10/31 | 3338 | macros/latex-dev/base/exscale.ins -2022/10/31 | 204711 | macros/latex-dev/base/exscale.pdf -2022/10/31 | 23516 | macros/latex-dev/base/fix-cm.dtx -2022/10/31 | 2892 | macros/latex-dev/base/fix-cm.ins -2022/10/31 | 287733 | macros/latex-dev/base/fix-cm.pdf -2022/10/31 | 517838 | macros/latex-dev/base/fntguide.pdf -2022/10/31 | 108231 | macros/latex-dev/base/fntguide.tex -2022/10/31 | 60321 | macros/latex-dev/base/fontdef.dtx -2022/10/31 | 9779 | macros/latex-dev/base/format.ins -2022/10/31 | 5509 | macros/latex-dev/base/graphpap.dtx -2022/10/31 | 2892 | macros/latex-dev/base/graphpap.ins -2022/10/31 | 161713 | macros/latex-dev/base/graphpap.pdf -2022/10/31 | 2705 | macros/latex-dev/base/idx.tex -2022/10/31 | 18753 | macros/latex-dev/base/ifthen.dtx -2022/10/31 | 2888 | macros/latex-dev/base/ifthen.ins -2022/10/31 | 221211 | macros/latex-dev/base/ifthen.pdf -2022/10/31 | 106904 | macros/latex-dev/base/inputenc.dtx -2022/10/31 | 5714 | macros/latex-dev/base/inputenc.ins -2022/10/31 | 318204 | macros/latex-dev/base/inputenc.pdf -2022/10/31 | 4079 | macros/latex-dev/base/lablst.tex -2022/10/31 | 13759 | macros/latex-dev/base/lamport-manual.err -2022/10/31 | 170878 | macros/latex-dev/base/lamport-manual.pdf -2022/10/31 | 38730 | macros/latex-dev/base/latex209.dtx -2022/10/31 | 4219 | macros/latex-dev/base/latex209.ins -2022/10/31 | 44976 | macros/latex-dev/base/latexrelease.dtx -2022/10/31 | 6047 | macros/latex-dev/base/latexrelease.ins -2022/10/31 | 281906 | macros/latex-dev/base/latexrelease.pdf -2022/10/31 | 6709 | macros/latex-dev/base/latexsym.dtx -2022/10/31 | 5041 | macros/latex-dev/base/latexsym.ins -2022/10/31 | 200760 | macros/latex-dev/base/latexsym.pdf -2022/10/31 | 52710 | macros/latex-dev/base/lb2.err -2022/10/31 | 252140 | macros/latex-dev/base/lb2.pdf -2022/10/31 | 1279 | macros/latex-dev/base/legal.txt -2022/10/31 | 63280 | macros/latex-dev/base/letter.dtx -2022/10/31 | 3372 | macros/latex-dev/base/letter.ins -2022/10/31 | 337630 | macros/latex-dev/base/letter.pdf -2022/10/31 | 20652 | macros/latex-dev/base/lgc2.err -2022/10/31 | 215684 | macros/latex-dev/base/lgc2.pdf -2022/10/31 | 9068 | macros/latex-dev/base/lppl-1-0.txt -2022/10/31 | 14341 | macros/latex-dev/base/lppl-1-1.txt -2022/10/31 | 14421 | macros/latex-dev/base/lppl-1-2.txt -2022/10/31 | 132382 | macros/latex-dev/base/lppl.pdf -2022/10/31 | 23386 | macros/latex-dev/base/lppl.tex -2022/10/31 | 19040 | macros/latex-dev/base/lppl.txt -2022/10/31 | 4298 | macros/latex-dev/base/ltalloc.dtx -2022/10/31 | 17389 | macros/latex-dev/base/ltbibl.dtx -2022/10/31 | 45712 | macros/latex-dev/base/ltboxes.dtx -2022/10/31 | 143684 | macros/latex-dev/base/ltclass.dtx -2022/10/31 | 182935 | macros/latex-dev/base/ltcmd.dtx -2022/10/31 | 719104 | macros/latex-dev/base/ltcmdhooks-code.pdf -2022/10/31 | 103 | macros/latex-dev/base/ltcmdhooks-code.tex -2022/10/31 | 478606 | macros/latex-dev/base/ltcmdhooks-doc.pdf -2022/10/31 | 238 | macros/latex-dev/base/ltcmdhooks-doc.tex -2022/10/31 | 53025 | macros/latex-dev/base/ltcmdhooks.dtx -2022/10/31 | 9557 | macros/latex-dev/base/ltcntrl.dtx -2022/10/31 | 24286 | macros/latex-dev/base/ltcounts.dtx -2022/10/31 | 86388 | macros/latex-dev/base/ltdefns.dtx -2022/10/31 | 35984 | macros/latex-dev/base/ltdirchk.dtx -2022/10/31 | 27069 | macros/latex-dev/base/lterror.dtx -2022/10/31 | 18711 | macros/latex-dev/base/ltexpl.dtx -2022/10/31 | 803024 | macros/latex-dev/base/ltfilehook-code.pdf -2022/10/31 | 105 | macros/latex-dev/base/ltfilehook-code.tex -2022/10/31 | 547895 | macros/latex-dev/base/ltfilehook-doc.pdf -2022/10/31 | 241 | macros/latex-dev/base/ltfilehook-doc.tex -2022/10/31 | 67351 | macros/latex-dev/base/ltfilehook.dtx -2022/10/31 | 58933 | macros/latex-dev/base/ltfiles.dtx -2022/10/31 | 49192 | macros/latex-dev/base/ltfinal.dtx -2022/10/31 | 55687 | macros/latex-dev/base/ltfloat.dtx -2022/10/31 | 29267 | macros/latex-dev/base/ltfntcmd.dtx -2022/10/31 | 58551 | macros/latex-dev/base/ltfssaxes.dtx -2022/10/31 | 82481 | macros/latex-dev/base/ltfssbas.dtx -2022/10/31 | 10370 | macros/latex-dev/base/ltfsscmp.dtx -2022/10/31 | 75111 | macros/latex-dev/base/ltfssdcl.dtx -2022/10/31 | 84215 | macros/latex-dev/base/ltfssini.dtx -2022/10/31 | 72475 | macros/latex-dev/base/ltfsstrc.dtx -2022/10/31 | 1091409 | macros/latex-dev/base/lthooks-code.pdf -2022/10/31 | 102 | macros/latex-dev/base/lthooks-code.tex -2022/10/31 | 701468 | macros/latex-dev/base/lthooks-doc.pdf -2022/10/31 | 238 | macros/latex-dev/base/lthooks-doc.tex -2022/10/31 | 211770 | macros/latex-dev/base/lthooks.dtx -2022/10/31 | 4945 | macros/latex-dev/base/lthyphen.dtx -2022/10/31 | 5859 | macros/latex-dev/base/ltidxglo.dtx -2022/10/31 | 19853 | macros/latex-dev/base/ltkeys.dtx -2022/10/31 | 4757 | macros/latex-dev/base/ltlength.dtx -2022/10/31 | 36152 | macros/latex-dev/base/ltlists.dtx -2022/10/31 | 3725 | macros/latex-dev/base/ltlogos.dtx -2022/10/31 | 74886 | macros/latex-dev/base/ltluatex.dtx -2022/10/31 | 325457 | macros/latex-dev/base/ltluatex.pdf -2022/10/31 | 715524 | macros/latex-dev/base/ltmarks-code.pdf -2022/10/31 | 102 | macros/latex-dev/base/ltmarks-code.tex -2022/10/31 | 585896 | macros/latex-dev/base/ltmarks-doc.pdf -2022/10/31 | 238 | macros/latex-dev/base/ltmarks-doc.tex -2022/10/31 | 63132 | macros/latex-dev/base/ltmarks.dtx -2022/10/31 | 41493 | macros/latex-dev/base/ltmath.dtx -2022/10/31 | 6213 | macros/latex-dev/base/ltmeta.dtx -2022/10/31 | 58745 | macros/latex-dev/base/ltmiscen.dtx -2022/10/31 | 161518 | macros/latex-dev/base/ltnews01.pdf -2022/10/31 | 5246 | macros/latex-dev/base/ltnews01.tex -2022/10/31 | 159792 | macros/latex-dev/base/ltnews02.pdf -2022/10/31 | 5462 | macros/latex-dev/base/ltnews02.tex -2022/10/31 | 159332 | macros/latex-dev/base/ltnews03.pdf -2022/10/31 | 5369 | macros/latex-dev/base/ltnews03.tex -2022/10/31 | 152525 | macros/latex-dev/base/ltnews04.pdf -2022/10/31 | 5678 | macros/latex-dev/base/ltnews04.tex -2022/10/31 | 174494 | macros/latex-dev/base/ltnews05.pdf -2022/10/31 | 5699 | macros/latex-dev/base/ltnews05.tex -2022/10/31 | 142849 | macros/latex-dev/base/ltnews06.pdf -2022/10/31 | 5544 | macros/latex-dev/base/ltnews06.tex -2022/10/31 | 137811 | macros/latex-dev/base/ltnews07.pdf -2022/10/31 | 5576 | macros/latex-dev/base/ltnews07.tex -2022/10/31 | 155053 | macros/latex-dev/base/ltnews08.pdf -2022/10/31 | 5732 | macros/latex-dev/base/ltnews08.tex -2022/10/31 | 129570 | macros/latex-dev/base/ltnews09.pdf -2022/10/31 | 5451 | macros/latex-dev/base/ltnews09.tex -2022/10/31 | 169416 | macros/latex-dev/base/ltnews10.pdf -2022/10/31 | 5825 | macros/latex-dev/base/ltnews10.tex -2022/10/31 | 111948 | macros/latex-dev/base/ltnews11.pdf -2022/10/31 | 5529 | macros/latex-dev/base/ltnews11.tex -2022/10/31 | 156551 | macros/latex-dev/base/ltnews12.pdf -2022/10/31 | 5574 | macros/latex-dev/base/ltnews12.tex -2022/10/31 | 182225 | macros/latex-dev/base/ltnews13.pdf -2022/10/31 | 7029 | macros/latex-dev/base/ltnews13.tex -2022/10/31 | 170473 | macros/latex-dev/base/ltnews14.pdf -2022/10/31 | 6424 | macros/latex-dev/base/ltnews14.tex -2022/10/31 | 130309 | macros/latex-dev/base/ltnews15.pdf -2022/10/31 | 5986 | macros/latex-dev/base/ltnews15.tex -2022/10/31 | 138073 | macros/latex-dev/base/ltnews16.pdf -2022/10/31 | 5775 | macros/latex-dev/base/ltnews16.tex -2022/10/31 | 166228 | macros/latex-dev/base/ltnews17.pdf -2022/10/31 | 8970 | macros/latex-dev/base/ltnews17.tex -2022/10/31 | 38033 | macros/latex-dev/base/ltnews18.pdf -2022/10/31 | 1341 | macros/latex-dev/base/ltnews18.tex -2022/10/31 | 230028 | macros/latex-dev/base/ltnews19.pdf -2022/10/31 | 4170 | macros/latex-dev/base/ltnews19.tex -2022/10/31 | 318548 | macros/latex-dev/base/ltnews20.pdf -2022/10/31 | 7221 | macros/latex-dev/base/ltnews20.tex -2022/10/31 | 244867 | macros/latex-dev/base/ltnews21.pdf -2022/10/31 | 9926 | macros/latex-dev/base/ltnews21.tex -2022/10/31 | 317773 | macros/latex-dev/base/ltnews22.pdf -2022/10/31 | 10792 | macros/latex-dev/base/ltnews22.tex -2022/10/31 | 286591 | macros/latex-dev/base/ltnews23.pdf -2022/10/31 | 10791 | macros/latex-dev/base/ltnews23.tex -2022/10/31 | 265279 | macros/latex-dev/base/ltnews24.pdf -2022/10/31 | 12334 | macros/latex-dev/base/ltnews24.tex -2022/10/31 | 204935 | macros/latex-dev/base/ltnews25.pdf -2022/10/31 | 5588 | macros/latex-dev/base/ltnews25.tex -2022/10/31 | 379462 | macros/latex-dev/base/ltnews26.pdf -2022/10/31 | 10798 | macros/latex-dev/base/ltnews26.tex -2022/10/31 | 250592 | macros/latex-dev/base/ltnews27.pdf -2022/10/31 | 5671 | macros/latex-dev/base/ltnews27.tex -2022/10/31 | 376643 | macros/latex-dev/base/ltnews28.pdf -2022/10/31 | 15047 | macros/latex-dev/base/ltnews28.tex -2022/10/31 | 455107 | macros/latex-dev/base/ltnews29.pdf -2022/10/31 | 18944 | macros/latex-dev/base/ltnews29.tex -2022/10/31 | 511909 | macros/latex-dev/base/ltnews30.pdf -2022/10/31 | 23637 | macros/latex-dev/base/ltnews30.tex -2022/10/31 | 526323 | macros/latex-dev/base/ltnews31.pdf -2022/10/31 | 30428 | macros/latex-dev/base/ltnews31.tex -2022/10/31 | 546160 | macros/latex-dev/base/ltnews32.pdf -2022/10/31 | 33239 | macros/latex-dev/base/ltnews32.tex -2022/10/31 | 522412 | macros/latex-dev/base/ltnews33.pdf -2022/10/31 | 33907 | macros/latex-dev/base/ltnews33.tex -2022/10/31 | 508044 | macros/latex-dev/base/ltnews34.pdf -2022/10/31 | 32307 | macros/latex-dev/base/ltnews34.tex -2022/10/31 | 563089 | macros/latex-dev/base/ltnews35.pdf -2022/10/31 | 38793 | macros/latex-dev/base/ltnews35.tex -2022/10/31 | 517577 | macros/latex-dev/base/ltnews36.pdf -2022/10/31 | 19332 | macros/latex-dev/base/ltnews36.tex -2022/10/31 | 20469 | macros/latex-dev/base/ltnews.cls -2022/10/31 | 1243036 | macros/latex-dev/base/ltnews.pdf -2022/10/31 | 8367 | macros/latex-dev/base/ltnews.tex -2022/10/31 | 148294 | macros/latex-dev/base/ltoutenc.dtx -2022/10/31 | 3367 | macros/latex-dev/base/ltoutenc.ins -2022/10/31 | 178723 | macros/latex-dev/base/ltoutput.dtx -2022/10/31 | 14091 | macros/latex-dev/base/ltpage.dtx -2022/10/31 | 2728 | macros/latex-dev/base/ltpageno.dtx -2022/10/31 | 667097 | macros/latex-dev/base/ltpara-code.pdf -2022/10/31 | 99 | macros/latex-dev/base/ltpara-code.tex -2022/10/31 | 559976 | macros/latex-dev/base/ltpara-doc.pdf -2022/10/31 | 234 | macros/latex-dev/base/ltpara-doc.tex -2022/10/31 | 51606 | macros/latex-dev/base/ltpara.dtx -2022/10/31 | 6155 | macros/latex-dev/base/ltpar.dtx -2022/10/31 | 69002 | macros/latex-dev/base/ltpictur.dtx -2022/10/31 | 59499 | macros/latex-dev/base/ltplain.dtx -2022/10/31 | 33946 | macros/latex-dev/base/ltsect.dtx -2022/10/31 | 818741 | macros/latex-dev/base/ltshipout-code.pdf -2022/10/31 | 104 | macros/latex-dev/base/ltshipout-code.tex -2022/10/31 | 563518 | macros/latex-dev/base/ltshipout-doc.pdf -2022/10/31 | 240 | macros/latex-dev/base/ltshipout-doc.tex -2022/10/31 | 80052 | macros/latex-dev/base/ltshipout.dtx -2022/10/31 | 45240 | macros/latex-dev/base/ltspace.dtx -2022/10/31 | 47896 | macros/latex-dev/base/lttab.dtx -2022/10/31 | 90660 | macros/latex-dev/base/lttextcomp.dtx -2022/10/31 | 8731 | macros/latex-dev/base/ltthm.dtx -2022/10/31 | 14786 | macros/latex-dev/base/ltvers.dtx -2022/10/31 | 219349 | macros/latex-dev/base/ltx3info.pdf -2022/10/31 | 18299 | macros/latex-dev/base/ltx3info.tex -2022/10/31 | 27122 | macros/latex-dev/base/ltxcheck.tex -2022/10/31 | 22410 | macros/latex-dev/base/ltxdoc.dtx -2022/10/31 | 242645 | macros/latex-dev/base/ltxdoc.pdf -2022/10/31 | 7524 | macros/latex-dev/base/ltxguide.cls -2022/10/31 | 18363 | macros/latex-dev/base/ltxref.dtx -2022/10/31 | 10601 | macros/latex-dev/base/makeindx.dtx -2022/10/31 | 3434 | macros/latex-dev/base/makeindx.ins -2022/10/31 | 165821 | macros/latex-dev/base/makeindx.pdf -2022/10/31 | 11124 | macros/latex-dev/base/manifest.txt -2022/10/31 | 1937 | macros/latex-dev/base/minimal.cls -2022/10/31 | 257804 | macros/latex-dev/base/modguide.pdf -2022/10/31 | 16497 | macros/latex-dev/base/modguide.tex -2022/10/31 | 4254 | macros/latex-dev/base/newdc.ins -2022/10/31 | 6357 | macros/latex-dev/base/newlfont.dtx -2022/10/31 | 18399 | macros/latex-dev/base/nfssfont.dtx -2022/10/31 | 2893 | macros/latex-dev/base/nfssfont.ins -2022/10/31 | 211180 | macros/latex-dev/base/nfssfont.pdf -2022/10/31 | 3960 | macros/latex-dev/base/olddc.ins -2022/10/31 | 8626 | macros/latex-dev/base/oldlfont.dtx -2022/10/31 | 9345 | macros/latex-dev/base/preload.dtx -2022/10/31 | 13589 | macros/latex-dev/base/proc.dtx -2022/10/31 | 3401 | macros/latex-dev/base/proc.ins -2022/10/31 | 227059 | macros/latex-dev/base/proc.pdf -2022/10/31 | 3100 | macros/latex-dev/base/README.md -2022/10/31 | 7200 | macros/latex-dev/base/sample2e.tex -2022/10/31 | 89727 | macros/latex-dev/base/slides.dtx -2022/10/31 | 6760 | macros/latex-dev/base/slides.ins -2022/10/31 | 375518 | macros/latex-dev/base/slides.pdf -2022/10/31 | 15699 | macros/latex-dev/base/slifonts.fdd -2022/10/31 | 234191 | macros/latex-dev/base/slifonts.pdf -2022/10/31 | 1694 | macros/latex-dev/base/small2e.tex -2022/10/31 | 9401 | macros/latex-dev/base/source2edoc.cls -2022/10/31 | 5769593 | macros/latex-dev/base/source2e.pdf -2022/10/31 | 15306 | macros/latex-dev/base/source2e.tex -2022/10/31 | 9395 | macros/latex-dev/base/syntonly.dtx -2022/10/31 | 2896 | macros/latex-dev/base/syntonly.ins -2022/10/31 | 189704 | macros/latex-dev/base/syntonly.pdf -2022/10/31 | 12520 | macros/latex-dev/base/testpage.tex -2022/10/31 | 172867 | macros/latex-dev/base/tlc2.err -2022/10/31 | 290615 | macros/latex-dev/base/tlc2.pdf -2022/10/31 | 12242 | macros/latex-dev/base/tulm.fdd -2022/10/31 | 3781 | macros/latex-dev/base/tulm.ins -2022/10/31 | 162772 | macros/latex-dev/base/tulm.pdf -2022/10/31 | 3181 | macros/latex-dev/base/unpack.ins -2022/10/31 | 438515 | macros/latex-dev/base/usrguide-historic.pdf -2022/10/31 | 68732 | macros/latex-dev/base/usrguide-historic.tex -2022/10/31 | 473980 | macros/latex-dev/base/usrguide.pdf -2022/10/31 | 50281 | macros/latex-dev/base/usrguide.tex -2022/10/31 | 92280 | macros/latex-dev/base/utf8ienc.dtx -2022/10/31 | 353237 | macros/latex-dev/base/utf8ienc.pdf -2022/10/31 | 10251 | macros/latex-dev/base/webcomp.err -2022/10/31 | 146198 | macros/latex-dev/base/webcomp.pdf -2022/11/02 | 38473114 | macros/latex-dev/base.zip +2022/12/03 | 7104 | macros/latex-dev/base/alltt.dtx +2022/12/03 | 2890 | macros/latex-dev/base/alltt.ins +2022/12/03 | 223831 | macros/latex-dev/base/alltt.pdf +2022/12/03 | 3282 | macros/latex-dev/base/bugs.txt +2022/12/03 | 264112 | macros/latex-dev/base/cfgguide.pdf +2022/12/03 | 22720 | macros/latex-dev/base/cfgguide.tex +2022/12/03 | 42708 | macros/latex-dev/base/changes.old.txt +2022/12/03 | 394640 | macros/latex-dev/base/changes.txt +2022/12/03 | 156236 | macros/latex-dev/base/classes.dtx +2022/12/03 | 4087 | macros/latex-dev/base/classes.ins +2022/12/03 | 560326 | macros/latex-dev/base/classes.pdf +2022/12/03 | 414419 | macros/latex-dev/base/clsguide.pdf +2022/12/03 | 69315 | macros/latex-dev/base/clsguide.tex +2022/12/03 | 5273 | macros/latex-dev/base/cmextra.ins +2022/12/03 | 44410 | macros/latex-dev/base/cmfonts.fdd +2022/12/03 | 4324 | macros/latex-dev/base/cmfonts.ins +2022/12/03 | 292160 | macros/latex-dev/base/cmfonts.pdf +2022/12/03 | 257314 | macros/latex-dev/base/cyrguide.pdf +2022/12/03 | 17779 | macros/latex-dev/base/cyrguide.tex +2022/12/03 | 29965 | macros/latex-dev/base/doc-2016-02-15.sty +2022/12/03 | 30499 | macros/latex-dev/base/doc-2021-06-01.sty +2022/12/03 | 1075110 | macros/latex-dev/base/doc-code.pdf +2022/12/03 | 96 | macros/latex-dev/base/doc-code.tex +2022/12/03 | 242468 | macros/latex-dev/base/doc.dtx +2022/12/03 | 755547 | macros/latex-dev/base/doc.pdf +2022/12/03 | 170595 | macros/latex-dev/base/docstrip.dtx +2022/12/03 | 4273 | macros/latex-dev/base/docstrip.ins +2022/12/03 | 504178 | macros/latex-dev/base/docstrip.pdf +2022/12/03 | 4390 | macros/latex-dev/base/ec.ins +2022/12/03 | 1318126 | macros/latex-dev/base/encguide.pdf +2022/12/03 | 52813 | macros/latex-dev/base/encguide.tex +2022/12/03 | 7216 | macros/latex-dev/base/exscale.dtx +2022/12/03 | 3338 | macros/latex-dev/base/exscale.ins +2022/12/03 | 204711 | macros/latex-dev/base/exscale.pdf +2022/12/03 | 23516 | macros/latex-dev/base/fix-cm.dtx +2022/12/03 | 2892 | macros/latex-dev/base/fix-cm.ins +2022/12/03 | 287733 | macros/latex-dev/base/fix-cm.pdf +2022/12/03 | 517838 | macros/latex-dev/base/fntguide.pdf +2022/12/03 | 108231 | macros/latex-dev/base/fntguide.tex +2022/12/03 | 60321 | macros/latex-dev/base/fontdef.dtx +2022/12/03 | 9779 | macros/latex-dev/base/format.ins +2022/12/03 | 5509 | macros/latex-dev/base/graphpap.dtx +2022/12/03 | 2892 | macros/latex-dev/base/graphpap.ins +2022/12/03 | 161713 | macros/latex-dev/base/graphpap.pdf +2022/12/03 | 2705 | macros/latex-dev/base/idx.tex +2022/12/03 | 18753 | macros/latex-dev/base/ifthen.dtx +2022/12/03 | 2888 | macros/latex-dev/base/ifthen.ins +2022/12/03 | 221211 | macros/latex-dev/base/ifthen.pdf +2022/12/03 | 106904 | macros/latex-dev/base/inputenc.dtx +2022/12/03 | 5714 | macros/latex-dev/base/inputenc.ins +2022/12/03 | 318204 | macros/latex-dev/base/inputenc.pdf +2022/12/03 | 4079 | macros/latex-dev/base/lablst.tex +2022/12/03 | 13759 | macros/latex-dev/base/lamport-manual.err +2022/12/03 | 170878 | macros/latex-dev/base/lamport-manual.pdf +2022/12/03 | 38730 | macros/latex-dev/base/latex209.dtx +2022/12/03 | 4219 | macros/latex-dev/base/latex209.ins +2022/12/03 | 45347 | macros/latex-dev/base/latexrelease.dtx +2022/12/03 | 6047 | macros/latex-dev/base/latexrelease.ins +2022/12/03 | 282115 | macros/latex-dev/base/latexrelease.pdf +2022/12/03 | 6709 | macros/latex-dev/base/latexsym.dtx +2022/12/03 | 5041 | macros/latex-dev/base/latexsym.ins +2022/12/03 | 200760 | macros/latex-dev/base/latexsym.pdf +2022/12/03 | 52710 | macros/latex-dev/base/lb2.err +2022/12/03 | 252140 | macros/latex-dev/base/lb2.pdf +2022/12/03 | 1279 | macros/latex-dev/base/legal.txt +2022/12/03 | 63280 | macros/latex-dev/base/letter.dtx +2022/12/03 | 3372 | macros/latex-dev/base/letter.ins +2022/12/03 | 337430 | macros/latex-dev/base/letter.pdf +2022/12/03 | 20652 | macros/latex-dev/base/lgc2.err +2022/12/03 | 215684 | macros/latex-dev/base/lgc2.pdf +2022/12/03 | 9068 | macros/latex-dev/base/lppl-1-0.txt +2022/12/03 | 14341 | macros/latex-dev/base/lppl-1-1.txt +2022/12/03 | 14421 | macros/latex-dev/base/lppl-1-2.txt +2022/12/03 | 132382 | macros/latex-dev/base/lppl.pdf +2022/12/03 | 23386 | macros/latex-dev/base/lppl.tex +2022/12/03 | 19040 | macros/latex-dev/base/lppl.txt +2022/12/03 | 4298 | macros/latex-dev/base/ltalloc.dtx +2022/12/03 | 17389 | macros/latex-dev/base/ltbibl.dtx +2022/12/03 | 45712 | macros/latex-dev/base/ltboxes.dtx +2022/12/03 | 144369 | macros/latex-dev/base/ltclass.dtx +2022/12/03 | 183578 | macros/latex-dev/base/ltcmd.dtx +2022/12/03 | 719408 | macros/latex-dev/base/ltcmdhooks-code.pdf +2022/12/03 | 103 | macros/latex-dev/base/ltcmdhooks-code.tex +2022/12/03 | 478686 | macros/latex-dev/base/ltcmdhooks-doc.pdf +2022/12/03 | 238 | macros/latex-dev/base/ltcmdhooks-doc.tex +2022/12/03 | 53025 | macros/latex-dev/base/ltcmdhooks.dtx +2022/12/03 | 9557 | macros/latex-dev/base/ltcntrl.dtx +2022/12/03 | 24286 | macros/latex-dev/base/ltcounts.dtx +2022/12/03 | 92954 | macros/latex-dev/base/ltdefns.dtx +2022/12/03 | 35984 | macros/latex-dev/base/ltdirchk.dtx +2022/12/03 | 27069 | macros/latex-dev/base/lterror.dtx +2022/12/03 | 18711 | macros/latex-dev/base/ltexpl.dtx +2022/12/03 | 803060 | macros/latex-dev/base/ltfilehook-code.pdf +2022/12/03 | 105 | macros/latex-dev/base/ltfilehook-code.tex +2022/12/03 | 547926 | macros/latex-dev/base/ltfilehook-doc.pdf +2022/12/03 | 241 | macros/latex-dev/base/ltfilehook-doc.tex +2022/12/03 | 67351 | macros/latex-dev/base/ltfilehook.dtx +2022/12/03 | 58933 | macros/latex-dev/base/ltfiles.dtx +2022/12/03 | 50069 | macros/latex-dev/base/ltfinal.dtx +2022/12/03 | 55687 | macros/latex-dev/base/ltfloat.dtx +2022/12/03 | 29267 | macros/latex-dev/base/ltfntcmd.dtx +2022/12/03 | 58551 | macros/latex-dev/base/ltfssaxes.dtx +2022/12/03 | 82481 | macros/latex-dev/base/ltfssbas.dtx +2022/12/03 | 10370 | macros/latex-dev/base/ltfsscmp.dtx +2022/12/03 | 75111 | macros/latex-dev/base/ltfssdcl.dtx +2022/12/03 | 84215 | macros/latex-dev/base/ltfssini.dtx +2022/12/03 | 72475 | macros/latex-dev/base/ltfsstrc.dtx +2022/12/03 | 1091429 | macros/latex-dev/base/lthooks-code.pdf +2022/12/03 | 102 | macros/latex-dev/base/lthooks-code.tex +2022/12/03 | 701473 | macros/latex-dev/base/lthooks-doc.pdf +2022/12/03 | 238 | macros/latex-dev/base/lthooks-doc.tex +2022/12/03 | 211770 | macros/latex-dev/base/lthooks.dtx +2022/12/03 | 4945 | macros/latex-dev/base/lthyphen.dtx +2022/12/03 | 5859 | macros/latex-dev/base/ltidxglo.dtx +2022/12/03 | 19853 | macros/latex-dev/base/ltkeys.dtx +2022/12/03 | 4757 | macros/latex-dev/base/ltlength.dtx +2022/12/03 | 36152 | macros/latex-dev/base/ltlists.dtx +2022/12/03 | 3725 | macros/latex-dev/base/ltlogos.dtx +2022/12/03 | 74886 | macros/latex-dev/base/ltluatex.dtx +2022/12/03 | 324910 | macros/latex-dev/base/ltluatex.pdf +2022/12/03 | 715658 | macros/latex-dev/base/ltmarks-code.pdf +2022/12/03 | 102 | macros/latex-dev/base/ltmarks-code.tex +2022/12/03 | 586024 | macros/latex-dev/base/ltmarks-doc.pdf +2022/12/03 | 238 | macros/latex-dev/base/ltmarks-doc.tex +2022/12/03 | 63132 | macros/latex-dev/base/ltmarks.dtx +2022/12/03 | 41493 | macros/latex-dev/base/ltmath.dtx +2022/12/03 | 6213 | macros/latex-dev/base/ltmeta.dtx +2022/12/03 | 59070 | macros/latex-dev/base/ltmiscen.dtx +2022/12/03 | 161518 | macros/latex-dev/base/ltnews01.pdf +2022/12/03 | 5246 | macros/latex-dev/base/ltnews01.tex +2022/12/03 | 159792 | macros/latex-dev/base/ltnews02.pdf +2022/12/03 | 5462 | macros/latex-dev/base/ltnews02.tex +2022/12/03 | 159332 | macros/latex-dev/base/ltnews03.pdf +2022/12/03 | 5369 | macros/latex-dev/base/ltnews03.tex +2022/12/03 | 152525 | macros/latex-dev/base/ltnews04.pdf +2022/12/03 | 5678 | macros/latex-dev/base/ltnews04.tex +2022/12/03 | 174494 | macros/latex-dev/base/ltnews05.pdf +2022/12/03 | 5699 | macros/latex-dev/base/ltnews05.tex +2022/12/03 | 142849 | macros/latex-dev/base/ltnews06.pdf +2022/12/03 | 5544 | macros/latex-dev/base/ltnews06.tex +2022/12/03 | 137811 | macros/latex-dev/base/ltnews07.pdf +2022/12/03 | 5576 | macros/latex-dev/base/ltnews07.tex +2022/12/03 | 155053 | macros/latex-dev/base/ltnews08.pdf +2022/12/03 | 5732 | macros/latex-dev/base/ltnews08.tex +2022/12/03 | 129570 | macros/latex-dev/base/ltnews09.pdf +2022/12/03 | 5451 | macros/latex-dev/base/ltnews09.tex +2022/12/03 | 169416 | macros/latex-dev/base/ltnews10.pdf +2022/12/03 | 5825 | macros/latex-dev/base/ltnews10.tex +2022/12/03 | 111948 | macros/latex-dev/base/ltnews11.pdf +2022/12/03 | 5529 | macros/latex-dev/base/ltnews11.tex +2022/12/03 | 156551 | macros/latex-dev/base/ltnews12.pdf +2022/12/03 | 5574 | macros/latex-dev/base/ltnews12.tex +2022/12/03 | 182225 | macros/latex-dev/base/ltnews13.pdf +2022/12/03 | 7029 | macros/latex-dev/base/ltnews13.tex +2022/12/03 | 170473 | macros/latex-dev/base/ltnews14.pdf +2022/12/03 | 6424 | macros/latex-dev/base/ltnews14.tex +2022/12/03 | 130309 | macros/latex-dev/base/ltnews15.pdf +2022/12/03 | 5986 | macros/latex-dev/base/ltnews15.tex +2022/12/03 | 138073 | macros/latex-dev/base/ltnews16.pdf +2022/12/03 | 5775 | macros/latex-dev/base/ltnews16.tex +2022/12/03 | 166228 | macros/latex-dev/base/ltnews17.pdf +2022/12/03 | 8970 | macros/latex-dev/base/ltnews17.tex +2022/12/03 | 38033 | macros/latex-dev/base/ltnews18.pdf +2022/12/03 | 1341 | macros/latex-dev/base/ltnews18.tex +2022/12/03 | 230028 | macros/latex-dev/base/ltnews19.pdf +2022/12/03 | 4170 | macros/latex-dev/base/ltnews19.tex +2022/12/03 | 318548 | macros/latex-dev/base/ltnews20.pdf +2022/12/03 | 7221 | macros/latex-dev/base/ltnews20.tex +2022/12/03 | 244867 | macros/latex-dev/base/ltnews21.pdf +2022/12/03 | 9926 | macros/latex-dev/base/ltnews21.tex +2022/12/03 | 317773 | macros/latex-dev/base/ltnews22.pdf +2022/12/03 | 10792 | macros/latex-dev/base/ltnews22.tex +2022/12/03 | 286591 | macros/latex-dev/base/ltnews23.pdf +2022/12/03 | 10791 | macros/latex-dev/base/ltnews23.tex +2022/12/03 | 265279 | macros/latex-dev/base/ltnews24.pdf +2022/12/03 | 12334 | macros/latex-dev/base/ltnews24.tex +2022/12/03 | 204935 | macros/latex-dev/base/ltnews25.pdf +2022/12/03 | 5588 | macros/latex-dev/base/ltnews25.tex +2022/12/03 | 379462 | macros/latex-dev/base/ltnews26.pdf +2022/12/03 | 10798 | macros/latex-dev/base/ltnews26.tex +2022/12/03 | 250592 | macros/latex-dev/base/ltnews27.pdf +2022/12/03 | 5671 | macros/latex-dev/base/ltnews27.tex +2022/12/03 | 376643 | macros/latex-dev/base/ltnews28.pdf +2022/12/03 | 15047 | macros/latex-dev/base/ltnews28.tex +2022/12/03 | 455107 | macros/latex-dev/base/ltnews29.pdf +2022/12/03 | 18944 | macros/latex-dev/base/ltnews29.tex +2022/12/03 | 511909 | macros/latex-dev/base/ltnews30.pdf +2022/12/03 | 23637 | macros/latex-dev/base/ltnews30.tex +2022/12/03 | 526323 | macros/latex-dev/base/ltnews31.pdf +2022/12/03 | 30428 | macros/latex-dev/base/ltnews31.tex +2022/12/03 | 546160 | macros/latex-dev/base/ltnews32.pdf +2022/12/03 | 33239 | macros/latex-dev/base/ltnews32.tex +2022/12/03 | 522412 | macros/latex-dev/base/ltnews33.pdf +2022/12/03 | 33907 | macros/latex-dev/base/ltnews33.tex +2022/12/03 | 508044 | macros/latex-dev/base/ltnews34.pdf +2022/12/03 | 32307 | macros/latex-dev/base/ltnews34.tex +2022/12/03 | 563089 | macros/latex-dev/base/ltnews35.pdf +2022/12/03 | 38793 | macros/latex-dev/base/ltnews35.tex +2022/12/03 | 517565 | macros/latex-dev/base/ltnews36.pdf +2022/12/03 | 19329 | macros/latex-dev/base/ltnews36.tex +2022/12/03 | 408962 | macros/latex-dev/base/ltnews37.pdf +2022/12/03 | 11852 | macros/latex-dev/base/ltnews37.tex +2022/12/03 | 20469 | macros/latex-dev/base/ltnews.cls +2022/12/03 | 1255282 | macros/latex-dev/base/ltnews.pdf +2022/12/03 | 8367 | macros/latex-dev/base/ltnews.tex +2022/12/03 | 148294 | macros/latex-dev/base/ltoutenc.dtx +2022/12/03 | 3367 | macros/latex-dev/base/ltoutenc.ins +2022/12/03 | 178723 | macros/latex-dev/base/ltoutput.dtx +2022/12/03 | 14091 | macros/latex-dev/base/ltpage.dtx +2022/12/03 | 2728 | macros/latex-dev/base/ltpageno.dtx +2022/12/03 | 667129 | macros/latex-dev/base/ltpara-code.pdf +2022/12/03 | 99 | macros/latex-dev/base/ltpara-code.tex +2022/12/03 | 560008 | macros/latex-dev/base/ltpara-doc.pdf +2022/12/03 | 234 | macros/latex-dev/base/ltpara-doc.tex +2022/12/03 | 51606 | macros/latex-dev/base/ltpara.dtx +2022/12/03 | 6155 | macros/latex-dev/base/ltpar.dtx +2022/12/03 | 69002 | macros/latex-dev/base/ltpictur.dtx +2022/12/03 | 59499 | macros/latex-dev/base/ltplain.dtx +2022/12/03 | 33946 | macros/latex-dev/base/ltsect.dtx +2022/12/03 | 820928 | macros/latex-dev/base/ltshipout-code.pdf +2022/12/03 | 104 | macros/latex-dev/base/ltshipout-code.tex +2022/12/03 | 565931 | macros/latex-dev/base/ltshipout-doc.pdf +2022/12/03 | 240 | macros/latex-dev/base/ltshipout-doc.tex +2022/12/03 | 81202 | macros/latex-dev/base/ltshipout.dtx +2022/12/03 | 45754 | macros/latex-dev/base/ltspace.dtx +2022/12/03 | 47896 | macros/latex-dev/base/lttab.dtx +2022/12/03 | 90660 | macros/latex-dev/base/lttextcomp.dtx +2022/12/03 | 8731 | macros/latex-dev/base/ltthm.dtx +2022/12/03 | 15384 | macros/latex-dev/base/ltvers.dtx +2022/12/03 | 219349 | macros/latex-dev/base/ltx3info.pdf +2022/12/03 | 18299 | macros/latex-dev/base/ltx3info.tex +2022/12/03 | 27122 | macros/latex-dev/base/ltxcheck.tex +2022/12/03 | 22665 | macros/latex-dev/base/ltxdoc.dtx +2022/12/03 | 243286 | macros/latex-dev/base/ltxdoc.pdf +2022/12/03 | 7524 | macros/latex-dev/base/ltxguide.cls +2022/12/03 | 18363 | macros/latex-dev/base/ltxref.dtx +2022/12/03 | 10601 | macros/latex-dev/base/makeindx.dtx +2022/12/03 | 3434 | macros/latex-dev/base/makeindx.ins +2022/12/03 | 165821 | macros/latex-dev/base/makeindx.pdf +2022/12/03 | 11124 | macros/latex-dev/base/manifest.txt +2022/12/03 | 1937 | macros/latex-dev/base/minimal.cls +2022/12/03 | 257804 | macros/latex-dev/base/modguide.pdf +2022/12/03 | 16497 | macros/latex-dev/base/modguide.tex +2022/12/03 | 4254 | macros/latex-dev/base/newdc.ins +2022/12/03 | 6357 | macros/latex-dev/base/newlfont.dtx +2022/12/03 | 18399 | macros/latex-dev/base/nfssfont.dtx +2022/12/03 | 2893 | macros/latex-dev/base/nfssfont.ins +2022/12/03 | 211180 | macros/latex-dev/base/nfssfont.pdf +2022/12/03 | 3960 | macros/latex-dev/base/olddc.ins +2022/12/03 | 8626 | macros/latex-dev/base/oldlfont.dtx +2022/12/03 | 9345 | macros/latex-dev/base/preload.dtx +2022/12/03 | 13589 | macros/latex-dev/base/proc.dtx +2022/12/03 | 3401 | macros/latex-dev/base/proc.ins +2022/12/03 | 227059 | macros/latex-dev/base/proc.pdf +2022/12/03 | 3100 | macros/latex-dev/base/README.md +2022/12/03 | 7200 | macros/latex-dev/base/sample2e.tex +2022/12/03 | 89727 | macros/latex-dev/base/slides.dtx +2022/12/03 | 6760 | macros/latex-dev/base/slides.ins +2022/12/03 | 375518 | macros/latex-dev/base/slides.pdf +2022/12/03 | 15699 | macros/latex-dev/base/slifonts.fdd +2022/12/03 | 234191 | macros/latex-dev/base/slifonts.pdf +2022/12/03 | 1694 | macros/latex-dev/base/small2e.tex +2022/12/03 | 9401 | macros/latex-dev/base/source2edoc.cls +2022/12/03 | 5789493 | macros/latex-dev/base/source2e.pdf +2022/12/03 | 15306 | macros/latex-dev/base/source2e.tex +2022/12/03 | 9395 | macros/latex-dev/base/syntonly.dtx +2022/12/03 | 2896 | macros/latex-dev/base/syntonly.ins +2022/12/03 | 189819 | macros/latex-dev/base/syntonly.pdf +2022/12/03 | 12520 | macros/latex-dev/base/testpage.tex +2022/12/03 | 172867 | macros/latex-dev/base/tlc2.err +2022/12/03 | 290615 | macros/latex-dev/base/tlc2.pdf +2022/12/03 | 12242 | macros/latex-dev/base/tulm.fdd +2022/12/03 | 3781 | macros/latex-dev/base/tulm.ins +2022/12/03 | 162772 | macros/latex-dev/base/tulm.pdf +2022/12/03 | 3181 | macros/latex-dev/base/unpack.ins +2022/12/03 | 438515 | macros/latex-dev/base/usrguide-historic.pdf +2022/12/03 | 68732 | macros/latex-dev/base/usrguide-historic.tex +2022/12/03 | 474808 | macros/latex-dev/base/usrguide.pdf +2022/12/03 | 51005 | macros/latex-dev/base/usrguide.tex +2022/12/03 | 92280 | macros/latex-dev/base/utf8ienc.dtx +2022/12/03 | 353428 | macros/latex-dev/base/utf8ienc.pdf +2022/12/03 | 10251 | macros/latex-dev/base/webcomp.err +2022/12/03 | 146198 | macros/latex-dev/base/webcomp.pdf +2022/12/03 | 38914585 | macros/latex-dev/base.zip 2022/10/31 | 8663 | macros/latex-dev/required/amsmath/amsbsy.dtx 2022/10/31 | 1505 | macros/latex-dev/required/amsmath/amsbsy.ins 2022/10/31 | 174944 | macros/latex-dev/required/amsmath/amsbsy.pdf @@ -238441,12 +238444,12 @@ 2022/10/31 | 454511 | macros/latex-dev/required/amsmath/testmath.pdf 2022/10/31 | 82371 | macros/latex-dev/required/amsmath/testmath.tex 2022/11/02 | 2762700 | macros/latex-dev/required/amsmath.zip -2022/10/31 | 4174 | macros/latex-dev/required/firstaid/changes.txt -2022/10/31 | 2740 | macros/latex-dev/required/firstaid/firstaid.ins -2022/10/31 | 22445 | macros/latex-dev/required/firstaid/latex2e-first-aid-for-external-files.dtx -2022/10/31 | 268310 | macros/latex-dev/required/firstaid/latex2e-first-aid-for-external-files.pdf -2022/10/31 | 474 | macros/latex-dev/required/firstaid/README.md -2022/11/02 | 269550 | macros/latex-dev/required/firstaid.zip +2022/12/03 | 4607 | macros/latex-dev/required/firstaid/changes.txt +2022/12/03 | 2740 | macros/latex-dev/required/firstaid/firstaid.ins +2022/12/03 | 23583 | macros/latex-dev/required/firstaid/latex2e-first-aid-for-external-files.dtx +2022/12/03 | 271476 | macros/latex-dev/required/firstaid/latex2e-first-aid-for-external-files.pdf +2022/12/03 | 474 | macros/latex-dev/required/firstaid/README.md +2022/12/03 | 272901 | macros/latex-dev/required/firstaid.zip 2022/10/31 | 15737 | macros/latex-dev/required/graphics/cat.eps 2022/10/31 | 35660 | macros/latex-dev/required/graphics/changes.txt 2022/10/31 | 32194 | macros/latex-dev/required/graphics/color.dtx @@ -239623,18 +239626,18 @@ 2020/10/23 | 281887 | macros/luatex/generic/nodetree/nodetree.pdf 2020/10/23 | 4029 | macros/luatex/generic/nodetree/README.md 2020/10/23 | 289509 | macros/luatex/generic/nodetree.zip -2021/09/17 | 7235 | macros/luatex/generic/pdfextra/examples/pdfextra-example-latex.tex -2021/09/17 | 58592 | macros/luatex/generic/pdfextra/examples/pdfextra-example-part.prc -2021/09/17 | 385350 | macros/luatex/generic/pdfextra/examples/pdfextra-example.pdf -2021/09/17 | 9600 | macros/luatex/generic/pdfextra/examples/pdfextra-example.tex -2021/09/17 | 662 | macros/luatex/generic/pdfextra/LICENSE -2021/09/17 | 245952 | macros/luatex/generic/pdfextra/pdfextra-doc.pdf -2021/09/17 | 33962 | macros/luatex/generic/pdfextra/pdfextra-doc.tex -2021/09/17 | 68819 | macros/luatex/generic/pdfextra/pdfextra.opm -2021/09/17 | 69 | macros/luatex/generic/pdfextra/pdfextra.sty -2021/09/17 | 9358 | macros/luatex/generic/pdfextra/pdfextra.tex -2021/09/17 | 1101 | macros/luatex/generic/pdfextra/README.md -2021/09/18 | 714993 | macros/luatex/generic/pdfextra.zip +2022/12/03 | 7235 | macros/luatex/generic/pdfextra/examples/pdfextra-example-latex.tex +2022/12/03 | 58592 | macros/luatex/generic/pdfextra/examples/pdfextra-example-part.prc +2022/12/03 | 385337 | macros/luatex/generic/pdfextra/examples/pdfextra-example.pdf +2022/12/03 | 9600 | macros/luatex/generic/pdfextra/examples/pdfextra-example.tex +2022/12/03 | 662 | macros/luatex/generic/pdfextra/LICENSE +2022/12/03 | 232911 | macros/luatex/generic/pdfextra/pdfextra-doc.pdf +2022/12/03 | 33962 | macros/luatex/generic/pdfextra/pdfextra-doc.tex +2022/12/03 | 69143 | macros/luatex/generic/pdfextra/pdfextra.opm +2022/12/03 | 69 | macros/luatex/generic/pdfextra/pdfextra.sty +2022/12/03 | 9729 | macros/luatex/generic/pdfextra/pdfextra.tex +2022/12/03 | 1101 | macros/luatex/generic/pdfextra/README.md +2022/12/03 | 702657 | macros/luatex/generic/pdfextra.zip 2022/10/24 | 25612 | macros/luatex/generic/penlight/penlightextras.lua 2022/10/24 | 425636 | macros/luatex/generic/penlight/penlight.lua 2022/10/24 | 59499 | macros/luatex/generic/penlight/penlight.pdf @@ -241506,15 +241509,15 @@ 2007/07/13 | 9394 | macros/omega/latex/contrib/tamil-omega/yudit/Tamil2.my 2007/07/13 | 11462 | macros/omega/latex/contrib/tamil-omega/yudit/yudit.properties 2007/12/12 | 900761 | macros/omega/latex/contrib/tamil-omega.zip -2022/06/10 | 6916 | macros/optex/base/alloc.opm -2022/02/21 | 5439 | macros/optex/base/basic-macros.opm -2022/05/12 | 33518 | macros/optex/base/bib-iso690.opm -2022/05/12 | 5870 | macros/optex/base/bib-simple.opm -2021/05/16 | 13887 | macros/optex/base/cite-bib.opm +2022/11/21 | 6838 | macros/optex/base/alloc.opm +2022/11/22 | 6115 | macros/optex/base/basic-macros.opm +2022/11/23 | 33518 | macros/optex/base/bib-iso690.opm +2022/10/10 | 5941 | macros/optex/base/bib-simple.opm +2022/11/04 | 13879 | macros/optex/base/cite-bib.opm 2022/03/07 | 20216 | macros/optex/base/colors.opm -2022/07/01 | 15245 | macros/optex/base/doc.opm +2022/11/25 | 15450 | macros/optex/base/doc.opm 2021/04/22 | 657 | macros/optex/base/f-adventor.opm -2022/07/11 | 10575 | macros/optex/base/fams-ini.opm +2022/12/01 | 11276 | macros/optex/base/fams-ini.opm 2021/04/22 | 1156 | macros/optex/base/f-antt.opm 2022/05/02 | 652 | macros/optex/base/f-baskervald.opm 2021/04/22 | 665 | macros/optex/base/f-baskerville.opm @@ -241526,9 +241529,12 @@ 2021/05/21 | 959 | macros/optex/base/f-erewhon.opm 2021/04/22 | 882 | macros/optex/base/f-garamondl.opm 2021/04/22 | 635 | macros/optex/base/f-gfsbodoni.opm -2022/05/14 | 11274 | macros/optex/base/f-heros.opm +2022/11/19 | 10733 | macros/optex/base/f-heros.opm +2022/11/29 | 1058 | macros/optex/base/f-iwona.opm 2021/01/07 | 1201 | macros/optex/base/f-kerkis.opm 2021/04/27 | 1468 | macros/optex/base/f-kpfonts.opm +2022/11/29 | 1054 | macros/optex/base/f-kurier.opm +2022/10/18 | 1408 | macros/optex/base/f-lato.opm 2021/04/27 | 2393 | macros/optex/base/f-libertine.opm 2021/04/22 | 2167 | macros/optex/base/f-libertine-s.opm 2021/04/27 | 1527 | macros/optex/base/f-libertinus.opm @@ -241538,12 +241544,12 @@ 2021/04/22 | 1200 | macros/optex/base/f-merriweather.opm 2022/07/11 | 1423 | macros/optex/base/f-montserrat.opm 2021/04/27 | 1337 | macros/optex/base/f-newcm.opm -2022/01/19 | 9000 | macros/optex/base/fnotes.opm -2022/07/11 | 4601 | macros/optex/base/fonts-catalog.opm +2022/10/29 | 9000 | macros/optex/base/fnotes.opm +2022/11/04 | 4594 | macros/optex/base/fonts-catalog.opm 2022/02/22 | 9448 | macros/optex/base/fonts-opmac.opm 2022/02/12 | 2423 | macros/optex/base/fonts-preload.opm -2022/02/22 | 13849 | macros/optex/base/fonts-resize.opm -2022/03/06 | 39961 | macros/optex/base/fonts-select.opm +2022/11/08 | 15673 | macros/optex/base/fonts-resize.opm +2022/12/01 | 40299 | macros/optex/base/fonts-select.opm 2022/05/22 | 893 | macros/optex/base/f-overlock.opm 2021/04/22 | 694 | macros/optex/base/f-pagella.opm 2021/04/22 | 1515 | macros/optex/base/f-poltawski.opm @@ -241556,53 +241562,53 @@ 2021/04/22 | 684 | macros/optex/base/f-termes.opm 2021/04/22 | 762 | macros/optex/base/f-xcharter.opm 2022/06/03 | 742 | macros/optex/base/f-xits.opm -2022/03/06 | 20440 | macros/optex/base/graphics.opm +2022/11/06 | 20551 | macros/optex/base/graphics.opm 2021/01/07 | 2741 | macros/optex/base/hisyntax-c.opm 2022/05/12 | 1109 | macros/optex/base/hisyntax-html.opm -2022/02/11 | 2916 | macros/optex/base/hisyntax-lua.opm -2022/05/12 | 9673 | macros/optex/base/hi-syntax.opm +2022/11/17 | 2916 | macros/optex/base/hisyntax-lua.opm +2022/10/29 | 9673 | macros/optex/base/hi-syntax.opm 2021/07/16 | 3014 | macros/optex/base/hisyntax-python.opm 2021/01/07 | 1566 | macros/optex/base/hisyntax-tex.opm -2021/08/31 | 9966 | macros/optex/base/hyperlinks.opm -2022/06/28 | 12575 | macros/optex/base/if-macros.opm +2022/10/29 | 9966 | macros/optex/base/hyperlinks.opm +2022/12/02 | 15374 | macros/optex/base/if-macros.opm 2022/02/28 | 3269 | macros/optex/base/keyval.opm -2022/06/28 | 6663 | macros/optex/base/lang-data.opm -2022/06/28 | 16033 | macros/optex/base/lang-decl.opm -2022/02/19 | 7290 | macros/optex/base/languages.opm +2022/10/11 | 7206 | macros/optex/base/lang-data.opm +2022/10/11 | 16512 | macros/optex/base/lang-decl.opm +2022/11/18 | 7314 | macros/optex/base/languages.opm 2021/03/10 | 5218 | macros/optex/base/lists.opm 2021/01/11 | 2377 | macros/optex/base/logos.opm 2021/04/06 | 7398 | macros/optex/base/luatex-ini.opm -2022/07/01 | 24552 | macros/optex/base/makeindex.opm +2022/10/29 | 24552 | macros/optex/base/makeindex.opm 2021/07/18 | 6490 | macros/optex/base/maketoc.opm 2021/03/15 | 3770 | macros/optex/base/margins.opm 2021/04/20 | 13569 | macros/optex/base/mathclass.opm -2021/09/15 | 44605 | macros/optex/base/math-macros.opm -2022/07/22 | 10719 | macros/optex/base/math-preload.opm -2022/07/22 | 14925 | macros/optex/base/math-unicode.opm -2022/05/24 | 12468 | macros/optex/base/more-macros.opm -2022/05/05 | 6328 | macros/optex/base/multicolumns.opm -2022/08/04 | 4124 | macros/optex/base/optex.ini -2022/03/10 | 26533 | macros/optex/base/optex.lua -2022/05/04 | 8280 | macros/optex/base/others.opm -2021/02/15 | 4624 | macros/optex/base/outlines.opm -2022/03/07 | 11274 | macros/optex/base/output.opm +2022/09/04 | 44605 | macros/optex/base/math-macros.opm +2022/12/01 | 11215 | macros/optex/base/math-preload.opm +2022/11/25 | 17241 | macros/optex/base/more-macros.opm +2022/11/26 | 6505 | macros/optex/base/multicolumns.opm +2022/12/02 | 4074 | macros/optex/base/optex.ini +2022/11/17 | 28297 | macros/optex/base/optex.lua +2022/10/29 | 8280 | macros/optex/base/others.opm +2022/11/25 | 4624 | macros/optex/base/outlines.opm +2022/10/22 | 11366 | macros/optex/base/output.opm 2022/07/22 | 26032 | macros/optex/base/parameters.opm -2022/07/20 | 5518 | macros/optex/base/pdfuni-string.opm -2022/02/19 | 14535 | macros/optex/base/plain-macros.opm -2022/01/13 | 13736 | macros/optex/base/prefixed.opm +2022/10/29 | 5518 | macros/optex/base/pdfuni-string.opm +2022/10/14 | 14785 | macros/optex/base/plain-macros.opm +2022/11/25 | 17087 | macros/optex/base/prefixed.opm 2022/06/09 | 2309 | macros/optex/base/print-unimath.opm -2022/02/01 | 5290 | macros/optex/base/references.opm -2022/02/05 | 6776 | macros/optex/base/ref-file.opm -2022/08/02 | 21126 | macros/optex/base/sections.opm +2022/10/29 | 5290 | macros/optex/base/references.opm +2022/08/30 | 6782 | macros/optex/base/ref-file.opm +2022/11/13 | 21886 | macros/optex/base/sections.opm 2022/05/12 | 13008 | macros/optex/base/slides.opm 2022/01/13 | 2754 | macros/optex/base/styles.opm -2022/05/03 | 27870 | macros/optex/base/table.opm +2022/10/29 | 27870 | macros/optex/base/table.opm 2022/02/05 | 122830 | macros/optex/base/uni-lcuc.opm -2022/07/20 | 20634 | macros/optex/base/unimath-codes.opm +2022/11/20 | 21540 | macros/optex/base/unimath-codes.opm +2022/12/01 | 17793 | macros/optex/base/unimath-macros.opm 2022/02/08 | 241449 | macros/optex/base/unimath-table.opm 2022/02/08 | 16053 | macros/optex/base/usebib.opm -2022/04/23 | 17666 | macros/optex/base/verbatim.opm -2022/05/10 | 9599 | macros/optex/demo/op-biblist.bib +2022/10/29 | 17666 | macros/optex/base/verbatim.opm +2022/09/17 | 9599 | macros/optex/demo/op-biblist.bib 2022/01/22 | 3498 | macros/optex/demo/op-demo.tex 2021/01/07 | 1192 | macros/optex/demo/op-letter-cs.tex 2021/01/07 | 573 | macros/optex/demo/op-letter-en.tex @@ -241610,25 +241616,25 @@ 2020/05/16 | 512984 | macros/optex/demo/op-ring.png 2020/05/17 | 62385 | macros/optex/demo/op-slides-bg.png 2021/04/13 | 10355 | macros/optex/demo/op-slides.tex -2021/05/27 | 518 | macros/optex/doc/mte-doc.tex 2022/01/13 | 34625 | macros/optex/doc/omls.tex 2020/05/16 | 1460 | macros/optex/doc/optex.1 -2022/08/04 | 1437685 | macros/optex/doc/optex-doc.pdf -2022/08/04 | 4482 | macros/optex/doc/optex-doc.tex -2022/06/22 | 70332 | macros/optex/doc/optex-math.tex -2022/04/22 | 8441 | macros/optex/doc/optex-techdoc.tex -2022/07/11 | 88853 | macros/optex/doc/optex-userdoc.tex +2022/12/02 | 1484007 | macros/optex/doc/optex-doc.pdf +2022/12/02 | 4482 | macros/optex/doc/optex-doc.tex +2022/11/19 | 70805 | macros/optex/doc/optex-math.tex +2022/11/22 | 8487 | macros/optex/doc/optex-techdoc.tex +2022/11/29 | 89762 | macros/optex/doc/optex-userdoc.tex 2021/05/02 | 1949 | macros/optex/pkg/emoji.opm +2022/11/26 | 27612 | macros/optex/pkg/math.opm 2022/03/05 | 327 | macros/optex/pkg/minim-mp.opm 2022/03/06 | 7513 | macros/optex/pkg/minim.opm 2022/03/06 | 3196 | macros/optex/pkg/minim-pdf.opm -2021/05/27 | 21561 | macros/optex/pkg/mte.opm +2022/11/21 | 22083 | macros/optex/pkg/mte.opm 2022/02/19 | 1282 | macros/optex/pkg/plain-at.opm 2020/11/11 | 85045 | macros/optex/pkg/qrcode.opm 2022/03/18 | 5084 | macros/optex/pkg/tikz.opm 2021/05/02 | 7597 | macros/optex/pkg/vlna.opm -2022/08/04 | 8011 | macros/optex/README -2022/08/04 | 2425056 | macros/optex.zip +2022/12/02 | 8637 | macros/optex/README +2022/12/03 | 2488994 | macros/optex.zip 2022/01/06 | 732 | macros/pdftex/mptopdf/doc/context/scripts/mkii/mptopdf.man 2022/01/06 | 4557 | macros/pdftex/mptopdf/scripts/context/perl/mptopdf.pl 2022/01/06 | 4608 | macros/pdftex/mptopdf/scripts/context/stubs/mswin/mptopdf.exe @@ -249119,12 +249125,12 @@ 2020/09/29 | 211 | macros/unicodetex/latex/lilyglyphs/tex/README-tex 2020/09/29 | 49 | macros/unicodetex/latex/lilyglyphs/VERSION 2020/09/29 | 2283370 | macros/unicodetex/latex/lilyglyphs.zip -2022/10/23 | 19105 | macros/unicodetex/latex/njuthesis/LICENSE -2022/10/23 | 298140 | macros/unicodetex/latex/njuthesis/njuthesis.dtx -2022/10/23 | 3094 | macros/unicodetex/latex/njuthesis/njuthesis.ins -2022/10/23 | 1200264 | macros/unicodetex/latex/njuthesis/njuthesis.pdf -2022/10/23 | 1077 | macros/unicodetex/latex/njuthesis/README.md -2022/10/23 | 1266830 | macros/unicodetex/latex/njuthesis.zip +2022/12/03 | 19105 | macros/unicodetex/latex/njuthesis/LICENSE +2022/12/03 | 300296 | macros/unicodetex/latex/njuthesis/njuthesis.dtx +2022/12/03 | 3094 | macros/unicodetex/latex/njuthesis/njuthesis.ins +2022/12/03 | 1176569 | macros/unicodetex/latex/njuthesis/njuthesis.pdf +2022/12/03 | 1077 | macros/unicodetex/latex/njuthesis/README.md +2022/12/03 | 1244739 | macros/unicodetex/latex/njuthesis.zip 2021/08/05 | 269 | macros/unicodetex/latex/nwafuthesis/build.sh 2021/08/05 | 263 | macros/unicodetex/latex/nwafuthesis/build-win.bat 2021/08/05 | 218987 | macros/unicodetex/latex/nwafuthesis/logo/building.jpg @@ -250116,12 +250122,12 @@ 2011/05/07 | 5176 | macros/xetex/latex/unisugar/unisugar.sty 2011/05/07 | 25480 | macros/xetex/latex/unisugar/unisugar.tex 2011/05/08 | 495308 | macros/xetex/latex/unisugar.zip -2022/12/01 | 3125 | macros/xetex/latex/xduts/README.md -2022/12/01 | 881135 | macros/xetex/latex/xduts/xdulogo.pdf -2022/12/01 | 245152 | macros/xetex/latex/xduts/xduts.dtx -2022/12/01 | 1111 | macros/xetex/latex/xduts/xduts.ins -2022/12/01 | 306469 | macros/xetex/latex/xduts/xduts.pdf -2022/12/01 | 1231367 | macros/xetex/latex/xduts.zip +2022/12/03 | 3125 | macros/xetex/latex/xduts/README.md +2022/12/03 | 881135 | macros/xetex/latex/xduts/xdulogo.pdf +2022/12/03 | 250660 | macros/xetex/latex/xduts/xduts.dtx +2022/12/03 | 1111 | macros/xetex/latex/xduts/xduts.ins +2022/12/03 | 307600 | macros/xetex/latex/xduts/xduts.pdf +2022/12/03 | 1233271 | macros/xetex/latex/xduts.zip 2017/08/03 | 11999 | macros/xetex/latex/xechangebar/cbtest1.tex 2017/08/03 | 338 | macros/xetex/latex/xechangebar/README 2017/08/03 | 35213 | macros/xetex/latex/xechangebar/xechangebar.sty @@ -279885,7 +279891,7 @@ 2021/05/03 | 629 | support/TeX4ht/doc/README 2020/08/24 | 358454 | support/TeX4ht/doc/TeX4ht-doc.tex 2021/05/11 | 262 | support/TeX4ht/README -2022/12/01 | 210493 | support/TeX4ht/source/ChangeLog +2022/12/02 | 210677 | support/TeX4ht/source/ChangeLog 2021/05/03 | 1375 | support/TeX4ht/source/checklog.lua 2021/05/03 | 1189 | support/TeX4ht/source/common-code.tex 2021/05/03 | 2727 | support/TeX4ht/source/common-info.tex @@ -279897,7 +279903,7 @@ 2021/05/03 | 1121 | support/TeX4ht/source/README 2021/05/03 | 1744 | support/TeX4ht/source/t1fontmake.lua 2021/05/03 | 297 | support/TeX4ht/source/t1fontsample.tex -2022/11/28 | 1143935 | support/TeX4ht/source/tex4ht-4ht.tex +2022/12/02 | 1144061 | support/TeX4ht/source/tex4ht-4ht.tex 2021/05/03 | 7127 | support/TeX4ht/source/tex4ht-auto-script.tex 2021/05/16 | 1539 | support/TeX4ht/source/tex4ht-bibtex2.tex 2022/06/05 | 21307 | support/TeX4ht/source/tex4ht-cond4ht.tex @@ -286417,8 +286423,8 @@ 2022/07/29 | 106972 | systems/texlive/tlnet/archive/csassignments.doc.r63992.tar.xz 2022/07/29 | 3884 | systems/texlive/tlnet/archive/csassignments.r63992.tar.xz 2022/07/29 | 8200 | systems/texlive/tlnet/archive/csassignments.source.r63992.tar.xz -2022/11/30 | 282672 | systems/texlive/tlnet/archive/csbulletin.doc.r65146.tar.xz -2022/11/30 | 12032 | systems/texlive/tlnet/archive/csbulletin.r65146.tar.xz +2022/12/03 | 282532 | systems/texlive/tlnet/archive/csbulletin.doc.r65168.tar.xz +2022/12/03 | 12932 | systems/texlive/tlnet/archive/csbulletin.r65168.tar.xz 2019/02/28 | 340 | systems/texlive/tlnet/archive/cslatex.aarch64-linux.r46208.tar.xz 2019/02/28 | 340 | systems/texlive/tlnet/archive/cslatex.amd64-freebsd.r16472.tar.xz 2019/02/28 | 340 | systems/texlive/tlnet/archive/cslatex.amd64-netbsd.r30191.tar.xz @@ -286615,9 +286621,9 @@ 2019/02/28 | 5132 | systems/texlive/tlnet/archive/cv4tw.r34577.tar.xz 2019/02/28 | 52576 | systems/texlive/tlnet/archive/cv.doc.r15878.tar.xz 2019/02/28 | 832 | systems/texlive/tlnet/archive/cv.r15878.tar.xz -2022/11/11 | 490640 | systems/texlive/tlnet/archive/cvss.doc.r64985.tar.xz -2022/11/11 | 3572 | systems/texlive/tlnet/archive/cvss.r64985.tar.xz -2022/11/11 | 7364 | systems/texlive/tlnet/archive/cvss.source.r64985.tar.xz +2022/12/03 | 574872 | systems/texlive/tlnet/archive/cvss.doc.r65169.tar.xz +2022/12/03 | 3320 | systems/texlive/tlnet/archive/cvss.r65169.tar.xz +2022/12/03 | 7376 | systems/texlive/tlnet/archive/cvss.source.r65169.tar.xz 2022/03/06 | 147572 | systems/texlive/tlnet/archive/cweb.aarch64-linux.r62457.tar.xz 2022/03/05 | 177496 | systems/texlive/tlnet/archive/cweb.amd64-freebsd.r62391.tar.xz 2022/03/05 | 147656 | systems/texlive/tlnet/archive/cweb.amd64-netbsd.r62430.tar.xz @@ -288136,9 +288142,9 @@ 2019/02/28 | 4768 | systems/texlive/tlnet/archive/feynmp-auto.source.r30223.tar.xz 2022/07/21 | 13508 | systems/texlive/tlnet/archive/feyn.r63945.tar.xz 2022/07/21 | 16364 | systems/texlive/tlnet/archive/feyn.source.r63945.tar.xz -2022/11/29 | 545792 | systems/texlive/tlnet/archive/ffcode.doc.r65132.tar.xz -2022/11/29 | 2176 | systems/texlive/tlnet/archive/ffcode.r65132.tar.xz -2022/11/29 | 4980 | systems/texlive/tlnet/archive/ffcode.source.r65132.tar.xz +2022/12/03 | 545808 | systems/texlive/tlnet/archive/ffcode.doc.r65170.tar.xz +2022/12/03 | 2180 | systems/texlive/tlnet/archive/ffcode.r65170.tar.xz +2022/12/03 | 5016 | systems/texlive/tlnet/archive/ffcode.source.r65170.tar.xz 2019/02/28 | 381912 | systems/texlive/tlnet/archive/ffslides.doc.r38895.tar.xz 2019/02/28 | 4952 | systems/texlive/tlnet/archive/ffslides.r38895.tar.xz 2019/02/28 | 137820 | systems/texlive/tlnet/archive/fge.doc.r37628.tar.xz @@ -294552,8 +294558,8 @@ 2019/02/28 | 292656 | systems/texlive/tlnet/archive/simplecv.doc.r35537.tar.xz 2019/02/28 | 2112 | systems/texlive/tlnet/archive/simplecv.r35537.tar.xz 2019/02/28 | 5844 | systems/texlive/tlnet/archive/simplecv.source.r35537.tar.xz -2022/11/26 | 1985216 | systems/texlive/tlnet/archive/simpleicons.doc.r65102.tar.xz -2022/11/26 | 2704520 | systems/texlive/tlnet/archive/simpleicons.r65102.tar.xz +2022/12/03 | 1986672 | systems/texlive/tlnet/archive/simpleicons.doc.r65167.tar.xz +2022/12/03 | 2707528 | systems/texlive/tlnet/archive/simpleicons.r65167.tar.xz 2019/02/28 | 224844 | systems/texlive/tlnet/archive/simpleinvoice.doc.r45673.tar.xz 2019/02/28 | 2420 | systems/texlive/tlnet/archive/simpleinvoice.r45673.tar.xz 2022/10/03 | 130940 | systems/texlive/tlnet/archive/simplekv.doc.r64578.tar.xz @@ -295239,14 +295245,14 @@ 2022/02/27 | 108804 | systems/texlive/tlnet/archive/tex4ht.amd64-freebsd.r62206.tar.xz 2022/02/27 | 87364 | systems/texlive/tlnet/archive/tex4ht.amd64-netbsd.r62220.tar.xz 2022/04/21 | 69948 | systems/texlive/tlnet/archive/tex4ht.armhf-linux.r63092.tar.xz -2022/12/02 | 136384 | systems/texlive/tlnet/archive/tex4ht.doc.r65162.tar.xz +2022/12/03 | 136384 | systems/texlive/tlnet/archive/tex4ht.doc.r65171.tar.xz 2022/03/01 | 58328 | systems/texlive/tlnet/archive/tex4ht.i386-cygwin.r62282.tar.xz 2022/02/27 | 93760 | systems/texlive/tlnet/archive/tex4ht.i386-freebsd.r62206.tar.xz 2022/02/27 | 91280 | systems/texlive/tlnet/archive/tex4ht.i386-linux.r62210.tar.xz 2022/02/27 | 76200 | systems/texlive/tlnet/archive/tex4ht.i386-netbsd.r62220.tar.xz 2022/02/27 | 83964 | systems/texlive/tlnet/archive/tex4ht.i386-solaris.r62206.tar.xz -2022/12/02 | 974276 | systems/texlive/tlnet/archive/tex4ht.r65162.tar.xz -2022/12/02 | 1302008 | systems/texlive/tlnet/archive/tex4ht.source.r65162.tar.xz +2022/12/03 | 974364 | systems/texlive/tlnet/archive/tex4ht.r65171.tar.xz +2022/12/03 | 1285060 | systems/texlive/tlnet/archive/tex4ht.source.r65171.tar.xz 2022/02/28 | 184748 | systems/texlive/tlnet/archive/tex4ht.universal-darwin.r62258.tar.xz 2022/02/27 | 57768 | systems/texlive/tlnet/archive/tex4ht.win32.r62199.tar.xz 2022/03/01 | 58016 | systems/texlive/tlnet/archive/tex4ht.x86_64-cygwin.r62279.tar.xz @@ -295500,7 +295506,7 @@ 2022/09/13 | 600 | systems/texlive/tlnet/archive/texlive-scripts.amd64-freebsd.r64356.tar.xz 2022/09/13 | 596 | systems/texlive/tlnet/archive/texlive-scripts.amd64-netbsd.r64356.tar.xz 2022/09/13 | 596 | systems/texlive/tlnet/archive/texlive-scripts.armhf-linux.r64356.tar.xz -2022/12/02 | 423300 | systems/texlive/tlnet/archive/texlive-scripts.doc.r65156.tar.xz +2022/12/03 | 423444 | systems/texlive/tlnet/archive/texlive-scripts.doc.r65164.tar.xz 2020/01/27 | 916 | systems/texlive/tlnet/archive/texlive-scripts-extra.aarch64-linux.r53577.tar.xz 2020/01/27 | 924 | systems/texlive/tlnet/archive/texlive-scripts-extra.amd64-freebsd.r53577.tar.xz 2020/01/27 | 916 | systems/texlive/tlnet/archive/texlive-scripts-extra.amd64-netbsd.r53577.tar.xz @@ -295524,7 +295530,7 @@ 2022/09/13 | 592 | systems/texlive/tlnet/archive/texlive-scripts.i386-linux.r64356.tar.xz 2022/09/13 | 596 | systems/texlive/tlnet/archive/texlive-scripts.i386-netbsd.r64356.tar.xz 2022/09/13 | 596 | systems/texlive/tlnet/archive/texlive-scripts.i386-solaris.r64356.tar.xz -2022/12/02 | 113688 | systems/texlive/tlnet/archive/texlive-scripts.r65156.tar.xz +2022/12/03 | 113704 | systems/texlive/tlnet/archive/texlive-scripts.r65164.tar.xz 2022/09/13 | 580 | systems/texlive/tlnet/archive/texlive-scripts.universal-darwin.r64356.tar.xz 2022/11/29 | 36264 | systems/texlive/tlnet/archive/texlive-scripts.win32.r65128.tar.xz 2022/09/13 | 596 | systems/texlive/tlnet/archive/texlive-scripts.x86_64-cygwin.r64356.tar.xz @@ -297375,16 +297381,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 2022/07/17 | 124404 | systems/texlive/tlnet/install-tl -2022/12/02 | 5834818 | systems/texlive/tlnet/install-tl-unx.tar.gz -2022/12/02 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512 -2022/12/02 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc +2022/12/03 | 5834544 | systems/texlive/tlnet/install-tl-unx.tar.gz +2022/12/03 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512 +2022/12/03 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc 2021/04/11 | 4945 | systems/texlive/tlnet/install-tl-windows.bat -2022/12/02 | 20436150 | systems/texlive/tlnet/install-tl-windows.exe -2022/12/02 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512 -2022/12/02 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc -2022/12/02 | 25518533 | systems/texlive/tlnet/install-tl.zip -2022/12/02 | 145 | systems/texlive/tlnet/install-tl.zip.sha512 -2022/12/02 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc +2022/12/03 | 20435502 | systems/texlive/tlnet/install-tl-windows.exe +2022/12/03 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512 +2022/12/03 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc +2022/12/03 | 25518541 | systems/texlive/tlnet/install-tl.zip +2022/12/03 | 145 | systems/texlive/tlnet/install-tl.zip.sha512 +2022/12/03 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc 2022/04/03 | 1229 | systems/texlive/tlnet/README.md 2022/04/03 | 0 | systems/texlive/tlnet/TEXLIVE_2022 2022/02/28 | 7791 | systems/texlive/tlnet/tlpkg/gpg/pubring.gpg @@ -297394,7 +297400,7 @@ 2022/02/28 | 1280 | systems/texlive/tlnet/tlpkg/gpg/trustdb.gpg 2022/10/09 | 49938 | systems/texlive/tlnet/tlpkg/installer/config.guess 2010/11/11 | 11651 | systems/texlive/tlnet/tlpkg/installer/COPYING.MinGW-runtime.txt -2022/12/01 | 7335 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl +2022/12/02 | 7382 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl 2022/10/13 | 225403 | systems/texlive/tlnet/tlpkg/installer/curl/curl-ca-bundle.crt 2020/04/15 | 2606592 | systems/texlive/tlnet/tlpkg/installer/curl/curl.exe 2017/04/16 | 2629 | systems/texlive/tlnet/tlpkg/installer/installer-options.txt @@ -297437,12 +297443,12 @@ 2021/05/16 | 20371 | systems/texlive/tlnet/tlpkg/TeXLive/TLCrypto.pm 2021/12/21 | 5429 | systems/texlive/tlnet/tlpkg/TeXLive/TLDownload.pm 2021/12/21 | 27582 | systems/texlive/tlnet/tlpkg/TeXLive/TLPaper.pm -2022/12/02 | 17879212 | systems/texlive/tlnet/tlpkg/texlive.tlpdb -2022/12/02 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5 +2022/12/03 | 17879282 | systems/texlive/tlnet/tlpkg/texlive.tlpdb +2022/12/03 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5 2022/04/18 | 86658 | systems/texlive/tlnet/tlpkg/TeXLive/TLPDB.pm -2022/12/02 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512 -2022/12/02 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc -2022/12/02 | 2431632 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz +2022/12/03 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512 +2022/12/03 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc +2022/12/03 | 2430876 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz 2022/09/14 | 58922 | systems/texlive/tlnet/tlpkg/TeXLive/TLPOBJ.pm 2022/10/04 | 42404 | systems/texlive/tlnet/tlpkg/TeXLive/TLPSRC.pm 2021/12/21 | 16130 | systems/texlive/tlnet/tlpkg/TeXLive/TLTREE.pm @@ -307542,7 +307548,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 -2022/12/03 | 186 | timestamp +2022/12/04 | 186 | timestamp 2002/08/26 | 61898 | usergrps/dante/antrag.pdf 2002/08/26 | 118217 | usergrps/dante/antrag.ps 2022/02/28 | 917 | usergrps/dante/dtk/doc/beispiel.bib diff --git a/FILES.byname.gz b/FILES.byname.gz index cba957ac6b..25ab251969 100644 Binary files a/FILES.byname.gz and b/FILES.byname.gz differ diff --git a/FILES.last07days b/FILES.last07days index b61067a4de..6ca9f03fb8 100644 --- a/FILES.last07days +++ b/FILES.last07days @@ -1,8 +1,383 @@ -2022/12/02 | 974276 | systems/texlive/tlnet/archive/tex4ht.r65162.tar.xz +2022/12/03 | 99 | macros/latex-dev/base/ltpara-code.tex +2022/12/03 | 998 | macros/latex/contrib/biblatex-contrib/biblatex-publist/publist.dbx +2022/12/03 | 9926 | macros/latex-dev/base/ltnews21.tex +2022/12/03 | 9779 | macros/latex-dev/base/format.ins +2022/12/03 | 974364 | systems/texlive/tlnet/archive/tex4ht.r65171.tar.xz +2022/12/03 | 9729 | macros/luatex/generic/pdfextra/pdfextra.tex +2022/12/03 | 972411 | macros/latex/contrib/ppt-slides.zip +2022/12/03 | 96 | macros/latex-dev/base/doc-code.tex +2022/12/03 | 9600 | macros/luatex/generic/pdfextra/examples/pdfextra-example.tex +2022/12/03 | 9557 | macros/latex-dev/base/ltcntrl.dtx +2022/12/03 | 94352 | macros/latex/contrib/ppt-slides/socrates.jpg +2022/12/03 | 9401 | macros/latex-dev/base/source2edoc.cls +2022/12/03 | 9395 | macros/latex-dev/base/syntonly.dtx +2022/12/03 | 9345 | macros/latex-dev/base/preload.dtx +2022/12/03 | 92954 | macros/latex-dev/base/ltdefns.dtx +2022/12/03 | 92280 | macros/latex-dev/base/utf8ienc.dtx +2022/12/03 | 9068 | macros/latex-dev/base/lppl-1-0.txt +2022/12/03 | 90660 | macros/latex-dev/base/lttextcomp.dtx +2022/12/03 | 89727 | macros/latex-dev/base/slides.dtx +2022/12/03 | 8970 | macros/latex-dev/base/ltnews17.tex +2022/12/03 | 885857 | macros/latex/contrib/ppt-slides/ppt-slides.pdf +2022/12/03 | 8827 | macros/latex/contrib/biblatex-contrib/biblatex-publist/README +2022/12/03 | 881135 | macros/xetex/latex/xduts/xdulogo.pdf +2022/12/03 | 8731 | macros/latex-dev/base/ltthm.dtx +2022/12/03 | 8626 | macros/latex-dev/base/oldlfont.dtx +2022/12/03 | 84215 | macros/latex-dev/base/ltfssini.dtx +2022/12/03 | 8367 | macros/latex-dev/base/ltnews.tex +2022/12/03 | 82481 | macros/latex-dev/base/ltfssbas.dtx +2022/12/03 | 820928 | macros/latex-dev/base/ltshipout-code.pdf +2022/12/03 | 81202 | macros/latex-dev/base/ltshipout.dtx +2022/12/03 | 803060 | macros/latex-dev/base/ltfilehook-code.pdf +2022/12/03 | 755547 | macros/latex-dev/base/doc.pdf +2022/12/03 | 7524 | macros/latex-dev/base/ltxguide.cls +2022/12/03 | 75111 | macros/latex-dev/base/ltfssdcl.dtx +2022/12/03 | 74886 | macros/latex-dev/base/ltluatex.dtx +2022/12/03 | 7376 | systems/texlive/tlnet/archive/cvss.source.r65169.tar.xz +2022/12/03 | 72475 | macros/latex-dev/base/ltfsstrc.dtx +2022/12/03 | 7235 | macros/luatex/generic/pdfextra/examples/pdfextra-example-latex.tex +2022/12/03 | 7221 | macros/latex-dev/base/ltnews20.tex +2022/12/03 | 7216 | macros/latex-dev/base/exscale.dtx +2022/12/03 | 7200 | macros/latex-dev/base/sample2e.tex +2022/12/03 | 719408 | macros/latex-dev/base/ltcmdhooks-code.pdf +2022/12/03 | 715658 | macros/latex-dev/base/ltmarks-code.pdf +2022/12/03 | 7104 | macros/latex-dev/base/alltt.dtx +2022/12/03 | 7029 | macros/latex-dev/base/ltnews13.tex +2022/12/03 | 702657 | macros/luatex/generic/pdfextra.zip +2022/12/03 | 701473 | macros/latex-dev/base/lthooks-doc.pdf +2022/12/03 | 69 | macros/luatex/generic/pdfextra/pdfextra.sty +2022/12/03 | 69315 | macros/latex-dev/base/clsguide.tex +2022/12/03 | 69143 | macros/luatex/generic/pdfextra/pdfextra.opm +2022/12/03 | 69002 | macros/latex-dev/base/ltpictur.dtx +2022/12/03 | 68732 | macros/latex-dev/base/usrguide-historic.tex +2022/12/03 | 6760 | macros/latex-dev/base/slides.ins +2022/12/03 | 67351 | macros/latex-dev/base/ltfilehook.dtx +2022/12/03 | 6709 | macros/latex-dev/base/latexsym.dtx +2022/12/03 | 667129 | macros/latex-dev/base/ltpara-code.pdf +2022/12/03 | 662 | macros/luatex/generic/pdfextra/LICENSE +2022/12/03 | 6424 | macros/latex-dev/base/ltnews14.tex +2022/12/03 | 63700 | macros/latex/contrib/biblatex-contrib/biblatex-publist/publist.bbx +2022/12/03 | 6357 | macros/latex-dev/base/newlfont.dtx +2022/12/03 | 63280 | macros/latex-dev/base/letter.dtx +2022/12/03 | 63132 | macros/latex-dev/base/ltmarks.dtx +2022/12/03 | 6213 | macros/latex-dev/base/ltmeta.dtx +2022/12/03 | 6155 | macros/latex-dev/base/ltpar.dtx +2022/12/03 | 60516 | macros/latex/contrib/biblatex-contrib/biblatex-publist/biblatex-publist.tex +2022/12/03 | 6047 | macros/latex-dev/base/latexrelease.ins +2022/12/03 | 60321 | macros/latex-dev/base/fontdef.dtx +2022/12/03 | 5986 | macros/latex-dev/base/ltnews15.tex +2022/12/03 | 59499 | macros/latex-dev/base/ltplain.dtx +2022/12/03 | 59070 | macros/latex-dev/base/ltmiscen.dtx +2022/12/03 | 58933 | macros/latex-dev/base/ltfiles.dtx +2022/12/03 | 586024 | macros/latex-dev/base/ltmarks-doc.pdf +2022/12/03 | 5859 | macros/latex-dev/base/ltidxglo.dtx +2022/12/03 | 58592 | macros/luatex/generic/pdfextra/examples/pdfextra-example-part.prc +2022/12/03 | 58551 | macros/latex-dev/base/ltfssaxes.dtx +2022/12/03 | 5834544 | systems/texlive/tlnet/install-tl-unx.tar.gz +2022/12/03 | 5825 | macros/latex-dev/base/ltnews10.tex +2022/12/03 | 5789493 | macros/latex-dev/base/source2e.pdf +2022/12/03 | 5775 | macros/latex-dev/base/ltnews16.tex +2022/12/03 | 574872 | systems/texlive/tlnet/archive/cvss.doc.r65169.tar.xz +2022/12/03 | 5732 | macros/latex-dev/base/ltnews08.tex +2022/12/03 | 5714 | macros/latex-dev/base/inputenc.ins +2022/12/03 | 5699 | macros/latex-dev/base/ltnews05.tex +2022/12/03 | 5678 | macros/latex-dev/base/ltnews04.tex +2022/12/03 | 5671 | macros/latex-dev/base/ltnews27.tex +2022/12/03 | 565931 | macros/latex-dev/base/ltshipout-doc.pdf +2022/12/03 | 563089 | macros/latex-dev/base/ltnews35.pdf +2022/12/03 | 560326 | macros/latex-dev/base/classes.pdf +2022/12/03 | 560008 | macros/latex-dev/base/ltpara-doc.pdf +2022/12/03 | 5588 | macros/latex-dev/base/ltnews25.tex +2022/12/03 | 5576 | macros/latex-dev/base/ltnews07.tex +2022/12/03 | 5574 | macros/latex-dev/base/ltnews12.tex +2022/12/03 | 55687 | macros/latex-dev/base/ltfloat.dtx +2022/12/03 | 5544 | macros/latex-dev/base/ltnews06.tex +2022/12/03 | 5529 | macros/latex-dev/base/ltnews11.tex +2022/12/03 | 5509 | macros/latex-dev/base/graphpap.dtx +2022/12/03 | 547926 | macros/latex-dev/base/ltfilehook-doc.pdf +2022/12/03 | 5462 | macros/latex-dev/base/ltnews02.tex +2022/12/03 | 546160 | macros/latex-dev/base/ltnews32.pdf +2022/12/03 | 545808 | systems/texlive/tlnet/archive/ffcode.doc.r65170.tar.xz +2022/12/03 | 5451 | macros/latex-dev/base/ltnews09.tex +2022/12/03 | 5369 | macros/latex-dev/base/ltnews03.tex +2022/12/03 | 53025 | macros/latex-dev/base/ltcmdhooks.dtx +2022/12/03 | 52813 | macros/latex-dev/base/encguide.tex +2022/12/03 | 5273 | macros/latex-dev/base/cmextra.ins +2022/12/03 | 52710 | macros/latex-dev/base/lb2.err +2022/12/03 | 526323 | macros/latex-dev/base/ltnews31.pdf +2022/12/03 | 5246 | macros/latex-dev/base/ltnews01.tex +2022/12/03 | 522412 | macros/latex-dev/base/ltnews33.pdf +2022/12/03 | 517838 | macros/latex-dev/base/fntguide.pdf +2022/12/03 | 517565 | macros/latex-dev/base/ltnews36.pdf +2022/12/03 | 51606 | macros/latex-dev/base/ltpara.dtx +2022/12/03 | 511909 | macros/latex-dev/base/ltnews30.pdf +2022/12/03 | 51005 | macros/latex-dev/base/usrguide.tex +2022/12/03 | 508044 | macros/latex-dev/base/ltnews34.pdf +2022/12/03 | 5041 | macros/latex-dev/base/latexsym.ins +2022/12/03 | 504178 | macros/latex-dev/base/docstrip.pdf +2022/12/03 | 5016 | systems/texlive/tlnet/archive/ffcode.source.r65170.tar.xz +2022/12/03 | 50069 | macros/latex-dev/base/ltfinal.dtx +2022/12/03 | 4945 | macros/latex-dev/base/lthyphen.dtx +2022/12/03 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5 +2022/12/03 | 47896 | macros/latex-dev/base/lttab.dtx +2022/12/03 | 478686 | macros/latex-dev/base/ltcmdhooks-doc.pdf +2022/12/03 | 4757 | macros/latex-dev/base/ltlength.dtx +2022/12/03 | 474 | macros/latex-dev/required/firstaid/README.md +2022/12/03 | 474808 | macros/latex-dev/base/usrguide.pdf +2022/12/03 | 4736 | macros/latex/contrib/semantex/stripsemantex.sty +2022/12/03 | 4607 | macros/latex-dev/required/firstaid/changes.txt +2022/12/03 | 45754 | macros/latex-dev/base/ltspace.dtx +2022/12/03 | 45712 | macros/latex-dev/base/ltboxes.dtx +2022/12/03 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc +2022/12/03 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc +2022/12/03 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc +2022/12/03 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc +2022/12/03 | 455242 | macros/latex/contrib/semantex.zip +2022/12/03 | 455107 | macros/latex-dev/base/ltnews29.pdf +2022/12/03 | 45347 | macros/latex-dev/base/latexrelease.dtx +2022/12/03 | 44410 | macros/latex-dev/base/cmfonts.fdd +2022/12/03 | 439953 | macros/latex/contrib/biblatex-contrib/biblatex-publist.zip +2022/12/03 | 4390 | macros/latex-dev/base/ec.ins +2022/12/03 | 438515 | macros/latex-dev/base/usrguide-historic.pdf +2022/12/03 | 4324 | macros/latex-dev/base/cmfonts.ins +2022/12/03 | 4298 | macros/latex-dev/base/ltalloc.dtx +2022/12/03 | 4273 | macros/latex-dev/base/docstrip.ins +2022/12/03 | 42708 | macros/latex-dev/base/changes.old.txt +2022/12/03 | 4254 | macros/latex-dev/base/newdc.ins +2022/12/03 | 423444 | systems/texlive/tlnet/archive/texlive-scripts.doc.r65164.tar.xz +2022/12/03 | 4219 | macros/latex-dev/base/latex209.ins +2022/12/03 | 4170 | macros/latex-dev/base/ltnews19.tex +2022/12/03 | 41493 | macros/latex-dev/base/ltmath.dtx +2022/12/03 | 414419 | macros/latex-dev/base/clsguide.pdf +2022/12/03 | 408962 | macros/latex-dev/base/ltnews37.pdf +2022/12/03 | 4087 | macros/latex-dev/base/classes.ins +2022/12/03 | 4079 | macros/latex-dev/base/lablst.tex +2022/12/03 | 407279 | macros/latex/contrib/biblatex-contrib/biblatex-publist/biblatex-publist.pdf +2022/12/03 | 4018012 | biblio/ctan-bibdata.zip +2022/12/03 | 3989 | macros/latex/contrib/ppt-slides/ppt-templates/ppt-9x6.tex +2022/12/03 | 397760 | macros/latex/contrib/semantex/semantex.pdf +2022/12/03 | 3960 | macros/latex-dev/base/olddc.ins +2022/12/03 | 39466146 | install/macros/latex-dev/latex-base-dev.tds.zip +2022/12/03 | 394640 | macros/latex-dev/base/changes.txt +2022/12/03 | 38914585 | macros/latex-dev/base.zip +2022/12/03 | 38793 | macros/latex-dev/base/ltnews35.tex +2022/12/03 | 38730 | macros/latex-dev/base/latex209.dtx +2022/12/03 | 385337 | macros/luatex/generic/pdfextra/examples/pdfextra-example.pdf +2022/12/03 | 38033 | macros/latex-dev/base/ltnews18.pdf +2022/12/03 | 379462 | macros/latex-dev/base/ltnews26.pdf +2022/12/03 | 3781 | macros/latex-dev/base/tulm.ins +2022/12/03 | 376643 | macros/latex-dev/base/ltnews28.pdf +2022/12/03 | 375518 | macros/latex-dev/base/slides.pdf +2022/12/03 | 3725 | macros/latex-dev/base/ltlogos.dtx +2022/12/03 | 3624853 | biblio/ctan-bibdata/ctan.pdf +2022/12/03 | 36152 | macros/latex-dev/base/ltlists.dtx +2022/12/03 | 35984 | macros/latex-dev/base/ltdirchk.dtx +2022/12/03 | 353428 | macros/latex-dev/base/utf8ienc.pdf +2022/12/03 | 3478 | macros/latex/contrib/biblatex-contrib/biblatex-publist/publist.cbx +2022/12/03 | 3434 | macros/latex-dev/base/makeindx.ins +2022/12/03 | 3401 | macros/latex-dev/base/proc.ins +2022/12/03 | 33962 | macros/luatex/generic/pdfextra/pdfextra-doc.tex +2022/12/03 | 33946 | macros/latex-dev/base/ltsect.dtx +2022/12/03 | 33907 | macros/latex-dev/base/ltnews33.tex +2022/12/03 | 337430 | macros/latex-dev/base/letter.pdf +2022/12/03 | 3372 | macros/latex-dev/base/letter.ins +2022/12/03 | 3367 | macros/latex-dev/base/ltoutenc.ins +2022/12/03 | 3338 | macros/latex-dev/base/exscale.ins +2022/12/03 | 33239 | macros/latex-dev/base/ltnews32.tex +2022/12/03 | 3320 | systems/texlive/tlnet/archive/cvss.r65169.tar.xz +2022/12/03 | 3282 | macros/latex-dev/base/bugs.txt +2022/12/03 | 324910 | macros/latex-dev/base/ltluatex.pdf +2022/12/03 | 32307 | macros/latex-dev/base/ltnews34.tex +2022/12/03 | 318548 | macros/latex-dev/base/ltnews20.pdf +2022/12/03 | 318204 | macros/latex-dev/base/inputenc.pdf +2022/12/03 | 3181 | macros/latex-dev/base/unpack.ins +2022/12/03 | 317773 | macros/latex-dev/base/ltnews22.pdf +2022/12/03 | 3125 | macros/xetex/latex/xduts/README.md +2022/12/03 | 3100 | macros/latex-dev/base/README.md +2022/12/03 | 3094 | macros/unicodetex/latex/njuthesis/njuthesis.ins +2022/12/03 | 307600 | macros/xetex/latex/xduts/xduts.pdf +2022/12/03 | 30499 | macros/latex-dev/base/doc-2021-06-01.sty +2022/12/03 | 30428 | macros/latex-dev/base/ltnews31.tex +2022/12/03 | 300363 | macros/latex/contrib/semantex/semantex.sty +2022/12/03 | 300296 | macros/unicodetex/latex/njuthesis/njuthesis.dtx +2022/12/03 | 29965 | macros/latex-dev/base/doc-2016-02-15.sty +2022/12/03 | 29267 | macros/latex-dev/base/ltfntcmd.dtx +2022/12/03 | 292160 | macros/latex-dev/base/cmfonts.pdf +2022/12/03 | 290615 | macros/latex-dev/base/tlc2.pdf +2022/12/03 | 2896 | macros/latex-dev/base/syntonly.ins +2022/12/03 | 2893 | macros/latex-dev/base/nfssfont.ins +2022/12/03 | 2892 | macros/latex-dev/base/graphpap.ins +2022/12/03 | 2892 | macros/latex-dev/base/fix-cm.ins +2022/12/03 | 2890 | macros/latex-dev/base/alltt.ins +2022/12/03 | 2888 | macros/latex-dev/base/ifthen.ins +2022/12/03 | 287733 | macros/latex-dev/base/fix-cm.pdf +2022/12/03 | 286591 | macros/latex-dev/base/ltnews23.pdf +2022/12/03 | 282532 | systems/texlive/tlnet/archive/csbulletin.doc.r65168.tar.xz +2022/12/03 | 282115 | macros/latex-dev/base/latexrelease.pdf +2022/12/03 | 277960 | install/macros/latex-dev/required/latex-firstaid-dev.tds.zip +2022/12/03 | 2747422 | biblio/ctan-bibdata/ctan.bib +2022/12/03 | 2740 | macros/latex-dev/required/firstaid/firstaid.ins +2022/12/03 | 272 | macros/latex/contrib/ppt-slides/DEPENDS.txt +2022/12/03 | 272901 | macros/latex-dev/required/firstaid.zip +2022/12/03 | 2728 | macros/latex-dev/base/ltpageno.dtx +2022/12/03 | 271476 | macros/latex-dev/required/firstaid/latex2e-first-aid-for-external-files.pdf +2022/12/03 | 27122 | macros/latex-dev/base/ltxcheck.tex +2022/12/03 | 2707528 | systems/texlive/tlnet/archive/simpleicons.r65167.tar.xz +2022/12/03 | 27069 | macros/latex-dev/base/lterror.dtx +2022/12/03 | 2705 | macros/latex-dev/base/idx.tex +2022/12/03 | 265279 | macros/latex-dev/base/ltnews24.pdf +2022/12/03 | 264112 | macros/latex-dev/base/cfgguide.pdf +2022/12/03 | 2640 | macros/latex/contrib/ppt-slides/ppt-slides.ins +2022/12/03 | 257804 | macros/latex-dev/base/modguide.pdf +2022/12/03 | 257314 | macros/latex-dev/base/cyrguide.pdf +2022/12/03 | 25518541 | systems/texlive/tlnet/install-tl.zip +2022/12/03 | 252140 | macros/latex-dev/base/lb2.pdf +2022/12/03 | 250660 | macros/xetex/latex/xduts/xduts.dtx +2022/12/03 | 250592 | macros/latex-dev/base/ltnews27.pdf +2022/12/03 | 2488994 | macros/optex.zip +2022/12/03 | 244867 | macros/latex-dev/base/ltnews21.pdf +2022/12/03 | 243286 | macros/latex-dev/base/ltxdoc.pdf +2022/12/03 | 2430876 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz +2022/12/03 | 24286 | macros/latex-dev/base/ltcounts.dtx +2022/12/03 | 242468 | macros/latex-dev/base/doc.dtx +2022/12/03 | 241 | macros/latex-dev/base/ltfilehook-doc.tex +2022/12/03 | 240 | macros/latex-dev/base/ltshipout-doc.tex +2022/12/03 | 238 | macros/latex-dev/base/ltmarks-doc.tex +2022/12/03 | 238 | macros/latex-dev/base/lthooks-doc.tex +2022/12/03 | 238 | macros/latex-dev/base/ltcmdhooks-doc.tex +2022/12/03 | 23637 | macros/latex-dev/base/ltnews30.tex +2022/12/03 | 23583 | macros/latex-dev/required/firstaid/latex2e-first-aid-for-external-files.dtx +2022/12/03 | 23516 | macros/latex-dev/base/fix-cm.dtx +2022/12/03 | 234 | macros/latex-dev/base/ltpara-doc.tex +2022/12/03 | 234191 | macros/latex-dev/base/slifonts.pdf +2022/12/03 | 23386 | macros/latex-dev/base/lppl.tex +2022/12/03 | 232911 | macros/luatex/generic/pdfextra/pdfextra-doc.pdf +2022/12/03 | 230028 | macros/latex-dev/base/ltnews19.pdf +2022/12/03 | 22720 | macros/latex-dev/base/cfgguide.tex +2022/12/03 | 227059 | macros/latex-dev/base/proc.pdf +2022/12/03 | 22665 | macros/latex-dev/base/ltxdoc.dtx +2022/12/03 | 223831 | macros/latex-dev/base/alltt.pdf +2022/12/03 | 221211 | macros/latex-dev/base/ifthen.pdf +2022/12/03 | 219349 | macros/latex-dev/base/ltx3info.pdf +2022/12/03 | 2180 | systems/texlive/tlnet/archive/ffcode.r65170.tar.xz +2022/12/03 | 215684 | macros/latex-dev/base/lgc2.pdf +2022/12/03 | 211770 | macros/latex-dev/base/lthooks.dtx +2022/12/03 | 211180 | macros/latex-dev/base/nfssfont.pdf +2022/12/03 | 20652 | macros/latex-dev/base/lgc2.err +2022/12/03 | 204935 | macros/latex-dev/base/ltnews25.pdf +2022/12/03 | 204711 | macros/latex-dev/base/exscale.pdf +2022/12/03 | 20469 | macros/latex-dev/base/ltnews.cls +2022/12/03 | 20435502 | systems/texlive/tlnet/install-tl-windows.exe +2022/12/03 | 200760 | macros/latex-dev/base/latexsym.pdf +2022/12/03 | 1986672 | systems/texlive/tlnet/archive/simpleicons.doc.r65167.tar.xz +2022/12/03 | 19853 | macros/latex-dev/base/ltkeys.dtx +2022/12/03 | 1937 | macros/latex-dev/base/minimal.cls +2022/12/03 | 19329 | macros/latex-dev/base/ltnews36.tex +2022/12/03 | 19105 | macros/unicodetex/latex/njuthesis/LICENSE +2022/12/03 | 19040 | macros/latex-dev/base/lppl.txt +2022/12/03 | 189819 | macros/latex-dev/base/syntonly.pdf +2022/12/03 | 18944 | macros/latex-dev/base/ltnews29.tex +2022/12/03 | 18753 | macros/latex-dev/base/ifthen.dtx +2022/12/03 | 18711 | macros/latex-dev/base/ltexpl.dtx +2022/12/03 | 18399 | macros/latex-dev/base/nfssfont.dtx +2022/12/03 | 18363 | macros/latex-dev/base/ltxref.dtx +2022/12/03 | 183578 | macros/latex-dev/base/ltcmd.dtx +2022/12/03 | 18299 | macros/latex-dev/base/ltx3info.tex +2022/12/03 | 182225 | macros/latex-dev/base/ltnews13.pdf +2022/12/03 | 182031 | macros/latex/contrib/semantex/semantex.tex +2022/12/03 | 17914 | macros/latex/contrib/ppt-slides/ppt-slides.dtx +2022/12/03 | 17879282 | systems/texlive/tlnet/tlpkg/texlive.tlpdb +2022/12/03 | 178723 | macros/latex-dev/base/ltoutput.dtx +2022/12/03 | 17779 | macros/latex-dev/base/cyrguide.tex +2022/12/03 | 174494 | macros/latex-dev/base/ltnews05.pdf +2022/12/03 | 17389 | macros/latex-dev/base/ltbibl.dtx +2022/12/03 | 172867 | macros/latex-dev/base/tlc2.err +2022/12/03 | 170878 | macros/latex-dev/base/lamport-manual.pdf +2022/12/03 | 170595 | macros/latex-dev/base/docstrip.dtx +2022/12/03 | 170473 | macros/latex-dev/base/ltnews14.pdf +2022/12/03 | 1694 | macros/latex-dev/base/small2e.tex +2022/12/03 | 169416 | macros/latex-dev/base/ltnews10.pdf +2022/12/03 | 1678 | biblio/ctan-bibdata/biblatex-ctan/ctan.bbx +2022/12/03 | 166228 | macros/latex-dev/base/ltnews17.pdf +2022/12/03 | 165821 | macros/latex-dev/base/makeindx.pdf +2022/12/03 | 16497 | macros/latex-dev/base/modguide.tex +2022/12/03 | 162772 | macros/latex-dev/base/tulm.pdf +2022/12/03 | 1620 | macros/latex/contrib/ppt-slides/README.md +2022/12/03 | 161713 | macros/latex-dev/base/graphpap.pdf +2022/12/03 | 161518 | macros/latex-dev/base/ltnews01.pdf +2022/12/03 | 159792 | macros/latex-dev/base/ltnews02.pdf +2022/12/03 | 159332 | macros/latex-dev/base/ltnews03.pdf +2022/12/03 | 15699 | macros/latex-dev/base/slifonts.fdd +2022/12/03 | 156551 | macros/latex-dev/base/ltnews12.pdf +2022/12/03 | 156236 | macros/latex-dev/base/classes.dtx +2022/12/03 | 155053 | macros/latex-dev/base/ltnews08.pdf +2022/12/03 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512 +2022/12/03 | 15384 | macros/latex-dev/base/ltvers.dtx +2022/12/03 | 15306 | macros/latex-dev/base/source2e.tex +2022/12/03 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512 +2022/12/03 | 152525 | macros/latex-dev/base/ltnews04.pdf +2022/12/03 | 15047 | macros/latex-dev/base/ltnews28.tex +2022/12/03 | 148294 | macros/latex-dev/base/ltoutenc.dtx +2022/12/03 | 146198 | macros/latex-dev/base/webcomp.pdf +2022/12/03 | 145 | systems/texlive/tlnet/install-tl.zip.sha512 +2022/12/03 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512 +2022/12/03 | 144369 | macros/latex-dev/base/ltclass.dtx +2022/12/03 | 14421 | macros/latex-dev/base/lppl-1-2.txt +2022/12/03 | 14341 | macros/latex-dev/base/lppl-1-1.txt +2022/12/03 | 142849 | macros/latex-dev/base/ltnews06.pdf +2022/12/03 | 1420 | macros/latex/contrib/ppt-slides/ppt-schemes/ppt-light.tex +2022/12/03 | 1420 | macros/latex/contrib/ppt-slides/ppt-schemes/ppt-light-mono.tex +2022/12/03 | 1420 | macros/latex/contrib/ppt-slides/ppt-schemes/ppt-dark.tex +2022/12/03 | 1420 | macros/latex/contrib/ppt-slides/ppt-schemes/ppt-dark-mono.tex +2022/12/03 | 14091 | macros/latex-dev/base/ltpage.dtx +2022/12/03 | 138073 | macros/latex-dev/base/ltnews16.pdf +2022/12/03 | 137811 | macros/latex-dev/base/ltnews07.pdf +2022/12/03 | 13759 | macros/latex-dev/base/lamport-manual.err +2022/12/03 | 136384 | systems/texlive/tlnet/archive/tex4ht.doc.r65171.tar.xz +2022/12/03 | 13589 | macros/latex-dev/base/proc.dtx +2022/12/03 | 1341 | macros/latex-dev/base/ltnews18.tex +2022/12/03 | 132382 | macros/latex-dev/base/lppl.pdf +2022/12/03 | 1318126 | macros/latex-dev/base/encguide.pdf +2022/12/03 | 130309 | macros/latex-dev/base/ltnews15.pdf +2022/12/03 | 129570 | macros/latex-dev/base/ltnews09.pdf +2022/12/03 | 12932 | systems/texlive/tlnet/archive/csbulletin.r65168.tar.xz +2022/12/03 | 1285060 | systems/texlive/tlnet/archive/tex4ht.source.r65171.tar.xz +2022/12/03 | 1279 | macros/latex-dev/base/legal.txt +2022/12/03 | 1255282 | macros/latex-dev/base/ltnews.pdf +2022/12/03 | 12520 | macros/latex-dev/base/testpage.tex +2022/12/03 | 1244739 | macros/unicodetex/latex/njuthesis.zip +2022/12/03 | 12334 | macros/latex-dev/base/ltnews24.tex +2022/12/03 | 1233271 | macros/xetex/latex/xduts.zip +2022/12/03 | 12242 | macros/latex-dev/base/tulm.fdd +2022/12/03 | 11852 | macros/latex-dev/base/ltnews37.tex +2022/12/03 | 1176569 | macros/unicodetex/latex/njuthesis/njuthesis.pdf +2022/12/03 | 113704 | systems/texlive/tlnet/archive/texlive-scripts.r65164.tar.xz +2022/12/03 | 111948 | macros/latex-dev/base/ltnews11.pdf +2022/12/03 | 11124 | macros/latex-dev/base/manifest.txt +2022/12/03 | 1111 | macros/xetex/latex/xduts/xduts.ins +2022/12/03 | 1101 | macros/luatex/generic/pdfextra/README.md +2022/12/03 | 1091429 | macros/latex-dev/base/lthooks-code.pdf +2022/12/03 | 108231 | macros/latex-dev/base/fntguide.tex +2022/12/03 | 10798 | macros/latex-dev/base/ltnews26.tex +2022/12/03 | 10792 | macros/latex-dev/base/ltnews22.tex +2022/12/03 | 10791 | macros/latex-dev/base/ltnews23.tex +2022/12/03 | 1078 | macros/latex/contrib/ppt-slides/LICENSE.txt +2022/12/03 | 1077 | macros/unicodetex/latex/njuthesis/README.md +2022/12/03 | 1075110 | macros/latex-dev/base/doc-code.pdf +2022/12/03 | 106904 | macros/latex-dev/base/inputenc.dtx +2022/12/03 | 10601 | macros/latex-dev/base/makeindx.dtx +2022/12/03 | 105 | macros/latex-dev/base/ltfilehook-code.tex +2022/12/03 | 104 | macros/latex-dev/base/ltshipout-code.tex +2022/12/03 | 103 | macros/latex-dev/base/ltcmdhooks-code.tex +2022/12/03 | 10370 | macros/latex-dev/base/ltfsscmp.dtx +2022/12/03 | 102 | macros/latex-dev/base/ltmarks-code.tex +2022/12/03 | 102 | macros/latex-dev/base/lthooks-code.tex +2022/12/03 | 10251 | macros/latex-dev/base/webcomp.err 2022/12/02 | 914 | systems/win32/miktex/tm/packages/pr.ini 2022/12/02 | 88422 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma 2022/12/02 | 8829 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma 2022/12/02 | 874 | macros/latex/contrib/csbulletin/tex/csbulobalka.cls +2022/12/02 | 8637 | macros/optex/README 2022/12/02 | 848323 | systems/win32/miktex/tm/packages/fvextra__doc.tar.lzma 2022/12/02 | 845388 | systems/texlive/tlnet/archive/fvextra.doc.r65158.tar.xz 2022/12/02 | 828008 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma @@ -14,6 +389,7 @@ 2022/12/02 | 750060 | systems/win32/miktex/tm/packages/next/files.csv.lzma 2022/12/02 | 74433 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma 2022/12/02 | 73952 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma +2022/12/02 | 7382 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl 2022/12/02 | 73354 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma 2022/12/02 | 7274 | macros/latex/contrib/csbulletin/doc/csbulletin.tex 2022/12/02 | 72746 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma @@ -34,7 +410,6 @@ 2022/12/02 | 609 | macros/latex/contrib/csbulletin/README 2022/12/02 | 600295 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma 2022/12/02 | 58530 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma -2022/12/02 | 5834818 | systems/texlive/tlnet/install-tl-unx.tar.gz 2022/12/02 | 582949 | macros/latex/contrib/cvss.zip 2022/12/02 | 57810 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma 2022/12/02 | 57421 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin-x64.tar.lzma @@ -54,25 +429,20 @@ 2022/12/02 | 525236 | systems/win32/miktex/tm/packages/xduts.tar.lzma 2022/12/02 | 521608 | systems/texlive/tlnet/archive/xduts.r65160.tar.xz 2022/12/02 | 4935967 | fonts/simpleicons.zip -2022/12/02 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5 2022/12/02 | 48980 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma 2022/12/02 | 4864 | systems/texlive/tlnet/archive/ukbill.r65159.tar.xz 2022/12/02 | 48193 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma 2022/12/02 | 473023 | systems/win32/miktex/tm/packages/next/miktex-doc.tar.lzma 2022/12/02 | 45782 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma -2022/12/02 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc -2022/12/02 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc -2022/12/02 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc -2022/12/02 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc +2022/12/02 | 4482 | macros/optex/doc/optex-doc.tex 2022/12/02 | 44061 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma 2022/12/02 | 43896 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma 2022/12/02 | 43700 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma 2022/12/02 | 424 | macros/latex/contrib/csbulletin/doc/example.bib 2022/12/02 | 42465 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin-x64.tar.lzma -2022/12/02 | 423300 | systems/texlive/tlnet/archive/texlive-scripts.doc.r65156.tar.xz 2022/12/02 | 41733 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64.tar.lzma 2022/12/02 | 40 | macros/latex/contrib/ffcode/DEPENDS.txt -2022/12/02 | 4017985 | biblio/ctan-bibdata.zip +2022/12/02 | 4074 | macros/optex/base/optex.ini 2022/12/02 | 39859 | systems/win32/miktex/tm/packages/xduts__source.tar.lzma 2022/12/02 | 395125 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma 2022/12/02 | 39448 | systems/texlive/tlnet/archive/xduts.source.r65160.tar.xz @@ -80,7 +450,6 @@ 2022/12/02 | 3739 | macros/latex/contrib/csbulletin/tex/csbulacronym.sty 2022/12/02 | 37393 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma 2022/12/02 | 37094 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma -2022/12/02 | 3624126 | biblio/ctan-bibdata/ctan.pdf 2022/12/02 | 35322 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma 2022/12/02 | 352468 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma 2022/12/02 | 35199 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma @@ -107,7 +476,6 @@ 2022/12/02 | 27735 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma 2022/12/02 | 276383 | macros/latex/contrib/csbulletin/doc/csbulletin.pdf 2022/12/02 | 274 | fonts/simpleicons/tex/usimpleiconsOneZero.fd -2022/12/02 | 2747416 | biblio/ctan-bibdata/ctan.bib 2022/12/02 | 2746 | fonts/simpleicons/enc/simpleiconsFour.enc 2022/12/02 | 271445 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma 2022/12/02 | 2673 | fonts/simpleicons/enc/simpleiconsSix.enc @@ -122,7 +490,6 @@ 2022/12/02 | 259 | fonts/simpleicons/tex/usimpleiconsFour.fd 2022/12/02 | 259 | fonts/simpleicons/tex/usimpleiconsFive.fd 2022/12/02 | 2572 | fonts/simpleicons/enc/simpleiconsNine.enc -2022/12/02 | 25518533 | systems/texlive/tlnet/install-tl.zip 2022/12/02 | 254 | fonts/simpleicons/tex/usimpleiconsTwo.fd 2022/12/02 | 254 | fonts/simpleicons/tex/usimpleiconsSix.fd 2022/12/02 | 254 | fonts/simpleicons/tex/usimpleiconsOne.fd @@ -130,7 +497,6 @@ 2022/12/02 | 2516 | fonts/simpleicons/enc/simpleiconsThree.enc 2022/12/02 | 247510 | systems/win32/miktex/tm/packages/next/miktex-hitex-bin-x64.tar.lzma 2022/12/02 | 245706 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma -2022/12/02 | 2431632 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz 2022/12/02 | 2425 | fonts/simpleicons/enc/simpleiconsFive.enc 2022/12/02 | 24079 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma 2022/12/02 | 24045 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma @@ -140,8 +506,8 @@ 2022/12/02 | 216580 | fonts/simpleicons/tex/simpleiconsglyphs-pdftex.tex 2022/12/02 | 214176 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-x64-2.9.tar.lzma 2022/12/02 | 212537 | fonts/simpleicons/tex/simpleiconsglyphs-xeluatex.tex +2022/12/02 | 210677 | support/TeX4ht/source/ChangeLog 2022/12/02 | 209064 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma -2022/12/02 | 20436150 | systems/texlive/tlnet/install-tl-windows.exe 2022/12/02 | 203598 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma 2022/12/02 | 1999817 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma 2022/12/02 | 1977178 | fonts/simpleicons/doc/simpleicons.pdf @@ -157,33 +523,27 @@ 2022/12/02 | 18357 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma 2022/12/02 | 181554 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma 2022/12/02 | 18029 | macros/latex/contrib/csbulletin/tex/csbulletin.cls -2022/12/02 | 17879212 | systems/texlive/tlnet/tlpkg/texlive.tlpdb 2022/12/02 | 175401 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma 2022/12/02 | 1746421 | fonts/simpleicons/type1/SimpleIcons.pfb 2022/12/02 | 17445 | macros/latex/contrib/csbulletin/tex/csbulobalka.sty 2022/12/02 | 173437 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma -2022/12/02 | 1678 | biblio/ctan-bibdata/biblatex-ctan/ctan.bbx 2022/12/02 | 1664 | systems/texlive/tlnet/archive/collection-publishers.r65159.tar.xz 2022/12/02 | 1627957 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma 2022/12/02 | 1627740 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma 2022/12/02 | 1559 | fonts/simpleicons/tex/simpleicons.sty 2022/12/02 | 155964 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma 2022/12/02 | 15538 | macros/plain/graphics/miniltx.tex -2022/12/02 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512 -2022/12/02 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512 +2022/12/02 | 15374 | macros/optex/base/if-macros.opm 2022/12/02 | 1515 | macros/latex/contrib/cvss/README.md 2022/12/02 | 1514697 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma -2022/12/02 | 145 | systems/texlive/tlnet/install-tl.zip.sha512 +2022/12/02 | 1484007 | macros/optex/doc/optex-doc.pdf 2022/12/02 | 1456952 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma -2022/12/02 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512 2022/12/02 | 14461 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-x64-2.9.tar.lzma 2022/12/02 | 140617 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma 2022/12/02 | 1376 | macros/latex/contrib/ffcode/README.md -2022/12/02 | 136384 | systems/texlive/tlnet/archive/tex4ht.doc.r65162.tar.xz 2022/12/02 | 136101 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma 2022/12/02 | 1337466 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma 2022/12/02 | 13057 | macros/plain/graphics.zip -2022/12/02 | 1302008 | systems/texlive/tlnet/archive/tex4ht.source.r65162.tar.xz 2022/12/02 | 128551 | fonts/simpleicons/doc/bindings.tex 2022/12/02 | 12507 | systems/win32/miktex/tm/packages/fvextra.tar.lzma 2022/12/02 | 12448 | macros/latex/contrib/cvss/cvss.ins @@ -202,7 +562,7 @@ 2022/12/02 | 1166540 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma 2022/12/02 | 115796 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma 2022/12/02 | 1150 | systems/win32/miktex/tm/packages/next/pr.ini -2022/12/02 | 113688 | systems/texlive/tlnet/archive/texlive-scripts.r65156.tar.xz +2022/12/02 | 1144061 | support/TeX4ht/source/tex4ht-4ht.tex 2022/12/02 | 113211 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma 2022/12/02 | 1126 | macros/latex/contrib/csbulletin/tex/csbulv1.cls 2022/12/02 | 1119 | fonts/simpleicons/map/simpleicons.map @@ -223,7 +583,6 @@ 2022/12/01 | 89924 | systems/texlive/tlnet/archive/lutabulartools.doc.r65153.tar.xz 2022/12/01 | 884180 | systems/win32/miktex/tm/packages/babel__doc.tar.lzma 2022/12/01 | 883760 | systems/texlive/tlnet/archive/babel.doc.r65152.tar.xz -2022/12/01 | 881135 | macros/xetex/latex/xduts/xdulogo.pdf 2022/12/01 | 8771 | systems/win32/miktex/tm/packages/lutabulartools.tar.lzma 2022/12/01 | 867095 | macros/latex/contrib/fvextra/fvextra.pdf 2022/12/01 | 85276 | macros/latex/contrib/ukbill/immigration-bill.pdf @@ -232,7 +591,6 @@ 2022/12/01 | 82790 | systems/win32/miktex/tm/packages/pstricks.tar.lzma 2022/12/01 | 79915 | systems/win32/miktex/tm/packages/graph35__source.tar.lzma 2022/12/01 | 7490 | systems/win32/miktex/tm/packages/docshots__source.tar.lzma -2022/12/01 | 7335 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl 2022/12/01 | 722784 | systems/win32/miktex/tm/packages/babel__source.tar.lzma 2022/12/01 | 722612 | systems/win32/miktex/tm/packages/polyglossia__doc.tar.lzma 2022/12/01 | 722056 | systems/texlive/tlnet/archive/babel.source.r65152.tar.xz @@ -249,6 +607,7 @@ 2022/12/01 | 5100 | systems/texlive/tlnet/archive/kdpcover.source.r65150.tar.xz 2022/12/01 | 498613 | systems/win32/miktex/tm/packages/piton__doc.tar.lzma 2022/12/01 | 46473 | systems/win32/miktex/tm/packages/bangorexam.tar.lzma +2022/12/01 | 40299 | macros/optex/base/fonts-select.opm 2022/12/01 | 3863 | systems/win32/miktex/tm/packages/csbulletin__source.tar.lzma 2022/12/01 | 38481904 | macros/latex/base.zip 2022/12/01 | 369424 | systems/win32/miktex/tm/packages/kdpcover__doc.tar.lzma @@ -256,15 +615,12 @@ 2022/12/01 | 35322 | systems/win32/miktex/tm/packages/piton__source.tar.lzma 2022/12/01 | 338807 | systems/win32/miktex/tm/packages/docshots__doc.tar.lzma 2022/12/01 | 3358376 | systems/texlive/tlnet/archive/circuit-macros.doc.r65149.tar.xz -2022/12/01 | 3125 | macros/xetex/latex/xduts/README.md -2022/12/01 | 306469 | macros/xetex/latex/xduts/xduts.pdf 2022/12/01 | 2982 | systems/win32/miktex/tm/packages/docshots.tar.lzma 2022/12/01 | 293752 | systems/win32/miktex/tm/packages/bangorexam__doc.tar.lzma 2022/12/01 | 290073 | macros/latex/contrib/fvextra/fvextra.dtx 2022/12/01 | 2837 | systems/win32/miktex/tm/packages/kdpcover.tar.lzma 2022/12/01 | 281426 | systems/win32/miktex/tm/packages/csbulletin__doc.tar.lzma 2022/12/01 | 26297 | macros/latex/contrib/ukbill/ukbill-documentation.tex -2022/12/01 | 245152 | macros/xetex/latex/xduts/xduts.dtx 2022/12/01 | 24261 | systems/win32/miktex/tm/packages/proflycee.tar.lzma 2022/12/01 | 24132 | systems/texlive/tlnet/archive/proflycee.r65151.tar.xz 2022/12/01 | 2349 | macros/latex/contrib/fvextra/fvextra.ins @@ -273,7 +629,6 @@ 2022/12/01 | 22324 | systems/win32/miktex/tm/packages/graph35.tar.lzma 2022/12/01 | 2176227 | systems/win32/miktex/tm/packages/graph35__doc.tar.lzma 2022/12/01 | 21394 | systems/win32/miktex/tm/packages/mathfont.tar.lzma -2022/12/01 | 210493 | support/TeX4ht/source/ChangeLog 2022/12/01 | 20461 | macros/latex/contrib/ukbill/immigration-bill.tex 2022/12/01 | 200868 | systems/win32/miktex/tm/packages/pstricks__source.tar.lzma 2022/12/01 | 198558 | systems/win32/miktex/tm/packages/babel.tar.lzma @@ -281,6 +636,7 @@ 2022/12/01 | 19589 | macros/latex/contrib/ukbill/ukbill.cls 2022/12/01 | 194880 | systems/texlive/tlnet/archive/babel.r65152.tar.xz 2022/12/01 | 17861 | CTAN.sites +2022/12/01 | 17793 | macros/optex/base/unimath-macros.opm 2022/12/01 | 162562 | systems/win32/miktex/tm/packages/polyglossia__source.tar.lzma 2022/12/01 | 15483 | systems/win32/miktex/tm/packages/eolang__source.tar.lzma 2022/12/01 | 152649 | systems/win32/miktex/tm/packages/proflycee__source.tar.lzma @@ -290,10 +646,10 @@ 2022/12/01 | 1455576 | systems/texlive/tlnet/archive/proflycee.doc.r65151.tar.xz 2022/12/01 | 1303357 | systems/win32/miktex/tm/packages/proflycee__doc.tar.lzma 2022/12/01 | 123284 | systems/win32/miktex/tm/packages/polyglossia.tar.lzma -2022/12/01 | 1231367 | macros/xetex/latex/xduts.zip 2022/12/01 | 12299 | systems/win32/miktex/tm/packages/csbulletin.tar.lzma 2022/12/01 | 115565639 | macros/context/latest/cont-tmf.zip -2022/12/01 | 1111 | macros/xetex/latex/xduts/xduts.ins +2022/12/01 | 11276 | macros/optex/base/fams-ini.opm +2022/12/01 | 11215 | macros/optex/base/math-preload.opm 2022/12/01 | 10991268 | systems/win32/miktex/tm/packages/pstricks__doc.tar.lzma 2022/11/30 | 99 | macros/latex/base/ltpara-code.tex 2022/11/30 | 997241 | macros/latex/contrib/mathfont.zip @@ -1853,7 +2209,6 @@ 2022/11/30 | 28385 | macros/texinfo/texinfo/tp/t/results/html_tests/check_htmlxref_ignore_ref_top_up.pl 2022/11/30 | 2830 | macros/texinfo/texinfo/tp/t/results/columnfractions/good.pl 2022/11/30 | 28296 | macros/texinfo/texinfo/tp/t/results/macro/macro_in_index_commands.pl -2022/11/30 | 282672 | systems/texlive/tlnet/archive/csbulletin.doc.r65146.tar.xz 2022/11/30 | 281906 | macros/latex/base/latexrelease.pdf 2022/11/30 | 2818 | macros/texinfo/texinfo/tp/t/results/invalid_nestings/recursive_copying.pl 2022/11/30 | 281772 | macros/texinfo/texinfo/tp/t/results/sectioning/section_in_unnumbered_info.pl @@ -2773,7 +3128,6 @@ 2022/11/30 | 12074 | macros/texinfo/texinfo/tp/t/results/sectioning/nodes_before_after_top.pl 2022/11/30 | 120684 | macros/texinfo/texinfo/tp/t/results/indices/encoding_index_utf8.pl 2022/11/30 | 12033 | macros/texinfo/texinfo/tp/t/results/invalid_nestings/itemx_in_itemize_enumerate_in_table.pl -2022/11/30 | 12032 | systems/texlive/tlnet/archive/csbulletin.r65146.tar.xz 2022/11/30 | 119 | macros/texinfo/texinfo/tp/t/input_files/simplest.texi 2022/11/30 | 119975 | macros/texinfo/texinfo/tp/t/results/indices/encoding_index_ascii.pl 2022/11/30 | 11988 | macros/texinfo/texinfo/tp/init/html32.pm @@ -3237,6 +3591,7 @@ 2022/11/30 | 0 | macros/texinfo/texinfo/tp/tests/contents/res_parser/contents_at_begin/contents_at_begin.1 2022/11/30 | 0 | macros/texinfo/texinfo/tp/tests/contents/res_parser/contents_and_parts/contents_and_parts.2 2022/11/30 | 0 | macros/texinfo/texinfo/tp/tests/contents/res_parser/contents_and_parts/contents_and_parts.1 +2022/11/29 | 89762 | macros/optex/doc/optex-userdoc.tex 2022/11/29 | 8304 | systems/texlive/tlnet/archive/jlreq.source.r65119.tar.xz 2022/11/29 | 7494 | macros/latex/contrib/bangorexam/README.txt 2022/11/29 | 67440 | graphics/graph35/graph35.dtx @@ -3244,12 +3599,10 @@ 2022/11/29 | 613175 | macros/luatex/latex/piton.zip 2022/11/29 | 592 | graphics/graph35/CHANGELOG.md 2022/11/29 | 569782 | macros/unicodetex/latex/polyglossia.zip -2022/11/29 | 545792 | systems/texlive/tlnet/archive/ffcode.doc.r65132.tar.xz 2022/11/29 | 535776 | systems/texlive/tlnet/archive/lt3rawobjects.doc.r65121.tar.xz 2022/11/29 | 529503 | macros/luatex/latex/piton/piton.pdf 2022/11/29 | 526972 | systems/texlive/tlnet/archive/jlreq.doc.r65119.tar.xz 2022/11/29 | 52505 | macros/latex/contrib/eolang/eolang.dtx -2022/11/29 | 4980 | systems/texlive/tlnet/archive/ffcode.source.r65132.tar.xz 2022/11/29 | 47687 | macros/latex/contrib/eolang/cactus.pdf 2022/11/29 | 425068 | systems/texlive/tlnet/archive/pagecolor.doc.r65120.tar.xz 2022/11/29 | 41465 | macros/luatex/latex/piton/piton-french.tex @@ -3271,7 +3624,6 @@ 2022/11/29 | 231693 | graphics/graph35/sources.zip 2022/11/29 | 2294 | graphics/graph35/graph35.ins 2022/11/29 | 218501 | graphics/graph35/graph35-pixelart.sty -2022/11/29 | 2176 | systems/texlive/tlnet/archive/ffcode.r65132.tar.xz 2022/11/29 | 21764 | macros/latex/contrib/docshots/docshots.dtx 2022/11/29 | 21682 | graphics/graph35/graph35-en.tex 2022/11/29 | 1942 | macros/unicodetex/latex/polyglossia/README.md @@ -3299,6 +3651,8 @@ 2022/11/29 | 10894788 | systems/texlive/tlnet/archive/profcollege.doc.r65122.tar.xz 2022/11/29 | 1083 | macros/latex/contrib/eolang/LICENSE.txt 2022/11/29 | 1083 | macros/latex/contrib/docshots/LICENSE.txt +2022/11/29 | 1058 | macros/optex/base/f-iwona.opm +2022/11/29 | 1054 | macros/optex/base/f-kurier.opm 2022/11/29 | 10411 | macros/luatex/generic/lutabulartools/lutabulartools.sty 2022/11/29 | 1013494 | macros/unicodetex/latex/polyglossia/polyglossia.dtx 2022/11/29 | 10044 | systems/texlive/tlnet/archive/lt3rawobjects.source.r65121.tar.xz @@ -3747,7 +4101,6 @@ 2022/11/28 | 1149 | graphics/circuit_macros/doc/ResistorsMan.m4 2022/11/28 | 1147 | graphics/circuit_macros/examples/Resistors.m4 2022/11/28 | 11440 | graphics/circuit_macros/examples/ics.m4 -2022/11/28 | 1143935 | support/TeX4ht/source/tex4ht-4ht.tex 2022/11/28 | 113485 | graphics/circuit_macros/examples/dpv/paletteDPV.svg 2022/11/28 | 1132 | graphics/circuit_macros/examples/Headers.m4 2022/11/28 | 1132 | graphics/circuit_macros/doc/HeadersMan.m4 @@ -4322,30 +4675,3 @@ 2022/11/27 | 0 | macros/texinfo/texinfo/tp/tests/many_input_files/different_languages_gen_master_menu_res/different_languages_gen_master_menu.2 2022/11/27 | 0 | macros/texinfo/texinfo/tp/tests/many_input_files/different_encodings_res/stdout_different_encodings.out 2022/11/27 | 0 | macros/texinfo/texinfo/tp/tests/many_input_files/different_encodings_res/different_encodings.2 -2022/11/26 | 9452788 | macros/latex/contrib/profcollege/doc/ProfCollege-doc.pdf -2022/11/26 | 883135 | systems/win32/miktex/tm/packages/achemso__doc.tar.lzma -2022/11/26 | 880816 | systems/texlive/tlnet/archive/achemso.doc.r65103.tar.xz -2022/11/26 | 67988 | macros/latex/contrib/profcollege/metapost/PfCObjets.mp -2022/11/26 | 61325 | macros/xetex/plain/unimath-plain-xetex.zip -2022/11/26 | 5545988 | systems/texlive/tlnet/archive/bib2gls.doc.r65104.tar.xz -2022/11/26 | 5489110 | systems/win32/miktex/tm/packages/bib2gls__doc.tar.lzma -2022/11/26 | 47677 | macros/xetex/plain/unimath-plain-xetex/doc/unimath-plain-xetex-doc.pdf -2022/11/26 | 40885 | macros/xetex/plain/unimath-plain-xetex/tex/unimath-plain-alphafams.tex -2022/11/26 | 40881 | macros/latex/contrib/profcollege/metapost/PfCGeometrie.mp -2022/11/26 | 31899 | systems/win32/miktex/tm/packages/achemso__source.tar.lzma -2022/11/26 | 31496 | systems/texlive/tlnet/archive/achemso.source.r65103.tar.xz -2022/11/26 | 2729312 | systems/win32/miktex/tm/packages/simpleicons.tar.lzma -2022/11/26 | 2704520 | systems/texlive/tlnet/archive/simpleicons.r65102.tar.xz -2022/11/26 | 2269245 | macros/latex/contrib/profcollege/doc/ProfCollege-doc.zip -2022/11/26 | 20418 | macros/xetex/plain/unimath-plain-xetex/tex/unimath-plain-xetex.tex -2022/11/26 | 1991266 | systems/win32/miktex/tm/packages/simpleicons__doc.tar.lzma -2022/11/26 | 1985216 | systems/texlive/tlnet/archive/simpleicons.doc.r65102.tar.xz -2022/11/26 | 19684 | systems/win32/miktex/tm/packages/achemso.tar.lzma -2022/11/26 | 19300 | systems/texlive/tlnet/archive/achemso.r65103.tar.xz -2022/11/26 | 1831440 | systems/texlive/tlnet/archive/bib2gls.r65104.tar.xz -2022/11/26 | 1830661 | systems/win32/miktex/tm/packages/bib2gls.tar.lzma -2022/11/26 | 17881 | systems/win32/miktex/tm/packages/simpleicons__source.tar.lzma -2022/11/26 | 1725803 | systems/win32/miktex/tm/packages/bib2gls__source.tar.lzma -2022/11/26 | 1723124 | systems/texlive/tlnet/archive/bib2gls.source.r65104.tar.xz -2022/11/26 | 11407 | macros/xetex/plain/unimath-plain-xetex/doc/unimath-plain-xetex-doc.tex -2022/11/26 | 1037252 | macros/latex/contrib/profcollege/latex/ProfCollege.sty diff --git a/biblio/ctan-bibdata/ctan.bib b/biblio/ctan-bibdata/ctan.bib index d492e6bd43..846f6f830a 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 03-12-2022, 02:03:57 +%% created at 04-12-2022, 02:01:26 %% %% This file is provided under the terms of the LPPL v1.3 or @@ -7623,8 +7623,8 @@ title = {The \texttt{biblatex-publist} package}, subtitle = {Bib\LaTeX{} bibliography support for publication lists}, author = {Jürgen Spitzmüller}, - date = {2022-10-24}, - version = {2.0}, + date = {2022-12-03}, + version = {2.1}, license = {lppl1.3}, mirror = {https://mirror.ctan.org/macros/latex/contrib/biblatex-contrib/biblatex-publist}, url = {https://ctan.org/pkg/biblatex-publist}, @@ -36601,8 +36601,8 @@ title = {The \texttt{latex-base-dev} package}, subtitle = {Development pre-release of the \LaTeX{} kernel}, author = {{The \LaTeX{} Project Team}}, - date = {2022-11-02}, - version = {2023-05-01 pre-release 0}, + date = {2022-12-03}, + version = {2023-06-01 pre-release 1}, license = {lppl1.3c}, mirror = {https://mirror.ctan.org/macros/latex-dev/base}, url = {https://ctan.org/pkg/latex-base-dev}, @@ -36762,8 +36762,8 @@ title = {The \texttt{latex-firstaid-dev} package}, subtitle = {Development pre-release of the \LaTeX{} firstaid package}, author = {{The \LaTeX{} Project Team}}, - date = {2022-11-02}, - version = {1.0u}, + date = {2022-12-03}, + version = {1.0w}, license = {lppl1.3c}, mirror = {https://mirror.ctan.org/macros/latex-dev/required/firstaid}, url = {https://ctan.org/pkg/latex-firstaid-dev}, @@ -47620,7 +47620,7 @@ subtitle = {\LaTeX{} thesis template for Nanjing University}, author = {Yichen Zhao and Yu Xiong}, date = {2019-01-01}, - version = {1.1.0}, + version = {1.1.1}, license = {lppl1.3c}, mirror = {https://mirror.ctan.org/macros/unicodetex/latex/njuthesis}, url = {https://ctan.org/pkg/njuthesis}, @@ -49131,8 +49131,8 @@ title = {The \texttt{OpTeX} package}, subtitle = {LuaTeX format based on Plain \TeX{} and OPmac}, author = {Petr Olšák}, - date = {2022-08-04}, - version = {1.08}, + date = {2022-12-03}, + version = {1.09}, license = {pd}, mirror = {https://mirror.ctan.org/macros/optex}, url = {https://ctan.org/pkg/optex}, @@ -50729,8 +50729,8 @@ title = {The \texttt{pdfextra} package}, subtitle = {Extra PDF features for (Op)TeX}, author = {Michal Vlasák}, - date = {2021-09-20}, - version = {0.2}, + date = {2022-12-03}, + version = {0.3}, license = {other-free}, mirror = {https://mirror.ctan.org/macros/luatex/generic/pdfextra}, url = {https://ctan.org/pkg/pdfextra}, @@ -53286,8 +53286,8 @@ title = {The \texttt{ppt-slides} package}, subtitle = {Good-looking slide decks à la PowerPoint (PPT)}, author = {Yegor Bugayenko}, - date = {2022-09-19}, - version = {0.1.5}, + date = {2022-12-03}, + version = {0.2.0}, license = {mit}, mirror = {https://mirror.ctan.org/macros/latex/contrib/ppt-slides}, url = {https://ctan.org/pkg/ppt-slides}, @@ -60068,8 +60068,8 @@ title = {The \texttt{SemanTeX} package}, subtitle = {Semantic, keyval-based mathematics}, author = {Sebastian Ørsted}, - date = {2022-10-04}, - version = {0.522}, + date = {2022-12-03}, + version = {0.523}, license = {lppl1.3c}, mirror = {https://mirror.ctan.org/macros/latex/contrib/semantex}, url = {https://ctan.org/pkg/semantex}, @@ -75089,8 +75089,8 @@ title = {The \texttt{xduts} package}, subtitle = {Xidian University \TeX{} Suite}, author = {{Unknown}}, - date = {2022-12-01}, - version = {2.18.1.1}, + date = {2022-12-03}, + version = {3.1.0.0}, license = {lppl1.3c}, mirror = {https://mirror.ctan.org/macros/xetex/latex/xduts}, url = {https://ctan.org/pkg/xduts}, diff --git a/biblio/ctan-bibdata/ctan.pdf b/biblio/ctan-bibdata/ctan.pdf index 53b1b9746c..f0fb5e510a 100644 Binary files a/biblio/ctan-bibdata/ctan.pdf and b/biblio/ctan-bibdata/ctan.pdf differ diff --git a/macros/latex-dev/base/README.md b/macros/latex-dev/base/README.md index 8fb5e8e894..343bb1b759 100644 --- a/macros/latex-dev/base/README.md +++ b/macros/latex-dev/base/README.md @@ -1,7 +1,7 @@ The LaTeX kernel ================ -Release 2023-05-01 pre-release 0 +Release 2023-06-01 pre-release 1 Overview -------- diff --git a/macros/latex-dev/base/alltt.pdf b/macros/latex-dev/base/alltt.pdf index 35b709a563..e8d8da01e4 100644 Binary files a/macros/latex-dev/base/alltt.pdf and b/macros/latex-dev/base/alltt.pdf differ diff --git a/macros/latex-dev/base/cfgguide.pdf b/macros/latex-dev/base/cfgguide.pdf index 3a048a4bfc..d574da1576 100644 Binary files a/macros/latex-dev/base/cfgguide.pdf and b/macros/latex-dev/base/cfgguide.pdf differ diff --git a/macros/latex-dev/base/changes.txt b/macros/latex-dev/base/changes.txt index 0ae9b55c03..468b66433b 100644 --- a/macros/latex-dev/base/changes.txt +++ b/macros/latex-dev/base/changes.txt @@ -8,7 +8,82 @@ are not part of the distribution. ================================================================================ All changes above are only part of the development branch for the next release. -================================================================================ +================================================================================ + + +2022-11-24 Frank Mittelbach + + * ltdefns.dtx (subsubsection{Copying robust commands}): + Added \NewEnvironmentCopy, \RenewEnvironmentCopy, and \DeclareEnvironmentCopy (gh/963) + Also added \ShowEnvironment. + +2022-11-16 Frank Mittelbach + + * ltclass.dtx: + Introduce key 'nowarn' on filecontents (gh/958) + Do not show "current dir" in message (gh/917) + +2022-11-14 Frank Mittelbach + + * latexrelease.dtx (subsection{Ignoring \texttt{\string_new} errors when rolling back}): + Silence \cs{NewMarkClass} in rollback (gh/955) + +2022-11-13 Frank Mittelbach + + * doc.dtx: + Redefinitions of \verb removed as no longer needed (gh/953) + + Redefinitions of \@verbatim changed to match the kernel + definition (gh/953) + +2022-11-08 Frank Mittelbach + + * ltshipout.dtx: + Add a shipout hook to be executed just before we + actually do the shipout (gh/920) + +2022-11-07 Frank Mittelbach + + * ltvers.dtx (section{Version Identification}): + Store release data in \LaTeXReleaseInfo for reuse at the end of + the .log file (gh/944) + + * ltmiscen.dtx (subsection{Environments}): Add to a hook in + \end{document} to (re)display the LaTeX release information (gh/944) + +2022-11-03 Frank Mittelbach + + * doc.dtx: correctly handle \ and allow it to be excluded + from the index (gh/943) + +================================================================================ +All changes above are only part of the development branch for the next release. +================================================================================ + +######################### +# 2022-11-01 PL1 Release +######################### + +2022-11-28 Frank Mittelbach + + * ltspace.dtx (subsection{Horizontal space (and breaks)}): + We use a private register instead of a group with \hspace in case it + starts the paragraph. + Otherwise \everypar and friends will be executed inside a group (gh/967) + +2022-11-28 Frank Mittelbach + + * ltxdoc.dtx: + Revert using \detokenize in \cs (gh/962) + Eventually we will need to sync with the code in l3doc but for now + we stay with the simpler definition from doc.sty. + + +2022-11-30 Joseph Wright + + * ltfinal.dtx: + Set \oe and \OE equal in case changing to allow detection + by babel ######################### # 2022-11-01 Release diff --git a/macros/latex-dev/base/classes.pdf b/macros/latex-dev/base/classes.pdf index 0f3e7a5cce..30f8f4f5c0 100644 Binary files a/macros/latex-dev/base/classes.pdf and b/macros/latex-dev/base/classes.pdf differ diff --git a/macros/latex-dev/base/clsguide.pdf b/macros/latex-dev/base/clsguide.pdf index f164e9b482..709334dd02 100644 Binary files a/macros/latex-dev/base/clsguide.pdf and b/macros/latex-dev/base/clsguide.pdf differ diff --git a/macros/latex-dev/base/cmfonts.pdf b/macros/latex-dev/base/cmfonts.pdf index 9293df614a..255f6af9ad 100644 Binary files a/macros/latex-dev/base/cmfonts.pdf and b/macros/latex-dev/base/cmfonts.pdf differ diff --git a/macros/latex-dev/base/cyrguide.pdf b/macros/latex-dev/base/cyrguide.pdf index ad43e0b7f1..eb8b6a1618 100644 Binary files a/macros/latex-dev/base/cyrguide.pdf and b/macros/latex-dev/base/cyrguide.pdf differ diff --git a/macros/latex-dev/base/doc-code.pdf b/macros/latex-dev/base/doc-code.pdf index 5da305cde9..5d573b35df 100644 Binary files a/macros/latex-dev/base/doc-code.pdf and b/macros/latex-dev/base/doc-code.pdf differ diff --git a/macros/latex-dev/base/doc.dtx b/macros/latex-dev/base/doc.dtx index d137038d63..a2c95694ae 100644 --- a/macros/latex-dev/base/doc.dtx +++ b/macros/latex-dev/base/doc.dtx @@ -45,7 +45,7 @@ %<+package> %<+package>\ProvidesPackage{doc} %<+shortvrb>\ProvidesPackage{shortvrb} -%<+package|shortvrb> [2022/07/03 v3.0k +%<+package|shortvrb> [2022/11/13 v3.0m %<+package|shortvrb> Standard LaTeX documentation package V3 (FMi)] %\catcode`\<=12 % @@ -82,6 +82,8 @@ % \changes{v1.9a}{1993/12/02}{Upgrade for LaTeX2e} % \changes{v1.9d}{1993/12/20}{Protected changes entry.} % \changes{v1.0p}{1994/05/21}{Use new error commands} +% \changes{v3.0m}{2022/11/13}{Redefinitions of \cs{verb} removed as +% no longer needed (gh/953)} % % % \hyphenation{make-index} @@ -1208,7 +1210,7 @@ % not to exceed this limit when describing the change. The actual % entry consists of the \meta{version}, the |\actualchar|, the current % macro name, a colon, the |\levelchar|, and, finally, the \meta{text}. -% The result is a glossaryentry for the \meta{version}, with the name of +% The result is a glossary entry for the \meta{version}, with the name of % the current macro as subitem. Outside the |macro| environment, the % text |\generalname| is used instead of the macro name. When % referring to macros in change descriptions it is conventional to use @@ -1216,6 +1218,13 @@ % and using up valuable characters in the entry with old \prg{makeindex} % versions. % +% Note that in the history listing, the entry is shown with the page number +% that corresponds to its place in the source, e.g., general changes put at the +% very beginning of the file will show up with page number ``1'', change entries +% placed elsewhere might have different numbers (not necessarily always +% very useful unless you are careful). +% +% % \changes{v1.7a}{1992/02/26}{Description of \cs{RecordChanges} etc. % added % to interface section.} \DescribeInterfaceMacro\RecordChanges To cause the @@ -1824,8 +1833,8 @@ % July 1989. % \bibitem{art:docstrip} \textsc{Frank Mittelbach, Denys Duchier and % Johannes Braams}. -% \newblock \texttt{docstrip.dtx} (to appear). -% \newblock The file is part of the DOC package. +% \newblock \texttt{docstrip.dtx}. +% \newblock The file is part of core \LaTeX{}. % \bibitem{book:Raspe} \textsc{R. E. Raspe} (*1737, \dag 1797). % \newblock Baron Münchhausens narrative of his marvelous % travels and campaigns in Russia. @@ -2686,12 +2695,16 @@ % first lines are copied literally from \texttt{latex.tex}. % \changes{v1.7i}{1992/07/12}{Added \cs{@@par} to clear possible % \cs{parshape}.} +% \changes{v3.0m}{2022/11/13}{Redefinitions of \cs{@verbatim} changed +% to match the kernel definition (gh/953)} % \begin{macrocode} -\def\@verbatim{\trivlist \item[]\if@minipage\else\vskip\parskip\fi - \leftskip\@totalleftmargin\rightskip\z@ - \parindent\z@\parfillskip\@flushglue\parskip\z@ - \@@par - \@tempswafalse +\def\@verbatim{\trivlist \item\relax + \if@minipage\else\vskip\parskip\fi + \leftskip\@totalleftmargin\rightskip\z@ + \parindent\z@\parfillskip\@flushglue\parskip\z@ + \language\l@nohyphenation + \@@par + \@tempswafalse % \end{macrocode} % |\@verbatim| sets |^^M|, the end of line character, to % be equal to |\par|. This control sequence is redefined @@ -2699,8 +2712,13 @@ % \changes{v1.7c}{1992/03/24}{Added \cs{interlinepenalty} to % \cs{par} from verbatim.sty} % \begin{macrocode} - \def\par{\if@tempswa\hbox{}\fi\@tempswatrue\@@par - \penalty\interlinepenalty + \def\par{% + \if@tempswa + \leavevmode \null \@@par\penalty\interlinepenalty + \else + \@tempswatrue + \ifhmode\@@par\penalty\interlinepenalty\fi + \fi % \end{macrocode} % We add a control sequence |\check@percent| to the definition % of |\par| whose task it is to check for a percent character. @@ -2713,9 +2731,10 @@ % \changes{v1.8b}{1993/09/21}{Changed to conform to new LaTeX verbatim, % which handles more ligatures.} % \begin{macrocode} - \obeylines - \let\do\do@noligs \verbatim@nolig@list - \let\do\@makeother \dospecials} + \let\do\@makeother \dospecials + \obeylines \verbatim@font \@noligs + \everypar \expandafter{\the\everypar \unpenalty}% +} % \end{macrocode} % \end{macro} % @@ -2744,83 +2763,12 @@ % \end{macrocode} % \end{macro} % -% \begin{imacro}{\verb} -% \changes{v1.7a}{1992/02/27}{Now warns about newlines (from -% newdoc with `@noligs added).} -% \changes{v1.8b}{1993/09/21}{Changed to conform to new LaTeX \cs{verb}} -% We re-define |\verb| to check for newlines in its argument since a -% missing delimiter is difficult to detect in \DOC{} source. -% The code is the same as in \texttt{latex.tex} of September 19, 1993. -% Perhaps there should be a font-changing -% hook rather than just using |\ttfamily|, but if so it probably should be -% different from |\MacroFont| since that normally includes |\small| -% and would look wrong inline. -% \changes{v1.7a}{1992/02/28}{Added math mode check (from verbatim.sty)} -% \begin{macrocode} -\def\verb{\relax\ifmmode\hbox\else\leavevmode\null\fi - \bgroup \let\do\do@noligs \verbatim@nolig@list - \ttfamily \verb@eol@error \let\do\@makeother \dospecials - \@ifstar{\@sverb}{\@vobeyspaces \frenchspacing \@sverb}} -% \end{macrocode} -% \end{imacro} -% -% \begin{macro}{\verb@balance@group} -% \begin{macro}{\verb@egroup} -% \begin{macro}{\verb@eol@error} -% \changes{v1.8b}{1993/09/21}{Renamed \cs{verb@err} to -% \cs{verb@eol@error}, as in new LaTeX verbatim.} -% \begin{macrocode} -\let\verb@balance@group\@empty -% \end{macrocode} -% -% \begin{macrocode} -\def\verb@egroup{\global\let\verb@balance@group\@empty\egroup} -% \end{macrocode} -% -% \begin{macrocode} -\begingroup - \obeylines% - \gdef\verb@eol@error{\obeylines% - \def^^M{\verb@egroup\@latex@error{% - \noexpand\verb command ended by end of line}\@ehc}}% -\endgroup -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% -% \begin{macro}{\@sverb} -% \changes{v1.7a}{1992/02/27}{Added for \cs{verb} change.} -% \changes{v1.7a}{1992/02/28}{Now same as in verbatim.sty.} -% \changes{v1.8b}{1993/09/21}{Changed to conform to new LaTeX verbatim, -% which has better error trapping.} -% See \cite{art:verbatim} for commentary. -% \changes{v2.1j}{2019/11/03}{Use the kernel definition, no change needed (gh/205)} -% \begin{macrocode} -%\def\@sverb#1{% -% \catcode`#1\active \lccode`\~`#1% -% \gdef\verb@balance@group{\verb@egroup -% \@latex@error{Illegal use of \noexpand\verb command}\@ehc}% -% \aftergroup\verb@balance@group -% \lowercase{\let~\verb@egroup}} -% \end{macrocode} -% \end{macro} -% % -% \begin{macro}{\verbatim@nolig@list} -% \begin{macro}{\do@noligs} -% These macros replace the old |\@noligs| mechanism by an -% extensible version to allow more ligatures to be added. -% \begin{macrocode} -\def\verbatim@nolig@list{\do\`\do\<\do\>\do\,\do\'\do\-} -\def\do@noligs#1{% - \catcode`#1\active - \begingroup - \lccode`\~=`#1\relax - \lowercase{\endgroup\def~{\leavevmode\kern\z@\char`#1}}} -% \end{macrocode} -% \end{macro} -% \end{macro} +% In the early versions of the package it also redefined \cs{verb} +% because that didn't include the useful test for \enquote{newline} in +% the verbatim text. This is nowadays part of \LaTeX{} so we do not +% redefine it any longer (the original code is still kept in the file +% after \cs{endinput} to keep the long history intact). % % \begin{tcounter}{\macro@cnt} % \label{page:macro} The \env{macro} environment is implemented as @@ -3147,9 +3095,6 @@ % % \begin{macro}{\short@macro} % -% \fmi{this needs cleaning up too, the results in the index are -% currently wrong for cases like `\cs{ }' and the like.} -% % \changes{v1.5c}{1989/04/27}{Corrected bad bug by putting the % scan@allowedfalse macro before printing % the argument.} @@ -3164,17 +3109,14 @@ % done by the |\ifnot@excluded| macro which assumes that the % macro name is saved in |\macro@namepart|. The character % mustn't be stored with a special category code or exclusion from -% the index won't work, so we employ the case-changing trick used -% elsewhere. Since the argument might be an active character, -% |\string| is used to normalize it. +% the index won't work, so we we use \cs{string} to normalize it +% the same way it is done in \cs{DoNotIndex}, i.e. everything ends up catcode 12 +% except for the space character. % \changes{v2.0e}{1998/12/28}{Correctly use the case-changing trick.} +% \changes{v3.0l}{2022/11/03}{No longer using the case-changing trick.} % \begin{macrocode} -\begingroup -\catcode`\&=12 -\gdef\short@macro#1{\begingroup - \uccode`\&=\expandafter`\string#1% - \uppercase{\def\x{\def\macro@namepart{&}}}% - \expandafter\endgroup\x +\def\short@macro#1{% + \edef\macro@namepart{\string#1}% % \end{macrocode} % Any indexing is then delegated to % |\maybe@index@short@macro|. Depending on the actual character seen, @@ -3197,7 +3139,6 @@ % cross-referencing is globally disabled. % \begin{macrocode} \scan@allowedtrue } -\endgroup % \end{macrocode} % \end{macro} % @@ -3441,7 +3382,6 @@ \def \ShowIndexingState { \__doc_trace:x{Show~ doc~ indexing~ state:} \seq_show:N \l__doc_donotindex_seq -% \tl_analysis_show:N\l__doc_donotindex_seq \prop_show:N \g__doc_idxtype_prop } % \end{macrocode} @@ -3637,10 +3577,12 @@ % \begin{macro}{\maybe@index@short@macro} % \begin{macro}{\__doc_maybe_index_short:o} % Single character macros are handled similarly but there the -% indexing is done by \cs{SpecialShortIndex}. +% indexing is done by \cs{SpecialShortIndex} and it is simpler +% because we know that the argument contains a string token not letters. +% \changes{v3.0l}{2022/11/03}{We know the argument expands to a single string token} % \begin{macrocode} \cs_new:Npn \__doc_maybe_index_short:o #1 { - \exp_args:Nf \__doc_maybe_index_aux:nN { \tl_to_str:o {#1} } + \exp_args:No \__doc_maybe_index_aux:nN #1 \SpecialShortIndex } \cs_set_eq:NN \maybe@index@short@macro \__doc_maybe_index_short:o @@ -3715,7 +3657,12 @@ {\cs_to_str:N \^^M } {\def\reserved@a{ \string \space \actualchar } \def\reserved@b { \space } \let\reserved@c \@empty } - { } {\def\reserved@a{ \string \space \actualchar } +% \end{macrocode} +% With the fix for +% \verb*=\ = we now have to look for a real space to handle that command sequence. +% \changes{v3.0l}{2022/11/03}{look for the right token} +% \begin{macrocode} + { ~ } {\def\reserved@a{ \string \space \actualchar } \def\reserved@b { \space } \let\reserved@c \@empty } {\c_left_brace_str} { \def\reserved@a{ \bgroup \actualchar } @@ -6256,6 +6203,89 @@ % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \endinput +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +% \section{Code no longer used} +% +% \begin{imacro}{\verb} +% \changes{v1.7a}{1992/02/27}{Now warns about newlines (from +% newdoc with `@noligs added).} +% \changes{v1.8b}{1993/09/21}{Changed to conform to new LaTeX \cs{verb}} +% We re-define |\verb| to check for newlines in its argument since a +% missing delimiter is difficult to detect in \DOC{} source. +% The code is the same as in \texttt{latex.tex} of September 19, 1993. +% Perhaps there should be a font-changing +% hook rather than just using |\ttfamily|, but if so it probably should be +% different from |\MacroFont| since that normally includes |\small| +% and would look wrong inline. +% \changes{v1.7a}{1992/02/28}{Added math mode check (from verbatim.sty)} +% \begin{macrocode} +%\def\verb{\relax\ifmmode\hbox\else\leavevmode\null\fi +% \bgroup \let\do\do@noligs \verbatim@nolig@list +% \ttfamily \verb@eol@error \let\do\@makeother \dospecials +% \@ifstar{\@sverb}{\@vobeyspaces \frenchspacing \@sverb}} +% \end{macrocode} +% \end{imacro} +% +% \begin{macro}{\verb@balance@group} +% \begin{macro}{\verb@egroup} +% \begin{macro}{\verb@eol@error} +% \changes{v1.8b}{1993/09/21}{Renamed \cs{verb@err} to +% \cs{verb@eol@error}, as in new LaTeX verbatim.} +% \begin{macrocode} +%\let\verb@balance@group\@empty +% \end{macrocode} +% +% \begin{macrocode} +%\def\verb@egroup{\global\let\verb@balance@group\@empty\egroup} +% \end{macrocode} +% +% \begin{macrocode} +%\begingroup +% \obeylines% +% \gdef\verb@eol@error{\obeylines% +% \def^^M{\verb@egroup\@latex@error{% +% \noexpand\verb command ended by end of line}\@ehc}}% +%\endgroup +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\@sverb} +% \changes{v1.7a}{1992/02/27}{Added for \cs{verb} change.} +% \changes{v1.7a}{1992/02/28}{Now same as in verbatim.sty.} +% \changes{v1.8b}{1993/09/21}{Changed to conform to new LaTeX verbatim, +% which has better error trapping.} +% See \cite{art:verbatim} for commentary. +% \changes{v2.1j}{2019/11/03}{Use the kernel definition, no change needed (gh/205)} +% \begin{macrocode} +%\def\@sverb#1{% +% \catcode`#1\active \lccode`\~`#1% +% \gdef\verb@balance@group{\verb@egroup +% \@latex@error{Illegal use of \noexpand\verb command}\@ehc}% +% \aftergroup\verb@balance@group +% \lowercase{\let~\verb@egroup}} +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{\verbatim@nolig@list} +% \begin{macro}{\do@noligs} +% These macros replace the old |\@noligs| mechanism by an +% extensible version to allow more ligatures to be added. +% \begin{macrocode} +%\def\verbatim@nolig@list{\do\`\do\<\do\>\do\,\do\'\do\-} +%\def\do@noligs#1{% +% \catcode`#1\active +% \begingroup +% \lccode`\~`#1\relax +% \lowercase{\endgroup\def~{\leavevmode\kern\z@\char`#1}}} +% \end{macrocode} +% \end{macro} +% \end{macro} + ^^A Needed for emacs ^^A diff --git a/macros/latex-dev/base/doc.pdf b/macros/latex-dev/base/doc.pdf index ba56cfe561..cce65ca48d 100644 Binary files a/macros/latex-dev/base/doc.pdf and b/macros/latex-dev/base/doc.pdf differ diff --git a/macros/latex-dev/base/docstrip.pdf b/macros/latex-dev/base/docstrip.pdf index f3ef8b3fc3..661da9efd5 100644 Binary files a/macros/latex-dev/base/docstrip.pdf and b/macros/latex-dev/base/docstrip.pdf differ diff --git a/macros/latex-dev/base/encguide.pdf b/macros/latex-dev/base/encguide.pdf index 255563550b..07fc3f5113 100644 Binary files a/macros/latex-dev/base/encguide.pdf and b/macros/latex-dev/base/encguide.pdf differ diff --git a/macros/latex-dev/base/exscale.pdf b/macros/latex-dev/base/exscale.pdf index 38a778e1b6..a5f1195be7 100644 Binary files a/macros/latex-dev/base/exscale.pdf and b/macros/latex-dev/base/exscale.pdf differ diff --git a/macros/latex-dev/base/fix-cm.pdf b/macros/latex-dev/base/fix-cm.pdf index 90892c6caa..0f14974f3a 100644 Binary files a/macros/latex-dev/base/fix-cm.pdf and b/macros/latex-dev/base/fix-cm.pdf differ diff --git a/macros/latex-dev/base/fntguide.pdf b/macros/latex-dev/base/fntguide.pdf index d0644e8279..b2e74d07e7 100644 Binary files a/macros/latex-dev/base/fntguide.pdf and b/macros/latex-dev/base/fntguide.pdf differ diff --git a/macros/latex-dev/base/graphpap.pdf b/macros/latex-dev/base/graphpap.pdf index bc70a0cf14..3f3b067639 100644 Binary files a/macros/latex-dev/base/graphpap.pdf and b/macros/latex-dev/base/graphpap.pdf differ diff --git a/macros/latex-dev/base/ifthen.pdf b/macros/latex-dev/base/ifthen.pdf index 35f52dca6e..1702b8105b 100644 Binary files a/macros/latex-dev/base/ifthen.pdf and b/macros/latex-dev/base/ifthen.pdf differ diff --git a/macros/latex-dev/base/inputenc.pdf b/macros/latex-dev/base/inputenc.pdf index 90f5aac0cb..dce32355a2 100644 Binary files a/macros/latex-dev/base/inputenc.pdf and b/macros/latex-dev/base/inputenc.pdf differ diff --git a/macros/latex-dev/base/lamport-manual.pdf b/macros/latex-dev/base/lamport-manual.pdf index f18b52c99e..e0895befef 100644 Binary files a/macros/latex-dev/base/lamport-manual.pdf and b/macros/latex-dev/base/lamport-manual.pdf differ diff --git a/macros/latex-dev/base/latexrelease.dtx b/macros/latex-dev/base/latexrelease.dtx index 294007553d..132a2548e4 100644 --- a/macros/latex-dev/base/latexrelease.dtx +++ b/macros/latex-dev/base/latexrelease.dtx @@ -40,7 +40,7 @@ %<*latexrelease> % \fi % \ProvidesFile{latexrelease.dtx} - [2022/02/28 v1.0o LaTeX release emulation and tests + [2022/11/14 v1.0p LaTeX release emulation and tests (including releases up to \latexreleaseversion)] % \iffalse % @@ -746,8 +746,12 @@ of this package available from CTAN} % % Finally, redirect the error thrown by \cs{NewHook} to nowhere so it % can be safely reused (the hook isn't redeclared if it already exists). +% The same happens for \cs{NewMarkClass}. +% \changes{v1.0p}{2022/11/14} +% {Silence \cs{NewMarkClass} in rollback (gh/955)} % \begin{macrocode} \msg_redirect_name:nnn { hooks } { exists } { none } +\msg_redirect_name:nnn { mark } { class-already-defined }{ none } % \end{macrocode} % % Now a one-off for |ltcmd.dtx|: we need to make \cs{NewDocumentCommand} @@ -799,9 +803,12 @@ of this package available from CTAN} \tl_clear:N \l_@@_restores_tl % \end{macrocode} % -% And restore the hook error message. +% And restore the silenced error messages. +% \changes{v1.0p}{2022/11/14} +% {Unsilence \cs{NewMarkClass} error message after rollback (gh/955)} % \begin{macrocode} \msg_redirect_name:nnn { hooks } { exists } { } +\msg_redirect_name:nnn { mark } { class-already-defined } { } % \end{macrocode} % % \begin{macrocode} diff --git a/macros/latex-dev/base/latexrelease.pdf b/macros/latex-dev/base/latexrelease.pdf index 35b2875861..a0111a19a8 100644 Binary files a/macros/latex-dev/base/latexrelease.pdf and b/macros/latex-dev/base/latexrelease.pdf differ diff --git a/macros/latex-dev/base/latexsym.pdf b/macros/latex-dev/base/latexsym.pdf index 0abf36f12f..b9d8779f70 100644 Binary files a/macros/latex-dev/base/latexsym.pdf and b/macros/latex-dev/base/latexsym.pdf differ diff --git a/macros/latex-dev/base/lb2.pdf b/macros/latex-dev/base/lb2.pdf index 394252b206..0c85e7c769 100644 Binary files a/macros/latex-dev/base/lb2.pdf and b/macros/latex-dev/base/lb2.pdf differ diff --git a/macros/latex-dev/base/letter.pdf b/macros/latex-dev/base/letter.pdf index 08b5b52d86..46adfcc798 100644 Binary files a/macros/latex-dev/base/letter.pdf and b/macros/latex-dev/base/letter.pdf differ diff --git a/macros/latex-dev/base/lgc2.pdf b/macros/latex-dev/base/lgc2.pdf index bc13c55acb..c60439b2de 100644 Binary files a/macros/latex-dev/base/lgc2.pdf and b/macros/latex-dev/base/lgc2.pdf differ diff --git a/macros/latex-dev/base/lppl.pdf b/macros/latex-dev/base/lppl.pdf index 1240d11e78..ecb66844e2 100644 Binary files a/macros/latex-dev/base/lppl.pdf and b/macros/latex-dev/base/lppl.pdf differ diff --git a/macros/latex-dev/base/ltclass.dtx b/macros/latex-dev/base/ltclass.dtx index a525b6f573..63c42f6cd0 100644 --- a/macros/latex-dev/base/ltclass.dtx +++ b/macros/latex-dev/base/ltclass.dtx @@ -33,7 +33,7 @@ %<*driver> % \fi \ProvidesFile{ltclass.dtx} - [2022/10/22 v1.5e LaTeX Kernel (Class & Package Interface)] + [2022/11/16 v1.5f LaTeX Kernel (Class & Package Interface)] % \iffalse \documentclass{ltxdoc} \GetFileInfo{ltclass.dtx} @@ -2813,6 +2813,7 @@ % unknown option. % \changes{v1.3h}{2020/01/28}{Allow spaces in option string and display % only unknown options not the whole option list (gh/256)} +% \changes{v1.5f}{2022/11/16}{Introduce key 'nowarn' on filecontents (gh/958)} % \begin{macrocode} \def\filec@ntents@opt[#1]{% \edef\@fortmp{\zap@space#1 \@empty}% @@ -2821,7 +2822,7 @@ \csname filec@ntents@\reserved@a\endcsname \else \@latex@error{Unknown filecontents option \reserved@a}% - {Valid options are force (or overwrite), nosearch, noheader}% + {Valid options are force (or overwrite), nosearch, noheader, nowarn}% \fi}% \filec@ntents } @@ -2849,6 +2850,18 @@ \let\filec@ntents@checkdir\@empty \def\filec@ntents@where{exists on the system} % \end{macrocode} +% Option \texttt{nowarn} does not show any warning on the terminal +% but still writes it to the \texttt{.log}. +% \changes{v1.5f}{2022/11/16}{Introduce key 'nowarn' on filecontents (gh/958)} +% \begin{macrocode} +\def\filec@ntents@nowarn{% + \let\filec@ntents@warning\@latex@note@no@line +} +% \end{macrocode} +% By default we show terminal warnings. +% \begin{macrocode} +\let\filec@ntents@warning\@latex@warning@no@line +% \end{macrocode} % % \begin{macrocode} \begingroup% @@ -2925,6 +2938,8 @@ % on the terminal. % \changes{v1.3g}{2020/01/27}{Fix typo in error message} % \changes{v1.3j}{2020/02/20}{Fix missing quotes around file name (gh/284)} +% \changes{v1.5f}{2022/11/16}{Introduce key 'nowarn' on filecontents (gh/958)} +% \changes{v1.5f}{2022/11/16}{Do not show "current dir" in message (gh/917)} % \begin{macrocode} \ch@ck7\reserved@c\write\relax% \if@filesw% % Foul ... trying to overwrite \jobname! @@ -2932,8 +2947,8 @@ write to the file you are reading from!\MessageBreak% Data is written to screen instead.}% \else% - \@latex@warning@no@line% - {Writing or overwriting file `\@currdir\@curr@file'}% + \filec@ntents@warning% + {Writing or overwriting file `\@curr@file'}% \immediate\openout\reserved@c\q@curr@file\relax% \fi% \fi% diff --git a/macros/latex-dev/base/ltcmd.dtx b/macros/latex-dev/base/ltcmd.dtx index 14d6756f5c..30a1908c47 100644 --- a/macros/latex-dev/base/ltcmd.dtx +++ b/macros/latex-dev/base/ltcmd.dtx @@ -34,8 +34,8 @@ %%% From File: ltcmd.dtx % % \begin{macrocode} -\def\ltcmdversion{v1.1a} -\def\ltcmddate{2022-08-16} +\def\ltcmdversion{v1.1b} +\def\ltcmddate{2022-11-29} % \end{macrocode} % %<*driver> @@ -2401,21 +2401,28 @@ % \@@_show_command:NnNNwN, % \@@_show_expandable:N, % \@@_show_expandable:NnNNNNnN, -% \@@_show_command_aux:nNNn, +% \@@_show_command_aux:NnNNn, % \@@_show_environment:N, +% \@@_show:x, % } % These commands just expand the command once to reveal its innards, % then pass the type of command, the control sequence, the signature, -% and the code macro to \cs{@@_show_command_aux:nNNn}. +% and the code macro to \cs{@@_show_command_aux:NnNNn}. % \begin{macrocode} \cs_new_protected:Npn \@@_show_command:N #1 { \exp_after:wN \@@_show_command:NnNNwN #1 \q_@@ #1 } \cs_new_protected:Npn \@@_show_command:NnNNwN #1 #2 #3 #4 #5 \q_@@ #6 - { \@@_show_command_aux:nNNn { document~command } #6 #4 {#2} } + { + \@@_show_command_aux:NnNNn \tl_show:x + { document~command } #6 #4 {#2} + } \cs_new_protected:Npn \@@_show_expandable:N #1 { \exp_after:wN \@@_show_expandable:NnNNNNnN #1 #1 } \cs_new_protected:Npn \@@_show_expandable:NnNNNNnN #1 #2 #3 #4 #5 #6 #7 #8 - { \@@_show_command_aux:nNNn { expandable~document~command } #8 #5 {#2} } + { + \@@_show_command_aux:NnNNn \tl_show:x + { expandable~document~command } #8 #5 {#2} + } % \end{macrocode} % % Now just print everything in the required format. The auxiliary @@ -2423,27 +2430,31 @@ % \cs{l_@@_tmpa_tl}, so we ust use that here: % \changes{v1.0j}{2021/13/31} % {Make \cs{ShowCommand} stop for interaction} +% \changes{v1.1b}{2022/11/30} +% {Don't stop for the \cs{begin} part of an environment} % \begin{macrocode} -\cs_new_protected:Npn \@@_show_command_aux:nNNn #1 #2 #3 #4 +\cs_new_protected:Npn \@@_show_command_aux:NnNNn #1 #2 #3 #4 #5 { - \@@_split_signature:n {#4} - \tl_show:x + \@@_split_signature:n {#5} + #1 { - \token_to_str:N #2 = #1: \iow_newline: + \token_to_str:N #3 = #2: \iow_newline: \tl_use:N \l_@@_tmpa_tl - -> \cs_replacement_spec:N #3 + -> \cs_replacement_spec:N #4 } } % \end{macrocode} % % We can reuse most of the above to show an environment, except that % we need to ensure that the proper \cs[no-index]{environment~\ldots} -% are passed to \cs{@@_show_command_aux:nNNn}. Additionally, when +% are passed to \cs{@@_show_command_aux:NnNNn}. Additionally, when % |\ShowCommand\foo| is used (if |foo| is an environment), we show % |\endfoo| as well, and when |\ShowCommand\endfoo| is used, change % that to |\ShowCommand\foo| and do the same. % \changes{v1.0j}{2021/13/31} % {Make \cs{ShowCommand} stop for interaction} +% \changes{v1.1b}{2022/11/30} +% {Don't stop for the \cs{begin} part of an environment} % \begin{macrocode} \cs_new_protected:Npn \@@_show_environment:N #1 { @@ -2459,12 +2470,14 @@ { \use:x { - \@@_show_command_aux:nNNn { document~environment } + \@@_show_command_aux:NnNNn \@@_show:x { document~environment } { \exp_not:N \begin {#3} } \exp_not:c { environment~ #3 ~ code } {#2} } } +\cs_new_protected:Npn \@@_show:x #1 + { \iow_term:x { > ~ #1 . \iow_newline: } } \cs_new_protected:Npn \@@_show_environment_end:N #1 { \exp_args:NNx \@@_check_end:Nn \l_@@_tmpa_tl { \cs_to_str:N #1 } @@ -2473,10 +2486,15 @@ % \end{macrocode} % % And, of course, add \cs{__kernel_cmd_if_xparse:NTF} and -% \cs{@@_show:N} to \cs{@showcommandlisthook}: +% \cs{@@_show:N} to \cs{@showcommandlisthook} and to +% \cs{@showenvironmentlisthook} (\cs{@@_show:N} takes care of the +% environment case as well, so both entries are identical): +% \changes{v1.1b}{2022-11-29}{Add \cs{@showenvironmentlisthook}} % \begin{macrocode} \tl_gput_right:Nn \@showcommandlisthook { { \__kernel_cmd_if_xparse:NTF \@@_show:N } } +\tl_gput_right:Nn \@showenvironmentlisthook + { { \__kernel_cmd_if_xparse:NTF \@@_show:N } } % \end{macrocode} % \end{macro} % diff --git a/macros/latex-dev/base/ltcmdhooks-code.pdf b/macros/latex-dev/base/ltcmdhooks-code.pdf index 654c4f6a2d..b324da26c9 100644 Binary files a/macros/latex-dev/base/ltcmdhooks-code.pdf and b/macros/latex-dev/base/ltcmdhooks-code.pdf differ diff --git a/macros/latex-dev/base/ltcmdhooks-doc.pdf b/macros/latex-dev/base/ltcmdhooks-doc.pdf index a036d2e748..42222eb416 100644 Binary files a/macros/latex-dev/base/ltcmdhooks-doc.pdf and b/macros/latex-dev/base/ltcmdhooks-doc.pdf differ diff --git a/macros/latex-dev/base/ltdefns.dtx b/macros/latex-dev/base/ltdefns.dtx index bd820e7cf2..c604bd9620 100644 --- a/macros/latex-dev/base/ltdefns.dtx +++ b/macros/latex-dev/base/ltdefns.dtx @@ -32,7 +32,7 @@ %<*driver> % \fi \ProvidesFile{ltdefns.dtx} - [2022/05/22 v1.5r LaTeX Kernel (definition commands)] + [2022/11/24 v1.5s LaTeX Kernel (definition commands)] % \iffalse \documentclass{ltxdoc} \GetFileInfo{ltdefns.dtx} @@ -784,7 +784,9 @@ % not take arguments. (but may contain |\par|s) % % Make sure that an attempt to define a `graf' or `group' environment -% fails. +% fails by temporarily letting the undefined \verb=\...= (begin code) to +% the definition of \verb=\end...= and as a result we get an error if that +% has a definition. % \begin{macrocode} \long\def\@newenv#1#2#3#4{% \@ifundefined{#1}% @@ -1641,6 +1643,7 @@ % \end{macrocode} % % \begin{macro}{\declare@commandcopy} +% \begin{macro}{\declare@commandcopy@do} % Start by checking if the command is already defined. The proper action is % taken by each specific command above. If all's good, then % \cs{robust@command@act} is called with the proper arguments as described @@ -1650,11 +1653,14 @@ \long\def\declare@commandcopy#1#2#3#4{% \edef\reserved@a{\@expl@cs@to@str@@N#3}% \@ifundefined\reserved@a{#1}{#2}% - {\robust@command@act - \@declarecommandcopylisthook#4% - \declare@commandcopy@let{#3#4}}} + {\declare@commandcopy@do{#3}{#4}}} +\long\def\declare@commandcopy@do#1#2{% + \robust@command@act + \@declarecommandcopylisthook#2% + \declare@commandcopy@let{#1#2}} % \end{macrocode} % \end{macro} +% \end{macro} % % \begin{macro}{\@declarecommandcopylisthook} % The initial definition of \cs{@declarecommandcopylisthook} contains the @@ -1694,6 +1700,64 @@ % \end{macro} % % +% \begin{macrocode} +% +%\IncludeInRelease{2023-06-01}{\DeclareEnvironmentCopy} +% {Add \NewEnvironmentCopy, \RenewEnvironmentCopy, and \DeclareEnvironmentCopy}% +%<*2ekernel|latexrelease> +% \end{macrocode} +% +% \begin{macro}{\NewEnvironmentCopy} +% \begin{macro}{\RenewEnvironmentCopy} +% \begin{macro}{\DeclareEnvironmentCopy} +% If \verb=\#1= or \verb=\end#1= already exist one gets an error +% message talking about the problematical command (not the +% environment). +% The remainder of the \LaTeX{} run is probably badly +% broken and it is unlikely that continuing it gives +% reasonable results. +% \changes{v1.5s}{2022/11/24}{Add \cs{NewEnvironmentCopy}, +% \cs{RenewEnvironmentCopy}, and \cs{DeclareEnvironmentCopy} (gh/963)} +% \begin{macrocode} +\def\NewEnvironmentCopy{% + \declare@environmentcopy + {\@firstofone}% + {\@firstoftwo\@notdefinable}} +\def\RenewEnvironmentCopy{% + \declare@environmentcopy + {\@latex@error{Environment \reserved@a\space undefined}\@ehc + \@firstofone}% + {\@firstofone}} +\def\DeclareEnvironmentCopy{% + \declare@environmentcopy + {\@firstofone}% + {\@firstofone}} +\long\def\declare@environmentcopy#1#2#3#4{% + \edef\reserved@a{\@ifundefined{#3}{end#3}{#3}}% + \@ifundefined\reserved@a + {\def\reserved@a{#3}#1}% + {\def\reserved@a{#3}#2}% + {\ExpandArgs{cc}\declare@commandcopy@do{#3}{#4}% + \ExpandArgs{cc}\declare@commandcopy@do{end#3}{end#4}}} +% \end{macrocode} +% +% Now the rollback code. +% \begin{macrocode} +% +%\EndIncludeInRelease +%\IncludeInRelease{0000-00-00}{\DeclareEnvironmentCopy} +% {Undefine \NewEnvironmentCopy, \RenewEnvironmentCopy, and \DeclareEnvironmentCopy}% +%\let\NewEnvironmentCopy\@undefined +%\let\RenewEnvironmentCopy\@undefined +%\let\DeclareEnvironmentCopy\@undefined +%\EndIncludeInRelease +%<*2ekernel> +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% % \subsubsection{Showing robust commands} % % \begin{macro}{\ShowCommand} @@ -1747,7 +1811,6 @@ % \end{macrocode} % \end{macro} % -% % \begin{macrocode} % %\IncludeInRelease{2020-10-01}{\@if@DeclareRobustCommand} @@ -1836,6 +1899,7 @@ % % \begin{macro}{\@show@DeclareRobustCommand} % \begin{macro}{\show@kernel@robust@command} +% \begin{macro}{\@show@macro} % Showing the command is pretty simple. This command prints the top-level % expansion as \TeX's \cs{show} would, but with |robust macro:| rather than % just |macro:|, then a blank line and then \cs{show} the inner command. @@ -1863,12 +1927,14 @@ \robust@command@chk@safe#1% {\@if@newcommand#1% {\@show@newcommand}% - {\show}}% - {\show}% + {\@show@macro}}% + {\@show@macro}% #1} +\let\@show@macro\show % \end{macrocode} % \end{macro} % \end{macro} +% \end{macro} % % \end{macro} % @@ -1931,7 +1997,7 @@ \typeout{->\@expl@cs@replacement@spec@@N#1.^^J}% \expandafter\@show@newcommand@aux \csname\@backslashchar\@expl@cs@to@str@@N#1\expandafter\endcsname - \expandafter{#1}} + \expandafter{#1}\@show@tokens} % \end{macrocode} % % For a macro defined with, say, |\newcommand\foo[1][opt]{bar}|, it will @@ -1946,20 +2012,28 @@ % \end{verbatim} % If the command was defined with \cs{DeclareRobustCommand}, then another pair % of lines show the top-level expansion \verb*|\protect \foo |. -% -% The extra gymnastics with \cs{showtokens} ensures that \cs{showtokens} -% itself, and the internals of this macro aren't showed in the context lines. % \begin{macrocode} -\long\def\@show@newcommand@aux#1#2{% +\long\def\@show@newcommand@aux#1#2#3{% \typeout{> \string#1=\@expl@cs@prefix@spec@@N#1macro:}% - \edef\reserved@a{% - default \string##1=\expandafter\detokenize\@gobblethree#2.^^J% - \@expl@cs@argument@spec@@N#1->\@expl@cs@replacement@spec@@N#1}% - \showtokens\expandafter\expandafter\expandafter{\expandafter\reserved@a}} + #3{default \string##1=\expandafter\detokenize\@gobblethree#2.^^J% + \@expl@cs@argument@spec@@N#1->\@expl@cs@replacement@spec@@N#1}} % \end{macrocode} % \end{macro} % \end{macro} % +% \begin{macro}{\@show@tokens} +% This macro prints the contents of the token list (macro) |#1| using +% \cs{showtokens}. The \cs{expandafter} gymnastics ensures that +% \cs{showtokens} itself, and the internals of this macro aren't +% showed in the context lines. +% \begin{macrocode} +\long\def\@show@tokens#1{% + \edef\reserved@a{#1}% + \showtokens\expandafter + \expandafter\expandafter{\expandafter\reserved@a}} +% \end{macrocode} +% \end{macro} +% % Now the rollback code. % \begin{macrocode} % @@ -1985,6 +2059,124 @@ % \end{macro} % % +% \subsubsection{Showing environments} +% +% \begin{macro}{\ShowEnvironment} +% \changes{v1.5s}{2022/11/24}{Added \cs{ShowEnvironment}} +% +% \begin{macrocode} +% +%\IncludeInRelease{2023-06-01}{\ShowEnvironment} +% {Add \ShowEnvironment}% +%<*2ekernel|latexrelease> +% \end{macrocode} +% +% \cs{ShowEnvironment} is quite similar to \cs{ShowCommand}. We will +% pass the environment \meta{env} around as the macro +% \cs[no-index]{env}, because \cs{robust@command@act} expects a single +% token. +% \begin{macrocode} +\def\ShowEnvironment#1{% + \expandafter\@show@environment\csname #1\endcsname} +\long\def\@show@environment#1{% + \robust@command@act + \@showenvironmentlisthook#1% + \@show@normalenv#1} +% \end{macrocode} +% +% \begin{macro}{\@showenvironmentlisthook} +% This is similar to \cs{@showcommandlisthook}, but uses the dedicated +% versions for environments. +% \begin{macrocode} +\def\@showenvironmentlisthook{% + {\@if@DeclareRobustCommand \@show@DeclareRobustCommand@env}% + {\@if@newcommand \@show@newcommand@env}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@show@newcommand@env} +% \begin{macro}{\@show@DeclareRobustCommand@env} +% These are similar to the command versions below, except they say +% \enquote{environment} and call \cs{@show@environment@end} to print +% the \cs{end} part. +% \begin{macrocode} +\long\def\@show@newcommand@env#1{% + \@show@environment@begin#1% + \expandafter\@show@newcommand@aux + \csname\@backslashchar\@expl@cs@to@str@@N#1\expandafter\endcsname + \expandafter{#1}\@show@typeout + \@show@environment@end#1} +\long\def\@show@DeclareRobustCommand@env#1{% + \@show@environment@begin#1% + \begingroup + \let\@show@tokens\@show@typeout + \let\@show@macro\@show@nonstop + \expandafter\show@kernel@robust@command + \csname\@expl@cs@to@str@@N#1 \endcsname + \endgroup + \@show@environment@end#1} +\long\def\@show@environment@begin#1{% + \typeout{> \string\begin{\@expl@cs@to@str@@N#1}=environment:}% + \typeout{\@expl@cs@argument@spec@@N#1->% + \@expl@cs@replacement@spec@@N#1.^^J}} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\@show@normalenv} +% \begin{macro}{\@show@environment@end} +% A \enquote{normal} environment is straightforward. +% \cs{@show@environment@end} needs to check if the \cs{end} part is +% defined and show it accordingly, otherwise the output would show +% gibberish. +% \begin{macrocode} +\long\def\@show@normalenv#1{% + \@show@environment@begin#1% + \@show@environment@end#1} +\long\def\@show@environment@end#1{% + \expandafter\@show@environment@end@aux + \csname end\@expl@cs@to@str@@N#1\endcsname#1} +\long\def\@show@environment@end@aux#1#2{% + \@show@tokens{\string\end{\@expl@cs@to@str@@N#2}% + \ifx\relax#1=undefined% + \else:^^J\@expl@cs@argument@spec@@N#1->% + \@expl@cs@replacement@spec@@N#1% + \fi}} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\@show@nonstop} +% \begin{macro}{\@show@typeout} +% And here some auxiliaries: +% \begin{description} +% \item[\cs{@show@nonstop}] same output as \cs{show}, but doesn't +% stop for interaction; +% \item[\cs{@show@typeout}] same output as \cs{showtokens}, but +% doesn't stop for interaction. +% \end{description} +% \begin{macrocode} +\def\@show@nonstop#1{% + \typeout{> \string#1=\@expl@cs@prefix@spec@@N#1macro:^^J% + \@expl@cs@argument@spec@@N#1->\@expl@cs@replacement@spec@@N#1.}} +\def\@show@typeout#1{\typeout{> #1.^^J}} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% Now the rollback code. +% \begin{macrocode} +% +%\EndIncludeInRelease +%\IncludeInRelease{0000-00-00}{\ShowEnvironment} +% {Undefine \ShowEnvironment}% +%\let\ShowEnvironment\@undefined +%\EndIncludeInRelease +%<*2ekernel> +% \end{macrocode} +% \end{macro} +% +% % \subsection{Internal defining commands} % % These commands are used internally to define other \LaTeX{} diff --git a/macros/latex-dev/base/ltfilehook-code.pdf b/macros/latex-dev/base/ltfilehook-code.pdf index 24cc0545ec..e031f84227 100644 Binary files a/macros/latex-dev/base/ltfilehook-code.pdf and b/macros/latex-dev/base/ltfilehook-code.pdf differ diff --git a/macros/latex-dev/base/ltfilehook-doc.pdf b/macros/latex-dev/base/ltfilehook-doc.pdf index 65e8fade02..ddc060fcc0 100644 Binary files a/macros/latex-dev/base/ltfilehook-doc.pdf and b/macros/latex-dev/base/ltfilehook-doc.pdf differ diff --git a/macros/latex-dev/base/ltfinal.dtx b/macros/latex-dev/base/ltfinal.dtx index 7f4bef3bcc..a19ffa8305 100644 --- a/macros/latex-dev/base/ltfinal.dtx +++ b/macros/latex-dev/base/ltfinal.dtx @@ -33,7 +33,7 @@ %<*driver> % \fi \ProvidesFile{ltfinal.dtx} - [2022/10/26 v2.2x LaTeX Kernel (Final Settings)] + [2022/11/30 v2.2y LaTeX Kernel (Final Settings)] % \iffalse \documentclass{ltxdoc} \GetFileInfo{ltfinal.dtx} @@ -1151,9 +1151,7 @@ \cs_set_protected:Npn \reserved@a #1 { \cs_generate_variant:cn { text_ \str_lowercase:n {#1} case:nn } { V } - \cs_new_protected:cpx { Make#1case \c_space_tl \c_space_tl \c_space_tl } [##1] ##2 - { \exp_not:N \@@text@case@aux { \str_lowercase:n {#1} } {##1} {##2} } - \ExpandArgs { cnx } \NewExpandableDocumentCommand + \ExpandArgs { cnx } \NewExpandableDocumentCommand { Make#1case } { O{} +m } { \exp_not:c { Make#1case \c_space_tl \c_space_tl \c_space_tl } [####1] {####2} } @@ -1162,6 +1160,34 @@ \reserved@a { Lower } \reserved@a { Title } % \end{macrocode} +% \changes{v2.2y}{2022/11/30}{Set \cs{oe}/\cs{OE} equal to act as a marker for \pkg{babel}} +% Currently, \pkg{babel} uses the equivalence of \cs{oe} and \cs{OE} to force casing of +% some material, most notably in \cs{today}. To enable that to work, we have to set those +% commands equal even though the current case changing code does not work using this +% approach. +% \begin{macrocode} +\cs_new_protected:cpn { MakeLowercase \c_space_tl \c_space_tl \c_space_tl } [#1] #2 + { + \let \kernel@saved@OE \OE + \let \OE \oe + \@@text@case@aux { lower } {#1} {#2} + \let \OE \kernel@saved@OE + } +\cs_new_protected:cpn { MakeUppercase \c_space_tl \c_space_tl \c_space_tl } [#1] #2 + { + \let \kernel@saved@oe \oe + \let \oe \OE + \@@text@case@aux { upper } {#1} {#2} + \let \oe \kernel@saved@oe + } +\cs_new_protected:cpn { MakeTitlecase \c_space_tl \c_space_tl \c_space_tl } [#1] #2 + { + \let \kernel@saved@oe \oe + \let \oe \OE + \@@text@case@aux { title } {#1} {#2} + \let \oe \kernel@saved@oe + } +% \end{macrocode} % % \changes{v2.2u}{2022/06/02}{Add \cs{NoCaseChange}} % \changes{v2.2u}{2022/06/30}{Add \cs{AddToNoCaseChangeList}} diff --git a/macros/latex-dev/base/lthooks-code.pdf b/macros/latex-dev/base/lthooks-code.pdf index 9a8066d7e5..4b4b85023e 100644 Binary files a/macros/latex-dev/base/lthooks-code.pdf and b/macros/latex-dev/base/lthooks-code.pdf differ diff --git a/macros/latex-dev/base/lthooks-doc.pdf b/macros/latex-dev/base/lthooks-doc.pdf index 0fd3ab67ac..17e5d3a514 100644 Binary files a/macros/latex-dev/base/lthooks-doc.pdf and b/macros/latex-dev/base/lthooks-doc.pdf differ diff --git a/macros/latex-dev/base/ltluatex.pdf b/macros/latex-dev/base/ltluatex.pdf index 19a3267767..c99840f04b 100644 Binary files a/macros/latex-dev/base/ltluatex.pdf and b/macros/latex-dev/base/ltluatex.pdf differ diff --git a/macros/latex-dev/base/ltmarks-code.pdf b/macros/latex-dev/base/ltmarks-code.pdf index 4e28cba0f7..3204fd93a2 100644 Binary files a/macros/latex-dev/base/ltmarks-code.pdf and b/macros/latex-dev/base/ltmarks-code.pdf differ diff --git a/macros/latex-dev/base/ltmarks-doc.pdf b/macros/latex-dev/base/ltmarks-doc.pdf index 9ee6c42916..1203c72f0e 100644 Binary files a/macros/latex-dev/base/ltmarks-doc.pdf and b/macros/latex-dev/base/ltmarks-doc.pdf differ diff --git a/macros/latex-dev/base/ltmiscen.dtx b/macros/latex-dev/base/ltmiscen.dtx index b7b2bf5e31..69a7ac6963 100644 --- a/macros/latex-dev/base/ltmiscen.dtx +++ b/macros/latex-dev/base/ltmiscen.dtx @@ -32,7 +32,7 @@ %<*driver> % \fi \ProvidesFile{ltmiscen.dtx} - [2021/06/05 v1.1z LaTeX Kernel (Misc. Environments)] + [2022/11/06 v1.2a LaTeX Kernel (Misc. Environments)] % \iffalse \documentclass{ltxdoc} \GetFileInfo{ltmiscen.dtx} @@ -270,9 +270,17 @@ % This is one of the few places where we already add data and rules % to a hook already in the kernel. % \changes{v1.0w}{1994/11/30}{(DPC) Use \cs{@dofilelist}} +% \changes{v1.2a}{2022/11/06}{Repeat release info at the end (gh/944)} % \begin{macrocode} \AddToHook{enddocument/info}[kernel/filelist]{\@dofilelist} \AddToHook{enddocument/info}[kernel/warnings]{\@enddocument@kernel@warnings} +\AddToHook{enddocument/info}[kernel/release]{% + \let\show@release@info\wlog + \show@release@info{ ***********}% + \the\LaTeXReleaseInfo + \show@release@info{ ***********}} + +\DeclareHookRule{enddocument/info}{kernel/release}{before}{kernel/filelist} \DeclareHookRule{enddocument/info}{kernel/filelist}{before}{kernel/warnings} % \end{macrocode} % \end{macro} diff --git a/macros/latex-dev/base/ltnews.pdf b/macros/latex-dev/base/ltnews.pdf index 7074281150..3185ce2fc0 100644 Binary files a/macros/latex-dev/base/ltnews.pdf and b/macros/latex-dev/base/ltnews.pdf differ diff --git a/macros/latex-dev/base/ltnews.tex b/macros/latex-dev/base/ltnews.tex index 8d45f77cda..9a8de244c2 100644 --- a/macros/latex-dev/base/ltnews.tex +++ b/macros/latex-dev/base/ltnews.tex @@ -40,7 +40,7 @@ \ProvidesFile{ltnews.tex}% [2022/06/10 v1.4e Master file for ltnews*.tex (LaTeX Project)] -\providecommand*{\lastissue}{36} +\providecommand*{\lastissue}{37} \InputIfFileExists{ltnews-lastissue.cfg}{}{} diff --git a/macros/latex-dev/base/ltnews01.pdf b/macros/latex-dev/base/ltnews01.pdf index 8f5c23193e..8bc64afa46 100644 Binary files a/macros/latex-dev/base/ltnews01.pdf and b/macros/latex-dev/base/ltnews01.pdf differ diff --git a/macros/latex-dev/base/ltnews02.pdf b/macros/latex-dev/base/ltnews02.pdf index 332a568c99..6410f6c49a 100644 Binary files a/macros/latex-dev/base/ltnews02.pdf and b/macros/latex-dev/base/ltnews02.pdf differ diff --git a/macros/latex-dev/base/ltnews03.pdf b/macros/latex-dev/base/ltnews03.pdf index 10dcd6dabb..e6faf40788 100644 Binary files a/macros/latex-dev/base/ltnews03.pdf and b/macros/latex-dev/base/ltnews03.pdf differ diff --git a/macros/latex-dev/base/ltnews04.pdf b/macros/latex-dev/base/ltnews04.pdf index 140ae9bfc0..fdea7fa928 100644 Binary files a/macros/latex-dev/base/ltnews04.pdf and b/macros/latex-dev/base/ltnews04.pdf differ diff --git a/macros/latex-dev/base/ltnews05.pdf b/macros/latex-dev/base/ltnews05.pdf index b533e823d3..f45d499a6a 100644 Binary files a/macros/latex-dev/base/ltnews05.pdf and b/macros/latex-dev/base/ltnews05.pdf differ diff --git a/macros/latex-dev/base/ltnews06.pdf b/macros/latex-dev/base/ltnews06.pdf index ab0e8e6b0a..8fa7fd39ab 100644 Binary files a/macros/latex-dev/base/ltnews06.pdf and b/macros/latex-dev/base/ltnews06.pdf differ diff --git a/macros/latex-dev/base/ltnews07.pdf b/macros/latex-dev/base/ltnews07.pdf index b572c2afbb..deb8285b1d 100644 Binary files a/macros/latex-dev/base/ltnews07.pdf and b/macros/latex-dev/base/ltnews07.pdf differ diff --git a/macros/latex-dev/base/ltnews08.pdf b/macros/latex-dev/base/ltnews08.pdf index cfe3a2e383..2127ebe3a2 100644 Binary files a/macros/latex-dev/base/ltnews08.pdf and b/macros/latex-dev/base/ltnews08.pdf differ diff --git a/macros/latex-dev/base/ltnews09.pdf b/macros/latex-dev/base/ltnews09.pdf index e0d106d0f6..d731efbd39 100644 Binary files a/macros/latex-dev/base/ltnews09.pdf and b/macros/latex-dev/base/ltnews09.pdf differ diff --git a/macros/latex-dev/base/ltnews10.pdf b/macros/latex-dev/base/ltnews10.pdf index 4c9e88504a..5d2967891b 100644 Binary files a/macros/latex-dev/base/ltnews10.pdf and b/macros/latex-dev/base/ltnews10.pdf differ diff --git a/macros/latex-dev/base/ltnews11.pdf b/macros/latex-dev/base/ltnews11.pdf index 8f61d02d4d..364f3ab434 100644 Binary files a/macros/latex-dev/base/ltnews11.pdf and b/macros/latex-dev/base/ltnews11.pdf differ diff --git a/macros/latex-dev/base/ltnews12.pdf b/macros/latex-dev/base/ltnews12.pdf index 10deb7706e..7cccdcc6a4 100644 Binary files a/macros/latex-dev/base/ltnews12.pdf and b/macros/latex-dev/base/ltnews12.pdf differ diff --git a/macros/latex-dev/base/ltnews13.pdf b/macros/latex-dev/base/ltnews13.pdf index 098589bd93..5aa1175b0c 100644 Binary files a/macros/latex-dev/base/ltnews13.pdf and b/macros/latex-dev/base/ltnews13.pdf differ diff --git a/macros/latex-dev/base/ltnews14.pdf b/macros/latex-dev/base/ltnews14.pdf index 9c3dc54f14..02063e4e90 100644 Binary files a/macros/latex-dev/base/ltnews14.pdf and b/macros/latex-dev/base/ltnews14.pdf differ diff --git a/macros/latex-dev/base/ltnews15.pdf b/macros/latex-dev/base/ltnews15.pdf index 7678526dbc..1ff4a5662e 100644 Binary files a/macros/latex-dev/base/ltnews15.pdf and b/macros/latex-dev/base/ltnews15.pdf differ diff --git a/macros/latex-dev/base/ltnews16.pdf b/macros/latex-dev/base/ltnews16.pdf index e81dd332d6..04f5796d12 100644 Binary files a/macros/latex-dev/base/ltnews16.pdf and b/macros/latex-dev/base/ltnews16.pdf differ diff --git a/macros/latex-dev/base/ltnews17.pdf b/macros/latex-dev/base/ltnews17.pdf index a3bf39bcf2..a601da8823 100644 Binary files a/macros/latex-dev/base/ltnews17.pdf and b/macros/latex-dev/base/ltnews17.pdf differ diff --git a/macros/latex-dev/base/ltnews18.pdf b/macros/latex-dev/base/ltnews18.pdf index e754202b75..89350a011c 100644 Binary files a/macros/latex-dev/base/ltnews18.pdf and b/macros/latex-dev/base/ltnews18.pdf differ diff --git a/macros/latex-dev/base/ltnews19.pdf b/macros/latex-dev/base/ltnews19.pdf index 3288407f59..aa27ba08dc 100644 Binary files a/macros/latex-dev/base/ltnews19.pdf and b/macros/latex-dev/base/ltnews19.pdf differ diff --git a/macros/latex-dev/base/ltnews20.pdf b/macros/latex-dev/base/ltnews20.pdf index dd66d032cd..402394cc48 100644 Binary files a/macros/latex-dev/base/ltnews20.pdf and b/macros/latex-dev/base/ltnews20.pdf differ diff --git a/macros/latex-dev/base/ltnews21.pdf b/macros/latex-dev/base/ltnews21.pdf index 18b01c53e1..e4ea9cc255 100644 Binary files a/macros/latex-dev/base/ltnews21.pdf and b/macros/latex-dev/base/ltnews21.pdf differ diff --git a/macros/latex-dev/base/ltnews22.pdf b/macros/latex-dev/base/ltnews22.pdf index fa05f6a59f..5ee6bfc24d 100644 Binary files a/macros/latex-dev/base/ltnews22.pdf and b/macros/latex-dev/base/ltnews22.pdf differ diff --git a/macros/latex-dev/base/ltnews23.pdf b/macros/latex-dev/base/ltnews23.pdf index fa67d7822e..c2caca4c16 100644 Binary files a/macros/latex-dev/base/ltnews23.pdf and b/macros/latex-dev/base/ltnews23.pdf differ diff --git a/macros/latex-dev/base/ltnews24.pdf b/macros/latex-dev/base/ltnews24.pdf index a991678ddd..3c5ede15d2 100644 Binary files a/macros/latex-dev/base/ltnews24.pdf and b/macros/latex-dev/base/ltnews24.pdf differ diff --git a/macros/latex-dev/base/ltnews25.pdf b/macros/latex-dev/base/ltnews25.pdf index 52aef54c0c..885993792d 100644 Binary files a/macros/latex-dev/base/ltnews25.pdf and b/macros/latex-dev/base/ltnews25.pdf differ diff --git a/macros/latex-dev/base/ltnews26.pdf b/macros/latex-dev/base/ltnews26.pdf index 09e49e79ae..299a726a8e 100644 Binary files a/macros/latex-dev/base/ltnews26.pdf and b/macros/latex-dev/base/ltnews26.pdf differ diff --git a/macros/latex-dev/base/ltnews27.pdf b/macros/latex-dev/base/ltnews27.pdf index fa8a5fcf11..cc8f3e4896 100644 Binary files a/macros/latex-dev/base/ltnews27.pdf and b/macros/latex-dev/base/ltnews27.pdf differ diff --git a/macros/latex-dev/base/ltnews28.pdf b/macros/latex-dev/base/ltnews28.pdf index ac868bf0ed..9366cf0426 100644 Binary files a/macros/latex-dev/base/ltnews28.pdf and b/macros/latex-dev/base/ltnews28.pdf differ diff --git a/macros/latex-dev/base/ltnews29.pdf b/macros/latex-dev/base/ltnews29.pdf index 80a19569bf..8dbbb56102 100644 Binary files a/macros/latex-dev/base/ltnews29.pdf and b/macros/latex-dev/base/ltnews29.pdf differ diff --git a/macros/latex-dev/base/ltnews30.pdf b/macros/latex-dev/base/ltnews30.pdf index 68d5d8afb1..7a217b657a 100644 Binary files a/macros/latex-dev/base/ltnews30.pdf and b/macros/latex-dev/base/ltnews30.pdf differ diff --git a/macros/latex-dev/base/ltnews31.pdf b/macros/latex-dev/base/ltnews31.pdf index 54e5e2a830..c4a8f385eb 100644 Binary files a/macros/latex-dev/base/ltnews31.pdf and b/macros/latex-dev/base/ltnews31.pdf differ diff --git a/macros/latex-dev/base/ltnews32.pdf b/macros/latex-dev/base/ltnews32.pdf index 17264132fc..2e8fc1b80b 100644 Binary files a/macros/latex-dev/base/ltnews32.pdf and b/macros/latex-dev/base/ltnews32.pdf differ diff --git a/macros/latex-dev/base/ltnews33.pdf b/macros/latex-dev/base/ltnews33.pdf index d91676a1c0..05ed870d0b 100644 Binary files a/macros/latex-dev/base/ltnews33.pdf and b/macros/latex-dev/base/ltnews33.pdf differ diff --git a/macros/latex-dev/base/ltnews34.pdf b/macros/latex-dev/base/ltnews34.pdf index 9074b39850..5648f3e89e 100644 Binary files a/macros/latex-dev/base/ltnews34.pdf and b/macros/latex-dev/base/ltnews34.pdf differ diff --git a/macros/latex-dev/base/ltnews35.pdf b/macros/latex-dev/base/ltnews35.pdf index bffff429ce..2bab979d1a 100644 Binary files a/macros/latex-dev/base/ltnews35.pdf and b/macros/latex-dev/base/ltnews35.pdf differ diff --git a/macros/latex-dev/base/ltnews36.pdf b/macros/latex-dev/base/ltnews36.pdf index bd3fd8be10..575e2b9feb 100644 Binary files a/macros/latex-dev/base/ltnews36.pdf and b/macros/latex-dev/base/ltnews36.pdf differ diff --git a/macros/latex-dev/base/ltnews36.tex b/macros/latex-dev/base/ltnews36.tex index d6df801db2..b3f66564cb 100644 --- a/macros/latex-dev/base/ltnews36.tex +++ b/macros/latex-dev/base/ltnews36.tex @@ -262,10 +262,11 @@ will give the expected result: {\fontfamily{cmr} \bfseries \textsc{\textsl{Bold Slanted Small Caps}}; \textsc{\textit{Bold Italic Small Caps}}}. -Given that the Computer Modern fonts in \texttt{T1} do not have real italic small caps but only -slanted small caps, the latter is substituted for the former, which is -why above both work but you see no difference between the two (and in the log you get a -substitution warning for the \cs{textit}\cs{textsc} shape combination). +Given that the Computer Modern fonts in \texttt{T1} do not have real +italic small caps but only slanted small caps, the latter is +substituted for the former. This is why both work in the above, but +there is no difference between the two (and you get a substitution +warning for the \cs{textit}\cs{textsc} shape combination). % \githubissue{782} diff --git a/macros/latex-dev/base/ltnews37.pdf b/macros/latex-dev/base/ltnews37.pdf new file mode 100644 index 0000000000..a9216f04fd Binary files /dev/null and b/macros/latex-dev/base/ltnews37.pdf differ diff --git a/macros/latex-dev/base/ltnews37.tex b/macros/latex-dev/base/ltnews37.tex new file mode 100644 index 0000000000..4ce8fcccc9 --- /dev/null +++ b/macros/latex-dev/base/ltnews37.tex @@ -0,0 +1,378 @@ +% \iffalse meta-comment +% +% Copyright 2021-2023 +% The LaTeX Project and any individual authors listed elsewhere +% in this file. +% +% This file is part of the LaTeX base system. +% -—————————————— +% +% It may be distributed and/or modified under the +% conditions of the LaTeX Project Public License, either version 1.3c +% of this license or (at your option) any later version. +% The latest version of this license is in +% https://www.latex-project.org/lppl.txt +% and version 1.3c or later is part of all distributions of LaTeX +% version 2008 or later. +% +% This file has the LPPL maintenance status "maintained". +% +% The list of all files belonging to the LaTeX base distribution is +% given in the file `manifest.txt'. See also `legal.txt' for additional +% information. +% +% The list of derived (unpacked) files belonging to the distribution +% and covered by LPPL is defined by the unpacking scripts (with +% extension .ins) which are part of the distribution. +% +% \fi +% Filename: ltnews37.tex +% +% This is issue 37 of LaTeX News. + +\NeedsTeXFormat{LaTeX2e}[2020-02-02] + +\documentclass{ltnews} + +%% Maybe needed only for Chris' inadequate system: +\providecommand\Dash {\unskip \textemdash} + +%% NOTE: Chris' preferred hyphens! +%%\showhyphens{parameters} +%% \hyphenation{because parameters parameter} + +\usepackage[T1]{fontenc} + +\usepackage{lmodern,url,hologo} + +\usepackage{csquotes} +\usepackage{multicol} +\usepackage{color} + +\providecommand\hook[1]{\texttt{#1}} + +\providecommand\meta[1]{$\langle$\textrm{\itshape#1}$\rangle$} +\providecommand\option[1]{\texttt{#1}} +\providecommand\env[1]{\texttt{#1}} +\providecommand\Arg[1]{\texttt\{\meta{#1}\texttt\}} + + +\providecommand\eTeX{\hologo{eTeX}} +\providecommand\XeTeX{\hologo{XeTeX}} +\providecommand\LuaTeX{\hologo{LuaTeX}} +\providecommand\pdfTeX{\hologo{pdfTeX}} +\providecommand\MiKTeX{\hologo{MiKTeX}} +\providecommand\CTAN{\textsc{ctan}} +\providecommand\TL{\TeX\,Live} +\providecommand\githubissue[2][]{\ifhmode\unskip\fi + \quad\penalty500\strut\nobreak\hfill + \mbox{\small\slshape(% + \href{https://github.com/latex3/latex2e/issues/\getfirstgithubissue#2 \relax}% + {github issue#1 #2}% + )}% + \par\smallskip} +%% But Chris has to mostly disable \href for his TEXPAD app: +%% \def\href #1{} % Only For Chris' deficient TeX engine + +% simple solution right now (just link to the first issue if there are more) +\def\getfirstgithubissue#1 #2\relax{#1} + +\providecommand\sxissue[1]{\ifhmode\unskip + \else + % githubissue preceding + \vskip-\smallskipamount + \vskip-\parskip + \fi + \quad\penalty500\strut\nobreak\hfill + \mbox{\small\slshape(\url{https://tex.stackexchange.com/#1})}\par} + +\providecommand\gnatsissue[2]{\ifhmode\unskip\fi + \quad\penalty500\strut\nobreak\hfill + \mbox{\small\slshape(% + \href{https://www.latex-project.org/cgi-bin/ltxbugs2html?pr=#1\%2F\getfirstgithubissue#2 \relax}% + {gnats issue #1/#2}% + )}% + \par} + +\let\cls\pkg +\providecommand\env[1]{\texttt{#1}} +\providecommand\acro[1]{\textsc{#1}} + +\vbadness=1400 % accept slightly empty columns + + +\makeatletter +% maybe not the greatest design but normally we wouldn't have subsubsections +\renewcommand{\subsubsection}{% + \@startsection {subsubsection}{2}{0pt}{1.5ex \@plus 1ex \@minus .2ex}% + {-1em}{\@subheadingfont\colonize}% +} +\providecommand\colonize[1]{#1:} +\makeatother + +\let\finalvspace\vspace % for document layout fixes + +% Undo ltnews's \verbatim@font with active < and > +\makeatletter +\def\verbatim@font{% + \normalsize\ttfamily} +\makeatletter + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\providecommand\tubcommand[1]{} +\tubcommand{\input{tubltmac}} + +\publicationmonth{June} +\publicationyear{2023 --- DRAFT version for upcoming release} + +\publicationissue{37} + +\begin{document} + +\tubcommand{\addtolength\textheight{4.2pc}} % only for TUB + +\maketitle +{\hyphenpenalty=10000 \exhyphenpenalty=10000 \spaceskip=3.33pt \hbadness=10000 +\tableofcontents} + +\setlength\rightskip{0pt plus 3em} + + +\medskip + + +\section{Introduction} + + +\section{New or improved commands} + + + +\subsection{Providing copy and show functions for environments} + +To copy a command definition we have introduced \cs{NewCommandCopy} in +2022. This even allows you to copy commands that consist of several internal +components, such as robust commands or those with a complex signature. +To do the same with environments, e.g., to define the environment +\env{myitemize} to be equivalent to \env{itemize}, you can now write +\begin{verbatim} + \NewEnvironmentCopy{myitemize}{itemize} +\end{verbatim} +There are also \cs{Renew...}\ and \cs{Declare...}, which may be useful +depending on the circumstances. + +In addition, we offer a \cs{ShowEnvironment} command, which displays the +\cs{begin} and \cs{end} code of the environment passed as an +argument. E.g., \verb=\ShowEnvironment{center}= results in the +following output: +\begin{verbatim} + > \begin{center}=environment: + > ->\trivlist \centering \item \relax . + } + l. ...\ShowEnvironment{center} + > \end{center}: + > ->\endtrivlist . + } + l. ...\ShowEnvironment{center} +\end{verbatim} +% +\githubissue{963} + + + + +\section{Code improvements} + +\subsection{\pkg{doc}: Index \texttt{\textbackslash\textvisiblespace} correctly} + +\emph{to write} +% +\githubissue{943} + + +\subsection{\pkg{doc}: Support the \pkg{upquote} package} + +The default quote and backquote characters in typewriter fonts are +typographical quotes, e.g., the input +\begin{verbatim} + \verb*/`prog 'my input'`/ +\end{verbatim} + is rendered as \verb*/`prog 'my input'`/ and not as +% +\begingroup % code to mimic upquote.sty +\catcode`'=\active +\catcode``=\active +\makeatletter +\g@addto@macro\@noligs + {\let'\textquotesingle + \let`\textasciigrave + \ifx\encodingdefault\upquote@OTone + \ifx\ttdefault\upquote@cmtt + \def'{\char13 }% + \def`{\char18 }% + \fi\fi} +\endgroup +% +\verb*/`prog 'my input'`/ as preferred by many programmers. + +This can be adjusted, for example, with the \pkg{upquote} package, +which results in the second output. However, for historical reasons +\pkg{doc} had its own definition of \cs{verb} and \env{verbatim} and +as a consequence the two packages did not cooperate. This has now +been fixed and loading \pkg{upquote} together with \pkg{doc} has the +desired effect. +% +\githubissue{953} + + +\subsection{New key for \env{filecontents}} + +The \env{filecontents} environment warns on the terminal if a file +gets overwritten even if that is intentional, +e.g., when you write a temporary file over and over again. To make +the warning less noisy in this case we added a new \texttt{nowarn} key +that redirects the overwriting warning to the transcript file. We +think that some record of the action is still required to help with +debugging, thus it is not completely silenced. The warning that +nothing gets written, because the file aready exists (and the +\texttt{force} key was not used), is not altered and still shows up on +the terminal. +% +\githubissue{958} + + + +\subsection{A further hook for shipping out pages} + +Since October 2020 the shipout process offers a number of hooks to +adjust what is happening before, during, and after the +\cs{shipout}. For example, with the \hook{shipout/before} hook, packages +can reset code they have altered (e.g., \cs{catcode}s during +verbatim-like processing) and with \hook{shipout/background} and +\hook{shipout/foreground} material can be added to the pages. +Details are given in \cite{37:ltshipout-doc}. However, what was +missing was a hook that allows a package writer to manipulate the +completed page (with foreground and background attached) just before +the actual shipout happens. + +For this we now provide the additional hook \hook{shipout}. One +use case (sometimes needed in print production) is to mirror the +whole page via \cs{reflectbox} including all the extra data that may +have been added into the fore- or background. +% +\githubissue{920} + + + +\subsection{Displaying release information in the \texttt{.log}} + +\LaTeX{} displays its release information at the very beginning of the +\LaTeX{} run on the terminal and also writes it to the transcript file +if that is already opened at this point. While this is normally true, +it is not the case if the \LaTeX{} run was started passing additional +\TeX{} code on the command line, e.g., +\begin{verbatim} +pdflatex '\PassOptionsToClass{11pt}{article} + \input{myarticle}' +\end{verbatim} +In this case the release information is displayed when +\cs{PassOptionsToClass} is processed but the transcript file is only +opened when the output file name is known, i.e., after \cs{input} has +been seen, and as a result the release information is only shown on +the terminal. + +To account for this scenario, we now repeat the release information +also at the very end of the transcript file where we can be sure that +it is open and ready to receive material. +% +\githubissue{944} + + + + + +\section{Bug fixes} + +\subsection{Incompatibility between \pkg{doc} and \pkg{unicode-math}} + +The \pkg{unicode-math} package alters the catcode of \verb=|= but does +not adjust its value for use in \pkg{doc}, with the result that +\enquote{or} module, i.e., $\langle A | B \rangle$ are displayed in a +strange way. This is now fixed with some firstaid code that will +eventually be moved into \pkg{unicode-math}. +% +\githubissue{820} + + +\subsection{A fix for \cs{hspace}} + +The change to \cs{hspace}, done in 2020 to make it \pkg{calc} aware, +had the unfortunate side effect that starting a paragraph with +\cs{hspace} would result in the execution of \cs{everypar} inside a +group (i.e., any local changes would immediately be revoked, breaking, +for example, \pkg{wrapfig} in that special situation). +% +This got fixed with the 2022-11 PL1 hotfix, so was already corrected in +the previous release, but only now documented in a newletter. +% +\githubissue{967} + + + +\section{Changes to packages in the \pkg{amsmath} category} + +\section{Changes to packages in the \pkg{graphics} category} + +\section{Changes to packages in the \pkg{tools} category} + + +%\medskip + +\begin{thebibliography}{9} + +\fontsize{9.3}{11.3}\selectfont + +\bibitem{37:ltshipout-doc} Frank Mittelbach, \LaTeX{}~Project~Team: + \emph{The \texttt{\upshape ltshipout} documentation}.\\ + Run \texttt{texdoc} \texttt{ltshipout-doc} to view. + +%\bibitem{37:blueprint} Frank Mittelbach and Chris Rowley: +% \emph{\LaTeX{} Tagged PDF \Dash A blueprint for a large project}.\\ +% \url{https://latex-project.org/publications/indexbyyear/2020/} + +%\bibitem{37:source2e} +% \emph{\LaTeX{} documentation on the \LaTeX{} Project Website}.\\ +% \url{https://latex-project.org/help/documentation/} + +%\bibitem{37:Lamport} +%Leslie Lamport. +%\newblock {\LaTeX}: {A} Document Preparation System: User's Guide and Reference +% Manual. +%\newblock \mbox{Addison}-Wesley, Reading, MA, USA, 2nd edition, 1994. +%\newblock ISBN 0-201-52983-1. +%\newblock Reprinted with corrections in 1996. +% +%\bibitem{37:ltnews32} \LaTeX{} Project Team: +% \emph{\LaTeXe{} news 32}.\\ +% \url{https://latex-project.org/news/latex2e-news/ltnews32.pdf} +% +%\bibitem{37:ltnews34} \LaTeX{} Project Team: +% \emph{\LaTeXe{} news 34}.\\ +% \url{https://latex-project.org/news/latex2e-news/ltnews34.pdf} +% +%\bibitem{37:ltnews35} \LaTeX{} Project Team: +% \emph{\LaTeXe{} news 35}.\\ +% \url{https://latex-project.org/news/latex2e-news/ltnews35.pdf} +% +%\bibitem{37:fntguide} \LaTeX{} Project Team: +% \emph{\LaTeXe{} font selection}.\\ +% \url{https://latex-project.org/help/documentation/} +% +%\bibitem{37:ltfilehook-doc} Frank Mittelbach, Phelype Oleinik, \LaTeX{}~Project~Team: +% \emph{The \texttt{\upshape ltfilehook} documentation}.\\ +% Run \texttt{texdoc} \texttt{ltfilehook-doc} to view. +\end{thebibliography} + + + +\end{document} diff --git a/macros/latex-dev/base/ltpara-code.pdf b/macros/latex-dev/base/ltpara-code.pdf index 0fbaccad7a..0537eb4ec9 100644 Binary files a/macros/latex-dev/base/ltpara-code.pdf and b/macros/latex-dev/base/ltpara-code.pdf differ diff --git a/macros/latex-dev/base/ltpara-doc.pdf b/macros/latex-dev/base/ltpara-doc.pdf index 847135c79c..bbd4a35c70 100644 Binary files a/macros/latex-dev/base/ltpara-doc.pdf and b/macros/latex-dev/base/ltpara-doc.pdf differ diff --git a/macros/latex-dev/base/ltshipout-code.pdf b/macros/latex-dev/base/ltshipout-code.pdf index b05e3da93d..5c4df6d628 100644 Binary files a/macros/latex-dev/base/ltshipout-code.pdf and b/macros/latex-dev/base/ltshipout-code.pdf differ diff --git a/macros/latex-dev/base/ltshipout-doc.pdf b/macros/latex-dev/base/ltshipout-doc.pdf index 61d3c87b9f..6d28fe7faf 100644 Binary files a/macros/latex-dev/base/ltshipout-doc.pdf and b/macros/latex-dev/base/ltshipout-doc.pdf differ diff --git a/macros/latex-dev/base/ltshipout.dtx b/macros/latex-dev/base/ltshipout.dtx index ae29c1acad..7aa07f754b 100644 --- a/macros/latex-dev/base/ltshipout.dtx +++ b/macros/latex-dev/base/ltshipout.dtx @@ -32,8 +32,8 @@ %%% From File: ltshipout.dtx % % \begin{macrocode} -\providecommand\ltshipoutversion{v1.0m} -\providecommand\ltshipoutdate{2022/08/26} +\providecommand\ltshipoutversion{v1.0n} +\providecommand\ltshipoutdate{2022/11/08} % \end{macrocode} % %<*driver> @@ -75,7 +75,7 @@ % \providecommand\pkg[1]{\texttt{#1}} % % -% \title{The \texttt{ltshipout} package\thanks{This package has version +% \title{The \texttt{ltshipout} documentation\thanks{This file has version % \ltshipoutversion\ dated \ltshipoutdate, \copyright\ \LaTeX\ % Project.}} % @@ -241,6 +241,18 @@ % But being placed after the main box content it will be typeset % later and thus overprints it (i.e., is in the foreground). % +% \item[\hook{shipout}] +% This hook is executed after foreground and/or background +% material has been added, i.e., just in front of the actual +% shipout operation. Its purpose is to allow manipulation of the +% finalized box (stored in \cs{ShipoutBox}) with the extra +% material also in place (which is not yet the case in +% \hook{shipout/before}). +% +% It cannot be used to cancel the shipout operation via +% \cs{DiscardShipoutBox} (that has +% to happen in \hook{shipout/before}, if desired! +% % % \item[\hook{shipout/firstpage}] % @@ -296,7 +308,7 @@ % actual shipout. It is even run if there was a % \cs{DiscardShipoutBox} request in the document. % -% The other hooks (except \hook{shipout/after}) are added inside +% The other hooks (except \hook{shipout} and \hook{shipout/after}) are added inside % hboxes to the box being shipped out in the following order: % \begin{center} % \begin{tabular}{ll} @@ -307,9 +319,13 @@ % \hook{shipout/lastpage} & only on the last page \\ % \end{tabular} % \end{center} -% If any of the hooks has no code then that particular no box is +% If any of the hooks has no code then the corresponding box is % added at that point. % +% Once the (page) box has got the above extra content it can +% again be manipulated using the \hook{shipout} hook and then +% is shipped out for real. +% % Once the (page) box has been shipped out the \hook{shipout/after} % hook is called (while you are still inside the output routine). It % is not called if the shipout box was discarded. @@ -381,13 +397,16 @@ % % \fmi{Once we have a new mark mechanism available we can improve % on that and make sure that the declaration applies to the page -% that contains it.} +% that contains it --- not done (yet)} +% +% \cs{DiscardShipoutBox} cannot be used in any of the \hook{shipout/...} +% hooks other than \hook{shipout/before}. % \end{function} % % In the \pkg{atbegshi} package there are a number of additional % commands for use inside the \hook{shipout/before} hook. They % should normally not be needed any more as one can instead simply -% add code to the hooks \hook{shipout/before}, +% add code to the hooks \hook{shipout/before}, \hook{shipout}, % \hook{shipout/background} or % \hook{shipout/foreground}.\footnote{If that assumption turns out to % be wrong it would be trivial to change them to public functions @@ -401,7 +420,9 @@ % % \begin{variable}{pre_shipout_filter} % Under Lua\TeX{} the \texttt{pre\_shipout\_filter} Lua callback is -% provided which gets called immediately before the shipout primitive gets invoked. +% provided which gets called directly after the +% \hook{shipout} hook, immediately before the shipout +% primitive gets invoked. % The signature is % \begin{verbatim} % function( head) @@ -1014,15 +1035,20 @@ \_@@_add_foreground_box:n { \UseHook{shipout/lastpage} \@kernel@after@shipout@lastpage } - \bool_gset_true:N \g_@@_lastpage_handled_bool % \end{macrocode} % We record that we have handled the \hook{shipout/lastpage} hook % but only if we really did. % \changes{v1.0m}{2022/05/08}{Handle case where shipout/lastpage is % run too early (gh/813)} % \begin{macrocode} + \bool_gset_true:N \g_@@_lastpage_handled_bool } } +% \end{macrocode} +% +% \changes{v1.0n}{2022/11/08}{Add shipout hook (gh/920)} +% \begin{macrocode} + \hook_use:n {shipout} \@@_finalize_box: % \end{macrocode} % Finally we run the actual \TeX{} primitive for shipout. As that will @@ -1116,13 +1142,14 @@ % \end{macrocode} % \end{macro} % -% \begin{macro}{shipout/before,shipout/after, +% \begin{macro}{shipout/before,shipout,shipout/after, % shipout/foreground,shipout/background, -% shipout/firstpage, -% shipout/lastpage} +% shipout/firstpage,shipout/lastpage} % Declaring all hooks for the shipout code. +% \changes{v1.0n}{2022/11/08}{Add shipout hook (gh/920)} % \begin{macrocode} \hook_new:n{shipout/before} +\hook_new:n{shipout} \hook_new:n{shipout/after} \hook_new:n{shipout/foreground} \hook_new:n{shipout/background} diff --git a/macros/latex-dev/base/ltspace.dtx b/macros/latex-dev/base/ltspace.dtx index feb82730ec..30bda278fb 100644 --- a/macros/latex-dev/base/ltspace.dtx +++ b/macros/latex-dev/base/ltspace.dtx @@ -32,7 +32,7 @@ %<*driver> % \fi \ProvidesFile{ltspace.dtx} - [2020/05/06 v1.3n LaTeX Kernel (spacing)] + [2022/11/28 v1.3o LaTeX Kernel (spacing)] % \iffalse \documentclass{ltxdoc} \GetFileInfo{ltspace.dtx} @@ -438,12 +438,13 @@ % \cs{setlength}. This way the \texttt{calc} package can operate on % the argument value. % \changes{v1.3m}{2020/04/21}{Support calc syntax (gh/152)} +% \changes{v1.3o}{2022/11/28}{Support calc syntax without a group (gh/967)} % \begin{macrocode} % %<*2ekernel|latexrelease> %\IncludeInRelease{2020/10/01}% % {\@vspace@calcify}{Add calc support}% -\def\@vspace@calcify#1{\begingroup\setlength\skip@{#1}\vskip\skip@\endgroup} +\def\@vspace@calcify#1{\setlength\sp@ce@skip{#1}\vskip\sp@ce@skip} % %\EndIncludeInRelease % \end{macrocode} @@ -1261,12 +1262,21 @@ % {(RmS) Removed superfluous \cs{leavevmode} in \cs{@hspace} and % \cs{@hspacer}, as suggested by CAR.} % \changes{v1.3m}{2020/04/21}{Support calc syntax (gh/152)} +% \changes{v1.3o}{2022/11/28}{Support calc syntax correctly (gh/967)} % \begin{macrocode} % %<*2ekernel|latexrelease> %\IncludeInRelease{2020/10/01}% % {\@hspace}{Support calc with \hspace}% -\def\@hspace#1{\begingroup\setlength\skip@{#1}\hskip\skip@\endgroup} +% \end{macrocode} +% We use a private register to calculate the space (if \pkg{calc} is used). Previously +% we used a group but that results in +% \cs{everypar} etc.\ being executed inside the group if the \cs{hspace} starts a paragraph. +% This is a bug fix so +% we do not provide rollback to the incorrect intermediate version. +% \begin{macrocode} +\newskip\sp@ce@skip +\def\@hspace#1{\setlength\sp@ce@skip{#1}\hskip\sp@ce@skip} % %\EndIncludeInRelease % \end{macrocode} diff --git a/macros/latex-dev/base/ltvers.dtx b/macros/latex-dev/base/ltvers.dtx index a170ce98e1..eae29f0f01 100644 --- a/macros/latex-dev/base/ltvers.dtx +++ b/macros/latex-dev/base/ltvers.dtx @@ -33,7 +33,7 @@ %<*driver> % \fi \ProvidesFile{ltvers.dtx} - [2022/02/28 v1.1i LaTeX Kernel (Version Info)] + [2022/11/06 v1.1j LaTeX Kernel (Version Info)] % \iffalse \documentclass{ltxdoc} \GetFileInfo{ltvers.dtx} @@ -112,10 +112,10 @@ % %\edef\latexreleaseversion %<*2ekernel|latexrelease> - {2023-05-01} + {2023-06-01} % %<*2ekernel> -\def\patch@level{-0} +\def\patch@level{-1} % \end{macrocode} % % \begin{macro}{\development@branch@name} @@ -178,20 +178,33 @@ % by a loader (\texttt{.ini} file)} % \changes{v1.0v}{2015/08/23}{Allow negative patchlevel for pre-release} % \changes{v1.1e}{2020/01/31}{Allow for upcoming format as pre-release 0} +% \changes{v1.1j}{2022/11/06}{Repeat release info at the end (gh/944)} +% +% We store release info in the toks \cs{LaTeXReleaseInfo} to be +% used in \cs{everyjob} but also when \verb=\end{document}= is +% executed. +% Instead of using \cs{typeout} we use \cs{show@release@info} so +% that we can write to the log only by changing that to \cs{wlog}. +% \begin{macrocode} +\newtoks\LaTeXReleaseInfo +\everyjob\expandafter{\the\everyjob\the\LaTeXReleaseInfo} +\let\show@release@info\typeout +% \end{macrocode} +% % \begin{macrocode} \ifnum0\ifnum\patch@level=0 \ifx\development@branch@name\@empty 1\fi\fi>0 % - \everyjob\expandafter{\the\everyjob - \typeout{\fmtname\space <\fmtversion>}} + \LaTeXReleaseInfo\expandafter{\the\LaTeXReleaseInfo + \show@release@info{\fmtname\space <\fmtversion>}} \immediate \write16{\fmtname \space<\fmtversion>} \else\ifnum\patch@level>0 - \everyjob\expandafter{\the\everyjob - \typeout{\fmtname\space <\fmtversion> patch level \patch@level}} + \LaTeXReleaseInfo\expandafter{\the\LaTeXReleaseInfo + \show@release@info{\fmtname\space <\fmtversion> patch level \patch@level}} \immediate \write16{\fmtname\space <\fmtversion> patch level \patch@level} \else - \everyjob\expandafter{\the\everyjob - \typeout{\fmtname\space <\fmtversion> + \LaTeXReleaseInfo\expandafter{\the\LaTeXReleaseInfo + \show@release@info{\fmtname\space <\fmtversion> pre-release-\number-\patch@level\space \ifx\development@branch@name\@undefined \else \ifx\development@branch@name\@empty \else diff --git a/macros/latex-dev/base/ltx3info.pdf b/macros/latex-dev/base/ltx3info.pdf index fd0ac95b4c..122feaff59 100644 Binary files a/macros/latex-dev/base/ltx3info.pdf and b/macros/latex-dev/base/ltx3info.pdf differ diff --git a/macros/latex-dev/base/ltxdoc.dtx b/macros/latex-dev/base/ltxdoc.dtx index 46c324c590..6863349be3 100644 --- a/macros/latex-dev/base/ltxdoc.dtx +++ b/macros/latex-dev/base/ltxdoc.dtx @@ -30,7 +30,7 @@ % %\NeedsTeXFormat{LaTeX2e} %\ProvidesClass{ltxdoc} -% [2022/06/22 v2.1h Standard LaTeX documentation class] +% [2022/06/22 v2.1i Standard LaTeX documentation class] % %<*driver> \documentclass{ltxdoc} @@ -633,12 +633,15 @@ Bug reports can be opened (category \texttt{#1}) at\\% % % \changes{v2.1f}{2022/06/03}{define \cs{pkg} and other commands} % \changes{v2.1f}{2022/06/03}{allow \_ in macro names} -% Some feaures from l3doc.cls +% Some features from l3doc.cls % \changes{v2.1g}{2022/06/14}{define \cs{pkg} but delay until begin document} +% \changes{v2.1i}{2022/11/28}{Revert 2.1f and not use \cs{detokenize} for now (gh/962)} +% Eventually, \cs{cs} should get the definition from \pkg{l3doc} but for now we +% revert to the simple one from \pkg{doc}. % \begin{macrocode} -\DeclareRobustCommand\cs[1]{\texttt{\bslash\detokenize{#1}}}% +%\DeclareRobustCommand\cs[1]{\texttt{\bslash #1}}% -- def in doc.sty \AtBeginDocument{% - \renewcommand\PrintMacroName[1]{\MacroFont\detokenize{#1}}% +% \renewcommand\PrintMacroName[1]{\MacroFont\string #1\ }% -- def in doc.sty % \end{macrocode} % We provide those delated in case somebody has loaded \texttt{csquotes} % or makes some definitions in the preamble. diff --git a/macros/latex-dev/base/ltxdoc.pdf b/macros/latex-dev/base/ltxdoc.pdf index aff4835ebb..0e75ce008e 100644 Binary files a/macros/latex-dev/base/ltxdoc.pdf and b/macros/latex-dev/base/ltxdoc.pdf differ diff --git a/macros/latex-dev/base/makeindx.pdf b/macros/latex-dev/base/makeindx.pdf index 07c7f3aa06..8ebcab2ea6 100644 Binary files a/macros/latex-dev/base/makeindx.pdf and b/macros/latex-dev/base/makeindx.pdf differ diff --git a/macros/latex-dev/base/modguide.pdf b/macros/latex-dev/base/modguide.pdf index f818b299ac..0778d8eb49 100644 Binary files a/macros/latex-dev/base/modguide.pdf and b/macros/latex-dev/base/modguide.pdf differ diff --git a/macros/latex-dev/base/nfssfont.pdf b/macros/latex-dev/base/nfssfont.pdf index fd2dcfb5cc..601fa1592e 100644 Binary files a/macros/latex-dev/base/nfssfont.pdf and b/macros/latex-dev/base/nfssfont.pdf differ diff --git a/macros/latex-dev/base/proc.pdf b/macros/latex-dev/base/proc.pdf index 2005fa583b..97cc3e82c8 100644 Binary files a/macros/latex-dev/base/proc.pdf and b/macros/latex-dev/base/proc.pdf differ diff --git a/macros/latex-dev/base/slides.pdf b/macros/latex-dev/base/slides.pdf index 002f38d707..c18411078c 100644 Binary files a/macros/latex-dev/base/slides.pdf and b/macros/latex-dev/base/slides.pdf differ diff --git a/macros/latex-dev/base/slifonts.pdf b/macros/latex-dev/base/slifonts.pdf index b73bb5a036..8115e6ae86 100644 Binary files a/macros/latex-dev/base/slifonts.pdf and b/macros/latex-dev/base/slifonts.pdf differ diff --git a/macros/latex-dev/base/source2e.pdf b/macros/latex-dev/base/source2e.pdf index 42f74b42cd..d956472b5d 100644 Binary files a/macros/latex-dev/base/source2e.pdf and b/macros/latex-dev/base/source2e.pdf differ diff --git a/macros/latex-dev/base/syntonly.pdf b/macros/latex-dev/base/syntonly.pdf index fd876bf802..ef69d1da2e 100644 Binary files a/macros/latex-dev/base/syntonly.pdf and b/macros/latex-dev/base/syntonly.pdf differ diff --git a/macros/latex-dev/base/tlc2.pdf b/macros/latex-dev/base/tlc2.pdf index 2d3d123d1f..067c94c0c6 100644 Binary files a/macros/latex-dev/base/tlc2.pdf and b/macros/latex-dev/base/tlc2.pdf differ diff --git a/macros/latex-dev/base/tulm.pdf b/macros/latex-dev/base/tulm.pdf index d57694c1d0..57ead84747 100644 Binary files a/macros/latex-dev/base/tulm.pdf and b/macros/latex-dev/base/tulm.pdf differ diff --git a/macros/latex-dev/base/usrguide-historic.pdf b/macros/latex-dev/base/usrguide-historic.pdf index 325eac0a87..a390a49de9 100644 Binary files a/macros/latex-dev/base/usrguide-historic.pdf and b/macros/latex-dev/base/usrguide-historic.pdf differ diff --git a/macros/latex-dev/base/usrguide.pdf b/macros/latex-dev/base/usrguide.pdf index 52c0370645..263df7df63 100644 Binary files a/macros/latex-dev/base/usrguide.pdf and b/macros/latex-dev/base/usrguide.pdf differ diff --git a/macros/latex-dev/base/usrguide.tex b/macros/latex-dev/base/usrguide.tex index 32e12a1397..7234ac821c 100644 --- a/macros/latex-dev/base/usrguide.tex +++ b/macros/latex-dev/base/usrguide.tex @@ -865,7 +865,7 @@ specification then an error is issued. -\section{Copying and showing (robust) commands} +\section{Copying and showing (robust) commands and environments} If you want to (slightly) alter an existing command you may want to save the current definition under a new name and then use that in a @@ -911,9 +911,6 @@ token but need \enquote{constructing}, you can use \cs{ExpandArgs} as explained in Section~\ref{sec:preconstructing-csnames}. - - - \begin{decl} |\ShowCommand| \arg{cmd} \end{decl} @@ -926,6 +923,26 @@ also the actual payload code and in case of commands declared with \cs{NewDocumentCommand}, etc.\ it also gives you detailed information about the argument signature. +\begin{decl} + |\NewEnvironmentCopy| \arg{env} \arg{existing-env} \\ + |\RenewEnvironmentCopy| \arg{env} \arg{existing-env} \\ + |\DeclareEnvironmentCopy| \arg{env} \arg{existing-env} +\end{decl} + +This copies the definition for environment \meta{existing-env} to +\meta{env} (both the beginning and end code), i.e., it is simply +applying \cs{NewCommandCopy} twice to the internal commands that +define an environment, i.e., \cs{}\meta{env} and \cs{end}\meta{env}. +The differences between \cs{New...}, \cs{Renew...}, and +\cs{Declare...} are the usual ones. + +\begin{decl} + |\ShowEnvironment| \arg{env} +\end{decl} +This displays the meaning of the begin end end code for environment \meta{env}. + + + \section[Preconstructing command names \\ (or otherwise expanding arguments)] {Preconstructing command names (or otherwise expanding arguments)} diff --git a/macros/latex-dev/base/utf8ienc.pdf b/macros/latex-dev/base/utf8ienc.pdf index 5bbc4da5f0..4459986064 100644 Binary files a/macros/latex-dev/base/utf8ienc.pdf and b/macros/latex-dev/base/utf8ienc.pdf differ diff --git a/macros/latex-dev/base/webcomp.pdf b/macros/latex-dev/base/webcomp.pdf index 45d2350e67..1bf17cd5bd 100644 Binary files a/macros/latex-dev/base/webcomp.pdf and b/macros/latex-dev/base/webcomp.pdf differ diff --git a/macros/latex-dev/required/firstaid/changes.txt b/macros/latex-dev/required/firstaid/changes.txt index 3c6cb992c8..31e2439734 100644 --- a/macros/latex-dev/required/firstaid/changes.txt +++ b/macros/latex-dev/required/firstaid/changes.txt @@ -1,3 +1,13 @@ +2022-11-28 Ulrike Fischer + + * latex2e-first-aid-for-external-files.dtx (subsection{the songs package first aid}): + A first aid for songs after a change to \obeylines + +2022-11-04 Frank Mittelbach + + * latex2e-first-aid-for-external-files.dtx (subsection{The unicode-math package first aid}): + A first aid for unicode-math used together with the doc package. + 2022-10-27 Joseph Wright * latex2e-first-aid-for-external-files.dtx: diff --git a/macros/latex-dev/required/firstaid/latex2e-first-aid-for-external-files.dtx b/macros/latex-dev/required/firstaid/latex2e-first-aid-for-external-files.dtx index 9bc4969b2c..0d9ce67bca 100644 --- a/macros/latex-dev/required/firstaid/latex2e-first-aid-for-external-files.dtx +++ b/macros/latex-dev/required/firstaid/latex2e-first-aid-for-external-files.dtx @@ -111,8 +111,8 @@ % \end{macrocode} % % \begin{macrocode} -\def\LaTeXFirstAidDate{2022/10/29} -\def\LaTeXFirstAidVersion{v1.0u} +\def\LaTeXFirstAidDate{2022/11/28} +\def\LaTeXFirstAidVersion{v1.0w} % \end{macrocode} % % \begin{macrocode} @@ -353,6 +353,20 @@ % \end{macrocode} % % +% \subsection{The \pkg{unicode-math} package first aid} +% +% If \pkg{unicode-math} is used together with \pkg{doc} there is a +% problem because it changes the mathcodes without adjusting the +% use in \pkg{doc} that assume standard settings. Could be fixed on +% either side, but as \pkg{unicode-math} is derivating from the +% standard, the right place is probably a fix in this package. For +% now we do it here. See github/820. +% \begin{macrocode} +\AddToHook{package/unicode-math/after}{% + \AddToHook{cmd/mod@math@codes/after}{\mathcode`\|=28796 }} +% \end{macrocode} +% +% % % % \subsection{The \pkg{pgfpages} and \pkg{pgfmorepages} first aid} @@ -411,13 +425,27 @@ \AddToHook{file/babel.sty/before}[firstaid]{\def\BabelCaseHack{}} % \end{macrocode} % -% \begin{macrocode} -% -% \end{macrocode} -% % +% \subsection{The \pkg{songs} package first aid} % +% The songs package uses \cs{obeylines} and redefines \cs{par} for special effect. +% this no longer works in LaTeX 2022-06-01 (gh issue 367). The following +% fixes at least one failure. +% \begin{macrocode} +\AddToHook{file/songs.sty/after}[firstaid]{% + \FirstAidNeededT{songs}{sty}{2018/09/12 v3.1 Songs package}% + {% + \renewcommand\SB@obeylines{% + \let\obeyedline\SB@par% + \obeylines% + \let\@par\SB@@par% + }}% +} +% \end{macrocode} % +% \begin{macrocode} +% +% \end{macrocode} % % \subsection{The \pkg{everysel} package first aid} % diff --git a/macros/latex-dev/required/firstaid/latex2e-first-aid-for-external-files.pdf b/macros/latex-dev/required/firstaid/latex2e-first-aid-for-external-files.pdf index 9e850e5264..b525f8eea8 100644 Binary files a/macros/latex-dev/required/firstaid/latex2e-first-aid-for-external-files.pdf and b/macros/latex-dev/required/firstaid/latex2e-first-aid-for-external-files.pdf differ diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-publist/README b/macros/latex/contrib/biblatex-contrib/biblatex-publist/README index 0d42209e43..0704ccf202 100644 --- a/macros/latex/contrib/biblatex-contrib/biblatex-publist/README +++ b/macros/latex/contrib/biblatex-contrib/biblatex-publist/README @@ -46,6 +46,10 @@ instructions. == CHANGES == +* V. 2.1 (2022-12-03) + - Honor \mkbibname* (#41). + - Fix reverse numbering without refsections (#42). + * V. 2.0 (2022-10-24): - Provide \ExecutePublistOptions to change (most) biblatex-publist options on the fly. diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-publist/biblatex-publist.pdf b/macros/latex/contrib/biblatex-contrib/biblatex-publist/biblatex-publist.pdf index cd40d546e2..7f970ec9e8 100644 Binary files a/macros/latex/contrib/biblatex-contrib/biblatex-publist/biblatex-publist.pdf and b/macros/latex/contrib/biblatex-contrib/biblatex-publist/biblatex-publist.pdf differ diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-publist/biblatex-publist.tex b/macros/latex/contrib/biblatex-contrib/biblatex-publist/biblatex-publist.tex index f5e91bf716..59220efca2 100644 --- a/macros/latex/contrib/biblatex-contrib/biblatex-publist/biblatex-publist.tex +++ b/macros/latex/contrib/biblatex-contrib/biblatex-publist/biblatex-publist.tex @@ -113,7 +113,7 @@ \thanks{Please report issues via \protect\url{https://github.com/jspitz/biblatex-publist}.}% } -\date{Version 2.0, 2022/10/24} +\date{Version 2.1, 2022/12/03} \maketitle \begin{abstract} @@ -256,7 +256,7 @@ As opposed to the macro, however, the options do not provide for multiple author \item [{\joption{plauthorhandling{[}=omit|highlight{]}}}] default: \emph{omit}. -By default, the publist author (as defined with \jmacro{plauthor}) is omitted from +By default, the publist author (as defined with \jcsmacro{plauthorname}) is omitted from the author or editor list. If you use the option \joption{plauthorhandling=highlight}, it is highlighted instead (set in bold face by default; see sec.~\ref{sec:auxmacros} how to change that). @@ -284,7 +284,7 @@ on the left side in one-sided documents (via \jfcsmacro{reversemarginpar}). If this is \texttt{true}, the extradate marker (a, b etc.) is also appended to pubstates if there are multiple indentical pubstates; e.\,g., \emph{Forthcoming(a)}, \emph{Forthcoming(b)}. -\item [{\joption{plsorting{[}=sorting scheme{]}}}] default: \emph{ydt}. +\item [{\joption{plsorting=}}] default: \emph{ydt}. This option works like the \joption{sorting} option you know from \bibltx. It is provided since \bpl\ sets its own sorting schemes (differently depending on \joption{plauthorhandling}) and thus overrides any setting made @@ -910,6 +910,12 @@ refsection. \begin{description} + \item [{V. 2.1 (2022/12/03):}]~ + \begin{itemize} + \item Honor \jfcsmacro{mkbibname*}. + \item Fix reverse numbering without refsections. + \end{itemize} + \item [{V. 2.0 (2022/10/24):}]~ \begin{itemize} \item Provide \jcsmacro{ExecutePublistOptions} to change (most) \bpl\ options diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-publist/publist.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-publist/publist.bbx index ab5d84b08a..85e14d2693 100644 --- a/macros/latex/contrib/biblatex-contrib/biblatex-publist/publist.bbx +++ b/macros/latex/contrib/biblatex-contrib/biblatex-publist/publist.bbx @@ -25,8 +25,8 @@ % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\def\bpl@version{2.0} -\def\bpl@rdate{2022/10/24} +\def\bpl@version{2.1} +\def\bpl@rdate{2022/12/03} \ProvidesFile{publist.bbx}[\bpl@rdate\space v.\bpl@version\space biblatex bibliography style (JSP)] @@ -734,6 +734,7 @@ \newcounter{plnumgroup} \setcounter{plnumgroup}{0} \newbool{newsection} +\booltrue{newsection} \newbool{needbpxrerun} \newbool{plnumgroup} \def\resetplnumgroup{} @@ -766,7 +767,7 @@ \defbibenvironment{bibliography} {% \addtolength{\labelnumberwidth}{\extralabelnumberwidth}% - \setcounter{bplsecitems}{0}% + \ifbool{newsection}{\setcounter{bplsecitems}{0}}{}% \ifcsundef{bpl@savesecitems:\theplnumgroup}{% \csnumgdef{bpl@savesecitems:\theplnumgroup}{0}% }{}% @@ -1196,20 +1197,20 @@ \plauthorhl{% \if@givenfirst% given name first \ifgiveninits - {\ifdefvoid{\namepartgiveni}{}{\namepartgiveni\addspace}}% - {\ifdefvoid{\namepartgiven}{}{\namepartgiven\addspace}}% + {\ifdefvoid{\namepartgiveni}{}{\mkbibnamegiven{\namepartgiveni}\addspace}}% + {\ifdefvoid{\namepartgiven}{}{\mkbibnamegiven{\namepartgiven}\addspace}}% \ifdefvoid{\namepartprefix}% {}% - {\namepartprefix\addspace}% - \namepartfamily% + {\mkbibnameprefix{\namepartprefix}\addspace}% + \mkbibnamefamily{\namepartfamily}% \else% family name first \ifdefvoid{\namepartprefix}% {}% - {\namepartprefix\addspace}% - \namepartfamily% + {\mkbibnameprefix{\namepartprefix}\addspace}% + \mkbibnamefamily{\namepartfamily}% \ifgiveninits - {\ifdefvoid{\namepartgiveni}{}{\revsdnamepunct\addspace\namepartgiveni\addspace}}% - {\ifdefvoid{\namepartgiven}{}{\revsdnamepunct\addspace\namepartgiven\isdot\addspace}}% + {\ifdefvoid{\namepartgiveni}{}{\revsdnamepunct\addspace\mkbibnamegiven{\namepartgiveni}\addspace}}% + {\ifdefvoid{\namepartgiven}{}{\revsdnamepunct\addspace\mkbibnamegiven{\namepartgiven}\isdot\addspace}}% \fi }% \ifnumequal{\value{listcount}}{\value{liststop}}{}{\usebibmacro{bpl:name:andothers}}% @@ -1217,20 +1218,20 @@ \ifnumgreater{\value{listcount}}{\value{realliststop}}{}{% \if@givenfirst% given name first \ifgiveninits - {\ifdefvoid{\namepartgiveni}{}{\namepartgiveni\addspace}}% - {\ifdefvoid{\namepartgiven}{}{\namepartgiven\addspace}}% + {\ifdefvoid{\namepartgiveni}{}{\mkbibnamegiven{\namepartgiveni}\addspace}}% + {\ifdefvoid{\namepartgiven}{}{\mkbibnamegiven{\namepartgiven}\addspace}}% \ifdefvoid{\namepartprefix}% {}% - {\namepartprefix\addspace}% - \namepartfamily% + {\mkbibnameprefix{\namepartprefix}\addspace}% + \mkbibnamefamily{\namepartfamily}% \else% family name first \ifdefvoid{\namepartprefix}% {}% - {\namepartprefix\addspace}% - \namepartfamily% + {\mkbibnameprefix{\namepartprefix}\addspace}% + \mkbibnamefamily{\namepartfamily}% \ifgiveninits - {\ifdefvoid{\namepartgiveni}{}{\revsdnamepunct\addspace\namepartgiveni\addspace}}% - {\ifdefvoid{\namepartgiven}{}{\revsdnamepunct\addspace\namepartgiven\isdot\addspace}}% + {\ifdefvoid{\namepartgiveni}{}{\revsdnamepunct\addspace\mkbibnamegiven{\namepartgiveni}\addspace}}% + {\ifdefvoid{\namepartgiven}{}{\revsdnamepunct\addspace\mkbibnamegiven{\namepartgiven}\isdot\addspace}}% \fi }% \usebibmacro{bpl:name:andothers}% @@ -1270,9 +1271,9 @@ }% \ifnumgreater{\value{listcount}}{\value{realliststop}}{}{% \ifgiveninits - {\ifdefvoid{\namepartgiveni}{}{\namepartgiveni\addspace}}% - {\ifdefvoid{\namepartgiven}{}{\namepartgiven\addspace}}% - \ifdefvoid{\namepartprefix}{}{\namepartprefix\addspace}% + {\ifdefvoid{\namepartgiveni}{}{\mkbibnamegiven{\namepartgiveni}\addspace}}% + {\ifdefvoid{\namepartgiven}{}{\mkbibnamegiven{\namepartgiven}\addspace}}% + \ifdefvoid{\namepartprefix}{}{\mkbibnameprefix{\namepartprefix}\addspace}% \global\togglefalse{plauthorprecedes}% \namepartfamily% }% @@ -1296,16 +1297,16 @@ \DeclareNameFormat{bookauthor}{% \if@givenfirst% given name first \ifgiveninits - {\ifdefvoid{\namepartgiveni}{}{\namepartgiveni\addspace}}% - {\ifdefvoid{\namepartgiven}{}{\namepartgiven\addspace}}% - \ifdefvoid{\namepartprefix}{}{\namepartprefix\addspace}% - \namepartfamily% + {\ifdefvoid{\namepartgiveni}{}{\mkbibnamegiven{\namepartgiveni}\addspace}}% + {\ifdefvoid{\namepartgiven}{}{\mkbibnamegiven{\namepartgiven}\addspace}}% + \ifdefvoid{\namepartprefix}{}{\mkbibnameprefix{\namepartprefix}\addspace}% + \mkbibnamefamily{\namepartfamily}% \else% family name first - \ifdefvoid{\namepartprefix}{}{\namepartprefix\addspace}% - \namepartfamily% + \ifdefvoid{\namepartprefix}{}{\mkbibnameprefix{\namepartprefix}\addspace}% + \mkbibnamefamily{\namepartfamily}% \ifgiveninits - {\ifdefvoid{\namepartgiveni}{}{\revsdnamepunct\addspace\namepartgiveni\addspace}}% - {\ifdefvoid{\namepartgiven}{}{\revsdnamepunct\addspace\namepartgiven\isdot\addspace}}% + {\ifdefvoid{\namepartgiveni}{}{\revsdnamepunct\addspace\mkbibnamegiven{\namepartgiveni}\addspace}}% + {\ifdefvoid{\namepartgiven}{}{\revsdnamepunct\addspace\mkbibnamegiven{\namepartgiven}\isdot\addspace}}% \fi \ifthenelse{\value{listcount}<\value{liststop}} {\ifnumless{\value{listcount}}{\value{liststop}-1}% diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-publist/publist.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-publist/publist.cbx index 3aaaedacf7..0bb41b4d71 100644 --- a/macros/latex/contrib/biblatex-contrib/biblatex-publist/publist.cbx +++ b/macros/latex/contrib/biblatex-contrib/biblatex-publist/publist.cbx @@ -26,8 +26,8 @@ % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\def\bpl@version{2.0} -\def\bpl@rdate{2022/10/24} +\def\bpl@version{2.1} +\def\bpl@rdate{2022/12/03} \ProvidesFile{publist.cbx}[\bpl@rdate\space v.\bpl@version\space biblatex citation style (JSP)] diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-publist/publist.dbx b/macros/latex/contrib/biblatex-contrib/biblatex-publist/publist.dbx index afffa069cb..2cf23eaab8 100644 --- a/macros/latex/contrib/biblatex-contrib/biblatex-publist/publist.dbx +++ b/macros/latex/contrib/biblatex-contrib/biblatex-publist/publist.dbx @@ -1,5 +1,5 @@ % publist.dbx, biblatex data model specification for the biblatex-publist -% package, version 2.0 (2022/10/24). +% package, version 2.1 (2022/12/03). % % This work may be distributed and/or modified under the % conditions of the LaTeX Project Public License, either version 1.3 diff --git a/macros/latex/contrib/ppt-slides/DEPENDS.txt b/macros/latex/contrib/ppt-slides/DEPENDS.txt index db184dd263..74961c7a1d 100644 --- a/macros/latex/contrib/ppt-slides/DEPENDS.txt +++ b/macros/latex/contrib/ppt-slides/DEPENDS.txt @@ -1,13 +1,20 @@ hard pgfopts hard xcolor -hard ifthen hard href-ul hard pagecolor hard varwidth hard qrcode -hard tikz +hard pgf hard tikzpagenodes hard enumitem hard crumbs -hard tabularx hard seqsplit +hard hardwrap +hard ifoddpage +hard textpos +hard anyfontsize +hard fontsize +hard changepage +hard soul +hard lastpage +hard titling \ No newline at end of file diff --git a/macros/latex/contrib/ppt-slides/LICENSE.txt b/macros/latex/contrib/ppt-slides/LICENSE.txt new file mode 100644 index 0000000000..463e7d252d --- /dev/null +++ b/macros/latex/contrib/ppt-slides/LICENSE.txt @@ -0,0 +1,21 @@ +(The MIT License) + +Copyright (c) 2022 Yegor Bugayenko + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the 'Software'), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/macros/latex/contrib/ppt-slides/README.md b/macros/latex/contrib/ppt-slides/README.md index 9543ebc462..46758695fc 100644 --- a/macros/latex/contrib/ppt-slides/README.md +++ b/macros/latex/contrib/ppt-slides/README.md @@ -25,11 +25,10 @@ and then use in preamble: \end{document} ``` -The full example and all commands are available in -[`ppt-slides.tex`](https://github.com/yegor256/ppt-slides/blob/master/ppt-slides.tex) file. +Otherwise, you can download [`ppt-slides.sty`](https://raw.githubusercontent.com/yegor256/ppt-slides/gh-pages/ppt-slides/ppt-slides.sty) and add to your project. -If you want to contribute yourself, make a fork, create a branch, -then run `make` in root directory. +If you want to contribute yourself, make a fork, then create a branch, +then run `l3build ctan` in the root directory. It should compile everything without errors. If not, submit an issue and wait. -Otherwise, make your changes and then run `make` again. If the build is +Otherwise, make your changes and then run `l3build ctan` again. If the build is still clean, submit a pull request. diff --git a/macros/latex/contrib/ppt-slides/ppt-slides.dtx b/macros/latex/contrib/ppt-slides/ppt-slides.dtx new file mode 100644 index 0000000000..5f21146d16 --- /dev/null +++ b/macros/latex/contrib/ppt-slides/ppt-slides.dtx @@ -0,0 +1,662 @@ +% \iffalse meta-comment +% (The MIT License) +% +% Copyright (c) 2021-2022 Yegor Bugayenko +% +% Permission is hereby granted, free of charge, to any person obtaining a copy +% of this software and associated documentation files (the 'Software'), to deal +% in the Software without restriction, including without limitation the rights +% to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +% copies of the Software, and to permit persons to whom the Software is +% furnished to do so, subject to the following conditions: +% +% The above copyright notice and this permission notice shall be included in all +% copies or substantial portions of the Software. +% +% THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +% IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +% FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +% AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +% LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +% OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +% SOFTWARE. +% \fi + +% \CheckSum{0} +% +% \CharacterTable +% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +% Digits \0\1\2\3\4\5\6\7\8\9 +% Exclamation \! Double quote \" Hash (number) \# +% Dollar \$ Percent \% Ampersand \& +% Acute accent \' Left paren \( Right paren \) +% Asterisk \* Plus \+ Comma \, +% Minus \- Point \. Solidus \/ +% Colon \: Semicolon \; Less than \< +% Equals \= Greater than \> Question mark \? +% Commercial at \@ Left bracket \[ Backslash \\ +% Right bracket \] Circumflex \^ Underscore \_ +% Grave accent \` Left brace \{ Vertical bar \| +% Right brace \} Tilde \~} + +% \GetFileInfo{ppt-slies.dtx} +% \DoNotIndex{\endgroup,\begingroup,\let,\else,\s,\n,\r,\\,\1,\fi} + +% \iffalse +%<*driver> +\ProvidesFile{ppt-slides.dtx} +% +%\NeedsTeXFormat{LaTeX2e} +%\ProvidesPackage{ppt-slides} +%<*package> +[2022-12-03 0.2.0 Slide Decks a la Power Point] +% +%<*driver> +\documentclass{ltxdoc} +\usepackage[T1]{fontenc} +\usepackage[tt=false, type1=true]{libertine} +\usepackage{microtype} +\AddToHook{env/verbatim/begin}{\microtypesetup{protrusion=false}} +\usepackage{graphicx} +\usepackage{xcolor} +\usepackage[runs=2,dtx,margin=0,small]{docshots} +\usepackage{href-ul} +\PageIndex +\EnableCrossrefs +\CodelineIndex +\RecordChanges +\begin{document} + \DocInput{ppt-slides.dtx} + \PrintChanges + \PrintIndex +\end{document} +% +% \fi + +% \title{|ppt-slides|: \LaTeX{} Package for \\ Slide Decks \`{a} la Power Point\thanks{The sources are in GitHub at \href{https://github.com/yegor256/ppt-slides}{yegor256/ppt-slides}}} +% \author{Yegor Bugayenko \\ \texttt{yegor256@gmail.com}} +% \date{\filedate, \fileversion} +% +% \maketitle +% +% \section{Introduction} +% +% This package helps you render slide decks in PowerPoint\texttrademark{} style: +% \begin{docshot} +% \documentclass{article} +% \usepackage[template,scheme=dark]{ppt-slides} +% \begin{document} +% \pptMiddle{\pptTitle{Hello, world!}{How are you?}} +% \end{document} +% \end{docshot} + +% It is recommended to use this package together with +% \href{https://github.com/yegor256/clicks}{clicks}: +% \begin{docshot} +% \documentclass{article} +% \usepackage[template,scheme=dark]{ppt-slides} +% \usepackage[static]{clicks} +% \begin{document} +% We help you make slide decks in \LaTeX: +% \plick{\pptBanner{Making Slides Is Easy}} +% \plick{Just use this package...} +% \plush{together with 'clicks' package.} +% They will look similar to what PowerPoint can +% make, but with the precision of \LaTeX. We +% recommend using us together with ``clicks.'' +% \end{document} +% \end{docshot} + +% \section{Layout} + +% \DescribeMacro{\pptToc} +% \DescribeMacro{\pptChapter} +% First, split your story into chapters: +%\iffalse +%<*verb> +%\fi +\begin{verbatim} +\documentclass{article} +\usepackage{clicks} +\usepackage[template,scheme=light]{ppt-slides} +\begin{document} +\pptToc +\plush{\pptChapter{About Me}} +... +\plush{\pptChapter[Idea]{My Idea Is Novel}} +... +\plush{\pptChapter[FAQ]{Discussion \& Questions}} +... +\end{document} +\end{verbatim} +%\iffalse +% +%\fi +% |\pptToc| will render the table of contents in an interactive ``clickable'' format. +% Thanks to the use of \href{https://github.com/yegor256/crumbs}{crumbs}, there will +% be a navigation at the top left corner. + +% \DescribeMacro{\pptSection} +% Then, put sections inside chapters: +%\iffalse +%<*verb> +%\fi +\begin{verbatim} +\begin{document} +\pptToc +\plush{\pptChapter{About Me}} +\plush{\pptSection[Student]{I'm a Student}} +... +\plush{\pptSection[Athlete]{Also, I'm an Athlete}} +... +\plush{\pptChapter[Idea]{My Idea Is Novel}} +\plush{\pptSection{Novelty}} +\plush{\pptSection{Impact}} +\end{document} +\end{verbatim} +%\iffalse +% +%\fi +% The |\pptChapter| and |\pptSection| commands used together will render +% nice two-level nagivation menu at the top left corner. + +% \DescribeMacro{\pptLeft} +% \DescribeMacro{\pptRight} +% You can place the title of the presentation and your name at the bottom +% of each slide, on the left and on the right respectively: +%\iffalse +%<*verb> +%\fi +\begin{verbatim} +\documentclass{article} +\usepackage{clicks} +\usepackage[template,scheme=light]{ppt-slides} +\pptLeft{How Did I Spend Last Summer} +\pptRight{Yegor Bugayenko} +\begin{document} +... +\end{document} +\end{verbatim} +%\iffalse +% +%\fi +% If you don't use the |\pptLeft| or |\pptRight| commands, nothing will +% be printed at the bottom. + +% \section{Commands} + +% \DescribeMacro{\pptPic} +% You can add an image to the slide (the first argument is the width +% of the image in relation to |\textwidth|, +% while the second one is the path of it): +% \begin{docshot} +% \documentclass{article} +% \usepackage[template,scheme=dark]{ppt-slides} +% \begin{document} +% \pptPic{0.2}{socrates.jpg} \\ +% This is Socrates, a Greek philosopher. +% \end{document} +% \end{docshot} + +% \DescribeMacro{\pptHeader} +% You can add a piece of code to the slide (we recommend using \href{https://github.com/yegor256/ffcode}{ffcode}): +% \begin{docshot} +% \documentclass{article} +% \usepackage[template,scheme=dark]{ppt-slides} +% \usepackage{ffcode} +% \begin{document} +% \pptHeader{This is How You Print to Console:} +% \begin{ffcode} +% void main(char** args) { +% printf("Hello, world!"); +% } +% \end{ffcode} +% \end{document} +% \end{docshot} +% Don't use |\plick| or |\plush|, they won't work with code snippets. +% The |\pptHeader| command prints a header similar to what the |\pptSection| command prints, but +% doesn't start a new section. + +% \DescribeMacro{\pptQuote} +% \DescribeMacro{\pptBanner} +% You can put a quote next to the image, by using the |\pptQuote| command: +% \begin{docshot} +% \documentclass{article} +% \usepackage[template,scheme=dark]{ppt-slides} +% \begin{document} +% \pptBanner{My Favorite Quote} +% \pptQuote{socrates.jpg}{The only true wisdom +% is in knowing you know nothing}{Socrates} +% \end{document} +% \end{docshot} + +% \DescribeMacro{\pptThought} +% For an interesting thought in the middle of the slide, use |\pptThought|: +% \begin{docshot} +% \documentclass{article} +% \usepackage[template,scheme=dark]{ppt-slides} +% \begin{document} +% \pptThought{Socrates said that the only true +% wisdom is in knowing you know nothing. Was he +% a wise man?...} +% \end{document} +% \end{docshot} + +% \DescribeMacro{\pptQR} +% Sometimes it's convenient to show a QR code to your audience instead of +% a URL, since it's easier to use --- they can scan it: +% \begin{docshot} +% \documentclass{article} +% \usepackage[template,scheme=dark]{ppt-slides} +% \begin{document} +% Check my blog post by this link: \\ +% \pptQR{https://www.yegor256.com} +% \end{document} +% \end{docshot} +% The code will look like this, thanks to \href{https://ctan.org/pkg/qrcode}{qrcode} package that +% we use behind the scene. + +% \DescribeMacro{pptWide} +% \DescribeMacro{pptWideOne} +% Sometimes you need your slide content to take all visible horizontal space: +% \begin{docshot} +% \documentclass{article} +% \usepackage[template,scheme=dark]{ppt-slides} +% \begin{document} +% \begin{pptWideOne} +% This paragraph is too long for some reasons, +% that's why must take all visible horizontal +% space, while normally the content has a wide +% margin on the left side of the page. +% \end{pptWideOne} +% \end{document} +% \end{docshot} +% You can also use |\begin{pptWide}{X}|, +% where |X| is the number of columns to render. + +% \section{Package Options} + +% \DescribeMacro{template} +% You start with a template for your slide deck: +%\iffalse +%<*verb> +%\fi +\begin{verbatim} +\documentclass{article} +\usepackage[template=9x6]{ppt-slides} +\begin{document} +... +\end{document} +\end{verbatim} +%\iffalse +% +%\fi +% There is only one template, which is used by default: |9x6|. If you don't +% specify the name, it will be used. If you don't use the |template| option at all, +% the default |article| will be rendered, which is not what you want. + +% \DescribeMacro{scheme} +% You can choose a color scheme for your slides, using the |scheme| option +% of the package: +%\iffalse +%<*verb> +%\fi +\begin{verbatim} +\usepackage[template,scheme=light]{ppt-slides} +\end{verbatim} +%\iffalse +% +%\fi +% There are a few out-of-the-box schemes available: |light|, |dark|, +% |light-mono|, and |dark-mono|. You can design your own, using +% |ppt-light.tex| file as an example: +%\iffalse +%<*verb> +%\fi +\begin{verbatim} +\usepackage[template,scheme=/usr/local/my-colors.tex]{ppt-slides} +\end{verbatim} +%\iffalse +% +%\fi + +% \DescribeMacro{directory} +% You can change the location of the templates and schemes by means of the |directory| package option: +%\iffalse +%<*verb> +%\fi +\begin{verbatim} +\usepackage[directory=/tmp,template=foo]{ppt-slides} +\end{verbatim} +%\iffalse +% +%\fi + +% \DescribeMacro{nominutes} +% By default, if you render your slide deck in non-static mode (the |static| option for the ``clicks'' package), +% there will be minutes tracking in the right top corner of each slide. You can turn this off +% by using the |nominutes| option of the package: +%\iffalse +%<*verb> +%\fi +\begin{verbatim} +\usepackage[nominutes]{ppt-slides} +\end{verbatim} +%\iffalse +% +%\fi + +% \StopEventually{} + +% \section{Implementation} +% \changes{0.0.1}{2022/09/11}{First draft.} +% \changes{0.1.4}{2022/09/15}{The \texttt{nominutes} package option added.} +% \changes{0.1.5}{2022/09/19}{The default directory fixed.} +% \changes{0.2.0}{2022/12/03}{We migrated to the \texttt{ltxdoc} format and \texttt{.dtx} file.} + +% First, we parse the package options: +% \begin{macrocode} +\RequirePackage{pgfopts} +\makeatletter +\pgfkeys{ + /ppt-slides/.is family, + /ppt-slides, + template/.estore in = \ppt@template, + template/.default = 9x6, + scheme/.estore in = \ppt@scheme, + directory/.estore in = \ppt@directory, + directory/.default = , + nominutes/.estore in = \ppt@nominutes, + directory +} +\ProcessPgfPackageOptions{/ppt-slides} +\makeatother +% \end{macrocode} + +% Then, we include the template: +% \begin{macrocode} +\makeatletter\ifdefined\ppt@template + \input{\ppt@directory ppt-templates/ppt-\ppt@template.tex} +\else + \message{^^Jppt: No template is loaded, because + the 'template' option is not specified} +\fi\makeatother +% \end{macrocode} + +% Then, we include the scheme: +% \begin{macrocode} +\makeatletter\ifdefined\ppt@scheme + \RequirePackage{xcolor} + \input{\ppt@directory ppt-schemes/ppt-\ppt@scheme.tex} +\else + \message{^^Jppt: No color scheme is loaded, because + the 'scheme' option is not specified} +\fi\makeatother +% \end{macrocode} + +% Then, we include a few packages: +% \begin{macrocode} +\RequirePackage{ifthen} % for if/then/else in LaTeX +\RequirePackage{href-ul} % for nice hyperlinks +\RequirePackage{pagecolor} % to change page color +\RequirePackage{varwidth} % for pptWide +\RequirePackage{qrcode} % to print QR codes +\RequirePackage{tikz} % for drawings in TOC + \usetikzlibrary{calc} % for positioning of pinned boxes +\RequirePackage{tikzpagenodes} % for pptPin +\RequirePackage[inline]{enumitem} % for lists in crumbs +\RequirePackage{crumbs} % for crumbs +% \end{macrocode} + +% \begin{macro}{\pptMiddle} +% Then, we define the |\pptMiddle| command: +% \begin{macrocode} +\newcommand\pptMiddle[1]{% + \vspace*{\fill}#1\vspace*{\fill}% +} +% \end{macrocode} +% \end{macro} + +% \begin{macro}{\pptBanner} +% Then, we define the |\pptBanner| command: +% \begin{macrocode} +\newcommand\pptBanner[2][green]{% + \par% + {\setlength{\fboxsep}{6pt}% + \colorbox{#1}{\color{\thepagecolor}\large #2}} + \par% +} +% \end{macrocode} +% \end{macro} + +% \begin{macro}{\pptChapter} +% Then, we define the |\pptChapter| command: +% \begin{macrocode} +\newcommand\pptChapter[2][]{% + \crumbection[#1]{#2}% + \pptMiddle{% + {\large\ttfamily Chapter \#\the\value{section}:}% + \newline% + \rotatebox{1}{\pptBanner[blue]{\LARGE#2}}% + }% +} +% \end{macrocode} +% \end{macro} + +% \begin{macro}{\pptSection} +% Then, we define the |\pptSection| command: +% \begin{macrocode} +\newcommand\pptSection[2][]{% + \subcrumbection[#1]{#2}% + \pptHeader{#2}% +} +% \end{macrocode} +% \end{macro} + +% \begin{macro}{\pptHeader} +% Then, we define the |\pptHeader| command: +% \begin{macrocode} +\newcommand\pptHeader[1]{% + \vspace*{-0.75in}\hspace*{-0.5in}% + \rotatebox{1}{\pptBanner[orange]{\Large #1}}\vspace*{0.15in}% + \par% +} +% \end{macrocode} +% \end{macro} + +% \begin{macro}{\pptTitle} +% Then, we define the |\pptTitle| command: +% \begin{macrocode} +\newcommand\pptTitle[2]{% + {\pptBanner{\Huge #1}}% + {\pptBanner{\large #2}}% +} +% \end{macrocode} +% \end{macro} + +% \begin{macro}{\pptToc} +% Then, we define the |\pptToc| command: +% \begin{macrocode} +\newcommand*\pptTOC{} +\newcommand\pptToc[1][]{% + \renewcommand*\pptTOC{}% + \print{% + \def\param{#1}% + \ifx\param\empty\else% + \pptBanner{#1}% + \fi% + \tikz{% + \node (z) {% + \begin{varwidth}{\textwidth}% + \ifx\pptTOC\empty\else% + \begin{itemize}[label={}] + \pptTOC + \end{itemize} + \fi% + \end{varwidth}% + };% + \path [draw=blue,line width=4pt] (z.north west) -- (z.south west);% + }% + }% + \begin{@empty}% + \renewcommand\crumb[2]{% + \ifx\pptTOC\empty\else\ifdefined\click\click[0]\fi\fi + \gappto\pptTOC{\item ##2} + } + \crumbs + \end{@empty}% + \ifdefined\flush\flush[1]\fi% +} +% \end{macrocode} +% \end{macro} + +% \begin{macro}{\pptQuote} +% Then, we define the |\pptQuote| command: +% \begin{macrocode} +\RequirePackage{tabularx} +\newcommand\pptQuote[3]{% + \begin{tabularx}{\columnwidth}{c>{\raggedright\arraybackslash}X}% + \raisebox{\dimexpr-\height+\ht\strutbox}{\pptPic{0.25}{#1}}% + &% + ``#2''% + \def\param{#3}% + \ifx\param\empty\else% + \newline\newline% + \small% + --- #3% + \fi% + \\% + \end{tabularx}% +} +% \end{macrocode} +% \end{macro} + +% \begin{macro}{\pptPic} +% Then, we define the |\pptPic| command: +% \begin{macrocode} +\newcommand\pptPic[2]{% + {% + \setlength{\fboxsep}{0pt}% + \setlength{\fboxrule}{1pt}% + \fcolorbox{gray}{white}{% + \includegraphics[width=#1\columnwidth]{#2}% + }% + }% +} +% \end{macrocode} +% \end{macro} + +% \begin{macro}{\pptPin} +% Then, we define the |\pptPin| command: +% \begin{macrocode} +\newcommand\pptPin[2][right]{% + \begin{tikzpicture}[remember picture,overlay]% + \ifthenelse{\equal{#1}{left}}% + {% + \node[anchor=north east] at + ($(current page text area.north west) - (24pt, 18pt)$) {% + \begin{minipage}{0.25\textwidth}% + \raggedleft #2% + \end{minipage}% + };% + }% + {% + \node[anchor=north east] at (current page text area.north east) {% + \begin{minipage}{0.25\textwidth}% + \raggedright #2% + \end{minipage}% + };% + }% + \end{tikzpicture}% +} +% \end{macrocode} +% \end{macro} + +% \begin{macro}{\pptThought} +% Then, we define the |\pptThought| command: +% \begin{macrocode} +\newcommand\pptThought[1]{% + \pptMiddle{% + \tikz{% + \node [inner sep=18pt] (z) {% + \begin{varwidth}{0.8\textwidth} + \Large + #1 + \end{varwidth} + }; + \path [draw=green,line width=8pt] (z.north west) -- (z.south west); + }% + }% +} +% \end{macrocode} +% \end{macro} + +% \begin{macro}{\pptSnippet} +% Then, we define the |\pptSnippet| command: +% \begin{macrocode} +\newcommand\pptSnippet[2][\small]{% + \begin{samepage}% + #1\verbatiminput{#2}% + \end{samepage}% +} +% \end{macrocode} +% \end{macro} + +% \begin{macro}{\pptQR} +% Then, we define the |\pptQR| command: +% \begin{macrocode} +\newcommand\pptQR[2][2in]{% + \tikz{% + \node[draw=white]{% + \href{#2}{% + \qrcode[height=#1]{#2}% + }% + }% + }% +} +% \end{macrocode} +% \end{macro} + +% \begin{macro}{\pptPinQR} +% Then, we define the |\pptPinQR| command: +% \begin{macrocode} +\RequirePackage{seqsplit} +\newcommand\pptPinQR[2][right]{% + \pptPin[#1]{% + \begin{minipage}{1.4in}% + \raggedleft% + \pptQR[1in]{#2}% + \\[3pt] + \ttfamily\fontsize{8pt}{10pt}\selectfont% + \seqsplit{#2} \href{#2}{$\rightarrow$}% + \\ + \end{minipage}% + }% +} +% \end{macrocode} +% \end{macro} + +% \begin{macro}{pptWide} +% Finally, we define the |pptWide| and |pptWideOne| environments: +% \begin{macrocode} +\newenvironment{pptWideOne} + {\begin{adjustwidth}{-2in}{-1in}} + {\end{adjustwidth}} +\newenvironment{pptWide}[1] + {\begin{pptWideOne}\begin{multicols}{#1}} + {\end{multicols}\end{pptWideOne}} +% \end{macrocode} +% \end{macro} + +\endinput + +% \Finale + +% \clearpage +% \printbibliography +% \clearpage + +% \PrintChanges +% \clearpage +% \PrintIndex diff --git a/macros/latex/contrib/ppt-slides/ppt-slides.ins b/macros/latex/contrib/ppt-slides/ppt-slides.ins new file mode 100644 index 0000000000..5dfdeca0b5 --- /dev/null +++ b/macros/latex/contrib/ppt-slides/ppt-slides.ins @@ -0,0 +1,55 @@ +%% (The MIT License) +%% +%% Copyright (c) 2021-2022 Yegor Bugayenko +%% +%% Permission is hereby granted, free of charge, to any person obtaining a copy +%% of this software and associated documentation files (the 'Software'), to deal +%% in the Software without restriction, including without limitation the rights +%% to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +%% copies of the Software, and to permit persons to whom the Software is +%% furnished to do so, subject to the following conditions: +%% +%% The above copyright notice and this permission notice shall be included in all +%% copies or substantial portions of the Software. +%% +%% THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +%% IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +%% FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +%% AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +%% LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +%% OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +%% SOFTWARE. + +\input docstrip.tex +\keepsilent +\usedir{macros/latex/contrib/ppt-slides} +\preamble +(The MIT License) + +Copyright (c) 2021-2022 Yegor Bugayenko + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the 'Software'), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +\endpreamble +\generate{\file{ppt-slides.sty}{\from{ppt-slides.dtx}{package}}} +\obeyspaces +\Msg{To finish the installation you have to move the ".sty"} +\Msg{file into a directory searched by TeX. To produce the} +\Msg{documentation run the file ".dtx" through LaTeX. If any} +\Msg{questions, submit a new GitHub issue.} +\endbatchfile diff --git a/macros/latex/contrib/ppt-slides/ppt-slides.pdf b/macros/latex/contrib/ppt-slides/ppt-slides.pdf index 3b357352bf..c256214d9b 100644 Binary files a/macros/latex/contrib/ppt-slides/ppt-slides.pdf and b/macros/latex/contrib/ppt-slides/ppt-slides.pdf differ diff --git a/macros/latex/contrib/ppt-slides/ppt-slides.sty b/macros/latex/contrib/ppt-slides/ppt-slides.sty deleted file mode 100644 index beb1e866d2..0000000000 --- a/macros/latex/contrib/ppt-slides/ppt-slides.sty +++ /dev/null @@ -1,227 +0,0 @@ -% (The MIT License) -% -% Copyright (c) 2022 Yegor Bugayenko -% -% Permission is hereby granted, free of charge, to any person obtaining a copy -% of this software and associated documentation files (the 'Software'), to deal -% in the Software without restriction, including without limitation the rights -% to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -% copies of the Software, and to permit persons to whom the Software is -% furnished to do so, subject to the following conditions: -% -% The above copyright notice and this permission notice shall be included in all -% copies or substantial portions of the Software. -% -% THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -% IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -% FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -% AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -% LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -% OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -% SOFTWARE. - -\NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{ppt-slides}[2022/09/19 0.1.5 Slide Decks à la Power Point] - -\RequirePackage{pgfopts} -\makeatletter -\pgfkeys{ - /ppt-slides/.is family, - /ppt-slides, - template/.estore in = \ppt@template, - template/.default = 9x6, - scheme/.estore in = \ppt@scheme, - directory/.estore in = \ppt@directory, - directory/.default = , - nominutes/.estore in = \ppt@nominutes, - directory -} -\ProcessPgfOptions* -\makeatother - -\makeatletter\ifdefined\ppt@template - \input{\ppt@directory ppt-templates/ppt-\ppt@template.tex} -\else - \message{^^Jppt: No template is loaded, because 'template' option is not specified} -\fi\makeatother - -\makeatletter\ifdefined\ppt@scheme - \RequirePackage{xcolor} - \input{\ppt@directory ppt-schemes/ppt-\ppt@scheme.tex} -\else - \message{^^Jppt: No color scheme is loaded, because 'scheme' option is not specified} -\fi\makeatother - -\RequirePackage{ifthen} % for if/then/else in LaTeX -\RequirePackage{href-ul} % for nice hyperlinks -\RequirePackage{pagecolor} % to change page color -\RequirePackage{varwidth} % for pptWide -\RequirePackage{qrcode} % to print QR codes -\RequirePackage{tikz} % for drawings in TOC -\RequirePackage{tikzpagenodes} % for pptPin -\RequirePackage[inline]{enumitem} % for lists in crumbs -\RequirePackage{crumbs} % for crumbs - -\newcommand\pptMiddle[1]{% - \vspace*{\fill}#1\vspace*{\fill}% -} - -\newcommand\pptBanner[2][green]{% - \par - {\setlength{\fboxsep}{6pt}\colorbox{#1}{\color{\thepagecolor}\large #2}} - \par -} - -\newcommand\pptChapter[2][]{% - \crumbection[#1]{#2}% - \pptMiddle{% - {\large\ttfamily Chapter \#\the\value{section}:}% - \newline% - \rotatebox{1}{\pptBanner[blue]{\LARGE#2}}% - }% -} - -\newcommand\pptSection[2][]{% - \subcrumbection[#1]{#2}% - \pptHeader{#2}% -} - -\newcommand\pptHeader[1]{% - \vspace*{-0.75in}\hspace*{-0.5in}% - \rotatebox{1}{\pptBanner[orange]{\Large #1}}\vspace*{0.15in}% - \par% -} - -\newcommand\pptTitle[2]{% - {\pptBanner{\Huge #1}}% - {\pptBanner{\large #2}}% -} - -\newcommand*\pptTOC{} -\newcommand\pptToc[1][]{% - \renewcommand*\pptTOC{}% - \print{% - \def\param{#1}% - \ifx\param\empty\else% - \pptBanner{#1}% - \fi% - \tikz{% - \node (z) {% - \begin{varwidth}{\textwidth}% - \ifx\pptTOC\empty\else% - \begin{itemize}[label={}] - \pptTOC - \end{itemize} - \fi% - \end{varwidth}% - };% - \path [draw=blue,line width=4pt] (z.north west) -- (z.south west);% - }% - }% - \begin{@empty}% - \renewcommand\crumb[2]{% - \ifx\pptTOC\empty\else\ifdefined\click\click[0]\fi\fi - \gappto\pptTOC{\item ##2} - } - \crumbs - \end{@empty}% - \ifdefined\flush\flush[1]\fi% -} - -\RequirePackage{tabularx} -\newcommand\pptQuote[3]{% - \begin{tabularx}{\columnwidth}{c>{\raggedright\arraybackslash}X}% - \raisebox{\dimexpr-\height+\ht\strutbox}{\pptPic{0.25}{#1}}% - &% - ``#2''% - \def\param{#3}% - \ifx\param\empty\else% - \newline\newline% - \small% - --- #3 - \fi% - \\% - \end{tabularx}% -} - -\newcommand\pptPic[2]{% - {% - \setlength{\fboxsep}{0pt}% - \setlength{\fboxrule}{1pt}% - \fcolorbox{gray}{white}{% - \includegraphics[width=#1\columnwidth]{#2}% - }% - }% -} - -\newcommand\pptPin[2][right]{% - \begin{tikzpicture}[remember picture,overlay]% - \ifthenelse{\equal{#1}{left}} - { - \node[anchor=north east] at ($(current page text area.north west) - (24pt, 18pt)$) {% - \begin{minipage}{0.25\textwidth}% - \raggedleft #2 - \end{minipage}% - }; - } - { - \node[anchor=north east] at (current page text area.north east) {% - \begin{minipage}{0.25\textwidth}% - \raggedright #2 - \end{minipage}% - };% - } - \end{tikzpicture}% -} - -\newcommand\pptThought[1]{% - \pptMiddle{% - \tikz{% - \node [inner sep=18pt] (z) {% - \begin{varwidth}{0.8\textwidth} - \Large - #1 - \end{varwidth} - }; - \path [draw=green,line width=8pt] (z.north west) -- (z.south west); - } - } -} - -\newcommand\pptSnippet[2][\small]{% - \begin{samepage}% - #1\verbatiminput{#2}% - \end{samepage}% -} - -\newcommand\pptQR[2][2in]{% - \tikz{% - \node[draw=white]{% - \href{#2}{% - \qrcode[height=#1]{#2}% - }% - }% - } -} - -\RequirePackage{seqsplit} -\newcommand\pptPinQR[2][right]{% - \pptPin[#1]{% - \begin{minipage}{1.4in}% - \raggedleft% - \pptQR[1in]{#2}% - \\[3pt] - \ttfamily\fontsize{8pt}{10pt}\selectfont\seqsplit{#2} \href{#2}{$\rightarrow$} - \\ - \end{minipage}% - }% -} - -\newenvironment{pptWideOne} - {\begin{adjustwidth}{-2in}{-1in}} - {\end{adjustwidth}} -\newenvironment{pptWide}[1] - {\begin{pptWideOne}\begin{multicols}{#1}} - {\end{multicols}\end{pptWideOne}} - -\endinput diff --git a/macros/latex/contrib/ppt-slides/ppt-slides.tex b/macros/latex/contrib/ppt-slides/ppt-slides.tex deleted file mode 100644 index 5be0b6029f..0000000000 --- a/macros/latex/contrib/ppt-slides/ppt-slides.tex +++ /dev/null @@ -1,262 +0,0 @@ -% (The MIT License) -% -% Copyright (c) 2022 Yegor Bugayenko -% -% Permission is hereby granted, free of charge, to any person obtaining a copy -% of this software and associated documentation files (the 'Software'), to deal -% in the Software without restriction, including without limitation the rights -% to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -% copies of the Software, and to permit persons to whom the Software is -% furnished to do so, subject to the following conditions: -% -% The above copyright notice and this permission notice shall be included in all -% copies or substantial portions of the Software. -% -% THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -% IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -% FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -% AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -% LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -% OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -% SOFTWARE. - -\documentclass{article} -\usepackage[increment]{crumbs} -\usepackage[static]{clicks} -\usepackage[template,scheme=dark]{ppt-slides} -\usepackage[nonumbers]{ffcode} -\usepackage{titling} -\usepackage{textcomp} -\title{\LaTeX{} Package for Slide Decks \`a la PowerPoint\texttrademark} -\author{Yegor Bugayenko} -\date{0.1.5 2022/09/19} -\pptLeft{\thetitle} -\pptRight{\href{https://github.com/yegor256}{@yegor256}} - -\begin{document} - -\plush{ - \pptMiddle{ - \pptTitle{ppt-slides}{\thetitle}\par - {\scshape Made by \href{https://www.yegor256.com}{\theauthor}}\par - \thedate - } -} - -\clearpage -This package helps you make slide decks in \LaTeX: -\begin{ffcode*}{fontsize=\small} -\documentclass{article} -\usepackage{clicks} -\usepackage[template,scheme=dark]{ppt-slides} -\begin{document} -\plick{\pptBanner{Making Slides Is Easy}} -\plick{Just use this package...} -\plush{together with 'clicks' package.} -\end{document} -\end{ffcode*} -They will look similar to what PowerPoint\texttrademark{} can make, -but with the precision of \LaTeX. We recommend to use this package -together with \href{https://github.com/yegor256/clicks}{clicks}. - -\clearpage -\pptToc[Table of Contents] - -\clearpage -\plush{\pptChapter[Layout]{Scaffolding and Layout}} - -\clearpage -\pptSection{Template} -You start with a template for your slide deck: -\begin{ffcode*}{fontsize=\scriptsize} -\documentclass{article} -\usepackage{clicks} -\usepackage[template=9x6]{ppt-slides} -\begin{document} -... -\end{document} -\end{ffcode*} -There is only one template, which is used by default: \ff{9x6}. If you don't -specify the name, it will be used. If you don't use \ff{template} option at all, -the default \ff{article} will be rendered, which is not what you want. - -\clearpage -\pptSection[Scheme]{Color Schemes} -You can choose a color scheme for your slides, using \ff{scheme} option -of the package: -\begin{ffcode*}{fontsize=\scriptsize} -\documentclass{article} -\usepackage{clicks} -\usepackage[template,scheme=light]{ppt-slides} -\begin{document} -... -\end{document} -\end{ffcode*} -There are a few out-of-the-box schemes available: \ff{light}, \ff{dark}, -\ff{light-mono}, and \ff{dark-mono}. You can design your own, using -\ff{ppt-light.text} file as an example: -{\scriptsize\begin{ffcode} -\usepackage[template,scheme=/usr/local/my-colors.tex]{ppt-slides} -\end{ffcode} -} - -\clearpage -\pptSection{Chapters} -First, split your story into Chapters: -\begin{ffcode*}{fontsize=\scriptsize} -\documentclass{article} -\usepackage{clicks} -\usepackage[template,scheme=light]{ppt-slides} -\begin{document} -\pptToc -\plush{\pptChapter{About Me}} -... -\plush{\pptChapter[Idea]{My Idea Is Novel}} -... -\plush{\pptChapter[FAQ]{Discussion \& Questions}} -... -\end{document} -\end{ffcode*} -\ff{\char`\\pptToc} will render the table of contents in an interactive ``clickable'' format. -Thanks to the use of \href{https://github.com/yegor256/crumbs}{crumbs}, there will -be a navigation at the top left corner. - -\clearpage -\pptSection{Sections} -Put Sections inside Chapters: -\begin{ffcode*}{fontsize=\scriptsize} -\begin{document} -\pptToc -\plush{\pptChapter{About Me}} -\plush{\pptSection[Student]{I'm a Student}} -... -\plush{\pptSection[Athlete]{Also, I'm an Athlete}} -... -\plush{\pptChapter[Idea]{My Idea Is Novel}} -\plush{\pptSection{Novelty}} -\plush{\pptSection{Impact}} -\end{document} -\end{ffcode*} -\ff{\char`\\pptChapter} and \ff{\char`\\pptSection} used together will render -nice two-level nagivation menu at the top left corner. - -\clearpage -\pptSection[Signatures]{Signatures at the Bottom of Each Page} -You can place the title of the presentation and your name at the bottom -of each slide, on the left and on the right respectively: -\begin{ffcode*}{fontsize=\scriptsize} -\documentclass{article} -\usepackage{clicks} -\usepackage[template,scheme=light]{ppt-slides} -\pptLeft{How Did I Spend Last Summer} -\pptRight{Yegor Bugayenko} -\begin{document} -... -\end{document} -\end{ffcode*} -If you don't use \ff{\char`\\pptLeft} or \ff{\char`\\pptRight}, nothing will -be printed at the bottom. - -\clearpage -\pptSection[Minutes]{Tracking Minutes} -By default, if you render your slide deck in non-static mode (option \ff{static} for clicks package), -there will be minutes tracking in the right top corner of each slide. You can turn this off -by using \ff{nominutes} option of the package: -\begin{ffcode*}{fontsize=\small} -\documentclass{article} -\usepackage{clicks} -\usepackage[template,scheme=light,nominutes]{ppt-slides} -\begin{document} -... -\end{document} -\end{ffcode*} - -\clearpage -\pptSection[Wide]{Wide Slides} -Sometimes you need your slide content to take all visible horizontal space: -\begin{ffcode*}{fontsize=\scriptsize} -\begin{document} -\begin{pptWideOne} -This paragraph is too long for some reasons, -that's why must take all visible horizontal space. -\end{pptWideOne} -\end{document} -\end{ffcode*} -\begin{pptWideOne} -This paragraph is too long for some reasons, that's why must take all visible horizontal space. -\end{pptWideOne} -You can also use \ff{\char`\\begin\char`\{pptWide\char`\}\char`\{X\char`\}}, -where \ff{X} is the number of columns to render. - -\clearpage -\plush{\pptChapter[Elements]{Content Elements}} - -\clearpage -\pptSection{Images} -You can add an image to the slide (the first argument is the width -of the image in relation to \ff{\char`\\textwidth}, -while the second one is the path of it): -\begin{ffcode*}{fontsize=\scriptsize} -\begin{document} -\plush{\pptPic{0.2}{socrates.jpg}} -\end{document} -\end{ffcode*} -\pptPic{0.2}{socrates.jpg} - -\clearpage -\pptSection[Snippets]{Code Snippets} -You can add a piece of code to the slide (we recommend using \href{https://github.com/yegor256/ffcode}{ffcode}): -{\scriptsize -\begin{verbatim} -\begin{document} -\clearpage -\pptHeader{This is How You Print to Console:} -\begin{ffcode} -System.out.println("Hello, world!"); -\end{ffcode} -\end{document} -\end{verbatim} -} -Don't use \ff{\char`\\plick} or \ff{\char`\\plush}, they won't work with code snippets. - -\ff{\char`\\pptHeader} prints a header similar to what \ff{\char`\\pptSection} prints, but -doesn't start a new section. - -\clearpage -\pptSection{Quotes} -\pptQuote{socrates.jpg}{The only true wisdom is in knowing you know nothing}{Socrates} -\begin{ffcode*}{fontsize=\scriptsize} -\begin{document} -\plush{\pptQuote{socrates.jpg} - {The only true wisdom is in knowing you know nothing}{Socrates}} -\end{document} -\end{ffcode*} - -\clearpage -\pptSection{Thoughts} -\plush{\pptThought{Socrates said that the only true wisdom is in knowing you know nothing. Was he a wise man?... By the way, I'm using \ff{\char`\\pptThought} in this slide.}} - -\clearpage -\pptSection[QR]{QR Codes} -Sometimes it's convenient to show a QR code to your audience instead of -a URL, since it's easier to use --- they can scan it: -\begin{ffcode*}{fontsize=\scriptsize} -\begin{document} -\plick{Check my blog post by this link:} -\plush{\pptQR{https://www.yegor256.com}} -\end{document} -\end{ffcode*} -The code will look like this, thanks to \href{https://ctan.org/pkg/qrcode}{qrcode} package that -we use behind the scene:\par -\pptQR[1in]{https://www.yegor256.com} - -\clearpage -\plush{ - \crumbection{Sources} - \pptMiddle{ - More details about this package you can find\\ - in \href{https://github.com/yegor256/ppt-slides}{yegor256/ppt-slides} GitHub repository. - } -} - -\end{document} \ No newline at end of file diff --git a/macros/latex/contrib/ppt-slides/ppt-templates/ppt-9x6.tex b/macros/latex/contrib/ppt-slides/ppt-templates/ppt-9x6.tex index 3c7afa2bb2..10cf2a6f8d 100644 --- a/macros/latex/contrib/ppt-slides/ppt-templates/ppt-9x6.tex +++ b/macros/latex/contrib/ppt-slides/ppt-templates/ppt-9x6.tex @@ -26,6 +26,7 @@ \TPGrid{16}{16} \RequirePackage[tt=false,type1=true]{libertine} % the font we use \RequirePackage{microtype} % just to make rendering smooth +\AddToHook{env/verbatim/begin}{\microtypesetup{protrusion=false}} \RequirePackage{anyfontsize} % to support all sizes \RequirePackage{multicol} % for pptWide environment \RequirePackage[fontsize=24pt]{fontsize} % to make fonts larger diff --git a/macros/latex/contrib/semantex/semantex.pdf b/macros/latex/contrib/semantex/semantex.pdf index 64e0bae6cf..62ad68d435 100644 Binary files a/macros/latex/contrib/semantex/semantex.pdf and b/macros/latex/contrib/semantex/semantex.pdf differ diff --git a/macros/latex/contrib/semantex/semantex.sty b/macros/latex/contrib/semantex/semantex.sty index 1937f4e5c4..0543e3c030 100644 --- a/macros/latex/contrib/semantex/semantex.sty +++ b/macros/latex/contrib/semantex/semantex.sty @@ -1,5 +1,5 @@ \RequirePackage{xparse,l3keys2e,leftindex,semtex} -\ProvidesExplPackage{semantex}{2022/10/04}{0.522}{} +\ProvidesExplPackage{semantex}{2022/12/03}{0.523}{} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % @@ -10,7 +10,7 @@ % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\tl_set:Nn\SemantexVersion{0.522} +\tl_set:Nn\SemantexVersion{0.523} \cs_set_eq:NN \semantex_keyval_parse:NNn \keyval_parse:NNn \cs_set:Npn \semantex_singlekey_parse:Nn#1#2 { \clist_map_function:nN { #2 } #1 } @@ -7072,6 +7072,7 @@ {dots}{sep~i~dots}, {...}{dots}, {slot}{sep~i~slot}, + {---}{slot}, {*}{sep~d~*}, {**}{sep~d~**}, }, @@ -7101,12 +7102,14 @@ data~provide=pre~arg, data~provide=post~arg, define~keys={ - {arg~dots}{set~arg~keys={...}}, - {arg~...}{set~arg~keys={dots}}, + {arg~dots}{set~arg~keys={dots}}, + {arg~...}{set~arg~keys={...}}, {comma~arg~dots}{set~arg~keys={comma~dots}}, {comma~arg~...}{set~arg~keys={comma~...}}, {arg~slot}{set~arg~keys={slot}}, + {arg~---}{set~arg~keys={---}}, {comma~arg~slot}{set~arg~keys={comma~slot}}, + {comma~arg~---}{set~arg~keys={comma~---}}, {clear~arg}{ execute={ \semantex_data_tl_clear:nn { ##1 } { arg } \semantex_data_int_clear:nn { ##1 } { number~of~arguments } @@ -7303,8 +7306,9 @@ {sep~arg}{set~arg~keys={sep={#1}}}, {comma~arg}{set~arg~keys={comma={#1}}}, {arg~dots~with~other~sep}{set~arg~keys={dots~with~other~sep={#1}}}, - {arg~...~with~other~sep}{set~arg~keys={dots~with~other~sep={#1}}}, + {arg~...~with~other~sep}{set~arg~keys={...~with~other~sep={#1}}}, {arg~slot~with~other~sep}{set~arg~keys={slot~with~other~sep={#1}}}, + {arg~---~with~other~sep}{set~arg~keys={---~with~other~sep={#1}}}, }, define~keys[2]={ {arg~with~other~sep}{set~arg~keys={other~sep={#1}{#2}}}, @@ -7380,8 +7384,11 @@ data~provide=post~upper, define~keys={ {upper~slot}{ set~keys~x={ upper=\semantex_data_tl_get_exp_not:nn { ##1 } { upper~slot } } }, + {upper~---}{upper~slot}, {sep~upper~slot}{ set~keys~x={ sep~upper=\semantex_data_tl_get_exp_not:nn { ##1 } { upper~slot } } }, + {sep~upper~---}{sep~upper~slot}, {comma~upper~slot}{ set~keys~x={ comma~upper=\semantex_data_tl_get_exp_not:nn { ##1 } { upper~slot } } }, + {comma~upper~---}{comma~upper~slot}, {upper~dots}{ set~keys~x={ upper=\semantex_data_tl_get_exp_not:nn { ##1 } { upper~dots } } }, {upper~...}{upper~dots}, {sep~upper~dots}{ set~keys~x={ sep~upper=\semantex_data_tl_get_exp_not:nn { ##1 } { upper~dots } } }, @@ -7503,6 +7510,15 @@ } }, }, + {upper~---~with~other~sep}{ + execute={ + \semantex_valuekey:nnx { ##1 } { upper~with~other~sep } + { + { \exp_not:n { #1 } } + { \semantex_data_tl_get_exp_not:nn { ##1 } { upper~slot } } + } + }, + }, {set~upper~dots}{ execute={ \semantex_data_tl_set:nnn { ##1 } { upper~dots } { #1 } }, }, @@ -7567,8 +7583,11 @@ data~provide=post~lower, define~keys={ {lower~slot}{ set~keys~x={ lower=\semantex_data_tl_get_exp_not:nn { ##1 } { lower~slot } } }, + {lower~---}{lower~slot}, {sep~lower~slot}{ set~keys~x={ sep~lower=\semantex_data_tl_get_exp_not:nn { ##1 } { lower~slot } } }, + {sep~lower~---}{sep~lower~slot}, {comma~lower~slot}{ set~keys~x={ comma~lower=\semantex_data_tl_get_exp_not:nn { ##1 } { lower~slot } } }, + {comma~lower~---}{comma~lower~slot}, {lower~dots}{ set~keys~x={ lower=\semantex_data_tl_get_exp_not:nn { ##1 } { lower~dots } } }, {lower~...}{lower~dots}, {sep~lower~dots}{ set~keys~x={ sep~lower=\semantex_data_tl_get_exp_not:nn { ##1 } { lower~dots } } }, @@ -7689,6 +7708,15 @@ } }, }, + {lower~---~with~other~sep}{ + execute={ + \semantex_valuekey:nnx { ##1 } { lower~with~other~sep } + { + { \exp_not:n { #1 } } + { \semantex_data_tl_get_exp_not:nn { ##1 } { lower~slot } } + } + }, + }, {set~lower~dots}{ execute={ \semantex_data_tl_set:nnn { ##1 } { lower~dots } { #1 } }, }, @@ -7753,8 +7781,11 @@ data~provide=post~upper~left, define~keys={ {upper~left~slot}{ set~keys~x={ upper~left=\semantex_data_tl_get_exp_not:nn { ##1 } { upper~left~slot } } }, + {upper~left~---}{upper~left~slot}, {sep~upper~left~slot}{ set~keys~x={ sep~upper~left=\semantex_data_tl_get_exp_not:nn { ##1 } { upper~left~slot } } }, + {sep~upper~left~---}{sep~upper~left~slot}, {comma~upper~left~slot}{ set~keys~x={ comma~upper~left=\semantex_data_tl_get_exp_not:nn { ##1 } { upper~left~slot } } }, + {comma~upper~left~---}{comma~upper~left~slot}, {upper~left~dots}{ set~keys~x={ upper~left=\semantex_data_tl_get_exp_not:nn { ##1 } { upper~left~dots } } }, {upper~left~...}{upper~left~dots}, {sep~upper~left~dots}{ set~keys~x={ sep~upper~left=\semantex_data_tl_get_exp_not:nn { ##1 } { upper~left~dots } } }, @@ -7875,6 +7906,15 @@ } }, }, + {upper~left~---~with~other~sep}{ + execute={ + \semantex_valuekey:nnx { ##1 } { upper~left~with~other~sep } + { + { \exp_not:n { #1 } } + { \semantex_data_tl_get_exp_not:nn { ##1 } { upper~left~slot } } + } + }, + }, {set~upper~left~dots}{ execute={ \semantex_data_tl_set:nnn { ##1 } { upper~left~dots } { #1 } }, }, @@ -7939,8 +7979,11 @@ data~provide=post~lower~left, define~keys={ {lower~left~slot}{ set~keys~x={ lower~left=\semantex_data_tl_get_exp_not:nn { ##1 } { lower~left~slot } } }, + {lower~left~---}{lower~left~slot}, {sep~lower~left~slot}{ set~keys~x={ sep~lower~left=\semantex_data_tl_get_exp_not:nn { ##1 } { lower~left~slot } } }, + {sep~lower~left~---}{sep~lower~left~slot}, {comma~lower~left~slot}{ set~keys~x={ comma~lower~left=\semantex_data_tl_get_exp_not:nn { ##1 } { lower~left~slot } } }, + {comma~lower~left~---}{comma~lower~left~slot}, {lower~left~dots}{ set~keys~x={ lower~left=\semantex_data_tl_get_exp_not:nn { ##1 } { lower~left~dots } } }, {lower~left~...}{lower~left~dots}, {sep~lower~left~dots}{ set~keys~x={ sep~lower~left=\semantex_data_tl_get_exp_not:nn { ##1 } { lower~left~dots } } }, @@ -8061,6 +8104,15 @@ } }, }, + {lower~left~---~with~other~sep}{ + execute={ + \semantex_valuekey:nnx { ##1 } { lower~left~with~other~sep } + { + { \exp_not:n { #1 } } + { \semantex_data_tl_get_exp_not:nn { ##1 } { lower~left~slot } }, + } + }, + }, {set~lower~left~dots}{ execute={ \semantex_data_tl_set:nnn { ##1 } { lower~left~dots } { #1 } }, }, @@ -8124,16 +8176,19 @@ { upper~slot } { lower~slot }, }, + {d~---}{d~slot}, {sep~d~slot}{ bool~if~TF={upper~grading} { sep~upper~slot } { sep~lower~slot }, }, + {sep~d~---}{sep~d~slot}, {comma~d~slot}{ bool~if~TF={upper~grading} { comma~upper~slot } { comma~lower~slot }, }, + {comma~d~---}{comma~d~slot}, {d~dots}{ bool~if~TF={upper~grading} { upper~dots } @@ -8283,6 +8338,15 @@ lower~slot~with~other~sep={#1}, }, }, + {d~---~with~other~sep}{ + bool~if~TF={upper~grading} + { + upper~---~with~other~sep={#1}, + } + { + lower~---~with~other~sep={#1}, + }, + }, {set~d~dots}{ bool~if~TF={upper~grading} { @@ -8302,7 +8366,13 @@ }, }, {d~...~with~other~sep}{ - d~dots~with~other~sep={#1}, + bool~if~TF={upper~grading} + { + upper~...~with~other~sep={#1}, + } + { + lower~...~with~other~sep={#1}, + }, }, {d~*~with~other~sep}{ bool~if~TF={upper~grading} @@ -8369,16 +8439,19 @@ { lower~slot } { upper~slot }, }, + {i~---}{i~slot}, {sep~i~slot}{ bool~if~TF={upper~grading} { sep~lower~slot } { sep~upper~slot }, }, + {sep~i~---}{sep~i~slot}, {comma~i~slot}{ bool~if~TF={upper~grading} { comma~lower~slot } { comma~upper~slot }, }, + {comma~i~---}{comma~i~slot}, {i~dots}{ bool~if~TF={upper~grading} { lower~dots } @@ -8527,6 +8600,15 @@ upper~slot~with~other~sep={#1}, }, }, + {i~---~with~other~sep}{ + bool~if~TF={upper~grading} + { + lower~---~with~other~sep={#1}, + } + { + upper~---~with~other~sep={#1}, + }, + }, {set~i~dots}{ bool~if~TF={upper~grading} { @@ -8546,7 +8628,13 @@ }, }, {i~...~with~other~sep}{ - i~dots~with~other~sep={#1}, + bool~if~TF={upper~grading} + { + lower~...~with~other~sep={#1}, + } + { + upper~...~with~other~sep={#1}, + }, }, {i~*~with~other~sep}{ bool~if~TF={upper~grading} @@ -8712,7 +8800,6 @@ {set~arg~without~keyval~x}{ execute={ \semantex_arg_without_keyval:nx { ##1 } { #1 } } }, {arg~without~keyval~set~x}{ execute={ \semantex_arg_without_keyval:nx { ##1 } { #1 } } }, {default}{sep={#1}}, - {...~with~other~sep}{dots~with~other~sep={#1}}, {sep}{ execute={ \semantex_data_bool_get:nnTF { ##1 } { next~arg~with~sep } @@ -8752,6 +8839,7 @@ } }, }, + {...~with~other~sep}{dots~with~other~sep={#1}}, {slot~with~other~sep}{ execute={ \semantex_arg_valuekey:nnx { ##1 } { other~sep } @@ -8761,6 +8849,7 @@ } }, }, + {---~with~other~sep}{slot~with~other~sep={#1}}, }, define~arg~keys={ {dots}{ @@ -8789,6 +8878,7 @@ } }, }, + {---}{slot}, {comma~slot}{ execute={ \semantex_arg_valuekey:nnx { ##1 } { comma } @@ -8797,6 +8887,7 @@ } }, }, + {comma~---}{comma~slot}, }, define~arg~keys[2]={ {other~sep}{ diff --git a/macros/latex/contrib/semantex/semantex.tex b/macros/latex/contrib/semantex/semantex.tex index 08587d1ad8..5868300ec0 100644 --- a/macros/latex/contrib/semantex/semantex.tex +++ b/macros/latex/contrib/semantex/semantex.tex @@ -1952,7 +1952,7 @@ on \( \vn \)~elements. ] \NewObject\MyVar\inner[left par=\langle, right par=\rangle] -In this chapter, se show how to define delimiter commands like \( \norm{slot} \) and~\( \inner{slot,slot} \). +In this chapter, se show how to define delimiter commands like \( \norm{---} \) and~\( \inner{---,---} \). This is easy to do via the keys \lstinline!left par! and~\lstinline!right par!: \begin{lstlisting} \NewObject\MyVar\norm[left par=\lVert, right par=\rVert] @@ -1962,10 +1962,10 @@ Indeed: \begin{LTXexample} $\norm{\va}$, $\inner{\va,\vb}$, -$\inner{slot,slot}$ +$\inner{---,---}$ \end{LTXexample} In the case where you want to use different kinds of -norms, say \( \norm[2]{slot} \) or~\( \norm[\infty]{slot} \), +norms, say \( \norm[2]{---} \) or~\( \norm[\infty]{---} \), you can use the key~\mylst!output options={$\$}!. This allows you to pass the~\ to the output class (in this case,~\lstinline!\MyVar!): @@ -3706,12 +3706,12 @@ In the following sections, we include the full list. Adds a double bullet to the \lstinline!d!-index. \item - \mylst!slot! + \mylst!---!, \mylst!slot! Adds a slot to the \lstinline!i!-index. \item - \mylst!dots!, \mylst!...! + \mylst!...!, \mylst!dots! Adds three dots to the \lstinline!i!-index. @@ -4034,33 +4034,35 @@ In the following sections, we include the full list. argument by the \. \item + \mylst!arg --- with other sep={$\$}!, \mylst!arg slot with other sep={$\$}! Adds a slot to the argument, separated from any previous argument by the \. \item - \mylst!arg dots!, \mylst!arg ...! + \mylst!arg ...!, \mylst!arg dots! Adds three dots to the argument, separated from any previous arguments by the standard separator. \item - \mylst!comma arg dots!, \mylst!comma arg ...! + \mylst!comma arg ...!, \mylst!comma arg dots! Adds three dots to the argument, separated from any previous arguments by a comma. \item - \mylst!arg slot! + \mylst!arg ---!, \mylst!arg slot! Adds a slot to the argument, separated from any previous arguments by the standard separator. \item + \mylst!comma arg ---!, \mylst!comma arg slot! Adds a slot to the argument, @@ -4156,12 +4158,14 @@ In the following sections, we include the full list. any prevous upper index by~\. \item + \mylst!upper ---!, \mylst!upper slot! Adds a slot to the upper index, with no separator from any previous upper index. \item + \mylst!sep upper ---!, \mylst!sep upper slot! Adds a slot to the upper index, @@ -4169,6 +4173,7 @@ In the following sections, we include the full list. index by the default separator. \item + \mylst!comma upper ---!, \mylst!comma upper slot! Adds a slot to the upper index, @@ -4182,6 +4187,7 @@ In the following sections, we include the full list. By default, this is~\lstinline!{-}!. \item + \mylst!upper --- with other sep={$\$}!,\\ \mylst!upper slot with other sep={$\$}! @@ -4364,20 +4370,20 @@ In the following sections, we include the full list. any prevous lower index by~\. \item - \mylst!lower slot! + \mylst!lower ---!, \mylst!lower slot! Adds a slot to the lower index, with no separator from any previous lower index. \item - \mylst!sep lower slot! + \mylst!sep lower ---!, \mylst!sep lower slot! Adds a slot to the lower index, separated from any previous lower index by the default separator. \item - \mylst!comma lower slot! + \mylst!comma lower ---!, \mylst!comma lower slot! Adds a slot to the lower index, separated from any previous lower @@ -4390,6 +4396,7 @@ In the following sections, we include the full list. By default, this is~\lstinline!{-}!. \item + \mylst!lower --- with other sep={$\$}!,\\ \mylst!lower slot with other sep={$\$}! @@ -4572,20 +4579,20 @@ In the following sections, we include the full list. any prevous upper left index by~\. \item - \mylst!upper left slot! + \mylst!upper left ---!, \mylst!upper left slot! Adds a slot to the upper left index, with no separator from any previous upper left index. \item - \mylst!sep upper left slot! + \mylst!sep upper left ---!, \mylst!sep upper left slot! Adds a slot to the upper left index, separated from any previous upper left index by the default separator. \item - \mylst!comma upper left slot! + \mylst!comma upper left ---!, \mylst!comma upper left slot! Adds a slot to the upper left index, separated from any previous upper left @@ -4598,6 +4605,7 @@ In the following sections, we include the full list. By default, this is~\lstinline!{-}!. \item + \mylst!upper left --- with other sep={$\$}!,\\ \mylst!upper left slot with other sep={$\$}! @@ -4780,20 +4788,20 @@ In the following sections, we include the full list. any prevous lower left index by~\. \item - \mylst!lower left slot! + \mylst!lower left ---!, \mylst!lower left slot! Adds a slot to the lower left index, with no separator from any previous lower left index. \item - \mylst!sep lower left slot! + \mylst!sep lower left ---!, \mylst!sep lower left slot! Adds a slot to the lower left index, separated from any previous lower left index by the default separator. \item - \mylst!comma lower left slot! + \mylst!comma lower left ---!, \mylst!comma lower left slot! Adds a slot to the lower left index, separated from any previous lower left @@ -4806,6 +4814,7 @@ In the following sections, we include the full list. By default, this is~\lstinline!{-}!. \item + \mylst!lower left --- with other sep={$\$}!,\\ \mylst!lower left slot with other sep={$\$}! @@ -4988,20 +4997,20 @@ In the following sections, we include the full list. any prevous \lstinline!d!-index by~\. \item - \mylst!d slot! + \mylst!d ---!, \mylst!d slot! Adds a slot to the \lstinline!d!-index, with no separator from any previous \lstinline!d!-index. \item - \mylst!sep d slot! + \mylst!sep d ---!, \mylst!sep d slot! Adds a slot to the \lstinline!d!-index, separated from any previous \lstinline!d!-index by the default separator. \item - \mylst!comma d slot! + \mylst!comma d ---!, \mylst!comma d slot! Adds a slot to the \lstinline!d!-index, separated from any previous \lstinline!d!-index @@ -5014,6 +5023,7 @@ In the following sections, we include the full list. By default, this is~\lstinline!{-}!. \item + \mylst!d --- with other sep={$\$}!, \mylst!d slot with other sep={$\$}! Adds a slot to the \lstinline!d!-index, separated @@ -5195,20 +5205,20 @@ In the following sections, we include the full list. any prevous \lstinline!i!-index by~\. \item - \mylst!i slot! + \mylst!i ---!, \mylst!i slot! Adds a slot to the \lstinline!i!-index, with no separator from any previous \lstinline!i!-index. \item - \mylst!sep i slot! + \mylst!sep i ---!, \mylst!sep i slot! Adds a slot to the \lstinline!i!-index, separated from any previous \lstinline!i!-index by the default separator. \item - \mylst!comma i slot! + \mylst!comma i ---!, \mylst!comma i slot! Adds a slot to the \lstinline!i!-index, separated from any previous \lstinline!i!-index @@ -5221,6 +5231,7 @@ In the following sections, we include the full list. By default, this is~\lstinline!{-}!. \item + \mylst!i --- with other sep={$\$}!, \mylst!i slot with other sep={$\$}! @@ -5445,14 +5456,14 @@ These are the predefined keys that work inside the argument. by a comma. \item - \mylst!slot! + \mylst!---!, \mylst!slot! Adds a slot to the argument, separated from any previous argument by the default separator. \item - \mylst!comma slot! + \mylst!comma ---!, \mylst!comma slot! Adds a slot to the argument, separated from any previous argument @@ -5480,6 +5491,7 @@ These are the predefined keys that work inside the argument. by~\. \item + \mylst!--- with other sep={$\$}!, \mylst!slot with other sep={$\$}! Adds a slot to the argument, separated diff --git a/macros/latex/contrib/semantex/stripsemantex.lua b/macros/latex/contrib/semantex/stripsemantex.lua index d0eb5d1963..30d4c58be6 100644 --- a/macros/latex/contrib/semantex/stripsemantex.lua +++ b/macros/latex/contrib/semantex/stripsemantex.lua @@ -1,311 +1,311 @@ --- aliases for protected environments -local assert, io_open - = assert, io.open - --- load the ltn12 module -local ltn12 = require("ltn12") - --- No more global accesses after this point -if _VERSION == "Lua 5.2" then _ENV = nil end - --- copy a file -copy_file = function(path_src, path_dst) - ltn12.pump.all( - ltn12.source.file(assert(io_open(path_src, "rb"))), - ltn12.sink.file(assert(io_open(path_dst, "wb"))) - ) -end - -openFile = function(file) - f = io.open(file, "r") - filecontent = f:read("*all") - local beginDocPosition = filecontent:find('\\begin{document}') - if not beginDocPosition then - tex.sprint( [[\begingroup\ExplSyntaxOn - \msg_fatal:nnn { stripsemantex } { begin_document_not_found } { ]] .. file .. [[ } - \endgroup]] ) - return - end - precontent = filecontent:sub(1,beginDocPosition-1) - content = filecontent:sub(beginDocPosition,-1) - f:close() -end - -closeFile = function(file) - f = io.open(file, "w") - f:write(precontent .. content) - f:close() -end - -removeStricttexFormatting = function(str) - -- We do this in case the package "stricttex" was used - str = str:gsub('numberZERO','0') - str = str:gsub('numberONE','1') - str = str:gsub('numberTWO','2') - str = str:gsub('numberTHREE','3') - str = str:gsub('numberFOUR','4') - str = str:gsub('numberFIVE','5') - str = str:gsub('numberSIX','6') - str = str:gsub('numberSEVEN','7') - str = str:gsub('numberEIGHT','8') - str = str:gsub('numberNINE','9') - str = str:gsub('symbolPRIME','\'') - return str -end - -addIDsToRegisters = function(str) - str = removeStricttexFormatting(str) - content = content:gsub('\\' .. str .. '([^%a])' ,'\\SemantexID{}\\' .. str .. '%1') - -- '%f[^%a]' does not work here, as it will not react if the last character of str is a number, - -- which stricttex allows. - -- Because of this choice, there will be an issue if you use stricttex and let - -- \ by a SemanTeX command and \' be a non-SemanTeX command. - -- So simply *don't do that*. -end - -removeSuperfluousIDs = function() - local p = content:find('([^\\]%%[^\n]-)\\SemantexID{}([^\n]-\n)') - while p do - content = content:gsub('([^\\]%%[^\n]-)\\SemantexID{}([^\n]-\n)','%1%2') - p = content:find('([^\\]%%[^\n]-)\\SemantexID{}([^\n]-\n)') - end - content = content:gsub('parent(%s*)=(%s*)\\SemantexID{}','parent%1=%2') - content = content:gsub('class(%s*)=(%s*)\\SemantexID{}','class%1=%2') - content = content:gsub('clone(%s*)=(%s*)\\SemantexID{}','clone%1=%2') - content = content:gsub('copy(%s*)=(%s*)\\SemantexID{}','copy%1=%2') - content = content:gsub('\\New(%w+)Class(%s*{?)\\SemantexID{}','\\New%1Class%2') - content = content:gsub('\\NewObject(%s*{?%s*)\\SemantexID{}(\\%w+%s*}?%s*{?%s*)\\SemantexID{}', '\\NewObject%1%2') - content = content:gsub('\\SetupClass(%s*{?%s*)\\SemantexID{}', '\\SetupClass%1') - content = content:gsub('\\SetupObject(%s*{?%s*)\\SemantexID{}', '\\SetupObject%1') -end - -addNumbersToIDs = function() - local n = 0 - local p,q = string.find(content,'\\SemantexID{}') - while q do - n = n + 1 - content = content:sub(1,q-1) .. n .. content:sub(q,-1) - p, q = string.find(content,'\\SemantexID{}') - end -end - -semantexIDluacommand = function(id, source, output) - local p, q = string.find(content, '\\SemantexID{' .. id .. '}') - - while p do - content = content:sub(1,p-1) .. content:sub(q+1,-1) - - source = source:gsub('%s+', '') - - -- We do this in case the package "stricttex" was used - source = removeStricttexFormatting(source) - - -- This is because #1's in the code becomes ##1 - -- in the .semtex file. - source = source:gsub('#(%d)', '%1') - - local length = source:len() - - local i = 1 - - local s - - while i <= length do - s = content:sub(p,p) - if s == source:sub(i,i) then - content = content:sub(1 , p-1) .. content:sub(p+1, -1) - i = i + 1 - elseif s:match('%s') then - content = content:sub(1, p-1) .. content:sub(p+1, -1) - elseif s == '%' then - content = content:sub(1 , p-1) .. content:sub(p,-1):gsub('%%.-\n','',1) - elseif s == '{' then - -- In this case, we remove the corresponding right brace, - -- once we find it - local netto = 1 -- The current brace group level - local q = 0 -- The position we have moved forward so far - while netto > 0 do - q = q + 1 - local e = content:sub(p+q,p+q) - if e == '}' then - netto = netto - 1 - elseif e == '{' then - netto = netto + 1 - elseif e == '\\' then - q = q + 1 - elseif e == '%' then - content = content:sub(1, p+q-1) .. content:sub(p+q,-1):gsub('%%.-\n','',1) - q = q - 1 - end - end - content = content:sub(1,p-1) .. content:sub(p+1,p+q-1) .. content:sub(p+q+1,-1) - elseif s == '<' and content:sub(p+1,p+2) == '[>' then - content = content:sub(1,p-1) .. content:sub(p+3,-1) - i = i + 1 - elseif s == '<' and content:sub(p+1,p+2) == ']>' then - content = content:sub(1,p-1) .. content:sub(p+3,-1) - i = i + 1 - elseif source:sub(i,i) == '{' then - -- In this case, we remove the corresponding right brace, - -- once we find it - local netto = 1 -- The current brace group level - local q = 0 -- The position we have moved forward so far - while netto > 0 do - q = q + 1 - local e = source:sub(i+q,i+q) - if e == '}' then - netto = netto - 1 - elseif e == '{' then - netto = netto + 1 - elseif e == '\\' then - q = q + 1 - -- there is no chance that the source contains an unescaped %, so we do not - -- check for this - end - end - source = source:sub(1,i-1) .. source:sub(i+1,i+q-1) .. source:sub(i+q+1,-1) - length = source:len() - else - tex.sprint( [[\begingroup\ExplSyntaxOn - \msg_fatal:nnnn { stripsemantex } { source_not_expected } { ]] .. source:sub(i,i) .. [[ } { ]] .. s .. [[ } - \endgroup]] ) - break - end - end - - - output = output:gsub('%s*\\sp {', '^{') - output = output:gsub('%s*\\sb {', '_{') - output = output:gsub('\\mathopen \\big ', '\\bigl') - output = output:gsub('\\mathclose \\big ', '\\bigr') - output = output:gsub('\\mathopen \\Big ', '\\Bigl') - output = output:gsub('\\mathclose \\Big ', '\\Bigr') - output = output:gsub('\\mathopen \\bigg ', '\\biggl') - output = output:gsub('\\mathclose \\bigg ', '\\biggr') - output = output:gsub('\\mathopen \\Bigg ', '\\Biggl') - output = output:gsub('\\mathclose \\Bigg ', '\\Biggr') - output = output:gsub('\\mathopen %(', '(') - output = output:gsub('\\mathclose %)', ')') - output = output:gsub('\\mathopen %[', '[') - output = output:gsub('\\mathclose %]', ']') - output = output:gsub('\\mathopen \\{', '\\{') - output = output:gsub('\\mathclose \\}', '\\}') - output = output:gsub('\\mathopen \\lbrace', '\\lbrace') - output = output:gsub('\\mathclose \\rbrace', '\\rbrace') - output = output:gsub('\\mathopen \\lbrack', '\\lbrack') - output = output:gsub('\\mathclose \\rbrack', '\\rbrack') - output = output:gsub('\\mathopen \\langle', '\\langle') - output = output:gsub('\\mathclose \\rangle', '\\rangle') - output = output:gsub('\\mathopen \\lvert', '\\lvert') - output = output:gsub('\\mathclose \\rvert', '\\rvert') - output = output:gsub('\\mathopen \\vert', '\\lvert') - output = output:gsub('\\mathclose \\vert', '\\rvert') - output = output:gsub('\\mathopen \\lVert', '\\lVert') - output = output:gsub('\\mathclose \\rVert', '\\rVert') - output = output:gsub('\\mathopen \\Vert', '\\lVert') - output = output:gsub('\\mathclose \\Vert', '\\rVert') - output = output:gsub('%^{\\prime }', '\'') - output = output:gsub('%^{\\prime \\prime }', '\'\'') - output = output:gsub('%^{\\prime \\prime \\prime }', '\'\'\'') - output = output:gsub('%^{\\prime \\prime \\prime \\prime }', '\'\'\'\'') - output = output:gsub('%^{\\prime \\prime \\prime \\prime \\prime }', '\'\'\'\'\'') - - output = output:gsub('%s+%f[{}%[%]%(%)%$,]','') - output = output:gsub('([}%]%)])%f[\\%w%+%-%(%[=]', '%1 ') - output = output:gsub(',',', ') - output = output:gsub('%s+$', '') - - - -- We now check whether the string we add will follow right - -- after a control sequence, causing it to be interpreted - -- as part of that control sequence. - -- Because we want to allow the user to use stricttex, we - -- check for alphanumerical control sequences rather than - -- just alphabetic ones. This could add spaces that - -- the user might not have intended, but it's a minor issue. - if output:sub(1,1):match('%w') and content:sub(1, p-1):match('\\%w+$') then - content = content:sub(1,p-1) .. ' ' .. output .. content:sub(p,-1) - else - content = content:sub(1,p-1) .. output .. content:sub(p,-1) - end - p, q = string.find(content, '\\SemantexID{' .. id .. '}') - end -end - -stripRemainingSemantexIDs = function() - content = content:gsub('\\SemantexID{%d+}', '') -end - -removeParenthesisCommands = function() - content = content:gsub('\\SemantexMathOpen \\bigg%s?', '\\biggl') - content = content:gsub('\\SemantexMathClose \\bigg%s?', '\\biggr') - content = content:gsub('\\SemantexMathOpen \\Bigg%s?', '\\Biggl') - content = content:gsub('\\SemantexMathClose \\Bigg%s?', '\\Biggr') - content = content:gsub('\\SemantexMathOpen \\big%s?', '\\bigl') - content = content:gsub('\\SemantexMathClose \\big%s?', '\\bigr') - content = content:gsub('\\SemantexMathOpen \\Big%s?', '\\Bigl') - content = content:gsub('\\SemantexMathClose \\Big%s?', '\\Bigr') - content = content:gsub('\\SemantexMathOpen{} %(', '(') - content = content:gsub('%s*\\SemantexMathClose{}%)', ')') - content = content:gsub('\\SemantexMathOpen{} %[', '[') - content = content:gsub('%s*\\SemantexMathClose{}%]', ']') - content = content:gsub('\\SemantexMathOpen{} \\{', '\\{') - content = content:gsub('%s*\\SemantexMathClose{} \\}', '\\}') - content = content:gsub('\\SemantexMathOpen{} \\lbrace', '\\lbrace') - content = content:gsub('\\SemantexMathClose{} \\rbrace', '\\rbrace') - content = content:gsub('\\SemantexMathOpen{} \\lbrack', '\\rbrack') - content = content:gsub('\\SemantexMathClose{} \\rbrack', '\\rbrack') - content = content:gsub('\\SemantexMathOpen{} \\langle', '\\langle') - content = content:gsub('\\SemantexMathClose{} \\rangle', '\\rangle') - content = content:gsub('\\SemantexMathOpen{} \\lvert', '\\lvert') - content = content:gsub('\\SemantexMathClose{} \\rvert', '\\rvert') - content = content:gsub('\\SemantexMathOpen{} \\vert', '\\lvert') - content = content:gsub('\\SemantexMathClose{} \\vert', '\\rvert') - content = content:gsub('\\SemantexMathOpen{} \\lVert', '\\lVert') - content = content:gsub('\\SemantexMathClose{} \\rVert', '\\rVert') - content = content:gsub('\\SemantexMathOpen{} \\Vert', '\\lVert') - content = content:gsub('\\SemantexMathClose{} \\Vert', '\\rVert') - content = content:gsub('\\SemantexMathOpen{} .%s?', '') - content = content:gsub('\\SemantexMathClose{} .%s?', '') - content = content:gsub('\\SemantexMathOpen{}', '\\mathopen ') - content = content:gsub('\\SemantexMathClose{}', '\\mathclose ') - content = content:gsub('\\SemantexMathOpenAuto%s?', '\\SemantexLeft') - content = content:gsub('\\SemantexMathCloseAuto%s?', '\\SemantexRight') - content = content:gsub('\\SemantexMathOpenNoPar%s?', '') - content = content:gsub('\\SemantexMathCloseNoPar%s?', '') - content = content:gsub('\\SemantexMathOpen%s?', '\\mathopen') - content = content:gsub('\\SemantexMathClose%s?', '\\mathclose') -end - -stripComments = function() - content = content:gsub('\\%%', '\\StripSemantexEscapedPercent') - content = content:gsub('(\\%w+)%%.-\n%s*', '%1 ') - content = content:gsub('%%.-\n%s*', '') - content = content:gsub('\\StripSemantexEscapedPercent', '\\%%') -end - -addSemtexPackageToFile = function() - content = [[% The following was added by "stripsemantex": - -\usepackage{semtex,leftindex,graphicx} - -\providecommand\SemantexLeft{% - \mathopen{}\mathclose\bgroup\left -} - -\providecommand\SemantexRight{% - \aftergroup\egroup\right -} - -\makeatletter -\DeclareRobustCommand\SemantexBullet{% - \mathord{\mathpalette\SemantexBullet@{0.5}}% -} -\newcommand\SemantexBullet@[2]{% - \vcenter{\hbox{\scalebox{#2}{$\m@th#1\bullet$}}}% -} -\DeclareRobustCommand\SemantexDoubleBullet{\SemantexBullet \SemantexBullet} -\makeatother - -]] .. content +-- aliases for protected environments +local assert, io_open + = assert, io.open + +-- load the ltn12 module +local ltn12 = require("ltn12") + +-- No more global accesses after this point +if _VERSION == "Lua 5.2" then _ENV = nil end + +-- copy a file +copy_file = function(path_src, path_dst) + ltn12.pump.all( + ltn12.source.file(assert(io_open(path_src, "rb"))), + ltn12.sink.file(assert(io_open(path_dst, "wb"))) + ) +end + +openFile = function(file) + f = io.open(file, "r") + filecontent = f:read("*all") + local beginDocPosition = filecontent:find('\\begin{document}') + if not beginDocPosition then + tex.sprint( [[\begingroup\ExplSyntaxOn + \msg_fatal:nnn { stripsemantex } { begin_document_not_found } { ]] .. file .. [[ } + \endgroup]] ) + return + end + precontent = filecontent:sub(1,beginDocPosition-1) + content = filecontent:sub(beginDocPosition,-1) + f:close() +end + +closeFile = function(file) + f = io.open(file, "w") + f:write(precontent .. content) + f:close() +end + +removeStricttexFormatting = function(str) + -- We do this in case the package "stricttex" was used + str = str:gsub('numberZERO','0') + str = str:gsub('numberONE','1') + str = str:gsub('numberTWO','2') + str = str:gsub('numberTHREE','3') + str = str:gsub('numberFOUR','4') + str = str:gsub('numberFIVE','5') + str = str:gsub('numberSIX','6') + str = str:gsub('numberSEVEN','7') + str = str:gsub('numberEIGHT','8') + str = str:gsub('numberNINE','9') + str = str:gsub('symbolPRIME','\'') + return str +end + +addIDsToRegisters = function(str) + str = removeStricttexFormatting(str) + content = content:gsub('\\' .. str .. '([^%a])' ,'\\SemantexID{}\\' .. str .. '%1') + -- '%f[^%a]' does not work here, as it will not react if the last character of str is a number, + -- which stricttex allows. + -- Because of this choice, there will be an issue if you use stricttex and let + -- \ by a SemanTeX command and \' be a non-SemanTeX command. + -- So simply *don't do that*. +end + +removeSuperfluousIDs = function() + local p = content:find('([^\\]%%[^\n]-)\\SemantexID{}([^\n]-\n)') + while p do + content = content:gsub('([^\\]%%[^\n]-)\\SemantexID{}([^\n]-\n)','%1%2') + p = content:find('([^\\]%%[^\n]-)\\SemantexID{}([^\n]-\n)') + end + content = content:gsub('parent(%s*)=(%s*)\\SemantexID{}','parent%1=%2') + content = content:gsub('class(%s*)=(%s*)\\SemantexID{}','class%1=%2') + content = content:gsub('clone(%s*)=(%s*)\\SemantexID{}','clone%1=%2') + content = content:gsub('copy(%s*)=(%s*)\\SemantexID{}','copy%1=%2') + content = content:gsub('\\New(%w+)Class(%s*{?)\\SemantexID{}','\\New%1Class%2') + content = content:gsub('\\NewObject(%s*{?%s*)\\SemantexID{}(\\%w+%s*}?%s*{?%s*)\\SemantexID{}', '\\NewObject%1%2') + content = content:gsub('\\SetupClass(%s*{?%s*)\\SemantexID{}', '\\SetupClass%1') + content = content:gsub('\\SetupObject(%s*{?%s*)\\SemantexID{}', '\\SetupObject%1') +end + +addNumbersToIDs = function() + local n = 0 + local p,q = string.find(content,'\\SemantexID{}') + while q do + n = n + 1 + content = content:sub(1,q-1) .. n .. content:sub(q,-1) + p, q = string.find(content,'\\SemantexID{}') + end +end + +semantexIDluacommand = function(id, source, output) + local p, q = string.find(content, '\\SemantexID{' .. id .. '}') + + while p do + content = content:sub(1,p-1) .. content:sub(q+1,-1) + + source = source:gsub('%s+', '') + + -- We do this in case the package "stricttex" was used + source = removeStricttexFormatting(source) + + -- This is because #1's in the code becomes ##1 + -- in the .semtex file. + source = source:gsub('#(%d)', '%1') + + local length = source:len() + + local i = 1 + + local s + + while i <= length do + s = content:sub(p,p) + if s == source:sub(i,i) then + content = content:sub(1 , p-1) .. content:sub(p+1, -1) + i = i + 1 + elseif s:match('%s') then + content = content:sub(1, p-1) .. content:sub(p+1, -1) + elseif s == '%' then + content = content:sub(1 , p-1) .. content:sub(p,-1):gsub('%%.-\n','',1) + elseif s == '{' then + -- In this case, we remove the corresponding right brace, + -- once we find it + local netto = 1 -- The current brace group level + local q = 0 -- The position we have moved forward so far + while netto > 0 do + q = q + 1 + local e = content:sub(p+q,p+q) + if e == '}' then + netto = netto - 1 + elseif e == '{' then + netto = netto + 1 + elseif e == '\\' then + q = q + 1 + elseif e == '%' then + content = content:sub(1, p+q-1) .. content:sub(p+q,-1):gsub('%%.-\n','',1) + q = q - 1 + end + end + content = content:sub(1,p-1) .. content:sub(p+1,p+q-1) .. content:sub(p+q+1,-1) + elseif s == '<' and content:sub(p+1,p+2) == '[>' then + content = content:sub(1,p-1) .. content:sub(p+3,-1) + i = i + 1 + elseif s == '<' and content:sub(p+1,p+2) == ']>' then + content = content:sub(1,p-1) .. content:sub(p+3,-1) + i = i + 1 + elseif source:sub(i,i) == '{' then + -- In this case, we remove the corresponding right brace, + -- once we find it + local netto = 1 -- The current brace group level + local q = 0 -- The position we have moved forward so far + while netto > 0 do + q = q + 1 + local e = source:sub(i+q,i+q) + if e == '}' then + netto = netto - 1 + elseif e == '{' then + netto = netto + 1 + elseif e == '\\' then + q = q + 1 + -- there is no chance that the source contains an unescaped %, so we do not + -- check for this + end + end + source = source:sub(1,i-1) .. source:sub(i+1,i+q-1) .. source:sub(i+q+1,-1) + length = source:len() + else + tex.sprint( [[\begingroup\ExplSyntaxOn + \msg_fatal:nnnn { stripsemantex } { source_not_expected } { ]] .. source:sub(i,i) .. [[ } { ]] .. s .. [[ } + \endgroup]] ) + break + end + end + + + output = output:gsub('%s*\\sp {', '^{') + output = output:gsub('%s*\\sb {', '_{') + output = output:gsub('\\mathopen \\big ', '\\bigl') + output = output:gsub('\\mathclose \\big ', '\\bigr') + output = output:gsub('\\mathopen \\Big ', '\\Bigl') + output = output:gsub('\\mathclose \\Big ', '\\Bigr') + output = output:gsub('\\mathopen \\bigg ', '\\biggl') + output = output:gsub('\\mathclose \\bigg ', '\\biggr') + output = output:gsub('\\mathopen \\Bigg ', '\\Biggl') + output = output:gsub('\\mathclose \\Bigg ', '\\Biggr') + output = output:gsub('\\mathopen %(', '(') + output = output:gsub('\\mathclose %)', ')') + output = output:gsub('\\mathopen %[', '[') + output = output:gsub('\\mathclose %]', ']') + output = output:gsub('\\mathopen \\{', '\\{') + output = output:gsub('\\mathclose \\}', '\\}') + output = output:gsub('\\mathopen \\lbrace', '\\lbrace') + output = output:gsub('\\mathclose \\rbrace', '\\rbrace') + output = output:gsub('\\mathopen \\lbrack', '\\lbrack') + output = output:gsub('\\mathclose \\rbrack', '\\rbrack') + output = output:gsub('\\mathopen \\langle', '\\langle') + output = output:gsub('\\mathclose \\rangle', '\\rangle') + output = output:gsub('\\mathopen \\lvert', '\\lvert') + output = output:gsub('\\mathclose \\rvert', '\\rvert') + output = output:gsub('\\mathopen \\vert', '\\lvert') + output = output:gsub('\\mathclose \\vert', '\\rvert') + output = output:gsub('\\mathopen \\lVert', '\\lVert') + output = output:gsub('\\mathclose \\rVert', '\\rVert') + output = output:gsub('\\mathopen \\Vert', '\\lVert') + output = output:gsub('\\mathclose \\Vert', '\\rVert') + output = output:gsub('%^{\\prime }', '\'') + output = output:gsub('%^{\\prime \\prime }', '\'\'') + output = output:gsub('%^{\\prime \\prime \\prime }', '\'\'\'') + output = output:gsub('%^{\\prime \\prime \\prime \\prime }', '\'\'\'\'') + output = output:gsub('%^{\\prime \\prime \\prime \\prime \\prime }', '\'\'\'\'\'') + + output = output:gsub('%s+%f[{}%[%]%(%)%$,]','') + output = output:gsub('([}%]%)])%f[\\%w%+%-%(%[=]', '%1 ') + output = output:gsub(',',', ') + output = output:gsub('%s+$', '') + + + -- We now check whether the string we add will follow right + -- after a control sequence, causing it to be interpreted + -- as part of that control sequence. + -- Because we want to allow the user to use stricttex, we + -- check for alphanumerical control sequences rather than + -- just alphabetic ones. This could add spaces that + -- the user might not have intended, but it's a minor issue. + if output:sub(1,1):match('%w') and content:sub(1, p-1):match('\\%w+$') then + content = content:sub(1,p-1) .. ' ' .. output .. content:sub(p,-1) + else + content = content:sub(1,p-1) .. output .. content:sub(p,-1) + end + p, q = string.find(content, '\\SemantexID{' .. id .. '}') + end +end + +stripRemainingSemantexIDs = function() + content = content:gsub('\\SemantexID{%d+}', '') +end + +removeParenthesisCommands = function() + content = content:gsub('\\SemantexMathOpen \\bigg%s?', '\\biggl') + content = content:gsub('\\SemantexMathClose \\bigg%s?', '\\biggr') + content = content:gsub('\\SemantexMathOpen \\Bigg%s?', '\\Biggl') + content = content:gsub('\\SemantexMathClose \\Bigg%s?', '\\Biggr') + content = content:gsub('\\SemantexMathOpen \\big%s?', '\\bigl') + content = content:gsub('\\SemantexMathClose \\big%s?', '\\bigr') + content = content:gsub('\\SemantexMathOpen \\Big%s?', '\\Bigl') + content = content:gsub('\\SemantexMathClose \\Big%s?', '\\Bigr') + content = content:gsub('\\SemantexMathOpen{} %(', '(') + content = content:gsub('%s*\\SemantexMathClose{}%)', ')') + content = content:gsub('\\SemantexMathOpen{} %[', '[') + content = content:gsub('%s*\\SemantexMathClose{}%]', ']') + content = content:gsub('\\SemantexMathOpen{} \\{', '\\{') + content = content:gsub('%s*\\SemantexMathClose{} \\}', '\\}') + content = content:gsub('\\SemantexMathOpen{} \\lbrace', '\\lbrace') + content = content:gsub('\\SemantexMathClose{} \\rbrace', '\\rbrace') + content = content:gsub('\\SemantexMathOpen{} \\lbrack', '\\rbrack') + content = content:gsub('\\SemantexMathClose{} \\rbrack', '\\rbrack') + content = content:gsub('\\SemantexMathOpen{} \\langle', '\\langle') + content = content:gsub('\\SemantexMathClose{} \\rangle', '\\rangle') + content = content:gsub('\\SemantexMathOpen{} \\lvert', '\\lvert') + content = content:gsub('\\SemantexMathClose{} \\rvert', '\\rvert') + content = content:gsub('\\SemantexMathOpen{} \\vert', '\\lvert') + content = content:gsub('\\SemantexMathClose{} \\vert', '\\rvert') + content = content:gsub('\\SemantexMathOpen{} \\lVert', '\\lVert') + content = content:gsub('\\SemantexMathClose{} \\rVert', '\\rVert') + content = content:gsub('\\SemantexMathOpen{} \\Vert', '\\lVert') + content = content:gsub('\\SemantexMathClose{} \\Vert', '\\rVert') + content = content:gsub('\\SemantexMathOpen{} .%s?', '') + content = content:gsub('\\SemantexMathClose{} .%s?', '') + content = content:gsub('\\SemantexMathOpen{}', '\\mathopen ') + content = content:gsub('\\SemantexMathClose{}', '\\mathclose ') + content = content:gsub('\\SemantexMathOpenAuto%s?', '\\SemantexLeft') + content = content:gsub('\\SemantexMathCloseAuto%s?', '\\SemantexRight') + content = content:gsub('\\SemantexMathOpenNoPar%s?', '') + content = content:gsub('\\SemantexMathCloseNoPar%s?', '') + content = content:gsub('\\SemantexMathOpen%s?', '\\mathopen') + content = content:gsub('\\SemantexMathClose%s?', '\\mathclose') +end + +stripComments = function() + content = content:gsub('\\%%', '\\StripSemantexEscapedPercent') + content = content:gsub('(\\%w+)%%.-\n%s*', '%1 ') + content = content:gsub('%%.-\n%s*', '') + content = content:gsub('\\StripSemantexEscapedPercent', '\\%%') +end + +addSemtexPackageToFile = function() + content = [[% The following was added by "stripsemantex": + +\usepackage{semtex,leftindex,graphicx} + +\providecommand\SemantexLeft{% + \mathopen{}\mathclose\bgroup\left +} + +\providecommand\SemantexRight{% + \aftergroup\egroup\right +} + +\makeatletter +\DeclareRobustCommand\SemantexBullet{% + \mathord{\mathpalette\SemantexBullet@{0.5}}% +} +\newcommand\SemantexBullet@[2]{% + \vcenter{\hbox{\scalebox{#2}{$\m@th#1\bullet$}}}% +} +\DeclareRobustCommand\SemantexDoubleBullet{\SemantexBullet \SemantexBullet} +\makeatother + +]] .. content end \ No newline at end of file diff --git a/macros/latex/contrib/semantex/stripsemantex.sty b/macros/latex/contrib/semantex/stripsemantex.sty index 5a98435644..1778ac29ec 100644 --- a/macros/latex/contrib/semantex/stripsemantex.sty +++ b/macros/latex/contrib/semantex/stripsemantex.sty @@ -1,5 +1,5 @@ \RequirePackage{xparse} -\ProvidesExplPackage{stripsemantex}{2022/10/04}{0.522}{} +\ProvidesExplPackage{stripsemantex}{2022/12/03}{0.523}{} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % diff --git a/macros/luatex/generic/pdfextra/examples/pdfextra-example.pdf b/macros/luatex/generic/pdfextra/examples/pdfextra-example.pdf index 24ca714a75..1cf1a84dee 100644 Binary files a/macros/luatex/generic/pdfextra/examples/pdfextra-example.pdf and b/macros/luatex/generic/pdfextra/examples/pdfextra-example.pdf differ diff --git a/macros/luatex/generic/pdfextra/pdfextra-doc.pdf b/macros/luatex/generic/pdfextra/pdfextra-doc.pdf index 9534e46bfa..a05e591fe1 100644 Binary files a/macros/luatex/generic/pdfextra/pdfextra-doc.pdf and b/macros/luatex/generic/pdfextra/pdfextra-doc.pdf differ diff --git a/macros/luatex/generic/pdfextra/pdfextra.opm b/macros/luatex/generic/pdfextra/pdfextra.opm index bccf096484..9d47d9c02b 100644 --- a/macros/luatex/generic/pdfextra/pdfextra.opm +++ b/macros/luatex/generic/pdfextra/pdfextra.opm @@ -1,5 +1,9 @@ -% vim: tw=80 -\_def\_pdfextra_version{0.2} +% pdfextra package +% Michal Vlasák +% https://github.com/vlasakm/pdfextra +% Zero-Clause BSD license + +\_def\_pdfextra_version{0.3} \_codedecl \RM {Extra PDF features (v\_pdfextra_version)} \_namespace{pdfextra} @@ -739,7 +743,7 @@ % file attachment \_def\.embeddedfiles{} -\_def\.attach[#1]{\.isfiledefined{\.name}\_iftrue +\_def\.attach[#1]{\.isfiledefined{#1}\_iftrue \.xaddto\.embeddedfiles{(#1) \.cs{filespec:#1} }\_fi } \_nspublic \attach ; @@ -1724,5 +1728,15 @@ \.mimetype{mp4}{video/mp4} \.mimetype{webm}{video/webm} +\.mimetype{tex}{application/x-tex} + + +% more or less legacy formats +\.mimetype{au}{audio/basic} +\.mimetype{aiff}{audio/x-aiff} +\.mimetype{mov}{video/quicktime} +\.mimetype{mpg}{video/mpeg} +\.mimetype{wmv}{video/x-ms-wmv} + \_endnamespace \_endcode diff --git a/macros/luatex/generic/pdfextra/pdfextra.tex b/macros/luatex/generic/pdfextra/pdfextra.tex index cbbeca0c17..a34a08b5aa 100644 --- a/macros/luatex/generic/pdfextra/pdfextra.tex +++ b/macros/luatex/generic/pdfextra/pdfextra.tex @@ -41,6 +41,7 @@ \_else \_resetnamespace{#1}\_fi } \_def\_resetnamespace #1{% + \_unless \_ifx \_pkglabel\_empty \_endnamespace \_fi \_ea \_gdef \_csname namesp:#1\_endcsname {}% \_gdef \_pkglabel{_#1}% \_directlua{ @@ -156,13 +157,13 @@ \_private \string \newtoks \romannumeral ; +\_newtoks\_opt \_def\_optdef#1[#2]{% - \_def#1{\_opt={#2}\_isnextchar[{\_cs{_oA:\_string#1}}{\_cs{_oB:\_string#1}}}% - \_sdef{_oA:\_string#1}[##1]{\_opt={##1}\_cs{_oB:\_string#1\_nospaceafter}}% - \_sdef{_oB:\_string#1\_nospaceafter}% + \_def#1{\_opt={#2}\_isnextchar[{\_cs{_oA:\_csstring#1}}{\_cs{_oB:\_csstring#1}}}% + \_sdef{_oA:\_csstring#1}[##1]{\_opt={##1}\_cs{_oB:\_csstring#1\_nospaceafter}}% + \_sdef{_oB:\_csstring#1\_nospaceafter}% } -\_def\_nospaceafter#1{\_ea#1\_romannumeral-`\.} -\_newtoks\_opt +\_def\_nospaceafter#1{\_ea#1\_romannumeral-`\.\_noexpand} \_private \noexpand \catcode \toksapp ; @@ -172,7 +173,7 @@ \_catcode`!=3 \_catcode`?=3 \_def\_replstring #1#2#3{% \replstring #1{stringA}{stringB} \_long\_def\_replacestringsA##1#2{\_tmptoks{##1}\_replacestringsB}% - \_long\_def\_replacestringsB##1#2{\_ifx!##1\_relax \_else \_toksapp\_tmptoks{#3##1}% + \_long\_def\_replacestringsB##1#2{\_ifx!##1\_relax \_else \_tmptoks\_ea{\_the\_tmptoks#3##1}% \_ea\_replacestringsB\_fi}% \_ea\_replacestringsA #1?#2!#2% \_long\_def\_replacestringsA##1?{\_tmptoks{##1}\_edef#1{\_the\_tmptoks}}% @@ -233,16 +234,23 @@ \_immediate\_openout\_reffile={\_jobname.ref}\_relax \_gdef\_wref ##1##2{\_write\_reffile{\_bslash\_csstring##1##2}}% \_immediate\_write\_reffile {\_pcent\_pcent\_space pdfextra - REF file}% + \_ifx\_refdecldata\_empty \_else \_refdeclwrite \_fi \_gdef\_openref{}% } \_def\_ewref #1#2{\_edef\_ewrefA{#2}\_ea\_wref\_ea#1\_ea{\_ewrefA}} \_private \ifnum ; -\_def\_refdecl{\_bgroup \_catcode`\#=12 \_refdeclA} -\_def\_refdeclA #1{\_egroup\_openref - \_immediate\_write\_reffile {\_pcent\_space \_string \refdecl:}% - \_immediate\_write\_reffile {\_detokenize{#1}}% +\_def\_refdecldata{} +\_def\_refdecl{\_bgroup \_catcode`\#=12 \_catcode`\\=12 \_catcode`\ =12 \_refdeclA} +\_def\_refdeclA#1{\_egroup + \_ifx\_refdecldata\_empty\_else \_global\_addto\_refdecldata{^^J}\_fi + \_global\_addto\_refdecldata{#1}% + \_ifx\_openref\_empty \_refdeclwrite \_fi +} +\_def\_refdeclwrite{% + \_immediate\_write\_reffile{\_pcent\_space \_string\refdecl:^^J\_detokenize\_ea{\_refdecldata}}% + \_gdef\_refdecldata{}% } % @@ -267,7 +275,7 @@ % modified \_def\_pdfunidef#1#2{% \_edef\_tmp{#2}% - \_def#1{\_directlua{ + \_edef#1{\_directlua{ local str = token.scan_string() local out = { " Dec 2022: + New math.opm package: doing math more comfortable. + The math.opm package can be a package template for macro writers. + \docgen for printing doucumantation of packages introduced. + unimath control sequences are almost all declared by \chardef, no \mathchardef. + \casesof, \currfile, \nospaceafter (tools for macro programmers) introduced. + \setpos, \posx, \posy moved from OpTeX trick to the format. + \sfont, \ufont introduced. + More robust \caption parameter. + Lato, Kurier, Iwona font families registered. + Minor more improvements and bug fixing. <1.08> Aug 2022: Sorting rules for German, French, Polish, Hungarian, ... added. Font files for Montserrat, STIX, XITS, STIXtwo, Overlock added. diff --git a/macros/optex/base/alloc.opm b/macros/optex/base/alloc.opm index ae77d3074e..d4f823fec4 100644 --- a/macros/optex/base/alloc.opm +++ b/macros/optex/base/alloc.opm @@ -121,10 +121,9 @@ \_doc ----------------------------- A few registers are initialized like in plain\TeX/. We absolutely don't support the `@`category dance, so `\z@skip` - `\z@`, `\p@` etc. are not defined in \OpTeX/. If you need such - control sequences then you can initialize them by `\load[plain-at]`. + `\z@`, `\p@` etc. are defined but not recommended in \OpTeX/. - Only the \`\_zo` and \`\_zoskip` (equivalents to `\z@` and `\z@skip`) + The \`\_zo` and \`\_zoskip` (equivalents to `\z@` and `\z@skip`) are declared here and used in some internal macros of \OpTeX/ for improving speed. \_cod ----------------------------- diff --git a/macros/optex/base/basic-macros.opm b/macros/optex/base/basic-macros.opm index 2e8c98d6e3..ae5c833140 100644 --- a/macros/optex/base/basic-macros.opm +++ b/macros/optex/base/basic-macros.opm @@ -1,6 +1,6 @@ %% This is part of the OpTeX project, see http://petr.olsak.net/optex -\_codedecl \sdef {Basic macros for OpTeX <2021-07-20>} % preloaded in format +\_codedecl \sdef {Basic macros for OpTeX <2022-11-22>} % preloaded in format \_doc ------------------------------ \`\bgroup`, \`\egroup`, \`\empty`, \`\space`, and \`\null` @@ -77,11 +77,15 @@ \_public \cs \trycs ; \_doc ------------------------------ - \`\addto` `\macro{}` adds `` to your `\macro`, which must be defined. + \`\addto` `\macro{}` adds `` to your `\macro`, which must be defined.\nl + \`\aheadto` `\macro{}` defines `\macro` as `` followed by the + original `\macro` body. \_cod ------------------------------ \_long\_def \_addto #1#2{\_ea\_def\_ea#1\_ea{#1#2}} -\_public \addto ; +\_long\_def \_aheadto #1#2{\_edef#1{\_unexpanded{#2}\_unexpanded\_ea{#1}}} + +\_public \addto \aheadto ; \_doc ----------------------------- \`\incr``` increases `` by one globally. @@ -112,6 +116,15 @@ \_def\_tracingall{\_tracingonline=1 \_loggingall} \_public \loggingall \tracingall ; + \_doc ------------------------ + The `\optexversion` and `\fmtname` are defined in the `optex.ini` file. + Maybe, somebody will need a private version of these macros. + We add \`\_banner` used in `\everyjob` and in \~`\docgen` + \_cod ------------------------ + +\_def\_banner {This is OpTeX (Olsak's Plain TeX), version <\_optexversion>}% +\_private \optexversion \fmtname ; + \_doc ------------------------------ \`\_byehook` is used in the \^`\bye` macro. Write a warning if the user did not load a Unicode Font. @@ -129,6 +142,9 @@ \_endcode % ------------------------------------- +2022-11-22: \_banner definition moved here +2022-11-18: \ahead introduced +2022-10-29: \_fin introduced 2021-07-20: \_unresovedrefs removed from \_byehook 2021-07-18: \_byehook: checking `ref` file consistency added. 2021-05-16: \slet reimplemented (to allow \slet{foo}{undefined}). diff --git a/macros/optex/base/bib-simple.opm b/macros/optex/base/bib-simple.opm index fe1730ba67..3af9a1b927 100644 --- a/macros/optex/base/bib-simple.opm +++ b/macros/optex/base/bib-simple.opm @@ -1,6 +1,6 @@ %% This is part of the OpTeX project, see http://petr.olsak.net/optex -\_codedecl \_undefined {BIB style (simple) <2022-05-10>} % loaded on demand by \usebib +\_codedecl \_undefined {BIB style (simple) <2022-10-10>} % loaded on demand by \usebib \_ifx\_optexbibstyle\_undefined \_errmessage {This file can be read by: \_string\usebib/? (simple) bibfiles command only} @@ -36,6 +36,7 @@ } \_def\_preurl{\_hfil\_break} +\_def\_Inclause{In:~} % Non-standard fieldnames: @@ -56,9 +57,9 @@ \_setbibmark } \_sdef{_print:book}{% - \_bprinta [!author] {*\:\ }{\_bibwarning}% - \_bprintb [title] {{\_em##1}.\ }{\_bibwarning}% - \_bprinta [edition] {*~\_mtext{bib.edition}.\ }{}% + \_bprinta [!author] {*.\ }{\_bibwarning}% + \_bprintb [title] {{\_em##1}\:\ }{\_bibwarning}% + \_bprinta [edition] {*\_mtext{bib.edition}\ }{}% \_bprinta [address] {*: }{\_bibwarning}% \_bprinta [publisher] {*, }{\_bibwarning}% \_bprinta [year] {*.\ }{\_bibwarning}% @@ -66,21 +67,21 @@ \_bprintb [url] {\_preurl\_url{##1}. }{}% } \_sdef{_print:article}{% - \_bprinta [!author] {*\:\ }{\_bibwarning}% - \_bprinta [title] {*.\ }{\_bibwarning}% - \_bprintb [journal] {{\_em##1}.\ }{\_bibwarning}% - \_bprinta [year] {*, }{}% + \_bprinta [!author] {*.\ }{\_bibwarning}% + \_bprinta [title] {*\:\ }{\_bibwarning}% + \_bprintb [journal] {{\_em##1}\:\ }{\_bibwarning}% + \_bprinta [year] {*\_bprintv[volume,number,pages]{,}{.} }{}% \_bprinta [volume] {* }{}% - \_bprinta [number] {(*), }{}% + \_bprinta [number] {(*)\_bprintv[pages]{,}{.} }{}% \_bprinta [pages] {*.\ }{}% \_bprintb [doi] {DOI~\_ulink[http://dx.doi.org/##1]{##1}.\ }{}% } \_sdef{_print:inbook}{% - \_bprinta [!author] {*\:\ }{\_bibwarning}% - \_bprintb [title] {{\_em##1.}\ }{\_bibwarning}% - In:~% + \_bprinta [!author] {*.\ }{\_bibwarning}% + \_bprintb [title] {{\_em##1}\:\ }{\_bibwarning}% + \_Inclause \_bprinta [!editor] {*,~eds.\ }{}% - \_bprintb [booktitle] {{\_em##1}.\ }{\_bibwarning}% + \_bprintb [booktitle] {{\_em##1}\:\ }{\_bibwarning}% \_bprinta [address] {*: }{\_bibwarning}% \_bprinta [publisher] {*, }{\_bibwarning}% \_bprinta [year] {*.\ }{\_bibwarning}% @@ -92,12 +93,12 @@ \_slet{_print:inproceedings}{_print:inbook} \_sdef{_print:incolection}{% - \_bprinta [!author] {*\:\ }{\_bibwarning}% - \_bprintb [title] {{\_em##1}.\ }{\_bibwarning}% + \_bprinta [!author] {*.\ }{\_bibwarning}% + \_bprintb [title] {{\_em##1}\:\ }{\_bibwarning}% \_bprinta [crossreff] {In~\_cite[*]. }{% \_bprinta [booktitle] {*. }{\_bibwarning}% \_bprinta [!editor] {*,~eds.\ }{\_bibwarning}% - \_bprinta [edition] {*~\_mtext{bib.edition}.\ }{\_bibwarning}% + \_bprinta [edition] {*\_mtext{bib.edition}\ }{\_bibwarning}% \_bprinta [address] {*: }{\_bibwarning}% \_bprinta [publisher] {*, }{\_bibwarning}% \_bprinta [year] {*.\ }{\_bibwarning}% @@ -105,9 +106,9 @@ \_bprintb [url] {\_preurl\_url{####1}. }{}}% } \_sdef{_print:conference}{% - \_bprinta [!author] {*\:\ }{\_bibwarning}% + \_bprinta [!author] {*.\ }{\_bibwarning}% \_bprintb [title] {{\_em##1}\:\ }{\_bibwarning}% - \_bprinta [edition] {*~\_mtext{bib.edition}.\ }{}% + \_bprinta [edition] {*\_mtext{bib.edition}\ }{}% \_bprinta [address] {*: }{\_bibwarning}% \_bprinta [publisher] {*, }{\_bibwarning}% \_bprinta [year] {*.\ }{\_bibwarning}% @@ -115,7 +116,7 @@ \_bprintb [url] {\_preurl\_url{##1}. }{}% } \_sdef{_print:thesis}{% - \_bprinta [!author] {*\:\ }{\_bibwarning}% + \_bprinta [!author] {*.\ }{\_bibwarning}% \_bprintb [title] {{\_em##1}\:\ }{\_bibwarning}% \_bprinta [type] {*,\ }{\_bibwarning}% \_bprinta [school] {*.\ }{}% @@ -124,31 +125,31 @@ \_bprintb [url] {\_preurl\_url{##1}. }{}% } \_sdef{_print:proceedings}{% - \_bprinta [!author] {*\:\ }{\_bibwarning}% + \_bprinta [!author] {*.\ }{\_bibwarning}% \_bprintb [title] {{\_em##1}\:\ }{\_bibwarning}% \_bprinta [publisher] {*.\ }{% \_bprinta [organization] {*.\ }{\_bibwarning}}% } \_sdef{_print:techreport}{% - \_bprinta [!author] {*\:\ }{\_bibwarning}% + \_bprinta [!author] {*.\ }{\_bibwarning}% \_bprintb [title] {{\_em##1}\:\ }{\_bibwarning}% \_mtext{bib.techreport}. \_bprinta [institution] {*.\ }{}% } \_sdef{_print:booklet}{% - \_bprinta [!author] {*\:\ }{\_bibwarning}% + \_bprinta [!author] {*.\ }{\_bibwarning}% \_bprintb [title] {{\_em##1}\:\ }{\_bibwarning}% \_bprinta [howpublished] {*.\ }{\_bibwarning}% } \_sdef{_print:manual}{% - \_bprinta [!author] {*\:\ }{}% + \_bprinta [!author] {*.\ }{}% \_bprintb [title] {{\_em##1}\:\ }{\_bibwarning}% \_bprinta [year] {*.\ }{}% \_bprinta [institution] {*.\ }{}% \_bprintb [url] {\_preurl\_url{##1}. }{}% } \_sdef{_print:misc}{% - \_bprinta [!author] {*\:\ }{}% + \_bprinta [!author] {*.\ }{}% \_bprintb [title] {{\_em##1}\:\ }{}% \_bprinta [howpublished] {*.\ }{}% \_bprinta [institution] {*.\ }{}% diff --git a/macros/optex/base/cite-bib.opm b/macros/optex/base/cite-bib.opm index adef0eaef8..9dc32a2632 100644 --- a/macros/optex/base/cite-bib.opm +++ b/macros/optex/base/cite-bib.opm @@ -232,7 +232,7 @@ \_cod ----------------------------- \_def\_bib[#1]{\_def\_tmp{\_isnextchar={\_bibA[#1]}{\_bibmark={}\_bibB[#1]}}% - \_ea\_tmp\_romannumeral-`\.} % ignore optional space + \_nospaceafter\_tmp} % ignore optional space \_def\_bibA[#1]=#2{\_bibmark={#2}\_bibB[#1]} \_def\_bibB[#1]{\_par \_bibskip \_bibgl\_advance\_bibnum by1 diff --git a/macros/optex/base/doc.opm b/macros/optex/base/doc.opm index bde1dcc848..dc5d037e72 100644 --- a/macros/optex/base/doc.opm +++ b/macros/optex/base/doc.opm @@ -1,6 +1,6 @@ %% This is part of the OpTeX project, see http://petr.olsak.net/optex -\_codedecl \printdoc {Macros for documentation printing <2022-07-01>} % loaded on demand by \load[doc] +\_codedecl \printdoc {Macros for documentation printing <2022-11-21>} % loaded on demand by \load[doc] \_doc ----------------------------- General decalarations. @@ -11,8 +11,10 @@ \_let \mlinkcolor=\Red % main doc. points \_let \ulinkcolor=\Blue % user doc. points \_let \fnamecolor=\Brown % file names in listing headers -\_def \bgverbcolor {\_setcmykcolor{0 0 .3 .03}} % background for listings -\_hyperlinks \Green \Green +\_def \bgverbcolor {\_setcmykcolor{0 0 .3 .03}} % background for listings +\_def \outlinkcolor {\_setcmykcolor{1 0 1 .2}} % green for outerlinks +\_def \inlinkcolor {\_setcmykcolor{0 1 0 .1}} % magenta for internal links +\_hyperlinks \inlinkcolor \outlinkcolor \_enlang \_enquotes @@ -39,7 +41,7 @@ \_doc ----------------------------- The listing mode is implemented here. The \`\maxlines` is maximal lines of code printed in the listing mode. - The \`\_catcodedot` sets dot as letter in listngs (for package + The \code{\\catcode`\\.=11} sets dot as letter in listngs (for package documentation where `\.foo` sequeces exist). \_cod ----------------------------- @@ -52,7 +54,7 @@ \_typosize[8/10] \_let\_printverbline=\_printcodeline \_ttline=\_inputlineno - \_setverb \_catcodedot + \_setverb \_catcode`\.=11 \_ifnum\_ttline<0 \_let\_printverblinenum=\_relax \_else \_initverblinenum \_fi \_adef{ }{\ }\_adef\^^I{\t}\_parindent=\_ttindent \_parskip=0pt \_def\t{\_hskip \_dimexpr\_tabspaces em/2\_relax}% @@ -74,7 +76,6 @@ \_edef\_Doc{\_asp\_asp\_bslash _doc} \_bgroup \_lccode`~=`\^^I \_lowercase{\_egroup\_edef\_Doctab{\_noexpand~\_bslash _doc}} \_edef\_Endcode{\_noexpand\_empty\_bslash _endcode} -\_def\_catcodedot{\_catcode`\.=11 } \_doc ----------------------------- The scanner of the control sequences in the listing mode replaces all @@ -101,16 +102,16 @@ \_def\_processinput{% \_let\_start=\_relax \_ea\_replstring\_ea\_tmpb\_ea{\_aspace^^J}{^^J} - \_addto\_tmpb{\_end}% + \_addto\_tmpb{\_fin}% \_isinlist\_tmpb{\_start^^J}\_iftrue \_advance\_ttline by1\_fi \_replstring\_tmpb{\_start^^J}{\_start}% \_replstring\_tmpb{\_start}{}% - \_replstring\_tmpb{^^J\_end}{\_end}% - \_replstring\_tmpb{^^J\_end}{}% - \_replstring\_tmpb{\_end}{}% + \_replstring\_tmpb{^^J\_fin}{\_fin}% + \_replstring\_tmpb{^^J\_fin}{}% + \_replstring\_tmpb{\_fin}{}% \_ea\_prepareverbdata\_ea\_tmpb\_ea{\_tmpb^^J}% \_replthis{\_csstring\\}{\_noexpand\_makecs}% - \_ea\_printverb \_tmpb\_end + \_ea\_printverb \_tmpb\_fin \_par \_endgroup \_ttskip \_isnextchar\_par{}{\_noindent}% @@ -145,7 +146,7 @@ } \_everytt={\_let\_printverblinenum=\_relax} -\_long\_def\_endverbprinting#1\_end#2\_end{\_fi\_fi \_global\_maxlines=100000 +\_long\_def\_endverbprinting#1\_fin#2\_fin{\_fi\_fi \_global\_maxlines=100000 \_noindent\_typosize[8/]\_dots etc. (see {\_tt\fnamecolor\docfile})} \_doc ----------------------------- @@ -206,10 +207,9 @@ catcodes using the `\_afteroad` macro. \_cod ----------------------------- -\_def\_afterload{\_catcode`\<=13 \_catcode`\`=13 \_catcode`\.=11 - \_wlog {doc.opm: catcodes of < and ` activated, catcode of . is letter.}% +\_def\_afterload{\_catcode`\<=13 \_catcode`\`=13 + \_wlog {doc.opm: catcodes of < and ` activated.}% } -\_catcode`.=11 \_doc ----------------------------- The \code{} will be print as . @@ -219,7 +219,7 @@ \_catcode`\<=13 \_def<#1>{$\langle\hbox{\it#1\/}\rangle$} -\_everyintt{\_catcode`\<=13 } +\_everyintt{\_catcode`\<=13 \_catcode`\.=11 } \_doc ----------------------------- Main documentation points and hyperlinks to/from it. @@ -357,6 +357,8 @@ have the same meaning: `\optexdoclink` in this example. And \endinput +2022-11-21 magenta color for internal links instead green. +2022-11-13 \catcode`.=11: only local settings 2022-07-01 \_printii improved, colors declaration part added. 2021-05-15 \_endinput shifted after \_processinput when \_endcode is scanned. 2021-05-14 \_catcodedot, \_Doctab introduced. diff --git a/macros/optex/base/f-heros.opm b/macros/optex/base/f-heros.opm index 7848b7f9d2..2531573ca4 100644 --- a/macros/optex/base/f-heros.opm +++ b/macros/optex/base/f-heros.opm @@ -21,11 +21,8 @@ Modifiers:^^J \_ifmathloading \_loadmath {[FiraMath-Regular]} - \_addto\_normalmath{\_loadumathfamily 5 {xitsmath-regular}{} } - \_addto\_boldmath {\_loadumathfamily 5 {xitsmath-bold}{} } - \_addto\_frak{\_fam5 }\_addto\_cal{\_fam5 } \_public \frak \cal ; - \_normalmath - \_wterm{MATH-FONT(5): "[XITSMath-Regular/Bold]" -- used for \_string\cal, \_string\frak} + \_addUmathfont \_xits {[XITSMath-Regular]}{} {[XITSMath-Bold]}{} {} + \_addto\_frak{\_fam\_xits}\_addto\_cal{\_fam\_xits} \_public \frak \cal ; % \bf, \bi from FiraMath: \_let\_bsansvariables=\_bfvariables \_let\_bsansGreek=\_bfGreek @@ -34,14 +31,8 @@ Modifiers:^^J \_let\_bisansvariables=\_bivariables \_let\_bisansgreek=\_bigreek % \_resetmathchars ; - \_def\_resetmathchars #1{\_chardef\_mafam=#1\_relax \_xargs \_resetmathcharX} - \_def\_resetmathcharX#1{\_ea\_resetmathcharY - \_directlua{tex.print(string.format("\_pcent08X", \_the#1))}#1} - \_def\_resetmathcharY#1#2#3#4#5#6#7#8#9{% - \_Umathchardef #9\_numexpr"#3/2\_relax \_mafam "#4#5#6#7#8 - \_Umathcode "#4#5#6#7#8=\_numexpr"#3/2\_relax \_mafam "#4#5#6#7#8 } - \_resetmathchars 5 \bigtriangleup \bigblacktriangleup \blacktriangle - \vartriangle \smallblacktriangleright ; % ... etc. you can add more + \_mathchars \_xits {\bigtriangleup \bigblacktriangleup \blacktriangle + \vartriangle \smallblacktriangleright} % ... etc. you can add more \_fi \_endcode diff --git a/macros/optex/base/f-iwona.opm b/macros/optex/base/f-iwona.opm new file mode 100644 index 0000000000..702ac6a06a --- /dev/null +++ b/macros/optex/base/f-iwona.opm @@ -0,0 +1,26 @@ +%% This is part of the OpTeX project, see http://petr.olsak.net/optex + +\_famdecl [Iwona] \Iwona {Sans serif typeface derived from Kurier} + {\caps \cond \light \medium \bolder} {\rm \bf \it \bi} {} + {[Iwona-Regular]} + {\_def\_fontnamegen{[Iwona\_condV\_weightV-\_currV]:\_capsV\_fontfeatures}} + +\_wlog{\_detokenize{% +Modifiers:^^J + \caps ...... caps & small caps^^J + \cond ...... condensed variants^^J + \light ..... light (only \rm \it)^^J + \medium .... medium (only \rm \it)^^J + \bolder .... heavy (only \rm \it) +}} + +\_moddef \resetmod {\_fsetV caps={},cond={},weight={} \_fvars Regular Bold Italic BoldItalic } +\_moddef \caps {\_fsetV caps=+smcp;\_ffonum; } +\_moddef \nocaps {\_fsetV caps={} } +\_moddef \cond {\_fsetV cond=Cond } +\_moddef \light {\_fsetV weight=Light \_fvars Regular . Italic . } +\_moddef \medium {\_fsetV weight=Medium \_fvars Regular . Italic . } +\_moddef \bolder {\_fsetV weight=Heavy \_fvars Regular . Italic . } +\_moddef \nocond {\_fsetV cond={} } + +\_initfontfamily % new font family must be initialized diff --git a/macros/optex/base/f-kurier.opm b/macros/optex/base/f-kurier.opm new file mode 100644 index 0000000000..ca1a6e381e --- /dev/null +++ b/macros/optex/base/f-kurier.opm @@ -0,0 +1,26 @@ +%% This is part of the OpTeX project, see http://petr.olsak.net/optex + +\_famdecl [Kurier] \Kurier {Two element sans serif typeface} + {\caps \cond \light \medium \bolder} {\rm \bf \it \bi} {} + {[Kurier-Regular]} + {\_def\_fontnamegen{[Kurier\_condV\_weightV-\_currV]:\_capsV\_fontfeatures}} + +\_wlog{\_detokenize{% +Modifiers:^^J + \caps ...... caps & small caps^^J + \cond ...... condensed variants^^J + \light ..... light (only \rm \it)^^J + \medium .... medium (only \rm \it)^^J + \bolder .... heavy (only \rm \it) +}} + +\_moddef \resetmod {\_fsetV caps={},cond={},weight={} \_fvars Regular Bold Italic BoldItalic } +\_moddef \caps {\_fsetV caps=+smcp;\_ffonum; } +\_moddef \nocaps {\_fsetV caps={} } +\_moddef \cond {\_fsetV cond=Cond } +\_moddef \light {\_fsetV weight=Light \_fvars Regular . Italic . } +\_moddef \medium {\_fsetV weight=Medium \_fvars Regular . Italic . } +\_moddef \bolder {\_fsetV weight=Heavy \_fvars Regular . Italic . } +\_moddef \nocond {\_fsetV cond={} } + +\_initfontfamily % new font family must be initialized diff --git a/macros/optex/base/f-lato.opm b/macros/optex/base/f-lato.opm new file mode 100644 index 0000000000..bedb33a8a2 --- /dev/null +++ b/macros/optex/base/f-lato.opm @@ -0,0 +1,34 @@ +%% This is part of the OpTeX project, see http://petr.olsak.net/optex + +\_famdecl [Lato] \Lato {Geometric grotesk, many weights} + {\hair \thin \light \normal \book \bolder} {} {} + {[Lato-Regular]} + {\_def\_fontnamegen {[Lato-\_currV]:\_capsV\_fontfeatures}} + +\_wlog{\_detokenize{% +Modifier: \caps .... Old digits only (caps not provided)^^J% +Modifiers (face weight):^^J + \hair ...... \rm, \it = Hair, \bf, \bi = Normal^^J + \thin ...... \rm, \it = Thin, \bf, \bi = Medium^^J + \light ..... \rm, \it = Light, \bf, \bi = Semibold^^J + \normal .... \rm, \it = Normal, \bf, \bi = Bold^^J + \book ...... \rm, \it = Medium, \bf, \bi = Heavy^^J + \bolder .... \rm, \it = Semibold, \bf, \bi = Black^^J% +}} + +\_moddef \resetmod {\_fsetV caps={} \_fvars Regular Bold Italic BoldItalic } +\_moddef \caps {\_fsetV caps=+smcp;\_ffonum; } +\_moddef \hair {\_fvars Hairline Regular HairlineItalic Italic } +\_moddef \thin {\_fvars Thin Medium ThinItalic MediumItalic } +\_moddef \light {\_fvars Light Semibold LightItalic SemiboldItalic } +\_moddef \normal {\_fvars Regular Bold Italic BoldItalic } +\_moddef \book {\_fvars Medium Heavy MediumItalic HeavyItalic } +\_moddef \bolder {\_fvars Semibold Black SemiboldItalic BlackItalic } + +\_moddef \caps {\_fsetV caps=+smcp;\_ffonum; } +\_moddef \nocaps {\_fsetV caps={} } + +\_initfontfamily % new font family must be initialized + +\_endcode + diff --git a/macros/optex/base/fams-ini.opm b/macros/optex/base/fams-ini.opm index ad3ace24f3..505887f46e 100644 --- a/macros/optex/base/fams-ini.opm +++ b/macros/optex/base/fams-ini.opm @@ -1,6 +1,6 @@ %% This is part of the OpTeX project, see http://petr.olsak.net/optex -% Version <2020-02-28>. Loaded in format and secondly on demand by \fontfam[catalog] +% Version <2022-10-18>. Loaded in format and secondly on demand by \fontfam[catalog] \_famtext {Special name for printing a catalog :} @@ -169,6 +169,23 @@ \caps, \caps\cond: {\rm\bf\it\bi} \caps\ttset: {\rm\bf} } +\_famfrom {Malgorzata Budyta, Janusz Marian Nowacki} +\_faminfo [Kurier] {Two element sans serif typeface} {f-kurier} + { -,\cond,\caps,\caps\cond: {\rm\it\bf\bi} + \light,\light\cond,\medium,\medium\cond,\bolder,\bolder\cond: {\rm\it} + } +\_faminfo [Iwona] {Sans serif typeface derived from Kurier} {f-iwona} + { -,\cond,\caps,\caps\cond: {\rm\it\bf\bi} + \light,\light\cond,\medium,\medium\cond,\bolder,\bolder\cond: {\rm\it} + } + +\_famfrom {tyPoland Lukasz Dziedzic} +\_faminfo [Lato] {Geometric grotesk, many weights} {f-lato} + { \hair: {\rm\it} \thin: {\rm\it} \light: {\rm\it} -: {\rm\it} + \book: {\rm\it} \bolder: {\rm\it} -: {\bf\bi} + \book: {\bf\bi} \bolder: {\bf\bi} + } + \_famfrom {Julieta Ulanovsky, http://www.zkysky.com.ar} \_faminfo [Montserrat] {Inspired from old posters in Montserat in Buenos Aires} {f-montserrat} { -,\caps,\alter: {\rm\bf\it\bi} \xlight,\elight,\light,-,\medium,\semibold: {\rm\it} diff --git a/macros/optex/base/fnotes.opm b/macros/optex/base/fnotes.opm index 661d54c33f..8f56ba1aea 100644 --- a/macros/optex/base/fnotes.opm +++ b/macros/optex/base/fnotes.opm @@ -132,8 +132,8 @@ as a box shifted down by `\parskip` and with `\vskip-\baselineskip` followed. \_cod ----------------------------- -\_def\_mnote #1#{\_ifx^#1^\_else \_mnoteC#1\_end \_fi \_mnoteD} -\_def\_mnoteC up#1\_end{\_mnoteskip=#1\_relax} % \mnote up {} syntax +\_def\_mnote #1#{\_ifx^#1^\_else \_mnoteC#1\_fin \_fi \_mnoteD} +\_def\_mnoteC up#1\_fin{\_mnoteskip=#1\_relax} % \mnote up {} syntax \_long\_def\_mnoteD#1{% \_ifvmode \_vskip\_parskip{\_mnoteA{#1}}\_nobreak\_vskip-\_baselineskip\_vskip-\_parskip \_else \_lower\_dp\_strutbox\_hbox{}\_vadjust{\_kern-\_dp\_strutbox \_mnoteA{#1}\_kern\_dp\_strutbox}% diff --git a/macros/optex/base/fonts-catalog.opm b/macros/optex/base/fonts-catalog.opm index cdd77359f1..347c94b145 100644 --- a/macros/optex/base/fonts-catalog.opm +++ b/macros/optex/base/fonts-catalog.opm @@ -47,7 +47,7 @@ } \_def\_dosamples #1:#2{\_ifx^#2^\_else \_def\_printvars{#2}% - \_ea\_dosamplesA\_romannumeral-`\.#1,,% + \_nospaceafter\_dosamplesA #1,,% \_ea\_dosamples\_fi } \_def\_dosamplesA#1,{% diff --git a/macros/optex/base/fonts-resize.opm b/macros/optex/base/fonts-resize.opm index e49303f377..34885d44bd 100644 --- a/macros/optex/base/fonts-resize.opm +++ b/macros/optex/base/fonts-resize.opm @@ -1,6 +1,6 @@ %% This is part of the OpTeX project, see http://petr.olsak.net/optex -\_codedecl \setfontsize {Font resizing macros <2022-02-22>} % preloaded in format +\_codedecl \setfontsize {Font resizing macros <2022-11-08>} % preloaded in format \_doc ----------------------------- \`\initunifonts` macro extends \LuaTeX's font capabilities, @@ -10,19 +10,22 @@ from \LaTeX's `luatexbase` namespace, we provide our own replacements. \^`\initunifonts` sets itself to relax because we don't want to do this work twice. + \`\ufont` is a shortcut of \^`\initunifonts`~`\font`. \_cod ----------------------------- -\_def\_initunifonts {% +\_protected\_def \_initunifonts {% \_directlua{% require('luaotfload-main') luaotfload.main() - optex_hook_into_luaotfload() + optex.hook_into_luaotfload() }% \_glet \_fmodtt=\_unifmodtt % use \_ttunifont for \tt \_glet \_initunifonts=\_relax % we need not to do this work twice \_glet \initunifonts=\_relax } -\_public \initunifonts ; +\_protected\_def \_ufont {\_initunifonts \_font} + +\_public \initunifonts \ufont ; \_doc ----------------------------- The \`\setfontsize` `{}` saves the `` to the \`\_sizespec` macro. @@ -74,7 +77,8 @@ Note, that the `\_xfontname` output is converted due to optical size data using `\_optfn`. \_cod ----------------------------- -\_def\_fontlet#1#2{\_ifx #2=\_ea\_fontlet \_ea#1\_else \_font #1{\_optfn{\_xfontname#2}}\_fi} +\_protected\_def \_fontlet #1#2{\_ifx #2=\_ea\_fontlet \_ea#1\_else + \_ea\_font \_ea#1\_expanded{{\_optfn{\_xfontname#2}}}\_fi} \_public \xfontname \fontlet ; \_doc ----------------------------- @@ -83,17 +87,21 @@ It changes the current font at the given . \nl \`\resizethefont` is implemented by \^`\newcurrfontsize` using data from - the \^`\_sizespec` macro. + the \^`\_sizespec` macro.\nl + \`\sfont` has the same syntax like `\font` primitive, but declares a + macro which selects the font and sets its size properly dependent on the + current size. \_cod ----------------------------- -\_def \_newcurrfontsize #1{% \newcurrfontsize{at25pt} - \_ea\_def \_ea\_tmp \_ea{\_csname \_ea\_csstring \_the\_font \_endcsname}% - \_ea\_fontlet \_tmp \_font #1\_relax - \_ea\_fontloaded \_tmp - \_tmp +% \newcurrfontsize{at25pt} +\_def \_newcurrfontsize {\_ea\_newcurrfontsizeA \_csname \_ea\_csstring \_the\_font \_endcsname} +\_def \_newcurrfontsizeA #1#2{\_fontlet #1\_font #2\_relax \_fontloaded#1#1} +\_protected\_def \_resizethefont {\_newcurrfontsize\_sizespec} +\_protected\_def \_sfont #1{% + \_protected\_edef #1{\_csname _sfont:\_csstring#1\_endcsname \_resizethefont}% + \_initunifonts \_ea\_font \_csname _sfont:\_csstring#1\_endcsname } -\_protected\_def \_resizethefont{\_newcurrfontsize\_sizespec} -\_public \newcurrfontsize \resizethefont ; +\_public \newcurrfontsize \resizethefont \sfont ; \_doc ----------------------------- The \`\_regtfm` ` ` @@ -169,7 +177,8 @@ The can be empty or `at` or `scaled`. The \OpTeX/ starts with `\font` primitive which is able to read only `tfm` files. i.e.\ the `.tfm` (and additional data for glyphs) must be correctly installed in your system. If you want to load -OpenType `otf` or `ttf` font files, use the declarator \^`\initunifonts`. +OpenType `otf` or `ttf` font files, use the declarator \^`\initunifonts` +before first `\font` primitive. This command adds additional features to the `\font` primitive which gives the extended syntax: \begtt \catcode`\<=13 @@ -193,8 +202,9 @@ The original syntax for `tfm` files is also available. Example: primitive from `luaotfload` package. More information is available in the `luaotfload-latex.pdf` file. -Note, that \^`\fontfam` does (among other things) \^`\initunifonts` -internally. You need not to specify it if \^`\fontfam` is used. +You can use \^`\ufont` macro which runs \^`\initunifonts` followed by `\font` +primitive. And \^`\fontfam` does (among other things) \^`\initunifonts` +too. You need not to specify \^`\initunifonts` if \^`\fontfam` or \^`\ufont` is used. It seems that you must decide about final size of the font before it is loaded by the `\font` primitive. It is not exactly true; \OpTeX/ offers @@ -245,8 +255,7 @@ The \^`\resizethefont` works with arbitrary current font, for example with the font loaded directly by `\font` primitive. For example: \begtt -\initunifonts -\font\tencrimson=[Crimson-Roman]:+onum % font Crimson-Regular at 10 pt is loaded +\ufont\tencrimson=[Crimson-Roman]:+onum % font Crimson-Regular at 10 pt is loaded \def\crimson{\tencrimson\resizethefont} % \crimson uses the font size on demand \crimson The 10 pt text is here. @@ -258,6 +267,26 @@ behaves like variant selector in the Font Selection System (section~\ref[fontsys It takes only information about size from the font context, but it is sufficient. You can use it in titles, footnotes, etc. The font size depending on surrounding size is automatically selected. +There is a shortcut \^`\sfont` with the same syntax like `\font` primitive, +it declares a macro which selects the font and does resizing depending on +the current size. So, the example above can be realized by +`\sfont\crimson=[Crimson-Roman]:+onum`. + +\secc The `\font`-like commands summary + +\begitems +* `\font` is \TeX/ primitive. When \OpTeX/ starts, then it accepts only + classical \TeX/ syntax and doesn't allow to load Unicode fonts. + Once \^`\initunifonts` (or \^`\fontfam`) is used, the `\font` primitive is + re-initialized: now it accepts extended syntax and it is able to load Unicode + OpenType fonts. +* \^`\ufont` is a shortcut of `\initunifonts \font`. I.e.\ it behaves like + `\font` and accepts extended syntax immediatelly. +* \^`\sfont` has syntax like extended `\font`. It declares a macro which + selects the given font and resizes it to the current size (given by + \^`\setfontsize`). In various part of document (text, footnotes, titles), the + size of this font is selected by the declared macro properly. +\enditems \secc[fontlet] The \code{\\fontlet} declarator @@ -288,13 +317,13 @@ able to choose right file if various optical sizes and corresponding file names are declared for the font by \^`\_regtfm` or \^`\_regoptsizes` command. The command \^`\setfontsize` sets the internal reuirements for optical size if the parameter is in the format `at` or `mag`. -Then the command \^`\resizethefont` or variant selectors try to choose +Then the command \^`\resizethefont` or \^`\fontlet` or variant selectors try to choose the font suitable for the required optical size. For example \begtt \fontfam[lm] The text is printed in font [lmroman10-regular] at 10 pt. \setfontsize{at13pt}\rm - Now in the text is printed in [lmroman12-regular] at 13 pt. + Now, the text is printed in [lmroman12-regular] at 13 pt. \endtt See also section~\ref[optsizes]. @@ -322,6 +351,9 @@ Luaotfload documentation for more information. \_endinput +2022-11-08 \sfont introduced, \protected: \initunifont, \ufont, \fontlet +2022-11-07 \fontlet \a\a: bug fixed +2022-10-14 \ufont introduced 2022-02-22 Font Selection System reimplemented, \fontsel introduced 2021-05-02 better concept of doc, moving parts to fonts-select 2021-04-17 \_fontloaded, \_newfontloaded introduced diff --git a/macros/optex/base/fonts-select.opm b/macros/optex/base/fonts-select.opm index 33d331150b..7e00c9baea 100644 --- a/macros/optex/base/fonts-select.opm +++ b/macros/optex/base/fonts-select.opm @@ -1,6 +1,6 @@ %% This is part of the OpTeX project, see http://petr.olsak.net/optex -\_codedecl \fontfam {Fonts selection system <2022-02-22>} % preloaded in format +\_codedecl \fontfam {Fonts selection system <2022-12-01>} % preloaded in format \_doc ----------------------------- The main principle of the Font Selection System is: run one or more @@ -161,7 +161,7 @@ runs only if the `\_V` is defined as `` or `` or ... or ``. \nl - \`\_prepcommalist` `ab,{},cd,\_end,` expands to `ab,,cd,` (auxiliary macro + \`\_prepcommalist` `ab,{},cd,\_fin,` expands to `ab,,cd,` (auxiliary macro used in `\_onlyif`).\nl \`\_ffonum` is a shortcut for oldstyle digits font features used in font family files. You can do `\let\_ffonum=\ignoreit` if you don't want @@ -184,10 +184,10 @@ \_ifx,#1\_else\_sdef{_#1V}{#2}\_ea\_ea\_ea\_fsetVa\_fi\_fi } \_def \_onlyif #1=#2:#3{% - \_edef\_act{\_noexpand\_isinlist{,\_prepcommalist #2,\_end,}{,\_cs{_#1V},}}\_act + \_edef\_act{\_noexpand\_isinlist{,\_prepcommalist #2,\_fin,}{,\_cs{_#1V},}}\_act \_iftrue #3\_fi } -\_def\_prepcommalist#1,{\_ifx\_end#1\_empty\_else #1,\_ea\_prepcommalist\_fi} +\_def\_prepcommalist#1,{\_ifx\_fin#1\_empty\_else #1,\_ea\_prepcommalist\_fi} \_def\_ffonum {+onum;+pnum} \_doc ----------------------------- @@ -258,7 +258,7 @@ They have precedence when \^`\fontsel` constructs the name. \_cod ----------------------------- -\_def\_fontdef #1#2{\_begingroup +\_protected\_def \_fontdef #1#2{\_begingroup \_edef\_xfamv{\_csstring#1}\_let\_ttfamv\_xfamv #2% \_ea\_endgroup\_ea \_let\_ea #1\_the\_font } @@ -278,7 +278,7 @@ the same meaning. \_cod ----------------------------- -\_def\_famvardef#1#2{% +\_protected\_def \_famvardef #1#2{% \_sdef{_f:\_currfamily:\_csstring#1}% {{\_edef\_xfamv{\_csstring#1}\_let\_ttfamv\_xfamv #2\_ea}\_the\_font \_def\_currvar{#1}}% \_protected\_edef\_tmpa {% @@ -307,7 +307,7 @@ terminal and to the log file. \_cod ----------------------------- -\_def\_fontfam[#1]{% +\_protected\_def \_fontfam [#1]{% \_lowercase{\_edef\_famname{\_ea\_removespaces #1 {} }}% \_isfile {f-\_famname.opm}\_iftrue \_opinput {f-\_famname.opm}% \_else @@ -349,8 +349,9 @@ \`\_famtext` does nothing or prints the text on the terminal. \nl \`\_faminfo` `[] {} {} {}` - does\nl `\_def \_famf: {}` or prints information on - the terminal. + does\nl `\_def \_famf: {}` (only if differs + from `f-`) or prints information on the terminal. The + data are used when printing the font catalog. \nl \`\_famalias` `[]` does `\def \_famf: {}` where `` is stored from the previous `\_faminfo` command. Or @@ -364,8 +365,8 @@ \_def\_famtext #1{} \_def\_faminfo [#1]#2#3#4{% \_lowercase{\_edef\_tmp{\_ea\_removespaces #1 {} }}% - \_sdef{_famf:\_tmp}{#3}% - \_def\_famfile{#3}% + \_edef\_tmpa{f-\_tmp}\_def\_famfile{#3}% + \_unless\_ifx\_tmpa\_famfile \_sdef{_famf:\_tmp}{#3}\_fi } \_def\_famalias [#1]{% \_lowercase{\_edef\_tmpa{\_ea\_removespaces #1 {} }}% @@ -898,6 +899,8 @@ with Unicode fonts loaded by \^`\fontfam`. \endinput +2022-12-01 \faminfo saves f- to the format only when needed +2022-11-08 \protected: \fontdef, \famvardef, \fontfam 2022-02-22 Font Selection System reimplemented, \fontsel introduced 2021-09-24 \_unichars used in \initunifonts 2021-07-16 \initunifonts: optex_hook_into_luaotfload added. diff --git a/macros/optex/base/graphics.opm b/macros/optex/base/graphics.opm index b54b52c926..77e78cef23 100644 --- a/macros/optex/base/graphics.opm +++ b/macros/optex/base/graphics.opm @@ -1,6 +1,6 @@ %% This is part of the OpTeX project, see http://petr.olsak.net/optex -\_codedecl \inspic {Graphics <2022-03-05>} % preloaded in format +\_codedecl \inspic {Graphics <2022-11-05>} % preloaded in format \_doc ----------------------------- \`\inspic` accepts old syntax `\inspic ` @@ -47,8 +47,8 @@ \_newtoks\_inkdefs \_inkdefs={% \_def\makeatletter#1\makeatother{}% - \_def\includegraphics[#1]#2{\_inkscanpage#1,page=,\_end \_inspic{\_the\_tmptoks}\_hss}% - \_def\_inkscanpage#1page=#2,#3\_end{\_ifx,#2,\_else\_def\_picparams{page#2}\_fi}% + \_def\includegraphics[#1]#2{\_inkscanpage#1,page=,\_fin \_inspic{\_the\_tmptoks}\_hss}% + \_def\_inkscanpage#1page=#2,#3\_fin{\_ifx,#2,\_else\_def\_picparams{page#2}\_fi}% \_def\put(#1,#2)#3{\_nointerlineskip\_vbox to\_zo{\_vss\_hbox to\_zo{\_kern#1\_picwidth \_pdfsave\_hbox to\_zo{#3}\_pdfrestore\_hss}\_kern#2\_picwidth}}% \_def\begin#1{\_csname _begin#1\_endcsname}% @@ -169,7 +169,7 @@ } \_def\_puttext{\_ea\_ea\_ea\_puttextA\_scantwodimens} -\_def\_puttextA#1#2#3{{\_setbox0=\_hbox{{#3}}\_dimen1=#1sp \_dimen2=#2sp \_puttextB}} +\_long\_def\_puttextA#1#2#3{{\_setbox0=\_hbox{{#3}}\_dimen1=#1sp \_dimen2=#2sp \_puttextB}} \_def\_puttextB{% \_ifvmode \_ifdim\_prevdepth>\_zo \_vskip-\_prevdepth \_relax \_fi @@ -383,7 +383,7 @@ \_ea \_shadowlayer \_fi }% \_pdfliteral{q /op1 gs 0 g 1 0 0 1 \_shadowmoveto\_space cm - \_ifx#1\_circlet 1 0 0 1 \_expr{\_bp{.5\_wd0}} \_expr{\_bp{(\_ht0-\_dp0)/2}} cm + \_ifx#1\_circlet 1 0 0 1 \_bp{.5\_wd0} \_bp{(\_ht0-\_dp0)/2} cm \_else 1 0 0 1 -\_shadowb\_space -\_shadowb\_space cm \_fi \_shadowlayer Q} }} @@ -447,6 +447,8 @@ the \^`\transformbox{}{\copy\mypic}`. \_endinput +2022-11-05 \_doshadow: renduntant \_expr from \_expr{\_bp{...}} removed +2022-10-18 \_puttextA defined \long, bug fixed 2022-03-05: \_addextgstate, \pageresources, \addpageresources added 2022-03-03: \_coc introduced 2021-07-16: \inoval, \incircle are more simple, using attribitecolor features diff --git a/macros/optex/base/hi-syntax.opm b/macros/optex/base/hi-syntax.opm index 586cfed69e..c708be0563 100644 --- a/macros/optex/base/hi-syntax.opm +++ b/macros/optex/base/hi-syntax.opm @@ -23,15 +23,15 @@ \_def\_replfromto #1#2{\_edef\_tmpa{{#1}{#2}}\_ea\_replfromtoE\_tmpa} \_def\_replfromtoE#1#2#3{% #1=from #2=to #3=replacement \_def\_replfrom##1#1##2{\_addto\_tmpb{##1}% - \_ifx\_end##2\_ea\_replstop \_else \_afterfi{\_replto##2}\_fi}% + \_ifx\_fin##2\_ea\_replstop \_else \_afterfi{\_replto##2}\_fi}% \_def\_replto##1#2##2{% - \_ifx\_end##2\_afterfi{\_replfin##1}\_else + \_ifx\_fin##2\_afterfi{\_replfin##1}\_else \_addto\_tmpb{#3}% \_afterfi{\_replfrom##2}\_fi}% - \_def\_replfin##1#1\_end{\_addto\_tmpb{#3}\_replstop}% - \_edef\_tmpb{\_ea}\_ea\_replfrom\_tmpb#1\_end#2\_end\_end\_relax + \_def\_replfin##1#1\_fin{\_addto\_tmpb{#3}\_replstop}% + \_edef\_tmpb{\_ea}\_ea\_replfrom\_tmpb#1\_fin#2\_fin\_fin\_relax } -\_def\_replstop#1\_end\_relax{} +\_def\_replstop#1\_fin\_relax{} \_def\_finrepl{} \_doc ----------------------------- @@ -55,12 +55,12 @@ The \`\_xscan` macro replaces occurrences of `\x` by `\z` in the post-processing phase. The construct `\x {}` expands to `\_xscan {}^^J^`. - If `#3` is `\_end` then it signals that something wrong happens, the + If `#3` is `\_fin` then it signals that something wrong happens, the `` was not terminated by legal `` when `\replfromto` did work. We must to fix this by using the \`\_xscanR` macro. \_cod ----------------------------- -\_def\_xscan#1#2^^J#3{\_ifx\_end#3 \_ea\_xscanR\_fi +\_def\_xscan#1#2^^J#3{\_ifx\_fin#3 \_ea\_xscanR\_fi \z{#1}{#2}% \_ifx^#3\_else ^^J\_afterfi{\_xscan{#1}#3}\_fi} \_def\_xscanR#1\_fi#2^{^^J} @@ -86,8 +86,8 @@ \_def\_hisyntax#1{\_def\_prepareverbdata##1##2{% \_let\n=\_relax \_let\b=\_relax \_def\t{\n\_noexpand\t\n}\_let\_start=\_relax - \_adef{ }{\n\_noexpand\ \n}\_edef\_tmpb{\_start^^J##2\_end}% - \_replthis{^^J}{\n^^J\b\n}\_replthis{\b\n\_end}{\_end}% + \_adef{ }{\n\_noexpand\ \n}\_edef\_tmpb{\_start^^J##2\_fin}% + \_replthis{^^J}{\n^^J\b\n}\_replthis{\b\n\_fin}{\_fin}% \_let\x=\_relax \_let\y=\_relax \_let\z=\_relax \_let\t=\_relax \_hicomments % keeps comments declared by \commentchars \_endlinechar=`\^^M @@ -104,7 +104,7 @@ \_the\_hicolors % colors which have precedece \_else\_opwarning{Syntax "\_tmpa" undeclared (no file hisyntax-\_tmpa.opm)} \_fi\_fi - \_replthis{\_start\n^^J}{}\_replthis{^^J\_end}{^^J}% + \_replthis{\_start\n^^J}{}\_replthis{^^J\_fin}{^^J}% \_def\n{}\_def\b{}\_adef{ }{\_dsp}% \_bgroup \_lccode`\~=`\ \_lowercase{\_egroup\_def\ {\_noexpand~}}% \_def\w####1{####1}\_def\x####1####2{\_xscan{####1}####2^^J^}% diff --git a/macros/optex/base/hyperlinks.opm b/macros/optex/base/hyperlinks.opm index 4c2007cddb..7505436f16 100644 --- a/macros/optex/base/hyperlinks.opm +++ b/macros/optex/base/hyperlinks.opm @@ -136,10 +136,10 @@ \_replstring\_tmpb{[||]}{{gb|}}% \_replstring\_tmpb{ }{{ }}% \_replstring\_tmpb{://}{{://}}% - \_ea\_ulink \_ea[\_ea{\_tmpa}] {\_urlfont \_ea\_urlA\_tmpb\_end}% + \_ea\_ulink \_ea[\_ea{\_tmpa}] {\_urlfont \_ea\_urlA\_tmpb\_fin}% }} -\_def\_urlA#1{\_ifx\_end#1\_else \_urlC{}{#1}\_fi} -\_def\_urlB#1{\_ifx\_end#1\_else \_urlC{\_urlxskip}{#1}\_fi} +\_def\_urlA#1{\_ifx\_fin#1\_else \_urlC{}{#1}\_fi} +\_def\_urlB#1{\_ifx\_fin#1\_else \_urlC{\_urlxskip}{#1}\_fi} \_def\_urlC#1#2{% \_ifcsname _ur:#2\_endcsname \_lastnamedcs \_ea\_ea\_ea \_urlA \_else #1#2\_ea\_ea\_ea \_urlB \_fi diff --git a/macros/optex/base/if-macros.opm b/macros/optex/base/if-macros.opm index 8f6082a27a..9113b5f8be 100644 --- a/macros/optex/base/if-macros.opm +++ b/macros/optex/base/if-macros.opm @@ -1,6 +1,6 @@ %% This is part of the OpTeX project, see http://petr.olsak.net/optex -\_codedecl \newif {Special if-macros, is-macros and loops <2022-05-04>} % preloaded in format +\_codedecl \newif {Special if-macros, is-macros and loops <2022-12-02>} % preloaded in format \_doc ---------------------------- \secc Classical \code{\\newif} @@ -32,9 +32,12 @@ \_doc ---------------------------- \`\afterfi` `{}\fi` closes condition by `\fi` and processes . Usage: - \begtt - \if \afterfi{} \else \afterfi{} \fi + \begtt \catcode`<=13 + \if \afterfi{} \else \afterfi{} \fi \endtt + Nested `\if..\afterfi{\if..\afterfi{...}\fi}\fi` are possible. Another approach is mentioned + in \ulink[http://petr.olsak.net/optex/optex-tricks.html\#fiinif]{OpTeX trick 0098} + which also solves the `\fi` in `\if` problem. \_cod ---------------------------- \_long\_def \_afterfi#1#2\_fi{\_fi#1} @@ -302,9 +305,63 @@ \_public \isnextchar ; + \_doc ---------------------------- + \`\casesof` ` ` implements something similar to + the `switch` command known from C language. It is expandable macro. The + is a list of arbitrary number of pairs in the format + ``\,`{}` which must be finalized by the pair + `\_finc {}`. The optional spaces after s + and between listed cases are ignored. The usage of \^`\casesof` looks like: + \begtt \catcode`<=13 + \casesof + {} + {} + ... + {} + \_finc {} + \endtt + The meaning of tokens are compared by `\ifx` primitive. + The parts `` can be finalized by a macro which can read more + data from the input stream as its parameters. + \_cod ---------------------------- + +\_long\_def \_casesof #1#2#3{\_ifx #2\_finc \_ea\_ignoresecond \_else \_ea\_usesecond \_fi + {#3}{\_ifx#1#2\_ea\_ignoresecond \_else \_ea\_usesecond \_fi {\_finc{#3}}{\_casesof#1}}% +} +\_long\_def \_finc #1#2\_finc#3{#1} + +\_public \casesof ; + + \_doc ----------------------------- + \`\xcasesof` `` extends the features of the macro \^`\casesof`. + Each pair from the `` is in the format + `{}{}`, only the last pair must have the different + format: `\_finc {}`. The `` can be arbitrary + primitive `\if*` condition (optionally prefixed by `\unless`) and it must be closed + in its expansion. It means that `{\ifnum\mycount>0}` is bad, `{\ifnum\mycount>0 }` + is correct. Optional spaces between parameters are ignored. Example: + \begtt + \message {The \tmpnum has \xcasesof + {\ifnum\tmpnum>0 } {positive} + {\ifnum\tmpnum=0 } {equal to zero} + \_finc {negative} value} + \endtt + The \^`\xcasesof` macro works with principle: first true condition wins, + next conditions are not evaluated. + \_cod ----------------------------- + +\_long\_def \_xcasesof #1{\_xcasesofA #1\_finc} +\_long\_def \_xcasesofA #1#2\_finc #3{% + \_ifx #1\_finc \_ea\_ignoresecond\_else \_ea\_usesecond\_fi + {#3}{#1#2\_ea\_ignoresecond\_else \_ea\_usesecond\_fi {\_finc{#3}}{\_xcasesof}}% +} +\_public \xcasesof ; \_endcode +2022-12-02 \xcasesof: its first parameter is \long too. +2022-11-29 renamed to \casesof, \xcasesof. +2022-11-26 \casesby, \casesbyif introduced. 2022-05-04 \isinlist created expandable. 2022-03-30 \afterfi defined as \long. 2021-08-02 more robust \fornum: \fi moved by \afterfi diff --git a/macros/optex/base/lang-data.opm b/macros/optex/base/lang-data.opm index 6e11f8bd9a..e1b68e5dde 100644 --- a/macros/optex/base/lang-data.opm +++ b/macros/optex/base/lang-data.opm @@ -1,10 +1,10 @@ %% This is part of the OpTeX project, see http://petr.olsak.net/optex -\_codedecl \_langdata {Language dependent data <2022-06-28>} % only en, cs preloaded in format +\_codedecl \_langdata {Language dependent data <2022-10-11>} % only en, cs preloaded in format \_langdata en {English} % ----------------------------------------------- \_langw en Chapter Table Figure Subject -\_langb en {, and } { et al.} { ed.} {cit.~} {Vol.~} {No.~} {pp.~} {~p.} {,~ed.} {,~eds.} +\_langb en {, and } { et al.} {\,ed.} {cit.~} {Vol.~} {No.~} {pp.~} {~p.} {,~ed.} {,~eds.} {Available from } {Available also from } {Bachelor's Thesis} {Master's Thesis} {Ph.D. Thesis} \_monthw en January February March April May June @@ -19,10 +19,10 @@ \_langdata cs {Czech} % ------------------------------------------------ % Chapter Table Figure Subject \_langw cs Kapitola Tabulka Obrázek Věc -% {, and } { et al.} { ed.} {cit.~} {Vol.~} {No.~} {pp.~} {~p.} {,~ed.} {,~eds.} +% {, and } { et al.} {\,ed.} {cit.~} {Vol.~} {No.~} {pp.~} {~p.} {,~ed.} {,~eds.} % {Available from } {Available also from } % {Bachelor's Thesis} {Master's Thesis} {Ph.D. Thesis} -\_langb cs { a } { a~kol.} { vyd.} {vid.~} {ročník~} {č.~} {s.~} {~s.} {,~editor} {,~editoři} +\_langb cs { a } { a~kol.} {\,vyd.} {vid.~} {ročník~} {č.~} {s.~} {~s.} {,~editor} {,~editoři} {Dostupné na } {Dostupné též na } {Bakalářská práce} {Diplomová práce} {Disertační práce} % January February March April May June @@ -31,6 +31,8 @@ července srpna září října listopadu prosince \_sdef{_mt:today:cs}{\_the\_day.~\_mtext{m\_the\_month} \_the\_year} % date format \_quotationmarks cs {„“‚‘} +\_preplangmore cs {\_frenchspacing \_postexhyphenchar=`\- + \_def\_langreset{\_postexhyphenchar=0 }} \_let \_sortingdatacs = \_sortingdatalatin \_let \_ignoredcharscs = \_ignoredcharsgeneric @@ -101,7 +103,12 @@ \_langw hu Fejezet Táblázat Ábra Téma \_quotationmarks hu {„”»«} %todo -\_let \_sortingdatahu = \_sortingdatalatin +\_def \_sortingdatahu {% + /,{ },-,&,@,% + aAáÁ,bB,cC,dD,eEéÉ,fF,gG,hH,iIíÍ,jJ,kK,lL,mM,nN,oOóÓ,öÖőŐ,% + pP,qQ,rR,sS,tT,uUúÚ,üÜűŰ,vV,wW,xX,yY,zZ,^^Z,% + 0,1,2,3,4,5,6,7,8,9,'% +} \_let \_ignoredcharshu = \_ignoredcharsgeneric \_def \_compoundcharshu {cs:c^^Z Cs:C^^Z CS:C^^Z dzz:d^^Z^^Z Dzz:D^^Z^^Z DZZ:D^^Z^^Z dz:d^^Z Dz:D^^Z DZ:D^^Z @@ -128,13 +135,15 @@ \_langdata sk {Slovak} % ------------------------------------------------ \_langw sk Kapitola Tabuľka Obrázok Vec -\_langb sk { a } { a~kol.} { vyd.} {vid.~} {ročník~} {č.~} {s.~} {~s.} {,~editor} {,~editori} +\_langb sk { a } { a~kol.} {\,vyd.} {vid.~} {ročník~} {č.~} {s.~} {~s.} {,~editor} {,~editori} {Dostupné na } {Dostupné tiež na } {Bakalárska práca} {Diplomová práca} {Dizertačná práca} \_monthw sk januára februára marca apríla mája júna júla augusta septembra októbra novembra decembra \_sdef{_mt:today:sk}{\_the\_day.~\_mtext{m\_the\_month} \_the\_year} % date format \_quotationmarks sk {„“‚‘} +\_preplangmore sk {\_frenchspacing \_postexhyphenchar=`\- + \_def\_langreset{\_postexhyphenchar=0 }} \_let \_sortingdatask = \_sortingdatalatin \_let \_ignoredcharssk = \_ignoredcharsgeneric @@ -150,6 +159,9 @@ \_endcode +2022-10-11: \postexhyphenchar setting added to cs and sk languages +2022-10-10: { ed.} changed to {\,ed.} +2022-08-31: \_sortingdatahu corrected 2022-06-28: Spanish, Polish, French, Swedish, Hungarian sorting rules added 2022-06-28: German sorting rules added 2022-02-19: concept finalized, but data still far of completness diff --git a/macros/optex/base/lang-decl.opm b/macros/optex/base/lang-decl.opm index 3b9f9e727d..d6b562ed45 100644 --- a/macros/optex/base/lang-decl.opm +++ b/macros/optex/base/lang-decl.opm @@ -1,6 +1,6 @@ %% This is part of the OpTeX project, see http://petr.olsak.net/optex -\_codedecl \langlist {Languages declaration <2022-02-19>} % preloaded in format +\_codedecl \langlist {Languages declaration <2022-10-11>} % preloaded in format \_doc ----------------------------- \`\_preplang` ` ` @@ -163,12 +163,21 @@ \_cod ----------------------------- \_def\_preplangmore #1 #2{\_ea \_gdef \_csname _langspecific:#1\_endcsname{#2}} -\_def\_langdefault{\_frenchspacing} \_preplangmore en {\_nonfrenchspacing} \_preplangmore enus {\_nonfrenchspacing} \_def\_langdefault {\_frenchspacing} + \_doc ----------------------------- + The \`\_langreset` is processed before macros declared by \^`\_preplangmore` + or before \^`\_langdefault`. If you set something for + your language by \^`\_preplangmore` then use `\def\_langreset{}` + in this code too in order to return default values for all other languages. + See `cs` part of `lang-data.opm` file for an example. + \_cod ----------------------------- + +\_def\_langreset {} + \_doc ----------------------------- The default `\language=0` is US-English with original hyphenation patterns preloaded in the format (see the end of section~\ref[plain]). @@ -236,7 +245,7 @@ \_cod ----------------------------- \_def\_uselang#1#2#3#4{\_language=#2\_lefthyphenmin=#3\_righthyphenmin=#4\_relax - \_trycs{_langspecific:#1}{\_langdefault}% + \_langreset \_def\_langreset{}\_trycs{_langspecific:#1}{\_langdefault}% } \_doc ----------------------------- @@ -310,5 +319,6 @@ \_endcode +2022-10-11 \_langreset introduced 2022-02-19 \_langinput moved here 2022-02-17 released, original file was hyphen-lan.opm diff --git a/macros/optex/base/languages.opm b/macros/optex/base/languages.opm index 4ae66ef1f4..1d7558444c 100644 --- a/macros/optex/base/languages.opm +++ b/macros/optex/base/languages.opm @@ -1,6 +1,6 @@ %% This is part of the OpTeX project, see http://petr.olsak.net/optex -\_codedecl \_mtext {Languages <2022-02-19>} % preloaded in format +\_codedecl \_mtext {Languages <2022-11-18>} % preloaded in format \_doc ----------------------------- Four words are generated by \OpTeX/ macros: \"Chapter", @@ -120,8 +120,8 @@ \_def\_qqA#1#2#3{\_bgroup\_setverb \_catcode`\ =10 \_isnextchar\_bgroup{\_catcode`\{=1 \_catcode`\}=2 #1#2#3}{#1#2#3}} -\_long\_def\_qqB#1#2#3"{\_egroup#1\_scantextokens{#3}#2} -\_long\_def\_qqC#1#2#3'{\_egroup#1\_scantextokens{#3}#2} +\_def\_qqB#1#2#3"{\_egroup#1\_scantextokens{#3}#2} +\_def\_qqC#1#2#3'{\_egroup#1\_scantextokens{#3}#2} \_def\_regquotes#1#2#3#4{\_bgroup \_lccode`~=`#2\_lowercase{\_egroup \_def#1##1~}{#3##1#4}} \_doc ----------------------------- @@ -139,6 +139,7 @@ \_endcode % ------------------------------------- +2022-11-18 \"..." are not \long now 2022-02-19 \quotes, \_quotationmarks introduced 2022-02-04 \_langinput, words-lan.opm introduced 2021-05-23 \_monthw: bug fix diff --git a/macros/optex/base/makeindex.opm b/macros/optex/base/makeindex.opm index ba50352559..36b4a48c08 100644 --- a/macros/optex/base/makeindex.opm +++ b/macros/optex/base/makeindex.opm @@ -285,7 +285,7 @@ \_addto\_iilist{#1#2,}% % dvojice skupin vyresena \_sortreturn{\_fif\_mergesort}% % \mergesort dalsi \_fi - \_ifx\_end#3% % neco,konec (#1#2=neco) + \_ifx\_fin#3% % neco,konec (#1#2=neco) \_ifx\_empty\_iilist % neco=kompletni setrideny seznam \_def\_iilist{#1#2}% \_sortreturn{\_fif\_fif\_gobbletoend}% % koncim @@ -303,7 +303,7 @@ \_relax % zarazka, na ktere se zastavi \sortreturn } \_def\_sortreturn#1#2\_fi\_relax{#1} \_def\_fif{\_fi} -\_def\_gobbletoend #1\_end{} +\_def\_gobbletoend #1\_fin{} \_doc ----------------------------- The \`\_dosorting` `\list` macro redefines `\list` as sorted `\list`. @@ -342,7 +342,7 @@ \_csname _secondpass\_sortinglang \_endcsname % activates \_reversewords if needed \_def \_act##1{\_addto #1{##1,}}% \_edef #1{\_ea}\_ea\_xargs \_ea\_act #1;% commas between items added, mergesort initialized - \_edef \_iilist{\_ea}\_ea\_mergesort #1\_end,\_end + \_edef \_iilist{\_ea}\_ea\_mergesort #1\_fin,\_fin \_ea\_endgroup \_ea\_def\_ea#1\_ea{\_iilist}% } diff --git a/macros/optex/base/math-preload.opm b/macros/optex/base/math-preload.opm index 9f73ef24d1..a3ac3e44b3 100644 --- a/macros/optex/base/math-preload.opm +++ b/macros/optex/base/math-preload.opm @@ -1,6 +1,6 @@ %% This is part of the OpTeX project, see http://petr.olsak.net/optex -\_codedecl \normalmath {Math fonts CM + AMS preloaded <2022-07-22>} % preloaded in format +\_codedecl \normalmath {Math fonts CM + AMS preloaded <2022-12-01>} % preloaded in format \_doc ------------------------------ We have two math macros \`\normalmath` for the normal shape of all math @@ -126,47 +126,49 @@ like `\_loadmathfamily` does it. But the second parameter is a `\` declared previously by the `\font` primitive. \nl + The `` is saved by \^`\_loadmathfamily`, \^`\_setmathfamily` + to the \`\_mfam`. + \nl The font family is loaded at \`\_sizemtext`, \`\_sizemscript` and \`\_sizemsscript` sizes. These sizes are set by the \`\setmathsizes` `[//]` macro. These parameters are given in the \`\ptmunit` unit, it is set to 1\`\ptunit` and it is set to 1\,pt by default. \nl - \`\_corrmsize` `` can be used just before - `\_loadmathfamily` or `\_setmathfamily`. - The `` is decimal number, it denotes - scale-factor \"size of loaded math font in `\textstyle` : size of text font". - You can use it in `\_normalmath` or `\_boldmath` macros if you want to do a - corrections (for example due to different ex-height in text and math - font). The `\_corrmsize` is applied only to one following - `\_loadmathfamily` or `\_setmathfamily`. If it is missing - then the `` is 1 for such math family (i.e.\ no size corrections). + \`\_mfactor` sets scaling factor for given math fonts family + related to text font size. It does the setting `\_ptmunit=\_ptunit` where + the is defined by `\sdef{_mfactor:}{}`. + For eample, you can set `\sdef{_mfactor:1}{0.95}` if you found that + this scaling of math family 1 gives better visual compatibility + with used text fonts. If not declared then scaling factor is~1. \_cod ----------------------------- -\_def\_corrmsize#1 {\_ptmunit=#1\_ptunit} % for corrections of sizes in diferent fonts - -\_def\_loadmathfamily #1 #2 {% +\_def\_loadmathfamily {\_afterassignment\_loadmathfamilyA \_chardef\_mfam} +\_def\_loadmathfamilyA #1 {\_mfactor \_edef\_optsizesave{\_the\_optsize}% - \_optsize=\_sizemtext \_font\_mF=\_optfn{#2} at\_optsize \_textfont#1=\_mF - \_optsize=\_sizemscript \_font\_mF=\_optfn{#2} at\_optsize \_scriptfont#1=\_mF - \_optsize=\_sizemsscript \_font\_mF=\_optfn{#2} at\_optsize \_scriptscriptfont#1=\_mF - \_optsize=\_optsizesave \_ptmunit=\_ptunit + \_optsize=\_sizemtext \_font\_mF \_optfn{#1} at\_optsize \_textfont\_mfam=\_mF + \_optsize=\_sizemscript \_font\_mF \_optfn{#1} at\_optsize \_scriptfont\_mfam=\_mF + \_optsize=\_sizemsscript \_font\_mF \_optfn{#1} at\_optsize \_scriptscriptfont\_mfam=\_mF + \_optsize=\_optsizesave } -\_def\_setmathfamily #1 #2{\_let\_mF=#2% +\_def\_setmathfamily {\_afterassignment\_setmathfamilyA \_chardef\_mfam} +\_def\_setmathfamilyA #1{\_mfactor \_let\_mF=#1% \_edef\_optsizesave{\_the\_optsize}% - \_optsize=\_sizemtext \_fontlet#2=#2 at\_optsize \_textfont#1=#2% - \_optsize=\_sizemscript \_fontlet#2=#2 at\_optsize \_scriptfont#1=#2% - \_optsize=\_sizemsscript \_fontlet#2=#2 at\_optsize \_scriptscriptfont#1=#2% - \_optsize=\_optsizesave \_ptmunit=\_ptunit \_let#2=\_mF + \_optsize=\_sizemtext \_fontlet#1#1at\_optsize \_textfont\_mfam=#1% + \_optsize=\_sizemscript \_fontlet#1#1at\_optsize \_scriptfont\_mfam=#1% + \_optsize=\_sizemsscript \_fontlet#1#1at\_optsize \_scriptscriptfont\_mfam=#1% + \_optsize=\_optsizesave \_let#1=\_mF } \_def\_setmathsizes[#1/#2/#3]{\_ptmunit=\_ptunit \_def\_sizemtext{#1\_ptmunit}\_def\_sizemscript{#2\_ptmunit}% \_def\_sizemsscript{#3\_ptmunit}% } +\_def\_mfactor{\_ptmunit=\_trycs{_mfactor:\_the\_mfam}{}\_ptunit} + \_newdimen\_ptunit \_ptunit=1pt \_newdimen\_ptmunit \_ptmunit=1\_ptunit -\_public \setmathsizes \ptunit \ptmunit ; +\_public \setmathsizes \ptunit ; \_doc ----------------------------- \`\_setmathparam`` {}` sets @@ -176,10 +178,14 @@ \_cod ----------------------------- \_def\_setmathparam#1#2{% - #1\_displaystyle =#2\_fontdimen6\_textfont1 - #1\_textstyle =#2\_fontdimen6\_textfont1 - #1\_scriptstyle =#2\_fontdimen6\_scriptfont1 - #1\_scriptscriptstyle =#2\_fontdimen6\_scriptscriptfont1 + #1\_displaystyle =#2\_fontdimen6\_textfont1 + #1\_crampeddisplaystyle =#2\_fontdimen6\_textfont1 + #1\_textstyle =#2\_fontdimen6\_textfont1 + #1\_crampedtextstyle =#2\_fontdimen6\_textfont1 + #1\_scriptstyle =#2\_fontdimen6\_scriptfont1 + #1\_crampedscriptstyle =#2\_fontdimen6\_scriptfont1 + #1\_scriptscriptstyle =#2\_fontdimen6\_scriptscriptfont1 + #1\_crampedscriptscriptstyle =#2\_fontdimen6\_scriptscriptfont1 } \_doc ----------------------------- @@ -243,6 +249,9 @@ For example \_endinput +2022-12-01 reading number by \_loadmathfamily, \_setmathfamily more robust +2022-11-16: \_corrmsize removed, \_mfactor introduced +2022-09-04: \crampedstyles setings added. 2022-07-22: \_setmathparam\_Umathspaceafterscript added. 2022-02-22: \rm, \it, etc moved to fonts-select, \_marm, \_mait etc. introduced 2020-05-06: \itfam, \ttfam removed, (Unicode math preferred) diff --git a/macros/optex/base/math-unicode.opm b/macros/optex/base/math-unicode.opm deleted file mode 100644 index 22db1d095e..0000000000 --- a/macros/optex/base/math-unicode.opm +++ /dev/null @@ -1,343 +0,0 @@ -%% This is part of the OpTeX project, see http://petr.olsak.net/optex - -\_codedecl \loadmath {Unicode Math fonts <2022-07-22>} % preloaded in format - - \_doc ----------------------------- - \`\loadmath` `{}` loads the given font. It does: - \begitems - * define \`\_unimathfont` as ``, - * redefine `\normalmath` and `\boldmath` macros to their Unicode counterparts, - * load the `\_unimathfont` by `\normalmath`, - * print information about the loaded font on the terminal, - * redefine all encoding dependent setting by `\input unimath-codes.opm`, - * protect new loading by setting \`\_ifmathloading` to false. - \enditems - \`\noloadmath` disallows Unicode-math loading by \`\_mathloadingfalse`.\nl - \`\doloadmath` allows Unicode-math loading by \`\_mathloadingtrue`. - \_cod ----------------------------- - -\_newifi \_ifmathloading \_mathloadingtrue - -\_def\_noloadmath{\_mathloadingfalse} -\_def\_doloadmath{\_mathloadingtrue} - -\_def\_loadmath#1{% - \_ifmathloading - \_initunifonts - \_isfont{#1}\_iffalse - \_opwarning{Math font "#1" not found, skipped...}% - \_else - \_def\_unimathfont{#1}% - \_let\_normalmath = \_normalunimath \_let\_boldmath = \_boldunimath - \_normalmath - \_wterm {MATH-FONT: "#1" -- unicode math prepared.}% - \_ifx\_ncharrmA\_undefined \_opinput {unimath-codes.opm}\_fi - \_mathloadingfalse - \_fi\_fi} - -\_public \loadmath \noloadmath \doloadmath ; - - \_doc ----------------------------- - \`\loadboldmath` `{} \to {}` - defines \`\_unimathboldfont` as `` only if `\_unimathfont` is - defined as ``. It is used when \^`\boldmath` macro is run. - When no `\_unimathboldfont` is defined then the `\boldmath` macro - use \"fake bold" generated by `embolden` \LuaTeX/ font feature. - \_cod ----------------------------- - -\_def\_loadboldmath#1#2\to #3{% - \_def\_tmp{#3}\_ifx\_unimathfont\_tmp % do work only if #3 is loaded as normal Math - \_isfont{#1}\_iffalse - \_opwarning{Bold-Math font "#1" not found, skipped...} - \_else - \_def\_unimathboldfont{#1}% - \_wterm {MATH-FONT: "#1" -- unicode math bold prepared.}% - \_fi\_fi} - -\_public \loadboldmath ; - - \_doc ----------------------------- - The Unicode version of the \^`\normalmath` and \^`\boldmath` macros - are defined here as \`\_normalunimath` and \`\_boldunimath` macros. - They are using \`\_setunimathdimens` in a similar sense as - \^`\_setmathdimens`. - \nl - You can combine more fonts if you register them to another - math families (5, 6, 7, etc.) in the \^`\normalmath` macro. - \nl - The default value of \^`\_normalunimath` shows a combination of base Unicode-math - font with 8bit Math font at family 4. See definition of `\script` macro where - `\fam4` is used. - \_cod ----------------------------- - -\_def\_normalunimath{% - \_loadumathfamily 1 {\_unimathfont}{} % Base font - \_loadmathfamily 4 rsfs % script - \_setunimathdimens -}% -\_def\_boldunimath{% - \_ifx\_unimathboldfont \_undefined - \_loadumathfamily 1 {\_unimathfont}{embolden=1.7;} % Base faked bold - \_else - \_loadumathfamily 1 {\_unimathboldfont}{} % Base real bold font - \_fi - \_loadmathfamily 4 rsfs % script - \_setunimathdimens -}% -\_def\_setunimathdimens{% PlainTeX sets these dimens for 10pt size only: - \_delimitershortfall=0.5\_fontdimen6\_textfont1 - \_nulldelimiterspace=0.12\_fontdimen6\_textfont1 - \_setmathparam\_Umathspaceafterscript \_scriptspacefactor - \_setbox0=\_hbox{\_everymath{}$\_fam1\_displaystyle{0\_atop0}$}% - \_Umathfractiondelsize\_displaystyle = \_dimexpr(\_ht0-\_Umathaxis\_displaystyle)*2\_relax - \_setbox0=\_box\_voidbox -} - - \_doc ----------------------------- - If you try the example above about - \~`\loadboldmath``{[xitsmath-bold]} \to {[xitsmath-regular]}` - then you can find a bug in XITSMath-Bold font: the symbols for norm - $\|x\|$ are missing. So, we have to define `\_boldmath` macro manually. - The missing symbol is loaded from family 5 as no-bold variant in our example: - \begtt - \loadmath{[xitsmath-regular]} - \def\_boldmath{% - \_loadumathfamily 1 {[xitsmath-bold]}{} % Base font - \_loadmathfamily 4 rsfs % script - \_loadumathfamily 5 {[xitsmath-regular]}{} - \_def\|{\_Udelimiter 0 5 "02016 }% % norm delimiter from family 5 - \_setmathdimens - } - \endtt - - \`\_loadumathfamily` ` {}{}` - loads the given Unicode-math fonts in three sizes - using single with different `mathsize=1,2,3` font features. - The math font family is set with given ``. - The `` are added to the default - \`\_mfontfeatures` and to the size-dependent features `ssty=1` - if script size is asked or `ssty=2` if scriptscriptsize is asked.\nl - \`\_mparams``` inserts additional font feature `nomathparam` - if the of the family is greater than 3. Lua\TeX/ sets math - parameters (thickness of fraction rules etc., see section 7.4 in Lua\TeX/ - documentation) repeatedly from loaded math - fonts if `nomathparam` is not given. We want to load these parameters only - from fonts at families 0--3 (and actually we are using only family 1 as main math font).\nl - The \^`\_corrmsize` `` can be used just before - `\_loadumathfamily`, see section~\ref[math-preload] for more information.\nl - The \`\_textmff`, \`\_scriptmff` and \`\_sscriptmff` are font - features for text, script and sscript sizes respectively. They are - locally re-defined in \^`\mathbox` macro. - \_cod ----------------------------- - -\_def\_umathname#1#2{"#1:\_mfontfeatures#2"} -\_def\_mfontfeatures{mode=base;script=math;} - -\_def\_loadumathfamily #1 #2#3 {% - \_font\_mF=\_umathname{#2}{\_textmff \_mparams{#1}#3} at\_sizemtext \_textfont #1=\_mF - \_font\_mF=\_umathname{#2}{\_scriptmff \_mparams{#1}#3} at\_sizemtext \_scriptfont #1=\_mF - \_font\_mF=\_umathname{#2}{\_sscriptmff\_mparams{#1}#3} at\_sizemtext \_scriptscriptfont#1=\_mF - \_ptmunit=\_ptunit -} -\_def\_textmff {ssty=0;mathsize=1;} -\_def\_scriptmff {ssty=1;mathsize=2;} -\_def\_sscriptmff{ssty=2;mathsize=3;} -\_def\_mparams#1{\_ifnum#1>3 nomathparam;\_fi} - - \_doc ----------------------------- - Unicode math font includes all typical math alphabets together, user needs not to - load more \TeX/ math families. These math alphabets are encoded by - different parts of Unicode table. We need auxiliary macros for setting - mathcodes by selected math alphabet. - \nl - \`\_umathrange` `{-}\` sets `\Umathcode`s - of the characters in the interval `-` to `\`, - `\+1`, `\+2` - etc., but \`\_umathcharholes` are skipped - (`\_umathcharholes` are parts of the Unicode table not designed for math - alphabets, they cause that the math alphabets are - not continuously spread out in the table; I mean that the - designers were under the influence of drugs when they created - this part of the Unicode table). - The `-` clause includes characters like~`A-Z`. - \nl - \`\_umahrangegreek` `\` is the same as - `\_umathrange {-}\`. - \nl - \`\_umahrangeGREEK` `\` is the same as - `\_umathrange {-}\`. - \nl - \`\_greekdef` ` \_relax` defines each control sequence - as a normal character with codes `\_umathnumB`, `\_umathnumB+1`, - `\_umathnumB+2` etc. It is used for redefinig the contol sequences for - math Greek `\alpha`, `\beta`, `\gamma` etc. - \_cod ----------------------------- - -\_newcount\_umathnumA \_newcount\_umathnumB - -\_def\_umathcorr#1#2{\_ea#1\_ea{\_the#2}} -\_def\_umathprepare#1{\_def\_umathscanholes##1[#1]##2##3\_relax{##2}} -\_def\_umathvalue#1{\_ea\_umathscanholes\_umathcharholes[#1]{#1}\_relax} - -\_def\_umathcharholes{% holes in math alphabets: - [119893]{"210E}[119965]{"212C}[119968]{"2130}[119969]{"2131}% - [119971]{"210B}[119972]{"2110}[119975]{"2112}[119976]{"2133}[119981]{"211B}% - [119994]{"212F}[119996]{"210A}[120004]{"2134}% - [120070]{"212D}[120075]{"210C}[120076]{"2111}[120085]{"211C}[120093]{"2128}% - [120122]{"2102}[120127]{"210D}[120133]{"2115}[120135]{"2119} - [120136]{"211A}[120137]{"211D}[120145]{"2124}% -} -\_def\_umathrange#1#2#3#4{\_umathnumB=#4\_def\_tmp{#2 #3 }\_umathrangeA#1} -\_def\_umathrangeA#1-#2{\_umathnumA=`#1\_relax - \_loop - \_umathcorr\_umathprepare\_umathnumB - \_Umathcode \_umathnumA = \_tmp \_umathcorr\_umathvalue{\_umathnumB} - \_ifnum\_umathnumA<`#2\_relax - \_advance\_umathnumA by1 \_advance\_umathnumB by1 - \_repeat -} -\_def\_umathrangeGREEK{\_umathrange{^^^^0391-^^^^03a9}} -\_def\_umathrangegreek{\_umathrange{^^^^03b1-^^^^03d6}} -\_def\_greekdef#1{\_ifx#1\_relax \_else - \_begingroup \_lccode`X=\_umathnumB \_lowercase{\_endgroup \_def#1{X}}% - \_advance\_umathnumB by 1 - \_ea\_greekdef \_fi -} - - \_doc ----------------------------- - \`\addUmathfont` ` {[]}{} {[]}{} {}` - allocates new using \^`\newfam` and adds loading this font to the - \~`\normalmath` and \~`\boldmath` macros. Note that allocationos using - \^`\newfam` starts from 43 because numbers 1--42 are reserved for direct - usage without \^`\newfam`. - \_cod ----------------------------- - -\_def\_addUmathfont #1#2#3#4#5#6{% #1: fam (will be set), #2#3: normal font, #4#5: bold font - \_ifx\_ncharrmA\_undefined \_errmessage{basic Unicode math font must be loaded first}% - \_else \_isfont{#2}\_iffalse \_opwarning{font #2 is unavailable}% - \_else - \_newfam#1\_relax - \_global\_addto\_normalmath{\_corrmsize#6 \_loadumathfamily #1 {#2}{#3} }% - \_ifx\_relax#4\_relax - \_global\_addto\_boldmath{\_corrmsize#6 \_loadumathfamily #1 {#2}{embolden=1.7;} }% - \_else - \_global\_addto\_boldmath{\_corrmsize#6 \_loadumathfamily #1 {#4}{#5} }% - \_fi - \_normalmath - \_wterm{add-MATH-FONT: #1=\the#1, "#2", \ifx"#4"\else bold: "#4"\fi}% - \_fi \_fi -} - - \_doc ----------------------------- - \`\resetmathchars` ` ;` - saves to \`\_mafam` and applies \`\_resetmathcharsX` - to each sequence from . - The `\directlua` chunk prints the 8-digits hexadecimal code of the - sequence followed by the sequence itself. The digts are scanned by \`\_resetmathcharsY` - and new `\Umathchardef` and `\Umathcode` is declared. Note that the used - primitives have the syntax: - \begtt \catcode`<=13 - \Umathchardef - \Umathcode - \endtt - \_cod ----------------------------- - -\_def\_resetmathchars #1{\_chardef\_mafam=#1\_relax \_xargs \_resetmathcharX} -\_def\_resetmathcharX#1{\_ea\_resetmathcharY - \_directlua{tex.print(string.format("\_pcent08X", \_the#1))}#1} -\_def\_resetmathcharY#1#2#3#4#5#6#7#8#9{% #9 is given \math-sequence - \_Umathchardef #9\_numexpr"#3/2\_relax \_mafam "#4#5#6#7#8 - \_Umathcode "#4#5#6#7#8=\_numexpr"#3/2\_relax \_mafam "#4#5#6#7#8 -} -\_public \addUmathfont \resetmathchars ; - -\_endcode - - -The \^`\loadmath` `{}` macro loads math fonts and -redefines all default math-codes using `\input unimath-codes.opm`. -If Unicode-math font is loaded then \^`\_mathloadingfalse` -is set, so the new Unicode-math font isn't loaded until \^`\doloadmath` is used. - -\^`\loadboldmath` `{} \to {}` loads bold variant only -if `` was sucessully loaded by the previous `\loadmath`. For example: - -\begtt -\loadmath {[xitsmath-regular]} -\loadboldmath {[xitsmath-bold]} \to {[xitsmath-regular]} -\endtt -There are very few Unicode-math fonts with full \~`\boldmath` support. -I know only XITSMath-Bold and KpMath-Bold. If \^`\loadboldmath` is not used -then \"faked bold" created from \~`\normalmath` is used by default. - -The {\em main math font} is loaded by \^`\loadmath` (typically indirectly using -\^`\fontfam`) and you can load more {\em additional math fonts} by -\^`\addUmathfont`: -\begtt \catcode`<=13 -\addUmathfont \famname {[]}{} {[]}{} {} -\endtt -The `\famname` is a control sequence declared by \^`\addUmathfont` for later -use. It gets math family number. The `` is decimal number for size -corrections in view of the main math font. If it is empty then =1. -If is empty, the \"faked bold" derived from is used. -Example: -\begtt -\fontfam[lm] % does \lodmath{[latinmodern-math]} -\addUmathfont \xits {[XITSMath-Regular]}{} {[XITSMath-Bold]}{} {} -\endtt -% -declares `latinmodern-math` as main math font (its bold variant is \"faked bold") -and the additional math font `\xits` is `XITSMath-Regular` for normal -printing and `XITSMath-Bold` for bold printing. - -All characters used in math formula is printed from main math font by -default. But you can redeclare a list of characters for printing from -additional font by \^`\resetmathchars` `\famname ;`. For -example: - -\begtt -\resetmathchars \xits \stareq \triangleq \veeeq \wedgeq ; -\endtt -% -sets the characters `\stareq`, `\triangleq`, `\veeeq`, `\wedgeq` from -the `\xits` additional font. You can see all possible sequences by -`\input print-unimath.opm`. -If you want to use whole math alphabet from additional math font, use -`\addto\selector{\fam\famname}`, for example `\addto\cal{\fam\xits}` -declares all `\cal` characters from the `\xits` font loaded by -\^`\addUmathfont`. - - -\secc Unicode-math macros preloaded in the format - -\printdoc math-unicode.opm - - -\secc[unimath-codes] Macros and codes set when `\loadmath` is processed firstly - -The file `unimath-codes.opm` is loaded when the \^`\loadmath` is used. The -macros here redefines globally all encoding dependent settings declared in -the section~\ref[math-macros]. - -\printdoc unimath-codes.opm -\printdoctail unimath-codes.opm - -\secc Printing all Unicode math slots in used math font - -\printdoctail print-unimath.opm -\printdoc print-unimath.opm - -\_endinput - -2022-07-22 \Umathspaceafterscript setting added. -2022-06-10 \addUmathfont and \resetmathchars added. -2021-08-16 \_loadumathfamily simplified, used mathsize= font feature. -2021-08-16 nomathparam font feature used for families > 3 (bug fixed). -2021-08-02 ssty fontfeatures rewritten; fam2, fam3 unused, \scriptspace not set -2021-04-04 \_setunimathdimens: \setbox0=\box\voidbox added -2021-03-09 \_setunimathdimes: \_begin/end/group instead {}, bug fixed -2021-02-15 \_textmff, \_scriptmff and \_sscriptmff introduced -2021-02-15 \_expandafter -> \_ea -2020-06-07 \Umathfractiondelsize (for \choose brackets) corrected, see https://tug.org/pipermail/luatex/2020-June/007365.html -2020-04-15 \_setmathdimens -> \_setuniathdimens -2020-02-25 implemented diff --git a/macros/optex/base/more-macros.opm b/macros/optex/base/more-macros.opm index f256458184..418e71b774 100644 --- a/macros/optex/base/more-macros.opm +++ b/macros/optex/base/more-macros.opm @@ -1,6 +1,6 @@ %% This is part of the OpTeX project, see http://petr.olsak.net/optex -\_codedecl \eoldef {OpTeX useful macros <2022-05-24>} % preloaded in format +\_codedecl \eoldef {OpTeX useful macros <2022-11-24>} % preloaded in format \_doc ----------------------------- We define \`\opinput` `{}` macro which @@ -89,7 +89,7 @@ loaded file is forgotten after the `\opinput`. \_cod ----------------------------- -\_def \_load [#1]{\_loadA #1,,,\_end} +\_def \_load [#1]{\_savemathsb \_loadA #1,,,\_end \_restoremathsb} \_def \_loadA #1#2,{\_ifx,#1 \_ea \_loadE \_else \_loadB{#1#2}\_ea\_loadA\_fi} \_def \_loadB #1{% \_ifcsname _load:#1\_endcsname \_else @@ -105,25 +105,29 @@ The declarator \`\optdef``\macro [] {}` defines the `\macro` with the optional parameter followed by normal parameters declared in ``. The optional parameter must be used as the first - first parameter in brackets `[...]`. If it isn't used then + parameter in brackets `[...]`. If it isn't used then is taken into account. The `` can use `\the\opt` because optional parameter is saved to the \`\opt` tokens register. Note the difference from \LaTeX/ concept where the optional parameter is in `#1`. \OpTeX/ uses `#1` as the first normal parameter (if declared). - The \`\_nospaceafter` ignores the following optional space at expand + The \`\nospaceafter` ignores the following optional space at expand processor level using the negative `\romannumeral` trick. + The \`\nospacefuturelet` bahaves like `\futurelet` primitive, but it + ignores the following optional space and works at expand processor level. \_cod ----------------------------- +\_newtoks\_opt \_def\_optdef#1[#2]{% \_def#1{\_opt={#2}\_isnextchar[{\_cs{_oA:\_csstring#1}}{\_cs{_oB:\_csstring#1}}}% \_sdef{_oA:\_csstring#1}[##1]{\_opt={##1}\_cs{_oB:\_csstring#1\_nospaceafter}}% \_sdef{_oB:\_csstring#1\_nospaceafter}% } -\_def\_nospaceafter#1{\_ea#1\_romannumeral-`\.} -\_newtoks\_opt +\_def\_nospaceafter#1{\_ea#1\_romannumeral-`\.\_noexpand} +\_def\_nospacefuturelet#1#2{\_ea\_immediateassignment + \_ea\_futurelet\_ea#1\_ea#2\_romannumeral-`\.\_noexpand} -\_public \opt \optdef ; +\_public \opt \optdef \nospaceafter \nospacefuturelet ; \_doc ----------------------------- The declarator \`\eoldef``\macro #1{}` defines a `\macro` @@ -150,8 +154,8 @@ \_eoldef\_skiptoeol#1{} \_def\_bracedparam#1{\_ifcsname _\_csstring #1:M\_endcsname \_csname _\_csstring #1:M\_ea \_endcsname - \_else \_csname __in\_csstring #1:M\_ea \_endcsname \_fi -} + \_else \_csname _in\_csstring #1\_ea \_endcsname \_fi +} \_public \eoldef \skiptoeol \bracedparam ; \_doc ----------------------------- @@ -170,10 +174,10 @@ the next line continues. \_cod ----------------------------- -\_def\_scantoeol#1{\def\_tmp{#1}\_begingroup \_setscancatcodes \_scantoeolA} +\_def\_scantoeol#1{\_begingroup \_setscancatcodes \_scantoeolA #1} \_def\_setscancatcodes{\_setverb \_catcode`\^^M=12\_catcode`\^=7\_catcode`\ =10\_catcode`\^^J=14 } \_catcode`\^^M=12 % -\_def\_scantoeolA#1^^M{\_endgroup \_tmp{#1}}% +\_def\_scantoeolA#1#2^^M{\_endgroup #1{#2}}% \_normalcatcodes % \_public \scantoeol ; @@ -194,13 +198,20 @@ It finishes processing or appends the next part to `\_tmptoks` separated by and continues loop. The final part of the macro removes the last `?` from resulting `\_tmptoks` and defines a new version of the `\foo`. + + The \^`\replstring` macro is not expandable, but you can create your + expandable macro, for example: + \begtt + \def\replAB#1{\immediateassigned{\def\tmp{#1}\replstring\tmp{A}{B}}\the\_tmptoks} + \replAB {text A \and A} % expands to "text B \and B" + \endtt \_cod ----------------------------- \_newtoks\_tmptoks \_catcode`!=3 \_catcode`?=3 \_def\_replstring #1#2#3{% \replstring #1{stringA}{stringB} \_long\_def\_replacestringsA##1#2{\_tmptoks{##1}\_replacestringsB}% - \_long\_def\_replacestringsB##1#2{\_ifx!##1\_relax \_else \_toksapp\_tmptoks{#3##1}% + \_long\_def\_replacestringsB##1#2{\_ifx!##1\_relax \_else \_tmptoks\_ea{\_the\_tmptoks#3##1}% \_ea\_replacestringsB\_fi}% \_ea\_replacestringsA #1?#2!#2% \_long\_def\_replacestringsA##1?{\_tmptoks{##1}\_edef#1{\_the\_tmptoks}}% @@ -232,7 +243,22 @@ \_def\_removespaces #1 {\_isempty{#1}\_iffalse #1\_ea\_removespaces\_fi} \_ea\_def \_ea\_ignorept \_ea#\_ea1\_detokenize{pt}{#1} -\public \removespaces \ignorept ; +\_public \removespaces \ignorept ; + + \_doc ----------------------------- + If you do `\let\foo=a` then it is not simple to return from `\foo` to the original + character code of `a`. You can write \code{`a} but you cannot write \code{`\\foo}. + The macro \`\cstochar``` solves this problem. If the sequence + is equal to a character then it expands to this character (always with + catcode 12). If it isn't equal to a character then it expands to nothing. + You can say \code{\\expanded{`\\cstochar\\foo}} if you want to extract + the character code. + \_cod ----------------------------- + +\_def\_cstochar#1{\_ea\_cstocharA\_meaning#1 {} {} \_fin} +\_def\_cstocharA#1 #2 #3 #4\_fin{\_isinlist{#1#2}-\_iffalse #3\_fi} + +\_public \cstochar ; \_doc ----------------------------- You can use expandable \`\bp``{}` convertor from @@ -261,6 +287,53 @@ \_public \expr \bp ; + \_doc ------------------ + You can write \^`\setpos``[ = + \Udelcode = + \endtt + \_cod ----------------------------- + +\_def\_mathchars {\_afterassignment\_mathcharsA \_chardef\_mafam=} +\_def\_mathcharsA #1{\_foreach #1\_do{% + \_ifcsname _d:\_csstring##1\_endcsname \_ea \_mathcharsD \_csname _d:\_csstring##1\_endcsname + \_else \_mathcharsC ##1\_fi +}} +\_def\_mathcharsC #1{\_ea\_mathcharsB + \_directlua{tex.print(string.format("\_pcent08X", \_the\_Umathcode#1))}#1% +} +\_def\_mathcharsB #1#2#3#4#5#6#7#8#9{% #9 is given \math-sequence + \_ifcsname _\_csstring#9op\_endcsname + \_ea \_Umathchardef \_csname _\_csstring#9op\_endcsname=1 \_mafam #9\_relax + \_else + \_Umathcode "#4#5#6#7#8=\_numexpr"#3/2\_relax \_mafam "#4#5#6#7#8 + \_fi +} +\_def\_mathcharsD #1{\_mathcharsC #1\_relax \_Udelcode #1=\_mafam #1\_relax} + + \_doc ----------------------------- + \`\mathcodes` ` {}` sets mathcodes of given + characters with explicit es. Each pair can be `{}` + and `` can include \`\Urange` `-`. + This is reason why we apply `\expanded` to the `` + before reading it by \^`\foreach`: the \^`\Urange` is expandable + and expands to the relevant list of characters. + \_cod ----------------------------- + +\_def\_mathcodes{\_afterassignment\_mathcodesA\_chardef\_mafam=} +\_def\_mathcodesA#1{% + \_foreach #1\_do ##1##2{% + \_ea\_foreach\_expanded{##2}\_do{\_Umathcode `####1=##1\_mafam`####1}% + }% +} +\_def\_Urange #1-#2{\_fornum `#1..`#2\_do{\_Uchar##1 }} + +\_public \addUmathfont \mathchars \mathcodes \Urange ; + +\_endcode + + +The \^`\loadmath` `{}` macro loads math fonts and +redefines all default math-codes using `\input unimath-codes.opm`. +If Unicode-math font is loaded then \^`\_mathloadingfalse` +is set, so the new Unicode-math font isn't loaded until \^`\doloadmath` is used. + +\^`\loadboldmath` `{} \to {}` loads bold variant only +if `` was sucessully loaded by the previous `\loadmath`. For example: + +\begtt +\loadmath {[xitsmath-regular]} +\loadboldmath {[xitsmath-bold]} \to {[xitsmath-regular]} +\endtt +There are very few Unicode-math fonts with full \~`\boldmath` support. +I know only XITSMath-Bold and KpMath-Bold. If \^`\loadboldmath` is not used +then \"faked bold" created from \~`\normalmath` is used by default. + +The {\em main math font} is loaded by \^`\loadmath` (typically indirectly using +\^`\fontfam`) and you can load more {\em additional math fonts} by +\^`\addUmathfont`: +\begtt \catcode`<=13 +\addUmathfont \famname {[]}{} {[]}{} {} +\endtt +The `\famname` is a control sequence declared by \^`\addUmathfont` for later +use. It gets math family number. The `` is decimal number for size +corrections in view of the main math font. If it is empty then =1. +If is empty, the \"faked bold" derived from is used. +Example: +\begtt +\fontfam[lm] % does \lodmath{[latinmodern-math]} +\addUmathfont \xits {[XITSMath-Regular]}{} {[XITSMath-Bold]}{} {} +\endtt +% +declares `latinmodern-math` as main math font (its bold variant is \"faked bold"). +The additional math font family `\xits` is declared in the example. It uses +`XITSMath-Regular` for normal printing and `XITSMath-Bold` for bold printing. + +All characters used in math formula are printed from main math font by +default. But you can re-declare characters for printing from +additional font by \^`\mathchars` `\famname {}`. For +example: + +\begtt +\mathchars \xits {\stareq \triangleq \veeeq \wedgeq} +\endtt +% +sets the characters `\stareq`, `\triangleq`, `\veeeq`, `\wedgeq` from +the `\xits` additional font. The can include +control sequences from the `unicode-table.tex`, but no math +accents. These contol sequences can be printed by `\input print-unimath.opm`. + +The \^`\mathchars` macro keeps the class and slot of declared math objects +and re-declares only family of them. It is applied to all control +sequences given in the parameter. The relevant math codes are re-declared. + +Use `\addto\selector{\fam\famname}` if you want to print whole math alphabet +from an additional math font. For example `\addto\cal{\fam\xits}` +declares all `\cal` characters from the `\xits` font loaded by +\^`\addUmathfont`. + +The \^`\mathcodes` macro provides comfortable settings of math codes of math +objects. Its syntax is \^`\mathcodes` ` {}`. Each pair +in the is `` (separated by optional +space) or `{}`. The +includes declared characters or \^`\Urange` `-` which is equal to the +list of characters beginning and ending , for example +`\Urange a-d` is equal to `abcd`. + +The \^`\mathcodes` macro declares mathcode of given characters internally by +\begtt \catcode`<=13 +\Umathcode ` = ` +\endtt + +The \^`\mathcodes` macro sets math codes of given Unicode characters. +The relevant control sequence from `unicode-table.tex` changes its +behavior too. For example, If you change math code of × then the +`\times` control sequence will behave like new declared ×. + + +\secc Unicode-math macros preloaded in the format + +\printdoc unimath-macros.opm + + +\secc[unimath-codes] Macros and codes set when `\loadmath` is processed firstly + +The file `unimath-codes.opm` is loaded when the \^`\loadmath` is used. The +macros here redefines globally all encoding dependent settings declared in +the section~\ref[math-macros]. + +\printdoc unimath-codes.opm +\printdoctail unimath-codes.opm + +\secc Printing all Unicode math slots in used math font + +\printdoctail print-unimath.opm +\printdoc print-unimath.opm + +\_endinput + +2022-12-01 reading number by \_loadumathfamily more robust +2022-11-18 \mathchars improved, \Udelcodes are set too, \addUmathfont uses \ahead +2022-11-17 \Umathchardef replaced by \chardef +2022-11-16 \resetmathchars removed, \mathchars, \mathcodes introduced +2022-11-13 \_setfontfamily 0 added. +2022-07-22 \Umathspaceafterscript setting added. +2022-06-10 \addUmathfont and \resetmathchars added. +2021-08-16 \_loadumathfamily simplified, used mathsize= font feature. +2021-08-16 nomathparam font feature used for families > 3 (bug fixed). +2021-08-02 ssty fontfeatures rewritten; fam2, fam3 unused, \scriptspace not set +2021-04-04 \_setunimathdimens: \setbox0=\box\voidbox added +2021-03-09 \_setunimathdimes: \_begin/end/group instead {}, bug fixed +2021-02-15 \_textmff, \_scriptmff and \_sscriptmff introduced +2021-02-15 \_expandafter -> \_ea +2020-06-07 \Umathfractiondelsize (for \choose brackets) corrected, see https://tug.org/pipermail/luatex/2020-June/007365.html +2020-04-15 \_setmathdimens -> \_setuniathdimens +2020-02-25 implemented diff --git a/macros/optex/base/verbatim.opm b/macros/optex/base/verbatim.opm index 201dc66fd9..ac00369d33 100644 --- a/macros/optex/base/verbatim.opm +++ b/macros/optex/base/verbatim.opm @@ -138,7 +138,7 @@ } \_ea\_def\_ea\_startverb \_ea#\_ea1\_csstring\\endtt#2^^J{% \_prepareverbdata\_tmpb{#1^^J}% - \_ea\_printverb \_tmpb\_end + \_ea\_printverb \_tmpb\_fin \_par \_restoremathsb \_endgroup \_ttskip \_isnextchar\_par{}{\_noindent}% @@ -172,10 +172,10 @@ \_ifx\_printverblinenum\_relax \_else \_incr\_ttline \_fi \_testcommentchars #1\_relax\_relax\_relax \_iftrue - \_ifx\_end#2\_printcomments\_fi + \_ifx\_fin#2\_printcomments\_fi \_else \_ifx\_vcomments\_empty\_else \_printcomments \_def\_vcomments{}\_fi - \_ifx\_end#2% + \_ifx\_fin#2% \_bgroup \_adef{ }{}\_def\t{}% if the last line is emtpy, we don't print it \_ifcat&\_egroup \_ifx\_printverblinenum\_relax \_else \_decr\_ttline \_fi \_else\_egroup \_printverbline{#1}\_fi @@ -183,7 +183,7 @@ \_printverbline{#1}% \_fi \_fi - \_unless\_ifx\_end#2\_afterfi{\_printverb#2}\_fi + \_unless\_ifx\_fin#2\_afterfi{\_printverb#2}\_fi } \_def\_printverbline#1{\_putttpenalty \_indent \_printverblinenum \_kern\_ttshift #1\_par} \_def\_initverblinenum{\_tenrm \_thefontscale[700]\_ea\_let\_ea\_sevenrm\_the\_font} @@ -274,7 +274,7 @@ \_repeat \_ea\_prepareverbdata \_ea \_tmpb\_ea{\_tmpb^^J}% \_catcode`\ =10 \_catcode`\%=9 % used in \commentchars comments - \_ea\_printverb \_tmpb\_end + \_ea\_printverb \_tmpb\_fin \_ttlinesave \_par \_restoremathsb \_endgroup diff --git a/macros/optex/doc/mte-doc.tex b/macros/optex/doc/mte-doc.tex deleted file mode 100644 index 030f023d3f..0000000000 --- a/macros/optex/doc/mte-doc.tex +++ /dev/null @@ -1,26 +0,0 @@ -% This is part of mte.opm macro package for OpTeX - -% Run optex mte-doc -% (two times) to generate documentation including references and the index. - -\load [doc] - -\def\elink[#1]#2{% - \ulink[http://petr.olsak.net/ftp/olsak/optex/tex-nutshell.pdf\#cs:#1]% - {\tt\string#2}% -} -\def\olink[#1]#2{% - \ulink[http://petr.olsak.net/ftp/olsak/optex/optex-doc.pdf\#cs:#1]% - {\tt\string#2}% -} -\let\_urllinkcolor=\Cyan - -\printdoctail mte.opm -\printdoc mte.opm - -\nonum\sec Index -\begmulti 3 -\tt \makeindex -\endmulti - -\bye diff --git a/macros/optex/doc/optex-doc.pdf b/macros/optex/doc/optex-doc.pdf index bf9f70a326..666e8793e6 100644 Binary files a/macros/optex/doc/optex-doc.pdf and b/macros/optex/doc/optex-doc.pdf differ diff --git a/macros/optex/doc/optex-doc.tex b/macros/optex/doc/optex-doc.tex index 785a181b1d..de9639a576 100644 --- a/macros/optex/doc/optex-doc.tex +++ b/macros/optex/doc/optex-doc.tex @@ -21,7 +21,7 @@ \tit Format Based on Plain \TeX/ and OPmac\fnotemark1 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\hfill Version 1.08 +\hfill Version 1.09 \centerline{\it Petr Olšák, 2020, 2021, 2022} diff --git a/macros/optex/doc/optex-math.tex b/macros/optex/doc/optex-math.tex index ab127ea762..e94b742d66 100644 --- a/macros/optex/doc/optex-math.tex +++ b/macros/optex/doc/optex-math.tex @@ -37,6 +37,20 @@ \def\x`{\bgroup\_setverb\xx} \bgroup \lccode\string`\.=\string`\` \lowercase{\egroup \def\xx #1#2.{\i #2 \egroup `#1#2.}} +\bgroup +\globaldefs=-1 +\def\refs{} \tmpnum=0 +\def\_Xtoc#1#2#3{\incr\tmpnum + \ea\addto \ea\refs \expanded{{\noexpand\sdef{r:#3}{\the\tmpnum}}} + \scantoeol\ignoreit +} +\isfile{optex-doc.ref}\iftrue \input{optex-doc.ref}\fi +\ea +\egroup +\refs + +\def\urloptexdoc{https://petr.olsak.net/ftp/olsak/optex/optex-doc.pdf} +\def\optexdoc[#1]{\ea\ulink\expanded{[\urloptexdoc\#toc:\trycs{r:#1}{}]}} \hyperlinks\Green\Green @@ -69,8 +83,8 @@ There are more types of extensions: e\TeX, lua\TeX/, Unicode math and is appended to the red triangle to inform you about the extension type. Nevertheless, \OpTeX/ user doesn't have to worry about it, all extensions are available if Unicode Math font is loaded (e.g., by the command -`\fonfam[lmfonts]`). See section 1.3.3 in \OpTeX/ documentation about -loading Unicode math fonts. +`\fonfam[lmfonts]`). See \optexdoc[1.3.3]{section 1.3.3} in \OpTeX/ +documentation about loading Unicode math fonts. {\iindent=2em \bigskip @@ -109,7 +123,8 @@ The math atoms are \ii single/math/object {\em single math objects} or \fnote{In \OpTeX/, the character `_` can be interpreted as a part of the control sequence name, not as the subscript constructor. But in common cases, constructions of math atoms are interpreted exactly as in plain \TeX. See sections - 2.2.2 and 2.14 of \OpTeX/ documentation for more details. If you want to + \optexdoc[2.2.2]{2.2.2} and \optexdoc[2.15]{2.15} + of \OpTeX/ documentation for more details. If you want to be sure that `_` is just a subscript constructor in \OpTeX/ then you can set \code{\\catcode`\\_=8} but after this, you cannot use control sequences with `_` character.} The constructors for exponent `^` and subscript `_` can be used in arbitrary order @@ -644,8 +659,8 @@ in another than this default shape, then we can use \x`\mit`, \x`\rm`, \x`\it`, \x`\bf`, \x`\cal`. \new \OpTeX/ \OpTeX/ supports more such selectors \x`\script`, \x`\frak`, \x`\bbchar`, \x`\bi`, see -section 1.3.3 in the \OpTeX/ documentation. The math selectors have local -validity in the group. +\optexdoc[1.3.3]{section 1.3.3} in the \OpTeX/ documentation. +The math selectors have local validity in the group. The control sequences \x`\rm`, \x`\it`, \x`\bf`, and \x`\bi` act as variant selectors of fonts in non-math mode (text mode) and they act @@ -1410,7 +1425,7 @@ operator: $$ \sum/_{\eqlines{\baselineskip=.7\baselineskip}\eqstyle{\scriptstyle}\eqalign{ i &\in A \cr - \quad j &\in B\cup C \cr + j &\in B\cup C \cr m &\in C }} i + j + m $$ @@ -1418,7 +1433,7 @@ $$ $$ \sum_{\eqlines{\baselineskip=.7\baselineskip}\eqstyle{\scriptstyle}\eqalign{ i &\in A \cr - \quad j &\in B\cup C \cr + j &\in B\cup C \cr m &\in C }} i + j + m $$ @@ -1585,8 +1600,8 @@ characters from main math font and these additional fonts. This can be usable if the main math font doesn't include all desired characters or you dislike some character shapes from main font. \OpTeX/ enables to load additional math fonts by `\addUmathfont` and characters from additional -fonts can be declared by `\resetmathchars`. See the section 2.16 of \OpTeX/ -documentation for more details about this. +fonts can be declared by `\mathchars`. See the \optexdoc[2.16]{section 2.16} +of \OpTeX/ documentation for more details about this. The rest of this section includes an example which shows another task: how to combine main Unicode math font with old 8-bit math font `bbold10.tfm`. diff --git a/macros/optex/doc/optex-techdoc.tex b/macros/optex/doc/optex-techdoc.tex index 5a51ba4d8a..7815619404 100644 --- a/macros/optex/doc/optex-techdoc.tex +++ b/macros/optex/doc/optex-techdoc.tex @@ -87,7 +87,7 @@ the `\dump` command. } \printdoctail prefixed.opm -\secc The implementation of the namespaces +\secc The implementation of the namespaces and macros for macro-files \printdoc prefixed.opm \sec pdf\TeX/ initialization @@ -145,7 +145,7 @@ section~\ref[fselect]. \printdoc math-macros.opm \sec Unicode-math fonts -\printdoctail math-unicode.opm +\printdoctail unimath-macros.opm \sec[opmac-fonts] Scaling fonts in document (high-level macros) These macros are documented in section~\ref[sizes] from the user point of view. @@ -274,7 +274,7 @@ The allocations are declared in subsection~\ref[lua-alloc], calbacks are implemented in subsection~\ref[callbacks] and handling with colors can be found in the subsection~\ref[lua-colors]. -{\everytt={\typosize[8/10]\_let\_printverbline=\_printcodeline \medskip} +{\everytt={\typosize[8/10]\_let\_printverbline=\_printcodeline \_hfuzz=1em \medskip} \commentchars-- \def\docfile{optex.lua} \ttline=-1 \_def\_printcomments{\_medskip {\_catcodetable0 \_typosize[10/12]\_everypar={}\_scantextokens\_ea{\_vcomments}\par}% @@ -285,7 +285,7 @@ found in the subsection~\ref[lua-colors]. } -\sec Printing documentation +\sec[doc] Printing documentation \printdoctail doc.opm \printdoc doc.opm diff --git a/macros/optex/doc/optex-userdoc.tex b/macros/optex/doc/optex-userdoc.tex index 23609f7bad..e04014b991 100644 --- a/macros/optex/doc/optex-userdoc.tex +++ b/macros/optex/doc/optex-userdoc.tex @@ -237,8 +237,8 @@ to \^`\fontfam[lmfonts]`. Several aliases are prepared, thus If you write \^`\fontfam[?]` then all font families registered in \OpTeX/ are listed on the terminal and in the log file. If you write \^`\fontfam[catalog]` then a catalog of all fonts registered in -\OpTeX/ and available in your \TeX/ system is printed. The instructions -on how to register your own font family are appended in the catalog. +\OpTeX/ and available in your \TeX/ system is printed. +See also \ulink[http://petr.olsak.net/ftp/olsak/optex/op-catalog.pdf]{this catalog}. If the family is loaded then {\em font modifiers} applicable in such font family are listed on the terminal: (`\caps`, `\cond` for example). @@ -1128,7 +1128,7 @@ this item occurs is listed in the index entry. So you can type: The \ii resistor resistor is a passive electrical component ... \endtt -You cannot double the word if you use the \^`\iid` instead of \^`\ii`: +You don't have to double the word if you use the \^`\iid` instead of \^`\ii`: \begtt The \iid resistor is a passive electrical component ... @@ -1304,7 +1304,7 @@ The usage is: \endtt The is one or more `*.bib` database source files (separated by -spaces and without extension) and the }` defines active character with meaning .\nl \^`\afterfi` `{}\fi` expands to `\fi`.\nl +\^`\basefilename` \^`\currfile` returns the name of the file currently read.\nl \^`\bp`` {}` expands \TeX/ dimension to decimal number in `bp` without unit.\nl +\^`\casesof` ` ` expands to a given case by meaning of the ``. + See also \^`\xcasesof`.\nl \~`\_codedecl`` {}` is used at beginning of macro files.\nl \~`\colordef`` \macro {}` declares `\macro` as color switch.\nl \^`\cs` `{}` expands `\`.\nl +\^`\cstochar` `` converts to if there was `\let=`.\nl \~`\_doc` `...` \~`\_cod` encloses documenation text in the macro code.\nl \^`\eoldef`` \macro #1{}` defines `\macro` with parameter separated to end of line.\nl \~`\_endcode` closes the part of macro code in macro files.\nl @@ -1931,8 +1940,8 @@ documentation. \^`\ignoreit` ``, \^`\ignoresecond` `` ignores given parameter.\nl `\expandafter` \^`\ignorept` `\the` expands to decimal number without `pt`.\nl \~`\isempty`, \~`\istoksempty`, \~`\isequal`, \~`\ismacro`, \~`\isdefined`, \~`\isinlist` -\~`\isfile`, \~`\isfont` do various tests. Example: \~`\isinlist\list{}\iftrue` does - `\iftrue` if is in `\list`.\nl +\~`\isfile`, \~`\isfont` do various tests.\nl + Example: \~`\isinlist\list{}\iftrue` does `\iftrue` if is in `\list`.\nl \^`\isnextchar`` {}{}` performs if next character is , else .\nl \~`\kv` `{}` expands to value when key-value parameters are used.\nl @@ -1942,9 +1951,12 @@ documentation. \^`\newcount`, \^`\newdimen` etc. are classical Plain \TeX/ allocators.\nl \^`\newif` `\iffoo` declares boolean `\iffoo` as in Plain \TeX/.\nl \^`\_newifi` `\_iffoo` declares boolean `\_iffoo`.\nl +\^`\nospaceafter``\macro`, \^`\nospacefuturelet`: they ignore the following optional space.\nl \^`\opinput`` {}` reads file like `\input` but with standard catcodes.\nl \^`\optdef`` \macro [] {}` defines `\macro` with [opt.parameter].\nl \^`\opwarning` `{}` prints to the terminal and .log file as warning.\nl +\~`\posx``[