summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2020-11-25 03:00:39 +0000
committerNorbert Preining <norbert@preining.info>2020-11-25 03:00:39 +0000
commit224d125bf0d14ba177ef8a181907a713484afa2f (patch)
treec7be3cf437ba902f6fd09520a329e373ed956ede
parent55c6d66f61a96ba63cd8c141229843ad2ab42632 (diff)
CTAN sync 202011250300
-rw-r--r--FILES.byname788
-rw-r--r--FILES.byname.gzbin2234423 -> 2234952 bytes
-rw-r--r--FILES.last07days613
-rw-r--r--macros/latex/contrib/bewerbung/README6
-rw-r--r--macros/latex/contrib/bewerbung/README_DE6
-rw-r--r--macros/latex/contrib/bewerbung/argetabelle-example.pdfbin41294 -> 41294 bytes
-rw-r--r--macros/latex/contrib/bewerbung/bewerbung-example.pdfbin134686 -> 148575 bytes
-rw-r--r--macros/latex/contrib/bewerbung/bewerbung.dtx81
-rw-r--r--macros/latex/contrib/bewerbung/bewerbung.ins4
-rw-r--r--macros/latex/contrib/bewerbung/bewerbung.pdfbin726260 -> 693654 bytes
-rw-r--r--macros/latex/contrib/elsarticle/README2
-rw-r--r--macros/latex/contrib/elsarticle/doc/elsdoc.pdfbin453062 -> 455186 bytes
-rw-r--r--macros/latex/contrib/elsarticle/doc/elsdoc.tex99
-rw-r--r--macros/latex/contrib/elsarticle/doc/makefile3
-rw-r--r--macros/latex/contrib/elsarticle/doc/rvdtx.sty12
-rw-r--r--macros/latex/contrib/elsarticle/elsarticle-harv.bst7
-rw-r--r--macros/latex/contrib/elsarticle/elsarticle-num-names.bst7
-rw-r--r--macros/latex/contrib/elsarticle/elsarticle-num.bst7
-rw-r--r--macros/latex/contrib/elsarticle/elsarticle-template-harv.tex33
-rw-r--r--macros/latex/contrib/elsarticle/elsarticle-template-num-names.tex31
-rw-r--r--macros/latex/contrib/elsarticle/elsarticle-template-num.tex33
-rw-r--r--macros/latex/contrib/elsarticle/elsarticle.dtx344
-rw-r--r--macros/latex/contrib/elsarticle/elsarticle.ins6
-rw-r--r--macros/latex/contrib/elsarticle/manifest.txt3
-rw-r--r--macros/latex/contrib/everyshi/README.md27
-rw-r--r--macros/latex/contrib/everyshi/everyshi.dtx (renamed from macros/latex/contrib/ms/everyshi.dtx)195
-rw-r--r--macros/latex/contrib/everyshi/everyshi.ins49
-rw-r--r--macros/latex/contrib/everyshi/everyshi.pdfbin0 -> 135907 bytes
-rw-r--r--macros/latex/contrib/ms/README.md12
-rw-r--r--macros/latex/contrib/ms/count1to.dtx1000
-rw-r--r--macros/latex/contrib/ms/everyshi.asc12
-rw-r--r--macros/latex/contrib/ms/everyshi.bug11
-rw-r--r--macros/latex/contrib/ms/everyshi.ins113
-rw-r--r--macros/latex/contrib/ms/everyshi.pdfbin96478 -> 0 bytes
-rw-r--r--macros/latex/contrib/ms/prelim2e.ins110
-rw-r--r--macros/latex/contrib/ms/prelim2e.pdfbin561054 -> 0 bytes
-rw-r--r--macros/latex/contrib/prelim2e/README.md26
-rw-r--r--macros/latex/contrib/prelim2e/prelim2e.dtx (renamed from macros/latex/contrib/ms/prelim2e.dtx)414
-rw-r--r--macros/latex/contrib/prelim2e/prelim2e.ins59
-rw-r--r--macros/latex/contrib/prelim2e/prelim2e.pdfbin0 -> 426244 bytes
-rw-r--r--macros/latex/contrib/ut-thesis/README142
-rw-r--r--macros/latex/contrib/ut-thesis/ut-thesis.cls497
-rw-r--r--macros/latex/contrib/ut-thesis/ut-thesis.dtx607
-rw-r--r--macros/latex/contrib/ut-thesis/ut-thesis.ins39
-rw-r--r--macros/latex/contrib/ut-thesis/ut-thesis.pdfbin0 -> 116662 bytes
-rw-r--r--macros/latex/contrib/ut-thesis/ut-thesis.tex209
-rw-r--r--systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl19
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb125
-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.asc14
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb.xzbin2243888 -> 2243228 bytes
-rw-r--r--systems/unix/tex-fpc/MFT/iby/README26
-rw-r--r--systems/unix/tex-fpc/MFT/iby/agr.tex2
-rwxr-xr-x[-rw-r--r--]systems/unix/tex-fpc/MFT/iby/getiby8
-rwxr-xr-xsystems/unix/tex-fpc/MFT/iby/getlevy3
-rwxr-xr-xsystems/unix/tex-fpc/MFT/iby/ibymacros2
-rw-r--r--systems/unix/tex-fpc/MFT/iby/sappho.tex6
-rwxr-xr-xsystems/unix/tex-fpc/MFT/logmacfonts3
-rwxr-xr-xsystems/unix/tex-fpc/MFT/manfonts2
-rwxr-xr-xsystems/unix/tex-fpc/MFT/texwebfonts2
-rwxr-xr-x[-rw-r--r--]systems/unix/tex-fpc/MFT/webfonts0
-rw-r--r--systems/unix/tex-fpc/README288
-rw-r--r--systems/unix/tex-fpc/ch.ch/README19
-rwxr-xr-xsystems/unix/tex-fpc/ch.ch/mkchatty12
-rwxr-xr-xsystems/unix/tex-fpc/ch.ch/mkdebug12
-rwxr-xr-xsystems/unix/tex-fpc/ch.ch/mkini12
-rwxr-xr-xsystems/unix/tex-fpc/ch.ch/mkprod12
-rwxr-xr-xsystems/unix/tex-fpc/ch.ch/mkstats12
-rwxr-xr-xsystems/unix/tex-fpc/ch.ch/mktrap19
-rwxr-xr-xsystems/unix/tex-fpc/ch.ch/mktrip11
-rwxr-xr-xsystems/unix/tex-fpc/ch.ch/mkunchatty12
-rwxr-xr-xsystems/unix/tex-fpc/ch.ch/mkundebug12
-rwxr-xr-xsystems/unix/tex-fpc/ch.ch/mkunstats12
-rwxr-xr-xsystems/unix/tex-fpc/ch.ch/mkuntrap17
-rwxr-xr-xsystems/unix/tex-fpc/ch.ch/mkuntrip8
-rw-r--r--systems/unix/tex-fpc/dvips/Makefile (renamed from systems/unix/tex-fpc/dvipsnk/Makefile)0
-rw-r--r--systems/unix/tex-fpc/dvips/README (renamed from systems/unix/tex-fpc/dvipsnk/README)0
-rw-r--r--systems/unix/tex-fpc/dvips/afm2tfm.c (renamed from systems/unix/tex-fpc/dvipsnk/afm2tfm.c)0
-rw-r--r--systems/unix/tex-fpc/dvips/dvipsmanfonts (renamed from systems/unix/tex-fpc/dvipsnk/dvipsmanfonts)0
-rw-r--r--systems/unix/tex-fpc/dvitype.ch297
-rw-r--r--systems/unix/tex-fpc/fpcbugs56
-rw-r--r--systems/unix/tex-fpc/gftopk.ch (renamed from systems/unix/tex-fpc/mfware/gftopk.ch)47
-rw-r--r--systems/unix/tex-fpc/gftype.ch184
-rw-r--r--systems/unix/tex-fpc/history99
-rw-r--r--systems/unix/tex-fpc/local.mf (renamed from systems/unix/tex-fpc/MFT/local.mf)0
-rw-r--r--systems/unix/tex-fpc/mf.ch (renamed from systems/unix/tex-fpc/mf/mf.ch)534
-rw-r--r--systems/unix/tex-fpc/mp/dvitomp.ch208
-rw-r--r--systems/unix/tex-fpc/mp/fig.mp11
-rw-r--r--systems/unix/tex-fpc/mp/fig.tex3
-rwxr-xr-xsystems/unix/tex-fpc/mp/mk_MP_dir2
-rw-r--r--systems/unix/tex-fpc/mp/mp.ch734
-rwxr-xr-xsystems/unix/tex-fpc/mp/mpx10
-rw-r--r--systems/unix/tex-fpc/mp/readme204
-rw-r--r--systems/unix/tex-fpc/pltotf.ch97
-rwxr-xr-xsystems/unix/tex-fpc/shell/MakeTeXPK (renamed from systems/unix/tex-fpc/dvipsnk/MakeTeXPK)0
-rwxr-xr-xsystems/unix/tex-fpc/shell/itgl3
-rwxr-xr-xsystems/unix/tex-fpc/shell/mkfont3
-rwxr-xr-xsystems/unix/tex-fpc/shell/mkpkfont3
-rwxr-xr-xsystems/unix/tex-fpc/shell/tgl3
-rw-r--r--systems/unix/tex-fpc/tangle.ch (renamed from systems/unix/tex-fpc/web/tangle.ch)119
-rw-r--r--systems/unix/tex-fpc/tangle.p (renamed from systems/unix/tex-fpc/web/tangle.p)445
-rw-r--r--systems/unix/tex-fpc/tech/gauss.tex (renamed from systems/unix/tex-fpc/tech/schlicht.tex)2
-rw-r--r--systems/unix/tex-fpc/tech/german.ed1
-rwxr-xr-xsystems/unix/tex-fpc/tech/mktech21
-rw-r--r--systems/unix/tex-fpc/tech/readme6
-rw-r--r--systems/unix/tex-fpc/tech/test.tex4
-rw-r--r--systems/unix/tex-fpc/tex-fpc.pdfbin571938 -> 610582 bytes
-rw-r--r--systems/unix/tex-fpc/tex.ch1425
-rw-r--r--systems/unix/tex-fpc/tex/otex.ch1070
-rw-r--r--systems/unix/tex-fpc/tex/tex.ch1059
-rw-r--r--systems/unix/tex-fpc/tftopl.ch112
-rw-r--r--systems/unix/tex-fpc/trap/diff_trap.fot10
-rw-r--r--systems/unix/tex-fpc/trap/diff_trap.log118
-rw-r--r--systems/unix/tex-fpc/trap/diff_trap.pl0
-rw-r--r--systems/unix/tex-fpc/trap/diff_trap.typ8
-rw-r--r--systems/unix/tex-fpc/trap/diff_trapin.log14
-rw-r--r--systems/unix/tex-fpc/trap/report59
-rw-r--r--systems/unix/tex-fpc/trip/diff_trip.fot4
-rw-r--r--systems/unix/tex-fpc/trip/diff_trip.log10
-rw-r--r--systems/unix/tex-fpc/trip/diff_trip.log30042
-rw-r--r--systems/unix/tex-fpc/trip/diff_trip.typ8
-rw-r--r--systems/unix/tex-fpc/trip/diff_tripin.log14
-rw-r--r--systems/unix/tex-fpc/trip/report69
-rw-r--r--systems/unix/tex-fpc/weave.ch (renamed from systems/unix/tex-fpc/web/weave.ch)89
-rw-r--r--systems/unix/tex-fpc/webmac-fpc.tex (renamed from systems/unix/tex-fpc/lib/webmac-fpc.tex)5
-rw-r--r--systems/unix/tex-fpc/xdvi/README35
-rw-r--r--systems/unix/tex-fpc/xdvi/Xdvi11
-rwxr-xr-xsystems/unix/tex-fpc/xdvi/config7
-rw-r--r--systems/unix/tex-fpc/xdvi/configdiff12
-rwxr-xr-xsystems/unix/tex-fpc/xdvi/macconfigure662
-rw-r--r--systems/win32/miktex/tm/packages/files.csv.lzmabin550962 -> 548423 bytes
-rw-r--r--systems/win32/miktex/tm/packages/next/files.csv.lzmabin550966 -> 548392 bytes
-rw-r--r--systems/win32/miktex/tm/packages/next/pr.ini10
-rw-r--r--systems/win32/miktex/tm/packages/pr.ini12
-rw-r--r--timestamp2
136 files changed, 8517 insertions, 5727 deletions
diff --git a/FILES.byname b/FILES.byname
index fbca4eae72..8b0a011a74 100644
--- a/FILES.byname
+++ b/FILES.byname
@@ -5020,7 +5020,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
-2020/11/23 | 54885 | FILES.last07days
+2020/11/24 | 192782 | FILES.last07days
2020/08/14 | 104065 | fonts/academicons/academicons.pdf
2020/08/14 | 17247 | fonts/academicons/academicons.sty
2020/08/14 | 6546 | fonts/academicons/academicons.tex
@@ -186477,18 +186477,18 @@
2008/05/31 | 106113 | macros/latex/contrib/beton/beton.pdf
2002/05/26 | 521 | macros/latex/contrib/beton/legal.txt
2008/06/01 | 69098 | macros/latex/contrib/beton.zip
-2015/07/14 | 251 | macros/latex/contrib/bewerbung/anschrift.csv
-2015/07/14 | 41294 | macros/latex/contrib/bewerbung/argetabelle-example.pdf
-2015/07/14 | 2015 | macros/latex/contrib/bewerbung/argetabelle-example.tex
-2015/07/14 | 115772 | macros/latex/contrib/bewerbung/bewerbung.dtx
-2015/07/14 | 134686 | macros/latex/contrib/bewerbung/bewerbung-example.pdf
-2015/07/14 | 3686 | macros/latex/contrib/bewerbung/bewerbung-example.tex
-2015/07/14 | 2340 | macros/latex/contrib/bewerbung/bewerbung.ins
-2015/07/14 | 726260 | macros/latex/contrib/bewerbung/bewerbung.pdf
-2015/06/29 | 13720 | macros/latex/contrib/bewerbung/Foto.pdf
-2015/07/14 | 4524 | macros/latex/contrib/bewerbung/README
-2015/07/14 | 4697 | macros/latex/contrib/bewerbung/README_DE
-2015/07/14 | 938717 | macros/latex/contrib/bewerbung.zip
+2020/11/24 | 251 | macros/latex/contrib/bewerbung/anschrift.csv
+2020/11/24 | 41294 | macros/latex/contrib/bewerbung/argetabelle-example.pdf
+2020/11/24 | 2015 | macros/latex/contrib/bewerbung/argetabelle-example.tex
+2020/11/24 | 116705 | macros/latex/contrib/bewerbung/bewerbung.dtx
+2020/11/24 | 148575 | macros/latex/contrib/bewerbung/bewerbung-example.pdf
+2020/11/24 | 3686 | macros/latex/contrib/bewerbung/bewerbung-example.tex
+2020/11/24 | 2341 | macros/latex/contrib/bewerbung/bewerbung.ins
+2020/11/24 | 693654 | macros/latex/contrib/bewerbung/bewerbung.pdf
+2017/06/07 | 13720 | macros/latex/contrib/bewerbung/Foto.pdf
+2020/11/24 | 4525 | macros/latex/contrib/bewerbung/README
+2020/11/24 | 4698 | macros/latex/contrib/bewerbung/README_DE
+2020/11/24 | 920487 | macros/latex/contrib/bewerbung.zip
2009/09/08 | 62493 | macros/latex/contrib/bez123/bez123.dtx
2009/09/08 | 2563 | macros/latex/contrib/bez123/bez123.ins
2009/09/08 | 289117 | macros/latex/contrib/bez123/bez123.pdf
@@ -192174,30 +192174,30 @@
2020/08/15 | 2002 | macros/latex/contrib/elpres/elpreswhitetealscheme.sty
2020/08/19 | 1393 | macros/latex/contrib/elpres/README.md
2020/08/19 | 472261 | macros/latex/contrib/elpres.zip
-2019/04/05 | 100656 | macros/latex/contrib/elsarticle/doc/1pseperateaug.pdf
-2019/04/05 | 100216 | macros/latex/contrib/elsarticle/doc/1psingleauthorgroup.pdf
-2019/04/05 | 453062 | macros/latex/contrib/elsarticle/doc/elsdoc.pdf
-2019/04/05 | 27964 | macros/latex/contrib/elsarticle/doc/elsdoc.tex
-2019/04/05 | 248968 | macros/latex/contrib/elsarticle/doc/elstest-1pdoubleblind.pdf
-2019/04/05 | 99904 | macros/latex/contrib/elsarticle/doc/elstest-1p.pdf
-2019/04/05 | 100019 | macros/latex/contrib/elsarticle/doc/elstest-3pd.pdf
-2019/04/05 | 98705 | macros/latex/contrib/elsarticle/doc/elstest-3p.pdf
-2019/04/05 | 99256 | macros/latex/contrib/elsarticle/doc/elstest-5p.pdf
-2019/04/05 | 153502 | macros/latex/contrib/elsarticle/doc/jfigs.pdf
-2019/04/05 | 605 | macros/latex/contrib/elsarticle/doc/makefile
-2019/04/05 | 12495 | macros/latex/contrib/elsarticle/doc/pdfwidgets.sty
-2019/04/05 | 14013 | macros/latex/contrib/elsarticle/doc/rvdtx.sty
-2019/04/05 | 35920 | macros/latex/contrib/elsarticle/elsarticle.dtx
-2019/04/05 | 30000 | macros/latex/contrib/elsarticle/elsarticle-harv.bst
-2019/04/05 | 2626 | macros/latex/contrib/elsarticle/elsarticle.ins
-2019/04/05 | 29460 | macros/latex/contrib/elsarticle/elsarticle-num.bst
-2019/04/05 | 28894 | macros/latex/contrib/elsarticle/elsarticle-num-names.bst
-2019/04/05 | 4065 | macros/latex/contrib/elsarticle/elsarticle-template-harv.tex
-2019/04/05 | 4095 | macros/latex/contrib/elsarticle/elsarticle-template-num-names.tex
-2019/04/05 | 4069 | macros/latex/contrib/elsarticle/elsarticle-template-num.tex
-2019/04/05 | 1857 | macros/latex/contrib/elsarticle/manifest.txt
-2019/04/05 | 2070 | macros/latex/contrib/elsarticle/README
-2019/04/05 | 1422952 | macros/latex/contrib/elsarticle.zip
+2020/11/20 | 100656 | macros/latex/contrib/elsarticle/doc/1pseperateaug.pdf
+2020/11/20 | 100216 | macros/latex/contrib/elsarticle/doc/1psingleauthorgroup.pdf
+2020/11/23 | 455186 | macros/latex/contrib/elsarticle/doc/elsdoc.pdf
+2020/11/23 | 29811 | macros/latex/contrib/elsarticle/doc/elsdoc.tex
+2020/11/20 | 248968 | macros/latex/contrib/elsarticle/doc/elstest-1pdoubleblind.pdf
+2020/11/20 | 99904 | macros/latex/contrib/elsarticle/doc/elstest-1p.pdf
+2020/11/20 | 100019 | macros/latex/contrib/elsarticle/doc/elstest-3pd.pdf
+2020/11/20 | 98705 | macros/latex/contrib/elsarticle/doc/elstest-3p.pdf
+2020/11/20 | 99256 | macros/latex/contrib/elsarticle/doc/elstest-5p.pdf
+2020/11/20 | 153502 | macros/latex/contrib/elsarticle/doc/jfigs.pdf
+2020/11/23 | 606 | macros/latex/contrib/elsarticle/doc/makefile
+2020/11/20 | 12495 | macros/latex/contrib/elsarticle/doc/pdfwidgets.sty
+2020/11/23 | 14106 | macros/latex/contrib/elsarticle/doc/rvdtx.sty
+2020/11/23 | 47087 | macros/latex/contrib/elsarticle/elsarticle.dtx
+2020/11/23 | 30002 | macros/latex/contrib/elsarticle/elsarticle-harv.bst
+2020/11/23 | 2626 | macros/latex/contrib/elsarticle/elsarticle.ins
+2020/11/23 | 29462 | macros/latex/contrib/elsarticle/elsarticle-num.bst
+2020/11/23 | 28896 | macros/latex/contrib/elsarticle/elsarticle-num-names.bst
+2020/11/23 | 4679 | macros/latex/contrib/elsarticle/elsarticle-template-harv.tex
+2020/11/23 | 4708 | macros/latex/contrib/elsarticle/elsarticle-template-num-names.tex
+2020/11/23 | 4682 | macros/latex/contrib/elsarticle/elsarticle-template-num.tex
+2020/11/23 | 1858 | macros/latex/contrib/elsarticle/manifest.txt
+2020/11/20 | 2070 | macros/latex/contrib/elsarticle/README
+2020/11/24 | 1427779 | macros/latex/contrib/elsarticle.zip
2020/03/14 | 67921 | macros/latex/contrib/els-cas-templates/cas-common.sty
2020/03/14 | 4131 | macros/latex/contrib/els-cas-templates/cas-dc.cls
2019/04/04 | 200284 | macros/latex/contrib/els-cas-templates/cas-dc-template.pdf
@@ -193005,6 +193005,11 @@
2020/10/17 | 159952 | macros/latex/contrib/everypage/everypage.pdf
2020/10/17 | 2456 | macros/latex/contrib/everypage/README.md
2020/10/18 | 168720 | macros/latex/contrib/everypage.zip
+2020/11/24 | 13330 | macros/latex/contrib/everyshi/everyshi.dtx
+2020/11/24 | 1561 | macros/latex/contrib/everyshi/everyshi.ins
+2020/11/24 | 135907 | macros/latex/contrib/everyshi/everyshi.pdf
+2020/11/24 | 784 | macros/latex/contrib/everyshi/README.md
+2020/11/24 | 136405 | macros/latex/contrib/everyshi.zip
2006/09/06 | 15 | macros/latex/contrib/examdesign/Bugs
2006/09/06 | 3021 | macros/latex/contrib/examdesign/Changes
2006/09/06 | 137883 | macros/latex/contrib/examdesign/examdesign.dtx
@@ -200249,21 +200254,16 @@
2008/06/02 | 229228 | macros/latex/contrib/msc/manual.pdf
2008/06/02 | 89503 | macros/latex/contrib/msc/manual.tex
2008/06/02 | 113195 | macros/latex/contrib/msc/msc.sty
-2009/05/24 | 19235 | macros/latex/contrib/ms/count1to.dtx
-2009/05/24 | 3532 | macros/latex/contrib/ms/count1to.ins
+2020/11/24 | 18735 | macros/latex/contrib/ms/count1to.dtx
+2020/11/24 | 3532 | macros/latex/contrib/ms/count1to.ins
2009/05/24 | 545999 | macros/latex/contrib/ms/count1to.pdf
2008/06/02 | 1183 | macros/latex/contrib/msc/README
2008/06/02 | 154934 | macros/latex/contrib/msc/refman.pdf
2008/06/02 | 55546 | macros/latex/contrib/msc/refman.tex
2008/06/02 | 451349 | macros/latex/contrib/msc.zip
-2011/10/28 | 13295 | macros/latex/contrib/ms/everysel.dtx
-2010/11/24 | 3430 | macros/latex/contrib/ms/everysel.ins
+2020/11/24 | 13295 | macros/latex/contrib/ms/everysel.dtx
+2020/11/24 | 3430 | macros/latex/contrib/ms/everysel.ins
2011/10/28 | 439959 | macros/latex/contrib/ms/everysel.pdf
-2001/05/15 | 493 | macros/latex/contrib/ms/everyshi.asc
-1999/06/08 | 406 | macros/latex/contrib/ms/everyshi.bug
-2001/05/15 | 13950 | macros/latex/contrib/ms/everyshi.dtx
-1999/06/08 | 3570 | macros/latex/contrib/ms/everyshi.ins
-2007/04/15 | 96478 | macros/latex/contrib/ms/everyshi.pdf
2019/01/01 | 1743 | macros/latex/contrib/msg/CHANGES
2006/11/08 | 898 | macros/latex/contrib/msg/Makefile
2019/01/01 | 66015 | macros/latex/contrib/msg/msg.dtx
@@ -200283,14 +200283,12 @@
2010/03/20 | 6359 | macros/latex/contrib/mslapa/mslapa.tex
2008/11/25 | 1744 | macros/latex/contrib/mslapa/README
2010/03/20 | 287461 | macros/latex/contrib/mslapa.zip
-1999/06/08 | 493 | macros/latex/contrib/ms/multitoc.asc
-1999/06/08 | 400 | macros/latex/contrib/ms/multitoc.bug
-1999/06/08 | 18305 | macros/latex/contrib/ms/multitoc.dtx
-1999/06/08 | 3537 | macros/latex/contrib/ms/multitoc.ins
+2020/11/24 | 493 | macros/latex/contrib/ms/multitoc.asc
+2020/11/24 | 400 | macros/latex/contrib/ms/multitoc.bug
+2020/11/24 | 18305 | macros/latex/contrib/ms/multitoc.dtx
+2020/11/24 | 3537 | macros/latex/contrib/ms/multitoc.ins
2007/04/15 | 110362 | macros/latex/contrib/ms/multitoc.pdf
-2009/05/30 | 21239 | macros/latex/contrib/ms/prelim2e.dtx
-2009/05/30 | 3419 | macros/latex/contrib/ms/prelim2e.ins
-2009/05/30 | 561054 | macros/latex/contrib/ms/prelim2e.pdf
+2020/11/24 | 441 | macros/latex/contrib/ms/README.md
2017/12/20 | 25719 | macros/latex/contrib/msu-thesis/msu-thesis.cls
2017/12/20 | 226815 | macros/latex/contrib/msu-thesis/msu-thesis.pdf
2017/12/20 | 25643 | macros/latex/contrib/msu-thesis/msu-thesis.tex
@@ -200302,7 +200300,7 @@
2017/12/20 | 9363 | macros/latex/contrib/msu-thesis/samples/MSU-thesis-testfile.tex
2017/12/20 | 28876 | macros/latex/contrib/msu-thesis/samples/unified.bst
2017/12/20 | 442794 | macros/latex/contrib/msu-thesis.zip
-2019/07/30 | 1621999 | macros/latex/contrib/ms.zip
+2020/11/24 | 1037176 | macros/latex/contrib/ms.zip
1999/07/29 | 5665 | macros/latex/contrib/mtgreek/mtgreek.dtx
1999/07/29 | 752 | macros/latex/contrib/mtgreek/mtgreek.ins
2010/04/21 | 169570 | macros/latex/contrib/mtgreek/mtgreek.pdf
@@ -203075,6 +203073,11 @@
2019/10/07 | 13776 | macros/latex/contrib/practicalreports/practicalreports.tex
2019/10/07 | 622 | macros/latex/contrib/practicalreports/README
2019/10/07 | 225049 | macros/latex/contrib/practicalreports.zip
+2020/11/24 | 19882 | macros/latex/contrib/prelim2e/prelim2e.dtx
+2020/11/24 | 1776 | macros/latex/contrib/prelim2e/prelim2e.ins
+2020/11/24 | 426244 | macros/latex/contrib/prelim2e/prelim2e.pdf
+2020/11/24 | 759 | macros/latex/contrib/prelim2e/README.md
+2020/11/24 | 431703 | macros/latex/contrib/prelim2e.zip
2013/05/12 | 38380 | macros/latex/contrib/preprint/authblk.dtx
2013/05/12 | 1940 | macros/latex/contrib/preprint/authblk.ins
2013/05/12 | 160401 | macros/latex/contrib/preprint/authblk.pdf
@@ -210614,13 +210617,14 @@
1995/11/22 | 4779 | macros/latex/contrib/utthesis/ICDE-11/runtime_Q8.ps
1995/11/22 | 309 | macros/latex/contrib/utthesis/ICDE-11/stretch.sty
1994/12/27 | 38982 | macros/latex/contrib/utthesis/prairie.tar.gz
-2013/09/26 | 6171 | macros/latex/contrib/ut-thesis/README
+2020/11/23 | 1148 | macros/latex/contrib/ut-thesis/README
1994/12/23 | 254682 | macros/latex/contrib/utthesis/tr94-16.ps
-2014/06/20 | 18863 | macros/latex/contrib/ut-thesis/ut-thesis.cls
1995/01/01 | 7583 | macros/latex/contrib/utthesis/utthesis.doc
+2020/11/23 | 19508 | macros/latex/contrib/ut-thesis/ut-thesis.dtx
+2020/11/23 | 1122 | macros/latex/contrib/ut-thesis/ut-thesis.ins
+2020/11/23 | 116662 | macros/latex/contrib/ut-thesis/ut-thesis.pdf
1995/05/22 | 25294 | macros/latex/contrib/utthesis/utthesis.sty
-2014/06/20 | 8836 | macros/latex/contrib/ut-thesis/ut-thesis.tex
-2015/09/01 | 11470 | macros/latex/contrib/ut-thesis.zip
+2020/11/24 | 122823 | macros/latex/contrib/ut-thesis.zip
2005/04/27 | 638510 | macros/latex/contrib/utthesis.zip
2000/09/27 | 16593 | macros/latex/contrib/uwmslide/logo.eps
2002/10/30 | 7959 | macros/latex/contrib/uwmslide/README
@@ -255507,7 +255511,7 @@
2020/03/29 | 933848 | systems/texlive/tlnet/archive/asymptote.armhf-linux.r54605.tar.xz
2019/02/28 | 526632 | systems/texlive/tlnet/archive/asymptote-by-example-zh-cn.doc.r15878.tar.xz
2019/02/28 | 388 | systems/texlive/tlnet/archive/asymptote-by-example-zh-cn.r15878.tar.xz
-2020/08/08 | 2386940 | systems/texlive/tlnet/archive/asymptote.doc.r56070.tar.xz
+2020/11/24 | 2386940 | systems/texlive/tlnet/archive/asymptote.doc.r56991.tar.xz
2019/02/28 | 373604 | systems/texlive/tlnet/archive/asymptote-faq-zh-cn.doc.r15878.tar.xz
2019/02/28 | 380 | systems/texlive/tlnet/archive/asymptote-faq-zh-cn.r15878.tar.xz
2020/03/27 | 1102848 | systems/texlive/tlnet/archive/asymptote.i386-cygwin.r54577.tar.xz
@@ -255515,7 +255519,7 @@
2020/03/29 | 1419124 | systems/texlive/tlnet/archive/asymptote.i386-solaris.r54599.tar.xz
2019/02/28 | 898452 | systems/texlive/tlnet/archive/asymptote-manual-zh-cn.doc.r15878.tar.xz
2019/02/28 | 400 | systems/texlive/tlnet/archive/asymptote-manual-zh-cn.r15878.tar.xz
-2020/08/08 | 359672 | systems/texlive/tlnet/archive/asymptote.r56070.tar.xz
+2020/11/24 | 359664 | systems/texlive/tlnet/archive/asymptote.r56991.tar.xz
2020/03/26 | 6938700 | systems/texlive/tlnet/archive/asymptote.win32.r54567.tar.xz
2020/03/27 | 1208348 | systems/texlive/tlnet/archive/asymptote.x86_64-cygwin.r54577.tar.xz
2020/03/29 | 1772468 | systems/texlive/tlnet/archive/asymptote.x86_64-darwinlegacy.r54600.tar.xz
@@ -256195,8 +256199,8 @@
2019/02/28 | 1980 | systems/texlive/tlnet/archive/biblatex-source-division.r45379.tar.xz
2019/02/28 | 70196 | systems/texlive/tlnet/archive/biblatex-subseries.doc.r43330.tar.xz
2019/02/28 | 1384 | systems/texlive/tlnet/archive/biblatex-subseries.r43330.tar.xz
-2020/11/08 | 513436 | systems/texlive/tlnet/archive/biblatex-swiss-legal.doc.r56878.tar.xz
-2020/11/08 | 18148 | systems/texlive/tlnet/archive/biblatex-swiss-legal.r56878.tar.xz
+2020/11/24 | 513436 | systems/texlive/tlnet/archive/biblatex-swiss-legal.doc.r56991.tar.xz
+2020/11/24 | 18148 | systems/texlive/tlnet/archive/biblatex-swiss-legal.r56991.tar.xz
2019/02/28 | 333008 | systems/texlive/tlnet/archive/biblatex-trad.doc.r46668.tar.xz
2019/02/28 | 4172 | systems/texlive/tlnet/archive/biblatex-trad.r46668.tar.xz
2019/02/28 | 70876 | systems/texlive/tlnet/archive/biblatex-true-citepages-omit.doc.r44653.tar.xz
@@ -261089,14 +261093,14 @@
2019/02/28 | 340 | systems/texlive/tlnet/archive/latexmk.amd64-freebsd.r16472.tar.xz
2019/02/28 | 340 | systems/texlive/tlnet/archive/latexmk.amd64-netbsd.r30191.tar.xz
2019/02/28 | 340 | systems/texlive/tlnet/archive/latexmk.armhf-linux.r30015.tar.xz
-2020/10/01 | 473740 | systems/texlive/tlnet/archive/latexmk.doc.r56490.tar.xz
+2020/11/24 | 473744 | systems/texlive/tlnet/archive/latexmk.doc.r56991.tar.xz
2019/02/28 | 336 | systems/texlive/tlnet/archive/latexmk.i386-cygwin.r13717.tar.xz
2019/02/28 | 340 | systems/texlive/tlnet/archive/latexmk.i386-freebsd.r16472.tar.xz
2019/02/28 | 340 | systems/texlive/tlnet/archive/latexmk.i386-linux.r10937.tar.xz
2019/02/28 | 336 | systems/texlive/tlnet/archive/latexmk.i386-netbsd.r30191.tar.xz
2019/02/28 | 340 | systems/texlive/tlnet/archive/latexmk.i386-solaris.r10937.tar.xz
-2020/10/01 | 94592 | systems/texlive/tlnet/archive/latexmk.r56490.tar.xz
-2020/10/01 | 856 | systems/texlive/tlnet/archive/latexmk.source.r56490.tar.xz
+2020/11/24 | 94628 | systems/texlive/tlnet/archive/latexmk.r56991.tar.xz
+2020/11/24 | 856 | systems/texlive/tlnet/archive/latexmk.source.r56991.tar.xz
2019/02/28 | 684 | systems/texlive/tlnet/archive/latexmk.win32.r15404.tar.xz
2019/02/28 | 340 | systems/texlive/tlnet/archive/latexmk.x86_64-cygwin.r33557.tar.xz
2019/02/28 | 348 | systems/texlive/tlnet/archive/latexmk.x86_64-darwinlegacy.r43871.tar.xz
@@ -262590,9 +262594,9 @@
2019/02/28 | 357356 | systems/texlive/tlnet/archive/mugsthesis.doc.r34878.tar.xz
2019/02/28 | 2988 | systems/texlive/tlnet/archive/mugsthesis.r34878.tar.xz
2019/02/28 | 7696 | systems/texlive/tlnet/archive/mugsthesis.source.r34878.tar.xz
-2020/11/13 | 390184 | systems/texlive/tlnet/archive/muling.doc.r56920.tar.xz
-2020/11/13 | 2248 | systems/texlive/tlnet/archive/muling.r56920.tar.xz
-2020/11/13 | 3824 | systems/texlive/tlnet/archive/muling.source.r56920.tar.xz
+2020/11/24 | 390184 | systems/texlive/tlnet/archive/muling.doc.r56991.tar.xz
+2020/11/24 | 2252 | systems/texlive/tlnet/archive/muling.r56991.tar.xz
+2020/11/24 | 3824 | systems/texlive/tlnet/archive/muling.source.r56991.tar.xz
2019/02/28 | 107660 | systems/texlive/tlnet/archive/multenum.doc.r21775.tar.xz
2019/02/28 | 1664 | systems/texlive/tlnet/archive/multenum.r21775.tar.xz
2019/02/28 | 488772 | systems/texlive/tlnet/archive/multiaudience.doc.r38035.tar.xz
@@ -262831,9 +262835,9 @@
2019/02/28 | 7064 | systems/texlive/tlnet/archive/niceframe.source.r36086.tar.xz
2019/02/28 | 604 | systems/texlive/tlnet/archive/niceframe-type1.doc.r44671.tar.xz
2019/02/28 | 276328 | systems/texlive/tlnet/archive/niceframe-type1.r44671.tar.xz
-2020/11/10 | 1471860 | systems/texlive/tlnet/archive/nicematrix.doc.r56887.tar.xz
-2020/11/10 | 23376 | systems/texlive/tlnet/archive/nicematrix.r56887.tar.xz
-2020/11/10 | 82888 | systems/texlive/tlnet/archive/nicematrix.source.r56887.tar.xz
+2020/11/24 | 1492284 | systems/texlive/tlnet/archive/nicematrix.doc.r56991.tar.xz
+2020/11/24 | 23952 | systems/texlive/tlnet/archive/nicematrix.r56991.tar.xz
+2020/11/24 | 84096 | systems/texlive/tlnet/archive/nicematrix.source.r56991.tar.xz
2019/02/28 | 2473836 | systems/texlive/tlnet/archive/nicetext.doc.r38914.tar.xz
2019/02/28 | 54740 | systems/texlive/tlnet/archive/nicetext.r38914.tar.xz
2019/02/28 | 28908 | systems/texlive/tlnet/archive/nicetext.source.r38914.tar.xz
@@ -263093,8 +263097,8 @@
2019/02/28 | 2096 | systems/texlive/tlnet/archive/ot-tableau.r44889.tar.xz
2019/02/28 | 60352 | systems/texlive/tlnet/archive/oubraces.doc.r21833.tar.xz
2019/02/28 | 1660 | systems/texlive/tlnet/archive/oubraces.r21833.tar.xz
-2020/11/08 | 511088 | systems/texlive/tlnet/archive/oup-authoring-template.doc.r56878.tar.xz
-2020/11/08 | 15128 | systems/texlive/tlnet/archive/oup-authoring-template.r56878.tar.xz
+2020/11/24 | 511088 | systems/texlive/tlnet/archive/oup-authoring-template.doc.r56991.tar.xz
+2020/11/24 | 15128 | systems/texlive/tlnet/archive/oup-authoring-template.r56991.tar.xz
2020/03/13 | 1596 | systems/texlive/tlnet/archive/outerhbox.r54254.tar.xz
2019/02/28 | 234580 | systems/texlive/tlnet/archive/outline.doc.r18360.tar.xz
2019/02/28 | 1528 | systems/texlive/tlnet/archive/outline.r18360.tar.xz
@@ -263304,13 +263308,13 @@
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
-2019/11/19 | 110184 | systems/texlive/tlnet/archive/pdfjam.doc.r52857.tar.xz
+2020/11/24 | 110188 | systems/texlive/tlnet/archive/pdfjam.doc.r56991.tar.xz
2019/11/19 | 336 | systems/texlive/tlnet/archive/pdfjam.i386-cygwin.r52858.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
-2019/11/19 | 12148 | systems/texlive/tlnet/archive/pdfjam.r52857.tar.xz
+2020/11/24 | 12120 | systems/texlive/tlnet/archive/pdfjam.r56991.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
2019/11/19 | 340 | systems/texlive/tlnet/archive/pdfjam.x86_64-darwin.r52858.tar.xz
@@ -263544,7 +263548,7 @@
2019/11/05 | 519980 | systems/texlive/tlnet/archive/pgf-cmykshadings.doc.r52635.tar.xz
2019/11/05 | 6912 | systems/texlive/tlnet/archive/pgf-cmykshadings.r52635.tar.xz
2019/11/05 | 11020 | systems/texlive/tlnet/archive/pgf-cmykshadings.source.r52635.tar.xz
-2020/10/03 | 10705980 | systems/texlive/tlnet/archive/pgf.doc.r56512.tar.xz
+2020/11/24 | 10711840 | systems/texlive/tlnet/archive/pgf.doc.r56991.tar.xz
2019/11/07 | 929720 | systems/texlive/tlnet/archive/pgfgantt.doc.r52662.tar.xz
2019/11/07 | 7928 | systems/texlive/tlnet/archive/pgfgantt.r52662.tar.xz
2019/11/07 | 37128 | systems/texlive/tlnet/archive/pgfgantt.source.r52662.tar.xz
@@ -263567,10 +263571,10 @@
2020/03/04 | 13006532 | systems/texlive/tlnet/archive/pgfplots.doc.r54080.tar.xz
2020/03/04 | 522388 | systems/texlive/tlnet/archive/pgfplots.r54080.tar.xz
2020/03/04 | 1726108 | systems/texlive/tlnet/archive/pgfplots.source.r54080.tar.xz
-2020/10/03 | 716528 | systems/texlive/tlnet/archive/pgf.r56512.tar.xz
+2020/11/24 | 716816 | systems/texlive/tlnet/archive/pgf.r56991.tar.xz
2019/02/28 | 351348 | systems/texlive/tlnet/archive/pgf-soroban.doc.r32269.tar.xz
2019/02/28 | 1852 | systems/texlive/tlnet/archive/pgf-soroban.r32269.tar.xz
-2020/10/03 | 33484 | systems/texlive/tlnet/archive/pgf.source.r56512.tar.xz
+2020/11/24 | 33484 | systems/texlive/tlnet/archive/pgf.source.r56991.tar.xz
2019/02/28 | 436564 | systems/texlive/tlnet/archive/pgf-spectra.doc.r42986.tar.xz
2019/02/28 | 73344 | systems/texlive/tlnet/archive/pgf-spectra.r42986.tar.xz
2020/05/31 | 268796 | systems/texlive/tlnet/archive/pgf-umlcd.doc.r55342.tar.xz
@@ -265683,13 +265687,13 @@
2020/03/02 | 109508 | systems/texlive/tlnet/archive/tex4ht.amd64-freebsd.r53999.tar.xz
2020/03/02 | 87376 | systems/texlive/tlnet/archive/tex4ht.amd64-netbsd.r53995.tar.xz
2020/03/04 | 72564 | systems/texlive/tlnet/archive/tex4ht.armhf-linux.r54033.tar.xz
-2020/11/22 | 136160 | systems/texlive/tlnet/archive/tex4ht.doc.r56978.tar.xz
+2020/11/24 | 136160 | systems/texlive/tlnet/archive/tex4ht.doc.r56988.tar.xz
2020/06/02 | 51092 | systems/texlive/tlnet/archive/tex4ht.i386-cygwin.r55384.tar.xz
2020/03/02 | 90676 | systems/texlive/tlnet/archive/tex4ht.i386-freebsd.r53999.tar.xz
2020/03/02 | 89232 | systems/texlive/tlnet/archive/tex4ht.i386-linux.r53999.tar.xz
2020/03/06 | 76276 | systems/texlive/tlnet/archive/tex4ht.i386-netbsd.r54104.tar.xz
2020/03/02 | 83968 | systems/texlive/tlnet/archive/tex4ht.i386-solaris.r53999.tar.xz
-2020/11/22 | 897220 | systems/texlive/tlnet/archive/tex4ht.r56978.tar.xz
+2020/11/24 | 897112 | systems/texlive/tlnet/archive/tex4ht.r56988.tar.xz
2020/10/29 | 57840 | systems/texlive/tlnet/archive/tex4ht.win32.r56792.tar.xz
2020/06/02 | 57936 | systems/texlive/tlnet/archive/tex4ht.x86_64-cygwin.r55384.tar.xz
2020/03/02 | 85024 | systems/texlive/tlnet/archive/tex4ht.x86_64-darwinlegacy.r53999.tar.xz
@@ -265924,7 +265928,7 @@
2020/05/17 | 592 | systems/texlive/tlnet/archive/texlive-scripts.amd64-freebsd.r55172.tar.xz
2020/05/17 | 588 | systems/texlive/tlnet/archive/texlive-scripts.amd64-netbsd.r55172.tar.xz
2020/05/17 | 592 | systems/texlive/tlnet/archive/texlive-scripts.armhf-linux.r55172.tar.xz
-2020/11/22 | 218656 | systems/texlive/tlnet/archive/texlive-scripts.doc.r56975.tar.xz
+2020/11/24 | 218656 | systems/texlive/tlnet/archive/texlive-scripts.doc.r56986.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
@@ -265948,7 +265952,7 @@
2020/05/17 | 588 | systems/texlive/tlnet/archive/texlive-scripts.i386-linux.r55172.tar.xz
2020/05/17 | 592 | systems/texlive/tlnet/archive/texlive-scripts.i386-netbsd.r55172.tar.xz
2020/05/17 | 588 | systems/texlive/tlnet/archive/texlive-scripts.i386-solaris.r55172.tar.xz
-2020/11/22 | 131936 | systems/texlive/tlnet/archive/texlive-scripts.r56975.tar.xz
+2020/11/24 | 132064 | systems/texlive/tlnet/archive/texlive-scripts.r56986.tar.xz
2020/08/24 | 36336 | systems/texlive/tlnet/archive/texlive-scripts.win32.r56157.tar.xz
2020/05/17 | 588 | systems/texlive/tlnet/archive/texlive-scripts.x86_64-cygwin.r55172.tar.xz
2020/05/12 | 592 | systems/texlive/tlnet/archive/texlive-scripts.x86_64-darwinlegacy.r55117.tar.xz
@@ -267607,16 +267611,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
2020/11/06 | 105872 | systems/texlive/tlnet/install-tl
-2020/11/23 | 5500537 | systems/texlive/tlnet/install-tl-unx.tar.gz
-2020/11/23 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
-2020/11/23 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
+2020/11/24 | 5500838 | systems/texlive/tlnet/install-tl-unx.tar.gz
+2020/11/24 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
+2020/11/24 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
2020/08/23 | 4889 | systems/texlive/tlnet/install-tl-windows.bat
-2020/11/23 | 19385141 | systems/texlive/tlnet/install-tl-windows.exe
-2020/11/23 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
-2020/11/23 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
-2020/11/23 | 24270016 | systems/texlive/tlnet/install-tl.zip
-2020/11/23 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
-2020/11/23 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc
+2020/11/24 | 19384882 | systems/texlive/tlnet/install-tl-windows.exe
+2020/11/24 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
+2020/11/24 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
+2020/11/24 | 24270154 | systems/texlive/tlnet/install-tl.zip
+2020/11/24 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
+2020/11/24 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc
2020/03/05 | 1215 | systems/texlive/tlnet/README.md
2020/04/06 | 5961 | systems/texlive/tlnet/tlpkg/gpg/pubring.gpg
2016/04/12 | 600 | systems/texlive/tlnet/tlpkg/gpg/random_seed
@@ -267625,7 +267629,7 @@
2020/04/06 | 1280 | systems/texlive/tlnet/tlpkg/gpg/trustdb.gpg
2020/11/22 | 49274 | systems/texlive/tlnet/tlpkg/installer/config.guess
2010/11/11 | 11651 | systems/texlive/tlnet/tlpkg/installer/COPYING.MinGW-runtime.txt
-2020/11/21 | 5759 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
+2020/11/23 | 6595 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
2020/04/15 | 223687 | systems/texlive/tlnet/tlpkg/installer/curl/curl-ca-bundle.crt
2020/04/15 | 2606592 | systems/texlive/tlnet/tlpkg/installer/curl/curl.exe
2018/04/29 | 13647 | systems/texlive/tlnet/tlpkg/installer/DirSelect.pm
@@ -267672,12 +267676,12 @@
2020/05/17 | 20322 | systems/texlive/tlnet/tlpkg/TeXLive/TLCrypto.pm
2020/05/03 | 4786 | systems/texlive/tlnet/tlpkg/TeXLive/TLDownload.pm
2020/09/22 | 27563 | systems/texlive/tlnet/tlpkg/TeXLive/TLPaper.pm
-2020/11/23 | 16647147 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
-2020/11/23 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
+2020/11/24 | 16647086 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
+2020/11/24 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
2020/05/13 | 86417 | systems/texlive/tlnet/tlpkg/TeXLive/TLPDB.pm
-2020/11/23 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
-2020/11/23 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
-2020/11/23 | 2243888 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
+2020/11/24 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
+2020/11/24 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
+2020/11/24 | 2243228 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
2020/04/15 | 58761 | systems/texlive/tlnet/tlpkg/TeXLive/TLPOBJ.pm
2020/03/20 | 41736 | systems/texlive/tlnet/tlpkg/TeXLive/TLPSRC.pm
2020/05/11 | 15010 | systems/texlive/tlnet/tlpkg/TeXLive/TLTREE.pm
@@ -270347,54 +270351,93 @@
2020/10/08 | 7959538 | systems/texlive/tlnet/update-tlmgr-r56587.sh
2020/10/08 | 153 | systems/texlive/tlnet/update-tlmgr-r56587.sh.sha512
2020/10/08 | 455 | systems/texlive/tlnet/update-tlmgr-r56587.sh.sha512.asc
-2019/02/12 | 56295 | systems/unix/tex-fpc/dvipsnk/afm2tfm.c
-2008/08/29 | 1984 | systems/unix/tex-fpc/dvipsnk/dvipsmanfonts
-2009/10/04 | 7438 | systems/unix/tex-fpc/dvipsnk/Makefile
-2008/08/29 | 590 | systems/unix/tex-fpc/dvipsnk/MakeTeXPK
-2019/02/13 | 1232 | systems/unix/tex-fpc/dvipsnk/README
-2019/03/04 | 472 | systems/unix/tex-fpc/lib/webmac-fpc.tex
+2020/11/23 | 215 | systems/unix/tex-fpc/ch.ch/mkchatty
+2020/11/17 | 215 | systems/unix/tex-fpc/ch.ch/mkdebug
+2020/11/17 | 206 | systems/unix/tex-fpc/ch.ch/mkini
+2020/11/17 | 178 | systems/unix/tex-fpc/ch.ch/mkprod
+2020/11/17 | 194 | systems/unix/tex-fpc/ch.ch/mkstats
+2020/11/17 | 288 | systems/unix/tex-fpc/ch.ch/mktrap
+2020/11/17 | 185 | systems/unix/tex-fpc/ch.ch/mktrip
+2020/11/17 | 168 | systems/unix/tex-fpc/ch.ch/mkunchatty
+2020/11/17 | 196 | systems/unix/tex-fpc/ch.ch/mkundebug
+2020/11/17 | 218 | systems/unix/tex-fpc/ch.ch/mkunstats
+2020/11/17 | 272 | systems/unix/tex-fpc/ch.ch/mkuntrap
+2020/11/17 | 135 | systems/unix/tex-fpc/ch.ch/mkuntrip
+2020/11/17 | 707 | systems/unix/tex-fpc/ch.ch/README
+2019/02/12 | 56295 | systems/unix/tex-fpc/dvips/afm2tfm.c
+2008/08/29 | 1984 | systems/unix/tex-fpc/dvips/dvipsmanfonts
+2009/10/04 | 7438 | systems/unix/tex-fpc/dvips/Makefile
+2019/02/13 | 1232 | systems/unix/tex-fpc/dvips/README
+2020/11/06 | 6459 | systems/unix/tex-fpc/dvitype.ch
+2020/10/30 | 1799 | systems/unix/tex-fpc/fpcbugs
+2020/11/06 | 2921 | systems/unix/tex-fpc/gftopk.ch
+2020/11/07 | 3623 | systems/unix/tex-fpc/gftype.ch
+2020/11/05 | 4538 | systems/unix/tex-fpc/history
2019/02/22 | 1078 | systems/unix/tex-fpc/license
-2019/02/22 | 16592 | systems/unix/tex-fpc/mf/mf.ch
-2016/07/20 | 31 | systems/unix/tex-fpc/MFT/iby/agr.tex
-2016/07/20 | 627 | systems/unix/tex-fpc/MFT/iby/getiby
-2016/07/20 | 256 | systems/unix/tex-fpc/MFT/iby/getlevy
+2016/07/20 | 1146 | systems/unix/tex-fpc/local.mf
+2020/11/23 | 21665 | systems/unix/tex-fpc/mf.ch
+2020/11/23 | 30 | systems/unix/tex-fpc/MFT/iby/agr.tex
+2020/11/23 | 662 | systems/unix/tex-fpc/MFT/iby/getiby
+2020/11/23 | 269 | systems/unix/tex-fpc/MFT/iby/getlevy
2016/07/20 | 263 | systems/unix/tex-fpc/MFT/iby/ibyfonts
-2016/07/20 | 214 | systems/unix/tex-fpc/MFT/iby/ibymacros
-2016/07/20 | 2585 | systems/unix/tex-fpc/MFT/iby/README
-2016/07/20 | 532 | systems/unix/tex-fpc/MFT/iby/sappho.tex
+2020/11/23 | 214 | systems/unix/tex-fpc/MFT/iby/ibymacros
+2020/11/23 | 3137 | systems/unix/tex-fpc/MFT/iby/README
+2020/11/23 | 531 | systems/unix/tex-fpc/MFT/iby/sappho.tex
2016/07/20 | 2740 | systems/unix/tex-fpc/MFT/iby/test.tex
-2016/07/20 | 1146 | systems/unix/tex-fpc/MFT/local.mf
-2016/07/20 | 247 | systems/unix/tex-fpc/MFT/manfonts
+2020/09/28 | 49 | systems/unix/tex-fpc/MFT/logmacfonts
+2020/11/03 | 274 | systems/unix/tex-fpc/MFT/manfonts
2016/07/20 | 100 | systems/unix/tex-fpc/MFT/mfwebfonts
2016/07/20 | 1200 | systems/unix/tex-fpc/MFT/plainfonts
-2016/07/20 | 68 | systems/unix/tex-fpc/MFT/texwebfonts
2016/07/20 | 55 | systems/unix/tex-fpc/MFT/tripmanfonts
2016/07/20 | 42 | systems/unix/tex-fpc/MFT/webfonts
-2016/07/31 | 2397 | systems/unix/tex-fpc/mfware/gftopk.ch
-2019/03/04 | 11428 | systems/unix/tex-fpc/README
-2019/02/12 | 218 | systems/unix/tex-fpc/shell/itgl
-2008/08/26 | 423 | systems/unix/tex-fpc/shell/mkfont
+2020/10/27 | 4511 | systems/unix/tex-fpc/mp/dvitomp.ch
+2020/10/28 | 234 | systems/unix/tex-fpc/mp/fig.mp
+2020/10/29 | 33 | systems/unix/tex-fpc/mp/fig.tex
+2008/08/24 | 35 | systems/unix/tex-fpc/mp/mk_MP_dir
+2020/10/29 | 19078 | systems/unix/tex-fpc/mp/mp.ch
+2020/10/29 | 221 | systems/unix/tex-fpc/mp/mpx
+2020/10/29 | 6007 | systems/unix/tex-fpc/mp/readme
+2020/11/07 | 1678 | systems/unix/tex-fpc/pltotf.ch
+2020/11/24 | 13674 | systems/unix/tex-fpc/README
+2020/11/21 | 304 | systems/unix/tex-fpc/shell/itgl
+2020/09/09 | 590 | systems/unix/tex-fpc/shell/MakeTeXPK
+2020/11/23 | 392 | systems/unix/tex-fpc/shell/mkfont
2008/08/26 | 106 | systems/unix/tex-fpc/shell/mk_MF_dir
-2008/09/02 | 579 | systems/unix/tex-fpc/shell/mkpkfont
+2020/09/28 | 609 | systems/unix/tex-fpc/shell/mkpkfont
2008/09/03 | 157 | systems/unix/tex-fpc/shell/mk_TeX_dir
-2019/02/12 | 213 | systems/unix/tex-fpc/shell/tgl
+2020/11/20 | 307 | systems/unix/tex-fpc/shell/tgl
2009/10/18 | 192 | systems/unix/tex-fpc/shell/wve
-2017/03/05 | 52 | systems/unix/tex-fpc/tech/german.ed
-2019/02/22 | 698 | systems/unix/tex-fpc/tech/mktech
-2019/02/22 | 1061 | systems/unix/tex-fpc/tech/readme
-2017/03/05 | 472 | systems/unix/tex-fpc/tech/schlicht.tex
-2017/03/05 | 3362 | systems/unix/tex-fpc/tech/test.tex
-2019/03/04 | 571938 | systems/unix/tex-fpc/tex-fpc.pdf
-2016/07/31 | 32004 | systems/unix/tex-fpc/tex/otex.ch
-2019/03/03 | 31050 | systems/unix/tex-fpc/tex/tex.ch
-2017/03/28 | 4301 | systems/unix/tex-fpc/web/tangle.ch
-2019/02/22 | 45524 | systems/unix/tex-fpc/web/tangle.p
-2019/02/22 | 4474 | systems/unix/tex-fpc/web/weave.ch
-2019/02/21 | 604 | systems/unix/tex-fpc/xdvi/config
-2009/11/29 | 134226 | systems/unix/tex-fpc/xdvi/macconfigure
+2020/11/06 | 4787 | systems/unix/tex-fpc/tangle.ch
+2020/11/06 | 44980 | systems/unix/tex-fpc/tangle.p
+2020/10/24 | 476 | systems/unix/tex-fpc/tech/gauss.tex
+2020/10/24 | 67 | systems/unix/tex-fpc/tech/german.ed
+2020/11/23 | 727 | systems/unix/tex-fpc/tech/mktech
+2020/10/24 | 1072 | systems/unix/tex-fpc/tech/readme
+2020/10/24 | 3364 | systems/unix/tex-fpc/tech/test.tex
+2020/11/23 | 41257 | systems/unix/tex-fpc/tex.ch
+2020/11/22 | 610582 | systems/unix/tex-fpc/tex-fpc.pdf
+2020/11/07 | 1893 | systems/unix/tex-fpc/tftopl.ch
+2020/10/19 | 202 | systems/unix/tex-fpc/trap/diff_trap.fot
+2020/10/20 | 405 | systems/unix/tex-fpc/trap/diff_trapin.log
+2020/10/20 | 3773 | systems/unix/tex-fpc/trap/diff_trap.log
+2020/11/17 | 0 | systems/unix/tex-fpc/trap/diff_trap.pl
+2020/10/19 | 150 | systems/unix/tex-fpc/trap/diff_trap.typ
+2020/11/17 | 1676 | systems/unix/tex-fpc/trap/report
+2020/11/14 | 87 | systems/unix/tex-fpc/trip/diff_trip.fot
+2020/11/14 | 358 | systems/unix/tex-fpc/trip/diff_tripin.log
+2020/11/14 | 324 | systems/unix/tex-fpc/trip/diff_trip.log
+2020/11/16 | 1266 | systems/unix/tex-fpc/trip/diff_trip.log300
+2020/11/14 | 142 | systems/unix/tex-fpc/trip/diff_trip.typ
+2020/11/17 | 2186 | systems/unix/tex-fpc/trip/report
+2020/11/06 | 4984 | systems/unix/tex-fpc/weave.ch
+2020/11/06 | 492 | systems/unix/tex-fpc/webmac-fpc.tex
+2020/09/09 | 410 | systems/unix/tex-fpc/xdvi/config
+2020/10/06 | 271 | systems/unix/tex-fpc/xdvi/configdiff
+2020/09/08 | 138958 | systems/unix/tex-fpc/xdvi/macconfigure
2009/11/29 | 36493 | systems/unix/tex-fpc/xdvi/macxdvi.h
-2016/08/06 | 1056 | systems/unix/tex-fpc/xdvi/README
-2019/03/04 | 569991 | systems/unix/tex-fpc.zip
+2020/11/06 | 1513 | systems/unix/tex-fpc/xdvi/README
+2020/09/08 | 359 | systems/unix/tex-fpc/xdvi/Xdvi
+2020/11/24 | 628762 | systems/unix/tex-fpc.zip
2008/08/29 | 1984 | systems/unix/tex-gpc/dvipsnk/dvipsmanfonts
2009/10/04 | 7438 | systems/unix/tex-gpc/dvipsnk/Makefile
2008/08/29 | 590 | systems/unix/tex-gpc/dvipsnk/MakeTeXPK
@@ -270942,15 +270985,15 @@
2009/04/21 | 35717 | systems/win32/miktex/tm/packages/accfonts.tar.lzma
2019/12/06 | 338331 | systems/win32/miktex/tm/packages/accsupp.tar.lzma
2020/07/27 | 918091 | systems/win32/miktex/tm/packages/achemso.tar.lzma
-2020/10/27 | 3651346 | systems/win32/miktex/tm/packages/acmart.tar.lzma
+2020/11/24 | 3627781 | systems/win32/miktex/tm/packages/acmart.tar.lzma
2016/07/19 | 105378 | systems/win32/miktex/tm/packages/acmconf.tar.lzma
2016/08/30 | 774465 | systems/win32/miktex/tm/packages/acroflex.tar.lzma
2020/06/28 | 815002 | systems/win32/miktex/tm/packages/acromemory.tar.lzma
2020/04/15 | 301327 | systems/win32/miktex/tm/packages/acronym.tar.lzma
2020/06/22 | 2271156 | systems/win32/miktex/tm/packages/acrosort.tar.lzma
-2020/11/09 | 1246977 | systems/win32/miktex/tm/packages/acro.tar.lzma
+2020/11/24 | 1263805 | systems/win32/miktex/tm/packages/acro.tar.lzma
2010/11/24 | 163309 | systems/win32/miktex/tm/packages/acroterm.tar.lzma
-2020/04/15 | 3186383 | systems/win32/miktex/tm/packages/acrotex.tar.lzma
+2020/11/24 | 3080848 | systems/win32/miktex/tm/packages/acrotex.tar.lzma
2008/05/23 | 333795 | systems/win32/miktex/tm/packages/active-conf.tar.lzma
2019/06/19 | 130643 | systems/win32/miktex/tm/packages/actuarialangle.tar.lzma
2019/06/14 | 301579 | systems/win32/miktex/tm/packages/actuarialsymbol.tar.lzma
@@ -271038,7 +271081,7 @@
2017/12/18 | 1184867 | systems/win32/miktex/tm/packages/aomart.tar.lzma
2011/07/04 | 257190 | systems/win32/miktex/tm/packages/apa6e.tar.lzma
2020/01/14 | 613370 | systems/win32/miktex/tm/packages/apa6.tar.lzma
-2020/10/12 | 778233 | systems/win32/miktex/tm/packages/apa7.tar.lzma
+2020/11/24 | 778706 | systems/win32/miktex/tm/packages/apa7.tar.lzma
2013/07/29 | 845001 | systems/win32/miktex/tm/packages/apacite.tar.lzma
2016/11/02 | 6569 | systems/win32/miktex/tm/packages/apalike2.tar.lzma
2018/03/18 | 18866 | systems/win32/miktex/tm/packages/apalike-german.tar.lzma
@@ -271067,7 +271110,7 @@
2019/01/26 | 248212 | systems/win32/miktex/tm/packages/armymemo.tar.lzma
2007/12/14 | 27494663 | systems/win32/miktex/tm/packages/arphic.tar.lzma
2016/12/15 | 12680596 | systems/win32/miktex/tm/packages/arphic-ttf.tar.lzma
-2019/07/05 | 467630 | systems/win32/miktex/tm/packages/arraycols.tar.lzma
+2020/11/24 | 468480 | systems/win32/miktex/tm/packages/arraycols.tar.lzma
2010/05/10 | 438558 | systems/win32/miktex/tm/packages/arrayjob.tar.lzma
2013/09/09 | 315901 | systems/win32/miktex/tm/packages/arraysort.tar.lzma
2017/11/01 | 429870 | systems/win32/miktex/tm/packages/arsclassica.tar.lzma
@@ -271084,7 +271127,7 @@
2020/01/16 | 186434 | systems/win32/miktex/tm/packages/ascmac.tar.lzma
2020/04/15 | 609335 | systems/win32/miktex/tm/packages/askinclude.tar.lzma
2020/10/27 | 388800 | systems/win32/miktex/tm/packages/askmaps.tar.lzma
-2020/08/17 | 602780 | systems/win32/miktex/tm/packages/asmeconf.tar.lzma
+2020/11/24 | 636001 | systems/win32/miktex/tm/packages/asmeconf.tar.lzma
2020/04/15 | 493538 | systems/win32/miktex/tm/packages/asmejour.tar.lzma
2012/02/01 | 405602 | systems/win32/miktex/tm/packages/aspectratio.tar.lzma
2004/11/11 | 12360 | systems/win32/miktex/tm/packages/assignment.cab
@@ -271095,7 +271138,7 @@
2020/04/04 | 2990857 | systems/win32/miktex/tm/packages/asymptote.tar.lzma
2014/04/23 | 648197 | systems/win32/miktex/tm/packages/asypictureb.tar.lzma
2019/12/06 | 418256 | systems/win32/miktex/tm/packages/atbegshi.tar.lzma
-2019/12/13 | 280614 | systems/win32/miktex/tm/packages/atenddvi.tar.lzma
+2020/11/24 | 287634 | systems/win32/miktex/tm/packages/atenddvi.tar.lzma
2019/11/27 | 467227 | systems/win32/miktex/tm/packages/attachfile2.tar.lzma
2016/09/20 | 371943 | systems/win32/miktex/tm/packages/attachfile.tar.lzma
2019/12/13 | 389295 | systems/win32/miktex/tm/packages/atveryend.tar.lzma
@@ -271108,7 +271151,7 @@
2019/06/24 | 1217471 | systems/win32/miktex/tm/packages/authorarchive.tar.lzma
2006/06/03 | 10037 | systems/win32/miktex/tm/packages/authordate.cab
2019/07/28 | 75259 | systems/win32/miktex/tm/packages/authorindex.tar.lzma
-2018/11/11 | 368211 | systems/win32/miktex/tm/packages/autoaligne.tar.lzma
+2020/11/24 | 368741 | systems/win32/miktex/tm/packages/autoaligne.tar.lzma
2017/03/07 | 559812 | systems/win32/miktex/tm/packages/autobreak.tar.lzma
2020/03/03 | 7593 | systems/win32/miktex/tm/packages/autofancyhdr.tar.lzma
2007/07/06 | 55856 | systems/win32/miktex/tm/packages/automata.tar.lzma
@@ -271146,7 +271189,7 @@
2014/05/21 | 476730 | systems/win32/miktex/tm/packages/babel-galician.tar.lzma
2018/03/10 | 5358 | systems/win32/miktex/tm/packages/babel-georgian.tar.lzma
2020/08/09 | 518653 | systems/win32/miktex/tm/packages/babel-german.tar.lzma
-2020/03/25 | 1054462 | systems/win32/miktex/tm/packages/babel-greek.tar.lzma
+2020/11/24 | 1216544 | systems/win32/miktex/tm/packages/babel-greek.tar.lzma
2014/05/21 | 778403 | systems/win32/miktex/tm/packages/babel-hebrew.tar.lzma
2019/01/19 | 55546 | systems/win32/miktex/tm/packages/babel-hungarian.tar.lzma
2019/07/05 | 244811 | systems/win32/miktex/tm/packages/babel-icelandic.tar.lzma
@@ -271186,7 +271229,7 @@
2011/08/28 | 86066 | systems/win32/miktex/tm/packages/babyloniannum.tar.lzma
2014/03/07 | 126310 | systems/win32/miktex/tm/packages/background.tar.lzma
2019/07/05 | 253143 | systems/win32/miktex/tm/packages/backnaur.tar.lzma
-2016/09/20 | 8722197 | systems/win32/miktex/tm/packages/baekmuk.tar.lzma
+2020/11/24 | 8639499 | systems/win32/miktex/tm/packages/baekmuk.tar.lzma
2014/06/06 | 213334 | systems/win32/miktex/tm/packages/bagpipe.tar.lzma
2018/10/08 | 389222 | systems/win32/miktex/tm/packages/bangorcsthesis.tar.lzma
2018/02/14 | 282226 | systems/win32/miktex/tm/packages/bangorexam.tar.lzma
@@ -271227,7 +271270,7 @@
2016/10/04 | 457031 | systems/win32/miktex/tm/packages/beamertheme-cuerna.tar.lzma
2015/12/08 | 1525974 | systems/win32/miktex/tm/packages/beamertheme-detlevcm.tar.lzma
2016/05/31 | 168629 | systems/win32/miktex/tm/packages/beamertheme-epyt.tar.lzma
-2020/10/31 | 503461 | systems/win32/miktex/tm/packages/beamertheme-focus.tar.lzma
+2020/11/24 | 503617 | systems/win32/miktex/tm/packages/beamertheme-focus.tar.lzma
2007/02/22 | 1899 | systems/win32/miktex/tm/packages/beamerthemejltree.tar.lzma
2019/01/30 | 100626 | systems/win32/miktex/tm/packages/beamertheme-light.tar.lzma
2017/01/25 | 203560 | systems/win32/miktex/tm/packages/beamertheme-metropolis.tar.lzma
@@ -271235,7 +271278,7 @@
2020/08/30 | 2241882 | systems/win32/miktex/tm/packages/beamerthemenord.tar.lzma
2018/08/20 | 1880627 | systems/win32/miktex/tm/packages/beamertheme-npbt.tar.lzma
2013/08/19 | 58538 | systems/win32/miktex/tm/packages/beamertheme-phnompenh.tar.lzma
-2020/06/02 | 366202 | systems/win32/miktex/tm/packages/beamertheme-pure-minimalistic.tar.lzma
+2020/11/24 | 369342 | systems/win32/miktex/tm/packages/beamertheme-pure-minimalistic.tar.lzma
2017/11/22 | 252886 | systems/win32/miktex/tm/packages/beamertheme-saintpetersburg.tar.lzma
2017/07/19 | 181415 | systems/win32/miktex/tm/packages/beamerthemetamu.tar.lzma
2013/04/15 | 341764 | systems/win32/miktex/tm/packages/beamertheme-upenn-bc.tar.lzma
@@ -271292,7 +271335,7 @@
2020/08/30 | 634145 | systems/win32/miktex/tm/packages/biblatex-ext.tar.lzma
2017/11/22 | 616165 | systems/win32/miktex/tm/packages/biblatex-fiwi.tar.lzma
2020/07/27 | 1653163 | systems/win32/miktex/tm/packages/biblatex-gb7714-2015.tar.lzma
-2020/03/18 | 172223 | systems/win32/miktex/tm/packages/biblatex-german-legal.tar.lzma
+2020/11/24 | 173898 | systems/win32/miktex/tm/packages/biblatex-german-legal.tar.lzma
2020/10/31 | 1021434 | systems/win32/miktex/tm/packages/biblatex-gost.tar.lzma
2010/08/24 | 601778 | systems/win32/miktex/tm/packages/biblatex-historian.tar.lzma
2020/09/06 | 563035 | systems/win32/miktex/tm/packages/biblatex-ieee.tar.lzma
@@ -271382,7 +271425,7 @@
2007/07/04 | 6056 | systems/win32/miktex/tm/packages/boldtensors.tar.lzma
2015/04/21 | 377162 | systems/win32/miktex/tm/packages/bondgraphs.tar.lzma
2011/03/10 | 50929 | systems/win32/miktex/tm/packages/bondgraph.tar.lzma
-2018/01/22 | 1836817 | systems/win32/miktex/tm/packages/bookcover.tar.lzma
+2020/11/24 | 1759247 | systems/win32/miktex/tm/packages/bookcover.tar.lzma
2008/03/21 | 213952 | systems/win32/miktex/tm/packages/bookest.tar.lzma
2009/09/11 | 233644 | systems/win32/miktex/tm/packages/booklet.tar.lzma
2006/09/28 | 329086 | systems/win32/miktex/tm/packages/bookman.cab
@@ -271527,7 +271570,7 @@
2020/03/09 | 899723 | systems/win32/miktex/tm/packages/chemformula.tar.lzma
2020/01/17 | 727656 | systems/win32/miktex/tm/packages/chemgreek.tar.lzma
2005/06/22 | 5537 | systems/win32/miktex/tm/packages/chem-journal.cab
-2020/03/09 | 1071647 | systems/win32/miktex/tm/packages/chemmacros.tar.lzma
+2020/11/24 | 1075427 | systems/win32/miktex/tm/packages/chemmacros.tar.lzma
2019/10/04 | 806803 | systems/win32/miktex/tm/packages/chemnum.tar.lzma
2019/11/20 | 886963 | systems/win32/miktex/tm/packages/chemplants.tar.lzma
2018/02/26 | 312601 | systems/win32/miktex/tm/packages/chemschemex.tar.lzma
@@ -271766,6 +271809,7 @@
2020/02/13 | 906563 | systems/win32/miktex/tm/packages/dashundergaps.tar.lzma
2015/09/22 | 267580 | systems/win32/miktex/tm/packages/dataref.tar.lzma
2019/09/29 | 2844543 | systems/win32/miktex/tm/packages/datatool.tar.lzma
+2020/11/24 | 183044 | systems/win32/miktex/tm/packages/datax.tar.lzma
2012/10/17 | 260631 | systems/win32/miktex/tm/packages/dateiliste.tar.lzma
2006/11/14 | 111476 | systems/win32/miktex/tm/packages/datenumber.cab
2018/07/05 | 840667 | systems/win32/miktex/tm/packages/datepicker-pro.tar.lzma
@@ -272133,7 +272177,7 @@
2019/09/24 | 184569 | systems/win32/miktex/tm/packages/extract.tar.lzma
2007/06/22 | 13402 | systems/win32/miktex/tm/packages/extsizes.tar.lzma
2016/07/29 | 43464 | systems/win32/miktex/tm/packages/facsimile.tar.lzma
-2020/04/20 | 806163 | systems/win32/miktex/tm/packages/factura.tar.lzma
+2020/11/24 | 874063 | systems/win32/miktex/tm/packages/factura.tar.lzma
2018/11/02 | 277034 | systems/win32/miktex/tm/packages/facture-belge-simple-sans-tva.tar.lzma
2017/04/17 | 185826 | systems/win32/miktex/tm/packages/facture.tar.lzma
2013/04/08 | 2001 | systems/win32/miktex/tm/packages/fahyph.tar.lzma
@@ -272190,7 +272234,7 @@
2020/10/03 | 318630 | systems/win32/miktex/tm/packages/filehook.tar.lzma
2012/12/04 | 924573 | systems/win32/miktex/tm/packages/fileinfo.tar.lzma
2011/09/21 | 281409 | systems/win32/miktex/tm/packages/filemod.tar.lzma
-2020/11/23 | 550962 | systems/win32/miktex/tm/packages/files.csv.lzma
+2020/11/24 | 548423 | systems/win32/miktex/tm/packages/files.csv.lzma
2001/05/14 | 5617 | systems/win32/miktex/tm/packages/finbib.tar.lzma
2015/10/20 | 44379 | systems/win32/miktex/tm/packages/findhyph.tar.lzma
2011/10/21 | 89323 | systems/win32/miktex/tm/packages/fink.tar.lzma
@@ -272199,6 +272243,7 @@
2020/01/14 | 621258 | systems/win32/miktex/tm/packages/firamath.tar.lzma
2020/06/09 | 16772933 | systems/win32/miktex/tm/packages/fira.tar.lzma
2009/07/13 | 504177 | systems/win32/miktex/tm/packages/first-latex-doc.tar.lzma
+2020/11/24 | 148406 | systems/win32/miktex/tm/packages/first-packages.tar.lzma
2019/02/23 | 504679 | systems/win32/miktex/tm/packages/fitbox.tar.lzma
2020/03/23 | 3083723 | systems/win32/miktex/tm/packages/fithesis.tar.lzma
2020/07/19 | 1202960 | systems/win32/miktex/tm/packages/fitr.tar.lzma
@@ -272438,7 +272483,7 @@
2020/10/03 | 2069382 | systems/win32/miktex/tm/packages/graphics.tar.lzma
2014/01/14 | 985128 | systems/win32/miktex/tm/packages/graphicxbox.tar.lzma
2018/01/30 | 410183 | systems/win32/miktex/tm/packages/graphicxpsd.tar.lzma
-2005/09/27 | 101378 | systems/win32/miktex/tm/packages/graphicx-psmin.cab
+2020/11/24 | 89188 | systems/win32/miktex/tm/packages/graphicx-psmin.tar.lzma
2019/12/03 | 765941 | systems/win32/miktex/tm/packages/graphicxsp.tar.lzma
2020/10/27 | 429020 | systems/win32/miktex/tm/packages/graphpaper.tar.lzma
2013/08/27 | 96591 | systems/win32/miktex/tm/packages/graphviz.tar.lzma
@@ -272560,7 +272605,7 @@
2020/01/03 | 188886 | systems/win32/miktex/tm/packages/hypernat.tar.lzma
2020/05/17 | 3855824 | systems/win32/miktex/tm/packages/hyperref.tar.lzma
2016/07/16 | 326320 | systems/win32/miktex/tm/packages/hyper.tar.lzma
-2020/11/03 | 1308495 | systems/win32/miktex/tm/packages/hyperxmp.tar.lzma
+2020/11/24 | 1317531 | systems/win32/miktex/tm/packages/hyperxmp.tar.lzma
2009/09/03 | 163943 | systems/win32/miktex/tm/packages/hyphenat.tar.lzma
2020/03/30 | 1797358 | systems/win32/miktex/tm/packages/hyph-utf8.tar.lzma
2020/07/19 | 1323235 | systems/win32/miktex/tm/packages/ibarra.tar.lzma
@@ -272660,7 +272705,7 @@
2019/04/09 | 1142268 | systems/win32/miktex/tm/packages/jacow.tar.lzma
2013/02/05 | 103187 | systems/win32/miktex/tm/packages/jadetex.tar.lzma
2010/11/13 | 894044 | systems/win32/miktex/tm/packages/jamtimes.tar.lzma
-2019/04/03 | 275456 | systems/win32/miktex/tm/packages/japanese-otf.tar.lzma
+2020/11/24 | 258850 | systems/win32/miktex/tm/packages/japanese-otf.tar.lzma
2016/07/20 | 37923 | systems/win32/miktex/tm/packages/jasthesis.tar.lzma
2010/04/13 | 1265307 | systems/win32/miktex/tm/packages/jeopardy.tar.lzma
2020/05/07 | 34168 | systems/win32/miktex/tm/packages/jfmutil.tar.lzma
@@ -272729,7 +272774,7 @@
2015/10/14 | 10343 | systems/win32/miktex/tm/packages/kotex-plain.tar.lzma
2015/10/10 | 7697628 | systems/win32/miktex/tm/packages/kotex-utf.tar.lzma
2016/01/09 | 73703 | systems/win32/miktex/tm/packages/kotex-utils.tar.lzma
-2020/06/22 | 3057962 | systems/win32/miktex/tm/packages/kpfonts-otf.tar.lzma
+2020/11/24 | 3088929 | systems/win32/miktex/tm/packages/kpfonts-otf.tar.lzma
2018/08/24 | 4191595 | systems/win32/miktex/tm/packages/kpfonts.tar.lzma
2011/12/19 | 4197 | systems/win32/miktex/tm/packages/ksfh-nat.tar.lzma
2015/12/15 | 150177 | systems/win32/miktex/tm/packages/ksp-thesis.tar.lzma
@@ -272758,7 +272803,7 @@
2017/12/12 | 201146 | systems/win32/miktex/tm/packages/labelschanged.tar.lzma
2007/07/07 | 43413 | systems/win32/miktex/tm/packages/labels.tar.lzma
2014/04/23 | 232763 | systems/win32/miktex/tm/packages/labyrinth.tar.lzma
-2020/04/23 | 92575 | systems/win32/miktex/tm/packages/lacheck.tar.lzma
+2020/11/24 | 92565 | systems/win32/miktex/tm/packages/lacheck.tar.lzma
2017/05/19 | 216437 | systems/win32/miktex/tm/packages/ladder.tar.lzma
2013/08/27 | 131410 | systems/win32/miktex/tm/packages/lambda-lists.tar.lzma
2003/12/17 | 8847 | systems/win32/miktex/tm/packages/lamstex.cab
@@ -272922,6 +272967,7 @@
2011/06/23 | 2146475 | systems/win32/miktex/tm/packages/lshort-french.tar.lzma
2018/04/09 | 957376 | systems/win32/miktex/tm/packages/lshort-german.tar.lzma
2004/07/28 | 167825 | systems/win32/miktex/tm/packages/lshort-italian.cab
+2020/11/24 | 3650415 | systems/win32/miktex/tm/packages/lshort-italian.tar.lzma
2004/07/28 | 179610 | systems/win32/miktex/tm/packages/lshort-japanese.cab
2004/07/28 | 791444 | systems/win32/miktex/tm/packages/lshort-korean.cab
2019/05/08 | 1264967 | systems/win32/miktex/tm/packages/lshort-korean.tar.lzma
@@ -273264,7 +273310,7 @@
2016/11/04 | 687 | systems/win32/miktex/tm/packages/miktex-metapost.tar.lzma
2020/10/31 | 96276 | systems/win32/miktex/tm/packages/miktex-mfware-bin-2.9.tar.lzma
2020/10/31 | 101433 | systems/win32/miktex/tm/packages/miktex-mfware-bin-x64-2.9.tar.lzma
-2020/10/10 | 22719 | systems/win32/miktex/tm/packages/miktex-misc.tar.lzma
+2020/11/24 | 22617 | systems/win32/miktex/tm/packages/miktex-misc.tar.lzma
2020/10/31 | 58569 | systems/win32/miktex/tm/packages/miktex-mkfntmap-bin-2.9.tar.lzma
2020/10/31 | 65987 | systems/win32/miktex/tm/packages/miktex-mkfntmap-bin-x64-2.9.tar.lzma
2020/10/31 | 118974 | systems/win32/miktex/tm/packages/miktex-mktex-bin-2.9.tar.lzma
@@ -273366,9 +273412,9 @@
2018/01/12 | 157226 | systems/win32/miktex/tm/packages/miktex-zip-bin-x64.tar.lzma
2020/10/31 | 39333 | systems/win32/miktex/tm/packages/miktex-zlib-bin-2.9.tar.lzma
2020/10/31 | 43032 | systems/win32/miktex/tm/packages/miktex-zlib-bin-x64-2.9.tar.lzma
-2020/11/23 | 204575 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma
-2020/11/23 | 1227486 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma
-2020/11/23 | 1146535 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma
+2020/11/24 | 204855 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma
+2020/11/24 | 1228249 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma
+2020/11/24 | 1145461 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma
2020/10/31 | 13300 | systems/win32/miktex/tm/packages/miktex-zzip-bin-2.9.tar.lzma
2020/10/31 | 14127 | systems/win32/miktex/tm/packages/miktex-zzip-bin-x64-2.9.tar.lzma
2016/07/15 | 35914 | systems/win32/miktex/tm/packages/mil3.tar.lzma
@@ -273385,7 +273431,7 @@
2017/07/20 | 860357 | systems/win32/miktex/tm/packages/minted.tar.lzma
2013/11/08 | 1416897 | systems/win32/miktex/tm/packages/mintspirit.tar.lzma
2016/10/07 | 425802 | systems/win32/miktex/tm/packages/minutes.tar.lzma
-2019/12/31 | 549513 | systems/win32/miktex/tm/packages/mismath.tar.lzma
+2020/11/24 | 550611 | systems/win32/miktex/tm/packages/mismath.tar.lzma
2019/01/11 | 468007 | systems/win32/miktex/tm/packages/mi-solns.tar.lzma
2016/12/30 | 8025617 | systems/win32/miktex/tm/packages/missaali.tar.lzma
2011/11/11 | 98167 | systems/win32/miktex/tm/packages/mkjobtexmf.tar.lzma
@@ -273398,6 +273444,7 @@
2009/07/13 | 205462 | systems/win32/miktex/tm/packages/mlist.tar.lzma
2020/06/22 | 103445 | systems/win32/miktex/tm/packages/mlmath.tar.lzma
2001/05/14 | 14248 | systems/win32/miktex/tm/packages/mltex.tar.lzma
+2020/11/24 | 474181 | systems/win32/miktex/tm/packages/mluexercise.tar.lzma
2008/08/28 | 19372 | systems/win32/miktex/tm/packages/mmap.tar.lzma
2014/11/20 | 219578 | systems/win32/miktex/tm/packages/mnotes.tar.lzma
2020/07/03 | 356853 | systems/win32/miktex/tm/packages/mnras.tar.lzma
@@ -273447,6 +273494,7 @@
2019/01/26 | 727361 | systems/win32/miktex/tm/packages/m-tx.tar.lzma
2017/03/10 | 350881 | systems/win32/miktex/tm/packages/mucproc.tar.lzma
2014/08/19 | 367905 | systems/win32/miktex/tm/packages/mugsthesis.tar.lzma
+2020/11/24 | 397638 | systems/win32/miktex/tm/packages/muling.tar.lzma
2016/07/16 | 109661 | systems/win32/miktex/tm/packages/multenum.tar.lzma
2015/08/04 | 495678 | systems/win32/miktex/tm/packages/multiaudience.tar.lzma
2011/07/16 | 92142 | systems/win32/miktex/tm/packages/multibbl.tar.lzma
@@ -273485,7 +273533,7 @@
2018/06/19 | 439567 | systems/win32/miktex/tm/packages/na-border.tar.lzma
2017/08/27 | 981496 | systems/win32/miktex/tm/packages/na-box.tar.lzma
2011/12/07 | 464357 | systems/win32/miktex/tm/packages/nag.tar.lzma
-2020/02/28 | 1132795 | systems/win32/miktex/tm/packages/nameauth.tar.lzma
+2020/11/24 | 1240780 | systems/win32/miktex/tm/packages/nameauth.tar.lzma
2020/06/22 | 652892 | systems/win32/miktex/tm/packages/namedef.tar.lzma
2005/06/25 | 8785 | systems/win32/miktex/tm/packages/namespc.cab
2020/09/06 | 579350 | systems/win32/miktex/tm/packages/nanicolle.tar.lzma
@@ -273518,198 +273566,198 @@
2005/06/25 | 43902 | systems/win32/miktex/tm/packages/newsletr.cab
2007/12/30 | 204631 | systems/win32/miktex/tm/packages/newspaper.tar.lzma
2020/10/04 | 440940 | systems/win32/miktex/tm/packages/newtxsf.tar.lzma
-2020/11/05 | 6511530 | systems/win32/miktex/tm/packages/newtx.tar.lzma
+2020/11/24 | 6514300 | systems/win32/miktex/tm/packages/newtx.tar.lzma
2020/02/17 | 288246 | systems/win32/miktex/tm/packages/newtxtt.tar.lzma
2018/04/09 | 400132 | systems/win32/miktex/tm/packages/newunicodechar.tar.lzma
2011/09/19 | 101312 | systems/win32/miktex/tm/packages/newvbtm.tar.lzma
2020/09/06 | 231669 | systems/win32/miktex/tm/packages/newverbs.tar.lzma
-2020/11/23 | 550966 | systems/win32/miktex/tm/packages/next/files.csv.lzma
-2020/11/23 | 50436 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-2.9.tar.lzma
-2020/11/23 | 55968 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma
-2020/11/23 | 965655 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-2.9.tar.lzma
-2020/11/23 | 1076055 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma
-2020/11/23 | 28606 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-2.9.tar.lzma
-2020/11/23 | 30933 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma
-2020/11/23 | 28917 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-2.9.tar.lzma
-2020/11/23 | 34184 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma
-2020/11/23 | 49818 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-2.9.tar.lzma
-2020/11/23 | 57227 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma
-2020/11/23 | 84910 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-2.9.tar.lzma
-2020/11/23 | 93589 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma
-2020/11/23 | 65770 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-2.9.tar.lzma
-2020/11/23 | 73423 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma
-2020/11/23 | 27009 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-2.9.tar.lzma
-2020/11/23 | 30682 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma
-2020/11/23 | 329620 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-2.9.tar.lzma
-2020/11/23 | 392344 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma
-2020/11/23 | 32339 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-2.9.tar.lzma
-2020/11/23 | 36374 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma
-2020/11/23 | 50509 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-2.9.tar.lzma
-2020/11/23 | 55605 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma
-2020/11/23 | 204243 | systems/win32/miktex/tm/packages/next/miktex-console-bin-2.9.tar.lzma
-2020/11/23 | 224114 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma
-2020/11/23 | 179400 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-2.9.tar.lzma
-2020/11/23 | 195337 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma
-2020/11/23 | 51964 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-2.9.tar.lzma
-2020/11/23 | 58632 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma
-2020/11/23 | 20816 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-2.9.tar.lzma
-2020/11/23 | 23024 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma
-2020/11/23 | 461751 | systems/win32/miktex/tm/packages/next/miktex-doc.tar.lzma
-2020/11/23 | 45368 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-2.9.tar.lzma
-2020/11/23 | 51117 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma
-2020/11/23 | 279491 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-2.9.tar.lzma
-2020/11/23 | 318790 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma
-2020/11/23 | 40817 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-2.9.tar.lzma
-2020/11/23 | 44980 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma
-2020/11/23 | 115942 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-2.9.tar.lzma
-2020/11/23 | 130320 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma
-2020/11/23 | 1274537 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-2.9.tar.lzma
-2020/11/23 | 1415728 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma
-2020/11/23 | 86663 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-2.9.tar.lzma
-2020/11/23 | 98597 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma
-2020/11/23 | 42915 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-2.9.tar.lzma
-2020/11/23 | 47679 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma
-2020/11/23 | 24891 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-2.9.tar.lzma
-2020/11/23 | 27758 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma
-2020/11/23 | 55829 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-2.9.tar.lzma
-2020/11/23 | 63010 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma
-2020/11/23 | 133473 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-2.9.tar.lzma
-2020/11/23 | 151809 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma
-2020/11/23 | 72879 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-2.9.tar.lzma
-2020/11/23 | 77237 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma
-2020/11/23 | 71729 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-2.9.tar.lzma
-2020/11/23 | 80689 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma
-2020/11/23 | 258220 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-2.9.tar.lzma
-2020/11/23 | 295366 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma
-2020/11/23 | 21849 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-2.9.tar.lzma
-2020/11/23 | 24840 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma
-2020/11/23 | 99227 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-2.9.tar.lzma
-2020/11/23 | 114400 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma
-2020/11/23 | 63604 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-2.9.tar.lzma
-2020/11/23 | 72710 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma
-2020/11/23 | 94444 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-2.9.tar.lzma
-2020/11/23 | 113870 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma
-2020/11/23 | 37682 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-2.9.tar.lzma
-2020/11/23 | 42238 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma
-2020/11/23 | 482420 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-2.9.tar.lzma
-2020/11/23 | 567104 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma
-2020/11/23 | 146833 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-2.9.tar.lzma
-2020/11/23 | 159525 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma
-2020/11/23 | 94606 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-2.9.tar.lzma
-2020/11/23 | 108945 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma
-2020/11/23 | 15989 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-2.9.tar.lzma
-2020/11/23 | 17629 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma
-2020/11/23 | 27708 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-2.9.tar.lzma
-2020/11/23 | 29731 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma
-2020/11/23 | 623786 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-2.9.tar.lzma
-2020/11/23 | 678094 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma
-2020/11/23 | 531487 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-2.9.tar.lzma
-2020/11/23 | 597318 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma
-2020/11/23 | 557911 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-2.9.tar.lzma
-2020/11/23 | 598219 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma
-2020/11/23 | 93666 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-2.9.tar.lzma
-2020/11/23 | 102882 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma
-2020/11/23 | 1707142 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-2.9.tar.lzma
-2020/11/23 | 1985300 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma
-2020/11/23 | 67425 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-2.9.tar.lzma
-2020/11/23 | 74048 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma
-2020/11/23 | 27103 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-2.9.tar.lzma
-2020/11/23 | 31217 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma
-2020/11/23 | 7569 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-2.9.tar.lzma
-2020/11/23 | 8592 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma
-2020/11/23 | 194088 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-2.9.tar.lzma
-2020/11/23 | 212028 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma
-2020/11/23 | 249040 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-2.9.tar.lzma
-2020/11/23 | 282449 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma
-2020/11/23 | 96263 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-2.9.tar.lzma
-2020/11/23 | 101592 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma
-2020/11/23 | 58495 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-2.9.tar.lzma
-2020/11/23 | 65969 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-x64-2.9.tar.lzma
-2020/11/23 | 118974 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-2.9.tar.lzma
-2020/11/23 | 130510 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma
-2020/11/23 | 144418 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-2.9.tar.lzma
-2020/11/23 | 161076 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma
-2020/11/23 | 199230 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-2.9.tar.lzma
-2020/11/23 | 179938 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma
-2020/11/23 | 64438 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-2.9.tar.lzma
-2020/11/23 | 74256 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma
-2020/11/23 | 31041 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-2.9.tar.lzma
-2020/11/23 | 34787 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma
-2020/11/23 | 36640 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-2.9.tar.lzma
-2020/11/23 | 41054 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma
-2020/11/23 | 42628 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-2.9.tar.lzma
-2020/11/23 | 46533 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma
-2020/11/23 | 45812 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-2.9.tar.lzma
-2020/11/23 | 52201 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma
-2020/11/23 | 192634 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-2.9.tar.lzma
-2020/11/23 | 210214 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-x64-2.9.tar.lzma
-2020/11/23 | 35189 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin.tar.lzma
-2020/11/23 | 39308 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64.tar.lzma
-2020/11/23 | 738797 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-2.9.tar.lzma
-2020/11/23 | 808895 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma
-2020/11/23 | 197843 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-2.9.tar.lzma
-2020/11/23 | 202421 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma
-2020/11/23 | 207412 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-2.9.tar.lzma
-2020/11/23 | 243100 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma
-2020/11/23 | 78402 | systems/win32/miktex/tm/packages/next/miktex-png-bin-2.9.tar.lzma
-2020/11/23 | 87399 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma
-2020/11/23 | 1168166 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-2.9.tar.lzma
-2020/11/23 | 1302289 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma
-2020/11/23 | 19946 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-2.9.tar.lzma
-2020/11/23 | 23638 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma
-2020/11/23 | 31214 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-2.9.tar.lzma
-2020/11/23 | 36930 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma
-2020/11/23 | 63490 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-2.9.tar.lzma
-2020/11/23 | 71620 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma
-2020/11/23 | 42631 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-2.9.tar.lzma
-2020/11/23 | 50857 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma
-2020/11/23 | 1125036 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-2.9.tar.lzma
-2020/11/23 | 1245396 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma
-2020/11/23 | 42078 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-2.9.tar.lzma
-2020/11/23 | 51475 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma
-2020/11/23 | 56012 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin.tar.lzma
-2020/11/23 | 59550 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64.tar.lzma
-2020/11/23 | 26982 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-2.9.tar.lzma
-2020/11/23 | 29156 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma
-2020/11/23 | 16059 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-2.9.tar.lzma
-2020/11/23 | 17715 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma
-2020/11/23 | 63181 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-2.9.tar.lzma
-2020/11/23 | 69712 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma
-2020/11/23 | 151776 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-2.9.tar.lzma
-2020/11/23 | 165516 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma
-2020/11/23 | 56656 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-2.9.tar.lzma
-2020/11/23 | 65271 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma
-2020/11/23 | 97453 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-2.9.tar.lzma
-2020/11/23 | 104487 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma
-2020/11/23 | 2514453 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-2.9.tar.lzma
-2020/11/23 | 2635855 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma
-2020/11/23 | 54664 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-2.9.tar.lzma
-2020/11/23 | 61837 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma
-2020/11/23 | 33150 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin.tar.lzma
-2020/11/23 | 36958 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin-x64.tar.lzma
-2020/11/23 | 27056 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-2.9.tar.lzma
-2020/11/23 | 32922 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma
-2020/11/23 | 65984 | systems/win32/miktex/tm/packages/next/miktex-web-bin-2.9.tar.lzma
-2020/11/23 | 70119 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma
-2020/11/23 | 250931 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-2.9.tar.lzma
-2020/11/23 | 280105 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma
-2020/11/23 | 580935 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-2.9.tar.lzma
-2020/11/23 | 617436 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma
-2020/11/23 | 39353 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-2.9.tar.lzma
-2020/11/23 | 43083 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma
-2020/11/23 | 204621 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma
-2020/11/23 | 1227951 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma
-2020/11/23 | 1146485 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma
-2020/11/23 | 13288 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-2.9.tar.lzma
-2020/11/23 | 14160 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-x64-2.9.tar.lzma
+2020/11/24 | 548392 | systems/win32/miktex/tm/packages/next/files.csv.lzma
+2020/11/24 | 50435 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-2.9.tar.lzma
+2020/11/24 | 55969 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma
+2020/11/24 | 965658 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-2.9.tar.lzma
+2020/11/24 | 1076055 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma
+2020/11/24 | 28607 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-2.9.tar.lzma
+2020/11/24 | 30933 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma
+2020/11/24 | 28916 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-2.9.tar.lzma
+2020/11/24 | 34184 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma
+2020/11/24 | 49817 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-2.9.tar.lzma
+2020/11/24 | 57230 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma
+2020/11/24 | 84910 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-2.9.tar.lzma
+2020/11/24 | 93591 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma
+2020/11/24 | 65767 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-2.9.tar.lzma
+2020/11/24 | 73422 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma
+2020/11/24 | 27008 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-2.9.tar.lzma
+2020/11/24 | 30682 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma
+2020/11/24 | 329621 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-2.9.tar.lzma
+2020/11/24 | 392345 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma
+2020/11/24 | 32338 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-2.9.tar.lzma
+2020/11/24 | 36373 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma
+2020/11/24 | 50511 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-2.9.tar.lzma
+2020/11/24 | 55605 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma
+2020/11/24 | 204246 | systems/win32/miktex/tm/packages/next/miktex-console-bin-2.9.tar.lzma
+2020/11/24 | 224116 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma
+2020/11/24 | 179400 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-2.9.tar.lzma
+2020/11/24 | 195337 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma
+2020/11/24 | 51964 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-2.9.tar.lzma
+2020/11/24 | 58631 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma
+2020/11/24 | 20814 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-2.9.tar.lzma
+2020/11/24 | 23022 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma
+2020/11/24 | 461749 | systems/win32/miktex/tm/packages/next/miktex-doc.tar.lzma
+2020/11/24 | 45369 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-2.9.tar.lzma
+2020/11/24 | 51116 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma
+2020/11/24 | 279491 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-2.9.tar.lzma
+2020/11/24 | 318790 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma
+2020/11/24 | 40818 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-2.9.tar.lzma
+2020/11/24 | 44980 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma
+2020/11/24 | 115942 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-2.9.tar.lzma
+2020/11/24 | 130322 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma
+2020/11/24 | 1274537 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-2.9.tar.lzma
+2020/11/24 | 1415727 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma
+2020/11/24 | 86662 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-2.9.tar.lzma
+2020/11/24 | 98597 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma
+2020/11/24 | 42913 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-2.9.tar.lzma
+2020/11/24 | 47677 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma
+2020/11/24 | 24890 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-2.9.tar.lzma
+2020/11/24 | 27759 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma
+2020/11/24 | 55826 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-2.9.tar.lzma
+2020/11/24 | 63010 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma
+2020/11/24 | 133476 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-2.9.tar.lzma
+2020/11/24 | 151809 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma
+2020/11/24 | 72878 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-2.9.tar.lzma
+2020/11/24 | 77238 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma
+2020/11/24 | 71730 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-2.9.tar.lzma
+2020/11/24 | 80690 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma
+2020/11/24 | 258223 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-2.9.tar.lzma
+2020/11/24 | 295367 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma
+2020/11/24 | 21851 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-2.9.tar.lzma
+2020/11/24 | 24841 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma
+2020/11/24 | 99227 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-2.9.tar.lzma
+2020/11/24 | 114402 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma
+2020/11/24 | 63605 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-2.9.tar.lzma
+2020/11/24 | 72710 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma
+2020/11/24 | 94445 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-2.9.tar.lzma
+2020/11/24 | 113870 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma
+2020/11/24 | 37682 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-2.9.tar.lzma
+2020/11/24 | 42238 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma
+2020/11/24 | 482420 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-2.9.tar.lzma
+2020/11/24 | 567104 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma
+2020/11/24 | 146832 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-2.9.tar.lzma
+2020/11/24 | 159525 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma
+2020/11/24 | 94606 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-2.9.tar.lzma
+2020/11/24 | 108945 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma
+2020/11/24 | 15989 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-2.9.tar.lzma
+2020/11/24 | 17629 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma
+2020/11/24 | 27708 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-2.9.tar.lzma
+2020/11/24 | 29732 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma
+2020/11/24 | 623784 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-2.9.tar.lzma
+2020/11/24 | 678093 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma
+2020/11/24 | 531486 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-2.9.tar.lzma
+2020/11/24 | 597317 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma
+2020/11/24 | 557915 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-2.9.tar.lzma
+2020/11/24 | 598215 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma
+2020/11/24 | 93664 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-2.9.tar.lzma
+2020/11/24 | 102883 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma
+2020/11/24 | 1707142 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-2.9.tar.lzma
+2020/11/24 | 1985297 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma
+2020/11/24 | 67424 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-2.9.tar.lzma
+2020/11/24 | 74050 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma
+2020/11/24 | 27102 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-2.9.tar.lzma
+2020/11/24 | 31217 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma
+2020/11/24 | 7570 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-2.9.tar.lzma
+2020/11/24 | 8592 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma
+2020/11/24 | 194086 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-2.9.tar.lzma
+2020/11/24 | 212027 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma
+2020/11/24 | 249040 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-2.9.tar.lzma
+2020/11/24 | 282447 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma
+2020/11/24 | 96263 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-2.9.tar.lzma
+2020/11/24 | 101593 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma
+2020/11/24 | 58495 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-2.9.tar.lzma
+2020/11/24 | 65969 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-x64-2.9.tar.lzma
+2020/11/24 | 118973 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-2.9.tar.lzma
+2020/11/24 | 130511 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma
+2020/11/24 | 144417 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-2.9.tar.lzma
+2020/11/24 | 161078 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma
+2020/11/24 | 199230 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-2.9.tar.lzma
+2020/11/24 | 179940 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma
+2020/11/24 | 64437 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-2.9.tar.lzma
+2020/11/24 | 74257 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma
+2020/11/24 | 31041 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-2.9.tar.lzma
+2020/11/24 | 34788 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma
+2020/11/24 | 36640 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-2.9.tar.lzma
+2020/11/24 | 41053 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma
+2020/11/24 | 42626 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-2.9.tar.lzma
+2020/11/24 | 46533 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma
+2020/11/24 | 45811 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-2.9.tar.lzma
+2020/11/24 | 52200 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma
+2020/11/24 | 192631 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-2.9.tar.lzma
+2020/11/24 | 210213 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-x64-2.9.tar.lzma
+2020/11/24 | 35189 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin.tar.lzma
+2020/11/24 | 39308 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64.tar.lzma
+2020/11/24 | 738798 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-2.9.tar.lzma
+2020/11/24 | 808895 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma
+2020/11/24 | 197845 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-2.9.tar.lzma
+2020/11/24 | 202421 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma
+2020/11/24 | 207411 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-2.9.tar.lzma
+2020/11/24 | 243099 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma
+2020/11/24 | 78402 | systems/win32/miktex/tm/packages/next/miktex-png-bin-2.9.tar.lzma
+2020/11/24 | 87398 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma
+2020/11/24 | 1168164 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-2.9.tar.lzma
+2020/11/24 | 1302290 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma
+2020/11/24 | 19946 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-2.9.tar.lzma
+2020/11/24 | 23637 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma
+2020/11/24 | 31216 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-2.9.tar.lzma
+2020/11/24 | 36929 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma
+2020/11/24 | 63489 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-2.9.tar.lzma
+2020/11/24 | 71621 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma
+2020/11/24 | 42632 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-2.9.tar.lzma
+2020/11/24 | 50857 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma
+2020/11/24 | 1125036 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-2.9.tar.lzma
+2020/11/24 | 1245395 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma
+2020/11/24 | 42077 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-2.9.tar.lzma
+2020/11/24 | 51475 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma
+2020/11/24 | 56010 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin.tar.lzma
+2020/11/24 | 59550 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64.tar.lzma
+2020/11/24 | 26981 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-2.9.tar.lzma
+2020/11/24 | 29155 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma
+2020/11/24 | 16059 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-2.9.tar.lzma
+2020/11/24 | 17716 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma
+2020/11/24 | 63182 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-2.9.tar.lzma
+2020/11/24 | 69715 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma
+2020/11/24 | 151775 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-2.9.tar.lzma
+2020/11/24 | 165516 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma
+2020/11/24 | 56655 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-2.9.tar.lzma
+2020/11/24 | 65272 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma
+2020/11/24 | 97452 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-2.9.tar.lzma
+2020/11/24 | 104488 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma
+2020/11/24 | 2514452 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-2.9.tar.lzma
+2020/11/24 | 2635853 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma
+2020/11/24 | 54664 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-2.9.tar.lzma
+2020/11/24 | 61836 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma
+2020/11/24 | 33150 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin.tar.lzma
+2020/11/24 | 36958 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin-x64.tar.lzma
+2020/11/24 | 27055 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-2.9.tar.lzma
+2020/11/24 | 32922 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma
+2020/11/24 | 65982 | systems/win32/miktex/tm/packages/next/miktex-web-bin-2.9.tar.lzma
+2020/11/24 | 70117 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma
+2020/11/24 | 250931 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-2.9.tar.lzma
+2020/11/24 | 280105 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma
+2020/11/24 | 580936 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-2.9.tar.lzma
+2020/11/24 | 617436 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma
+2020/11/24 | 39354 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-2.9.tar.lzma
+2020/11/24 | 43082 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma
+2020/11/24 | 204875 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma
+2020/11/24 | 1229503 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma
+2020/11/24 | 1146183 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma
+2020/11/24 | 13289 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-2.9.tar.lzma
+2020/11/24 | 14162 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-x64-2.9.tar.lzma
2019/03/12 | 1412 | systems/win32/miktex/tm/packages/nextpage.tar.lzma
-2020/11/23 | 1153 | systems/win32/miktex/tm/packages/next/pr.ini
+2020/11/24 | 1153 | systems/win32/miktex/tm/packages/next/pr.ini
2018/07/06 | 145915 | systems/win32/miktex/tm/packages/nexus-otf.tar.lzma
2017/03/30 | 191149 | systems/win32/miktex/tm/packages/nfssext-cfr.tar.lzma
2012/12/20 | 612251 | systems/win32/miktex/tm/packages/nicefilelist.tar.lzma
2017/06/22 | 263407 | systems/win32/miktex/tm/packages/niceframe.tar.lzma
2017/06/22 | 276883 | systems/win32/miktex/tm/packages/niceframe-type1.tar.lzma
-2020/11/09 | 1572866 | systems/win32/miktex/tm/packages/nicematrix.tar.lzma
+2020/11/24 | 1595053 | systems/win32/miktex/tm/packages/nicematrix.tar.lzma
2015/11/25 | 2555178 | systems/win32/miktex/tm/packages/nicetext.tar.lzma
2018/07/30 | 243633 | systems/win32/miktex/tm/packages/nidanfloat.tar.lzma
2016/01/26 | 74424 | systems/win32/miktex/tm/packages/nihbiosketch.tar.lzma
@@ -273748,7 +273796,7 @@
2013/06/18 | 180502 | systems/win32/miktex/tm/packages/nox.tar.lzma
2013/02/05 | 256320 | systems/win32/miktex/tm/packages/nrc.tar.lzma
2016/07/16 | 74145 | systems/win32/miktex/tm/packages/ntabbing.tar.lzma
-2020/02/24 | 1781993 | systems/win32/miktex/tm/packages/ntgclass.tar.lzma
+2020/11/24 | 1782365 | systems/win32/miktex/tm/packages/ntgclass.tar.lzma
2012/09/14 | 474673 | systems/win32/miktex/tm/packages/ntheorem.tar.lzma
2018/04/06 | 546208 | systems/win32/miktex/tm/packages/nucleardata.tar.lzma
2011/05/06 | 82621 | systems/win32/miktex/tm/packages/nuc.tar.lzma
@@ -273759,7 +273807,7 @@
2017/07/29 | 71435 | systems/win32/miktex/tm/packages/numnameru.tar.lzma
2007/07/06 | 3278 | systems/win32/miktex/tm/packages/numname.tar.lzma
2012/12/28 | 1188155 | systems/win32/miktex/tm/packages/numprint.tar.lzma
-2020/11/09 | 247731 | systems/win32/miktex/tm/packages/numspell.tar.lzma
+2020/11/24 | 235960 | systems/win32/miktex/tm/packages/numspell.tar.lzma
2020/03/19 | 5664114 | systems/win32/miktex/tm/packages/nwejm.tar.lzma
2005/12/30 | 63383 | systems/win32/miktex/tm/packages/oands.cab
2020/09/06 | 9013633 | systems/win32/miktex/tm/packages/oberdiek.tar.lzma
@@ -273793,10 +273841,11 @@
2019/07/05 | 2628017 | systems/win32/miktex/tm/packages/opensans.tar.lzma
2017/08/05 | 240543 | systems/win32/miktex/tm/packages/oplotsymbl.tar.lzma
2006/06/03 | 45938 | systems/win32/miktex/tm/packages/opteng.cab
-2020/10/20 | 2017731 | systems/win32/miktex/tm/packages/optex.tar.lzma
+2020/11/24 | 2056163 | systems/win32/miktex/tm/packages/optex.tar.lzma
2019/04/24 | 262064 | systems/win32/miktex/tm/packages/optidef.tar.lzma
2010/05/10 | 298765 | systems/win32/miktex/tm/packages/optional.tar.lzma
2015/12/08 | 233022 | systems/win32/miktex/tm/packages/options.tar.lzma
+2020/11/24 | 166639 | systems/win32/miktex/tm/packages/orcidlink.tar.lzma
2004/06/09 | 21161 | systems/win32/miktex/tm/packages/orderrefs.cab
2007/02/24 | 13904 | systems/win32/miktex/tm/packages/ordinalpt.tar.lzma
2009/04/21 | 109398 | systems/win32/miktex/tm/packages/orkhun.tar.lzma
@@ -273874,7 +273923,7 @@
2015/07/28 | 1817839 | systems/win32/miktex/tm/packages/pdfpagediff.tar.lzma
2020/01/29 | 363992 | systems/win32/miktex/tm/packages/pdfpages.tar.lzma
2018/07/22 | 82751 | systems/win32/miktex/tm/packages/pdfpc-movie.tar.lzma
-2020/06/22 | 177105 | systems/win32/miktex/tm/packages/pdfpc.tar.lzma
+2020/11/24 | 178509 | systems/win32/miktex/tm/packages/pdfpc.tar.lzma
2017/12/04 | 270667 | systems/win32/miktex/tm/packages/pdfprivacy.tar.lzma
2019/02/23 | 585467 | systems/win32/miktex/tm/packages/pdfreview.tar.lzma
2016/07/16 | 446208 | systems/win32/miktex/tm/packages/pdfscreen.tar.lzma
@@ -273915,7 +273964,7 @@
2020/03/03 | 15272237 | systems/win32/miktex/tm/packages/pgfplots.tar.lzma
2013/12/04 | 355279 | systems/win32/miktex/tm/packages/pgf-soroban.tar.lzma
2016/04/26 | 510302 | systems/win32/miktex/tm/packages/pgf-spectra.tar.lzma
-2020/10/03 | 11363659 | systems/win32/miktex/tm/packages/pgf.tar.lzma
+2020/11/24 | 11369660 | systems/win32/miktex/tm/packages/pgf.tar.lzma
2014/04/07 | 271966 | systems/win32/miktex/tm/packages/pgf-umlcd.tar.lzma
2014/02/28 | 227003 | systems/win32/miktex/tm/packages/pgf-umlsd.tar.lzma
2016/07/28 | 154061 | systems/win32/miktex/tm/packages/pgothic.tar.lzma
@@ -273929,7 +273978,7 @@
2016/08/17 | 406792 | systems/win32/miktex/tm/packages/phfthm.tar.lzma
2015/02/28 | 249090 | systems/win32/miktex/tm/packages/philex.tar.lzma
2017/09/21 | 176070 | systems/win32/miktex/tm/packages/philokalia.tar.lzma
-2016/08/02 | 466466 | systems/win32/miktex/tm/packages/philosophersimprint.tar.lzma
+2020/11/24 | 497928 | systems/win32/miktex/tm/packages/philosophersimprint.tar.lzma
2006/02/08 | 99252 | systems/win32/miktex/tm/packages/phoenician.cab
2019/08/22 | 1164076 | systems/win32/miktex/tm/packages/phonenumbers.tar.lzma
2020/10/03 | 68746 | systems/win32/miktex/tm/packages/phonetic.tar.lzma
@@ -274026,7 +274075,7 @@
2020/10/20 | 342254 | systems/win32/miktex/tm/packages/preview.tar.lzma
2019/06/20 | 375963 | systems/win32/miktex/tm/packages/prftree.tar.lzma
2020/10/27 | 357822 | systems/win32/miktex/tm/packages/principia.tar.lzma
-2020/11/23 | 863 | systems/win32/miktex/tm/packages/pr.ini
+2020/11/24 | 889 | systems/win32/miktex/tm/packages/pr.ini
2010/09/27 | 248469 | systems/win32/miktex/tm/packages/printlen.tar.lzma
2008/06/17 | 77313 | systems/win32/miktex/tm/packages/proba.tar.lzma
2017/07/12 | 988486 | systems/win32/miktex/tm/packages/probsoln.tar.lzma
@@ -274205,7 +274254,7 @@
2020/08/09 | 871189 | systems/win32/miktex/tm/packages/quattrocento.tar.lzma
2016/10/07 | 182490 | systems/win32/miktex/tm/packages/quicktype.tar.lzma
2019/10/04 | 215637 | systems/win32/miktex/tm/packages/quiz2socrative.tar.lzma
-2019/07/13 | 304153 | systems/win32/miktex/tm/packages/quotchap.tar.lzma
+2020/11/24 | 303331 | systems/win32/miktex/tm/packages/quotchap.tar.lzma
2014/01/31 | 317536 | systems/win32/miktex/tm/packages/quoting.tar.lzma
2007/12/30 | 166253 | systems/win32/miktex/tm/packages/quotmark.tar.lzma
2020/03/09 | 747672 | systems/win32/miktex/tm/packages/quran-de.tar.lzma
@@ -274248,7 +274297,7 @@
2020/10/07 | 549899 | systems/win32/miktex/tm/packages/regexpatch.tar.lzma
2020/03/23 | 335314 | systems/win32/miktex/tm/packages/register.tar.lzma
2012/01/10 | 416161 | systems/win32/miktex/tm/packages/regstats.tar.lzma
-2020/11/09 | 10461888 | systems/win32/miktex/tm/packages/reledmac.tar.lzma
+2020/11/24 | 10461960 | systems/win32/miktex/tm/packages/reledmac.tar.lzma
2016/07/18 | 62816 | systems/win32/miktex/tm/packages/relenc.tar.lzma
2013/05/29 | 315594 | systems/win32/miktex/tm/packages/relsize.tar.lzma
2010/02/12 | 58689 | systems/win32/miktex/tm/packages/renditions.tar.lzma
@@ -274278,6 +274327,7 @@
2006/04/13 | 62825 | systems/win32/miktex/tm/packages/robustcommand.cab
2005/04/09 | 96736 | systems/win32/miktex/tm/packages/robustindex.cab
2019/01/31 | 425622 | systems/win32/miktex/tm/packages/robustindex.tar.lzma
+2020/11/24 | 525148 | systems/win32/miktex/tm/packages/rojud.tar.lzma
2015/02/28 | 218043 | systems/win32/miktex/tm/packages/romanbarpagenumber.tar.lzma
2012/01/10 | 374778 | systems/win32/miktex/tm/packages/romanbar.tar.lzma
2010/07/27 | 761563 | systems/win32/miktex/tm/packages/romandeadf.tar.lzma
@@ -274338,7 +274388,7 @@
2016/12/05 | 138527 | systems/win32/miktex/tm/packages/scanpages.tar.lzma
2019/08/02 | 256441 | systems/win32/miktex/tm/packages/schedule.tar.lzma
2009/01/22 | 155506 | systems/win32/miktex/tm/packages/schemabloc.tar.lzma
-2020/03/18 | 739221 | systems/win32/miktex/tm/packages/schemata.tar.lzma
+2020/11/24 | 754776 | systems/win32/miktex/tm/packages/schemata.tar.lzma
2020/06/04 | 2088653 | systems/win32/miktex/tm/packages/scholax.tar.lzma
2020/07/19 | 920155 | systems/win32/miktex/tm/packages/schooldocs.tar.lzma
2020/10/18 | 6321947 | systems/win32/miktex/tm/packages/schule.tar.lzma
@@ -274449,7 +274499,7 @@
2009/02/21 | 477338 | systems/win32/miktex/tm/packages/skaknew.tar.lzma
2018/02/08 | 221377 | systems/win32/miktex/tm/packages/skak.tar.lzma
2011/06/23 | 1471957 | systems/win32/miktex/tm/packages/skb.tar.lzma
-2020/08/30 | 393248 | systems/win32/miktex/tm/packages/skdoc.tar.lzma
+2020/11/24 | 354602 | systems/win32/miktex/tm/packages/skdoc.tar.lzma
2011/11/22 | 333812 | systems/win32/miktex/tm/packages/skeycommand.tar.lzma
2013/05/21 | 424870 | systems/win32/miktex/tm/packages/skeyval.tar.lzma
2020/10/27 | 78976 | systems/win32/miktex/tm/packages/skills.tar.lzma
@@ -274559,7 +274609,7 @@
2005/07/14 | 146605 | systems/win32/miktex/tm/packages/subfig.cab
2010/11/05 | 291080 | systems/win32/miktex/tm/packages/subfigmat.tar.lzma
2005/05/04 | 96643 | systems/win32/miktex/tm/packages/subfigure.cab
-2020/11/09 | 248941 | systems/win32/miktex/tm/packages/subfiles.tar.lzma
+2020/11/24 | 248099 | systems/win32/miktex/tm/packages/subfiles.tar.lzma
2016/07/29 | 98270 | systems/win32/miktex/tm/packages/subfloat.tar.lzma
2016/05/15 | 588947 | systems/win32/miktex/tm/packages/substances.tar.lzma
2013/11/08 | 1436807 | systems/win32/miktex/tm/packages/substitutefont.tar.lzma
@@ -274582,7 +274632,7 @@
2007/10/02 | 19362 | systems/win32/miktex/tm/packages/svn.tar.lzma
2019/02/16 | 130231 | systems/win32/miktex/tm/packages/svrsymbols.tar.lzma
2005/05/04 | 7773 | systems/win32/miktex/tm/packages/swebib.cab
-2020/10/20 | 1027876 | systems/win32/miktex/tm/packages/swfigure.tar.lzma
+2020/11/24 | 1696662 | systems/win32/miktex/tm/packages/swfigure.tar.lzma
2012/02/21 | 118538 | systems/win32/miktex/tm/packages/swimgraf.tar.lzma
2004/05/07 | 1782 | systems/win32/miktex/tm/packages/switcheml.cab
2016/07/20 | 1754 | systems/win32/miktex/tm/packages/swrule.tar.lzma
@@ -274648,7 +274698,7 @@
2015/11/25 | 395550 | systems/win32/miktex/tm/packages/testhyphens.tar.lzma
2019/10/04 | 3420713 | systems/win32/miktex/tm/packages/testidx.tar.lzma
2016/11/03 | 13084 | systems/win32/miktex/tm/packages/tetex.tar.lzma
-2016/04/04 | 1068483 | systems/win32/miktex/tm/packages/teubner.tar.lzma
+2020/11/24 | 1102452 | systems/win32/miktex/tm/packages/teubner.tar.lzma
2020/11/09 | 105318 | systems/win32/miktex/tm/packages/tex4ebook.tar.lzma
2020/10/05 | 872920 | systems/win32/miktex/tm/packages/tex4ht.tar.lzma
2011/10/10 | 155504 | systems/win32/miktex/tm/packages/texapi.tar.lzma
@@ -274813,7 +274863,7 @@
2020/09/06 | 80313 | systems/win32/miktex/tm/packages/totalcount.tar.lzma
2011/01/27 | 294748 | systems/win32/miktex/tm/packages/totcount.tar.lzma
2005/09/24 | 26724 | systems/win32/miktex/tm/packages/totpages.cab
-2020/04/24 | 65374 | systems/win32/miktex/tm/packages/tpic2pdftex.tar.lzma
+2020/11/24 | 65369 | systems/win32/miktex/tm/packages/tpic2pdftex.tar.lzma
2004/07/28 | 110249 | systems/win32/miktex/tm/packages/tpslifonts.cab
2017/06/03 | 713049 | systems/win32/miktex/tm/packages/tqft.tar.lzma
2020/07/01 | 1071787 | systems/win32/miktex/tm/packages/tracklang.tar.lzma
@@ -274834,12 +274884,12 @@
2005/06/02 | 90162 | systems/win32/miktex/tm/packages/ttcmex.cab
2016/11/04 | 106224 | systems/win32/miktex/tm/packages/ttf2pk.tar.lzma
2010/12/13 | 260868 | systems/win32/miktex/tm/packages/tucv.tar.lzma
-2020/10/27 | 1133665 | systems/win32/miktex/tm/packages/tuda-ci.tar.lzma
-2020/10/03 | 4224678 | systems/win32/miktex/tm/packages/tudscr.tar.lzma
+2020/11/24 | 1142323 | systems/win32/miktex/tm/packages/tuda-ci.tar.lzma
+2020/11/24 | 4223417 | systems/win32/miktex/tm/packages/tudscr.tar.lzma
2019/02/17 | 800587 | systems/win32/miktex/tm/packages/tufte-latex.tar.lzma
2006/06/12 | 143924 | systems/win32/miktex/tm/packages/tugboat-plain.cab
2018/09/07 | 255853 | systems/win32/miktex/tm/packages/tugboat-plain.tar.lzma
-2020/03/14 | 846098 | systems/win32/miktex/tm/packages/tugboat.tar.lzma
+2020/11/24 | 857482 | systems/win32/miktex/tm/packages/tugboat.tar.lzma
2012/08/06 | 271008 | systems/win32/miktex/tm/packages/tui.tar.lzma
2020/03/20 | 128466 | systems/win32/miktex/tm/packages/turabian-formatting.tar.lzma
2015/02/28 | 6276 | systems/win32/miktex/tm/packages/turabian.tar.lzma
@@ -274920,7 +274970,7 @@
2016/07/20 | 216220 | systems/win32/miktex/tm/packages/units.tar.lzma
2014/05/09 | 549281 | systems/win32/miktex/tm/packages/universalis.tar.lzma
2019/08/30 | 658057 | systems/win32/miktex/tm/packages/universa.tar.lzma
-2020/06/28 | 2133933 | systems/win32/miktex/tm/packages/univie-ling.tar.lzma
+2020/11/24 | 2139286 | systems/win32/miktex/tm/packages/univie-ling.tar.lzma
2013/09/09 | 73791 | systems/win32/miktex/tm/packages/uni-wtal-ger.tar.lzma
2013/08/19 | 97009 | systems/win32/miktex/tm/packages/uni-wtal-lin.tar.lzma
2019/07/20 | 33320 | systems/win32/miktex/tm/packages/unizgklasa.tar.lzma
@@ -274963,7 +275013,7 @@
2011/09/28 | 30065 | systems/win32/miktex/tm/packages/varwidth.tar.lzma
2008/10/29 | 300486 | systems/win32/miktex/tm/packages/vaucanson-g.tar.lzma
2020/05/18 | 151859 | systems/win32/miktex/tm/packages/vcell.tar.lzma
-2013/04/15 | 70289 | systems/win32/miktex/tm/packages/vdmlisting.tar.lzma
+2020/11/24 | 72449 | systems/win32/miktex/tm/packages/vdmlisting.tar.lzma
2016/07/18 | 189834 | systems/win32/miktex/tm/packages/vdm.tar.lzma
2016/07/18 | 169814 | systems/win32/miktex/tm/packages/vector.tar.lzma
2018/06/08 | 354391 | systems/win32/miktex/tm/packages/venndiagram.tar.lzma
@@ -275013,7 +275063,7 @@
2020/01/23 | 817813 | systems/win32/miktex/tm/packages/widows-and-orphans.tar.lzma
2009/01/31 | 2711 | systems/win32/miktex/tm/packages/williams.tar.lzma
2020/04/25 | 24286148 | systems/win32/miktex/tm/packages/willowtreebook.tar.lzma
-2020/10/03 | 478034 | systems/win32/miktex/tm/packages/windycity.tar.lzma
+2020/11/24 | 495970 | systems/win32/miktex/tm/packages/windycity.tar.lzma
2019/11/10 | 483424 | systems/win32/miktex/tm/packages/withargs.tar.lzma
2020/10/03 | 967309 | systems/win32/miktex/tm/packages/witharrows.tar.lzma
2016/07/20 | 63079 | systems/win32/miktex/tm/packages/withesis.tar.lzma
@@ -275029,7 +275079,7 @@
2008/04/02 | 202156 | systems/win32/miktex/tm/packages/xargs.tar.lzma
2020/07/27 | 1159577 | systems/win32/miktex/tm/packages/xassoccnt.tar.lzma
2020/01/19 | 376430 | systems/win32/miktex/tm/packages/xbmks.tar.lzma
-2020/10/20 | 2519143 | systems/win32/miktex/tm/packages/xcharter.tar.lzma
+2020/11/24 | 2440955 | systems/win32/miktex/tm/packages/xcharter.tar.lzma
2020/01/22 | 161707 | systems/win32/miktex/tm/packages/xcite.tar.lzma
2020/05/06 | 328896 | systems/win32/miktex/tm/packages/xcjk2uni.tar.lzma
2018/01/07 | 348703 | systems/win32/miktex/tm/packages/xcntperchap.tar.lzma
@@ -275075,8 +275125,8 @@
2020/02/27 | 2365856 | systems/win32/miktex/tm/packages/xint.tar.lzma
2020/07/03 | 547474 | systems/win32/miktex/tm/packages/xits.tar.lzma
2019/10/22 | 228077 | systems/win32/miktex/tm/packages/xkcdcolors.tar.lzma
-2014/12/22 | 443853 | systems/win32/miktex/tm/packages/xkeyval.tar.lzma
-2020/05/06 | 552573 | systems/win32/miktex/tm/packages/xlop.tar.lzma
+2020/11/24 | 439037 | systems/win32/miktex/tm/packages/xkeyval.tar.lzma
+2020/11/24 | 552037 | systems/win32/miktex/tm/packages/xlop.tar.lzma
2020/11/05 | 75505 | systems/win32/miktex/tm/packages/xltabular.tar.lzma
2019/01/03 | 109397 | systems/win32/miktex/tm/packages/xltxtra.tar.lzma
2006/05/11 | 37020 | systems/win32/miktex/tm/packages/xmltex.cab
@@ -275409,7 +275459,7 @@
2004/06/04 | 404 | tds/tds.sed
2004/06/23 | 65418 | tds/tds.tex
2019/05/29 | 304264 | tds.zip
-2020/11/24 | 186 | timestamp
+2020/11/25 | 186 | timestamp
2002/08/26 | 61898 | usergrps/dante/antrag.pdf
2002/08/26 | 118217 | usergrps/dante/antrag.ps
2017/06/30 | 917 | usergrps/dante/dtk/doc/beispiel.bib
diff --git a/FILES.byname.gz b/FILES.byname.gz
index eaf35fa133..3ea29f6a2f 100644
--- a/FILES.byname.gz
+++ b/FILES.byname.gz
Binary files differ
diff --git a/FILES.last07days b/FILES.last07days
index 0543c6ff88..2f5ee13d40 100644
--- a/FILES.last07days
+++ b/FILES.last07days
@@ -1,3 +1,317 @@
+2020/11/24 | 99227 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-2.9.tar.lzma
+2020/11/24 | 98597 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma
+2020/11/24 | 97452 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-2.9.tar.lzma
+2020/11/24 | 965658 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-2.9.tar.lzma
+2020/11/24 | 96263 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-2.9.tar.lzma
+2020/11/24 | 94628 | systems/texlive/tlnet/archive/latexmk.r56991.tar.xz
+2020/11/24 | 94606 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-2.9.tar.lzma
+2020/11/24 | 94445 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-2.9.tar.lzma
+2020/11/24 | 93664 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-2.9.tar.lzma
+2020/11/24 | 93591 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma
+2020/11/24 | 92565 | systems/win32/miktex/tm/packages/lacheck.tar.lzma
+2020/11/24 | 920487 | macros/latex/contrib/bewerbung.zip
+2020/11/24 | 897112 | systems/texlive/tlnet/archive/tex4ht.r56988.tar.xz
+2020/11/24 | 89188 | systems/win32/miktex/tm/packages/graphicx-psmin.tar.lzma
+2020/11/24 | 889 | systems/win32/miktex/tm/packages/pr.ini
+2020/11/24 | 874063 | systems/win32/miktex/tm/packages/factura.tar.lzma
+2020/11/24 | 87398 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma
+2020/11/24 | 86662 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-2.9.tar.lzma
+2020/11/24 | 8639499 | systems/win32/miktex/tm/packages/baekmuk.tar.lzma
+2020/11/24 | 8592 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma
+2020/11/24 | 857482 | systems/win32/miktex/tm/packages/tugboat.tar.lzma
+2020/11/24 | 856 | systems/texlive/tlnet/archive/latexmk.source.r56991.tar.xz
+2020/11/24 | 84910 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-2.9.tar.lzma
+2020/11/24 | 84096 | systems/texlive/tlnet/archive/nicematrix.source.r56991.tar.xz
+2020/11/24 | 808895 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma
+2020/11/24 | 80690 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma
+2020/11/24 | 784 | macros/latex/contrib/everyshi/README.md
+2020/11/24 | 78402 | systems/win32/miktex/tm/packages/next/miktex-png-bin-2.9.tar.lzma
+2020/11/24 | 778706 | systems/win32/miktex/tm/packages/apa7.tar.lzma
+2020/11/24 | 77238 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma
+2020/11/24 | 759 | macros/latex/contrib/prelim2e/README.md
+2020/11/24 | 7570 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-2.9.tar.lzma
+2020/11/24 | 754776 | systems/win32/miktex/tm/packages/schemata.tar.lzma
+2020/11/24 | 74257 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma
+2020/11/24 | 74050 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma
+2020/11/24 | 738798 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-2.9.tar.lzma
+2020/11/24 | 73422 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma
+2020/11/24 | 72878 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-2.9.tar.lzma
+2020/11/24 | 72710 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma
+2020/11/24 | 72449 | systems/win32/miktex/tm/packages/vdmlisting.tar.lzma
+2020/11/24 | 71730 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-2.9.tar.lzma
+2020/11/24 | 716816 | systems/texlive/tlnet/archive/pgf.r56991.tar.xz
+2020/11/24 | 71621 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma
+2020/11/24 | 70117 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma
+2020/11/24 | 69715 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma
+2020/11/24 | 693654 | macros/latex/contrib/bewerbung/bewerbung.pdf
+2020/11/24 | 678093 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma
+2020/11/24 | 67424 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-2.9.tar.lzma
+2020/11/24 | 65982 | systems/win32/miktex/tm/packages/next/miktex-web-bin-2.9.tar.lzma
+2020/11/24 | 65969 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-x64-2.9.tar.lzma
+2020/11/24 | 65767 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-2.9.tar.lzma
+2020/11/24 | 65369 | systems/win32/miktex/tm/packages/tpic2pdftex.tar.lzma
+2020/11/24 | 65272 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma
+2020/11/24 | 6514300 | systems/win32/miktex/tm/packages/newtx.tar.lzma
+2020/11/24 | 64437 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-2.9.tar.lzma
+2020/11/24 | 63605 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-2.9.tar.lzma
+2020/11/24 | 636001 | systems/win32/miktex/tm/packages/asmeconf.tar.lzma
+2020/11/24 | 63489 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-2.9.tar.lzma
+2020/11/24 | 63182 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-2.9.tar.lzma
+2020/11/24 | 63010 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma
+2020/11/24 | 628762 | systems/unix/tex-fpc.zip
+2020/11/24 | 623784 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-2.9.tar.lzma
+2020/11/24 | 61836 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma
+2020/11/24 | 617436 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma
+2020/11/24 | 598215 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma
+2020/11/24 | 597317 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma
+2020/11/24 | 59550 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64.tar.lzma
+2020/11/24 | 58631 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma
+2020/11/24 | 58495 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-2.9.tar.lzma
+2020/11/24 | 580936 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-2.9.tar.lzma
+2020/11/24 | 57230 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma
+2020/11/24 | 567104 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma
+2020/11/24 | 56655 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-2.9.tar.lzma
+2020/11/24 | 56010 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin.tar.lzma
+2020/11/24 | 55969 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma
+2020/11/24 | 55826 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-2.9.tar.lzma
+2020/11/24 | 557915 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-2.9.tar.lzma
+2020/11/24 | 55605 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma
+2020/11/24 | 552037 | systems/win32/miktex/tm/packages/xlop.tar.lzma
+2020/11/24 | 550611 | systems/win32/miktex/tm/packages/mismath.tar.lzma
+2020/11/24 | 5500838 | systems/texlive/tlnet/install-tl-unx.tar.gz
+2020/11/24 | 548423 | systems/win32/miktex/tm/packages/files.csv.lzma
+2020/11/24 | 548392 | systems/win32/miktex/tm/packages/next/files.csv.lzma
+2020/11/24 | 54664 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-2.9.tar.lzma
+2020/11/24 | 531486 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-2.9.tar.lzma
+2020/11/24 | 525148 | systems/win32/miktex/tm/packages/rojud.tar.lzma
+2020/11/24 | 52200 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma
+2020/11/24 | 51964 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-2.9.tar.lzma
+2020/11/24 | 51475 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma
+2020/11/24 | 513436 | systems/texlive/tlnet/archive/biblatex-swiss-legal.doc.r56991.tar.xz
+2020/11/24 | 51116 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma
+2020/11/24 | 511088 | systems/texlive/tlnet/archive/oup-authoring-template.doc.r56991.tar.xz
+2020/11/24 | 50857 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma
+2020/11/24 | 50511 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-2.9.tar.lzma
+2020/11/24 | 50435 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-2.9.tar.lzma
+2020/11/24 | 503617 | systems/win32/miktex/tm/packages/beamertheme-focus.tar.lzma
+2020/11/24 | 49817 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-2.9.tar.lzma
+2020/11/24 | 497928 | systems/win32/miktex/tm/packages/philosophersimprint.tar.lzma
+2020/11/24 | 495970 | systems/win32/miktex/tm/packages/windycity.tar.lzma
+2020/11/24 | 493 | macros/latex/contrib/ms/multitoc.asc
+2020/11/24 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
+2020/11/24 | 482420 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-2.9.tar.lzma
+2020/11/24 | 47677 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma
+2020/11/24 | 474181 | systems/win32/miktex/tm/packages/mluexercise.tar.lzma
+2020/11/24 | 473744 | systems/texlive/tlnet/archive/latexmk.doc.r56991.tar.xz
+2020/11/24 | 4698 | macros/latex/contrib/bewerbung/README_DE
+2020/11/24 | 468480 | systems/win32/miktex/tm/packages/arraycols.tar.lzma
+2020/11/24 | 46533 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma
+2020/11/24 | 461749 | systems/win32/miktex/tm/packages/next/miktex-doc.tar.lzma
+2020/11/24 | 45811 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-2.9.tar.lzma
+2020/11/24 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
+2020/11/24 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc
+2020/11/24 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
+2020/11/24 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
+2020/11/24 | 45369 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-2.9.tar.lzma
+2020/11/24 | 4525 | macros/latex/contrib/bewerbung/README
+2020/11/24 | 44980 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma
+2020/11/24 | 441 | macros/latex/contrib/ms/README.md
+2020/11/24 | 439037 | systems/win32/miktex/tm/packages/xkeyval.tar.lzma
+2020/11/24 | 431703 | macros/latex/contrib/prelim2e.zip
+2020/11/24 | 43082 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma
+2020/11/24 | 42913 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-2.9.tar.lzma
+2020/11/24 | 42632 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-2.9.tar.lzma
+2020/11/24 | 42626 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-2.9.tar.lzma
+2020/11/24 | 426244 | macros/latex/contrib/prelim2e/prelim2e.pdf
+2020/11/24 | 42238 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma
+2020/11/24 | 4223417 | systems/win32/miktex/tm/packages/tudscr.tar.lzma
+2020/11/24 | 42077 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-2.9.tar.lzma
+2020/11/24 | 41294 | macros/latex/contrib/bewerbung/argetabelle-example.pdf
+2020/11/24 | 41053 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma
+2020/11/24 | 40818 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-2.9.tar.lzma
+2020/11/24 | 400 | macros/latex/contrib/ms/multitoc.bug
+2020/11/24 | 397638 | systems/win32/miktex/tm/packages/muling.tar.lzma
+2020/11/24 | 39354 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-2.9.tar.lzma
+2020/11/24 | 39308 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64.tar.lzma
+2020/11/24 | 392345 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma
+2020/11/24 | 390184 | systems/texlive/tlnet/archive/muling.doc.r56991.tar.xz
+2020/11/24 | 3824 | systems/texlive/tlnet/archive/muling.source.r56991.tar.xz
+2020/11/24 | 37682 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-2.9.tar.lzma
+2020/11/24 | 36958 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin-x64.tar.lzma
+2020/11/24 | 369342 | systems/win32/miktex/tm/packages/beamertheme-pure-minimalistic.tar.lzma
+2020/11/24 | 36929 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma
+2020/11/24 | 368741 | systems/win32/miktex/tm/packages/autoaligne.tar.lzma
+2020/11/24 | 3686 | macros/latex/contrib/bewerbung/bewerbung-example.tex
+2020/11/24 | 36640 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-2.9.tar.lzma
+2020/11/24 | 3650415 | systems/win32/miktex/tm/packages/lshort-italian.tar.lzma
+2020/11/24 | 36373 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma
+2020/11/24 | 3627781 | systems/win32/miktex/tm/packages/acmart.tar.lzma
+2020/11/24 | 359664 | systems/texlive/tlnet/archive/asymptote.r56991.tar.xz
+2020/11/24 | 354602 | systems/win32/miktex/tm/packages/skdoc.tar.lzma
+2020/11/24 | 3537 | macros/latex/contrib/ms/multitoc.ins
+2020/11/24 | 3532 | macros/latex/contrib/ms/count1to.ins
+2020/11/24 | 35189 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin.tar.lzma
+2020/11/24 | 34788 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma
+2020/11/24 | 3430 | macros/latex/contrib/ms/everysel.ins
+2020/11/24 | 34184 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma
+2020/11/24 | 33484 | systems/texlive/tlnet/archive/pgf.source.r56991.tar.xz
+2020/11/24 | 33150 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin.tar.lzma
+2020/11/24 | 329621 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-2.9.tar.lzma
+2020/11/24 | 32922 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma
+2020/11/24 | 32338 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-2.9.tar.lzma
+2020/11/24 | 318790 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma
+2020/11/24 | 31217 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma
+2020/11/24 | 31216 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-2.9.tar.lzma
+2020/11/24 | 31041 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-2.9.tar.lzma
+2020/11/24 | 30933 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma
+2020/11/24 | 3088929 | systems/win32/miktex/tm/packages/kpfonts-otf.tar.lzma
+2020/11/24 | 3080848 | systems/win32/miktex/tm/packages/acrotex.tar.lzma
+2020/11/24 | 30682 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma
+2020/11/24 | 303331 | systems/win32/miktex/tm/packages/quotchap.tar.lzma
+2020/11/24 | 29732 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma
+2020/11/24 | 295367 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma
+2020/11/24 | 29155 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma
+2020/11/24 | 28916 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-2.9.tar.lzma
+2020/11/24 | 287634 | systems/win32/miktex/tm/packages/atenddvi.tar.lzma
+2020/11/24 | 28607 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-2.9.tar.lzma
+2020/11/24 | 282447 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma
+2020/11/24 | 280105 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma
+2020/11/24 | 279491 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-2.9.tar.lzma
+2020/11/24 | 27759 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma
+2020/11/24 | 27708 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-2.9.tar.lzma
+2020/11/24 | 27102 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-2.9.tar.lzma
+2020/11/24 | 27055 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-2.9.tar.lzma
+2020/11/24 | 27008 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-2.9.tar.lzma
+2020/11/24 | 26981 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-2.9.tar.lzma
+2020/11/24 | 2635853 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma
+2020/11/24 | 258850 | systems/win32/miktex/tm/packages/japanese-otf.tar.lzma
+2020/11/24 | 258223 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-2.9.tar.lzma
+2020/11/24 | 251 | macros/latex/contrib/bewerbung/anschrift.csv
+2020/11/24 | 2514452 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-2.9.tar.lzma
+2020/11/24 | 250931 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-2.9.tar.lzma
+2020/11/24 | 249040 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-2.9.tar.lzma
+2020/11/24 | 24890 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-2.9.tar.lzma
+2020/11/24 | 24841 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma
+2020/11/24 | 248099 | systems/win32/miktex/tm/packages/subfiles.tar.lzma
+2020/11/24 | 2440955 | systems/win32/miktex/tm/packages/xcharter.tar.lzma
+2020/11/24 | 243099 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma
+2020/11/24 | 24270154 | systems/texlive/tlnet/install-tl.zip
+2020/11/24 | 23952 | systems/texlive/tlnet/archive/nicematrix.r56991.tar.xz
+2020/11/24 | 2386940 | systems/texlive/tlnet/archive/asymptote.doc.r56991.tar.xz
+2020/11/24 | 23637 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma
+2020/11/24 | 235960 | systems/win32/miktex/tm/packages/numspell.tar.lzma
+2020/11/24 | 2341 | macros/latex/contrib/bewerbung/bewerbung.ins
+2020/11/24 | 23022 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma
+2020/11/24 | 22617 | systems/win32/miktex/tm/packages/miktex-misc.tar.lzma
+2020/11/24 | 2252 | systems/texlive/tlnet/archive/muling.r56991.tar.xz
+2020/11/24 | 2243228 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
+2020/11/24 | 224116 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma
+2020/11/24 | 218656 | systems/texlive/tlnet/archive/texlive-scripts.doc.r56986.tar.xz
+2020/11/24 | 21851 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-2.9.tar.lzma
+2020/11/24 | 2139286 | systems/win32/miktex/tm/packages/univie-ling.tar.lzma
+2020/11/24 | 212027 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma
+2020/11/24 | 210213 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-x64-2.9.tar.lzma
+2020/11/24 | 20814 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-2.9.tar.lzma
+2020/11/24 | 207411 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-2.9.tar.lzma
+2020/11/24 | 2056163 | systems/win32/miktex/tm/packages/optex.tar.lzma
+2020/11/24 | 204875 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma
+2020/11/24 | 204855 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma
+2020/11/24 | 204246 | systems/win32/miktex/tm/packages/next/miktex-console-bin-2.9.tar.lzma
+2020/11/24 | 202421 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma
+2020/11/24 | 2015 | macros/latex/contrib/bewerbung/argetabelle-example.tex
+2020/11/24 | 19946 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-2.9.tar.lzma
+2020/11/24 | 199230 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-2.9.tar.lzma
+2020/11/24 | 19882 | macros/latex/contrib/prelim2e/prelim2e.dtx
+2020/11/24 | 1985297 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma
+2020/11/24 | 197845 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-2.9.tar.lzma
+2020/11/24 | 195337 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma
+2020/11/24 | 194086 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-2.9.tar.lzma
+2020/11/24 | 19384882 | systems/texlive/tlnet/install-tl-windows.exe
+2020/11/24 | 192631 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-2.9.tar.lzma
+2020/11/24 | 18735 | macros/latex/contrib/ms/count1to.dtx
+2020/11/24 | 18305 | macros/latex/contrib/ms/multitoc.dtx
+2020/11/24 | 183044 | systems/win32/miktex/tm/packages/datax.tar.lzma
+2020/11/24 | 18148 | systems/texlive/tlnet/archive/biblatex-swiss-legal.r56991.tar.xz
+2020/11/24 | 179940 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma
+2020/11/24 | 179400 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-2.9.tar.lzma
+2020/11/24 | 178509 | systems/win32/miktex/tm/packages/pdfpc.tar.lzma
+2020/11/24 | 1782365 | systems/win32/miktex/tm/packages/ntgclass.tar.lzma
+2020/11/24 | 1776 | macros/latex/contrib/prelim2e/prelim2e.ins
+2020/11/24 | 17716 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma
+2020/11/24 | 17629 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma
+2020/11/24 | 1759247 | systems/win32/miktex/tm/packages/bookcover.tar.lzma
+2020/11/24 | 173898 | systems/win32/miktex/tm/packages/biblatex-german-legal.tar.lzma
+2020/11/24 | 1707142 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-2.9.tar.lzma
+2020/11/24 | 1696662 | systems/win32/miktex/tm/packages/swfigure.tar.lzma
+2020/11/24 | 166639 | systems/win32/miktex/tm/packages/orcidlink.tar.lzma
+2020/11/24 | 16647086 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
+2020/11/24 | 165516 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma
+2020/11/24 | 161078 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma
+2020/11/24 | 16059 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-2.9.tar.lzma
+2020/11/24 | 15989 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-2.9.tar.lzma
+2020/11/24 | 159525 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma
+2020/11/24 | 1595053 | systems/win32/miktex/tm/packages/nicematrix.tar.lzma
+2020/11/24 | 1561 | macros/latex/contrib/everyshi/everyshi.ins
+2020/11/24 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
+2020/11/24 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
+2020/11/24 | 151809 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma
+2020/11/24 | 151775 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-2.9.tar.lzma
+2020/11/24 | 15128 | systems/texlive/tlnet/archive/oup-authoring-template.r56991.tar.xz
+2020/11/24 | 1492284 | systems/texlive/tlnet/archive/nicematrix.doc.r56991.tar.xz
+2020/11/24 | 148575 | macros/latex/contrib/bewerbung/bewerbung-example.pdf
+2020/11/24 | 148406 | systems/win32/miktex/tm/packages/first-packages.tar.lzma
+2020/11/24 | 146832 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-2.9.tar.lzma
+2020/11/24 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
+2020/11/24 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
+2020/11/24 | 144417 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-2.9.tar.lzma
+2020/11/24 | 1427779 | macros/latex/contrib/elsarticle.zip
+2020/11/24 | 14162 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-x64-2.9.tar.lzma
+2020/11/24 | 1415727 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma
+2020/11/24 | 13674 | systems/unix/tex-fpc/README
+2020/11/24 | 136405 | macros/latex/contrib/everyshi.zip
+2020/11/24 | 136160 | systems/texlive/tlnet/archive/tex4ht.doc.r56988.tar.xz
+2020/11/24 | 135907 | macros/latex/contrib/everyshi/everyshi.pdf
+2020/11/24 | 133476 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-2.9.tar.lzma
+2020/11/24 | 13330 | macros/latex/contrib/everyshi/everyshi.dtx
+2020/11/24 | 13295 | macros/latex/contrib/ms/everysel.dtx
+2020/11/24 | 13289 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-2.9.tar.lzma
+2020/11/24 | 132064 | systems/texlive/tlnet/archive/texlive-scripts.r56986.tar.xz
+2020/11/24 | 1317531 | systems/win32/miktex/tm/packages/hyperxmp.tar.lzma
+2020/11/24 | 130511 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma
+2020/11/24 | 130322 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma
+2020/11/24 | 1302290 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma
+2020/11/24 | 1274537 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-2.9.tar.lzma
+2020/11/24 | 1263805 | systems/win32/miktex/tm/packages/acro.tar.lzma
+2020/11/24 | 1245395 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma
+2020/11/24 | 1240780 | systems/win32/miktex/tm/packages/nameauth.tar.lzma
+2020/11/24 | 1229503 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma
+2020/11/24 | 1228249 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma
+2020/11/24 | 122823 | macros/latex/contrib/ut-thesis.zip
+2020/11/24 | 1216544 | systems/win32/miktex/tm/packages/babel-greek.tar.lzma
+2020/11/24 | 12120 | systems/texlive/tlnet/archive/pdfjam.r56991.tar.xz
+2020/11/24 | 118973 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-2.9.tar.lzma
+2020/11/24 | 1168164 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-2.9.tar.lzma
+2020/11/24 | 116705 | macros/latex/contrib/bewerbung/bewerbung.dtx
+2020/11/24 | 115942 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-2.9.tar.lzma
+2020/11/24 | 1153 | systems/win32/miktex/tm/packages/next/pr.ini
+2020/11/24 | 1146183 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma
+2020/11/24 | 1145461 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma
+2020/11/24 | 114402 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma
+2020/11/24 | 1142323 | systems/win32/miktex/tm/packages/tuda-ci.tar.lzma
+2020/11/24 | 113870 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma
+2020/11/24 | 11369660 | systems/win32/miktex/tm/packages/pgf.tar.lzma
+2020/11/24 | 1125036 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-2.9.tar.lzma
+2020/11/24 | 1102452 | systems/win32/miktex/tm/packages/teubner.tar.lzma
+2020/11/24 | 110188 | systems/texlive/tlnet/archive/pdfjam.doc.r56991.tar.xz
+2020/11/24 | 108945 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma
+2020/11/24 | 1076055 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma
+2020/11/24 | 1075427 | systems/win32/miktex/tm/packages/chemmacros.tar.lzma
+2020/11/24 | 10711840 | systems/texlive/tlnet/archive/pgf.doc.r56991.tar.xz
+2020/11/24 | 10461960 | systems/win32/miktex/tm/packages/reledmac.tar.lzma
+2020/11/24 | 104488 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma
+2020/11/24 | 1037176 | macros/latex/contrib/ms.zip
+2020/11/24 | 102883 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma
+2020/11/24 | 101593 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma
2020/11/23 | 99 | graphics/asymptote/base/asy_filetype.vim
2020/11/23 | 998 | graphics/asymptote/GUI/res/icons/chevron-with-circle-right.svg
2020/11/23 | 9989 | graphics/pgf/base/tex/pgfmathfunctions.code.tex
@@ -5,7 +319,6 @@
2020/11/23 | 9945 | graphics/asymptote/GUI/pyUIClass/custMatTransform.py
2020/11/23 | 992 | graphics/pgf/base/tex/pgfcore.code.tex
2020/11/23 | 9923 | graphics/asymptote/profiler.h
-2020/11/23 | 99227 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-2.9.tar.lzma
2020/11/23 | 990 | graphics/asymptote/examples/RiemannSphere.asy
2020/11/23 | 98 | graphics/asymptote/GUI/res/icons/openpolygon.asy
2020/11/23 | 98 | graphics/asymptote/GUI/res/icons/opencurve.asy
@@ -15,7 +328,6 @@
2020/11/23 | 98820 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-shapes.tex
2020/11/23 | 986 | graphics/asymptote/predicates.h
2020/11/23 | 9867 | graphics/asymptote/runstring.in
-2020/11/23 | 98597 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma
2020/11/23 | 9836 | graphics/asymptote/doc/asymptote.sty
2020/11/23 | 982 | graphics/pgf/base/lua/graphdrawing/pgf/gd/layered/NodeRankingMinimumHeight.lua
2020/11/23 | 9829 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-backgrounds.tex
@@ -27,7 +339,6 @@
2020/11/23 | 976 | graphics/pgf/base/lua/graphdrawing/pgf/gd/lib/Stack.lua
2020/11/23 | 974 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/energybased/multilevelmixer/BarycenterPlacer.lua
2020/11/23 | 974 | graphics/asymptote/prc/Makefile
-2020/11/23 | 97453 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-2.9.tar.lzma
2020/11/23 | 973 | graphics/pgf/base/source/InterfaceFromOGDF.h
2020/11/23 | 973 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/energybased/multilevelmixer/IndependentSetMerger.lua
2020/11/23 | 973 | graphics/asymptote/examples/fequlogo.asy
@@ -42,13 +353,11 @@
2020/11/23 | 9688 | graphics/asymptote/base/rationalSimplex.asy
2020/11/23 | 967 | graphics/pgf/base/lua/graphdrawing/pgf/gd/deprecated/Cluster.lua
2020/11/23 | 966 | graphics/asymptote/tests/array/solve.asy
-2020/11/23 | 965655 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-2.9.tar.lzma
2020/11/23 | 9652 | graphics/pgf/base/lua/graphdrawing/pgf/gd/deprecated/Graph.lua
2020/11/23 | 964 | graphics/asymptote/GUI/xasyTransform.py
2020/11/23 | 964 | graphics/asymptote/GUI/res/icons/magnifying-glass.svg
2020/11/23 | 9631 | graphics/pgf/base/doc/text-en/pgfmanual-en-gd-binding-layer.tex
2020/11/23 | 962 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/energybased/multilevelmixer/MatchingMerger.lua
-2020/11/23 | 96263 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-2.9.tar.lzma
2020/11/23 | 9614 | graphics/pgf/base/tex/tikzlibrarycircuits.ee.IEC.code.tex
2020/11/23 | 95 | graphics/asymptote/prc/test.asy
2020/11/23 | 9574 | graphics/asymptote/triple.h
@@ -64,14 +373,10 @@
2020/11/23 | 946 | graphics/pgf/base/tex/tikzlibrarycircuits.logic.code.tex
2020/11/23 | 946 | graphics/pgf/base/lua/graphdrawing/pgf/gd/trees/library.lua
2020/11/23 | 946 | graphics/asymptote/examples/animations/cube.asy
-2020/11/23 | 94606 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-2.9.tar.lzma
-2020/11/23 | 94444 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-2.9.tar.lzma
2020/11/23 | 93 | graphics/pgf/base/doc/licenses/manifest-documentation.txt
2020/11/23 | 93853 | graphics/pgf/base/tex/tikzlibrarydatavisualization.code.tex
2020/11/23 | 936 | graphics/asymptote/tests/array/array.asy
2020/11/23 | 93690 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-circuits.tex
-2020/11/23 | 93666 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-2.9.tar.lzma
-2020/11/23 | 93589 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma
2020/11/23 | 934 | graphics/pgf/base/lua/graphdrawing/pgf/gd/phylogenetics/library.lua
2020/11/23 | 9328 | graphics/asymptote/doc/FAQ/bfnnconv.pl
2020/11/23 | 931 | graphics/pgf/base/lua/graphdrawing/pgf/gd/experimental/evolving/library.lua
@@ -139,29 +444,24 @@
2020/11/23 | 873 | graphics/pgf/base/lua/graphdrawing/pgf/gd/planar/List.lua
2020/11/23 | 873 | graphics/pgf/base/doc/version-for-pdftex/en/Makefile
2020/11/23 | 873 | graphics/pgf/base/doc/version-for-luatex/en/Makefile
-2020/11/23 | 87399 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma
2020/11/23 | 8724 | graphics/pgf/base/tex/tikzlibrarycircuits.code.tex
2020/11/23 | 86 | graphics/asymptote/doc/cylinderskeleton.asy
2020/11/23 | 868 | graphics/asymptote/examples/twistedtubes.asy
2020/11/23 | 868 | graphics/asymptote/doc/imagecontour.asy
2020/11/23 | 866 | graphics/asymptote/examples/xxsq01x-1.asy
-2020/11/23 | 86663 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-2.9.tar.lzma
2020/11/23 | 86658 | graphics/pgf/base/tex/tikzlibrarygraphs.code.tex
2020/11/23 | 8661 | graphics/asymptote/base/plain_pens.asy
2020/11/23 | 8652288 | graphics/asymptote/binaries/i386-windows/texlive/asy.exe
-2020/11/23 | 863 | systems/win32/miktex/tm/packages/pr.ini
2020/11/23 | 8621568 | graphics/asymptote/binaries/x86_64-windows/texlive/asy.exe
2020/11/23 | 861 | graphics/asymptote/examples/orthocenter.asy
2020/11/23 | 8612 | graphics/pgf/base/lua/graphdrawing/pgf/gd/deprecated/Edge.lua
2020/11/23 | 86071 | graphics/pgf/base/tex/pgflibraryfpu.code.tex
2020/11/23 | 8605 | graphics/pgf/base/lua/graphdrawing/pgf/gd/model/Path_arced.lua
-2020/11/23 | 8592 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma
2020/11/23 | 856 | graphics/asymptote/examples/animations/sphere.asy
2020/11/23 | 85532 | graphics/asymptote/base/three.asy
2020/11/23 | 85454 | graphics/pgf/base/tex/pgflibraryshapes.gates.logic.US.code.tex
2020/11/23 | 853 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/layered/GreedyCycleRemoval.lua
2020/11/23 | 850 | graphics/asymptote/GUI/res/icons/android-folder-open.svg
-2020/11/23 | 84910 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-2.9.tar.lzma
2020/11/23 | 8471 | graphics/pgf/base/tex/pgfmathutil.code.tex
2020/11/23 | 845 | graphics/asymptote/envcompleter.h
2020/11/23 | 844 | graphics/asymptote/GUI/res/icons/android-radio-button-on.svg
@@ -201,10 +501,8 @@
2020/11/23 | 80 | graphics/pgf/base/doc/version-for-dvipdfmx/en/plots/pgf-x.gnuplot
2020/11/23 | 80 | graphics/pgf/base/doc/version-for-dvipdfm/en/plots/pgf-x.gnuplot
2020/11/23 | 8096 | graphics/asymptote/runhistory.cc
-2020/11/23 | 808895 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma
2020/11/23 | 8078 | macros/generic/schemata/README.md
2020/11/23 | 806 | graphics/asymptote/GUI/res/icons/android-refresh.svg
-2020/11/23 | 80689 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma
2020/11/23 | 802 | graphics/pgf/base/lua/graphdrawing/pgf/gd/examples/library.lua
2020/11/23 | 802 | graphics/asymptote/GUI/res/icons/android-camera.svg
2020/11/23 | 802 | graphics/asymptote/examples/vertexshading.asy
@@ -223,7 +521,6 @@
2020/11/23 | 787 | graphics/pgf/base/tex/t-pgfrcs.tex
2020/11/23 | 78671 | graphics/pgf/base/doc/images/brave-gnu-world-logo.jpg
2020/11/23 | 785 | graphics/pgf/base/doc/version-for-luatex/en/pgfmanual.tex
-2020/11/23 | 78402 | systems/win32/miktex/tm/packages/next/miktex-png-bin-2.9.tar.lzma
2020/11/23 | 782 | graphics/pgf/base/tex/LUA_CODING_STYLE
2020/11/23 | 780 | graphics/asymptote/GUI/res/icons/check.svg
2020/11/23 | 77 | graphics/asymptote/tests/gc/string.asy
@@ -231,7 +528,6 @@
2020/11/23 | 7789 | graphics/pgf/base/tex/pgfmathfunctions.random.code.tex
2020/11/23 | 7778 | graphics/pgf/base/tex/pgfsyssoftpath.code.tex
2020/11/23 | 7763 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-folding.tex
-2020/11/23 | 77237 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma
2020/11/23 | 771 | graphics/pgf/base/doc/version-for-tex4ht/en/Makefile
2020/11/23 | 770 | graphics/pgf/base/tex/tikzlibrarypatterns.code.tex
2020/11/23 | 770 | graphics/asymptote/drawlayer.h
@@ -247,7 +543,6 @@
2020/11/23 | 762 | graphics/asymptote/examples/clockarray.asy
2020/11/23 | 7623 | macros/latex/contrib/nameauth/README.md
2020/11/23 | 759 | graphics/asymptote/GUI/res/icons/plus-round.svg
-2020/11/23 | 7569 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-2.9.tar.lzma
2020/11/23 | 75576 | graphics/asymptote/GUI/windows/window1.ui
2020/11/23 | 755166 | macros/generic/schemata.zip
2020/11/23 | 754 | graphics/asymptote/GUI/res/icons/circle.svg
@@ -259,19 +554,15 @@
2020/11/23 | 746 | graphics/asymptote/tests/array/sort.asy
2020/11/23 | 743 | graphics/asymptote/examples/xxsq01.asy
2020/11/23 | 7435 | graphics/asymptote/name.cc
-2020/11/23 | 74256 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma
2020/11/23 | 7412 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-3d.tex
2020/11/23 | 7407 | graphics/asymptote/base/graph_splinetype.asy
-2020/11/23 | 74048 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma
2020/11/23 | 73 | graphics/pgf/base/lua/graphdrawing/pgf/gd/planar.lua
2020/11/23 | 739 | graphics/asymptote/examples/condor.asy
2020/11/23 | 7390 | graphics/pgf/base/doc/text-en/pgfmanual-en-installation.tex
-2020/11/23 | 738797 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-2.9.tar.lzma
2020/11/23 | 737 | graphics/asymptote/tests/array/determinant.asy
2020/11/23 | 734 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/layered/GreedyInsertHeuristic.lua
2020/11/23 | 734 | graphics/asymptote/examples/quilt.asy
2020/11/23 | 73435 | graphics/asymptote/GL/glxew.h
-2020/11/23 | 73423 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma
2020/11/23 | 7327 | graphics/pgf/base/tex/pgfautomata.sty
2020/11/23 | 73254 | graphics/asymptote/runarray.cc
2020/11/23 | 731 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/energybased/multilevelmixer/MedianPlacer.lua
@@ -282,10 +573,9 @@
2020/11/23 | 72 | graphics/asymptote/tests/gc/pen.asy
2020/11/23 | 729 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/layered/BarycenterHeuristic.lua
2020/11/23 | 729 | graphics/asymptote/base/labelpath.asy
-2020/11/23 | 72879 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-2.9.tar.lzma
+2020/11/23 | 727 | systems/unix/tex-fpc/tech/mktech
2020/11/23 | 727 | graphics/asymptote/examples/fermi.asy
2020/11/23 | 7275 | graphics/pgf/base/tex/tikzlibrarygraphdrawing.code.tex
-2020/11/23 | 72710 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma
2020/11/23 | 72687 | graphics/asymptote/GUI/Window1.py
2020/11/23 | 7256 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-arrows.tex
2020/11/23 | 7251 | graphics/pgf/base/tex/pgfutil-common-lists.tex
@@ -296,11 +586,9 @@
2020/11/23 | 722 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/layered/MedianHeuristic.lua
2020/11/23 | 720 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/layered/SplitHeuristic.lua
2020/11/23 | 7189 | graphics/asymptote/base/plain.asy
-2020/11/23 | 71729 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-2.9.tar.lzma
2020/11/23 | 71722 | graphics/pgf/base/tex/pgfmoduledecorations.code.tex
2020/11/23 | 7167 | graphics/pgf/base/lua/graphdrawing/pgf/gd/control/Orientation.lua
2020/11/23 | 7163 | graphics/pgf/base/lua/graphdrawing/pgf/gd/trees/ChildSpec.lua
-2020/11/23 | 71620 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma
2020/11/23 | 714 | graphics/pgf/base/doc/version-for-xetex/en/Makefile
2020/11/23 | 714 | graphics/asymptote/mod.h
2020/11/23 | 714 | graphics/asymptote/examples/unitoctantx.asy
@@ -317,11 +605,9 @@
2020/11/23 | 70751 | graphics/asymptote/prc/oPRCFile.cc
2020/11/23 | 701 | graphics/pgf/base/doc/version-for-dvipdfm/en/Makefile
2020/11/23 | 7011 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/QuadTree.lua
-2020/11/23 | 70119 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma
2020/11/23 | 70102 | graphics/asymptote/base/graph3.asy
2020/11/23 | 700 | graphics/asymptote/GUI/locale/th/LC_MESSAGES/base.po
2020/11/23 | 6995 | graphics/pgf/base/tex/pgflibrarytimelines.code.tex
-2020/11/23 | 69712 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma
2020/11/23 | 695 | graphics/asymptote/GUI/res/icons/android-close.svg
2020/11/23 | 6958 | graphics/pgf/base/tex/pgfmathode.code.tex
2020/11/23 | 6951 | graphics/asymptote/config.h.in
@@ -342,13 +628,11 @@
2020/11/23 | 680 | graphics/asymptote/tests/array/delete.asy
2020/11/23 | 679 | graphics/asymptote/examples/genusthree.asy
2020/11/23 | 6789 | graphics/asymptote/drawlabel.cc
-2020/11/23 | 678094 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma
2020/11/23 | 677 | graphics/asymptote/doc/Bode.asy
2020/11/23 | 6774 | graphics/pgf/base/lua/graphdrawing/pgf/gd/layered/Ranking.lua
2020/11/23 | 6762 | graphics/pgf/base/tex/pgfsys-common-pdf-via-dvi.def
2020/11/23 | 674 | graphics/asymptote/GUI/res/icons/android-delete.svg
2020/11/23 | 674 | graphics/asymptote/examples/sqrtx01.asy
-2020/11/23 | 67425 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-2.9.tar.lzma
2020/11/23 | 673 | graphics/asymptote/GUI/res/icons/save.svg
2020/11/23 | 6725 | graphics/asymptote/guide.h
2020/11/23 | 66 | graphics/asymptote/examples/shade.asy
@@ -362,11 +646,11 @@
2020/11/23 | 6650 | graphics/asymptote/getopt.h
2020/11/23 | 663 | graphics/pgf/base/source/MedianPlacer_script.h
2020/11/23 | 6634 | graphics/asymptote/simpson.cc
+2020/11/23 | 662 | systems/unix/tex-fpc/MFT/iby/getiby
2020/11/23 | 6616 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-trees.tex
2020/11/23 | 66153 | graphics/pgf/base/doc/text-en/pgfmanual-en-license.tex
2020/11/23 | 65 | graphics/asymptote/tests/gc/guide.asy
-2020/11/23 | 65984 | systems/win32/miktex/tm/packages/next/miktex-web-bin-2.9.tar.lzma
-2020/11/23 | 65969 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-x64-2.9.tar.lzma
+2020/11/23 | 6595 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
2020/11/23 | 6593 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-fit.tex
2020/11/23 | 658 | graphics/pgf/base/doc/text-en/pgfmanual-en-gd-circular.tex
2020/11/23 | 658 | graphics/asymptote/examples/NURBScurve.asy
@@ -374,18 +658,15 @@
2020/11/23 | 657 | graphics/asymptote/examples/lowupint.asy
2020/11/23 | 657 | graphics/asymptote/examples/100d.views
2020/11/23 | 657 | graphics/asymptote/base/reload.js
-2020/11/23 | 65770 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-2.9.tar.lzma
2020/11/23 | 655 | graphics/pgf/base/source/SolarPlacer_script.h
2020/11/23 | 6552 | graphics/asymptote/GUI/windows/labelTextEditor.ui
2020/11/23 | 6550 | graphics/pgf/base/lua/graphdrawing/pgf/gd/model/Coordinate.lua
2020/11/23 | 654 | graphics/asymptote/fpu.h
2020/11/23 | 654 | graphics/asymptote/examples/limit.asy
2020/11/23 | 6529 | graphics/pgf/base/lua/graphdrawing/pgf/gd/control/doc.lua
-2020/11/23 | 65271 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma
2020/11/23 | 6525 | graphics/asymptote/drawfill.h
2020/11/23 | 650 | graphics/asymptote/prcfile.h
2020/11/23 | 6503 | graphics/asymptote/tests/types/constructor.asy
-2020/11/23 | 64438 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-2.9.tar.lzma
2020/11/23 | 644097 | macros/generic/schemata/schemata.pdf
2020/11/23 | 641 | graphics/asymptote/examples/pOrbital.asy
2020/11/23 | 639 | graphics/asymptote/tests/arith/transform.asy
@@ -394,9 +675,7 @@
2020/11/23 | 637 | graphics/asymptote/GUI/res/icons/android-arrow-forward.svg
2020/11/23 | 637 | graphics/asymptote/GUI/res/icons/android-arrow-back.svg
2020/11/23 | 6364 | graphics/pgf/base/doc/text-en/pgfmanual-en-base-quick.tex
-2020/11/23 | 63604 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-2.9.tar.lzma
2020/11/23 | 63520 | graphics/asymptote/base/graph.asy
-2020/11/23 | 63490 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-2.9.tar.lzma
2020/11/23 | 633 | graphics/pgf/base/tex/t-pgfkey.tex
2020/11/23 | 633 | graphics/asymptote/GUI/res/icons/android-done.svg
2020/11/23 | 63314 | graphics/asymptote/GL/wglew.h
@@ -405,11 +684,9 @@
2020/11/23 | 631 | graphics/asymptote/locate.h
2020/11/23 | 63197 | graphics/pgf/base/doc/images/brave-gnu-world-logo.eps
2020/11/23 | 6318 | graphics/asymptote/doc/leastsquares.dat
-2020/11/23 | 63181 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-2.9.tar.lzma
2020/11/23 | 63136 | graphics/asymptote/doc/FAQ/asy-faq.info
2020/11/23 | 630 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/SpringLayouts.lua
2020/11/23 | 630 | graphics/asymptote/base/shaders/vertex.glsl
-2020/11/23 | 63010 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma
2020/11/23 | 6300 | graphics/asymptote/asymptote.nsi
2020/11/23 | 62 | graphics/asymptote/tests/gc/array.asy
2020/11/23 | 62 | graphics/asymptote/revision.cc
@@ -423,16 +700,13 @@
2020/11/23 | 62618 | graphics/pgf/base/doc/text-en/pgfmanual-en-pgfsys-animations.tex
2020/11/23 | 6254 | graphics/pgf/base/lua/graphdrawing/pgf/gd/model/Collection.lua
2020/11/23 | 62448 | graphics/pgf/base/tex/pgfsys-common-svg.def
-2020/11/23 | 623786 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-2.9.tar.lzma
2020/11/23 | 62281 | graphics/pgf/base/tex/pgflibraryshapes.multipart.code.tex
2020/11/23 | 6223 | graphics/pgf/base/lua/graphdrawing/pgf/gd/lib/PriorityQueue.lua
2020/11/23 | 620 | graphics/pgf/base/lua/graphdrawing/pgf/gd/circular/library.lua
2020/11/23 | 620 | graphics/asymptote/tests/arith/integer.asy
2020/11/23 | 61 | graphics/asymptote/examples/axialshade.asy
2020/11/23 | 6189 | graphics/pgf/base/doc/text-en/pgfmanual-en-base-design.tex
-2020/11/23 | 61837 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma
2020/11/23 | 617 | graphics/asymptote/doc/logo.asy
-2020/11/23 | 617436 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma
2020/11/23 | 616 | graphics/asymptote/examples/Gouraudcontour.asy
2020/11/23 | 6169 | graphics/asymptote/base/plain_strings.asy
2020/11/23 | 61664 | graphics/pgf/base/doc/text-en/pgfmanual-en-base-animations.tex
@@ -444,6 +718,7 @@
2020/11/23 | 608 | graphics/asymptote/examples/spline.asy
2020/11/23 | 608 | graphics/asymptote/base/size10.asy
2020/11/23 | 60866 | graphics/asymptote/runtime.cc
+2020/11/23 | 606 | macros/latex/contrib/elsarticle/doc/makefile
2020/11/23 | 60544 | graphics/pgf/base/tex/pgfsys.code.tex
2020/11/23 | 604 | graphics/asymptote/doc/flow.asy
2020/11/23 | 60485 | graphics/pgf/base/doc/images/brave-gnu-world-logo-mask.jpg
@@ -457,11 +732,8 @@
2020/11/23 | 599 | graphics/asymptote/GUI/xasyStrings.py
2020/11/23 | 598 | graphics/asymptote/examples/integraltest.asy
2020/11/23 | 5984 | graphics/pgf/base/lua/graphdrawing/pgf/gd/lib/Simplifiers.lua
-2020/11/23 | 598219 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma
2020/11/23 | 597 | graphics/pgf/base/lua/graphdrawing/pgf/gd/routing/library.lua
-2020/11/23 | 597318 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma
2020/11/23 | 59652 | graphics/pgf/base/tex/pgfsysanimations.code.tex
-2020/11/23 | 59550 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64.tar.lzma
2020/11/23 | 5923 | graphics/pgf/base/lua/graphdrawing/pgf/gd/model/Edge.lua
2020/11/23 | 591 | graphics/pgf/base/source/GreedyInsertHeuristic_script.h
2020/11/23 | 591 | graphics/asymptote/examples/sinc.asy
@@ -475,14 +747,11 @@
2020/11/23 | 58801 | graphics/pgf/base/tex/pgflibraryarrows.meta.code.tex
2020/11/23 | 5879 | graphics/asymptote/runfile.in
2020/11/23 | 586 | graphics/pgf/base/source/module_script.h
-2020/11/23 | 58632 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma
2020/11/23 | 5849 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-fixedpoint.tex
-2020/11/23 | 58495 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-2.9.tar.lzma
2020/11/23 | 582 | graphics/asymptote/examples/cos3.asy
2020/11/23 | 581 | graphics/asymptote/examples/BezierSaddle.asy
2020/11/23 | 5811 | graphics/asymptote/drawpath3.h
2020/11/23 | 580 | graphics/asymptote/examples/xsin1x.asy
-2020/11/23 | 580935 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-2.9.tar.lzma
2020/11/23 | 57 | graphics/asymptote/GUI/requirements.txt
2020/11/23 | 579 | graphics/asymptote/examples/sqrtx01y1.asy
2020/11/23 | 579 | graphics/asymptote/examples/sin3.asy
@@ -501,14 +770,11 @@
2020/11/23 | 5733 | graphics/asymptote/item.h
2020/11/23 | 572 | graphics/asymptote/examples/curvedlabel3.asy
2020/11/23 | 57255 | graphics/pgf/base/tex/pgfmanual-en-macros.tex
-2020/11/23 | 57227 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma
2020/11/23 | 57126 | graphics/asymptote/runpicture.cc
2020/11/23 | 570 | graphics/asymptote/examples/fillcontour.asy
2020/11/23 | 57081 | graphics/pgf/base/doc/images/brave-gnu-world-logo.25.jpg
2020/11/23 | 5693 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/jedi/algorithms/SocialGravityDegree.lua
2020/11/23 | 56766 | macros/latex/contrib/nameauth/examples.tex
-2020/11/23 | 567104 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma
-2020/11/23 | 56656 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-2.9.tar.lzma
2020/11/23 | 56646 | graphics/asymptote/GUI/pyUIClass/window1.py
2020/11/23 | 5627 | graphics/asymptote/doc/FAQ/m-info.pl
2020/11/23 | 561 | graphics/pgf/base/doc/version-for-luatex/en/plots/pgf-parametric-example.table
@@ -516,33 +782,24 @@
2020/11/23 | 561 | graphics/pgf/base/doc/version-for-dvipdfmx/en/plots/pgf-parametric-example-cut.table
2020/11/23 | 56037 | graphics/asymptote/base/smoothcontour3.asy
2020/11/23 | 5601 | graphics/pgf/base/lua/graphdrawing/pgf/gd/deprecated/Vector.lua
-2020/11/23 | 56012 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin.tar.lzma
-2020/11/23 | 55968 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma
2020/11/23 | 5595 | graphics/asymptote/bezierpatch.h
2020/11/23 | 558 | graphics/asymptote/examples/floatingdisk.asy
2020/11/23 | 55873 | graphics/pgf/base/doc/text-en/pgfmanual-en-base-nodes.tex
-2020/11/23 | 55829 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-2.9.tar.lzma
2020/11/23 | 557 | graphics/asymptote/examples/Pythagoras.asy
-2020/11/23 | 557911 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-2.9.tar.lzma
2020/11/23 | 5578 | graphics/asymptote/drawpath3.cc
2020/11/23 | 5573 | graphics/pgf/base/lua/graphdrawing/pgf/gd/lib/PathLengths.lua
-2020/11/23 | 55605 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma
2020/11/23 | 5546 | graphics/pgf/base/tex/pgfsys-common-pdf.def
2020/11/23 | 5543 | graphics/asymptote/examples/filesurface.dat
2020/11/23 | 553 | graphics/pgf/base/source/ogdf_script.c++
2020/11/23 | 5537 | graphics/asymptote/examples/cpkcolors.asy
2020/11/23 | 5515 | graphics/pgf/base/doc/text-en/pgfmanual-en-base-layers.tex
2020/11/23 | 5510 | graphics/pgf/base/tex/pgfsys-dvisvgm.def
-2020/11/23 | 550966 | systems/win32/miktex/tm/packages/next/files.csv.lzma
-2020/11/23 | 550962 | systems/win32/miktex/tm/packages/files.csv.lzma
2020/11/23 | 5505 | graphics/asymptote/interact.cc
-2020/11/23 | 5500537 | systems/texlive/tlnet/install-tl-unx.tar.gz
2020/11/23 | 54 | graphics/asymptote/tests/gc/funcall.asy
2020/11/23 | 549 | graphics/pgf/base/source/MedianHeuristic_script.h
2020/11/23 | 5493 | graphics/pgf/base/tex/tikzlibrarydecorations.code.tex
2020/11/23 | 548 | graphics/asymptote/examples/equilchord.asy
2020/11/23 | 547 | graphics/asymptote/examples/tetra.asy
-2020/11/23 | 54664 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-2.9.tar.lzma
2020/11/23 | 544 | graphics/pgf/base/doc/version-for-luatex/en/plots/pgf-sin.table
2020/11/23 | 544 | graphics/pgf/base/doc/version-for-dvipdfmx/en/plots/pgf-sin.table
2020/11/23 | 5443 | graphics/asymptote/main.cc
@@ -563,7 +820,7 @@
2020/11/23 | 533 | graphics/pgf/base/doc/version-for-dvipdfmx/en/plots/pgf-x.table
2020/11/23 | 532 | graphics/pgf/base/tex/tikzlibrarygraphdrawing.evolving.code.tex
2020/11/23 | 532 | graphics/pgf/base/doc/version-for-dvips/en/pgfmanual-test.tex
-2020/11/23 | 531487 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-2.9.tar.lzma
+2020/11/23 | 531 | systems/unix/tex-fpc/MFT/iby/sappho.tex
2020/11/23 | 52 | graphics/asymptote/doc/square.asy
2020/11/23 | 5297 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/library.lua
2020/11/23 | 5292 | graphics/pgf/base/tex/tikzexternal.sty
@@ -584,7 +841,6 @@
2020/11/23 | 52250 | graphics/pgf/base/doc/text-en/pgfmanual-en-tikz-coordinates.tex
2020/11/23 | 5222 | graphics/pgf/base/lua/graphdrawing/pgf/gd/experimental/evolving/SupergraphVertexSplitOptimization.lua
2020/11/23 | 5220 | graphics/pgf/base/tex/pgflibrarydecorations.markings.code.tex
-2020/11/23 | 52201 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma
2020/11/23 | 521 | graphics/pgf/base/tex/pgfmath.code.tex
2020/11/23 | 521 | graphics/asymptote/doc/Hobbycontrol.asy
2020/11/23 | 5216 | graphics/asymptote/examples/mosaic.asy
@@ -603,12 +859,10 @@
2020/11/23 | 5204 | graphics/pgf/base/source/InterfaceFromC++.c++
2020/11/23 | 519 | graphics/asymptote/examples/extrudedcontour.asy
2020/11/23 | 5196 | graphics/pgf/base/tex/pgfcorerdf.code.tex
-2020/11/23 | 51964 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-2.9.tar.lzma
2020/11/23 | 518 | graphics/asymptote/doc/CDlabel.asy
2020/11/23 | 517 | graphics/pgf/base/tex/pgflibraryshapes.code.tex
2020/11/23 | 5151 | graphics/asymptote/GUI/labelEditor.py
2020/11/23 | 5149 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/ControlCoarsening.lua
-2020/11/23 | 51475 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma
2020/11/23 | 51432 | graphics/asymptote/prc/oPRCFile.h
2020/11/23 | 513 | graphics/pgf/base/doc/version-for-xetex/en/plots/pgf-sin.table
2020/11/23 | 513 | graphics/pgf/base/doc/version-for-vtex/en/plots/pgf-sin.table
@@ -620,12 +874,10 @@
2020/11/23 | 513 | graphics/pgf/base/doc/text-en/plots/pgf-sin.table
2020/11/23 | 513 | graphics/asymptote/examples/buildcycle.asy
2020/11/23 | 5111 | graphics/asymptote/runsystem.in
-2020/11/23 | 51117 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma
2020/11/23 | 5104 | graphics/asymptote/pair.h
2020/11/23 | 50 | graphics/asymptote/base/babel.asy
2020/11/23 | 509 | graphics/asymptote/examples/dimension.asy
2020/11/23 | 509635 | macros/latex/contrib/nicematrix/nicematrix.dtx
-2020/11/23 | 50857 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma
2020/11/23 | 5082 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/jedi/base/PathLengthsFW.lua
2020/11/23 | 507 | graphics/pgf/base/doc/version-for-xetex/en/plots/pgf-x.table
2020/11/23 | 507 | graphics/pgf/base/doc/version-for-xetex/en/plots/pgf-exp.table
@@ -648,10 +900,8 @@
2020/11/23 | 5064 | graphics/asymptote/runhistory.in
2020/11/23 | 50600 | graphics/asymptote/GUI/xasy2asy.py
2020/11/23 | 5052 | graphics/asymptote/errormsg.h
-2020/11/23 | 50509 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-2.9.tar.lzma
2020/11/23 | 5048 | graphics/asymptote/GUI/xasyOptions.py
2020/11/23 | 50437 | graphics/asymptote/gsl.cc
-2020/11/23 | 50436 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-2.9.tar.lzma
2020/11/23 | 503 | graphics/pgf/base/tex/pgf.tex
2020/11/23 | 503 | graphics/asymptote/GUI/xasy.py
2020/11/23 | 503 | graphics/asymptote/examples/animations/embeddedmovie.asy
@@ -668,7 +918,6 @@
2020/11/23 | 4992 | graphics/asymptote/base/tube.asy
2020/11/23 | 498 | graphics/asymptote/examples/fano.asy
2020/11/23 | 498 | graphics/asymptote/doc/penfunctionimage.asy
-2020/11/23 | 49818 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-2.9.tar.lzma
2020/11/23 | 4972 | graphics/asymptote/memory.h
2020/11/23 | 496 | graphics/pgf/base/doc/version-for-luatex/pgfmanual-luatex.cfg
2020/11/23 | 496 | graphics/asymptote/examples/bars3.asy
@@ -681,7 +930,6 @@
2020/11/23 | 491 | graphics/pgf/base/doc/version-for-dvipdfmx/pgfmanual-dvipdfmx.cfg
2020/11/23 | 4919 | graphics/pgf/base/doc/text-en/pgfmanual-en-base-internalregisters.tex
2020/11/23 | 490 | graphics/pgf/base/doc/version-for-pdftex/pgfmanual-pdftex.cfg
-2020/11/23 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
2020/11/23 | 489 | graphics/asymptote/patches/gc-7.0nomem.patch
2020/11/23 | 48847 | graphics/asymptote/doc/secondaryaxis.csv
2020/11/23 | 4883 | graphics/pgf/base/tex/pgfcorelayers.code.tex
@@ -698,13 +946,11 @@
2020/11/23 | 48441 | graphics/asymptote/config.guess
2020/11/23 | 4841 | graphics/asymptote/tests/array/slice.asy
2020/11/23 | 48417 | graphics/asymptote/runarray.in
-2020/11/23 | 482420 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-2.9.tar.lzma
2020/11/23 | 4812 | graphics/asymptote/base/x11colors.asy
2020/11/23 | 480 | graphics/asymptote/doc/logimage.asy
2020/11/23 | 48091 | graphics/pgf/base/doc/text-en/pgfmanual-en-base-transformations.tex
2020/11/23 | 4808 | graphics/asymptote/examples/interpolate1.asy
2020/11/23 | 479 | graphics/asymptote/examples/magnetic.asy
-2020/11/23 | 47679 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma
2020/11/23 | 475 | graphics/pgf/base/tex/tikzlibraryshapes.symbols.code.tex
2020/11/23 | 475 | graphics/pgf/base/tex/pgfbaseshapes.tex
2020/11/23 | 475 | graphics/pgf/base/tex/pgfbasematrix.tex
@@ -715,19 +961,21 @@
2020/11/23 | 4718 | graphics/asymptote/doc/FAQ/m-ascii.pl
2020/11/23 | 4716 | graphics/asymptote/prc/PRCTools/makePRC.cc
2020/11/23 | 470 | graphics/pgf/base/doc/README
+2020/11/23 | 4708 | macros/latex/contrib/elsarticle/elsarticle-template-num-names.tex
+2020/11/23 | 47087 | macros/latex/contrib/elsarticle/elsarticle.dtx
+2020/11/23 | 4682 | macros/latex/contrib/elsarticle/elsarticle-template-num.tex
2020/11/23 | 46825 | graphics/pgf/base/doc/text-en/pgfmanual-en-base-arrows.tex
2020/11/23 | 467 | graphics/pgf/base/tex/pgfbaseplot.tex
+2020/11/23 | 4679 | macros/latex/contrib/elsarticle/elsarticle-template-harv.tex
2020/11/23 | 46727 | graphics/asymptote/base/plain_picture.asy
2020/11/23 | 4668 | graphics/asymptote/GUI/pyUIClass/widgetPointEditor.py
2020/11/23 | 465847 | graphics/asymptote/doc/png/asymptote.info
-2020/11/23 | 46533 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma
2020/11/23 | 464 | graphics/asymptote/drawgsave.h
2020/11/23 | 464 | graphics/asymptote/doc/GaussianSurface.asy
2020/11/23 | 463 | graphics/pgf/base/tex/pgf.revision.tex
2020/11/23 | 463731 | macros/latex/contrib/arraycols.zip
2020/11/23 | 462 | graphics/pgf/base/tex/pgfrcs.tex
2020/11/23 | 46241 | graphics/pgf/base/tex/pgflibraryshapes.misc.code.tex
-2020/11/23 | 461751 | systems/win32/miktex/tm/packages/next/miktex-doc.tar.lzma
2020/11/23 | 46142 | graphics/pgf/base/doc/text-en/pgfmanual-en-tutorial-chains.tex
2020/11/23 | 4612 | graphics/asymptote/castop.h
2020/11/23 | 4611 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/jedi/algorithms/SocialGravityCloseness.lua
@@ -740,25 +988,19 @@
2020/11/23 | 458 | graphics/pgf/base/doc/version-for-dvisvgm/en/pgfmanual.tex
2020/11/23 | 458 | graphics/asymptote/doc/multicontour.asy
2020/11/23 | 458546 | macros/latex/contrib/arraycols/arraycols.pdf
-2020/11/23 | 45812 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-2.9.tar.lzma
2020/11/23 | 457 | graphics/pgf/base/tex/t-pgfbim.tex
2020/11/23 | 4578 | graphics/asymptote/doc/FAQ/m-post.pl
2020/11/23 | 4572 | graphics/pgf/base/tex/tikzlibrarybackgrounds.code.tex
2020/11/23 | 4570 | graphics/asymptote/env.h
2020/11/23 | 456 | graphics/pgf/base/doc/version-for-dvipdfm/pgfmanual-dvipdfm.cfg
-2020/11/23 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
-2020/11/23 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc
-2020/11/23 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
-2020/11/23 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
2020/11/23 | 455 | graphics/pgf/base/doc/version-for-xetex/pgfmanual-xetex.cfg
2020/11/23 | 45551 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-rdf.tex
-2020/11/23 | 45368 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-2.9.tar.lzma
+2020/11/23 | 455186 | macros/latex/contrib/elsarticle/doc/elsdoc.pdf
2020/11/23 | 4520 | graphics/asymptote/getopt1.c
2020/11/23 | 4513 | graphics/pgf/base/lua/graphdrawing/pgf/gd/layered.lua
2020/11/23 | 450 | graphics/pgf/base/doc/version-for-dvipdfmx/en/pgfmanual.tex
2020/11/23 | 449 | graphics/pgf/base/doc/version-for-dvipdfm/en/pgfmanual.tex
2020/11/23 | 449 | graphics/asymptote/tests/arith/pair.asy
-2020/11/23 | 44980 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma
2020/11/23 | 4494 | graphics/pgf/base/tex/pgfrcs.code.tex
2020/11/23 | 448 | graphics/pgf/base/tex/tikz.tex
2020/11/23 | 448 | graphics/pgf/base/doc/version-for-xetex/en/pgfmanual.tex
@@ -808,27 +1050,22 @@
2020/11/23 | 431 | graphics/pgf/base/tex/pgfbaselayers.tex
2020/11/23 | 430 | graphics/pgf/base/tex/pgflibrarygraphdrawing.circular.code.tex
2020/11/23 | 430 | graphics/asymptote/examples/unitoctant.asy
-2020/11/23 | 43083 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma
2020/11/23 | 42 | graphics/asymptote/base/animate.asy
2020/11/23 | 429 | graphics/pgf/base/tex/pgfbaseimage.tex
2020/11/23 | 4294 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-babel.tex
2020/11/23 | 429184 | macros/latex/contrib/nicematrix/nicematrix-french.pdf
-2020/11/23 | 42915 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-2.9.tar.lzma
2020/11/23 | 4286 | graphics/asymptote/asy.ico
2020/11/23 | 4285 | graphics/pgf/base/lua/graphdrawing/pgf/gd/control/ComponentDistance.lua
2020/11/23 | 427 | graphics/asymptote/examples/projectrevolution.asy
2020/11/23 | 426 | graphics/asymptote/examples/pathintersectsurface.asy
2020/11/23 | 426 | graphics/asymptote/doc/grid3xyz.asy
2020/11/23 | 4265 | graphics/asymptote/newexp.cc
-2020/11/23 | 42631 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-2.9.tar.lzma
-2020/11/23 | 42628 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-2.9.tar.lzma
2020/11/23 | 4253 | graphics/pgf/base/lua/graphdrawing/pgf/gd/layered/cycle_removal.lua
2020/11/23 | 424 | graphics/asymptote/examples/spiral3.asy
2020/11/23 | 4244 | graphics/asymptote/examples/fin.asy
2020/11/23 | 4242 | graphics/asymptote/tests/types/keyword.asy
2020/11/23 | 423 | graphics/asymptote/doc/log2graph.asy
2020/11/23 | 423 | graphics/asymptote/doc/helix.asy
-2020/11/23 | 42238 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma
2020/11/23 | 421 | graphics/pgf/base/doc/version-for-xetex/en/plots/pgfmanual-sine.table
2020/11/23 | 421 | graphics/pgf/base/doc/version-for-vtex/en/plots/pgfmanual-sine.table
2020/11/23 | 421 | graphics/pgf/base/doc/version-for-tex4ht/en/plots/pgfmanual-sine.table
@@ -840,7 +1077,6 @@
2020/11/23 | 421 | graphics/pgf/base/doc/text-en/plots/pgfmanual-sine.table
2020/11/23 | 420 | graphics/asymptote/examples/PythagoreanTree.asy
2020/11/23 | 4209 | graphics/asymptote/flatguide.h
-2020/11/23 | 42078 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-2.9.tar.lzma
2020/11/23 | 4202 | graphics/pgf/base/tex/tikzlibrarymatrix.code.tex
2020/11/23 | 41 | graphics/asymptote/doc/bigdiagonal.asy
2020/11/23 | 419 | graphics/asymptote/examples/torus.asy
@@ -861,6 +1097,7 @@
2020/11/23 | 414 | graphics/pgf/base/tex/tikzlibrarydatavisualization.formats.functions.code.tex
2020/11/23 | 414 | graphics/asymptote/examples/animations/glmovie.asy
2020/11/23 | 4128 | graphics/asymptote/base/plain_boxes.asy
+2020/11/23 | 41257 | systems/unix/tex-fpc/tex.ch
2020/11/23 | 411 | graphics/pgf/base/tex/pgflibraryautomata.sty
2020/11/23 | 411 | graphics/asymptote/examples/animations/externalmovie.asy
2020/11/23 | 41155 | graphics/pgf/base/doc/text-en/pgfmanual-en-base-scopes.tex
@@ -869,11 +1106,9 @@
2020/11/23 | 410 | graphics/pgf/base/tex/pgflibraryplotmarks.sty
2020/11/23 | 410 | graphics/pgf/base/tex/pgfcore.sty
2020/11/23 | 410 | graphics/asymptote/examples/Sierpinski.asy
-2020/11/23 | 41054 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma
2020/11/23 | 4099 | graphics/pgf/base/lua/graphdrawing/pgf/gd/control/FineTune.lua
2020/11/23 | 4089 | graphics/asymptote/camp.tab.h
2020/11/23 | 40899 | graphics/asymptote/doc/FAQ/asy-faq.bfnn
-2020/11/23 | 40817 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-2.9.tar.lzma
2020/11/23 | 407 | graphics/asymptote/examples/parametricsurface.asy
2020/11/23 | 407 | graphics/asymptote/examples/BezierPatch.asy
2020/11/23 | 4078 | graphics/asymptote/base/plain_shipout.asy
@@ -914,9 +1149,8 @@
2020/11/23 | 3937 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/jedi/algorithms/FruchtermanReingold.lua
2020/11/23 | 39378 | graphics/pgf/base/lua/graphdrawing/pgf/gd/control/LayoutPipeline.lua
2020/11/23 | 3935 | graphics/asymptote/base/interpolate.asy
-2020/11/23 | 39353 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-2.9.tar.lzma
2020/11/23 | 3931 | graphics/pgf/base/tex/tikzlibraryquotes.code.tex
-2020/11/23 | 39308 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64.tar.lzma
+2020/11/23 | 392 | systems/unix/tex-fpc/shell/mkfont
2020/11/23 | 392 | graphics/pgf/base/lua/graphdrawing/pgf/gd/examples.lua
2020/11/23 | 392 | graphics/pgf/base/lua/graphdrawing/pgf/gd/bindings.lua
2020/11/23 | 3928 | graphics/pgf/base/doc/version-for-xetex/en/plots/pgf-asymptotic-example.table
@@ -927,7 +1161,6 @@
2020/11/23 | 3928 | graphics/pgf/base/doc/version-for-dvips/en/plots/pgf-asymptotic-example.table
2020/11/23 | 3928 | graphics/pgf/base/doc/version-for-dvipdfm/en/plots/pgf-asymptotic-example.table
2020/11/23 | 3928 | graphics/pgf/base/doc/text-en/plots/pgf-asymptotic-example.table
-2020/11/23 | 392344 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma
2020/11/23 | 3912 | graphics/asymptote/tr.h
2020/11/23 | 390 | graphics/asymptote/doc/tile.asy
2020/11/23 | 3905 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-plot-marks.tex
@@ -961,7 +1194,6 @@
2020/11/23 | 376 | graphics/pgf/base/lua/graphdrawing/pgf/gd/pedigrees.lua
2020/11/23 | 376 | graphics/asymptote/examples/sphericalharmonic.asy
2020/11/23 | 376 | graphics/asymptote/doc/generalaxis3.asy
-2020/11/23 | 37682 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-2.9.tar.lzma
2020/11/23 | 3765 | graphics/asymptote/prc/PRCdouble.h
2020/11/23 | 374 | graphics/pgf/base/lua/graphdrawing/pgf/gd/routing.lua
2020/11/23 | 374 | graphics/asymptote/doc/monthaxis.asy
@@ -978,22 +1210,18 @@
2020/11/23 | 3716 | graphics/asymptote/base/plain_constants.asy
2020/11/23 | 3706 | graphics/pgf/base/lua/graphdrawing/pgf/gd/examples/SimpleEdgeDemo.lua
2020/11/23 | 369 | graphics/asymptote/tests/gs/ghostscript.asy
-2020/11/23 | 36958 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin-x64.tar.lzma
2020/11/23 | 36938 | graphics/pgf/base/tex/pgfkeys.code.tex
-2020/11/23 | 36930 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma
2020/11/23 | 368 | graphics/pgf/base/tex/pgflibrarygraphdrawing.layered.code.tex
2020/11/23 | 367 | graphics/pgf/base/doc/version-for-dvips/pgfmanual-dvips.cfg
2020/11/23 | 366 | graphics/pgf/base/tex/pgflibrarygraphdrawing.examples.code.tex
2020/11/23 | 366 | graphics/asymptote/doc/lineargraph0.asy
2020/11/23 | 3668 | graphics/asymptote/constructor.cc
-2020/11/23 | 36640 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-2.9.tar.lzma
2020/11/23 | 364 | systems/texlive/tlnet/archive/hyperxmp.x86_64-darwinlegacy.r56984.tar.xz
2020/11/23 | 364 | graphics/pgf/base/lua/graphdrawing/pgf/gd/trees.lua
2020/11/23 | 3648 | graphics/pgf/base/doc/text-en/pgfmanual-en-xxcolor.tex
2020/11/23 | 3643 | graphics/pgf/base/tex/tikzlibraryfit.code.tex
2020/11/23 | 3640 | graphics/pgf/base/lua/graphdrawing/pgf/gd/layered/NodePositioningGansnerKNV1993.lua
2020/11/23 | 3640 | graphics/asymptote/bbox3.h
-2020/11/23 | 36374 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma
2020/11/23 | 362 | graphics/asymptote/examples/pipeintersection.asy
2020/11/23 | 36299 | graphics/pgf/base/tex/pgfpages.sty
2020/11/23 | 36243 | graphics/asymptote/prc/test.cc
@@ -1037,7 +1265,6 @@
2020/11/23 | 351 | graphics/pgf/base/tex/t-pgfbpt.tex
2020/11/23 | 351 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/planarity.lua
2020/11/23 | 351 | graphics/asymptote/examples/vectorfieldsphere.asy
-2020/11/23 | 35189 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin.tar.lzma
2020/11/23 | 35147 | graphics/asymptote/LICENSE
2020/11/23 | 350 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/module/AcyclicSubgraphModule.lua
2020/11/23 | 3507 | graphics/asymptote/build-scripts/build-asymptote.dos
@@ -1051,7 +1278,6 @@
2020/11/23 | 3493 | graphics/pgf/base/lua/graphdrawing/pgf/gd/lib/Event.lua
2020/11/23 | 348 | graphics/pgf/base/tex/pgffor.sty
2020/11/23 | 348 | graphics/asymptote/examples/RiemannSurface.asy
-2020/11/23 | 34787 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma
2020/11/23 | 3473 | graphics/pgf/base/doc/text-en/pgfmanual-en-pgfsys-protocol.tex
2020/11/23 | 346 | graphics/pgf/base/doc/text-en/pgfmanual-en-gd-examples.tex
2020/11/23 | 3466 | graphics/pgf/base/lua/graphdrawing/pgf/gd/layered/NodeRankingGansnerKNV1993.lua
@@ -1072,7 +1298,6 @@
2020/11/23 | 341 | graphics/asymptote/examples/slidedemo_.bbl
2020/11/23 | 341 | graphics/asymptote/examples/sacylinder3D.asy
2020/11/23 | 341 | graphics/asymptote/doc/subpictures.asy
-2020/11/23 | 34184 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma
2020/11/23 | 340 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/module/InitialPlacer.lua
2020/11/23 | 34020 | graphics/pgf/base/lua/graphdrawing/pgf/gd/interface/InterfaceToAlgorithms.lua
2020/11/23 | 339 | graphics/pgf/base/tex/tikz.sty
@@ -1097,15 +1322,12 @@
2020/11/23 | 332 | graphics/pgf/base/tex/pgfmanual.sty
2020/11/23 | 331 | graphics/pgf/base/tex/tikzlibraryplothandlers.code.tex
2020/11/23 | 331 | graphics/pgf/base/lua/graphdrawing/pgf/gd/model/library.lua
-2020/11/23 | 33150 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin.tar.lzma
2020/11/23 | 329 | graphics/pgf/base/tex/tikzlibraryshapes.misc.code.tex
2020/11/23 | 32995 | graphics/pgf/base/tex/pgflibraryplothandlers.code.tex
2020/11/23 | 3297 | graphics/asymptote/access.cc
-2020/11/23 | 329620 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-2.9.tar.lzma
2020/11/23 | 3295 | graphics/asymptote/stack.h
2020/11/23 | 3294 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/jedi/forcetypes/ForcePullToGrid.lua
2020/11/23 | 32926 | graphics/pgf/base/doc/text-en/pgfmanual-en-base-paths.tex
-2020/11/23 | 32922 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma
2020/11/23 | 328 | graphics/pgf/base/tex/pgfcalendar.sty
2020/11/23 | 327 | graphics/asymptote/examples/sin1x.asy
2020/11/23 | 3278 | graphics/asymptote/base/obj.asy
@@ -1119,7 +1341,6 @@
2020/11/23 | 324 | graphics/asymptote/doc/HermiteSpline.asy
2020/11/23 | 3249 | graphics/asymptote/GUI/Widg_addLabel.py
2020/11/23 | 3243 | graphics/pgf/base/tex/tikzlibrary3d.code.tex
-2020/11/23 | 32339 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-2.9.tar.lzma
2020/11/23 | 322 | graphics/asymptote/examples/unitcircle.asy
2020/11/23 | 322 | graphics/asymptote/examples/cheese.asy
2020/11/23 | 321 | graphics/pgf/base/tex/tikzlibrarydecorations.pathmorphing.code.tex
@@ -1132,7 +1353,6 @@
2020/11/23 | 319 | graphics/pgf/base/tex/tikzlibrarydecorations.footprints.code.tex
2020/11/23 | 319 | graphics/pgf/base/tex/tikzlibraryarrows.code.tex
2020/11/23 | 318 | graphics/asymptote/patches/gcc3.3.2curses.patch
-2020/11/23 | 318790 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma
2020/11/23 | 31877 | graphics/pgf/base/doc/text-en/pgfmanual-en-guidelines.tex
2020/11/23 | 31874 | graphics/pgf/base/tex/pgflibraryarrows.code.tex
2020/11/23 | 3183 | graphics/pgf/base/lua/graphdrawing/pgf/gd/routing/Hints.lua
@@ -1148,18 +1368,16 @@
2020/11/23 | 3150 | graphics/pgf/base/lua/graphdrawing/pgf/gd/layered/crossing_minimization.lua
2020/11/23 | 314 | graphics/asymptote/doc/logticks.asy
2020/11/23 | 314 | graphics/asymptote/base/graph_settings.asy
+2020/11/23 | 3137 | systems/unix/tex-fpc/MFT/iby/README
2020/11/23 | 3134 | graphics/pgf/base/lua/graphdrawing/pgf/gd/interface/Scope.lua
2020/11/23 | 31342 | graphics/asymptote/builtin.cc
2020/11/23 | 312 | graphics/asymptote/examples/textpath.asy
-2020/11/23 | 31217 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma
-2020/11/23 | 31214 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-2.9.tar.lzma
2020/11/23 | 31195 | graphics/pgf/base/doc/text-en/pgfmanual-en-math-numberprinting.tex
2020/11/23 | 3107 | graphics/pgf/base/lua/graphdrawing/pgf/gd/planar/ShiftMethod.lua
2020/11/23 | 3106 | graphics/asymptote/doc/latexusage.tex
-2020/11/23 | 31041 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-2.9.tar.lzma
2020/11/23 | 31025 | graphics/pgf/base/lua/graphdrawing/pgf/gd/interface/InterfaceToDisplay.lua
+2020/11/23 | 30 | systems/unix/tex-fpc/MFT/iby/agr.tex
2020/11/23 | 3096 | graphics/pgf/base/lua/graphdrawing/pgf/gd/layered/CycleRemovalEadesLS1993.lua
-2020/11/23 | 30933 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma
2020/11/23 | 308 | graphics/asymptote/tests/types/shadow.asy
2020/11/23 | 308 | graphics/asymptote/tests/Makefile
2020/11/23 | 308 | graphics/asymptote/examples/oneoverx.asy
@@ -1168,7 +1386,6 @@
2020/11/23 | 30763 | graphics/pgf/base/doc/text-en/pgfmanual-en-tikz-plots.tex
2020/11/23 | 306 | graphics/pgf/base/tex/pgfmath.sty
2020/11/23 | 306 | graphics/asymptote/doc/binarytreetest.asy
-2020/11/23 | 30682 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma
2020/11/23 | 3063 | graphics/pgf/base/tex/pgfint.code.tex
2020/11/23 | 3057 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/jedi/forcetypes/ForceCanvasPosition.lua
2020/11/23 | 3056 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/jedi/forcetypes/ForcePullToPoint.lua
@@ -1182,32 +1399,32 @@
2020/11/23 | 30147 | graphics/asymptote/getopt.c
2020/11/23 | 3013 | graphics/pgf/base/lua/graphdrawing/pgf/gd/pedigrees/Koerner2015.lua
2020/11/23 | 3001 | graphics/asymptote/asymptote.spec
+2020/11/23 | 30002 | macros/latex/contrib/elsarticle/elsarticle-harv.bst
2020/11/23 | 299 | graphics/asymptote/runpair.h
2020/11/23 | 2982 | graphics/asymptote/process.h
+2020/11/23 | 29811 | macros/latex/contrib/elsarticle/doc/elsdoc.tex
2020/11/23 | 297 | graphics/asymptote/build-scripts/README-binaries
2020/11/23 | 2979 | graphics/asymptote/doc/diatom.asy
2020/11/23 | 29754 | graphics/pgf/base/tex/tikzlibrarydecorations.text.code.tex
-2020/11/23 | 29731 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma
2020/11/23 | 2968 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/jedi/algorithms/HuSpringElectricalFW.lua
2020/11/23 | 2965 | graphics/pgf/base/tex/pgfcorequick.code.tex
2020/11/23 | 2964 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/layered/FastHierarchyLayout.lua
2020/11/23 | 2964 | graphics/asymptote/access.h
2020/11/23 | 29582 | graphics/pgf/base/source/InterfaceFromC.c
-2020/11/23 | 295366 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma
2020/11/23 | 294 | graphics/asymptote/guideflags.h
+2020/11/23 | 29462 | macros/latex/contrib/elsarticle/elsarticle-num.bst
2020/11/23 | 293 | graphics/asymptote/doc/makepen.asy
2020/11/23 | 2926 | graphics/pgf/base/tex/pgfsys-xetex.def
2020/11/23 | 2926 | graphics/pgf/base/doc/text-en/pgfmanual-en-pgfsys-overview.tex
2020/11/23 | 291 | graphics/asymptote/examples/trumpet.asy
2020/11/23 | 2919 | graphics/pgf/base/tex/tikzlibrarydatavisualization.3d.code.tex
-2020/11/23 | 29156 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma
2020/11/23 | 289 | graphics/asymptote/examples/jump.asy
2020/11/23 | 289 | graphics/asymptote/base/res/notes.txt
2020/11/23 | 2894 | graphics/asymptote/shaders.cc
-2020/11/23 | 28917 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-2.9.tar.lzma
2020/11/23 | 288 | graphics/asymptote/examples/sacone3D.asy
2020/11/23 | 288 | graphics/asymptote/doc/mexicanhat.asy
2020/11/23 | 2889 | graphics/pgf/base/tex/tikzlibraryshadows.code.tex
+2020/11/23 | 28896 | macros/latex/contrib/elsarticle/elsarticle-num-names.bst
2020/11/23 | 28891 | graphics/pgf/base/doc/text-en/pgfmanual-en-oo.tex
2020/11/23 | 28872 | graphics/pgf/base/doc/text-en/pgfmanual-en-dv-visualizers.tex
2020/11/23 | 28852 | graphics/pgf/base/lua/graphdrawing/pgf/gd/experimental/evolving/Skambath2016.lua
@@ -1217,27 +1434,21 @@
2020/11/23 | 2866 | graphics/pgf/base/tex/tikzlibrarylindenmayersystems.code.tex
2020/11/23 | 28643 | graphics/pgf/base/doc/text-en/pgfmanual-en-main-body.tex
2020/11/23 | 2861 | graphics/pgf/base/lua/graphdrawing/pgf/gd/experimental/evolving/layered.lua
-2020/11/23 | 28606 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-2.9.tar.lzma
2020/11/23 | 28579 | graphics/pgf/base/tex/pgfutil-common.tex
2020/11/23 | 284 | graphics/asymptote/GUI/res/icons/text.svg
2020/11/23 | 283 | graphics/pgf/base/tex/tikzlibraryfpu.code.tex
2020/11/23 | 2832 | graphics/asymptote/examples/alignedaxis.asy
2020/11/23 | 2825 | graphics/asymptote/GUI/pyUIClass/setCustomAnchor.py
-2020/11/23 | 282449 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma
2020/11/23 | 28178 | graphics/pgf/base/tex/pgfmathfunctions.basic.code.tex
2020/11/23 | 28115 | graphics/pgf/base/doc/text-en/pgfmanual-en-tutorial-Euclid.tex
2020/11/23 | 2804 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/layered/FastSimpleHierarchyLayout.lua
-2020/11/23 | 280105 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma
2020/11/23 | 2800 | graphics/asymptote/doc/asycolors.sty
2020/11/23 | 279 | graphics/asymptote/doc/hatch.asy
-2020/11/23 | 279491 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-2.9.tar.lzma
2020/11/23 | 2790 | graphics/pgf/base/lua/graphdrawing/pgf/gd/lib/Direct.lua
2020/11/23 | 277 | graphics/asymptote/doc/generalaxis.asy
2020/11/23 | 27767 | graphics/asymptote/pen.h
-2020/11/23 | 27758 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma
2020/11/23 | 2774 | graphics/pgf/base/lua/graphdrawing/pgf/gd/lib/Transform.lua
2020/11/23 | 2771 | graphics/asymptote/doc/pixel.pdf
-2020/11/23 | 27708 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-2.9.tar.lzma
2020/11/23 | 276 | graphics/pgf/base/tex/tikzlibraryfixedpointarithmetic.code.tex
2020/11/23 | 276 | graphics/asymptote/tests/bench/6000circles.asy
2020/11/23 | 2766 | graphics/asymptote/lnkX64IconFix.nsh
@@ -1254,14 +1465,11 @@
2020/11/23 | 2731 | graphics/asymptote/tests/types/resolve.asy
2020/11/23 | 27253 | graphics/pgf/base/doc/text-en/pgfmanual-en-pages.tex
2020/11/23 | 271 | graphics/asymptote/patches/gc6.8_AIX.patch
-2020/11/23 | 27103 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-2.9.tar.lzma
2020/11/23 | 27080 | graphics/pgf/base/tex/pgfmoduleoo.code.tex
2020/11/23 | 2707 | graphics/asymptote/runtriple.in
-2020/11/23 | 27056 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-2.9.tar.lzma
-2020/11/23 | 27009 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-2.9.tar.lzma
2020/11/23 | 26 | graphics/asymptote/doc/filegraph.dat
+2020/11/23 | 269 | systems/unix/tex-fpc/MFT/iby/getlevy
2020/11/23 | 269 | graphics/asymptote/runmath.h
-2020/11/23 | 26982 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-2.9.tar.lzma
2020/11/23 | 2697 | graphics/asymptote/table.h
2020/11/23 | 268 | graphics/asymptote/base/asy-init.el
2020/11/23 | 26872 | graphics/pgf/base/doc/text-en/pgfmanual-en-dv-formats.tex
@@ -1277,12 +1485,12 @@
2020/11/23 | 264 | graphics/asymptote/examples/labelbox.asy
2020/11/23 | 264 | graphics/asymptote/examples/coag.asy
2020/11/23 | 26467 | graphics/pgf/base/lua/graphdrawing/pgf/gd/model/Digraph.lua
-2020/11/23 | 2635855 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma
2020/11/23 | 2632 | graphics/asymptote/material.h
2020/11/23 | 2631 | graphics/asymptote/GUI/windows/setCustomAnchor.ui
2020/11/23 | 262 | graphics/pgf/base/tex/example_graph_for_ascii_displayer.txt
2020/11/23 | 262 | graphics/asymptote/doc/loggraph.asy
2020/11/23 | 2627 | graphics/pgf/base/tex/pgfsys-dvipdfm.def
+2020/11/23 | 2626 | macros/latex/contrib/elsarticle/elsarticle.ins
2020/11/23 | 2626 | graphics/asymptote/examples/worldmap.asy
2020/11/23 | 261 | graphics/asymptote/doc/join.asy
2020/11/23 | 2616 | graphics/pgf/base/doc/text-en/pgfmanual-en-dv-examples.tex
@@ -1291,7 +1499,6 @@
2020/11/23 | 260 | graphics/pgf/base/doc/images/brave-gnu-world-logo.xbb
2020/11/23 | 26096 | graphics/asymptote/examples/uhrturm.obj
2020/11/23 | 2582 | graphics/asymptote/base/plain_margins.asy
-2020/11/23 | 258220 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-2.9.tar.lzma
2020/11/23 | 2576 | graphics/pgf/base/tex/tikzlibrarygraphs.standard.code.tex
2020/11/23 | 2571 | graphics/pgf/base/lua/graphdrawing/pgf/gd/deprecated/Iterators.lua
2020/11/23 | 25701 | graphics/asymptote/runpath3d.cc
@@ -1317,9 +1524,7 @@
2020/11/23 | 251 | graphics/asymptote/base/metapost.asy
2020/11/23 | 2518 | graphics/asymptote/prc/PRCbitStream.h
2020/11/23 | 25154 | graphics/asymptote/doc/extra/intro.asy
-2020/11/23 | 2514453 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-2.9.tar.lzma
2020/11/23 | 250 | graphics/asymptote/examples/transparentCubes.asy
-2020/11/23 | 250931 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-2.9.tar.lzma
2020/11/23 | 2505 | graphics/pgf/base/source/InterfaceFromOGDF.c++
2020/11/23 | 2505 | graphics/asymptote/README
2020/11/23 | 2505 | graphics/asymptote/binaries/x86_64-windows/README
@@ -1328,10 +1533,7 @@
2020/11/23 | 24 | graphics/asymptote/doc/diagonal.asy
2020/11/23 | 24998 | graphics/pgf/base/lua/graphdrawing/pgf/gd/phylogenetics/Maeusle2012.lua
2020/11/23 | 24941 | graphics/pgf/base/doc/text-en/pgfmanual-en-tikz-scopes.tex
-2020/11/23 | 249040 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-2.9.tar.lzma
-2020/11/23 | 24891 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-2.9.tar.lzma
2020/11/23 | 2488 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/jedi/library.lua
-2020/11/23 | 24840 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma
2020/11/23 | 2482 | graphics/asymptote/build-scripts/build-asymptote
2020/11/23 | 2479 | graphics/pgf/base/lua/graphdrawing/pgf/gd/routing/NecklaceRouting.lua
2020/11/23 | 24742 | graphics/pgf/base/tex/pgflibrarysvg.path.code.tex
@@ -1345,10 +1547,8 @@
2020/11/23 | 244 | graphics/asymptote/tests/arith/triple.asy
2020/11/23 | 243 | graphics/asymptote/doc/cube.asy
2020/11/23 | 2439 | graphics/pgf/base/doc/text-en/pgfmanual-en-gd-phylogenetics.tex
-2020/11/23 | 243100 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma
2020/11/23 | 242 | graphics/asymptote/examples/equilateral.asy
2020/11/23 | 242 | graphics/asymptote/BUGS
-2020/11/23 | 24270016 | systems/texlive/tlnet/install-tl.zip
2020/11/23 | 240 | graphics/asymptote/doc/parametricgraph.asy
2020/11/23 | 24091 | graphics/pgf/base/tex/pgfcalendar.code.tex
2020/11/23 | 23 | graphics/asymptote/GUI/__init__.py
@@ -1366,7 +1566,6 @@
2020/11/23 | 23738 | graphics/pgf/base/tex/pgfsys-dvips.def
2020/11/23 | 236 | graphics/asymptote/tests/string/erase.asy
2020/11/23 | 236 | graphics/asymptote/examples/annotation.asy
-2020/11/23 | 23638 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma
2020/11/23 | 23635 | graphics/pgf/base/doc/text-en/pgfmanual-en-tikz-decorations.tex
2020/11/23 | 2360 | graphics/asymptote/examples/spectrum.asy
2020/11/23 | 235 | graphics/pgf/base/source/planarity_script.h
@@ -1380,7 +1579,6 @@
2020/11/23 | 233 | graphics/asymptote/examples/cardioid.asy
2020/11/23 | 2328 | graphics/asymptote/virtualfieldaccess.h
2020/11/23 | 23159 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-plot-handlers.tex
-2020/11/23 | 23024 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma
2020/11/23 | 22 | graphics/asymptote/tests/output/line.asy
2020/11/23 | 22 | graphics/asymptote/GUI/configs/__init__.py
2020/11/23 | 22971 | graphics/asymptote/base/syzygy.asy
@@ -1398,8 +1596,6 @@
2020/11/23 | 225 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-calc.tex
2020/11/23 | 22594 | graphics/asymptote/base/plain_arrows.asy
2020/11/23 | 224 | graphics/asymptote/tests/types/init.asy
-2020/11/23 | 2243888 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
-2020/11/23 | 224114 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma
2020/11/23 | 2238 | graphics/pgf/base/source/FastMultipoleEmbedder_script.h
2020/11/23 | 22345 | graphics/asymptote/knot.cc
2020/11/23 | 2232 | graphics/pgf/base/tex/xxcolor.sty
@@ -1424,11 +1620,13 @@
2020/11/23 | 2187 | graphics/asymptote/base/plain_debugger.asy
2020/11/23 | 21856 | graphics/pgf/base/doc/text-en/pgfmanual-en-pgfkeysfiltered.tex
2020/11/23 | 2184 | graphics/pgf/base/tex/tikzlibraryturtle.code.tex
-2020/11/23 | 21849 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-2.9.tar.lzma
2020/11/23 | 2181 | graphics/asymptote/build-scripts/HOWTO-MSWindows
+2020/11/23 | 21665 | systems/unix/tex-fpc/mf.ch
2020/11/23 | 2164 | graphics/asymptote/frame.h
2020/11/23 | 2161 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-svg-path.tex
+2020/11/23 | 215 | systems/unix/tex-fpc/ch.ch/mkchatty
2020/11/23 | 2152 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/energybased/SpringEmbedderFRExact.lua
+2020/11/23 | 214 | systems/unix/tex-fpc/MFT/iby/ibymacros
2020/11/23 | 2148 | graphics/asymptote/GUI/windows/widg_addPolyOpt.ui
2020/11/23 | 2146 | graphics/asymptote/webgl/fragment.glsl
2020/11/23 | 21452 | graphics/pgf/base/doc/text-en/pgfmanual-en-drivers.tex
@@ -1437,7 +1635,6 @@
2020/11/23 | 2134 | graphics/asymptote/drawlabel.h
2020/11/23 | 21326 | graphics/pgf/base/lua/graphdrawing/pgf/gd/experimental/evolving/GraphAnimationCoordination.lua
2020/11/23 | 21302 | graphics/pgf/base/tex/pgfcorepathusage.code.tex
-2020/11/23 | 212028 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma
2020/11/23 | 21201 | graphics/pgf/base/tex/pgfmodulematrix.code.tex
2020/11/23 | 210 | graphics/asymptote/examples/spiral.asy
2020/11/23 | 210 | graphics/asymptote/build-scripts/asy-indent.el
@@ -1445,16 +1642,13 @@
2020/11/23 | 2108 | graphics/pgf/base/tex/tikzlibrarycircuits.logic.IEC.code.tex
2020/11/23 | 2107 | graphics/asymptote/jsfile.h
2020/11/23 | 21068 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-mindmaps.tex
-2020/11/23 | 210214 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-x64-2.9.tar.lzma
2020/11/23 | 2101 | graphics/asymptote/examples/truncatedIcosahedron.asy
2020/11/23 | 21013 | graphics/pgf/base/tex/pgfcomp-version-0-65.sty
2020/11/23 | 21005 | graphics/pgf/base/lua/graphdrawing/pgf/gd/model/Arc.lua
2020/11/23 | 20989 | graphics/asymptote/base/plain_bounds.asy
2020/11/23 | 2095 | graphics/pgf/base/README
2020/11/23 | 20840 | graphics/asymptote/dec.cc
-2020/11/23 | 20816 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-2.9.tar.lzma
2020/11/23 | 207 | graphics/asymptote/examples/triangle.asy
-2020/11/23 | 207412 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-2.9.tar.lzma
2020/11/23 | 20726 | graphics/pgf/base/tex/pgfcorescopes.code.tex
2020/11/23 | 207260 | graphics/asymptote/asy.list
2020/11/23 | 2070 | graphics/pgf/base/doc/version-for-luatex/en/plots/pgf-tan-example.table
@@ -1465,15 +1659,12 @@
2020/11/23 | 20502 | graphics/pgf/base/tex/tikzlibrarydatavisualization.polar.code.tex
2020/11/23 | 20474 | graphics/pgf/base/doc/text-en/pgfmanual-en-base-external.tex
2020/11/23 | 2046 | graphics/asymptote/base/slopefield.asy
-2020/11/23 | 204621 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma
-2020/11/23 | 204575 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma
2020/11/23 | 2044 | graphics/pgf/base/doc/version-for-xetex/en/plots/pgf-tan-example.table
2020/11/23 | 2044 | graphics/pgf/base/doc/version-for-pdftex/en/plots/pgf-tan-example.table
2020/11/23 | 2044 | graphics/pgf/base/doc/version-for-dvisvgm/en/plots/pgf-tan-example.table
2020/11/23 | 2044 | graphics/pgf/base/doc/version-for-dvips/en/plots/pgf-tan-example.table
2020/11/23 | 2044 | graphics/pgf/base/doc/version-for-dvipdfm/en/plots/pgf-tan-example.table
2020/11/23 | 2044 | graphics/pgf/base/doc/text-en/plots/pgf-tan-example.table
-2020/11/23 | 204243 | systems/win32/miktex/tm/packages/next/miktex-console-bin-2.9.tar.lzma
2020/11/23 | 20415 | graphics/pgf/base/doc/licenses/gnu-free-documentation-license-1.2.txt
2020/11/23 | 2034 | graphics/asymptote/doc/elliptic.asy
2020/11/23 | 20330 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-patterns.tex
@@ -1481,7 +1672,6 @@
2020/11/23 | 202 | graphics/asymptote/glew.c
2020/11/23 | 202 | graphics/asymptote/doc/exp.asy
2020/11/23 | 202 | graphics/asymptote/build-scripts/run-in-indent.el
-2020/11/23 | 202421 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma
2020/11/23 | 2023 | graphics/asymptote/examples/slope.asy
2020/11/23 | 20166 | graphics/pgf/base/tex/pgflibraryprofiler.code.tex
2020/11/23 | 2012 | graphics/asymptote/varinit.h
@@ -1491,16 +1681,12 @@
2020/11/23 | 199 | graphics/asymptote/examples/BezierTriangle.asy
2020/11/23 | 19990 | graphics/asymptote/base/contour.asy
2020/11/23 | 1997 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/layered/LongestPathRanking.lua
-2020/11/23 | 19946 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-2.9.tar.lzma
2020/11/23 | 1993 | macros/latex/contrib/arraycols/arraycols.ins
-2020/11/23 | 199230 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-2.9.tar.lzma
2020/11/23 | 19915 | graphics/asymptote/drawsurface.h
2020/11/23 | 198 | graphics/asymptote/examples/tanh.asy
2020/11/23 | 19862 | graphics/pgf/base/doc/text-en/pgfmanual-en-tikz-transformations.tex
-2020/11/23 | 1985300 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma
2020/11/23 | 19835 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-chains.tex
2020/11/23 | 1982 | graphics/asymptote/inst.h
-2020/11/23 | 197843 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-2.9.tar.lzma
2020/11/23 | 19781 | graphics/pgf/base/lua/graphdrawing/pgf/gd/planar/Embedding.lua
2020/11/23 | 1977 | graphics/pgf/base/doc/version-for-luatex/en/plots/pgfplotgnuplot-example.table
2020/11/23 | 1977 | graphics/pgf/base/doc/version-for-dvipdfmx/en/plots/pgfplotgnuplot-example.table
@@ -1516,9 +1702,9 @@
2020/11/23 | 19618 | graphics/pgf/base/lua/graphdrawing/pgf/gd/phylogenetics/BalancedMinimumEvolution.lua
2020/11/23 | 19597 | graphics/asymptote/doc/external-proposal.html
2020/11/23 | 19581 | graphics/pgf/base/tex/pgfmoduleparser.code.tex
-2020/11/23 | 195337 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma
2020/11/23 | 1952 | graphics/pgf/base/lua/graphdrawing/pgf/gd/layered/CycleRemovalBergerS1990b.lua
2020/11/23 | 19512 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/SpringElectricalWalshaw2000.lua
+2020/11/23 | 19508 | macros/latex/contrib/ut-thesis/ut-thesis.dtx
2020/11/23 | 19462 | graphics/asymptote/patches/gl-matrix-2.4.0-pruned.patch
2020/11/23 | 194617 | graphics/asymptote/doc/asy-latex.pdf
2020/11/23 | 1945 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/ControlSprings.lua
@@ -1532,15 +1718,12 @@
2020/11/23 | 1944 | graphics/pgf/base/doc/version-for-dvips/en/plots/pgfplotgnuplot-example.table
2020/11/23 | 1944 | graphics/pgf/base/doc/version-for-dvipdfm/en/plots/pgfplotgnuplot-example.table
2020/11/23 | 1944 | graphics/pgf/base/doc/text-en/plots/pgfplotgnuplot-example.table
-2020/11/23 | 194088 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-2.9.tar.lzma
2020/11/23 | 193 | graphics/asymptote/tests/gc/shipout.asy
2020/11/23 | 193 | graphics/asymptote/tests/arith/random.asy
-2020/11/23 | 19385141 | systems/texlive/tlnet/install-tl-windows.exe
2020/11/23 | 1936 | graphics/asymptote/refaccess.h
2020/11/23 | 19324 | graphics/pgf/base/tex/pgfcoreexternal.code.tex
2020/11/23 | 1927 | graphics/asymptote/tests/array/fields.asy
2020/11/23 | 1927 | graphics/asymptote/prc/PRCTools/bitSearchDouble.cc
-2020/11/23 | 192634 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-2.9.tar.lzma
2020/11/23 | 1920 | graphics/asymptote/GUI/res/icons/social-python.svg
2020/11/23 | 191 | graphics/pgf/base/doc/version-for-dvisvgm/en/pgfmanual-test.html
2020/11/23 | 191 | graphics/asymptote/runpicture.h
@@ -1570,6 +1753,7 @@
2020/11/23 | 1863 | graphics/asymptote/prc/PRCTools/bitSearchUI.cc
2020/11/23 | 186126 | graphics/asymptote/doc/CAD.pdf
2020/11/23 | 1860 | graphics/asymptote/prc/PRCTools/bitData.h
+2020/11/23 | 1858 | macros/latex/contrib/elsarticle/manifest.txt
2020/11/23 | 18578 | graphics/asymptote/application.cc
2020/11/23 | 1851 | graphics/asymptote/drawclipbegin.h
2020/11/23 | 184 | graphics/asymptote/examples/roll.asy
@@ -1593,9 +1777,7 @@
2020/11/23 | 18126 | graphics/asymptote/doc/asy-latex.dtx
2020/11/23 | 1805 | graphics/asymptote/patches/cygwin_freeglut-3.0.0.patch
2020/11/23 | 18032 | graphics/pgf/base/doc/licenses/gnu-public-license-2.txt
-2020/11/23 | 179938 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma
2020/11/23 | 17987 | graphics/asymptote/entry.cc
-2020/11/23 | 179400 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-2.9.tar.lzma
2020/11/23 | 1790 | graphics/pgf/base/lua/graphdrawing/pgf/gd/layered/node_positioning.lua
2020/11/23 | 17815 | graphics/asymptote/asy-keywords.el
2020/11/23 | 177 | graphics/asymptote/runpath.h
@@ -1603,10 +1785,8 @@
2020/11/23 | 1778 | graphics/pgf/base/lua/graphdrawing/pgf/gd/planar/LinkedList.lua
2020/11/23 | 1778 | graphics/asymptote/examples/conicurv.asy
2020/11/23 | 177246 | graphics/asymptote/prc/PRCdouble.cc
-2020/11/23 | 17715 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma
2020/11/23 | 17690 | graphics/asymptote/runfile.cc
2020/11/23 | 1764 | graphics/asymptote/GUI/res/icons/grid.svg
-2020/11/23 | 17629 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma
2020/11/23 | 17612 | graphics/pgf/base/tex/pgfsys-tex4ht.def
2020/11/23 | 1760 | graphics/asymptote/examples/animations/heatequation.asy
2020/11/23 | 175 | graphics/pgf/base/INSTALL_NOTES
@@ -1631,7 +1811,6 @@
2020/11/23 | 170 | graphics/pgf/base/doc/version-for-dvips/en/plots/pgf-asymptotic-example.gnuplot
2020/11/23 | 170 | graphics/pgf/base/doc/version-for-dvipdfmx/en/plots/pgf-asymptotic-example.gnuplot
2020/11/23 | 170 | graphics/pgf/base/doc/version-for-dvipdfm/en/plots/pgf-asymptotic-example.gnuplot
-2020/11/23 | 1707142 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-2.9.tar.lzma
2020/11/23 | 1705 | graphics/pgf/base/tex/pgfsys-dvisvgm4ht.def
2020/11/23 | 1701 | graphics/pgf/base/source/LongestPathRanking_script.h
2020/11/23 | 169 | graphics/asymptote/runbacktrace.h
@@ -1644,9 +1823,7 @@
2020/11/23 | 16757 | graphics/pgf/base/lua/luamath/pgf/luamath/parser.lua
2020/11/23 | 16694 | macros/latex/contrib/arraycols/arraycols.dtx
2020/11/23 | 1665 | graphics/asymptote/GUI/Widg_editBezier.py
-2020/11/23 | 16647147 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
2020/11/23 | 1658 | graphics/asymptote/prc/PRCTools/Makefile
-2020/11/23 | 165516 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma
2020/11/23 | 1651 | graphics/pgf/base/source/CircularLayout_script.h
2020/11/23 | 16492 | graphics/asymptote/base/plain_Label.asy
2020/11/23 | 16483 | graphics/asymptote/runpair.cc
@@ -1664,19 +1841,15 @@
2020/11/23 | 16150 | graphics/asymptote/base/slide.asy
2020/11/23 | 1612 | graphics/asymptote/asy-list.pl
2020/11/23 | 16121 | graphics/pgf/base/tex/pgfmoduleplot.code.tex
-2020/11/23 | 161076 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma
2020/11/23 | 160993 | graphics/pgf/base/tex/pgflibraryshapes.geometric.code.tex
2020/11/23 | 1608 | graphics/pgf/base/source/SpringEmbedderFR_script.h
2020/11/23 | 16083 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-petri.tex
2020/11/23 | 160672 | graphics/asymptote/examples/animations/dice.u3d
-2020/11/23 | 16059 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-2.9.tar.lzma
2020/11/23 | 1602396 | macros/latex/contrib/nicematrix.zip
2020/11/23 | 159 | graphics/pgf/base/doc/version-for-vtex/en/plots/pgf-parametric-example.gnuplot
2020/11/23 | 159 | graphics/pgf/base/doc/version-for-tex4ht/en/plots/pgf-parametric-example.gnuplot
2020/11/23 | 159 | graphics/pgf/base/doc/text-en/plots/pgf-parametric-example.gnuplot
2020/11/23 | 159 | graphics/asymptote/tests/types/cast.asy
-2020/11/23 | 15989 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-2.9.tar.lzma
-2020/11/23 | 159525 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma
2020/11/23 | 1594 | graphics/asymptote/pen.cc
2020/11/23 | 15929 | graphics/pgf/base/tex/tikzlibrarycalc.code.tex
2020/11/23 | 158 | graphics/asymptote/tests/frames/stat.asy
@@ -1707,11 +1880,9 @@
2020/11/23 | 15479 | graphics/pgf/base/doc/text-en/pgfmanual-en-base-transparency.tex
2020/11/23 | 15474 | graphics/pgf/base/tex/pgflibrarypatterns.meta.code.tex
2020/11/23 | 15451 | graphics/asymptote/types.h
-2020/11/23 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
2020/11/23 | 153 | graphics/asymptote/runlabel.h
2020/11/23 | 1537 | graphics/asymptote/examples/refs.bib
2020/11/23 | 1532 | graphics/pgf/base/tex/tikzlibraryshapes.gates.logic.IEC.code.tex
-2020/11/23 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
2020/11/23 | 15277 | graphics/asymptote/base/flowchart.asy
2020/11/23 | 15274 | graphics/asymptote/base/ode.asy
2020/11/23 | 1524 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-fadings.tex
@@ -1723,9 +1894,7 @@
2020/11/23 | 151 | graphics/pgf/base/doc/version-for-dvips/en/plots/pgf-parametric-example-cut.gnuplot
2020/11/23 | 151 | graphics/pgf/base/doc/version-for-dvipdfmx/en/plots/pgf-parametric-example-cut.gnuplot
2020/11/23 | 151 | graphics/pgf/base/doc/version-for-dvipdfm/en/plots/pgf-parametric-example-cut.gnuplot
-2020/11/23 | 151809 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma
2020/11/23 | 15179 | graphics/asymptote/configure.ac
-2020/11/23 | 151776 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-2.9.tar.lzma
2020/11/23 | 150 | graphics/asymptote/examples/spheresilhouette.asy
2020/11/23 | 150 | graphics/asymptote/doc/latexmkrc_asydir
2020/11/23 | 1508 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/jedi/initialpositioning/RandomInitialPositioning.lua
@@ -1744,17 +1913,14 @@
2020/11/23 | 147175 | graphics/pgf/base/doc/images/pgfmanual-mindmap-1.pdf
2020/11/23 | 1469 | graphics/asymptote/doc/png/Makefile.in
2020/11/23 | 1468 | graphics/pgf/base/lua/graphdrawing/pgf/gd/experimental/evolving/TimeSpec.lua
-2020/11/23 | 146833 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-2.9.tar.lzma
2020/11/23 | 14669 | graphics/asymptote/base/palette.asy
2020/11/23 | 1461 | graphics/asymptote/examples/logo3.asy
-2020/11/23 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
2020/11/23 | 145 | graphics/asymptote/examples/star.asy
2020/11/23 | 14536 | graphics/pgf/base/doc/text-en/pgfmanual-en-introduction.tex
2020/11/23 | 14534 | graphics/pgf/base/lua/luamath/pgf/luamath/functions.lua
2020/11/23 | 14524 | graphics/pgf/base/tex/pgflibraryplotmarks.code.tex
2020/11/23 | 14515 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-perspective.tex
2020/11/23 | 14504 | graphics/pgf/base/doc/text-en/pgfmanual-en-gd-overview.tex
-2020/11/23 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
2020/11/23 | 144 | graphics/pgf/base/doc/version-for-xetex/en/plots/pgf-parametric-example.gnuplot
2020/11/23 | 144 | graphics/pgf/base/doc/version-for-pdftex/en/plots/pgf-parametric-example.gnuplot
2020/11/23 | 144 | graphics/pgf/base/doc/version-for-luatex/en/plots/pgf-parametric-example.gnuplot
@@ -1765,7 +1931,6 @@
2020/11/23 | 144 | graphics/asymptote/doc/latexmkrc
2020/11/23 | 1446 | graphics/asymptote/webgl/vertex.glsl
2020/11/23 | 14469 | graphics/asymptote/stack.cc
-2020/11/23 | 144418 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-2.9.tar.lzma
2020/11/23 | 1440291 | graphics/asymptote/ChangeLog
2020/11/23 | 143 | graphics/asymptote/tests/gc/label.asy
2020/11/23 | 14370 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/CoarseGraph.lua
@@ -1774,9 +1939,8 @@
2020/11/23 | 142672 | graphics/pgf/base/doc/text-en/pgfmanual-en-dv-stylesheets.tex
2020/11/23 | 141 | graphics/asymptote/examples/sphere.asy
2020/11/23 | 141 | graphics/asymptote/examples/ring.asy
-2020/11/23 | 14160 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-x64-2.9.tar.lzma
-2020/11/23 | 1415728 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma
2020/11/23 | 14117 | graphics/pgf/base/tex/pgflibrarycurvilinear.code.tex
+2020/11/23 | 14106 | macros/latex/contrib/elsarticle/doc/rvdtx.sty
2020/11/23 | 14072 | graphics/asymptote/types.cc
2020/11/23 | 14014 | graphics/pgf/base/lua/graphdrawing/pgf/gd/control/ComponentAlign.lua
2020/11/23 | 139 | graphics/pgf/base/doc/images/brave-gnu-world-logo-mask.bb
@@ -1805,11 +1969,9 @@
2020/11/23 | 1337 | graphics/pgf/base/source/layered_script.h
2020/11/23 | 13375 | graphics/pgf/base/tex/pgflibrarydecorations.footprints.code.tex
2020/11/23 | 1334 | graphics/pgf/base/source/FMMMLayout_script.h
-2020/11/23 | 133473 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-2.9.tar.lzma
2020/11/23 | 13339 | graphics/asymptote/camp.l
2020/11/23 | 1331 | graphics/asymptote/tests/types/spec.asy
2020/11/23 | 132 | graphics/asymptote/tests/string/length.asy
-2020/11/23 | 13288 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-2.9.tar.lzma
2020/11/23 | 13244 | graphics/pgf/base/tex/pgfsys-luatex.def
2020/11/23 | 131 | graphics/asymptote/GUI/DebugFlags.py
2020/11/23 | 1319 | graphics/pgf/base/tex/tikzlibrarydecorations.pathreplacing.code.tex
@@ -1824,12 +1986,9 @@
2020/11/23 | 1309 | graphics/asymptote/examples/roundpath.asy
2020/11/23 | 13093 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/SpringHu2006.lua
2020/11/23 | 1308 | graphics/pgf/base/source/PlanarizationLayout_script.h
-2020/11/23 | 130510 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma
2020/11/23 | 1303 | graphics/pgf/base/tex/tikzlibraryshapes.gates.logic.US.code.tex
2020/11/23 | 1303 | graphics/pgf/base/source/FastSimpleHierarchyLayout_script.h
2020/11/23 | 13039 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-automata.tex
-2020/11/23 | 130320 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma
-2020/11/23 | 1302289 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma
2020/11/23 | 129 | graphics/asymptote/tests/gc/struct.asy
2020/11/23 | 1298 | graphics/asymptote/examples/electromagnetic.asy
2020/11/23 | 1296 | graphics/pgf/base/tex/t-pgfmod.tex
@@ -1842,7 +2001,6 @@
2020/11/23 | 127885 | graphics/asymptote/camp.tab.cc
2020/11/23 | 1276 | graphics/asymptote/base/asymptote.py
2020/11/23 | 1274 | graphics/asymptote/newexp.h
-2020/11/23 | 1274537 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-2.9.tar.lzma
2020/11/23 | 1270 | graphics/asymptote/beziercurve.h
2020/11/23 | 1266 | graphics/asymptote/drawverbatim.h
2020/11/23 | 12656 | graphics/pgf/base/tex/pgflibrarydecorations.text.code.tex
@@ -1862,7 +2020,6 @@
2020/11/23 | 1247 | graphics/asymptote/examples/animations/slidemovies.asy
2020/11/23 | 1245 | graphics/asymptote/prc/PRCTools/describeMain.cc
2020/11/23 | 1245 | graphics/asymptote/findsym.pl
-2020/11/23 | 1245396 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma
2020/11/23 | 124164 | graphics/asymptote/ReleaseNotes
2020/11/23 | 12413 | graphics/pgf/base/lua/graphdrawing/pgf/gd/phylogenetics/DistanceMatrix.lua
2020/11/23 | 1240 | graphics/asymptote/examples/arrows3.asy
@@ -1874,8 +2031,6 @@
2020/11/23 | 1235 | graphics/asymptote/examples/animations/inlinemovie.tex
2020/11/23 | 1235777 | graphics/asymptote/GL/glew.c
2020/11/23 | 1227 | graphics/asymptote/build-scripts/build-asygl
-2020/11/23 | 1227951 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma
-2020/11/23 | 1227486 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma
2020/11/23 | 1226 | graphics/asymptote/GUI/res/icons/triangle-stroked-15.svg
2020/11/23 | 12261 | graphics/pgf/base/lua/graphdrawing/pgf/gd/phylogenetics/BalancedNearestNeighbourInterchange.lua
2020/11/23 | 12259 | graphics/asymptote/knot.h
@@ -1901,7 +2056,6 @@
2020/11/23 | 11907 | graphics/asymptote/tests/gsl/random.asy
2020/11/23 | 118 | graphics/asymptote/tests/string/substr.asy
2020/11/23 | 1189 | graphics/asymptote/tests/types/var.asy
-2020/11/23 | 118974 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-2.9.tar.lzma
2020/11/23 | 1186 | graphics/asymptote/GUI/res/icons/opencurve.svg
2020/11/23 | 1186601 | graphics/asymptote/GL/glew.h
2020/11/23 | 1185 | graphics/asymptote/examples/functionshading.asy
@@ -1914,8 +2068,8 @@
2020/11/23 | 1171 | graphics/asymptote/parser.h
2020/11/23 | 1169 | graphics/pgf/base/tex/tikzlibraryer.code.tex
2020/11/23 | 1169 | graphics/pgf/base/source/SiftingHeuristic_script.h
-2020/11/23 | 1168166 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-2.9.tar.lzma
2020/11/23 | 11672 | graphics/asymptote/Makefile.in
+2020/11/23 | 116662 | macros/latex/contrib/ut-thesis/ut-thesis.pdf
2020/11/23 | 11656 | graphics/asymptote/base/binarytree.asy
2020/11/23 | 1164 | graphics/asymptote/examples/genustwo.asy
2020/11/23 | 11642 | graphics/asymptote/coder.h
@@ -1925,23 +2079,19 @@
2020/11/23 | 116025 | graphics/asymptote/predicates.cc
2020/11/23 | 11601 | graphics/pgf/base/doc/text-en/pgfmanual-en-gd-display-layer.tex
2020/11/23 | 115 | graphics/asymptote/doc/onecontour.asy
-2020/11/23 | 115942 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-2.9.tar.lzma
2020/11/23 | 11566 | graphics/pgf/base/doc/version-for-dvisvgm/pgfmanual-dvisvgm.cfg
2020/11/23 | 11557 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-edges.tex
2020/11/23 | 11541 | graphics/asymptote/aspy.py
-2020/11/23 | 1153 | systems/win32/miktex/tm/packages/next/pr.ini
2020/11/23 | 11528 | graphics/asymptote/GUI/InplaceAddObj.py
2020/11/23 | 11521 | graphics/asymptote/util.cc
2020/11/23 | 1151 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/layered/OptimalRanking.lua
2020/11/23 | 1151 | graphics/asymptote/callable.cc
2020/11/23 | 115153 | graphics/pgf/base/doc/text-en/pgfmanual-en-tikz-animations.tex
2020/11/23 | 1149 | graphics/asymptote/guide.cc
+2020/11/23 | 1148 | macros/latex/contrib/ut-thesis/README
2020/11/23 | 1148 | graphics/asymptote/GUI/configs/xasyconfig.cson
2020/11/23 | 1147012 | systems/texlive/tlnet/archive/hyperxmp.doc.r56984.tar.xz
-2020/11/23 | 1146535 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma
-2020/11/23 | 1146485 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma
2020/11/23 | 1144403 | macros/latex/contrib/nameauth/nameauth.pdf
-2020/11/23 | 114400 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma
2020/11/23 | 1142 | graphics/pgf/base/doc/licenses/LICENSE
2020/11/23 | 1142 | graphics/asymptote/envcompleter.cc
2020/11/23 | 11407 | graphics/pgf/base/doc/text-en/pgfmanual-en-tikz-design.tex
@@ -1958,7 +2108,6 @@
2020/11/23 | 113 | graphics/pgf/base/doc/text-en/plots/pgf-exp.gnuplot
2020/11/23 | 113 | graphics/asymptote/patches/fixmem.reg
2020/11/23 | 11395 | graphics/pgf/base/tex/tikzlibrarytopaths.code.tex
-2020/11/23 | 113870 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma
2020/11/23 | 1135 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/ControlStart.lua
2020/11/23 | 11349 | graphics/pgf/base/tex/pgfsys-dvi.def
2020/11/23 | 11324 | graphics/pgf/base/lua/graphdrawing/pgf/gd/trees/doc.lua
@@ -1966,8 +2115,8 @@
2020/11/23 | 1131 | graphics/asymptote/gl-matrix-2.4.0-pruned/LICENSE.js
2020/11/23 | 11312 | graphics/pgf/base/lua/graphdrawing/pgf/gd/model/Vertex.lua
2020/11/23 | 1126 | graphics/asymptote/coenv.cc
-2020/11/23 | 1125036 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-2.9.tar.lzma
2020/11/23 | 1124 | graphics/asymptote/GUI/res/icons/android-locate.svg
+2020/11/23 | 1122 | macros/latex/contrib/ut-thesis/ut-thesis.ins
2020/11/23 | 11217 | graphics/asymptote/texfile.h
2020/11/23 | 11212 | graphics/asymptote/drawelement.h
2020/11/23 | 1120 | graphics/asymptote/examples/animations/wheel.asy
@@ -1998,7 +2147,6 @@
2020/11/23 | 108 | graphics/pgf/base/doc/version-for-tex4ht/en/plots/pgf-sin.gnuplot
2020/11/23 | 108 | graphics/pgf/base/doc/text-en/plots/pgf-sin.gnuplot
2020/11/23 | 108 | graphics/asymptote/GUI/res/icons/subdirectory-left.svg
-2020/11/23 | 108945 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma
2020/11/23 | 1087 | graphics/pgf/base/source/multilevelmixer_script.h
2020/11/23 | 1087 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/SpringElectricalLayouts.lua
2020/11/23 | 1085 | graphics/asymptote/GUI/res/icons/openpolygon.svg
@@ -2017,7 +2165,6 @@
2020/11/23 | 1077 | graphics/pgf/base/source/SimpleDemoOGDF.c++
2020/11/23 | 1077 | graphics/pgf/base/source/BarycenterPlacer_script.h
2020/11/23 | 10778 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-matrices.tex
-2020/11/23 | 1076055 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma
2020/11/23 | 1068 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/layered/SiftingHeuristic.lua
2020/11/23 | 106851 | graphics/pgf/base/doc/text-en/pgfmanual-en-tikz-arrows.tex
2020/11/23 | 1065 | graphics/asymptote/examples/shellmethod.asy
@@ -2037,7 +2184,6 @@
2020/11/23 | 104 | graphics/asymptote/examples/tiling.asy
2020/11/23 | 104935 | graphics/pgf/base/tex/pgfmathfloat.code.tex
2020/11/23 | 10461 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-shadows.tex
-2020/11/23 | 104487 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma
2020/11/23 | 10445 | graphics/asymptote/INSTALL
2020/11/23 | 1042 | graphics/asymptote/examples/NURBSsphere.asy
2020/11/23 | 10416 | graphics/pgf/base/doc/text-en/pgfmanual-en-math-algorithms.tex
@@ -2050,7 +2196,6 @@
2020/11/23 | 1030 | graphics/pgf/base/lua/graphdrawing/pgf/gd/model/Hyperedge.lua
2020/11/23 | 1030 | graphics/asymptote/absyn.h
2020/11/23 | 102 | graphics/asymptote/tests/gc/file.asy
-2020/11/23 | 102882 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma
2020/11/23 | 10271 | graphics/asymptote/GUI/windows/custMatTransform.ui
2020/11/23 | 1024756 | systems/texlive/tlnet/archive/chemmacros.doc.r56983.tar.xz
2020/11/23 | 1022 | graphics/pgf/base/source/OptimalRanking_script.h
@@ -2065,7 +2210,6 @@
2020/11/23 | 1017 | graphics/pgf/base/tex/pgfexternal.tex
2020/11/23 | 1017 | graphics/pgf/base/source/EdgeCoverMerger_script.h
2020/11/23 | 10165 | graphics/pgf/base/tex/pgfmathfunctions.base.code.tex
-2020/11/23 | 101592 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma
2020/11/23 | 1013 | graphics/asymptote/GUI/res/icons/chevron-with-circle-left.svg
2020/11/23 | 10130 | graphics/pgf/base/tex/pgfmodulesnakes.code.tex
2020/11/23 | 1010 | graphics/asymptote/examples/washermethod.asy
@@ -2082,7 +2226,6 @@
2020/11/22 | 979 | macros/latex/contrib/hyperxmp/hyperxmp-add-bytecount.1
2020/11/22 | 9371 | macros/latex/contrib/chemmacros/chemmacros.module.chemformula.code.tex
2020/11/22 | 9080 | systems/texlive/tlnet/archive/subfiles.source.r56977.tar.xz
-2020/11/22 | 897220 | systems/texlive/tlnet/archive/tex4ht.r56978.tar.xz
2020/11/22 | 882709 | macros/latex/contrib/acro/acro-manual.pdf
2020/11/22 | 8424 | macros/latex/contrib/chemmacros/chemmacros.sty
2020/11/22 | 8175 | macros/latex/contrib/acro/examples/acro.example.issue-119.pdf
@@ -2098,6 +2241,7 @@
2020/11/22 | 6325 | macros/latex/contrib/chemmacros/chemmacros.module.tikz.code.tex
2020/11/22 | 6265 | macros/latex/contrib/chemmacros/chemmacros.module.lang.code.tex
2020/11/22 | 6226 | macros/latex/contrib/chemmacros/chemmacros.module.polymers.code.tex
+2020/11/22 | 610582 | systems/unix/tex-fpc/tex-fpc.pdf
2020/11/22 | 6070 | macros/latex/contrib/chemmacros/chemmacros.module.thermodynamics.code.tex
2020/11/22 | 5864 | macros/latex/contrib/chemmacros/chemmacros.module.charges.code.tex
2020/11/22 | 5439 | macros/latex/contrib/chemmacros/chemmacros.module.acid-base.code.tex
@@ -2133,7 +2277,6 @@
2020/11/22 | 2294 | macros/latex/contrib/hyperxmp/README
2020/11/22 | 2284 | systems/texlive/tlnet/archive/subfiles.r56977.tar.xz
2020/11/22 | 22752 | macros/latex/contrib/acro/examples/acro.example.texsx-513623.pdf
-2020/11/22 | 218656 | systems/texlive/tlnet/archive/texlive-scripts.doc.r56975.tar.xz
2020/11/22 | 21350 | macros/latex/contrib/chemmacros/chemmacros.module.orbital.code.tex
2020/11/22 | 2104 | macros/latex/contrib/acro/README
2020/11/22 | 20922 | macros/latex/contrib/acro/examples/acro.example.acflike.pdf
@@ -2158,9 +2301,7 @@
2020/11/22 | 1372782 | macros/latex/contrib/acro.zip
2020/11/22 | 13686 | macros/latex/contrib/acro/examples/acro.example.possessive.pdf
2020/11/22 | 1367199 | macros/latex/contrib/hyperxmp.zip
-2020/11/22 | 136160 | systems/texlive/tlnet/archive/tex4ht.doc.r56978.tar.xz
2020/11/22 | 135526 | macros/latex/contrib/chemmacros/chemmacros4.sty
-2020/11/22 | 131936 | systems/texlive/tlnet/archive/texlive-scripts.r56975.tar.xz
2020/11/22 | 12893 | macros/latex/contrib/chemmacros/chemmacros-manual.cls
2020/11/22 | 125351 | macros/latex/contrib/acro/examples/acro.example.basic.pdf
2020/11/22 | 11394 | macros/latex/contrib/hyperxmp/einstein-xmp.tex
@@ -2172,12 +2313,12 @@
2020/11/21 | 811616 | systems/win32/w32tex/win64/aleph-w64.tar.xz
2020/11/21 | 741687 | systems/win32/w32tex/ChangeLog
2020/11/21 | 6212 | systems/texlive/tlnet/archive/collection-latexextra.r56970.tar.xz
-2020/11/21 | 5759 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
2020/11/21 | 5271 | macros/latex/contrib/orcidlink/orcidlink.dtx
2020/11/21 | 5173712 | systems/win32/w32tex/aleph-w32.tar.xz
2020/11/21 | 47596 | systems/texlive/tlnet/archive/xkeyval.source.r56971.tar.xz
2020/11/21 | 401704480 | systems/win32/w32tex/ltxpkgdocs.tar.xz
2020/11/21 | 388616 | systems/texlive/tlnet/archive/xkeyval.doc.r56971.tar.xz
+2020/11/21 | 304 | systems/unix/tex-fpc/shell/itgl
2020/11/21 | 27457 | macros/latex/contrib/orcidlink/preview.png
2020/11/21 | 2593956 | systems/win32/w32tex/tex4htk-w32.tar.xz
2020/11/21 | 2322 | macros/latex/contrib/orcidlink/orcidlink.ins
@@ -2185,6 +2326,9 @@
2020/11/21 | 164441 | macros/latex/contrib/orcidlink.zip
2020/11/21 | 135025 | macros/latex/contrib/orcidlink/orcidlink.pdf
2020/11/21 | 13088 | systems/texlive/tlnet/archive/xkeyval.r56971.tar.xz
+2020/11/20 | 99904 | macros/latex/contrib/elsarticle/doc/elstest-1p.pdf
+2020/11/20 | 99256 | macros/latex/contrib/elsarticle/doc/elstest-5p.pdf
+2020/11/20 | 98705 | macros/latex/contrib/elsarticle/doc/elstest-3p.pdf
2020/11/20 | 9464 | systems/texlive/tlnet/archive/autoaligne.r56966.tar.xz
2020/11/20 | 86391 | graphics/tpic2pdftex.zip
2020/11/20 | 54300 | systems/texlive/tlnet/archive/reledmac.r56968.tar.xz
@@ -2198,16 +2342,24 @@
2020/11/20 | 356128 | systems/texlive/tlnet/archive/autoaligne.doc.r56966.tar.xz
2020/11/20 | 33927512 | systems/win32/w32tex/ltxpkgs.tar.xz
2020/11/20 | 3221746 | macros/latex/contrib/acrotex.zip
+2020/11/20 | 307 | systems/unix/tex-fpc/shell/tgl
2020/11/20 | 259561 | dviware/dviljk.zip
+2020/11/20 | 248968 | macros/latex/contrib/elsarticle/doc/elstest-1pdoubleblind.pdf
2020/11/20 | 232311 | macros/latex/contrib/acrotex/eforms.dtx
2020/11/20 | 230832 | indexing/makeindexk.zip
2020/11/20 | 217711 | macros/latex/contrib/xkeyval/xkeyval.dtx
+2020/11/20 | 2070 | macros/latex/contrib/elsarticle/README
2020/11/20 | 2070208 | systems/texlive/tlnet/archive/kpfonts-otf.doc.r56965.tar.xz
2020/11/20 | 206636 | systems/texlive/tlnet/archive/reledmac.source.r56968.tar.xz
2020/11/20 | 176311 | dviware/dvidvi.zip
+2020/11/20 | 153502 | macros/latex/contrib/elsarticle/doc/jfigs.pdf
2020/11/20 | 129104 | support/lacheck.zip
+2020/11/20 | 12495 | macros/latex/contrib/elsarticle/doc/pdfwidgets.sty
2020/11/20 | 10201624 | systems/texlive/tlnet/archive/reledmac.doc.r56968.tar.xz
2020/11/20 | 1011932 | systems/texlive/tlnet/archive/kpfonts-otf.r56965.tar.xz
+2020/11/20 | 100656 | macros/latex/contrib/elsarticle/doc/1pseperateaug.pdf
+2020/11/20 | 100216 | macros/latex/contrib/elsarticle/doc/1psingleauthorgroup.pdf
+2020/11/20 | 100019 | macros/latex/contrib/elsarticle/doc/elstest-3pd.pdf
2020/11/19 | 989274 | macros/latex/contrib/reledmac/reledpar.pdf
2020/11/19 | 9804 | macros/latex/contrib/reledmac/examples/1-sidenotes.tex
2020/11/19 | 96556 | fonts/kpfonts-otf/fonts/KpSans-Bold.otf
@@ -2429,56 +2581,3 @@
2020/11/18 | 126558 | macros/latex/contrib/acrotex/examples/jquiztst.pdf
2020/11/18 | 1095707 | macros/latex/contrib/teubner.zip
2020/11/18 | 10316 | macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/beamerouterthemefocus.sty
-2020/11/17 | 991820 | macros/latex/contrib/acrotex/doc/eformman.pdf
-2020/11/17 | 9720 | systems/texlive/tlnet/archive/skdoc.r56950.tar.xz
-2020/11/17 | 951 | macros/latex/contrib/ntgclass/README
-2020/11/17 | 93960859 | systems/win32/w32tex/TLW64/tl-win64.zip
-2020/11/17 | 9020 | systems/texlive/tlnet/archive/bookcover.source.r56947.tar.xz
-2020/11/17 | 807 | macros/latex/contrib/datax/README.md
-2020/11/17 | 784052 | systems/texlive/tlnet/archive/factura.doc.r56948.tar.xz
-2020/11/17 | 73520 | systems/texlive/tlnet/archive/factura.source.r56948.tar.xz
-2020/11/17 | 68170 | macros/luatex/optex/doc/optex-math.tex
-2020/11/17 | 663 | macros/latex/contrib/ntgclass/CATALOG
-2020/11/17 | 578362 | macros/latex/contrib/acrotex/exerquiz.dtx
-2020/11/17 | 53244 | systems/texlive/tlnet/archive/acmart.source.r56946.tar.xz
-2020/11/17 | 531316 | systems/texlive/tlnet/archive/mismath.doc.r56949.tar.xz
-2020/11/17 | 5052 | macros/latex/contrib/datax/datax.dtx
-2020/11/17 | 486068 | macros/latex/contrib/ntgclass/ntgclass.pdf
-2020/11/17 | 432 | systems/texlive/tlnet/archive/lshort-italian.r56945.tar.xz
-2020/11/17 | 42506 | macros/luatex/optex/base/math-macros.opm
-2020/11/17 | 4124 | macros/luatex/optex/base/optex.ini
-2020/11/17 | 3884 | macros/luatex/optex/doc/optex-doc.tex
-2020/11/17 | 3842060 | systems/win32/w32tex/luajittex-dev-w32.tar.xz
-2020/11/17 | 3816524 | systems/win32/w32tex/luajittex-w32.tar.xz
-2020/11/17 | 3815104 | systems/win32/w32tex/luajittex-exp-w32.tar.xz
-2020/11/17 | 37604 | systems/texlive/tlnet/archive/acmart.r56946.tar.xz
-2020/11/17 | 3672 | macros/luatex/optex/README
-2020/11/17 | 3668 | systems/texlive/tlnet/archive/bookcover.r56947.tar.xz
-2020/11/17 | 3623984 | systems/texlive/tlnet/archive/lshort-italian.doc.r56945.tar.xz
-2020/11/17 | 3527600 | systems/texlive/tlnet/archive/acmart.doc.r56946.tar.xz
-2020/11/17 | 3447684 | systems/win32/w32tex/win64/luajittex-w64.tar.xz
-2020/11/17 | 3446948 | systems/win32/w32tex/win64/luajittex-dev-w64.tar.xz
-2020/11/17 | 3432148 | systems/win32/w32tex/win64/luajittex-exp-w64.tar.xz
-2020/11/17 | 324360 | systems/texlive/tlnet/archive/skdoc.doc.r56950.tar.xz
-2020/11/17 | 3112488 | systems/win32/w32tex/win64/luatex-dev-w64.tar.xz
-2020/11/17 | 3105540 | systems/win32/w32tex/win64/luatex-w64.tar.xz
-2020/11/17 | 3100440 | systems/win32/w32tex/win64/luatex-exp-w64.tar.xz
-2020/11/17 | 2784 | systems/texlive/tlnet/archive/mismath.r56949.tar.xz
-2020/11/17 | 27656 | systems/texlive/tlnet/archive/skdoc.source.r56950.tar.xz
-2020/11/17 | 27112 | systems/texlive/tlnet/archive/factura.r56948.tar.xz
-2020/11/17 | 2176983 | macros/luatex/optex.zip
-2020/11/17 | 1930441 | macros/latex/contrib/ntgclass.zip
-2020/11/17 | 186814 | macros/latex/contrib/acrotex/doc/eformman.tex
-2020/11/17 | 18587584 | systems/win32/w32tex/luatex-dev-w32.tar.xz
-2020/11/17 | 18558336 | systems/win32/w32tex/luatex-exp-w32.tar.xz
-2020/11/17 | 18546236 | systems/win32/w32tex/luatex-w32.tar.xz
-2020/11/17 | 183352 | macros/latex/contrib/ntgclass/ntgclass.dtx
-2020/11/17 | 178392 | macros/latex/contrib/datax/datax.pdf
-2020/11/17 | 1781 | macros/latex/contrib/datax/datax.ins
-2020/11/17 | 1742484 | systems/texlive/tlnet/archive/bookcover.doc.r56947.tar.xz
-2020/11/17 | 15795 | CTAN.sites
-2020/11/17 | 14616 | systems/texlive/tlnet/archive/mismath.source.r56949.tar.xz
-2020/11/17 | 13937 | macros/latex/contrib/ntgclass/ChangeLog
-2020/11/17 | 1364576 | macros/latex/contrib/acrotex/doc/aeb_man.pdf
-2020/11/17 | 1279767 | macros/luatex/optex/doc/optex-doc.pdf
-2020/11/17 | 12324 | macros/luatex/optex/base/prefixed.opm
diff --git a/macros/latex/contrib/bewerbung/README b/macros/latex/contrib/bewerbung/README
index 913c9d3f9d..f30014d41b 100644
--- a/macros/latex/contrib/bewerbung/README
+++ b/macros/latex/contrib/bewerbung/README
@@ -7,11 +7,11 @@
printing a table with the latest applications that can be shown to the german authorities. The
data of the applications can be edited in a simple csv file.
+ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -+
- Version: 1.1
- Last Change: 2015-07-14
+ Version: 1.2
+ Last Change: 2020-11-24
Current Maintainer: André Hilbig
mail@andrehilbig.de
- http://www.andrehilbig.de/index.cgi/Publications/Bewerbung
+ https://www.andrehilbig.de/index.cgi/Publications/Bewerbung
+ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -+
This work may be distributed and/or modified under the
diff --git a/macros/latex/contrib/bewerbung/README_DE b/macros/latex/contrib/bewerbung/README_DE
index b6a9d37867..d28d486fad 100644
--- a/macros/latex/contrib/bewerbung/README_DE
+++ b/macros/latex/contrib/bewerbung/README_DE
@@ -8,11 +8,11 @@
vorgelegt werden kann. Die Daten der Bewerbungsversuche werden in einer simplen csv-Datei
verwaltet.
+ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -+
- Version: 1.1
- Last Change 2015-07-14
+ Version: 1.2
+ Last Change 2020-11-24
Current Maintainer: André Hilbig
mail@andrehilbig.de
- http://www.andrehilbig.de/index.cgi/Publications/Bewerbung
+ https://www.andrehilbig.de/index.cgi/Publications/Bewerbung
+ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -+
This work may be distributed and/or modified under the
diff --git a/macros/latex/contrib/bewerbung/argetabelle-example.pdf b/macros/latex/contrib/bewerbung/argetabelle-example.pdf
index 102f132ad0..7d795ce9e7 100644
--- a/macros/latex/contrib/bewerbung/argetabelle-example.pdf
+++ b/macros/latex/contrib/bewerbung/argetabelle-example.pdf
Binary files differ
diff --git a/macros/latex/contrib/bewerbung/bewerbung-example.pdf b/macros/latex/contrib/bewerbung/bewerbung-example.pdf
index d51e104a9f..5a563556ea 100644
--- a/macros/latex/contrib/bewerbung/bewerbung-example.pdf
+++ b/macros/latex/contrib/bewerbung/bewerbung-example.pdf
Binary files differ
diff --git a/macros/latex/contrib/bewerbung/bewerbung.dtx b/macros/latex/contrib/bewerbung/bewerbung.dtx
index a86c324314..3081b10a14 100644
--- a/macros/latex/contrib/bewerbung/bewerbung.dtx
+++ b/macros/latex/contrib/bewerbung/bewerbung.dtx
@@ -1,20 +1,20 @@
%\iffalse
% bewerbung.dtx generated using makedtx version 0.94b (c) Nicola Talbot
% Command line args:
-% -author "André Hilbig, mail@andrehilbig.de"
-% -codetitle "Implementation"
-% -setambles "neueBewerbung.sh=>\nopreamble\nopostamble"
-% -date "2015-07-14:14:18:49 -- Version 1.1"
% -src "(.*)\.sty=>\1.sty"
% -src "(.*)\.cls=>\1.cls"
% -src "neueBewerbung.sh=>neueBewerbung.sh"
% -src "(.*)\.inc=>\1.inc"
+% -codetitle "Implementation"
+% -author "André Hilbig, mail@andrehilbig.de"
% -doc "../dokumentation.tex"
+% -setambles "neueBewerbung.sh=>\nopreamble\nopostamble"
+% -date "2020-11-24:11:30:14 -- Version 1.2"
% -macrocode "neueBewerbung.sh"
% -comment "neueBewerbung.sh"
% -comment "config.inc=>config.inc"
% bewerbung
-% Created on 2015-07-14:14:18:49 -- Version 1.1/7/14 14:18
+% Created on 2020-11-24:11:30:14 -- Version 1.2/11/24 11:30
%\fi
%\iffalse
%<*package>
@@ -37,7 +37,7 @@
%\fi
% \iffalse
% Doc-Source file to use with LaTeX2e
-% Copyright (C) 2015-07-14:14:18:49 -- Version 1.1 André Hilbig, mail@andrehilbig.de, all rights reserved.
+% Copyright (C) 2020-11-24:11:30:14 -- Version 1.2 André Hilbig, mail@andrehilbig.de, all rights reserved.
% \fi
% \iffalse
%<*driver>
@@ -220,7 +220,7 @@
\xspaceaddexceptions{\guillemotright,\guillemotleft}
-\CheckSum{2158}
+\CheckSum{2181}
\begin{document}
@@ -234,7 +234,7 @@
% Ãœbersichtstabelle zur Dokumentation der Bewerbungsversuche}
% \author{Andr\'e Hilbig \\ \texttt{mail@andrehilbig.de} \\
% \url{http://www.andrehilbig.de/index.cgi/Publications/Bewerbung}}
-% \date{2015-07-14}
+% \date{2020-11-24}
% \maketitle
% \begin{abstract}
% \foreignlanguage{english}{
@@ -325,6 +325,11 @@
% \item Satz in der Dokumentation überarbeitet
% \item Kontaktdaten in den READMEs korrigiert
% \end{itemize}
+% \item[v1.2]
+% \begin{itemize}
+% \item Anpassungen an neuere \LaTeX Versionen durchgeführt
+% \item Kleinere Anpassungen an die Titelseite
+% \end{itemize}
% \end{description}
%
% \section{Installation}
@@ -448,7 +453,8 @@
% Der Klasse |bewerbung| kann die Option |idPlain| übergeben werden. Dann wird nach
% der exakten Ãœbereinstimmung der hier notierten Identifikation mit dem Feld ID gesucht.
% Dies muss keine Zahl sein. Wird keine Option übergeben wird die notierte Zahl als
-% Zeilennummer startend bei 0 interpretiert.
+% Zeilennummer startend bei 0 interpretiert. Außerdem kann man die Option |nophone|
+% übergeben, um das Telefonfeld auszublenden.
%
% \DescribeMacro{\Anhang}\label{Anhang}
% An zwei Stellen in einer Bewerbung werden angehangene Dokumente ausgewiesen: Titelseite
@@ -1269,10 +1275,10 @@
% name and title
% \begin{macrocode}
\begin{minipage}[b]{\@titlenamewidth}%
+ \firstnamestyle{\firstname}\\[0.75em] %
% \end{macrocode}
%% ahilbig begin
% \begin{macrocode}
- \firstnamestyle{\firstname}\\ %
\familynamestyle{\familyname}%
\ifdefempty{\acadtitle}{}{%
\\[1.25em]\acadtitlestyle{\acadtitle}}%
@@ -3016,7 +3022,7 @@
%
% \begin{macro}{\tel}
% \begin{macrocode}
-\providecommand{\tel}{}
+\providecommand{\tel}{empty}
% \end{macrocode}
% \end{macro}
%
@@ -3044,10 +3050,10 @@
% \begin{macrocode}
\ProvideDocumentCommand{\anhang}{o}{%
\IfNoValueTF{#1}{%
- Curriculum Vitae.\anhangTmpFlat
+ \lebenslaufTitel.\anhangTmpFlat
}{%
\item Anschreiben
- \item Curriculum Vitae
+ \item \lebenslaufTitel
\anhangTmpList
} %
}
@@ -3421,7 +3427,9 @@
\providecommand{\runKomaVar}{%
\setkomavar{fromname}{\fullname} %
\setkomavar{fromaddress}{\street\\\plz\xspace\stadt} %
- \setkomavar{fromphone}[\Telefon\enskip]{\tel} %
+ \ifthenelse{\equal{\tel}{empty}}{}{%
+ \setkomavar{fromphone}[\Telefon\enskip]{\tel} %
+ }%
\setkomavar{fromfax}[\Mobilefone\enskip]{\mobile} %
\setkomavar{fromemail}[\Letter\enskip]{\email} %
\setkomavar{signature}{\vorname\xspace\name} %
@@ -3442,7 +3450,9 @@
\renewcommand*{\addressstreet}{\street} %
\renewcommand*{\addresscity}{\plz\xspace\stadt} %
\renewcommand*{\address}{\street\\\plz\xspace\stadt} %
- \renewcommand*{\phonenr}{\tel} %
+ \ifthenelse{\equal{\tel}{empty}}{}{%
+ \renewcommand*{\phonenr}{\tel} %
+ }%
% \end{macrocode}
%\iffalse
%% \renewcommand*{\extrainfo}{Some extra info}
@@ -3499,7 +3509,10 @@
\ProvideDocumentEnvironment{lebenslauf}{oo}{%
\clearpage
\newgeometry{top=2.5cm,left=3cm,right=2.5cm,bottom=3cm}
- \pagestyle{empty}
+ %\pagestyle{empty}
+ \pagenumbering{arabic}
+ \hypersetup{hidelinks}
+ \ofoot{Seite \thepage\ von \pageref{LastPage}}
\ifthenelse{\equal{#1}{none}}{\renewcommand{\@listitemsymbol}{}}{} %
%\iffalse
%%\clearscrheadfoot
@@ -3513,6 +3526,7 @@
\fullname\\
\todayOrt, \todayTime
\end{tabular}
+ \label{LastPage}
\end{raggedright}
\IfNoValueF{#2}{%
\newpage %
@@ -3669,16 +3683,27 @@ setkeys=\kvsetkeys%
\DeclareStringOption[classic]{lebenslaufStyle}[classic]
\DeclareStringOption[anschrift.csv]{anschrift}[anschrift.csv]
\DeclareBoolOption{idPlain}
+\DeclareBoolOption{nophone}
\ProcessKeyvalOptions{ahbewerbung} % evaluate keyval options
\DeclareOption*{\PassOptionsToClass{\CurrentOption}{scrlttr2}}
\ProcessOptions\relax
-\LoadClass[
- DIN, pagenumber=botright, backaddress=true, parskip=half,%
- fromalign=left, fromemail=true, fromfax=true, %
- fromphone=true, fromurl=false, fromalign=right, %
- fromlogo=false, fromrule=true, foldmarks=true, %
- paper=a4, fontsize=10pt,enlargefirstpage=true, firstfoot=false
-]{scrlttr2}
+\ifahbewerbung@nophone %
+ \LoadClass[
+ DIN, pagenumber=botright, backaddress=true, parskip=half,%
+ fromalign=left, fromemail=true, fromfax=true, %
+ fromphone=false, fromurl=false, fromalign=right, %
+ fromlogo=false, fromrule=true, foldmarks=true, %
+ paper=a4, fontsize=10pt,enlargefirstpage=true, firstfoot=false
+ ]{scrlttr2}
+\else %
+ \LoadClass[
+ DIN, pagenumber=botright, backaddress=true, parskip=half,%
+ fromalign=left, fromemail=true, fromfax=true, %
+ fromphone=true, fromurl=false, fromalign=right, %
+ fromlogo=false, fromrule=true, foldmarks=true, %
+ paper=a4, fontsize=10pt,enlargefirstpage=true, firstfoot=false
+ ]{scrlttr2}
+\fi %
% \end{macrocode}
%\iffalse
%% import from komacv.cls for easier maintaining
@@ -3690,7 +3715,7 @@ setkeys=\kvsetkeys%
ifluatex,%
ifxetex,%
marvosym, %
- scrpage2,%
+ scrlayer-scrpage,%
array,%
graphicx,%
microtype,%
@@ -3842,9 +3867,9 @@ cd ..
\textbf{\meinBeruf} \\ \ \\
\street\\
\plz\ \stadt\\
- \Letter\enskip \email\\
\Telefon\enskip \tel\\
\Mobilefone\enskip \mobile
+ \letter\enskip \email\\
\vfill
\textbf{Inhalt}
@@ -3861,8 +3886,10 @@ cd ..
\leftskip=0.3cm
\hspace*{0.1cm}\textit{bei}\\ % hier gehört bei rein
\textbf{\bewerbungFirma}\\
- \bewerbungFirmaAnrede\
- \bewerbungFirmaName\\
+ \ifthenelse{\equal{\bewerbungFirmaName}{n}}{}{%
+ \bewerbungFirmaAnrede\
+ \bewerbungFirmaName\\
+ }
\bewerbungFirmaStr\\
\bewerbungFirmaPlz\ \bewerbungFirmaOrt
% \end{macrocode}
diff --git a/macros/latex/contrib/bewerbung/bewerbung.ins b/macros/latex/contrib/bewerbung/bewerbung.ins
index 2d08da06b3..049fe18f90 100644
--- a/macros/latex/contrib/bewerbung/bewerbung.ins
+++ b/macros/latex/contrib/bewerbung/bewerbung.ins
@@ -1,10 +1,10 @@
-% bewerbung.ins generated using makedtx version 0.94b 2015-07-14:14:18:49 -- Version 1.1/7/14 14:18
+% bewerbung.ins generated using makedtx version 0.94b 2020-11-24:11:30:14 -- Version 1.2/11/24 11:30
\input docstrip
\preamble
bewerbung.dtx
- Copyright 2015-07-14:14:18:49 -- Version 1.1 André Hilbig, mail@andrehilbig.de
+ Copyright 2020-11-24:11:30:14 -- Version 1.2 André Hilbig, mail@andrehilbig.de
This work may be distributed and/or modified under the
conditions of the LaTeX Project Public License, either version 1.3
diff --git a/macros/latex/contrib/bewerbung/bewerbung.pdf b/macros/latex/contrib/bewerbung/bewerbung.pdf
index 280b480d8f..6d8510b439 100644
--- a/macros/latex/contrib/bewerbung/bewerbung.pdf
+++ b/macros/latex/contrib/bewerbung/bewerbung.pdf
Binary files differ
diff --git a/macros/latex/contrib/elsarticle/README b/macros/latex/contrib/elsarticle/README
index cd0929a7d7..d36127266b 100644
--- a/macros/latex/contrib/elsarticle/README
+++ b/macros/latex/contrib/elsarticle/README
@@ -40,7 +40,7 @@ use the makefile. Use the target `all' (eg: make all).
The above procedure will create a print version, namely elsdoc.pdf.
-Copyright 2007-2019, Elsevier. Bugs, feature requests, suggestions and
+Copyright 2007-2020, Elsevier. Bugs, feature requests, suggestions and
comments may be mailed to elsarticle@stmdocs.in. elsarticle.cls,
related documentation and supporting packages are released under the
LATEX Project Public Licence, either version 1.3 or any later
diff --git a/macros/latex/contrib/elsarticle/doc/elsdoc.pdf b/macros/latex/contrib/elsarticle/doc/elsdoc.pdf
index 1669827334..47d7c8d3a2 100644
--- a/macros/latex/contrib/elsarticle/doc/elsdoc.pdf
+++ b/macros/latex/contrib/elsarticle/doc/elsdoc.pdf
Binary files differ
diff --git a/macros/latex/contrib/elsarticle/doc/elsdoc.tex b/macros/latex/contrib/elsarticle/doc/elsdoc.tex
index 0c3e02cb31..e466bdd7fc 100644
--- a/macros/latex/contrib/elsarticle/doc/elsdoc.tex
+++ b/macros/latex/contrib/elsarticle/doc/elsdoc.tex
@@ -1,5 +1,5 @@
%%
-%% Copyright 2007-2019 Elsevier Ltd
+%% Copyright 2007-2020 Elsevier Ltd
%%
%% This file is part of the 'Elsarticle Bundle'.
%% ---------------------------------------------
@@ -14,7 +14,7 @@
%% The list of all files belonging to the 'Elsarticle Bundle' is
%% given in the file `manifest.txt'.
%%
-%% $Id: elsdoc.tex 160 2019-01-14 09:25:49Z rishi $
+%% $Id: elsdoc.tex 192 2020-11-23 11:14:41Z rishi $
%%
\documentclass[a4paper,12pt]{article}
@@ -71,7 +71,7 @@
\author{Elsevier Ltd}
\contact{elsarticle@stmdocs.in}
-\version{3.2}
+\version{3.3}
\date{\today}
\maketitle
@@ -278,9 +278,7 @@ An example of coding the first type is provided below.
\author[3]{CV Rajagopal\fnref{fn1,fn3}}
\ead[url]{www.stmdocs.in}
-\end{vquote}
-\begin{vquote}
\cortext[cor1]{Corresponding author}
\fntext[fn1]{This is the first author footnote.}
\fntext[fn2]{Another author footnote, this is a very long
@@ -289,12 +287,27 @@ An example of coding the first type is provided below.
lines of footnote text.}
\fntext[fn3]{Yet another author footnote.}
- \address[1]{Elsevier B.V., Radarweg 29, 1043 NX Amsterdam,
- The Netherlands}
- \address[2]{Sayahna Foundations, JWRA 34, Jagathy,
- Trivandrum 695014, India}
- \address[3]{STM Document Engineering Pvt Ltd., Mepukada,
- Malayinkil, Trivandrum 695571, India}
+ \affiliation[1]{organization={Elsevier B.V.},
+ addressline={Radarweg 29},
+ postcode={1043 NX},
+ city={Amsterdam},
+ country={The Netherlands}}
+
+ \affiliation[2]{organization={Sayahna Foundation},
+ addressline={JWRA 34, Jagathy},
+ city={Trivandrum}
+ postcode={695014},
+ country={India}}
+\end{vquote}
+
+\begin{vquote}
+
+ \affiliation[3]{organization={STM Document Engineering
+ Pvt Ltd.},
+ addressline={Mepukada, Malayinkil},
+ city={Trivandrum}
+ postcode={695571},
+ country={India}}
\end{vquote}
The output of the above \TeX{} source is given in Clips~\ref{clip1} and
@@ -312,7 +325,7 @@ Clip~\ref{clip1} and the footer area is given in Clip~\ref{clip2}.
\def\rulecolor{orange}
Most of the commands such as \verb+\title+, \verb+\author+,
-\verb+\address+ are self explanatory. Various components are
+\verb+\affiliation+ are self explanatory. Various components are
linked to each other by a label--reference mechanism; for
instance, title footnote is linked to the title with a footnote
mark generated by referring to the \verb+\label+ string of
@@ -337,7 +350,7 @@ Given below are the syntax of various note marks and note texts.
\noindent where \verb=<label(s)>= can be either one or more comma
delimited label strings. The optional arguments to the
\verb=\author= command holds the ref label(s) of the address(es)
-to which the author is affiliated while each \verb=\address=
+to which the author is affiliated while each \verb=\affiliation=
command can have an optional argument of a label. In the same
manner, \verb=\tnotetext=, \verb=\fntext=, \verb=\cortext= will
have optional arguments as their respective labels and note text
@@ -350,18 +363,28 @@ of author-affiliation.
\author{Jos Migchielsen\corref{cor1}%
\fnref{fn1}}
\ead{J.Migchielsen@elsevier.com}
- \address{Elsevier B.V., Radarweg 29, 1043 NX Amsterdam,
- The Netherlands}
+ \affiliation[1]{organization={Elsevier B.V.},
+ addressline={Radarweg 29},
+ postcode={1043 NX},
+ city={Amsterdam},
+ country={The Netherlands}}
\author{CV Radhakrishnan\fnref{fn2}}
\ead{cvr@sayahna.org}
- \address{Sayahna Foundations, JWRA 34, Jagathy,
- Trivandrum 695014, India}
+ \affiliation[2]{organization={Sayahna Foundation},
+ addressline={JWRA 34, Jagathy},
+ city={Trivandrum}
+ postcode={695014},
+ country={India}}
\author{CV Rajagopal\fnref{fn1,fn3}}
\ead[url]{www.stmdocs.in}
- \address{STM Document Engineering Pvt Ltd., Mepukada,
- Malayinkil, Trivandrum 695571, India}
+ \affiliation[3]{organization={STM Document Engineering
+ Pvt Ltd.},
+ addressline={Mepukada, Malayinkil},
+ city={Trivandrum}
+ postcode={695571},
+ country={India}}
\end{vquote}
\vspace*{-.5pc}
@@ -381,7 +404,7 @@ The output of the above \TeX{} source is given in Clip~\ref{clip3}.
\src{Header of the title page..}
\includeclip{1}{119 563 468 709}{1pseperateaug.pdf}%%{elstest-1p.pdf}%seperate author groups
\def\rulecolor{orange}
-\pagebreak
+%\pagebreak
Clip~\ref{clip4} shows the output after giving \verb+doubleblind+ class option.
@@ -611,6 +634,7 @@ problem before submission for publication.
in different types of final format. This is further discussed in
section \ref{sec:final}, \nameref{sec:final}.
+\enlargethispage*{\baselineskip}
\subsection*{Displayed equations and double column journals}
@@ -620,7 +644,21 @@ the formulae are too wide for the line width in print. Here is an
example of an equation (see equation 6) which is perfect in a
single column preprint format:
-\bigskip
+In normal course, articles are prepared and submitted in single column
+format even if the final printed article will come in a double column
+format journal. Here the problem is that when the article is typeset by
+the typesetters for paginating and fit within the single column width,
+they have to break the lengthy equations and align them properly. Even
+if most of the tasks in preparing your proof is automated, the equation
+breaking and aligning requires manual judgement, hence this task is manual.
+When there comes a manual operation that area is error prone. Author
+needs to check that equation pretty well.
+
+However if authors themselves break the equation to the single column
+width typesetters need not want to touch these area and the proof authors
+get will be without any errors.
+
+%\bigskip
\setlength\Sep{6pt}
\src{See equation (6)}
\def\rulecolor{blue!70}
@@ -697,7 +735,7 @@ Instruction for using these \verb+.bst+ files can be found at
\href{http://support.stmdocs.in/wiki/index.php?title=Model-wise_bibliographic_style_files}
{http://support.stmdocs.in}
-\section{Graphical abstract and highlights}
+\section[Graphical ...]{Graphical abstract and highlights}
A template for adding graphical abstract and highlights are available
now. This will appear as the first two pages of the PDF before the
article content begins.
@@ -763,11 +801,15 @@ Model $1+$ and $3+$ will have the same look and
feel in the typeset copy when presented in this document. That is
also the case with the double column $3+$ and $5+$ journal article
pages. The only difference will be wider text width of
-higher models. Therefore we will look at the
-different portions of a typical single column journal page and
-that of a double column article in the final format.
+higher models. Here are the specimen single and double column journal
+pages.
+
+%Therefore we will look at the
+%different portions of a typical single column journal page and
+%that of a double column article in the final format.
+\begin{comment}
\begin{center}
\hypertarget{bsc}{}
\hyperlink{sc}{
@@ -780,6 +822,11 @@ that of a double column article in the final format.
{\bf [Specimen double column article -- Click here]}
}
\end{center}
+\end{comment}
+
+\vspace*{-.5pc}
+
+\enlargethispage*{\baselineskip}
\src{}\hypertarget{sc}{}
\def\rulecolor{blue!70}
@@ -791,5 +838,7 @@ that of a double column article in the final format.
\hyperlink{bsc}{\includeclip{1}{27 61 562 758}{elstest-5p.pdf}}
\def\rulecolor{orange}
+~\hfill $\Box$
+
\end{document}
diff --git a/macros/latex/contrib/elsarticle/doc/makefile b/macros/latex/contrib/elsarticle/doc/makefile
index 89f262a6f2..7d7a2c930a 100644
--- a/macros/latex/contrib/elsarticle/doc/makefile
+++ b/macros/latex/contrib/elsarticle/doc/makefile
@@ -1,4 +1,4 @@
-# $Id: makefile 162 2019-01-14 09:36:11Z rishi $
+# $Id: makefile 193 2020-11-23 11:15:37Z rishi $
file=elsdoc
@@ -39,3 +39,4 @@ copy:
+
diff --git a/macros/latex/contrib/elsarticle/doc/rvdtx.sty b/macros/latex/contrib/elsarticle/doc/rvdtx.sty
index 3f16af7196..b2c5511608 100644
--- a/macros/latex/contrib/elsarticle/doc/rvdtx.sty
+++ b/macros/latex/contrib/elsarticle/doc/rvdtx.sty
@@ -4,7 +4,7 @@
%
% Auxiliary package to format *.dtx documents.
%
-% Copyright (c) 2008-2019 CV Radhakrishnan <cvr@stmdocs.in>,
+% Copyright (c) 2008-2020 CV Radhakrishnan <cvr@stmdocs.in>,
%
% This file may be distributed and/or modified under the conditions
% of the LaTeX Project Public License, either version 1.2 of this
@@ -262,7 +262,7 @@
\def\keywords#1{\gdef\@keywords{#1}}
\def\@keywords{\LaTeX, \xml}
-\long\def\Hrule{\\[-4pt]\hspace*{-3em}%
+\long\def\Hrule{\\\hspace*{-3em}%
{\color{quicklinkrulecolor}\rule{\linewidth}{.1pt}}\\}
\long\def\dtxmarkone[#1][#2]#3#4#5{\def\next{#1}%
@@ -271,7 +271,8 @@
\newcounter{dtx}
\long\def\dtxmarktwo[#1][#2]#3#4#5{\def\next{#1}%
- \stepcounter{dtx}\parbox{.45\linewidth}%
+% \stepcounter{dtx}\parbox{.45\linewidth}%
+ \stepcounter{dtx}\parbox[][11pt][b]{.45\linewidth}%
{\ifcase\next\or\Hlink{#4}{#3}\fi}%
\ifodd\thedtx\relax\else\Hrule\fi}
@@ -294,7 +295,8 @@
\hfill
\parbox[c][2in][c]{.35\paperwidth}%
{\normalfont\footnotesize\sffamily\color{quicklinkcolor}%
- \advance\baselineskip-3pt%
+% \advance\baselineskip-3pt%
+ \advance\baselineskip-5pt%
\vspace*{6pt} QUICK LINKS\Hrule
\IfFileExists{tmp.out}{\input tmp.out}{}%
}\hspace*{5mm}%
@@ -307,7 +309,7 @@
{\normalfont\sffamily\footnotesize%
\color{botcolor}%
\hspace*{5mm}\parbox[c][.5in][c]{.45\paperwidth}%
- {\raggedright \textcopyright\ 2019, Elsevier Ltd.
+ {\raggedright \textcopyright\ \the\year, Elsevier Ltd.
Bugs, feature requests, suggestions and comments %\\
shall be mailed to \href{mailto:elsarticle@stmdocs.in}
{$<$elsarticle@stmdocs.in$>$}.
diff --git a/macros/latex/contrib/elsarticle/elsarticle-harv.bst b/macros/latex/contrib/elsarticle/elsarticle-harv.bst
index 3eaac4de6d..3bf1acb435 100644
--- a/macros/latex/contrib/elsarticle/elsarticle-harv.bst
+++ b/macros/latex/contrib/elsarticle/elsarticle-harv.bst
@@ -1,7 +1,7 @@
%%
%% This is file `elsarticle-harv.bst' (Version 2.1),
%%
-%% Copyright 2009-2019 Elsevier Ltd
+%% Copyright 2009-2020 Elsevier Ltd
%%
%% This file is part of the 'Elsarticle Bundle'.
%% ---------------------------------------------
@@ -13,9 +13,9 @@
%% and version 1.2 or later is part of all distributions of LaTeX
%% version 1999/12/01 or later.
%%
-%% $Id: elsarticle-harv.bst 163 2019-01-14 09:54:24Z rishi $
+%% $Id: elsarticle-harv.bst 194 2020-11-23 11:29:27Z rishi $
%%
-%% $URL: http://lenova.river-valley.com/svn/elsarticle/trunk/elsarticle-harv.bst $
+%% $URL: https://lenova.river-valley.com/svn/elsarticle/trunk/elsarticle-harv.bst $
%%
ENTRY
@@ -1595,3 +1595,4 @@ EXECUTE {end.bib}
%% a. collaboration added.
%%
+
diff --git a/macros/latex/contrib/elsarticle/elsarticle-num-names.bst b/macros/latex/contrib/elsarticle/elsarticle-num-names.bst
index e61de97b2e..562466a909 100644
--- a/macros/latex/contrib/elsarticle/elsarticle-num-names.bst
+++ b/macros/latex/contrib/elsarticle/elsarticle-num-names.bst
@@ -1,7 +1,7 @@
%%
%% This is file `elsarticle-num-names.bst' (Version 2.1),
%%
-%% Copyright 2009-2019 Elsevier Ltd
+%% Copyright 2009-2020 Elsevier Ltd
%%
%% This file is part of the 'Elsarticle Bundle'.
%% ---------------------------------------------
@@ -13,9 +13,9 @@
%% and version 1.2 or later is part of all distributions of LaTeX
%% version 1999/12/01 or later.
%%
-%% $Id: elsarticle-num-names.bst 163 2019-01-14 09:54:24Z rishi $
+%% $Id: elsarticle-num-names.bst 194 2020-11-23 11:29:27Z rishi $
%%
-%% $URL: http://lenova.river-valley.com/svn/elsarticle/trunk/elsarticle-num-names.bst $
+%% $URL: https://lenova.river-valley.com/svn/elsarticle/trunk/elsarticle-num-names.bst $
%%
%%
@@ -1532,3 +1532,4 @@ EXECUTE {end.bib}
%% 30.08.2012
%% a. collaboration added.
+
diff --git a/macros/latex/contrib/elsarticle/elsarticle-num.bst b/macros/latex/contrib/elsarticle/elsarticle-num.bst
index 7c26b989b3..14499bfda7 100644
--- a/macros/latex/contrib/elsarticle/elsarticle-num.bst
+++ b/macros/latex/contrib/elsarticle/elsarticle-num.bst
@@ -1,7 +1,7 @@
%%
%% This is file `elsarticle-num.bst' (Version 2.1),
%%
-%% Copyright 2007-2019 Elsevier Ltd
+%% Copyright 2007-2020 Elsevier Ltd
%%
%% This file is part of the 'Elsarticle Bundle'.
%% ---------------------------------------------
@@ -14,9 +14,9 @@
%% version 1999/12/01 or later.
%%
%%
-%% $Id: elsarticle-num.bst 174 2019-04-05 09:50:32Z rishi $
+%% $Id: elsarticle-num.bst 194 2020-11-23 11:29:27Z rishi $
%%
-%% $URL: http://lenova.river-valley.com/svn/elsarticle/trunk/elsarticle-num.bst $
+%% $URL: https://lenova.river-valley.com/svn/elsarticle/trunk/elsarticle-num.bst $
%%
%% ----------------------------------------
@@ -1506,3 +1506,4 @@ EXECUTE {end.bib}
%%
%% End of file `elsarticle-num.bst'.
+
diff --git a/macros/latex/contrib/elsarticle/elsarticle-template-harv.tex b/macros/latex/contrib/elsarticle/elsarticle-template-harv.tex
index 0b26bd2e8c..ba637ca205 100644
--- a/macros/latex/contrib/elsarticle/elsarticle-template-harv.tex
+++ b/macros/latex/contrib/elsarticle/elsarticle-template-harv.tex
@@ -1,5 +1,5 @@
%%
-%% Copyright 2007-2019 Elsevier Ltd
+%% Copyright 2007-2020 Elsevier Ltd
%%
%% This file is part of the 'Elsarticle Bundle'.
%% ---------------------------------------------
@@ -55,7 +55,7 @@
%% use the tnoteref command within \title for footnotes;
%% use the tnotetext command for theassociated footnote;
-%% use the fnref command within \author or \address for footnotes;
+%% use the fnref command within \author or \affiliation for footnotes;
%% use the fntext command for theassociated footnote;
%% use the corref command within \author for corresponding author footnotes;
%% use the cortext command for theassociated footnote;
@@ -68,19 +68,40 @@
%% \ead[url]{home page}
%% \fntext[label2]{}
%% \cortext[cor1]{}
-%% \address{Address\fnref{label3}}
+%% \affiliation{organization={},
+%% addressline={},
+%% city={},
+%% postcode={},
+%% state={},
+%% country={}}
%% \fntext[label3]{}
\title{}
%% use optional labels to link authors explicitly to addresses:
%% \author[label1,label2]{}
-%% \address[label1]{}
-%% \address[label2]{}
+%% \affiliation[label1]{organization={},
+%% addressline={},
+%% city={},
+%% postcode={},
+%% state={},
+%% country={}}
+%%
+%% \affiliation[label2]{organization={},
+%% addressline={},
+%% city={},
+%% postcode={},
+%% state={},
+%% country={}}
\author{}
-\address{}
+\affiliation{organization={},%Department and Organization
+ addressline={},
+ city={},
+ postcode={},
+ state={},
+ country={}}
\begin{abstract}
%% Text of abstract
diff --git a/macros/latex/contrib/elsarticle/elsarticle-template-num-names.tex b/macros/latex/contrib/elsarticle/elsarticle-template-num-names.tex
index 46898bcb4e..f4f618b2ea 100644
--- a/macros/latex/contrib/elsarticle/elsarticle-template-num-names.tex
+++ b/macros/latex/contrib/elsarticle/elsarticle-template-num-names.tex
@@ -1,5 +1,5 @@
%%
-%% Copyright 2007-2019 Elsevier Ltd
+%% Copyright 2007-2020 Elsevier Ltd
%%
%% This file is part of the 'Elsarticle Bundle'.
%% ---------------------------------------------
@@ -68,19 +68,40 @@
%% \ead[url]{home page}
%% \fntext[label2]{}
%% \cortext[cor1]{}
-%% \address{Address\fnref{label3}}
+%% \affiliation{organization={},
+%% addressline={},
+%% city={},
+%% postcode={},
+%% state={},
+%% country={}}
%% \fntext[label3]{}
\title{}
%% use optional labels to link authors explicitly to addresses:
%% \author[label1,label2]{}
-%% \address[label1]{}
-%% \address[label2]{}
+%% \affiliation[label1]{organization={},
+%% addressline={},
+%% city={},
+%% postcode={},
+%% state={},
+%% country={}}
+%%
+%% \affiliation[label2]{organization={},
+%% addressline={},
+%% city={},
+%% postcode={},
+%% state={},
+%% country={}}
\author{}
-\address{}
+\affiliation{organization={},%Department and Organization
+ addressline={},
+ city={},
+ postcode={},
+ state={},
+ country={}}
\begin{abstract}
%% Text of abstract
diff --git a/macros/latex/contrib/elsarticle/elsarticle-template-num.tex b/macros/latex/contrib/elsarticle/elsarticle-template-num.tex
index af5ce75c33..6852a7e5c1 100644
--- a/macros/latex/contrib/elsarticle/elsarticle-template-num.tex
+++ b/macros/latex/contrib/elsarticle/elsarticle-template-num.tex
@@ -1,5 +1,5 @@
%%
-%% Copyright 2007-2019 Elsevier Ltd
+%% Copyright 2007-2020 Elsevier Ltd
%%
%% This file is part of the 'Elsarticle Bundle'.
%% ---------------------------------------------
@@ -21,7 +21,7 @@
%%
%%
%%
-%% $Id: elsarticle-template-num.tex 168 2019-02-25 07:15:41Z apu.v $
+%% $Id: elsarticle-template-num.tex 190 2020-11-23 11:12:32Z rishi $
%%
%%
\documentclass[preprint,12pt]{elsarticle}
@@ -75,19 +75,40 @@
%% \ead[url]{home page}
%% \fntext[label2]{}
%% \cortext[cor1]{}
-%% \address{Address\fnref{label3}}
+%% \affiliation{organization={},
+%% addressline={},
+%% city={},
+%% postcode={},
+%% state={},
+%% country={}}
%% \fntext[label3]{}
\title{}
%% use optional labels to link authors explicitly to addresses:
%% \author[label1,label2]{}
-%% \address[label1]{}
-%% \address[label2]{}
+%% \affiliation[label1]{organization={},
+%% addressline={},
+%% city={},
+%% postcode={},
+%% state={},
+%% country={}}
+%%
+%% \affiliation[label2]{organization={},
+%% addressline={},
+%% city={},
+%% postcode={},
+%% state={},
+%% country={}}
\author{}
-\address{}
+\affiliation{organization={},%Department and Organization
+ addressline={},
+ city={},
+ postcode={},
+ state={},
+ country={}}
\begin{abstract}
%% Text of abstract
diff --git a/macros/latex/contrib/elsarticle/elsarticle.dtx b/macros/latex/contrib/elsarticle/elsarticle.dtx
index 187b6d5b0c..a5a0a0b3b5 100644
--- a/macros/latex/contrib/elsarticle/elsarticle.dtx
+++ b/macros/latex/contrib/elsarticle/elsarticle.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 2007-2019 by Elsevier Ltd
+% Copyright (C) 2007-2020 by Elsevier Ltd
% -----------------------------------------------
%
% This file may be distributed and/or modified under the
@@ -14,10 +14,10 @@
% version 1999/12/01 or later.
%
% \fi
-% \CheckSum{2634}
+% \CheckSum{3243}
%
-% $Id: elsarticle.dtx 167 2019-02-25 07:12:21Z apu.v $
-% $URL: http://lenova.river-valley.com/svn/elsarticle/trunk/elsarticle.dtx $
+% $Id: elsarticle.dtx 190 2020-11-23 11:12:32Z rishi $
+% $URL: https://lenova.river-valley.com/svn/elsarticle/trunk/elsarticle.dtx $
% \iffalse
%<*driver>
\documentclass{ltxdoc}
@@ -58,6 +58,11 @@
% with amsref.sty, fncylab.sty have been fixed. Some bugs related
% to author/affiliation part have been fixed.}
%
+%
+% \changes{v3.3}{2020/11/20}{Defined \string\affiliation command for structured
+% address tagging.}
+%
+%
% \GetFileInfo{elsarticle.dtx}
%
% \DoNotIndex{\newcommand,\newenvironment}
@@ -78,8 +83,8 @@
%%
%%
\def\RCSfile{elsarticle}%
- \def\RCSversion{3.2}%
- \def\RCSdate{2019/02/25}%
+ \def\RCSversion{3.3}%
+ \def\RCSdate{2020/11/20}%
\def\@shortjnl{\relax}
\def\@journal{Elsevier Ltd}
\def\@company{Elsevier Ltd}
@@ -94,6 +99,16 @@
\newif\ifnopreprintline \nopreprintlinefalse
\newif\ifdoubleblind \doubleblindfalse
+\newif\ifuseexplthreefunctions \useexplthreefunctionsfalse
+
+\IfFileExists{expl3.sty}{%
+ \global\useexplthreefunctionstrue%
+ \RequirePackage{expl3}}{}
+\ifuseexplthreefunctions\relax%
+ \IfFileExists{xparse.sty}{\RequirePackage{xparse}}{}
+ \IfFileExists{etoolbox.sty}{\RequirePackage{etoolbox}}{}
+\fi
+
\def\@blstr{1}
\newdimen\@bls
\@bls=\baselineskip
@@ -339,7 +354,6 @@
\def\elsaddress{}
\def\addsep{\par\vskip6pt}
-\def\address{\@ifnextchar[{\@@address}{\@address}}
\def\@alph#1{%
\ifcase#1\or a\or b\or c\or d\or e\or f\or g\or h\or i\or j\or k\or
@@ -371,6 +385,322 @@
\newcounter{affn}
\renewcommand\theaffn{\alph{affn}}
+\ifuseexplthreefunctions\relax%
+ \ExplSyntaxOn
+ \def\ca_affitem_postskip{\mbox{~}\unskip\ignorespaces}
+ %%Author Address
+ \DeclareDocumentCommand \ca_organization { O{,} m }
+ {
+ % #2 #1\mbox{~}\unskip\ignorespaces
+ \csgappto { ca_affiliation_values } { #2 #1\ca_affitem_postskip }
+ }
+ \DeclareDocumentCommand \ca_postal_code { O{,} m }
+ {
+ % #2 #1\mbox{~}\unskip\ignorespaces
+ \csgappto { ca_affiliation_values } { #2 #1\ca_affitem_postskip }
+ }
+ \DeclareDocumentCommand \ca_aff_city { O{,} m }
+ {
+ % #2 #1\mbox{~}\unskip\ignorespaces
+ \csgappto { ca_affiliation_values } { #2 #1\ca_affitem_postskip }
+ }
+ \DeclareDocumentCommand \ca_address_line { O{,}m }
+ {
+ % #2 #1\mbox{~}\unskip\ignorespaces
+ \csgappto { ca_affiliation_values } { #2 #1\ca_affitem_postskip }
+ }
+ \DeclareDocumentCommand \ca_state { O{,} m }
+ {
+ % #2 #1\mbox{~}\unskip\ignorespaces
+ \csgappto { ca_affiliation_values } { #2 #1\ca_affitem_postskip }
+ }
+ \DeclareDocumentCommand \ca_country { O{ } m }
+ {
+ % #2 #1
+ \csgappto { ca_affiliation_values } { #2 #1 }
+ }
+
+ \DeclareDocumentCommand \ca_stm_organization { O{,} m }
+ {
+ #2 #1\ca_affitem_postskip
+ }
+ \DeclareDocumentCommand \ca_stm_postal_code { O{,} m }
+ {
+ #2 #1\ca_affitem_postskip
+ }
+ \DeclareDocumentCommand \ca_stm_aff_city { O{,} m }
+ {
+ #2 #1\ca_affitem_postskip
+ }
+ \DeclareDocumentCommand \ca_stm_aff_address_line { O{,}m }
+ {
+ #2 #1\ca_affitem_postskip
+ }
+ \DeclareDocumentCommand \ca_stm_state { O{,} m }
+ {
+ #2 #1\ca_affitem_postskip
+ }
+ \DeclareDocumentCommand \ca_stm_country { O{ } m }
+ {
+ #2 #1
+ }
+
+ \keys_define:nn { stm / affiliation }
+ {
+ op .tl_set_x:N = \l_organization_punc_tl,
+ oraganizationsep .tl_set_x:N = \l_organization_punc_tl,
+ ap .tl_set_x:N = \l_address_line_punc_tl,
+ addresslinesep .tl_set_x:N = \l_address_line_punc_tl,
+ cp .tl_set_x:N = \l_city_punc_tl,
+ citysep .tl_set_x:N = \l_city_punc_tl,
+ pp .tl_set_x:N = \l_postal_code_punc_tl,
+ postcodesep .tl_set_x:N = \l_postal_code_punc_tl,
+ sp .tl_set_x:N = \l_state_punc_tl,
+ statesep .tl_set_x:N = \l_state_punc_tl,
+ o .code:n = { \ca_organization[\l_organization_punc_tl]{#1} },
+ organization .code:n = { \ca_organization[\l_organization_punc_tl]{#1} },
+ a .code:n = { \ca_address_line[\l_address_line_punc_tl]{#1} },
+ addressline .code:n = { \ca_address_line[\l_address_line_punc_tl]{#1} },
+ c .code:n = { \ca_aff_city[\l_city_punc_tl]{#1} },
+ city .code:n = { \ca_aff_city[\l_city_punc_tl]{#1} },
+ p .code:n = { \ca_postal_code[\l_postal_code_punc_tl]{#1} },
+ postcode .code:n = { \ca_postal_code[\l_postal_code_punc_tl]{#1} },
+ s .code:n = { \ca_state[\l_state_punc_tl]{#1} },
+ state .code:n = { \ca_state[\l_state_punc_tl]{#1} },
+ orp .tl_set_x:N = \l_organization_punc_tl,
+ adp .tl_set_x:N = \l_address_line_punc_tl,
+ cip .tl_set_x:N = \l_city_punc_tl,
+ pcp .tl_set_x:N = \l_postal_code_punc_tl,
+ stp .tl_set_x:N = \l_state_punc_tl,
+ cyp .tl_set_x:N = \l_country_punc_tl,
+ or .code:n = { \ca_organization[\l_organization_punc_tl]{#1} },
+ ad .code:n = { \ca_address_line[\l_address_line_punc_tl]{#1} },
+ ci .code:n = { \ca_aff_city[\l_city_punc_tl]{#1} },
+ pc .code:n = { \ca_postal_code[\l_postal_code_punc_tl]{#1} },
+ st .code:n = { \ca_state[\l_state_punc_tl]{#1} },
+ cy .code:n = { \ca_country[\l_country_punc_tl]{#1} },
+ country .code:n = { \ca_country[\l_country_punc_tl]{#1} },
+ unknown .code:n = {
+ \ifstrempty { #1 } {
+ \csxappto { ca_affiliation_values }
+ { {\l_keys_key_tl}~ }
+ } {
+ \csxappto { ca_affiliation_values }
+ { {#1}~ }
+ }
+ }
+ }
+
+ \cs_set:Npn \__reset_affiliation:
+ {
+ \tl_gset:Nn \l_organization_punc_tl { , }
+ \tl_gset:Nn \l_address_line_punc_tl { , }
+ \tl_gset:Nn \l_city_punc_tl { , }
+ \tl_gset:Nn \l_postal_code_punc_tl { , }
+ \tl_gset:Nn \l_state_punc_tl { , }
+ \tl_gset:Nn \l_country_punc_tl { }
+ }
+
+ \DeclareDocumentCommand\affiliation{ o m }{
+ \__reset_affiliation:
+ \csgdef { ca_affiliation_values } { }
+ \IfNoValueTF { #2 }
+ { }
+ {
+ \keys_set:nn { stm / affiliation } { #2 }
+ }
+ \csgappto{elsaddress}{
+ \def\baselinestretch{1}%
+ \refstepcounter{affn}
+ \xdef\@currentlabel{\theaffn}
+ \IfNoValueTF { #1 }
+ { }
+ { \elsLabel{#1} }
+ \textsuperscript{\theaffn}}
+ \csxappto{elsaddress}{
+ \csuse { ca_affiliation_values }
+ \par
+ }
+ }
+ \ExplSyntaxOff
+ \else%
+ \def\caaffitempostskip{\space}
+
+ \DeclareRobustCommand\caorganization[2][,]{%
+ \g@addto@macro\caaffiliationvalues{#2#1\caaffitempostskip}%
+ }
+ \DeclareRobustCommand\capostalcode[2][,]{%
+ \g@addto@macro\caaffiliationvalues{#2#1\caaffitempostskip}%
+ }
+ \DeclareRobustCommand\caaffcity[2][,]{%
+ \g@addto@macro\caaffiliationvalues{#2#1\caaffitempostskip}%
+ }
+ \DeclareRobustCommand\caaddressline[2][,]{%
+ \g@addto@macro\caaffiliationvalues{#2#1\caaffitempostskip}%
+ }
+ \DeclareRobustCommand\castate[2][,]{%
+ \g@addto@macro\caaffiliationvalues{#2#1\caaffitempostskip}%
+ }
+ \DeclareRobustCommand\cacountry[2][,]{%
+ \g@addto@macro\caaffiliationvalues{#2#1\caaffitempostskip}%
+ }
+ \DeclareRobustCommand\castmorganization[2][,]{%
+ #2#1\caaffitempostskip%
+ }
+ \DeclareRobustCommand\castmpostalcode[2][,]{%
+ #2#1\caaffitempostskip%
+ }
+ \DeclareRobustCommand\castmaffcity[2][,]{%
+ #2#1\caaffitempostskip%
+ }
+ \DeclareRobustCommand\castmaddressline[2][,]{%
+ #2#1\caaffitempostskip%
+ }
+ \DeclareRobustCommand\castmstate[2][,]{%
+ #2#1\caaffitempostskip%
+ }
+ \DeclareRobustCommand\castmcountry[2][,]{%
+ #2#1\caaffitempostskip%
+ }
+
+ \define@key{affiliation}{op}{\xdef\@organizationpunc{#1}}
+ \define@key{affiliation}{orp}{\xdef\@organizationpunc{#1}}
+ \define@key{affiliation}{organizationsep}{\xdef\@organizationpunc{#1}}
+ \define@key{affiliation}{ap}{\xdef\@addresslinepunc{#1}}
+ \define@key{affiliation}{adp}{\xdef\@addresslinepunc{#1}}
+ \define@key{affiliation}{addresslinesep}{\xdef\@addresslinepunc{#1}}
+ \define@key{affiliation}{cp}{\xdef\@citypunc{#1}}
+ \define@key{affiliation}{cip}{\xdef\@citypunc{#1}}
+ \define@key{affiliation}{cyp}{\xdef\@countrypunc{#1}}
+ \define@key{affiliation}{citysep}{\xdef\@citypunc{#1}}
+ \define@key{affiliation}{pp}{\xdef\@postcodepunc{#1}}
+ \define@key{affiliation}{pop}{\xdef\@postcodepunc{#1}}
+ \define@key{affiliation}{postcodesep}{\xdef\@postcodepunc{#1}}
+ \define@key{affiliation}{sp}{\xdef\@statepunc{#1}}
+ \define@key{affiliation}{stp}{\xdef\@statepunc{#1}}
+ \define@key{affiliation}{statesep}{\xdef\@statepunc{#1}}
+ \define@key{affiliation}{countrysep}{\xdef\@countrypunc{#1}}
+
+ \define@key{affiliation}{organization}{%
+ \caorganization[\@organizationpunc]{#1}}
+ \define@key{affiliation}{addressline}{%
+ \caaddressline[\@addresslinepunc]{#1}}
+ \define@key{affiliation}{city}{%
+ \caaffcity[\@citypunc]{#1}}
+ \define@key{affiliation}{postcode}{%
+ \capostalcode[\@postcodepunc]{#1}}
+ \define@key{affiliation}{state}{%
+ \castate[\@statepunc]{#1}}
+ \define@key{affiliation}{or}{%
+ \caorganization[\@organizationpunc]{#1}}
+ \define@key{affiliation}{ad}{%
+ \caaddressline[\@addresslinepunc]{#1}}
+ \define@key{affiliation}{ci}{%
+ \caaffcity[\@citypunc]{#1}}
+ \define@key{affiliation}{po}{%
+ \capostalcode[\@postcodepunc]{#1}}
+ \define@key{affiliation}{st}{%
+ \castate[\@statepunc]{#1}}
+ \define@key{affiliation}{o}{%
+ \caorganization[\@organizationpunc]{#1}}
+ \define@key{affiliation}{a}{%
+ \caaddressline[\@addresslinepunc]{#1}}
+ \define@key{affiliation}{c}{%
+ \cacity[\@citypunc]{#1}}
+ \define@key{affiliation}{p}{%
+ \capostcode[\@postcodepunc]{#1}}
+ \define@key{affiliation}{s}{%
+ \castate[\@statepunc]{#1}}
+ \define@key{affiliation}{cy}{%
+ \cacountry[\@countrypunc]{#1}}
+ \define@key{affiliation}{country}{%
+ \cacountry[\@countrypunc]{#1}}
+
+
+ \gdef\@resetaffiliation{%
+ \gdef\@organizationpunc{,}%
+ \gdef\@addresslinepunc{,}%
+ \gdef\@citypunc{,}%
+ \gdef\@statepunc{,}%
+ \gdef\@postcodepunc{,}%
+ \gdef\@countrypunc{}%
+ }
+
+ \def\affiliation{\@ifnextchar[{\@@affiliation}{\@affiliation}}
+
+ \newcommand*{\newstmrobustcmd}{}
+ \protected\def\newstmrobustcmd{\@star@or@long\stmetb@new@command}
+
+ \def\stmetb@new@command#1{\@testopt{\stmetb@newcommand#1}0}
+
+ \def\stmetb@newcommand#1[#2]{%
+ \@ifnextchar[%]
+ {\stmetb@xargdef#1[#2]}
+ {\ifx\l@ngrel@x\relax
+ \let\l@ngrel@x\protected
+ \else
+ \protected\def\l@ngrel@x{\protected\long}%
+ \fi
+ \@argdef#1[#2]}}
+
+ \long\def\stmetb@xargdef#1[#2][#3]#4{%
+ \@ifdefinable#1{%
+ \expandafter\protected
+ \expandafter\def
+ \expandafter#1%
+ \expandafter{%
+ \expandafter\@testopt
+ \csname\string#1\endcsname{#3}}%
+ \expandafter\@yargdef\csname\string#1\endcsname\tw@{#2}{#4}}}
+ %
+ \newcommand{\ifstmundef}[1]{%
+ \ifdefined#1%
+ \ifx#1\relax
+ \expandafter\expandafter
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\expandafter
+ \expandafter\@secondoftwo
+ \fi
+ \else
+ \expandafter\@firstoftwo
+ \fi}
+ \newcommand{\stmexpandonce}[1]{%
+ \unexpanded\expandafter{#1}}
+ \newstmrobustcmd{\gstmappto}[2]{%
+ \ifundef{#1}
+ {\xdef#1{\unexpanded{#2}}}
+ {\xdef#1{\stmexpandonce#1\unexpanded{#2}}}}
+ \newstmrobustcmd{\xstmappto}[2]{%
+ \ifstmundef{#1}
+ {\xdef#1{#2}}
+ {\xdef#1{\stmexpandonce#1#2}}}
+
+
+ \long\def\@@affiliation[#1]#2{%
+ \@resetaffiliation%
+ \gdef\caaffiliationvalues{}%
+ \elsLabel{#1}%
+ \setkeys{affiliation}{#2}%
+ \g@addto@macro\elsaddress{%
+ \def\baselinestretch{1}%
+ \refstepcounter{affn}%
+ \xdef\@currentlabel{\theaffn}%
+ \elsLabel{#1}%
+ \textsuperscript{\theaffn}}
+ \xstmappto\elsaddress{\caaffiliationvalues\par}}
+
+ \long\def\@affiliation#1{%
+ \@resetaffiliation%
+ \gdef\caaffiliationvalues{}%
+ \setkeys{affiliation}{#1}%
+ \g@addto@macro\elsauthors{%
+ \def\baselinestretch{1}}%
+ \xstmappto\elsaddress{\caaffiliationvalues\par}}
+\fi
+
+\def\address{\@ifnextchar[{\@@address}{\@address}}
+
\long\def\@@address[#1]#2{\g@addto@macro\elsaddress{%
\def\baselinestretch{1}%
\refstepcounter{affn}
diff --git a/macros/latex/contrib/elsarticle/elsarticle.ins b/macros/latex/contrib/elsarticle/elsarticle.ins
index a70fae6161..53ea4ac19b 100644
--- a/macros/latex/contrib/elsarticle/elsarticle.ins
+++ b/macros/latex/contrib/elsarticle/elsarticle.ins
@@ -3,7 +3,7 @@
%% driver files from the doc files in this package when run through
%% LaTeX or TeX.
%%
-%% Copyright 2007-2019 Elsevier Ltd
+%% Copyright 2007-2020 Elsevier Ltd
%%
%% This file is part of the 'Elsarticle Bundle'.
%% ---------------------------------------------
@@ -18,7 +18,7 @@
%% The list of all files belonging to the 'Elsarticle Bundle' is
%% given in the file 'manifest.txt'.
%%
-%% $Id: elsarticle.ins 164 2019-01-14 09:57:55Z rishi $
+%% $Id: elsarticle.ins 191 2020-11-23 11:13:24Z rishi $
%%
%%
\input docstrip.tex
@@ -26,7 +26,7 @@
\preamble
-Copyright 2007-2019 Elsevier Ltd
+Copyright 2007-2020 Elsevier Ltd
This file is part of the 'Elsarticle Bundle'.
-------------------------------------------
diff --git a/macros/latex/contrib/elsarticle/manifest.txt b/macros/latex/contrib/elsarticle/manifest.txt
index d104860b23..5b073e1526 100644
--- a/macros/latex/contrib/elsarticle/manifest.txt
+++ b/macros/latex/contrib/elsarticle/manifest.txt
@@ -1,4 +1,4 @@
-% Copyright 2007-2019 Elsevier Ltd
+% Copyright 2007-2020 Elsevier Ltd
%
% This file is part of the 'Elsarticle Bundle'.
% ---------------------------------------------
@@ -76,3 +76,4 @@ Auxiliary packages needed to generate pdf output from elsdoc.tex:
rvdtx.sty
pdfwidgets.sty
+
diff --git a/macros/latex/contrib/everyshi/README.md b/macros/latex/contrib/everyshi/README.md
new file mode 100644
index 0000000000..faa5e4c17f
--- /dev/null
+++ b/macros/latex/contrib/everyshi/README.md
@@ -0,0 +1,27 @@
+# The obsolete LaTeX package `everyshi`
+
+Copyright (C) 1994–2001 Martin Schröder, 2020 Marei Peischl (peiTeX) <marei@peitex.de>
+
+everyshi 2020/11/18 v4.00 EveryShipout LaTeX Package
+
+***************************************************************************
+
+ This material is subject to the LaTeX Project Public License version 1.3c
+ or later. See http://www.latex-project.org/lppl.txt for details.
+
+***************************************************************************
+
+## Provided files
+
+* README.md
+* everyshi.dtx
+* everyshi.ins
+
+The files
+* everyshi.sty
+* everyshi-2001-05-15.sty
+can be generated from the everyshi.dtx by processing the everyshi.ins-file.
+
+## Version History
+
+ * v4.00 (2020-11-18) Mark as obsolete and restructure to use kernel methods, if available. \ No newline at end of file
diff --git a/macros/latex/contrib/ms/everyshi.dtx b/macros/latex/contrib/everyshi/everyshi.dtx
index b630b34946..5bae127c17 100644
--- a/macros/latex/contrib/ms/everyshi.dtx
+++ b/macros/latex/contrib/everyshi/everyshi.dtx
@@ -1,24 +1,50 @@
+% \iffalse meta-comment
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Copyright (C) Martin Schröder, 1994–2001
+% Marei Peischl (peiTeX) <marei@peitex.de>, 2020
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3c
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3c or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status `maintained'.
+%
+% The Current Maintainer of this work is
+% Marei Peischl <marei@peitex.de>.
+%
+% This work consists of the files
+% README.md
+% everyshi.dtx
+% everyshi.ins
+% and the derived files
+% everyshi.sty
+% everyshi-2001-05-15.sty
+% everyshi.pdf
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% \fi
% \iffalse
-%% File: everyshi.dtx Copyright (C) 2001 Martin Schr\"oder
%
-%<package>\NeedsTeXFormat{LaTeX2e}
+%<package|fallback>\NeedsTeXFormat{LaTeX2e}
%<package>\ProvidesPackage{everyshi}
-%<package> [2001/05/15 v3.00 EveryShipout Package (MS)]
+%<package> [2020/11/18 v4.00 EveryShipout Package]
%
%<*driver>
-\ProvidesFile{everyshi.drv}
- [1999/06/08 v2.03 Driver for EveryShipout Package (MS)]
\documentclass{ltxdoc}
\usepackage{url}
-\usepackage[toc]{multitoc}
\usepackage{everyshi}
\GetFileInfo{everyshi.sty}
\setcounter{IndexColumns}{2}
\EnableCrossrefs
-%%\DisableCrossrefs% Say \DisableCrossrefs if index is ready
\CodelineIndex % Index code by line number
-\OnlyDescription % comment out for implementation details
-%%\OldMakeIndex % use if your MakeIndex is pre-v2.9
+%\OnlyDescription % comment out for implementation details
\setcounter{IndexColumns}{2}
\setlength{\IndexMin}{30ex}
\setlength{\columnseprule}{.4pt}
@@ -26,22 +52,9 @@
\DocInput{everyshi.dtx}
\end{document}
%</driver>
-%
-% Copyright (C) 2001 by Martin Schr\"oder. All rights reserved.
-%
-% This program may be redistributed and/or modified under the terms
-% of the LaTeX Project Public License, either version 1.0 of this
-% license, or (at your option) any later version.
-% The latest version of this license is in
-% CTAN:macros/latex/base/lppl.txt.
-%
-% Happy users are requested to send me a postcard. :-)
-%
-% For error reports in case of UNCHANGED versions see everyshi.ins
-%
% \fi
+% \CheckSum{68}
%
-% \CheckSum{51}
%
%% \CharacterTable
%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
@@ -59,38 +72,7 @@
%% Grave accent \` Left brace \{ Vertical bar \|
%% Right brace \} Tilde \~}
%%
-%% \iffalse meta-comment
-%% ===================================================================
-%% @LaTeX-package-file{
-%% author = {Martin Schr\"oder},
-%% version = "3.00",
-%% date = "15 May 2001",
-%% filename = "everyshi.sty",
-%% address = {Martin Schr\"oder
-%% Cr\"usemannallee 3
-%% 28213 Bremen
-%% Germany},
-%% telephone = "+49-421-2239425",
-%% email = "martin@oneiros.de",
-%% pgp-Key = "2048 bit / KeyID 292814E5",
-%% pgp-fingerprint = "7E86 6EC8 97FA 2995 82C3 FEA5 2719 090E",
-% checksum = "51832 357 1434 12417",
-% codetable = "ISO/ASCII",
-% keywords = "LaTeX2e, \shipout",
-% supported = "yes",
-%% docstring = "LaTeX package which provides hooks into
-%% \cs{shipout}.
-%
-% 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."
-%% }
-%% ===================================================================
-%% \fi
-%
+% \newcommand*{\package}[1]{\textnormal{\sffamily#1}}
% \changes{v1.00}{1994/12/04}{New}
% \changes{v1.02}{1994/12/07}{Name changed from \textsf{atshipou} to
% \textsf{everyshi}}
@@ -99,17 +81,13 @@
% \changes{v2.02}{1998/08/09}{Documentation improved}
% \changes{v2.03}{1999/06/08}{Moved to LPPL}
% \changes{v3.00}{2001/05/15}{\cs{AtNextShipout} added}
-%
-% \newcommand*{\package}[1]{\textnormal{\sffamily#1}}
-% \newcommand*{\NEWfeature}[1]{%
-% \hskip 1sp \marginpar{\small\sffamily\raggedright
-% New feature\\#1}}
+% \changes{v4.00}{2020/11/18}{Mark \package{everyshi} as obsolete and use the kernel methods}
%
% ^^A -----------------------------
%
% \changes{v2.01}{1997-03-09}{Fixed use of \cs{newline} in title.}
% \title{\unskip
-% The \package{everyshi} package^^A
+% The obsolete \package{everyshi} package^^A
% \thanks{^^A
% The version umber of this file is \fileversion,
% last revised \filedate.\protect\newline
@@ -118,23 +96,23 @@
% systems''; strictly speaking it should be
% \textsf{everyshipout}.}^^A
% }
-% \author{Martin Schr\"oder\\[0.5ex]
-% \normalsize Cr\"usemannallee 3\\
-% \normalsize 28213 Bremen\\
-% \normalsize Germany\\
-% \normalsize martin@oneiros.de\\
-% \scriptsize \texttt{PGP-Key: 2048 bit / KeyID 292814E5}\\[-0.5em]
-% \scriptsize \texttt{7E86 6EC8 97FA 2995~~82C3 FEA5 2719 090E}}
+% \author{Martin Schröder\thanks{maintained by Marei Peischl}}
% \date{\filedate}
% \maketitle
%
% ^^A -----------------------------
-%
-%
+% \renewcommand*{\abstractname}{Why you should no longer use this package:}
% \begin{abstract}
-% This packages provides hooks into \cs{sshipout}
+% This packages provides hooks into \cs{sshipout}
% called \cs{EveryShipout} and \cs{AtNextShipout} analogous to
% \cs{AtBeginDocument}.
+%
+% With the introduction of the \LaTeX{} hook management this package became obsolete in 2020.
+% Information on their usage can be found in the the corresponding documentation for
+% \package{lthooks}\cite{lthooks-doc} and \package{ltshipout}\cite{ltshipout-doc}.
+% We only provide this package to allow backwards compatibility.
+% For current versions of \LaTeX{} it's only mapping the hooks to the original \package{everyshi} macros.
+% In case you use an older \LaTeX{} format, \package{everyshi} will automatically fallback to its' old implementation by loading \package{everyshi-2001-05-15}.
% \end{abstract}
%
% \pagestyle{headings}
@@ -147,19 +125,12 @@
%
% \section{Introduction}
%
+% \changes{v4.00}{2020/11/18}{Information on new kernel methods}
% This package provides the hooks \cs{EveryShipout} and
% \cs{AtNextShipout} whose arguments are executed after the output
% routine has constructed \cs{box255}, and before \cs{shipout} is
% called.
-%
-% An example application for this package would be a package for
-% adding text to the bottom of each page.
-% Such a package does exist: \package{prelim2e}\cite{package:prelim2e}.
-%
-% \changes{v3.00}{2001/05/15}{Reference to \package{eso-pic} added}
-% Another application is a package for adding pictures to every page:
-% \package{eso-pic}\cite{package:eso-pic}.
-%
+% \changes{v4.00}{2020/11/18}{Remove example applications.}
% ^^A -----------------------------
%
% \section{Usage}
@@ -172,7 +143,6 @@
% globally; there is currently no way to remove it.
%
% \DescribeMacro{\AtNextShipout}
-% \NEWfeature{2001/05/15}
% \cs{AtNextShipout}\marg{code} declares
% \mbox{$\langle$\emph{code}$\rangle$} that is saved internally
% and executed just before \emph{only the next} \cs{shipout}.
@@ -202,12 +172,23 @@
%
% ^^A -----------------------------
%
+% \begin{thebibliography}{1}
+% \bibitem{lthooks-doc}
+% Frank Mittelbach.
+% \newblock The \package{ltshipout} package.
+% \newblock \url{http://mirrors.ctan.org/macros/latex/base/lthooks-doc.pdf}
+% \bibitem{ltshipout-doc}
+% Frank Mittelbach.
+% \newblock The \package{ltshipout} package.
+% \newblock \url{http://mirrors.ctan.org/macros/latex/base/ltshipout-doc.pdf}
+% \end{thebibliography}
+%
% \StopEventually{^^A
-
% ^^A -----------------------------
%
% \section{Acknowledgements}
% ^^A
+% Thanks to Ulrike Fischer for the advice during preparation of Version 4.00.
% Version 2.0 of \package{everyshi} borrows heavily from
% \textsf{quire.tex} of the \textsf{Midnight Macros} by Marcel R.~van
% der Goot (\texttt{marcel@cs.caltech.edu}).
@@ -216,39 +197,34 @@
% As usual Rebecca Stiels improved the quality of this documentation.
%
%
-% ^^A -----------------------------
-%
-% \begin{thebibliography}{1}
-% \raggedright
-% \bibitem{package:eso-pic}
-% Rolf Niepraschk.
-% \newblock The \package{eso-pic} package.
-% \newblock \url{CTAN: tex-archive/macros/latex/contrib/supported/ms/contrib/eso-pic.dtx}.
-% \newblock \LaTeXe{} package.
-% \bibitem{package:prelim2e}
-% Martin Schr\"oder.
-% \newblock The \package{prelim2e} package.
-% \newblock \url{CTAN: tex-archive/macros/latex/contrib/supported/ms/prelim2e.dtx}.
-% \newblock \LaTeXe{} package.
-% \end{thebibliography}
-%
-% }
-%
+% \PrintChanges
+% }
% ^^A -----------------------------
%
% \section{The implementation}
+% \changes{v4.00}{2020/11/18}{Emulate everyshi if the kernel is new enough.}
% \raggedright
-%
% \begin{macrocode}
%<*package>
+\providecommand\IfFormatAtLeastTF{\@ifl@t@r\fmtversion}
+\IfFormatAtLeastTF{2020/10/01}{}{\input{everyshi-2001-05-15.sty}}
+\IfFormatAtLeastTF{2020/10/01}{}{\endinput}
+\protected \def \EveryShipout {\AddToHook{shipout/before}}
+\protected \def \AtNextShipout {\AddToHookNext{shipout/before}}
+%</package>
+% \end{macrocode}
+% \subsection{The original implementation by Martin Schröder}
+% To provide compatibility for older \LaTeX{} formats we wrap the
+% original implementation of \package{everyshi} version 3.00 into
+% the fallback package \package{everyshi-2001-05-15}.
+% \begin{macrocode}
+%<*fallback>
+\ProvidesPackage{everyshi-2001-05-15}
+ [2020/11/18 v4.00 EveryShipout Package (fallback mechanism)]
% \end{macrocode}
-%
-%
-%
-% ^^A -----------------------------
%
% \subsection{Allocations}
-% ^^A
+%
% First we allocate the hooks
% \begin{macro}{\@EveryShipout@Hook}
% \changes{v2.00}{1995/01/25}{Name changed from \cs{@shipouthook} to
@@ -391,7 +367,7 @@
% \end{macro}
%
% \begin{macrocode}
-%</package>
+%</fallback>
% \end{macrocode}
%
%
@@ -399,8 +375,3 @@
%
% \Finale
%
-% \PrintIndex\PrintChanges
-% ^^A Make sure that the index is not printed twice
-% ^^A (ltxdoc.cfg might have a second \PrintIndex command)
-% \let\PrintChanges\relax
-% \let\PrintIndex\relax
diff --git a/macros/latex/contrib/everyshi/everyshi.ins b/macros/latex/contrib/everyshi/everyshi.ins
new file mode 100644
index 0000000000..c1db76a10e
--- /dev/null
+++ b/macros/latex/contrib/everyshi/everyshi.ins
@@ -0,0 +1,49 @@
+\input docstrip.tex
+
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesFile{everyshi.ins}
+ [2020/11/18 v4.0 Installation script for EveryShipout Package]
+
+\preamble
+Copyright (C) 1994–2001 Martin Schröder, 2020 Marei Peischl (peiTeX) <marei@peitex.de>
+
+This work may be distributed and/or modified under the
+conditions of the LaTeX Project Public License, either version 1.3c
+of this license or (at your option) any later version.
+The latest version of this license is in
+http://www.latex-project.org/lppl.txt
+and version 1.3c or later is part of all distributions of LaTeX
+version 2005/12/01 or later.
+
+This work has the LPPL maintenance status `maintained'.
+
+The Current Maintainer of this work is
+ Marei Peischl <marei@peitex.de>.
+
+This work consists of the files everyshi.dtx and everyshi.ins
+and the derived files everyshi.sty and everyshi-2001-05-15.sty.
+
+\endpreamble
+\keepsilent
+\askforoverwritefalse
+\generate{
+ \file{everyshi.sty}{\from{everyshi.dtx}{package}}
+ \file{everyshi-2001-05-15.sty}{\from{everyshi.dtx}{fallback,origpackage}}
+}
+
+\Msg{***********************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the following}
+\Msg{* style files into a directory searched by TeX:}
+\Msg{*}
+\Msg{* \space\space everyshi.sty}
+\Msg{* \space\space everyshi-2001-05-15.sty}
+\Msg{*}
+\Msg{* To produce the documentation run the file everysel.dtx}
+\Msg{* through LaTeX.}
+\Msg{*}
+\Msg{* Happy TeXing}
+\Msg{***********************************************************}
+\endbatchfile
+%%
+%% End of file `everyshi.ins'.
diff --git a/macros/latex/contrib/everyshi/everyshi.pdf b/macros/latex/contrib/everyshi/everyshi.pdf
new file mode 100644
index 0000000000..24ffeb921c
--- /dev/null
+++ b/macros/latex/contrib/everyshi/everyshi.pdf
Binary files differ
diff --git a/macros/latex/contrib/ms/README.md b/macros/latex/contrib/ms/README.md
new file mode 100644
index 0000000000..0d05a5ddbb
--- /dev/null
+++ b/macros/latex/contrib/ms/README.md
@@ -0,0 +1,12 @@
+# ms – Various LaTeX packages by Martin Schröder
+
+Copyright (C) 1994–2011 Martin Schröder
+
+everysel 2011/19/28 v2.1 EverySelectfont Package
+multitoc 1999/06/08 v2.01 MultiToc Package
+count1to 2009/05/25 v2.1 Count1to LaTeX Package
+
+The new upload has only been done to split the ms-bundle.
+The packages everyshi and prelim2e are no longer part of this bundle
+
+The current maintainer of this package is Marei Peischl <marei@peitex.de>
diff --git a/macros/latex/contrib/ms/count1to.dtx b/macros/latex/contrib/ms/count1to.dtx
index 53b7f148d0..35918bce60 100644
--- a/macros/latex/contrib/ms/count1to.dtx
+++ b/macros/latex/contrib/ms/count1to.dtx
@@ -1,500 +1,500 @@
-% \iffalse
-\NeedsTeXFormat{LaTeX2e}
-%<package>\ProvidesPackage{count1to}
-%<package> [2009/05/24 v2.1 Count1to9 Package (MS)]
-%
-%<*driver>
-\ProvidesFile{count1to.drv}
- [2009/05/24 v2.1 Driver for Count1to9 Package (MS)]
-\documentclass[a4paper]{ltxdoc}
-\usepackage[T1]{fontenc}
-\usepackage{lmodern}
-\usepackage{microtype}
-\usepackage{booktabs}
-\usepackage{url}
-\usepackage{count1to}
-\usepackage[toc]{multitoc}
-\usepackage{svn}
-\usepackage{hypdoc}
-\usepackage{geometry}
-\GetFileInfo{count1to.sty}
-\setcounter{IndexColumns}{2}
-% onecolumn glossary
-\makeatletter
- \renewenvironment{theglossary}{%
- \glossary@prologue
- \setlength\emergencystretch{5em}
- \GlossaryParms \let\item\@idxitem \ignorespaces}{}
-\makeatother
-\EnableCrossrefs
-\RecordChanges
-%%\DisableCrossrefs% Say \DisableCrossrefs if index is ready
-\CodelineIndex % Index code by line number
-%\OnlyDescription % comment out for implementation details
-%%\OldMakeIndex % use if your MakeIndex is pre-v2.9
-\setcounter{IndexColumns}{2}
-\setlength{\IndexMin}{30ex}
-\setlength{\premulticols}{\IndexMin}
-\addtolength{\oddsidemargin}{1cm}
-\addtolength{\textwidth}{-1cm}
-\begin{document}
- \DocInput{count1to.dtx}
-\end{document}
-%</driver>
-%^^A $Id: count1to.dtx 1368 2009-05-24 16:02:57Z oneiros $
-%
-% Copyright (c) 1994..2009 by Martin Schr\"oder. All rights reserved.
-%
-% This work may be distributed and/or modified under the
-% conditions of the LaTeX Project Public License, either version 1.3
-% of this license or (at your option) any later version.
-% The latest version of this license is in
-% http://www.latex-project.org/lppl.txt
-% and version 1.3 or later is part of all distributions of LaTeX
-% version 2005/12/01 or later.
-%
-% This work has the LPPL maintenance status `maintained'.
-%
-% The Current Maintainer of this work is Martin Schr\"oder.
-%
-% This work consists of the files count1to.dtx and count1to.ins
-% and the derived file count1to.sty.
-%
-% \fi
-%
-% \CheckSum{112}
-%
-%% \CharacterTable
-%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
-%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
-%% Digits \0\1\2\3\4\5\6\7\8\9
-%% Exclamation \! Double quote \" Hash (number) \#
-%% Dollar \$ Percent \% Ampersand \&
-%% Acute accent \' Left paren \( Right paren \)
-%% Asterisk \* Plus \+ Comma \,
-%% Minus \- Point \. Solidus \/
-%% Colon \: Semicolon \; Less than \<
-%% Equals \= Greater than \> Question mark \?
-%% Commercial at \@ Left bracket \[ Backslash \\
-%% Right bracket \] Circumflex \^ Underscore \_
-%% Grave accent \` Left brace \{ Vertical bar \|
-%% Right brace \} Tilde \~}
-%%
-%% \iffalse meta-comment
-%% ===================================================================
-%% @LaTeX-style-file{
-%% author = {Martin Schr\"oder},
-%% version = "2.1",
-%% date = "24 May 2009",
-%% filename = "count1to.sty",
-%% address = {Martin Schr\"oder
-%% Barmer Stra\"se 14
-%% 44137 Dortmund
-%% Germany}
-%% telephone = "+49-231-1206574",
-%% email = "martin@oneiros.de",
-% codetable = "ISO/ASCII",
-% keywords = "LaTeX, pages",
-% supported = "yes",
-%% docstring = "LaTeX package which sets count1 to count9,
-%% which can be used to select certain pages
-%% with a driver.
-%% Also provides access to the number of pages
-%% of the document.
-%% Uses the everyshi package."
-%% }
-%% ===================================================================
-%% \fi
-%
-% \SVN $Rev: 1368 $
-% \SVN $Date: 2009-05-24 18:02:57 +0200 (So, 24. Mai 2009) $
-%
-% \changes{v1.00}{1994/12/07}{New}
-% \changes{v1.01}{1994/12/09}{Documentation improved}
-% \changes{v1.02}{1996/12/29}{Documentation improved}
-% \changes{v1.20}{1998/08/09}{Documentation improved}
-% \changes{v1.22}{1999/06/08}{Moved to LPPL}
-% \changes{v2.00}{2002/08/31}{Removed \texttt{TotalPages}}
-% \changes{v2.1}{2009/05/24}{New address}
-%
-% \newcommand*{\Count}[1]{\texttt{\symbol{92}count#1}}
-% \newcommand*{\package}[1]{\textnormal{\sffamily#1}}
-% \newcommand*{\NEWfeature}[1]{%
-% \hskip 1sp \marginpar{\small\sffamily\raggedright
-% New feature\\#1}}
-%
-% ^^A -----------------------------
-%
-% \changes{v1.03}{1997-03-09}{Fixed use of \cs{newline} in title.}
-% \title{\unskip
-% The \package{count1to} package^^A
-% \thanks{^^A
-% The version number of this file is \fileversion, subversion
-% revision~\#\SVNRev, last revised
-% \protect\SVNDate.\protect\newline
-% The name \textsf{count1to} is a tribute to the $8+3$ file-naming
-% convention of certain ancient ``operating systems''; strictly
-% speaking it should be \textsf{count1to9}.}
-% }
-% \changes{v2.00}{2002/08/31}{Changed e-mail}
-% \author{Martin Schr\"oder\\[0.5ex]
-% \normalsize Barmer Stra\ss{}e 14\\
-% \normalsize 44137 Dortmund\\
-% \normalsize Germany\\
-% \normalsize martin@oneiros.de}
-% \date{\filedate}
-% \maketitle
-%
-% ^^A -----------------------------
-%
-%
-% \begin{abstract}
-% This package sets \Count{1} to \Count{8} with the values
-% of \texttt{page} to \texttt{subparagraph}.
-% \Count{9} is used to flag odd pages.
-% The values of these counters are displayed and written in the
-% \textsf{.dvi} file by \TeX{} and can later be used to select
-% the pages of certain parts of the document for printing if the
-% device driver supports this.
-% \end{abstract}
-%
-% \pagestyle{headings}
-%
-% ^^A -----------------------------
-%
-% \tableofcontents
-%
-% ^^A -----------------------------
-%
-% \section{Introduction to version 2}
-% ^^A
-% The main change of this new version is the removal of the code for
-% the \texttt{TotalPages} label.
-% This code didn't work with the \package{hyperref}
-% package\cite{package:hyperref} and better code to achieve the
-% effect of it is contained in the \package{totpages}
-% package\cite{package:totpages}.
-% So old documents using this package will not work when they try to
-% use the \texttt{TotalPages} label; these documents must be changed
-% by inserting a \cs{usepackage\{totpages\}} in the preamble and
-% replacing all occurences of \texttt{TotalPages} by
-% \texttt{TotPages}.
-%
-% ^^A -----------------------------
-%
-% \section{Introduction}
-% ^^A
-% Most of the time users want to print only certain parts of a
-% document; but these can only be selected by using the page numbers
-% of these parts with most device drivers.
-% This can be dif\/ficult or impossible if pages in dif\/ferent
-% parts of the document have the same number---e.\,g. in the
-% frontmatter and the first text pages (iii vs. 3).
-%
-% \TeX{} provides an easy solution to this problem: whenever a page
-% is completed by the output routine and shipped out via
-% \cs{shipout}, it displayes the values of \Count{0} to \Count{9}
-% on the display (e.\,g. \texttt{[1]}) \emph{and writes them to the
-% \textsf{.dvi} file}.
-%
-% \changes{v1.02}{1996/12/29}{fixed typos}
-% \begin{quote}
-% ``The first ten \Count{} registers, \Count{0} to \Count{9},
-% are reserved for a special purpose: \TeX{} displays these ten
-% counts on your terminal whenever ouputting a page, and it
-% transmits them to the output file as an identification of that
-% page.
-% The counts are separated by decimal points on your terminal,
-% with trailing `\texttt{.0}' patterns suppressed.
-% Thus, for example, if \Count{0=5} and \Count{2=7} when a
-% page is shipped out to the \texttt{dvi} file, and if the other
-% counters are zero, \TeX{} will type `\texttt{[5.0.7]}'.
-% Plain \TeX{} uses \Count{0} for the page number, and it keeps
-% \Count{1} through~\Count{9} equal to zero; that is why you
-% see `\texttt{[1]}' when page~1 is being output.
-% In more complex applications the page numbers can have further
-% structure; ten counts are shipped out so that there will be
-% plenty of identification.''\cite[p\@. 119]{KnuthTeXa}
-% \end{quote}
-%
-% \noindent
-% Surprinsingly, until recently there existed no package for
-% \LaTeX{} that used these \Count{}ers although some drivers allow
-% the selection of pages based on other \Count{}s then \Count{0}
-% (e.\,g. em\TeX).
-%
-% This package is the solution: It uses the \package{everyshi}
-% package\cite{package:everyshi} to set \Count{1} to \Count{9} before
-% each \cs{shipout} with these values:
-%
-% \begin{center}
-% \begin{tabular}{cl}\toprule
-% \Count{} & value \\ \midrule
-% 0 & relative page number (set by \LaTeX)\\
-% 1 & absolute page number\\
-% 2 & number of current \cs{part} \\
-% 3 & number of current \cs{chapter} (0 with article class)\\
-% 4 & number of current \cs{section} \\
-% 5 & number of current \cs{subsection} \\
-% 6 & number of current \cs{subsubsection} \\
-% 7 & number of current \cs{paragraph} \\
-% 8 & number of current \cs{subparagraph} \\
-% 9 & 1 on odd pages, 0 on even pages\footnotemark\\
-% \bottomrule
-% \end{tabular}
-% \end{center}
-% \footnotetext{^^A
-% If you have a better application for \Count{9}, let me know.}
-%
-% \noindent
-% \textsf{count1to} also works with classes that do not define some
-% or all of the sectioning commands and their counters, like
-% \textsf{letter}.
-% Although it is of somewhat little use then \texttt{:-)}.
-%
-% A note for users of this package: When you select the pages of
-% some part of your document with a lower structure than
-% \cs{chapter}, remember that only \cs{part}s and \cs{chapter}s
-% start on a new page; if you want to print a complete
-% \cs{section}, you should also select the first page of the next
-% \cs{section}.
-% Also note that \TeX{} ships out the values of the counters instead
-% of their visual representation (produced with
-% \cs{the}\emph{counter}), so appendix A sets \Count{4} to 1 in the
-% article class.
-%
-% A note for developers of device drivers: Please add support for
-% \Count{1} to~\texttt{9} to your programs.
-% It would also be nice if users could easily select the next
-% page(s) after a certain count (something like
-% ``\texttt{*.*.*.*.2+1.*}'' should be possible for selecting all
-% pages with $\Count{4}\mapsto\mathrm{section}=2$ plus the first
-% page of section~3).
-%
-% ^^A -----------------------------
-%
-% \section{Options}
-% ^^A
-% The package has no options.
-%
-%
-% ^^A -----------------------------
-%
-% \section{Required packages}
-% ^^A
-% The package requires the \package{everyshi}
-% package\cite{package:everyshi}.
-%
-%
-% ^^A -----------------------------
-%
-% \StopEventually{^^A
-%
-% ^^A -----------------------------
-%
-% \section{Acknowledgements}
-% ^^A
-% As usual Rebecca Stiels improved the quality of this documentation.
-%
-%
-% ^^A -----------------------------
-%
-% \begin{thebibliography}{1}
-% \raggedright
-% \bibitem{package:lastpage}
-% Jeff Goldberg.
-% \newblock The \package{lastpage}-package.
-% \newblock \url{CTAN: tex-archive/macros/latex/contrib/other/lastpage}.
-% \newblock \LaTeXe{} package.
-% \bibitem{KnuthTeXa}
-% Donald~E.\ Knuth.
-% \newblock \emph{The {\TeX}Book}, volume~A of \emph{Computers
-% and Typesetting}.
-% \newblock Addison-Wes\-ley, 1986.
-% \newblock Eleventh printing, revised, May 1991.
-% \bibitem{package:totpages}
-% Wilhelm M\"uller.
-% \newblock The \package{totpages} package.
-% \newblock \url{CTAN: tex-archive/macros/latex/contrib/supported/totpages/}.
-% \newblock \LaTeXe{} package.
-% \bibitem{package:hyperref}
-% Sebastian Rahtz.
-% \newblock Hypertext marks in \LaTeX.
-% \newblock \url{CTAN: tex-archive/macros/latex/contrib/supported/hyperref/}.
-% \bibitem{package:everyshi}
-% Martin Schr\"oder.
-% \newblock The \package{everyshi} package.
-% \newblock \url{CTAN: tex-archive/macros/latex/contrib/supported/ms/everyshi.dtx}.
-% \newblock \LaTeXe{} package.
-% \end{thebibliography}
-%
-% }
-%
-%
-% ^^A -----------------------------
-%
-% \section{The implementation}
-% ^^A
-% \setlength{\parindent}{0pt}
-% \begin{macrocode}
-%<*package>
-% \end{macrocode}
-%
-% We need the \package{everyshi} package.
-% \changes{v1.20}{1998/04/10}{don't require \textsf{ifthen}}
-% \changes{v1.10}{1997/11/01}{require \textsf{ifthen}}
-% \begin{macrocode}
-\RequirePackage{everyshi}[1994/12/09]
-% \end{macrocode}
-%
-% We need various \cs{if}s to check if the used counters
-% are defined.
-% \changes{v1.20}{1998/04/10}{\cs{newif} again}
-% \changes{v1.10}{1997/11/01}{\cs{newboolean}}
-% \begin{macrocode}
-\newif\if@have@part
-\newif\if@have@chapter
-\newif\if@have@section
-\newif\if@have@subsection
-\newif\if@have@subsubsection
-\newif\if@have@paragraph
-\newif\if@have@subparagraph
-% \end{macrocode}
-%
-% \begin{macro}{\@countItoIX@ifs}
-% \cs{@countItoIX@ifs} is used to set all these \cs{if}s at
-% |\begin{document}|.
-% It is undefined after use to save some space.
-% \changes{v2.00}{2002/08/31}{moved code for \cs{AtBeginDocument} to
-% \cs{@countItoIX@init}}
-% \changes{v1.20}{1998/04/10}{don't use \textsf{ifthen}}
-% \changes{v1.10}{1997/11/01}{\cs{setboolean}}
-% \changes{v1.02}{1996/12/29}{destruct after usage}
-% \begin{macrocode}
-\newcommand*{\@countItoIX@ifs}{
- \@ifundefined{c@part} {}{\@have@parttrue}
- \@ifundefined{c@chapter} {}{\@have@chaptertrue}
- \@ifundefined{c@section} {}{\@have@sectiontrue}
- \@ifundefined{c@subsection} {}{\@have@subsectiontrue}
- \@ifundefined{c@subsubsection} {}{\@have@subsubsectiontrue}
- \@ifundefined{c@paragraph} {}{\@have@paragraphtrue}
- \@ifundefined{c@subparagraph} {}{\@have@subparagraphtrue}
- }
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\@countItoIX@bugfix}
-% The current version of \LaTeX{} has the ``feature'' that only the
-% first level of counters associated with a counter via the optional
-% argument of \cs{newcounter} is reset when the counter is stepped;
-% so when you start a new chapter, the number for the subsection is
-% not reset.
-% This is normally no problem, but with this package, it is: If this
-% bug is not fixed or worked-around, then whenever you use
-% \cs{subparagraph} or some other lower sectioning command, and
-% after that a sectioning command that is at least two levels higher
-% (e.\,g. \cs{subsubsection}), the value of \texttt{subparagraph}
-% would not be reset and would still be displayed and shipped out.
-% So we have to associate \emph{all} lower-level sectioning commands
-% with the higher levels.
-% This is done via \cs{@addtoreset} at \cs{begin\{document\}}.
-% \cs{@countItoIX@bugfix} is undefined after use to save some space.
-% \changes{v2.00}{2002/08/31}{moved code for \cs{AtBeginDocument} to
-% \cs{@countItoIX@init}}
-% \changes{v1.20}{1998/04/10}{don't use \textsf{ifthen}}
-% \changes{v1.10}{1997/11/01}{\cs{ifthenelse}}
-% \changes{v1.02}{1996/12/29}{destruct after usage}
-% \begin{macrocode}
-\newcommand*{\@countItoIX@bugfix}{
- \if@have@part
- \@addtoreset{section} {part}
- \@addtoreset{subsection} {part}
- \@addtoreset{subsubsection}{part}
- \@addtoreset{paragraph} {part}
- \@addtoreset{subparagraph} {part}
- \fi
- \if@have@chapter
- \@addtoreset{subsection} {chapter}
- \@addtoreset{subsubsection}{chapter}
- \@addtoreset{paragraph} {chapter}
- \@addtoreset{subparagraph} {chapter}
- \fi
- \if@have@section
- \@addtoreset{subsubsection}{section}
- \@addtoreset{paragraph} {section}
- \@addtoreset{subparagraph} {section}
- \fi
- \if@have@subsection
- \@addtoreset{paragraph} {subsection}
- \@addtoreset{subparagraph} {subsection}
- \fi
- \if@have@subsubsection
- \@addtoreset{subparagraph} {subsubsection}
- \fi
- }
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\@countItoIX@init}
-% \changes{v2.00}{2002/08/31}{new}
-% \cs{@countItoIX@init} calls \cs{\@countItoIX@ifs} and
-% \cs{@countItoIX@bugfix} and then frees their memory.
-% This is done at \cs{begin\{document\}} via \cs{AtBeginDocument}.
-% \begin{macrocode}
-\newcommand*{\@countItoIX@init}{%
- \message{ABD: Count1to9 initializing macros}%
- \@countItoIX@ifs\let\@countItoIX@ifs\undefined
- \@countItoIX@bugfix\let\@countItoIX@bugfix\undefined
- }
-\AtBeginDocument{\@countItoIX@init}
-% \end{macrocode}
-% \end{macro}
-%
-%
-% \begin{macro}{\@countItoIX@shipout}
-% \cs{@countItoIX@shipout} is used for setting \Count{1} to
-% \Count{9} at each \cs{shipout}.
-% \begin{macrocode}
-\newcommand*{\@countItoIX@shipout}{
-% \end{macrocode}
-% \Count{1} is the absolute page number, which we have to maintain
-% by ourselves.
-% \begin{macrocode}
- \global\advance \count1 by 1
-% \end{macrocode}
-% \Count{2} to \Count{8} are set with the values of
-% \cs{part} to \cs{subparagraph}, if these commands are defined.^^A
-% \footnote{We should probably also check the value of
-% \texttt{secnumdepth}, but I don't think this is necessary.}
-% \changes{v1.20}{1998/04/10}{don't use \textsf{ifthen}}
-% \changes{v1.10}{1997/11/01}{\cs{ifthenelse}}
-% \begin{macrocode}
- \if@have@part \count2\value{part} \fi
- \if@have@chapter \count3\value{chapter} \fi
- \if@have@section \count4\value{section} \fi
- \if@have@subsection \count5\value{subsection} \fi
- \if@have@subsubsection \count6\value{subsubsection} \fi
- \if@have@paragraph \count7\value{paragraph} \fi
- \if@have@subparagraph \count8\value{subparagraph} \fi
-% \end{macrocode}
-% \Count{9} is set to~1 on odd pages and to~0 on even pages.
-% \begin{macrocode}
- \ifodd\count1\count9=1 \else\count9=0 \fi
- }
-\EveryShipout{\@countItoIX@shipout}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macrocode}
-%</package>
-% \end{macrocode}
-%
-% ^^A -----------------------------
-%
-% \Finale
-%
-% \PrintIndex\PrintChanges
-% ^^A Make sure that the index is not printed twice
-% ^^A (ltxdoc.cfg might have a second \PrintIndex command)
-% \let\PrintChanges\relax
-% \let\PrintIndex\relax
+% \iffalse
+\NeedsTeXFormat{LaTeX2e}
+%<package>\ProvidesPackage{count1to}
+%<package> [2009/05/24 v2.1 Count1to9 Package (MS)]
+%
+%<*driver>
+\ProvidesFile{count1to.drv}
+ [2009/05/24 v2.1 Driver for Count1to9 Package (MS)]
+\documentclass[a4paper]{ltxdoc}
+\usepackage[T1]{fontenc}
+\usepackage{lmodern}
+\usepackage{microtype}
+\usepackage{booktabs}
+\usepackage{url}
+\usepackage{count1to}
+\usepackage[toc]{multitoc}
+\usepackage{svn}
+\usepackage{hypdoc}
+\usepackage{geometry}
+\GetFileInfo{count1to.sty}
+\setcounter{IndexColumns}{2}
+% onecolumn glossary
+\makeatletter
+ \renewenvironment{theglossary}{%
+ \glossary@prologue
+ \setlength\emergencystretch{5em}
+ \GlossaryParms \let\item\@idxitem \ignorespaces}{}
+\makeatother
+\EnableCrossrefs
+\RecordChanges
+%%\DisableCrossrefs% Say \DisableCrossrefs if index is ready
+\CodelineIndex % Index code by line number
+%\OnlyDescription % comment out for implementation details
+%%\OldMakeIndex % use if your MakeIndex is pre-v2.9
+\setcounter{IndexColumns}{2}
+\setlength{\IndexMin}{30ex}
+\setlength{\premulticols}{\IndexMin}
+\addtolength{\oddsidemargin}{1cm}
+\addtolength{\textwidth}{-1cm}
+\begin{document}
+ \DocInput{count1to.dtx}
+\end{document}
+%</driver>
+%^^A $Id: count1to.dtx 1368 2009-05-24 16:02:57Z oneiros $
+%
+% Copyright (c) 1994..2009 by Martin Schr\"oder. All rights reserved.
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status `maintained'.
+%
+% The Current Maintainer of this work is Martin Schr\"oder.
+%
+% This work consists of the files count1to.dtx and count1to.ins
+% and the derived file count1to.sty.
+%
+% \fi
+%
+% \CheckSum{112}
+%
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%%
+%% \iffalse meta-comment
+%% ===================================================================
+%% @LaTeX-style-file{
+%% author = {Martin Schr\"oder},
+%% version = "2.1",
+%% date = "24 May 2009",
+%% filename = "count1to.sty",
+%% address = {Martin Schr\"oder
+%% Barmer Stra\"se 14
+%% 44137 Dortmund
+%% Germany}
+%% telephone = "+49-231-1206574",
+%% email = "martin@oneiros.de",
+% codetable = "ISO/ASCII",
+% keywords = "LaTeX, pages",
+% supported = "yes",
+%% docstring = "LaTeX package which sets count1 to count9,
+%% which can be used to select certain pages
+%% with a driver.
+%% Also provides access to the number of pages
+%% of the document.
+%% Uses the everyshi package."
+%% }
+%% ===================================================================
+%% \fi
+%
+% \SVN $Rev: 1368 $
+% \SVN $Date: 2009-05-24 18:02:57 +0200 (So, 24. Mai 2009) $
+%
+% \changes{v1.00}{1994/12/07}{New}
+% \changes{v1.01}{1994/12/09}{Documentation improved}
+% \changes{v1.02}{1996/12/29}{Documentation improved}
+% \changes{v1.20}{1998/08/09}{Documentation improved}
+% \changes{v1.22}{1999/06/08}{Moved to LPPL}
+% \changes{v2.00}{2002/08/31}{Removed \texttt{TotalPages}}
+% \changes{v2.1}{2009/05/24}{New address}
+%
+% \newcommand*{\Count}[1]{\texttt{\symbol{92}count#1}}
+% \newcommand*{\package}[1]{\textnormal{\sffamily#1}}
+% \newcommand*{\NEWfeature}[1]{%
+% \hskip 1sp \marginpar{\small\sffamily\raggedright
+% New feature\\#1}}
+%
+% ^^A -----------------------------
+%
+% \changes{v1.03}{1997-03-09}{Fixed use of \cs{newline} in title.}
+% \title{\unskip
+% The \package{count1to} package^^A
+% \thanks{^^A
+% The version number of this file is \fileversion, subversion
+% revision~\#\SVNRev, last revised
+% \protect\SVNDate.\protect\newline
+% The name \textsf{count1to} is a tribute to the $8+3$ file-naming
+% convention of certain ancient ``operating systems''; strictly
+% speaking it should be \textsf{count1to9}.}
+% }
+% \changes{v2.00}{2002/08/31}{Changed e-mail}
+% \author{Martin Schr\"oder\\[0.5ex]
+% \normalsize Barmer Stra\ss{}e 14\\
+% \normalsize 44137 Dortmund\\
+% \normalsize Germany\\
+% \normalsize martin@oneiros.de}
+% \date{\filedate}
+% \maketitle
+%
+% ^^A -----------------------------
+%
+%
+% \begin{abstract}
+% This package sets \Count{1} to \Count{8} with the values
+% of \texttt{page} to \texttt{subparagraph}.
+% \Count{9} is used to flag odd pages.
+% The values of these counters are displayed and written in the
+% \textsf{.dvi} file by \TeX{} and can later be used to select
+% the pages of certain parts of the document for printing if the
+% device driver supports this.
+% \end{abstract}
+%
+% \pagestyle{headings}
+%
+% ^^A -----------------------------
+%
+% \tableofcontents
+%
+% ^^A -----------------------------
+%
+% \section{Introduction to version 2}
+% ^^A
+% The main change of this new version is the removal of the code for
+% the \texttt{TotalPages} label.
+% This code didn't work with the \package{hyperref}
+% package\cite{package:hyperref} and better code to achieve the
+% effect of it is contained in the \package{totpages}
+% package\cite{package:totpages}.
+% So old documents using this package will not work when they try to
+% use the \texttt{TotalPages} label; these documents must be changed
+% by inserting a \cs{usepackage\{totpages\}} in the preamble and
+% replacing all occurences of \texttt{TotalPages} by
+% \texttt{TotPages}.
+%
+% ^^A -----------------------------
+%
+% \section{Introduction}
+% ^^A
+% Most of the time users want to print only certain parts of a
+% document; but these can only be selected by using the page numbers
+% of these parts with most device drivers.
+% This can be dif\/ficult or impossible if pages in dif\/ferent
+% parts of the document have the same number---e.\,g. in the
+% frontmatter and the first text pages (iii vs. 3).
+%
+% \TeX{} provides an easy solution to this problem: whenever a page
+% is completed by the output routine and shipped out via
+% \cs{shipout}, it displayes the values of \Count{0} to \Count{9}
+% on the display (e.\,g. \texttt{[1]}) \emph{and writes them to the
+% \textsf{.dvi} file}.
+%
+% \changes{v1.02}{1996/12/29}{fixed typos}
+% \begin{quote}
+% ``The first ten \Count{} registers, \Count{0} to \Count{9},
+% are reserved for a special purpose: \TeX{} displays these ten
+% counts on your terminal whenever ouputting a page, and it
+% transmits them to the output file as an identification of that
+% page.
+% The counts are separated by decimal points on your terminal,
+% with trailing `\texttt{.0}' patterns suppressed.
+% Thus, for example, if \Count{0=5} and \Count{2=7} when a
+% page is shipped out to the \texttt{dvi} file, and if the other
+% counters are zero, \TeX{} will type `\texttt{[5.0.7]}'.
+% Plain \TeX{} uses \Count{0} for the page number, and it keeps
+% \Count{1} through~\Count{9} equal to zero; that is why you
+% see `\texttt{[1]}' when page~1 is being output.
+% In more complex applications the page numbers can have further
+% structure; ten counts are shipped out so that there will be
+% plenty of identification.''\cite[p\@. 119]{KnuthTeXa}
+% \end{quote}
+%
+% \noindent
+% Surprinsingly, until recently there existed no package for
+% \LaTeX{} that used these \Count{}ers although some drivers allow
+% the selection of pages based on other \Count{}s then \Count{0}
+% (e.\,g. em\TeX).
+%
+% This package is the solution: It uses the \package{everyshi}
+% package\cite{package:everyshi} to set \Count{1} to \Count{9} before
+% each \cs{shipout} with these values:
+%
+% \begin{center}
+% \begin{tabular}{cl}\toprule
+% \Count{} & value \\ \midrule
+% 0 & relative page number (set by \LaTeX)\\
+% 1 & absolute page number\\
+% 2 & number of current \cs{part} \\
+% 3 & number of current \cs{chapter} (0 with article class)\\
+% 4 & number of current \cs{section} \\
+% 5 & number of current \cs{subsection} \\
+% 6 & number of current \cs{subsubsection} \\
+% 7 & number of current \cs{paragraph} \\
+% 8 & number of current \cs{subparagraph} \\
+% 9 & 1 on odd pages, 0 on even pages\footnotemark\\
+% \bottomrule
+% \end{tabular}
+% \end{center}
+% \footnotetext{^^A
+% If you have a better application for \Count{9}, let me know.}
+%
+% \noindent
+% \textsf{count1to} also works with classes that do not define some
+% or all of the sectioning commands and their counters, like
+% \textsf{letter}.
+% Although it is of somewhat little use then \texttt{:-)}.
+%
+% A note for users of this package: When you select the pages of
+% some part of your document with a lower structure than
+% \cs{chapter}, remember that only \cs{part}s and \cs{chapter}s
+% start on a new page; if you want to print a complete
+% \cs{section}, you should also select the first page of the next
+% \cs{section}.
+% Also note that \TeX{} ships out the values of the counters instead
+% of their visual representation (produced with
+% \cs{the}\emph{counter}), so appendix A sets \Count{4} to 1 in the
+% article class.
+%
+% A note for developers of device drivers: Please add support for
+% \Count{1} to~\texttt{9} to your programs.
+% It would also be nice if users could easily select the next
+% page(s) after a certain count (something like
+% ``\texttt{*.*.*.*.2+1.*}'' should be possible for selecting all
+% pages with $\Count{4}\mapsto\mathrm{section}=2$ plus the first
+% page of section~3).
+%
+% ^^A -----------------------------
+%
+% \section{Options}
+% ^^A
+% The package has no options.
+%
+%
+% ^^A -----------------------------
+%
+% \section{Required packages}
+% ^^A
+% The package requires the \package{everyshi}
+% package\cite{package:everyshi}.
+%
+%
+% ^^A -----------------------------
+%
+% \StopEventually{^^A
+%
+% ^^A -----------------------------
+%
+% \section{Acknowledgements}
+% ^^A
+% As usual Rebecca Stiels improved the quality of this documentation.
+%
+%
+% ^^A -----------------------------
+%
+% \begin{thebibliography}{1}
+% \raggedright
+% \bibitem{package:lastpage}
+% Jeff Goldberg.
+% \newblock The \package{lastpage}-package.
+% \newblock \url{CTAN: tex-archive/macros/latex/contrib/other/lastpage}.
+% \newblock \LaTeXe{} package.
+% \bibitem{KnuthTeXa}
+% Donald~E.\ Knuth.
+% \newblock \emph{The {\TeX}Book}, volume~A of \emph{Computers
+% and Typesetting}.
+% \newblock Addison-Wes\-ley, 1986.
+% \newblock Eleventh printing, revised, May 1991.
+% \bibitem{package:totpages}
+% Wilhelm M\"uller.
+% \newblock The \package{totpages} package.
+% \newblock \url{CTAN: tex-archive/macros/latex/contrib/supported/totpages/}.
+% \newblock \LaTeXe{} package.
+% \bibitem{package:hyperref}
+% Sebastian Rahtz.
+% \newblock Hypertext marks in \LaTeX.
+% \newblock \url{CTAN: tex-archive/macros/latex/contrib/supported/hyperref/}.
+% \bibitem{package:everyshi}
+% Martin Schr\"oder.
+% \newblock The \package{everyshi} package.
+% \newblock \url{CTAN: tex-archive/macros/latex/contrib/supported/ms/everyshi.dtx}.
+% \newblock \LaTeXe{} package.
+% \end{thebibliography}
+%
+% }
+%
+%
+% ^^A -----------------------------
+%
+% \section{The implementation}
+% ^^A
+% \setlength{\parindent}{0pt}
+% \begin{macrocode}
+%<*package>
+% \end{macrocode}
+%
+% We need the \package{everyshi} package.
+% \changes{v1.20}{1998/04/10}{don't require \textsf{ifthen}}
+% \changes{v1.10}{1997/11/01}{require \textsf{ifthen}}
+% \begin{macrocode}
+\RequirePackage{everyshi}[1994/12/09]
+% \end{macrocode}
+%
+% We need various \cs{if}s to check if the used counters
+% are defined.
+% \changes{v1.20}{1998/04/10}{\cs{newif} again}
+% \changes{v1.10}{1997/11/01}{\cs{newboolean}}
+% \begin{macrocode}
+\newif\if@have@part
+\newif\if@have@chapter
+\newif\if@have@section
+\newif\if@have@subsection
+\newif\if@have@subsubsection
+\newif\if@have@paragraph
+\newif\if@have@subparagraph
+% \end{macrocode}
+%
+% \begin{macro}{\@countItoIX@ifs}
+% \cs{@countItoIX@ifs} is used to set all these \cs{if}s at
+% |\begin{document}|.
+% It is undefined after use to save some space.
+% \changes{v2.00}{2002/08/31}{moved code for \cs{AtBeginDocument} to
+% \cs{@countItoIX@init}}
+% \changes{v1.20}{1998/04/10}{don't use \textsf{ifthen}}
+% \changes{v1.10}{1997/11/01}{\cs{setboolean}}
+% \changes{v1.02}{1996/12/29}{destruct after usage}
+% \begin{macrocode}
+\newcommand*{\@countItoIX@ifs}{
+ \@ifundefined{c@part} {}{\@have@parttrue}
+ \@ifundefined{c@chapter} {}{\@have@chaptertrue}
+ \@ifundefined{c@section} {}{\@have@sectiontrue}
+ \@ifundefined{c@subsection} {}{\@have@subsectiontrue}
+ \@ifundefined{c@subsubsection} {}{\@have@subsubsectiontrue}
+ \@ifundefined{c@paragraph} {}{\@have@paragraphtrue}
+ \@ifundefined{c@subparagraph} {}{\@have@subparagraphtrue}
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@countItoIX@bugfix}
+% The current version of \LaTeX{} has the ``feature'' that only the
+% first level of counters associated with a counter via the optional
+% argument of \cs{newcounter} is reset when the counter is stepped;
+% so when you start a new chapter, the number for the subsection is
+% not reset.
+% This is normally no problem, but with this package, it is: If this
+% bug is not fixed or worked-around, then whenever you use
+% \cs{subparagraph} or some other lower sectioning command, and
+% after that a sectioning command that is at least two levels higher
+% (e.\,g. \cs{subsubsection}), the value of \texttt{subparagraph}
+% would not be reset and would still be displayed and shipped out.
+% So we have to associate \emph{all} lower-level sectioning commands
+% with the higher levels.
+% This is done via \cs{@addtoreset} at \cs{begin\{document\}}.
+% \cs{@countItoIX@bugfix} is undefined after use to save some space.
+% \changes{v2.00}{2002/08/31}{moved code for \cs{AtBeginDocument} to
+% \cs{@countItoIX@init}}
+% \changes{v1.20}{1998/04/10}{don't use \textsf{ifthen}}
+% \changes{v1.10}{1997/11/01}{\cs{ifthenelse}}
+% \changes{v1.02}{1996/12/29}{destruct after usage}
+% \begin{macrocode}
+\newcommand*{\@countItoIX@bugfix}{
+ \if@have@part
+ \@addtoreset{section} {part}
+ \@addtoreset{subsection} {part}
+ \@addtoreset{subsubsection}{part}
+ \@addtoreset{paragraph} {part}
+ \@addtoreset{subparagraph} {part}
+ \fi
+ \if@have@chapter
+ \@addtoreset{subsection} {chapter}
+ \@addtoreset{subsubsection}{chapter}
+ \@addtoreset{paragraph} {chapter}
+ \@addtoreset{subparagraph} {chapter}
+ \fi
+ \if@have@section
+ \@addtoreset{subsubsection}{section}
+ \@addtoreset{paragraph} {section}
+ \@addtoreset{subparagraph} {section}
+ \fi
+ \if@have@subsection
+ \@addtoreset{paragraph} {subsection}
+ \@addtoreset{subparagraph} {subsection}
+ \fi
+ \if@have@subsubsection
+ \@addtoreset{subparagraph} {subsubsection}
+ \fi
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@countItoIX@init}
+% \changes{v2.00}{2002/08/31}{new}
+% \cs{@countItoIX@init} calls \cs{\@countItoIX@ifs} and
+% \cs{@countItoIX@bugfix} and then frees their memory.
+% This is done at \cs{begin\{document\}} via \cs{AtBeginDocument}.
+% \begin{macrocode}
+\newcommand*{\@countItoIX@init}{%
+ \message{ABD: Count1to9 initializing macros}%
+ \@countItoIX@ifs\let\@countItoIX@ifs\undefined
+ \@countItoIX@bugfix\let\@countItoIX@bugfix\undefined
+ }
+\AtBeginDocument{\@countItoIX@init}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\@countItoIX@shipout}
+% \cs{@countItoIX@shipout} is used for setting \Count{1} to
+% \Count{9} at each \cs{shipout}.
+% \begin{macrocode}
+\newcommand*{\@countItoIX@shipout}{
+% \end{macrocode}
+% \Count{1} is the absolute page number, which we have to maintain
+% by ourselves.
+% \begin{macrocode}
+ \global\advance \count1 by 1
+% \end{macrocode}
+% \Count{2} to \Count{8} are set with the values of
+% \cs{part} to \cs{subparagraph}, if these commands are defined.^^A
+% \footnote{We should probably also check the value of
+% \texttt{secnumdepth}, but I don't think this is necessary.}
+% \changes{v1.20}{1998/04/10}{don't use \textsf{ifthen}}
+% \changes{v1.10}{1997/11/01}{\cs{ifthenelse}}
+% \begin{macrocode}
+ \if@have@part \count2\value{part} \fi
+ \if@have@chapter \count3\value{chapter} \fi
+ \if@have@section \count4\value{section} \fi
+ \if@have@subsection \count5\value{subsection} \fi
+ \if@have@subsubsection \count6\value{subsubsection} \fi
+ \if@have@paragraph \count7\value{paragraph} \fi
+ \if@have@subparagraph \count8\value{subparagraph} \fi
+% \end{macrocode}
+% \Count{9} is set to~1 on odd pages and to~0 on even pages.
+% \begin{macrocode}
+ \ifodd\count1\count9=1 \else\count9=0 \fi
+ }
+\EveryShipout{\@countItoIX@shipout}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macrocode}
+%</package>
+% \end{macrocode}
+%
+% ^^A -----------------------------
+%
+% \Finale
+%
+% \PrintIndex\PrintChanges
+% ^^A Make sure that the index is not printed twice
+% ^^A (ltxdoc.cfg might have a second \PrintIndex command)
+% \let\PrintChanges\relax
+% \let\PrintIndex\relax
diff --git a/macros/latex/contrib/ms/everyshi.asc b/macros/latex/contrib/ms/everyshi.asc
deleted file mode 100644
index bb1eed36d3..0000000000
--- a/macros/latex/contrib/ms/everyshi.asc
+++ /dev/null
@@ -1,12 +0,0 @@
------BEGIN PGP MESSAGE-----
-Version: 2.6.3ia
-Comment: PGP sig of everyshi.dvi
-
-iQEVAwUAOwFX9+HJal4pKBTlAQFgzQgAm46axsBGuE+YzpINenw8Ns+BIsadiiPx
-X8IepfL9rDPX6m2CnDPYO8f1v2njKAQawxdWbi+KQkQ6ApdN7tUySzUDHK+Bu2yW
-I/0q3wnMWDC83f0Ebfrg9rVfmzhOw6D64Vp4tM3eufpu+KNvohQP0lCutFAFUaGt
-iHbsg+NRxJwSobRSyXyEt8uIgwp6wdHvxKXEpfwbNSJD3hv88rVbwq1cZeEggNPP
-CPjEJo09dOt6OgG+/znS9gvNkENATuIvFt+ZpBxthI5v0q/OLjaD7SllwHpza1vv
-RREXdlBQLNwQu6jBaAQozTJBNMUyo5E+TiV9WKI5XwfblSMO3pIIBw==
-=luvY
------END PGP MESSAGE-----
diff --git a/macros/latex/contrib/ms/everyshi.bug b/macros/latex/contrib/ms/everyshi.bug
deleted file mode 100644
index 29f4f1078c..0000000000
--- a/macros/latex/contrib/ms/everyshi.bug
+++ /dev/null
@@ -1,11 +0,0 @@
-This file is part of the everyshi package.
-------------------------------------------
-
-\ProvidesFile{everyshi.bug}[1999/06/08 v2.03 EveryShipout Package Bugs (MS)]
-
-This file contains problem-records and bug-reports. Unsolved problems
-and uncorrected but known bugs (so called features) start out with two
-exclamation marks before the number. Fixed problems will start with two
-asterisks.
-
-No bugs so far.
diff --git a/macros/latex/contrib/ms/everyshi.ins b/macros/latex/contrib/ms/everyshi.ins
deleted file mode 100644
index be7a239880..0000000000
--- a/macros/latex/contrib/ms/everyshi.ins
+++ /dev/null
@@ -1,113 +0,0 @@
-\NeedsTeXFormat{LaTeX2e}
-\ProvidesFile{everysel.ins}
- [1998/06/08 v2.03 Installation script for EveryShipout Package (MS)]
-%%
-%% Copyright (C) [1994..1999] by Martin Schr"oder. All rights reserved.
-%%
-%% This program may be redistributed and/or modified under the terms
-%% of the LaTeX Project Public License, either version 1.0 of this
-%% license, or (at your option) any later version.
-%% The latest version of this license is in
-%% CTAN:macros/latex/base/lppl.txt.
-%%
-%% Happy users are requested to send me a postcard. :-)
-%%
-%% checksum = "36957 126 454 3799"
-%%
-%% 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.
-%%
-%% --------------- start of docstrip commands ------------------
-\input docstrip.tex
-{\ifx\endbatchfile\undefined
-\Msg{**********************************************}
-\Msg{*}
-\Msg{* This installation requires docstrip}
-\Msg{* version 2.4d or later.}
-\Msg{*}
-\Msg{* An older version of docstrip has been input}
-\Msg{*}
-\Msg{**********************************************}
-\errhelp{Move or rename old docstrip.tex.}
-\errmessage{Old docstrip in input path}
-\batchmode
-\csname @@end\endcsname
-\fi}
-
-\Msg{***********************************************************}
-\Msg{*}
-\Msg{* The everyshi distribution contains these files:}
-\Msg{*}
-\Msg{* \space\space everyshi.asc}
-\Msg{* \space\space everyshi.dtx}
-\Msg{* \space\space everyshi.dvi}
-\Msg{* \space\space everyshi.ins}
-\Msg{* \space\space everyshi.bug}
-\Msg{*}
-\Msg{* If you receive only some of these files from someone, complain!}
-\Msg{*}
-\Msg{***********************************************************}
-\preamble
-
-Copyright (C) [1994..1999] by Martin Schroeder. All rights reserved.
-
-This file is part of the EveryShi package
-
-This program may be redistributed and/or modified under the terms
-of the LaTeX Project Public License, either version 1.0 of this
-license, or (at your option) any later version.
-The latest version of this license is in
- CTAN:macros/latex/base/lppl.txt.
-
-Happy users are requested to send me a postcard. :-)
-
-The EveryShi package contains these files:
-
- everyshi.asc
- everyshi.dtx
- everyshi.dvi
- everyshi.ins
- everyshi.bug
-
-Error Reports in case of UNCHANGED versions to
-
- Martin Schr"oder
- Cr"usemannallee 3
- D-28213 Bremen
- Martin.Schroeder@ACM.org
-
-\endpreamble
-\declarepreamble\driverpreamble
-This file is part of the EveryShi package
------------------------------------------
-
-Copyright (C) [1994..1999] Martin Schroder. All rights reserved.
-
-To produce the documentation in the way you like you are allowed
-to change this driver file.
-\endpreamble
-
-\keepsilent
-\askforoverwritefalse
-\generate{\file{everyshi.sty}{\from{everyshi.dtx}{package}}
- \usepreamble\driverpreamble
- \file{everyshi.drv}{\from{everyshi.dtx}{driver}}
- }
-
-\Msg{***********************************************************}
-\Msg{*}
-\Msg{* To finish the installation you have to move the following}
-\Msg{* style files into a directory searched by TeX:}
-\Msg{*}
-\Msg{* \space\space everyshi.sty}
-\Msg{*}
-\Msg{* To produce the documentation run the file everysel.dtx}
-\Msg{* through LaTeX.}
-\Msg{*}
-\Msg{* Happy TeXing}
-\Msg{***********************************************************}
-\endbatchfile
-%%
-%% End of file `everyshi.ins'.
diff --git a/macros/latex/contrib/ms/everyshi.pdf b/macros/latex/contrib/ms/everyshi.pdf
deleted file mode 100644
index c2696042bd..0000000000
--- a/macros/latex/contrib/ms/everyshi.pdf
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/ms/prelim2e.ins b/macros/latex/contrib/ms/prelim2e.ins
deleted file mode 100644
index 00a57b5469..0000000000
--- a/macros/latex/contrib/ms/prelim2e.ins
+++ /dev/null
@@ -1,110 +0,0 @@
-%\NeedsTeXFormat{LaTeX2e}
-%\ProvidesFile{prelim2e.ins}
-% [2009/05/29 v1.3 Installation script for prelim2e Package (MS)]
-%%
-%% Copyright (C) 1995..2009 by Martin Schroeder.
-%%
-%% This work may be distributed and/or modified under the
-%% conditions of the LaTeX Project Public License, either version 1.3
-%% of this license or (at your option) any later version.
-%% The latest version of this license is in
-%% http://www.latex-project.org/lppl.txt
-%% and version 1.3 or later is part of all distributions of LaTeX
-%% version 2005/12/01 or later.
-%%
-%% This work has the LPPL maintenance status `maintained'.
-%%
-%% The Current Maintainer of this work is Martin Schr\"oder.
-%%
-%% This work consists of the files prelim2e.dtx and prelim2e.ins
-%% and the derived file prelim2e.sty.
-%%
-%% $Id: prelim2e.ins 1374 2009-05-30 20:23:36Z oneiros $
-%% --------------- start of docstrip commands ------------------
-\input docstrip.tex
-{\ifx\endbatchfile\undefined
-\Msg{**********************************************}
-\Msg{*}
-\Msg{* This installation requires docstrip}
-\Msg{* version 2.4d or later.}
-\Msg{*}
-\Msg{* An older version of docstrip has been input}
-\Msg{*}
-\Msg{**********************************************}
-\errhelp{Move or rename old docstrip.tex.}
-\errmessage{Old docstrip in input path}
-\batchmode
-\csname @@end\endcsname
-\fi}
-
-\Msg{***********************************************************}
-\Msg{*}
-\Msg{* The prelim2e distribution contains these files:}
-\Msg{*}
-\Msg{* \space\space prelim2e.dtx}
-\Msg{* \space\space prelim2e.ins}
-\Msg{*}
-\Msg{* If you receive only some of these files from someone, complain!}
-\Msg{*}
-\Msg{***********************************************************}
-
-\preamble
-
-Copyright (C) 1995..2009 by Martin Schroeder.
-
-This file is part of the Prelim2e package
------------------------------------------
-
-This work may be distributed and/or modified under the
-conditions of the LaTeX Project Public License, either version 1.3
-of this license or (at your option) any later version.
-The latest version of this license is in
- http://www.latex-project.org/lppl.txt
-and version 1.3 or later is part of all distributions of LaTeX
-version 2005/12/01 or later.
-
-This work has the LPPL maintenance status `maintained'.
-
-The Current Maintainer of this work is Martin Schroeder.
-
-This work consists of the files prelim2e.dtx and prelim2e.ins
-and the derived file prelim2e.sty.
-
-\endpreamble
-\declarepreamble\driverpreamble
-
-Copyright (C) 1995..2009 Martin Schroeder.
-
-This file is part of the Prelim2e package
------------------------------------------
-
-To produce the documentation in the way you like you are allowed
-to change this driver file.
-
-\endpreamble
-
-
-% Don't display progress
-\keepsilent
-\askforoverwritefalse
-\generate{\file{prelim2e.sty}{\from{prelim2e.dtx}{package}}
- \usepreamble\driverpreamble
- \file{prelim2e.drv}{\from{prelim2e.dtx}{driver}}
- }
-
-\Msg{***********************************************************}
-\Msg{*}
-\Msg{* To finish the installation you have to move the following}
-\Msg{* files into a directory searched by TeX:}
-\Msg{*}
-\Msg{* \space\space prelim2e.sty}
-\Msg{*}
-\Msg{* To produce the documentation run the file prelim2e.drv}
-\Msg{* through LaTeX.}
-\Msg{*}
-\Msg{* Happy TeXing}
-\Msg{***********************************************************}
-\endbatchfile
-%%
-%% End of file `prelim2e.ins'.
-%% vim:syntax=tex:tw=70:ts=2
diff --git a/macros/latex/contrib/ms/prelim2e.pdf b/macros/latex/contrib/ms/prelim2e.pdf
deleted file mode 100644
index 5f1c8787f7..0000000000
--- a/macros/latex/contrib/ms/prelim2e.pdf
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/prelim2e/README.md b/macros/latex/contrib/prelim2e/README.md
new file mode 100644
index 0000000000..73b013b18d
--- /dev/null
+++ b/macros/latex/contrib/prelim2e/README.md
@@ -0,0 +1,26 @@
+# The LaTeX package `prelim2e`
+
+Copyright (C) 1995–2009 Martin Schröder, 2020 Marei Peischl (peiTeX) <marei@peitex.de>
+
+prelim2e 2020/11/24 v2.00 Prelim2e LaTeX Package
+
+***************************************************************************
+
+ This material is subject to the LaTeX Project Public License version 1.3c
+ or later. See http://www.latex-project.org/lppl.txt for details.
+
+***************************************************************************
+
+## Provided files
+
+* README.md
+* prelim2e.dtx
+* prelim2e.ins
+
+The files
+* prelim2e.sty
+can be generated from the prelim2e.dtx by processing the prelim2e.ins-file.
+
+## Version History
+
+ * v2.00 (2020-11-24) Reimplement the package using the kernel's hook management and switch to L3 Syntax
diff --git a/macros/latex/contrib/ms/prelim2e.dtx b/macros/latex/contrib/prelim2e/prelim2e.dtx
index e0a4b812b9..fad93426b3 100644
--- a/macros/latex/contrib/ms/prelim2e.dtx
+++ b/macros/latex/contrib/prelim2e/prelim2e.dtx
@@ -1,115 +1,88 @@
+% \iffalse meta-comment
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Copyright (C) Martin Schröder, 1994–2001
+% Marei Peischl (peiTeX) <marei@peitex.de>, 2020
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3c
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3c or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status `maintained'.
+%
+% The Current Maintainer of this work is
+% Marei Peischl <marei@peitex.de>.
+%
+% This work consists of the files
+% README.md
+% prelim2e.dtx
+% prelim2e.ins
+% and the derived files
+% prelim2e.sty
+% prelim2e.pdf
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% \fi
% \changes{v1.01}{1995/05/02}{Date added to \cs{NeedsTeXFormat}}
+% \changes{v2.00}{2020/11/24}{Complete rework to use the kernel methods instead of everyshi}
% \iffalse
\NeedsTeXFormat{LaTeX2e}[1995/12/01]
-%<package>\ProvidesPackage{prelim2e}
-%<package> [2009/05/29 v1.3 prelim2e Package (MS)]
+%<package>\ProvidesExplPackage{prelim2e}
+%<package> {2020/11/24}{2.0}{prelim2e Package}
%
%<*driver>
\ProvidesFile{prelim2e.drv}
- [2009/05/29 v1.3 Driver for prelim2e Package (MS)]
-\documentclass[a4paper]{ltxdoc}
-\usepackage[T1]{fontenc}
+ [2020/11/24 v2.0 Driver for prelim2e Package]
+\documentclass{l3doc}
\usepackage{url}
-\usepackage[toc]{multitoc}
-\usepackage{lmodern,microtype,svn}
-\usepackage{hypdoc}
+\DeclareUrlCommand\CTANlink{\def\UrlLeft{CTAN:\space}\def\UrlRight{}\urlstyle{tt}}
\usepackage{geometry}
\usepackage[scrtime]{prelim2e}
\GetFileInfo{prelim2e.sty}
\EnableCrossrefs
\RecordChanges % Gather update information
%%\DisableCrossrefs% Say \DisableCrossrefs if index is ready
-\CodelineIndex % Index code by line number
-%\OnlyDescription % comment out for implementation details
+\OnlyDescription % comment out for implementation details
%%\OldMakeIndex % use if your MakeIndex is pre-v2.9
\setcounter{IndexColumns}{2}
+\oddsidemargin=2cm
+\marginparwidth=2.5cm
% onecolumn glossary
-\makeatletter
- \renewenvironment{theglossary}{%
- \glossary@prologue
- \setlength\emergencystretch{5em}
- \GlossaryParms \let\item\@idxitem \ignorespaces}{}
-\makeatother
-\setlength{\IndexMin}{40ex}
-\setlength{\columnseprule}{.4pt}
-\addtolength{\oddsidemargin}{2cm}
-\addtolength{\textwidth}{-2cm}
\begin{document}
\DocInput{prelim2e.dtx}
- \PrintIndex\PrintChanges
- % Make sure that the index is not printed twice
- % (ltxdoc.cfg might have a second \PrintIndex command)
- \let\PrintChanges\relax
- \let\PrintIndex\relax
\end{document}
%</driver>
+% \fi
%
-% Copyright (C) 1995..2009 by Martin Schr\"oder.
-%
-% This work may be distributed and/or modified under the conditions of the
-% LaTeX Project Public License, either version 1.3 of this license or (at your
-% option) any later version.
-% The latest version of this license is in
-% http://www.latex-project.org/lppl.txt
-% and version 1.3 or later is part of all distributions of LaTeX version
-% 2005/12/01 or later.
-%
-% This work has the LPPL maintenance status `maintained'.
-%
-% The Current Maintainer of this work is Martin Schröder
+% \CheckSum{104}
%
-% This work consists of the files prelim2e.dtx and prelim2e.ins
-% and the derived files prelim2e.sty
+% \CharacterTable
+% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+% Digits \0\1\2\3\4\5\6\7\8\9
+% Exclamation \! Double quote \" Hash (number) \#
+% Dollar \$ Percent \% Ampersand \&
+% Acute accent \' Left paren \( Right paren \)
+% Asterisk \* Plus \+ Comma \,
+% Minus \- Point \. Solidus \/
+% Colon \: Semicolon \; Less than \<
+% Equals \= Greater than \> Question mark \?
+% Commercial at \@ Left bracket \[ Backslash \\
+% Right bracket \] Circumflex \^ Underscore \_
+% Grave accent \` Left brace \{ Vertical bar \|
+% Right brace \} Tilde \~}
%
-% \fi
%
-% \CheckSum{129}
-%
-%% \CharacterTable
-%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
-%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
-%% Digits \0\1\2\3\4\5\6\7\8\9
-%% Exclamation \! Double quote \" Hash (number) \#
-%% Dollar \$ Percent \% Ampersand \&
-%% Acute accent \' Left paren \( Right paren \)
-%% Asterisk \* Plus \+ Comma \,
-%% Minus \- Point \. Solidus \/
-%% Colon \: Semicolon \; Less than \<
-%% Equals \= Greater than \> Question mark \?
-%% Commercial at \@ Left bracket \[ Backslash \\
-%% Right bracket \] Circumflex \^ Underscore \_
-%% Grave accent \` Left brace \{ Vertical bar \|
-%% Right brace \} Tilde \~}
-%%
-%% \iffalse meta-comment
-%% ===================================================================
-%% @LaTeX-package-file{
-%% author = {Martin Schr\"oder},
-%% version = "1.3",
-%% date = "29 May 2009",
-%% filename = "prelim2e.sty",
-%% address = {Martin Schr\"oder
-%% Barmer Stra\"se 14
-%% 44137 Dortmund
-%% Germany},
-%% telephone = "+49-231-1206574",
-%% email = "martin@oneiros.de",
-% codetable = "ISO/ASCII",
-% keywords = "LaTeX2e, preliminary versions, versions",
-% dependences = "everyshi, scrtime",
-% supported = "yes",
-%% docstring = "LaTeX package which allows the marking of
-%% preliminary versions of a document."
-%% }
-%% ===================================================================
-%% \fi
-%
-% \SVN $Rev: 1374 $
-% \SVNdate $Date: 2009-05-30 22:23:36 +0200 (Sa, 30. Mai 2009) $
%
% \renewcommand{\PrelimWords}{^^A
% \package{prelim2e} package --
-% Version \fileversion (\SVNRev) --
+% Version \fileversion --
% Documentation \LaTeX{}ed^^A
% }
%
@@ -134,15 +107,8 @@
%
% \title{\unskip
% The \package{prelim2e} package^^A
-% \thanks{^^A
-% The version number of this file is \fileversion, subversion
-% revision~\#\SVNRev, last revised \protect\SVNDate.}^^A
% }
-% \author{Martin Schr\"oder\\[0.5ex]
-% \normalsize Barmer Stra\ss{}e 14\\
-% \normalsize 44137 Dortmund\\
-% \normalsize Germany\\
-% \normalsize \href{mailto:martin@oneiros.de}{\texttt{martin@oneiros.de}}}
+% \author{Martin Schröder\thanks{maintained by Marei Peischl <marei@peitex.de>}}
% \maketitle
%
% ^^A -----------------------------
@@ -169,14 +135,21 @@
%
% ^^A -----------------------------
%
+% \section{Requirements}
+% Version 2.00 requires the kernel hook management and is no longer
+% useable with LaTeX versions older than 2020/10/01. In case you have
+% any understandable reason, which requires the old implementation,
+% feel free to contact the maintainer.
+%
+% ^^A -----------------------------
+%
% \section{Usage}
% ^^A
% Simply using this package via
-% \mbox{\cs{usepackage\{}\package{prelim2e}\texttt{\}}} produces a
+% \mbox{\cs{usepackage}\texttt{\{}\package{prelim2e}\texttt{\}}} produces a
% text in the form of ``Preliminary version -- \today''.
%
-% \DescribeMacro{\PrelimText}
-% \DescribeMacro{\PrelimWords}
+% \begin{function}{\PrelimText,\PrelimWords}
% The text is produced by the commands \cs{PrelimText} and
% \cs{PrelimWords}, which can be changed via \cs{renewcommand} or by
% using options at the \cs{usepackage} command (see
@@ -184,16 +157,18 @@
%
% The footer for this documentation was produced by changing
% \cs{PrelimWords} to
-% \begin{quote}
%\begin{verbatim}
-%\renewcommand{\PrelimWords}{%
-% \textsf{prelim2e} package --
-% Version \fileversion (\svnInfoRevision) --
-% Documentation \LaTeX{}ed%
-% }
+% \renewcommand*{\PrelimWords}{%
+% \textsf{prelim2e} package --
+% Version \fileversion --
+% Documentation \LaTeX{}ed%
+% }
%\end{verbatim}
-% \end{quote}
+% \end{function}
%
+% \begin{function}{\PrelimTextStyle}
+% The style of the Text can be controlled by \cs{PrelimTextStyle}. This can also be adjusted using \cs{renewcommand*}. The default is set empty, but will use the default font in footnotesie.
+% \end{function}
%
% ^^A -----------------------------
%
@@ -263,9 +238,6 @@
% ^^A
% The package requires the following packages:
% \begin{description}
-% \item[\normalfont\package{everyshi}\cite{package:everyshi}]
-% It is used to implement the setting of the text below the normal
-% pagebody.
% \item[\normalfont\package{scrtime}\cite{package:scrtime}]
% \changes{v1.10}{1996/01/01}{\package{scrtime} instead of
% \package{printtim}}
@@ -288,9 +260,6 @@
%
% ^^A -----------------------------
%
-% \StopEventually{^^A
-%
-%
% ^^A -----------------------------
%
% \section{Acknowledgements}
@@ -329,72 +298,83 @@
% Mats Dahlgren.
% \newblock \package{vrsion} -- a \LaTeX{} Macro for version
% Numbering of Files.
-% \newblock \url{CTAN: tex-archive/macros/latex/contrib/supported/vrsion/vrsion.dtx}.
+% \newblock \CTANlink{tex-archive/macros/latex/contrib/supported/vrsion/vrsion.dtx}.
% \newblock \LaTeXe{} package.
% \bibitem{package:scrtime}
% Markus Kohm.
% \newblock The \package{KOMA}-timedate-bundle.
-% \newblock \url{CTAN: tex-archive/macros/latex/contrib/supported/koma-script/scrtime.dtx}.
-% \newblock \LaTeXe{} package.
-% \bibitem{package:everyshi}
-% Martin Schr\"oder.
-% \newblock The \package{everyshi} package.
-% \newblock \url{CTAN: tex-archive/macros/latex/contrib/supported/ms/everyshi.dtx}.
+% \newblock \CTANlink{tex-archive/macros/latex/contrib/supported/koma-script/scrtime.dtx}.
% \newblock \LaTeXe{} package.
% \bibitem{package:vrsion}
% Robert Tolksdorf.
% \newblock Kennzeichnung von Vorversionen eines Dokuments.
-% \newblock \url{CTAN: tex-archive/macros/latex209/contrib/prelim/}.
+% \newblock \CTANlink{tex-archive/macros/latex209/contrib/prelim/}.
% \newblock \LaTeX2.09 package.
% \end{thebibliography}
%
-% }
-%
+% \StopEventually{\PrintChanges}
%
% ^^A -----------------------------
%
% \section{The implementation}
-%
% \begin{macrocode}
%<*package>
% \end{macrocode}
-%
+% \begin{macrocode}
+%<@@=prelim>
+% \end{macrocode}
+
%
% ^^A -----------------------------
%
% \subsection{Initial Code}
+% The implementation of version 2.00 requires a the kernel's hook management.
+% Therefore we test if it's available and throw an error message if not.
+%
+% \begin{macrocode}
+\providecommand\IfFormatAtLeastTF{\@ifl@t@r\fmtversion}
+\IfFormatAtLeastTF{2020/10/01}{}{%
+ \PackageError{prelim2e}{
+ Format file is too old. Please update your LaTeX distribution.
+ }{
+ prelim2e of version 2.0 requires a format version of at least 2020/10/01
+ }%
+}
+% \end{macrocode}
+
% ^^A
-% \begin{macro}{\if@prelim@draft}
-% \cs{if@prelim@draft} is used to flag the use of the \option{draft}
+% \begin{variable}{\g_prelim_draft_bool}
+% \cs{g_prelim_draft_bool} is used to flag the use of the \option{draft}
% or \option{final} option.
% \begin{macrocode}
-\newif\if@prelim@draft
+\bool_new:N \g_prelim_draft_bool
% \end{macrocode}
-% \end{macro}
+% \end{variable}
%
-% \begin{macro}{\if@prelim@time}
+% \begin{variable}{\g_prelim_time_bool}
% \changes{v1.10}{1996/01/01}{new}
-% \cs{if@prelim@time} is used to flag the use of the \option{time}
+% \cs{g_prelim_time_bool} is used to flag the use of the \option{time}
% option.
% \begin{macrocode}
-\newif\if@prelim@time
+\bool_new:N \g_prelim_time_bool
% \end{macrocode}
-% \end{macro}
+% \end{variable}
%
-% \begin{macro}{\if@prelim@scrtime}
+% \begin{variable}{\g_prelim_scrtime_bool}
% \changes{v1.20}{1997/05/12}{new}
-% \cs{if@prelim@scrtime} is used to flag the use of the \option{scrtime}
+% \cs{g_prelim_scrtime_bool} is used to flag the use of the \option{scrtime}
% option.
% \begin{macrocode}
-\newif\if@prelim@scrtime
+\bool_new:N \g_prelim_scrtime_bool
% \end{macrocode}
-% \end{macro}
+% \end{variable}
+%
%
% \begin{macro}{\PrelimWords}
% \cs{PrelimWords} holds the language-dependend text used in
% \cs{PrelimText}
% \begin{macrocode}
-\newcommand{\PrelimWords}{}
+\newcommand*{\PrelimWords}{}
% \end{macrocode}
% \end{macro}
%
@@ -411,11 +391,11 @@
% The \option{draft} and \option{final} option control the behavior
% of \package{prelim2e}: Only if \option{final} is used in
% \cs{documentclass} or
-% \mbox{\cs{usepackage\{}\package{prelim2e}\texttt{\}}} text is
+% \mbox{\cs{usepackage}\texttt{\{}\package{prelim2e}\texttt{\}}} text is
% produced.
% \begin{macrocode}
-\DeclareOption{draft}{\@prelim@drafttrue}
-\DeclareOption{final}{\@prelim@draftfalse}
+\DeclareOption{draft}{\bool_gset_true:N \g_prelim_draft_bool}
+\DeclareOption{final}{\bool_gset_false:N \g_prelim_draft_bool}
% \end{macrocode}
%
%
@@ -431,17 +411,17 @@
% \changes{v1.3}{2009/05/29}{\option{norsk} option added}
% \begin{macrocode}
\DeclareOption{danish}{%
- \renewcommand{\PrelimWords}{Forel\o{}big version}}
+ \renewcommand{\PrelimWords}{Forel\o{}big~version}}
\DeclareOption{english}{%
- \renewcommand{\PrelimWords}{Preliminary version}}
+ \renewcommand{\PrelimWords}{Preliminary~version}}
\DeclareOption{french}{%
- \renewcommand{\PrelimWords}{Version pr\'eliminaire}}
+ \renewcommand{\PrelimWords}{Version~pr\'eliminaire}}
\DeclareOption{german}{%
- \renewcommand{\PrelimWords}{Vorl\"aufige Version}}
+ \renewcommand{\PrelimWords}{Vorl\"aufige~Version}}
\DeclareOption{italian}{%
- \renewcommand{\PrelimWords}{Versione preliminare}}
+ \renewcommand{\PrelimWords}{Versione~preliminare}}
\DeclareOption{norsk}{%
- \renewcommand{\PrelimWords}{Forel\o{}pig versjon}}
+ \renewcommand{\PrelimWords}{Forel\o{}pig~versjon}}
% \end{macrocode}
%
%
@@ -461,7 +441,10 @@
% package.
% It implies \option{time}.
% \begin{macrocode}
-\DeclareOption{scrtime}{\@prelim@scrtimetrue\@prelim@timetrue}
+\DeclareOption{scrtime}{
+ \bool_gset_true:N \g_prelim_scrtime_bool
+ \bool_gset_true:N \g_prelim_time_bool
+}
% \end{macrocode}
%
%
@@ -475,10 +458,10 @@
% the \option{scrtime} option is selected.
% \begin{macrocode}
\DeclareOption*{%
- \if@prelim@scrtime
+ \bool_if:NT \g_prelim_scrtime_bool {
\PassOptionsToPackage{\CurrentOption}{scrtime}%
- \fi
- }
+ }
+}
% \end{macrocode}
%
%
@@ -498,13 +481,12 @@
% \subsection{Loading packages}
% ^^A
% \changes{v1.20}{1997/05/12}{check \cs{if@prelim@scrtime}}
-% We need the \package{everyshi} package---and \package{scrtime}, if the
-% \option{scrtime} option is specified.
+% \changes{v2.00}{2020/11/24}{remove \package{everyshi}}
+% We need the \package{scrtime} package if the \option{scrtime} option is specified.
% \begin{macrocode}
-\RequirePackage{everyshi}[1995/01/25]
-\if@prelim@scrtime
+\bool_if:NT \g_prelim_scrtime_bool {
\RequirePackage{scrtime}
-\fi
+}
% \end{macrocode}
%
%
@@ -520,19 +502,19 @@
% We first have to reset the style and size, otherwise the settings in
% effect at the point of text where \cs{ouput} is called would be used.
% \begin{macrocode}
-\newcommand{\PrelimText}{%
- \textnormal{%
- \footnotesize
- \PrelimTextStyle
- \PrelimWords{} -- \today
- \if@prelim@time
- \ -- \thistime
- \fi
- }%
+\newcommand{\PrelimText}{
+ \textnormal{
+ \footnotesize
+ \PrelimTextStyle
+ \PrelimWords{}~--~\today~
+ \bool_if:NT \g_prelim_time_bool {
+ \ --~
+ \thistime~
}
+ }
+}
% \end{macrocode}
% \end{macro}
-%
% \begin{macro}{\PrelimTextStyle}
% \cs{PrelimTextStyle} controls the style of the text produced by
% \cs{PrelimText}.
@@ -547,83 +529,69 @@
%
% \subsection{Putting the text below the page}
% ^^A
-% We put the text below the page via \cs{EveryShipout} provided by
-% the \package{everyshi} package.
-% This is done by \cs{@Prelim@EveryShipout}.
+% \changes{v2.00}{2020/11/24}{Use \LaTeX{} kernel method instead of everyshi}
+% We put the text below the page via \cs{AddtoHook{shipout/foreground}}.
+% This is done by \cs{\__prelim_every_shipout:}.
%
-% \begin{macro}{\@Prelim@EveryShipout}
+% Save the shipout origins to macros to adjust the position of the the
+% PrelimText similar to the older versions of prelim2e.
+% \begin{macrocode}
+\tl_const:Nx \c__prelim_horigin_tl {
+ \tl_if_exist:NTF \c__shipout_horigin_tl {
+ \c__shipout_horigin_tl
+ } {
+ 1in
+ }
+}
+
+\tl_const:Nx \c__prelim_vorigin_tl {
+ \tl_if_exist:NTF \c__shipout_vorigin_tl {
+ \c__shipout_vorigin_tl
+ } {
+ 1in
+ }
+}
+
+% \end{macrocode}
+% \begin{function}{\__prelim_every_shipout:}
% \changes{v1.10}{1996/01/01}{\cs{hbox to}$\rightarrow$\cs{hb@xt@}}
% \changes{v1.24}{2004/03/28}{Bugfix: Add missing \%.
% Bug reported by Carsten Heinz (\texttt{cheinz@gmx.de}).}
% \cs{@Prelim@EveryShipout} puts the text produced by \cs{PrelimText}
-% below the page.
-% To do this we modify \cs{box255}: We append a \cs{vbox} with height
-% and depth of 0pt and the width of \cs{box255} which contains a
-% \cs{hbox} with the width of \cs{box255} in which \cs{PrelimText}
-% is centered.
-% \begin{macrocode}
-\newcommand{\@Prelim@EveryShipout}{%
- \bgroup
-% \end{macrocode}
-% First we save the dimensions of \cs{box255}: height, width and depth;
-% and calculate the total height of \cs{box255}.
+% below the page. We do this using expl3-Syntax to directly access the measures of
+% the shipout box.
% \begin{macrocode}
- \dimen\z@=\wd\@cclv
- \dimen\@ne=\ht\@cclv
- \dimen\tw@=\dp\@cclv
- \dimen\thr@@=\dimen1
- \advance\dimen\thr@@ by \dimen\tw@
+\cs_new:Nn \__prelim_every_shipout: {
% \end{macrocode}
-% Then we set \cs{box255}:
-% A \cs{vbox} to the total height of \cs{box255}.
-% In this a \cs{hbox} to the width of \cs{box255} is included, in which
-% \cs{box255} is set.
+% We calculate the text position to match the implementation for versions before 2.0.
% \begin{macrocode}
- \global\setbox\@cclv\vbox to \dimen\thr@@{%
- \hb@xt@\dimen\z@{%
- \box\@cclv%
- \hss
- }%
+\put(\c__shipout_horigin_tl,\dim_eval:n {
+ -\c__shipout_vorigin_tl-\l_shipout_box_ht_plus_dp_dim-\topskip
+ })
+ {
+ \vbox_to_ht:nn {0pt} {
+ \hbox_to_wd:nn {\l_shipout_box_wd_dim} {
+ \let\protect\relax
+ \hfill\PrelimText\hfill
+ }
+ }
+ }
+}
% \end{macrocode}
-% To this we append the text produced by \cs{PrelimText}.
-% It is put in a \cs{vbox} to 0pt in which a \cs{hbox} to the width of
-% \cs{box255} is included, in which \cs{PrelimText} is set.
-% We have to reset \cs{protect} because it is set to \cs{noexpand} by
-% the output routine.
-% \begin{macrocode}
- \vbox to \z@{%
- \hb@xt@\dimen\z@{%
- \let\protect\relax
- \hfill\PrelimText\hfill
- }%
- \vss
- }%
- \vss
- }%
-% \end{macrocode}
-% Finally we set the dimensions of \cs{box255} to the values they had
-% before \cs{@Prelim@EveryShipout}.
-% \begin{macrocode}
- \wd\@cclv=\dimen\z@
- \ht\@cclv=\dimen\@ne
- \dp\@cclv=\dimen\tw@
- \egroup
- }
-% \end{macrocode}
-% \end{macro}
+% \end{function}
%
%
% ^^A -----------------------------
%
% \subsection{Tieing \package{prelim2e} into the system}
% ^^A
-% \cs{@Prelim@EveryShipout} is tied into the system via
-% \cs{EveryShipout}.
+% \cs{@Prelim@EveryShipout} is tied into the system using the
+% kernel's hook management.
% But only if the \option{draft} option is used.
% \begin{macrocode}
-\if@prelim@draft
- \EveryShipout{\@Prelim@EveryShipout}
-\fi
+\bool_if:NT \g_prelim_draft_bool {
+ \AddToHook{shipout/foreground}{\__prelim_every_shipout:}
+}
% \end{macrocode}
%
% \begin{macrocode}
@@ -634,4 +602,4 @@
% ^^A -----------------------------
%
% \Finale
-% ^^A vim:tw=70:ts=2
+% ^^A
diff --git a/macros/latex/contrib/prelim2e/prelim2e.ins b/macros/latex/contrib/prelim2e/prelim2e.ins
new file mode 100644
index 0000000000..915b516420
--- /dev/null
+++ b/macros/latex/contrib/prelim2e/prelim2e.ins
@@ -0,0 +1,59 @@
+\input docstrip.tex
+
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesFile{prelim2e.ins}
+ [2020/11/22 v2.0 Installation script for Prelim2e Package]
+
+\preamble
+Copyright (C) 1995–2009 Martin Schröder, 2020; Marei Peischl (peiTeX) <marei@peitex.de>
+
+This work may be distributed and/or modified under the
+conditions of the LaTeX Project Public License, either version 1.3c
+of this license or (at your option) any later version.
+The latest version of this license is in
+http://www.latex-project.org/lppl.txt
+and version 1.3c or later is part of all distributions of LaTeX
+version 2005/12/01 or later.
+
+This work has the LPPL maintenance status `maintained'.
+
+The Current Maintainer of this work is
+Marei Peischl <marei@peitex.de>.
+
+This work consists of the files prelim2e.dtx and prelim2e.ins
+and the derived file prelim2e.sty.
+
+The development repository can be found at
+ https://github.com/texhackse/prelim2e
+Please use the issue tracker for feedback!
+
+\endpreamble
+\declarepreamble\driverpreamble
+
+This file is part of the Prelim2e package
+-----------------------------------------
+Copyright (C) Martin Schröder, 1994–2001
+ Marei Peischl (peiTeX) <marei@peitex.de>, 2020
+
+\endpreamble
+
+% Don't display progress
+\keepsilent
+\askforoverwritefalse
+\generate{\file{prelim2e.sty}{\from{prelim2e.dtx}{package}}}
+
+\Msg{***********************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the following}
+\Msg{* files into a directory searched by TeX:}
+\Msg{*}
+\Msg{* \space\space prelim2e.sty}
+\Msg{*}
+\Msg{* To produce the documentation run the file prelim2e.drv}
+\Msg{* through LaTeX.}
+\Msg{*}
+\Msg{* Happy TeXing}
+\Msg{***********************************************************}
+\endbatchfile
+%%
+%% End of file `prelim2e.ins'.
diff --git a/macros/latex/contrib/prelim2e/prelim2e.pdf b/macros/latex/contrib/prelim2e/prelim2e.pdf
new file mode 100644
index 0000000000..21776acc80
--- /dev/null
+++ b/macros/latex/contrib/prelim2e/prelim2e.pdf
Binary files differ
diff --git a/macros/latex/contrib/ut-thesis/README b/macros/latex/contrib/ut-thesis/README
index 289425e90f..74457725ac 100644
--- a/macros/latex/contrib/ut-thesis/README
+++ b/macros/latex/contrib/ut-thesis/README
@@ -1,10 +1,12 @@
-LaTeX2e document class and template for graduate theses that conform to
-the guidelines of the School of Graduate Studies at the University of
-Toronto (as of 2008). [http://www.sgs.utoronto.ca/informationfor/+
-students/finup/producingthesis/formatting.htm]
+LaTeX2e document class for graduate theses
+that conform to the formatting requirements of
+the School of Graduate Studies at the University of Toronto,
+as of Fall 2020:
+[https://www.sgs.utoronto.ca/academic-progress/program-completion/formatting]
-Copyright (c) 1998-2013 Francois Pitt <fpitt@cs.utoronto.ca>
-last updated at 16:17 (EDT) on Wed 25 Sep 2013
+Copyright (c) 1998-2013 Francois Pitt <fpitt@cs.utoronto.ca>,
+ 2020-2024 Jesse Knight <jesse.knight@mail.utoronto.ca>
+last updated at 15:30 (EST) on Thu 19 Nov 2020
This work may be distributed and/or modified under the conditions of
the LaTeX Project Public License, either version 1.3c of this license
@@ -17,124 +19,14 @@ version 2005/12/01 or later.
This work has the LPPL maintenance status "maintained".
The Current Maintainer of this work is
-Francois Pitt <fpitt@cs.utoronto.ca>.
+Jesse Knight <jesse.knight@mail.utoronto.ca>.
-This work consists of the following files:
- README: this file
- ut-thesis.cls: class file
- ut-thesis.tex: template
+This work consists of the files:
+- README
+- ut-thesis.dtx
+- ut-thesis.ins
+- ut-thesis.pdf (derived user manual)
+- ut-thesis.cls (derived class file)
-See the comments inside each file for further details.
-
----------------
-Version History
----------------
-
-TODO:
-- [2012/12/06] Redefinition of \thebibliography not compatible with
- packages like natbib. Figure out how to fix this.
-
-v2.1: 2013/09/25 (Francois Pitt)
-- Changed definition of dedication environment to simply format its
- paragraph flush right with no header -- this also helps fix a bug
- where LaTeX complains of a "missing \item" when both dedication and
- acknowledgement sections are used (reported by Bardia Bina).
-
-v2.0: 2012/06/01 (Francois Pitt)
-- Rewritten to use standard packages: `setspace' to handle line spacing
- and `geometry' for page layout. Some options and macros have been
- renamed from v1.8, hence the change of major version number -- this
- version is _not_ fully backward-compatible because of these changes.
-- Renamed `oneandahalfspaced' option to `onehalfspaced' (for consistency
- with `setspace' package).
-- Removed `singlespaced', `oneandahalfspaced', `doublespaced', and
- `spacing' environments -- use environments from `setspace' package
- instead.
-- Renamed `spacednotes' option to `standardspacednotes' and added
- `singlespacednotes' option.
-- Added options `cleardoublepagestyleempty', `cleardoublepagestyleplain'
- and `cleardoublepagestylestandard' to set the default style for
- cleared pages, and new macros `\clearthesisdoublepage' and
- `\clearstandarddoublepage'.
-- Changed default options: now 1 1/2-spaced and LaTeX default font size.
-- Renamed `utthesis' page style to `thesis'.
-- The abstract is no longer put on a right-side page by default.
-- Cleaned up the code and comments throughout.
-
-v1.8: 2000/02/20, 1999/12/10 (Francois Pitt)
-- Minor formatting changes to comments.
-- Fixed circular definition problem with \currenttextsize that caused
- TeX to run out of input stack memory.
-
-v1.7: 1999/06/02, 1999/05/20, 1999/05/13 (Francois Pitt)
-- Minor change to the format of the date printed on every page with the
- `draft' option.
-- Minor cosmetic change to the word "DRAFT" printed on the corners of
- every page with the `draft' option.
-- Made `draft' mode doublespaced by default (it just makes more sense
- for actual drafts; suggested by Eric Joanis).
-- Changed \currenttextsize from a "\newcommand" to a "\let".
-- Added "known bugs" above.
-
-v1.6: 1999/03/06 (Francois Pitt)
-- Minor change: replaced ``\ifx\empty#1\else...\fi'' with
- ``\ifx\empty#1\empty\else...\fi'' (the former works only by accident
- while the latter is logically correct).
-
-v1.5: 1999/02/17 (Francois Pitt)
-- Fixed missing page numbers and headers by removing redefinition of
- \cleardoublepage (reported by Robert Bernecky 1999/02/04 and Nedialko
- Nedialkov 1999/02/12).
-- Added \clearemptydoublepage and \clearplaindoublepage commands.
-- Removed redefinitions of \tableofcontents, \listoftables, and
- \listoffigures because they already call \clearpage or
- \cleardoublepage by default.
-- Removed "\setcounter{tocdepth}{2}" from the page layout section (moved
- to `ut-thesis.tex' where it belongs).
-- Added \ignore command to comment out parts of a file.
-- Put version macros at the top of the file.
-- Changed order of revision comments.
-
-v1.4: 1998/11/05 (Francois Pitt)
-- Fixed `abstract' environment so that it is really put on a separate
- page, and changed "\newpage\endgroup" at the end to
- "\par\endgroup\newpage", which is more logical.
-- Changed `acknowledgements' environment so that it is *not* put on a
- separate page, allowing users to add other text on that page (e.g.,
- `dedication' described next).
-- Added `dedication' environment based on `acknowledgements'
- (suggested by Robert Bernecky 98/11/04).
-- Changed page layout so that it is defined in terms of the physical
- page size instead of being hard-coded for letter paper (8.5" x 11").
-
-v1.3: 1998/11/01 (Francois Pitt)
-- Fixed `thebibliography' so page headers are generated in the same
- style as for the rest of the thesis.
-- Swapped \endgroup and \newpage in definition of `abstract' and
- `acknowledgements' environments, to fix problem with adjusted line
- spacing in `abstract'.
-- Renamed `\currentsize' to `\currenttextsize'.
-- Added \cleardoublepage at the end of preliminary sections, so that
- page 1 of main text is on right-hand side.
-
-v1.2: 1998/10/20 (Francois Pitt)
-- Changed `spacenotes' option to `spacednotes' to have more consistently
- named options.
-- Fixed spacing between main text and footnotes.
-- Fixed `singlespaced' environment, which didn't seem to work at all
- (reported by Nedialko Nedialkov 98/10/12): Actually, created a
- `newspacing' environment, which takes a parameter, and based
- `singlespaced', `oneandahalfspaced', and `doublespaced' environments
- on `newspacing'.
-
-v1.1: 1998/10/01 (Francois Pitt)
-- Fixed bug that caused footnotes to make following tables single-spaced
- (reported by Philip Edmonds 98/09/30).
-- Made spacing of marginal notes and footnotes the same.
-- Added option to control line spacing of notes.
-- Added options to control the size of margins.
-- Changed names of temporary macros used in redefinitions to avoid
- conflicts with existing names.
-
-v1.0: 1998/09/29 (Francois Pitt)
-- Initial version.
+See version history on GitHub:
+[https://github.com/jessexknight/ut-thesis] \ No newline at end of file
diff --git a/macros/latex/contrib/ut-thesis/ut-thesis.cls b/macros/latex/contrib/ut-thesis/ut-thesis.cls
deleted file mode 100644
index f9f83f3738..0000000000
--- a/macros/latex/contrib/ut-thesis/ut-thesis.cls
+++ /dev/null
@@ -1,497 +0,0 @@
-%% ut-thesis.cls -- document class for graduate theses at UofT
-%%
-%% Copyright (c) 1998-2013 Francois Pitt <fpitt@cs.utoronto.ca>
-%% last updated at 16:18 (EDT) on Wed 25 Sep 2013
-%%
-%% This work may be distributed and/or modified under the conditions of
-%% the LaTeX Project Public License, either version 1.3c of this license
-%% or (at your option) any later version.
-%% The latest version of this license is in
-%% http://www.latex-project.org/lppl.txt
-%% and version 1.3c or later is part of all distributions of LaTeX
-%% version 2005/12/01 or later.
-%%
-%% This work has the LPPL maintenance status "maintained".
-%%
-%% The Current Maintainer of this work is
-%% Francois Pitt <fpitt@cs.utoronto.ca>.
-%%
-%% This work consists of the files listed in the accompanying README.
-
-%% USAGE: \documentclass{ut-thesis}
-%% \documentclass[...options...]{ut-thesis}
-%%
-%% The default settings produce a final copy, ready for submission to
-%% the School of Graduate Studies (SGS) at the University of Toronto:
-%% single-sided, "normal" margins (see below), one-and-a-half spaced
-%% with single-spaced notes.
-%%
-%% OPTIONS:
-%%
-%% - Any standard option for the LaTeX2e `report' class, including
-%% `10pt', `11pt', `12pt', `oneside', `twoside', etc.
-%%
-%% - `narrowmargins', `normalmargins', `widemargins', or
-%% `extrawidemargins': Set the size of the margins, as follows:
-%% . `narrow': 1 1/4" on the left, 3/4" on all other sides,
-%% headers & footers 3/8" from body
-%% (these are the minimum values required by SGS);
-%% . `normal': 1 1/4" on the left, 1" on all other sides,
-%% headers & footers 1/2" from body;
-%% . `wide': 1 1/4" on all sides,
-%% headers & footers 5/8" from body;
-%% . `extrawide': 1 1/2" on all sides,
-%% headers & footers 3/4" from body.
-%% If you have more than just a few marginal notes, it is recommended
-%% that you use at least `wide' margins. For other settings, use the
-%% \geometry command (see the template for details).
-%%
-%% - `singlespaced', `oneandahalfspaced', or `doublespaced': Set the
-%% entire document's default line spacing (except for notes, which
-%% are single-spaced by default). For other settings, use the
-%% \setstretch command (see the template for details).
-%%
-%% - `singlespacednotes' or `standardspacednotes': Set line spacing
-%% for footnotes and marginal notes: either single-spaced or the same
-%% as the rest of the document.
-%%
-%% - `cleardoublepagestyleempty', `cleardoublepagestyleplain', or
-%% `cleardoublepagestylestandard': Set the page style for all
-%% "cleared" pages (empty pages inserted in two-sided documents to
-%% put the next page on the right-hand side) to either `empty',
-%% `plain', or whatever style is in effect when the page is cleared
-%% (the default).
-%%
-%% - `draft': Produce a draft copy (double-sided, double-spaced,
-%% normal margins, with the word "DRAFT" printed at all four corners
-%% of every page).
-%%
-%% Note that these options can be used to override the default or draft
-%% document settings, so that it is possible, for example, to create a
-%% double-sided final copy, or a 1 1/2-spaced draft copy with wide
-%% margins, etc. You may use standard LaTeX packages to tailor the
-%% layout and formatting in other ways.
-%% Also note that when producing double-sided documents while _not_ in
-%% draft mode, new chapters and preliminary sections will always start
-%% on a right-hand page under the default settings (inserting a blank
-%% page if needed). This can be overridden by using the `openany' or
-%% `openright' options. To achieve this effect for individual sections
-%% or chapters, use \cleardoublepage -- or one of the more specific
-%% \clearemptydoublepage, \clearplaindoublepage, \clearthesisdoublepage,
-%% or \clearstandarddoublepage (see below for details).
-%%
-%% NEW ENVIRONMENTS and COMMANDS:
-%%
-%% * \degree{...}: (preamble only; REQUIRED)
-%% Specify the name of the degree (e.g., "Doctor of Philosophy").
-%%
-%% * \department{...}: (preamble only; REQUIRED)
-%% Specify the name of the graduate department.
-%%
-%% * \gradyear{...}: (preamble only; REQUIRED)
-%% Specify the year of graduation (defaults to current year).
-%%
-%% * \author{...}: (preamble only; REQUIRED)
-%% Specify the name of the author.
-%%
-%% * \title{...}: (preamble only; REQUIRED)
-%% Specify the title of the thesis.
-%%
-%% - \begin{preliminary}...\end{preliminary}:
-%% Delimit head matter (title page, abstract, table of contents,
-%% lists of tables and figures, etc.): set the page style and
-%% numbering for the preliminary sections and reset them for the main
-%% document.
-%%
-%% - \maketitle:
-%% Generate the title page from the information supplied in the
-%% preamble.
-%%
-%% - \begin{abstract}...\end{abstract}:
-%% Generate the abstract page, double-sided. (According to SGS
-%% guidelines, this must immediately follow the title page.)
-%%
-%% - \begin{dedication}...\end{dedication}:
-%% Generate a dedication section, if needed (just a paragraph
-%% formatted flush right).
-%%
-%% - \begin{acknowledgements}...\end{acknowledgements}:
-%% Generate an acknowledgements section, if needed.
-%%
-%% Note that neither the `dedication' nor the `acknowledgements' are
-%% put on a separate page by default (use \newpage to do this
-%% explicitly). Also note that the table of contents, list of
-%% tables, and list of figures can be generated using the usual LaTeX
-%% commands.
-%%
-%% - \begin{longquote}...\end{longquote}:
-%% Single-spaced version of the `quote' environment.
-%%
-%% - \begin{longquotation}...\end{longquotation}:
-%% Single-spaced version of the `quotation' environment.
-%%
-%% - \clearemptydoublepage, \clearplaindoublepage,
-%% \clearthesisdoublepage:
-%% Same as \cleardoublepage except that cleared pages have style
-%% `empty', `plain', or `thesis' respectively.
-%%
-%% - \clearstandarddoublepage:
-%% Same as the original \cleardoublepage (cleared pages use the style
-%% currently in effect) -- used to override the effects of options
-%% `cleardoublepagestyleempty' or `cleardoublepagestyleplain'.
-%%
-%% The companion file `ut-thesis.tex' contains a skeleton illustrating
-%% the use of this class.
-
-
-%%%%%%%%%%%% IDENTIFICATION %%%%%%%%%%%%
-
-\newcommand*{\utthesisversion}{v2.0} % current version number
-\newcommand*{\utthesisupdated}{2012/06/01} % date of last change(s)
-
-\NeedsTeXFormat{LaTeX2e}[1995/12/01] % robust macros with * form
-\ProvidesClass{ut-thesis}[\utthesisupdated\space\utthesisversion\space
- graduate theses at the University of Toronto]
-
-
-%%%%%%%%%%%% INITIAL CODE %%%%%%%%%%%%
-
-%% Switch for testing draft mode (toggled by `draft' option).
-\newif\if@draft
-\@draftfalse
-
-%% Switch for testing current page style.
-\newif\if@thesispagestyle
-\@thesispagestyletrue
-
-%% Save original definitions of footnote and marginal note macros and
-%% lengths, to be able to reset them below as needed (when changing
-%% between single-spaced and standard-spaced notes).
-\let\@thesis@footnotetext\@footnotetext
-\let\@thesis@mpfootnotetext\@mpfootnotetext
-\let\@thesis@marginparreset\@marginparreset
-\newlength{\@thesisfootnotesep}
-\newlength{\@thesismarginparpush}
-\AtBeginDocument
- {\setlength\@thesisfootnotesep{\footnotesep}
- \setlength\@thesismarginparpush{\marginparpush}}
-
-%% Save original definition of \cleardoublepage.
-\let\clearstandarddoublepage\cleardoublepage
-
-%% The \singlespacing macro from `setspace' includes some vertical space
-%% (to make it easier to change line spacing within the document).
-%% Unfortunately, this has undesirable side-effects within macros, so we
-%% define our own replacement here for use within the class.
-\newcommand*{\singlespacingnoskip}{\setstretch{\setspace@singlespace}}
-
-
-%%%%%%%%%%%% OPTION DECLARATION %%%%%%%%%%%%
-
-%% `draft' option: change default document settings.
-\DeclareOption{draft}{\@drafttrue
- \newcommand*{\tlDRAFT}%
- {\raisebox{ 3ex}[0pt][0pt]{\llap{\sffamily\scriptsize DRAFT\ \ }}}
- \newcommand*{\trDRAFT}%
- {\raisebox{ 3ex}[0pt][0pt]{\rlap{\sffamily\scriptsize \ \ DRAFT}}}
- \newcommand*{\blDRAFT}%
- {\raisebox{-3ex}[0pt][0pt]{\llap{\sffamily\scriptsize DRAFT\ \ }}}
- \newcommand*{\brDRAFT}%
- {\raisebox{-3ex}[0pt][0pt]{\rlap{\sffamily\scriptsize \ \ DRAFT}}}
- \ExecuteOptions{doublespaced}
- \PassOptionsToClass{draft,twoside,openany}{report}}
-
-%% Margin options.
-\DeclareOption{narrowmargins}{\AtEndOfClass % 1 1/4" left, 3/4" others
- {\geometry{margin=.75in,left=1.25in,headsep=.375in-\headheight,
- footskip=.375in,marginparwidth=.5in,marginparsep=.125in}}}
-\DeclareOption{normalmargins}{\AtEndOfClass % 1 1/4" left, 1" others
- {\geometry{margin=1in,left=1.25in,headsep=.5in-\headheight,
- footskip=.5in,marginparwidth=.75in,marginparsep=.125in}}}
-\DeclareOption{widemargins}{\AtEndOfClass % 1 1/4" all around
- {\geometry{margin=1.25in,headsep=.625in-\headheight,
- footskip=.625in,marginparwidth=.75in,marginparsep=.25in}}}
-\DeclareOption{extrawidemargins}{\AtEndOfClass % 1 1/2" all around
- {\geometry{margin=1.5in,headsep=.75in-\headheight,
- footskip=.75in,marginparwidth=1in,marginparsep=.25in}}}
-
-%% Line Spacing options.
-\DeclareOption{singlespaced}{\AtEndOfClass{\singlespacingnoskip}}
-\DeclareOption{onehalfspaced}{\AtEndOfClass{\onehalfspacing}}
-\DeclareOption{doublespaced}{\AtEndOfClass{\doublespacing}}
-
-%% Line spacing for notes.
-\DeclareOption{singlespacednotes}{\AtBeginDocument
- {\setlength\footnotesep{\@thesisfootnotesep}
- \setlength\marginparpush{\@thesismarginparpush}
- \renewcommand{\@footnotetext}[1]%
- {\@thesis@footnotetext{#1\singlespacingnoskip}}
- \renewcommand{\@mpfootnotetext}[1]%
- {\@thesis@mpfootnotetext{#1\singlespacingnoskip}}
- \renewcommand*{\@marginparreset}%
- {\@thesis@marginparreset\singlespacingnoskip}}}
-\DeclareOption{standardspacednotes}{\AtBeginDocument
- {\setlength\footnotesep{\baselineskip-\@thesisfootnotesep}
- \setlength\marginparpush{\baselineskip-\@thesismarginparpush}
- \let\@footnotetext\@thesis@footnotetext
- \let\@mpfootnotetext\@thesis@mpfootnotetext
- \let\@marginparreset\@thesis@marginparreset}}
-
-%% Page styles for cleared pages.
-\DeclareOption{cleardoublepagestyleempty}
- {\AtEndOfClass{\let\cleardoublepage\clearemptydoublepage}}
-\DeclareOption{cleardoublepagestyleplain}
- {\AtEndOfClass{\let\cleardoublepage\clearplaindoublepage}}
-\DeclareOption{cleardoublepagestylestandard}
- {\AtEndOfClass{\let\cleardoublepage\clearstandarddoublepage}}
-
-%% All other options are passed to the base class directly.
-\DeclareOption*{\PassOptionsToClass{\CurrentOption}{report}}
-
-
-%%%%%%%%%%%% OPTION EXECUTION %%%%%%%%%%%%
-
-%% Default settings: standard options followed by ut-thesis options.
-\ExecuteOptions{letterpaper,oneside,openright}
-\ExecuteOptions{normalmargins,onehalfspaced,singlespacednotes}
-
-%% Process options.
-\ProcessOptions
-
-
-%%%%%%%%%%%% PACKAGE LOADING %%%%%%%%%%%%
-
-%% Load base class using current setting for basic options.
-\LoadClass{report}
-
-%% To set/change page layout.
-\RequirePackage{calc}
-\RequirePackage{geometry}
-
-%% To set/change line spacing.
-\RequirePackage{setspace}
-
-
-%%%%%%%%%%%% MAIN CODE %%%%%%%%%%%%
-
-%%%%%% Parameters
-
-%% The following five commands set the respective field values so we can
-%% generate the title page and abstract page automatically.
-\newcommand*{\degree}[1]%
- {\ifx\empty#1\empty\else\gdef\@degree{#1}\fi}
-\newcommand*{\department}[1]%
- {\ifx\empty#1\empty\else\gdef\@department{#1}\fi}
-\newcommand*{\gradyear}[1]%
- {\ifx\empty#1\empty\else\gdef\@gradyear{#1}\fi}
-\renewcommand*{\author}[1]%
- {\ifx\empty#1\empty\else\gdef\@author{#1}\fi}
-\renewcommand*{\title}[1]%
- {\ifx\empty#1\empty\else\gdef\@title{#1}\fi}
-
-%% Default values for the required fields.
-\degree{\emph{(degree)}}
-\department{\emph{(department)}}
-\gradyear{\emph{(year of graduation)}}
-\author{\emph{(author)}}
-\title{\emph{(title)}}
-
-%%%%%% New formatting environments and commands.
-
-%% \begin{preliminary} sets the pagestyle and page numbering for the
-%% preliminary sections; \end{preliminary} resets the page numbering.
-%% The default page style is used outside of the preliminary block.
-\newenvironment*{preliminary}%
- {\pagestyle{plain}\pagenumbering{roman}}%
- {\cleardoublepage\pagenumbering{arabic}}
-
-%% Change \maketitle to follow SGS guidelines.
-\renewcommand*{\maketitle}%
- {\begin{titlepage}
- \large\singlespacingnoskip
- \begin{center}
- \mbox{}
- \vfill
- \textsc{\@title}\\
- \vfill
- by \\
- \vfill
- {\@author}\\
- \vfill
- \vfill
- A thesis submitted in conformity with the requirements\\
- for the degree of {\@degree}\\
- Graduate Department of {\@department}\\
- University of Toronto\\
- \vfill
- {\copyright} Copyright {\@gradyear} by {\@author}\\
- \vspace{.01\textheight}
- \mbox{}
- \end{center}
- \setcounter{page}{1}
- \end{titlepage}
- \setcounter{page}{2}}
-
-%% Change \begin{abstract}...\end{abstract} to follow SGS guidelines.
-\renewenvironment*{abstract}%
- {\begin{center}
- \section*{Abstract}
- \end{center}
- \begin{center}
- {\@title}\\[2ex]
- {\@author}\\
- {\@degree}\\
- Graduate Department of {\@department}\\
- University of Toronto\\
- {\@gradyear}\\
- \end{center}
- \begingroup
- %% Adjust line spacing: if it was less than 2, increase it to 2;
- %% otherwise, leave it as is.
- \ifdim \baselinestretch pt < 1.6pt \doublespacing\fi}%
- {\par\endgroup\newpage}
-
-%% \begin{dedication}...\end{dedication} formats a dedication section
-%% (*not* on a separate page -- just a paragraph formatted flush right).
-\newenvironment*{dedication}%
- {\begin{flushright}}%
- {\end{flushright}}
-
-%% \begin{acknowledgements}...\end{acknowledgements} formats an
-%% acknowledgements section (*not* on a separate page).
-\newenvironment*{acknowledgements}%
- {\begin{center}
- \section*{Acknowledgements}
- \end{center}
- \begingroup\noindent}%
- {\par\endgroup}
-
-%% Redefine `thebibliography' environment so that it generates headers
-%% in the same style as the rest of the document.
-\let\@thesisthebibliography\thebibliography
-\renewcommand*{\thebibliography}[1]{\@thesisthebibliography{#1}
- \if@thesispagestyle\@mkboth{\textsc{\bibname}}{\textsc{\bibname}}\fi}
-
-%% Variations of \cleardoublepage that explicitly set the pagestyle of
-%% any inserted blank page.
-\newcommand*{\clearemptydoublepage}%
- {{\pagestyle{empty}\clearstandarddoublepage}}
-\newcommand*{\clearplaindoublepage}%
- {{\pagestyle{plain}\clearstandarddoublepage}}
-\newcommand*{\clearthesisdoublepage}%
- {{\pagestyle{thesis}\clearstandarddoublepage}}
-
-%% Single-spaced quotes and quotations.
-\newenvironment*{longquote}%
- {\begin{quote}\singlespacingnoskip}{\end{quote}}
-\newenvironment*{longquotation}%
- {\begin{quotation}\singlespacingnoskip}{\end{quotation}}
-
-%%%%%% Page Styles
-
-%% Redefine all four standard page styles (empty, plain, headings,
-%% myheadings), based on the definitions in `report', so that they
-%% conform to the SGS guidelines (and include draft information if
-%% applicable). Then, define a new pagestyle `thesis'.
-
-%% TODO: Get rid of copy-pasted definitions for pagestyles?
-
-%% Pagestyle `empty'.
-\renewcommand*{\ps@empty}%
- {\@thesispagestylefalse
- \let\@mkboth\@gobbletwo
- \def\@oddfoot{\if@draft\blDRAFT\hfil
- {\slshape\small\today}\hfil\brDRAFT\fi}%
- \let\@evenfoot\@oddfoot
- \def\@oddhead{\if@draft\tlDRAFT\hfil
- {\slshape\small\today}\hfil\trDRAFT\fi}%
- \let\@evenhead\@oddhead}
-
-%% Pagestyle `plain'.
-\renewcommand*{\ps@plain}%
- {\@thesispagestylefalse
- \let\@mkboth\@gobbletwo
- \def\@oddfoot{\if@draft\blDRAFT\fi\hfil
- \thepage\hfil\if@draft\brDRAFT\fi}%
- \let\@evenfoot\@oddfoot
- \def\@oddhead{\if@draft\tlDRAFT\hfil
- {\slshape\small\today}\hfil\trDRAFT\fi}%
- \let\@evenhead\@oddhead}
-
-%% Pagestyle `headings'.
-\if@twoside % two-sided printing
-\renewcommand*{\ps@headings}%
- {\@thesispagestylefalse
- \let\@mkboth\markboth
- \def\@oddfoot{\if@draft\blDRAFT\hfil
- {\slshape\small\today}\hfil\brDRAFT\fi}%
- \let\@evenfoot\@oddfoot
- \def\@oddhead{\if@draft\tlDRAFT\fi{\slshape\rightmark}\hfil
- \thepage\if@draft\trDRAFT\fi}%
- \def\@evenhead{\if@draft\tlDRAFT\fi\thepage\hfil
- {\slshape\leftmark}\if@draft\trDRAFT\fi}%
- \def\chaptermark##1{\markboth
- {\MakeUppercase{\ifnum \c@secnumdepth >\m@ne
- \@chapapp\ \thechapter. \ \fi ##1}}{}}%
- \def\sectionmark##1{\markright
- {\MakeUppercase{\ifnum \c@secnumdepth >\z@
- \thesection. \ \fi ##1}}}}
-\else % one-sided printing
-\renewcommand*{\ps@headings}%
- {\@thesispagestylefalse
- \let\@mkboth\markboth
- \def\@oddfoot{\if@draft\blDRAFT\hfil
- {\slshape\small\today}\hfil\brDRAFT\fi}%
- \def\@oddhead{\if@draft\tlDRAFT\fi{\slshape\rightmark}\hfil
- \thepage\if@draft\trDRAFT\fi}%
- \def\chaptermark##1{\markright
- {\MakeUppercase{\ifnum \c@secnumdepth >\m@ne
- \@chapapp\ \thechapter. \ \fi ##1}}}}
-\fi%@twoside
-
-%% Pagestyle `myheadings'.
-\renewcommand*{\ps@myheadings}%
- {\@thesispagestylefalse
- \let\@mkboth\@gobbletwo
- \def\@oddfoot{\if@draft\blDRAFT\hfil
- {\slshape\small\today}\hfil\brDRAFT\fi}%
- \let\@evenfoot\@oddfoot
- \def\@oddhead{\if@draft\tlDRAFT\fi{\slshape\rightmark}\hfil
- \thepage\if@draft\trDRAFT\fi}%
- \def\@evenhead{\if@draft\tlDRAFT\fi\thepage\hfil
- {\slshape\leftmark}\if@draft\trDRAFT\fi}%
- \let\chaptermark\@gobble\let\sectionmark\@gobble}
-
-%% Pagestyle `thesis' (based on `headings').
-\if@twoside % two-sided printing
-\newcommand*{\ps@thesis}%
- {\@thesispagestyletrue
- \let\@mkboth\markboth
- \def\@oddfoot{\if@draft\blDRAFT\hfil
- {\slshape\small\today}\hfil\brDRAFT\fi}%
- \let\@evenfoot\@oddfoot
- \def\@oddhead{\if@draft\tlDRAFT\fi{\slshape\rightmark}\hfil
- \thepage\if@draft\trDRAFT\fi}%
- \def\@evenhead{\if@draft\tlDRAFT\fi\thepage\hfil
- {\slshape\leftmark}\if@draft\trDRAFT\fi}%
- \def\chaptermark##1{\markboth
- {\textsc{\ifnum \c@secnumdepth >\m@ne
- \@chapapp\ \thechapter. \ \fi ##1}}{}}%
- \def\sectionmark##1{\markright
- {\textsc{\ifnum \c@secnumdepth >\z@
- \thesection. \ \fi ##1}}}}
-\else % one-sided printing
-\newcommand*{\ps@thesis}%
- {\@thesispagestyletrue
- \let\@mkboth\markboth
- \def\@oddfoot{\if@draft\blDRAFT\hfil
- {\slshape\small\today}\hfil\brDRAFT\fi}%
- \def\@oddhead{\if@draft\tlDRAFT\fi{\slshape\rightmark}\hfil
- \thepage\if@draft\trDRAFT\fi}%
- \def\chaptermark##1{\markright
- {\textsc{\ifnum \c@secnumdepth >\m@ne
- \@chapapp\ \thechapter. \ \fi ##1}}}}
-\fi%@twoside
-
-%% Default page style.
-\pagestyle{thesis}
diff --git a/macros/latex/contrib/ut-thesis/ut-thesis.dtx b/macros/latex/contrib/ut-thesis/ut-thesis.dtx
new file mode 100644
index 0000000000..f1180b7056
--- /dev/null
+++ b/macros/latex/contrib/ut-thesis/ut-thesis.dtx
@@ -0,0 +1,607 @@
+% \iffalse
+%<*driver>
+\ProvidesFile{ut-thesis.dtx}
+%</driver>
+%<class>\NeedsTeXFormat{LaTeX2e}[1999/12/01]
+%<class>\ProvidesClass{ut-thesis}
+%<*class>
+[2020/11/19 v3.0.0a University of Toronto thesis class]
+%</class>
+%
+%<*driver>
+\documentclass[10pt]{ltxdoc}
+\usepackage[osf]{mathpazo}
+\usepackage[toc]{multitoc}
+\renewcommand*{\multicolumntoc}{2}
+\usepackage[margin=3cm,inner=5cm]{geometry}
+\usepackage{xcolor}
+\definecolor{code} {HTML}{990033}
+\definecolor{link} {HTML}{000066}
+\let\ottfamily\ttfamily
+\renewcommand{\ttfamily}{\color{code}\ottfamily}
+\renewcommand{\MacroFont}{\ttfamily\color{code}}
+\usepackage[colorlinks,linkcolor=link]{hyperref}
+\setlength{\skip\footins}{4ex}
+\setlength{\parindent}{0pt}
+\setlength{\parskip}{6pt}
+\newcommand{\smacro}[2][0]{%
+ \begin{macro}{#2}\end{macro}%
+ \vspace{\dimexpr #1\baselineskip-3\baselineskip}}
+\begin{document}
+ \DocInput{ut-thesis.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \GetFileInfo{ut-thesis.dtx}
+%
+% \title{The \texttt{ut-thesis} class
+% \thanks{\fileversion~[\filedate] CTAN repository:
+% \href{https://ctan.org/pkg/ut-thesis}
+% {\texttt{https://ctan.org/pkg/ut-thesis}}}}
+% \author{
+% Francois Pitt,
+% Jesse Knight
+% \thanks{maintainer, contact:
+% \href{mailto:jesse.knight@mail.utoronto.ca}
+% {\texttt{jesse.knight@mail.utoronto.ca}}}
+% }
+%
+% \maketitle
+%
+% \begin{abstract}\noindent
+% The |ut-thesis| document class implements the formatting requirements of
+% the University of Toronto School of Graduate Studies (SGS),
+% as of Fall 2020.
+% \end{abstract}
+%
+% {\footnotesize\setlength{\parskip}{3pt}\tableofcontents}
+% \clearpage
+%
+% \section{Installation}\label{inst}
+%
+% To use the |ut-thesis| class,
+% you must first make the file |ut-thesis.cls| visible to your current \LaTeX\ distribution.
+% There are two ways to do this:
+% \begin{itemize}
+% \item \textbf{local file}: Place the file |ut-thesis.cls| in your project directory.
+% This is usually easiest, and works if you don't have write access
+% in the \LaTeX\ distribution, such as if you use Overleaf.
+% \item \textbf{installing}: Installation steps will depend on your \LaTeX\ distribution.
+% Some helpful instructions can be found
+% \href{https://en.wikibooks.org/wiki/LaTeX/Installing_Extra_Packages}{here}.
+% \end{itemize}
+%
+% \section{Usage}\label{use}
+%
+% |\documentclass{ut-thesis}|\\
+% |\documentclass[ <options> ]{ut-thesis}|
+%
+% The default options produce a final copy, ready for submission to
+% the University of Toronto School of Graduate Studies (SGS).
+%
+% \subsection{Options}\label{use:opt}
+%
+% The default class options are denoted like |option*|.
+%
+% \subsubsection{Paper Size}\label{use:opt:paper}
+%
+% The standard page sizes are supported, including:
+% |[letterpaper*]|, and |[a4paper]|.
+%
+% \subsubsection{Font Size}\label{use:opt:fontsize}
+%
+% \smacro[ 1]{[10pt*]}
+% \smacro[ 1]{[11pt]}
+% \smacro[-2]{[12pt]}
+% \begin{macro}{]}
+% The three standard font sizes are supported.
+% SGS requires at least 10\,pt font for the text,
+% but captions, footnotes, etc.\ can be smaller.
+% \end{macro}
+%
+% \subsubsection{Line Spacing}\label{use:opt:spacing}
+%
+% \smacro[ 1]{[singlespacing]}
+% \smacro[ 1]{[onehalfspacing*]}
+% \smacro[-2]{[doublespacing]}
+% \begin{macro}{]}
+% Three options are available for line spacing.
+% Note that |[singlespacing]| does not conform to the SGS guidelines,
+% but we provide it in case you ever prefer it while writing.
+% \end{macro}
+%
+% \subsubsection{Margins}\label{use:opt:margins}
+%
+% \paragraph{Sides:}
+% Three variants of margins are defined,
+% reflecting preferences for printing and binding,
+% the first two being the same as in the |book| class:
+%
+% \begin{macro}{[oneside]}
+% All pages behave as if they open to the right (wider left margin).
+% \end{macro}
+%
+% \begin{macro}{[twoside*]}
+% Most pages will alternate opening to the right and left;
+% however, the commands: |\maketitle|, |\begin{abstract}| and |\mainmatter|,
+% which create new pages, will always open to the right,
+% sometimes requiring a blank page before to do so.
+% \end{macro}
+%
+% \begin{macro}{[equalmargins]}
+% The left and right margins are equal (averaged);
+% all pages behave as if they open to the right.
+% \end{macro}
+%
+% \paragraph{Opening:}
+% Only if |[twoside]| is used, two additional options from the |book| class
+% control how other new pages will open, including new pages created by:
+% |\listoftables|, |\listoffigures|, and |\chapter{}|.
+%
+% \begin{macro}{[openright*]}
+% These pages will always open to the right (like |\maketitle|, etc.).
+% \end{macro}
+%
+% \begin{macro}{[openany]}
+% These pages can open to the left or right.
+% \end{macro}
+%
+% \paragraph{Widths:}
+% Four widths of margins are defined based on
+% the inner (left) and outer (right/top/bottom) dimensions:
+%
+% \begin{macro}{[narrowmargins]}
+% Inner: 1.25 inch; outer: 0.75 inch
+% (minimum SGS requirements)
+% \end{macro}
+% \begin{macro}{[normalmargins*]}
+% Inner: 1.50 inch; outer: 1.00 inch
+% \end{macro}
+% \begin{macro}{[widemargins]}
+% Inner: 1.75 inch; outer: 1.25 inch
+% \end{macro}
+% \begin{macro}{[extrawidemargins]}
+% Inner: 2.00 inch; outer: 1.50 inch
+% \end{macro}
+%
+% \subsubsection{Draft}\label{use:opt:draft}
+%
+% \begin{macro}{[draft]}
+% Adds ``DRAFT'' to all 4 corners, plus the date centered below the footer.
+% The default |draft| behaviour for the |book| class is also supported.
+% \end{macro}
+%
+% \subsection{Commands}\label{use:cmd}
+%
+% \subsubsection{Author Information}\label{use:cmd:author}
+%
+% The following 5 commands should be used in the preamble
+% to define the content of the titlepage (|\maketitle|) and abstract page (|abstract| environment).
+%
+% \begin{macro}{\author}
+% Your full name.
+% \end{macro}
+%
+% \begin{macro}{\title}
+% The title of your thesis.
+% \end{macro}
+%
+% \begin{macro}{\degree}
+% The title of your degree (spelled out, like ``Doctor of Philosophy'' not ``PhD'').
+% \end{macro}
+%
+% \begin{macro}{\department}
+% The name of your department.
+% \end{macro}
+%
+% \begin{macro}{\gradyear}
+% The year of your degree completion.
+% \end{macro}
+%
+% If undefined, template values are used like ``(author)''.
+%
+% \subsubsection{Document Parts}\label{use:cmd:parts}
+%
+% From the |book| class, four commands can be used to divide the document into major parts.
+% These should be used in the order they appear here, as needed.
+% The first two commands are necessary for the required SGS page numbering style.
+%
+% \begin{macro}{\frontmatter}
+% Turns off chapter numbers, uses roman numerals for page numbers.\\
+% Suggested use: immediately after |\begin{document}|.
+% \end{macro}
+%
+% \begin{macro}{\mainmatter}
+% Turns on chapter numbers, uses arabic numerals for page numbers.\\
+% Suggested use: immediately before the first main |\chapter{}| command.
+% \end{macro}
+%
+% \begin{macro}{\appendix}
+% Uses letters for chapter numbers, no change to page numbers.\\
+% Suggested use: immediately before the first appendix |\chapter{}| command.
+% \end{macro}
+%
+% \begin{macro}{\backmatter}
+% Turns off chapter numbers, no change to page numbers.\\
+% Suggested use: immediately before |\printbibliography| or |\bibliography{}|.
+% \end{macro}
+%
+% \subsubsection{Front Matter}\label{use:cmd:front}
+%
+% From the |book| class, the following commands are available to generate the frontmatter.
+% These should be used in the order they appear here, as needed.
+%
+% \begin{macro}{\maketitle}
+% Creates the title page according to SGS requirements,
+% and adds a blank page following if using |[twoside]|.
+% \end{macro}
+%
+% (The abstract page should appear here;
+% see \S~\ref{use:env:abs}).
+%
+% (The dedication and acknowledgements should appear here, as needed;
+% see \S~\ref{use:env:ded-ackn}).
+%
+% \begin{macro}{\tableofcontents}
+% Prints the table of contents, starting on a new page.
+% \end{macro}
+%
+% \begin{macro}{\tableoftables}
+% Prints the table of tables, starting on a new page.
+% \end{macro}
+%
+% \begin{macro}{\tableoffigures}
+% Prints a table of figures, starting on a new page.
+% \end{macro}
+%
+% \subsection{Environments}\label{use:env}
+%
+% \subsubsection{Abstract}\label{use:env:abs}
+%
+% \begin{macro}{abstract}
+% Creates the abstract page according to SGS requirements,
+% and adds a blank page if using |[twoside]|.
+% The abstract content should be added within the environment,
+% and should be no more than
+% 350 words for a PhD thesis or
+% 150 words for a Master's thesis.
+% We do not provide tools for counting words.
+% \end{macro}
+%
+% \subsubsection{Dedication \& Acknowledgments}\label{use:env:ded-ackn}
+%
+% \begin{macro}{dedication}
+% The |dedication| environment formats text flush right and 2/3 down a new page.
+% Not necessary for SGS requirements, so you're welcome to redefine this environment.
+% \end{macro}
+%
+% \begin{macro}{acknowledgements}
+% The |acknowledgments| environment creates a centered heading using |\section*{}|,
+% and a new page after the text.
+% Not necessary for SGS requirements, so you're welcome to redefine this environment.
+% \end{macro}
+%
+% \subsubsection{Base Environments}\label{use:env:misc}
+%
+% As in the |book| class, the base environments
+% like |figure|, |table|, and |equation| are sub-numbered
+% within the current chapter like ``(2.1)'' for Equation~1 in Chapter~2.
+% The behaviour is equivalent to: |\counterwithin{equation}{section}|,
+% and can be undone with: |\counterwithout{equation}{section}|.
+%
+% For sub-figures, we recommend the |subcaption| package.
+%
+% The |quote| and |quotation| environments from the |book| class are also available.
+%
+% \clearpage
+%
+% \section{Implementation}\label{imp}
+%
+% \subsection{Option Declaration}\label{imp:opt}
+%
+% \subsubsection{Draft Mode}\label{imp:opt:draft}
+% Specifying |draft| adds ``DRAFT'' to all 4 corners,
+% plus the date centered below the footer.
+% The default |draft| behaviour for the |book| class is also supported.
+% \begin{macrocode}
+\newcommand{\draftmarkstyle}{\scriptsize\sffamily}
+\DeclareOption{draft}{%
+ \PassOptionsToClass{\CurrentOption}{book}
+ \AtEndOfClass{
+ \AtBeginShipout{\AtBeginShipoutUpperLeft{%
+ \draftmarkstyle
+ \put(+0.125in, -0.125in-\f@size pt ){\rlap{DRAFT}}
+ \put(-0.125in+\paperwidth,-0.125in-\f@size pt ){\llap{DRAFT}}
+ \put(+0.125in, +0.125in-\paperheight){\rlap{DRAFT}}
+ \put(-0.125in+\paperwidth,+0.125in-\paperheight){\llap{DRAFT}}
+ \put(+0.5\paperwidth,+0.125in-\paperheight)%
+ {\makebox[0in][c]{\today}}
+}}}}
+% \end{macrocode}
+%
+% \subsubsection{Margins}\label{imp:opt:margins}
+% First, we define three lengths to help us compute the margins:
+% |\margin@v| is the top and bottom margins;
+% |\margin@xhi| is the inner margin offset;
+% |\margin@xho| is the outer margin offset.
+% \begin{macrocode}
+\newlength{\margin@v}
+\newlength{\margin@xhi}\setlength{\margin@xhi}{0.5in}
+\newlength{\margin@xho}\setlength{\margin@xho}{0.0in}
+% \end{macrocode}
+%
+% The options are based off |\margin@v|:
+% \begin{macrocode}
+\DeclareOption{narrowmargins} {\setlength{\margin@v}{0.75in}}
+\DeclareOption{normalmargins} {\setlength{\margin@v}{1.00in}}
+\DeclareOption{widemargins} {\setlength{\margin@v}{1.25in}}
+\DeclareOption{extrawidemargins}{\setlength{\margin@v}{1.50in}}
+% \end{macrocode}
+%
+% For digital copies, |equalmargins| may be preferred.
+% However, to keep the |\textwidth| consistent
+% for any of the above margin options with and without |equalmargins|,
+% we simply average the inner and outer offsets:
+% \begin{macrocode}
+\DeclareOption{equalmargins}%
+ {\setlength{\margin@xho}{0.5\margin@xhi}
+ \setlength{\margin@xhi}{0.5\margin@xhi}}
+% \end{macrocode}
+%
+% Finally, we actually compute the margins using the above three lengths,
+% and adjust the placement of the header, footer, and margin notes.
+% \begin{macrocode}
+\AtEndOfClass{
+ \setlength{\leftmargin}{\dimexpr\margin@v+\margin@xhi}
+ \setlength{\rightmargin}{\dimexpr\margin@v+\margin@xho}
+ \geometry{
+ top = \margin@v,
+ bottom = \margin@v,
+ inner = \leftmargin,
+ outer = \rightmargin,
+ headsep = \dimexpr 0.5\margin@v - \headheight,
+ footskip = \dimexpr 0.5\margin@v,
+ marginparwidth = \dimexpr \rightmargin - 0.25in,
+ marginparsep = 0.125in,
+}}
+% \end{macrocode}
+%
+% \subsubsection{Line Spacing}\label{imp:opt:spacing}
+% We're using the |setspace| package.
+% We simply call one of the spacing commands after the class is loaded.
+% So, be careful to place any line spacing commands within a group,
+% or the global setting can be changed in the middle of the document.
+% The default is |onehalfspacing|.
+%
+% \begin{macrocode}
+\DeclareOption{doublespacing}{%
+ \AtEndOfClass{\doublespacing}
+}
+\DeclareOption{onehalfspacing}{%
+ \AtEndOfClass{\onehalfspacing}
+}
+\DeclareOption{singlespacing}{%
+ \AtEndOfClass{\singlespacing}
+}
+% \end{macrocode}
+%
+% \subsubsection{Book Options}\label{imp:opt:misc}
+%
+% Finally, we try to process all remaining options using the |book| class,
+% so the usual options and default values should be defined, like:
+% \begin{itemize}
+% \item page size: e.g. |letterpaper|, |a4paper|, \dots
+% \item font size: e.g. |10pt|, |11pt|, |12pt|
+% \item open side for twoside: e.g. |openright|, |openany|
+% \end{itemize}
+%
+% \begin{macrocode}
+\DeclareOption*{\PassOptionsToClass{\CurrentOption}{book}}
+% \end{macrocode}
+%
+% \subsubsection{Default Options \& Processing}\label{imp:opt:proc}
+%
+% Executing the default options and processing.
+% Any remaining options should now raise an error like:
+% |LaTeX Warning: Unused global option(s): ...|
+%
+% \begin{macrocode}
+\ExecuteOptions{letterpaper} % book
+\ExecuteOptions{normalmargins,onehalfspacing,chapterhead} % ut-thesis
+\ProcessOptions
+% \end{macrocode}
+%
+% \subsection{Initialization}\label{imp:init}
+% We load the |book| class and the required packages.
+%
+% \begin{macrocode}
+\LoadClass{book}
+\RequirePackage{picture} % for draft mode
+\RequirePackage{atbegshi} % for draft mode
+\RequirePackage{geometry} % for margins etc.
+\RequirePackage{setspace} % for line spacing
+% \end{macrocode}
+%
+% \subsection{Author Information}\label{imp:author}
+%
+% Getting the user inputs.
+%
+% \begin{macrocode}
+\renewcommand*{\author} [1]{\gdef\@author{#1}}
+\renewcommand*{\title} [1]{\gdef\@title{#1}}
+\newcommand*{\degree} [1]{\gdef\@degree{#1}}
+\newcommand*{\department}[1]{\gdef\@department{#1}}
+\newcommand*{\gradyear} [1]{\gdef\@gradyear{#1}}
+% \end{macrocode}
+%
+% Setting default values that will hopefully be overwritten.
+%
+% \begin{macrocode}
+\author {(author)}
+\title {(title)}
+\degree {(degree)}
+\department{(department)}
+\gradyear {(gradyear)}
+% \end{macrocode}
+%
+% \subsection{Front Matter}\label{imp:front}
+%
+% \subsubsection{Matter Commands}\label{imp:front:pp}
+% We enforce that the |\frontmatter| and |\mainmatter| use the right
+% page numbering and styles.
+% Also, if we are using |[twoside]|,
+% then we need to reduce all page numbers in the front matter by 1,
+% so that the |abstract| is page ``ii'',
+% because adjusting the |page| counter directly causes typesetting problems,
+% such as incorrect alternating margins.
+% \begin{macrocode}
+\newcommand{\@romanskip}[1]{\@roman{\if@twoside\numexpr#1-1\else#1\fi}}
+\g@addto@macro\frontmatter{\pagenumbering{romanskip}\pagestyle{plain}}
+\g@addto@macro\mainmatter {\pagenumbering{arabic}\pagestyle{headings}}
+% \end{macrocode}
+%
+% \subsubsection{Title Page}\label{imp:front:title}
+%
+% We don't enforce firm distances between lines,
+% but use |\vfill| to stretch and fill the space evenly,
+% except for a double-sized gap after the author name.
+% There is one part of space above the title,
+% while the copyright is pushed all the way to the bottom.
+%
+% \begin{macrocode}
+\renewcommand*{\maketitle}%
+ {\thispagestyle{empty}
+ \large
+ \begin{center}
+ \singlespacing
+ \null
+ \vfill
+ \textsc{\@title}
+ \vfill
+ by
+ \vfill
+ {\@author}
+ \vfill
+ \vfill
+ A thesis submitted in conformity with the requirements\\
+ for the degree of {\@degree}\\[1ex]
+ Graduate Department of {\@department}\\
+ University of Toronto\\
+ \vfill
+ {\copyright} Copyright {\@gradyear} by {\@author}
+ \end{center}
+ {{\pagestyle{empty}\ocleardoublepage}}
+ }
+% \end{macrocode}
+%
+% \subsubsection{Abstract Page}\label{imp:front:abs}
+%
+% The abstract is an environment, but it creates its own page
+% (and possibly an extra empty page if using |twoside|).
+% The author and title info is centered and singlespaced.
+% The word ``Abstract'' uses the |\section*| style, without any numbering.
+% The abstract content is doublespaced.
+%
+% \begin{macrocode}
+\newenvironment*{abstract}%
+ {\thispagestyle{plain}
+ \begin{center}
+ \singlespacing
+ {\@title}\\[2ex]
+ {\@author}\\
+ {\@degree}\\[1ex]
+ Graduate Department of {\@department}\\
+ University of Toronto\\
+ {\@gradyear}\\
+ \section*{Abstract}
+ \end{center}
+ \begingroup
+ \doublespacing}%
+ {\endgroup\cleardoublepage}
+% \end{macrocode}
+%
+% \subsubsection{Dedication}\label{imp:front:ded}
+%
+% As described above.
+%
+% \begin{macrocode}
+\newenvironment*{dedication}%
+ {\thispagestyle{plain}
+ \null
+ \vfill
+ \begin{flushright}}%
+ {\end{flushright}
+ \vfill
+ \vfill
+ \clearpage}
+% \end{macrocode}
+%
+% \subsubsection{Acknowledgments}\label{imp:front:ackn}
+%
+% As described above.
+%
+% \begin{macrocode}
+\newenvironment*{acknowledgements}%
+ {\thispagestyle{plain}
+ \begin{center}
+ \section*{Acknowledgments}
+ \end{center}
+ \begingroup}%
+ {\endgroup\clearpage}
+% \end{macrocode}
+%
+% \subsection{Page Styles}\label{imp:hf}
+%
+% \subsubsection{Blank Pages}\label{imp:hf:blank}
+% By defauly, all blank pages will have page style |plain|,
+% but the original definition is stored in |\ocleardoublepage|.
+% \begin{macrocode}
+\let\ocleardoublepage\cleardoublepage
+\def\cleardoublepage{{\newpage\pagestyle{plain}\ocleardoublepage}}
+% \end{macrocode}
+%
+% \subsubsection{Headers \& Footers}\label{imp:hf:hf}
+% We redefine the |headings| page style
+% with a new formatting hook |\headerstyle{}|,
+% but is otherwise similar to the original |headings|.
+% \begin{macrocode}
+\newcommand{\headerstyle}[1]{\footnotesize\MakeUppercase{#1}}
+\if@twoside
+\renewcommand*{\ps@headings}%
+ {\let\@mkboth\markboth
+ \let\@oddfoot\@empty
+ \let\@evenfoot\@empty
+ \def\@oddhead{\headerstyle{\rightmark\hfil\thepage}}%
+ \def\@evenhead{\headerstyle{\thepage\hfil\leftmark}}%
+ \def\chaptermark##1{\markboth{%
+ \if@mainmatter\headerstyle{\@chapapp\ \thechapter.\ ##1}\fi}{}}
+ \def\sectionmark##1{\markright{%
+ \if@mainmatter\headerstyle{\thesection.\ ##1}\fi}}}
+\else
+\renewcommand*{\ps@headings}%
+ {\let\@mkboth\markboth
+ \let\@oddfoot\@empty
+ \let\@evenfoot\@empty
+ \def\@oddhead{\headerstyle{\rightmark\hfil\thepage}}%
+ \def\chaptermark##1{\markright{%
+ \if@mainmatter\headerstyle{\@chapapp\ \thechapter.\ ##1}\fi}}}
+\fi
+% \end{macrocode}
+%
+% Default page style.
+% \begin{macrocode}
+\pagestyle{headings}
+% \end{macrocode}
+%
+% \subsection{Spacing Adjustments}\label{imp:adj}
+% The default spacing below captions is too small
+% for captions on top of floats (e.g.\ for tables),
+% so we make it consistent above and below.
+%
+% \begin{macrocode}
+\setlength\abovecaptionskip{1ex}
+\setlength\belowcaptionskip{1ex}
+% \end{macrocode}
+%
+\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/ut-thesis/ut-thesis.ins b/macros/latex/contrib/ut-thesis/ut-thesis.ins
new file mode 100644
index 0000000000..362c5806c1
--- /dev/null
+++ b/macros/latex/contrib/ut-thesis/ut-thesis.ins
@@ -0,0 +1,39 @@
+\input docstrip.tex
+\keepsilent
+\usedir{.}
+
+\preamble
+
+The |ut-thesis| document class implements the formatting requirements of
+the University of Toronto School of Graduate Studies (SGS),
+as of Fall 2020.
+
+Copyright (c) 1998-2013 Francois Pitt <fpitt@cs.utoronto.ca>,
+ 2020-2020 Jesse Knight <jesse.knight@mail.utoronto.ca>
+last updated at 10:00 (EST) on Wed 14 Oct 2020
+
+This work may be distributed and/or modified under the conditions of
+the LaTeX Project Public License, either version 1.3c of this license
+or (at your option) any later version.
+The latest version of this license is in
+ http://www.latex-project.org/lppl.txt
+and version 1.3c or later is part of all distributions of LaTeX
+version 2005/12/01 or later.
+
+This work has the LPPL maintenance status "maintained".
+
+The Current Maintainer of this work is
+Jesse Knight <jesse.knight@mail.utoronto.ca>.
+
+This work consists of the files:
+- README
+- ut-thesis.dtx
+- ut-thesis.ins
+- ut-thesis.pdf (derived user manual)
+- ut-thesis.cls (derived class file)
+
+\endpreamble
+
+\generate{\file{ut-thesis.cls}{\from{ut-thesis.dtx}{class}}}
+
+\endbatchfile \ No newline at end of file
diff --git a/macros/latex/contrib/ut-thesis/ut-thesis.pdf b/macros/latex/contrib/ut-thesis/ut-thesis.pdf
new file mode 100644
index 0000000000..10cce05d84
--- /dev/null
+++ b/macros/latex/contrib/ut-thesis/ut-thesis.pdf
Binary files differ
diff --git a/macros/latex/contrib/ut-thesis/ut-thesis.tex b/macros/latex/contrib/ut-thesis/ut-thesis.tex
deleted file mode 100644
index 050e3e1859..0000000000
--- a/macros/latex/contrib/ut-thesis/ut-thesis.tex
+++ /dev/null
@@ -1,209 +0,0 @@
-%% ut-thesis.tex -- document template for graduate theses at UofT
-%%
-%% Copyright (c) 1998-2013 Francois Pitt <fpitt@cs.utoronto.ca>
-%% last updated at 16:20 (EDT) on Wed 25 Sep 2013
-%%
-%% This work may be distributed and/or modified under the conditions of
-%% the LaTeX Project Public License, either version 1.3c of this license
-%% or (at your option) any later version.
-%% The latest version of this license is in
-%% http://www.latex-project.org/lppl.txt
-%% and version 1.3c or later is part of all distributions of LaTeX
-%% version 2005/12/01 or later.
-%%
-%% This work has the LPPL maintenance status "maintained".
-%%
-%% The Current Maintainer of this work is
-%% Francois Pitt <fpitt@cs.utoronto.ca>.
-%%
-%% This work consists of the files listed in the accompanying README.
-
-%% SUMMARY OF FEATURES:
-%%
-%% All environments, commands, and options provided by the `ut-thesis'
-%% class will be described below, at the point where they should appear
-%% in the document. See the file `ut-thesis.cls' for more details.
-%%
-%% To explicitly set the pagestyle of any blank page inserted with
-%% \cleardoublepage, use one of \clearemptydoublepage,
-%% \clearplaindoublepage, \clearthesisdoublepage, or
-%% \clearstandarddoublepage (to use the style currently in effect).
-%%
-%% For single-spaced quotes or quotations, use the `longquote' and
-%% `longquotation' environments.
-
-
-%%%%%%%%%%%% PREAMBLE %%%%%%%%%%%%
-
-%% - Default settings format a final copy (single-sided, normal
-%% margins, one-and-a-half-spaced with single-spaced notes).
-%% - For a rough copy (double-sided, normal margins, double-spaced,
-%% with the word "DRAFT" printed at each corner of every page), use
-%% the `draft' option.
-%% - The default global line spacing can be changed with one of the
-%% options `singlespaced', `onehalfspaced', or `doublespaced'.
-%% - Footnotes and marginal notes are all single-spaced by default, but
-%% can be made to have the same spacing as the rest of the document
-%% by using the option `standardspacednotes'.
-%% - The size of the margins can be changed with one of the options:
-%% . `narrowmargins' (1 1/4" left, 3/4" others),
-%% . `normalmargins' (1 1/4" left, 1" others),
-%% . `widemargins' (1 1/4" all),
-%% . `extrawidemargins' (1 1/2" all).
-%% - The pagestyle of "cleared" pages (empty pages inserted in
-%% two-sided documents to put the next page on the right-hand side)
-%% can be set with one of the options `cleardoublepagestyleempty',
-%% `cleardoublepagestyleplain', or `cleardoublepagestylestandard'.
-%% - Any other standard option for the `report' document class can be
-%% used to override the default or draft settings (such as `10pt',
-%% `11pt', `12pt'), and standard LaTeX packages can be used to
-%% further customize the layout and/or formatting of the document.
-
-%% *** Add any desired options. ***
-\documentclass{ut-thesis}
-
-%% *** Add \usepackage declarations here. ***
-%% The standard packages `geometry' and `setspace' are already loaded by
-%% `ut-thesis' -- see their documentation for details of the features
-%% they provide. In particular, you may use the \geometry command here
-%% to adjust the margins if none of the ut-thesis options are suitable
-%% (see the `geometry' package for details). You may also use the
-%% \setstretch command to set the line spacing to a value other than
-%% single, one-and-a-half, or double spaced (see the `setspace' package
-%% for details).
-
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% %%
-%% *** I M P O R T A N T *** %%
-%% %%
-%% Fill in the following fields with the required information: %%
-%% - \degree{...} name of the degree obtained %%
-%% - \department{...} name of the graduate department %%
-%% - \gradyear{...} year of graduation %%
-%% - \author{...} name of the author %%
-%% - \title{...} title of the thesis %%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-%% *** Change this example to appropriate values. ***
-\degree{Doctor of Philosophy}
-\department{Computer Science}
-\gradyear{2012}
-\author{Fran\c{c}ois Pitt}
-\title{UT-Thesis Class File Example}
-
-%% *** NOTE ***
-%% Put here all other formatting commands that belong in the preamble.
-%% In particular, you should put all of your \newcommand's,
-%% \newenvironment's, \newtheorem's, etc. (in other words, all the
-%% global definitions that you will need throughout your thesis) in a
-%% separate file and use "\input{filename}" to input it here.
-
-
-%% *** Adjust the following settings as desired. ***
-
-%% List only down to subsections in the table of contents;
-%% 0=chapter, 1=section, 2=subsection, 3=subsubsection, etc.
-\setcounter{tocdepth}{2}
-
-%% Make each page fill up the entire page.
-\flushbottom
-
-
-%%%%%%%%%%%% MAIN DOCUMENT %%%%%%%%%%%%
-
-\begin{document}
-
-%% This sets the page style and numbering for preliminary sections.
-\begin{preliminary}
-
-%% This generates the title page from the information given above.
-\maketitle
-
-%% There should be NOTHING between the title page and abstract.
-%% However, if your document is two-sided and you want the abstract
-%% _not_ to appear on the back of the title page, then uncomment the
-%% following line.
-%\cleardoublepage
-
-%% This generates the abstract page, with the line spacing adjusted
-%% according to SGS guidelines.
-\begin{abstract}
-%% *** Put your Abstract here. ***
-%% (At most 150 words for M.Sc. or 350 words for Ph.D.)
-\end{abstract}
-
-%% Anything placed between the abstract and table of contents will
-%% appear on a separate page since the abstract ends with \newpage and
-%% the table of contents starts with \clearpage. Use \cleardoublepage
-%% for anything that you want to appear on a right-hand page.
-
-%% This generates a "dedication" section, if needed -- just a paragraph
-%% formatted flush right (uncomment to have it appear in the document).
-%\begin{dedication}
-%% *** Put your Dedication here. ***
-%\end{dedication}
-
-%% The `dedication' and `acknowledgements' sections do not create new
-%% pages so if you want the two sections to appear on separate pages,
-%% uncomment the following line.
-%\newpage % separate pages for dedication and acknowledgements
-
-%% Alternatively, if you leave both on the same page, it is probably a
-%% good idea to add a bit of extra vertical space in between the two --
-%% for example, as follows (adjust as desired).
-%\vspace{.5in} % vertical space between dedication and acknowledgements
-
-%% This generates an "acknowledgements" section, if needed
-%% (uncomment to have it appear in the document).
-%\begin{acknowledgements}
-%% *** Put your Acknowledgements here. ***
-%\end{acknowledgements}
-
-%% This generates the Table of Contents (on a separate page).
-\tableofcontents
-
-%% This generates the List of Tables (on a separate page), if needed
-%% (uncomment to have it appear in the document).
-%\listoftables
-
-%% This generates the List of Figures (on a separate page), if needed
-%% (uncomment to have it appear in the document).
-%\listoffigures
-
-%% You can add commands here to generate any other material that belongs
-%% in the head matter (for example, List of Plates, Index of Symbols, or
-%% List of Appendices).
-
-%% End of the preliminary sections: reset page style and numbering.
-\end{preliminary}
-
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% Put your Chapters here; the easiest way to do this is to keep %%
-%% each chapter in a separate file and `\include' all the files. %%
-%% Each chapter file should start with "\chapter{ChapterName}". %%
-%% Note that using `\include' instead of `\input' will make each %%
-%% chapter start on a new page, and allow you to format only parts %%
-%% of your thesis at a time by using `\includeonly'. %%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-%% *** Include chapter files here. ***
-
-
-%% This adds a line for the Bibliography in the Table of Contents.
-\addcontentsline{toc}{chapter}{Bibliography}
-%% *** Set the bibliography style. ***
-%% (change according to your preference/requirements)
-\bibliographystyle{plain}
-%% *** Set the bibliography file. ***
-%% ("thesis.bib" by default; change as needed)
-\bibliography{thesis}
-
-%% *** NOTE ***
-%% If you don't use bibliography files, comment out the previous line
-%% and use \begin{thebibliography}...\end{thebibliography}. (In that
-%% case, you should probably put the bibliography in a separate file and
-%% `\include' or `\input' it here).
-
-\end{document}
diff --git a/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl b/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
index b5c062e5c9..ce7b3ada2a 100644
--- a/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
+++ b/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
@@ -16,10 +16,13 @@ $mirrors = {
'China' => {
'https://mirror.bjtu.edu.cn/CTAN/' => 1,
'https://mirrors.aliyun.com/CTAN/' => 1,
+ 'https://mirrors.bfsu.edu.cn/CTAN/' => 1,
+ 'https://mirrors.cqu.edu.cn/CTAN/' => 1,
'https://mirrors.hit.edu.cn/CTAN/' => 1,
'https://mirrors.nju.edu.cn/CTAN/' => 1,
'https://mirrors.sjtug.sjtu.edu.cn/ctan/' => 1,
'https://mirrors.tuna.tsinghua.edu.cn/CTAN/' => 1,
+ 'https://mirrors.ustc.edu.cn/CTAN/' => 1,
},
'Hong Kong' => {
'https://mirror-hk.koddos.net/CTAN/' => 1,
@@ -32,11 +35,13 @@ $mirrors = {
},
'Iran' => {
'http://ctan.yazd.ac.ir/' => 1,
+ 'https://ctan.um.ac.ir/' => 1,
},
'Japan' => {
'ftp://ftp.u-aizu.ac.jp/pub/tex/CTAN/' => 1,
'http://ftp.jaist.ac.jp/pub/CTAN/' => 1,
'https://ftp.kddilabs.jp/CTAN/' => 1,
+ 'https://ftp.yz.yamagata-u.ac.jp/pub/CTAN/' => 1,
},
'Korea' => {
'http://ftp.kaist.ac.kr/pub/tex-archive/' => 1,
@@ -44,6 +49,7 @@ $mirrors = {
'http://mirror.kakao.com/CTAN/' => 1,
'https://cran.asia/tex/' => 1,
'https://ftp.harukasan.org/CTAN/' => 1,
+ 'https://mirror.navercorp.com/CTAN/' => 1,
'https://mirror.yongbok.net/ctan/' => 1,
},
'Philippines' => {
@@ -62,6 +68,7 @@ $mirrors = {
'https://mirror.datacenter.by/pub/mirrors/CTAN/' => 1,
},
'Czech Republic' => {
+ 'http://ftp.cvut.cz/tex-archive/' => 1,
'https://mirrors.nic.cz/tex-archive/' => 1,
},
'Denmark' => {
@@ -86,6 +93,7 @@ $mirrors = {
'http://ctan.ebinger.cc/tex-archive/' => 1,
'http://mirror.physik-pool.tu-berlin.de/pub/CTAN/' => 1,
'http://vesta.informatik.rwth-aachen.de/ftp/pub/mirror/ctan/' => 1,
+ 'https://ctan.kako-dev.de/' => 1,
'https://ctan.mc1.root.project-creative.net/' => 1,
'https://ctan.mirror.norbert-ruehl.de/' => 1,
'https://ctan.net/' => 1,
@@ -97,6 +105,7 @@ $mirrors = {
'https://ftp.rrzn.uni-hannover.de/pub/mirror/tex-archive/' => 1,
'https://ftp.tu-chemnitz.de/pub/tex/' => 1,
'https://mirror.clientvps.com/CTAN/' => 1,
+ 'https://mirror.dogado.de/tex-archive/' => 1,
'https://mirror.informatik.hs-fulda.de/tex-archive/' => 1,
'https://packages.oth-regensburg.de/ctan/' => 1,
},
@@ -113,6 +122,7 @@ $mirrors = {
'Netherlands' => {
'http://ctan.cs.uu.nl/' => 1,
'https://ftp.snt.utwente.nl/pub/software/tex/' => 1,
+ 'https://mirror.koddos.net/CTAN/' => 1,
'https://mirror.lyrahosting.com/CTAN/' => 1,
},
'Norway' => {
@@ -131,6 +141,8 @@ $mirrors = {
},
'Russia' => {
'http://ctan.altspu.ru/' => 1,
+ 'http://mirror.macomnet.net/pub/CTAN/' => 1,
+ 'http://mirrors.mi.ras.ru/CTAN/' => 1,
'https://mirror.truenetwork.ru/CTAN/' => 1,
},
'Serbia' => {
@@ -156,6 +168,8 @@ $mirrors = {
'http://ctan.mirror.colo-serv.net/' => 1,
'http://ctan.mirror.globo.tech/' => 1,
'http://ctan.mirror.rafal.ca/' => 1,
+ 'https://ctan.math.ca/tex-archive/' => 1,
+ 'https://mirror.its.dal.ca/ctan/' => 1,
'https://muug.ca/mirror/ctan/' => 1,
},
'Costa Rica' => {
@@ -168,12 +182,17 @@ $mirrors = {
'http://mirrors.ibiblio.org/pub/mirrors/CTAN/' => 1,
'https://ctan.math.illinois.edu/' => 1,
'https://mirror.las.iastate.edu/tex-archive/' => 1,
+ 'https://mirrors.concertpass.com/tex-archive/' => 1,
+ 'https://mirrors.rit.edu/CTAN/' => 1,
},
},
'Oceania' => {
'Australia' => {
'https://mirror.aarnet.edu.au/pub/CTAN/' => 1,
},
+ 'New Zealand' => {
+ 'http://mirror.aut.ac.nz/CTAN/' => 1,
+ },
},
'South America' => {
'Chile' => {
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb b/systems/texlive/tlnet/tlpkg/texlive.tlpdb
index d45ed2af18..c14b261908 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/2020
-depend revision/56984
+depend revision/56990
name 00texlive.image
category TLCore
-revision 56984
+revision 56991
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
@@ -4299,7 +4299,7 @@ depend setting_available_architectures:aarch64-linux amd64-freebsd amd64-netbsd
name 00texlive.installer
category TLCore
-revision 56980
+revision 56986
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
@@ -23568,7 +23568,7 @@ catalogue-version 0.1c
name asymptote
category TLCore
-revision 56070
+revision 56991
shortdesc 2D and 3D TeX-Aware Vector Graphics Language
longdesc Asymptote is a powerful descriptive vector graphics language
longdesc for technical drawing, inspired by MetaPost but with an
@@ -23576,10 +23576,10 @@ longdesc improved C++-like syntax. Asymptote provides for figures the
longdesc same high-quality level of typesetting that LaTeX does for
longdesc scientific text.
depend asymptote.ARCH
-containersize 359672
-containerchecksum 38c8c9928b4ed067b3ac0fb2a0a1b15a0cb3967a33274162a21869d2a6cd80d96da25f7ad8572b6a87e90792136e06ec1656804db028907f544cdb4482283560
+containersize 359664
+containerchecksum 1a6676ea28821730b98e6ba1366b8a85d3a7b9bbb5db1eab7f3b90aa8479639b1fe42f1bb5a064ee3cde52d72254b614bc8972c39d0b33add9d781bd460227b6
doccontainersize 2386940
-doccontainerchecksum ba66eb645b8ed33dda47c473d8c8f65c7316161868d9a8dcb85b7680ae08129593a326676619ea7cb760599646a57394e18f5131b3bf55ce801bb676c46eb54c
+doccontainerchecksum 3840b3051ea6c7e76e3a95b78dc2d8999af273ddacbd59ef9a2d492496f220bfb8905c34420acf912de7fcf858a8d39429a289bfe6a9b5e9ab6cc51322b3ff57
docfiles size=1274
texmf-dist/doc/asymptote/CAD.pdf details="Using Asymptote for 2D CAD"
texmf-dist/doc/asymptote/TeXShopAndAsymptote.pdf
@@ -24098,7 +24098,7 @@ catalogue-contact-repository https://github.com/vectorgraphics/asymptote
catalogue-ctan /graphics/asymptote
catalogue-license lgpl3
catalogue-topics graphics graphics-engn
-catalogue-version 2.67
+catalogue-version 2.68
name asymptote-by-example-zh-cn
category Package
@@ -37043,7 +37043,7 @@ catalogue-version 1.2.0
name biblatex-swiss-legal
category Package
-revision 56878
+revision 56991
shortdesc Bibliography and citation styles following Swiss legal practice
relocated 1
longdesc The package provides BibLaTeX bibliography and citation styles
@@ -37054,9 +37054,9 @@ longdesc ng-biblatex-swiss-legal-not-displayed-correctly the package is
longdesc at present outdated and does not work properly with newer
longdesc versions of BibLaTeX.
containersize 18148
-containerchecksum e9c53641a0491c7872cddbfa37046e1ec30119686980ced0c84f23e47351fd369a5751cd7e093680251059a760f0ef95416b92788ffaddd4e7a1c5f3f26e5794
+containerchecksum ebcc4f4dbf8b0ad589f1d82780dc675ca4168e4d80aa0ea60ee9cdbc0cde879bae4a40ce99fc1147f791200619b1db7bc050477aa7ded2c855d53a1d948b4e98
doccontainersize 513436
-doccontainerchecksum 3f6bf97edf44e36daa2ed0ba9de6215d658565ac19d7fced757f24ff5601060e64dd66745244eb83c98bd3616e1d62a9a69bcafea87d39e719fbe45523b7b10e
+doccontainerchecksum cbf04a29b2369f38b9f11c8c5a7986d5d7d21353b967ba61b6f44f26f0bb990801f766d886e14c742258999862500e88788b9e2d2cffb8e9469b68c164b255aa
docfiles size=145
RELOC/doc/latex/biblatex-swiss-legal/README details="Readme (French and English)"
RELOC/doc/latex/biblatex-swiss-legal/biblatex-swiss-legal.pdf details="Package documentation (French)" language="fr"
@@ -162046,7 +162046,7 @@ binfiles arch=x86_64-solaris size=1
name latexmk
category Package
-revision 56490
+revision 56991
shortdesc Fully automated LaTeX document generation
longdesc Latexmk completely automates the process of generating a LaTeX
longdesc document. Given the source files for a document, latexmk issues
@@ -162058,10 +162058,10 @@ longdesc files), and reruns LaTeX, etc., whenever a source file has
longdesc changed. Thus a previewer can offer a display of the document's
longdesc latest state.
depend latexmk.ARCH
-containersize 94592
-containerchecksum 419df4657513224fa1586c29fb0c0468c0e31b3c87b85af349d44f236656144e5ccbc145956dde8e3d008c708cb66b7fe4e131d6721893add4fda38a4fd87bb7
-doccontainersize 473740
-doccontainerchecksum 892870b84be7dc2ce87083ad370cb5cefdc4cf27798f633e15b42c6af17b09b7ee803b9c960a311a86e9f7985acdea4768de73d3a992416a6c65ad57d3d1e58b
+containersize 94628
+containerchecksum 656ca257d1520759857e268f499486e523f0e5363581fa357282117d258b32984d9f1f4ea910e528eca57eb96fae1fc25068da29bfbab8fc9bfc5acf7fc06949
+doccontainersize 473744
+doccontainerchecksum aa3625188a5ce8e3360d9998617ffd8332175aba4bd5c9a117491b59e16a6b16b41fe1e119af6e12f995d2c0c8874c66e3727305ae03636667ff284f9e211f7b
docfiles size=254
texmf-dist/doc/man/man1/latexmk.1
texmf-dist/doc/man/man1/latexmk.man1.pdf
@@ -162108,12 +162108,13 @@ docfiles size=254
texmf-dist/doc/support/latexmk/latexmk.pdf details="Manual page, PDF"
texmf-dist/doc/support/latexmk/latexmk.txt details="Manual page, text format"
srccontainersize 856
-srccontainerchecksum 8ba256d30cf89300645d8412a1117ce914ad59c0c8044fee48728b94fd4ea11c0cdd2353e4d3a320d7d0f4a5a5203deb24af0a7b160f99bafde1b709c09aeab8
+srccontainerchecksum ab834fd42c8092a258beb35ae18ffadd1b0aa546947e51ea6df48192f0ea63a6858418ed58a82e60f158092c0460aefc951a18f0310a50d6121207d882dfdcf5
srcfiles size=1
texmf-dist/source/support/latexmk/latexmk.bat
runfiles size=102
texmf-dist/scripts/latexmk/latexmk.pl
catalogue-also latexn prv arara
+catalogue-contact-home https://personal.psu.edu/~jcc8/software/latexmk
catalogue-ctan /support/latexmk
catalogue-license gpl2
catalogue-topics compilation
@@ -200210,20 +200211,20 @@ catalogue-topics dissertation
name muling
category Package
-revision 56920
-shortdesc Class for writing MA thesis at the Department of Linguistics, University of Mumbai
+revision 56991
+shortdesc MA Thesis class for the Department of Linguistics, University of Mumbai
relocated 1
longdesc This is a class file for writing MA thesis as required by the
longdesc Department of Linguistics at the University of Mumbai.
-containersize 2248
-containerchecksum 2ade37fc90137b1b6ff1b53075bee9b8bb8e3350552d47135f1e47ef4812a37541298b06aab83942eaed7134abeb2c1ea9a3e4e50e3299346682bb1dd8d997a1
+containersize 2252
+containerchecksum d5b89d93bb67e46618a30e5bdbc988a6849a7cbfee84f4486cf4557e750ae53f64aad188f74b1a96b1dfbaddfaea3a6a0380bd955ce79ebeb095fe1a54194e5a
doccontainersize 390184
-doccontainerchecksum 2d858fda58ee95467fbfa0b23344d3e0d0df0761056641647c167d0871ea71f28e9d2ff0f2ab88de8b2aad173d51da8e23ea9b7d717c5fb6a17d582caa32df76
+doccontainerchecksum ce1e2ac1e50e164bba6ff3911fe9ecb8f85ff2930f21f21e6721e153ffdc9c81798857cfe73c62f783f8909a644efd9f5a048565e054b0543973c4625d96976f
docfiles size=97
RELOC/doc/latex/muling/README.txt details="Readme"
RELOC/doc/latex/muling/muling.pdf details="Package documentation"
srccontainersize 3824
-srccontainerchecksum 9faf6d91638279bd98c1ebc538052ef4041b12a4c1e91112fc6d2cf66e5c51168198486ec10729c0a61a334b69cca2909ad3a843a503b51bf159838bacb93793
+srccontainerchecksum 877f34b070dd1549f649ce99a322f7221c9dcdaae5aa80ab36c6e340285ac9ebea09e9496ec87e6d881608f30d9d7b24faff6f8671f57a2b18ff96a127a30311
srcfiles size=4
RELOC/source/latex/muling/muling.dtx
RELOC/source/latex/muling/muling.ins
@@ -200234,7 +200235,7 @@ catalogue-contact-home https://gitlab.com/niranjanvikastambe/muling
catalogue-ctan /macros/latex/contrib/muling
catalogue-license lppl1.3c
catalogue-topics linguistic class
-catalogue-version 0.1
+catalogue-version 0.2
name multenum
category Package
@@ -206921,7 +206922,7 @@ catalogue-topics font font-type1 font-decor
name nicematrix
category Package
-revision 56887
+revision 56991
shortdesc Improve the typesetting of mathematical matrices with PGF
relocated 1
longdesc This package is based on the package array. It creates PGF/TikZ
@@ -206933,26 +206934,26 @@ longdesc border matrices); control of the width of the columns; tools to
longdesc color rows and columns with a good PDF result; blocks of cells;
longdesc etc. The package requires and loads l3keys2e, xparse, array,
longdesc amsmath, pgfcore, and the module shapes of PGF.
-containersize 23376
-containerchecksum 5f919c1da25510acdfdaab940d9750fabe16b224820a5fa0af07a69626d3dfd4a85ba21bedc533bcbbbb0a391aef70371daa3ba781755ec3f88258c5ad76e2d6
-doccontainersize 1471860
-doccontainerchecksum c31e30d9fb96dccff7ac1a0e10ef30250b5c89ae616f238e72d245b8636a92dd86853541a3d1cb760a3a79846471d617c741ae0ca171c4e14c9a4e28dca477a9
-docfiles size=401
+containersize 23952
+containerchecksum 17ba47f4307830e81e71262bdbeec1c6edd6a21bafdc292c365c2b611144f4dd4b5a0820fb80dd4f4145676dc21c70d9028c48af94f332b8b00cc174b13f0da5
+doccontainersize 1492284
+doccontainerchecksum 164a62ffe410d1ba51648969bfc4599147c009776f80cd1ca120bda990d2176b614a3e9c957e1b3f4589a1d396ce4a8386970a1cc64b49cde8d5e27281742447
+docfiles size=406
RELOC/doc/latex/nicematrix/README.md details="Readme"
RELOC/doc/latex/nicematrix/nicematrix-french.pdf details="Package documentation in French" language="fr"
RELOC/doc/latex/nicematrix/nicematrix-french.tex
RELOC/doc/latex/nicematrix/nicematrix.pdf details="Package documentation"
-srccontainersize 82888
-srccontainerchecksum 9a5349d912212ed88a75fecd346bcd973c64269d544132666a5c4166cdd8ee10a0042bfc5966b205ba076359f3367224eb2892b36a07c3a1622c6475f645741c
-srcfiles size=124
+srccontainersize 84096
+srccontainerchecksum 2fe52c9d109c2831e673105c9788132bec21c98c49251d0da05f542f6196928bc32b61bbadffbee6b848212591381db0ec4fee6a1517070cc09babadba0dd540
+srcfiles size=126
RELOC/source/latex/nicematrix/nicematrix.dtx
RELOC/source/latex/nicematrix/nicematrix.ins
-runfiles size=50
+runfiles size=52
RELOC/tex/latex/nicematrix/nicematrix.sty
catalogue-ctan /macros/latex/contrib/nicematrix
catalogue-license lppl1.3
catalogue-topics maths matrix pgf-tikz expl3
-catalogue-version 5.6
+catalogue-version 5.7
name nicetext
category Package
@@ -225941,7 +225942,7 @@ catalogue-topics maths
name oup-authoring-template
category Package
-revision 56878
+revision 56991
shortdesc A general template for journals published by Oxford University Press (OUP)
relocated 1
longdesc This package provides a general LaTeX template for journals
@@ -225953,9 +225954,9 @@ longdesc see
longdesc https://academic.oup.com/journals/pages/authors/preparing_your_
longdesc manuscript.
containersize 15128
-containerchecksum 42bdcce49d52a40b28c4298476fa2f83830936e1bdeae75e39cbbfba64c06a207ab7cf1916c7bce4b93ed1fcbb2002123ccc54f516fa40b8e6e53912f9450e15
+containerchecksum b86d2e2cceb18e4fbe9277963c1a7fd0f49893232956289f3ccf95811c7beefc0e859fb6697a5c2fafef3f722d602846ea2de5e798734b91ac8556bd9806f293
doccontainersize 511088
-doccontainerchecksum c5323f73709bf512308966ccfdfccb8fe9a1f8edd905c4bfca9bae8cc2c6b0c52fa8081b7baf9dfcb66056e959c3b8dd1544ac317a9e35c5715ba52890a8a7f3
+doccontainerchecksum dd9a2fda27eb26abb598e89923eacd22b1685d95c3633fcecb662076a6e56d9d8888a70707ba138b8ff6677c9a91f6b811dcd87f85e788fbac0ef2f716da6afe
docfiles size=159
RELOC/doc/latex/oup-authoring-template/README details="Readme"
RELOC/doc/latex/oup-authoring-template/doc/oup-authoring-template-doc.pdf details="User manual"
@@ -229601,7 +229602,7 @@ catalogue-version 1.15
name pdfjam
category Package
-revision 52857
+revision 56991
shortdesc Shell scripts interfacing to pdfpages
longdesc The package makes available the pdfjam shell script that
longdesc provides a simple interface to much of the functionality of the
@@ -229612,10 +229613,10 @@ longdesc output. It is useful for joining files together, selecting
longdesc pages, reducing several source pages onto one output page,
longdesc etc., etc.
depend pdfjam.ARCH
-containersize 12148
-containerchecksum 9515d6156948df018b5c775e0882912aea5231ba73a30c5dbd33c258542a6afa936eaf9a366a0d498faf231e4e5ebe7485ad928c78114ddb9399b6f26f48c5ea
-doccontainersize 110184
-doccontainerchecksum b2d6f867ed37f8f3443e0a88b2e1547ef755756409ea0f25e0982410394807f40a7b0bbb89d56e6bddd8fd65607d43bb28ff7bed6751fcabecb284ed1c2aee89
+containersize 12120
+containerchecksum 1b1084859a811861e60e27186d67d267d3740152331f50fdbe67ce7226a76b4db24d79b674e6511d2f3de9a711da3369c565d781614f5d0c1a8021bc1ac18827
+doccontainersize 110188
+doccontainerchecksum a29c09a2e843188135265aaec690e09cd08fe29076a0378b308ec0e48aa7936ba0edfa7d6ad3ac808ec334bb5c2793a32d8ef625f4ad9b3fea40d4db567cae56
docfiles size=43
texmf-dist/doc/man/man1/pdfjam.1
texmf-dist/doc/man/man1/pdfjam.man1.pdf
@@ -229626,9 +229627,7 @@ docfiles size=43
texmf-dist/doc/support/pdfjam/tests.zip
runfiles size=11
texmf-dist/scripts/pdfjam/pdfjam
-catalogue-contact-bugs https://github.com/DavidFirth/pdfjam/issues
-catalogue-contact-home https://github.com/DavidFirth/pdfjam
-catalogue-contact-repository https://github.com/DavidFirth/pdfjam
+catalogue-contact-repository https://github.com/rrthomas/pdfjam
catalogue-ctan /support/pdfjam
catalogue-license gpl2+
catalogue-topics pdfprocess
@@ -232332,7 +232331,7 @@ binfiles arch=x86_64-solaris size=2
name pgf
category Package
-revision 56512
+revision 56991
shortdesc Create PostScript and PDF graphics in TeX
relocated 1
longdesc PGF is a macro package for creating graphics. It is platform-
@@ -232349,11 +232348,11 @@ depend graphics
depend ms
depend pdftexcmds
depend xcolor
-containersize 716528
-containerchecksum 7c60057a60eb038aec5df5db9695ded7e5397666ad9f7fab62bc5ebb975dcf989708f0bbc1cb84a64319136f88b4b1178de3fc7d2e1ad23bace4501e4f0de100
-doccontainersize 10705980
-doccontainerchecksum b9dcdabfe05ec6663871666e4aad38a6d60933cab0d9b0d3d2af1e119335cdfcf4c8179c350340bf83cf2839f96a080edc675adc6d876e6594813d50381f025c
-docfiles size=4016
+containersize 716816
+containerchecksum 8871a795bc4a742d4c4061bee3cf2a00e488fac2eb05154e24afbc57e3d3029e3a6f1dfafc0b7f7279ee61066294dc217922ad377ecdddecee83ef55b3f1b3b4
+doccontainersize 10711840
+doccontainerchecksum f7e0bba11562f4a7e2348c8764c87fee04be540b5915afbb3856cb4e7e2b4f17eb4706ca7c945ed8609339aa5e6ed6bf0395fdb631a565c99622cbeb0b12ee5b
+docfiles size=4019
RELOC/doc/generic/pgf/AUTHORS
RELOC/doc/generic/pgf/ChangeLog
RELOC/doc/generic/pgf/FILES
@@ -232706,7 +232705,7 @@ docfiles size=4016
RELOC/doc/generic/pgf/version-for-xetex/en/plots/pgfplotgnuplot-example.table
RELOC/doc/generic/pgf/version-for-xetex/pgfmanual-xetex.cfg
srccontainersize 33484
-srccontainerchecksum 48b1b38739d9c7e18a5e363ea92f26e0b786f4f1053f5f9dae9dcee27521a945cc7c7f31d626099c1933626c62e786f9d228463501026e9d87bedd38e21847b8
+srccontainerchecksum 6ba78e4c67424640d5108a206a55183dd38925984d8c2906aadb59bd390e8f3ed330cfe910ec431f1dc3f77f20ca92e79d0f92fb1aa1fca026e0f8ee1d6b7dfa
srcfiles size=94
RELOC/source/generic/pgf/c/INSTALL
RELOC/source/generic/pgf/c/Makefile
@@ -233280,8 +233279,8 @@ catalogue-contact-repository https://github.com/pgf-tikz/pgf
catalogue-contact-support https://tug.org/mailman/listinfo/pgf-tikz
catalogue-ctan /graphics/pgf/base
catalogue-license lppl1.3c gpl2 fdl
-catalogue-topics pgf-tikz graphics-in-tex
-catalogue-version 3.1.6a
+catalogue-topics graphics pgf-tikz graphics-in-tex
+catalogue-version 3.1.7
name pgf-blur
category Package
@@ -281802,7 +281801,7 @@ binfiles arch=x86_64-solaris size=1
name tex4ht
category Package
-revision 56978
+revision 56988
shortdesc Convert (La)TeX to HTML/XML
longdesc A converter from TeX and LaTeX to SGML-based formats such as
longdesc (X)HTML, MathML, OpenDocument, and DocBook, providing a
@@ -281817,10 +281816,10 @@ longdesc restricted-syntax systems such as hyperlatex and gellmu. Note
longdesc that CTAN no longer holds the definitive sources of the
longdesc package: see the 'Readme' file.
depend tex4ht.ARCH
-containersize 897220
-containerchecksum 23432b87f97a96d58604004186b95f91de87dce12bb6c9059434a729db729a077fcae5392ad478663fc06a01fe44eb36427f61365b7f1a8375fee734bb94e9f2
+containersize 897112
+containerchecksum d66a40d3671aa0b837a13327557690aeb48978c3d6e857b075bfa57019e79fa6906665b0e08a44617590b0c25c1c349101b45cd4545543bbdb7d5aae944d5c7c
doccontainersize 136160
-doccontainerchecksum a9e4b8e7a4b4bf04140abf0dfdd76329e88cb2479be9b6e0b9903a0be6e871a488291979698652347bca71c9af3eab375179833bb3ba251446668f8504228cc2
+doccontainerchecksum 07f8ee72b2d67fb3e58ff5dce0781e259e6a331f8cb781285a87e938da3900785d85ff304c934733aa44f5d489d5c5c0fa2705e660c8afa5c441e688ae8389c3
docfiles size=259
texmf-dist/doc/generic/tex4ht/Makefile
texmf-dist/doc/generic/tex4ht/TeX4ht-doc.tex
@@ -290482,7 +290481,7 @@ docfiles size=368
name texlive-scripts
category TLCore
-revision 56975
+revision 56986
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.
@@ -290490,10 +290489,10 @@ depend texlive-scripts.ARCH
depend texlive.infra
execute addMap mathpple.map
postaction shortcut type=menu name="TeX Live command-line" cmd=TEXDIR/tlpkg/installer/tl-cmd.bat
-containersize 131936
-containerchecksum f6b6448a241443dae6e8ac476bdb369f837d69c33d7894adcd870ac3e99c4f7206c62c37267ddb1e977ff51002ef7ccf0890fc073f036222e9d868f4da0401f6
+containersize 132064
+containerchecksum 36bffd8f5426036074ef656bc6202dd3200f791704482e28ca872096875f39545565fcb5c7a780525918b56244fba0a401add73451c138cc83e4dff953c35c53
doccontainersize 218656
-doccontainerchecksum fb2cd7fcbf0c237545e1f9a1a4bffd6d4824304dcb8977f080650ccf8e01ab7162af9416dcf73e1a4f1a5174dc81c0710adf2e181aea8488aafd9db759502d32
+doccontainerchecksum 98c7bc87cd85b01f312e9170088b42422496648fcfff365bc97634633291f8e538de30168948b22a015dc64de97f5aba3033085f900af6470de4ce349a9095dc
docfiles size=141
texmf-dist/doc/man/man1/fmtutil-sys.1
texmf-dist/doc/man/man1/fmtutil-sys.man1.pdf
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5 b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
index d15612f3ad..b68d006623 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
@@ -1 +1 @@
-e26395a9112f6692ecfcd9af6d5154eb texlive.tlpdb
+4aaa8c256fae9f50de0af9db9f606515 texlive.tlpdb
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512 b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
index a777df404f..f7035d41ab 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
@@ -1 +1 @@
-e9bcd9e10864ffbce430f95d8eccf7be80e5fc85bdf2dd4c6f3845b628d1913b33c378e5d381f041dddfbbc1cb57ad951a147ba6cd3ebaa6a7c1b9f0b04caef7 texlive.tlpdb
+cfb7d27798b38802cb561e801babc30b698d16023ff708b49a11fb854e67660de80094f6a152933b4702c48a4db044e3acdff7d37dd31ca26847d3032c4927a7 texlive.tlpdb
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
index dfbf258c6a..0e48e08130 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
@@ -1,10 +1,10 @@
-----BEGIN PGP SIGNATURE-----
-iQEcBAEBCgAGBQJfuwj5AAoJEEzhh34ZQ4xw7n0H/jXLOCrxOUPqv7MADH32rbX+
-pPjZZMTP3ql2N8S5Pv0EqPGLrbDeFI/Ke5G5+evgk0qxiXtM+DwKBnPLSB2tEXXB
-Czy9CC7fgji2TwAUs4RUcDTzJ174JchPemwQgvJFV2gRxagUMAE1f9QyioKEgMKk
-ShBrlcOqS4fHJRD416gI84ud2iDAp1S1KSjUl08IM56UWV45f9+BSe8bE0WXSYHP
-WBT3E2agt4bw/YNFlc0yAXnqqIalBo7QyUuf6Cxjnmsfho2yQvrcpjjhUBgTW9HW
-eGqyXvtqSjUqlDf9a0pl9iDdO2C1e4uvHHbB/rC21Q27wPbtmL/cIywEkUaH5e8=
-=g3IW
+iQEcBAEBCgAGBQJfvFrQAAoJEEzhh34ZQ4xwbbQIAJHllhsdD7SN5+KPWE20IBn0
+l85SbjoKv0ia557wkK/km446nY0pFAgvAbYOLoqKq4OVDx+S4OuSpWOlnXDFmqqi
+AVbv0IPrq6yH/1+fqfWFHqD3IIwJY3YE5jMX7XD0R7FNWXfx6lSuB8ONyRA8Fg2h
+JccMxBwbQjv5YJA5XQeQTkE7pg/iOQNN/5A90NAz4xk944oN8KdD7319J1BD81uU
+Tm9uMIuXt1NnYwPAyOBmsEBXDley3hbv0myP18e86kn6ty/1eUaTgZjS7AJkqE7S
+alejCJWYEd/OW/lmFXdvvEBichnOZVP03RFz0uX5DkNmJQ3LZz5kHqMVSeGJBlc=
+=CjBr
-----END PGP SIGNATURE-----
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
index 97018392e5..5447195ec0 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
Binary files differ
diff --git a/systems/unix/tex-fpc/MFT/iby/README b/systems/unix/tex-fpc/MFT/iby/README
index 802aae4137..190ce62dca 100644
--- a/systems/unix/tex-fpc/MFT/iby/README
+++ b/systems/unix/tex-fpc/MFT/iby/README
@@ -1,18 +1,21 @@
This directory contains files that help installing an ancient Greek
-font in TeX-GPC. The font includes a full set of diacritical marks,
+font in TeX-FPC. The font includes a full set of diacritical marks,
the preclassic letters digamma, quoppa and sampi, and the lunatic
variant of sigma.
The font was originally cut by Firmin Didot(*1764, +1836), put into
METAFONT files by Silvio Levy in 1987 and improved by Pierre A. MacKay,
-the author of Ibycus4. Here I used version 4.5 as of
-2004-10-27.
+the author of Ibycus4. Here I used version 4.5 as of 2004-10-27.
Preparation:
------------
-Get the packages ibygrk and levy from CTAN:fonts/greek and copy
-files from levy and ibygrk directories into this directory, with
-the shellscripts getlevy and getiby.
+Get the packages ibygrk and levy from CTAN:fonts/greek and unzip them
+in the MFT directory, so ibygrk and levy are siblings to iby.
+ftp ftp://tug.org/tex-archive/fonts/greek/levy.zip
+ftp ftp://tug.org/tex-archive/fonts/greek/ibygrk.zip
+
+Copy files from the levy and ibygrk directories into this directory,
+with the shell scripts getlevy and getiby.
Link METAFONT's and TeX's master directories to this directory, so
you can run mf and tex from here. Make sure MFinputs contains
@@ -82,6 +85,15 @@ guillemets << >>
Look at test.tex and sappho.tex for examples.
+If you get messages like that
+ Font \ninegrk=fibr84 at 9.0pt not loaded: Not enough room left.
+you want to enlarge TeX's memory.
+Compile TeX with statistics turned on, set \tracingstats=1
+and observe the statistics at the end. Then you might change the
+constant in tex.p, compile with
+ fpc -Fasysutils,baseunix,unix tex.p
+and try with the bigger tex.
+
Installing the Type 1 fonts in teTeX3.0:
----------------------------------------
List the search directory with `kpsewhich -show-path=.pfb'
@@ -95,4 +107,6 @@ Finally I added the command line option `-u +iby' to dvips
in the dvipdf script.
Aug. 2008
+-
+Nov. 2020
Wolfgang Helbig
diff --git a/systems/unix/tex-fpc/MFT/iby/agr.tex b/systems/unix/tex-fpc/MFT/iby/agr.tex
index 038f6a94bd..c8828880a2 100644
--- a/systems/unix/tex-fpc/MFT/iby/agr.tex
+++ b/systems/unix/tex-fpc/MFT/iby/agr.tex
@@ -1,2 +1,2 @@
-\input ibycusps
+\input ibycus4
\setgreek10/12
diff --git a/systems/unix/tex-fpc/MFT/iby/getiby b/systems/unix/tex-fpc/MFT/iby/getiby
index 23f2b7724a..f5b92e8f6b 100644..100755
--- a/systems/unix/tex-fpc/MFT/iby/getiby
+++ b/systems/unix/tex-fpc/MFT/iby/getiby
@@ -6,12 +6,16 @@ abary4.mf version4.mf ubary4.mf sampi4.mf obary4.mf koppa4.mf \
ibyupr4.mf ibypnct4.mf ibylwr4.mf ibylig4.mf ibycus4.mf ibyacc4.mf \
ibary4.mf hbary4.mf fibr849.mf fibr848.mf fibr84.mf fibo849.mf \
fibo848.mf fibo84.mf fibb849.mf fibb848.mf fibb84.mf ebary4.mf \
-digamma4.mf cigma4.mf wbary4.mf gen_acc.mf graccent.mf grbase.mf
+digamma4.mf cigma4.mf wbary4.mf ibycus4.map
do cp -p $IBY/fonts/source/public/ibycus4/$f .
done
for f in \
pssetiby.tex tlgsqq.tex setiby4.tex version4.tex ibycusps.tex \
-ibycus4.tex iby4extr.tex psibycus.tex iby4text.tex
+ibycus4.tex iby4extr.tex
do cp -p $IBY/tex/generic/ibycus4/$f .
done
+
+for f in psibycus.tex iby4text.tex
+do cp -p $IBY/doc/generic/ibycus4/$f .
+done
diff --git a/systems/unix/tex-fpc/MFT/iby/getlevy b/systems/unix/tex-fpc/MFT/iby/getlevy
index 899e201492..69fc432f80 100755
--- a/systems/unix/tex-fpc/MFT/iby/getlevy
+++ b/systems/unix/tex-fpc/MFT/iby/getlevy
@@ -3,6 +3,7 @@ LEVY=../levy
for f in \
a.mf b.mf d.mf e.mf f.mf g.mf h.mf i.mf j.mf k.mf \
l.mf m.mf n.mf o.mf p.mf q.mf r.mf s.mf t.mf u.mf \
-w.mf x.mf y.mf z.mf gen_sigma.mf grpunct.mf grbase.mf graccent.mf
+w.mf x.mf y.mf z.mf gen_sigma.mf grpunct.mf grbase.mf graccent.mf \
+gen_acc.mf
do cp -p $LEVY/$f .
done
diff --git a/systems/unix/tex-fpc/MFT/iby/ibymacros b/systems/unix/tex-fpc/MFT/iby/ibymacros
index fc64ea0f6e..3af54083e4 100755
--- a/systems/unix/tex-fpc/MFT/iby/ibymacros
+++ b/systems/unix/tex-fpc/MFT/iby/ibymacros
@@ -1,4 +1,4 @@
-# install tex macros for ibycus4 TeX-GPC
+# install tex macros for ibycus4 TeX-FPC
for f in \
pssetiby.tex tlgsqq.tex setiby4.tex version4.tex ibycusps.tex \
ibycus4.tex iby4extr.tex psibycus.tex iby4text.tex agr.tex ibycus4.map
diff --git a/systems/unix/tex-fpc/MFT/iby/sappho.tex b/systems/unix/tex-fpc/MFT/iby/sappho.tex
index 861f5d682f..d097f819cc 100644
--- a/systems/unix/tex-fpc/MFT/iby/sappho.tex
+++ b/systems/unix/tex-fpc/MFT/iby/sappho.tex
@@ -1,7 +1,7 @@
% Ein Beispiel fuer die Benutzung des altgriechischen Fonts:
\hsize 4in
-\input ibycusps
-\setgreek10/12
+\input ibycus4
+\setgreek12/14
\GK
\obeylines
De'duke me`n a) sela'nna
@@ -18,7 +18,7 @@ ga=n e)pi` pai=san.
\medskip
-)'Espere, pa'nta fe'reis, o)'sa fai'nolis e)ske'das' Au)'ws;
+('Espere, pa'nta fe'reis, o)'sa fai'nolis e)ske'das' Au)'ws;
fe'reis o)'in,
fe'reis ai)=ga,
fe'reis a)'pu ma'teri pai=da.
diff --git a/systems/unix/tex-fpc/MFT/logmacfonts b/systems/unix/tex-fpc/MFT/logmacfonts
new file mode 100755
index 0000000000..24c12db460
--- /dev/null
+++ b/systems/unix/tex-fpc/MFT/logmacfonts
@@ -0,0 +1,3 @@
+# fonts for logmac
+mkfont cmsltt9
+mkfont logosl9
diff --git a/systems/unix/tex-fpc/MFT/manfonts b/systems/unix/tex-fpc/MFT/manfonts
index e98538738b..ba37849e82 100755
--- a/systems/unix/tex-fpc/MFT/manfonts
+++ b/systems/unix/tex-fpc/MFT/manfonts
@@ -1,7 +1,9 @@
mkfont cmtex10
+mkfont cmssi9
mkfont cminch
mkfont cmssdc10 4
mkpkfont cmr5 2
mkfont cmman # font used for miscellaneous Computer Modern variations
# from ctan:/systems/knuth/local/mf/cmman.mf
mkfont random # from ctan:/systems/knuth/local/lib/random.mf
+mkfont cmss9
diff --git a/systems/unix/tex-fpc/MFT/texwebfonts b/systems/unix/tex-fpc/MFT/texwebfonts
deleted file mode 100755
index 883b186bb1..0000000000
--- a/systems/unix/tex-fpc/MFT/texwebfonts
+++ /dev/null
@@ -1,2 +0,0 @@
-# font used tex.tex
-mkfont logo10 # font used for the METAFONT logo
diff --git a/systems/unix/tex-fpc/MFT/webfonts b/systems/unix/tex-fpc/MFT/webfonts
index 86676e2c70..86676e2c70 100644..100755
--- a/systems/unix/tex-fpc/MFT/webfonts
+++ b/systems/unix/tex-fpc/MFT/webfonts
diff --git a/systems/unix/tex-fpc/README b/systems/unix/tex-fpc/README
index 4d62296690..b227918699 100644
--- a/systems/unix/tex-fpc/README
+++ b/systems/unix/tex-fpc/README
@@ -1,35 +1,57 @@
-2019-03-04
+TeX-FPC, second edition, 2020-11-24
This directory contains change files for Donald E. Knuth's suite
-of TeX related programs. The change files (.ch) and Don Knuth's
-WEB files (.web) from January 2014 are the key components of a
-construction kit for "TeX-FPC"---a TeX system which is based on
-the Free Pascal Compiler (FPC) and runs in a Unix environment. It's
-by magnitudes smaller than other TeX distributions.
+of TeX related programs. The change files (.ch) and Don Knuth's WEB
+files (.web) from January 2014 are the key components of a construction
+kit for "TeX-FPC"---a complete TeX system based on the Free Pascal
+Compiler (FPC), and running in any Unix environment.
These building bricks are glued together by shell scripts in
the---guess where---shell subdirectory.
-The MFT directory contains shell scripts for installing fonts
-(xxxfonts), and the directory iby shows how to install fonts
-with TeX-FPC. In this case a polytonic Greek font, suited for ancient
-Greek texts.
+The file tex-fpc.pdf shows how and why TeX-FPC differs from the original.
+It was produced by two command lines:
+ $ wve tex.web tex.ch
+ $ dvipdf tex.dvi
-The directories dvipsnk and xdvi show how to install Tom Rokicki's
-dvips and Paul Vojta's xdvi.
-If your printer does not accept postscript, you might want to install
-ghostscript, which converts postscript to the language of you printer or
-to pdf. Use ghostscripts dvipdf to convert ps to pdf.
+The MFT directory contains shell scripts to create fonts (xxxfonts).
+Its subdirectory iby shows how to add a font to TeX-FPC. In this
+case a polytonic Greek font, suited for ancient Greek texts.
-TeX-FPC replaces the famous and beautiful TeX-GPC. The GNU Pascal Compiler
-is not supported on Linux, the BSDs and OS X. Free Pascal is chosen
-not because it is the best alternative but because it is the only
-alternative.
-In FPC 3.0.4 I spotted to errors: See
-0035136: The function EOF does not comply to ISO Pascal
-0035066: fpc says "cannot determine which overloaded function to call"
-at bugs.freepascal.org
+The directories dvips and xdvi help to get, compile and install Tom
+Rokicki's dvips and Paul Vojta's xdvi.
+Likewise the directory mp for John Hobby's METAPOST.
+
+The directory tech demonstrates how to build a TeX system that
+supports the german language.
+
+And the ch.ch directory contains change files for change files.
+
+Requirements:
+============
+TeX-FPC is liberal in what it accepts:
+You will succeed with any flavor of the Unix operating system.
+In fact, I only used stuff from:
+ Kernighan, Pike: The Unix programming environment (1984)
+I have to admit, now and then I used vi instead of ed, the Unix Standard
+Editor.
+If it doesn't work on your system, it is not Unix, not even remotely so.
+
+Any version of (FPC) from 3.0.0 on will suffice. To compile TeX and
+METAFONT, three additional units are needed:
+SysUtils, BaseUnix, Unix
+They have to be specified on the command line:
+ $ fpc -Fasysutils,baseunix,unix
+
+To build the DVI-driver xdvi and dvips a C-compiler is necessary.
+To run xdvi, you need X-Window and to print your books, you either
+need a postscript printer or you use ghostscript to translate
+postscript to your printers language.
+
+Everything you need existed in the mid eighties of the last century.
+All the great books produced with TeX demonstrates how much can be
+done with how little.
Overview:
=========
@@ -39,7 +61,7 @@ File formats and their documentation:
WEB files:
.web WEB programs, "The WEB System of Structured Documentation" (webman.tex)
.ch Change files for WEB programs (patches to be applied to .web files)
-.p Free Pascal source
+.p Pascal source
.pool String pool, contains the string constants of a WEB program.
@@ -57,66 +79,84 @@ METAFONT files:
TeX files:
.tex TeX source, "The TeXbook" (texbook.tex)
.fmt Format file, a compact representation of TeX's memory.
- contains the string pool (tex.pool) and preloaded .tfm files.
+ contains the string pool (tex.pool) and fifty .tfm files.
.dvi device independent file, "TeX: The Program" (tex.web), part 31
.log a log file
-
+Dependencies of files and programs:
+File depends on
+---- ----------
+xxx xxx.p
+xxx.p xxx.web, xxx.ch
+tex.pool strings in tex.web or tex.ch
+plain.fmt plain.tex
+ .tfm files (cf. plain.log)
+ hyphen.tex
+ tex.pool
+mf.pool strings in mf.web or mf.ch
+plain.base plain.mf
+ local.mf
+ mf.pool
+
+Program depends on
+------- ----------
+initex TeXformats/tex.pool
+tex TeXformats/tex.fmt
+inimf MFbases/mf.pool
+mf MFbases/plain.base
Files and their processors:
--------------------------
WEB:
tangle
- .web, .ch --------> .p, .pool
+ x.web, x.ch --------> x.p, x.pool
fpc
x.p --------> x
tgl
- x.web, x.ch --------> x (linking the last two steps)
+ x.web, x.ch --------> x (combines the last two steps, no pool)
itgl
- x.web, x.ch --------> x, inix.p, .pool (links the first two steps
- and keeps the pascal sources)
+ x.web, x.ch --------> inix.p, inix, x.pool (like tgl, but with pool)
weave
- .web, .ch --------> .tex (Description of the program)
+ .web, .ch --------> .tex (description of the program)
wve
.web, .ch --------> .dvi (linking the above step and tex)
METAFONT:
- inimf
- plain.mf --------> plain.base
+ inimf
+ mf.pool, local.mf plain.mf --------> plain.base
- mf
- .mf --------> .nnngf, tfm
+ mf
+ plain.base, .mf --------> .nnngf, .tfm
- gftopk
- .nnngf --------> .nnnpk
+ gftopk
+ .nnngf --------> .nnnpk
- mkfont
- .mf --------> TeXfonts/.tfm, PKfonts/.nnnpk
+ mkfont
+ .mf --------> TeXfonts/.tfm, PKfonts/.nnnpk
- mkpkfont
- .mf --------> PKfonts/.nnnpk
+ mkpkfont
+ .mf --------> PKfonts/.nnnpk
TeX:
- initex
- .tfm, plain.tex --------> plain.fmt
-
- tex
- [ .tfm ], .tex --------> .dvi
+ initex
+ tex.pool, hyphen.tex, plain.tex, .tfm --------> plain.fmt
+ tex
+ plain.fmt, .tfm, .tex --------> .dvi
DVI drivers:
- dvips
- .dvi, .nnnpk --------> .ps, PostScript printer
+ dvips
+ .tfm, .nnnpk, .dvi --------> .ps, PostScript printer
- xdvi
- .dvi, .nnnpk --------> X-Window
+ xdvi
+ .tfm, .nnnpk, .dvi --------> X-Window
File names:
@@ -131,8 +171,8 @@ directory:
PKfonts .nnnpk
DVIPSconf .pro, .ps, .map (Header and configuration files for dvips)
-I created one set of "master directories" and used symbolic links
-to my working directory like:
+Create one set of "master directories" and used symbolic links
+to your working directory like:
ln -s ~/TeXformats .
@@ -142,23 +182,21 @@ of your master directories.
TeX-FPC's path searching applies to file names without directory
components, i.e. without a /:
- .tex local directory and then TeXinputs
- .mf local directory and then MFinputs
- .tfm TeXfonts
-
-Depending on the context, TeX-FPC programs append ".mf", ".tex",
-or ".tfm" to file names without extensions.
-
-builtin file names:
-------------------
-TeXformats/tex.pool string pool for tex, (in initex)
-MFbases/mf.pool string pool for mf, (in inimf)
-TeXformats/plain.fmt format file for Plain TeX, (in tex)
-MFbases/plain.base base file for Plain METAFONT, (in mf)
+ .tex local directory and then TeXinputs
+ .mf local directory and then MFinputs
+ .tfm local directory and the TeXfonts
+ .fmt local directory and then TeXformats
+ plain.fmt hard coded (!) TeXformats/plain.fmt
+ .base local directory and MFbases
+ plain.base hard coded (!) MFbases/plain.base
+ .pool hard coded (!) in TeXformats, MFbases
+
+Depending on the context, TeX-FPC programs append ".mf", ".tex", ".fmt",
+".base" or ".tfm" to file names without extensions.
Fonts in TeX-FPC:
----------------
-For each font TeX needs one .tfm file. For each font and
+For each font, TeX needs one .tfm file. For each font and
resolution/magnification the DVI drivers need one .nnnpk file.
The script mkfont will install both a .tfm and an .nnnpk file, the
script mkpkfont will install an .nnnpk file only. You specify the
@@ -170,9 +208,9 @@ Running TeX-FPC
===============
Missing files
-------------
-Search missing macro files like (webmac.tex) in Knuth's lib
+Search missing macro files like webmac.tex in Knuth's lib
directory and copy them to the working directory or to TeXinputs.
-My change files import webmac-fpc.tex; move it to TeXinputs.
+The .ch files import webmac-fpc.tex; move it to TeXinputs.
Search the sources of missing fonts in the lib directory (.mf),
copy them to MFinputs and use the scripts mkfont or mkpkfont to
@@ -185,104 +223,121 @@ command line
creates a list of the font names used by plain.tex. I edited
plainfonts to convert it to a shell script that creates all fonts
of the plain format. In the MFT directory you'll find other examples.
+If the generation of a font failed, the failing command is written
+to the file trouble in the working directory. You might want to fix the
+error and rerun the file trouble, (sh trouble).
Installing new fonts from CTAN
------------------------------
The directory MFT/iby contains instructions on how to install a font
from CTAN, in this case ibygrk to typeset polytonic ancient Greek.
-Printing the documentation
---------------------------
+Printing the web-programs
+-------------------------
The weave program generates an xxx.tex file from an xxx.web file
-and a possibly empty change file. Use tex to generate an xxx.dvi
-file. This is done by the script wve. For example, to view the
-description of TeX-FPC, use
+and a xxx.ch file. Use tex to generate an xxx.dvi file. This is
+done by the script wve. For example, to view the description of
+TeX-FPC, use
wve tex.web tex.ch && xdvi tex
-The web-macros need another font. Use webfonts to install it.
-The scripts texwebfonts installs additional fonts for tex.tex,
-and mfwebfonts for mf.tex.
+The web-macros need another font. Run MFT/webfonts to install it.
+And run MFT/mfwebfonts for mf.tex.
+The file tex-fpc.pdf provides the doc independent of an installed
+TeX system. It describes how I adopted TeX to FPC, the features and
+and differences of TeX-FPC.
TRIP TRAP
---------
-Both tests might not be passed by TeX-FPC: TeX and METAFONT trim
-trailing spaces from input lines for compatibility with IBM's
-punched cards. TeX-FPC's programs don't.
+Both tests are passed by TeX-FPC. See the trip and the trap directories..
-
-Installing TeX-FPC:
-===================
+Hints to build and install TeX-FPC from Knuth's sources.
+========================================================
Get Knuth's source files:
------------------------
-Make a stage directory, say tex-fpc, which mirrors Knuth's distribution
-from
-
+Get Knuth's distribution from
ftp://ftp.dante.de/pub/tex/systems/knuth/dist.zip
+At the DANTE server, passive ftp mode does not work. Try
+ tug.org/tex-archive/systems/knuth
+or ftp ftp.cs.stanford.edu/tex/dist
This gives you the WEB files, manuals, macros and some .mf files.
-At least you need the directories lib, tex, mfware, mf and web.
+At least you need the subdirectories lib, tex, mfware, mf and web.
You need another set of source files, namely the METAFONT source
files (.mf) for Knuth's font Computer Modern.
Copy the .mf files from
ftp://ftp.dante.de/pub/tex/fonts/cm/mf/
+or ftp.cs.stanford.edu/tex/fonts/
to MFinputs.
-And Copy the .mf files from the lib directory to MFinputs.
+And copy the .mf files from the lib directory to MFinputs.
cp -p lib/*.mf MFinputs
-I prefer the DANTE server, because that server preserves modification
-times. This is not true with other CTAN mirrors.
+All path names are given relative to directories of Knuth's distribution.
Building from WEB sources, (xxx.web and xxx.ch --> xxx, xxx.pool)
----------------------------------------------------------------
The general procedure to build a binary xxx from its WEB files is:
Move xxx.ch to the directory that contains xxx.web, apply tangle
to xxx.web and xxx.ch to generate xxx.p and xxx.pool, and compile the
-Pascal source with gpc. The command line
+Pascal source with fpc. The command line
tgl xxx.web xxx.ch
will do all that. It produces xxx that you need to move to your binary
-directory.
+directory. Note tgl will not create xxx.pool, since this is only needed
+by the ini-versions that are to be built by itgl.
+
+METAFONT and TEX come in two versions: An initialization version
+(initex, inimf) and a production version (tex, mf). To build the
+initialization version, edit the change file to deactivate the change
+blocks marked by "ini", and use itgl. To build the production version,
+activate the change blocks marked by "ini" and use tgl.
+
+A change block is active, if each of the web commands @x, @y and
+@z are at the start of their lines, inactive if none of the web
+commands are at the start of their lines and defect otherwise.
+See webman.tex, section~11. for details on change files.
Step by step procedure to bootstrap TeX-FPC
-------------------------------------------
-Install Free Pascal Compiler from www.freepascal.org.
+Install the Free Pascal Compiler
+ https://freepascal.org/download.html
-Create the master directories (see above)
+Create the master directories (see above).
-copy the shell scripts from the tex-fpc/shell to your binary direcory.
+Copy the shell scripts from the tex-fpc/shell to your binary directory.
-0. Make tangle tangle.p --> tangle
-------------------------------------------------------------------------
+0. Compile tangle tangle.p --> tangle
+----------------------------------------------------------------------------
Compile tangle.p (fpc tangle.p) and move tangle to your
binary directory.
-1. Make inimf and initex mf.web, mf.ch --> inimf, inimf.p, MFbases/mf.pool
- tex.web, tex.ch --> initex,initex.p TeXformats/tex.pool
-Make sure, mf.ch and tex.ch are prepared to produce ini versions of
-tex and mf.
-------------------------------------------------------------------------
+1. Make inimf and initex
+------------------------
+ mf.web, mf.ch --> inimf, inimf.p, mf.pool
+ ------------------------------------------
+
+ tex.web, tex.ch --> initex,initex.p tex.pool
+ --------------------------------------------
+
+Make sure, the ini-change blocks in mf.ch and tex.ch are deactivated.
Build the ini-programs and save them as initex, resp. inimf.
-Move tex.pool to TeXformats and mf.pool to MFbases, use itgl instead
-of tgl to keep inimf.p and initex.p.
+Save tex.pool in TeXformats and mf.pool in MFbases, use itgl instead
+of tgl to keep inimf.p and initex.p and the .pool files.
2. Make plain.base lib/plain.mf --> MFbases/plain.base
------------------------------------------------------------------------
Go to the directory tex-fpc/mf and use inimf to create plain.base.
The file local.mf contains mode definitions for my HP LaserJet 1320
-printer. Adapt local.mf to your printer and then type
- inimf ../lib/plain input ../MFT/local dump
+printer. Adapt local.mf to your printer and copy it to the mf directory.
+ inimf ../lib/plain input local dump
Move plain.base to MFbases.
3. Make mf mf.web, mf.ch --> mf
------------------------------------------------------------------------
-Edit mf.ch and look for the string @x inimf that introduces a change
-block. This change block is commented out, since it is shifted
-right. Shift left this block to uncomment it. This way mf.ch is
-changed to build a production version.
+Activate the the inimf-change block in mf.ch and build it with tgl.
4. Make gftopk gftopk.web, gftopk.ch --> gftopk
------------------------------------------------------------------------
@@ -291,13 +346,13 @@ packed font files (.nnnpk) in the next step.
5. Install fonts: MFinputs/*.mf --> TeXfonts/*.tfm, PKfonts/*.pk
------------------------------------------------------------------------
-Prepare tex-fpc to run both METAFONT (mk_MF_dir) and TeX (mk_TeX_dir)
-and run the shell script MFT/plainfonts from there.
+Prepare the stage directory to run both METAFONT (mk_MF_dir) and
+TeX (mk_TeX_dir) and run the shell script MFT/plainfonts from there.
Check the file trouble that might contain commands that failed.
6. Make plain.fmt lib/plain.tex --> TeXformats/plain.fmt
------------------------------------------------------------------------
-Copy lib/hyphen.tex to TeXinputs and go to the directory tex-fpc/tex
+Copy lib/hyphen.tex to TeXinputs and go to the directory tex
to build plain.fmt.
This command line will do
initex ../lib/plain \\dump # one backslash is consumend by sh!
@@ -305,12 +360,9 @@ Move plain.fmt to TeXformats.
7. Finally build tex tex.web, tex.ch --> tex
------------------------------------------------------------------------
-Change tex.ch for production, and build it with tgl.
+Activate the initex-change block in tex.ch and build it with tgl.
-Enjoy,
-Wolfgang Helbig, Programmierer
+Happy weaving and happy type setting with your system!
+Wolfgang Helbig,
Comments welcome: helbig@mailbox.org
-
-TeX is a trademark of the American Mathematical Society.
-METAFONT is a trademark of Addison Wesley Publishing Company.
diff --git a/systems/unix/tex-fpc/ch.ch/README b/systems/unix/tex-fpc/ch.ch/README
new file mode 100644
index 0000000000..9128823308
--- /dev/null
+++ b/systems/unix/tex-fpc/ch.ch/README
@@ -0,0 +1,19 @@
+These shell scripts invoke ed on .ch files to change change files.
+
+The first line of a change block must start with @x <theme>. All
+lines of a deactivated change block must start with a tab, i.e.
+"shifted right."
+
+Under these preconditions, e.g. the script mkinitex deactivates the block
+marked by @x initex and the script mkprodtex activates the same
+block.
+
+The mk* scripts print the changed lines.
+
+Some ch.ch files, like mkchatty, take one optional parameter.
+"mkchatty" or "mkchatty tex" change tex.ch and "mkchatty mf" changes mf.ch.
+
+These commands are idempotent. Applying twice a change script has
+the same effect as applying it once.
+
+Cf. section 11 of webman.tex for the format of change files.
diff --git a/systems/unix/tex-fpc/ch.ch/mkchatty b/systems/unix/tex-fpc/ch.ch/mkchatty
new file mode 100755
index 0000000000..177baf83e9
--- /dev/null
+++ b/systems/unix/tex-fpc/ch.ch/mkchatty
@@ -0,0 +1,12 @@
+# deactivate chatty blocks. These blocks make tex/mf less chatty.
+case $# in
+1) tm=$1 ;;
+*) tm=tex ;;
+esac
+ed $tm.ch <<'END'
+g/^@x chatty/.,/^@z/s/^/ /\
+?^ @x?,.p
+w
+q
+END
+test $? = 0 || (echo $0 $1 failed ; exit 1)
diff --git a/systems/unix/tex-fpc/ch.ch/mkdebug b/systems/unix/tex-fpc/ch.ch/mkdebug
new file mode 100755
index 0000000000..8402cb7d92
--- /dev/null
+++ b/systems/unix/tex-fpc/ch.ch/mkdebug
@@ -0,0 +1,12 @@
+# activate debug block to turn debugging on. Takes mf parameter.
+case $# in
+1) tm=$1 ;;
+*) tm=tex ;;
+esac
+ed $tm.ch <<'END'
+g/^ @x debug/.,/^ @z/s/^ //\
+?^@x?,.p
+w
+q
+END
+test $? = 0 || (echo $0 $1 failed ; exit 1)
diff --git a/systems/unix/tex-fpc/ch.ch/mkini b/systems/unix/tex-fpc/ch.ch/mkini
new file mode 100755
index 0000000000..91f7862502
--- /dev/null
+++ b/systems/unix/tex-fpc/ch.ch/mkini
@@ -0,0 +1,12 @@
+# deactivate initex block to make initex or inimf to make inimf
+case $# in
+1) tm=$1 ;;
+*) tm=tex ;;
+esac
+ed $tm.ch <<'END'
+g/^@x ini/.,/^@z/s/^/ /\
+?^ @x?,.p
+w
+q
+END
+test $? = 0 || (echo $0 failed; exit 1)
diff --git a/systems/unix/tex-fpc/ch.ch/mkprod b/systems/unix/tex-fpc/ch.ch/mkprod
new file mode 100755
index 0000000000..79a4180be4
--- /dev/null
+++ b/systems/unix/tex-fpc/ch.ch/mkprod
@@ -0,0 +1,12 @@
+# activate ini block to make prod
+case $# in
+1) tm=$1 ;;
+*) tm=tex ;;
+esac
+ed $tm.ch <<'END'
+g/^ @x ini/.,/^ @z/s/^ //\
+?^@x?,.p
+w
+q
+END
+test $? = 0 || (echo $0 failed; exit 1)
diff --git a/systems/unix/tex-fpc/ch.ch/mkstats b/systems/unix/tex-fpc/ch.ch/mkstats
new file mode 100755
index 0000000000..f2a81c00a3
--- /dev/null
+++ b/systems/unix/tex-fpc/ch.ch/mkstats
@@ -0,0 +1,12 @@
+# activate stats blocks to turn statistics on
+case $# in
+1) tm=$1 ;;
+*) tm=tex ;;
+esac
+ed $tm.ch <<'END'
+g/^ @x stat/.,/^ @z/s/^ //\
+?^@x?,.p
+w
+q
+END
+test $? = 0 || (echo $0 $1 failed ; exit 1)
diff --git a/systems/unix/tex-fpc/ch.ch/mktrap b/systems/unix/tex-fpc/ch.ch/mktrap
new file mode 100755
index 0000000000..dc3b8e7a72
--- /dev/null
+++ b/systems/unix/tex-fpc/ch.ch/mktrap
@@ -0,0 +1,19 @@
+# change change blocks to prepare the trap test
+mkini mf \
+&& mkstats mf\
+&& mkdebug mf\
+&& mkchatty mf\
+&& ed mf.ch <<'END'
+g/^ @x trap/.,/^@z/s/^ //\
+?^@x?,.p
+w
+q
+END
+test $? = 0 \
+&& ed mf.ch <<'END'
+g/^@x part/.,/^@z/s/^/ /\
+?^ @x?,.p
+w
+q
+END
+test $? = 0 || (echo $0 failed ; exit 1)
diff --git a/systems/unix/tex-fpc/ch.ch/mktrip b/systems/unix/tex-fpc/ch.ch/mktrip
new file mode 100755
index 0000000000..b8a8e46d5a
--- /dev/null
+++ b/systems/unix/tex-fpc/ch.ch/mktrip
@@ -0,0 +1,11 @@
+# change change blocks to prepare the trip test
+mkini\
+&& mkstats\
+&& mkchatty\
+&& ed tex.ch <<'END'
+g/^ @x trip/.,/^@z/s/^ //\
+?^@x?,.p
+w
+q
+END
+test $? = 0 || (echo $0 failed; exit 1)
diff --git a/systems/unix/tex-fpc/ch.ch/mkunchatty b/systems/unix/tex-fpc/ch.ch/mkunchatty
new file mode 100755
index 0000000000..64025dacda
--- /dev/null
+++ b/systems/unix/tex-fpc/ch.ch/mkunchatty
@@ -0,0 +1,12 @@
+# activate chatty blocks
+case $# in
+1) tm=$1 ;;
+*) tm=tex ;;
+esac
+ed $tm.ch <<'END'
+g/^ @x chatty/.,/^ @z/s/^ //\
+?^@x?,.p
+w
+q
+END
+test $? = 0 || (echo failed; exit 1)
diff --git a/systems/unix/tex-fpc/ch.ch/mkundebug b/systems/unix/tex-fpc/ch.ch/mkundebug
new file mode 100755
index 0000000000..f0f6c7655e
--- /dev/null
+++ b/systems/unix/tex-fpc/ch.ch/mkundebug
@@ -0,0 +1,12 @@
+# deactivate debug block to turn debugging off.
+case $# in
+1) tm=$1 ;;
+*) tm=tex ;;
+esac
+ed $tm.ch <<'END'
+g/^@x debug/.,/^@z/s/^/ /\
+?^ @x?,.p
+w
+q
+END
+test $? = 0 || (echo $0 $1 failed ; exit 1)
diff --git a/systems/unix/tex-fpc/ch.ch/mkunstats b/systems/unix/tex-fpc/ch.ch/mkunstats
new file mode 100755
index 0000000000..6021be7bef
--- /dev/null
+++ b/systems/unix/tex-fpc/ch.ch/mkunstats
@@ -0,0 +1,12 @@
+# deactivate stats blocks in tex.ch or in mf.ch to turn statistic off.
+case $# in
+1) tm=$1 ;;
+*) tm=tex ;;
+esac
+ed $tm.ch <<'END'
+g/^@x stat/.,/^@z/s/^/ /\
+?^ @x?,.p
+w
+q
+END
+test $? = 0 || (echo $0 $1 failed ; exit 1)
diff --git a/systems/unix/tex-fpc/ch.ch/mkuntrap b/systems/unix/tex-fpc/ch.ch/mkuntrap
new file mode 100755
index 0000000000..926b9663c2
--- /dev/null
+++ b/systems/unix/tex-fpc/ch.ch/mkuntrap
@@ -0,0 +1,17 @@
+# undo some changes made for the trap test
+# deactivate trap blocks
+ed mf.ch <<'END'
+g/^@x trap/.,/^@z/s/^/ /\
+?^ @x?,.p
+w
+q
+END
+# activate part blocks
+test $? = 0 \
+&& ed mf.ch <<'END'
+g/^ @x part/.,/^ @z/s/^ //\
+?^@x?,.p
+w
+q
+END
+test $? = 0 || (echo $0 failed ; exit 1)
diff --git a/systems/unix/tex-fpc/ch.ch/mkuntrip b/systems/unix/tex-fpc/ch.ch/mkuntrip
new file mode 100755
index 0000000000..3e849c9b1c
--- /dev/null
+++ b/systems/unix/tex-fpc/ch.ch/mkuntrip
@@ -0,0 +1,8 @@
+# undo the changes made for trip
+ed tex.ch <<'END'
+g/^@x trip/.,/^@z/s/^/ /\
+?^ @x?,.p
+w
+q
+END
+test $? = 0 || (echo $0 failed; exit 1)
diff --git a/systems/unix/tex-fpc/dvipsnk/Makefile b/systems/unix/tex-fpc/dvips/Makefile
index cbdf300d17..cbdf300d17 100644
--- a/systems/unix/tex-fpc/dvipsnk/Makefile
+++ b/systems/unix/tex-fpc/dvips/Makefile
diff --git a/systems/unix/tex-fpc/dvipsnk/README b/systems/unix/tex-fpc/dvips/README
index 06119ad5e1..06119ad5e1 100644
--- a/systems/unix/tex-fpc/dvipsnk/README
+++ b/systems/unix/tex-fpc/dvips/README
diff --git a/systems/unix/tex-fpc/dvipsnk/afm2tfm.c b/systems/unix/tex-fpc/dvips/afm2tfm.c
index 7be24734a3..7be24734a3 100644
--- a/systems/unix/tex-fpc/dvipsnk/afm2tfm.c
+++ b/systems/unix/tex-fpc/dvips/afm2tfm.c
diff --git a/systems/unix/tex-fpc/dvipsnk/dvipsmanfonts b/systems/unix/tex-fpc/dvips/dvipsmanfonts
index aa55b0d360..aa55b0d360 100644
--- a/systems/unix/tex-fpc/dvipsnk/dvipsmanfonts
+++ b/systems/unix/tex-fpc/dvips/dvipsmanfonts
diff --git a/systems/unix/tex-fpc/dvitype.ch b/systems/unix/tex-fpc/dvitype.ch
new file mode 100644
index 0000000000..7216ae63e0
--- /dev/null
+++ b/systems/unix/tex-fpc/dvitype.ch
@@ -0,0 +1,297 @@
+This is a change file of DVItype for FPC, Wolfgang Helbig, Oct. 2020
+
+[0] About DVItype-FPC
+@x
+\pageno=\contentspagenumber \advance\pageno by 1
+@y
+\pageno=\contentspagenumber \advance\pageno by 1
+\input webmac-fpc
+
+% \let\maybe=\iftrue % uncomment to print changed modules only.
+
+\def\name{\tt DVItype}
+
+\N0\*. About \namefpc.\fi
+This is an adaption of Donald~E. Knuth's \.{DVItype} to the Free Pascal
+Compiler and Unix.
+
+\namefpc\ expects the name of the input file (\.{.dvi}) as the first
+and the name of the output file (\.{.typ} as the second parameter
+on the command line.
+
+\hint
+
+Comments and questions are welcome!
+
+\bigskip
+\address
+@z
+
+[1] Change the banner line
+@x
+@d banner=='This is DVItype, Version 3.6' {printed when the program starts}
+@y
+@d banner=='This is DVItype-FPC, 2nd ed.' {printed when the program starts}
+@z
+
+[2] othercases
+@x
+@d othercases == others: {default for cases not listed explicitly}
+@y
+@d othercases == @+ else {default for cases not listed explicitly}
+@z
+
+[3] filenames from commandline
+@x
+@d print(#)==write(#)
+@d print_ln(#)==write_ln(#)
+
+@p program DVI_type(@!dvi_file,@!output);
+@y
+@d print(#)==write(typ_file, #)
+@d print_ln(#)==write_ln(typ_file, #)
+
+@p @{$MODE@,ISO@}
+@/
+@{$Q+@}
+@/
+@{$R+@}
+@/
+@{$I+@}
+@#
+program DVI_type(@!input, @!output);
+@z
+
+[9] text file.
+@x
+@!text_file=packed file of text_char;
+@y
+@!text_file=text;
+@z
+
+[22] check io_result.
+@x
+@!dvi_file:byte_file; {the stuff we are \.{DVI}typing}
+@!tfm_file:byte_file; {a font metric file}
+@y
+@!dvi_file:byte_file; {the stuff we are \.{DVI}typing}
+@!tfm_file:byte_file; {a font metric file}
+@!tfm_open:boolean; {tfm file is open}
+@!typ_file: text; {output file}
+@z
+
+[23] open dvi file
+@x
+begin reset(dvi_file);
+@y
+begin assign(dvi_file, param_str(1));
+@#
+@{$I-@}
+@#
+io_result; reset(dvi_file);
+if io_result <> 0 then begin
+ write_ln('Could not open dvi file: ', param_str(1));
+ halt(1);
+ end;
+@#
+@{$I+@}
+@#
+@z
+
+[23] open tfm file
+@x
+procedure open_tfm_file; {prepares to read packed bytes in |tfm_file|}
+begin reset(tfm_file,cur_name);
+end;
+@y
+procedure open_tfm_file; {prepares to read packed bytes in |tfm_file|}
+begin
+io_result; assign(tfm_file, cur_name);
+@#
+@{$I-@}
+@#
+reset(tfm_file);
+tfm_open := io_result = 0;
+if not tfm_open then write_ln(cur_name, ' failed to open');
+end;
+@#
+procedure open_typ_file;
+begin
+if paramcount <> 2 then begin
+ write_ln('Usage: ', param_str(0), ' dvi_file typ_file');
+ halt(1);
+ end;
+io_result; assign(typ_file, param_str(2)); rewrite(typ_file);
+if io_result <> 0 then begin
+ write_ln('Could not open type file: ', param_str(2));
+ halt(1);
+ end;
+end;
+@#
+@{$I+@}
+@#
+@z
+
+[24] cur_name is shortstring;
+@x
+@!cur_name:packed array[1..name_length] of char; {external name,
+@y
+@!cur_name: shortstring; {external name,
+@z
+
+
+[25] random file access
+@x
+@p function dvi_length:integer;
+begin set_pos(dvi_file,-1); dvi_length:=cur_pos(dvi_file);
+end;
+@#
+procedure move_to_byte(n:integer);
+begin set_pos(dvi_file,n); cur_loc:=n;
+end;
+@y
+@p function dvi_length:integer;
+begin dvi_length:=file_size(dvi_file);
+end;
+@#
+procedure move_to_byte(n:integer);
+begin seek(dvi_file,n); cur_loc:=n;
+end;
+@z
+
+[43] options
+ @x
+ out_mode:=the_works; max_pages:=1000000; start_vals:=0; start_there[0]:=false;
+ @y
+ out_mode:=2; max_pages:=1000000; start_vals:=9;
+ for i := 0 to 9 do start_there[i] := false;
+ @z
+
+[45] standard io files
+@x
+and |term_out| for terminal output.
+@^system dependencies@>
+
+@<Glob...@>=
+@!buffer:array[0..terminal_line_length] of ASCII_code;
+@!term_in:text_file; {the terminal, considered as an input file}
+@!term_out:text_file; {the terminal, considered as an output file}
+@y
+and |term_out| for terminal output.
+@^system dependencies@>
+@d term_in == input
+@d term_out == output
+@<Glob...@>=
+@!buffer:array[0..terminal_line_length] of ASCII_code;
+@z
+
+[46] no break known to fpc
+@x
+@d update_terminal == break(term_out) {empty the terminal output buffer}
+@y
+@d update_terminal == {empty the terminal output buffer}
+@z
+
+[47] input_ln
+@x
+@p procedure input_ln; {inputs a line from the terminal}
+var k:0..terminal_line_length;
+begin update_terminal; reset(term_in);
+if eoln(term_in) then read_ln(term_in);
+k:=0;
+while (k<terminal_line_length)and not eoln(term_in) do
+ begin buffer[k]:=xord[term_in^]; incr(k); get(term_in);
+ end;
+buffer[k]:=" ";
+end;
+@y
+@p procedure input_ln; {inputs a line from the terminal}
+var k:0..terminal_line_length;
+begin
+k:=0;
+while (k<terminal_line_length) and not eoln do
+ begin buffer[k]:=xord[input^]; incr(k); get(input);
+ end;
+readln;
+buffer[k]:=" ";
+end;
+@z
+
+[62] check if tfm file open.
+@x
+if eof(tfm_file) then
+@y
+if not tfm_open then
+@z
+
+[64] default directory
+@x
+@d default_directory_name=='TeXfonts:' {change this to the correct name}
+@y
+@d default_directory_name=='TeXfonts/' {change this to the correct name}
+@z
+
+[66] lower case letters in Unix
+@x
+for k:=1 to name_length do cur_name[k]:=' ';
+if p=0 then
+ begin for k:=1 to default_directory_name_length do
+ cur_name[k]:=default_directory[k];
+ r:=default_directory_name_length;
+ end
+else r:=0;
+for k:=font_name[nf] to font_name[nf+1]-1 do
+ begin incr(r);
+ if r+4>name_length then
+ abort('DVItype capacity exceeded (max font name length=',
+ name_length:1,')!');
+@.DVItype capacity exceeded...@>
+ if (names[k]>="a")and(names[k]<="z") then
+ cur_name[r]:=xchr[names[k]-@'40]
+ else cur_name[r]:=xchr[names[k]];
+ end;
+cur_name[r+1]:='.'; cur_name[r+2]:='T'; cur_name[r+3]:='F'; cur_name[r+4]:='M'
+@y
+setlength(cur_name, 255);
+if p=0 then
+ begin for k:=1 to default_directory_name_length do
+ cur_name[k]:=default_directory[k];
+ r:=default_directory_name_length;
+ end
+else r:=0;
+for k:=font_name[nf] to font_name[nf+1]-1 do
+ begin incr(r);
+ if r+4>name_length then
+ abort('DVItype capacity exceeded (max font name length=',
+ name_length:1,')!');
+@.DVItype capacity exceeded...@>
+ cur_name[r]:=xchr[names[k]];
+ end;
+cur_name[r+1]:='.'; cur_name[r+2]:='t'; cur_name[r+3]:='f'; cur_name[r+4]:='m'
+;setlength(cur_name, r+4)
+@z
+
+
+[105] premature eof on tfm file
+@x
+while (m=223)and not eof(dvi_file) do m:=get_byte;
+@y
+while (m=223)and not eof(dvi_file) do m:=get_byte;
+inc(cur_loc); {FPC-BUG: eof off by one}
+@z
+[107] open typ file
+@x
+@p begin initialize; {get all variables initialized}
+@y
+@p begin open_typ_file; {initialze prints banner on typ file}
+initialize; {get all variables initialized}
+@z
+
+[107 close type file
+@x
+final_end:end.
+@y
+close(typ_file);
+final_end:end.
+@z
+
diff --git a/systems/unix/tex-fpc/fpcbugs b/systems/unix/tex-fpc/fpcbugs
new file mode 100644
index 0000000000..58162f5678
--- /dev/null
+++ b/systems/unix/tex-fpc/fpcbugs
@@ -0,0 +1,56 @@
+1. for a=4095, b=4096, of subtype [0..65535] (halfword in TeX) fpc
+cannot compile a+b-8192: Can't determine which overloaded function
+to call
+
+2. To fix, I changed the expression to abs(int(a+b-8192)). But
+instead of -1 it evaluates to 1.8e+19 With this bug, the first
+edition of TeX-FPC was distributed. Sorry. In preparation of the
+second edition, I turned on overflow checking. And, this deteced
+the error in mf. Which I fixed then.
+
+3. The program
+{$MODE ISO}
+program p (output);
+var f: file of char;
+begin
+ rewrite(f);
+ f^ := 'a';
+ put(f);
+ reset(f);
+ while not eof(f) do
+ begin
+ writeln(f^); get(f)
+ end;
+end.
+prints nothing when compiled with 3.0.4 and produces a runtime error
+when compiled with 3.2.0:
+a
+Runtime error 100 at $000000010124C479
+ $000000010124C479
+
+3.0.4 eof is true, if the file position is set at the last item of
+the file.
+
+3.2.0 eof is true, if the file position is set past the end of file,
+which complies to Pascal.
+
+4. 3.2.0 reports a run time error 100, which means disk error, when
+get is called at the last item, which does not comply to Pascal.
+
+BTW. I detected no errors of the GNU Pascal Compiler.
+
+5. Text files will be flushed automatically.
+But only, if their name occurs in the program header.
+
+6. Files will be assigned to external files from the command line
+if their name occurs in the program header.
+But only for text files.
+
+The last two half baked features let FPC compile the compiler and
+interpreter of the Pascal-p5 system, which claims to be ISO-Pascal,
+since pcom, pint use only text files whose names appear in the
+program header.
+
+TeX-FPC does not depend on one of the last to features, i. e.
+TeX-FPC's programs flush (or close) text-files always and assign
+external file names always, since it is simply easier to code.
diff --git a/systems/unix/tex-fpc/mfware/gftopk.ch b/systems/unix/tex-fpc/gftopk.ch
index ed7f0feaa2..2732b87db7 100644
--- a/systems/unix/tex-fpc/mfware/gftopk.ch
+++ b/systems/unix/tex-fpc/gftopk.ch
@@ -1,21 +1,19 @@
-This is a change file of GFtoPK for FPC, Wolfgang Helbig, Apr. 2008
-To be used with the GNU Pascal Compiler Version 2.1
+This is a change file of GFtoPK for FPC, Wolfgang Helbig, Oct. 2020
[0] About GFtoPK-FPC
@x
\pageno=\contentspagenumber \advance\pageno by 1
@y
-\pageno=\contentspagenumber \advance\pageno by 1
+\pageno=1 \advance\pageno by 1
\input webmac-fpc
-% \let\maybe=\iffalse % uncomment to print changed modules only.
+% \let\maybe=\iffalse % true: print all modules, false: print changed modules
\def\name{\tt GFtoPK}
\N0\*. About \namefpc.\fi
-This is an adaption of Donald~E. Knuth's \.{GFtoPK}, version 2.4
-from January 2014, to Unix. \namefpc\ is based on Free~Pascal,
-version 3.0.0
+This is an adaption of Tomas Rokicki's \.{GFtoPK} to Unix and the
+Free Pascal Compiler~(FPC).
\namefpc\ expects the input file (\.{.gf}) and the output file
(\.{.pk}) on the command line.
@@ -34,7 +32,7 @@ Comments and questions are welcome!
@x
@d banner=='This is GFtoPK, Version 2.4' {printed when the program starts}
@y
-@d banner=='This is GFtoPK-FPC'
+@d banner=='This is GFtoPK-FPC, 2nd ed.'
{printed when the program starts}
@z
@@ -49,7 +47,11 @@ Comments and questions are welcome!
@x
@p program GFtoPK(@!gf_file,@!pk_file,@!output);
@y
-@p@{@&$M@&O@&D@&E D@&E@&L@&P@&H@&I@}
+@p@{$MODE@,DELPHI@} {ISO Mode fails with random I/O}
+@/
+@{$Q+@}
+@/
+@{$R+@}
program GFtoPK(@!output);
@z
@@ -70,23 +72,44 @@ begin halt(history);
[39] get gf file name from command line
@x
+@p procedure open_gf_file; {prepares to read packed bytes in |gf_file|}
begin reset(gf_file);
+gf_loc := 0 ;
+end;
@y
-begin assign(gf_file, param_str(1)); reset(gf_file);
+@p procedure open_gf_file; {prepares to read packed bytes in |gf_file|}
+begin assign(gf_file, param_str(1)); ioresult;
+@{$I-@}
+reset(gf_file);
+@{$I+@}
+if ioresult <> 0 then abort('Could not open ', param_str(1));
+gf_loc := 0 ;
+end;
@z
[40] get pk file name from command line
@x
+@p procedure open_pk_file; {prepares to write packed bytes in |pk_file|}
begin rewrite(pk_file);
+pk_loc := 0 ; pk_open := true ;
+end;
@y
-begin assign(pk_file, param_str(2)); rewrite(pk_file);
+@p procedure open_pk_file; {prepares to write packed bytes in |pk_file|}
+begin assign(pk_file, param_str(2)); ioresult;
+@{$I-@}
+rewrite(pk_file);
+@{$I+@}
+if ioresult <> 0 then
+ abort('Could not open ', param_str(2));
+pk_loc := 0 ; pk_open := true ;
+end;
@z
[46] Random access
@x
set_pos(gf_file, -1) ; gf_len := cur_pos(gf_file) ;
@y
- gf_len := file_size(gf_file); seek(gf_file, gf_len);
+ gf_len := file_size(gf_file)-1; seek(gf_file, gf_len);
@z
@x
diff --git a/systems/unix/tex-fpc/gftype.ch b/systems/unix/tex-fpc/gftype.ch
new file mode 100644
index 0000000000..216f9b653e
--- /dev/null
+++ b/systems/unix/tex-fpc/gftype.ch
@@ -0,0 +1,184 @@
+This is a change file of GFtype for FPC, Wolfgang Helbig, Oct. 2020
+To be used with the Free Pascal Compiler
+
+[0] About type-FPC
+@x
+\pageno=\contentspagenumber \advance\pageno by 1
+@y
+\pageno=\contentspagenumber \advance\pageno by 1
+\input webmac-fpc
+
+% \let\maybe=\iftrue % uncomment to print changed modules only.
+
+\def\name{\tt GFtype}
+
+\N0\*. About \namefpc.\fi
+This is an adaption of Donald~E. Knuth's \.{GFtype}, to Unix.
+\namefpc\ is based on Free~Pascal.
+
+\namefpc\ expects the name of the input file (\.{.gf}) as the first
+and the name of the output file (\.{.typ} as the second parameter
+on the command line.
+
+\hint
+
+Comments and questions are welcome!
+
+\bigskip
+\address
+@z
+
+[1] Change the banner line
+@x
+@d banner=='This is GFtype, Version 3.1' {printed when the program starts}
+@y
+@d banner=='This is GFtype-FPC, 2nd ed.' {printed when the program starts}
+@z
+
+[2] othercases
+@x
+@d othercases == others: {default for cases not listed explicitly}
+@y
+@d othercases == @+ else {default for cases not listed explicitly}
+@z
+
+[3] filenames from commandline
+@x
+@d print(#)==write(#)
+@d print_ln(#)==write_ln(#)
+@d print_nl==write_ln
+
+@p program GF_type(@!gf_file,@!output);
+@y
+@d print(#)==write(typ_file, #)
+@d print_ln(#)==write_ln(typ_file, #)
+@d print_nl==write_ln(typ_file)
+
+@p @{$MODE@,ISO@}
+@/
+@{$Q+@}
+@/
+@{$R+@}
+@/
+@{$I+@}
+@#
+program GF_type(@!input, @!output);
+@z
+
+[9] text file.
+@x
+@!text_file=packed file of text_char;
+@y
+@!text_file=text;
+@z
+
+[21] declare typ file
+@x
+@!gf_file:byte_file; {the stuff we are \.{GF}typing}
+@y
+@!gf_file:byte_file; {the stuff we are \.{GF}typing}
+@!typ_file: text; { output file }
+@z
+
+[22] open gf file
+@x
+begin reset(gf_file);
+@y
+begin assign(gf_file, param_str(1));
+@#
+@{$I-@}
+@#
+ioresult; reset(gf_file);
+if ioresult <> 0 then begin
+ write_ln('Could not open gf file: ', param_str(1));
+ halt(1);
+ end;
+@#
+@{$I+@}
+@#
+@z
+
+[27] standard io files
+@x
+and |term_out| for terminal output.
+@^system dependencies@>
+
+@<Glob...@>=
+@!buffer:array[0..terminal_line_length] of ASCII_code;
+@!term_in:text_file; {the terminal, considered as an input file}
+@!term_out:text_file; {the terminal, considered as an output file}
+@y
+and |term_out| for terminal output.
+@^system dependencies@>
+@d term_in == input
+@d term_out == output
+@<Glob...@>=
+@!buffer:array[0..terminal_line_length] of ASCII_code;
+@z
+
+[28] no break known to fpc
+@x
+@d update_terminal == break(term_out) {empty the terminal output buffer}
+@y
+@d update_terminal == {empty the terminal output buffer}
+@z
+
+[29] input_ln
+@x
+@p procedure input_ln; {inputs a line from the terminal}
+var k:0..terminal_line_length;
+begin update_terminal; reset(term_in);
+if eoln(term_in) then read_ln(term_in);
+k:=0;
+while (k<terminal_line_length)and not eoln(term_in) do
+ begin buffer[k]:=xord[term_in^]; incr(k); get(term_in);
+ end;
+buffer[k]:=" ";
+end;
+@y
+@p procedure input_ln; {inputs a line from the terminal}
+var k:0..terminal_line_length;
+begin
+k:=0;
+while (k<terminal_line_length) and not eoln do
+ begin buffer[k]:=xord[input^]; incr(k); get(input);
+ end;
+readln;
+buffer[k]:=" ";
+end;
+@z
+
+[66] open typ file
+@x
+@p begin initialize; {get all variables initialized}
+@y
+@p begin
+if paramcount <> 2 then begin
+ write_ln('Usage: ', param_str(0), ' gf_file typ_file');
+ halt(1);
+ end;
+
+assign(typ_file, param_str(2));
+@#
+@{$I-@}
+@#
+ioresult; rewrite(typ_file);
+if ioresult <> 0 then begin
+ write_ln('Could not open type file: ', param_str(2));
+ halt(1);
+ end;
+@#
+@{$I+@}
+@#
+initialize; {get all variables initialized}
+@z
+
+[66] terminate last line in typ file
+@x
+final_end:end.
+@y
+print_nl;
+close(typ_file);
+final_end:end.
+@z
+
diff --git a/systems/unix/tex-fpc/history b/systems/unix/tex-fpc/history
new file mode 100644
index 0000000000..45b9840773
--- /dev/null
+++ b/systems/unix/tex-fpc/history
@@ -0,0 +1,99 @@
+2008-07-21: Change files for tex and friends, shell scripts to build
+ a Pascal only implementation of TeX.
+
+ TeX-bugs fixed:
+ (1) TeX warns you about an underful box if the last line
+ of Paragraph contains discardables only. I discovered
+ this bug while trying to prove the line breaking code.
+ I reported to Mrs. Beeton. But the checkers didn't seem
+ to understand my request. They replied: An empty box
+ triggers the underful box warning as designed.
+ But this is not, what I questioned. But I do question,
+ that TeX leaves an empty box as the last line of a
+ paragraph. At least it should contain the \parfilskip
+ glue. Well, I fixed it by protecting \parfilskip from
+ being discarded. By the way, this is one of those bugs
+ you won't find by testing.
+
+ (2) TeX flushes now and then extension and area of input
+ file names. Igor Liferenko reported this bug on
+ 2020-10-29, more than twelve years later.
+
+2008-09-07: MetaPost, dvips, xdvi, polytonic greek fonts added.
+ Less than two month suffice for TeX-GPC to grow autonomous:
+ To typeset, preview and print technical papers containing
+ figures is all covered by the components of TeX-GPC.
+
+ Btw., this turned out to be important for me. The latest
+ Mac OS version running on my 2009 imac is OS X 11.
+ MacTeX 2020 runs on 10.15 or newer.
+
+ TeX-GPC does buffered write for the dvi file. This
+ triples the speed. To process tex.tex web2c needed
+ 7.54s, TeX-FPC 11.40s. Speed is important for the
+ preview-edit cycle.
+
+2010-03-16: The 2nd edition builds and runs on Mac OS 10.2, it includes
+ a directory "tech" that shows how to construct tex with
+ the German hyphenation table and the package german
+ style from Bernd Raichle. Now TeX-GPC contains everything
+ you need to typeset, preview, and print German books,
+ as I did! (Helbig: Analysis 0, Ein logischer Einstieg
+ in die Analysis). When Germans write the word they hear
+ when Knuth says "TeX" they write "tech".
+
+ Now TeX-GPC is compatible to newer versions of GPC as
+ suggested by Martin Monperrus. Louis Rivera kindly
+ reported some problems relating to different versions
+ of the compiler.
+
+ Joachim Kuebart reported: If the first input line
+ contains spaces only, TeX-GPC might loop. In fact TeX-GPC
+ will not loop since it accidently exploits the fact,
+ that the memory is zeroed out when initialized by Unix.
+ But nevertheless it is a bug.
+
+2010-05-26: 2nd edition, first fix: tangle.p forgotten.
+ Aside from tangle.p the same as above.
+
+2014-06-29: 3rd edition, based on Knuth's dististribution from
+ Jan. 2014. The change files of this edition are to be
+ applied to TeX version 3.14159265, MF version 2.7182818.
+
+2015-09-30: Update to macOS 10.11 broke GPC and therefore TeX-GPC
+ as well. Helpless, sad, hoping for a revival of GPC.
+
+2019-02-22: Emergency edition of TeX-FPC. Date fixed at 1776-07-14.
+
+2019-03-04: same as above, fixing three bugs, all reported by Joachim.
+ The shell script tgl tried to launch good old GPC. An
+ extra space in tex.ch corrupted the change file. In
+ tex.ch a '\marke G' still waits to be replaced by '\marke X'.
+
+now: 2nd. edition. All features recreated! Finally arrived the state
+ of 2008-09-07. Exhausted but happy!
+
+ Igor Liferenko reported another bug in TeX: An extra space
+ is printed in the log file and the last line is not terminated
+ when the user switched to \batchmode during error recovery.
+ TeX-FPC fixes both noisances.
+
+ Realizing that TeX-FPC is the only pure Pascal distribution,
+ I decided that my personal preferences are not worthwhile
+ to clutter up TeX-FPC, since I can reinstall them
+ whenever I want them. My wishes are: Don't ignore tailing
+ spaces of input lines, don't ignore leading spaces of
+ the first input line. Don't print extra empty lines on
+ the terminal, when entering a file interactively. These
+ regressions leads us back to IBM's fixed length records
+ and punching cards, when the user could not control the
+ length of a line or a punching card.
+
+future: Bugs that remain to be fixed:
+ This one-liner loops:
+ \def\par{\endgroup\par} \def\a#1{#1} \a\par
+
+ Whatever you enter during error recovery, you cannot convince
+ TeX to forgive your faux pas and continue processing the rest
+ of the file.
+
diff --git a/systems/unix/tex-fpc/MFT/local.mf b/systems/unix/tex-fpc/local.mf
index 491430d781..491430d781 100644
--- a/systems/unix/tex-fpc/MFT/local.mf
+++ b/systems/unix/tex-fpc/local.mf
diff --git a/systems/unix/tex-fpc/mf/mf.ch b/systems/unix/tex-fpc/mf.ch
index 33f19ab49b..0b697ec3da 100644
--- a/systems/unix/tex-fpc/mf/mf.ch
+++ b/systems/unix/tex-fpc/mf.ch
@@ -7,20 +7,24 @@
\input webmac-fpc
\emergencystretch 0.5in % avoid overfull boxes
-\let\maybe=\iffalse % print changed modules only.
+\let\maybe=\iftrue % print changed modules only.
\def\name{\MF}
\N0\*. \[0] About \namefpc.
This is an adaption of Donald~E. Knuth's \MF, version 2.7182815
-from January 2014, to Unix. It is based on GNU~Pascal, version 2.1.
+from January 2014, to Free~Pascal (FPC) and Unix.
The features added include treating the command line as the first
input line and invoking a system editor, in this case \.{vi}, to
let the user correct the input file.
On exit, \namefpc\ passes its `history' to the operating system.
+The changes needed to make \namefpc\ compile and run to my satisfaction
+are very similar to those applied to \TeXfpc. Look in tex.tex for
+a thorough description of adaptions to Unix, FPC, and my taste.
+
\hint
Comments and questions are welcome!
@@ -34,7 +38,7 @@ Comments and questions are welcome!
@x
@d banner=='This is METAFONT, Version 2.7182818' {printed when \MF\ starts}
@y
-@d banner=='This is METAFONT-FPC' {printed when \MF\ starts}
+@d banner=='This is METAFONT-FPC, 2nd ed.' {printed when \MF\ starts}
@z
[4] terminal output and input
@@ -58,47 +62,57 @@ program MF(@!term_in,@!term_out);
{all other file names are defined dynamically}
@z
+[4] forward declaration for signal handler
+@x
+procedure initialize; {this procedure gets things started properly}
+@y
+procedure catch_signal(i: integer); interrupt; forward;
+procedure initialize; {this procedure gets things started properly}
+@z
+
Since @x, @y, and @z only define a change block when they begin a
line, you deactivate a block by indenting it (shift right) and
activate it by unindenting it (shift left). With vi set the
cursor to the @x line and enter >} or <} to (un)indent a paragraph.
[7] shift left to turn debugging on, right to turn it off
-@x
-@d debug==@{ {change this to `$\\{debug}\equiv\null$' when debugging}
-@d gubed==@t@>@} {change this to `$\\{gubed}\equiv\null$' when debugging}
-@y
-@d debug== {change this to `$\\{debug}\equiv\.{@@\{}$' when not debugging}
-@d gubed== {change this to `$\\{gubed}\equiv\.{@@\}}$' when not debugging}
-@z
+ @x debug
+ @d debug==@{ {change this to `$\\{debug}\equiv\null$' when debugging}
+ @d gubed==@t@>@} {change this to `$\\{gubed}\equiv\null$' when debugging}
+ @y
+ @d debug== {change this to `$\\{debug}\equiv\.{@@\{}$' when not debugging}
+ @d gubed== {change this to `$\\{gubed}\equiv\.{@@\}}$' when not debugging}
+ @z
[7] shift left to turn on statistics, shift rigth to turn off statistics
-@x
-@d stat==@{ {change this to `$\\{stat}\equiv\null$' when gathering
- usage statistics}
-@d tats==@t@>@} {change this to `$\\{tats}\equiv\null$' when gathering
- usage statistics}
-@y
-@d stat== {change this to `$\\{stat}\equiv\.{@@\{}$' to turn off statistics}
-@d tats== {change this to `$\\{tats}\equiv\.{@@\}}$' to turn off statistics}
-@z
+ @x stat
+ @d stat==@{ {change this to `$\\{stat}\equiv\null$' when gathering
+ usage statistics}
+ @d tats==@t@>@} {change this to `$\\{tats}\equiv\null$' when gathering
+ usage statistics}
+ @y
+ @d stat== {change this to `$\\{stat}\equiv\.{@@\{}$' to turn off statistics}
+ @d tats== {change this to `$\\{tats}\equiv\.{@@\}}$' to turn off statistics}
+ @z
- [8] shift left to build MF and right it to build INIMF.
- @x inimf
- @d init== {change this to `$\\{init}\equiv\.{@@\{}$' in the production version}
- @d tini== {change this to `$\\{tini}\equiv\.{@@\}}$' in the production version}
- @y
- @d init==@{
- @d tini==@}
- @z
+ [8] shift left to build MF and right it to build INIMF.
+ @x inimf
+ @d init== {change this to `$\\{init}\equiv\.{@@\{}$' in the production version}
+ @d tini== {change this to `$\\{tini}\equiv\.{@@\}}$' in the production version}
+ @y
+ @d init==@{
+ @d tini==@}
+ @z
[9] compiler directives, turn off I/O checking.
@x
@{@&$C-,A+,D-@} {no range check, catch arithmetic overflow, no debug overhead}
@!debug @{@&$C+,D+@}@+ gubed {but turn everything on when debugging}
@y
-@{@&$I-@} {no I/O checking}
-@{@&$M@&O@&D@&E I@&S@&O@}
+@{$MODE@,ISO@} {turn on mode ISO}
+@{$Q+@} {turn on overflow checking}
+@{$R+@} {turn on range checking}
+@!debug @{Q+@}@,@{R+@}@+ gubed {turn checks off when debugging}
@z
[10] default case branch
@@ -178,7 +192,7 @@ Shift right all `part' blocks to prepare for TRAP.
@d mem_top==35000 {largest index in the |mem| array dumped by \.{INIMF};
@z
- [12]
+[12]
@x trap
@d mem_top==30000 {largest index in the |mem| array dumped by \.{INIMF};
@y
@@ -186,7 +200,7 @@ Shift right all `part' blocks to prepare for TRAP.
@z
[12] Silvio levy' greek fonts need more opened input files.
-@x
+@x part
@d max_in_open=6 {maximum number of input files and error insertions that
@y
@d max_in_open=10 {maximum number of input files and error insertions that
@@ -225,8 +239,14 @@ xchr[@'14] := chr(@'14); {accept form feed}
[26] opening for in- and output for all three file types
alpha in
@x
+@p function a_open_in(var @!f:alpha_file):boolean;
+ {open a text file for input}
begin reset(f,name_of_file,'/O'); a_open_in:=reset_OK(f);
@y
+@p @{@&$I-@} {turn off I/O checking}
+@#
+function a_open_in(var @!f:alpha_file):boolean;
+ {open a text file for input}
begin clear_io_result; fpc_assign(f,name_of_file);reset(f);
a_open_in:=reset_OK(f);
@z
@@ -259,55 +279,30 @@ w_open_in:=reset_OK(f);
[26] word out
@x
begin rewrite(f,name_of_file,'/O'); w_open_out:=rewrite_OK(f);
+end;
@y
begin clear_io_result; fpc_assign(f,name_of_file); rewrite(f);
w_open_out:=rewrite_OK(f);
+end;
+@#
+@{@&$I+@} {turn on I/O checking}
@z
-[30] eoln handling
+[30] bypass_eoln
@x
-@p function input_ln(var @!f:alpha_file;@!bypass_eoln:boolean):boolean;
- {inputs the next line or returns |false|}
-var @!last_nonblank:0..buf_size; {|last| with trailing blanks removed}
begin if bypass_eoln then if not eof(f) then get(f);
- {input the first character of the line into |f^|}
-last:=first; {cf.\ Matthew 19\thinspace:\thinspace30}
-if eof(f) then input_ln:=false
-else begin last_nonblank:=first;
- while not eoln(f) do
- begin if last>=max_buf_stack then
- begin max_buf_stack:=last+1;
- if max_buf_stack=buf_size then
- @<Report overflow of the input buffer, and abort@>;
- end;
- buffer[last]:=xord[f^]; get(f); incr(last);
- if buffer[last-1]<>" " then last_nonblank:=last;
- end;
+@y
+begin
+@z
+
+[30] bypass_eoln
+@x
last:=last_nonblank; input_ln:=true;
end;
-end;
@y
-@p function input_ln(var f:alpha_file;@!bypass_eoln:boolean):boolean;
- {inputs the next line or returns |false|}
-begin
- {ignore |bypass_eoln|. Assuming |f| being positioned at the first character}
-last:=first; {cf.\ Matthew 19\thinspace:\thinspace30}
-if eof(f) then input_ln:=false
-else begin
- while not eoln(f) do
- begin if last>=max_buf_stack then
- begin max_buf_stack:=last+1;
- if max_buf_stack=buf_size then begin
- read_ln(f); {complete the current line}
- @<Report overflow of the input buffer, and abort@>;
- end;
- end;
- buffer[last]:=xord[f^]; get(f); incr(last);
- end;
- get(f); {Advance |f| to the first character of the next line}
- input_ln:=true;
+ last:=last_nonblank; input_ln:=true;
+ read_ln(f);
end;
-end;
@z
[31] term_in and term_out are the standard pascal files
@@ -344,22 +339,17 @@ The file |term_in| is declared as \\{input} and |term_out| as
@d clear_terminal == do_nothing {clear the terminal input buffer}
@z
-@x
- begin write_ln(term_out,'Buffer size exceeded!'); goto final_end;
-@y
- begin write_ln(term_out,'Buffer size exceeded!'); fpc_halt(3);
-@z
-
[35] command line
@x
@d loc==cur_input.loc_field {location of first unread character in |buffer|}
@y
@d loc==cur_input.loc_field {location of first unread character in |buffer|}
-@d fpc_string == r@&a@&w@&b@&y@&t@&e@&s@&t@&r@&i@&n@&g
+@d fpc_string == s@&h@&o@&r@&t@&s@&t@&r@&i@&n@&g
@d fpc_length==l @& e @& n @& g @& t @& h
@d fpc_param_count==p @& a @& r @& a @& m @& c @& o @& u @& n @& t
@d fpc_param_str==p @& a @& r @& a @& m @&s @& t @& r
{FPC function returning the length of a |fpc_string|}
+@d fpc_int_to_str == i @& n @& t @& t @& o @& s @& t @& r
@p procedure input_command_ln; {get the command line in |buffer|}
var argc: integer; {argument counter}
@@ -387,42 +377,117 @@ end;
label exit;
begin t_open_in;
loop@+begin wake_up_terminal; write(term_out,'**'); update_terminal;
-@.**@>
- if not input_ln(term_in,true) then {this shouldn't happen}
- begin write_ln(term_out);
- write(term_out,'! End of file on the terminal... why?');
-@.End of file on the terminal@>
- init_terminal:=false; return;
- end;
- loc:=first;
- while (loc<last)and(buffer[loc]=" ") do incr(loc);
- if loc<last then
- begin init_terminal:=true;
- return; {return unless the line was all blank}
- end;
- write_ln(term_out,'Please type the name of your input file.');
- end;
-exit:end;
@y
@p function init_terminal:boolean; {gets the terminal input started}
label exit;
begin t_open_in; input_command_ln;
-while first=last do begin
- wake_up_terminal; write(term_out,'**'); update_terminal;
-@.**@>
- if not input_ln(term_in, true) then {this shouldn't happen}
- begin write_ln(term_out);
- write_ln(term_out,'! End of file on the terminal... why?');
+loc := first;
+if loc<last then
+ begin init_terminal:=true; return; {first line is the command line}
+ end;
+loop@+begin wake_up_terminal; write(term_out,'**'); update_terminal;
+@z
+
+[36] For Unix, End of file on the terminal is not remarkable
+@x
+ write(term_out,'! End of file on the terminal... why?');
@.End of file on the terminal@>
- init_terminal:=false; return;
- end;
- if first=last then
- write_ln(term_out,'Please type the name of your input file.');
+@y
+@z
+
+[36] control D
+@x
+ write_ln(term_out,'Please type the name of your input file.');
+@y
+ write_ln(term_out,'Please type the name of your input file or Control-D.');
+@z
+
+[51] leave pool file open
+@x
+@ @d bad_pool(#)==begin wake_up_terminal; write_ln(term_out,#);
+ a_close(pool_file); get_strings_started:=false; return;
+ end
+@y
+@ @d bad_pool(#)==begin wake_up_terminal; write_ln(term_out,#);
+ get_strings_started:=false; return;
+ end
+@z
+
+[51] lower case name of mf.pool
+@x
+else bad_pool('! I can''t read MF.POOL.')
+@y
+else bad_pool('! I can''t read mf.pool.')
+@z
+
+[74] start editor
+@x
+@!use_err_help:boolean; {should the |err_help| string be shown?}
+@y
+@!use_err_help:boolean; {should the |err_help| string be shown?}
+@!start_edit: boolean; {start \.{vi}?}
+@z
+
+[75] initial value for edit argument
+@x
+help_ptr:=0; use_err_help:=false; err_help:=0;
+@y
+help_ptr:=0; use_err_help:=false; err_help:=0;
+start_edit := false; { don't start \.{vi}}
+@z
+
+[79] set edit_cmd
+@x
+ begin print_nl("You want to edit file ");
+@.You want to edit file x@>
+ slow_print(input_stack[file_ptr].name_field);
+ print(" at line "); print_int(line);@/
+ interaction:=scroll_mode; jump_out;
+ end;
+@y
+ begin {save values to be passed to the system editor}
+ start_edit := true;
+ interaction:=scroll_mode; jump_out;
+ end;
+@z
+
+[81] extra space on log file and terminate last terminal line
+@x
+"Q":begin print("batchmode"); decr(selector);
+ end;
+@y
+"Q":begin print("batchmode");
end;
-loc := first; {trim leading spaces}
-while buffer[loc]=" " do incr(loc);
-init_terminal:=true;
-exit: end;
+@z
+
+[81] continued
+@x
+print("..."); print_ln; update_terminal; return;
+@y
+print("..."); print_ln; update_terminal;
+if c="Q" then decr(selector); return;
+@z
+
+[194] date and time
+@x
+@p procedure fix_date_and_time;
+begin internal[time]:=12*60*unity; {minutes since midnight}
+internal[day]:=4*unity; {fourth day of the month}
+internal[month]:=7*unity; {seventh month of the year}
+internal[year]:=1776*unity; {Anno Domini}
+end;
+@y
+@p procedure fix_date_and_time;
+var yy,mm,dd: word;
+ hh,ss,ms: word;
+begin
+decodedate(now,yy,mm,dd); {current date}
+internal[day] := dd*unity;
+internal[month] := mm*unity;
+internal[year] := yy*unity;@/
+decodetime(now,hh,mm,ss,ms); {current time}
+internal[time] := (hh*60+mm)*unity; {minutes since midnight}
+end;
@z
[199] character class for tab and lf
@@ -436,10 +501,32 @@ char_class[@'14] := space_class;
[326]
@x
+no rows), we have |n_rover(h)=h|, and |n_pos(h)| is irrelevant.
+@y
+no rows), we have |n_rover(h)=h|, and |n_pos(h)| is irrelevant.
+
+The definition of |valid_range| was changed because the Free Pascal
+Compiler cannot compile expressions like |abs(a+b-4096)| when |a|
+and |b| are |half_words|. It does compile however |abs(int(a+b) -
+int(4096))|, and |abs(int(a+b-4096))| will throw an overflow exception.
+@z
+
+[326]
+@x
@d valid_range(#)==(abs(#-4096)<4096) {is |#| strictly between 0 and 8192?}
@y
-@d valid_range(#)==(abs(int(#-4096))<4096) {is |#| strictly between 0 and 8192?}
+@d valid_range(#)==(abs(int(#)-int(4096))<4096) {is |#| strictly between 0 and 8192?}
@z
+
+ [536] undo Knuth's change from mf-2008 to mf-2012, to explain the
+ diffs of pointer values in the trap.logs.
+ @x
+ done1: if (link(p)<>null) then free_node(link(p),knot_node_size);
+ link(p):=s; beta:=-y_coord(h);
+ @y
+ done1: link(p):=s; beta:=-y_coord(h);
+ @z
+
[564]
@x trap
begin init_screen:=false;
@@ -448,15 +535,15 @@ char_class[@'14] := space_class;
@z
[679] spurious empty line on terminal
-@x
- print_ln; first:=start;
- prompt_input("*"); {input on-line into |buffer|}
-@y
-@.Please type...@>
- print_nl("");
- first:=start; {avoid empty lines on terminal and log file}
- prompt_input("*"); {input on-line into |buffer|}
-@z
+ @x chatty
+ print_ln; first:=start;
+ prompt_input("*"); {input on-line into |buffer|}
+ @y
+ @.Please type...@>
+ print_nl("");
+ first:=start; {avoid empty lines on terminal and log file}
+ prompt_input("*"); {input on-line into |buffer|}
+ @z
[769] Path separator in Unix
@x
@@ -521,6 +608,45 @@ fpc_set_length(rbs, name_length);
name_of_file := rbs;
@z
+[786]
+@x spaeter!
+print_nl("Please type another "); print(s);
+@y
+print_nl("Please type another "); print(s); print(" or Control-D");
+@z
+
+[793] name might be needed to be passed to vi
+@x
+if name=str_ptr-1 then {we can conserve string pool space now}
+ begin flush_string(name); name:=cur_name;
+ end;
+@y
+@^Editor@>
+@z
+
+
+ [1023] avoid blank line on terminal after mode command
+ @x chatty
+ mode_command: begin print_ln; interaction:=cur_mod;
+ @y
+ mode_command: begin print_nl(""); interaction:=cur_mod;
+ @z
+
+[1154] blockwrite for gf_buf
+@x
+output an array of words with one system call.
+@y
+output an array of words with one system call.
+
+@d fpc_blockwrite == b @& l @& o @& c @& k @& w @& r @& i @& t @& e
+@z
+
+@x
+begin for k:=a to b do write(gf_file,gf_buf[k]);
+@y
+begin fpc_blockwrite(gf_file,gf_buf[a],b-a+1);
+@z
+
[1199]
@x
undump_int(x);@+if (x<>69069)or eof(base_file) then goto off_base
@@ -537,38 +663,21 @@ undump_int(x);@+if (x<>69069) then goto off_base
@p begin @!{|start_here|}
@z
-[1204] load the base file before printing the banner line
+[1204] start editor and pass history
@x
-start_of_MF: @<Initialize the output routines@>;
+final_end: ready_already:=0;
@y
-start_of_MF: @<Preload the default base file@>;
-@<Initialize the output routines@>;
+final_end:
+if start_edit then exec_editor; {user typed `\.{E}'}
+fpc_halt(history);
+ {pass |history| as the exit value to the system}
@z
-[1205] print last end-of-line marker if needed
+[1205] terminate last line
@x
-if log_opened then
- begin wlog_cr;
- a_close(log_file); selector:=selector-2;
- if selector=term_only then
- begin print_nl("Transcript written on ");
-@.Transcript written...@>
slow_print(log_name); print_char(".");
- end;
- end;
-end;
@y
-if log_opened then
- begin if file_offset > 0 then wlog_cr;
- a_close(log_file); selector:=selector-2;
- if selector=term_only then
- begin print_nl("Transcript written on ");
-@.Transcript written...@>
- slow_print(log_name); print_char(".");
- end;
- end;
- if term_offset > 0 then wterm_cr;
-end;
+ slow_print(log_name); print_char("."); print_ln;
@z
[1212] return if eof
@@ -605,27 +714,132 @@ itself will get a new section number.
@y
itself will get a new section number.
@^system dependencies@>
+@^fpc Pascal@>
+
+@d edit_file == input_stack[file_ptr].name_field
+@d fpc_fp_exec_vp == fp_exec_vp
+@d fpc_pchar == pchar
+@d vi==@{ {change this to `$\\{vi}\equiv\null$' when you think \.{vi}
+is the system editor}
+@d iv==@t@>@} {change this to `$\\{iv}\equiv\null$' when you think \.{vi}
+is the sytem editor}
+@f vi == begin
+@f iv == end
+@d ed== {change this to `$\\{ed}\equiv\.{@@\{}$' when you think \.{vi}
+is the system editor}
+@d de== {change this to `$\\{de}\equiv\.{@@\}}$' when you think \.{vi}
+is the system editor}
+@f ed == begin
+@f de == end
+
+@<Last-minute...@>=
+procedure exec_editor;
+const arg_size = 100; {maximal size of each of the arguments}
+ vi editor = 'vi'; {name of the binary to be started}
+ iv
+ @#
+ ed editor = 'ed'; {name of the binary to be started}
+ de
+ @#
+ editor_length = 2; {length of the name}
+var i, l: integer; {index into args}
+ j: pool_pointer; {index into |str_pool|}
+ s: str_number; {string to hold line number}
+ sel: integer; { save selector }
+ editor_arg, line_arg, file_arg : array[1..arg_size] of char; { arguments }
+ argv: array [0..3] of fpc_pchar; { vector of arguments }
+begin
+ l := editor_length;
+ for j := 1 to l do editor_arg := editor[j];
+ editor_arg[l+1] := chr(0);
+
+ sel := selector;
+ selector := new_string;
+ print_int(line);
+ s := make_string;
+ @#
+ vi
+ line_arg[1] := '+';
+ j := str_start[s];
+ l := length(s)+1;
+ for i := 2 to l do begin line_arg[i] := xchr[str_pool[j]]; incr(j) end;
+ line_arg := chr(0);
+ iv
+ @#
+ ed
+ selector := term_only;
+ write('You want to edit at line '); print(s); print_ln;
+ de
+ @#
+ selector := sel;
+ j := str_start[edit_file];
+ l := length(edit_file);
+ if l+1 > arg_size then begin
+ write_ln('File name longer than 100 bytes! Nice try!');
+ halt(100);
+ end;
+ for i := 1 to l do
+ begin file_arg[i] := xchr[str_pool[j]]; incr(j)
+ end;
+ file_arg[l+1] := chr(0);
+ argv[0] := @@editor_arg;
+ vi
+ argv[1] := @@line_arg;
+ argv[2] := @@file_arg;
+ argv[3] := nil;
+ iv
+ @#
+ ed
+ argv[1] := @@file_arg;
+ argv[2] := nil;
+ de
+ @#
+ fpc_fp_exec_vp(editor, argv);
+ write_ln('Sorry, executing the editor failed.');
+end;
+@
+A signal handler is a procedure that takes one |integer| parameter.
+The procedure |fpc_fp_signal| takes two parameter, an integer and
+a signal handler. The integer is the number of the signal. Whenever
+the program receives a signal with the designated number, the signal handler
+gets invoked.
-@ Try to preload the default base file. This is called even before
-the first line is read from the terminal, and thus turns \.{VIRMF}
-into \.{MF}, at least as seen by the user.
+The integer |SIGINT| is the number of the interrupt signal. The
+system sends an interrupt signal to the program, whenever the user
+types \.{\^C}.
-\indent\.{INIMF} sets |base_ident| to `\.{INIMF}' and won't load a base
-file here.
+The function |fpc_fp_get_errno| returns an integer that is not zero,
+whenever something went wrong.
-@<Preload the default base file@> =
-if base_ident = 0 then
- begin pack_buffered_name(base_default_length - base_ext_length, 1, 0);
- if not w_open_in(base_file) then
- begin
- wterm_ln('I can''t find the base file ', name_of_file);
- goto final_end
- end;
- if not load_base_file then
- begin w_close(base_file); goto final_end
- end;
- w_close(base_file);
- end
+The identifier |fpc_signal_handler| denotes the |type| of a
+pointer to a signal handler. Since this is foreign to ISO~Pascal,
+we use the type cast to |fpc_signal_handler| as a kludge.
-@
+@^FPC Pascal@>
+@^system dependencies@>
+
+@d fpc_signal_handler == s@&i@&g@&n@&a@&l@&h@&a@&n@&d@&l@&e@&r
+@d fpc_fp_signal == f@&p@&s@&i@&g@&n@&a@&l
+@d fpc_fp_get_errno ==f@&p@&g@&e@&t@&e@&r@&r@&n@&o
+
+@<Set initial values ...@>+=
+
+fpc_fp_signal(SIGINT, fpc_signal_handler(catch_signal));
+if fpc_fp_get_errno <> 0 then
+ write_ln('Could not install signal handler:', fpc_fp_get_errno);
+
+@ The signal handler has the so called modifier |interrupt|.
+Modifiers are an extension of FPC Pascal. This one makes the compiler
+generate the code suitable for a signal handler, which must not
+return to the caller but to the instruction where the program was
+interrupted.
+
+@^FPC Pascal@>
+@^system dependencies@>
+
+@<Error handling ...@>+=
+procedure catch_signal; interrupt;
+begin
+ interrupt := i;
+end;
@z
diff --git a/systems/unix/tex-fpc/mp/dvitomp.ch b/systems/unix/tex-fpc/mp/dvitomp.ch
new file mode 100644
index 0000000000..5f4d7d6bd0
--- /dev/null
+++ b/systems/unix/tex-fpc/mp/dvitomp.ch
@@ -0,0 +1,208 @@
+% This is a change file of DVItoMP-FPC, Wolfgang Helbig, Aug. 2008
+To be used with the GNU Pascal Compiler Version 2.1
+
+[0] About DVItoMP-FPC
+@x
+\pageno=\contentspagenumber \advance\pageno by 1
+@y
+\pageno=\contentspagenumber \advance\pageno by 1
+\input webmac-gpc
+
+% \let\maybe=\iffalse % uncomment to print changed modules only.
+
+\def\name{\tt DVItoMP}
+
+\N0\*. About \namegpc.\fi
+
+This is an adaption of John Hobby's \name, version 0.64, to Unix
+and GNU~Pascal, version 2.1.
+
+This program expects the input file (\.{.dvi}) and the output file,
+(\.{mpx}) which is a text file, on the command line. To support shell
+scripting, \namegpc\ sets the exit code to one when something was
+wrong with the input file.
+
+\hint
+
+Comments and questions are welcome!
+
+\bigskip
+\address
+@z
+[1] Change the banner line
+@x
+@d banner=='% Written by DVItoMP, Version 0.64'
+@y
+@d banner=='% Written by DVItoMP-FPC, 2nd ed.'
+@z
+
+[3] only stdio files in program header.
+@x
+@p program DVI_to_MP(@!dvi_file,@!mpx_file,@!output);
+@y
+@p
+@{@&$I-@} {no I/O checking}
+program DVI_to_MP(input, output);
+@z
+
+[9] check command line arguments
+@x
+history:=spotless;
+@y
+history:=spotless;
+if param_count <> 2 then
+ begin write_ln('Usage: dvitomp dvi_file mpx_file'); halt(1);
+ end;
+@z
+
+[12] Pascal's type of text_files is text
+@x
+@!text_file=packed file of text_char;
+@y
+@!text_file=text;
+@z
+
+[14] get file name from command line
+@x
+begin rewrite(mpx_file);
+@y
+begin
+rewrite(mpx_file, param_str(2));
+@z
+
+[17] use FPC extension for packing subranges.
+@x
+@!eight_bits=0..255; {unsigned one-byte quantity}
+@y
+@!eight_bits=packed 0..255; {unsigned one-byte quantity}
+@z
+
+[22] declare out_file
+@x
+@!tfm_file:byte_file; {a font metric file}
+@y
+@!tfm_file:byte_file; {a font metric file}
+@!out_file:text; {the outfile}
+@z
+
+[19] open file whose name is not known at compile time
+@x
+has acted, these routines assume that no file named |s| is accessible.
+@y
+has acted, these routines assume that no file named |s| is accessible.
+@d io_ok==io_result=0
+@d clear_io_result==@+if io_result=0 then
+@z
+
+@x
+begin reset(dvi_file);
+@y
+begin reset(dvi_file, param_str(1));
+@z
+
+@x
+begin reset(tfm_file,cur_name);
+@y
+begin reset(tfm_file,trim(cur_name)); {ignore leading and trailing blanks}
+@z
+
+@x
+begin reset(vf_file,cur_name);
+open_vf_file:=(not eof(vf_file));
+@y
+begin clear_io_result; reset(vf_file,trim(cur_name));
+ open_vf_file:=io_ok;
+@z
+
+ [28] no random access
+ @x;
+ begin set_pos(dvi_file,-1); dvi_length:=cur_pos(dvi_file);
+ end;
+ @#
+ procedure move_to_byte(n:integer);
+ begin set_pos(dvi_file,n); cur_loc:=n;
+ end;
+ @y;
+ begin do_nothing;
+ end;
+ @#
+ procedure move_to_byte(n:integer);
+ begin do_nothing;
+ end;
+ @z
+
+[47]
+ @x
+ is always at least one blank space in |buffer|.
+ @^system dependencies@>
+
+ @p procedure input_ln; {inputs a line from the terminal}
+ var k:0..terminal_line_length;
+ begin update_terminal; reset(term_in);
+ if eoln(term_in) then read_ln(term_in);
+ k:=0;
+ while (k<terminal_line_length)and not eoln(term_in) do
+ begin buffer[k]:=xord[term_in^]; incr(k); get(term_in);
+ end;
+ buffer[k]:=" ";
+ end;
+ @y
+ is always at least one blank space in |buffer|.
+ This is changed here: |term_in| is standard input and is not supposed
+ to be opened. There is never an end-of-line marker at the beginning of
+ a line but always at the end of a line.
+ @^system dependencies@>
+
+ @p procedure input_ln; {inputs a line from the terminal}
+ var k:0..terminal_line_length;
+ begin update_terminal;
+ k:=0;
+ while (k<terminal_line_length)and not eoln(term_in) do
+ begin buffer[k]:=xord[term_in^]; incr(k); get(term_in);
+ end;
+ read_ln(term_in);
+ buffer[k]:=" ";
+ end;
+ @z
+
+ [50] don't rewrite output file, write the banner while initializing
+ @x
+ begin rewrite(term_out); {prepare the terminal for output}
+ write_ln(term_out,banner);
+ @y
+ begin
+ @z
+
+[61]
+@x
+@d default_directory_name=='TeXfonts:' {change this to the correct name}
+@y
+@d default_directory_name=='TeXfonts/' {change this to the correct name}
+@z
+
+[63] lowercase filename
+@x
+ if (names[k]>="a")and(names[k]<="z") then
+ cur_name[l]:=xchr[names[k]-@'40]
+ else cur_name[l]:=xchr[names[k]];
+ end;
+cur_name[l+1]:='.'; cur_name[l+2]:='V'; cur_name[l+3]:='F'
+@y
+ cur_name[l]:=xchr[names[k]]
+ end;
+cur_name[l+1]:='.'; cur_name[l+2]:='v'; cur_name[l+3]:='f'
+@z
+
+[64] lowercase filename
+@x
+cur_name[l+2]:='T'; cur_name[l+3]:='F'; cur_name[l+4]:='M'
+@y
+cur_name[l+2]:='t'; cur_name[l+3]:='f'; cur_name[l+4]:='m'
+@z
+
+[107] set exit code
+@x
+final_end:end.
+@y
+final_end:halt(history) end.
+@z
diff --git a/systems/unix/tex-fpc/mp/fig.mp b/systems/unix/tex-fpc/mp/fig.mp
new file mode 100644
index 0000000000..efce9512fa
--- /dev/null
+++ b/systems/unix/tex-fpc/mp/fig.mp
@@ -0,0 +1,11 @@
+beginfig(1)
+a=.7in; b=0.5in;
+z0=(0,0); z1=(a,0); z2=(0,b);
+z0=.5[z1,z3]=.5[z2,z4];
+draw z1..z2..z3..z4..cycle;
+drawarrow z0..z1;
+drawarrow z0..z2;
+label.top(btex $a$ etex, .5[z0, z1]);
+label.lft(btex $b$ etex, .5[z0, z2]);
+endfig
+end
diff --git a/systems/unix/tex-fpc/mp/fig.tex b/systems/unix/tex-fpc/mp/fig.tex
new file mode 100644
index 0000000000..0b22e32c2b
--- /dev/null
+++ b/systems/unix/tex-fpc/mp/fig.tex
@@ -0,0 +1,3 @@
+\input epsf
+\epsfbox{fig.1}
+\bye
diff --git a/systems/unix/tex-fpc/mp/mk_MP_dir b/systems/unix/tex-fpc/mp/mk_MP_dir
new file mode 100755
index 0000000000..7e755a9d40
--- /dev/null
+++ b/systems/unix/tex-fpc/mp/mk_MP_dir
@@ -0,0 +1,2 @@
+ln -s ~/MPlib .
+ln -s ~/MPinputs .
diff --git a/systems/unix/tex-fpc/mp/mp.ch b/systems/unix/tex-fpc/mp/mp.ch
new file mode 100644
index 0000000000..c4a73abf6e
--- /dev/null
+++ b/systems/unix/tex-fpc/mp/mp.ch
@@ -0,0 +1,734 @@
+% This is a change file of METAPOST for FPC, Wolfgang Helbig, Nov. 2020
+% See tex.ch and mf.ch from tex-fpc
+[0] to print changed sections only
+@x
+\def\gglob{20, 26} % this should be the next two sections of "<Global...>"
+@y
+\def\gglob{20, 26} % this should be the next two sections of "<Global...>"
+\input webmac-fpc
+\emergencystretch 0.5in % avoid overfull boxes
+
+\let\maybe=\iffalse % uncomment to print changed modules only.
+
+\def\name{\MP}
+
+\N0\*. \[0] About \namefpc.
+
+This is an adaption of John Hobby's \MP, version 0.641,
+to the Free Pascal Compiler. It is to be built and runs in
+any Unix environment.
+
+The features added include treating the command line as the first
+input line and invoking a system editor, in this case \.{vi}, to
+let the user correct the input file. On exit, \namefpc\ passes its
+`history' to the operating system.
+
+\hint
+
+Comments and questions are welcome!
+
+\bigskip
+\address
+\fi
+@z
+
+[2] Change the banner line
+@x
+@d banner=='This is MetaPost, Version 0.641' {printed when \MP\ starts}
+@y
+@d banner=='This is MetaPost-FPC' {printed when \MP\ starts}
+@z
+
+[4] terminal output and input
+@x
+@d mtype==t@&y@&p@&e {this is a \.{WEB} coding trick:}
+@y
+@d term_in==i@&n@&p@&u@&t
+@d term_out==o@&u@&t@&p@&u@&t
+@d mtype==t@&y@&p@&e {this is a \.{WEB} coding trick:}
+@z
+
+[4] terminal output and input
+@x
+program MP; {all file names are defined dynamically}
+@y
+program MP(@!term_in,@!term_out);
+@z
+
+[4] forward reference for signal handler
+@x
+procedure initialize; {this procedure gets things started properly}
+@y
+procedure catch_signal(i: integer); interrupt@, forward;@t\2@>
+procedure initialize; {this procedure gets things started properly}
+@z
+
+Since @x, @y, and @z only define a change block when they begin a
+line, you deactivate a block by indenting it (shift right) and
+activate it by unindenting it (shift left). With vi set the
+cursor to the @x line and enter >} or <} to (un)indent a paragraph.
+
+[7] shift left to turn debugging on, right to turn it off
+ @x
+ @d debug==@{ {change this to `$\\{debug}\equiv\null$' when debugging}
+ @d gubed==@t@>@} {change this to `$\\{gubed}\equiv\null$' when debugging}
+ @y
+ @d debug== {change this to `$\\{debug}\equiv\.{@@\{}$' when not debugging}
+ @d gubed== {change this to `$\\{gubed}\equiv\.{@@\}}$' when not debugging}
+ @z
+
+[7] shift left to turn on statistics, shift rigth to turn off statistics
+@x
+@d stat==@{ {change this to `$\\{stat}\equiv\null$' when gathering
+ usage statistics}
+@d tats==@t@>@} {change this to `$\\{tats}\equiv\null$' when gathering
+ usage statistics}
+@y
+@d stat== {change this to `$\\{stat}\equiv\.{@@\{}$' to turn off statistics}
+@d tats== {change this to `$\\{tats}\equiv\.{@@\}}$' to turn off statistics}
+@z
+
+[8] shift left to build MP and right it to build INIMP.
+ @x inimp
+ @d init== {change this to `$\\{init}\equiv\.{@@\{}$' in the production version}
+ @d tini== {change this to `$\\{tini}\equiv\.{@@\}}$' in the production version}
+ @y
+ @d init==@{
+ @d tini==@}
+ @z
+
+[9] compiler directives
+@x
+@{@&$C-,A+,D-@} {no range check, catch arithmetic overflow, no debug overhead}
+@!debug @{@&$C+,D+@}@+ gubed {but turn everything on when debugging}
+@y
+@{$MODE@,ISO@} {turn on mode ISO}
+@{$Q+@} {turn on overflow checking}
+@{$R+@} {turn on range checking}
+@!debug
+@{@&$Q-@}@,
+@{@&$R-@}@+
+gubed {turn off all checks when debugging}
+@z
+
+[10] default case branch
+@x
+@d othercases == others: {default for cases not listed explicitly}
+@y
+@d othercases == @+ else {default for cases not listed explicitly}
+@z
+
+[11] location of pool file
+@x
+@!pool_name='MPlib:MP.POOL ';
+ {string of length |file_name_size|; tells where the string pool appears}
+@.MPlib@>
+@!ps_tab_name='MPlib:PSFONTS.MAP ';
+ {string of length |file_name_size|; locates font name translation table}
+@y
+@!pool_name='MPlib/mp.pool';
+ {string of length |file_name_size|; tells where the string pool appears}
+@.MPlib@>
+@!ps_tab_name='MPlib/psfonts.map';
+@z
+
+
+[22] accept tab and formfeed
+@x
+for i:=0 to @'37 do xchr[i]:=' ';
+@y
+for i:=0 to @'37 do xchr[i]:=' ';
+xchr[@'11] := chr(@'11); {accept horizontal tab}
+xchr[@'14] := chr(@'14); {accept form feed}
+@z
+
+[24] the type of text_files is text in ISO Pascal
+@x
+@!alpha_file=packed file of text_char; {files that contain textual data}
+@y
+@!alpha_file=t@&e@&x@&t; {coding trick is needed since |text| is a macro}
+@z
+
+[26] dynamic io
+@x
+@d reset_OK(#)==erstat(#)=0
+@d rewrite_OK(#)==erstat(#)=0
+@y
+@d fpc_io_result==i @& o @& r @& e @& s @& u @& l @& t
+@d fpc_assign==a @& s @& s @& i @& g @& n
+@d reset_OK(#)==fpc_io_result=0
+@d rewrite_OK(#)==fpc_io_result=0
+@d clear_io_result==@+if fpc_io_result=0 then do_nothing
+@z
+
+[26] (reset and rewrite for each of three file types) alpha
+@x
+@p function a_open_in(var @!f:alpha_file):boolean;
+ {open a text file for input}
+begin reset(f,name_of_file,'/O'); a_open_in:=reset_OK(f);
+@y
+@p
+@{$I-@} {no i/o checking}
+@#
+function a_open_in(var @!f:alpha_file):boolean;
+ {open a text file for input}
+begin clear_io_result; fpc_assign(f,name_of_file); reset(f);
+a_open_in:=reset_OK(f);
+@z
+
+[26] alpha rewrite
+@x
+begin rewrite(f,name_of_file,'/O'); a_open_out:=rewrite_OK(f);
+@y
+begin clear_io_result; fpc_assign(f,name_of_file); rewrite(f);
+a_open_out:=rewrite_OK(f);
+@z
+
+[26] byte reset
+@x
+begin reset(f,name_of_file,'/O'); b_open_in:=reset_OK(f);
+@y
+begin clear_io_result; fpc_assign(f,name_of_file); reset(f);
+b_open_in:=reset_OK(f);
+@z
+
+[26] byte rewrite
+@x
+begin rewrite(f,name_of_file,'/O'); b_open_out:=rewrite_OK(f);
+@y
+begin clear_io_result; fpc_assign(f,name_of_file); rewrite(f);
+b_open_out:=reset_OK(f);
+@z
+
+[26] word reset
+@x
+begin reset(f,name_of_file,'/O'); w_open_in:=reset_OK(f);
+@y
+begin clear_io_result; fpc_assign(f,name_of_file); reset(f);
+ w_open_in:=reset_OK(f);
+@z
+
+[26] word rewrite
+@x
+begin rewrite(f,name_of_file,'/O'); w_open_out:=rewrite_OK(f);
+end;
+@y
+begin clear_io_result; fpc_assign(f,name_of_file); rewrite(f);
+w_open_out:=rewrite_OK(f);
+end;
+@#
+@{@&$I+@} {turn on I/O checking}
+@z
+
+[30] eoln handling
+@x
+begin if bypass_eoln then if not eof(f) then get(f);
+@y
+begin
+@z
+
+[30] bypass eoln
+@x
+ last:=last_nonblank; input_ln:=true;
+ end;
+@y
+ last:=last_nonblank; input_ln:=true;
+ read_ln(f);
+ end;
+@z
+
+[31] term_in and term_out are the standard pascal files
+@x
+@!term_in:alpha_file; {the terminal as an input file}
+@!term_out:alpha_file; {the terminal as an output file}
+@y
+@z
+
+[32] no reset(input) and rewrite(output)
+@x
+@d t_open_in==reset(term_in,'TTY:','/O/I') {open the terminal for text input}
+@d t_open_out==rewrite(term_out,'TTY:','/O') {open the terminal for text output}
+@y
+@d t_open_in==do_nothing {open the terminal for text input}
+@d t_open_out==do_nothing {open the terminal for text output}
+@z
+
+[33] no flushing, clearing on standard i/o
+@x
+@d update_terminal == break(term_out) {empty the terminal output buffer}
+@d clear_terminal == break_in(term_in,true) {clear the terminal input buffer}
+@y
+@d update_terminal == do_nothing {empty the terminal output buffer}
+@d clear_terminal == do_nothing {clear the terminal input buffer}
+@z
+
+[35] command line
+@x
+@d loc==cur_input.loc_field {location of first unread character in |buffer|}
+@y
+@d loc==cur_input.loc_field {location of first unread character in |buffer|}
+@d fpc_string == s@& h@& o@& r@& t @& s @& t @& r @& i@& n @& g
+@d fpc_length==l @& e @& n @& g @& t @& h
+@d fpc_param_count==p @& a @& r @& a @& m @& c @& o @& u @& n @& t
+@d fpc_param_str==p @& a @& r @& a @& m @&s @& t @& r
+
+@p procedure input_command_ln; {get the command line in |buffer|}
+var argc: integer; {argument counter}
+ arg: fpc_string; {argument}
+ cc: integer; {character counter in argument}
+begin last := first; argc := 1;
+while argc <= fpc_param_count do
+ begin cc := 1; arg := fpc_param_str(argc); incr(argc);
+ while cc <= fpc_length(arg) do
+ begin
+ if last+1>=buf_size then
+ @<Report overflow of the input buffer, and abort@>;
+ buffer[last] := xord[arg[cc]]; incr(last); incr(cc)
+ end;
+ if (argc <= fpc_param_count) then begin
+ buffer[last] := " "; incr(last) {insert a space between arguments}
+ end
+ end
+end;
+@z
+
+[36] init terminal
+@x
+@p function init_terminal:boolean; {gets the terminal input started}
+label exit;
+begin t_open_in;
+loop@+begin wake_up_terminal; write(term_out,'**'); update_terminal;
+@.**@>
+ if not input_ln(term_in,true) then {this shouldn't happen}
+ begin write_ln(term_out);
+ write(term_out,'! End of file on the terminal... why?');
+@.End of file on the terminal@>
+ init_terminal:=false; return;
+ end;
+ loc:=first;
+ while (loc<last)and(buffer[loc]=" ") do incr(loc);
+ if loc<last then
+ begin init_terminal:=true;
+ return; {return unless the line was all blank}
+ end;
+ write_ln(term_out,'Please type the name of your input file.');
+ end;
+exit:end;
+@y
+@p function init_terminal:boolean; {gets the terminal input started}
+label exit;
+begin t_open_in; input_command_ln;
+loc := first;
+if loc<last then
+ begin init_terminal:=true; return; {first line is the command line}
+ end;
+loop@+begin wake_up_terminal; write(term_out,'**'); update_terminal;
+@.**@>
+ if not input_ln(term_in,true) then {this shouldn't happen}
+ begin write_ln(term_out);
+ write(term_out,'! End of file on the terminal... why?');
+@.End of file on the terminal@>
+ init_terminal:=false; return;
+ end;
+ loc:=first;
+ while (loc<last)and(buffer[loc]=" ") do incr(loc);
+ if loc<last then
+ begin init_terminal:=true;
+ return; {return unless the line was all blank}
+ end;
+ write_ln(term_out,'Please type the name of your input file.');@/
+ end;
+exit: end;
+@z
+
+[76] print banner line on terminal
+@x
+@<Initialize the output...@>=
+update_terminal;
+@y
+@<Initialize the output...@>=
+wterm(banner);
+if mem_ident=0 then wterm_ln(' (no mem preloaded)')
+else begin print(mem_ident); print_ln;
+ end;
+update_terminal;
+@z
+
+[89] start editor
+@x
+@!use_err_help:boolean; {should the |err_help| string be shown?}
+@y
+@^Editor@>
+@!use_err_help:boolean; {should the |err_help| list be shown?}
+@!start_edit: boolean; {start \.{vi}?}
+@z
+
+[90] initial values for start editor
+@x
+help_ptr:=0; use_err_help:=false; err_help:=0;
+@y
+help_ptr:=0; use_err_help:=false; err_help:=0; start_edit :=false;
+@z
+
+[94] start editor
+@x
+ begin print_nl("You want to edit file ");
+@.You want to edit file x@>
+ print(input_stack[file_ptr].name_field);
+ print(" at line "); print_int(true_line);@/
+ interaction:=scroll_mode; jump_out;
+ end;
+@y
+@^Editor@>
+ begin {start \.{vi}}
+ start_edit := true;
+ interaction:=scroll_mode; goto final_end;
+ end;
+@z
+
+ [106] interrupt is predefined and not implemented in GNU~Pascal
+ @x
+ @d check_interrupt==begin if interrupt<>0 then pause_for_instructions;
+ @y
+ @d interrupt==buginterrupt
+ @f interrupt==true
+ @d check_interrupt==begin if interrupt<>0 then pause_for_instructions;
+ @z
+
+ [171] pack subranges
+ @x
+ @!quarterword = min_quarterword..max_quarterword; {1/4 of a word}
+ @!halfword=min_halfword..max_halfword; {1/2 of a word}
+ @y
+ @!quarterword = packed min_quarterword..max_quarterword; {1/4 of a word}
+ @!halfword=packed min_halfword..max_halfword; {1/2 of a word}
+ @z
+
+[212] time and date
+@x
+@p procedure fix_date_and_time;
+begin internal[time]:=12*60*unity; {minutes since midnight}
+internal[day]:=4*unity; {fourth day of the month}
+internal[month]:=7*unity; {seventh month of the year}
+internal[year]:=1776*unity; {Anno Domini}
+end;
+@y
+The functions |now|, |decodedate|, and |decodetime| are provided
+by the unit |sysutils|. The command line \.{fpc~-Fasysutils~tex.p}
+links that unit.
+@^system dependencies@>
+@^FPC Pascal@>
+When FPC is in ISO mode, it does not accept declaring a |unit| in the source
+file.
+@dfpc_now == now
+@dfpc_decode_date == decodedate
+@dfpc_decode_time == decodetime
+@p procedure fix_date_and_time;
+var yy,mm,dd: word;
+ hh,ss,ms: word;
+begin
+fpc_decode_date(fpc_now,yy,mm,dd); {current date}
+internal[day] := dd*unity;
+internal[month] := mm*unity;
+internal[year] := yy*unity;@/
+fpc_decode_time(fpc_now,hh,mm,ss,ms); {current time}
+internal[time] := (hh*60+mm)*unity; {minutes since midnight}
+end;
+@z
+
+[217] character class for tab and lf
+@x
+for k:=127 to 255 do char_class[k]:=invalid_class;
+@y
+for k:=127 to 255 do char_class[k]:=invalid_class;
+char_class[@'11] := space_class;
+char_class[@'14] := space_class;
+@z
+
+[640] spurious empty line on terminal
+@x
+ print_ln; first:=start;
+ prompt_input("*"); {input on-line into |buffer|}
+@y
+ print_nl("");
+ first:=start; {avoid empty lines on terminal and log file}
+ prompt_input("*"); {input on-line into |buffer|}
+@z
+
+[746] Path separator in Unix
+@x
+@d MP_area=="MPinputs:"
+@.MPinputs@>
+@d MF_area=="MFinputs:"
+@.MFinputs@>
+@d MP_font_area=="TeXfonts:"
+@.TeXfonts@>
+@y
+@d MP_area=="MPinputs/"
+@.MPinputs@>
+@d MF_area=="MFinputs/"
+@.MFinputs@>
+@d MP_font_area=="TeXfonts/"
+@.TeXfonts@>
+@z
+
+[748] Path separator in Unix
+@x
+else begin if (c=">")or(c=":") then
+@y
+else begin if c="/" then
+@z
+
+[751] file name handling: pack file name
+@x
+@d append_to_name(#)==begin c:=#; incr(k);
+@y
+@d fpc_set_length==s@&e@&t@&l@&e@&n@&g@&t@&h
+@d append_to_name(#)==begin c:=#; incr(k);
+@z
+
+[751] pack file name
+@x
+@!j:pool_pointer; {index into |str_pool|}
+@y
+@!j:pool_pointer; {index into |str_pool|}
+@!s: fpc_string;
+@z
+
+[751] pack file name
+@x
+if k<=file_name_size then name_length:=k@+else name_length:=file_name_size;
+for k:=name_length+1 to file_name_size do name_of_file[k]:=' ';
+end;
+@y
+if k<=file_name_size then name_length:=k@+else name_length:=file_name_size;
+s := name_of_file;
+fpc_set_length(s, name_length);
+name_of_file := s;
+end;
+@z
+
+[753] file name of plain.mem
+@x
+MP_mem_default:='MPlib:plain.mem';
+@y
+MP_mem_default:='MPlib/plain.mem';
+@z
+
+[755] packed buffered name
+@x
+@!j:integer; {index into |buffer| or |MP_mem_default|}
+@y
+@^FPC Pascal@>
+@!j:integer; {index into |buffer| or |TEX_format_default|}
+s: fpc_string;
+@z
+
+[755] packed buffered name continued
+@x
+for k:=name_length+1 to file_name_size do name_of_file[k]:=' ';
+@y
+s := name_of_file; fpc_set_length(s, name_length); name_of_file := s;
+@z
+
+
+[771] (don't) flush file name. Might be needed for vi
+@x
+flush_string(name); name:=cur_name; cur_name:=0
+@y
+@z
+
+
+
+[1293] FPC-BUG eof one too early
+@x
+undump_int(x);@+if (x<>69073)or eof(mem_file) then goto off_base
+@y
+undump_int(x);@+if (x<>69073)then goto off_base
+@z
+
+[1298] define FPC procedure halt
+@x
+@p begin @!{|start_here|}
+@y
+@d fpc_halt == h@&a@&l@&t
+
+@p begin @!{|start_here|}
+@z
+
+[1298] load the mem file before printing the banner line
+@x
+start_of_MP: @<Initialize the output routines@>;
+@y
+start_of_MP: @<Preload the default mem file@>;
+@<Initialize the output routines@>;
+@z
+
+[1298] start editor and pass history
+@x
+final_end: ready_already:=0;
+@y
+final_end:
+if start_edit then edit; {user typed `\.{E}'}
+fpc_halt(history);
+ {pass |history| as the exit value to the system}
+@z
+
+[1299] print last end-of-line marker if needed
+@x
+if log_opened then
+ begin wlog_cr;
+ a_close(log_file); selector:=selector-2;
+ if selector=term_only then
+ begin print_nl("Transcript written on ");
+@.Transcript written...@>
+ print(log_name); print_char(".");
+ end;
+ end;
+end;
+@y
+if log_opened then
+ begin if file_offset > 0 then wlog_cr;
+ a_close(log_file); selector:=selector-2;
+ if selector=term_only then
+ begin print_nl("Transcript written on ");
+@.Transcript written...@>
+ print(log_name); print_char(".");
+ end;
+ end;
+ if term_offset > 0 then wterm_cr;
+end;
+@z
+
+[1307] return if eof
+@x
+ read(term_in,m);
+@y
+ if eof(term_in) then return;
+ {don't try to read past end of file}
+ read(term_in,m);
+@z
+
+[1307] return if eof
+@x
+ else begin read(term_in,n);
+@y
+ else begin if eof(term_in) then return;
+ {don't try to read past end of file}
+ read(term_in,n);
+@z
+
+[1308] return eof
+@x
+13: begin read(term_in,l); print_cmd_mod(n,l);
+@y
+13: begin if eof(term_in) then return;
+ {don't try to read past end of file}
+read(term_in,l); print_cmd_mod(n,l);
+@z
+
+[1309 and modules added for METAPOST-FPC]
+@x
+itself will get a new section number.
+@^system dependencies@>
+@y
+itself will get a new section number.
+@^system dependencies@>
+
+@ Try to preload the default mem file. This is called even before
+the first line is read from the terminal, and thus turns \.{VIRMP}
+into \.{MP}, at least as seen by the user.
+
+\indent\.{INIMP} sets |mem_ident| to `\.{INIMP}' and won't load a mem
+file here.
+
+@<Preload the default mem file@> =
+if mem_ident = 0 then
+ begin pack_buffered_name(mem_default_length - mem_ext_length, 1, 0);
+ if not w_open_in(mem_file) then
+ begin
+ wterm_ln('I can''t find the mem file');
+ goto final_end
+ end;
+ if not load_mem_file then
+ begin w_close(mem_file); goto final_end
+ end;
+ w_close(mem_file);
+ end
+
+@
+@d fpc_execute == e@&x@&e@&c@&u@&t@&e @& p @& r @& o @& c @& e @& s @& s
+@d fpc_int_to_str == i @& n @& t @& t @& o @& s @& t @& r
+@d edit_file == input_stack[file_ptr].name_field
+
+@<Error hand...@>+=
+procedure edit;
+var i: integer; {index into |name_of_file|}
+ j: pool_pointer; {index into |str_pool|}
+ k: pool_pointer; {index into |str_pool|}
+ s: str_number; {index into |str_start|}
+ f, arg, vi, sl: fpc_string; {area to build the command line}
+begin i := 1; s := edit_file;j := str_start[s]; k:= str_stop(s);
+fpc_set_length(f, length(s));
+while j<k do
+ begin f[i] := xchr[str_pool[j]]; incr(i); incr(j)
+ end;
+sl := fpc_int_to_str(true_line);
+if 0 <> fpc_execute('/usr/bin/vi', '+' + fpc_int_to_str(true_line) + ' ' + f)
+then
+ begin
+ write('I could not start editor with: ', '/usr/bin/vi +', sl , ' ', f);
+ print(edit_file); print_ln;
+ end
+end;
+
+@
+
+@d fpc_signal_handler == s@&i@&g@&n@&a@&l@&h@&a@&n@&d@&l@&e@&r
+@d fpc_fp_signal == f@&p@&s@&i@&g@&n@&a@&l
+@d fpc_fp_get_errno ==f@&p@&g@&e@&t@&e@&r@&r@&n@&o
+
+@<Set initial values ...@>+=
+
+fpc_fp_signal(SIGINT, fpc_signal_handler(catch_signal));
+if fpc_fp_get_errno <> 0 then
+ write_ln('Could not install signal handler:', fpc_fp_get_errno);
+
+@
+The signal handler has the so called modifier |interrupt|.
+Modifiers are an extension of FPC Pascal. This one makes the compiler
+generate code suitable for a signal handler, which must not
+return to the caller but to the instruction where the program was
+interrupted.
+
+@^FPC Pascal@>
+@^dirty \PASCAL@>
+@^system dependencies@>
+
+@<Error handling ...@>+=
+procedure catch_signal; interrupt;
+begin
+ interrupt := i;
+end;
+@z
+ @d fpc_t_signal_handler == t@&s@&i@&g@&n@&a@&l@&h@&a@&n@&d@&l@&e@&r
+ @d fpc_install_signal_handler ==
+ i@&n@&s@&t@&a@&l@&l@&s@&i@&g@&n@&a@&l@&h@&a@&n@&d@&l@&e@&r
+ @d fpc_sig_int == s@&i@&g@&i@&n@&t
+ @d fpc_integer == integer {for later versions of FPC (3.4+) replace
+ \\{integer} by \\{cinteger}}
+
+ @<Error hand...@>=
+ procedure set_interrupt(signal: fpc_integer);
+ begin interrupt := 1 @+end;
+
+ @
+ @<Set initial values ... @>=
+ fpc_install_signal_handler(gpc_sig_int,set_interrupt,true,true,dummy_handler,
+ dummy_boolean);
+
+ @ Here are two variables that are needed to install |set_interrupt|.
+ @<Local variables for initialization@> =
+ dummy_handler: fpc_t_signal_handler;
+ dummy_boolean: boolean;
+ @z
diff --git a/systems/unix/tex-fpc/mp/mpx b/systems/unix/tex-fpc/mp/mpx
new file mode 100755
index 0000000000..d8a6ea4cf8
--- /dev/null
+++ b/systems/unix/tex-fpc/mp/mpx
@@ -0,0 +1,10 @@
+# process .mp files that include TeX programs.
+case $# in
+1) f=`basename $1 .mp`;;
+*) echo Usage: $0 mp-file; exit 1;;
+esac
+mptotex $f.mp \
+| tex \
+&& dvitomp texput.dvi $f.mpx \
+&& mp $f.mp \
+|| echo $0 failed!; exit 1
diff --git a/systems/unix/tex-fpc/mp/readme b/systems/unix/tex-fpc/mp/readme
new file mode 100644
index 0000000000..e0065cce28
--- /dev/null
+++ b/systems/unix/tex-fpc/mp/readme
@@ -0,0 +1,204 @@
+Aug. 2008 - Nov. 2020
+This is the stage directory to build and install John Hobby's
+METAPOST for FPC. METAPOST produces pictures as PostScript files
+that are to be included by dvips in its output.
+
+METAPOST's file formats and their documentation:
+------------------------------------------------
+.mp METAPOST source,
+ see "A User's manual for MetaPost", AT&T Bell Laboratories
+ Computing Science Technical Report 162, 1992
+.mpx METAPOST source, auxiliary file, needed if a .mp file contains
+ TeX-programs.
+.mem METAPOST format file (plain.mp)
+.c C source (Kernighan/Ritchie The C Programming Language)
+.ps Adobe PostScript
+.n Where n an integer, a PostScript file for picture n, to be included
+ by dvips.
+
+
+builtin file names:
+------------------
+MPlib/mp.pool string pool for mp, (in inimp)
+MPlib/plain.mem base file for Plain METAFONT, (in mf)
+
+METAPOST's processors:
+----------------------
+ inimp
+ plain.mp -------> MPlib/plain.mem
+
+
+ mptotex
+.mp -------> .tex (the .tex file contains stuff to be included
+ in the figure, like labels)
+
+ tex
+.tex -------> .dvi (the dvi contains the output of the tex program.)
+
+ dvitomp
+.dvi --------> .mpx (mp will \read the .mpx-file)
+
+ mp
+.mp -------> .n
+
+ mpx
+.mp --------> .n (combines the last four steps)
+
+Use the shell script mpx instead of mp if and only if your .mp file
+contains TeX programs, i. e. if you have a TeX-program, that includes
+a figure, vis. an MP Program, that in turn contains TeX-programs.
+The result is a PS document defined by a TeX-file that includes a
+figure which in turn includes TeX-programs.
+
+The mpx file name is specified in the .mp file in a \read command.
+
+And finally:
+ dvips
+.<n>, .dvi, .pk, .tfm ----> PostScript file/printer
+
+
+Get John Hobby's distribution
+-----------------------------
+The sources from CTAN depend on web2c,
+so I downloaded the originals from netlib:
+ftp ftp://mirrorservice.org/sites/ftp.netlib.org/research/metapost.tar.Z
+
+Be sure to unpack it in a different empty directory, since it clobbers
+the files all over the place.
+
+unpack it with uncompress and tar xf:
+ uncompress metapost.tar.Z
+ tar xf metapost.tar
+Copy at least mp.web, plain.mp, mptotex.c and dvitomp.web into this
+directory.
+
+Masterdirectories:
+------------------
+Create the master directories MPlib and MPinputs. Prepare a directory from
+where you want to run mp with the shell script mk_MP_dir.
+(Additionally to mk_TeX_dir)
+
+Building and installing:
+-----------------------
+Move a.out into your binary directory under the name at the
+right end of --->.
+
+1. mp.web, mp.ch ---> inimp
+Change mp.ch for initialization (see building inimf, initex) and itgl.
+Move mp.pool to MPlib.
+
+2. plain.mp ---> MPlib/plain.mem
+ inimp plain.mp dump
+mv plain.mem to MPlib
+
+3. mp.web, mp.ch ---> mp
+Change mp.ch for production (see building inimf, initex) and tgl.
+
+4. dvitomp.web, dvitomp.ch ---> dvitomp
+Just tgl and move a.out as dvitomp to your binary directory
+
+5. mptotex.c ---> mptotex
+apply patches to mptotex.c:
+ed mptotex.c <mptotex.ed
+cc mptotex.c, ignore the warning and move a.out to ...
+
+6. mpx ---> mpx (just move the shell script to your binary dir)
+
+Using MetaPost:
+--------------
+To include a MetaPost picture xxx.mp in your output, \input
+the TeX macro epsf.tex. At the place where you want to include your
+picture, write
+ \epsfbox{xxx.n}
+where xxx is the name of the picture and n is the argument given
+in the beginfig() command.
+
+fig.mp:
+beginfig(1)
+a=.7in; b=0.5in;
+z0=(0,0); z1=(a,0); z2=(0,b);
+z0=.5[z1,z3]=.5[z2,z4];
+draw z1..z2..z3..z4..cycle;
+drawarrow z0..z1;
+drawarrow z0..z2;
+label.top(btex $a$ etex, .5[z0, z1]);
+label.lft(btex $b$ etex, .5[z0, z2]);
+endfig
+end
+
+fig.mp contains two TeX programs, $a$ and $b$. So you need to call mpx instead
+of mp. This creates fig.mpx:
+
+% Written by DVItoMP-FPC, 2nd ed.
+begingroup save _p,_r,_s,_n; picture _p; _p=nullpicture;
+string _n[];
+vardef _s(expr _t,_f,_m,_x,_y)=
+ addto _p also _t infont _f scaled _m shifted (_x,_y); enddef;
+_n0="cmmi10";
+_s("a",_n0,1.00000,0.0000,0.0000);
+setbounds _p to (0,-0.0000)--(5.2661,-0.0000)--
+ (5.2661,4.2895)--(0,4.2895)--cycle;
+_p endgroup
+mpxbreak
+begingroup save _p,_r,_s,_n; picture _p; _p=nullpicture;
+string _n[];
+vardef _s(expr _t,_f,_m,_x,_y)=
+ addto _p also _t infont _f scaled _m shifted (_x,_y); enddef;
+_n0="cmmi10";
+_s("b",_n0,1.00000,0.0000,0.0000);
+setbounds _p to (0,-0.0000)--(4.2756,-0.0000)--
+ (4.2756,6.9185)--(0,6.9185)--cycle;
+_p endgroup
+mpxbreak
+
+From fig.mp and fig.mpx METAPOST creates fig.1:
+
+%!PS
+%%BoundingBox: -51 -37 51 37
+%%Creator: MetaPost
+%%CreationDate: 2020.10.29:1632
+%%Pages: 1
+%*Font: cmmi10 9.96265 9.96265 61:c
+%%EndProlog
+%%Page: 1 1
+ 0 0.5 dtransform truncate idtransform setlinewidth pop [] 0 setdash
+ 1 setlinejoin 10 setmiterlimit
+newpath 50.39978 0 moveto
+50.39978 23.04858 25.56044 36 0 36 curveto
+-25.56044 36 -50.39978 23.04858 -50.39978 0 curveto
+-50.39978 -23.04858 -25.56044 -36 0 -36 curveto
+25.56044 -36 50.39978 -23.04858 50.39978 0 curveto closepath stroke
+ 1 setlinecap
+newpath 0 0 moveto
+50.39978 0 lineto stroke
+newpath 46.70451 -1.53067 moveto
+50.39978 0 lineto
+46.70451 1.53067 lineto
+ closepath
+gsave fill grestore stroke
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 0 0 moveto
+0 36 lineto stroke
+ 0 0.5 dtransform truncate idtransform setlinewidth pop
+newpath 1.5308 32.3044 moveto
+0 36 lineto
+-1.5308 32.3044 lineto
+ closepath
+gsave fill grestore stroke
+22.56683 3 moveto
+(a) cmmi10 9.96265 fshow
+-7.2756 14.54074 moveto
+(b) cmmi10 9.96265 fshow
+showpage
+%%EOF
+
+Finally, the TeX file that includes a figure, fig.tex:
+
+\input epsf
+\epsfbox{fig.1}
+\bye
+
+Make fig.dvi with tex and fig.ps with dvips. Display the PS file on screen
+with ghostscript by "gs fig.ps". Other than TeX and friends the C-programs
+gs and mptotex don't guess the extension .ps or .mpx. gs just stops and
+mptotex catches a segmentation fault :-)
diff --git a/systems/unix/tex-fpc/pltotf.ch b/systems/unix/tex-fpc/pltotf.ch
new file mode 100644
index 0000000000..03aef8eee8
--- /dev/null
+++ b/systems/unix/tex-fpc/pltotf.ch
@@ -0,0 +1,97 @@
+This is a change file of PLtoTF for TeX-FPC, Wolfgang Helbig, Oct. 2020.
+
+[0] About PLtoTF-FPC
+@x
+\pageno=\contentspagenumber \advance\pageno by 1
+@y
+\pageno=\contentspagenumber \advance\pageno by 1
+\input webmac-fpc
+
+% \let\maybe=\iftrue % uncomment to print changed modules only.
+
+\def\name{\tt PLtoTF}
+
+\N0\*. About \namefpc.\fi
+This is an adaption of Donald~E. Knuth's \.{PLtoTF} to Unix. \namefpc\
+is based on the Free~Pascal Compiler.
+
+\namefpc\ expects the name of the input file (\.{.pl}) as the first
+and the name of the output file (\.{.tf}) as the second parameter
+on the command line.
+
+\hint
+
+Comments and questions are welcome!
+
+\bigskip
+\address
+@z
+
+[1] Change the banner line
+@x
+@d banner=='This is PLtoTF, Version 3.6' {printed when the program starts}
+@y
+@d banner=='This is PLtoTF-FPC, 2nd ed.' {printed when the program starts}
+@z
+
+
+[2] compiler directives
+@x
+@p program PLtoTF(@!pl_file,@!tfm_file,@!output);
+@y
+@p@{$MODE@,ISO@}
+@/
+@{$Q+@}
+@/
+@{$R+@}
+@#
+program PLtoTF(@!output);
+@z
+
+[6] open pl_file
+@x
+reset(pl_file);
+@y
+assign(pl_file, param_str(1));
+@#
+@{$I-@}
+@#
+ioresult; reset(pl_file);
+if ioresult <> 0 then begin
+ write_ln('Could not open pl file: ', param_str(1));
+ halt(1);
+ end;
+@#
+@{$I+@}
+@z
+
+
+[15] violation of ISO
+@x
+@!tfm_file:packed file of 0..255;
+@y
+@!tfm_file: packed file of byte;
+@z
+
+[16] open tfm_file
+@x
+rewrite(tfm_file);
+@y
+if paramcount <> 2 then begin
+ write_ln('Usage: ', param_str(0), ' pl_file tfm_file');
+ halt(1);
+ end;
+
+assign(tfm_file, param_str(2));
+@#
+@{$I-@}
+@#
+ioresult; rewrite(tfm_file);
+if ioresult <> 0 then begin
+ write_ln('Could not open tfm file: ', param_str(2));
+ halt(1);
+ end;
+@#
+@{$I+@}
+@#
+@z
diff --git a/systems/unix/tex-fpc/dvipsnk/MakeTeXPK b/systems/unix/tex-fpc/shell/MakeTeXPK
index 5145b09bfa..5145b09bfa 100755
--- a/systems/unix/tex-fpc/dvipsnk/MakeTeXPK
+++ b/systems/unix/tex-fpc/shell/MakeTeXPK
diff --git a/systems/unix/tex-fpc/shell/itgl b/systems/unix/tex-fpc/shell/itgl
index 2fca45acc6..d73dabd4fd 100755
--- a/systems/unix/tex-fpc/shell/itgl
+++ b/systems/unix/tex-fpc/shell/itgl
@@ -1,6 +1,7 @@
+# Tangles and then compiles web files. Keeps the pool file.
case $# in
1) b=`basename $1 .web`; tangle $1 /dev/null ini$b.p $b.pool;;
2) b=`basename $2 .ch`; tangle $1 $2 ini$b.p $b.pool;;
*) echo Usage: `basename $0` web-file [ ch-file ] ; exit 1
esac && \
-fpc ini$b.p
+fpc -Fasysutils,baseunix,unix ini$b.p
diff --git a/systems/unix/tex-fpc/shell/mkfont b/systems/unix/tex-fpc/shell/mkfont
index 06d8dd3506..34b2eb7849 100755
--- a/systems/unix/tex-fpc/shell/mkfont
+++ b/systems/unix/tex-fpc/shell/mkfont
@@ -1,11 +1,10 @@
-# Install .tfm and . pk files from .mf files for TeX-GPC
+# Install .tfm and . pk files from .mf files for TeX-FPC
f=`basename $1 .mf`
case $# in
1) mag=1;;
2) mag=$2;;
*) echo Usage: $0 mf-file [ magnification ]; exit 1
esac
-echo $0: $f magnification=$mag
rm -f $f.*gf
mf "\\mode=localfont; mag=$mag; batchmode; input $1"\
&& gftopk $f.*gf `echo $f.*gf | sed 's/gf$/pk/'` \
diff --git a/systems/unix/tex-fpc/shell/mkpkfont b/systems/unix/tex-fpc/shell/mkpkfont
index 4eb23f8ac3..4d9dce3a1b 100755
--- a/systems/unix/tex-fpc/shell/mkpkfont
+++ b/systems/unix/tex-fpc/shell/mkpkfont
@@ -1,4 +1,5 @@
-# install pk-file from mf-file for TeX-GPC
+# install pk-file from mf-file for TeX-FPC
+# this script is used by xdvi
#
# xdvi expects the path name of the generated .pk file in the first
# line of stdout, so redirect mf's stdout to stderr.
diff --git a/systems/unix/tex-fpc/shell/tgl b/systems/unix/tex-fpc/shell/tgl
index cb390d3150..26c2bf2c2b 100755
--- a/systems/unix/tex-fpc/shell/tgl
+++ b/systems/unix/tex-fpc/shell/tgl
@@ -1,6 +1,7 @@
+# tangles and compiles web files. Sends the pool file to /dev/null.
case $# in
1) b=`basename $1 .web`; tangle $1 /dev/null $b.p /dev/null;;
2) b=`basename $2 .ch`; tangle $1 $2 $b.p /dev/null;;
*) echo Usage: `basename $0` web-file [ ch-file ] ; exit 1
esac && \
-fpc $b.p
+fpc -FaUnix,sysutils,baseunix $b.p
diff --git a/systems/unix/tex-fpc/web/tangle.ch b/systems/unix/tex-fpc/tangle.ch
index 97c7232edf..ee73c2a3c8 100644
--- a/systems/unix/tex-fpc/web/tangle.ch
+++ b/systems/unix/tex-fpc/tangle.ch
@@ -1,32 +1,26 @@
% This is a change file for TANGLE-FPC, Wolfgang Helbig, Nov. 2007
-% Apr. 2008 take file names from command line
-% Jul. 2008 pass the exit code
-% Jul. 2016 change from gpc to fpc
[0] About TANGLE-FPC
@x
\pageno=\contentspagenumber \advance\pageno by 1
@y
-\pageno=\contentspagenumber \advance\pageno by 1
+\pageno=1 \advance\pageno by 1
\input webmac-fpc
\def\name{{\tt TANGLE}}
-\let\maybe=\iffalse % print changed modules only.
+\let\maybe=\iftrue % print changed modules only.
\N0\*. About \namefpc.\fi
-This is an adaption of Donald~E. Knuth's \.{TANGLE}, version 4.5
-from December 2002, to Unix. \namefpc\ is based on Free Pascal, version
-3.0
+This is an adaption of Donald~E. Knuth's \.{TANGLE} to Unix and the
+Free Pascal Compiler~(FPC).
-This program expects four file names on the command line: Two input
+\namefpc\ expects four file names on the command line: Two input
files, the web and change file, followed by two output files, the
-Pascal and string pool file. If you call \namefpc\ with the wrong number
-of command line arguments, it will tell you and exit.
+Pascal and string pool file.
To support shell scripting, tangle sets the exit code to its
`\\{history}'---zero means ok, one means a warning was issued, two
-an error occurred and three means \.{TANGLE} ended prematurely.
-
+an error occurred and three means \namefpc\ ended prematurely.
\hint
Comments and questions are welcome!
@@ -38,14 +32,7 @@ Comments and questions are welcome!
@x
@d banner=='This is TANGLE, Version 4.5'
@y
-@d banner=='This is TANGLE-FPC'
-@z
-
-[2] terminal output and input
-@x
-program TANGLE(@!web_file,@!change_file,@!Pascal_file,@!pool);
-@y
-program TANGLE(@!input,@!output);
+@d banner=='This is TANGLE-FPC, 2nd ed.'
@z
[3] turn debugging on
@@ -57,23 +44,34 @@ program TANGLE(@!input,@!output);
@d gubed==
@z
-[3] turn stats on
+[2]
@x
-@d stat==@{ {change this to `$\\{stat}\equiv\null$'
- when gathering usage statistics}
-@d tats==@t@>@} {change this to `$\\{tats}\equiv\null$'
- when gathering usage statistics}
+program TANGLE(@!web_file,@!change_file,@!Pascal_file,@!pool);
@y
-@d stat==
-@d tats==
+program TANGLE(@!term_out);
@z
+[3] shift left to turn stats on, right to turn them off.
+ @x
+ @d stat==@{ {change this to `$\\{stat}\equiv\null$'
+ when gathering usage statistics}
+ @d tats==@t@>@} {change this to `$\\{tats}\equiv\null$'
+ when gathering usage statistics}
+ @y
+ @d stat==
+ @d tats==
+ @z
+
[4] compiler directives
@x
@{@&$C-,A+,D-@} {no range check, catch arithmetic overflow, no debug overhead}
@!debug @{@&$C+,D+@}@+ gubed {but turn everything on when debugging}
@y
-@{@&$M@&O@&D@&E I@&S@&O@}
+@{$MODE@,ISO@}
+@/
+@{$Q+@}
+@/
+@{$R+@}
@z
[7] default case branch
@@ -96,7 +94,7 @@ program TANGLE(@!input,@!output);
@y
@d term_out == output
@d term_in == input
-@d print(#)==write(term_out,#) {`|print|' means write on the terminal}
+@d print(#)==write(#) {`|print|' means write on the terminal}
@z
[20] terminal output, implicitely defined in ISO Pasal
@@ -106,7 +104,7 @@ program TANGLE(@!input,@!output);
@y
@z
-[21] terminal output, output is rewritten implicitely in ISO Pascal
+[21] terminal output output is implicitely opened in Pascal
@x
@<Set init...@>=
rewrite(term_out,'TTY:'); {send |term_out| output to the terminal}
@@ -120,14 +118,33 @@ rewrite(term_out,'TTY:'); {send |term_out| output to the terminal}
@d update_terminal == do_nothing
@z
-[24] get file names from command line arguments
+[24] open input files
@x
+@p procedure open_input; {prepare to read |web_file| and |change_file|}
begin reset(web_file); reset(change_file);
+end;
@y
+@p procedure open_input; {prepare to read |web_file| and |change_file|}
begin
-assign(web_file, paramstr(1));
-assign(change_file, paramstr(2));
-reset(web_file); reset(change_file);
+assign(web_file, param_str(1));
+assign(change_file, param_str(2));
+@#
+@{$I-@}
+@#
+ioresult; reset(web_file);
+if ioresult <> 0 then begin
+ write_ln('Could not open web file: ', param_str(1));
+ halt(1);
+ end;
+ioresult; reset(change_file);
+if ioresult <> 0 then begin
+ write_ln('Could not open change file: ', param_str(2));
+ halt(1);
+ end;
+@#
+@{$I+@}
+@#
+end;
@z
[26] get file names from command line arguments
@@ -135,10 +152,27 @@ reset(web_file); reset(change_file);
rewrite(Pascal_file); rewrite(pool);
@y
if paramcount <> 4 then begin
- fatal_error('Usage: ntangle web_file change_file pascal_file pool_file');
+ write_ln('Usage: ', param_str(0),
+ ' web_file change_file Pascal_file pool_file');
+ halt(1);
end;
-assign(Pascal_file, paramstr(3)); assign(pool, paramstr(4));
-rewrite(Pascal_file); rewrite(pool);
+assign(Pascal_file, param_str(3)); assign(pool, param_str(4));
+@#
+@{$I-@}
+@#
+ioresult; rewrite(Pascal_file);
+if ioresult <> 0 then begin
+ write_ln('Could not open Pascal file: ', param_str(3));
+ halt(1);
+ end;
+ioresult; rewrite(pool);
+if ioresult <> 0 then begin
+ write_ln('Could not open pool file: ', param_str(4));
+ halt(1);
+ end;
+@#
+@{$I+@}
+@#
@z
[38] increase token capacity to tangle mf.
@@ -160,11 +194,14 @@ reset(term_in,'TTY:','/I'); {open |term_in| as the terminal, don't do a |get|}
@y
@z
-[183] close output files
+[182] close output files
@x
-@t\4\4@>{here files should be closed if the operating system requires it}
+end_of_TANGLE:
+if string_ptr>256 then @<Finish off the string pool file@>;
@y
-close(Pascal_file); close(pool);
+if string_ptr>256 then @<Finish off the string pool file@>;
+close (Pascal_file); close (pool);
+end_of_TANGLE:
@z
[187] put eol after last terminal out line
diff --git a/systems/unix/tex-fpc/web/tangle.p b/systems/unix/tex-fpc/tangle.p
index fcb3927326..a34f81d7dd 100644
--- a/systems/unix/tex-fpc/web/tangle.p
+++ b/systems/unix/tex-fpc/tangle.p
@@ -1,4 +1,4 @@
-{2:}{4:}{$MODE ISO}{:4}PROGRAM TANGLE(INPUT,OUTPUT);LABEL 9999;
+{2:}{4:}{$MODE ISO}{$Q+}{$R+}{:4}PROGRAM TANGLE(OUTPUT);LABEL 9999;
CONST{8:}BUFSIZE=100;MAXBYTES=45000;MAXTOKS=50000;MAXNAMES=4000;
MAXTEXTS=2000;HASHSIZE=353;LONGESTNAME=400;LINELENGTH=72;OUTBUFSIZE=144;
STACKSIZE=50;MAXIDLENGTH=12;UNAMBIGLENGT=7;
@@ -23,7 +23,7 @@ TEXTLINK:ARRAY[0..MAXTEXTS]OF SIXTEENBITS;{:38}{40:}NAMEPTR:NAMEPOINTER;
STRINGPTR:NAMEPOINTER;BYTEPTR:ARRAY[0..1]OF 0..MAXBYTES;
POOLCHECKSUM:INTEGER;{:40}{44:}TEXTPTR:TEXTPOINTER;
TOKPTR:ARRAY[0..3]OF 0..MAXTOKS;Z:0..3;
-MAXTOKPTR:ARRAY[0..3]OF 0..MAXTOKS;{:44}{50:}IDFIRST:0..BUFSIZE;
+{MAXTOKPTR:ARRAY[0..3]OF 0..MAXTOKS;}{:44}{50:}IDFIRST:0..BUFSIZE;
IDLOC:0..BUFSIZE;DOUBLECHARS:0..BUFSIZE;
HASH,CHOPHASH:ARRAY[0..HASHSIZE]OF SIXTEENBITS;
CHOPPEDID:ARRAY[0..UNAMBIGLENGT]OF ASCIICODE;
@@ -43,21 +43,19 @@ CHANGELIMIT:0..BUFSIZE;{:126}{143:}CURMODULE:NAMEPOINTER;
SCANNINGHEX:BOOLEAN;{:143}{156:}NEXTCONTROL:EIGHTBITS;
{:156}{164:}CURREPLTEXT:TEXTPOINTER;{:164}{171:}MODULECOUNT:0..12287;
{:171}{179:}{TROUBLESHOOT:BOOLEAN;DDT:INTEGER;DD:INTEGER;
-DEBUGCYCLE:INTEGER;DEBUGSKIPPED:INTEGER;}{:179}{185:}WO:0..1;
+DEBUGCYCLE:INTEGER;DEBUGSKIPPED:INTEGER;}{:179}{185:}{WO:0..1;}
{:185}{30:}{PROCEDURE DEBUGHELP;FORWARD;}{:30}{31:}PROCEDURE ERROR;
VAR J:0..OUTBUFSIZE;K,L:0..BUFSIZE;
-BEGIN IF PHASEONE THEN{32:}BEGIN IF CHANGING THEN WRITE(OUTPUT,
-'. (change file ')ELSE WRITE(OUTPUT,'. (');
-WRITELN(OUTPUT,'l.',LINE:1,')');IF LOC>=LIMIT THEN L:=LIMIT ELSE L:=LOC;
-FOR K:=1 TO L DO IF BUFFER[K-1]=9 THEN WRITE(OUTPUT,' ')ELSE WRITE(
-OUTPUT,XCHR[BUFFER[K-1]]);WRITELN(OUTPUT);
-FOR K:=1 TO L DO WRITE(OUTPUT,' ');
-FOR K:=L+1 TO LIMIT DO WRITE(OUTPUT,XCHR[BUFFER[K-1]]);
-WRITE(OUTPUT,' ');
+BEGIN IF PHASEONE THEN{32:}BEGIN IF CHANGING THEN WRITE(
+'. (change file ')ELSE WRITE('. (');WRITELN(OUTPUT,'l.',LINE:1,')');
+IF LOC>=LIMIT THEN L:=LIMIT ELSE L:=LOC;
+FOR K:=1 TO L DO IF BUFFER[K-1]=9 THEN WRITE(' ')ELSE WRITE(XCHR[BUFFER[
+K-1]]);WRITELN(OUTPUT);FOR K:=1 TO L DO WRITE(' ');
+FOR K:=L+1 TO LIMIT DO WRITE(XCHR[BUFFER[K-1]]);WRITE(' ');
END{:32}ELSE{33:}BEGIN WRITELN(OUTPUT,'. (l.',LINE:1,')');
-FOR J:=1 TO OUTPTR DO WRITE(OUTPUT,XCHR[OUTBUF[J-1]]);
-WRITE(OUTPUT,'... ');END{:33};;HISTORY:=2;{DEBUGSKIPPED:=DEBUGCYCLE;
-DEBUGHELP;}END;{:31}{34:}PROCEDURE JUMPOUT;BEGIN GOTO 9999;END;
+FOR J:=1 TO OUTPTR DO WRITE(XCHR[OUTBUF[J-1]]);WRITE('... ');END{:33};;
+HISTORY:=2;{DEBUGSKIPPED:=DEBUGCYCLE;DEBUGHELP;}END;
+{:31}{34:}PROCEDURE JUMPOUT;BEGIN GOTO 9999;END;
{:34}PROCEDURE INITIALIZE;VAR{16:}I:0..255;{:16}{41:}WI:0..1;
{:41}{45:}ZI:0..3;{:45}{51:}H:0..HASHSIZE;{:51}BEGIN{10:}HISTORY:=0;
{:10}{14:}XCHR[32]:=' ';XCHR[33]:='!';XCHR[34]:='"';XCHR[35]:='#';
@@ -85,21 +83,29 @@ XCHR[125]:='}';XCHR[126]:='~';XCHR[0]:=' ';XCHR[127]:=' ';
FOR I:=128 TO 255 DO XCHR[I]:=' ';
{:17}{18:}FOR I:=0 TO 255 DO XORD[CHR(I)]:=32;
FOR I:=1 TO 255 DO XORD[XCHR[I]]:=I;XORD[' ']:=32;
-{:18}{26:}IF PARAMCOUNT<>4 THEN BEGIN BEGIN WRITELN(OUTPUT);
-WRITE(OUTPUT,'Usage: ntangle web_file change_file pascal_file pool_file'
-);ERROR;HISTORY:=3;JUMPOUT;END;END;ASSIGN(PASCALFILE,PARAMSTR(3));
-ASSIGN(POOL,PARAMSTR(4));REWRITE(PASCALFILE);REWRITE(POOL);
-{:26}{42:}FOR WI:=0 TO 1 DO BEGIN BYTESTART[WI]:=0;BYTEPTR[WI]:=0;END;
-BYTESTART[2]:=0;NAMEPTR:=1;STRINGPTR:=256;POOLCHECKSUM:=271828;
-{:42}{46:}FOR ZI:=0 TO 3 DO BEGIN TOKSTART[ZI]:=0;TOKPTR[ZI]:=0;END;
-TOKSTART[4]:=0;TEXTPTR:=1;Z:=1 MOD 4;{:46}{48:}ILK[0]:=0;EQUIV[0]:=0;
+{:18}{26:}IF PARAMCOUNT<>4 THEN BEGIN WRITELN('Usage: ',PARAMSTR(0),
+' web_file change_file Pascal_file pool_file');HALT(1);END;
+ASSIGN(PASCALFILE,PARAMSTR(3));ASSIGN(POOL,PARAMSTR(4));{$I-}IORESULT;
+REWRITE(PASCALFILE);
+IF IORESULT<>0 THEN BEGIN WRITELN('Could not open Pascal file: ',
+PARAMSTR(3));HALT(1);END;IORESULT;REWRITE(POOL);
+IF IORESULT<>0 THEN BEGIN WRITELN('Could not open pool file: ',PARAMSTR(
+4));HALT(1);END;{$I+}{:26}{42:}FOR WI:=0 TO 1 DO BEGIN BYTESTART[WI]:=0;
+BYTEPTR[WI]:=0;END;BYTESTART[2]:=0;NAMEPTR:=1;STRINGPTR:=256;
+POOLCHECKSUM:=271828;{:42}{46:}FOR ZI:=0 TO 3 DO BEGIN TOKSTART[ZI]:=0;
+TOKPTR[ZI]:=0;END;TOKSTART[4]:=0;TEXTPTR:=1;Z:=1 MOD 4;
+{:46}{48:}ILK[0]:=0;EQUIV[0]:=0;
{:48}{52:}FOR H:=0 TO HASHSIZE-1 DO BEGIN HASH[H]:=0;CHOPHASH[H]:=0;END;
{:52}{71:}LASTUNNAMED:=0;TEXTLINK[0]:=0;{:71}{144:}SCANNINGHEX:=FALSE;
{:144}{152:}MODTEXT[0]:=32;{:152}{180:}{TROUBLESHOOT:=TRUE;
DEBUGCYCLE:=1;DEBUGSKIPPED:=0;TROUBLESHOOT:=FALSE;DEBUGCYCLE:=99999;}
{:180}END;{:2}{24:}PROCEDURE OPENINPUT;
-BEGIN ASSIGN(WEBFILE,PARAMSTR(1));ASSIGN(CHANGEFILE,PARAMSTR(2));
-RESET(WEBFILE);RESET(CHANGEFILE);END;
+BEGIN ASSIGN(WEBFILE,PARAMSTR(1));ASSIGN(CHANGEFILE,PARAMSTR(2));{$I-}
+IORESULT;RESET(WEBFILE);
+IF IORESULT<>0 THEN BEGIN WRITELN('Could not open web file: ',PARAMSTR(1
+));HALT(1);END;IORESULT;RESET(CHANGEFILE);
+IF IORESULT<>0 THEN BEGIN WRITELN('Could not open change file: ',
+PARAMSTR(2));HALT(1);END;{$I+}END;
{:24}{28:}FUNCTION INPUTLN(VAR F:TEXTFILE):BOOLEAN;
VAR FINALLIMIT:0..BUFSIZE;BEGIN LIMIT:=0;FINALLIMIT:=0;
IF EOF(F)THEN INPUTLN:=FALSE ELSE BEGIN WHILE NOT EOLN(F)DO BEGIN BUFFER
@@ -107,16 +113,15 @@ IF EOF(F)THEN INPUTLN:=FALSE ELSE BEGIN WHILE NOT EOLN(F)DO BEGIN BUFFER
IF BUFFER[LIMIT-1]<>32 THEN FINALLIMIT:=LIMIT;
IF LIMIT=BUFSIZE THEN BEGIN WHILE NOT EOLN(F)DO GET(F);LIMIT:=LIMIT-1;
IF FINALLIMIT>LIMIT THEN FINALLIMIT:=LIMIT;BEGIN WRITELN(OUTPUT);
-WRITE(OUTPUT,'! Input line too long');END;LOC:=0;ERROR;END;END;
-READLN(F);LIMIT:=FINALLIMIT;INPUTLN:=TRUE;END;END;
+WRITE('! Input line too long');END;LOC:=0;ERROR;END;END;READLN(F);
+LIMIT:=FINALLIMIT;INPUTLN:=TRUE;END;END;
{:28}{49:}PROCEDURE PRINTID(P:NAMEPOINTER);VAR K:0..MAXBYTES;W:0..1;
-BEGIN IF P>=NAMEPTR THEN WRITE(OUTPUT,'IMPOSSIBLE')ELSE BEGIN W:=P MOD 2
-;
-FOR K:=BYTESTART[P]TO BYTESTART[P+2]-1 DO WRITE(OUTPUT,XCHR[BYTEMEM[W,K]
-]);END;END;{:49}{53:}FUNCTION IDLOOKUP(T:EIGHTBITS):NAMEPOINTER;
-LABEL 31,32;VAR C:EIGHTBITS;I:0..BUFSIZE;H:0..HASHSIZE;K:0..MAXBYTES;
-W:0..1;L:0..BUFSIZE;P,Q:NAMEPOINTER;S:0..UNAMBIGLENGT;
-BEGIN L:=IDLOC-IDFIRST;{54:}H:=BUFFER[IDFIRST];I:=IDFIRST+1;
+BEGIN IF P>=NAMEPTR THEN WRITE('IMPOSSIBLE')ELSE BEGIN W:=P MOD 2;
+FOR K:=BYTESTART[P]TO BYTESTART[P+2]-1 DO WRITE(XCHR[BYTEMEM[W,K]]);END;
+END;{:49}{53:}FUNCTION IDLOOKUP(T:EIGHTBITS):NAMEPOINTER;LABEL 31,32;
+VAR C:EIGHTBITS;I:0..BUFSIZE;H:0..HASHSIZE;K:0..MAXBYTES;W:0..1;
+L:0..BUFSIZE;P,Q:NAMEPOINTER;S:0..UNAMBIGLENGT;BEGIN L:=IDLOC-IDFIRST;
+{54:}H:=BUFFER[IDFIRST];I:=IDFIRST+1;
WHILE I<IDLOC DO BEGIN H:=(H+H+BUFFER[I])MOD HASHSIZE;I:=I+1;END{:54};
{55:}P:=HASH[H];
WHILE P<>0 DO BEGIN IF BYTESTART[P+2]-BYTESTART[P]=L THEN{56:}BEGIN I:=
@@ -132,12 +137,11 @@ BUFFER[I]>=97 THEN CHOPPEDID[S]:=BUFFER[I]-32 ELSE CHOPPEDID[S]:=BUFFER[
I];H:=(H+H+CHOPPEDID[S])MOD HASHSIZE;S:=S+1;END;I:=I+1;END;
CHOPPEDID[S]:=0;END{:58};
IF P<>NAMEPTR THEN{59:}BEGIN IF ILK[P]=0 THEN BEGIN IF T=1 THEN BEGIN
-WRITELN(OUTPUT);WRITE(OUTPUT,'! This identifier has already appeared');
-ERROR;END;{60:}Q:=CHOPHASH[H];
+WRITELN(OUTPUT);WRITE('! This identifier has already appeared');ERROR;
+END;{60:}Q:=CHOPHASH[H];
IF Q=P THEN CHOPHASH[H]:=EQUIV[P]ELSE BEGIN WHILE EQUIV[Q]<>P DO Q:=
EQUIV[Q];EQUIV[Q]:=EQUIV[P];END{:60};END ELSE BEGIN WRITELN(OUTPUT);
-WRITE(OUTPUT,'! This identifier was defined before');ERROR;END;
-ILK[P]:=T;
+WRITE('! This identifier was defined before');ERROR;END;ILK[P]:=T;
END{:59}ELSE{61:}BEGIN IF(T=0)AND(BUFFER[IDFIRST]<>34)THEN{62:}BEGIN Q:=
CHOPHASH[H];WHILE Q<>0 DO BEGIN{63:}BEGIN K:=BYTESTART[Q];S:=0;
W:=Q MOD 2;
@@ -145,22 +149,21 @@ WHILE(K<BYTESTART[Q+2])AND(S<UNAMBIGLENGT)DO BEGIN C:=BYTEMEM[W,K];
IF C<>95 THEN BEGIN IF C>=97 THEN C:=C-32;
IF CHOPPEDID[S]<>C THEN GOTO 32;S:=S+1;END;K:=K+1;END;
IF(K=BYTESTART[Q+2])AND(CHOPPEDID[S]<>0)THEN GOTO 32;
-BEGIN WRITELN(OUTPUT);WRITE(OUTPUT,'! Identifier conflict with ');END;
-FOR K:=BYTESTART[Q]TO BYTESTART[Q+2]-1 DO WRITE(OUTPUT,XCHR[BYTEMEM[W,K]
-]);ERROR;Q:=0;32:END{:63};Q:=EQUIV[Q];END;EQUIV[P]:=CHOPHASH[H];
+BEGIN WRITELN(OUTPUT);WRITE('! Identifier conflict with ');END;
+FOR K:=BYTESTART[Q]TO BYTESTART[Q+2]-1 DO WRITE(XCHR[BYTEMEM[W,K]]);
+ERROR;Q:=0;32:END{:63};Q:=EQUIV[Q];END;EQUIV[P]:=CHOPHASH[H];
CHOPHASH[H]:=P;END{:62};W:=NAMEPTR MOD 2;K:=BYTEPTR[W];
IF K+L>MAXBYTES THEN BEGIN WRITELN(OUTPUT);
-WRITE(OUTPUT,'! Sorry, ','byte memory',' capacity exceeded');ERROR;
-HISTORY:=3;JUMPOUT;END;IF NAMEPTR>MAXNAMES-2 THEN BEGIN WRITELN(OUTPUT);
-WRITE(OUTPUT,'! Sorry, ','name',' capacity exceeded');ERROR;HISTORY:=3;
-JUMPOUT;END;I:=IDFIRST;WHILE I<IDLOC DO BEGIN BYTEMEM[W,K]:=BUFFER[I];
-K:=K+1;I:=I+1;END;BYTEPTR[W]:=K;BYTESTART[NAMEPTR+2]:=K;
-NAMEPTR:=NAMEPTR+1;
+WRITE('! Sorry, ','byte memory',' capacity exceeded');ERROR;HISTORY:=3;
+JUMPOUT;END;IF NAMEPTR>MAXNAMES-2 THEN BEGIN WRITELN(OUTPUT);
+WRITE('! Sorry, ','name',' capacity exceeded');ERROR;HISTORY:=3;JUMPOUT;
+END;I:=IDFIRST;WHILE I<IDLOC DO BEGIN BYTEMEM[W,K]:=BUFFER[I];K:=K+1;
+I:=I+1;END;BYTEPTR[W]:=K;BYTESTART[NAMEPTR+2]:=K;NAMEPTR:=NAMEPTR+1;
IF BUFFER[IDFIRST]<>34 THEN ILK[P]:=T ELSE{64:}BEGIN ILK[P]:=1;
IF L-DOUBLECHARS=2 THEN EQUIV[P]:=BUFFER[IDFIRST+1]+32768 ELSE BEGIN
EQUIV[P]:=STRINGPTR+32768;L:=L-DOUBLECHARS-1;
IF L>99 THEN BEGIN WRITELN(OUTPUT);
-WRITE(OUTPUT,'! Preprocessed string is too long');ERROR;END;
+WRITE('! Preprocessed string is too long');ERROR;END;
STRINGPTR:=STRINGPTR+1;WRITE(POOL,XCHR[48+L DIV 10],XCHR[48+L MOD 10]);
POOLCHECKSUM:=POOLCHECKSUM+POOLCHECKSUM+L;
WHILE POOLCHECKSUM>536870839 DO POOLCHECKSUM:=POOLCHECKSUM-536870839;
@@ -180,20 +183,19 @@ ELSE IF MODTEXT[J]<BYTEMEM[W,K]THEN C:=0 ELSE C:=2;END{:68};Q:=P;
IF C=0 THEN P:=LINK[Q]ELSE IF C=2 THEN P:=ILK[Q]ELSE GOTO 31;END;
{67:}W:=NAMEPTR MOD 2;K:=BYTEPTR[W];
IF K+L>MAXBYTES THEN BEGIN WRITELN(OUTPUT);
-WRITE(OUTPUT,'! Sorry, ','byte memory',' capacity exceeded');ERROR;
-HISTORY:=3;JUMPOUT;END;IF NAMEPTR>MAXNAMES-2 THEN BEGIN WRITELN(OUTPUT);
-WRITE(OUTPUT,'! Sorry, ','name',' capacity exceeded');ERROR;HISTORY:=3;
-JUMPOUT;END;P:=NAMEPTR;IF C=0 THEN LINK[Q]:=P ELSE ILK[Q]:=P;LINK[P]:=0;
+WRITE('! Sorry, ','byte memory',' capacity exceeded');ERROR;HISTORY:=3;
+JUMPOUT;END;IF NAMEPTR>MAXNAMES-2 THEN BEGIN WRITELN(OUTPUT);
+WRITE('! Sorry, ','name',' capacity exceeded');ERROR;HISTORY:=3;JUMPOUT;
+END;P:=NAMEPTR;IF C=0 THEN LINK[Q]:=P ELSE ILK[Q]:=P;LINK[P]:=0;
ILK[P]:=0;C:=1;EQUIV[P]:=0;
FOR J:=1 TO L DO BYTEMEM[W,K+J-1]:=MODTEXT[J];BYTEPTR[W]:=K+L;
BYTESTART[NAMEPTR+2]:=K+L;NAMEPTR:=NAMEPTR+1;{:67};
31:IF C<>1 THEN BEGIN BEGIN WRITELN(OUTPUT);
-WRITE(OUTPUT,'! Incompatible section names');ERROR;END;P:=0;END;
-MODLOOKUP:=P;END;
-{:66}{69:}FUNCTION PREFIXLOOKUP(L:SIXTEENBITS):NAMEPOINTER;VAR C:0..4;
-COUNT:0..MAXNAMES;J:0..LONGESTNAME;K:0..MAXBYTES;W:0..1;P:NAMEPOINTER;
-Q:NAMEPOINTER;R:NAMEPOINTER;BEGIN Q:=0;P:=ILK[0];COUNT:=0;R:=0;
-WHILE P<>0 DO BEGIN{68:}BEGIN K:=BYTESTART[P];W:=P MOD 2;C:=1;J:=1;
+WRITE('! Incompatible section names');ERROR;END;P:=0;END;MODLOOKUP:=P;
+END;{:66}{69:}FUNCTION PREFIXLOOKUP(L:SIXTEENBITS):NAMEPOINTER;
+VAR C:0..4;COUNT:0..MAXNAMES;J:0..LONGESTNAME;K:0..MAXBYTES;W:0..1;
+P:NAMEPOINTER;Q:NAMEPOINTER;R:NAMEPOINTER;BEGIN Q:=0;P:=ILK[0];COUNT:=0;
+R:=0;WHILE P<>0 DO BEGIN{68:}BEGIN K:=BYTESTART[P];W:=P MOD 2;C:=1;J:=1;
WHILE(K<BYTESTART[P+2])AND(J<=L)AND(MODTEXT[J]=BYTEMEM[W,K])DO BEGIN K:=
K+1;J:=J+1;END;
IF K=BYTESTART[P+2]THEN IF J>L THEN C:=1 ELSE C:=4 ELSE IF J>L THEN C:=3
@@ -201,32 +203,31 @@ ELSE IF MODTEXT[J]<BYTEMEM[W,K]THEN C:=0 ELSE C:=2;END{:68};
IF C=0 THEN P:=LINK[P]ELSE IF C=2 THEN P:=ILK[P]ELSE BEGIN R:=P;
COUNT:=COUNT+1;Q:=ILK[P];P:=LINK[P];END;IF P=0 THEN BEGIN P:=Q;Q:=0;END;
END;IF COUNT<>1 THEN IF COUNT=0 THEN BEGIN WRITELN(OUTPUT);
-WRITE(OUTPUT,'! Name does not match');ERROR;
-END ELSE BEGIN WRITELN(OUTPUT);WRITE(OUTPUT,'! Ambiguous prefix');ERROR;
-END;PREFIXLOOKUP:=R;END;{:69}{73:}PROCEDURE STORETWOBYTE(X:SIXTEENBITS);
+WRITE('! Name does not match');ERROR;END ELSE BEGIN WRITELN(OUTPUT);
+WRITE('! Ambiguous prefix');ERROR;END;PREFIXLOOKUP:=R;END;
+{:69}{73:}PROCEDURE STORETWOBYTE(X:SIXTEENBITS);
BEGIN IF TOKPTR[Z]+2>MAXTOKS THEN BEGIN WRITELN(OUTPUT);
-WRITE(OUTPUT,'! Sorry, ','token',' capacity exceeded');ERROR;HISTORY:=3;
+WRITE('! Sorry, ','token',' capacity exceeded');ERROR;HISTORY:=3;
JUMPOUT;END;TOKMEM[Z,TOKPTR[Z]]:=X DIV 256;
TOKMEM[Z,TOKPTR[Z]+1]:=X MOD 256;TOKPTR[Z]:=TOKPTR[Z]+2;END;
{:73}{74:}{PROCEDURE PRINTREPL(P:TEXTPOINTER);VAR K:0..MAXTOKS;
A:SIXTEENBITS;ZP:0..3;
-BEGIN IF P>=TEXTPTR THEN WRITE(OUTPUT,'BAD')ELSE BEGIN K:=TOKSTART[P];
+BEGIN IF P>=TEXTPTR THEN WRITE('BAD')ELSE BEGIN K:=TOKSTART[P];
ZP:=P MOD 4;WHILE K<TOKSTART[P+4]DO BEGIN A:=TOKMEM[ZP,K];
IF A>=128 THEN[75:]BEGIN K:=K+1;
IF A<168 THEN BEGIN A:=(A-128)*256+TOKMEM[ZP,K];PRINTID(A);
-IF BYTEMEM[A MOD 2,BYTESTART[A]]=34 THEN WRITE(OUTPUT,'"')ELSE WRITE(
-OUTPUT,' ');END ELSE IF A<208 THEN BEGIN WRITE(OUTPUT,'@<');
-PRINTID((A-168)*256+TOKMEM[ZP,K]);WRITE(OUTPUT,'@>');
+IF BYTEMEM[A MOD 2,BYTESTART[A]]=34 THEN WRITE('"')ELSE WRITE(' ');
+END ELSE IF A<208 THEN BEGIN WRITE('@<');
+PRINTID((A-168)*256+TOKMEM[ZP,K]);WRITE('@>');
END ELSE BEGIN A:=(A-208)*256+TOKMEM[ZP,K];
-WRITE(OUTPUT,'@',XCHR[123],A:1,'@',XCHR[125]);END;
-END[:75]ELSE[76:]CASE A OF 9:WRITE(OUTPUT,'@',XCHR[123]);
-10:WRITE(OUTPUT,'@',XCHR[125]);12:WRITE(OUTPUT,'@''');
-13:WRITE(OUTPUT,'@"');125:WRITE(OUTPUT,'@$');0:WRITE(OUTPUT,'#');
-64:WRITE(OUTPUT,'@@');2:WRITE(OUTPUT,'@=');3:WRITE(OUTPUT,'@\');
-ELSE WRITE(OUTPUT,XCHR[A])END[:76];K:=K+1;END;END;END;}
+WRITE('@',XCHR[123],A:1,'@',XCHR[125]);END;
+END[:75]ELSE[76:]CASE A OF 9:WRITE('@',XCHR[123]);
+10:WRITE('@',XCHR[125]);12:WRITE('@''');13:WRITE('@"');125:WRITE('@$');
+0:WRITE('#');64:WRITE('@@');2:WRITE('@=');3:WRITE('@\');
+ELSE WRITE(XCHR[A])END[:76];K:=K+1;END;END;END;}
{:74}{84:}PROCEDURE PUSHLEVEL(P:NAMEPOINTER);
BEGIN IF STACKPTR=STACKSIZE THEN BEGIN WRITELN(OUTPUT);
-WRITE(OUTPUT,'! Sorry, ','stack',' capacity exceeded');ERROR;HISTORY:=3;
+WRITE('! Sorry, ','stack',' capacity exceeded');ERROR;HISTORY:=3;
JUMPOUT;END ELSE BEGIN STACK[STACKPTR]:=CURSTATE;STACKPTR:=STACKPTR+1;
CURSTATE.NAMEFIELD:=P;CURSTATE.REPLFIELD:=EQUIV[P];
ZO:=CURSTATE.REPLFIELD MOD 4;
@@ -235,8 +236,8 @@ CURSTATE.ENDFIELD:=TOKSTART[CURSTATE.REPLFIELD+4];CURSTATE.MODFIELD:=0;
END;END;{:84}{85:}PROCEDURE POPLEVEL;LABEL 10;
BEGIN IF TEXTLINK[CURSTATE.REPLFIELD]=0 THEN BEGIN IF ILK[CURSTATE.
NAMEFIELD]=3 THEN{91:}BEGIN NAMEPTR:=NAMEPTR-1;TEXTPTR:=TEXTPTR-1;
-Z:=TEXTPTR MOD 4;IF TOKPTR[Z]>MAXTOKPTR[Z]THEN MAXTOKPTR[Z]:=TOKPTR[Z];
-TOKPTR[Z]:=TOKSTART[TEXTPTR];
+Z:=TEXTPTR MOD 4;{IF TOKPTR[Z]>MAXTOKPTR[Z]THEN MAXTOKPTR[Z]:=TOKPTR[Z];
+}TOKPTR[Z]:=TOKSTART[TEXTPTR];
{BYTEPTR[NAMEPTR MOD 2]:=BYTEPTR[NAMEPTR MOD 2]-1;}END{:91};
END ELSE IF TEXTLINK[CURSTATE.REPLFIELD]<MAXTEXTS THEN BEGIN CURSTATE.
REPLFIELD:=TEXTLINK[CURSTATE.REPLFIELD];ZO:=CURSTATE.REPLFIELD MOD 4;
@@ -260,64 +261,63 @@ END;
3:BEGIN{90:}WHILE(CURSTATE.BYTEFIELD=CURSTATE.ENDFIELD)AND(STACKPTR>0)DO
POPLEVEL;
IF(STACKPTR=0)OR(TOKMEM[ZO,CURSTATE.BYTEFIELD]<>40)THEN BEGIN BEGIN
-WRITELN(OUTPUT);WRITE(OUTPUT,'! No parameter given for ');END;
-PRINTID(A);ERROR;GOTO 20;END;{93:}BAL:=1;
-CURSTATE.BYTEFIELD:=CURSTATE.BYTEFIELD+1;
+WRITELN(OUTPUT);WRITE('! No parameter given for ');END;PRINTID(A);ERROR;
+GOTO 20;END;{93:}BAL:=1;CURSTATE.BYTEFIELD:=CURSTATE.BYTEFIELD+1;
WHILE TRUE DO BEGIN B:=TOKMEM[ZO,CURSTATE.BYTEFIELD];
CURSTATE.BYTEFIELD:=CURSTATE.BYTEFIELD+1;
IF B=0 THEN STORETWOBYTE(NAMEPTR+32767)ELSE BEGIN IF B>=128 THEN BEGIN
BEGIN IF TOKPTR[Z]=MAXTOKS THEN BEGIN WRITELN(OUTPUT);
-WRITE(OUTPUT,'! Sorry, ','token',' capacity exceeded');ERROR;HISTORY:=3;
+WRITE('! Sorry, ','token',' capacity exceeded');ERROR;HISTORY:=3;
JUMPOUT;END;TOKMEM[Z,TOKPTR[Z]]:=B;TOKPTR[Z]:=TOKPTR[Z]+1;END;
B:=TOKMEM[ZO,CURSTATE.BYTEFIELD];
CURSTATE.BYTEFIELD:=CURSTATE.BYTEFIELD+1;
END ELSE CASE B OF 40:BAL:=BAL+1;41:BEGIN BAL:=BAL-1;
IF BAL=0 THEN GOTO 30;END;
39:REPEAT BEGIN IF TOKPTR[Z]=MAXTOKS THEN BEGIN WRITELN(OUTPUT);
-WRITE(OUTPUT,'! Sorry, ','token',' capacity exceeded');ERROR;HISTORY:=3;
+WRITE('! Sorry, ','token',' capacity exceeded');ERROR;HISTORY:=3;
JUMPOUT;END;TOKMEM[Z,TOKPTR[Z]]:=B;TOKPTR[Z]:=TOKPTR[Z]+1;END;
B:=TOKMEM[ZO,CURSTATE.BYTEFIELD];
CURSTATE.BYTEFIELD:=CURSTATE.BYTEFIELD+1;UNTIL B=39;ELSE END;
BEGIN IF TOKPTR[Z]=MAXTOKS THEN BEGIN WRITELN(OUTPUT);
-WRITE(OUTPUT,'! Sorry, ','token',' capacity exceeded');ERROR;HISTORY:=3;
+WRITE('! Sorry, ','token',' capacity exceeded');ERROR;HISTORY:=3;
JUMPOUT;END;TOKMEM[Z,TOKPTR[Z]]:=B;TOKPTR[Z]:=TOKPTR[Z]+1;END;END;END;
30:{:93};EQUIV[NAMEPTR]:=TEXTPTR;ILK[NAMEPTR]:=2;W:=NAMEPTR MOD 2;
K:=BYTEPTR[W];{IF K=MAXBYTES THEN BEGIN WRITELN(OUTPUT);
-WRITE(OUTPUT,'! Sorry, ','byte memory',' capacity exceeded');ERROR;
-HISTORY:=3;JUMPOUT;END;BYTEMEM[W,K]:=35;K:=K+1;BYTEPTR[W]:=K;}
+WRITE('! Sorry, ','byte memory',' capacity exceeded');ERROR;HISTORY:=3;
+JUMPOUT;END;BYTEMEM[W,K]:=35;K:=K+1;BYTEPTR[W]:=K;}
IF NAMEPTR>MAXNAMES-2 THEN BEGIN WRITELN(OUTPUT);
-WRITE(OUTPUT,'! Sorry, ','name',' capacity exceeded');ERROR;HISTORY:=3;
-JUMPOUT;END;BYTESTART[NAMEPTR+2]:=K;NAMEPTR:=NAMEPTR+1;
+WRITE('! Sorry, ','name',' capacity exceeded');ERROR;HISTORY:=3;JUMPOUT;
+END;BYTESTART[NAMEPTR+2]:=K;NAMEPTR:=NAMEPTR+1;
IF TEXTPTR>MAXTEXTS-4 THEN BEGIN WRITELN(OUTPUT);
-WRITE(OUTPUT,'! Sorry, ','text',' capacity exceeded');ERROR;HISTORY:=3;
-JUMPOUT;END;TEXTLINK[TEXTPTR]:=0;TOKSTART[TEXTPTR+4]:=TOKPTR[Z];
+WRITE('! Sorry, ','text',' capacity exceeded');ERROR;HISTORY:=3;JUMPOUT;
+END;TEXTLINK[TEXTPTR]:=0;TOKSTART[TEXTPTR+4]:=TOKPTR[Z];
TEXTPTR:=TEXTPTR+1;Z:=TEXTPTR MOD 4{:90};PUSHLEVEL(A);GOTO 20;END;
-ELSE BEGIN WRITELN(OUTPUT);
-WRITE(OUTPUT,'! This can''t happen (','output',')');ERROR;HISTORY:=3;
-JUMPOUT;END END;GOTO 31;END{:89};IF A<20480 THEN{88:}BEGIN A:=A-10240;
+ELSE BEGIN WRITELN(OUTPUT);WRITE('! This can''t happen (','output',')');
+ERROR;HISTORY:=3;JUMPOUT;END END;GOTO 31;END{:89};
+IF A<20480 THEN{88:}BEGIN A:=A-10240;
IF EQUIV[A]<>0 THEN PUSHLEVEL(A)ELSE IF A<>0 THEN BEGIN BEGIN WRITELN(
-OUTPUT);WRITE(OUTPUT,'! Not present: <');END;PRINTID(A);
-WRITE(OUTPUT,'>');ERROR;END;GOTO 20;END{:88};CURVAL:=A-20480;A:=129;
-CURSTATE.MODFIELD:=CURVAL;31:{IF TROUBLESHOOT THEN DEBUGHELP;}
-GETOUTPUT:=A;END;{:87}{97:}PROCEDURE FLUSHBUFFER;VAR K:0..OUTBUFSIZE;
-B:0..OUTBUFSIZE;BEGIN B:=BREAKPTR;
+OUTPUT);WRITE('! Not present: <');END;PRINTID(A);WRITE('>');ERROR;END;
+GOTO 20;END{:88};CURVAL:=A-20480;A:=129;CURSTATE.MODFIELD:=CURVAL;
+31:{IF TROUBLESHOOT THEN DEBUGHELP;}GETOUTPUT:=A;END;
+{:87}{97:}PROCEDURE FLUSHBUFFER;VAR K:0..OUTBUFSIZE;B:0..OUTBUFSIZE;
+BEGIN B:=BREAKPTR;
IF(SEMIPTR<>0)AND(OUTPTR-SEMIPTR<=LINELENGTH)THEN BREAKPTR:=SEMIPTR;
FOR K:=1 TO BREAKPTR DO WRITE(PASCALFILE,XCHR[OUTBUF[K-1]]);
WRITELN(PASCALFILE);LINE:=LINE+1;
-IF LINE MOD 100=0 THEN BEGIN WRITE(OUTPUT,'.');
-IF LINE MOD 500=0 THEN WRITE(OUTPUT,LINE:1);;END;
+IF LINE MOD 100=0 THEN BEGIN WRITE('.');
+IF LINE MOD 500=0 THEN WRITE(LINE:1);;END;
IF BREAKPTR<OUTPTR THEN BEGIN IF OUTBUF[BREAKPTR]=32 THEN BEGIN BREAKPTR
:=BREAKPTR+1;IF BREAKPTR>B THEN B:=BREAKPTR;END;
FOR K:=BREAKPTR TO OUTPTR-1 DO OUTBUF[K-BREAKPTR]:=OUTBUF[K];END;
OUTPTR:=OUTPTR-BREAKPTR;BREAKPTR:=B-BREAKPTR;SEMIPTR:=0;
IF OUTPTR>LINELENGTH THEN BEGIN BEGIN WRITELN(OUTPUT);
-WRITE(OUTPUT,'! Long line must be truncated');ERROR;END;
-OUTPTR:=LINELENGTH;END;END;{:97}{99:}PROCEDURE APPVAL(V:INTEGER);
-VAR K:0..OUTBUFSIZE;BEGIN K:=OUTBUFSIZE;REPEAT OUTBUF[K]:=V MOD 10;
-V:=V DIV 10;K:=K-1;UNTIL V=0;REPEAT K:=K+1;
-BEGIN OUTBUF[OUTPTR]:=OUTBUF[K]+48;OUTPTR:=OUTPTR+1;END;
-UNTIL K=OUTBUFSIZE;END;{:99}{101:}PROCEDURE SENDOUT(T:EIGHTBITS;
-V:SIXTEENBITS);LABEL 20;VAR K:0..LINELENGTH;
+WRITE('! Long line must be truncated');ERROR;END;OUTPTR:=LINELENGTH;END;
+END;{:97}{99:}PROCEDURE APPVAL(V:INTEGER);VAR K:0..OUTBUFSIZE;
+BEGIN K:=OUTBUFSIZE;REPEAT OUTBUF[K]:=V MOD 10;V:=V DIV 10;K:=K-1;
+UNTIL V=0;REPEAT K:=K+1;BEGIN OUTBUF[OUTPTR]:=OUTBUF[K]+48;
+OUTPTR:=OUTPTR+1;END;UNTIL K=OUTBUFSIZE;END;
+{:99}{101:}PROCEDURE SENDOUT(T:EIGHTBITS;V:SIXTEENBITS);LABEL 20;
+VAR K:0..LINELENGTH;
BEGIN{102:}20:CASE OUTSTATE OF 1:IF T<>3 THEN BEGIN BREAKPTR:=OUTPTR;
IF T=2 THEN BEGIN OUTBUF[OUTPTR]:=32;OUTPTR:=OUTPTR+1;END;END;
2:BEGIN BEGIN OUTBUF[OUTPTR]:=44-OUTAPP;OUTPTR:=OUTPTR+1;END;
@@ -359,11 +359,11 @@ BREAKPTR]=47))THEN GOTO 666{:109};OUTSIGN:=0;OUTSTATE:=3;OUTVAL:=V;
BREAKPTR:=OUTPTR;LASTSIGN:=+1;END;{108:}2:BEGIN OUTSIGN:=43;OUTSTATE:=3;
OUTVAL:=OUTAPP*V;END;3:BEGIN OUTSTATE:=5;OUTAPP:=V;
BEGIN WRITELN(OUTPUT);
-WRITE(OUTPUT,'! Two numbers occurred without a sign between them');
-ERROR;END;END;4:BEGIN OUTSTATE:=5;OUTAPP:=OUTAPP*V;END;
+WRITE('! Two numbers occurred without a sign between them');ERROR;END;
+END;4:BEGIN OUTSTATE:=5;OUTAPP:=OUTAPP*V;END;
5:BEGIN OUTVAL:=OUTVAL+OUTAPP;OUTAPP:=V;BEGIN WRITELN(OUTPUT);
-WRITE(OUTPUT,'! Two numbers occurred without a sign between them');
-ERROR;END;END;{:108}ELSE GOTO 666 END;GOTO 10;
+WRITE('! Two numbers occurred without a sign between them');ERROR;END;
+END;{:108}ELSE GOTO 666 END;GOTO 10;
666:{111:}IF V>=0 THEN BEGIN IF OUTSTATE=1 THEN BEGIN BREAKPTR:=OUTPTR;
BEGIN OUTBUF[OUTPTR]:=32;OUTPTR:=OUTPTR+1;END;END;APPVAL(V);
IF OUTPTR>LINELENGTH THEN FLUSHBUFFER;OUTSTATE:=1;
@@ -386,18 +386,17 @@ IF OUTCONTRIB[K]>=97 THEN OUTCONTRIB[K]:=OUTCONTRIB[K]-32 ELSE IF
OUTCONTRIB[K]=95 THEN K:=K-1;END;SENDOUT(2,K);END;
{:116}{119:}48,49,50,51,52,53,54,55,56,57:BEGIN N:=0;
REPEAT CURCHAR:=CURCHAR-48;IF N>=214748364 THEN BEGIN WRITELN(OUTPUT);
-WRITE(OUTPUT,'! Constant too big');ERROR;END ELSE N:=10*N+CURCHAR;
+WRITE('! Constant too big');ERROR;END ELSE N:=10*N+CURCHAR;
CURCHAR:=GETOUTPUT;UNTIL(CURCHAR>57)OR(CURCHAR<48);SENDVAL(N);K:=0;
IF CURCHAR=101 THEN CURCHAR:=69;IF CURCHAR=69 THEN GOTO 2 ELSE GOTO 21;
END;125:SENDVAL(POOLCHECKSUM);12:BEGIN N:=0;CURCHAR:=48;
REPEAT CURCHAR:=CURCHAR-48;IF N>=268435456 THEN BEGIN WRITELN(OUTPUT);
-WRITE(OUTPUT,'! Constant too big');ERROR;END ELSE N:=8*N+CURCHAR;
+WRITE('! Constant too big');ERROR;END ELSE N:=8*N+CURCHAR;
CURCHAR:=GETOUTPUT;UNTIL(CURCHAR>55)OR(CURCHAR<48);SENDVAL(N);GOTO 21;
END;13:BEGIN N:=0;CURCHAR:=48;
REPEAT IF CURCHAR>=65 THEN CURCHAR:=CURCHAR-55 ELSE CURCHAR:=CURCHAR-48;
-IF N>=134217728 THEN BEGIN WRITELN(OUTPUT);
-WRITE(OUTPUT,'! Constant too big');ERROR;END ELSE N:=16*N+CURCHAR;
-CURCHAR:=GETOUTPUT;
+IF N>=134217728 THEN BEGIN WRITELN(OUTPUT);WRITE('! Constant too big');
+ERROR;END ELSE N:=16*N+CURCHAR;CURCHAR:=GETOUTPUT;
UNTIL(CURCHAR>70)OR(CURCHAR<48)OR((CURCHAR>57)AND(CURCHAR<65));
SENDVAL(N);GOTO 21;END;128:SENDVAL(CURVAL);46:BEGIN K:=1;
OUTCONTRIB[1]:=46;CURCHAR:=GETOUTPUT;
@@ -417,16 +416,16 @@ OUTCONTRIB[2]:=61;SENDOUT(1,2);END;32:BEGIN OUTCONTRIB[1]:=46;
OUTCONTRIB[2]:=46;SENDOUT(1,2);END;{:114}39:{117:}BEGIN K:=1;
OUTCONTRIB[1]:=39;REPEAT IF K<LINELENGTH THEN K:=K+1;
OUTCONTRIB[K]:=GETOUTPUT;UNTIL(OUTCONTRIB[K]=39)OR(STACKPTR=0);
-IF K=LINELENGTH THEN BEGIN WRITELN(OUTPUT);
-WRITE(OUTPUT,'! String too long');ERROR;END;SENDOUT(1,K);
-CURCHAR:=GETOUTPUT;IF CURCHAR=39 THEN OUTSTATE:=6;GOTO 21;END{:117};
+IF K=LINELENGTH THEN BEGIN WRITELN(OUTPUT);WRITE('! String too long');
+ERROR;END;SENDOUT(1,K);CURCHAR:=GETOUTPUT;
+IF CURCHAR=39 THEN OUTSTATE:=6;GOTO 21;END{:117};
{115:}33,34,35,36,37,38,40,41,42,44,47,58,59,60,61,62,63,64,91,92,93,94,
95,96,123,124{:115}:SENDOUT(0,CURCHAR);
{121:}9:BEGIN IF BRACELEVEL=0 THEN SENDOUT(0,123)ELSE SENDOUT(0,91);
BRACELEVEL:=BRACELEVEL+1;END;
10:IF BRACELEVEL>0 THEN BEGIN BRACELEVEL:=BRACELEVEL-1;
IF BRACELEVEL=0 THEN SENDOUT(0,125)ELSE SENDOUT(0,93);
-END ELSE BEGIN WRITELN(OUTPUT);WRITE(OUTPUT,'! Extra @}');ERROR;END;
+END ELSE BEGIN WRITELN(OUTPUT);WRITE('! Extra @}');ERROR;END;
129:BEGIN K:=2;
IF BRACELEVEL=0 THEN OUTCONTRIB[1]:=123 ELSE OUTCONTRIB[1]:=91;
IF CURVAL<0 THEN BEGIN OUTCONTRIB[K]:=58;CURVAL:=-CURVAL;K:=K+1;END;
@@ -438,22 +437,21 @@ SENDOUT(1,K);END;{:121}127:BEGIN SENDOUT(3,0);OUTSTATE:=6;END;
2:{118:}BEGIN K:=0;REPEAT IF K<LINELENGTH THEN K:=K+1;
OUTCONTRIB[K]:=GETOUTPUT;UNTIL(OUTCONTRIB[K]=2)OR(STACKPTR=0);
IF K=LINELENGTH THEN BEGIN WRITELN(OUTPUT);
-WRITE(OUTPUT,'! Verbatim string too long');ERROR;END;SENDOUT(1,K-1);
-END{:118};3:{122:}BEGIN SENDOUT(1,0);
+WRITE('! Verbatim string too long');ERROR;END;SENDOUT(1,K-1);END{:118};
+3:{122:}BEGIN SENDOUT(1,0);
WHILE OUTPTR>0 DO BEGIN IF OUTPTR<=LINELENGTH THEN BREAKPTR:=OUTPTR;
FLUSHBUFFER;END;OUTSTATE:=0;END{:122};ELSE BEGIN WRITELN(OUTPUT);
-WRITE(OUTPUT,'! Can''t output ASCII code ',CURCHAR:1);ERROR;END END;
-GOTO 22;2:{120:}REPEAT IF K<LINELENGTH THEN K:=K+1;
-OUTCONTRIB[K]:=CURCHAR;CURCHAR:=GETOUTPUT;
+WRITE('! Can''t output ASCII code ',CURCHAR:1);ERROR;END END;GOTO 22;
+2:{120:}REPEAT IF K<LINELENGTH THEN K:=K+1;OUTCONTRIB[K]:=CURCHAR;
+CURCHAR:=GETOUTPUT;
IF(OUTCONTRIB[K]=69)AND((CURCHAR=43)OR(CURCHAR=45))THEN BEGIN IF K<
LINELENGTH THEN K:=K+1;OUTCONTRIB[K]:=CURCHAR;CURCHAR:=GETOUTPUT;
END ELSE IF CURCHAR=101 THEN CURCHAR:=69;
UNTIL(CURCHAR<>69)AND((CURCHAR<48)OR(CURCHAR>57));
-IF K=LINELENGTH THEN BEGIN WRITELN(OUTPUT);
-WRITE(OUTPUT,'! Fraction too long');ERROR;END;SENDOUT(3,K);
-GOTO 21{:120};22:END;END;{:113}{127:}FUNCTION LINESDONTMAT:BOOLEAN;
-LABEL 10;VAR K:0..BUFSIZE;BEGIN LINESDONTMAT:=TRUE;
-IF CHANGELIMIT<>LIMIT THEN GOTO 10;
+IF K=LINELENGTH THEN BEGIN WRITELN(OUTPUT);WRITE('! Fraction too long');
+ERROR;END;SENDOUT(3,K);GOTO 21{:120};22:END;END;
+{:113}{127:}FUNCTION LINESDONTMAT:BOOLEAN;LABEL 10;VAR K:0..BUFSIZE;
+BEGIN LINESDONTMAT:=TRUE;IF CHANGELIMIT<>LIMIT THEN GOTO 10;
IF LIMIT>0 THEN FOR K:=0 TO LIMIT-1 DO IF CHANGEBUFFER[K]<>BUFFER[K]THEN
GOTO 10;LINESDONTMAT:=FALSE;10:END;{:127}{128:}PROCEDURE PRIMETHECHAN;
LABEL 22,30,10;VAR K:0..BUFSIZE;BEGIN CHANGELIMIT:=0;
@@ -463,10 +461,10 @@ IF BUFFER[0]<>64 THEN GOTO 22;
IF(BUFFER[1]>=88)AND(BUFFER[1]<=90)THEN BUFFER[1]:=BUFFER[1]+32;
IF BUFFER[1]=120 THEN GOTO 30;
IF(BUFFER[1]=121)OR(BUFFER[1]=122)THEN BEGIN LOC:=2;
-BEGIN WRITELN(OUTPUT);WRITE(OUTPUT,'! Where is the matching @x?');ERROR;
-END;END;22:END;30:{:129};{130:}REPEAT LINE:=LINE+1;
+BEGIN WRITELN(OUTPUT);WRITE('! Where is the matching @x?');ERROR;END;
+END;22:END;30:{:129};{130:}REPEAT LINE:=LINE+1;
IF NOT INPUTLN(CHANGEFILE)THEN BEGIN BEGIN WRITELN(OUTPUT);
-WRITE(OUTPUT,'! Change file ended after @x');ERROR;END;GOTO 10;END;
+WRITE('! Change file ended after @x');ERROR;END;GOTO 10;END;
UNTIL LIMIT>0;{:130};{131:}BEGIN CHANGELIMIT:=LIMIT;
IF LIMIT>0 THEN FOR K:=0 TO LIMIT-1 DO CHANGEBUFFER[K]:=BUFFER[K];
END{:131};10:END;{:128}{132:}PROCEDURE CHECKCHANGE;LABEL 10;
@@ -474,33 +472,33 @@ VAR N:INTEGER;K:0..BUFSIZE;BEGIN IF LINESDONTMAT THEN GOTO 10;N:=0;
WHILE TRUE DO BEGIN CHANGING:=NOT CHANGING;TEMPLINE:=OTHERLINE;
OTHERLINE:=LINE;LINE:=TEMPLINE;LINE:=LINE+1;
IF NOT INPUTLN(CHANGEFILE)THEN BEGIN BEGIN WRITELN(OUTPUT);
-WRITE(OUTPUT,'! Change file ended before @y');ERROR;END;CHANGELIMIT:=0;
+WRITE('! Change file ended before @y');ERROR;END;CHANGELIMIT:=0;
CHANGING:=NOT CHANGING;TEMPLINE:=OTHERLINE;OTHERLINE:=LINE;
LINE:=TEMPLINE;GOTO 10;END;
{133:}IF LIMIT>1 THEN IF BUFFER[0]=64 THEN BEGIN IF(BUFFER[1]>=88)AND(
BUFFER[1]<=90)THEN BUFFER[1]:=BUFFER[1]+32;
IF(BUFFER[1]=120)OR(BUFFER[1]=122)THEN BEGIN LOC:=2;
-BEGIN WRITELN(OUTPUT);WRITE(OUTPUT,'! Where is the matching @y?');ERROR;
-END;END ELSE IF BUFFER[1]=121 THEN BEGIN IF N>0 THEN BEGIN LOC:=2;
+BEGIN WRITELN(OUTPUT);WRITE('! Where is the matching @y?');ERROR;END;
+END ELSE IF BUFFER[1]=121 THEN BEGIN IF N>0 THEN BEGIN LOC:=2;
BEGIN WRITELN(OUTPUT);
-WRITE(OUTPUT,'! Hmm... ',N:1,' of the preceding lines failed to match');
-ERROR;END;END;GOTO 10;END;END{:133};{131:}BEGIN CHANGELIMIT:=LIMIT;
+WRITE('! Hmm... ',N:1,' of the preceding lines failed to match');ERROR;
+END;END;GOTO 10;END;END{:133};{131:}BEGIN CHANGELIMIT:=LIMIT;
IF LIMIT>0 THEN FOR K:=0 TO LIMIT-1 DO CHANGEBUFFER[K]:=BUFFER[K];
END{:131};CHANGING:=NOT CHANGING;TEMPLINE:=OTHERLINE;OTHERLINE:=LINE;
LINE:=TEMPLINE;LINE:=LINE+1;
IF NOT INPUTLN(WEBFILE)THEN BEGIN BEGIN WRITELN(OUTPUT);
-WRITE(OUTPUT,'! WEB file ended during a change');ERROR;END;
-INPUTHASENDE:=TRUE;GOTO 10;END;IF LINESDONTMAT THEN N:=N+1;END;10:END;
+WRITE('! WEB file ended during a change');ERROR;END;INPUTHASENDE:=TRUE;
+GOTO 10;END;IF LINESDONTMAT THEN N:=N+1;END;10:END;
{:132}{135:}PROCEDURE GETLINE;LABEL 20;
BEGIN 20:IF CHANGING THEN{137:}BEGIN LINE:=LINE+1;
IF NOT INPUTLN(CHANGEFILE)THEN BEGIN BEGIN WRITELN(OUTPUT);
-WRITE(OUTPUT,'! Change file ended without @z');ERROR;END;BUFFER[0]:=64;
+WRITE('! Change file ended without @z');ERROR;END;BUFFER[0]:=64;
BUFFER[1]:=122;LIMIT:=2;END;
IF LIMIT>1 THEN IF BUFFER[0]=64 THEN BEGIN IF(BUFFER[1]>=88)AND(BUFFER[1
]<=90)THEN BUFFER[1]:=BUFFER[1]+32;
IF(BUFFER[1]=120)OR(BUFFER[1]=121)THEN BEGIN LOC:=2;
-BEGIN WRITELN(OUTPUT);WRITE(OUTPUT,'! Where is the matching @z?');ERROR;
-END;END ELSE IF BUFFER[1]=122 THEN BEGIN PRIMETHECHAN;
+BEGIN WRITELN(OUTPUT);WRITE('! Where is the matching @z?');ERROR;END;
+END ELSE IF BUFFER[1]=122 THEN BEGIN PRIMETHECHAN;
CHANGING:=NOT CHANGING;TEMPLINE:=OTHERLINE;OTHERLINE:=LINE;
LINE:=TEMPLINE;END;END;END{:137};
IF NOT CHANGING THEN BEGIN{136:}BEGIN LINE:=LINE+1;
@@ -510,7 +508,7 @@ END{:136};IF CHANGING THEN GOTO 20;END;LOC:=0;BUFFER[LIMIT]:=32;END;
{:135}{139:}FUNCTION CONTROLCODE(C:ASCIICODE):EIGHTBITS;
BEGIN CASE C OF 64:CONTROLCODE:=64;39:CONTROLCODE:=12;
34:CONTROLCODE:=13;36:CONTROLCODE:=125;32,9:CONTROLCODE:=136;
-42:BEGIN WRITE(OUTPUT,'*',MODULECOUNT+1:1);;CONTROLCODE:=136;END;
+42:BEGIN WRITE('*',MODULECOUNT+1:1);;CONTROLCODE:=136;END;
68,100:CONTROLCODE:=133;70,102:CONTROLCODE:=132;123:CONTROLCODE:=9;
125:CONTROLCODE:=10;80,112:CONTROLCODE:=134;
84,116,94,46,58:CONTROLCODE:=131;38:CONTROLCODE:=127;
@@ -525,12 +523,11 @@ END;END;30:SKIPAHEAD:=C;END;{:140}{141:}PROCEDURE SKIPCOMMENT;LABEL 10;
VAR BAL:EIGHTBITS;C:ASCIICODE;BEGIN BAL:=0;
WHILE TRUE DO BEGIN IF LOC>LIMIT THEN BEGIN GETLINE;
IF INPUTHASENDE THEN BEGIN BEGIN WRITELN(OUTPUT);
-WRITE(OUTPUT,'! Input ended in mid-comment');ERROR;END;GOTO 10;END;END;
+WRITE('! Input ended in mid-comment');ERROR;END;GOTO 10;END;END;
C:=BUFFER[LOC];LOC:=LOC+1;{142:}IF C=64 THEN BEGIN C:=BUFFER[LOC];
IF(C<>32)AND(C<>9)AND(C<>42)AND(C<>122)AND(C<>90)THEN LOC:=LOC+1 ELSE
-BEGIN BEGIN WRITELN(OUTPUT);
-WRITE(OUTPUT,'! Section ended in mid-comment');ERROR;END;LOC:=LOC-1;
-GOTO 10;
+BEGIN BEGIN WRITELN(OUTPUT);WRITE('! Section ended in mid-comment');
+ERROR;END;LOC:=LOC-1;GOTO 10;
END END ELSE IF(C=92)AND(BUFFER[LOC]<>64)THEN LOC:=LOC+1 ELSE IF C=123
THEN BAL:=BAL+1 ELSE IF C=125 THEN BEGIN IF BAL=0 THEN GOTO 10;
BAL:=BAL-1;END{:142};END;10:END;{:141}{145:}FUNCTION GETNEXT:EIGHTBITS;
@@ -553,26 +550,26 @@ REPEAT D:=BUFFER[LOC];LOC:=LOC+1;
IF(D=34)OR(D=64)THEN IF BUFFER[LOC]=D THEN BEGIN LOC:=LOC+1;D:=0;
DOUBLECHARS:=DOUBLECHARS+1;
END ELSE BEGIN IF D=64 THEN BEGIN WRITELN(OUTPUT);
-WRITE(OUTPUT,'! Double @ sign missing');ERROR;
+WRITE('! Double @ sign missing');ERROR;
END END ELSE IF LOC>LIMIT THEN BEGIN BEGIN WRITELN(OUTPUT);
-WRITE(OUTPUT,'! String constant didn''t end');ERROR;END;D:=34;END;
-UNTIL D=34;IDLOC:=LOC-1;C:=130;END{:149};
+WRITE('! String constant didn''t end');ERROR;END;D:=34;END;UNTIL D=34;
+IDLOC:=LOC-1;C:=130;END{:149};
64:{150:}BEGIN C:=CONTROLCODE(BUFFER[LOC]);LOC:=LOC+1;
IF C=0 THEN GOTO 20 ELSE IF C=13 THEN SCANNINGHEX:=TRUE ELSE IF C=135
THEN{151:}BEGIN{153:}K:=0;
WHILE TRUE DO BEGIN IF LOC>LIMIT THEN BEGIN GETLINE;
IF INPUTHASENDE THEN BEGIN BEGIN WRITELN(OUTPUT);
-WRITE(OUTPUT,'! Input ended in section name');ERROR;END;GOTO 30;END;END;
+WRITE('! Input ended in section name');ERROR;END;GOTO 30;END;END;
D:=BUFFER[LOC];{154:}IF D=64 THEN BEGIN D:=BUFFER[LOC+1];
IF D=62 THEN BEGIN LOC:=LOC+2;GOTO 30;END;
IF(D=32)OR(D=9)OR(D=42)THEN BEGIN BEGIN WRITELN(OUTPUT);
-WRITE(OUTPUT,'! Section name didn''t end');ERROR;END;GOTO 30;END;K:=K+1;
+WRITE('! Section name didn''t end');ERROR;END;GOTO 30;END;K:=K+1;
MODTEXT[K]:=64;LOC:=LOC+1;END{:154};LOC:=LOC+1;
IF K<LONGESTNAME-1 THEN K:=K+1;IF(D=32)OR(D=9)THEN BEGIN D:=32;
IF MODTEXT[K-1]=32 THEN K:=K-1;END;MODTEXT[K]:=D;END;
30:{155:}IF K>=LONGESTNAME-2 THEN BEGIN BEGIN WRITELN(OUTPUT);
-WRITE(OUTPUT,'! Section name too long: ');END;
-FOR J:=1 TO 25 DO WRITE(OUTPUT,XCHR[MODTEXT[J]]);WRITE(OUTPUT,'...');
+WRITE('! Section name too long: ');END;
+FOR J:=1 TO 25 DO WRITE(XCHR[MODTEXT[J]]);WRITE('...');
IF HISTORY=0 THEN HISTORY:=1;END{:155};
IF(MODTEXT[K]=32)AND(K>0)THEN K:=K-1;{:153};
IF K>3 THEN BEGIN IF(MODTEXT[K]=46)AND(MODTEXT[K-1]=46)AND(MODTEXT[K-2]=
@@ -580,7 +577,7 @@ IF K>3 THEN BEGIN IF(MODTEXT[K]=46)AND(MODTEXT[K-1]=46)AND(MODTEXT[K-2]=
END ELSE CURMODULE:=MODLOOKUP(K);
END{:151}ELSE IF C=131 THEN BEGIN REPEAT C:=SKIPAHEAD;UNTIL C<>64;
IF BUFFER[LOC-1]<>62 THEN BEGIN WRITELN(OUTPUT);
-WRITE(OUTPUT,'! Improper @ within control text');ERROR;END;GOTO 20;END;
+WRITE('! Improper @ within control text');ERROR;END;GOTO 20;END;
END{:150};
{147:}46:IF BUFFER[LOC]=46 THEN BEGIN IF LOC<=LIMIT THEN BEGIN C:=32;
LOC:=LOC+1;END;
@@ -602,8 +599,8 @@ END ELSE IF BUFFER[LOC]=46 THEN BEGIN IF LOC<=LIMIT THEN BEGIN C:=91;
LOC:=LOC+1;END;END;
42:IF BUFFER[LOC]=41 THEN BEGIN IF LOC<=LIMIT THEN BEGIN C:=10;
LOC:=LOC+1;END;END;{:147}32,9:GOTO 20;123:BEGIN SKIPCOMMENT;GOTO 20;END;
-125:BEGIN BEGIN WRITELN(OUTPUT);WRITE(OUTPUT,'! Extra }');ERROR;END;
-GOTO 20;END;ELSE IF C>=128 THEN GOTO 20 ELSE END;
+125:BEGIN BEGIN WRITELN(OUTPUT);WRITE('! Extra }');ERROR;END;GOTO 20;
+END;ELSE IF C>=128 THEN GOTO 20 ELSE END;
31:{IF TROUBLESHOOT THEN DEBUGHELP;}GETNEXT:=C;END;
{:145}{157:}PROCEDURE SCANNUMERIC(P:NAMEPOINTER);LABEL 21,30;
VAR ACCUMULATOR:INTEGER;NEXTSIGN:-1..+1;Q:NAMEPOINTER;VAL:INTEGER;
@@ -627,77 +624,76 @@ IF ILK[Q]<>1 THEN BEGIN NEXTCONTROL:=42;GOTO 21;END;
BEGIN ACCUMULATOR:=ACCUMULATOR+NEXTSIGN*(EQUIV[Q]-32768);NEXTSIGN:=+1;
END;END;43:;45:NEXTSIGN:=-NEXTSIGN;132,133,135,134,136:GOTO 30;
59:BEGIN WRITELN(OUTPUT);
-WRITE(OUTPUT,'! Omit semicolon in numeric definition');ERROR;END;
+WRITE('! Omit semicolon in numeric definition');ERROR;END;
ELSE{159:}BEGIN BEGIN WRITELN(OUTPUT);
-WRITE(OUTPUT,'! Improper numeric definition will be flushed');ERROR;END;
+WRITE('! Improper numeric definition will be flushed');ERROR;END;
REPEAT NEXTCONTROL:=SKIPAHEAD UNTIL(NEXTCONTROL>=132);
IF NEXTCONTROL=135 THEN BEGIN LOC:=LOC-2;NEXTCONTROL:=GETNEXT;END;
ACCUMULATOR:=0;GOTO 30;END{:159}END;END;30:{:158};
IF ABS(ACCUMULATOR)>=32768 THEN BEGIN BEGIN WRITELN(OUTPUT);
-WRITE(OUTPUT,'! Value too big: ',ACCUMULATOR:1);ERROR;END;
-ACCUMULATOR:=0;END;EQUIV[P]:=ACCUMULATOR+32768;END;
+WRITE('! Value too big: ',ACCUMULATOR:1);ERROR;END;ACCUMULATOR:=0;END;
+EQUIV[P]:=ACCUMULATOR+32768;END;
{:157}{165:}PROCEDURE SCANREPL(T:EIGHTBITS);LABEL 22,30,31,21;
VAR A:SIXTEENBITS;B:ASCIICODE;BAL:EIGHTBITS;BEGIN BAL:=0;
WHILE TRUE DO BEGIN 22:A:=GETNEXT;CASE A OF 40:BAL:=BAL+1;
-41:IF BAL=0 THEN BEGIN WRITELN(OUTPUT);WRITE(OUTPUT,'! Extra )');ERROR;
+41:IF BAL=0 THEN BEGIN WRITELN(OUTPUT);WRITE('! Extra )');ERROR;
END ELSE BAL:=BAL-1;39:{168:}BEGIN B:=39;
WHILE TRUE DO BEGIN BEGIN IF TOKPTR[Z]=MAXTOKS THEN BEGIN WRITELN(OUTPUT
-);WRITE(OUTPUT,'! Sorry, ','token',' capacity exceeded');ERROR;
-HISTORY:=3;JUMPOUT;END;TOKMEM[Z,TOKPTR[Z]]:=B;TOKPTR[Z]:=TOKPTR[Z]+1;
-END;
+);WRITE('! Sorry, ','token',' capacity exceeded');ERROR;HISTORY:=3;
+JUMPOUT;END;TOKMEM[Z,TOKPTR[Z]]:=B;TOKPTR[Z]:=TOKPTR[Z]+1;END;
IF B=64 THEN IF BUFFER[LOC]=64 THEN LOC:=LOC+1 ELSE BEGIN WRITELN(OUTPUT
-);WRITE(OUTPUT,'! You should double @ signs in strings');ERROR;END;
+);WRITE('! You should double @ signs in strings');ERROR;END;
IF LOC=LIMIT THEN BEGIN BEGIN WRITELN(OUTPUT);
-WRITE(OUTPUT,'! String didn''t end');ERROR;END;BUFFER[LOC]:=39;
+WRITE('! String didn''t end');ERROR;END;BUFFER[LOC]:=39;
BUFFER[LOC+1]:=0;END;B:=BUFFER[LOC];LOC:=LOC+1;
IF B=39 THEN BEGIN IF BUFFER[LOC]<>39 THEN GOTO 31 ELSE BEGIN LOC:=LOC+1
;BEGIN IF TOKPTR[Z]=MAXTOKS THEN BEGIN WRITELN(OUTPUT);
-WRITE(OUTPUT,'! Sorry, ','token',' capacity exceeded');ERROR;HISTORY:=3;
+WRITE('! Sorry, ','token',' capacity exceeded');ERROR;HISTORY:=3;
JUMPOUT;END;TOKMEM[Z,TOKPTR[Z]]:=39;TOKPTR[Z]:=TOKPTR[Z]+1;END;END;END;
END;31:END{:168};35:IF T=3 THEN A:=0;{167:}130:BEGIN A:=IDLOOKUP(0);
BEGIN IF TOKPTR[Z]=MAXTOKS THEN BEGIN WRITELN(OUTPUT);
-WRITE(OUTPUT,'! Sorry, ','token',' capacity exceeded');ERROR;HISTORY:=3;
+WRITE('! Sorry, ','token',' capacity exceeded');ERROR;HISTORY:=3;
JUMPOUT;END;TOKMEM[Z,TOKPTR[Z]]:=(A DIV 256)+128;TOKPTR[Z]:=TOKPTR[Z]+1;
END;A:=A MOD 256;END;
135:IF T<>135 THEN GOTO 30 ELSE BEGIN BEGIN IF TOKPTR[Z]=MAXTOKS THEN
-BEGIN WRITELN(OUTPUT);
-WRITE(OUTPUT,'! Sorry, ','token',' capacity exceeded');ERROR;HISTORY:=3;
-JUMPOUT;END;TOKMEM[Z,TOKPTR[Z]]:=(CURMODULE DIV 256)+168;
-TOKPTR[Z]:=TOKPTR[Z]+1;END;A:=CURMODULE MOD 256;END;
+BEGIN WRITELN(OUTPUT);WRITE('! Sorry, ','token',' capacity exceeded');
+ERROR;HISTORY:=3;JUMPOUT;END;
+TOKMEM[Z,TOKPTR[Z]]:=(CURMODULE DIV 256)+168;TOKPTR[Z]:=TOKPTR[Z]+1;END;
+A:=CURMODULE MOD 256;END;
2:{169:}BEGIN BEGIN IF TOKPTR[Z]=MAXTOKS THEN BEGIN WRITELN(OUTPUT);
-WRITE(OUTPUT,'! Sorry, ','token',' capacity exceeded');ERROR;HISTORY:=3;
+WRITE('! Sorry, ','token',' capacity exceeded');ERROR;HISTORY:=3;
JUMPOUT;END;TOKMEM[Z,TOKPTR[Z]]:=2;TOKPTR[Z]:=TOKPTR[Z]+1;END;
BUFFER[LIMIT+1]:=64;
21:IF BUFFER[LOC]=64 THEN BEGIN IF LOC<LIMIT THEN IF BUFFER[LOC+1]=64
THEN BEGIN BEGIN IF TOKPTR[Z]=MAXTOKS THEN BEGIN WRITELN(OUTPUT);
-WRITE(OUTPUT,'! Sorry, ','token',' capacity exceeded');ERROR;HISTORY:=3;
+WRITE('! Sorry, ','token',' capacity exceeded');ERROR;HISTORY:=3;
JUMPOUT;END;TOKMEM[Z,TOKPTR[Z]]:=64;TOKPTR[Z]:=TOKPTR[Z]+1;END;
LOC:=LOC+2;GOTO 21;END;
END ELSE BEGIN BEGIN IF TOKPTR[Z]=MAXTOKS THEN BEGIN WRITELN(OUTPUT);
-WRITE(OUTPUT,'! Sorry, ','token',' capacity exceeded');ERROR;HISTORY:=3;
+WRITE('! Sorry, ','token',' capacity exceeded');ERROR;HISTORY:=3;
JUMPOUT;END;TOKMEM[Z,TOKPTR[Z]]:=BUFFER[LOC];TOKPTR[Z]:=TOKPTR[Z]+1;END;
LOC:=LOC+1;GOTO 21;END;IF LOC>=LIMIT THEN BEGIN WRITELN(OUTPUT);
-WRITE(OUTPUT,'! Verbatim string didn''t end');ERROR;
+WRITE('! Verbatim string didn''t end');ERROR;
END ELSE IF BUFFER[LOC+1]<>62 THEN BEGIN WRITELN(OUTPUT);
-WRITE(OUTPUT,'! You should double @ signs in verbatim strings');ERROR;
-END;LOC:=LOC+2;END{:169};
+WRITE('! You should double @ signs in verbatim strings');ERROR;END;
+LOC:=LOC+2;END{:169};
133,132,134:IF T<>135 THEN GOTO 30 ELSE BEGIN BEGIN WRITELN(OUTPUT);
-WRITE(OUTPUT,'! @',XCHR[BUFFER[LOC-1]],' is ignored in Pascal text');
-ERROR;END;GOTO 22;END;136:GOTO 30;{:167}ELSE END;
+WRITE('! @',XCHR[BUFFER[LOC-1]],' is ignored in Pascal text');ERROR;END;
+GOTO 22;END;136:GOTO 30;{:167}ELSE END;
BEGIN IF TOKPTR[Z]=MAXTOKS THEN BEGIN WRITELN(OUTPUT);
-WRITE(OUTPUT,'! Sorry, ','token',' capacity exceeded');ERROR;HISTORY:=3;
+WRITE('! Sorry, ','token',' capacity exceeded');ERROR;HISTORY:=3;
JUMPOUT;END;TOKMEM[Z,TOKPTR[Z]]:=A;TOKPTR[Z]:=TOKPTR[Z]+1;END;END;
30:NEXTCONTROL:=A;
{166:}IF BAL>0 THEN BEGIN IF BAL=1 THEN BEGIN WRITELN(OUTPUT);
-WRITE(OUTPUT,'! Missing )');ERROR;END ELSE BEGIN WRITELN(OUTPUT);
-WRITE(OUTPUT,'! Missing ',BAL:1,' )''s');ERROR;END;
+WRITE('! Missing )');ERROR;END ELSE BEGIN WRITELN(OUTPUT);
+WRITE('! Missing ',BAL:1,' )''s');ERROR;END;
WHILE BAL>0 DO BEGIN BEGIN IF TOKPTR[Z]=MAXTOKS THEN BEGIN WRITELN(
-OUTPUT);WRITE(OUTPUT,'! Sorry, ','token',' capacity exceeded');ERROR;
+OUTPUT);WRITE('! Sorry, ','token',' capacity exceeded');ERROR;
HISTORY:=3;JUMPOUT;END;TOKMEM[Z,TOKPTR[Z]]:=41;TOKPTR[Z]:=TOKPTR[Z]+1;
END;BAL:=BAL-1;END;END{:166};
IF TEXTPTR>MAXTEXTS-4 THEN BEGIN WRITELN(OUTPUT);
-WRITE(OUTPUT,'! Sorry, ','text',' capacity exceeded');ERROR;HISTORY:=3;
-JUMPOUT;END;CURREPLTEXT:=TEXTPTR;TOKSTART[TEXTPTR+4]:=TOKPTR[Z];
+WRITE('! Sorry, ','text',' capacity exceeded');ERROR;HISTORY:=3;JUMPOUT;
+END;CURREPLTEXT:=TEXTPTR;TOKSTART[TEXTPTR+4]:=TOKPTR[Z];
TEXTPTR:=TEXTPTR+1;IF Z=3 THEN Z:=0 ELSE Z:=Z+1;END;
{:165}{170:}PROCEDURE DEFINEMACRO(T:EIGHTBITS);VAR P:NAMEPOINTER;
BEGIN P:=IDLOOKUP(T);SCANREPL(T);EQUIV[P]:=CURREPLTEXT;
@@ -708,7 +704,7 @@ WHILE TRUE DO BEGIN 22:WHILE NEXTCONTROL<=132 DO BEGIN NEXTCONTROL:=
SKIPAHEAD;IF NEXTCONTROL=135 THEN BEGIN LOC:=LOC-2;NEXTCONTROL:=GETNEXT;
END;END;IF NEXTCONTROL<>133 THEN GOTO 30;NEXTCONTROL:=GETNEXT;
IF NEXTCONTROL<>130 THEN BEGIN BEGIN WRITELN(OUTPUT);
-WRITE(OUTPUT,'! Definition flushed, must start with ',
+WRITE('! Definition flushed, must start with ',
'identifier of length > 1');ERROR;END;GOTO 22;END;NEXTCONTROL:=GETNEXT;
IF NEXTCONTROL=61 THEN BEGIN SCANNUMERIC(IDLOOKUP(1));GOTO 22;
END ELSE IF NEXTCONTROL=30 THEN BEGIN DEFINEMACRO(2);GOTO 22;
@@ -716,14 +712,14 @@ END ELSE{174:}IF NEXTCONTROL=40 THEN BEGIN NEXTCONTROL:=GETNEXT;
IF NEXTCONTROL=35 THEN BEGIN NEXTCONTROL:=GETNEXT;
IF NEXTCONTROL=41 THEN BEGIN NEXTCONTROL:=GETNEXT;
IF NEXTCONTROL=61 THEN BEGIN BEGIN WRITELN(OUTPUT);
-WRITE(OUTPUT,'! Use == for macros');ERROR;END;NEXTCONTROL:=30;END;
+WRITE('! Use == for macros');ERROR;END;NEXTCONTROL:=30;END;
IF NEXTCONTROL=30 THEN BEGIN DEFINEMACRO(3);GOTO 22;END;END;END;END;
{:174};BEGIN WRITELN(OUTPUT);
-WRITE(OUTPUT,'! Definition flushed since it starts badly');ERROR;END;
-END;30:{:173};{175:}CASE NEXTCONTROL OF 134:P:=0;135:BEGIN P:=CURMODULE;
+WRITE('! Definition flushed since it starts badly');ERROR;END;END;
+30:{:173};{175:}CASE NEXTCONTROL OF 134:P:=0;135:BEGIN P:=CURMODULE;
{176:}REPEAT NEXTCONTROL:=GETNEXT;UNTIL NEXTCONTROL<>43;
IF(NEXTCONTROL<>61)AND(NEXTCONTROL<>30)THEN BEGIN BEGIN WRITELN(OUTPUT);
-WRITE(OUTPUT,'! Pascal text flushed, = sign is missing');ERROR;END;
+WRITE('! Pascal text flushed, = sign is missing');ERROR;END;
REPEAT NEXTCONTROL:=SKIPAHEAD;UNTIL NEXTCONTROL=136;GOTO 10;END{:176};
END;ELSE GOTO 10 END;{177:}STORETWOBYTE(53248+MODULECOUNT);{:177};
SCANREPL(135);
@@ -735,59 +731,56 @@ END;TEXTLINK[CURREPLTEXT]:=MAXTEXTS;{:178};{:175};10:END;
{:172}{181:}{PROCEDURE DEBUGHELP;LABEL 888,10;VAR K:INTEGER;
BEGIN DEBUGSKIPPED:=DEBUGSKIPPED+1;
IF DEBUGSKIPPED<DEBUGCYCLE THEN GOTO 10;DEBUGSKIPPED:=0;
-WHILE TRUE DO BEGIN BEGIN WRITELN(OUTPUT);WRITE(OUTPUT,'#');END;;
+WHILE TRUE DO BEGIN BEGIN WRITELN(OUTPUT);WRITE('#');END;;
READ(INPUT,DDT);IF DDT<0 THEN GOTO 10 ELSE IF DDT=0 THEN BEGIN GOTO 888;
888:DDT:=0;
END ELSE BEGIN READ(INPUT,DD);CASE DDT OF 1:PRINTID(DD);2:PRINTREPL(DD);
-3:FOR K:=1 TO DD DO WRITE(OUTPUT,XCHR[BUFFER[K]]);
-4:FOR K:=1 TO DD DO WRITE(OUTPUT,XCHR[MODTEXT[K]]);
-5:FOR K:=1 TO OUTPTR DO WRITE(OUTPUT,XCHR[OUTBUF[K]]);
-6:FOR K:=1 TO DD DO WRITE(OUTPUT,XCHR[OUTCONTRIB[K]]);
-ELSE WRITE(OUTPUT,'?')END;END;END;10:END;}{:181}{182:}BEGIN INITIALIZE;
-{134:}OPENINPUT;LINE:=0;OTHERLINE:=0;CHANGING:=TRUE;PRIMETHECHAN;
-CHANGING:=NOT CHANGING;TEMPLINE:=OTHERLINE;OTHERLINE:=LINE;
-LINE:=TEMPLINE;LIMIT:=0;LOC:=1;BUFFER[0]:=32;INPUTHASENDE:=FALSE;{:134};
-WRITELN(OUTPUT,'This is TANGLE-FPC');{183:}PHASEONE:=TRUE;
+3:FOR K:=1 TO DD DO WRITE(XCHR[BUFFER[K]]);
+4:FOR K:=1 TO DD DO WRITE(XCHR[MODTEXT[K]]);
+5:FOR K:=1 TO OUTPTR DO WRITE(XCHR[OUTBUF[K]]);
+6:FOR K:=1 TO DD DO WRITE(XCHR[OUTCONTRIB[K]]);ELSE WRITE('?')END;END;
+END;10:END;}{:181}{182:}BEGIN INITIALIZE;{134:}OPENINPUT;LINE:=0;
+OTHERLINE:=0;CHANGING:=TRUE;PRIMETHECHAN;CHANGING:=NOT CHANGING;
+TEMPLINE:=OTHERLINE;OTHERLINE:=LINE;LINE:=TEMPLINE;LIMIT:=0;LOC:=1;
+BUFFER[0]:=32;INPUTHASENDE:=FALSE;{:134};
+WRITELN(OUTPUT,'This is TANGLE-FPC, 2nd ed.');{183:}PHASEONE:=TRUE;
MODULECOUNT:=0;REPEAT NEXTCONTROL:=SKIPAHEAD;UNTIL NEXTCONTROL=136;
WHILE NOT INPUTHASENDE DO SCANMODULE;
{138:}IF CHANGELIMIT<>0 THEN BEGIN FOR II:=0 TO CHANGELIMIT DO BUFFER[II
]:=CHANGEBUFFER[II];LIMIT:=CHANGELIMIT;CHANGING:=TRUE;LINE:=OTHERLINE;
LOC:=CHANGELIMIT;BEGIN WRITELN(OUTPUT);
-WRITE(OUTPUT,'! Change file entry did not match');ERROR;END;END{:138};
-PHASEONE:=FALSE;{:183};FOR II:=0 TO 3 DO MAXTOKPTR[II]:=TOKPTR[II];
+WRITE('! Change file entry did not match');ERROR;END;END{:138};
+PHASEONE:=FALSE;{:183};{FOR II:=0 TO 3 DO MAXTOKPTR[II]:=TOKPTR[II];}
{112:}IF TEXTLINK[0]=0 THEN BEGIN BEGIN WRITELN(OUTPUT);
-WRITE(OUTPUT,'! No output was specified.');END;
-IF HISTORY=0 THEN HISTORY:=1;END ELSE BEGIN BEGIN WRITELN(OUTPUT);
-WRITE(OUTPUT,'Writing the output file');END;;{83:}STACKPTR:=1;
-BRACELEVEL:=0;CURSTATE.NAMEFIELD:=0;CURSTATE.REPLFIELD:=TEXTLINK[0];
-ZO:=CURSTATE.REPLFIELD MOD 4;
+WRITE('! No output was specified.');END;IF HISTORY=0 THEN HISTORY:=1;
+END ELSE BEGIN BEGIN WRITELN(OUTPUT);WRITE('Writing the output file');
+END;;{83:}STACKPTR:=1;BRACELEVEL:=0;CURSTATE.NAMEFIELD:=0;
+CURSTATE.REPLFIELD:=TEXTLINK[0];ZO:=CURSTATE.REPLFIELD MOD 4;
CURSTATE.BYTEFIELD:=TOKSTART[CURSTATE.REPLFIELD];
CURSTATE.ENDFIELD:=TOKSTART[CURSTATE.REPLFIELD+4];CURSTATE.MODFIELD:=0;
{:83};{96:}OUTSTATE:=0;OUTPTR:=0;BREAKPTR:=0;SEMIPTR:=0;OUTBUF[0]:=0;
LINE:=1;{:96};SENDTHEOUTPU;{98:}BREAKPTR:=OUTPTR;SEMIPTR:=0;FLUSHBUFFER;
IF BRACELEVEL<>0 THEN BEGIN WRITELN(OUTPUT);
-WRITE(OUTPUT,'! Program ended at brace level ',BRACELEVEL:1);ERROR;END;
-{:98};BEGIN WRITELN(OUTPUT);WRITE(OUTPUT,'Done.');END;END{:112};
-9999:IF STRINGPTR>256 THEN{184:}BEGIN BEGIN WRITELN(OUTPUT);
-WRITE(OUTPUT,STRINGPTR-256:1,' strings written to string pool file.');
-END;WRITE(POOL,'*');
-FOR II:=1 TO 9 DO BEGIN OUTBUF[II]:=POOLCHECKSUM MOD 10;
+WRITE('! Program ended at brace level ',BRACELEVEL:1);ERROR;END;{:98};
+BEGIN WRITELN(OUTPUT);WRITE('Done.');END;END{:112};
+IF STRINGPTR>256 THEN{184:}BEGIN BEGIN WRITELN(OUTPUT);
+WRITE(STRINGPTR-256:1,' strings written to string pool file.');END;
+WRITE(POOL,'*');FOR II:=1 TO 9 DO BEGIN OUTBUF[II]:=POOLCHECKSUM MOD 10;
POOLCHECKSUM:=POOLCHECKSUM DIV 10;END;
FOR II:=9 DOWNTO 1 DO WRITE(POOL,XCHR[48+OUTBUF[II]]);WRITELN(POOL);
-END{:184};{186:}BEGIN WRITELN(OUTPUT);
-WRITE(OUTPUT,'Memory usage statistics:');END;BEGIN WRITELN(OUTPUT);
-WRITE(OUTPUT,NAMEPTR:1,' names, ',TEXTPTR:1,' replacement texts;');END;
-BEGIN WRITELN(OUTPUT);WRITE(OUTPUT,BYTEPTR[0]:1);END;
-FOR WO:=1 TO 1 DO WRITE(OUTPUT,'+',BYTEPTR[WO]:1);
+END{:184};CLOSE(PASCALFILE);CLOSE(POOL);
+9999:{[186:]BEGIN WRITELN(OUTPUT);WRITE('Memory usage statistics:');END;
+BEGIN WRITELN(OUTPUT);
+WRITE(NAMEPTR:1,' names, ',TEXTPTR:1,' replacement texts;');END;
+BEGIN WRITELN(OUTPUT);WRITE(BYTEPTR[0]:1);END;
+FOR WO:=1 TO 1 DO WRITE('+',BYTEPTR[WO]:1);
IF PHASEONE THEN FOR II:=0 TO 3 DO MAXTOKPTR[II]:=TOKPTR[II];
-WRITE(OUTPUT,' bytes, ',MAXTOKPTR[0]:1);
-FOR II:=1 TO 3 DO WRITE(OUTPUT,'+',MAXTOKPTR[II]:1);
-WRITE(OUTPUT,' tokens.');{:186};CLOSE(PASCALFILE);CLOSE(POOL);
+WRITE(' bytes, ',MAXTOKPTR[0]:1);
+FOR II:=1 TO 3 DO WRITE('+',MAXTOKPTR[II]:1);WRITE(' tokens.');[:186];}
{187:}CASE HISTORY OF 0:BEGIN WRITELN(OUTPUT);
-WRITE(OUTPUT,'(No errors were found.)');END;1:BEGIN WRITELN(OUTPUT);
-WRITE(OUTPUT,'(Did you see the warning message above?)');END;
+WRITE('(No errors were found.)');END;1:BEGIN WRITELN(OUTPUT);
+WRITE('(Did you see the warning message above?)');END;
2:BEGIN WRITELN(OUTPUT);
-WRITE(OUTPUT,'(Pardon me, but I think I spotted something wrong.)');END;
-3:BEGIN WRITELN(OUTPUT);
-WRITE(OUTPUT,'(That was a fatal error, my friend.)');END;END;
-WRITELN(OUTPUT);HALT(HISTORY){:187};END.{:182}
+WRITE('(Pardon me, but I think I spotted something wrong.)');END;
+3:BEGIN WRITELN(OUTPUT);WRITE('(That was a fatal error, my friend.)');
+END;END;WRITELN(OUTPUT);HALT(HISTORY){:187};END.{:182}
diff --git a/systems/unix/tex-fpc/tech/schlicht.tex b/systems/unix/tex-fpc/tech/gauss.tex
index ce5a1eeb85..ecc42a3855 100644
--- a/systems/unix/tex-fpc/tech/schlicht.tex
+++ b/systems/unix/tex-fpc/tech/gauss.tex
@@ -6,7 +6,7 @@
\newlanguage\l@german \language=\l@german
\chardef\l@austrian=\language
\chardef\l@french=\language
-\input ghyph31
+\input dehypht.tex
\message{erledigt.}
%% auf USEnglisch voreinstellen
\language=\l@USenglish
diff --git a/systems/unix/tex-fpc/tech/german.ed b/systems/unix/tex-fpc/tech/german.ed
index 89ba82cf2f..3d41edf0c0 100644
--- a/systems/unix/tex-fpc/tech/german.ed
+++ b/systems/unix/tex-fpc/tech/german.ed
@@ -1,5 +1,6 @@
219c
\expandafter\def\csname grq \endcsname{%
.
+g/[^%]$/s//&%/
w
q
diff --git a/systems/unix/tex-fpc/tech/mktech b/systems/unix/tex-fpc/tech/mktech
index e81c623455..835141cbb9 100755
--- a/systems/unix/tex-fpc/tech/mktech
+++ b/systems/unix/tex-fpc/tech/mktech
@@ -2,16 +2,17 @@
# Hierzu muss die Konstante TRIESIZE vergroessert werden.
# 16844 ist schon zu klein, obwohl TeX behauptet, er braucht weniger
# als 14000 (im log-file).
-sed /TRIESIZE=8000/s//TRIESIZE=16845/ ../tex/initex.p >initech.p
-fpc initech.p
-initech 'schlicht \dump'
+sed /TRIESIZE=8000/s//TRIESIZE=16845/ ../tex/initex.p >initech.p \
+&& fpc -Fasysutils,baseunix,unix initech.p \
+&& initech 'gauss \dump' \
+|| (echo schief gelaufen; exit 1)
+#
# Schritt 2: Den Namen der Formatdatei und die TRIESIZE anpassen.
# Wenn die TRIESIZE hier nicht angepasst wird, kann er die Formatdatei
# nicht laden.
-# Die Laenge des Namens muss mit der Laenge von 'plain' uebereinstimmen,
-# daher die haessliche Abkuerzung.
-mv schlicht.fmt TeXformats/schli.fmt
-sed -e /plain.fmt/s//schli.fmt/\
- -e /TRIESIZE=8000/s//TRIESIZE=16845/\
- ../tex/tex.p >tech.p
-fpc tech.p
+mv gauss.fmt TeXformats/gauss.fmt \
+&& sed -e /plain.fmt/s//gauss.fmt/\
+ -e /TRIESIZE=8000/s//TRIESIZE=16845/\
+ ../tex/tex.p >tech.p \
+&& fpc -Fasysutils,baseunix,unix tech.p \
+|| echo schief gelaufen.
diff --git a/systems/unix/tex-fpc/tech/readme b/systems/unix/tex-fpc/tech/readme
index 98ed483e67..2ee897d330 100644
--- a/systems/unix/tex-fpc/tech/readme
+++ b/systems/unix/tex-fpc/tech/readme
@@ -6,15 +6,15 @@ zu anderen Distributionen. Sie enth"alt US-Englisch und Deutsch
Installation:
Die deutschen Trennmuster holen:
-ftp ftp://ftp.dante.de/pub/tex/macros/ec-plain/ghyph31.tex
+ftp ftp://tug.org/tex-archive/language/hyphenation/dehyph/dehypht.tex
Und tech bauen:
$ mktech
Dies erzeugt das Programm tech. Am besten ins bin-Verzeichnis damit.
Das Macropaket german.sty holen:
-ftp ftp://ftp.dante.de/pub/tex/language/german/german.sty
+ftp ftp://tug.org/tex-archive/language/german/german.sty
-Diese Datei mit dem Datum vom 13.04.199 enth"alt einen Fehler,
+Diese Datei mit dem Datum vom 13.04.1999 enth"alt einen Fehler,
das \grq verschwindet. Mit
ed <german.ed german.sty
kann man diesen Fehler korrigieren.
diff --git a/systems/unix/tex-fpc/tech/test.tex b/systems/unix/tex-fpc/tech/test.tex
index d25c721da0..d3b8c872cb 100644
--- a/systems/unix/tex-fpc/tech/test.tex
+++ b/systems/unix/tex-fpc/tech/test.tex
@@ -1,9 +1,9 @@
\parindent=0pt
\overfullrule=0pt
-Hier wird gepr\"uft, ob die Einstellungen von plain \TeX erhalten bleiben.
+Hier wird gepr\"uft, ob die Einstellungen von plain \TeX\ erhalten bleiben.
\ifnum\language=0\else\errmessage{language nicht 0}\fi
\ifnum\lefthyphenmin=2\else\errmessage{lefthyphenmin nicht 2}\fi
-\ifnum\righthyphenmin=3\else\errmessage{righthyphenmin nicht 3\fi
+\ifnum\righthyphenmin=3\else\errmessage{righthyphenmin nicht 3}\fi
\par und jetzt geht's los:
\input german.sty
diff --git a/systems/unix/tex-fpc/tex-fpc.pdf b/systems/unix/tex-fpc/tex-fpc.pdf
index 6222dd48d6..d57450f062 100644
--- a/systems/unix/tex-fpc/tex-fpc.pdf
+++ b/systems/unix/tex-fpc/tex-fpc.pdf
Binary files differ
diff --git a/systems/unix/tex-fpc/tex.ch b/systems/unix/tex-fpc/tex.ch
new file mode 100644
index 0000000000..491307d948
--- /dev/null
+++ b/systems/unix/tex-fpc/tex.ch
@@ -0,0 +1,1425 @@
+% This is a change file of TeX, Wolfgang Helbig, Nov. 2007-Nov. 2020
+
+[0] About TeX-FPC
+Strangely, the first page is page 3
+@x
+\pageno=3
+@y
+@z
+@x
+\def\gglob{20, 26} % this should be the next two sections of "<Global...>"
+@y
+\def\gglob{20, 26} % this should be the next two sections of "<Global...>"
+\input TeXinputs/webmac-fpc
+\pagewidth=14.8 cm % Close to the original book format.
+\setpage
+
+\emergencystretch 0.6in % avoid overfull boxes
+
+\let\maybe=\iffalse % maybe -> print all, notmaybe -> print changed modules only
+
+% put a mark in the left margin. (see Exercise 14.28 in The TeXbook)
+\def\marke#1{\strut\vadjust{\kern-\dp\strutbox\vbox to 0pt{\vss
+ \llap{\bf #1\/\quad\strut}}}\ignorespaces }
+
+\def\name{\TeX}
+
+\N0\*. \[0] About \namefpc.
+\namefpc\ is an adaption of Donald~E. Knuth's \TeX82 in
+the version 3.14159265 from January 2014 to Free~Pascal (FPC) and Unix.
+To help you identify the differences of \TeX82 and
+\namefpc, the numbers of modified modules carry an asterisk. Letters
+in the left margin indicate the reason for a change. They mean:
+\medskip
+\item{\bf E} fixes an error in \TeX82
+\item{\bf F} adds a feature as suggested by Knuth
+\item{\bf P} fixes a violation of Pascal (Jensen, Wirth: {\sl Pascal
+User Manual and Report\/}, 3rd edition, 1985)
+\item{\bf X} describes an FPC extension
+\item{\bf U} necessary change in Unix
+\item{\bf u} enhances usability in a Unix enviroment
+\medskip
+\item{(1)} \marke E \TeX82\ deletes area and extension of an input
+file name and then only shows the base name of the file during error
+recovery.
+
+\item{(2)} \TeX82 prunes discardable nodes from the beginning of a
+new line until it reaches a nondiscardable node. This might leave
+you with an empty box resulting in an \.{Underfull box} warning.
+Btw, I discovered this bug while trying to prove the line breaking
+algorithm, not through by testing. In this regard, I go with Dijkstra, not
+with Knuth.
+
+\item{(3)} \TeX\ fails to respect end of file (Control-D) from
+terminal oinput during debug dialog.
+
+\item{(3)}
+Igor Liferenko reported an extra space in the transcript file and
+a missing last line terminator on terminal output after user switched
+to \.{/batchmode} during error recovery.
+
+\medskip
+\item{(1)}\marke F\namefpc\ treats the command line as the first input line;
+
+\item{(2)}\namefpc\ starts \.{vi} if the user types `\.{E}' during
+error recovery.
+
+\item{(3)}You can interrupt \namefpc\ by typing `\.{Control-C}'.
+
+\medskip
+\item{(1)}\marke P \TeX82 assumes that the terminal input file is
+positioned {\sl before\/} the first character after being opened,
+whereas \namefpc\ assumes that it is positioned {\sl at\/} the first
+character, thus complying with the Pascal standard.
+
+\item{(2)} The names of the standard text files must occur in the
+program header whenever they are used.
+
+\item{(3)} The standard text files must not be declared. Declared files
+with the name of the standard text files are new internal files.
+
+\item{(4)} The program must not open the standard text files.
+
+\medskip
+\item{(1)} \marke X FPC's extensions are needed to specify a file name
+at run time, to check the existence of files and to access the
+system date and time. Identifiers from FPC~Pascal are prefixed
+with \\{fpc\_} to help distinguish them from Pascal and \.{WEB}
+identifiers and to avoid name clashes. Furthermore all FPC~Pascal
+identifiers will appear together in the index.
+
+\medskip
+\item{(1)}\marke U The Unix file seperator is `\.{/}'
+instead of `\.{:}'.
+\medskip
+\item{(1)}\marke u On exit, \namefpc\ passes its `history' to the
+operating system. This integer is zero when everything is fine,
+one when something less serious like an overfull box was detected,
+two when an error happened like an undefined control sequence, and
+three when the program aborted because one of its tables overflowed
+or because it couldn't find an input file while running in batch
+mode.
+
+\item{(2)} Valid input characters are the 94~visible ASCII characters
+together with the three control characters horizontal tabulator,
+form~feed, and space.
+
+\item{(3)} Terminate last line on terminal. This is Unix, not DOS!
+
+\item{(4)} Teach \TeX\ and user how to end the terminal input by Control-D.
+
+\break
+Like Dijkstra,
+\.{http://www.cs.utexas.edu/users/EWD/videos/noorderlicht.mpg},
+I dislike version numbers---I consider \namefpc\ finished.
+I'd rather maintain invariants---not software.
+\address
+\fi
+@z
+
+
+% \TeX82 will emit an underfull box warning here, \namefpc\ won't.
+\setbox0=\hbox to \hsize {\hfil\ \strut}
+\noindent\box0\ \ \par
+\bigskip
+\fi
+
+[2] Change the banner line
+@x
+known as `\TeX' [cf.~Stanford Computer Science report CS1027,
+November 1984].
+
+@d banner=='This is TeX, Version 3.14159265' {printed when \TeX\ starts}
+@y
+known as `\TeX' [cf.~Stanford Computer Science report CS1027,
+November 1984].
+
+Even though \namefpc\ does not differ from \TeX\ I proudly change
+the banner! And take responsibility for any error.
+
+@d banner=='This is TeX-FPC, 2nd ed.'
+@z
+
+[4] program header
+@x
+@d mtype==t@&y@&p@&e {this is a \.{WEB} coding trick:}
+@y
+
+\marke P Pascal wants the identifiers of the standard text files
+\\{input} and \\{output} in the parameter list of the program header.
+
+@d term_in==i @& n @& p @& u @& t
+@d term_out==o @& u @& t @& p @& u @& t
+@d mtype==t @& y @& p @& e
+@z
+
+[4] program header
+@x
+program TEX; {all file names are defined dynamically}
+@y
+program TEX(@!term_in,@!term_out);
+@z
+
+[4] forward definition of signal catcher
+@x
+procedure initialize; {this procedure gets things started properly}
+@y
+procedure catch_signal(i: integer); interrupt@, forward;@t\2@>
+procedure initialize; {this procedure gets things started properly}
+@z
+
+Since @x, @y, and @z only define a change block when they begin a
+line, you deactivate a block by indenting it (shift right) and
+activate it by unindenting it (shift left). With vi set the cursor
+to the @x line and type >} or <} to (un)indent a paragraph.
+
+[7] shift left to turn debugging on, right to turn it off
+ @x debug
+ @d debug==@{ {change this to `$\\{debug}\equiv\null$' when debugging}
+ @d gubed==@t@>@} {change this to `$\\{gubed}\equiv\null$' when debugging}
+ @y
+ @d debug=={change this to `$\\{debug}\equiv\.{@@\{}$' when not debugging}
+ @d gubed=={change this to `$\\{gubed}\equiv\.{@@\}}$' when not debugging}
+ @z
+
+[7] shift left to turn stats on, right to turn them off.
+ @x stats
+ @d stat==@{ {change this to `$\\{stat}\equiv\null$' when gathering
+ usage statistics}
+ @d tats==@t@>@} {change this to `$\\{tats}\equiv\null$' when gathering
+ usage statistics}
+ @y
+ @d stat== {change this to `$\\{stat}\equiv\.{@@\{}$' to turn off statistics}
+ @d tats== {change this to `$\\{tats}\equiv\.{@@\}}$' to turn off statistics}
+ @z
+
+
+[8] shift left to build TEX and right to build INITEX.
+ @x initex
+ @d init== {change this to `$\\{init}\equiv\.{@@\{}$' in the production version}
+ @d tini== {change this to `$\\{tini}\equiv\.{@@\}}$' in the production version}
+ @y
+ @d init==@{ {change this to `$\\{init}\equiv $' for \.{INITEX}}
+ @d tini==@t@>@} {change this to `$\\{tini}\equiv $' for \.{INITEX}}
+ @z
+
+[9] compiler directives, turn off I/O checking.
+@x
+@^overflow in arithmetic@>
+@y
+@^overflow in arithmetic@>
+
+\marke X If the first character of a \PASCAL\ comment is a dollar
+sign, Free~Pascal treats the comment as a ``compiler directive''.
+Turn off checking since the debugger might trigger a range
+check when it accesses subfields of a memory word without knowing
+what it is reading.
+Overflow is checked if the result of an integer operation overflows
+the range of 64bit |integer|.
+FPC in default mode neither provides |goto| nor the I/O
+procedures |get| and |put|, and 16-bit |integer|. The compiler
+directive MODE ISO fixes all of it.
+
+@^system dependencies@>
+@^FPC Pascal@>
+@z
+
+[9] compiler directives, turn off I/O checking, continued
+@x
+@{@&$C-,A+,D-@} {no range check, catch arithmetic overflow, no debug overhead}
+@!debug @{@&$C+,D+@}@+ gubed {but turn everything on when debugging}
+@y
+@{$MODE@,ISO@} {turn on mode ISO}
+@{$Q+@} {turn on overflow checking}
+@{$R+@} {turn on range checking}
+@!debug
+@{$Q-@}@,
+@{$R-@}@+
+gubed {turn off all checks when debugging}
+@z
+
+[10] default case branch
+@x
+\PASCAL s have, in fact, done this, successfully but not happily!)
+@:PASCAL H}{\ph@>
+
+@d othercases == others: {default for cases not listed explicitly}
+@y
+\PASCAL s have, in fact, done this, successfully but not happily!)
+@:PASCAL H}{\ph@>
+
+\marke X This is the only place I voluntarily use an FPC extension
+to Pascal.
+@^FPC Pascal@>
+
+@d othercases == @+ else {default for cases not listed explicitly}
+@z
+
+The changes headed by trip need to be made for the trip test suite.
+ For trip activate all changeblocks with the first line @x trip.
+
+ [11]
+ @x trip
+ @!mem_max=30000; {greatest index in \TeX's internal |mem| array;
+ @y
+ @!mem_max=3000; {greatest index in \TeX's internal |mem| array;
+ @z
+
+[11]
+ @x trip
+ @!mem_min=0; {smallest index in \TeX's internal |mem| array;
+ @y
+ @!mem_min=1; {smallest index in \TeX's internal |mem| array;
+ @z
+
+[11]
+ @x trip
+ @!error_line=72; {width of context lines on terminal error messages}
+ @!half_error_line=42; {width of first lines of contexts in terminal
+ error messages; should be between 30 and |error_line-15|}
+ @!max_print_line=79; {width of longest text lines output; should be at least 60}
+ @y
+ @!error_line=64; {width of context lines on terminal error messages}
+ @!half_error_line=32; {width of first lines of contexts in terminal
+ error messages; should be between 30 and |error_line-15|}
+ @!max_print_line=72; {width of longest text lines output; should be at least 60}
+ @z
+
+[11] location of pool file
+@x
+@!pool_name='TeXformats:TEX.POOL ';
+@y
+@!pool_name='TeXformats/tex.pool'; { \marke U Unix filename. }
+@z
+
+
+[12]
+ @x trip
+ @d mem_bot=0 {smallest index in the |mem| array dumped by \.{INITEX};
+ must not be less than |mem_min|}
+ @d mem_top==30000 {largest index in the |mem| array dumped by \.{INITEX};
+ must be substantially larger than |mem_bot|
+ and not greater than |mem_max|}
+ @y
+ @d mem_bot=1 {smallest index in the |mem| array dumped by \.{INITEX};
+ must not be less than |mem_min|}
+ @d mem_top==3000 {largest index in the |mem| array dumped by \.{INITEX};
+ must be substantially larger than |mem_bot|
+ and not greater than |mem_max|}
+ @z
+
+[23] we accept horizontal tab and form feed!
+@x
+right of these assignment statements to |chr(i)|.
+@y
+right of these assignment statements to |chr(i)|.
+
+\marke u In Unix tab and form feed are valid characters.
+The plain format categorizes the tab as a spacer and form feed
+as an active character defined as \.{\\outer\\par}.
+@z
+
+[23] continued
+@x
+for i:=0 to @'37 do xchr[i]:=' ';
+@y
+for i:=0 to @'37 do xchr[i]:=' ';
+xchr[@'11] := chr(@'11); {accept horizontal tab\marke u}
+xchr[@'14] := chr(@'14); {accept form feed}
+@z
+
+[25] the type of text_files is text
+@x
+@!alpha_file=packed file of text_char; {files that contain textual data}
+@y
+@!alpha_file=t @& e @& x @& t; {\marke P the type of text files is |text|}
+@z
+
+[25] continued
+@x
+@!byte_file=packed file of eight_bits; {files that contain binary data}
+@y
+@!byte_file=packed file of eight_bits; {files that contain binary data}
+@!untyped_file=file; {untyped files for buffered output}
+@z
+
+[27]
+@x
+\TeX's file-opening procedures return |false| if no file identified by
+|name_of_file| could be opened.
+
+@d reset_OK(#)==erstat(#)=0
+@d rewrite_OK(#)==erstat(#)=0
+@y
+\marke X
+The procedure |fpc_assign| assigns an external file name to a file.
+The function |fpc_io_result| returns a nonzero value if any
+error occurred since the last invocation of |fpc_io_result|.
+The runtime system halts the program when it experiences an
+I/O error. Since \namefpc\ wants to survive while trying to open
+a nonexistence file, it turns off I/O checking for the open procedures.
+
+@^FPC Pascal@>
+@^system dependencies@>
+
+@d fpc_io_result==i @& o @& r @& e @& s @& u @& l @& t
+@d fpc_assign==a @& s @& s @& i @& g @& n
+@d reset_OK(#)==fpc_io_result=0
+@d rewrite_OK(#)==fpc_io_result=0
+@d clear_io_result==@+if fpc_io_result=0 then do_nothing
+@z
+
+[27] reset and rewrite for each of three file types
+
+@x alpha_file
+@p function a_open_in(var f:alpha_file):boolean;
+ {open a text file for input}
+begin reset(f,name_of_file,'/O'); a_open_in:=reset_OK(f);
+@y
+@p
+@{@&$I-@} {turn of I/O checking}
+@#
+function a_open_in(var f:alpha_file):boolean;
+begin clear_io_result; fpc_assign(f,name_of_file); reset(f);
+a_open_in:=reset_OK(f);
+@z
+
+@x
+begin rewrite(f,name_of_file,'/O'); a_open_out:=rewrite_OK(f);
+@y
+begin clear_io_result; fpc_assign(f,name_of_file); rewrite(f);
+a_open_out:=rewrite_OK(f);
+@z
+
+byte_file
+@x
+begin reset(f,name_of_file,'/O'); b_open_in:=reset_OK(f);
+@y
+begin clear_io_result; fpc_assign(f,name_of_file); reset(f);
+b_open_in:=reset_OK(f);
+@z
+
+@x
+begin rewrite(f,name_of_file,'/O'); b_open_out:=rewrite_OK(f);
+@y
+begin clear_io_result; fpc_assign(f,name_of_file); rewrite(f);
+b_open_out:=rewrite_OK(f);
+@z
+
+@x word_file
+begin reset(f,name_of_file,'/O'); w_open_in:=reset_OK(f);
+@y
+begin clear_io_result; fpc_assign(f,name_of_file); reset(f); w_open_in:=reset_OK(f);
+@z
+@x
+begin rewrite(f,name_of_file,'/O'); w_open_out:=rewrite_OK(f);
+end;
+@y
+begin clear_io_result; fpc_assign(f,name_of_file); rewrite(f);
+w_open_out:=rewrite_OK(f);
+end;
+@#
+@{@&$I+@} {turn on I/O checking}
+@z
+
+[31] bypass eoln
+@x
+finer tuning is often possible at well-developed \PASCAL\ sites.
+@y
+finer tuning is often possible at well-developed \PASCAL\ sites.
+@^|bypass eoln|@>
+
+\marke P Standard Pascal never suppresses the first get, so |input_ln|
+must not bypass the first character of the first line. To maintain
+this rule for subsequent lines, |input_ln| is changed to bypass the
+end of line character at the end of line.
+@z
+
+[31] bypass eoln
+@x
+begin if bypass_eoln then if not eof(f) then get(f);
+@y
+begin
+@z
+
+[31] bypass eoln
+@x
+ last:=last_nonblank; input_ln:=true;
+ end;
+@y
+ last:=last_nonblank; input_ln:=true;
+ read_ln(f);
+ end;
+@z
+
+[31] re-engineered input_ln
+ @x
+ finer tuning is often possible at well-developed \PASCAL\ sites.
+ @^inner loop@>
+
+ @p function input_ln(var f:alpha_file;@!bypass_eoln:boolean):boolean;
+ {inputs the next line or returns |false|}
+ var last_nonblank:0..buf_size; {|last| with trailing blanks removed}
+ begin if bypass_eoln then if not eof(f) then get(f);
+ {input the first character of the line into |f^|}
+ last:=first; {cf.\ Matthew 19\thinspace:\thinspace30}
+ if eof(f) then input_ln:=false
+ else begin last_nonblank:=first;
+ while not eoln(f) do
+ begin if last>=max_buf_stack then
+ begin max_buf_stack:=last+1;
+ if max_buf_stack=buf_size then
+ @<Report overflow of the input buffer, and abort@>;
+ end;
+ buffer[last]:=xord[f^]; get(f); incr(last);
+ if buffer[last-1]<>" " then last_nonblank:=last;
+ end;
+ last:=last_nonblank; input_ln:=true;
+ end;
+ end;
+ @y
+ finer tuning is often possible at well-developed \PASCAL\ sites.
+ @^inner loop@>
+
+ \marke h
+ Unlike \TeX82 \namefpc\ leaves trailing spaces in the input line.
+
+ \marke N
+ Whenever |input_ln| is to read the first line of a disk file,
+ |bypass_eoln| is set to |false|, in all other cases it is set to
+ |true|. This causes |input_ln| to advance the file pointer. For
+ the first line, in ISO-Pascal and FPC-Pascal this is done by |reset()|
+ -- on terminals and disk files alike. But \TeX82 turns this off
+ for the terminal, so the old |input_line| has to advance the file
+ pointer if reading the first line from a terminal. On return, the
+ old |input_ln| leaves the file position at the end-of-line marker,
+ which is to be bypassed on next invocation.
+
+ The new |input_ln| bypasses the end-of-line marker allways at the
+ end of line and never at the beginning of line. In other words
+ |reset| establishes and |input_ln| maintains the invariant:
+
+ \centerline {The file is positioned at the first character of the
+ line or |eof|}
+
+ \marke N
+ `To hell with ``meaningful identifiers''!': The parameter |bypass_eoln|
+ does not always cause |input_ln| to bypass an end-of-line marker.
+ And the size of the buffer is not |buf_size| but |buf_size+1|. And
+ the end-of-line marker is not a start-of-line marker!
+
+ @p function input_ln(var f:alpha_file;@!bypass_eoln:boolean):boolean;
+ {inputs the next line or returns |false|}
+ begin
+ {|f| is positioned at the first character of the line, or |eof(f)|}
+ last:=first; {cf.\ Matthew 19\thinspace:\thinspace30}
+ if eof(f) then input_ln:=false
+ else begin
+ while not eoln(f) do
+ begin if last>=max_buf_stack then
+ begin max_buf_stack:=last+1;
+ if max_buf_stack=buf_size then begin
+ read_ln(f); {complete the current line}
+ @<Report overflow of the input buffer, and abort@>;
+ end
+ end;
+ buffer[last]:=xord[f^]; get(f); incr(last)
+ end;
+ get(f); { advance to the first character of next line}
+ input_ln:=true
+ end
+ {|f| is positioned at the first character of the next line, or |eof(f)|}
+ end;
+ @z
+
+[32] term_in and term_out are the standard pascal files
+@x
+is considered an output file the file variable is |term_out|.
+@^system dependencies@>
+
+@<Glob...@>=
+@!term_in:alpha_file; {the terminal as an input file}
+@!term_out:alpha_file; {the terminal as an output file}
+@y
+is considered an output file the file variable is |term_out|.
+
+\marke P No need to declare standard input/output in standard Pascal.
+@z
+
+[33]
+@x
+@ Here is how to open the terminal files
+in \ph. The `\.{/I}' switch suppresses the first |get|.
+@:PASCAL H}{\ph@>
+@^system dependencies@>
+
+@d t_open_in==reset(term_in,'TTY:','/O/I') {open the terminal for text input}
+@d t_open_out==rewrite(term_out,'TTY:','/O') {open the terminal for text output}
+@y
+@ Here is how to open the terminal files
+in \ph. The `\.{/I}' switch suppresses the first |get|.
+@:PASCAL H}{\ph@>
+@^system dependencies@>
+
+\marke P In Pascal, the standard text files are openend implicitly.
+
+@d t_open_in==do_nothing {open the terminal for text input}
+@d t_open_out==do_nothing {open the terminal for text output}
+@z
+
+[34]
+@x
+some instruction to the operating system. The following macros show how
+these operations can be specified in \ph:
+@:PASCAL H}{\ph@>
+@^system dependencies@>
+@y
+some instruction to the operating system.
+
+\marke X
+In Unix, nothing needs to be done here.
+
+@^FPC Pascal@>
+@^system dependencies@>
+@z
+
+[34]
+@x
+@d update_terminal == break(term_out) {empty the terminal output buffer}
+@d clear_terminal == break_in(term_in,true) {clear the terminal input buffer}
+@d wake_up_terminal == do_nothing {cancel the user's cancellation of output}
+@y
+@d fpc_flush == f@&l@&u@&s@&h
+@d update_terminal == fpc_flush(term_out) {empty the terminal output buffer}
+@d clear_terminal == do_nothing {clear the terminal input buffer}
+@d wake_up_terminal == do_nothing {cancel the user's cancellation of output}
+@z
+
+[36] command line
+@x
+not be typed immediately after~`\.{**}'.)
+
+@d loc==cur_input.loc_field {location of first unread character in |buffer|}
+
+@y
+not be typed immediately after~`\.{**}'.)
+
+\marke X
+An |@!fpc_string| is a |packed array[1..fpc_length] of
+char| with varying length.
+The function |@!fpc_length(s)| returns the length of the |fpc_string@,
+s|.
+The function |@!fpc_param_count| returns the number of
+command line arguments less one.
+The function |@!fpc_param_str(n)|
+returns the n-th argument for |0 <= n <= fpc_param_count|.
+
+\marke F This procedure puts the command line arguments separated
+by spaces into |buffer|. Like |input_ln| it updates |last| so that
+|buffer[first..last)| will contain the command line.
+
+@^FPC Pascal@>
+@^system dependencies@>
+
+@d loc==cur_input.loc_field {location of first unread character in |buffer|}
+@d fpc_string == s@& h@& o@& r@& t @& s @& t @& r @& i@& n @& g
+@d fpc_length==l @& e @& n @& g @& t @& h
+@d fpc_param_count==p @& a @& r @& a @& m @& c @& o @& u @& n @& t
+@d fpc_param_str==p @& a @& r @& a @& m @&s @& t @& r
+
+@p procedure input_command_ln; {get the command line in |buffer|}
+var argc: integer; {argument counter}
+ arg: fpc_string; {argument}
+ cc: integer; {character counter in argument}
+begin last := first; argc := 1;
+while argc <= fpc_param_count do
+ begin cc := 1; arg := fpc_param_str(argc); incr(argc);
+ while cc <= fpc_length(arg) do
+ begin
+ if last+1>=buf_size then
+ @<Report overflow of the input buffer, and abort@>;
+ buffer[last] := xord[arg[cc]]; incr(last); incr(cc)
+ end;
+ if (argc <= fpc_param_count) then begin
+ buffer[last] := " "; incr(last) {insert a space between arguments}
+ end
+ end
+end;
+@z
+
+[37] command line.
+@x
+It should be clear how to modify this routine to deal with command lines,
+if the system permits them.
+@^system dependencies@>
+
+@p function init_terminal:boolean; {gets the terminal input started}
+label exit;
+begin t_open_in;
+loop@+begin wake_up_terminal; write(term_out,'**'); update_terminal;
+@y
+\marke F The command line is treated as the first terminal line.
+
+\marke u Tell user to end the terminal file by Control-D.
+
+@p function init_terminal:boolean; {gets the terminal input started}
+label exit;
+begin t_open_in; input_command_ln;
+loc := first;
+if loc<last then
+ begin init_terminal:=true; return; {first line is the command line}
+ end;
+loop@+begin write(term_out,'**');
+@z
+
+[37] chatty
+ @x chatty
+ write(term_out,'! End of file on the terminal... why?');
+ @.End of file on the terminal@>
+ @y
+ @z
+
+[37] hint Control-D
+@x
+ write_ln(term_out,'Please type the name of your input file.');
+@y
+ write_ln(term_out,'Please type the name of your input file or Control-D.');@/
+@z
+
+[51] leave tex.pool open
+@x
+@ @d bad_pool(#)==begin wake_up_terminal; write_ln(term_out,#);
+ a_close(pool_file); get_strings_started:=false; return;
+@y
+@ @d bad_pool(#)==begin wake_up_terminal; write_ln(term_out,#);
+ get_strings_started:=false; return;
+@z
+
+[51] TANGLE would'nt help, but update
+@x
+done: if a<>@$ then bad_pool('! TEX.POOL doesn''t match; TANGLE me again.');
+@y
+done: if a<>@$ then bad_pool('! TeXformats/tex.pool doesn''t match.');
+@z
+
+[79] start editor
+@x
+@!use_err_help:boolean; {should the |err_help| list be shown?}
+@y
+@^Editor@>
+@!use_err_help:boolean; {should the |err_help| list be shown?}
+@!want_edit: boolean; {start \.{vi}?}
+@z
+
+[80] initial value for edit arguments
+@x
+help_ptr:=0; use_err_help:=false;
+@y
+@^Editor@>
+help_ptr:=0; use_err_help:=false;@/
+want_edit := false; {\marke F don't start \.{ed}}
+@z
+
+[84] set edit_cmd
+@x
+ begin print_nl("You want to edit file ");
+@.You want to edit file x@>
+ slow_print(input_stack[base_ptr].name_field);
+ print(" at line "); print_int(line);
+ interaction:=scroll_mode; jump_out;
+ end;
+@y
+@^Editor@>
+ begin print_nl("You want to edit file ");
+@.You want to edit file x@>
+ slow_print(input_stack[base_ptr].name_field);
+ print(" at line "); print_int(line);
+ interaction:=scroll_mode;
+ want_edit := true;
+ jump_out;
+ end;
+@z
+
+[86] extra space in log and missing last line terminator on terminal
+@x
+"Q":begin print_esc("batchmode"); decr(selector);
+ end;
+@y
+"Q":print_esc("batchmode");
+{ \marke E don't turn off terminal now }
+@z
+
+[86] continued
+@x
+print("..."); print_ln; update_terminal; return;
+@y
+print("..."); print_ln; update_terminal;
+if c="Q" then decr(selector); return; { but now }
+@z
+
+[109] fpc_single for glue ratio.
+@x
+routines cited there must be modified to allow negative glue ratios.)
+@y
+routines cited there must be modified to allow negative glue ratios.)
+
+\marke X In FPC~Pascal the type |fpc_single| seems appropiate.
+@d fpc_single== s@&i@&n@&g@&l@&e
+@z
+
+@x
+@!glue_ratio=real; {one-word representation of a glue expansion factor}
+@y
+@!glue_ratio=fpc_single; {one-word representation of a glue expansion
+ factor in FPC~Pascal}
+@^FPC Pascal@>
+@z
+
+[112]
+@x
+macros are simplified in the obvious way when |min_quarterword=0|.
+@^inner loop@>@^system dependencies@>
+
+@d qi(#)==#+min_quarterword
+ {to put an |eight_bits| item into a quarterword}
+@d qo(#)==#-min_quarterword
+ {to take an |eight_bits| item out of a quarterword}
+@d hi(#)==#+min_halfword
+ {to put a sixteen-bit item into a halfword}
+@d ho(#)==#-min_halfword
+ {to take a sixteen-bit item from a halfword}
+@y
+macros are simplified in the obvious way when |min_quarterword=0|.
+\marke X Which is the case with FPC.
+@^inner loop@>@^system dependencies@>
+
+@d qi(#)==#
+ {to put an |eight_bits| item into a quarterword}
+@d qo(#)==#
+ {to take an |eight_bits| item out of a quarterword}
+@d hi(#)==#
+ {to put a sixteen-bit item into a halfword}
+@d ho(#)==#
+ {to take a sixteen-bit item from a halfword}
+@z
+
+[241]
+@x
+@p procedure fix_date_and_time;
+begin time:=12*60; {minutes since midnight}
+day:=4; {fourth day of the month}
+month:=7; {seventh month of the year}
+year:=1776; {Anno Domini}
+end;
+@y
+\marke X The functions |now|, |decodedate|, and |decodetime| are provided
+by the unit |sysutils|. The command line option \.{fpc~-Fasysutils~tex.p}
+links that unit.
+@^system dependencies@>
+@^sysutils@>
+@^FPC Pascal@>
+When FPC is in ISO mode, it does not accept declaring a |unit| in the source
+file.
+@dfpc_now == now
+@dfpc_decode_date == decodedate
+@dfpc_decode_time == decodetime
+@p procedure fix_date_and_time;
+var yy,mm,dd: word;
+ hh,ss,ms: word;
+begin
+fpc_decode_date(fpc_now,yy,mm,dd); {current date}
+day := dd;
+month := mm;
+year := yy;@/
+fpc_decode_time(fpc_now,hh,mm,ss,ms); {current time}
+time := hh*60+mm; {minutes since midnight}
+end;
+@z
+
+[360] Don't print empty lines
+ @x chatty
+ @ All of the easy branches of |get_next| have now been taken care of.
+ There is one more branch.
+ @y
+ @ All of the easy branches of |get_next| have now been taken care of.
+ There is one more branch.
+
+ \marke h \TeX82 ends the current line by calling |print_ln| even
+ if the line is empty. This causes a spurious ugly empty line.
+ Calling |print_nl("")| is smarter. It ends the current
+ line only if it is not empty.
+ @z
+
+ @x chatty
+ if limit=start then {previous line was empty}
+ print_nl("(Please type a command or say `\end')");
+ @.Please type...@>
+ print_ln; first:=start;
+ @y
+ if limit=-1 then {previous line was empty}
+ print_nl("(Please type a command or say `\end')");
+ @.Please type...@>
+ print_nl(""); first:=start;
+ @z
+
+@x [514]
+|TEX_font_area|. These system area names will, of course, vary from place
+to place.
+@y
+|TEX_font_area|. These system area names will, of course, vary from place
+to place.
+
+\marke U Use the Unix file separator.
+@z
+
+[514]
+@x
+@d TEX_area=="TeXinputs:"
+@.TeXinputs@>
+@d TEX_font_area=="TeXfonts:"
+@.TeXfonts@>
+@y
+@d TEX_area=="TeXinputs/" {i.e., a subdirectory of the working directory}
+@.TeXinputs@>
+@d TEX_font_area=="TeXfonts/" {dito}
+@.TeXfonts@>
+@z
+
+[516]
+@x
+ if (c=">")or(c=":") then
+@y
+ if c="/" then {use ``/'' as a file name separator\marke U}
+@z
+
+[519]
+@x
+@d append_to_name(#)==begin c:=#; incr(k);
+@y
+
+\marke X With Free~Pascal you cannot set the length of a |packed
+array|. And with Unix, it does not help to blank out the rest of
+the |array|. But assigning the |name_of_file| to an |fpc_string|,
+setting the length of the |fpc_string| and then assigning it back
+to the |name_of_file| seems to work. @^FPC Pascal@>
+
+@d fpc_set_length==s@&e@&t@&l@&e@&n@&g@&t@&h
+
+@d append_to_name(#)==begin c:=#; incr(k);
+@z
+
+[519]
+@x
+@!j:pool_pointer; {index into |str_pool|}
+@y
+@!j:pool_pointer; {index into |str_pool|}
+@!s: fpc_string;
+@z
+
+[519] pack file name
+@x
+if k<=file_name_size then name_length:=k@+else name_length:=file_name_size;
+for k:=name_length+1 to file_name_size do name_of_file[k]:=' ';
+end;
+@y
+if k<=file_name_size then name_length:=k@+else name_length:=file_name_size;
+s := name_of_file;
+fpc_set_length(s, name_length);
+name_of_file := s;
+end;
+@z
+
+[521] Unix file separator
+@x
+TEX_format_default:='TeXformats:plain.fmt';
+@y
+TEX_format_default:='TeXformats/plain.fmt';
+ {``/'' is the Unix file name separator\marke U}
+@z
+
+[523] packed buffered name
+@x
+@!j:integer; {index into |buffer| or |TEX_format_default|}
+@y
+@^FPC Pascal@>
+@!j:integer; {index into |buffer| or |TEX_format_default|}
+s: fpc_string;
+@z
+
+[523] packed buffered name
+@x
+for k:=name_length+1 to file_name_size do name_of_file[k]:=' ';
+@y
+s := name_of_file; fpc_set_length(s, name_length); name_of_file := s;
+@z
+
+[530] Control D will help
+@x
+print_nl("Please type another "); print(s);
+@y
+print_nl("Please type another "); print(s); print(" or Control-D");
+@z
+
+[537] Editor
+@x
+@ Let's turn now to the procedure that is used to initiate file reading
+when an `\.{\\input}' command is being processed.
+
+@y
+@ Let's turn now to the procedure that is used to initiate file reading
+when an `\.{\\input}' command is being processed.
+@^Editor@>
+@^Fix@>
+
+\marke E Keep the complete file name since it might be needed to
+be passed to the system editor.
+(\TeX82 strips off area and extension to conserve string
+pool space.)
+@z
+
+[537] never flush file name
+@x
+if name=str_ptr-1 then {we can conserve string pool space now}
+ begin flush_string; name:=cur_name;
+ end;
+@y
+@^Editor@>
+@z
+
+[575] Don't check eof (fpc bug: eof off by one)
+@x
+if eof(tfm_file) then abort;
+@y
+@^FPC-EOF@>
+@z
+
+[597] buffered write
+@x
+output an array of words with one system call.
+@y
+output an array of words with one system call.
+@^FPC-buffer@>
+
+\marke P The procedure |fpc_blockwrite| takes a file, the first
+byte in a buffer and the number of bytes to be written as parameters
+and writes all bytes with one system call. This in fact speeds up
+\namefpc.
+
+@d fpc_blockwrite == b @& l @& o @& c @& k @& w @& r @& i @& t @& e
+@z
+
+[597] use buffered i/o to speed up TeX
+@x
+var k:dvi_index;
+begin for k:=a to b do write(dvi_file,dvi_buf[k]);
+@y
+begin fpc_blockwrite(dvi_file, dvi_buf[a], b-a+1);
+@z
+
+[816] save pointer to penalty_node
+@x
+same number of |mem|~words.
+@^data structure assumptions@>
+@y
+same number of |mem|~words.
+@^data structure assumptions@>
+@^\TeX-Bug@>
+
+\marke E
+\TeX82 prunes discardable nodes from the beginning of a new line until
+it reaches a nondiscardable node. Now, if the last line of a paragraph
+contains discardables only, the \.{\\parfillskip} glue at the end of the
+paragraph will also be removed, since it is a discardable. This will
+give you an empty \.{\\hbox}. Finally \TeX\ appends \.{\\rightskip} glue.
+This gives you a nonempty \.{\\hbox}, raising a \.{Underfull \\hbox}
+warning.
+
+To avoid this happening, \namefpc\ saves a pointer to the node
+immediately preceding the \.{\\parfillskip} node and quits pruning
+when it encounters this node several procedures later.
+@^Underfull \\hbox...@>
+@z
+
+@x
+link(tail):=new_param_glue(par_fill_skip_code);
+@y
+non_prunable_p := tail; {points to the node immediately before
+\.{\\parfillskip}}
+link(tail):=new_param_glue(par_fill_skip_code);
+@z
+
+[862] declare non_prunable_p
+@x
+The following declarations provide for a few other local variables that are
+used in special calculations.
+
+@y
+The following declarations provide for a few other local variables that are
+used in special calculations.
+
+\marke E Declare the |non_prunable_p| pointer.
+@z
+
+@x
+@!auto_breaking:boolean; {is node |cur_p| outside a formula?}
+@y
+@!auto_breaking:boolean; {is node |cur_p| outside a formula?}
+non_prunable_p:pointer; {pointer to the node before \.{\\parfillskip}}
+@z
+
+[876] pass non_prunable_p
+@x
+(By introducing this subprocedure, we are able to keep |line_break|
+from getting extremely long.)
+@y
+(By introducing this subprocedure, we are able to keep |line_break|
+from getting extremely long.)
+
+\marke E Pass |non_prunable_p| to the |post_line_break|~procedure.
+@z
+
+@x
+post_line_break(final_widow_penalty)
+@y
+post_line_break(final_widow_penalty, non_prunable_p)
+@z
+
+[877] declare non_prunable_p
+@x
+of their new significance.) Then the lines are justified, one by one.
+
+@y
+of their new significance.) Then the lines are justified, one by one.
+
+\marke E Declare another parameter. It holds the pointer to the node
+immediately preceding \.{\\parfillskip}.
+@z
+
+@x
+procedure post_line_break(@!final_widow_penalty:integer);
+@y
+procedure post_line_break(@!final_widow_penalty:integer;
+ non_prunable_p:pointer);
+@z
+
+[879]
+@x
+are computed for non-discretionary breakpoints.
+@y
+are computed for non-discretionary breakpoints.
+
+\marke E The pointer |non_prunable_p| references the node immediately
+preceding the \.{\\parfillskip} node at the end of the paragraph.
+Stop pruning at this node.
+@z
+
+[879]
+@x
+ if non_discardable(q) then goto done1;
+@y
+ if non_discardable(q) then goto done1;
+ if q = non_prunable_p then goto done1; {retain \.{\\parfillskip} glue}
+@z
+
+ [1265] empty line after change of interaction mode
+ @x chatty
+ begin print_ln;
+ @y
+ begin print_nl(""); { print new line only if current line not empty \marke h}
+ @z
+
+[1327] eof is broken
+@x
+if (x<>69069)or eof(fmt_file) then goto bad_fmt
+@y
+if (x<>69069) then goto bad_fmt
+@^FPC-EOF@>
+@z
+
+[1332]
+@x
+The initial test involving |ready_already| should be deleted if the
+\PASCAL\ runtime system is smart enough to detect such a ``mistake.''
+@^system dependencies@>
+@y
+The initial test involving |ready_already| should be deleted if the
+\PASCAL\ runtime system is smart enough to detect such a ``mistake.''
+@^system dependencies@>
+
+\marke X The procedure |@!fpc_halt| terminates the program and passes its
+parameter to the shell.
+
+@^system dependencies@>
+@^FPC Pascal@>
+@^Unix@>
+
+@d fpc_halt == h@&a@&l@&t
+@z
+
+[1332] simulate tex, not virtex
+ @x
+ start_of_TEX: @<Initialize the output routines@>;
+ @y
+ start_of_TEX:
+ @<Preload the default format file@>;
+ @<Initialize the output routines@>;
+ @z
+
+[1332]
+@x
+final_end: ready_already:=0;
+@y
+final_end:
+if want_edit then exec_editor; {user typed `\.{E}' \marke F}
+fpc_halt(history);
+ {pass |history| as the exit value to the system\marke u}
+@z
+
+[1333] print last end-of-line marker if needed
+@x
+This program doesn't bother to close the input files that may still be open.
+@y
+This program doesn't bother to close the input files that may still be open.
+\marke u
+Terminate the last line on the terminal.
+@z
+
+[1333] print last end-of-line marker if needed
+@x
+ slow_print(log_name); print_char(".");
+@y
+ slow_print(log_name); print_char("."); print_ln;
+@z
+
+[1338] return if eof.
+@x
+program below. (If |m=13|, there is an additional argument, |l|.)
+@.debug \#@>
+
+@y
+program below. (If |m=13|, there is an additional argument, |l|.)
+@.debug \#@>
+
+\marke P A Pascal program must not read from the standard text file
+if the end of file is reached. Even in this respect, Unix and Pascal
+treat terminals and disk files alike.
+@z
+
+@x
+ read(term_in,m);
+@y
+ if eof(term_in) then return; {\marke P never |read| at |eof|}
+ read(term_in,m);
+@z
+
+[1338] return if eof
+@x
+ else begin read(term_in,n);
+@y
+ else begin if eof(term_in) then return; {\marke P never |read| at |eof|}
+ read(term_in,n);
+@z
+
+[1339] return if eof
+@x
+13: begin read(term_in,l); print_cmd_chr(n,l);
+@y
+13: begin if eof(term_in) then return; {\marke P never |read| at |eof| }
+read(term_in,l); print_cmd_chr(n,l);
+@z
+
+[1379 and modules added for TeX-FPC]
+@x
+itself will get a new section number.
+@^system dependencies@>
+@y
+itself will get a new section number.
+
+@ \marke F If the user typed |'E'| to edit a file after confronted
+with an error message, \TeX\ will clean up and then call |edit|
+as its last feat.
+@^Editor@>
+
+This procedure must not print error messages, since all files are already
+closed.
+
+Beware of using any \.{WEB} strings like \.{"vi +"} since that
+would change the string pool file and you'll need to rebuild all
+format files with the new string pool in case you disagree which
+editor is the system editor.
+
+An overflow of |name_of_file| cannot happen, since |name_of_file|
+kept the file name while the file was being opened.
+/marke F
+The procedure @!|exec_edit| starts \.{vi} passing line number and
+file name.
+
+\marke X
+This procedure executes the Unix system editor, which is \.{ed} of course.
+@^Editor@>
+In case you disagree, modify all four definitions of |ed|, |de|, |vi|, |iv|
+to select code that executes \.{vi} instead. This not just changes
+the name of the system editor, but it adds one argument that contains the
+line number to the argument vector.
+The argument vector for the system editor has two entries:
+
+\indent \.{ed file-name}
+
+\noindent And the argument vector for the west coast editor three:
+
+\indent\.{vi +line file-name}
+
+The system call @!|fpc_fp_exec_vp| expects two parameters, namely
+the name of the editor to be loaded and the argument vector, an
+|array| of the arguments to be passed to the editor. Unix replaces
+the code of \TeX\ by the code of the editor without forking a new
+process. On success this procedure does not return.
+
+The type @!|fpc_pchar| is a pointer to a character. An argument is
+a null-terminated |packed array of char|. The \.{@@}-operator applied
+to an argument evaluates to the address of the first entry, i.e
+a pointer to a character.
+
+The function |fpc_fp_exec_vp| wants the argument vector to be passed
+as a pointer to a pointer to a character. An |array|~parameter is
+always passed as the address of its first entry. Therefore we must
+not apply the \.{@@}-operator to the parameters of |fpc_fp_exec_vp|.
+
+Note that the name of the binary is passed twice, namely as the
+first parameter and as the first entry of the second argument.
+|fpc_fp_exec_vp| searches for the binary in the \.{PATH}. And then
+it seems to replace |argv[0]| by the full name of the editor. At
+least this is what \.{ps -f} shows and might be a bug.
+
+The procedure |fpc_fp_exec_vp| is provided by the |unit@,unix|.
+@^|unit unix|@> The command line option \.{-Faunix} links to that
+unit. @^unix@>
+
+@^FPC Pascal@>
+@^system dependencies@>
+
+@d fpc_fp_exec_vp == fp_exec_vp
+@d fpc_pchar == pchar
+@d edit_file == input_stack[base_ptr].name_field
+@#
+@d vi==@{ {change this to `$\\{vi}\equiv\null$' when you think \.{vi}
+is the system editor}
+@d iv==@t@>@} {change this to `$\\{iv}\equiv\null$' when you think \.{vi}
+is the sytem editor}
+@f vi == begin
+@f iv == end
+@d ed== {change this to `$\\{ed}\equiv\.{@@\{}$' when you think \.{vi}
+is the system editor}
+@d de== {change this to `$\\{de}\equiv\.{@@\}}$' when you think \.{vi}
+is the system editor}
+@f ed == begin
+@f de == end
+
+@<Last-minute...@>=
+procedure exec_editor;
+const arg_size = 100; {maximal size of each of the arguments}
+ vi editor = 'vi'; {name of the binary to be started}
+ iv
+ @#
+ ed editor = 'ed'; {name of the binary to be started}
+ de
+ @#
+ editor_length = 2; {length of the name}
+var i, l: integer; {index into args}
+ j: pool_pointer; {index into |str_pool|}
+ s: str_number; {string to hold line number}
+ sel: integer; {save selector}
+ editor_arg, line_arg, file_arg : array[1..arg_size] of char; {arguments}
+ argv: array [0..3] of fpc_pchar; {vector of arguments}
+begin
+ l := editor_length;
+ for j := 1 to l do editor_arg[j] := editor[j];
+ editor_arg[l+1] := chr(0);@/
+ sel := selector;
+ selector := new_string;
+ print_int(line);
+ selector := sel;
+ s := make_string;
+ line_arg[1] := '+';
+ j := str_start[s];
+ l := length(s)+1;
+ for i := 2 to l do begin line_arg[i] := xchr[str_pool[j]]; incr(j) end;
+ line_arg[l+1] := chr(0);
+ @#
+ j := str_start[edit_file];
+ l := length(edit_file);
+ if l+1 > arg_size then begin
+ write_ln('File name longer than 100 bytes! Nice try!');
+ halt(100);
+ end;
+ for i := 1 to l do
+ begin file_arg[i] := xchr[str_pool[j]]; incr(j)
+ end;
+ file_arg[l+1] := chr(0);
+ @#
+ argv[0] := @@editor_arg;
+ vi
+ argv[1] := @@line_arg;
+ argv[2] := @@file_arg;
+ argv[3] := nil;
+ iv
+ @#
+ ed
+ argv[1] := @@file_arg;
+ argv[2] := nil;
+ de
+ @#
+ fpc_fp_exec_vp(editor, argv);
+ write_ln('Sorry, executing the editor failed.');
+end;
+
+@ \marke X
+A signal handler is a procedure that takes one |integer| parameter.
+The procedure |fpc_fp_signal| takes two parameter, an integer and
+a signal handler. The integer is the number of the signal. When
+the program receives a signal with the designated number, the signal
+handler gets invoked.
+
+The integer |fpc_SIGINT| is the number of the interrupt signal.
+The system interrupts the program, when the user types \.{\^C}.
+
+If |fpc_fp_get_errno| returns an integer that is not zero, an error
+occurred.
+
+The identifier |fpc_signal_handler| denotes the |type| of a
+pointer to a signal handler. Since this is foreign to Pascal,
+we use the type cast to |fpc_signal_handler| as a kludge.
+
+The functions related to installing a signal handler are provided
+by the |unit@,baseunix|. @^|baseunix|@>
+The command line option \.{-Fabaseunix} links to that unit.
+@^FPC Pascal@>
+@^system dependencies@>
+
+@d fpc_signal_handler == signal@&ha@&ndler
+@d fpc_fp_signal == fp_signal
+@d fpc_SIGINT == SIGINT
+@d fpc_fp_get_errno ==f@&p@&g@&e@&t@&e@&r@&r@&n@&o
+
+@<Set initial values ...@>+=
+
+fpc_fp_signal(fpc_SIGINT, fpc_signal_handler(catch_signal));
+if fpc_fp_get_errno <> 0 then
+ write_ln('Could not install signal handler:', fpc_fp_get_errno);
+
+@ \marke X The signal handler has the modifier |interrupt|. Modifiers
+are an extension of FPC Pascal. This one makes the compiler generate
+code suitable for a signal handler, which must not return to the
+caller, i.e. the system, but to the instruction where the program
+was interrupted.
+
+@^FPC Pascal@>
+@^dirty \PASCAL@>
+@^system dependencies@>
+
+@<Error handling ...@>+=
+procedure catch_signal; interrupt;
+begin
+ interrupt := i;
+end;
+@z
diff --git a/systems/unix/tex-fpc/tex/otex.ch b/systems/unix/tex-fpc/tex/otex.ch
deleted file mode 100644
index d84408e65d..0000000000
--- a/systems/unix/tex-fpc/tex/otex.ch
+++ /dev/null
@@ -1,1070 +0,0 @@
-% This is a change file of TeX for GNU Pascal, Wolfgang Helbig, Nov. 2007
-% Handle command line as the first line, Apr. 2008
-% Open vi at the offending line in error dialog Apr. 2008
-% Avoid an underful last line, use buffered output for dvi file, Jul. 2008
-% That "finished" the program. But I kept on improving:
-% July 2008:
-% Don't print empty lines on terminal and log file.
-% Don't trim ninput lines.
-% November 2009:
-% The last improvement caused an error: On reading a blank only
-% first line might go into a loop. This error cannot be noticed by the user.
-% It was noticed by Joachim Kuebart
-% Some changes were necessary run TeX_GPC to Mac OS X
-% with the current version of GPC. (pointed out by Martin Monperrus and
-% Luis Rivera)
-% July 2016: Switch from GNU Pascal to Free Pascal
-% There is no GPC on Mac OS X, Debian 8, OpenBSD.
-%
-
-[0] About TeX-FPC
-@x
-\def\gglob{20, 26} % this should be the next two sections of "<Global...>"
-@y
-\def\gglob{20, 26} % this should be the next two sections of "<Global...>"
-\input webmac-fpc
-
-\emergencystretch 0.6in % avoid overfull boxes
-
-\let\maybe=\iffalse % print changed modules only.
-
-% put a mark in the left margin. (see Exercise 14.28 in The TeXbook)
-\def\marke#1{\strut\vadjust{\kern-\dp\strutbox\vbox to 0pt{\vss
- \llap{\bf #1\/\quad\strut}}}\ignorespaces }
-
-\def\name{\TeX}
-
-\N0\*. \[0] About \namefpc.
-\namefpc\ is a Unix implementation of Donald~E. Knuth's \TeX82 in
-the version 3.14159265 from January 2014. It is based on Free~Pascal.
-The accompaning \.{README} file tells you how to build and run
-\namefpc. To help you identify the differences of \TeX82 and
-\namefpc, the numbers of modified modules carry an asterisk. Letters
-in the left margin indicate the reason for a change. They mean:
-\medskip
-\item{\bf E} fixes an error in \TeX82
-\item{\bf e} fixes a small error in \TeX82
-\item{\bf F} adds a feature as suggested by Knuth
-\item{\bf P} removes a violation of Pascal (Jensen, Wirth: {\sl Pascal
-User Manual and Report\/}, 3rd edition, 1985)
-\item{\bf X} an FPC extension
-\item{\bf U} make Unix happy
-\item{\bf u} make Unix user happy
-\item{\bf h} make Helbig happy
-\item{\bf N} a note that helped me to understand this program.
-\item{\bf B} a bug I couldn't fix.
-\medskip
-
-Identifiers that come with FPC~Pascal are coded as \.{WEB} macros and prefixed
-by `\\{fpc\_}'. That helps to resolve name clashes.
-\filbreak
-\namefpc\ is slightly slower than web2c based programs. To compile
-the device independend file for this document, the web2c version from \TeX~Life 2008
-ran 1.1 seconds and \namefpc\ 1.2 seconds.
-\filbreak
-Going with Dijkstra, see
-\.{http://www.cs.utexas.edu/users/EWD/videos/noorderlicht.mpg}, I
-don't believe in version numbers, since I don't believe in maintaining
-software---I consider \namefpc\ finished---and it must go without
-a number. This does not mean that I don't care any more about
-\namefpc; comments or questions are quite welcome. In fact, I
-tried to explain why I changed what and how in order to encourage
-you to undertake further modifications or bugfixes yourself and
-I'll be glad to help.
-\filbreak
-The 2008 edition of \namegpc\ was tested on NetBSD 3.1 and GPC~20020510,
-which happens to be the version of GNU~Pascal offered in the NetBSD
-package collection. The final edition of \namegpc was built in July
-2014 on Mac~OS~X 10.6.2 and GPC~20070904. This is the first edition
-of \namefpc which was built on Mac~OS~X 10.11.5 and FPC~3.0.0.
-The switch to FPC was necessary because Mac-OS-X broke GPC~20070904.
-And the switch was possible, because finally FPC accepts ISO-Pascal.
-\filbreak
-Joachim Kuebart spotted an error in the 2008 edition. When the
-first line consists of blanks only, a loop is not terminated properly.
-Joachim found this by reading this document, not by running \namegpc.
-This in turn motivated me to improve the comments resulting in a
-lot of changes.
-\filbreak
-\namefpc\ slightly differs from \TeX: On input, trailing blanks are
-not removed, on input of the first line, leading blanks are not
-removed either. This lets you interactively enter `\.{I \\showbox0\
-}' to make \namefpc\ show box 0. This doesn't work if the trailing
-blank were removed.
-
-\TeX\ writes an additional empty line whenever it prompts you on
-the terminal. \namefpc\ doesn't. Finally \TeX\ emits an `\.{Underfull
-\\hbox}' warning whenever the last line of a paragraph happens to include
-glue only, because then \TeX\ would erroneously remove the
-\.{parfillskip}. \namefpc\ will keep it.
-
-% \TeX82 will emit an underfull box warning here, \namefpc\ won't.
-\setbox0=\hbox to \hsize {\hfil\ \strut}
-\noindent\box0\ \ \par
-\bigskip
-\address
-\fi
-@z
-
-[2] Change the banner line
-@x
-known as `\TeX' [cf.~Stanford Computer Science report CS1027,
-November 1984].
-
-@d banner=='This is TeX, Version 3.14159265' {printed when \TeX\ starts}
-@y
-known as `\TeX' [cf.~Stanford Computer Science report CS1027,
-November 1984].
-
-\marke h Since \namefpc\ differs from \TeX\ to make me happy, I have to
-change the banner line.
-
-@d banner=='This is TeX-FPC'
-@z
-
-[4] program header
-@x
-@d mtype==t@&y@&p@&e {this is a \.{WEB} coding trick:}
-@y
-
-\marke P Pascal wants the identifiers of the standard text files
-\\{input} and \\{output} in the parameterlist of the program header.
-
-\marke N One of the \.{WEB} macros is named \\{input}
-as well. To make \.{TANGLE} write \.{INPUT} into the Pascal source
-file instead of the expansion of the macro, you code the name as
-a concatenation of one letter identifiers since one letter identifiers
-cannot be macro names. The same
-applies to \\{type}.
-
-@d term_in==i @& n @& p @& u @& t
-@d term_out==o @& u @& t @& p @& u @& t
-@d mtype==t @& y @& p @& e
-@f mtype==type
-@z
-
-[4] program header
-@x
-program TEX; {all file names are defined dynamically}
-@y
-program TEX(@!term_in,@!term_out);
-@z
-
-Since @x, @y, and @z only define a change block when they begin a
-line, you deactivate a block by indenting it (shift right) and
-activate it by unindenting it (shift left). With vi set the cursor
-to the @x line and type >} or <} to (un)indent a paragraph.
-
-[7] shift left to turn debugging on, right to turn it off
-@x
-@d debug==@{ {change this to `$\\{debug}\equiv\null$' when debugging}
-@d gubed==@t@>@} {change this to `$\\{gubed}\equiv\null$' when debugging}
-@y
-@d debug== {change this to `$\\{debug}\equiv\.{@@\{}$' when not debugging}
-@d gubed== {change this to `$\\{gubed}\equiv\.{@@\}}$' when not debugging}
-@z
-
-[7] shift left to turn stats on, right to turn them off.
-@x
-@d stat==@{ {change this to `$\\{stat}\equiv\null$' when gathering
- usage statistics}
-@d tats==@t@>@} {change this to `$\\{tats}\equiv\null$' when gathering
- usage statistics}
-@y
-@d stat== {change this to `$\\{stat}\equiv\.{@@\{}$' to turn off statistics}
-@d tats== {change this to `$\\{tats}\equiv\.{@@\}}$' to turn off statistics}
-@z
-
-
-[8] shift left to build TEX and right to build INITEX.
-@x initex
-@d init== {change this to `$\\{init}\equiv\.{@@\{}$' in the production version}
-@d tini== {change this to `$\\{tini}\equiv\.{@@\}}$' in the production version}
-@y
-@d init==@{ {change this to `$\\{init}\equiv $' for \.{INITEX}}
-@d tini==@t@>@} {change this to `$\\{tini}\equiv $' for \.{INITEX}}
-@z
-
-[9] compiler directives, turn off I/O checking.
-@x
-@^overflow in arithmetic@>
-@y
-@^overflow in arithmetic@>
-
-\marke X If the first character of a \PASCAL\ comment is a dollar
-sign, Free~Pascal treats the comment as a ``compiler directive''.
-FPC aborts when it detects an I/O error. To let \namefpc\ handle
-an I/O error while opening an input file, you have to turn off I/O
-checking altogether by the \.{I-} directive.
-
-\marke X $GOTO is not harmful. So turn it on!
-
-\marke X $MODE ISO sets integer size to 32 bit, defines file procedures
-get, put and allows nonlocal gotos.
-
-\marke b In contrast to \ph\ Free~Pascal offers no directive to
-check for arithmetic overflow.
-
-\marke e Knuth suggests to turn on range checking while debugging.
-FPC aborts when it spots range violation. Those violations might
-happen when the debugger shows a memery cell assumed to contain a
-|glue_ratio|. Even though turning of range checking doubles the
-speed of \TeX\ I suggest to turn it on when not debugging, just to
-get another check from Knuth for discovering an error.
-
-@^system dependencies@>
-@^GNU Pascal@>
-@z
-
-[9] compiler directives, turn off I/O checking, continued
-@x
-@{@&$C-,A+,D-@} {no range check, catch arithmetic overflow, no debug overhead}
-@!debug @{@&$C+,D+@}@+ gubed {but turn everything on when debugging}
-@y
-@{@&$I-@} {no I/O checking}
-@{@&$M@&O@&D@&E I@&S@&O@}
-@!debug @{@&$R-@}@+ gubed {no range check while debugging}
-@z
-
-[10] default case branch
-@x
-\PASCAL s have, in fact, done this, successfully but not happily!)
-@:PASCAL H}{\ph@>
-
-@d othercases == others: {default for cases not listed explicitly}
-@y
-\PASCAL s have, in fact, done this, successfully but not happily!)
-@:PASCAL H}{\ph@>
-
-\marke G This is the only place I voluntarily use an FPC extension
-to Pascal.
-@^FPC Pascal@>
-
-@d othercases == @+ else {default for cases not listed explicitly}
-@z
-
-[11]
-@x
-in production versions of \TeX.
-@y
-in production versions of \TeX.
-
-\marke N I didn't change the constants, leaving it up to you to
-adopt them to your task. Just keep the Pascal source for \.{tex}
-around. So you can change them without going all the way through
-modifying \.{tex.ch} and tangeling it. Note that for \.{initex}
-|mem_top| and |mem_max| must agree.
-
-\marke U One of the constants is the filename of the string pool
-file which needs an adoption to Unix.
-@z
-
-The changes headed by trip need to be made for the trip test suite.
-
-[11]
- @x trip
- @!mem_max=30000; {greatest index in \TeX's internal |mem| array;
- @y
- @!mem_max=3000; {greatest index in \TeX's internal |mem| array;
- @z
-
-[11]
- @x trip
- @!mem_min=0; {smallest index in \TeX's internal |mem| array;
- @y
- @!mem_min=1; {smallest index in \TeX's internal |mem| array;
- @z
-
-[11]
- @x trip
- @!error_line=72; {width of context lines on terminal error messages}
- @!half_error_line=42; {width of first lines of contexts in terminal
- error messages; should be between 30 and |error_line-15|}
- @!max_print_line=79; {width of longest text lines output; should be at least 60}
- @y
- @!error_line=64; {width of context lines on terminal error messages}
- @!half_error_line=32; {width of first lines of contexts in terminal
- error messages; should be between 30 and |error_line-15|}
- @!max_print_line=72; {width of longest text lines output; should be at least 60}
- @z
-
-[11] location of pool file
-@x
-@!pool_name='TeXformats:TEX.POOL ';
-@y
-@!pool_name='TeXformats/tex.pool'; { \marke X arrays of different length are
-assignment compatible. }
-@z
-
-
-[12]
- @x trip
- @d mem_bot=0 {smallest index in the |mem| array dumped by \.{INITEX};
- must not be less than |mem_min|}
- @d mem_top==30000 {largest index in the |mem| array dumped by \.{INITEX};
- must be substantially larger than |mem_bot|
- and not greater than |mem_max|}
- @y
- @d mem_bot=1 {smallest index in the |mem| array dumped by \.{INITEX};
- must not be less than |mem_min|}
- @d mem_top==3000 {largest index in the |mem| array dumped by \.{INITEX};
- must be substantially larger than |mem_bot|
- and not greater than |mem_max|}
- @z
-
-
-[25]
-@x
-for us to specify simple operations on word files before they are defined.
-@y
-for us to specify simple operations on word files before they are
-defined.
-
-\marke X
-@d fpc_byte==b @& y @& t @& e
-@d fpc_string == r@&a@&w@&b@&y@&t@&e@&s@&t@&r@&i@&n@&g
-
-@^FPC Pascal@>
-@z
-
-[25] the type of text_files is text
-@x
-@!eight_bits=0..255; {unsigned one-byte quantity}
-@!alpha_file=packed file of text_char; {files that contain textual data}
-@y
-@!eight_bits=fpc_byte; {unsigned one-byte quantity}
-@!alpha_file=t @& e @& x @& t; {\marke P Pascal requires |text|}
-@z
-
-[27]
-@x
-\TeX's file-opening procedures return |false| if no file identified by
-|name_of_file| could be opened.
-
-@d reset_OK(#)==erstat(#)=0
-@d rewrite_OK(#)==erstat(#)=0
-@y
-\marke X In Pascal, external files must occur in the program heading
-and FPC~Pascal asks the user whenever an external file is
-opened. But \.{initex} wants to reset \.{tex.pool} and rewrite
-\.{plain.fmt} without asking
-the user for the file name.
-FPC~Pascal lets you assign the file name to an external file.
-The function |fpc_io_result| returns a nonzero value if any
-error occurred since the last invocation of |fpc_io_result|.
-
-@^GNU Pascal@>
-@^system dependencies@>
-
-@d fpc_io_result==i@&o@&r@&e@&s@&u@&l@&t
-@d fpc_assign==a@&s@&s@&i@&g@&n
-@d reset_OK(#)==fpc_io_result=0
-@d rewrite_OK(#)==fpc_io_result=0
-@d clear_io_result==@+if fpc_io_result=0 then do_nothing
-@z
-
-[27] reset and rewrite for each of three file types
-@x alpha_file
-begin reset(f,name_of_file,'/O'); a_open_in:=reset_OK(f);
-@y
-begin clear_io_result; fpc_assign(f,name_of_file); reset(f);
-a_open_in:=reset_OK(f);
-@z
-@x
-begin rewrite(f,name_of_file,'/O'); a_open_out:=rewrite_OK(f);
-@y
-begin clear_io_result; fpc_assign(f,name_of_file); rewrite(f);
-a_open_out:=rewrite_OK(f);
-@z
-
-byte_file
-@x
-begin reset(f,name_of_file,'/O'); b_open_in:=reset_OK(f);
-@y
-begin clear_io_result; fpc_assign(f,name_of_file); reset(f);
-b_open_in:=reset_OK(f);
-@z
-@x
-function b_open_out(var f:byte_file):boolean;
- {open a binary file for output}
-begin rewrite(f,name_of_file,'/O'); b_open_out:=rewrite_OK(f);
-@y
-function b_open_out(var f:byte_file):boolean;
- {open a binary file for output}
-begin clear_io_result; fpc_assign(f,name_of_file); rewrite(f);
-b_open_out:=rewrite_OK(f);
-@z
-
-@x word_file
-begin reset(f,name_of_file,'/O'); w_open_in:=reset_OK(f);
-@y
-begin clear_io_result; fpc_assign(f,name_of_file); reset(f); w_open_in:=reset_OK(f);
-@z
-@x
-begin rewrite(f,name_of_file,'/O'); w_open_out:=rewrite_OK(f);
-@y
-begin clear_io_result; fpc_assign(f,name_of_file); rewrite(f);
-w_open_out:=rewrite_OK(f);
-@z
-
-[31]
-@x
-finer tuning is often possible at well-developed \PASCAL\ sites.
-@^inner loop@>
-
-@p function input_ln(var f:alpha_file;@!bypass_eoln:boolean):boolean;
- {inputs the next line or returns |false|}
-var last_nonblank:0..buf_size; {|last| with trailing blanks removed}
-begin if bypass_eoln then if not eof(f) then get(f);
- {input the first character of the line into |f^|}
-last:=first; {cf.\ Matthew 19\thinspace:\thinspace30}
-if eof(f) then input_ln:=false
-else begin last_nonblank:=first;
- while not eoln(f) do
- begin if last>=max_buf_stack then
- begin max_buf_stack:=last+1;
- if max_buf_stack=buf_size then
- @<Report overflow of the input buffer, and abort@>;
- end;
- buffer[last]:=xord[f^]; get(f); incr(last);
- if buffer[last-1]<>" " then last_nonblank:=last;
- end;
- last:=last_nonblank; input_ln:=true;
- end;
-end;
-@y
-finer tuning is often possible at well-developed \PASCAL\ sites.
-@^inner loop@>
-
-\marke h Since \namefpc\ does not remove trailing spaces, |buffer[last-1]|
-might hold a space.
-
-\marke P
-\ph\ lets you |reset| the terminal input file with the first |get|
-`surpressed'. For several reasons, this feature is not exploited by
-\namefpc. First, it is not provided by GPC. Second rightly so, since
-it violates the specification of Pascal. Third, it makes the program
-quite ugly by destroying the beautiful equivalence of terminal and
-disk files. Fourth, since \namefpc\ uses Pascal's standard text
-file |input|, it should not reset that file at all. Fifth, surpressing
-the first |get| is offered by \ph\ to address a problem, namely
-that the program stays in the reset function waiting for user input
-and this problem is solved much more beautiful by ``lazy I/O'',
-whereby the program only waits for user input if it is needed. This
-is suggested in the {\sl Pascal User Manual}, implemented by
-GNU~Pascal and exploited by \namefpc. This leads to a much cleaner
-implementaion of |input_ln|, which can always savely assume that
-|f^| holds the first character of the next line. This condition is
-established by Pascal's |reset| and maintained by |input_ln|.
-
-\marke h
-Unlike \TeX82 \namefpc\ leaves trailing spaces in the input line.
-
-@p function input_ln(var f:alpha_file;@!bypass_eoln:boolean):boolean;
- {inputs the next line or returns |false|}
-var ch: char;
-begin
- {ignore |bypass_eoln|. Assuming |f| being positioned at the first character}
-last:=first; {cf.\ Matthew 19\thinspace:\thinspace30}
-if eof(f) then input_ln:=false
-else begin
- while not eoln(f) do
- begin if last>=max_buf_stack then
- begin max_buf_stack:=last+1;
- if max_buf_stack=buf_size then begin
- read_ln(f); {complete the current line}
- @<Report overflow of the input buffer, and abort@>;
- end;
- end;
- read(f, ch); buffer[last]:=xord[ch]; incr(last);
- end;
- read_ln(f); {Advance |f| to the first character of the next line}
- input_ln:=true;
- end;
-end;
-@z
-
-[32] term_in and term_out are the standard pascal files
-@x
-is considered an output file the file variable is |term_out|.
-@^system dependencies@>
-
-@<Glob...@>=
-@!term_in:alpha_file; {the terminal as an input file}
-@!term_out:alpha_file; {the terminal as an output file}
-@y
-is considered an output file the file variable is |term_out|.
-\marke P Pascal's standard text files are declared implicitly.
-@z
-
-[33]
-@x
-@ Here is how to open the terminal files
-in \ph. The `\.{/I}' switch suppresses the first |get|.
-@:PASCAL H}{\ph@>
-@^system dependencies@>
-
-@d t_open_in==reset(term_in,'TTY:','/O/I') {open the terminal for text input}
-@d t_open_out==rewrite(term_out,'TTY:','/O') {open the terminal for text output}
-@y
-@ Here is how to open the terminal files
-in \ph. The `\.{/I}' switch suppresses the first |get|.
-@:PASCAL H}{\ph@>
-@^system dependencies@>
-
-\marke P In Pascal, the standard text files are openend implicitly.
-
-@d t_open_in==do_nothing {open the terminal for text input}
-@d t_open_out==do_nothing {open the terminal for text output}
-@z
-
-[34]
-@x
-some instruction to the operating system. The following macros show how
-these operations can be specified in \ph:
-@:PASCAL H}{\ph@>
-@^system dependencies@>
-@y
-some instruction to the operating system.
-
-\marke X
-Unix holds terminal output, when it receives \.{\^S} and
-continues writing to the terminal, when it receives \.{\^Q}. These
-`flow control' characters only work when sent from the terminal but
-not when sent to the terminal. \marke B Here I give up, since I
-don't know how to restart the output from the writing side so
-\namefpc\ does nothing. Mac OS X does not stop terminal output when
-it receives \.{\^S}.
-
-@^Free Pascal@>
-@^system dependencies@>
-@z
-
-[34]
-@x
-@d update_terminal == break(term_out) {empty the terminal output buffer}
-@d clear_terminal == break_in(term_in,true) {clear the terminal input buffer}
-@d wake_up_terminal == do_nothing {cancel the user's cancellation of output}
-@y
-@d fpc_flush == f@&l@&u@&s@&h
-@d update_terminal == fpc_flush(term_out) {empty the terminal output buffer}
-@d clear_terminal == do_nothing {clear the terminal input buffer}
-@d wake_up_terminal == do_nothing {cancel the user's cancellation of output}
-@z
-
-[35]
-@x
- begin write_ln(term_out,'Buffer size exceeded!'); goto final_end;
-@y
- begin write_ln(term_out,'Buffer size exceeded!'); fpc_halt(3);
-@z
-
-[36] command line
-@x
-not be typed immediately after~`\.{**}'.)
-
-@d loc==cur_input.loc_field {location of first unread character in |buffer|}
-
-@y
-not be typed immediately after~`\.{**}'.)
-
-\marke F This procedure puts the command line arguments separated
-by spaces into |buffer|. Like |input_ln| it updates |last| so that
-|buffer[first..last)| will contain the command line.
-
-\marke X FPC~Pascal's function~|@!fpc_param_count| gives the number of
-command line arguments. The function~|@!fpc_param_str(n)| returns the
-n-th argument for |0 <= n <= gpc_param_count| in a |@!fpc_string|,
-whose length is returned by the function~|@!gpc_length|.
-A |fpc_string| is like a |packed array[1..fpc_length] of char| with
-varying length.
-
-@^FPC Pascal@>
-@^system dependencies@>
-
-@d loc==cur_input.loc_field {location of first unread character in |buffer|}
-@d fpc_length==l @& e @& n @& g @& t @& h
-@d fpc_param_count==p @& a @& r @& a @& m @& c @& o @& u @& n @& t
-@d fpc_param_str==p @& a @& r @& a @& m @&s @& t @& r
- {FPC function returning the length of a |fpc_string|}
-
-@p procedure input_command_ln; {get the command line in |buffer|}
-var argc: integer; {argument counter}
- arg: fpc_string; {argument}
- cc: integer; {character counter in argument}
-begin last := first; argc := 1;
-while argc <= fpc_param_count do
- begin cc := 1; arg := fpc_param_str(argc); incr(argc);
- while cc <= fpc_length(arg) do
- begin
- if last+1>=buf_size then
- @<Report overflow of the input buffer, and abort@>;
- buffer[last] := xord[arg[cc]]; incr(last); incr(cc);
- end;
- if (argc <= fpc_param_count) then begin
- buffer[last] := " "; incr(last); {insert a space between arguments}
- end;
- end;
-end;
-@z
-
-[37] command line.
-@x
-@ The following program does the required initialization
-without retrieving a possible command line.
-It should be clear how to modify this routine to deal with command lines,
-if the system permits them.
-@^system dependencies@>
-
-@p function init_terminal:boolean; {gets the terminal input started}
-label exit;
-begin t_open_in;
-loop@+begin wake_up_terminal; write(term_out,'**'); update_terminal;
-@.**@>
- if not input_ln(term_in,true) then {this shouldn't happen}
- begin write_ln(term_out);
- write(term_out,'! End of file on the terminal... why?');
-@.End of file on the terminal@>
- init_terminal:=false; return;
- end;
- loc:=first;
- while (loc<last)and(buffer[loc]=" ") do incr(loc);
- if loc<last then
- begin init_terminal:=true;
- return; {return unless the line was all blank}
- end;
- write_ln(term_out,'Please type the name of your input file.');
- end;
-exit:end;
-@y
-@ \marke F The following program treats a non empty command line as
-the first line.
-
-The 2008 edition of \namegpc\ erranously assumed |buffer[last-1] <> " "|
-which does not hold if your first line is all blank as Joachim Kuebart noted.
-@^Kuebart, Joachim@>
-
-@p function init_terminal:boolean; {gets the terminal input started}
-label exit;
-begin t_open_in; input_command_ln;
-while first=last do begin
- wake_up_terminal; write(term_out,'**'); update_terminal;
-@.**@>
- if not input_ln(term_in, true) then {this shouldn't happen}
- begin write_ln(term_out);
- write_ln(term_out,'! End of file on the terminal... why?');
-@.End of file on the terminal@>
- init_terminal:=false; return;
- end;
- if first=last then
- write_ln(term_out,'Please type the name of your input file.');
- end;
-loc := first;
-init_terminal:=true;
-exit: end;
-@z
-[109]
-@x
-routines cited there must be modified to allow negative glue ratios.)
-@y
-routines cited there must be modified to allow negative glue ratios.)
-
-\marke X In FPC~Pascal the type |fpc_single| is appropiate.
-@d fpc_single== s@&i@&n@&g@&l@&e
-@z
-
-@x
-@!glue_ratio=real; {one-word representation of a glue expansion factor}
-@y
-@!glue_ratio=fpc_single; {one-word representation of a glue expansion
- factor in GNU~Pascal}
-@^FPC Pascal@>
-@z
-
-[112]
-@x
-macros are simplified in the obvious way when |min_quarterword=0|.
-@^inner loop@>@^system dependencies@>
-
-@d qi(#)==#+min_quarterword
- {to put an |eight_bits| item into a quarterword}
-@d qo(#)==#-min_quarterword
- {to take an |eight_bits| item out of a quarterword}
-@d hi(#)==#+min_halfword
- {to put a sixteen-bit item into a halfword}
-@d ho(#)==#-min_halfword
- {to take a sixteen-bit item from a halfword}
-@y
-macros are simplified in the obvious way when |min_quarterword=0|.
-\marke X Which is the case with FPC.
-@^inner loop@>@^system dependencies@>
-
-@d qi(#)==#
- {to put an |eight_bits| item into a quarterword}
-@d qo(#)==#
- {to take an |eight_bits| item out of a quarterword}
-@d hi(#)==#
- {to put a sixteen-bit item into a halfword}
-@d ho(#)==#
- {to take a sixteen-bit item from a halfword}
-@z
-
-[360] Don't print empty lines
-@x
-@ All of the easy branches of |get_next| have now been taken care of.
-There is one more branch.
-@y
-@ All of the easy branches of |get_next| have now been taken care of.
-There is one more branch.
-
-\marke h \TeX82 ends the current line by calling |print_ln| even
-if the line is empty. This causes an additional empty line, which
-is ugly. Calling |print_nl("")| is smarter. It ends the current
-line only if it is not empty.
-@z
-
-@x
- print_ln; first:=start;
-@y
- print_nl(""); first:=start;
-@z
-
-@x [514]
-|TEX_font_area|. These system area names will, of course, vary from place
-to place.
-@y
-|TEX_font_area|. These system area names will, of course, vary from place
-to place.
-
-\marke U Use the Unix file separator.
-@z
-
-[514]
-@x
-@d TEX_area=="TeXinputs:"
-@.TeXinputs@>
-@d TEX_font_area=="TeXfonts:"
-@.TeXfonts@>
-@y
-@d TEX_area=="TeXinputs/" {i.e., a subdirectory of the working directory}
-@.TeXinputs@>
-@d TEX_font_area=="TeXfonts/" {dito}
-@.TeXfonts@>
-@z
-
-[516]
-@x
- if (c=">")or(c=":") then
-@y
- if c="/" then {use ``/'' as a file name separator\marke U}
-@z
-
-[519]
-@x
-@d append_to_name(#)==begin c:=#; incr(k);
-@y
-@d fpc_set_length==s@&e@&t@&l@&e@&n@&g@&t@&h
-
-@d append_to_name(#)==begin c:=#; incr(k);
-@z
-
-[519]
-@x
-@!j:pool_pointer; {index into |str_pool|}
-@y
-@!j:pool_pointer; {index into |str_pool|}
-@!rbs: fpc_string;
-@z
-
-[519]
-@x
-if k<=file_name_size then name_length:=k@+else name_length:=file_name_size;
-for k:=name_length+1 to file_name_size do name_of_file[k]:=' ';
-end;
-@y
-if k<=file_name_size then name_length:=k@+else name_length:=file_name_size;
-rbs := name_of_file;
-fpc_set_length(rbs, name_length);
-name_of_file := rbs;
-end;
-@z
-
-[521]
-@x
-TEX_format_default:='TeXformats:plain.fmt';
-@y
-TEX_format_default:='TeXformats/plain.fmt';
- {``/'' is the Unix file name separator\marke U}
-@z
-
-[523]
-@x
-@!j:integer; {index into |buffer| or |TEX_format_default|}
-@y
-@!j:integer; {index into |buffer| or |TEX_format_default|}
-rbs: fpc_string;
-@z
-
-[523]
-@x
-for k:=name_length+1 to file_name_size do name_of_file[k]:=' ';
-@y
-rbs := name_of_file;
-fpc_set_length(rbs, name_length);
-name_of_file := rbs;
-@z
-
-[575] Don't check eof
-@x
-if eof(tfm_file) then abort;
-@y
-@z
-
-[816] save pointer to penalty_node
-@x
-same number of |mem|~words.
-@^data structure assumptions@>
-@y
-same number of |mem|~words.
-@^data structure assumptions@>
-
-\marke E
-\TeX82 prunes discardable nodes from the beginning of a new line until
-it reaches a nondiscardable node. Now, if the last line of a paragraph
-contains discardables only, the \.{\\parfillskip} glue at the end of the
-paragraph will also be removed, since it is a discardable. This will
-give you an empty \.{\\hbox}. Finally \TeX\ appends \.{\\rightskip} glue.
-This gives you a nonempty \.{\\hbox}, raising a \.{Underfull \\hbox}
-warning.
-
-To avoid this happening, \namefpc\ saves a pointer to the node
-immediately preceding the \.{\\parfillskip} node and quits pruning
-when it encounters this node several procedures later.
-@^Underfull \\hbox...@>
-@z
-
-@x
-link(tail):=new_param_glue(par_fill_skip_code);
-@y
-non_prunable_p := tail; {points to the node immediately before
-\.{\\parfillskip}}
-link(tail):=new_param_glue(par_fill_skip_code);
-@z
-
-[862] declare non_prunable_p
-@x
-The following declarations provide for a few other local variables that are
-used in special calculations.
-
-@y
-The following declarations provide for a few other local variables that are
-used in special calculations.
-
-\marke E Declare the |non_prunable_p| pointer.
-@z
-
-@x
-@!auto_breaking:boolean; {is node |cur_p| outside a formula?}
-@y
-@!auto_breaking:boolean; {is node |cur_p| outside a formula?}
-non_prunable_p:pointer; {pointer to the node before \.{\\parfillskip}}
-@z
-
-[876] pass non_prunable_p
-@x
-(By introducing this subprocedure, we are able to keep |line_break|
-from getting extremely long.)
-@y
-(By introducing this subprocedure, we are able to keep |line_break|
-from getting extremely long.)
-
-\marke E Pass |non_prunable_p| to the |post_line_break|~procedure.
-@z
-
-@x
-post_line_break(final_widow_penalty)
-@y
-post_line_break(final_widow_penalty, non_prunable_p)
-@z
-
-[877] declare non_prunable_p
-@x
-of their new significance.) Then the lines are justified, one by one.
-
-@y
-of their new significance.) Then the lines are justified, one by one.
-
-\marke E Declare another parameter. It holds the pointer to the node
-immediately preceding \.{\\parfillskip}.
-@z
-
-@x
-procedure post_line_break(@!final_widow_penalty:integer);
-@y
-procedure post_line_break(@!final_widow_penalty:integer;
- non_prunable_p:pointer);
-@z
-
-[879]
-@x
-are computed for non-discretionary breakpoints.
-@y
-are computed for non-discretionary breakpoints.
-
-\marke E The pointer |non_prunable_p| references the node immediately
-preceding the \.{\\parfillskip} node at the end of the paragraph.
-Stop pruning at this node.
-@z
-
-[879]
-@x
- if non_discardable(q) then goto done1;
-@y
- if non_discardable(q) then goto done1;
- if q = non_prunable_p then goto done1; {retain \.{\\parfillskip} glue}
-@z
-
-[1327]
-@x
-if (x<>69069)or eof(fmt_file) then goto bad_fmt
-@y
-if (x<>69069) then goto bad_fmt
-@z
-
-[1332]
-@x
-The initial test involving |ready_already| should be deleted if the
-\PASCAL\ runtime system is smart enough to detect such a ``mistake.''
-@^system dependencies@>
-@y
-The initial test involving |ready_already| should be deleted if the
-\PASCAL\ runtime system is smart enough to detect such a ``mistake.''
-@^system dependencies@>
-
-\marke h \namefpc\ tries to load the format file even before it
-initializes the output routines. That way, it will print the name of
-the format file on the terminal.
-
-\marke X
-|@!fpc_halt|
-passes the |history| as an exit code to the shell.
-
-@^system dependencies@>
-@^GNU Pascal@>
-@^Unix@>
-
-@d fpc_halt == h@&a@&l@&t
-@z
-
-[1332]
-@x
-start_of_TEX: @<Initialize the output routines@>;
-@y
-start_of_TEX: @<Preload the default format file@>;
-@<Initialize the output routines@>;
-@z
-
-[1332]
-@x
-final_end: ready_already:=0;
-@y
-final_end:
-fpc_halt(history);
- {pass |history| as the exit value to the system\marke u}
-@z
-
-[1333] print last end-of-line marker if needed
-@x
-This program doesn't bother to close the input files that may still be open.
-@y
-This program doesn't bother to close the input files that may still be open.
-
-\marke h
-Special care is taken to terminate the last line on the terminal.
-
-@z
-
-[1333] print last end-of-line marker if needed
-@x
- slow_print(log_name); print_char(".");
- end;
- end;
-end;
-@y
- slow_print(log_name); print_char(".");
- end;
- end;
- if term_offset > 0 then wterm_cr;
-end;
-@z
-
-[1338] return if eof.
-@x
-program below. (If |m=13|, there is an additional argument, |l|.)
-@.debug \#@>
-
-@y
-program below. (If |m=13|, there is an additional argument, |l|.)
-@.debug \#@>
-
-\marke P A Pascal program must not read from the standard text file
-if the end of file is reached. Even in this respect, Unix and Pascal
-treat terminals and disk files alike.
-
-@z
-@x
-begin loop begin wake_up_terminal;
-@y
-begin loop begin; wake_up_terminal;
-@z
-
-@x
- read(term_in,m);
-@y
- if eof(term_in) then return;
- read(term_in,m);
-@z
-
-[1338] return if eof
-@x
- else begin read(term_in,n);
-@y
- else begin if eof(term_in) then return;
- read(term_in,n);
-@z
-
-[1339] return if eof
-@x
-13: begin read(term_in,l); print_cmd_chr(n,l);
-@y
-13: begin if eof(term_in) then return;
-read(term_in,l); print_cmd_chr(n,l);
-@z
-
-[1379 and modules added for TeX-FPC]
-@x
-itself will get a new section number.
-@^system dependencies@>
-@y
-itself will get a new section number.
-
-\marke h Try to preload the default format file. This is called
-even before the first line is read from the terminal, and thus
-turns \.{VIRTEX} into \.{TEX}, at least as experienced by the user.
-\.{INITEX} sets |format_ident| to `\.{INITEX}' and won't load a
-format file here.
-
-@<Preload the default format file@>=
-if format_ident = 0 then
- begin pack_buffered_name(format_default_length - format_ext_length, 1, 0);
- if not w_open_in(fmt_file) then
- begin
- wterm_ln('I can''t find the format file ', name_of_file);
- goto final_end
- end;
- if not load_fmt_file then
- begin w_close(fmt_file); goto final_end
- end;
- w_close(fmt_file);
- end
-@z
diff --git a/systems/unix/tex-fpc/tex/tex.ch b/systems/unix/tex-fpc/tex/tex.ch
deleted file mode 100644
index 18cec3b8ea..0000000000
--- a/systems/unix/tex-fpc/tex/tex.ch
+++ /dev/null
@@ -1,1059 +0,0 @@
-% This is a change file of TeX for GNU Pascal, Wolfgang Helbig, Nov. 2007
-% Handle command line as the first line, Apr. 2008
-% Open vi at the offending line in error dialog Apr. 2008
-% Avoid an underful last line, use buffered output for dvi file, Jul. 2008
-% That "finished" the program. But I kept on improving:
-% July 2008:
-% Don't print empty lines on terminal and log file.
-% Don't trim ninput lines.
-% November 2009:
-% The last improvement caused an error: On reading a blank only
-% first line might go into a loop. This error cannot be noticed by the user.
-% It was noticed by Joachim Kuebart
-% Some changes were necessary run TeX_GPC to Mac OS X
-% with the current version of GPC. (pointed out by Martin Monperrus and
-% Luis Rivera)
-% July 2016: Switch from GNU Pascal to Free Pascal
-% There is no GPC on Mac OS X, Debian 8, OpenBSD.
-%
-
-[0] About TeX-FPC
-@x
-\def\gglob{20, 26} % this should be the next two sections of "<Global...>"
-@y
-\def\gglob{20, 26} % this should be the next two sections of "<Global...>"
-\input webmac-fpc
-
-\emergencystretch 0.6in % avoid overfull boxes
-
-\let\maybe=\iffalse % print changed modules only.
-
-% put a mark in the left margin. (see Exercise 14.28 in The TeXbook)
-\def\marke#1{\strut\vadjust{\kern-\dp\strutbox\vbox to 0pt{\vss
- \llap{\bf #1\/\quad\strut}}}\ignorespaces }
-
-\def\name{\TeX}
-
-\N0\*. \[0] About \namefpc.
-\namefpc\ is a Unix implementation of Donald~E. Knuth's \TeX82 in
-the version 3.14159265 from January 2014. It is based on Free~Pascal.
-The accompaning \.{README} file tells you how to build and run
-\namefpc. To help you identify the differences of \TeX82 and
-\namefpc, the numbers of modified modules carry an asterisk. Letters
-in the left margin indicate the reason for a change. They mean:
-\medskip
-\item{\bf E} fixes an error in \TeX82
-\item{\bf e} fixes a small error in \TeX82
-\item{\bf F} adds a feature as suggested by Knuth
-\item{\bf P} removes a violation of Pascal (Jensen, Wirth: {\sl Pascal
-User Manual and Report\/}, 3rd edition, 1985)
-\item{\bf X} an FPC extension
-\item{\bf U} make Unix happy
-\item{\bf u} make Unix user happy
-\item{\bf h} make Helbig happy
-\item{\bf N} a note that helped me to understand this program.
-\item{\bf B} a bug I couldn't fix.
-\medskip
-
-Identifiers that come with FPC~Pascal are coded as \.{WEB} macros and prefixed
-by `\\{fpc\_}'. That helps to resolve name clashes.
-\filbreak
-Going with Dijkstra, see
-\.{http://www.cs.utexas.edu/users/EWD/videos/noorderlicht.mpg}, I
-don't believe in version numbers, since I don't believe in maintaining
-software---I consider \namefpc\ finished---and it must go without
-a number.
-\filbreak
-\namefpc\ slightly differs from \TeX: On input, trailing blanks are
-not removed, on input of the first line, leading blanks are not
-removed either. This lets you interactively enter `\.{I \\showbox0\
-}' to make \namefpc\ show box 0. This doesn't work if the trailing
-blank were removed.
-
-\TeX\ writes an additional empty line whenever it prompts you on
-the terminal. \namefpc\ doesn't. Finally \TeX\ emits an `\.{Underfull
-\\hbox}' warning whenever the last line of a paragraph happens to include
-glue only, because then \TeX\ would erroneously remove the
-\.{parfillskip}. \namefpc\ will keep it.
-
-% \TeX82 will emit an underfull box warning here, \namefpc\ won't.
-\setbox0=\hbox to \hsize {\hfil\ \strut}
-\noindent\box0\ \ \par
-\bigskip
-\address
-\fi
-@z
-
-[2] Change the banner line
-@x
-known as `\TeX' [cf.~Stanford Computer Science report CS1027,
-November 1984].
-
-@d banner=='This is TeX, Version 3.14159265' {printed when \TeX\ starts}
-@y
-known as `\TeX' [cf.~Stanford Computer Science report CS1027,
-November 1984].
-
-\marke h Since \namefpc\ differs from \TeX\ to make me happy, I have to
-change the banner line.
-
-@d banner=='This is TeX-FPC'
-@z
-
-[4] program header
-@x
-@d mtype==t@&y@&p@&e {this is a \.{WEB} coding trick:}
-@y
-
-\marke P Pascal wants the identifiers of the standard text files
-\\{input} and \\{output} in the parameterlist of the program header.
-
-\marke N One of the \.{WEB} macros is named \\{input}
-as well. To make \.{TANGLE} write \.{INPUT} into the Pascal source
-file instead of the expansion of the macro, you code the name as
-a concatenation of one letter identifiers since one letter identifiers
-cannot be macro names. The same
-applies to \\{type}.
-
-@d term_in==i @& n @& p @& u @& t
-@d term_out==o @& u @& t @& p @& u @& t
-@d mtype==t @& y @& p @& e
-@f mtype==type
-@z
-
-[4] program header
-@x
-program TEX; {all file names are defined dynamically}
-@y
-program TEX(@!term_in,@!term_out);
-@z
-
-Since @x, @y, and @z only define a change block when they begin a
-line, you deactivate a block by indenting it (shift right) and
-activate it by unindenting it (shift left). With vi set the cursor
-to the @x line and type >} or <} to (un)indent a paragraph.
-
-[7] shift left to turn debugging on, right to turn it off
-@x
-@d debug==@{ {change this to `$\\{debug}\equiv\null$' when debugging}
-@d gubed==@t@>@} {change this to `$\\{gubed}\equiv\null$' when debugging}
-@y
-@d debug== {change this to `$\\{debug}\equiv\.{@@\{}$' when not debugging}
-@d gubed== {change this to `$\\{gubed}\equiv\.{@@\}}$' when not debugging}
-@z
-
-[7] shift left to turn stats on, right to turn them off.
-@x
-@d stat==@{ {change this to `$\\{stat}\equiv\null$' when gathering
- usage statistics}
-@d tats==@t@>@} {change this to `$\\{tats}\equiv\null$' when gathering
- usage statistics}
-@y
-@d stat== {change this to `$\\{stat}\equiv\.{@@\{}$' to turn off statistics}
-@d tats== {change this to `$\\{tats}\equiv\.{@@\}}$' to turn off statistics}
-@z
-
-
- [8] shift left to build TEX and right to build INITEX.
- @x initex
- @d init== {change this to `$\\{init}\equiv\.{@@\{}$' in the production version}
- @d tini== {change this to `$\\{tini}\equiv\.{@@\}}$' in the production version}
- @y
- @d init==@{ {change this to `$\\{init}\equiv $' for \.{INITEX}}
- @d tini==@t@>@} {change this to `$\\{tini}\equiv $' for \.{INITEX}}
- @z
-
-[9] compiler directives, turn off I/O checking.
-@x
-@^overflow in arithmetic@>
-@y
-@^overflow in arithmetic@>
-
-\marke X If the first character of a \PASCAL\ comment is a dollar
-sign, Free~Pascal treats the comment as a ``compiler directive''.
-FPC aborts when it detects an I/O error. To let \namefpc\ handle
-an I/O error while opening an input file, you have to turn off I/O
-checking altogether by the \.{I-} directive.
-
-
-\marke X \$MODE ISO sets integer size to 32 bit, defines file procedures
-get, put and allows nonlocal gotos.
-
-\marke b In contrast to \ph\ Free~Pascal offers no directive to
-check for arithmetic overflow.
-
-\marke e Knuth suggests to turn on range checking while debugging.
-FPC aborts when it spots range violation. Those violations might
-happen when the debugger shows a memery cell assumed to contain a
-|glue_ratio|. Even though turning of range checking doubles the
-speed of \TeX\ I suggest to turn it on when not debugging, just to
-get another check from Knuth for discovering an error.
-
-@^system dependencies@>
-@^GNU Pascal@>
-@z
-
-[9] compiler directives, turn off I/O checking, continued
-@x
-@{@&$C-,A+,D-@} {no range check, catch arithmetic overflow, no debug overhead}
-@!debug @{@&$C+,D+@}@+ gubed {but turn everything on when debugging}
-@y
-@{@&$I-@} {no I/O checking}
-@{@&$M@&O@&D@&E I@&S@&O@}
-@!debug @{@&$R-@}@+ gubed {no range check while debugging}
-@z
-
-[10] default case branch
-@x
-\PASCAL s have, in fact, done this, successfully but not happily!)
-@:PASCAL H}{\ph@>
-
-@d othercases == others: {default for cases not listed explicitly}
-@y
-\PASCAL s have, in fact, done this, successfully but not happily!)
-@:PASCAL H}{\ph@>
-
-\marke X This is the only place I voluntarily use an FPC extension
-to Pascal.
-@^FPC Pascal@>
-
-@d othercases == @+ else {default for cases not listed explicitly}
-@z
-
-[11]
-@x
-in production versions of \TeX.
-@y
-in production versions of \TeX.
-
-\marke N I didn't change the constants, leaving it up to you to
-adopt them to your task. Just keep the Pascal source for \.{tex}
-around. So you can change them without going all the way through
-modifying \.{tex.ch} and tangeling it. Note that for \.{initex}
-|mem_top| and |mem_max| must agree.
-
-\marke U One of the constants is the filename of the string pool
-file which needs an adoption to Unix.
-@z
-
-The changes headed by trip need to be made for the trip test suite.
-
-[11]
- @x trip
- @!mem_max=30000; {greatest index in \TeX's internal |mem| array;
- @y
- @!mem_max=3000; {greatest index in \TeX's internal |mem| array;
- @z
-
-[11]
- @x trip
- @!mem_min=0; {smallest index in \TeX's internal |mem| array;
- @y
- @!mem_min=1; {smallest index in \TeX's internal |mem| array;
- @z
-
-[11]
- @x trip
- @!error_line=72; {width of context lines on terminal error messages}
- @!half_error_line=42; {width of first lines of contexts in terminal
- error messages; should be between 30 and |error_line-15|}
- @!max_print_line=79; {width of longest text lines output; should be at least 60}
- @y
- @!error_line=64; {width of context lines on terminal error messages}
- @!half_error_line=32; {width of first lines of contexts in terminal
- error messages; should be between 30 and |error_line-15|}
- @!max_print_line=72; {width of longest text lines output; should be at least 60}
- @z
-
-[11] location of pool file
-@x
-@!pool_name='TeXformats:TEX.POOL ';
-@y
-@!pool_name='TeXformats/tex.pool'; { \marke X arrays of different length are
-assignment compatible. }
-@z
-
-
-[12]
- @x trip
- @d mem_bot=0 {smallest index in the |mem| array dumped by \.{INITEX};
- must not be less than |mem_min|}
- @d mem_top==30000 {largest index in the |mem| array dumped by \.{INITEX};
- must be substantially larger than |mem_bot|
- and not greater than |mem_max|}
- @y
- @d mem_bot=1 {smallest index in the |mem| array dumped by \.{INITEX};
- must not be less than |mem_min|}
- @d mem_top==3000 {largest index in the |mem| array dumped by \.{INITEX};
- must be substantially larger than |mem_bot|
- and not greater than |mem_max|}
- @z
-
-
-[25]
-@x
-for us to specify simple operations on word files before they are defined.
-@y
-for us to specify simple operations on word files before they are
-defined.
-
-\marke X
-@d fpc_byte==b @& y @& t @& e
-@d fpc_string == r@&a@&w@&b@&y@&t@&e@&s@&t@&r@&i@&n@&g
-
-@^FPC Pascal@>
-@z
-
-[25] the type of text_files is text
-@x
-@!eight_bits=0..255; {unsigned one-byte quantity}
-@!alpha_file=packed file of text_char; {files that contain textual data}
-@y
-@!eight_bits=fpc_byte; {unsigned one-byte quantity}
-@!alpha_file=t @& e @& x @& t; {\marke P Pascal requires |text|}
-@z
-
-[27]
-@x
-\TeX's file-opening procedures return |false| if no file identified by
-|name_of_file| could be opened.
-
-@d reset_OK(#)==erstat(#)=0
-@d rewrite_OK(#)==erstat(#)=0
-@y
-\marke X In Pascal, external files must occur in the program heading
-and FPC~Pascal asks the user whenever an external file is
-opened. But \.{initex} wants to reset \.{tex.pool} and rewrite
-\.{plain.fmt} without asking
-the user for the file name.
-FPC~Pascal lets you assign the file name to an external file.
-The function |fpc_io_result| returns a nonzero value if any
-error occurred since the last invocation of |fpc_io_result|.
-
-@^GNU Pascal@>
-@^system dependencies@>
-
-@d fpc_io_result==i@&o@&r@&e@&s@&u@&l@&t
-@d fpc_assign==a@&s@&s@&i@&g@&n
-@d reset_OK(#)==fpc_io_result=0
-@d rewrite_OK(#)==fpc_io_result=0
-@d clear_io_result==@+if fpc_io_result=0 then do_nothing
-@z
-
-[27] reset and rewrite for each of three file types
-@x alpha_file
-begin reset(f,name_of_file,'/O'); a_open_in:=reset_OK(f);
-@y
-begin clear_io_result; fpc_assign(f,name_of_file); reset(f);
-a_open_in:=reset_OK(f);
-@z
-@x
-begin rewrite(f,name_of_file,'/O'); a_open_out:=rewrite_OK(f);
-@y
-begin clear_io_result; fpc_assign(f,name_of_file); rewrite(f);
-a_open_out:=rewrite_OK(f);
-@z
-
-byte_file
-@x
-begin reset(f,name_of_file,'/O'); b_open_in:=reset_OK(f);
-@y
-begin clear_io_result; fpc_assign(f,name_of_file); reset(f);
-b_open_in:=reset_OK(f);
-@z
-@x
-function b_open_out(var f:byte_file):boolean;
- {open a binary file for output}
-begin rewrite(f,name_of_file,'/O'); b_open_out:=rewrite_OK(f);
-@y
-function b_open_out(var f:byte_file):boolean;
- {open a binary file for output}
-begin clear_io_result; fpc_assign(f,name_of_file); rewrite(f);
-b_open_out:=rewrite_OK(f);
-@z
-
-@x word_file
-begin reset(f,name_of_file,'/O'); w_open_in:=reset_OK(f);
-@y
-begin clear_io_result; fpc_assign(f,name_of_file); reset(f); w_open_in:=reset_OK(f);
-@z
-@x
-begin rewrite(f,name_of_file,'/O'); w_open_out:=rewrite_OK(f);
-@y
-begin clear_io_result; fpc_assign(f,name_of_file); rewrite(f);
-w_open_out:=rewrite_OK(f);
-@z
-
-[31]
-@x
-finer tuning is often possible at well-developed \PASCAL\ sites.
-@^inner loop@>
-
-@p function input_ln(var f:alpha_file;@!bypass_eoln:boolean):boolean;
- {inputs the next line or returns |false|}
-var last_nonblank:0..buf_size; {|last| with trailing blanks removed}
-begin if bypass_eoln then if not eof(f) then get(f);
- {input the first character of the line into |f^|}
-last:=first; {cf.\ Matthew 19\thinspace:\thinspace30}
-if eof(f) then input_ln:=false
-else begin last_nonblank:=first;
- while not eoln(f) do
- begin if last>=max_buf_stack then
- begin max_buf_stack:=last+1;
- if max_buf_stack=buf_size then
- @<Report overflow of the input buffer, and abort@>;
- end;
- buffer[last]:=xord[f^]; get(f); incr(last);
- if buffer[last-1]<>" " then last_nonblank:=last;
- end;
- last:=last_nonblank; input_ln:=true;
- end;
-end;
-@y
-finer tuning is often possible at well-developed \PASCAL\ sites.
-@^inner loop@>
-
-\marke h Since \namefpc\ does not remove trailing spaces, |buffer[last-1]|
-might hold a space.
-
-\marke P
-\ph\ lets you |reset| the terminal input file with the first |get|
-`surpressed'. For several reasons, this feature is not exploited by
-\namefpc. First, it is not provided by FPC. Second rightly so, since
-it violates the specification of Pascal. Third, it makes the program
-quite ugly by destroying the beautiful equivalence of terminal and
-disk files. Fourth, since \namefpc\ uses Pascal's standard text
-file |input|, it should not reset that file at all. Fifth, surpressing
-the first |get| is offered by \ph\ to address a problem, namely
-that the program stays in the reset function waiting for user input
-and this problem is solved much more beautiful by ``lazy I/O'',
-whereby the program only waits for user input if it is needed. This
-is suggested in the {\sl Pascal User Manual}, implemented by
-Free~Pascal and exploited by \namefpc. This leads to a much cleaner
-implementaion of |input_ln|, which can always savely assume that
-|f^| holds the first character of the next line. This condition is
-established by Pascal's |reset| and maintained by |input_ln|.
-
-\marke h
-Unlike \TeX82 \namefpc\ leaves trailing spaces in the input line.
-
-@p function input_ln(var f:alpha_file;@!bypass_eoln:boolean):boolean;
- {inputs the next line or returns |false|}
-var ch: char;
-begin
- {ignore |bypass_eoln|. Assuming |f| being positioned at the first character}
-last:=first; {cf.\ Matthew 19\thinspace:\thinspace30}
-if eof(f) then input_ln:=false
-else begin
- while not eoln(f) do
- begin if last>=max_buf_stack then
- begin max_buf_stack:=last+1;
- if max_buf_stack=buf_size then begin
- read_ln(f); {complete the current line}
- @<Report overflow of the input buffer, and abort@>;
- end;
- end;
- read(f, ch); buffer[last]:=xord[ch]; incr(last);
- end;
- read_ln(f); {Advance |f| to the first character of the next line}
- input_ln:=true;
- end;
-end;
-@z
-
-[32] term_in and term_out are the standard pascal files
-@x
-is considered an output file the file variable is |term_out|.
-@^system dependencies@>
-
-@<Glob...@>=
-@!term_in:alpha_file; {the terminal as an input file}
-@!term_out:alpha_file; {the terminal as an output file}
-@y
-is considered an output file the file variable is |term_out|.
-\marke P Pascal's standard text files are declared implicitly.
-@z
-
-[33]
-@x
-@ Here is how to open the terminal files
-in \ph. The `\.{/I}' switch suppresses the first |get|.
-@:PASCAL H}{\ph@>
-@^system dependencies@>
-
-@d t_open_in==reset(term_in,'TTY:','/O/I') {open the terminal for text input}
-@d t_open_out==rewrite(term_out,'TTY:','/O') {open the terminal for text output}
-@y
-@ Here is how to open the terminal files
-in \ph. The `\.{/I}' switch suppresses the first |get|.
-@:PASCAL H}{\ph@>
-@^system dependencies@>
-
-\marke P In Pascal, the standard text files are openend implicitly.
-
-@d t_open_in==do_nothing {open the terminal for text input}
-@d t_open_out==do_nothing {open the terminal for text output}
-@z
-
-[34]
-@x
-some instruction to the operating system. The following macros show how
-these operations can be specified in \ph:
-@:PASCAL H}{\ph@>
-@^system dependencies@>
-@y
-some instruction to the operating system.
-
-\marke X
-Unix holds terminal output, when it receives \.{\^S} and
-continues writing to the terminal, when it receives \.{\^Q}. These
-`flow control' characters only work when sent from the terminal but
-not when sent to the terminal. \marke B Here I give up, since I
-don't know how to restart the output from the writing side so
-\namefpc\ does nothing. Mac OS X does not stop terminal output when
-it receives \.{\^S}.
-
-@^Free Pascal@>
-@^system dependencies@>
-@z
-
-[34]
-@x
-@d update_terminal == break(term_out) {empty the terminal output buffer}
-@d clear_terminal == break_in(term_in,true) {clear the terminal input buffer}
-@d wake_up_terminal == do_nothing {cancel the user's cancellation of output}
-@y
-@d fpc_flush == f@&l@&u@&s@&h
-@d update_terminal == fpc_flush(term_out) {empty the terminal output buffer}
-@d clear_terminal == do_nothing {clear the terminal input buffer}
-@d wake_up_terminal == do_nothing {cancel the user's cancellation of output}
-@z
-
-[35]
-@x
- begin write_ln(term_out,'Buffer size exceeded!'); goto final_end;
-@y
- begin write_ln(term_out,'Buffer size exceeded!'); fpc_halt(3);
-@z
-
-[36] command line
-@x
-not be typed immediately after~`\.{**}'.)
-
-@d loc==cur_input.loc_field {location of first unread character in |buffer|}
-
-@y
-not be typed immediately after~`\.{**}'.)
-
-\marke F This procedure puts the command line arguments separated
-by spaces into |buffer|. Like |input_ln| it updates |last| so that
-|buffer[first..last)| will contain the command line.
-
-\marke X FPC~Pascal's function~|@!fpc_param_count| gives the number of
-command line arguments. The function~|@!fpc_param_str(n)| returns the
-n-th argument for |0 <= n <= gpc_param_count| in a |@!fpc_string|,
-whose length is returned by the function~|@!gpc_length|.
-A |fpc_string| is like a |packed array[1..fpc_length] of char| with
-varying length.
-
-@^FPC Pascal@>
-@^system dependencies@>
-
-@d loc==cur_input.loc_field {location of first unread character in |buffer|}
-@d fpc_length==l @& e @& n @& g @& t @& h
-@d fpc_param_count==p @& a @& r @& a @& m @& c @& o @& u @& n @& t
-@d fpc_param_str==p @& a @& r @& a @& m @&s @& t @& r
- {FPC function returning the length of a |fpc_string|}
-
-@p procedure input_command_ln; {get the command line in |buffer|}
-var argc: integer; {argument counter}
- arg: fpc_string; {argument}
- cc: integer; {character counter in argument}
-begin last := first; argc := 1;
-while argc <= fpc_param_count do
- begin cc := 1; arg := fpc_param_str(argc); incr(argc);
- while cc <= fpc_length(arg) do
- begin
- if last+1>=buf_size then
- @<Report overflow of the input buffer, and abort@>;
- buffer[last] := xord[arg[cc]]; incr(last); incr(cc);
- end;
- if (argc <= fpc_param_count) then begin
- buffer[last] := " "; incr(last); {insert a space between arguments}
- end;
- end;
-end;
-@z
-
-[37] command line.
-@x
-@ The following program does the required initialization
-without retrieving a possible command line.
-It should be clear how to modify this routine to deal with command lines,
-if the system permits them.
-@^system dependencies@>
-
-@p function init_terminal:boolean; {gets the terminal input started}
-label exit;
-begin t_open_in;
-loop@+begin wake_up_terminal; write(term_out,'**'); update_terminal;
-@.**@>
- if not input_ln(term_in,true) then {this shouldn't happen}
- begin write_ln(term_out);
- write(term_out,'! End of file on the terminal... why?');
-@.End of file on the terminal@>
- init_terminal:=false; return;
- end;
- loc:=first;
- while (loc<last)and(buffer[loc]=" ") do incr(loc);
- if loc<last then
- begin init_terminal:=true;
- return; {return unless the line was all blank}
- end;
- write_ln(term_out,'Please type the name of your input file.');
- end;
-exit:end;
-@y
-@ \marke F The following program treats a non empty command line as
-the first line.
-
-
-@p function init_terminal:boolean; {gets the terminal input started}
-label exit;
-begin t_open_in; input_command_ln;
-while first=last do begin
- wake_up_terminal; write(term_out,'**'); update_terminal;
-@.**@>
- if not input_ln(term_in, true) then {this shouldn't happen}
- begin write_ln(term_out);
- write_ln(term_out,'! End of file on the terminal... why?');
-@.End of file on the terminal@>
- init_terminal:=false; return;
- end;
- if first=last then
- write_ln(term_out,'Please type the name of your input file.');
- end;
-loc := first;
-init_terminal:=true;
-exit: end;
-@z
-[109]
-@x
-routines cited there must be modified to allow negative glue ratios.)
-@y
-routines cited there must be modified to allow negative glue ratios.)
-
-\marke X In FPC~Pascal the type |fpc_single| is appropiate.
-@d fpc_single== s@&i@&n@&g@&l@&e
-@z
-
-@x
-@!glue_ratio=real; {one-word representation of a glue expansion factor}
-@y
-@!glue_ratio=fpc_single; {one-word representation of a glue expansion
- factor in GNU~Pascal}
-@^FPC Pascal@>
-@z
-
-[112]
-@x
-macros are simplified in the obvious way when |min_quarterword=0|.
-@^inner loop@>@^system dependencies@>
-
-@d qi(#)==#+min_quarterword
- {to put an |eight_bits| item into a quarterword}
-@d qo(#)==#-min_quarterword
- {to take an |eight_bits| item out of a quarterword}
-@d hi(#)==#+min_halfword
- {to put a sixteen-bit item into a halfword}
-@d ho(#)==#-min_halfword
- {to take a sixteen-bit item from a halfword}
-@y
-macros are simplified in the obvious way when |min_quarterword=0|.
-\marke X Which is the case with FPC.
-@^inner loop@>@^system dependencies@>
-
-@d qi(#)==#
- {to put an |eight_bits| item into a quarterword}
-@d qo(#)==#
- {to take an |eight_bits| item out of a quarterword}
-@d hi(#)==#
- {to put a sixteen-bit item into a halfword}
-@d ho(#)==#
- {to take a sixteen-bit item from a halfword}
-@z
-
-[360] Don't print empty lines
-@x
-@ All of the easy branches of |get_next| have now been taken care of.
-There is one more branch.
-@y
-@ All of the easy branches of |get_next| have now been taken care of.
-There is one more branch.
-
-\marke h \TeX82 ends the current line by calling |print_ln| even
-if the line is empty. This causes an additional empty line, which
-is ugly. Calling |print_nl("")| is smarter. It ends the current
-line only if it is not empty.
-@z
-
-@x
- print_ln; first:=start;
-@y
- print_nl(""); first:=start;
-@z
-
-@x [514]
-|TEX_font_area|. These system area names will, of course, vary from place
-to place.
-@y
-|TEX_font_area|. These system area names will, of course, vary from place
-to place.
-
-\marke U Use the Unix file separator.
-@z
-
-[514]
-@x
-@d TEX_area=="TeXinputs:"
-@.TeXinputs@>
-@d TEX_font_area=="TeXfonts:"
-@.TeXfonts@>
-@y
-@d TEX_area=="TeXinputs/" {i.e., a subdirectory of the working directory}
-@.TeXinputs@>
-@d TEX_font_area=="TeXfonts/" {dito}
-@.TeXfonts@>
-@z
-
-[516]
-@x
- if (c=">")or(c=":") then
-@y
- if c="/" then {use ``/'' as a file name separator\marke U}
-@z
-
-[519]
-@x
-@d append_to_name(#)==begin c:=#; incr(k);
-@y
-@d fpc_set_length==s@&e@&t@&l@&e@&n@&g@&t@&h
-
-@d append_to_name(#)==begin c:=#; incr(k);
-@z
-
-[519]
-@x
-@!j:pool_pointer; {index into |str_pool|}
-@y
-@!j:pool_pointer; {index into |str_pool|}
-@!rbs: fpc_string;
-@z
-
-[519]
-@x
-if k<=file_name_size then name_length:=k@+else name_length:=file_name_size;
-for k:=name_length+1 to file_name_size do name_of_file[k]:=' ';
-end;
-@y
-if k<=file_name_size then name_length:=k@+else name_length:=file_name_size;
-rbs := name_of_file;
-fpc_set_length(rbs, name_length);
-name_of_file := rbs;
-end;
-@z
-
-[521]
-@x
-TEX_format_default:='TeXformats:plain.fmt';
-@y
-TEX_format_default:='TeXformats/plain.fmt';
- {``/'' is the Unix file name separator\marke U}
-@z
-
-[523]
-@x
-isn't found.
-@y
-isn't found.
-\marke X With Free~Pascal you cannot set the length of a |packed array|.
-But assigning the |name_of_file| to a |fpc_string|, setting the length to the
-|fpc_string| and then assigning it to the |name_of_file| saves the day.
-@z
-[523]
-@x
-@!j:integer; {index into |buffer| or |TEX_format_default|}
-@y
-@!j:integer; {index into |buffer| or |TEX_format_default|}
-rbs: fpc_string;
-@z
-
-@x
-for k:=name_length+1 to file_name_size do name_of_file[k]:=' ';
-@y
-rbs := name_of_file;
-fpc_set_length(rbs, name_length);
-name_of_file := rbs;
-@z
-
-[575] Don't check eof
-@x
-no error message is given for files having more than |lf| words.
-@y
-no error message is given for files having more than |lf| words.
-\marke X EOF is true, even before the end of file is passed. This is
-an error of the free pascal runtime library.
-@z
-@x
-if eof(tfm_file) then abort;
-@y
-@z
-
-[816] save pointer to penalty_node
-@x
-same number of |mem|~words.
-@^data structure assumptions@>
-@y
-same number of |mem|~words.
-@^data structure assumptions@>
-
-\marke E
-\TeX82 prunes discardable nodes from the beginning of a new line until
-it reaches a nondiscardable node. Now, if the last line of a paragraph
-contains discardables only, the \.{\\parfillskip} glue at the end of the
-paragraph will also be removed, since it is a discardable. This will
-give you an empty \.{\\hbox}. Finally \TeX\ appends \.{\\rightskip} glue.
-This gives you a nonempty \.{\\hbox}, raising a \.{Underfull \\hbox}
-warning.
-
-To avoid this happening, \namefpc\ saves a pointer to the node
-immediately preceding the \.{\\parfillskip} node and quits pruning
-when it encounters this node several procedures later.
-@^Underfull \\hbox...@>
-@z
-
-@x
-link(tail):=new_param_glue(par_fill_skip_code);
-@y
-non_prunable_p := tail; {points to the node immediately before
-\.{\\parfillskip}}
-link(tail):=new_param_glue(par_fill_skip_code);
-@z
-
-[862] declare non_prunable_p
-@x
-The following declarations provide for a few other local variables that are
-used in special calculations.
-
-@y
-The following declarations provide for a few other local variables that are
-used in special calculations.
-
-\marke E Declare the |non_prunable_p| pointer.
-@z
-
-@x
-@!auto_breaking:boolean; {is node |cur_p| outside a formula?}
-@y
-@!auto_breaking:boolean; {is node |cur_p| outside a formula?}
-non_prunable_p:pointer; {pointer to the node before \.{\\parfillskip}}
-@z
-
-[876] pass non_prunable_p
-@x
-(By introducing this subprocedure, we are able to keep |line_break|
-from getting extremely long.)
-@y
-(By introducing this subprocedure, we are able to keep |line_break|
-from getting extremely long.)
-
-\marke E Pass |non_prunable_p| to the |post_line_break|~procedure.
-@z
-
-@x
-post_line_break(final_widow_penalty)
-@y
-post_line_break(final_widow_penalty, non_prunable_p)
-@z
-
-[877] declare non_prunable_p
-@x
-of their new significance.) Then the lines are justified, one by one.
-
-@y
-of their new significance.) Then the lines are justified, one by one.
-
-\marke E Declare another parameter. It holds the pointer to the node
-immediately preceding \.{\\parfillskip}.
-@z
-
-@x
-procedure post_line_break(@!final_widow_penalty:integer);
-@y
-procedure post_line_break(@!final_widow_penalty:integer;
- non_prunable_p:pointer);
-@z
-
-[879]
-@x
-are computed for non-discretionary breakpoints.
-@y
-are computed for non-discretionary breakpoints.
-
-\marke E The pointer |non_prunable_p| references the node immediately
-preceding the \.{\\parfillskip} node at the end of the paragraph.
-Stop pruning at this node.
-@z
-
-[879]
-@x
- if non_discardable(q) then goto done1;
-@y
- if non_discardable(q) then goto done1;
- if q = non_prunable_p then goto done1; {retain \.{\\parfillskip} glue}
-@z
-
-[1327]
-@x
-if (x<>69069)or eof(fmt_file) then goto bad_fmt
-@y
-if (x<>69069) then goto bad_fmt
-@z
-
-[1332]
-@x
-The initial test involving |ready_already| should be deleted if the
-\PASCAL\ runtime system is smart enough to detect such a ``mistake.''
-@^system dependencies@>
-@y
-The initial test involving |ready_already| should be deleted if the
-\PASCAL\ runtime system is smart enough to detect such a ``mistake.''
-@^system dependencies@>
-
-\marke h \namefpc\ tries to load the format file even before it
-initializes the output routines. That way, it will print the name of
-the format file on the terminal.
-
-\marke X
-|@!fpc_halt|
-passes the |history| as an exit code to the shell.
-
-@^system dependencies@>
-@^GNU Pascal@>
-@^Unix@>
-
-@d fpc_halt == h@&a@&l@&t
-@z
-
-[1332]
-@x
-start_of_TEX: @<Initialize the output routines@>;
-@y
-start_of_TEX: @<Preload the default format file@>;
-@<Initialize the output routines@>;
-@z
-
-[1332]
-@x
-final_end: ready_already:=0;
-@y
-final_end:
-fpc_halt(history);
- {pass |history| as the exit value to the system\marke u}
-@z
-
-[1333] print last end-of-line marker if needed
-@x
-This program doesn't bother to close the input files that may still be open.
-@y
-This program doesn't bother to close the input files that may still be open.
-
-\marke h
-Special care is taken to terminate the last line on the terminal.
-
-@z
-
-[1333] print last end-of-line marker if needed
-@x
- slow_print(log_name); print_char(".");
- end;
- end;
-end;
-@y
- slow_print(log_name); print_char(".");
- end;
- end;
- if term_offset > 0 then wterm_cr;
-end;
-@z
-
-[1338] return if eof.
-@x
-program below. (If |m=13|, there is an additional argument, |l|.)
-@.debug \#@>
-
-@y
-program below. (If |m=13|, there is an additional argument, |l|.)
-@.debug \#@>
-
-\marke P A Pascal program must not read from the standard text file
-if the end of file is reached. Even in this respect, Unix and Pascal
-treat terminals and disk files alike.
-
-@z
-@x
-begin loop begin wake_up_terminal;
-@y
-begin loop begin; wake_up_terminal;
-@z
-
-@x
- read(term_in,m);
-@y
- if eof(term_in) then return;
- read(term_in,m);
-@z
-
-[1338] return if eof
-@x
- else begin read(term_in,n);
-@y
- else begin if eof(term_in) then return;
- read(term_in,n);
-@z
-
-[1339] return if eof
-@x
-13: begin read(term_in,l); print_cmd_chr(n,l);
-@y
-13: begin if eof(term_in) then return;
-read(term_in,l); print_cmd_chr(n,l);
-@z
-
-[1379 and modules added for TeX-FPC]
-@x
-itself will get a new section number.
-@^system dependencies@>
-@y
-itself will get a new section number.
-
-\marke h Try to preload the default format file. This is called
-even before the first line is read from the terminal, and thus
-turns \.{VIRTEX} into \.{TEX}, at least as experienced by the user.
-\.{INITEX} sets |format_ident| to `\.{INITEX}' and won't load a
-format file here.
-
-@<Preload the default format file@>=
-if format_ident = 0 then
- begin pack_buffered_name(format_default_length - format_ext_length, 1, 0);
- if not w_open_in(fmt_file) then
- begin
- wterm_ln('I can''t find the format file ', name_of_file);
- goto final_end
- end;
- if not load_fmt_file then
- begin w_close(fmt_file); goto final_end
- end;
- w_close(fmt_file);
- end
-@z
diff --git a/systems/unix/tex-fpc/tftopl.ch b/systems/unix/tex-fpc/tftopl.ch
new file mode 100644
index 0000000000..2989bfa028
--- /dev/null
+++ b/systems/unix/tex-fpc/tftopl.ch
@@ -0,0 +1,112 @@
+This is a change file of TFtoPL for TeX-FPC, Wolfgang Helbig, Oct. 2020
+
+[0] About TFtoPL-FPC
+@x
+\pageno=\contentspagenumber \advance\pageno by 1
+@y
+\pageno=\contentspagenumber \advance\pageno by 1
+\input webmac-fpc
+
+% \let\maybe=\iftrue % uncomment to print changed modules only.
+
+\def\name{\tt TFtoPL}
+
+\N0\*. About \namefpc.\fi
+This is an adaption of Donald~E. Knuth's \.{TFtoPL}, to Unix.
+\namefpc\ is based on the Free~Pascal Compiler.
+
+\namefpc\ expects the name of the input file (\.{.pl}) as the first
+and the name of the output file (\.{.tf}) as the second parameter
+on the command line.
+
+\hint
+
+Comments and questions are welcome!
+
+\bigskip
+\address
+@z
+
+[1] Change the banner line
+@x
+@d banner=='This is TFtoPL, Version 3.3' {printed when the program starts}
+@y
+@d banner=='This is TFtoPL-FPC, 2nd ed.' {printed when the program starts}
+@z
+
+
+[2] filenames from commandline
+@x
+@p program TFtoPL(@!tfm_file,@!pl_file,@!output);
+@y
+@p @{$MODE@,ISO@}
+@/
+@{$Q+@}
+@/
+@{$R+@}
+@#
+program TFtoPL(@!output);
+@z
+
+[6] violation of ISO
+@x
+@!tfm_file:packed file of 0..255;
+@y
+@!tfm_file: packed file of byte;
+@z
+
+[7] open tfm file
+@x
+reset(tfm_file);
+@y
+if paramcount <> 2 then begin
+ write_ln('Usage: ', param_str(0), ' tfm_file pl_file');
+ halt(1);
+ end;
+assign(tfm_file, param_str(1));
+@#
+@{$I-@}
+@#
+ioresult; reset(tfm_file);
+if ioresult <> 0 then begin
+ write_ln('Could not open tfm file: ', param_str(1));
+ halt(1);
+ end;
+@#
+@{$I+@}
+@#
+@z
+
+[17] open pl file
+@x
+rewrite(pl_file);
+@y
+assign(pl_file, param_str(2));
+@#
+@{$I-@}
+@#
+ioresult; rewrite(pl_file);
+if ioresult <> 0 then begin
+ write_ln('Could not open pl file: ', param_str(2));
+ halt(1);
+ end;
+@#
+@{$I+@}
+@z
+
+[20] eof off by one, FPC-BUG
+@x
+ begin if eof(tfm_file) then
+ abort('The file has fewer bytes than it claims!');
+@y
+ begin
+@z
+
+[99] close pl file
+@x
+final_end:end.
+@y
+close(pl_file);
+@#
+final_end:end.
+@z
diff --git a/systems/unix/tex-fpc/trap/diff_trap.fot b/systems/unix/tex-fpc/trap/diff_trap.fot
new file mode 100644
index 0000000000..781928a0e0
--- /dev/null
+++ b/systems/unix/tex-fpc/trap/diff_trap.fot
@@ -0,0 +1,10 @@
+1c1
+< This is METAFONT-FPC (INIMF)
+---
+> This is METAFONT, Version 2.7182818 (INIMF)
+21a22
+>
+38c39
+< String usage 41&161 (817&7699 still untouched)
+---
+> String usage 41&161 (815&7634 still untouched)
diff --git a/systems/unix/tex-fpc/trap/diff_trap.log b/systems/unix/tex-fpc/trap/diff_trap.log
new file mode 100644
index 0000000000..45ca04b762
--- /dev/null
+++ b/systems/unix/tex-fpc/trap/diff_trap.log
@@ -0,0 +1,118 @@
+1c1
+< This is METAFONT-FPC, 2nd ed. (preloaded base=trap 2020.10.20) 20 OCT 2020 09:21
+---
+> This is METAFONT, Version 2.7182818 (preloaded base=trap 2014.1.7) 7 JAN 2014 18:11
+76a77
+>
+1824c1825
+< String usage 24&92 (860&11374 still untouched)
+---
+> String usage 24&92 (858&11309 still untouched)
+3692,3694c3693,3695
+< xpart %CAPSULE1370=xx
+< %CAPSULE1378=2yy-2
+< %CAPSULE1386 = 3.3333xx+3.3333
+---
+> xpart %CAPSULE1359=xx
+> %CAPSULE1367=2yy-2
+> %CAPSULE1375 = 3.3333xx+3.3333
+3754,3756c3755,3757
+< xpart %CAPSULE604 = 8000o2-4000o1+1000o3+9
+< xpart %CAPSULE1394=xpart '
+< ypart %CAPSULE1394=ypart '
+---
+> xpart %CAPSULE1049 = 8000o2-4000o1+1000o3+9
+> xpart %CAPSULE1383=xpart '
+> ypart %CAPSULE1383=ypart '
+3759,3760c3760,3761
+< ### 4000o1 = -xpart %CAPSULE604+8000o2+1000o3+9
+< ### -4.87383o2 = -oo-0.0004xpart %CAPSULE604+0.39673o3-17.99643
+---
+> ### 4000o1 = -xpart %CAPSULE1049+8000o2+1000o3+9
+> ### -4.87383o2 = -oo-0.0004xpart %CAPSULE1049+0.39673o3-17.99643
+3767c3768
+< ### -alfa=-xpart %CAPSULE368
+---
+> ### -alfa=-xpart %CAPSULE1494
+3769,3770c3770,3771
+< {xpart((xpart %CAPSULE368,0))}
+< ### -xpart %CAPSULE17=-%CAPSULE1376
+---
+> {xpart((xpart %CAPSULE1494,0))}
+> ### -xpart %CAPSULE17=-%CAPSULE1176
+3772,3774c3773,3775
+< {(%CAPSULE382)+(%CAPSULE1376)}
+< ### -%CAPSULE382=-%CAPSULE1364+%CAPSULE1376
+< ### -%CAPSULE1364=-ypart %CAPSULE604
+---
+> {(%CAPSULE382)+(%CAPSULE1176)}
+> ### -%CAPSULE382=-%CAPSULE1893+%CAPSULE1176
+> ### -%CAPSULE1893=-ypart %CAPSULE1049
+3779c3780
+< ### p$=-ypart %CAPSULE1360+1
+---
+> ### p$=-ypart %CAPSULE604+1
+3781,3792c3782,3793
+< {(2/3)*((-ypart %CAPSULE1360+1,ypart %CAPSULE1360))}
+< ### ypart %CAPSULE1360=-xpart %CAPSULE1360+1
+< ### -0.66667xpart %CAPSULE1360=-xpart %CAPSULE1744
+< {-((xpart %CAPSULE1744,-xpart %CAPSULE1744+0.66667))}
+< ### xpart %CAPSULE1744=-xpart %CAPSULE1675
+< {((xpart %CAPSULE604,ypart %CAPSULE604))=((xpart %CAPSULE1675,-xpart %CA
+< PSULE1675-0.66667))}
+< ## xpart %CAPSULE1675=-ypart %CAPSULE604-0.66667
+< ## ypart %CAPSULE604=-xpart %CAPSULE604-0.66667
+< ### -xpart %CAPSULE604=-xpart %CAPSULE1675
+< {((xpart ',ypart '))=((xpart %CAPSULE1675,-xpart %CAPSULE1675-0.66667))}
+< ## xpart %CAPSULE1675=-ypart '-0.66667
+---
+> {(2/3)*((-ypart %CAPSULE604+1,ypart %CAPSULE604))}
+> ### ypart %CAPSULE604=-xpart %CAPSULE604+1
+> ### -0.66667xpart %CAPSULE604=-xpart %CAPSULE1889
+> {-((xpart %CAPSULE1889,-xpart %CAPSULE1889+0.66667))}
+> ### xpart %CAPSULE1889=-xpart %CAPSULE1172
+> {((xpart %CAPSULE1049,ypart %CAPSULE1049))=((xpart %CAPSULE1172,-xpart %
+> CAPSULE1172-0.66667))}
+> ## xpart %CAPSULE1172=-ypart %CAPSULE1049-0.66667
+> ## ypart %CAPSULE1049=-xpart %CAPSULE1049-0.66667
+> ### -xpart %CAPSULE1049=-xpart %CAPSULE1172
+> {((xpart ',ypart '))=((xpart %CAPSULE1172,-xpart %CAPSULE1172-0.66667))}
+> ## xpart %CAPSULE1172=-ypart '-0.66667
+3798c3799
+< ### -ooo=-%CAPSULE1051
+---
+> ### -ooo=-%CAPSULE1494
+3800,3809c3801,3810
+< {(%CAPSULE1051)+(1)}
+< ### -%CAPSULE1051=-%CAPSULE1378+1
+< {(1/2)*(%CAPSULE1378)}
+< ### -0.5%CAPSULE1378=-%CAPSULE1370
+< {-(%CAPSULE1370)}
+< ### %CAPSULE1370=-%CAPSULE1362
+< {(2)*(%CAPSULE1362)}
+< ### -2%CAPSULE1362=-%CAPSULE1354
+< {(-0.5%CAPSULE1354-0.5)=(%CAPSULE1354)}
+< ## %CAPSULE1354=-0.33333
+---
+> {(%CAPSULE1494)+(1)}
+> ### -%CAPSULE1494=-%CAPSULE1350+1
+> {(1/2)*(%CAPSULE1350)}
+> ### -0.5%CAPSULE1350=-%CAPSULE1367
+> {-(%CAPSULE1367)}
+> ### %CAPSULE1367=-%CAPSULE1893
+> {(2)*(%CAPSULE1893)}
+> ### -2%CAPSULE1893=-%CAPSULE1885
+> {(-0.5%CAPSULE1885-0.5)=(%CAPSULE1885)}
+> ## %CAPSULE1885=-0.33333
+3965a3967
+>
+4233c4235
+< String usage 41&161 (817&7699 still untouched)
+---
+> String usage 41&161 (815&7634 still untouched)
+4249,4250c4251,4252
+< 68 strings out of 885
+< 3752 string characters out of 11451
+---
+> 68 strings out of 883
+> 3752 string characters out of 11386
diff --git a/systems/unix/tex-fpc/trap/diff_trap.pl b/systems/unix/tex-fpc/trap/diff_trap.pl
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/systems/unix/tex-fpc/trap/diff_trap.pl
diff --git a/systems/unix/tex-fpc/trap/diff_trap.typ b/systems/unix/tex-fpc/trap/diff_trap.typ
new file mode 100644
index 0000000000..6eb5b34b08
--- /dev/null
+++ b/systems/unix/tex-fpc/trap/diff_trap.typ
@@ -0,0 +1,8 @@
+1c1
+< This is GFtype, Version 3.1
+---
+> This is GFtype-FPC, 2nd ed.
+3c3
+< ' METAFONT output 2014.01.07:1811'
+---
+> ' METAFONT output 2020.10.19:2226'
diff --git a/systems/unix/tex-fpc/trap/diff_trapin.log b/systems/unix/tex-fpc/trap/diff_trapin.log
new file mode 100644
index 0000000000..7e589355e7
--- /dev/null
+++ b/systems/unix/tex-fpc/trap/diff_trapin.log
@@ -0,0 +1,14 @@
+1c1
+< This is METAFONT-FPC, 2nd ed. (INIMF) 20 OCT 2020 09:18
+---
+> This is METAFONT, Version 2.7182818 (INIMF) 7 JAN 2014 17:51
+150c150
+< String usage 26&83 (893&11504 still untouched)
+---
+> String usage 26&83 (891&11438 still untouched)
+176,177c176,177
+< (preloaded base=trap 2020.10.20)
+< 1115 strings of total length 20549
+---
+> (preloaded base=trap 2014.1.7)
+> 1117 strings of total length 20614
diff --git a/systems/unix/tex-fpc/trap/report b/systems/unix/tex-fpc/trap/report
new file mode 100644
index 0000000000..639eccab79
--- /dev/null
+++ b/systems/unix/tex-fpc/trap/report
@@ -0,0 +1,59 @@
+How to perform the trap test according to the trapman file.
+
+Step 0.
+Move the trap directory to the mf directory, and cd to the trap directory.
+This protects the original files like trap.log from being overwritten.
+Copy trap.mf to the trap directory.
+$ cp ../trap.mf .
+
+Step 1. Prepare a version of inimf. You might want to use the nifty
+script mktrap:
+$ cd ..
+$ mktrap
+...
+$ itgl mf.web mf.ch
+...
+$ mv inimf ~/bin
+$ cd -
+
+Step 2. run inimf
+$ inimf
+This is METAFONT-FPC, 2nd ed. (INIMF)
+**
+Please type the name of your input file or Control-D.
+**\input trap
+...
+
+Step 3. run inimf again
+$ inimf
+This is METAFONT-FPC, 2nd ed. (INIMF)
+** &trap trap
+...
+See diff_trapin.log for the differences of ../trapin.log and trapin.log
+
+Step 4. trap.log differs from the master ../trap.log more than
+expected. Reason: Don Knuth changed the log files from the 2008
+distribution manually. He didn't want to wait for a reference installation
+of TeX and friends. He could have taken a slightly modified TeX-GPC!
+But from 2008 to 2014 the one and only change in mf resulted in
+changed addresses of the capsules. Which are not harmful. I undid
+the change of the 2014 distribution and voila, the difference of
+the addresses was gone.
+
+See diff_trap.log for the differences of ../trap.log and trap.log
+
+See diff_trap.fot for the differences of ../trap.fot and trap.fot
+
+Step 5. Check the generic font file:
+$ gftype trap.72270gf trap.typ
+This is GFtype-FPC, 2nd ed.
+Mnemonic output? (default=no, ? for help): y
+Pixel output? (default=yes, ? for help): y
+
+See diff_trap.typ for the differences of ../trap.typ and trap.typ.
+
+Step 6.
+$ tftopl trap.tfm trap.pl
+...
+
+The file diff_trap.pl is empty!
diff --git a/systems/unix/tex-fpc/trip/diff_trip.fot b/systems/unix/tex-fpc/trip/diff_trip.fot
new file mode 100644
index 0000000000..0d141edb62
--- /dev/null
+++ b/systems/unix/tex-fpc/trip/diff_trip.fot
@@ -0,0 +1,4 @@
+1c1
+< This is TeX-FPC, 2nd ed. (INITEX)
+---
+> This is TeX, Version 3.14159265 (INITEX)
diff --git a/systems/unix/tex-fpc/trip/diff_trip.log b/systems/unix/tex-fpc/trip/diff_trip.log
new file mode 100644
index 0000000000..0a1a5f42ca
--- /dev/null
+++ b/systems/unix/tex-fpc/trip/diff_trip.log
@@ -0,0 +1,10 @@
+1c1
+< This is TeX-FPC, 2nd ed. (preloaded format=trip 2020.11.14) 14 NOV 2020 20:58
+---
+> This is TeX, Version 3.14159265 (preloaded format=trip 2014.1.7) 7 JAN 2014 09:59
+7296,7297c7296,7297
+< 49 strings out of 1676
+< 273 string characters out of 8422
+---
+> 47 strings out of 1674
+> 253 string characters out of 8354
diff --git a/systems/unix/tex-fpc/trip/diff_trip.log300 b/systems/unix/tex-fpc/trip/diff_trip.log300
new file mode 100644
index 0000000000..f3d2e58e3d
--- /dev/null
+++ b/systems/unix/tex-fpc/trip/diff_trip.log300
@@ -0,0 +1,42 @@
+1,3c1,3
+< This is TeX, Version 3.14159265 (preloaded format=trip 2014.1.7) 7 JAN 2014 09:59
+< ** &trip trip
+< (trip.tex ##
+---
+> This is TeX-FPC, 2nd ed. (preloaded format=trip 2020.11.14) 14 NOV 2020 20:12
+> ** &trip ../trip
+> (../trip.tex ##
+870c870
+< \vbox(924.23029+1.0)x0.0, glue set 3.19875 []}
+---
+> \vbox(924.23029+1.0)x0.0, glue set 3.19873 []}
+883c883
+< \vbox(924.23029+1.0)x0.0, glue set 3.19875
+---
+> \vbox(924.23029+1.0)x0.0, glue set 3.19873
+3488c3488
+< .............\hbox(14.00002+2.0)x8.19003, glue set 1.09502fil
+---
+> .............\hbox(14.00002+2.0)x8.19003, glue set 1.095fil
+3512c3512
+< .................\hbox(16.0+4.00002)x6.00002, glue set 0.00002fil
+---
+> .................\hbox(16.0+4.00002)x6.00002, glue set 0.0fil
+7133c7133
+< ..|hbox(0.0+0.0)x0.99, glue set 0.49501fil
+---
+> ..|hbox(0.0+0.0)x0.99, glue set 0.495fil
+7296,7297c7296,7297
+< 47 strings out of 1674
+< 253 string characters out of 8354
+---
+> 50 strings out of 1675
+> 279 string characters out of 8416
+7302c7302
+< 7i,7n,9p,113b,38s stack positions out of 200i,40n,60p,500b,600s
+---
+> 7i,7n,9p,116b,38s stack positions out of 200i,40n,60p,500b,600s
+7304c7304
+< Output written on trip.dvi (16 pages, 2920 bytes).
+---
+> Output written on trip.dvi (16 pages, 2924 bytes).
diff --git a/systems/unix/tex-fpc/trip/diff_trip.typ b/systems/unix/tex-fpc/trip/diff_trip.typ
new file mode 100644
index 0000000000..00ee02fdb5
--- /dev/null
+++ b/systems/unix/tex-fpc/trip/diff_trip.typ
@@ -0,0 +1,8 @@
+1c1
+< This is DVItype-FPC, 2nd ed.
+---
+> This is DVItype, Version 3.6
+9c9
+< ' TeX output 2020.11.14:2058'
+---
+> ' TeX output 2014.01.07:0959'
diff --git a/systems/unix/tex-fpc/trip/diff_tripin.log b/systems/unix/tex-fpc/trip/diff_tripin.log
new file mode 100644
index 0000000000..ed7e3fec2f
--- /dev/null
+++ b/systems/unix/tex-fpc/trip/diff_tripin.log
@@ -0,0 +1,14 @@
+1,3c1,3
+< This is TeX-FPC, 2nd ed. (INITEX) 14 NOV 2020 20:09
+< **\input ../trip
+< (../trip.tex
+---
+> This is TeX, Version 3.14159265 (INITEX) 7 JAN 2014 09:09
+> **\input trip
+> (trip.tex
+450,451c450,451
+< (preloaded format=trip 2020.11.14)
+< 1325 strings of total length 23584
+---
+> (preloaded format=trip 2014.1.7)
+> 1326 strings of total length 23646
diff --git a/systems/unix/tex-fpc/trip/report b/systems/unix/tex-fpc/trip/report
new file mode 100644
index 0000000000..dfe6472d82
--- /dev/null
+++ b/systems/unix/tex-fpc/trip/report
@@ -0,0 +1,69 @@
+This directory suggests how to perform the trip test as described in the
+tripman file.
+
+Step 0.
+mv the trip directory to the tex directory, and cd to the trip directory.
+This protects the original files like trip.log to be overwritten.
+
+Step 1. make and test trip.tfm
+$ pltotf ../trip.pl trip.tfm
+This is PLtoTF-FPC, 2nd ed.
+'000 '055 '057 '061 '062 '063 '064 '065
+'066 '067 '101 '102 '103 '115 '141 '142
+'160 '161 '162 '163 '164 '165 '202.
+$ tftopl trip.tfm tmp.pl
+This is TFtoPL-FPC, 2nd ed.
+'000 '055 '057 '061 '062 '063 '064 '065
+'066 '067 '101 '102 '103 '115 '141 '142
+'160 '161 '162 '163 '164 '165 '202.
+$ diff tmp.pl ../trip.pl
+no news are good news!
+
+Step 2 prepare tex.ch with the handy mktrip script.
+$ cd ..
+$ mktrip
+37493
+...
+$ itgl tex.web tex.ch
+This is TANGLE-FPC, 2nd ed.
+...
+(No errors were found.)
+$ mv initex ~/bin/
+$ cd -
+
+Step 3
+$ initex
+This is TeX-FPC, 2nd ed. (INITEX)
+**
+Please type the name of your input file or Control-D.
+**\input ../trip
+...
+
+Step 4
+This is TeX-FPC, 2nd ed. (INITEX)
+** &trip ../trip
+(../trip.tex ##
+! Bad number (-7).
+...
+Step 5; compare with original files:
+$ diff tripin.log ../tripin.log >mydiff_tripin.log
+... etc. for trip.log, trip.fot,
+Note: The files diff_.. are distributed in this directory.
+Note: I performed the trip test with two versions of initex: One compiled
+by FPC 3.0.0 and one compiled by FPC 3.2.0. They seemed to use different
+floating point implementations as the glue set differences demonstrate. See
+the file diff_trip.log300 (fpc 3.0.0) and diff_trip.log (fpc 3.2.0).
+fpc 3.2.0 seems to have the same floating point implementation as Knuth's
+implementation.
+Note: I copied the terminal window to create the trip.fot. It contains
+both what I typed in and what tex printed.
+
+Step 6
+The file options relieves you from typing the options manually.
+
+$ dvitype trip.dvi trip.typ <options
+This is DVItype-FPC, 2nd ed.
+Output level (default=4, ? for help): Starting page (default=*): Maximum number of pages (default=1000000): Assumed device resolution in pixels per inch (default=300/1): New magnification (default=0 to keep the old one): $
+
+The file diff_trip.typ contains the differences of my run to Knuth's.
+
diff --git a/systems/unix/tex-fpc/web/weave.ch b/systems/unix/tex-fpc/weave.ch
index bcb0a7e7d5..e476736c28 100644
--- a/systems/unix/tex-fpc/web/weave.ch
+++ b/systems/unix/tex-fpc/weave.ch
@@ -9,13 +9,14 @@
\pageno=\contentspagenumber \advance\pageno by 1
\input webmac-fpc
\def\name{\tt WEAVE}
+\tracingstats=1
-\let\maybe=\iffalse % print changed modules only.
+\let\maybe=\iftrue % print changed modules only.
\N0\*. About \namefpc.\fi
This is an adaption of Donald~E. Knuth's \.{WEAVE}, version 4.4
-from December 2002, to Unix. \namefpc\ is based on GNU~Pascal,
-version 2.1.
+from December 2002, to Unix. \namefpc\ is based on FPC~Pascal,
+version 3.2.0.
This program expects three file names on the command line: A
web~file (\.{.web}), a change~file (\.{.ch}), and a \TeX~file
@@ -32,6 +33,13 @@ change the constant value \.{MEMMAX} to 32000 in \.{tex.p},
recompile and run it on \.{weave.tex}. Put \.{\\tracingstats1}
in \.{weave.tex}. The log file then shows the memory \TeX\ needed
to compile its input.
+These commands will do:
+
+{\obeylines
+\indent\.{sed s/MEMMAX=30000/MEMMAX=32000/ ../tex.p >tex.p}
+\indent\.{fpc -Fasysutils,baseunix tex.p}
+}
+
\medskip
Comments and questions are welcome!
\bigskip
@@ -42,18 +50,18 @@ Comments and questions are welcome!
@x
@d banner=='This is WEAVE, Version 4.4'
@y
-@d banner=='This is WEAVE-FPC'
+@d banner=='This is WEAVE-FPC, 2nd. ed'
@z
-[2] terminal output and input
+[2] program header
@x
program WEAVE(@!web_file,@!change_file,@!tex_file);
@y
-program WEAVE(@!input,@!output);
+program WEAVE(@!output);
@z
[3] shift left to turn debugging on, shift right to turn it off
- @x
+ @x debug
@d debug==@{ {change this to `$\\{debug}\equiv\null$' when debugging}
@d gubed==@t@>@} {change this to `$\\{gubed}\equiv\null$' when debugging}
@y
@@ -61,23 +69,27 @@ program WEAVE(@!input,@!output);
@d gubed==
@z
-[3] turn stats on
-@x
-@d stat==@{ {change this to `$\\{stat}\equiv\null$'
- when gathering usage statistics}
-@d tats==@t@>@} {change this to `$\\{tats}\equiv\null$'
- when gathering usage statistics}
-@y
-@d stat==
-@d tats==
-@z
+ [3] turn stats on
+ @x stats
+ @d stat==@{ {change this to `$\\{stat}\equiv\null$'
+ when gathering usage statistics}
+ @d tats==@t@>@} {change this to `$\\{tats}\equiv\null$'
+ when gathering usage statistics}
+ @y
+ @d stat==
+ @d tats==
+ @z
[4] compiler directives
@x
@{@&$C-,A+,D-@} {no range check, catch arithmetic overflow, no debug overhead}
@!debug @{@&$C+,D+@}@+ gubed {but turn everything on when debugging}
@y
-@{@&$M@&O@&D@&E I@&S@&O@}
+@{$MO@&DE@,ISO@}
+@/
+@{$Q+@}
+@/
+@{$R+@}
@z
[7] default case branch
@@ -98,7 +110,6 @@ program WEAVE(@!input,@!output);
@x
@d print(#)==write(term_out,#) {`|print|' means write on the terminal}
@y
-@d term_in == input
@d term_out == output
@d print(#)==write(term_out,#) {`|print|' means write on the terminal}
@z
@@ -124,14 +135,28 @@ rewrite(term_out,'TTY:'); {send |term_out| output to the terminal}
@d update_terminal == do_nothing
@z
-[24] get file names from command line arguments
+[24] open input files
@x
begin reset(web_file); reset(change_file);
+end;
@y
begin
-assign(web_file, param_str(1));
-assign(change_file, param_str(2));
-reset(web_file); reset(change_file);
+assign(web_file, param_str(1)); assign(change_file, param_str(2));
+@{$I-@}
+@#
+ioresult; reset(web_file);
+if ioresult <> 0 then begin
+ write_ln('Could not open web file: ', param_str(1));
+ halt(1);
+ end;
+ioresult; reset(change_file);
+if ioresult <> 0 then begin
+ write_ln('Could not open change file: ', param_str(2));
+ halt(1);
+ end;
+@#
+@{$I+@}
+end;
@z
[26] get file names from command line
@@ -139,10 +164,21 @@ reset(web_file); reset(change_file);
rewrite(tex_file);
@y
if param_count <> 3 then begin
- fatal_error('Usage: weave web-file change-file TeX-file');
+ write_ln('Usage: ', param_str(0), ' web-file change-file TeX-file');
+ halt(1);
end;
assign(tex_file, param_str(3));
-rewrite(tex_file);
+@#
+@{$I-@}
+@#
+ioresult; rewrite(tex_file);
+if ioresult <> 0 then begin
+ write_ln('Could not open tex_file: ', param_str(3));
+ halt(1);
+ end;
+@#
+@{$I+@}
+@#
@z
[258] Don't define Pascal's standard text files
@@ -168,9 +204,10 @@ reset(term_in,'TTY:','/I'); {open |term_in| as the terminal, don't do a |get|}
[261] close tex_file
@x
-@t\4\4@>{here files should be closed if the operating system requires it}
+end_of_WEAVE:
@y
fpc_close(tex_file);
+end_of_WEAVE:
@z
[263] put eol after last terminal out line
diff --git a/systems/unix/tex-fpc/lib/webmac-fpc.tex b/systems/unix/tex-fpc/webmac-fpc.tex
index 92ee9c8aef..5d1e3af2ef 100644
--- a/systems/unix/tex-fpc/lib/webmac-fpc.tex
+++ b/systems/unix/tex-fpc/webmac-fpc.tex
@@ -1,8 +1,9 @@
% TeX-FPC extensions to WEB macros
+\tracingonline=1
\def\namefpc{$\hbox{\name}{}_{\fam0 FPC}$}
\def\TeXfpc{\TeX$_{\fam0 FPC}$}
\def\address{{\parindent0pt\sl
- March 2019
+ November 2020
Wolfgang Helbig, Programmierer\hfill
@@ -12,5 +13,5 @@
\def\title{\namefpc}
\def\hint{For hints on how to install and use this program, see
-the readme file in the \TeXfpc\ distribution and the \.{WEB} manual
+the README file in the \TeXfpc\ distribution and the \.{WEB} manual
in Knuth's distribution (\.{webman.tex}).}
diff --git a/systems/unix/tex-fpc/xdvi/README b/systems/unix/tex-fpc/xdvi/README
index 42961d2288..5e1c79750d 100644
--- a/systems/unix/tex-fpc/xdvi/README
+++ b/systems/unix/tex-fpc/xdvi/README
@@ -1,12 +1,12 @@
-How to install xdvi for TeX-GPC:
+How to install xdvi for TeX-FPC:
Get the source from
- https://math.berkeley.edu/~vojta/xdvi/xdvi-22.85.tar.gz
-It unpacks into xdvi-22.85.
+ https://math.berkeley.edu/~vojta/xdvi/xdvi-22.86.tar.gz
+It unpacks into xdvi-22.86.
-Edit config reflecting your binary directory, your man directory
+Edit the file config reflecting your binary directory, your man directory
(i. e. a directory you have write permissions and has a subdirectory
-man1) and the resolution of your printer and then switch to xdvi-22.84
+man1) and the resolution of your printer and then switch to xdvi-22.86
and run
../config && make clean && make && make install
@@ -14,11 +14,26 @@ Unfortunately this neither works for NetBSD nor for Mac OS X.
For NetBSD use this:
../config && make clean && make && ../load && make install
-For Mac OS X use this:
-Instead replace the configure script in xdvi-22.84 with macconfigure,
-and replace xdvi.h with macxdvi.h.
+For Mac OS X it gets more involved:
+gcc -g creates files with the suffix .dSYM. The configure script
+then takes .dSYM as the suffix of executables, and thus breaks.
-The xdvi is configured soley by DVIPSconf/XDvi, move XDvi to DVIPSconf.
+The libraries in Mac OS X have the suffix .dynlib which breaks the
+configure script.
+
+See the file configdiff for the changes.
+
+A third error is to be fixed in xdvi.h, where symbol _XOPEN_SOURCE
+is defined. Remove the line, since the definition of _XOPEN_SOURCE
+causes NSIG to be not defined, which breaks signal.h.
+
+To fix the configure file either apply the changes in configdiff
+to it or replace it by the file macconfigure.
+
+Ignore the install-data error from make install.
+
+The file $HOME/Xdvi will be read by xdvi.
+An example configuration file is Xdvi.
You might want to change /etc/man.conf to include your private man pages.
I boldly replaced the line
@@ -26,7 +41,5 @@ _default /usr/{share,X11R6,pkg,local}/man/
to
_default /usr/{helbig,share,X11R6,pkg,local}/man/
-For whatever reason, I couldn't make configure work on Mac OS X. Please help!
-
enjoy
Wolfgang
diff --git a/systems/unix/tex-fpc/xdvi/Xdvi b/systems/unix/tex-fpc/xdvi/Xdvi
new file mode 100644
index 0000000000..5e7a9d64a7
--- /dev/null
+++ b/systems/unix/tex-fpc/xdvi/Xdvi
@@ -0,0 +1,11 @@
+! Options for xdvi for TeX-FPC:
+! Adapt pixelsPerInch to the resoulution of your printer.
+! mfMode is irrelavant in TeX-FPC (it is configured in mkpkfonts and mkfonts),
+! if set it breaks automatic .pk font making.
+xdvi*pixelsPerInch: 600
+xdvi*geometry: 760x715+0+0
+xdvi*background: white
+xdvi*paper: a4
+xdvi*shrinkFactor: 5
+xdvi*expert: 1
+xdvi*tickUnits: pt
diff --git a/systems/unix/tex-fpc/xdvi/config b/systems/unix/tex-fpc/xdvi/config
index dd8c2f9707..10cd9f4c94 100755
--- a/systems/unix/tex-fpc/xdvi/config
+++ b/systems/unix/tex-fpc/xdvi/config
@@ -1,15 +1,12 @@
# configure script for xdvi for TeX-FPC and Mac OS X
-# change the prefix and the base resolution in BDPI.
-# The resolution must agree with the one in the METAFONT mode localfont!
-# Do not specify a mfmode here! It will break automatic font generation.
CPPFLAGS='-DBDPI=600 -DMAKEPK=4' ./configure \
--mandir=/users/helbig/man \
--bindir=/users/helbig/bin \
--with-default-texmf-path=DVIPSconf \
---enable-ps-gs \
+--disable-freetype \
--enable-old-make-pk \
--enable-extra-app-defaults=DVIPSconf \
--with-default-font-path=PKfonts \
--with-default-header-path=DVIPSconf \
--with-default-fig-path=.:TeXinputs \
---without-mfmode
+--without-mfmode
diff --git a/systems/unix/tex-fpc/xdvi/configdiff b/systems/unix/tex-fpc/xdvi/configdiff
new file mode 100644
index 0000000000..d0d6c46ff0
--- /dev/null
+++ b/systems/unix/tex-fpc/xdvi/configdiff
@@ -0,0 +1,12 @@
+1010c1010
+< *.c | *.o | *.obj | *.dSYM) ;;
+---
+> *.c | *.o | *.obj) ;;
+1159c1159
+< for ac_extension in a so sl dylib; do
+---
+> for ac_extension in a so sl; do
+1318c1318
+< for ac_extension in a so sl dylib; do
+---
+> for ac_extension in a so sl; do
diff --git a/systems/unix/tex-fpc/xdvi/macconfigure b/systems/unix/tex-fpc/xdvi/macconfigure
index 71a46d4953..bdf9b63e31 100755
--- a/systems/unix/tex-fpc/xdvi/macconfigure
+++ b/systems/unix/tex-fpc/xdvi/macconfigure
@@ -55,6 +55,9 @@ ac_help="$ac_help
--with-mfmode=MODE:DPI set default Metafont mode to MODE at DPI dots/inch
--without-mfmode set default Metafont mode to none"
ac_help="$ac_help
+ --enable-freetype[=DIR] compile with the freetype2 library (default: enabled);
+ DIR=path of freetype-config binary"
+ac_help="$ac_help
--with-default-texmf-path=PATH
set default texmf list to PATH"
ac_help="$ac_help
@@ -70,6 +73,21 @@ ac_help="$ac_help
--with-default-fig-path=PATH
set default figure path to PATH"
ac_help="$ac_help
+ --with-default-dvips-cf-path=PATH
+ set default dvips configuration file path to PATH"
+ac_help="$ac_help
+ --with-default-fontmap-path=PATH
+ set default path for fontmap files to PATH"
+ac_help="$ac_help
+ --with-default-enc-path=PATH
+ set default path for encoding files to PATH"
+ac_help="$ac_help
+ --with-default-type1-path=PATH
+ set default path for type 1 fonts to PATH"
+ac_help="$ac_help
+ --with-default-gs-lib-path=PATH
+ set default path for finding font aliases to PATH"
+ac_help="$ac_help
--with-default-source-path=PATH
set default path for source specials to PATH"
ac_help="$ac_help
@@ -609,7 +627,7 @@ fi
# Extract the first word of "gcc", so it can be a program name with args.
set dummy gcc; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:613: checking for $ac_word" >&5
+echo "configure:631: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -639,7 +657,7 @@ if test -z "$CC"; then
# Extract the first word of "cc", so it can be a program name with args.
set dummy cc; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:643: checking for $ac_word" >&5
+echo "configure:661: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -690,7 +708,7 @@ fi
# Extract the first word of "cl", so it can be a program name with args.
set dummy cl; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:694: checking for $ac_word" >&5
+echo "configure:712: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -722,10 +740,9 @@ fi
fi
echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
-echo "configure:726: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
+echo "configure:744: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
ac_ext=c
-ac_exeext=
# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
ac_cpp='$CPP $CPPFLAGS'
ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
@@ -734,12 +751,12 @@ cross_compiling=$ac_cv_prog_cc_cross
cat > conftest.$ac_ext << EOF
-#line 737 "configure"
+#line 755 "configure"
#include "confdefs.h"
main(){return(0);}
EOF
-if { (eval echo configure:742: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:760: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
ac_cv_prog_cc_works=yes
# If we can't run a trivial program, we are probably using a cross compiler.
if (./conftest; exit) 2>/dev/null; then
@@ -765,12 +782,12 @@ if test $ac_cv_prog_cc_works = no; then
{ echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; }
fi
echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
-echo "configure:768: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
+echo "configure:786: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6
cross_compiling=$ac_cv_prog_cc_cross
echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
-echo "configure:773: checking whether we are using GNU C" >&5
+echo "configure:791: checking whether we are using GNU C" >&5
if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -779,7 +796,7 @@ else
yes;
#endif
EOF
-if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:782: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:800: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
ac_cv_prog_gcc=yes
else
ac_cv_prog_gcc=no
@@ -798,7 +815,7 @@ ac_test_CFLAGS="${CFLAGS+set}"
ac_save_CFLAGS="$CFLAGS"
CFLAGS=
echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
-echo "configure:801: checking whether ${CC-cc} accepts -g" >&5
+echo "configure:819: checking whether ${CC-cc} accepts -g" >&5
if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -860,7 +877,7 @@ ac_configure=$ac_aux_dir/configure # This should be Cygnus configure.
# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
# ./install, which can be erroneously created by make from ./install.sh.
echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
-echo "configure:863: checking for a BSD compatible install" >&5
+echo "configure:881: checking for a BSD compatible install" >&5
if test -z "$INSTALL"; then
if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -913,12 +930,12 @@ test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}'
test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6
-echo "configure:916: checking for Cygwin environment" >&5
+echo "configure:934: checking for Cygwin environment" >&5
if eval "test \"`echo '$''{'ac_cv_cygwin'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 921 "configure"
+#line 939 "configure"
#include "confdefs.h"
int main() {
@@ -929,7 +946,7 @@ int main() {
return __CYGWIN__;
; return 0; }
EOF
-if { (eval echo configure:932: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:950: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_cygwin=yes
else
@@ -946,19 +963,19 @@ echo "$ac_t""$ac_cv_cygwin" 1>&6
CYGWIN=
test "$ac_cv_cygwin" = yes && CYGWIN=yes
echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6
-echo "configure:949: checking for mingw32 environment" >&5
+echo "configure:967: checking for mingw32 environment" >&5
if eval "test \"`echo '$''{'ac_cv_mingw32'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 954 "configure"
+#line 972 "configure"
#include "confdefs.h"
int main() {
return __MINGW32__;
; return 0; }
EOF
-if { (eval echo configure:961: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:979: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_mingw32=yes
else
@@ -975,10 +992,9 @@ echo "$ac_t""$ac_cv_mingw32" 1>&6
MINGW32=
test "$ac_cv_mingw32" = yes && MINGW32=yes
-# helbig: gcc -g will create a directory conftest.dSYM, and configure thinks
-# that dSYM is the suffix. Furthermore, rm -rf is needed to remove the directory.
+
echo $ac_n "checking for executable suffix""... $ac_c" 1>&6
-echo "configure:980: checking for executable suffix" >&5
+echo "configure:998: checking for executable suffix" >&5
if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -988,7 +1004,7 @@ else
rm -f conftest*
echo 'int main () { return 0; }' > conftest.$ac_ext
ac_cv_exeext=
- if { (eval echo configure:990: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
+ if { (eval echo configure:1008: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
for file in conftest.*; do
case $file in
*.c | *.o | *.obj | *.dSYM) ;;
@@ -998,10 +1014,11 @@ else
else
{ echo "configure: error: installation or configuration problem: compiler cannot create executables." 1>&2; exit 1; }
fi
- rm -rf conftest*
+ rm -f conftest*
test x"${ac_cv_exeext}" = x && ac_cv_exeext=no
fi
fi
+
EXEEXT=""
test x"${ac_cv_exeext}" != xno && EXEEXT=${ac_cv_exeext}
echo "$ac_t""${ac_cv_exeext}" 1>&6
@@ -1021,7 +1038,7 @@ EOF
echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
-echo "configure:1024: checking how to run the C preprocessor" >&5
+echo "configure:1042: checking how to run the C preprocessor" >&5
# On Suns, sometimes $CPP names a directory.
if test -n "$CPP" && test -d "$CPP"; then
CPP=
@@ -1036,13 +1053,13 @@ else
# On the NeXT, cc -E runs the code through the compiler's parser,
# not just through cpp.
cat > conftest.$ac_ext <<EOF
-#line 1039 "configure"
+#line 1057 "configure"
#include "confdefs.h"
#include <assert.h>
Syntax Error
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1045: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1063: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
:
@@ -1053,13 +1070,13 @@ else
rm -rf conftest*
CPP="${CC-cc} -E -traditional-cpp"
cat > conftest.$ac_ext <<EOF
-#line 1056 "configure"
+#line 1074 "configure"
#include "confdefs.h"
#include <assert.h>
Syntax Error
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1062: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1080: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
:
@@ -1070,13 +1087,13 @@ else
rm -rf conftest*
CPP="${CC-cc} -nologo -E"
cat > conftest.$ac_ext <<EOF
-#line 1073 "configure"
+#line 1091 "configure"
#include "confdefs.h"
#include <assert.h>
Syntax Error
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1079: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1097: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
:
@@ -1105,7 +1122,7 @@ echo "$ac_t""$CPP" 1>&6
# Uses ac_ vars as temps to allow command line to override cache and checks.
# --without-x overrides everything else, but does not touch the cache.
echo $ac_n "checking for X""... $ac_c" 1>&6
-echo "configure:1108: checking for X" >&5
+echo "configure:1126: checking for X" >&5
# $have_x is `yes', `no', `disabled', or empty when we do not yet know.
if test "x$with_x" = xno; then
@@ -1135,12 +1152,11 @@ if mkdir conftestdir; then
acfindx:
@echo 'ac_im_incroot="${INCROOT}"; ac_im_usrlibdir="${USRLIBDIR}"; ac_im_libdir="${LIBDIR}"'
EOF
-# helbig: The suffix for libraries in Mac OS X is dylib.
if (xmkmf) >/dev/null 2>/dev/null && test -f Makefile; then
# GNU make sometimes prints "make[1]: Entering...", which would confuse us.
eval `${MAKE-make} acfindx 2>/dev/null | grep -v make`
# Open Windows xmkmf reportedly sets LIBDIR instead of USRLIBDIR.
- for ac_extension in dylib; do
+ for ac_extension in a so sl dylib; do
if test ! -f $ac_im_usrlibdir/libX11.$ac_extension &&
test -f $ac_im_libdir/libX11.$ac_extension; then
ac_im_usrlibdir=$ac_im_libdir; break
@@ -1169,12 +1185,12 @@ if test "$ac_x_includes" = NO; then
# First, try using that file with no special directory specified.
cat > conftest.$ac_ext <<EOF
-#line 1171 "configure"
+#line 1189 "configure"
#include "confdefs.h"
#include <$x_direct_test_include>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1176: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1194: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -1243,14 +1259,14 @@ if test "$ac_x_libraries" = NO; then
ac_save_LIBS="$LIBS"
LIBS="-l$x_direct_test_library $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 1245 "configure"
+#line 1263 "configure"
#include "confdefs.h"
int main() {
${x_direct_test_function}()
; return 0; }
EOF
-if { (eval echo configure:1252: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1270: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
LIBS="$ac_save_LIBS"
# We can link X programs with no special library path.
@@ -1299,7 +1315,7 @@ for ac_dir in `echo "$ac_x_includes" | sed s/include/lib/` \
/usr/openwin/share/lib \
; \
do
- for ac_extension in dylib; do
+ for ac_extension in a so sl dylib; do
if test -r $ac_dir/lib${x_direct_test_library}.$ac_extension; then
ac_x_libraries=$ac_dir
break 2
@@ -1356,17 +1372,17 @@ else
case "`(uname -sr) 2>/dev/null`" in
"SunOS 5"*)
echo $ac_n "checking whether -R must be followed by a space""... $ac_c" 1>&6
-echo "configure:1358: checking whether -R must be followed by a space" >&5
+echo "configure:1376: checking whether -R must be followed by a space" >&5
ac_xsave_LIBS="$LIBS"; LIBS="$LIBS -R$x_libraries"
cat > conftest.$ac_ext <<EOF
-#line 1361 "configure"
+#line 1379 "configure"
#include "confdefs.h"
int main() {
; return 0; }
EOF
-if { (eval echo configure:1368: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1386: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
ac_R_nospace=yes
else
@@ -1385,14 +1401,14 @@ rm -f conftest*
else
LIBS="$ac_xsave_LIBS -R $x_libraries"
cat > conftest.$ac_ext <<EOF
-#line 1387 "configure"
+#line 1405 "configure"
#include "confdefs.h"
int main() {
; return 0; }
EOF
-if { (eval echo configure:1394: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1412: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
ac_R_space=yes
else
@@ -1427,7 +1443,7 @@ rm -f conftest*
# libraries were built with DECnet support. And karl@cs.umb.edu says
# the Alpha needs dnet_stub (dnet does not exist).
echo $ac_n "checking for dnet_ntoa in -ldnet""... $ac_c" 1>&6
-echo "configure:1429: checking for dnet_ntoa in -ldnet" >&5
+echo "configure:1447: checking for dnet_ntoa in -ldnet" >&5
ac_lib_var=`echo dnet'_'dnet_ntoa | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -1435,7 +1451,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-ldnet $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 1437 "configure"
+#line 1455 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -1446,7 +1462,7 @@ int main() {
dnet_ntoa()
; return 0; }
EOF
-if { (eval echo configure:1448: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1466: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -1468,7 +1484,7 @@ fi
if test $ac_cv_lib_dnet_dnet_ntoa = no; then
echo $ac_n "checking for dnet_ntoa in -ldnet_stub""... $ac_c" 1>&6
-echo "configure:1470: checking for dnet_ntoa in -ldnet_stub" >&5
+echo "configure:1488: checking for dnet_ntoa in -ldnet_stub" >&5
ac_lib_var=`echo dnet_stub'_'dnet_ntoa | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -1476,7 +1492,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-ldnet_stub $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 1478 "configure"
+#line 1496 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -1487,7 +1503,7 @@ int main() {
dnet_ntoa()
; return 0; }
EOF
-if { (eval echo configure:1489: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1507: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -1516,12 +1532,12 @@ fi
# The nsl library prevents programs from opening the X display
# on Irix 5.2, according to dickey@clark.net.
echo $ac_n "checking for gethostbyname""... $ac_c" 1>&6
-echo "configure:1518: checking for gethostbyname" >&5
+echo "configure:1536: checking for gethostbyname" >&5
if eval "test \"`echo '$''{'ac_cv_func_gethostbyname'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1523 "configure"
+#line 1541 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char gethostbyname(); below. */
@@ -1544,7 +1560,7 @@ gethostbyname();
; return 0; }
EOF
-if { (eval echo configure:1546: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1564: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_gethostbyname=yes"
else
@@ -1565,7 +1581,7 @@ fi
if test $ac_cv_func_gethostbyname = no; then
echo $ac_n "checking for gethostbyname in -lnsl""... $ac_c" 1>&6
-echo "configure:1567: checking for gethostbyname in -lnsl" >&5
+echo "configure:1585: checking for gethostbyname in -lnsl" >&5
ac_lib_var=`echo nsl'_'gethostbyname | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -1573,7 +1589,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lnsl $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 1575 "configure"
+#line 1593 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -1584,7 +1600,7 @@ int main() {
gethostbyname()
; return 0; }
EOF
-if { (eval echo configure:1586: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1604: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -1614,12 +1630,12 @@ fi
# -lsocket must be given before -lnsl if both are needed.
# We assume that if connect needs -lnsl, so does gethostbyname.
echo $ac_n "checking for connect""... $ac_c" 1>&6
-echo "configure:1616: checking for connect" >&5
+echo "configure:1634: checking for connect" >&5
if eval "test \"`echo '$''{'ac_cv_func_connect'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1621 "configure"
+#line 1639 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char connect(); below. */
@@ -1642,7 +1658,7 @@ connect();
; return 0; }
EOF
-if { (eval echo configure:1644: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1662: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_connect=yes"
else
@@ -1663,7 +1679,7 @@ fi
if test $ac_cv_func_connect = no; then
echo $ac_n "checking for connect in -lsocket""... $ac_c" 1>&6
-echo "configure:1665: checking for connect in -lsocket" >&5
+echo "configure:1683: checking for connect in -lsocket" >&5
ac_lib_var=`echo socket'_'connect | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -1671,7 +1687,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lsocket $X_EXTRA_LIBS $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 1673 "configure"
+#line 1691 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -1682,7 +1698,7 @@ int main() {
connect()
; return 0; }
EOF
-if { (eval echo configure:1684: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1702: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -1706,12 +1722,12 @@ fi
# gomez@mi.uni-erlangen.de says -lposix is necessary on A/UX.
echo $ac_n "checking for remove""... $ac_c" 1>&6
-echo "configure:1708: checking for remove" >&5
+echo "configure:1726: checking for remove" >&5
if eval "test \"`echo '$''{'ac_cv_func_remove'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1713 "configure"
+#line 1731 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char remove(); below. */
@@ -1734,7 +1750,7 @@ remove();
; return 0; }
EOF
-if { (eval echo configure:1736: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1754: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_remove=yes"
else
@@ -1755,7 +1771,7 @@ fi
if test $ac_cv_func_remove = no; then
echo $ac_n "checking for remove in -lposix""... $ac_c" 1>&6
-echo "configure:1757: checking for remove in -lposix" >&5
+echo "configure:1775: checking for remove in -lposix" >&5
ac_lib_var=`echo posix'_'remove | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -1763,7 +1779,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lposix $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 1765 "configure"
+#line 1783 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -1774,7 +1790,7 @@ int main() {
remove()
; return 0; }
EOF
-if { (eval echo configure:1776: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1794: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -1798,12 +1814,12 @@ fi
# BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay.
echo $ac_n "checking for shmat""... $ac_c" 1>&6
-echo "configure:1800: checking for shmat" >&5
+echo "configure:1818: checking for shmat" >&5
if eval "test \"`echo '$''{'ac_cv_func_shmat'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1805 "configure"
+#line 1823 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char shmat(); below. */
@@ -1826,7 +1842,7 @@ shmat();
; return 0; }
EOF
-if { (eval echo configure:1828: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1846: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_shmat=yes"
else
@@ -1847,7 +1863,7 @@ fi
if test $ac_cv_func_shmat = no; then
echo $ac_n "checking for shmat in -lipc""... $ac_c" 1>&6
-echo "configure:1849: checking for shmat in -lipc" >&5
+echo "configure:1867: checking for shmat in -lipc" >&5
ac_lib_var=`echo ipc'_'shmat | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -1855,7 +1871,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lipc $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 1857 "configure"
+#line 1875 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -1866,7 +1882,7 @@ int main() {
shmat()
; return 0; }
EOF
-if { (eval echo configure:1868: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1886: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -1899,7 +1915,7 @@ fi
# libraries we check for below, so use a different variable.
# --interran@uluru.Stanford.EDU, kb@cs.umb.edu.
echo $ac_n "checking for IceConnectionNumber in -lICE""... $ac_c" 1>&6
-echo "configure:1901: checking for IceConnectionNumber in -lICE" >&5
+echo "configure:1919: checking for IceConnectionNumber in -lICE" >&5
ac_lib_var=`echo ICE'_'IceConnectionNumber | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -1907,7 +1923,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lICE $X_EXTRA_LIBS $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 1909 "configure"
+#line 1927 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -1918,7 +1934,7 @@ int main() {
IceConnectionNumber()
; return 0; }
EOF
-if { (eval echo configure:1920: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1938: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -1952,17 +1968,17 @@ for ac_hdr in X11/IntrinsicI.h
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:1954: checking for $ac_hdr" >&5
+echo "configure:1972: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1959 "configure"
+#line 1977 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1964: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1982: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -1992,12 +2008,12 @@ ac_cpp=$ac_save_cpp
echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
-echo "configure:1994: checking for ANSI C header files" >&5
+echo "configure:2012: checking for ANSI C header files" >&5
if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1999 "configure"
+#line 2017 "configure"
#include "confdefs.h"
#include <stdlib.h>
#include <stdarg.h>
@@ -2005,7 +2021,7 @@ else
#include <float.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2007: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2025: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -2022,7 +2038,7 @@ rm -f conftest*
if test $ac_cv_header_stdc = yes; then
# SunOS 4.x string.h does not declare mem*, contrary to ANSI.
cat > conftest.$ac_ext <<EOF
-#line 2024 "configure"
+#line 2042 "configure"
#include "confdefs.h"
#include <string.h>
EOF
@@ -2040,7 +2056,7 @@ fi
if test $ac_cv_header_stdc = yes; then
# ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
cat > conftest.$ac_ext <<EOF
-#line 2042 "configure"
+#line 2060 "configure"
#include "confdefs.h"
#include <stdlib.h>
EOF
@@ -2061,7 +2077,7 @@ if test "$cross_compiling" = yes; then
:
else
cat > conftest.$ac_ext <<EOF
-#line 2063 "configure"
+#line 2081 "configure"
#include "confdefs.h"
#include <ctype.h>
#define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
@@ -2072,7 +2088,7 @@ if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2);
exit (0); }
EOF
-if { (eval echo configure:2074: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:2092: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
:
else
@@ -2094,7 +2110,7 @@ if test $ac_cv_header_stdc = yes; then
EOF
echo $ac_n "checking for X11/Xosdefs.h""... $ac_c" 1>&6
-echo "configure:2096: checking for X11/Xosdefs.h" >&5
+echo "configure:2114: checking for X11/Xosdefs.h" >&5
if eval "test \"`echo '$''{'ac_cv_x11_xosdefs_h'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -2105,12 +2121,12 @@ else
fi
else
cat > conftest.$ac_ext <<EOF
-#line 2107 "configure"
+#line 2125 "configure"
#include "confdefs.h"
#include <X11/Xosdefs.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2112: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2130: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -2137,17 +2153,17 @@ for ac_hdr in unistd.h
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:2139: checking for $ac_hdr" >&5
+echo "configure:2157: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2144 "configure"
+#line 2162 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2149: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2167: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -2178,12 +2194,12 @@ for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr that defines DIR""... $ac_c" 1>&6
-echo "configure:2180: checking for $ac_hdr that defines DIR" >&5
+echo "configure:2198: checking for $ac_hdr that defines DIR" >&5
if eval "test \"`echo '$''{'ac_cv_header_dirent_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2185 "configure"
+#line 2203 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <$ac_hdr>
@@ -2191,7 +2207,7 @@ int main() {
DIR *dirp = 0;
; return 0; }
EOF
-if { (eval echo configure:2193: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2211: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
eval "ac_cv_header_dirent_$ac_safe=yes"
else
@@ -2216,7 +2232,7 @@ done
# Two versions of opendir et al. are in -ldir and -lx on SCO Xenix.
if test $ac_header_dirent = dirent.h; then
echo $ac_n "checking for opendir in -ldir""... $ac_c" 1>&6
-echo "configure:2218: checking for opendir in -ldir" >&5
+echo "configure:2236: checking for opendir in -ldir" >&5
ac_lib_var=`echo dir'_'opendir | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -2224,7 +2240,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-ldir $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 2226 "configure"
+#line 2244 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -2235,7 +2251,7 @@ int main() {
opendir()
; return 0; }
EOF
-if { (eval echo configure:2237: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2255: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -2257,7 +2273,7 @@ fi
else
echo $ac_n "checking for opendir in -lx""... $ac_c" 1>&6
-echo "configure:2259: checking for opendir in -lx" >&5
+echo "configure:2277: checking for opendir in -lx" >&5
ac_lib_var=`echo x'_'opendir | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -2265,7 +2281,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lx $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 2267 "configure"
+#line 2285 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -2276,7 +2292,7 @@ int main() {
opendir()
; return 0; }
EOF
-if { (eval echo configure:2278: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2296: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -2299,12 +2315,12 @@ fi
fi
echo $ac_n "checking for sys/wait.h that is POSIX.1 compatible""... $ac_c" 1>&6
-echo "configure:2301: checking for sys/wait.h that is POSIX.1 compatible" >&5
+echo "configure:2319: checking for sys/wait.h that is POSIX.1 compatible" >&5
if eval "test \"`echo '$''{'ac_cv_header_sys_wait_h'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2306 "configure"
+#line 2324 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <sys/wait.h>
@@ -2320,7 +2336,7 @@ wait (&s);
s = WIFEXITED (s) ? WEXITSTATUS (s) : 1;
; return 0; }
EOF
-if { (eval echo configure:2322: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2340: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_header_sys_wait_h=yes
else
@@ -2343,14 +2359,14 @@ fi
echo $ac_n "checking whether byte ordering is bigendian""... $ac_c" 1>&6
-echo "configure:2345: checking whether byte ordering is bigendian" >&5
+echo "configure:2363: checking whether byte ordering is bigendian" >&5
if eval "test \"`echo '$''{'ac_cv_c_bigendian'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
ac_cv_c_bigendian=unknown
# See if sys/param.h defines the BYTE_ORDER macro.
cat > conftest.$ac_ext <<EOF
-#line 2352 "configure"
+#line 2370 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <sys/param.h>
@@ -2361,11 +2377,11 @@ int main() {
#endif
; return 0; }
EOF
-if { (eval echo configure:2363: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2381: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
# It does; now see whether it defined to BIG_ENDIAN or not.
cat > conftest.$ac_ext <<EOF
-#line 2367 "configure"
+#line 2385 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <sys/param.h>
@@ -2376,7 +2392,7 @@ int main() {
#endif
; return 0; }
EOF
-if { (eval echo configure:2378: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2396: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_c_bigendian=yes
else
@@ -2396,7 +2412,7 @@ if test "$cross_compiling" = yes; then
{ echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
else
cat > conftest.$ac_ext <<EOF
-#line 2398 "configure"
+#line 2416 "configure"
#include "confdefs.h"
main () {
/* Are we little or big endian? From Harbison&Steele. */
@@ -2409,7 +2425,7 @@ main () {
exit (u.c[sizeof (long) - 1] == 1);
}
EOF
-if { (eval echo configure:2411: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:2429: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
ac_cv_c_bigendian=no
else
@@ -2432,9 +2448,8 @@ EOF
fi
-ac_exeext=
echo $ac_n "checking for integer type to use in bitmaps""... $ac_c" 1>&6
-echo "configure:2435: checking for integer type to use in bitmaps" >&5
+echo "configure:2453: checking for integer type to use in bitmaps" >&5
if eval "test \"`echo '$''{'xdvi_cv_bitmap_type'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -2442,7 +2457,7 @@ else
{ echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
else
cat > conftest.$ac_ext <<EOF
-#line 2443 "configure"
+#line 2461 "configure"
#include "confdefs.h"
#include <stdio.h>
main()
@@ -2460,7 +2475,7 @@ main()
exit(0);
}
EOF
-if { (eval echo configure:2461: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:2479: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
xdvi_cv_bitmap_type="`cat conftestval`"
else
@@ -2485,12 +2500,12 @@ EOF
echo "$ac_t""unsigned $BMTYPE, size = $BMBYTES" 1>&6
echo $ac_n "checking for whether the C compiler supports string concatenation""... $ac_c" 1>&6
-echo "configure:2486: checking for whether the C compiler supports string concatenation" >&5
+echo "configure:2504: checking for whether the C compiler supports string concatenation" >&5
if eval "test \"`echo '$''{'xdvi_cc_concat'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2491 "configure"
+#line 2509 "configure"
#include "confdefs.h"
#include <stdio.h>
@@ -2499,7 +2514,7 @@ puts("Testing" " string" " concatenation");
; return 0; }
EOF
-if { (eval echo configure:2500: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2518: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
xdvi_cc_concat=yes
else
@@ -2522,12 +2537,12 @@ EOF
fi
echo $ac_n "checking for stropts.h and isastream()""... $ac_c" 1>&6
-echo "configure:2523: checking for stropts.h and isastream()" >&5
+echo "configure:2541: checking for stropts.h and isastream()" >&5
if eval "test \"`echo '$''{'xdvi_cv_sys_streams'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2528 "configure"
+#line 2546 "configure"
#include "confdefs.h"
#include <stropts.h>
@@ -2539,7 +2554,7 @@ isastream(0);
#endif
; return 0; }
EOF
-if { (eval echo configure:2540: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2558: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
xdvi_cv_sys_streams=yes
else
@@ -2559,7 +2574,7 @@ EOF
fi
echo $ac_n "checking for SunOS 4""... $ac_c" 1>&6
-echo "configure:2560: checking for SunOS 4" >&5
+echo "configure:2578: checking for SunOS 4" >&5
if eval "test \"`echo '$''{'xdvi_cv_sys_sunos_4'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -2578,7 +2593,7 @@ EOF
fi
echo $ac_n "checking for certain old versions of Linux""... $ac_c" 1>&6
-echo "configure:2579: checking for certain old versions of Linux" >&5
+echo "configure:2597: checking for certain old versions of Linux" >&5
if eval "test \"`echo '$''{'xdvi_cv_sys_old_linux'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -2597,12 +2612,12 @@ EOF
fi
echo $ac_n "checking for off_t""... $ac_c" 1>&6
-echo "configure:2598: checking for off_t" >&5
+echo "configure:2616: checking for off_t" >&5
if eval "test \"`echo '$''{'ac_cv_type_off_t'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2603 "configure"
+#line 2621 "configure"
#include "confdefs.h"
#include <sys/types.h>
#if STDC_HEADERS
@@ -2630,12 +2645,12 @@ EOF
fi
echo $ac_n "checking for pid_t""... $ac_c" 1>&6
-echo "configure:2631: checking for pid_t" >&5
+echo "configure:2649: checking for pid_t" >&5
if eval "test \"`echo '$''{'ac_cv_type_pid_t'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2636 "configure"
+#line 2654 "configure"
#include "confdefs.h"
#include <sys/types.h>
#if STDC_HEADERS
@@ -2663,12 +2678,12 @@ EOF
fi
echo $ac_n "checking for size_t""... $ac_c" 1>&6
-echo "configure:2664: checking for size_t" >&5
+echo "configure:2682: checking for size_t" >&5
if eval "test \"`echo '$''{'ac_cv_type_size_t'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2669 "configure"
+#line 2687 "configure"
#include "confdefs.h"
#include <sys/types.h>
#if STDC_HEADERS
@@ -2696,12 +2711,12 @@ EOF
fi
echo $ac_n "checking for ptrdiff_t""... $ac_c" 1>&6
-echo "configure:2697: checking for ptrdiff_t" >&5
+echo "configure:2715: checking for ptrdiff_t" >&5
if eval "test \"`echo '$''{'ac_cv_type_ptrdiff_t'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2702 "configure"
+#line 2720 "configure"
#include "confdefs.h"
#include <sys/types.h>
#if STDC_HEADERS
@@ -2729,12 +2744,12 @@ EOF
fi
echo $ac_n "checking return type of signal handlers""... $ac_c" 1>&6
-echo "configure:2730: checking return type of signal handlers" >&5
+echo "configure:2748: checking return type of signal handlers" >&5
if eval "test \"`echo '$''{'ac_cv_type_signal'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2735 "configure"
+#line 2753 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <signal.h>
@@ -2751,7 +2766,7 @@ int main() {
int i;
; return 0; }
EOF
-if { (eval echo configure:2752: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2770: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_type_signal=void
else
@@ -2770,12 +2785,12 @@ EOF
echo $ac_n "checking for poll.h and poll()""... $ac_c" 1>&6
-echo "configure:2771: checking for poll.h and poll()" >&5
+echo "configure:2789: checking for poll.h and poll()" >&5
if eval "test \"`echo '$''{'xdvi_cv_func_poll'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2776 "configure"
+#line 2794 "configure"
#include "confdefs.h"
#include <poll.h>
@@ -2783,7 +2798,7 @@ int main() {
poll((struct pollfd *) 0, 0, 0);
; return 0; }
EOF
-if { (eval echo configure:2784: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2802: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
xdvi_cv_func_poll=yes
else
@@ -2806,17 +2821,17 @@ else
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:2807: checking for $ac_hdr" >&5
+echo "configure:2825: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2812 "configure"
+#line 2830 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2817: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2835: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -2845,17 +2860,17 @@ done
fi
ac_safe=`echo "vfork.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for vfork.h""... $ac_c" 1>&6
-echo "configure:2846: checking for vfork.h" >&5
+echo "configure:2864: checking for vfork.h" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2851 "configure"
+#line 2869 "configure"
#include "confdefs.h"
#include <vfork.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2856: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2874: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -2880,18 +2895,18 @@ else
fi
echo $ac_n "checking for working vfork""... $ac_c" 1>&6
-echo "configure:2881: checking for working vfork" >&5
+echo "configure:2899: checking for working vfork" >&5
if eval "test \"`echo '$''{'ac_cv_func_vfork_works'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
if test "$cross_compiling" = yes; then
echo $ac_n "checking for vfork""... $ac_c" 1>&6
-echo "configure:2887: checking for vfork" >&5
+echo "configure:2905: checking for vfork" >&5
if eval "test \"`echo '$''{'ac_cv_func_vfork'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2892 "configure"
+#line 2910 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char vfork(); below. */
@@ -2914,7 +2929,7 @@ vfork();
; return 0; }
EOF
-if { (eval echo configure:2915: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2933: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_vfork=yes"
else
@@ -2936,7 +2951,7 @@ fi
ac_cv_func_vfork_works=$ac_cv_func_vfork
else
cat > conftest.$ac_ext <<EOF
-#line 2937 "configure"
+#line 2955 "configure"
#include "confdefs.h"
/* Thanks to Paul Eggert for this test. */
#include <stdio.h>
@@ -3031,7 +3046,7 @@ main() {
}
}
EOF
-if { (eval echo configure:3032: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:3050: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
ac_cv_func_vfork_works=yes
else
@@ -3055,7 +3070,7 @@ fi
if test $ac_cv_func_vfork_works = yes; then
echo $ac_n "checking for whether setsid() is allowed within vfork()""... $ac_c" 1>&6
-echo "configure:3056: checking for whether setsid() is allowed within vfork()" >&5
+echo "configure:3074: checking for whether setsid() is allowed within vfork()" >&5
if eval "test \"`echo '$''{'xdvi_cv_setsid_in_vfork'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -3063,7 +3078,7 @@ else
{ echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
else
cat > conftest.$ac_ext <<EOF
-#line 3064 "configure"
+#line 3082 "configure"
#include "confdefs.h"
/* Test adapted from Gnu autoconf */
/* Thanks to Paul Eggert for this test. */
@@ -3102,7 +3117,7 @@ main() {
}
}
EOF
-if { (eval echo configure:3103: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:3121: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
xdvi_cv_setsid_in_vfork=yes
else
@@ -3125,12 +3140,12 @@ EOF
fi
fi
echo $ac_n "checking for waitpid""... $ac_c" 1>&6
-echo "configure:3126: checking for waitpid" >&5
+echo "configure:3144: checking for waitpid" >&5
if eval "test \"`echo '$''{'ac_cv_func_waitpid'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 3131 "configure"
+#line 3149 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char waitpid(); below. */
@@ -3153,7 +3168,7 @@ waitpid();
; return 0; }
EOF
-if { (eval echo configure:3154: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3172: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_waitpid=yes"
else
@@ -3176,12 +3191,12 @@ else
for ac_func in wait4
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:3177: checking for $ac_func" >&5
+echo "configure:3195: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 3182 "configure"
+#line 3200 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -3204,7 +3219,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:3205: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3223: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -3231,12 +3246,12 @@ done
fi
echo $ac_n "checking for putenv""... $ac_c" 1>&6
-echo "configure:3232: checking for putenv" >&5
+echo "configure:3250: checking for putenv" >&5
if eval "test \"`echo '$''{'ac_cv_func_putenv'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 3237 "configure"
+#line 3255 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char putenv(); below. */
@@ -3259,7 +3274,7 @@ putenv();
; return 0; }
EOF
-if { (eval echo configure:3260: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3278: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_putenv=yes"
else
@@ -3282,12 +3297,12 @@ else
for ac_func in setenv
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:3283: checking for $ac_func" >&5
+echo "configure:3301: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 3288 "configure"
+#line 3306 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -3310,7 +3325,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:3311: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3329: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -3336,15 +3351,15 @@ done
fi
-for ac_func in mkstemp sigaction strerror vsnprintf
+for ac_func in mkstemp sigaction strerror vsnprintf vasprintf
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:3340: checking for $ac_func" >&5
+echo "configure:3358: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 3345 "configure"
+#line 3363 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -3367,7 +3382,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:3368: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3386: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -3391,47 +3406,10 @@ else
fi
done
-echo $ac_n "checking for the function ulltostr() and the long long type""... $ac_c" 1>&6
-echo "configure:3393: checking for the function ulltostr() and the long long type" >&5
-if eval "test \"`echo '$''{'xdvi_cv_func_ulltostr'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 3398 "configure"
-#include "confdefs.h"
-#include <stdio.h>
-#if STDC_HEADERS
-# include <stdlib.h>
-#endif
-int main() {
- char s[3 * sizeof(unsigned long long)];
- unsigned long long value = 12345;
- puts(ulltostr(value, s))
-; return 0; }
-EOF
-if { (eval echo configure:3410: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- xdvi_cv_func_ulltostr=yes
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- xdvi_cv_func_ulltostr=no
-fi
-rm -f conftest*
-fi
-
-echo "$ac_t""$xdvi_cv_func_ulltostr" 1>&6
-if test $xdvi_cv_func_ulltostr = yes; then
- cat >> confdefs.h <<\EOF
-#define HAVE_ULLTOSTR 1
-EOF
-
-fi
if test $ac_cv_func_vsnprintf = yes; then
echo $ac_n "checking for a c99-compatible implementation of (v)snprintf()""... $ac_c" 1>&6
-echo "configure:3432: checking for a c99-compatible implementation of (v)snprintf()" >&5
+echo "configure:3413: checking for a c99-compatible implementation of (v)snprintf()" >&5
if eval "test \"`echo '$''{'xdvi_cv_func_good_vsnprintf'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -3439,7 +3417,7 @@ else
{ echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
else
cat > conftest.$ac_ext <<EOF
-#line 3440 "configure"
+#line 3421 "configure"
#include "confdefs.h"
#include <stdio.h>
int main()
@@ -3448,7 +3426,7 @@ int main()
return (snprintf(s, 0, "test") != 4);
}
EOF
-if { (eval echo configure:3449: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:3430: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
xdvi_cv_func_good_vsnprintf=yes
else
@@ -3473,12 +3451,12 @@ fi
MATH_LIB=
echo $ac_n "checking for sin""... $ac_c" 1>&6
-echo "configure:3474: checking for sin" >&5
+echo "configure:3455: checking for sin" >&5
if eval "test \"`echo '$''{'ac_cv_func_sin'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 3479 "configure"
+#line 3460 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char sin(); below. */
@@ -3501,7 +3479,7 @@ sin();
; return 0; }
EOF
-if { (eval echo configure:3502: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3483: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_sin=yes"
else
@@ -3519,7 +3497,7 @@ if eval "test \"`echo '$ac_cv_func_'sin`\" = yes"; then
else
echo "$ac_t""no" 1>&6
echo $ac_n "checking for sin in -lm""... $ac_c" 1>&6
-echo "configure:3520: checking for sin in -lm" >&5
+echo "configure:3501: checking for sin in -lm" >&5
ac_lib_var=`echo m'_'sin | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -3527,7 +3505,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lm $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 3528 "configure"
+#line 3509 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -3538,7 +3516,7 @@ int main() {
sin()
; return 0; }
EOF
-if { (eval echo configure:3539: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3520: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -3563,7 +3541,7 @@ fi
echo $ac_n "checking whether linker supports the --allow-multiple-definition flag""... $ac_c" 1>&6
-echo "configure:3564: checking whether linker supports the --allow-multiple-definition flag" >&5
+echo "configure:3545: checking whether linker supports the --allow-multiple-definition flag" >&5
if eval "test \"`echo '$''{'xdvi_linker_multiple_defns'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -3571,7 +3549,7 @@ else
LDFLAGS="-Xlinker --allow-multiple-definition"
x_linker_options=""
cat > conftest.$ac_ext <<EOF
-#line 3572 "configure"
+#line 3553 "configure"
#include "confdefs.h"
#include <stdio.h>
@@ -3580,7 +3558,7 @@ void foo(void);
; return 0; }
EOF
-if { (eval echo configure:3581: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3562: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
xdvi_linker_multiple_defns=yes
else
@@ -3616,14 +3594,14 @@ yes | xaw)
# Cygwin needs -lXpm to be linked in explicitly; yet on older (<4.2)
# versions of XFree86, -lXpm exists, but is not needed. So we do two checks.
echo $ac_n "checking for whether -lXpm needs to be explicitly given""... $ac_c" 1>&6
-echo "configure:3617: checking for whether -lXpm needs to be explicitly given" >&5
+echo "configure:3598: checking for whether -lXpm needs to be explicitly given" >&5
if eval "test \"`echo '$''{'xdvi_needs_explicit_xpm'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
xdvi_save_LIBS=$LIBS
LIBS="-lXaw -lXmu -lXt$X_PRE_LIBS -lXext $LIBS $X_LIBS -lX11"
cat > conftest.$ac_ext <<EOF
-#line 3624 "configure"
+#line 3605 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -3634,7 +3612,7 @@ int main() {
XawTextReplace()
; return 0; }
EOF
-if { (eval echo configure:3635: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3616: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
xdvi_needs_explicit_xpm=no
else
@@ -3643,7 +3621,7 @@ else
rm -rf conftest*
LIBS="$LIBS -lXpm"
cat > conftest.$ac_ext <<EOF
-#line 3644 "configure"
+#line 3625 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -3654,7 +3632,7 @@ int main() {
XawTextReplace()
; return 0; }
EOF
-if { (eval echo configure:3655: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3636: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
xdvi_needs_explicit_xpm=yes
else
@@ -3688,14 +3666,14 @@ xaw3d)
# Cygwin needs -lXpm to be linked in explicitly; yet on older (<4.2)
# versions of XFree86, -lXpm exists, but is not needed. So we do two checks.
echo $ac_n "checking for whether -lXpm needs to be explicitly given""... $ac_c" 1>&6
-echo "configure:3689: checking for whether -lXpm needs to be explicitly given" >&5
+echo "configure:3670: checking for whether -lXpm needs to be explicitly given" >&5
if eval "test \"`echo '$''{'xdvi_needs_explicit_xpm'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
xdvi_save_LIBS=$LIBS
LIBS="-lXaw3d -lXmu -lXt$X_PRE_LIBS -lXext $LIBS $X_LIBS -lX11"
cat > conftest.$ac_ext <<EOF
-#line 3696 "configure"
+#line 3677 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -3706,7 +3684,7 @@ int main() {
XawTextReplace()
; return 0; }
EOF
-if { (eval echo configure:3707: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3688: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
xdvi_needs_explicit_xpm=no
else
@@ -3715,7 +3693,7 @@ else
rm -rf conftest*
LIBS="$LIBS -lXpm"
cat > conftest.$ac_ext <<EOF
-#line 3716 "configure"
+#line 3697 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -3726,7 +3704,7 @@ int main() {
XawTextReplace()
; return 0; }
EOF
-if { (eval echo configure:3727: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3708: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
xdvi_needs_explicit_xpm=yes
else
@@ -3766,7 +3744,8 @@ EOF
OPT_SRCS="$OPT_SRCS popups.c"
OPT_OBJS="$OPT_OBJS popups.o" ;;
no)
- X_PRE_LIBS= ;;
+ X_PRE_LIBS=
+ X_EXT_LIBS=" -lXext" ;;
*)
{ echo "configure: error: invalid toolkit $withval given" 1>&2; exit 1; } ;;
esac
@@ -3778,14 +3757,14 @@ else
# Cygwin needs -lXpm to be linked in explicitly; yet on older (<4.2)
# versions of XFree86, -lXpm exists, but is not needed. So we do two checks.
echo $ac_n "checking for whether -lXpm needs to be explicitly given""... $ac_c" 1>&6
-echo "configure:3779: checking for whether -lXpm needs to be explicitly given" >&5
+echo "configure:3761: checking for whether -lXpm needs to be explicitly given" >&5
if eval "test \"`echo '$''{'xdvi_needs_explicit_xpm'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
xdvi_save_LIBS=$LIBS
LIBS="-lXaw -lXmu -lXt$X_PRE_LIBS -lXext $LIBS $X_LIBS -lX11"
cat > conftest.$ac_ext <<EOF
-#line 3786 "configure"
+#line 3768 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -3796,7 +3775,7 @@ int main() {
XawTextReplace()
; return 0; }
EOF
-if { (eval echo configure:3797: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3779: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
xdvi_needs_explicit_xpm=no
else
@@ -3805,7 +3784,7 @@ else
rm -rf conftest*
LIBS="$LIBS -lXpm"
cat > conftest.$ac_ext <<EOF
-#line 3806 "configure"
+#line 3788 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -3816,7 +3795,7 @@ int main() {
XawTextReplace()
; return 0; }
EOF
-if { (eval echo configure:3817: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3799: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
xdvi_needs_explicit_xpm=yes
else
@@ -3846,6 +3825,50 @@ EOF
fi
+
+echo $ac_n "checking for XKB Bell extension""... $ac_c" 1>&6
+echo "configure:3831: checking for XKB Bell extension" >&5
+if eval "test \"`echo '$''{'xdvi_cv_xkb_bell_ext'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ xdvi_save_LIBS=$LIBS
+LIBS="$X_PRE_LIBS""$X_EXT_LIBS"" $LIBS $X_LIBS -lX11"
+cat > conftest.$ac_ext <<EOF
+#line 3838 "configure"
+#include "confdefs.h"
+
+#include <X11/X.h>
+#include <X11/XKBlib.h> /* has the prototype */
+
+int main() {
+
+ Atom y;
+ XkbBell((Display *)0, (Window)0, 0, y);
+
+; return 0; }
+EOF
+if { (eval echo configure:3851: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ xdvi_cv_xkb_bell_ext=yes
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ xdvi_cv_xkb_bell_ext=no
+fi
+rm -f conftest*
+LIBS=$xdvi_save_LIBS
+fi
+
+echo "$ac_t""$xdvi_cv_xkb_bell_ext" 1>&6
+if test "$xdvi_cv_xkb_bell_ext" = yes; then
+ X_PRE_LIBS="$X_PRE_LIBS""$X_EXT_LIBS"
+ cat >> confdefs.h <<\EOF
+#define HAVE_XKB_BELL_EXT 1
+EOF
+
+fi
+
# Check whether --with-tetex or --without-tetex was given.
if test "${with_tetex+set}" = set; then
withval="$with_tetex"
@@ -3974,7 +3997,7 @@ fi
fi
-xdvi_ps_c= xdvi_ps_o=
+xdvi_ps_c= xdvi_ps_o= xdvi_need_gs_lib=
# Check whether --enable-ps-gs or --disable-ps-gs was given.
if test "${enable_ps_gs+set}" = set; then
enableval="$enable_ps_gs"
@@ -4033,6 +4056,7 @@ fi
if test -n "$xdvi_ps_c"; then
OPT_SRCS="$OPT_SRCS psheader.c$xdvi_ps_c"
OPT_OBJS="$OPT_OBJS psheader.o$xdvi_ps_o"
+ xdvi_need_gs_lib=y
fi
# Check whether --enable-config-file or --disable-config-file was given.
@@ -4141,6 +4165,56 @@ EOF
fi
+# Extra libraries
+EXTRA_CPPFLAGS=
+EXTRA_LIBS=
+
+# Check whether --enable-freetype or --disable-freetype was given.
+if test "${enable_freetype+set}" = set; then
+ enableval="$enable_freetype"
+ if test "x$enableval" != xno; then
+ xdvi_freetype_config=freetype-config
+ if test "x$enableval" != xyes; then
+ if test -x "$enableval/freetype-config"; then
+ xdvi_freetype_config="$enableval/freetype-config"
+ elif test -x "$enableval/bin/freetype-config"; then
+ xdvi_freetype_config="$enableval/bin/freetype-config"
+ else
+ echo "configure: warning: Cannot find $enableval/freetype-config or $enableval/bin/freetype-config" 1>&2
+ fi
+ fi
+ EXTRA_CPPFLAGS="$EXTRA_CPPFLAGS `$xdvi_freetype_config --cflags`"
+ EXTRA_LIBS="$EXTRA_LIBS `$xdvi_freetype_config --libs`"
+ cat >> confdefs.h <<\EOF
+#define FREETYPE 1
+EOF
+
+ OPT_SRCS="$OPT_SRCS ft.c"
+ OPT_OBJS="$OPT_OBJS ft.o"
+ xdvi_need_gs_lib=y
+fi
+else
+ if freetype-config --cflags >conftest.cflags 2>/dev/null \
+ && freetype-config --libs >conftest.libs 2>/dev/null ; then
+ EXTRA_CPPFLAGS="$EXTRA_CPPFLAGS `cat conftest.cflags`"
+ EXTRA_LIBS="$EXTRA_LIBS `cat conftest.libs`"
+ rm -f conftest.cflags conftest.libs
+ cat >> confdefs.h <<\EOF
+#define FREETYPE 1
+EOF
+
+ OPT_SRCS="$OPT_SRCS ft.c"
+ OPT_OBJS="$OPT_OBJS ft.o"
+ xdvi_need_gs_lib=y
+fi
+fi
+
+
+
+
+
+# End extra libraries section
+
# Check whether --with-default-texmf-path or --without-default-texmf-path was given.
if test "${with_default_texmf_path+set}" = set; then
withval="$with_default_texmf_path"
@@ -4226,6 +4300,124 @@ EOF
fi
+# Check whether --with-default-dvips-cf-path or --without-default-dvips-cf-path was given.
+if test "${with_default_dvips_cf_path+set}" = set; then
+ withval="$with_default_dvips_cf_path"
+ cat >> confdefs.h <<EOF
+#define DEFAULT_DVIPS_CF_PATH "$withval"
+EOF
+
+
+else
+ cat >> confdefs.h <<\EOF
+#define DEFAULT_DVIPS_CF_PATH ".:%S"
+EOF
+
+
+fi
+
+
+# Check whether --with-default-fontmap-path or --without-default-fontmap-path was given.
+if test "${with_default_fontmap_path+set}" = set; then
+ withval="$with_default_fontmap_path"
+ cat >> confdefs.h <<EOF
+#define DEFAULT_FONTMAP_PATH "$withval"
+EOF
+
+
+else
+ cat >> confdefs.h <<\EOF
+#define DEFAULT_FONTMAP_PATH ".:%S"
+EOF
+
+
+fi
+
+
+# Check whether --with-default-enc-path or --without-default-enc-path was given.
+if test "${with_default_enc_path+set}" = set; then
+ withval="$with_default_enc_path"
+ cat >> confdefs.h <<EOF
+#define DEFAULT_ENC_PATH "$withval"
+EOF
+
+
+else
+ cat >> confdefs.h <<\EOF
+#define DEFAULT_ENC_PATH ".:%S"
+EOF
+
+
+fi
+
+
+# Check whether --with-default-type1-path or --without-default-type1-path was given.
+if test "${with_default_type1_path+set}" = set; then
+ withval="$with_default_type1_path"
+ cat >> confdefs.h <<EOF
+#define DEFAULT_TYPE1_PATH "$withval"
+EOF
+
+
+else
+ cat >> confdefs.h <<\EOF
+#define DEFAULT_TYPE1_PATH ".:%S"
+EOF
+
+
+fi
+
+
+if test -n "$xdvi_need_gs_lib"; then
+ # Check whether --with-default-gs-lib-path or --without-default-gs-lib-path was given.
+if test "${with_default_gs_lib_path+set}" = set; then
+ withval="$with_default_gs_lib_path"
+ cat >> confdefs.h <<EOF
+#define DEFAULT_GS_LIB_PATH "$withval"
+EOF
+
+
+else
+ echo $ac_n "checking for the path to be used for Ghostscript searches""... $ac_c" 1>&6
+echo "configure:4383: checking for the path to be used for Ghostscript searches" >&5
+if eval "test \"`echo '$''{'xdvi_gs_lib_path'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ if gs -h >/dev/null 2>&1; then
+ ac_tmp="`gs -h \
+ | sed \
+ -e '1,/Search path:/d' \
+ -e '/For more information/,$d' \
+ -e '/Initialization files are compiled/d' \
+ -e 's/$/\/\/\//' \
+ -e 's/^ //' \
+ | tr '\n' '/'`"
+ # Solaris 9 sed doesn't handle incomplete lines at eof
+ xdvi_gs_lib_path=`echo "$ac_tmp" \
+ | sed -e 's/\/\/\/\// /g' -e 's/ *$//' -e 's/ : /:/g'`
+else
+ xdvi_gs_lib_path=none
+fi
+fi
+
+echo "$ac_t""$xdvi_gs_lib_path" 1>&6
+if test "$xdvi_gs_lib_path" != none; then
+ cat >> confdefs.h <<EOF
+#define DEFAULT_GS_LIB_PATH "$xdvi_gs_lib_path"
+EOF
+
+else
+ echo "configure: warning: Could not determine Ghostscript search path" 1>&2
+ cat >> confdefs.h <<\EOF
+#define DEFAULT_GS_LIB_PATH NULL
+EOF
+
+fi
+
+fi
+
+fi
+
# Check whether --with-default-source-path or --without-default-source-path was given.
if test "${with_default_source_path+set}" = set; then
withval="$with_default_source_path"
@@ -4411,6 +4603,8 @@ s%@X_EXTRA_LIBS@%$X_EXTRA_LIBS%g
s%@KRHEADER_H@%$KRHEADER_H%g
s%@MATH_LIB@%$MATH_LIB%g
s%@x_linker_options@%$x_linker_options%g
+s%@EXTRA_CPPFLAGS@%$EXTRA_CPPFLAGS%g
+s%@EXTRA_LIBS@%$EXTRA_LIBS%g
s%@OPT_SRCS@%$OPT_SRCS%g
s%@OPT_OBJS@%$OPT_OBJS%g
diff --git a/systems/win32/miktex/tm/packages/files.csv.lzma b/systems/win32/miktex/tm/packages/files.csv.lzma
index 7a553fb9b9..495c3957df 100644
--- a/systems/win32/miktex/tm/packages/files.csv.lzma
+++ b/systems/win32/miktex/tm/packages/files.csv.lzma
Binary files differ
diff --git a/systems/win32/miktex/tm/packages/next/files.csv.lzma b/systems/win32/miktex/tm/packages/next/files.csv.lzma
index 6b5a6f39b8..fc917bda10 100644
--- a/systems/win32/miktex/tm/packages/next/files.csv.lzma
+++ b/systems/win32/miktex/tm/packages/next/files.csv.lzma
Binary files differ
diff --git a/systems/win32/miktex/tm/packages/next/pr.ini b/systems/win32/miktex/tm/packages/next/pr.ini
index 488747db9d..f9e81163cb 100644
--- a/systems/win32/miktex/tm/packages/next/pr.ini
+++ b/systems/win32/miktex/tm/packages/next/pr.ini
@@ -1,13 +1,13 @@
[repository]
-date=1606166052
+date=1606252710
lastupd=miktex-arctrl-bin-2.9 miktex-arctrl-bin-x64-2.9 miktex-asymptote-bin-2.9 miktex-asymptote-bin-x64-2.9 miktex-autosp-bin-2.9 miktex-autosp-bin-x64-2.9 miktex-axohelp-bin-2.9 miktex-axohelp-bin-x64-2.9 miktex-bibarts-bin-2.9 miktex-bibarts-bin-x64-2.9 miktex-bibtex-bin-2.9 miktex-bibtex-bin-x64-2.9 miktex-bibtex8bit-bin-2.9 miktex-bibtex8bit-bin-x64-2.9 miktex-bzip2-bin-2.9 miktex-bzip2-bin-x64-2.9 miktex-cairo-bin-2.9 miktex-cairo-bin-x64-2.9 miktex-chktex-bin-2.9 miktex-chktex-bin-x64-2.9
-lstdigest=e597868af628e2e8eddc51a042810177
-numpkg=4003
+lstdigest=f5dbc3c0f82e4d123635676b39089d76
+numpkg=4009
relstate=next
-version=7632
+version=7633
;;;;This configuration file is signed by a MiKTeX maintainer. The signature follows.
;;;;-----BEGIN MIKTEX SIGNATURE-----
-;;;; signature/miktex: voak+kKBCIDXcfWTOO6cOQfxlMuHl8P4LUOf6WQwFXjlSOq0LSSFm9R5Pj0212Bmgn7Yw95uDG0ygym6YZiLFxlmWmdaL5C5kFO6AAI5/UwYEEudyv3E8ppCvIqOAztN5Fzb7eALyTOORoz1P2TdoLAKu0me5Fg+ioeRY/E0eirE0TQ/JX/X5Ns20OJ9Vsi88hyXE6LauIvK0wM1zMTu/g/jFCmPzS2cRWWsQBTyMguyCyeQ1BNWSlh11fGDzj0JNP0/4QvZEijkVTBO+4U7N+H4TfRq1Va7MkvfV+YMadiV5MC/Nqa2Q62PfOUINVe0gkkg6bUs4Ipz/KwFgNX8Og==
+;;;; signature/miktex: agcEfydP/wL/GJp4XmCl37o/tSSSPrl/MD4avz7HqtQxLsDsTGtq4kUMDiNnzEoDxLqAXeHLftSvp7ImXcH2WKlL1c2IbqzB04ps5CgyzwOutxxes0uoD2UgOn67RuxXqlZBRmJoo9QlvUgYmlAUTb+TsJ3Aqn9yp/Dbg/N+h00rxr6RbB4YzGFggFg5EDdvMpVFamvdmS6asPDVDdWQGZ6cjjZ0PHPjsVdt4cawut4kKOtzNjzI0wJNzAKwdS+EWnNRWKshsw0jVx7nO85T1udVsI+5yxVFxdvyAOZfhdXCv5+KkCyQJZo5ONhUoEEZo5hxBUg/XPEJh1Rhf2niyA==
;;;;-----END MIKTEX SIGNATURE-----
diff --git a/systems/win32/miktex/tm/packages/pr.ini b/systems/win32/miktex/tm/packages/pr.ini
index b861de18fa..28b91785ce 100644
--- a/systems/win32/miktex/tm/packages/pr.ini
+++ b/systems/win32/miktex/tm/packages/pr.ini
@@ -1,13 +1,13 @@
[repository]
-date=1606165867
-lastupd=acro algolrevived baskervaldx bookmark causets jnuexam kvoptions latexindent leaflet libertinust1math mlacls modiagram nicematrix numspell pm-isomath quantumarticle reledmac semantex subfiles tex4ebook
-lstdigest=731dc41d51e49aef5534bd13ba31ba3a
-numpkg=4003
+date=1606252315
+lastupd=acmart acro acrotex apa7 arraycols asmeconf atenddvi autoaligne babel-greek baekmuk beamertheme-focus beamertheme-pure-minimalistic biblatex-german-legal bookcover chemmacros datax factura first-packages graphicx-psmin hyperxmp
+lstdigest=0a99b2b83c992e511e3c3775d5362f78
+numpkg=4009
relstate=stable
-version=7632
+version=7633
;;;;This configuration file is signed by a MiKTeX maintainer. The signature follows.
;;;;-----BEGIN MIKTEX SIGNATURE-----
-;;;; signature/miktex: Fqrl4F5MaYOeG0bAqkdDlfYENys3td+bev/l4CdkYx30LQzvB8B7wLHsojzwKrPBFZV+dQ8g8QLnDxqxkTiXHMnAW2y+U1NQPgl5kAj8JSsORAyPEsRIHtwvc/gPw4qDwppN4B/psVsjsLUtWz7HiB+yWU+Jky8f1l+T4HC/1gbAB1Vz6q3VB2LlCibTKj5DFzABgTw39qe624qL5Bw5IIrF7PVK6STVnBv1CPZlwZlZ6Eibn92jaJ588U/ft958wJOZLPlKrgOyHgLna7K+Gt3LeEdvs796QOGszTP+Du3QzgZoV2OMhxnDRRSbMLUaI/xQRKjXYcfL+ZdRS3s3dQ==
+;;;; signature/miktex: CIvGj/kxGD2WrVOh57n7HHvYXhXBPiPWKUjazR4BevM4MXMTcP4t8gcp4uNwfrJKqUJeIOMK2AY4qaAds34FlfOCq1C4iUEy7NOKxT1+hqfffLz1Q6Gi/Q0T3ZvXRrMcF8RWkktSGtBI+cv4eZnU2MRT8LWFhx84tibAM0OOSOHp1fI2aWHHW2frf7NhdcPZ1Jga82D6WWP2HrTTLDz03mb2bxITjZ+F/Gmp49D02QNMzatkCO/hy7OO53tv1gkGkdwxftCyl1Zb1ZAX1SQMabpOLEhRHShl+PxS+k0joEEYWrbWU7Dc0HxPXGLKEbtJeRhX0KRsWSOxaofiNKcw/A==
;;;;-----END MIKTEX SIGNATURE-----
diff --git a/timestamp b/timestamp
index 7a405ce922..a0fd88665c 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:
-2020-11-24-02-02
+2020-11-25-02-02