summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2023-09-14 03:01:37 +0000
committerNorbert Preining <norbert@preining.info>2023-09-14 03:01:37 +0000
commit527001b634c06d34f92d1809f507add012c320f6 (patch)
tree17d54020bd8e320a65d118c5036beed8e4e18cb9
parentde0fb15550a55ba5685a755fec7326e21a79fccd (diff)
CTAN sync 202309140301
-rw-r--r--CTAN.sites1
-rw-r--r--FILES.byname1999
-rw-r--r--FILES.byname.gzbin2548650 -> 2549097 bytes
-rw-r--r--FILES.last07days1210
-rw-r--r--biblio/ctan-bibdata/ctan.bib61
-rw-r--r--biblio/ctan-bibdata/ctan.pdfbin3709441 -> 3710112 bytes
-rw-r--r--fonts/inconsolata-nerd-font/CHANGELOG.md15
-rw-r--r--fonts/inconsolata-nerd-font/inconsolata-nerd-font.dtx75
-rw-r--r--fonts/inconsolata-nerd-font/inconsolata-nerd-font.pdfbin71967 -> 1372646 bytes
-rw-r--r--fonts/parsimatn/OFL.txt96
-rw-r--r--fonts/parsimatn/ParsiMatn-Bold.ttfbin0 -> 84572 bytes
-rw-r--r--fonts/parsimatn/ParsiMatn-BoldItalic.ttfbin0 -> 87512 bytes
-rw-r--r--fonts/parsimatn/ParsiMatn-Italic.ttfbin0 -> 90440 bytes
-rw-r--r--fonts/parsimatn/ParsiMatn-Regular.ttfbin0 -> 87168 bytes
-rw-r--r--fonts/parsimatn/README.md31
-rw-r--r--fonts/parsimatn/parsimatn-example-of-use.pdfbin0 -> 91046 bytes
-rw-r--r--fonts/parsimatn/parsimatn-example-of-use.tex109
-rw-r--r--graphics/circuit_macros/CHANGES1
-rw-r--r--graphics/circuit_macros/Copying2
-rw-r--r--graphics/circuit_macros/README2
-rw-r--r--graphics/circuit_macros/darrow.m4394
-rw-r--r--graphics/circuit_macros/doc/Circuit_macros.pdfbin1055738 -> 1059727 bytes
-rw-r--r--graphics/circuit_macros/doc/SourcesMan.m41
-rw-r--r--graphics/circuit_macros/doc/Version.tex2
-rw-r--r--graphics/circuit_macros/doc/body.tex3
-rw-r--r--graphics/circuit_macros/doc/defines.tex792
-rw-r--r--graphics/circuit_macros/dpictools.pic2
-rw-r--r--graphics/circuit_macros/examples/Alogix.m418
-rw-r--r--graphics/circuit_macros/examples/Smithchart.m428
-rw-r--r--graphics/circuit_macros/examples/Sources.m44
-rw-r--r--graphics/circuit_macros/examples/dpv/SourcesDPV.m46
-rw-r--r--graphics/circuit_macros/examples/ex05.m47
-rw-r--r--graphics/circuit_macros/examples/examples.pdfbin1902473 -> 1902836 bytes
-rw-r--r--graphics/circuit_macros/examples/extras/Koch.m45
-rw-r--r--graphics/circuit_macros/examples/extras/Makefile4
-rw-r--r--graphics/circuit_macros/examples/extras/README_extras14
-rw-r--r--graphics/circuit_macros/examples/extras/TR_fill.m441
-rw-r--r--graphics/circuit_macros/examples/extras/Views.m44
-rw-r--r--graphics/circuit_macros/examples/mf/cct.mf2
-rw-r--r--graphics/circuit_macros/gpic.m42
-rw-r--r--graphics/circuit_macros/lib3D.m42
-rw-r--r--graphics/circuit_macros/libSLD.m42
-rw-r--r--graphics/circuit_macros/libcct.m413
-rw-r--r--graphics/circuit_macros/libgen.m491
-rw-r--r--graphics/circuit_macros/liblog.m42
-rw-r--r--graphics/circuit_macros/mfpic.m42
-rw-r--r--graphics/circuit_macros/mpost.m42
-rw-r--r--graphics/circuit_macros/pdf.m42
-rw-r--r--graphics/circuit_macros/pgf.m42
-rw-r--r--graphics/circuit_macros/postscript.m42
-rw-r--r--graphics/circuit_macros/psfrag.m42
-rw-r--r--graphics/circuit_macros/pstricks.m42
-rw-r--r--graphics/circuit_macros/svg.m42
-rw-r--r--graphics/circuit_macros/xfig.m42
-rw-r--r--graphics/pgf/contrib/profsio/doc/ProfSio-doc-fr.pdfbin312717 -> 326425 bytes
-rw-r--r--graphics/pgf/contrib/profsio/doc/ProfSio-doc-fr.tex127
-rw-r--r--graphics/pgf/contrib/profsio/tex/ProfSio.sty323
-rw-r--r--macros/latex-dev/base/README.md2
-rw-r--r--macros/latex-dev/base/alltt.pdfbin223828 -> 223831 bytes
-rw-r--r--macros/latex-dev/base/cfgguide.pdfbin264157 -> 264168 bytes
-rw-r--r--macros/latex-dev/base/changes.txt88
-rw-r--r--macros/latex-dev/base/classes.pdfbin560996 -> 560998 bytes
-rw-r--r--macros/latex-dev/base/clsguide-historic.pdfbin415586 -> 415615 bytes
-rw-r--r--macros/latex-dev/base/clsguide.pdfbin452015 -> 451992 bytes
-rw-r--r--macros/latex-dev/base/cmfonts.pdfbin292647 -> 292600 bytes
-rw-r--r--macros/latex-dev/base/cyrguide.pdfbin257359 -> 257359 bytes
-rw-r--r--macros/latex-dev/base/doc-code.pdfbin1075545 -> 1075811 bytes
-rw-r--r--macros/latex-dev/base/doc.pdfbin755961 -> 756197 bytes
-rw-r--r--macros/latex-dev/base/docstrip.pdfbin504261 -> 504704 bytes
-rw-r--r--macros/latex-dev/base/encguide.pdfbin1318565 -> 1318576 bytes
-rw-r--r--macros/latex-dev/base/exscale.pdfbin204710 -> 204708 bytes
-rw-r--r--macros/latex-dev/base/fix-cm.pdfbin287726 -> 287727 bytes
-rw-r--r--macros/latex-dev/base/fntguide.pdfbin517658 -> 517659 bytes
-rw-r--r--macros/latex-dev/base/format.ins2
-rw-r--r--macros/latex-dev/base/graphpap.pdfbin161717 -> 161722 bytes
-rw-r--r--macros/latex-dev/base/ifthen.pdfbin221207 -> 221219 bytes
-rw-r--r--macros/latex-dev/base/inputenc.pdfbin318162 -> 318199 bytes
-rw-r--r--macros/latex-dev/base/lamport-manual.pdfbin170883 -> 170876 bytes
-rw-r--r--macros/latex-dev/base/latexrelease.ins2
-rw-r--r--macros/latex-dev/base/latexrelease.pdfbin282097 -> 282095 bytes
-rw-r--r--macros/latex-dev/base/latexsym.pdfbin200762 -> 200759 bytes
-rw-r--r--macros/latex-dev/base/lb2.err2
-rw-r--r--macros/latex-dev/base/lb2.pdfbin252516 -> 252497 bytes
-rw-r--r--macros/latex-dev/base/letter.pdfbin337720 -> 337428 bytes
-rw-r--r--macros/latex-dev/base/lgc2.err2
-rw-r--r--macros/latex-dev/base/lgc2.pdfbin217757 -> 217659 bytes
-rw-r--r--macros/latex-dev/base/lppl.pdfbin132369 -> 132370 bytes
-rw-r--r--macros/latex-dev/base/ltcmd.dtx153
-rw-r--r--macros/latex-dev/base/ltcmdhooks-code.pdfbin755479 -> 755624 bytes
-rw-r--r--macros/latex-dev/base/ltcmdhooks-doc.pdfbin498967 -> 499095 bytes
-rw-r--r--macros/latex-dev/base/ltcmdhooks.dtx8
-rw-r--r--macros/latex-dev/base/ltfilehook-code.pdfbin804008 -> 803891 bytes
-rw-r--r--macros/latex-dev/base/ltfilehook-doc.pdfbin548598 -> 548560 bytes
-rw-r--r--macros/latex-dev/base/ltfilehook.dtx3
-rw-r--r--macros/latex-dev/base/ltfiles.dtx26
-rw-r--r--macros/latex-dev/base/lthooks-code.pdfbin1242405 -> 1258576 bytes
-rw-r--r--macros/latex-dev/base/lthooks-doc.pdfbin739507 -> 755724 bytes
-rw-r--r--macros/latex-dev/base/lthooks.dtx38
-rw-r--r--macros/latex-dev/base/ltluatex.dtx12
-rw-r--r--macros/latex-dev/base/ltluatex.pdfbin325074 -> 325191 bytes
-rw-r--r--macros/latex-dev/base/ltmarks-code.pdfbin716305 -> 716708 bytes
-rw-r--r--macros/latex-dev/base/ltmarks-doc.pdfbin586433 -> 586833 bytes
-rw-r--r--macros/latex-dev/base/ltmiscen.dtx245
-rw-r--r--macros/latex-dev/base/ltnews.pdfbin1287055 -> 1320668 bytes
-rw-r--r--macros/latex-dev/base/ltnews.tex2
-rw-r--r--macros/latex-dev/base/ltnews01.pdfbin169550 -> 169553 bytes
-rw-r--r--macros/latex-dev/base/ltnews02.pdfbin151773 -> 151773 bytes
-rw-r--r--macros/latex-dev/base/ltnews03.pdfbin151321 -> 151324 bytes
-rw-r--r--macros/latex-dev/base/ltnews04.pdfbin152549 -> 152551 bytes
-rw-r--r--macros/latex-dev/base/ltnews05.pdfbin175216 -> 175211 bytes
-rw-r--r--macros/latex-dev/base/ltnews06.pdfbin142864 -> 142867 bytes
-rw-r--r--macros/latex-dev/base/ltnews07.pdfbin138211 -> 138214 bytes
-rw-r--r--macros/latex-dev/base/ltnews08.pdfbin155434 -> 155442 bytes
-rw-r--r--macros/latex-dev/base/ltnews09.pdfbin130026 -> 130028 bytes
-rw-r--r--macros/latex-dev/base/ltnews10.pdfbin169432 -> 169433 bytes
-rw-r--r--macros/latex-dev/base/ltnews11.pdfbin112202 -> 112208 bytes
-rw-r--r--macros/latex-dev/base/ltnews12.pdfbin156765 -> 156764 bytes
-rw-r--r--macros/latex-dev/base/ltnews13.pdfbin182490 -> 182483 bytes
-rw-r--r--macros/latex-dev/base/ltnews14.pdfbin170721 -> 170722 bytes
-rw-r--r--macros/latex-dev/base/ltnews15.pdfbin130323 -> 130328 bytes
-rw-r--r--macros/latex-dev/base/ltnews16.pdfbin138110 -> 138107 bytes
-rw-r--r--macros/latex-dev/base/ltnews17.pdfbin166268 -> 166269 bytes
-rw-r--r--macros/latex-dev/base/ltnews18.pdfbin39840 -> 39839 bytes
-rw-r--r--macros/latex-dev/base/ltnews19.pdfbin225936 -> 225936 bytes
-rw-r--r--macros/latex-dev/base/ltnews20.pdfbin318193 -> 318193 bytes
-rw-r--r--macros/latex-dev/base/ltnews21.pdfbin245229 -> 245228 bytes
-rw-r--r--macros/latex-dev/base/ltnews22.pdfbin318036 -> 318026 bytes
-rw-r--r--macros/latex-dev/base/ltnews23.pdfbin286839 -> 286824 bytes
-rw-r--r--macros/latex-dev/base/ltnews24.pdfbin265497 -> 265497 bytes
-rw-r--r--macros/latex-dev/base/ltnews25.pdfbin205098 -> 205100 bytes
-rw-r--r--macros/latex-dev/base/ltnews26.pdfbin379722 -> 379733 bytes
-rw-r--r--macros/latex-dev/base/ltnews27.pdfbin251285 -> 251283 bytes
-rw-r--r--macros/latex-dev/base/ltnews28.pdfbin376930 -> 376933 bytes
-rw-r--r--macros/latex-dev/base/ltnews29.pdfbin455431 -> 455437 bytes
-rw-r--r--macros/latex-dev/base/ltnews30.pdfbin512246 -> 512240 bytes
-rw-r--r--macros/latex-dev/base/ltnews31.pdfbin526692 -> 526688 bytes
-rw-r--r--macros/latex-dev/base/ltnews32.pdfbin546554 -> 546540 bytes
-rw-r--r--macros/latex-dev/base/ltnews33.pdfbin522771 -> 522757 bytes
-rw-r--r--macros/latex-dev/base/ltnews34.pdfbin508349 -> 508345 bytes
-rw-r--r--macros/latex-dev/base/ltnews35.pdfbin563329 -> 563307 bytes
-rw-r--r--macros/latex-dev/base/ltnews36.pdfbin517935 -> 517934 bytes
-rw-r--r--macros/latex-dev/base/ltnews37.pdfbin456936 -> 456926 bytes
-rw-r--r--macros/latex-dev/base/ltnews38.pdfbin0 -> 359786 bytes
-rw-r--r--macros/latex-dev/base/ltnews38.tex257
-rw-r--r--macros/latex-dev/base/ltpara-code.pdfbin672189 -> 672682 bytes
-rw-r--r--macros/latex-dev/base/ltpara-doc.pdfbin560056 -> 560566 bytes
-rw-r--r--macros/latex-dev/base/ltproperties-code.pdfbin0 -> 557678 bytes
-rw-r--r--macros/latex-dev/base/ltproperties-code.tex5
-rw-r--r--macros/latex-dev/base/ltproperties-doc.pdfbin0 -> 432158 bytes
-rw-r--r--macros/latex-dev/base/ltproperties-doc.tex8
-rw-r--r--macros/latex-dev/base/ltproperties.dtx943
-rw-r--r--macros/latex-dev/base/ltshipout-code.pdfbin821608 -> 821678 bytes
-rw-r--r--macros/latex-dev/base/ltshipout-doc.pdfbin566503 -> 566578 bytes
-rw-r--r--macros/latex-dev/base/ltsockets-code.pdfbin0 -> 606430 bytes
-rw-r--r--macros/latex-dev/base/ltsockets-code.tex5
-rw-r--r--macros/latex-dev/base/ltsockets-doc.pdfbin0 -> 489290 bytes
-rw-r--r--macros/latex-dev/base/ltsockets-doc.tex8
-rw-r--r--macros/latex-dev/base/ltsockets.dtx1069
-rw-r--r--macros/latex-dev/base/ltspace.dtx19
-rw-r--r--macros/latex-dev/base/ltvers.dtx2
-rw-r--r--macros/latex-dev/base/ltx3info.pdfbin219347 -> 219358 bytes
-rw-r--r--macros/latex-dev/base/ltxdoc.pdfbin244224 -> 244215 bytes
-rw-r--r--macros/latex-dev/base/makeindx.pdfbin165816 -> 165816 bytes
-rw-r--r--macros/latex-dev/base/manifest.txt1
-rw-r--r--macros/latex-dev/base/modguide.pdfbin257823 -> 257825 bytes
-rw-r--r--macros/latex-dev/base/nfssfont.pdfbin211175 -> 211171 bytes
-rw-r--r--macros/latex-dev/base/proc.pdfbin227060 -> 227065 bytes
-rw-r--r--macros/latex-dev/base/slides.pdfbin375509 -> 375493 bytes
-rw-r--r--macros/latex-dev/base/slifonts.pdfbin234183 -> 234171 bytes
-rw-r--r--macros/latex-dev/base/source2e.pdfbin6006299 -> 6137755 bytes
-rw-r--r--macros/latex-dev/base/source2e.tex4
-rw-r--r--macros/latex-dev/base/syntonly.pdfbin189801 -> 189816 bytes
-rw-r--r--macros/latex-dev/base/tlc2.err2
-rw-r--r--macros/latex-dev/base/tlc2.pdfbin291233 -> 291143 bytes
-rw-r--r--macros/latex-dev/base/tlc3.err655
-rw-r--r--macros/latex-dev/base/tlc3.pdfbin250362 -> 323048 bytes
-rw-r--r--macros/latex-dev/base/tulm.pdfbin162770 -> 162773 bytes
-rw-r--r--macros/latex-dev/base/usrguide-historic.pdfbin438603 -> 438602 bytes
-rw-r--r--macros/latex-dev/base/usrguide.pdfbin479722 -> 477695 bytes
-rw-r--r--macros/latex-dev/base/usrguide.tex30
-rw-r--r--macros/latex-dev/base/utf8ienc.pdfbin353396 -> 353658 bytes
-rw-r--r--macros/latex-dev/base/webcomp.pdfbin146199 -> 146199 bytes
-rw-r--r--macros/latex-dev/required/amsmath/README.md2
-rw-r--r--macros/latex-dev/required/amsmath/amsbsy.pdfbin174944 -> 174946 bytes
-rw-r--r--macros/latex-dev/required/amsmath/amscd.pdfbin179953 -> 179951 bytes
-rw-r--r--macros/latex-dev/required/amsmath/amsgen.pdfbin178181 -> 178193 bytes
-rw-r--r--macros/latex-dev/required/amsmath/amsldoc.pdfbin508198 -> 508230 bytes
-rw-r--r--macros/latex-dev/required/amsmath/amsmath.pdfbin419900 -> 419922 bytes
-rw-r--r--macros/latex-dev/required/amsmath/amsopn.pdfbin140096 -> 140093 bytes
-rw-r--r--macros/latex-dev/required/amsmath/amstext.pdfbin217502 -> 217504 bytes
-rw-r--r--macros/latex-dev/required/amsmath/amsxtra.pdfbin113554 -> 113560 bytes
-rw-r--r--macros/latex-dev/required/amsmath/changes.txt4
-rw-r--r--macros/latex-dev/required/amsmath/subeqn.pdfbin109734 -> 109733 bytes
-rw-r--r--macros/latex-dev/required/amsmath/technote.pdfbin147464 -> 147459 bytes
-rw-r--r--macros/latex-dev/required/amsmath/testmath.pdfbin454559 -> 454658 bytes
-rw-r--r--macros/latex-dev/required/amsmath/testmath.tex69
-rw-r--r--macros/latex-dev/required/firstaid/changes.txt9
-rw-r--r--macros/latex-dev/required/firstaid/firstaid.ins7
-rw-r--r--macros/latex-dev/required/firstaid/latex2e-first-aid-for-external-files.dtx121
-rw-r--r--macros/latex-dev/required/firstaid/latex2e-first-aid-for-external-files.pdfbin269095 -> 252465 bytes
-rw-r--r--macros/latex/contrib/arraycols/arraycols.dtx178
-rw-r--r--macros/latex/contrib/arraycols/arraycols.pdfbin463229 -> 464654 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/doc/JeuxCartes-doc.pdfbin8285082 -> 8286389 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/doc/JeuxCartes-doc.tex8
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/JeuxCartes.sty11
-rw-r--r--macros/latex/contrib/l3build/CHANGELOG.md18
-rw-r--r--macros/latex/contrib/l3build/README.md2
-rw-r--r--macros/latex/contrib/l3build/l3build-check.lua3
-rw-r--r--macros/latex/contrib/l3build/l3build-install.lua1
-rw-r--r--macros/latex/contrib/l3build/l3build-typesetting.lua6
-rw-r--r--macros/latex/contrib/l3build/l3build-variables.lua2
-rw-r--r--macros/latex/contrib/l3build/l3build.12
-rw-r--r--macros/latex/contrib/l3build/l3build.dtx21
-rwxr-xr-xmacros/latex/contrib/l3build/l3build.lua2
-rw-r--r--macros/latex/contrib/l3build/l3build.pdfbin744608 -> 744760 bytes
-rw-r--r--macros/luatex/latex/lua-typo/README.md7
-rw-r--r--macros/luatex/latex/lua-typo/doc/lua-typo-demo.pdfbin16859 -> 16859 bytes
-rw-r--r--macros/luatex/latex/lua-typo/doc/lua-typo-fr.pdfbin106625 -> 107474 bytes
-rw-r--r--macros/luatex/latex/lua-typo/doc/lua-typo.pdfbin208526 -> 217771 bytes
-rw-r--r--macros/luatex/latex/lua-typo/source/lua-typo.dtx588
-rw-r--r--macros/texinfo/latest/texinfo.tex9
-rw-r--r--support/latexindent/LatexIndent/Version.pm4
-rw-r--r--support/latexindent/LatexIndent/Wrap.pm2
-rw-r--r--support/latexindent/README2
-rw-r--r--support/latexindent/bin/linux/latexindentbin6173320 -> 6173334 bytes
-rw-r--r--support/latexindent/bin/macos/latexindentbin6402551 -> 6402565 bytes
-rw-r--r--support/latexindent/defaultSettings.yaml2
-rw-r--r--support/latexindent/documentation/latexindent-yaml-schema.json2
-rw-r--r--support/latexindent/documentation/latexindent.pdfbin1259686 -> 1259013 bytes
-rw-r--r--support/latexindent/documentation/latexindent.tex8
-rwxr-xr-xsupport/latexindent/latexindent.pl2
-rw-r--r--support/runtexshebang/README.md7
-rwxr-xr-xsupport/runtexshebang/runtexshebang.lua60
-rw-r--r--systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl1
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb281
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb.md52
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha5122
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc16
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb.xzbin2478300 -> 2475492 bytes
-rw-r--r--timestamp2
240 files changed, 7795 insertions, 2770 deletions
diff --git a/CTAN.sites b/CTAN.sites
index 5c3db98795..76718b3633 100644
--- a/CTAN.sites
+++ b/CTAN.sites
@@ -109,7 +109,6 @@ by country):
ctan.asis.sh (Iran)
- URL: https://ctan.asis.sh/
URL: rsync://ctan.asis.sh/CTAN/
URL: http://ctan.asis.ai/
diff --git a/FILES.byname b/FILES.byname
index 80c0dd0568..d33ee90ff4 100644
--- a/FILES.byname
+++ b/FILES.byname
@@ -2059,12 +2059,12 @@
2023/09/07 | 1710 | biblio/citation-style-language/README.md
2023/09/07 | 12878 | biblio/citation-style-language/vancouver.csl
2023/09/07 | 4530946 | biblio/citation-style-language.zip
-2023/09/12 | 1678 | biblio/ctan-bibdata/biblatex-ctan/ctan.bbx
+2023/09/13 | 1678 | biblio/ctan-bibdata/biblatex-ctan/ctan.bbx
2022/10/08 | 127 | biblio/ctan-bibdata/biblatex-ctan/ctan.cbx
-2023/09/12 | 2812617 | biblio/ctan-bibdata/ctan.bib
-2023/09/12 | 3710556 | biblio/ctan-bibdata/ctan.pdf
+2023/09/13 | 2812622 | biblio/ctan-bibdata/ctan.bib
+2023/09/13 | 3709441 | biblio/ctan-bibdata/ctan.pdf
2023/01/16 | 1489 | biblio/ctan-bibdata/README
-2023/09/12 | 4112325 | biblio/ctan-bibdata.zip
+2023/09/13 | 4111065 | biblio/ctan-bibdata.zip
2023/02/23 | 3126 | biblio/pbibtex/pbibtex-base/cpp.awk
2023/02/23 | 1009 | biblio/pbibtex/pbibtex-base/generate.sh
2023/02/23 | 22362 | biblio/pbibtex/pbibtex-base/jabbrv.bst
@@ -5424,7 +5424,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
-2023/09/12 | 200423 | FILES.last07days
+2023/09/13 | 205945 | 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
@@ -54813,20 +54813,20 @@
2019/05/16 | 7717 | fonts/inconsolata/enc/i4-t1-7.enc
2016/02/17 | 9446 | fonts/inconsolata/enc/i4-ts1.enc
2016/12/29 | 13670 | fonts/inconsolata/map/zi4.map
-2023/09/12 | 766 | fonts/inconsolata-nerd-font/CHANGELOG.md
-2023/09/12 | 1899896 | fonts/inconsolata-nerd-font/InconsolataNerdFont-Bold.ttf
-2023/09/12 | 12715 | fonts/inconsolata-nerd-font/inconsolata-nerd-font.dtx
-2023/09/12 | 2227 | fonts/inconsolata-nerd-font/inconsolata-nerd-font.ins
-2023/09/12 | 1846340 | fonts/inconsolata-nerd-font/InconsolataNerdFontMono-Bold.ttf
-2023/09/12 | 1845752 | fonts/inconsolata-nerd-font/InconsolataNerdFontMono-Regular.ttf
-2023/09/12 | 71967 | fonts/inconsolata-nerd-font/inconsolata-nerd-font.pdf
-2023/09/12 | 1899844 | fonts/inconsolata-nerd-font/InconsolataNerdFontPropo-Bold.ttf
-2023/09/12 | 1899256 | fonts/inconsolata-nerd-font/InconsolataNerdFontPropo-Regular.ttf
-2023/09/12 | 1899308 | fonts/inconsolata-nerd-font/InconsolataNerdFont-Regular.ttf
-2023/09/12 | 19106 | fonts/inconsolata-nerd-font/LICENSE.txt
-2023/09/12 | 4394 | fonts/inconsolata-nerd-font/OFL.txt
-2023/09/12 | 614 | fonts/inconsolata-nerd-font/README.md
-2023/09/12 | 6231088 | fonts/inconsolata-nerd-font.zip
+2023/09/13 | 1154 | fonts/inconsolata-nerd-font/CHANGELOG.md
+2023/09/13 | 1899896 | fonts/inconsolata-nerd-font/InconsolataNerdFont-Bold.ttf
+2023/09/13 | 14543 | fonts/inconsolata-nerd-font/inconsolata-nerd-font.dtx
+2023/09/13 | 2227 | fonts/inconsolata-nerd-font/inconsolata-nerd-font.ins
+2023/09/13 | 1846340 | fonts/inconsolata-nerd-font/InconsolataNerdFontMono-Bold.ttf
+2023/09/13 | 1845752 | fonts/inconsolata-nerd-font/InconsolataNerdFontMono-Regular.ttf
+2023/09/13 | 1372646 | fonts/inconsolata-nerd-font/inconsolata-nerd-font.pdf
+2023/09/13 | 1899844 | fonts/inconsolata-nerd-font/InconsolataNerdFontPropo-Bold.ttf
+2023/09/13 | 1899256 | fonts/inconsolata-nerd-font/InconsolataNerdFontPropo-Regular.ttf
+2023/09/13 | 1899308 | fonts/inconsolata-nerd-font/InconsolataNerdFont-Regular.ttf
+2023/09/13 | 19106 | fonts/inconsolata-nerd-font/LICENSE.txt
+2023/09/13 | 4394 | fonts/inconsolata-nerd-font/OFL.txt
+2023/09/13 | 614 | fonts/inconsolata-nerd-font/README.md
+2023/09/13 | 7508087 | fonts/inconsolata-nerd-font.zip
2019/05/16 | 28464 | fonts/inconsolata/opentype/InconsolataN-Bold.otf
2019/05/16 | 26540 | fonts/inconsolata/opentype/InconsolataN-Regular.otf
2019/05/15 | 47780 | fonts/inconsolata/opentype/Inconsolatazi4-Bold.otf
@@ -112214,6 +112214,15 @@
2014/09/13 | 690388 | fonts/parisa/source/parisa-regular.sfd
2014/09/13 | 1618746 | fonts/parisa/source/parisa-shadow.sfd
2014/09/13 | 5749842 | fonts/parisa.zip
+2023/09/13 | 4497 | fonts/parsimatn/OFL.txt
+2023/09/13 | 87512 | fonts/parsimatn/ParsiMatn-BoldItalic.ttf
+2023/09/13 | 84572 | fonts/parsimatn/ParsiMatn-Bold.ttf
+2023/09/13 | 91046 | fonts/parsimatn/parsimatn-example-of-use.pdf
+2023/09/13 | 10246 | fonts/parsimatn/parsimatn-example-of-use.tex
+2023/09/13 | 90440 | fonts/parsimatn/ParsiMatn-Italic.ttf
+2023/09/13 | 87168 | fonts/parsimatn/ParsiMatn-Regular.ttf
+2023/09/13 | 766 | fonts/parsimatn/README.md
+2023/09/13 | 289668 | fonts/parsimatn.zip
2023/09/08 | 4498 | fonts/parsinevis/OFL.txt
2023/09/08 | 102236 | fonts/parsinevis/ParsiNevis-BoldItalic.ttf
2023/09/08 | 90716 | fonts/parsinevis/ParsiNevis-Bold.ttf
@@ -153802,486 +153811,486 @@
2022/10/22 | 1338 | graphics/chemobabel/LICENSE
2022/10/22 | 1726 | graphics/chemobabel/README.md
2022/10/22 | 1325653 | graphics/chemobabel.zip
-2023/05/31 | 1185 | graphics/circuit_macros/boxdims.sty
-2023/05/31 | 14202 | graphics/circuit_macros/CHANGES
-2023/05/31 | 462 | graphics/circuit_macros/Copying
-2023/05/31 | 14279 | graphics/circuit_macros/darrow.m4
-2023/05/31 | 26 | graphics/circuit_macros/doc/ACsymbol.m4
-2023/05/31 | 2427 | graphics/circuit_macros/doc/AlogixMan.m4
-2023/05/31 | 494 | graphics/circuit_macros/doc/AmpTableMan.m4
-2023/05/31 | 1230 | graphics/circuit_macros/doc/AntennasMan.m4
-2023/05/31 | 1618 | graphics/circuit_macros/doc/ArrestersMan.m4
-2023/05/31 | 1017 | graphics/circuit_macros/doc/arrowex.m4
-2023/05/31 | 2634 | graphics/circuit_macros/doc/AudioMan.m4
-2023/05/31 | 173 | graphics/circuit_macros/doc/AutologixMan.m4
-2023/05/31 | 131 | graphics/circuit_macros/doc/Axes.m4
-2023/05/31 | 614 | graphics/circuit_macros/doc/BigResistor.m4
-2023/05/31 | 1619 | graphics/circuit_macros/doc/BipMan.m4
-2023/05/31 | 1074 | graphics/circuit_macros/doc/bistableMan.m4
-2023/05/31 | 1860 | graphics/circuit_macros/doc/bi_trans.m4
-2023/05/31 | 130 | graphics/circuit_macros/doc/bitrbody.m4
-2023/05/31 | 50 | graphics/circuit_macros/doc/bitr.m4
-2023/05/31 | 158601 | graphics/circuit_macros/doc/body.tex
-2023/05/31 | 1953 | graphics/circuit_macros/doc/Buffer.m4
-2023/05/31 | 3820 | graphics/circuit_macros/doc/CanLogicMan.tex
-2023/05/31 | 1063 | graphics/circuit_macros/doc/CapacitorsMan.m4
-2023/05/31 | 4475 | graphics/circuit_macros/doc/Circuit_macros.bib
-2023/05/31 | 1055738 | graphics/circuit_macros/doc/Circuit_macros.pdf
-2023/05/31 | 3019 | graphics/circuit_macros/doc/Circuit_macros.tex
-2023/05/31 | 1857 | graphics/circuit_macros/doc/Composite.m4
-2023/05/31 | 1121 | graphics/circuit_macros/doc/ConfigA.m4
-2023/05/31 | 1258 | graphics/circuit_macros/doc/ConfigB.m4
-2023/05/31 | 1292 | graphics/circuit_macros/doc/ConfigC.m4
-2023/05/31 | 2353 | graphics/circuit_macros/doc/ConnMan.m4
-2023/05/31 | 3326 | graphics/circuit_macros/doc/ContactMan.m4
-2023/05/31 | 1585 | graphics/circuit_macros/doc/ContactsMan.m4
-2023/05/31 | 1995 | graphics/circuit_macros/doc/Corners.m4
-2023/05/31 | 1329 | graphics/circuit_macros/doc/currents.m4
-2023/05/31 | 2389 | graphics/circuit_macros/doc/Dac.m4
-2023/05/31 | 1151 | graphics/circuit_macros/doc/Darlington.m4
-2023/05/31 | 26 | graphics/circuit_macros/doc/DCsymbol.m4
-2023/05/31 | 108905 | graphics/circuit_macros/doc/defines.tex
-2023/05/31 | 1485 | graphics/circuit_macros/doc/DemultiplexerMan.m4
-2023/05/31 | 1790 | graphics/circuit_macros/doc/DiodesMan.m4
-2023/05/31 | 483 | graphics/circuit_macros/doc/eboxdims.m4
-2023/05/31 | 981 | graphics/circuit_macros/doc/EmarrowsMan.m4
-2023/05/31 | 1229 | graphics/circuit_macros/doc/fbfilter.m4
-2023/05/31 | 5315 | graphics/circuit_macros/doc/fetMan.m4
-2023/05/31 | 329 | graphics/circuit_macros/doc/FF.m4
-2023/05/31 | 1975 | graphics/circuit_macros/doc/FlipFlop.m4
-2023/05/31 | 970 | graphics/circuit_macros/doc/Flowdiag.m4
-2023/05/31 | 1353 | graphics/circuit_macros/doc/FusesMan.m4
-2023/05/31 | 831 | graphics/circuit_macros/doc/GroundsMan.m4
-2023/05/31 | 1132 | graphics/circuit_macros/doc/HeadersMan.m4
-2023/05/31 | 560 | graphics/circuit_macros/doc/heaterMan.m4
-2023/05/31 | 2013 | graphics/circuit_macros/doc/HybridPi.m4
-2023/05/31 | 1342 | graphics/circuit_macros/doc/InductorsMan.m4
-2023/05/31 | 2362 | graphics/circuit_macros/doc/JackMan.m4
-2023/05/31 | 2119 | graphics/circuit_macros/doc/LogicMan.m4
-2023/05/31 | 269 | graphics/circuit_macros/doc/Loop.m4
-2023/05/31 | 387 | graphics/circuit_macros/doc/lrarrows.m4
-2023/05/31 | 5095 | graphics/circuit_macros/doc/Makefile
-2023/05/31 | 784 | graphics/circuit_macros/doc/MoreTableMan.m4
-2023/05/31 | 1575 | graphics/circuit_macros/doc/mplex.m4
-2023/05/31 | 1400 | graphics/circuit_macros/doc/MultiplexerMan.m4
-2023/05/31 | 499 | graphics/circuit_macros/doc/NLGMan.m4
-2023/05/31 | 1128 | graphics/circuit_macros/doc/NPDTMan.m4
-2023/05/31 | 1040 | graphics/circuit_macros/doc/NportMan.m4
-2023/05/31 | 783 | graphics/circuit_macros/doc/Oblique.m4
-2023/05/31 | 137 | graphics/circuit_macros/doc/opampexbody.m4
-2023/05/31 | 56 | graphics/circuit_macros/doc/opampex.m4
-2023/05/31 | 1433 | graphics/circuit_macros/doc/OpampMan.m4
-2023/05/31 | 835 | graphics/circuit_macros/doc/Opto.m4
-2023/05/31 | 1624 | graphics/circuit_macros/doc/ParSeries.m4
-2023/05/31 | 1982 | graphics/circuit_macros/doc/PconnMan.m4
-2023/05/31 | 801 | graphics/circuit_macros/doc/Potentiometers.m4
-2023/05/31 | 577 | graphics/circuit_macros/doc/QTrans.m4
-2023/05/31 | 774 | graphics/circuit_macros/doc/quick.m4
-2023/05/31 | 2086 | graphics/circuit_macros/doc/relaycoilMan.m4
-2023/05/31 | 1259 | graphics/circuit_macros/doc/RelayMan.m4
-2023/05/31 | 1149 | graphics/circuit_macros/doc/ResistorsMan.m4
-2023/05/31 | 455 | graphics/circuit_macros/doc/sampleIC.m4
-2023/05/31 | 404 | graphics/circuit_macros/doc/Series.m4
-2023/05/31 | 1406 | graphics/circuit_macros/doc/ShiftRMan.m4
-2023/05/31 | 421 | graphics/circuit_macros/doc/Sinus.m4
-2023/05/31 | 7363 | graphics/circuit_macros/doc/SLDsMan.m4
-2023/05/31 | 2225 | graphics/circuit_macros/doc/SourcesMan.m4
-2023/05/31 | 1319 | graphics/circuit_macros/doc/SRffMan.m4
-2023/05/31 | 217 | graphics/circuit_macros/doc/stringdims.m4
-2023/05/31 | 4780 | graphics/circuit_macros/doc/SwitchesMan.m4
-2023/05/31 | 1463 | graphics/circuit_macros/doc/Taps.m4
-2023/05/31 | 1022 | graphics/circuit_macros/doc/TgateMan.m4
-2023/05/31 | 150 | graphics/circuit_macros/doc/Thermal.m4
-2023/05/31 | 3321 | graphics/circuit_macros/doc/thyristorMan.m4
-2023/05/31 | 535 | graphics/circuit_macros/doc/Tline.m4
-2023/05/31 | 165 | graphics/circuit_macros/doc/tranbody.m4
-2023/05/31 | 660 | graphics/circuit_macros/doc/ujtMan.m4
-2023/05/31 | 944 | graphics/circuit_macros/doc/VariableMan.m4
-2023/05/31 | 13 | graphics/circuit_macros/doc/Version.tex
-2023/05/31 | 3346 | graphics/circuit_macros/doc/WindingsMan.m4
-2023/05/31 | 449 | graphics/circuit_macros/doc/woodchips.m4
-2023/05/31 | 2912 | graphics/circuit_macros/doc/Workflow.m4
-2023/05/31 | 1536 | graphics/circuit_macros/doc/XformMan.m4
-2023/05/31 | 23618 | graphics/circuit_macros/dpictools.pic
-2023/05/31 | 1730 | graphics/circuit_macros/examples/ABlogix.m4
-2023/05/31 | 2402 | graphics/circuit_macros/examples/Adder.m4
-2023/05/31 | 4162 | graphics/circuit_macros/examples/Alogix.m4
-2023/05/31 | 494 | graphics/circuit_macros/examples/AmpTable.m4
-2023/05/31 | 1230 | graphics/circuit_macros/examples/Antennas.m4
-2023/05/31 | 1615 | graphics/circuit_macros/examples/Arresters.m4
-2023/05/31 | 6270 | graphics/circuit_macros/examples/ASME_Y14-5.m4def
-2023/05/31 | 2634 | graphics/circuit_macros/examples/Audio.m4
-2023/05/31 | 4638 | graphics/circuit_macros/examples/Ball.m4
-2023/05/31 | 1619 | graphics/circuit_macros/examples/Bip.m4
-2023/05/31 | 3198 | graphics/circuit_macros/examples/Btree.m4
-2023/05/31 | 3509 | graphics/circuit_macros/examples/Buttons.m4
-2023/05/31 | 991 | graphics/circuit_macros/examples/Byte.m4
-2023/05/31 | 6425 | graphics/circuit_macros/examples/CanLogic.m4
-2023/05/31 | 1201 | graphics/circuit_macros/examples/Capacitors.m4
-2023/05/31 | 1222 | graphics/circuit_macros/examples/Chips.m4
-2023/05/31 | 724 | graphics/circuit_macros/examples/Connectors.m4
-2023/05/31 | 2351 | graphics/circuit_macros/examples/Conn.m4
-2023/05/31 | 27105 | graphics/circuit_macros/examples/Consumption.m4
-2023/05/31 | 3464 | graphics/circuit_macros/examples/Contact.m4
-2023/05/31 | 1585 | graphics/circuit_macros/examples/Contacts.m4
-2023/05/31 | 7112 | graphics/circuit_macros/examples/control.m4
-2023/05/31 | 2562 | graphics/circuit_macros/examples/Crow.m4
-2023/05/31 | 7734 | graphics/circuit_macros/examples/csc.m4
-2023/05/31 | 5889 | graphics/circuit_macros/examples/Csource.m4
-2023/05/31 | 460 | graphics/circuit_macros/examples/debug1.tex
-2023/05/31 | 1959 | graphics/circuit_macros/examples/debug2.m4
-2023/05/31 | 655 | graphics/circuit_macros/examples/Decoder.m4
-2023/05/31 | 1485 | graphics/circuit_macros/examples/Demultiplexer.m4
-2023/05/31 | 654 | graphics/circuit_macros/examples/diamond.m4
-2023/05/31 | 6854 | graphics/circuit_macros/examples/Dini.m4
-2023/05/31 | 1787 | graphics/circuit_macros/examples/Diodes.m4
-2023/05/31 | 1955 | graphics/circuit_macros/examples/dpv/ABlogixDPV.m4
-2023/05/31 | 2528 | graphics/circuit_macros/examples/dpv/AdderDPV.m4
-2023/05/31 | 4340 | graphics/circuit_macros/examples/dpv/AlogixDPV.m4
-2023/05/31 | 538 | graphics/circuit_macros/examples/dpv/AmpTableDPV.m4
-2023/05/31 | 1090 | graphics/circuit_macros/examples/dpv/AntennasDPV.m4
-2023/05/31 | 1626 | graphics/circuit_macros/examples/dpv/ArrestersDPV.m4
-2023/05/31 | 1894 | graphics/circuit_macros/examples/dpv/ArrowFnDPV.m4
-2023/05/31 | 2720 | graphics/circuit_macros/examples/dpv/AudioDPV.m4
-2023/05/31 | 2989 | graphics/circuit_macros/examples/dpv/AutoencoderDPV.m4
-2023/05/31 | 1668 | graphics/circuit_macros/examples/dpv/Banking.m4
-2023/05/31 | 1812 | graphics/circuit_macros/examples/dpv/BipDPV.m4
-2023/05/31 | 4292 | graphics/circuit_macros/examples/dpv/BtreeDPV.m4
-2023/05/31 | 3567 | graphics/circuit_macros/examples/dpv/ButtonsDPV.m4
-2023/05/31 | 937 | graphics/circuit_macros/examples/dpv/ByteDPV.m4
-2023/05/31 | 6467 | graphics/circuit_macros/examples/dpv/CanLogicDPV.m4
-2023/05/31 | 1160 | graphics/circuit_macros/examples/dpv/CapacitorsDPV.m4
-2023/05/31 | 1214 | graphics/circuit_macros/examples/dpv/ChipsDPV.m4
-2023/05/31 | 2292 | graphics/circuit_macros/examples/dpv/ConnDPV.m4
-2023/05/31 | 715 | graphics/circuit_macros/examples/dpv/ConnectorsDPV.m4
-2023/05/31 | 3646 | graphics/circuit_macros/examples/dpv/ContactDPV.m4
-2023/05/31 | 1737 | graphics/circuit_macros/examples/dpv/ContactsDPV.m4
-2023/05/31 | 8006 | graphics/circuit_macros/examples/dpv/controlDPV.m4
-2023/05/31 | 793 | graphics/circuit_macros/examples/dpv/CountingDPV.m4
-2023/05/31 | 2525 | graphics/circuit_macros/examples/dpv/CrowDPV.m4
-2023/05/31 | 1874 | graphics/circuit_macros/examples/dpv/CrullerDPV.m4
-2023/05/31 | 7778 | graphics/circuit_macros/examples/dpv/cscDPV.m4
-2023/05/31 | 7418 | graphics/circuit_macros/examples/dpv/CsourceDPV.m4
-2023/05/31 | 745 | graphics/circuit_macros/examples/dpv/DecoderDPV.m4
-2023/05/31 | 1373 | graphics/circuit_macros/examples/dpv/DemultiplexerDPV.m4
-2023/05/31 | 609 | graphics/circuit_macros/examples/dpv/diamondDPV.m4
-2023/05/31 | 6854 | graphics/circuit_macros/examples/dpv/DiniDPV.m4
-2023/05/31 | 1647 | graphics/circuit_macros/examples/dpv/DiodesDPV.m4
-2023/05/31 | 1050 | graphics/circuit_macros/examples/dpv/DPVconfig.m4
-2023/05/31 | 1966 | graphics/circuit_macros/examples/dpv/DriveDPV.m4
-2023/05/31 | 4757 | graphics/circuit_macros/examples/dpv/EEPDPV.m4
-2023/05/31 | 1071 | graphics/circuit_macros/examples/dpv/EmarrowsDPV.m4
-2023/05/31 | 6285 | graphics/circuit_macros/examples/dpv/EscherDPV.m4
-2023/05/31 | 10871 | graphics/circuit_macros/examples/dpv/EVplugsDPV.m4
-2023/05/31 | 2443 | graphics/circuit_macros/examples/dpv/ex00DPV.m4
-2023/05/31 | 2629 | graphics/circuit_macros/examples/dpv/ex01DPV.m4
-2023/05/31 | 1093 | graphics/circuit_macros/examples/dpv/ex02DPV.m4
-2023/05/31 | 855 | graphics/circuit_macros/examples/dpv/ex03DPV.m4
-2023/05/31 | 1891 | graphics/circuit_macros/examples/dpv/ex04DPV.m4
-2023/05/31 | 3390 | graphics/circuit_macros/examples/dpv/ex05DPV.m4
-2023/05/31 | 2018 | graphics/circuit_macros/examples/dpv/ex06DPV.m4
-2023/05/31 | 2559 | graphics/circuit_macros/examples/dpv/ex08DPV.m4
-2023/05/31 | 4119 | graphics/circuit_macros/examples/dpv/ex09DPV.m4
-2023/05/31 | 1699 | graphics/circuit_macros/examples/dpv/ex10DPV.m4
-2023/05/31 | 2685 | graphics/circuit_macros/examples/dpv/ex11DPV.m4
-2023/05/31 | 3522 | graphics/circuit_macros/examples/dpv/ex12DPV.m4
-2023/05/31 | 966 | graphics/circuit_macros/examples/dpv/ex15DPV.m4
-2023/05/31 | 1893 | graphics/circuit_macros/examples/dpv/ex16DPV.m4
-2023/05/31 | 1204 | graphics/circuit_macros/examples/dpv/ex17DPV.m4
-2023/05/31 | 1065 | graphics/circuit_macros/examples/dpv/ex18DPV.m4
-2023/05/31 | 1882 | graphics/circuit_macros/examples/dpv/ex21DPV.m4
-2023/05/31 | 25098 | graphics/circuit_macros/examples/dpv/examplesDPV.htmx
-2023/05/31 | 25103 | graphics/circuit_macros/examples/dpv/examplesDPVs.htmx
-2023/05/31 | 8517 | graphics/circuit_macros/examples/dpv/expDPV.m4
-2023/05/31 | 1700 | graphics/circuit_macros/examples/dpv/EyeDPV.m4
-2023/05/31 | 5365 | graphics/circuit_macros/examples/dpv/fetDPV.m4
-2023/05/31 | 5174 | graphics/circuit_macros/examples/dpv/FlowDPV.m4
-2023/05/31 | 555 | graphics/circuit_macros/examples/dpv/FontsDPV.m4
-2023/05/31 | 1996 | graphics/circuit_macros/examples/dpv/FourbarDPV.m4
-2023/05/31 | 1230 | graphics/circuit_macros/examples/dpv/FusesDPV.m4
-2023/05/31 | 5228 | graphics/circuit_macros/examples/dpv/GeometryDPV.m4
-2023/05/31 | 1875 | graphics/circuit_macros/examples/dpv/GrayCodeDPV.m4
-2023/05/31 | 5469 | graphics/circuit_macros/examples/dpv/graysurfDPV.m4
-2023/05/31 | 810 | graphics/circuit_macros/examples/dpv/GroundsDPV.m4
-2023/05/31 | 1265 | graphics/circuit_macros/examples/dpv/HeadersDPV.m4
-2023/05/31 | 12711 | graphics/circuit_macros/examples/dpv/HeathkitDPV.m4
-2023/05/31 | 2171 | graphics/circuit_macros/examples/dpv/I2LDPV.m4
-2023/05/31 | 11601 | graphics/circuit_macros/examples/dpv/icsDPV.m4
-2023/05/31 | 4292 | graphics/circuit_macros/examples/dpv/InclepsDPV.m4
-2023/05/31 | 21384 | graphics/circuit_macros/examples/dpv/Incl.jpg
-2023/05/31 | 1343 | graphics/circuit_macros/examples/dpv/InductorsDPV.m4
-2023/05/31 | 2051 | graphics/circuit_macros/examples/dpv/JackDPV.m4
-2023/05/31 | 10699 | graphics/circuit_macros/examples/dpv/keyboardDPV.m4
-2023/05/31 | 7203 | graphics/circuit_macros/examples/dpv/lcctDPV.m4
-2023/05/31 | 6216 | graphics/circuit_macros/examples/dpv/LgateDPV.m4
-2023/05/31 | 63 | graphics/circuit_macros/examples/dpv/local_init.m4
-2023/05/31 | 1931 | graphics/circuit_macros/examples/dpv/LogicDPV.m4
-2023/05/31 | 30451 | graphics/circuit_macros/examples/dpv/LoglogDPV.m4
-2023/05/31 | 6130 | graphics/circuit_macros/examples/dpv/Makefile
-2023/05/31 | 3473 | graphics/circuit_macros/examples/dpv/MCDPV.m4
-2023/05/31 | 3489 | graphics/circuit_macros/examples/dpv/MixerDPV.m4
-2023/05/31 | 1585 | graphics/circuit_macros/examples/dpv/MoreTableDPV.m4
-2023/05/31 | 1953 | graphics/circuit_macros/examples/dpv/MotorControlDPV.m4
-2023/05/31 | 1403 | graphics/circuit_macros/examples/dpv/MultiplexerDPV.m4
-2023/05/31 | 532 | graphics/circuit_macros/examples/dpv/NLGDPV.m4
-2023/05/31 | 1157 | graphics/circuit_macros/examples/dpv/NPDTDPV.m4
-2023/05/31 | 758 | graphics/circuit_macros/examples/dpv/Np.m4
-2023/05/31 | 1238 | graphics/circuit_macros/examples/dpv/NportDPV.m4
-2023/05/31 | 1034 | graphics/circuit_macros/examples/dpv/OpampDPV.m4
-2023/05/31 | 2551 | graphics/circuit_macros/examples/dpv/OptoisoDPV.m4
-2023/05/31 | 10238 | graphics/circuit_macros/examples/dpv/paletteDPV.m4
-2023/05/31 | 1781 | graphics/circuit_macros/examples/dpv/PconnDPV.m4
-2023/05/31 | 6156 | graphics/circuit_macros/examples/dpv/PlateDPV.m4
-2023/05/31 | 3778 | graphics/circuit_macros/examples/dpv/PushPullDPV.m4
-2023/05/31 | 2027 | graphics/circuit_macros/examples/dpv/pwrsupplyDPV.m4
-2023/05/31 | 947 | graphics/circuit_macros/examples/dpv/QuantumDPV.m4
-2023/05/31 | 901 | graphics/circuit_macros/examples/dpv/quickDPV.m4
-2023/05/31 | 3756 | graphics/circuit_macros/examples/dpv/randomDPV.m4
-2023/05/31 | 609 | graphics/circuit_macros/examples/dpv/README_svg
-2023/05/31 | 7546 | graphics/circuit_macros/examples/dpv/RectifiersDPV.m4
-2023/05/31 | 3825 | graphics/circuit_macros/examples/dpv/recycleDPV.m4
-2023/05/31 | 2069 | graphics/circuit_macros/examples/dpv/relaycoilDPV.m4
-2023/05/31 | 1431 | graphics/circuit_macros/examples/dpv/RelayDPV.m4
-2023/05/31 | 1188 | graphics/circuit_macros/examples/dpv/ResistorsDPV.m4
-2023/05/31 | 5485 | graphics/circuit_macros/examples/dpv/roseDPV.m4
-2023/05/31 | 563 | graphics/circuit_macros/examples/dpv/RotboxDPV.m4
-2023/05/31 | 1837 | graphics/circuit_macros/examples/dpv/SchottkyDPV.m4
-2023/05/31 | 4748 | graphics/circuit_macros/examples/dpv/sfgDPV.m4
-2023/05/31 | 7494 | graphics/circuit_macros/examples/dpv/shapesDPV.m4
-2023/05/31 | 1313 | graphics/circuit_macros/examples/dpv/ShiftRDPV.m4
-2023/05/31 | 1331 | graphics/circuit_macros/examples/dpv/SierpinskiDPV.m4
-2023/05/31 | 419 | graphics/circuit_macros/examples/dpv/SixpoleDPV.m4
-2023/05/31 | 4376 | graphics/circuit_macros/examples/dpv/slddiagsDPV.m4
-2023/05/31 | 8810 | graphics/circuit_macros/examples/dpv/SmithchartDPV.m4
-2023/05/31 | 1907 | graphics/circuit_macros/examples/dpv/SourcesDPV.m4
-2023/05/31 | 417 | graphics/circuit_macros/examples/dpv/SQUIDDPV.m4
-2023/05/31 | 5132 | graphics/circuit_macros/examples/dpv/SwitchesDPV.m4
-2023/05/31 | 1055 | graphics/circuit_macros/examples/dpv/TgateDPV.m4
-2023/05/31 | 1444 | graphics/circuit_macros/examples/dpv/ThreeDPV.m4
-2023/05/31 | 3310 | graphics/circuit_macros/examples/dpv/thyristorDPV.m4
-2023/05/31 | 1612 | graphics/circuit_macros/examples/dpv/TimerDPV.m4
-2023/05/31 | 13797 | graphics/circuit_macros/examples/dpv/tstDPV.htmx
-2023/05/31 | 1630 | graphics/circuit_macros/examples/dpv/TTLnandDPV.m4
-2023/05/31 | 3091 | graphics/circuit_macros/examples/dpv/TtreeDPV.m4
-2023/05/31 | 12478 | graphics/circuit_macros/examples/dpv/TubediagsDPV.m4
-2023/05/31 | 682 | graphics/circuit_macros/examples/dpv/ujtDPV.m4
-2023/05/31 | 23704 | graphics/circuit_macros/examples/dpv/UNODPV.m4
-2023/05/31 | 988 | graphics/circuit_macros/examples/dpv/VariableDPV.m4
-2023/05/31 | 2994 | graphics/circuit_macros/examples/dpv/WindingsDPV.m4
-2023/05/31 | 353 | graphics/circuit_macros/examples/dpv/windows.m4
-2023/05/31 | 3631 | graphics/circuit_macros/examples/dpv/wormDPV.m4
-2023/05/31 | 1559 | graphics/circuit_macros/examples/dpv/XformDPV.m4
-2023/05/31 | 1985 | graphics/circuit_macros/examples/dpv/XORDPV.m4
-2023/05/31 | 1546 | graphics/circuit_macros/examples/dpv/Xtest.m4
-2023/05/31 | 1966 | graphics/circuit_macros/examples/Drive.m4
-2023/05/31 | 4885 | graphics/circuit_macros/examples/EEP.m4
-2023/05/31 | 977 | graphics/circuit_macros/examples/Emarrows.m4
-2023/05/31 | 6282 | graphics/circuit_macros/examples/Escher.m4
-2023/05/31 | 10836 | graphics/circuit_macros/examples/EVplugs.m4
-2023/05/31 | 2412 | graphics/circuit_macros/examples/ex00.m4
-2023/05/31 | 2294 | graphics/circuit_macros/examples/ex01.m4
-2023/05/31 | 1100 | graphics/circuit_macros/examples/ex02.m4
-2023/05/31 | 673 | graphics/circuit_macros/examples/ex03.m4
-2023/05/31 | 1654 | graphics/circuit_macros/examples/ex04.m4
-2023/05/31 | 3510 | graphics/circuit_macros/examples/ex05.m4
-2023/05/31 | 1700 | graphics/circuit_macros/examples/ex06.m4
-2023/05/31 | 2556 | graphics/circuit_macros/examples/ex08.m4
-2023/05/31 | 4313 | graphics/circuit_macros/examples/ex09.m4
-2023/05/31 | 1492 | graphics/circuit_macros/examples/ex10.m4
-2023/05/31 | 2361 | graphics/circuit_macros/examples/ex11.m4
-2023/05/31 | 3339 | graphics/circuit_macros/examples/ex12.m4
-2023/05/31 | 1003 | graphics/circuit_macros/examples/ex15.m4
-2023/05/31 | 1865 | graphics/circuit_macros/examples/ex16.m4
-2023/05/31 | 1126 | graphics/circuit_macros/examples/ex17.m4
-2023/05/31 | 865 | graphics/circuit_macros/examples/ex18.m4
-2023/05/31 | 2000 | graphics/circuit_macros/examples/ex21.m4
-2023/05/31 | 1902473 | graphics/circuit_macros/examples/examples.pdf
-2023/05/31 | 1766 | graphics/circuit_macros/examples/examples.tex
-2023/05/31 | 8372 | graphics/circuit_macros/examples/exp.m4
-2023/05/31 | 1091 | graphics/circuit_macros/examples/extras/Ant.m4
-2023/05/31 | 1786 | graphics/circuit_macros/examples/extras/ArrowFn.m4
-2023/05/31 | 1612 | graphics/circuit_macros/examples/extras/ASMEbox.m4
-2023/05/31 | 771 | graphics/circuit_macros/examples/extras/Attention.m4
-2023/05/31 | 2517 | graphics/circuit_macros/examples/extras/Autoencoder.m4
-2023/05/31 | 917 | graphics/circuit_macros/examples/extras/birds.m4
-2023/05/31 | 1075 | graphics/circuit_macros/examples/extras/bistable.m4
-2023/05/31 | 4114 | graphics/circuit_macros/examples/extras/brace.m4
-2023/05/31 | 970 | graphics/circuit_macros/examples/extras/Bridge.m4
-2023/05/31 | 245 | graphics/circuit_macros/examples/extras/Ccurve.m4
-2023/05/31 | 1039 | graphics/circuit_macros/examples/extras/chaos.m4
-2023/05/31 | 7583 | graphics/circuit_macros/examples/extras/Chuck.m4
-2023/05/31 | 7823 | graphics/circuit_macros/examples/extras/Clocks.m4
-2023/05/31 | 1375 | graphics/circuit_macros/examples/extras/ControlLoop.m4
-2023/05/31 | 551 | graphics/circuit_macros/examples/extras/Counting.m4
-2023/05/31 | 1879 | graphics/circuit_macros/examples/extras/Cruller.m4
-2023/05/31 | 6003 | graphics/circuit_macros/examples/extras/CSlight.m4
-2023/05/31 | 980 | graphics/circuit_macros/examples/extras/Cylinder.m4
-2023/05/31 | 1217 | graphics/circuit_macros/examples/extras/Egg.m4
-2023/05/31 | 4002 | graphics/circuit_macros/examples/extras/Euro.m4
-2023/05/31 | 2086 | graphics/circuit_macros/examples/extras/Eye.m4
-2023/05/31 | 1880 | graphics/circuit_macros/examples/extras/Fefets.m4
-2023/05/31 | 765 | graphics/circuit_macros/examples/extras/FieldLines.m4
-2023/05/31 | 645 | graphics/circuit_macros/examples/extras/Floor.m4
-2023/05/31 | 1961 | graphics/circuit_macros/examples/extras/Flow2.m4
-2023/05/31 | 1990 | graphics/circuit_macros/examples/extras/Hexagon.m4
-2023/05/31 | 2385 | graphics/circuit_macros/examples/extras/Highgain.m4
-2023/05/31 | 558 | graphics/circuit_macros/examples/extras/hsv.m4
-2023/05/31 | 1668 | graphics/circuit_macros/examples/extras/IC10107.m4
-2023/05/31 | 489 | graphics/circuit_macros/examples/extras/Koch.m4
-2023/05/31 | 4501 | graphics/circuit_macros/examples/extras/Lyap.m4
-2023/05/31 | 6552 | graphics/circuit_macros/examples/extras/Makefile
-2023/05/31 | 2846 | graphics/circuit_macros/examples/extras/Metamodel.m4
-2023/05/31 | 2167 | graphics/circuit_macros/examples/extras/Obliq.m4
-2023/05/31 | 3072 | graphics/circuit_macros/examples/extras/OneLine.m4
-2023/05/31 | 2777 | graphics/circuit_macros/examples/extras/OpAmpFilter.m4
-2023/05/31 | 1089 | graphics/circuit_macros/examples/extras/Optics.m4
-2023/05/31 | 1852 | graphics/circuit_macros/examples/extras/Orbits.m4
-2023/05/31 | 657 | graphics/circuit_macros/examples/extras/PerpTo.m4
-2023/05/31 | 1373 | graphics/circuit_macros/examples/extras/person.m4
-2023/05/31 | 666 | graphics/circuit_macros/examples/extras/Pipe.m4
-2023/05/31 | 5730 | graphics/circuit_macros/examples/extras/Planes.m4
-2023/05/31 | 1174 | graphics/circuit_macros/examples/extras/PPA.m4
-2023/05/31 | 410 | graphics/circuit_macros/examples/extras/RandomNodes.m4
-2023/05/31 | 720 | graphics/circuit_macros/examples/extras/README_extras
-2023/05/31 | 1097 | graphics/circuit_macros/examples/extras/Region.m4
-2023/05/31 | 1443 | graphics/circuit_macros/examples/extras/Resolver.m4
-2023/05/31 | 365 | graphics/circuit_macros/examples/extras/rotellipse.m4
-2023/05/31 | 747 | graphics/circuit_macros/examples/extras/SampleFlow.m4
-2023/05/31 | 295 | graphics/circuit_macros/examples/extras/ShadeSector.m4
-2023/05/31 | 4661 | graphics/circuit_macros/examples/extras/Shadow.m4
-2023/05/31 | 3749 | graphics/circuit_macros/examples/extras/Shaky.m4
-2023/05/31 | 1906 | graphics/circuit_macros/examples/extras/SPM.m4
-2023/05/31 | 953 | graphics/circuit_macros/examples/extras/squiggle.m4
-2023/05/31 | 1279 | graphics/circuit_macros/examples/extras/Star.m4
-2023/05/31 | 1795 | graphics/circuit_macros/examples/extras/Stator.m4
-2023/05/31 | 359 | graphics/circuit_macros/examples/extras/TR_fill.m4
-2023/05/31 | 1916 | graphics/circuit_macros/examples/extras/venus.m4
-2023/05/31 | 10232 | graphics/circuit_macros/examples/extras/Views.m4
-2023/05/31 | 449 | graphics/circuit_macros/examples/extras/Wheat.m4
-2023/05/31 | 475 | graphics/circuit_macros/examples/extras/Wheel.m4
-2023/05/31 | 656 | graphics/circuit_macros/examples/extras/Zcos.m4
-2023/05/31 | 5311 | graphics/circuit_macros/examples/fet.m4
-2023/05/31 | 19767 | graphics/circuit_macros/examples/files.tex
-2023/05/31 | 11255 | graphics/circuit_macros/examples/FlowchartDefs.m4def
-2023/05/31 | 4792 | graphics/circuit_macros/examples/Flow.m4
-2023/05/31 | 1337 | graphics/circuit_macros/examples/Fuses.m4
-2023/05/31 | 5093 | graphics/circuit_macros/examples/Geometry.m4
-2023/05/31 | 1818 | graphics/circuit_macros/examples/GrayCode.m4
-2023/05/31 | 5486 | graphics/circuit_macros/examples/graysurf.m4
-2023/05/31 | 828 | graphics/circuit_macros/examples/Grounds.m4
-2023/05/31 | 1132 | graphics/circuit_macros/examples/Headers.m4
-2023/05/31 | 1458 | graphics/circuit_macros/examples/header.tex
-2023/05/31 | 557 | graphics/circuit_macros/examples/heater.m4
-2023/05/31 | 13420 | graphics/circuit_macros/examples/Heathkit.m4
-2023/05/31 | 2068 | graphics/circuit_macros/examples/I2L.m4
-2023/05/31 | 11440 | graphics/circuit_macros/examples/ics.m4
-2023/05/31 | 32 | graphics/circuit_macros/examples/Incl.eps.bb
-2023/05/31 | 45323 | graphics/circuit_macros/examples/Incl.eps.gz
-2023/05/31 | 772 | graphics/circuit_macros/examples/Incleps.m4
-2023/05/31 | 29772 | graphics/circuit_macros/examples/Incl.pdf
-2023/05/31 | 709 | graphics/circuit_macros/examples/Inclpdf.m4
-2023/05/31 | 1443 | graphics/circuit_macros/examples/Inductors.m4
-2023/05/31 | 2362 | graphics/circuit_macros/examples/Jack.m4
-2023/05/31 | 10699 | graphics/circuit_macros/examples/keyboard.m4
-2023/05/31 | 7127 | graphics/circuit_macros/examples/lcct.m4
-2023/05/31 | 41403 | graphics/circuit_macros/examples/Lettering.m4def
-2023/05/31 | 2119 | graphics/circuit_macros/examples/Logic.m4
-2023/05/31 | 2304 | graphics/circuit_macros/examples/Loglog.m4
-2023/05/31 | 10172 | graphics/circuit_macros/examples/Makefile
-2023/05/31 | 2986 | graphics/circuit_macros/examples/MC.m4
-2023/05/31 | 95150 | graphics/circuit_macros/examples/mf/cct.mf
-2023/05/31 | 764 | graphics/circuit_macros/examples/mf/cct.tfm
-2023/05/31 | 4615 | graphics/circuit_macros/examples/mf/font.m4
-2023/05/31 | 1529 | graphics/circuit_macros/examples/mf/Makefile
-2023/05/31 | 1076 | graphics/circuit_macros/examples/mf/mftest
-2023/05/31 | 3848 | graphics/circuit_macros/examples/Mixer.m4
-2023/05/31 | 1588 | graphics/circuit_macros/examples/MoreTable.m4
-2023/05/31 | 1922 | graphics/circuit_macros/examples/MotorControl.m4
-2023/05/31 | 497 | graphics/circuit_macros/examples/mpost/examplesmpost.tex
-2023/05/31 | 4502 | graphics/circuit_macros/examples/mpost/Makefile
-2023/05/31 | 685 | graphics/circuit_macros/examples/mpost/mptest
-2023/05/31 | 749 | graphics/circuit_macros/examples/mpost/README-mpost
-2023/05/31 | 418 | graphics/circuit_macros/examples/mpost/tstmpost.tex
-2023/05/31 | 1400 | graphics/circuit_macros/examples/Multiplexer.m4
-2023/05/31 | 499 | graphics/circuit_macros/examples/NLG.m4
-2023/05/31 | 1128 | graphics/circuit_macros/examples/NPDT.m4
-2023/05/31 | 1040 | graphics/circuit_macros/examples/Nport.m4
-2023/05/31 | 1433 | graphics/circuit_macros/examples/Opamp.m4
-2023/05/31 | 2442 | graphics/circuit_macros/examples/Optoiso.m4
-2023/05/31 | 1997 | graphics/circuit_macros/examples/Pconn.m4
-2023/05/31 | 6254 | graphics/circuit_macros/examples/Plate.m4
-2023/05/31 | 715 | graphics/circuit_macros/examples/psfrag/examplespsfrag.tex
-2023/05/31 | 4784 | graphics/circuit_macros/examples/psfrag/Makefile
-2023/05/31 | 317 | graphics/circuit_macros/examples/psfrag/README-psfrag.txt
-2023/05/31 | 371 | graphics/circuit_macros/examples/psfrag/tstpsfrag.tex
-2023/05/31 | 3954 | graphics/circuit_macros/examples/PushPull.m4
-2023/05/31 | 2014 | graphics/circuit_macros/examples/pwrsupply.m4
-2023/05/31 | 918 | graphics/circuit_macros/examples/Quantum.m4
-2023/05/31 | 774 | graphics/circuit_macros/examples/quick.m4
-2023/05/31 | 3727 | graphics/circuit_macros/examples/random.m4
-2023/05/31 | 3388 | graphics/circuit_macros/examples/README-examples
-2023/05/31 | 7006 | graphics/circuit_macros/examples/Rectifiers.m4
-2023/05/31 | 3825 | graphics/circuit_macros/examples/recycle.m4
-2023/05/31 | 2086 | graphics/circuit_macros/examples/relaycoil.m4
-2023/05/31 | 1259 | graphics/circuit_macros/examples/Relay.m4
-2023/05/31 | 1147 | graphics/circuit_macros/examples/Resistors.m4
-2023/05/31 | 5485 | graphics/circuit_macros/examples/rose.m4
-2023/05/31 | 221 | graphics/circuit_macros/examples/rotate.tex
-2023/05/31 | 1525 | graphics/circuit_macros/examples/rotatetext.m4
-2023/05/31 | 533 | graphics/circuit_macros/examples/Rotbox.m4
-2023/05/31 | 1778 | graphics/circuit_macros/examples/Schottky.m4
-2023/05/31 | 3949 | graphics/circuit_macros/examples/sfg.m4
-2023/05/31 | 1129 | graphics/circuit_macros/examples/shadowed.m4
-2023/05/31 | 7708 | graphics/circuit_macros/examples/shapes.m4
-2023/05/31 | 1406 | graphics/circuit_macros/examples/ShiftR.m4
-2023/05/31 | 1331 | graphics/circuit_macros/examples/Sierpinski.m4
-2023/05/31 | 419 | graphics/circuit_macros/examples/Sixpole.m4
-2023/05/31 | 8833 | graphics/circuit_macros/examples/Smithchart.m4
-2023/05/31 | 2165 | graphics/circuit_macros/examples/Sources.m4
-2023/05/31 | 380 | graphics/circuit_macros/examples/SQUID.m4
-2023/05/31 | 4782 | graphics/circuit_macros/examples/Switches.m4
-2023/05/31 | 591 | graphics/circuit_macros/examples/test.m4
-2023/05/31 | 416 | graphics/circuit_macros/examples/testpdf.tex
-2023/05/31 | 1022 | graphics/circuit_macros/examples/Tgate.m4
-2023/05/31 | 1287 | graphics/circuit_macros/examples/Three.m4
-2023/05/31 | 3321 | graphics/circuit_macros/examples/thyristor.m4
-2023/05/31 | 219 | graphics/circuit_macros/examples/tst1.tex
-2023/05/31 | 409 | graphics/circuit_macros/examples/tst.tex
-2023/05/31 | 464 | graphics/circuit_macros/examples/tsttikz.tex
-2023/05/31 | 1558 | graphics/circuit_macros/examples/TTLnand.m4
-2023/05/31 | 9869 | graphics/circuit_macros/examples/tubedefs.m4
-2023/05/31 | 13294 | graphics/circuit_macros/examples/Tubediags.m4
-2023/05/31 | 660 | graphics/circuit_macros/examples/ujt.m4
-2023/05/31 | 23171 | graphics/circuit_macros/examples/UNO.m4
-2023/05/31 | 932 | graphics/circuit_macros/examples/Variable.m4
-2023/05/31 | 3346 | graphics/circuit_macros/examples/Windings.m4
-2023/05/31 | 353 | graphics/circuit_macros/examples/windows.m4
-2023/05/31 | 2801 | graphics/circuit_macros/examples/worm.m4
-2023/05/31 | 337 | graphics/circuit_macros/examples/xfig/Makefile
-2023/05/31 | 21424 | graphics/circuit_macros/examples/xfig/xfiglib.fig
-2023/05/31 | 5969 | graphics/circuit_macros/examples/xfig/xfiglib.m4
-2023/05/31 | 1526 | graphics/circuit_macros/examples/Xform.m4
-2023/05/31 | 1823 | graphics/circuit_macros/examples/XOR.m4
-2023/05/31 | 1019 | graphics/circuit_macros/gpic.m4
-2023/05/31 | 3794 | graphics/circuit_macros/INSTALL
-2023/05/31 | 12765 | graphics/circuit_macros/lib3D.m4
-2023/05/31 | 186931 | graphics/circuit_macros/libcct.m4
-2023/05/31 | 93856 | graphics/circuit_macros/libgen.m4
-2023/05/31 | 48258 | graphics/circuit_macros/liblog.m4
-2023/05/31 | 32773 | graphics/circuit_macros/libSLD.m4
-2023/05/31 | 19176 | graphics/circuit_macros/Licence.txt
-2023/05/31 | 1639 | graphics/circuit_macros/Makefile
-2023/05/31 | 1114 | graphics/circuit_macros/mfpic.m4
-2023/05/31 | 1640 | graphics/circuit_macros/mpost.m4
-2023/05/31 | 2275 | graphics/circuit_macros/pdf.m4
-2023/05/31 | 2085 | graphics/circuit_macros/pgf.m4
-2023/05/31 | 2834 | graphics/circuit_macros/postscript.m4
-2023/05/31 | 706 | graphics/circuit_macros/psfrag.m4
-2023/05/31 | 2099 | graphics/circuit_macros/pstricks.m4
-2023/05/31 | 15928 | graphics/circuit_macros/README
-2023/05/31 | 11995 | graphics/circuit_macros/svg.m4
-2023/05/31 | 1029 | graphics/circuit_macros/xfig.m4
-2023/05/31 | 3672141 | graphics/circuit_macros.zip
+2023/09/11 | 1185 | graphics/circuit_macros/boxdims.sty
+2023/09/11 | 14265 | graphics/circuit_macros/CHANGES
+2023/09/11 | 462 | graphics/circuit_macros/Copying
+2023/09/11 | 19829 | graphics/circuit_macros/darrow.m4
+2023/09/11 | 26 | graphics/circuit_macros/doc/ACsymbol.m4
+2023/09/11 | 2427 | graphics/circuit_macros/doc/AlogixMan.m4
+2023/09/11 | 494 | graphics/circuit_macros/doc/AmpTableMan.m4
+2023/09/11 | 1230 | graphics/circuit_macros/doc/AntennasMan.m4
+2023/09/11 | 1618 | graphics/circuit_macros/doc/ArrestersMan.m4
+2023/09/11 | 1017 | graphics/circuit_macros/doc/arrowex.m4
+2023/09/11 | 2634 | graphics/circuit_macros/doc/AudioMan.m4
+2023/09/11 | 173 | graphics/circuit_macros/doc/AutologixMan.m4
+2023/09/11 | 131 | graphics/circuit_macros/doc/Axes.m4
+2023/09/11 | 614 | graphics/circuit_macros/doc/BigResistor.m4
+2023/09/11 | 1619 | graphics/circuit_macros/doc/BipMan.m4
+2023/09/11 | 1074 | graphics/circuit_macros/doc/bistableMan.m4
+2023/09/11 | 1860 | graphics/circuit_macros/doc/bi_trans.m4
+2023/09/11 | 130 | graphics/circuit_macros/doc/bitrbody.m4
+2023/09/11 | 50 | graphics/circuit_macros/doc/bitr.m4
+2023/09/11 | 158635 | graphics/circuit_macros/doc/body.tex
+2023/09/11 | 1953 | graphics/circuit_macros/doc/Buffer.m4
+2023/09/11 | 3820 | graphics/circuit_macros/doc/CanLogicMan.tex
+2023/09/11 | 1063 | graphics/circuit_macros/doc/CapacitorsMan.m4
+2023/09/11 | 4475 | graphics/circuit_macros/doc/Circuit_macros.bib
+2023/09/11 | 1059727 | graphics/circuit_macros/doc/Circuit_macros.pdf
+2023/09/11 | 3019 | graphics/circuit_macros/doc/Circuit_macros.tex
+2023/09/11 | 1857 | graphics/circuit_macros/doc/Composite.m4
+2023/09/11 | 1121 | graphics/circuit_macros/doc/ConfigA.m4
+2023/09/11 | 1258 | graphics/circuit_macros/doc/ConfigB.m4
+2023/09/11 | 1292 | graphics/circuit_macros/doc/ConfigC.m4
+2023/09/11 | 2353 | graphics/circuit_macros/doc/ConnMan.m4
+2023/09/11 | 3326 | graphics/circuit_macros/doc/ContactMan.m4
+2023/09/11 | 1585 | graphics/circuit_macros/doc/ContactsMan.m4
+2023/09/11 | 1995 | graphics/circuit_macros/doc/Corners.m4
+2023/09/11 | 1329 | graphics/circuit_macros/doc/currents.m4
+2023/09/11 | 2389 | graphics/circuit_macros/doc/Dac.m4
+2023/09/11 | 1151 | graphics/circuit_macros/doc/Darlington.m4
+2023/09/11 | 26 | graphics/circuit_macros/doc/DCsymbol.m4
+2023/09/11 | 111639 | graphics/circuit_macros/doc/defines.tex
+2023/09/11 | 1485 | graphics/circuit_macros/doc/DemultiplexerMan.m4
+2023/09/11 | 1790 | graphics/circuit_macros/doc/DiodesMan.m4
+2023/09/11 | 483 | graphics/circuit_macros/doc/eboxdims.m4
+2023/09/11 | 981 | graphics/circuit_macros/doc/EmarrowsMan.m4
+2023/09/11 | 1229 | graphics/circuit_macros/doc/fbfilter.m4
+2023/09/11 | 5315 | graphics/circuit_macros/doc/fetMan.m4
+2023/09/11 | 329 | graphics/circuit_macros/doc/FF.m4
+2023/09/11 | 1975 | graphics/circuit_macros/doc/FlipFlop.m4
+2023/09/11 | 970 | graphics/circuit_macros/doc/Flowdiag.m4
+2023/09/11 | 1353 | graphics/circuit_macros/doc/FusesMan.m4
+2023/09/11 | 831 | graphics/circuit_macros/doc/GroundsMan.m4
+2023/09/11 | 1132 | graphics/circuit_macros/doc/HeadersMan.m4
+2023/09/11 | 560 | graphics/circuit_macros/doc/heaterMan.m4
+2023/09/11 | 2013 | graphics/circuit_macros/doc/HybridPi.m4
+2023/09/11 | 1342 | graphics/circuit_macros/doc/InductorsMan.m4
+2023/09/11 | 2362 | graphics/circuit_macros/doc/JackMan.m4
+2023/09/11 | 2119 | graphics/circuit_macros/doc/LogicMan.m4
+2023/09/11 | 269 | graphics/circuit_macros/doc/Loop.m4
+2023/09/11 | 387 | graphics/circuit_macros/doc/lrarrows.m4
+2023/09/11 | 5095 | graphics/circuit_macros/doc/Makefile
+2023/09/11 | 784 | graphics/circuit_macros/doc/MoreTableMan.m4
+2023/09/11 | 1575 | graphics/circuit_macros/doc/mplex.m4
+2023/09/11 | 1400 | graphics/circuit_macros/doc/MultiplexerMan.m4
+2023/09/11 | 499 | graphics/circuit_macros/doc/NLGMan.m4
+2023/09/11 | 1128 | graphics/circuit_macros/doc/NPDTMan.m4
+2023/09/11 | 1040 | graphics/circuit_macros/doc/NportMan.m4
+2023/09/11 | 783 | graphics/circuit_macros/doc/Oblique.m4
+2023/09/11 | 137 | graphics/circuit_macros/doc/opampexbody.m4
+2023/09/11 | 56 | graphics/circuit_macros/doc/opampex.m4
+2023/09/11 | 1433 | graphics/circuit_macros/doc/OpampMan.m4
+2023/09/11 | 835 | graphics/circuit_macros/doc/Opto.m4
+2023/09/11 | 1624 | graphics/circuit_macros/doc/ParSeries.m4
+2023/09/11 | 1982 | graphics/circuit_macros/doc/PconnMan.m4
+2023/09/11 | 801 | graphics/circuit_macros/doc/Potentiometers.m4
+2023/09/11 | 577 | graphics/circuit_macros/doc/QTrans.m4
+2023/09/11 | 774 | graphics/circuit_macros/doc/quick.m4
+2023/09/11 | 2086 | graphics/circuit_macros/doc/relaycoilMan.m4
+2023/09/11 | 1259 | graphics/circuit_macros/doc/RelayMan.m4
+2023/09/11 | 1149 | graphics/circuit_macros/doc/ResistorsMan.m4
+2023/09/11 | 455 | graphics/circuit_macros/doc/sampleIC.m4
+2023/09/11 | 404 | graphics/circuit_macros/doc/Series.m4
+2023/09/11 | 1406 | graphics/circuit_macros/doc/ShiftRMan.m4
+2023/09/11 | 421 | graphics/circuit_macros/doc/Sinus.m4
+2023/09/11 | 7363 | graphics/circuit_macros/doc/SLDsMan.m4
+2023/09/11 | 2276 | graphics/circuit_macros/doc/SourcesMan.m4
+2023/09/11 | 1319 | graphics/circuit_macros/doc/SRffMan.m4
+2023/09/11 | 217 | graphics/circuit_macros/doc/stringdims.m4
+2023/09/11 | 4780 | graphics/circuit_macros/doc/SwitchesMan.m4
+2023/09/11 | 1463 | graphics/circuit_macros/doc/Taps.m4
+2023/09/11 | 1022 | graphics/circuit_macros/doc/TgateMan.m4
+2023/09/11 | 150 | graphics/circuit_macros/doc/Thermal.m4
+2023/09/11 | 3321 | graphics/circuit_macros/doc/thyristorMan.m4
+2023/09/11 | 535 | graphics/circuit_macros/doc/Tline.m4
+2023/09/11 | 165 | graphics/circuit_macros/doc/tranbody.m4
+2023/09/11 | 660 | graphics/circuit_macros/doc/ujtMan.m4
+2023/09/11 | 944 | graphics/circuit_macros/doc/VariableMan.m4
+2023/09/11 | 13 | graphics/circuit_macros/doc/Version.tex
+2023/09/11 | 3346 | graphics/circuit_macros/doc/WindingsMan.m4
+2023/09/11 | 449 | graphics/circuit_macros/doc/woodchips.m4
+2023/09/11 | 2912 | graphics/circuit_macros/doc/Workflow.m4
+2023/09/11 | 1536 | graphics/circuit_macros/doc/XformMan.m4
+2023/09/11 | 23618 | graphics/circuit_macros/dpictools.pic
+2023/09/11 | 1730 | graphics/circuit_macros/examples/ABlogix.m4
+2023/09/11 | 2402 | graphics/circuit_macros/examples/Adder.m4
+2023/09/11 | 4153 | graphics/circuit_macros/examples/Alogix.m4
+2023/09/11 | 494 | graphics/circuit_macros/examples/AmpTable.m4
+2023/09/11 | 1230 | graphics/circuit_macros/examples/Antennas.m4
+2023/09/11 | 1615 | graphics/circuit_macros/examples/Arresters.m4
+2023/09/11 | 6270 | graphics/circuit_macros/examples/ASME_Y14-5.m4def
+2023/09/11 | 2634 | graphics/circuit_macros/examples/Audio.m4
+2023/09/11 | 4638 | graphics/circuit_macros/examples/Ball.m4
+2023/09/11 | 1619 | graphics/circuit_macros/examples/Bip.m4
+2023/09/11 | 3198 | graphics/circuit_macros/examples/Btree.m4
+2023/09/11 | 3509 | graphics/circuit_macros/examples/Buttons.m4
+2023/09/11 | 991 | graphics/circuit_macros/examples/Byte.m4
+2023/09/11 | 6425 | graphics/circuit_macros/examples/CanLogic.m4
+2023/09/11 | 1201 | graphics/circuit_macros/examples/Capacitors.m4
+2023/09/11 | 1222 | graphics/circuit_macros/examples/Chips.m4
+2023/09/11 | 724 | graphics/circuit_macros/examples/Connectors.m4
+2023/09/11 | 2351 | graphics/circuit_macros/examples/Conn.m4
+2023/09/11 | 27105 | graphics/circuit_macros/examples/Consumption.m4
+2023/09/11 | 3464 | graphics/circuit_macros/examples/Contact.m4
+2023/09/11 | 1585 | graphics/circuit_macros/examples/Contacts.m4
+2023/09/11 | 7112 | graphics/circuit_macros/examples/control.m4
+2023/09/11 | 2562 | graphics/circuit_macros/examples/Crow.m4
+2023/09/11 | 7734 | graphics/circuit_macros/examples/csc.m4
+2023/09/11 | 5889 | graphics/circuit_macros/examples/Csource.m4
+2023/09/11 | 460 | graphics/circuit_macros/examples/debug1.tex
+2023/09/11 | 1959 | graphics/circuit_macros/examples/debug2.m4
+2023/09/11 | 655 | graphics/circuit_macros/examples/Decoder.m4
+2023/09/11 | 1485 | graphics/circuit_macros/examples/Demultiplexer.m4
+2023/09/11 | 654 | graphics/circuit_macros/examples/diamond.m4
+2023/09/11 | 6854 | graphics/circuit_macros/examples/Dini.m4
+2023/09/11 | 1787 | graphics/circuit_macros/examples/Diodes.m4
+2023/09/11 | 1955 | graphics/circuit_macros/examples/dpv/ABlogixDPV.m4
+2023/09/11 | 2528 | graphics/circuit_macros/examples/dpv/AdderDPV.m4
+2023/09/11 | 4340 | graphics/circuit_macros/examples/dpv/AlogixDPV.m4
+2023/09/11 | 538 | graphics/circuit_macros/examples/dpv/AmpTableDPV.m4
+2023/09/11 | 1090 | graphics/circuit_macros/examples/dpv/AntennasDPV.m4
+2023/09/11 | 1626 | graphics/circuit_macros/examples/dpv/ArrestersDPV.m4
+2023/09/11 | 1894 | graphics/circuit_macros/examples/dpv/ArrowFnDPV.m4
+2023/09/11 | 2720 | graphics/circuit_macros/examples/dpv/AudioDPV.m4
+2023/09/11 | 2989 | graphics/circuit_macros/examples/dpv/AutoencoderDPV.m4
+2023/09/11 | 1668 | graphics/circuit_macros/examples/dpv/Banking.m4
+2023/09/11 | 1812 | graphics/circuit_macros/examples/dpv/BipDPV.m4
+2023/09/11 | 4292 | graphics/circuit_macros/examples/dpv/BtreeDPV.m4
+2023/09/11 | 3567 | graphics/circuit_macros/examples/dpv/ButtonsDPV.m4
+2023/09/11 | 937 | graphics/circuit_macros/examples/dpv/ByteDPV.m4
+2023/09/11 | 6467 | graphics/circuit_macros/examples/dpv/CanLogicDPV.m4
+2023/09/11 | 1160 | graphics/circuit_macros/examples/dpv/CapacitorsDPV.m4
+2023/09/11 | 1214 | graphics/circuit_macros/examples/dpv/ChipsDPV.m4
+2023/09/11 | 2292 | graphics/circuit_macros/examples/dpv/ConnDPV.m4
+2023/09/11 | 715 | graphics/circuit_macros/examples/dpv/ConnectorsDPV.m4
+2023/09/11 | 3646 | graphics/circuit_macros/examples/dpv/ContactDPV.m4
+2023/09/11 | 1737 | graphics/circuit_macros/examples/dpv/ContactsDPV.m4
+2023/09/11 | 8006 | graphics/circuit_macros/examples/dpv/controlDPV.m4
+2023/09/11 | 793 | graphics/circuit_macros/examples/dpv/CountingDPV.m4
+2023/09/11 | 2525 | graphics/circuit_macros/examples/dpv/CrowDPV.m4
+2023/09/11 | 1874 | graphics/circuit_macros/examples/dpv/CrullerDPV.m4
+2023/09/11 | 7778 | graphics/circuit_macros/examples/dpv/cscDPV.m4
+2023/09/11 | 7418 | graphics/circuit_macros/examples/dpv/CsourceDPV.m4
+2023/09/11 | 745 | graphics/circuit_macros/examples/dpv/DecoderDPV.m4
+2023/09/11 | 1373 | graphics/circuit_macros/examples/dpv/DemultiplexerDPV.m4
+2023/09/11 | 609 | graphics/circuit_macros/examples/dpv/diamondDPV.m4
+2023/09/11 | 6854 | graphics/circuit_macros/examples/dpv/DiniDPV.m4
+2023/09/11 | 1647 | graphics/circuit_macros/examples/dpv/DiodesDPV.m4
+2023/09/11 | 1050 | graphics/circuit_macros/examples/dpv/DPVconfig.m4
+2023/09/11 | 1966 | graphics/circuit_macros/examples/dpv/DriveDPV.m4
+2023/09/11 | 4757 | graphics/circuit_macros/examples/dpv/EEPDPV.m4
+2023/09/11 | 1071 | graphics/circuit_macros/examples/dpv/EmarrowsDPV.m4
+2023/09/11 | 6285 | graphics/circuit_macros/examples/dpv/EscherDPV.m4
+2023/09/11 | 10871 | graphics/circuit_macros/examples/dpv/EVplugsDPV.m4
+2023/09/11 | 2443 | graphics/circuit_macros/examples/dpv/ex00DPV.m4
+2023/09/11 | 2629 | graphics/circuit_macros/examples/dpv/ex01DPV.m4
+2023/09/11 | 1093 | graphics/circuit_macros/examples/dpv/ex02DPV.m4
+2023/09/11 | 855 | graphics/circuit_macros/examples/dpv/ex03DPV.m4
+2023/09/11 | 1891 | graphics/circuit_macros/examples/dpv/ex04DPV.m4
+2023/09/11 | 3390 | graphics/circuit_macros/examples/dpv/ex05DPV.m4
+2023/09/11 | 2018 | graphics/circuit_macros/examples/dpv/ex06DPV.m4
+2023/09/11 | 2559 | graphics/circuit_macros/examples/dpv/ex08DPV.m4
+2023/09/11 | 4119 | graphics/circuit_macros/examples/dpv/ex09DPV.m4
+2023/09/11 | 1699 | graphics/circuit_macros/examples/dpv/ex10DPV.m4
+2023/09/11 | 2685 | graphics/circuit_macros/examples/dpv/ex11DPV.m4
+2023/09/11 | 3522 | graphics/circuit_macros/examples/dpv/ex12DPV.m4
+2023/09/11 | 966 | graphics/circuit_macros/examples/dpv/ex15DPV.m4
+2023/09/11 | 1893 | graphics/circuit_macros/examples/dpv/ex16DPV.m4
+2023/09/11 | 1204 | graphics/circuit_macros/examples/dpv/ex17DPV.m4
+2023/09/11 | 1065 | graphics/circuit_macros/examples/dpv/ex18DPV.m4
+2023/09/11 | 1882 | graphics/circuit_macros/examples/dpv/ex21DPV.m4
+2023/09/11 | 25098 | graphics/circuit_macros/examples/dpv/examplesDPV.htmx
+2023/09/11 | 25103 | graphics/circuit_macros/examples/dpv/examplesDPVs.htmx
+2023/09/11 | 8517 | graphics/circuit_macros/examples/dpv/expDPV.m4
+2023/09/11 | 1700 | graphics/circuit_macros/examples/dpv/EyeDPV.m4
+2023/09/11 | 5365 | graphics/circuit_macros/examples/dpv/fetDPV.m4
+2023/09/11 | 5174 | graphics/circuit_macros/examples/dpv/FlowDPV.m4
+2023/09/11 | 555 | graphics/circuit_macros/examples/dpv/FontsDPV.m4
+2023/09/11 | 1996 | graphics/circuit_macros/examples/dpv/FourbarDPV.m4
+2023/09/11 | 1230 | graphics/circuit_macros/examples/dpv/FusesDPV.m4
+2023/09/11 | 5228 | graphics/circuit_macros/examples/dpv/GeometryDPV.m4
+2023/09/11 | 1875 | graphics/circuit_macros/examples/dpv/GrayCodeDPV.m4
+2023/09/11 | 5469 | graphics/circuit_macros/examples/dpv/graysurfDPV.m4
+2023/09/11 | 810 | graphics/circuit_macros/examples/dpv/GroundsDPV.m4
+2023/09/11 | 1265 | graphics/circuit_macros/examples/dpv/HeadersDPV.m4
+2023/09/11 | 12711 | graphics/circuit_macros/examples/dpv/HeathkitDPV.m4
+2023/09/11 | 2171 | graphics/circuit_macros/examples/dpv/I2LDPV.m4
+2023/09/11 | 11601 | graphics/circuit_macros/examples/dpv/icsDPV.m4
+2023/09/11 | 4292 | graphics/circuit_macros/examples/dpv/InclepsDPV.m4
+2023/09/11 | 21384 | graphics/circuit_macros/examples/dpv/Incl.jpg
+2023/09/11 | 1343 | graphics/circuit_macros/examples/dpv/InductorsDPV.m4
+2023/09/11 | 2051 | graphics/circuit_macros/examples/dpv/JackDPV.m4
+2023/09/11 | 10699 | graphics/circuit_macros/examples/dpv/keyboardDPV.m4
+2023/09/11 | 7203 | graphics/circuit_macros/examples/dpv/lcctDPV.m4
+2023/09/11 | 6216 | graphics/circuit_macros/examples/dpv/LgateDPV.m4
+2023/09/11 | 63 | graphics/circuit_macros/examples/dpv/local_init.m4
+2023/09/11 | 1931 | graphics/circuit_macros/examples/dpv/LogicDPV.m4
+2023/09/11 | 30451 | graphics/circuit_macros/examples/dpv/LoglogDPV.m4
+2023/09/11 | 6130 | graphics/circuit_macros/examples/dpv/Makefile
+2023/09/11 | 3473 | graphics/circuit_macros/examples/dpv/MCDPV.m4
+2023/09/11 | 3489 | graphics/circuit_macros/examples/dpv/MixerDPV.m4
+2023/09/11 | 1585 | graphics/circuit_macros/examples/dpv/MoreTableDPV.m4
+2023/09/11 | 1953 | graphics/circuit_macros/examples/dpv/MotorControlDPV.m4
+2023/09/11 | 1403 | graphics/circuit_macros/examples/dpv/MultiplexerDPV.m4
+2023/09/11 | 532 | graphics/circuit_macros/examples/dpv/NLGDPV.m4
+2023/09/11 | 1157 | graphics/circuit_macros/examples/dpv/NPDTDPV.m4
+2023/09/11 | 758 | graphics/circuit_macros/examples/dpv/Np.m4
+2023/09/11 | 1238 | graphics/circuit_macros/examples/dpv/NportDPV.m4
+2023/09/11 | 1034 | graphics/circuit_macros/examples/dpv/OpampDPV.m4
+2023/09/11 | 2551 | graphics/circuit_macros/examples/dpv/OptoisoDPV.m4
+2023/09/11 | 10238 | graphics/circuit_macros/examples/dpv/paletteDPV.m4
+2023/09/11 | 1781 | graphics/circuit_macros/examples/dpv/PconnDPV.m4
+2023/09/11 | 6156 | graphics/circuit_macros/examples/dpv/PlateDPV.m4
+2023/09/11 | 3778 | graphics/circuit_macros/examples/dpv/PushPullDPV.m4
+2023/09/11 | 2027 | graphics/circuit_macros/examples/dpv/pwrsupplyDPV.m4
+2023/09/11 | 947 | graphics/circuit_macros/examples/dpv/QuantumDPV.m4
+2023/09/11 | 901 | graphics/circuit_macros/examples/dpv/quickDPV.m4
+2023/09/11 | 3756 | graphics/circuit_macros/examples/dpv/randomDPV.m4
+2023/09/11 | 609 | graphics/circuit_macros/examples/dpv/README_svg
+2023/09/11 | 7546 | graphics/circuit_macros/examples/dpv/RectifiersDPV.m4
+2023/09/11 | 3825 | graphics/circuit_macros/examples/dpv/recycleDPV.m4
+2023/09/11 | 2069 | graphics/circuit_macros/examples/dpv/relaycoilDPV.m4
+2023/09/11 | 1431 | graphics/circuit_macros/examples/dpv/RelayDPV.m4
+2023/09/11 | 1188 | graphics/circuit_macros/examples/dpv/ResistorsDPV.m4
+2023/09/11 | 5485 | graphics/circuit_macros/examples/dpv/roseDPV.m4
+2023/09/11 | 563 | graphics/circuit_macros/examples/dpv/RotboxDPV.m4
+2023/09/11 | 1837 | graphics/circuit_macros/examples/dpv/SchottkyDPV.m4
+2023/09/11 | 4748 | graphics/circuit_macros/examples/dpv/sfgDPV.m4
+2023/09/11 | 7494 | graphics/circuit_macros/examples/dpv/shapesDPV.m4
+2023/09/11 | 1313 | graphics/circuit_macros/examples/dpv/ShiftRDPV.m4
+2023/09/11 | 1331 | graphics/circuit_macros/examples/dpv/SierpinskiDPV.m4
+2023/09/11 | 419 | graphics/circuit_macros/examples/dpv/SixpoleDPV.m4
+2023/09/11 | 4376 | graphics/circuit_macros/examples/dpv/slddiagsDPV.m4
+2023/09/11 | 8810 | graphics/circuit_macros/examples/dpv/SmithchartDPV.m4
+2023/09/11 | 2022 | graphics/circuit_macros/examples/dpv/SourcesDPV.m4
+2023/09/11 | 417 | graphics/circuit_macros/examples/dpv/SQUIDDPV.m4
+2023/09/11 | 5132 | graphics/circuit_macros/examples/dpv/SwitchesDPV.m4
+2023/09/11 | 1055 | graphics/circuit_macros/examples/dpv/TgateDPV.m4
+2023/09/11 | 1444 | graphics/circuit_macros/examples/dpv/ThreeDPV.m4
+2023/09/11 | 3310 | graphics/circuit_macros/examples/dpv/thyristorDPV.m4
+2023/09/11 | 1612 | graphics/circuit_macros/examples/dpv/TimerDPV.m4
+2023/09/11 | 13797 | graphics/circuit_macros/examples/dpv/tstDPV.htmx
+2023/09/11 | 1630 | graphics/circuit_macros/examples/dpv/TTLnandDPV.m4
+2023/09/11 | 3091 | graphics/circuit_macros/examples/dpv/TtreeDPV.m4
+2023/09/11 | 12478 | graphics/circuit_macros/examples/dpv/TubediagsDPV.m4
+2023/09/11 | 682 | graphics/circuit_macros/examples/dpv/ujtDPV.m4
+2023/09/11 | 23704 | graphics/circuit_macros/examples/dpv/UNODPV.m4
+2023/09/11 | 988 | graphics/circuit_macros/examples/dpv/VariableDPV.m4
+2023/09/11 | 2994 | graphics/circuit_macros/examples/dpv/WindingsDPV.m4
+2023/09/11 | 353 | graphics/circuit_macros/examples/dpv/windows.m4
+2023/09/11 | 3631 | graphics/circuit_macros/examples/dpv/wormDPV.m4
+2023/09/11 | 1559 | graphics/circuit_macros/examples/dpv/XformDPV.m4
+2023/09/11 | 1985 | graphics/circuit_macros/examples/dpv/XORDPV.m4
+2023/09/11 | 1546 | graphics/circuit_macros/examples/dpv/Xtest.m4
+2023/09/11 | 1966 | graphics/circuit_macros/examples/Drive.m4
+2023/09/11 | 4885 | graphics/circuit_macros/examples/EEP.m4
+2023/09/11 | 977 | graphics/circuit_macros/examples/Emarrows.m4
+2023/09/11 | 6282 | graphics/circuit_macros/examples/Escher.m4
+2023/09/11 | 10836 | graphics/circuit_macros/examples/EVplugs.m4
+2023/09/11 | 2412 | graphics/circuit_macros/examples/ex00.m4
+2023/09/11 | 2294 | graphics/circuit_macros/examples/ex01.m4
+2023/09/11 | 1100 | graphics/circuit_macros/examples/ex02.m4
+2023/09/11 | 673 | graphics/circuit_macros/examples/ex03.m4
+2023/09/11 | 1654 | graphics/circuit_macros/examples/ex04.m4
+2023/09/11 | 3710 | graphics/circuit_macros/examples/ex05.m4
+2023/09/11 | 1700 | graphics/circuit_macros/examples/ex06.m4
+2023/09/11 | 2556 | graphics/circuit_macros/examples/ex08.m4
+2023/09/11 | 4313 | graphics/circuit_macros/examples/ex09.m4
+2023/09/11 | 1492 | graphics/circuit_macros/examples/ex10.m4
+2023/09/11 | 2361 | graphics/circuit_macros/examples/ex11.m4
+2023/09/11 | 3339 | graphics/circuit_macros/examples/ex12.m4
+2023/09/11 | 1003 | graphics/circuit_macros/examples/ex15.m4
+2023/09/11 | 1865 | graphics/circuit_macros/examples/ex16.m4
+2023/09/11 | 1126 | graphics/circuit_macros/examples/ex17.m4
+2023/09/11 | 865 | graphics/circuit_macros/examples/ex18.m4
+2023/09/11 | 2000 | graphics/circuit_macros/examples/ex21.m4
+2023/09/11 | 1902836 | graphics/circuit_macros/examples/examples.pdf
+2023/09/11 | 1766 | graphics/circuit_macros/examples/examples.tex
+2023/09/11 | 8372 | graphics/circuit_macros/examples/exp.m4
+2023/09/11 | 1091 | graphics/circuit_macros/examples/extras/Ant.m4
+2023/09/11 | 1786 | graphics/circuit_macros/examples/extras/ArrowFn.m4
+2023/09/11 | 1612 | graphics/circuit_macros/examples/extras/ASMEbox.m4
+2023/09/11 | 771 | graphics/circuit_macros/examples/extras/Attention.m4
+2023/09/11 | 2517 | graphics/circuit_macros/examples/extras/Autoencoder.m4
+2023/09/11 | 917 | graphics/circuit_macros/examples/extras/birds.m4
+2023/09/11 | 1075 | graphics/circuit_macros/examples/extras/bistable.m4
+2023/09/11 | 4114 | graphics/circuit_macros/examples/extras/brace.m4
+2023/09/11 | 970 | graphics/circuit_macros/examples/extras/Bridge.m4
+2023/09/11 | 245 | graphics/circuit_macros/examples/extras/Ccurve.m4
+2023/09/11 | 1039 | graphics/circuit_macros/examples/extras/chaos.m4
+2023/09/11 | 7583 | graphics/circuit_macros/examples/extras/Chuck.m4
+2023/09/11 | 7823 | graphics/circuit_macros/examples/extras/Clocks.m4
+2023/09/11 | 1375 | graphics/circuit_macros/examples/extras/ControlLoop.m4
+2023/09/11 | 551 | graphics/circuit_macros/examples/extras/Counting.m4
+2023/09/11 | 1879 | graphics/circuit_macros/examples/extras/Cruller.m4
+2023/09/11 | 6003 | graphics/circuit_macros/examples/extras/CSlight.m4
+2023/09/11 | 980 | graphics/circuit_macros/examples/extras/Cylinder.m4
+2023/09/11 | 1217 | graphics/circuit_macros/examples/extras/Egg.m4
+2023/09/11 | 4002 | graphics/circuit_macros/examples/extras/Euro.m4
+2023/09/11 | 2086 | graphics/circuit_macros/examples/extras/Eye.m4
+2023/09/11 | 1880 | graphics/circuit_macros/examples/extras/Fefets.m4
+2023/09/11 | 765 | graphics/circuit_macros/examples/extras/FieldLines.m4
+2023/09/11 | 645 | graphics/circuit_macros/examples/extras/Floor.m4
+2023/09/11 | 1961 | graphics/circuit_macros/examples/extras/Flow2.m4
+2023/09/11 | 1990 | graphics/circuit_macros/examples/extras/Hexagon.m4
+2023/09/11 | 2385 | graphics/circuit_macros/examples/extras/Highgain.m4
+2023/09/11 | 558 | graphics/circuit_macros/examples/extras/hsv.m4
+2023/09/11 | 1668 | graphics/circuit_macros/examples/extras/IC10107.m4
+2023/09/11 | 520 | graphics/circuit_macros/examples/extras/Koch.m4
+2023/09/11 | 4501 | graphics/circuit_macros/examples/extras/Lyap.m4
+2023/09/11 | 6567 | graphics/circuit_macros/examples/extras/Makefile
+2023/09/11 | 2846 | graphics/circuit_macros/examples/extras/Metamodel.m4
+2023/09/11 | 2167 | graphics/circuit_macros/examples/extras/Obliq.m4
+2023/09/11 | 3072 | graphics/circuit_macros/examples/extras/OneLine.m4
+2023/09/11 | 2777 | graphics/circuit_macros/examples/extras/OpAmpFilter.m4
+2023/09/11 | 1089 | graphics/circuit_macros/examples/extras/Optics.m4
+2023/09/11 | 1852 | graphics/circuit_macros/examples/extras/Orbits.m4
+2023/09/11 | 657 | graphics/circuit_macros/examples/extras/PerpTo.m4
+2023/09/11 | 1373 | graphics/circuit_macros/examples/extras/person.m4
+2023/09/11 | 666 | graphics/circuit_macros/examples/extras/Pipe.m4
+2023/09/11 | 5730 | graphics/circuit_macros/examples/extras/Planes.m4
+2023/09/11 | 1174 | graphics/circuit_macros/examples/extras/PPA.m4
+2023/09/11 | 410 | graphics/circuit_macros/examples/extras/RandomNodes.m4
+2023/09/11 | 724 | graphics/circuit_macros/examples/extras/README_extras
+2023/09/11 | 1097 | graphics/circuit_macros/examples/extras/Region.m4
+2023/09/11 | 1443 | graphics/circuit_macros/examples/extras/Resolver.m4
+2023/09/11 | 365 | graphics/circuit_macros/examples/extras/rotellipse.m4
+2023/09/11 | 747 | graphics/circuit_macros/examples/extras/SampleFlow.m4
+2023/09/11 | 295 | graphics/circuit_macros/examples/extras/ShadeSector.m4
+2023/09/11 | 4661 | graphics/circuit_macros/examples/extras/Shadow.m4
+2023/09/11 | 3749 | graphics/circuit_macros/examples/extras/Shaky.m4
+2023/09/11 | 1906 | graphics/circuit_macros/examples/extras/SPM.m4
+2023/09/11 | 953 | graphics/circuit_macros/examples/extras/squiggle.m4
+2023/09/11 | 1279 | graphics/circuit_macros/examples/extras/Star.m4
+2023/09/11 | 1795 | graphics/circuit_macros/examples/extras/Stator.m4
+2023/09/11 | 1471 | graphics/circuit_macros/examples/extras/TR_fill.m4
+2023/09/11 | 1916 | graphics/circuit_macros/examples/extras/venus.m4
+2023/09/11 | 10265 | graphics/circuit_macros/examples/extras/Views.m4
+2023/09/11 | 449 | graphics/circuit_macros/examples/extras/Wheat.m4
+2023/09/11 | 475 | graphics/circuit_macros/examples/extras/Wheel.m4
+2023/09/11 | 656 | graphics/circuit_macros/examples/extras/Zcos.m4
+2023/09/11 | 5311 | graphics/circuit_macros/examples/fet.m4
+2023/09/11 | 19767 | graphics/circuit_macros/examples/files.tex
+2023/09/11 | 11255 | graphics/circuit_macros/examples/FlowchartDefs.m4def
+2023/09/11 | 4792 | graphics/circuit_macros/examples/Flow.m4
+2023/09/11 | 1337 | graphics/circuit_macros/examples/Fuses.m4
+2023/09/11 | 5093 | graphics/circuit_macros/examples/Geometry.m4
+2023/09/11 | 1818 | graphics/circuit_macros/examples/GrayCode.m4
+2023/09/11 | 5486 | graphics/circuit_macros/examples/graysurf.m4
+2023/09/11 | 828 | graphics/circuit_macros/examples/Grounds.m4
+2023/09/11 | 1132 | graphics/circuit_macros/examples/Headers.m4
+2023/09/11 | 1458 | graphics/circuit_macros/examples/header.tex
+2023/09/11 | 557 | graphics/circuit_macros/examples/heater.m4
+2023/09/11 | 13420 | graphics/circuit_macros/examples/Heathkit.m4
+2023/09/11 | 2068 | graphics/circuit_macros/examples/I2L.m4
+2023/09/11 | 11440 | graphics/circuit_macros/examples/ics.m4
+2023/09/11 | 32 | graphics/circuit_macros/examples/Incl.eps.bb
+2023/09/11 | 45323 | graphics/circuit_macros/examples/Incl.eps.gz
+2023/09/11 | 772 | graphics/circuit_macros/examples/Incleps.m4
+2023/09/11 | 29772 | graphics/circuit_macros/examples/Incl.pdf
+2023/09/11 | 709 | graphics/circuit_macros/examples/Inclpdf.m4
+2023/09/11 | 1443 | graphics/circuit_macros/examples/Inductors.m4
+2023/09/11 | 2362 | graphics/circuit_macros/examples/Jack.m4
+2023/09/11 | 10699 | graphics/circuit_macros/examples/keyboard.m4
+2023/09/11 | 7127 | graphics/circuit_macros/examples/lcct.m4
+2023/09/11 | 41403 | graphics/circuit_macros/examples/Lettering.m4def
+2023/09/11 | 2119 | graphics/circuit_macros/examples/Logic.m4
+2023/09/11 | 2304 | graphics/circuit_macros/examples/Loglog.m4
+2023/09/11 | 10172 | graphics/circuit_macros/examples/Makefile
+2023/09/11 | 2986 | graphics/circuit_macros/examples/MC.m4
+2023/09/11 | 95150 | graphics/circuit_macros/examples/mf/cct.mf
+2023/09/11 | 764 | graphics/circuit_macros/examples/mf/cct.tfm
+2023/09/11 | 4615 | graphics/circuit_macros/examples/mf/font.m4
+2023/09/11 | 1529 | graphics/circuit_macros/examples/mf/Makefile
+2023/09/11 | 1076 | graphics/circuit_macros/examples/mf/mftest
+2023/09/11 | 3848 | graphics/circuit_macros/examples/Mixer.m4
+2023/09/11 | 1588 | graphics/circuit_macros/examples/MoreTable.m4
+2023/09/11 | 1922 | graphics/circuit_macros/examples/MotorControl.m4
+2023/09/11 | 497 | graphics/circuit_macros/examples/mpost/examplesmpost.tex
+2023/09/11 | 4502 | graphics/circuit_macros/examples/mpost/Makefile
+2023/09/11 | 685 | graphics/circuit_macros/examples/mpost/mptest
+2023/09/11 | 749 | graphics/circuit_macros/examples/mpost/README-mpost
+2023/09/11 | 418 | graphics/circuit_macros/examples/mpost/tstmpost.tex
+2023/09/11 | 1400 | graphics/circuit_macros/examples/Multiplexer.m4
+2023/09/11 | 499 | graphics/circuit_macros/examples/NLG.m4
+2023/09/11 | 1128 | graphics/circuit_macros/examples/NPDT.m4
+2023/09/11 | 1040 | graphics/circuit_macros/examples/Nport.m4
+2023/09/11 | 1433 | graphics/circuit_macros/examples/Opamp.m4
+2023/09/11 | 2442 | graphics/circuit_macros/examples/Optoiso.m4
+2023/09/11 | 1997 | graphics/circuit_macros/examples/Pconn.m4
+2023/09/11 | 6254 | graphics/circuit_macros/examples/Plate.m4
+2023/09/11 | 715 | graphics/circuit_macros/examples/psfrag/examplespsfrag.tex
+2023/09/11 | 4784 | graphics/circuit_macros/examples/psfrag/Makefile
+2023/09/11 | 317 | graphics/circuit_macros/examples/psfrag/README-psfrag.txt
+2023/09/11 | 371 | graphics/circuit_macros/examples/psfrag/tstpsfrag.tex
+2023/09/11 | 3954 | graphics/circuit_macros/examples/PushPull.m4
+2023/09/11 | 2014 | graphics/circuit_macros/examples/pwrsupply.m4
+2023/09/11 | 918 | graphics/circuit_macros/examples/Quantum.m4
+2023/09/11 | 774 | graphics/circuit_macros/examples/quick.m4
+2023/09/11 | 3727 | graphics/circuit_macros/examples/random.m4
+2023/09/11 | 3388 | graphics/circuit_macros/examples/README-examples
+2023/09/11 | 7006 | graphics/circuit_macros/examples/Rectifiers.m4
+2023/09/11 | 3825 | graphics/circuit_macros/examples/recycle.m4
+2023/09/11 | 2086 | graphics/circuit_macros/examples/relaycoil.m4
+2023/09/11 | 1259 | graphics/circuit_macros/examples/Relay.m4
+2023/09/11 | 1147 | graphics/circuit_macros/examples/Resistors.m4
+2023/09/11 | 5485 | graphics/circuit_macros/examples/rose.m4
+2023/09/11 | 221 | graphics/circuit_macros/examples/rotate.tex
+2023/09/11 | 1525 | graphics/circuit_macros/examples/rotatetext.m4
+2023/09/11 | 533 | graphics/circuit_macros/examples/Rotbox.m4
+2023/09/11 | 1778 | graphics/circuit_macros/examples/Schottky.m4
+2023/09/11 | 3949 | graphics/circuit_macros/examples/sfg.m4
+2023/09/11 | 1129 | graphics/circuit_macros/examples/shadowed.m4
+2023/09/11 | 7708 | graphics/circuit_macros/examples/shapes.m4
+2023/09/11 | 1406 | graphics/circuit_macros/examples/ShiftR.m4
+2023/09/11 | 1331 | graphics/circuit_macros/examples/Sierpinski.m4
+2023/09/11 | 419 | graphics/circuit_macros/examples/Sixpole.m4
+2023/09/11 | 8819 | graphics/circuit_macros/examples/Smithchart.m4
+2023/09/11 | 2276 | graphics/circuit_macros/examples/Sources.m4
+2023/09/11 | 380 | graphics/circuit_macros/examples/SQUID.m4
+2023/09/11 | 4782 | graphics/circuit_macros/examples/Switches.m4
+2023/09/11 | 591 | graphics/circuit_macros/examples/test.m4
+2023/09/11 | 416 | graphics/circuit_macros/examples/testpdf.tex
+2023/09/11 | 1022 | graphics/circuit_macros/examples/Tgate.m4
+2023/09/11 | 1287 | graphics/circuit_macros/examples/Three.m4
+2023/09/11 | 3321 | graphics/circuit_macros/examples/thyristor.m4
+2023/09/11 | 219 | graphics/circuit_macros/examples/tst1.tex
+2023/09/11 | 409 | graphics/circuit_macros/examples/tst.tex
+2023/09/11 | 464 | graphics/circuit_macros/examples/tsttikz.tex
+2023/09/11 | 1558 | graphics/circuit_macros/examples/TTLnand.m4
+2023/09/11 | 9869 | graphics/circuit_macros/examples/tubedefs.m4
+2023/09/11 | 13294 | graphics/circuit_macros/examples/Tubediags.m4
+2023/09/11 | 660 | graphics/circuit_macros/examples/ujt.m4
+2023/09/11 | 23171 | graphics/circuit_macros/examples/UNO.m4
+2023/09/11 | 932 | graphics/circuit_macros/examples/Variable.m4
+2023/09/11 | 3346 | graphics/circuit_macros/examples/Windings.m4
+2023/09/11 | 353 | graphics/circuit_macros/examples/windows.m4
+2023/09/11 | 2801 | graphics/circuit_macros/examples/worm.m4
+2023/09/11 | 337 | graphics/circuit_macros/examples/xfig/Makefile
+2023/09/11 | 21424 | graphics/circuit_macros/examples/xfig/xfiglib.fig
+2023/09/11 | 5969 | graphics/circuit_macros/examples/xfig/xfiglib.m4
+2023/09/11 | 1526 | graphics/circuit_macros/examples/Xform.m4
+2023/09/11 | 1823 | graphics/circuit_macros/examples/XOR.m4
+2023/09/11 | 1019 | graphics/circuit_macros/gpic.m4
+2023/09/11 | 3794 | graphics/circuit_macros/INSTALL
+2023/09/11 | 12765 | graphics/circuit_macros/lib3D.m4
+2023/09/11 | 187334 | graphics/circuit_macros/libcct.m4
+2023/09/11 | 95345 | graphics/circuit_macros/libgen.m4
+2023/09/11 | 48258 | graphics/circuit_macros/liblog.m4
+2023/09/11 | 32773 | graphics/circuit_macros/libSLD.m4
+2023/09/11 | 19176 | graphics/circuit_macros/Licence.txt
+2023/09/11 | 1639 | graphics/circuit_macros/Makefile
+2023/09/11 | 1114 | graphics/circuit_macros/mfpic.m4
+2023/09/11 | 1640 | graphics/circuit_macros/mpost.m4
+2023/09/11 | 2275 | graphics/circuit_macros/pdf.m4
+2023/09/11 | 2085 | graphics/circuit_macros/pgf.m4
+2023/09/11 | 2834 | graphics/circuit_macros/postscript.m4
+2023/09/11 | 706 | graphics/circuit_macros/psfrag.m4
+2023/09/11 | 2099 | graphics/circuit_macros/pstricks.m4
+2023/09/11 | 15928 | graphics/circuit_macros/README
+2023/09/11 | 11995 | graphics/circuit_macros/svg.m4
+2023/09/11 | 1029 | graphics/circuit_macros/xfig.m4
+2023/09/13 | 3679102 | graphics/circuit_macros.zip
2018/09/22 | 49163 | graphics/coloremoji/coloremoji.sty
2018/09/22 | 15169 | graphics/coloremoji/emoji_images/hires/1F004.pdf
2018/09/22 | 24318 | graphics/coloremoji/emoji_images/hires/1F0CF.pdf
@@ -161083,11 +161092,11 @@
2023/06/11 | 5638 | graphics/pgf/contrib/playcards/playcards.sty
2023/06/11 | 284 | graphics/pgf/contrib/playcards/README.md
2023/06/11 | 561830 | graphics/pgf/contrib/playcards.zip
-2023/08/23 | 312717 | graphics/pgf/contrib/profsio/doc/ProfSio-doc-fr.pdf
-2023/08/23 | 55881 | graphics/pgf/contrib/profsio/doc/ProfSio-doc-fr.tex
+2023/09/13 | 326425 | graphics/pgf/contrib/profsio/doc/ProfSio-doc-fr.pdf
+2023/09/13 | 59833 | graphics/pgf/contrib/profsio/doc/ProfSio-doc-fr.tex
2023/06/23 | 443 | graphics/pgf/contrib/profsio/README.md
-2023/08/23 | 44625 | graphics/pgf/contrib/profsio/tex/ProfSio.sty
-2023/08/23 | 324818 | graphics/pgf/contrib/profsio.zip
+2023/09/13 | 77755 | graphics/pgf/contrib/profsio/tex/ProfSio.sty
+2023/09/13 | 340948 | graphics/pgf/contrib/profsio.zip
2023/06/18 | 649 | graphics/pgf/contrib/prooftrees/manifest.txt
2023/06/18 | 899 | graphics/pgf/contrib/prooftrees/prooftrees_biber.bib
2023/06/18 | 911388 | graphics/pgf/contrib/prooftrees/prooftrees.pdf
@@ -194706,7 +194715,7 @@
2015/12/09 | 171418 | install/macros/latex/contrib/ksp-thesis.tds.zip
2019/12/19 | 302191 | install/macros/latex/contrib/kvdefinekeys.tds.zip
2023/04/19 | 972462 | install/macros/latex/contrib/l3backend.tds.zip
-2023/09/07 | 821438 | install/macros/latex/contrib/l3build.tds.zip
+2023/09/13 | 821916 | install/macros/latex/contrib/l3build.tds.zip
2023/05/11 | 4460074 | install/macros/latex/contrib/l3experimental.tds.zip
2023/08/29 | 14012364 | install/macros/latex/contrib/l3kernel.tds.zip
2023/08/29 | 2259049 | install/macros/latex/contrib/l3packages.tds.zip
@@ -194858,9 +194867,9 @@
2020/04/09 | 806385 | install/macros/latex/contrib/zhlipsum.tds.zip
2022/07/14 | 321454 | install/macros/latex/contrib/zhnumber.tds.zip
2023/08/14 | 1675347 | install/macros/latex/contrib/zref-clever.tds.zip
-2023/06/11 | 40733357 | install/macros/latex-dev/latex-base-dev.tds.zip
-2023/06/11 | 2796041 | install/macros/latex-dev/required/latex-amsmath-dev.tds.zip
-2023/05/25 | 275474 | install/macros/latex-dev/required/latex-firstaid-dev.tds.zip
+2023/09/13 | 43409105 | install/macros/latex-dev/latex-base-dev.tds.zip
+2023/09/13 | 2795752 | install/macros/latex-dev/required/latex-amsmath-dev.tds.zip
+2023/09/13 | 257201 | install/macros/latex-dev/required/latex-firstaid-dev.tds.zip
2023/06/11 | 3111045 | install/macros/latex-dev/required/latex-graphics-dev.tds.zip
2023/06/11 | 10417970 | install/macros/latex-dev/required/latex-lab-dev.tds.zip
2023/06/11 | 7340085 | install/macros/latex-dev/required/latex-tools-dev.tds.zip
@@ -212500,11 +212509,11 @@
2004/05/09 | 2763 | macros/latex/contrib/arcs/arcstest.tex
2004/05/09 | 455 | macros/latex/contrib/arcs/README
2005/04/28 | 55630 | macros/latex/contrib/arcs.zip
-2023/08/09 | 18177 | macros/latex/contrib/arraycols/arraycols.dtx
+2023/09/13 | 18837 | macros/latex/contrib/arraycols/arraycols.dtx
2023/08/09 | 1993 | macros/latex/contrib/arraycols/arraycols.ins
-2023/08/09 | 463229 | macros/latex/contrib/arraycols/arraycols.pdf
+2023/09/13 | 464654 | macros/latex/contrib/arraycols/arraycols.pdf
2023/08/09 | 926 | macros/latex/contrib/arraycols/README.md
-2023/08/09 | 469022 | macros/latex/contrib/arraycols.zip
+2023/09/13 | 470660 | macros/latex/contrib/arraycols.zip
2013/09/04 | 35591 | macros/latex/contrib/arraysort/arraysort.dtx
2013/08/21 | 1785 | macros/latex/contrib/arraysort/arraysort.ins
2013/09/04 | 302651 | macros/latex/contrib/arraysort/arraysort.pdf
@@ -226714,8 +226723,8 @@
2010/04/07 | 239721 | macros/latex/contrib/jeopardy/jeopardy.pdf
2010/04/07 | 996 | macros/latex/contrib/jeopardy/README
2010/04/08 | 1447445 | macros/latex/contrib/jeopardy.zip
-2023/08/08 | 8285082 | macros/latex/contrib/jeuxcartes/doc/JeuxCartes-doc.pdf
-2023/08/08 | 41277 | macros/latex/contrib/jeuxcartes/doc/JeuxCartes-doc.tex
+2023/09/13 | 8286389 | macros/latex/contrib/jeuxcartes/doc/JeuxCartes-doc.pdf
+2023/09/13 | 41430 | macros/latex/contrib/jeuxcartes/doc/JeuxCartes-doc.tex
2023/02/28 | 1203 | macros/latex/contrib/jeuxcartes/README.md
2023/03/20 | 3181 | macros/latex/contrib/jeuxcartes/tex/CaJ-PokeRbic-10C.pdf
2023/03/20 | 2440 | macros/latex/contrib/jeuxcartes/tex/CaJ-PokeRbic-10K.pdf
@@ -227245,8 +227254,8 @@
2022/12/26 | 2037 | macros/latex/contrib/jeuxcartes/tex/CaJ-UnOv1-PTJ.pdf
2022/12/26 | 2031 | macros/latex/contrib/jeuxcartes/tex/CaJ-UnOv1-PTR.pdf
2022/12/26 | 2035 | macros/latex/contrib/jeuxcartes/tex/CaJ-UnOv1-PTV.pdf
-2023/08/08 | 23340 | macros/latex/contrib/jeuxcartes/tex/JeuxCartes.sty
-2023/08/08 | 15207834 | macros/latex/contrib/jeuxcartes.zip
+2023/09/13 | 23367 | macros/latex/contrib/jeuxcartes/tex/JeuxCartes.sty
+2023/09/13 | 15208498 | macros/latex/contrib/jeuxcartes.zip
2004/12/10 | 70397 | macros/latex/contrib/jhep/JHEP.cls
2007/04/24 | 1891 | macros/latex/contrib/jj_game/designs/design_bahamas.def
2007/04/19 | 1573 | macros/latex/contrib/jj_game/designs/design_florida.def
@@ -228037,31 +228046,31 @@
2023/04/19 | 50928 | macros/latex/contrib/l3backend/l3backend-pdf.dtx
2023/04/19 | 549 | macros/latex/contrib/l3backend/README.md
2023/04/19 | 934192 | macros/latex/contrib/l3backend.zip
-2023/09/07 | 21158 | macros/latex/contrib/l3build/CHANGELOG.md
-2023/09/07 | 1816 | macros/latex/contrib/l3build/l3build.1
-2023/09/07 | 7805 | macros/latex/contrib/l3build/l3build-arguments.lua
-2023/09/07 | 6313 | macros/latex/contrib/l3build/l3build-aux.lua
-2023/09/07 | 37294 | macros/latex/contrib/l3build/l3build-check.lua
-2023/09/07 | 2149 | macros/latex/contrib/l3build/l3build-clean.lua
-2023/09/07 | 4972 | macros/latex/contrib/l3build/l3build-ctan.lua
-2023/09/07 | 112780 | macros/latex/contrib/l3build/l3build.dtx
-2023/09/07 | 12469 | macros/latex/contrib/l3build/l3build-file-functions.lua
-2023/09/07 | 2473 | macros/latex/contrib/l3build/l3build-help.lua
-2023/09/07 | 1540 | macros/latex/contrib/l3build/l3build.ins
-2023/09/07 | 11070 | macros/latex/contrib/l3build/l3build-install.lua
-2023/09/07 | 7505 | macros/latex/contrib/l3build/l3build.lua
-2023/09/07 | 7206 | macros/latex/contrib/l3build/l3build-manifest.lua
-2023/09/07 | 10786 | macros/latex/contrib/l3build/l3build-manifest-setup.lua
-2023/09/07 | 744608 | macros/latex/contrib/l3build/l3build.pdf
-2023/09/07 | 4338 | macros/latex/contrib/l3build/l3build-stdmain.lua
-2023/09/07 | 2285 | macros/latex/contrib/l3build/l3build-tagging.lua
-2023/09/07 | 6020 | macros/latex/contrib/l3build/l3build-typesetting.lua
-2023/09/07 | 2745 | macros/latex/contrib/l3build/l3build-unpack.lua
-2023/09/07 | 13211 | macros/latex/contrib/l3build/l3build-upload.lua
-2023/09/07 | 8065 | macros/latex/contrib/l3build/l3build-variables.lua
-2023/09/07 | 4150 | macros/latex/contrib/l3build/l3build-zip.lua
-2023/09/07 | 1019 | macros/latex/contrib/l3build/README.md
-2023/09/07 | 817557 | macros/latex/contrib/l3build.zip
+2023/09/13 | 21587 | macros/latex/contrib/l3build/CHANGELOG.md
+2023/09/13 | 1816 | macros/latex/contrib/l3build/l3build.1
+2023/09/13 | 7805 | macros/latex/contrib/l3build/l3build-arguments.lua
+2023/09/13 | 6313 | macros/latex/contrib/l3build/l3build-aux.lua
+2023/09/13 | 37436 | macros/latex/contrib/l3build/l3build-check.lua
+2023/09/13 | 2149 | macros/latex/contrib/l3build/l3build-clean.lua
+2023/09/13 | 4972 | macros/latex/contrib/l3build/l3build-ctan.lua
+2023/09/13 | 113021 | macros/latex/contrib/l3build/l3build.dtx
+2023/09/13 | 12469 | macros/latex/contrib/l3build/l3build-file-functions.lua
+2023/09/13 | 2473 | macros/latex/contrib/l3build/l3build-help.lua
+2023/09/13 | 1540 | macros/latex/contrib/l3build/l3build.ins
+2023/09/13 | 11105 | macros/latex/contrib/l3build/l3build-install.lua
+2023/09/13 | 7505 | macros/latex/contrib/l3build/l3build.lua
+2023/09/13 | 7206 | macros/latex/contrib/l3build/l3build-manifest.lua
+2023/09/13 | 10786 | macros/latex/contrib/l3build/l3build-manifest-setup.lua
+2023/09/13 | 744760 | macros/latex/contrib/l3build/l3build.pdf
+2023/09/13 | 4338 | macros/latex/contrib/l3build/l3build-stdmain.lua
+2023/09/13 | 2285 | macros/latex/contrib/l3build/l3build-tagging.lua
+2023/09/13 | 6151 | macros/latex/contrib/l3build/l3build-typesetting.lua
+2023/09/13 | 2745 | macros/latex/contrib/l3build/l3build-unpack.lua
+2023/09/13 | 13211 | macros/latex/contrib/l3build/l3build-upload.lua
+2023/09/13 | 8092 | macros/latex/contrib/l3build/l3build-variables.lua
+2023/09/13 | 4150 | macros/latex/contrib/l3build/l3build-zip.lua
+2023/09/13 | 1019 | macros/latex/contrib/l3build/README.md
+2023/09/13 | 818015 | macros/latex/contrib/l3build.zip
2023/05/11 | 8283 | macros/latex/contrib/l3experimental/CHANGELOG.md
2023/05/11 | 16508 | macros/latex/contrib/l3experimental/l3benchmark.dtx
2023/05/11 | 1558 | macros/latex/contrib/l3experimental/l3benchmark.ins
@@ -243998,338 +244007,350 @@
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
-2023/06/11 | 7104 | macros/latex-dev/base/alltt.dtx
-2023/06/11 | 2890 | macros/latex-dev/base/alltt.ins
-2023/06/11 | 223828 | macros/latex-dev/base/alltt.pdf
-2023/06/11 | 3282 | macros/latex-dev/base/bugs.txt
-2023/06/11 | 264157 | macros/latex-dev/base/cfgguide.pdf
-2023/06/11 | 22723 | macros/latex-dev/base/cfgguide.tex
-2023/06/11 | 42708 | macros/latex-dev/base/changes.old.txt
-2023/06/11 | 400415 | macros/latex-dev/base/changes.txt
-2023/06/11 | 156238 | macros/latex-dev/base/classes.dtx
-2023/06/11 | 4087 | macros/latex-dev/base/classes.ins
-2023/06/11 | 560996 | macros/latex-dev/base/classes.pdf
-2023/06/11 | 415586 | macros/latex-dev/base/clsguide-historic.pdf
-2023/06/11 | 69439 | macros/latex-dev/base/clsguide-historic.tex
-2023/06/11 | 452015 | macros/latex-dev/base/clsguide.pdf
-2023/06/11 | 56472 | macros/latex-dev/base/clsguide.tex
-2023/06/11 | 5273 | macros/latex-dev/base/cmextra.ins
-2023/06/11 | 44531 | macros/latex-dev/base/cmfonts.fdd
-2023/06/11 | 4324 | macros/latex-dev/base/cmfonts.ins
-2023/06/11 | 292647 | macros/latex-dev/base/cmfonts.pdf
-2023/06/11 | 257359 | macros/latex-dev/base/cyrguide.pdf
-2023/06/11 | 17782 | macros/latex-dev/base/cyrguide.tex
-2023/06/11 | 29965 | macros/latex-dev/base/doc-2016-02-15.sty
-2023/06/11 | 30499 | macros/latex-dev/base/doc-2021-06-01.sty
-2023/06/11 | 1075545 | macros/latex-dev/base/doc-code.pdf
-2023/06/11 | 96 | macros/latex-dev/base/doc-code.tex
-2023/06/11 | 242471 | macros/latex-dev/base/doc.dtx
-2023/06/11 | 755961 | macros/latex-dev/base/doc.pdf
-2023/06/11 | 170595 | macros/latex-dev/base/docstrip.dtx
-2023/06/11 | 4273 | macros/latex-dev/base/docstrip.ins
-2023/06/11 | 504261 | macros/latex-dev/base/docstrip.pdf
-2023/06/11 | 4390 | macros/latex-dev/base/ec.ins
-2023/06/11 | 1318565 | macros/latex-dev/base/encguide.pdf
-2023/06/11 | 52813 | macros/latex-dev/base/encguide.tex
-2023/06/11 | 7216 | macros/latex-dev/base/exscale.dtx
-2023/06/11 | 3338 | macros/latex-dev/base/exscale.ins
-2023/06/11 | 204710 | macros/latex-dev/base/exscale.pdf
-2023/06/11 | 23516 | macros/latex-dev/base/fix-cm.dtx
-2023/06/11 | 2892 | macros/latex-dev/base/fix-cm.ins
-2023/06/11 | 287726 | macros/latex-dev/base/fix-cm.pdf
-2023/06/11 | 517658 | macros/latex-dev/base/fntguide.pdf
-2023/06/11 | 108223 | macros/latex-dev/base/fntguide.tex
-2023/06/11 | 60321 | macros/latex-dev/base/fontdef.dtx
-2023/06/11 | 9779 | macros/latex-dev/base/format.ins
-2023/06/11 | 5509 | macros/latex-dev/base/graphpap.dtx
-2023/06/11 | 2892 | macros/latex-dev/base/graphpap.ins
-2023/06/11 | 161717 | macros/latex-dev/base/graphpap.pdf
-2023/06/11 | 2705 | macros/latex-dev/base/idx.tex
-2023/06/11 | 18753 | macros/latex-dev/base/ifthen.dtx
-2023/06/11 | 2888 | macros/latex-dev/base/ifthen.ins
-2023/06/11 | 221207 | macros/latex-dev/base/ifthen.pdf
-2023/06/11 | 106904 | macros/latex-dev/base/inputenc.dtx
-2023/06/11 | 5714 | macros/latex-dev/base/inputenc.ins
-2023/06/11 | 318162 | macros/latex-dev/base/inputenc.pdf
-2023/06/11 | 4079 | macros/latex-dev/base/lablst.tex
-2023/06/11 | 13759 | macros/latex-dev/base/lamport-manual.err
-2023/06/11 | 170883 | macros/latex-dev/base/lamport-manual.pdf
-2023/06/11 | 38730 | macros/latex-dev/base/latex209.dtx
-2023/06/11 | 4219 | macros/latex-dev/base/latex209.ins
-2023/06/11 | 45347 | macros/latex-dev/base/latexrelease.dtx
-2023/06/11 | 6047 | macros/latex-dev/base/latexrelease.ins
-2023/06/11 | 282097 | macros/latex-dev/base/latexrelease.pdf
-2023/06/11 | 6709 | macros/latex-dev/base/latexsym.dtx
-2023/06/11 | 5041 | macros/latex-dev/base/latexsym.ins
-2023/06/11 | 200762 | macros/latex-dev/base/latexsym.pdf
-2023/06/11 | 52887 | macros/latex-dev/base/lb2.err
-2023/06/11 | 252516 | macros/latex-dev/base/lb2.pdf
-2023/06/11 | 1279 | macros/latex-dev/base/legal.txt
-2023/06/11 | 63280 | macros/latex-dev/base/letter.dtx
-2023/06/11 | 3372 | macros/latex-dev/base/letter.ins
-2023/06/11 | 337720 | macros/latex-dev/base/letter.pdf
-2023/06/11 | 21229 | macros/latex-dev/base/lgc2.err
-2023/06/11 | 217757 | macros/latex-dev/base/lgc2.pdf
-2023/06/11 | 9068 | macros/latex-dev/base/lppl-1-0.txt
-2023/06/11 | 14341 | macros/latex-dev/base/lppl-1-1.txt
-2023/06/11 | 14421 | macros/latex-dev/base/lppl-1-2.txt
-2023/06/11 | 132369 | macros/latex-dev/base/lppl.pdf
-2023/06/11 | 23386 | macros/latex-dev/base/lppl.tex
-2023/06/11 | 19040 | macros/latex-dev/base/lppl.txt
-2023/06/11 | 4298 | macros/latex-dev/base/ltalloc.dtx
-2023/06/11 | 17389 | macros/latex-dev/base/ltbibl.dtx
-2023/06/11 | 45712 | macros/latex-dev/base/ltboxes.dtx
-2023/06/11 | 145334 | macros/latex-dev/base/ltclass.dtx
-2023/06/11 | 187531 | macros/latex-dev/base/ltcmd.dtx
-2023/06/11 | 755479 | macros/latex-dev/base/ltcmdhooks-code.pdf
-2023/06/11 | 103 | macros/latex-dev/base/ltcmdhooks-code.tex
-2023/06/11 | 498967 | macros/latex-dev/base/ltcmdhooks-doc.pdf
-2023/06/11 | 238 | macros/latex-dev/base/ltcmdhooks-doc.tex
-2023/06/11 | 67588 | macros/latex-dev/base/ltcmdhooks.dtx
-2023/06/11 | 9557 | macros/latex-dev/base/ltcntrl.dtx
-2023/06/11 | 24286 | macros/latex-dev/base/ltcounts.dtx
-2023/06/11 | 92954 | macros/latex-dev/base/ltdefns.dtx
-2023/06/11 | 35984 | macros/latex-dev/base/ltdirchk.dtx
-2023/06/11 | 27069 | macros/latex-dev/base/lterror.dtx
-2023/06/11 | 18711 | macros/latex-dev/base/ltexpl.dtx
-2023/06/11 | 804008 | macros/latex-dev/base/ltfilehook-code.pdf
-2023/06/11 | 105 | macros/latex-dev/base/ltfilehook-code.tex
-2023/06/11 | 548598 | macros/latex-dev/base/ltfilehook-doc.pdf
-2023/06/11 | 241 | macros/latex-dev/base/ltfilehook-doc.tex
-2023/06/11 | 67457 | macros/latex-dev/base/ltfilehook.dtx
-2023/06/11 | 60944 | macros/latex-dev/base/ltfiles.dtx
-2023/06/11 | 51180 | macros/latex-dev/base/ltfinal.dtx
-2023/06/11 | 55687 | macros/latex-dev/base/ltfloat.dtx
-2023/06/11 | 29267 | macros/latex-dev/base/ltfntcmd.dtx
-2023/06/11 | 58551 | macros/latex-dev/base/ltfssaxes.dtx
-2023/06/11 | 82916 | macros/latex-dev/base/ltfssbas.dtx
-2023/06/11 | 10370 | macros/latex-dev/base/ltfsscmp.dtx
-2023/06/11 | 75111 | macros/latex-dev/base/ltfssdcl.dtx
-2023/06/11 | 84215 | macros/latex-dev/base/ltfssini.dtx
-2023/06/11 | 72475 | macros/latex-dev/base/ltfsstrc.dtx
-2023/06/11 | 1242405 | macros/latex-dev/base/lthooks-code.pdf
-2023/06/11 | 102 | macros/latex-dev/base/lthooks-code.tex
-2023/06/11 | 739507 | macros/latex-dev/base/lthooks-doc.pdf
-2023/06/11 | 238 | macros/latex-dev/base/lthooks-doc.tex
-2023/06/11 | 300694 | macros/latex-dev/base/lthooks.dtx
-2023/06/11 | 4945 | macros/latex-dev/base/lthyphen.dtx
-2023/06/11 | 5859 | macros/latex-dev/base/ltidxglo.dtx
-2023/06/11 | 19853 | macros/latex-dev/base/ltkeys.dtx
-2023/06/11 | 4757 | macros/latex-dev/base/ltlength.dtx
-2023/06/11 | 36154 | macros/latex-dev/base/ltlists.dtx
-2023/06/11 | 3725 | macros/latex-dev/base/ltlogos.dtx
-2023/06/11 | 74921 | macros/latex-dev/base/ltluatex.dtx
-2023/06/11 | 325074 | macros/latex-dev/base/ltluatex.pdf
-2023/06/11 | 716305 | macros/latex-dev/base/ltmarks-code.pdf
-2023/06/11 | 102 | macros/latex-dev/base/ltmarks-code.tex
-2023/06/11 | 586433 | macros/latex-dev/base/ltmarks-doc.pdf
-2023/06/11 | 238 | macros/latex-dev/base/ltmarks-doc.tex
-2023/06/11 | 63142 | macros/latex-dev/base/ltmarks.dtx
-2023/06/11 | 42287 | macros/latex-dev/base/ltmath.dtx
-2023/06/11 | 6217 | macros/latex-dev/base/ltmeta.dtx
-2023/06/11 | 59070 | macros/latex-dev/base/ltmiscen.dtx
-2023/06/11 | 169550 | macros/latex-dev/base/ltnews01.pdf
-2023/06/11 | 5246 | macros/latex-dev/base/ltnews01.tex
-2023/06/11 | 151773 | macros/latex-dev/base/ltnews02.pdf
-2023/06/11 | 5462 | macros/latex-dev/base/ltnews02.tex
-2023/06/11 | 151321 | macros/latex-dev/base/ltnews03.pdf
-2023/06/11 | 5369 | macros/latex-dev/base/ltnews03.tex
-2023/06/11 | 152549 | macros/latex-dev/base/ltnews04.pdf
-2023/06/11 | 5678 | macros/latex-dev/base/ltnews04.tex
-2023/06/11 | 175216 | macros/latex-dev/base/ltnews05.pdf
-2023/06/11 | 5699 | macros/latex-dev/base/ltnews05.tex
-2023/06/11 | 142864 | macros/latex-dev/base/ltnews06.pdf
-2023/06/11 | 5544 | macros/latex-dev/base/ltnews06.tex
-2023/06/11 | 138211 | macros/latex-dev/base/ltnews07.pdf
-2023/06/11 | 5576 | macros/latex-dev/base/ltnews07.tex
-2023/06/11 | 155434 | macros/latex-dev/base/ltnews08.pdf
-2023/06/11 | 5732 | macros/latex-dev/base/ltnews08.tex
-2023/06/11 | 130026 | macros/latex-dev/base/ltnews09.pdf
-2023/06/11 | 5451 | macros/latex-dev/base/ltnews09.tex
-2023/06/11 | 169432 | macros/latex-dev/base/ltnews10.pdf
-2023/06/11 | 5825 | macros/latex-dev/base/ltnews10.tex
-2023/06/11 | 112202 | macros/latex-dev/base/ltnews11.pdf
-2023/06/11 | 5529 | macros/latex-dev/base/ltnews11.tex
-2023/06/11 | 156765 | macros/latex-dev/base/ltnews12.pdf
-2023/06/11 | 5574 | macros/latex-dev/base/ltnews12.tex
-2023/06/11 | 182490 | macros/latex-dev/base/ltnews13.pdf
-2023/06/11 | 7029 | macros/latex-dev/base/ltnews13.tex
-2023/06/11 | 170721 | macros/latex-dev/base/ltnews14.pdf
-2023/06/11 | 6424 | macros/latex-dev/base/ltnews14.tex
-2023/06/11 | 130323 | macros/latex-dev/base/ltnews15.pdf
-2023/06/11 | 5986 | macros/latex-dev/base/ltnews15.tex
-2023/06/11 | 138110 | macros/latex-dev/base/ltnews16.pdf
-2023/06/11 | 5775 | macros/latex-dev/base/ltnews16.tex
-2023/06/11 | 166268 | macros/latex-dev/base/ltnews17.pdf
-2023/06/11 | 8970 | macros/latex-dev/base/ltnews17.tex
-2023/06/11 | 39840 | macros/latex-dev/base/ltnews18.pdf
-2023/06/11 | 1341 | macros/latex-dev/base/ltnews18.tex
-2023/06/11 | 225936 | macros/latex-dev/base/ltnews19.pdf
-2023/06/11 | 4190 | macros/latex-dev/base/ltnews19.tex
-2023/06/11 | 318193 | macros/latex-dev/base/ltnews20.pdf
-2023/06/11 | 7244 | macros/latex-dev/base/ltnews20.tex
-2023/06/11 | 245229 | macros/latex-dev/base/ltnews21.pdf
-2023/06/11 | 9935 | macros/latex-dev/base/ltnews21.tex
-2023/06/11 | 318036 | macros/latex-dev/base/ltnews22.pdf
-2023/06/11 | 10792 | macros/latex-dev/base/ltnews22.tex
-2023/06/11 | 286839 | macros/latex-dev/base/ltnews23.pdf
-2023/06/11 | 10791 | macros/latex-dev/base/ltnews23.tex
-2023/06/11 | 265497 | macros/latex-dev/base/ltnews24.pdf
-2023/06/11 | 12334 | macros/latex-dev/base/ltnews24.tex
-2023/06/11 | 205098 | macros/latex-dev/base/ltnews25.pdf
-2023/06/11 | 5588 | macros/latex-dev/base/ltnews25.tex
-2023/06/11 | 379722 | macros/latex-dev/base/ltnews26.pdf
-2023/06/11 | 10798 | macros/latex-dev/base/ltnews26.tex
-2023/06/11 | 251285 | macros/latex-dev/base/ltnews27.pdf
-2023/06/11 | 5691 | macros/latex-dev/base/ltnews27.tex
-2023/06/11 | 376930 | macros/latex-dev/base/ltnews28.pdf
-2023/06/11 | 15047 | macros/latex-dev/base/ltnews28.tex
-2023/06/11 | 455431 | macros/latex-dev/base/ltnews29.pdf
-2023/06/11 | 18944 | macros/latex-dev/base/ltnews29.tex
-2023/06/11 | 512246 | macros/latex-dev/base/ltnews30.pdf
-2023/06/11 | 23646 | macros/latex-dev/base/ltnews30.tex
-2023/06/11 | 526692 | macros/latex-dev/base/ltnews31.pdf
-2023/06/11 | 30452 | macros/latex-dev/base/ltnews31.tex
-2023/06/11 | 546554 | macros/latex-dev/base/ltnews32.pdf
-2023/06/11 | 33243 | macros/latex-dev/base/ltnews32.tex
-2023/06/11 | 522771 | macros/latex-dev/base/ltnews33.pdf
-2023/06/11 | 33911 | macros/latex-dev/base/ltnews33.tex
-2023/06/11 | 508349 | macros/latex-dev/base/ltnews34.pdf
-2023/06/11 | 32331 | macros/latex-dev/base/ltnews34.tex
-2023/06/11 | 563329 | macros/latex-dev/base/ltnews35.pdf
-2023/06/11 | 38226 | macros/latex-dev/base/ltnews35.tex
-2023/06/11 | 517935 | macros/latex-dev/base/ltnews36.pdf
-2023/06/11 | 19333 | macros/latex-dev/base/ltnews36.tex
-2023/06/11 | 456936 | macros/latex-dev/base/ltnews37.pdf
-2023/06/11 | 33083 | macros/latex-dev/base/ltnews37.tex
-2023/06/11 | 21488 | macros/latex-dev/base/ltnews.cls
-2023/06/11 | 1287055 | macros/latex-dev/base/ltnews.pdf
-2023/06/11 | 8051 | macros/latex-dev/base/ltnews.tex
-2023/06/11 | 148294 | macros/latex-dev/base/ltoutenc.dtx
-2023/06/11 | 3367 | macros/latex-dev/base/ltoutenc.ins
-2023/06/11 | 178567 | macros/latex-dev/base/ltoutput.dtx
-2023/06/11 | 14091 | macros/latex-dev/base/ltpage.dtx
-2023/06/11 | 2728 | macros/latex-dev/base/ltpageno.dtx
-2023/06/11 | 672189 | macros/latex-dev/base/ltpara-code.pdf
-2023/06/11 | 99 | macros/latex-dev/base/ltpara-code.tex
-2023/06/11 | 560056 | macros/latex-dev/base/ltpara-doc.pdf
-2023/06/11 | 234 | macros/latex-dev/base/ltpara-doc.tex
-2023/06/11 | 54677 | macros/latex-dev/base/ltpara.dtx
-2023/06/11 | 6155 | macros/latex-dev/base/ltpar.dtx
-2023/06/11 | 69002 | macros/latex-dev/base/ltpictur.dtx
-2023/06/11 | 60154 | macros/latex-dev/base/ltplain.dtx
-2023/06/11 | 33946 | macros/latex-dev/base/ltsect.dtx
-2023/06/11 | 821608 | macros/latex-dev/base/ltshipout-code.pdf
-2023/06/11 | 104 | macros/latex-dev/base/ltshipout-code.tex
-2023/06/11 | 566503 | macros/latex-dev/base/ltshipout-doc.pdf
-2023/06/11 | 240 | macros/latex-dev/base/ltshipout-doc.tex
-2023/06/11 | 81195 | macros/latex-dev/base/ltshipout.dtx
-2023/06/11 | 45899 | macros/latex-dev/base/ltspace.dtx
-2023/06/11 | 47896 | macros/latex-dev/base/lttab.dtx
-2023/06/11 | 90660 | macros/latex-dev/base/lttextcomp.dtx
-2023/06/11 | 8731 | macros/latex-dev/base/ltthm.dtx
-2023/06/11 | 15384 | macros/latex-dev/base/ltvers.dtx
-2023/06/11 | 219347 | macros/latex-dev/base/ltx3info.pdf
-2023/06/11 | 18299 | macros/latex-dev/base/ltx3info.tex
-2023/06/11 | 27122 | macros/latex-dev/base/ltxcheck.tex
-2023/06/11 | 22814 | macros/latex-dev/base/ltxdoc.dtx
-2023/06/11 | 244224 | macros/latex-dev/base/ltxdoc.pdf
-2023/06/11 | 7528 | macros/latex-dev/base/ltxguide.cls
-2023/06/11 | 21882 | macros/latex-dev/base/ltxref.dtx
-2023/06/11 | 10601 | macros/latex-dev/base/makeindx.dtx
-2023/06/11 | 3434 | macros/latex-dev/base/makeindx.ins
-2023/06/11 | 165816 | macros/latex-dev/base/makeindx.pdf
-2023/06/11 | 11412 | macros/latex-dev/base/manifest.txt
-2023/06/11 | 1941 | macros/latex-dev/base/minimal.cls
-2023/06/11 | 257823 | macros/latex-dev/base/modguide.pdf
-2023/06/11 | 16500 | macros/latex-dev/base/modguide.tex
-2023/06/11 | 4254 | macros/latex-dev/base/newdc.ins
-2023/06/11 | 6357 | macros/latex-dev/base/newlfont.dtx
-2023/06/11 | 18399 | macros/latex-dev/base/nfssfont.dtx
-2023/06/11 | 2893 | macros/latex-dev/base/nfssfont.ins
-2023/06/11 | 211175 | macros/latex-dev/base/nfssfont.pdf
-2023/06/11 | 3960 | macros/latex-dev/base/olddc.ins
-2023/06/11 | 8626 | macros/latex-dev/base/oldlfont.dtx
-2023/06/11 | 9345 | macros/latex-dev/base/preload.dtx
-2023/06/11 | 13589 | macros/latex-dev/base/proc.dtx
-2023/06/11 | 3401 | macros/latex-dev/base/proc.ins
-2023/06/11 | 227060 | macros/latex-dev/base/proc.pdf
-2023/06/11 | 3100 | macros/latex-dev/base/README.md
-2023/06/11 | 7200 | macros/latex-dev/base/sample2e.tex
-2023/06/11 | 89727 | macros/latex-dev/base/slides.dtx
-2023/06/11 | 6760 | macros/latex-dev/base/slides.ins
-2023/06/11 | 375509 | macros/latex-dev/base/slides.pdf
-2023/06/11 | 15703 | macros/latex-dev/base/slifonts.fdd
-2023/06/11 | 234183 | macros/latex-dev/base/slifonts.pdf
-2023/06/11 | 1694 | macros/latex-dev/base/small2e.tex
-2023/06/11 | 9401 | macros/latex-dev/base/source2edoc.cls
-2023/06/11 | 6006299 | macros/latex-dev/base/source2e.pdf
-2023/06/11 | 15306 | macros/latex-dev/base/source2e.tex
-2023/06/11 | 9395 | macros/latex-dev/base/syntonly.dtx
-2023/06/11 | 2896 | macros/latex-dev/base/syntonly.ins
-2023/06/11 | 189801 | macros/latex-dev/base/syntonly.pdf
-2023/06/11 | 12520 | macros/latex-dev/base/testpage.tex
-2023/06/11 | 173013 | macros/latex-dev/base/tlc2.err
-2023/06/11 | 291233 | macros/latex-dev/base/tlc2.pdf
-2023/06/11 | 24504 | macros/latex-dev/base/tlc3.err
-2023/06/11 | 250362 | macros/latex-dev/base/tlc3.pdf
-2023/06/11 | 12246 | macros/latex-dev/base/tulm.fdd
-2023/06/11 | 3781 | macros/latex-dev/base/tulm.ins
-2023/06/11 | 162770 | macros/latex-dev/base/tulm.pdf
-2023/06/11 | 3181 | macros/latex-dev/base/unpack.ins
-2023/06/11 | 438603 | macros/latex-dev/base/usrguide-historic.pdf
-2023/06/11 | 68735 | macros/latex-dev/base/usrguide-historic.tex
-2023/06/11 | 479722 | macros/latex-dev/base/usrguide.pdf
-2023/06/11 | 53901 | macros/latex-dev/base/usrguide.tex
-2023/06/11 | 92280 | macros/latex-dev/base/utf8ienc.dtx
-2023/06/11 | 353396 | macros/latex-dev/base/utf8ienc.pdf
-2023/06/11 | 10251 | macros/latex-dev/base/webcomp.err
-2023/06/11 | 146199 | macros/latex-dev/base/webcomp.pdf
-2023/06/11 | 40163406 | macros/latex-dev/base.zip
-2023/06/11 | 8663 | macros/latex-dev/required/amsmath/amsbsy.dtx
-2023/06/11 | 1505 | macros/latex-dev/required/amsmath/amsbsy.ins
-2023/06/11 | 174944 | macros/latex-dev/required/amsmath/amsbsy.pdf
-2023/06/11 | 11284 | macros/latex-dev/required/amsmath/amscd.dtx
-2023/06/11 | 1487 | macros/latex-dev/required/amsmath/amscd.ins
-2023/06/11 | 179953 | macros/latex-dev/required/amsmath/amscd.pdf
-2023/06/11 | 5323 | macros/latex-dev/required/amsmath/ams-external.txt
-2023/06/11 | 13442 | macros/latex-dev/required/amsmath/amsgen.dtx
-2023/06/11 | 1484 | macros/latex-dev/required/amsmath/amsgen.ins
-2023/06/11 | 178181 | macros/latex-dev/required/amsmath/amsgen.pdf
-2023/06/11 | 5860 | macros/latex-dev/required/amsmath/ams-internal.txt
-2023/06/11 | 508198 | macros/latex-dev/required/amsmath/amsldoc.pdf
-2023/06/11 | 104792 | macros/latex-dev/required/amsmath/amsldoc.tex
-2023/06/11 | 85099 | macros/latex-dev/required/amsmath/amsmath-2018-12-01.sty
-2023/06/11 | 230377 | macros/latex-dev/required/amsmath/amsmath.dtx
-2023/06/11 | 1504 | macros/latex-dev/required/amsmath/amsmath.ins
-2023/06/11 | 419900 | macros/latex-dev/required/amsmath/amsmath.pdf
-2023/06/11 | 10199 | macros/latex-dev/required/amsmath/amsopn.dtx
-2023/06/11 | 1490 | macros/latex-dev/required/amsmath/amsopn.ins
-2023/06/11 | 140096 | macros/latex-dev/required/amsmath/amsopn.pdf
-2023/06/11 | 69732 | macros/latex-dev/required/amsmath/amstex.sty
-2023/06/11 | 11398 | macros/latex-dev/required/amsmath/amstext.dtx
-2023/06/11 | 1492 | macros/latex-dev/required/amsmath/amstext.ins
-2023/06/11 | 217502 | macros/latex-dev/required/amsmath/amstext.pdf
-2023/06/11 | 4336 | macros/latex-dev/required/amsmath/amsxtra.dtx
-2023/06/11 | 1492 | macros/latex-dev/required/amsmath/amsxtra.ins
-2023/06/11 | 113554 | macros/latex-dev/required/amsmath/amsxtra.pdf
-2023/06/11 | 8245 | macros/latex-dev/required/amsmath/changes.txt
-2023/06/11 | 22605 | macros/latex-dev/required/amsmath/diffs-m.txt
-2023/06/11 | 369 | macros/latex-dev/required/amsmath/manifest.txt
-2023/06/11 | 2723 | macros/latex-dev/required/amsmath/README.md
-2023/06/11 | 109734 | macros/latex-dev/required/amsmath/subeqn.pdf
-2023/06/11 | 6440 | macros/latex-dev/required/amsmath/subeqn.tex
-2023/06/11 | 147464 | macros/latex-dev/required/amsmath/technote.pdf
-2023/06/11 | 12005 | macros/latex-dev/required/amsmath/technote.tex
-2023/06/11 | 454559 | macros/latex-dev/required/amsmath/testmath.pdf
-2023/06/11 | 82371 | macros/latex-dev/required/amsmath/testmath.tex
-2023/06/11 | 2762776 | macros/latex-dev/required/amsmath.zip
-2023/05/25 | 5081 | macros/latex-dev/required/firstaid/changes.txt
-2023/05/25 | 2740 | macros/latex-dev/required/firstaid/firstaid.ins
-2023/05/25 | 22575 | macros/latex-dev/required/firstaid/latex2e-first-aid-for-external-files.dtx
-2023/05/25 | 269095 | macros/latex-dev/required/firstaid/latex2e-first-aid-for-external-files.pdf
-2023/05/25 | 474 | macros/latex-dev/required/firstaid/README.md
-2023/05/25 | 270657 | macros/latex-dev/required/firstaid.zip
+2023/09/13 | 7104 | macros/latex-dev/base/alltt.dtx
+2023/09/13 | 2890 | macros/latex-dev/base/alltt.ins
+2023/09/13 | 223831 | macros/latex-dev/base/alltt.pdf
+2023/09/13 | 3282 | macros/latex-dev/base/bugs.txt
+2023/09/13 | 264168 | macros/latex-dev/base/cfgguide.pdf
+2023/09/13 | 22723 | macros/latex-dev/base/cfgguide.tex
+2023/09/13 | 42708 | macros/latex-dev/base/changes.old.txt
+2023/09/13 | 402877 | macros/latex-dev/base/changes.txt
+2023/09/13 | 156238 | macros/latex-dev/base/classes.dtx
+2023/09/13 | 4087 | macros/latex-dev/base/classes.ins
+2023/09/13 | 560998 | macros/latex-dev/base/classes.pdf
+2023/09/13 | 415615 | macros/latex-dev/base/clsguide-historic.pdf
+2023/09/13 | 69439 | macros/latex-dev/base/clsguide-historic.tex
+2023/09/13 | 451992 | macros/latex-dev/base/clsguide.pdf
+2023/09/13 | 56472 | macros/latex-dev/base/clsguide.tex
+2023/09/13 | 5273 | macros/latex-dev/base/cmextra.ins
+2023/09/13 | 44531 | macros/latex-dev/base/cmfonts.fdd
+2023/09/13 | 4324 | macros/latex-dev/base/cmfonts.ins
+2023/09/13 | 292600 | macros/latex-dev/base/cmfonts.pdf
+2023/09/13 | 257359 | macros/latex-dev/base/cyrguide.pdf
+2023/09/13 | 17782 | macros/latex-dev/base/cyrguide.tex
+2023/09/13 | 29965 | macros/latex-dev/base/doc-2016-02-15.sty
+2023/09/13 | 30499 | macros/latex-dev/base/doc-2021-06-01.sty
+2023/09/13 | 1075811 | macros/latex-dev/base/doc-code.pdf
+2023/09/13 | 96 | macros/latex-dev/base/doc-code.tex
+2023/09/13 | 242471 | macros/latex-dev/base/doc.dtx
+2023/09/13 | 756197 | macros/latex-dev/base/doc.pdf
+2023/09/13 | 170595 | macros/latex-dev/base/docstrip.dtx
+2023/09/13 | 4273 | macros/latex-dev/base/docstrip.ins
+2023/09/13 | 504704 | macros/latex-dev/base/docstrip.pdf
+2023/09/13 | 4390 | macros/latex-dev/base/ec.ins
+2023/09/13 | 1318576 | macros/latex-dev/base/encguide.pdf
+2023/09/13 | 52813 | macros/latex-dev/base/encguide.tex
+2023/09/13 | 7216 | macros/latex-dev/base/exscale.dtx
+2023/09/13 | 3338 | macros/latex-dev/base/exscale.ins
+2023/09/13 | 204708 | macros/latex-dev/base/exscale.pdf
+2023/09/13 | 23516 | macros/latex-dev/base/fix-cm.dtx
+2023/09/13 | 2892 | macros/latex-dev/base/fix-cm.ins
+2023/09/13 | 287727 | macros/latex-dev/base/fix-cm.pdf
+2023/09/13 | 517659 | macros/latex-dev/base/fntguide.pdf
+2023/09/13 | 108223 | macros/latex-dev/base/fntguide.tex
+2023/09/13 | 60321 | macros/latex-dev/base/fontdef.dtx
+2023/09/13 | 9887 | macros/latex-dev/base/format.ins
+2023/09/13 | 5509 | macros/latex-dev/base/graphpap.dtx
+2023/09/13 | 2892 | macros/latex-dev/base/graphpap.ins
+2023/09/13 | 161722 | macros/latex-dev/base/graphpap.pdf
+2023/09/13 | 2705 | macros/latex-dev/base/idx.tex
+2023/09/13 | 18753 | macros/latex-dev/base/ifthen.dtx
+2023/09/13 | 2888 | macros/latex-dev/base/ifthen.ins
+2023/09/13 | 221219 | macros/latex-dev/base/ifthen.pdf
+2023/09/13 | 106904 | macros/latex-dev/base/inputenc.dtx
+2023/09/13 | 5714 | macros/latex-dev/base/inputenc.ins
+2023/09/13 | 318199 | macros/latex-dev/base/inputenc.pdf
+2023/09/13 | 4079 | macros/latex-dev/base/lablst.tex
+2023/09/13 | 13759 | macros/latex-dev/base/lamport-manual.err
+2023/09/13 | 170876 | macros/latex-dev/base/lamport-manual.pdf
+2023/09/13 | 38730 | macros/latex-dev/base/latex209.dtx
+2023/09/13 | 4219 | macros/latex-dev/base/latex209.ins
+2023/09/13 | 45347 | macros/latex-dev/base/latexrelease.dtx
+2023/09/13 | 6145 | macros/latex-dev/base/latexrelease.ins
+2023/09/13 | 282095 | macros/latex-dev/base/latexrelease.pdf
+2023/09/13 | 6709 | macros/latex-dev/base/latexsym.dtx
+2023/09/13 | 5041 | macros/latex-dev/base/latexsym.ins
+2023/09/13 | 200759 | macros/latex-dev/base/latexsym.pdf
+2023/09/13 | 52887 | macros/latex-dev/base/lb2.err
+2023/09/13 | 252497 | macros/latex-dev/base/lb2.pdf
+2023/09/13 | 1279 | macros/latex-dev/base/legal.txt
+2023/09/13 | 63280 | macros/latex-dev/base/letter.dtx
+2023/09/13 | 3372 | macros/latex-dev/base/letter.ins
+2023/09/13 | 337428 | macros/latex-dev/base/letter.pdf
+2023/09/13 | 21229 | macros/latex-dev/base/lgc2.err
+2023/09/13 | 217659 | macros/latex-dev/base/lgc2.pdf
+2023/09/13 | 9068 | macros/latex-dev/base/lppl-1-0.txt
+2023/09/13 | 14341 | macros/latex-dev/base/lppl-1-1.txt
+2023/09/13 | 14421 | macros/latex-dev/base/lppl-1-2.txt
+2023/09/13 | 132370 | macros/latex-dev/base/lppl.pdf
+2023/09/13 | 23386 | macros/latex-dev/base/lppl.tex
+2023/09/13 | 19040 | macros/latex-dev/base/lppl.txt
+2023/09/13 | 4298 | macros/latex-dev/base/ltalloc.dtx
+2023/09/13 | 17389 | macros/latex-dev/base/ltbibl.dtx
+2023/09/13 | 45712 | macros/latex-dev/base/ltboxes.dtx
+2023/09/13 | 145334 | macros/latex-dev/base/ltclass.dtx
+2023/09/13 | 183132 | macros/latex-dev/base/ltcmd.dtx
+2023/09/13 | 755624 | macros/latex-dev/base/ltcmdhooks-code.pdf
+2023/09/13 | 103 | macros/latex-dev/base/ltcmdhooks-code.tex
+2023/09/13 | 499095 | macros/latex-dev/base/ltcmdhooks-doc.pdf
+2023/09/13 | 238 | macros/latex-dev/base/ltcmdhooks-doc.tex
+2023/09/13 | 67588 | macros/latex-dev/base/ltcmdhooks.dtx
+2023/09/13 | 9557 | macros/latex-dev/base/ltcntrl.dtx
+2023/09/13 | 24286 | macros/latex-dev/base/ltcounts.dtx
+2023/09/13 | 92954 | macros/latex-dev/base/ltdefns.dtx
+2023/09/13 | 35984 | macros/latex-dev/base/ltdirchk.dtx
+2023/09/13 | 27069 | macros/latex-dev/base/lterror.dtx
+2023/09/13 | 18711 | macros/latex-dev/base/ltexpl.dtx
+2023/09/13 | 803891 | macros/latex-dev/base/ltfilehook-code.pdf
+2023/09/13 | 105 | macros/latex-dev/base/ltfilehook-code.tex
+2023/09/13 | 548560 | macros/latex-dev/base/ltfilehook-doc.pdf
+2023/09/13 | 241 | macros/latex-dev/base/ltfilehook-doc.tex
+2023/09/13 | 67442 | macros/latex-dev/base/ltfilehook.dtx
+2023/09/13 | 61493 | macros/latex-dev/base/ltfiles.dtx
+2023/09/13 | 51180 | macros/latex-dev/base/ltfinal.dtx
+2023/09/13 | 55687 | macros/latex-dev/base/ltfloat.dtx
+2023/09/13 | 29267 | macros/latex-dev/base/ltfntcmd.dtx
+2023/09/13 | 58551 | macros/latex-dev/base/ltfssaxes.dtx
+2023/09/13 | 82916 | macros/latex-dev/base/ltfssbas.dtx
+2023/09/13 | 10370 | macros/latex-dev/base/ltfsscmp.dtx
+2023/09/13 | 75111 | macros/latex-dev/base/ltfssdcl.dtx
+2023/09/13 | 84215 | macros/latex-dev/base/ltfssini.dtx
+2023/09/13 | 72475 | macros/latex-dev/base/ltfsstrc.dtx
+2023/09/13 | 1258576 | macros/latex-dev/base/lthooks-code.pdf
+2023/09/13 | 102 | macros/latex-dev/base/lthooks-code.tex
+2023/09/13 | 755724 | macros/latex-dev/base/lthooks-doc.pdf
+2023/09/13 | 238 | macros/latex-dev/base/lthooks-doc.tex
+2023/09/13 | 301240 | macros/latex-dev/base/lthooks.dtx
+2023/09/13 | 4945 | macros/latex-dev/base/lthyphen.dtx
+2023/09/13 | 5859 | macros/latex-dev/base/ltidxglo.dtx
+2023/09/13 | 19853 | macros/latex-dev/base/ltkeys.dtx
+2023/09/13 | 4757 | macros/latex-dev/base/ltlength.dtx
+2023/09/13 | 36154 | macros/latex-dev/base/ltlists.dtx
+2023/09/13 | 3725 | macros/latex-dev/base/ltlogos.dtx
+2023/09/13 | 75286 | macros/latex-dev/base/ltluatex.dtx
+2023/09/13 | 325191 | macros/latex-dev/base/ltluatex.pdf
+2023/09/13 | 716708 | macros/latex-dev/base/ltmarks-code.pdf
+2023/09/13 | 102 | macros/latex-dev/base/ltmarks-code.tex
+2023/09/13 | 586833 | macros/latex-dev/base/ltmarks-doc.pdf
+2023/09/13 | 238 | macros/latex-dev/base/ltmarks-doc.tex
+2023/09/13 | 63142 | macros/latex-dev/base/ltmarks.dtx
+2023/09/13 | 42287 | macros/latex-dev/base/ltmath.dtx
+2023/09/13 | 6217 | macros/latex-dev/base/ltmeta.dtx
+2023/09/13 | 65684 | macros/latex-dev/base/ltmiscen.dtx
+2023/09/13 | 169553 | macros/latex-dev/base/ltnews01.pdf
+2023/09/13 | 5246 | macros/latex-dev/base/ltnews01.tex
+2023/09/13 | 151773 | macros/latex-dev/base/ltnews02.pdf
+2023/09/13 | 5462 | macros/latex-dev/base/ltnews02.tex
+2023/09/13 | 151324 | macros/latex-dev/base/ltnews03.pdf
+2023/09/13 | 5369 | macros/latex-dev/base/ltnews03.tex
+2023/09/13 | 152551 | macros/latex-dev/base/ltnews04.pdf
+2023/09/13 | 5678 | macros/latex-dev/base/ltnews04.tex
+2023/09/13 | 175211 | macros/latex-dev/base/ltnews05.pdf
+2023/09/13 | 5699 | macros/latex-dev/base/ltnews05.tex
+2023/09/13 | 142867 | macros/latex-dev/base/ltnews06.pdf
+2023/09/13 | 5544 | macros/latex-dev/base/ltnews06.tex
+2023/09/13 | 138214 | macros/latex-dev/base/ltnews07.pdf
+2023/09/13 | 5576 | macros/latex-dev/base/ltnews07.tex
+2023/09/13 | 155442 | macros/latex-dev/base/ltnews08.pdf
+2023/09/13 | 5732 | macros/latex-dev/base/ltnews08.tex
+2023/09/13 | 130028 | macros/latex-dev/base/ltnews09.pdf
+2023/09/13 | 5451 | macros/latex-dev/base/ltnews09.tex
+2023/09/13 | 169433 | macros/latex-dev/base/ltnews10.pdf
+2023/09/13 | 5825 | macros/latex-dev/base/ltnews10.tex
+2023/09/13 | 112208 | macros/latex-dev/base/ltnews11.pdf
+2023/09/13 | 5529 | macros/latex-dev/base/ltnews11.tex
+2023/09/13 | 156764 | macros/latex-dev/base/ltnews12.pdf
+2023/09/13 | 5574 | macros/latex-dev/base/ltnews12.tex
+2023/09/13 | 182483 | macros/latex-dev/base/ltnews13.pdf
+2023/09/13 | 7029 | macros/latex-dev/base/ltnews13.tex
+2023/09/13 | 170722 | macros/latex-dev/base/ltnews14.pdf
+2023/09/13 | 6424 | macros/latex-dev/base/ltnews14.tex
+2023/09/13 | 130328 | macros/latex-dev/base/ltnews15.pdf
+2023/09/13 | 5986 | macros/latex-dev/base/ltnews15.tex
+2023/09/13 | 138107 | macros/latex-dev/base/ltnews16.pdf
+2023/09/13 | 5775 | macros/latex-dev/base/ltnews16.tex
+2023/09/13 | 166269 | macros/latex-dev/base/ltnews17.pdf
+2023/09/13 | 8970 | macros/latex-dev/base/ltnews17.tex
+2023/09/13 | 39839 | macros/latex-dev/base/ltnews18.pdf
+2023/09/13 | 1341 | macros/latex-dev/base/ltnews18.tex
+2023/09/13 | 225936 | macros/latex-dev/base/ltnews19.pdf
+2023/09/13 | 4190 | macros/latex-dev/base/ltnews19.tex
+2023/09/13 | 318193 | macros/latex-dev/base/ltnews20.pdf
+2023/09/13 | 7244 | macros/latex-dev/base/ltnews20.tex
+2023/09/13 | 245228 | macros/latex-dev/base/ltnews21.pdf
+2023/09/13 | 9935 | macros/latex-dev/base/ltnews21.tex
+2023/09/13 | 318026 | macros/latex-dev/base/ltnews22.pdf
+2023/09/13 | 10792 | macros/latex-dev/base/ltnews22.tex
+2023/09/13 | 286824 | macros/latex-dev/base/ltnews23.pdf
+2023/09/13 | 10791 | macros/latex-dev/base/ltnews23.tex
+2023/09/13 | 265497 | macros/latex-dev/base/ltnews24.pdf
+2023/09/13 | 12334 | macros/latex-dev/base/ltnews24.tex
+2023/09/13 | 205100 | macros/latex-dev/base/ltnews25.pdf
+2023/09/13 | 5588 | macros/latex-dev/base/ltnews25.tex
+2023/09/13 | 379733 | macros/latex-dev/base/ltnews26.pdf
+2023/09/13 | 10798 | macros/latex-dev/base/ltnews26.tex
+2023/09/13 | 251283 | macros/latex-dev/base/ltnews27.pdf
+2023/09/13 | 5691 | macros/latex-dev/base/ltnews27.tex
+2023/09/13 | 376933 | macros/latex-dev/base/ltnews28.pdf
+2023/09/13 | 15047 | macros/latex-dev/base/ltnews28.tex
+2023/09/13 | 455437 | macros/latex-dev/base/ltnews29.pdf
+2023/09/13 | 18944 | macros/latex-dev/base/ltnews29.tex
+2023/09/13 | 512240 | macros/latex-dev/base/ltnews30.pdf
+2023/09/13 | 23646 | macros/latex-dev/base/ltnews30.tex
+2023/09/13 | 526688 | macros/latex-dev/base/ltnews31.pdf
+2023/09/13 | 30452 | macros/latex-dev/base/ltnews31.tex
+2023/09/13 | 546540 | macros/latex-dev/base/ltnews32.pdf
+2023/09/13 | 33243 | macros/latex-dev/base/ltnews32.tex
+2023/09/13 | 522757 | macros/latex-dev/base/ltnews33.pdf
+2023/09/13 | 33911 | macros/latex-dev/base/ltnews33.tex
+2023/09/13 | 508345 | macros/latex-dev/base/ltnews34.pdf
+2023/09/13 | 32331 | macros/latex-dev/base/ltnews34.tex
+2023/09/13 | 563307 | macros/latex-dev/base/ltnews35.pdf
+2023/09/13 | 38226 | macros/latex-dev/base/ltnews35.tex
+2023/09/13 | 517934 | macros/latex-dev/base/ltnews36.pdf
+2023/09/13 | 19333 | macros/latex-dev/base/ltnews36.tex
+2023/09/13 | 456926 | macros/latex-dev/base/ltnews37.pdf
+2023/09/13 | 33083 | macros/latex-dev/base/ltnews37.tex
+2023/09/13 | 359786 | macros/latex-dev/base/ltnews38.pdf
+2023/09/13 | 8921 | macros/latex-dev/base/ltnews38.tex
+2023/09/13 | 21488 | macros/latex-dev/base/ltnews.cls
+2023/09/13 | 1320668 | macros/latex-dev/base/ltnews.pdf
+2023/09/13 | 8051 | macros/latex-dev/base/ltnews.tex
+2023/09/13 | 148294 | macros/latex-dev/base/ltoutenc.dtx
+2023/09/13 | 3367 | macros/latex-dev/base/ltoutenc.ins
+2023/09/13 | 178567 | macros/latex-dev/base/ltoutput.dtx
+2023/09/13 | 14091 | macros/latex-dev/base/ltpage.dtx
+2023/09/13 | 2728 | macros/latex-dev/base/ltpageno.dtx
+2023/09/13 | 672682 | macros/latex-dev/base/ltpara-code.pdf
+2023/09/13 | 99 | macros/latex-dev/base/ltpara-code.tex
+2023/09/13 | 560566 | macros/latex-dev/base/ltpara-doc.pdf
+2023/09/13 | 234 | macros/latex-dev/base/ltpara-doc.tex
+2023/09/13 | 54677 | macros/latex-dev/base/ltpara.dtx
+2023/09/13 | 6155 | macros/latex-dev/base/ltpar.dtx
+2023/09/13 | 69002 | macros/latex-dev/base/ltpictur.dtx
+2023/09/13 | 60154 | macros/latex-dev/base/ltplain.dtx
+2023/09/13 | 557678 | macros/latex-dev/base/ltproperties-code.pdf
+2023/09/13 | 107 | macros/latex-dev/base/ltproperties-code.tex
+2023/09/13 | 432158 | macros/latex-dev/base/ltproperties-doc.pdf
+2023/09/13 | 243 | macros/latex-dev/base/ltproperties-doc.tex
+2023/09/13 | 32369 | macros/latex-dev/base/ltproperties.dtx
+2023/09/13 | 33946 | macros/latex-dev/base/ltsect.dtx
+2023/09/13 | 821678 | macros/latex-dev/base/ltshipout-code.pdf
+2023/09/13 | 104 | macros/latex-dev/base/ltshipout-code.tex
+2023/09/13 | 566578 | macros/latex-dev/base/ltshipout-doc.pdf
+2023/09/13 | 240 | macros/latex-dev/base/ltshipout-doc.tex
+2023/09/13 | 81195 | macros/latex-dev/base/ltshipout.dtx
+2023/09/13 | 606430 | macros/latex-dev/base/ltsockets-code.pdf
+2023/09/13 | 104 | macros/latex-dev/base/ltsockets-code.tex
+2023/09/13 | 489290 | macros/latex-dev/base/ltsockets-doc.pdf
+2023/09/13 | 240 | macros/latex-dev/base/ltsockets-doc.tex
+2023/09/13 | 37668 | macros/latex-dev/base/ltsockets.dtx
+2023/09/13 | 46467 | macros/latex-dev/base/ltspace.dtx
+2023/09/13 | 47896 | macros/latex-dev/base/lttab.dtx
+2023/09/13 | 90660 | macros/latex-dev/base/lttextcomp.dtx
+2023/09/13 | 8731 | macros/latex-dev/base/ltthm.dtx
+2023/09/13 | 15384 | macros/latex-dev/base/ltvers.dtx
+2023/09/13 | 219358 | macros/latex-dev/base/ltx3info.pdf
+2023/09/13 | 18299 | macros/latex-dev/base/ltx3info.tex
+2023/09/13 | 27122 | macros/latex-dev/base/ltxcheck.tex
+2023/09/13 | 22814 | macros/latex-dev/base/ltxdoc.dtx
+2023/09/13 | 244215 | macros/latex-dev/base/ltxdoc.pdf
+2023/09/13 | 7528 | macros/latex-dev/base/ltxguide.cls
+2023/09/13 | 21882 | macros/latex-dev/base/ltxref.dtx
+2023/09/13 | 10601 | macros/latex-dev/base/makeindx.dtx
+2023/09/13 | 3434 | macros/latex-dev/base/makeindx.ins
+2023/09/13 | 165816 | macros/latex-dev/base/makeindx.pdf
+2023/09/13 | 11463 | macros/latex-dev/base/manifest.txt
+2023/09/13 | 1941 | macros/latex-dev/base/minimal.cls
+2023/09/13 | 257825 | macros/latex-dev/base/modguide.pdf
+2023/09/13 | 16500 | macros/latex-dev/base/modguide.tex
+2023/09/13 | 4254 | macros/latex-dev/base/newdc.ins
+2023/09/13 | 6357 | macros/latex-dev/base/newlfont.dtx
+2023/09/13 | 18399 | macros/latex-dev/base/nfssfont.dtx
+2023/09/13 | 2893 | macros/latex-dev/base/nfssfont.ins
+2023/09/13 | 211171 | macros/latex-dev/base/nfssfont.pdf
+2023/09/13 | 3960 | macros/latex-dev/base/olddc.ins
+2023/09/13 | 8626 | macros/latex-dev/base/oldlfont.dtx
+2023/09/13 | 9345 | macros/latex-dev/base/preload.dtx
+2023/09/13 | 13589 | macros/latex-dev/base/proc.dtx
+2023/09/13 | 3401 | macros/latex-dev/base/proc.ins
+2023/09/13 | 227065 | macros/latex-dev/base/proc.pdf
+2023/09/13 | 3100 | macros/latex-dev/base/README.md
+2023/09/13 | 7200 | macros/latex-dev/base/sample2e.tex
+2023/09/13 | 89727 | macros/latex-dev/base/slides.dtx
+2023/09/13 | 6760 | macros/latex-dev/base/slides.ins
+2023/09/13 | 375493 | macros/latex-dev/base/slides.pdf
+2023/09/13 | 15703 | macros/latex-dev/base/slifonts.fdd
+2023/09/13 | 234171 | macros/latex-dev/base/slifonts.pdf
+2023/09/13 | 1694 | macros/latex-dev/base/small2e.tex
+2023/09/13 | 9401 | macros/latex-dev/base/source2edoc.cls
+2023/09/13 | 6137755 | macros/latex-dev/base/source2e.pdf
+2023/09/13 | 15431 | macros/latex-dev/base/source2e.tex
+2023/09/13 | 9395 | macros/latex-dev/base/syntonly.dtx
+2023/09/13 | 2896 | macros/latex-dev/base/syntonly.ins
+2023/09/13 | 189816 | macros/latex-dev/base/syntonly.pdf
+2023/09/13 | 12520 | macros/latex-dev/base/testpage.tex
+2023/09/13 | 173013 | macros/latex-dev/base/tlc2.err
+2023/09/13 | 291143 | macros/latex-dev/base/tlc2.pdf
+2023/09/13 | 42144 | macros/latex-dev/base/tlc3.err
+2023/09/13 | 323048 | macros/latex-dev/base/tlc3.pdf
+2023/09/13 | 12246 | macros/latex-dev/base/tulm.fdd
+2023/09/13 | 3781 | macros/latex-dev/base/tulm.ins
+2023/09/13 | 162773 | macros/latex-dev/base/tulm.pdf
+2023/09/13 | 3181 | macros/latex-dev/base/unpack.ins
+2023/09/13 | 438602 | macros/latex-dev/base/usrguide-historic.pdf
+2023/09/13 | 68735 | macros/latex-dev/base/usrguide-historic.tex
+2023/09/13 | 477695 | macros/latex-dev/base/usrguide.pdf
+2023/09/13 | 52759 | macros/latex-dev/base/usrguide.tex
+2023/09/13 | 92280 | macros/latex-dev/base/utf8ienc.dtx
+2023/09/13 | 353658 | macros/latex-dev/base/utf8ienc.pdf
+2023/09/13 | 10251 | macros/latex-dev/base/webcomp.err
+2023/09/13 | 146199 | macros/latex-dev/base/webcomp.pdf
+2023/09/13 | 42831090 | macros/latex-dev/base.zip
+2023/09/13 | 8663 | macros/latex-dev/required/amsmath/amsbsy.dtx
+2023/09/13 | 1505 | macros/latex-dev/required/amsmath/amsbsy.ins
+2023/09/13 | 174946 | macros/latex-dev/required/amsmath/amsbsy.pdf
+2023/09/13 | 11284 | macros/latex-dev/required/amsmath/amscd.dtx
+2023/09/13 | 1487 | macros/latex-dev/required/amsmath/amscd.ins
+2023/09/13 | 179951 | macros/latex-dev/required/amsmath/amscd.pdf
+2023/09/13 | 5323 | macros/latex-dev/required/amsmath/ams-external.txt
+2023/09/13 | 13442 | macros/latex-dev/required/amsmath/amsgen.dtx
+2023/09/13 | 1484 | macros/latex-dev/required/amsmath/amsgen.ins
+2023/09/13 | 178193 | macros/latex-dev/required/amsmath/amsgen.pdf
+2023/09/13 | 5860 | macros/latex-dev/required/amsmath/ams-internal.txt
+2023/09/13 | 508230 | macros/latex-dev/required/amsmath/amsldoc.pdf
+2023/09/13 | 104792 | macros/latex-dev/required/amsmath/amsldoc.tex
+2023/09/13 | 85099 | macros/latex-dev/required/amsmath/amsmath-2018-12-01.sty
+2023/09/13 | 230377 | macros/latex-dev/required/amsmath/amsmath.dtx
+2023/09/13 | 1504 | macros/latex-dev/required/amsmath/amsmath.ins
+2023/09/13 | 419922 | macros/latex-dev/required/amsmath/amsmath.pdf
+2023/09/13 | 10199 | macros/latex-dev/required/amsmath/amsopn.dtx
+2023/09/13 | 1490 | macros/latex-dev/required/amsmath/amsopn.ins
+2023/09/13 | 140093 | macros/latex-dev/required/amsmath/amsopn.pdf
+2023/09/13 | 69732 | macros/latex-dev/required/amsmath/amstex.sty
+2023/09/13 | 11398 | macros/latex-dev/required/amsmath/amstext.dtx
+2023/09/13 | 1492 | macros/latex-dev/required/amsmath/amstext.ins
+2023/09/13 | 217504 | macros/latex-dev/required/amsmath/amstext.pdf
+2023/09/13 | 4336 | macros/latex-dev/required/amsmath/amsxtra.dtx
+2023/09/13 | 1492 | macros/latex-dev/required/amsmath/amsxtra.ins
+2023/09/13 | 113560 | macros/latex-dev/required/amsmath/amsxtra.pdf
+2023/09/13 | 8351 | macros/latex-dev/required/amsmath/changes.txt
+2023/09/13 | 22605 | macros/latex-dev/required/amsmath/diffs-m.txt
+2023/09/13 | 369 | macros/latex-dev/required/amsmath/manifest.txt
+2023/09/13 | 2723 | macros/latex-dev/required/amsmath/README.md
+2023/09/13 | 109733 | macros/latex-dev/required/amsmath/subeqn.pdf
+2023/09/13 | 6440 | macros/latex-dev/required/amsmath/subeqn.tex
+2023/09/13 | 147459 | macros/latex-dev/required/amsmath/technote.pdf
+2023/09/13 | 12005 | macros/latex-dev/required/amsmath/technote.tex
+2023/09/13 | 454658 | macros/latex-dev/required/amsmath/testmath.pdf
+2023/09/13 | 81184 | macros/latex-dev/required/amsmath/testmath.tex
+2023/09/13 | 2762546 | macros/latex-dev/required/amsmath.zip
+2023/09/13 | 5440 | macros/latex-dev/required/firstaid/changes.txt
+2023/09/13 | 2625 | macros/latex-dev/required/firstaid/firstaid.ins
+2023/09/13 | 18748 | macros/latex-dev/required/firstaid/latex2e-first-aid-for-external-files.dtx
+2023/09/13 | 252465 | macros/latex-dev/required/firstaid/latex2e-first-aid-for-external-files.pdf
+2023/09/13 | 474 | macros/latex-dev/required/firstaid/README.md
+2023/09/13 | 253416 | macros/latex-dev/required/firstaid.zip
2023/06/11 | 15737 | macros/latex-dev/required/graphics/cat.eps
2023/06/11 | 35660 | macros/latex-dev/required/graphics/changes.txt
2023/06/11 | 32194 | macros/latex-dev/required/graphics/color.dtx
@@ -246126,15 +246147,15 @@
2023/08/15 | 14413 | macros/luatex/latex/luatruthtable/luatruthtable.tex
2023/08/15 | 1498 | macros/luatex/latex/luatruthtable/README.txt
2023/08/15 | 99936 | macros/luatex/latex/luatruthtable.zip
-2023/04/29 | 16859 | macros/luatex/latex/lua-typo/doc/lua-typo-demo.pdf
-2023/04/29 | 2997 | macros/luatex/latex/lua-typo/doc/lua-typo-demo.tex
-2023/04/29 | 106625 | macros/luatex/latex/lua-typo/doc/lua-typo-fr.pdf
-2023/04/29 | 208526 | macros/luatex/latex/lua-typo/doc/lua-typo.pdf
-2023/04/29 | 25642 | macros/luatex/latex/lua-typo/lua-typo-2021-04-18.sty
-2023/04/29 | 41316 | macros/luatex/latex/lua-typo/lua-typo-2023-03-08.sty
-2023/04/29 | 3352 | macros/luatex/latex/lua-typo/README.md
-2023/04/29 | 118752 | macros/luatex/latex/lua-typo/source/lua-typo.dtx
-2023/04/29 | 337424 | macros/luatex/latex/lua-typo.zip
+2023/09/13 | 16859 | macros/luatex/latex/lua-typo/doc/lua-typo-demo.pdf
+2023/09/13 | 2997 | macros/luatex/latex/lua-typo/doc/lua-typo-demo.tex
+2023/09/13 | 107474 | macros/luatex/latex/lua-typo/doc/lua-typo-fr.pdf
+2023/09/13 | 217771 | macros/luatex/latex/lua-typo/doc/lua-typo.pdf
+2023/09/13 | 25642 | macros/luatex/latex/lua-typo/lua-typo-2021-04-18.sty
+2023/09/13 | 41316 | macros/luatex/latex/lua-typo/lua-typo-2023-03-08.sty
+2023/09/13 | 3527 | macros/luatex/latex/lua-typo/README.md
+2023/09/13 | 127090 | macros/luatex/latex/lua-typo/source/lua-typo.dtx
+2023/09/13 | 347852 | macros/luatex/latex/lua-typo.zip
2022/06/01 | 1432 | macros/luatex/latex/lua-ul/docstrip-luacode.sty
2022/06/01 | 43771 | macros/luatex/latex/lua-ul/lua-ul.dtx
2022/06/01 | 109525 | macros/luatex/latex/lua-ul/lua-ul.pdf
@@ -283346,61 +283367,61 @@
2018/04/15 | 1313 | support/latex-git-log/po/de.po
2020/02/26 | 3353 | support/latex-git-log/README.md
2020/02/27 | 87742 | support/latex-git-log.zip
-2023/09/09 | 6173320 | support/latexindent/bin/linux/latexindent
-2023/09/09 | 6402551 | support/latexindent/bin/macos/latexindent
-2023/09/09 | 9939615 | support/latexindent/bin/windows/latexindent.exe
-2023/09/09 | 23266 | support/latexindent/defaultSettings.yaml
-2023/09/09 | 6664 | support/latexindent/documentation/contributors.bib
-2023/09/09 | 7161 | support/latexindent/documentation/figure-schematic.png
-2023/09/09 | 4402 | support/latexindent/documentation/latex-indent.bib
-2023/09/09 | 1259686 | support/latexindent/documentation/latexindent.pdf
-2023/09/09 | 438372 | support/latexindent/documentation/latexindent.tex
-2023/09/09 | 54383 | support/latexindent/documentation/latexindent-yaml-schema.json
-2023/09/09 | 44096 | support/latexindent/documentation/logo.png
-2023/09/09 | 68177 | support/latexindent/LatexIndent/AlignmentAtAmpersand.pm
-2023/09/09 | 24449 | support/latexindent/LatexIndent/Arguments.pm
-2023/09/09 | 7445 | support/latexindent/LatexIndent/BackUpFileProcedure.pm
-2023/09/09 | 4860 | support/latexindent/LatexIndent/BlankLines.pm
-2023/09/09 | 12653 | support/latexindent/LatexIndent/Braces.pm
-2023/09/09 | 5432 | support/latexindent/LatexIndent/Check.pm
-2023/09/09 | 10648 | support/latexindent/LatexIndent/Command.pm
-2023/09/09 | 25334 | support/latexindent/LatexIndent/Document.pm
-2023/09/09 | 1500 | support/latexindent/LatexIndent/DoubleBackSlash.pm
-2023/09/09 | 6391 | support/latexindent/LatexIndent/Else.pm
-2023/09/09 | 6898 | support/latexindent/LatexIndent/Environment.pm
-2023/09/09 | 11358 | support/latexindent/LatexIndent/FileContents.pm
-2023/09/09 | 8819 | support/latexindent/LatexIndent/FileExtension.pm
-2023/09/09 | 54602 | support/latexindent/LatexIndent/GetYamlSettings.pm
-2023/09/09 | 11206 | support/latexindent/LatexIndent/Heading.pm
-2023/09/09 | 13470 | support/latexindent/LatexIndent/HiddenChildren.pm
-2023/09/09 | 3517 | support/latexindent/LatexIndent/HorizontalWhiteSpace.pm
-2023/09/09 | 8893 | support/latexindent/LatexIndent/IfElseFi.pm
-2023/09/09 | 20870 | support/latexindent/LatexIndent/Indent.pm
-2023/09/09 | 6890 | support/latexindent/LatexIndent/Item.pm
-2023/09/09 | 5478 | support/latexindent/LatexIndent/KeyEqualsValuesBraces.pm
-2023/09/09 | 9859 | support/latexindent/LatexIndent/Lines.pm
-2023/09/09 | 13435 | support/latexindent/LatexIndent/LogFile.pm
-2023/09/09 | 2320 | support/latexindent/LatexIndent/Logger.pm
-2023/09/09 | 7379 | support/latexindent/LatexIndent/MandatoryArgument.pm
-2023/09/09 | 18591 | support/latexindent/LatexIndent/ModifyLineBreaks.pm
-2023/09/09 | 1558 | support/latexindent/latexindent-module-installer.pl
-2023/09/09 | 4388 | support/latexindent/LatexIndent/NamedGroupingBracesBrackets.pm
-2023/09/09 | 6620 | support/latexindent/LatexIndent/OptionalArgument.pm
-2023/09/09 | 3413 | support/latexindent/latexindent.pl
-2023/09/09 | 2733 | support/latexindent/LatexIndent/Preamble.pm
-2023/09/09 | 3796 | support/latexindent/LatexIndent/Replacement.pm
-2023/09/09 | 4404 | support/latexindent/LatexIndent/RoundBrackets.pm
-2023/09/09 | 22321 | support/latexindent/LatexIndent/Sentence.pm
-2023/09/09 | 14024 | support/latexindent/LatexIndent/Special.pm
-2023/09/09 | 2712 | support/latexindent/LatexIndent/Switches.pm
-2023/09/09 | 3353 | support/latexindent/LatexIndent/Tokens.pm
-2023/09/09 | 6953 | support/latexindent/LatexIndent/TrailingComments.pm
-2023/09/09 | 5857 | support/latexindent/LatexIndent/UnNamedGroupingBracesBrackets.pm
-2023/09/09 | 27422 | support/latexindent/LatexIndent/Verbatim.pm
-2023/09/09 | 836 | support/latexindent/LatexIndent/Version.pm
-2023/09/09 | 35149 | support/latexindent/LatexIndent/Wrap.pm
-2023/09/09 | 2006 | support/latexindent/README
-2023/09/09 | 12404196 | support/latexindent.zip
+2023/09/13 | 6173334 | support/latexindent/bin/linux/latexindent
+2023/09/13 | 6402565 | support/latexindent/bin/macos/latexindent
+2023/09/13 | 9939629 | support/latexindent/bin/windows/latexindent.exe
+2023/09/13 | 23268 | support/latexindent/defaultSettings.yaml
+2023/09/13 | 6664 | support/latexindent/documentation/contributors.bib
+2023/09/13 | 7161 | support/latexindent/documentation/figure-schematic.png
+2023/09/13 | 4402 | support/latexindent/documentation/latex-indent.bib
+2023/09/13 | 1259013 | support/latexindent/documentation/latexindent.pdf
+2023/09/13 | 438360 | support/latexindent/documentation/latexindent.tex
+2023/09/13 | 54385 | support/latexindent/documentation/latexindent-yaml-schema.json
+2023/09/13 | 44096 | support/latexindent/documentation/logo.png
+2023/09/13 | 68177 | support/latexindent/LatexIndent/AlignmentAtAmpersand.pm
+2023/09/13 | 24449 | support/latexindent/LatexIndent/Arguments.pm
+2023/09/13 | 7445 | support/latexindent/LatexIndent/BackUpFileProcedure.pm
+2023/09/13 | 4860 | support/latexindent/LatexIndent/BlankLines.pm
+2023/09/13 | 12653 | support/latexindent/LatexIndent/Braces.pm
+2023/09/13 | 5432 | support/latexindent/LatexIndent/Check.pm
+2023/09/13 | 10648 | support/latexindent/LatexIndent/Command.pm
+2023/09/13 | 25334 | support/latexindent/LatexIndent/Document.pm
+2023/09/13 | 1500 | support/latexindent/LatexIndent/DoubleBackSlash.pm
+2023/09/13 | 6391 | support/latexindent/LatexIndent/Else.pm
+2023/09/13 | 6898 | support/latexindent/LatexIndent/Environment.pm
+2023/09/13 | 11358 | support/latexindent/LatexIndent/FileContents.pm
+2023/09/13 | 8819 | support/latexindent/LatexIndent/FileExtension.pm
+2023/09/13 | 54602 | support/latexindent/LatexIndent/GetYamlSettings.pm
+2023/09/13 | 11206 | support/latexindent/LatexIndent/Heading.pm
+2023/09/13 | 13470 | support/latexindent/LatexIndent/HiddenChildren.pm
+2023/09/13 | 3517 | support/latexindent/LatexIndent/HorizontalWhiteSpace.pm
+2023/09/13 | 8893 | support/latexindent/LatexIndent/IfElseFi.pm
+2023/09/13 | 20870 | support/latexindent/LatexIndent/Indent.pm
+2023/09/13 | 6890 | support/latexindent/LatexIndent/Item.pm
+2023/09/13 | 5478 | support/latexindent/LatexIndent/KeyEqualsValuesBraces.pm
+2023/09/13 | 9859 | support/latexindent/LatexIndent/Lines.pm
+2023/09/13 | 13435 | support/latexindent/LatexIndent/LogFile.pm
+2023/09/13 | 2320 | support/latexindent/LatexIndent/Logger.pm
+2023/09/13 | 7379 | support/latexindent/LatexIndent/MandatoryArgument.pm
+2023/09/13 | 18591 | support/latexindent/LatexIndent/ModifyLineBreaks.pm
+2023/09/13 | 1558 | support/latexindent/latexindent-module-installer.pl
+2023/09/13 | 4388 | support/latexindent/LatexIndent/NamedGroupingBracesBrackets.pm
+2023/09/13 | 6620 | support/latexindent/LatexIndent/OptionalArgument.pm
+2023/09/13 | 3415 | support/latexindent/latexindent.pl
+2023/09/13 | 2733 | support/latexindent/LatexIndent/Preamble.pm
+2023/09/13 | 3796 | support/latexindent/LatexIndent/Replacement.pm
+2023/09/13 | 4404 | support/latexindent/LatexIndent/RoundBrackets.pm
+2023/09/13 | 22321 | support/latexindent/LatexIndent/Sentence.pm
+2023/09/13 | 14024 | support/latexindent/LatexIndent/Special.pm
+2023/09/13 | 2712 | support/latexindent/LatexIndent/Switches.pm
+2023/09/13 | 3353 | support/latexindent/LatexIndent/Tokens.pm
+2023/09/13 | 6953 | support/latexindent/LatexIndent/TrailingComments.pm
+2023/09/13 | 5857 | support/latexindent/LatexIndent/UnNamedGroupingBracesBrackets.pm
+2023/09/13 | 27422 | support/latexindent/LatexIndent/Verbatim.pm
+2023/09/13 | 838 | support/latexindent/LatexIndent/Version.pm
+2023/09/13 | 35161 | support/latexindent/LatexIndent/Wrap.pm
+2023/09/13 | 2008 | support/latexindent/README
+2023/09/13 | 12405251 | support/latexindent.zip
2021/10/26 | 16439 | support/latex-make/figlatex.dtx
2021/10/26 | 238535 | support/latex-make/figlatex.pdf
2001/06/07 | 302 | support/latexmake/latexmake.diz
@@ -285293,10 +285314,10 @@
2005/08/22 | 9331 | support/runtex/README
2005/08/29 | 19188 | support/runtex/runtex_src.zip
2005/08/29 | 16106 | support/runtex/runtex.zip
-2023/09/10 | 1101 | support/runtexshebang/LICENSE
-2023/09/10 | 3806 | support/runtexshebang/README.md
-2023/09/10 | 2249 | support/runtexshebang/runtexshebang.lua
-2023/09/10 | 3861 | support/runtexshebang.zip
+2023/09/13 | 1101 | support/runtexshebang/LICENSE
+2023/09/13 | 3976 | support/runtexshebang/README.md
+2023/09/13 | 2960 | support/runtexshebang/runtexshebang.lua
+2023/09/13 | 4241 | support/runtexshebang.zip
1990/08/05 | 373 | support/s2latex/Makefile
1990/10/07 | 711 | support/s2latex/README
1990/10/07 | 1242 | support/s2latex/README.TOO
@@ -286304,7 +286325,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
-2023/09/11 | 230268 | support/TeX4ht/source/ChangeLog
+2023/09/12 | 230515 | 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
@@ -286345,7 +286366,7 @@
2021/05/03 | 14218 | support/TeX4ht/source/tex4ht-htcmd.tex
2021/05/03 | 70683 | support/TeX4ht/source/tex4ht-html0.tex
2021/05/03 | 164748 | support/TeX4ht/source/tex4ht-html32.tex
-2023/09/01 | 625718 | support/TeX4ht/source/tex4ht-html4.tex
+2023/09/12 | 625862 | support/TeX4ht/source/tex4ht-html4.tex
2023/01/10 | 12023 | support/TeX4ht/source/tex4ht-html5.tex
2021/06/17 | 648233 | support/TeX4ht/source/tex4ht-html-speech.tex
2021/05/03 | 59483 | support/TeX4ht/source/tex4ht-html-speech-xtpipes.tex
@@ -291115,7 +291136,7 @@
2021/02/07 | 136588 | systems/texlive/tlnet/archive/babel-danish.doc.r57642.tar.xz
2021/02/07 | 2488 | systems/texlive/tlnet/archive/babel-danish.r57642.tar.xz
2021/02/07 | 5792 | systems/texlive/tlnet/archive/babel-danish.source.r57642.tar.xz
-2023/08/30 | 1021980 | systems/texlive/tlnet/archive/babel.doc.r68111.tar.xz
+2023/09/13 | 1024932 | systems/texlive/tlnet/archive/babel.doc.r68258.tar.xz
2021/08/30 | 157392 | systems/texlive/tlnet/archive/babel-dutch.doc.r60362.tar.xz
2021/08/30 | 2920 | systems/texlive/tlnet/archive/babel-dutch.r60362.tar.xz
2021/08/30 | 7968 | systems/texlive/tlnet/archive/babel-dutch.source.r60362.tar.xz
@@ -291204,7 +291225,7 @@
2021/07/10 | 146580 | systems/texlive/tlnet/archive/babel-portuges.doc.r59883.tar.xz
2021/07/10 | 2828 | systems/texlive/tlnet/archive/babel-portuges.r59883.tar.xz
2021/07/10 | 6692 | systems/texlive/tlnet/archive/babel-portuges.source.r59883.tar.xz
-2023/08/30 | 213460 | systems/texlive/tlnet/archive/babel.r68111.tar.xz
+2023/09/13 | 216292 | systems/texlive/tlnet/archive/babel.r68258.tar.xz
2021/04/07 | 113056 | systems/texlive/tlnet/archive/babel-romanian.doc.r58776.tar.xz
2021/04/07 | 2124 | systems/texlive/tlnet/archive/babel-romanian.r58776.tar.xz
2021/04/07 | 4308 | systems/texlive/tlnet/archive/babel-romanian.source.r58776.tar.xz
@@ -291235,7 +291256,7 @@
2021/11/07 | 209804 | systems/texlive/tlnet/archive/babel-sorbian.doc.r60975.tar.xz
2021/11/07 | 3156 | systems/texlive/tlnet/archive/babel-sorbian.r60975.tar.xz
2021/11/07 | 6328 | systems/texlive/tlnet/archive/babel-sorbian.source.r60975.tar.xz
-2023/08/30 | 813792 | systems/texlive/tlnet/archive/babel.source.r68111.tar.xz
+2023/09/13 | 829072 | systems/texlive/tlnet/archive/babel.source.r68258.tar.xz
2021/05/28 | 183140 | systems/texlive/tlnet/archive/babel-spanish.doc.r59367.tar.xz
2021/05/28 | 8876 | systems/texlive/tlnet/archive/babel-spanish.r59367.tar.xz
2021/05/28 | 29800 | systems/texlive/tlnet/archive/babel-spanish.source.r59367.tar.xz
@@ -292671,7 +292692,7 @@
2022/02/27 | 584 | systems/texlive/tlnet/archive/collection-formatsextra.r62226.tar.xz
2023/07/14 | 612 | systems/texlive/tlnet/archive/collection-games.r67619.tar.xz
2023/08/17 | 604 | systems/texlive/tlnet/archive/collection-humanities.r67944.tar.xz
-2023/09/09 | 464 | systems/texlive/tlnet/archive/collection-langarabic.r68214.tar.xz
+2023/09/13 | 472 | systems/texlive/tlnet/archive/collection-langarabic.r68250.tar.xz
2022/07/29 | 552 | systems/texlive/tlnet/archive/collection-langchinese.r63995.tar.xz
2023/02/14 | 588 | systems/texlive/tlnet/archive/collection-langcjk.r65824.tar.xz
2020/03/04 | 608 | systems/texlive/tlnet/archive/collection-langcyrillic.r54074.tar.xz
@@ -295586,8 +295607,8 @@
2019/02/28 | 98112 | systems/texlive/tlnet/archive/greekdates.doc.r15878.tar.xz
2019/02/28 | 3820 | systems/texlive/tlnet/archive/greekdates.r15878.tar.xz
2019/02/28 | 7276 | systems/texlive/tlnet/archive/greekdates.source.r15878.tar.xz
-2023/08/18 | 2880268 | systems/texlive/tlnet/archive/greek-fontenc.doc.r67956.tar.xz
-2023/08/18 | 34012 | systems/texlive/tlnet/archive/greek-fontenc.r67956.tar.xz
+2023/09/13 | 3009184 | systems/texlive/tlnet/archive/greek-fontenc.doc.r68249.tar.xz
+2023/09/13 | 33396 | systems/texlive/tlnet/archive/greek-fontenc.r68249.tar.xz
2023/03/22 | 660116 | systems/texlive/tlnet/archive/greek-inputenc.doc.r66634.tar.xz
2023/03/22 | 6864 | systems/texlive/tlnet/archive/greek-inputenc.r66634.tar.xz
2019/02/28 | 311284 | systems/texlive/tlnet/archive/greektex.doc.r28327.tar.xz
@@ -295987,13 +296008,13 @@
2020/11/23 | 356 | systems/texlive/tlnet/archive/hyperxmp.amd64-freebsd.r56984.tar.xz
2020/11/23 | 356 | systems/texlive/tlnet/archive/hyperxmp.amd64-netbsd.r56984.tar.xz
2020/11/23 | 356 | systems/texlive/tlnet/archive/hyperxmp.armhf-linux.r56984.tar.xz
-2023/02/20 | 1171384 | systems/texlive/tlnet/archive/hyperxmp.doc.r65980.tar.xz
+2023/09/13 | 1165076 | systems/texlive/tlnet/archive/hyperxmp.doc.r68251.tar.xz
2020/11/23 | 356 | systems/texlive/tlnet/archive/hyperxmp.i386-freebsd.r56984.tar.xz
2020/11/23 | 352 | systems/texlive/tlnet/archive/hyperxmp.i386-linux.r56984.tar.xz
2020/11/23 | 356 | systems/texlive/tlnet/archive/hyperxmp.i386-netbsd.r56984.tar.xz
2020/11/23 | 356 | systems/texlive/tlnet/archive/hyperxmp.i386-solaris.r56984.tar.xz
-2023/02/20 | 15092 | systems/texlive/tlnet/archive/hyperxmp.r65980.tar.xz
-2023/02/20 | 157468 | systems/texlive/tlnet/archive/hyperxmp.source.r65980.tar.xz
+2023/09/13 | 15176 | systems/texlive/tlnet/archive/hyperxmp.r68251.tar.xz
+2023/09/13 | 157676 | systems/texlive/tlnet/archive/hyperxmp.source.r68251.tar.xz
2021/02/25 | 356 | systems/texlive/tlnet/archive/hyperxmp.universal-darwin.r57908.tar.xz
2023/02/20 | 2320 | systems/texlive/tlnet/archive/hyperxmp.windows.r65891.tar.xz
2020/11/23 | 356 | systems/texlive/tlnet/archive/hyperxmp.x86_64-cygwin.r56984.tar.xz
@@ -296190,9 +296211,9 @@
2019/02/28 | 157728 | systems/texlive/tlnet/archive/includernw.doc.r47557.tar.xz
2019/02/28 | 3116 | systems/texlive/tlnet/archive/includernw.r47557.tar.xz
2020/03/24 | 179192 | systems/texlive/tlnet/archive/inconsolata.doc.r54512.tar.xz
-2023/09/11 | 72808 | systems/texlive/tlnet/archive/inconsolata-nerd-font.doc.r68231.tar.xz
-2023/09/11 | 1573032 | systems/texlive/tlnet/archive/inconsolata-nerd-font.r68231.tar.xz
-2023/09/11 | 4000 | systems/texlive/tlnet/archive/inconsolata-nerd-font.source.r68231.tar.xz
+2023/09/13 | 77520 | systems/texlive/tlnet/archive/inconsolata-nerd-font.doc.r68248.tar.xz
+2023/09/13 | 1573116 | systems/texlive/tlnet/archive/inconsolata-nerd-font.r68248.tar.xz
+2023/09/13 | 4388 | systems/texlive/tlnet/archive/inconsolata-nerd-font.source.r68248.tar.xz
2020/03/24 | 299536 | systems/texlive/tlnet/archive/inconsolata.r54512.tar.xz
2019/02/28 | 156688 | systems/texlive/tlnet/archive/index.doc.r24099.tar.xz
2019/02/28 | 11040 | systems/texlive/tlnet/archive/index.r24099.tar.xz
@@ -296537,6 +296558,8 @@
2022/07/26 | 63204 | systems/texlive/tlnet/archive/kfupm-math-exam.doc.r63977.tar.xz
2022/07/26 | 4120 | systems/texlive/tlnet/archive/kfupm-math-exam.r63977.tar.xz
2022/07/26 | 4852 | systems/texlive/tlnet/archive/kfupm-math-exam.source.r63977.tar.xz
+2023/09/13 | 313980 | systems/texlive/tlnet/archive/khatalmaqala.doc.r68250.tar.xz
+2023/09/13 | 664 | systems/texlive/tlnet/archive/khatalmaqala.r68250.tar.xz
2021/12/24 | 1260 | systems/texlive/tlnet/archive/kinematikz.doc.r61392.tar.xz
2021/12/24 | 23308 | systems/texlive/tlnet/archive/kinematikz.r61392.tar.xz
2019/02/28 | 123796 | systems/texlive/tlnet/archive/kix.doc.r21606.tar.xz
@@ -298307,9 +298330,9 @@
2022/01/24 | 41912 | systems/texlive/tlnet/archive/minitoc.r61719.tar.xz
2019/02/28 | 166396 | systems/texlive/tlnet/archive/minorrevision.doc.r32165.tar.xz
2019/02/28 | 1584 | systems/texlive/tlnet/archive/minorrevision.r32165.tar.xz
-2022/12/13 | 837736 | systems/texlive/tlnet/archive/minted.doc.r65252.tar.xz
-2022/12/13 | 10028 | systems/texlive/tlnet/archive/minted.r65252.tar.xz
-2022/12/13 | 46460 | systems/texlive/tlnet/archive/minted.source.r65252.tar.xz
+2023/09/13 | 849336 | systems/texlive/tlnet/archive/minted.doc.r68252.tar.xz
+2023/09/13 | 10088 | systems/texlive/tlnet/archive/minted.r68252.tar.xz
+2023/09/13 | 47724 | systems/texlive/tlnet/archive/minted.source.r68252.tar.xz
2022/09/23 | 308412 | systems/texlive/tlnet/archive/mintspirit.doc.r64461.tar.xz
2022/09/23 | 1105472 | systems/texlive/tlnet/archive/mintspirit.r64461.tar.xz
2019/02/28 | 393404 | systems/texlive/tlnet/archive/minutes.doc.r42186.tar.xz
@@ -298323,8 +298346,8 @@
2019/02/28 | 6528 | systems/texlive/tlnet/archive/mi-solns.source.r49651.tar.xz
2022/01/24 | 14130568 | systems/texlive/tlnet/archive/missaali.doc.r61719.tar.xz
2022/01/24 | 85820 | systems/texlive/tlnet/archive/missaali.r61719.tar.xz
-2023/09/06 | 5332044 | systems/texlive/tlnet/archive/mitthesis.doc.r68187.tar.xz
-2023/09/06 | 10744 | systems/texlive/tlnet/archive/mitthesis.r68187.tar.xz
+2023/09/13 | 2237768 | systems/texlive/tlnet/archive/mitthesis.doc.r68253.tar.xz
+2023/09/13 | 10764 | systems/texlive/tlnet/archive/mitthesis.r68253.tar.xz
2019/02/28 | 340 | systems/texlive/tlnet/archive/mkgrkindex.aarch64-linux.r46208.tar.xz
2019/02/28 | 340 | systems/texlive/tlnet/archive/mkgrkindex.amd64-freebsd.r16472.tar.xz
2019/02/28 | 340 | systems/texlive/tlnet/archive/mkgrkindex.amd64-netbsd.r30191.tar.xz
@@ -299397,12 +299420,12 @@
2019/11/19 | 340 | systems/texlive/tlnet/archive/pdfjam.amd64-freebsd.r52858.tar.xz
2019/11/19 | 340 | systems/texlive/tlnet/archive/pdfjam.amd64-netbsd.r52858.tar.xz
2019/11/19 | 340 | systems/texlive/tlnet/archive/pdfjam.armhf-linux.r52858.tar.xz
-2023/07/31 | 159612 | systems/texlive/tlnet/archive/pdfjam.doc.r67773.tar.xz
+2023/09/13 | 159652 | systems/texlive/tlnet/archive/pdfjam.doc.r68257.tar.xz
2019/11/19 | 340 | systems/texlive/tlnet/archive/pdfjam.i386-freebsd.r52858.tar.xz
2019/11/19 | 336 | systems/texlive/tlnet/archive/pdfjam.i386-linux.r52858.tar.xz
2019/11/19 | 340 | systems/texlive/tlnet/archive/pdfjam.i386-netbsd.r52858.tar.xz
2019/11/19 | 340 | systems/texlive/tlnet/archive/pdfjam.i386-solaris.r52858.tar.xz
-2023/07/31 | 12752 | systems/texlive/tlnet/archive/pdfjam.r67773.tar.xz
+2023/09/13 | 12744 | systems/texlive/tlnet/archive/pdfjam.r68257.tar.xz
2021/02/25 | 336 | systems/texlive/tlnet/archive/pdfjam.universal-darwin.r57908.tar.xz
2019/11/19 | 340 | systems/texlive/tlnet/archive/pdfjam.x86_64-cygwin.r52858.tar.xz
2019/11/19 | 348 | systems/texlive/tlnet/archive/pdfjam.x86_64-darwinlegacy.r52858.tar.xz
@@ -299716,8 +299739,8 @@
2020/09/29 | 23380 | systems/texlive/tlnet/archive/phonetic.r56468.tar.xz
2019/02/28 | 44080 | systems/texlive/tlnet/archive/phonrule.doc.r43963.tar.xz
2019/02/28 | 1132 | systems/texlive/tlnet/archive/phonrule.r43963.tar.xz
-2023/09/06 | 155784 | systems/texlive/tlnet/archive/photobook.doc.r68182.tar.xz
-2023/09/06 | 33108 | systems/texlive/tlnet/archive/photobook.r68182.tar.xz
+2023/09/13 | 156180 | systems/texlive/tlnet/archive/photobook.doc.r68254.tar.xz
+2023/09/13 | 33228 | systems/texlive/tlnet/archive/photobook.r68254.tar.xz
2019/02/28 | 142148 | systems/texlive/tlnet/archive/photo.doc.r18739.tar.xz
2019/02/28 | 2756 | systems/texlive/tlnet/archive/photo.r18739.tar.xz
2019/02/28 | 8908 | systems/texlive/tlnet/archive/photo.source.r18739.tar.xz
@@ -301075,9 +301098,9 @@
2019/02/28 | 1565692 | systems/texlive/tlnet/archive/sduthesis.doc.r41401.tar.xz
2019/02/28 | 1230616 | systems/texlive/tlnet/archive/sduthesis.r41401.tar.xz
2019/02/28 | 24124 | systems/texlive/tlnet/archive/sduthesis.source.r41401.tar.xz
-2023/07/05 | 1465596 | systems/texlive/tlnet/archive/se2thesis.doc.r67548.tar.xz
-2023/07/05 | 9176 | systems/texlive/tlnet/archive/se2thesis.r67548.tar.xz
-2023/07/05 | 24004 | systems/texlive/tlnet/archive/se2thesis.source.r67548.tar.xz
+2023/09/13 | 1414316 | systems/texlive/tlnet/archive/se2thesis.doc.r68255.tar.xz
+2023/09/13 | 8992 | systems/texlive/tlnet/archive/se2thesis.r68255.tar.xz
+2023/09/13 | 23876 | systems/texlive/tlnet/archive/se2thesis.source.r68255.tar.xz
2019/02/28 | 256480 | systems/texlive/tlnet/archive/secdot.doc.r20208.tar.xz
2019/02/28 | 1572 | systems/texlive/tlnet/archive/secdot.r20208.tar.xz
2022/01/31 | 445424 | systems/texlive/tlnet/archive/secnum.doc.r61813.tar.xz
@@ -301465,8 +301488,8 @@
2019/02/28 | 233272 | systems/texlive/tlnet/archive/spot.doc.r22408.tar.xz
2019/02/28 | 2520 | systems/texlive/tlnet/archive/spot.r22408.tar.xz
2019/02/28 | 9784 | systems/texlive/tlnet/archive/spot.source.r22408.tar.xz
-2023/03/24 | 1089924 | systems/texlive/tlnet/archive/spreadtab.doc.r66655.tar.xz
-2023/03/24 | 21892 | systems/texlive/tlnet/archive/spreadtab.r66655.tar.xz
+2023/09/13 | 607828 | systems/texlive/tlnet/archive/spreadtab.doc.r68256.tar.xz
+2023/09/13 | 22564 | systems/texlive/tlnet/archive/spreadtab.r68256.tar.xz
2019/02/28 | 101460 | systems/texlive/tlnet/archive/spverbatim.doc.r15878.tar.xz
2019/02/28 | 1196 | systems/texlive/tlnet/archive/spverbatim.r15878.tar.xz
2019/02/28 | 3612 | systems/texlive/tlnet/archive/spverbatim.source.r15878.tar.xz
@@ -301956,13 +301979,13 @@
2023/08/16 | 108860 | systems/texlive/tlnet/archive/tex4ht.amd64-freebsd.r67940.tar.xz
2023/08/16 | 87320 | systems/texlive/tlnet/archive/tex4ht.amd64-netbsd.r67940.tar.xz
2023/08/16 | 69948 | systems/texlive/tlnet/archive/tex4ht.armhf-linux.r67940.tar.xz
-2023/09/12 | 136384 | systems/texlive/tlnet/archive/tex4ht.doc.r68245.tar.xz
+2023/09/13 | 136384 | systems/texlive/tlnet/archive/tex4ht.doc.r68260.tar.xz
2023/08/16 | 93764 | systems/texlive/tlnet/archive/tex4ht.i386-freebsd.r67940.tar.xz
2023/08/16 | 91236 | systems/texlive/tlnet/archive/tex4ht.i386-linux.r67940.tar.xz
2023/08/16 | 76184 | systems/texlive/tlnet/archive/tex4ht.i386-netbsd.r67940.tar.xz
2023/08/16 | 83936 | systems/texlive/tlnet/archive/tex4ht.i386-solaris.r67940.tar.xz
-2023/09/12 | 1103176 | systems/texlive/tlnet/archive/tex4ht.r68245.tar.xz
-2023/09/12 | 1453472 | systems/texlive/tlnet/archive/tex4ht.source.r68245.tar.xz
+2023/09/13 | 1103304 | systems/texlive/tlnet/archive/tex4ht.r68260.tar.xz
+2023/09/13 | 1456060 | systems/texlive/tlnet/archive/tex4ht.source.r68260.tar.xz
2023/08/16 | 184636 | systems/texlive/tlnet/archive/tex4ht.universal-darwin.r67940.tar.xz
2023/08/16 | 62092 | systems/texlive/tlnet/archive/tex4ht.windows.r67940.tar.xz
2023/08/16 | 57992 | systems/texlive/tlnet/archive/tex4ht.x86_64-cygwin.r67940.tar.xz
@@ -302223,7 +302246,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
-2023/09/12 | 429464 | systems/texlive/tlnet/archive/texlive-scripts.doc.r68236.tar.xz
+2023/09/13 | 429604 | systems/texlive/tlnet/archive/texlive-scripts.doc.r68247.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
@@ -302245,7 +302268,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
-2023/09/12 | 114076 | systems/texlive/tlnet/archive/texlive-scripts.r68236.tar.xz
+2023/09/13 | 114132 | systems/texlive/tlnet/archive/texlive-scripts.r68247.tar.xz
2022/09/13 | 580 | systems/texlive/tlnet/archive/texlive-scripts.universal-darwin.r64356.tar.xz
2023/05/14 | 60312 | systems/texlive/tlnet/archive/texlive-scripts.windows.r67095.tar.xz
2022/09/13 | 596 | systems/texlive/tlnet/archive/texlive-scripts.x86_64-cygwin.r64356.tar.xz
@@ -304123,16 +304146,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
2023/08/07 | 125713 | systems/texlive/tlnet/install-tl
-2023/09/12 | 5740216 | systems/texlive/tlnet/install-tl-unx.tar.gz
-2023/09/12 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
-2023/09/12 | 488 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
+2023/09/13 | 5742203 | systems/texlive/tlnet/install-tl-unx.tar.gz
+2023/09/13 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
+2023/09/13 | 488 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
2023/05/13 | 5083 | systems/texlive/tlnet/install-tl-windows.bat
-2023/09/12 | 21038096 | systems/texlive/tlnet/install-tl-windows.exe
-2023/09/12 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
-2023/09/12 | 488 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
-2023/09/12 | 26028654 | systems/texlive/tlnet/install-tl.zip
-2023/09/12 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
-2023/09/12 | 488 | systems/texlive/tlnet/install-tl.zip.sha512.asc
+2023/09/13 | 21038779 | systems/texlive/tlnet/install-tl-windows.exe
+2023/09/13 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
+2023/09/13 | 488 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
+2023/09/13 | 26028708 | systems/texlive/tlnet/install-tl.zip
+2023/09/13 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
+2023/09/13 | 488 | systems/texlive/tlnet/install-tl.zip.sha512.asc
2023/03/19 | 1229 | systems/texlive/tlnet/README.md
2023/03/19 | 0 | systems/texlive/tlnet/TEXLIVE_2023
2023/01/17 | 8401 | systems/texlive/tlnet/tlpkg/gpg/pubring.gpg
@@ -304142,7 +304165,7 @@
2023/01/17 | 1280 | systems/texlive/tlnet/tlpkg/gpg/trustdb.gpg
2023/08/03 | 50576 | systems/texlive/tlnet/tlpkg/installer/config.guess
2010/11/11 | 11651 | systems/texlive/tlnet/tlpkg/installer/COPYING.MinGW-runtime.txt
-2023/09/11 | 7106 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
+2023/09/12 | 7363 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
2023/08/23 | 221470 | 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
@@ -304184,12 +304207,12 @@
2023/02/21 | 20371 | systems/texlive/tlnet/tlpkg/TeXLive/TLCrypto.pm
2021/12/21 | 5429 | systems/texlive/tlnet/tlpkg/TeXLive/TLDownload.pm
2023/04/08 | 28167 | systems/texlive/tlnet/tlpkg/TeXLive/TLPaper.pm
-2023/09/12 | 18254944 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
-2023/09/12 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
+2023/09/13 | 18257627 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
+2023/09/13 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
2023/02/20 | 86803 | systems/texlive/tlnet/tlpkg/TeXLive/TLPDB.pm
-2023/09/12 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
-2023/09/12 | 488 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
-2023/09/12 | 2474272 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
+2023/09/13 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
+2023/09/13 | 488 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
+2023/09/13 | 2478300 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
2023/02/20 | 58928 | systems/texlive/tlnet/tlpkg/TeXLive/TLPOBJ.pm
2023/06/11 | 42749 | systems/texlive/tlnet/tlpkg/TeXLive/TLPSRC.pm
2023/02/21 | 16138 | systems/texlive/tlnet/tlpkg/TeXLive/TLTREE.pm
@@ -314931,7 +314954,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
-2023/09/13 | 186 | timestamp
+2023/09/14 | 186 | timestamp
2002/08/26 | 61898 | usergrps/dante/antrag.pdf
2002/08/26 | 118217 | usergrps/dante/antrag.ps
2021/11/11 | 917 | usergrps/dante/dtk/doc/beispiel.bib
diff --git a/FILES.byname.gz b/FILES.byname.gz
index 28132c2e26..4d46643fa7 100644
--- a/FILES.byname.gz
+++ b/FILES.byname.gz
Binary files differ
diff --git a/FILES.last07days b/FILES.last07days
index 3b66e79782..24c3ffcc8c 100644
--- a/FILES.last07days
+++ b/FILES.last07days
@@ -1,3 +1,530 @@
+2023/09/13 | 99 | macros/latex-dev/base/ltpara-code.tex
+2023/09/13 | 9939629 | support/latexindent/bin/windows/latexindent.exe
+2023/09/13 | 9935 | macros/latex-dev/base/ltnews21.tex
+2023/09/13 | 9887 | macros/latex-dev/base/format.ins
+2023/09/13 | 9859 | support/latexindent/LatexIndent/Lines.pm
+2023/09/13 | 96 | macros/latex-dev/base/doc-code.tex
+2023/09/13 | 9557 | macros/latex-dev/base/ltcntrl.dtx
+2023/09/13 | 9401 | macros/latex-dev/base/source2edoc.cls
+2023/09/13 | 9395 | macros/latex-dev/base/syntonly.dtx
+2023/09/13 | 9345 | macros/latex-dev/base/preload.dtx
+2023/09/13 | 92954 | macros/latex-dev/base/ltdefns.dtx
+2023/09/13 | 92280 | macros/latex-dev/base/utf8ienc.dtx
+2023/09/13 | 91046 | fonts/parsimatn/parsimatn-example-of-use.pdf
+2023/09/13 | 9068 | macros/latex-dev/base/lppl-1-0.txt
+2023/09/13 | 90660 | macros/latex-dev/base/lttextcomp.dtx
+2023/09/13 | 90440 | fonts/parsimatn/ParsiMatn-Italic.ttf
+2023/09/13 | 8992 | systems/texlive/tlnet/archive/se2thesis.r68255.tar.xz
+2023/09/13 | 89727 | macros/latex-dev/base/slides.dtx
+2023/09/13 | 8970 | macros/latex-dev/base/ltnews17.tex
+2023/09/13 | 8921 | macros/latex-dev/base/ltnews38.tex
+2023/09/13 | 8893 | support/latexindent/LatexIndent/IfElseFi.pm
+2023/09/13 | 8819 | support/latexindent/LatexIndent/FileExtension.pm
+2023/09/13 | 87512 | fonts/parsimatn/ParsiMatn-BoldItalic.ttf
+2023/09/13 | 8731 | macros/latex-dev/base/ltthm.dtx
+2023/09/13 | 87168 | fonts/parsimatn/ParsiMatn-Regular.ttf
+2023/09/13 | 8663 | macros/latex-dev/required/amsmath/amsbsy.dtx
+2023/09/13 | 8626 | macros/latex-dev/base/oldlfont.dtx
+2023/09/13 | 85099 | macros/latex-dev/required/amsmath/amsmath-2018-12-01.sty
+2023/09/13 | 849336 | systems/texlive/tlnet/archive/minted.doc.r68252.tar.xz
+2023/09/13 | 84572 | fonts/parsimatn/ParsiMatn-Bold.ttf
+2023/09/13 | 84215 | macros/latex-dev/base/ltfssini.dtx
+2023/09/13 | 838 | support/latexindent/LatexIndent/Version.pm
+2023/09/13 | 8351 | macros/latex-dev/required/amsmath/changes.txt
+2023/09/13 | 82916 | macros/latex-dev/base/ltfssbas.dtx
+2023/09/13 | 829072 | systems/texlive/tlnet/archive/babel.source.r68258.tar.xz
+2023/09/13 | 8286389 | macros/latex/contrib/jeuxcartes/doc/JeuxCartes-doc.pdf
+2023/09/13 | 821916 | install/macros/latex/contrib/l3build.tds.zip
+2023/09/13 | 821678 | macros/latex-dev/base/ltshipout-code.pdf
+2023/09/13 | 818015 | macros/latex/contrib/l3build.zip
+2023/09/13 | 81195 | macros/latex-dev/base/ltshipout.dtx
+2023/09/13 | 81184 | macros/latex-dev/required/amsmath/testmath.tex
+2023/09/13 | 8092 | macros/latex/contrib/l3build/l3build-variables.lua
+2023/09/13 | 8051 | macros/latex-dev/base/ltnews.tex
+2023/09/13 | 803891 | macros/latex-dev/base/ltfilehook-code.pdf
+2023/09/13 | 7805 | macros/latex/contrib/l3build/l3build-arguments.lua
+2023/09/13 | 77755 | graphics/pgf/contrib/profsio/tex/ProfSio.sty
+2023/09/13 | 77520 | systems/texlive/tlnet/archive/inconsolata-nerd-font.doc.r68248.tar.xz
+2023/09/13 | 766 | fonts/parsimatn/README.md
+2023/09/13 | 756197 | macros/latex-dev/base/doc.pdf
+2023/09/13 | 755724 | macros/latex-dev/base/lthooks-doc.pdf
+2023/09/13 | 755624 | macros/latex-dev/base/ltcmdhooks-code.pdf
+2023/09/13 | 7528 | macros/latex-dev/base/ltxguide.cls
+2023/09/13 | 75286 | macros/latex-dev/base/ltluatex.dtx
+2023/09/13 | 75111 | macros/latex-dev/base/ltfssdcl.dtx
+2023/09/13 | 7508087 | fonts/inconsolata-nerd-font.zip
+2023/09/13 | 7505 | macros/latex/contrib/l3build/l3build.lua
+2023/09/13 | 744760 | macros/latex/contrib/l3build/l3build.pdf
+2023/09/13 | 7445 | support/latexindent/LatexIndent/BackUpFileProcedure.pm
+2023/09/13 | 7379 | support/latexindent/LatexIndent/MandatoryArgument.pm
+2023/09/13 | 72475 | macros/latex-dev/base/ltfsstrc.dtx
+2023/09/13 | 7244 | macros/latex-dev/base/ltnews20.tex
+2023/09/13 | 7216 | macros/latex-dev/base/exscale.dtx
+2023/09/13 | 7206 | macros/latex/contrib/l3build/l3build-manifest.lua
+2023/09/13 | 7200 | macros/latex-dev/base/sample2e.tex
+2023/09/13 | 716708 | macros/latex-dev/base/ltmarks-code.pdf
+2023/09/13 | 7161 | support/latexindent/documentation/figure-schematic.png
+2023/09/13 | 7104 | macros/latex-dev/base/alltt.dtx
+2023/09/13 | 7029 | macros/latex-dev/base/ltnews13.tex
+2023/09/13 | 69732 | macros/latex-dev/required/amsmath/amstex.sty
+2023/09/13 | 6953 | support/latexindent/LatexIndent/TrailingComments.pm
+2023/09/13 | 69439 | macros/latex-dev/base/clsguide-historic.tex
+2023/09/13 | 69002 | macros/latex-dev/base/ltpictur.dtx
+2023/09/13 | 6898 | support/latexindent/LatexIndent/Environment.pm
+2023/09/13 | 6890 | support/latexindent/LatexIndent/Item.pm
+2023/09/13 | 68735 | macros/latex-dev/base/usrguide-historic.tex
+2023/09/13 | 68177 | support/latexindent/LatexIndent/AlignmentAtAmpersand.pm
+2023/09/13 | 6760 | macros/latex-dev/base/slides.ins
+2023/09/13 | 67588 | macros/latex-dev/base/ltcmdhooks.dtx
+2023/09/13 | 67442 | macros/latex-dev/base/ltfilehook.dtx
+2023/09/13 | 672682 | macros/latex-dev/base/ltpara-code.pdf
+2023/09/13 | 6709 | macros/latex-dev/base/latexsym.dtx
+2023/09/13 | 6664 | support/latexindent/documentation/contributors.bib
+2023/09/13 | 664 | systems/texlive/tlnet/archive/khatalmaqala.r68250.tar.xz
+2023/09/13 | 6620 | support/latexindent/LatexIndent/OptionalArgument.pm
+2023/09/13 | 65684 | macros/latex-dev/base/ltmiscen.dtx
+2023/09/13 | 6440 | macros/latex-dev/required/amsmath/subeqn.tex
+2023/09/13 | 6424 | macros/latex-dev/base/ltnews14.tex
+2023/09/13 | 6402565 | support/latexindent/bin/macos/latexindent
+2023/09/13 | 6391 | support/latexindent/LatexIndent/Else.pm
+2023/09/13 | 6357 | macros/latex-dev/base/newlfont.dtx
+2023/09/13 | 63280 | macros/latex-dev/base/letter.dtx
+2023/09/13 | 63142 | macros/latex-dev/base/ltmarks.dtx
+2023/09/13 | 6313 | macros/latex/contrib/l3build/l3build-aux.lua
+2023/09/13 | 6217 | macros/latex-dev/base/ltmeta.dtx
+2023/09/13 | 6173334 | support/latexindent/bin/linux/latexindent
+2023/09/13 | 6155 | macros/latex-dev/base/ltpar.dtx
+2023/09/13 | 6151 | macros/latex/contrib/l3build/l3build-typesetting.lua
+2023/09/13 | 614 | fonts/inconsolata-nerd-font/README.md
+2023/09/13 | 61493 | macros/latex-dev/base/ltfiles.dtx
+2023/09/13 | 6145 | macros/latex-dev/base/latexrelease.ins
+2023/09/13 | 6137755 | macros/latex-dev/base/source2e.pdf
+2023/09/13 | 607828 | systems/texlive/tlnet/archive/spreadtab.doc.r68256.tar.xz
+2023/09/13 | 606430 | macros/latex-dev/base/ltsockets-code.pdf
+2023/09/13 | 60321 | macros/latex-dev/base/fontdef.dtx
+2023/09/13 | 60154 | macros/latex-dev/base/ltplain.dtx
+2023/09/13 | 5986 | macros/latex-dev/base/ltnews15.tex
+2023/09/13 | 59833 | graphics/pgf/contrib/profsio/doc/ProfSio-doc-fr.tex
+2023/09/13 | 586833 | macros/latex-dev/base/ltmarks-doc.pdf
+2023/09/13 | 5860 | macros/latex-dev/required/amsmath/ams-internal.txt
+2023/09/13 | 5859 | macros/latex-dev/base/ltidxglo.dtx
+2023/09/13 | 5857 | support/latexindent/LatexIndent/UnNamedGroupingBracesBrackets.pm
+2023/09/13 | 58551 | macros/latex-dev/base/ltfssaxes.dtx
+2023/09/13 | 5825 | macros/latex-dev/base/ltnews10.tex
+2023/09/13 | 5775 | macros/latex-dev/base/ltnews16.tex
+2023/09/13 | 5742203 | systems/texlive/tlnet/install-tl-unx.tar.gz
+2023/09/13 | 5732 | macros/latex-dev/base/ltnews08.tex
+2023/09/13 | 5714 | macros/latex-dev/base/inputenc.ins
+2023/09/13 | 5699 | macros/latex-dev/base/ltnews05.tex
+2023/09/13 | 5691 | macros/latex-dev/base/ltnews27.tex
+2023/09/13 | 5678 | macros/latex-dev/base/ltnews04.tex
+2023/09/13 | 566578 | macros/latex-dev/base/ltshipout-doc.pdf
+2023/09/13 | 56472 | macros/latex-dev/base/clsguide.tex
+2023/09/13 | 563307 | macros/latex-dev/base/ltnews35.pdf
+2023/09/13 | 560998 | macros/latex-dev/base/classes.pdf
+2023/09/13 | 560566 | macros/latex-dev/base/ltpara-doc.pdf
+2023/09/13 | 5588 | macros/latex-dev/base/ltnews25.tex
+2023/09/13 | 5576 | macros/latex-dev/base/ltnews07.tex
+2023/09/13 | 557678 | macros/latex-dev/base/ltproperties-code.pdf
+2023/09/13 | 5574 | macros/latex-dev/base/ltnews12.tex
+2023/09/13 | 55687 | macros/latex-dev/base/ltfloat.dtx
+2023/09/13 | 5544 | macros/latex-dev/base/ltnews06.tex
+2023/09/13 | 5529 | macros/latex-dev/base/ltnews11.tex
+2023/09/13 | 5509 | macros/latex-dev/base/graphpap.dtx
+2023/09/13 | 548560 | macros/latex-dev/base/ltfilehook-doc.pdf
+2023/09/13 | 5478 | support/latexindent/LatexIndent/KeyEqualsValuesBraces.pm
+2023/09/13 | 54677 | macros/latex-dev/base/ltpara.dtx
+2023/09/13 | 546540 | macros/latex-dev/base/ltnews32.pdf
+2023/09/13 | 5462 | macros/latex-dev/base/ltnews02.tex
+2023/09/13 | 54602 | support/latexindent/LatexIndent/GetYamlSettings.pm
+2023/09/13 | 5451 | macros/latex-dev/base/ltnews09.tex
+2023/09/13 | 5440 | macros/latex-dev/required/firstaid/changes.txt
+2023/09/13 | 54385 | support/latexindent/documentation/latexindent-yaml-schema.json
+2023/09/13 | 5432 | support/latexindent/LatexIndent/Check.pm
+2023/09/13 | 5369 | macros/latex-dev/base/ltnews03.tex
+2023/09/13 | 5323 | macros/latex-dev/required/amsmath/ams-external.txt
+2023/09/13 | 52887 | macros/latex-dev/base/lb2.err
+2023/09/13 | 52813 | macros/latex-dev/base/encguide.tex
+2023/09/13 | 52759 | macros/latex-dev/base/usrguide.tex
+2023/09/13 | 5273 | macros/latex-dev/base/cmextra.ins
+2023/09/13 | 526688 | macros/latex-dev/base/ltnews31.pdf
+2023/09/13 | 5246 | macros/latex-dev/base/ltnews01.tex
+2023/09/13 | 522757 | macros/latex-dev/base/ltnews33.pdf
+2023/09/13 | 517934 | macros/latex-dev/base/ltnews36.pdf
+2023/09/13 | 517659 | macros/latex-dev/base/fntguide.pdf
+2023/09/13 | 512240 | macros/latex-dev/base/ltnews30.pdf
+2023/09/13 | 51180 | macros/latex-dev/base/ltfinal.dtx
+2023/09/13 | 508345 | macros/latex-dev/base/ltnews34.pdf
+2023/09/13 | 508230 | macros/latex-dev/required/amsmath/amsldoc.pdf
+2023/09/13 | 504704 | macros/latex-dev/base/docstrip.pdf
+2023/09/13 | 5041 | macros/latex-dev/base/latexsym.ins
+2023/09/13 | 499095 | macros/latex-dev/base/ltcmdhooks-doc.pdf
+2023/09/13 | 4972 | macros/latex/contrib/l3build/l3build-ctan.lua
+2023/09/13 | 4945 | macros/latex-dev/base/lthyphen.dtx
+2023/09/13 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
+2023/09/13 | 489290 | macros/latex-dev/base/ltsockets-doc.pdf
+2023/09/13 | 488 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
+2023/09/13 | 488 | systems/texlive/tlnet/install-tl.zip.sha512.asc
+2023/09/13 | 488 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
+2023/09/13 | 488 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
+2023/09/13 | 4860 | support/latexindent/LatexIndent/BlankLines.pm
+2023/09/13 | 47896 | macros/latex-dev/base/lttab.dtx
+2023/09/13 | 477695 | macros/latex-dev/base/usrguide.pdf
+2023/09/13 | 47724 | systems/texlive/tlnet/archive/minted.source.r68252.tar.xz
+2023/09/13 | 4757 | macros/latex-dev/base/ltlength.dtx
+2023/09/13 | 474 | macros/latex-dev/required/firstaid/README.md
+2023/09/13 | 472 | systems/texlive/tlnet/archive/collection-langarabic.r68250.tar.xz
+2023/09/13 | 470660 | macros/latex/contrib/arraycols.zip
+2023/09/13 | 46467 | macros/latex-dev/base/ltspace.dtx
+2023/09/13 | 464654 | macros/latex/contrib/arraycols/arraycols.pdf
+2023/09/13 | 45712 | macros/latex-dev/base/ltboxes.dtx
+2023/09/13 | 456926 | macros/latex-dev/base/ltnews37.pdf
+2023/09/13 | 455437 | macros/latex-dev/base/ltnews29.pdf
+2023/09/13 | 454658 | macros/latex-dev/required/amsmath/testmath.pdf
+2023/09/13 | 45347 | macros/latex-dev/base/latexrelease.dtx
+2023/09/13 | 451992 | macros/latex-dev/base/clsguide.pdf
+2023/09/13 | 4497 | fonts/parsimatn/OFL.txt
+2023/09/13 | 44531 | macros/latex-dev/base/cmfonts.fdd
+2023/09/13 | 44096 | support/latexindent/documentation/logo.png
+2023/09/13 | 4404 | support/latexindent/LatexIndent/RoundBrackets.pm
+2023/09/13 | 4402 | support/latexindent/documentation/latex-indent.bib
+2023/09/13 | 4394 | fonts/inconsolata-nerd-font/OFL.txt
+2023/09/13 | 4390 | macros/latex-dev/base/ec.ins
+2023/09/13 | 4388 | systems/texlive/tlnet/archive/inconsolata-nerd-font.source.r68248.tar.xz
+2023/09/13 | 4388 | support/latexindent/LatexIndent/NamedGroupingBracesBrackets.pm
+2023/09/13 | 438602 | macros/latex-dev/base/usrguide-historic.pdf
+2023/09/13 | 438360 | support/latexindent/documentation/latexindent.tex
+2023/09/13 | 43409105 | install/macros/latex-dev/latex-base-dev.tds.zip
+2023/09/13 | 4338 | macros/latex/contrib/l3build/l3build-stdmain.lua
+2023/09/13 | 4336 | macros/latex-dev/required/amsmath/amsxtra.dtx
+2023/09/13 | 4324 | macros/latex-dev/base/cmfonts.ins
+2023/09/13 | 432158 | macros/latex-dev/base/ltproperties-doc.pdf
+2023/09/13 | 4298 | macros/latex-dev/base/ltalloc.dtx
+2023/09/13 | 429604 | systems/texlive/tlnet/archive/texlive-scripts.doc.r68247.tar.xz
+2023/09/13 | 42831090 | macros/latex-dev/base.zip
+2023/09/13 | 4273 | macros/latex-dev/base/docstrip.ins
+2023/09/13 | 42708 | macros/latex-dev/base/changes.old.txt
+2023/09/13 | 4254 | macros/latex-dev/base/newdc.ins
+2023/09/13 | 4241 | support/runtexshebang.zip
+2023/09/13 | 42287 | macros/latex-dev/base/ltmath.dtx
+2023/09/13 | 4219 | macros/latex-dev/base/latex209.ins
+2023/09/13 | 42144 | macros/latex-dev/base/tlc3.err
+2023/09/13 | 419922 | macros/latex-dev/required/amsmath/amsmath.pdf
+2023/09/13 | 4190 | macros/latex-dev/base/ltnews19.tex
+2023/09/13 | 415615 | macros/latex-dev/base/clsguide-historic.pdf
+2023/09/13 | 4150 | macros/latex/contrib/l3build/l3build-zip.lua
+2023/09/13 | 41430 | macros/latex/contrib/jeuxcartes/doc/JeuxCartes-doc.tex
+2023/09/13 | 41316 | macros/luatex/latex/lua-typo/lua-typo-2023-03-08.sty
+2023/09/13 | 4111065 | biblio/ctan-bibdata.zip
+2023/09/13 | 4087 | macros/latex-dev/base/classes.ins
+2023/09/13 | 4079 | macros/latex-dev/base/lablst.tex
+2023/09/13 | 402877 | macros/latex-dev/base/changes.txt
+2023/09/13 | 39839 | macros/latex-dev/base/ltnews18.pdf
+2023/09/13 | 3976 | support/runtexshebang/README.md
+2023/09/13 | 3960 | macros/latex-dev/base/olddc.ins
+2023/09/13 | 38730 | macros/latex-dev/base/latex209.dtx
+2023/09/13 | 38226 | macros/latex-dev/base/ltnews35.tex
+2023/09/13 | 379733 | macros/latex-dev/base/ltnews26.pdf
+2023/09/13 | 3796 | support/latexindent/LatexIndent/Replacement.pm
+2023/09/13 | 3781 | macros/latex-dev/base/tulm.ins
+2023/09/13 | 376933 | macros/latex-dev/base/ltnews28.pdf
+2023/09/13 | 37668 | macros/latex-dev/base/ltsockets.dtx
+2023/09/13 | 375493 | macros/latex-dev/base/slides.pdf
+2023/09/13 | 37436 | macros/latex/contrib/l3build/l3build-check.lua
+2023/09/13 | 3725 | macros/latex-dev/base/ltlogos.dtx
+2023/09/13 | 3709441 | biblio/ctan-bibdata/ctan.pdf
+2023/09/13 | 369 | macros/latex-dev/required/amsmath/manifest.txt
+2023/09/13 | 3679102 | graphics/circuit_macros.zip
+2023/09/13 | 36154 | macros/latex-dev/base/ltlists.dtx
+2023/09/13 | 35984 | macros/latex-dev/base/ltdirchk.dtx
+2023/09/13 | 359786 | macros/latex-dev/base/ltnews38.pdf
+2023/09/13 | 353658 | macros/latex-dev/base/utf8ienc.pdf
+2023/09/13 | 3527 | macros/luatex/latex/lua-typo/README.md
+2023/09/13 | 3517 | support/latexindent/LatexIndent/HorizontalWhiteSpace.pm
+2023/09/13 | 35161 | support/latexindent/LatexIndent/Wrap.pm
+2023/09/13 | 347852 | macros/luatex/latex/lua-typo.zip
+2023/09/13 | 3434 | macros/latex-dev/base/makeindx.ins
+2023/09/13 | 3415 | support/latexindent/latexindent.pl
+2023/09/13 | 340948 | graphics/pgf/contrib/profsio.zip
+2023/09/13 | 3401 | macros/latex-dev/base/proc.ins
+2023/09/13 | 33946 | macros/latex-dev/base/ltsect.dtx
+2023/09/13 | 33911 | macros/latex-dev/base/ltnews33.tex
+2023/09/13 | 337428 | macros/latex-dev/base/letter.pdf
+2023/09/13 | 3372 | macros/latex-dev/base/letter.ins
+2023/09/13 | 3367 | macros/latex-dev/base/ltoutenc.ins
+2023/09/13 | 3353 | support/latexindent/LatexIndent/Tokens.pm
+2023/09/13 | 33396 | systems/texlive/tlnet/archive/greek-fontenc.r68249.tar.xz
+2023/09/13 | 3338 | macros/latex-dev/base/exscale.ins
+2023/09/13 | 33243 | macros/latex-dev/base/ltnews32.tex
+2023/09/13 | 33228 | systems/texlive/tlnet/archive/photobook.r68254.tar.xz
+2023/09/13 | 33083 | macros/latex-dev/base/ltnews37.tex
+2023/09/13 | 3282 | macros/latex-dev/base/bugs.txt
+2023/09/13 | 326425 | graphics/pgf/contrib/profsio/doc/ProfSio-doc-fr.pdf
+2023/09/13 | 325191 | macros/latex-dev/base/ltluatex.pdf
+2023/09/13 | 32369 | macros/latex-dev/base/ltproperties.dtx
+2023/09/13 | 32331 | macros/latex-dev/base/ltnews34.tex
+2023/09/13 | 323048 | macros/latex-dev/base/tlc3.pdf
+2023/09/13 | 3181 | macros/latex-dev/base/unpack.ins
+2023/09/13 | 318199 | macros/latex-dev/base/inputenc.pdf
+2023/09/13 | 318193 | macros/latex-dev/base/ltnews20.pdf
+2023/09/13 | 318026 | macros/latex-dev/base/ltnews22.pdf
+2023/09/13 | 313980 | systems/texlive/tlnet/archive/khatalmaqala.doc.r68250.tar.xz
+2023/09/13 | 3100 | macros/latex-dev/base/README.md
+2023/09/13 | 30499 | macros/latex-dev/base/doc-2021-06-01.sty
+2023/09/13 | 30452 | macros/latex-dev/base/ltnews31.tex
+2023/09/13 | 301240 | macros/latex-dev/base/lthooks.dtx
+2023/09/13 | 3009184 | systems/texlive/tlnet/archive/greek-fontenc.doc.r68249.tar.xz
+2023/09/13 | 2997 | macros/luatex/latex/lua-typo/doc/lua-typo-demo.tex
+2023/09/13 | 29965 | macros/latex-dev/base/doc-2016-02-15.sty
+2023/09/13 | 2960 | support/runtexshebang/runtexshebang.lua
+2023/09/13 | 29267 | macros/latex-dev/base/ltfntcmd.dtx
+2023/09/13 | 292600 | macros/latex-dev/base/cmfonts.pdf
+2023/09/13 | 291143 | macros/latex-dev/base/tlc2.pdf
+2023/09/13 | 2896 | macros/latex-dev/base/syntonly.ins
+2023/09/13 | 289668 | fonts/parsimatn.zip
+2023/09/13 | 2893 | macros/latex-dev/base/nfssfont.ins
+2023/09/13 | 2892 | macros/latex-dev/base/graphpap.ins
+2023/09/13 | 2892 | macros/latex-dev/base/fix-cm.ins
+2023/09/13 | 2890 | macros/latex-dev/base/alltt.ins
+2023/09/13 | 2888 | macros/latex-dev/base/ifthen.ins
+2023/09/13 | 287727 | macros/latex-dev/base/fix-cm.pdf
+2023/09/13 | 286824 | macros/latex-dev/base/ltnews23.pdf
+2023/09/13 | 282095 | macros/latex-dev/base/latexrelease.pdf
+2023/09/13 | 2812622 | biblio/ctan-bibdata/ctan.bib
+2023/09/13 | 2795752 | install/macros/latex-dev/required/latex-amsmath-dev.tds.zip
+2023/09/13 | 2762546 | macros/latex-dev/required/amsmath.zip
+2023/09/13 | 2745 | macros/latex/contrib/l3build/l3build-unpack.lua
+2023/09/13 | 27422 | support/latexindent/LatexIndent/Verbatim.pm
+2023/09/13 | 2733 | support/latexindent/LatexIndent/Preamble.pm
+2023/09/13 | 2728 | macros/latex-dev/base/ltpageno.dtx
+2023/09/13 | 2723 | macros/latex-dev/required/amsmath/README.md
+2023/09/13 | 2712 | support/latexindent/LatexIndent/Switches.pm
+2023/09/13 | 27122 | macros/latex-dev/base/ltxcheck.tex
+2023/09/13 | 27069 | macros/latex-dev/base/lterror.dtx
+2023/09/13 | 2705 | macros/latex-dev/base/idx.tex
+2023/09/13 | 265497 | macros/latex-dev/base/ltnews24.pdf
+2023/09/13 | 264168 | macros/latex-dev/base/cfgguide.pdf
+2023/09/13 | 2625 | macros/latex-dev/required/firstaid/firstaid.ins
+2023/09/13 | 26028708 | systems/texlive/tlnet/install-tl.zip
+2023/09/13 | 257825 | macros/latex-dev/base/modguide.pdf
+2023/09/13 | 257359 | macros/latex-dev/base/cyrguide.pdf
+2023/09/13 | 257201 | install/macros/latex-dev/required/latex-firstaid-dev.tds.zip
+2023/09/13 | 25642 | macros/luatex/latex/lua-typo/lua-typo-2021-04-18.sty
+2023/09/13 | 253416 | macros/latex-dev/required/firstaid.zip
+2023/09/13 | 25334 | support/latexindent/LatexIndent/Document.pm
+2023/09/13 | 252497 | macros/latex-dev/base/lb2.pdf
+2023/09/13 | 252465 | macros/latex-dev/required/firstaid/latex2e-first-aid-for-external-files.pdf
+2023/09/13 | 251283 | macros/latex-dev/base/ltnews27.pdf
+2023/09/13 | 2478300 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
+2023/09/13 | 2473 | macros/latex/contrib/l3build/l3build-help.lua
+2023/09/13 | 245228 | macros/latex-dev/base/ltnews21.pdf
+2023/09/13 | 24449 | support/latexindent/LatexIndent/Arguments.pm
+2023/09/13 | 244215 | macros/latex-dev/base/ltxdoc.pdf
+2023/09/13 | 243 | macros/latex-dev/base/ltproperties-doc.tex
+2023/09/13 | 24286 | macros/latex-dev/base/ltcounts.dtx
+2023/09/13 | 242471 | macros/latex-dev/base/doc.dtx
+2023/09/13 | 241 | macros/latex-dev/base/ltfilehook-doc.tex
+2023/09/13 | 240 | macros/latex-dev/base/ltsockets-doc.tex
+2023/09/13 | 240 | macros/latex-dev/base/ltshipout-doc.tex
+2023/09/13 | 238 | macros/latex-dev/base/ltmarks-doc.tex
+2023/09/13 | 238 | macros/latex-dev/base/lthooks-doc.tex
+2023/09/13 | 238 | macros/latex-dev/base/ltcmdhooks-doc.tex
+2023/09/13 | 23876 | systems/texlive/tlnet/archive/se2thesis.source.r68255.tar.xz
+2023/09/13 | 23646 | macros/latex-dev/base/ltnews30.tex
+2023/09/13 | 23516 | macros/latex-dev/base/fix-cm.dtx
+2023/09/13 | 234 | macros/latex-dev/base/ltpara-doc.tex
+2023/09/13 | 234171 | macros/latex-dev/base/slifonts.pdf
+2023/09/13 | 23386 | macros/latex-dev/base/lppl.tex
+2023/09/13 | 23367 | macros/latex/contrib/jeuxcartes/tex/JeuxCartes.sty
+2023/09/13 | 23268 | support/latexindent/defaultSettings.yaml
+2023/09/13 | 2320 | support/latexindent/LatexIndent/Logger.pm
+2023/09/13 | 230377 | macros/latex-dev/required/amsmath/amsmath.dtx
+2023/09/13 | 2285 | macros/latex/contrib/l3build/l3build-tagging.lua
+2023/09/13 | 22814 | macros/latex-dev/base/ltxdoc.dtx
+2023/09/13 | 22723 | macros/latex-dev/base/cfgguide.tex
+2023/09/13 | 227065 | macros/latex-dev/base/proc.pdf
+2023/09/13 | 22605 | macros/latex-dev/required/amsmath/diffs-m.txt
+2023/09/13 | 225936 | macros/latex-dev/base/ltnews19.pdf
+2023/09/13 | 22564 | systems/texlive/tlnet/archive/spreadtab.r68256.tar.xz
+2023/09/13 | 223831 | macros/latex-dev/base/alltt.pdf
+2023/09/13 | 2237768 | systems/texlive/tlnet/archive/mitthesis.doc.r68253.tar.xz
+2023/09/13 | 22321 | support/latexindent/LatexIndent/Sentence.pm
+2023/09/13 | 2227 | fonts/inconsolata-nerd-font/inconsolata-nerd-font.ins
+2023/09/13 | 221219 | macros/latex-dev/base/ifthen.pdf
+2023/09/13 | 219358 | macros/latex-dev/base/ltx3info.pdf
+2023/09/13 | 21882 | macros/latex-dev/base/ltxref.dtx
+2023/09/13 | 217771 | macros/luatex/latex/lua-typo/doc/lua-typo.pdf
+2023/09/13 | 217659 | macros/latex-dev/base/lgc2.pdf
+2023/09/13 | 217504 | macros/latex-dev/required/amsmath/amstext.pdf
+2023/09/13 | 216292 | systems/texlive/tlnet/archive/babel.r68258.tar.xz
+2023/09/13 | 21587 | macros/latex/contrib/l3build/CHANGELOG.md
+2023/09/13 | 2149 | macros/latex/contrib/l3build/l3build-clean.lua
+2023/09/13 | 21488 | macros/latex-dev/base/ltnews.cls
+2023/09/13 | 21229 | macros/latex-dev/base/lgc2.err
+2023/09/13 | 211171 | macros/latex-dev/base/nfssfont.pdf
+2023/09/13 | 21038779 | systems/texlive/tlnet/install-tl-windows.exe
+2023/09/13 | 20870 | support/latexindent/LatexIndent/Indent.pm
+2023/09/13 | 205100 | macros/latex-dev/base/ltnews25.pdf
+2023/09/13 | 204708 | macros/latex-dev/base/exscale.pdf
+2023/09/13 | 2008 | support/latexindent/README
+2023/09/13 | 200759 | macros/latex-dev/base/latexsym.pdf
+2023/09/13 | 19853 | macros/latex-dev/base/ltkeys.dtx
+2023/09/13 | 1941 | macros/latex-dev/base/minimal.cls
+2023/09/13 | 19333 | macros/latex-dev/base/ltnews36.tex
+2023/09/13 | 19106 | fonts/inconsolata-nerd-font/LICENSE.txt
+2023/09/13 | 19040 | macros/latex-dev/base/lppl.txt
+2023/09/13 | 1899896 | fonts/inconsolata-nerd-font/InconsolataNerdFont-Bold.ttf
+2023/09/13 | 1899844 | fonts/inconsolata-nerd-font/InconsolataNerdFontPropo-Bold.ttf
+2023/09/13 | 1899308 | fonts/inconsolata-nerd-font/InconsolataNerdFont-Regular.ttf
+2023/09/13 | 1899256 | fonts/inconsolata-nerd-font/InconsolataNerdFontPropo-Regular.ttf
+2023/09/13 | 189816 | macros/latex-dev/base/syntonly.pdf
+2023/09/13 | 18944 | macros/latex-dev/base/ltnews29.tex
+2023/09/13 | 18837 | macros/latex/contrib/arraycols/arraycols.dtx
+2023/09/13 | 18753 | macros/latex-dev/base/ifthen.dtx
+2023/09/13 | 18748 | macros/latex-dev/required/firstaid/latex2e-first-aid-for-external-files.dtx
+2023/09/13 | 18711 | macros/latex-dev/base/ltexpl.dtx
+2023/09/13 | 18591 | support/latexindent/LatexIndent/ModifyLineBreaks.pm
+2023/09/13 | 1846340 | fonts/inconsolata-nerd-font/InconsolataNerdFontMono-Bold.ttf
+2023/09/13 | 1845752 | fonts/inconsolata-nerd-font/InconsolataNerdFontMono-Regular.ttf
+2023/09/13 | 18399 | macros/latex-dev/base/nfssfont.dtx
+2023/09/13 | 183132 | macros/latex-dev/base/ltcmd.dtx
+2023/09/13 | 18299 | macros/latex-dev/base/ltx3info.tex
+2023/09/13 | 18257627 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
+2023/09/13 | 182483 | macros/latex-dev/base/ltnews13.pdf
+2023/09/13 | 1816 | macros/latex/contrib/l3build/l3build.1
+2023/09/13 | 179951 | macros/latex-dev/required/amsmath/amscd.pdf
+2023/09/13 | 178567 | macros/latex-dev/base/ltoutput.dtx
+2023/09/13 | 178193 | macros/latex-dev/required/amsmath/amsgen.pdf
+2023/09/13 | 17782 | macros/latex-dev/base/cyrguide.tex
+2023/09/13 | 175211 | macros/latex-dev/base/ltnews05.pdf
+2023/09/13 | 174946 | macros/latex-dev/required/amsmath/amsbsy.pdf
+2023/09/13 | 17389 | macros/latex-dev/base/ltbibl.dtx
+2023/09/13 | 173013 | macros/latex-dev/base/tlc2.err
+2023/09/13 | 170876 | macros/latex-dev/base/lamport-manual.pdf
+2023/09/13 | 170722 | macros/latex-dev/base/ltnews14.pdf
+2023/09/13 | 170595 | macros/latex-dev/base/docstrip.dtx
+2023/09/13 | 169553 | macros/latex-dev/base/ltnews01.pdf
+2023/09/13 | 1694 | macros/latex-dev/base/small2e.tex
+2023/09/13 | 169433 | macros/latex-dev/base/ltnews10.pdf
+2023/09/13 | 16859 | macros/luatex/latex/lua-typo/doc/lua-typo-demo.pdf
+2023/09/13 | 1678 | biblio/ctan-bibdata/biblatex-ctan/ctan.bbx
+2023/09/13 | 166269 | macros/latex-dev/base/ltnews17.pdf
+2023/09/13 | 165816 | macros/latex-dev/base/makeindx.pdf
+2023/09/13 | 16500 | macros/latex-dev/base/modguide.tex
+2023/09/13 | 162773 | macros/latex-dev/base/tulm.pdf
+2023/09/13 | 161722 | macros/latex-dev/base/graphpap.pdf
+2023/09/13 | 159652 | systems/texlive/tlnet/archive/pdfjam.doc.r68257.tar.xz
+2023/09/13 | 157676 | systems/texlive/tlnet/archive/hyperxmp.source.r68251.tar.xz
+2023/09/13 | 1573116 | systems/texlive/tlnet/archive/inconsolata-nerd-font.r68248.tar.xz
+2023/09/13 | 15703 | macros/latex-dev/base/slifonts.fdd
+2023/09/13 | 156764 | macros/latex-dev/base/ltnews12.pdf
+2023/09/13 | 156238 | macros/latex-dev/base/classes.dtx
+2023/09/13 | 156180 | systems/texlive/tlnet/archive/photobook.doc.r68254.tar.xz
+2023/09/13 | 1558 | support/latexindent/latexindent-module-installer.pl
+2023/09/13 | 155442 | macros/latex-dev/base/ltnews08.pdf
+2023/09/13 | 15431 | macros/latex-dev/base/source2e.tex
+2023/09/13 | 1540 | macros/latex/contrib/l3build/l3build.ins
+2023/09/13 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
+2023/09/13 | 15384 | macros/latex-dev/base/ltvers.dtx
+2023/09/13 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
+2023/09/13 | 152551 | macros/latex-dev/base/ltnews04.pdf
+2023/09/13 | 15208498 | macros/latex/contrib/jeuxcartes.zip
+2023/09/13 | 151773 | macros/latex-dev/base/ltnews02.pdf
+2023/09/13 | 15176 | systems/texlive/tlnet/archive/hyperxmp.r68251.tar.xz
+2023/09/13 | 151324 | macros/latex-dev/base/ltnews03.pdf
+2023/09/13 | 1505 | macros/latex-dev/required/amsmath/amsbsy.ins
+2023/09/13 | 1504 | macros/latex-dev/required/amsmath/amsmath.ins
+2023/09/13 | 15047 | macros/latex-dev/base/ltnews28.tex
+2023/09/13 | 1500 | support/latexindent/LatexIndent/DoubleBackSlash.pm
+2023/09/13 | 1492 | macros/latex-dev/required/amsmath/amsxtra.ins
+2023/09/13 | 1492 | macros/latex-dev/required/amsmath/amstext.ins
+2023/09/13 | 1490 | macros/latex-dev/required/amsmath/amsopn.ins
+2023/09/13 | 1487 | macros/latex-dev/required/amsmath/amscd.ins
+2023/09/13 | 1484 | macros/latex-dev/required/amsmath/amsgen.ins
+2023/09/13 | 148294 | macros/latex-dev/base/ltoutenc.dtx
+2023/09/13 | 147459 | macros/latex-dev/required/amsmath/technote.pdf
+2023/09/13 | 146199 | macros/latex-dev/base/webcomp.pdf
+2023/09/13 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
+2023/09/13 | 1456060 | systems/texlive/tlnet/archive/tex4ht.source.r68260.tar.xz
+2023/09/13 | 14543 | fonts/inconsolata-nerd-font/inconsolata-nerd-font.dtx
+2023/09/13 | 145334 | macros/latex-dev/base/ltclass.dtx
+2023/09/13 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
+2023/09/13 | 14421 | macros/latex-dev/base/lppl-1-2.txt
+2023/09/13 | 14341 | macros/latex-dev/base/lppl-1-1.txt
+2023/09/13 | 142867 | macros/latex-dev/base/ltnews06.pdf
+2023/09/13 | 1414316 | systems/texlive/tlnet/archive/se2thesis.doc.r68255.tar.xz
+2023/09/13 | 14091 | macros/latex-dev/base/ltpage.dtx
+2023/09/13 | 14024 | support/latexindent/LatexIndent/Special.pm
+2023/09/13 | 140093 | macros/latex-dev/required/amsmath/amsopn.pdf
+2023/09/13 | 138214 | macros/latex-dev/base/ltnews07.pdf
+2023/09/13 | 138107 | macros/latex-dev/base/ltnews16.pdf
+2023/09/13 | 13759 | macros/latex-dev/base/lamport-manual.err
+2023/09/13 | 1372646 | fonts/inconsolata-nerd-font/inconsolata-nerd-font.pdf
+2023/09/13 | 136384 | systems/texlive/tlnet/archive/tex4ht.doc.r68260.tar.xz
+2023/09/13 | 13589 | macros/latex-dev/base/proc.dtx
+2023/09/13 | 13470 | support/latexindent/LatexIndent/HiddenChildren.pm
+2023/09/13 | 13442 | macros/latex-dev/required/amsmath/amsgen.dtx
+2023/09/13 | 13435 | support/latexindent/LatexIndent/LogFile.pm
+2023/09/13 | 1341 | macros/latex-dev/base/ltnews18.tex
+2023/09/13 | 132370 | macros/latex-dev/base/lppl.pdf
+2023/09/13 | 13211 | macros/latex/contrib/l3build/l3build-upload.lua
+2023/09/13 | 1320668 | macros/latex-dev/base/ltnews.pdf
+2023/09/13 | 1318576 | macros/latex-dev/base/encguide.pdf
+2023/09/13 | 130328 | macros/latex-dev/base/ltnews15.pdf
+2023/09/13 | 130028 | macros/latex-dev/base/ltnews09.pdf
+2023/09/13 | 1279 | macros/latex-dev/base/legal.txt
+2023/09/13 | 12744 | systems/texlive/tlnet/archive/pdfjam.r68257.tar.xz
+2023/09/13 | 127090 | macros/luatex/latex/lua-typo/source/lua-typo.dtx
+2023/09/13 | 12653 | support/latexindent/LatexIndent/Braces.pm
+2023/09/13 | 1259013 | support/latexindent/documentation/latexindent.pdf
+2023/09/13 | 1258576 | macros/latex-dev/base/lthooks-code.pdf
+2023/09/13 | 12520 | macros/latex-dev/base/testpage.tex
+2023/09/13 | 12469 | macros/latex/contrib/l3build/l3build-file-functions.lua
+2023/09/13 | 12405251 | support/latexindent.zip
+2023/09/13 | 12334 | macros/latex-dev/base/ltnews24.tex
+2023/09/13 | 12246 | macros/latex-dev/base/tulm.fdd
+2023/09/13 | 12005 | macros/latex-dev/required/amsmath/technote.tex
+2023/09/13 | 1165076 | systems/texlive/tlnet/archive/hyperxmp.doc.r68251.tar.xz
+2023/09/13 | 1154 | fonts/inconsolata-nerd-font/CHANGELOG.md
+2023/09/13 | 11463 | macros/latex-dev/base/manifest.txt
+2023/09/13 | 114132 | systems/texlive/tlnet/archive/texlive-scripts.r68247.tar.xz
+2023/09/13 | 11398 | macros/latex-dev/required/amsmath/amstext.dtx
+2023/09/13 | 11358 | support/latexindent/LatexIndent/FileContents.pm
+2023/09/13 | 113560 | macros/latex-dev/required/amsmath/amsxtra.pdf
+2023/09/13 | 113021 | macros/latex/contrib/l3build/l3build.dtx
+2023/09/13 | 11284 | macros/latex-dev/required/amsmath/amscd.dtx
+2023/09/13 | 112208 | macros/latex-dev/base/ltnews11.pdf
+2023/09/13 | 11206 | support/latexindent/LatexIndent/Heading.pm
+2023/09/13 | 11105 | macros/latex/contrib/l3build/l3build-install.lua
+2023/09/13 | 1103304 | systems/texlive/tlnet/archive/tex4ht.r68260.tar.xz
+2023/09/13 | 1101 | support/runtexshebang/LICENSE
+2023/09/13 | 109733 | macros/latex-dev/required/amsmath/subeqn.pdf
+2023/09/13 | 108223 | macros/latex-dev/base/fntguide.tex
+2023/09/13 | 107 | macros/latex-dev/base/ltproperties-code.tex
+2023/09/13 | 10798 | macros/latex-dev/base/ltnews26.tex
+2023/09/13 | 10792 | macros/latex-dev/base/ltnews22.tex
+2023/09/13 | 10791 | macros/latex-dev/base/ltnews23.tex
+2023/09/13 | 10786 | macros/latex/contrib/l3build/l3build-manifest-setup.lua
+2023/09/13 | 10764 | systems/texlive/tlnet/archive/mitthesis.r68253.tar.xz
+2023/09/13 | 1075811 | macros/latex-dev/base/doc-code.pdf
+2023/09/13 | 107474 | macros/luatex/latex/lua-typo/doc/lua-typo-fr.pdf
+2023/09/13 | 106904 | macros/latex-dev/base/inputenc.dtx
+2023/09/13 | 10648 | support/latexindent/LatexIndent/Command.pm
+2023/09/13 | 10601 | macros/latex-dev/base/makeindx.dtx
+2023/09/13 | 105 | macros/latex-dev/base/ltfilehook-code.tex
+2023/09/13 | 104 | macros/latex-dev/base/ltsockets-code.tex
+2023/09/13 | 104 | macros/latex-dev/base/ltshipout-code.tex
+2023/09/13 | 104792 | macros/latex-dev/required/amsmath/amsldoc.tex
+2023/09/13 | 103 | macros/latex-dev/base/ltcmdhooks-code.tex
+2023/09/13 | 10370 | macros/latex-dev/base/ltfsscmp.dtx
+2023/09/13 | 102 | macros/latex-dev/base/ltmarks-code.tex
+2023/09/13 | 102 | macros/latex-dev/base/lthooks-code.tex
+2023/09/13 | 10251 | macros/latex-dev/base/webcomp.err
+2023/09/13 | 1024932 | systems/texlive/tlnet/archive/babel.doc.r68258.tar.xz
+2023/09/13 | 10246 | fonts/parsimatn/parsimatn-example-of-use.tex
+2023/09/13 | 1019 | macros/latex/contrib/l3build/README.md
+2023/09/13 | 10199 | macros/latex-dev/required/amsmath/amsopn.dtx
+2023/09/13 | 10088 | systems/texlive/tlnet/archive/minted.r68252.tar.xz
2023/09/12 | 988939 | macros/latex/required/babel/base/locale.zip
2023/09/12 | 972 | macros/latex/contrib/minted/minted.ins
2023/09/12 | 9528 | macros/latex/contrib/se2thesis/se2fonts.dtx
@@ -13,10 +540,9 @@
2023/09/12 | 80082 | language/greek/greek-fontenc/lgrenc.def.html
2023/09/12 | 780659 | macros/latex/required/babel/base/babel.dtx
2023/09/12 | 77573 | language/greek/greek-fontenc/test-tuenc-greek.pdf
-2023/09/12 | 766 | fonts/inconsolata-nerd-font/CHANGELOG.md
2023/09/12 | 75790 | language/greek/greek-fontenc/tuenc-greek.def.html
+2023/09/12 | 7363 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
2023/09/12 | 734 | macros/latex/contrib/mitthesis/MIT-thesis-template/fontsets/mitthesis-defaultfonts.tex
-2023/09/12 | 71967 | fonts/inconsolata-nerd-font/inconsolata-nerd-font.pdf
2023/09/12 | 712 | macros/latex/contrib/minted/README
2023/09/12 | 70276 | systems/texlive/tlnet/archive/newpax.doc.r68242.tar.xz
2023/09/12 | 70228 | language/greek/greek-fontenc/char-list.tex
@@ -26,11 +552,9 @@
2023/09/12 | 64260 | systems/texlive/tlnet/archive/mathfont.source.r68241.tar.xz
2023/09/12 | 634915 | macros/latex/required/babel/base/babel-code.pdf
2023/09/12 | 625 | language/greek/greek-fontenc/greek-euenc.def
-2023/09/12 | 6231088 | fonts/inconsolata-nerd-font.zip
-2023/09/12 | 614 | fonts/inconsolata-nerd-font/README.md
+2023/09/12 | 625862 | support/TeX4ht/source/tex4ht-html4.tex
2023/09/12 | 5934 | macros/latex/contrib/mitthesis/README.md
2023/09/12 | 57770 | language/greek/greek-fontenc/greek-fontenc.def.html
-2023/09/12 | 5740216 | systems/texlive/tlnet/install-tl-unx.tar.gz
2023/09/12 | 57292 | language/greek/greek-fontenc/char-list-alphabeta-tu.pdf
2023/09/12 | 57160 | macros/latex/contrib/se2thesis/se2thesis.dtx
2023/09/12 | 5683 | macros/latex/contrib/mitthesis/MIT-thesis-template/fontsets/mitthesis-lucida.tex
@@ -42,25 +566,16 @@
2023/09/12 | 50169 | language/greek/greek-fontenc/puenc-greek.def.html
2023/09/12 | 4998 | macros/latex/contrib/se2thesis/CHANGELOG.md
2023/09/12 | 491030 | macros/latex/contrib/mitthesis/MIT-Thesis.pdf
-2023/09/12 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
-2023/09/12 | 488 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
-2023/09/12 | 488 | systems/texlive/tlnet/install-tl.zip.sha512.asc
-2023/09/12 | 488 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
-2023/09/12 | 488 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
2023/09/12 | 484229 | language/greek/greek-fontenc/char-list.pdf
2023/09/12 | 468693 | language/greek/greek-fontenc/textalpha-doc.pdf
2023/09/12 | 4574 | language/greek/greek-fontenc/lgr2licr.lua
2023/09/12 | 44064 | language/greek/greek-fontenc/lgrenc.def
2023/09/12 | 44033 | support/pdfjam/bin/pdfjam
-2023/09/12 | 4394 | fonts/inconsolata-nerd-font/OFL.txt
-2023/09/12 | 429464 | systems/texlive/tlnet/archive/texlive-scripts.doc.r68236.tar.xz
-2023/09/12 | 4112325 | biblio/ctan-bibdata.zip
2023/09/12 | 407929 | language/greek/greek-fontenc/hyperref-with-greek.pdf
2023/09/12 | 407370 | macros/latex/required/babel/base/babel.pdf
2023/09/12 | 40477 | language/greek/greek-fontenc/tuenc-greek.def
2023/09/12 | 4015 | support/pdfjam/pdfjam.conf
2023/09/12 | 39414 | language/greek/greek-fontenc/alphabeta-doc.tex
-2023/09/12 | 3710556 | biblio/ctan-bibdata/ctan.pdf
2023/09/12 | 365264 | language/greek/greek-fontenc/test-lgrenc.pdf
2023/09/12 | 3625667 | macros/latex/contrib/mitthesis.zip
2023/09/12 | 360224 | language/greek/greek-fontenc/char-list-alphabeta.pdf
@@ -79,43 +594,31 @@
2023/09/12 | 29406 | macros/latex/contrib/mitthesis/mitthesis-doc/mitthesis-doc.tex
2023/09/12 | 293324 | systems/texlive/tlnet/archive/nodetree.doc.r68244.tar.xz
2023/09/12 | 2827 | macros/latex/contrib/mitthesis/MIT-thesis-template/mydesign.tex
-2023/09/12 | 2812617 | biblio/ctan-bibdata/ctan.bib
2023/09/12 | 26921 | macros/latex/contrib/se2thesis/se2packages.dtx
2023/09/12 | 26758 | language/greek/greek-fontenc/greek-fontenc.def
2023/09/12 | 26371 | language/greek/greek-fontenc/puenc-greek.def
-2023/09/12 | 26028654 | systems/texlive/tlnet/install-tl.zip
2023/09/12 | 25952 | language/greek/greek-fontenc/lgr2licr.lua.html
2023/09/12 | 25173 | language/greek/greek-fontenc/greek-fontenc-doc.rst
2023/09/12 | 2496 | macros/latex/contrib/mitthesis/MIT-thesis-template/fontsets/mitthesis-termes.tex
-2023/09/12 | 2474272 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
2023/09/12 | 2463572 | macros/latex/contrib/se2thesis.zip
2023/09/12 | 23977 | language/greek/greek-fontenc/textalpha.sty
2023/09/12 | 2395 | macros/latex/contrib/mitthesis/MIT-thesis-template/fontsets/mitthesis-libertine.tex
2023/09/12 | 2377 | macros/latex/contrib/mitthesis/MIT-thesis-template/fontsets/mitthesis-stix2.tex
2023/09/12 | 23676 | systems/texlive/tlnet/archive/luatexko.r68243.tar.xz
+2023/09/12 | 230515 | support/TeX4ht/source/ChangeLog
2023/09/12 | 2289 | macros/latex/required/babel/base/README.md
2023/09/12 | 2236377 | macros/latex/required/babel/base.zip
-2023/09/12 | 2227 | fonts/inconsolata-nerd-font/inconsolata-nerd-font.ins
2023/09/12 | 21890 | macros/latex/required/babel/base/bbcompat.dtx
2023/09/12 | 21876 | systems/texlive/tlnet/archive/mathfont.r68241.tar.xz
2023/09/12 | 21365 | language/greek/greek-fontenc/test-tuenc-greek.tex
-2023/09/12 | 21038096 | systems/texlive/tlnet/install-tl-windows.exe
2023/09/12 | 209755 | macros/latex/contrib/minted/minted.dtx
2023/09/12 | 20436 | language/greek/greek-fontenc/textalpha-doc.tex
2023/09/12 | 20219 | language/greek/greek-fontenc/test-luainputenc.tex
2023/09/12 | 19 | support/pdfjam/VERSION
2023/09/12 | 19358 | language/greek/greek-fontenc/test-lgrenc.tex
2023/09/12 | 19106 | macros/latex/contrib/se2thesis/LICENSE.txt
-2023/09/12 | 19106 | fonts/inconsolata-nerd-font/LICENSE.txt
-2023/09/12 | 1899896 | fonts/inconsolata-nerd-font/InconsolataNerdFont-Bold.ttf
-2023/09/12 | 1899844 | fonts/inconsolata-nerd-font/InconsolataNerdFontPropo-Bold.ttf
-2023/09/12 | 1899308 | fonts/inconsolata-nerd-font/InconsolataNerdFont-Regular.ttf
-2023/09/12 | 1899256 | fonts/inconsolata-nerd-font/InconsolataNerdFontPropo-Regular.ttf
2023/09/12 | 1894 | macros/latex/contrib/se2thesis/test.tex
-2023/09/12 | 1846340 | fonts/inconsolata-nerd-font/InconsolataNerdFontMono-Bold.ttf
-2023/09/12 | 1845752 | fonts/inconsolata-nerd-font/InconsolataNerdFontMono-Regular.ttf
2023/09/12 | 18342 | language/greek/greek-fontenc/hyperref-with-greek.tex
-2023/09/12 | 18254944 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
2023/09/12 | 180054 | language/greek/greek-fontenc/alphabeta-doc-tu.pdf
2023/09/12 | 17992 | support/pdfjam/COPYING
2023/09/12 | 178639 | support/pdfjam.zip
@@ -123,79 +626,260 @@
2023/09/12 | 17768 | support/pdfjam/README.md
2023/09/12 | 1742 | language/greek/greek-fontenc/README.md
2023/09/12 | 1713 | support/pdfjam/man1/pdfjam.1
-2023/09/12 | 1678 | biblio/ctan-bibdata/biblatex-ctan/ctan.bbx
2023/09/12 | 1612 | systems/texlive/tlnet/archive/collection-pictures.r68239.tar.xz
2023/09/12 | 1543 | macros/latex/contrib/se2thesis/se2thesis-master-thesis-example.tex
-2023/09/12 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
-2023/09/12 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
2023/09/12 | 148378 | support/pdfjam/tests.zip
-2023/09/12 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
-2023/09/12 | 1453472 | systems/texlive/tlnet/archive/tex4ht.source.r68245.tar.xz
-2023/09/12 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
2023/09/12 | 1426620 | systems/texlive/tlnet/archive/biblatex-gb7714-2015.doc.r68240.tar.xz
-2023/09/12 | 136384 | systems/texlive/tlnet/archive/tex4ht.doc.r68245.tar.xz
2023/09/12 | 1349079 | macros/latex/contrib/hyperxmp.zip
2023/09/12 | 12815 | macros/latex/contrib/se2thesis/se2colors.dtx
-2023/09/12 | 12715 | fonts/inconsolata-nerd-font/inconsolata-nerd-font.dtx
2023/09/12 | 126 | macros/latex/contrib/minted/DEPENDS.txt
2023/09/12 | 117921 | language/greek/greek-fontenc/test-luainputenc.pdf
2023/09/12 | 11691 | macros/latex/contrib/mitthesis/MIT-thesis-template/MIT-Thesis.tex
2023/09/12 | 1152 | macros/latex/contrib/se2thesis/README.md
-2023/09/12 | 114076 | systems/texlive/tlnet/archive/texlive-scripts.r68236.tar.xz
2023/09/12 | 1139 | macros/latex/contrib/mitthesis/MIT-thesis-template/fontsets/mitthesis-newtx-sans-text.tex
2023/09/12 | 1118 | macros/latex/contrib/mitthesis/MIT-thesis-template/fontsets/mitthesis-fira-newtxsf.tex
-2023/09/12 | 1103176 | systems/texlive/tlnet/archive/tex4ht.r68245.tar.xz
2023/09/12 | 1102663 | macros/latex/contrib/se2thesis/test.pdf
2023/09/12 | 1101796 | macros/latex/contrib/se2thesis/se2thesis-master-thesis-example.pdf
2023/09/12 | 10832 | systems/texlive/tlnet/archive/newpax.source.r68242.tar.xz
2023/09/12 | 1042 | macros/latex/contrib/mitthesis/MIT-thesis-template/fontsets/mitthesis-newtx.tex
+2023/09/11 | 991 | graphics/circuit_macros/examples/Byte.m4
2023/09/11 | 988 | systems/texlive/tlnet/archive/collection-binextra.r68232.tar.xz
+2023/09/11 | 988 | graphics/circuit_macros/examples/dpv/VariableDPV.m4
+2023/09/11 | 9869 | graphics/circuit_macros/examples/tubedefs.m4
+2023/09/11 | 981 | graphics/circuit_macros/doc/EmarrowsMan.m4
+2023/09/11 | 980 | graphics/circuit_macros/examples/extras/Cylinder.m4
2023/09/11 | 979 | macros/latex/contrib/hyperxmp/hyperxmp-add-bytecount.1
+2023/09/11 | 977 | graphics/circuit_macros/examples/Emarrows.m4
+2023/09/11 | 970 | graphics/circuit_macros/examples/extras/Bridge.m4
+2023/09/11 | 970 | graphics/circuit_macros/doc/Flowdiag.m4
2023/09/11 | 967104 | macros/latex/contrib/mathfont.zip
2023/09/11 | 96703 | macros/latex/contrib/spreadtab/spreadtab-en.tex
+2023/09/11 | 966 | graphics/circuit_macros/examples/dpv/ex15DPV.m4
+2023/09/11 | 953 | graphics/circuit_macros/examples/extras/squiggle.m4
+2023/09/11 | 95345 | graphics/circuit_macros/libgen.m4
+2023/09/11 | 95150 | graphics/circuit_macros/examples/mf/cct.mf
2023/09/11 | 9502 | macros/luatex/generic/luatexko/ChangeLog
+2023/09/11 | 947 | graphics/circuit_macros/examples/dpv/QuantumDPV.m4
+2023/09/11 | 944 | graphics/circuit_macros/doc/VariableMan.m4
+2023/09/11 | 937 | graphics/circuit_macros/examples/dpv/ByteDPV.m4
+2023/09/11 | 932 | graphics/circuit_macros/examples/Variable.m4
+2023/09/11 | 918 | graphics/circuit_macros/examples/Quantum.m4
+2023/09/11 | 917 | graphics/circuit_macros/examples/extras/birds.m4
2023/09/11 | 915 | macros/latex/contrib/newpax/doc-use-pax.tex
+2023/09/11 | 901 | graphics/circuit_macros/examples/dpv/quickDPV.m4
2023/09/11 | 896 | macros/latex/contrib/newpax/doc-input2.tex
2023/09/11 | 890 | macros/latex/contrib/photobook/scripts/make-spreads.cfg.example
+2023/09/11 | 8819 | graphics/circuit_macros/examples/Smithchart.m4
+2023/09/11 | 8810 | graphics/circuit_macros/examples/dpv/SmithchartDPV.m4
+2023/09/11 | 865 | graphics/circuit_macros/examples/ex18.m4
2023/09/11 | 855 | macros/latex/contrib/newpax/README.md
+2023/09/11 | 855 | graphics/circuit_macros/examples/dpv/ex03DPV.m4
+2023/09/11 | 8517 | graphics/circuit_macros/examples/dpv/expDPV.m4
2023/09/11 | 84682 | macros/latex/contrib/mathfont/mathfont_example_kelvinch.pdf
+2023/09/11 | 8372 | graphics/circuit_macros/examples/exp.m4
+2023/09/11 | 835 | graphics/circuit_macros/doc/Opto.m4
+2023/09/11 | 831 | graphics/circuit_macros/doc/GroundsMan.m4
+2023/09/11 | 828 | graphics/circuit_macros/examples/Grounds.m4
+2023/09/11 | 810 | graphics/circuit_macros/examples/dpv/GroundsDPV.m4
2023/09/11 | 81041 | macros/latex/contrib/newpax/doc-use-newpax.pdf
+2023/09/11 | 801 | graphics/circuit_macros/doc/Potentiometers.m4
+2023/09/11 | 8006 | graphics/circuit_macros/examples/dpv/controlDPV.m4
+2023/09/11 | 793 | graphics/circuit_macros/examples/dpv/CountingDPV.m4
+2023/09/11 | 784 | graphics/circuit_macros/doc/MoreTableMan.m4
+2023/09/11 | 783 | graphics/circuit_macros/doc/Oblique.m4
+2023/09/11 | 7823 | graphics/circuit_macros/examples/extras/Clocks.m4
2023/09/11 | 7815 | macros/latex/contrib/hyperxmp/hyperxmp-add-bytecount.pl
+2023/09/11 | 7778 | graphics/circuit_macros/examples/dpv/cscDPV.m4
2023/09/11 | 77679 | macros/latex/contrib/hyperxmp/einstein2.pdf
+2023/09/11 | 774 | graphics/circuit_macros/examples/quick.m4
+2023/09/11 | 774 | graphics/circuit_macros/doc/quick.m4
+2023/09/11 | 7734 | graphics/circuit_macros/examples/csc.m4
+2023/09/11 | 772 | graphics/circuit_macros/examples/Incleps.m4
+2023/09/11 | 771 | graphics/circuit_macros/examples/extras/Attention.m4
+2023/09/11 | 7708 | graphics/circuit_macros/examples/shapes.m4
+2023/09/11 | 765 | graphics/circuit_macros/examples/extras/FieldLines.m4
+2023/09/11 | 764 | graphics/circuit_macros/examples/mf/cct.tfm
2023/09/11 | 76030 | fonts/khatalmaqala/sample-of-khatalmaqala.pdf
+2023/09/11 | 758 | graphics/circuit_macros/examples/dpv/Np.m4
+2023/09/11 | 7583 | graphics/circuit_macros/examples/extras/Chuck.m4
2023/09/11 | 75748 | macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/README.md
+2023/09/11 | 7546 | graphics/circuit_macros/examples/dpv/RectifiersDPV.m4
+2023/09/11 | 749 | graphics/circuit_macros/examples/mpost/README-mpost
+2023/09/11 | 7494 | graphics/circuit_macros/examples/dpv/shapesDPV.m4
+2023/09/11 | 747 | graphics/circuit_macros/examples/extras/SampleFlow.m4
+2023/09/11 | 745 | graphics/circuit_macros/examples/dpv/DecoderDPV.m4
+2023/09/11 | 7418 | graphics/circuit_macros/examples/dpv/CsourceDPV.m4
2023/09/11 | 73858 | macros/luatex/generic/luatexko/luatexko.lua
+2023/09/11 | 7363 | graphics/circuit_macros/doc/SLDsMan.m4
2023/09/11 | 731873 | macros/latex/contrib/spreadtab.zip
-2023/09/11 | 72808 | systems/texlive/tlnet/archive/inconsolata-nerd-font.doc.r68231.tar.xz
-2023/09/11 | 7106 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
+2023/09/11 | 724 | graphics/circuit_macros/examples/extras/README_extras
+2023/09/11 | 724 | graphics/circuit_macros/examples/Connectors.m4
+2023/09/11 | 7203 | graphics/circuit_macros/examples/dpv/lcctDPV.m4
+2023/09/11 | 715 | graphics/circuit_macros/examples/psfrag/examplespsfrag.tex
+2023/09/11 | 715 | graphics/circuit_macros/examples/dpv/ConnectorsDPV.m4
+2023/09/11 | 7127 | graphics/circuit_macros/examples/lcct.m4
+2023/09/11 | 7112 | graphics/circuit_macros/examples/control.m4
+2023/09/11 | 709 | graphics/circuit_macros/examples/Inclpdf.m4
2023/09/11 | 70830 | macros/latex/contrib/hyperxmp/einstein1.pdf
+2023/09/11 | 706 | graphics/circuit_macros/psfrag.m4
+2023/09/11 | 7006 | graphics/circuit_macros/examples/Rectifiers.m4
+2023/09/11 | 685 | graphics/circuit_macros/examples/mpost/mptest
+2023/09/11 | 6854 | graphics/circuit_macros/examples/dpv/DiniDPV.m4
+2023/09/11 | 6854 | graphics/circuit_macros/examples/Dini.m4
+2023/09/11 | 682 | graphics/circuit_macros/examples/dpv/ujtDPV.m4
+2023/09/11 | 673 | graphics/circuit_macros/examples/ex03.m4
+2023/09/11 | 666 | graphics/circuit_macros/examples/extras/Pipe.m4
+2023/09/11 | 660 | graphics/circuit_macros/examples/ujt.m4
+2023/09/11 | 660 | graphics/circuit_macros/doc/ujtMan.m4
+2023/09/11 | 657 | graphics/circuit_macros/examples/extras/PerpTo.m4
+2023/09/11 | 656 | graphics/circuit_macros/examples/extras/Zcos.m4
+2023/09/11 | 6567 | graphics/circuit_macros/examples/extras/Makefile
+2023/09/11 | 655 | graphics/circuit_macros/examples/Decoder.m4
+2023/09/11 | 654 | graphics/circuit_macros/examples/diamond.m4
+2023/09/11 | 6467 | graphics/circuit_macros/examples/dpv/CanLogicDPV.m4
+2023/09/11 | 645 | graphics/circuit_macros/examples/extras/Floor.m4
2023/09/11 | 6444 | macros/luatex/generic/luatexko/luatexko-normalize.lua
+2023/09/11 | 6425 | graphics/circuit_macros/examples/CanLogic.m4
+2023/09/11 | 63 | graphics/circuit_macros/examples/dpv/local_init.m4
+2023/09/11 | 6285 | graphics/circuit_macros/examples/dpv/EscherDPV.m4
+2023/09/11 | 6282 | graphics/circuit_macros/examples/Escher.m4
+2023/09/11 | 6270 | graphics/circuit_macros/examples/ASME_Y14-5.m4def
+2023/09/11 | 6254 | graphics/circuit_macros/examples/Plate.m4
+2023/09/11 | 6216 | graphics/circuit_macros/examples/dpv/LgateDPV.m4
+2023/09/11 | 6156 | graphics/circuit_macros/examples/dpv/PlateDPV.m4
+2023/09/11 | 614 | graphics/circuit_macros/doc/BigResistor.m4
+2023/09/11 | 6130 | graphics/circuit_macros/examples/dpv/Makefile
+2023/09/11 | 609 | graphics/circuit_macros/examples/dpv/README_svg
+2023/09/11 | 609 | graphics/circuit_macros/examples/dpv/diamondDPV.m4
+2023/09/11 | 6003 | graphics/circuit_macros/examples/extras/CSlight.m4
+2023/09/11 | 5969 | graphics/circuit_macros/examples/xfig/xfiglib.m4
+2023/09/11 | 591 | graphics/circuit_macros/examples/test.m4
+2023/09/11 | 5889 | graphics/circuit_macros/examples/Csource.m4
2023/09/11 | 587 | graphics/pgf/contrib/papiergurvan/README.md
+2023/09/11 | 577 | graphics/circuit_macros/doc/QTrans.m4
+2023/09/11 | 5730 | graphics/circuit_macros/examples/extras/Planes.m4
+2023/09/11 | 56 | graphics/circuit_macros/doc/opampex.m4
+2023/09/11 | 563 | graphics/circuit_macros/examples/dpv/RotboxDPV.m4
+2023/09/11 | 560 | graphics/circuit_macros/doc/heaterMan.m4
+2023/09/11 | 558 | graphics/circuit_macros/examples/extras/hsv.m4
+2023/09/11 | 557 | graphics/circuit_macros/examples/heater.m4
+2023/09/11 | 555 | graphics/circuit_macros/examples/dpv/FontsDPV.m4
+2023/09/11 | 551 | graphics/circuit_macros/examples/extras/Counting.m4
2023/09/11 | 551699 | graphics/pgf/contrib/papiergurvan.zip
+2023/09/11 | 5486 | graphics/circuit_macros/examples/graysurf.m4
+2023/09/11 | 5485 | graphics/circuit_macros/examples/rose.m4
+2023/09/11 | 5485 | graphics/circuit_macros/examples/dpv/roseDPV.m4
+2023/09/11 | 5469 | graphics/circuit_macros/examples/dpv/graysurfDPV.m4
2023/09/11 | 54396 | macros/latex/contrib/mathfont/mathfont_example_roboto.pdf
2023/09/11 | 5407 | macros/latex/contrib/mathfont/README.txt
+2023/09/11 | 538 | graphics/circuit_macros/examples/dpv/AmpTableDPV.m4
+2023/09/11 | 5365 | graphics/circuit_macros/examples/dpv/fetDPV.m4
+2023/09/11 | 535 | graphics/circuit_macros/doc/Tline.m4
2023/09/11 | 5348 | fonts/khatalmaqala/OFL.txt
+2023/09/11 | 533 | graphics/circuit_macros/examples/Rotbox.m4
+2023/09/11 | 532 | graphics/circuit_macros/examples/dpv/NLGDPV.m4
+2023/09/11 | 5315 | graphics/circuit_macros/doc/fetMan.m4
+2023/09/11 | 5311 | graphics/circuit_macros/examples/fet.m4
+2023/09/11 | 5228 | graphics/circuit_macros/examples/dpv/GeometryDPV.m4
+2023/09/11 | 520 | graphics/circuit_macros/examples/extras/Koch.m4
+2023/09/11 | 5174 | graphics/circuit_macros/examples/dpv/FlowDPV.m4
2023/09/11 | 51361 | macros/latex/contrib/mathfont/mathfont_example_cormorant.pdf
+2023/09/11 | 5132 | graphics/circuit_macros/examples/dpv/SwitchesDPV.m4
+2023/09/11 | 50 | graphics/circuit_macros/doc/bitr.m4
+2023/09/11 | 5095 | graphics/circuit_macros/doc/Makefile
+2023/09/11 | 5093 | graphics/circuit_macros/examples/Geometry.m4
+2023/09/11 | 499 | graphics/circuit_macros/examples/NLG.m4
+2023/09/11 | 499 | graphics/circuit_macros/doc/NLGMan.m4
+2023/09/11 | 497 | graphics/circuit_macros/examples/mpost/examplesmpost.tex
+2023/09/11 | 494 | graphics/circuit_macros/examples/AmpTable.m4
+2023/09/11 | 494 | graphics/circuit_macros/doc/AmpTableMan.m4
+2023/09/11 | 4885 | graphics/circuit_macros/examples/EEP.m4
+2023/09/11 | 483 | graphics/circuit_macros/doc/eboxdims.m4
+2023/09/11 | 48258 | graphics/circuit_macros/liblog.m4
2023/09/11 | 481263 | graphics/pgf/contrib/papiergurvan/doc/PapierGurvan-doc-fr.pdf
+2023/09/11 | 4792 | graphics/circuit_macros/examples/Flow.m4
+2023/09/11 | 4784 | graphics/circuit_macros/examples/psfrag/Makefile
+2023/09/11 | 4782 | graphics/circuit_macros/examples/Switches.m4
+2023/09/11 | 4780 | graphics/circuit_macros/doc/SwitchesMan.m4
+2023/09/11 | 475 | graphics/circuit_macros/examples/extras/Wheel.m4
+2023/09/11 | 4757 | graphics/circuit_macros/examples/dpv/EEPDPV.m4
+2023/09/11 | 4748 | graphics/circuit_macros/examples/dpv/sfgDPV.m4
2023/09/11 | 47469 | macros/latex/contrib/mathfont/mathfont_example_typey.pdf
+2023/09/11 | 4661 | graphics/circuit_macros/examples/extras/Shadow.m4
+2023/09/11 | 464 | graphics/circuit_macros/examples/tsttikz.tex
2023/09/11 | 46498 | support/TeX4ht/source/tex4ht-mkht.tex
+2023/09/11 | 4638 | graphics/circuit_macros/examples/Ball.m4
2023/09/11 | 462 | macros/latex/contrib/photobook/DEPENDS.txt
+2023/09/11 | 462 | graphics/circuit_macros/Copying
+2023/09/11 | 4615 | graphics/circuit_macros/examples/mf/font.m4
+2023/09/11 | 460 | graphics/circuit_macros/examples/debug1.tex
2023/09/11 | 45968 | macros/latex/contrib/newpax/newpax.dtx
+2023/09/11 | 455 | graphics/circuit_macros/doc/sampleIC.m4
+2023/09/11 | 45323 | graphics/circuit_macros/examples/Incl.eps.gz
+2023/09/11 | 4502 | graphics/circuit_macros/examples/mpost/Makefile
+2023/09/11 | 4501 | graphics/circuit_macros/examples/extras/Lyap.m4
+2023/09/11 | 449 | graphics/circuit_macros/examples/extras/Wheat.m4
+2023/09/11 | 449 | graphics/circuit_macros/doc/woodchips.m4
2023/09/11 | 44968 | macros/latex/contrib/newpax/doc-use-pax.pdf
+2023/09/11 | 4475 | graphics/circuit_macros/doc/Circuit_macros.bib
+2023/09/11 | 4376 | graphics/circuit_macros/examples/dpv/slddiagsDPV.m4
+2023/09/11 | 4340 | graphics/circuit_macros/examples/dpv/AlogixDPV.m4
+2023/09/11 | 4313 | graphics/circuit_macros/examples/ex09.m4
+2023/09/11 | 4292 | graphics/circuit_macros/examples/dpv/InclepsDPV.m4
+2023/09/11 | 4292 | graphics/circuit_macros/examples/dpv/BtreeDPV.m4
2023/09/11 | 42807 | macros/latex/contrib/newpax/doc-input1.pdf
2023/09/11 | 42518 | macros/latex/contrib/newpax/doc-input2.pdf
+2023/09/11 | 421 | graphics/circuit_macros/doc/Sinus.m4
+2023/09/11 | 419 | graphics/circuit_macros/examples/Sixpole.m4
+2023/09/11 | 419 | graphics/circuit_macros/examples/dpv/SixpoleDPV.m4
+2023/09/11 | 418 | graphics/circuit_macros/examples/mpost/tstmpost.tex
+2023/09/11 | 417 | graphics/circuit_macros/examples/dpv/SQUIDDPV.m4
2023/09/11 | 4172 | macros/latex/contrib/photobook/scripts/cls2tex.sh
+2023/09/11 | 416 | graphics/circuit_macros/examples/testpdf.tex
2023/09/11 | 416064 | fonts/khatalmaqala.zip
+2023/09/11 | 4153 | graphics/circuit_macros/examples/Alogix.m4
2023/09/11 | 41499 | macros/latex/contrib/mitthesis/mitthesis.cls
-2023/09/11 | 4000 | systems/texlive/tlnet/archive/inconsolata-nerd-font.source.r68231.tar.xz
+2023/09/11 | 41403 | graphics/circuit_macros/examples/Lettering.m4def
+2023/09/11 | 4119 | graphics/circuit_macros/examples/dpv/ex09DPV.m4
+2023/09/11 | 4114 | graphics/circuit_macros/examples/extras/brace.m4
+2023/09/11 | 410 | graphics/circuit_macros/examples/extras/RandomNodes.m4
+2023/09/11 | 409 | graphics/circuit_macros/examples/tst.tex
+2023/09/11 | 404 | graphics/circuit_macros/doc/Series.m4
+2023/09/11 | 4002 | graphics/circuit_macros/examples/extras/Euro.m4
+2023/09/11 | 3954 | graphics/circuit_macros/examples/PushPull.m4
+2023/09/11 | 3949 | graphics/circuit_macros/examples/sfg.m4
+2023/09/11 | 387 | graphics/circuit_macros/doc/lrarrows.m4
+2023/09/11 | 3848 | graphics/circuit_macros/examples/Mixer.m4
+2023/09/11 | 3825 | graphics/circuit_macros/examples/recycle.m4
+2023/09/11 | 3825 | graphics/circuit_macros/examples/dpv/recycleDPV.m4
+2023/09/11 | 3820 | graphics/circuit_macros/doc/CanLogicMan.tex
+2023/09/11 | 380 | graphics/circuit_macros/examples/SQUID.m4
+2023/09/11 | 3794 | graphics/circuit_macros/INSTALL
2023/09/11 | 3783 | macros/luatex/generic/luatexko/luatexko-uhc2utf8.lua
+2023/09/11 | 3778 | graphics/circuit_macros/examples/dpv/PushPullDPV.m4
2023/09/11 | 377794 | macros/luatex/generic/luatexko.zip
2023/09/11 | 377615 | macros/latex/contrib/mathfont/mathfont_code.pdf
+2023/09/11 | 3756 | graphics/circuit_macros/examples/dpv/randomDPV.m4
+2023/09/11 | 3749 | graphics/circuit_macros/examples/extras/Shaky.m4
+2023/09/11 | 3727 | graphics/circuit_macros/examples/random.m4
2023/09/11 | 3720 | macros/luatex/generic/luatexko/README
+2023/09/11 | 371 | graphics/circuit_macros/examples/psfrag/tstpsfrag.tex
+2023/09/11 | 3710 | graphics/circuit_macros/examples/ex05.m4
2023/09/11 | 3664 | systems/texlive/tlnet/archive/defoldfonts.source.r68234.tar.xz
+2023/09/11 | 365 | graphics/circuit_macros/examples/extras/rotellipse.m4
+2023/09/11 | 3646 | graphics/circuit_macros/examples/dpv/ContactDPV.m4
+2023/09/11 | 3631 | graphics/circuit_macros/examples/dpv/wormDPV.m4
2023/09/11 | 35829 | macros/luatex/generic/luatexko/luatexko-doc.tex
+2023/09/11 | 3567 | graphics/circuit_macros/examples/dpv/ButtonsDPV.m4
+2023/09/11 | 353 | graphics/circuit_macros/examples/windows.m4
+2023/09/11 | 353 | graphics/circuit_macros/examples/dpv/windows.m4
2023/09/11 | 352 | systems/texlive/tlnet/archive/runtexshebang.x86_64-darwinlegacy.r68232.tar.xz
+2023/09/11 | 3522 | graphics/circuit_macros/examples/dpv/ex12DPV.m4
+2023/09/11 | 3509 | graphics/circuit_macros/examples/Buttons.m4
+2023/09/11 | 3489 | graphics/circuit_macros/examples/dpv/MixerDPV.m4
+2023/09/11 | 3473 | graphics/circuit_macros/examples/dpv/MCDPV.m4
2023/09/11 | 3466 | macros/latex/contrib/hyperxmp/gglo-hyxmp.ist
+2023/09/11 | 3464 | graphics/circuit_macros/examples/Contact.m4
2023/09/11 | 346204 | macros/latex/contrib/spreadtab/spreadtab-fr.pdf
2023/09/11 | 344 | systems/texlive/tlnet/archive/runtexshebang.x86_64-solaris.r68232.tar.xz
2023/09/11 | 344 | systems/texlive/tlnet/archive/runtexshebang.x86_64-linux.r68232.tar.xz
@@ -212,64 +896,347 @@
2023/09/11 | 340 | systems/texlive/tlnet/archive/runtexshebang.i386-solaris.r68232.tar.xz
2023/09/11 | 340 | systems/texlive/tlnet/archive/runtexshebang.i386-linux.r68232.tar.xz
2023/09/11 | 339895 | macros/luatex/generic/luatexko/luatexko-doc.pdf
+2023/09/11 | 3390 | graphics/circuit_macros/examples/dpv/ex05DPV.m4
+2023/09/11 | 3388 | graphics/circuit_macros/examples/README-examples
+2023/09/11 | 337 | graphics/circuit_macros/examples/xfig/Makefile
+2023/09/11 | 3346 | graphics/circuit_macros/examples/Windings.m4
+2023/09/11 | 3346 | graphics/circuit_macros/doc/WindingsMan.m4
+2023/09/11 | 3339 | graphics/circuit_macros/examples/ex12.m4
+2023/09/11 | 3326 | graphics/circuit_macros/doc/ContactMan.m4
+2023/09/11 | 3321 | graphics/circuit_macros/examples/thyristor.m4
+2023/09/11 | 3321 | graphics/circuit_macros/doc/thyristorMan.m4
2023/09/11 | 33219 | graphics/pgf/contrib/papiergurvan/doc/PapierGurvan-BelleAllure-A4.pdf
2023/09/11 | 33192 | macros/luatex/generic/luatexko/luatexko.sty
+2023/09/11 | 3310 | graphics/circuit_macros/examples/dpv/thyristorDPV.m4
+2023/09/11 | 32 | graphics/circuit_macros/examples/Incl.eps.bb
+2023/09/11 | 329 | graphics/circuit_macros/doc/FF.m4
+2023/09/11 | 32773 | graphics/circuit_macros/libSLD.m4
2023/09/11 | 327599 | macros/latex/contrib/spreadtab/spreadtab-en.pdf
2023/09/11 | 326006 | macros/latex/contrib/mathfont/mathfont_code.dtx
+2023/09/11 | 3198 | graphics/circuit_macros/examples/Btree.m4
+2023/09/11 | 317 | graphics/circuit_macros/examples/psfrag/README-psfrag.txt
2023/09/11 | 31240 | graphics/pgf/contrib/papiergurvan/doc/PapierGurvan-BelleAllure-A5.pdf
+2023/09/11 | 3091 | graphics/circuit_macros/examples/dpv/TtreeDPV.m4
+2023/09/11 | 3072 | graphics/circuit_macros/examples/extras/OneLine.m4
+2023/09/11 | 30451 | graphics/circuit_macros/examples/dpv/LoglogDPV.m4
+2023/09/11 | 3019 | graphics/circuit_macros/doc/Circuit_macros.tex
+2023/09/11 | 2994 | graphics/circuit_macros/examples/dpv/WindingsDPV.m4
+2023/09/11 | 2989 | graphics/circuit_macros/examples/dpv/AutoencoderDPV.m4
+2023/09/11 | 2986 | graphics/circuit_macros/examples/MC.m4
+2023/09/11 | 29772 | graphics/circuit_macros/examples/Incl.pdf
+2023/09/11 | 295 | graphics/circuit_macros/examples/extras/ShadeSector.m4
+2023/09/11 | 2912 | graphics/circuit_macros/doc/Workflow.m4
+2023/09/11 | 2846 | graphics/circuit_macros/examples/extras/Metamodel.m4
+2023/09/11 | 2834 | graphics/circuit_macros/postscript.m4
+2023/09/11 | 2801 | graphics/circuit_macros/examples/worm.m4
+2023/09/11 | 2777 | graphics/circuit_macros/examples/extras/OpAmpFilter.m4
2023/09/11 | 273661 | macros/latex/contrib/hyperxmp/hyperxmp.dtx
+2023/09/11 | 2720 | graphics/circuit_macros/examples/dpv/AudioDPV.m4
+2023/09/11 | 27105 | graphics/circuit_macros/examples/Consumption.m4
+2023/09/11 | 26 | graphics/circuit_macros/doc/DCsymbol.m4
+2023/09/11 | 26 | graphics/circuit_macros/doc/ACsymbol.m4
+2023/09/11 | 269 | graphics/circuit_macros/doc/Loop.m4
+2023/09/11 | 2685 | graphics/circuit_macros/examples/dpv/ex11DPV.m4
+2023/09/11 | 2634 | graphics/circuit_macros/examples/Audio.m4
+2023/09/11 | 2634 | graphics/circuit_macros/doc/AudioMan.m4
+2023/09/11 | 2629 | graphics/circuit_macros/examples/dpv/ex01DPV.m4
2023/09/11 | 2611 | graphics/pgf/contrib/papiergurvan/doc/PapierGurvan-BelleAllure-A5.tex
2023/09/11 | 2563 | macros/latex/contrib/photobook/README.md
+2023/09/11 | 2562 | graphics/circuit_macros/examples/Crow.m4
+2023/09/11 | 2559 | graphics/circuit_macros/examples/dpv/ex08DPV.m4
+2023/09/11 | 2556 | graphics/circuit_macros/examples/ex08.m4
+2023/09/11 | 2551 | graphics/circuit_macros/examples/dpv/OptoisoDPV.m4
2023/09/11 | 2529 | graphics/pgf/contrib/papiergurvan/doc/PapierGurvan-BelleAllure-A4.tex
+2023/09/11 | 2528 | graphics/circuit_macros/examples/dpv/AdderDPV.m4
+2023/09/11 | 2525 | graphics/circuit_macros/examples/dpv/CrowDPV.m4
+2023/09/11 | 2517 | graphics/circuit_macros/examples/extras/Autoencoder.m4
+2023/09/11 | 25103 | graphics/circuit_macros/examples/dpv/examplesDPVs.htmx
+2023/09/11 | 25098 | graphics/circuit_macros/examples/dpv/examplesDPV.htmx
+2023/09/11 | 245 | graphics/circuit_macros/examples/extras/Ccurve.m4
2023/09/11 | 2448 | systems/texlive/tlnet/archive/runtexshebang.doc.r68232.tar.xz
+2023/09/11 | 2443 | graphics/circuit_macros/examples/dpv/ex00DPV.m4
+2023/09/11 | 2442 | graphics/circuit_macros/examples/Optoiso.m4
+2023/09/11 | 2427 | graphics/circuit_macros/doc/AlogixMan.m4
+2023/09/11 | 2412 | graphics/circuit_macros/examples/ex00.m4
2023/09/11 | 240548 | fonts/khatalmaqala/ttf/khatalmaqala-italic.ttf
+2023/09/11 | 2402 | graphics/circuit_macros/examples/Adder.m4
+2023/09/11 | 2389 | graphics/circuit_macros/doc/Dac.m4
+2023/09/11 | 2385 | graphics/circuit_macros/examples/extras/Highgain.m4
+2023/09/11 | 23704 | graphics/circuit_macros/examples/dpv/UNODPV.m4
2023/09/11 | 236 | macros/latex/contrib/newpax/doc-extract-newpax.tex
+2023/09/11 | 2362 | graphics/circuit_macros/examples/Jack.m4
+2023/09/11 | 2362 | graphics/circuit_macros/doc/JackMan.m4
+2023/09/11 | 2361 | graphics/circuit_macros/examples/ex11.m4
+2023/09/11 | 23618 | graphics/circuit_macros/dpictools.pic
2023/09/11 | 23572 | graphics/pgf/contrib/papiergurvan/doc/PapierGurvan-doc-fr.tex
+2023/09/11 | 2353 | graphics/circuit_macros/doc/ConnMan.m4
+2023/09/11 | 2351 | graphics/circuit_macros/examples/Conn.m4
2023/09/11 | 231 | macros/latex/contrib/newpax/doc-extract-pax.tex
+2023/09/11 | 23171 | graphics/circuit_macros/examples/UNO.m4
2023/09/11 | 2308 | systems/texlive/tlnet/archive/runtexshebang.windows.r68232.tar.xz
2023/09/11 | 230592 | macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/biblatex-gb7714-2015.tex
-2023/09/11 | 230268 | support/TeX4ht/source/ChangeLog
+2023/09/11 | 2304 | graphics/circuit_macros/examples/Loglog.m4
2023/09/11 | 2294 | macros/latex/contrib/hyperxmp/README
+2023/09/11 | 2294 | graphics/circuit_macros/examples/ex01.m4
+2023/09/11 | 2292 | graphics/circuit_macros/examples/dpv/ConnDPV.m4
+2023/09/11 | 2276 | graphics/circuit_macros/examples/Sources.m4
+2023/09/11 | 2276 | graphics/circuit_macros/doc/SourcesMan.m4
+2023/09/11 | 2275 | graphics/circuit_macros/pdf.m4
+2023/09/11 | 221 | graphics/circuit_macros/examples/rotate.tex
2023/09/11 | 2214 | fonts/khatalmaqala/sample-of-khatalmaqala.tex
+2023/09/11 | 219 | graphics/circuit_macros/examples/tst1.tex
+2023/09/11 | 217 | graphics/circuit_macros/doc/stringdims.m4
+2023/09/11 | 2171 | graphics/circuit_macros/examples/dpv/I2LDPV.m4
+2023/09/11 | 2167 | graphics/circuit_macros/examples/extras/Obliq.m4
2023/09/11 | 216131 | macros/latex/contrib/newpax/newpax.pdf
+2023/09/11 | 21424 | graphics/circuit_macros/examples/xfig/xfiglib.fig
+2023/09/11 | 21384 | graphics/circuit_macros/examples/dpv/Incl.jpg
+2023/09/11 | 2119 | graphics/circuit_macros/examples/Logic.m4
+2023/09/11 | 2119 | graphics/circuit_macros/doc/LogicMan.m4
2023/09/11 | 210464 | fonts/khatalmaqala/ttf/khatalmaqala-bolditalic.ttf
+2023/09/11 | 2099 | graphics/circuit_macros/pstricks.m4
+2023/09/11 | 2086 | graphics/circuit_macros/examples/relaycoil.m4
+2023/09/11 | 2086 | graphics/circuit_macros/examples/extras/Eye.m4
+2023/09/11 | 2086 | graphics/circuit_macros/doc/relaycoilMan.m4
+2023/09/11 | 2085 | graphics/circuit_macros/pgf.m4
+2023/09/11 | 2069 | graphics/circuit_macros/examples/dpv/relaycoilDPV.m4
+2023/09/11 | 2068 | graphics/circuit_macros/examples/I2L.m4
+2023/09/11 | 2051 | graphics/circuit_macros/examples/dpv/JackDPV.m4
2023/09/11 | 2034 | macros/latex/contrib/hyperxmp/hyperxmp.ins
+2023/09/11 | 2027 | graphics/circuit_macros/examples/dpv/pwrsupplyDPV.m4
+2023/09/11 | 2022 | graphics/circuit_macros/examples/dpv/SourcesDPV.m4
+2023/09/11 | 2018 | graphics/circuit_macros/examples/dpv/ex06DPV.m4
2023/09/11 | 2016 | systems/texlive/tlnet/archive/collection-fontsextra.r68231.tar.xz
+2023/09/11 | 2014 | graphics/circuit_macros/examples/pwrsupply.m4
+2023/09/11 | 2013 | graphics/circuit_macros/doc/HybridPi.m4
+2023/09/11 | 2000 | graphics/circuit_macros/examples/ex21.m4
+2023/09/11 | 1997 | graphics/circuit_macros/examples/Pconn.m4
+2023/09/11 | 1996 | graphics/circuit_macros/examples/dpv/FourbarDPV.m4
2023/09/11 | 199620 | fonts/khatalmaqala/ttf/khatalmaqala-regular.ttf
+2023/09/11 | 1995 | graphics/circuit_macros/doc/Corners.m4
+2023/09/11 | 1990 | graphics/circuit_macros/examples/extras/Hexagon.m4
+2023/09/11 | 1985 | graphics/circuit_macros/examples/dpv/XORDPV.m4
2023/09/11 | 198572 | systems/texlive/tlnet/archive/defoldfonts.doc.r68234.tar.xz
+2023/09/11 | 1982 | graphics/circuit_macros/doc/PconnMan.m4
+2023/09/11 | 19829 | graphics/circuit_macros/darrow.m4
+2023/09/11 | 19767 | graphics/circuit_macros/examples/files.tex
+2023/09/11 | 1975 | graphics/circuit_macros/doc/FlipFlop.m4
+2023/09/11 | 1966 | graphics/circuit_macros/examples/Drive.m4
+2023/09/11 | 1966 | graphics/circuit_macros/examples/dpv/DriveDPV.m4
2023/09/11 | 196437 | macros/latex/contrib/photobook.zip
+2023/09/11 | 1961 | graphics/circuit_macros/examples/extras/Flow2.m4
+2023/09/11 | 1959 | graphics/circuit_macros/examples/debug2.m4
+2023/09/11 | 1955 | graphics/circuit_macros/examples/dpv/ABlogixDPV.m4
+2023/09/11 | 1953 | graphics/circuit_macros/examples/dpv/MotorControlDPV.m4
+2023/09/11 | 1953 | graphics/circuit_macros/doc/Buffer.m4
+2023/09/11 | 1931 | graphics/circuit_macros/examples/dpv/LogicDPV.m4
+2023/09/11 | 1922 | graphics/circuit_macros/examples/MotorControl.m4
+2023/09/11 | 19176 | graphics/circuit_macros/Licence.txt
+2023/09/11 | 1916 | graphics/circuit_macros/examples/extras/venus.m4
+2023/09/11 | 1906 | graphics/circuit_macros/examples/extras/SPM.m4
+2023/09/11 | 1902836 | graphics/circuit_macros/examples/examples.pdf
2023/09/11 | 1896 | systems/texlive/tlnet/archive/runtexshebang.r68232.tar.xz
+2023/09/11 | 1894 | graphics/circuit_macros/examples/dpv/ArrowFnDPV.m4
+2023/09/11 | 1893 | graphics/circuit_macros/examples/dpv/ex16DPV.m4
+2023/09/11 | 1891 | graphics/circuit_macros/examples/dpv/ex04DPV.m4
+2023/09/11 | 1882 | graphics/circuit_macros/examples/dpv/ex21DPV.m4
+2023/09/11 | 1880 | graphics/circuit_macros/examples/extras/Fefets.m4
+2023/09/11 | 1879 | graphics/circuit_macros/examples/extras/Cruller.m4
+2023/09/11 | 1875 | graphics/circuit_macros/examples/dpv/GrayCodeDPV.m4
+2023/09/11 | 1874 | graphics/circuit_macros/examples/dpv/CrullerDPV.m4
+2023/09/11 | 187334 | graphics/circuit_macros/libcct.m4
+2023/09/11 | 1865 | graphics/circuit_macros/examples/ex16.m4
+2023/09/11 | 1860 | graphics/circuit_macros/doc/bi_trans.m4
+2023/09/11 | 1857 | graphics/circuit_macros/doc/Composite.m4
+2023/09/11 | 1852 | graphics/circuit_macros/examples/extras/Orbits.m4
+2023/09/11 | 1837 | graphics/circuit_macros/examples/dpv/SchottkyDPV.m4
+2023/09/11 | 1823 | graphics/circuit_macros/examples/XOR.m4
+2023/09/11 | 1818 | graphics/circuit_macros/examples/GrayCode.m4
+2023/09/11 | 1812 | graphics/circuit_macros/examples/dpv/BipDPV.m4
2023/09/11 | 181157 | macros/latex/contrib/mathfont/mathfont_symbol_list.pdf
+2023/09/11 | 1795 | graphics/circuit_macros/examples/extras/Stator.m4
+2023/09/11 | 1790 | graphics/circuit_macros/doc/DiodesMan.m4
2023/09/11 | 17894 | macros/latex/contrib/photobook/scripts/make-spreads.sh
+2023/09/11 | 1787 | graphics/circuit_macros/examples/Diodes.m4
+2023/09/11 | 1786 | graphics/circuit_macros/examples/extras/ArrowFn.m4
2023/09/11 | 178497 | macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015.bbx
+2023/09/11 | 1781 | graphics/circuit_macros/examples/dpv/PconnDPV.m4
+2023/09/11 | 1778 | graphics/circuit_macros/examples/Schottky.m4
2023/09/11 | 1777467 | macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015.zip
2023/09/11 | 176983 | macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015ay.bbx
+2023/09/11 | 1766 | graphics/circuit_macros/examples/examples.tex
2023/09/11 | 174723 | macros/latex/contrib/photobook/photobook.cls
2023/09/11 | 1745 | macros/latex/contrib/newpax/newpax.ins
+2023/09/11 | 173 | graphics/circuit_macros/doc/AutologixMan.m4
+2023/09/11 | 1737 | graphics/circuit_macros/examples/dpv/ContactsDPV.m4
+2023/09/11 | 1730 | graphics/circuit_macros/examples/ABlogix.m4
2023/09/11 | 1727093 | macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/biblatex-gb7714-2015.pdf
+2023/09/11 | 1700 | graphics/circuit_macros/examples/ex06.m4
+2023/09/11 | 1700 | graphics/circuit_macros/examples/dpv/EyeDPV.m4
+2023/09/11 | 1699 | graphics/circuit_macros/examples/dpv/ex10DPV.m4
2023/09/11 | 169828 | fonts/khatalmaqala/ttf/khatalmaqala-bold.ttf
2023/09/11 | 16853 | macros/latex/contrib/newpax/newpax.tex
+2023/09/11 | 1668 | graphics/circuit_macros/examples/extras/IC10107.m4
+2023/09/11 | 1668 | graphics/circuit_macros/examples/dpv/Banking.m4
+2023/09/11 | 165 | graphics/circuit_macros/doc/tranbody.m4
+2023/09/11 | 1654 | graphics/circuit_macros/examples/ex04.m4
+2023/09/11 | 1647 | graphics/circuit_macros/examples/dpv/DiodesDPV.m4
+2023/09/11 | 1640 | graphics/circuit_macros/mpost.m4
+2023/09/11 | 1639 | graphics/circuit_macros/Makefile
+2023/09/11 | 1630 | graphics/circuit_macros/examples/dpv/TTLnandDPV.m4
+2023/09/11 | 1626 | graphics/circuit_macros/examples/dpv/ArrestersDPV.m4
+2023/09/11 | 1624 | graphics/circuit_macros/doc/ParSeries.m4
+2023/09/11 | 1619 | graphics/circuit_macros/examples/Bip.m4
+2023/09/11 | 1619 | graphics/circuit_macros/doc/BipMan.m4
+2023/09/11 | 1618 | graphics/circuit_macros/doc/ArrestersMan.m4
+2023/09/11 | 1615 | graphics/circuit_macros/examples/Arresters.m4
+2023/09/11 | 1612 | graphics/circuit_macros/examples/extras/ASMEbox.m4
+2023/09/11 | 1612 | graphics/circuit_macros/examples/dpv/TimerDPV.m4
+2023/09/11 | 15928 | graphics/circuit_macros/README
+2023/09/11 | 1588 | graphics/circuit_macros/examples/MoreTable.m4
+2023/09/11 | 158635 | graphics/circuit_macros/doc/body.tex
+2023/09/11 | 1585 | graphics/circuit_macros/examples/dpv/MoreTableDPV.m4
+2023/09/11 | 1585 | graphics/circuit_macros/examples/Contacts.m4
+2023/09/11 | 1585 | graphics/circuit_macros/doc/ContactsMan.m4
2023/09/11 | 157745 | macros/latex/contrib/newpax.zip
-2023/09/11 | 1573032 | systems/texlive/tlnet/archive/inconsolata-nerd-font.r68231.tar.xz
+2023/09/11 | 1575 | graphics/circuit_macros/doc/mplex.m4
+2023/09/11 | 1559 | graphics/circuit_macros/examples/dpv/XformDPV.m4
+2023/09/11 | 1558 | graphics/circuit_macros/examples/TTLnand.m4
+2023/09/11 | 1546 | graphics/circuit_macros/examples/dpv/Xtest.m4
+2023/09/11 | 1536 | graphics/circuit_macros/doc/XformMan.m4
2023/09/11 | 1534 | fonts/khatalmaqala/README.md
+2023/09/11 | 1529 | graphics/circuit_macros/examples/mf/Makefile
2023/09/11 | 1527 | macros/latex/contrib/photobook/LICENSE
+2023/09/11 | 1526 | graphics/circuit_macros/examples/Xform.m4
+2023/09/11 | 1525 | graphics/circuit_macros/examples/rotatetext.m4
+2023/09/11 | 150 | graphics/circuit_macros/doc/Thermal.m4
+2023/09/11 | 1492 | graphics/circuit_macros/examples/ex10.m4
+2023/09/11 | 1485 | graphics/circuit_macros/examples/Demultiplexer.m4
+2023/09/11 | 1485 | graphics/circuit_macros/doc/DemultiplexerMan.m4
+2023/09/11 | 1471 | graphics/circuit_macros/examples/extras/TR_fill.m4
+2023/09/11 | 1463 | graphics/circuit_macros/doc/Taps.m4
+2023/09/11 | 1458 | graphics/circuit_macros/examples/header.tex
2023/09/11 | 144969 | macros/latex/contrib/photobook/photobook.pdf
2023/09/11 | 14467 | macros/latex/contrib/photobook/scripts/README.md
+2023/09/11 | 1444 | graphics/circuit_macros/examples/dpv/ThreeDPV.m4
+2023/09/11 | 1443 | graphics/circuit_macros/examples/Inductors.m4
+2023/09/11 | 1443 | graphics/circuit_macros/examples/extras/Resolver.m4
+2023/09/11 | 1433 | graphics/circuit_macros/examples/Opamp.m4
+2023/09/11 | 1433 | graphics/circuit_macros/doc/OpampMan.m4
+2023/09/11 | 1431 | graphics/circuit_macros/examples/dpv/RelayDPV.m4
+2023/09/11 | 14265 | graphics/circuit_macros/CHANGES
+2023/09/11 | 1406 | graphics/circuit_macros/examples/ShiftR.m4
+2023/09/11 | 1406 | graphics/circuit_macros/doc/ShiftRMan.m4
+2023/09/11 | 1403 | graphics/circuit_macros/examples/dpv/MultiplexerDPV.m4
+2023/09/11 | 1400 | graphics/circuit_macros/examples/Multiplexer.m4
+2023/09/11 | 1400 | graphics/circuit_macros/doc/MultiplexerMan.m4
+2023/09/11 | 13 | graphics/circuit_macros/doc/Version.tex
+2023/09/11 | 137 | graphics/circuit_macros/doc/opampexbody.m4
+2023/09/11 | 13797 | graphics/circuit_macros/examples/dpv/tstDPV.htmx
+2023/09/11 | 1375 | graphics/circuit_macros/examples/extras/ControlLoop.m4
+2023/09/11 | 1373 | graphics/circuit_macros/examples/extras/person.m4
+2023/09/11 | 1373 | graphics/circuit_macros/examples/dpv/DemultiplexerDPV.m4
2023/09/11 | 1365373 | install/macros/latex/contrib/hyperxmp.tds.zip
2023/09/11 | 1364 | systems/texlive/tlnet/archive/firamath-otf.r68233.tar.xz
+2023/09/11 | 1353 | graphics/circuit_macros/doc/FusesMan.m4
+2023/09/11 | 1343 | graphics/circuit_macros/examples/dpv/InductorsDPV.m4
+2023/09/11 | 1342 | graphics/circuit_macros/doc/InductorsMan.m4
+2023/09/11 | 13420 | graphics/circuit_macros/examples/Heathkit.m4
+2023/09/11 | 1337 | graphics/circuit_macros/examples/Fuses.m4
+2023/09/11 | 1331 | graphics/circuit_macros/examples/Sierpinski.m4
+2023/09/11 | 1331 | graphics/circuit_macros/examples/dpv/SierpinskiDPV.m4
+2023/09/11 | 1329 | graphics/circuit_macros/doc/currents.m4
+2023/09/11 | 13294 | graphics/circuit_macros/examples/Tubediags.m4
2023/09/11 | 13205 | graphics/pgf/contrib/papiergurvan/tex/PapierGurvan.sty
+2023/09/11 | 131 | graphics/circuit_macros/doc/Axes.m4
+2023/09/11 | 1319 | graphics/circuit_macros/doc/SRffMan.m4
+2023/09/11 | 1313 | graphics/circuit_macros/examples/dpv/ShiftRDPV.m4
+2023/09/11 | 130 | graphics/circuit_macros/doc/bitrbody.m4
+2023/09/11 | 1292 | graphics/circuit_macros/doc/ConfigC.m4
2023/09/11 | 1289541 | macros/latex/contrib/hyperxmp/hyperxmp.pdf
+2023/09/11 | 1287 | graphics/circuit_macros/examples/Three.m4
+2023/09/11 | 1279 | graphics/circuit_macros/examples/extras/Star.m4
2023/09/11 | 1277 | macros/latex/contrib/spreadtab/README
+2023/09/11 | 12765 | graphics/circuit_macros/lib3D.m4
+2023/09/11 | 12711 | graphics/circuit_macros/examples/dpv/HeathkitDPV.m4
+2023/09/11 | 1265 | graphics/circuit_macros/examples/dpv/HeadersDPV.m4
+2023/09/11 | 1259 | graphics/circuit_macros/examples/Relay.m4
+2023/09/11 | 1259 | graphics/circuit_macros/doc/RelayMan.m4
+2023/09/11 | 1258 | graphics/circuit_macros/doc/ConfigB.m4
+2023/09/11 | 12478 | graphics/circuit_macros/examples/dpv/TubediagsDPV.m4
2023/09/11 | 124252 | systems/texlive/tlnet/archive/firamath-otf.doc.r68233.tar.xz
+2023/09/11 | 1238 | graphics/circuit_macros/examples/dpv/NportDPV.m4
+2023/09/11 | 1230 | graphics/circuit_macros/examples/dpv/FusesDPV.m4
+2023/09/11 | 1230 | graphics/circuit_macros/examples/Antennas.m4
+2023/09/11 | 1230 | graphics/circuit_macros/doc/AntennasMan.m4
+2023/09/11 | 1229 | graphics/circuit_macros/doc/fbfilter.m4
+2023/09/11 | 1222 | graphics/circuit_macros/examples/Chips.m4
+2023/09/11 | 1217 | graphics/circuit_macros/examples/extras/Egg.m4
+2023/09/11 | 1214 | graphics/circuit_macros/examples/dpv/ChipsDPV.m4
+2023/09/11 | 1204 | graphics/circuit_macros/examples/dpv/ex17DPV.m4
+2023/09/11 | 1201 | graphics/circuit_macros/examples/Capacitors.m4
+2023/09/11 | 11995 | graphics/circuit_macros/svg.m4
+2023/09/11 | 1188 | graphics/circuit_macros/examples/dpv/ResistorsDPV.m4
+2023/09/11 | 1185 | graphics/circuit_macros/boxdims.sty
2023/09/11 | 118518 | macros/latex/contrib/mathfont/mathfont_user_guide.pdf
+2023/09/11 | 1174 | graphics/circuit_macros/examples/extras/PPA.m4
2023/09/11 | 1165034 | support/TeX4ht/source/tex4ht-4ht.tex
+2023/09/11 | 1160 | graphics/circuit_macros/examples/dpv/CapacitorsDPV.m4
+2023/09/11 | 11601 | graphics/circuit_macros/examples/dpv/icsDPV.m4
+2023/09/11 | 1157 | graphics/circuit_macros/examples/dpv/NPDTDPV.m4
+2023/09/11 | 1151 | graphics/circuit_macros/doc/Darlington.m4
+2023/09/11 | 1149 | graphics/circuit_macros/doc/ResistorsMan.m4
+2023/09/11 | 1147 | graphics/circuit_macros/examples/Resistors.m4
+2023/09/11 | 11440 | graphics/circuit_macros/examples/ics.m4
2023/09/11 | 11330 | macros/latex/contrib/hyperxmp/einstein-xmp.tex
+2023/09/11 | 1132 | graphics/circuit_macros/examples/Headers.m4
+2023/09/11 | 1132 | graphics/circuit_macros/doc/HeadersMan.m4
+2023/09/11 | 1129 | graphics/circuit_macros/examples/shadowed.m4
+2023/09/11 | 1128 | graphics/circuit_macros/examples/NPDT.m4
+2023/09/11 | 1128 | graphics/circuit_macros/doc/NPDTMan.m4
+2023/09/11 | 1126 | graphics/circuit_macros/examples/ex17.m4
+2023/09/11 | 11255 | graphics/circuit_macros/examples/FlowchartDefs.m4def
+2023/09/11 | 1121 | graphics/circuit_macros/doc/ConfigA.m4
+2023/09/11 | 111639 | graphics/circuit_macros/doc/defines.tex
+2023/09/11 | 1114 | graphics/circuit_macros/mfpic.m4
+2023/09/11 | 1100 | graphics/circuit_macros/examples/ex02.m4
+2023/09/11 | 1097 | graphics/circuit_macros/examples/extras/Region.m4
2023/09/11 | 1093 | macros/latex/contrib/newpax/doc-use-newpax.tex
+2023/09/11 | 1093 | graphics/circuit_macros/examples/dpv/ex02DPV.m4
+2023/09/11 | 1091 | graphics/circuit_macros/examples/extras/Ant.m4
+2023/09/11 | 1090 | graphics/circuit_macros/examples/dpv/AntennasDPV.m4
+2023/09/11 | 1089 | graphics/circuit_macros/examples/extras/Optics.m4
+2023/09/11 | 10871 | graphics/circuit_macros/examples/dpv/EVplugsDPV.m4
2023/09/11 | 1084 | systems/texlive/tlnet/archive/defoldfonts.r68234.tar.xz
+2023/09/11 | 10836 | graphics/circuit_macros/examples/EVplugs.m4
+2023/09/11 | 1076 | graphics/circuit_macros/examples/mf/mftest
+2023/09/11 | 1075 | graphics/circuit_macros/examples/extras/bistable.m4
+2023/09/11 | 1074 | graphics/circuit_macros/doc/bistableMan.m4
+2023/09/11 | 1071 | graphics/circuit_macros/examples/dpv/EmarrowsDPV.m4
+2023/09/11 | 10699 | graphics/circuit_macros/examples/keyboard.m4
+2023/09/11 | 10699 | graphics/circuit_macros/examples/dpv/keyboardDPV.m4
2023/09/11 | 106609 | macros/latex/contrib/spreadtab/spreadtab-fr.tex
+2023/09/11 | 1065 | graphics/circuit_macros/examples/dpv/ex18DPV.m4
+2023/09/11 | 1063 | graphics/circuit_macros/doc/CapacitorsMan.m4
+2023/09/11 | 1059727 | graphics/circuit_macros/doc/Circuit_macros.pdf
+2023/09/11 | 1055 | graphics/circuit_macros/examples/dpv/TgateDPV.m4
+2023/09/11 | 1050 | graphics/circuit_macros/examples/dpv/DPVconfig.m4
+2023/09/11 | 1040 | graphics/circuit_macros/examples/Nport.m4
+2023/09/11 | 1040 | graphics/circuit_macros/doc/NportMan.m4
+2023/09/11 | 1039 | graphics/circuit_macros/examples/extras/chaos.m4
2023/09/11 | 10389 | macros/latex/contrib/photobook/Makefile
2023/09/11 | 103804 | macros/latex/contrib/spreadtab/spreadtab.sty
+2023/09/11 | 1034 | graphics/circuit_macros/examples/dpv/OpampDPV.m4
+2023/09/11 | 1029 | graphics/circuit_macros/xfig.m4
+2023/09/11 | 10265 | graphics/circuit_macros/examples/extras/Views.m4
+2023/09/11 | 10238 | graphics/circuit_macros/examples/dpv/paletteDPV.m4
+2023/09/11 | 1022 | graphics/circuit_macros/examples/Tgate.m4
+2023/09/11 | 1022 | graphics/circuit_macros/doc/TgateMan.m4
+2023/09/11 | 1019 | graphics/circuit_macros/gpic.m4
+2023/09/11 | 1017 | graphics/circuit_macros/doc/arrowex.m4
+2023/09/11 | 10172 | graphics/circuit_macros/examples/Makefile
2023/09/11 | 1007 | macros/latex/contrib/newpax/doc-input1.tex
+2023/09/11 | 1003 | graphics/circuit_macros/examples/ex15.m4
2023/09/10 | 9818 | usergrps/usergrps/de.html
2023/09/10 | 9818 | systems/win32/miktex/tm/packages/penlightplus.tar.lzma
2023/09/10 | 9764 | usergrps/usergrps/pl.html
@@ -415,9 +1382,7 @@
2023/09/10 | 40147 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma
2023/09/10 | 394913 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma
2023/09/10 | 389755 | systems/win32/miktex/tm/packages/robust-externalize__doc.tar.lzma
-2023/09/10 | 3861 | support/runtexshebang.zip
2023/09/10 | 382 | fonts/plex-otf/Changes
-2023/09/10 | 3806 | support/runtexshebang/README.md
2023/09/10 | 37665 | systems/win32/miktex/tm/packages/proflycee.tar.lzma
2023/09/10 | 37627 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma
2023/09/10 | 36693 | systems/win32/miktex/tm/packages/l3build.tar.lzma
@@ -478,7 +1443,6 @@
2023/09/10 | 22731 | fonts/plex-otf/latex/plex-otf.sty
2023/09/10 | 22714 | systems/win32/miktex/tm/packages/penlight__doc.tar.lzma
2023/09/10 | 2250 | macros/luatex/generic/nodetree/nodetree.ins
-2023/09/10 | 2249 | support/runtexshebang/runtexshebang.lua
2023/09/10 | 22161 | systems/win32/miktex/tm/packages/pst-3dplot.tar.lzma
2023/09/10 | 221074 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma
2023/09/10 | 2204787 | systems/win32/miktex/tm/packages/simpleicons__doc.tar.lzma
@@ -541,7 +1505,6 @@
2023/09/10 | 1150 | systems/win32/miktex/tm/packages/next/pr.ini
2023/09/10 | 11460 | systems/win32/miktex/tm/packages/runcode__source.tar.lzma
2023/09/10 | 112038 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma
-2023/09/10 | 1101 | support/runtexshebang/LICENSE
2023/09/10 | 109803 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma
2023/09/10 | 1095 | systems/win32/miktex/tm/packages/parsinevis__source.tar.lzma
2023/09/10 | 10916 | systems/win32/miktex/tm/packages/mitthesis.tar.lzma
@@ -558,103 +1521,47 @@
2023/09/10 | 101661 | systems/win32/miktex/tm/packages/penlight.tar.lzma
2023/09/10 | 10163 | systems/win32/miktex/tm/packages/arsenal__source.tar.lzma
2023/09/10 | 100153 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma
-2023/09/09 | 9939615 | support/latexindent/bin/windows/latexindent.exe
-2023/09/09 | 9859 | support/latexindent/LatexIndent/Lines.pm
-2023/09/09 | 8893 | support/latexindent/LatexIndent/IfElseFi.pm
-2023/09/09 | 8819 | support/latexindent/LatexIndent/FileExtension.pm
2023/09/09 | 871120 | macros/latex/contrib/ucph-revy.zip
-2023/09/09 | 836 | support/latexindent/LatexIndent/Version.pm
2023/09/09 | 82356 | systems/texlive/tlnet/archive/plex.doc.r68207.tar.xz
-2023/09/09 | 7445 | support/latexindent/LatexIndent/BackUpFileProcedure.pm
2023/09/09 | 74077 | macros/latex/contrib/profmaquette/latex/ProfMaquette.sty
-2023/09/09 | 7379 | support/latexindent/LatexIndent/MandatoryArgument.pm
-2023/09/09 | 7161 | support/latexindent/documentation/figure-schematic.png
2023/09/09 | 6964 | systems/texlive/tlnet/archive/collection-latexextra.r68211.tar.xz
-2023/09/09 | 6953 | support/latexindent/LatexIndent/TrailingComments.pm
2023/09/09 | 6932 | systems/texlive/tlnet/archive/wordcloud.r68209.tar.xz
-2023/09/09 | 6898 | support/latexindent/LatexIndent/Environment.pm
-2023/09/09 | 6890 | support/latexindent/LatexIndent/Item.pm
-2023/09/09 | 68177 | support/latexindent/LatexIndent/AlignmentAtAmpersand.pm
-2023/09/09 | 6664 | support/latexindent/documentation/contributors.bib
-2023/09/09 | 6620 | support/latexindent/LatexIndent/OptionalArgument.pm
-2023/09/09 | 6402551 | support/latexindent/bin/macos/latexindent
-2023/09/09 | 6391 | support/latexindent/LatexIndent/Else.pm
-2023/09/09 | 6173320 | support/latexindent/bin/linux/latexindent
-2023/09/09 | 5857 | support/latexindent/LatexIndent/UnNamedGroupingBracesBrackets.pm
2023/09/09 | 58516 | systems/texlive/tlnet/archive/parsinevis.doc.r68214.tar.xz
-2023/09/09 | 5478 | support/latexindent/LatexIndent/KeyEqualsValuesBraces.pm
-2023/09/09 | 54602 | support/latexindent/LatexIndent/GetYamlSettings.pm
-2023/09/09 | 54383 | support/latexindent/documentation/latexindent-yaml-schema.json
-2023/09/09 | 5432 | support/latexindent/LatexIndent/Check.pm
-2023/09/09 | 4860 | support/latexindent/LatexIndent/BlankLines.pm
2023/09/09 | 476 | fonts/plex-otf/doc/Examples/plex-otf-3.tex
2023/09/09 | 475 | fonts/plex-otf/doc/Examples/plex-otf-1.tex
2023/09/09 | 4750980 | systems/texlive/tlnet/archive/newpx.r68213.tar.xz
2023/09/09 | 474 | graphics/pgf/contrib/tkz-bernoulli/README.md
-2023/09/09 | 464 | systems/texlive/tlnet/archive/collection-langarabic.r68214.tar.xz
2023/09/09 | 448828 | systems/texlive/tlnet/archive/newpx.doc.r68213.tar.xz
-2023/09/09 | 44096 | support/latexindent/documentation/logo.png
-2023/09/09 | 4404 | support/latexindent/LatexIndent/RoundBrackets.pm
-2023/09/09 | 4402 | support/latexindent/documentation/latex-indent.bib
-2023/09/09 | 4388 | support/latexindent/LatexIndent/NamedGroupingBracesBrackets.pm
-2023/09/09 | 438372 | support/latexindent/documentation/latexindent.tex
2023/09/09 | 421028 | macros/latex/contrib/runcode.zip
2023/09/09 | 414 | fonts/plex-otf/doc/Examples/plex-otf-9.tex
2023/09/09 | 406 | fonts/plex-otf/doc/Examples/plex-otf-10.tex
2023/09/09 | 39863 | macros/latex/contrib/profmaquette/doc/profmaquette-doc.tex
2023/09/09 | 392 | systems/texlive/tlnet/archive/newpx.source.r68213.tar.xz
2023/09/09 | 386 | fonts/plex-otf/doc/Examples/plex-otf-7.tex
-2023/09/09 | 3796 | support/latexindent/LatexIndent/Replacement.pm
2023/09/09 | 378 | fonts/plex-otf/doc/Examples/plex-otf-5.tex
2023/09/09 | 366 | fonts/plex-otf/doc/Examples/plex-otf-8.tex
2023/09/09 | 362 | fonts/plex-otf/doc/Examples/plex-otf-6.tex
-2023/09/09 | 3517 | support/latexindent/LatexIndent/HorizontalWhiteSpace.pm
-2023/09/09 | 35149 | support/latexindent/LatexIndent/Wrap.pm
2023/09/09 | 346 | fonts/plex-otf/doc/Examples/plex-otf-11.tex
-2023/09/09 | 3413 | support/latexindent/latexindent.pl
-2023/09/09 | 3353 | support/latexindent/LatexIndent/Tokens.pm
2023/09/09 | 334 | fonts/plex-otf/doc/Examples/plex-otf-2.tex
2023/09/09 | 2985208 | systems/texlive/tlnet/archive/simpleicons.r68208.tar.xz
2023/09/09 | 295 | fonts/plex-otf/doc/Examples/plex-otf-4.tex
2023/09/09 | 2753396 | systems/texlive/tlnet/archive/pst-3dplot.doc.r68210.tar.xz
-2023/09/09 | 27422 | support/latexindent/LatexIndent/Verbatim.pm
-2023/09/09 | 2733 | support/latexindent/LatexIndent/Preamble.pm
-2023/09/09 | 2712 | support/latexindent/LatexIndent/Switches.pm
2023/09/09 | 270077 | macros/latex/contrib/ucph-revy/ucph-revy-en-doc.pdf
2023/09/09 | 267723 | macros/latex/contrib/ucph-revy/ucph-revy-da-doc.pdf
-2023/09/09 | 25334 | support/latexindent/LatexIndent/Document.pm
-2023/09/09 | 24449 | support/latexindent/LatexIndent/Arguments.pm
-2023/09/09 | 23266 | support/latexindent/defaultSettings.yaml
-2023/09/09 | 2320 | support/latexindent/LatexIndent/Logger.pm
-2023/09/09 | 22321 | support/latexindent/LatexIndent/Sentence.pm
2023/09/09 | 2196936 | systems/texlive/tlnet/archive/simpleicons.doc.r68208.tar.xz
2023/09/09 | 21900 | systems/texlive/tlnet/archive/pst-3dplot.r68210.tar.xz
-2023/09/09 | 20870 | support/latexindent/LatexIndent/Indent.pm
2023/09/09 | 205246 | macros/latex/contrib/profmaquette.zip
-2023/09/09 | 2006 | support/latexindent/README
-2023/09/09 | 18591 | support/latexindent/LatexIndent/ModifyLineBreaks.pm
2023/09/09 | 184526 | graphics/pgf/contrib/tkz-bernoulli.zip
2023/09/09 | 182354 | graphics/pgf/contrib/tkz-bernoulli/doc/tkz-bernoulli-doc.pdf
2023/09/09 | 177327 | macros/latex/contrib/profmaquette/doc/profmaquette-doc.pdf
2023/09/09 | 169522 | macros/latex/contrib/ucph-revy/ucph-revy-en-man.pdf
2023/09/09 | 164707 | macros/latex/contrib/ucph-revy/ucph-revy-da-man.pdf
-2023/09/09 | 1558 | support/latexindent/latexindent-module-installer.pl
-2023/09/09 | 1500 | support/latexindent/LatexIndent/DoubleBackSlash.pm
-2023/09/09 | 14024 | support/latexindent/LatexIndent/Special.pm
-2023/09/09 | 13470 | support/latexindent/LatexIndent/HiddenChildren.pm
-2023/09/09 | 13435 | support/latexindent/LatexIndent/LogFile.pm
2023/09/09 | 131036 | systems/texlive/tlnet/archive/parsinevis.r68214.tar.xz
2023/09/09 | 1293 | macros/latex/contrib/ucph-revy/ucph-revy.ins
-2023/09/09 | 12653 | support/latexindent/LatexIndent/Braces.pm
2023/09/09 | 12630 | graphics/pgf/contrib/tkz-bernoulli/doc/tkz-bernoulli-doc.tex
-2023/09/09 | 1259686 | support/latexindent/documentation/latexindent.pdf
-2023/09/09 | 12404196 | support/latexindent.zip
2023/09/09 | 124012 | systems/texlive/tlnet/archive/wordcloud.doc.r68209.tar.xz
-2023/09/09 | 11358 | support/latexindent/LatexIndent/FileContents.pm
-2023/09/09 | 11206 | support/latexindent/LatexIndent/Heading.pm
2023/09/09 | 10719780 | systems/texlive/tlnet/archive/plex.r68207.tar.xz
2023/09/09 | 1068 | systems/texlive/tlnet/archive/curriculum-vitae.r68211.tar.xz
-2023/09/09 | 10648 | support/latexindent/LatexIndent/Command.pm
2023/09/09 | 106197 | macros/latex/contrib/ucph-revy/ucph-revy.dtx
2023/09/09 | 102456 | systems/texlive/tlnet/archive/curriculum-vitae.doc.r68211.tar.xz
2023/09/08 | 99268 | fonts/parsinevis/ParsiNevis-Italic.ttf
@@ -896,12 +1803,10 @@
2023/09/07 | 824 | fonts/plex/tfm/plxSansCond-Bold-sup-lgr--base.tfm
2023/09/07 | 82337 | fonts/plex/type1/plxSansCond.pfb
2023/09/07 | 82220 | fonts/plex/doc/plex-samples.pdf
-2023/09/07 | 821438 | install/macros/latex/contrib/l3build.tds.zip
2023/09/07 | 820 | fonts/plex/tfm/plxSansCond-sup-lgr--base.tfm
2023/09/07 | 820 | fonts/plex/tfm/plxSansCond-Light-sup-lgr--base.tfm
2023/09/07 | 820 | fonts/plex/tfm/plxSansCond-ExtLt-tlf-lgr--base.tfm
2023/09/07 | 820 | fonts/plex/tfm/plxSansCond-Bold-tlf-lgr--base.tfm
-2023/09/07 | 817557 | macros/latex/contrib/l3build.zip
2023/09/07 | 816 | fonts/plex/tfm/plxSansCond-tlf-lgr--base.tfm
2023/09/07 | 816 | fonts/plex/tfm/plxSansCond-Light-tlf-lgr--base.tfm
2023/09/07 | 8166 | macros/latex/contrib/profcollege/latex/PfCPourcentage.tex
@@ -910,7 +1815,6 @@
2023/09/07 | 81036 | fonts/plex/opentype/IBMPlexMono-SemiBoldItalic.otf
2023/09/07 | 80926 | fonts/plex/type1/plxSansCond-Light.pfb
2023/09/07 | 80684 | fonts/plex/opentype/IBMPlexMono-MediumItalic.otf
-2023/09/07 | 8065 | macros/latex/contrib/l3build/l3build-variables.lua
2023/09/07 | 8052 | biblio/citation-style-language/american-political-science-association.csl
2023/09/07 | 80244 | fonts/plex/opentype/IBMPlexMono-TextItalic.otf
2023/09/07 | 80140 | fonts/plex/type1/plxSansCond-ExtLt.pfb
@@ -922,7 +1826,6 @@
2023/09/07 | 78698 | fonts/plex/type1/plxSansCond-Thin.pfb
2023/09/07 | 78628 | fonts/plex/opentype/IBMPlexSansCondensed-MediumItalic.otf
2023/09/07 | 7857 | macros/latex/contrib/profcollege/latex/PfCMulJap.tex
-2023/09/07 | 7805 | macros/latex/contrib/l3build/l3build-arguments.lua
2023/09/07 | 7797 | macros/latex/contrib/profcollege/latex/PfCReseauxSociaux.tex
2023/09/07 | 77712 | fonts/plex/opentype/IBMPlexSansCondensed-TextItalic.otf
2023/09/07 | 77680 | fonts/plex/opentype/IBMPlexMono-Italic.otf
@@ -934,14 +1837,12 @@
2023/09/07 | 75908 | fonts/plex/opentype/IBMPlexSansCondensed-Italic.otf
2023/09/07 | 75896 | fonts/plex/opentype/IBMPlexSansCondensed-LightItalic.otf
2023/09/07 | 75628 | fonts/plex/opentype/IBMPlexSansCondensed-ExtraLightItalic.otf
-2023/09/07 | 7505 | macros/latex/contrib/l3build/l3build.lua
2023/09/07 | 7497 | macros/latex/contrib/profcollege/latex/PfCCible.tex
2023/09/07 | 74968 | fonts/plex/opentype/IBMPlexMono-ThinItalic.otf
2023/09/07 | 7476 | systems/texlive/tlnet/archive/arsenal.source.r68191.tar.xz
2023/09/07 | 7472987 | fonts/newpx.zip
2023/09/07 | 74636 | fonts/plex/opentype/IBMPlexMono-SemiBold.otf
2023/09/07 | 74500 | fonts/plex/opentype/IBMPlexSansCondensed-ThinItalic.otf
-2023/09/07 | 744608 | macros/latex/contrib/l3build/l3build.pdf
2023/09/07 | 74032 | fonts/plex/opentype/IBMPlexMono-Medium.otf
2023/09/07 | 73960 | fonts/plex/opentype/IBMPlexSansCondensed-SemiBold.otf
2023/09/07 | 73380 | fonts/plex/opentype/IBMPlexMono-Bold.otf
@@ -955,7 +1856,6 @@
2023/09/07 | 7244 | macros/latex/contrib/profcollege/latex/PfCFrise.tex
2023/09/07 | 72236 | fonts/plex/opentype/IBMPlexSansCondensed-Regular.otf
2023/09/07 | 72108 | fonts/plex/opentype/IBMPlexSansCondensed-ExtraLight.otf
-2023/09/07 | 7206 | macros/latex/contrib/l3build/l3build-manifest.lua
2023/09/07 | 7177 | biblio/citation-style-language/citeproc-node-text.lua
2023/09/07 | 71552 | fonts/plex/opentype/IBMPlexMono-Light.otf
2023/09/07 | 7148 | macros/latex/contrib/profcollege/latex/PfCCalculsFractions.tex
@@ -1009,7 +1909,6 @@
2023/09/07 | 63244 | biblio/citation-style-language/apa.csl
2023/09/07 | 63228 | fonts/plex/tfm/plxSerif-ThinItalic-tlf-t1.tfm
2023/09/07 | 63224 | fonts/plex/tfm/plxSerif-ThinItalic-tosf-t1.tfm
-2023/09/07 | 6313 | macros/latex/contrib/l3build/l3build-aux.lua
2023/09/07 | 63024 | fonts/plex/tfm/plxSerif-Italic-tosf-t1.tfm
2023/09/07 | 63020 | fonts/plex/tfm/plxSerif-Italic-tlf-t1.tfm
2023/09/07 | 62940 | fonts/plex/tfm/plxSansCond-Italic-tlf-t1.tfm
@@ -1036,7 +1935,6 @@
2023/09/07 | 6030 | macros/latex/contrib/profcollege/latex/PfCTectonic.tex
2023/09/07 | 60304 | fonts/plex/tfm/plxSerif-Thin-tosf-t1.tfm
2023/09/07 | 60304 | fonts/plex/tfm/plxSerif-Thin-tlf-t1.tfm
-2023/09/07 | 6020 | macros/latex/contrib/l3build/l3build-typesetting.lua
2023/09/07 | 5960298 | macros/latex/contrib/profcollege/doc/ProfCollege-doc.zip
2023/09/07 | 5871 | biblio/citation-style-language/citeproc-node-style.lua
2023/09/07 | 58693 | macros/latex/contrib/profcollege/metapost/PfCGeometrie.mp
@@ -1203,7 +2101,6 @@
2023/09/07 | 4978 | fonts/plex/latex/T1plxMono-TLF.fd
2023/09/07 | 4978 | fonts/plex/latex/T1plxMono-Sup.fd
2023/09/07 | 49748 | fonts/plex/tfm/plxSansCond-TextItalic-tlf-ly1.tfm
-2023/09/07 | 4972 | macros/latex/contrib/l3build/l3build-ctan.lua
2023/09/07 | 49612 | fonts/plex/tfm/plxSerif-ExtraLight-tosf-ly1.tfm
2023/09/07 | 49612 | fonts/plex/tfm/plxSerif-ExtraLight-tlf-ly1.tfm
2023/09/07 | 49540 | fonts/plex/tfm/plxSerif-SemiBold-tosf-ly1.tfm
@@ -1272,13 +2169,11 @@
2023/09/07 | 4403 | macros/latex/contrib/profcollege/latex/PfCCalculatrice.tex
2023/09/07 | 4363 | fonts/plex/doc/LICENSE.txt
2023/09/07 | 43455 | macros/latex/contrib/profcollege/latex/PfCNotionFonction.tex
-2023/09/07 | 4338 | macros/latex/contrib/l3build/l3build-stdmain.lua
2023/09/07 | 42912 | fonts/plex/tfm/plxSans-Italic-tlf-ly1.tfm
2023/09/07 | 42908 | fonts/plex/tfm/plxSans-Italic-tosf-ly1.tfm
2023/09/07 | 4276 | biblio/citation-style-language/citation-style-language-compatible.sty
2023/09/07 | 4270 | biblio/citation-style-language/citation-style-language.sty
2023/09/07 | 4236 | macros/latex/contrib/profcollege/latex/PfCPixelArt.tex
-2023/09/07 | 4150 | macros/latex/contrib/l3build/l3build-zip.lua
2023/09/07 | 414592 | systems/texlive/tlnet/archive/robust-externalize.doc.r68194.tar.xz
2023/09/07 | 4125 | macros/latex/contrib/profcollege/latex/PfCMulPiecesPuzzle.tex
2023/09/07 | 41172 | fonts/plex/tfm/plxSansCond-Medm-tlf-ly1.tfm
@@ -1309,7 +2204,6 @@
2023/09/07 | 37596 | fonts/plex/tfm/plxSansCond-Bold-tlf-ly1.tfm
2023/09/07 | 37580 | fonts/plex/tfm/plxSans-Bold-tosf-ly1.tfm
2023/09/07 | 37580 | fonts/plex/tfm/plxSans-Bold-tlf-ly1.tfm
-2023/09/07 | 37294 | macros/latex/contrib/l3build/l3build-check.lua
2023/09/07 | 37255 | biblio/citation-style-language/citeproc-node-names.lua
2023/09/07 | 37195 | macros/latex/contrib/profcollege/latex/PfCCartesJeux.tex
2023/09/07 | 37088 | fonts/plex/tfm/plxSansCond-Thin-tlf-ly1.tfm
@@ -1393,7 +2287,6 @@
2023/09/07 | 2800 | fonts/plex/enc/plx_6tuc4c.enc
2023/09/07 | 2785 | fonts/plex/enc/plx_i3ioen.enc
2023/09/07 | 2765 | fonts/plex/enc/plx_nercej.enc
-2023/09/07 | 2745 | macros/latex/contrib/l3build/l3build-unpack.lua
2023/09/07 | 2709 | fonts/plex/enc/plx_lxmhqh.enc
2023/09/07 | 265 | biblio/citation-style-language/citeproc-lua.lua
2023/09/07 | 26426 | macros/latex/contrib/profcollege/latex/PfCPythagore.tex
@@ -1405,7 +2298,6 @@
2023/09/07 | 25302 | macros/latex/contrib/profcollege/latex/PfCQuestionsFlash.tex
2023/09/07 | 2503 | biblio/citation-style-language/citeproc-yaml.lua
2023/09/07 | 2499 | macros/latex/contrib/profcollege/latex/PfCSquaro.tex
-2023/09/07 | 2473 | macros/latex/contrib/l3build/l3build-help.lua
2023/09/07 | 2470 | macros/latex/contrib/profcollege/latex/PfCEcritureLettres.tex
2023/09/07 | 24666 | macros/latex/contrib/profcollege/latex/PfCTrigonometrie.tex
2023/09/07 | 24565 | biblio/citation-style-language/csl-locales-bg-BG.xml
@@ -1428,7 +2320,6 @@
2023/09/07 | 229863 | biblio/citation-style-language/citation-style-language-doc.pdf
2023/09/07 | 22865 | biblio/citation-style-language/csl-locales-pt-BR.xml
2023/09/07 | 2285 | macros/latex/contrib/profcollege/latex/PfCGrades.tex
-2023/09/07 | 2285 | macros/latex/contrib/l3build/l3build-tagging.lua
2023/09/07 | 22851 | biblio/citation-style-language/csl-locales-lt-LT.xml
2023/09/07 | 2276 | macros/latex/contrib/profcollege/latex/PfCKakuro.tex
2023/09/07 | 227648 | systems/texlive/tlnet/archive/exesheet.doc.r68192.tar.xz
@@ -1468,7 +2359,6 @@
2023/09/07 | 21532 | biblio/citation-style-language/csl-locales-af-ZA.xml
2023/09/07 | 21513 | biblio/citation-style-language/csl-locales-ko-KR.xml
2023/09/07 | 21505 | biblio/citation-style-language/csl-locales-es-CL.xml
-2023/09/07 | 2149 | macros/latex/contrib/l3build/l3build-clean.lua
2023/09/07 | 21462 | biblio/citation-style-language/csl-locales-hr-HR.xml
2023/09/07 | 21435 | biblio/citation-style-language/citation-style-language-bib.sty
2023/09/07 | 21429 | biblio/citation-style-language/csl-locales-sl-SI.xml
@@ -1477,7 +2367,6 @@
2023/09/07 | 21401 | biblio/citation-style-language/csl-locales-la.xml
2023/09/07 | 21360 | biblio/citation-style-language/csl-locales-et-EE.xml
2023/09/07 | 2118 | biblio/citation-style-language/citeproc-node-layout.lua
-2023/09/07 | 21158 | macros/latex/contrib/l3build/CHANGELOG.md
2023/09/07 | 2106 | usergrps/usergrps/labels.tex
2023/09/07 | 20851 | biblio/citation-style-language/citeproc-element.lua
2023/09/07 | 20846 | biblio/citation-style-language/csl-locales-uk-UA.xml
@@ -1604,7 +2493,6 @@
2023/09/07 | 1820 | fonts/plex/tfm/plxSerif-Italic-tosf-t1--base.tfm
2023/09/07 | 1820 | fonts/plex/tfm/plxSans-ExtLtItalic-sup-t1.tfm
2023/09/07 | 1820 | fonts/plex/tfm/plxSansCond-MedmItalic-sup-t1--base.tfm
-2023/09/07 | 1816 | macros/latex/contrib/l3build/l3build.1
2023/09/07 | 1816 | fonts/plex/tfm/plxSerif-TextItalic-tosf-t1--base.tfm
2023/09/07 | 1816 | fonts/plex/tfm/plxSerif-Italic-tlf-t1--base.tfm
2023/09/07 | 1816 | fonts/plex/tfm/plxSans-ExtLtItalic-sup-t1--base.tfm
@@ -2070,7 +2958,6 @@
2023/09/07 | 1556 | fonts/plex/tfm/plxSans-SmBld-sup-lgr.tfm
2023/09/07 | 155300 | fonts/plex/opentype/IBMPlexSerif-TextItalic.otf
2023/09/07 | 1552 | fonts/plex/tfm/plxSans-sup-lgr.tfm
-2023/09/07 | 1540 | macros/latex/contrib/l3build/l3build.ins
2023/09/07 | 15400 | fonts/plex/tfm/plxSans-Light-tosf-lgr.tfm
2023/09/07 | 15392 | fonts/plex/tfm/plxSans-Light-tlf-lgr.tfm
2023/09/07 | 1536 | fonts/plex/tfm/plxSans-Light-sup-lgr.tfm
@@ -2449,7 +3336,6 @@
2023/09/07 | 13244 | fonts/plex/tfm/plxSans-Bold-tlf-lgr.tfm
2023/09/07 | 13212 | fonts/plex/tfm/plxSerif-Text-tosf-ot1.tfm
2023/09/07 | 13212 | fonts/plex/tfm/plxSerif-Text-tlf-ot1.tfm
-2023/09/07 | 13211 | macros/latex/contrib/l3build/l3build-upload.lua
2023/09/07 | 13184 | fonts/plex/tfm/plxSans-MedmItalic-tosf-ot1.tfm
2023/09/07 | 13184 | fonts/plex/tfm/plxSans-MedmItalic-tlf-ot1.tfm
2023/09/07 | 1316 | fonts/plex/tfm/plxSerif-Text-sup-ot1.tfm
@@ -2562,7 +3448,6 @@
2023/09/07 | 1248 | fonts/plex/tfm/plxSansCond-Medm-sup-ot1.tfm
2023/09/07 | 1248 | fonts/plex/tfm/plxMono-LightItalic-tlf-ts1.tfm
2023/09/07 | 1246 | biblio/citation-style-language/citeproc-node-group.lua
-2023/09/07 | 12469 | macros/latex/contrib/l3build/l3build-file-functions.lua
2023/09/07 | 124643 | fonts/plex/type1/plxSans-Italic.pfb
2023/09/07 | 12456 | fonts/plex/tfm/plxSansCond-SmBldItalic-tlf-ot1.tfm
2023/09/07 | 12444 | fonts/plex/tfm/plxSansCond-Italic-tlf-ot1.tfm
@@ -2644,7 +3529,6 @@
2023/09/07 | 113796 | fonts/plex/type1/plxSans.pfb
2023/09/07 | 11332 | fonts/plex/tfm/plxSans-Text-tosf-ot1.tfm
2023/09/07 | 11332 | fonts/plex/tfm/plxSans-Text-tlf-ot1.tfm
-2023/09/07 | 112780 | macros/latex/contrib/l3build/l3build.dtx
2023/09/07 | 11255 | macros/latex/contrib/profcollege/latex/PfCCompteBon.tex
2023/09/07 | 11248 | fonts/plex/tfm/plxSansCond-Medm-tlf-ot1.tfm
2023/09/07 | 112038 | fonts/plex/type1/plxMono-Light.pfb
@@ -2655,7 +3539,6 @@
2023/09/07 | 111472 | fonts/plex/type1/plxSans-ExtLt.pfb
2023/09/07 | 1112 | fonts/plex/tfm/plxSansCond-BoldItalic-tlf-lgr.tfm
2023/09/07 | 110932 | fonts/plex/type1/plxMono-ExtLt.pfb
-2023/09/07 | 11070 | macros/latex/contrib/l3build/l3build-install.lua
2023/09/07 | 11060 | fonts/plex/tfm/plxSans-Thin-tosf-ot1.tfm
2023/09/07 | 11060 | fonts/plex/tfm/plxSans-Thin-tlf-ot1.tfm
2023/09/07 | 11052 | fonts/plex/tfm/plxSansCond-tlf-ot1.tfm
@@ -2675,7 +3558,6 @@
2023/09/07 | 10832 | fonts/plex/tfm/plxSansCond-Light-tlf-ot1.tfm
2023/09/07 | 1080 | fonts/plex/tfm/plxSansCond-Light-tlf-lgr.tfm
2023/09/07 | 1080 | fonts/plex/tfm/plxSansCond-ExtLt-tlf-lgr.tfm
-2023/09/07 | 10786 | macros/latex/contrib/l3build/l3build-manifest-setup.lua
2023/09/07 | 107783 | macros/latex/contrib/profcollege/metapost/PfCScratch.mp
2023/09/07 | 10723 | biblio/citation-style-language/harvard-cite-them-right.csl
2023/09/07 | 1068 | fonts/plex/tfm/plxSansCond-Thin-tlf-lgr.tfm
@@ -2699,7 +3581,6 @@
2023/09/07 | 1020 | fonts/plex/tfm/plxMono-ThinItalic-tlf-ot1.tfm
2023/09/07 | 1020 | fonts/plex/tfm/plxMono-BoldItalic-sup-ot1.tfm
2023/09/07 | 10200 | macros/latex/contrib/profcollege/latex/PfCCibleQOp.tex
-2023/09/07 | 1019 | macros/latex/contrib/l3build/README.md
2023/09/07 | 1016 | fonts/plex/tfm/plxMono-Italic-sup-ot1.tfm
2023/09/07 | 10168 | macros/latex/contrib/profcollege/latex/PfCPapiers.tex
2023/09/07 | 1012 | fonts/plex/tfm/plxMono-MedmItalic-sup-ot1.tfm
@@ -2707,76 +3588,3 @@
2023/09/07 | 1004 | fonts/plex/tfm/plxMono-TextItalic-sup-ot1.tfm
2023/09/07 | 10044 | fonts/plex/tfm/plxSansCond-Thin-tlf-ot1.tfm
2023/09/07 | 1000 | fonts/plex/tfm/plxMono-LightItalic-sup-ot1.tfm
-2023/09/06 | 963880 | systems/texlive/tlnet/archive/biber.source.r68188.tar.xz
-2023/09/06 | 9584 | systems/texlive/tlnet/archive/penlightplus.r68185.tar.xz
-2023/09/06 | 804316 | systems/texlive/tlnet/archive/piton.doc.r68186.tar.xz
-2023/09/06 | 780793 | macros/latex/contrib/numerica-tables/numerica-tables.pdf
-2023/09/06 | 736 | systems/texlive/tlnet/archive/biber.r68188.tar.xz
-2023/09/06 | 685210 | macros/latex/contrib/numerica-tables.zip
-2023/09/06 | 625440 | fonts/arsenal.zip
-2023/09/06 | 60772 | systems/texlive/tlnet/archive/penlightplus.doc.r68185.tar.xz
-2023/09/06 | 55778 | macros/latex/contrib/robust-externalize/robust-externalize.sty
-2023/09/06 | 5403040 | systems/texlive/tlnet/archive/stellenbosch-2.doc.r68183.tar.xz
-2023/09/06 | 5332044 | systems/texlive/tlnet/archive/mitthesis.doc.r68187.tar.xz
-2023/09/06 | 518436 | fonts/newpx/afm/TeXGyrePagellaX-Regular.afm
-2023/09/06 | 510445 | fonts/newpx/afm/TeXGyrePagellaX-Italic.afm
-2023/09/06 | 505907 | fonts/newpx/afm/TeXGyrePagellaX-Bold.afm
-2023/09/06 | 47496 | systems/texlive/tlnet/archive/piton.source.r68186.tar.xz
-2023/09/06 | 463 | macros/latex/contrib/robust-externalize/README.md
-2023/09/06 | 448699 | macros/latex/contrib/robust-externalize/robust-externalize.pdf
-2023/09/06 | 438597 | macros/latex/contrib/robust-externalize.zip
-2023/09/06 | 3934 | fonts/newpx/enc/npxsups_TS1.enc
-2023/09/06 | 385765 | fonts/newpx/afm/TeXGyrePagellaX-BoldItalic.afm
-2023/09/06 | 382853 | fonts/newpx/afm/TeXGyrePagellaX-Slanted.afm
-2023/09/06 | 366839 | fonts/newpx/afm/TeXGyrePagellaX-BoldSlanted.afm
-2023/09/06 | 36325 | fonts/newpx/map/newpx.map
-2023/09/06 | 34470 | fonts/newpx/type1/npxsups-BoldSlanted.pfb
-2023/09/06 | 33407 | fonts/newpx/type1/npxsups-Bold.pfb
-2023/09/06 | 33108 | systems/texlive/tlnet/archive/photobook.r68182.tar.xz
-2023/09/06 | 32822 | fonts/newpx/type1/npxsups-Slanted.pfb
-2023/09/06 | 32525 | fonts/newpx/type1/npxsups-Regular.pfb
-2023/09/06 | 32378 | fonts/newpx/type1/npxsups-Italic.pfb
-2023/09/06 | 32189 | fonts/newpx/type1/npxsups-BoldItalic.pfb
-2023/09/06 | 3192 | systems/texlive/tlnet/archive/fitch.r68179.tar.xz
-2023/09/06 | 316563 | fonts/newpx/type1/TeXGyrePagellaX-Bold.pfb
-2023/09/06 | 314407 | fonts/newpx/type1/TeXGyrePagellaX-BoldSlanted.pfb
-2023/09/06 | 311116 | fonts/newpx/type1/TeXGyrePagellaX-Italic.pfb
-2023/09/06 | 310506 | fonts/newpx/type1/TeXGyrePagellaX-Slanted.pfb
-2023/09/06 | 303660 | fonts/newpx/type1/TeXGyrePagellaX-BoldItalic.pfb
-2023/09/06 | 30119848 | systems/texlive/tlnet/archive/biber.aarch64-linux.r68188.tar.xz
-2023/09/06 | 296145 | fonts/newpx/type1/TeXGyrePagellaX-Regular.pfb
-2023/09/06 | 267444 | systems/texlive/tlnet/archive/biber.doc.r68188.tar.xz
-2023/09/06 | 257256 | systems/texlive/tlnet/archive/fitch.doc.r68179.tar.xz
-2023/09/06 | 234900 | fonts/newpx/opentype/TeXGyrePagellaX-Italic.otf
-2023/09/06 | 220664 | fonts/newpx/opentype/TeXGyrePagellaX-Slanted.otf
-2023/09/06 | 212404 | fonts/newpx/opentype/TeXGyrePagellaX-Regular.otf
-2023/09/06 | 21064 | fonts/newpx/opentype/npxsups-BoldSlanted.otf
-2023/09/06 | 207080 | fonts/newpx/opentype/TeXGyrePagellaX-BoldItalic.otf
-2023/09/06 | 206544 | fonts/newpx/opentype/TeXGyrePagellaX-Bold.otf
-2023/09/06 | 2065420 | systems/texlive/tlnet/archive/stellenbosch-2.source.r68183.tar.xz
-2023/09/06 | 206120 | fonts/newpx/opentype/TeXGyrePagellaX-BoldSlanted.otf
-2023/09/06 | 20444 | fonts/newpx/opentype/npxsups-Slanted.otf
-2023/09/06 | 20440 | fonts/newpx/opentype/npxsups-BoldItalic.otf
-2023/09/06 | 20144 | fonts/newpx/opentype/npxsups-Italic.otf
-2023/09/06 | 19544 | fonts/newpx/opentype/npxsups-Bold.otf
-2023/09/06 | 19340 | fonts/newpx/opentype/npxsups-Regular.otf
-2023/09/06 | 1909 | fonts/newpx/tex/ot1zplsups.fd
-2023/09/06 | 1909 | fonts/newpx/tex/ly1zplsups.fd
-2023/09/06 | 1881 | fonts/newpx/tex/ts1zplsups1.fd
-2023/09/06 | 1881 | fonts/newpx/tex/t1zplsups.fd
-2023/09/06 | 1692 | systems/texlive/tlnet/archive/collection-mathscience.r68179.tar.xz
-2023/09/06 | 16472 | systems/texlive/tlnet/archive/piton.r68186.tar.xz
-2023/09/06 | 16056 | systems/texlive/tlnet/archive/blopentype.r68184.tar.xz
-2023/09/06 | 15658 | fonts/newpx/afm/npxsups-BoldItalic.afm
-2023/09/06 | 15657 | fonts/newpx/afm/npxsups-Slanted.afm
-2023/09/06 | 15612 | fonts/newpx/afm/npxsups-Regular.afm
-2023/09/06 | 15592 | fonts/newpx/afm/npxsups-BoldSlanted.afm
-2023/09/06 | 155784 | systems/texlive/tlnet/archive/photobook.doc.r68182.tar.xz
-2023/09/06 | 15543 | fonts/newpx/afm/npxsups-Italic.afm
-2023/09/06 | 15531 | fonts/newpx/afm/npxsups-Bold.afm
-2023/09/06 | 1550016 | systems/texlive/tlnet/archive/stellenbosch-2.r68183.tar.xz
-2023/09/06 | 150744 | systems/texlive/tlnet/archive/blopentype.doc.r68184.tar.xz
-2023/09/06 | 124712 | macros/latex/contrib/numerica-tables/numerica-tables.tex
-2023/09/06 | 115037 | macros/latex/contrib/robust-externalize/robust-externalize.tex
-2023/09/06 | 10744 | systems/texlive/tlnet/archive/mitthesis.r68187.tar.xz
-2023/09/06 | 1035 | macros/latex/contrib/numerica-tables/README.txt
diff --git a/biblio/ctan-bibdata/ctan.bib b/biblio/ctan-bibdata/ctan.bib
index a766ee5daa..f0d979e3bd 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 13-09-2023, 02:01:30
+%% created at 14-09-2023, 02:05:48
%%
%% This file is provided under the terms of the LPPL v1.3 or
@@ -3204,8 +3204,8 @@
title = {The \texttt{arraycols} package},
subtitle = {New column types for array and tabular environments},
author = {Antoine Missier},
- date = {2023-08-09},
- version = {1.3},
+ date = {2023-09-13},
+ version = {1.4},
license = {lppl1.3},
mirror = {https://mirror.ctan.org/macros/latex/contrib/arraycols},
url = {https://ctan.org/pkg/arraycols},
@@ -12585,8 +12585,8 @@
title = {The \texttt{circuit-macros} package},
subtitle = {M4 macros for electric circuit diagrams},
author = {Dwight Aplevich},
- date = {2023-05-31},
- version = {10.3},
+ date = {2023-09-13},
+ version = {10.4},
license = {lppl1.3c},
mirror = {https://mirror.ctan.org/graphics/circuit_macros},
url = {https://ctan.org/pkg/circuit-macros},
@@ -33764,8 +33764,8 @@
title = {The \texttt{inconsolata-nerd-font} package},
subtitle = {Inconsolata Nerd Font with support for \XeLaTeX{} or LuaLaTeX},
author = {Stephan Lukasczyk},
- date = {2023-09-12},
- version = {0.2},
+ date = {2023-09-13},
+ version = {0.3},
license = {ofl,lppl1.3c},
mirror = {https://mirror.ctan.org/fonts/inconsolata-nerd-font},
url = {https://ctan.org/pkg/inconsolata-nerd-font},
@@ -35109,8 +35109,8 @@
title = {The \texttt{JeuxCartes} package},
subtitle = {Macros to insert playing cards},
author = {Cédric Pierquet},
- date = {2023-08-08},
- version = {0.2.7},
+ date = {2023-09-13},
+ version = {0.2.8},
license = {lppl1.3c,lgpl2.1,pd,cc-by-sa-4,pd,mit},
mirror = {https://mirror.ctan.org/macros/latex/contrib/jeuxcartes},
url = {https://ctan.org/pkg/jeuxcartes},
@@ -36101,7 +36101,7 @@
title = {The \texttt{khatalmaqala} package},
subtitle = {Arabic font for university articles},
author = {Zain Ibn Abdalmatin},
- date = {2023-09-11},
+ date = {2023-09-13},
version = {1.0.2},
license = {ofl},
mirror = {https://mirror.ctan.org/fonts/khatalmaqala},
@@ -36851,7 +36851,7 @@
title = {The \texttt{l3build} package},
subtitle = {A testing and building system for (La)TeX},
author = {{The \LaTeX{} Project Team}},
- date = {2023-09-07},
+ date = {2023-09-13},
version = {},
license = {lppl1.3c},
mirror = {https://mirror.ctan.org/macros/latex/contrib/l3build},
@@ -37343,8 +37343,8 @@
title = {The \texttt{latex-amsmath-dev} package},
subtitle = {Development pre-release of the \LaTeX{} amsmath bundle},
author = {{The \LaTeX{} Project Team}},
- date = {2023-06-11},
- version = {2023-11-01 pre-release 0},
+ date = {2023-09-13},
+ version = {2023-11-01 pre-release 1},
license = {lppl1.3c},
mirror = {https://mirror.ctan.org/macros/latex-dev/required/amsmath},
url = {https://ctan.org/pkg/latex-amsmath-dev},
@@ -37370,8 +37370,8 @@
title = {The \texttt{latex-base-dev} package},
subtitle = {Development pre-release of the \LaTeX{} kernel},
author = {{The \LaTeX{} Project Team}},
- date = {2023-06-11},
- version = {2023-11-01 pre-release 0},
+ date = {2023-09-13},
+ version = {2023-11-01 pre-release 1},
license = {lppl1.3c},
mirror = {https://mirror.ctan.org/macros/latex-dev/base},
url = {https://ctan.org/pkg/latex-base-dev},
@@ -37542,8 +37542,8 @@
title = {The \texttt{latex-firstaid-dev} package},
subtitle = {Development pre-release of the \LaTeX{} firstaid package},
author = {{The \LaTeX{} Project Team}},
- date = {2023-05-25},
- version = {1.0z},
+ date = {2023-09-13},
+ version = {1.1a},
license = {lppl1.3c},
mirror = {https://mirror.ctan.org/macros/latex-dev/required/firstaid},
url = {https://ctan.org/pkg/latex-firstaid-dev},
@@ -38280,8 +38280,8 @@
title = {The \texttt{latexindent} package},
subtitle = {Indent a \LaTeX{} document, highlighting the programming structure},
author = {Chris Hughes},
- date = {2023-09-09},
- version = {3.23},
+ date = {2023-09-13},
+ version = {3.23.1},
license = {gpl3},
mirror = {https://mirror.ctan.org/support/latexindent},
url = {https://ctan.org/pkg/latexindent},
@@ -41352,8 +41352,8 @@
title = {The \texttt{lua-typo} package},
subtitle = {Highlighting typographical flaws with LuaLaTeX},
author = {Daniel Flipo},
- date = {2023-04-29},
- version = {0.80},
+ date = {2023-09-13},
+ version = {0.85},
license = {lppl1.3c},
mirror = {https://mirror.ctan.org/macros/luatex/latex/lua-typo},
url = {https://ctan.org/pkg/lua-typo},
@@ -51284,6 +51284,17 @@
url = {https://ctan.org/pkg/parselines},
}
+@manual{ctan-parsimatn,
+ title = {The \texttt{parsimatn} package},
+ subtitle = {Contemporary Persian font for scientific and formal writings},
+ author = {Sajad Kazemi},
+ date = {2023-09-13},
+ version = {1.0},
+ license = {ofl},
+ mirror = {https://mirror.ctan.org/fonts/parsimatn},
+ url = {https://ctan.org/pkg/parsimatn},
+}
+
@manual{ctan-parsinevis,
title = {The \texttt{parsinevis} package},
subtitle = {“Scheherazade New” adapted for Persian typesetting and scientific writings},
@@ -54885,8 +54896,8 @@
title = {The \texttt{profsio} package},
subtitle = {Commands (with TikZ) to work with French “BTS SIO” maths themes},
author = {Cédric Pierquet},
- date = {2023-08-23},
- version = {0.1.4},
+ date = {2023-09-13},
+ version = {0.1.5},
license = {lppl1.3c},
mirror = {https://mirror.ctan.org/graphics/pgf/contrib/profsio},
url = {https://ctan.org/pkg/profsio},
@@ -60001,8 +60012,8 @@
title = {The \texttt{runtexshebang} package},
subtitle = {A Lua script running \LaTeX{} document files with \TeX{}-style shebang},
author = {Munehiro Yamamoto},
- date = {2023-09-11},
- version = {0.3},
+ date = {2023-09-13},
+ version = {0.4},
license = {mit},
mirror = {https://mirror.ctan.org/support/runtexshebang},
url = {https://ctan.org/pkg/runtexshebang},
diff --git a/biblio/ctan-bibdata/ctan.pdf b/biblio/ctan-bibdata/ctan.pdf
index 67e18e9c9b..8377584364 100644
--- a/biblio/ctan-bibdata/ctan.pdf
+++ b/biblio/ctan-bibdata/ctan.pdf
Binary files differ
diff --git a/fonts/inconsolata-nerd-font/CHANGELOG.md b/fonts/inconsolata-nerd-font/CHANGELOG.md
index 8e0c017d72..c63733bdda 100644
--- a/fonts/inconsolata-nerd-font/CHANGELOG.md
+++ b/fonts/inconsolata-nerd-font/CHANGELOG.md
@@ -3,6 +3,16 @@ All notable changes to this project will be documented in this file.
## [Unreleased]
+## [v0.3] — 2023-09-13
+
+### Added
+- Track the changes in the documentation, too.
+- Provide the glyph tables of the different font variants in the documentation.
+- Provide the documentation PDF as a build artefact on GitHub.
+
+### Fixed
+- The automated tagging of a release now works with `l3build`.
+
## [v0.2] — 2023–09–12
### Added
@@ -20,5 +30,6 @@ All notable changes to this project will be documented in this file.
## v0.1 — 2023–09–09
- First public release
-[Unreleased]: https://github.com/stephanlukasczyk/inconsolata-nerd-font/compare/v0.2...HEAD
-[v0.2]: https://github.com/stephanlukasczyk/inconsolata-nerd-font/compare/v0.2...v0.1 \ No newline at end of file
+[Unreleased]: https://github.com/stephanlukasczyk/inconsolata-nerd-font/compare/v0.3...HEAD
+[v0.3]: https://github.com/stephanlukasczyk/inconsolata-nerd-font/compare/v0.3...v0.2
+[v0.2]: https://github.com/stephanlukasczyk/inconsolata-nerd-font/compare/v0.2...v0.1
diff --git a/fonts/inconsolata-nerd-font/inconsolata-nerd-font.dtx b/fonts/inconsolata-nerd-font/inconsolata-nerd-font.dtx
index 34ef638be7..31cda7110a 100644
--- a/fonts/inconsolata-nerd-font/inconsolata-nerd-font.dtx
+++ b/fonts/inconsolata-nerd-font/inconsolata-nerd-font.dtx
@@ -26,11 +26,18 @@
%
%<*driver>
\documentclass{l3doc}
+\usepackage[UKenglish]{babel}
\usepackage{libertinus-otf}
\usepackage{hvlogos}
% The next line is needed so that \GetFileInfo will be able to pick up version
% data.
\usepackage{inconsolata-nerd-font}
+\usepackage{unicodefonttable}
+\fonttablesetup{missing-glyph-color=black!25, color=black!50}
+\usepackage{microtype}
+\EnableCrossrefs
+\CodelineIndex
+\RecordChanges
\begin{document}
\RecordChanges
\DocInput{\jobname.dtx}
@@ -63,6 +70,8 @@
% \tl_set_eq:NN,
% }
%
+% \changes{v0.1}{2023–09–09}{First public release}
+%
% \GetFileInfo{inconsolata-nerd-font.sty}
%
% \title{^^A
@@ -232,6 +241,26 @@
% to typeset the words \enquote{an example} using Inconsolata Nerd Font:
% Just \textinconsolatanf{an example} sentence.
%
+% \section{Font Tables}\label{sec:doc-font-tables}
+%
+% \changes{v0.3}{2023-09-13}{Add font tables to the documentation.}
+%
+% This section provides character tables of the different font variants,
+% created using Frank Mittelbach's \pkg{unicodefonttable} package.
+% Thanks to Herbert Voß for his suggestion to add these.
+%
+% \subsection{Regular}\label{sec:doc-font-tables-regular}
+%
+% \displayfonttable{InconsolataNerdFont-Regular.ttf}
+%
+% \subsection{Mono Regular}\label{sec:doc-font-tables-mono}
+%
+% \displayfonttable{InconsolataNerdFontMono-Regular.ttf}
+%
+% \subsection{Proportional Regular}\label{sec:doc-font-tables-propo}
+%
+% \displayfonttable{InconsolataNerdFontPropo-Regular.ttf}
+%
% \end{documentation}
%
% \clearpage
@@ -283,7 +312,7 @@
%
% Identify the package and give the overall version information.
% \begin{macrocode}
-\ProvidesExplPackage {inconsolata-nerd-font} {2023-09-12} {0.2}
+\ProvidesExplPackage {inconsolata-nerd-font} {2023-09-13} {0.3}
{Support package to use the Inconsolata Nerd Font TrueType fonts}
% \end{macrocode}
%
@@ -355,15 +384,9 @@
}
% \end{macrocode}
%
-% Define a font family for the three fonts and commands for easier usage
-% \begin{macro}{
-% \inconsolatanffamily,
-% \inconsolatanfmonofamily,
-% \inconsolatanfpropofamily,
-% \textinconsolatanf,
-% \textinconsolatanfmono,
-% \textinconsolatanfpropo,
-% }
+% Define a font family for the three fonts and commands for easier usage.
+% \begin{macro}{\inconsolatanffamily}
+% The defaut font accessible as a \LaTeX{} font family.
% \begin{macrocode}
\newfontfamily\inconsolatanffamily{InconsolataNerdFont-Regular.ttf}[
BoldFont = InconsolataNerdFont-Bold.ttf,
@@ -371,21 +394,49 @@
NFSSFamily = inconsolatanf,
Scale = \l_@@_scale_tl,
]
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\inconsolatanfmonofamily}
+% \changes{v0.2}{2023–09–12}{Added macro}
+% The mono font variant, accessible as a \LaTeX{} font family.
+% \begin{macrocode}
\newfontfamily\inconsolatanfmonofamily{InconsolataNerdFontMono-Regular.ttf}[
BoldFont = InconsolataNerdFontMono-Bold.ttf,
FakeStretch = {0.9},
NFSSFamily = inconsolatanfmono,
Scale = \l_@@_scale_tl,
]
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\inconsolatanfpropofamily}
+% \changes{v0.2}{2023–09–12}{Added macro}
+% The propo font variant, accessible as a \LaTeX{} font family.
+% \begin{macrocode}
\newfontfamily\inconsolatanfpropofamily{InconsolataNerdFontPropo-Regular.ttf}[
BoldFont = InconsolataNerdFontPropo-Bold.ttf,
FakeStretch = {0.9},
NFSSFamily = inconsolatanfpropo,
Scale = \l_@@_scale_tl,
]
-
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\textinconsolatanf}
+% A macro to typeset text in the default font variant.
+% \begin{macrocode}
\DeclareTextFontCommand{\textinconsolatanf}{\inconsolatanffamily}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\textinconsolatanfmono}
+% \changes{v0.2}{2023–09–12}{Added macro}
+% A macro to typeset text in the mono font variant.
+% \begin{macrocode}
\DeclareTextFontCommand{\textinconsolatanfmono}{\inconsolatanffamilymono}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\textinconsolatanfpropo}
+% \changes{v0.2}{2023–09–12}{Added macro}
+% A macro to typeset text in the propo font variant.
+% \begin{macrocode}
\DeclareTextFontCommand{\textinconsolatanfpropo}{\inconsolatanffamilypropo}
% \end{macrocode}
% \end{macro}
@@ -408,4 +459,4 @@
% \end{implementation}
%
% \PrintIndex
-% \PrintChanges \ No newline at end of file
+% \PrintChanges
diff --git a/fonts/inconsolata-nerd-font/inconsolata-nerd-font.pdf b/fonts/inconsolata-nerd-font/inconsolata-nerd-font.pdf
index 10f32f4d75..d17ab91bb7 100644
--- a/fonts/inconsolata-nerd-font/inconsolata-nerd-font.pdf
+++ b/fonts/inconsolata-nerd-font/inconsolata-nerd-font.pdf
Binary files differ
diff --git a/fonts/parsimatn/OFL.txt b/fonts/parsimatn/OFL.txt
new file mode 100644
index 0000000000..fbc0d2bdd7
--- /dev/null
+++ b/fonts/parsimatn/OFL.txt
@@ -0,0 +1,96 @@
+Copyright (c) 1994-2023, SIL International (http://www.sil.org/),
+with Reserved Font Names "Scheherazade" and "SIL".
+
+Copyright (c) 2023, Sajad Kazemi (https://github.com/SajadKazemi/parsimatn)
+
+This Font Software is licensed under the SIL Open Font License, Version 1.1.
+This license is copied below, and is also available with a FAQ at:
+http://scripts.sil.org/OFL
+
+
+-----------------------------------------------------------
+SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
+-----------------------------------------------------------
+
+PREAMBLE
+The goals of the Open Font License (OFL) are to stimulate worldwide
+development of collaborative font projects, to support the font creation
+efforts of academic and linguistic communities, and to provide a free and
+open framework in which fonts may be shared and improved in partnership
+with others.
+
+The OFL allows the licensed fonts to be used, studied, modified and
+redistributed freely as long as they are not sold by themselves. The
+fonts, including any derivative works, can be bundled, embedded,
+redistributed and/or sold with any software provided that any reserved
+names are not used by derivative works. The fonts and derivatives,
+however, cannot be released under any other type of license. The
+requirement for fonts to remain under this license does not apply
+to any document created using the fonts or their derivatives.
+
+DEFINITIONS
+"Font Software" refers to the set of files released by the Copyright
+Holder(s) under this license and clearly marked as such. This may
+include source files, build scripts and documentation.
+
+"Reserved Font Name" refers to any names specified as such after the
+copyright statement(s).
+
+"Original Version" refers to the collection of Font Software components as
+distributed by the Copyright Holder(s).
+
+"Modified Version" refers to any derivative made by adding to, deleting,
+or substituting -- in part or in whole -- any of the components of the
+Original Version, by changing formats or by porting the Font Software to a
+new environment.
+
+"Author" refers to any designer, engineer, programmer, technical
+writer or other person who contributed to the Font Software.
+
+PERMISSION & CONDITIONS
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of the Font Software, to use, study, copy, merge, embed, modify,
+redistribute, and sell modified and unmodified copies of the Font
+Software, subject to the following conditions:
+
+1) Neither the Font Software nor any of its individual components,
+in Original or Modified Versions, may be sold by itself.
+
+2) Original or Modified Versions of the Font Software may be bundled,
+redistributed and/or sold with any software, provided that each copy
+contains the above copyright notice and this license. These can be
+included either as stand-alone text files, human-readable headers or
+in the appropriate machine-readable metadata fields within text or
+binary files as long as those fields can be easily viewed by the user.
+
+3) No Modified Version of the Font Software may use the Reserved Font
+Name(s) unless explicit written permission is granted by the corresponding
+Copyright Holder. This restriction only applies to the primary font name as
+presented to the users.
+
+4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
+Software shall not be used to promote, endorse or advertise any
+Modified Version, except to acknowledge the contribution(s) of the
+Copyright Holder(s) and the Author(s) or with their explicit written
+permission.
+
+5) The Font Software, modified or unmodified, in part or in whole,
+must be distributed entirely under this license, and must not be
+distributed under any other license. The requirement for fonts to
+remain under this license does not apply to any document created
+using the Font Software.
+
+TERMINATION
+This license becomes null and void if any of the above conditions are
+not met.
+
+DISCLAIMER
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
+OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
+COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
+DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
+OTHER DEALINGS IN THE FONT SOFTWARE.
diff --git a/fonts/parsimatn/ParsiMatn-Bold.ttf b/fonts/parsimatn/ParsiMatn-Bold.ttf
new file mode 100644
index 0000000000..1777321fc0
--- /dev/null
+++ b/fonts/parsimatn/ParsiMatn-Bold.ttf
Binary files differ
diff --git a/fonts/parsimatn/ParsiMatn-BoldItalic.ttf b/fonts/parsimatn/ParsiMatn-BoldItalic.ttf
new file mode 100644
index 0000000000..59ad1e020b
--- /dev/null
+++ b/fonts/parsimatn/ParsiMatn-BoldItalic.ttf
Binary files differ
diff --git a/fonts/parsimatn/ParsiMatn-Italic.ttf b/fonts/parsimatn/ParsiMatn-Italic.ttf
new file mode 100644
index 0000000000..5411308567
--- /dev/null
+++ b/fonts/parsimatn/ParsiMatn-Italic.ttf
Binary files differ
diff --git a/fonts/parsimatn/ParsiMatn-Regular.ttf b/fonts/parsimatn/ParsiMatn-Regular.ttf
new file mode 100644
index 0000000000..e1246b4528
--- /dev/null
+++ b/fonts/parsimatn/ParsiMatn-Regular.ttf
Binary files differ
diff --git a/fonts/parsimatn/README.md b/fonts/parsimatn/README.md
new file mode 100644
index 0000000000..b87789f6a7
--- /dev/null
+++ b/fonts/parsimatn/README.md
@@ -0,0 +1,31 @@
+# parsimatn
+v 1.0 -- September 13, 2023
+
+=======================
+
+### License
+
+SIL OFL license version 1.1 <https://scripts.sil.org/OFL>
+
+=======================
+
+### Design
+
+Entire Persian/Arabic letters and numbers designed by Sajad Kazemi.
+
+The following parts are from "Scheherazade New":
+- Latin Letters
+- Latin punctuation marks
+- Arabic punctuation marks
+- Arabic marks
+
+Scheherazade New has SIL OFL license.
+Visit <https://software.sil.org/scheherazade/> to read more about the Scheherazade New.
+
+=======================
+
+Author: Sajad Kazemi <sajad.kazemi.ctan@gmail.com>
+
+Copyright (c) 2023 by Sajad Kazemi (https://github.com/SajadKazemi)
+Copyright (c) 1994-2023, SIL International (http://www.sil.org/),
+with Reserved Font Names "Scheherazade" and "SIL". \ No newline at end of file
diff --git a/fonts/parsimatn/parsimatn-example-of-use.pdf b/fonts/parsimatn/parsimatn-example-of-use.pdf
new file mode 100644
index 0000000000..b9e1913a85
--- /dev/null
+++ b/fonts/parsimatn/parsimatn-example-of-use.pdf
Binary files differ
diff --git a/fonts/parsimatn/parsimatn-example-of-use.tex b/fonts/parsimatn/parsimatn-example-of-use.tex
new file mode 100644
index 0000000000..3a9b6bcc3b
--- /dev/null
+++ b/fonts/parsimatn/parsimatn-example-of-use.tex
@@ -0,0 +1,109 @@
+\documentclass[10pt,a5paper]{article}
+\usepackage[a5paper,margin=1.5cm]{geometry}
+
+\usepackage{amsmath}
+\usepackage{amsfonts}
+\usepackage{amssymb}
+\usepackage{amsthm}
+
+
+\theoremstyle{definition}
+\newtheorem{definition}{تعریف}[subsection]
+
+\theoremstyle{plain}
+\newtheorem{proposition}[definition]{گزاره}
+
+\usepackage[computeautoilg=on]{xepersian}
+\settextfont[Numbers=Proportional]{Parsi Matn}
+\settextdigitfont[Numbers=Proportional]{Parsi Matn}
+\setmathdigitfont{Parsi Matn}
+
+\SepMark{-}
+
+\title{\textbf{فونت «پارسی متن» - \lr{``Parsi Matn''}}}
+\author{ساده، کارا، آشنا، زیبا}
+
+\date{%
+گونۀ 0.1
+\quad - \quad \today \\
+\lr{Version 1.0 \quad - \quad \latintoday}
+}
+
+\usepackage{ptext}
+\begin{document}
+\maketitle
+
+\vspace*{1cm}
+
+
+\begin{abstract}
+ساخت و توسعۀ فونتِ رایگان، کاری است که انجام آن، با ترکیبِ «علاقه+بیکاری» شدنی است. مقداری از علاقۀ من به سیستم \TeX\ به این خاطر است که سیستمی مانند \TeX\ آن‌قدر از فونت‌ها شناخت دارد و در استفاده از قدرتِ فونت‌ها ورزیده است که حتی شناخته‌شده‌ترین نرم‌افزارهای حروف‌چینی و صفحه‌آرایی، هنوز برخی از امکاناتی که \TeX\ دهه‌ها پیش در استفاده از فونت‌ها به‌کار برده را به‌کار نمی‌برند.
+
+آشنا، زیبا، ساده، کارا -- نام‌هایی که می‌توان از آن‌ها برای توصیف این فونت استفاده کرد. این فونت تلاشی بوده تا نوشتارهای پارسی که با \TeX\ و سیستم‌های برگرفته از آن حروفچینی می‌شوند، در کنار نمادها و فرمول‌های ریاضیاتی، ظاهری شایسته داشته‌باشند.
+\end{abstract}
+
+\newpage
+
+\section{نمونه‌های گوناگون}
+در این قسمت، متن‌هایی با محتواهای گوناگون نوشته‌شده، که به کاربر کمک می‌کند تا یک دیدِ کلی دربارۀ فونت داشته‌باشد.
+
+\subsection{متن عادی}
+با نگاه دقیق‌تر به قلم و کیفیت خوانایی آن و اثر آن بر روی مخاطب، می‌توانیم بپذیریم که تایپوگرافی و حروف‌چینی یک متن به رعایت اصول و ضوابط طراحی قلم بیشتر نیازمند است تا مسائل طراحی گرافیک. استفاده از قلم مناسب راحت خوانده شدن را به خواننده هدیه می‌کند و بی آن‌که خواننده حس کند که طراح در تنظیم حروف‌چینی هنرنمایی کرده است، محیط مناسبی برای خوانایی او ایجاد می‌شود. استفاده از قلم مناسب در یک متن به‌ضرورت نظر دارد و نه به هنر. ما از خواندن بسیاری از متن‌ها لذت می‌بریم، بی آن‌که شیفتهٔ شکل خاص طراحی قلم بشویم، یا حتی ظرایف طراحی آن در ذهن ما حک شود. اگرچه تنوع قلم در نرم‌افزارهای جدید فارسی رو به افزایش است اما لازم به توجه است که در هر یک از این نرم‌افزارها فقط چهار یا پنج قلم مناسب برای متن می‌توان یافت. قلم‌هایی که با فرم‌های تزیینی، دست خط و یا فرم‌های خاص و آزاد طراحی شده‌اند، هیچ‌یک برای کاربرد در یک متن مناسب نیستند. فرم خاص حروف قلم‌های ذکرشده علاوه بر آن‌که برای خوانده شدن متن را دشوار می‌کند، از وقار و تشخص صورت بیرونی متن می‌کاهد. بنابراین لازم است گزینش نوع قلم متن با توجه به محتوا با جدیت و دقت نظر بیشتری انجام گیرد.
+
+\subsection{متن همراه با نمادها و فرمول‌های ریاضی}
+مجموع اعضای $E$، آن هم وقتی که $E=\{0,\pm2,\pm4,\ldots\}$ برابر با صفر است. با دسته‌بندی، می‌توان به سادگی پاسخ را یافت. کافی است دسته‌بندی را به شکل $(0)+(-2+2)+(-4+4)+\cdots$ انجام داد که خاصیتِ قرینه‌بودنِ اعداد، بهتر به چشم می‌آید.
+\begin{definition}[عدد خوب]
+عدد طبیعیِ $k$، یک \emph{عدد خوب }است، اگر معادلۀ درجه دومِ
+\[kx^2-(2k-1)x+\ln(k-0.1)=0\]
+در بازۀ $(-\pi,\pi^2)$ جواب داشته‌باشد.
+\end{definition}
+در اینجا ممکن است پرسشی مطرح شود که آیا
+\[\lim_{x\to\infty} f(2x-\alpha_0)=\cos^{-1}(0.02)
+=\prod_{i=1}^{5000} \frac{A_\alpha B_{\frac{1}{2}-\alpha}}{2.06\times10^{-23}}
+\]
+در حالت کلی برای هر $\alpha\leq0$ برقرار است؟
+
+\begin{proposition}[بخش‌پذیری بر $35$]
+عددی بر $35$ بخش‌پذیر است که بر $7$ و $5$ بخش‌پذیر باشد.
+\end{proposition}
+
+\begin{proof}
+چون $7$ و $5$ نسبت به یکدیگر اوّل هستند، پس اگر عددی بر آن‌ها بخش‌پذیر باشد، بر حاصل‌ضرب آن‌ها، یعنی $35$ نیز بخش‌پذیر است.
+\end{proof}
+
+دربارۀ جمع توان دومِ اعداد طبیعی، در گزارۀ زیر آمده‌است.
+
+\begin{proposition}
+عدد $n\in\mathbb{N}$ دلخواه است. تساوی زیر برای این $n$ برقرار است
+\[
+1^2+2^2+3^2+\cdots+n^2=\sum_{k=1}^n k^2 = \frac{1}{6}(n)(n+1)(2n+1).
+\]
+\end{proposition}
+
+\begin{proof}
+اثبات با استقرای ریاضی. تمرین.
+\end{proof}
+
+\subsection{حالت‌های فونتِ «پارسی متن»}
+
+\subsubsection{عادی (\lr{Regular})}
+
+پیش از آن‌که به تعریف حروف‌چینی بپردازیم، لازم است مقدمه‌ای دربارۀ خوشنویسی (خطاطی) و تفاوت آن با حروف‌چینی ارائه شود. شباهت و یکی دانستن حروف‌چینی و خوشنویسی بر دریافت و آشنایی ما از نوشتن با ماشین حروف‌چینی بی‌اثر نیست. خوشنویسی ظرف مدت کوتاهی پس از پیدایش خط، تولد یافته. خط دست‌نویس، مسیر غیرقابل پیش‌بینی و حسی را طی می‌کند تا به تکامل برسد. هنگام نوشتن با دست، خطاط از همه حالات نو و بدیع در گردش‌های قلم و نقطه‌گذاری‌ها، در ترکیب‌بندی نوشته استفاده می‌کند که شکل تکامل‌یافتۀ آن در ترکیبات و سیاه‌مشق‌های خوشنویسی کاملاً مشهود است.
+
+\subsubsection{پررنگ (\lr{Bold})}
+{\bfseries
+پیش از آن‌که به تعریف حروف‌چینی بپردازیم، لازم است مقدمه‌ای دربارۀ خوشنویسی (خطاطی) و تفاوت آن با حروف‌چینی ارائه شود. شباهت و یکی دانستن حروف‌چینی و خوشنویسی بر دریافت و آشنایی ما از نوشتن با ماشین حروف‌چینی بی‌اثر نیست. خوشنویسی ظرف مدت کوتاهی پس از پیدایش خط، تولد یافته. خط دست‌نویس، مسیر غیرقابل پیش‌بینی و حسی را طی می‌کند تا به تکامل برسد. هنگام نوشتن با دست، خطاط از همه حالات نو و بدیع در گردش‌های قلم و نقطه‌گذاری‌ها، در ترکیب‌بندی نوشته استفاده می‌کند که شکل تکامل‌یافتۀ آن در ترکیبات و سیاه‌مشق‌های خوشنویسی کاملاً مشهود است.
+}
+
+\subsubsection{خوابیده به راست (\lr{Italic})}
+{\itshape
+پیش از آن‌که به تعریف حروف‌چینی بپردازیم، لازم است مقدمه‌ای دربارۀ خوشنویسی (خطاطی) و تفاوت آن با حروف‌چینی ارائه شود. شباهت و یکی دانستن حروف‌چینی و خوشنویسی بر دریافت و آشنایی ما از نوشتن با ماشین حروف‌چینی بی‌اثر نیست. خوشنویسی ظرف مدت کوتاهی پس از پیدایش خط، تولد یافته. خط دست‌نویس، مسیر غیرقابل پیش‌بینی و حسی را طی می‌کند تا به تکامل برسد. هنگام نوشتن با دست، خطاط از همه حالات نو و بدیع در گردش‌های قلم و نقطه‌گذاری‌ها، در ترکیب‌بندی نوشته استفاده می‌کند که شکل تکامل‌یافتۀ آن در ترکیبات و سیاه‌مشق‌های خوشنویسی کاملاً مشهود است.
+}
+
+\subsubsection{خوابیده به راست، پررنگ (\lr{Bold Italic})}
+{\bfseries\itshape
+پیش از آن‌که به تعریف حروف‌چینی بپردازیم، لازم است مقدمه‌ای دربارۀ خوشنویسی (خطاطی) و تفاوت آن با حروف‌چینی ارائه شود. شباهت و یکی دانستن حروف‌چینی و خوشنویسی بر دریافت و آشنایی ما از نوشتن با ماشین حروف‌چینی بی‌اثر نیست. خوشنویسی ظرف مدت کوتاهی پس از پیدایش خط، تولد یافته. خط دست‌نویس، مسیر غیرقابل پیش‌بینی و حسی را طی می‌کند تا به تکامل برسد. هنگام نوشتن با دست، خطاط از همه حالات نو و بدیع در گردش‌های قلم و نقطه‌گذاری‌ها، در ترکیب‌بندی نوشته استفاده می‌کند که شکل تکامل‌یافتۀ آن در ترکیبات و سیاه‌مشق‌های خوشنویسی کاملاً مشهود است.
+}
+
+
+\end{document} \ No newline at end of file
diff --git a/graphics/circuit_macros/CHANGES b/graphics/circuit_macros/CHANGES
index 466b2d8e44..647e124d6b 100644
--- a/graphics/circuit_macros/CHANGES
+++ b/graphics/circuit_macros/CHANGES
@@ -1,5 +1,6 @@
CHANGES
+Version 10.4: New options for source, sarrow, darrow routines.
Version 10.3: Tweaked sfg_init and NeedDpicTools functionality;
macro lin_ang, langle, ACsymbol, DCsymbol, Ysymbol, Deltasymbol,
Autologix. New macro polygon.
diff --git a/graphics/circuit_macros/Copying b/graphics/circuit_macros/Copying
index 6ab5c35895..7368181b7f 100644
--- a/graphics/circuit_macros/Copying
+++ b/graphics/circuit_macros/Copying
@@ -1,4 +1,4 @@
-* Circuit_macros Version 10.3, copyright (c) 2023 J. D. Aplevich under *
+* Circuit_macros Version 10.4, copyright (c) 2023 J. D. Aplevich under *
* the LaTeX Project Public Licence in file Licence.txt. The files of *
* this distribution may be redistributed or modified provided that this *
* copyright notice is included and provided that modifications are clearly *
diff --git a/graphics/circuit_macros/README b/graphics/circuit_macros/README
index 43c6a847b3..2598327896 100644
--- a/graphics/circuit_macros/README
+++ b/graphics/circuit_macros/README
@@ -1,5 +1,5 @@
-* Circuit_macros Version 10.3, copyright (c) 2023 J. D. Aplevich under *
+* Circuit_macros Version 10.4, copyright (c) 2023 J. D. Aplevich under *
* the LaTeX Project Public Licence in file Licence.txt. The files of *
* this distribution may be redistributed or modified provided that this *
* copyright notice is included and provided that modifications are clearly *
diff --git a/graphics/circuit_macros/darrow.m4 b/graphics/circuit_macros/darrow.m4
index 4b29a48560..c563a189dc 100644
--- a/graphics/circuit_macros/darrow.m4
+++ b/graphics/circuit_macros/darrow.m4
@@ -1,40 +1,42 @@
divert(-1)
darrow.m4 Macros for double lines and arrows
-* Circuit_macros Version 10.3, copyright (c) 2023 J. D. Aplevich under *
+* Circuit_macros Version 10.4, copyright (c) 2023 J. D. Aplevich under *
* the LaTeX Project Public Licence in file Licence.txt. The files of *
* this distribution may be redistributed or modified provided that this *
* copyright notice is included and provided that modifications are clearly *
* marked to distinguish them from this distribution. There is no warranty *
* whatsoever for these files. *
+` Some of these macros have uncomfortably many arguments for specifying
+ options, so wrappers beginning with upper-case letters (Dline,
+ Darrow, Darc) are provided and implement key=val;key=val... option
+ specifications. Sometimes however, cleaner code results from using
+ the original macros. Could these be written in a more straightforward
+ fashion? Probably, but the current versions have evolved from macros
+ written very early on and backward compatibility has been kept, with
+ only a few exceptions.
-`Notes: these macros have been reworked (Jan 2013) so that dlthick is the
- total outside width, consistent with solid lines and arrows, and to add
- the !- and -! half-linethick line caps to simplify butting to boxes.
-
- Some of these macros have uncomfortably many arguments for specifying
- options, so wrappers beginning with upper-case letters (Dline, Darrow, Darc)
- are provided and implement key=val;key=val... option specifications.
+ The drawn elements are
+ darc darrow dend dleft dline dright dtee dturn
+ and there are wrappers
+ Darc Darrow Dline
'
-
-=============================================================================
define(`darrow_')
ifdef(`libgen_',,`include(libgen.m4)divert(-1)')
+=============================================================================
+# Style defaults:
Default width (thickness) of double lines
define(`dlthick',`(0.08*scale+lthick)')
-#efine(`dlinewid',`dlthick') Obsolete, keep for a while for compatibility.
`ELement fill color (default white)
- e.g. define(`dfillcolor',`1,0.84,0')
- Obsolete:
- command "\definecolor{gold}{rgb}{1,0.84,0}"
- define(`dfillcolor',gold)'
-define(`dfillcolor',`1,1,1')
+ e.g. define(`dfillcolor',`1,0.84,0')'
+define(`dfillcolor',`1,1,1') `=white'
define(`dfillgrey',1) `fill shade for gpic'
define(`darcrad',`dlthick*2') `default darc radius'
+define(`dfillext',0.25bp__) `extended length of dtee, dleft, dright fill'
`Default length:'
ifdef(`elen_',,`define(`elen_',linewid*3/2)')
@@ -53,103 +55,119 @@ define(`dbelow',`below ifelse(`$1',,`at Here',`$1')-(0,dlthick/2)')
define(`dljust',`ljust ifelse(`$1',,`at Here',`$1')+(dlthick/2,0)')
define(`drjust',`rjust ifelse(`$1',,`at Here',`$1')-(dlthick/2,0)')
- `dline(linespec,start truncation,end truncation,dlthick, ends )
+ `dline(linespec,start truncation,end truncation,dlthick, ends,
+ outline attributes, inner attributes )
ends= blank, x-x, -x, x-, where x means ! or |'
define(`dline',`deleminit_(`$1',,`$4')
- M4DL: line from last line.start to last line.end \
+ M4DL: line invis from last line.start to last line.end \
chop ifelse(`$2',,0,m4dlthk/2) chop ifelse(`$3',,0,m4dlthk/2)
- ifelse(rgbstring(1,1,1),"",,
- `{line thick m4dlthk/(1bp__) from M4DL.start to M4DL.end }
- {line thick m4dlthk/(1bp__)-2*linethick outlined rgbstring(dfillcolor) \
- from M4DL.start \
- ifinstr(`$5',|-,`+vec_(lthick,0)',`$5',!-,`+vec_(lthick/2,0)') \
+ {line thick m4dlthk/(1bp__) `$6' from M4DL.start to M4DL.end }
+ ifelse(rgbstring(dfillcolor),"",,
+ `{line thick m4dlthk/(1bp__)-2*linethick \
+ ifelse(`$7',,`outlined rgbstring(dfillcolor)',`$7') \
+ from M4DL.start \
+ ifinstr(`$5',|-,`+vec_(lthick,0)',`$5',!-,`+vec_(lthick/2,0)') \
to M4DL.end \
- ifinstr(`$5',-|,`-vec_(lthick,0)',`$5',-!,`-vec_(lthick/2,0)') }')
+ ifinstr(`$5',-|,`-vec_(lthick,0)',`$5',-!,`-vec_(lthick/2,0)') }')
ifgpic(`M4dV: vec_(0,m4dlthk/2-lthick/2); shade(dfillgrey,
{line from M4DL.start+(M4dV.x,M4dV.y) to M4DL.end+(M4dV.x,M4dV.y)}
{line from M4DL.start-(M4dV.x,M4dV.y) to M4DL.end-(M4dV.x,M4dV.y)})')
line invis from M4DL.start to M4DL.end')
- `Dline(linespec,params)
- params is a semicolon-separated list of items:
- S truncate at start by dline thickness/2
- E truncate at end by dline thickness/2
- thick=val (total thicknes, ie width)
- ends= x-x or -x or x- where x is ! or |
- |- closed end with full-width line
- !- closed end with half-width line
- eg Dline(from A to B,E;ends=|-)'
-define(`Dline',
- `pushkey_(`$2',thick,dlthick)
- pushkey_(`$2',ends)pushdef(`m4ends',substr(m4ends,1,eval(len(m4ends)-2)))
- dline(`$1',ifinstr(`$2',S,t),ifinstr(`$2',E,t),m4thick,m4ends)
- popdef(`m4ends')popdef(`m4ends')popdef(`m4thick')
- ')
-
- `dleft(at position,dlthick) Turn left,
- leaving current location at exit of corner'
+ `dleft(at position,dlthick,attribs)
+ Turn left, leaving current location
+ at exit of corner.
+ attribs=
+ innershade=(r,g,b)|"color";
+ outline=(r,g,b)|"color";'
define(`dleft',`deleminit_(,ifelse(`$2',,dlthick,`$2'),`$2')
+ pushkeys_(`$3',innershade::N;outline::N;) dnl
ifelse(`$1',,,`move to substr(`$1',eval(index(`$1',t)+1))-vec_(m4dlthk/2,0)')
{ line thick m4dlthk/(1bp__) to rvec_(m4dlthk,0) }
- ifelse(rgbstring(1,1,1),"",,
- `line thick m4dlthk/(1bp__)-2*linethick outlined rgbstring(dfillcolor) \
- to rvec_(m4dlthk/2,0) then to rvec_(m4dlthk/2,m4dlthk/2)')
+ ifelse(rgbstring(dfillcolor),"",,
+ `{line thick m4dlthk/(1bp__)-2*linethick \
+ m4osh(m4innershade,outlined,`dfillcolor') \
+ to rvec_(m4dlthk/2,0) then to rvec_(m4dlthk/2,m4dlthk/2+dfillext)}
+ move to rvec_(m4dlthk/2,0) then to rvec_(m4dlthk/2,m4dlthk/2) ')
ifgpic(`{line from rvec_(0,m4dlthk/2-lthick/2) to rvec_(0,m4dlthk/2-lthick/2)}
{line from rvec_(m4dlthk-lthick/2,m4dlthk/2) \
to rvec_(m4dlthk-lthick/2,-m4dlthk/2+lthick/2) then \
to rvec_(0,-m4dlthk/2+lthick/2)}
- move to rvec_(m4dlthk/2,m4dlthk/2)')
+ move to rvec_(m4dlthk/2,m4dlthk/2)') popdef(`m4innershade',`m4outline')
rp_ang = rp_ang+pi__/2')
- `dright(at position,dlthick) Turn right,
- leaving current location at exit of corner'
+ `dright(at position,dlthick,attribs)
+ Turn right, leaving current location
+ at exit of corner.
+ attribs=
+ innershade=(r,g,b)|"color";
+ outline=(r,g,b)|"color";'
define(`dright',`deleminit_(,ifelse(`$2',,dlthick,`$2'),`$2')
+ pushkeys_(`$3',innershade::N;outline::N;) dnl
ifelse(`$1',,,`move to substr(`$1',eval(index(`$1',t)+1))-vec_(m4dlthk/2,0)')
{ line thick m4dlthk/(1bp__) to rvec_(m4dlthk,0) }
- ifelse(rgbstring(1,1,1),"",,
- `line thick m4dlthk/(1bp__)-2*linethick outlined rgbstring(dfillcolor) \
- to rvec_(m4dlthk/2,0) then to rvec_(m4dlthk/2,-m4dlthk/2)')
+ ifelse(rgbstring(dfillcolor),"",,
+ `{line thick m4dlthk/(1bp__)-2*linethick \
+ m4osh(m4innershade,outlined,`dfillcolor') \
+ to rvec_(m4dlthk/2,0) then to rvec_(m4dlthk/2,-m4dlthk/2-dfillext)}
+ move to rvec_(m4dlthk/2,0) then to rvec_(m4dlthk/2,-m4dlthk/2) ')
ifgpic(`{line from rvec_(0,-m4dlthk/2+lthick/2) \
to rvec_(0,-m4dlthk/2+lthick/2)}
{line from rvec_(m4dlthk-lthick/2,-m4dlthk/2) \
to rvec_(m4dlthk-lthick/2,m4dlthk/2-lthick/2) then \
to rvec_(0,m4dlthk/2-lthick/2)}
- move to rvec_(m4dlthk/2,-m4dlthk/2)')
+ move to rvec_(m4dlthk/2,-m4dlthk/2)') popdef(`m4innershade',`m4outline')
rp_ang = rp_ang-pi__/2')
- `dturn(arg,dlthick)
- Turn arg relative degrees ccw'
+
+ define(`m4osh',`ifelse(`$1',,`ifelse(`$3',,,``$2' rgbstring($3)')',
+ index(`$1',`"'),0,``$2' `$1'' ,
+ ``$2' rgbstring(m4ctrunc(`$1'))')')dnl
+
+ `dturn(arg,dlthick,attribs)
+ Turn arg relative degrees ccw
+ attribs=
+ innershade=(r,g,b)|"color";
+ outline=(r,g,b)|"color";'
define(`dturn',`deleminit_(,ifelse(`$2',,dlthick,`$2'),`$2')
-[S: Here
+[S: Here pushkeys_(`$3',innershade::N;outline::N;)
deg = ifelse(`$1',,0,`$1')
c = cosd(deg); s = sind(deg); sgn = sign(deg); r = (dlthick-lthick)/2
+ G: S+vec_(lthick/2*abs(s),sgn*dlthick/2)
A: S+vec_(lthick/2*abs(s),sgn*r)
B: A+vec_(vscal_(lthick/2*abs(s),c,s))
+ H: G+vec_(vscal_(lthick/2*abs(s),c,s))
C: S+vec_(0, sgn*r)
+ J: S+vec_(0, sgn*dlthick/2)
if deg==0 then {t = 0} else { t = (1-c)/s } # t = tan(deg/2)
D: A+vec_(vscal_(r*2,sgn*t,-sgn))
E: B+vec_(vscal_(r*2,sgn*s,-sgn*c))
F: S+vec_(0,-sgn*r)
- T: 0.5 between A and D
X: 0.5 between B and E
- ifelse(rgbstring(1,1,1),"",,
- `line thick r*2/(1bp__) outlined rgbstring(dfillcolor) \
- from S to T then to X')
+ ifelse(rgbstring(dfillcolor),`""',,`line thick 0 \
+ m4osh(m4innershade,outlined,`dfillcolor') \
+ m4osh(m4innershade,shaded,`dfillcolor') \
+ from S to F then to D then to E then to H then to G then to J then to S')
ifgpic(`m4tmpth = linethick; linethick=0
shade(dfillgrey,`line from C to A then to B; line from E to D then to F')
linethick = m4tmpth')
- line from C to A then to B
- line from E to D then to F
-#{"A" at A;"B" at B;"C" at C;"D" at D;"E" at E; "F" at F;"T" at T;"X" at X}
- `$3'] with .S at Here
+ line thick lthick/(1bp__) m4osh(m4outline,outlined) from C to A then to B
+ line thick lthick/(1bp__) m4osh(m4outline,outlined) from E to D then to F
+# Loopover_(`Px',`"Px" at Px above;', A,B,C,D,E,F,S,X)
+# Loopover_(`Px',`"Px" at Px above;', G,H,J)
+ `$4' popdef(`m4innershade',`m4outline')] with .S at Here
move to last [].X
ifelse(`$1',,,`Point_(`$1'+rp_ang*rtod_)') ')
`darrow(linespec, start truncation, end truncation, dlthick,
- arrow wid, arrow ht, terminals)
+ arrowhd wid, arrowhd ht, terminals,color attribs)
terminals is blank or x-, ->, x->, <-, <-x, <-> where x is
! for closed end with half-width line or
| for closed end with full-width line'
+ `e.g.,
+ linethick=5; rgbdraw(1,0,0,darrow(down_ 2,,,0.5,0.75,0.75,|)'
+
define(`darrow',`deleminit_(`$1',,`$4')
+ arrow invis from last line.start to last line.end
ifelse(ifinstr(`$7',<->,,`$7',<-,T),T,
`define(`m4dx',`ifinstr(`$7',|,|,`$7',!,!)'->)dnl
M4DA: line invis from last line.end to last line.start \
@@ -170,7 +188,7 @@ define(`darrow',`deleminit_(`$1',,`$4')
W: vec_(lthick/2,0)
X: ifinstr(`$7',<->,C,m4dx,!,S,m4dx,|,S+(W.x,W.y),S)
ifgpic(`shade(dfillgrey,') line dnl
- ifelse(rgbstring(1,1,1),"",,`shaded rgbstring(dfillcolor)') from dnl
+ ifelse(rgbstring(dfillcolor),"",,`shaded rgbstring(dfillcolor)') `$8' from dnl
ifinstr(m4dx,|,`X to X+(V.x,V.y) then',`X+(V.x,V.y)') to \
E-(T.x,T.y)+(V.x,V.y) then to E-(T.x,T.y)+(Vt.x,Vt.y) \
then to E-(P.x,P.y) \
@@ -195,109 +213,187 @@ define(`darrow',`deleminit_(`$1',,`$4')
`arrow invis from M4DA.start to M4DA.end')
')
- `Darrow(linespec,params)
- params is a semicolon-separated list of items:
- S truncate at start by dline thickness/2
- E truncate at end by dline thickness/2
- thick=val (total thicknes, ie width)
- wid=val (arrowhead width)
- ht=val (arrowhead height)
- ends= -> or x-> or <- or <-x or <-> where x is | or !
- |- closed end with full-width line
- !- closed end with half-width line
- eg Darrow(from A to B,E;ends=<-|)'
-define(`Darrow',
- `pushkey_(`$2',thick,dlthick)
- pushkey_(`$2',wid,dlthick*3/2)
- pushkey_(`$2',ht,dlthick)
- pushkey_(`$2',ends)pushdef(`m4ends',substr(m4ends,1,eval(len(m4ends)-2)))
- darrow(`$1',ifinstr(`$2',S,t),ifinstr(`$2',E,t),m4thick,m4wid,m4ht,m4ends)dnl
- popdef(`m4ends')popdef(`m4ends')popdef(`m4ht',`m4wid',`m4thick')')
-
- `dtee([L|R],dlthick) Construct tee with tail right,
- left, or back along current direction, leaving
- current location at tee centre; eg
+ `dtee([L|R],dlthick|attribs)
+ Construct tee with tail to back (default), left,
+ or right of current direction, leaving current
+ location at tee centre; eg
dline(right_,,t); dtee(R);
- { darrow(down_,t) }; darrow(right_,t)'
-define(`dtee',`deleminit_(,ifelse(`$2',,dlthick,`$2'),`$2')
+ { darrow(down_,t) }; darrow(right_,t)
+ attribs:
+ thick=expr; (line thickness in drawing units)
+ innershade=(r,g,b)|"color";
+ outline=(r,g,b)|"color";'
+define(`dtee',`pushkeys_(`$2',thick:m4nil;innershade::N;outline::N;)dnl
+ deleminit_(,ifelse(m4thick,(m4nil),dlthick,m4thick))
move to last line.c
- ifelse(`$1',L,`rp_ang = rp_ang-pi_/2',`$1',R,`rp_ang = rp_ang+pi_/2')
- ifelse(rgbstring(1,1,1),"",,
- `{line thick dlthick/(1bp__) from rvec_(-m4dlthk/2,0) to rvec_(m4dlthk/2,0)}
- {line thick dlthick/(1bp__)-2*linethick outlined rgbstring(dfillcolor) \
- to rvec_(-m4dlthk/2,0) }
- {line thick dlthick/(1bp__)-2*linethick outlined rgbstring(dfillcolor) \
- from rvec_(0,-m4dlthk/2) to rvec_(0,m4dlthk/2) } ')
+ ifelse(`$1',L,`rp_ang = rp_ang-pi_/2', `$1',R,`rp_ang = rp_ang+pi_/2')
+ ifelse(m4innershade,,,`pushdef(`dfillcolor',`m4ctrunc(m4innershade)')') dnl
+ {line thick m4dlthk/(1bp__) dnl
+ ifelse(m4outline,,,index(m4outline,`"'),0,`outlined m4outline',
+ `outlined rgbstring(m4ctrunc(m4outline))') dnl
+ from rvec_(-m4dlthk/2,0) to rvec_(m4dlthk/2,0)}
+ pushdef(`m4dll',(m4dlthk/2+dfillext))dnl
+ pushdef(`m4df',`rgbstring(dfillcolor)')dnl
+ ifelse(m4df,"",,
+ `{line thick m4dlthk/(1bp__)-2*linethick outlined m4df to rvec_(-m4dll,0) }
+ {line thick m4dlthk/(1bp__)-2*linethick outlined m4df \
+ from rvec_(0,-m4dll) to rvec_(0,m4dll) } ')
ifgpic(`m4tmpth = linethick; linethick=0; shade(dfillgrey,
{line from rvec_(-m4dlthk/2, m4dlthk/2) to rvec_( m4dlthk/2, m4dlthk/2)}
{line from rvec_( m4dlthk/2,-m4dlthk/2) to rvec_(-m4dlthk/2,-m4dlthk/2)})
- linethick = m4tmpth') ')
+ linethick = m4tmpth')
+ ifelse(m4innershade,,,`popdef(`dfillcolor')')dnl
+ popdef(`m4thick',`m4innershade',`m4outline',`m4dll',`m4df')')
- Close off line end: `dend([at position])'
-define(`dend',`deleminit_(,lthick)
- ifelse(`$1',,,`move to substr(`$1',eval(index(`$1',at)+2))')
- {line from rvec_(0,-dlthick/2) to rvec_(0,dlthick/2)}
- move to rvec_(lthick/2,0) ')
+ `dend([at position],dlthick|attribs)
+ Close off line end
+ attribs:
+ thick=expr; (line thickness in drawing units)
+ outline=(r,g,b)|"color";'
+define(`dend',`pushkeys_(`$2',thick:m4nil;outline::N;)dnl
+ pushdef(`m4thk',`ifelse(m4thick,(m4nil),dlthick,m4thick)')dnl
+ ifelse(`$1',,,`move to patsubst(`$1',`^ *at *')')
+ {line ifelse(m4outline,,,`outlined m4outline') ifinstr(`$2',=,,`$2') dnl
+ from rvec_(0,-m4thk/2) to rvec_(0,m4thk/2) }
+ move to rvec_(last line.thick pt__/2,0)dnl
+ popdef(`m4thick',`m4outline',`m4thk')')
`darc(center pos, radius, start radians, end radians, dlthick,
- arrow wid, arrow ht, symbols ) draw CCW arc
+ arrow wid, arrow ht, symbols,
+ outline attributes, inner attributes )
+ draw CCW arc in a [ ] block
symbols= x-, -x, x-x, ->, x->, <-, <-x, <->
where x is | or ! ; arrowheads for dpic only '
-define(`darc',`[ C: (0,0)
- dlth=ifelse(`$5',,dlthick,`$5')
- w = ifelse(`$6',,dlth*1.75,(`$6'))
- h = ifelse(`$7',,dlth,(`$7'))
- r = ifelse(`$2',,darcrad,`($2)')
- p = sqrt((w/2)^2+h^2)/(w/2)*lthick
- as = ifelse(`$3',,rp_ang-pi__/2,`$3')
- tas = as ifinstr(`$8',<-,`+ p/r')
- ae = ifelse(`$4',,as+pi__/2,`$4')
- tae = ae ifinstr(`$8',<-,`- p/r')
- S: (rect_(r,as)); TS: (rect_(r,tas))
- E: (rect_(r,ae)); TE: (rect_(r,tae))
- arc thick dlth/(1bp__) wid w ht h dnl
- ifinstr(`$8',<-,<-`'ifinstr(`$8',->,>),`$8',->,->) from S to E with .c at C
- ifelse(rgbstring(1,1,1),"",,
- `arc thick dlth/(1bp__)-linethick*2 wid (h-p-lthick)/h*w ht h-p-lthick \
- colored rgbstring(dfillcolor) \
+pushdef(`darc',`pushdef(`m4r',`(ifelse(`$2',,darcrad,`($2)'))') dnl
+ pushdef(`m4C',`ifelse(`$1',,rvec_(0,m4r),`$1')') dnl
+ pushdef(`m4as',`(ifelse(`$3',,rp_ang-pi__/2,`$3'))') dnl
+ pushdef(`m4ae',`(ifelse(`$4',,m4as+pi__/2,`$4'))') dnl
+ arc invis from m4C+(rect_(m4r,m4as)) to m4C+(rect_(m4r,m4ae)) with .c at m4C
+ C_darc: last arc.c; Start_darc: last arc.start; End_darc: Here
+ r_darc = m4r; as_darc = m4as; ae_darc = m4ae popdef(`m4r',`m4C',`m4as',`m4ae')
+ dlth_darc=ifelse(`$5',,dlthick,(`$5'))
+ w_darc = ifelse(`$6',,dlth_darc*1.75,(`$6'))
+ h_darc = ifelse(`$7',,dlth_darc,(`$7'))
+ p_darc = sqrt((w_darc/2)^2+h_darc^2)/(w_darc/2)*lthick
+ tas_darc = as_darc ifinstr(`$8',<-,`+ p_darc/r_darc')
+ tae_darc = ae_darc ifinstr(`$8',->,`- p_darc/r_darc')
+ TS: C_darc+(rect_(r_darc,tas_darc))
+ TE: C_darc+(rect_(r_darc,tae_darc))
+ { arc thick dlth_darc/(1bp__) wid w_darc ht h_darc dnl
+ ifinstr(`$8',<-,<-`'ifinstr(`$8',->,>),`$8',->,->) dnl
+ `$9' from Start_darc to End_darc with .c at C_darc }
+ pushdef(`m4inn',`ifelse(`$10',,`ifelse(rgbstring(dfillcolor),"",,
+ ifdef(`dfillcolor',T),T,`outlined rgbstring(dfillcolor)')',`$10')') dnl
+ ifelse(m4inn,,,
+ `arc thick dlth_darc/(1bp__)-linethick*2 \
+ wid (h_darc-p_darc-lthick)/h_darc*w_darc ht h_darc-p_darc-lthick \
ifinstr(`$8',<-,<-`'ifinstr(`$8',->,>),`$8',->,->) \
- from TS to TE rad r with .c at C')
- ifinstr(`$8',|-,`X: (vscal_(lthick/2,-sin(as),cos(as)))
- line from C+(rect_(r+dlthick/2-lthick/2,as))+(X.x,X.y) to \
- C+(rect_(r-dlthick/2+lthick/2,as))+(X.x,X.y)',
- `$8',!-,`X: (vscal_(lthick/4,-sin(as),cos(as)))
- line thick linethick/2 \
- from C+(rect_(r+dlthick/2-lthick/4,as))+(X.x,X.y) to \
- C+(rect_(r-dlthick/2+lthick/4,as))+(X.x,X.y)')
- ifinstr(`$8',-|,`X: (vscal_(lthick/2,-sin(ae),cos(ae)))
- line from C+(rect_(r+dlthick/2-lthick/2,ae))-(X.x,X.y) to \
- C+(rect_(r-dlthick/2+lthick/2,ae))-(X.x,X.y)',
- `$8',!-,`X: (vscal_(lthick/4,-sin(ae),cos(ae)))
- line thick linethick/2 \
- from C+(rect_(r+dlthick/2-lthick/4,ae))-(X.x,X.y) to \
- C+(rect_(r-dlthick/2+lthick/4,ae))-(X.x,X.y)')
- rp_ang := ae+pi__/2
- ] with ifelse(`$1',,.S at Here,.C at `$1')
- move to last [].E
- ')
+ m4inn from TS to TE with .c at C_darc') popdef(`m4inn')
+ ifinstr(`$8',|-,`X: (vscal_(lthick/2,-sin(as_darc),cos(as_darc)))
+ line `$9' \
+ from C_darc+(rect_(r_darc+dlth_darc/2-lthick/2,as_darc))+X to \
+ C_darc+(rect_(r_darc-dlth_darc/2+lthick/2,as_darc))+X',
+ `$8',!-,`X: (vscal_(lthick/4,-sin(as_darc),cos(as_darc)))
+ line `$9' thick linethick/2 \
+ from C_darc+(rect_(r_darc+dlth_darc/2-lthick/4,as_darc))+X to \
+ C_darc+(rect_(r_darc-dlth_darc/2+lthick/4,as_darc))+X')
+ ifinstr(`$8',-|,`X: (vscal_(lthick/2,-sin(ae_darc),cos(ae_darc)))
+ line `$9' from C_darc+(rect_(r_darc+dlth_darc/2-lthick/2,ae_darc))-X to \
+ C_darc+(rect_(r_darc-dlth_darc/2+lthick/2,ae_darc))-X',
+ `$8',-!,`X: (vscal_(lthick/4,-sin(ae_darc),cos(ae_darc)))
+ line `$9' thick linethick/2 \
+ from C_darc+(rect_(r_darc+dlth_darc/2-lthick/4,ae_darc))-X to \
+ C_darc+(rect_(r_darc-dlth_darc/2+lthick/4,ae_darc))-X')
+ rp_ang := ae_darc+pi__/2 ')
`Darc(center pos, radius, start radians, end radians, params)
+ or
+ Darc(,params)
draw CCW arc
- params is a semicolon-separated list of items:
- thick=val (total thicknes, ie width)
- wid=val (arrowhead width)
- ht=val (arrowhead height)
+ params is a semicolon-separated list:
+ thick=val; (total thicknes, ie width)
+ wid=val; (arrowhead width)
+ ht=val; (arrowhead height)
+ outline=color; (e.g. "red" or (1,0,0) )
+ innershade=color; (e.g. (0,1,1) or "cyan")
ends= x-, -x, x-x, ->, x->, <-, <-x, <-> where x is ! or |
< and > work for dpic only
|- closed end with full-width line
!- closed end with half-width line
+ If arg1 is null then the additional list items are accepted:
+ centre=Position;
+ rad=expr;
+ startdeg=degrees; NOTE: degrees
+ enddeg=degrees; NOTE: degrees
eg Darc(C,r,ang1,ang2,ends=<-|)'
define(`Darc',
- `pushkey_(`$5',thick,dlthick)
- pushkey_(`$5',wid,dlthick*1.75)
- pushkey_(`$5',ht,dlthick)
- pushkey_(`$5',ends)pushdef(`m4ends',substr(m4ends,1,eval(len(m4ends)-2)))
- darc(`$1',`$2',`$3',`$4',m4thick,m4wid,m4ht,m4ends)dnl
- popdef(`m4ends')popdef(`m4ends')popdef(`m4ht',`m4wid',`m4thick')')
+ `pushkeys_(ifelse(`$1',,`$2',`$5'),thick:dlthick;wid:dlthick*1.75;ht:dlthick;
+ outline::N;innershade::N;ends::N;centre:Here:N;rad:darcrad;
+ startdeg::;enddeg::;)dnl
+ pushdef(`m4ou',`m4osh(m4outline,outlined)')dnl
+ pushdef(`m4sh',`m4osh(m4innershade,outlined,`dfillcolor')')dnl
+ ifelse(`$1',,
+ `darc(m4centre,m4rad,m4startdeg*dtor_,m4enddeg*dtor_,
+ m4thick,m4wid,m4ht,m4ends,m4ou,m4sh)',
+ `darc(`$1',`$2',ifelse(m4startdeg,,`$3',m4startdeg*dtor_),
+ ifelse(m4enddeg,,`$4',m4enddeg*dtor_),
+ m4thick,m4wid,m4ht,m4ends,m4ou,m4sh)') dnl
+ popdef(`m4thick',`m4wid',`m4ht',`m4outline',`m4innershade',`m4ends',
+ `m4centre',`m4rad',`m4startdeg',`m4enddeg',`m4ou',`m4sh')')')
+
+ `darrow(linespec,params)
+ params is a semicolon-separated list of items:
+ s; truncate at start by dline thickness/2
+ e; truncate at end by dline thickness/2
+ thick=expr; (total thicknes, ie width)
+ wid=expr; (arrowhead width)
+ ht=expr; (arrowhead height)
+ outline=color; (e.g. "red" or (1,0,0) )
+ innershade=color; (e.g. (0,1,1) or "cyan")
+ name=name; (name of underlying invis line)
+ ends= -> or x-> or <- or <-x or <-> where x is | or !
+ |- closed end with full-width line
+ !- closed end with half-width line
+ eg Darrow(from A to B,E;ends=<-|)'
+define(`Darrow',
+ `pushkeys_(`$2',thick:dlthick;wid:dlthick*3/2;ht:dlthick;
+ outline::N;innershade::N;name::N;ends::N;)dnl
+ ifelse(m4innershade,,,`pushdef(`dfillcolor',`m4ctrunc(m4innershade)')')dnl
+ pushdef(`m4nm',ifelse(m4name,,,m4name:))dnl
+ ifelse(m4outline,,
+ `m4nm darrow(`$1',ifinstr(`$2',S,t),ifinstr(`$2',E,t),
+ m4thick,m4wid,m4ht,m4ends)',
+ index(m4outline,`"'),0,
+ `m4nm darrow(`$1',ifinstr(`$2',S,t),ifinstr(`$2',E,t),
+ m4thick,m4wid,m4ht,m4ends,outlined m4outline)',
+ `rgbdraw(m4ctrunc(m4outline),
+ m4nm darrow(`$1',ifinstr(`$2',S,t),ifinstr(`$2',E,t),
+ m4thick,m4wid,m4ht,m4ends))')
+ ifelse(m4innershade,,,`popdef(`dfillcolor')')dnl
+ popdef(`m4ends',`m4thick',`m4wid',`m4ht',`m4outline',`m4innershade',`m4name',
+ `m4nm')')
+
+ `Dline(linespec,params)
+ params is a semicolon-separated list of items:
+ S; truncate at start by dline thickness/2
+ E; truncate at end by dline thickness/2
+ thick=val; (total thicknes, ie width)
+ outline=color; (e.g. "red" or (1,0,0) )
+ innershade=color; (e.g. (0,1,1) or "cyan")
+ name=Name;
+ ends= x-x; or -x; or x-; where x is ! or |
+ |- closed end with full-width line
+ !- closed end with half-width line
+ eg Dline(from A to B,E;ends=|-)'
+define(`Dline',
+ `pushkeys_(`$2',thick:dlthick;outline::N;innershade::N;ends::N;name::N;)dnl
+ ifelse(m4name,,,m4name:) dline(`$1',ifinstr(`$2',S;,t),ifinstr(`$2',E;,t),
+ m4thick,m4ends,m4osh(m4outline,outlined),
+ m4osh(m4innershade,outlined,`dfillcolor'))
+ popdef(`m4thick',`m4outline',`m4innershade',`m4ends',`m4name') ')
+
+define(`m4ctrunc',`substr(`$1',1,eval(len(`$1')-2))')
+#efine(`mark',`{dot(at `$1'); "`$1'" at last [].s below}')
+#efine(`pure',`patsubst(`$1',`"',`\\"')')
divert(0)dnl
diff --git a/graphics/circuit_macros/doc/Circuit_macros.pdf b/graphics/circuit_macros/doc/Circuit_macros.pdf
index e9b0b671bf..dcc3027e97 100644
--- a/graphics/circuit_macros/doc/Circuit_macros.pdf
+++ b/graphics/circuit_macros/doc/Circuit_macros.pdf
Binary files differ
diff --git a/graphics/circuit_macros/doc/SourcesMan.m4 b/graphics/circuit_macros/doc/SourcesMan.m4
index 8e82b3f832..9f39d1e044 100644
--- a/graphics/circuit_macros/doc/SourcesMan.m4
+++ b/graphics/circuit_macros/doc/SourcesMan.m4
@@ -14,6 +14,7 @@ define(`NL',`; move down $1; right_')
{source ; move ; "`source'" ljust} NL
{source(,I) ; move ; "`source(,I)'" ljust} NL
{source(,i) ; move ; "`source(,i)'" ljust} NL
+ {source(,ii) ; move ; "`source(,ii)'" ljust} NL
{source(,V) ; move ; "`source(,V)'" ljust} NL
{source(,v) ; move ; "`source(,v)'" ljust} NL
{source(,S) ; move ; "`source(,S)'" ljust} NL
diff --git a/graphics/circuit_macros/doc/Version.tex b/graphics/circuit_macros/doc/Version.tex
index 73fb7dd577..1f7ee14733 100644
--- a/graphics/circuit_macros/doc/Version.tex
+++ b/graphics/circuit_macros/doc/Version.tex
@@ -1 +1 @@
-Version 10.3
+Version 10.4
diff --git a/graphics/circuit_macros/doc/body.tex b/graphics/circuit_macros/doc/body.tex
index e229888d91..296ba4e295 100644
--- a/graphics/circuit_macros/doc/body.tex
+++ b/graphics/circuit_macros/doc/body.tex
@@ -946,6 +946,7 @@ and for power-system diagrams, macros
and
{\tt Ysymbol(at {\sl position, keys,} U|D|L|R|{\sl degrees})},
+\enlargethispage{\baselineskip}
Diodes are shown in \FR{Diodes}.
\begin{figure}[H]
\input DiodesMan
@@ -2481,7 +2482,7 @@ For the slash symbol, the {\tt sl\_slash} keys are valid.
The fourth argument is like the third but controls a breaker or slash
symbol in the output
-lead. The example, {\tt sl\_transformer(right\_ elen\_ from A,,C,C)}
+lead. The example, {\tt sl\_transformer(right\_ elen\_ from A,{},C,C)}
draws a transformer with closed breakers in the input and output leads.
Exception are the {\tt sl\_drawout()} element which does not have breakers
diff --git a/graphics/circuit_macros/doc/defines.tex b/graphics/circuit_macros/doc/defines.tex
index cf87a5b02f..7f3ceea1b3 100644
--- a/graphics/circuit_macros/doc/defines.tex
+++ b/graphics/circuit_macros/doc/defines.tex
@@ -187,14 +187,14 @@
{cct}
{line (dotted, dashed permissible) with centred arrowhead
\seesect{Twoterminal:}}
+\macrodef{assign3}{assign3}{({\sl var name,var name,var name,arg4,arg5,arg6})}
+ {gen}
+ {Assigns \$1 = arg4 if \$1 is nonblank; similarly \$2 = arg5 and \$3 = arg6}
\macrodef{AutoGate}{AutoGate}{}
{log}
{Draw the tree for a gate as in the {\tt Autologix} macro. No inputs
or external connections are drawn. The names of the internal gate
inputs are stacked in {\tt `AutoInNames'}}
-\macrodef{assign3}{assign3}{({\sl var name,var name,var name,arg4,arg5,arg6})}
- {gen}
- {Assigns \$1 = arg4 if \$1 is nonblank; similarly \$2 = arg5 and \$3 = arg6}
\macrodef{Autologix}{Autologix}%
{({\sl Boolean function sequence},%
[N[oconnect]][L[eftinputs]][R][V][M][;offset={\sl value}])}
@@ -239,14 +239,6 @@
{\tt Autologix(Xor([PN],And(x,y),And(x,y)),LRV)}}
\Letter{B}%
-\macrodef{b\_}{b_}{}
- {gen}
- {blue color value}
-\macrodef{b\_current}{b_current}{({\sl label},{\sl pos},In|Out,Start|End,{\sl
- frac})}
- {cct}
- {labelled branch-current arrow to {\sl frac} between branch end and body
- \seesect{Branchcurrent:}}
\macrodef{basename\_}{basename_}{({\sl string sequence, separator})}
{gen}
{Extract the rightmost name from a sequence of names separated by arg2
@@ -255,6 +247,14 @@
{cct}
{n-cell battery: default 1 cell,
R=reversed polarity\seesect{Twoterminal:}}
+\macrodef{b\_}{b_}{}
+ {gen}
+ {blue color value}
+\macrodef{b\_current}{b_current}{({\sl label},{\sl pos},In|Out,Start|End,{\sl
+ frac})}
+ {cct}
+ {labelled branch-current arrow to {\sl frac} between branch end and body
+ \seesect{Branchcurrent:}}
\macrodef{beginshade}{beginshade}{({\sl gray value})}
{gen}
{begin gray shading, see {\tt shade}
@@ -270,10 +270,10 @@
{gen}
{Position {\sl distance} from {\sl Pos1} toward {\sl Pos2}. If
the fourth arg is {\tt R} then from {\sl Pos2} toward {\sl Pos1}.}
-\macrodef{bi\_tr}{bi_tr}{(\linespec,L|R,P,E)}
- {cct}
- {left or right, N- or P-type bipolar transistor, without or with envelope
- \seesect{Semiconductors:}}
+\macrodef{binary\_}{binary_}{($n$, [$m$])}
+ {gen}
+ {binary representation of $n,$ left padded to $m$ digits if the second
+ argument is nonblank}
\macrodef{bi\_trans}{bi_trans}{(\linespec,L|R,{\sl chars},E)}
{cct}
{ bipolar transistor, core left or right; chars:
@@ -291,15 +291,10 @@
{\tt [u]T}=thyristor trigger line;
arg 4 = E: envelope
\seesect{Semiconductors:}}
-\macrodef{binary\_}{binary_}{($n$, [$m$])}
- {gen}
- {binary representation of $n,$ left padded to $m$ digits if the second
- argument is nonblank}
-\macrodef{BOX\_gate}{BOX_gate}{({\sl inputs,output,swid,sht,label})}
- {log}
- {output=[{\tt P|N}], inputs=[{\tt P|N}]$\ldots$, sizes swid and sht
- in {\tt L\_unit}s (default {\tt AND\_wd} = 7)
- \seesect{Logicgates:}}
+\macrodef{bi\_tr}{bi_tr}{(\linespec,L|R,P,E)}
+ {cct}
+ {left or right, N- or P-type bipolar transistor, without or with envelope
+ \seesect{Semiconductors:}}
\macrodef{boxcoord}{boxcoord}{({\sl planar obj},{\sl x fraction},{\sl y
fraction})}
{gen}
@@ -309,6 +304,11 @@
{evaluate, e.g.\ {\sl name}{\tt \_w} if defined, else {\sl default\/}
if given, else 0 {\tt v} gives sum of {\tt d} and {\tt h} values
\seesect{Interaction:}}
+\macrodef{BOX\_gate}{BOX_gate}{({\sl inputs,output,swid,sht,label})}
+ {log}
+ {output=[{\tt P|N}], inputs=[{\tt P|N}]$\ldots$, sizes swid and sht
+ in {\tt L\_unit}s (default {\tt AND\_wd} = 7)
+ \seesect{Logicgates:}}
\macrodef{bp\_\_}{bp__}{}
{gen}
{big-point-size factor, in scaled inches, ({\tt *scale/72})}
@@ -316,12 +316,6 @@
{cct}
{pushbutton switch R=right orientation (default L=left);
chars: O= normally open, C=normally closed }
-\macrodef{BUF\_ht}{BUF_ht}{}
- {log}
- {basic buffer gate height in {\tt L\_unit}s}
-\macrodef{BUF\_wd}{BUF_wd}{}
- {log}
- {basic buffer gate width in {\tt L\_unit}s}
\macrodef{BUFFER\_gate}{BUFFER_gate}{(\linespec, [N|B],
{\sl wid, ht,} [N|P]\char42, [N|P]\char42, [N|P]\char42)}
{log}
@@ -339,14 +333,17 @@
Args 4-6 allow alternative
definitions of respective {\tt In, NE,}
and {\tt SE} argument sequences }
+\macrodef{BUF\_ht}{BUF_ht}{}
+ {log}
+ {basic buffer gate height in {\tt L\_unit}s}
+\macrodef{BUF\_wd}{BUF_wd}{}
+ {log}
+ {basic buffer gate width in {\tt L\_unit}s}
\macrodef{buzzer}{buzzer}{( U|D|L|R|{\sl degrees, size,}[C])}
{cct}
{buzzer, {\sl In1} to {\sl In3} defined, C=curved
\seesect{Composite:}}
\Letter{C}%
-\macrodef{c\_fet}{c_fet}{(\linespec,R,P)}
- {cct}
- {left or right, plain or negated pin simplified MOSFET}
\macrodef{capacitor}{capacitor}{(\linespec,{\sl chars},R,
{\sl height}, {\sl wid})}
{cct}
@@ -385,6 +382,9 @@
minimum long dash len, short dash len, gap len}}
{gen}
{Technical drawing centerline}
+\macrodef{c\_fet}{c_fet}{(\linespec,R,P)}
+ {cct}
+ {left or right, plain or negated pin simplified MOSFET}
\macrodef{Cintersect}{Cintersect}{({\sl Pos1, Pos2, rad1, rad2,} [R])}
{gen}
{Upper (lower if arg5={\tt R}) intersection of circles at
@@ -457,14 +457,14 @@
{\sl phase} )}
{gen}
{function $a\times\cos(\omega t + \phi)$ }
+\macrodef{cross3D}{cross3D}{({\sl x1,y1,z1,x2,y2,z2})}
+ {3D}
+ {cross product of two triples}
\macrodef{cross}{cross}{(at {\sl location, size}|{\sl keys})}
{gen}
{Plots a small cross. The possible key-value pairs are:
{\tt size={\sl expr};},
{\tt line={\sl attributes};} }
-\macrodef{cross3D}{cross3D}{({\sl x1,y1,z1,x2,y2,z2})}
- {3D}
- {cross product of two triples}
\macrodef{crossover}{crossover}{(\linespec, [L|R][:{\sl line attributes}],
Line1, Line2, .{.}.)}
{cct}
@@ -476,10 +476,6 @@
{cct}
{controlled-source width}
\Letter{D}%
-\macrodef{d\_fet}{d_fet}{(\linespec,R,P,E|S)}
- {cct}
- {left or right, N or P depletion MOSFET, envelope or simplified
- \seesect{Semiconductors:}}
\macrodef{dabove}{dabove}{(at {\sl location})}
{darrow}
{above (displaced dlinewid/2)}
@@ -488,18 +484,6 @@
{DAC with defined width, height, and number of inputs {\tt In$i$},
top terminals {\tt N$i$}, ouputs {\tt Out$i$},
and bottom terminals~{\tt S$i$} \seesect{Logicgates:}}
-\macrodef{darc}{darc}{({\sl center position},
- {\sl radius}, {\sl start radians}, {\sl end radians}, {\sl dline thickness},
- {\sl arrowhead wid}, {\sl arrowhead ht},
- {\sl terminals})}
- {darrow}
- {See also {\tt Darc}.
- CCW arc in {\tt dline} style, with closed ends or (dpic only) arrowheads.
- Permissible {\sl terminals}:
- {\sl x}{\tt -},
- {\tt -}{\sl x}, {\sl x}{\tt -}{\sl x}, {\tt ->}, {\sl x}{\tt ->},
- {\tt <-}, {\tt <-}{\sl x}, {\tt <->}
- where {\sl x} means {\tt |} or (half-thickness line) {\tt !}.}
\macrodef{Darc}{Darc}{({\sl center position},
{\sl radius}, {\sl start radians}, {\sl end radians},
{\sl parameters})}
@@ -512,6 +496,20 @@
{\tt -}{\sl x}, {\sl x}{\tt -}{\sl x}, {\tt ->}, {\sl x}{\tt ->},
{\tt <-}, {\tt <-}{\sl x}, {\tt <->}
where {\sl x} means {\tt |} or (half-thickness line) {\tt !}.}
+\macrodef{darc}{darc}{({\sl center position},
+ {\sl radius}, {\sl start radians}, {\sl end radians}, {\sl dline thickness},
+ {\sl arrowhead wid}, {\sl arrowhead ht},
+ {\sl end symbols}, {\sl outline attributes}, {\sl inner attributes})}
+ {darrow}
+ {See also {\tt Darc}.
+ CCW arc in {\tt dline} style, with closed ends or (dpic only) arrowheads.
+ Permissible {\sl end symbols}:
+ {\sl x}{\tt -},
+ {\tt -}{\sl x}, {\sl x}{\tt -}{\sl x}, {\tt ->}, {\sl x}{\tt ->},
+ {\tt <-}, {\tt <-}{\sl x}, {\tt <->}
+ where {\sl x} means {\tt |} or (half-thickness line) {\tt !}.
+ An inner arc is drawn overlaying the outer arc.
+ Example: {\tt darc(,{,},{,},{,},{,}outlined "red",outlined "yellow")}.}
\macrodef{Darlington}{Darlington}{(L|R,{\sl chars})}
{cct}
{Composite Darlington pair Q1 and Q2 with internal locations E, B, C;
@@ -524,33 +522,44 @@
R2= Q2 bias resistor; E1= ebox,
Z= zener bias diode
\seesect{Semiconductors:}}
-\macrodef{darrow\_init}{darrow_init}{}
+\macrodef{darrow}{darrow}{(\linespec,
+ t,t,{\sl width},{\sl arrowhd wd},{\sl arrowhd ht},{\sl parameters},
+ {\sl color attributes})}
{darrow}
- {initialize darrow drawing parameters (reads {\tt darrow.m4})}
+ {See also {\tt Darrow}.
+ Double arrow, truncated at beginning (arg2={\tt t}) or
+ end (arg3={\tt t}), specified sizes,
+ with arrowhead and optional closed stem. The parameters (arg7) are
+ {\tt {\sl x}-} or {\tt ->} or {\tt {\sl x}->} or {\tt <-} or {\tt <-{\sl x}}
+ or {\tt <->} where {\sl x} is {\tt |} or {\tt !}.
+ The {\tt !-} or {\tt -!} parameters close
+ the stem with half-thickness lines to simplify butting to other objects.
+ The color attributes are, e.g.,
+ {\tt outlined "{\sl color}" shaded "{\sl color}"}.
+ Example:
+ {\tt linethick=5; darrow(down\_\ 2,{,},0.5,0.75,0.75,|,outlined "red")}. }
\macrodef{Darrow}{Darrow}{(\linespec, {\sl parameters})}
{darrow}
{Wrapper for {\tt darrow}.
Semicolon-separated {\sl parameters}:
- {\tt S}, {\tt E} truncate at start or end by dline thickness/2;
- {\tt thick=}{\sl val} (total thicknes, ie width);
- {\tt wid=}{\sl val} (arrowhead width);
- {\tt ht=}{\sl val} (arrowhead height);
+ {\tt S;}, {\tt E;} truncate at start or end by dline thickness/2;
+ {\tt thick=}{\sl val}; (total thicknes, ie width);
+ {\tt wid=}{\sl val}; (arrowhead width);
+ {\tt ht=}{\sl val}; (arrowhead height);
{\tt ends=}
{\sl x}{\tt -}{\sl x} or
{\tt -}{\sl x} or
{\sl x}{\tt -} where {\sl x} is {\tt !} (half-width line)
- or {\tt |} (full-width line).}
-\macrodef{darrow}{darrow}{(\linespec,
- t,t,{\sl width},{\sl arrowhd wd},{\sl arrowhd ht},{\sl parameters})}
+ or {\tt |} (full-width line).
+ Examples:
+ {\tt define(`dfillcolor',`1,0.85,0') linethick=5;
+ rgbdraw(1,0,0,Darrow(down\_\ 2,thick=0.5; wid=0.75; ht=0.75; ends=|->))},
+ which is equivalent to
+ {\tt Darrow(down\_\ 2,thick=0.5; wid=0.75; ht=0.75; \
+ ends=|->; outline="red")}. }
+\macrodef{darrow\_init}{darrow_init}{}
{darrow}
- {See also {\tt Darrow}.
- double arrow, truncated at beginning or end, specified sizes,
- with arrowhead or closed stem.
- {\sl parameters=}
- {\tt {\sl x}-} or {\tt ->} or {\tt {\sl x}->} or {\tt <-} or {\tt <-{\sl x}}
- or {\tt <->} where {\sl x} is {\tt |} or {\tt !}.
- The {\tt !-} or {\tt -!} parameters close
- the stem with half-thickness lines to simplify butting to other objects. }
+ {Initialize darrow drawing parameters (reads library file {\tt darrow.m4})}
\macrodef{dashline}{dashline}{(\linespec,{\sl thickness}|{\sl color}|<->,
{\sl dash len, gap len},G)}
{gen}
@@ -567,14 +576,14 @@
{A DC symbol (a dashed line below a solid line).
The current drawing direction is default, otherwise Up, Down,
Left, Right, or at {\sl degrees} slant; e.g.,
- {\tt source(up\_ dimen\_); $\lbrace$ DCsymbol(at last [],,,R) $\rbrace$}
+ {\tt source(up\_ dimen\_); $\lbrace$ DCsymbol(at last [],{},{},R) $\rbrace$}
\seesect{Twoterminal:} }
-\macrodef{delay\_rad\_}{delay_rad_}{}
- {cct}
- {delay radius}
\macrodef{delay}{delay}{(\linespec,{\sl size})}
{cct}
{delay element\seesect{Twoterminal:}}
+\macrodef{delay\_rad\_}{delay_rad_}{}
+ {cct}
+ {delay radius}
\macrodef{deleminit\_}{deleminit_}{}
{darrow}
{sets drawing direction for dlines}
@@ -599,18 +608,26 @@
{\tt S[{\sl n}]} puts the Sel inputs at the bottom (default)
{\tt OE} ({\tt N=}negated) {\tt OE} pin
\seesect{Logicgates:}}
-\macrodef{dend}{dend}{(at {\sl location})}
+\macrodef{dend}{dend}{(at {\sl location},
+ {\sl line thickness}{\tt |}{\sl attributes})}
{darrow}
- {close (or start) double line}
+ {Close (or start) double line (Note specifying {\tt dends=} for {\tt Dline}
+ is a similar function. Arg2 is dline thickness or atributes:
+ {\tt thick={\sl expression};} (dline thickness in drawing units)
+ {\tt outline=({\sl r,g,b})|"{\sl color}";}}
+\macrodef{d\_fet}{d_fet}{(\linespec,R,P,E|S)}
+ {cct}
+ {left or right, N or P depletion MOSFET, envelope or simplified
+ \seesect{Semiconductors:}}
\macrodef{dfillcolor}{dfillcolor}{}
{darrow}
{dline fill color (default white)}
-\macrodef{diff\_}{diff_}{({\sl a},{\sl b})}
- {gen}
- {difference function}
\macrodef{diff3D}{diff3D}{({\sl x1,y1,z1,x2,y2,z2})}
{3D}
{difference of two triples}
+\macrodef{diff\_}{diff_}{({\sl a},{\sl b})}
+ {gen}
+ {difference function}
\macrodef{dimen\_}{dimen_}{}
{cct}
{size parameter for scaling circuit element bodies \seesect{Circuitscaling:}}
@@ -671,20 +688,27 @@ B|b|CR|D|G|L|LE[R]|P[R]|S|Sh|T|U|V|v|w|Z|chars,%
line rather than the centre of the last {\tt [ ]};
L,R,A,B align labels ljust, rjust, above,
or below (absolute) respectively \seesect{Labels:}}
-\macrodef{dleft}{dleft}{}
+\macrodef{dleft}{dleft}{({\tt at} {\sl position}, {\sl line thickness},
+ {\sl attributes})}
{darrow}
- {double line left turn}
+ {Double line left turn 90 degrees. Attributes can be
+ {\tt outline=({\sl r, g, b})|"{\sl color}";}
+ {\tt innershade=({\sl r, g, b})|"{\sl color}";}
+ where rgb values in parentheses or a defined color is specified.}
\macrodef{Dline}{Dline}{(\linespec, {\sl parameters})}
{darrow}
{Wrapper for {\tt dline}.
- Semicolon-separated {\sl parameters}:
- {\tt S}, {\tt E} truncate at start or end by dline thickness/2;
- {\tt thick=}{\sl val} (total thicknes, ie width);
+ The semicolon-separated {\sl parameters} are:
+ {\tt S;}, {\tt E;} truncate at start or end by dline thickness/2;
+ {\tt thick={\sl val};} (total thicknes, ie width);
+ {\tt outline={\sl color};} (e.g., {\tt "red"} or {\tt (1,0,0)}),
+ {\tt innershade={\sl color};} (e.g., {\tt (0,1,1)} or {\tt "cyan"}),
+ {\tt name={\sl Name};},
{\tt ends=}
{\sl x}{\tt -}{\sl x} or
{\tt -}{\sl x} or
{\sl x}{\tt -} where {\sl x} is {\tt !} (half-width line)
- or {\tt |} (full-width line).}
+ or {\tt |;} (full-width line).}
\macrodef{dline}{dline}{(\linespec,t,t,{\sl width},{\sl parameters})}
{darrow}
{See also {\tt Dline}.
@@ -701,33 +725,37 @@ B|b|CR|D|G|L|LE[R]|P[R]|S|Sh|T|U|V|v|w|Z|chars,%
\macrodef{dljust}{dljust}{(at {\sl location})}
{darrow}
{ljust (displaced dlinewid/2)}
-\macrodef{dn\_}{dnx}{}
- {gen}
- {down with respect to current direction}
\macrodef{dna\_}{dna_}{}
{cct}
{internal character sequence that specifies which subcomponents are drawn}
+\macrodef{dn\_}{dnx}{}
+ {gen}
+ {down with respect to current direction}
%\macrodef{dnm\_}{dnm_}{}
% {cct}
% {similar to dna\_}
+\macrodef{dot3D}{dot3D}{({\sl x1,y1,z1,x2,y2,z2})}
+ {3D}
+ {dot product of two triples}
\macrodef{dot}{dot}{(at {\sl location},{\sl radius}|{\sl keys},{\sl fill})}
{gen}
{Filled circle (third arg= gray value: 0=black, 1=white). The possible
key-value pairs are:
{\tt rad={\sl expr};} and
{\tt circle={\sl attributes};} }
-\macrodef{dot3D}{dot3D}{({\sl x1,y1,z1,x2,y2,z2})}
- {3D}
- {dot product of two triples}
\macrodef{dotrad\_}{dotrad_}{}
{gen}
{dot radius}
\macrodef{down\_}{down_}{}
{gen}
{sets current direction to down \seesect{Placing:}}
-\macrodef{dright}{dright}{}
+\macrodef{dright}{dright}{({\tt at} {\sl position}, {\sl line thickness},
+ {\sl attributes})}
{darrow}
- {double arrow right turn}
+ {Double line right turn 90 degrees. Attributes can be
+ {\tt outline=({\sl r, g, b})|"{\sl color}";}
+ {\tt innershade=({\sl r, g, b})|"{\sl color}";}
+ where rgb values in parentheses or a defined color is specified.}
\macrodef{drjust}{drjust}{(at {\sl location})}
{darrow}
{rjust (displaced dlinewid/2)}
@@ -763,28 +791,30 @@ B|b|CR|D|G|L|LE[R]|P[R]|S|Sh|T|U|V|v|w|Z|chars,%
Y = pull switch,
Z = turn switch
\seesect{Twoterminal:}}
-\macrodef{dtee}{dtee}{([L|R])}
+\macrodef{dtee}{dtee}{([L|R], {\sl line thickness}, {\sl attributes})}
{darrow}
- {double arrow tee junction with tail to left,
- right, or (default) back along current direction }
+ {Double arrow tee junction with tail to left,
+ right, or (default) back along current direction, leaving the current
+ location at the tee centre; e.g.,
+ {\tt dline(right\_,{,}t); dtee(R);
+ \{ darrow(down\_,t) \}; darrow(right\_,t)}.
+ The attributes are
+ {\tt thick={\sl expr};} (line thickness in drawing units),
+ {\tt innershade=({\sl r,g,b})|"{\sl color}";}
+ {\tt outline=({\sl r,g,b})|"{\sl color}";}. }
\macrodef{dtor\_}{dtor_}{}
{gen}
{degrees to radians conversion constant}
-\macrodef{dturn}{dturn}{({\sl degrees ccw})}
+\macrodef{dturn}{dturn}{({\sl degrees ccw},{\sl line thickness},
+ {\sl attributes})}
{darrow}
- {turn dline arg1 degrees left (ccw)}
+ {Tturn dline arg1 degrees left (ccw).
+ Attributes can be
+ {\tt outline=({\sl r, g, b})|"{\sl color}";}
+ {\tt innershade=({\sl r, g, b})|"{\sl color}";}
+ where rgb values in parentheses or a defined color is specified.}
+%
\Letter{E}%
-\macrodef{E\_\_}{E__}{}
- {gen}
- {the constant $e$}
-\macrodef{e\_}{e_}{}
- {gen}
- {.e relative to current direction}
-\macrodef{e\_fet}{e_fet}{(\linespec,R,P,E|S)}
- {cct}
- {left or right, N or P enhancement MOSFET, normal
- or simplified, without or with envelope
- \seesect{Semiconductors:}}
\macrodef{earphone}{earphone}{( U|D|L|R|{\sl degrees, size})}
{cct}
{earphone, {\sl In1} to {\sl In3} defined
@@ -800,6 +830,17 @@ B|b|CR|D|G|L|LE[R]|P[R]|S|Sh|T|U|V|v|w|Z|chars,%
terms. The possible keys are {\tt lgth, wdth, text, box},
e.g., {\tt lgth=0.2; text=\char34{}XX\char34;
box=shaded \char34{}green\char34}\seesect{Twoterminal:}}
+\macrodef{E\_\_}{E__}{}
+ {gen}
+ {the constant $e$}
+\macrodef{e\_}{e_}{}
+ {gen}
+ {.e relative to current direction}
+\macrodef{e\_fet}{e_fet}{(\linespec,R,P,E|S)}
+ {cct}
+ {left or right, N or P enhancement MOSFET, normal
+ or simplified, without or with envelope
+ \seesect{Semiconductors:}}
\macrodef{elchop}{elchop}{({\sl Name1,Name2})}
{gen}
{{\tt chop} for ellipses: evaluates to {\tt chop} $r$ where $r$ is
@@ -812,6 +853,13 @@ B|b|CR|D|G|L|LE[R]|P[R]|S|Sh|T|U|V|v|w|Z|chars,%
\macrodef{elen\_}{elen_}{}
{cct}
{default element length}
+\macrodef{ellipsearc}{ellipsearc}{({\sl width, height, startangle, endangle,
+ rotangle, {\tt cw|ccw}, line attributes})}
+ {gen}
+ {Arc of a rotated ellipse in a {\tt [ ]} block. Angles are in radians.
+ Arg5 is the angle of the width axis;
+ e.g., {\tt ellipsearc(2,1,0,pi\_,pi\_/4,{},dashed ->)}. Internal locations
+ are {\tt Start, End, C} (for centre). }
\macrodef{em\_arrows}{em_arrows}{({\sl type}|{\sl keys,angle,length})}
{cct}
{ Radiation arrows: {\sl type} {\tt N|I|E [D|T]}
@@ -832,6 +880,7 @@ B|b|CR|D|G|L|LE[R]|P[R]|S|Sh|T|U|V|v|w|Z|chars,%
\macrodef{expe}{expe}{}
{gen}
{exponential, base $e$}
+%
\Letter{F}%
\macrodef{f\_box}{f_box}{({\sl boxspecs},{\sl text},{\sl expr1},$\cdots$)}
{gen}
@@ -860,11 +909,6 @@ B|b|CR|D|G|L|LE[R]|P[R]|S|Sh|T|U|V|v|w|Z|chars,%
\macrodef{fitcurve}{fitcurve}{(V,n,[e.g. dotted],m (default 0))}
{gen}
{Draw a spline through positions V[m], $ldots$ V[n]: Works only with dpic.}
-\macrodef{FlipFlop}{FlipFlop}{(D|T|RS|JK,{\sl label},{\sl boxspec},%
- {\sl pinlength})}
- {log}
- {flip-flops,
- {\sl boxspec}=e.g.\ ht x wid y \seesect{Logicgates:}}
\macrodef{FlipFlop6}{FlipFlop6}{({\sl label},{\sl spec},{\sl boxspec})}
{log}
{{\em This macro (6-input flip-flops)
@@ -873,6 +917,11 @@ B|b|CR|D|G|L|LE[R]|P[R]|S|Sh|T|U|V|v|w|Z|chars,%
{\sl spec}={\tt [[n]NQ][[n]Q][[n]CK][[n]PR][lb]}
{\tt [[n]CLR][[n]S][[n].|D|T|R]} to include and negate pins,
{\tt lb} to print labels }
+\macrodef{FlipFlop}{FlipFlop}{(D|T|RS|JK,{\sl label},{\sl boxspec},%
+ {\sl pinlength})}
+ {log}
+ {flip-flops,
+ {\sl boxspec}=e.g.\ ht x wid y \seesect{Logicgates:}}
\macrodef{FlipFlopJK}{FlipFlopJK}{({\sl label}, {\sl spec},{\sl boxspec})}
{log}
{{\em This macro (JK flip-flop)
@@ -903,9 +952,6 @@ B|b|CR|D|G|L|LE[R]|P[R]|S|Sh|T|U|V|v|w|Z|chars,%
{\tt L}=active low out; {\tt M}=active low in;
{\tt E}=edge trigger \seesect{Logicgates:}. Optional arg 7 is the length
of pins}
-\macrodef{for\_}{for_}{({\sl start},{\sl end},{\sl increment},`{\sl actions}')}
- {gen}
- {integer for loop with index variable {\tt m4x} \seesect{Looping:}}
\macrodef{foreach\_}{foreach_}{(`{\sl variable}',{\sl actions},{\sl
value1, value2, $\ldots$})}
{gen}
@@ -913,6 +959,9 @@ B|b|CR|D|G|L|LE[R]|P[R]|S|Sh|T|U|V|v|w|Z|chars,%
Repeat {\sl actions} with {\sl variable} set successively to
{\sl value1, value2, $\ldots$}, setting macro {\tt m4Lx} to 1, 2,
$\ldots$, terminating if {\sl variable} is nul}
+\macrodef{for\_}{for_}{({\sl start},{\sl end},{\sl increment},`{\sl actions}')}
+ {gen}
+ {integer for loop with index variable {\tt m4x} \seesect{Looping:}}
\macrodef{FTcap}{FTcap}{({\sl chars})}
{cct}
{Feed-through capacitor; example of a composite element derived from
@@ -923,17 +972,8 @@ B|b|CR|D|G|L|LE[R]|P[R]|S|Sh|T|U|V|v|w|Z|chars,%
{cct}
{fuse symbol, type$=$
{\tt A|B|C|D|S|HB|HC|SB} or {\tt dA=D}\seesect{Twoterminal:}}
+%
\Letter{G}%
-\macrodef{g\_}{g_}{}
- {gen}
- {green color value}
-\macrodef{G\_hht}{G_hht}{}
- {log}
- {gate half-height in {\tt L\_unit}s}
-\macrodef{g\_fet}{g_fet}{(\linespec,R,P,{\sl shade spec})}
- {cct}
- {left or right, N or P graphene FET, without or with shading
- \seesect{Semiconductors:}}
\macrodef{gap}{gap}{(\linespec,{\sl fill},A)}
{cct}
{gap with (filled) dots, A=chopped arrow between dots\seesect{Twoterminal:}}
@@ -941,6 +981,16 @@ B|b|CR|D|G|L|LE[R]|P[R]|S|Sh|T|U|V|v|w|Z|chars,%
{gen}
{initialize environment for general diagrams
(customizable, reads {\tt libgen.m4})}
+\macrodef{g\_fet}{g_fet}{(\linespec,R,P,{\sl shade spec})}
+ {cct}
+ {left or right, N or P graphene FET, without or with shading
+ \seesect{Semiconductors:}}
+\macrodef{g\_}{g_}{}
+ {gen}
+ {green color value}
+\macrodef{G\_hht}{G_hht}{}
+ {log}
+ {gate half-height in {\tt L\_unit}s}
\macrodef{glabel\_}{glabel_}{}
{cct}
{internal general labeller}
@@ -978,10 +1028,12 @@ B|b|CR|D|G|L|LE[R]|P[R]|S|Sh|T|U|V|v|w|Z|chars,%
{Gyrator two-port wrapper for {\tt nport}, {\tt N} omits pin dots; {\tt V}
gives a vertical orientation
\seesect{Composite:}}
+%
\Letter{H}%
-\macrodef{H\_ht}{H_ht}{}
- {log}
- {hysteresis symbol dimension in {\tt L\_unit}s}
+\macrodef{hatchbox}{hatchbox}{({\sl boxspec,hashsep,hatchspec})}
+ {gen}
+ {Manhattan box with 45 degree hatching, e.g.,
+ {\tt hatchbox(outlined "blue",{},dashed outlined "green" thick 0.4)}}
\macrodef{Header}{Header}{(1|2,{\sl rows,wid,ht,box attributes})}
{log}
{Header block with 1 or 2 columns and square Pin 1:
@@ -995,17 +1047,6 @@ n|e|s|w,{\sl length})}
{log}
{General pin for {\tt Header} macro; arg 4 specifies pin direction
with respect to the current drawing direction)}
-\macrodef{hatchbox}{hatchbox}{({\sl boxspec,hashsep,hatchspec})}
- {gen}
- {Manhattan box with 45 degree hatching, e.g.,
- {\tt hatchbox(outlined "blue",,dashed outlined "green" thick 0.4)}}
-\macrodef{heater}{heater}{({\sl linespec, ndivisions|keys, wid, ht,
- boxspec}|[E[R][T]])}
- {cct}
- {Heater element\seesect{Twoterminal:}. If arg 5 contains {\tt E,}
- draws an {\tt heatere({\sl linespec, keys,} [R][T]),}
- otherwise a
- {\tt heatert({\sl linespec, nparts, wid, ht, boxspec})}}
\macrodef{heatere}{heatere}{({\sl linespec, keys,} [R][T])}
{cct}
{Heater element with curved sides\seesect{Twoterminal:}.
@@ -1016,6 +1057,13 @@ n|e|s|w,{\sl length})}
{\tt wdth={\sl expr};} (default {\tt lgth*2/5});
{\tt cycles={\sl expr};}
{\tt line={\sl attributes};} (e.g., {\tt dotted, dashed, outlined})}
+\macrodef{heater}{heater}{({\sl linespec, ndivisions|keys, wid, ht,
+ boxspec}|[E[R][T]])}
+ {cct}
+ {Heater element\seesect{Twoterminal:}. If arg 5 contains {\tt E,}
+ draws an {\tt heatere({\sl linespec, keys,} [R][T]),}
+ otherwise a
+ {\tt heatert({\sl linespec, nparts, wid, ht, boxspec})}}
\macrodef{heatert}{heatert}{({\sl linespec, nparts|keys, wid, ht, boxspec})}
{cct}
{Two-terminal rectangular heater element\seesect{Twoterminal:}.
@@ -1026,13 +1074,16 @@ n|e|s|w,{\sl length})}
{\tt box={\sl body attributes};}
(e.g., {\tt dotted, dashed, outlined, shaded}).
Args 3--5 are unused if any key is given}
-\macrodef{hex\_digit}{hex_digit}{($n$)}
- {gen}
- {hexadecimal digit for $0 \leq n < 16$}
\macrodef{hexadecimal\_}{hexadecimal_}{($n$, [$m$])}
{gen}
{hexadecimal representation of $n,$ left padded to $m$ digits if the second
argument is nonblank}
+\macrodef{hex\_digit}{hex_digit}{($n$)}
+ {gen}
+ {hexadecimal digit for $0 \leq n < 16$}
+\macrodef{H\_ht}{H_ht}{}
+ {log}
+ {hysteresis symbol dimension in {\tt L\_unit}s}
\macrodef{hlth}{hlth}{}
{gen}
{current line half thickness in drawing units}
@@ -1042,6 +1093,7 @@ n|e|s|w,{\sl length})}
\macrodef{ht\_}{ht_}{}
{gen}
{height relative to current direction}
+%
\Letter{I}%
\macrodef{ifdpic}{ifdpic}{({\sl if true},{\sl if false})}
{gen}
@@ -1086,9 +1138,6 @@ n|e|s|w,{\sl length})}
{cct}
{left or right IGBT, L=alternate gate type, D=parallel diode,
dD=dotted connections }
-\macrodef{in\_\_}{in__}{}
- {gen}
- {absolute inches}
\macrodef{inductor}{inductor}{(\linespec, W|L, {\sl cycles}, M[n]|P[n]|K[n],
{\sl loop wid})}
{cct}
@@ -1099,12 +1148,12 @@ n|e|s|w,{\sl length})}
{\sl M4Core1, M4Core2,} $\ldots$;
arg5: loop width (default L,W: {\tt dimen\_}/5; other: {\tt dimen\_}/8)
\seesect{Twoterminal:}}
+\macrodef{in\_\_}{in__}{}
+ {gen}
+ {absolute inches}
\macrodef{inner\_prod}{inner_prod}{({\sl linear obj},{\sl linear obj})}
{gen}
{inner product of (x,y) dimensions of two linear objects}
-\macrodef{Int\_}{Int_}{}
- {gen}
- {corrected (old) gpic $int()$ function}
\macrodef{integrator}{integrator}{(\linespec,{\sl size})}
{cct}
{integrating amplifier\seesect{Twoterminal:}}
@@ -1115,23 +1164,27 @@ n|e|s|w,{\sl length})}
\macrodef{Intersect\_}{Intersect_}{({\sl Name1},{\sl Name2})}
{gen}
{intersection of two named lines}
+\macrodef{Int\_}{Int_}{}
+ {gen}
+ {corrected (old) gpic $int()$ function}
\macrodef{IOdefs}{IOdefs}{(\linespec,{\sl label},[P|N]*,L|R) }
{log}
{Define locations {\sl label}{\tt 1}, $\ldots$ {\sl label}{\tt n}
along the line; {\tt P}= label only;
{\tt N}=with {\tt NOT\_circle};
{\tt R}=circle to right of current direction }
+%
\Letter{J}%
-\macrodef{j\_fet}{j_fet}{(\linespec,L|R,P,E)}
- {cct}
- {left or right, N or P JFET, without or with envelope
- \seesect{Semiconductors:}}
\macrodef{jack}{jack}{(U|D|L|R|{\sl degrees},{\sl chars})}
{cct}
{arg1: drawing direction; string arg2: {\tt R}=right orientation,
one or more {\tt L[M][B]} for L and auxiliary contacts with make or break
points; {\tt S[M][B]} for S and auxiliary contacts
\seesect{Composite:}}
+\macrodef{j\_fet}{j_fet}{(\linespec,L|R,P,E)}
+ {cct}
+ {left or right, N or P JFET, without or with envelope
+ \seesect{Semiconductors:}}
\macrodef{jumper}{jumper}{({\sl linespec, chars}|{\sl keys})}
{cct}
{ Two-terminal solder jumper with named body parts.
@@ -1147,19 +1200,22 @@ n|e|s|w,{\sl length})}
{\tt wdth=}{\sl expr};
{\tt name=}{\sl chars} (the body name)%
\seesect{Twoterminal:}}
+%
\Letter{K}%
\macrodef{KelvinR}{KelvinR}{({\sl cycles},[R],{\sl cycle wid})}
{cct}
{IEEE resistor in a {\tt [ ]} block with Kelvin taps {\sl T1} and {\sl T2}
\seesect{Composite:}}
+%
\Letter{L}%
-\macrodef{L\_unit}{L_unit}{}
- {log}
- {logic-element grid size}
\macrodef{lamp}{lamp}{(\linespec, [R][T])}
{cct}
{Two-terminal incandescent lamp. {\tt T} truncates leads to the body width.
\seesect{Twoterminal:}}
+\macrodef{langle}{langle}{({\sl Start, End})}
+ {gen}
+ {Angle in radians from horizontal of the line from {\sl Start}
+ to {\sl End}.}
\macrodef{larrow}{larrow}{({\sl label},{\tt ->|<-},{\sl dist})}
{cct}
{arrow {\sl dist} to left of last-drawn 2-terminal element
@@ -1177,13 +1233,13 @@ n|e|s|w,{\sl length})}
\macrodef{left\_}{left_}{}
{gen}
{left with respect to current direction \seesect{Placing:}}
-\macrodef{length3D}{length3D}{(x,y,z)}
- {3D}
- {Euclidean length of triple x,y,z}
\macrodef{LEintersect}{LEintersect}{({\sl line name, Centre, ellipse wid,
ellipse ht}, [R])}
{gen}
{ First (second if arg5 is R) intersection of a line with an ellipse}
+\macrodef{length3D}{length3D}{(x,y,z)}
+ {3D}
+ {Euclidean length of triple x,y,z}
\macrodef{LEtangent}{LEtangent}{({\sl Pos1, Centre, ellips wid, ellipse ht}
[R])}
{gen}
@@ -1218,13 +1274,13 @@ n|e|s|w,{\sl length})}
{gen}
{the angle of a line or move from {\tt .start} to {\tt .end} of a linear
object (in degrees if arg2={\tt d})}
+\macrodef{linethick\_}{linethick_}{({\sl number})}
+ {gen}
+ {set line thickness in points}
\macrodef{lin\_leng}{lin_leng}{({\sl line-reference})}
{gen}
{length of a line, equivalent to {\sl line-reference}{\tt .len}
with dpic}
-\macrodef{linethick\_}{linethick_}{({\sl number})}
- {gen}
- {set line thickness in points}
\macrodef{ljust\_}{ljust_}{}
{gen}
{ljust with respect to current direction}
@@ -1243,44 +1299,48 @@ n|e|s|w,{\sl length})}
\macrodef{loc\_}{loc_}{({\sl x}, {\sl y})}
{gen}
{location adjusted for current direction}
-\macrodef{log\_init}{log_init}{}
- {log}
- {initialize environment for logic diagrams
- (customizable, reads {\tt liblog.m4})}
\macrodef{log10E\_}{log10E_}{}
{gen}
{constant $\log_{10}(e)$}
\macrodef{loge}{loge}{}
{gen}
{logarithm, base $e$}
+\macrodef{log\_init}{log_init}{}
+ {log}
+ {initialize environment for logic diagrams
+ (customizable, reads {\tt liblog.m4})}
\macrodef{Loopover\_}{Loopover_}{(`{\sl variable}',{\sl actions},{\sl
value1, value2, $\ldots$})}
{gen}
{Repeat {\sl actions} with {\sl variable} set successively to
{\sl value1, value2, $\ldots$}, setting macro {\tt m4Lx} to 1, 2,
$\ldots$, terminating if {\sl variable} is nul}
-\macrodef{lp\_xy}{lp_xy}{}
- {log}
- {coordinates used by {\tt lg\_pin}}
\macrodef{lpop}{lpop}{({\sl xcoord}, {\sl ycoord}, {\sl radius},
{\sl fill},
{\sl zero ht})} {gen}
{for lollipop graphs: filled circle with stem to
(xcoord,zeroht)}
+\macrodef{lp\_xy}{lp_xy}{}
+ {log}
+ {coordinates used by {\tt lg\_pin}}
\macrodef{lswitch}{lswitch}{( \linespec, L|R, {\sl chars} )}
{cct}
{knife switch R=right orientation (default L=left);
{\sl chars}=[O{\tt|}C][D][K][A] O=opening arrow; C=closing arrow;
D=dots; K=closed switch; A=blade arrowhead \seesect{Twoterminal:}}
+\macrodef{lthick}{lthick}{}
+ {gen}
+ {current line thickness in drawing units}
\macrodef{lt\_}{lt_}{}
{gen}
{left with respect to current direction}
\macrodef{LT\_symbol}{LT_symbol}{(U|D|L|R|{\sl degrees})}
{log}
{logic-gate triangle symbol}
-\macrodef{lthick}{lthick}{}
- {gen}
- {current line thickness in drawing units}
+\macrodef{L\_unit}{L_unit}{}
+ {log}
+ {logic-element grid size}
+%
\Letter{M}%
\macrodef{m4\_arrow}{m4_arrow}{(\linespec,{\sl ht},{\sl wid})}
{gen}
@@ -1360,9 +1420,6 @@ n|e|s|w,{\sl length})}
\macrodef{Mux\_ht}{Mux_ht}{}
{cct}
{Mux height parameter in {\tt L\_unit}s}
-\macrodef{Mux\_wid}{Mux_wid}{}
- {cct}
- {Mux width parameter in {\tt L\_unit}s}
\macrodef{Mux}{Mux}{({\sl n},{\sl label},
{\tt [L][B|H|X][N[{\sl n}]|S[{\sl n}]][[N]OE], {\sl wid},{\sl ht}})}
{log}
@@ -1373,28 +1430,23 @@ n|e|s|w,{\sl length})}
at the top (i.e., to the left of the drawing direction), {\tt
S[{\sl n}]} puts the Sel inputs at the bottom (default) {\tt OE}
({\tt N=}negated) {\tt OE} pin \seesect{Logicgates:}}
+\macrodef{Mux\_wid}{Mux_wid}{}
+ {cct}
+ {Mux width parameter in {\tt L\_unit}s}
\macrodef{Mx\_pins}{Mx_pins}{}
{log}
{max number of gate inputs without wings}
+%
\Letter{N}%
-\macrodef{n\_}{n_}{}
- {gen}
- {.n with respect to current direction}
-\macrodef{N\_diam}{N_diam}{}
- {log}
- {diameter of `not' circles in {\tt L\_unit}s}
-\macrodef{N\_rad}{N_rad}{}
- {log}
- {radius of `not' circles in {\tt L\_unit}s}
\macrodef{NAND\_gate}{NAND_gate}{({\sl n},N)}
{log}
{`nand' gate, 2 or {\sl n\/} inputs; N=negated input.
Otherwise, arg1 can be a sequence of letters {\tt P|N} to define
normal or negated inputs.
\seesect{Logicgates:}}
-\macrodef{ne\_}{ne_}{}
- {gen}
- {.ne with respect to current direction}
+\macrodef{N\_diam}{N_diam}{}
+ {log}
+ {diameter of `not' circles in {\tt L\_unit}s}
\macrodef{NeedDpicTools}{NeedDpicTools}{}
{gen}
{executes {\tt copy "HOMELIB\_/dpictools.pic"} if the file has
@@ -1402,15 +1454,21 @@ n|e|s|w,{\sl length})}
\macrodef{neg\_}{neg_}{}
{gen}
{unary negation}
+\macrodef{ne\_}{ne_}{}
+ {gen}
+ {.ne with respect to current direction}
+\macrodef{n\_}{n_}{}
+ {gen}
+ {.n with respect to current direction}
+\macrodef{norator}{norator}{(\linespec,{\sl width},{\sl ht})}
+ {cct}
+ { norator two-terminal element \seesect{Twoterminal:}}
\macrodef{NOR\_gate}{NOR_gate}{({\sl n},N)}
{log}
{`nor' gate, 2 or {\sl n\/} inputs; N=negated input.
Otherwise, arg1 can be a sequence of letters {\tt P|N} to define
normal or negated inputs.
\seesect{Logicgates:}}
-\macrodef{norator}{norator}{(\linespec,{\sl width},{\sl ht})}
- {cct}
- { norator two-terminal element \seesect{Twoterminal:}}
\macrodef{NOT\_circle}{NOT_circle}{}
{log}
{`not' circle}
@@ -1441,6 +1499,9 @@ nw,nn,ne,ns,space ratio,pin lgth,style, other commands})}
(default 2), and arg 7 is the pin length. Set arg 8 to N to omit
the dots on the port pins. Arguments 1 and 9 allow customizations
\seesect{Composite:}}
+\macrodef{N\_rad}{N_rad}{}
+ {log}
+ {radius of `not' circles in {\tt L\_unit}s}
\macrodef{nterm}{nterm}{({\sl box spec{\tt ;}other commands,
nw,nn,ne,ns,pin lgth,style, other commands})}
{cct}
@@ -1463,6 +1524,7 @@ nw,nn,ne,ns,pin lgth,style, other commands})}
Otherwise, arg1 can be a sequence of letters {\tt P|N} to define
normal or negated inputs.
\seesect{Logicgates:}}
+%
\Letter{O}%
\macrodef{opamp}{opamp}{(\linespec,{\sl label},{\sl
label},{\sl size},{\sl
@@ -1495,9 +1557,9 @@ label},{\sl size},{\sl
\macrodef{OR\_rad}{OR_rad}{}
{log}
{radius of OR input face in {\tt L\_unit}s}
+%
\Letter{P}%
-\macrodef{parallel\_}{parallel_}{(\char96{\sl
-elementspec}\char39,%
+\macrodef{parallel\_}{parallel_}{(\char96{\sl elementspec}\char39,%
\char96{\sl elementspec}\char39 $\ldots$)}
{cct}
{ Parallel combination of two-terminal elements in a {\tt [
@@ -1512,20 +1574,6 @@ elementspec}\char39,%
element Sep={\sl val}; applies only to that branch. An element may
have normal arguments but should not change the drawing direction.
\seesect{Seriesandparallel:}}
-%\macrodef{par\_}{par_}{({\sl element},{\sl element},{\sl separation})}
-% {cct} % {two same-direction, same-length elements in parallel}
-\macrodef{proximity}{proximity}{(\sl linespec)}
- {cct}
- {proximity detector (= {\tt consource(,P)})}
-\macrodef{pc\_\_}{pc__}{}
- {gen}
- {absolute points}
-\macrodef{pvcell}{pvcell}{({\sl linespec, width, height})}
- {cct}
- {PV cell}
-\macrodef{px\_\_}{px__}{}
- {gen}
- {absolute SVG screen pixels}
\macrodef{pconnex}{pconnex}{(R|L|U|D|{\sl degrees},{\sl chars})}
{cct}
{power connectors, arg 1: drawing direction; {\sl chars:}
@@ -1533,6 +1581,19 @@ elementspec}\char39,%
3 prong, B=box, C=circle, {\tt P}= PC connector, {\tt D}= 2-pin
connector, {\tt G|GC}= GB 3-pin, {\tt J}= 110V 2-pin
\seesect{Composite:}}
+\macrodef{pc\_\_}{pc__}{}
+ {gen}
+ {absolute points}
+\macrodef{perpto}{perpto}{({\sl Pos1, Line, Point})}
+ {gen}
+ {{\sl Point} is the label for the point on {\sl Line} of the
+ perpendicular
+ from {\sl Point} to {\sl Line}.}
+\macrodef{PerpTo}{PerpTo}{({\sl Pos1, Pos2, Pos3})}
+ {gen}
+ {The point between Pos2 and Pos3 of intersection of the perpendicular
+ to Pos1, i.e., the perpendicular projection of Pos1 onto the line
+ from Pos2 to Pos3.}
\macrodef{pi\_}{pi_}{}
{gen}
{$\pi$}
@@ -1546,26 +1607,12 @@ elementspec}\char39,%
\macrodef{point\_}{point_}{({\sl angle})}
{gen}
{(radians) set direction cosines}
-\macrodef{perpto}{perpto}{({\sl Pos1, Line, Point})}
- {gen}
- {{\sl Point} is the label for the point on {\sl Line} of the
- perpendicular
- from {\sl Point} to {\sl Line}.}
-\macrodef{PerpTo}{PerpTo}{({\sl Pos1, Pos2, Pos3})}
- {gen}
- {The point between Pos2 and Pos3 of intersection of the perpendicular
- to Pos1, i.e., the perpendicular projection of Pos1 onto the line
- from Pos2 to Pos3.}
\macrodef{Point\_}{Point_}{({\sl integer})}
{gen}
{sets direction cosines in degrees \seesect{Placing:}}
\macrodef{polar\_}{polar_}{({\sl x},{\sl y})}
{gen}
{rectangular-to polar conversion}
-\macrodef{langle}{langle}{({\sl Start, End})}
- {gen}
- {Angle in radians from horizontal of the line from {\sl Start}
- to {\sl End}.}
\macrodef{potentiometer}{potentiometer}{(\linespec,%
{\sl cycles},{\sl fractional pos},{\sl length},$\cdots$)} {cct}
{resistor with taps T1, T2, $\ldots$
@@ -1580,17 +1627,20 @@ elementspec}\char39,%
{3D} {3D to 2D projection onto the plane perpendicular to the view
vector with
angles defined by {\tt setview({\sl azim, elev})}}
+\macrodef{proximity}{proximity}{(\sl linespec)}
+ {cct}
+ {proximity detector (= {\tt consource(,P)})}
\macrodef{psset\_}{psset_}{({\sl PSTricks settings})}
{gen}
{set PSTricks parameters}
-\macrodef{pt\_\_}{pt__}{}
- {gen}
- {\TeX\ point-size factor, in scaled inches, ({\tt *scale/72.27})}
\macrodef{PtoL}{PtoL}{({\sl position}, U|D|L|R|{\sl degrees}, {\sl length}) }
{gen}
{Evaluates to {\tt from {\sl position} to
{\sl position} + Rect\_({\sl length, angle}) }
from the polar-coordinate data in the arguments }
+\macrodef{pt\_\_}{pt__}{}
+ {gen}
+ {\TeX\ point-size factor, in scaled inches, ({\tt *scale/72.27})}
\macrodef{ptrans}{ptrans}{(\linespec, [R|L])}
{cct}
{pass transistor; {\tt L=} left orientation
@@ -1613,10 +1663,14 @@ elementspec}\char39,%
which must contain no semicolons and the default values contain no colons.
Macro {\tt pushkey\_} is applied to each of the terms in order.
\seesect{Macroarguments:}}
-\Letter{R}%
-\macrodef{r\_}{r_}{}
+\macrodef{pvcell}{pvcell}{({\sl linespec, width, height})}
+ {cct}
+ {PV cell}
+\macrodef{px\_\_}{px__}{}
{gen}
- {red color value}
+ {absolute SVG screen pixels}
+%
+\Letter{R}%
\macrodef{rarrow}{rarrow}{({\sl label,{\tt ->|<-},{\sl dist}})}
{cct}
{arrow {\sl dist} to right of last-drawn 2-terminal element
@@ -1633,14 +1687,6 @@ elementspec}\char39,%
{Enclosed reed two-terminal contact;
{\tt R}=right orientation; {\tt C}=closed contact; e.g., {\tt
reed(,,dimen\_/5,shaded "lightgreen"} \seesect{Composite:}}
-\macrodef{relay}{relay}{({\sl number of poles, chars})}
- {cct}
- {relay: n poles (default 1), {\sl chars:} {\tt O}=normally open,
- {\tt C}=normally closed, {\tt P}=three position, default double
- throw, {\tt L}=drawn left (default), {\tt R}=drawn right, {\tt
- Th}=thermal. Argument 3={\tt [L|R]} is deprecated but works for
- backward compatibility
- \seesect{Composite:}}
\macrodef{relaycoil}{relaycoil}{({\sl chars, wid, ht,} R|L|U|D|{\sl
degrees})}
{cct}
@@ -1654,6 +1700,14 @@ degrees})}
PO}=polarized; {\tt RM}=remanent; {\tt RH}=remanent; {\tt TH}=thermal;
{\tt EL}=electronic
\seesect{Composite:}}
+\macrodef{relay}{relay}{({\sl number of poles, chars})}
+ {cct}
+ {relay: n poles (default 1), {\sl chars:} {\tt O}=normally open,
+ {\tt C}=normally closed, {\tt P}=three position, default double
+ throw, {\tt L}=drawn left (default), {\tt R}=drawn right, {\tt
+ Th}=thermal. Argument 3={\tt [L|R]} is deprecated but works for
+ backward compatibility
+ \seesect{Composite:}}
\macrodef{resetdir\_}{resetdir_)}{}
{gen}
{resets direction set by {\tt setdir\_}}
@@ -1699,21 +1753,14 @@ degrees})}
rgbstring(0.1,0.2,0.7) shaded rgbstring(0.75,0.5,0.25)}. For those
postprocessors that allow it, there can be one argument which is the
name of a defined color}
-\macrodef{right\_}{right_}{}
- {gen}
- {set current direction right \seesect{Placing:}}
\macrodef{RightAngle}{RightAngle}{({\sl Pos1, Pos2, Pos3, line len,
attributes})} {gen}
{Draw a right-angle symbol at {\sl Pos2}, of size
given by arg4. Arg5 =
line attributes, e.g., {\tt outlined "gray"}}
-\macrodef{r\_text}{r_text}{({\sl degrees},{\sl text},at {\sl position})}
+\macrodef{right\_}{right_}{}
{gen}
- {Rotate text by arg1 degrees (provides a single command for
- PSTricks, PGF, or SVG only) placed at position in arg3.
- The first argument is a decimal constant (not an expression) and
- the text is a simple string without quotes.
- \seesect{Interaction:}, \seesect{Pstricks:}}
+ {set current direction right \seesect{Placing:}}
\macrodef{rjust\_}{rjust_}{}
{gen}
{right justify with respect to current direction}
@@ -1735,12 +1782,6 @@ degrees})}
{3D} {rotates x,y,z about y axis}
\macrodef{rot3Dz}{rot3Dz}{({\sl radians,x,y,z})}
{3D} {rotates x,y,z about z axis}
-\macrodef{Rot\_}{Rot_}{({\sl position, degrees})}
- {gen}
- {rotate position by degrees}
-\macrodef{rot\_}{rot_}{({\sl x, y, angle})}
- {gen}
- {rotate {\sl x,y} by theta radians}
\macrodef{rotbox}{rotbox}{({\sl wid,ht,type},[r|t={\sl val}])}
{gen}
{box oriented in current direction in {\tt [ ]} block;
@@ -1754,6 +1795,12 @@ degrees})}
{ellipse oriented in current direction in {\tt [ ]} block;
e.g. {\tt Point\_(45); rotellipse(,{},dotted fill\_(0.9)).} Defined
internal locations: N, S, E, W.}
+\macrodef{Rot\_}{Rot_}{({\sl position, degrees})}
+ {gen}
+ {rotate position by degrees}
+\macrodef{rot\_}{rot_}{({\sl x, y, angle})}
+ {gen}
+ {rotate {\sl x,y} by theta radians}
\macrodef{round}{round}{(at {\sl location,line thickness,attributes})}
{gen}
{filled circle for rounded corners; attributes={\tt colored
@@ -1766,6 +1813,9 @@ degrees})}
\macrodef{rpos\_}{rpos_}{({\sl position})}
{gen}
{Here + {\sl position}}
+\macrodef{r\_}{r_}{}
+ {gen}
+ {red color value}
\macrodef{rrot\_}{rrot_}{({\sl x, y, angle})}
{gen}
{\tt Here + vrot\_({\sl x, y, cos(angle), sin(angle))}}
@@ -1785,63 +1835,49 @@ degrees})}
\macrodef{rsvec\_}{rsvec_}{({\sl position})}
{gen}
{Here + {\sl position}}
-\macrodef{rt\_}{rt_}{}
+\macrodef{r\_text}{r_text}{({\sl degrees},{\sl text},at {\sl position})}
{gen}
- {right with respect to current direction}
+ {Rotate text by arg1 degrees (provides a single command for
+ PSTricks, PGF, or SVG only) placed at position in arg3.
+ The first argument is a decimal constant (not an expression) and
+ the text is a simple string without quotes.
+ \seesect{Interaction:}, \seesect{Pstricks:}}
\macrodef{rtod\_\_}{rtod__}{}
{gen}
{constant, degrees/radian}
\macrodef{rtod\_}{rtod_}{}
{gen}
{constant, degrees/radian}
+\macrodef{rt\_}{rt_}{}
+ {gen}
+ {right with respect to current direction}
\macrodef{rvec\_}{rvec_}{({\sl x},{\sl y})}
{gen}
{location relative to current direction}
+%
\Letter{S}%
-\macrodef{s\_}{s_}{}
- {gen}
- {.s with respect to current direction}
-\macrodef{s\_box}{s_box}{({\sl text},{\sl expr1},$\cdots$)}
- {gen}
- {generate dimensioned text string using {\tt\char92{}boxdims} from
- {\tt boxdims.sty}. Two or more args are passed to {\tt sprintf()}
- (default 90) degrees \seesect{Interaction:}}
-\macrodef{s\_dp}{s_dp}{({\sl name},{\sl default})}
- {gen}
- {depth of the most recent (or named) {\tt s\_box}
- \seesect{Interaction:}}
-\macrodef{s\_ht}{s_ht}{({\sl name},{\sl default})}
- {gen}
- {height of the most recent (or named) {\tt s\_box}
- \seesect{Interaction:}}
-\macrodef{s\_init}{s_init}{({\sl name})}
- {gen}
- {initialize {\tt s\_box} string label to {\sl name} which should
- be unique
- \seesect{Interaction:}}
-\macrodef{s\_name}{s_name}{}
- {gen}
- {the value of the last {\tt s\_init} argument
- \seesect{Interaction:}}
-\macrodef{s\_wd}{s_wd}{({\sl name},{\sl default})}
- {gen}
- {width of the most recent (or named) {\tt s\_box}
- \seesect{Interaction:}}
\macrodef{sarrow}{sarrow}{(\linespec,{\sl keys})}
{gen}
{Single-segment, single-headed special arrows.
The {\sl keys} are
{\tt type=}{\tt O[pen]} (default)
- | {\tt D[iamond]} | {\tt C[rowfoot]} | {\tt P[lain]}{\tt ;}
+ | {\tt D[iamond]} | {\tt C[rowfoot]} | {\tt P[lain]}
+ | {\tt R[ight]} | {\tt L[eft]} {\tt ;}
{\tt wdth=}{\tt expression}{\tt ;} (default {\tt arrowwid})
{\tt lgth=}{\tt expression}{\tt ;} (default {\tt arrowht})
{\tt shaft=}{\sl shaft attributes} (e.g., {\tt dashed}){\tt ;}
{\tt head=}{\sl head attributes} (e.g., {\tt shaded}){\tt ;}
+ {\tt name=}{\sl Name}{\tt ;} (default {\sl Sarrow\_})
\seesect{Macroarguments:}}
\macrodef{savem4dir}{savem4dir}{([`{\sl stack name}'])}
{gen}
{Stack m4 direction parameters in the named stack
(default {\tt `savm4dir\_'})}
+\macrodef{s\_box}{s_box}{({\sl text},{\sl expr1},$\cdots$)}
+ {gen}
+ {generate dimensioned text string using {\tt\char92{}boxdims} from
+ {\tt boxdims.sty}. Two or more args are passed to {\tt sprintf()}
+ (default 90) degrees \seesect{Interaction:}}
\macrodef{sbs}{sbs}{({\sl linespec, chars, label})}
{cct}
{Wrapper to place an SBS thyristor as a two-terminal element with
@@ -1860,9 +1896,10 @@ degrees})}
{Wrapper to place an SCS thyristor as a two-terminal element with
{\tt [ ]} block label given by the third argument
\seesect{Semiconductors:}}
-\macrodef{se\_}{se_}{}
+\macrodef{s\_dp}{s_dp}{({\sl name},{\sl default})}
{gen}
- {.se with respect to current direction}
+ {depth of the most recent (or named) {\tt s\_box}
+ \seesect{Interaction:}}
\macrodef{series\_}{series_}{({\sl elementspec}, {\sl elementspec},
$\ldots$)}
{cct}
@@ -1873,6 +1910,9 @@ $\ldots$)}
[rlabel($\ldots$);] [b\_current($\ldots$);]}. Internal points {\tt
Start}, {\tt End}, and {\tt C} are defined
\seesect{Seriesandparallel:} }
+\macrodef{se\_}{se_}{}
+ {gen}
+ {.se with respect to current direction}
\macrodef{setdir\_}{setdir_}{(R|L|U|D|{\sl degrees}, {\sl default}
U|D|R|L|{\sl degrees})}
{gen}
@@ -1881,11 +1921,6 @@ $\ldots$)}
resetdir\_}). The directions may be spelled out, i.e., Right,
Left, $\ldots$
\seesect{Seriesandparallel:}}
-\macrodef{setrgb}{setrgb}{({\sl red value, green value, blue value},[{\sl
- name}])}
- {gen}
- {define colour for lines and text, optionally named (default
- {\tt lcspec}); \seesect{Semiconductors:}}
\macrodef{setkey\_}{setkey_}{({\sl string, key, default,}[N])}
{gen}
{Key-value definition, like {\tt pushkey\_()} but the resulting
@@ -1896,14 +1931,14 @@ $\ldots$)}
{Multiple key-value definition using {\tt define()} rather than
{\tt pushdef().} See macro {\tt pushkeys\_}.
\seesect{Macroarguments:}}
+\macrodef{setrgb}{setrgb}{({\sl red value, green value, blue value},[{\sl
+ name}])}
+ {gen}
+ {define colour for lines and text, optionally named (default
+ {\tt lcspec}); \seesect{Semiconductors:}}
\macrodef{setview}{setview}{({\sl azimuth degrees},{\sl elevation
degrees})}
{3D} {set projection viewpoint}
-\macrodef{sfg\_init}{sfg_init}{({\sl default line len, node rad,
-arrowhd len,
- arrowhd wid}), (reads {\tt libcct.m4})} {cct}
- {initialization of signal
- flow graph macros}
\macrodef{sfgabove}{sfgabove}{}
{cct}
{like above but with extra space}
@@ -1916,6 +1951,11 @@ justification},cw|ccw,
\macrodef{sfgbelow}{sfgbelow}{}
{cct}
{like below but with extra space}
+\macrodef{sfg\_init}{sfg_init}{({\sl default line len, node rad,
+arrowhd len,
+ arrowhd wid}), (reads {\tt libcct.m4})} {cct}
+ {initialization of signal
+ flow graph macros}
\macrodef{sfgline}{sfgline}{(\linespec,{\sl text},{\sl text
justification})}
{cct}
@@ -1932,11 +1972,6 @@ justification})}
{cct}
{self-loop drawn at angle {\sl angle} from a node,
with text label and a size-adjustment parameter }
-\macrodef{shade}{shade}{({\sl gray value},{\sl closed line specs})}
- {gen}
- {Fill arbitrary closed curve. Note: when producing pdf via pdflatex, line
- thickness changes within this macro must be made via the {\tt linethick}
- environment variable rather than by the {\tt thickness} line attribute}
\macrodef{shadebox}{shadebox}{(box {\sl attributes, shade width})}
{gen}
{Box with edge shading. Arg2 is in points. See also {\tt shaded} }
@@ -1950,6 +1985,11 @@ justification})}
the form 0, r0,g0,b0, {\sl frac1},r1,g1,b1, {\sl frac2},r2,g2,b2,
\ldots 1,rn,gn,bn with $0 < \hbox{\sl frac1} < \hbox{\sl frac2}
\ldots 1$ }
+\macrodef{shade}{shade}{({\sl gray value},{\sl closed line specs})}
+ {gen}
+ {Fill arbitrary closed curve. Note: when producing pdf via pdflatex, line
+ thickness changes within this macro must be made via the {\tt linethick}
+ environment variable rather than by the {\tt thickness} line attribute}
\macrodef{shadowed}{shadowed}{(box|circle|ellipse|line,
{\sl position spec, keys})}
{gen}
@@ -1969,6 +2009,10 @@ justification})}
(default) to enclose the element body; L for the left side with
respect to drawing direction, R for right. Internal points {\tt
.Start, .End,} and {\tt .C} are defined}
+\macrodef{s\_ht}{s_ht}{({\sl name},{\sl default})}
+ {gen}
+ {height of the most recent (or named) {\tt s\_box}
+ \seesect{Interaction:}}
\macrodef{SIdefaults}{SIdefaults}{}
{gen}
{Sets {\tt scale = 25.4} for drawing units in mm, and sets
@@ -1979,15 +2023,20 @@ justification})}
\macrodef{sign\_}{sign_}{({\sl number})}
{gen}
{sign function}
-\macrodef{Sin}{Sin}{({\sl integer})}
- {gen}
- {sine function, {\sl integer\/} degrees}
\macrodef{sinc}{sinc}{({\sl number})}
{gen}
{the $\hbox{sinc}(x)$ function}
\macrodef{sind}{sind}{({\sl arg})}
{gen}
{sine of an expression in degrees}
+\macrodef{s\_init}{s_init}{({\sl name})}
+ {gen}
+ {initialize {\tt s\_box} string label to {\sl name} which should
+ be unique
+ \seesect{Interaction:}}
+\macrodef{Sin}{Sin}{({\sl integer})}
+ {gen}
+ {sine function, {\sl integer\/} degrees}
\macrodef{sinusoid}{sinusoid}{({\sl amplitude, frequency, phase, tmin,
tmax, linetype})}
{gen}
@@ -2234,6 +2283,36 @@ justification})}
{\tt size=}{\sl expr} (default {\tt ht dimen\_/3}).
\seesect{SingleLine:}}
%
+\macrodef{sl\_transformer3}{sl_transformer3}{({\sl linespec, keys,
+ breaker keys, symbol keys})}
+ {SLD}
+ {Composite (block) SLD element: argument 1 is a \linespec\ that can be used
+ to set the direction and distance between primary terminals but not
+ position.
+
+ Argument 2 contains semicolon (;)-separated key-value body attributes:
+ {\tt name={\sl{}Name}} (default {\sl Body});
+ {\tt type=S|C} (default {\tt S});
+ {\tt scale={\sl expr}} (body size factor, default 1.0);
+ {\tt direct=L|R} (default {\tt L}) direction of the tertiary
+ circle and terminal relative to the drawing direction;
+ {\tt body={\sl circle attributes}}.
+
+ Argument 3 is colon (:)-separated sequence of up to three breaker
+ attribute specifications for the input, output, and teriary breaker
+ in order. A null or blank means no breaker, {\tt tt\_breaker}
+ specifications otherwise. Default breaker names are {\sl BrI}
+ and {\sl BrO} as for
+ {\tt sl\_transformer,} and {\sl Br} for the third breaker.
+
+ Argument 4 is colon (:)-separated sequence of up to three symbol
+ specifications for the input, output, and teriary circle
+ in order. A null or blank means no symbol;
+ {\tt Y} for a Y-symbol;
+ {\tt Delta} for a $\Delta$ symbol;
+ otherwise, other customization commands expanded in a {\tt \lbr\rbr} pair.
+ \seesect{SingleLine:}}
+%
\macrodef{sl\_transformer}{sl_transformer}{({\sl linespec, keys,
input breaker keys, output breaker keys,
input circle inner object, output circle inner object})}
@@ -2273,35 +2352,6 @@ justification})}
otherwise, other customization commands expanded in a {\tt \lbr\rbr} pair.
\seesect{SingleLine:}}
%
-\macrodef{sl\_transformer3}{sl_transformer3}{({\sl linespec, keys,
- breaker keys, symbol keys})}
- {SLD}
- {Composite (block) SLD element: argument 1 is a \linespec\ that can be used
- to set the direction and distance between primary terminals but not
- position.
-
- Argument 2 contains semicolon (;)-separated key-value body attributes:
- {\tt name={\sl{}Name}} (default {\sl Body});
- {\tt type=S|C} (default {\tt S});
- {\tt scale={\sl expr}} (body size factor, default 1.0);
- {\tt direct=L|R} (default {\tt L}) direction of the tertiary
- circle and terminal relative to the drawing direction;
- {\tt body={\sl circle attributes}}.
-
- Argument 3 is colon (:)-separated sequence of up to three breaker
- attribute specifications for the input, output, and teriary breaker
- in order. A null or blank means no breaker, {\tt tt\_breaker}
- specifications otherwise. Default breaker names are {\sl BrI}
- and {\sl BrO} as for
- {\tt sl\_transformer,} and {\sl Br} for the third breaker.
-
- Argument 4 is colon (:)-separated sequence of up to three symbol
- specifications for the input, output, and teriary circle
- in order. A null or blank means no symbol;
- {\tt Y} for a Y-symbol;
- {\tt Delta} for a $\Delta$ symbol;
- otherwise, other customization commands expanded in a {\tt \lbr\rbr} pair.
- \seesect{SingleLine:}}
\macrodef{sl\_ttbox}{sl_ttbox}{({\sl linespec, keys, input breaker keys,
output breaker keys})}
{SLD}
@@ -2326,34 +2376,38 @@ justification})}
except that the default breaker name is {\sl BrO}.
\label{sl_ttbox}%
\seesect{SingleLine:}}
+\macrodef{s\_name}{s_name}{}
+ {gen}
+ {the value of the last {\tt s\_init} argument
+ \seesect{Interaction:}}
+\macrodef{sourcerad\_}{sourcerad_}{}
+ {cct}
+ {default source radius}
\macrodef{source}{source}{(\linespec,
- V|v|I|i|AC|B|F|G|H|J|Q|L|N|P|S[C[r]]|E[r]]|T|X|U|{\sl other}, {\sl
+ V|v|I|i|ii|AC|B|F|G|H|J|Q|L|N|P|S[C[r]]|E[r]]|T|X|U|{\sl other}, {\sl
diameter},R)}
{cct}
{source, blank or:
- V = voltage source; v = alternate voltage source; I =
- current source; i = alternate current source; AC =
- AC source; B = bulb; F = fluorescent; G = generator;
- H = step function; L = lamp; N = neon; P = pulse;
- Q = charge; R = ramp; r = right orientation; S =
- sinusoid; SC = quarter arc; SE = arc; T = triangle;
- U = square-wave; X = interior X; other = custom
- interior label or waveform; arg 4: R = reversed
- polarity; arg 5 modifies the circle with e.g.,
- color or fill
+ V = voltage source; v = alternate voltage source;
+ I = current source; i = alternate current source;
+ ii = double arrow current source; AC = AC source;
+ B = bulb; F = fluorescent; G = generator; H = step
+ function; L = lamp; N = neon; P = pulse; Q = charge;
+ R = ramp; r = right orientation; S = sinusoid;
+ SC = quarter arc; SE = arc; T = triangle; U =
+ square-wave; X = interior X; other = custom interior
+ label or waveform; arg 4: R = reversed polarity;
+ arg 5 modifies the circle with e.g., color or fill
\seesect{Twoterminal:}}
-\macrodef{sourcerad\_}{sourcerad_}{}
- {cct}
- {default source radius}
-\macrodef{sp\_}{sp_}{}
- {gen}
- {evaluates to medium space for gpic strings}
\macrodef{speaker}{speaker}{( U|D|L|R|{\sl degrees},{\sl size},H)}
{cct}
{speaker, {\sl In1} to {\sl In7} defined; {\tt H}=horn
\seesect{Composite:}}
\macrodef{sprod3D}{sprod3D}{(a,x,y,z)}
{3D} {scalar product of triple x,y,z by a}
+\macrodef{sp\_}{sp_}{}
+ {gen}
+ {evaluates to medium space for gpic strings}
\macrodef{sqrta}{sqrta}{({\sl arg})}
{gen}
{square root of the absolute value of {\sl arg}; i.e.,
@@ -2364,6 +2418,9 @@ justification})}
with {\sl }n junctions labeled {\tt J1, ... J}{\sl n} placed around
a circle with initial angle -90 deg (by default) with respect to the
current drawing direction. The default diameter is {\tt dimen\_} }
+\macrodef{s\_}{s_}{}
+ {gen}
+ {.s with respect to current direction}
\macrodef{stackargs\_}{stackargs}{(`{\sl stackname}',{\sl args})}
{gen}
{Stack arg 2, arg 3, ... onto the named stack up to a blank arg}
@@ -2398,11 +2455,11 @@ justification})}
by nonblank
{\sl separator} (default .). White space preceding the fields
is ignored.}
+\macrodef{sum3D}{sum3D}{({\sl x1,y1,z1,x2,y2,z2})}
+ {3D} {sum of two triples}
\macrodef{sum\_}{sum_}{({\sl a},{\sl b})}
{gen}
{binary sum}
-\macrodef{sum3D}{sum3D}{({\sl x1,y1,z1,x2,y2,z2})}
- {3D} {sum of two triples}
\macrodef{sus}{sus}{({\sl linespec, chars, label})}
{cct}
{Wrapper to place an SUS thyristor as a two-terminal element with
@@ -2411,9 +2468,10 @@ justification})}
\macrodef{svec\_}{svec_}{({\sl x},{\sl y})}
{log}
{scaled and rotated grid coordinate vector}
-\macrodef{sw\_}{sw_}{}
+\macrodef{s\_wd}{s_wd}{({\sl name},{\sl default})}
{gen}
- {.sw with respect to current direction}
+ {width of the most recent (or named) {\tt s\_box}
+ \seesect{Interaction:}}
\macrodef{switch}{switch}{(\linespec,L|R,[C|O][D],[B|D])}
{cct}
{SPST switch (wrapper for bswitch, lswitch, and dswitch),
@@ -2423,10 +2481,11 @@ justification})}
if arg4=B (button switch): arg3 = O{\tt|}C
O=normally open, C=normally closed,
if arg4=D: arg3 = same as for dswitch \seesect{Twoterminal:}}
+\macrodef{sw\_}{sw_}{}
+ {gen}
+ {.sw with respect to current direction}
+%
\Letter{T}%
-\macrodef{ta\_xy}{ta_xy}{({\sl x, y})}
- {cct}
- {macro-internal coordinates adjusted for {\tt L|R}}
\macrodef{tapped}{tapped}{(`{\sl two-terminal element}',
[{\sl arrowhd} | type={\sl arrowhd};name={\sl Name}],
{\sl fraction, length, fraction, length,} $\cdots$)}
@@ -2440,6 +2499,9 @@ justification})}
or Name1, Name2, $\cdots$ if specified. Internal block names are
{\tt .Start, .End,} and {.C} corresponding to the drawn element,
and the tap names \seesect{Composite:} }
+\macrodef{ta\_xy}{ta_xy}{({\sl x, y})}
+ {cct}
+ {macro-internal coordinates adjusted for {\tt L|R}}
\macrodef{tbox}{tbox}{({\sl text,wid,ht},<|>|<>,{\sl type})}
{cct}
{Pointed terminal box. The {\sl text} is placed at the rectangular
@@ -2520,12 +2582,6 @@ justification})}
{gen}
{Evaluates to {\tt from {\sl position} - Rect\_({\sl length, angle}) to
{\sl position}} from the polar-coordinate data in the arguments }
-\macrodef{tr\_xy\_init}{tr_xy_init}{({\sl origin, unit size, sign })}
- {cct}
- {initialize {\tt tr\_xy}}
-\macrodef{tr\_xy}{tr_xy}{({\sl x, y})}
- {cct}
- {relative macro internal coordinates adjusted for {\tt L|R}}
\macrodef{transformer}{transformer}{(\linespec,L|R,{\sl np},%
[A|P][W|L][D1|D2|D12|D21],{\sl ns})}
{cct}
@@ -2536,6 +2592,12 @@ justification})}
L = looped windings, D1: phase dots at P1 and S1 end; D2 at P2 and
S2 end; D12 at P1 and S2 end; D21 at P2 and S1 end
\seesect{Composite:}}
+\macrodef{tr\_xy\_init}{tr_xy_init}{({\sl origin, unit size, sign })}
+ {cct}
+ {initialize {\tt tr\_xy}}
+\macrodef{tr\_xy}{tr_xy}{({\sl x, y})}
+ {cct}
+ {relative macro internal coordinates adjusted for {\tt L|R}}
\macrodef{tstrip}{tstrip}{(R|L|U|D|{\sl degrees, nterms, chars})}
{cct}
{terminal strip, chars:
@@ -2550,6 +2612,7 @@ brushht})}
\macrodef{twopi\_}{twopi_}{}
{gen}
{$2\pi$}
+%
\Letter{U}%
\macrodef{ujt}{ujt}{(\linespec,R,P,E)}
{cct}
@@ -2563,6 +2626,7 @@ brushht})}
\macrodef{up\_}{up_}{}
{gen}
{set current direction up \seesect{Placing:}}
+%
\Letter{V}%
\macrodef{variable}{variable}{(`{\sl element}',
{\tt [A|P|L|[u]N|[u]NN][C|S]}, [+|-]{\sl angle},
@@ -2616,10 +2680,8 @@ brushht})}
{{\tt Vsum\_(A,B)} evaluates to {\tt A+B} with dpic, {\tt
A+(B.x,B.y)}
with gpic}
+%
\Letter{W}%
-\macrodef{w\_}{w_}{}
- {gen}
- {.w with respect to current direction}
\macrodef{while\_}{while_}{(`{\sl test}',`{\sl actions}')}
{gen}
{Integer m4 while loop}
@@ -2631,6 +2693,9 @@ brushht})}
{cct}
{core winding drawn in the current direction; {\tt R}=right-handed
\seesect{Composite:}}
+\macrodef{w\_}{w_}{}
+ {gen}
+ {.w with respect to current direction}
\macrodef{XOR\_gate}{XOR_gate}{({\sl n},N)}
{log}
{`xor' gate, 2 or {\sl n\/} inputs; N=negated input.
@@ -2640,6 +2705,7 @@ brushht})}
\macrodef{XOR\_off}{XOR_off}{}
{log}
{XOR and NXOR offset of input face}
+%
\Letter{X}%
\macrodef{xtal}{xtal}{(\linespec,{\sl keys})}
{cct}
diff --git a/graphics/circuit_macros/dpictools.pic b/graphics/circuit_macros/dpictools.pic
index c89f13d293..8d3c81776c 100644
--- a/graphics/circuit_macros/dpictools.pic
+++ b/graphics/circuit_macros/dpictools.pic
@@ -3,7 +3,7 @@
# m4 macro NeedDpicTools or the pic statement copy "HOMELIB_/dpictools.pic"
# when HOMELIB_ is defined or, generically, copy "<path>dpictools.pic"
-# Circuit_macros Version 10.3, copyright (c) 2023 J. D. Aplevich under #
+# Circuit_macros Version 10.4, copyright (c) 2023 J. D. Aplevich under #
# the LaTeX Project Public Licence in file Licence.txt. The files of #
# this distribution may be redistributed or modified provided that this #
# copyright notice is included and provided that modifications are clearly #
diff --git a/graphics/circuit_macros/examples/Alogix.m4 b/graphics/circuit_macros/examples/Alogix.m4
index fd586869b7..4e5abd837c 100644
--- a/graphics/circuit_macros/examples/Alogix.m4
+++ b/graphics/circuit_macros/examples/Alogix.m4
@@ -9,7 +9,7 @@ A: Autologix(
move left 10bp__ from A.InCk
"\sl Out1" at A.Out1 ljust
"\sl Out2" at A.Out2 ljust
- Loopover_(`v_', `"$v_$" at A.In`'v_ above ', A,B,C,Ck)
+ foreach_(`v_', `"$v_$" at A.In`'v_ above ', A,B,C,Ck)
`"\shortstack[l]{
\tt Autologix( \\ \tt \quad
Nand(And(Or(A,C),Or(B,\~{}C),Or(\~{}A,B,C)),Ck);\\ \tt \quad
@@ -67,7 +67,7 @@ undefine(`extras')
ifdef(`extras',`
Q1: Autologix(Nor(Nor(A,And(B,C)),Nand(Not(B),D))) \
with .nw at A.sw+(0,-61bp__)
- Loopover_(`x',`"\sf x" at last [].In`'x above',A,B,C,D)
+ foreach_(`x',`"\sf x" at last [].In`'x above',A,B,C,D)
`"\shortstack[l]{%
\tt Q1: Autologix(Nor(Nor(A,And(B,C)),Nand(Not(B),D)),<options>)\\
@@ -76,37 +76,37 @@ ifdef(`extras',`
Q2: Autologix(Nor(Nor(A,And(B,~C)),Nand(Not(B),D)),V) \
with .nw at last "".sw+(0,-14bp__)
- Loopover_(`x',`"\sf x" at last [].In`'x above',A,B,C,D)
+ foreach_(`x',`"\sf x" at last [].In`'x above',A,B,C,D)
"\sf V" at last [].se above rjust
Q3: Autologix(Nor(Nor(A,And(B,C)),Nand(Not(B),D)),R) \
with .nw at last [].sw+(0,-0.2)
- Loopover_(`x',`"\sf x" at last [].In`'x above',A,B,C,D)
+ foreach_(`x',`"\sf x" at last [].In`'x above',A,B,C,D)
"\sf R" at last [].se above rjust
Q4: Autologix(Nor(Nor(A,And(B,C)),Nand(Not(B),D)),RV) \
with .nw at last [].sw+(0,-0.2)
- Loopover_(`x',`"\sf x" at last [].In`'x above',A,B,C,D)
+ foreach_(`x',`"\sf x" at last [].In`'x above',A,B,C,D)
"\sf RV" at last [].se above rjust
Autologix(Nor(Nor(A,And(B,C)),Nand(Not(B),D)),LRV) \
with .Out at Q4.Out+(3.5,0)
- Loopover_(`x',`"\sf x" at last [].In`'x rjust',A,B,C,D)
+ foreach_(`x',`"\sf x" at last [].In`'x rjust',A,B,C,D)
"\sf LRV" at last [].se above rjust
Autologix(Nor(Nor(A,And(B,C)),Nand(Not(B),D)),LR;offset=-L_unit*1.5) \
with .Out at Q3.Out+(3.5,0)
- Loopover_(`x',`"\sf x" at last [].In`'x rjust',A,B,C,D)
+ foreach_(`x',`"\sf x" at last [].In`'x rjust',A,B,C,D)
"\sf LR" at last [].se above rjust
Autologix(Nor(Nor(A,And(B,~C)),Nand(Not(B),D)),LV;offset=L_unit*2) \
with .Out at Q2.Out+(3.5,0)
- Loopover_(`x',`"\sf x" at last [].In`'x rjust',A,B,C,D)
+ foreach_(`x',`"\sf x" at last [].In`'x rjust',A,B,C,D)
"\sf LV" at last [].se above rjust
Autologix(Nor(Nor(A,And(B,C)),Nand(Not(B),D)),L) \
with .Out at Q1.Out+(3.5,0)
- Loopover_(`x',`"\sf x" at last [].In`'x rjust',A,B,C,D)
+ foreach_(`x',`"\sf x" at last [].In`'x rjust',A,B,C,D)
"\sf L" at last [].se above rjust
')
diff --git a/graphics/circuit_macros/examples/Smithchart.m4 b/graphics/circuit_macros/examples/Smithchart.m4
index fc6b5590db..8607339a7b 100644
--- a/graphics/circuit_macros/examples/Smithchart.m4
+++ b/graphics/circuit_macros/examples/Smithchart.m4
@@ -56,7 +56,7 @@ C: circle thick thk rad rar(0) at (0,0)
line thick thk grayline(thkg) from C.w to C.e
Rc(50): circle thick thk grayline(thkg) rad rar(50) at Rac(50)
-Loopover_(`term',`RaArc1(patsubst(term,:,`,'))',
+foreach_(`term',`RaArc1(patsubst(term,:,`,'))',
20:thn:50,
30 to 40 by 10:thn:50,
20:thk:20,
@@ -86,7 +86,7 @@ Loopover_(`term',`RaArc1(patsubst(term,:,`,'))',
0.01 to 0.191 by 0.01:thn:0.2,
0.05 to 0.151 by 0.1:thk:0.2)
-Loopover_(`term',`RaArc2(patsubst(term,:,`,'))',
+foreach_(`term',`RaArc2(patsubst(term,:,`,'))',
0.05 to 0.451 by 0.1:thn:1:0.5,
0.02 to 0.181 by 0.02:thn:0.5:0.1)
@@ -95,7 +95,7 @@ Xc(50): arct(thk) cw grayline(thkg) from C.e \
Xc(-50): arct(thk) grayline(thkg) from C.e \
to SGamma(0,-50) with .c at Xac(-50)
-Loopover_(`term',`XaArc2(patsubst(term,:,`,'))',
+foreach_(`term',`XaArc2(patsubst(term,:,`,'))',
10 to 20 by 10:thn:0:50,
7 to 9 by 2:thn:0:10,
2 to 18 by 2:thn:0:20,
@@ -112,7 +112,7 @@ Loopover_(`term',`XaArc2(patsubst(term,:,`,'))',
0.2 to 0.81 by 0.2:thk:0:2,
0.1 to 0.91 by 0.2:thk:0:1)
-Loopover_(`term',`XaArc2(patsubst(term,:,`,'))',
+foreach_(`term',`XaArc2(patsubst(term,:,`,'))',
0.05 to 0.451 by 0.1:thn:0.5:1,
0.02 to 0.181 by 0.02:thn:0:0.5,
0.02 to 0.191 by 0.01:thn:0:0.2, dnl 0.02 should be 0.01
@@ -125,12 +125,12 @@ dnl these avoid TeX arithmetic overflow:
dnl Internal labels start here
textht = C.wid/120
# Horizontal axis
-Loopover_(`t',`box wid textht ht textht*1.5 colored "white" \
+foreach_(`t',`box wid textht ht textht*1.5 colored "white" \
with .se at Rc(t).w+(-2bp__,2bp__)
r_text(90,"t",at Rc(t).w+(-textht/3,textht*1.5))',
0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9, 1,1.2,1.4,1.6,1.8, 2,3,4,5,10,20,50)
# Xc=1 labels
-Loopover_(`tt',
+foreach_(`tt',
`define(`m4ta',patsubst(tt,:.*))define(`m4vl',patsubst(tt,.*:))dnl
X: SGamma(m4vl,1)
M: move from Rc(m4vl) to X; ax = lin_ang(M)*rtod_-90 #; print ax
@@ -139,7 +139,7 @@ Loopover_(`tt',
r_text(-m4ta,m4vl,at X+(Rect_(textht*1.7,-(ax+30)))) ',
10:0.2, 19:0.4, 26:0.6, 32:0.8, 37:1)
# right-side circumference
-Loopover_(`tt',
+foreach_(`tt',
`define(`m4ta',patsubst(tt,:.*))define(`m4vl',patsubst(tt,.*:))dnl
X: Xc(m4vl).start; ax = atan2(X.y,X.x)*rtod_ ; # print round_(ax)
r_text(m4ta,m4vl,at X+(Rect_(textht*2,ax-120)))
@@ -148,13 +148,13 @@ Loopover_(`tt',
else { r_text(-m4ta,m4vl,at (X.x,-X.y)+(Rect_(textht*2,-ax+150))) } ',
6:20, 11:10, 23:5, 28:4, 37:3, 53:2, 58:1.8, 64:1.6, 71:1.4, 80:1.2, 90:1)
# left-side circumference
-Loopover_(`tt',
+foreach_(`tt',
`X: Xc(m4Lx*0.1).start; # print round_(atan2(X.y,X.x)*rtod_-180)
r_text(-patsubst(tt,:,`,'),at X+(Rect_(textht*1.7,-m4Lx*11+40)))
r_text( patsubst(tt,:,`,'),at (X.x,-X.y)+(Rect_(textht*2.1,m4Lx*11-30))) ',
11:0.1, 23:0.2, 33:0.3, 44:0.4, 53:0.5, 62:0.6, 70:0.7, 77:0.8, 84:0.9)
# Ra=1 labels
-Loopover_(`tt',`X: SGamma(1,m4Lx*0.2)
+foreach_(`tt',`X: SGamma(1,m4Lx*0.2)
M: move from Rac(1) to X; # print round_(lin_ang(M)*rtod_-180)
r_text(-eval(m4Lx*11),ifelse(m4Lx,5,1,0.eval(m4Lx*2)),
at X+(Rect_(textht*1.5,-m4Lx*11+40)))
@@ -188,7 +188,7 @@ for_(20,170,10,
r_text(eval( 90-m4x),-m4x,at A+(Rect_(A.rad+textht*1.2,-m4x)))
')
r_text(90,180,at A-(A.rad+textht/2,0))
-Loopover_(`rca',
+foreach_(`rca',
`r_text(eval(90-(180-rca/10)),eval(m4Lx*5+5),
at A+(Rect_(A.rad-textht*0.7,rca/10)))
r_text(eval(-90+(180-rca/10)),eval(-m4Lx*5-5),
@@ -199,16 +199,16 @@ Loopover_(`rca',
# Internal labels
setrgb(thng,thng,thkg)
"RESISTANCE R/Zo OR CONDUCTANCE G/Yo" at C+SGamma(0.5,0)-(0,C.rad/40)
- Loopover_(`Lttr',`ifelse(Lttr,*,,`r_text(eval(87-m4Lx*86/100),Lttr,
+ foreach_(`Lttr',`ifelse(Lttr,*,,`r_text(eval(87-m4Lx*86/100),Lttr,
at W+(Rect_(W.rad+wltic/2+textht*0.5, 177-m4Lx*0.86))) ')',
W,A,V,E,L,E,N,G,T,H,S,*,T,O,W,A,R,D,*,G,E,N,E,R,A,T,O,R)
- Loopover_(`Lttr',`ifelse(Lttr,*,,`r_text(eval(115-m4Lx*86/100),Lttr,
+ foreach_(`Lttr',`ifelse(Lttr,*,,`r_text(eval(115-m4Lx*86/100),Lttr,
at W+(Rect_(W.rad-wltic/2-textht*1.0, 204-m4Lx*0.86))) ')',
W,A,V,E,L,E,N,G,T,H,S,*,T,O,W,A,R,D,*,L,O,A,D)
- Loopover_(`Lttr',`ifelse(Lttr,*,,`define(`xa','13-m4Lx*86/100`)
+ foreach_(`Lttr',`ifelse(Lttr,*,,`define(`xa','13-m4Lx*86/100`)
r_text(eval(xa-90),Lttr,at A+(Rect_(A.rad+textht*0.7, xa))) ')',
R,E,F,L,E,C,T,I,O,N,*,C,O,E,F,F,I,C,I,E,N,T,*,A,N,G,L,E)
- Loopover_(`Lttr',`ifelse(Lttr,*,,`define(`xa','14-m4Lx*86/100`)
+ foreach_(`Lttr',`ifelse(Lttr,*,,`define(`xa','14-m4Lx*86/100`)
r_text(eval(xa-90),Lttr,at A+(Rect_(A.rad-textht*0.7, xa))) ')',
T,R,A,N,S,M,I,S,S,I,O,N,*,C,O,E,F,F,I,C,I,E,N,T,*,A,N,G,L,E)
resetrgb
diff --git a/graphics/circuit_macros/examples/Sources.m4 b/graphics/circuit_macros/examples/Sources.m4
index 8a4bab9bc6..53c732b75d 100644
--- a/graphics/circuit_macros/examples/Sources.m4
+++ b/graphics/circuit_macros/examples/Sources.m4
@@ -14,6 +14,7 @@ define(`NL',`; move down $1; right_')
{source ; move ; "`source'" ljust} NL
{source(,I) ; move ; "`source(,I)'" ljust} NL
{source(,i) ; move ; "`source(,i)'" ljust} NL
+ {source(,ii) ; move ; "`source(,ii)'" ljust} NL
{source(,V) ; move ; "`source(,V)'" ljust} NL
{source(,v) ; move ; "`source(,v)'" ljust} NL
{source(,SC) ; move ; "`source(,SC)'" ljust} NL
@@ -51,7 +52,8 @@ define(`NL',`; move down $1; right_')
{consource(,V) ; move ; "`consource(,V)'" ljust} NL(0.32)
{consource(,v) ; move ; "`consource(,v)'" ljust} NL(0.3)
{battery ; move ; "`battery'" ljust} NL(0.3)
- {battery(,3,R) ; move ; "`battery(,3,R)'" ljust}
+ {battery(,3,R) ; move ; "`battery(,3,R)'" ljust} NL(0.35)
+ {ttmotor(,G) ; move ; "`ttmotor(,G)'" ljust}
iflatex(`ifpsfrag(,`latexcommand(})')')
.PE
diff --git a/graphics/circuit_macros/examples/dpv/SourcesDPV.m4 b/graphics/circuit_macros/examples/dpv/SourcesDPV.m4
index 91e2edeba6..6c09030183 100644
--- a/graphics/circuit_macros/examples/dpv/SourcesDPV.m4
+++ b/graphics/circuit_macros/examples/dpv/SourcesDPV.m4
@@ -9,6 +9,7 @@ define(`NL',`; move down $1; right_')
{source ; move ; "`source'" ljust} NL
{source(,I) ; move ; "`source(,I)'" ljust} NL
{source(,i) ; move ; "`source(,i)'" ljust} NL
+ {source(,i) ; move ; "`source(,ii)'" ljust} NL
{source(,V) ; move ; "`source(,V)'" ljust} NL
{source(,v) ; move ; "`source(,v)'" ljust} NL
{source(,AC); move ; "`source(,AC)'" ljust} NL
@@ -41,8 +42,9 @@ define(`NL',`; move down $1; right_')
{consource(,i) ; move ; "`consource(,i)'" ljust} NL(0.32)
{consource(,V) ; move ; "`consource(,V)'" ljust} NL(0.32)
{consource(,v) ; move ; "`consource(,v)'" ljust} NL(0.3)
- {battery ; move ; "`battery'" ljust} NL
- {battery(,3,R) ; move ; "`battery(,3,R)'" ljust}
+ {battery ; move ; "`battery'" ljust} NL(0.3)
+ {battery(,3,R) ; move ; "`battery(,3,R)'" ljust} NL(0.35)
+ {ttmotor(,G) ; move ; "`ttmotor(,G)'" ljust}
command "</g>" # end font
.PE
diff --git a/graphics/circuit_macros/examples/ex05.m4 b/graphics/circuit_macros/examples/ex05.m4
index 748a48ebe9..07a5c27fa9 100644
--- a/graphics/circuit_macros/examples/ex05.m4
+++ b/graphics/circuit_macros/examples/ex05.m4
@@ -5,6 +5,7 @@ ifelse(ifpstricks(T)`'ifpgf(T)`'ifsvg(T)`'ifmpost(T),T,`
Kalman: [
fillval = 0.8 # environmental variable
+ linethick = 1 # slightly thicker for better screen pdf
dx = boxht/5 # diagram parameters wrt scaled env variables
circlerad = boxht*3/8
@@ -96,8 +97,10 @@ Coxeter: [
define(`customarc',
`pushdef(`dfillcolor',`0.7,0.7,0.7') linethick_(0.4); dnl
- Darc(`$1',linewid, (`$2')*dtor_, (`$3')*dtor_,
- thick=linewid/6; wid=linewid*0.3; ht=linewid/6; ends=<->)dnl
+# Darc(`$1',linewid, (`$2')*dtor_, (`$3')*dtor_,
+# thick=linewid/6; wid=linewid*0.3; ht=linewid/6; ends=<->)dnl
+ Darc(,centre=`$1';rad=linewid;startdeg= (`$2');enddeg=(`$3');
+ thick=linewid/6; wid=linewid*0.3; ht=linewid/6; ends=<->)
linethick_(customlinethick); popdef(`dfillcolor')')
customarc((linewid,-linewid/3), 25,155)
diff --git a/graphics/circuit_macros/examples/examples.pdf b/graphics/circuit_macros/examples/examples.pdf
index 1ca1e0ca2d..1b001ac9ad 100644
--- a/graphics/circuit_macros/examples/examples.pdf
+++ b/graphics/circuit_macros/examples/examples.pdf
Binary files differ
diff --git a/graphics/circuit_macros/examples/extras/Koch.m4 b/graphics/circuit_macros/examples/extras/Koch.m4
index faa46dfff8..cb122c10b6 100644
--- a/graphics/circuit_macros/examples/extras/Koch.m4
+++ b/graphics/circuit_macros/examples/extras/Koch.m4
@@ -25,8 +25,9 @@ gen_init
line from X to X
for i=1 to nsides do {
a += rot[i]
- X: X+(Rect_(leng,a))
- continue to X
+# X: X+(Rect_(leng,a))
+# continue to X
+ continue by (Rect_(leng,a))
}
.PE
diff --git a/graphics/circuit_macros/examples/extras/Makefile b/graphics/circuit_macros/examples/extras/Makefile
index 5fba20547c..efc8a2b23e 100644
--- a/graphics/circuit_macros/examples/extras/Makefile
+++ b/graphics/circuit_macros/examples/extras/Makefile
@@ -165,7 +165,7 @@ $(DOC).pdf:
file=`basename $$fl .m4` ; \
echo $$file.m4 ; \
$(M4) pgf.m4 extras.dim $$file.m4 | $(PIC) -g > $$file.tex ; \
- printf "\n\n|parbox{|textwidth}{\n" | $(BS) >> extras.tex ; \
+ printf "\n\n|noindent|parbox{|textwidth}{\n" | $(BS) >> extras.tex ; \
printf "|input{$$file.tex}\n" | $(BS) >> extras.tex ; \
printf "\n $$file.m4\n}\n|vspace{|baselineskip}" \
| sed -e 's/_/|_/g' | $(BS) >> extras.tex ; \
@@ -208,4 +208,4 @@ tst1:
dvips $(DVIPSOPTS) tst -o tst.ps
clean:
- rm -f *.ps *.pdf *.tex *.dim *.pic *.log *.dms *.aux
+ rm -f *.ps *.pdf *.tex *.dim *.pic *.log *.dms *.aux *.svg
diff --git a/graphics/circuit_macros/examples/extras/README_extras b/graphics/circuit_macros/examples/extras/README_extras
index 1c18266a6a..45074a49b2 100644
--- a/graphics/circuit_macros/examples/extras/README_extras
+++ b/graphics/circuit_macros/examples/extras/README_extras
@@ -1,11 +1,11 @@
-THIS DIRECTORY contains a Makefile and m4 sources for diagrams not
-included in the examples files. Many of these correspond to questions
-asked on stackexchange, of the form "How do I draw ... with tikz?"
-Producing drawings like these can be satisfying, as shown by the alacrity
-with which knowledgable people assist when questions are asked. Often,
-the question has more to do with geometry than drawing language, and
-the examples here using m4 with dpic merely confirm that the coding can
+THIS DIRECTORY contains a Makefile and m4 sources for some diagrams
+not included in the main examples files. Many of these correspond to
+questions asked on stackexchange, of the form "How do I draw ... with
+tikz?" Producing drawings like these can be satisfying, as shown by the
+alacrity with which knowledgable people assist when questions are asked.
+The questions often have more to do with geometry than drawing language,
+and the examples here using m4 with dpic confirm that the coding can
often be done reasonably in several possible languages.
This directory is assumed to be a subdirectory of the examples directory
diff --git a/graphics/circuit_macros/examples/extras/TR_fill.m4 b/graphics/circuit_macros/examples/extras/TR_fill.m4
index bf3fae888c..9a93dbe551 100644
--- a/graphics/circuit_macros/examples/extras/TR_fill.m4
+++ b/graphics/circuit_macros/examples/extras/TR_fill.m4
@@ -1,8 +1,8 @@
.PS
+gen_init
+[
# TR_fill.m4
# https://tex.stackexchange.com/questions/654117/fill-parts-of-a-shape
-gen_init
-
B: (0,0); "B" at B below
C: (5,0); "C" at C below
A: Cintersect(B,4,C,3); "A" at A above
@@ -13,5 +13,42 @@ gen_init
arc from A to B rad 2
arc cw to C rad 2.5
arc to A rad 1.5 )
+ ]
+[
+# Fillbetween
+# https://tex.stackexchange.com/questions/688273/polar-curve-shading-error-with-fillbetween
+NeedDpicTools
+
+ sc = 0.5
+ define coord {(($1,$2)*sc)}
+ define X1 {coord(Rect_(6*sind($1),$1))}
+ define X2 {coord(Rect_(2+2*sind($1),$1))}
+ define interp {$1+($2-($1))*($3)}
+ define axes {
+ arrow from coord(-6,0) to coord(6,0)
+ "$x$" rjust above
+ for x=-5 to 5 do {line up_ 0.1 at coord(x,0)}
+ "${-}5$" at coord(-5,-0.05/sc) below
+ "${}5$" at coord(5,-0.05/sc) below
+ arrow from coord(0,-2) to coord(0,7)
+ "$y$" at Here+(8bp__,-10bp__)
+ for y=-1 to 5 do {line right 0.1 at coord(0,y)}
+ "${}5$" at coord(-0.05/sc,5) rjust
+ }
+
+ n = 36
+ for i=0 to n do { t = interp(30,150,i/n); C3[i]: X1(t) }
+ for i=0 to n do { t = interp(150,150-360,i/n); C4[i]: X2(t) }
+ for i=0 to n do { t = interp(150,210,i/n); C5[i]: X1(t) }
+ rgbfill(0.9,0.9,0.9,
+ fitcurve(C3,n)
+ fitcurve(C4,n)
+ fitcurve(C5,n) )
+ fitcurve(C3,n,outlined "orange" )
+ fitcurve(C4,n,outlined "red" )
+ fitcurve(C5,n,outlined "orange" )
+
+ axes
+ ] with .nw at last [].sw+(0,-0.2)
.PE
diff --git a/graphics/circuit_macros/examples/extras/Views.m4 b/graphics/circuit_macros/examples/extras/Views.m4
index c02c9a4817..e33c656682 100644
--- a/graphics/circuit_macros/examples/extras/Views.m4
+++ b/graphics/circuit_macros/examples/extras/Views.m4
@@ -43,9 +43,9 @@ define(`textwidth',5.5)
define vec4 { $4[1] = $1; $4[2] = $2; $4[3] = $3; $4[4] = 1 }
# copy4( vector, vector )
define copy4 { $2[1] = $1[1]; $2[2] = $1[2]; $2[3] = $1[3]; $2[4] = $1[4] }
-# pr4( vector, label )
+# pr4( vector, label ) # projected vector (see pr below)
define pr4 { if $1[4]==0 then { print "Divide by zero" } \
- else { $2: pr($1[1]/$1[4],$1[2]/$1[4],$1[3]/$1[4]) }}
+ else { $2: pr($1[1]/$1[4],$1[2]/$1[4],$1[3]/$1[4]) }}
define print4 { print sprintf("%g,%g,%g,%g",$1[1],$1[2],$1[3],$1[4]) }
'
diff --git a/graphics/circuit_macros/examples/mf/cct.mf b/graphics/circuit_macros/examples/mf/cct.mf
index 776d8f4183..a511d1f0d9 100644
--- a/graphics/circuit_macros/examples/mf/cct.mf
+++ b/graphics/circuit_macros/examples/mf/cct.mf
@@ -1,5 +1,5 @@
% cct.mf, generated by Mfpic, v1.10 2012/12/03,
-% from TeX source "font" on 2023/05/31 at 20:45
+% from TeX source "font" on 2023/09/11 at 22:43
numeric mfpicversion; mfpicversion := 110;
if unknown mode: mode := localfont; fi
if unknown mag: mag := 1000/1000; fi
diff --git a/graphics/circuit_macros/gpic.m4 b/graphics/circuit_macros/gpic.m4
index 6ac550379d..5752faa7a6 100644
--- a/graphics/circuit_macros/gpic.m4
+++ b/graphics/circuit_macros/gpic.m4
@@ -1,7 +1,7 @@
divert(-1)
gpic.m4 Initialization for gpic.
-* Circuit_macros Version 10.3, copyright (c) 2023 J. D. Aplevich under *
+* Circuit_macros Version 10.4, copyright (c) 2023 J. D. Aplevich under *
* the LaTeX Project Public Licence in file Licence.txt. The files of *
* this distribution may be redistributed or modified provided that this *
* copyright notice is included and provided that modifications are clearly *
diff --git a/graphics/circuit_macros/lib3D.m4 b/graphics/circuit_macros/lib3D.m4
index b5a2f87aaf..7fd9901dd3 100644
--- a/graphics/circuit_macros/lib3D.m4
+++ b/graphics/circuit_macros/lib3D.m4
@@ -3,7 +3,7 @@ lib3D.m4 Macros for rotation, projection, and other
operations on argument triples representing
3D vectors or colors.
-* Circuit_macros Version 10.3, copyright (c) 2023 J. D. Aplevich under *
+* Circuit_macros Version 10.4, copyright (c) 2023 J. D. Aplevich under *
* the LaTeX Project Public Licence in file Licence.txt. The files of *
* this distribution may be redistributed or modified provided that this *
* copyright notice is included and provided that modifications are clearly *
diff --git a/graphics/circuit_macros/libSLD.m4 b/graphics/circuit_macros/libSLD.m4
index 59729e8f86..e4438b73ae 100644
--- a/graphics/circuit_macros/libSLD.m4
+++ b/graphics/circuit_macros/libSLD.m4
@@ -2,7 +2,7 @@ divert(-1)
libSLD.m4 Draft macros for single-line diagram elements
-* Circuit_macros Version 10.3, copyright (c) 2023 J. D. Aplevich under *
+* Circuit_macros Version 10.4, copyright (c) 2023 J. D. Aplevich under *
* the LaTeX Project Public Licence in file Licence.txt. The files of *
* this distribution may be redistributed or modified provided that this *
* copyright notice is included and provided that modifications are clearly *
diff --git a/graphics/circuit_macros/libcct.m4 b/graphics/circuit_macros/libcct.m4
index fd31a76c80..4f8d12c0c2 100644
--- a/graphics/circuit_macros/libcct.m4
+++ b/graphics/circuit_macros/libcct.m4
@@ -1,7 +1,7 @@
divert(-1)
libcct.m4
-* Circuit_macros Version 10.3, copyright (c) 2023 J. D. Aplevich under *
+* Circuit_macros Version 10.4, copyright (c) 2023 J. D. Aplevich under *
* the LaTeX Project Public Licence in file Licence.txt. The files of *
* this distribution may be redistributed or modified provided that this *
* copyright notice is included and provided that modifications are clearly *
@@ -617,10 +617,11 @@ define(`xtal',`eleminit_(`$1') pushkey_(`$2',type,N,N)
line to rvec_(rp_len,0) invis ')
`source( linespec,
- V|v|I|i|AC|B|F|G|H|Q|L|N|P|R|S[C[r]|E[r]]]|T|X|U|other,
+ V|v|I|i|ii|AC|B|F|G|H|Q|L|N|P|R|S[C[r]|E[r]]]|T|X|U|other,
diameter, R, attributes,body name)
V = voltage source; v = alternate voltage source;
I = current source; i = alternate current source;
+ ii = double arrowhead current source;
AC = AC source; B = bulb; F = fluorescent; G =
generator; H = step function; L = lamp;
N = neon; P = pulse; Q = charge; R = ramp; r = right
@@ -651,6 +652,14 @@ define(`source',`ifelse(`$4',R,
to rvec_(m4h/2,0)}',
`$2',I,`{arrow from rvec_(-m4h*3/4,0) \
to rvec_(m4h*3/4,0)}',
+ `$2',ii,`{line from rvec_(-m4h,0) \
+ to rvec_(m4h,0)}
+ {line thick 1.2*linethick from rvec_(m4h/12,-m4h*0.45) \
+ to rvec_(m4h*5/6,0) \
+ then to rvec_(m4h/12,m4h*0.45)}
+ {line thick 1.2*linethick from rvec_(-m4h*3/4,-m4h*0.45) \
+ to Here \
+ then to rvec_(-m4h*3/4,m4h*0.45)}',
`$2',i,`{line from rvec_(0,-m4h) \
to rvec_(0,m4h)}',
`$2',B,`{line from rvec_(-m4h,0) \
diff --git a/graphics/circuit_macros/libgen.m4 b/graphics/circuit_macros/libgen.m4
index 324196e6ec..d69385b63a 100644
--- a/graphics/circuit_macros/libgen.m4
+++ b/graphics/circuit_macros/libgen.m4
@@ -2,7 +2,7 @@ divert(-1)
libgen.m4 Base macros for dpic and gpic diagrams
-* Circuit_macros Version 10.3, copyright (c) 2023 J. D. Aplevich under *
+* Circuit_macros Version 10.4, copyright (c) 2023 J. D. Aplevich under *
* the LaTeX Project Public Licence in file Licence.txt. The files of *
* this distribution may be redistributed or modified provided that this *
* copyright notice is included and provided that modifications are clearly *
@@ -199,7 +199,7 @@ define(`latexcommand',
`$2')')
define(`m4announceprocessor',`dnl Do not change the format of the next line:
-`#' `$1' Version 10.3: ifelse(m4picprocessor,gpic,`Gpic',
+`#' `$1' Version 10.4: ifelse(m4picprocessor,gpic,`Gpic',
m4postprocessor,pstricks,`PSTricks',
m4postprocessor,pgf,`TikZ PGF',
m4postprocessor,mfpic,`Mfpic',
@@ -334,7 +334,7 @@ define(`quadrant_',`(int(pmod(`$1',360)/90)+1)')
define(`drawdir_',`define(`m4sectang',`ifelse(`$2',,90,(`$2'))')dnl
(int(pmod(`$1'+m4sectang/2,360)/m4sectang)*m4sectang)')
- `arcr( position, radius,
+ `arcr( centre, radius,
start radians, end radians,
modifiers, ht)
Unique ccw arc. If arg 5 contains -> or <-
@@ -362,7 +362,7 @@ define(`arcr',`define(`M4arcrC',`M4Pos(ifelse(`$1',,Here,`$1'))')dnl
arc patsubst(patsubst(`$5',->,),<-,) \
from M4aStart to M4aEnd rad m4arad with .c at M4aCtr ')
- `arcd( position, radius,
+ `arcd( centre, radius,
start degrees, end degrees,
attributes, ht)
Like arcr but with angles in degrees:
@@ -518,8 +518,6 @@ define(`dashline',`rpoint_(`$1')define(`m4opts',`$2')
ifelse(`$5',G,,
`if m4ti < dashline_n then {')move to rvec_(m4gap,0)ifelse(`$5',G,,})
} ')
-
- `round(at location,line thickness,attributes)
filled circle for rounded corners'
define(`round',`{ circle thick ifelse(`$2',,`linethick/2',(`$2')/2) \
diameter ifelse(`$2',,`linethick',`($2)')/2 pt__ \
@@ -1443,32 +1441,73 @@ m4postprocessor,svg,
D[iamond]
C[rowfoot]
P[lain]
+ R[ight]
+ L[eft]
wdth=expr (default arrowwid)
lgth=expr (default arrowht)
shaft= attributes (dashed etc)
- head= attributes (shaded etc)'
-define(`sarrow',`arrow invis `$1' ; M4_E: Here
- pushkeys_(`$2',type:O:N;head::N;shaft::N;wdth:arrowwid;lgth:arrowht)
- line from last arrow.start to last arrow.end chop 0 chop m4lgth m4shaft
- M4_X: Here; M4_P: Vperp(M4_E,M4_X,m4wdth/2)
+ head= attributes (shaded etc)
+ name=Name (default Sarrow_)'
+define(`sarrow',
+ `pushkeys_(`$2',
+ type:O:N;head::N;shaft:m4head:N;wdth:arrowwid;lgth:arrowht;name:Sarrow_:N)dnl
+ arrow `$1' m4head invis
+ m4_dx = last arrow.end.x-last arrow.start.x
+ m4_dy = last arrow.end.y-last arrow.start.y
+ m4_t = last arrow.thick bp__
+m4name: [
+ ifelse(ifelse(m4type,L,L,m4type,R,R),,,`poppushdef(`m4wdth',(m4wdth*2))')
+ Point: Here; Shaft: Point-(m4_dx,m4_dy)
+ C: (Shaft-Point)/distance(Shaft,Point)
+ X: m4affine(m4lgth,0,Point,C)
+ if m4wdth == 0.0 then { po = 0.0 } \
+ else { po = min((m4_t/m4wdth)*sqrt((m4lgth)^2+(m4wdth)^2/4),m4lgth) }
+ P: m4affine(po,0,Point,C)
+ h = m4lgth-m4_t/2;
+ x = h - po;
+ if m4lgth == 0.0 then { v = 0.0 } else { v = ((m4wdth/2)/m4lgth)*x }
+ R: m4affine(h, v,Point,C);
+ L: m4affine(h,-v,Point,C);
+ if x == 0.0 then { t = 1 } else { t = m4lgth/x }
+ if m4lgth==0 then { y = 0 } else { y = m4lgth-po+m4_t*m4wdth/m4lgth/4 }
+ Ly: (P*(x-y)+L*y)/x
+ Ry: (P*(x-y)+R*y)/x
ifinstr(m4type,O,
- `line from M4_E to M4_X+(M4_P.x,M4_P.y) then to M4_X-(M4_P.x,M4_P.y) \
- then to M4_E ifelse(m4head,,fill_(1),m4head)',
+ `line from Shaft to (L+R)/2 m4shaft
+ line to L then to P then to R then to Here m4head',
m4type,D,
- `line from M4_X to (0.5 between M4_E and M4_X)+(M4_P.x,M4_P.y) \
- then to M4_E then to (0.5 between M4_E and M4_X)-(M4_P.x,M4_P.y) \
- then to M4_X ifelse(m4head,,fill_(1),m4head)',
+ `poppushdef(`m4lgth',(m4lgth+m4_t))dnl
+ s = sqrt(m4lgth^2+m4wdth^2)/2
+ if m4wdth==0 then { pd = 0 } else { pd = m4_t*s/m4wdth }
+ PD: m4affine(pd,0,Point,C)
+ line from Shaft to X m4shaft
+ if m4lgth==0 then { pb = 0 } else { pb = m4_t*s/m4lgth }
+ PL: m4affine(m4lgth/2, m4wdth/2-pb,Point,C)
+ PR: m4affine(m4lgth/2,-m4wdth/2+pb,Point,C)
+ line to PL then to PD then to PR then to X \
+ ifelse(m4head,,fill_(1),m4head)',
m4type,P,
- `line to M4_E m4head
- line from M4_X+(M4_P.x,M4_P.y) to M4_E then to M4_X-(M4_P.x,M4_P.y) m4head',
+ `line from Shaft to P m4shaft
+ line from Ly to P then to Ry m4head',
m4type,C,
- `line to M4_E m4head
- ifdpic(`spline 0.4 from M4_E+M4_P to M4_X+M4_P then to M4_X-M4_P \
- then to M4_E-M4_P',
- `spline from M4_E+(M4_P.x,M4_P.y) to M4_X+(M4_P.x,M4_P.y) \
- then to M4_X-(M4_P.x,M4_P.y) then to M4_E-(M4_P.x,M4_P.y)') m4head')
- popdef(`m4type',`m4head',`m4shaft',`m4wdth',`m4lgth')dnl
- move to M4_E')
+ `line from Shaft to Point m4head
+ Q: (-C.y,C.x)*((m4wdth-m4_t)/2)
+ Y: m4affine(m4lgth-m4_t/2,0,Point,C)
+ ifdpic(`spline 0.4 from Point+Q to Y+Q then to Y-Q then to Point-Q',
+ `spline from Point+(Q.x,Q.y) to Y+(Q.x,Q.y) \
+ then to Y-(Q.x,Q.y) then to Point-(Q.x,Q.y)') m4head',
+ m4type,R,
+ `line from Shaft to P m4shaft
+ circle diam m4_t/2 at Here m4shaft thick last line.thick/2
+ line from 1bp__/distance(Ly,P) between P and Ly to P then to Ry m4shaft',
+ m4type,L,
+ `line from Shaft to P m4shaft
+ circle diam m4_t/2 at Here m4shaft thick last line.thick/2
+ line from 1bp__/distance(Ry,P) between P and Ry to P then to Ly m4shaft')
+ popdef(`m4type',`m4head',`m4shaft',`m4wdth',`m4lgth',`m4name')dnl
+ ] with .Point at Here')
+define(`m4affine',
+ ``$3' + (`$4'.x*(`$1')-`$4'.y*(`$2'),`$4'.y*(`$1')+`$4'.x*(`$2'))')
`open_arrow(linespec, ht, wid, head attribs)
arrow with outlined head, like sarrow(,type=O)'
@@ -1828,7 +1867,7 @@ define(`graystring',`rgbstring(`$1',`$1',`$1')')
`outlined string' or `shaded string'
(mpost,PSTricks,pdf,tikz-pgf,postscript,svg
only)
- The 1: after rgb is a divisor for the values
+ The "1:" after rgb is a divisor for the values
(xcolor manual p 16)'
ifelse(
m4postprocessor,pstricks,`define(`rgbstring',`ifelse(`$2',,`"$1"',
diff --git a/graphics/circuit_macros/liblog.m4 b/graphics/circuit_macros/liblog.m4
index 67b9a78773..5f4693cd67 100644
--- a/graphics/circuit_macros/liblog.m4
+++ b/graphics/circuit_macros/liblog.m4
@@ -1,7 +1,7 @@
divert(-1)
liblog.m4 Logic gates
-* Circuit_macros Version 10.3, copyright (c) 2023 J. D. Aplevich under *
+* Circuit_macros Version 10.4, copyright (c) 2023 J. D. Aplevich under *
* the LaTeX Project Public Licence in file Licence.txt. The files of *
* this distribution may be redistributed or modified provided that this *
* copyright notice is included and provided that modifications are clearly *
diff --git a/graphics/circuit_macros/mfpic.m4 b/graphics/circuit_macros/mfpic.m4
index d82cb5ffce..6fde5de528 100644
--- a/graphics/circuit_macros/mfpic.m4
+++ b/graphics/circuit_macros/mfpic.m4
@@ -1,7 +1,7 @@
divert(-1)
mfpic.m4 Initialization for mfpic.
-* Circuit_macros Version 10.3, copyright (c) 2023 J. D. Aplevich under *
+* Circuit_macros Version 10.4, copyright (c) 2023 J. D. Aplevich under *
* the LaTeX Project Public Licence in file Licence.txt. The files of *
* this distribution may be redistributed or modified provided that this *
* copyright notice is included and provided that modifications are clearly *
diff --git a/graphics/circuit_macros/mpost.m4 b/graphics/circuit_macros/mpost.m4
index 9cc15dc897..21fb7c01c9 100644
--- a/graphics/circuit_macros/mpost.m4
+++ b/graphics/circuit_macros/mpost.m4
@@ -1,7 +1,7 @@
divert(-1)
mpost.m4 Initialization for metapost.
-* Circuit_macros Version 10.3, copyright (c) 2023 J. D. Aplevich under *
+* Circuit_macros Version 10.4, copyright (c) 2023 J. D. Aplevich under *
* the LaTeX Project Public Licence in file Licence.txt. The files of *
* this distribution may be redistributed or modified provided that this *
* copyright notice is included and provided that modifications are clearly *
diff --git a/graphics/circuit_macros/pdf.m4 b/graphics/circuit_macros/pdf.m4
index 30c88f407d..685dc5e93d 100644
--- a/graphics/circuit_macros/pdf.m4
+++ b/graphics/circuit_macros/pdf.m4
@@ -1,7 +1,7 @@
divert(-1)
pdf.m4 Initialization for pdf output.
-* Circuit_macros Version 10.3, copyright (c) 2023 J. D. Aplevich under *
+* Circuit_macros Version 10.4, copyright (c) 2023 J. D. Aplevich under *
* the LaTeX Project Public Licence in file Licence.txt. The files of *
* this distribution may be redistributed or modified provided that this *
* copyright notice is included and provided that modifications are clearly *
diff --git a/graphics/circuit_macros/pgf.m4 b/graphics/circuit_macros/pgf.m4
index 72f109832f..2bdbef1550 100644
--- a/graphics/circuit_macros/pgf.m4
+++ b/graphics/circuit_macros/pgf.m4
@@ -1,7 +1,7 @@
divert(-1)
pgf.m4 Initialization for Tikz-pgf.
-* Circuit_macros Version 10.3, copyright (c) 2023 J. D. Aplevich under *
+* Circuit_macros Version 10.4, copyright (c) 2023 J. D. Aplevich under *
* the LaTeX Project Public Licence in file Licence.txt. The files of *
* this distribution may be redistributed or modified provided that this *
* copyright notice is included and provided that modifications are clearly *
diff --git a/graphics/circuit_macros/postscript.m4 b/graphics/circuit_macros/postscript.m4
index da7e16ba34..42d546fb0c 100644
--- a/graphics/circuit_macros/postscript.m4
+++ b/graphics/circuit_macros/postscript.m4
@@ -1,7 +1,7 @@
divert(-1)
postscript.m4 Initialization for Postscript output.
-* Circuit_macros Version 10.3, copyright (c) 2023 J. D. Aplevich under *
+* Circuit_macros Version 10.4, copyright (c) 2023 J. D. Aplevich under *
* the LaTeX Project Public Licence in file Licence.txt. The files of *
* this distribution may be redistributed or modified provided that this *
* copyright notice is included and provided that modifications are clearly *
diff --git a/graphics/circuit_macros/psfrag.m4 b/graphics/circuit_macros/psfrag.m4
index 172ed5ce6d..e05909a327 100644
--- a/graphics/circuit_macros/psfrag.m4
+++ b/graphics/circuit_macros/psfrag.m4
@@ -2,7 +2,7 @@ divert(-1)
psfrag.m4 Initialization for dpic -f processing:
Postscript with psfrag strings
-* Circuit_macros Version 10.3, copyright (c) 2023 J. D. Aplevich under *
+* Circuit_macros Version 10.4, copyright (c) 2023 J. D. Aplevich under *
* the LaTeX Project Public Licence in file Licence.txt. The files of *
* this distribution may be redistributed or modified provided that this *
* copyright notice is included and provided that modifications are clearly *
diff --git a/graphics/circuit_macros/pstricks.m4 b/graphics/circuit_macros/pstricks.m4
index f172c6cde3..1da2497e56 100644
--- a/graphics/circuit_macros/pstricks.m4
+++ b/graphics/circuit_macros/pstricks.m4
@@ -1,7 +1,7 @@
divert(-1)
pstricks.m4 Initialization for PSTricks.
-* Circuit_macros Version 10.3, copyright (c) 2023 J. D. Aplevich under *
+* Circuit_macros Version 10.4, copyright (c) 2023 J. D. Aplevich under *
* the LaTeX Project Public Licence in file Licence.txt. The files of *
* this distribution may be redistributed or modified provided that this *
* copyright notice is included and provided that modifications are clearly *
diff --git a/graphics/circuit_macros/svg.m4 b/graphics/circuit_macros/svg.m4
index f08764fd13..f545debb23 100644
--- a/graphics/circuit_macros/svg.m4
+++ b/graphics/circuit_macros/svg.m4
@@ -1,7 +1,7 @@
divert(-1)
svg.m4 Initialization for svg output.
-* Circuit_macros Version 10.3, copyright (c) 2023 J. D. Aplevich under *
+* Circuit_macros Version 10.4, copyright (c) 2023 J. D. Aplevich under *
* the LaTeX Project Public Licence in file Licence.txt. The files of *
* this distribution may be redistributed or modified provided that this *
* copyright notice is included and provided that modifications are clearly *
diff --git a/graphics/circuit_macros/xfig.m4 b/graphics/circuit_macros/xfig.m4
index 40a94e454c..8a00a9368e 100644
--- a/graphics/circuit_macros/xfig.m4
+++ b/graphics/circuit_macros/xfig.m4
@@ -1,7 +1,7 @@
divert(-1)
xfig.m4 Initialization for xfig.
-* Circuit_macros Version 10.3, copyright (c) 2023 J. D. Aplevich under *
+* Circuit_macros Version 10.4, copyright (c) 2023 J. D. Aplevich under *
* the LaTeX Project Public Licence in file Licence.txt. The files of *
* this distribution may be redistributed or modified provided that this *
* copyright notice is included and provided that modifications are clearly *
diff --git a/graphics/pgf/contrib/profsio/doc/ProfSio-doc-fr.pdf b/graphics/pgf/contrib/profsio/doc/ProfSio-doc-fr.pdf
index 003e8804f4..f923177335 100644
--- a/graphics/pgf/contrib/profsio/doc/ProfSio-doc-fr.pdf
+++ b/graphics/pgf/contrib/profsio/doc/ProfSio-doc-fr.pdf
Binary files differ
diff --git a/graphics/pgf/contrib/profsio/doc/ProfSio-doc-fr.tex b/graphics/pgf/contrib/profsio/doc/ProfSio-doc-fr.tex
index c05b020cee..fa57ad3c86 100644
--- a/graphics/pgf/contrib/profsio/doc/ProfSio-doc-fr.tex
+++ b/graphics/pgf/contrib/profsio/doc/ProfSio-doc-fr.tex
@@ -5,8 +5,8 @@
\documentclass[french,a4paper,11pt]{article}
\usepackage[margin=2cm,includefoot]{geometry}
-\def\TPversion{0.1.4}
-\def\TPdate{23 août 2023}
+\def\TPversion{0.1.5}
+\def\TPdate{13 septembre 2023}
%\usepackage[utf8]{inputenc}
%\usepackage[T1]{fontenc}
\usepackage{amsmath,amssymb}
@@ -81,10 +81,10 @@
keywordstyle={\color{violet}},%
classoffset=2,%
alsoletter={-},%
- morekeywords={\MPMPlaceTache,\MPMPlaceNotice,\MPMPlaceDuree,GrapheMPM,TableKarnaugh,\KarnaughCasesResult,\KarnaughBlocRegroup,\MPMPlaceTaches,\MPMPlaceDurees,GrapheTikz,\GrphPlaceSommets,\GrphTraceAretes,\tikzset,\DiagrammeSagittal,\draw,\DiagrammeSagittalCompo,\TableVerite},%
+ morekeywords={\MPMPlaceTache,\MPMPlaceNotice,\MPMPlaceDuree,GrapheMPM,TableKarnaugh,\KarnaughCasesResult,\KarnaughBlocRegroup,\MPMPlaceTaches,\MPMPlaceDurees,GrapheTikz,\GrphPlaceSommets,\GrphTraceAretes,\tikzset,\DiagrammeSagittal,\draw,\DiagrammeSagittalCompo,\TableVerite,\SimplificationKarnaugh},%
keywordstyle={\color{green!50!black}},%
classoffset=3,%
- morekeywords={CouleurDurees,CouleurFleches,LargeurCases,Epaisseur,Police,CouleurDates,CouleurBords,NoirBlanc,Grille,DecalHorizDeb,DecalVertDeb,DecalHorizFin,DecalVertFin,Coude,SensCoude,Unite,Variables,Swap,Aide,CouleurCases,Decalage,Couleur,Type,Legende,PosVarLaterale,CouleurLegende,CouleurSommets,TypeSommets,Unite,CouleurFT,DimensionSommets,PositionFleches,EchelleFleches,TypeFleche,Droit,Milieu,AngleGauche,AngleDroite,Boucle,GrphStyleArc,GrphStyleSommet,Poids,GrphStylepoids,DistElem,DistEns,LargEns,NomAppli,CouleurE,CouleurAppli,CouleurF,CouleursFleches,TypeFleche,Epaisseur,Labels,Ensembles,PosLabels,PoliceLabels,Offset,NomApplis,CouleursAppli,VF,LargeursColonnes,CouleurEnonce,CodeAvant,CodeApres,StyleAlternatif,PoliceTT},%
+ morekeywords={CouleurDurees,CouleurFleches,LargeurCases,Epaisseur,Police,CouleurDates,CouleurBords,NoirBlanc,Grille,DecalHorizDeb,DecalVertDeb,DecalHorizFin,DecalVertFin,Coude,SensCoude,Unite,Variables,Swap,Aide,CouleurCases,Decalage,Couleur,Type,Legende,PosVarLaterale,CouleurLegende,CouleurSommets,TypeSommets,Unite,CouleurFT,DimensionSommets,PositionFleches,EchelleFleches,TypeFleche,Droit,Milieu,AngleGauche,AngleDroite,Boucle,GrphStyleArc,GrphStyleSommet,Poids,GrphStylepoids,DistElem,DistEns,LargEns,NomAppli,CouleurE,CouleurAppli,CouleurF,CouleursFleches,TypeFleche,Epaisseur,Labels,Ensembles,PosLabels,PoliceLabels,Offset,NomApplis,CouleursAppli,VF,LargeursColonnes,CouleurEnonce,CodeAvant,CodeApres,StyleAlternatif,PoliceTT,Espace,Couleurs},%
keywordstyle={\color{orange}}
},%
#1
@@ -155,7 +155,7 @@
\vspace{0.15cm}
-{$\blacktriangleright$~~Créer des tables de Karnaugh avec mise en valeur (manuelle) des regroupements.}
+{$\blacktriangleright$~~Créer (et simplifier) des tables de Karnaugh avec mise en valeur (manuelle) des regroupements.}
\vspace{0.15cm}
@@ -255,6 +255,8 @@
\section{Historique}
+\verb|v0.1.5|~:~~~~Commande pour simplifier une table de Karnaugh à trois variables
+
\verb|v0.1.4|~:~~~~Possibilité de remplir une table de Karnaugh sans virgule
\verb|v0.1.3|~:~~~~Style alternatif et Clé \Cle{PoliceTT} pour les tables de Karnaugh
@@ -694,7 +696,7 @@ En ce qui concerne la création de l'environnement, les \Cle{clés} sont :
\item \Cle{CouleurLegende} := couleur de la légende, via \Cle{Couleur} ou \Cle{CouleurA/CouleurB/CouleurC} ;
\hfill~défaut : \Cle{black}
- \item \Cle{StyleAternatif} := booléen pour changer de style ; \hfill~défaut : \Cle{false}
+ \item \Cle{StyleAlternatif} := booléen pour changer de style ; \hfill~défaut : \Cle{false}
\item \Cle{AideAlt} := booléen pour (dés)activer le label \textit{binaire} des cases ; \hfill~défaut : \Cle{true}
\item \Cle{PoliceTT} := booléen pour forcer les labels en police télétype ; \hfill~défaut : \Cle{false}
\item \Cle{PosVarLaterale} := position de la variable \textit{latérale}.\hfill~défaut : \Cle{Gauche}
@@ -808,6 +810,119 @@ On obtient le tableau de Karnaugh suivant :
\pagebreak
+\section{Simplification d'une expression booléene par table de Karnaugh}
+
+\subsection{Commande et fonctionnement global}
+
+\begin{cautionblock}
+L'idée est de proposer une commande pour simplifier une expression booléenne à trois variables connaissant sa table de vérité :
+
+\begin{itemize}
+ \item en utilisant une manière \textit{binaire} de déclarer la table de vérité ;
+ \item en adaptant le résultat à la configuration de la table de Karnaugh.
+\end{itemize}
+\vspace*{-\baselineskip}\leavevmode
+\end{cautionblock}
+
+\begin{importantblock}
+Je remercie mes étudiants de BTS SIO2 (promo 2023/2024) pour m'avoir aidé à simplifier les 256 (!) tables de Karnaugh possibles, en se répartissant le travail !
+
+\smallskip
+
+Malgré des relectures, il se peut qu'il subsiste malheureusement des coquilles dans les expressions simplifiées, et dans le cas où il existe plusieurs possibilités, la commande n'affichera que l'une d'entre elles !
+\end{importantblock}
+
+\begin{DemoCode}[listing only]
+\SimplificationKarnaugh[clés]{code binaire de la table}
+\end{DemoCode}
+
+\begin{cautionblock}
+La déclaration \textit{binaire} de la table suit les mêmes règles que pour la commande de création de la table :
+
+\begin{itemize}
+ \item la liste des cases soit être saisie, de gauche à droite en partant de la ligne du haut ;
+ \item elle doit être donnée en bianire, sans séparateur, comme \Cle{\{1010111\}} par exemple.
+\end{itemize}
+\vspace*{-\baselineskip}\leavevmode
+\end{cautionblock}
+
+\begin{importantblock}
+Par \textbf{défaut}, le remplissage des cases est relatif à la configuration suivante, mais il est possible de spécifier un autre type de table :
+
+\begin{center}
+ \begin{TableKarnaugh}
+ \end{TableKarnaugh}
+\end{center}
+\end{importantblock}
+
+\pagebreak
+
+\subsection{Arguments et clés }
+
+\begin{DemoCode}[listing only]
+\SimplificationKarnaugh[clés]{code binaire de la table}
+\end{DemoCode}
+
+\begin{tipblock}
+Les clés disponibles sont :
+
+\begin{itemize}
+ \item \Cle{Couleurs} := couleurs pour chacune des trois variables booléennes ;
+
+ \hfill~défaut : \Cle{black/black/black}
+ \item \Cle{Variables} := variables utilisées ; \hfill~défaut : \Cle{a/b/c}
+ \item \Cle{Swap} := booléen pour échanger les variables du \textit{bas} ; \hfill~défaut : \Cle{false}
+ \item \Cle{Espace} := booléen pour rajouter un petit espace (\textit{fine}) dans les produits ;
+
+ \hfill~défaut : \Cle{true}
+ \item \Cle{StyleAlternatif} := booléen pour changer de style. \hfill~défaut : \Cle{false}
+\end{itemize}
+
+L'argument obligatoire est quant à lui la déclaration \textit{binaire} de la table, sous la forme \Cle{\{xxxxxxxx\}}.
+
+\smallskip
+
+À noter que le résultat est inséré dans un groupe \texttt{ensuremath}.
+\end{tipblock}
+
+\subsection{Exemples}
+
+\begin{DemoCode}
+La table de Karnaugh :
+\begin{TableKarnaugh}<baseline=(current bounding box.center)>
+ \KarnaughCasesResult*{11001011}
+\end{TableKarnaugh}~
+correspond à $E=\SimplificationKarnaugh{11001011}$.
+\end{DemoCode}
+
+\begin{DemoCode}
+La table de Karnaugh :
+\begin{TableKarnaugh}[Swap]<baseline=(current bounding box.center)>
+ \KarnaughCasesResult*{11011111}
+\end{TableKarnaugh}~
+correspond à $E=\SimplificationKarnaugh[Swap]{11011111}$.
+\end{DemoCode}
+
+\begin{DemoCode}
+La table de Karnaugh :
+\begin{TableKarnaugh}[Variables={g/n/b}]<baseline=(current bounding box.center)>
+ \KarnaughCasesResult*{01001111}
+\end{TableKarnaugh}~
+correspond à $E=\SimplificationKarnaugh[Variables={g/n/b}]{01001111}$
+\end{DemoCode}
+
+\begin{DemoCode}
+La table de Karnaugh :
+\begin{TableKarnaugh}[StyleAlternatif]<baseline=(current bounding box.center)>
+ \KarnaughCasesResult{11011001}
+\end{TableKarnaugh}~
+correspond à \SimplificationKarnaugh%
+ [StyleAlternatif,Espace=false,Couleurs={purple/blue/orange}]%
+ {11011001}
+\end{DemoCode}
+
+\pagebreak
+
\section{Graphes \textit{simples}}
\subsection{Commande et fonctionnement global}
diff --git a/graphics/pgf/contrib/profsio/tex/ProfSio.sty b/graphics/pgf/contrib/profsio/tex/ProfSio.sty
index 3e8a9ca3c5..986f37bc54 100644
--- a/graphics/pgf/contrib/profsio/tex/ProfSio.sty
+++ b/graphics/pgf/contrib/profsio/tex/ProfSio.sty
@@ -3,7 +3,8 @@
% : Luatruthtable from Chetan Shirore and Dr. Ajit Kumar https://ctan.org/pkg/luatruthtable
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{ProfSio}[2023/08/23 0.1.4 Pour les enseignants en BTS SIO]
+\ProvidesPackage{ProfSio}[2023/09/13 0.1.5 Pour les enseignants de Maths en BTS SIO]
+%0.1.5 Simplification d'expressions booléennes (par Karnaugh)
%0.1.4 Possibilité de remplir une table de Karnaugh sans virgule
%0.1.3 Style alternatif et Clé [PoliceTT] pour les tables de Karnaugh
%0.1.2 Ajout d'une option [Offset] pour les diagrammes sagittaux + Diagrammes sagittaux de composée + Tables de vérité
@@ -241,7 +242,7 @@
Legende=true,%
Couleur=black,%
PosVarLaterale=Gauche,%
- CouleurLegende=black,
+ CouleurLegende=black,%
StyleAlternatif=false,%
AideAlt=true,%
PoliceTT=false
@@ -1275,4 +1276,322 @@ end
\fi
+%------Simplifications booléennes
+
+\defKV[SimplifKngh]{%
+ Couleurs=\def\SimplifKnghCoul{#1},%
+ Variables=\def\SimplifKnghVar{#1}
+}
+
+\setKVdefault[SimplifKngh]{%
+ Couleurs={black/black/black},%
+ Variables={a/b/c},%
+ Swap=false,%
+ Espace=true,%
+ StyleAlternatif=false
+}
+
+\NewDocumentCommand\SimplificationKarnaugh{ O{} m }{%
+ \useKVdefault[SimplifKngh]%
+ \setKV[SimplifKngh]{#1}%
+ \setsepchar[.]{/}%
+ \readlist*\SplfKnghVars{\SimplifKnghVar}%
+ \readlist*\SplfKnghCouls{\SimplifKnghCoul}%
+ \itemtomacro\SplfKnghVars[1]\KngVarA%
+ \itemtomacro\SplfKnghVars[2]\KngVarB%
+ \itemtomacro\SplfKnghVars[3]\KngVarC%
+ \itemtomacro\SplfKnghCouls[1]\KngCoulA%
+ \itemtomacro\SplfKnghCouls[2]\KngCoulB%
+ \itemtomacro\SplfKnghCouls[3]\KngCoulC%
+ \ifboolKV[SimplifKngh]{StyleAlternatif}%
+ {%
+ \def\tmp@kngh@Bb{\mathcolor{\KngCoulA}{\KngVarA}}%
+ \def\tmp@kngh@B{\mathcolor{\KngCoulA}{\overline{\KngVarA}}}%
+ \def\tmp@kngh@A{\mathcolor{\KngCoulC}{\overline{\KngVarC}}}%
+ \def\tmp@kngh@Ab{\mathcolor{\KngCoulC}{\KngVarC}}%
+ \def\tmp@kngh@C{\mathcolor{\KngCoulB}{\overline{\KngVarB}}}%
+ \def\tmp@kngh@Cb{\mathcolor{\KngCoulB}{\KngVarB}}%
+ }%
+ {%
+ \def\tmp@kngh@A{\mathcolor{\KngCoulA}{\KngVarA}}%
+ \def\tmp@kngh@Ab{\mathcolor{\KngCoulA}{\overline{\KngVarA}}}%
+ \def\tmp@kngh@B{\mathcolor{\KngCoulB}{\KngVarB}}%
+ \def\tmp@kngh@Bb{\mathcolor{\KngCoulB}{\overline{\KngVarB}}}%
+ \ifboolKV[SimplifKngh]{Swap}%
+ {%
+ \def\tmp@kngh@C{\mathcolor{\KngCoulC}{\overline{\KngVarC}}}%
+ \def\tmp@kngh@Cb{\mathcolor{\KngCoulC}{\KngVarC}}%
+ }%
+ {%
+ \def\tmp@kngh@C{\mathcolor{\KngCoulC}{\KngVarC}}%
+ \def\tmp@kngh@Cb{\mathcolor{\KngCoulC}{\overline{\KngVarC}}}%
+ }%
+ }%
+ \ifboolKV[SimplifKngh]{Espace}%
+ {%
+ \def\tmp@kngh@space{\,}%
+ }%
+ {%
+ \def\tmp@kngh@space{}%
+ }%
+ \ensuremath{%
+ \IfStrEq{#2}{00000000}{0}{}%
+ \IfStrEq{#2}{00000001}{\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@C}{}%
+ \IfStrEq{#2}{00000010}{\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@Cb}{}%
+ \IfStrEq{#2}{00000011}{\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@Bb}{}%
+ \IfStrEq{#2}{00000100}{\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@B\tmp@kngh@space\tmp@kngh@Cb}{}%
+ \IfStrEq{#2}{00000101}{\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@B\tmp@kngh@space\tmp@kngh@Cb+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@C}{}%
+ \IfStrEq{#2}{00000110}{\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@Cb}{}%
+ \IfStrEq{#2}{00000111}{\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@Cb+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@Bb}{}%
+ \IfStrEq{#2}{00001000}{\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@B\tmp@kngh@space\tmp@kngh@C}{}%
+ \IfStrEq{#2}{00001001}{\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@C}{}%
+ \IfStrEq{#2}{00001010}{\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@B\tmp@kngh@space\tmp@kngh@C+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@Cb}{}%
+ \IfStrEq{#2}{00001011}{\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@C+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@Bb}{}%
+ \IfStrEq{#2}{00001100}{\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@B}{}%
+ \IfStrEq{#2}{00001101}{\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@B+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@C}{}%
+ \IfStrEq{#2}{00001110}{\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@Bb+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@Cb}{}%
+ \IfStrEq{#2}{00001111}{\tmp@kngh@Ab}{}%
+ \IfStrEq{#2}{00010000}{\tmp@kngh@A\tmp@kngh@space\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@C}{}%
+ \IfStrEq{#2}{00010001}{\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@C}{}%
+ \IfStrEq{#2}{00010010}{\tmp@kngh@A\tmp@kngh@space\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@C+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@Cb}{}%
+ \IfStrEq{#2}{00010011}{\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@Bb+\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@C}{}%
+ \IfStrEq{#2}{00010100}{\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@B\tmp@kngh@space\tmp@kngh@Cb+\tmp@kngh@A\tmp@kngh@space\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@C}{}%
+ \IfStrEq{#2}{00010101}{\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@C+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@B\tmp@kngh@space\tmp@kngh@Cb}{}%
+ \IfStrEq{#2}{00010110}{\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@Cb+\tmp@kngh@A\tmp@kngh@space\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@C}{}%
+ \IfStrEq{#2}{00010111}{\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@Cb+\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@C}{}%
+ \IfStrEq{#2}{00011000}{\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@B\tmp@kngh@space\tmp@kngh@C+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@C}{}%
+ \IfStrEq{#2}{00011001}{\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@C+\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@C}{}%
+ \IfStrEq{#2}{00011010}{\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@B\tmp@kngh@space\tmp@kngh@C+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@Cb+\tmp@kngh@A\tmp@kngh@space\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@C}{}%
+ \IfStrEq{#2}{00011011}{\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@C+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@Bb+\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@C}{}%
+ \IfStrEq{#2}{00011100}{\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@B+\tmp@kngh@A\tmp@kngh@space\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@C}{}%
+ \IfStrEq{#2}{00011101}{\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@B+\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@C}{}%
+ \IfStrEq{#2}{00011110}{\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@B+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@Cb+\tmp@kngh@A\tmp@kngh@space\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@C}{}%
+ \IfStrEq{#2}{00011111}{\tmp@kngh@Ab+\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@C}{}%
+ \IfStrEq{#2}{00100000}{\tmp@kngh@A\tmp@kngh@space\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@Cb}{}%
+ \IfStrEq{#2}{00100001}{\tmp@kngh@A\tmp@kngh@space\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@Cb+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@C}{}%
+ \IfStrEq{#2}{00100010}{\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@Cb}{}%
+ \IfStrEq{#2}{00100011}{\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@Cb+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@Bb}{}%
+ \IfStrEq{#2}{00100100}{\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@B\tmp@kngh@space\tmp@kngh@Cb+\tmp@kngh@A\tmp@kngh@space\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@Cb}{}%
+ \IfStrEq{#2}{00100101}{\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@B\tmp@kngh@space\tmp@kngh@Cb+\tmp@kngh@A\tmp@kngh@space\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@Cb+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@C}{}%
+ \IfStrEq{#2}{00100110}{\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@Cb+\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@Cb}{}%
+ \IfStrEq{#2}{00100111}{\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@Cb+\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@Cb+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@Bb}{}%
+ \IfStrEq{#2}{00101000}{\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@B\tmp@kngh@space\tmp@kngh@C+\tmp@kngh@A\tmp@kngh@space\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@Cb}{}%
+ \IfStrEq{#2}{00101001}{\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@C+\tmp@kngh@A\tmp@kngh@space\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@Cb}{}%
+ \IfStrEq{#2}{00101010}{\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@Cb+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@B\tmp@kngh@space\tmp@kngh@C}{}%
+ \IfStrEq{#2}{00101011}{\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@C+\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@Cb}{}%
+ \IfStrEq{#2}{00101100}{\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@B+\tmp@kngh@A\tmp@kngh@space\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@Cb}{}%
+ \IfStrEq{#2}{00101101}{\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@B+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@C+\tmp@kngh@A\tmp@kngh@space\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@Cb}{}%
+ \IfStrEq{#2}{00101110}{\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@B+\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@Cb}{}%
+ \IfStrEq{#2}{00101111}{\tmp@kngh@Ab+\tmp@kngh@space\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@Cb}{}%
+ \IfStrEq{#2}{00110000}{\tmp@kngh@A\tmp@kngh@space\tmp@kngh@Bb}{}%
+ \IfStrEq{#2}{00110001}{\tmp@kngh@A\tmp@kngh@space\tmp@kngh@Bb+\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@C}{}%
+ \IfStrEq{#2}{00110010}{\tmp@kngh@A\tmp@kngh@space\tmp@kngh@Bb+\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@Cb}{}%
+ \IfStrEq{#2}{00110011}{\tmp@kngh@Bb}{}%
+ \IfStrEq{#2}{00110100}{\tmp@kngh@A\tmp@kngh@space\tmp@kngh@Bb+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@B\tmp@kngh@space\tmp@kngh@Cb}{}%
+ \IfStrEq{#2}{00110101}{\tmp@kngh@A\tmp@kngh@space\tmp@kngh@Bb+\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@C+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@B\tmp@kngh@space\tmp@kngh@Cb}{}%
+ \IfStrEq{#2}{00110110}{\tmp@kngh@A\tmp@kngh@space\tmp@kngh@Bb+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@Cb}{}%
+ \IfStrEq{#2}{00110111}{\tmp@kngh@Bb+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@Cb}{}%
+ \IfStrEq{#2}{00111000}{\tmp@kngh@A\tmp@kngh@space\tmp@kngh@Bb+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@B\tmp@kngh@space\tmp@kngh@C}{}%
+ \IfStrEq{#2}{00111001}{\tmp@kngh@A\tmp@kngh@space\tmp@kngh@Bb+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@C}{}%
+ \IfStrEq{#2}{00111010}{\tmp@kngh@A\tmp@kngh@space\tmp@kngh@Bb+\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@Cb+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@B\tmp@kngh@space\tmp@kngh@C}{}%
+ \IfStrEq{#2}{00111011}{\tmp@kngh@Bb+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@C}{}%
+ \IfStrEq{#2}{00111100}{\tmp@kngh@A\tmp@kngh@space\tmp@kngh@Bb+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@B}{}%
+ \IfStrEq{#2}{00111101}{\tmp@kngh@A\tmp@kngh@space\tmp@kngh@Bb+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@B+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@C}{}%
+ \IfStrEq{#2}{00111110}{\tmp@kngh@A\tmp@kngh@space\tmp@kngh@Bb+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@B+\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@Cb}{}%
+ \IfStrEq{#2}{00111111}{\tmp@kngh@Ab+\tmp@kngh@Bb}{}%
+ \IfStrEq{#2}{01000000}{\tmp@kngh@A\tmp@kngh@space\tmp@kngh@B\tmp@kngh@space\tmp@kngh@Cb}{}%
+ \IfStrEq{#2}{01000001}{\tmp@kngh@A\tmp@kngh@space\tmp@kngh@B\tmp@kngh@space\tmp@kngh@Cb+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@C}{}%
+ \IfStrEq{#2}{01000010}{\tmp@kngh@A\tmp@kngh@space\tmp@kngh@B\tmp@kngh@space\tmp@kngh@Cb+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@Cb}{}%
+ \IfStrEq{#2}{01000011}{\tmp@kngh@A\tmp@kngh@space\tmp@kngh@B\tmp@kngh@space\tmp@kngh@Cb+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@Bb}{}%
+ \IfStrEq{#2}{01000100}{\tmp@kngh@B\tmp@kngh@space\tmp@kngh@Cb}{}%
+ \IfStrEq{#2}{01000101}{\tmp@kngh@B\tmp@kngh@space\tmp@kngh@Cb+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@C}{}%
+ \IfStrEq{#2}{01000110}{\tmp@kngh@B\tmp@kngh@space\tmp@kngh@Cb+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@Cb}{}%
+ \IfStrEq{#2}{01000111}{\tmp@kngh@B\tmp@kngh@space\tmp@kngh@Cb+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@Bb}{}%
+ \IfStrEq{#2}{01001000}{\tmp@kngh@A\tmp@kngh@space\tmp@kngh@B\tmp@kngh@space\tmp@kngh@Cb+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@B\tmp@kngh@space\tmp@kngh@C}{}%
+ \IfStrEq{#2}{01001001}{\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@C+\tmp@kngh@A\tmp@kngh@space\tmp@kngh@B\tmp@kngh@space\tmp@kngh@Cb}{}%
+ \IfStrEq{#2}{01001010}{\tmp@kngh@A\tmp@kngh@space\tmp@kngh@B\tmp@kngh@space\tmp@kngh@Cb+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@B\tmp@kngh@space\tmp@kngh@C+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@Cb}{}%
+ \IfStrEq{#2}{01001011}{\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@C+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@Bb+\tmp@kngh@A\tmp@kngh@space\tmp@kngh@B\tmp@kngh@space\tmp@kngh@Cb}{}%
+ \IfStrEq{#2}{01001100}{\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@B+\tmp@kngh@B\tmp@kngh@space\tmp@kngh@Cb}{}%
+ \IfStrEq{#2}{01001101}{\tmp@kngh@B\tmp@kngh@space\tmp@kngh@Cb+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@C}{}%
+ \IfStrEq{#2}{01001110}{\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@B+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@Cb+\tmp@kngh@B\tmp@kngh@space\tmp@kngh@Cb}{}%
+ \IfStrEq{#2}{01001111}{\tmp@kngh@Ab+\tmp@kngh@B\tmp@kngh@space\tmp@kngh@Cb}{}%
+ \IfStrEq{#2}{01010000}{\tmp@kngh@A\tmp@kngh@space\tmp@kngh@B\tmp@kngh@space\tmp@kngh@Cb+\tmp@kngh@A\tmp@kngh@space\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@C}{}%
+ \IfStrEq{#2}{01010001}{\tmp@kngh@A\tmp@kngh@space\tmp@kngh@B\tmp@kngh@space\tmp@kngh@Cb+\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@C}{}%
+ \IfStrEq{#2}{01010010}{\tmp@kngh@A\tmp@kngh@space\tmp@kngh@B\tmp@kngh@space\tmp@kngh@Cb+\tmp@kngh@A\tmp@kngh@space\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@C+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@Cb}{}%
+ \IfStrEq{#2}{01010011}{\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@Bb+\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@C+\tmp@kngh@A\tmp@kngh@space\tmp@kngh@B\tmp@kngh@space\tmp@kngh@Cb}{}%
+ \IfStrEq{#2}{01010100}{\tmp@kngh@B\tmp@kngh@space\tmp@kngh@Cb+\tmp@kngh@A\tmp@kngh@space\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@C}{}%
+ \IfStrEq{#2}{01010101}{\tmp@kngh@B\tmp@kngh@space\tmp@kngh@Cb+\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@C}{}%
+ \IfStrEq{#2}{01010110}{\tmp@kngh@B\tmp@kngh@space\tmp@kngh@Cb+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@Cb+\tmp@kngh@A\tmp@kngh@space\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@C}{}%
+ \IfStrEq{#2}{01010111}{\tmp@kngh@B\tmp@kngh@space\tmp@kngh@Cb+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@Bb+\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@C}{}%
+ \IfStrEq{#2}{01011000}{\tmp@kngh@A\tmp@kngh@space\tmp@kngh@B\tmp@kngh@space\tmp@kngh@Cb+\tmp@kngh@A\tmp@kngh@space\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@C+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@B\tmp@kngh@space\tmp@kngh@C}{}%
+ \IfStrEq{#2}{01011001}{\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@C+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@C+\tmp@kngh@A\tmp@kngh@space\tmp@kngh@B\tmp@kngh@space\tmp@kngh@Cb}{}%
+ \IfStrEq{#2}{01011010}{\tmp@kngh@A\tmp@kngh@space\tmp@kngh@B\tmp@kngh@space\tmp@kngh@Cb+\tmp@kngh@A\tmp@kngh@space\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@C+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@B\tmp@kngh@space\tmp@kngh@C+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@Cb}{}%
+ \IfStrEq{#2}{01011011}{\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@C+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@C+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@Bb+\tmp@kngh@A\tmp@kngh@space\tmp@kngh@B\tmp@kngh@space\tmp@kngh@Cb}{}%
+ \IfStrEq{#2}{01011100}{\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@B+\tmp@kngh@B\tmp@kngh@space\tmp@kngh@Cb+\tmp@kngh@A\tmp@kngh@space\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@C}{}%
+ \IfStrEq{#2}{01011101}{\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@B+\tmp@kngh@B\tmp@kngh@space\tmp@kngh@Cb+\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@C}{}%
+ \IfStrEq{#2}{01011110}{\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@B+\tmp@kngh@B\tmp@kngh@space\tmp@kngh@Cb+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@Cb+\tmp@kngh@A\tmp@kngh@space\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@C}{}%
+ \IfStrEq{#2}{01011111}{\tmp@kngh@Ab+\tmp@kngh@B\tmp@kngh@space\tmp@kngh@Cb+\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@C}{}%
+ \IfStrEq{#2}{01100000}{\tmp@kngh@A\tmp@kngh@space\tmp@kngh@Cb}{}%
+ \IfStrEq{#2}{01100001}{\tmp@kngh@A\tmp@kngh@space\tmp@kngh@Cb+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@C}{}%
+ \IfStrEq{#2}{01100010}{\tmp@kngh@A\tmp@kngh@space\tmp@kngh@Cb+\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@Cb}{}%
+ \IfStrEq{#2}{01100011}{\tmp@kngh@A\tmp@kngh@space\tmp@kngh@Cb+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@Bb}{}%
+ \IfStrEq{#2}{01100100}{\tmp@kngh@A\tmp@kngh@space\tmp@kngh@Cb+\tmp@kngh@B\tmp@kngh@space\tmp@kngh@Cb}{}%
+ \IfStrEq{#2}{01100101}{\tmp@kngh@A\tmp@kngh@space\tmp@kngh@Cb+\tmp@kngh@B\tmp@kngh@space\tmp@kngh@Cb+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@C}{}%
+ \IfStrEq{#2}{01100110}{\tmp@kngh@Cb}{}%
+ \IfStrEq{#2}{01100111}{\tmp@kngh@Cb+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@Bb}{}%
+ \IfStrEq{#2}{01101000}{\tmp@kngh@A\tmp@kngh@space\tmp@kngh@Cb+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@B\tmp@kngh@space\tmp@kngh@C}{}%
+ \IfStrEq{#2}{01101001}{\tmp@kngh@A\tmp@kngh@space\tmp@kngh@Cb+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@C}{}%
+ \IfStrEq{#2}{01101010}{\tmp@kngh@A\tmp@kngh@space\tmp@kngh@Cb+\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@Cb+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@B\tmp@kngh@space\tmp@kngh@C}{}%
+ \IfStrEq{#2}{01101011}{\tmp@kngh@A\tmp@kngh@space\tmp@kngh@Cb+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@Bb+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@C}{}%
+ \IfStrEq{#2}{01101100}{\tmp@kngh@A\tmp@kngh@space\tmp@kngh@Cb+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@B}{}%
+ \IfStrEq{#2}{01101101}{\tmp@kngh@A\tmp@kngh@space\tmp@kngh@Cb+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@B+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@C}{}%
+ \IfStrEq{#2}{01101110}{\tmp@kngh@Cb+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@B}{}%
+ \IfStrEq{#2}{01101111}{\tmp@kngh@Ab+\tmp@kngh@Cb}{}%
+ \IfStrEq{#2}{01110000}{\tmp@kngh@A\tmp@kngh@space\tmp@kngh@Cb+\tmp@kngh@A\tmp@kngh@space\tmp@kngh@Bb}{}%
+ \IfStrEq{#2}{01110001}{\tmp@kngh@A\tmp@kngh@space\tmp@kngh@Cb+\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@C}{}%
+ \IfStrEq{#2}{01110010}{\tmp@kngh@A\tmp@kngh@space\tmp@kngh@Cb+\tmp@kngh@A\tmp@kngh@space\tmp@kngh@Bb+\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@C}{}%
+ \IfStrEq{#2}{01110011}{\tmp@kngh@Bb+\tmp@kngh@A\tmp@kngh@space\tmp@kngh@Cb}{}%
+ \IfStrEq{#2}{01110100}{\tmp@kngh@A\tmp@kngh@space\tmp@kngh@Bb+\tmp@kngh@B\tmp@kngh@space\tmp@kngh@Cb}{}%
+ \IfStrEq{#2}{01110101}{\tmp@kngh@A\tmp@kngh@space\tmp@kngh@Bb+\tmp@kngh@B\tmp@kngh@space\tmp@kngh@Cb+\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@C}{}%
+ \IfStrEq{#2}{01110110}{\tmp@kngh@Cb+\tmp@kngh@A\tmp@kngh@space\tmp@kngh@Bb}{}%
+ \IfStrEq{#2}{01110111}{\tmp@kngh@B+\tmp@kngh@Cb}{}%
+ \IfStrEq{#2}{01111000}{\tmp@kngh@A\tmp@kngh@space\tmp@kngh@Cb+\tmp@kngh@A\tmp@kngh@space\tmp@kngh@Bb+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@B\tmp@kngh@space\tmp@kngh@C}{}%
+ \IfStrEq{#2}{01111001}{\tmp@kngh@A\tmp@kngh@space\tmp@kngh@Cb+\tmp@kngh@A\tmp@kngh@space\tmp@kngh@Bb+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@C}{}%
+ \IfStrEq{#2}{01111010}{\tmp@kngh@A\tmp@kngh@space\tmp@kngh@Cb+\tmp@kngh@A\tmp@kngh@space\tmp@kngh@Bb+\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@Cb+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@B\tmp@kngh@space\tmp@kngh@C}{}%
+ \IfStrEq{#2}{01111011}{\tmp@kngh@Bb+\tmp@kngh@A\tmp@kngh@space\tmp@kngh@Cb+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@C}{}%
+ \IfStrEq{#2}{01111100}{\tmp@kngh@A\tmp@kngh@space\tmp@kngh@Bb+\tmp@kngh@A\tmp@kngh@space\tmp@kngh@Cb+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@B}{}%
+ \IfStrEq{#2}{01111101}{\tmp@kngh@A\tmp@kngh@space\tmp@kngh@Cb+\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@C+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@B}{}%
+ \IfStrEq{#2}{01111110}{\tmp@kngh@Cb+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@B+\tmp@kngh@A\tmp@kngh@space\tmp@kngh@Bb}{}%
+ \IfStrEq{#2}{01111111}{\tmp@kngh@Ab+\tmp@kngh@Bb+\tmp@kngh@Cb}{}%
+ \IfStrEq{#2}{10000000}{\tmp@kngh@A\tmp@kngh@space\tmp@kngh@B\tmp@kngh@space\tmp@kngh@C}{}%
+ \IfStrEq{#2}{10000001}{\tmp@kngh@A\tmp@kngh@space\tmp@kngh@B\tmp@kngh@space\tmp@kngh@C+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@C}{}%
+ \IfStrEq{#2}{10000010}{\tmp@kngh@A\tmp@kngh@space\tmp@kngh@B\tmp@kngh@space\tmp@kngh@C+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@Cb}{}%
+ \IfStrEq{#2}{10000011}{\tmp@kngh@A\tmp@kngh@space\tmp@kngh@B\tmp@kngh@space\tmp@kngh@C+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@Bb}{}%
+ \IfStrEq{#2}{10000100}{\tmp@kngh@A\tmp@kngh@space\tmp@kngh@B\tmp@kngh@space\tmp@kngh@C+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@B\tmp@kngh@space\tmp@kngh@Cb}{}%
+ \IfStrEq{#2}{10000101}{\tmp@kngh@A\tmp@kngh@space\tmp@kngh@B\tmp@kngh@space\tmp@kngh@C+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@B\tmp@kngh@space\tmp@kngh@Cb+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@C}{}%
+ \IfStrEq{#2}{10000110}{\tmp@kngh@A\tmp@kngh@space\tmp@kngh@B\tmp@kngh@space\tmp@kngh@C+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@Cb}{}%
+ \IfStrEq{#2}{10000111}{\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@Cb+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@Bb+\tmp@kngh@A\tmp@kngh@space\tmp@kngh@B\tmp@kngh@space\tmp@kngh@C}{}%
+ \IfStrEq{#2}{10001000}{\tmp@kngh@B\tmp@kngh@space\tmp@kngh@C}{}%
+ \IfStrEq{#2}{10001001}{\tmp@kngh@B\tmp@kngh@space\tmp@kngh@C+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@C}{}%
+ \IfStrEq{#2}{10001010}{\tmp@kngh@B\tmp@kngh@space\tmp@kngh@C+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@Cb}{}%
+ \IfStrEq{#2}{10001011}{\tmp@kngh@B\tmp@kngh@space\tmp@kngh@C+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@Bb}{}%
+ \IfStrEq{#2}{10001100}{\tmp@kngh@B\tmp@kngh@space\tmp@kngh@C+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@B}{}%
+ \IfStrEq{#2}{10001101}{\tmp@kngh@B\tmp@kngh@space\tmp@kngh@C+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@B+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@C}{}%
+ \IfStrEq{#2}{10001110}{\tmp@kngh@B\tmp@kngh@space\tmp@kngh@C+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@Cb}{}%
+ \IfStrEq{#2}{10001111}{\tmp@kngh@Ab+\tmp@kngh@B\tmp@kngh@space\tmp@kngh@C}{}%
+ \IfStrEq{#2}{10010000}{\tmp@kngh@A\tmp@kngh@space\tmp@kngh@C}{}%
+ \IfStrEq{#2}{10010001}{\tmp@kngh@A\tmp@kngh@space\tmp@kngh@C+\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@C}{}%
+ \IfStrEq{#2}{10010010}{\tmp@kngh@A\tmp@kngh@space\tmp@kngh@C+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@Cb}{}%
+ \IfStrEq{#2}{10010011}{\tmp@kngh@A\tmp@kngh@space\tmp@kngh@C+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@Bb}{}%
+ \IfStrEq{#2}{10010100}{\tmp@kngh@A\tmp@kngh@space\tmp@kngh@C+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@B\tmp@kngh@space\tmp@kngh@Cb}{}%
+ \IfStrEq{#2}{10010101}{\tmp@kngh@A\tmp@kngh@space\tmp@kngh@C+\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@C+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@B\tmp@kngh@space\tmp@kngh@Cb}{}%
+ \IfStrEq{#2}{10010110}{\tmp@kngh@A\tmp@kngh@space\tmp@kngh@C+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@Cb}{}%
+ \IfStrEq{#2}{10010111}{\tmp@kngh@A\tmp@kngh@space\tmp@kngh@C+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@Cb+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@Bb}{}%
+ \IfStrEq{#2}{10011000}{\tmp@kngh@A\tmp@kngh@space\tmp@kngh@C+\tmp@kngh@B\tmp@kngh@space\tmp@kngh@C}{}%
+ \IfStrEq{#2}{10011001}{\tmp@kngh@C}{}%
+ \IfStrEq{#2}{10011010}{\tmp@kngh@A\tmp@kngh@space\tmp@kngh@C+\tmp@kngh@B\tmp@kngh@space\tmp@kngh@C+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@Cb}{}%
+ \IfStrEq{#2}{10011011}{\tmp@kngh@C+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@Bb}{}%
+ \IfStrEq{#2}{10011100}{\tmp@kngh@A\tmp@kngh@space\tmp@kngh@C+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@B}{}%
+ \IfStrEq{#2}{10011101}{\tmp@kngh@C+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@B}{}%
+ \IfStrEq{#2}{10011110}{\tmp@kngh@A\tmp@kngh@space\tmp@kngh@C+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@B+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@Cb}{}%
+ \IfStrEq{#2}{10011111}{\tmp@kngh@Ab+\tmp@kngh@C}{}%
+ \IfStrEq{#2}{10100000}{\tmp@kngh@A\tmp@kngh@space\tmp@kngh@B\tmp@kngh@space\tmp@kngh@C+\tmp@kngh@A\tmp@kngh@space\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@Cb}{}%
+ \IfStrEq{#2}{10100001}{\tmp@kngh@A\tmp@kngh@space\tmp@kngh@B\tmp@kngh@space\tmp@kngh@C+\tmp@kngh@A\tmp@kngh@space\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@Cb+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@C}{}%
+ \IfStrEq{#2}{10100010}{\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@Cb+\tmp@kngh@A\tmp@kngh@space\tmp@kngh@B\tmp@kngh@space\tmp@kngh@C}{}%
+ \IfStrEq{#2}{10100011}{\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@Cb+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@Bb+\tmp@kngh@A\tmp@kngh@space\tmp@kngh@B\tmp@kngh@space\tmp@kngh@C}{}%
+ \IfStrEq{#2}{10100100}{\tmp@kngh@A\tmp@kngh@space\tmp@kngh@B\tmp@kngh@space\tmp@kngh@C+\tmp@kngh@A\tmp@kngh@space\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@Cb+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@B\tmp@kngh@space\tmp@kngh@Cb}{}%
+ \IfStrEq{#2}{10100101}{\tmp@kngh@A\tmp@kngh@space\tmp@kngh@B\tmp@kngh@space\tmp@kngh@C+\tmp@kngh@A\tmp@kngh@space\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@Cb+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@B\tmp@kngh@space\tmp@kngh@Cb+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@C}{}%
+ \IfStrEq{#2}{10100110}{\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@Cb+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@Cb+\tmp@kngh@A\tmp@kngh@space\tmp@kngh@B\tmp@kngh@space\tmp@kngh@C}{}%
+ \IfStrEq{#2}{10100111}{\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@Cb+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@Bb+\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@Cb+\tmp@kngh@A\tmp@kngh@space\tmp@kngh@B\tmp@kngh@space\tmp@kngh@C}{}%
+ \IfStrEq{#2}{10101000}{\tmp@kngh@B\tmp@kngh@space\tmp@kngh@C+\tmp@kngh@A\tmp@kngh@space\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@Cb}{}%
+ \IfStrEq{#2}{10101001}{\tmp@kngh@B\tmp@kngh@space\tmp@kngh@C+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@C+\tmp@kngh@A\tmp@kngh@space\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@Cb}{}%
+ \IfStrEq{#2}{10101010}{\tmp@kngh@B\tmp@kngh@space\tmp@kngh@C+\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@Cb}{}%
+ \IfStrEq{#2}{10101011}{\tmp@kngh@B\tmp@kngh@space\tmp@kngh@C+\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@Cb+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@Bb}{}%
+ \IfStrEq{#2}{10101100}{\tmp@kngh@B\tmp@kngh@space\tmp@kngh@C+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@B+\tmp@kngh@A\tmp@kngh@space\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@Cb}{}%
+ \IfStrEq{#2}{10101101}{\tmp@kngh@B\tmp@kngh@space\tmp@kngh@C+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@B+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@C+\tmp@kngh@A\tmp@kngh@space\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@Cb}{}%
+ \IfStrEq{#2}{10101110}{\tmp@kngh@B\tmp@kngh@space\tmp@kngh@C+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@Cb+\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@Cb}{}%
+ \IfStrEq{#2}{10101111}{\tmp@kngh@Ab+\tmp@kngh@B\tmp@kngh@space\tmp@kngh@C+\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@Cb}{}%
+ \IfStrEq{#2}{10110000}{\tmp@kngh@A\tmp@kngh@space\tmp@kngh@C+\tmp@kngh@A\tmp@kngh@space\tmp@kngh@Bb}{}%
+ \IfStrEq{#2}{10110001}{\tmp@kngh@A\tmp@kngh@space\tmp@kngh@C+\tmp@kngh@A\tmp@kngh@space\tmp@kngh@Bb+\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@C}{}%
+ \IfStrEq{#2}{10110010}{\tmp@kngh@A\tmp@kngh@space\tmp@kngh@C+\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@Cb}{}%
+ \IfStrEq{#2}{10110011}{\tmp@kngh@Bb+\tmp@kngh@A\tmp@kngh@space\tmp@kngh@C}{}%
+ \IfStrEq{#2}{10110100}{\tmp@kngh@A\tmp@kngh@space\tmp@kngh@Bb+\tmp@kngh@A\tmp@kngh@space\tmp@kngh@C+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@B\tmp@kngh@space\tmp@kngh@Cb}{}%
+ \IfStrEq{#2}{10110101}{\tmp@kngh@A\tmp@kngh@space\tmp@kngh@Bb+\tmp@kngh@A\tmp@kngh@space\tmp@kngh@C+\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@C+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@B\tmp@kngh@space\tmp@kngh@Cb}{}%
+ \IfStrEq{#2}{10110110}{\tmp@kngh@A\tmp@kngh@space\tmp@kngh@Bb+\tmp@kngh@A\tmp@kngh@space\tmp@kngh@C+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@Cb}{}%
+ \IfStrEq{#2}{10110111}{\tmp@kngh@Bb+\tmp@kngh@A\tmp@kngh@space\tmp@kngh@C+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@Cb}{}%
+ \IfStrEq{#2}{10111000}{\tmp@kngh@A\tmp@kngh@space\tmp@kngh@Bb+\tmp@kngh@B\tmp@kngh@space\tmp@kngh@C}{}%
+ \IfStrEq{#2}{10111001}{\tmp@kngh@C+\tmp@kngh@A\tmp@kngh@space\tmp@kngh@Bb}{}%
+ \IfStrEq{#2}{10111010}{\tmp@kngh@B\tmp@kngh@space\tmp@kngh@C+\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@Cb+\tmp@kngh@A\tmp@kngh@space\tmp@kngh@Bb}{}%
+ \IfStrEq{#2}{10111011}{\tmp@kngh@Bb+\tmp@kngh@C}{}%
+ \IfStrEq{#2}{10111100}{\tmp@kngh@A\tmp@kngh@space\tmp@kngh@Bb+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@B+\tmp@kngh@B\tmp@kngh@space\tmp@kngh@C}{}%
+ \IfStrEq{#2}{10111101}{\tmp@kngh@C+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@B+\tmp@kngh@A\tmp@kngh@space\tmp@kngh@Bb}{}%
+ \IfStrEq{#2}{10111110}{\tmp@kngh@B\tmp@kngh@space\tmp@kngh@C+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@Cb+\tmp@kngh@A\tmp@kngh@space\tmp@kngh@Bb}{}%
+ \IfStrEq{#2}{10111111}{\tmp@kngh@Ab+\tmp@kngh@Bb+\tmp@kngh@C}{}%
+ \IfStrEq{#2}{11000000}{\tmp@kngh@A\tmp@kngh@space\tmp@kngh@B}{}%
+ \IfStrEq{#2}{11000001}{\tmp@kngh@A\tmp@kngh@space\tmp@kngh@B+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@C}{}%
+ \IfStrEq{#2}{11000010}{\tmp@kngh@A\tmp@kngh@space\tmp@kngh@B+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@Cb}{}%
+ \IfStrEq{#2}{11000011}{\tmp@kngh@A\tmp@kngh@space\tmp@kngh@B+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@Bb}{}%
+ \IfStrEq{#2}{11000100}{\tmp@kngh@A\tmp@kngh@space\tmp@kngh@B+\tmp@kngh@B\tmp@kngh@space\tmp@kngh@Cb}{}%
+ \IfStrEq{#2}{11000101}{\tmp@kngh@A\tmp@kngh@space\tmp@kngh@B+\tmp@kngh@B\tmp@kngh@space\tmp@kngh@Cb+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@C}{}%
+ \IfStrEq{#2}{11000110}{\tmp@kngh@A\tmp@kngh@space\tmp@kngh@B+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@Cb}{}%
+ \IfStrEq{#2}{11000111}{\tmp@kngh@A\tmp@kngh@space\tmp@kngh@B+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@Bb+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@Cb}{}%
+ \IfStrEq{#2}{11001000}{\tmp@kngh@A\tmp@kngh@space\tmp@kngh@B+\tmp@kngh@B\tmp@kngh@space\tmp@kngh@C}{}%
+ \IfStrEq{#2}{11001001}{\tmp@kngh@A\tmp@kngh@space\tmp@kngh@B+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@C}{}%
+ \IfStrEq{#2}{11001010}{\tmp@kngh@A\tmp@kngh@space\tmp@kngh@B+\tmp@kngh@B\tmp@kngh@space\tmp@kngh@C+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@Cb}{}%
+ \IfStrEq{#2}{11001011}{\tmp@kngh@A\tmp@kngh@space\tmp@kngh@B+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@Bb+\tmp@kngh@B\tmp@kngh@space\tmp@kngh@C}{}%
+ \IfStrEq{#2}{11001100}{\tmp@kngh@B}{}%
+ \IfStrEq{#2}{11001101}{\tmp@kngh@B+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@C}{}%
+ \IfStrEq{#2}{11001110}{\tmp@kngh@B+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@Cb}{}%
+ \IfStrEq{#2}{11001111}{\tmp@kngh@Ab+\tmp@kngh@B}{}%
+ \IfStrEq{#2}{11010000}{\tmp@kngh@A\tmp@kngh@space\tmp@kngh@B+\tmp@kngh@A\tmp@kngh@space\tmp@kngh@C}{}%
+ \IfStrEq{#2}{11010001}{\tmp@kngh@A\tmp@kngh@space\tmp@kngh@B+\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@C}{}%
+ \IfStrEq{#2}{11010010}{\tmp@kngh@A\tmp@kngh@space\tmp@kngh@B+\tmp@kngh@A\tmp@kngh@space\tmp@kngh@C+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@Cb}{}%
+ \IfStrEq{#2}{11010011}{\tmp@kngh@A\tmp@kngh@space\tmp@kngh@B+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@Bb+\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@C}{}%
+ \IfStrEq{#2}{11010100}{\tmp@kngh@A\tmp@kngh@space\tmp@kngh@B+\tmp@kngh@B\tmp@kngh@space\tmp@kngh@Cb+\tmp@kngh@A\tmp@kngh@space\tmp@kngh@C}{}%
+ \IfStrEq{#2}{11010101}{\tmp@kngh@A\tmp@kngh@space\tmp@kngh@B+\tmp@kngh@B\tmp@kngh@space\tmp@kngh@Cb+\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@C}{}%
+ \IfStrEq{#2}{11010110}{\tmp@kngh@A\tmp@kngh@space\tmp@kngh@B+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@Cb+\tmp@kngh@A\tmp@kngh@space\tmp@kngh@C}{}%
+ \IfStrEq{#2}{11010111}{\tmp@kngh@A\tmp@kngh@space\tmp@kngh@B+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@Cb+\tmp@kngh@B\tmp@kngh@space\tmp@kngh@C}{}%
+ \IfStrEq{#2}{11011000}{\tmp@kngh@A\tmp@kngh@space\tmp@kngh@B+\tmp@kngh@B\tmp@kngh@space\tmp@kngh@C+\tmp@kngh@A\tmp@kngh@space\tmp@kngh@C}{}%
+ \IfStrEq{#2}{11011001}{\tmp@kngh@C+\tmp@kngh@A\tmp@kngh@space\tmp@kngh@B}{}%
+ \IfStrEq{#2}{11011010}{\tmp@kngh@A\tmp@kngh@space\tmp@kngh@B+\tmp@kngh@B\tmp@kngh@space\tmp@kngh@C+\tmp@kngh@A\tmp@kngh@space\tmp@kngh@C+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@Cb}{}%
+ \IfStrEq{#2}{11011011}{\tmp@kngh@C+\tmp@kngh@A\tmp@kngh@space\tmp@kngh@B+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@Bb}{}%
+ \IfStrEq{#2}{11011100}{\tmp@kngh@B+\tmp@kngh@A\tmp@kngh@space\tmp@kngh@C}{}%
+ \IfStrEq{#2}{11011101}{\tmp@kngh@B+\tmp@kngh@C}{}%
+ \IfStrEq{#2}{11011110}{\tmp@kngh@B+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@Cb+\tmp@kngh@A\tmp@kngh@space\tmp@kngh@C}{}%
+ \IfStrEq{#2}{11011111}{\tmp@kngh@Ab+\tmp@kngh@B+\tmp@kngh@C}{}%
+ \IfStrEq{#2}{11100000}{\tmp@kngh@A\tmp@kngh@space\tmp@kngh@B+\tmp@kngh@A\tmp@kngh@space\tmp@kngh@Cb}{}%
+ \IfStrEq{#2}{11100001}{\tmp@kngh@A\tmp@kngh@space\tmp@kngh@B+\tmp@kngh@A\tmp@kngh@space\tmp@kngh@Cb+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@C}{}%
+ \IfStrEq{#2}{11100010}{\tmp@kngh@A\tmp@kngh@space\tmp@kngh@B+\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@Cb}{}%
+ \IfStrEq{#2}{11100011}{\tmp@kngh@A\tmp@kngh@space\tmp@kngh@B+\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@Cb+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@Bb}{}%
+ \IfStrEq{#2}{11100100}{\tmp@kngh@A\tmp@kngh@space\tmp@kngh@B+\tmp@kngh@B\tmp@kngh@space\tmp@kngh@Cb+\tmp@kngh@A\tmp@kngh@space\tmp@kngh@Cb}{}%
+ \IfStrEq{#2}{11100101}{\tmp@kngh@A\tmp@kngh@space\tmp@kngh@B+\tmp@kngh@B\tmp@kngh@space\tmp@kngh@Cb+\tmp@kngh@A\tmp@kngh@space\tmp@kngh@Cb+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@C}{}%
+ \IfStrEq{#2}{11100110}{\tmp@kngh@Cb+\tmp@kngh@A\tmp@kngh@space\tmp@kngh@B}{}%
+ \IfStrEq{#2}{11100111}{\tmp@kngh@Cb+\tmp@kngh@A\tmp@kngh@space\tmp@kngh@B+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@Bb}{}%
+ \IfStrEq{#2}{11101000}{\tmp@kngh@B\tmp@kngh@space\tmp@kngh@C+\tmp@kngh@A\tmp@kngh@space\tmp@kngh@Cb}{}%
+ \IfStrEq{#2}{11101001}{\tmp@kngh@B\tmp@kngh@space\tmp@kngh@C+\tmp@kngh@A\tmp@kngh@space\tmp@kngh@Cb+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@C}{}%
+ \IfStrEq{#2}{11101010}{\tmp@kngh@B\tmp@kngh@space\tmp@kngh@C+\tmp@kngh@A\tmp@kngh@space\tmp@kngh@Cb+\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@Cb}{}%
+ \IfStrEq{#2}{11101011}{\tmp@kngh@A\tmp@kngh@space\tmp@kngh@B+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@C+\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@Cb}{}%
+ \IfStrEq{#2}{11101100}{\tmp@kngh@B+\tmp@kngh@A\tmp@kngh@space\tmp@kngh@Cb}{}%
+ \IfStrEq{#2}{11101101}{\tmp@kngh@B+\tmp@kngh@A\tmp@kngh@space\tmp@kngh@Cb+\tmp@kngh@Ab\tmp@kngh@space\tmp@kngh@C}{}%
+ \IfStrEq{#2}{11101110}{\tmp@kngh@B+\tmp@kngh@Cb}{}%
+ \IfStrEq{#2}{11101111}{\tmp@kngh@Ab+\tmp@kngh@B+\tmp@kngh@Cb}{}%
+ \IfStrEq{#2}{11110000}{\tmp@kngh@A}{}%
+ \IfStrEq{#2}{11110001}{\tmp@kngh@A+\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@C}{}%
+ \IfStrEq{#2}{11110010}{\tmp@kngh@A+\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@Cb}{}%
+ \IfStrEq{#2}{11110011}{\tmp@kngh@A+\tmp@kngh@Bb}{}%
+ \IfStrEq{#2}{11110100}{\tmp@kngh@A+\tmp@kngh@B\tmp@kngh@space\tmp@kngh@Cb}{}%
+ \IfStrEq{#2}{11110101}{\tmp@kngh@A+\tmp@kngh@B\tmp@kngh@space\tmp@kngh@Cb+\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@C}{}%
+ \IfStrEq{#2}{11110110}{\tmp@kngh@A+\tmp@kngh@Cb}{}%
+ \IfStrEq{#2}{11110111}{\tmp@kngh@A+\tmp@kngh@Bb+\tmp@kngh@Cb}{}%
+ \IfStrEq{#2}{11111000}{\tmp@kngh@A+\tmp@kngh@B\tmp@kngh@space\tmp@kngh@C}{}%
+ \IfStrEq{#2}{11111001}{\tmp@kngh@A+\tmp@kngh@C}{}%
+ \IfStrEq{#2}{11111010}{\tmp@kngh@A+\tmp@kngh@B\tmp@kngh@space\tmp@kngh@C+\tmp@kngh@Bb\tmp@kngh@space\tmp@kngh@Cb}{}%
+ \IfStrEq{#2}{11111011}{\tmp@kngh@A+\tmp@kngh@Bb+\tmp@kngh@C}{}%
+ \IfStrEq{#2}{11111100}{\tmp@kngh@A+\tmp@kngh@B}{}%
+ \IfStrEq{#2}{11111101}{\tmp@kngh@A+\tmp@kngh@B+\tmp@kngh@C}{}%
+ \IfStrEq{#2}{11111110}{\tmp@kngh@A+\tmp@kngh@B+\tmp@kngh@Cb}{}%
+ \IfStrEq{#2}{11111111}{1}{}%
+ }%
+}
+
\endinput \ No newline at end of file
diff --git a/macros/latex-dev/base/README.md b/macros/latex-dev/base/README.md
index ba50e71a80..cb5a4a60dc 100644
--- a/macros/latex-dev/base/README.md
+++ b/macros/latex-dev/base/README.md
@@ -1,7 +1,7 @@
The LaTeX kernel
================
-Release 2023-11-01 pre-release 0
+Release 2023-11-01 pre-release 1
Overview
--------
diff --git a/macros/latex-dev/base/alltt.pdf b/macros/latex-dev/base/alltt.pdf
index 2f288f85c3..f2368d8b8c 100644
--- a/macros/latex-dev/base/alltt.pdf
+++ b/macros/latex-dev/base/alltt.pdf
Binary files differ
diff --git a/macros/latex-dev/base/cfgguide.pdf b/macros/latex-dev/base/cfgguide.pdf
index 15f9b2e4b3..dc422901be 100644
--- a/macros/latex-dev/base/cfgguide.pdf
+++ b/macros/latex-dev/base/cfgguide.pdf
Binary files differ
diff --git a/macros/latex-dev/base/changes.txt b/macros/latex-dev/base/changes.txt
index 86fda4e1ca..3454f49ac6 100644
--- a/macros/latex-dev/base/changes.txt
+++ b/macros/latex-dev/base/changes.txt
@@ -5,10 +5,74 @@ It is provided for convenience only. It therefore makes no claims to
completeness or accuracy and it contains some references to files that
are not part of the distribution.
================================================================================
+2023-09-13 Ulrike Fischer <Ulrike.Fischer@latex-project.org>
+ * ltproperties.dtx:
+ expand consistently the label/property names in the LaTeX2e commands.
+
+2023-09-13 Joseph Wright <Joseph.Wright@latex-project.org>
+ * ltmiscen.dtx:
+ add test to \enddocument for changes in property values.
+
+2023-09-05 Ulrike Fischer <Ulrike.Fischer@latex-project.org>
+ * ltproperties.dtx:
+ First implementation of properties module
+ * ltmiscen.dtx:
+ Correct typo
+
+2023-09-01 Joseph Wright <Joseph.Wright@latex-project.org>
+
+ * ltmiscen.dtx
+ Provide global definition for active tab
+
+2023-06-15 Joseph Wright <Joseph.Wright@latex-project.org>
+
+ * ltmiscen.dtx
+ Refinements to tab support
+
+2023-06-14 Joseph Wright <Joseph.Wright@latex-project.org>
+
+ * ltmiscen.dtx, ltspace.dtx
+ Support (visible) tabs in verbatim material
+
+2023-08-19 Joseph Wright <Joseph.Wright@latex-project.org>
+
+2023-08-19 Joseph Wright <Joseph.Wright@latex-project.org>
+
+ * ltcmd.dtx, usrguide.tex
+ Remove \GetDocumentCommandArgSpec,
+ \GetDocumentEnvironmentArgSpec,
+ \ShowDocumentCommandArgSpec,
+ \ShowDocumentEnvironmentArgSpec
+
+2023-08-05 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
+
+ * ltsockets.dtx:
+ First implementation of the sockets module.
+
+2023-07-10 Marcel Krüger <marcel.krueger@latex-project.org>
+
+ * ltluatex.dtx
+ Restore post_mlist_to_hlist_filter callback type to reverselist (gh1116)
+
+2023-07-10 Yukai Chou <muzimuzhi@gmail.com>
+
+ * ltfilehook.dtx (subsection{Declaring a file substitution}):
+ Drop a redundant \ExplSyntaxOff
+
+2023-07-02 David Carlisle <David.Carlisle@latex-project.org>
+
+ * ltluatex.dtx modify new_luafunction to ensure
+ \e@alloc@luafunction@count always matches the size of the Lua
+ table of function allocations (gh100)
+
+2023-06-12 Joseph Wright <Joseph.Wright@latex-project.org>
+
+ * usrguide.tex
+ Correct description of font encodings supported for case changing
2023-06-09 Joseph Wright <Joseph.Wright@latex-project.org>
- * usrguide.txt
+ * usrguide.tex
Various refinements to descriptions of \NewDocumentCommand, etc.
================================================================================
@@ -16,6 +80,26 @@ All changes above are only part of the development branch for the next release.
================================================================================
#########################
+# 2023-06-01 PL1 Release
+#########################
+
+2023-06-16 Yukai Chou <muzimuzhi@gmail.com>
+
+ * lthooks.dtx (subsection{Setting rules for hooks code}):
+ Sync \@expl@@@initialize@all@@ with \__hook_initialize_all: if latter is
+ rolled back (gh1088)
+
+2023-06-16 Joseph Wright <Joseph.Wright@latex-project.org>
+
+ * ltfiles.dtx
+ Allow for pipes in \input, etc.
+
+2023-06-16 Phelype Oleinik <Joseph.Wright@latex-project.org>
+
+ * lthooks.dtx, ltcmdhooks.dtx
+ Correct some rollback labels and dates.
+
+#########################
# 2023-06-01 Release
#########################
@@ -26,7 +110,7 @@ All changes above are only part of the development branch for the next release.
2023-05-31 Joseph Wright <Joseph.Wright@latex-project.org>
- * usrguide.txt
+ * usrguide.tex
Correct syntax of opt. arg. for \DeclareLowercaseMapping, etc.
2023-05-30 Joseph Wright <Joseph.Wright@latex-project.org>
diff --git a/macros/latex-dev/base/classes.pdf b/macros/latex-dev/base/classes.pdf
index d41f58e276..e77d02dec9 100644
--- a/macros/latex-dev/base/classes.pdf
+++ b/macros/latex-dev/base/classes.pdf
Binary files differ
diff --git a/macros/latex-dev/base/clsguide-historic.pdf b/macros/latex-dev/base/clsguide-historic.pdf
index e5a2ce5fb6..9ed59b2255 100644
--- a/macros/latex-dev/base/clsguide-historic.pdf
+++ b/macros/latex-dev/base/clsguide-historic.pdf
Binary files differ
diff --git a/macros/latex-dev/base/clsguide.pdf b/macros/latex-dev/base/clsguide.pdf
index de72af6952..04c4ea27a4 100644
--- a/macros/latex-dev/base/clsguide.pdf
+++ b/macros/latex-dev/base/clsguide.pdf
Binary files differ
diff --git a/macros/latex-dev/base/cmfonts.pdf b/macros/latex-dev/base/cmfonts.pdf
index b1dfbca7d3..b4f8929917 100644
--- a/macros/latex-dev/base/cmfonts.pdf
+++ b/macros/latex-dev/base/cmfonts.pdf
Binary files differ
diff --git a/macros/latex-dev/base/cyrguide.pdf b/macros/latex-dev/base/cyrguide.pdf
index 9b65f892be..2bdb504323 100644
--- a/macros/latex-dev/base/cyrguide.pdf
+++ b/macros/latex-dev/base/cyrguide.pdf
Binary files differ
diff --git a/macros/latex-dev/base/doc-code.pdf b/macros/latex-dev/base/doc-code.pdf
index b6275f54a2..4ed15617dd 100644
--- a/macros/latex-dev/base/doc-code.pdf
+++ b/macros/latex-dev/base/doc-code.pdf
Binary files differ
diff --git a/macros/latex-dev/base/doc.pdf b/macros/latex-dev/base/doc.pdf
index b06b8b45f3..e31007c879 100644
--- a/macros/latex-dev/base/doc.pdf
+++ b/macros/latex-dev/base/doc.pdf
Binary files differ
diff --git a/macros/latex-dev/base/docstrip.pdf b/macros/latex-dev/base/docstrip.pdf
index f3b5f66e8e..df1404ebe5 100644
--- a/macros/latex-dev/base/docstrip.pdf
+++ b/macros/latex-dev/base/docstrip.pdf
Binary files differ
diff --git a/macros/latex-dev/base/encguide.pdf b/macros/latex-dev/base/encguide.pdf
index 5cdbd43262..aa08d7dc01 100644
--- a/macros/latex-dev/base/encguide.pdf
+++ b/macros/latex-dev/base/encguide.pdf
Binary files differ
diff --git a/macros/latex-dev/base/exscale.pdf b/macros/latex-dev/base/exscale.pdf
index 774055dd4e..546a2d0549 100644
--- a/macros/latex-dev/base/exscale.pdf
+++ b/macros/latex-dev/base/exscale.pdf
Binary files differ
diff --git a/macros/latex-dev/base/fix-cm.pdf b/macros/latex-dev/base/fix-cm.pdf
index 885c9771af..07a8643054 100644
--- a/macros/latex-dev/base/fix-cm.pdf
+++ b/macros/latex-dev/base/fix-cm.pdf
Binary files differ
diff --git a/macros/latex-dev/base/fntguide.pdf b/macros/latex-dev/base/fntguide.pdf
index 38d6bc75b6..1be6ca422f 100644
--- a/macros/latex-dev/base/fntguide.pdf
+++ b/macros/latex-dev/base/fntguide.pdf
Binary files differ
diff --git a/macros/latex-dev/base/format.ins b/macros/latex-dev/base/format.ins
index 74cd78ff4a..ba0965004d 100644
--- a/macros/latex-dev/base/format.ins
+++ b/macros/latex-dev/base/format.ins
@@ -169,6 +169,7 @@ the system are in the document `cfgguide.tex'.
\from{ltcmd.dtx}{2ekernel} % L3 layer module (used to be xparse)
\from{lthooks.dtx}{2ekernel} % L3 layer module
\from{ltcmdhooks.dtx}{2ekernel} % L3 layer module
+ \from{ltsockets.dtx}{2ekernel} % L3 layer module
\from{ltalloc.dtx}{2ekernel}
\from{ltcntrl.dtx}{2ekernel}
\from{lterror.dtx}{2ekernel}
@@ -191,6 +192,7 @@ the system are in the document `cfgguide.tex'.
\from{lttextcomp.dtx}{2ekernel}
\from{ltpageno.dtx}{2ekernel}
\from{ltxref.dtx}{2ekernel}
+ \from{ltproperties.dtx}{2ekernel}
\from{ltmiscen.dtx}{2ekernel}
\from{ltmath.dtx}{2ekernel}
\from{ltlists.dtx}{2ekernel}
diff --git a/macros/latex-dev/base/graphpap.pdf b/macros/latex-dev/base/graphpap.pdf
index 7f4f6f9757..02c26dfdb6 100644
--- a/macros/latex-dev/base/graphpap.pdf
+++ b/macros/latex-dev/base/graphpap.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ifthen.pdf b/macros/latex-dev/base/ifthen.pdf
index 5276d75a11..ff5e6a9040 100644
--- a/macros/latex-dev/base/ifthen.pdf
+++ b/macros/latex-dev/base/ifthen.pdf
Binary files differ
diff --git a/macros/latex-dev/base/inputenc.pdf b/macros/latex-dev/base/inputenc.pdf
index 2dc16e5a84..5b83bb0998 100644
--- a/macros/latex-dev/base/inputenc.pdf
+++ b/macros/latex-dev/base/inputenc.pdf
Binary files differ
diff --git a/macros/latex-dev/base/lamport-manual.pdf b/macros/latex-dev/base/lamport-manual.pdf
index f37100a1aa..35607608f6 100644
--- a/macros/latex-dev/base/lamport-manual.pdf
+++ b/macros/latex-dev/base/lamport-manual.pdf
Binary files differ
diff --git a/macros/latex-dev/base/latexrelease.ins b/macros/latex-dev/base/latexrelease.ins
index 61315f8e07..93739630e3 100644
--- a/macros/latex-dev/base/latexrelease.ins
+++ b/macros/latex-dev/base/latexrelease.ins
@@ -96,6 +96,7 @@ extension .ins) which are part of the distribution.
\from{ltcmd.dtx} {latexrelease}% L3 layer module
\from{lthooks.dtx} {latexrelease}% L3 layer module
\from{ltcmdhooks.dtx} {latexrelease}% L3 layer module
+ \from{ltsockets.dtx} {latexrelease}% L3 layer module
\from{ltalloc.dtx} {latexrelease}% empty
\from{ltcntrl.dtx} {latexrelease}% empty
\from{lterror.dtx} {latexrelease}% empty
@@ -118,6 +119,7 @@ extension .ins) which are part of the distribution.
\from{lttextcomp.dtx} {latexrelease}%
\from{ltpageno.dtx} {latexrelease}% empty
\from{ltxref.dtx} {latexrelease}% empty
+ \from{ltproperties.dtx}{latexrelease}%
\from{ltmiscen.dtx} {latexrelease}%
\from{ltmath.dtx} {latexrelease}%
\from{ltlists.dtx} {latexrelease}% empty
diff --git a/macros/latex-dev/base/latexrelease.pdf b/macros/latex-dev/base/latexrelease.pdf
index ec3e02593c..38f5ef20fb 100644
--- a/macros/latex-dev/base/latexrelease.pdf
+++ b/macros/latex-dev/base/latexrelease.pdf
Binary files differ
diff --git a/macros/latex-dev/base/latexsym.pdf b/macros/latex-dev/base/latexsym.pdf
index b080247c6f..3d6f87b2f1 100644
--- a/macros/latex-dev/base/latexsym.pdf
+++ b/macros/latex-dev/base/latexsym.pdf
Binary files differ
diff --git a/macros/latex-dev/base/lb2.err b/macros/latex-dev/base/lb2.err
index d2ea742f82..74c0e222b6 100644
--- a/macros/latex-dev/base/lb2.err
+++ b/macros/latex-dev/base/lb2.err
@@ -1,4 +1,4 @@
-\newcommand\erratafiledate{2014-09-30}
+\newcommand\erratafiledate{2014/09/30}
\def\comando#1{\texttt{\string#1}}
diff --git a/macros/latex-dev/base/lb2.pdf b/macros/latex-dev/base/lb2.pdf
index c01ef84a40..4f1de0028e 100644
--- a/macros/latex-dev/base/lb2.pdf
+++ b/macros/latex-dev/base/lb2.pdf
Binary files differ
diff --git a/macros/latex-dev/base/letter.pdf b/macros/latex-dev/base/letter.pdf
index da4b8da31b..d4c0361f9a 100644
--- a/macros/latex-dev/base/letter.pdf
+++ b/macros/latex-dev/base/letter.pdf
Binary files differ
diff --git a/macros/latex-dev/base/lgc2.err b/macros/latex-dev/base/lgc2.err
index cb1a382348..c899388be9 100644
--- a/macros/latex-dev/base/lgc2.err
+++ b/macros/latex-dev/base/lgc2.err
@@ -1,4 +1,4 @@
-\newcommand\erratafiledate{2008-06-13}
+\newcommand\erratafiledate{2008/06/13}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% To produce a printed version of this errata file run this file through
diff --git a/macros/latex-dev/base/lgc2.pdf b/macros/latex-dev/base/lgc2.pdf
index e595b3c577..01e844d127 100644
--- a/macros/latex-dev/base/lgc2.pdf
+++ b/macros/latex-dev/base/lgc2.pdf
Binary files differ
diff --git a/macros/latex-dev/base/lppl.pdf b/macros/latex-dev/base/lppl.pdf
index 634e0cf419..6f35bb62a5 100644
--- a/macros/latex-dev/base/lppl.pdf
+++ b/macros/latex-dev/base/lppl.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltcmd.dtx b/macros/latex-dev/base/ltcmd.dtx
index d6322ff3ee..dcb85a1ae8 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.1e}
-\def\ltcmddate{2023-05-26}
+\def\ltcmdversion{v1.2a}
+\def\ltcmddate{2023-08-19}
% \end{macrocode}
%
%<*driver>
@@ -59,6 +59,8 @@
% \section{Creating document commands}
%
% \changes{v1.0a}{2020/11/20}{Initial version derived from \texttt{xparse.dtx}}
+% \changes{v1.2a}{2023/08/19}{Removed commands that should have remained
+% only in \texttt{xparse.dtx}}
%
% Document commands should be created using the tools provided by this module:
% \cs{NewDocumentCommand}, etc.\@, in almost all cases. This allows clean
@@ -4263,116 +4265,6 @@
% \end{macro}
% \end{macro}
%
-% \subsection{Access to the argument specification}
-%
-% \begin{macro}{\@@_get_arg_spec_error:N, \@@_get_arg_spec_error:n}
-% \begin{macro}{\@@_get_arg_spec_error_aux:n}
-% Provide an informative error when trying to get the argument
-% specification of a non-\pkg{xparse} command or environment.
-% \begin{macrocode}
-\cs_new_protected:Npn \@@_get_arg_spec_error:N #1
- {
- \bool_set_false:N \l_@@_environment_bool
- \tl_set:Nn \l_@@_fn_tl {#1}
- \@@_get_arg_spec_error_aux:n { \cs_if_exist:NTF #1 }
- }
-\cs_new_protected:Npn \@@_get_arg_spec_error:n #1
- {
- \bool_set_true:N \l_@@_environment_bool
- \str_set:Nx \l_@@_environment_str {#1}
- \@@_get_arg_spec_error_aux:n
- { \cs_if_exist:cTF { \l_@@_environment_str } }
- }
-\cs_new_protected:Npn \@@_get_arg_spec_error_aux:n #1
- {
- #1
- {
- \msg_error:nnx { cmd } { non-xparse }
- { \@@_environment_or_command: }
- }
- {
- \msg_error:nnx { cmd } { unknown }
- { \@@_environment_or_command: }
- }
- }
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{\@@_get_arg_spec:NTF}
-% If the command is not an \pkg{xparse} command, complain. If it is,
-% its second \enquote{item} is the argument specification.
-% \begin{macrocode}
-\cs_new_protected:Npn \@@_get_arg_spec:NTF #1#2#3
- {
- \__kernel_cmd_if_xparse:NTF #1
- {
- \tl_set:Nx \ArgumentSpecification { \tl_item:Nn #1 { 2 } }
- #2
- }
- {#3}
- }
-% \end{macrocode}
-% \end{macro}
-%
-% Rolling forward from 2020-10-01 is tricky because the entire |ltcmd|
-% module is new, but the user-level commands have the same name, so only
-% these will clash. To work around that, in |latexrelease| mode we will
-% (temporarily) disable \cs{__kernel_chk_if_free_cs:N} for this final
-% part of the code, then restore at the end.
-% \begin{macrocode}
-%<latexrelease>\cs_new_eq:NN \@@_chk_if_free_cs:N \__kernel_chk_if_free_cs:N
-%<latexrelease>\cs_gset_eq:NN \__kernel_chk_if_free_cs:N \use_none:n
-% \end{macrocode}
-%
-% \begin{variable}{\ArgumentSpecification}
-% \begin{macrocode}
-\tl_new:N \ArgumentSpecification
-% \end{macrocode}
-% \end{variable}
-%
-% \begin{macro}{\@@_get_arg_spec:N}
-% \begin{macro}{\@@_get_arg_spec:n}
-% Recovering the argument specification is now trivial.
-% \begin{macrocode}
-\cs_new_protected:Npn \@@_get_arg_spec:N #1
- {
- \@@_get_arg_spec:NTF #1 { }
- { \@@_get_arg_spec_error:N #1 }
- }
-\cs_new_protected:Npn \@@_get_arg_spec:n #1
- {
- \exp_args:Nc \@@_get_arg_spec:NTF
- { environment~ \tl_to_str:n {#1} }
- { }
- { \@@_get_arg_spec_error:n {#1} }
- }
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{\@@_show_arg_spec:N}
-% \begin{macro}{\@@_show_arg_spec:n}
-% Showing the argument specification simply means finding it and then
-% calling the \cs{tl_show:N} function.
-% \begin{macrocode}
-\cs_new_protected:Npn \@@_show_arg_spec:N #1
- {
- \@@_get_arg_spec:NTF #1
- { \tl_show:N \ArgumentSpecification }
- { \@@_get_arg_spec_error:N #1 }
- }
-\cs_new_protected:Npn \@@_show_arg_spec:n #1
- {
- \exp_args:Nc \@@_get_arg_spec:NTF
- { environment~ \tl_to_str:n {#1} }
- { \tl_show:N \ArgumentSpecification }
- { \@@_get_arg_spec_error:n {#1} }
- }
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
% \subsection{Utilities}
%
% \begin{macro}{\@@_check_definable:nNT, \@@_check_definable_aux:nN}
@@ -4817,12 +4709,6 @@
LaTeX~did~not~find~this~argument~and~will~insert~a~default~value~
for~further~processing.
}
-\msg_new:nnnn { cmd } { non-xparse }
- { \str_uppercase:n #1~not~defined~using~xparse. }
- {
- You~have~asked~for~the~argument~specification~for~the~#1,~
- but~this~was~not~defined~using~xparse.
- }
\msg_new:nnnn { cmd } { arg-split }
{ Too~many~'#1'~separators~in~argument. }
{
@@ -4830,12 +4716,6 @@
at~each~occurrence~of~the~separator~'#1'~into~#2~parts.~
Too~many~separators~were~found.
}
-\msg_new:nnnn { cmd } { unknown }
- { Unknown~document~#1. }
- {
- You~have~asked~for~the~argument~specification~for~the~#1,~
- but~it~is~not~defined.
- }
\msg_new:nnnn { cmd } { verbatim-nl }
{ Verbatim-like~#1~ended~by~end~of~line. }
{
@@ -5153,31 +5033,6 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\GetDocumentCommandArgSpec}
-% \begin{macro}{\GetDocumentEnvironmentArgSpec}
-% \begin{macro}{\ShowDocumentCommandArgSpec}
-% \begin{macro}{\ShowDocumentEnvironmentArgSpec}
-% More simple mappings, with a check that the argument is a single
-% control sequence or active character.
-% \begin{macrocode}
-\cs_new_protected:Npn \GetDocumentCommandArgSpec #1
- {
- \@@_check_definable:nNT {#1} \GetDocumentCommandArgSpec
- { \@@_get_arg_spec:N #1 }
- }
-\cs_new_eq:NN \GetDocumentEnvironmentArgSpec \@@_get_arg_spec:n
-\cs_new_protected:Npn \ShowDocumentCommandArgSpec #1
- {
- \@@_check_definable:nNT {#1} \ShowDocumentCommandArgSpec
- { \@@_show_arg_spec:N #1 }
- }
-\cs_new_eq:NN \ShowDocumentEnvironmentArgSpec \@@_show_arg_spec:n
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-%
% Finally as promised, restore \cs{__kernel_chk_if_free_cs:N}:
% \begin{macrocode}
%<latexrelease>\cs_gset_eq:NN \__kernel_chk_if_free_cs:N \@@_chk_if_free_cs:N
diff --git a/macros/latex-dev/base/ltcmdhooks-code.pdf b/macros/latex-dev/base/ltcmdhooks-code.pdf
index b1cd499d3c..598e09076d 100644
--- a/macros/latex-dev/base/ltcmdhooks-code.pdf
+++ b/macros/latex-dev/base/ltcmdhooks-code.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltcmdhooks-doc.pdf b/macros/latex-dev/base/ltcmdhooks-doc.pdf
index 91b366eb9f..e00d1a517f 100644
--- a/macros/latex-dev/base/ltcmdhooks-doc.pdf
+++ b/macros/latex-dev/base/ltcmdhooks-doc.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltcmdhooks.dtx b/macros/latex-dev/base/ltcmdhooks.dtx
index 27907af679..6f885a2c6c 100644
--- a/macros/latex-dev/base/ltcmdhooks.dtx
+++ b/macros/latex-dev/base/ltcmdhooks.dtx
@@ -14,8 +14,8 @@
%
%%% From File: ltcmdhooks.dtx
%
-\def\ltcmdhooksversion{v1.0h}
-\def\ltcmdhooksdate{2023/05/21}
+\def\ltcmdhooksversion{v1.0i}
+\def\ltcmdhooksdate{2023/06/16}
%
%
%
@@ -1641,10 +1641,10 @@
% \subsection{Messages}
%
% \begin{macrocode}
-%<latexrelease>\IncludeInRelease{2021/11/15}{wrong-cmd-hook}%
+%<latexrelease>\IncludeInRelease{2023/06/01}{wrong-cmd-hook}%
%<latexrelease> {Standardise~generic~hook~names}
%<latexrelease>\EndIncludeInRelease
-%<latexrelease>\IncludeInRelease{2021/11/15}{wrong-cmd-hook}%
+%<latexrelease>\IncludeInRelease{2021/06/01}{wrong-cmd-hook}%
%<latexrelease> {Standardise~generic~hook~names}
%<latexrelease>\msg_new:nnnn { hooks } { wrong-cmd-hook }
%<latexrelease> {
diff --git a/macros/latex-dev/base/ltfilehook-code.pdf b/macros/latex-dev/base/ltfilehook-code.pdf
index f7422c2a21..423d9c8c60 100644
--- a/macros/latex-dev/base/ltfilehook-code.pdf
+++ b/macros/latex-dev/base/ltfilehook-code.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltfilehook-doc.pdf b/macros/latex-dev/base/ltfilehook-doc.pdf
index e30bf34f5d..607cc91ca1 100644
--- a/macros/latex-dev/base/ltfilehook-doc.pdf
+++ b/macros/latex-dev/base/ltfilehook-doc.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltfilehook.dtx b/macros/latex-dev/base/ltfilehook.dtx
index e10a5416e5..ae183bfeb4 100644
--- a/macros/latex-dev/base/ltfilehook.dtx
+++ b/macros/latex-dev/base/ltfilehook.dtx
@@ -32,7 +32,7 @@
%
% \begin{macrocode}
\providecommand\ltfilehookversion{v1.0o}
-\providecommand\ltfilehookdate{2023/04/02}
+\providecommand\ltfilehookdate{2023/07/10}
% \end{macrocode}
%
%<*driver>
@@ -1043,7 +1043,6 @@
%
% \begin{macrocode}
%<@@=>
-\ExplSyntaxOff
% \end{macrocode}
%
% \subsection{Selecting a file (\cs{set@curr@file})}
diff --git a/macros/latex-dev/base/ltfiles.dtx b/macros/latex-dev/base/ltfiles.dtx
index 3bac7ea0b2..f079c2cf5b 100644
--- a/macros/latex-dev/base/ltfiles.dtx
+++ b/macros/latex-dev/base/ltfiles.dtx
@@ -32,7 +32,7 @@
%<*driver>
% \fi
\ProvidesFile{ltfiles.dtx}
- [2023/05/17 v1.2t LaTeX Kernel (File Handling)]
+ [2023/06/17 v1.2u LaTeX Kernel (File Handling)]
% \iffalse
\documentclass{ltxdoc}
\GetFileInfo{ltfiles.dtx}
@@ -1203,8 +1203,9 @@
% \changes{v1.2d}{2019/10/26}{quote on openin}
% \changes{v1.2k}{2021/03/12}{Allow unbalanced conditionals (gh/530)}
% \changes{v1.2t}{2023/05/15}{Use \pkg{expl3} file existence test}
-% \begin{macro}{\IfFileExists@}
+% \begin{macro}{\IfFileExists@@}
% \changes{v1.2t}{2023/05/15}{Macro added}
+% \changes{v1.2u}{2023/06/16}{Support piped input}
% Argument |#1| is |\@curr@file| so catcode 12 string with no quotes.
%
% The original definition picked up arguments |#2| and |#3| in a
@@ -1212,7 +1213,7 @@
% implementation would have been not to pick up the arguments at
% all but instead use the usual \cs{@firstoftwo} and
% \cs{secondoftwo}. However, that changes how |#| is interpreted
-% and so we can't do that nowaways without invalidating a lot of
+% and so we can't do that nowadays without invalidating a lot of
% code. Therefore the somewhat curious construction near the end.
%
% Earlier versions used |\openin| here, but this led to two
@@ -1224,7 +1225,7 @@
% \begin{macrocode}
%</2ekernel>
%<*2ekernel|latexrelease>
-%<latexrelease>\IncludeInRelease{2023/05/01}%
+%<latexrelease>\IncludeInRelease{2023/06/01}%
%<latexrelease> {\IfFileExists@}{IfFileExists}
\long\def \IfFileExists@#1#2#3{%
\edef\@filef@und{\IfFileExists@@{#1}}%
@@ -1251,8 +1252,23 @@
\expandafter\def\expandafter\reserved@a
\expandafter{\reserved@a{#2}{#3}}%
\reserved@a}
+% \end{macrocode}
+% Pipes are not really files, but at the document level they are supported.
+% To quickly trim of any leading spaces, we use a blank test and \cs{use:n}
+% rather than \cs{tl_trim_spaces:n} for speed as we don't care about the end
+% of the input.
+% \begin{macrocode}
\ExplSyntaxOn
-\cs_new_eq:NN \IfFileExists@@ \file_full_name:n
+\cs_new:Npn \IfFileExists@@ #1
+ {
+ \tl_if_blank:nF {#1}
+ {
+ \tl_if_head_eq_charcode:oNTF { \use:n #1 } |
+ {#1}
+ { \file_full_name:n {#1} }
+ }
+ }
+\cs_generate_variant:Nn \tl_if_head_eq_charcode:nNTF { o }
\ExplSyntaxOff
%</2ekernel|latexrelease>
%<latexrelease>\EndIncludeInRelease
diff --git a/macros/latex-dev/base/lthooks-code.pdf b/macros/latex-dev/base/lthooks-code.pdf
index 60bfdc9c57..452cc324fd 100644
--- a/macros/latex-dev/base/lthooks-code.pdf
+++ b/macros/latex-dev/base/lthooks-code.pdf
Binary files differ
diff --git a/macros/latex-dev/base/lthooks-doc.pdf b/macros/latex-dev/base/lthooks-doc.pdf
index fe0c9da6b8..379f81449c 100644
--- a/macros/latex-dev/base/lthooks-doc.pdf
+++ b/macros/latex-dev/base/lthooks-doc.pdf
Binary files differ
diff --git a/macros/latex-dev/base/lthooks.dtx b/macros/latex-dev/base/lthooks.dtx
index 3807d25c44..e43fa4ef35 100644
--- a/macros/latex-dev/base/lthooks.dtx
+++ b/macros/latex-dev/base/lthooks.dtx
@@ -31,8 +31,8 @@
%%% From File: lthooks.dtx
%
% \begin{macrocode}
-\def\lthooksversion{v1.1e}
-\def\lthooksdate{2023/06/06}
+\def\lthooksversion{v1.1f}
+\def\lthooksdate{2023/08/11}
% \end{macrocode}
%
%<*driver>
@@ -298,10 +298,6 @@
% consumed and any further attempt to add to it will result in
% executing the code to be added immediately.
%
-% The \meta{hook} \emph{cannot} be specified using the dot-syntax.
-% A leading |.| is treated literally. See
-% section~\ref{sec:default-label} for details.
-%
% Using \cs{UseOneTimeHook} several times with the same
% \Arg{hook} means that it only executes the first time it is used.
% For example, if it is used in a command that can be called several times
@@ -311,6 +307,11 @@
% Mixing \cs{UseHook} and \cs{UseOneTimeHook} for the same
% \Arg{hook} should be avoided, but if this is done then neither will execute
% after the first \cs{UseOneTimeHook}.
+%
+% The \meta{hook} \emph{cannot} be specified using the dot-syntax.
+% A leading |.| is treated literally. See
+% section~\ref{sec:default-label} for details.
+%
% \end{function}
%
% \begin{function}{\UseOneTimeHookWithArguments}
@@ -327,6 +328,11 @@
% longer possible to use \cs{AddToHookWithArguments} or similar with
% that hook. \cs{AddToHook} continues to work as normal.
% Section~\ref{sec:hook-args} explains hooks with arguments.
+%
+% The \meta{hook} \emph{cannot} be specified using the dot-syntax.
+% A leading |.| is treated literally. See
+% section~\ref{sec:default-label} for details.
+%
% \end{function}
%
%
@@ -607,7 +613,10 @@
% \meta{hook} arguments, both in the \LaTeXe{} interface, and the \LaTeX3
% interface described in section~\ref{sec:l3hook-interface}.
%
-% Note, however, that the replacement of |.| by the \meta{default label}
+% Note,\marginpar{\raggedleft\rightskip5pt\itshape \textbf{Important:}\break The dot-syntax
+% is \textbf{not} available with
+% \cs{UseHook} and some other commands that are typically used within code!}
+% however, that the replacement of |.| by the \meta{default label}
% takes place when the hook command is executed, so actions that are
% somehow executed after the package ends will have the wrong
% \meta{default label} if the dot-syntax is used. For that reason,
@@ -1997,8 +2006,9 @@
%
% \item[\hook{begindocument}]
%
-% This hook is added to when using \cs{AtBeginDocument} and it is
-% executed after the \texttt{.aux} file as be read in and most
+% This hook is added to by using \cs{AddToHook}\texttt{\{begindocument\}}
+% or by using \cs{AtBeginDocument} and it is
+% executed after the \texttt{.aux} file has been read and most
% initialization are done, so they can be altered and inspected by
% the hook code. It is followed by a small number of further
% initializations that shouldn't be altered and are therefore
@@ -3534,7 +3544,7 @@
% \changes{v1.1a}{2023/04/06}
% {Add \cs{hook_gput_code_with_args:nnn} (hook-args).}
% \begin{macrocode}
-%<latexrelease>\IncludeInRelease{2023/06/01}{\hook_gput_code_with_args:nnn}
+%<latexrelease>\IncludeInRelease{2023/06/01}{\hook_gput_code:nnn}
%<latexrelease> {Hooks~with~args}
\cs_new_protected:Npn \hook_gput_code:nnn #1 #2 #3
{
@@ -4386,7 +4396,7 @@
% \end{macrocode}
%
% \begin{macrocode}
-%<latexrelease>\IncludeInRelease{2023/06/01}{\hook_gremove_code:nn}
+%<latexrelease>\IncludeInRelease{2020/10/01}{\hook_gremove_code:nn}
%<latexrelease> {Hooks~with~args}
%<latexrelease>\cs_new_protected:Npn \@@_gremove_code:nn #1 #2
%<latexrelease> {
@@ -5287,6 +5297,10 @@
%<latexrelease> \cs_gset_eq:NN \hook_use:n \@@_use_initialized:n
%<latexrelease> \cs_gset_eq:NN \@@_preamble_hook:n \use_none:n
%<latexrelease> }
+%<@@=>
+%<latexrelease>\cs_gset_eq:NN \@expl@@@initialize@all@@
+%<latexrelease> \__hook_initialize_all:
+%<@@=hook>
%<latexrelease>\EndIncludeInRelease
% \end{macrocode}
% \end{macro}
@@ -7365,7 +7379,7 @@
\NewDocumentCommand \NewMirroredHookPairWithArguments { mmm }
{ \hook_new_pair_with_args:nnn {#1} {#2} {#3} }
%<latexrelease>\EndIncludeInRelease
-%<latexrelease>\IncludeInRelease{2023/06/01}{\NewHookWithArguments}
+%<latexrelease>\IncludeInRelease{2020/10/01}{\NewHookWithArguments}
%<latexrelease> {Hooks~with~args}
%<latexrelease>\cs_new_protected:Npn \NewHookWithArguments #1 #2 { }
%<latexrelease>\cs_new_protected:Npn \NewReversedHookWithArguments #1 #2 { }
diff --git a/macros/latex-dev/base/ltluatex.dtx b/macros/latex-dev/base/ltluatex.dtx
index 135cb63009..6d274ed5c3 100644
--- a/macros/latex-dev/base/ltluatex.dtx
+++ b/macros/latex-dev/base/ltluatex.dtx
@@ -28,7 +28,7 @@
\ProvidesFile{ltluatex.dtx}
%</driver>
%<*tex>
-[2023/01/19 v1.2b
+[2023/08/03 v1.2c
%</tex>
%<plain> LuaTeX support for plain TeX (core)
%<*tex>
@@ -1284,6 +1284,7 @@ luatexbase.new_chunkname = new_chunkname
%
% \begin{macro}{new_luafunction}
% \changes{v1.1i}{2018/10/21}{Function added}
+% \changes{v1.2c}{2023/07/02}{Ensure existing table entries not overwritten gh/1100}
% Much the same as for attribute allocation in Lua.
% The optional \meta{name} argument is used in the log if given.
% \begin{macrocode}
@@ -1291,7 +1292,11 @@ local luafunction_count_name =
luafunction_count_name or "e@alloc@luafunction@count"
local function new_luafunction(name)
tex_setcount("global", luafunction_count_name,
- tex_count[luafunction_count_name] + 1)
+ math.max(
+ #(lua.get_functions_table()),
+ tex_count[luafunction_count_name])
+ + 1)
+ lua.get_functions_table()[tex_count[luafunction_count_name]] = false
if tex_count[luafunction_count_name] > 65534 then
luatexbase_error("No room for a new luafunction register")
end
@@ -2147,12 +2152,13 @@ luatexbase.uninstall = uninstall
% \begin{macro}{mlist_to_hlist}
% \changes{v1.1l}{2020/02/02}{|pre/post_mlist_to_hlist| added}
% \changes{v1.1y}{2022/08/13}{Use shared\_callback system for pre/post/mlist_to_hlist}
+% \changes{v1.2c}{2023/08/03}{Fix callback type of post_mlist_to_hlist_callback}
% To emulate these callbacks, the ``real'' |mlist_to_hlist| is replaced by a
% wrapper calling the wrappers before and after.
% \begin{macrocode}
create_callback('pre_mlist_to_hlist_filter', 'list')
create_callback('mlist_to_hlist', 'exclusive', node.mlist_to_hlist)
-create_callback('post_mlist_to_hlist_filter', 'list')
+create_callback('post_mlist_to_hlist_filter', 'reverselist')
function shared_callbacks.mlist_to_hlist.handler(head, display_type, need_penalties)
local current = call_callback("pre_mlist_to_hlist_filter", head, display_type, need_penalties)
if current == false then
diff --git a/macros/latex-dev/base/ltluatex.pdf b/macros/latex-dev/base/ltluatex.pdf
index 7c5864ac80..fa5dd9a06a 100644
--- a/macros/latex-dev/base/ltluatex.pdf
+++ b/macros/latex-dev/base/ltluatex.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltmarks-code.pdf b/macros/latex-dev/base/ltmarks-code.pdf
index bc9395f38d..7f53320733 100644
--- a/macros/latex-dev/base/ltmarks-code.pdf
+++ b/macros/latex-dev/base/ltmarks-code.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltmarks-doc.pdf b/macros/latex-dev/base/ltmarks-doc.pdf
index feae65cce7..94b2a0a762 100644
--- a/macros/latex-dev/base/ltmarks-doc.pdf
+++ b/macros/latex-dev/base/ltmarks-doc.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltmiscen.dtx b/macros/latex-dev/base/ltmiscen.dtx
index 801d1e6862..74a9685f1f 100644
--- a/macros/latex-dev/base/ltmiscen.dtx
+++ b/macros/latex-dev/base/ltmiscen.dtx
@@ -32,7 +32,7 @@
%<*driver>
% \fi
\ProvidesFile{ltmiscen.dtx}
- [2022/11/06 v1.2a LaTeX Kernel (Misc. Environments)]
+ [2023/09/13 v1.2c LaTeX Kernel (Misc. Environments)]
% \iffalse
\documentclass{ltxdoc}
\GetFileInfo{ltmiscen.dtx}
@@ -194,8 +194,8 @@
% \begin{macrocode}
%</2ekernel>
%<*2ekernel|latexrelease>
-%<latexrelease>\IncludeInRelease{2020/10/01}%
-%<latexrelease> {\enddocument}{Use Hooks}%
+%<latexrelease>\IncludeInRelease{2023/11/01}%
+%<latexrelease> {\enddocument}{check property labels}%
\def\enddocument{%
% \end{macrocode}
% The |\end{document}| hook is executed first. If necessary it can
@@ -230,6 +230,10 @@
\let\@setckpt\@gobbletwo
\let\@newl@bel\@testdef
% \end{macrocode}
+% \changes{v1.2b}{2023/09/06}{Test changes of values in \cs{new@label@record}}
+% \begin{macrocode}
+ \let\new@label@record\@kernel@new@label@record@testdef
+% \end{macrocode}
% \changes{v1.0z}{1995/07/13}{Shorten redefinition of \cs{bibcite} and
% \cs{newlabel}}
% The previous line is equiv to setting
@@ -357,6 +361,67 @@
% \begin{macrocode}
%</2ekernel|latexrelease>
%<latexrelease>\EndIncludeInRelease
+%<latexrelease>\IncludeInRelease{2020/10/01}%
+%<latexrelease> {\enddocument}{Use Hooks}%
+%<latexrelease>\def\enddocument{%
+%<latexrelease> \@kernel@before@enddocument
+%<latexrelease> \UseOneTimeHook{enddocument}%
+%<latexrelease> \@kernel@after@enddocument
+%<latexrelease> \@checkend{document}%
+%<latexrelease> \clearpage
+%<latexrelease> \UseOneTimeHook{enddocument/afterlastpage}%
+%<latexrelease> \@kernel@after@enddocument@afterlastpage
+%<latexrelease> \begingroup
+%<latexrelease> \if@filesw
+%<latexrelease> \immediate\closeout\@mainaux
+%<latexrelease> \let\@setckpt\@gobbletwo
+%<latexrelease> \let\@newl@bel\@testdef
+%<latexrelease> \@tempswafalse
+%<latexrelease> \makeatletter \@@input\jobname.aux
+%<latexrelease> \fi
+%<latexrelease> \UseOneTimeHook{enddocument/afteraux}%
+%<latexrelease> \UseOneTimeHook{enddocument/info}%
+%<latexrelease> \endgroup
+%<latexrelease> \UseOneTimeHook{enddocument/end}%
+%<latexrelease> \deadcycles\z@\@@end}
+%<latexrelease>\NewHook{enddocument}
+%<latexrelease>\NewHook{enddocument/afterlastpage}
+%<latexrelease>\NewHook{enddocument/afteraux}
+%<latexrelease>\NewHook{enddocument/info}
+%<latexrelease>\NewHook{enddocument/end}
+%<latexrelease>\AddToHook{enddocument/info}[kernel/filelist]{\@dofilelist}
+%<latexrelease>\AddToHook{enddocument/info}[kernel/warnings]{\@enddocument@kernel@warnings}
+%<latexrelease>\AddToHook{enddocument/info}[kernel/release]{%
+%<latexrelease> \let\show@release@info\wlog
+%<latexrelease> \show@release@info{ ***********}%
+%<latexrelease> \the\LaTeXReleaseInfo
+%<latexrelease> \show@release@info{ ***********}}
+%<latexrelease>
+%<latexrelease>\DeclareHookRule{enddocument/info}{kernel/release}{before}{kernel/filelist}
+%<latexrelease>\DeclareHookRule{enddocument/info}{kernel/filelist}{before}{kernel/warnings}
+%<latexrelease>\def\@enddocument@kernel@warnings{%
+%<latexrelease> \ifdim \font@submax >\fontsubfuzz\relax
+%<latexrelease> \@font@warning{Size substitutions with differences\MessageBreak
+%<latexrelease> up to \font@submax\space have occurred.\@gobbletwo}%
+%<latexrelease> \fi
+%<latexrelease> \@defaultsubs
+%<latexrelease> \@refundefined
+%<latexrelease> \if@filesw
+%<latexrelease> \ifx \@multiplelabels \relax
+%<latexrelease> \if@tempswa
+%<latexrelease> \@latex@warning@no@line{Label(s) may have changed.
+%<latexrelease> Rerun to get cross-references right}%
+%<latexrelease> \fi
+%<latexrelease> \else
+%<latexrelease> \@multiplelabels
+%<latexrelease> \fi
+%<latexrelease> \ifx \@extra@page@added \relax
+%<latexrelease> \@latex@warning@no@line{Temporary extra page added at the end.
+%<latexrelease> Rerun to get it removed}%
+%<latexrelease> \fi
+%<latexrelease> \fi
+%<latexrelease>}
+%<latexrelease>\EndIncludeInRelease
%<latexrelease>\IncludeInRelease{0000/00/00}%
%<latexrelease> {\enddocument}{Use Hooks}%
%<latexrelease>
@@ -496,8 +561,7 @@
\protected\def\protected@file@percent{}
% \end{macrocode}
% \end{macro}
-
-
+%
% \begin{macro}{\add@percent@to@temptokena}
% Helper function which is used to inspect a sequence of tokens
% (the second argument of \cs{@writefile} and it the last token is
@@ -1189,11 +1253,33 @@
% print as the \TeX{}book's space character instead of as blank spaces.
%
% \begin{macro}{\@vobeyspaces}
+% \changes{v1.2b}{2023/06/15}{Support tabs}
+% \begin{macro}{\@vobeytabs}
+% \changes{v1.2b}{2023/06/14}{Macro added}
+% \changes{v1.2c}{2023/09/01}{Provide global definition for active tab}
% \begin{macrocode}
+%</2ekernel>
+%<latexrelease>\IncludeInRelease{2023/11/01}%
+%<latexrelease> {\@vobeytabs}{Obeyed tabs}%
+%<*2ekernel|latexrelease>
{\catcode`\ =\active%
-\gdef\@vobeyspaces{\catcode`\ \active\let \@xobeysp}}
+\gdef\@vobeyspaces{\catcode`\ \active\let \@xobeysp\@vobeytabs}}
+{\catcode`\^^I=\active
+\gdef\@vobeytabs{\catcode`\^^I\active\let^^I\@xobeytab}%
+\global\let^^I=\space
+}
+%</2ekernel|latexrelease>
+%<latexrelease>\EndIncludeInRelease
+%<latexrelease>\IncludeInRelease{0000/00/00}%
+%<latexrelease> {\@vobeytabs}{Obeyed tabs}%
+%<latexrelease>{\catcode`\ =\active%
+%<latexrelease>\gdef\@vobeyspaces{\catcode`\ \active\let \@xobeysp}}
+%<latexrelease>\let\@vobeytabs\@undefined
+%<latexrelease>\EndIncludeInRelease
+%<*2ekernel>
% \end{macrocode}
% \end{macro}
+% \end{macro}
%
% \begin{macro}{\@xobeysp}
% \changes{v1.0z}{1995/07/13}{Use \cs{nobreak}}
@@ -1368,44 +1454,8 @@
% \end{macro}
%
%
-
-% \begin{macro}{\@setupverbvisiblespace}
-%
-% In pdf\TeX{} a catcode 12 space will produce the character in
-% slot 32 which is assumed to be a visible space character (in a
-% typewriter font in OT1 or T1 encoding). In Xe\TeX{} or Lua\TeX{} a
-% font in TU encoding is normally used and that has a real space in
-% this slot. So what we do in this case is this: we check the
-% definition of
-% |\verbvisiblespace| and if it is |\asciispace| we assume that the
-% char32 can be used (e.g., in pdf\TeX{}). We then redefine
-% |\@xobeysp| so that after running |\@vobeyspaces| we get
-% characters from slot 32 for each active space.
-%
-% \changes{v1.1o}{2018/10/11}
-% {Provide visible space in \cs{verb*} also for XeTeX and LuaTeX (github/69)}
-% \begin{macrocode}
-\def\@setupverbvisiblespace{%
- \ifx\verbvisiblespace\asciispace
- \let\@xobeysp\asciispace
- \else
-% \end{macrocode} Otherwise we measure the width of a character in
-% the mon-spaced current font and place a
-% |\verbvisiblespace| into a box of the right width which we are then
-% using as the character for a space. By default this will be the space
-% character from OT1 cmtt but by changing
-% |\verbvisiblespace| one could use, for example, the |\textvisiblespace|
-% of the current typewriter font.
-% \begin{macrocode}
- \setbox\z@\hbox{x}%
- \setbox\@verbvisiblespacebox\hbox to\wd\z@{\hss\verbvisiblespace\hss}%
- \def\@xobeysp{\leavevmode\copy\@verbvisiblespacebox}%
- \fi
-}
-% \end{macrocode}
-% \end{macro}
+% ^^A \@setupverbvisiblespace was here
%
-
% \begin{macro}{\@verbvisiblespacebox}
% The box to hold the visible space character if it isn't in slot
% 32 in the current typewriter font.
@@ -1426,6 +1476,8 @@
% check if space is already active---it shouldn't be.
% \changes{v1.1o}{2018/10/11}
% {Provide visible space in \cs{verb*} also for XeTeX and LuaTeX (github/69)}
+% \changes{v1.2b}{2023/06/14}
+% {Support visible tabs in \cs{verb*}}
% \begin{macrocode}
\@namedef{verbatim*}{\@verbatim
\@setupverbvisiblespace
@@ -1434,8 +1486,6 @@
% \end{macrocode}
% \end{environment}
%
-%
-%
% \begin{macrocode}
%</2ekernel|latexrelease>
%<latexrelease>\EndIncludeInRelease
@@ -1452,7 +1502,88 @@
%<*2ekernel>
% \end{macrocode}
%
+% \begin{macro}{\@setupverbvisiblespace}
%
+% In pdf\TeX{} a catcode 12 space will produce the character in
+% slot 32 which is assumed to be a visible space character (in a
+% typewriter font in OT1 or T1 encoding). In Xe\TeX{} or Lua\TeX{} a
+% font in TU encoding is normally used and that has a real space in
+% this slot. So what we do in this case is this: we check the
+% definition of
+% |\verbvisiblespace| and if it is |\asciispace| we assume that the
+% char32 can be used (e.g., in pdf\TeX{}). We then redefine
+% |\@xobeysp| so that after running |\@vobeyspaces| we get
+% characters from slot 32 for each active space.
+%
+% \changes{v1.1o}{2018/10/11}
+% {Provide visible space in \cs{verb*} also for XeTeX and LuaTeX (github/69)}
+% \changes{v1.2b}{2023/06/15}
+% {Support visible tabs}
+% \begin{macrocode}
+%</2ekernel>
+%<*2ekernel|latexrelease>
+%<latexrelease>\IncludeInRelease{2023/11/01}%
+%<latexrelease> {\@setupverbvisiblespace}{Setup visible tab for \verb}%
+\def\@setupverbvisiblespace{%
+ \ifx\verbvisiblespace\asciispace
+ \let\@xobeysp\asciispace
+ \else
+% \end{macrocode}
+% Otherwise we measure the width of a character in
+% the mono-spaced current font and place a
+% |\verbvisiblespace| into a box of the right width which we are then
+% using as the character for a space. By default this will be the space
+% character from OT1 cmtt but by changing
+% |\verbvisiblespace| one could use, for example, the |\textvisiblespace|
+% of the current typewriter font.
+% \begin{macrocode}
+ \setbox\z@\hbox{x}%
+ \setbox\@verbvisiblespacebox\hbox to\wd\z@{\hss\verbvisiblespace\hss}%
+ \def\@xobeysp{\leavevmode\copy\@verbvisiblespacebox}%
+ \fi
+ \@setupverbvisibletab
+}
+%</2ekernel|latexrelease>
+%<latexrelease>\EndIncludeInRelease
+%<latexrelease>\IncludeInRelease{2018/12/01}%
+%<latexrelease> {\@setupverbvisiblespace}{Setup visible space for \verb}%
+%<latexrelease>\def\@setupverbvisiblespace{%
+%<latexrelease> \ifx\verbvisiblespace\asciispace
+%<latexrelease> \let\@xobeysp\asciispace
+%<latexrelease> \else
+%<latexrelease> \setbox\z@\hbox{x}%
+%<latexrelease> \setbox\@verbvisiblespacebox\hbox to\wd\z@{\hss\verbvisiblespace\hss}%
+%<latexrelease> \def\@xobeysp{\leavevmode\copy\@verbvisiblespacebox}%
+%<latexrelease> \fi
+%<latexrelease>}
+%<latexrelease>\EndIncludeInRelease
+%<latexrelease>\IncludeInRelease{0000/00/00}%
+%<latexrelease> {\@setupverbvisiblespace}{Setup visible space for \verb}%
+%<latexrelease>\let\@setupverbvisiblespace\@undefined
+%<latexrelease>\EndIncludeInRelease
+%<*2ekernel>
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@setupverbvisibletab}
+% \changes{v1.2q}{2023/06/15}
+% {Provide visible tab in \cs{verb*}}
+% A redirection: just a simple wrapper.
+% \begin{macrocode}
+%</2ekernel>
+%<latexrelease>\IncludeInRelease{2023/11/01}%
+%<latexrelease> {\@setupverbvisibletab}{Setup visible tab for \verb}%
+%<*2ekernel|latexrelease>
+\def\@setupverbvisibletab{\let\@xobeytab\@xobeysp}
+%</2ekernel|latexrelease>
+%<latexrelease>\EndIncludeInRelease
+%<latexrelease>\IncludeInRelease{0000/00/00}%
+%<latexrelease> {\@setupverbvisibletab}{Setup visible tab for \verb}%
+%<latexrelease>\let\@setupverbvisibletab\@undefined
+%<latexrelease>\EndIncludeInRelease
+%<*2ekernel>
+% \end{macrocode}
+% \end{macro}
%
% \begin{macro}{\@sverb}
% \begin{macro}{\@@sverb}
@@ -1464,8 +1595,8 @@
% \begin{macrocode}
%</2ekernel>
%<*2ekernel|latexrelease>
-%<latexrelease>\IncludeInRelease{2020/10/01}%
-%<latexrelease> {\@sverb}{Drop spaces before \verb delimiter}%
+%<latexrelease>\IncludeInRelease{2023/11/01}%
+%<latexrelease> {\@sverb}{Support visible tabs}%
% \end{macrocode}
%
% If the users types \verb=\verb !~! foo= then surprisingly we would
@@ -1496,8 +1627,13 @@
% it the definition for the active space character.
% \changes{v1.1o}{2018/10/11}
% {Provide visible space in \cs{verb*} also for XeTeX and LuaTeX (github/69)}
+% \changes{v1.2b}{2023/06/15}
+% {Support visible tabs}
% \begin{macrocode}
- \ifnum\catcode`\ =\active
+ \ifnum0%
+ \ifnum\catcode`\ =\active\else 1\fi
+ \ifnum\catcode`\^^I=\active\else 1\fi
+ =0 %
\else \@setupverbvisiblespace \@vobeyspaces \fi
}
% \end{macrocode}
@@ -1505,6 +1641,19 @@
% \begin{macrocode}
%</2ekernel|latexrelease>
%<latexrelease>\EndIncludeInRelease
+%<latexrelease>\IncludeInRelease{2020/10/01}%
+%<latexrelease> {\@sverb}{Drop spaces before \verb delimiter}%
+%<latexrelease>\def\@@sverb#1{%
+%<latexrelease> \catcode`#1\active
+%<latexrelease> \lccode`\~`#1%
+%<latexrelease> \gdef\verb@balance@group{\verb@egroup
+%<latexrelease> \@latex@error{\noexpand\verb illegal in argument}\@ehc}%
+%<latexrelease> \aftergroup\verb@balance@group
+%<latexrelease> \lowercase{\let~\verb@egroup}%
+%<latexrelease> \ifnum\catcode`\ =\active
+%<latexrelease> \else \@setupverbvisiblespace \@vobeyspaces \fi
+%<latexrelease>}
+%<latexrelease>\EndIncludeInRelease
%<latexrelease>\IncludeInRelease{2018/12/01}%
%<latexrelease> {\@sverb}{Setup visible space for \verb}%
%<latexrelease>
diff --git a/macros/latex-dev/base/ltnews.pdf b/macros/latex-dev/base/ltnews.pdf
index 057069d15c..a482c44754 100644
--- a/macros/latex-dev/base/ltnews.pdf
+++ b/macros/latex-dev/base/ltnews.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews.tex b/macros/latex-dev/base/ltnews.tex
index d239fc274f..0cb6ad55cc 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}{37}
+\providecommand*{\lastissue}{38}
\InputIfFileExists{ltnews-lastissue.cfg}{}{}
diff --git a/macros/latex-dev/base/ltnews01.pdf b/macros/latex-dev/base/ltnews01.pdf
index 163b63d1f8..45080cd056 100644
--- a/macros/latex-dev/base/ltnews01.pdf
+++ b/macros/latex-dev/base/ltnews01.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews02.pdf b/macros/latex-dev/base/ltnews02.pdf
index 22d5f44f13..3c92dcbb13 100644
--- a/macros/latex-dev/base/ltnews02.pdf
+++ b/macros/latex-dev/base/ltnews02.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews03.pdf b/macros/latex-dev/base/ltnews03.pdf
index 907142faea..9c76b172f2 100644
--- a/macros/latex-dev/base/ltnews03.pdf
+++ b/macros/latex-dev/base/ltnews03.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews04.pdf b/macros/latex-dev/base/ltnews04.pdf
index 8ec38ae7aa..5fc5b7e2f2 100644
--- a/macros/latex-dev/base/ltnews04.pdf
+++ b/macros/latex-dev/base/ltnews04.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews05.pdf b/macros/latex-dev/base/ltnews05.pdf
index a7b467cce3..82f6e2e66b 100644
--- a/macros/latex-dev/base/ltnews05.pdf
+++ b/macros/latex-dev/base/ltnews05.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews06.pdf b/macros/latex-dev/base/ltnews06.pdf
index 6d3af11e7b..8686878390 100644
--- a/macros/latex-dev/base/ltnews06.pdf
+++ b/macros/latex-dev/base/ltnews06.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews07.pdf b/macros/latex-dev/base/ltnews07.pdf
index fde4db801e..dbde03e3c6 100644
--- a/macros/latex-dev/base/ltnews07.pdf
+++ b/macros/latex-dev/base/ltnews07.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews08.pdf b/macros/latex-dev/base/ltnews08.pdf
index 9b5d5b5491..6de4f5dcc2 100644
--- a/macros/latex-dev/base/ltnews08.pdf
+++ b/macros/latex-dev/base/ltnews08.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews09.pdf b/macros/latex-dev/base/ltnews09.pdf
index 6b73bd238d..703e4fcbc1 100644
--- a/macros/latex-dev/base/ltnews09.pdf
+++ b/macros/latex-dev/base/ltnews09.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews10.pdf b/macros/latex-dev/base/ltnews10.pdf
index a4e1070c63..92cf03c100 100644
--- a/macros/latex-dev/base/ltnews10.pdf
+++ b/macros/latex-dev/base/ltnews10.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews11.pdf b/macros/latex-dev/base/ltnews11.pdf
index 8655dd1ebb..7fc53570a7 100644
--- a/macros/latex-dev/base/ltnews11.pdf
+++ b/macros/latex-dev/base/ltnews11.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews12.pdf b/macros/latex-dev/base/ltnews12.pdf
index adaa3a8030..7bb2af0d90 100644
--- a/macros/latex-dev/base/ltnews12.pdf
+++ b/macros/latex-dev/base/ltnews12.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews13.pdf b/macros/latex-dev/base/ltnews13.pdf
index 5386e0271e..238024988f 100644
--- a/macros/latex-dev/base/ltnews13.pdf
+++ b/macros/latex-dev/base/ltnews13.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews14.pdf b/macros/latex-dev/base/ltnews14.pdf
index 2358596a46..ca1bde861a 100644
--- a/macros/latex-dev/base/ltnews14.pdf
+++ b/macros/latex-dev/base/ltnews14.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews15.pdf b/macros/latex-dev/base/ltnews15.pdf
index a733dd4666..e93edf9da6 100644
--- a/macros/latex-dev/base/ltnews15.pdf
+++ b/macros/latex-dev/base/ltnews15.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews16.pdf b/macros/latex-dev/base/ltnews16.pdf
index 0d85052702..58a8ae986d 100644
--- a/macros/latex-dev/base/ltnews16.pdf
+++ b/macros/latex-dev/base/ltnews16.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews17.pdf b/macros/latex-dev/base/ltnews17.pdf
index b7a68faf54..48dcad813d 100644
--- a/macros/latex-dev/base/ltnews17.pdf
+++ b/macros/latex-dev/base/ltnews17.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews18.pdf b/macros/latex-dev/base/ltnews18.pdf
index 10dff17af7..3bd5213f40 100644
--- a/macros/latex-dev/base/ltnews18.pdf
+++ b/macros/latex-dev/base/ltnews18.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews19.pdf b/macros/latex-dev/base/ltnews19.pdf
index d382282afc..f61eafeabe 100644
--- a/macros/latex-dev/base/ltnews19.pdf
+++ b/macros/latex-dev/base/ltnews19.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews20.pdf b/macros/latex-dev/base/ltnews20.pdf
index a8f609ad22..fd2f0c7f6c 100644
--- a/macros/latex-dev/base/ltnews20.pdf
+++ b/macros/latex-dev/base/ltnews20.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews21.pdf b/macros/latex-dev/base/ltnews21.pdf
index c49a3e744f..3caee8b8aa 100644
--- a/macros/latex-dev/base/ltnews21.pdf
+++ b/macros/latex-dev/base/ltnews21.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews22.pdf b/macros/latex-dev/base/ltnews22.pdf
index dc6307cae7..463eef696d 100644
--- a/macros/latex-dev/base/ltnews22.pdf
+++ b/macros/latex-dev/base/ltnews22.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews23.pdf b/macros/latex-dev/base/ltnews23.pdf
index a29989f019..fb51fd8738 100644
--- a/macros/latex-dev/base/ltnews23.pdf
+++ b/macros/latex-dev/base/ltnews23.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews24.pdf b/macros/latex-dev/base/ltnews24.pdf
index e537c5858e..e8ef825448 100644
--- a/macros/latex-dev/base/ltnews24.pdf
+++ b/macros/latex-dev/base/ltnews24.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews25.pdf b/macros/latex-dev/base/ltnews25.pdf
index 1b3a3bf336..a7171c631a 100644
--- a/macros/latex-dev/base/ltnews25.pdf
+++ b/macros/latex-dev/base/ltnews25.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews26.pdf b/macros/latex-dev/base/ltnews26.pdf
index 50882f8175..6de2aba701 100644
--- a/macros/latex-dev/base/ltnews26.pdf
+++ b/macros/latex-dev/base/ltnews26.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews27.pdf b/macros/latex-dev/base/ltnews27.pdf
index 2a7f4dada7..2426592152 100644
--- a/macros/latex-dev/base/ltnews27.pdf
+++ b/macros/latex-dev/base/ltnews27.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews28.pdf b/macros/latex-dev/base/ltnews28.pdf
index 6c539c3d2b..3b505c36e5 100644
--- a/macros/latex-dev/base/ltnews28.pdf
+++ b/macros/latex-dev/base/ltnews28.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews29.pdf b/macros/latex-dev/base/ltnews29.pdf
index 1af62187fd..b9bda4e3ad 100644
--- a/macros/latex-dev/base/ltnews29.pdf
+++ b/macros/latex-dev/base/ltnews29.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews30.pdf b/macros/latex-dev/base/ltnews30.pdf
index 77b50dc802..6197b58162 100644
--- a/macros/latex-dev/base/ltnews30.pdf
+++ b/macros/latex-dev/base/ltnews30.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews31.pdf b/macros/latex-dev/base/ltnews31.pdf
index aac568ca14..1de3b0fd5b 100644
--- a/macros/latex-dev/base/ltnews31.pdf
+++ b/macros/latex-dev/base/ltnews31.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews32.pdf b/macros/latex-dev/base/ltnews32.pdf
index 2d2fbac00a..e18c5d44fd 100644
--- a/macros/latex-dev/base/ltnews32.pdf
+++ b/macros/latex-dev/base/ltnews32.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews33.pdf b/macros/latex-dev/base/ltnews33.pdf
index 48e19ae5f2..1190e8ed79 100644
--- a/macros/latex-dev/base/ltnews33.pdf
+++ b/macros/latex-dev/base/ltnews33.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews34.pdf b/macros/latex-dev/base/ltnews34.pdf
index f44a59c817..eec3c3f35b 100644
--- a/macros/latex-dev/base/ltnews34.pdf
+++ b/macros/latex-dev/base/ltnews34.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews35.pdf b/macros/latex-dev/base/ltnews35.pdf
index 2163da5a3c..c03ef0306b 100644
--- a/macros/latex-dev/base/ltnews35.pdf
+++ b/macros/latex-dev/base/ltnews35.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews36.pdf b/macros/latex-dev/base/ltnews36.pdf
index ae19fc9f58..5e16afdce0 100644
--- a/macros/latex-dev/base/ltnews36.pdf
+++ b/macros/latex-dev/base/ltnews36.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews37.pdf b/macros/latex-dev/base/ltnews37.pdf
index c8796695da..02b03b00a0 100644
--- a/macros/latex-dev/base/ltnews37.pdf
+++ b/macros/latex-dev/base/ltnews37.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews38.pdf b/macros/latex-dev/base/ltnews38.pdf
new file mode 100644
index 0000000000..6dfed26068
--- /dev/null
+++ b/macros/latex-dev/base/ltnews38.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews38.tex b/macros/latex-dev/base/ltnews38.tex
new file mode 100644
index 0000000000..38745b9dbf
--- /dev/null
+++ b/macros/latex-dev/base/ltnews38.tex
@@ -0,0 +1,257 @@
+% \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: ltnews38.tex
+%
+% This is issue 38 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{November}
+\publicationyear{2023 --- DRAFT version for upcoming release}
+
+\publicationissue{38}
+
+\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{Sockets and plugs}
+
+\emph{write}
+
+For documentation see \texttt{texdoc ltsockets-doc} for now.
+
+\section{Extended cross-referencing of document properties}
+
+Traditionally \LaTeX{} allowed with \cs{label} to record two \enquote{local}
+properties of the document: the representation of the current page number and
+of the current counter. Their values could then be referenced with the
+(non-expandable) commands \cs{ref} and \cs{pageref} in arbitrary places of a
+document. With the summer 2023 release the \cs{label} was enhanced to record
+also if set by packages like \pkg{nameref} or \pkg{hyperref} the title and
+the name of the link target.
+
+Over the years packages extended the label-ref system in various ways.
+Examples are for example the \pkg{refcount} package to reference the values
+expandably, the \pkg{smartref} package, which allows to store more counter
+values and so to reference the current chapter together with the current
+equation, the \pkg{cleveref} package, which stores in a second internal label
+beside other the name of the counter, the \pkg{hyperref} package whose
+\cs{autoref} command tries to retrieve the name of the counter from the name
+of the link target, the \pkg{tikzmarks} which records absolute positions on
+the page, and the \pkg{zref} package which implements a general method to
+record and reference properties.
+
+Starting with this release the \LaTeX{} kernel contains now its own
+extension. It is loosely based on \pkg{zref}. It allows to declare new
+properties, to record arbitrary combinations of properties. The values are
+retrieved expandably.
+
+As an example to setup a new property which records the current chapter
+number the following declaration could be used:
+\begin{verbatim}
+\NewProperty{chapter}{now}{?}{\thechapter}
+\end{verbatim}
+The second argument means that the property is recorded immediately
+(\enquote{now}) and not at shipout. The third argument sets a default if a
+label is unknown. It is then possible to record a list of properties with
+\cs{RecordProperties}:
+\begin{verbatim}
+\RecordProperties{mylabel}{chapter,page,currentlabel}
+\end{verbatim}
+To reference the value the \cs{RefProperty} command is provided which takes
+two arguments, the label and the property:
+\begin{verbatim}
+\RefProperty{mylabel}{chapter}
+\end{verbatim}
+
+The new module predeclares a set of generally useful properties:
+\texttt{currentlabel} (the standard counter representation), \texttt{page}
+(the page representation), \texttt{title} (the title if set e.g.~by
+\pkg{nameref}), \texttt{target} (the name of the link target if set e.g.~by
+\pkg{hyperref}), \texttt{pagenum} (the page as an arabic number),
+\texttt{abspage} (the absolute page number), \texttt{counter} (the name of
+the current counter), \texttt{xpos} and \texttt{ypos} the position on the
+page as set by a previous \cs{pdfsavepos}.
+
+The module provides both \LaTeXe{} camel case commands and expl3 commands.
+
+For documentation see \texttt{texdoc ltproperties-doc}.
+
+\section{New or improved commands}
+
+%
+\githubissue{xxx}
+
+\section{\emph{Removed} commands}
+
+It is very rare that commands are removed from the \LaTeX{} kernel. However, in
+this release we have elected to remove \cs{GetDocumentCommandArgSpec},
+\cs{GetDocumentEnvironmentArgSpec}, \cs{ShowDocumentCommandArgSpec} and
+\cs{ShowDocumentEnvironmentArgSpec} from the kernel. These commands have been
+moved back to the \enquote{stub} \pkg{xparse} provided in \pkg{l3packages}. The
+reason for this change is that the commands were essentially part of debugging
+early forms of the kernel code, and expose implementation detail in a way that
+was not helpful.
+
+\section{Code improvements}
+
+\subsection{Support for tabs in \cs{verb*} and \texttt{verbatim*}}
+
+\LaTeX{} converts a single tab to a single space, which is then treated like a
+\enquote{real} space in typesetting. The same has been true to date inside
+\cs{verb}, but was done in a way that meant that they remained as normal spaces
+even in \cs{verb*}, etc. We have now adjusted the code so that tabs are
+retained within the argument to \cs{verb} and \cs{verb*}, and the
+\texttt{verbatim} and \texttt{verbatim*} environments independently from
+spaces, and are set up to print in the same way spaces do. This means that they
+now generate visible spaces inside \cs{verb*} and \texttt{verbatim*}, and their
+behavior can be adjusted if required to be different from that of spaces.
+%
+\githubissue{1085}
+
+\section{Bug fixes}
+
+\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
+
+\end{thebibliography}
+
+\end{document}
diff --git a/macros/latex-dev/base/ltpara-code.pdf b/macros/latex-dev/base/ltpara-code.pdf
index 2a02548738..6836c91ff6 100644
--- a/macros/latex-dev/base/ltpara-code.pdf
+++ b/macros/latex-dev/base/ltpara-code.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltpara-doc.pdf b/macros/latex-dev/base/ltpara-doc.pdf
index 1aa8f1fff8..f29cf22b46 100644
--- a/macros/latex-dev/base/ltpara-doc.pdf
+++ b/macros/latex-dev/base/ltpara-doc.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltproperties-code.pdf b/macros/latex-dev/base/ltproperties-code.pdf
new file mode 100644
index 0000000000..8176e3fdde
--- /dev/null
+++ b/macros/latex-dev/base/ltproperties-code.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltproperties-code.tex b/macros/latex-dev/base/ltproperties-code.tex
new file mode 100644
index 0000000000..486cefa7b9
--- /dev/null
+++ b/macros/latex-dev/base/ltproperties-code.tex
@@ -0,0 +1,5 @@
+% This will typeset documentation + code
+%
+
+\AtBeginDocument{\AlsoImplementation}
+\input{ltproperties.dtx}
diff --git a/macros/latex-dev/base/ltproperties-doc.pdf b/macros/latex-dev/base/ltproperties-doc.pdf
new file mode 100644
index 0000000000..553223ecc2
--- /dev/null
+++ b/macros/latex-dev/base/ltproperties-doc.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltproperties-doc.tex b/macros/latex-dev/base/ltproperties-doc.tex
new file mode 100644
index 0000000000..072dfedad0
--- /dev/null
+++ b/macros/latex-dev/base/ltproperties-doc.tex
@@ -0,0 +1,8 @@
+% This will typeset only documentation but not the code
+%
+
+\AtBeginDocument{\OnlyDescription
+% \let\tableofcontents\relax
+ \RenewCommandCopy\MaybeStop\StopEventually
+ }
+\input{ltproperties.dtx}
diff --git a/macros/latex-dev/base/ltproperties.dtx b/macros/latex-dev/base/ltproperties.dtx
new file mode 100644
index 0000000000..71b6e2a14f
--- /dev/null
+++ b/macros/latex-dev/base/ltproperties.dtx
@@ -0,0 +1,943 @@
+% \iffalse meta-comment
+%
+%% File: ltproperties.dtx
+%
+% Copyright (C) 2021-2023 The LaTeX Project
+%
+% It may be distributed and/or modified under the conditions of the
+% LaTeX Project Public License (LPPL), either version 1.3c of this
+% license or (at your option) any later version. The latest version
+% of this license is in the file
+%
+% http://www.latex-project.org/lppl.txt
+%
+% This file is part of the LaTeX base system. (The Work in LPPL)
+% and all files in that bundle must be distributed together.
+%
+% -----------------------------------------------------------------------
+%
+% The development version of the bundle can be found at
+%
+% https://github.com/latex3/latex2e
+%
+% for those people who are interested.
+% \begin{macrocode}
+\def\ltpropertiesversion{1.0b}
+\def\ltpropertiesdate{2023-09-13}
+% \end{macrocode}
+
+%<*driver>
+\documentclass[full]{l3doc}
+\EnableCrossrefs
+\CodelineIndex
+\begin{document}
+ \DocInput{ltproperties.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \title{^^A
+% Recording and cross-referencing document properties^^A
+% \thanks{This module has version
+% \ltpropertiesversion\ dated \ltpropertiesdate, \copyright\ The \LaTeX\
+% Project.}
+% }
+%
+% \author{^^A
+% The \LaTeX\ Project\thanks
+% {^^A
+% E-mail:
+% \href{mailto:latex-team@latex-project.org}
+% {latex-team@latex-project.org}^^A
+% }^^A
+% }
+%
+% \maketitle
+%
+% \begin{documentation}
+% \begin{abstract}
+% This code implements command to record and (expandably) reference
+% document properties. It extends the standard \cs{label}/\cs{ref}/\cs{pageref}
+% commands.
+% \end{abstract}
+%
+% \tableofcontents
+%
+% \section{Introduction}
+%
+% The module allows to record the \enquote{current state} of various
+% document properties (typically the content of macros and values of counters)
+% and to access them in other places through a label.
+% The list of properties that can be recorded and retrieved
+% are not fix and can be extended by the user. The values of the properties
+% are recorded in the \texttt{.aux} file and can be retrieved at the second compilation.
+%
+%
+% The module uses the ideas of properties and labels. A label is
+% a document reference point: a name for the user. An property is something
+% that \LaTeX{} can track, such as a page number, section number or name.
+% The names of labels and properties may be arbitrary. Note that there is
+% a single namespace for each.
+%
+% \section{Design discussion}
+%
+% The design here largely follows ideas from \pkg{zref}. In particular, there
+% are two independent concepts: properties that can be recorded between runs,
+% and labels which consist of lists of these properties. The reason for the
+% split is that individual labels will want to record some but not all
+% properties. For examples, a label concerned with position would track
+% the $x$ and $y$ co-ordinates of the current point, but not for example
+% the page number.
+%
+% In the current implementation, properties share a single namespace. This
+% allows multiple lists to re-use the same properties, for example page number,
+% absolute page number, etc. This does mean that \emph{changing} a standard
+% property is an issue. However, some properties have complex definitions
+% (again, see \pkg{zref} at present): having them in a single shared space
+% avoids the need to copy code.
+%
+% Labels could be implemented as |prop| data. That is not done at present as
+% there is no obvious need to map to or copy the data. As such, faster
+% performance is available using a hash table approach as in a \enquote{classical}
+% set up. Data written to the |.aux| file uses simple paired \emph{balanced
+% text} not keyvals: this avoids any restrictions on names and again offers
+% increased performance.
+%
+% The \pkg{expl3} versions of the label command do not
+% use \cs{@bsphack}/\cs{@esphack} to avoid double spaces,
+% but the \LaTeXe{} command does as it lives at the document command level.
+%
+% The reference commands are expandable.
+%
+% Currently the code has nearly no impact on the main \cs{label} and \cs{ref} commands as
+% too many external packages rely on the concrete implementation.
+% There is one exception:
+% the label names share the same namespace. That means that if both |\label{ABC}| and
+% |\RecordProperties{ABC}{page}| are used there is a warning
+% \texttt{Label `ABC' multiply defined}.
+%
+% \section{Handling unknown labels and properties}
+% With the standard \cs{label}/\cs{ref} commands the requested label is
+% either in the |.aux|-file (and so known) or not.
+% In the first case the stored value can be used,
+% in the second case the reference commands print two question marks.
+%
+% With flexible property lists a reference commands asks for the
+% value of a specific property stored under a label name
+% and we have to consider more variants:
+% \begin{itemize}
+% \item If the requested property is unknown (not declared) the system
+% is not correctly set up and an error is issued.
+% \item If the label is unknown, the default of the property is used.
+% \item If the label is known, but doesn't provide a value for the
+% property then again the default of the property is used.
+% \item The command |\property_ref:nnn| allows to give a local default
+% which is used instead of the property default in the two cases before.
+% \end{itemize}
+%
+% \section{Rerun messages}
+%
+% As the reference commands are expandable they can neither issue a message that
+% the label or the label-property combination is unknown, nor can they trigger the
+% rerun message at the end of the \LaTeX{} run.
+%
+% Where needed such messages must therefore be triggered manually. For this two commands
+% are provided: \cs{property_ref_undefined_warn:} and \cs{property_ref_undefined_warn:nn}.
+% See below for a description.
+%
+% \section{Open points}
+%
+% \begin{itemize}
+% \item The \texttt{xpos} and \texttt{ypos} properties require that the position is
+% stored first but there is no (public) engine independent interface yet. Code must
+% use \cs{tex_savepos:D}.
+% \end{itemize}
+%
+% \section{Code interfaces}
+%
+% \begin{function}{\property_new:nnnn,\property_gset:nnnn}
+% \begin{syntax}
+% \cs{property_new:nnnn} \Arg{property} \Arg{setpoint} \Arg{default} \Arg{code}
+% \cs{property_gset:nnnn} \Arg{property}\Arg{setpoint} \Arg{default} \Arg{code}
+% \end{syntax}
+% \LaTeXe-interface: see \cs{NewProperty}, \cs{SetProperty}.\\
+% Sets the \meta{property} to have the \meta{default} specified, and at the
+% \meta{setpoint} (either |now| or |shipout|) to write the result of the
+% \meta{code} as part of a label. The \meta{code} should be expandable. The expansion
+% of \meta{code} (the value of the property) is written to the |.aux| file and read
+% back from there at the next compilation. Values should assume that the
+% standard \LaTeX{} catcode régime with |@| a letter is active then.
+%
+% If the property is declared within a package it is suggested
+% that its name is build from letters, hyphens and slashes,
+% and is always structured as follows:\\
+% \meta{package-name}\texttt{/}\meta{property-name}.
+% \end{function}
+%
+% \begin{function}
+% {
+% \property_record:nN,
+% \property_record:nn, \property_record:nV, \property_record:xx
+% }
+% \begin{syntax}
+% \cs{property_record:nN} \Arg{label} \Arg{clist var}
+% \cs{property_record:nn} \Arg{label} \Arg{clist}
+% \end{syntax}
+% \LaTeXe{}-interface: see \cs{RecordProperties}.\\
+% Writes the list of properties given by the \meta{clist} to the |.aux|
+% file with the \meta{label} specified.
+% \end{function}
+%
+% \begin{function}[EXP]{\property_ref:nn,\property_ref:ee}
+% \begin{syntax}
+% \cs{property_ref:nn} \Arg{label} \Arg{property}
+% \end{syntax}
+% \LaTeXe{}-interface: see \cs{RefProperty}.\\
+% Expands to the value of the \meta{property} for the \meta{label}, if
+% available, and the default value of the property otherwise.
+% If \meta{property} has not been declared with |\property_new:nnnn|
+% an error is issued. The command raises an internal, expandable, local flag
+% if the reference can not be resolved.
+% \end{function}
+%
+% \begin{function}[EXP]{\property_ref:nnn,\property_ref:een}
+% \begin{syntax}
+% \cs{property_ref:nnn} \Arg{label} \Arg{property} \Arg{local default}
+% \end{syntax}
+% \LaTeXe{}-interface: see \cs{RefProperty}.\\
+% Expands to the value of the \meta{property} for the \meta{label}, if
+% available, and to \meta{local default} otherwise.
+% If \meta{property} has not been declared with |\property_new:nnnn|
+% an error is issued. The command raises an internal, expandable local flag
+% if the reference can not be resolved.
+% \end{function}
+%
+% \begin{function}{\property_ref_undefined_warn:}
+% \begin{syntax}
+% \cs{property_ref_undefined_warn:}
+% \end{syntax}
+% \LaTeXe{}-interface: not provided.\\
+% The commands triggers the standard warning
+% \\
+% \hspace*{1em}\texttt{LaTeX Warning: There were undefined references.}
+% \\
+% at the end of the document if there was a recent
+% \cs{property_ref:nn} or \cs{property_ref:nnn} which couldn't be resolved
+% and so raised the flag. \enquote{Recent} means in the same group
+% or in some outer group!
+% \end{function}
+%
+% \begin{function}{\property_ref_undefined_warn:n,\property_ref_undefined_warn:x}
+% \begin{syntax}
+% \cs{property_ref_undefined_warn:n} \Arg{label}
+% \end{syntax}
+% \LaTeXe{}-interface: not provided.\\
+% The commands triggers the standard warning\\
+% \hspace*{1em}\texttt{LaTeX Warning: There were undefined references.}
+% \\
+% at the end of the document if \meta{label} is not known.
+% At the point where it is called it also issues the warning\\
+% \hspace*{1em}%
+% \texttt{Reference~`\meta{label}'~on~page~\meta{page}\space undefined}.
+% \end{function}
+%
+% \begin{function}{\property_ref_undefined_warn:nn,\property_ref_undefined_warn:xx}
+% \begin{syntax}
+% \cs{property_ref_undefined_warn:nn} \Arg{label} \Arg{property}
+% \end{syntax}
+% \LaTeXe{}-interface: see \cs{RefUndefinedWarn}.\\
+% The commands triggers the standard warning\\
+% \hspace*{1em}%
+% \texttt{LaTeX Warning: There were undefined references.}\\
+% at the end of the document if the reference can not be resolved.
+% At the point where it is called it also issues the warning\\
+% \hspace*{1em}%
+% \texttt{Reference~`\meta{label}'~on~page~\meta{page}\space undefined}\\
+% if the label
+% is unknown, or the more specific\\
+% \hspace*{1em}%
+% \texttt{Property `\meta{property}' undefined for reference
+% `\meta{label}' on page \meta{page}}\\
+% if the label is known but doesn't provide a value for the requested property.
+% \end{function}
+%
+% \begin{function}[pTF]{\property_if_exist:n,\property_if_exist:e}
+% \begin{syntax}
+% \cs{property_if_exist_p:n} \Arg{property}
+% \cs{property_if_exist:nTF} \Arg{property} \Arg{true code} \Arg{false code}
+% \end{syntax}
+% \LaTeXe{}-interface: \cs{IfPropertyExistTF}.\\
+% Tests if the \meta{property} has been declared.
+% \end{function}
+%
+% \begin{function}[pTF]{\property_if_recorded:n,\property_if_recorded:e}
+% \begin{syntax}
+% \cs{property_if_recorded_p:n} \Arg{label}
+% \cs{property_if_recorded:nTF} \Arg{label} \Arg{true code} \Arg{false code}
+% \end{syntax}
+% \LaTeXe{}-interface: \cs{IfLabelExistTF}\\
+% Tests if the \meta{label} is known. This is also true if the label has been
+% set with the standard \cs{label} command.
+% \end{function}
+%
+% \begin{function}[pTF]{\property_if_recorded:nn,\property_if_recorded:ee}
+% \begin{syntax}
+% \cs{property_if_recorded_p:nn} \Arg{label} \Arg{property}
+% \cs{property_if_recorded:nnTF} \Arg{label} \Arg{property} \Arg{true code} \Arg{false code}
+% \end{syntax}
+% \LaTeXe{}-interface: \cs{IfPropertyRecordedTF}.\\
+% Tests if the label \meta{label} is known and if it provides a value of the \meta{property}.
+% \end{function}
+%
+% \section{Auxiliary file interfaces}
+%
+% \begin{function}{\new@label@record}
+% \begin{syntax}
+% \cs{new@label@record} \Arg{label} \Arg{data}
+% \end{syntax}
+% This is a command only for use in the |.aux| file. It loads the key--value
+% list of \meta{data} to be available for the \meta{label}.
+% \end{function}
+%
+% \section{\LaTeXe{} interface}
+%
+% The LaTeXe{} interfaces always expand label and property arguments.
+%
+% \begin{function}{\NewProperty,\SetProperty}
+% \begin{syntax}
+% \cs{NewProperty} \Arg{property} \Arg{setpoint} \Arg{default} \Arg{code}
+% \cs{SetProperty} \Arg{property} \Arg{setpoint} \Arg{default} \Arg{code}
+% \end{syntax}
+% Sets the \meta{property} to have the \meta{default} specified, and at the
+% \meta{setpoint} (either |now| or |shipout|) to write the result of the
+% \meta{code} as part of a label. The \meta{code} should be expandable. The expansion
+% of \meta{code} (the value of the property) is written to the |.aux| file and read
+% back from there at the next compilation (at which point normally
+% the standard \LaTeX{} catcode régime with |@| a letter is active).
+%
+% \end{function}
+%
+% \begin{function}{\RecordProperties}
+% \begin{syntax}
+% \cs{RecordProperties} \Arg{label} \Arg{clist}
+% \end{syntax}
+% Writes the list of properties given by the \meta{clist} to the |.aux|
+% file with the \meta{label} specified. Similar to the standard \cs{label} command
+% the arguments are expanded. So \meta{clist} can be a macro containing a list
+% of properties. Also similar to the standard \cs{label} command, the command is surrounded
+% by an \cs{@bsphack}/\cs{@esphack} pair to preserve spacing.
+% \end{function}
+
+% \begin{function}[EXP]{\RefProperty}
+% \begin{syntax}
+% \cs{RefProperty} \oarg{local default} \Arg{label} \Arg{property}
+% \end{syntax}
+% Expands to the value of the \meta{property} for the \meta{label}, if
+% available, and the default value of the property or -- if given --
+% to \meta{local default} otherwise.
+% If \Arg{property} has not been declared an error is issued.
+% \end{function}
+%
+% \begin{function}{\IfPropertyExistTF}
+% \begin{syntax}
+% \cs{IfPropertyExistTF} \Arg{property} \Arg{true code} \Arg{false code}
+% \end{syntax}
+% Tests if the \meta{property} has been declared.
+% \end{function}
+%
+% \begin{function}{\IfLabelExistTF}
+% \begin{syntax}
+% \cs{IfLabelExistTF} \Arg{label} \Arg{true code} \Arg{false code}
+% \end{syntax}
+% Tests if the \meta{label} has been recorded. This is also true if a label
+% has been set with the standard \cs{label} command.
+% \end{function}
+%
+% \begin{function}{\IfPropertyRecordedTF}
+% \begin{syntax}
+% \cs{IfPropertyRecordedTF} \Arg{label} \Arg{property} \Arg{true code} \Arg{false code}
+% \end{syntax}
+% Tests if the label and a value of the \meta{property} for the \meta{label} are both known.
+% \end{function}
+
+% \begin{function}{\RefUndefinedWarn}
+% \begin{syntax}
+% \cs{RefUndefinedWarn} \Arg{label} \Arg{property}
+% \end{syntax}
+% This commands triggers the standard warning\\
+% \hspace*{1em}%
+% \texttt{LaTeX Warning: There were undefined references.}\\
+% at the end of the document if the reference for \meta{label} and \meta{property}
+% can not be resolved.
+% At the point where it is called it also issues the warning\\
+% \hspace*{1em}%
+% \texttt{Reference `\meta{label}' on page \meta{page} undefined}\\
+% if the label is unknown, or the more specific\\
+% \hspace*{1em}%
+% \texttt{Property `\meta{property}' undefined for reference
+% `\meta{label}' on page \meta{page}}
+% if the label is known but doesn't provide a value for the requested property.
+% \end{function}
+%
+% \section{Pre-declared properties}
+%
+% \begin{variable}{abspage}
+% (shipout) The absolute value of the current page: starts at $1$ and increases
+% monotonically at each shipout.
+% \end{variable}
+%
+% \begin{variable}{page}
+% (shipout) The current page as given by \cs{thepage}: this may or may not
+% be a numerical value, depending on the current style. Contrast with
+% \cs{abspage}. You get this value also with the standard \cs{label}/\cs{pageref}.
+% \end{variable}
+%
+% \begin{variable}{pagenum}
+% (shipout) The current page as arabic number. This is suitable for integer operations and
+% comparisions.
+% \end{variable}
+%
+% \begin{variable}{currentlabel}
+% (now) The content of \cs{@currentlabel}. This is the value that
+% you get also with the standard \cs{label}/\cs{ref}.
+% \end{variable}
+%
+% \begin{variable}{title}
+% (now) The content of \cs{@currentlabelname}.
+% This command is filled beside others by the \pkg{nameref} package and some
+% classes (e.g.~\pkg{memoir}).
+% \end{variable}
+%
+% \begin{variable}{target}
+% (now) The content of \cs{@currentHref}.
+% This command is normally filled by for example by
+% \pkg{hyperref} and gives the name of the last destination it created.
+% \end{variable}
+%
+% \begin{variable}{counter}
+% (now) The content of \cs{@currentcounter}.
+% This command contains after a \cs{refstepcounter} the name of the counter.
+% \end{variable}
+%
+% \begin{variable}{xpos,ypos}
+% (shipout) This stores the $x$~and $y$ coordinates of a point previously
+% stored with \cs{pdfsavepos}/\cs{savepos}.
+% E.g.~(if bidi is used it can be necessary to save the position
+% before and after the label):
+% \begin{verbatim}
+% \tex_savepos:D
+% \property_record:nn{myposition}{xpos,ypos}
+% \tex_savepos:D
+% \end{verbatim}
+% \end{variable}
+% \end{documentation}
+%
+% \begin{implementation}
+%
+% \section{The Implementation}
+%
+% \begin{macrocode}
+%<*2ekernel|latexrelease>
+% \end{macrocode}
+% \begin{macrocode}
+\ExplSyntaxOn
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<@@=property>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<latexrelease>\NewModuleRelease{2023/11/01}{ltproperties}
+%<latexrelease> {Cross-referencing~properties}
+% \end{macrocode}
+%
+% The approach here is based closely on that from \pkg{zref}; separate out
+% lists of properties and the properties themselves, so the latter can be
+% used multiple times and in varying combinations.
+% However, not everything is a straight copy. Firstly,
+% we treat lists of properties as simple comma lists: that allows us to have
+% either saved or dynamic lists and to avoid another data structure. The cost
+% is that errors are detected at point-of-use, but in any real case that should
+% be true anyway (and is true for \tn{zref@labelbyprop} already). Secondly,
+% we allow properties to have
+% arbitrary names, as the code does not require them to tokenize as control
+% sequences.
+%
+% \begin{macro}{\property_new:nnnn, \property_gset:nnnn, \@@_gset:nnnn}
+% As properties can be reset, they are not constants. But they also have
+% various pieces of required data. So we use the same approach as color and
+% make them declarations. Data-wise, we need the detail of the implementation,
+% the default and a flag to show if the code works now or at shipout. This
+% last entry is done using text so needs a check. We could use a set of
+% |prop| here, but as we never need to map or copy the lists, we can gain
+% performance using the hash table approach.
+% \begin{macrocode}
+\cs_new_protected:Npn \property_new:nnnn #1#2#3#4
+ {
+ \cs_if_free:cTF { @@_code_ #1 : }
+ {
+ \exp_args:Nx \@@_gset:nnnn { \tl_to_str:n {#1} }
+ {#2} {#3} {#4}
+ }
+ {
+ \msg_error:nn { property }{ exists }{#1}
+ }
+ }
+\cs_new_protected:Npn \property_gset:nnnn #1#2#3#4
+ {
+ \@@_gset:xnnn { \tl_to_str:n {#1} }
+ {#2} {#3} {#4}
+ }
+\cs_new_protected:Npn \@@_gset:nnnn #1#2#3#4
+ {
+ \cs_gset:cpn { @@_code_ #1 : } {#4}
+ \tl_gclear_new:c { g_@@_default_ #1 _tl }
+ \tl_gset:cn { g_@@_default_ #1 _tl } {#3}
+ \bool_if_exist:cF { g_@@_shipout_ #1 _tl }
+ { \bool_new:c { g_@@_shipout_ #1 _tl } }
+ \str_case:nnF {#2}
+ {
+ { now } { { \bool_gset_false:c { g_@@_shipout_ #1 _tl } } }
+ { shipout }
+ { \bool_gset_true:c { g_@@_shipout_ #1 _tl } }
+ }
+ { \msg_error:nnnn { property } { unknown-setpoint } {#1} {#2} }
+ }
+\cs_generate_variant:Nn \@@_gset:nnnn {xnnn}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\NewProperty,\SetProperty}
+% For consistency we expand the property name, but this doesn't warant a
+% variant of the L3-commands.
+% \begin{macrocode}
+\cs_new_protected:Npn \NewProperty #1#2#3#4
+ {
+ \exp_args:Nx \property_new:nnnn {#1}{#2}{#3}{#4}
+ }
+\cs_new_protected:Npn \SetProperty #1#2#3#4
+ {
+ \exp_args:Nx \property_gset:nnnn {#1}{#2}{#3}{#4}
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\property_record:nN}
+% \begin{macro}
+% {
+% \property_record:nn,
+% \property_record:nV,
+% \property_record:xx,
+% \@@_record:nn,
+% \@@_record:xn
+% }
+% \begin{macro}[EXP]
+% {\@@_record_value:n, \@@_record_value_aux:n, \@@_record_value_aux:e}
+% Writing data when it is labelled means expanding at this stage and possibly
+% later too. That is all pretty easy using \pkg{expl3}: we accept a stray
+% comma at the end of the list as that is easier to deal with than trying
+% to tidy up, and there is no real downside.
+% \begin{macrocode}
+\cs_new_protected:Npn \property_record:nN #1#2
+ { \property_record:nV {#1} #2 }
+\cs_new_protected:Npn \property_record:nn #1#2
+ { \@@_record:xn { \tl_to_str:n {#1} } {#2} }
+\cs_generate_variant:Nn \property_record:nn { nV , xx }
+\cs_new_protected:Npn \@@_record:nn #1#2
+ {
+ \legacy_if:nT { @filesw }
+ {
+ \iow_shipout_x:Nx \@auxout
+ {
+ \token_to_str:N \new@label@record
+ {#1}
+ { \clist_map_function:nN {#2} \@@_record_value:n }
+ }
+ }
+ }
+\cs_generate_variant:Nn \@@_record:nn { x }
+\cs_new:Npn \@@_record_value:n #1
+ { \@@_record_value_aux:e { \tl_to_str:n {#1} } }
+\cs_new:Npn \@@_record_value_aux:n #1
+ {
+ \cs_if_exist:cTF { @@_code_ #1 : }
+ {
+ {#1}
+ {
+ \bool_if:cTF { g_@@_shipout_ #1 _tl }
+ { \exp_not:c }
+ { \use:c }
+ { @@_code_ #1 : }
+ }
+ }
+ { \msg_expandable_error:nnn { property } { not-declared } {#1} }
+ }
+\cs_generate_variant:Nn \@@_record_value_aux:n { e }
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\RecordProperties}
+% \begin{macrocode}
+\NewDocumentCommand\RecordProperties { m m }
+ {
+ \@bsphack
+ \property_record:xx {#1}{#2}
+ \@esphack
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Reference commands}
+%
+% \begin{variable}{ l_@@_ref_flag }
+% A flag that is set if a reference couldn't be resolved.
+% \begin{macrocode}
+\flag_new:n { l_@@_ref_flag }
+% \end{macrocode}
+% \end{variable}
+%
+% \begin{macro}[EXP]{\property_ref:nn,\property_ref:ee}
+% Search for the label/property combination, and if not found fall back
+% to the default of the property.
+% \begin{macrocode}
+\cs_new:Npn \property_ref:nn #1#2
+ {
+ \@@_ref:een
+ { \tl_to_str:n {#1} }
+ { \tl_to_str:n {#2} }
+ { \tl_use:c { g_@@_default_ #2 _tl } }
+ }
+\cs_generate_variant:Nn \property_ref:nn {ee}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}[EXP]{\property_ref:nnn,\property_ref:een, \@@_ref:nnn, \@@_ref:een}
+% This allows to set a local default value which overrides the default value
+% of the property.
+% \begin{macrocode}
+\cs_new:Npn \property_ref:nnn #1#2#3
+ {
+ \@@_ref:een
+ { \tl_to_str:n {#1} }
+ { \tl_to_str:n {#2} }
+ {#3}
+ }
+\cs_new:Npn \@@_ref:nnn #1#2#3
+ {
+ \tl_if_exist:cTF { g_@@_label_ #1 _ #2 _tl }
+ { \tl_use:c { g_@@_label_ #1 _ #2 _tl } }
+ {
+ \flag_if_raised:nF
+ { l_@@_ref_flag } { \flag_raise:n { l_@@_ref_flag } }
+% \end{macrocode}
+% We test for the default of the property only to check if the property has
+% been declared.
+% \begin{macrocode}
+ \tl_if_exist:cTF { g_@@_default_ #2 _tl }
+ { #3 }
+ { \msg_expandable_error:nnn { property } { not-declared } {#2} }
+ }
+ }
+\cs_generate_variant:Nn \@@_ref:nnn { ee }
+\cs_generate_variant:Nn \property_ref:nnn {een}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}[EXP]{\RefProperty}
+% Search for the label/property combination, and if not found fall back
+% to the default of the property or the given default.
+% \begin{macrocode}
+\NewExpandableDocumentCommand \RefProperty { o m m }
+ {
+ \IfNoValueTF {#1}
+ {
+ \property_ref:ee {#2}{#3}
+ }
+ {
+ \property_ref:een {#2}{#3}{#1}
+ }
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\new@label@record}
+% \begin{macro}{\@@_data:nnn}
+% A standard recursion loop.
+% \begin{macrocode}
+\cs_new_protected:Npn \new@label@record #1#2
+ {
+ \tl_if_exist:cTF { r@#1 }
+ {
+ \gdef \@multiplelabels
+ { \@latex@warning@no@line { There~were~multiply-defined~labels } }
+ \@latex@warning@no@line { Label~`#1'~multiply~defined }
+ }
+ {
+ \tl_new:c { r@#1 }
+ \tl_gset:cn { r@#1 }{#2}
+ }
+ \@@_data:nnn {#1} #2 { \q_recursion_tail } { ? } \q_recursion_stop
+ }
+\cs_new_protected:Npn \@@_data:nnn #1#2#3
+ {
+ \quark_if_recursion_tail_stop:n {#2}
+ \tl_gclear_new:c { g_@@_label_ \tl_to_str:n {#1} _ \tl_to_str:n {#2} _tl }
+ \tl_gset:cn { g_@@_label_ \tl_to_str:n {#1} _ \tl_to_str:n {#2} _tl } {#3}
+ \@@_data:nnn {#1}
+ }
+% \end{macrocode}
+%
+% This command is used in \cs{enddocument} to test if some label values have changed.
+% \begin{macrocode}
+\cs_new_protected:Npn \@kernel@new@label@record@testdef #1 #2
+ {
+ \tl_if_eq:cnF { r@#1 } {#2}
+ { \@tempswatrue }
+ }
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \subsection{Tests and warnings}
+%
+% \begin{macro}[pTF]{\property_if_exist:n}
+% Tests if property has been declared.
+% \begin{macrocode}
+\prg_new_conditional:Npnn \property_if_exist:n #1 { p , T , F, TF }
+ % #1 property
+ {
+ \cs_if_exist:cTF { @@_code_ #1 : }
+ {
+ \prg_return_true:
+ }
+ {
+ \prg_return_false:
+ }
+ }
+\prg_generate_conditional_variant:Nnn \property_if_exist:n {e} {TF}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{IfPropertyExistTF}
+% \begin{macrocode}
+\cs_new_eq:NN \IfPropertyExistTF \property_if_exist:eTF
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}[pTF]{\property_if_recorded:n}
+% Tests if the label has been set.
+% This can then be used to setup e.g.~rerun messages.
+% \begin{macrocode}
+\prg_new_conditional:Npnn \property_if_recorded:n #1 { p , T , F, TF }
+ % #1 label
+ {
+ \tl_if_exist:cTF { r@#1 }
+ {
+ \prg_return_true:
+ }
+ {
+ \prg_return_false:
+ }
+ }
+\prg_generate_conditional_variant:Nnn \property_if_recorded:n {e} {TF}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\IfLabelExistTF}
+% \begin{macrocode}
+\cs_new_eq:NN \IfLabelExistTF \property_if_recorded:eTF
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}[pTF]{\property_if_recorded:nn}
+% tests if the label/property combination has been set
+% This can then be used to setup e.g.~rerun messages.
+% \begin{macrocode}
+\prg_new_conditional:Npnn \property_if_recorded:nn #1#2 { p , T , F, TF }
+ % #1 label #2 property
+ {
+ \tl_if_exist:cTF { g_@@_label_ \tl_to_str:n {#1} _ \tl_to_str:n {#2} _tl }
+ {
+ \prg_return_true:
+ }
+ {
+ \prg_return_false:
+ }
+ }
+\prg_generate_conditional_variant:Nnn \property_if_recorded:nn {ee} {TF}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\IfPropertyRecordedTF}
+% \begin{macrocode}
+\cs_new_eq:NN \IfPropertyRecordedTF \property_if_recorded:eeTF
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\property_ref_undefined_warn:}
+% \cs{G@refundefinedtrue} is defined in \texttt{ltxref} and redefines a warning message.
+% \begin{macrocode}
+\cs_new_protected:Npn \property_ref_undefined_warn:
+ {
+ \flag_if_raised:nT { l_@@_ref_flag }
+ {
+ \G@refundefinedtrue
+ }
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\property_ref_undefined_warn:n}
+% \begin{macrocode}
+\cs_new_protected:Npn \property_ref_undefined_warn:n #1 %#1 label
+ {
+ \property_if_recorded:nF {#1}
+ {
+ \G@refundefinedtrue
+ \@latex@warning{Reference~`#1'~on~page~\thepage\space undefined}%
+ }
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\property_ref_undefined_warn:nn,
+% \property_ref_undefined_warn:xx,
+% \RefUndefinedWarn}
+% \begin{macrocode}
+\cs_new_protected:Npn \property_ref_undefined_warn:nn #1#2 %#1 label, #2 property
+ {
+ \property_if_recorded:nTF {#1}
+ {
+ \property_if_recorded:nnF {#1}{#2}
+ {
+ \G@refundefinedtrue
+ \@latex@warning
+ { Property~`#2'~undefined~for~reference~`#1'~on~page~\thepage }
+ }
+ }
+ {
+ \G@refundefinedtrue
+ \@latex@warning { Reference~`#1'~on~page~\thepage\space undefined }%
+ }
+ }
+\cs_generate_variant:Nn \property_ref_undefined_warn:nn {xx}
+\cs_set_eq:NN \RefUndefinedWarn \property_ref_undefined_warn:xx
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Predeclared properties}
+%
+% \begin{variable}{abspage}
+% \begin{macrocode}
+\property_new:nnnn { abspage } { shipout }
+ { 0 } { \int_use:N \g_shipout_readonly_int }
+% \end{macrocode}
+% \end{variable}
+%
+% \begin{variable}{page}
+% \begin{macrocode}
+\property_new:nnnn { page } { shipout } { 0 } { \thepage }
+% \end{macrocode}
+% \end{variable}
+%
+% \begin{variable}{pagenum}
+% \begin{macrocode}
+\property_new:nnnn { pagenum } { shipout } { 0 } { \the \value { page } }
+% \end{macrocode}
+% \end{variable}
+%
+% \begin{variable}{currentlabel}
+% \begin{macrocode}
+\property_new:nnnn { currentlabel } { now } { ?? } { \@currentlabel }
+% \end{macrocode}
+% \end{variable}
+%
+% \begin{variable}{title}
+% \begin{macrocode}
+\property_new:nnnn { title } { now }
+ { \exp_not:n { \textbf { ?? } } } { \@currentlabelname }
+% \end{macrocode}
+% \end{variable}
+%
+% \begin{variable}{target}
+% \begin{macrocode}
+\property_new:nnnn { target } { now } { } { \@currentHref }
+% \end{macrocode}
+% \end{variable}
+%
+% \begin{variable}{counter}
+% \begin{macrocode}
+\property_new:nnnn { counter } { now } { } { \@currentcounter }
+% \end{macrocode}
+% \end{variable}
+%
+% \begin{variable}{xpos,ypos}
+% \begin{macrocode}
+\property_new:nnnn { xpos } { shipout } { 0} { \int_use:N \tex_lastxpos:D }
+\property_new:nnnn { ypos } { shipout } { 0} { \int_use:N \tex_lastypos:D }
+% \end{macrocode}
+% \end{variable}
+%
+% \subsection{Messages}
+% \begin{macrocode}
+\msg_new:nnnn { property } { exists }
+ { Property~'#1'~ has~ already~ been~ declared. }
+ { There~ already~ exists~ a~ property~ declaration~ with~ this~
+ name.\\
+ Please~ use~ a~ different~ name~ for~ your~ property.}
+
+\msg_new:nnnn { property } { not-declared }
+ { Property~'#1'~not~declared. }
+ {
+ LaTeX~has~been~asked~to~use~property~'#1',~but~this~
+ name~has~not~been~declared.
+ }
+\msg_new:nnnn { property } { unknown-setpoint }
+ { Unknown~keyword~'#2'~for~setting~property~'#1'. }
+ {
+ LaTeX~has~been~asked~to~set~the~property~'#1',~but~the~keyword~
+ '#2'~is~not~one~of~the~two~known~values:~'now'~or~'shipout'.
+ }
+% \end{macrocode}
+%
+% \begin{macrocode}
+%
+%<latexrelease>\IncludeInRelease{0000/00/00}{ltproperties}
+%<latexrelease> {cross-referencing~properties~(undo)}%
+%<latexrelease>
+%<latexrelease>\let \NewProperty \@undefined
+%<latexrelease>\let \SetProperty \@undefined
+%<latexrelease>
+%<latexrelease>\let \RecordProperties \@undefined
+%<latexrelease>\let \RefProperty \@undefined
+%<latexrelease>\let \RefUndefinedWarn \@undefined
+%<latexrelease>
+%<latexrelease>\let \IfPropertyExistTF \@undefined
+%<latexrelease>\let \IfLabelExistTF \@undefined
+%<latexrelease>\let \IfPropertyRecordedTF \@undefined
+%<latexrelease>
+%<latexrelease>\let\new@label@record \@undefined
+%<latexrelease>\let\@kernel@new@label@record@testdef\@undefined
+%<latexrelease>\EndModuleRelease
+% \end{macrocode}
+%
+% \begin{macrocode}
+\ExplSyntaxOff
+% \end{macrocode}
+%
+% \begin{macrocode}
+%</2ekernel|latexrelease>
+% \end{macrocode}
+%
+% Reset module prefix:
+% \begin{macrocode}
+%<@@=>
+% \end{macrocode}
+%
+%
+% \end{implementation}
+%
+% \Finale
diff --git a/macros/latex-dev/base/ltshipout-code.pdf b/macros/latex-dev/base/ltshipout-code.pdf
index a2b9753e1d..ff0e6d4c2b 100644
--- a/macros/latex-dev/base/ltshipout-code.pdf
+++ b/macros/latex-dev/base/ltshipout-code.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltshipout-doc.pdf b/macros/latex-dev/base/ltshipout-doc.pdf
index 747936c204..bf58bd09b9 100644
--- a/macros/latex-dev/base/ltshipout-doc.pdf
+++ b/macros/latex-dev/base/ltshipout-doc.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltsockets-code.pdf b/macros/latex-dev/base/ltsockets-code.pdf
new file mode 100644
index 0000000000..82ccada409
--- /dev/null
+++ b/macros/latex-dev/base/ltsockets-code.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltsockets-code.tex b/macros/latex-dev/base/ltsockets-code.tex
new file mode 100644
index 0000000000..82ca0b059b
--- /dev/null
+++ b/macros/latex-dev/base/ltsockets-code.tex
@@ -0,0 +1,5 @@
+% This will typeset documentation + code
+%
+
+\AtBeginDocument{\AlsoImplementation}
+\input{ltsockets.dtx}
diff --git a/macros/latex-dev/base/ltsockets-doc.pdf b/macros/latex-dev/base/ltsockets-doc.pdf
new file mode 100644
index 0000000000..0d32f64a1d
--- /dev/null
+++ b/macros/latex-dev/base/ltsockets-doc.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltsockets-doc.tex b/macros/latex-dev/base/ltsockets-doc.tex
new file mode 100644
index 0000000000..c181fbb3cc
--- /dev/null
+++ b/macros/latex-dev/base/ltsockets-doc.tex
@@ -0,0 +1,8 @@
+% This will typeset only documentation but not the code
+%
+
+\AtBeginDocument{\OnlyDescription
+% \let\tableofcontents\relax
+ \RenewCommandCopy\MaybeStop\StopEventually
+ }
+\input{ltsockets.dtx}
diff --git a/macros/latex-dev/base/ltsockets.dtx b/macros/latex-dev/base/ltsockets.dtx
new file mode 100644
index 0000000000..7d2940f454
--- /dev/null
+++ b/macros/latex-dev/base/ltsockets.dtx
@@ -0,0 +1,1069 @@
+% \iffalse meta-comment
+%
+% Copyright (C) 2023
+% Frank Mittelbach, The LaTeX Project
+%
+% 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
+%
+% \iffalse
+%
+%%% From File: ltsockets.dtx
+%
+% \begin{macrocode}
+\def\ltsocketsversion{0.9a}
+\def\ltsocketsdate{2023-08-21}
+% \end{macrocode}
+%
+%<*driver>
+\documentclass{l3doc}
+
+
+\providecommand\InternalDetectionOff{}
+\providecommand\InternalDetectionOn{}
+
+\EnableCrossrefs
+\CodelineIndex
+\begin{document}
+ \DocInput{ltsockets.dtx}
+\end{document}
+%</driver>
+%
+% \fi
+%
+%
+%
+%
+% \title{\LaTeX{}'s socket management\thanks{This module has version
+% \ltsocketsversion\ dated \ltsocketsdate, \copyright\ \LaTeX\
+% Project.}}
+%
+% \author{Frank Mittelbach}
+%
+% \maketitle
+%
+% ^^A this needs some cleanup:
+% \long\def\fmi#1{\begin{quote} TODO: \itshape #1\end{quote}}
+%
+% \providecommand\pkg[1]{\texttt{#1}}
+% \providecommand\hook[1]{\texttt{#1}}
+% \providecommand\env[1]{\texttt{#1}}
+% \providecommand\plug[1]{\texttt{#1}}
+% \providecommand\socket[1]{\texttt{#1}}
+%
+%
+% \begin{abstract}
+% This code implements sockets which are places in the code into
+% which predeclared chunks of code (plugs) can be placed. Both the sockets
+% and the plugs are \enquote{named} and each socket is
+% assigned exactly one plug at any given time.
+% \end{abstract}
+%
+% \tableofcontents
+%
+% \section{Introduction}
+%
+% A \LaTeX{} source file is transformed into a typeset document by
+% executing code for each command or environment in the document
+% source. Through various steps this code transforms the input and
+% eventually generates typeset output appearing in a \enquote{galley}
+% from which individual pages are cut off in an asyncronous way. This
+% page generating process is normally not directly associated with
+% commands in the input\footnote{Excepts for directives such as
+% \cs{newpage}.} but is triggered whenever the galley has received
+% enough material to form another page (giving current settings).
+%
+% As part of this transformation input data may get stored in some form
+% and later reused, for example, as part of the output routine
+% processing.
+%
+% \section{Configuration of the transformation process}
+%
+% There are three different major methods offered by \LaTeX{} to
+% configure the transformation process:
+% \begin{itemize}
+% \item through the template mechanism,
+% \item through the hook mechanism, or
+% \item through sockets and plugs.
+% \end{itemize}
+% They offer different possibilities (with different features and
+% limitations) and are intended for specific use cases, though it is
+% possible to combine them.
+%
+% \subsection{The template mechanism}
+%
+% The template mechanism is intended for more complex document-level
+% elements (e.g., headings such as \verb=\section= or environments like
+% \env{itemize}). The template code implements the overall processing
+% logic for such an element and offers a set of parameters to influence
+% the final result.
+%
+% The document element is then implemented by (a) selecting a suitable
+% template (there may be more than one available for the kind of
+% document element) and (b) by setting its parameters to desired
+% values. This then forms a so-called instance which is executed when
+% the document element is found in the source.
+%
+% By altering the parameter values (in a document class or in the
+% document preamble) or, if more drastic layout changes are desired, by
+% selecting a different template and then adjusting its parameters, a
+% wide variety of layouts can be realized through simple configuration
+% setups without the need to develop new code.
+%
+% The target audience of this method are therefore document class
+% developers or users who wish to alter an existing layout (implemented
+% by a document class) in certain (minor) ways.
+%
+% The template mechanism is currently documented as part of the
+% \pkg{xtemplate} package and one more elaborate implementation can be
+% found as part of the \texttt{latex-lab} code for lists (to be
+% documented further).
+%
+% \subsection{The hook mechanism}
+%
+% Hooks are places in the kernel code (or in packages) that offer
+% packages the possibility to inject additional code at specific
+% points in the processing in a controlled way without the need to
+% replace the existing code block (and thereby overwriting
+% modifications/extensions made by other packages). The target
+% audience is therefore mainly package developers, even though some
+% hooks can be useful for document authors.
+%
+% Obviously, what can reasonably be added into a hook depends on the
+% individual hook (hopefully documented as part of the hook
+% documentation), but in general the idea behind hooks is that more
+% than one package could add code into the hook at the same
+% time. Perhaps the most famous hook (that \LaTeX{} had for a very
+% long time) is \hook{begindocument} into which many packages add code
+% to through \cs{AtBeginDocument}\marg{code} (which is nowadays
+% implemented as a shorthand for
+% \cs{AddToHook}\texttt{\{\hook{begindocument}\}}\marg{code}). To
+% resolve possible conflicts between injections by different packages
+% there is a rule mechanism by which code chunks in a hook can be
+% ordered in a certain way and by which incompatible packages can be
+% detected if a resolution is impossible.
+%
+% In contrast to template code, there is no standard configuration
+% method through parameters for hooks, i.e., the code added to a hook
+% \enquote{is} the configuration. If it wants to provide for
+% configuration through parameters it has to also provide its own
+% method to set such parameters in some way. However, in that case it
+% is likely that using a hook is not the right approach and the
+% developer better calls a template instance instead which then offers
+% configuration through a key/value interface.
+%
+% In most cases, hooks do not take any arguments as input. Instead, the data
+% that they can (and are allowed to) access depends on the surrounding
+% context.
+%
+% For example, the various hooks available during the page shipout
+% process in \LaTeX's output routine can (and have to) access the
+% accumulated page material stored in a box named
+% \verb=\ShipoutBox=. This way, code added to, say, the
+% \hook{shipout/before} hook could access the page content, alter it,
+% and then write it back into \verb=\ShipoutBox= and any other code
+% added to this hook could then operate on the modified content. Of
+% course, for such a scheme to work the code prior to executing the hook
+% would need to setup up data in appropriate places and the hook
+% documentation would need to document what kind of storage can be
+% accessed (and possibly altered) by the hook.
+%
+% There are also hooks that take arguments (typically portions of
+% document data) and in that case the hook code can access these
+% arguments through \verb=#1=, \verb=#2=, etc.
+%
+% The hook mechanism is documented in \texttt{lthooks-doc.pdf}.
+%
+%
+%
+% \subsection{The socket mechanism}
+%
+% In some cases there is code that implements a certain programming
+% logic (for example, combining footnotes, floats, and the text for the
+% current page to be shipped out) and if this logic should change (e.g.,
+% footnotes to be placed above bottom floats instead of below) then this
+% whole code block needs to be replaced with different code.
+%
+% In theory, this could be implemented with templates, i.e., the code
+% simply calls some instance that implements the logic and that instance
+% is altered by selecting a different templates and/or adjusting their
+% parameters. However, in many cases customization through parameters is
+% overkill in such a case (or otherwise awkward, because paramerization
+% is better done on a higher level instead of individually for small
+% blocks of code) and using the template mechanism just to replace one
+% block of code with a different one results in a fairly high
+% performance hit. It is therefore usually not a good choice.
+%
+% In theory, it would also be possible to use a hook, but again that is
+% basically a misuse of the concept, because in this use case there should
+% never be more than one block of code inside the hook; thus, to alter
+% the processing logic one would need to set up rules that replace code
+% rather than (as intended) execute all code added to the hook.
+%
+%
+%
+% For this reason \LaTeX{} now offers a third mechanism:
+% \enquote{sockets} into which one can place exactly one code block
+% --- a \enquote{plug}.
+%
+% In a nutshell: instead of having a fixed code block somewhere as part
+% of the code, implementing a certain programming logic there is a
+% reference to a named socket at this point.
+% This is done by first declaring the named socket with:
+% \begin{quote}
+% \cs{NewSocket}\marg{socket-name}\marg{number-of-inputs}
+% \end{quote}
+% This is then referenced at the point where the replaceable code block
+% should be executed with:
+% \begin{quote}
+% \cs{UseSocket}\marg{socket-name}
+% \end{quote}
+% or, if the socket should take a number of inputs (additional
+% arguments beside the name) with
+% \begin{quote}
+% \cs{UseSocket}\marg{socket-name}\marg{arg\textsubscript{1}}\ldots
+% \marg{arg\textsubscript{\meta{number-of-inputs}}}
+% \end{quote}
+%
+% In addition, several code blocks (a.k.a.\ plugs) implementing different logic for this
+% socket are set up, each with a declaration of the form:
+% \begin{quote}
+% \cs{NewSocketPlug}\marg{socket-name}\marg{socket-plug-name}\marg{code}
+% \end{quote}
+% Finally,
+% one of them is assigned to the socket:
+% \begin{quote}
+% \cs{AssignSocketPlug}\marg{socket-name}\marg{socket-plug-name}
+% \end{quote}
+% If the programming logic should change, then all that is necessary is
+% to make a new assignment with \cs{AssignSocketPlug} to a different
+% \marg{socket-plug-name}. This assignment obeys scope so that an
+% environment can alter a socket without the need to restore the
+% previous setting manually.
+%
+% If the socket takes inputs, then those need to be provided to
+% \cs{UseSocket} and in that case they can be referenced in the \meta{code}
+% argument of \cs{NewSocketPlug} with \verb=#1=, \verb=#2=, etc.
+%
+% In most cases a named socket is used only in a single place, but there
+% is, of course, nothing wrong with using it in several places, as long
+% as the code in all places is supposed to change in the same way.
+%
+%
+%
+%
+%
+% \subsubsection{Examples}
+%
+%
+% We start by declaring a new socket named \socket{foo} that expects
+% two inputs:
+%\begin{verbatim}
+% \NewSocket{foo}{2}
+%\end{verbatim}
+% \NewSocket{foo}{2}
+%
+% Such a declaration has do be unique across the whole \LaTeX{}
+% run. Thus, if another package attempts to use the same name
+% (regardless of the number of inputs) it will generate an error:
+%\begin{verbatim}
+% \NewSocket{foo}{2}
+% \NewSocket{foo}{1}
+% \end{verbatim}
+% Both declarations would therefore produce:
+% \begin{verbatim}
+% ! LaTeX socket Error: Socket 'foo' already declared!
+%\end{verbatim}
+%
+% You also get an error if you attempt to declare some socket plug and
+% the socket name is not yet declared, e.g.,
+%\begin{verbatim}
+% \NewSocketPlug{baz}{undeclared}{some code}
+%\end{verbatim}
+% generates
+%\begin{verbatim}
+% ! LaTeX socket Error: Socket 'baz' undeclared!
+%\end{verbatim}
+%
+%
+% Setting up plugs for the socket is done like this:
+%\begin{verbatim}
+% \NewSocketPlug{foo}{plug-A}
+% {\begin{quote}\itshape foo-A: #1!#2\end{quote}}
+% \NewSocketPlug{foo}{plug-B}
+% {\begin{quote}\sffamily foo-B: #2\textsuperscript{2}\end{quote}}
+%\end{verbatim}
+% This will set up the plugs \texttt{plug-A} and \texttt{plug-B} for
+% this socket.
+%
+%\NewSocketPlug{foo}{plug-A}{\begin{quote}\itshape foo-A: #1!#2\end{quote}}
+%\NewSocketPlug{foo}{plug-B}{\begin{quote}\sffamily foo-B: #2\textsuperscript{2}\end{quote}}
+%
+% We still have to assign one or the other to the socket, thus without
+% doing that the line
+% \begin{verbatim}
+% \UseSocket{foo}{hello}{world}
+% \end{verbatim}
+% produces nothing because the default plug for sockets with 2 inputs
+% is \plug{noop} (which grabs the additional arguments and throws them
+% away).\footnote{If socket \socket{foo} would have been a socket with one
+% input, then the default plug would be \plug{identity}, in which case
+% the socket input would remain without braces and gets typeset!}
+%
+% \UseSocket{foo}{hello}{world} ^^A nothing happens
+%
+% So let's do the assignment
+% \begin{verbatim}
+% \AssignSocketPlug{foo}{plug-A}
+% \end{verbatim}
+% and then
+% \begin{verbatim}
+% \UseSocket{foo}{hello}{world}
+% \end{verbatim}
+% will properly typeset
+% \AssignSocketPlug{foo}{plug-A}\UseSocket{foo}{hello}{world}
+% and after
+% \begin{verbatim}
+% \AssignSocketPlug{foo}{plug-B}
+% \end{verbatim}
+% and another call to
+% \begin{verbatim}
+% \UseSocket{foo}{hello}{world}
+% \end{verbatim}
+% we get
+% \AssignSocketPlug{foo}{plug-B}\UseSocket{foo}{hello}{world}
+%
+% If we attempt to assign a plug that was not defined, e.g.,
+% \begin{verbatim}
+% \AssignSocketPlug{foo}{plug-C}
+% \end{verbatim}
+% then we get an error during the assignment
+% \begin{verbatim}
+% ! LaTeX socket Error: Plug 'plug-C' for socket 'foo' undeclared!
+% \end{verbatim}
+% and the previous assignment remains in place.
+%
+% To see what is known about a socket and its plugs you can use
+% \cs{ShowSocket} or \cs{LogSocket} which displays information similar
+% to this on the terminal or in the transcript file:
+% \begin{verbatim}
+% Socket foo:
+% number of inputs = 2
+% available plugs = noop, plug-A, plug-B
+% current plug = plug-B
+% definition = \protected\long macro:#1#2->\begin {quote}\sffamily
+% foo-B: #2\textsuperscript {2}\end {quote}
+% \end{verbatim}
+% \LogSocket{foo}
+%
+%
+% \subsubsection{Details and semantics}
+%
+% In this section we collect some normative statements.
+%
+% \begin{itemize}
+%
+% \item
+% From a functional point of view sockets are like simple \TeX{} macros,
+% i.e., they expect 0 to 9 mandatory arguments (the socket inputs) and get replaced by
+% their \enquote{expansion}
+%
+% \item
+% A socket is \enquote{named} and the name consists of ASCII letters
+% \texttt{[a-z]},
+% \texttt{[A-Z]}, \texttt{[0-9]}, \texttt{[-/@]} only
+%
+% \item
+% Socket names have to be unique, i.e., there can be only one socket
+% named \meta{name}. This is ensured by declaring each socket with
+% \cs{NewSocket}.
+%
+% However, there is no requirement that sockets and
+% hook names have to be different. In fact, if a certain action that
+% could overwise be specified as hook code has to be executed always
+% last (or first) one could ensure this by placing a socket (single
+% action) after a hook (or vice versa) and using the same name to
+% indicate the relationship, e.g.,
+%\begin{verbatim}
+% \UseHook{foo} % different package can add code here
+% \UseSocket{foo} % only one package can assign a plug
+%\end{verbatim}
+% This avoids the need to order the hook code to ensure that
+% something is always last.
+%
+% \item
+% Best practice naming conventions are \ldots\ \emph{to be documented}
+%
+% \item
+% A socket has documented inputs which are
+%
+% \begin{itemize}
+% \item
+% the positional arguments (if any) with a description of what
+% they contain when used
+%
+% \item
+% implicit data (registers and other 2e/expl3 data stores) that
+% the socket is allowed to make use of, with a documented description
+% of what they contain (if relevant for the task at hand---no need to
+% describe the whole \LaTeX{} universe)
+%
+% \item
+% information about the state of the \TeX{} engine (again when
+% relevant), e.g. is called in mmode or vmode or in the output routine or \ldots
+%
+% \item
+% \ldots\ \empty{anything missing?}
+% \end{itemize}
+%
+%
+% \item
+% A socket has documented results/outputs which can be
+%
+% \begin{itemize}
+% \item
+% what kind of data it should write to the current list (if that
+% is part of its task)
+%
+% \item
+% what kind of registers and other 2e/expl3 data stores it should
+% modify and in what way
+%
+% \item
+% what kind of state changes it should do (if any)
+%
+% \item
+% \emph{\ldots\ anything else?}
+% \end{itemize}
+%
+% \item
+%
+% At any time a socket has one block of code (a plug \iffalse(\fi:-)\,)
+% associated with it. Such code is itself named and the association
+% is done by linking the socket name to the code name (putting a
+% plug into the socket).
+%
+% \item
+%
+% The name of a plug consists of ASCII letters \texttt{[a-z]},
+% \texttt{[A-Z]}, \texttt{[0-9]}, \texttt{[-/@]} only.
+%
+% \item
+% Socket plug names have to be unique within on a per socket basis,
+% but it is perfectly allowed (and sensible in some cases) to use
+% the same plug name with different sockets (where based on the
+% sockets' purposes, different actions may be associated with the plug
+% name). For example \plug{noop} is a plug name declared for every
+% socket, yet it action \enquote{grab the socket inputs and throw
+% them away} obviously differs depending on how many inputs the
+% socket has.
+%
+% \item
+%
+% When declaring a plug it is stated for which socket it is meant
+% (i.e., its code can only be used with that socket). This means
+% that the same plug name can be used with different sockets
+% referring to different code in each case.
+%
+% \item
+% Configuration of a socket can only be done by
+% linking different code to it. Nevertheless the code linked to it can
+% provide its own means of configuration (but this is outside of the
+% spec).
+%
+% \item
+% Technically execution of a socket (\cs{UseSocket}) involves
+%
+% \begin{itemize}
+% \item
+% doing any house keeping (like writing debugging info, \ldots);
+%
+% \item
+% looking up the current code association (what plug is in the socket);
+%
+% \item
+% executing this code which will pick up the mandatory arguments
+% (happens at this point, not
+% before), i.e., it is like calling a csname defined with
+% \begin{verbatim}
+% \def\foo#1#2...{...#1...#2...}
+% \end{verbatim}
+%
+% \item
+% do some further house keeping (if needed).
+% \end{itemize}
+%
+% \item
+% A socket is typically only used in one place in code, but this is not
+% a requirement, i.e., if the same operation with the same inputs need
+% to be carried out in several places the same named socket can be used.
+%
+% \end{itemize}
+%
+%
+%
+%
+%
+% \subsubsection{Command syntax}
+%
+% We give both the \LaTeXe{} and the L3 programming layer command names.
+%
+% \begin{function}{\NewSocket,\socket_new:nn}
+% \begin{syntax}
+% \cs{NewSocket} \Arg{socket-name}\Arg{number-of-inputs}
+% \cs{socket_new:nn}\Arg{socket-name}\Arg{number-of-inputs}
+% \end{syntax}
+% Declares a new socket with name \meta{socket-name} having
+% \meta{number-of-inputs} inputs. There is automatically a
+% plug \plug{noop} declared for it, which does nothing, i.e., it gobbles
+% the socket inputs (if any). This is made the default plug except for
+% sockets with one input which additionally define the plug
+% \plug{identity} and assign that as their default.
+%
+% This \plug{identity} plug simply returns the socket input without
+% its outer braces.
+% The use case for this plug are situations like this:
+% \begin{quote}
+% \cs{UseSocket}\verb={tagsupport/footnote}=\Arg{code}
+% \end{quote}
+% If tagging is not active and the socket contains the plug \plug{identity}
+% then this returns \meta{code} without the outer braces and to
+% activate tagging all that is necessary is to change the plug to
+% say \plug{tagpdf} so
+% that it surrounds \meta{code} by some tagging magic.
+% This is the most common use case for sockets with one input, which
+% is why they have this special default.
+%
+% The socket documentation should describe its purpose, its inputs and the
+% expected results as discussed above.
+%
+% The declaration is only allowed at top-level, i.e., not inside a group.
+% \end{function}
+%
+%
+% \begin{function}{\NewSocketPlug,\socket_new_plug:nnn,\socket_set_plug:nnn}
+% \begin{syntax}
+% \cs{NewSocketPlug} \Arg{socket-name}\Arg{socket-plug-name}\Arg{code}
+% \cs{socket_new_plug:nnn}\Arg{socket-name}\Arg{socket-plug-name}\Arg{code}
+% \cs{socket_set_plug:nnn}\Arg{socket-name}\Arg{socket-plug-name}\Arg{code}
+% \end{syntax}
+% Declares a new plug for socket \meta{socket-name} that runs
+% \meta{code} when executing. It complains if the plug was already
+% declared previously.
+%
+% The form \cs{socket_set_plug:nnn} changes an existing plug. As
+% this should normally not be necessary, we currently have only an L3
+% layer name for the few cases it might be useful.
+%
+% The declarations can be made inside a group and obey scope, i.e.,
+% they vanish if the group ends.
+% \end{function}
+%
+%
+% \begin{function}{\AssignSocketPlug,\socket_assign_plug:nn}
+% \begin{syntax}
+% \cs{AssignSocketPlug} \Arg{socket-name}\Arg{socket-plug-name}
+% \cs{socket_assign_plug:nn}\Arg{socket-name}\Arg{socket-plug-name}
+% \end{syntax}
+% Assigns the plug \meta{socket-plug-name} to the socket
+% \meta{socket-name}. It errors if either socket or plug is not
+% defined.
+%
+% The assignment is local, i.e., it obeys scope.
+% \end{function}
+%
+%
+% \begin{function}{\UseSocket,\socket_use:nw,\socket_use:n,\socket_use:nn,\socket_use:nnn,\socket_use:nnnn}
+% \begin{syntax}
+% \cs{UseSocket} \Arg{socket-name}
+% \cs{socket_use:nnn}\Arg{socket-name} \Arg{socket-arg\textsubscript{1}} \Arg{socket-arg\textsubscript{2}}
+% \end{syntax}
+% Executes the socket \meta{socket-name} by retrieving the
+% \meta{code} of the current plug assigned to the socket. This is
+% the only command that would appear inside macro code in packages.
+%
+% For performance reasons there is no explicit check that the socket
+% was declared!
+%
+% The different L3 programming layer commands are really doing the
+% same thing: they grab as many arguments as defined as inputs for the socket
+% and then pass them to the plug. The different names are only there
+% to make the code more readable, i.e., to indicate how many
+% arguments are grabbed in total (note that no runtime check is made to
+% verify that this is actually true). We only provide them for
+% sockets with up to 3 inputs (most likely those with zero or one input would
+% have been sufficient). If you happen to have a socket with more
+% inputs, use \cs{socket_use:nw}.
+% \end{function}
+%
+%
+% \begin{function}{\ShowSocket,\LogSocket,\socket_show:n,\socket_log:n}
+% \begin{syntax}
+% \cs{ShowSocket} \Arg{socket-name}
+% \cs{socket_show:n}\Arg{socket-name}
+% \end{syntax}
+% Displays information about the socket \meta{socket-name} and its
+% state then stops and waits for further instructions --- at the
+% moment some what rudimentary.
+%
+% \cs{LogSocket} and \cs{socket_log:n} only differ in that they don't stop.
+% \end{function}
+%
+%
+% \begin{function}{\DebugSocketsOn,\DebugSocketsOff,
+% \socket_debug_on:,\socket_debug_off:}
+% \begin{syntax}
+% \cs{DebugSocketsOn} \ldots\ \cs{DebugSocketsOff}
+% \end{syntax}
+% Turns debugging of sockets on or off.
+% \end{function}
+%
+% \subsubsection{Rationale for error handling}
+%
+% The errors during the declarations are produced to help with
+% typos---after all, such declarations might be part of a document
+% preamble (not that likely, but possible). However, \cs{UseSocket} is
+% not doing much checking, e.g.,
+% \begin{verbatim}
+% \UseSocket{mispelled-socket}{hello}{world}
+% \end{verbatim}
+% will generate a rather low-level error and then typesets
+% ``{hello}{world}'' because there is no dedicated runtime check if
+% \texttt{mispelled-socket} is a known socket.
+%
+% The reason is that if the misspelling is in the code, then this is a
+% programming error in the package and for speed reasons \LaTeX{} does
+% not repeately make runtime checks for coding errors unless they can or
+% are likely to be user introduced.
+%
+%
+% \MaybeStop{\setlength\IndexMin{200pt} \PrintIndex }
+%
+%
+% \section{The Implementation}
+%
+% The implementation of the socket mechanism should be (partially)
+% redone and we should probably store the different code chunks in
+% a property list so that we can have a decent \cs{ShowSocket}
+% command that shows the available alternatives.\fmi{implement?}
+%
+% \begin{macrocode}
+%<*2ekernel|latexrelease>
+% \end{macrocode}
+%
+% \begin{macrocode}
+\ExplSyntaxOn
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<@@=socket>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<latexrelease>\NewModuleRelease{2023/11/01}{ltsockets}
+%<latexrelease> {The~socket~management~system}
+% \end{macrocode}
+%
+%
+%
+% \subsection{Debugging the socket structures}
+%
+% Code and commands in this section are not final, it needs more
+% experimentation to see what kind of tracing information is going to
+% be useful in practice. For now the tracing is mainly meant to be used
+% for code testing and not so much for application testing.
+%
+% It is quite likely that the
+% commands and the behavior of the tracing might change in the
+% future once we gained some experience with it.
+%
+% \begin{macro}{\g_@@_debug_bool}
+% Holds the current debugging state.
+% \begin{macrocode}
+\bool_new:N \g_@@_debug_bool
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\socket_debug_on:,\socket_debug_off:}
+% \begin{macro}{\@@_debug:n, \@@_debug_term:n}
+% \begin{macro}{\@@_debug_gset:}
+% Turns debugging on and off by redefining \cs{@@_debug:n} and
+% \cs{@@_debug_term:n}. By default they do nothing.
+% \begin{macrocode}
+\cs_new_eq:NN \@@_debug:n \use_none:n
+\cs_new_eq:NN \@@_debug_term:n \use_none:n
+% \end{macrocode}
+%
+% \begin{macrocode}
+\cs_new_protected:Npn \socket_debug_on:
+ {
+ \bool_gset_true:N \g_@@_debug_bool
+ \@@_debug_gset:
+ }
+\cs_new_protected:Npn \socket_debug_off:
+ {
+ \bool_gset_false:N \g_@@_debug_bool
+ \@@_debug_gset:
+ }
+\cs_new_protected:Npn \@@_debug_gset:
+ {
+ \cs_gset_protected:Npx \@@_debug:n ##1
+ { \bool_if:NT \g_@@_debug_bool {##1} }
+ \cs_gset_protected:Npx \@@_debug_term:n ##1
+ { \bool_if:NT \g_@@_debug_bool
+ { \iow_term:x { ^^J [Sockets]~ ==>~ ##1} } }
+ }
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+%
+% \subsection{The L3 layer commands}
+%
+% \begin{macro}{\socket_new:nn}
+%
+% Declaring a socket creates a str to hold the name (a pointer) to the
+% code that should be used when the socket is executed, and an integer to
+% hold the number of inputs of that socket. Initially, an
+% ``empty'' code chunk is created and assigned so the socket
+% does nothing by default other than swallowing its inputs (if any).
+% \begin{macrocode}
+\cs_new_protected:Npn \socket_new:nn #1 #2 {
+ \str_if_exist:cTF { l_@@_#1_plug_str }
+ {
+ \msg_error:nnn { socket } { already-declared } {#1}
+ }
+ {
+% \end{macrocode}
+% We only support declarations on top-level.
+% \begin{macrocode}
+ \int_if_zero:nTF \tex_currentgrouplevel:D
+ {
+ \str_new:c { l_@@_#1_plug_str }
+ \seq_new:c { l_@@_#1_plugs_seq }
+ \int_const:cn { c_@@_#1_args_int } {#2}
+ \socket_new_plug:nnn {#1} { noop } {}
+ \int_compare:nNnTF {#2} = 1
+ {
+ \socket_new_plug:nnn {#1} { identity } {##1}
+ \socket_assign_plug:nn {#1} { identity }
+ }
+ { \socket_assign_plug:nn {#1} { noop } }
+ \@@_debug_term:n
+ { Socket~ '#1'~ declared~ with~ #2~ input(s) }
+ }
+ {
+ \msg_error:nn { socket } { not-top-level }
+ }
+ }
+}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\socket_log:n,\socket_show:n}
+% Show the current state of the socket --- for now this is just a
+% quick draft and should be redone and extended.
+% \begin{macrocode}
+\cs_new_protected:Npn \socket_log:n #1 {
+ \typeout{ Socket~ #1:}
+ \str_if_exist:cTF { l_@@_#1_plug_str }
+ {
+ \typeout{ \@spaces number~ of~ inputs~ =~
+ \int_use:c { c_@@_#1_args_int } }
+ \typeout{ \@spaces available~plugs~ =~
+ \seq_use:cnnn { l_@@_#1_plugs_seq }{,~}{,~}{,~} }
+ \typeout{ \@spaces current~ plug~ =~
+ \str_use:c { l_@@_#1_plug_str } }
+ \typeout{ \@spaces definition~ =~
+ \cs_meaning:c
+ { @@_#1_plug_ \str_use:c { l_@@_#1_plug_str } :w } }
+ \typeout{}
+ }
+ {
+% \end{macrocode}
+% If we are showing a socket it is not an error if it doesn't exist.
+% \begin{macrocode}
+ \typeout { Socket~ is~ not~ declared! }
+ }
+}
+% \end{macrocode}
+% And here the version that stops:
+% \begin{macrocode}
+\cs_new_protected:Npn \socket_show:n #1 {\socket_log:n {#1} \errmessage{}}
+% \end{macrocode}
+% \end{macro}
+%
+%
+%
+%
+%
+% \begin{macro}{\socket_new_plug:nnn,\socket_set_plug:nnn}
+%
+% Declaring a code for a socket is just making a definition, taking
+% the number of arguments from the saved int.
+% \begin{macrocode}
+\cs_new_protected:Npn \socket_new_plug:nnn #1#2#3 {
+ \str_if_exist:cTF { l_@@_#1_plug_str }
+ {
+ \cs_if_exist:cTF { @@_#1_plug_#2:w }
+ {
+ \msg_error:nnnn { socket } { plug-already-declared } {#1} {#2}
+ }
+ {
+ \cs_generate_from_arg_count:cNnn
+ { @@_#1_plug_#2:w }
+ \cs_new_protected:Npn
+ { \int_use:c { c_@@_#1_args_int } }
+ {#3}
+% \end{macrocode}
+% This is a new declaration so we add the name to a seq for the
+% debugging info.
+% \begin{macrocode}
+ \seq_put_right:cn { l_@@_#1_plugs_seq } {#2}
+ \@@_debug_term:n
+ { Plug~ '#2'~ for~ socket~ '#1'~ declared. }
+ }
+ }
+ {
+ \msg_error:nnn { socket } { undeclared } {#1}
+ }
+}
+% \end{macrocode}
+% Changing the plug of an existing socket is rather similar, except
+% that we don't have to deal with adding it to the debugging
+% sequence.
+% \begin{macrocode}
+\cs_new_protected:Npn \socket_set_plug:nnn #1#2#3 {
+ \str_if_exist:cTF { l_@@_#1_plug_str }
+ {
+ \cs_if_exist:cTF { @@_#1_plug_#2:w }
+ {
+ \cs_generate_from_arg_count:cNnn
+ { @@_#1_plug_#2:w }
+ \cs_set_protected:Npn
+ { \int_use:c { c_@@_#1_args_int } }
+ {#3}
+ \@@_debug_term:n
+ { Plug~ '#2'~ for~ socket~ '#1'~ changed. }
+ }
+ {
+ \msg_error:nnnn { socket } { plug-undeclared } {#1} {#2}
+ }
+ }
+ {
+ \msg_error:nnn { socket } { undeclared } {#1}
+ }
+}
+% \end{macrocode}
+% \end{macro}
+%
+%
+%
+% \begin{macro}{\socket_assign_plug:nn}
+%
+% Assigning a plug to a socket just changes the name in
+% the socket string. The assignment is local to the current group.
+% \begin{macrocode}
+\cs_new_protected:Npn \socket_assign_plug:nn #1 #2 {
+ \str_if_exist:cTF { l_@@_#1_plug_str }
+ {
+ \cs_if_exist:cTF { @@_#1_plug_#2:w }
+ {
+ \@@_debug_term:n
+ { Replacing~ plug~ '\str_use:c { l_@@_#1_plug_str }'~
+ with~ '#2'~ in~ socket~ '#1'. }
+ \str_set:cn { l_@@_#1_plug_str } {#2}
+ }
+ {
+ \msg_error:nnnn { socket } { plug-undeclared } {#1} {#2}
+ }
+ }
+ { \msg_error:nnn { socket } { undeclared } {#1} }
+}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\socket_use:nw,\socket_use:n,\socket_use:nn,\socket_use:nnn,\socket_use:nnnn}
+%
+% And using it is more or less a \cs{use:c} so very lightweight. We do not
+% add a runtime check for speed reasons!
+%
+% This command is named
+% \cs{socket_use:nw} because we don't know how many inputs the
+% socket has until we have looked at the socket name (in argument \verb=#1=).
+% But, of course, the developer knows so we also offer a few aliases
+% \cs{socket_use:nn}, etc.\ so that one can indicate the correct number of
+% arguments (socket inputs plus one) in the L3 layer code.
+%
+% \begin{macrocode}
+\cs_new_protected:Npn \socket_use:nw #1 {
+ \@@_debug_term:n
+ { Socket~ '#1'~ containing~ plug~
+ '\str_use:c { l_@@_#1_plug_str }'~ used. }
+ \use:c { @@_#1_plug_ \str_use:c { l_@@_#1_plug_str } :w }
+}
+% \end{macrocode}
+% To make code a bit more readable we also define functions that
+% indicate how many arguments are picked up. However, this is just for
+% code documentation: internally they all do the same and the number
+% of arguments isn't checked by default.
+% \begin{macrocode}
+\cs_new_eq:NN \socket_use:n \socket_use:nw % socket with no inputs
+\cs_new_eq:NN \socket_use:nn \socket_use:nw % socket with one input
+\cs_new_eq:NN \socket_use:nnn \socket_use:nw % socket with two inputs
+\cs_new_eq:NN \socket_use:nnnn \socket_use:nw % socket with three inputs
+% \end{macrocode}
+% The above commands could be changed to check how many inputs
+% the socket is declared with (for example, when checking is in
+% force).
+% \fmi{Implement?}
+% \end{macro}
+%
+%
+%
+%
+%
+%
+%
+% \subsection{Error messages}
+%
+
+%
+% \begin{macrocode}
+\msg_new:nnnn { socket } { already-declared }
+ { Socket~ '#1'~ already~ declared! }
+ { A~ socket~ can~ only~ be~ declared~ once.~ The~ name~ '#1'~ is~
+ already~ taken.~ Use~ \ShowSocket{#1}~ to~ see~ its~ definition. }
+
+\msg_new:nnnn { socket } { undeclared }
+ { Socket~ '#1'~ undeclared! }
+ { You~ tried~ to~ use~ a~ socket~ that~ was~ not~ declared~ before. }
+
+\msg_new:nnnn { socket } { not-top-level }
+ { Sockets~ can~ only~ be~ declared~ at~ top-level! }
+ { It~ is~ not~ allowed~ to~ declare~ sockets~ inside~ a~
+ group.~ Move~ the~ declaration~ to~ the~ top-level. }
+% \end{macrocode}
+%
+% \begin{macrocode}
+\msg_new:nnnn { socket } { plug-already-declared }
+ { Plug~ '#2'~ for~ socket~ '#1'~ already~ declared! }
+ { You~ can't~ change~ an~ existing~ plug~ with~ \NewSocketPlug~ and~ it~
+ is~ normally~ not~ sensible~ to~ do~ so.~ Use~ the~ L3~ programming~
+ layer~ function~ \socket_set_plug:nnn~ if~ you~ really~ have~ to. }
+
+\msg_new:nnnn { socket } { plug-undeclared }
+ { Plug~ '#2'~ for~ socket~ '#1'~ undeclared! }
+ { The~ plug~ name~ is~ unknown.~ Is~ the~ name~ misspelled~ or~ did~ you~
+ intend~ to~ assign~ it~ to~ a~ different~ socket? }
+% \end{macrocode}
+%
+% \begin{macrocode}
+\prop_gput:Nnn \g_msg_module_type_prop { socket } { LaTeX }
+% \end{macrocode}
+%
+%
+%
+%
+% \subsection{The \LaTeXe{} interface commands}
+%
+% \begin{macro}{\NewSocket,\NewSocketPlug,
+% \ShowSocket,\LogSocket,
+% \AssignSocketPlug,\UseSocket,
+% \DebugSocketsOn,\DebugSocketsOff}
+% As we expect that there are existing \LaTeXe{} packages that may
+% want to make use of the socket mechanism, we provide 2e names for
+% most of the commands.
+% \begin{macrocode}
+\cs_new_eq:NN \NewSocket \socket_new:nn
+\cs_new_eq:NN \ShowSocket \socket_show:n
+\cs_new_eq:NN \LogSocket \socket_log:n
+% \end{macrocode}
+%
+% \begin{macrocode}
+\cs_new_eq:NN \NewSocketPlug \socket_new_plug:nnn
+\cs_new_eq:NN \AssignSocketPlug \socket_assign_plug:nn
+\cs_new_eq:NN \UseSocket \socket_use:nw
+% \end{macrocode}
+%
+% \begin{macrocode}
+\cs_new_eq:NN \DebugSocketsOn \socket_debug_on:
+\cs_new_eq:NN \DebugSocketsOff \socket_debug_off:
+% \end{macrocode}
+% \end{macro}
+%
+%
+%
+% \begin{macrocode}
+%
+%<latexrelease>\IncludeInRelease{0000/00/00}{ltsockets}
+%<latexrelease> {The~socket~management~(undo)}%
+%<latexrelease>
+%<latexrelease>\let \NewSocket \@undefined
+%<latexrelease>\let \ShowSocket \@undefined
+%<latexrelease>\let \LogSocket \@undefined
+%<latexrelease>
+%<latexrelease>\let \NewSocketPlug \@undefined
+%<latexrelease>\let \AssignSocketPlug \@undefined
+%<latexrelease>\let \UseSocket \@undefined
+%<latexrelease>
+%<latexrelease>\let \DebugSocketsOn \@undefined
+%<latexrelease>\let \DebugSocketsOff \@undefined
+%<latexrelease>
+%<latexrelease>\EndModuleRelease
+% \end{macrocode}
+%
+% \begin{macrocode}
+\ExplSyntaxOff
+% \end{macrocode}
+%
+% \begin{macrocode}
+%</2ekernel|latexrelease>
+% \end{macrocode}
+%
+% Reset module prefix:
+% \begin{macrocode}
+%<@@=>
+% \end{macrocode}
+%
+%
+% \Finale
+%
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\endinput
+
+
+
+^^A Needed for emacs
+^^A
+^^A Local Variables:
+^^A mode: latex
+^^A coding: utf-8-unix
+^^A End:
+
+
+
diff --git a/macros/latex-dev/base/ltspace.dtx b/macros/latex-dev/base/ltspace.dtx
index a77314b1bd..66841cae38 100644
--- a/macros/latex-dev/base/ltspace.dtx
+++ b/macros/latex-dev/base/ltspace.dtx
@@ -32,7 +32,7 @@
%<*driver>
% \fi
\ProvidesFile{ltspace.dtx}
- [2023/05/26 v1.3p LaTeX Kernel (spacing)]
+ [2023/06/14 v1.3q LaTeX Kernel (spacing)]
% \iffalse
\documentclass{ltxdoc}
\GetFileInfo{ltspace.dtx}
@@ -1223,9 +1223,24 @@
% \end{macro}
% \end{macro}
%
+% \begin{macro}{\@xobeytab}
+% \changes{v1.3q}{2023/06/14}{Macro added}
+% Equivalent to the space case with the default settings.
% \begin{macrocode}
+%</2ekernel>
+%<latexrelease>\IncludeInRelease{2023/11/01}%
+%<latexrelease> {\@xobeytab}{Obeyed tabs}%
+%<*2ekernel|latexrelease>
+\let\@xobeytab\@xobeysp
+%</2ekernel|latexrelease>
+%<latexrelease>\EndIncludeInRelease
+%<latexrelease>\IncludeInRelease{0000/00/00}%
+%<latexrelease> {\@xobeytab}{Obeyed tabs}%
+%<latexrelease>\let\@xobeytab\@undefined
+%<latexrelease>\EndIncludeInRelease
+%<*2ekernel>
% \end{macrocode}
-%
+% \end{macro}
%
%
% \begin{macro}{\@}
diff --git a/macros/latex-dev/base/ltvers.dtx b/macros/latex-dev/base/ltvers.dtx
index 5b124febd9..5b78c3bc5e 100644
--- a/macros/latex-dev/base/ltvers.dtx
+++ b/macros/latex-dev/base/ltvers.dtx
@@ -115,7 +115,7 @@
{2023-11-01}
%</2ekernel|latexrelease>
%<*2ekernel>
-\def\patch@level{-0}
+\def\patch@level{-1}
% \end{macrocode}
%
% \begin{macro}{\development@branch@name}
diff --git a/macros/latex-dev/base/ltx3info.pdf b/macros/latex-dev/base/ltx3info.pdf
index b29a68a68a..d80998b77c 100644
--- a/macros/latex-dev/base/ltx3info.pdf
+++ b/macros/latex-dev/base/ltx3info.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltxdoc.pdf b/macros/latex-dev/base/ltxdoc.pdf
index 86b5710cf9..4acf824c6b 100644
--- a/macros/latex-dev/base/ltxdoc.pdf
+++ b/macros/latex-dev/base/ltxdoc.pdf
Binary files differ
diff --git a/macros/latex-dev/base/makeindx.pdf b/macros/latex-dev/base/makeindx.pdf
index 2d417f6b01..aa2de39ace 100644
--- a/macros/latex-dev/base/makeindx.pdf
+++ b/macros/latex-dev/base/makeindx.pdf
Binary files differ
diff --git a/macros/latex-dev/base/manifest.txt b/macros/latex-dev/base/manifest.txt
index 22791a2494..ff7bf49ad1 100644
--- a/macros/latex-dev/base/manifest.txt
+++ b/macros/latex-dev/base/manifest.txt
@@ -145,6 +145,7 @@
% ltcmdhooks.dtx -- Hook management (generic) for commands
% ltpara.dtx -- Hook management for paragraphs
% ltmarks.dtx -- Mark management
+% ltsockets.dtx -- Sockets and plugs management
%
% Standard Classes:
% -----------------
diff --git a/macros/latex-dev/base/modguide.pdf b/macros/latex-dev/base/modguide.pdf
index e03c6e1075..d1f7521e0d 100644
--- a/macros/latex-dev/base/modguide.pdf
+++ b/macros/latex-dev/base/modguide.pdf
Binary files differ
diff --git a/macros/latex-dev/base/nfssfont.pdf b/macros/latex-dev/base/nfssfont.pdf
index 84599cd94c..df53f5fa0e 100644
--- a/macros/latex-dev/base/nfssfont.pdf
+++ b/macros/latex-dev/base/nfssfont.pdf
Binary files differ
diff --git a/macros/latex-dev/base/proc.pdf b/macros/latex-dev/base/proc.pdf
index 4797864d17..79b95b1af0 100644
--- a/macros/latex-dev/base/proc.pdf
+++ b/macros/latex-dev/base/proc.pdf
Binary files differ
diff --git a/macros/latex-dev/base/slides.pdf b/macros/latex-dev/base/slides.pdf
index af59f4891a..3efdda8edb 100644
--- a/macros/latex-dev/base/slides.pdf
+++ b/macros/latex-dev/base/slides.pdf
Binary files differ
diff --git a/macros/latex-dev/base/slifonts.pdf b/macros/latex-dev/base/slifonts.pdf
index 0704a46022..aec17314d4 100644
--- a/macros/latex-dev/base/slifonts.pdf
+++ b/macros/latex-dev/base/slifonts.pdf
Binary files differ
diff --git a/macros/latex-dev/base/source2e.pdf b/macros/latex-dev/base/source2e.pdf
index 4b1b06981a..bb85ca131c 100644
--- a/macros/latex-dev/base/source2e.pdf
+++ b/macros/latex-dev/base/source2e.pdf
Binary files differ
diff --git a/macros/latex-dev/base/source2e.tex b/macros/latex-dev/base/source2e.tex
index 873daebb4d..c538593ddd 100644
--- a/macros/latex-dev/base/source2e.tex
+++ b/macros/latex-dev/base/source2e.tex
@@ -254,6 +254,8 @@ page_precedence "rnaA"
\DocInclude{ltcmdhooks}% Hook management for commands (L3 module)
+ \DocInclude{ltsockets}% Socket and plug management (L3 module)
+
\DocInclude{ltalloc} % Allocation of counters and others.
\DocInclude{ltcntrl} % Program control macros.
@@ -301,6 +303,8 @@ page_precedence "rnaA"
\DocInclude{ltpageno} % Page numbering
\DocInclude{ltxref} % Cross referencing
+
+ \DocInclude{ltproperties} % Extended Cross referencing
\DocInclude{ltmiscen} % Miscellaneous environment definitions.
diff --git a/macros/latex-dev/base/syntonly.pdf b/macros/latex-dev/base/syntonly.pdf
index 58ea87a4a4..c62cd393f7 100644
--- a/macros/latex-dev/base/syntonly.pdf
+++ b/macros/latex-dev/base/syntonly.pdf
Binary files differ
diff --git a/macros/latex-dev/base/tlc2.err b/macros/latex-dev/base/tlc2.err
index 5b01ff0513..5c8723a4cb 100644
--- a/macros/latex-dev/base/tlc2.err
+++ b/macros/latex-dev/base/tlc2.err
@@ -1,4 +1,4 @@
-\newcommand\erratafiledate{2023-01-08}
+\newcommand\erratafiledate{2023/01/08}
\def\comando#1{\texttt{\string#1}}
diff --git a/macros/latex-dev/base/tlc2.pdf b/macros/latex-dev/base/tlc2.pdf
index 9e68702dc8..b43f85c4a8 100644
--- a/macros/latex-dev/base/tlc2.pdf
+++ b/macros/latex-dev/base/tlc2.pdf
Binary files differ
diff --git a/macros/latex-dev/base/tlc3.err b/macros/latex-dev/base/tlc3.err
index b7e2c1c0fd..81975c34e7 100644
--- a/macros/latex-dev/base/tlc3.err
+++ b/macros/latex-dev/base/tlc3.err
@@ -1,6 +1,4 @@
-\newcommand\erratafiledate{2023-05-30}
-
-\def\comando#1{\texttt{\string#1}}
+\newcommand\erratafiledate{2023/09/01} % needs / not -
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% To produce a printed version of this errata file run this file through
@@ -255,15 +253,21 @@
%
% Specifies the date from which on errata entries should be listed.
%
-% The format is YYYY/MM/DD.
+% The format is YYYY/MM/DD (hyphens are not supported)
%
% The default below ensures that all entries for a particular
% printing are typeset.
%
\renewcommand\erratastartdate{2023/04/01}
+%\renewcommand\erratastartdate{2023/05/30} % for the first digital edition
+% If you own a digital edition (which is more often updated than the
+% print edition) then you can alter the above date to match the date
+% shown at the bottom of the Copyright page --- if it says
+% "First digital release, 2023" then use the date 2023/05/30 above.
+%
%
% \myprinting
%
@@ -306,9 +310,15 @@
\let\u\underline % shortcut for this file
\newcommand\meta[1]{$\langle$\textit{#1\/}$\rangle$}
-\usepackage{textcomp}
+\usepackage{color}
+\newcommand\bl{\color{blue}}
+
+\newcommand\textttu[1]{\texttt{\upshape #1}}
+
+\usepackage{hyperref}
+
+\let\u\underline % needs resetting after hyperref
-\usepackage{url}
\begin{document}
@@ -333,9 +343,16 @@
\end{verbatim}
-\begin{list}{}{\setlength\leftmargin{0cm}\setlength\rightmargin{3cm}}
+\begin{list}{}{\setlength\leftmargin{0cm}%
+ \setlength\rightmargin{3cm}%
+ \setlength\listparindent{1em}}
\item[]
+\tableofcontents
+
+\bigskip
+
+\noindent
This file (\texttt{\jobname.err}) can be found as part of the \LaTeX{}
distribution and its latest version is maintained on the \LaTeX{}
project site at \texttt{https://www.latex-project.org/help/books/\jobname.err}
@@ -350,6 +367,7 @@ are counted from the bottom of the page). The third column shows the
first finder of the problem.
You can customize this list to only show errata related to the printing
+or digital edition
you own by changing the configuration in the file \texttt{\jobname.cfg}.
\begin{center}
@@ -358,11 +376,11 @@ you own by changing the configuration in the file \texttt{\jobname.cfg}.
Any mistake found and reported is a gain for all readers of our book.
For this reason Addison-Wesley and the authors offer a prize (for 5
-periods) to the eligible person who finds the largest
-number of bugs during that period (in case of a draw a random choice
-will be made between all those with the largest number of findings).
-A person can receive at most one prize, ever; errors found by any of
-the authors do not count.
+limited time periods) to the eligible person who finds the largest number of bugs
+during that period (more precisely, it is a lottery among the people
+with the 5 top-most findings up to that point). A person can receive
+at most one prize, ever; errors found by any of the authors do not
+count.
Each prize is a free choice of any single computing book found on the
Addison-Wesley/Pearson web site:
@@ -388,9 +406,9 @@ Due to its size the third edition of \textit{The \LaTeX{} Companion} is printed
as a two-volume set. The digital version, however, is provided as a
single PDF or ePub. This means that a small fraction of the digital
content differs from that of the printed version: there is only a
-single font matter, a single bibliography, and a single index, whereas
+single front matter, a single bibliography, and a single index, whereas
in the printed books these are separated out. However, all versions share the main
-matter (down to the page numbering) so most of the errata applies to
+matter (down to the page numbering) so most of the errata apply to
all versions, but a few only to the digital and some only to the
printed version. Thus, we end up with three separate lists.
@@ -403,21 +421,34 @@ printed version. Thus, we end up with three separate lists.
%<--------------------------
\newcommand\BibTeX{\textsc{Bib}\TeX}
-\newcommand\cs[1]{\texttt{\textbackslash #1}}
+\newcommand\cs[1]{\texttt{\upshape\textbackslash #1}}
\newcommand\env[1]{\texttt{#1}}
\newcommand\pkg[1]{\textsf{#1}}
-\section*{Errata for the print version (not applicable to the digital version)}
+\section{Errata for the print version (not applicable to the digital version)}
The printed books differ from the digital version in that the
-bibliography is split across both volumes (with a few repeats) and that
-the font matter of each volume has its own table of contents and list
+bibliography is split across both volumes (with a few repeats) and
+the front matter of each volume has its own table of contents and list
of figures and tables. Therefore these parts have different page
numbers and you will see similar errata entries for both print and
digital differing only in that respect.
\begin{erratalist}
+\CHAPTER{General}
+
+\erroronpage{}{}{FMi}{2023/07/30}{}
+
+Text or graphics typeset in the the spot color (blue) are not always
+perfectly aligned. This is a side-effect of the printing technology.
+On most pages everything is fine, but occasionally blue text in a
+paragraph seems to be slightly above or below the baseline or blue
+text in tables appears slightly misaligned horizontally. It differs
+from book to book (and therefore not recorded in this errata) and
+can't be controlled by the authors, unfortunately.
+
+
\CHAPTER{Front matter (Part I)}
\erroronpage{I-ix\ldots I-xvi}{}{FMi}{2023/04/04}{s}
@@ -510,7 +541,7 @@ Publishing \> Publishing\u{,}
%<--------------------------
-\section*{Errata for the digital version (not applicable to the print version)}
+\section{Errata for the digital version (not applicable to the print version)}
All known errors to the digital version have already been incorporated in the product as distributed.
@@ -526,7 +557,7 @@ All known errors to the digital version have already been incorporated in the pr
%<--------------------------
-\section*{Errata common to the print and digital versions}
+\section{Errata common to the print and digital versions}
The main matter is identical (also in page numbers) in the print and
the digital versions. Therefore most errata entries appear in this
@@ -537,48 +568,89 @@ section.
\CHAPTER{General}
-\erroronpage{}{}{FMi}{2023/04/04}{s}
+\erroronpage{}{}{FMi}{2023/04/04}{}
Some corrections result in index changes. These are not tracked here;
the index is always fully regenerated for new printings.
+\erroronpage{}{}{MJo/FMi}{2023/07/07}{}
+
+ There are a dozen occurrences of the word \u{rôle} throughout the book,
+ which is more commonly spelled \u{role}. However, this is not wrong
+ but is the somewhat dated form used mostly in British
+ English. Personally, I prefer the version with accent (as does Don
+ Knuth) so it is deliberate and will not change.
+
\CHAPTER{Chapter 1 --- Introduction}
\erroronpage{I-5}{para 4, l.4}{kb}{2023/04/04}{s}
\u{of} the bugs \> \u{with} the bugs
-\\ Already corrected in the digital version.
+
\erroronpage{I-5}{para 5, l.5}{kb}{2023/04/04}{s}
not least \> \u{but} not least
-\\ Already corrected in the digital version.
+
\CHAPTER{Chapter 2 --- The Structure of a \LaTeX{} Document}
\erroronpage{I-34}{l.-1}{FMi}{2023/04/04}{s}
Moved first line of page 35 to 34.
-\\ Already corrected in the digital version.
+
\erroronpage{I-35}{l.1}{FMi}{2023/04/04}{s}
Moved first line of page 35 to 34.
-\\ Already corrected in the digital version.
+
\erroronpage{I-113}{listing}{FMi}{2023/05/14}{s}
Situation is the same in the 2023 distributions; listing output updated.
-\\ Already corrected in the digital version.
+
+
+\erroronpage{I-117}{l.-5}{BeB}{2023/07/25}{s}
+\textit{latexrelease} \> \texttt{latexrelease}
\CHAPTER{Chapter 3 --- Basic Formatting Tools -- Paragraph \ldots}
+\erroronpage{I-160}{para -2, l.1}{BeB}{2023/07/14}{s}
+Repeated word: keys \u{keys} \> keys
+
+\erroronpage{I-163}{para 2, l.2}{FMi}{2023/07/26}{s}
+as we did \u{above}. \> as we did \u{in Example 3-3-14 below}.
+
+\erroronpage{I-163}{para 3, margin}{FMi}{2023/07/26}{s}
+Add a marginal note: \u{No warning if another \LaTeX{} run is necessary!}
+
+\erroronpage{I-163}{example 3-3-14}{BeB}{2023/07/25}{s}
+Output of example misses the page numbers in acronym list \> Run example 3 times (not only twice---there is no warning)
+
+
\CHAPTER{Chapter 4 --- Basic Formatting Tools -- Larger \ldots}
+\erroronpage{I-323}{Table 4.4, left column}{BeB}{2023/07/25}{s}
+Typo: Assembler (\u{N}otorola68k, x86masm) \> \\ Assembler (\u{M}otorola68k, x86masm)
+% Matlab \> Matlab \u{(empty, 5.1)}
+% könnte auch aktualisiert werden, steht aber in Version 1.8d nicht drin
+
\CHAPTER{Chapter 5 --- The Layout of the Page}
\CHAPTER{Chapter 6 --- Tabular Material}
+\erroronpage{I-489}{para 1, l.3}{EOl}{2023/07/30}{s}
+Change:
+to \u{additionally} load \textsf{longtable} or \textsf{supertabular} \u{prior} to \>
+to load \textsf{longtable} or \textsf{supertabular} \u{in addition} to
+
+\erroronpage{I-490}{footnote}{EOl}{2023/07/30}{s}
+Replace footnote text with \>
+If you forget this, you either get an empty cell or, if parts of the
+text can be interpreted as a value, a somewhat ``random'' number and
+the rest is dropped. For example, \texttt{31 December 2022} would
+result in ``31.00'', which is probably not desired.
+
\CHAPTER{Chapter 7 --- Mastering Floats}
@@ -593,54 +665,274 @@ The example uses \verb*/left color=red!20/ but this is not really
visible if the red is turned into some gray value in the book (which
is then made even lighter through \texttt{!20}). So it is better to
start from full red, i.e., \> \verb*/left color=red/ instead.
-\\ Already corrected in the digital version.
+
+
+
+\erroronpage{I-644}{syntaxbox for \cs{foreach}}{BeB}{2023/07/14}{s}
+superfluous ``in'': \ldots\{\textsl{commands}\} \u{in} \> \ldots\{\textsl{commands}\}
+
+
\CHAPTER{Chapter 9 --- Font Selection and Encodings}
-
+
+
+\erroronpage{I-688}{para -2, l. 1}{BeB}{2023/08/13}{s}
+acronym PSNFSS not explained: PSNFSS \> PostScript New Font Selection Scheme (PSNFSS)
+
+
\erroronpage{I-669}{exa 9-3-11}{FMi}{2023/04/04}{s}
Changed line breaks in example.
+\erroronpage{I-681}{para 2, l.1}{BeB}{2023/07/14}{s}
+Missing space: Theproblem \> The problem
+
\erroronpage{I-708}{listing}{FMi}{2023/05/14}{s}
Situation is the same in the 2023 distributions; listing output updated.
-\\ Already corrected in the digital version.
+
+\erroronpage{I-759}{l.1}{BeB}{2023/08/20}{s}
+in the range of 0000 to \u{00FF} \> in the range of 0000 to \u{007F}
\CHAPTER{Chapter 10 --- Text and Symbol Fonts}
+
+\erroronpage{II-5}{table 10.1, l. 5}{BeB/FMi}{2023/08/13}{s}
+ official \u{companion} family name \> \u{related} official \u{font} family name
+
+\erroronpage{II-5}{para -1, l.2}{FMi}{2023/08/15}{s}
+
+then this structure is repeated as often as necessary. \>
+then this structure is repeated \u{for the related font families} as often as necessary.
+
+
+\erroronpage{II-24}{para 3, l. -2}{BeB}{2023/08/13}{s}
+There is no slanted shape in Grande Mono: \\
+\u{\textsl{naïve}} \> \u{\textsl{\bl naïve}}
+
+
+\erroronpage{II-25}{para -4, margin}{BeB}{2023/08/13}{s}
+Open Type font is available: \\
+\u{— no Open Type —} \> \u{Lucida Handwriting OT}
+
+\erroronpage{II-25}{para -2, l.-2}{BeB}{2023/08/13}{s}
+There are no italic blackletters: \\
+\textit{phœnix's official rôle}\> \textit{\bl phœnix's official rôle}
+
+\erroronpage{II-28}{table 10.14, l. 3}{BeB}{2023/08/13}{s}
+Inconsistent order: sl, l \> l, sl
+
+\erroronpage{II-28}{table 10.14, lines 7 + 19}{BeB}{2023/08/13}{s}
+semi-bold twice, extra-bold missing: sbsc, bsc, \u{sbsc} \> sbsc, bsc, \u{ebsc}
+
+\erroronpage{II-28}{table 10.14, lines 13 + 25}{BeB}{2023/08/13}{s}
+semi-bold twice, extra-bold missing: sbec, bec, \u{sbec} \> sbec, bec, \u{ebec}
+
+\erroronpage{II-29}{table 10.15, lines 7}{BeB}{2023/08/13}{s}
+semi-bold twice, extra-bold missing: sbsc, bsc, \u{sbsc} \> sbsc, bsc, \u{ebsc}
+
+\erroronpage{II-29}{table 10.15, l. 10}{BeB}{2023/08/13}{s}
+semi-bold twice, extra-bold missing: sbc, bc, \u{sbc} \> sbc, bc, \u{ebc}
+
+\erroronpage{II-29}{table 10.15, l.13}{BeB}{2023/08/13}{s}
+semi-bold twice, extra-bold missing: sbec, bec, \u{sbec} \> sbec, bec, \u{ebec}
+
+
+\erroronpage{II-34}{table 10.20}{FMi}{2023/08/15}{s}
+Add table note:
+%
+\textit{\textttu{k} (black) is a nonstandard series name for \textttu{eb} (extra
+bold) or in some families for \textttu{ub} (ultra bold).}
+
+\erroronpage{II-40}{table 10.24}{FMi}{2023/08/15}{s}
+In table note: \textit{Unfortunately, \u{\texttt{sco}}} \> \textit{Unfortunately, \u{\textttu{sco}}}
+
+
+\erroronpage{II-50}{font sample Cambria}{FMi}{2023/08/14}{s}
+
+Because of problems with the font names, the Cambria family currently requires a \texttt{Cambria.fontspec} file
+(possibly only temporary) when used with Lua\TeX{} with the following content:
+\begin{verbatim}
+\defaultfontfeatures[Cambria]{%
+ UprightFont =cambria.ttc,
+ BoldFont = cambriab.ttf,
+ ItalicFont = cambriai.ttf,
+ BoldItalicFont = cambriaz.ttf}
+\end{verbatim}
+Without it, the bold fonts are not correctly set up, which is why
+\textbf{almost anything} is not in bold and \textbf{Fields} is not typeset in
+bold small caps in the sample even though Cambria supports these typefaces.
+
+
+\erroronpage{II-61}{table 10.48}{FMi}{2023/08/15}{s}
+Add table note:
+%
+\textit{Unfortunately, \textttu{sco} is a nonstandard shape name for
+\textttu{scsl}; thus, low-level shape commands are needed to access it.}
+
+\erroronpage{II-62}{table 10.50}{FMi}{2023/08/15}{s}
+Add table note:
+%
+\textit{Unfortunately, \textttu{sco} is a nonstandard shape name for
+\textttu{scsl}; thus, low-level shape commands are needed to access it.}
+
+\erroronpage{II-63}{table 10.51}{FMi}{2023/08/15}{s}
+Table moved to page II-62 for better pagination.
+
+\erroronpage{II-65}{para 1, l.1}{YvH}{2023/08/20}{s}
+ Slap \> Slab
+
+\erroronpage{II-66}{Unicode box}{DFl}{2023/08/03}{s}
+ OpenType fonts for the Concrete family do exist.
+
+ Therefore changed the text to
+ \begin{quote}
+ OpenType fonts of the family for use in Unicode engines do exist. They offer additional characters
+ and also true \textbf{bold} and \textbf{\itshape bold italic} shapes.
+ \end{quote}
+ and moved it down after the discussion of missing bold fonts.
+
+\erroronpage{II-66}{table 10.55}{FMi}{2023/08/03}{s}
+ Change: \u{---no OpenType---} \> \u{CMU Concrete}
+
+ Added line showing: \u{\texttt{b}\qquad\texttt{n, it}}
+ and the text \u{---Not available with pdf\TeX, only in Unicode engines---}
+
+\erroronpage{II-66}{1st font example}{FMi}{2023/08/03}{s}
+ Change: \u{---no OpenType---} \> \u{CMU Concrete}
+
+\erroronpage{II-66}{2nd font example}{FMi}{2023/08/03}{s}
+ Added (in margin info): \u{---only OT1---}
+
+\erroronpage{II-71}{para 1, l.1}{BeB}{2023/08/13}{s}
+ub should be upright: \verb+\fontseries{+\u{\textsl{ub}}\verb+}+ \> \verb+\fontseries{ub}+
+
+
+\erroronpage{II-71}{para 2, l.5}{YFu}{2023/07/25}{s}
+\u{Akira Kobayashi} should be written in Japanese style \> \u{KOBAYASHI Akira}\\
+Also corrected in the index.
+
+\erroronpage{II-75}{table 10.64}{FMi}{2023/08/15}{s}
+Add table note:
+%
+\textit{Unfortunately, \textttu{sco} is a nonstandard shape name for
+\textttu{scsl}; thus, low-level shape commands are needed to access it.}
+
+
+\erroronpage{II-76,77}{both font examples}{BeB}{2023/08/13}{s}
+Helvetica and its clones do not have true italics but instead an
+oblique/slanted face (despite the fact that the internal font
+information claims it is ``italic''). For this reason the blue
+text in both Helvetica examples should be as follows:
+
+ \textsl{\bl naïve} vis-à-vis the dæmonic \textit{phœnix's official rôle} \> \\
+ \textsl{naïve} vis-à-vis the dæmonic \textit{\bl phœnix's official rôle}
+
+
+\erroronpage{II-86}{table 10.74, l.4}{FMi}{2023/08/15}{s}
+
+It's weights not widths:\\
+\u{S}ome nonstandard \u{widths} \> \u{Also s}ome nonstandard \u{weights}
+
+
+\erroronpage{II-86}{table 10.74}{FMi}{2023/08/15}{s}
+Add table note:
+%
+\textit{Unfortunately, the font family uses the nonstandard series
+ names \textttu{t} (thin) and \textttu{k} (black) instead of the
+ standard series names \textttu{ul} (ultra light) and \textttu{ub}
+ (ultra bold). The \textttu{mb} (medium) is halfway between the
+ standard \textttu{m} and \textttu{sb} and does not fit into the NFSS
+ naming conventions. It can serve as a replacement for \textttu{m},
+ e.g., via \cs{DeclareFontSeriesDefault}.}
+
+
+
+\erroronpage{II-91}{l. -1}{BeB}{2023/08/13}{s}
+In the DejaVu Sans Mono Example add: \texttt{OIl or 011?}
+
+
+
+\erroronpage{II-102}{para -4, margin}{BeB}{2023/08/13}{s}
+Change: \u{— no Open Type —} \> \u{Lucida Handwriting OT}
+
+
+\erroronpage{II-104}{para -1, l.2}{FMi}{2023/08/13}{s}
+
+Footnote added after: \u{Unicode characters}
+\begin{quote}
+ However, strangely enough this only works in pdf\TeX{} and \emph{not} in Unicode engines!
+\end{quote}
+
+\erroronpage{II-105}{para 1 replaced}{FMi/BeB}{2023/08/13}{s}
+
+The yfonts have a suprising feature: you can use the Unicode
+characters {ÄÖÜäöüß} in pdf\TeX{}, but this is not possible in
+Unicode engines! The first paragraph was therefore replaced to
+clarify this. The new text is:
+\begin{quote}
+ The next example shows the various ligatures. With pdf\TeX{} one can
+ use the Unicode characters \texttt{ÄÖÜäöüß} directly and only needs
+ the ``{short s}'' ligature. However, due to the special font
+ encoding this \emph{does not work} in Unicode engines\,---\,with
+ these engines you have to enter the accents as ligatures or \LaTeX{}
+ commands.
+\end{quote}
+
+
+\erroronpage{II-106}{para -3, l. 1}{BeB}{2023/08/13}{s}
+Acronym GFS not explained: Greek Font Society \> Greek Font Society (GFS)
+
+
+\erroronpage{II-107}{exa 10-11-1}{FMi}{2023/08/14}{s}
+
+The Cambria fonts currently require a \texttt{Cambria.fontspec} file
+(possibly temporary) when used with Lua\TeX{} --- see errata on page II-50.
+Without it, the bold fonts are not correctly set up, which is why they are
+not showing in the example.
+
+\erroronpage{II-110}{exa 10-12-1}{FMi}{2023/08/14}{s}
+
+The Cambria fonts currently require a \texttt{Cambria.fontspec} file
+(possibly temporary) when used with Lua\TeX{} --- see errata on page II-50.
+Without it, the bold fonts are not correctly set up, which is why they are
+not showing in the example.
+
+
+
\erroronpage{II-114}{table 10.89}{FMi}{2023/04/04}{s}
Added missing \texttt{U+00Fx} line.
There was a bug in code generating it.
-\\ Already corrected in the digital version.
+
\erroronpage{II-117}{table 10.92}{FMi}{2023/04/04}{s}
Added missing \texttt{U+00Fx} line.
There was a bug in code generating it.
-\\ Already corrected in the digital version.
+
\erroronpage{II-121}{table 10.96}{FMi}{2023/04/04}{s}
Added missing \texttt{U+00Fx} line.
There was a bug in code generating it.
-\\ Already corrected in the digital version.
+
\erroronpage{II-122}{table 10.98}{FMi}{2023/04/04}{s}
Added missing \texttt{U+00Fx} line.
There was a bug in code generating it.
-\\ Already corrected in the digital version.
+
\erroronpage{II-122}{table 10.99}{FMi}{2023/04/04}{s}
Added missing \texttt{U+00Fx} line.
There was a bug in code generating it.
-\\ Already corrected in the digital version.
+
\erroronpage{II-123}{table 10.100}{FMi}{2023/04/04}{s}
Added missing \texttt{U+00Fx} line.
There was a bug in code generating it.
-\\ Already corrected in the digital version.
+
\erroronpage{II-124}{table 10.103}{FMi}{2023/04/04}{s}
Added missing \texttt{U+00Fx} line.
There was a bug in code generating it.
-\\ Already corrected in the digital version.
+
@@ -652,44 +944,48 @@ package, \pkg{amsmath}, which \u{makes} \ldots
\>\\
\u{In the early nineties the} American Mathematical Society (AMS)
\u{provided} a major package, \pkg{amsmath}, which \u{made} \ldots
-\\ Already corrected in the digital version.
+
\erroronpage{II-129}{para -3, l.1}{bb/FMi}{2023/04/04}{s}
The principal documentation for these packages
\>\\
The principal documentation for these \u{two} packages
-\\ Already corrected in the digital version.
+
\erroronpage{II-129}{para -1, l.3}{bb}{2023/04/04}{s}
\u{lot} additions \> \u{many} additions
-\\ Already corrected in the digital version.
+
\erroronpage{II-132}{table 11.1}{bb/FMi}{2023/04/04}{s}
Also mention \env{alignat}, \env{alignat*}, and \env{alignedat}.
-\\ Already corrected in the digital version.
+
\erroronpage{II-133}{para 4,l.2}{bb/FMi}{2023/04/04}{s}
Add:
Furthermore, they move the equation tag out of the way if it would
otherwise overprint the formula.
-\\ Already corrected in the digital version.
+
+
+
+\erroronpage{II-133}{para. -3, l. -1}{BeB}{2023/08/13}{s}
+Wrong reference: Section 11.2.\u{10} \> 11.2.\u{11}
\erroronpage{II-138}{heading}{bb/FMi}{2023/04/04}{s}
Multiple alignments: \env{align} \u{and \env{flalign}}
\>
Multiple alignments: \env{align}\u{, \env{flalign}, and \env{alignat}}
-\\ Already corrected in the digital version.
+
\erroronpage{II-138}{}{FMi}{2023/04/04}{s}
Moved para from 139 to end of this page.
-\\ Already corrected in the digital version.
+
\erroronpage{II-139}{para 1}{FMi}{2023/04/04}{s}
Moved para back to page 138.
-\\ Already corrected in the digital version.
+
\erroronpage{II-139}{bottom}{FMi}{2023/04/04}{s}
Add:
@@ -703,34 +999,34 @@ it does not add any spaces between the pairs, e.g.,
\begin{alignat}{3} x &= y &\qquad X &= Y &\qquad a &= b+c \\ ...
\end{verbatim}
As usual, equation numbers can be altered with \cs{tag} or suppressed with \cs{notag}.
-\\ Already corrected in the digital version.
+
\erroronpage{II-140}{para 1, l.2}{bb/FMi}{2023/04/04}{s}
Add:
Do not forget to reset \cs{minalignsep} if you change it in this manner.
-\\ Already corrected in the digital version.
-\erroronpage{II-140}{para 2, l.4}{bb/FMi}{2023/04/04}{s}
+
+\erroronpage{II-140}{para 2, l.4}{bb/FMi}{2023/08/16}{s}
Add:
You can think of them as subsidiary environments that can be used
-within any of the display environments discussed so far (below we use
-them inside equation).
-\\ Already corrected in the digital version.
+within any of the display environments discussed so far. (Below we use
+them inside equation.)
+
\erroronpage{II-140}{para -1}{FMi}{2023/04/04}{s}
Paragraph moved to page 141.
-\\ Already corrected in the digital version.
+
\erroronpage{II-141}{}{FMi}{2023/04/04}{s}
One paragraph moved over from page 140.
-\\ Already corrected in the digital version.
+
\erroronpage{II-144}{para 2, l.-3}{FMi}{2023/04/04}{s}
the issue \> the \u{spacing} issue
-\\ Already corrected in the digital version.
+
\erroronpage{II-145}{para 2, l.1}{bb/FMi}{2023/04/04}{s}
Add:
@@ -738,47 +1034,270 @@ Add:
Another problem is that an empty line introduces an unwanted break
point in front of the display, thus \cs{predisplaypenalty} is no
longer honored.
-\\ Already corrected in the digital version.
+\erroronpage{II-167}{para. 3, l. -2}{BeB}{2023/08/13}{s}
+option\u e \> option\u{s}
+
+
+\erroronpage{II-178}{table 11.3, l.10}{EOl}{2023/07/30}{s}
+ Cross-\u{produce} tensor \> Cross-\u{product} tensor
+
+\erroronpage{II-178}{Tab. 11.3, l.10}{BeB}{2023/08/13}{s}
+in the description column: \u{array}-symbol-arrow \> \u{arrow}-symbol-arrow
+
+
+
+
+
\CHAPTER{Chapter 12 --- Fonts in Formulas}
\erroronpage{II-225}{heading}{FMi}{2023/04/04}{s}
Chapter title not properly capitalized.
-\\ Already corrected in the digital version.
+
+
+\erroronpage{II-229}{para -3, l.1}{BeB}{2023/08/15}{s}
+for Lucida fonts \> Lucida \u{and Cambria} fonts
+
+\erroronpage{II-274}{exa 12-18-fig}{FMi}{2023/08/14}{s}
+
+The Cambria fonts currently require a \texttt{Cambria.fontspec} file
+(possibly temporary) when used with Lua\TeX{} --- see errata on page II-50.
+Without it, the bold fonts are not correctly set up, which is why they are
+missing in the section heading of the example.
+
\erroronpage{II-261}{para 3, l.3}{FMi}{2023/05/26}{s}
Yoda spoke it seems: \ldots \u{and compare we should} \>
\ldots \u{and you should compare}
-\\ Already corrected in the digital version.
+
+
+\erroronpage{II-286}{fig. 12-36}{FMi}{2023/08/21}{s}
+
+Heading is not bold because of an error in the distributed
+\texttt{.fontspec} file for this family. This needs to be corrected
+in the NewComputerModern distribution and maybe also in the
+\pkg{fontspec} package itself. A \texttt{NewCM10-Regular.fontspec}
+file that works could look like this:
+\begin{verbatim}
+\defaultfontfeatures[NewCM10-Regular]{
+ Extension = .otf ,
+% Can't use NewCM10-Regular here (or we get a fontspec error).
+% Doesn't matter in this case, but looks like a fontspec issue.
+ UprightFont = NewCM08-Regular ,
+ UprightFeatures = {
+ SizeFeatures = {
+ {Size = -8 , Font = NewCM08-Regular} ,
+ {Size = 8- , Font = NewCM10-Regular} ,
+ },
+ },
+% Same here:
+ SlantedFont = NewCM08-Regular ,
+ SlantedFeatures = {
+ SizeFeatures = {
+ {Size = -8 , Font = NewCM08-Regular} ,
+ {Size = 8- , Font = NewCM10-Regular} ,
+ },
+ FakeSlant=0.25,
+ },
+ ItalicFont = NewCM10-Italic ,
+ ItalicFeatures = {
+ SizeFeatures = {
+ {Size = -8 , Font = NewCM08-Italic} ,
+ {Size = 8- , Font = NewCM10-Italic} ,
+ },
+ },
+ BoldFont = NewCM10-Bold ,
+ BoldItalicFont = NewCM10-BoldItalic ,
+ BoldSlantedFont = NewCM10-Bold ,
+ BoldSlantedFeatures = { FakeSlant=0.25 },
+ SmallCapsFeatures = { Numbers=OldStyle },
+}
+\end{verbatim}
+
+
+\erroronpage{II-286}{fig. 12-36}{FMi}{2023/08/21}{s}
+
+Change in title: \u{Mathematical} typesetting \> \u{Math} typesetting
+
+
+\erroronpage{II-286}{fig. 12-37}{FMi}{2023/08/21}{s}
+
+Heading is not bold because of an error in the distributed
+\texttt{.fontspec} file for this family. This needs to be corrected
+in the NewComputerModern distribution and maybe also in the
+\pkg{fontspec} package itself. A \texttt{NewCM10-Book.fontspec}
+file that works could look like this:
+\begin{verbatim}
+\defaultfontfeatures[NewCM10-Book]{
+ Extension = .otf ,
+ UprightFont = NewCM08-Book ,
+ UprightFeatures = {
+ SizeFeatures = {
+ {Size = -8 , Font = NewCM08-Book} ,
+ {Size = 8- , Font = NewCM10-Book} ,
+ },
+ },
+ SlantedFont = NewCM08-Book ,
+ SlantedFeatures = {
+ SizeFeatures = {
+ {Size = -8 , Font = NewCM08-Book} ,
+ {Size = 8- , Font = NewCM10-Book} ,
+ },
+ FakeSlant=0.25,
+ },
+ ItalicFont = NewCM10-BookItalic ,
+ ItalicFeatures = {
+ SizeFeatures = {
+ {Size = -8 , Font = NewCM08-BookItalic} ,
+ {Size = 8- , Font = NewCM10-BookItalic} ,
+ },
+ },
+ BoldFont = NewCM10-Bold ,
+ BoldItalicFont = NewCM10-BoldItalic ,
+ BoldSlantedFont = NewCM10-Bold ,
+ BoldSlantedFeatures = { FakeSlant=0.25 },
+ SmallCapsFeatures = { Numbers=OldStyle },
+}
+\end{verbatim}
+
+\erroronpage{II-286}{fig. 12-37}{FMi}{2023/08/21}{s}
+Change title to more or less fit the width of the sample:\\
+\hspace*{1em}\u{Mathematical} typesetting with NewComputerModern \> \\
+\hspace*{1em}\u{Math} typesetting with NewComputerModern \u{Book}\\
+
+
+\erroronpage{II-288}{para 3, l.-1}{BeB}{2023/08/20}{s}
+Typo and spurious comma: series\u{, though} substitution. \> series \u{through} substitution.
+
+
+\erroronpage{II-295}{par -2, l.-1}{BeB}{2023/08/20}{s}
+
+Options \texttt{vvarbb} and \texttt{upint} show no effect in figure
+12.50. This was due to a bug in the package --- now corrected. Thus,
+rerunning the example shows the expected behavior.
\CHAPTER{Chapter 13 --- Localizing Documents}
\erroronpage{II-297}{heading}{FMi}{2023/04/04}{s}
Chapter title not properly capitalized.
-\\ Already corrected in the digital version.
+\erroronpage{II-307}{after exa 13-2-5}{BeB/FMi}{2023/08/20}{s}
+
+Replace:
+On the other hand, \pkg{tikz} provides a library to overcome these issues.
+\>\\
+In the particular case of \pkg{tikz}, you can use
+\cs{usetikzlibrary}\verb={babel}= instead of \cs{shorthandoff}
+to overcome these issues for all \pkg{tikz} pictures of the document.
+
+
+
+\erroronpage{II-308}{para 2, l.3}{BeB}{2023/08/20}{s}
+Acronyms BCP and IETF not explained:\\
+BCP \> the Best Current Practice (BCP)\\
+IETF \> the Internet Engineering Task Force (IETF)
+
+\erroronpage{II-308}{para 3, l.1}{BeB}{2023/08/20}{s}
+ BPD \> BCP
+
+\erroronpage{II-319}{para 2, l.1}{BeB}{2023/08/20}{s}
+Missing word: is described \textit{A History} \> is described \u{in}
+\textit{A History}
+
+\erroronpage{II-332}{exa 13-5-2, and above}{FMi}{2023/04/28}{s}
+
+The keyword \texttt{Harf\u{b}uzz} should be spelled
+\texttt{Harf\u{B}uzz}. Both names are supported, but the recommended
+spelling is \texttt{HarfBuzz}.
+
\CHAPTER{Chapter 14 --- Index Generation}
+% Das Beispiel von S. II-352 als File wäre schön, dann könnte man das mit
+% dem Index mal durchspielen. Das Beispiel 16-7-6 ist zwar mal wieder
+% recht eindrucksvoll, berührt die Thematik aber nur so nebenbei.
+% \erroronpage{II-352}{Fig. 14.3}{BeB}{2023/08/31}{}
+% The code shown in Fig. 14.3 now is the Example 14-2-1
+
+
\CHAPTER{Chapter 15 --- Bibliography Generation}
+\erroronpage{II-390}{para 4, l.1}{BeB/FMi}{2023/08/31}{s}
+Replace:
+ \u{predates the Internet} and so\> \\
+ \u{were developed when the Internet was in its infancy} and so
+
+
+\erroronpage{II-391}{Fig. 15.2, bib-entry jane-2}{BeB}{2023/08/31}{s}
+\verb+\title = {A+\texttt{\u{n} second book\}}\> \verb+\title = {A second book}+
+
+Changes the output of example 16-7-31 on page II-560 as well.
+
+% For later:
+%S. II-399: Man könnte in dem biber/biblatex Kasten noch anmerken, dass die
+% Konvertierung auch on-the-fly geht – hatte mir in der Übergangsphase weitergeholfen:
+%\erroronpage{II-399}{biber/biblatex box}{BeB}{2023/08/31}{}
+%Add: One can do this conversion directly from a .bib file to a .bbl file by using e.g.
+%\verb+biber --output-encoding=ascii --output-safecharsset=full+
+%and stay with one .bib file (in UTF8-encoding).
+
+
\erroronpage{II-435}{code}{FMi}{2023/05/26}{s}
-\verb=\textcolor{See= \> \verb=\textcolor{blue}{See=
-\\ Already corrected in the digital version.
+\verb=\textcolor{See= \> \cs{textcolor}\u{\texttt{\{blue\}}}\texttt{\{See}
+
+\erroronpage{II-443}{biblatex-mla style}{BeB}{2023/08/31}{s}
+Explain acronym: \u{MLA handbook} \> \u{Modern Language Association (MLA) handbook}
+
+\smallskip
+
+This moves the text line on the bottom to the next page.
\CHAPTER{Chapter 16 --- Managing Citations}
+\erroronpage{II-475}{para -2, l.6}{BeB}{2023/08/31}{s}
+Figure 15.1 \> Figure 15.1 \u{on pages 382--383}
+
+
+\erroronpage{II-513}{para -1}{BeB/FMi}{2023/08/31}{s}
+
+Extend the explanation:\\
+is created only if the entry \u{contains} a shorttitle \u{field} and the title and shorttitle fields differ. \>\\
+is created only if the entry \u{has been referenced (prior to typesetting}\\
+\u{the bibliography), contains} a shorttitle \u{field,} and the title and shorttitle fields differ.
+
+
+\erroronpage{II-560}{exa 16-7-31}{FMi}{2023/08/31}{s}
+Jane Doe.\ \textit{A\u{n} second book.}\ 2020.\> Jane Doe.\ \textit{A second book.}\ 2020.
+
\CHAPTER{Chapter 17 --- \LaTeX{} Package Documentation Tools}
-
+
+\erroronpage{II-599}{para 3, l.1}{EOl}{2023/07/30}{s}
+
+\u{Whencreating automatically} the driver \> \u{When} the driver
+
\CHAPTER{Appendix A --- \LaTeX{} Overview for Preamble, \ldots}
-
+
+\erroronpage{II-624--629}{}{BeB/FMi}{2023/08/31}{s}
+Replace for consistency with section 1.4: \u{command definition} \> \u{code}
+
+\erroronpage{II-629}{para 1, l.3}{FMi}{2023/08/31}{s}
+\u{An} warning \> \u{A} warning
+
+
+\erroronpage{II-633}{para 2}{BeB/FMi}{2023/08/31}{s}
+Add at the end: A maximum of nine ``argument'' letters is supported.
+
+
+\erroronpage{II-682}{para -2, l.3}{FMi}{2023/04/28}{s}
+\texttt{Harf\u{b}uzz} \> \texttt{Harf\u{B}uzz}
+
\CHAPTER{Appendix B --- Tracing and Resolving Problems}
@@ -787,7 +1306,7 @@ Chapter title not properly capitalized.
\erroronpage{II-297}{heading}{FMi}{2023/04/04}{s}
Appendix title not properly capitalized.
-\\ Already corrected in the digital version.
+
\CHAPTER{Biographies}
@@ -798,13 +1317,21 @@ Appendix title not properly capitalized.
+\section*{Notes on this errata document}
+
\setcounter{collectmore}{3}
\begin{multicols}{3}[Thanks to all who have found errors or
omissions. Listed are the people who found an errata entry first.]
-\contributor{bb}{Barbara Beeton}
+\contributor{BeB}{Bernd Burghardt}
+\contributor{DFl}{Daniel Flipo}
+\contributor{EOl}{Edgar Olthof}
\contributor{FMi}{Frank Mittelbach}
+\contributor{MJo}{Maciej Jończyk}
+\contributor{YFu}{FUJIMURA Yukitoshi}
+\contributor{YvH}{Yvon Henel}
+\contributor{bb}{Barbara Beeton}
\contributor{kb}{Karl Berry}
\end{multicols}
@@ -827,7 +1354,7 @@ Here is an example:
\erroronpage{5}{para 3, l.1}{FMi}{2023/06/21}{}
\u{LaTeX} \> \u{\LaTeX}
\end{verbatim}
-\verb=\u= underlines a text fragment and \verb=\>= produces \>.
+\verb=\u{...}= underlines a text fragment, \verb=\>= produces \>, and \verb=\bl= is a short form for \verb=\color{blue}=.
\end{document}
diff --git a/macros/latex-dev/base/tlc3.pdf b/macros/latex-dev/base/tlc3.pdf
index 5228aefe9d..b7992b7152 100644
--- a/macros/latex-dev/base/tlc3.pdf
+++ b/macros/latex-dev/base/tlc3.pdf
Binary files differ
diff --git a/macros/latex-dev/base/tulm.pdf b/macros/latex-dev/base/tulm.pdf
index d99b8c586c..57f1df3e27 100644
--- a/macros/latex-dev/base/tulm.pdf
+++ b/macros/latex-dev/base/tulm.pdf
Binary files differ
diff --git a/macros/latex-dev/base/usrguide-historic.pdf b/macros/latex-dev/base/usrguide-historic.pdf
index cb96ab3d50..aabe4c0543 100644
--- a/macros/latex-dev/base/usrguide-historic.pdf
+++ b/macros/latex-dev/base/usrguide-historic.pdf
Binary files differ
diff --git a/macros/latex-dev/base/usrguide.pdf b/macros/latex-dev/base/usrguide.pdf
index d61fe208e5..310c0e11ba 100644
--- a/macros/latex-dev/base/usrguide.pdf
+++ b/macros/latex-dev/base/usrguide.pdf
Binary files differ
diff --git a/macros/latex-dev/base/usrguide.tex b/macros/latex-dev/base/usrguide.tex
index 5577be9f03..05fc93e7af 100644
--- a/macros/latex-dev/base/usrguide.tex
+++ b/macros/latex-dev/base/usrguide.tex
@@ -877,33 +877,6 @@ defined as
[As an aside: the code is written in \pkg{expl3}, so we don't have to
worry about spaces creeping into the definition.]
-\subsection{Access to the argument specification}
-
-The argument specifications for document commands and environments are
-available for examination and use.
-
-\begin{decl}
- |\GetDocumentCommandArgSpec| \arg{cmd} \\
- |\GetDocumentEnvironmentArgSpec| \arg{environment}
-\end{decl}
-These commands transfer the current argument specification for the
-requested \meta{cmd} or \meta{environment} into the token list
-variable \cs{ArgumentSpecification}. If the \meta{cmd} or
-\meta{environment} has no known argument specification then an error
-is issued. The assignment to \cs{ArgumentSpecification} is local to
-the current \TeX{} group.
-
-\begin{decl}
- |\ShowDocumentCommandArgSpec| \arg{cmd} \\
- |\ShowDocumentEnvironmentArgSpec| \arg{environment}
-\end{decl}
-These commands show the current argument specification for the
-requested \meta{cmd} or \meta{environment} at the terminal. If
-the \meta{cmd} or \meta{environment} has no known argument
-specification then an error is issued.
-
-
-
\section{Copying and showing (robust) commands and environments}
If you want to (slightly) alter an existing command you may want to
@@ -1212,8 +1185,7 @@ Upper- and lower-casing are well-understood in general conversation.
Titlecasing here follows the definition given by the Unicode Consortium: the
first character of the input will be converted to (broadly) uppercase, and the
rest of the input to lowercase. The full range of Unicode UTF-8 input can be
-supported, with the proviso that at present the characters set up with 8-bit
-engines match those available in standard input encodings (|T1|, |T2|, |LGR|).
+supported.
\begin{quotation}
\begin{tabular}{rl}
|\MakeUppercase{hello WORLD ßüé}| & \MakeUppercase{hello WORLD ßüé} \\
diff --git a/macros/latex-dev/base/utf8ienc.pdf b/macros/latex-dev/base/utf8ienc.pdf
index d008d97030..3925b86fcb 100644
--- a/macros/latex-dev/base/utf8ienc.pdf
+++ b/macros/latex-dev/base/utf8ienc.pdf
Binary files differ
diff --git a/macros/latex-dev/base/webcomp.pdf b/macros/latex-dev/base/webcomp.pdf
index 735f72c3b8..ce28e4400f 100644
--- a/macros/latex-dev/base/webcomp.pdf
+++ b/macros/latex-dev/base/webcomp.pdf
Binary files differ
diff --git a/macros/latex-dev/required/amsmath/README.md b/macros/latex-dev/required/amsmath/README.md
index ac10c989ea..05c4c7543a 100644
--- a/macros/latex-dev/required/amsmath/README.md
+++ b/macros/latex-dev/required/amsmath/README.md
@@ -1,7 +1,7 @@
The amsmath bundle for LaTeX
============================
-Release 2023-11-01 pre-release 0
+Release 2023-11-01 pre-release 1
Overview
--------
diff --git a/macros/latex-dev/required/amsmath/amsbsy.pdf b/macros/latex-dev/required/amsmath/amsbsy.pdf
index 87bfa6df03..60f9c08920 100644
--- a/macros/latex-dev/required/amsmath/amsbsy.pdf
+++ b/macros/latex-dev/required/amsmath/amsbsy.pdf
Binary files differ
diff --git a/macros/latex-dev/required/amsmath/amscd.pdf b/macros/latex-dev/required/amsmath/amscd.pdf
index bbfa58d70d..582d63279f 100644
--- a/macros/latex-dev/required/amsmath/amscd.pdf
+++ b/macros/latex-dev/required/amsmath/amscd.pdf
Binary files differ
diff --git a/macros/latex-dev/required/amsmath/amsgen.pdf b/macros/latex-dev/required/amsmath/amsgen.pdf
index 0a9a85254b..fdc060f165 100644
--- a/macros/latex-dev/required/amsmath/amsgen.pdf
+++ b/macros/latex-dev/required/amsmath/amsgen.pdf
Binary files differ
diff --git a/macros/latex-dev/required/amsmath/amsldoc.pdf b/macros/latex-dev/required/amsmath/amsldoc.pdf
index 288bb12445..2e31edf184 100644
--- a/macros/latex-dev/required/amsmath/amsldoc.pdf
+++ b/macros/latex-dev/required/amsmath/amsldoc.pdf
Binary files differ
diff --git a/macros/latex-dev/required/amsmath/amsmath.pdf b/macros/latex-dev/required/amsmath/amsmath.pdf
index 4a702bb99f..188ca0bb43 100644
--- a/macros/latex-dev/required/amsmath/amsmath.pdf
+++ b/macros/latex-dev/required/amsmath/amsmath.pdf
Binary files differ
diff --git a/macros/latex-dev/required/amsmath/amsopn.pdf b/macros/latex-dev/required/amsmath/amsopn.pdf
index 339f576260..cae09a4e59 100644
--- a/macros/latex-dev/required/amsmath/amsopn.pdf
+++ b/macros/latex-dev/required/amsmath/amsopn.pdf
Binary files differ
diff --git a/macros/latex-dev/required/amsmath/amstext.pdf b/macros/latex-dev/required/amsmath/amstext.pdf
index 09147c84e6..2da56e8d43 100644
--- a/macros/latex-dev/required/amsmath/amstext.pdf
+++ b/macros/latex-dev/required/amsmath/amstext.pdf
Binary files differ
diff --git a/macros/latex-dev/required/amsmath/amsxtra.pdf b/macros/latex-dev/required/amsmath/amsxtra.pdf
index 06c8eab3e7..f7d546fb5d 100644
--- a/macros/latex-dev/required/amsmath/amsxtra.pdf
+++ b/macros/latex-dev/required/amsmath/amsxtra.pdf
Binary files differ
diff --git a/macros/latex-dev/required/amsmath/changes.txt b/macros/latex-dev/required/amsmath/changes.txt
index 149da6b425..b038677206 100644
--- a/macros/latex-dev/required/amsmath/changes.txt
+++ b/macros/latex-dev/required/amsmath/changes.txt
@@ -1,3 +1,7 @@
+2023-08-24 David Carlisle <David.Carlisle@latex-project.org>
+
+ * testmath.tex: remove spaces before ~,
+
================================================================================
All changes above are only part of the development branch for the next release.
================================================================================
diff --git a/macros/latex-dev/required/amsmath/subeqn.pdf b/macros/latex-dev/required/amsmath/subeqn.pdf
index 5a72c25f09..72caa0c5e7 100644
--- a/macros/latex-dev/required/amsmath/subeqn.pdf
+++ b/macros/latex-dev/required/amsmath/subeqn.pdf
Binary files differ
diff --git a/macros/latex-dev/required/amsmath/technote.pdf b/macros/latex-dev/required/amsmath/technote.pdf
index 14fcc7374a..6f9c45f5a3 100644
--- a/macros/latex-dev/required/amsmath/technote.pdf
+++ b/macros/latex-dev/required/amsmath/technote.pdf
Binary files differ
diff --git a/macros/latex-dev/required/amsmath/testmath.pdf b/macros/latex-dev/required/amsmath/testmath.pdf
index 4f43dc57b0..c059693f3b 100644
--- a/macros/latex-dev/required/amsmath/testmath.pdf
+++ b/macros/latex-dev/required/amsmath/testmath.pdf
Binary files differ
diff --git a/macros/latex-dev/required/amsmath/testmath.tex b/macros/latex-dev/required/amsmath/testmath.tex
index 069944ee9d..c0df337015 100644
--- a/macros/latex-dev/required/amsmath/testmath.tex
+++ b/macros/latex-dev/required/amsmath/testmath.tex
@@ -1,41 +1,15 @@
%%% ====================================================================
-%%% @LaTeX-file{
-%%% filename = "testmath.tex",
-%%% version = "2.0",
-%%% date = "1999/11/15",
-%%% time = "15:09:17 EST",
-%%% checksum = "07762 2342 7811 82371",
-%%% author = "American Mathematical Society",
-%%% copyright = "Copyright 1995, 1999 American Mathematical Society,
-%%% all rights reserved. Copying of this file is
-%%% authorized only if either:
-%%% (1) you make absolutely no changes to your copy,
-%%% including name; OR
-%%% (2) if you do make changes, you first rename it
-%%% to some other name.",
-%%% address = "American Mathematical Society,
-%%% Technical Support,
-%%% Electronic Products and Services,
-%%% P. O. Box 6248,
-%%% Providence, RI 02940,
-%%% USA",
-%%% telephone = "401-455-4080 or (in the USA and Canada)
-%%% 800-321-4AMS (321-4267)",
-%%% FAX = "401-331-3842",
-%%% email = "tech-support@ams.org (Internet)",
-%%% codetable = "ISO/ASCII",
-%%% keywords = "latex, amsmath, examples, documentation",
-%%% supported = "yes",
-%%% abstract = "This is a test file containing extensive examples of
-%%% mathematical constructs supported by the amsmath
-%%% package.",
-%%% docstring = "The checksum field above contains a CRC-16
-%%% checksum as the first value, followed by the
-%%% equivalent of the standard UNIX wc (word
-%%% count) utility output of lines, words, and
-%%% characters. This is produced by Robert
-%%% Solovay's checksum utility.",
-%%% }
+%%% filename = testmath.tex
+%%% version = 2.0a
+%%% date = 2023/08/24
+%%% author = American Mathematical Society
+%%% copyright = Copyright 1995, 1999 American Mathematical Society
+%%% 2023 LaTeX Project.
+%%% License = https://www.latex-project.org/lppl/lppl-1-3c
+%%% keywords = latex, amsmath, examples, documentation
+%%% abstract = This is a test file containing extensive examples of
+%%% mathematical constructs supported by the amsmath
+%%% package."
%%% ====================================================================
\NeedsTeXFormat{LaTeX2e}% LaTeX 2.09 can't be used (nor non-LaTeX)
[1994/12/01]% LaTeX date must December 1994 or later
@@ -45,7 +19,7 @@
\title{Sample Paper for the \pkg{amsmath} Package\\
File name: \fn{testmath.tex}}
\author{American Mathematical Society}
-\date{Version 2.0, 1999/11/15}
+\date{Version 2.0a, 2023/08/24}
\usepackage{amsmath,amsthm}
@@ -250,7 +224,7 @@ Then, it follows that
\end{lem}
Note that all basic properties of determinants are direct consequences
-of Lemma ~\ref{lem-det}. Write
+of Lemma~\ref{lem-det}. Write
\begin{equation}\label{sum-bij}
\sum_{j\in\mathbf{n}}b_{ij}\hat y_j=\sum_{j\in\mathbf{n}}b^{(\lambda)}
_{ij}\hat y_j+(b_{ii}-\lambda_i)\hat y_i\hat y
@@ -325,7 +299,7 @@ D(t_1,\dots,t_n)
where $\mathbf{K}(t=1,t_1,\dots,t_n; i|i)$ is the $i$th principal
submatrix of $\mathbf{K}(t=1,t_1,\dots,t_n)$.
-Theorem ~\ref{thm-main} leads to
+Theorem~\ref{thm-main} leads to
\begin{equation}\label{detK1}
\det\mathbf{K}(t_1,t_1,\dots,t_n)
=\sum_{I\in\mathbf{n}}(-1)^{\envert{I}}t^{n-\envert{I}}
@@ -339,7 +313,7 @@ Note that
^{(\lambda)}(\overline{I}|\overline{I})=0.
\end{equation}
-Let $t_i=\hat x_i,i=1,\dots,n$. Lemma ~\ref{lem-per} yields
+Let $t_i=\hat x_i,i=1,\dots,n$. Lemma~\ref{lem-per} yields
\begin{multline}
\biggl(\sum_{\,i\in\mathbf{n}}a_{l _i}x_i\biggr)
\det\mathbf{K}(t=1,x_1,\dots,x_n;l |l )\\
@@ -381,8 +355,8 @@ D(t_1,\dots,t_n)}_{t_i=\left\{\begin{smallmatrix}
\section{Application}
\label{lincomp}
-We consider here the applications of Theorems~\ref{th-info-ow-ow} and
-~\ref{th-weak-ske-owf} to a complete
+We consider here the applications of Theorems~\ref{th-info-ow-ow}
+and~\ref{th-weak-ske-owf} to a complete
multipartite graph $K_{n_1\dots n_p}$. It can be shown that the
number of spanning trees of $K_{n_1\dots n_p}$
may be written
@@ -395,8 +369,7 @@ where
n=n_1+\dots+n_p.
\end{equation}
-It follows from Theorems~\ref{th-info-ow-ow} and
-~\ref{th-weak-ske-owf} that
+It follows from Theorems~\ref{th-info-ow-ow} and~\ref{th-weak-ske-owf} that
\begin{equation}\label{e:barwq}
\begin{split}
H_c&=\frac1{2n}
@@ -423,7 +396,7 @@ H_c&=\frac12\sum^{n-1}_{l =0}
\end{equation}
The enumeration of $H_c$ in a $K_{n_1\dotsm n_p}$ graph can also be
-carried out by Theorem ~\ref{thm-H-param} or ~\ref{thm-asym}
+carried out by Theorem~\ref{thm-H-param} or~\ref{thm-asym}
together with the algebraic method of \eqref{multdef}.
Some elegant representations may be obtained. For example, $H_c$ in
a $K_{n_1n_2n_3}$ graph may be written
@@ -499,7 +472,7 @@ We begin our discussion with the following definition:
A function $H\colon \Re^n \to \Re^n$ is said to be
\emph{B-differentiable} at the point $z$ if (i)~$H$ is Lipschitz
-continuous in a neighborhood of $z$, and (ii)~ there exists a positive
+continuous in a neighborhood of $z$, and (ii)~there exists a positive
homogeneous function $BH(z)\colon \Re^n \to \Re^n$, called the
\emph{B-derivative} of $H$ at $z$, such that
\[ \lim_{v \to 0} \frac{H(z+v) - H(z) - BH(z)v}{\enVert{v}} = 0. \]
@@ -1112,7 +1085,7 @@ A_l =
0,&\text{otherwise }.\end{cases}
\label{compl-bip-gr}
\end{equation}
-Theorem ~\ref{thm-H-param}
+Theorem~\ref{thm-H-param}
leads to
\begin{equation}
H_c=\frac1{n_1+n_2}n_1!n_2!\delta_{n_1n_2}.
diff --git a/macros/latex-dev/required/firstaid/changes.txt b/macros/latex-dev/required/firstaid/changes.txt
index e326957807..17d8f9acdf 100644
--- a/macros/latex-dev/required/firstaid/changes.txt
+++ b/macros/latex-dev/required/firstaid/changes.txt
@@ -1,3 +1,10 @@
+2023-07-18 Ulrike Fischer <Ulrike.Fischer@latex-project.org>
+ * latex2e-first-aid-for-external-files.dtx: remove no longer needed code for
+ everysel
+ * latex2e-first-aid-for-external-files.dtx: remove no longer needed code for bidi
+ * latex2e-first-aid-for-external-files.dtx:
+ remove no longer needed code for memoir/stockheight
+
2023-05-20 Ulrike Fischer <Ulrike.Fischer@latex-project.org>
* latex2e-first-aid-for-external-files.dtx: removed temporary fix for
@@ -137,5 +144,3 @@
* latex2e-first-aid-for-external-files.dtx:
Initial version for 2020-10-01 release containing first aid
for packages bidi, filehook and class dinbrief.
-
-
diff --git a/macros/latex-dev/required/firstaid/firstaid.ins b/macros/latex-dev/required/firstaid/firstaid.ins
index cd5ea2006d..b3f30c30da 100644
--- a/macros/latex-dev/required/firstaid/firstaid.ins
+++ b/macros/latex-dev/required/firstaid/firstaid.ins
@@ -3,7 +3,7 @@
%% driver files from the doc files in this package when run through
%% LaTeX or TeX.
%%
-%% Copyright (C) 2020-2021
+%% Copyright (C) 2020-2023
%% The LaTeX Project and any individual authors listed elsewhere
%% in this file.
%%
@@ -44,7 +44,7 @@ reports for it can be opened at https://latex-project.org/bugs/
(but please observe conditions on bug reports sent to that address!)
-Copyright (C) 2020-2021
+Copyright (C) 2020-2023
The LaTeX Project and any individual authors listed elsewhere
in this file.
@@ -72,7 +72,4 @@ without such generated files.
\generate{\file{filehook-ltx.sty}
{\from{latex2e-first-aid-for-external-files.dtx}{filehook-ltx}}}
-\generate{\file{everysel-ltx.sty}
- {\from{latex2e-first-aid-for-external-files.dtx}{everysel-ltx}}}
-
\endbatchfile
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 90958ed777..d1eeaf5ce2 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{2023/05/20}
-\def\LaTeXFirstAidVersion{v1.0z}
+\def\LaTeXFirstAidDate{2023/07/18}
+\def\LaTeXFirstAidVersion{v1.1a}
% \end{macrocode}
%
% \begin{macrocode}
@@ -285,62 +285,10 @@
%</filehook-ltx>
% \end{macrocode}
%
-%
-%
-%
-% \subsection{The \pkg{bidi} package first aid}
-%
-% The \pkg{bidi} package adds a lot of hooks in various places and
-% those added to \cs{document} and \cs{enddocument} are now no
-% longer necessary as the kernel already provides the right hooks
-% there.
-%
-% However, we aren't trying to change that but instead only make
-% sure that the existing patches still work by adding some first
-% aid after \pkg{biditools} has been loaded.
-%
-% If the package gets updated one can easily take that out simply
-% through
-%\begin{verbatim}
-% \RemoveFromHook{file/biditools.sty/after}[firstaid]
-%\end{verbatim}
-% This makes it easy to test new bidi code while the first aid code
-% is still in the kernel.
-%
% \begin{macrocode}
%<*kernel>
% \end{macrocode}
%
-% Bidi is now ar a new version: patches are no longer needed.
-% \begin{macrocode}
-%\AddToHook{file/biditools.sty/after}[firstaid]{%
-% \FirstAidNeededT{biditools}{sty}%
-% {2020/05/13 v2 Programming tools for bidi package}%
-% {%
-% \end{macrocode}
-% \pkg{bidi} adds some code to the beginning of \cs{document} which
-% contains \cs{endgroup} and \cs{begingroup} which is no longer
-% correct.
-%
-% Patching \cs{document} using \cs{bidi@patchcmd} doesn't work so
-% we take the extra groups out by hand:
-% \begin{macrocode}
-% \def\firstaid@bidi@document@patch
-% \endgroup#1\begingroup#2\firstaid@bidi@document@patch
-% {\unexpanded{#1#2}}%
-% \edef\document{\expandafter\firstaid@bidi@document@patch\document
-% \firstaid@bidi@document@patch}%
-% \end{macrocode}
-% There are also some patches into \cs{enddocument}, some continue
-% to go in but one fails, so we add that now into the right place.
-% \begin{macrocode}
-% \AddToHook{enddocument/info}%
-% {\let\bidi@AfterEndDocumentCheckLabelsRerun\@firstofone
-% \bidi@afterenddocumentchecklabelsrerunhook}%
-% }%
-%}
-% \end{macrocode}
-%
% \subsection{The \pkg{dinbrief} class first aid}
%
% Again a case of a no longer correct \cs{endgroup} in document.
@@ -482,46 +430,6 @@
%</kernel>
% \end{macrocode}
%
-% \subsection{The \pkg{everysel} package first aid}
-%
-%
-% The \cs{selectfont} command got a hook (with the 2021/05 release) which
-% was originally provided by the \pkg{everysel}
-% package. Now that it is in the kernel this package is no longer
-% needed (or only in a simplified manner).
-%
-% If it is requested we replace it with a simplified package
-% (until) it gets updated at which point this line can be removed.
-% \changes{v2.2k}{2020/12/04}{Emulate everysel package}
-% \begin{macrocode}
-%<*kernel>
-% this has been updated
-%\declare@file@substitution{everysel.sty}{everysel-ltx.sty}
-%</kernel>
-% \end{macrocode}
-%
-%
-%
-% \begin{macrocode}
-%<*everysel-ltx>
-\ProvidesPackage{everysel-ltx}
- [2020/12/04 v1.0a
- Emulation of the original everysel^^Jpackage with kernel methods]
-% \end{macrocode}
-%
-% \begin{macrocode}
-\newcommand*{\EverySelectfont}[1]
- {\AddToHook{selectfont}{#1}}
-\newcommand*{\AtNextSelectfont}[1]
- {\AddToHookNext{selectfont}{#1}}
-% \end{macrocode}
-%
-%
-% \begin{macrocode}
-%</everysel-ltx>
-% \end{macrocode}
-%
-%
%
% \begin{macrocode}
%<*kernel>
@@ -652,31 +560,6 @@
}
% \end{macrocode}
%
-%
-% \subsection{First aid for \pkg{memoir}}
-%
-% The introduction of \cs{stockheight} and \cs{stockwidth} into the
-% kernel requires some first aid. This has to go in \emph{before}
-% loading the class, so we cannot check the version string here.
-% \begin{macrocode}
-\AddToHook{file/memoir.cls/before}[firstaid]{%
- \expandafter\def\expandafter\@tempa\string\dimen{}%
- \edef\kernel@stockheight{\expandafter\@tempa\meaning\stockheight}%
- \edef\kernel@stockwidth{\expandafter\@tempa\meaning\stockwidth}%
- \let\stockheight\@undefined
- \let\stockwidth\@undefined
-}
-\AddToHook{file/memoir.cls/after}[firstaid]{%
- \dimen\kernel@stockheight=\stockheight
- \dimen\kernel@stockwidth=\stockwidth
- \dimendef\stockheight=\kernel@stockheight
- \dimendef\stockwidth=\kernel@stockwidth
-}
-% \end{macrocode}
-%
-%
-%
-%
% \begin{macrocode}
%</kernel>
% \end{macrocode}
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 991a11ec54..c024fad142 100644
--- 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
Binary files differ
diff --git a/macros/latex/contrib/arraycols/arraycols.dtx b/macros/latex/contrib/arraycols/arraycols.dtx
index 43dc0fe7ea..b3a438be98 100644
--- a/macros/latex/contrib/arraycols/arraycols.dtx
+++ b/macros/latex/contrib/arraycols/arraycols.dtx
@@ -20,7 +20,7 @@
%<*package>
\NeedsTeXFormat{LaTeX2e}[2005/12/01]
\ProvidesPackage{arraycols}
- [2023/08/09 v1.3 .dtx arraycols file]
+ [2023/09/13 v1.4 .dtx arraycols file]
%</package>
%<*driver>
\documentclass{ltxdoc}
@@ -29,6 +29,12 @@
\usepackage[french,english]{babel}
\usepackage{lmodern}
\usepackage{arraycols}
+
+\usepackage{sectsty}
+\usepackage{xcolor}
+\definecolor{darkbrown}{rgb}{0.5,0.1,0.1}
+\allsectionsfont{\color{darkbrown}}
+
\DisableCrossrefs
%\CodelineIndex
%\RecordChanges
@@ -72,9 +78,11 @@
% \changes{v1.0}{2019/05/04}{Initial version, creating dtx and ins files}
% \changes{v1.0}{2019/06/17}{English translation by François Bastouil}
% \changes{v1.1}{2020/11/23}{Incompatibility with tablestyles mentioned,
-% minor changes in documentation}
-% \changes{v1.2}{2021/09/20}{Incompatibility with siunitx package (called by pstricks-add) is solved}
-% \changes{v1.3}{2023/09/08}{Small changes in the documentation}
+% minor changes in documentation}
+% \changes{v1.2}{2021/09/20}{Incompatibility with siunitx package
+% (called by pstricks-add) is solved}
+% \changes{v1.3}{2023/08/09}{Small changes in documentation}
+% \changes{v1.4}{2023/09/13}{More changes in documentation}
%
% \GetFileInfo{arraycols.sty}
%
@@ -82,15 +90,16 @@
% corresponds to \textsf{arraycols}~\fileversion, dated \filedate.
% Thanks to François Bastouil for assistance with the English translation.}}
% \author{Antoine Missier \\ \texttt{antoine.missier@ac-toulouse.fr}}
-% \date{August 9, 2023}
+% \date{September 13, 2023}
% \maketitle
%
% \section{Introduction}
%
-% This package introduces new predefined column types for tables, alongside
-% the \textsf{array} package by Frank Mittelbach and David Carlisle~\cite{ARRAY}. It also includes a command for wide horizontal rule drawing.
+% This package introduces new predefined column types for tables, in addition to
+% the \textsf{array} package by Frank Mittelbach and David Carlisle~\cite{ARRAY}.
+% It also includes a command for wide horizontal rule drawing.
% Below is a summary of the column types and macro defined by \textsf{arraycols},
-% with further to follow.
+% which will be detailed in the following section.
%
% \begin{center}\small \setlength{\extrarowheight}{1pt}
% \begin{tabular}{|cIm{7.9cm}|}
@@ -112,7 +121,8 @@
% \hline
% \texttt{y} & Left-aligned column in math mode with adjusted height \\
% \hline
-% \texttt{z}\marg{width} & Centered column in math mode, similar to \texttt{x}, with adjusted height,
+% \texttt{z}\marg{width} & Centered column in math mode, similar to \texttt{x},
+% with adjusted height,
% but with fixed \meta{width} \\
% \hline
% \texttt{T} & Centered text column with adjusted width
@@ -132,62 +142,66 @@
% \end{tabular}
% \end{center}
%
-% Note that if a column type has been previously defined,
+% Note that if a column type has been previously defined by another package,
% using \textsf{arraycols} will overwrite it and display a warning message.
%
-% In addition to loading the \textsf{array} package, \textsf{arraycols} also requires the \textsf{cellspace} package~\cite{CELLSP},
-% which is necessary for the \texttt{x}, \texttt{y}, \texttt{z} and \texttt{Z} column types. Moreover it relies on
+% In addition to loading the \textsf{array} package, \textsf{arraycols}
+% also requires \textsf{cellspace}~\cite{CELLSP},
+% which is necessary for the \texttt{x}, \texttt{y}, \texttt{z} and \texttt{Z} column types.
+% Moreover it relies on
% \textsf{tabularx}~\cite{TABX} for \texttt{T} and \texttt{Z} column types and
% loads \textsf{makecell}~\cite{MKCELL} for creation of multilined tabular cells.
% It's worth mentioning that the \textsf{tablestyles} package~\cite{TBLSTY}
-% also defines L, C, R and Z column types differently.
+% also defines L, C, R and Z column types, but differently.
% Nevertheless, \textsf{tablestyles} is incompatible with \textsf{makecell}
% and consequently with \textsf{arraycols} as well.
%
-% Despite its minimal code, this package does not aim to introduce new macros.
-% Its main purpose is to combine and configure features derived from other packages.
+% With its minimal code, \textsf{arraycols} makes no claim to develop new macros.
+% Its purpose is to combine and configure functionalities derived from other packages.
%
% \section{Usage}
%
%\medskip
% \DescribeEnv{L} \DescribeEnv{C} \DescribeEnv{R}
% Referring to an example from the \textsf{array} package documentation,
-% the |L|, |C| and |R| columns types, offered by \textsf{arraycols}, provide the convenience
-% of reversing the mathematical mode.
+% the |L|, |C| and |R| columns types, enable the
+% reversal of the mathematical mode.
% This allows to achieve centered, left-aligned or right-aligned
% LR-mode in an \texttt{array} environment or an equivalent math-mode
% in a \texttt{tabular} environment.
% For instance, using the declaration "\begin{tabular}{|l|C|r|}" sets the second column
% in centered mathematical mode. Similarly, using the declaration "\begin{array}{|L|c|c|}"
-% sets the first column\footnote{The declarations
+% sets the first column in text mode, left-aligned\footnote{The declarations
% \texttt{L, C, R} do not work in a \texttt{tabularx} environment.
% Additionally, the \mbox{\textsf{tabulary}} package by David Carlisle~\cite{TABY}
-% already defines the \texttt{L, C, R} and \texttt{J} column types for specific alignments
+% already defines the \texttt{L, C, R} (and \texttt{J}) column types for specific alignments
% in tables of the same type as \texttt{tabularx}.
-% However there is no incompatibility with \textsf{arraycols} because these column definitions
-% apply exclusively in \texttt{tabulary} environments.
-% } in text mode, left-aligned.
+% However, there is no incompatibility with \textsf{arraycols} because these column definitions
+% apply exclusively within \texttt{tabulary} environments.
+% }.
%
% \medskip
% \DescribeEnv{t\marg{width}}
-% The newly introduced column type definition \texttt{t}\{\meta{width}\} (text in LR-mode)
-% achieves both horizontal and vertical centering within the column. It is distinct from the traditional
-% \texttt{p}\marg{width} (in standard \LaTeX) and \texttt{m}\marg{width}
-% (from the \textsf{array} package) column types, which are equivalent to
-% "\parbox[t]" or "\parbox".
+% The newly introduced column type definition \texttt{t}\{\meta{width}\}
+% horizontally and vertically centers paragraphs within the column,
+% with a specified \meta{width}.
+% In contrast, the traditional \texttt{p}\marg{width} (in standard \LaTeX)
+% and \texttt{m}\marg{width} (from the \textsf{array} package) column types,
+% justifies paragraphs, while text in \texttt{t}\{\meta{width}\} is centered.
%
% \medskip
% \DescribeEnv{x} \DescribeEnv{y}
% In order to guarantee adequate row heights, especially for displaymath mode
% formulas, the package includes the column types \texttt{x} (centered)
-% and \texttt{y} (left aligned), based on the \textsf{cellspace} package
+% and \texttt{y} (left aligned).
+% These column types activate the mathematical mode and
+% allow automatic adjustment of row heights to prevent any overlap with
+% horizontal rules in cases where the content is too tall,
+% thanks to a functionality of the \textsf{cellspace} package
% by Josselin Noirel~\cite{CELLSP}.
-% These column types allow automatic adjustment of row heights to prevent any overlap with
-% horizontal rules in cases where the content is too tall.
% While \textsf{cellspace} is initially designed for \texttt{tabular} environments,
-% the new \texttt{x} and \texttt{y} column types, introduces by \mbox{\textsf{arraycols}},
-% generate mathematically well-adjusted columns.
-% They are applicable in both \texttt{tabular} and \texttt{array} environments.
+% the new \texttt{x} and \texttt{y} column types
+% are applicable in both \texttt{tabular} and \texttt{array} environments.
% Examine the following examples created using
% "\begin{array}{|c|}" and "\begin{array}{|x|}".
% \[
@@ -222,24 +236,26 @@
% \og the \textsf{amsmath} package can be loaded beforehand with other
% packages (such as \texttt{empheq} or \texttt{mathtools}),
% were an incompatibility to arise from one’s loading it later\fg.}
-% to effectively manage row heights in matrix tables.
+% to efficiently manage row heights, including in matrices.
% Another option of \textsf{cellspace}, \texttt{column=Q}
% (with \texttt{S} being the default in \textsf{cellspace})\footnote{The
-% selection of the letter Q to substitute the default column modifier S of the \textsf{cellspace}
-% package is here arbitrary.}, was necessary to prevent any compatibility issues
+% letter Q is a substitute for the default column modifier S of the \textsf{cellspace}
+% package.}, was necessary to prevent any compatibility issues
% with the \textsf{siunitx} package (also loaded by \textsf{pstricks-add}).
-% The \texttt{Q} column type serves as a \og modifier \fg{}
-% that, when combined with the traditional
-% column types \texttt{l, c, r}, permits the adjustment of cell height.
+% The \texttt{Q} declaration serves as a \og modifier \fg{}
+% that, when placed before a column type declaration,
+% permits the adjustment of cell height,
+% for instance ``\texttt{Qc}'' for a vertical adjustment
+% within a centered column type.
%
% \medskip
% Notice that another package, \textsf{booktabs}~\cite{BOOK}, also offers
% excellent row height adjustment. However, regrettably, it doesn't handle the height
-% of vertical separators "|".
+% of vertical separators ``"|"''.
% In order to achieve a similar vertical adjustment as \textsf{booktabs},
-% we configure the \textsf{cellspace} parameters as follows:\\
-% "\setlength{\cellspacetoplimit}{3pt}", \\
-% "\setlength{\cellspacebottomlimit}{2pt}".
+% we set the \textsf{cellspace} parameters as follows:\\
+% \indent\indent"\setlength{\cellspacetoplimit}{3pt}", \\
+% \indent\indent"\setlength{\cellspacebottomlimit}{2pt}".
%
% Additionally, it's worth mentioning the \textsf{tabls} package by Donald Arneseau~\cite{TABLS}
% that makes a good adjustment of row heights as well, but it is incompatible
@@ -253,21 +269,25 @@
%
% \medskip
% \DescribeEnv{z\marg{width}}
-% The \texttt{z}\marg{width} column type allows you to define the column width,
-% just like \texttt{t}\marg{width},
-% and it also activates math mode and adjusts the row height,
-% similar to the \texttt{x} column type.
+% The \texttt{z}\marg{width} column type activates the mathematical mode
+% and allows to define the column width,
+% similar to \texttt{t}\marg{width}.
+% It also adjusts the row height, akin to the \texttt{x} column type.
+% The content consist of a single line. When it becomes too wide, it may protrude to the right.
%
% \medskip
% \DescribeEnv{T} \DescribeEnv{Z}
% The \textsf{tabularx} package by David Carlisle~\cite{TABX} introduces
-% the \texttt{X} column definition, which calculates its width based on
+% the \texttt{X} column definition, which calculates its width in relation to
% the required width for the entire table. It aligns text to the left
-% akin to \texttt{p}\marg{width}.
-% For instance, using "\begin{tabularx}{8cm}{|c|X|X|}" adjusts the width of the \texttt{X} columns
+% similar to \texttt{p}\marg{width}.
+% For instance, using "\begin{tabularx}{8cm}{|c|X|X|}"
+% adjusts the width of the \texttt{X} columns
% to achieve a total width of 8\,cm. To complement this, we offer
-% the \texttt{T} declaration, which performs a similar function but centers the content horizontally.
-% Additionally the \texttt{Z} declaration goes further by activating mathematical mode and adjusting
+% the \texttt{T} declaration, which performs a similar function
+% but centers the content horizontally.
+% Additionally the \texttt{Z} declaration activates mathematical
+% mode and adjusts
% line heights, comparable to \texttt{x} or \texttt{z}). Here's an example with
% "\begin{tabularx}{\linewidth}{|T|y|x|Z|T|}".
% \begin{center}
@@ -281,24 +301,30 @@
% \hline
% \end{tabularx}
% \end{center}
-% In order to maintain precise alignment of fraction bars within mathematical formulas,
-% cells are deliberately not vertically centered. Nevertheless, for achieving accurate vertical positioning
-% within the last cell, we have used the powerful "\makecell" command from
+% Observe that cells 3 and 4 are not vertically centered to preserve
+% the precise alignment of fraction bars within mathematical formulas
+% across cells.
+% For achieving accurate vertical positioning
+% within the last cell, we have used the powerful "\makecell"\oarg{pos}\marg{content}
+% command from
% the \textsf{makecell} package by Olga Lapko~\cite{MKCELL}:
% "\makecell{a multi-line \\ piece of text}".
%
% \bigskip
-% \DescribeEnv{I} \DescribeEnv{V\marg{thickness}}
+% \DescribeEnv{I} \DescribeEnv{V\marg{thickness}}
% The column definition \texttt{I} is mentioned in The \LaTeX\ Companion~\cite{COMP}
-% and allows for drawing a thicker \emph{vertical} line (1\,pt thick) compared to the one achieved
-% with the standard declaration "|". For selecting the line thickness, we additionally provide the column
+% and allows for drawing a thicker \emph{vertical} line (1\,pt thick)
+% compared to the one achieved
+% with the standard declaration ``"|"''. For selecting the line thickness,
+% we additionally provide the column
% definition \texttt{V}\marg{thickness}\footnote{The definition of \texttt{V}
-% would have been simplified by utilizing an optional argument for \texttt{I}, but unfortunately, this approach doesn't function.}.
+% would have been simplified by utilizing an optional argument for \texttt{I},
+% but unfortunately, this approach doesn't function.}.
%
% \medskip
% \DescribeMacro{\whline}
-% Similarly, the "\whline" command, suggested in The \LaTeX\ Companion, allows for drawing a
-% thicker \emph{horizontal} line (1\,pt thick) compared to the line obtained with "\hline".
+% Similarly, the "\whline" command, suggested in The \LaTeX\ Companion, enables the drawing of
+% a thicker \emph{horizontal} line (1\,pt thick) compared to the line obtained with "\hline".
% Moreover, the \textsf{makecell} package provides the command "\Xhline"\marg{thickness}
% enabling the choice of horizontal rule thickness.
%
@@ -307,12 +333,13 @@
% serving as a separator between the two text columns.
% Horizontal rules at the beginning and end of the table are accomplished using "\whline",
% while a "\Xhline{0.8pt}" rule is employed after the legend rows.
-% The formatting of header rows is achieved using the "\thead" command from the \textsf{makecell}
-% package. By default, \textsf{arraycols} sets:
+% The formatting of header rows is achieved using the "\thead" command
+% from the \textsf{makecell} package. By default, \textsf{arraycols} sets:
% "\renewcommand\theadfont{\footnotesize\sffamily}"
-% (initially |\footnotesize| only, without "\sffamily").
+% (in \textsf{makecell} it is |\footnotesize| only, without "\sffamily").
% Lastly, following a recommendation of the \textsf{array} package~\cite{ARRAY},
-% an additional 1\,pt has been added to the standard height of each row within this table. This adjustment is implemented with the command
+% an additional 1\,pt has been added to the standard height of each row within this table.
+% This adjustment is implemented with the command
% "\setlength{\extrarowheight}{1pt}"\footnote{As stated
% in the \textsf{array} package documentation:
% \og This is important for tables with horizontal lines because those
@@ -332,7 +359,8 @@
\newcolumntype{R}{>{$}r<{$}}
\newcolumntype{t}[1]{>{\centering\arraybackslash}m{#1}}
% \end{macrocode}
-% The \textsf{cellspace} package offers the \texttt{S} modifier (we used \texttt{Q} instead), which,
+% The \textsf{cellspace} package provides the \texttt{S} modifier
+% (we used \texttt{Q} instead), which,
% when placed before a column declaration, allows for the adjustment of cell content height
% to prevent any overlap with horizontal rules. The spacing between the content and the rules
% is governed by the parameters
@@ -345,20 +373,28 @@
\setlength{\cellspacebottomlimit}{2pt}
\newcolumntype{z}[1]{>{$}Q{>{\centering\arraybackslash}p{#1}}<{$}}
% \end{macrocode}
-% When defining the \texttt{z} column type, we employ the \texttt{p} column type instead of \texttt{m}
-% (which centers content automatically). This choice ensures proper alignment of mathematical
+% For the \texttt{z} column type, we employed the \texttt{p} declaration
+% instead of \texttt{m} (which should automatically center content).
+% This choice ensures proper alignment of mathematical
% expressions within cells of the same row.
+% The same result can be achieved with the following definition:
+% "\newcolumntype{z}[1]{>{$}Q{W{c}{#1}}<{$}}" with "W{c}" defined
+% in the \textsf{array} package.
+%
% \medskip
% \begin{macrocode}
\newcolumntype{T}{>{\centering\arraybackslash}X}
\newcolumntype{Z}{>{$}QT<{$}}
% \end{macrocode}
-% The \texttt{T} columns are not centered automatically. Although it's possible to achieve this
+% Like \texttt{X}, the \texttt{T} columns are not vertically centered.
+% Although it's possible to achieve this
% by using the command "\renewcommand{\tabularxcolumn}[1]{m{#1}}"
% (with \texttt{m} instead of default value \texttt{p}),
% unfortunately, this approach has a global effect on all column declarations based
% on \texttt{X}, including \texttt{T} and \texttt{Z}. As a result, it could disrupt the
% alignment of mathematical expressions within cells of the same row.
+%
+% \medskip
% \begin{macrocode}
\newcolumntype{I}{!{\vrule width 1pt}}
\newcolumntype{V}[1]{!{\vrule width #1}}
@@ -371,6 +407,7 @@
\renewcommand\theadfont{\footnotesize\sffamily}
% \end{macrocode}
%
+% \bigskip
% \begin{thebibliography}{11}
% \bibitem{ARRAY} \emph{A new implementation of LATEX’s \textsf{tabular} and \textsf{array}
% environment}, Frank Mittelbach, David Carlisle, CTAN, v2.4k revised 2018/12/30.
@@ -384,7 +421,8 @@
% \bibitem{BOOK} \emph{Publication quality tables in \LaTeX}, package \textsf{booktabs} by
% Simon Fear, CTAN, v1.618033 2016/04/29.
% \bibitem{TABLS} \emph{The \textsf{tabls} package}, Donald Arseneau, CTAN, v3.5 2010/02/26.
-% \bibitem{STRUT} \emph{The \textsf{multirow}, \textsf{bigstrut} and \textsf{bigdelim} packages},
+% \bibitem{STRUT} \emph{The \textsf{multirow}, \textsf{bigstrut}
+% and \textsf{bigdelim} packages},
% Piet van Oostrum, Øystein Bache, Jerry Leichter, CTAN, v2.4 2019/01/01.
% \bibitem{SPA} \emph{The \textsf{spacingtricks} package}, Antoine Missier,
% CTAN, v1.3 2020/11/02.
diff --git a/macros/latex/contrib/arraycols/arraycols.pdf b/macros/latex/contrib/arraycols/arraycols.pdf
index d66dd231be..b42c461d36 100644
--- a/macros/latex/contrib/arraycols/arraycols.pdf
+++ b/macros/latex/contrib/arraycols/arraycols.pdf
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/doc/JeuxCartes-doc.pdf b/macros/latex/contrib/jeuxcartes/doc/JeuxCartes-doc.pdf
index df8748d316..722121dd37 100644
--- a/macros/latex/contrib/jeuxcartes/doc/JeuxCartes-doc.pdf
+++ b/macros/latex/contrib/jeuxcartes/doc/JeuxCartes-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/doc/JeuxCartes-doc.tex b/macros/latex/contrib/jeuxcartes/doc/JeuxCartes-doc.tex
index 9b1ec0f77c..704c498ab7 100644
--- a/macros/latex/contrib/jeuxcartes/doc/JeuxCartes-doc.tex
+++ b/macros/latex/contrib/jeuxcartes/doc/JeuxCartes-doc.tex
@@ -69,8 +69,8 @@
\setlength{\parindent}{0pt}
\definecolor{LightGray}{gray}{0.9}
-\def\TPversion{0.2.7}
-\def\TPdate{08 août 2023}
+\def\TPversion{0.2.8}
+\def\TPdate{13 septembre 2023}
\usepackage[most]{tcolorbox}
\usepackage[outputdir=build]{minted}
@@ -182,6 +182,8 @@ Une commande pour des cartes en version \og miniatures \fg{} (individuelle, main
\hfill{}\textit{Merci aux membres du groupe \faFacebook{} du \og Coin \LaTeX{} \fg{} pour leur aide et leurs idées !}
+\hfill{}\textit{Merci à Fabrice Eudes pour ses retours !}
+
\vfill
\hrule
@@ -209,6 +211,8 @@ Une commande pour des cartes en version \og miniatures \fg{} (individuelle, main
\part{Historique}
+{\small \bverb|v0.2.8|~:~~~~Correction d'un bug mineur sur les commandes 'multicartes'.
+
{\small \bverb|v0.2.7|~:~~~~Retour en arrière sur les cartes de Tarot \textsf{v2} qui sont supprimées (pb de licence).
{\small \bverb|v0.2.5|~:~~~~Compatibilité des \textit{Mini}-Cartes avec les cartes avec nom anglais.
diff --git a/macros/latex/contrib/jeuxcartes/tex/JeuxCartes.sty b/macros/latex/contrib/jeuxcartes/tex/JeuxCartes.sty
index daee9c4690..575e251551 100644
--- a/macros/latex/contrib/jeuxcartes/tex/JeuxCartes.sty
+++ b/macros/latex/contrib/jeuxcartes/tex/JeuxCartes.sty
@@ -11,7 +11,8 @@
% Uno v1 cards Image's Licence.: MIT License https://eperezcosano.github.io/uno-part1/
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{JeuxCartes}[2023/08/08 v0.2.7 Jeux de cartes]
+\ProvidesPackage{JeuxCartes}[2023/09/13 v0.2.8 Jeux de cartes]
+% 0.2.8 Correction de bugs mineurs
% 0.2.7 Retour en arrière design v2 tarot (pb de licence)
% 0.2.5 Correction d'un dysfonctionnement avec le J qui peut désormais être utilisé en MiniCarte avec le Joker [en] + MiniMains [en]
% 0.2.4 Style <fr> avec cartes françaises + <bicycl> + modification des clés avec l'ajout de <StyleJeu> + Suppression xcolor
@@ -143,7 +144,7 @@
\readlist*\ListeCartesMain{#2}%
\def\NbCartesMain{\ListeCartesMainlen}%nbcartes
%main côte à côte
- \foreach \i in {1,2,...,\ListeCartesMainlen}{%
+ \foreach \i in {1,...,\ListeCartesMainlen}{%
\itemtomacro\ListeCartesMain[\i]\CarteMain%
\AffCarteJeu[TypeJeu=\MainSimpleJeuType,StyleJeu=\MainSimpleJeuStyle,Hauteur=\MainSimpleHauteur]{\CarteMain}%
}%
@@ -219,7 +220,7 @@
\foreach \i in {\ListeCartesMainlen,\inteval{\ListeCartesMainlen-1},...,1}
}%
{%
- \foreach \i in {1,2,...,\ListeCartesMainlen}
+ \foreach \i in {1,...,\ListeCartesMainlen}
}%
{%
\itemtomacro\ListeCartesMain[\i]\CarteMain%
@@ -358,7 +359,7 @@
\foreach \i in {#2,\inteval{#2-1},...,1}
}%
{%
- \foreach \i in {1,2,...,#2}
+ \foreach \i in {1,...,#2}
}%
{%début du foreach
\GetItem{CartesJeuMelange}{\inteval{\CarteDebutRand+\i-1}}{CarteMainChoisie}%
@@ -550,7 +551,7 @@
}%
{}%
%création de la main
- \foreach \i in {1,2,...,#2}{%
+ \foreach \i in {1,...,#2}{%
\GetItem{MiniCartesJeuMelange}{\inteval{\i-1}}{MiniCarteMainChoisie}%
\AffMiniCarteJeu[FondAtout=\MiniMainAleaFondAtout,Largeur=\MiniMainAleaLargeur]{\MiniCarteMainChoisie}%
}%finpour
diff --git a/macros/latex/contrib/l3build/CHANGELOG.md b/macros/latex/contrib/l3build/CHANGELOG.md
index 7c6c7f83c4..f0af1e3c8c 100644
--- a/macros/latex/contrib/l3build/CHANGELOG.md
+++ b/macros/latex/contrib/l3build/CHANGELOG.md
@@ -7,6 +7,21 @@ this project uses date-based 'snapshot' version identifiers.
## [Unreleased]
+## [2023-09-13]
+
+### Added
+- Document ConTeXt as supported `checkformat`
+
+### Changed
+- Extend version string normalisation during checks
+ (see issue \#96)
+
+- Extend excludefiles to cover `build.lua` (see \#286)
+### Fixed
+- Return passing errorlevel if BibTeX issues warnings
+ (see \#260)
+- Respect `excludefiles` when doing (local) installation
+
## [2023-09-07]
### Changed
@@ -697,7 +712,8 @@ this project uses date-based 'snapshot' version identifiers.
- Rationalise short option names: removed `-d`, `-E`, `-r`
- Target `cmdcheck`: specific to LaTeX kernel work
-[Unreleased]: https://github.com/latex3/l3build/compare/2023-09-07...HEAD
+[Unreleased]: https://github.com/latex3/l3build/compare/2023-09-13...HEAD
+[2023-09-13]: https://github.com/latex3/l3build/compare/2023-09-07...2023-09-13
[2023-09-07]: https://github.com/latex3/l3build/compare/2023-09-05...2023-09-07
[2023-09-05]: https://github.com/latex3/l3build/compare/2023-07-20...2023-09-05
[2023-07-20]: https://github.com/latex3/l3build/compare/2023-07-17...2023-07-20
diff --git a/macros/latex/contrib/l3build/README.md b/macros/latex/contrib/l3build/README.md
index 825c32f55b..0b7cfe9f97 100644
--- a/macros/latex/contrib/l3build/README.md
+++ b/macros/latex/contrib/l3build/README.md
@@ -1,7 +1,7 @@
l3build: a testing and building system for LaTeX
=================================================
-Release 2023-09-07
+Release 2023-09-13
Overview
--------
diff --git a/macros/latex/contrib/l3build/l3build-check.lua b/macros/latex/contrib/l3build/l3build-check.lua
index 3e26de429b..3279f2c4a1 100644
--- a/macros/latex/contrib/l3build/l3build-check.lua
+++ b/macros/latex/contrib/l3build/l3build-check.lua
@@ -171,6 +171,9 @@ local function normalize_log(content,engine,errlevels)
-- Deal with dates
if match(line, "[^<]%d%d%d%d[/%-]%d%d[/%-]%d%d") then
line = gsub(line,"%d%d%d%d[/%-]%d%d[/%-]%d%d","....-..-..")
+ -- Semantic version-like ones
+ line = gsub(line,"v%d+%.%d+%.%d+[%d%a.+%-]*","v...")
+ -- Classical LaTeX version strings
line = gsub(line,"v%d+%.?%d?%d?%w?","v...")
end
-- Deal with leading spaces for file and page number lines
diff --git a/macros/latex/contrib/l3build/l3build-install.lua b/macros/latex/contrib/l3build/l3build-install.lua
index 64d29fc590..e96259caa3 100644
--- a/macros/latex/contrib/l3build/l3build-install.lua
+++ b/macros/latex/contrib/l3build/l3build-install.lua
@@ -215,6 +215,7 @@ function install_files(target,full,dry_run)
dir = dir or currentdir
include = include or { }
exclude = exclude or { }
+ insert(exclude,excludefiles)
local excludelist = { }
for _,glob_table in pairs(exclude) do
for _,glob in pairs(glob_table) do
diff --git a/macros/latex/contrib/l3build/l3build-typesetting.lua b/macros/latex/contrib/l3build/l3build-typesetting.lua
index d0e491d4c5..c12c544738 100644
--- a/macros/latex/contrib/l3build/l3build-typesetting.lua
+++ b/macros/latex/contrib/l3build/l3build-typesetting.lua
@@ -72,8 +72,10 @@ function bibtex(name,dir)
os_grepexe .. " \"^" .. grep .. "bibdata{\" " .. name .. ".aux > "
.. os_null
) == 0 then
- return runcmd(bibtexexe .. " " .. bibtexopts .. " " .. name,dir,
- {"BIBINPUTS","BSTINPUTS"})
+ local errorlevel = runcmd(bibtexexe .. " " .. bibtexopts .. " " .. name,
+ dir,{"BIBINPUTS","BSTINPUTS"})
+ -- BibTeX(8) signals warnings with errorlevel 1
+ if errorlevel > 1 then return errorlevel else return 0 end
end
end
return 0
diff --git a/macros/latex/contrib/l3build/l3build-variables.lua b/macros/latex/contrib/l3build/l3build-variables.lua
index 204c386f69..bbebf2fd08 100644
--- a/macros/latex/contrib/l3build/l3build-variables.lua
+++ b/macros/latex/contrib/l3build/l3build-variables.lua
@@ -83,7 +83,7 @@ cleanfiles = cleanfiles or {"*.log", "*.pdf", "*.zip"}
demofiles = demofiles or { }
docfiles = docfiles or { }
dynamicfiles = dynamicfiles or { }
-excludefiles = excludefiles or {"*~"}
+excludefiles = excludefiles or {"*~","build.lua","config-*.lua"}
exefiles = exefiles or { }
installfiles = installfiles or {"*.sty","*.cls"}
makeindexfiles = makeindexfiles or {"*.ist"}
diff --git a/macros/latex/contrib/l3build/l3build.1 b/macros/latex/contrib/l3build/l3build.1
index 87dbac2ce3..fbf4b84fda 100644
--- a/macros/latex/contrib/l3build/l3build.1
+++ b/macros/latex/contrib/l3build/l3build.1
@@ -1,4 +1,4 @@
-.TH l3build 1 "2023-09-07"
+.TH l3build 1 "2023-09-13"
.SH NAME
l3build \- Checking and building packages
.SH SYNOPSIS
diff --git a/macros/latex/contrib/l3build/l3build.dtx b/macros/latex/contrib/l3build/l3build.dtx
index d8778fcce7..b6787a1044 100644
--- a/macros/latex/contrib/l3build/l3build.dtx
+++ b/macros/latex/contrib/l3build/l3build.dtx
@@ -88,7 +88,7 @@
\luavarset{demofiles} {\{\}}{Files which show how to use a module}
\luavarset{docfiles} {\{\}}{Files which are part of the documentation but should not be typeset}
\luavarset{dynamicfiles} {\{ \}}{Secondary files to cleared before each test is run}
-\luavarset{excludefiles} {\{"*\string~"\}}{Files to ignore entirely (default for Emacs backup files)}
+\luavarset{excludefiles} {\{"*\string~","build.lua","config-*.lua"\}}{Files to ignore entirely (default for Emacs backup files)}
\luavarset{installfiles} {\{"*.sty","*.cls"\}}{Files to install to the \texttt{tex} area of the \texttt{texmf} tree}
\luavarset{makeindexfiles} {\{"*.ist"\}}{MakeIndex files to be included in a TDS-style zip}
\luavarset{scriptfiles} {\{ \}}{Files to install to the \texttt{scripts} area of the \texttt{texmf} tree}
@@ -251,7 +251,7 @@
% }^^A
% }
%
-% \date{Released 2023-09-07}
+% \date{Released 2023-09-13}
%
% \maketitle
% \tableofcontents
@@ -433,11 +433,13 @@
% configurations are used and need adjustment to the standard engine, this does
% need to be given explicitly using \var{stdengine}.
% The format used for tests can be altered by setting \var{checkformat}: the default setting \texttt{latex} means that tests are run using \emph{e.g.}~\texttt{pdflatex}, whereas setting to \texttt{tex} will run tests using \emph{e.g.}~\texttt{pdftex}.
-% (Currently, this should be one of \texttt{latex} or \texttt{tex}.)
+% (Currently, this should be one of \texttt{latex}, \texttt{tex}, or
+% \texttt{context}.)
% To perform the check, the engine typesets each test up to \var{checkruns} times.
% More detail on this in the documentation on |save|.
-% Options passed to the binary are defined in the variable \var{checkopts}.
-% These are applied in addition to any
+% Options passed to the binary are those defined in the variable
+% \var{checkopts}, followed by the engine-specific ones for the current
+% \var{checkformat} (stored in table \var{specialformats}), if exist.
%
% By default, |texmf| trees are searched for input files when checking. This can be disabled by setting \var{checksearch} to |false|: isolation provides confidence that the tests cannot accidentally be running with incorrect files installed in the main distribution or |hometexmf|.
%
@@ -819,12 +821,13 @@
% For more complex set ups, \var{specialformats} should be used. This is a
% table with one entry per \var{checkformat}. Each entry is itself a table,
% and these contain a list of engines and settings for |binary|, |format|
-% and |options|. For example, for Con\TeX{}t and appropriate set up is
+% and |options|. For example, the set up for Con\TeX{}t in \pkg{l3build} 2023-07-17 is
% \begin{verbatim}
% specialformats.context = {
-% luatex = {binary = "context", format = ""},
-% pdftex = {binary = "texexec", format = ""},
-% xetex = {binary = "texexec", format = "", options = "--xetex"}
+% luametatex = {binary = "context", format = ""},
+% luatex = {binary = "context", format = "", options = "--luatex"},
+% pdftex = {binary = "texexec", format = ""},
+% xetex = {binary = "texexec", format = "", options = "--xetex"}
% }
% \end{verbatim}
% Additional tokens can also be injected before the loading of a test file using
diff --git a/macros/latex/contrib/l3build/l3build.lua b/macros/latex/contrib/l3build/l3build.lua
index 1ac608c971..e520cd1811 100755
--- a/macros/latex/contrib/l3build/l3build.lua
+++ b/macros/latex/contrib/l3build/l3build.lua
@@ -25,7 +25,7 @@ for those people who are interested.
--]]
-- Version information
-release_date = "2023-09-07"
+release_date = "2023-09-13"
-- File operations are aided by the LuaFileSystem module
local lfs = require("lfs")
diff --git a/macros/latex/contrib/l3build/l3build.pdf b/macros/latex/contrib/l3build/l3build.pdf
index e713477fca..4e7c03759d 100644
--- a/macros/latex/contrib/l3build/l3build.pdf
+++ b/macros/latex/contrib/l3build/l3build.pdf
Binary files differ
diff --git a/macros/luatex/latex/lua-typo/README.md b/macros/luatex/latex/lua-typo/README.md
index 526538afb0..8f974434fa 100644
--- a/macros/luatex/latex/lua-typo/README.md
+++ b/macros/luatex/latex/lua-typo/README.md
@@ -90,7 +90,7 @@ Changes
* v.0.70:
- Options handled via `ltkeys` instead of `kvoptions`.
- - code cleaning, bug fixes.
+ - Code cleaning, bug fixes.
* v.0.80:
- Config file `lua-typo.cfg` changed (new colours added, all colour
@@ -99,6 +99,11 @@ Changes
added for lines affected by multiple flaws (f.i. widow+overfull).
- Bug fix (file `.typo`): in footnotes, line numbers for homeoarchy
were not reset.
+
+* v.0.85:
+ - A warning is issued if some pages fail to be checked properly.
+ - Margin notes checking added (over/underfull lines, position).
+ - Code cleaning, bug fixes.
--
Copyright 2020--2023 Daniel Flipo
diff --git a/macros/luatex/latex/lua-typo/doc/lua-typo-demo.pdf b/macros/luatex/latex/lua-typo/doc/lua-typo-demo.pdf
index 6606b65d36..e82b355c62 100644
--- a/macros/luatex/latex/lua-typo/doc/lua-typo-demo.pdf
+++ b/macros/luatex/latex/lua-typo/doc/lua-typo-demo.pdf
Binary files differ
diff --git a/macros/luatex/latex/lua-typo/doc/lua-typo-fr.pdf b/macros/luatex/latex/lua-typo/doc/lua-typo-fr.pdf
index 88dea3e4de..b117378ac8 100644
--- a/macros/luatex/latex/lua-typo/doc/lua-typo-fr.pdf
+++ b/macros/luatex/latex/lua-typo/doc/lua-typo-fr.pdf
Binary files differ
diff --git a/macros/luatex/latex/lua-typo/doc/lua-typo.pdf b/macros/luatex/latex/lua-typo/doc/lua-typo.pdf
index b43a1f75fe..be36b78a7e 100644
--- a/macros/luatex/latex/lua-typo/doc/lua-typo.pdf
+++ b/macros/luatex/latex/lua-typo/doc/lua-typo.pdf
Binary files differ
diff --git a/macros/luatex/latex/lua-typo/source/lua-typo.dtx b/macros/luatex/latex/lua-typo/source/lua-typo.dtx
index 4ec480c921..7809a01377 100644
--- a/macros/luatex/latex/lua-typo/source/lua-typo.dtx
+++ b/macros/luatex/latex/lua-typo/source/lua-typo.dtx
@@ -204,7 +204,7 @@
% \pkg{lua-typo}, il suffit d’ajouter dans le préambule la ligne %\\
% |\usepackage[All]{lua-typo}|
%
-% La version courante (0.80) nécessite un noyau LaTeX récent,
+% La version courante (0.85) nécessite un noyau LaTeX récent,
% 2022/06/01 ou ultérieur. Ceux qui ne disposent que d’un noyau
% antérieur à 2021/06/01 reçoivent un message d’erreur
% «\texttt{Unable to register callback}» ; une version «rollback »
@@ -269,6 +269,7 @@
% consécutives ?\\
% FootnoteSplit & Fin de note de bas de page sur page suivante?\\
% ShortFinalWord & Mot de fin de phrase court en haut de page\\
+% MarginparPos & Note marginale se terminant trop bas\\
% \hline
% \end{tabular}
% \end{table}
@@ -363,7 +364,7 @@
% La valeur donnée doit être un entier supérieur ou égal à~100,
% cette valeur 100 correspond à l’étirement maximal prévu par la
% fonte (|\fontdimen3|) ; avec ce réglage attendez-vous à trouver
-% une kyrielle de lignes les creuses ! En fait la valeur par défaut
+% une kyrielle de lignes creuses ! En fait la valeur par défaut
% (200) correspond approximativement à ce que TeX, avec les
% réglages par défaut (|\tolerance=200|, |\hbadness=1000|),
% considère comme \emph{Underfull hbox}.
@@ -380,7 +381,7 @@
% (trois lettres en commun), mais « mon » et « mont » en début de
% ligne échappent à la détection.
%
-% \item[EOLShortWords:] cette option signale la présence en fin de
+% \item[EOLShortWords:] cette option signale la présence en fin de
% ligne de mots très courts (une ou deux lettres)
% qui sont répertoriés dans une des listes
% suivantes (elles dépendent de la langue courante) :\\
@@ -405,6 +406,12 @@
% caractères}, donc entourée de simples ou doubles
% \emph{quotes} \textsc{ascii} et composées de mots séparés
% par des espaces comme dans les exemples ci-dessus.
+%
+% \item[\cs{luatypoMarginparTol}] est une \emph{dimension} qui vaut
+% |\baselineskip| par défaut; les notes marginales qui se
+% terminent à plus de |\luatypoMarginparTol| en dessous de la
+% dernière ligne de la page sont déclarées fautives.
+%
% \end{description}
%
% À chacune des vérifications faites par \pkg{lua-typo} peut être
@@ -432,6 +439,7 @@
% \luatypoSetColor{14}{cyan} % Note de bas de page éclatée
% \luatypoSetColor{15}{red} % Mot de fin de phrase en haut de page
% \luatypoSetColor{16}{LTline}% Ligne présentant plusieurs "défauts"
+% \luatypoSetColor{17}{red} % Note marginale se terminant trop bas
% \end{verbatim}
% \pkg{lua-typo} charge les extensions \pkg{luacolor} et donc
% \pkg{color}. Seules les couleurs portant un nom (\emph{named
@@ -512,7 +520,8 @@
% for them, a ``rollback’’ version of \pkg{lua-typo} is provided,
% it can be loaded this way: |\usepackage[All]{lua-typo}[=v0.4]|.
%
-% Version 0.80 requires a LaTeX kernel dated 2022/06/01 or later.
+% \enlargethispage*{\baselineskip}
+% Version 0.85 requires a LaTeX kernel dated 2022/06/01 or later.
% Another ``rollback’’ version |[=v0.65]| has been added for those
% who run an older kernel.
%
@@ -558,6 +567,7 @@
% LastWordMatch & same (part of) word ending two consecutive lines?\\
% FootnoteSplit & footnotes spread over two pages or more?\\
% ShortFinalWord & Short word ending a sentence on the next page\\
+% MarginparPos & Margin note ending too low on the page\\
% \hline
% \end{tabular}\\[12pt]
% For example, if you want \pkg{lua-typo} to only warn about overfull
@@ -574,6 +584,7 @@
% this option provides an easy way to get their names without having
% to look into the documentation.
%
+% \newpage
% With option \opt{None}, \pkg{lua-typo} \emph{does absolutely
% nothing}, all checks are disabled as the main function is not added
% to any LuaTeX callback. It not quite equivalent to commenting out
@@ -594,7 +605,8 @@
% \item[ShortFinalWord :] the first word on a page is highlighted
% if it ends a sentence and is short (up to |\luatypoMinLen=4|
% letters).
-% \end{description}
+%
+% \end{description}
%
% \section{Customisation}
%
@@ -682,7 +694,12 @@
% (\emph{i.e.} surrounded by single or double \textsc{ascii}
% quotes) made of your words separated by spaces.
%
-% \end{description}
+% \item[\cs{luatypoMarginparTol}] is a \emph{dimension} which
+% defaults to |\baselineskip|; marginal notes trigger a flaw
+% if they end lower than |\luatypoMarginparTol| under the page’s
+% last line.
+%
+% \end{description}
%
% It is possible to define a specific colour for each
% typographic flaws that \pkg{lua-typo} deals with.
@@ -706,8 +723,8 @@
% \luatypoSetColor{13}{LTgrey}% Paragraph’s last line nearly full
% \luatypoSetColor{14}{cyan} % Footnotes spread over two pages
% \luatypoSetColor{15}{red} % Short final word on top of the page
-% \luatypoSetColor{16}{LTline}% Line color for multiple flaws\end{verbatim}
-%
+% \luatypoSetColor{16}{LTline}% Line color for multiple flaws
+% \luatypoSetColor{17}{red} % Margin note ending too low\end{verbatim}
% \pkg{lua-typo} loads the \pkg{luacolor} package which loads the
% \pkg{color} package from the LaTeX graphic bundle.
% |\luatypoSetColor| requires named colours, so you can either use
@@ -728,7 +745,7 @@
%<+scan>\ProvidesPackage{scan-page}
%<+dtx>\ProvidesFile{lua-typo.dtx}
%<*dtx|sty|scan>
- [2023-04-28 v.0.80 Daniel Flipo]
+ [2023-09-13 v.0.85 Daniel Flipo]
%</dtx|sty|scan>
%<*sty>
% \fi
@@ -746,7 +763,7 @@
% \begin{macrocode}
\DeclareRelease{v0.4}{2021-01-01}{lua-typo-2021-04-18.sty}
\DeclareRelease{v0.65}{2023-03-08}{lua-typo-2023-03-08.sty}
-\DeclareCurrentRelease{}{2023-04-12}
+\DeclareCurrentRelease{}{2023-09-13}
% \end{macrocode}
%
% This package only runs with LuaLaTeX and requires packages
@@ -769,6 +786,7 @@
\newdimen\luatypoLLminWD
\newdimen\luatypoBackPI
\newdimen\luatypoBackFuzz
+\newdimen\luatypoMarginparTol
\newcount\luatypoStretchMax
\newcount\luatypoHyphMax
\newcount\luatypoPageMin
@@ -814,6 +832,7 @@ luatypo = { }
LastWordMatch.if = LT@LastWordMatch ,
FootnoteSplit.if = LT@FootnoteSplit ,
ShortFinalWord.if = LT@ShortFinalWord ,
+ MarginparPos.if = LT@MarginparPos ,
All.if = LT@All ,
All.code = \LT@ShortLinestrue \LT@ShortPagestrue
\LT@OverfullLinestrue \LT@UnderfullLinestrue
@@ -822,7 +841,7 @@ luatypo = { }
\LT@ParLastHyphentrue \LT@EOLShortWordstrue
\LT@FirstWordMatchtrue \LT@LastWordMatchtrue
\LT@BackParindenttrue \LT@FootnoteSplittrue
- \LT@ShortFinalWordtrue
+ \LT@ShortFinalWordtrue \LT@MarginparPostrue
}
\ProcessKeyOptions[luatypo]
% \end{macrocode}
@@ -929,6 +948,12 @@ luatypo = { }
\else
\directlua{ luatypo.ShortFinalWord = false }%
\fi
+ \ifLT@MarginparPos
+ \advance\luatypo@options by 1
+ \directlua{ luatypo.MarginparPos = true }%
+ \else
+ \directlua{ luatypo.MarginparPos = false }%
+ \fi
}
% \end{macrocode}
%
@@ -958,6 +983,7 @@ luatypo = { }
LastWordMatch [false]\MessageBreak
FootnoteSplit [false]\MessageBreak
ShortFinalWord [false]\MessageBreak
+ MarginparPos [false]\MessageBreak
\MessageBreak
*********************************************%
\MessageBreak Lua-typo [ShowOptions]
@@ -979,11 +1005,12 @@ luatypo = { }
% \end{macrocode}
% Ensure |MinFull|$\leq$|MinPart|.
% \begin{macrocode}
- luatypo.MinFull = math.min(luatypo.MinPart,luatypo.MinFull)
- luatypo.MinLen = tex.count.luatypoMinLen
- luatypo.LLminWD = tex.dimen.luatypoLLminWD
- luatypo.BackPI = tex.dimen.luatypoBackPI
- luatypo.BackFuzz = tex.dimen.luatypoBackFuzz
+ luatypo.MinFull = math.min(luatypo.MinPart,luatypo.MinFull)
+ luatypo.MinLen = tex.count.luatypoMinLen
+ luatypo.LLminWD = tex.dimen.luatypoLLminWD
+ luatypo.BackPI = tex.dimen.luatypoBackPI
+ luatypo.BackFuzz = tex.dimen.luatypoBackFuzz
+ luatypo.MParTol = tex.dimen.luatypoMarginparTol
% \end{macrocode}
% \changes{0.80}{2023/04/28}{New table `luatypo.map’ for colours.}
%
@@ -1006,6 +1033,16 @@ luatypo = { }
% (very) end of document and write the report file on disc,
% unless option |None| has been selected.
%
+% On every page, at least one line of text should be found.
+% Otherwise, \pkg{lua-typo} presumes something went wrong and
+% writes the page number to a |failedlist| list.
+% In case |pagelist| is empty \emph{and} |failedlist| \emph{is not},
+% a warning is issued instead of the \texttt{No Typo Flaws found.}
+% message (new to version~0.85).
+%
+% \changes{0.85}{2023/09/07}{Warn in case some pages failed to
+% be checked properly.}
+%
% \begin{macrocode}
\AtVeryEndDocument{%
\ifnum\luatypo@options = 0 \LT@Nonetrue \fi
@@ -1023,14 +1060,27 @@ luatypo = { }
texio.write_nl(' ')
texio.write_nl('*************************************')
if luatypo.pagelist == " " then
- texio.write_nl('*** lua-typo: No Typo Flaws found.')
+ if luatypo.failedlist == " " then
+ texio.write_nl('*** lua-typo: No Typo Flaws found.')
+ else
+ texio.write_nl('*** WARNING: ')
+ texio.write('lua-typo failed to scan these pages:')
+ texio.write_nl('***' .. luatypo.failedlist)
+ texio.write_nl('*** Please report to the maintainer.')
+ end
else
texio.write_nl('*** lua-typo: WARNING *************')
texio.write_nl('The following pages need attention:')
texio.write(luatypo.pagelist)
end
- texio.write_nl('***********************************')
+ texio.write_nl('*************************************')
texio.write_nl(' ')
+ if luatypo.failedlist == " " then
+ else
+ local prt = "WARNING: lua-typo failed to scan pages " ..
+ luatypo.failedlist .. "\string\n\string\n"
+ luatypo.buffer = prt .. luatypo.buffer
+ end
local fileout= tex.jobname .. ".typo"
local out=io.open(fileout,"w+")
out:write(luatypo.buffer)
@@ -1060,7 +1110,7 @@ luatypo = { }
local s = utf8.char(c)
luatypo.single[langno] = luatypo.single[langno] .. s
end
-%<dbg> texio.write_nl("SINGLE=" .. luatypo.single[langno])
+%<dbg> texio.write_nl('SINGLE=' .. luatypo.single[langno])
%<dbg> texio.write_nl(' ')
}%
\else
@@ -1079,7 +1129,7 @@ luatypo = { }
local s = utf8.char(c)
luatypo.double[langno] = luatypo.double[langno] .. s
end
-%<dbg> texio.write_nl("DOUBLE=" .. luatypo.double[langno])
+%<dbg> texio.write_nl('DOUBLE=' .. luatypo.double[langno])
%<dbg> texio.write_nl(' ')
}%
\else
@@ -1113,13 +1163,14 @@ luatypo = { }
%
% \begin{macrocode}
\begin{luacode}
-luatypo.colortbl = { }
-luatypo.map = { }
-luatypo.single = { }
-luatypo.double = { }
-luatypo.pagelist = " "
-luatypo.buffer = "List of typographic flaws found for "
- .. tex.jobname .. ".pdf:\string\n\string\n"
+luatypo.colortbl = { }
+luatypo.map = { }
+luatypo.single = { }
+luatypo.double = { }
+luatypo.pagelist = " "
+luatypo.failedlist = " "
+luatypo.buffer = "List of typographic flaws found for "
+ .. tex.jobname .. ".pdf:\string\n\string\n"
local char_to_discard = { }
char_to_discard[string.byte(",")] = true
@@ -1535,12 +1586,12 @@ local check_line_last_word =
new = utf8_gsub(new, "_+$", "") -- $
new = utf8_gsub(new, "^_+", "")
maxlen = math.min(utf8_len(old), utf8_len(new))
-%<dbg> texio.write_nl("EOLsigold=" .. old)
-%<dbg> texio.write(" EOLsig=" .. new)
+%<dbg> texio.write_nl('EOLsigold=' .. old)
+%<dbg> texio.write(' EOLsig=' .. new)
% \end{macrocode}
-% When called with flag |false|, |check_line_last_word| returns
-% the last word’s signature, but doesn’t compare it with the
-% previous line’s.
+% When called with flag |false|, |check_line_last_word| doesn’t
+% compare it with the previous line’s, but just returns the
+% last word’s signature.
% \begin{macrocode}
if flag and old ~= "" then
% \end{macrocode}
@@ -1571,11 +1622,11 @@ local check_line_last_word =
end
end
if oldsub == newsub then
-%<dbg> texio.write_nl("EOLnewsub=" .. newsub)
+%<dbg> texio.write_nl('EOLnewsub=' .. newsub)
match = true
end
if oldlast == newlast and utf8_len(newlast) >= MinFull then
-%<dbg> texio.write_nl("EOLnewlast=" .. newlast)
+%<dbg> texio.write_nl('EOLnewlast=' .. newlast)
if utf8_len(newlast) > MinPart or not match then
oldsub = oldlast
newsub = newlast
@@ -1621,13 +1672,13 @@ local check_line_last_word =
local c = nn.char
if not char_to_discard[c] then l = l + 1 end
end
-%<dbg> texio.write_nl("l (box)=" .. l)
+%<dbg> texio.write_nl('l (box)=' .. l)
elseif n then
color_node(n, COLOR)
li, newsub = signature(n, newsub, swap)
l = l + li - lo
lo = li
-%<dbg> texio.write_nl("l=" .. l)
+%<dbg> texio.write_nl('l=' .. l)
end
n = n.prev
end
@@ -1688,12 +1739,12 @@ local check_line_first_word =
new = utf8_gsub(new, "_+$", "") -- $
new = utf8_gsub(new, "^_+", "")
maxlen = math.min(utf8_len(old), utf8_len(new))
-%<dbg> texio.write_nl("BOLsigold=" .. old)
-%<dbg> texio.write(" BOLsig=" .. new)
+%<dbg> texio.write_nl('BOLsigold=' .. old)
+%<dbg> texio.write(' BOLsig=' .. new)
% \end{macrocode}
-% When called with flag |false|, |check_line_first_word| returns
-% the first word’s signature, but doesn’t compare it with the
-% previous line’s.
+% When called with flag |false|, |check_line_first_word| doesn’t
+% compare it with the previous line’s, but returns
+% the first word’s signature.
% \begin{macrocode}
if flag and old ~= "" then
local oldfirst = utf8_gsub (old, "_.*", "")
@@ -1713,11 +1764,11 @@ local check_line_first_word =
end
end
if oldsub == newsub then
-%<dbg> texio.write_nl("BOLnewsub=" .. newsub)
+%<dbg> texio.write_nl('BOLnewsub=' .. newsub)
match = true
end
if oldfirst == newfirst and utf8_len(newfirst) >= MinFull then
-%<dbg> texio.write_nl("BOLnewfirst=" .. newfirst)
+%<dbg> texio.write_nl('BOLnewfirst=' .. newfirst)
if utf8_len(newfirst) > MinPart or not match then
oldsub = oldfirst
newsub = newfirst
@@ -1741,7 +1792,7 @@ local check_line_first_word =
end
end
newsub = utf8_gsub(newsub, "_+$", "") --$
-%<dbg> texio.write_nl("BOLfullmatch=" .. newsub)
+%<dbg> texio.write_nl('BOLfullmatch=' .. newsub)
local msg = "B.O.L. MATCH=" .. newsub
log_flaw(msg, line, colno, footnote)
% \end{macrocode}
@@ -1832,7 +1883,7 @@ local check_page_first_word = function (node, colno, footnote)
match = true
end
end
-%<dbg> texio.write_nl("FinalWord=" .. new)
+%<dbg> texio.write_nl('FinalWord=' .. new)
if match then
local msg = "ShortFinalWord=" .. new
log_flaw(msg, 1, colno, footnote)
@@ -1981,11 +2032,11 @@ local footnoterule_ahead = function (head)
if totalht == 0 or totalht == ruleht then
flag = true
else
-%<dbg> texio.write_nl(" ")
-%<dbg> texio.write_nl("Not a footnoterule:")
-%<dbg> texio.write(" KERN height=" .. ht1)
-%<dbg> texio.write(" RULE height=" .. ht2)
-%<dbg> texio.write(" KERN height=" .. ht3)
+%<dbg> texio.write_nl(' ')
+%<dbg> texio.write_nl('Not a footnoterule:')
+%<dbg> texio.write(' KERN height=' .. ht1)
+%<dbg> texio.write(' RULE height=' .. ht2)
+%<dbg> texio.write(' KERN height=' .. ht3)
end
end
end
@@ -2013,15 +2064,108 @@ local check_EOP = function (node)
body_bot = true
elseif footnoterule_ahead(n) then
body_bot = true
-%<dbg> texio.write_nl("=> FOOTNOTE RULE ahead")
-%<dbg> texio.write_nl("check_vtop: last line before footnotes")
-%<dbg> texio.write_nl(" ")
+%<dbg> texio.write_nl('=> FOOTNOTE RULE ahead')
+%<dbg> texio.write_nl('check_vtop: last line before footnotes')
+%<dbg> texio.write_nl(' ')
end
return page_bot, body_bot
end
% \end{macrocode}
% \end{macro}
%
+% \changes{v0.85}{2023/09/07}{New function `check\_marginnote’.}
+%
+% \begin{macro}{check-marginnote}
+% This function checks margin notes for overfull/underfull lines;
+% It also warns if a margin note ends too low under the last line
+% of text.
+% \begin{macrocode}
+local check_marginnote = function (head, line, colno, vpos, bpmn)
+ local OverfullLines = luatypo.OverfullLines
+ local UnderfullLines = luatypo.UnderfullLines
+ local MarginparPos = luatypo.MarginparPos
+ local margintol = luatypo.MParTol
+ local marginpp = tex.getdimen("marginparpush")
+ local pflag = false
+ local ofirst = true
+ local ufirst = true
+ local n = head.head
+ local bottom = vpos
+ if vpos <= bpmn then
+ bottom = bpmn + marginpp
+ end
+%<dbg> texio.write_nl('*** Margin note? ***')
+ repeat
+ if n and (n.id == GLUE or n.id == PENALTY) then
+%<dbg> texio.write_nl(' Found GLUE or PENALTY')
+ n = n.next
+ elseif n and n.id == VLIST then
+%<dbg> texio.write_nl(' Found VLIST')
+ n = n.head
+ end
+ until not n or (n.id == HLIST and n.subtype == LINE)
+ local head = n
+ if head then
+%<dbg> texio.write_nl(' Found HLIST')
+ else
+%<dbg> texio.write_nl(' No text line found.')
+ end
+%<dbg> local l = 0
+ local last = head
+ while head do
+ local next = head.next
+ if head.id == HLIST and head.subtype == LINE then
+%<dbg> l = l + 1
+%<dbg> texio.write_nl(' Checking line ' .. l)
+ bottom = bottom + head.height + head.depth
+ local first = head.head
+ local linewd = head.width
+ local hmax = linewd + tex.hfuzz
+ local w,h,d = dimensions(1,2,0, first)
+ local Stretch = math.max(luatypo.Stretch/100,1)
+ if w > hmax and OverfullLines then
+%<dbg> texio.write(': Overfull!')
+ pflag = true
+ local COLOR = luatypo.colortbl[8]
+ color_line (head, COLOR)
+ if ofirst then
+ local msg = "OVERFULL line(s) in margin note"
+ log_flaw(msg, line, colno, false)
+ ofirst = false
+ end
+ elseif head.glue_set > Stretch and head.glue_sign == 1 and
+ head.glue_order == 0 and UnderfullLines then
+%<dbg> texio.write(': Underfull!')
+ pflag = true
+ local COLOR = luatypo.colortbl[9]
+ color_line (head, COLOR)
+ if ufirst then
+ local msg = "UNDERFULL line(s) in margin note"
+ log_flaw(msg, line, colno, false)
+ ufirst = false
+ end
+ end
+ end
+ last = head
+ head = next
+ end
+ local textht = tex.getdimen("textheight")
+%<dbg> local tht = string.format("%.1fpt", textht/65536)
+%<dbg> local bott = string.format("%.1fpt", bottom/65536)
+%<dbg> texio.write_nl(' Bottom=' .. bott)
+%<dbg> texio.write(' TextBottom=' ..tht)
+ if bottom > textht + margintol and MarginparPos then
+ pflag = true
+ local COLOR = luatypo.colortbl[17]
+ color_line (last, COLOR)
+ local msg = "Margin note too low"
+ log_flaw(msg, line, colno, false)
+ end
+ return bottom, pflag
+end
+% \end{macrocode}
+% \end{macro}
+%
% \begin{macro}{get-pagebody}
% The next function scans the \node{vlist}s on the current
% page in search of the page body.
@@ -2038,29 +2182,29 @@ local get_pagebody = function (head)
repeat
fn = fn.next
until fn.id == VLIST and fn.height > 0
-%<dbg> texio.write_nl(" ")
+%<dbg> texio.write_nl(' ')
%<dbg> local ht = string.format("%.1fpt", fn.height/65536)
%<dbg> local dp = string.format("%.1fpt", fn.depth/65536)
-%<dbg> texio.write_nl("get_pagebody: TOP VLIST")
-%<dbg> texio.write(" ht=" .. ht .. " dp=" .. dp)
+%<dbg> texio.write_nl('get_pagebody: TOP VLIST')
+%<dbg> texio.write(' ht=' .. ht .. ' dp=' .. dp)
first = fn.list
for n in traverse_id(VLIST,first) do
if n.subtype == 0 and n.height == textht then
%<dbg> local ht = string.format("%.1fpt", n.height/65536)
-%<dbg> texio.write_nl("BODY found: ht=" .. ht)
-%<dbg> texio.write_nl(" ")
+%<dbg> texio.write_nl('BODY found: ht=' .. ht)
+%<dbg> texio.write_nl(' ')
body = n
break
else
-%<dbg> texio.write_nl("Skip short VLIST:")
+%<dbg> texio.write_nl('Skip short VLIST:')
%<dbg> local ht = string.format("%.1fpt", n.height/65536)
%<dbg> local dp = string.format("%.1fpt", n.depth/65536)
-%<dbg> texio.write(" ht=" .. ht .. " dp=" .. dp)
+%<dbg> texio.write(' ht=' .. ht .. ' dp=' .. dp)
first = n.list
for n in traverse_id(VLIST,first) do
if n.subtype == 0 and n.height == textht then
%<dbg> local ht = string.format("%.1fpt", n.height/65536)
-%<dbg> texio.write_nl(" BODY: ht=" .. ht)
+%<dbg> texio.write_nl(' BODY: ht=' .. ht)
body = n
break
end
@@ -2068,7 +2212,7 @@ local get_pagebody = function (head)
end
end
if not body then
- texio.write_nl("***lua-typo ERROR: PAGE BODY *NOT* FOUND!***")
+ texio.write_nl('***lua-typo ERROR: PAGE BODY *NOT* FOUND!***')
end
return body
end
@@ -2120,6 +2264,7 @@ check_vtop = function (top, colno, vpos)
vpos_min = vpos_min * 1.5
local linewd = tex.getdimen("textwidth")
local first_bot = true
+ local done = false
local footnote = false
local ftnsplit = false
local orphanflag = false
@@ -2135,6 +2280,7 @@ check_vtop = function (top, colno, vpos)
local pageline = 0
local ftnline = 0
local line = 0
+ local bpmn = 0
local body_bottom = false
local page_bottom = false
local pageflag = false
@@ -2154,9 +2300,11 @@ check_vtop = function (top, colno, vpos)
% \end{macrocode}
% This is a text line, store its width, increment counters
% |pageline| or |ftnline| and |line| (for |log_flaw|).
-% Let’s update |vpos| (vertical position in `sp’ units) too.
+% Let’s update |vpos| (vertical position in `sp’ units) and
+% set flag |done| to |true|.
% \begin{macrocode}
vpos = vpos + head.height + head.depth
+ done = true
local linewd = head.width
local first = head.head
local ListItem = false
@@ -2256,15 +2404,15 @@ check_vtop = function (top, colno, vpos)
% Does the first word and the one on the previous line match
% (except lists)?
% \begin{macrocode}
- if FirstWordMatch then
- local flag = not ListItem and (line > 1)
- firstwd, flag =
- check_line_first_word(firstwd, first, line, colno,
- flag, footnote)
- if flag then
- pageflag = true
- end
+ if FirstWordMatch then
+ local flag = not ListItem and (line > 1)
+ firstwd, flag =
+ check_line_first_word(firstwd, first, line, colno,
+ flag, footnote)
+ if flag then
+ pageflag = true
end
+ end
% \end{macrocode}
% Check the page’s first word (end of sentence?).
% \begin{macrocode}
@@ -2277,12 +2425,19 @@ check_vtop = function (top, colno, vpos)
% and |pn| are the last two nodes.
% \begin{macrocode}
local ln = slide(first)
+% \end{macrocode}
+% Skip a possible RULE pointing an overfull line.
+% \begin{macrocode}
+ if ln.id == RULE and ln.subtype == 0 then
+ ln = ln.prev
+ end
local pn = ln.prev
if pn and pn.id == GLUE and pn.subtype == PARFILL then
% \end{macrocode}
% CASE 1: this line ends the paragraph, reset |ftnsplit| and |orphan|
% flags to false…
% \begin{macrocode}
+%<dbg> texio.write_nl('EOL CASE 1: end of paragraph')
hyphcount = 0
ftnsplit = false
orphanflag = false
@@ -2302,8 +2457,8 @@ check_vtop = function (top, colno, vpos)
local llwd = linewd - PFskip
%<dbg> local PFskip_pt = string.format("%.1fpt", PFskip/65536)
%<dbg> local llwd_pt = string.format("%.1fpt", llwd/65536)
-%<dbg> texio.write_nl("PFskip= " .. PFskip_pt)
-%<dbg> texio.write(" llwd= " .. llwd_pt)
+%<dbg> texio.write_nl('PFskip= ' .. PFskip_pt)
+%<dbg> texio.write(' llwd= ' .. llwd_pt)
% \end{macrocode}
% |llwd| is the line’s length. Is it too short?
% \begin{macrocode}
@@ -2347,6 +2502,7 @@ check_vtop = function (top, colno, vpos)
% \end{macrocode}
% CASE 2: the current line ends with an hyphen.
% \begin{macrocode}
+%<dbg> texio.write_nl('EOL CASE 2: hyphen')
hyphcount = hyphcount + 1
if hyphcount > HYPHmax and RepeatedHyphens then
local COLOR = luatypo.colortbl[3]
@@ -2400,10 +2556,11 @@ check_vtop = function (top, colno, vpos)
end
% \end{macrocode}
% CASE 3: the current line ends with anything else (\node{glyph},
-% \node{mkern}, \node{hlist}, etc.), reset |hyphcount|, check for
-% `LastWordMatch’ and `EOLShortWords’.
+% \node{mkern}, \node{hlist}, etc.), then reset |hyphcount| and
+% check for `LastWordMatch’ and `EOLShortWords’.
% \begin{macrocode}
else
+%<dbg> texio.write_nl('EOL CASE 3')
hyphcount = 0
% \end{macrocode}
% Track matching words at end of line and short words.
@@ -2485,6 +2642,36 @@ check_vtop = function (top, colno, vpos)
color_line (head, COLOR)
backpar = false
end
+ elseif head and head.id == HLIST and head.subtype == BOX and
+ head.width > 0 then
+ if head.height == 0 then
+% \end{macrocode}
+% This is a possible margin note.
+% \begin{macrocode}
+ bpmn, pflag = check_marginnote(head, line, colno, vpos, bpmn)
+ if pflag then pageflag = true end
+ else
+% \end{macrocode}
+% Leave |check_vtop| if a two columns box starts.
+% \begin{macrocode}
+ local hf = head.list
+ if hf and hf.id == VLIST and hf.subtype == 0 then
+%<dbg> texio.write_nl('check_vtop: BREAK => multicol')
+%<dbg> texio.write_nl(' ')
+ break
+ else
+% \end{macrocode}
+% \changes{v0.80}{2023/04/18}{hlist-2: added detection of page bottom
+% and increment line number and vpos.}
+% This is an |\hbox| (f.i.\ centred), let’s update |vpos|, line
+% and check for page bottom
+% \begin{macrocode}
+ vpos = vpos + head.height + head.depth
+ pageline = pageline + 1
+ line = pageline
+ page_bottom, body_bottom = check_EOP (nextnode)
+ end
+ end
elseif head.id == HLIST and
(head.subtype == EQN or head.subtype == ALIGN) and
(head.height > 0 or head.depth > 0) then
@@ -2561,8 +2748,8 @@ check_vtop = function (top, colno, vpos)
% If it is, set the |footnote| flag and reset some counters
% and flags for the coming footnote lines.
% \begin{macrocode}
-%<dbg> texio.write_nl("check_vtop: footnotes start")
-%<dbg> texio.write_nl(" ")
+%<dbg> texio.write_nl('check_vtop: footnotes start')
+%<dbg> texio.write_nl(' ')
footnote = true
ftnline = 0
body_bottom = false
@@ -2580,15 +2767,15 @@ check_vtop = function (top, colno, vpos)
if first_bot then
%<dbg> local vpos_pt = string.format("%.1fpt", vpos/65536)
%<dbg> local vmin_pt = string.format("%.1fpt", vpos_min/65536)
-%<dbg> texio.write_nl("pageline=" .. pageline)
-%<dbg> texio.write_nl("vpos=" .. vpos_pt)
-%<dbg> texio.write(" vpos_min=" .. vmin_pt)
+%<dbg> texio.write_nl('pageline=' .. pageline)
+%<dbg> texio.write_nl('vpos=' .. vpos_pt)
+%<dbg> texio.write(' vpos_min=' .. vmin_pt)
%<dbg> if page_bottom then
%<dbg> local tht = tex.getdimen("textheight")
%<dbg> local tht_pt = string.format("%.1fpt", tht/65536)
-%<dbg> texio.write(" textheight=" .. tht_pt)
+%<dbg> texio.write(' textheight=' .. tht_pt)
%<dbg> end
-%<dbg> texio.write_nl(" ")
+%<dbg> texio.write_nl(' ')
if pageline > 1 and pageline < PAGEmin
and vpos < vpos_min and ShortPages then
pageshort = true
@@ -2619,38 +2806,20 @@ check_vtop = function (top, colno, vpos)
% This is a |\vbox|, let’s update |vpos|.
% \begin{macrocode}
vpos = vpos + head.height + head.depth
- elseif head.id == HLIST and head.subtype == BOX then
-% \end{macrocode}
-% \changes{v0.80}{2023/04/18}{hlist-2: added detection of page bottom
-% and increment line number and vpos.}
-%
-% This is an |\hbox| (f.i.\ centred), let’s update |vpos|, line
-% and check for page bottom
-% \begin{macrocode}
- vpos = vpos + head.height + head.depth
- pageline = pageline + 1
- line = pageline
- page_bottom, body_bottom = check_EOP (nextnode)
- local hf = head.list
-% \end{macrocode}
-% Leave |check_vtop| if a two columns box starts.
-% \begin{macrocode}
- if hf and hf.id == VLIST and hf.subtype == 0 then
-%<dbg> texio.write_nl("check_vtop: BREAK => multicol")
-%<dbg> texio.write_nl(" ")
- break
- end
+%<dbg> local tht = head.height + head.depth
+%<dbg> local tht_pt = string.format("%.1fpt", tht/65536)
+%<dbg> texio.write(' vbox: height=' .. tht_pt)
end
head = nextnode
end
%<dbg> if nextnode then
-%<dbg> texio.write("Exit check_vtop, next=")
+%<dbg> texio.write('Exit check_vtop, next=')
%<dbg> texio.write(tostring(node.type(nextnode.id)))
-%<dbg> texio.write("-".. nextnode.subtype)
+%<dbg> texio.write('-'.. nextnode.subtype)
%<dbg> else
-%<dbg> texio.write_nl("Exit check_vtop, next=nil")
+%<dbg> texio.write_nl('Exit check_vtop, next=nil')
%<dbg> end
-%<dbg> texio.write_nl("")
+%<dbg> texio.write_nl('')
% \end{macrocode}
% Update the list of flagged pages avoiding duplicates:
% \begin{macrocode}
@@ -2661,9 +2830,10 @@ check_vtop = function (top, colno, vpos)
luatypo.pagelist = luatypo.pagelist .. tostring(pageno) .. ", "
end
end
- return head
+ return head, done
% \end{macrocode}
% |head| is nil unless |check_vtop| exited on a two column start.
+% |done| is true unless |check_vtop| found no text line.
% \begin{macrocode}
end
% \end{macrocode}
@@ -2686,49 +2856,71 @@ end
% \begin{macrocode}
luatypo.check_page = function (head)
local textwd = tex.getdimen("textwidth")
- local vpos = 0
- local n2, n3, col, colno
+ local textht = tex.getdimen("textheight")
+ local checked, boxed, n2, n3, col, colno
local body = get_pagebody(head)
+ local pageno = tex.getcount("c@page")
+ local vpos = 0
local footnote = false
local top = body
local first = body.list
- if (first and first.id == HLIST and first.subtype == BOX) or
- (first and first.id == VLIST and first.subtype == 0) then
+ local next
+ local count = 0
+%<dbg> texio.write_nl('Body=' .. tostring(node.type(top.id)))
+%<dbg> texio.write('-' .. tostring(top.subtype))
+%<dbg> texio.write('; First=' .. tostring(node.type(first.id)))
+%<dbg> texio.write('-' .. tostring(first.subtype))
+%<dbg> texio.write_nl(' ')
+ if ((first and first.id == HLIST and first.subtype == BOX) or
+ (first and first.id == VLIST and first.subtype == 0)) and
+ (first.width == textwd and first.height > 0 and not boxed) then
% \end{macrocode}
% Some classes (\cls{memoir}, \cls{tugboat} …) use one more level
-% of bowing, let’s step down one level.
+% of bowing for two columns, let’s step down one level.
% \begin{macrocode}
%<dbg> local boxwd = string.format("%.1fpt", first.width/65536)
-%<dbg> texio.write_nl("One step down: boxwd=" .. boxwd)
-%<dbg> texio.write_nl(" ")
+%<dbg> texio.write_nl('One step down: boxwd=' .. boxwd)
+%<dbg> texio.write_nl(' ')
top = body.list
- first = top.list
+% \end{macrocode}
+% A float on top of a page is a VLIST-0 included in a VLIST-0 (body),
+% it should not trigger this step down. Workaround: the body will be
+% read again.
+% \begin{macrocode}
+ if first.id == VLIST then
+ boxed = body
+ end
end
% \end{macrocode}
% Main loop:
% \begin{macrocode}
while top do
first = top.list
-%<dbg> texio.write_nl("Page loop: top=" .. tostring(node.type(top.id)))
-%<dbg> texio.write("-" .. top.subtype)
-%<dbg> texio.write_nl(" ")
+ next = top.next
+%<dbg> count = count + 1
+%<dbg> texio.write_nl('Page loop' .. count)
+%<dbg> texio.write(': top=' .. tostring(node.type(top.id)))
+%<dbg> texio.write('-' .. tostring(top.subtype))
+%<dbg> if first then
+%<dbg> texio.write(' first=' .. tostring(node.type(first.id)))
+%<dbg> texio.write('-' .. tostring(first.subtype))
+%<dbg> end
if top and top.id == VLIST and top.subtype == 0 and
- top.width > textwd/2 then
+ top.width > textwd/2 then
% \end{macrocode}
% Single column, run |check_vtop| on the top vlist.
% \begin{macrocode}
%<dbg> local boxht = string.format("%.1fpt", top.height/65536)
%<dbg> local boxwd = string.format("%.1fpt", top.width/65536)
-%<dbg> texio.write_nl("**VLIST: ")
+%<dbg> texio.write_nl('**VLIST: ')
%<dbg> texio.write(tostring(node.type(top.id)))
-%<dbg> texio.write("-" .. top.subtype)
-%<dbg> texio.write(" wd=" .. boxwd .. " ht=" .. boxht)
-%<dbg> texio.write_nl(" ")
- local next = check_vtop(top,colno,vpos)
- if next then
- top = next
- elseif top then
- top = top.next
+%<dbg> texio.write('-' .. tostring(top.subtype))
+%<dbg> texio.write(' wd=' .. boxwd .. ' ht=' .. boxht)
+%<dbg> texio.write_nl(' ')
+ local n, ok = check_vtop(top,colno,vpos)
+ if ok then checked = true end
+ if n then
+ next = n
end
elseif (top and top.id == HLIST and top.subtype == BOX) and
(first and first.id == VLIST and first.subtype == 0) and
@@ -2737,23 +2929,24 @@ luatypo.check_page = function (head)
% Two or more columns, each one is boxed in a vlist.\par
% Run |check_vtop| on every column.
% \begin{macrocode}
-%<dbg> texio.write_nl("**MULTICOL type1:")
-%<dbg> texio.write_nl(" ")
+%<dbg> texio.write_nl('**MULTICOL type1:')
+%<dbg> texio.write_nl(' ')
colno = 0
for col in traverse_id(VLIST, first) do
colno = colno + 1
-%<dbg> texio.write_nl("Start of col." .. colno)
-%<dbg> texio.write_nl(" ")
- check_vtop(col,colno,vpos)
-%<dbg> texio.write_nl("End of col." .. colno)
-%<dbg> texio.write_nl(" ")
+%<dbg> texio.write_nl('Start of col.' .. colno)
+%<dbg> texio.write_nl(' ')
+ local n, ok = check_vtop(col,colno,vpos)
+ if ok then checked = true end
+%<dbg> texio.write_nl('End of col.' .. colno)
+%<dbg> texio.write_nl(' ')
end
colno = nil
top = top.next
-%<dbg> texio.write_nl("MULTICOL type1 END: next=")
+%<dbg> texio.write_nl('MULTICOL type1 END: next=')
%<dbg> texio.write(tostring(node.type(top.id)))
-%<dbg> texio.write("-" .. top.subtype)
-%<dbg> texio.write_nl(" ")
+%<dbg> texio.write('-' .. tostring(top.subtype))
+%<dbg> texio.write_nl(' ')
elseif (top and top.id == HLIST and top.subtype == BOX) and
(first and first.id == HLIST and first.subtype == BOX) and
(first.height > 0 and first.width > 0) then
@@ -2762,25 +2955,38 @@ luatypo.check_page = function (head)
% holds a vlist.\par
% Run |check_vtop| on every column.
% \begin{macrocode}
-%<dbg> texio.write_nl("**MULTICOL type2:")
-%<dbg> texio.write_nl(" ")
+%<dbg> texio.write_nl('**MULTICOL type2:')
+%<dbg> texio.write_nl(' ')
colno = 0
for n in traverse_id(HLIST, first) do
colno = colno + 1
local col = n.list
if col and col.list then
-%<dbg> texio.write_nl("Start of col." .. colno)
-%<dbg> texio.write_nl(" ")
- check_vtop(col,colno,vpos)
-%<dbg> texio.write_nl("End of col." .. colno)
-%<dbg> texio.write_nl(" ")
+%<dbg> texio.write_nl('Start of col.' .. colno)
+%<dbg> texio.write_nl(' ')
+ local n, ok = check_vtop(col,colno,vpos)
+ if ok then checked = true end
+%<dbg> texio.write_nl('End of col.' .. colno)
+%<dbg> texio.write_nl(' ')
end
end
colno = nil
- top = top.next
- else
- top = top.next
end
+% \end{macrocode}
+% Workaround for top floats: check the whole body again.
+% \begin{macrocode}
+ if boxed and not next then
+ next = boxed
+ boxed = nil
+ end
+ top = next
+ end
+ if not checked then
+ luatypo.failedlist = luatypo.failedlist .. tostring(pageno) .. ", "
+%<dbg> texio.write_nl(' ')
+%<dbg> texio.write_nl('WARNING: no text line found on page ')
+%<dbg> texio.write(tostring(pageno))
+%<dbg> texio.write_nl(' ')
end
return true
end
@@ -2842,6 +3048,7 @@ return luatypo.check_page
\luatypoSetColor{14}{cyan}% Footnote split
\luatypoSetColor{15}{red}% Too short first (final) word on the page
\luatypoSetColor{16}{LTline}% Line color for multiple flaws
+ \luatypoSetColor{17}{red}% Margin note ending too low
\luatypoBackPI=1em\relax
\luatypoBackFuzz=2pt\relax
\ifdim\parindent=0pt \luatypoLLminWD=20pt\relax
@@ -2852,12 +3059,13 @@ return luatypo.check_page
\luatypoMinFull=3\relax
\luatypoMinPart=4\relax
\luatypoMinLen=4\relax
+ \luatypoMarginparTol=\baselineskip
}%
% \end{macrocode}
% \iffalse
%</sty>
% \fi
-% \clearpage
+%
% \section{Configuration file}
%
% \iffalse
@@ -2892,8 +3100,12 @@ return luatypo.check_page
\luatypoMinPart=4\relax
%% Minimum number of characters for the first word on a page if it ends
-%% a sentence.
-\luatypoMinLen=4\relax
+%% a sentence (version >= 0.65).
+\ifdefined\luatypoMinLen \luatypoMinLen=4\relax\fi
+
+%% Acceptable marginpars must end at |\luatypoMarginparTol| under
+%% the page’s last line or above (version >= 0.85).
+\ifdefined\luatypoMarginparTol \luatypoMarginparTol=\baselineskip \fi
%% Default colours = red, cyan, blue, LTgrey, LTred, LTline.
\definecolor{LTgrey}{gray}{0.6}
@@ -2915,6 +3127,7 @@ return luatypo.check_page
\luatypoSetColor{14}{cyan}% Footnote split
\luatypoSetColor{15}{red}% Too short first (final) word on the page
\luatypoSetColor{16}{LTline}% Line color for multiple flaws
+\luatypoSetColor{17}{red}% Margin note ending too low
%% Language specific settings (example for French):
%% short words (two letters max) to be avoided at end of lines.
@@ -2984,12 +3197,12 @@ return luatypo.check_page
\AtVeryEndDocument{%
\directlua{
- texio.write_nl(" ")
- texio.write_nl("***************************")
- texio.write_nl("*** PAGE SCANNING ONLY: ***")
- texio.write_nl("*** NO CHECK PERFORMED! ***")
- texio.write_nl("***************************")
- texio.write_nl(" ")
+ texio.write_nl(' ')
+ texio.write_nl('***************************')
+ texio.write_nl('*** PAGE SCANNING ONLY: ***')
+ texio.write_nl('*** NO CHECK PERFORMED! ***')
+ texio.write_nl('***************************')
+ texio.write_nl(' ')
}%
}
@@ -3003,6 +3216,7 @@ luatypo.single = { }
luatypo.double = { }
luatypo.colortbl = { }
luatypo.pagelist = " "
+luatypo.failedlist = " "
local hyphcount = 0
local pageno = 0
@@ -3055,20 +3269,20 @@ local get_pagebody = function (head)
for n in traverse_id(VLIST,first) do
if n.subtype == 0 and n.height == textht then
local ht = string.format("%.1fpt", n.height/65536)
- texio.write_nl(" BODY: " .. ht)
- texio.write_nl(" ")
+ texio.write_nl(' BODY: ' .. ht)
+ texio.write_nl(' ')
body = n
break
else
local ht = string.format("%.1fpt", n.height/65536)
local dp = string.format("%.1fpt", n.depth/65536)
- texio.write_nl(" SKIP vlist: ht=" .. ht .. " dp=" .. dp)
+ texio.write_nl(' SKIP vlist: ht=' .. ht .. ' dp=' .. dp)
first = n.list
for n in traverse_id(VLIST,first) do
if n.subtype == 0 and n.height == textht then
ht = string.format("%.1fpt", n.height/65536)
- texio.write_nl(" BODY: " .. ht)
- texio.write_nl(" ")
+ texio.write_nl(' BODY: ' .. ht)
+ texio.write_nl(' ')
body = n
break
end
@@ -3076,7 +3290,7 @@ local get_pagebody = function (head)
end
end
if not body then
- texio.write_nl("***lua-typo ERROR: PAGE BODY *NOT* FOUND!***")
+ texio.write_nl('***lua-typo ERROR: PAGE BODY *NOT* FOUND!***')
end
return body
end
@@ -3088,7 +3302,7 @@ local print_subtype = function (node,parent)
elseif n.id == GLUE then
texio.write(tostring(n.subtype))
real_pt = string.format("%.1fpt", effective_glue(n,parent)/65536)
- texio.write(" realwd=" .. real_pt)
+ texio.write(' realwd=' .. real_pt)
elseif n.id == DISC then
local c = ""
if n.replace then
@@ -3102,24 +3316,24 @@ local print_subtype = function (node,parent)
for nn in traverse_id(GLYPH, n.pre) do
c = c .. utf8.char(nn.char)
end
- texio.write(" pre=" .. c)
+ texio.write(' pre=' .. c)
end
if n.post then
c = ""
for nn in traverse_id(GLYPH, n.post) do
c = c .. utf8.char(nn.char)
end
- texio.write(" post=" .. c)
+ texio.write(' post=' .. c)
end
elseif n.subtype and n.subtype < 256 then
texio.write(tostring(n.subtype))
if n.height and n.depth then
ht_pt = string.format("%.1fpt", n.height/65536)
dp_pt = string.format("%.1fpt", n.depth/65536)
- texio.write(" ht=" .. ht_pt .. " dp=" .. dp_pt)
+ texio.write(' ht=' .. ht_pt .. ' dp=' .. dp_pt)
if n.width then
wd_pt = string.format("%.1fpt", n.width/65536)
- texio.write(" wd=" .. wd_pt)
+ texio.write(' wd=' .. wd_pt)
end
end
end
@@ -3133,58 +3347,62 @@ local scanvlist = function (head)
local textht = tex.getdimen("textheight")
local textwd = tex.getdimen("textwidth")
local pageno = tex.getcount("c@page")
- texio.write_nl("PAGE " .. pageno)
- texio.write(" textheight=".. string.format("%.1fpt", textht/65536))
- texio.write(" textwidth=" .. string.format("%.1fpt", textwd/65536))
+ texio.write_nl('PAGE ' .. pageno)
+ texio.write(' textheight='.. string.format("%.1fpt", textht/65536))
+ texio.write(' textwidth=' .. string.format("%.1fpt", textwd/65536))
local linecount = 0
local body, parent, ht_pt, dp_pt, real_pt
body = get_pagebody(head)
if body then
parent = body
head = body.head
+ texio.write_nl('Enter outer vbox (body) of type ')
+ texio.write(tostring(node.type(body.id)))
+ texio.write('-')
+ texio.write(tostring(body.subtype))
end
- while (head) do
+ while head do
texio.write_nl(tostring(node.type(head.id)))
- texio.write("-")
+ texio.write('-')
print_subtype(head,body)
if head.kern then
ht_pt = string.format("%.1fpt", head.kern/65536)
- texio.write(" KERN ht/wd=" .. ht_pt)
+ texio.write(' KERN ht/wd=' .. ht_pt)
end
local next = head.next
local first = head.head
for n in traverse(first) do
parent = head
- texio.write_nl(" " .. tostring(node.type(n.id)))
- texio.write("-")
+ texio.write_nl(' ' .. tostring(node.type(n.id)))
+ texio.write('-')
print_subtype(n,head)
if n.id == VLIST or n.id == HLIST then
local ff = n.head
for nn in traverse(ff) do
parent = n
- texio.write_nl(" " .. tostring(node.type(nn.id)))
- texio.write("-")
+ texio.write_nl(' ' .. tostring(node.type(nn.id)))
+ texio.write('-')
print_subtype(nn,n)
if nn.id == VLIST or nn.id == HLIST then
local f3 = nn.head
for n3 in traverse(f3) do
parent = nn
- texio.write_nl(" " .. tostring(node.type(n3.id)))
- texio.write("-")
+ texio.write_nl(' ' .. tostring(node.type(n3.id)))
+ texio.write('-')
print_subtype(n3,nn)
if n3.id == VLIST or n3.id == HLIST then
local f4 = n3.head
for n4 in traverse(f4) do
parent = n3
- texio.write_nl(" " .. tostring(node.type(n4.id)))
- texio.write("-")
+ texio.write_nl(' ' .. tostring(node.type(n4.id)))
+ texio.write('-')
print_subtype(n4,n3)
if n4.id == VLIST or n4.id == HLIST then
local f5 = n4.head
for n5 in traverse(f5) do
parent = n4
- texio.write_nl(" " .. tostring(node.type(n4.id)))
- texio.write("-")
+ texio.write_nl(' ' .. tostring(node.type(n5.id)))
+ texio.write('-')
print_subtype(n5,n4)
end
end
diff --git a/macros/texinfo/latest/texinfo.tex b/macros/texinfo/latest/texinfo.tex
index 44004c14bd..cc562fc8e0 100644
--- a/macros/texinfo/latest/texinfo.tex
+++ b/macros/texinfo/latest/texinfo.tex
@@ -3,7 +3,7 @@
% Load plain if necessary, i.e., if running under initex.
\expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi
%
-\def\texinfoversion{2023-08-13.14}
+\def\texinfoversion{2023-09-12.17}
%
% Copyright 1985, 1986, 1988, 1990-2023 Free Software Foundation, Inc.
%
@@ -11867,9 +11867,13 @@ directory should work if nowhere else does.}
\def\c{\loadconf\c}%
% Definition for the first newline read in the file
\def ^^M{\loadconf}%
- % In case the first line has a whole-line command on it
+ % In case the first line has a whole-line or environment command on it
\let\originalparsearg\parsearg%
\def\parsearg{\loadconf\originalparsearg}%
+ %
+ % \startenvironment is in the expansion of commands defined with \envdef
+ \let\originalstartenvironment\startenvironment%
+ \def\startenvironment{\loadconf\startenvironment}%
}}
@@ -11897,6 +11901,7 @@ directory should work if nowhere else does.}
\enableemergencynewline
\let\c=\comment
\let\parsearg\originalparsearg
+ \let\startenvironment\originalstartenvironment
%
% Also turn back on active characters that might appear in the input
% file name, in case not using a pre-dumped format.
diff --git a/support/latexindent/LatexIndent/Version.pm b/support/latexindent/LatexIndent/Version.pm
index 9b6fbc7272..6da4d24cf7 100644
--- a/support/latexindent/LatexIndent/Version.pm
+++ b/support/latexindent/LatexIndent/Version.pm
@@ -20,6 +20,6 @@ use warnings;
use Exporter qw/import/;
our @EXPORT_OK = qw/$versionNumber $versionDate/;
-our $versionNumber = '3.23';
-our $versionDate = '2023-09-09';
+our $versionNumber = '3.23.1';
+our $versionDate = '2023-09-13';
1
diff --git a/support/latexindent/LatexIndent/Wrap.pm b/support/latexindent/LatexIndent/Wrap.pm
index c7dbd09765..5885675ec5 100644
--- a/support/latexindent/LatexIndent/Wrap.pm
+++ b/support/latexindent/LatexIndent/Wrap.pm
@@ -49,7 +49,7 @@ sub text_wrap {
my $yesNo = $blocksFollowHash->{$blocksFollowEachPart};
if ($yesNo) {
if ( $blocksFollowEachPart eq "par" ) {
- $blocksFollowEachPart = qr/\R?\\par/s;
+ $blocksFollowEachPart = qr/\R?\\par(?![a-zA-Z])/s;
}
elsif ( $blocksFollowEachPart eq "blankLine" ) {
$blocksFollowEachPart = qr/
diff --git a/support/latexindent/README b/support/latexindent/README
index c1db1e1f98..28928e3390 100644
--- a/support/latexindent/README
+++ b/support/latexindent/README
@@ -1,5 +1,5 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- latexindent.pl, version 3.23, 2023-09-09
+ latexindent.pl, version 3.23.1, 2023-09-13
PERL script to indent code within environments, and align delimited
environments in .tex files.
diff --git a/support/latexindent/bin/linux/latexindent b/support/latexindent/bin/linux/latexindent
index c99ddccff9..21c1283c7f 100644
--- a/support/latexindent/bin/linux/latexindent
+++ b/support/latexindent/bin/linux/latexindent
Binary files differ
diff --git a/support/latexindent/bin/macos/latexindent b/support/latexindent/bin/macos/latexindent
index d1cc7c7530..300e3c8753 100644
--- a/support/latexindent/bin/macos/latexindent
+++ b/support/latexindent/bin/macos/latexindent
Binary files differ
diff --git a/support/latexindent/defaultSettings.yaml b/support/latexindent/defaultSettings.yaml
index f55bf5202d..8ee2b7a2fb 100644
--- a/support/latexindent/defaultSettings.yaml
+++ b/support/latexindent/defaultSettings.yaml
@@ -1,5 +1,5 @@
#
-# latexindent.pl, version 3.23, 2023-09-09
+# latexindent.pl, version 3.23.1, 2023-09-13
#
# defaultSettings.yaml, the default settings for latexindent.pl
#
diff --git a/support/latexindent/documentation/latexindent-yaml-schema.json b/support/latexindent/documentation/latexindent-yaml-schema.json
index 2419f3ed60..8cf416a1c7 100644
--- a/support/latexindent/documentation/latexindent-yaml-schema.json
+++ b/support/latexindent/documentation/latexindent-yaml-schema.json
@@ -2,7 +2,7 @@
"$schema": "http://json-schema.org/schema",
"$id": "latexindent-yaml-schema.json",
"title": "latexindent.pl YAML schema",
- "description": "latexindent.pl YAML schema helper, V3.23 2023-09-09",
+ "description": "latexindent.pl YAML schema helper, V3.23.1 2023-09-13",
"type": "object",
"properties": {
"fileExtensionPreference": {
diff --git a/support/latexindent/documentation/latexindent.pdf b/support/latexindent/documentation/latexindent.pdf
index 3ab061348e..55689ec493 100644
--- a/support/latexindent/documentation/latexindent.pdf
+++ b/support/latexindent/documentation/latexindent.pdf
Binary files differ
diff --git a/support/latexindent/documentation/latexindent.tex b/support/latexindent/documentation/latexindent.tex
index 01202c8b8d..df6041f3eb 100644
--- a/support/latexindent/documentation/latexindent.tex
+++ b/support/latexindent/documentation/latexindent.tex
@@ -4323,7 +4323,7 @@ latexindent.pl headings2.tex -l headings4.yaml
\end{example}
\paragraph{namedGroupingBracesBrackets} This type of code block is mostly motivated by
- tikz-based code; we define this code block as follows:
+ tikz-based code; we define this code block as follows:
\begin{itemize}
\item it must immediately follow either \emph{horizontal space} OR \emph{one or more
line breaks} OR \lstinline!{! OR \lstinline![! OR \lstinline!$! OR \lstinline!)!
@@ -4360,8 +4360,8 @@ latexindent.pl headings2.tex -l headings4.yaml
\end{example}
\paragraph{UnNamedGroupingBracesBrackets} occur in a variety of situations;
- specifically, we define this type of code block as satisfying the following
- criteria:
+ specifically, we define this type of code block as satisfying the following
+ criteria:
\begin{itemize}
\item it must immediately follow either \lstinline!{! OR \lstinline![! OR
\lstinline!,! OR \lstinline!&! OR \lstinline!)! OR \lstinline!(! OR
@@ -4400,7 +4400,7 @@ latexindent.pl headings2.tex -l headings4.yaml
\texttt{always-un-named}.
\paragraph{filecontents} code blocks behave just as \texttt{environments}, except that
- neither arguments nor items are sought.
+ neither arguments nor items are sought.
\subsubsection{Summary}
\index{indentation!summary}
diff --git a/support/latexindent/latexindent.pl b/support/latexindent/latexindent.pl
index 571dbcbd26..50b94939ff 100755
--- a/support/latexindent/latexindent.pl
+++ b/support/latexindent/latexindent.pl
@@ -1,6 +1,6 @@
#!/usr/bin/env perl
#
-# latexindent.pl, version 3.23, 2023-09-09
+# latexindent.pl, version 3.23.1, 2023-09-13
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/support/runtexshebang/README.md b/support/runtexshebang/README.md
index e96825b9c1..7c3f233b2d 100644
--- a/support/runtexshebang/README.md
+++ b/support/runtexshebang/README.md
@@ -158,8 +158,15 @@ You can typeset a LaTeX document file in a Docker container as below.
## References
+### Commentary
+
* [TeXworks、TeXShop、VSCodeでTeX-style shebangしてみた - Qiita](https://qiita.com/munepi/items/a30c68133cfffbf4d189) (in Japanese)
+### Tools supporting `%#!`
+
+* [YaTeX](https://www.yatex.org/): Yet Another TeX mode for Emacs
+* [llmk](https://github.com/wtsnjp/llmk): Light LaTeX Make
+
Enjoy Happy TeXing!
diff --git a/support/runtexshebang/runtexshebang.lua b/support/runtexshebang/runtexshebang.lua
index 11240adfe0..670bdc2b33 100755
--- a/support/runtexshebang/runtexshebang.lua
+++ b/support/runtexshebang/runtexshebang.lua
@@ -22,15 +22,61 @@
-- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-- THE SOFTWARE.
-if not ( #arg == 1 ) then
- print("runtexshebang 20230909 v0.3")
- print("")
- print("Usage: runtexshebang [input.tex]")
- os.exit(0)
+NAME = "runtexshebang"
+VERSION = "20230913 v0.4"
+USAGE = [[
+Usage: runtexshebang [input.tex]
+
+Options:
+ -h, --help print help
+ -v, --version print version
+
+See also:
+The command
+ texdoc runtexshebang
+should give you access to the README.
+]]
+
+function whoami()
+ print(NAME .. " " .. VERSION)
end
-local line_ctr = 0
-for line in io.lines(arg[1]) do
+function help()
+ whoami()
+ print()
+ print(USAGE)
+end
+
+if #arg == 0 then
+ help()
+ os.exit(0)
+end
+
+--
+texfilename = ""
+narg = 1
+repeat
+ this_arg = arg[narg]
+ -- replace double dash by single dash at the beginning
+ this_arg = string.gsub(this_arg, "^%-%-", "-")
+
+ if this_arg == "-h" or this_arg == "-help" then
+ help()
+ os.exit(0)
+ elseif this_arg == "-v" or this_arg == "-version" then
+ whoami()
+ os.exit(0)
+ else
+ texfilename = this_arg
+ end --if this_arg == ...
+ narg = narg+1
+until narg > #arg
+
+-- main process
+whoami()
+
+line_ctr = 0
+for line in io.lines(texfilename) do
line_ctr = line_ctr + 1
if line_ctr > 20 then break end
diff --git a/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl b/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
index 9ac3e2166a..7d16a4b1e5 100644
--- a/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
+++ b/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
@@ -138,7 +138,6 @@ $mirrors = {
},
'Portugal' => {
'https://ftp.eq.uc.pt/software/TeX/' => 1,
- 'https://mirrors.up.pt/pub/CTAN/' => 1,
},
'Romania' => {
'https://mirrors.nxthost.com/ctan/' => 1,
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb b/systems/texlive/tlnet/tlpkg/texlive.tlpdb
index ab2c46c72a..3fb30ceb75 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb
@@ -26,11 +26,11 @@ depend container_split_src_files/1
depend frozen/0
depend minrelease/2016
depend release/2023
-depend revision/68260
+depend revision/68273
name 00texlive.image
category TLCore
-revision 68252
+revision 68271
shortdesc TeX Live files only in the source repository
longdesc The files here are not copied by the installer and containers
longdesc are not built for them; they exist only in the source
@@ -3263,6 +3263,7 @@ runfiles size=13074
tlpkg/tlpsrc/parrun.tlpsrc
tlpkg/tlpsrc/parsa.tlpsrc
tlpkg/tlpsrc/parselines.tlpsrc
+ tlpkg/tlpsrc/parsimatn.tlpsrc
tlpkg/tlpsrc/parsinevis.tlpsrc
tlpkg/tlpsrc/parskip.tlpsrc
tlpkg/tlpsrc/pas-cours.tlpsrc
@@ -4800,7 +4801,7 @@ depend setting_available_architectures:aarch64-linux amd64-freebsd amd64-netbsd
name 00texlive.installer
category TLCore
-revision 68247
+revision 68262
shortdesc TeX Live standalone installer package
longdesc This package defines the files to go into the installer
longdesc archives (install-tl-unx.tar.gz, install-tl.zip) built by the
@@ -59064,7 +59065,7 @@ catalogue-version 1.1.0
name circuit-macros
category Package
-revision 67259
+revision 68264
shortdesc M4 macros for electric circuit diagrams
relocated 1
longdesc A set of m4 macros for drawing high-quality electric circuits
@@ -59083,10 +59084,10 @@ longdesc for Unix and PC machines.) Alternative output macros can create
longdesc TeX output to be read by pstricks, TikZ commands for use by the
longdesc pgf bundle, or SVG.
containersize 1500
-containerchecksum eca47fa8166530d90c4d14c40bd45b183bc4782536cc6390c7cf9cc926f684a621f4be5efc3bab66877ff9b494af6b850a1afdd2e91fd838bc7ea4011b2f29d0
-doccontainersize 3325520
-doccontainerchecksum 399a78bb5faae5f04a82655aae2e2b11e61821cb329172ab77776c6ba61e919baa341aadc22cd9944542ad4a833cf31a17af5c0804fd8da2092bcec9d1a61fb6
-docfiles size=1580
+containerchecksum 604a8d7eafb5b396aa5a0dd8ddce3a85b4ccae581b0454b97504a26a4f626d12f0e496f81d9e9695946cf5c392154048192014cd99b4fd82f708015ec96e04a0
+doccontainersize 3331920
+doccontainerchecksum f3c5b47ead10bf25025f251fdd5dfcc28eb200c3c589ad34e587bd9d470f0a461d0755123dd6aeaf06d6c881547226461e4da07e69e56e9b2b202ec4353c37db
+docfiles size=1584
RELOC/doc/latex/circuit-macros/CHANGES
RELOC/doc/latex/circuit-macros/Copying
RELOC/doc/latex/circuit-macros/INSTALL
@@ -59574,7 +59575,7 @@ catalogue-contact-repository https://gitlab.com/aplevich/circuit_macros
catalogue-ctan /graphics/circuit_macros
catalogue-license lppl1.3c
catalogue-topics diagram-circ electronic
-catalogue-version 10.3
+catalogue-version 10.4
name circuitikz
category Package
@@ -69965,7 +69966,7 @@ containerchecksum 4f0311e8e9c8dc9fcba918f175049279d4ed2342224af9807de04e44262f4a
name collection-langarabic
category Collection
-revision 68250
+revision 68271
shortdesc Arabic
relocated 1
longdesc Support for Arabic and Persian.
@@ -69991,6 +69992,7 @@ depend kurdishlipsum
depend lshort-persian
depend luabidi
depend na-box
+depend parsimatn
depend parsinevis
depend persian-bib
depend quran
@@ -70001,8 +70003,8 @@ depend tram
depend xepersian
depend xepersian-hm
depend xindy-persian
-containersize 472
-containerchecksum 3a35f2a8fc20c636cd2a4fe59993860caf18c6e8aa3b64622f8373bdcc0b48654d7c39c242346dd06eb37163be46cc9856ffd53c939a19f548c3ecc4ef9ba85b
+containersize 476
+containerchecksum e52ba56f7ce12d65ce8d3bc85895f2d290fde5ae3505ef4d647145de85208799bc49e7644438ececb827c4bc83be6ae09bf2eb14fd58268990d714e21b555057
name collection-langchinese
category Collection
@@ -150971,7 +150973,7 @@ catalogue-version 1.121
name inconsolata-nerd-font
category Package
-revision 68248
+revision 68263
shortdesc Inconsolata Nerd Font with support for XeLaTeX or LuaLaTeX
relocated 1
longdesc Inconsolata is a monospaced font designed by Raph Levien. It is
@@ -150981,18 +150983,18 @@ longdesc Additionally, the Nerd Font project extended the font by a huge
longdesc amount of additional glyphs. This package provides the
longdesc Inconsolata Nerd Font in .ttf format as well as a convenient
longdesc interface to load the font for the XeTeX and LuaTeX engines.
-containersize 1573116
-containerchecksum 367f33078eb22d686d5d27def66f9ca24f4bc23a8106b11fad0b5af1a72fa1f5c34b7058021ba74737c2d96e5aca6c10fa8c729bbe97655a73cd9dec3f4ebfe3
-doccontainersize 77520
-doccontainerchecksum b47ed8d271762c80d44d05c588679bedfca7a9c6f0064157ace429b52fae29a9ba27d2a1cf4bd6f981ef7f928b808f60a6ddf35da0719b6dd1b29a347b39cb42
-docfiles size=27
+containersize 1573108
+containerchecksum 67d8e17b2e47d4a018783b987076e7d9c019fb8e1d6f94f443513a39d4a9ba2f9147e607cc2b5c16b3be947f58c61f159c074d2f975eadc034f9afd31ab45be2
+doccontainersize 1320736
+doccontainerchecksum 8d807511184a2dd8e22f4cee6bc699aa00f7e42b4b2f6d4013f97a63da9573dd2c234091d4af5810c7d83fcdec67b33ddd381ad0ff7072db1b3cc9a685159314
+docfiles size=345
RELOC/doc/fonts/inconsolata-nerd-font/CHANGELOG.md
RELOC/doc/fonts/inconsolata-nerd-font/LICENSE.txt
RELOC/doc/fonts/inconsolata-nerd-font/OFL.txt
RELOC/doc/fonts/inconsolata-nerd-font/README.md details="Readme"
RELOC/doc/fonts/inconsolata-nerd-font/inconsolata-nerd-font.pdf details="Package documentation"
-srccontainersize 4388
-srccontainerchecksum d20493f77bf20b346d2556b107cfc37cc8cdecac98c03cbedc4a6d691db6ef3bb0edb0f5426f506f0906d82c051da323b98d8b72c3c720dfe4a13d6355665339
+srccontainersize 4736
+srccontainerchecksum 54e8962cf99cfd00777c8c9950ffdca5ef72b37fa37fb2bdf20bd573ca751084b6cf1b89863ff15ffc21aa884dfbc1edfbef6c7941198123aadf1c62b72d3642
srcfiles size=5
RELOC/source/fonts/inconsolata-nerd-font/inconsolata-nerd-font.dtx
RELOC/source/fonts/inconsolata-nerd-font/inconsolata-nerd-font.ins
@@ -151009,7 +151011,7 @@ catalogue-contact-repository https://github.com/stephanlukasczyk/inconsolata-ner
catalogue-ctan /fonts/inconsolata-nerd-font
catalogue-license ofl lppl1.3c
catalogue-topics font font-ttf font-mono font-supp expl3
-catalogue-version 0.2
+catalogue-version 0.3
name index
category Package
@@ -161890,17 +161892,17 @@ catalogue-version 1.30
name jeuxcartes
category Package
-revision 67849
+revision 68266
shortdesc Macros to insert playing cards
relocated 1
longdesc This package provides macros to insert playing cards, single,
longdesc or hand, or random-hand, Poker or French Tarot or Uno, from png
longdesc files.
-containersize 6716028
-containerchecksum add42dc0b7c278d3d6b6b3e62748d8501820c20867d09abf6e8f12be5b5c6fa80b81a1dc594c96a1623594393600b579cba69db8994a26d1b0147f96286aec05
-doccontainersize 7935092
-doccontainerchecksum db2d6cb542d3a95ff763e0aa170e83d5b0d82f612bde1230982496b73b1b40a4198ff432be1b91a81a88d6071edb5d851aeb97525038e1f28a3898c1df5a17bf
-docfiles size=2035
+containersize 6716004
+containerchecksum ad90719dd34791c88a5300d33ad7d633e650b3de6d61f493cf9069c39429f57ffbbde7aca1d2356a9cf6486701511fb7805049ed6a53ccbf49daa7a3dc5ab4e3
+doccontainersize 7937488
+doccontainerchecksum 9c918a0cb97ac3b82a88fd104a2e084404b83b2c04acac44e5f566774a3c01d8c91b0a73b49325ab6d7d366c5849e69a60c28a9686049c009bc249cc9b04c7a0
+docfiles size=2036
RELOC/doc/latex/jeuxcartes/JeuxCartes-doc.pdf details="Package documentation" language="fr"
RELOC/doc/latex/jeuxcartes/JeuxCartes-doc.tex
RELOC/doc/latex/jeuxcartes/README.md details="Readme"
@@ -162439,7 +162441,7 @@ catalogue-contact-repository https://github.com/cpierquet/JeuxCartes
catalogue-ctan /macros/latex/contrib/jeuxcartes
catalogue-license lppl1.3c lgpl2.1 pd cc-by-sa-4 pd mit
catalogue-topics games pgf-tikz card-gen
-catalogue-version 0.2.7
+catalogue-version 0.2.8
name jfmutil
category Package
@@ -172657,7 +172659,7 @@ catalogue-topics latex3 expl3 macro-supp pre-release
name l3build
category Package
-revision 68198
+revision 68270
shortdesc A testing and building system for (La)TeX
longdesc The build system supports testing and building LaTeX3 code, on
longdesc Linux, Mac OS X and Windows systems. The package offers: A unit
@@ -172669,18 +172671,18 @@ longdesc material released by the LaTeX3 team, and may be updated on a
longdesc different schedule.
depend l3build.ARCH
depend luatex
-containersize 36448
-containerchecksum 59c87203d5329b223f1f7e352d3ac611de26c4cba013e962ec59ead967e166d2123b6e1b6f15d10d567eb732c92e7f1ea693e2162d66100532ac653e52035824
-doccontainersize 746452
-doccontainerchecksum db68345f1806c8d56e7feaedefa1f94bcddae39b97a9c9766fc9f32f5de861437277e01a9a4efe7ca1891a736bfe3132bae61eff02f409e0a3cb5c92c0127463
+containersize 36544
+containerchecksum a8fbb12725d3ae03686e3e818ed15b744a2805f90005f6515aa6ace800e1d5ba1f436d2eb3f8188ab10a3a16dd7d4e9c2bf6cc8cb193e125e9a020ba60ab1135
+doccontainersize 746672
+doccontainerchecksum dff0595ab2b9a50bcc99489e8a1f938d7acc4a593c0b9bbc54295681d68ba306888da838e0e2c78725ebb042ad1590f6eb6011019efde0925c3dea64e89452d5
docfiles size=194
texmf-dist/doc/latex/l3build/CHANGELOG.md
texmf-dist/doc/latex/l3build/README.md details="Readme"
texmf-dist/doc/latex/l3build/l3build.pdf details="Package documentation"
texmf-dist/doc/man/man1/l3build.1
texmf-dist/doc/man/man1/l3build.man1.pdf
-srccontainersize 31512
-srccontainerchecksum c34ab331b9e6f4edce625d03ab82c8761518a535b2c60f6c48954a19924c95aab6dc909cdc0c968a7a9aee38d8f4f79ee700246193f6ebf60ac4d293f6ce1975
+srccontainersize 31580
+srccontainerchecksum 73d8e0ed9dd1ddca8071aa37c15320c2646ce322cfe41d3e3b12482c3dd26a18905488b585d7aaae666968db0efdaeb2a4bb6fb58e566007edf574d4dacd3305
srcfiles size=29
texmf-dist/source/latex/l3build/l3build.dtx
texmf-dist/source/latex/l3build/l3build.ins
@@ -174430,17 +174432,17 @@ catalogue-version 2023-06-01 PL1
name latex-amsmath-dev
category Package
-revision 67328
+revision 68270
shortdesc Development pre-release of the LaTeX amsmath bundle
relocated 1
longdesc This is a pre-release version of the standard LaTeX amsmath
longdesc bundle. It accompanies the pre-testing kernel code
longdesc (latex-base-dev), and is intended for testing by knowledgeable
longdesc users.
-containersize 31040
-containerchecksum 67f8897790ae0d3a709bf3d43e478b6b15dab59e9a1d958f562c004b02b742945450f056015c8ab31259ae9e424694159610878b083761d6cc79de31b2215be0
-doccontainersize 2420480
-doccontainerchecksum f39c8508df821e84080e6d07af8d94415cefdf36b86fb6c2a6fc651bdd19f90f6e6f207a05df82a6c4aeb08477b7a69de0ebdcceb2bb1bf8a0ee367c6639a66f
+containersize 31044
+containerchecksum f073a4e493879cb10b9578396ac753b02b3c24d13f929aa9ff1159398272b329286ba53b031f415ed518c7f9209d7f743a36caddb9d23e22e64eaf7bb10405b3
+doccontainersize 2420584
+doccontainerchecksum e1fe061be2096d0d60010d6956b60653ded9e8748586bfd00965140abdec2fcbed98dca885f4abab4e461aaae6ecef2e107a8b3070e7b7b3d3814a3965da3f02
docfiles size=718
RELOC/doc/latex-dev/amsmath/README.md details="Readme"
RELOC/doc/latex-dev/amsmath/ams-external.txt
@@ -174464,7 +174466,7 @@ docfiles size=718
RELOC/doc/latex-dev/amsmath/testmath.pdf details="Examples paper" language="en"
RELOC/doc/latex-dev/amsmath/testmath.tex
srccontainersize 66360
-srccontainerchecksum 5b1635798ceddb333a72a9d945fc38476521073c83efe9d17835649e47eb683a9fa6659875aa9e2e5762b587f7d3bac91c4d31d3764a8e914849475500010bdd
+srccontainerchecksum f3f6b68e8c8485355870ee69f33183620e07944e432362e6323a9c7b261f83b4993cdfae40233b7075b3766fee6745278371e0c05ca410bf47e0cde283c09b2c
srcfiles size=82
RELOC/source/latex-dev/amsmath/amsbsy.dtx
RELOC/source/latex-dev/amsmath/amsbsy.ins
@@ -174493,11 +174495,11 @@ runfiles size=70
catalogue-ctan /macros/latex-dev/required/amsmath
catalogue-license lppl1.3c
catalogue-topics maths latex-devel
-catalogue-version 2023-11-01 pre-release 0
+catalogue-version 2023-11-01 pre-release 1
name latex-base-dev
category Package
-revision 67328
+revision 68270
shortdesc Development pre-release of the LaTeX kernel
relocated 1
longdesc This package provides a testing release for upcoming LaTeX2e
@@ -174507,11 +174509,11 @@ longdesc users is required by adding these changes to the release LaTeX
longdesc kernel. Typically, the code here will be used by a TeX system
longdesc to create dedicated formats, for example pdflatex-dev, which
longdesc can then be used explicitly for testing.
-containersize 234884
-containerchecksum 0d291890c964645a2dce2a7baaf20f0e3c76779199f49e647b0485e85ee638811dae0b09f9598deb43a8a0416b609a61f34c43fbf38a7c8e414c97ee7458de80
-doccontainersize 32780120
-doccontainerchecksum 0b92a7fb0a9bdc03240069372777a4bd32b732ad0d5972419aa099cb12aff3ffa87862d533a2835e91148a0528d1337ac4b53f7693ac5b5a09cc7e3663f34da6
-docfiles size=10274
+containersize 237284
+containerchecksum d0de75f5c3d5a9ffe70b7005094ffd4782f7ffdcf8ebd47953a71717f6b2f0b3e0e389d5720af6a45399a0356ad8a07d654e8cd104b88265a9f8d982ad15b29f
+doccontainersize 34655660
+doccontainerchecksum 91590f95520ed5a89e79dc29523dccb06a69d0a1acb87a0e62256d00c81131e7599ab0e49b74c2b4acf05f6e7f0a951b9b517d42a1dc22db5e793806a50188fa
+docfiles size=10950
RELOC/doc/latex-dev/base/README.md details="Readme"
RELOC/doc/latex-dev/base/alltt.pdf
RELOC/doc/latex-dev/base/bugs.txt
@@ -174648,14 +174650,24 @@ docfiles size=10274
RELOC/doc/latex-dev/base/ltnews36.tex
RELOC/doc/latex-dev/base/ltnews37.pdf
RELOC/doc/latex-dev/base/ltnews37.tex
+ RELOC/doc/latex-dev/base/ltnews38.pdf
+ RELOC/doc/latex-dev/base/ltnews38.tex
RELOC/doc/latex-dev/base/ltpara-code.pdf
RELOC/doc/latex-dev/base/ltpara-code.tex
RELOC/doc/latex-dev/base/ltpara-doc.pdf
RELOC/doc/latex-dev/base/ltpara-doc.tex
+ RELOC/doc/latex-dev/base/ltproperties-code.pdf
+ RELOC/doc/latex-dev/base/ltproperties-code.tex
+ RELOC/doc/latex-dev/base/ltproperties-doc.pdf
+ RELOC/doc/latex-dev/base/ltproperties-doc.tex
RELOC/doc/latex-dev/base/ltshipout-code.pdf
RELOC/doc/latex-dev/base/ltshipout-code.tex
RELOC/doc/latex-dev/base/ltshipout-doc.pdf
RELOC/doc/latex-dev/base/ltshipout-doc.tex
+ RELOC/doc/latex-dev/base/ltsockets-code.pdf
+ RELOC/doc/latex-dev/base/ltsockets-code.tex
+ RELOC/doc/latex-dev/base/ltsockets-doc.pdf
+ RELOC/doc/latex-dev/base/ltsockets-doc.tex
RELOC/doc/latex-dev/base/ltx3info.pdf
RELOC/doc/latex-dev/base/ltx3info.tex
RELOC/doc/latex-dev/base/ltxdoc.pdf
@@ -174682,9 +174694,9 @@ docfiles size=10274
RELOC/doc/latex-dev/base/utf8ienc.pdf
RELOC/doc/latex-dev/base/webcomp.err
RELOC/doc/latex-dev/base/webcomp.pdf
-srccontainersize 736152
-srccontainerchecksum cf2c9fe2738352e31143af5280f232d26d1d6ed3cb989aac41750135ab87673efe5418db44854f459a4927c162451f5270248a37e5685302b908965f4e3fdf7e
-srcfiles size=1086
+srccontainersize 749456
+srccontainerchecksum cfda9a6a3604c07f78500ee0a4555616b0d779a21a96fef0a49281fdbaff29ddeb87fc4f7d75fd19280ef81c6d44bba93ff19c133f896c60a0ee6ee1cfd4afe9
+srcfiles size=1106
RELOC/source/latex-dev/base/alltt.dtx
RELOC/source/latex-dev/base/alltt.ins
RELOC/source/latex-dev/base/classes.dtx
@@ -174760,8 +174772,10 @@ srcfiles size=1086
RELOC/source/latex-dev/base/ltpara.dtx
RELOC/source/latex-dev/base/ltpictur.dtx
RELOC/source/latex-dev/base/ltplain.dtx
+ RELOC/source/latex-dev/base/ltproperties.dtx
RELOC/source/latex-dev/base/ltsect.dtx
RELOC/source/latex-dev/base/ltshipout.dtx
+ RELOC/source/latex-dev/base/ltsockets.dtx
RELOC/source/latex-dev/base/ltspace.dtx
RELOC/source/latex-dev/base/lttab.dtx
RELOC/source/latex-dev/base/lttextcomp.dtx
@@ -174789,7 +174803,7 @@ srcfiles size=1086
RELOC/source/latex-dev/base/tulm.ins
RELOC/source/latex-dev/base/unpack.ins
RELOC/source/latex-dev/base/utf8ienc.dtx
-runfiles size=664
+runfiles size=671
RELOC/tex/latex-dev/base/alltt.sty
RELOC/tex/latex-dev/base/ansinew.def
RELOC/tex/latex-dev/base/applemac.def
@@ -174959,7 +174973,7 @@ catalogue-also latex-base
catalogue-ctan /macros/latex-dev/base
catalogue-license lppl1.3c
catalogue-topics format class latex-devel
-catalogue-version 2023-11-01 pre-release 0
+catalogue-version 2023-11-01 pre-release 1
name latex-bin
category TLCore
@@ -175547,34 +175561,33 @@ catalogue-topics latex-doc
name latex-firstaid-dev
category Package
-revision 67225
+revision 68270
shortdesc Development pre-release of the LaTeX firstaid package
relocated 1
longdesc This is a pre-release version of the standard LaTeX firstaid
longdesc package. It accompanies the pre-testing kernel code
longdesc (latex-base-dev), and is intended for testing by knowledgeable
longdesc users.
-containersize 3116
-containerchecksum 3ccda3d50e9224159910a28d5b8cdb5525fe5571fa8b3bacc5655e009405845b0cdadd01d0a2509f42edfea70132f816d42a85cff7fb6c1cec29718c04518afa
-doccontainersize 263200
-doccontainerchecksum 64d9f100dcfa400e23e7429883cc09285074a2e791177251d30ac6e2a3b38033d0837e3a976402bce353ceac207738772d1dd6c96c4aa2187212f2db5348080b
-docfiles size=69
+containersize 2880
+containerchecksum 76d4d39775ce56598c2bd7fa16567fccc3e6e29115e716b87dc9483006916d17274b7e4943402fb1387adbac1d49fe3c9e1af8311e6228b2ebfe1de1d70adfc3
+doccontainersize 247104
+doccontainerchecksum bec8eb67a7c143edf16f02e21678d971649d25f9235df14a5517e17aed64598fa618e3dc647101495f584cc515f566bfe69c466c99ffc5137ad27afb2728fa06
+docfiles size=65
RELOC/doc/latex-dev/firstaid/README.md details="Readme"
RELOC/doc/latex-dev/firstaid/changes.txt
RELOC/doc/latex-dev/firstaid/latex2e-first-aid-for-external-files.pdf details="Package documentation"
-srccontainersize 7960
-srccontainerchecksum b49726f2dcd2323df0e1ee70ed57074d4a52a8baed7d7a8f6c2dbbcfe4f0a30aa802b60710a4a4e6b09c093ee63910d2a34b49a52f67977b4788bab0d794b1a3
-srcfiles size=7
+srccontainersize 6984
+srccontainerchecksum b9943e4abd0b82ab8e8aaee4016d2faab3882ef2ec123d3a49168b589b5a2dca4468b2ba82c6321c155dd5cfc824324514d0a5f5e96f5ba2c9be9412eea7935c
+srcfiles size=6
RELOC/source/latex-dev/firstaid/firstaid.ins
RELOC/source/latex-dev/firstaid/latex2e-first-aid-for-external-files.dtx
-runfiles size=4
- RELOC/tex/latex-dev/firstaid/everysel-ltx.sty
+runfiles size=3
RELOC/tex/latex-dev/firstaid/filehook-ltx.sty
RELOC/tex/latex-dev/firstaid/latex2e-first-aid-for-external-files.ltx
catalogue-ctan /macros/latex-dev/required/firstaid
catalogue-license lppl1.3c
catalogue-topics format bugfix latex-devel
-catalogue-version 1.0z
+catalogue-version 1.1a
name latex-fonts
category Package
@@ -178712,16 +178725,16 @@ catalogue-topics version-control doc-mgmt
name latexindent
category Package
-revision 68225
+revision 68268
shortdesc Indent a LaTeX document, highlighting the programming structure
longdesc The Perl script processes a LaTeX file, indenting parts so as
longdesc to highlight the structure for the reader. Included are also
longdesc binary (executable) files for Windows, Ubuntu Linux, and macOS.
depend latexindent.ARCH
-containersize 74524
-containerchecksum 51d4fa2789691fcfe5e5584b9c5367a92092455cdf5d1187149a0dfdb4277dd9700493ea017cac6870e9deb72c3d507e957ac253c2fb1948e36a8d6ea22e4648
-doccontainersize 1336736
-doccontainerchecksum f4b92218ccaa35266916b70872b995c7bc4b4a8afd6759e7ee128ddf4b5d278b49ed97bbced463094594916440c3c770d6cf3fed38865ba40b76a5c4fffddccf
+containersize 74560
+containerchecksum ff3c77af44579617d7da8825991a7d693f046f51928533423bc4f07695c28186559ebef09a8cf0ebe046287d91f233497df246f512173e36d57a3d6e85f03058
+doccontainersize 1335380
+doccontainerchecksum b7eaa05d26badc99b45631127d73283dc96a6e994c1634c4ab04e3b0d66b97a1f8c586d6ef4242e6ce23319d7d3c4fdd0b672cfb42d510b5eb139426ade41254
docfiles size=449
texmf-dist/doc/support/latexindent/README details="Readme"
texmf-dist/doc/support/latexindent/contributors.bib
@@ -178781,7 +178794,7 @@ catalogue-contact-repository https://github.com/cmhughes/latexindent.pl
catalogue-ctan /support/latexindent
catalogue-license gpl3
catalogue-topics code-layout
-catalogue-version 3.23
+catalogue-version 3.23.1
name latexindent.aarch64-linux
category Package
@@ -178866,10 +178879,10 @@ binfiles arch=universal-darwin size=1
name latexindent.windows
category Package
-revision 68225
+revision 68268
shortdesc windows files of latexindent
-containersize 4752928
-containerchecksum a56a475754f8866b6571fa40cdfbb3b96e9f30cc8539b7de2c944db60b7ad449dee34033a061ff24c03f3af84dc07a9665022e9ab7a0f36eb5d65e0ef767099f
+containersize 4753336
+containerchecksum 191ab4652bb163ff055e8a85121778f7104ef805cbf63f3c4b35721fbf8d0d0652159f2ade6cd26dd8bb2a53f7a27661e4374c5ae62c2a319cf216513d2c5330
binfiles arch=windows size=2427
bin/windows/latexindent.exe
@@ -195588,20 +195601,19 @@ catalogue-version 0.4.3
name lua-typo
category Package
-revision 66969
+revision 68267
shortdesc Highlighting typographical flaws with LuaLaTeX
relocated 1
-longdesc This package tracks common typographic flaws in LuaLaTeX
-longdesc documents, especially widows, orphans, hyphenated words split
-longdesc over two pages, consecutive lines ending with hyphens,
-longdesc paragraphs ending on too short lines, etc. Customisable colours
-longdesc are used to highlight these flaws, and the list of pages on
-longdesc which typographical flaws were found is printed.
-containersize 11972
-containerchecksum 71a05ca8954a6bf52fc1a35784cda1c712ef0d5330be232ac2679001cfccbc162b6d92b87a5db29950ae19940783a1ead451d4dd0379f0dcfd76924d7daedac9
-doccontainersize 284504
-doccontainerchecksum 46c84c101a53fa981a5ab13a34b928b33a06316529d14dbc75b25bc61938de59a24effa123f7bf592da1c372b5ce3a91c395ec8886641a1469d00a6d5f7474cf
-docfiles size=87
+longdesc Prints the list of pages on which typographical flaws were
+longdesc found (i.e. widows, orphans, hyphenated words split across two
+longdesc pages, consecutive lines ending with hyphens, paragraphs ending
+longdesc on too short or nearly full lines, homeoarchy, etc).
+longdesc Customisable colours are used to highlight these flaws.
+containersize 12840
+containerchecksum bbbef9dedd3a6b66b098a9b9673685f3c44f8c594bc029ab6eaf1104600d5f519fc3d712617b8cb86d44888e182b89ef3a32ed22a86a578dcf92adf265a50996
+doccontainersize 293356
+doccontainerchecksum f3bca9d7af2676d7d2ee17375b9e0916c4dc0d9c4a48d7bfcf960b3a8fada5b7d50a2cfaff403341702468b2fa1b48f997f9261e071ba491b450c2265b0f5150
+docfiles size=90
RELOC/doc/lualatex/lua-typo/README.md details="Readme"
RELOC/doc/lualatex/lua-typo/lua-typo-demo.pdf details="Example of use"
RELOC/doc/lualatex/lua-typo/lua-typo-demo.tex
@@ -195609,11 +195621,11 @@ docfiles size=87
RELOC/doc/lualatex/lua-typo/lua-typo-fr.pdf details="Package documentation (French)" language="fr"
RELOC/doc/lualatex/lua-typo/lua-typo.ltx
RELOC/doc/lualatex/lua-typo/lua-typo.pdf details="Package documentation (English)"
-srccontainersize 27688
-srccontainerchecksum ce14da85fa01160950f0316c01e27a0921dadf93e1d7ed2e547dca47d98cb532d9fc91c489a2b77ee1dbb5a60801e592c8ce943f7432a9dfe0a6b27468f12f26
-srcfiles size=29
+srccontainersize 29212
+srccontainerchecksum a799538db847fc9dbeab4df98799e4ce34a73e6a374e315ed39fc87e2ee3ff983d31b326e72c1c20e8edd047930a39d8fead965a13b2b5820090a478f5e77a96
+srcfiles size=32
RELOC/source/lualatex/lua-typo/lua-typo.dtx
-runfiles size=30
+runfiles size=31
RELOC/tex/lualatex/lua-typo/lua-typo-2021-04-18.sty
RELOC/tex/lualatex/lua-typo/lua-typo-2023-03-08.sty
RELOC/tex/lualatex/lua-typo/lua-typo.cfg
@@ -195621,7 +195633,7 @@ runfiles size=30
catalogue-ctan /macros/luatex/latex/lua-typo
catalogue-license lppl1.3c
catalogue-topics luatex text-layout
-catalogue-version 0.80
+catalogue-version 0.85
name lua-uca
category Package
@@ -243996,6 +244008,38 @@ catalogue-license lppl1.3
catalogue-topics decoration macro-supp
catalogue-version 1.4
+name parsimatn
+category Package
+revision 68271
+shortdesc Contemporary Persian font for scientific and formal writings
+relocated 1
+longdesc This Persian font is suitable for official and scientific
+longdesc writings. All Persian and Arabic letters and numbers are
+longdesc designed by the author. During the design process, attention
+longdesc has been paid to the fact that, in addition to being new and
+longdesc innovative, the letters be familiar to the average
+longdesc Persian/Arabic viewer.
+containersize 122964
+containerchecksum 7e13f9536e8855a66a8467a73a4063880199a887cb521646362d3c705a84cb5f12b9a0027d8781f84413e81b3bf2e0889c0e613c885dc91a91821486d192700d
+doccontainersize 94436
+doccontainerchecksum afc521ced681ec0ccabfe3ecb449e8fa7cfd633c811881ac6fddef419132e4a27fdbc4346e465d5b75c6115e8035933c0a1d4b3f91aba3c2be97ea516d398e34
+docfiles size=29
+ RELOC/doc/fonts/parsimatn/OFL.txt
+ RELOC/doc/fonts/parsimatn/README.md details="Readme"
+ RELOC/doc/fonts/parsimatn/parsimatn-example-of-use.pdf details="Example of use"
+ RELOC/doc/fonts/parsimatn/parsimatn-example-of-use.tex
+runfiles size=88
+ RELOC/fonts/truetype/public/parsimatn/ParsiMatn-Bold.ttf
+ RELOC/fonts/truetype/public/parsimatn/ParsiMatn-BoldItalic.ttf
+ RELOC/fonts/truetype/public/parsimatn/ParsiMatn-Italic.ttf
+ RELOC/fonts/truetype/public/parsimatn/ParsiMatn-Regular.ttf
+catalogue-contact-bugs https://github.com/SajadKazemi/parsimatn/issues
+catalogue-contact-repository https://github.com/SajadKazemi/parsimatn
+catalogue-ctan /fonts/parsimatn
+catalogue-license ofl
+catalogue-topics font font-ttf font-arabic font-maths persian
+catalogue-version 1.0
+
name parsinevis
category Package
revision 68214
@@ -259196,27 +259240,27 @@ catalogue-version 0.45
name profsio
category Package
-revision 68045
+revision 68265
shortdesc Commands (with TikZ) to work with French "BTS SIO" maths themes
relocated 1
longdesc This package provides some commands (in French) to work with:
longdesc tables of Karnaugh ; MPM graphs ; simple graphs.
-containersize 8608
-containerchecksum 7f59a7ffa4f7bbd8afeea5c4697bede9588d1519a0eb950ea6719aa720329cdd85aa3cf47c09bc783f38357a777ce2417959dd935e7b3d1f0a98107b4866b96f
-doccontainersize 316752
-doccontainerchecksum 3867ded85572a8c031cf831f51b0178f27f6c4d15b63c9b1f8826a32258b169f8ddc9def8156240cce86ae171fa740bdddbb984b22266b4141d442acbae8afe9
-docfiles size=92
+containersize 10292
+containerchecksum 2d39a08195de83d778677a67a207f5a49acba8823c094fec886fae3431d6a0fc6c2338dd505953ec8cfbe4fd7ca8d2413971e558959059f313a8797eb7275122
+doccontainersize 330952
+doccontainerchecksum 9cec169592c730a1a1c184266c5545de253aeef5466b8e50249bdf407f4102cd0d33733aa16c410cee0dd14ef89f17b3c71bea82b5ef34045d17a3ea21c53bec
+docfiles size=96
RELOC/doc/latex/profsio/ProfSio-doc-fr.pdf details="Package documentation" language="fr"
RELOC/doc/latex/profsio/ProfSio-doc-fr.tex
RELOC/doc/latex/profsio/README.md details="Readme"
-runfiles size=11
+runfiles size=19
RELOC/tex/latex/profsio/ProfSio.sty
catalogue-contact-bugs https://github.com/cpierquet/profsio/issues
catalogue-contact-repository https://github.com/cpierquet/profsio
catalogue-ctan /graphics/pgf/contrib/profsio
catalogue-license lppl1.3c
catalogue-topics graphics pgf-tikz maths
-catalogue-version 0.1.4
+catalogue-version 0.1.5
name program
category Package
@@ -279644,7 +279688,7 @@ catalogue-version 2.2
name runtexshebang
category Package
-revision 68232
+revision 68269
shortdesc A Lua script running LaTeX document files with TeX-style shebang
longdesc In short, a TeX-style shebang (%#!) is a special kind of TeX
longdesc comment that you include in your TeX/LaTeX document file to
@@ -279658,10 +279702,10 @@ longdesc followed by a hash sign (#) and an exclamation mark (!),
longdesc colloquially known as the bang, hence the name shebang for
longdesc TeX/LaTeX.
depend runtexshebang.ARCH
-containersize 1896
-containerchecksum da728c6f9eef8b2b43fe3e6e758b5135fb8b898b06e6ec92433029b113be92ff4f961dc8618baca8f5c303238afa4a5eb4b831f3c91a980a8957406931730f14
-doccontainersize 2448
-doccontainerchecksum 9617ce08d2000b0ed4d7a5954ed4975be3192dd20b2687d5c94c266fcf96a1ca1abea84ebd6aae769e31de88d4e3bf8e3bb30a41d53d4e8388099a558ef73878
+containersize 2180
+containerchecksum 27f3173254524b8fde71a938d3e353699d79509cf953cf4bc4768d72e2c298adae99a334fdced4279cc18ce574a2512803376d8b179e21b9988b9923e3f9f724
+doccontainersize 2528
+doccontainerchecksum 13b760428cd1a3c3c3b7e748b85eb0bb236f1b8fdbe8106eeba8d4bfd6306f1aaa28f93d460a3e66a1b19667be28c43452d7475194b93d6e7635fd0e5351f1e1
docfiles size=2
texmf-dist/doc/support/runtexshebang/LICENSE
texmf-dist/doc/support/runtexshebang/README.md details="Readme"
@@ -279673,7 +279717,7 @@ catalogue-contact-repository https://github.com/munepi/runtexshebang.git
catalogue-ctan /support/runtexshebang
catalogue-license mit
catalogue-topics compilation
-catalogue-version 0.3
+catalogue-version 0.4
name runtexshebang.aarch64-linux
category Package
@@ -315536,7 +315580,7 @@ docfiles size=376
name texlive-scripts
category TLCore
-revision 68247
+revision 68262
shortdesc TeX Live infrastructure programs
longdesc Includes install-tl, tl-portable, rungs, etc.; not needed for
longdesc tlmgr to run but still ours. Not included in tlcritical.
@@ -315545,9 +315589,9 @@ depend texlive.infra
execute addMap mathpple.map
postaction shortcut type=menu name="TeX Live command-line" cmd=TEXDIR/tlpkg/installer/tl-cmd.bat
containersize 114132
-containerchecksum 9abe163f0c16881ab0ba37f8e2bc2c9b0d4379b6d7846d0622f446d333d307e7f8e6ebeb63239ec9b88976baab6a87324f0bedfc7fdf8d26d7e83a3295af2672
-doccontainersize 429604
-doccontainerchecksum ca3c5e4f3f3b16f8885adf9f0ff83f9e1b732c6d7d2614fdec2f4103943e5df072f59a41172d68d1823535497bdf57c5776c0d03683241d1741cc9a5b463b899
+containerchecksum e0c472ae1cf980da46742e97bf21f6cab7e89cbcc467ad0bf6fb0fc0ed149f9c9d7cceb68de9e115f9419a70d8159f0b8029aae18fcd1e713bb0b5ac7ded97c4
+doccontainersize 429632
+doccontainerchecksum effea08dcd0cd71a61c5e8f63d97f1f64f206da3b021d7e0ac70453525361b51a366e948bd27a4e7cb31605b1403de79fc0721083e62154d357a2e00a40a6b6d
docfiles size=550
doc.html
texmf-dist/doc/man/man1/fmtutil-sys.1
@@ -327467,7 +327511,7 @@ binfiles arch=x86_64-solaris size=1
name tlgs.windows
category TLCore
-revision 67478
+revision 68272
catalogue ghostscript
shortdesc Freely available PostScript interpreter
longdesc Ghostscript is a freely available PostScript interpreter which
@@ -327476,9 +327520,9 @@ longdesc complement to a TeX installation, used in many utilities,
longdesc including PostScript/PDF viewers such as gv and GSview.
longdesc Ghostscript is no longer held on CTAN: please see the home page
longdesc for downloads.
-containersize 8898712
-containerchecksum d212ebf65ded1c84812806f0e602d9f4baa5a9a87d34b1d956bdaeeb61008f43b043d63c1ffe3e94735d0c1c74f9cb5d32ee359a3cd951d1f6ac0bbdd0582c64
-runfiles size=8341
+containersize 8815484
+containerchecksum fa4f1037ea9768b9f7aa378dac0aac3cd638650ef0dce9c8e0aa7c38c009028942fe95d9281e57deaa9c3de94f1f95b48833d2474a32c12f233f0c10d8649444
+runfiles size=8221
texmf-dist/scripts/tlgs/eps2eps.lua
texmf-dist/scripts/tlgs/pdf2dsc.lua
texmf-dist/scripts/tlgs/pdf2ps.lua
@@ -327835,13 +327879,7 @@ runfiles size=8341
tlpkg/tlgs/Resource/Init/gs_typ42.ps
tlpkg/tlgs/Resource/Init/gs_type1.ps
tlpkg/tlgs/Resource/Init/gs_wan_e.ps
- tlpkg/tlgs/Resource/Init/pdf_base.ps
- tlpkg/tlgs/Resource/Init/pdf_draw.ps
- tlpkg/tlgs/Resource/Init/pdf_font.ps
tlpkg/tlgs/Resource/Init/pdf_main.ps
- tlpkg/tlgs/Resource/Init/pdf_ops.ps
- tlpkg/tlgs/Resource/Init/pdf_rbld.ps
- tlpkg/tlgs/Resource/Init/pdf_sec.ps
tlpkg/tlgs/Resource/Init/xlatmap
tlpkg/tlgs/Resource/SubstCID/CNS1-WMode
tlpkg/tlgs/Resource/SubstCID/GB1-WMode
@@ -327888,8 +327926,10 @@ runfiles size=8341
tlpkg/tlgs/lib/afmdiff.awk
tlpkg/tlgs/lib/align.ps
tlpkg/tlgs/lib/caption.ps
+ tlpkg/tlgs/lib/cat.ps
tlpkg/tlgs/lib/cid2code.ps
tlpkg/tlgs/lib/docie.ps
+ tlpkg/tlgs/lib/font2pcl.ps
tlpkg/tlgs/lib/gs_ce_e.ps
tlpkg/tlgs/lib/gs_css_e.ps
tlpkg/tlgs/lib/gs_il2_e.ps
@@ -327905,6 +327945,7 @@ runfiles size=8341
tlpkg/tlgs/lib/ht_ccsto.ps
tlpkg/tlgs/lib/image-qa.ps
tlpkg/tlgs/lib/jispaper.ps
+ tlpkg/tlgs/lib/jobseparator.ps
tlpkg/tlgs/lib/landscap.ps
tlpkg/tlgs/lib/lines.ps
tlpkg/tlgs/lib/mkcidfm.ps
@@ -327919,6 +327960,8 @@ runfiles size=8341
tlpkg/tlgs/lib/ps2ai.ps
tlpkg/tlgs/lib/ps2epsi.ps
tlpkg/tlgs/lib/rollconv.ps
+ tlpkg/tlgs/lib/stcinfo.ps
+ tlpkg/tlgs/lib/stcolor.ps
tlpkg/tlgs/lib/stocht.ps
tlpkg/tlgs/lib/traceimg.ps
tlpkg/tlgs/lib/traceop.ps
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5 b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
index f1b8b827dd..0d645e234b 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
@@ -1 +1 @@
-de60d4e124624ad01869c403dbf11f64 texlive.tlpdb
+5a83e4747fda9947f8ed7b306bbcfcb1 texlive.tlpdb
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512 b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
index 7cbfa8b308..0574da60b2 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
@@ -1 +1 @@
-fcc79df229b453cb138f303d650cd65cab99e36714c477bb9cb39dc79b96532ff34ca173856cc29bd4ad5b2aea5d96f92cbf57c59de5e0ceab5851351f8068bb texlive.tlpdb
+9ab82c0e7689aa198e2f1a2aa56178ce4badbbda44b4b57c78b40766f6c92859958436a81c7b63296015b163100de99e7cc3ab5122bc26bcc9f9f3b3b9367280 texlive.tlpdb
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
index ddd6de64c3..be8d0cfe31 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
@@ -1,11 +1,11 @@
-----BEGIN PGP SIGNATURE-----
-iQEzBAEBCgAdFiEE2PL4YFeoV+QqiBBqTOGHfhlDjHAFAmUA+AcACgkQTOGHfhlD
-jHC1MQgArS/IGNDYKGpAOZ1exQ0n1pGLC+n+Py3BsUaRNVD1dPO80JZhzzhjDVkb
-1lcYBfgg7QWTfttWJ6oPmNzGh+hLLp8dv7BDvbQ1VK7gnHIuw6JARjAAHX0EOVmq
-W0vX+JZ/6PrPrO67HwGW0IxyqZxphCg0D3EsEARzh1NypzloEElXExHIgiTI4hfV
-UUgBD1ESRISdhnxMBg1JHKhXwgXTtEOZkSl8i/USYQ2lOQ1z0J1ZkBZWQpsuGTvX
-prFo32SIzmN89zMtllTnolK8gwyVkevR9zcciLjniFBPhsraZ17SHD7yydLgjWmv
-DBXiuuDfoViT36z0pSETVlENbE9rbA==
-=6UOC
+iQEzBAEBCgAdFiEE2PL4YFeoV+QqiBBqTOGHfhlDjHAFAmUCSZ8ACgkQTOGHfhlD
+jHAj+Af+Pf1PR9c8uH/uwUgKkokeGcZquF96u86cmlxzyrlfhT+wpqNHjlQ9U7s2
+LNKEJvxVMxae7s/S2Ayjo5qVWedtzAke2XvacGVWGfXUXaAmwDaibWM8yk27WiPb
+TaZEaLYhDVQJeMW5Uz/vaa4omNyVf00LI7068/1jd6UuLR4ZNlpHqBnIP2pr83w6
+4MCbrs+e8ZItPPCu2cOz+EfsNx+Ef3Qn3hsHy+rYtQZCYNNtQwfgsJPjslij5EP9
+paeB2snfzafOtboDgn2V5saefqmHxMDYkZts9xgIUORQj0icPDSR1yCE2xZy6W94
+D6RNLbDPcIXPAFROL+wwGC0BogM3yg==
+=/whi
-----END PGP SIGNATURE-----
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
index 315bc4872e..3a07807aec 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
Binary files differ
diff --git a/timestamp b/timestamp
index a4f7c8120c..b97460e1da 100644
--- a/timestamp
+++ b/timestamp
@@ -2,4 +2,4 @@
# The source CTAN of this site's material:
dante.ctan.org
# The year-month-day-hour-minute of this site's material:
-2023-09-13-02-02
+2023-09-14-02-02